From dd8fe49605d00d4b73f9b1da6d010a481c61e81c Mon Sep 17 00:00:00 2001 From: Ariel Abreu Date: Sun, 2 Aug 2020 21:41:45 -0400 Subject: [PATCH] groff-41 --- Makefile | 73 + gen/include/config.h | 218 - gen/include/defs.h | 11 - gen/include/majorminor.cpp | 3 - gen/src/majorminor.cpp | 3 - gen/usr/bin/afmtodit | 6566 ------- gen/usr/bin/eqn2graph | 91 - gen/usr/bin/gdiffmk | 346 - gen/usr/bin/grap2graph | 85 - gen/usr/bin/groffer | 299 - gen/usr/bin/grog | 112 - gen/usr/bin/mmroff | 137 - gen/usr/bin/neqn | 10 - gen/usr/bin/nroff | 99 - gen/usr/bin/pic2graph | 101 - gen/usr/lib/groff/groffer/groffer2.sh | 5854 ------ gen/usr/lib/groff/site-tmac/.gitkeep | 0 .../doc/groff/1.19.2/examples/grnexmpl.ps | 3200 ---- .../doc/groff/1.19.2/examples/mom/letter.ps | 256 - .../groff/1.19.2/examples/mom/sample_docs.ps | 913 - .../groff/1.19.2/examples/mom/typesetting.ps | 999 - .../doc/groff/1.19.2/examples/webpage.ms | 1832 -- .../doc/groff/1.19.2/examples/webpage.ps | 2530 --- .../doc/groff/1.19.2/html/mom/appendices.html | 692 - gen/usr/share/doc/groff/1.19.2/meintro.ps | 1611 -- gen/usr/share/doc/groff/1.19.2/meref.ps | 1358 -- .../share/doc/groff/1.19.2/pdf/pdfmark.pdf | Bin 161012 -> 0 bytes gen/usr/share/doc/groff/1.19.2/pic.ps | 3308 ---- gen/usr/share/groff/1.19.2/font/devascii/B | 190 - gen/usr/share/groff/1.19.2/font/devascii/BI | 190 - gen/usr/share/groff/1.19.2/font/devascii/DESC | 8 - gen/usr/share/groff/1.19.2/font/devascii/I | 190 - gen/usr/share/groff/1.19.2/font/devascii/R | 189 - gen/usr/share/groff/1.19.2/font/devdvi/DESC | 13 - .../1.19.2/font/devdvi/generate/Makefile | 206 - gen/usr/share/groff/1.19.2/font/devhtml/B | 746 - gen/usr/share/groff/1.19.2/font/devhtml/BI | 746 - gen/usr/share/groff/1.19.2/font/devhtml/CB | 745 - gen/usr/share/groff/1.19.2/font/devhtml/CBI | 745 - gen/usr/share/groff/1.19.2/font/devhtml/CI | 745 - gen/usr/share/groff/1.19.2/font/devhtml/CR | 746 - gen/usr/share/groff/1.19.2/font/devhtml/DESC | 13 - gen/usr/share/groff/1.19.2/font/devhtml/I | 746 - gen/usr/share/groff/1.19.2/font/devhtml/R | 745 - gen/usr/share/groff/1.19.2/font/devhtml/S | 745 - gen/usr/share/groff/1.19.2/font/devlatin1/B | 322 - gen/usr/share/groff/1.19.2/font/devlatin1/BI | 322 - .../share/groff/1.19.2/font/devlatin1/DESC | 8 - gen/usr/share/groff/1.19.2/font/devlatin1/I | 322 - gen/usr/share/groff/1.19.2/font/devlatin1/R | 321 - gen/usr/share/groff/1.19.2/font/devlbp/DESC | 11 - gen/usr/share/groff/1.19.2/font/devlj4/DESC | 13 - .../1.19.2/font/devlj4/generate/Makefile | 266 - gen/usr/share/groff/1.19.2/font/devps/DESC | 14 - .../groff/1.19.2/font/devps/generate/Makefile | 239 - .../share/groff/1.19.2/font/devps/prologue | 170 - .../groff/1.19.2/font/devps/symbolsl.pfa | 29 - .../share/groff/1.19.2/font/devps/zapfdr.pfa | 218 - gen/usr/share/groff/1.19.2/font/devutf8/B | 819 - gen/usr/share/groff/1.19.2/font/devutf8/BI | 819 - gen/usr/share/groff/1.19.2/font/devutf8/DESC | 8 - gen/usr/share/groff/1.19.2/font/devutf8/I | 819 - gen/usr/share/groff/1.19.2/font/devutf8/R | 818 - gen/usr/share/groff/1.19.2/tmac/doc.tmac | 3381 ---- gen/usr/share/groff/1.19.2/tmac/e.tmac | 1579 -- .../share/groff/1.19.2/tmac/mdoc/doc-common | 933 - .../share/groff/1.19.2/tmac/mdoc/doc-ditroff | 206 - .../share/groff/1.19.2/tmac/mdoc/doc-nroff | 169 - gen/usr/share/groff/1.19.2/tmac/mdoc/doc-syms | 530 - gen/usr/share/groff/1.19.2/tmac/mm/locale | 0 gen/usr/share/groff/1.19.2/tmac/mm/se_locale | 0 gen/usr/share/groff/1.19.2/tmac/www.tmac | 1230 -- gen/usr/share/groff/site-font/.gitkeep | 0 gen/usr/share/info/groff | 301 - gen/usr/share/info/groff-1 | 8695 --------- gen/usr/share/info/groff-2 | 4922 ----- gen/usr/share/info/groff-3 | Bin 145790 -> 0 bytes gen/usr/share/man/man1/addftinfo.1 | 111 - gen/usr/share/man/man1/afmtodit.1 | 337 - gen/usr/share/man/man1/eqn.1 | 1160 -- gen/usr/share/man/man1/eqn2graph.1 | 115 - gen/usr/share/man/man1/gdiffmk.1 | 281 - gen/usr/share/man/man1/grap2graph.1 | 105 - gen/usr/share/man/man1/grn.1 | 652 - gen/usr/share/man/man1/grodvi.1 | 434 - gen/usr/share/man/man1/groff.1 | 1732 -- gen/usr/share/man/man1/groffer.1 | 4018 ---- gen/usr/share/man/man1/grog.1 | 91 - gen/usr/share/man/man1/grohtml.1 | 293 - gen/usr/share/man/man1/grolbp.1 | 336 - gen/usr/share/man/man1/grolj4.1 | 152 - gen/usr/share/man/man1/grops.1 | 1170 -- gen/usr/share/man/man1/grotty.1 | 423 - gen/usr/share/man/man1/hpftodit.1 | 311 - gen/usr/share/man/man1/indxbib.1 | 211 - gen/usr/share/man/man1/lkbib.1 | 136 - gen/usr/share/man/man1/lookbib.1 | 101 - gen/usr/share/man/man1/mmroff.1 | 49 - gen/usr/share/man/man1/neqn.1 | 43 - gen/usr/share/man/man1/nroff.1 | 149 - gen/usr/share/man/man1/pfbtops.1 | 68 - gen/usr/share/man/man1/pic.1 | 1109 -- gen/usr/share/man/man1/pic2graph.1 | 140 - gen/usr/share/man/man1/refer.1 | 1492 -- gen/usr/share/man/man1/soelim.1 | 216 - gen/usr/share/man/man1/tbl.1 | 493 - gen/usr/share/man/man1/tfmtodit.1 | 197 - gen/usr/share/man/man1/troff.1 | 705 - gen/usr/share/man/man5/groff_font.5 | 660 - gen/usr/share/man/man5/groff_out.5 | 2106 -- gen/usr/share/man/man5/groff_tmac.5 | 1282 -- gen/usr/share/man/man5/lj4_font.5 | 167 - gen/usr/share/man/man7/ditroff.7 | 201 - gen/usr/share/man/man7/groff.7 | 3564 ---- gen/usr/share/man/man7/groff_char.7 | 1422 -- gen/usr/share/man/man7/groff_diff.7 | 3848 ---- gen/usr/share/man/man7/groff_man.7 | 775 - gen/usr/share/man/man7/groff_mdoc.7 | 4136 ---- gen/usr/share/man/man7/groff_me.7 | 282 - gen/usr/share/man/man7/groff_mm.7 | 2104 -- gen/usr/share/man/man7/groff_mmse.7 | 86 - gen/usr/share/man/man7/groff_mom.7 | 101 - gen/usr/share/man/man7/groff_ms.7 | 1556 -- gen/usr/share/man/man7/groff_trace.7 | 550 - gen/usr/share/man/man7/groff_www.7 | 525 - gen/usr/share/man/man7/roff.7 | 1278 -- gen/version-libgroff.cpp | 3 - groff.plist | 22 + {src => groff}/BUG-REPORT | 0 {src => groff}/COPYING | 0 {src => groff}/ChangeLog | 0 {src => groff}/ChangeLog.115 | 0 {src => groff}/ChangeLog.116 | 0 {src => groff}/ChangeLog.117 | 0 {src => groff}/ChangeLog.118 | 0 {src => groff}/FDL | 0 {src => groff}/INSTALL | 0 {src => groff}/INSTALL.gen | 0 {src => groff}/LICENSE | 0 {src => groff}/MANIFEST | 0 {src => groff}/MORE.STUFF | 0 {src => groff}/Makefile | 0 {src => groff}/Makefile.ccpg | 0 {src => groff}/Makefile.comm | 0 {src => groff}/Makefile.cpg | 0 {src => groff}/Makefile.dev | 0 {src => groff}/Makefile.in | 3 - {src => groff}/Makefile.init | 0 {src => groff}/Makefile.lib | 0 {src => groff}/Makefile.man | 0 {src => groff}/Makefile.sub | 0 {src => groff}/NEWS | 0 {src => groff}/PROBLEMS | 0 {src => groff}/PROJECTS | 0 {src => groff}/README | 0 {src => groff}/README.MinGW | 0 {src => groff}/REVISION | 0 {src => groff}/TODO | 0 {src => groff}/VERSION | 0 {src => groff}/aclocal.m4 | 0 {src => groff}/arch/djgpp/README | 0 {src => groff}/arch/djgpp/config.bat | 0 {src => groff}/arch/djgpp/config.sed | 0 {src => groff}/arch/djgpp/config.site | 0 {src => groff}/arch/djgpp/t-groff.bat | 0 {src => groff}/arch/misc/Makefile.sub | 0 {src => groff}/arch/misc/shdeps.sh | 0 {src => groff}/configure | 0 {src => groff}/configure.ac | 0 {src => groff}/contrib/eqn2graph/Makefile.sub | 0 .../contrib/eqn2graph/eqn2graph.man | 0 {src => groff}/contrib/eqn2graph/eqn2graph.sh | 0 {src => groff}/contrib/gdiffmk/ChangeLog | 0 {src => groff}/contrib/gdiffmk/Makefile.sub | 0 {src => groff}/contrib/gdiffmk/README | 0 {src => groff}/contrib/gdiffmk/gdiffmk.man | 0 {src => groff}/contrib/gdiffmk/gdiffmk.sh | 0 {src => groff}/contrib/gdiffmk/tests/file1 | 0 {src => groff}/contrib/gdiffmk/tests/file2 | 0 .../contrib/gdiffmk/tests/runtests.in | 0 .../contrib/gdiffmk/tests/test_baseline | 0 .../contrib/gdiffmk/tests/test_baseline10 | 0 .../contrib/gdiffmk/tests/test_baseline6 | 0 .../contrib/gdiffmk/tests/test_baseline7 | 0 .../contrib/gdiffmk/tests/test_baseline8 | 0 .../contrib/gdiffmk/tests/test_baseline9 | 0 .../contrib/grap2graph/Makefile.sub | 0 .../contrib/grap2graph/grap2graph.man | 0 .../contrib/grap2graph/grap2graph.sh | 0 {src => groff}/contrib/groffer/ChangeLog | 0 {src => groff}/contrib/groffer/Makefile.sub | 0 {src => groff}/contrib/groffer/README | 0 {src => groff}/contrib/groffer/README_SH | 0 {src => groff}/contrib/groffer/TODO | 0 {src => groff}/contrib/groffer/groffer.man | 0 {src => groff}/contrib/groffer/groffer.sh | 0 {src => groff}/contrib/groffer/groffer2.sh | 0 {src => groff}/contrib/mm/ChangeLog | 0 {src => groff}/contrib/mm/Makefile.sim | 0 {src => groff}/contrib/mm/Makefile.sub | 0 {src => groff}/contrib/mm/NOTES | 0 {src => groff}/contrib/mm/README | 0 {src => groff}/contrib/mm/examples/APP | 0 {src => groff}/contrib/mm/examples/B1B2 | 0 {src => groff}/contrib/mm/examples/COVER | 0 {src => groff}/contrib/mm/examples/IND | 0 {src => groff}/contrib/mm/examples/LT | 0 {src => groff}/contrib/mm/examples/LT.se | 0 {src => groff}/contrib/mm/examples/ML | 0 {src => groff}/contrib/mm/examples/MOVE | 0 {src => groff}/contrib/mm/examples/MUL | 0 {src => groff}/contrib/mm/examples/NCOL | 0 {src => groff}/contrib/mm/examples/ND | 0 {src => groff}/contrib/mm/examples/README | 0 {src => groff}/contrib/mm/examples/References | 0 {src => groff}/contrib/mm/examples/SETR | 0 {src => groff}/contrib/mm/groff_mm.man | 0 {src => groff}/contrib/mm/groff_mmse.man | 0 .../1.19.2/tmac => groff/contrib/mm}/m.tmac | 0 .../1.19.2/tmac => groff/contrib/mm}/mm.tmac | 0 .../1.19.2/tmac => groff/contrib/mm}/mm/0.MT | 0 .../1.19.2/tmac => groff/contrib/mm}/mm/4.MT | 0 .../1.19.2/tmac => groff/contrib/mm}/mm/5.MT | 0 .../tmac => groff/contrib/mm}/mm/ms.cov | 0 .../tmac => groff/contrib/mm}/mm/se_ms.cov | 0 {src => groff}/contrib/mm/mmroff.man | 0 {src => groff}/contrib/mm/mmroff.pl | 0 .../tmac => groff/contrib/mm}/mmse.tmac | 0 .../1.19.2/tmac => groff/contrib/mm}/mse.tmac | 0 {src => groff}/contrib/mom/BUGS | 0 {src => groff}/contrib/mom/ChangeLog | 0 {src => groff}/contrib/mom/Makefile.sub | 0 {src => groff}/contrib/mom/NEWS | 0 {src => groff}/contrib/mom/TODO | 0 {src => groff}/contrib/mom/copyright | 0 .../contrib/mom/examples}/README.txt | 0 .../contrib/mom/examples}/elvis_syntax | 0 .../contrib/mom/examples}/elvis_syntax.new | 0 .../contrib/mom/examples}/letter.mom | 0 .../contrib/mom/examples}/penguin.ps | 0 .../contrib/mom/examples}/sample_docs.mom | 0 .../contrib/mom/examples}/typesetting.mom | 0 {src => groff}/contrib/mom/groff_mom.man | 0 .../tmac => groff/contrib/mom}/mom.tmac | 0 .../contrib/mom/momdoc/appendices.html | 0 .../contrib/mom/momdoc}/color.html | 0 .../contrib/mom/momdoc}/cover.html | 0 .../contrib/mom/momdoc}/definitions.html | 0 .../contrib/mom/momdoc}/docelement.html | 0 .../contrib/mom/momdoc}/docprocessing.html | 0 .../contrib/mom/momdoc}/goodies.html | 0 .../contrib/mom/momdoc}/headfootpage.html | 0 .../contrib/mom/momdoc}/inlines.html | 0 .../contrib/mom/momdoc}/intro.html | 0 .../contrib/mom/momdoc}/letters.html | 0 .../contrib/mom/momdoc}/macrolist.html | 0 .../contrib/mom/momdoc}/rectoverso.html | 0 .../contrib/mom/momdoc}/refer.html | 0 .../contrib/mom/momdoc}/reserved.html | 0 .../mom => groff/contrib/mom/momdoc}/toc.html | 0 .../contrib/mom/momdoc}/typemacdoc.html | 0 .../contrib/mom/momdoc}/typesetting.html | 0 .../contrib/mom/momdoc}/using.html | 0 .../1.19.2/tmac => groff/contrib/mom}/om.tmac | 0 {src => groff}/contrib/pdfmark/ChangeLog | 0 {src => groff}/contrib/pdfmark/Makefile.sub | 0 {src => groff}/contrib/pdfmark/PROBLEMS | 0 {src => groff}/contrib/pdfmark/README | 0 {src => groff}/contrib/pdfmark/TODO | 0 {src => groff}/contrib/pdfmark/cover.ms | 0 {src => groff}/contrib/pdfmark/pdfmark.ms | 0 .../contrib/pdfmark}/pdfmark.tmac | 0 {src => groff}/contrib/pdfmark/pdfroff.man | 0 {src => groff}/contrib/pdfmark/pdfroff.sh | 0 .../tmac => groff/contrib/pdfmark}/spdf.tmac | 0 {src => groff}/contrib/pic2graph/Makefile.sub | 0 .../contrib/pic2graph/pic2graph.man | 0 {src => groff}/contrib/pic2graph/pic2graph.sh | 0 {src => groff}/doc/Makefile.in | 0 {src => groff}/doc/Makefile.sub | 0 {src => groff}/doc/fdl.texi | 0 {src => groff}/doc/fixinfo.sh | 0 {src => groff}/doc/gnu.eps | 0 {src => groff}/doc/gnu.png | Bin {src => groff}/doc/gnu.xpm | 0 .../1.19.2/examples => groff/doc}/grnexmpl.g | 0 .../1.19.2/examples => groff/doc}/grnexmpl.me | 0 {src => groff}/doc/groff | 0 {src => groff}/doc/groff-1 | 0 {src => groff}/doc/groff-2 | 0 {src => groff}/doc/groff-3 | Bin .../1.19.2/examples => groff/doc}/groff.css | 0 {src => groff}/doc/groff.texinfo | 0 .../doc/groff/1.19.2 => groff/doc}/meintro.me | 0 .../doc/groff/1.19.2 => groff/doc}/meref.me | 0 .../doc/groff/1.19.2 => groff/doc}/pic.ms | 0 {src => groff}/doc/texinfo.tex | 0 {src => groff}/doc/webpage.ms | 0 {src => groff}/font/devX100-12/CB | 0 {src => groff}/font/devX100-12/CBI | 0 {src => groff}/font/devX100-12/CI | 0 {src => groff}/font/devX100-12/CR | 0 {src => groff}/font/devX100-12/DESC | 0 {src => groff}/font/devX100-12/HB | 0 {src => groff}/font/devX100-12/HBI | 0 {src => groff}/font/devX100-12/HI | 0 {src => groff}/font/devX100-12/HR | 0 {src => groff}/font/devX100-12/Makefile.sub | 0 {src => groff}/font/devX100-12/NB | 0 {src => groff}/font/devX100-12/NBI | 0 {src => groff}/font/devX100-12/NI | 0 {src => groff}/font/devX100-12/NR | 0 {src => groff}/font/devX100-12/S | 0 {src => groff}/font/devX100-12/TB | 0 {src => groff}/font/devX100-12/TBI | 0 {src => groff}/font/devX100-12/TI | 0 {src => groff}/font/devX100-12/TR | 0 {src => groff}/font/devX100/CB | 0 {src => groff}/font/devX100/CBI | 0 {src => groff}/font/devX100/CI | 0 {src => groff}/font/devX100/CR | 0 {src => groff}/font/devX100/DESC | 0 {src => groff}/font/devX100/HB | 0 {src => groff}/font/devX100/HBI | 0 {src => groff}/font/devX100/HI | 0 {src => groff}/font/devX100/HR | 0 {src => groff}/font/devX100/Makefile.sub | 0 {src => groff}/font/devX100/NB | 0 {src => groff}/font/devX100/NBI | 0 {src => groff}/font/devX100/NI | 0 {src => groff}/font/devX100/NR | 0 {src => groff}/font/devX100/S | 0 {src => groff}/font/devX100/TB | 0 {src => groff}/font/devX100/TBI | 0 {src => groff}/font/devX100/TI | 0 {src => groff}/font/devX100/TR | 0 {src => groff}/font/devX75-12/CB | 0 {src => groff}/font/devX75-12/CBI | 0 {src => groff}/font/devX75-12/CI | 0 {src => groff}/font/devX75-12/CR | 0 {src => groff}/font/devX75-12/DESC | 0 {src => groff}/font/devX75-12/HB | 0 {src => groff}/font/devX75-12/HBI | 0 {src => groff}/font/devX75-12/HI | 0 {src => groff}/font/devX75-12/HR | 0 {src => groff}/font/devX75-12/Makefile.sub | 0 {src => groff}/font/devX75-12/NB | 0 {src => groff}/font/devX75-12/NBI | 0 {src => groff}/font/devX75-12/NI | 0 {src => groff}/font/devX75-12/NR | 0 {src => groff}/font/devX75-12/S | 0 {src => groff}/font/devX75-12/TB | 0 {src => groff}/font/devX75-12/TBI | 0 {src => groff}/font/devX75-12/TI | 0 {src => groff}/font/devX75-12/TR | 0 {src => groff}/font/devX75/CB | 0 {src => groff}/font/devX75/CBI | 0 {src => groff}/font/devX75/CI | 0 {src => groff}/font/devX75/CR | 0 {src => groff}/font/devX75/DESC | 0 {src => groff}/font/devX75/HB | 0 {src => groff}/font/devX75/HBI | 0 {src => groff}/font/devX75/HI | 0 {src => groff}/font/devX75/HR | 0 {src => groff}/font/devX75/Makefile.sub | 0 {src => groff}/font/devX75/NB | 0 {src => groff}/font/devX75/NBI | 0 {src => groff}/font/devX75/NI | 0 {src => groff}/font/devX75/NR | 0 {src => groff}/font/devX75/S | 0 {src => groff}/font/devX75/TB | 0 {src => groff}/font/devX75/TBI | 0 {src => groff}/font/devX75/TI | 0 {src => groff}/font/devX75/TR | 0 {src => groff}/font/devascii/DESC.proto | 0 {src => groff}/font/devascii/Makefile.sub | 0 {src => groff}/font/devascii/R.proto | 0 {src => groff}/font/devcp1047/DESC.proto | 0 {src => groff}/font/devcp1047/Makefile.sub | 0 {src => groff}/font/devcp1047/R.proto | 0 .../groff/1.19.2 => groff}/font/devdvi/CW | 0 .../groff/1.19.2 => groff}/font/devdvi/CWEC | 0 .../groff/1.19.2 => groff}/font/devdvi/CWI | 0 .../groff/1.19.2 => groff}/font/devdvi/CWIEC | 0 .../groff/1.19.2 => groff}/font/devdvi/CWITC | 0 .../groff/1.19.2 => groff}/font/devdvi/CWTC | 0 {src => groff}/font/devdvi/DESC.in | 0 .../groff/1.19.2 => groff}/font/devdvi/EX | 0 .../groff/1.19.2 => groff}/font/devdvi/HB | 0 .../groff/1.19.2 => groff}/font/devdvi/HBEC | 0 .../groff/1.19.2 => groff}/font/devdvi/HBI | 0 .../groff/1.19.2 => groff}/font/devdvi/HBIEC | 0 .../groff/1.19.2 => groff}/font/devdvi/HBITC | 0 .../groff/1.19.2 => groff}/font/devdvi/HBTC | 0 .../groff/1.19.2 => groff}/font/devdvi/HI | 0 .../groff/1.19.2 => groff}/font/devdvi/HIEC | 0 .../groff/1.19.2 => groff}/font/devdvi/HITC | 0 .../groff/1.19.2 => groff}/font/devdvi/HR | 0 .../groff/1.19.2 => groff}/font/devdvi/HREC | 0 .../groff/1.19.2 => groff}/font/devdvi/HRTC | 0 .../groff/1.19.2 => groff}/font/devdvi/MI | 0 {src => groff}/font/devdvi/Makefile.sub | 0 .../groff/1.19.2 => groff}/font/devdvi/S | 0 .../groff/1.19.2 => groff}/font/devdvi/SA | 0 .../groff/1.19.2 => groff}/font/devdvi/SB | 0 .../groff/1.19.2 => groff}/font/devdvi/SC | 0 .../groff/1.19.2 => groff}/font/devdvi/TB | 0 .../groff/1.19.2 => groff}/font/devdvi/TBEC | 0 .../groff/1.19.2 => groff}/font/devdvi/TBI | 0 .../groff/1.19.2 => groff}/font/devdvi/TBIEC | 0 .../groff/1.19.2 => groff}/font/devdvi/TBITC | 0 .../groff/1.19.2 => groff}/font/devdvi/TBTC | 0 .../groff/1.19.2 => groff}/font/devdvi/TI | 0 .../groff/1.19.2 => groff}/font/devdvi/TIEC | 0 .../groff/1.19.2 => groff}/font/devdvi/TITC | 0 .../groff/1.19.2 => groff}/font/devdvi/TR | 0 .../groff/1.19.2 => groff}/font/devdvi/TREC | 0 .../groff/1.19.2 => groff}/font/devdvi/TRTC | 0 .../font/devdvi/generate/CompileFonts | 0 {src => groff}/font/devdvi/generate/Makefile | 0 .../font/devdvi/generate/ec.map | 0 .../font/devdvi/generate/msam.map | 0 .../font/devdvi/generate/msbm.map | 0 .../font/devdvi/generate/tc.map | 0 .../font/devdvi/generate/texb.map | 0 .../font/devdvi/generate/texex.map | 0 .../font/devdvi/generate/texi.map | 0 .../font/devdvi/generate/texmi.map | 0 .../font/devdvi/generate/texr.map | 0 .../font/devdvi/generate/texsy.map | 0 .../font/devdvi/generate/textex.map | 0 .../font/devdvi/generate/textt.map | 0 {src => groff}/font/devhtml/DESC.proto | 0 {src => groff}/font/devhtml/Makefile.sub | 0 {src => groff}/font/devhtml/R.proto | 0 {src => groff}/font/devlatin1/DESC.proto | 0 {src => groff}/font/devlatin1/Makefile.sub | 0 {src => groff}/font/devlatin1/R.proto | 0 .../groff/1.19.2 => groff}/font/devlbp/CB | 0 .../groff/1.19.2 => groff}/font/devlbp/CI | 0 .../groff/1.19.2 => groff}/font/devlbp/CR | 0 {src => groff}/font/devlbp/DESC.in | 0 .../groff/1.19.2 => groff}/font/devlbp/EB | 0 .../groff/1.19.2 => groff}/font/devlbp/EI | 0 .../groff/1.19.2 => groff}/font/devlbp/ER | 0 .../groff/1.19.2 => groff}/font/devlbp/HB | 0 .../groff/1.19.2 => groff}/font/devlbp/HBI | 0 .../groff/1.19.2 => groff}/font/devlbp/HI | 0 .../groff/1.19.2 => groff}/font/devlbp/HNB | 0 .../groff/1.19.2 => groff}/font/devlbp/HNBI | 0 .../groff/1.19.2 => groff}/font/devlbp/HNI | 0 .../groff/1.19.2 => groff}/font/devlbp/HNR | 0 .../groff/1.19.2 => groff}/font/devlbp/HR | 0 {src => groff}/font/devlbp/Makefile.sub | 0 .../groff/1.19.2 => groff}/font/devlbp/TB | 0 .../groff/1.19.2 => groff}/font/devlbp/TBI | 0 .../groff/1.19.2 => groff}/font/devlbp/TI | 0 .../groff/1.19.2 => groff}/font/devlbp/TR | 0 .../groff/1.19.2 => groff}/font/devlj4/AB | 0 .../groff/1.19.2 => groff}/font/devlj4/ABI | 0 .../groff/1.19.2 => groff}/font/devlj4/AI | 0 .../groff/1.19.2 => groff}/font/devlj4/ALBB | 0 .../groff/1.19.2 => groff}/font/devlj4/ALBR | 0 .../groff/1.19.2 => groff}/font/devlj4/AOB | 0 .../groff/1.19.2 => groff}/font/devlj4/AOI | 0 .../groff/1.19.2 => groff}/font/devlj4/AOR | 0 .../groff/1.19.2 => groff}/font/devlj4/AR | 0 .../groff/1.19.2 => groff}/font/devlj4/CB | 0 .../groff/1.19.2 => groff}/font/devlj4/CBI | 0 .../groff/1.19.2 => groff}/font/devlj4/CI | 0 .../1.19.2 => groff}/font/devlj4/CLARENDON | 0 .../1.19.2 => groff}/font/devlj4/CORONET | 0 .../groff/1.19.2 => groff}/font/devlj4/CR | 0 {src => groff}/font/devlj4/DESC.in | 0 .../groff/1.19.2 => groff}/font/devlj4/GB | 0 .../groff/1.19.2 => groff}/font/devlj4/GBI | 0 .../groff/1.19.2 => groff}/font/devlj4/GI | 0 .../groff/1.19.2 => groff}/font/devlj4/GR | 0 .../groff/1.19.2 => groff}/font/devlj4/LGB | 0 .../groff/1.19.2 => groff}/font/devlj4/LGI | 0 .../groff/1.19.2 => groff}/font/devlj4/LGR | 0 .../1.19.2 => groff}/font/devlj4/MARIGOLD | 0 {src => groff}/font/devlj4/Makefile.sub | 0 .../groff/1.19.2 => groff}/font/devlj4/OB | 0 .../groff/1.19.2 => groff}/font/devlj4/OBI | 0 .../groff/1.19.2 => groff}/font/devlj4/OI | 0 .../groff/1.19.2 => groff}/font/devlj4/OR | 0 .../groff/1.19.2 => groff}/font/devlj4/S | 0 .../groff/1.19.2 => groff}/font/devlj4/SYMBOL | 0 .../groff/1.19.2 => groff}/font/devlj4/TB | 0 .../groff/1.19.2 => groff}/font/devlj4/TBI | 0 .../groff/1.19.2 => groff}/font/devlj4/TI | 0 .../groff/1.19.2 => groff}/font/devlj4/TNRB | 0 .../groff/1.19.2 => groff}/font/devlj4/TNRBI | 0 .../groff/1.19.2 => groff}/font/devlj4/TNRI | 0 .../groff/1.19.2 => groff}/font/devlj4/TNRR | 0 .../groff/1.19.2 => groff}/font/devlj4/TR | 0 .../groff/1.19.2 => groff}/font/devlj4/UB | 0 .../groff/1.19.2 => groff}/font/devlj4/UBI | 0 .../groff/1.19.2 => groff}/font/devlj4/UCB | 0 .../groff/1.19.2 => groff}/font/devlj4/UCBI | 0 .../groff/1.19.2 => groff}/font/devlj4/UCI | 0 .../groff/1.19.2 => groff}/font/devlj4/UCR | 0 .../groff/1.19.2 => groff}/font/devlj4/UI | 0 .../groff/1.19.2 => groff}/font/devlj4/UR | 0 .../1.19.2 => groff}/font/devlj4/WINGDINGS | 0 {src => groff}/font/devlj4/generate/Makefile | 0 .../font/devlj4/generate/special.awk | 0 .../font/devlj4/generate/special.map | 0 .../font/devlj4/generate/symbol.map | 0 .../font/devlj4/generate/text.map | 0 .../font/devlj4/generate/wingdings.map | 0 .../groff/1.19.2 => groff}/font/devps/AB | 0 .../groff/1.19.2 => groff}/font/devps/ABI | 0 .../groff/1.19.2 => groff}/font/devps/AI | 0 .../groff/1.19.2 => groff}/font/devps/AR | 0 .../groff/1.19.2 => groff}/font/devps/BMB | 0 .../groff/1.19.2 => groff}/font/devps/BMBI | 0 .../groff/1.19.2 => groff}/font/devps/BMI | 0 .../groff/1.19.2 => groff}/font/devps/BMR | 0 .../groff/1.19.2 => groff}/font/devps/CB | 0 .../groff/1.19.2 => groff}/font/devps/CBI | 0 .../groff/1.19.2 => groff}/font/devps/CI | 0 .../groff/1.19.2 => groff}/font/devps/CR | 0 {src => groff}/font/devps/DESC.in | 0 .../groff/1.19.2 => groff}/font/devps/EURO | 0 .../groff/1.19.2 => groff}/font/devps/HB | 0 .../groff/1.19.2 => groff}/font/devps/HBI | 0 .../groff/1.19.2 => groff}/font/devps/HI | 0 .../groff/1.19.2 => groff}/font/devps/HNB | 0 .../groff/1.19.2 => groff}/font/devps/HNBI | 0 .../groff/1.19.2 => groff}/font/devps/HNI | 0 .../groff/1.19.2 => groff}/font/devps/HNR | 0 .../groff/1.19.2 => groff}/font/devps/HR | 0 {src => groff}/font/devps/Makefile.sub | 0 .../groff/1.19.2 => groff}/font/devps/NB | 0 .../groff/1.19.2 => groff}/font/devps/NBI | 0 .../groff/1.19.2 => groff}/font/devps/NI | 0 .../groff/1.19.2 => groff}/font/devps/NR | 0 .../groff/1.19.2 => groff}/font/devps/PB | 0 .../groff/1.19.2 => groff}/font/devps/PBI | 0 .../groff/1.19.2 => groff}/font/devps/PI | 0 .../groff/1.19.2 => groff}/font/devps/PR | 0 .../share/groff/1.19.2 => groff}/font/devps/S | 0 .../groff/1.19.2 => groff}/font/devps/SS | 0 .../groff/1.19.2 => groff}/font/devps/TB | 0 .../groff/1.19.2 => groff}/font/devps/TBI | 0 .../groff/1.19.2 => groff}/font/devps/TI | 0 .../groff/1.19.2 => groff}/font/devps/TR | 0 .../groff/1.19.2 => groff}/font/devps/ZCMI | 0 .../groff/1.19.2 => groff}/font/devps/ZD | 0 .../groff/1.19.2 => groff}/font/devps/ZDR | 0 .../1.19.2 => groff}/font/devps/download | 0 {src => groff}/font/devps/freeeuro.afm | 0 .../1.19.2 => groff}/font/devps/freeeuro.pfa | 0 {src => groff}/font/devps/generate/Makefile | 0 .../font/devps/generate/afmname | 0 .../font/devps/generate/dingbats.map | 0 .../font/devps/generate/dingbats.rmap | 0 .../font/devps/generate/freeeuro.sfd | 0 .../font/devps/generate/lgreekmap | 0 .../font/devps/generate/sfdtopfa.pe | 0 .../font/devps/generate/symbol.sed | 0 .../font/devps/generate/symbolchars | 0 .../font/devps/generate/symbolsl.afm | 0 .../font/devps/generate/textmap | 0 {src => groff}/font/devps/prologue.ps | 0 {src => groff}/font/devps/psstrip.sed | 0 {src => groff}/font/devps/symbol.afm | 0 {src => groff}/font/devps/symbolmap | 0 {src => groff}/font/devps/symbolsl.ps | 0 .../1.19.2 => groff}/font/devps/text.enc | 0 {src => groff}/font/devps/zapfdr.afm | 0 {src => groff}/font/devps/zapfdr.ps | 0 {src => groff}/font/devutf8/DESC.proto | 0 {src => groff}/font/devutf8/Makefile.sub | 0 {src => groff}/font/devutf8/NOTES | 0 {src => groff}/font/devutf8/R.proto | 0 {src => groff}/gendef.sh | 0 {src => groff}/install-sh | 0 {src => groff}/man/Makefile.sub | 0 {src => groff}/man/ditroff.man | 0 {src => groff}/man/groff.man | 0 {src => groff}/man/groff_char.man | 0 {src => groff}/man/groff_diff.man | 0 {src => groff}/man/groff_font.man | 0 {src => groff}/man/groff_out.man | 0 {src => groff}/man/groff_tmac.man | 0 {src => groff}/man/roff.man | 0 {src => groff}/mdate.sh | 0 {src => groff}/mkinstalldirs | 0 .../src/devices/grodvi/Makefile.sub | 0 {src => groff}/src/devices/grodvi/dvi.cpp | 0 {src => groff}/src/devices/grodvi/grodvi.man | 0 .../src/devices/grohtml/Makefile.sub | 0 .../src/devices/grohtml/grohtml.man | 0 .../src/devices/grohtml/html-table.cpp | 0 .../src/devices/grohtml/html-table.h | 0 .../src/devices/grohtml/html-text.cpp | 0 .../src/devices/grohtml/html-text.h | 0 {src => groff}/src/devices/grohtml/html.h | 0 {src => groff}/src/devices/grohtml/output.cpp | 0 .../src/devices/grohtml/post-html.cpp | 2 +- .../src/devices/grolbp/Makefile.sub | 0 {src => groff}/src/devices/grolbp/charset.h | 0 {src => groff}/src/devices/grolbp/grolbp.man | 0 {src => groff}/src/devices/grolbp/lbp.cpp | 0 {src => groff}/src/devices/grolbp/lbp.h | 0 .../src/devices/grolj4/Makefile.sub | 0 {src => groff}/src/devices/grolj4/grolj4.man | 0 {src => groff}/src/devices/grolj4/lj4.cpp | 0 .../src/devices/grolj4/lj4_font.man | 0 {src => groff}/src/devices/grops/Makefile.sub | 0 {src => groff}/src/devices/grops/TODO | 0 {src => groff}/src/devices/grops/grops.man | 0 {src => groff}/src/devices/grops/ps.cpp | 0 {src => groff}/src/devices/grops/ps.h | 0 {src => groff}/src/devices/grops/psfig.diff | 0 {src => groff}/src/devices/grops/psrm.cpp | 0 .../src/devices/grotty/Makefile.sub | 0 {src => groff}/src/devices/grotty/TODO | 0 {src => groff}/src/devices/grotty/grotty.man | 0 {src => groff}/src/devices/grotty/tty.cpp | 0 {src => groff}/src/devices/xditview/ChangeLog | 0 {src => groff}/src/devices/xditview/DESC.in | 0 {src => groff}/src/devices/xditview/Dvi.c | 0 {src => groff}/src/devices/xditview/Dvi.h | 0 {src => groff}/src/devices/xditview/DviP.h | 0 {src => groff}/src/devices/xditview/FontMap | 0 .../src/devices/xditview/GXditview.ad | 0 .../src/devices/xditview/Makefile.sub | 0 {src => groff}/src/devices/xditview/Menu.h | 0 {src => groff}/src/devices/xditview/README | 0 {src => groff}/src/devices/xditview/TODO | 0 {src => groff}/src/devices/xditview/ad2c | 0 {src => groff}/src/devices/xditview/device.c | 0 {src => groff}/src/devices/xditview/device.h | 0 {src => groff}/src/devices/xditview/draw.c | 0 {src => groff}/src/devices/xditview/font.c | 0 {src => groff}/src/devices/xditview/gray1.bm | 0 {src => groff}/src/devices/xditview/gray2.bm | 0 {src => groff}/src/devices/xditview/gray3.bm | 0 {src => groff}/src/devices/xditview/gray4.bm | 0 {src => groff}/src/devices/xditview/gray5.bm | 0 {src => groff}/src/devices/xditview/gray6.bm | 0 {src => groff}/src/devices/xditview/gray7.bm | 0 {src => groff}/src/devices/xditview/gray8.bm | 0 .../src/devices/xditview/gxditview.man | 0 {src => groff}/src/devices/xditview/lex.c | 0 {src => groff}/src/devices/xditview/page.c | 0 {src => groff}/src/devices/xditview/parse.c | 0 {src => groff}/src/devices/xditview/xdit.bm | 0 .../src/devices/xditview/xdit_mask.bm | 0 .../src/devices/xditview/xditview.c | 0 {src => groff}/src/include/DviChar.h | 0 {src => groff}/src/include/Makefile.sub | 0 {src => groff}/src/include/XFontName.h | 0 {src => groff}/src/include/assert.h | 0 {src => groff}/src/include/cmap.h | 0 {src => groff}/src/include/color.h | 0 {src => groff}/src/include/config.hin | 0 {src => groff}/src/include/cset.h | 0 {src => groff}/src/include/device.h | 0 {src => groff}/src/include/driver.h | 0 {src => groff}/src/include/errarg.h | 0 {src => groff}/src/include/error.h | 0 {src => groff}/src/include/font.h | 0 {src => groff}/src/include/geometry.h | 0 {src => groff}/src/include/getopt.h | 0 {src => groff}/src/include/getopt_int.h | 0 {src => groff}/src/include/gettext.h | 0 {src => groff}/src/include/html-strings.h | 0 {src => groff}/src/include/htmlhint.h | 0 {src => groff}/src/include/index.h | 0 {src => groff}/src/include/lib.h | 0 {src => groff}/src/include/macropath.h | 0 {src => groff}/src/include/nonposix.h | 0 {src => groff}/src/include/paper.h | 0 {src => groff}/src/include/posix.h | 0 {src => groff}/src/include/printer.h | 0 {src => groff}/src/include/ptable.h | 0 {src => groff}/src/include/refid.h | 0 {src => groff}/src/include/relocate.h | 0 {src => groff}/src/include/search.h | 0 {src => groff}/src/include/searchpath.h | 0 {src => groff}/src/include/stringclass.h | 0 {src => groff}/src/include/symbol.h | 0 {src => groff}/src/include/unicode.h | 0 {src => groff}/src/libs/libbib/Makefile.sub | 0 {src => groff}/src/libs/libbib/common.cpp | 0 {src => groff}/src/libs/libbib/index.cpp | 0 {src => groff}/src/libs/libbib/linear.cpp | 0 {src => groff}/src/libs/libbib/map.c | 0 {src => groff}/src/libs/libbib/search.cpp | 0 .../src/libs/libdriver/Makefile.sub | 0 {src => groff}/src/libs/libdriver/input.cpp | 0 {src => groff}/src/libs/libdriver/printer.cpp | 0 {src => groff}/src/libs/libgroff/Makefile.sub | 0 {src => groff}/src/libs/libgroff/assert.cpp | 0 .../src/libs/libgroff/change_lf.cpp | 0 {src => groff}/src/libs/libgroff/cmap.cpp | 0 {src => groff}/src/libs/libgroff/color.cpp | 0 {src => groff}/src/libs/libgroff/cset.cpp | 0 {src => groff}/src/libs/libgroff/device.cpp | 0 {src => groff}/src/libs/libgroff/errarg.cpp | 0 {src => groff}/src/libs/libgroff/error.cpp | 0 {src => groff}/src/libs/libgroff/fatal.cpp | 0 {src => groff}/src/libs/libgroff/filename.cpp | 0 {src => groff}/src/libs/libgroff/fmod.c | 0 {src => groff}/src/libs/libgroff/font.cpp | 0 {src => groff}/src/libs/libgroff/fontfile.cpp | 0 {src => groff}/src/libs/libgroff/geometry.cpp | 0 {src => groff}/src/libs/libgroff/getcwd.c | 0 {src => groff}/src/libs/libgroff/getopt.c | 2 +- {src => groff}/src/libs/libgroff/getopt1.c | 2 +- {src => groff}/src/libs/libgroff/glyphuni.cpp | 0 {src => groff}/src/libs/libgroff/htmlhint.cpp | 0 {src => groff}/src/libs/libgroff/hypot.cpp | 0 {src => groff}/src/libs/libgroff/iftoa.c | 0 {src => groff}/src/libs/libgroff/invalid.cpp | 0 {src => groff}/src/libs/libgroff/itoa.c | 0 {src => groff}/src/libs/libgroff/lf.cpp | 0 {src => groff}/src/libs/libgroff/lineno.cpp | 0 .../src/libs/libgroff/macropath.cpp | 0 {src => groff}/src/libs/libgroff/matherr.c | 0 .../src/libs/libgroff/maxfilename.cpp | 0 .../src/libs/libgroff/maxpathname.cpp | 0 {src => groff}/src/libs/libgroff/mksdir.cpp | 0 {src => groff}/src/libs/libgroff/mkstemp.cpp | 0 .../src/libs/libgroff/nametoindex.cpp | 0 {src => groff}/src/libs/libgroff/new.cpp | 0 {src => groff}/src/libs/libgroff/paper.cpp | 0 {src => groff}/src/libs/libgroff/prime.cpp | 0 {src => groff}/src/libs/libgroff/progname.c | 0 {src => groff}/src/libs/libgroff/ptable.cpp | 0 {src => groff}/src/libs/libgroff/putenv.c | 0 {src => groff}/src/libs/libgroff/quotearg.c | 0 {src => groff}/src/libs/libgroff/relocate.cpp | 0 .../src/libs/libgroff/searchpath.cpp | 0 {src => groff}/src/libs/libgroff/spawnvp.c | 0 {src => groff}/src/libs/libgroff/strcasecmp.c | 0 {src => groff}/src/libs/libgroff/strerror.c | 0 {src => groff}/src/libs/libgroff/string.cpp | 0 .../src/libs/libgroff/strncasecmp.c | 0 {src => groff}/src/libs/libgroff/strsave.cpp | 0 {src => groff}/src/libs/libgroff/strtol.c | 0 {src => groff}/src/libs/libgroff/symbol.cpp | 0 {src => groff}/src/libs/libgroff/tmpfile.cpp | 0 {src => groff}/src/libs/libgroff/tmpname.cpp | 0 {src => groff}/src/libs/libgroff/unicode.cpp | 0 {src => groff}/src/libs/libgroff/uniglyph.cpp | 0 {src => groff}/src/libs/libgroff/uniuni.cpp | 0 {src => groff}/src/libs/libxutil/DviChar.c | 0 {src => groff}/src/libs/libxutil/Makefile.sub | 0 {src => groff}/src/libs/libxutil/XFontName.c | 0 {src => groff}/src/libs/libxutil/xmalloc.c | 0 {src => groff}/src/libs/snprintf/README | 0 {src => groff}/src/libs/snprintf/snprintf.c | 0 {src => groff}/src/preproc/eqn/Makefile.sub | 0 {src => groff}/src/preproc/eqn/TODO | 0 {src => groff}/src/preproc/eqn/box.cpp | 0 {src => groff}/src/preproc/eqn/box.h | 0 {src => groff}/src/preproc/eqn/delim.cpp | 0 {src => groff}/src/preproc/eqn/eqn.cpp | 0 {src => groff}/src/preproc/eqn/eqn.h | 0 {src => groff}/src/preproc/eqn/eqn.man | 0 {src => groff}/src/preproc/eqn/eqn.y | 0 {src => groff}/src/preproc/eqn/eqn_tab.h | 0 {src => groff}/src/preproc/eqn/lex.cpp | 0 {src => groff}/src/preproc/eqn/limit.cpp | 0 {src => groff}/src/preproc/eqn/list.cpp | 0 {src => groff}/src/preproc/eqn/main.cpp | 0 {src => groff}/src/preproc/eqn/mark.cpp | 0 {src => groff}/src/preproc/eqn/neqn.man | 0 {src => groff}/src/preproc/eqn/neqn.sh | 0 {src => groff}/src/preproc/eqn/other.cpp | 0 {src => groff}/src/preproc/eqn/over.cpp | 0 {src => groff}/src/preproc/eqn/pbox.h | 0 {src => groff}/src/preproc/eqn/pile.cpp | 0 {src => groff}/src/preproc/eqn/script.cpp | 0 {src => groff}/src/preproc/eqn/special.cpp | 0 {src => groff}/src/preproc/eqn/sqrt.cpp | 0 {src => groff}/src/preproc/eqn/text.cpp | 0 {src => groff}/src/preproc/grn/Makefile.sub | 0 {src => groff}/src/preproc/grn/README | 0 {src => groff}/src/preproc/grn/gprint.h | 0 {src => groff}/src/preproc/grn/grn.man | 0 {src => groff}/src/preproc/grn/hdb.cpp | 0 {src => groff}/src/preproc/grn/hgraph.cpp | 0 {src => groff}/src/preproc/grn/hpoint.cpp | 0 {src => groff}/src/preproc/grn/main.cpp | 0 {src => groff}/src/preproc/html/Makefile.sub | 0 {src => groff}/src/preproc/html/pre-html.cpp | 0 {src => groff}/src/preproc/html/pre-html.h | 0 {src => groff}/src/preproc/html/pushback.cpp | 0 {src => groff}/src/preproc/html/pushback.h | 0 {src => groff}/src/preproc/pic/Makefile.sub | 0 {src => groff}/src/preproc/pic/TODO | 0 {src => groff}/src/preproc/pic/common.cpp | 0 {src => groff}/src/preproc/pic/common.h | 0 {src => groff}/src/preproc/pic/lex.cpp | 0 {src => groff}/src/preproc/pic/main.cpp | 0 {src => groff}/src/preproc/pic/object.cpp | 0 {src => groff}/src/preproc/pic/object.h | 0 {src => groff}/src/preproc/pic/output.h | 0 {src => groff}/src/preproc/pic/pic.cpp | 0 {src => groff}/src/preproc/pic/pic.h | 0 {src => groff}/src/preproc/pic/pic.man | 0 {src => groff}/src/preproc/pic/pic.y | 0 {src => groff}/src/preproc/pic/pic_tab.h | 0 {src => groff}/src/preproc/pic/position.h | 0 {src => groff}/src/preproc/pic/tex.cpp | 0 {src => groff}/src/preproc/pic/text.h | 0 {src => groff}/src/preproc/pic/troff.cpp | 0 {src => groff}/src/preproc/refer/Makefile.sub | 0 {src => groff}/src/preproc/refer/TODO | 0 {src => groff}/src/preproc/refer/command.cpp | 0 {src => groff}/src/preproc/refer/command.h | 0 {src => groff}/src/preproc/refer/label.cpp | 0 {src => groff}/src/preproc/refer/label.y | 0 {src => groff}/src/preproc/refer/ref.cpp | 0 {src => groff}/src/preproc/refer/ref.h | 0 {src => groff}/src/preproc/refer/refer.cpp | 0 {src => groff}/src/preproc/refer/refer.h | 0 {src => groff}/src/preproc/refer/refer.man | 0 {src => groff}/src/preproc/refer/token.cpp | 0 {src => groff}/src/preproc/refer/token.h | 0 .../src/preproc/soelim/Makefile.sub | 0 {src => groff}/src/preproc/soelim/TODO | 0 {src => groff}/src/preproc/soelim/soelim.cpp | 0 {src => groff}/src/preproc/soelim/soelim.man | 0 {src => groff}/src/preproc/tbl/Makefile.sub | 0 {src => groff}/src/preproc/tbl/main.cpp | 0 {src => groff}/src/preproc/tbl/table.cpp | 0 {src => groff}/src/preproc/tbl/table.h | 0 {src => groff}/src/preproc/tbl/tbl.man | 0 {src => groff}/src/roff/groff/Makefile.sub | 0 {src => groff}/src/roff/groff/groff.cpp | 0 {src => groff}/src/roff/groff/groff.man | 0 {src => groff}/src/roff/groff/pipeline.c | 0 {src => groff}/src/roff/groff/pipeline.h | 0 {src => groff}/src/roff/grog/Makefile.sub | 0 {src => groff}/src/roff/grog/grog.man | 0 {src => groff}/src/roff/grog/grog.pl | 0 {src => groff}/src/roff/grog/grog.sh | 0 {src => groff}/src/roff/nroff/Makefile.sub | 0 {src => groff}/src/roff/nroff/nroff.man | 0 {src => groff}/src/roff/nroff/nroff.sh | 0 {src => groff}/src/roff/troff/Makefile.sub | 0 {src => groff}/src/roff/troff/TODO | 0 {src => groff}/src/roff/troff/charinfo.h | 0 {src => groff}/src/roff/troff/column.cpp | 0 {src => groff}/src/roff/troff/dictionary.cpp | 0 {src => groff}/src/roff/troff/dictionary.h | 0 {src => groff}/src/roff/troff/div.cpp | 0 {src => groff}/src/roff/troff/div.h | 0 {src => groff}/src/roff/troff/env.cpp | 0 {src => groff}/src/roff/troff/env.h | 0 {src => groff}/src/roff/troff/hvunits.h | 0 {src => groff}/src/roff/troff/input.cpp | 0 {src => groff}/src/roff/troff/input.h | 0 {src => groff}/src/roff/troff/mtsm.cpp | 0 {src => groff}/src/roff/troff/mtsm.h | 0 {src => groff}/src/roff/troff/node.cpp | 2 +- {src => groff}/src/roff/troff/node.h | 0 {src => groff}/src/roff/troff/number.cpp | 0 {src => groff}/src/roff/troff/reg.cpp | 0 {src => groff}/src/roff/troff/reg.h | 0 {src => groff}/src/roff/troff/request.h | 0 {src => groff}/src/roff/troff/token.h | 0 {src => groff}/src/roff/troff/troff.h | 0 {src => groff}/src/roff/troff/troff.man | 0 .../src/utils/addftinfo/Makefile.sub | 0 .../src/utils/addftinfo/addftinfo.cpp | 0 .../src/utils/addftinfo/addftinfo.man | 0 {src => groff}/src/utils/addftinfo/guess.cpp | 0 {src => groff}/src/utils/addftinfo/guess.h | 0 .../src/utils/afmtodit/Makefile.sub | 0 .../src/utils/afmtodit/afmtodit.man | 0 {src => groff}/src/utils/afmtodit/afmtodit.pl | 0 .../src/utils/hpftodit/Makefile.sub | 0 .../src/utils/hpftodit/hpftodit.cpp | 4 +- .../src/utils/hpftodit/hpftodit.man | 0 {src => groff}/src/utils/hpftodit/hpuni.cpp | 0 {src => groff}/src/utils/indxbib/Makefile.sub | 0 .../1.19.2 => groff/src/utils/indxbib}/eign | 0 {src => groff}/src/utils/indxbib/indxbib.cpp | 0 {src => groff}/src/utils/indxbib/indxbib.man | 0 {src => groff}/src/utils/indxbib/signal.c | 0 {src => groff}/src/utils/lkbib/Makefile.sub | 0 {src => groff}/src/utils/lkbib/lkbib.cpp | 0 {src => groff}/src/utils/lkbib/lkbib.man | 0 {src => groff}/src/utils/lookbib/Makefile.sub | 0 {src => groff}/src/utils/lookbib/lookbib.cpp | 0 {src => groff}/src/utils/lookbib/lookbib.man | 0 {src => groff}/src/utils/pfbtops/Makefile.sub | 0 {src => groff}/src/utils/pfbtops/pfbtops.c | 0 {src => groff}/src/utils/pfbtops/pfbtops.man | 0 .../src/utils/tfmtodit/Makefile.sub | 0 .../src/utils/tfmtodit/tfmtodit.cpp | 0 .../src/utils/tfmtodit/tfmtodit.man | 0 {src => groff}/src/utils/xtotroff/Makefile.in | 0 .../src/utils/xtotroff/Makefile.sub | 0 {src => groff}/src/utils/xtotroff/xtotroff.c | 0 .../src/utils/xtotroff/xtotroff.man | 0 {src => groff}/stamp-h.in | 0 {src => groff}/test-groff.in | 0 {src => groff}/tmac/Makefile.sub | 0 {src => groff}/tmac/README | 0 {src => groff}/tmac/TODO | 0 .../share/groff/1.19.2 => groff}/tmac/X.tmac | 0 .../groff/1.19.2 => groff}/tmac/Xps.tmac | 0 .../share/groff/1.19.2 => groff}/tmac/a4.tmac | 0 .../groff/1.19.2 => groff}/tmac/an-old.tmac | 0 .../share/groff/1.19.2 => groff}/tmac/an.tmac | 0 .../groff/1.19.2 => groff}/tmac/andoc.tmac | 0 .../1.19.2 => groff}/tmac/composite.tmac | 0 .../groff/1.19.2 => groff}/tmac/cp1047.tmac | 0 .../groff/1.19.2 => groff}/tmac/devtag.tmac | 0 {src => groff}/tmac/doc-common | 0 {src => groff}/tmac/doc-ditroff | 0 {src => groff}/tmac/doc-nroff | 0 .../groff/1.19.2 => groff}/tmac/doc-old.tmac | 0 {src => groff}/tmac/doc-syms | 0 {src => groff}/tmac/doc.tmac | 0 .../groff/1.19.2 => groff}/tmac/dvi.tmac | 0 {src => groff}/tmac/e.tmac | 0 .../share/groff/1.19.2 => groff}/tmac/ec.tmac | 0 .../share/groff/1.19.2 => groff}/tmac/eqnrc | 0 .../groff/1.19.2 => groff}/tmac/europs.tmac | 0 {src => groff}/tmac/fixmacros.sed | 0 {src => groff}/tmac/groff_man.man | 0 {src => groff}/tmac/groff_mdoc.man | 0 {src => groff}/tmac/groff_me.man | 0 {src => groff}/tmac/groff_ms.man | 0 {src => groff}/tmac/groff_trace.man | 0 {src => groff}/tmac/groff_www.man | 0 .../groff/1.19.2 => groff}/tmac/html-end.tmac | 0 .../groff/1.19.2 => groff}/tmac/html.tmac | 0 .../groff/1.19.2 => groff}/tmac/hyphen.us | 0 {src => groff}/tmac/hyphenex.pl | 0 .../groff/1.19.2 => groff}/tmac/hyphenex.us | 0 .../groff/1.19.2 => groff}/tmac/latin1.tmac | 0 .../groff/1.19.2 => groff}/tmac/latin2.tmac | 0 {src => groff}/tmac/latin5.tmac | 0 .../groff/1.19.2 => groff}/tmac/latin9.tmac | 0 .../groff/1.19.2 => groff}/tmac/lbp.tmac | 0 .../groff/1.19.2 => groff}/tmac/lj4.tmac | 0 .../groff/site-tmac => groff/tmac}/man.local | 0 .../groff/1.19.2 => groff}/tmac/man.tmac | 0 {src => groff}/tmac/man.ultrix | 0 .../groff/1.19.2 => groff}/tmac/mandoc.tmac | 0 .../groff/site-tmac => groff/tmac}/mdoc.local | 0 .../groff/1.19.2 => groff}/tmac/mdoc.tmac | 0 .../share/groff/1.19.2 => groff}/tmac/me.tmac | 0 .../share/groff/1.19.2 => groff}/tmac/ms.tmac | 0 .../1.19.2 => groff}/tmac/papersize.tmac | 0 .../groff/1.19.2 => groff}/tmac/pic.tmac | 0 .../share/groff/1.19.2 => groff}/tmac/ps.tmac | 0 .../groff/1.19.2 => groff}/tmac/psatk.tmac | 0 {src => groff}/tmac/psfig.tmac | 0 .../groff/1.19.2 => groff}/tmac/psold.tmac | 0 .../groff/1.19.2 => groff}/tmac/pspic.tmac | 0 .../share/groff/1.19.2 => groff}/tmac/s.tmac | 0 .../groff/1.19.2 => groff}/tmac/safer.tmac | 0 {src => groff}/tmac/strip.sed | 0 .../groff/1.19.2 => groff}/tmac/trace.tmac | 0 .../share/groff/1.19.2 => groff}/tmac/troffrc | 0 .../groff/1.19.2 => groff}/tmac/troffrc-end | 0 .../groff/1.19.2 => groff}/tmac/tty-char.tmac | 0 .../groff/1.19.2 => groff}/tmac/tty.tmac | 0 .../groff/1.19.2 => groff}/tmac/unicode.tmac | 0 {src => groff}/tmac/www.tmac | 0 patches/PR-13280133.diff | 11 + patches/groff-25537049.diff | 39 + patches/remove-2graph.diff | 12 + patches/remove-pdfroff.diff | 13 + patches/tmac__doc-common.diff | 165 + patches/tmac__doc-syms.diff | 165 + patches/tmac__groff_mdoc.man.diff | 11 + patches/tmac__troffrc.diff | 15 + patches/utf8.diff | 1347 ++ src/contrib/mm/m.tmac | 3536 ---- src/contrib/mm/mm.tmac | 3 - src/contrib/mm/mm/0.MT | 146 - src/contrib/mm/mm/4.MT | 82 - src/contrib/mm/mm/5.MT | 34 - src/contrib/mm/mm/ms.cov | 84 - src/contrib/mm/mm/se_ms.cov | 3 - src/contrib/mm/mmse.tmac | 3 - src/contrib/mm/mse.tmac | 184 - src/contrib/mom/examples/README.txt | 115 - src/contrib/mom/examples/elvis_syntax | 90 - src/contrib/mom/examples/elvis_syntax.new | 106 - src/contrib/mom/examples/letter.mom | 34 - src/contrib/mom/examples/penguin.ps | 461 - src/contrib/mom/examples/sample_docs.mom | 574 - src/contrib/mom/examples/typesetting.mom | 673 - src/contrib/mom/mom.tmac | 3 - src/contrib/mom/momdoc/color.html | 338 - src/contrib/mom/momdoc/cover.html | 512 - src/contrib/mom/momdoc/definitions.html | 768 - src/contrib/mom/momdoc/docelement.html | 5041 ----- src/contrib/mom/momdoc/docprocessing.html | 2484 --- src/contrib/mom/momdoc/goodies.html | 1057 - src/contrib/mom/momdoc/headfootpage.html | 1636 -- src/contrib/mom/momdoc/inlines.html | 802 - src/contrib/mom/momdoc/intro.html | 405 - src/contrib/mom/momdoc/letters.html | 463 - src/contrib/mom/momdoc/macrolist.html | 1794 -- src/contrib/mom/momdoc/rectoverso.html | 253 - src/contrib/mom/momdoc/refer.html | 1482 -- src/contrib/mom/momdoc/reserved.html | 2200 --- src/contrib/mom/momdoc/toc.html | 329 - src/contrib/mom/momdoc/typemacdoc.html | 235 - src/contrib/mom/momdoc/typesetting.html | 4189 ---- src/contrib/mom/momdoc/using.html | 230 - src/contrib/mom/om.tmac | 15889 ---------------- src/contrib/pdfmark/pdfmark.tmac | 1562 -- src/contrib/pdfmark/spdf.tmac | 225 - src/doc/grnexmpl.g | 3250 ---- src/doc/grnexmpl.me | 84 - src/doc/groff.css | 17 - src/doc/meintro.me | 2243 --- src/doc/meref.me | 2223 --- src/doc/pic.ms | 2982 --- src/font/devdvi/CW | 152 - src/font/devdvi/CWEC | 280 - src/font/devdvi/CWI | 152 - src/font/devdvi/CWIEC | 281 - src/font/devdvi/CWITC | 138 - src/font/devdvi/CWTC | 137 - src/font/devdvi/EX | 143 - src/font/devdvi/HB | 297 - src/font/devdvi/HBEC | 2078 -- src/font/devdvi/HBI | 298 - src/font/devdvi/HBIEC | 2079 -- src/font/devdvi/HBITC | 138 - src/font/devdvi/HBTC | 137 - src/font/devdvi/HI | 298 - src/font/devdvi/HIEC | 2079 -- src/font/devdvi/HITC | 138 - src/font/devdvi/HR | 297 - src/font/devdvi/HREC | 2078 -- src/font/devdvi/HRTC | 137 - src/font/devdvi/MI | 136 - src/font/devdvi/S | 149 - src/font/devdvi/SA | 141 - src/font/devdvi/SB | 132 - src/font/devdvi/SC | 137 - src/font/devdvi/TB | 348 - src/font/devdvi/TBEC | 2306 --- src/font/devdvi/TBI | 354 - src/font/devdvi/TBIEC | 2765 --- src/font/devdvi/TBITC | 138 - src/font/devdvi/TBTC | 137 - src/font/devdvi/TI | 355 - src/font/devdvi/TIEC | 2765 --- src/font/devdvi/TITC | 138 - src/font/devdvi/TR | 431 - src/font/devdvi/TREC | 2306 --- src/font/devdvi/TRTC | 137 - src/font/devdvi/generate/CompileFonts | 15 - src/font/devdvi/generate/ec.map | 255 - src/font/devdvi/generate/msam.map | 127 - src/font/devdvi/generate/msbm.map | 121 - src/font/devdvi/generate/tc.map | 80 - src/font/devdvi/generate/texb.map | 128 - src/font/devdvi/generate/texex.map | 100 - src/font/devdvi/generate/texi.map | 128 - src/font/devdvi/generate/texmi.map | 46 - src/font/devdvi/generate/texr.map | 128 - src/font/devdvi/generate/texsy.map | 127 - src/font/devdvi/generate/textex.map | 34 - src/font/devdvi/generate/textt.map | 128 - src/font/devlbp/CB | 216 - src/font/devlbp/CI | 216 - src/font/devlbp/CR | 216 - src/font/devlbp/EB | 216 - src/font/devlbp/EI | 216 - src/font/devlbp/ER | 216 - src/font/devlbp/HB | 400 - src/font/devlbp/HBI | 401 - src/font/devlbp/HI | 401 - src/font/devlbp/HNB | 400 - src/font/devlbp/HNBI | 400 - src/font/devlbp/HNI | 400 - src/font/devlbp/HNR | 400 - src/font/devlbp/HR | 400 - src/font/devlbp/TB | 422 - src/font/devlbp/TBI | 402 - src/font/devlbp/TI | 430 - src/font/devlbp/TR | 426 - src/font/devlj4/AB | 428 - src/font/devlj4/ABI | 428 - src/font/devlj4/AI | 426 - src/font/devlj4/ALBB | 756 - src/font/devlj4/ALBR | 771 - src/font/devlj4/AOB | 720 - src/font/devlj4/AOI | 782 - src/font/devlj4/AOR | 708 - src/font/devlj4/AR | 430 - src/font/devlj4/CB | 330 - src/font/devlj4/CBI | 331 - src/font/devlj4/CI | 331 - src/font/devlj4/CLARENDON | 331 - src/font/devlj4/CORONET | 332 - src/font/devlj4/CR | 330 - src/font/devlj4/GB | 718 - src/font/devlj4/GBI | 718 - src/font/devlj4/GI | 653 - src/font/devlj4/GR | 836 - src/font/devlj4/LGB | 330 - src/font/devlj4/LGI | 331 - src/font/devlj4/LGR | 330 - src/font/devlj4/MARIGOLD | 331 - src/font/devlj4/OB | 784 - src/font/devlj4/OBI | 776 - src/font/devlj4/OI | 887 - src/font/devlj4/OR | 863 - src/font/devlj4/S | 319 - src/font/devlj4/SYMBOL | 220 - src/font/devlj4/TB | 953 - src/font/devlj4/TBI | 1006 - src/font/devlj4/TI | 1090 -- src/font/devlj4/TNRB | 444 - src/font/devlj4/TNRBI | 433 - src/font/devlj4/TNRI | 450 - src/font/devlj4/TNRR | 436 - src/font/devlj4/TR | 843 - src/font/devlj4/UB | 797 - src/font/devlj4/UBI | 748 - src/font/devlj4/UCB | 758 - src/font/devlj4/UCBI | 666 - src/font/devlj4/UCI | 806 - src/font/devlj4/UCR | 727 - src/font/devlj4/UI | 950 - src/font/devlj4/UR | 848 - src/font/devlj4/WINGDINGS | 230 - src/font/devlj4/generate/special.awk | 82 - src/font/devlj4/generate/special.map | 271 - src/font/devlj4/generate/symbol.map | 199 - src/font/devlj4/generate/text.map | 845 - src/font/devlj4/generate/wingdings.map | 233 - src/font/devps/AB | 492 - src/font/devps/ABI | 493 - src/font/devps/AI | 493 - src/font/devps/AR | 492 - src/font/devps/BMB | 346 - src/font/devps/BMBI | 349 - src/font/devps/BMI | 342 - src/font/devps/BMR | 338 - src/font/devps/CB | 281 - src/font/devps/CBI | 282 - src/font/devps/CI | 282 - src/font/devps/CR | 281 - src/font/devps/EURO | 19 - src/font/devps/HB | 481 - src/font/devps/HBI | 482 - src/font/devps/HI | 521 - src/font/devps/HNB | 481 - src/font/devps/HNBI | 482 - src/font/devps/HNI | 521 - src/font/devps/HNR | 520 - src/font/devps/HR | 520 - src/font/devps/NB | 392 - src/font/devps/NBI | 510 - src/font/devps/NI | 453 - src/font/devps/NR | 440 - src/font/devps/PB | 370 - src/font/devps/PBI | 376 - src/font/devps/PI | 375 - src/font/devps/PR | 377 - src/font/devps/S | 229 - src/font/devps/SS | 194 - src/font/devps/TB | 460 - src/font/devps/TBI | 443 - src/font/devps/TI | 456 - src/font/devps/TR | 448 - src/font/devps/ZCMI | 403 - src/font/devps/ZD | 207 - src/font/devps/ZDR | 207 - src/font/devps/download | 6 - src/font/devps/freeeuro.pfa | 316 - src/font/devps/generate/afmname | 44 - src/font/devps/generate/dingbats.map | 5 - src/font/devps/generate/dingbats.rmap | 4 - src/font/devps/generate/lgreekmap | 31 - src/font/devps/generate/symbol.sed | 33 - src/font/devps/generate/symbolchars | 65 - src/font/devps/generate/symbolsl.afm | 203 - src/font/devps/generate/textmap | 374 - src/font/devps/text.enc | 236 - src/src/utils/indxbib/eign | 133 - src/tmac/X.tmac | 132 - src/tmac/Xps.tmac | 59 - src/tmac/a4.tmac | 20 - src/tmac/an-old.tmac | 638 - src/tmac/an.tmac | 3 - src/tmac/andoc.tmac | 19 - src/tmac/composite.tmac | 25 - src/tmac/cp1047.tmac | 101 - src/tmac/devtag.tmac | 131 - src/tmac/doc-old.tmac | 1856 -- src/tmac/dvi.tmac | 788 - src/tmac/ec.tmac | 64 - src/tmac/eqnrc | 63 - src/tmac/europs.tmac | 38 - src/tmac/html-end.tmac | 25 - src/tmac/html.tmac | 546 - src/tmac/hyphen.us | 4469 ----- src/tmac/hyphenex.us | 896 - src/tmac/latin1.tmac | 107 - src/tmac/latin2.tmac | 107 - src/tmac/latin9.tmac | 107 - src/tmac/lbp.tmac | 94 - src/tmac/lj4.tmac | 32 - src/tmac/man.local | 2 - src/tmac/man.tmac | 3 - src/tmac/mandoc.tmac | 3 - src/tmac/mdoc.local | 2 - src/tmac/mdoc.tmac | 3 - src/tmac/me.tmac | 3 - src/tmac/ms.tmac | 3 - src/tmac/papersize.tmac | 158 - src/tmac/pic.tmac | 12 - src/tmac/ps.tmac | 694 - src/tmac/psatk.tmac | 63 - src/tmac/psold.tmac | 61 - src/tmac/pspic.tmac | 106 - src/tmac/s.tmac | 2076 -- src/tmac/safer.tmac | 5 - src/tmac/trace.tmac | 111 - src/tmac/troffrc | 54 - src/tmac/troffrc-end | 19 - src/tmac/tty-char.tmac | 237 - src/tmac/tty.tmac | 91 - src/tmac/unicode.tmac | 3 - 1238 files changed, 1879 insertions(+), 257604 deletions(-) create mode 100644 Makefile delete mode 100644 gen/include/config.h delete mode 100644 gen/include/defs.h delete mode 100644 gen/include/majorminor.cpp delete mode 100644 gen/src/majorminor.cpp delete mode 100755 gen/usr/bin/afmtodit delete mode 100755 gen/usr/bin/eqn2graph delete mode 100755 gen/usr/bin/gdiffmk delete mode 100755 gen/usr/bin/grap2graph delete mode 100755 gen/usr/bin/groffer delete mode 100755 gen/usr/bin/grog delete mode 100755 gen/usr/bin/mmroff delete mode 100755 gen/usr/bin/neqn delete mode 100755 gen/usr/bin/nroff delete mode 100755 gen/usr/bin/pic2graph delete mode 100755 gen/usr/lib/groff/groffer/groffer2.sh delete mode 100644 gen/usr/lib/groff/site-tmac/.gitkeep delete mode 100644 gen/usr/share/doc/groff/1.19.2/examples/grnexmpl.ps delete mode 100644 gen/usr/share/doc/groff/1.19.2/examples/mom/letter.ps delete mode 100644 gen/usr/share/doc/groff/1.19.2/examples/mom/sample_docs.ps delete mode 100644 gen/usr/share/doc/groff/1.19.2/examples/mom/typesetting.ps delete mode 100644 gen/usr/share/doc/groff/1.19.2/examples/webpage.ms delete mode 100644 gen/usr/share/doc/groff/1.19.2/examples/webpage.ps delete mode 100644 gen/usr/share/doc/groff/1.19.2/html/mom/appendices.html delete mode 100644 gen/usr/share/doc/groff/1.19.2/meintro.ps delete mode 100644 gen/usr/share/doc/groff/1.19.2/meref.ps delete mode 100644 gen/usr/share/doc/groff/1.19.2/pdf/pdfmark.pdf delete mode 100644 gen/usr/share/doc/groff/1.19.2/pic.ps delete mode 100644 gen/usr/share/groff/1.19.2/font/devascii/B delete mode 100644 gen/usr/share/groff/1.19.2/font/devascii/BI delete mode 100644 gen/usr/share/groff/1.19.2/font/devascii/DESC delete mode 100644 gen/usr/share/groff/1.19.2/font/devascii/I delete mode 100644 gen/usr/share/groff/1.19.2/font/devascii/R delete mode 100644 gen/usr/share/groff/1.19.2/font/devdvi/DESC delete mode 100644 gen/usr/share/groff/1.19.2/font/devdvi/generate/Makefile delete mode 100644 gen/usr/share/groff/1.19.2/font/devhtml/B delete mode 100644 gen/usr/share/groff/1.19.2/font/devhtml/BI delete mode 100644 gen/usr/share/groff/1.19.2/font/devhtml/CB delete mode 100644 gen/usr/share/groff/1.19.2/font/devhtml/CBI delete mode 100644 gen/usr/share/groff/1.19.2/font/devhtml/CI delete mode 100644 gen/usr/share/groff/1.19.2/font/devhtml/CR delete mode 100644 gen/usr/share/groff/1.19.2/font/devhtml/DESC delete mode 100644 gen/usr/share/groff/1.19.2/font/devhtml/I delete mode 100644 gen/usr/share/groff/1.19.2/font/devhtml/R delete mode 100644 gen/usr/share/groff/1.19.2/font/devhtml/S delete mode 100644 gen/usr/share/groff/1.19.2/font/devlatin1/B delete mode 100644 gen/usr/share/groff/1.19.2/font/devlatin1/BI delete mode 100644 gen/usr/share/groff/1.19.2/font/devlatin1/DESC delete mode 100644 gen/usr/share/groff/1.19.2/font/devlatin1/I delete mode 100644 gen/usr/share/groff/1.19.2/font/devlatin1/R delete mode 100644 gen/usr/share/groff/1.19.2/font/devlbp/DESC delete mode 100644 gen/usr/share/groff/1.19.2/font/devlj4/DESC delete mode 100644 gen/usr/share/groff/1.19.2/font/devlj4/generate/Makefile delete mode 100644 gen/usr/share/groff/1.19.2/font/devps/DESC delete mode 100644 gen/usr/share/groff/1.19.2/font/devps/generate/Makefile delete mode 100644 gen/usr/share/groff/1.19.2/font/devps/prologue delete mode 100644 gen/usr/share/groff/1.19.2/font/devps/symbolsl.pfa delete mode 100644 gen/usr/share/groff/1.19.2/font/devps/zapfdr.pfa delete mode 100644 gen/usr/share/groff/1.19.2/font/devutf8/B delete mode 100644 gen/usr/share/groff/1.19.2/font/devutf8/BI delete mode 100644 gen/usr/share/groff/1.19.2/font/devutf8/DESC delete mode 100644 gen/usr/share/groff/1.19.2/font/devutf8/I delete mode 100644 gen/usr/share/groff/1.19.2/font/devutf8/R delete mode 100644 gen/usr/share/groff/1.19.2/tmac/doc.tmac delete mode 100644 gen/usr/share/groff/1.19.2/tmac/e.tmac delete mode 100644 gen/usr/share/groff/1.19.2/tmac/mdoc/doc-common delete mode 100644 gen/usr/share/groff/1.19.2/tmac/mdoc/doc-ditroff delete mode 100644 gen/usr/share/groff/1.19.2/tmac/mdoc/doc-nroff delete mode 100644 gen/usr/share/groff/1.19.2/tmac/mdoc/doc-syms delete mode 100644 gen/usr/share/groff/1.19.2/tmac/mm/locale delete mode 100644 gen/usr/share/groff/1.19.2/tmac/mm/se_locale delete mode 100644 gen/usr/share/groff/1.19.2/tmac/www.tmac delete mode 100644 gen/usr/share/groff/site-font/.gitkeep delete mode 100644 gen/usr/share/info/groff delete mode 100644 gen/usr/share/info/groff-1 delete mode 100644 gen/usr/share/info/groff-2 delete mode 100644 gen/usr/share/info/groff-3 delete mode 100644 gen/usr/share/man/man1/addftinfo.1 delete mode 100644 gen/usr/share/man/man1/afmtodit.1 delete mode 100644 gen/usr/share/man/man1/eqn.1 delete mode 100644 gen/usr/share/man/man1/eqn2graph.1 delete mode 100644 gen/usr/share/man/man1/gdiffmk.1 delete mode 100644 gen/usr/share/man/man1/grap2graph.1 delete mode 100644 gen/usr/share/man/man1/grn.1 delete mode 100644 gen/usr/share/man/man1/grodvi.1 delete mode 100644 gen/usr/share/man/man1/groff.1 delete mode 100644 gen/usr/share/man/man1/groffer.1 delete mode 100644 gen/usr/share/man/man1/grog.1 delete mode 100644 gen/usr/share/man/man1/grohtml.1 delete mode 100644 gen/usr/share/man/man1/grolbp.1 delete mode 100644 gen/usr/share/man/man1/grolj4.1 delete mode 100644 gen/usr/share/man/man1/grops.1 delete mode 100644 gen/usr/share/man/man1/grotty.1 delete mode 100644 gen/usr/share/man/man1/hpftodit.1 delete mode 100644 gen/usr/share/man/man1/indxbib.1 delete mode 100644 gen/usr/share/man/man1/lkbib.1 delete mode 100644 gen/usr/share/man/man1/lookbib.1 delete mode 100644 gen/usr/share/man/man1/mmroff.1 delete mode 100644 gen/usr/share/man/man1/neqn.1 delete mode 100644 gen/usr/share/man/man1/nroff.1 delete mode 100644 gen/usr/share/man/man1/pfbtops.1 delete mode 100644 gen/usr/share/man/man1/pic.1 delete mode 100644 gen/usr/share/man/man1/pic2graph.1 delete mode 100644 gen/usr/share/man/man1/refer.1 delete mode 100644 gen/usr/share/man/man1/soelim.1 delete mode 100644 gen/usr/share/man/man1/tbl.1 delete mode 100644 gen/usr/share/man/man1/tfmtodit.1 delete mode 100644 gen/usr/share/man/man1/troff.1 delete mode 100644 gen/usr/share/man/man5/groff_font.5 delete mode 100644 gen/usr/share/man/man5/groff_out.5 delete mode 100644 gen/usr/share/man/man5/groff_tmac.5 delete mode 100644 gen/usr/share/man/man5/lj4_font.5 delete mode 100644 gen/usr/share/man/man7/ditroff.7 delete mode 100644 gen/usr/share/man/man7/groff.7 delete mode 100644 gen/usr/share/man/man7/groff_char.7 delete mode 100644 gen/usr/share/man/man7/groff_diff.7 delete mode 100644 gen/usr/share/man/man7/groff_man.7 delete mode 100644 gen/usr/share/man/man7/groff_mdoc.7 delete mode 100644 gen/usr/share/man/man7/groff_me.7 delete mode 100644 gen/usr/share/man/man7/groff_mm.7 delete mode 100644 gen/usr/share/man/man7/groff_mmse.7 delete mode 100644 gen/usr/share/man/man7/groff_mom.7 delete mode 100644 gen/usr/share/man/man7/groff_ms.7 delete mode 100644 gen/usr/share/man/man7/groff_trace.7 delete mode 100644 gen/usr/share/man/man7/groff_www.7 delete mode 100644 gen/usr/share/man/man7/roff.7 delete mode 100644 gen/version-libgroff.cpp create mode 100644 groff.plist rename {src => groff}/BUG-REPORT (100%) rename {src => groff}/COPYING (100%) rename {src => groff}/ChangeLog (100%) rename {src => groff}/ChangeLog.115 (100%) rename {src => groff}/ChangeLog.116 (100%) rename {src => groff}/ChangeLog.117 (100%) rename {src => groff}/ChangeLog.118 (100%) rename {src => groff}/FDL (100%) rename {src => groff}/INSTALL (100%) rename {src => groff}/INSTALL.gen (100%) rename {src => groff}/LICENSE (100%) rename {src => groff}/MANIFEST (100%) rename {src => groff}/MORE.STUFF (100%) rename {src => groff}/Makefile (100%) rename {src => groff}/Makefile.ccpg (100%) rename {src => groff}/Makefile.comm (100%) rename {src => groff}/Makefile.cpg (100%) rename {src => groff}/Makefile.dev (100%) rename {src => groff}/Makefile.in (99%) rename {src => groff}/Makefile.init (100%) rename {src => groff}/Makefile.lib (100%) rename {src => groff}/Makefile.man (100%) rename {src => groff}/Makefile.sub (100%) rename {src => groff}/NEWS (100%) rename {src => groff}/PROBLEMS (100%) rename {src => groff}/PROJECTS (100%) rename {src => groff}/README (100%) rename {src => groff}/README.MinGW (100%) rename {src => groff}/REVISION (100%) rename {src => groff}/TODO (100%) rename {src => groff}/VERSION (100%) rename {src => groff}/aclocal.m4 (100%) rename {src => groff}/arch/djgpp/README (100%) rename {src => groff}/arch/djgpp/config.bat (100%) rename {src => groff}/arch/djgpp/config.sed (100%) rename {src => groff}/arch/djgpp/config.site (100%) rename {src => groff}/arch/djgpp/t-groff.bat (100%) rename {src => groff}/arch/misc/Makefile.sub (100%) rename {src => groff}/arch/misc/shdeps.sh (100%) rename {src => groff}/configure (100%) rename {src => groff}/configure.ac (100%) rename {src => groff}/contrib/eqn2graph/Makefile.sub (100%) rename {src => groff}/contrib/eqn2graph/eqn2graph.man (100%) rename {src => groff}/contrib/eqn2graph/eqn2graph.sh (100%) rename {src => groff}/contrib/gdiffmk/ChangeLog (100%) rename {src => groff}/contrib/gdiffmk/Makefile.sub (100%) rename {src => groff}/contrib/gdiffmk/README (100%) rename {src => groff}/contrib/gdiffmk/gdiffmk.man (100%) rename {src => groff}/contrib/gdiffmk/gdiffmk.sh (100%) rename {src => groff}/contrib/gdiffmk/tests/file1 (100%) rename {src => groff}/contrib/gdiffmk/tests/file2 (100%) rename {src => groff}/contrib/gdiffmk/tests/runtests.in (100%) rename {src => groff}/contrib/gdiffmk/tests/test_baseline (100%) rename {src => groff}/contrib/gdiffmk/tests/test_baseline10 (100%) rename {src => groff}/contrib/gdiffmk/tests/test_baseline6 (100%) rename {src => groff}/contrib/gdiffmk/tests/test_baseline7 (100%) rename {src => groff}/contrib/gdiffmk/tests/test_baseline8 (100%) rename {src => groff}/contrib/gdiffmk/tests/test_baseline9 (100%) rename {src => groff}/contrib/grap2graph/Makefile.sub (100%) rename {src => groff}/contrib/grap2graph/grap2graph.man (100%) rename {src => groff}/contrib/grap2graph/grap2graph.sh (100%) rename {src => groff}/contrib/groffer/ChangeLog (100%) rename {src => groff}/contrib/groffer/Makefile.sub (100%) rename {src => groff}/contrib/groffer/README (100%) rename {src => groff}/contrib/groffer/README_SH (100%) rename {src => groff}/contrib/groffer/TODO (100%) rename {src => groff}/contrib/groffer/groffer.man (100%) rename {src => groff}/contrib/groffer/groffer.sh (100%) rename {src => groff}/contrib/groffer/groffer2.sh (100%) rename {src => groff}/contrib/mm/ChangeLog (100%) rename {src => groff}/contrib/mm/Makefile.sim (100%) rename {src => groff}/contrib/mm/Makefile.sub (100%) rename {src => groff}/contrib/mm/NOTES (100%) rename {src => groff}/contrib/mm/README (100%) rename {src => groff}/contrib/mm/examples/APP (100%) rename {src => groff}/contrib/mm/examples/B1B2 (100%) rename {src => groff}/contrib/mm/examples/COVER (100%) rename {src => groff}/contrib/mm/examples/IND (100%) rename {src => groff}/contrib/mm/examples/LT (100%) rename {src => groff}/contrib/mm/examples/LT.se (100%) rename {src => groff}/contrib/mm/examples/ML (100%) rename {src => groff}/contrib/mm/examples/MOVE (100%) rename {src => groff}/contrib/mm/examples/MUL (100%) rename {src => groff}/contrib/mm/examples/NCOL (100%) rename {src => groff}/contrib/mm/examples/ND (100%) rename {src => groff}/contrib/mm/examples/README (100%) rename {src => groff}/contrib/mm/examples/References (100%) rename {src => groff}/contrib/mm/examples/SETR (100%) rename {src => groff}/contrib/mm/groff_mm.man (100%) rename {src => groff}/contrib/mm/groff_mmse.man (100%) rename {gen/usr/share/groff/1.19.2/tmac => groff/contrib/mm}/m.tmac (100%) rename {gen/usr/share/groff/1.19.2/tmac => groff/contrib/mm}/mm.tmac (100%) rename {gen/usr/share/groff/1.19.2/tmac => groff/contrib/mm}/mm/0.MT (100%) rename {gen/usr/share/groff/1.19.2/tmac => groff/contrib/mm}/mm/4.MT (100%) rename {gen/usr/share/groff/1.19.2/tmac => groff/contrib/mm}/mm/5.MT (100%) rename {gen/usr/share/groff/1.19.2/tmac => groff/contrib/mm}/mm/ms.cov (100%) rename {gen/usr/share/groff/1.19.2/tmac => groff/contrib/mm}/mm/se_ms.cov (100%) rename {src => groff}/contrib/mm/mmroff.man (100%) rename {src => groff}/contrib/mm/mmroff.pl (100%) rename {gen/usr/share/groff/1.19.2/tmac => groff/contrib/mm}/mmse.tmac (100%) rename {gen/usr/share/groff/1.19.2/tmac => groff/contrib/mm}/mse.tmac (100%) rename {src => groff}/contrib/mom/BUGS (100%) rename {src => groff}/contrib/mom/ChangeLog (100%) rename {src => groff}/contrib/mom/Makefile.sub (100%) rename {src => groff}/contrib/mom/NEWS (100%) rename {src => groff}/contrib/mom/TODO (100%) rename {src => groff}/contrib/mom/copyright (100%) rename {gen/usr/share/doc/groff/1.19.2/examples/mom => groff/contrib/mom/examples}/README.txt (100%) rename {gen/usr/share/doc/groff/1.19.2/examples/mom => groff/contrib/mom/examples}/elvis_syntax (100%) rename {gen/usr/share/doc/groff/1.19.2/examples/mom => groff/contrib/mom/examples}/elvis_syntax.new (100%) rename {gen/usr/share/doc/groff/1.19.2/examples/mom => groff/contrib/mom/examples}/letter.mom (100%) rename {gen/usr/share/doc/groff/1.19.2/examples/mom => groff/contrib/mom/examples}/penguin.ps (100%) rename {gen/usr/share/doc/groff/1.19.2/examples/mom => groff/contrib/mom/examples}/sample_docs.mom (100%) rename {gen/usr/share/doc/groff/1.19.2/examples/mom => groff/contrib/mom/examples}/typesetting.mom (100%) rename {src => groff}/contrib/mom/groff_mom.man (100%) rename {gen/usr/share/groff/1.19.2/tmac => groff/contrib/mom}/mom.tmac (100%) rename {src => groff}/contrib/mom/momdoc/appendices.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/color.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/cover.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/definitions.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/docelement.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/docprocessing.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/goodies.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/headfootpage.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/inlines.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/intro.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/letters.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/macrolist.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/rectoverso.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/refer.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/reserved.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/toc.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/typemacdoc.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/typesetting.html (100%) rename {gen/usr/share/doc/groff/1.19.2/html/mom => groff/contrib/mom/momdoc}/using.html (100%) rename {gen/usr/share/groff/1.19.2/tmac => groff/contrib/mom}/om.tmac (100%) rename {src => groff}/contrib/pdfmark/ChangeLog (100%) rename {src => groff}/contrib/pdfmark/Makefile.sub (100%) rename {src => groff}/contrib/pdfmark/PROBLEMS (100%) rename {src => groff}/contrib/pdfmark/README (100%) rename {src => groff}/contrib/pdfmark/TODO (100%) rename {src => groff}/contrib/pdfmark/cover.ms (100%) rename {src => groff}/contrib/pdfmark/pdfmark.ms (100%) rename {gen/usr/share/groff/1.19.2/tmac => groff/contrib/pdfmark}/pdfmark.tmac (100%) rename {src => groff}/contrib/pdfmark/pdfroff.man (100%) rename {src => groff}/contrib/pdfmark/pdfroff.sh (100%) rename {gen/usr/share/groff/1.19.2/tmac => groff/contrib/pdfmark}/spdf.tmac (100%) rename {src => groff}/contrib/pic2graph/Makefile.sub (100%) rename {src => groff}/contrib/pic2graph/pic2graph.man (100%) rename {src => groff}/contrib/pic2graph/pic2graph.sh (100%) rename {src => groff}/doc/Makefile.in (100%) rename {src => groff}/doc/Makefile.sub (100%) rename {src => groff}/doc/fdl.texi (100%) rename {src => groff}/doc/fixinfo.sh (100%) rename {src => groff}/doc/gnu.eps (100%) rename {src => groff}/doc/gnu.png (100%) rename {src => groff}/doc/gnu.xpm (100%) rename {gen/usr/share/doc/groff/1.19.2/examples => groff/doc}/grnexmpl.g (100%) rename {gen/usr/share/doc/groff/1.19.2/examples => groff/doc}/grnexmpl.me (100%) rename {src => groff}/doc/groff (100%) rename {src => groff}/doc/groff-1 (100%) rename {src => groff}/doc/groff-2 (100%) rename {src => groff}/doc/groff-3 (100%) rename {gen/usr/share/doc/groff/1.19.2/examples => groff/doc}/groff.css (100%) rename {src => groff}/doc/groff.texinfo (100%) rename {gen/usr/share/doc/groff/1.19.2 => groff/doc}/meintro.me (100%) rename {gen/usr/share/doc/groff/1.19.2 => groff/doc}/meref.me (100%) rename {gen/usr/share/doc/groff/1.19.2 => groff/doc}/pic.ms (100%) rename {src => groff}/doc/texinfo.tex (100%) rename {src => groff}/doc/webpage.ms (100%) rename {src => groff}/font/devX100-12/CB (100%) rename {src => groff}/font/devX100-12/CBI (100%) rename {src => groff}/font/devX100-12/CI (100%) rename {src => groff}/font/devX100-12/CR (100%) rename {src => groff}/font/devX100-12/DESC (100%) rename {src => groff}/font/devX100-12/HB (100%) rename {src => groff}/font/devX100-12/HBI (100%) rename {src => groff}/font/devX100-12/HI (100%) rename {src => groff}/font/devX100-12/HR (100%) rename {src => groff}/font/devX100-12/Makefile.sub (100%) rename {src => groff}/font/devX100-12/NB (100%) rename {src => groff}/font/devX100-12/NBI (100%) rename {src => groff}/font/devX100-12/NI (100%) rename {src => groff}/font/devX100-12/NR (100%) rename {src => groff}/font/devX100-12/S (100%) rename {src => groff}/font/devX100-12/TB (100%) rename {src => groff}/font/devX100-12/TBI (100%) rename {src => groff}/font/devX100-12/TI (100%) rename {src => groff}/font/devX100-12/TR (100%) rename {src => groff}/font/devX100/CB (100%) rename {src => groff}/font/devX100/CBI (100%) rename {src => groff}/font/devX100/CI (100%) rename {src => groff}/font/devX100/CR (100%) rename {src => groff}/font/devX100/DESC (100%) rename {src => groff}/font/devX100/HB (100%) rename {src => groff}/font/devX100/HBI (100%) rename {src => groff}/font/devX100/HI (100%) rename {src => groff}/font/devX100/HR (100%) rename {src => groff}/font/devX100/Makefile.sub (100%) rename {src => groff}/font/devX100/NB (100%) rename {src => groff}/font/devX100/NBI (100%) rename {src => groff}/font/devX100/NI (100%) rename {src => groff}/font/devX100/NR (100%) rename {src => groff}/font/devX100/S (100%) rename {src => groff}/font/devX100/TB (100%) rename {src => groff}/font/devX100/TBI (100%) rename {src => groff}/font/devX100/TI (100%) rename {src => groff}/font/devX100/TR (100%) rename {src => groff}/font/devX75-12/CB (100%) rename {src => groff}/font/devX75-12/CBI (100%) rename {src => groff}/font/devX75-12/CI (100%) rename {src => groff}/font/devX75-12/CR (100%) rename {src => groff}/font/devX75-12/DESC (100%) rename {src => groff}/font/devX75-12/HB (100%) rename {src => groff}/font/devX75-12/HBI (100%) rename {src => groff}/font/devX75-12/HI (100%) rename {src => groff}/font/devX75-12/HR (100%) rename {src => groff}/font/devX75-12/Makefile.sub (100%) rename {src => groff}/font/devX75-12/NB (100%) rename {src => groff}/font/devX75-12/NBI (100%) rename {src => groff}/font/devX75-12/NI (100%) rename {src => groff}/font/devX75-12/NR (100%) rename {src => groff}/font/devX75-12/S (100%) rename {src => groff}/font/devX75-12/TB (100%) rename {src => groff}/font/devX75-12/TBI (100%) rename {src => groff}/font/devX75-12/TI (100%) rename {src => groff}/font/devX75-12/TR (100%) rename {src => groff}/font/devX75/CB (100%) rename {src => groff}/font/devX75/CBI (100%) rename {src => groff}/font/devX75/CI (100%) rename {src => groff}/font/devX75/CR (100%) rename {src => groff}/font/devX75/DESC (100%) rename {src => groff}/font/devX75/HB (100%) rename {src => groff}/font/devX75/HBI (100%) rename {src => groff}/font/devX75/HI (100%) rename {src => groff}/font/devX75/HR (100%) rename {src => groff}/font/devX75/Makefile.sub (100%) rename {src => groff}/font/devX75/NB (100%) rename {src => groff}/font/devX75/NBI (100%) rename {src => groff}/font/devX75/NI (100%) rename {src => groff}/font/devX75/NR (100%) rename {src => groff}/font/devX75/S (100%) rename {src => groff}/font/devX75/TB (100%) rename {src => groff}/font/devX75/TBI (100%) rename {src => groff}/font/devX75/TI (100%) rename {src => groff}/font/devX75/TR (100%) rename {src => groff}/font/devascii/DESC.proto (100%) rename {src => groff}/font/devascii/Makefile.sub (100%) rename {src => groff}/font/devascii/R.proto (100%) rename {src => groff}/font/devcp1047/DESC.proto (100%) rename {src => groff}/font/devcp1047/Makefile.sub (100%) rename {src => groff}/font/devcp1047/R.proto (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/CW (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/CWEC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/CWI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/CWIEC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/CWITC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/CWTC (100%) rename {src => groff}/font/devdvi/DESC.in (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/EX (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/HB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/HBEC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/HBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/HBIEC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/HBITC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/HBTC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/HI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/HIEC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/HITC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/HR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/HREC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/HRTC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/MI (100%) rename {src => groff}/font/devdvi/Makefile.sub (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/S (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/SA (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/SB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/SC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/TB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/TBEC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/TBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/TBIEC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/TBITC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/TBTC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/TI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/TIEC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/TITC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/TR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/TREC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/TRTC (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/generate/CompileFonts (100%) rename {src => groff}/font/devdvi/generate/Makefile (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/generate/ec.map (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/generate/msam.map (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/generate/msbm.map (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/generate/tc.map (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/generate/texb.map (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/generate/texex.map (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/generate/texi.map (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/generate/texmi.map (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/generate/texr.map (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/generate/texsy.map (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/generate/textex.map (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devdvi/generate/textt.map (100%) rename {src => groff}/font/devhtml/DESC.proto (100%) rename {src => groff}/font/devhtml/Makefile.sub (100%) rename {src => groff}/font/devhtml/R.proto (100%) rename {src => groff}/font/devlatin1/DESC.proto (100%) rename {src => groff}/font/devlatin1/Makefile.sub (100%) rename {src => groff}/font/devlatin1/R.proto (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/CB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/CI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/CR (100%) rename {src => groff}/font/devlbp/DESC.in (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/EB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/EI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/ER (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/HB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/HBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/HI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/HNB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/HNBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/HNI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/HNR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/HR (100%) rename {src => groff}/font/devlbp/Makefile.sub (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/TB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/TBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/TI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlbp/TR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/AB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/ABI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/AI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/ALBB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/ALBR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/AOB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/AOI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/AOR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/AR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/CB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/CBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/CI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/CLARENDON (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/CORONET (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/CR (100%) rename {src => groff}/font/devlj4/DESC.in (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/GB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/GBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/GI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/GR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/LGB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/LGI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/LGR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/MARIGOLD (100%) rename {src => groff}/font/devlj4/Makefile.sub (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/OB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/OBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/OI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/OR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/S (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/SYMBOL (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/TB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/TBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/TI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/TNRB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/TNRBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/TNRI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/TNRR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/TR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/UB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/UBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/UCB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/UCBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/UCI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/UCR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/UI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/UR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/WINGDINGS (100%) rename {src => groff}/font/devlj4/generate/Makefile (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/generate/special.awk (100%) mode change 100755 => 100644 rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/generate/special.map (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/generate/symbol.map (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/generate/text.map (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devlj4/generate/wingdings.map (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/AB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/ABI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/AI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/AR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/BMB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/BMBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/BMI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/BMR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/CB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/CBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/CI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/CR (100%) rename {src => groff}/font/devps/DESC.in (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/EURO (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/HB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/HBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/HI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/HNB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/HNBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/HNI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/HNR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/HR (100%) rename {src => groff}/font/devps/Makefile.sub (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/NB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/NBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/NI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/NR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/PB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/PBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/PI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/PR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/S (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/SS (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/TB (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/TBI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/TI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/TR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/ZCMI (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/ZD (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/ZDR (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/download (100%) rename {src => groff}/font/devps/freeeuro.afm (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/freeeuro.pfa (100%) rename {src => groff}/font/devps/generate/Makefile (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/generate/afmname (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/generate/dingbats.map (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/generate/dingbats.rmap (100%) rename {src => groff}/font/devps/generate/freeeuro.sfd (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/generate/lgreekmap (100%) rename {src => groff}/font/devps/generate/sfdtopfa.pe (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/generate/symbol.sed (100%) mode change 100755 => 100644 rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/generate/symbolchars (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/generate/symbolsl.afm (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/generate/textmap (100%) rename {src => groff}/font/devps/prologue.ps (100%) rename {src => groff}/font/devps/psstrip.sed (100%) rename {src => groff}/font/devps/symbol.afm (100%) rename {src => groff}/font/devps/symbolmap (100%) rename {src => groff}/font/devps/symbolsl.ps (100%) rename {gen/usr/share/groff/1.19.2 => groff}/font/devps/text.enc (100%) rename {src => groff}/font/devps/zapfdr.afm (100%) rename {src => groff}/font/devps/zapfdr.ps (100%) rename {src => groff}/font/devutf8/DESC.proto (100%) rename {src => groff}/font/devutf8/Makefile.sub (100%) rename {src => groff}/font/devutf8/NOTES (100%) rename {src => groff}/font/devutf8/R.proto (100%) rename {src => groff}/gendef.sh (100%) rename {src => groff}/install-sh (100%) rename {src => groff}/man/Makefile.sub (100%) rename {src => groff}/man/ditroff.man (100%) rename {src => groff}/man/groff.man (100%) rename {src => groff}/man/groff_char.man (100%) rename {src => groff}/man/groff_diff.man (100%) rename {src => groff}/man/groff_font.man (100%) rename {src => groff}/man/groff_out.man (100%) rename {src => groff}/man/groff_tmac.man (100%) rename {src => groff}/man/roff.man (100%) rename {src => groff}/mdate.sh (100%) rename {src => groff}/mkinstalldirs (100%) rename {src => groff}/src/devices/grodvi/Makefile.sub (100%) rename {src => groff}/src/devices/grodvi/dvi.cpp (100%) rename {src => groff}/src/devices/grodvi/grodvi.man (100%) rename {src => groff}/src/devices/grohtml/Makefile.sub (100%) rename {src => groff}/src/devices/grohtml/grohtml.man (100%) rename {src => groff}/src/devices/grohtml/html-table.cpp (100%) rename {src => groff}/src/devices/grohtml/html-table.h (100%) rename {src => groff}/src/devices/grohtml/html-text.cpp (100%) rename {src => groff}/src/devices/grohtml/html-text.h (100%) rename {src => groff}/src/devices/grohtml/html.h (100%) rename {src => groff}/src/devices/grohtml/output.cpp (100%) rename {src => groff}/src/devices/grohtml/post-html.cpp (99%) rename {src => groff}/src/devices/grolbp/Makefile.sub (100%) rename {src => groff}/src/devices/grolbp/charset.h (100%) rename {src => groff}/src/devices/grolbp/grolbp.man (100%) rename {src => groff}/src/devices/grolbp/lbp.cpp (100%) rename {src => groff}/src/devices/grolbp/lbp.h (100%) rename {src => groff}/src/devices/grolj4/Makefile.sub (100%) rename {src => groff}/src/devices/grolj4/grolj4.man (100%) rename {src => groff}/src/devices/grolj4/lj4.cpp (100%) rename {src => groff}/src/devices/grolj4/lj4_font.man (100%) rename {src => groff}/src/devices/grops/Makefile.sub (100%) rename {src => groff}/src/devices/grops/TODO (100%) rename {src => groff}/src/devices/grops/grops.man (100%) rename {src => groff}/src/devices/grops/ps.cpp (100%) rename {src => groff}/src/devices/grops/ps.h (100%) rename {src => groff}/src/devices/grops/psfig.diff (100%) rename {src => groff}/src/devices/grops/psrm.cpp (100%) rename {src => groff}/src/devices/grotty/Makefile.sub (100%) rename {src => groff}/src/devices/grotty/TODO (100%) rename {src => groff}/src/devices/grotty/grotty.man (100%) rename {src => groff}/src/devices/grotty/tty.cpp (100%) rename {src => groff}/src/devices/xditview/ChangeLog (100%) rename {src => groff}/src/devices/xditview/DESC.in (100%) rename {src => groff}/src/devices/xditview/Dvi.c (100%) rename {src => groff}/src/devices/xditview/Dvi.h (100%) rename {src => groff}/src/devices/xditview/DviP.h (100%) rename {src => groff}/src/devices/xditview/FontMap (100%) rename {src => groff}/src/devices/xditview/GXditview.ad (100%) rename {src => groff}/src/devices/xditview/Makefile.sub (100%) rename {src => groff}/src/devices/xditview/Menu.h (100%) rename {src => groff}/src/devices/xditview/README (100%) rename {src => groff}/src/devices/xditview/TODO (100%) rename {src => groff}/src/devices/xditview/ad2c (100%) rename {src => groff}/src/devices/xditview/device.c (100%) rename {src => groff}/src/devices/xditview/device.h (100%) rename {src => groff}/src/devices/xditview/draw.c (100%) rename {src => groff}/src/devices/xditview/font.c (100%) rename {src => groff}/src/devices/xditview/gray1.bm (100%) rename {src => groff}/src/devices/xditview/gray2.bm (100%) rename {src => groff}/src/devices/xditview/gray3.bm (100%) rename {src => groff}/src/devices/xditview/gray4.bm (100%) rename {src => groff}/src/devices/xditview/gray5.bm (100%) rename {src => groff}/src/devices/xditview/gray6.bm (100%) rename {src => groff}/src/devices/xditview/gray7.bm (100%) rename {src => groff}/src/devices/xditview/gray8.bm (100%) rename {src => groff}/src/devices/xditview/gxditview.man (100%) rename {src => groff}/src/devices/xditview/lex.c (100%) rename {src => groff}/src/devices/xditview/page.c (100%) rename {src => groff}/src/devices/xditview/parse.c (100%) rename {src => groff}/src/devices/xditview/xdit.bm (100%) rename {src => groff}/src/devices/xditview/xdit_mask.bm (100%) rename {src => groff}/src/devices/xditview/xditview.c (100%) rename {src => groff}/src/include/DviChar.h (100%) rename {src => groff}/src/include/Makefile.sub (100%) rename {src => groff}/src/include/XFontName.h (100%) rename {src => groff}/src/include/assert.h (100%) rename {src => groff}/src/include/cmap.h (100%) rename {src => groff}/src/include/color.h (100%) rename {src => groff}/src/include/config.hin (100%) rename {src => groff}/src/include/cset.h (100%) rename {src => groff}/src/include/device.h (100%) rename {src => groff}/src/include/driver.h (100%) rename {src => groff}/src/include/errarg.h (100%) rename {src => groff}/src/include/error.h (100%) rename {src => groff}/src/include/font.h (100%) rename {src => groff}/src/include/geometry.h (100%) rename {src => groff}/src/include/getopt.h (100%) rename {src => groff}/src/include/getopt_int.h (100%) rename {src => groff}/src/include/gettext.h (100%) rename {src => groff}/src/include/html-strings.h (100%) rename {src => groff}/src/include/htmlhint.h (100%) rename {src => groff}/src/include/index.h (100%) rename {src => groff}/src/include/lib.h (100%) rename {src => groff}/src/include/macropath.h (100%) rename {src => groff}/src/include/nonposix.h (100%) rename {src => groff}/src/include/paper.h (100%) rename {src => groff}/src/include/posix.h (100%) rename {src => groff}/src/include/printer.h (100%) rename {src => groff}/src/include/ptable.h (100%) rename {src => groff}/src/include/refid.h (100%) rename {src => groff}/src/include/relocate.h (100%) rename {src => groff}/src/include/search.h (100%) rename {src => groff}/src/include/searchpath.h (100%) rename {src => groff}/src/include/stringclass.h (100%) rename {src => groff}/src/include/symbol.h (100%) rename {src => groff}/src/include/unicode.h (100%) rename {src => groff}/src/libs/libbib/Makefile.sub (100%) rename {src => groff}/src/libs/libbib/common.cpp (100%) rename {src => groff}/src/libs/libbib/index.cpp (100%) rename {src => groff}/src/libs/libbib/linear.cpp (100%) rename {src => groff}/src/libs/libbib/map.c (100%) rename {src => groff}/src/libs/libbib/search.cpp (100%) rename {src => groff}/src/libs/libdriver/Makefile.sub (100%) rename {src => groff}/src/libs/libdriver/input.cpp (100%) rename {src => groff}/src/libs/libdriver/printer.cpp (100%) rename {src => groff}/src/libs/libgroff/Makefile.sub (100%) rename {src => groff}/src/libs/libgroff/assert.cpp (100%) rename {src => groff}/src/libs/libgroff/change_lf.cpp (100%) rename {src => groff}/src/libs/libgroff/cmap.cpp (100%) rename {src => groff}/src/libs/libgroff/color.cpp (100%) rename {src => groff}/src/libs/libgroff/cset.cpp (100%) rename {src => groff}/src/libs/libgroff/device.cpp (100%) rename {src => groff}/src/libs/libgroff/errarg.cpp (100%) rename {src => groff}/src/libs/libgroff/error.cpp (100%) rename {src => groff}/src/libs/libgroff/fatal.cpp (100%) rename {src => groff}/src/libs/libgroff/filename.cpp (100%) rename {src => groff}/src/libs/libgroff/fmod.c (100%) rename {src => groff}/src/libs/libgroff/font.cpp (100%) rename {src => groff}/src/libs/libgroff/fontfile.cpp (100%) rename {src => groff}/src/libs/libgroff/geometry.cpp (100%) rename {src => groff}/src/libs/libgroff/getcwd.c (100%) rename {src => groff}/src/libs/libgroff/getopt.c (99%) rename {src => groff}/src/libs/libgroff/getopt1.c (98%) rename {src => groff}/src/libs/libgroff/glyphuni.cpp (100%) rename {src => groff}/src/libs/libgroff/htmlhint.cpp (100%) rename {src => groff}/src/libs/libgroff/hypot.cpp (100%) rename {src => groff}/src/libs/libgroff/iftoa.c (100%) rename {src => groff}/src/libs/libgroff/invalid.cpp (100%) rename {src => groff}/src/libs/libgroff/itoa.c (100%) rename {src => groff}/src/libs/libgroff/lf.cpp (100%) rename {src => groff}/src/libs/libgroff/lineno.cpp (100%) rename {src => groff}/src/libs/libgroff/macropath.cpp (100%) rename {src => groff}/src/libs/libgroff/matherr.c (100%) rename {src => groff}/src/libs/libgroff/maxfilename.cpp (100%) rename {src => groff}/src/libs/libgroff/maxpathname.cpp (100%) rename {src => groff}/src/libs/libgroff/mksdir.cpp (100%) rename {src => groff}/src/libs/libgroff/mkstemp.cpp (100%) rename {src => groff}/src/libs/libgroff/nametoindex.cpp (100%) rename {src => groff}/src/libs/libgroff/new.cpp (100%) rename {src => groff}/src/libs/libgroff/paper.cpp (100%) rename {src => groff}/src/libs/libgroff/prime.cpp (100%) rename {src => groff}/src/libs/libgroff/progname.c (100%) rename {src => groff}/src/libs/libgroff/ptable.cpp (100%) rename {src => groff}/src/libs/libgroff/putenv.c (100%) rename {src => groff}/src/libs/libgroff/quotearg.c (100%) rename {src => groff}/src/libs/libgroff/relocate.cpp (100%) rename {src => groff}/src/libs/libgroff/searchpath.cpp (100%) rename {src => groff}/src/libs/libgroff/spawnvp.c (100%) rename {src => groff}/src/libs/libgroff/strcasecmp.c (100%) rename {src => groff}/src/libs/libgroff/strerror.c (100%) rename {src => groff}/src/libs/libgroff/string.cpp (100%) rename {src => groff}/src/libs/libgroff/strncasecmp.c (100%) rename {src => groff}/src/libs/libgroff/strsave.cpp (100%) rename {src => groff}/src/libs/libgroff/strtol.c (100%) rename {src => groff}/src/libs/libgroff/symbol.cpp (100%) rename {src => groff}/src/libs/libgroff/tmpfile.cpp (100%) rename {src => groff}/src/libs/libgroff/tmpname.cpp (100%) rename {src => groff}/src/libs/libgroff/unicode.cpp (100%) rename {src => groff}/src/libs/libgroff/uniglyph.cpp (100%) rename {src => groff}/src/libs/libgroff/uniuni.cpp (100%) rename {src => groff}/src/libs/libxutil/DviChar.c (100%) rename {src => groff}/src/libs/libxutil/Makefile.sub (100%) rename {src => groff}/src/libs/libxutil/XFontName.c (100%) rename {src => groff}/src/libs/libxutil/xmalloc.c (100%) rename {src => groff}/src/libs/snprintf/README (100%) rename {src => groff}/src/libs/snprintf/snprintf.c (100%) rename {src => groff}/src/preproc/eqn/Makefile.sub (100%) rename {src => groff}/src/preproc/eqn/TODO (100%) rename {src => groff}/src/preproc/eqn/box.cpp (100%) rename {src => groff}/src/preproc/eqn/box.h (100%) rename {src => groff}/src/preproc/eqn/delim.cpp (100%) rename {src => groff}/src/preproc/eqn/eqn.cpp (100%) rename {src => groff}/src/preproc/eqn/eqn.h (100%) rename {src => groff}/src/preproc/eqn/eqn.man (100%) rename {src => groff}/src/preproc/eqn/eqn.y (100%) rename {src => groff}/src/preproc/eqn/eqn_tab.h (100%) rename {src => groff}/src/preproc/eqn/lex.cpp (100%) rename {src => groff}/src/preproc/eqn/limit.cpp (100%) rename {src => groff}/src/preproc/eqn/list.cpp (100%) rename {src => groff}/src/preproc/eqn/main.cpp (100%) rename {src => groff}/src/preproc/eqn/mark.cpp (100%) rename {src => groff}/src/preproc/eqn/neqn.man (100%) rename {src => groff}/src/preproc/eqn/neqn.sh (100%) rename {src => groff}/src/preproc/eqn/other.cpp (100%) rename {src => groff}/src/preproc/eqn/over.cpp (100%) rename {src => groff}/src/preproc/eqn/pbox.h (100%) rename {src => groff}/src/preproc/eqn/pile.cpp (100%) rename {src => groff}/src/preproc/eqn/script.cpp (100%) rename {src => groff}/src/preproc/eqn/special.cpp (100%) rename {src => groff}/src/preproc/eqn/sqrt.cpp (100%) rename {src => groff}/src/preproc/eqn/text.cpp (100%) rename {src => groff}/src/preproc/grn/Makefile.sub (100%) rename {src => groff}/src/preproc/grn/README (100%) rename {src => groff}/src/preproc/grn/gprint.h (100%) rename {src => groff}/src/preproc/grn/grn.man (100%) rename {src => groff}/src/preproc/grn/hdb.cpp (100%) rename {src => groff}/src/preproc/grn/hgraph.cpp (100%) rename {src => groff}/src/preproc/grn/hpoint.cpp (100%) rename {src => groff}/src/preproc/grn/main.cpp (100%) rename {src => groff}/src/preproc/html/Makefile.sub (100%) rename {src => groff}/src/preproc/html/pre-html.cpp (100%) rename {src => groff}/src/preproc/html/pre-html.h (100%) rename {src => groff}/src/preproc/html/pushback.cpp (100%) rename {src => groff}/src/preproc/html/pushback.h (100%) rename {src => groff}/src/preproc/pic/Makefile.sub (100%) rename {src => groff}/src/preproc/pic/TODO (100%) rename {src => groff}/src/preproc/pic/common.cpp (100%) rename {src => groff}/src/preproc/pic/common.h (100%) rename {src => groff}/src/preproc/pic/lex.cpp (100%) rename {src => groff}/src/preproc/pic/main.cpp (100%) rename {src => groff}/src/preproc/pic/object.cpp (100%) rename {src => groff}/src/preproc/pic/object.h (100%) rename {src => groff}/src/preproc/pic/output.h (100%) rename {src => groff}/src/preproc/pic/pic.cpp (100%) rename {src => groff}/src/preproc/pic/pic.h (100%) rename {src => groff}/src/preproc/pic/pic.man (100%) rename {src => groff}/src/preproc/pic/pic.y (100%) rename {src => groff}/src/preproc/pic/pic_tab.h (100%) rename {src => groff}/src/preproc/pic/position.h (100%) rename {src => groff}/src/preproc/pic/tex.cpp (100%) rename {src => groff}/src/preproc/pic/text.h (100%) rename {src => groff}/src/preproc/pic/troff.cpp (100%) rename {src => groff}/src/preproc/refer/Makefile.sub (100%) rename {src => groff}/src/preproc/refer/TODO (100%) rename {src => groff}/src/preproc/refer/command.cpp (100%) rename {src => groff}/src/preproc/refer/command.h (100%) rename {src => groff}/src/preproc/refer/label.cpp (100%) rename {src => groff}/src/preproc/refer/label.y (100%) rename {src => groff}/src/preproc/refer/ref.cpp (100%) rename {src => groff}/src/preproc/refer/ref.h (100%) rename {src => groff}/src/preproc/refer/refer.cpp (100%) rename {src => groff}/src/preproc/refer/refer.h (100%) rename {src => groff}/src/preproc/refer/refer.man (100%) rename {src => groff}/src/preproc/refer/token.cpp (100%) rename {src => groff}/src/preproc/refer/token.h (100%) rename {src => groff}/src/preproc/soelim/Makefile.sub (100%) rename {src => groff}/src/preproc/soelim/TODO (100%) rename {src => groff}/src/preproc/soelim/soelim.cpp (100%) rename {src => groff}/src/preproc/soelim/soelim.man (100%) rename {src => groff}/src/preproc/tbl/Makefile.sub (100%) rename {src => groff}/src/preproc/tbl/main.cpp (100%) rename {src => groff}/src/preproc/tbl/table.cpp (100%) rename {src => groff}/src/preproc/tbl/table.h (100%) rename {src => groff}/src/preproc/tbl/tbl.man (100%) rename {src => groff}/src/roff/groff/Makefile.sub (100%) rename {src => groff}/src/roff/groff/groff.cpp (100%) rename {src => groff}/src/roff/groff/groff.man (100%) rename {src => groff}/src/roff/groff/pipeline.c (100%) rename {src => groff}/src/roff/groff/pipeline.h (100%) rename {src => groff}/src/roff/grog/Makefile.sub (100%) rename {src => groff}/src/roff/grog/grog.man (100%) rename {src => groff}/src/roff/grog/grog.pl (100%) rename {src => groff}/src/roff/grog/grog.sh (100%) rename {src => groff}/src/roff/nroff/Makefile.sub (100%) rename {src => groff}/src/roff/nroff/nroff.man (100%) rename {src => groff}/src/roff/nroff/nroff.sh (100%) rename {src => groff}/src/roff/troff/Makefile.sub (100%) rename {src => groff}/src/roff/troff/TODO (100%) rename {src => groff}/src/roff/troff/charinfo.h (100%) rename {src => groff}/src/roff/troff/column.cpp (100%) rename {src => groff}/src/roff/troff/dictionary.cpp (100%) rename {src => groff}/src/roff/troff/dictionary.h (100%) rename {src => groff}/src/roff/troff/div.cpp (100%) rename {src => groff}/src/roff/troff/div.h (100%) rename {src => groff}/src/roff/troff/env.cpp (100%) rename {src => groff}/src/roff/troff/env.h (100%) rename {src => groff}/src/roff/troff/hvunits.h (100%) rename {src => groff}/src/roff/troff/input.cpp (100%) rename {src => groff}/src/roff/troff/input.h (100%) rename {src => groff}/src/roff/troff/mtsm.cpp (100%) rename {src => groff}/src/roff/troff/mtsm.h (100%) rename {src => groff}/src/roff/troff/node.cpp (99%) rename {src => groff}/src/roff/troff/node.h (100%) rename {src => groff}/src/roff/troff/number.cpp (100%) rename {src => groff}/src/roff/troff/reg.cpp (100%) rename {src => groff}/src/roff/troff/reg.h (100%) rename {src => groff}/src/roff/troff/request.h (100%) rename {src => groff}/src/roff/troff/token.h (100%) rename {src => groff}/src/roff/troff/troff.h (100%) rename {src => groff}/src/roff/troff/troff.man (100%) rename {src => groff}/src/utils/addftinfo/Makefile.sub (100%) rename {src => groff}/src/utils/addftinfo/addftinfo.cpp (100%) rename {src => groff}/src/utils/addftinfo/addftinfo.man (100%) rename {src => groff}/src/utils/addftinfo/guess.cpp (100%) rename {src => groff}/src/utils/addftinfo/guess.h (100%) rename {src => groff}/src/utils/afmtodit/Makefile.sub (100%) rename {src => groff}/src/utils/afmtodit/afmtodit.man (100%) rename {src => groff}/src/utils/afmtodit/afmtodit.pl (100%) rename {src => groff}/src/utils/hpftodit/Makefile.sub (100%) rename {src => groff}/src/utils/hpftodit/hpftodit.cpp (99%) rename {src => groff}/src/utils/hpftodit/hpftodit.man (100%) rename {src => groff}/src/utils/hpftodit/hpuni.cpp (100%) rename {src => groff}/src/utils/indxbib/Makefile.sub (100%) rename {gen/usr/share/groff/1.19.2 => groff/src/utils/indxbib}/eign (100%) rename {src => groff}/src/utils/indxbib/indxbib.cpp (100%) rename {src => groff}/src/utils/indxbib/indxbib.man (100%) rename {src => groff}/src/utils/indxbib/signal.c (100%) rename {src => groff}/src/utils/lkbib/Makefile.sub (100%) rename {src => groff}/src/utils/lkbib/lkbib.cpp (100%) rename {src => groff}/src/utils/lkbib/lkbib.man (100%) rename {src => groff}/src/utils/lookbib/Makefile.sub (100%) rename {src => groff}/src/utils/lookbib/lookbib.cpp (100%) rename {src => groff}/src/utils/lookbib/lookbib.man (100%) rename {src => groff}/src/utils/pfbtops/Makefile.sub (100%) rename {src => groff}/src/utils/pfbtops/pfbtops.c (100%) rename {src => groff}/src/utils/pfbtops/pfbtops.man (100%) rename {src => groff}/src/utils/tfmtodit/Makefile.sub (100%) rename {src => groff}/src/utils/tfmtodit/tfmtodit.cpp (100%) rename {src => groff}/src/utils/tfmtodit/tfmtodit.man (100%) rename {src => groff}/src/utils/xtotroff/Makefile.in (100%) rename {src => groff}/src/utils/xtotroff/Makefile.sub (100%) rename {src => groff}/src/utils/xtotroff/xtotroff.c (100%) rename {src => groff}/src/utils/xtotroff/xtotroff.man (100%) rename {src => groff}/stamp-h.in (100%) rename {src => groff}/test-groff.in (100%) rename {src => groff}/tmac/Makefile.sub (100%) rename {src => groff}/tmac/README (100%) rename {src => groff}/tmac/TODO (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/X.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/Xps.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/a4.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/an-old.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/an.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/andoc.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/composite.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/cp1047.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/devtag.tmac (100%) rename {src => groff}/tmac/doc-common (100%) rename {src => groff}/tmac/doc-ditroff (100%) rename {src => groff}/tmac/doc-nroff (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/doc-old.tmac (100%) rename {src => groff}/tmac/doc-syms (100%) rename {src => groff}/tmac/doc.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/dvi.tmac (100%) rename {src => groff}/tmac/e.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/ec.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/eqnrc (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/europs.tmac (100%) rename {src => groff}/tmac/fixmacros.sed (100%) rename {src => groff}/tmac/groff_man.man (100%) rename {src => groff}/tmac/groff_mdoc.man (100%) rename {src => groff}/tmac/groff_me.man (100%) rename {src => groff}/tmac/groff_ms.man (100%) rename {src => groff}/tmac/groff_trace.man (100%) rename {src => groff}/tmac/groff_www.man (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/html-end.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/html.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/hyphen.us (100%) rename {src => groff}/tmac/hyphenex.pl (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/hyphenex.us (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/latin1.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/latin2.tmac (100%) rename {src => groff}/tmac/latin5.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/latin9.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/lbp.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/lj4.tmac (100%) rename {gen/usr/share/groff/site-tmac => groff/tmac}/man.local (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/man.tmac (100%) rename {src => groff}/tmac/man.ultrix (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/mandoc.tmac (100%) rename {gen/usr/share/groff/site-tmac => groff/tmac}/mdoc.local (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/mdoc.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/me.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/ms.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/papersize.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/pic.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/ps.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/psatk.tmac (100%) rename {src => groff}/tmac/psfig.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/psold.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/pspic.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/s.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/safer.tmac (100%) rename {src => groff}/tmac/strip.sed (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/trace.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/troffrc (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/troffrc-end (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/tty-char.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/tty.tmac (100%) rename {gen/usr/share/groff/1.19.2 => groff}/tmac/unicode.tmac (100%) rename {src => groff}/tmac/www.tmac (100%) create mode 100644 patches/PR-13280133.diff create mode 100644 patches/groff-25537049.diff create mode 100644 patches/remove-2graph.diff create mode 100644 patches/remove-pdfroff.diff create mode 100644 patches/tmac__doc-common.diff create mode 100644 patches/tmac__doc-syms.diff create mode 100644 patches/tmac__groff_mdoc.man.diff create mode 100644 patches/tmac__troffrc.diff create mode 100644 patches/utf8.diff delete mode 100644 src/contrib/mm/m.tmac delete mode 100644 src/contrib/mm/mm.tmac delete mode 100644 src/contrib/mm/mm/0.MT delete mode 100644 src/contrib/mm/mm/4.MT delete mode 100644 src/contrib/mm/mm/5.MT delete mode 100644 src/contrib/mm/mm/ms.cov delete mode 100644 src/contrib/mm/mm/se_ms.cov delete mode 100644 src/contrib/mm/mmse.tmac delete mode 100644 src/contrib/mm/mse.tmac delete mode 100644 src/contrib/mom/examples/README.txt delete mode 100644 src/contrib/mom/examples/elvis_syntax delete mode 100644 src/contrib/mom/examples/elvis_syntax.new delete mode 100644 src/contrib/mom/examples/letter.mom delete mode 100644 src/contrib/mom/examples/penguin.ps delete mode 100644 src/contrib/mom/examples/sample_docs.mom delete mode 100644 src/contrib/mom/examples/typesetting.mom delete mode 100644 src/contrib/mom/mom.tmac delete mode 100644 src/contrib/mom/momdoc/color.html delete mode 100644 src/contrib/mom/momdoc/cover.html delete mode 100644 src/contrib/mom/momdoc/definitions.html delete mode 100644 src/contrib/mom/momdoc/docelement.html delete mode 100644 src/contrib/mom/momdoc/docprocessing.html delete mode 100644 src/contrib/mom/momdoc/goodies.html delete mode 100644 src/contrib/mom/momdoc/headfootpage.html delete mode 100644 src/contrib/mom/momdoc/inlines.html delete mode 100644 src/contrib/mom/momdoc/intro.html delete mode 100644 src/contrib/mom/momdoc/letters.html delete mode 100644 src/contrib/mom/momdoc/macrolist.html delete mode 100644 src/contrib/mom/momdoc/rectoverso.html delete mode 100644 src/contrib/mom/momdoc/refer.html delete mode 100644 src/contrib/mom/momdoc/reserved.html delete mode 100644 src/contrib/mom/momdoc/toc.html delete mode 100644 src/contrib/mom/momdoc/typemacdoc.html delete mode 100644 src/contrib/mom/momdoc/typesetting.html delete mode 100644 src/contrib/mom/momdoc/using.html delete mode 100644 src/contrib/mom/om.tmac delete mode 100644 src/contrib/pdfmark/pdfmark.tmac delete mode 100644 src/contrib/pdfmark/spdf.tmac delete mode 100644 src/doc/grnexmpl.g delete mode 100644 src/doc/grnexmpl.me delete mode 100644 src/doc/groff.css delete mode 100644 src/doc/meintro.me delete mode 100644 src/doc/meref.me delete mode 100644 src/doc/pic.ms delete mode 100644 src/font/devdvi/CW delete mode 100644 src/font/devdvi/CWEC delete mode 100644 src/font/devdvi/CWI delete mode 100644 src/font/devdvi/CWIEC delete mode 100644 src/font/devdvi/CWITC delete mode 100644 src/font/devdvi/CWTC delete mode 100644 src/font/devdvi/EX delete mode 100644 src/font/devdvi/HB delete mode 100644 src/font/devdvi/HBEC delete mode 100644 src/font/devdvi/HBI delete mode 100644 src/font/devdvi/HBIEC delete mode 100644 src/font/devdvi/HBITC delete mode 100644 src/font/devdvi/HBTC delete mode 100644 src/font/devdvi/HI delete mode 100644 src/font/devdvi/HIEC delete mode 100644 src/font/devdvi/HITC delete mode 100644 src/font/devdvi/HR delete mode 100644 src/font/devdvi/HREC delete mode 100644 src/font/devdvi/HRTC delete mode 100644 src/font/devdvi/MI delete mode 100644 src/font/devdvi/S delete mode 100644 src/font/devdvi/SA delete mode 100644 src/font/devdvi/SB delete mode 100644 src/font/devdvi/SC delete mode 100644 src/font/devdvi/TB delete mode 100644 src/font/devdvi/TBEC delete mode 100644 src/font/devdvi/TBI delete mode 100644 src/font/devdvi/TBIEC delete mode 100644 src/font/devdvi/TBITC delete mode 100644 src/font/devdvi/TBTC delete mode 100644 src/font/devdvi/TI delete mode 100644 src/font/devdvi/TIEC delete mode 100644 src/font/devdvi/TITC delete mode 100644 src/font/devdvi/TR delete mode 100644 src/font/devdvi/TREC delete mode 100644 src/font/devdvi/TRTC delete mode 100755 src/font/devdvi/generate/CompileFonts delete mode 100644 src/font/devdvi/generate/ec.map delete mode 100644 src/font/devdvi/generate/msam.map delete mode 100644 src/font/devdvi/generate/msbm.map delete mode 100644 src/font/devdvi/generate/tc.map delete mode 100644 src/font/devdvi/generate/texb.map delete mode 100644 src/font/devdvi/generate/texex.map delete mode 100644 src/font/devdvi/generate/texi.map delete mode 100644 src/font/devdvi/generate/texmi.map delete mode 100644 src/font/devdvi/generate/texr.map delete mode 100644 src/font/devdvi/generate/texsy.map delete mode 100644 src/font/devdvi/generate/textex.map delete mode 100644 src/font/devdvi/generate/textt.map delete mode 100644 src/font/devlbp/CB delete mode 100644 src/font/devlbp/CI delete mode 100644 src/font/devlbp/CR delete mode 100644 src/font/devlbp/EB delete mode 100644 src/font/devlbp/EI delete mode 100644 src/font/devlbp/ER delete mode 100644 src/font/devlbp/HB delete mode 100644 src/font/devlbp/HBI delete mode 100644 src/font/devlbp/HI delete mode 100644 src/font/devlbp/HNB delete mode 100644 src/font/devlbp/HNBI delete mode 100644 src/font/devlbp/HNI delete mode 100644 src/font/devlbp/HNR delete mode 100644 src/font/devlbp/HR delete mode 100644 src/font/devlbp/TB delete mode 100644 src/font/devlbp/TBI delete mode 100644 src/font/devlbp/TI delete mode 100644 src/font/devlbp/TR delete mode 100644 src/font/devlj4/AB delete mode 100644 src/font/devlj4/ABI delete mode 100644 src/font/devlj4/AI delete mode 100644 src/font/devlj4/ALBB delete mode 100644 src/font/devlj4/ALBR delete mode 100644 src/font/devlj4/AOB delete mode 100644 src/font/devlj4/AOI delete mode 100644 src/font/devlj4/AOR delete mode 100644 src/font/devlj4/AR delete mode 100644 src/font/devlj4/CB delete mode 100644 src/font/devlj4/CBI delete mode 100644 src/font/devlj4/CI delete mode 100644 src/font/devlj4/CLARENDON delete mode 100644 src/font/devlj4/CORONET delete mode 100644 src/font/devlj4/CR delete mode 100644 src/font/devlj4/GB delete mode 100644 src/font/devlj4/GBI delete mode 100644 src/font/devlj4/GI delete mode 100644 src/font/devlj4/GR delete mode 100644 src/font/devlj4/LGB delete mode 100644 src/font/devlj4/LGI delete mode 100644 src/font/devlj4/LGR delete mode 100644 src/font/devlj4/MARIGOLD delete mode 100644 src/font/devlj4/OB delete mode 100644 src/font/devlj4/OBI delete mode 100644 src/font/devlj4/OI delete mode 100644 src/font/devlj4/OR delete mode 100644 src/font/devlj4/S delete mode 100644 src/font/devlj4/SYMBOL delete mode 100644 src/font/devlj4/TB delete mode 100644 src/font/devlj4/TBI delete mode 100644 src/font/devlj4/TI delete mode 100644 src/font/devlj4/TNRB delete mode 100644 src/font/devlj4/TNRBI delete mode 100644 src/font/devlj4/TNRI delete mode 100644 src/font/devlj4/TNRR delete mode 100644 src/font/devlj4/TR delete mode 100644 src/font/devlj4/UB delete mode 100644 src/font/devlj4/UBI delete mode 100644 src/font/devlj4/UCB delete mode 100644 src/font/devlj4/UCBI delete mode 100644 src/font/devlj4/UCI delete mode 100644 src/font/devlj4/UCR delete mode 100644 src/font/devlj4/UI delete mode 100644 src/font/devlj4/UR delete mode 100644 src/font/devlj4/WINGDINGS delete mode 100644 src/font/devlj4/generate/special.awk delete mode 100644 src/font/devlj4/generate/special.map delete mode 100644 src/font/devlj4/generate/symbol.map delete mode 100644 src/font/devlj4/generate/text.map delete mode 100644 src/font/devlj4/generate/wingdings.map delete mode 100644 src/font/devps/AB delete mode 100644 src/font/devps/ABI delete mode 100644 src/font/devps/AI delete mode 100644 src/font/devps/AR delete mode 100644 src/font/devps/BMB delete mode 100644 src/font/devps/BMBI delete mode 100644 src/font/devps/BMI delete mode 100644 src/font/devps/BMR delete mode 100644 src/font/devps/CB delete mode 100644 src/font/devps/CBI delete mode 100644 src/font/devps/CI delete mode 100644 src/font/devps/CR delete mode 100644 src/font/devps/EURO delete mode 100644 src/font/devps/HB delete mode 100644 src/font/devps/HBI delete mode 100644 src/font/devps/HI delete mode 100644 src/font/devps/HNB delete mode 100644 src/font/devps/HNBI delete mode 100644 src/font/devps/HNI delete mode 100644 src/font/devps/HNR delete mode 100644 src/font/devps/HR delete mode 100644 src/font/devps/NB delete mode 100644 src/font/devps/NBI delete mode 100644 src/font/devps/NI delete mode 100644 src/font/devps/NR delete mode 100644 src/font/devps/PB delete mode 100644 src/font/devps/PBI delete mode 100644 src/font/devps/PI delete mode 100644 src/font/devps/PR delete mode 100644 src/font/devps/S delete mode 100644 src/font/devps/SS delete mode 100644 src/font/devps/TB delete mode 100644 src/font/devps/TBI delete mode 100644 src/font/devps/TI delete mode 100644 src/font/devps/TR delete mode 100644 src/font/devps/ZCMI delete mode 100644 src/font/devps/ZD delete mode 100644 src/font/devps/ZDR delete mode 100644 src/font/devps/download delete mode 100644 src/font/devps/freeeuro.pfa delete mode 100755 src/font/devps/generate/afmname delete mode 100644 src/font/devps/generate/dingbats.map delete mode 100644 src/font/devps/generate/dingbats.rmap delete mode 100644 src/font/devps/generate/lgreekmap delete mode 100644 src/font/devps/generate/symbol.sed delete mode 100644 src/font/devps/generate/symbolchars delete mode 100644 src/font/devps/generate/symbolsl.afm delete mode 100644 src/font/devps/generate/textmap delete mode 100644 src/font/devps/text.enc delete mode 100644 src/src/utils/indxbib/eign delete mode 100644 src/tmac/X.tmac delete mode 100644 src/tmac/Xps.tmac delete mode 100644 src/tmac/a4.tmac delete mode 100644 src/tmac/an-old.tmac delete mode 100644 src/tmac/an.tmac delete mode 100644 src/tmac/andoc.tmac delete mode 100644 src/tmac/composite.tmac delete mode 100644 src/tmac/cp1047.tmac delete mode 100644 src/tmac/devtag.tmac delete mode 100644 src/tmac/doc-old.tmac delete mode 100644 src/tmac/dvi.tmac delete mode 100644 src/tmac/ec.tmac delete mode 100644 src/tmac/eqnrc delete mode 100644 src/tmac/europs.tmac delete mode 100644 src/tmac/html-end.tmac delete mode 100644 src/tmac/html.tmac delete mode 100644 src/tmac/hyphen.us delete mode 100644 src/tmac/hyphenex.us delete mode 100644 src/tmac/latin1.tmac delete mode 100644 src/tmac/latin2.tmac delete mode 100644 src/tmac/latin9.tmac delete mode 100644 src/tmac/lbp.tmac delete mode 100644 src/tmac/lj4.tmac delete mode 100644 src/tmac/man.local delete mode 100644 src/tmac/man.tmac delete mode 100644 src/tmac/mandoc.tmac delete mode 100644 src/tmac/mdoc.local delete mode 100644 src/tmac/mdoc.tmac delete mode 100644 src/tmac/me.tmac delete mode 100644 src/tmac/ms.tmac delete mode 100644 src/tmac/papersize.tmac delete mode 100644 src/tmac/pic.tmac delete mode 100644 src/tmac/ps.tmac delete mode 100644 src/tmac/psatk.tmac delete mode 100644 src/tmac/psold.tmac delete mode 100644 src/tmac/pspic.tmac delete mode 100644 src/tmac/s.tmac delete mode 100644 src/tmac/safer.tmac delete mode 100644 src/tmac/trace.tmac delete mode 100644 src/tmac/troffrc delete mode 100644 src/tmac/troffrc-end delete mode 100644 src/tmac/tty-char.tmac delete mode 100644 src/tmac/tty.tmac delete mode 100644 src/tmac/unicode.tmac diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3e78351 --- /dev/null +++ b/Makefile @@ -0,0 +1,73 @@ +## +# Makefile for groff +## + +# Project info +Project = groff +UserType = Administrator +ToolType = Commands +Extra_CC_Flags = -mdynamic-no-pic +Extra_Install_Flags = INSTALL_PROGRAM="$(INSTALL) -c -s" +GnuAfterInstall = symlink remove-dir install-plist + +Extra_Configure_Flags = --without-x + +# GNU build setup +install:: makeprefix +include $(MAKEFILEPATH)/CoreOS/ReleaseControl/GNUSource.make +Install_Target = install + +# Automatic Extract & Patch +AEP = YES +AEP_Project = $(Project) +AEP_Version = 1.19.2 +AEP_ProjVers = $(AEP_Project)-$(AEP_Version) +AEP_Filename = $(AEP_ProjVers).tar.gz +AEP_ExtractDir = $(AEP_ProjVers) +AEP_Patches = tmac__doc-common.diff tmac__troffrc.diff \ + tmac__doc-syms.diff tmac__groff_mdoc.man.diff \ + utf8.diff \ + PR-13280133.diff \ + remove-pdfroff.diff \ + remove-2graph.diff \ + groff-25537049.diff + +ifeq ($(suffix $(AEP_Filename)),.bz2) +AEP_ExtractOption = j +else +AEP_ExtractOption = z +endif + +# Extract the source. +install_source:: +ifeq ($(AEP),YES) + $(TAR) -C $(SRCROOT) -$(AEP_ExtractOption)xf $(SRCROOT)/$(AEP_Filename) + $(RMDIR) $(SRCROOT)/$(AEP_Project) + $(MV) $(SRCROOT)/$(AEP_ExtractDir) $(SRCROOT)/$(AEP_Project) + for patchfile in $(AEP_Patches); do \ + cd $(SRCROOT)/$(Project) && patch -p0 < $(SRCROOT)/patches/$$patchfile; \ + done +endif + +# Satisfy bogus check during installation. +makeprefix: + mkdir -p $(DSTROOT)/usr + +# Create links for "missing" manpages. +symlink: + $(LN) $(DSTROOT)$(MANDIR)/man1/grohtml.1 $(DSTROOT)$(MANDIR)/man1/pre-grohtml.1 + $(LN) $(DSTROOT)$(MANDIR)/man1/grohtml.1 $(DSTROOT)$(MANDIR)/man1/post-grohtml.1 + $(LN) $(DSTROOT)$(MANDIR)/man7/groff_mdoc.7 $(DSTROOT)$(MANDIR)/man7/mdoc.7 + +# Remove the info/dir file. +remove-dir: + rm $(DSTROOT)/usr/share/info/dir + +OSV = $(DSTROOT)/usr/local/OpenSourceVersions +OSL = $(DSTROOT)/usr/local/OpenSourceLicenses + +install-plist: + $(MKDIR) $(OSV) + $(INSTALL_FILE) $(SRCROOT)/$(Project).plist $(OSV)/$(Project).plist + $(MKDIR) $(OSL) + $(INSTALL_FILE) $(Sources)/COPYING $(OSL)/$(Project).txt diff --git a/gen/include/config.h b/gen/include/config.h deleted file mode 100644 index 18257d7..0000000 --- a/gen/include/config.h +++ /dev/null @@ -1,218 +0,0 @@ -/* src/include/config.h. Generated by configure. */ -/* src/include/config.hin. Generated from configure.ac by autoheader. */ - -/* Define if your C++ doesn't understand `delete []'. */ -/* #undef ARRAY_DELETE_NEEDS_SIZE */ - -/* Define if you have a C++ . */ -#define HAVE_CC_INTTYPES_H 1 - -/* Define if you have a C++ . */ -#define HAVE_CC_LIMITS_H 1 - -/* Define if you have a C++ . */ -/* #undef HAVE_CC_OSFCN_H */ - -/* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you - don't. */ -#define HAVE_DECL_SYS_SIGLIST 0 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_DIRECT_H */ - -/* Define to 1 if you have the header file. */ -#define HAVE_DIRENT_H 1 - -/* Define to 1 if you have the `fmod' function. */ -#define HAVE_FMOD 1 - -/* Define to 1 if you have the `getcwd' function. */ -#define HAVE_GETCWD 1 - -/* Define to 1 if you have the `getpagesize' function. */ -#define HAVE_GETPAGESIZE 1 - -/* Define to 1 if you have the `gettimeofday' function. */ -#define HAVE_GETTIMEOFDAY 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_INTTYPES_H 1 - -/* Define to 1 if you have the `isatty' function. */ -#define HAVE_ISATTY 1 - -/* Define to 1 if you have the `kill' function. */ -#define HAVE_KILL 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_LIMITS_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_MATH_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_MEMORY_H 1 - -/* Define if you have mkstemp(). */ -#define HAVE_MKSTEMP 1 - -/* Define to 1 if you have a working `mmap' system call. */ -#define HAVE_MMAP 1 - -/* Define to 1 if you have the header file. */ -/* #undef HAVE_PROCESS_H */ - -/* Define to 1 if you have the `putenv' function. */ -#define HAVE_PUTENV 1 - -/* Define to 1 if you have the `rename' function. */ -#define HAVE_RENAME 1 - -/* Define to 1 if you have the `setlocale' function. */ -#define HAVE_SETLOCALE 1 - -/* Define to 1 if you have the `snprintf' function. */ -#define HAVE_SNPRINTF 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDINT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STDLIB_H 1 - -/* Define to 1 if you have the `strcasecmp' function. */ -#define HAVE_STRCASECMP 1 - -/* Define to 1 if you have the `strerror' function. */ -#define HAVE_STRERROR 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRINGS_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_STRING_H 1 - -/* Define to 1 if you have the `strncasecmp' function. */ -#define HAVE_STRNCASECMP 1 - -/* Define to 1 if you have the `strsep' function. */ -#define HAVE_STRSEP 1 - -/* Define to 1 if you have the `strtol' function. */ -#define HAVE_STRTOL 1 - -/* Define if defines struct exception. */ -#define HAVE_STRUCT_EXCEPTION 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_DIR_H 1 - -/* Define if you have sys_errlist in , , or . */ -#define HAVE_SYS_ERRLIST 1 - -/* Define if you have sys_nerr in , , or . */ -#define HAVE_SYS_NERR 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_STAT_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TIME_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_SYS_TYPES_H 1 - -/* Define to 1 if you have the header file. */ -#define HAVE_UNISTD_H 1 - -/* Define to 1 if you have the `vsnprintf' function. */ -#define HAVE_VSNPRINTF 1 - -/* Define if the host's encoding is EBCDIC. */ -/* #undef IS_EBCDIC_HOST */ - -/* Define if localtime() takes a long * not a time_t *. */ -/* #undef LONG_FOR_TIME_T */ - -/* Define if your C++ doesn't declare gettimeofday(). */ -/* #undef NEED_DECLARATION_GETTIMEOFDAY */ - -/* Define if your C++ doesn't declare hypot(). */ -/* #undef NEED_DECLARATION_HYPOT */ - -/* Define if your C++ doesn't declare pclose(). */ -/* #undef NEED_DECLARATION_PCLOSE */ - -/* Define if your C++ doesn't declare popen(). */ -/* #undef NEED_DECLARATION_POPEN */ - -/* Define if your C++ doesn't declare putenv(). */ -/* #undef NEED_DECLARATION_PUTENV */ - -/* Define if your C++ doesn't declare rand(). */ -/* #undef NEED_DECLARATION_RAND */ - -/* Define if your C++ doesn't declare snprintf(). */ -/* #undef NEED_DECLARATION_SNPRINTF */ - -/* Define if your C++ doesn't declare srand(). */ -/* #undef NEED_DECLARATION_SRAND */ - -/* Define if your C++ doesn't declare strcasecmp(). */ -/* #undef NEED_DECLARATION_STRCASECMP */ - -/* Define if your C++ doesn't declare strncasecmp(). */ -/* #undef NEED_DECLARATION_STRNCASECMP */ - -/* Define if your C++ doesn't declare vfprintf(). */ -/* #undef NEED_DECLARATION_VFPRINTF */ - -/* Define if your C++ doesn't declare vsnprintf(). */ -/* #undef NEED_DECLARATION_VSNPRINTF */ - -/* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "" - -/* Define to the full name of this package. */ -#define PACKAGE_NAME "" - -/* Define to the full name and version of this package. */ -#define PACKAGE_STRING "" - -/* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "" - -/* Define to the version of this package. */ -#define PACKAGE_VERSION "" - -/* Define if the printer's page size is A4. */ -/* #undef PAGEA4 */ - -/* Define as the return type of signal handlers (`int' or `void'). */ -#define RETSIGTYPE void - -/* Define if srand() returns void not int. */ -#define RET_TYPE_SRAND_IS_VOID 1 - -/* Define to 1 if you have the ANSI C header files. */ -#define STDC_HEADERS 1 - -/* Define if your C++ compiler uses a traditional (Reiser) preprocessor. */ -/* #undef TRADITIONAL_CPP */ - -/* Define if the 0200 bit of the status returned by wait() indicates whether a - core image was produced for a process that was terminated by a signal. */ -/* #undef WCOREFLAG */ - -/* Define to 1 if the X Window System is missing or not being used. */ -#define X_DISPLAY_MISSING 1 - -/* Define if -D_POSIX_SOURCE is necessary. */ -/* #undef _POSIX_SOURCE */ - -/* Define if you have ISC 3.x or 4.x. */ -/* #undef _SYSV3 */ - -/* Define uintmax_t to `unsigned long' or `unsigned long long' if - does not exist. */ -/* #undef uintmax_t */ diff --git a/gen/include/defs.h b/gen/include/defs.h deleted file mode 100644 index f4f4038..0000000 --- a/gen/include/defs.h +++ /dev/null @@ -1,11 +0,0 @@ -#define PROG_PREFIX "" -#define DEVICE "ps" -#define INSTALLPATH "/usr" -#define BINPATH "/usr/bin" -#define FONTPATH "/usr/share/groff/site-font:/usr/share/groff/1.19.2/font:/usr/lib/font" -#define MACROPATH "/usr/lib/groff/site-tmac:/usr/share/groff/site-tmac:/usr/share/groff/1.19.2/tmac" -#define INDEX_SUFFIX ".i" -#define COMMON_WORDS_FILE "/usr/share/groff/1.19.2/eign" -#define DEFAULT_INDEX_DIR "/usr/dict/papers" -#define DEFAULT_INDEX_NAME "Ind" -#define DEFAULT_INDEX "/usr/dict/papers/Ind" diff --git a/gen/include/majorminor.cpp b/gen/include/majorminor.cpp deleted file mode 100644 index d53d0c0..0000000 --- a/gen/include/majorminor.cpp +++ /dev/null @@ -1,3 +0,0 @@ -const char *major_version = "1"; -const char *minor_version = "19"; -const char *revision = "2"; diff --git a/gen/src/majorminor.cpp b/gen/src/majorminor.cpp deleted file mode 100644 index d53d0c0..0000000 --- a/gen/src/majorminor.cpp +++ /dev/null @@ -1,3 +0,0 @@ -const char *major_version = "1"; -const char *minor_version = "19"; -const char *revision = "2"; diff --git a/gen/usr/bin/afmtodit b/gen/usr/bin/afmtodit deleted file mode 100755 index a92b49f..0000000 --- a/gen/usr/bin/afmtodit +++ /dev/null @@ -1,6566 +0,0 @@ -#! /usr/bin/perl -w -# -*- Perl -*- -# Copyright (C) 1989-2000, 2001, 2002, 2003, 2004, 2005 -# Free Software Foundation, Inc. -# Written by James Clark (jjc@jclark.com) -# -# This file is part of groff. -# -# groff is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free -# Software Foundation; either version 2, or (at your option) any later -# version. -# -# groff is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License along -# with groff; see the file COPYING. If not, write to the Free Software -# Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. - -use strict; - -my %unicode_decomposed = ( - "00C0", "0041_0300", - "00C1", "0041_0301", - "00C2", "0041_0302", - "00C3", "0041_0303", - "00C4", "0041_0308", - "00C5", "0041_030A", - "00C7", "0043_0327", - "00C8", "0045_0300", - "00C9", "0045_0301", - "00CA", "0045_0302", - "00CB", "0045_0308", - "00CC", "0049_0300", - "00CD", "0049_0301", - "00CE", "0049_0302", - "00CF", "0049_0308", - "00D1", "004E_0303", - "00D2", "004F_0300", - "00D3", "004F_0301", - "00D4", "004F_0302", - "00D5", "004F_0303", - "00D6", "004F_0308", - "00D9", "0055_0300", - "00DA", "0055_0301", - "00DB", "0055_0302", - "00DC", "0055_0308", - "00DD", "0059_0301", - "00E0", "0061_0300", - "00E1", "0061_0301", - "00E2", "0061_0302", - "00E3", "0061_0303", - "00E4", "0061_0308", - "00E5", "0061_030A", - "00E7", "0063_0327", - "00E8", "0065_0300", - "00E9", "0065_0301", - "00EA", "0065_0302", - "00EB", "0065_0308", - "00EC", "0069_0300", - "00ED", "0069_0301", - "00EE", "0069_0302", - "00EF", "0069_0308", - "00F1", "006E_0303", - "00F2", "006F_0300", - "00F3", "006F_0301", - "00F4", "006F_0302", - "00F5", "006F_0303", - "00F6", "006F_0308", - "00F9", "0075_0300", - "00FA", "0075_0301", - "00FB", "0075_0302", - "00FC", "0075_0308", - "00FD", "0079_0301", - "00FF", "0079_0308", - "0100", "0041_0304", - "0101", "0061_0304", - "0102", "0041_0306", - "0103", "0061_0306", - "0104", "0041_0328", - "0105", "0061_0328", - "0106", "0043_0301", - "0107", "0063_0301", - "0108", "0043_0302", - "0109", "0063_0302", - "010A", "0043_0307", - "010B", "0063_0307", - "010C", "0043_030C", - "010D", "0063_030C", - "010E", "0044_030C", - "010F", "0064_030C", - "0112", "0045_0304", - "0113", "0065_0304", - "0114", "0045_0306", - "0115", "0065_0306", - "0116", "0045_0307", - "0117", "0065_0307", - "0118", "0045_0328", - "0119", "0065_0328", - "011A", "0045_030C", - "011B", "0065_030C", - "011C", "0047_0302", - "011D", "0067_0302", - "011E", "0047_0306", - "011F", "0067_0306", - "0120", "0047_0307", - "0121", "0067_0307", - "0122", "0047_0327", - "0123", "0067_0327", - "0124", "0048_0302", - "0125", "0068_0302", - "0128", "0049_0303", - "0129", "0069_0303", - "012A", "0049_0304", - "012B", "0069_0304", - "012C", "0049_0306", - "012D", "0069_0306", - "012E", "0049_0328", - "012F", "0069_0328", - "0130", "0049_0307", - "0134", "004A_0302", - "0135", "006A_0302", - "0136", "004B_0327", - "0137", "006B_0327", - "0139", "004C_0301", - "013A", "006C_0301", - "013B", "004C_0327", - "013C", "006C_0327", - "013D", "004C_030C", - "013E", "006C_030C", - "0143", "004E_0301", - "0144", "006E_0301", - "0145", "004E_0327", - "0146", "006E_0327", - "0147", "004E_030C", - "0148", "006E_030C", - "014C", "004F_0304", - "014D", "006F_0304", - "014E", "004F_0306", - "014F", "006F_0306", - "0150", "004F_030B", - "0151", "006F_030B", - "0154", "0052_0301", - "0155", "0072_0301", - "0156", "0052_0327", - "0157", "0072_0327", - "0158", "0052_030C", - "0159", "0072_030C", - "015A", "0053_0301", - "015B", "0073_0301", - "015C", "0053_0302", - "015D", "0073_0302", - "015E", "0053_0327", - "015F", "0073_0327", - "0160", "0053_030C", - "0161", "0073_030C", - "0162", "0054_0327", - "0163", "0074_0327", - "0164", "0054_030C", - "0165", "0074_030C", - "0168", "0055_0303", - "0169", "0075_0303", - "016A", "0055_0304", - "016B", "0075_0304", - "016C", "0055_0306", - "016D", "0075_0306", - "016E", "0055_030A", - "016F", "0075_030A", - "0170", "0055_030B", - "0171", "0075_030B", - "0172", "0055_0328", - "0173", "0075_0328", - "0174", "0057_0302", - "0175", "0077_0302", - "0176", "0059_0302", - "0177", "0079_0302", - "0178", "0059_0308", - "0179", "005A_0301", - "017A", "007A_0301", - "017B", "005A_0307", - "017C", "007A_0307", - "017D", "005A_030C", - "017E", "007A_030C", - "01A0", "004F_031B", - "01A1", "006F_031B", - "01AF", "0055_031B", - "01B0", "0075_031B", - "01CD", "0041_030C", - "01CE", "0061_030C", - "01CF", "0049_030C", - "01D0", "0069_030C", - "01D1", "004F_030C", - "01D2", "006F_030C", - "01D3", "0055_030C", - "01D4", "0075_030C", - "01D5", "0055_0308_0304", - "01D6", "0075_0308_0304", - "01D7", "0055_0308_0301", - "01D8", "0075_0308_0301", - "01D9", "0055_0308_030C", - "01DA", "0075_0308_030C", - "01DB", "0055_0308_0300", - "01DC", "0075_0308_0300", - "01DE", "0041_0308_0304", - "01DF", "0061_0308_0304", - "01E0", "0041_0307_0304", - "01E1", "0061_0307_0304", - "01E2", "00C6_0304", - "01E3", "00E6_0304", - "01E6", "0047_030C", - "01E7", "0067_030C", - "01E8", "004B_030C", - "01E9", "006B_030C", - "01EA", "004F_0328", - "01EB", "006F_0328", - "01EC", "004F_0328_0304", - "01ED", "006F_0328_0304", - "01EE", "01B7_030C", - "01EF", "0292_030C", - "01F0", "006A_030C", - "01F4", "0047_0301", - "01F5", "0067_0301", - "01F8", "004E_0300", - "01F9", "006E_0300", - "01FA", "0041_030A_0301", - "01FB", "0061_030A_0301", - "01FC", "00C6_0301", - "01FD", "00E6_0301", - "01FE", "00D8_0301", - "01FF", "00F8_0301", - "0200", "0041_030F", - "0201", "0061_030F", - "0202", "0041_0311", - "0203", "0061_0311", - "0204", "0045_030F", - "0205", "0065_030F", - "0206", "0045_0311", - "0207", "0065_0311", - "0208", "0049_030F", - "0209", "0069_030F", - "020A", "0049_0311", - "020B", "0069_0311", - "020C", "004F_030F", - "020D", "006F_030F", - "020E", "004F_0311", - "020F", "006F_0311", - "0210", "0052_030F", - "0211", "0072_030F", - "0212", "0052_0311", - "0213", "0072_0311", - "0214", "0055_030F", - "0215", "0075_030F", - "0216", "0055_0311", - "0217", "0075_0311", - "0218", "0053_0326", - "0219", "0073_0326", - "021A", "0054_0326", - "021B", "0074_0326", - "021E", "0048_030C", - "021F", "0068_030C", - "0226", "0041_0307", - "0227", "0061_0307", - "0228", "0045_0327", - "0229", "0065_0327", - "022A", "004F_0308_0304", - "022B", "006F_0308_0304", - "022C", "004F_0303_0304", - "022D", "006F_0303_0304", - "022E", "004F_0307", - "022F", "006F_0307", - "0230", "004F_0307_0304", - "0231", "006F_0307_0304", - "0232", "0059_0304", - "0233", "0079_0304", - "0340", "0300", - "0341", "0301", - "0343", "0313", - "0344", "0308_0301", - "0374", "02B9", - "037E", "003B", - "0385", "00A8_0301", - "0386", "0391_0301", - "0387", "00B7", - "0388", "0395_0301", - "0389", "0397_0301", - "038A", "0399_0301", - "038C", "039F_0301", - "038E", "03A5_0301", - "038F", "03A9_0301", - "0390", "03B9_0308_0301", - "03AA", "0399_0308", - "03AB", "03A5_0308", - "03AC", "03B1_0301", - "03AD", "03B5_0301", - "03AE", "03B7_0301", - "03AF", "03B9_0301", - "03B0", "03C5_0308_0301", - "03CA", "03B9_0308", - "03CB", "03C5_0308", - "03CC", "03BF_0301", - "03CD", "03C5_0301", - "03CE", "03C9_0301", - "03D3", "03D2_0301", - "03D4", "03D2_0308", - "0400", "0415_0300", - "0401", "0415_0308", - "0403", "0413_0301", - "0407", "0406_0308", - "040C", "041A_0301", - "040D", "0418_0300", - "040E", "0423_0306", - "0419", "0418_0306", - "0439", "0438_0306", - "0450", "0435_0300", - "0451", "0435_0308", - "0453", "0433_0301", - "0457", "0456_0308", - "045C", "043A_0301", - "045D", "0438_0300", - "045E", "0443_0306", - "0476", "0474_030F", - "0477", "0475_030F", - "04C1", "0416_0306", - "04C2", "0436_0306", - "04D0", "0410_0306", - "04D1", "0430_0306", - "04D2", "0410_0308", - "04D3", "0430_0308", - "04D6", "0415_0306", - "04D7", "0435_0306", - "04DA", "04D8_0308", - "04DB", "04D9_0308", - "04DC", "0416_0308", - "04DD", "0436_0308", - "04DE", "0417_0308", - "04DF", "0437_0308", - "04E2", "0418_0304", - "04E3", "0438_0304", - "04E4", "0418_0308", - "04E5", "0438_0308", - "04E6", "041E_0308", - "04E7", "043E_0308", - "04EA", "04E8_0308", - "04EB", "04E9_0308", - "04EC", "042D_0308", - "04ED", "044D_0308", - "04EE", "0423_0304", - "04EF", "0443_0304", - "04F0", "0423_0308", - "04F1", "0443_0308", - "04F2", "0423_030B", - "04F3", "0443_030B", - "04F4", "0427_0308", - "04F5", "0447_0308", - "04F8", "042B_0308", - "04F9", "044B_0308", - "0622", "0627_0653", - "0623", "0627_0654", - "0624", "0648_0654", - "0625", "0627_0655", - "0626", "064A_0654", - "06C0", "06D5_0654", - "06C2", "06C1_0654", - "06D3", "06D2_0654", - "0929", "0928_093C", - "0931", "0930_093C", - "0934", "0933_093C", - "0958", "0915_093C", - "0959", "0916_093C", - "095A", "0917_093C", - "095B", "091C_093C", - "095C", "0921_093C", - "095D", "0922_093C", - "095E", "092B_093C", - "095F", "092F_093C", - "09CB", "09C7_09BE", - "09CC", "09C7_09D7", - "09DC", "09A1_09BC", - "09DD", "09A2_09BC", - "09DF", "09AF_09BC", - "0A33", "0A32_0A3C", - "0A36", "0A38_0A3C", - "0A59", "0A16_0A3C", - "0A5A", "0A17_0A3C", - "0A5B", "0A1C_0A3C", - "0A5E", "0A2B_0A3C", - "0B48", "0B47_0B56", - "0B4B", "0B47_0B3E", - "0B4C", "0B47_0B57", - "0B5C", "0B21_0B3C", - "0B5D", "0B22_0B3C", - "0B94", "0B92_0BD7", - "0BCA", "0BC6_0BBE", - "0BCB", "0BC7_0BBE", - "0BCC", "0BC6_0BD7", - "0C48", "0C46_0C56", - "0CC0", "0CBF_0CD5", - "0CC7", "0CC6_0CD5", - "0CC8", "0CC6_0CD6", - "0CCA", "0CC6_0CC2", - "0CCB", "0CC6_0CC2_0CD5", - "0D4A", "0D46_0D3E", - "0D4B", "0D47_0D3E", - "0D4C", "0D46_0D57", - "0DDA", "0DD9_0DCA", - "0DDC", "0DD9_0DCF", - "0DDD", "0DD9_0DCF_0DCA", - "0DDE", "0DD9_0DDF", - "0F43", "0F42_0FB7", - "0F4D", "0F4C_0FB7", - "0F52", "0F51_0FB7", - "0F57", "0F56_0FB7", - "0F5C", "0F5B_0FB7", - "0F69", "0F40_0FB5", - "0F73", "0F71_0F72", - "0F75", "0F71_0F74", - "0F76", "0FB2_0F80", - "0F78", "0FB3_0F80", - "0F81", "0F71_0F80", - "0F93", "0F92_0FB7", - "0F9D", "0F9C_0FB7", - "0FA2", "0FA1_0FB7", - "0FA7", "0FA6_0FB7", - "0FAC", "0FAB_0FB7", - "0FB9", "0F90_0FB5", - "1026", "1025_102E", - "1E00", "0041_0325", - "1E01", "0061_0325", - "1E02", "0042_0307", - "1E03", "0062_0307", - "1E04", "0042_0323", - "1E05", "0062_0323", - "1E06", "0042_0331", - "1E07", "0062_0331", - "1E08", "0043_0327_0301", - "1E09", "0063_0327_0301", - "1E0A", "0044_0307", - "1E0B", "0064_0307", - "1E0C", "0044_0323", - "1E0D", "0064_0323", - "1E0E", "0044_0331", - "1E0F", "0064_0331", - "1E10", "0044_0327", - "1E11", "0064_0327", - "1E12", "0044_032D", - "1E13", "0064_032D", - "1E14", "0045_0304_0300", - "1E15", "0065_0304_0300", - "1E16", "0045_0304_0301", - "1E17", "0065_0304_0301", - "1E18", "0045_032D", - "1E19", "0065_032D", - "1E1A", "0045_0330", - "1E1B", "0065_0330", - "1E1C", "0045_0327_0306", - "1E1D", "0065_0327_0306", - "1E1E", "0046_0307", - "1E1F", "0066_0307", - "1E20", "0047_0304", - "1E21", "0067_0304", - "1E22", "0048_0307", - "1E23", "0068_0307", - "1E24", "0048_0323", - "1E25", "0068_0323", - "1E26", "0048_0308", - "1E27", "0068_0308", - "1E28", "0048_0327", - "1E29", "0068_0327", - "1E2A", "0048_032E", - "1E2B", "0068_032E", - "1E2C", "0049_0330", - "1E2D", "0069_0330", - "1E2E", "0049_0308_0301", - "1E2F", "0069_0308_0301", - "1E30", "004B_0301", - "1E31", "006B_0301", - "1E32", "004B_0323", - "1E33", "006B_0323", - "1E34", "004B_0331", - "1E35", "006B_0331", - "1E36", "004C_0323", - "1E37", "006C_0323", - "1E38", "004C_0323_0304", - "1E39", "006C_0323_0304", - "1E3A", "004C_0331", - "1E3B", "006C_0331", - "1E3C", "004C_032D", - "1E3D", "006C_032D", - "1E3E", "004D_0301", - "1E3F", "006D_0301", - "1E40", "004D_0307", - "1E41", "006D_0307", - "1E42", "004D_0323", - "1E43", "006D_0323", - "1E44", "004E_0307", - "1E45", "006E_0307", - "1E46", "004E_0323", - "1E47", "006E_0323", - "1E48", "004E_0331", - "1E49", "006E_0331", - "1E4A", "004E_032D", - "1E4B", "006E_032D", - "1E4C", "004F_0303_0301", - "1E4D", "006F_0303_0301", - "1E4E", "004F_0303_0308", - "1E4F", "006F_0303_0308", - "1E50", "004F_0304_0300", - "1E51", "006F_0304_0300", - "1E52", "004F_0304_0301", - "1E53", "006F_0304_0301", - "1E54", "0050_0301", - "1E55", "0070_0301", - "1E56", "0050_0307", - "1E57", "0070_0307", - "1E58", "0052_0307", - "1E59", "0072_0307", - "1E5A", "0052_0323", - "1E5B", "0072_0323", - "1E5C", "0052_0323_0304", - "1E5D", "0072_0323_0304", - "1E5E", "0052_0331", - "1E5F", "0072_0331", - "1E60", "0053_0307", - "1E61", "0073_0307", - "1E62", "0053_0323", - "1E63", "0073_0323", - "1E64", "0053_0301_0307", - "1E65", "0073_0301_0307", - "1E66", "0053_030C_0307", - "1E67", "0073_030C_0307", - "1E68", "0053_0323_0307", - "1E69", "0073_0323_0307", - "1E6A", "0054_0307", - "1E6B", "0074_0307", - "1E6C", "0054_0323", - "1E6D", "0074_0323", - "1E6E", "0054_0331", - "1E6F", "0074_0331", - "1E70", "0054_032D", - "1E71", "0074_032D", - "1E72", "0055_0324", - "1E73", "0075_0324", - "1E74", "0055_0330", - "1E75", "0075_0330", - "1E76", "0055_032D", - "1E77", "0075_032D", - "1E78", "0055_0303_0301", - "1E79", "0075_0303_0301", - "1E7A", "0055_0304_0308", - "1E7B", "0075_0304_0308", - "1E7C", "0056_0303", - "1E7D", "0076_0303", - "1E7E", "0056_0323", - "1E7F", "0076_0323", - "1E80", "0057_0300", - "1E81", "0077_0300", - "1E82", "0057_0301", - "1E83", "0077_0301", - "1E84", "0057_0308", - "1E85", "0077_0308", - "1E86", "0057_0307", - "1E87", "0077_0307", - "1E88", "0057_0323", - "1E89", "0077_0323", - "1E8A", "0058_0307", - "1E8B", "0078_0307", - "1E8C", "0058_0308", - "1E8D", "0078_0308", - "1E8E", "0059_0307", - "1E8F", "0079_0307", - "1E90", "005A_0302", - "1E91", "007A_0302", - "1E92", "005A_0323", - "1E93", "007A_0323", - "1E94", "005A_0331", - "1E95", "007A_0331", - "1E96", "0068_0331", - "1E97", "0074_0308", - "1E98", "0077_030A", - "1E99", "0079_030A", - "1E9B", "017F_0307", - "1EA0", "0041_0323", - "1EA1", "0061_0323", - "1EA2", "0041_0309", - "1EA3", "0061_0309", - "1EA4", "0041_0302_0301", - "1EA5", "0061_0302_0301", - "1EA6", "0041_0302_0300", - "1EA7", "0061_0302_0300", - "1EA8", "0041_0302_0309", - "1EA9", "0061_0302_0309", - "1EAA", "0041_0302_0303", - "1EAB", "0061_0302_0303", - "1EAC", "0041_0323_0302", - "1EAD", "0061_0323_0302", - "1EAE", "0041_0306_0301", - "1EAF", "0061_0306_0301", - "1EB0", "0041_0306_0300", - "1EB1", "0061_0306_0300", - "1EB2", "0041_0306_0309", - "1EB3", "0061_0306_0309", - "1EB4", "0041_0306_0303", - "1EB5", "0061_0306_0303", - "1EB6", "0041_0323_0306", - "1EB7", "0061_0323_0306", - "1EB8", "0045_0323", - "1EB9", "0065_0323", - "1EBA", "0045_0309", - "1EBB", "0065_0309", - "1EBC", "0045_0303", - "1EBD", "0065_0303", - "1EBE", "0045_0302_0301", - "1EBF", "0065_0302_0301", - "1EC0", "0045_0302_0300", - "1EC1", "0065_0302_0300", - "1EC2", "0045_0302_0309", - "1EC3", "0065_0302_0309", - "1EC4", "0045_0302_0303", - "1EC5", "0065_0302_0303", - "1EC6", "0045_0323_0302", - "1EC7", "0065_0323_0302", - "1EC8", "0049_0309", - "1EC9", "0069_0309", - "1ECA", "0049_0323", - "1ECB", "0069_0323", - "1ECC", "004F_0323", - "1ECD", "006F_0323", - "1ECE", "004F_0309", - "1ECF", "006F_0309", - "1ED0", "004F_0302_0301", - "1ED1", "006F_0302_0301", - "1ED2", "004F_0302_0300", - "1ED3", "006F_0302_0300", - "1ED4", "004F_0302_0309", - "1ED5", "006F_0302_0309", - "1ED6", "004F_0302_0303", - "1ED7", "006F_0302_0303", - "1ED8", "004F_0323_0302", - "1ED9", "006F_0323_0302", - "1EDA", "004F_031B_0301", - "1EDB", "006F_031B_0301", - "1EDC", "004F_031B_0300", - "1EDD", "006F_031B_0300", - "1EDE", "004F_031B_0309", - "1EDF", "006F_031B_0309", - "1EE0", "004F_031B_0303", - "1EE1", "006F_031B_0303", - "1EE2", "004F_031B_0323", - "1EE3", "006F_031B_0323", - "1EE4", "0055_0323", - "1EE5", "0075_0323", - "1EE6", "0055_0309", - "1EE7", "0075_0309", - "1EE8", "0055_031B_0301", - "1EE9", "0075_031B_0301", - "1EEA", "0055_031B_0300", - "1EEB", "0075_031B_0300", - "1EEC", "0055_031B_0309", - "1EED", "0075_031B_0309", - "1EEE", "0055_031B_0303", - "1EEF", "0075_031B_0303", - "1EF0", "0055_031B_0323", - "1EF1", "0075_031B_0323", - "1EF2", "0059_0300", - "1EF3", "0079_0300", - "1EF4", "0059_0323", - "1EF5", "0079_0323", - "1EF6", "0059_0309", - "1EF7", "0079_0309", - "1EF8", "0059_0303", - "1EF9", "0079_0303", - "1F00", "03B1_0313", - "1F01", "03B1_0314", - "1F02", "03B1_0313_0300", - "1F03", "03B1_0314_0300", - "1F04", "03B1_0313_0301", - "1F05", "03B1_0314_0301", - "1F06", "03B1_0313_0342", - "1F07", "03B1_0314_0342", - "1F08", "0391_0313", - "1F09", "0391_0314", - "1F0A", "0391_0313_0300", - "1F0B", "0391_0314_0300", - "1F0C", "0391_0313_0301", - "1F0D", "0391_0314_0301", - "1F0E", "0391_0313_0342", - "1F0F", "0391_0314_0342", - "1F10", "03B5_0313", - "1F11", "03B5_0314", - "1F12", "03B5_0313_0300", - "1F13", "03B5_0314_0300", - "1F14", "03B5_0313_0301", - "1F15", "03B5_0314_0301", - "1F18", "0395_0313", - "1F19", "0395_0314", - "1F1A", "0395_0313_0300", - "1F1B", "0395_0314_0300", - "1F1C", "0395_0313_0301", - "1F1D", "0395_0314_0301", - "1F20", "03B7_0313", - "1F21", "03B7_0314", - "1F22", "03B7_0313_0300", - "1F23", "03B7_0314_0300", - "1F24", "03B7_0313_0301", - "1F25", "03B7_0314_0301", - "1F26", "03B7_0313_0342", - "1F27", "03B7_0314_0342", - "1F28", "0397_0313", - "1F29", "0397_0314", - "1F2A", "0397_0313_0300", - "1F2B", "0397_0314_0300", - "1F2C", "0397_0313_0301", - "1F2D", "0397_0314_0301", - "1F2E", "0397_0313_0342", - "1F2F", "0397_0314_0342", - "1F30", "03B9_0313", - "1F31", "03B9_0314", - "1F32", "03B9_0313_0300", - "1F33", "03B9_0314_0300", - "1F34", "03B9_0313_0301", - "1F35", "03B9_0314_0301", - "1F36", "03B9_0313_0342", - "1F37", "03B9_0314_0342", - "1F38", "0399_0313", - "1F39", "0399_0314", - "1F3A", "0399_0313_0300", - "1F3B", "0399_0314_0300", - "1F3C", "0399_0313_0301", - "1F3D", "0399_0314_0301", - "1F3E", "0399_0313_0342", - "1F3F", "0399_0314_0342", - "1F40", "03BF_0313", - "1F41", "03BF_0314", - "1F42", "03BF_0313_0300", - "1F43", "03BF_0314_0300", - "1F44", "03BF_0313_0301", - "1F45", "03BF_0314_0301", - "1F48", "039F_0313", - "1F49", "039F_0314", - "1F4A", "039F_0313_0300", - "1F4B", "039F_0314_0300", - "1F4C", "039F_0313_0301", - "1F4D", "039F_0314_0301", - "1F50", "03C5_0313", - "1F51", "03C5_0314", - "1F52", "03C5_0313_0300", - "1F53", "03C5_0314_0300", - "1F54", "03C5_0313_0301", - "1F55", "03C5_0314_0301", - "1F56", "03C5_0313_0342", - "1F57", "03C5_0314_0342", - "1F59", "03A5_0314", - "1F5B", "03A5_0314_0300", - "1F5D", "03A5_0314_0301", - "1F5F", "03A5_0314_0342", - "1F60", "03C9_0313", - "1F61", "03C9_0314", - "1F62", "03C9_0313_0300", - "1F63", "03C9_0314_0300", - "1F64", "03C9_0313_0301", - "1F65", "03C9_0314_0301", - "1F66", "03C9_0313_0342", - "1F67", "03C9_0314_0342", - "1F68", "03A9_0313", - "1F69", "03A9_0314", - "1F6A", "03A9_0313_0300", - "1F6B", "03A9_0314_0300", - "1F6C", "03A9_0313_0301", - "1F6D", "03A9_0314_0301", - "1F6E", "03A9_0313_0342", - "1F6F", "03A9_0314_0342", - "1F70", "03B1_0300", - "1F71", "03B1_0301", - "1F72", "03B5_0300", - "1F73", "03B5_0301", - "1F74", "03B7_0300", - "1F75", "03B7_0301", - "1F76", "03B9_0300", - "1F77", "03B9_0301", - "1F78", "03BF_0300", - "1F79", "03BF_0301", - "1F7A", "03C5_0300", - "1F7B", "03C5_0301", - "1F7C", "03C9_0300", - "1F7D", "03C9_0301", - "1F80", "03B1_0313_0345", - "1F81", "03B1_0314_0345", - "1F82", "03B1_0313_0300_0345", - "1F83", "03B1_0314_0300_0345", - "1F84", "03B1_0313_0301_0345", - "1F85", "03B1_0314_0301_0345", - "1F86", "03B1_0313_0342_0345", - "1F87", "03B1_0314_0342_0345", - "1F88", "0391_0313_0345", - "1F89", "0391_0314_0345", - "1F8A", "0391_0313_0300_0345", - "1F8B", "0391_0314_0300_0345", - "1F8C", "0391_0313_0301_0345", - "1F8D", "0391_0314_0301_0345", - "1F8E", "0391_0313_0342_0345", - "1F8F", "0391_0314_0342_0345", - "1F90", "03B7_0313_0345", - "1F91", "03B7_0314_0345", - "1F92", "03B7_0313_0300_0345", - "1F93", "03B7_0314_0300_0345", - "1F94", "03B7_0313_0301_0345", - "1F95", "03B7_0314_0301_0345", - "1F96", "03B7_0313_0342_0345", - "1F97", "03B7_0314_0342_0345", - "1F98", "0397_0313_0345", - "1F99", "0397_0314_0345", - "1F9A", "0397_0313_0300_0345", - "1F9B", "0397_0314_0300_0345", - "1F9C", "0397_0313_0301_0345", - "1F9D", "0397_0314_0301_0345", - "1F9E", "0397_0313_0342_0345", - "1F9F", "0397_0314_0342_0345", - "1FA0", "03C9_0313_0345", - "1FA1", "03C9_0314_0345", - "1FA2", "03C9_0313_0300_0345", - "1FA3", "03C9_0314_0300_0345", - "1FA4", "03C9_0313_0301_0345", - "1FA5", "03C9_0314_0301_0345", - "1FA6", "03C9_0313_0342_0345", - "1FA7", "03C9_0314_0342_0345", - "1FA8", "03A9_0313_0345", - "1FA9", "03A9_0314_0345", - "1FAA", "03A9_0313_0300_0345", - "1FAB", "03A9_0314_0300_0345", - "1FAC", "03A9_0313_0301_0345", - "1FAD", "03A9_0314_0301_0345", - "1FAE", "03A9_0313_0342_0345", - "1FAF", "03A9_0314_0342_0345", - "1FB0", "03B1_0306", - "1FB1", "03B1_0304", - "1FB2", "03B1_0300_0345", - "1FB3", "03B1_0345", - "1FB4", "03B1_0301_0345", - "1FB6", "03B1_0342", - "1FB7", "03B1_0342_0345", - "1FB8", "0391_0306", - "1FB9", "0391_0304", - "1FBA", "0391_0300", - "1FBB", "0391_0301", - "1FBC", "0391_0345", - "1FBE", "03B9", - "1FC1", "00A8_0342", - "1FC2", "03B7_0300_0345", - "1FC3", "03B7_0345", - "1FC4", "03B7_0301_0345", - "1FC6", "03B7_0342", - "1FC7", "03B7_0342_0345", - "1FC8", "0395_0300", - "1FC9", "0395_0301", - "1FCA", "0397_0300", - "1FCB", "0397_0301", - "1FCC", "0397_0345", - "1FCD", "1FBF_0300", - "1FCE", "1FBF_0301", - "1FCF", "1FBF_0342", - "1FD0", "03B9_0306", - "1FD1", "03B9_0304", - "1FD2", "03B9_0308_0300", - "1FD3", "03B9_0308_0301", - "1FD6", "03B9_0342", - "1FD7", "03B9_0308_0342", - "1FD8", "0399_0306", - "1FD9", "0399_0304", - "1FDA", "0399_0300", - "1FDB", "0399_0301", - "1FDD", "1FFE_0300", - "1FDE", "1FFE_0301", - "1FDF", "1FFE_0342", - "1FE0", "03C5_0306", - "1FE1", "03C5_0304", - "1FE2", "03C5_0308_0300", - "1FE3", "03C5_0308_0301", - "1FE4", "03C1_0313", - "1FE5", "03C1_0314", - "1FE6", "03C5_0342", - "1FE7", "03C5_0308_0342", - "1FE8", "03A5_0306", - "1FE9", "03A5_0304", - "1FEA", "03A5_0300", - "1FEB", "03A5_0301", - "1FEC", "03A1_0314", - "1FED", "00A8_0300", - "1FEE", "00A8_0301", - "1FEF", "0060", - "1FF2", "03C9_0300_0345", - "1FF3", "03C9_0345", - "1FF4", "03C9_0301_0345", - "1FF6", "03C9_0342", - "1FF7", "03C9_0342_0345", - "1FF8", "039F_0300", - "1FF9", "039F_0301", - "1FFA", "03A9_0300", - "1FFB", "03A9_0301", - "1FFC", "03A9_0345", - "1FFD", "00B4", - "2000", "2002", - "2001", "2003", - "2126", "03A9", - "212A", "004B", - "212B", "0041_030A", - "219A", "2190_0338", - "219B", "2192_0338", - "21AE", "2194_0338", - "21CD", "21D0_0338", - "21CE", "21D4_0338", - "21CF", "21D2_0338", - "2204", "2203_0338", - "2209", "2208_0338", - "220C", "220B_0338", - "2224", "2223_0338", - "2226", "2225_0338", - "2241", "223C_0338", - "2244", "2243_0338", - "2247", "2245_0338", - "2249", "2248_0338", - "2260", "003D_0338", - "2262", "2261_0338", - "226D", "224D_0338", - "226E", "003C_0338", - "226F", "003E_0338", - "2270", "2264_0338", - "2271", "2265_0338", - "2274", "2272_0338", - "2275", "2273_0338", - "2278", "2276_0338", - "2279", "2277_0338", - "2280", "227A_0338", - "2281", "227B_0338", - "2284", "2282_0338", - "2285", "2283_0338", - "2288", "2286_0338", - "2289", "2287_0338", - "22AC", "22A2_0338", - "22AD", "22A8_0338", - "22AE", "22A9_0338", - "22AF", "22AB_0338", - "22E0", "227C_0338", - "22E1", "227D_0338", - "22E2", "2291_0338", - "22E3", "2292_0338", - "22EA", "22B2_0338", - "22EB", "22B3_0338", - "22EC", "22B4_0338", - "22ED", "22B5_0338", - "2329", "3008", - "232A", "3009", - "2ADC", "2ADD_0338", - "304C", "304B_3099", - "304E", "304D_3099", - "3050", "304F_3099", - "3052", "3051_3099", - "3054", "3053_3099", - "3056", "3055_3099", - "3058", "3057_3099", - "305A", "3059_3099", - "305C", "305B_3099", - "305E", "305D_3099", - "3060", "305F_3099", - "3062", "3061_3099", - "3065", "3064_3099", - "3067", "3066_3099", - "3069", "3068_3099", - "3070", "306F_3099", - "3071", "306F_309A", - "3073", "3072_3099", - "3074", "3072_309A", - "3076", "3075_3099", - "3077", "3075_309A", - "3079", "3078_3099", - "307A", "3078_309A", - "307C", "307B_3099", - "307D", "307B_309A", - "3094", "3046_3099", - "309E", "309D_3099", - "30AC", "30AB_3099", - "30AE", "30AD_3099", - "30B0", "30AF_3099", - "30B2", "30B1_3099", - "30B4", "30B3_3099", - "30B6", "30B5_3099", - "30B8", "30B7_3099", - "30BA", "30B9_3099", - "30BC", "30BB_3099", - "30BE", "30BD_3099", - "30C0", "30BF_3099", - "30C2", "30C1_3099", - "30C5", "30C4_3099", - "30C7", "30C6_3099", - "30C9", "30C8_3099", - "30D0", "30CF_3099", - "30D1", "30CF_309A", - "30D3", "30D2_3099", - "30D4", "30D2_309A", - "30D6", "30D5_3099", - "30D7", "30D5_309A", - "30D9", "30D8_3099", - "30DA", "30D8_309A", - "30DC", "30DB_3099", - "30DD", "30DB_309A", - "30F4", "30A6_3099", - "30F7", "30EF_3099", - "30F8", "30F0_3099", - "30F9", "30F1_3099", - "30FA", "30F2_3099", - "30FE", "30FD_3099", - "F900", "8C48", - "F901", "66F4", - "F902", "8ECA", - "F903", "8CC8", - "F904", "6ED1", - "F905", "4E32", - "F906", "53E5", - "F907", "9F9C", - "F908", "9F9C", - "F909", "5951", - "F90A", "91D1", - "F90B", "5587", - "F90C", "5948", - "F90D", "61F6", - "F90E", "7669", - "F90F", "7F85", - "F910", "863F", - "F911", "87BA", - "F912", "88F8", - "F913", "908F", - "F914", "6A02", - "F915", "6D1B", - "F916", "70D9", - "F917", "73DE", - "F918", "843D", - "F919", "916A", - "F91A", "99F1", - "F91B", "4E82", - "F91C", "5375", - "F91D", "6B04", - "F91E", "721B", - "F91F", "862D", - "F920", "9E1E", - "F921", "5D50", - "F922", "6FEB", - "F923", "85CD", - "F924", "8964", - "F925", "62C9", - "F926", "81D8", - "F927", "881F", - "F928", "5ECA", - "F929", "6717", - "F92A", "6D6A", - "F92B", "72FC", - "F92C", "90CE", - "F92D", "4F86", - "F92E", "51B7", - "F92F", "52DE", - "F930", "64C4", - "F931", "6AD3", - "F932", "7210", - "F933", "76E7", - "F934", "8001", - "F935", "8606", - "F936", "865C", - "F937", "8DEF", - "F938", "9732", - "F939", "9B6F", - "F93A", "9DFA", - "F93B", "788C", - "F93C", "797F", - "F93D", "7DA0", - "F93E", "83C9", - "F93F", "9304", - "F940", "9E7F", - "F941", "8AD6", - "F942", "58DF", - "F943", "5F04", - "F944", "7C60", - "F945", "807E", - "F946", "7262", - "F947", "78CA", - "F948", "8CC2", - "F949", "96F7", - "F94A", "58D8", - "F94B", "5C62", - "F94C", "6A13", - "F94D", "6DDA", - "F94E", "6F0F", - "F94F", "7D2F", - "F950", "7E37", - "F951", "964B", - "F952", "52D2", - "F953", "808B", - "F954", "51DC", - "F955", "51CC", - "F956", "7A1C", - "F957", "7DBE", - "F958", "83F1", - "F959", "9675", - "F95A", "8B80", - "F95B", "62CF", - "F95C", "6A02", - "F95D", "8AFE", - "F95E", "4E39", - "F95F", "5BE7", - "F960", "6012", - "F961", "7387", - "F962", "7570", - "F963", "5317", - "F964", "78FB", - "F965", "4FBF", - "F966", "5FA9", - "F967", "4E0D", - "F968", "6CCC", - "F969", "6578", - "F96A", "7D22", - "F96B", "53C3", - "F96C", "585E", - "F96D", "7701", - "F96E", "8449", - "F96F", "8AAA", - "F970", "6BBA", - "F971", "8FB0", - "F972", "6C88", - "F973", "62FE", - "F974", "82E5", - "F975", "63A0", - "F976", "7565", - "F977", "4EAE", - "F978", "5169", - "F979", "51C9", - "F97A", "6881", - "F97B", "7CE7", - "F97C", "826F", - "F97D", "8AD2", - "F97E", "91CF", - "F97F", "52F5", - "F980", "5442", - "F981", "5973", - "F982", "5EEC", - "F983", "65C5", - "F984", "6FFE", - "F985", "792A", - "F986", "95AD", - "F987", "9A6A", - "F988", "9E97", - "F989", "9ECE", - "F98A", "529B", - "F98B", "66C6", - "F98C", "6B77", - "F98D", "8F62", - "F98E", "5E74", - "F98F", "6190", - "F990", "6200", - "F991", "649A", - "F992", "6F23", - "F993", "7149", - "F994", "7489", - "F995", "79CA", - "F996", "7DF4", - "F997", "806F", - "F998", "8F26", - "F999", "84EE", - "F99A", "9023", - "F99B", "934A", - "F99C", "5217", - "F99D", "52A3", - "F99E", "54BD", - "F99F", "70C8", - "F9A0", "88C2", - "F9A1", "8AAA", - "F9A2", "5EC9", - "F9A3", "5FF5", - "F9A4", "637B", - "F9A5", "6BAE", - "F9A6", "7C3E", - "F9A7", "7375", - "F9A8", "4EE4", - "F9A9", "56F9", - "F9AA", "5BE7", - "F9AB", "5DBA", - "F9AC", "601C", - "F9AD", "73B2", - "F9AE", "7469", - "F9AF", "7F9A", - "F9B0", "8046", - "F9B1", "9234", - "F9B2", "96F6", - "F9B3", "9748", - "F9B4", "9818", - "F9B5", "4F8B", - "F9B6", "79AE", - "F9B7", "91B4", - "F9B8", "96B8", - "F9B9", "60E1", - "F9BA", "4E86", - "F9BB", "50DA", - "F9BC", "5BEE", - "F9BD", "5C3F", - "F9BE", "6599", - "F9BF", "6A02", - "F9C0", "71CE", - "F9C1", "7642", - "F9C2", "84FC", - "F9C3", "907C", - "F9C4", "9F8D", - "F9C5", "6688", - "F9C6", "962E", - "F9C7", "5289", - "F9C8", "677B", - "F9C9", "67F3", - "F9CA", "6D41", - "F9CB", "6E9C", - "F9CC", "7409", - "F9CD", "7559", - "F9CE", "786B", - "F9CF", "7D10", - "F9D0", "985E", - "F9D1", "516D", - "F9D2", "622E", - "F9D3", "9678", - "F9D4", "502B", - "F9D5", "5D19", - "F9D6", "6DEA", - "F9D7", "8F2A", - "F9D8", "5F8B", - "F9D9", "6144", - "F9DA", "6817", - "F9DB", "7387", - "F9DC", "9686", - "F9DD", "5229", - "F9DE", "540F", - "F9DF", "5C65", - "F9E0", "6613", - "F9E1", "674E", - "F9E2", "68A8", - "F9E3", "6CE5", - "F9E4", "7406", - "F9E5", "75E2", - "F9E6", "7F79", - "F9E7", "88CF", - "F9E8", "88E1", - "F9E9", "91CC", - "F9EA", "96E2", - "F9EB", "533F", - "F9EC", "6EBA", - "F9ED", "541D", - "F9EE", "71D0", - "F9EF", "7498", - "F9F0", "85FA", - "F9F1", "96A3", - "F9F2", "9C57", - "F9F3", "9E9F", - "F9F4", "6797", - "F9F5", "6DCB", - "F9F6", "81E8", - "F9F7", "7ACB", - "F9F8", "7B20", - "F9F9", "7C92", - "F9FA", "72C0", - "F9FB", "7099", - "F9FC", "8B58", - "F9FD", "4EC0", - "F9FE", "8336", - "F9FF", "523A", - "FA00", "5207", - "FA01", "5EA6", - "FA02", "62D3", - "FA03", "7CD6", - "FA04", "5B85", - "FA05", "6D1E", - "FA06", "66B4", - "FA07", "8F3B", - "FA08", "884C", - "FA09", "964D", - "FA0A", "898B", - "FA0B", "5ED3", - "FA0C", "5140", - "FA0D", "55C0", - "FA10", "585A", - "FA12", "6674", - "FA15", "51DE", - "FA16", "732A", - "FA17", "76CA", - "FA18", "793C", - "FA19", "795E", - "FA1A", "7965", - "FA1B", "798F", - "FA1C", "9756", - "FA1D", "7CBE", - "FA1E", "7FBD", - "FA20", "8612", - "FA22", "8AF8", - "FA25", "9038", - "FA26", "90FD", - "FA2A", "98EF", - "FA2B", "98FC", - "FA2C", "9928", - "FA2D", "9DB4", - "FA30", "4FAE", - "FA31", "50E7", - "FA32", "514D", - "FA33", "52C9", - "FA34", "52E4", - "FA35", "5351", - "FA36", "559D", - "FA37", "5606", - "FA38", "5668", - "FA39", "5840", - "FA3A", "58A8", - "FA3B", "5C64", - "FA3C", "5C6E", - "FA3D", "6094", - "FA3E", "6168", - "FA3F", "618E", - "FA40", "61F2", - "FA41", "654F", - "FA42", "65E2", - "FA43", "6691", - "FA44", "6885", - "FA45", "6D77", - "FA46", "6E1A", - "FA47", "6F22", - "FA48", "716E", - "FA49", "722B", - "FA4A", "7422", - "FA4B", "7891", - "FA4C", "793E", - "FA4D", "7949", - "FA4E", "7948", - "FA4F", "7950", - "FA50", "7956", - "FA51", "795D", - "FA52", "798D", - "FA53", "798E", - "FA54", "7A40", - "FA55", "7A81", - "FA56", "7BC0", - "FA57", "7DF4", - "FA58", "7E09", - "FA59", "7E41", - "FA5A", "7F72", - "FA5B", "8005", - "FA5C", "81ED", - "FA5D", "8279", - "FA5E", "8279", - "FA5F", "8457", - "FA60", "8910", - "FA61", "8996", - "FA62", "8B01", - "FA63", "8B39", - "FA64", "8CD3", - "FA65", "8D08", - "FA66", "8FB6", - "FA67", "9038", - "FA68", "96E3", - "FA69", "97FF", - "FA6A", "983B", - "FB1D", "05D9_05B4", - "FB1F", "05F2_05B7", - "FB2A", "05E9_05C1", - "FB2B", "05E9_05C2", - "FB2C", "05E9_05BC_05C1", - "FB2D", "05E9_05BC_05C2", - "FB2E", "05D0_05B7", - "FB2F", "05D0_05B8", - "FB30", "05D0_05BC", - "FB31", "05D1_05BC", - "FB32", "05D2_05BC", - "FB33", "05D3_05BC", - "FB34", "05D4_05BC", - "FB35", "05D5_05BC", - "FB36", "05D6_05BC", - "FB38", "05D8_05BC", - "FB39", "05D9_05BC", - "FB3A", "05DA_05BC", - "FB3B", "05DB_05BC", - "FB3C", "05DC_05BC", - "FB3E", "05DE_05BC", - "FB40", "05E0_05BC", - "FB41", "05E1_05BC", - "FB43", "05E3_05BC", - "FB44", "05E4_05BC", - "FB46", "05E6_05BC", - "FB47", "05E7_05BC", - "FB48", "05E8_05BC", - "FB49", "05E9_05BC", - "FB4A", "05EA_05BC", - "FB4B", "05D5_05B9", - "FB4C", "05D1_05BF", - "FB4D", "05DB_05BF", - "FB4E", "05E4_05BF", - "1D15E", "1D157_1D165", - "1D15F", "1D158_1D165", - "1D160", "1D158_1D165_1D16E", - "1D161", "1D158_1D165_1D16F", - "1D162", "1D158_1D165_1D170", - "1D163", "1D158_1D165_1D171", - "1D164", "1D158_1D165_1D172", - "1D1BB", "1D1B9_1D165", - "1D1BC", "1D1BA_1D165", - "1D1BD", "1D1B9_1D165_1D16E", - "1D1BE", "1D1BA_1D165_1D16E", - "1D1BF", "1D1B9_1D165_1D16F", - "1D1C0", "1D1BA_1D165_1D16F", - "2F800", "4E3D", - "2F801", "4E38", - "2F802", "4E41", - "2F803", "20122", - "2F804", "4F60", - "2F805", "4FAE", - "2F806", "4FBB", - "2F807", "5002", - "2F808", "507A", - "2F809", "5099", - "2F80A", "50E7", - "2F80B", "50CF", - "2F80C", "349E", - "2F80D", "2063A", - "2F80E", "514D", - "2F80F", "5154", - "2F810", "5164", - "2F811", "5177", - "2F812", "2051C", - "2F813", "34B9", - "2F814", "5167", - "2F815", "518D", - "2F816", "2054B", - "2F817", "5197", - "2F818", "51A4", - "2F819", "4ECC", - "2F81A", "51AC", - "2F81B", "51B5", - "2F81C", "291DF", - "2F81D", "51F5", - "2F81E", "5203", - "2F81F", "34DF", - "2F820", "523B", - "2F821", "5246", - "2F822", "5272", - "2F823", "5277", - "2F824", "3515", - "2F825", "52C7", - "2F826", "52C9", - "2F827", "52E4", - "2F828", "52FA", - "2F829", "5305", - "2F82A", "5306", - "2F82B", "5317", - "2F82C", "5349", - "2F82D", "5351", - "2F82E", "535A", - "2F82F", "5373", - "2F830", "537D", - "2F831", "537F", - "2F832", "537F", - "2F833", "537F", - "2F834", "20A2C", - "2F835", "7070", - "2F836", "53CA", - "2F837", "53DF", - "2F838", "20B63", - "2F839", "53EB", - "2F83A", "53F1", - "2F83B", "5406", - "2F83C", "549E", - "2F83D", "5438", - "2F83E", "5448", - "2F83F", "5468", - "2F840", "54A2", - "2F841", "54F6", - "2F842", "5510", - "2F843", "5553", - "2F844", "5563", - "2F845", "5584", - "2F846", "5584", - "2F847", "5599", - "2F848", "55AB", - "2F849", "55B3", - "2F84A", "55C2", - "2F84B", "5716", - "2F84C", "5606", - "2F84D", "5717", - "2F84E", "5651", - "2F84F", "5674", - "2F850", "5207", - "2F851", "58EE", - "2F852", "57CE", - "2F853", "57F4", - "2F854", "580D", - "2F855", "578B", - "2F856", "5832", - "2F857", "5831", - "2F858", "58AC", - "2F859", "214E4", - "2F85A", "58F2", - "2F85B", "58F7", - "2F85C", "5906", - "2F85D", "591A", - "2F85E", "5922", - "2F85F", "5962", - "2F860", "216A8", - "2F861", "216EA", - "2F862", "59EC", - "2F863", "5A1B", - "2F864", "5A27", - "2F865", "59D8", - "2F866", "5A66", - "2F867", "36EE", - "2F868", "2136A", - "2F869", "5B08", - "2F86A", "5B3E", - "2F86B", "5B3E", - "2F86C", "219C8", - "2F86D", "5BC3", - "2F86E", "5BD8", - "2F86F", "5BE7", - "2F870", "5BF3", - "2F871", "21B18", - "2F872", "5BFF", - "2F873", "5C06", - "2F874", "5F33", - "2F875", "5C22", - "2F876", "3781", - "2F877", "5C60", - "2F878", "5C6E", - "2F879", "5CC0", - "2F87A", "5C8D", - "2F87B", "21DE4", - "2F87C", "5D43", - "2F87D", "21DE6", - "2F87E", "5D6E", - "2F87F", "5D6B", - "2F880", "5D7C", - "2F881", "5DE1", - "2F882", "5DE2", - "2F883", "382F", - "2F884", "5DFD", - "2F885", "5E28", - "2F886", "5E3D", - "2F887", "5E69", - "2F888", "3862", - "2F889", "22183", - "2F88A", "387C", - "2F88B", "5EB0", - "2F88C", "5EB3", - "2F88D", "5EB6", - "2F88E", "5ECA", - "2F88F", "2A392", - "2F890", "5EFE", - "2F891", "22331", - "2F892", "22331", - "2F893", "8201", - "2F894", "5F22", - "2F895", "5F22", - "2F896", "38C7", - "2F897", "232B8", - "2F898", "261DA", - "2F899", "5F62", - "2F89A", "5F6B", - "2F89B", "38E3", - "2F89C", "5F9A", - "2F89D", "5FCD", - "2F89E", "5FD7", - "2F89F", "5FF9", - "2F8A0", "6081", - "2F8A1", "393A", - "2F8A2", "391C", - "2F8A3", "6094", - "2F8A4", "226D4", - "2F8A5", "60C7", - "2F8A6", "6148", - "2F8A7", "614C", - "2F8A8", "614E", - "2F8A9", "614C", - "2F8AA", "617A", - "2F8AB", "618E", - "2F8AC", "61B2", - "2F8AD", "61A4", - "2F8AE", "61AF", - "2F8AF", "61DE", - "2F8B0", "61F2", - "2F8B1", "61F6", - "2F8B2", "6210", - "2F8B3", "621B", - "2F8B4", "625D", - "2F8B5", "62B1", - "2F8B6", "62D4", - "2F8B7", "6350", - "2F8B8", "22B0C", - "2F8B9", "633D", - "2F8BA", "62FC", - "2F8BB", "6368", - "2F8BC", "6383", - "2F8BD", "63E4", - "2F8BE", "22BF1", - "2F8BF", "6422", - "2F8C0", "63C5", - "2F8C1", "63A9", - "2F8C2", "3A2E", - "2F8C3", "6469", - "2F8C4", "647E", - "2F8C5", "649D", - "2F8C6", "6477", - "2F8C7", "3A6C", - "2F8C8", "654F", - "2F8C9", "656C", - "2F8CA", "2300A", - "2F8CB", "65E3", - "2F8CC", "66F8", - "2F8CD", "6649", - "2F8CE", "3B19", - "2F8CF", "6691", - "2F8D0", "3B08", - "2F8D1", "3AE4", - "2F8D2", "5192", - "2F8D3", "5195", - "2F8D4", "6700", - "2F8D5", "669C", - "2F8D6", "80AD", - "2F8D7", "43D9", - "2F8D8", "6717", - "2F8D9", "671B", - "2F8DA", "6721", - "2F8DB", "675E", - "2F8DC", "6753", - "2F8DD", "233C3", - "2F8DE", "3B49", - "2F8DF", "67FA", - "2F8E0", "6785", - "2F8E1", "6852", - "2F8E2", "6885", - "2F8E3", "2346D", - "2F8E4", "688E", - "2F8E5", "681F", - "2F8E6", "6914", - "2F8E7", "3B9D", - "2F8E8", "6942", - "2F8E9", "69A3", - "2F8EA", "69EA", - "2F8EB", "6AA8", - "2F8EC", "236A3", - "2F8ED", "6ADB", - "2F8EE", "3C18", - "2F8EF", "6B21", - "2F8F0", "238A7", - "2F8F1", "6B54", - "2F8F2", "3C4E", - "2F8F3", "6B72", - "2F8F4", "6B9F", - "2F8F5", "6BBA", - "2F8F6", "6BBB", - "2F8F7", "23A8D", - "2F8F8", "21D0B", - "2F8F9", "23AFA", - "2F8FA", "6C4E", - "2F8FB", "23CBC", - "2F8FC", "6CBF", - "2F8FD", "6CCD", - "2F8FE", "6C67", - "2F8FF", "6D16", - "2F900", "6D3E", - "2F901", "6D77", - "2F902", "6D41", - "2F903", "6D69", - "2F904", "6D78", - "2F905", "6D85", - "2F906", "23D1E", - "2F907", "6D34", - "2F908", "6E2F", - "2F909", "6E6E", - "2F90A", "3D33", - "2F90B", "6ECB", - "2F90C", "6EC7", - "2F90D", "23ED1", - "2F90E", "6DF9", - "2F90F", "6F6E", - "2F910", "23F5E", - "2F911", "23F8E", - "2F912", "6FC6", - "2F913", "7039", - "2F914", "701E", - "2F915", "701B", - "2F916", "3D96", - "2F917", "704A", - "2F918", "707D", - "2F919", "7077", - "2F91A", "70AD", - "2F91B", "20525", - "2F91C", "7145", - "2F91D", "24263", - "2F91E", "719C", - "2F91F", "43AB", - "2F920", "7228", - "2F921", "7235", - "2F922", "7250", - "2F923", "24608", - "2F924", "7280", - "2F925", "7295", - "2F926", "24735", - "2F927", "24814", - "2F928", "737A", - "2F929", "738B", - "2F92A", "3EAC", - "2F92B", "73A5", - "2F92C", "3EB8", - "2F92D", "3EB8", - "2F92E", "7447", - "2F92F", "745C", - "2F930", "7471", - "2F931", "7485", - "2F932", "74CA", - "2F933", "3F1B", - "2F934", "7524", - "2F935", "24C36", - "2F936", "753E", - "2F937", "24C92", - "2F938", "7570", - "2F939", "2219F", - "2F93A", "7610", - "2F93B", "24FA1", - "2F93C", "24FB8", - "2F93D", "25044", - "2F93E", "3FFC", - "2F93F", "4008", - "2F940", "76F4", - "2F941", "250F3", - "2F942", "250F2", - "2F943", "25119", - "2F944", "25133", - "2F945", "771E", - "2F946", "771F", - "2F947", "771F", - "2F948", "774A", - "2F949", "4039", - "2F94A", "778B", - "2F94B", "4046", - "2F94C", "4096", - "2F94D", "2541D", - "2F94E", "784E", - "2F94F", "788C", - "2F950", "78CC", - "2F951", "40E3", - "2F952", "25626", - "2F953", "7956", - "2F954", "2569A", - "2F955", "256C5", - "2F956", "798F", - "2F957", "79EB", - "2F958", "412F", - "2F959", "7A40", - "2F95A", "7A4A", - "2F95B", "7A4F", - "2F95C", "2597C", - "2F95D", "25AA7", - "2F95E", "25AA7", - "2F95F", "7AAE", - "2F960", "4202", - "2F961", "25BAB", - "2F962", "7BC6", - "2F963", "7BC9", - "2F964", "4227", - "2F965", "25C80", - "2F966", "7CD2", - "2F967", "42A0", - "2F968", "7CE8", - "2F969", "7CE3", - "2F96A", "7D00", - "2F96B", "25F86", - "2F96C", "7D63", - "2F96D", "4301", - "2F96E", "7DC7", - "2F96F", "7E02", - "2F970", "7E45", - "2F971", "4334", - "2F972", "26228", - "2F973", "26247", - "2F974", "4359", - "2F975", "262D9", - "2F976", "7F7A", - "2F977", "2633E", - "2F978", "7F95", - "2F979", "7FFA", - "2F97A", "8005", - "2F97B", "264DA", - "2F97C", "26523", - "2F97D", "8060", - "2F97E", "265A8", - "2F97F", "8070", - "2F980", "2335F", - "2F981", "43D5", - "2F982", "80B2", - "2F983", "8103", - "2F984", "440B", - "2F985", "813E", - "2F986", "5AB5", - "2F987", "267A7", - "2F988", "267B5", - "2F989", "23393", - "2F98A", "2339C", - "2F98B", "8201", - "2F98C", "8204", - "2F98D", "8F9E", - "2F98E", "446B", - "2F98F", "8291", - "2F990", "828B", - "2F991", "829D", - "2F992", "52B3", - "2F993", "82B1", - "2F994", "82B3", - "2F995", "82BD", - "2F996", "82E6", - "2F997", "26B3C", - "2F998", "82E5", - "2F999", "831D", - "2F99A", "8363", - "2F99B", "83AD", - "2F99C", "8323", - "2F99D", "83BD", - "2F99E", "83E7", - "2F99F", "8457", - "2F9A0", "8353", - "2F9A1", "83CA", - "2F9A2", "83CC", - "2F9A3", "83DC", - "2F9A4", "26C36", - "2F9A5", "26D6B", - "2F9A6", "26CD5", - "2F9A7", "452B", - "2F9A8", "84F1", - "2F9A9", "84F3", - "2F9AA", "8516", - "2F9AB", "273CA", - "2F9AC", "8564", - "2F9AD", "26F2C", - "2F9AE", "455D", - "2F9AF", "4561", - "2F9B0", "26FB1", - "2F9B1", "270D2", - "2F9B2", "456B", - "2F9B3", "8650", - "2F9B4", "865C", - "2F9B5", "8667", - "2F9B6", "8669", - "2F9B7", "86A9", - "2F9B8", "8688", - "2F9B9", "870E", - "2F9BA", "86E2", - "2F9BB", "8779", - "2F9BC", "8728", - "2F9BD", "876B", - "2F9BE", "8786", - "2F9BF", "4D57", - "2F9C0", "87E1", - "2F9C1", "8801", - "2F9C2", "45F9", - "2F9C3", "8860", - "2F9C4", "8863", - "2F9C5", "27667", - "2F9C6", "88D7", - "2F9C7", "88DE", - "2F9C8", "4635", - "2F9C9", "88FA", - "2F9CA", "34BB", - "2F9CB", "278AE", - "2F9CC", "27966", - "2F9CD", "46BE", - "2F9CE", "46C7", - "2F9CF", "8AA0", - "2F9D0", "8AED", - "2F9D1", "8B8A", - "2F9D2", "8C55", - "2F9D3", "27CA8", - "2F9D4", "8CAB", - "2F9D5", "8CC1", - "2F9D6", "8D1B", - "2F9D7", "8D77", - "2F9D8", "27F2F", - "2F9D9", "20804", - "2F9DA", "8DCB", - "2F9DB", "8DBC", - "2F9DC", "8DF0", - "2F9DD", "208DE", - "2F9DE", "8ED4", - "2F9DF", "8F38", - "2F9E0", "285D2", - "2F9E1", "285ED", - "2F9E2", "9094", - "2F9E3", "90F1", - "2F9E4", "9111", - "2F9E5", "2872E", - "2F9E6", "911B", - "2F9E7", "9238", - "2F9E8", "92D7", - "2F9E9", "92D8", - "2F9EA", "927C", - "2F9EB", "93F9", - "2F9EC", "9415", - "2F9ED", "28BFA", - "2F9EE", "958B", - "2F9EF", "4995", - "2F9F0", "95B7", - "2F9F1", "28D77", - "2F9F2", "49E6", - "2F9F3", "96C3", - "2F9F4", "5DB2", - "2F9F5", "9723", - "2F9F6", "29145", - "2F9F7", "2921A", - "2F9F8", "4A6E", - "2F9F9", "4A76", - "2F9FA", "97E0", - "2F9FB", "2940A", - "2F9FC", "4AB2", - "2F9FD", "29496", - "2F9FE", "980B", - "2F9FF", "980B", - "2FA00", "9829", - "2FA01", "295B6", - "2FA02", "98E2", - "2FA03", "4B33", - "2FA04", "9929", - "2FA05", "99A7", - "2FA06", "99C2", - "2FA07", "99FE", - "2FA08", "4BCE", - "2FA09", "29B30", - "2FA0A", "9B12", - "2FA0B", "9C40", - "2FA0C", "9CFD", - "2FA0D", "4CCE", - "2FA0E", "4CED", - "2FA0F", "9D67", - "2FA10", "2A0CE", - "2FA11", "4CF8", - "2FA12", "2A105", - "2FA13", "2A20E", - "2FA14", "2A291", - "2FA15", "9EBB", - "2FA16", "4D56", - "2FA17", "9EF9", - "2FA18", "9EFE", - "2FA19", "9F05", - "2FA1A", "9F0F", - "2FA1B", "9F16", - "2FA1C", "9F3B", - "2FA1D", "2A600", -); - -my %AGL_to_unicode = ( - "A", "0041", - "AE", "00C6", - "AEacute", "01FC", - "AEmacron", "01E2", - "Aacute", "00C1", - "Abreve", "0102", - "Abreveacute", "1EAE", - "Abrevecyrillic", "04D0", - "Abrevedotbelow", "1EB6", - "Abrevegrave", "1EB0", - "Abrevehookabove", "1EB2", - "Abrevetilde", "1EB4", - "Acaron", "01CD", - "Acircle", "24B6", - "Acircumflex", "00C2", - "Acircumflexacute", "1EA4", - "Acircumflexdotbelow", "1EAC", - "Acircumflexgrave", "1EA6", - "Acircumflexhookabove", "1EA8", - "Acircumflextilde", "1EAA", - "Acyrillic", "0410", - "Adblgrave", "0200", - "Adieresis", "00C4", - "Adieresiscyrillic", "04D2", - "Adieresismacron", "01DE", - "Adotbelow", "1EA0", - "Adotmacron", "01E0", - "Agrave", "00C0", - "Ahookabove", "1EA2", - "Aiecyrillic", "04D4", - "Ainvertedbreve", "0202", - "Alpha", "0391", - "Alphatonos", "0386", - "Amacron", "0100", - "Amonospace", "FF21", - "Aogonek", "0104", - "Aring", "00C5", - "Aringacute", "01FA", - "Aringbelow", "1E00", - "Atilde", "00C3", - "Aybarmenian", "0531", - "B", "0042", - "Bcircle", "24B7", - "Bdotaccent", "1E02", - "Bdotbelow", "1E04", - "Becyrillic", "0411", - "Benarmenian", "0532", - "Beta", "0392", - "Bhook", "0181", - "Blinebelow", "1E06", - "Bmonospace", "FF22", - "Btopbar", "0182", - "C", "0043", - "Caarmenian", "053E", - "Cacute", "0106", - "Ccaron", "010C", - "Ccedilla", "00C7", - "Ccedillaacute", "1E08", - "Ccircle", "24B8", - "Ccircumflex", "0108", - "Cdot", "010A", - "Cdotaccent", "010A", - "Chaarmenian", "0549", - "Cheabkhasiancyrillic", "04BC", - "Checyrillic", "0427", - "Chedescenderabkhasiancyrillic", "04BE", - "Chedescendercyrillic", "04B6", - "Chedieresiscyrillic", "04F4", - "Cheharmenian", "0543", - "Chekhakassiancyrillic", "04CB", - "Cheverticalstrokecyrillic", "04B8", - "Chi", "03A7", - "Chook", "0187", - "Cmonospace", "FF23", - "Coarmenian", "0551", - "D", "0044", - "DZ", "01F1", - "DZcaron", "01C4", - "Daarmenian", "0534", - "Dafrican", "0189", - "Dcaron", "010E", - "Dcedilla", "1E10", - "Dcircle", "24B9", - "Dcircumflexbelow", "1E12", - "Dcroat", "0110", - "Ddotaccent", "1E0A", - "Ddotbelow", "1E0C", - "Decyrillic", "0414", - "Deicoptic", "03EE", - "Delta", "2206", - "Deltagreek", "0394", - "Dhook", "018A", - "Digammagreek", "03DC", - "Djecyrillic", "0402", - "Dlinebelow", "1E0E", - "Dmonospace", "FF24", - "Dslash", "0110", - "Dtopbar", "018B", - "Dz", "01F2", - "Dzcaron", "01C5", - "Dzeabkhasiancyrillic", "04E0", - "Dzecyrillic", "0405", - "Dzhecyrillic", "040F", - "E", "0045", - "Eacute", "00C9", - "Ebreve", "0114", - "Ecaron", "011A", - "Ecedillabreve", "1E1C", - "Echarmenian", "0535", - "Ecircle", "24BA", - "Ecircumflex", "00CA", - "Ecircumflexacute", "1EBE", - "Ecircumflexbelow", "1E18", - "Ecircumflexdotbelow", "1EC6", - "Ecircumflexgrave", "1EC0", - "Ecircumflexhookabove", "1EC2", - "Ecircumflextilde", "1EC4", - "Ecyrillic", "0404", - "Edblgrave", "0204", - "Edieresis", "00CB", - "Edot", "0116", - "Edotaccent", "0116", - "Edotbelow", "1EB8", - "Efcyrillic", "0424", - "Egrave", "00C8", - "Eharmenian", "0537", - "Ehookabove", "1EBA", - "Eightroman", "2167", - "Einvertedbreve", "0206", - "Eiotifiedcyrillic", "0464", - "Elcyrillic", "041B", - "Elevenroman", "216A", - "Emacron", "0112", - "Emacronacute", "1E16", - "Emacrongrave", "1E14", - "Emcyrillic", "041C", - "Emonospace", "FF25", - "Encyrillic", "041D", - "Endescendercyrillic", "04A2", - "Eng", "014A", - "Enghecyrillic", "04A4", - "Enhookcyrillic", "04C7", - "Eogonek", "0118", - "Eopen", "0190", - "Epsilon", "0395", - "Epsilontonos", "0388", - "Ercyrillic", "0420", - "Ereversed", "018E", - "Ereversedcyrillic", "042D", - "Escyrillic", "0421", - "Esdescendercyrillic", "04AA", - "Esh", "01A9", - "Eta", "0397", - "Etarmenian", "0538", - "Etatonos", "0389", - "Eth", "00D0", - "Etilde", "1EBC", - "Etildebelow", "1E1A", - "Euro", "20AC", - "Ezh", "01B7", - "Ezhcaron", "01EE", - "Ezhreversed", "01B8", - "F", "0046", - "Fcircle", "24BB", - "Fdotaccent", "1E1E", - "Feharmenian", "0556", - "Feicoptic", "03E4", - "Fhook", "0191", - "Fitacyrillic", "0472", - "Fiveroman", "2164", - "Fmonospace", "FF26", - "Fourroman", "2163", - "G", "0047", - "GBsquare", "3387", - "Gacute", "01F4", - "Gamma", "0393", - "Gammaafrican", "0194", - "Gangiacoptic", "03EA", - "Gbreve", "011E", - "Gcaron", "01E6", - "Gcedilla", "0122", - "Gcircle", "24BC", - "Gcircumflex", "011C", - "Gcommaaccent", "0122", - "Gdot", "0120", - "Gdotaccent", "0120", - "Gecyrillic", "0413", - "Ghadarmenian", "0542", - "Ghemiddlehookcyrillic", "0494", - "Ghestrokecyrillic", "0492", - "Gheupturncyrillic", "0490", - "Ghook", "0193", - "Gimarmenian", "0533", - "Gjecyrillic", "0403", - "Gmacron", "1E20", - "Gmonospace", "FF27", - "Gsmallhook", "029B", - "Gstroke", "01E4", - "H", "0048", - "H18533", "25CF", - "H18543", "25AA", - "H18551", "25AB", - "H22073", "25A1", - "HPsquare", "33CB", - "Haabkhasiancyrillic", "04A8", - "Hadescendercyrillic", "04B2", - "Hardsigncyrillic", "042A", - "Hbar", "0126", - "Hbrevebelow", "1E2A", - "Hcedilla", "1E28", - "Hcircle", "24BD", - "Hcircumflex", "0124", - "Hdieresis", "1E26", - "Hdotaccent", "1E22", - "Hdotbelow", "1E24", - "Hmonospace", "FF28", - "Hoarmenian", "0540", - "Horicoptic", "03E8", - "Hzsquare", "3390", - "I", "0049", - "IAcyrillic", "042F", - "IJ", "0132", - "IUcyrillic", "042E", - "Iacute", "00CD", - "Ibreve", "012C", - "Icaron", "01CF", - "Icircle", "24BE", - "Icircumflex", "00CE", - "Icyrillic", "0406", - "Idblgrave", "0208", - "Idieresis", "00CF", - "Idieresisacute", "1E2E", - "Idieresiscyrillic", "04E4", - "Idot", "0130", - "Idotaccent", "0130", - "Idotbelow", "1ECA", - "Iebrevecyrillic", "04D6", - "Iecyrillic", "0415", - "Ifraktur", "2111", - "Igrave", "00CC", - "Ihookabove", "1EC8", - "Iicyrillic", "0418", - "Iinvertedbreve", "020A", - "Iishortcyrillic", "0419", - "Imacron", "012A", - "Imacroncyrillic", "04E2", - "Imonospace", "FF29", - "Iniarmenian", "053B", - "Iocyrillic", "0401", - "Iogonek", "012E", - "Iota", "0399", - "Iotaafrican", "0196", - "Iotadieresis", "03AA", - "Iotatonos", "038A", - "Istroke", "0197", - "Itilde", "0128", - "Itildebelow", "1E2C", - "Izhitsacyrillic", "0474", - "Izhitsadblgravecyrillic", "0476", - "J", "004A", - "Jaarmenian", "0541", - "Jcircle", "24BF", - "Jcircumflex", "0134", - "Jecyrillic", "0408", - "Jheharmenian", "054B", - "Jmonospace", "FF2A", - "K", "004B", - "KBsquare", "3385", - "KKsquare", "33CD", - "Kabashkircyrillic", "04A0", - "Kacute", "1E30", - "Kacyrillic", "041A", - "Kadescendercyrillic", "049A", - "Kahookcyrillic", "04C3", - "Kappa", "039A", - "Kastrokecyrillic", "049E", - "Kaverticalstrokecyrillic", "049C", - "Kcaron", "01E8", - "Kcedilla", "0136", - "Kcircle", "24C0", - "Kcommaaccent", "0136", - "Kdotbelow", "1E32", - "Keharmenian", "0554", - "Kenarmenian", "053F", - "Khacyrillic", "0425", - "Kheicoptic", "03E6", - "Khook", "0198", - "Kjecyrillic", "040C", - "Klinebelow", "1E34", - "Kmonospace", "FF2B", - "Koppacyrillic", "0480", - "Koppagreek", "03DE", - "Ksicyrillic", "046E", - "L", "004C", - "LJ", "01C7", - "Lacute", "0139", - "Lambda", "039B", - "Lcaron", "013D", - "Lcedilla", "013B", - "Lcircle", "24C1", - "Lcircumflexbelow", "1E3C", - "Lcommaaccent", "013B", - "Ldot", "013F", - "Ldotaccent", "013F", - "Ldotbelow", "1E36", - "Ldotbelowmacron", "1E38", - "Liwnarmenian", "053C", - "Lj", "01C8", - "Ljecyrillic", "0409", - "Llinebelow", "1E3A", - "Lmonospace", "FF2C", - "Lslash", "0141", - "M", "004D", - "MBsquare", "3386", - "Macute", "1E3E", - "Mcircle", "24C2", - "Mdotaccent", "1E40", - "Mdotbelow", "1E42", - "Menarmenian", "0544", - "Mmonospace", "FF2D", - "Mturned", "019C", - "Mu", "039C", - "N", "004E", - "NJ", "01CA", - "Nacute", "0143", - "Ncaron", "0147", - "Ncedilla", "0145", - "Ncircle", "24C3", - "Ncircumflexbelow", "1E4A", - "Ncommaaccent", "0145", - "Ndotaccent", "1E44", - "Ndotbelow", "1E46", - "Nhookleft", "019D", - "Nineroman", "2168", - "Nj", "01CB", - "Njecyrillic", "040A", - "Nlinebelow", "1E48", - "Nmonospace", "FF2E", - "Nowarmenian", "0546", - "Ntilde", "00D1", - "Nu", "039D", - "O", "004F", - "OE", "0152", - "Oacute", "00D3", - "Obarredcyrillic", "04E8", - "Obarreddieresiscyrillic", "04EA", - "Obreve", "014E", - "Ocaron", "01D1", - "Ocenteredtilde", "019F", - "Ocircle", "24C4", - "Ocircumflex", "00D4", - "Ocircumflexacute", "1ED0", - "Ocircumflexdotbelow", "1ED8", - "Ocircumflexgrave", "1ED2", - "Ocircumflexhookabove", "1ED4", - "Ocircumflextilde", "1ED6", - "Ocyrillic", "041E", - "Odblacute", "0150", - "Odblgrave", "020C", - "Odieresis", "00D6", - "Odieresiscyrillic", "04E6", - "Odotbelow", "1ECC", - "Ograve", "00D2", - "Oharmenian", "0555", - "Ohm", "2126", - "Ohookabove", "1ECE", - "Ohorn", "01A0", - "Ohornacute", "1EDA", - "Ohorndotbelow", "1EE2", - "Ohorngrave", "1EDC", - "Ohornhookabove", "1EDE", - "Ohorntilde", "1EE0", - "Ohungarumlaut", "0150", - "Oi", "01A2", - "Oinvertedbreve", "020E", - "Omacron", "014C", - "Omacronacute", "1E52", - "Omacrongrave", "1E50", - "Omega", "2126", - "Omegacyrillic", "0460", - "Omegagreek", "03A9", - "Omegaroundcyrillic", "047A", - "Omegatitlocyrillic", "047C", - "Omegatonos", "038F", - "Omicron", "039F", - "Omicrontonos", "038C", - "Omonospace", "FF2F", - "Oneroman", "2160", - "Oogonek", "01EA", - "Oogonekmacron", "01EC", - "Oopen", "0186", - "Oslash", "00D8", - "Oslashacute", "01FE", - "Ostrokeacute", "01FE", - "Otcyrillic", "047E", - "Otilde", "00D5", - "Otildeacute", "1E4C", - "Otildedieresis", "1E4E", - "P", "0050", - "Pacute", "1E54", - "Pcircle", "24C5", - "Pdotaccent", "1E56", - "Pecyrillic", "041F", - "Peharmenian", "054A", - "Pemiddlehookcyrillic", "04A6", - "Phi", "03A6", - "Phook", "01A4", - "Pi", "03A0", - "Piwrarmenian", "0553", - "Pmonospace", "FF30", - "Psi", "03A8", - "Psicyrillic", "0470", - "Q", "0051", - "Qcircle", "24C6", - "Qmonospace", "FF31", - "R", "0052", - "Raarmenian", "054C", - "Racute", "0154", - "Rcaron", "0158", - "Rcedilla", "0156", - "Rcircle", "24C7", - "Rcommaaccent", "0156", - "Rdblgrave", "0210", - "Rdotaccent", "1E58", - "Rdotbelow", "1E5A", - "Rdotbelowmacron", "1E5C", - "Reharmenian", "0550", - "Rfraktur", "211C", - "Rho", "03A1", - "Rinvertedbreve", "0212", - "Rlinebelow", "1E5E", - "Rmonospace", "FF32", - "Rsmallinverted", "0281", - "Rsmallinvertedsuperior", "02B6", - "S", "0053", - "SF010000", "250C", - "SF020000", "2514", - "SF030000", "2510", - "SF040000", "2518", - "SF050000", "253C", - "SF060000", "252C", - "SF070000", "2534", - "SF080000", "251C", - "SF090000", "2524", - "SF100000", "2500", - "SF110000", "2502", - "SF190000", "2561", - "SF200000", "2562", - "SF210000", "2556", - "SF220000", "2555", - "SF230000", "2563", - "SF240000", "2551", - "SF250000", "2557", - "SF260000", "255D", - "SF270000", "255C", - "SF280000", "255B", - "SF360000", "255E", - "SF370000", "255F", - "SF380000", "255A", - "SF390000", "2554", - "SF400000", "2569", - "SF410000", "2566", - "SF420000", "2560", - "SF430000", "2550", - "SF440000", "256C", - "SF450000", "2567", - "SF460000", "2568", - "SF470000", "2564", - "SF480000", "2565", - "SF490000", "2559", - "SF500000", "2558", - "SF510000", "2552", - "SF520000", "2553", - "SF530000", "256B", - "SF540000", "256A", - "Sacute", "015A", - "Sacutedotaccent", "1E64", - "Sampigreek", "03E0", - "Scaron", "0160", - "Scarondotaccent", "1E66", - "Scedilla", "015E", - "Schwa", "018F", - "Schwacyrillic", "04D8", - "Schwadieresiscyrillic", "04DA", - "Scircle", "24C8", - "Scircumflex", "015C", - "Scommaaccent", "0218", - "Sdotaccent", "1E60", - "Sdotbelow", "1E62", - "Sdotbelowdotaccent", "1E68", - "Seharmenian", "054D", - "Sevenroman", "2166", - "Shaarmenian", "0547", - "Shacyrillic", "0428", - "Shchacyrillic", "0429", - "Sheicoptic", "03E2", - "Shhacyrillic", "04BA", - "Shimacoptic", "03EC", - "Sigma", "03A3", - "Sixroman", "2165", - "Smonospace", "FF33", - "Softsigncyrillic", "042C", - "Stigmagreek", "03DA", - "T", "0054", - "Tau", "03A4", - "Tbar", "0166", - "Tcaron", "0164", - "Tcedilla", "0162", - "Tcircle", "24C9", - "Tcircumflexbelow", "1E70", - "Tcommaaccent", "0162", - "Tdotaccent", "1E6A", - "Tdotbelow", "1E6C", - "Tecyrillic", "0422", - "Tedescendercyrillic", "04AC", - "Tenroman", "2169", - "Tetsecyrillic", "04B4", - "Theta", "0398", - "Thook", "01AC", - "Thorn", "00DE", - "Threeroman", "2162", - "Tiwnarmenian", "054F", - "Tlinebelow", "1E6E", - "Tmonospace", "FF34", - "Toarmenian", "0539", - "Tonefive", "01BC", - "Tonesix", "0184", - "Tonetwo", "01A7", - "Tretroflexhook", "01AE", - "Tsecyrillic", "0426", - "Tshecyrillic", "040B", - "Twelveroman", "216B", - "Tworoman", "2161", - "U", "0055", - "Uacute", "00DA", - "Ubreve", "016C", - "Ucaron", "01D3", - "Ucircle", "24CA", - "Ucircumflex", "00DB", - "Ucircumflexbelow", "1E76", - "Ucyrillic", "0423", - "Udblacute", "0170", - "Udblgrave", "0214", - "Udieresis", "00DC", - "Udieresisacute", "01D7", - "Udieresisbelow", "1E72", - "Udieresiscaron", "01D9", - "Udieresiscyrillic", "04F0", - "Udieresisgrave", "01DB", - "Udieresismacron", "01D5", - "Udotbelow", "1EE4", - "Ugrave", "00D9", - "Uhookabove", "1EE6", - "Uhorn", "01AF", - "Uhornacute", "1EE8", - "Uhorndotbelow", "1EF0", - "Uhorngrave", "1EEA", - "Uhornhookabove", "1EEC", - "Uhorntilde", "1EEE", - "Uhungarumlaut", "0170", - "Uhungarumlautcyrillic", "04F2", - "Uinvertedbreve", "0216", - "Ukcyrillic", "0478", - "Umacron", "016A", - "Umacroncyrillic", "04EE", - "Umacrondieresis", "1E7A", - "Umonospace", "FF35", - "Uogonek", "0172", - "Upsilon", "03A5", - "Upsilon1", "03D2", - "Upsilonacutehooksymbolgreek", "03D3", - "Upsilonafrican", "01B1", - "Upsilondieresis", "03AB", - "Upsilondieresishooksymbolgreek", "03D4", - "Upsilonhooksymbol", "03D2", - "Upsilontonos", "038E", - "Uring", "016E", - "Ushortcyrillic", "040E", - "Ustraightcyrillic", "04AE", - "Ustraightstrokecyrillic", "04B0", - "Utilde", "0168", - "Utildeacute", "1E78", - "Utildebelow", "1E74", - "V", "0056", - "Vcircle", "24CB", - "Vdotbelow", "1E7E", - "Vecyrillic", "0412", - "Vewarmenian", "054E", - "Vhook", "01B2", - "Vmonospace", "FF36", - "Voarmenian", "0548", - "Vtilde", "1E7C", - "W", "0057", - "Wacute", "1E82", - "Wcircle", "24CC", - "Wcircumflex", "0174", - "Wdieresis", "1E84", - "Wdotaccent", "1E86", - "Wdotbelow", "1E88", - "Wgrave", "1E80", - "Wmonospace", "FF37", - "X", "0058", - "Xcircle", "24CD", - "Xdieresis", "1E8C", - "Xdotaccent", "1E8A", - "Xeharmenian", "053D", - "Xi", "039E", - "Xmonospace", "FF38", - "Y", "0059", - "Yacute", "00DD", - "Yatcyrillic", "0462", - "Ycircle", "24CE", - "Ycircumflex", "0176", - "Ydieresis", "0178", - "Ydotaccent", "1E8E", - "Ydotbelow", "1EF4", - "Yericyrillic", "042B", - "Yerudieresiscyrillic", "04F8", - "Ygrave", "1EF2", - "Yhook", "01B3", - "Yhookabove", "1EF6", - "Yiarmenian", "0545", - "Yicyrillic", "0407", - "Yiwnarmenian", "0552", - "Ymonospace", "FF39", - "Ytilde", "1EF8", - "Yusbigcyrillic", "046A", - "Yusbigiotifiedcyrillic", "046C", - "Yuslittlecyrillic", "0466", - "Yuslittleiotifiedcyrillic", "0468", - "Z", "005A", - "Zaarmenian", "0536", - "Zacute", "0179", - "Zcaron", "017D", - "Zcircle", "24CF", - "Zcircumflex", "1E90", - "Zdot", "017B", - "Zdotaccent", "017B", - "Zdotbelow", "1E92", - "Zecyrillic", "0417", - "Zedescendercyrillic", "0498", - "Zedieresiscyrillic", "04DE", - "Zeta", "0396", - "Zhearmenian", "053A", - "Zhebrevecyrillic", "04C1", - "Zhecyrillic", "0416", - "Zhedescendercyrillic", "0496", - "Zhedieresiscyrillic", "04DC", - "Zlinebelow", "1E94", - "Zmonospace", "FF3A", - "Zstroke", "01B5", - "a", "0061", - "aabengali", "0986", - "aacute", "00E1", - "aadeva", "0906", - "aagujarati", "0A86", - "aagurmukhi", "0A06", - "aamatragurmukhi", "0A3E", - "aarusquare", "3303", - "aavowelsignbengali", "09BE", - "aavowelsigndeva", "093E", - "aavowelsigngujarati", "0ABE", - "abbreviationmarkarmenian", "055F", - "abbreviationsigndeva", "0970", - "abengali", "0985", - "abopomofo", "311A", - "abreve", "0103", - "abreveacute", "1EAF", - "abrevecyrillic", "04D1", - "abrevedotbelow", "1EB7", - "abrevegrave", "1EB1", - "abrevehookabove", "1EB3", - "abrevetilde", "1EB5", - "acaron", "01CE", - "acircle", "24D0", - "acircumflex", "00E2", - "acircumflexacute", "1EA5", - "acircumflexdotbelow", "1EAD", - "acircumflexgrave", "1EA7", - "acircumflexhookabove", "1EA9", - "acircumflextilde", "1EAB", - "acute", "00B4", - "acutebelowcmb", "0317", - "acutecmb", "0301", - "acutecomb", "0301", - "acutedeva", "0954", - "acutelowmod", "02CF", - "acutetonecmb", "0341", - "acyrillic", "0430", - "adblgrave", "0201", - "addakgurmukhi", "0A71", - "adeva", "0905", - "adieresis", "00E4", - "adieresiscyrillic", "04D3", - "adieresismacron", "01DF", - "adotbelow", "1EA1", - "adotmacron", "01E1", - "ae", "00E6", - "aeacute", "01FD", - "aekorean", "3150", - "aemacron", "01E3", - "afii00208", "2015", - "afii08941", "20A4", - "afii10017", "0410", - "afii10018", "0411", - "afii10019", "0412", - "afii10020", "0413", - "afii10021", "0414", - "afii10022", "0415", - "afii10023", "0401", - "afii10024", "0416", - "afii10025", "0417", - "afii10026", "0418", - "afii10027", "0419", - "afii10028", "041A", - "afii10029", "041B", - "afii10030", "041C", - "afii10031", "041D", - "afii10032", "041E", - "afii10033", "041F", - "afii10034", "0420", - "afii10035", "0421", - "afii10036", "0422", - "afii10037", "0423", - "afii10038", "0424", - "afii10039", "0425", - "afii10040", "0426", - "afii10041", "0427", - "afii10042", "0428", - "afii10043", "0429", - "afii10044", "042A", - "afii10045", "042B", - "afii10046", "042C", - "afii10047", "042D", - "afii10048", "042E", - "afii10049", "042F", - "afii10050", "0490", - "afii10051", "0402", - "afii10052", "0403", - "afii10053", "0404", - "afii10054", "0405", - "afii10055", "0406", - "afii10056", "0407", - "afii10057", "0408", - "afii10058", "0409", - "afii10059", "040A", - "afii10060", "040B", - "afii10061", "040C", - "afii10062", "040E", - "afii10065", "0430", - "afii10066", "0431", - "afii10067", "0432", - "afii10068", "0433", - "afii10069", "0434", - "afii10070", "0435", - "afii10071", "0451", - "afii10072", "0436", - "afii10073", "0437", - "afii10074", "0438", - "afii10075", "0439", - "afii10076", "043A", - "afii10077", "043B", - "afii10078", "043C", - "afii10079", "043D", - "afii10080", "043E", - "afii10081", "043F", - "afii10082", "0440", - "afii10083", "0441", - "afii10084", "0442", - "afii10085", "0443", - "afii10086", "0444", - "afii10087", "0445", - "afii10088", "0446", - "afii10089", "0447", - "afii10090", "0448", - "afii10091", "0449", - "afii10092", "044A", - "afii10093", "044B", - "afii10094", "044C", - "afii10095", "044D", - "afii10096", "044E", - "afii10097", "044F", - "afii10098", "0491", - "afii10099", "0452", - "afii10100", "0453", - "afii10101", "0454", - "afii10102", "0455", - "afii10103", "0456", - "afii10104", "0457", - "afii10105", "0458", - "afii10106", "0459", - "afii10107", "045A", - "afii10108", "045B", - "afii10109", "045C", - "afii10110", "045E", - "afii10145", "040F", - "afii10146", "0462", - "afii10147", "0472", - "afii10148", "0474", - "afii10193", "045F", - "afii10194", "0463", - "afii10195", "0473", - "afii10196", "0475", - "afii10846", "04D9", - "afii299", "200E", - "afii300", "200F", - "afii301", "200D", - "afii57381", "066A", - "afii57388", "060C", - "afii57392", "0660", - "afii57393", "0661", - "afii57394", "0662", - "afii57395", "0663", - "afii57396", "0664", - "afii57397", "0665", - "afii57398", "0666", - "afii57399", "0667", - "afii57400", "0668", - "afii57401", "0669", - "afii57403", "061B", - "afii57407", "061F", - "afii57409", "0621", - "afii57410", "0622", - "afii57411", "0623", - "afii57412", "0624", - "afii57413", "0625", - "afii57414", "0626", - "afii57415", "0627", - "afii57416", "0628", - "afii57417", "0629", - "afii57418", "062A", - "afii57419", "062B", - "afii57420", "062C", - "afii57421", "062D", - "afii57422", "062E", - "afii57423", "062F", - "afii57424", "0630", - "afii57425", "0631", - "afii57426", "0632", - "afii57427", "0633", - "afii57428", "0634", - "afii57429", "0635", - "afii57430", "0636", - "afii57431", "0637", - "afii57432", "0638", - "afii57433", "0639", - "afii57434", "063A", - "afii57440", "0640", - "afii57441", "0641", - "afii57442", "0642", - "afii57443", "0643", - "afii57444", "0644", - "afii57445", "0645", - "afii57446", "0646", - "afii57448", "0648", - "afii57449", "0649", - "afii57450", "064A", - "afii57451", "064B", - "afii57452", "064C", - "afii57453", "064D", - "afii57454", "064E", - "afii57455", "064F", - "afii57456", "0650", - "afii57457", "0651", - "afii57458", "0652", - "afii57470", "0647", - "afii57505", "06A4", - "afii57506", "067E", - "afii57507", "0686", - "afii57508", "0698", - "afii57509", "06AF", - "afii57511", "0679", - "afii57512", "0688", - "afii57513", "0691", - "afii57514", "06BA", - "afii57519", "06D2", - "afii57534", "06D5", - "afii57636", "20AA", - "afii57645", "05BE", - "afii57658", "05C3", - "afii57664", "05D0", - "afii57665", "05D1", - "afii57666", "05D2", - "afii57667", "05D3", - "afii57668", "05D4", - "afii57669", "05D5", - "afii57670", "05D6", - "afii57671", "05D7", - "afii57672", "05D8", - "afii57673", "05D9", - "afii57674", "05DA", - "afii57675", "05DB", - "afii57676", "05DC", - "afii57677", "05DD", - "afii57678", "05DE", - "afii57679", "05DF", - "afii57680", "05E0", - "afii57681", "05E1", - "afii57682", "05E2", - "afii57683", "05E3", - "afii57684", "05E4", - "afii57685", "05E5", - "afii57686", "05E6", - "afii57687", "05E7", - "afii57688", "05E8", - "afii57689", "05E9", - "afii57690", "05EA", - "afii57694", "FB2A", - "afii57695", "FB2B", - "afii57700", "FB4B", - "afii57705", "FB1F", - "afii57716", "05F0", - "afii57717", "05F1", - "afii57718", "05F2", - "afii57723", "FB35", - "afii57793", "05B4", - "afii57794", "05B5", - "afii57795", "05B6", - "afii57796", "05BB", - "afii57797", "05B8", - "afii57798", "05B7", - "afii57799", "05B0", - "afii57800", "05B2", - "afii57801", "05B1", - "afii57802", "05B3", - "afii57803", "05C2", - "afii57804", "05C1", - "afii57806", "05B9", - "afii57807", "05BC", - "afii57839", "05BD", - "afii57841", "05BF", - "afii57842", "05C0", - "afii57929", "02BC", - "afii61248", "2105", - "afii61289", "2113", - "afii61352", "2116", - "afii61573", "202C", - "afii61574", "202D", - "afii61575", "202E", - "afii61664", "200C", - "afii63167", "066D", - "afii64937", "02BD", - "agrave", "00E0", - "agujarati", "0A85", - "agurmukhi", "0A05", - "ahiragana", "3042", - "ahookabove", "1EA3", - "aibengali", "0990", - "aibopomofo", "311E", - "aideva", "0910", - "aiecyrillic", "04D5", - "aigujarati", "0A90", - "aigurmukhi", "0A10", - "aimatragurmukhi", "0A48", - "ainarabic", "0639", - "ainfinalarabic", "FECA", - "aininitialarabic", "FECB", - "ainmedialarabic", "FECC", - "ainvertedbreve", "0203", - "aivowelsignbengali", "09C8", - "aivowelsigndeva", "0948", - "aivowelsigngujarati", "0AC8", - "akatakana", "30A2", - "akatakanahalfwidth", "FF71", - "akorean", "314F", - "alef", "05D0", - "alefarabic", "0627", - "alefdageshhebrew", "FB30", - "aleffinalarabic", "FE8E", - "alefhamzaabovearabic", "0623", - "alefhamzaabovefinalarabic", "FE84", - "alefhamzabelowarabic", "0625", - "alefhamzabelowfinalarabic", "FE88", - "alefhebrew", "05D0", - "aleflamedhebrew", "FB4F", - "alefmaddaabovearabic", "0622", - "alefmaddaabovefinalarabic", "FE82", - "alefmaksuraarabic", "0649", - "alefmaksurafinalarabic", "FEF0", - "alefmaksurainitialarabic", "FEF3", - "alefmaksuramedialarabic", "FEF4", - "alefpatahhebrew", "FB2E", - "alefqamatshebrew", "FB2F", - "aleph", "2135", - "allequal", "224C", - "alpha", "03B1", - "alphatonos", "03AC", - "amacron", "0101", - "amonospace", "FF41", - "ampersand", "0026", - "ampersandmonospace", "FF06", - "amsquare", "33C2", - "anbopomofo", "3122", - "angbopomofo", "3124", - "angkhankhuthai", "0E5A", - "angle", "2220", - "anglebracketleft", "3008", - "anglebracketleftvertical", "FE3F", - "anglebracketright", "3009", - "anglebracketrightvertical", "FE40", - "angleleft", "2329", - "angleright", "232A", - "angstrom", "212B", - "anoteleia", "0387", - "anudattadeva", "0952", - "anusvarabengali", "0982", - "anusvaradeva", "0902", - "anusvaragujarati", "0A82", - "aogonek", "0105", - "apaatosquare", "3300", - "aparen", "249C", - "apostrophearmenian", "055A", - "apostrophemod", "02BC", - "approaches", "2250", - "approxequal", "2248", - "approxequalorimage", "2252", - "approximatelyequal", "2245", - "araeaekorean", "318E", - "araeakorean", "318D", - "arc", "2312", - "arighthalfring", "1E9A", - "aring", "00E5", - "aringacute", "01FB", - "aringbelow", "1E01", - "arrowboth", "2194", - "arrowdashdown", "21E3", - "arrowdashleft", "21E0", - "arrowdashright", "21E2", - "arrowdashup", "21E1", - "arrowdblboth", "21D4", - "arrowdbldown", "21D3", - "arrowdblleft", "21D0", - "arrowdblright", "21D2", - "arrowdblup", "21D1", - "arrowdown", "2193", - "arrowdownleft", "2199", - "arrowdownright", "2198", - "arrowdownwhite", "21E9", - "arrowheaddownmod", "02C5", - "arrowheadleftmod", "02C2", - "arrowheadrightmod", "02C3", - "arrowheadupmod", "02C4", - "arrowleft", "2190", - "arrowleftdbl", "21D0", - "arrowleftdblstroke", "21CD", - "arrowleftoverright", "21C6", - "arrowleftwhite", "21E6", - "arrowright", "2192", - "arrowrightdblstroke", "21CF", - "arrowrightheavy", "279E", - "arrowrightoverleft", "21C4", - "arrowrightwhite", "21E8", - "arrowtableft", "21E4", - "arrowtabright", "21E5", - "arrowup", "2191", - "arrowupdn", "2195", - "arrowupdnbse", "21A8", - "arrowupdownbase", "21A8", - "arrowupleft", "2196", - "arrowupleftofdown", "21C5", - "arrowupright", "2197", - "arrowupwhite", "21E7", - "asciicircum", "005E", - "asciicircummonospace", "FF3E", - "asciitilde", "007E", - "asciitildemonospace", "FF5E", - "ascript", "0251", - "ascriptturned", "0252", - "asmallhiragana", "3041", - "asmallkatakana", "30A1", - "asmallkatakanahalfwidth", "FF67", - "asterisk", "002A", - "asteriskaltonearabic", "066D", - "asteriskarabic", "066D", - "asteriskmath", "2217", - "asteriskmonospace", "FF0A", - "asterisksmall", "FE61", - "asterism", "2042", - "asymptoticallyequal", "2243", - "at", "0040", - "atilde", "00E3", - "atmonospace", "FF20", - "atsmall", "FE6B", - "aturned", "0250", - "aubengali", "0994", - "aubopomofo", "3120", - "audeva", "0914", - "augujarati", "0A94", - "augurmukhi", "0A14", - "aulengthmarkbengali", "09D7", - "aumatragurmukhi", "0A4C", - "auvowelsignbengali", "09CC", - "auvowelsigndeva", "094C", - "auvowelsigngujarati", "0ACC", - "avagrahadeva", "093D", - "aybarmenian", "0561", - "ayin", "05E2", - "ayinaltonehebrew", "FB20", - "ayinhebrew", "05E2", - "b", "0062", - "babengali", "09AC", - "backslash", "005C", - "backslashmonospace", "FF3C", - "badeva", "092C", - "bagujarati", "0AAC", - "bagurmukhi", "0A2C", - "bahiragana", "3070", - "bahtthai", "0E3F", - "bakatakana", "30D0", - "bar", "007C", - "barmonospace", "FF5C", - "bbopomofo", "3105", - "bcircle", "24D1", - "bdotaccent", "1E03", - "bdotbelow", "1E05", - "beamedsixteenthnotes", "266C", - "because", "2235", - "becyrillic", "0431", - "beharabic", "0628", - "behfinalarabic", "FE90", - "behinitialarabic", "FE91", - "behiragana", "3079", - "behmedialarabic", "FE92", - "behmeeminitialarabic", "FC9F", - "behmeemisolatedarabic", "FC08", - "behnoonfinalarabic", "FC6D", - "bekatakana", "30D9", - "benarmenian", "0562", - "bet", "05D1", - "beta", "03B2", - "betasymbolgreek", "03D0", - "betdagesh", "FB31", - "betdageshhebrew", "FB31", - "bethebrew", "05D1", - "betrafehebrew", "FB4C", - "bhabengali", "09AD", - "bhadeva", "092D", - "bhagujarati", "0AAD", - "bhagurmukhi", "0A2D", - "bhook", "0253", - "bihiragana", "3073", - "bikatakana", "30D3", - "bilabialclick", "0298", - "bindigurmukhi", "0A02", - "birusquare", "3331", - "blackcircle", "25CF", - "blackdiamond", "25C6", - "blackdownpointingtriangle", "25BC", - "blackleftpointingpointer", "25C4", - "blackleftpointingtriangle", "25C0", - "blacklenticularbracketleft", "3010", - "blacklenticularbracketleftvertical", "FE3B", - "blacklenticularbracketright", "3011", - "blacklenticularbracketrightvertical", "FE3C", - "blacklowerlefttriangle", "25E3", - "blacklowerrighttriangle", "25E2", - "blackrectangle", "25AC", - "blackrightpointingpointer", "25BA", - "blackrightpointingtriangle", "25B6", - "blacksmallsquare", "25AA", - "blacksmilingface", "263B", - "blacksquare", "25A0", - "blackstar", "2605", - "blackupperlefttriangle", "25E4", - "blackupperrighttriangle", "25E5", - "blackuppointingsmalltriangle", "25B4", - "blackuppointingtriangle", "25B2", - "blank", "2423", - "blinebelow", "1E07", - "block", "2588", - "bmonospace", "FF42", - "bobaimaithai", "0E1A", - "bohiragana", "307C", - "bokatakana", "30DC", - "bparen", "249D", - "bqsquare", "33C3", - "braceleft", "007B", - "braceleftmonospace", "FF5B", - "braceleftsmall", "FE5B", - "braceleftvertical", "FE37", - "braceright", "007D", - "bracerightmonospace", "FF5D", - "bracerightsmall", "FE5C", - "bracerightvertical", "FE38", - "bracketleft", "005B", - "bracketleftmonospace", "FF3B", - "bracketright", "005D", - "bracketrightmonospace", "FF3D", - "breve", "02D8", - "brevebelowcmb", "032E", - "brevecmb", "0306", - "breveinvertedbelowcmb", "032F", - "breveinvertedcmb", "0311", - "breveinverteddoublecmb", "0361", - "bridgebelowcmb", "032A", - "bridgeinvertedbelowcmb", "033A", - "brokenbar", "00A6", - "bstroke", "0180", - "btopbar", "0183", - "buhiragana", "3076", - "bukatakana", "30D6", - "bullet", "2022", - "bulletinverse", "25D8", - "bulletoperator", "2219", - "bullseye", "25CE", - "c", "0063", - "caarmenian", "056E", - "cabengali", "099A", - "cacute", "0107", - "cadeva", "091A", - "cagujarati", "0A9A", - "cagurmukhi", "0A1A", - "calsquare", "3388", - "candrabindubengali", "0981", - "candrabinducmb", "0310", - "candrabindudeva", "0901", - "candrabindugujarati", "0A81", - "capslock", "21EA", - "careof", "2105", - "caron", "02C7", - "caronbelowcmb", "032C", - "caroncmb", "030C", - "carriagereturn", "21B5", - "cbopomofo", "3118", - "ccaron", "010D", - "ccedilla", "00E7", - "ccedillaacute", "1E09", - "ccircle", "24D2", - "ccircumflex", "0109", - "ccurl", "0255", - "cdot", "010B", - "cdotaccent", "010B", - "cdsquare", "33C5", - "cedilla", "00B8", - "cedillacmb", "0327", - "cent", "00A2", - "centigrade", "2103", - "centmonospace", "FFE0", - "chaarmenian", "0579", - "chabengali", "099B", - "chadeva", "091B", - "chagujarati", "0A9B", - "chagurmukhi", "0A1B", - "chbopomofo", "3114", - "cheabkhasiancyrillic", "04BD", - "checkmark", "2713", - "checyrillic", "0447", - "chedescenderabkhasiancyrillic", "04BF", - "chedescendercyrillic", "04B7", - "chedieresiscyrillic", "04F5", - "cheharmenian", "0573", - "chekhakassiancyrillic", "04CC", - "cheverticalstrokecyrillic", "04B9", - "chi", "03C7", - "chieuchacirclekorean", "3277", - "chieuchaparenkorean", "3217", - "chieuchcirclekorean", "3269", - "chieuchkorean", "314A", - "chieuchparenkorean", "3209", - "chochangthai", "0E0A", - "chochanthai", "0E08", - "chochingthai", "0E09", - "chochoethai", "0E0C", - "chook", "0188", - "cieucacirclekorean", "3276", - "cieucaparenkorean", "3216", - "cieuccirclekorean", "3268", - "cieuckorean", "3148", - "cieucparenkorean", "3208", - "cieucuparenkorean", "321C", - "circle", "25CB", - "circlemultiply", "2297", - "circleot", "2299", - "circleplus", "2295", - "circlepostalmark", "3036", - "circlewithlefthalfblack", "25D0", - "circlewithrighthalfblack", "25D1", - "circumflex", "02C6", - "circumflexbelowcmb", "032D", - "circumflexcmb", "0302", - "clear", "2327", - "clickalveolar", "01C2", - "clickdental", "01C0", - "clicklateral", "01C1", - "clickretroflex", "01C3", - "club", "2663", - "clubsuitblack", "2663", - "clubsuitwhite", "2667", - "cmcubedsquare", "33A4", - "cmonospace", "FF43", - "cmsquaredsquare", "33A0", - "coarmenian", "0581", - "colon", "003A", - "colonmonetary", "20A1", - "colonmonospace", "FF1A", - "colonsign", "20A1", - "colonsmall", "FE55", - "colontriangularhalfmod", "02D1", - "colontriangularmod", "02D0", - "comma", "002C", - "commaabovecmb", "0313", - "commaaboverightcmb", "0315", - "commaarabic", "060C", - "commaarmenian", "055D", - "commamonospace", "FF0C", - "commareversedabovecmb", "0314", - "commareversedmod", "02BD", - "commasmall", "FE50", - "commaturnedabovecmb", "0312", - "commaturnedmod", "02BB", - "compass", "263C", - "congruent", "2245", - "contourintegral", "222E", - "control", "2303", - "controlACK", "0006", - "controlBEL", "0007", - "controlBS", "0008", - "controlCAN", "0018", - "controlCR", "000D", - "controlDC1", "0011", - "controlDC2", "0012", - "controlDC3", "0013", - "controlDC4", "0014", - "controlDEL", "007F", - "controlDLE", "0010", - "controlEM", "0019", - "controlENQ", "0005", - "controlEOT", "0004", - "controlESC", "001B", - "controlETB", "0017", - "controlETX", "0003", - "controlFF", "000C", - "controlFS", "001C", - "controlGS", "001D", - "controlHT", "0009", - "controlLF", "000A", - "controlNAK", "0015", - "controlRS", "001E", - "controlSI", "000F", - "controlSO", "000E", - "controlSOT", "0002", - "controlSTX", "0001", - "controlSUB", "001A", - "controlSYN", "0016", - "controlUS", "001F", - "controlVT", "000B", - "copyright", "00A9", - "cornerbracketleft", "300C", - "cornerbracketlefthalfwidth", "FF62", - "cornerbracketleftvertical", "FE41", - "cornerbracketright", "300D", - "cornerbracketrighthalfwidth", "FF63", - "cornerbracketrightvertical", "FE42", - "corporationsquare", "337F", - "cosquare", "33C7", - "coverkgsquare", "33C6", - "cparen", "249E", - "cruzeiro", "20A2", - "cstretched", "0297", - "curlyand", "22CF", - "curlyor", "22CE", - "currency", "00A4", - "d", "0064", - "daarmenian", "0564", - "dabengali", "09A6", - "dadarabic", "0636", - "dadeva", "0926", - "dadfinalarabic", "FEBE", - "dadinitialarabic", "FEBF", - "dadmedialarabic", "FEC0", - "dagesh", "05BC", - "dageshhebrew", "05BC", - "dagger", "2020", - "daggerdbl", "2021", - "dagujarati", "0AA6", - "dagurmukhi", "0A26", - "dahiragana", "3060", - "dakatakana", "30C0", - "dalarabic", "062F", - "dalet", "05D3", - "daletdagesh", "FB33", - "daletdageshhebrew", "FB33", - "dalethatafpatah", "05D3_05B2", - "dalethatafpatahhebrew", "05D3_05B2", - "dalethatafsegol", "05D3_05B1", - "dalethatafsegolhebrew", "05D3_05B1", - "dalethebrew", "05D3", - "dalethiriq", "05D3_05B4", - "dalethiriqhebrew", "05D3_05B4", - "daletholam", "05D3_05B9", - "daletholamhebrew", "05D3_05B9", - "daletpatah", "05D3_05B7", - "daletpatahhebrew", "05D3_05B7", - "daletqamats", "05D3_05B8", - "daletqamatshebrew", "05D3_05B8", - "daletqubuts", "05D3_05BB", - "daletqubutshebrew", "05D3_05BB", - "daletsegol", "05D3_05B6", - "daletsegolhebrew", "05D3_05B6", - "daletsheva", "05D3_05B0", - "daletshevahebrew", "05D3_05B0", - "dalettsere", "05D3_05B5", - "dalettserehebrew", "05D3_05B5", - "dalfinalarabic", "FEAA", - "dammaarabic", "064F", - "dammalowarabic", "064F", - "dammatanaltonearabic", "064C", - "dammatanarabic", "064C", - "danda", "0964", - "dargahebrew", "05A7", - "dargalefthebrew", "05A7", - "dasiapneumatacyrilliccmb", "0485", - "dblanglebracketleft", "300A", - "dblanglebracketleftvertical", "FE3D", - "dblanglebracketright", "300B", - "dblanglebracketrightvertical", "FE3E", - "dblarchinvertedbelowcmb", "032B", - "dblarrowleft", "21D4", - "dblarrowright", "21D2", - "dbldanda", "0965", - "dblgravecmb", "030F", - "dblintegral", "222C", - "dbllowline", "2017", - "dbllowlinecmb", "0333", - "dbloverlinecmb", "033F", - "dblprimemod", "02BA", - "dblverticalbar", "2016", - "dblverticallineabovecmb", "030E", - "dbopomofo", "3109", - "dbsquare", "33C8", - "dcaron", "010F", - "dcedilla", "1E11", - "dcircle", "24D3", - "dcircumflexbelow", "1E13", - "dcroat", "0111", - "ddabengali", "09A1", - "ddadeva", "0921", - "ddagujarati", "0AA1", - "ddagurmukhi", "0A21", - "ddalarabic", "0688", - "ddalfinalarabic", "FB89", - "dddhadeva", "095C", - "ddhabengali", "09A2", - "ddhadeva", "0922", - "ddhagujarati", "0AA2", - "ddhagurmukhi", "0A22", - "ddotaccent", "1E0B", - "ddotbelow", "1E0D", - "decimalseparatorarabic", "066B", - "decimalseparatorpersian", "066B", - "decyrillic", "0434", - "degree", "00B0", - "dehihebrew", "05AD", - "dehiragana", "3067", - "deicoptic", "03EF", - "dekatakana", "30C7", - "deleteleft", "232B", - "deleteright", "2326", - "delta", "03B4", - "deltaturned", "018D", - "denominatorminusonenumeratorbengali", "09F8", - "dezh", "02A4", - "dhabengali", "09A7", - "dhadeva", "0927", - "dhagujarati", "0AA7", - "dhagurmukhi", "0A27", - "dhook", "0257", - "dialytikatonos", "0385", - "dialytikatonoscmb", "0344", - "diamond", "2666", - "diamondsuitwhite", "2662", - "dieresis", "00A8", - "dieresisbelowcmb", "0324", - "dieresiscmb", "0308", - "dieresistonos", "0385", - "dihiragana", "3062", - "dikatakana", "30C2", - "dittomark", "3003", - "divide", "00F7", - "divides", "2223", - "divisionslash", "2215", - "djecyrillic", "0452", - "dkshade", "2593", - "dlinebelow", "1E0F", - "dlsquare", "3397", - "dmacron", "0111", - "dmonospace", "FF44", - "dnblock", "2584", - "dochadathai", "0E0E", - "dodekthai", "0E14", - "dohiragana", "3069", - "dokatakana", "30C9", - "dollar", "0024", - "dollarmonospace", "FF04", - "dollarsmall", "FE69", - "dong", "20AB", - "dorusquare", "3326", - "dotaccent", "02D9", - "dotaccentcmb", "0307", - "dotbelowcmb", "0323", - "dotbelowcomb", "0323", - "dotkatakana", "30FB", - "dotlessi", "0131", - "dotlessjstrokehook", "0284", - "dotmath", "22C5", - "dottedcircle", "25CC", - "doubleyodpatah", "FB1F", - "doubleyodpatahhebrew", "FB1F", - "downtackbelowcmb", "031E", - "downtackmod", "02D5", - "dparen", "249F", - "dtail", "0256", - "dtopbar", "018C", - "duhiragana", "3065", - "dukatakana", "30C5", - "dz", "01F3", - "dzaltone", "02A3", - "dzcaron", "01C6", - "dzcurl", "02A5", - "dzeabkhasiancyrillic", "04E1", - "dzecyrillic", "0455", - "dzhecyrillic", "045F", - "e", "0065", - "eacute", "00E9", - "earth", "2641", - "ebengali", "098F", - "ebopomofo", "311C", - "ebreve", "0115", - "ecandradeva", "090D", - "ecandragujarati", "0A8D", - "ecandravowelsigndeva", "0945", - "ecandravowelsigngujarati", "0AC5", - "ecaron", "011B", - "ecedillabreve", "1E1D", - "echarmenian", "0565", - "echyiwnarmenian", "0587", - "ecircle", "24D4", - "ecircumflex", "00EA", - "ecircumflexacute", "1EBF", - "ecircumflexbelow", "1E19", - "ecircumflexdotbelow", "1EC7", - "ecircumflexgrave", "1EC1", - "ecircumflexhookabove", "1EC3", - "ecircumflextilde", "1EC5", - "ecyrillic", "0454", - "edblgrave", "0205", - "edeva", "090F", - "edieresis", "00EB", - "edot", "0117", - "edotaccent", "0117", - "edotbelow", "1EB9", - "eegurmukhi", "0A0F", - "eematragurmukhi", "0A47", - "efcyrillic", "0444", - "egrave", "00E8", - "egujarati", "0A8F", - "eharmenian", "0567", - "ehbopomofo", "311D", - "ehiragana", "3048", - "ehookabove", "1EBB", - "eibopomofo", "311F", - "eight", "0038", - "eightarabic", "0668", - "eightbengali", "09EE", - "eightcircle", "2467", - "eightcircleinversesansserif", "2791", - "eightdeva", "096E", - "eighteencircle", "2471", - "eighteenparen", "2485", - "eighteenperiod", "2499", - "eightgujarati", "0AEE", - "eightgurmukhi", "0A6E", - "eighthackarabic", "0668", - "eighthangzhou", "3028", - "eighthnotebeamed", "266B", - "eightideographicparen", "3227", - "eightinferior", "2088", - "eightmonospace", "FF18", - "eightparen", "247B", - "eightperiod", "248F", - "eightpersian", "06F8", - "eightroman", "2177", - "eightsuperior", "2078", - "eightthai", "0E58", - "einvertedbreve", "0207", - "eiotifiedcyrillic", "0465", - "ekatakana", "30A8", - "ekatakanahalfwidth", "FF74", - "ekonkargurmukhi", "0A74", - "ekorean", "3154", - "elcyrillic", "043B", - "element", "2208", - "elevencircle", "246A", - "elevenparen", "247E", - "elevenperiod", "2492", - "elevenroman", "217A", - "ellipsis", "2026", - "ellipsisvertical", "22EE", - "emacron", "0113", - "emacronacute", "1E17", - "emacrongrave", "1E15", - "emcyrillic", "043C", - "emdash", "2014", - "emdashvertical", "FE31", - "emonospace", "FF45", - "emphasismarkarmenian", "055B", - "emptyset", "2205", - "enbopomofo", "3123", - "encyrillic", "043D", - "endash", "2013", - "endashvertical", "FE32", - "endescendercyrillic", "04A3", - "eng", "014B", - "engbopomofo", "3125", - "enghecyrillic", "04A5", - "enhookcyrillic", "04C8", - "enspace", "2002", - "eogonek", "0119", - "eokorean", "3153", - "eopen", "025B", - "eopenclosed", "029A", - "eopenreversed", "025C", - "eopenreversedclosed", "025E", - "eopenreversedhook", "025D", - "eparen", "24A0", - "epsilon", "03B5", - "epsilontonos", "03AD", - "equal", "003D", - "equalmonospace", "FF1D", - "equalsmall", "FE66", - "equalsuperior", "207C", - "equivalence", "2261", - "erbopomofo", "3126", - "ercyrillic", "0440", - "ereversed", "0258", - "ereversedcyrillic", "044D", - "escyrillic", "0441", - "esdescendercyrillic", "04AB", - "esh", "0283", - "eshcurl", "0286", - "eshortdeva", "090E", - "eshortvowelsigndeva", "0946", - "eshreversedloop", "01AA", - "eshsquatreversed", "0285", - "esmallhiragana", "3047", - "esmallkatakana", "30A7", - "esmallkatakanahalfwidth", "FF6A", - "estimated", "212E", - "eta", "03B7", - "etarmenian", "0568", - "etatonos", "03AE", - "eth", "00F0", - "etilde", "1EBD", - "etildebelow", "1E1B", - "etnahtafoukhhebrew", "0591", - "etnahtafoukhlefthebrew", "0591", - "etnahtahebrew", "0591", - "etnahtalefthebrew", "0591", - "eturned", "01DD", - "eukorean", "3161", - "euro", "20AC", - "evowelsignbengali", "09C7", - "evowelsigndeva", "0947", - "evowelsigngujarati", "0AC7", - "exclam", "0021", - "exclamarmenian", "055C", - "exclamdbl", "203C", - "exclamdown", "00A1", - "exclammonospace", "FF01", - "existential", "2203", - "ezh", "0292", - "ezhcaron", "01EF", - "ezhcurl", "0293", - "ezhreversed", "01B9", - "ezhtail", "01BA", - "f", "0066", - "fadeva", "095E", - "fagurmukhi", "0A5E", - "fahrenheit", "2109", - "fathaarabic", "064E", - "fathalowarabic", "064E", - "fathatanarabic", "064B", - "fbopomofo", "3108", - "fcircle", "24D5", - "fdotaccent", "1E1F", - "feharabic", "0641", - "feharmenian", "0586", - "fehfinalarabic", "FED2", - "fehinitialarabic", "FED3", - "fehmedialarabic", "FED4", - "feicoptic", "03E5", - "female", "2640", - "ff", "FB00", - "ffi", "FB03", - "ffl", "FB04", - "fi", "FB01", - "fifteencircle", "246E", - "fifteenparen", "2482", - "fifteenperiod", "2496", - "figuredash", "2012", - "filledbox", "25A0", - "filledrect", "25AC", - "finalkaf", "05DA", - "finalkafdagesh", "FB3A", - "finalkafdageshhebrew", "FB3A", - "finalkafhebrew", "05DA", - "finalkafqamats", "05DA_05B8", - "finalkafqamatshebrew", "05DA_05B8", - "finalkafsheva", "05DA_05B0", - "finalkafshevahebrew", "05DA_05B0", - "finalmem", "05DD", - "finalmemhebrew", "05DD", - "finalnun", "05DF", - "finalnunhebrew", "05DF", - "finalpe", "05E3", - "finalpehebrew", "05E3", - "finaltsadi", "05E5", - "finaltsadihebrew", "05E5", - "firsttonechinese", "02C9", - "fisheye", "25C9", - "fitacyrillic", "0473", - "five", "0035", - "fivearabic", "0665", - "fivebengali", "09EB", - "fivecircle", "2464", - "fivecircleinversesansserif", "278E", - "fivedeva", "096B", - "fiveeighths", "215D", - "fivegujarati", "0AEB", - "fivegurmukhi", "0A6B", - "fivehackarabic", "0665", - "fivehangzhou", "3025", - "fiveideographicparen", "3224", - "fiveinferior", "2085", - "fivemonospace", "FF15", - "fiveparen", "2478", - "fiveperiod", "248C", - "fivepersian", "06F5", - "fiveroman", "2174", - "fivesuperior", "2075", - "fivethai", "0E55", - "fl", "FB02", - "florin", "0192", - "fmonospace", "FF46", - "fmsquare", "3399", - "fofanthai", "0E1F", - "fofathai", "0E1D", - "fongmanthai", "0E4F", - "forall", "2200", - "four", "0034", - "fourarabic", "0664", - "fourbengali", "09EA", - "fourcircle", "2463", - "fourcircleinversesansserif", "278D", - "fourdeva", "096A", - "fourgujarati", "0AEA", - "fourgurmukhi", "0A6A", - "fourhackarabic", "0664", - "fourhangzhou", "3024", - "fourideographicparen", "3223", - "fourinferior", "2084", - "fourmonospace", "FF14", - "fournumeratorbengali", "09F7", - "fourparen", "2477", - "fourperiod", "248B", - "fourpersian", "06F4", - "fourroman", "2173", - "foursuperior", "2074", - "fourteencircle", "246D", - "fourteenparen", "2481", - "fourteenperiod", "2495", - "fourthai", "0E54", - "fourthtonechinese", "02CB", - "fparen", "24A1", - "fraction", "2044", - "franc", "20A3", - "g", "0067", - "gabengali", "0997", - "gacute", "01F5", - "gadeva", "0917", - "gafarabic", "06AF", - "gaffinalarabic", "FB93", - "gafinitialarabic", "FB94", - "gafmedialarabic", "FB95", - "gagujarati", "0A97", - "gagurmukhi", "0A17", - "gahiragana", "304C", - "gakatakana", "30AC", - "gamma", "03B3", - "gammalatinsmall", "0263", - "gammasuperior", "02E0", - "gangiacoptic", "03EB", - "gbopomofo", "310D", - "gbreve", "011F", - "gcaron", "01E7", - "gcedilla", "0123", - "gcircle", "24D6", - "gcircumflex", "011D", - "gcommaaccent", "0123", - "gdot", "0121", - "gdotaccent", "0121", - "gecyrillic", "0433", - "gehiragana", "3052", - "gekatakana", "30B2", - "geometricallyequal", "2251", - "gereshaccenthebrew", "059C", - "gereshhebrew", "05F3", - "gereshmuqdamhebrew", "059D", - "germandbls", "00DF", - "gershayimaccenthebrew", "059E", - "gershayimhebrew", "05F4", - "getamark", "3013", - "ghabengali", "0998", - "ghadarmenian", "0572", - "ghadeva", "0918", - "ghagujarati", "0A98", - "ghagurmukhi", "0A18", - "ghainarabic", "063A", - "ghainfinalarabic", "FECE", - "ghaininitialarabic", "FECF", - "ghainmedialarabic", "FED0", - "ghemiddlehookcyrillic", "0495", - "ghestrokecyrillic", "0493", - "gheupturncyrillic", "0491", - "ghhadeva", "095A", - "ghhagurmukhi", "0A5A", - "ghook", "0260", - "ghzsquare", "3393", - "gihiragana", "304E", - "gikatakana", "30AE", - "gimarmenian", "0563", - "gimel", "05D2", - "gimeldagesh", "FB32", - "gimeldageshhebrew", "FB32", - "gimelhebrew", "05D2", - "gjecyrillic", "0453", - "glottalinvertedstroke", "01BE", - "glottalstop", "0294", - "glottalstopinverted", "0296", - "glottalstopmod", "02C0", - "glottalstopreversed", "0295", - "glottalstopreversedmod", "02C1", - "glottalstopreversedsuperior", "02E4", - "glottalstopstroke", "02A1", - "glottalstopstrokereversed", "02A2", - "gmacron", "1E21", - "gmonospace", "FF47", - "gohiragana", "3054", - "gokatakana", "30B4", - "gparen", "24A2", - "gpasquare", "33AC", - "gradient", "2207", - "grave", "0060", - "gravebelowcmb", "0316", - "gravecmb", "0300", - "gravecomb", "0300", - "gravedeva", "0953", - "gravelowmod", "02CE", - "gravemonospace", "FF40", - "gravetonecmb", "0340", - "greater", "003E", - "greaterequal", "2265", - "greaterequalorless", "22DB", - "greatermonospace", "FF1E", - "greaterorequivalent", "2273", - "greaterorless", "2277", - "greateroverequal", "2267", - "greatersmall", "FE65", - "gscript", "0261", - "gstroke", "01E5", - "guhiragana", "3050", - "guillemotleft", "00AB", - "guillemotright", "00BB", - "guilsinglleft", "2039", - "guilsinglright", "203A", - "gukatakana", "30B0", - "guramusquare", "3318", - "gysquare", "33C9", - "h", "0068", - "haabkhasiancyrillic", "04A9", - "haaltonearabic", "06C1", - "habengali", "09B9", - "hadescendercyrillic", "04B3", - "hadeva", "0939", - "hagujarati", "0AB9", - "hagurmukhi", "0A39", - "haharabic", "062D", - "hahfinalarabic", "FEA2", - "hahinitialarabic", "FEA3", - "hahiragana", "306F", - "hahmedialarabic", "FEA4", - "haitusquare", "332A", - "hakatakana", "30CF", - "hakatakanahalfwidth", "FF8A", - "halantgurmukhi", "0A4D", - "hamzaarabic", "0621", - "hamzadammaarabic", "0621_064F", - "hamzadammatanarabic", "0621_064C", - "hamzafathaarabic", "0621_064E", - "hamzafathatanarabic", "0621_064B", - "hamzalowarabic", "0621", - "hamzalowkasraarabic", "0621_0650", - "hamzalowkasratanarabic", "0621_064D", - "hamzasukunarabic", "0621_0652", - "hangulfiller", "3164", - "hardsigncyrillic", "044A", - "harpoonleftbarbup", "21BC", - "harpoonrightbarbup", "21C0", - "hasquare", "33CA", - "hatafpatah", "05B2", - "hatafpatah16", "05B2", - "hatafpatah23", "05B2", - "hatafpatah2f", "05B2", - "hatafpatahhebrew", "05B2", - "hatafpatahnarrowhebrew", "05B2", - "hatafpatahquarterhebrew", "05B2", - "hatafpatahwidehebrew", "05B2", - "hatafqamats", "05B3", - "hatafqamats1b", "05B3", - "hatafqamats28", "05B3", - "hatafqamats34", "05B3", - "hatafqamatshebrew", "05B3", - "hatafqamatsnarrowhebrew", "05B3", - "hatafqamatsquarterhebrew", "05B3", - "hatafqamatswidehebrew", "05B3", - "hatafsegol", "05B1", - "hatafsegol17", "05B1", - "hatafsegol24", "05B1", - "hatafsegol30", "05B1", - "hatafsegolhebrew", "05B1", - "hatafsegolnarrowhebrew", "05B1", - "hatafsegolquarterhebrew", "05B1", - "hatafsegolwidehebrew", "05B1", - "hbar", "0127", - "hbopomofo", "310F", - "hbrevebelow", "1E2B", - "hcedilla", "1E29", - "hcircle", "24D7", - "hcircumflex", "0125", - "hdieresis", "1E27", - "hdotaccent", "1E23", - "hdotbelow", "1E25", - "he", "05D4", - "heart", "2665", - "heartsuitblack", "2665", - "heartsuitwhite", "2661", - "hedagesh", "FB34", - "hedageshhebrew", "FB34", - "hehaltonearabic", "06C1", - "heharabic", "0647", - "hehebrew", "05D4", - "hehfinalaltonearabic", "FBA7", - "hehfinalalttwoarabic", "FEEA", - "hehfinalarabic", "FEEA", - "hehhamzaabovefinalarabic", "FBA5", - "hehhamzaaboveisolatedarabic", "FBA4", - "hehinitialaltonearabic", "FBA8", - "hehinitialarabic", "FEEB", - "hehiragana", "3078", - "hehmedialaltonearabic", "FBA9", - "hehmedialarabic", "FEEC", - "heiseierasquare", "337B", - "hekatakana", "30D8", - "hekatakanahalfwidth", "FF8D", - "hekutaarusquare", "3336", - "henghook", "0267", - "herutusquare", "3339", - "het", "05D7", - "hethebrew", "05D7", - "hhook", "0266", - "hhooksuperior", "02B1", - "hieuhacirclekorean", "327B", - "hieuhaparenkorean", "321B", - "hieuhcirclekorean", "326D", - "hieuhkorean", "314E", - "hieuhparenkorean", "320D", - "hihiragana", "3072", - "hikatakana", "30D2", - "hikatakanahalfwidth", "FF8B", - "hiriq", "05B4", - "hiriq14", "05B4", - "hiriq21", "05B4", - "hiriq2d", "05B4", - "hiriqhebrew", "05B4", - "hiriqnarrowhebrew", "05B4", - "hiriqquarterhebrew", "05B4", - "hiriqwidehebrew", "05B4", - "hlinebelow", "1E96", - "hmonospace", "FF48", - "hoarmenian", "0570", - "hohipthai", "0E2B", - "hohiragana", "307B", - "hokatakana", "30DB", - "hokatakanahalfwidth", "FF8E", - "holam", "05B9", - "holam19", "05B9", - "holam26", "05B9", - "holam32", "05B9", - "holamhebrew", "05B9", - "holamnarrowhebrew", "05B9", - "holamquarterhebrew", "05B9", - "holamwidehebrew", "05B9", - "honokhukthai", "0E2E", - "hookabovecomb", "0309", - "hookcmb", "0309", - "hookpalatalizedbelowcmb", "0321", - "hookretroflexbelowcmb", "0322", - "hoonsquare", "3342", - "horicoptic", "03E9", - "horizontalbar", "2015", - "horncmb", "031B", - "hotsprings", "2668", - "house", "2302", - "hparen", "24A3", - "hsuperior", "02B0", - "hturned", "0265", - "huhiragana", "3075", - "huiitosquare", "3333", - "hukatakana", "30D5", - "hukatakanahalfwidth", "FF8C", - "hungarumlaut", "02DD", - "hungarumlautcmb", "030B", - "hv", "0195", - "hyphen", "002D", - "hyphenmonospace", "FF0D", - "hyphensmall", "FE63", - "hyphentwo", "2010", - "i", "0069", - "iacute", "00ED", - "iacyrillic", "044F", - "ibengali", "0987", - "ibopomofo", "3127", - "ibreve", "012D", - "icaron", "01D0", - "icircle", "24D8", - "icircumflex", "00EE", - "icyrillic", "0456", - "idblgrave", "0209", - "ideographearthcircle", "328F", - "ideographfirecircle", "328B", - "ideographicallianceparen", "323F", - "ideographiccallparen", "323A", - "ideographiccentrecircle", "32A5", - "ideographicclose", "3006", - "ideographiccomma", "3001", - "ideographiccommaleft", "FF64", - "ideographiccongratulationparen", "3237", - "ideographiccorrectcircle", "32A3", - "ideographicearthparen", "322F", - "ideographicenterpriseparen", "323D", - "ideographicexcellentcircle", "329D", - "ideographicfestivalparen", "3240", - "ideographicfinancialcircle", "3296", - "ideographicfinancialparen", "3236", - "ideographicfireparen", "322B", - "ideographichaveparen", "3232", - "ideographichighcircle", "32A4", - "ideographiciterationmark", "3005", - "ideographiclaborcircle", "3298", - "ideographiclaborparen", "3238", - "ideographicleftcircle", "32A7", - "ideographiclowcircle", "32A6", - "ideographicmedicinecircle", "32A9", - "ideographicmetalparen", "322E", - "ideographicmoonparen", "322A", - "ideographicnameparen", "3234", - "ideographicperiod", "3002", - "ideographicprintcircle", "329E", - "ideographicreachparen", "3243", - "ideographicrepresentparen", "3239", - "ideographicresourceparen", "323E", - "ideographicrightcircle", "32A8", - "ideographicsecretcircle", "3299", - "ideographicselfparen", "3242", - "ideographicsocietyparen", "3233", - "ideographicspace", "3000", - "ideographicspecialparen", "3235", - "ideographicstockparen", "3231", - "ideographicstudyparen", "323B", - "ideographicsunparen", "3230", - "ideographicsuperviseparen", "323C", - "ideographicwaterparen", "322C", - "ideographicwoodparen", "322D", - "ideographiczero", "3007", - "ideographmetalcircle", "328E", - "ideographmooncircle", "328A", - "ideographnamecircle", "3294", - "ideographsuncircle", "3290", - "ideographwatercircle", "328C", - "ideographwoodcircle", "328D", - "ideva", "0907", - "idieresis", "00EF", - "idieresisacute", "1E2F", - "idieresiscyrillic", "04E5", - "idotbelow", "1ECB", - "iebrevecyrillic", "04D7", - "iecyrillic", "0435", - "ieungacirclekorean", "3275", - "ieungaparenkorean", "3215", - "ieungcirclekorean", "3267", - "ieungkorean", "3147", - "ieungparenkorean", "3207", - "igrave", "00EC", - "igujarati", "0A87", - "igurmukhi", "0A07", - "ihiragana", "3044", - "ihookabove", "1EC9", - "iibengali", "0988", - "iicyrillic", "0438", - "iideva", "0908", - "iigujarati", "0A88", - "iigurmukhi", "0A08", - "iimatragurmukhi", "0A40", - "iinvertedbreve", "020B", - "iishortcyrillic", "0439", - "iivowelsignbengali", "09C0", - "iivowelsigndeva", "0940", - "iivowelsigngujarati", "0AC0", - "ij", "0133", - "ikatakana", "30A4", - "ikatakanahalfwidth", "FF72", - "ikorean", "3163", - "ilde", "02DC", - "iluyhebrew", "05AC", - "imacron", "012B", - "imacroncyrillic", "04E3", - "imageorapproximatelyequal", "2253", - "imatragurmukhi", "0A3F", - "imonospace", "FF49", - "increment", "2206", - "infinity", "221E", - "iniarmenian", "056B", - "integral", "222B", - "integralbottom", "2321", - "integralbt", "2321", - "integraltop", "2320", - "integraltp", "2320", - "intersection", "2229", - "intisquare", "3305", - "invbullet", "25D8", - "invcircle", "25D9", - "invsmileface", "263B", - "iocyrillic", "0451", - "iogonek", "012F", - "iota", "03B9", - "iotadieresis", "03CA", - "iotadieresistonos", "0390", - "iotalatin", "0269", - "iotatonos", "03AF", - "iparen", "24A4", - "irigurmukhi", "0A72", - "ismallhiragana", "3043", - "ismallkatakana", "30A3", - "ismallkatakanahalfwidth", "FF68", - "issharbengali", "09FA", - "istroke", "0268", - "iterationhiragana", "309D", - "iterationkatakana", "30FD", - "itilde", "0129", - "itildebelow", "1E2D", - "iubopomofo", "3129", - "iucyrillic", "044E", - "ivowelsignbengali", "09BF", - "ivowelsigndeva", "093F", - "ivowelsigngujarati", "0ABF", - "izhitsacyrillic", "0475", - "izhitsadblgravecyrillic", "0477", - "j", "006A", - "jaarmenian", "0571", - "jabengali", "099C", - "jadeva", "091C", - "jagujarati", "0A9C", - "jagurmukhi", "0A1C", - "jbopomofo", "3110", - "jcaron", "01F0", - "jcircle", "24D9", - "jcircumflex", "0135", - "jcrossedtail", "029D", - "jdotlessstroke", "025F", - "jecyrillic", "0458", - "jeemarabic", "062C", - "jeemfinalarabic", "FE9E", - "jeeminitialarabic", "FE9F", - "jeemmedialarabic", "FEA0", - "jeharabic", "0698", - "jehfinalarabic", "FB8B", - "jhabengali", "099D", - "jhadeva", "091D", - "jhagujarati", "0A9D", - "jhagurmukhi", "0A1D", - "jheharmenian", "057B", - "jis", "3004", - "jmonospace", "FF4A", - "jparen", "24A5", - "jsuperior", "02B2", - "k", "006B", - "kabashkircyrillic", "04A1", - "kabengali", "0995", - "kacute", "1E31", - "kacyrillic", "043A", - "kadescendercyrillic", "049B", - "kadeva", "0915", - "kaf", "05DB", - "kafarabic", "0643", - "kafdagesh", "FB3B", - "kafdageshhebrew", "FB3B", - "kaffinalarabic", "FEDA", - "kafhebrew", "05DB", - "kafinitialarabic", "FEDB", - "kafmedialarabic", "FEDC", - "kafrafehebrew", "FB4D", - "kagujarati", "0A95", - "kagurmukhi", "0A15", - "kahiragana", "304B", - "kahookcyrillic", "04C4", - "kakatakana", "30AB", - "kakatakanahalfwidth", "FF76", - "kappa", "03BA", - "kappasymbolgreek", "03F0", - "kapyeounmieumkorean", "3171", - "kapyeounphieuphkorean", "3184", - "kapyeounpieupkorean", "3178", - "kapyeounssangpieupkorean", "3179", - "karoriisquare", "330D", - "kashidaautoarabic", "0640", - "kashidaautonosidebearingarabic", "0640", - "kasmallkatakana", "30F5", - "kasquare", "3384", - "kasraarabic", "0650", - "kasratanarabic", "064D", - "kastrokecyrillic", "049F", - "katahiraprolongmarkhalfwidth", "FF70", - "kaverticalstrokecyrillic", "049D", - "kbopomofo", "310E", - "kcalsquare", "3389", - "kcaron", "01E9", - "kcedilla", "0137", - "kcircle", "24DA", - "kcommaaccent", "0137", - "kdotbelow", "1E33", - "keharmenian", "0584", - "kehiragana", "3051", - "kekatakana", "30B1", - "kekatakanahalfwidth", "FF79", - "kenarmenian", "056F", - "kesmallkatakana", "30F6", - "kgreenlandic", "0138", - "khabengali", "0996", - "khacyrillic", "0445", - "khadeva", "0916", - "khagujarati", "0A96", - "khagurmukhi", "0A16", - "khaharabic", "062E", - "khahfinalarabic", "FEA6", - "khahinitialarabic", "FEA7", - "khahmedialarabic", "FEA8", - "kheicoptic", "03E7", - "khhadeva", "0959", - "khhagurmukhi", "0A59", - "khieukhacirclekorean", "3278", - "khieukhaparenkorean", "3218", - "khieukhcirclekorean", "326A", - "khieukhkorean", "314B", - "khieukhparenkorean", "320A", - "khokhaithai", "0E02", - "khokhonthai", "0E05", - "khokhuatthai", "0E03", - "khokhwaithai", "0E04", - "khomutthai", "0E5B", - "khook", "0199", - "khorakhangthai", "0E06", - "khzsquare", "3391", - "kihiragana", "304D", - "kikatakana", "30AD", - "kikatakanahalfwidth", "FF77", - "kiroguramusquare", "3315", - "kiromeetorusquare", "3316", - "kirosquare", "3314", - "kiyeokacirclekorean", "326E", - "kiyeokaparenkorean", "320E", - "kiyeokcirclekorean", "3260", - "kiyeokkorean", "3131", - "kiyeokparenkorean", "3200", - "kiyeoksioskorean", "3133", - "kjecyrillic", "045C", - "klinebelow", "1E35", - "klsquare", "3398", - "kmcubedsquare", "33A6", - "kmonospace", "FF4B", - "kmsquaredsquare", "33A2", - "kohiragana", "3053", - "kohmsquare", "33C0", - "kokaithai", "0E01", - "kokatakana", "30B3", - "kokatakanahalfwidth", "FF7A", - "kooposquare", "331E", - "koppacyrillic", "0481", - "koreanstandardsymbol", "327F", - "koroniscmb", "0343", - "kparen", "24A6", - "kpasquare", "33AA", - "ksicyrillic", "046F", - "ktsquare", "33CF", - "kturned", "029E", - "kuhiragana", "304F", - "kukatakana", "30AF", - "kukatakanahalfwidth", "FF78", - "kvsquare", "33B8", - "kwsquare", "33BE", - "l", "006C", - "labengali", "09B2", - "lacute", "013A", - "ladeva", "0932", - "lagujarati", "0AB2", - "lagurmukhi", "0A32", - "lakkhangyaothai", "0E45", - "lamaleffinalarabic", "FEFC", - "lamalefhamzaabovefinalarabic", "FEF8", - "lamalefhamzaaboveisolatedarabic", "FEF7", - "lamalefhamzabelowfinalarabic", "FEFA", - "lamalefhamzabelowisolatedarabic", "FEF9", - "lamalefisolatedarabic", "FEFB", - "lamalefmaddaabovefinalarabic", "FEF6", - "lamalefmaddaaboveisolatedarabic", "FEF5", - "lamarabic", "0644", - "lambda", "03BB", - "lambdastroke", "019B", - "lamed", "05DC", - "lameddagesh", "FB3C", - "lameddageshhebrew", "FB3C", - "lamedhebrew", "05DC", - "lamedholam", "05DC_05B9", - "lamedholamdagesh", "05DC_05B9_05BC", - "lamedholamdageshhebrew", "05DC_05B9_05BC", - "lamedholamhebrew", "05DC_05B9", - "lamfinalarabic", "FEDE", - "lamhahinitialarabic", "FCCA", - "laminitialarabic", "FEDF", - "lamjeeminitialarabic", "FCC9", - "lamkhahinitialarabic", "FCCB", - "lamlamhehisolatedarabic", "FDF2", - "lammedialarabic", "FEE0", - "lammeemhahinitialarabic", "FD88", - "lammeeminitialarabic", "FCCC", - "lammeemjeeminitialarabic", "FEDF_FEE4_FEA0", - "lammeemkhahinitialarabic", "FEDF_FEE4_FEA8", - "largecircle", "25EF", - "lbar", "019A", - "lbelt", "026C", - "lbopomofo", "310C", - "lcaron", "013E", - "lcedilla", "013C", - "lcircle", "24DB", - "lcircumflexbelow", "1E3D", - "lcommaaccent", "013C", - "ldot", "0140", - "ldotaccent", "0140", - "ldotbelow", "1E37", - "ldotbelowmacron", "1E39", - "leftangleabovecmb", "031A", - "lefttackbelowcmb", "0318", - "less", "003C", - "lessequal", "2264", - "lessequalorgreater", "22DA", - "lessmonospace", "FF1C", - "lessorequivalent", "2272", - "lessorgreater", "2276", - "lessoverequal", "2266", - "lesssmall", "FE64", - "lezh", "026E", - "lfblock", "258C", - "lhookretroflex", "026D", - "lira", "20A4", - "liwnarmenian", "056C", - "lj", "01C9", - "ljecyrillic", "0459", - "lladeva", "0933", - "llagujarati", "0AB3", - "llinebelow", "1E3B", - "llladeva", "0934", - "llvocalicbengali", "09E1", - "llvocalicdeva", "0961", - "llvocalicvowelsignbengali", "09E3", - "llvocalicvowelsigndeva", "0963", - "lmiddletilde", "026B", - "lmonospace", "FF4C", - "lmsquare", "33D0", - "lochulathai", "0E2C", - "logicaland", "2227", - "logicalnot", "00AC", - "logicalnotreversed", "2310", - "logicalor", "2228", - "lolingthai", "0E25", - "longs", "017F", - "lowlinecenterline", "FE4E", - "lowlinecmb", "0332", - "lowlinedashed", "FE4D", - "lozenge", "25CA", - "lparen", "24A7", - "lslash", "0142", - "lsquare", "2113", - "ltshade", "2591", - "luthai", "0E26", - "lvocalicbengali", "098C", - "lvocalicdeva", "090C", - "lvocalicvowelsignbengali", "09E2", - "lvocalicvowelsigndeva", "0962", - "lxsquare", "33D3", - "m", "006D", - "mabengali", "09AE", - "macron", "00AF", - "macronbelowcmb", "0331", - "macroncmb", "0304", - "macronlowmod", "02CD", - "macronmonospace", "FFE3", - "macute", "1E3F", - "madeva", "092E", - "magujarati", "0AAE", - "magurmukhi", "0A2E", - "mahapakhhebrew", "05A4", - "mahapakhlefthebrew", "05A4", - "mahiragana", "307E", - "maichattawathai", "0E4B", - "maiekthai", "0E48", - "maihanakatthai", "0E31", - "maitaikhuthai", "0E47", - "maithothai", "0E49", - "maitrithai", "0E4A", - "maiyamokthai", "0E46", - "makatakana", "30DE", - "makatakanahalfwidth", "FF8F", - "male", "2642", - "mansyonsquare", "3347", - "maqafhebrew", "05BE", - "mars", "2642", - "masoracirclehebrew", "05AF", - "masquare", "3383", - "mbopomofo", "3107", - "mbsquare", "33D4", - "mcircle", "24DC", - "mcubedsquare", "33A5", - "mdotaccent", "1E41", - "mdotbelow", "1E43", - "meemarabic", "0645", - "meemfinalarabic", "FEE2", - "meeminitialarabic", "FEE3", - "meemmedialarabic", "FEE4", - "meemmeeminitialarabic", "FCD1", - "meemmeemisolatedarabic", "FC48", - "meetorusquare", "334D", - "mehiragana", "3081", - "meizierasquare", "337E", - "mekatakana", "30E1", - "mekatakanahalfwidth", "FF92", - "mem", "05DE", - "memdagesh", "FB3E", - "memdageshhebrew", "FB3E", - "memhebrew", "05DE", - "menarmenian", "0574", - "merkhahebrew", "05A5", - "merkhakefulahebrew", "05A6", - "merkhakefulalefthebrew", "05A6", - "merkhalefthebrew", "05A5", - "mhook", "0271", - "mhzsquare", "3392", - "middledotkatakanahalfwidth", "FF65", - "middot", "00B7", - "mieumacirclekorean", "3272", - "mieumaparenkorean", "3212", - "mieumcirclekorean", "3264", - "mieumkorean", "3141", - "mieumpansioskorean", "3170", - "mieumparenkorean", "3204", - "mieumpieupkorean", "316E", - "mieumsioskorean", "316F", - "mihiragana", "307F", - "mikatakana", "30DF", - "mikatakanahalfwidth", "FF90", - "minus", "2212", - "minusbelowcmb", "0320", - "minuscircle", "2296", - "minusmod", "02D7", - "minusplus", "2213", - "minute", "2032", - "miribaarusquare", "334A", - "mirisquare", "3349", - "mlonglegturned", "0270", - "mlsquare", "3396", - "mmcubedsquare", "33A3", - "mmonospace", "FF4D", - "mmsquaredsquare", "339F", - "mohiragana", "3082", - "mohmsquare", "33C1", - "mokatakana", "30E2", - "mokatakanahalfwidth", "FF93", - "molsquare", "33D6", - "momathai", "0E21", - "moverssquare", "33A7", - "moverssquaredsquare", "33A8", - "mparen", "24A8", - "mpasquare", "33AB", - "mssquare", "33B3", - "mturned", "026F", - "mu", "00B5", - "mu1", "00B5", - "muasquare", "3382", - "muchgreater", "226B", - "muchless", "226A", - "mufsquare", "338C", - "mugreek", "03BC", - "mugsquare", "338D", - "muhiragana", "3080", - "mukatakana", "30E0", - "mukatakanahalfwidth", "FF91", - "mulsquare", "3395", - "multiply", "00D7", - "mumsquare", "339B", - "munahhebrew", "05A3", - "munahlefthebrew", "05A3", - "musicalnote", "266A", - "musicalnotedbl", "266B", - "musicflatsign", "266D", - "musicsharpsign", "266F", - "mussquare", "33B2", - "muvsquare", "33B6", - "muwsquare", "33BC", - "mvmegasquare", "33B9", - "mvsquare", "33B7", - "mwmegasquare", "33BF", - "mwsquare", "33BD", - "n", "006E", - "nabengali", "09A8", - "nabla", "2207", - "nacute", "0144", - "nadeva", "0928", - "nagujarati", "0AA8", - "nagurmukhi", "0A28", - "nahiragana", "306A", - "nakatakana", "30CA", - "nakatakanahalfwidth", "FF85", - "napostrophe", "0149", - "nasquare", "3381", - "nbopomofo", "310B", - "nbspace", "00A0", - "ncaron", "0148", - "ncedilla", "0146", - "ncircle", "24DD", - "ncircumflexbelow", "1E4B", - "ncommaaccent", "0146", - "ndotaccent", "1E45", - "ndotbelow", "1E47", - "nehiragana", "306D", - "nekatakana", "30CD", - "nekatakanahalfwidth", "FF88", - "newsheqelsign", "20AA", - "nfsquare", "338B", - "ngabengali", "0999", - "ngadeva", "0919", - "ngagujarati", "0A99", - "ngagurmukhi", "0A19", - "ngonguthai", "0E07", - "nhiragana", "3093", - "nhookleft", "0272", - "nhookretroflex", "0273", - "nieunacirclekorean", "326F", - "nieunaparenkorean", "320F", - "nieuncieuckorean", "3135", - "nieuncirclekorean", "3261", - "nieunhieuhkorean", "3136", - "nieunkorean", "3134", - "nieunpansioskorean", "3168", - "nieunparenkorean", "3201", - "nieunsioskorean", "3167", - "nieuntikeutkorean", "3166", - "nihiragana", "306B", - "nikatakana", "30CB", - "nikatakanahalfwidth", "FF86", - "nikhahitthai", "0E4D", - "nine", "0039", - "ninearabic", "0669", - "ninebengali", "09EF", - "ninecircle", "2468", - "ninecircleinversesansserif", "2792", - "ninedeva", "096F", - "ninegujarati", "0AEF", - "ninegurmukhi", "0A6F", - "ninehackarabic", "0669", - "ninehangzhou", "3029", - "nineideographicparen", "3228", - "nineinferior", "2089", - "ninemonospace", "FF19", - "nineparen", "247C", - "nineperiod", "2490", - "ninepersian", "06F9", - "nineroman", "2178", - "ninesuperior", "2079", - "nineteencircle", "2472", - "nineteenparen", "2486", - "nineteenperiod", "249A", - "ninethai", "0E59", - "nj", "01CC", - "njecyrillic", "045A", - "nkatakana", "30F3", - "nkatakanahalfwidth", "FF9D", - "nlegrightlong", "019E", - "nlinebelow", "1E49", - "nmonospace", "FF4E", - "nmsquare", "339A", - "nnabengali", "09A3", - "nnadeva", "0923", - "nnagujarati", "0AA3", - "nnagurmukhi", "0A23", - "nnnadeva", "0929", - "nohiragana", "306E", - "nokatakana", "30CE", - "nokatakanahalfwidth", "FF89", - "nonbreakingspace", "00A0", - "nonenthai", "0E13", - "nonuthai", "0E19", - "noonarabic", "0646", - "noonfinalarabic", "FEE6", - "noonghunnaarabic", "06BA", - "noonghunnafinalarabic", "FB9F", - "noonhehinitialarabic", "FEE7_FEEC", - "nooninitialarabic", "FEE7", - "noonjeeminitialarabic", "FCD2", - "noonjeemisolatedarabic", "FC4B", - "noonmedialarabic", "FEE8", - "noonmeeminitialarabic", "FCD5", - "noonmeemisolatedarabic", "FC4E", - "noonnoonfinalarabic", "FC8D", - "notcontains", "220C", - "notelement", "2209", - "notelementof", "2209", - "notequal", "2260", - "notgreater", "226F", - "notgreaternorequal", "2271", - "notgreaternorless", "2279", - "notidentical", "2262", - "notless", "226E", - "notlessnorequal", "2270", - "notparallel", "2226", - "notprecedes", "2280", - "notsubset", "2284", - "notsucceeds", "2281", - "notsuperset", "2285", - "nowarmenian", "0576", - "nparen", "24A9", - "nssquare", "33B1", - "nsuperior", "207F", - "ntilde", "00F1", - "nu", "03BD", - "nuhiragana", "306C", - "nukatakana", "30CC", - "nukatakanahalfwidth", "FF87", - "nuktabengali", "09BC", - "nuktadeva", "093C", - "nuktagujarati", "0ABC", - "nuktagurmukhi", "0A3C", - "numbersign", "0023", - "numbersignmonospace", "FF03", - "numbersignsmall", "FE5F", - "numeralsigngreek", "0374", - "numeralsignlowergreek", "0375", - "numero", "2116", - "nun", "05E0", - "nundagesh", "FB40", - "nundageshhebrew", "FB40", - "nunhebrew", "05E0", - "nvsquare", "33B5", - "nwsquare", "33BB", - "nyabengali", "099E", - "nyadeva", "091E", - "nyagujarati", "0A9E", - "nyagurmukhi", "0A1E", - "o", "006F", - "oacute", "00F3", - "oangthai", "0E2D", - "obarred", "0275", - "obarredcyrillic", "04E9", - "obarreddieresiscyrillic", "04EB", - "obengali", "0993", - "obopomofo", "311B", - "obreve", "014F", - "ocandradeva", "0911", - "ocandragujarati", "0A91", - "ocandravowelsigndeva", "0949", - "ocandravowelsigngujarati", "0AC9", - "ocaron", "01D2", - "ocircle", "24DE", - "ocircumflex", "00F4", - "ocircumflexacute", "1ED1", - "ocircumflexdotbelow", "1ED9", - "ocircumflexgrave", "1ED3", - "ocircumflexhookabove", "1ED5", - "ocircumflextilde", "1ED7", - "ocyrillic", "043E", - "odblacute", "0151", - "odblgrave", "020D", - "odeva", "0913", - "odieresis", "00F6", - "odieresiscyrillic", "04E7", - "odotbelow", "1ECD", - "oe", "0153", - "oekorean", "315A", - "ogonek", "02DB", - "ogonekcmb", "0328", - "ograve", "00F2", - "ogujarati", "0A93", - "oharmenian", "0585", - "ohiragana", "304A", - "ohookabove", "1ECF", - "ohorn", "01A1", - "ohornacute", "1EDB", - "ohorndotbelow", "1EE3", - "ohorngrave", "1EDD", - "ohornhookabove", "1EDF", - "ohorntilde", "1EE1", - "ohungarumlaut", "0151", - "oi", "01A3", - "oinvertedbreve", "020F", - "okatakana", "30AA", - "okatakanahalfwidth", "FF75", - "okorean", "3157", - "olehebrew", "05AB", - "omacron", "014D", - "omacronacute", "1E53", - "omacrongrave", "1E51", - "omdeva", "0950", - "omega", "03C9", - "omega1", "03D6", - "omegacyrillic", "0461", - "omegalatinclosed", "0277", - "omegaroundcyrillic", "047B", - "omegatitlocyrillic", "047D", - "omegatonos", "03CE", - "omgujarati", "0AD0", - "omicron", "03BF", - "omicrontonos", "03CC", - "omonospace", "FF4F", - "one", "0031", - "onearabic", "0661", - "onebengali", "09E7", - "onecircle", "2460", - "onecircleinversesansserif", "278A", - "onedeva", "0967", - "onedotenleader", "2024", - "oneeighth", "215B", - "onegujarati", "0AE7", - "onegurmukhi", "0A67", - "onehackarabic", "0661", - "onehalf", "00BD", - "onehangzhou", "3021", - "oneideographicparen", "3220", - "oneinferior", "2081", - "onemonospace", "FF11", - "onenumeratorbengali", "09F4", - "oneparen", "2474", - "oneperiod", "2488", - "onepersian", "06F1", - "onequarter", "00BC", - "oneroman", "2170", - "onesuperior", "00B9", - "onethai", "0E51", - "onethird", "2153", - "oogonek", "01EB", - "oogonekmacron", "01ED", - "oogurmukhi", "0A13", - "oomatragurmukhi", "0A4B", - "oopen", "0254", - "oparen", "24AA", - "openbullet", "25E6", - "option", "2325", - "ordfeminine", "00AA", - "ordmasculine", "00BA", - "orthogonal", "221F", - "oshortdeva", "0912", - "oshortvowelsigndeva", "094A", - "oslash", "00F8", - "oslashacute", "01FF", - "osmallhiragana", "3049", - "osmallkatakana", "30A9", - "osmallkatakanahalfwidth", "FF6B", - "ostrokeacute", "01FF", - "otcyrillic", "047F", - "otilde", "00F5", - "otildeacute", "1E4D", - "otildedieresis", "1E4F", - "oubopomofo", "3121", - "overline", "203E", - "overlinecenterline", "FE4A", - "overlinecmb", "0305", - "overlinedashed", "FE49", - "overlinedblwavy", "FE4C", - "overlinewavy", "FE4B", - "overscore", "00AF", - "ovowelsignbengali", "09CB", - "ovowelsigndeva", "094B", - "ovowelsigngujarati", "0ACB", - "p", "0070", - "paampssquare", "3380", - "paasentosquare", "332B", - "pabengali", "09AA", - "pacute", "1E55", - "padeva", "092A", - "pagedown", "21DF", - "pageup", "21DE", - "pagujarati", "0AAA", - "pagurmukhi", "0A2A", - "pahiragana", "3071", - "paiyannoithai", "0E2F", - "pakatakana", "30D1", - "palatalizationcyrilliccmb", "0484", - "palochkacyrillic", "04C0", - "pansioskorean", "317F", - "paragraph", "00B6", - "parallel", "2225", - "parenleft", "0028", - "parenleftaltonearabic", "FD3E", - "parenleftinferior", "208D", - "parenleftmonospace", "FF08", - "parenleftsmall", "FE59", - "parenleftsuperior", "207D", - "parenleftvertical", "FE35", - "parenright", "0029", - "parenrightaltonearabic", "FD3F", - "parenrightinferior", "208E", - "parenrightmonospace", "FF09", - "parenrightsmall", "FE5A", - "parenrightsuperior", "207E", - "parenrightvertical", "FE36", - "partialdiff", "2202", - "paseqhebrew", "05C0", - "pashtahebrew", "0599", - "pasquare", "33A9", - "patah", "05B7", - "patah11", "05B7", - "patah1d", "05B7", - "patah2a", "05B7", - "patahhebrew", "05B7", - "patahnarrowhebrew", "05B7", - "patahquarterhebrew", "05B7", - "patahwidehebrew", "05B7", - "pazerhebrew", "05A1", - "pbopomofo", "3106", - "pcircle", "24DF", - "pdotaccent", "1E57", - "pe", "05E4", - "pecyrillic", "043F", - "pedagesh", "FB44", - "pedageshhebrew", "FB44", - "peezisquare", "333B", - "pefinaldageshhebrew", "FB43", - "peharabic", "067E", - "peharmenian", "057A", - "pehebrew", "05E4", - "pehfinalarabic", "FB57", - "pehinitialarabic", "FB58", - "pehiragana", "307A", - "pehmedialarabic", "FB59", - "pekatakana", "30DA", - "pemiddlehookcyrillic", "04A7", - "perafehebrew", "FB4E", - "percent", "0025", - "percentarabic", "066A", - "percentmonospace", "FF05", - "percentsmall", "FE6A", - "period", "002E", - "periodarmenian", "0589", - "periodcentered", "00B7", - "periodhalfwidth", "FF61", - "periodmonospace", "FF0E", - "periodsmall", "FE52", - "perispomenigreekcmb", "0342", - "perpendicular", "22A5", - "perthousand", "2030", - "peseta", "20A7", - "pfsquare", "338A", - "phabengali", "09AB", - "phadeva", "092B", - "phagujarati", "0AAB", - "phagurmukhi", "0A2B", - "phi", "03C6", - "phi1", "03D5", - "phieuphacirclekorean", "327A", - "phieuphaparenkorean", "321A", - "phieuphcirclekorean", "326C", - "phieuphkorean", "314D", - "phieuphparenkorean", "320C", - "philatin", "0278", - "phinthuthai", "0E3A", - "phisymbolgreek", "03D5", - "phook", "01A5", - "phophanthai", "0E1E", - "phophungthai", "0E1C", - "phosamphaothai", "0E20", - "pi", "03C0", - "pieupacirclekorean", "3273", - "pieupaparenkorean", "3213", - "pieupcieuckorean", "3176", - "pieupcirclekorean", "3265", - "pieupkiyeokkorean", "3172", - "pieupkorean", "3142", - "pieupparenkorean", "3205", - "pieupsioskiyeokkorean", "3174", - "pieupsioskorean", "3144", - "pieupsiostikeutkorean", "3175", - "pieupthieuthkorean", "3177", - "pieuptikeutkorean", "3173", - "pihiragana", "3074", - "pikatakana", "30D4", - "pisymbolgreek", "03D6", - "piwrarmenian", "0583", - "plus", "002B", - "plusbelowcmb", "031F", - "pluscircle", "2295", - "plusminus", "00B1", - "plusmod", "02D6", - "plusmonospace", "FF0B", - "plussmall", "FE62", - "plussuperior", "207A", - "pmonospace", "FF50", - "pmsquare", "33D8", - "pohiragana", "307D", - "pointingindexdownwhite", "261F", - "pointingindexleftwhite", "261C", - "pointingindexrightwhite", "261E", - "pointingindexupwhite", "261D", - "pokatakana", "30DD", - "poplathai", "0E1B", - "postalmark", "3012", - "postalmarkface", "3020", - "pparen", "24AB", - "precedes", "227A", - "prescription", "211E", - "primemod", "02B9", - "primereversed", "2035", - "product", "220F", - "projective", "2305", - "prolongedkana", "30FC", - "propellor", "2318", - "propersubset", "2282", - "propersuperset", "2283", - "proportion", "2237", - "proportional", "221D", - "psi", "03C8", - "psicyrillic", "0471", - "psilipneumatacyrilliccmb", "0486", - "pssquare", "33B0", - "puhiragana", "3077", - "pukatakana", "30D7", - "pvsquare", "33B4", - "pwsquare", "33BA", - "q", "0071", - "qadeva", "0958", - "qadmahebrew", "05A8", - "qafarabic", "0642", - "qaffinalarabic", "FED6", - "qafinitialarabic", "FED7", - "qafmedialarabic", "FED8", - "qamats", "05B8", - "qamats10", "05B8", - "qamats1a", "05B8", - "qamats1c", "05B8", - "qamats27", "05B8", - "qamats29", "05B8", - "qamats33", "05B8", - "qamatsde", "05B8", - "qamatshebrew", "05B8", - "qamatsnarrowhebrew", "05B8", - "qamatsqatanhebrew", "05B8", - "qamatsqatannarrowhebrew", "05B8", - "qamatsqatanquarterhebrew", "05B8", - "qamatsqatanwidehebrew", "05B8", - "qamatsquarterhebrew", "05B8", - "qamatswidehebrew", "05B8", - "qarneyparahebrew", "059F", - "qbopomofo", "3111", - "qcircle", "24E0", - "qhook", "02A0", - "qmonospace", "FF51", - "qof", "05E7", - "qofdagesh", "FB47", - "qofdageshhebrew", "FB47", - "qofhatafpatah", "05E7_05B2", - "qofhatafpatahhebrew", "05E7_05B2", - "qofhatafsegol", "05E7_05B1", - "qofhatafsegolhebrew", "05E7_05B1", - "qofhebrew", "05E7", - "qofhiriq", "05E7_05B4", - "qofhiriqhebrew", "05E7_05B4", - "qofholam", "05E7_05B9", - "qofholamhebrew", "05E7_05B9", - "qofpatah", "05E7_05B7", - "qofpatahhebrew", "05E7_05B7", - "qofqamats", "05E7_05B8", - "qofqamatshebrew", "05E7_05B8", - "qofqubuts", "05E7_05BB", - "qofqubutshebrew", "05E7_05BB", - "qofsegol", "05E7_05B6", - "qofsegolhebrew", "05E7_05B6", - "qofsheva", "05E7_05B0", - "qofshevahebrew", "05E7_05B0", - "qoftsere", "05E7_05B5", - "qoftserehebrew", "05E7_05B5", - "qparen", "24AC", - "quarternote", "2669", - "qubuts", "05BB", - "qubuts18", "05BB", - "qubuts25", "05BB", - "qubuts31", "05BB", - "qubutshebrew", "05BB", - "qubutsnarrowhebrew", "05BB", - "qubutsquarterhebrew", "05BB", - "qubutswidehebrew", "05BB", - "question", "003F", - "questionarabic", "061F", - "questionarmenian", "055E", - "questiondown", "00BF", - "questiongreek", "037E", - "questionmonospace", "FF1F", - "quotedbl", "0022", - "quotedblbase", "201E", - "quotedblleft", "201C", - "quotedblmonospace", "FF02", - "quotedblprime", "301E", - "quotedblprimereversed", "301D", - "quotedblright", "201D", - "quoteleft", "2018", - "quoteleftreversed", "201B", - "quotereversed", "201B", - "quoteright", "2019", - "quoterightn", "0149", - "quotesinglbase", "201A", - "quotesingle", "0027", - "quotesinglemonospace", "FF07", - "r", "0072", - "raarmenian", "057C", - "rabengali", "09B0", - "racute", "0155", - "radeva", "0930", - "radical", "221A", - "radoverssquare", "33AE", - "radoverssquaredsquare", "33AF", - "radsquare", "33AD", - "rafe", "05BF", - "rafehebrew", "05BF", - "ragujarati", "0AB0", - "ragurmukhi", "0A30", - "rahiragana", "3089", - "rakatakana", "30E9", - "rakatakanahalfwidth", "FF97", - "ralowerdiagonalbengali", "09F1", - "ramiddlediagonalbengali", "09F0", - "ramshorn", "0264", - "ratio", "2236", - "rbopomofo", "3116", - "rcaron", "0159", - "rcedilla", "0157", - "rcircle", "24E1", - "rcommaaccent", "0157", - "rdblgrave", "0211", - "rdotaccent", "1E59", - "rdotbelow", "1E5B", - "rdotbelowmacron", "1E5D", - "referencemark", "203B", - "reflexsubset", "2286", - "reflexsuperset", "2287", - "registered", "00AE", - "reharabic", "0631", - "reharmenian", "0580", - "rehfinalarabic", "FEAE", - "rehiragana", "308C", - "rehyehaleflamarabic", "0631_FEF3_FE8E_0644", - "rekatakana", "30EC", - "rekatakanahalfwidth", "FF9A", - "resh", "05E8", - "reshdageshhebrew", "FB48", - "reshhatafpatah", "05E8_05B2", - "reshhatafpatahhebrew", "05E8_05B2", - "reshhatafsegol", "05E8_05B1", - "reshhatafsegolhebrew", "05E8_05B1", - "reshhebrew", "05E8", - "reshhiriq", "05E8_05B4", - "reshhiriqhebrew", "05E8_05B4", - "reshholam", "05E8_05B9", - "reshholamhebrew", "05E8_05B9", - "reshpatah", "05E8_05B7", - "reshpatahhebrew", "05E8_05B7", - "reshqamats", "05E8_05B8", - "reshqamatshebrew", "05E8_05B8", - "reshqubuts", "05E8_05BB", - "reshqubutshebrew", "05E8_05BB", - "reshsegol", "05E8_05B6", - "reshsegolhebrew", "05E8_05B6", - "reshsheva", "05E8_05B0", - "reshshevahebrew", "05E8_05B0", - "reshtsere", "05E8_05B5", - "reshtserehebrew", "05E8_05B5", - "reversedtilde", "223D", - "reviahebrew", "0597", - "reviamugrashhebrew", "0597", - "revlogicalnot", "2310", - "rfishhook", "027E", - "rfishhookreversed", "027F", - "rhabengali", "09DD", - "rhadeva", "095D", - "rho", "03C1", - "rhook", "027D", - "rhookturned", "027B", - "rhookturnedsuperior", "02B5", - "rhosymbolgreek", "03F1", - "rhotichookmod", "02DE", - "rieulacirclekorean", "3271", - "rieulaparenkorean", "3211", - "rieulcirclekorean", "3263", - "rieulhieuhkorean", "3140", - "rieulkiyeokkorean", "313A", - "rieulkiyeoksioskorean", "3169", - "rieulkorean", "3139", - "rieulmieumkorean", "313B", - "rieulpansioskorean", "316C", - "rieulparenkorean", "3203", - "rieulphieuphkorean", "313F", - "rieulpieupkorean", "313C", - "rieulpieupsioskorean", "316B", - "rieulsioskorean", "313D", - "rieulthieuthkorean", "313E", - "rieultikeutkorean", "316A", - "rieulyeorinhieuhkorean", "316D", - "rightangle", "221F", - "righttackbelowcmb", "0319", - "righttriangle", "22BF", - "rihiragana", "308A", - "rikatakana", "30EA", - "rikatakanahalfwidth", "FF98", - "ring", "02DA", - "ringbelowcmb", "0325", - "ringcmb", "030A", - "ringhalfleft", "02BF", - "ringhalfleftarmenian", "0559", - "ringhalfleftbelowcmb", "031C", - "ringhalfleftcentered", "02D3", - "ringhalfright", "02BE", - "ringhalfrightbelowcmb", "0339", - "ringhalfrightcentered", "02D2", - "rinvertedbreve", "0213", - "rittorusquare", "3351", - "rlinebelow", "1E5F", - "rlongleg", "027C", - "rlonglegturned", "027A", - "rmonospace", "FF52", - "rohiragana", "308D", - "rokatakana", "30ED", - "rokatakanahalfwidth", "FF9B", - "roruathai", "0E23", - "rparen", "24AD", - "rrabengali", "09DC", - "rradeva", "0931", - "rragurmukhi", "0A5C", - "rreharabic", "0691", - "rrehfinalarabic", "FB8D", - "rrvocalicbengali", "09E0", - "rrvocalicdeva", "0960", - "rrvocalicgujarati", "0AE0", - "rrvocalicvowelsignbengali", "09C4", - "rrvocalicvowelsigndeva", "0944", - "rrvocalicvowelsigngujarati", "0AC4", - "rtblock", "2590", - "rturned", "0279", - "rturnedsuperior", "02B4", - "ruhiragana", "308B", - "rukatakana", "30EB", - "rukatakanahalfwidth", "FF99", - "rupeemarkbengali", "09F2", - "rupeesignbengali", "09F3", - "ruthai", "0E24", - "rvocalicbengali", "098B", - "rvocalicdeva", "090B", - "rvocalicgujarati", "0A8B", - "rvocalicvowelsignbengali", "09C3", - "rvocalicvowelsigndeva", "0943", - "rvocalicvowelsigngujarati", "0AC3", - "s", "0073", - "sabengali", "09B8", - "sacute", "015B", - "sacutedotaccent", "1E65", - "sadarabic", "0635", - "sadeva", "0938", - "sadfinalarabic", "FEBA", - "sadinitialarabic", "FEBB", - "sadmedialarabic", "FEBC", - "sagujarati", "0AB8", - "sagurmukhi", "0A38", - "sahiragana", "3055", - "sakatakana", "30B5", - "sakatakanahalfwidth", "FF7B", - "sallallahoualayhewasallamarabic", "FDFA", - "samekh", "05E1", - "samekhdagesh", "FB41", - "samekhdageshhebrew", "FB41", - "samekhhebrew", "05E1", - "saraaathai", "0E32", - "saraaethai", "0E41", - "saraaimaimalaithai", "0E44", - "saraaimaimuanthai", "0E43", - "saraamthai", "0E33", - "saraathai", "0E30", - "saraethai", "0E40", - "saraiithai", "0E35", - "saraithai", "0E34", - "saraothai", "0E42", - "saraueethai", "0E37", - "sarauethai", "0E36", - "sarauthai", "0E38", - "sarauuthai", "0E39", - "sbopomofo", "3119", - "scaron", "0161", - "scarondotaccent", "1E67", - "scedilla", "015F", - "schwa", "0259", - "schwacyrillic", "04D9", - "schwadieresiscyrillic", "04DB", - "schwahook", "025A", - "scircle", "24E2", - "scircumflex", "015D", - "scommaaccent", "0219", - "sdotaccent", "1E61", - "sdotbelow", "1E63", - "sdotbelowdotaccent", "1E69", - "seagullbelowcmb", "033C", - "second", "2033", - "secondtonechinese", "02CA", - "section", "00A7", - "seenarabic", "0633", - "seenfinalarabic", "FEB2", - "seeninitialarabic", "FEB3", - "seenmedialarabic", "FEB4", - "segol", "05B6", - "segol13", "05B6", - "segol1f", "05B6", - "segol2c", "05B6", - "segolhebrew", "05B6", - "segolnarrowhebrew", "05B6", - "segolquarterhebrew", "05B6", - "segoltahebrew", "0592", - "segolwidehebrew", "05B6", - "seharmenian", "057D", - "sehiragana", "305B", - "sekatakana", "30BB", - "sekatakanahalfwidth", "FF7E", - "semicolon", "003B", - "semicolonarabic", "061B", - "semicolonmonospace", "FF1B", - "semicolonsmall", "FE54", - "semivoicedmarkkana", "309C", - "semivoicedmarkkanahalfwidth", "FF9F", - "sentisquare", "3322", - "sentosquare", "3323", - "seven", "0037", - "sevenarabic", "0667", - "sevenbengali", "09ED", - "sevencircle", "2466", - "sevencircleinversesansserif", "2790", - "sevendeva", "096D", - "seveneighths", "215E", - "sevengujarati", "0AED", - "sevengurmukhi", "0A6D", - "sevenhackarabic", "0667", - "sevenhangzhou", "3027", - "sevenideographicparen", "3226", - "seveninferior", "2087", - "sevenmonospace", "FF17", - "sevenparen", "247A", - "sevenperiod", "248E", - "sevenpersian", "06F7", - "sevenroman", "2176", - "sevensuperior", "2077", - "seventeencircle", "2470", - "seventeenparen", "2484", - "seventeenperiod", "2498", - "seventhai", "0E57", - "sfthyphen", "00AD", - "shaarmenian", "0577", - "shabengali", "09B6", - "shacyrillic", "0448", - "shaddaarabic", "0651", - "shaddadammaarabic", "FC61", - "shaddadammatanarabic", "FC5E", - "shaddafathaarabic", "FC60", - "shaddafathatanarabic", "0651_064B", - "shaddakasraarabic", "FC62", - "shaddakasratanarabic", "FC5F", - "shade", "2592", - "shadedark", "2593", - "shadelight", "2591", - "shademedium", "2592", - "shadeva", "0936", - "shagujarati", "0AB6", - "shagurmukhi", "0A36", - "shalshelethebrew", "0593", - "shbopomofo", "3115", - "shchacyrillic", "0449", - "sheenarabic", "0634", - "sheenfinalarabic", "FEB6", - "sheeninitialarabic", "FEB7", - "sheenmedialarabic", "FEB8", - "sheicoptic", "03E3", - "sheqel", "20AA", - "sheqelhebrew", "20AA", - "sheva", "05B0", - "sheva115", "05B0", - "sheva15", "05B0", - "sheva22", "05B0", - "sheva2e", "05B0", - "shevahebrew", "05B0", - "shevanarrowhebrew", "05B0", - "shevaquarterhebrew", "05B0", - "shevawidehebrew", "05B0", - "shhacyrillic", "04BB", - "shimacoptic", "03ED", - "shin", "05E9", - "shindagesh", "FB49", - "shindageshhebrew", "FB49", - "shindageshshindot", "FB2C", - "shindageshshindothebrew", "FB2C", - "shindageshsindot", "FB2D", - "shindageshsindothebrew", "FB2D", - "shindothebrew", "05C1", - "shinhebrew", "05E9", - "shinshindot", "FB2A", - "shinshindothebrew", "FB2A", - "shinsindot", "FB2B", - "shinsindothebrew", "FB2B", - "shook", "0282", - "sigma", "03C3", - "sigma1", "03C2", - "sigmafinal", "03C2", - "sigmalunatesymbolgreek", "03F2", - "sihiragana", "3057", - "sikatakana", "30B7", - "sikatakanahalfwidth", "FF7C", - "siluqhebrew", "05BD", - "siluqlefthebrew", "05BD", - "similar", "223C", - "sindothebrew", "05C2", - "siosacirclekorean", "3274", - "siosaparenkorean", "3214", - "sioscieuckorean", "317E", - "sioscirclekorean", "3266", - "sioskiyeokkorean", "317A", - "sioskorean", "3145", - "siosnieunkorean", "317B", - "siosparenkorean", "3206", - "siospieupkorean", "317D", - "siostikeutkorean", "317C", - "six", "0036", - "sixarabic", "0666", - "sixbengali", "09EC", - "sixcircle", "2465", - "sixcircleinversesansserif", "278F", - "sixdeva", "096C", - "sixgujarati", "0AEC", - "sixgurmukhi", "0A6C", - "sixhackarabic", "0666", - "sixhangzhou", "3026", - "sixideographicparen", "3225", - "sixinferior", "2086", - "sixmonospace", "FF16", - "sixparen", "2479", - "sixperiod", "248D", - "sixpersian", "06F6", - "sixroman", "2175", - "sixsuperior", "2076", - "sixteencircle", "246F", - "sixteencurrencydenominatorbengali", "09F9", - "sixteenparen", "2483", - "sixteenperiod", "2497", - "sixthai", "0E56", - "slash", "002F", - "slashmonospace", "FF0F", - "slong", "017F", - "slongdotaccent", "1E9B", - "smileface", "263A", - "smonospace", "FF53", - "sofpasuqhebrew", "05C3", - "softhyphen", "00AD", - "softsigncyrillic", "044C", - "sohiragana", "305D", - "sokatakana", "30BD", - "sokatakanahalfwidth", "FF7F", - "soliduslongoverlaycmb", "0338", - "solidusshortoverlaycmb", "0337", - "sorusithai", "0E29", - "sosalathai", "0E28", - "sosothai", "0E0B", - "sosuathai", "0E2A", - "space", "0020", - "spacehackarabic", "0020", - "spade", "2660", - "spadesuitblack", "2660", - "spadesuitwhite", "2664", - "sparen", "24AE", - "squarebelowcmb", "033B", - "squarecc", "33C4", - "squarecm", "339D", - "squarediagonalcrosshatchfill", "25A9", - "squarehorizontalfill", "25A4", - "squarekg", "338F", - "squarekm", "339E", - "squarekmcapital", "33CE", - "squareln", "33D1", - "squarelog", "33D2", - "squaremg", "338E", - "squaremil", "33D5", - "squaremm", "339C", - "squaremsquared", "33A1", - "squareorthogonalcrosshatchfill", "25A6", - "squareupperlefttolowerrightfill", "25A7", - "squareupperrighttolowerleftfill", "25A8", - "squareverticalfill", "25A5", - "squarewhitewithsmallblack", "25A3", - "srsquare", "33DB", - "ssabengali", "09B7", - "ssadeva", "0937", - "ssagujarati", "0AB7", - "ssangcieuckorean", "3149", - "ssanghieuhkorean", "3185", - "ssangieungkorean", "3180", - "ssangkiyeokkorean", "3132", - "ssangnieunkorean", "3165", - "ssangpieupkorean", "3143", - "ssangsioskorean", "3146", - "ssangtikeutkorean", "3138", - "sterling", "00A3", - "sterlingmonospace", "FFE1", - "strokelongoverlaycmb", "0336", - "strokeshortoverlaycmb", "0335", - "subset", "2282", - "subsetnotequal", "228A", - "subsetorequal", "2286", - "succeeds", "227B", - "suchthat", "220B", - "suhiragana", "3059", - "sukatakana", "30B9", - "sukatakanahalfwidth", "FF7D", - "sukunarabic", "0652", - "summation", "2211", - "sun", "263C", - "superset", "2283", - "supersetnotequal", "228B", - "supersetorequal", "2287", - "svsquare", "33DC", - "syouwaerasquare", "337C", - "t", "0074", - "tabengali", "09A4", - "tackdown", "22A4", - "tackleft", "22A3", - "tadeva", "0924", - "tagujarati", "0AA4", - "tagurmukhi", "0A24", - "taharabic", "0637", - "tahfinalarabic", "FEC2", - "tahinitialarabic", "FEC3", - "tahiragana", "305F", - "tahmedialarabic", "FEC4", - "taisyouerasquare", "337D", - "takatakana", "30BF", - "takatakanahalfwidth", "FF80", - "tatweelarabic", "0640", - "tau", "03C4", - "tav", "05EA", - "tavdages", "FB4A", - "tavdagesh", "FB4A", - "tavdageshhebrew", "FB4A", - "tavhebrew", "05EA", - "tbar", "0167", - "tbopomofo", "310A", - "tcaron", "0165", - "tccurl", "02A8", - "tcedilla", "0163", - "tcheharabic", "0686", - "tchehfinalarabic", "FB7B", - "tchehinitialarabic", "FB7C", - "tchehmedialarabic", "FB7D", - "tchehmeeminitialarabic", "FB7C_FEE4", - "tcircle", "24E3", - "tcircumflexbelow", "1E71", - "tcommaaccent", "0163", - "tdieresis", "1E97", - "tdotaccent", "1E6B", - "tdotbelow", "1E6D", - "tecyrillic", "0442", - "tedescendercyrillic", "04AD", - "teharabic", "062A", - "tehfinalarabic", "FE96", - "tehhahinitialarabic", "FCA2", - "tehhahisolatedarabic", "FC0C", - "tehinitialarabic", "FE97", - "tehiragana", "3066", - "tehjeeminitialarabic", "FCA1", - "tehjeemisolatedarabic", "FC0B", - "tehmarbutaarabic", "0629", - "tehmarbutafinalarabic", "FE94", - "tehmedialarabic", "FE98", - "tehmeeminitialarabic", "FCA4", - "tehmeemisolatedarabic", "FC0E", - "tehnoonfinalarabic", "FC73", - "tekatakana", "30C6", - "tekatakanahalfwidth", "FF83", - "telephone", "2121", - "telephoneblack", "260E", - "telishagedolahebrew", "05A0", - "telishaqetanahebrew", "05A9", - "tencircle", "2469", - "tenideographicparen", "3229", - "tenparen", "247D", - "tenperiod", "2491", - "tenroman", "2179", - "tesh", "02A7", - "tet", "05D8", - "tetdagesh", "FB38", - "tetdageshhebrew", "FB38", - "tethebrew", "05D8", - "tetsecyrillic", "04B5", - "tevirhebrew", "059B", - "tevirlefthebrew", "059B", - "thabengali", "09A5", - "thadeva", "0925", - "thagujarati", "0AA5", - "thagurmukhi", "0A25", - "thalarabic", "0630", - "thalfinalarabic", "FEAC", - "thanthakhatthai", "0E4C", - "theharabic", "062B", - "thehfinalarabic", "FE9A", - "thehinitialarabic", "FE9B", - "thehmedialarabic", "FE9C", - "thereexists", "2203", - "therefore", "2234", - "theta", "03B8", - "theta1", "03D1", - "thetasymbolgreek", "03D1", - "thieuthacirclekorean", "3279", - "thieuthaparenkorean", "3219", - "thieuthcirclekorean", "326B", - "thieuthkorean", "314C", - "thieuthparenkorean", "320B", - "thirteencircle", "246C", - "thirteenparen", "2480", - "thirteenperiod", "2494", - "thonangmonthothai", "0E11", - "thook", "01AD", - "thophuthaothai", "0E12", - "thorn", "00FE", - "thothahanthai", "0E17", - "thothanthai", "0E10", - "thothongthai", "0E18", - "thothungthai", "0E16", - "thousandcyrillic", "0482", - "thousandsseparatorarabic", "066C", - "thousandsseparatorpersian", "066C", - "three", "0033", - "threearabic", "0663", - "threebengali", "09E9", - "threecircle", "2462", - "threecircleinversesansserif", "278C", - "threedeva", "0969", - "threeeighths", "215C", - "threegujarati", "0AE9", - "threegurmukhi", "0A69", - "threehackarabic", "0663", - "threehangzhou", "3023", - "threeideographicparen", "3222", - "threeinferior", "2083", - "threemonospace", "FF13", - "threenumeratorbengali", "09F6", - "threeparen", "2476", - "threeperiod", "248A", - "threepersian", "06F3", - "threequarters", "00BE", - "threeroman", "2172", - "threesuperior", "00B3", - "threethai", "0E53", - "thzsquare", "3394", - "tihiragana", "3061", - "tikatakana", "30C1", - "tikatakanahalfwidth", "FF81", - "tikeutacirclekorean", "3270", - "tikeutaparenkorean", "3210", - "tikeutcirclekorean", "3262", - "tikeutkorean", "3137", - "tikeutparenkorean", "3202", - "tilde", "02DC", - "tildebelowcmb", "0330", - "tildecmb", "0303", - "tildecomb", "0303", - "tildedoublecmb", "0360", - "tildeoperator", "223C", - "tildeoverlaycmb", "0334", - "tildeverticalcmb", "033E", - "timescircle", "2297", - "tipehahebrew", "0596", - "tipehalefthebrew", "0596", - "tippigurmukhi", "0A70", - "titlocyrilliccmb", "0483", - "tiwnarmenian", "057F", - "tlinebelow", "1E6F", - "tmonospace", "FF54", - "toarmenian", "0569", - "tohiragana", "3068", - "tokatakana", "30C8", - "tokatakanahalfwidth", "FF84", - "tonebarextrahighmod", "02E5", - "tonebarextralowmod", "02E9", - "tonebarhighmod", "02E6", - "tonebarlowmod", "02E8", - "tonebarmidmod", "02E7", - "tonefive", "01BD", - "tonesix", "0185", - "tonetwo", "01A8", - "tonos", "0384", - "tonsquare", "3327", - "topatakthai", "0E0F", - "tortoiseshellbracketleft", "3014", - "tortoiseshellbracketleftsmall", "FE5D", - "tortoiseshellbracketleftvertical", "FE39", - "tortoiseshellbracketright", "3015", - "tortoiseshellbracketrightsmall", "FE5E", - "tortoiseshellbracketrightvertical", "FE3A", - "totaothai", "0E15", - "tpalatalhook", "01AB", - "tparen", "24AF", - "trademark", "2122", - "tretroflexhook", "0288", - "triagdn", "25BC", - "triaglf", "25C4", - "triagrt", "25BA", - "triagup", "25B2", - "ts", "02A6", - "tsadi", "05E6", - "tsadidagesh", "FB46", - "tsadidageshhebrew", "FB46", - "tsadihebrew", "05E6", - "tsecyrillic", "0446", - "tsere", "05B5", - "tsere12", "05B5", - "tsere1e", "05B5", - "tsere2b", "05B5", - "tserehebrew", "05B5", - "tserenarrowhebrew", "05B5", - "tserequarterhebrew", "05B5", - "tserewidehebrew", "05B5", - "tshecyrillic", "045B", - "ttabengali", "099F", - "ttadeva", "091F", - "ttagujarati", "0A9F", - "ttagurmukhi", "0A1F", - "tteharabic", "0679", - "ttehfinalarabic", "FB67", - "ttehinitialarabic", "FB68", - "ttehmedialarabic", "FB69", - "tthabengali", "09A0", - "tthadeva", "0920", - "tthagujarati", "0AA0", - "tthagurmukhi", "0A20", - "tturned", "0287", - "tuhiragana", "3064", - "tukatakana", "30C4", - "tukatakanahalfwidth", "FF82", - "tusmallhiragana", "3063", - "tusmallkatakana", "30C3", - "tusmallkatakanahalfwidth", "FF6F", - "twelvecircle", "246B", - "twelveparen", "247F", - "twelveperiod", "2493", - "twelveroman", "217B", - "twentycircle", "2473", - "twentyhangzhou", "5344", - "twentyparen", "2487", - "twentyperiod", "249B", - "two", "0032", - "twoarabic", "0662", - "twobengali", "09E8", - "twocircle", "2461", - "twocircleinversesansserif", "278B", - "twodeva", "0968", - "twodotenleader", "2025", - "twodotleader", "2025", - "twodotleadervertical", "FE30", - "twogujarati", "0AE8", - "twogurmukhi", "0A68", - "twohackarabic", "0662", - "twohangzhou", "3022", - "twoideographicparen", "3221", - "twoinferior", "2082", - "twomonospace", "FF12", - "twonumeratorbengali", "09F5", - "twoparen", "2475", - "twoperiod", "2489", - "twopersian", "06F2", - "tworoman", "2171", - "twostroke", "01BB", - "twosuperior", "00B2", - "twothai", "0E52", - "twothirds", "2154", - "u", "0075", - "uacute", "00FA", - "ubar", "0289", - "ubengali", "0989", - "ubopomofo", "3128", - "ubreve", "016D", - "ucaron", "01D4", - "ucircle", "24E4", - "ucircumflex", "00FB", - "ucircumflexbelow", "1E77", - "ucyrillic", "0443", - "udattadeva", "0951", - "udblacute", "0171", - "udblgrave", "0215", - "udeva", "0909", - "udieresis", "00FC", - "udieresisacute", "01D8", - "udieresisbelow", "1E73", - "udieresiscaron", "01DA", - "udieresiscyrillic", "04F1", - "udieresisgrave", "01DC", - "udieresismacron", "01D6", - "udotbelow", "1EE5", - "ugrave", "00F9", - "ugujarati", "0A89", - "ugurmukhi", "0A09", - "uhiragana", "3046", - "uhookabove", "1EE7", - "uhorn", "01B0", - "uhornacute", "1EE9", - "uhorndotbelow", "1EF1", - "uhorngrave", "1EEB", - "uhornhookabove", "1EED", - "uhorntilde", "1EEF", - "uhungarumlaut", "0171", - "uhungarumlautcyrillic", "04F3", - "uinvertedbreve", "0217", - "ukatakana", "30A6", - "ukatakanahalfwidth", "FF73", - "ukcyrillic", "0479", - "ukorean", "315C", - "umacron", "016B", - "umacroncyrillic", "04EF", - "umacrondieresis", "1E7B", - "umatragurmukhi", "0A41", - "umonospace", "FF55", - "underscore", "005F", - "underscoredbl", "2017", - "underscoremonospace", "FF3F", - "underscorevertical", "FE33", - "underscorewavy", "FE4F", - "union", "222A", - "universal", "2200", - "uogonek", "0173", - "uparen", "24B0", - "upblock", "2580", - "upperdothebrew", "05C4", - "upsilon", "03C5", - "upsilondieresis", "03CB", - "upsilondieresistonos", "03B0", - "upsilonlatin", "028A", - "upsilontonos", "03CD", - "uptackbelowcmb", "031D", - "uptackmod", "02D4", - "uragurmukhi", "0A73", - "uring", "016F", - "ushortcyrillic", "045E", - "usmallhiragana", "3045", - "usmallkatakana", "30A5", - "usmallkatakanahalfwidth", "FF69", - "ustraightcyrillic", "04AF", - "ustraightstrokecyrillic", "04B1", - "utilde", "0169", - "utildeacute", "1E79", - "utildebelow", "1E75", - "uubengali", "098A", - "uudeva", "090A", - "uugujarati", "0A8A", - "uugurmukhi", "0A0A", - "uumatragurmukhi", "0A42", - "uuvowelsignbengali", "09C2", - "uuvowelsigndeva", "0942", - "uuvowelsigngujarati", "0AC2", - "uvowelsignbengali", "09C1", - "uvowelsigndeva", "0941", - "uvowelsigngujarati", "0AC1", - "v", "0076", - "vadeva", "0935", - "vagujarati", "0AB5", - "vagurmukhi", "0A35", - "vakatakana", "30F7", - "vav", "05D5", - "vavdagesh", "FB35", - "vavdagesh65", "FB35", - "vavdageshhebrew", "FB35", - "vavhebrew", "05D5", - "vavholam", "FB4B", - "vavholamhebrew", "FB4B", - "vavvavhebrew", "05F0", - "vavyodhebrew", "05F1", - "vcircle", "24E5", - "vdotbelow", "1E7F", - "vecyrillic", "0432", - "veharabic", "06A4", - "vehfinalarabic", "FB6B", - "vehinitialarabic", "FB6C", - "vehmedialarabic", "FB6D", - "vekatakana", "30F9", - "venus", "2640", - "verticalbar", "007C", - "verticallineabovecmb", "030D", - "verticallinebelowcmb", "0329", - "verticallinelowmod", "02CC", - "verticallinemod", "02C8", - "vewarmenian", "057E", - "vhook", "028B", - "vikatakana", "30F8", - "viramabengali", "09CD", - "viramadeva", "094D", - "viramagujarati", "0ACD", - "visargabengali", "0983", - "visargadeva", "0903", - "visargagujarati", "0A83", - "vmonospace", "FF56", - "voarmenian", "0578", - "voicediterationhiragana", "309E", - "voicediterationkatakana", "30FE", - "voicedmarkkana", "309B", - "voicedmarkkanahalfwidth", "FF9E", - "vokatakana", "30FA", - "vparen", "24B1", - "vtilde", "1E7D", - "vturned", "028C", - "vuhiragana", "3094", - "vukatakana", "30F4", - "w", "0077", - "wacute", "1E83", - "waekorean", "3159", - "wahiragana", "308F", - "wakatakana", "30EF", - "wakatakanahalfwidth", "FF9C", - "wakorean", "3158", - "wasmallhiragana", "308E", - "wasmallkatakana", "30EE", - "wattosquare", "3357", - "wavedash", "301C", - "wavyunderscorevertical", "FE34", - "wawarabic", "0648", - "wawfinalarabic", "FEEE", - "wawhamzaabovearabic", "0624", - "wawhamzaabovefinalarabic", "FE86", - "wbsquare", "33DD", - "wcircle", "24E6", - "wcircumflex", "0175", - "wdieresis", "1E85", - "wdotaccent", "1E87", - "wdotbelow", "1E89", - "wehiragana", "3091", - "weierstrass", "2118", - "wekatakana", "30F1", - "wekorean", "315E", - "weokorean", "315D", - "wgrave", "1E81", - "whitebullet", "25E6", - "whitecircle", "25CB", - "whitecircleinverse", "25D9", - "whitecornerbracketleft", "300E", - "whitecornerbracketleftvertical", "FE43", - "whitecornerbracketright", "300F", - "whitecornerbracketrightvertical", "FE44", - "whitediamond", "25C7", - "whitediamondcontainingblacksmalldiamond", "25C8", - "whitedownpointingsmalltriangle", "25BF", - "whitedownpointingtriangle", "25BD", - "whiteleftpointingsmalltriangle", "25C3", - "whiteleftpointingtriangle", "25C1", - "whitelenticularbracketleft", "3016", - "whitelenticularbracketright", "3017", - "whiterightpointingsmalltriangle", "25B9", - "whiterightpointingtriangle", "25B7", - "whitesmallsquare", "25AB", - "whitesmilingface", "263A", - "whitesquare", "25A1", - "whitestar", "2606", - "whitetelephone", "260F", - "whitetortoiseshellbracketleft", "3018", - "whitetortoiseshellbracketright", "3019", - "whiteuppointingsmalltriangle", "25B5", - "whiteuppointingtriangle", "25B3", - "wihiragana", "3090", - "wikatakana", "30F0", - "wikorean", "315F", - "wmonospace", "FF57", - "wohiragana", "3092", - "wokatakana", "30F2", - "wokatakanahalfwidth", "FF66", - "won", "20A9", - "wonmonospace", "FFE6", - "wowaenthai", "0E27", - "wparen", "24B2", - "wring", "1E98", - "wsuperior", "02B7", - "wturned", "028D", - "wynn", "01BF", - "x", "0078", - "xabovecmb", "033D", - "xbopomofo", "3112", - "xcircle", "24E7", - "xdieresis", "1E8D", - "xdotaccent", "1E8B", - "xeharmenian", "056D", - "xi", "03BE", - "xmonospace", "FF58", - "xparen", "24B3", - "xsuperior", "02E3", - "y", "0079", - "yaadosquare", "334E", - "yabengali", "09AF", - "yacute", "00FD", - "yadeva", "092F", - "yaekorean", "3152", - "yagujarati", "0AAF", - "yagurmukhi", "0A2F", - "yahiragana", "3084", - "yakatakana", "30E4", - "yakatakanahalfwidth", "FF94", - "yakorean", "3151", - "yamakkanthai", "0E4E", - "yasmallhiragana", "3083", - "yasmallkatakana", "30E3", - "yasmallkatakanahalfwidth", "FF6C", - "yatcyrillic", "0463", - "ycircle", "24E8", - "ycircumflex", "0177", - "ydieresis", "00FF", - "ydotaccent", "1E8F", - "ydotbelow", "1EF5", - "yeharabic", "064A", - "yehbarreearabic", "06D2", - "yehbarreefinalarabic", "FBAF", - "yehfinalarabic", "FEF2", - "yehhamzaabovearabic", "0626", - "yehhamzaabovefinalarabic", "FE8A", - "yehhamzaaboveinitialarabic", "FE8B", - "yehhamzaabovemedialarabic", "FE8C", - "yehinitialarabic", "FEF3", - "yehmedialarabic", "FEF4", - "yehmeeminitialarabic", "FCDD", - "yehmeemisolatedarabic", "FC58", - "yehnoonfinalarabic", "FC94", - "yehthreedotsbelowarabic", "06D1", - "yekorean", "3156", - "yen", "00A5", - "yenmonospace", "FFE5", - "yeokorean", "3155", - "yeorinhieuhkorean", "3186", - "yerahbenyomohebrew", "05AA", - "yerahbenyomolefthebrew", "05AA", - "yericyrillic", "044B", - "yerudieresiscyrillic", "04F9", - "yesieungkorean", "3181", - "yesieungpansioskorean", "3183", - "yesieungsioskorean", "3182", - "yetivhebrew", "059A", - "ygrave", "1EF3", - "yhook", "01B4", - "yhookabove", "1EF7", - "yiarmenian", "0575", - "yicyrillic", "0457", - "yikorean", "3162", - "yinyang", "262F", - "yiwnarmenian", "0582", - "ymonospace", "FF59", - "yod", "05D9", - "yoddagesh", "FB39", - "yoddageshhebrew", "FB39", - "yodhebrew", "05D9", - "yodyodhebrew", "05F2", - "yodyodpatahhebrew", "FB1F", - "yohiragana", "3088", - "yoikorean", "3189", - "yokatakana", "30E8", - "yokatakanahalfwidth", "FF96", - "yokorean", "315B", - "yosmallhiragana", "3087", - "yosmallkatakana", "30E7", - "yosmallkatakanahalfwidth", "FF6E", - "yotgreek", "03F3", - "yoyaekorean", "3188", - "yoyakorean", "3187", - "yoyakthai", "0E22", - "yoyingthai", "0E0D", - "yparen", "24B4", - "ypogegrammeni", "037A", - "ypogegrammenigreekcmb", "0345", - "yr", "01A6", - "yring", "1E99", - "ysuperior", "02B8", - "ytilde", "1EF9", - "yturned", "028E", - "yuhiragana", "3086", - "yuikorean", "318C", - "yukatakana", "30E6", - "yukatakanahalfwidth", "FF95", - "yukorean", "3160", - "yusbigcyrillic", "046B", - "yusbigiotifiedcyrillic", "046D", - "yuslittlecyrillic", "0467", - "yuslittleiotifiedcyrillic", "0469", - "yusmallhiragana", "3085", - "yusmallkatakana", "30E5", - "yusmallkatakanahalfwidth", "FF6D", - "yuyekorean", "318B", - "yuyeokorean", "318A", - "yyabengali", "09DF", - "yyadeva", "095F", - "z", "007A", - "zaarmenian", "0566", - "zacute", "017A", - "zadeva", "095B", - "zagurmukhi", "0A5B", - "zaharabic", "0638", - "zahfinalarabic", "FEC6", - "zahinitialarabic", "FEC7", - "zahiragana", "3056", - "zahmedialarabic", "FEC8", - "zainarabic", "0632", - "zainfinalarabic", "FEB0", - "zakatakana", "30B6", - "zaqefgadolhebrew", "0595", - "zaqefqatanhebrew", "0594", - "zarqahebrew", "0598", - "zayin", "05D6", - "zayindagesh", "FB36", - "zayindageshhebrew", "FB36", - "zayinhebrew", "05D6", - "zbopomofo", "3117", - "zcaron", "017E", - "zcircle", "24E9", - "zcircumflex", "1E91", - "zcurl", "0291", - "zdot", "017C", - "zdotaccent", "017C", - "zdotbelow", "1E93", - "zecyrillic", "0437", - "zedescendercyrillic", "0499", - "zedieresiscyrillic", "04DF", - "zehiragana", "305C", - "zekatakana", "30BC", - "zero", "0030", - "zeroarabic", "0660", - "zerobengali", "09E6", - "zerodeva", "0966", - "zerogujarati", "0AE6", - "zerogurmukhi", "0A66", - "zerohackarabic", "0660", - "zeroinferior", "2080", - "zeromonospace", "FF10", - "zeropersian", "06F0", - "zerosuperior", "2070", - "zerothai", "0E50", - "zerowidthjoiner", "FEFF", - "zerowidthnonjoiner", "200C", - "zerowidthspace", "200B", - "zeta", "03B6", - "zhbopomofo", "3113", - "zhearmenian", "056A", - "zhebrevecyrillic", "04C2", - "zhecyrillic", "0436", - "zhedescendercyrillic", "0497", - "zhedieresiscyrillic", "04DD", - "zihiragana", "3058", - "zikatakana", "30B8", - "zinorhebrew", "05AE", - "zlinebelow", "1E95", - "zmonospace", "FF5A", - "zohiragana", "305E", - "zokatakana", "30BE", - "zparen", "24B5", - "zretroflexhook", "0290", - "zstroke", "01B6", - "zuhiragana", "305A", - "zukatakana", "30BA", -); - - -my $prog = $0; -$prog =~ s@.*/@@; - -my $groff_sys_fontdir = "/usr/share/groff/1.19.2/font"; - -use Getopt::Std; -getopts('a:d:e:i:mnsvx'); - -our ($opt_a, $opt_d, $opt_e, $opt_i, $opt_m, $opt_n, $opt_s, $opt_v, $opt_x); - -if ($opt_v) { - print "GNU afmtodit (groff) version 1.19.2\n"; - exit 0; -} - -if ($#ARGV != 2) { - die "usage: $prog [-mnsvx] [-a angle] [-d DESC] [-e encoding]\n" . - " [-i n] afmfile mapfile font\n"; -} - -my $afm = $ARGV[0]; -my $map = $ARGV[1]; -my $font = $ARGV[2]; -my $desc = $opt_d || "DESC"; -my $sys_map = $groff_sys_fontdir . "/devps/generate/" . $map; -my $sys_desc = $groff_sys_fontdir . "/devps/" . $desc; - -# read the afm file - -my $psname; -my $italic_angle = 0; -my (@kern1, @kern2, @kernx); -my (%italic_correction, %left_italic_correction); -my %subscript_correction; -# my %ligs -my %ligatures; -my (@encoding, %in_encoding); -my (%width, %height, %depth); -my (%left_side_bearing, %right_side_bearing); - -open(AFM, $afm) || die "$prog: can't open \`$ARGV[0]': $!\n"; - -while () { - chop; - my @field = split(' '); - next if $#field < 0; - if ($field[0] eq "FontName") { - $psname = $field[1]; - } - elsif($field[0] eq "ItalicAngle") { - $italic_angle = -$field[1]; - } - elsif ($field[0] eq "KPX") { - if ($#field == 3) { - push(@kern1, $field[1]); - push(@kern2, $field[2]); - push(@kernx, $field[3]); - } - } - elsif ($field[0] eq "italicCorrection") { - $italic_correction{$field[1]} = $field[2]; - } - elsif ($field[0] eq "leftItalicCorrection") { - $left_italic_correction{$field[1]} = $field[2]; - } - elsif ($field[0] eq "subscriptCorrection") { - $subscript_correction{$field[1]} = $field[2]; - } - elsif ($field[0] eq "StartCharMetrics") { - while () { - @field = split(' '); - next if $#field < 0; - last if ($field[0] eq "EndCharMetrics"); - if ($field[0] eq "C") { - my $w; - my $wx = 0; - my $n = ""; -# %ligs = (); - my $lly = 0; - my $ury = 0; - my $llx = 0; - my $urx = 0; - my $c = $field[1]; - my $i = 2; - while ($i <= $#field) { - if ($field[$i] eq "WX") { - $w = $field[$i + 1]; - $i += 2; - } - elsif ($field[$i] eq "N") { - $n = $field[$i + 1]; - $i += 2; - } - elsif ($field[$i] eq "B") { - $llx = $field[$i + 1]; - $lly = $field[$i + 2]; - $urx = $field[$i + 3]; - $ury = $field[$i + 4]; - $i += 5; - } -# elsif ($field[$i] eq "L") { -# $ligs{$field[$i + 2]} = $field[$i + 1]; -# $i += 3; -# } - else { - while ($i <= $#field && $field[$i] ne ";") { - $i++; - } - $i++; - } - } - if (!$opt_e && $c != -1) { - $encoding[$c] = $n; - $in_encoding{$n} = 1; - } - $width{$n} = $w; - $height{$n} = $ury; - $depth{$n} = -$lly; - $left_side_bearing{$n} = -$llx; - $right_side_bearing{$n} = $urx - $w; -# while ((my $lig, my $glyph2) = each %ligs) { -# $ligatures{$lig} = $n . " " . $glyph2; -# } - } - } - } -} -close(AFM); - -# read the DESC file - -my ($sizescale, $resolution, $unitwidth); -$sizescale = 1; - -open(DESC, $desc) || open(DESC, $sys_desc) || - die "$prog: can't open \`$desc' or \`$sys_desc': $!\n"; -while () { - next if /^#/; - chop; - my @field = split(' '); - next if $#field < 0; - last if $field[0] eq "charset"; - if ($field[0] eq "res") { - $resolution = $field[1]; - } - elsif ($field[0] eq "unitwidth") { - $unitwidth = $field[1]; - } - elsif ($field[0] eq "sizescale") { - $sizescale = $field[1]; - } -} -close(DESC); - -if ($opt_e) { - # read the encoding file - - my $sys_opt_e = $groff_sys_fontdir . "/devps/" . $opt_e; - open(ENCODING, $opt_e) || open(ENCODING, $sys_opt_e) || - die "$prog: can't open \`$opt_e' or \`$sys_opt_e': $!\n"; - while () { - next if /^#/; - chop; - my @field = split(' '); - next if $#field < 0; - if ($#field == 1) { - if ($field[1] >= 0 && defined $width{$field[0]}) { - $encoding[$field[1]] = $field[0]; - $in_encoding{$field[0]} = 1; - } - } - } - close(ENCODING); -} - -# read the map file - -my (%nmap, %map); - -open(MAP, $map) || open(MAP, $sys_map) || - die "$prog: can't open \`$map' or \`$sys_map': $!\n"; -while () { - next if /^#/; - chop; - my @field = split(' '); - next if $#field < 0; - if ($#field == 1) { - if ($field[1] eq "space") { - # The PostScript character "space" is automatically mapped - # to the groff character "space"; this is for grops. - warn "you are not allowed to map to " . - "the groff character \`space'"; - } - elsif ($field[0] eq "space") { - warn "you are not allowed to map " . - "the PostScript character \`space'"; - } - else { - $nmap{$field[0]} += 0; - $map{$field[0], $nmap{$field[0]}} = $field[1]; - $nmap{$field[0]} += 1; - - # There is more then one way to make a PS glyph name; - # let us try unicode names with `uni' and `u' prefixes. - my $utmp = $AGL_to_unicode{$field[0]}; - if (defined $utmp && $utmp =~ /^[0-9A-F]{4}$/) { - foreach my $unicodepsname ("uni" . $utmp, "u" . $utmp) { - $nmap{$unicodepsname} += 0; - $map{$unicodepsname, $nmap{$unicodepsname}} = $field[1]; - $nmap{$unicodepsname} += 1; - } - } - } - } -} -close(MAP); - -$italic_angle = $opt_a if $opt_a; - - -if (!$opt_x) { - my %mapped; - my $i = ($#encoding > 256) ? ($#encoding + 1) : 256; - while (my $ch = each %width) { - # add unencoded characters - if (!$in_encoding{$ch}) { - $encoding[$i] = $ch; - $i++; - } - if ($nmap{$ch}) { - for (my $j = 0; $j < $nmap{$ch}; $j++) { - if (defined $mapped{$map{$ch, $j}}) { - warn "both $mapped{$map{$ch, $j}} and $ch " . - "map to $map{$ch, $j}"; - } - else { - $mapped{$map{$ch, $j}} = $ch; - } - } - } - else { - my $u = ""; # the resulting groff glyph name - my $ucomp = ""; # Unicode string before decomposition - my $utmp = ""; # temporary value - my $component = ""; - my $nv = 0; - - # Step 1: - # Drop all characters from the glyph name starting with the - # first occurrence of a period (U+002E FULL STOP), if any. - # ?? We avoid mapping of glyphs with periods, since they are - # likely to be variant glyphs, leading to a `many ps glyphs -- - # one groff glyph' conflict. - # - # If multiple glyphs in the font represent the same character - # in the Unicode standard, as do `A' and `A.swash', for example, - # they can be differentiated by using the same base name with - # different suffixes. This suffix (the part of glyph name that - # follows the first period) does not participate in the - # computation of a character sequence. It can be used by font - # designers to indicate some characteristics of the glyph. The - # suffix may contain periods or any other permitted characters. - # Small cap A, for example, could be named `uni0041.sc' or `A.sc'. - - next if $ch =~ /\./; - - # Step 2: - # Split the remaining string into a sequence of components, - # using the underscore character (U+005F LOW LINE) as the - # delimiter. - - while ($ch =~ /([^_]+)/g) { - $component = $1; - - # Step 3: - # Map each component to a character string according to the - # procedure below: - # - # * If the component is in the Adobe Glyph List, then map - # it to the corresponding character in that list. - - $utmp = $AGL_to_unicode{$component}; - if ($utmp) { - $utmp = "U+" . $utmp; - } - - # * Otherwise, if the component is of the form `uni' - # (U+0075 U+006E U+0069) followed by a sequence of - # uppercase hexadecimal digits (0 .. 9, A .. F, i.e., - # U+0030 .. U+0039, U+0041 .. U+0046), the length of - # that sequence is a multiple of four, and each group of - # four digits represents a number in the set {0x0000 .. - # 0xD7FF, 0xE000 .. 0xFFFF}, then interpret each such - # number as a Unicode scalar value and map the component - # to the string made of those scalar values. - - elsif ($component =~ /^uni([0-9A-F]{4})+$/) { - while ($component =~ /([0-9A-F]{4})/g) { - $nv = hex("0x" . $1); - if ($nv <= 0xD7FF || $nv >= 0xE000) { - $utmp .= "U+" . $1; - } - else { - $utmp = ""; - last; - } - } - } - - # * Otherwise, if the component is of the form `u' (U+0075) - # followed by a sequence of four to six uppercase - # hexadecimal digits {0 .. 9, A .. F} (U+0030 .. U+0039, - # U+0041 .. U+0046), and those digits represent a number - # in {0x0000 .. 0xD7FF, 0xE000 .. 0x10FFFF}, then - # interpret this number as a Unicode scalar value and map - # the component to the string made of this scalar value. - - elsif ($component =~ /^u([0-9A-F]{4,6})$/) { - $nv = hex("0x" . $1); - if ($nv <= 0xD7FF || ($nv >= 0xE000 && $nv <= 0x10FFFF)) { - $utmp .= "U+" . $1; - } - } - - # Finally, concatenate those strings; the result is the - # character string to which the glyph name is mapped. - - $ucomp .= $utmp if $utmp; - } - - # Unicode decomposition - while ($ucomp =~ /([0-9A-F]{4,6})/g) { - $component = $1; - $utmp = $unicode_decomposed{$component}; - $u .= "_" . ($utmp ? $utmp : $component); - } - $u =~ s/^_/u/; - if ($u) { - if (defined $mapped{$u}) { - warn "both $mapped{$u} and $ch map to $u"; - } - else { - $mapped{$u} = $ch; - } - $nmap{$ch} += 1; - $map{$ch, "0"} = $u; - } - } - } -} - -# Check explicitly for groff's standard ligatures -- many afm files don't -# have proper `L' entries. - -my %default_ligatures = ( - "fi", "f i", - "fl", "f l", - "ff", "f f", - "ffi", "ff i", - "ffl", "ff l", -); - -while (my ($lig, $components) = each %default_ligatures) { - if (defined $width{$lig} && !defined $ligatures{$lig}) { - $ligatures{$lig} = $components; - } -} - -# print it all out - -open(FONT, ">$font") || die "$prog: can't open \`$font' for output: $!\n"; -select(FONT); - -print("name $font\n"); -print("internalname $psname\n") if $psname; -print("special\n") if $opt_s; -printf("slant %g\n", $italic_angle) if $italic_angle != 0; -printf("spacewidth %d\n", conv($width{"space"})) if defined $width{"space"}; - -if ($opt_e) { - my $e = $opt_e; - $e =~ s@.*/@@; - print("encoding $e\n"); -} - -if (!$opt_n && %ligatures) { - print("ligatures"); - while (my $lig = each %ligatures) { - print(" $lig"); - } - print(" 0\n"); -} - -if ($#kern1 >= 0) { - print("kernpairs\n"); - - for (my $i = 0; $i <= $#kern1; $i++) { - my $c1 = $kern1[$i]; - my $c2 = $kern2[$i]; - if ($nmap{$c1} != 0 && $nmap{$c2} != 0) { - for (my $j = 0; $j < $nmap{$c1}; $j++) { - for (my $k = 0; $k < $nmap{$c2}; $k++) { - if ($kernx[$i] != 0) { - printf("%s %s %d\n", - $map{$c1, $j}, - $map{$c2, $k}, - conv($kernx[$i])); - } - } - } - } - } -} - -my ($asc_boundary, $desc_boundary, $xheight, $slant); - -# characters not shorter than asc_boundary are considered to have ascenders - -$asc_boundary = 0; -$asc_boundary = $height{"t"} if defined $height{"t"}; -$asc_boundary -= 1; - -# likewise for descenders - -$desc_boundary = 0; -$desc_boundary = $depth{"g"} if defined $depth{"g"}; -$desc_boundary = $depth{"j"} if defined $depth{"g"} && $depth{"j"} < $desc_boundary; -$desc_boundary = $depth{"p"} if defined $depth{"p"} && $depth{"p"} < $desc_boundary; -$desc_boundary = $depth{"q"} if defined $depth{"q"} && $depth{"q"} < $desc_boundary; -$desc_boundary = $depth{"y"} if defined $depth{"y"} && $depth{"y"} < $desc_boundary; -$desc_boundary -= 1; - -if (defined $height{"x"}) { - $xheight = $height{"x"}; -} -elsif (defined $height{"alpha"}) { - $xheight = $height{"alpha"}; -} -else { - $xheight = 450; -} - -$italic_angle = $italic_angle*3.14159265358979323846/180.0; -$slant = sin($italic_angle)/cos($italic_angle); -$slant = 0 if $slant < 0; - -print("charset\n"); -for (my $i = 0; $i <= $#encoding; $i++) { - my $ch = $encoding[$i]; - if (defined $ch && $ch ne "" && $ch ne "space") { - $map{$ch, "0"} = "---" if !defined $nmap{$ch} || $nmap{$ch} == 0; - my $type = 0; - my $h = $height{$ch}; - $h = 0 if $h < 0; - my $d = $depth{$ch}; - $d = 0 if $d < 0; - $type = 1 if $d >= $desc_boundary; - $type += 2 if $h >= $asc_boundary; - printf("%s\t%d", $map{$ch, "0"}, conv($width{$ch})); - my $italic_correction = 0; - my $left_math_fit = 0; - my $subscript_correction = 0; - if (defined $opt_i) { - $italic_correction = $right_side_bearing{$ch} + $opt_i; - $italic_correction = 0 if $italic_correction < 0; - $subscript_correction = $slant * $xheight * .8; - $subscript_correction = $italic_correction if - $subscript_correction > $italic_correction; - $left_math_fit = $left_side_bearing{$ch} + $opt_i; - if (defined $opt_m) { - $left_math_fit = 0 if $left_math_fit < 0; - } - } - if (defined $italic_correction{$ch}) { - $italic_correction = $italic_correction{$ch}; - } - if (defined $left_italic_correction{$ch}) { - $left_math_fit = $left_italic_correction{$ch}; - } - if (defined $subscript_correction{$ch}) { - $subscript_correction = $subscript_correction{$ch}; - } - if ($subscript_correction != 0) { - printf(",%d,%d", conv($h), conv($d)); - printf(",%d,%d,%d", conv($italic_correction), - conv($left_math_fit), - conv($subscript_correction)); - } - elsif ($left_math_fit != 0) { - printf(",%d,%d", conv($h), conv($d)); - printf(",%d,%d", conv($italic_correction), - conv($left_math_fit)); - } - elsif ($italic_correction != 0) { - printf(",%d,%d", conv($h), conv($d)); - printf(",%d", conv($italic_correction)); - } - elsif ($d != 0) { - printf(",%d,%d", conv($h), conv($d)); - } - else { - # always put the height in to stop groff guessing - printf(",%d", conv($h)); - } - printf("\t%d", $type); - printf("\t%d\t%s\n", $i, $ch); - if (defined $nmap{$ch}) { - for (my $j = 1; $j < $nmap{$ch}; $j++) { - printf("%s\t\"\n", $map{$ch, $j}); - } - } - } - if (defined $ch && $ch eq "space" && defined $width{"space"}) { - printf("space\t%d\t0\t%d\tspace\n", conv($width{"space"}), $i); - } -} - -sub conv { - $_[0]*$unitwidth*$resolution/(72*1000*$sizescale) + ($_[0] < 0 ? -.5 : .5); -} diff --git a/gen/usr/bin/eqn2graph b/gen/usr/bin/eqn2graph deleted file mode 100755 index 0fa504a..0000000 --- a/gen/usr/bin/eqn2graph +++ /dev/null @@ -1,91 +0,0 @@ -#! /bin/sh -# -# eqn2graph -- compile EQN equation descriptions to bitmap images -# -# by Eric S. Raymond , July 2002 -# -# In Unixland, the magic is in knowing what to string together... -# -# Take an eqn equation on stdin, emit cropped bitmap on stdout. -# The pic markup should *not* be wrapped in .EQ/.EN, this script will do that. -# A -U option on the command line enables gpic/groff "unsafe" mode. -# A -format FOO option changes the image output format to any format -# supported by convert(1). All other options are passed to convert(1). -# The default format is PNG. -# -# This is separate from pic2graph because pic processing has some weird -# clipping effect on the output, mangling equations that are very wide -# or deep. Besides, this tool can supply its own delimiters. -# - -# Requires the groff suite and the ImageMagick tools. Both are open source. -# This code is released to the public domain. -# -# Here are the assumptions behind the option processing: -# -# 1. None of the options of eqn(1) are relevant. -# -# 2. Only the -U option of groff(1) is relevant. -# -# 3. Many options of convert(1) are potentially relevant, (especially -# -density, -interlace, -transparency, -border, and -comment). -# -# Thus, we pass -U to groff(1), and everything else to convert(1). -# -# $Id: eqn2graph.sh,v 1.5 2005/05/18 07:03:06 wl Exp $ -# -groff_opts="" -convert_opts="" -format="png" - -while [ "$1" ] -do - case $1 in - -unsafe) - groff_opts="-U";; - -format) - format=$2 - shift;; - -v | --version) - echo "GNU eqn2graph (groff) version 1.19.2" - exit 0;; - --help) - echo "usage: eqn2graph [ option ...] < in > out" - exit 0;; - *) - convert_opts="$convert_opts $1";; - esac - shift -done - -# create temporary directory -tmp= -for d in "$GROFF_TMPDIR" "$TMPDIR" "$TMP" "$TEMP" /tmp; do - test -z "$d" && continue - - tmp=`(umask 077 && mktemp -d -q "$d/eqn2graph-XXXXXX") 2> /dev/null` \ - && test -n "$tmp" && test -d "$tmp" \ - && break - - tmp=$d/eqn2graph$$-$RANDOM - (umask 077 && mkdir $tmp) 2> /dev/null && break -done; -if test -z "$tmp"; then - echo "$0: cannot create temporary directory" >&2 - { (exit 1); exit 1; } -fi - -trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 2 15 - -# Here goes: -# 1. Add .EQ/.EN. -# 2. Process through eqn(1) to emit troff markup. -# 3. Process through groff(1) to emit Postscript. -# 4. Use convert(1) to crop the Postscript and turn it into a bitmap. -read equation -(echo ".EQ"; echo 'delim $$'; echo ".EN"; echo '$'"$equation"'$') | \ - groff -e $groff_opts -Tps -P-pletter > $tmp/eqn2graph.ps \ - && convert -trim -crop 0x0 $convert_opts $tmp/eqn2graph.ps $tmp/eqn2graph.$format \ - && cat $tmp/eqn2graph.$format - -# End diff --git a/gen/usr/bin/gdiffmk b/gen/usr/bin/gdiffmk deleted file mode 100755 index 9feeb34..0000000 --- a/gen/usr/bin/gdiffmk +++ /dev/null @@ -1,346 +0,0 @@ -#! /bin/sh -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. -# Written by Mike Bianchi > - -# This file is part of the gdiffmk utility, which is part of groff. - -# groff is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# groff is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public -# License for more details. - -# You should have received a copy of the GNU General Public License -# along with groff; see the files COPYING and LICENSE in the top -# directory of the groff source. If not, write to the Free Software -# Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. -# This file is part of GNU gdiffmk. - - -cmd=$( basename $0 ) - -function Usage { - if test "$#" -gt 0 - then - echo >&2 "${cmd}: $@" - fi - echo >&2 "\ - -Usage: ${cmd} [ OPTIONS ] FILE1 FILE2 [ OUTPUT ] -Place difference marks into the new version of a groff/nroff/troff document. -FILE1 and FILE2 are compared, using \`diff', and FILE2 is output with -groff \`.mc' requests added to indicate how it is different from FILE1. - - FILE1 Previous version of the groff file. \`-' means standard input. - FILE2 Current version of the groff file. \`-' means standard input. - Either FILE1 or FILE2 can be standard input, but not both. - OUTPUT Copy of FILE2 with \`.mc' commands added. - \`-' means standard output (the default). - -OPTIONS: - -a ADDMARK Mark for added groff source lines. Default: \`+'. - -c CHANGEMARK Mark for changed groff source lines. Default: \`|'. - -d DELETEMARK Mark for deleted groff source lines. Default: \`*'. - - -D Show the deleted portions from changed and deleted text. - Default delimiting marks: \`[[' .... \`]]'. - -B By default, the deleted texts marked by the \`-D' option end - with an added troff \`.br' command. This option prevents - the added \`.br'. - -M MARK1 MARK2 Change the delimiting marks for the \`-D' option. - - -x DIFFCMD Use a different diff(1) command; - one that accepts the \`-Dname' option, such as GNU diff. - --version Print version information on the standard output and exit. - --help Print this message on the standard error. -" - exit 255 -} - - -function Exit { - exitcode=$1 - shift - for arg - do - echo >&2 "${cmd}: $1" - shift - done - exit ${exitcode} -} - -# Usage: FileRead exit_code filename -# -# Check for existence and readability of given file name. -# If not found or not readable, print message and exit with EXIT_CODE. -function FileRead { - case "$2" in - -) - return - ;; - esac - - if test ! -e "$2" - then - Exit $1 "File \`$2' not found." - fi - if test ! -r "$2" - then - Exit $1 "File \`$2' not readable." - fi -} - - -# Usage: FileCreate exit_code filename -# -# Create the given filename if it doesn't exist. -# If unable to create or write, print message and exit with EXIT_CODE. -function FileCreate { - case "$2" in - -) - return - ;; - esac - - if ! touch "$2" 2>/dev/null - then - if test ! -e "$2" - then - Exit $1 "File \`$2' not created; " \ - "Cannot write directory \`$( dirname "$2" )'." - fi - Exit $1 "File \`$2' not writeable." - fi -} - -function WouldClobber { - case "$2" in - -) - return - ;; - esac - - if test "$1" -ef "$3" - then - Exit 3 \ - "The $2 and OUTPUT arguments both point to the same file," \ - "\`$1', and it would be overwritten." - fi -} - -ADDMARK='+' -CHANGEMARK='|' -DELETEMARK='*' -MARK1='[[' -MARK2=']]' - -function RequiresArgument { - # Process flags that take either concatenated or - # separated values. - case "$1" in - -??*) - expr "$1" : '-.\(.*\)' - return 1 - ;; - esac - - if test "$#" -lt 2 - then - Exit 255 "Option \`$1' requires a value." - fi - - echo "$2" - return 0 -} - -badoption= -DIFFCMD=diff -D_option= -br=.br -for OPTION -do - case "${OPTION}" in - -a*) - ADDMARK=$( RequiresArgument "${OPTION}" $2 ) && - shift - ;; - -c*) - CHANGEMARK=$( RequiresArgument "${OPTION}" $2 ) && - shift - ;; - -d*) - DELETEMARK=$( RequiresArgument "${OPTION}" $2 ) && - shift - ;; - -D ) - D_option=D_option - ;; - -M* ) - MARK1=$( RequiresArgument "${OPTION}" $2 ) && - shift - if [ $# -lt 2 ] - then - Usage "Option \`-M' is missing the MARK2 value." - fi - MARK2=$2 - shift - ;; - -B ) - br=. - ;; - -x* ) - DIFFCMD=$( RequiresArgument "${OPTION}" $2 ) && - shift - ;; - --version) - echo "GNU ${cmd} (groff) version 1.19.2" - exit 0 - ;; - --help) - Usage - ;; - --) - # What follows -- are file arguments - shift - break - ;; - -) - break - ;; - -*) - badoption="${cmd}: invalid option \`$1'" - ;; - *) - break - ;; - esac - shift -done - -${DIFFCMD} -Dx /dev/null /dev/null >/dev/null 2>&1 || - Usage "The \`${DIFFCMD}' program does not accept" \ - "the required \`-Dname' option. -Use GNU diff instead. See the \`-x DIFFCMD' option." - -if test -n "${badoption}" -then - Usage "${badoption}" -fi - -if test "$#" -lt 2 -o "$#" -gt 3 -then - Usage "Incorrect number of arguments." -fi - -if test "1$1" = 1- -a "2$2" = 2- -then - Usage "Both FILE1 and FILE2 are \`-'." -fi - -FILE1=$1 -FILE2=$2 - -FileRead 1 "${FILE1}" -FileRead 2 "${FILE2}" - -if test "$#" = 3 -then - case "$3" in - -) - # output goes to standard output - ;; - *) - # output goes to a file - WouldClobber "${FILE1}" FILE1 "$3" - WouldClobber "${FILE2}" FILE2 "$3" - - FileCreate 3 "$3" - exec >$3 - ;; - esac -fi - -# To make a very unlikely label even more unlikely ... -label=__diffmk_$$__ - -sed_script=' - /^#ifdef '"${label}"'/,/^#endif \/\* '"${label}"'/ { - /^#ifdef '"${label}"'/ s/.*/.mc '"${ADDMARK}"'/ - /^#endif \/\* '"${label}"'/ s/.*/.mc/ - p - d - } - /^#ifndef '"${label}"'/,/^#endif \/\* [!not ]*'"${label}"'/ { - /^#else \/\* '"${label}"'/,/^#endif \/\* '"${label}"'/ { - /^#else \/\* '"${label}"'/ s/.*/.mc '"${CHANGEMARK}"'/ - /^#endif \/\* '"${label}"'/ s/.*/.mc/ - p - d - } - /^#endif \/\* \(not\|!\) '"${label}"'/ { - s/.*/.mc '"${DELETEMARK}"'/p - a\ -.mc - } - d - } - p - ' - -if [ ${D_option} ] -then - sed_script=' - /^#ifdef '"${label}"'/,/^#endif \/\* '"${label}"'/ { - /^#ifdef '"${label}"'/ s/.*/.mc '"${ADDMARK}"'/ - /^#endif \/\* '"${label}"'/ s/.*/.mc/ - p - d - } - /^#ifndef '"${label}"'/,/^#endif \/\* [!not ]*'"${label}"'/ { - /^#ifndef '"${label}"'/ { - i\ -'"${MARK1}"' - d - } - /^#else \/\* '"${label}"'/ ! { - /^#endif \/\* [!not ]*'"${label}"'/ ! { - p - d - } - } - /^#else \/\* '"${label}"'/,/^#endif \/\* '"${label}"'/ { - /^#else \/\* '"${label}"'/ { - i\ -'"${MARK2}"'\ -'"${br}"' - s/.*/.mc '"${CHANGEMARK}"'/ - a\ -.mc '"${CHANGEMARK}"' - d - } - /^#endif \/\* '"${label}"'/ s/.*/.mc/ - p - d - } - /^#endif \/\* \(not\|!\) '"${label}"'/ { - i\ -'"${MARK2}"'\ -'"${br}"' - s/.*/.mc '"${DELETEMARK}"'/p - a\ -.mc - } - d - } - p - ' -fi - -diff -D"${label}" -- ${FILE1} ${FILE2} | - sed -n "${sed_script}" - -# EOF diff --git a/gen/usr/bin/grap2graph b/gen/usr/bin/grap2graph deleted file mode 100755 index f14fbfb..0000000 --- a/gen/usr/bin/grap2graph +++ /dev/null @@ -1,85 +0,0 @@ -#! /bin/sh -# -# grap2graph -- compile graph description descriptions to bitmap images -# -# by Eric S. Raymond , May 2003 -# -# In Unixland, the magic is in knowing what to string together... -# -# Take grap description on stdin, emit cropped bitmap on stdout. -# The pic markup should *not* be wrapped in .G1/.G2, this script will do that. -# A -U option on the command line enables gpic/groff "unsafe" mode. -# A -format FOO option changes the image output format to any format -# supported by convert(1). All other options are passed to convert(1). -# The default format is PNG. -# - -# Requires the groff suite and the ImageMagick tools. Both are open source. -# This code is released to the public domain. -# -# Here are the assumptions behind the option processing: -# -# 1. None of the options of grap(1) are relevant. -# -# 2. Only the -U option of groff(1) is relevant. -# -# 3. Many options of convert(1) are potentially relevant, (especially -# -density, -interlace, -transparency, -border, and -comment). -# -# Thus, we pass -U to groff(1), and everything else to convert(1). -# -# $Id: grap2graph.sh,v 1.4 2005/05/18 07:03:06 wl Exp $ -# -groff_opts="" -convert_opts="" -format="png" - -while [ "$1" ] -do - case $1 in - -unsafe) - groff_opts="-U";; - -format) - format=$2 - shift;; - -v | --version) - echo "GNU grap2graph (groff) version 1.19.2" - exit 0;; - --help) - echo "usage: grap2graph [ option ...] < in > out" - exit 0;; - *) - convert_opts="$convert_opts $1";; - esac - shift -done - -# create temporary directory -tmp= -for d in "$GROFF_TMPDIR" "$TMPDIR" "$TMP" "$TEMP" /tmp; do - test -z "$d" && continue - - tmp=`(umask 077 && mktemp -d -q "$d/grap2graph-XXXXXX") 2> /dev/null` \ - && test -n "$tmp" && test -d "$tmp" \ - && break - - tmp=$d/grap2graph$$-$RANDOM - (umask 077 && mkdir $tmp) 2> /dev/null && break -done; -if test -z "$tmp"; then - echo "$0: cannot create temporary directory" >&2 - { (exit 1); exit 1; } -fi - -trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 2 15 - -# Here goes: -# 1. Add .G1/.G2. -# 2. Process through grap(1) to emit pic markup. -# 3. Process through groff(1) with pic preprocessing to emit Postscript. -# 4. Use convert(1) to crop the Postscript and turn it into a bitmap. -(echo ".G1"; cat; echo ".G2") | grap | groff -p $groff_opts -Tps -P-pletter | \ - convert -trim -crop 0x0 $convert_opts - $tmp/grap2graph.$format \ - && cat $tmp/grap2graph.$format - -# End diff --git a/gen/usr/bin/groffer b/gen/usr/bin/groffer deleted file mode 100755 index cd89148..0000000 --- a/gen/usr/bin/groffer +++ /dev/null @@ -1,299 +0,0 @@ -#! /bin/sh - -# groffer - display groff files - -# Source file position: /contrib/groffer/groffer.sh - -# Copyright (C) 2001,2002,2003,2004,2005 -# Free Software Foundation, Inc. -# Written by Bernd Warken - -# This file is part of `groffer', which is part of `groff' version -# 1.19.2. See $_GROFF_VERSION. - -# `groff' is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# `groff' is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with `groff'; see the files COPYING and LICENSE in the top -# directory of the `groff' source. If not, write to the Free Software -# Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, -# USA. - -######################################################################## - -_PROGRAM_VERSION='0.9.22'; -_LAST_UPDATE='22 August 2005'; - -export _PROGRAM_VERSION; -export _LAST_UPDATE; - -export GROFFER_OPT; # option environment for groffer - -export _CONF_FILE_ETC; # configuration file in /etc -export _CONF_FILE_HOME; # configuration file in $HOME -export _CONF_FILES; # configuration files -_CONF_FILE_ETC='/etc/groff/groffer.conf'; -_CONF_FILE_HOME="${HOME}/.groff/groffer.conf"; -_CONF_FILES="${_CONF_FILE_ETC} ${_CONF_FILE_HOME}"; - -# characters - -export _AT; -export _SP; -export _SQ; -export _TAB; - -_AT='@'; -_SP=' '; -_SQ="'"; -_TAB=' '; - -export _ERROR; -_ERROR='7'; # for syntax errors; no `-1' in `ash' - -# @...@ constructs - -export _GROFF_VERSION -_GROFF_VERSION='1.19.2'; -if test _1.19.2_ = _${_AT}VERSION${_AT}_ -then - _GROFF_VERSION='1.19.2'; -fi; - -export _AT_BINDIR_AT; -export _AT_G_AT; -export _AT_LIBDIR_AT; -export _GROFFER_LIBDIR; -if test _/usr/bin_ = _${_AT}BINDIR${_AT}_ -then - # script before `make' - _AT_BINDIR_AT='.'; - _AT_G_AT=''; - _AT_LIBDIR_AT=''; - _GROFFER_LIBDIR='.'; -else - _AT_BINDIR_AT='/usr/bin'; - _AT_G_AT=''; - _AT_LIBDIR_AT='/usr/lib'; - _GROFFER_LIBDIR="${_AT_LIBDIR_AT}"'/groff/groffer'; -fi; - -export _GROFFER_SH; # file name of this shell script -case "$0" in -*groffer*) - _GROFFER_SH="$0"; - # was: _GROFFER_SH="${_AT_BINDIR_AT}/groffer"; - ;; -*) - echo 'The groffer script should be started directly.' >&2 - exit 1; - ;; -esac; - -export _GROFFER2_SH; # file name of the script that follows up -_GROFFER2_SH="${_GROFFER_LIBDIR}"/groffer2.sh; - -export _NULL_DEV; -if test -c /dev/null -then - _NULL_DEV="/dev/null"; -else - _NULL_DEV="NUL"; -fi; - - -# Test of the `$()' construct. -if test _"$(echo "$(echo 'test')")"_ \ - != _test_ -then - echo 'The "$()" construct did not work.' >&2; - exit "${_ERROR}"; -fi; - -# Test of sed program -if test _"$(echo red | sed -e 's/r/s/')"_ != _sed_ -then - echo 'The sed program did not work.' >&2; - exit "${_ERROR}"; -fi; - - -########################### configuration - -# read and transform the configuration files, execute the arising commands -for f in "${_CONF_FILE_HOME}" "${_CONF_FILE_ETC}" -do - if test -f "$f" - then - o=""; # $o means groffer option - # use "" quotes because of ksh and posh - eval "$(cat "$f" | sed -n -e ' -# Ignore comments -/^['"${_SP}${_TAB}"']*#/d -# Delete leading and final space -s/^['"${_SP}${_TAB}"']*// -s/['"${_SP}${_TAB}"']*$// -# Print all shell commands -/^[^-]/p -# Replace empty arguments -s/^\(-[^ ]*\)=$/o="${o} \1 '"${_SQ}${_SQ}"'"/p -# Replace division between option and argument by single space -s/[='"${_SP}${_TAB}"']['"${_SP}${_TAB}"']*/'"${_SP}"'/ -# Handle lines without spaces -s/^\(-[^'"${_SP}"']*\)$/o="${o} \1"/p -# Print options that have their argument encircled with single quotes -/^-[^ ]* '"${_SQ}"'.*'"${_SQ}"'$/s/^.*$/o="${o} &"/p -# Replace encircled double quotes by single quotes and print the result -s/^\(-[^ ]*\) "\(.*\)"$/o="${o} \1 '"${_SQ}"'\2'"${_SQ}"'"/p -# Encircle the remaining arguments with single quotes -s/^\(-[^ ]*\) \(.*\)$/o="${o} \1 '"${_SQ}"'\2'"${_SQ}"'"/p -')" - if test _"${o}"_ != __ - then - if test _"{GROFFER_OPT}"_ = __ - then - GROFFER_OPT="${o}"; - else - GROFFER_OPT="${o} ${GROFFER_OPT}"; - fi; - fi; - fi; -done; - -# integrate $GROFFER_OPT into the command line; it isn't needed any more -if test _"${GROFFER_OPT}"_ != __ -then - eval set x "${GROFFER_OPT}" '"$@"'; - shift; - GROFFER_OPT=''; -fi; - - -########################### Determine the shell - -export _SHELL; - -# use "``" instead of "$()" for using the case ")" construct -# do not use "" quotes because of ksh -_SHELL=` - # $x means list. - # $s means shell. - # The command line arguments are taken over. - # Shifting herein does not have an effect outside. - export x; - case " $*" in - *\ --sh*) # abbreviation for --shell - x=''; - s=''; - # determine all --shell arguments, store them in $x in reverse order - while test $# != 0 - do - case "$1" in - --shell|--sh|--she|--shel) - if test "$#" -ge 2 - then - s="$2"; - shift; - fi; - ;; - --shell=*|--sh=*|--she=*|--shel=*) - # delete up to first "=" character - s="$(echo x"$1" | sed -e 's/^x[^=]*=//')"; - ;; - *) - shift; - continue; - esac; - if test _"${x}"_ = __ - then - x="'${s}'"; - else - x="'${s}' ${x}"; - fi; - shift; - done; - - # from all possible shells in $x determine the first being a shell - # or being empty - s="$( - # "" quotes because of posh - eval set x "${x}"; - shift; - if test $# != 0 - then - for i - do - if test _"$i"_ = __ - then - # use the empty argument as the default shell - echo empty; - break; - else - # test $i on being a shell program; - # use this kind of quoting for posh - if test _"$(eval "$i -c 'echo ok'" 2>${_NULL_DEV})"_ = _ok_ >&2 - then - # shell found - cat <${_NULL_DEV})"_ = _ok_ >&2 - then - _SHELL="$s"; - break; - fi; - done; -fi; - - -########################### start groffer2.sh - -if test _"${_SHELL}"_ = _empty_ -then - _SHELL=''; -fi; - -if test _"${_SHELL}"_ = __ -then - # no shell found, so start groffer2.sh normally - eval exec "'${_GROFFER2_SH}'" '"$@"'; - exit; -else - # start groffer2.sh with the found $_SHELL - # do not quote $_SHELL to allow arguments - eval exec "${_SHELL} '${_GROFFER2_SH}'" '"$@"'; - exit; -fi; diff --git a/gen/usr/bin/grog b/gen/usr/bin/grog deleted file mode 100755 index 2913fa9..0000000 --- a/gen/usr/bin/grog +++ /dev/null @@ -1,112 +0,0 @@ -#! /bin/sh -# grog -- guess options for groff command -# Like doctype in Kernighan & Pike, Unix Programming Environment, pp 306-8. - -soelim=soelim - -opts= -sp="([ ]|$)" - -for arg -do - case "$arg" in - --) - shift; break;; - -) - break;; - -C) - sp=; opts="$opts -C"; shift; break;; - -v | --version) - echo "GNU grog (groff) version 1.19.2" - exit 0;; - --help) - echo "usage: grog [ option ...] [files...]" - exit 0;; - -*) - opts="$opts $arg"; shift;; - *) - break;; - esac -done - -egrep -h "^\.(\[|\])|((P|PS|[PLI]P|[pnil]p|sh|Dd|Tp|Dp|De|Cx|Cl|Oo|.* Oo|Oc|.* Oc|TS|EQ|TH|SH|so|\[|R1|GS|G1|PH|SA)$sp)" $* \ -| sed -e '/^\.so/s/^.*$/.SO_START\ -&\ -.SO_END/' \ -| $soelim \ -| egrep '^\.(P|PS|[PLI]P|[pnil]p|sh|Dd|Tp|Dp|De|Cx|Cl|Oo|.* Oo|Oc|.* Oc|TS|EQ|TH|SH|\[|\]|R1|GS|G1|PH|SA|SO_START|SO_END)' \ -| awk ' -/^\.SO_START$/ { so = 1 } -/^\.SO_END$/ { so = 0 } -/^\.TS/ { tbl++; if (so > 0) soelim++ } -/^\.PS([ 0-9.<].*)?$/ { pic++; if (so > 0) soelim++ } -/^\.EQ/ { eqn++; if (so > 0) soelim++ } -/^\.R1/ { refer++; if (so > 0) soelim++ } -/^\.\[/ {refer_start++; if (so > 0) soelim++ } -/^\.\]/ {refer_end++; if (so > 0) soelim++ } -/^\.GS/ { grn++; if (so > 0) soelim++ } -/^\.G1/ { grap++; pic++; if (so > 0) soelim++ } -/^\.TH/ { TH++ } -/^\.[PLI]P/ { PP++ } -/^\.P$/ { P++ } -/^\.SH/ { SH++ } -/^\.(PH|SA)/ { mm++ } -/^\.([pnil]p|sh)/ { me++ } -/^\.Dd/ { mdoc++ } -/^\.(Tp|Dp|De|Cx|Cl)/ { mdoc_old++ } -/^\.(O[oc]|.* O[oc]( |$))/ { - sub(/\\\".*/, "") - gsub(/\"[^\"]*\"/, "") - sub(/\".*/, "") - sub(/^\.Oo/, " Oo ") - sub(/^\.Oc/, " Oc ") - sub(/ Oo$/, " Oo ") - sub(/ Oc$/, " Oc ") - while (/ Oo /) { - sub(/ Oo /, " ") - Oo++ - } - while (/ Oc /) { - sub(/ Oc /, " ") - Oo-- - } -} -/^\.(PRINTSTYLE|START)/ { mom++ } - -END { - if (files ~ /^-/) - files = "-- " files - printf "groff" - refer = refer || (refer_start && refer_end) - if (pic > 0 || tbl > 0 || grn > 0 || grap > 0 || eqn > 0 || refer > 0) { - printf " -" - if (soelim > 0) printf "s" - if (refer > 0) printf "R" - if (grn > 0) printf "g" - if (grap > 0) printf "G" - if (pic > 0) printf "p" - if (tbl > 0) printf "t" - if (eqn > 0) printf "e" - } - if (me > 0) - printf " -me" - else if (SH > 0 && TH > 0) - printf " -man" - else if (mom > 0) - printf " -mom" - else if (PP > 0) - printf " -ms" - else if (P > 0 || mm > 0) - printf " -mm" - else if (mdoc > 0) { - if (mdoc_old > 0 || Oo > 0) - printf " -mdoc-old" - else - printf " -mdoc" - } - if (opts != "") - printf "%s", opts - if (files != "") - printf " %s", files - print "" -}' "opts=$opts" "files=$*" - diff --git a/gen/usr/bin/mmroff b/gen/usr/bin/mmroff deleted file mode 100755 index f61daa1..0000000 --- a/gen/usr/bin/mmroff +++ /dev/null @@ -1,137 +0,0 @@ -#! /usr/bin/perl - -use strict; -# runs groff in safe mode, that seems to be the default -# installation now. That means that I have to fix all nice -# features outside groff. Sigh. -# I do agree however that the previous way opened a whole bunch -# of security holes. - -my $no_exec; -# check for -x and remove it -if (grep(/^-x$/, @ARGV)) { - $no_exec++; - @ARGV = grep(!/^-x$/, @ARGV); -} - -# mmroff should always have -mm, but not twice -@ARGV = grep(!/^-mm$/, @ARGV); -my $check_macro = "groff -rRef=1 -z -mm @ARGV"; -my $run_macro = "groff -mm @ARGV"; - -my (%cur, $rfilename, $max_height, $imacro, $max_width, @out, @indi); -open(MACRO, "$check_macro 2>&1 |") || die "run $check_macro:$!"; -while() { - if (m#^\.\\" Rfilename: (\S+)#) { - # remove all directories just to be more secure - ($rfilename = $1) =~ s#.*/##; - next; - } - if (m#^\.\\" Imacro: (\S+)#) { - # remove all directories just to be more secure - ($imacro = $1) =~ s#.*/##; - next; - } - if (m#^\.\\" Index: (\S+)#) { - # remove all directories just to be more secure - my $f; - ($f = $1) =~ s#.*/##; - &print_index($f, \@indi, $imacro); - @indi = (); - $imacro = ''; - next; - } - my $x; - if (($x) = m#^\.\\" IND (.+)#) { - $x =~ s#\\##g; - my @x = split(/\t/, $x); - grep(s/\s+$//, @x); - push(@indi, join("\t", @x)); - next; - } - if (m#^\.\\" PIC id (\d+)#) { - %cur = ('id', $1); - next; - } - if (m#^\.\\" PIC file (\S+)#) { - &psbb($1); - &ps_calc($1); - next; - } - if (m#^\.\\" PIC (\w+)\s+(\S+)#) { - eval "\$cur{'$1'} = '$2'"; - next; - } - s#\\ \\ $##; - push(@out, $_); -} -close(MACRO); - - -if ($rfilename) { - push(@out, ".nr pict*max-height $max_height\n") if defined $max_height; - push(@out, ".nr pict*max-width $max_width\n") if defined $max_width; - - open(OUT, ">$rfilename") || "create $rfilename:$!"; - print OUT '.\" references', "\n"; - my $i; - for $i (@out) { - print OUT $i; - } - close(OUT); -} - -exit 0 if $no_exec; -exit system($run_macro); - -sub print_index { - my ($f, $ind, $macro) = @_; - - open(OUT, ">$f") || "create $f:$!"; - my $i; - for $i (sort @$ind) { - if ($macro) { - $i = '.'.$macro.' "'.join('" "', split(/\t/, $i)).'"'; - } - print OUT "$i\n"; - } - close(OUT); -} - -sub ps_calc { - my ($f) = @_; - - my $w = abs($cur{'llx'}-$cur{'urx'}); - my $h = abs($cur{'lly'}-$cur{'ury'}); - $max_width = $w if $w > $max_width; - $max_height = $h if $h > $max_height; - - my $id = $cur{'id'}; - push(@out, ".ds pict*file!$id $f\n"); - push(@out, ".ds pict*id!$f $id\n"); - push(@out, ".nr pict*llx!$id $cur{'llx'}\n"); - push(@out, ".nr pict*lly!$id $cur{'lly'}\n"); - push(@out, ".nr pict*urx!$id $cur{'urx'}\n"); - push(@out, ".nr pict*ury!$id $cur{'ury'}\n"); - push(@out, ".nr pict*w!$id $w\n"); - push(@out, ".nr pict*h!$id $h\n"); -} - - -sub psbb { - my ($f) = @_; - - unless (open(IN, $f)) { - print STDERR "Warning: Postscript file $f:$!"; - next; - } - while() { - if (/^%%BoundingBox:\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/) { - $cur{'llx'} = $1; - $cur{'lly'} = $2; - $cur{'urx'} = $3; - $cur{'ury'} = $4; - } - } - close(IN); -} diff --git a/gen/usr/bin/neqn b/gen/usr/bin/neqn deleted file mode 100755 index 518e011..0000000 --- a/gen/usr/bin/neqn +++ /dev/null @@ -1,10 +0,0 @@ -#! /bin/sh -# Provision of this shell script should not be taken to imply that use of -# GNU eqn with groff -Tascii|-Tlatin1|-Tutf8|-Tcp1047 is supported. - -GROFF_RUNTIME="${GROFF_BIN_PATH=/usr/bin}:" -PATH="$GROFF_RUNTIME$PATH" -export PATH -exec eqn -Tascii ${1+"$@"} - -# eof diff --git a/gen/usr/bin/nroff b/gen/usr/bin/nroff deleted file mode 100755 index 4716704..0000000 --- a/gen/usr/bin/nroff +++ /dev/null @@ -1,99 +0,0 @@ -#! /bin/sh -# Emulate nroff with groff. - -prog="$0" -# Default device. -# First try the "locale charmap" command, because it's most reliable. -# On systems where it doesn't exist, look at the environment variables. -case "`exec 2>/dev/null ; locale charmap`" in - UTF-8) - T=-Tutf8 ;; - ISO-8859-1 | ISO-8859-15) - T=-Tlatin1 ;; - IBM-1047) - T=-Tcp1047 ;; - *) - case "${LC_ALL-${LC_CTYPE-${LANG}}}" in - *.UTF-8) - T=-Tutf8 ;; - iso_8859_1 | *.ISO-8859-1 | *.ISO8859-1 | \ - iso_8859_15 | *.ISO-8859-15 | *.ISO8859-15) - T=-Tlatin1 ;; - *.IBM-1047) - T=-Tcp1047 ;; - *) - case "$LESSCHARSET" in - utf-8) - T=-Tutf8 ;; - latin1) - T=-Tlatin1 ;; - cp1047) - T=-Tcp1047 ;; - *) - T=-Tascii ;; - esac ;; - esac ;; -esac -opts= - -# `for i; do' doesn't work with some versions of sh - -for i - do - case $1 in - -c) - opts="$opts -P-c" ;; - -h) - opts="$opts -P-h" ;; - -[eq] | -s*) - # ignore these options - ;; - -[dMmrnoT]) - echo "$prog: option $1 requires an argument" >&2 - exit 1 ;; - -[iptSUC] | -[dMmrno]*) - opts="$opts $1" ;; - -Tascii | -Tlatin1 | -Tutf8 | -Tcp1047) - T=$1 ;; - -T*) - # ignore other devices - ;; - -u*) - # Solaris 2.2 through at least Solaris 9 `man' invokes - # `nroff -u0 ... | col -x'. Ignore the -u0, - # since `less' and `more' can use the emboldening info. - # However, disable SGR, since Solaris `col' mishandles it. - opts="$opts -P-c" ;; - -v | --version) - echo "GNU nroff (groff) version 1.19.2" - exit 0 ;; - --help) - echo "usage: nroff [-CchipStUv] [-dCS] [-MDIR] [-mNAME] [-nNUM] [-oLIST]" - echo " [-rCN] [-Tname] [FILE...]" - exit 0 ;; - --) - shift - break ;; - -) - break ;; - -*) - echo "$prog: invalid option $1" >&2 - exit 1 ;; - *) - break ;; - esac - shift -done - -# Set up the `GROFF_BIN_PATH' variable -# to be exported in the current `GROFF_RUNTIME' environment. - -GROFF_RUNTIME="${GROFF_BIN_PATH=/usr/bin}:" -export GROFF_BIN_PATH - -# This shell script is intended for use with man, so warnings are -# probably not wanted. Also load nroff-style character definitions. - -PATH="$GROFF_RUNTIME$PATH" groff -mtty-char $T $opts ${1+"$@"} - -# eof diff --git a/gen/usr/bin/pic2graph b/gen/usr/bin/pic2graph deleted file mode 100755 index d657842..0000000 --- a/gen/usr/bin/pic2graph +++ /dev/null @@ -1,101 +0,0 @@ -#! /bin/sh -# -# pic2graph -- compile PIC image descriptions to bitmap images -# -# by Eric S. Raymond , July 2002 - -# In Unixland, the magic is in knowing what to string together... -# -# Take a pic/eqn diagram on stdin, emit cropped bitmap on stdout. -# The pic markup should *not* be wrapped in .PS/.PE, this script will do that. -# An -unsafe option on the command line enables gpic/groff "unsafe" mode. -# A -format FOO option changes the image output format to any format -# supported by convert(1). An -eqn option changes the eqn delimiters. -# All other options are passed to convert(1). The default format in PNG. -# -# Requires the groff suite and the ImageMagick tools. Both are open source. -# This code is released to the public domain. -# -# Here are the assumptions behind the option processing: -# -# 1. Only the -U option of gpic(1) is relevant. -C doesn't matter because -# we're generating our own .PS/.PE, -[ntcz] are irrelevant because we're -# generating Postscript. -# -# 2. Ditto for groff(1), though it's a longer and more tedious demonstration. -# -# 3. Many options of convert(1) are potentially relevant (especially -# -density, -interlace, -transparency, -border, and -comment). -# -# Thus, we pass -U to gpic and groff, and everything else to convert(1). -# -# We don't have complete option coverage on eqn because this is primarily -# intended as a pic translator; we can live with eqn defaults. -# -# $Id: pic2graph.sh,v 1.7 2005/05/18 07:03:07 wl Exp $ -# -groffpic_opts="" -gs_opts="" -convert_opts="" -format="png" -eqndelim='$$' - -while [ "$1" ] -do - case $1 in - -unsafe) - groffpic_opts="-U";; - -format) - format=$2 - shift;; - -eqn) - eqndelim=$2 - shift;; - -v | --version) - echo "GNU pic2graph (groff) version 1.19.2" - exit 0;; - --help) - echo "usage: pic2graph [ option ...] < in > out" - exit 0;; - *) - convert_opts="$convert_opts $1";; - esac - shift -done - -if [ "$eqndelim" ] -then - eqndelim="delim $eqndelim" -fi - -# create temporary directory -tmp= -for d in "$GROFF_TMPDIR" "$TMPDIR" "$TMP" "$TEMP" /tmp; do - test -z "$d" && continue - - tmp=`(umask 077 && mktemp -d -q "$d/pic2graph-XXXXXX") 2> /dev/null` \ - && test -n "$tmp" && test -d "$tmp" \ - && break - - tmp=$d/pic2graph$$-$RANDOM - (umask 077 && mkdir $tmp) 2> /dev/null \ - && break -done; -if test -z "$tmp"; then - echo "$0: cannot create temporary directory" >&2 - { (exit 1); exit 1; } -fi - -trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 2 15 - -# Here goes: -# 1. Wrap the input in dummy .PS/PE macros (and add possibly null .EQ/.EN) -# 2. Process through eqn and pic to emit troff markup. -# 3. Process through groff to emit Postscript. -# 4. Use convert(1) to crop the PostScript and turn it into a bitmap. -(echo ".EQ"; echo $eqndelim; echo ".EN"; echo ".PS"; cat; echo ".PE") | \ - groff -e -p $groffpic_opts -Tps -P-pletter > $tmp/pic2graph.ps \ - && convert -trim -crop 0x0 $convert_opts $tmp/pic2graph.ps $tmp/pic2graph.$format \ - && cat $tmp/pic2graph.$format - -# End diff --git a/gen/usr/lib/groff/groffer/groffer2.sh b/gen/usr/lib/groff/groffer/groffer2.sh deleted file mode 100755 index d2dd216..0000000 --- a/gen/usr/lib/groff/groffer/groffer2.sh +++ /dev/null @@ -1,5854 +0,0 @@ -#! /bin/sh - -# groffer - display groff files - -# Source file position: /contrib/groffer/groffer2.sh -# Installed position: /lib/groff/groffer/groffer2.sh - -# This file should not be run independently. It is called by -# `groffer.sh' in the source or by the installed `groffer' program. - -# Copyright (C) 2001,2002,2003,2004,2005 -# Free Software Foundation, Inc. -# Written by Bernd Warken - -# Last update: 22 August 2005 - -# This file is part of `groffer', which is part of `groff'. - -# `groff' is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. - -# `groff' is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with `groff'; see the files COPYING and LICENSE in the top -# directory of the `groff' source. If not, write to the Free Software -# Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, -# USA. - - -######################################################################## -# Test of rudimentary shell functionality -######################################################################## - - -######################################################################## -# Test of `unset' -# -export _UNSET; -export _foo; -_foo=bar; -_res="$(unset _foo 2>&1)"; -if unset _foo >${_NULL_DEV} 2>&1 && \ - test _"${_res}"_ = __ && test _"${_foo}"_ = __ -then - _UNSET='unset'; - eval "${_UNSET}" _foo; - eval "${_UNSET}" _res; -else - _UNSET=':'; -fi; - - -######################################################################## -# Test of `test'. -# -if test a = a && test a != b && test -f "${_GROFFER_SH}" -then - :; -else - echo '"test" did not work.' >&2; - exit "${_ERROR}"; -fi; - - -######################################################################## -# Test of `echo' and the `$()' construct. -# -if echo '' >${_NULL_DEV} -then - :; -else - echo '"echo" did not work.' >&2; - exit "${_ERROR}"; -fi; -if test _"$(t1="$(echo te)" && - t2="$(echo '')" && - t3="$(echo 'st')" && - echo "${t1}${t2}${t3}")"_ \ - != _test_ -then - echo 'The "$()" construct did not work' >&2; - exit "${_ERROR}"; -fi; - - -######################################################################## -# Test of sed program; test in groffer.sh is not valid here. -# -if test _"$(echo red | sed -e 's/r/s/')"_ != _sed_ -then - echo 'The sed program did not work.' >&2; - exit "${_ERROR}"; -fi; - - -######################################################################## -# Test of function definitions. -# -_t_e_s_t_f_u_n_c_() -{ - return 0; -} - -if _t_e_s_t_f_u_n_c_ 2>${_NULL_DEV} -then - :; -else - echo 'Shell '"${_SHELL}"' does not support function definitions.' >&2; - exit "${_ERROR}"; -fi; - - -######################################################################## -# debug - diagnostic messages -######################################################################## - -export _DEBUG_STACKS; -_DEBUG_STACKS='no'; # disable stack output in each function -#_DEBUG_STACKS='yes'; # enable stack output in each function - -export _DEBUG_LM; -_DEBUG_LM='no'; # disable landmark messages -#_DEBUG_LM='yes'; # enable landmark messages - -export _DEBUG_KEEP_FILES; -_DEBUG_KEEP_FILES='no' # disable file keeping in temporary dir -#_DEBUG_KEEP_FILES='yes' # enable file keeping in temporary dir - -export _DEBUG_PRINT_PARAMS; -_DEBUG_PRINT_PARAMS='no'; # disable printing of all parameters -#_DEBUG_PRINT_PARAMS='yes'; # enable printing of all parameters - -export _DEBUG_PRINT_SHELL; -_DEBUG_PRINT_SHELL='no'; # disable printing of the shell name -#_DEBUG_PRINT_SHELL='yes'; # enable printing of the shell name - -export _DEBUG_PRINT_TMPDIR; -_DEBUG_PRINT_TMPDIR='no'; # disable printing of the temporary dir -#_DEBUG_PRINT_TMPDIR='yes'; # enable printing of the temporary dir - -export _DEBUG_USER_WITH_STACK; -_DEBUG_USER_WITH_STACK='no'; # disable stack dump in error_user() -#_DEBUG_USER_WITH_STACK='yes'; # enable stack dump in error_user() - -# determine all --debug* options -case " $*" in -*\ --debug*) - case " $* " in - *' --debug '*) - # _DEBUG_STACKS='yes'; - # _DEBUG_LM='yes'; - _DEBUG_KEEP_FILES='yes'; - _DEBUG_PRINT_PARAMS='yes'; - _DEBUG_PRINT_SHELL='yes'; - _DEBUG_PRINT_TMPDIR='yes'; - _DEBUG_USER_WITH_STACK='yes'; - ;; - esac; - d=' --debug-all --debug-keep --debug-lm --debug-params --debug-shell '\ -'--debug-stacks --debug-tmpdir --debug-user '; - for i - do - case "$i" in - --debug-s) - echo 'The abbreviation --debug-s has multiple options: '\ -'--debug-shell and --debug-stacks.' >&2 - exit "${_ERROR}"; - ;; - esac; - case "$d" in - *\ ${i}*) - # extract whole word of abbreviation $i - s="$(cat <&2; -fi; - -if test _"${_DEBUG_PRINT_SHELL}"_ = _yes_ -then - if test _"${_SHELL}"_ = __ - then - if test _"${POSIXLY_CORRECT}"_ = _y_ - then - echo 'shell: bash as /bin/sh (none specified)' >&2; - else - echo 'shell: /bin/sh (none specified)' >&2; - fi; - else - echo "shell: ${_SHELL}" >&2; - fi; -fi; - - -######################################################################## -# Environment Variables -######################################################################## - -# Environment variables that exist only for this file start with an -# underscore letter. Global variables to this file are written in -# upper case letters, e.g. $_GLOBAL_VARIABLE; temporary variables -# start with an underline and use only lower case letters and -# underlines, e.g. $_local_variable . - -# [A-Z]* system variables, e.g. $MANPATH -# _[A-Z_]* global file variables, e.g. $_MAN_PATH -# _[a-z_]* temporary variables, e.g. $_manpath - -# Due to incompatibilities of the `ash' shell, the name of loop -# variables in `for' must be single character -# [a-z] local loop variables, e.g. $i - - -######################################################################## -# read-only variables (global to this file) -######################################################################## - -# function return values; `0' means ok; other values are error codes -export _ALL_EXIT; -export _BAD; -export _GOOD; -export _NO; -export _OK; -export _YES; - -_GOOD='0'; # return ok -_BAD='1'; # return negatively, error code `1' -# $_ERROR was already defined as `7' in groffer.sh. - -_NO="${_BAD}"; -_YES="${_GOOD}"; -_OK="${_GOOD}"; - -# quasi-functions, call with `eval', e.g `eval "${return_ok}"' -export return_ok; -export return_good; -export return_bad; -export return_yes; -export return_no; -export return_error; -export return_var; -return_ok="func_pop; return ${_OK}"; -return_good="func_pop; return ${_GOOD}"; -return_bad="func_pop; return ${_BAD}"; -return_yes="func_pop; return ${_YES}"; -return_no="func_pop; return ${_NO}"; -return_error="func_pop; return ${_ERROR}"; -return_var="func_pop; return"; # add number, e.g. `eval "${return_var} $n' - - -export _DEFAULT_MODES; -_DEFAULT_MODES='x,ps,tty'; -export _DEFAULT_RESOLUTION; -_DEFAULT_RESOLUTION='75'; - -export _DEFAULT_TTY_DEVICE; -_DEFAULT_TTY_DEVICE='latin1'; - -# _VIEWER_* viewer programs for different modes (only X is necessary) -# _VIEWER_* a comma-separated list of viewer programs (with options) -export _VIEWER_DVI; # viewer program for dvi mode -export _VIEWER_HTML_TTY; # viewer program for html mode in tty -export _VIEWER_HTML_X; # viewer program for html mode in X -export _VIEWER_PDF; # viewer program for pdf mode -export _VIEWER_PS; # viewer program for ps mode -export _VIEWER_X; # viewer program for X mode -_VIEWER_DVI='kdvi,xdvi,dvilx'; -_VIEWER_HTML_TTY='lynx'; -_VIEWER_HTML_X='konqueror,mozilla,netscape,galeon,opera,amaya,arena'; -_VIEWER_PDF='kghostview --scale 1.45,ggv,xpdf,acroread,kpdf'; -_VIEWER_PS='kghostview --scale 1.45,ggv,gv,ghostview,gs_x11,gs'; -_VIEWER_X='gxditview,xditview'; - -# Search automatically in standard sections `1' to `8', and in the -# traditional sections `9', `n', and `o'. On many systems, there -# exist even more sections, mostly containing a set of man pages -# special to a specific program package. These aren't searched for -# automatically, but must be specified on the command line. -export _MAN_AUTO_SEC_LIST; -_MAN_AUTO_SEC_LIST="'1' '2' '3' '4' '5' '6' '7' '8' '9' 'n' 'o'"; -export _MAN_AUTO_SEC_CHARS; -_MAN_AUTO_SEC_CHARS='[123456789no]'; - -export _SPACE_SED; -_SPACE_SED='['"${_SP}${_TAB}"']'; - -export _SPACE_CASE; -_SPACE_CASE='[\'"${_SP}"'\'"${_TAB}"']'; - -export _PROCESS_ID; # for shutting down the program -_PROCESS_ID="$$"; - - -############ the command line options of the involved programs -# -# The naming scheme for the options environment names is -# $_OPTS__[_] -# -# : program name GROFFER, GROFF, or CMDLINE (for all -# command line options) -# : LONG (long options) or SHORT (single character options) -# : ARG for options with argument, NA for no argument; -# without _ both the ones with and without arg. -# -# Each option that takes an argument must be specified with a -# trailing : (colon). - -# exports -export _OPTS_GROFFER_SHORT_NA; -export _OPTS_GROFFER_SHORT_ARG; -export _OPTS_GROFFER_LONG_NA; -export _OPTS_GROFFER_LONG_ARG; -export _OPTS_GROFF_SHORT_NA; -export _OPTS_GROFF_SHORT_ARG; -export _OPTS_GROFF_LONG_NA; -export _OPTS_GROFF_LONG_ARG; -export _OPTS_X_SHORT_ARG; -export _OPTS_X_SHORT_NA; -export _OPTS_X_LONG_ARG; -export _OPTS_X_LONG_NA; -export _OPTS_MAN_SHORT_ARG; -export _OPTS_MAN_SHORT_NA; -export _OPTS_MAN_LONG_ARG; -export _OPTS_MAN_LONG_NA; -export _OPTS_MANOPT_SHORT_ARG; -export _OPTS_MANOPT_SHORT_NA; -export _OPTS_MANOPT_LONG_ARG; -export _OPTS_MANOPT_LONG_NA; -export _OPTS_CMDLINE_SHORT_NA; -export _OPTS_CMDLINE_SHORT_ARG; -export _OPTS_CMDLINE_LONG_NA; -export _OPTS_CMDLINE_LONG_ARG; - -###### groffer native options - -_OPTS_GROFFER_SHORT_NA="'h' 'Q' 'v' 'V' 'X' 'Z'"; -_OPTS_GROFFER_SHORT_ARG="'T'"; - -_OPTS_GROFFER_LONG_NA="'auto' \ -'apropos' 'apropos-data' 'apropos-devel' 'apropos-progs' \ -'debug' 'debug-all' 'debug-keep' 'debug-lm' 'debug-params' 'debug-shell' \ -'debug-stacks' 'debug-tmpdir' 'debug-user' 'default' 'do-nothing' 'dvi' \ -'groff' 'help' 'intermediate-output' 'html' 'man' \ -'no-location' 'no-man' 'no-special' 'pdf' 'ps' 'rv' 'source' \ -'text' 'text-device' \ -'tty' 'tty-device' 'version' 'whatis' 'where' 'www' 'x' 'X'"; - -_OPTS_GROFFER_LONG_ARG="\ -'default-modes' 'device' 'dvi-viewer' 'dvi-viewer-tty' 'extension' 'fg' \ -'fn' 'font' 'foreground' 'html-viewer' 'html-viewer-tty' 'mode' \ -'pdf-viewer' 'pdf-viewer-tty' 'print' 'ps-viewer' 'ps-viewer-tty' 'shell' \ -'title' 'tty-viewer' 'tty-viewer-tty' 'www-viewer' 'www-viewer-tty' \ -'x-viewer' 'x-viewer-tty' 'X-viewer' 'X-viewer-tty'"; - -##### groffer options inhereted from groff - -_OPTS_GROFF_SHORT_NA="'a' 'b' 'c' 'C' 'e' 'E' 'g' 'G' 'i' 'l' 'N' 'p' \ -'R' 's' 'S' 't' 'U' 'z'"; -_OPTS_GROFF_SHORT_ARG="'d' 'f' 'F' 'I' 'L' 'm' 'M' 'n' 'o' 'P' 'r' \ -'w' 'W'"; -_OPTS_GROFF_LONG_NA=""; -_OPTS_GROFF_LONG_ARG=""; - -##### groffer options inhereted from the X Window toolkit - -_OPTS_X_SHORT_NA=""; -_OPTS_X_SHORT_ARG=""; - -_OPTS_X_LONG_NA="'iconic' 'rv'"; - -_OPTS_X_LONG_ARG="'background' 'bd' 'bg' 'bordercolor' 'borderwidth' \ -'bw' 'display' 'fg' 'fn' 'font' 'foreground' 'ft' 'geometry' \ -'resolution' 'title' 'xrm'"; - -###### groffer options inherited from man - -_OPTS_MAN_SHORT_NA=""; -_OPTS_MAN_SHORT_ARG=""; - -_OPTS_MAN_LONG_NA="'all' 'ascii' 'catman' 'ditroff' \ -'local-file' 'location' 'troff' 'update'"; - -_OPTS_MAN_LONG_ARG="'locale' 'manpath' \ -'pager' 'preprocessor' 'prompt' 'sections' 'systems' 'troff-device'"; - -###### additional options for parsing $MANOPT only - -_OPTS_MANOPT_SHORT_NA="'7' 'a' 'c' 'd' 'D' 'f' 'h' 'k' 'l' 't' 'u' \ -'V' 'w' 'Z'"; -_OPTS_MANOPT_SHORT_ARG="'e' 'L' 'm' 'M' 'p' 'P' 'r' 'S' 'T'"; - -_OPTS_MANOPT_LONG_NA="${_OPTS_MAN_LONG_NA} \ -'apropos' 'debug' 'default' 'help' 'html' 'ignore-case' 'location-cat' \ -'match-case' 'troff' 'update' 'version' 'whatis' 'where' 'where-cat'"; - -_OPTS_MANOPT_LONG_ARG="${_OPTS_MAN_LONG_NA} \ -'config_file' 'encoding' 'extension' 'locale'"; - -###### collections of command line options - -_OPTS_CMDLINE_SHORT_NA="${_OPTS_GROFFER_SHORT_NA} \ -${_OPTS_GROFF_SHORT_NA} ${_OPTS_X_SHORT_NA} ${_OPTS_MAN_SHORT_NA}"; -_OPTS_CMDLINE_SHORT_ARG="${_OPTS_GROFFER_SHORT_ARG} \ -${_OPTS_GROFF_SHORT_ARG} ${_OPTS_X_SHORT_ARG} ${_OPTS_MAN_SHORT_ARG}"; - -_OPTS_CMDLINE_LONG_NA="${_OPTS_GROFFER_LONG_NA} \ -${_OPTS_GROFF_LONG_NA} ${_OPTS_X_LONG_NA} ${_OPTS_MAN_LONG_NA}"; -_OPTS_CMDLINE_LONG_ARG="${_OPTS_GROFFER_LONG_ARG} \ -${_OPTS_GROFF_LONG_ARG} ${_OPTS_MAN_LONG_ARG} ${_OPTS_X_LONG_ARG}"; - - -######################################################################## -# read-write variables (global to this file) -######################################################################## - -export _ALL_PARAMS; # All options and file name parameters -export _ADDOPTS_GROFF; # Transp. options for groff (`eval'). -export _ADDOPTS_POST; # Transp. options postproc (`eval'). -export _ADDOPTS_X; # Transp. options X postproc (`eval'). -export _APROPOS_PROG; # Program to run apropos. -export _APROPOS_SECTIONS; # Sections for different --apropos-*. -export _DEFAULT_MODES; # Set default modes. -export _DISPLAY_MODE; # Display mode. -export _DISPLAY_PROG; # Viewer program to be used for display. -export _DISPLAY_ARGS; # X resources for the viewer program. -export _FILEARGS; # Stores filespec parameters. -export _FILESPEC_ARG; # Stores the actual filespec parameter. -export _FUNC_STACK; # Store debugging information. -export _REGISTERED_TITLE; # Processed file names. -# _HAS_* from availability tests -export _HAS_COMPRESSION; # `yes' if gzip compression is available -export _HAS_BZIP; # `yes' if bzip2 compression is available -# _MAN_* finally used configuration of man searching -export _MAN_ALL; # search all man pages per filespec -export _MAN_ENABLE; # enable search for man pages -export _MAN_EXT; # extension for man pages -export _MAN_FORCE; # force file parameter to be man pages -export _MAN_IS_SETUP; # setup man variables only once -export _MAN_LANG; # language for man pages -export _MAN_LANG2; # language for man pages -export _MAN_LANG_DONE; # language dirs added to man path -export _MAN_PATH; # search path for man pages -export _MAN_SEC; # sections for man pages; sep. `:' -export _MAN_SEC_DONE; # sections added to man path -export _MAN_SYS; # system names for man pages; sep. `,' -export _MAN_SYS; # system names added to man path -# _MANOPT_* as parsed from $MANOPT -export _MANOPT_ALL; # $MANOPT --all -export _MANOPT_EXTENSION; # $MANOPT --extension -export _MANOPT_LANG; # $MANOPT --locale -export _MANOPT_PATH; # $MANOPT --manpath -export _MANOPT_PAGER; # $MANOPT --pager -export _MANOPT_SEC; # $MANOPT --sections -export _MANOPT_SYS; # $MANOPT --systems -# _OPT_* as parsed from groffer command line -export _OPT_ALL; # display all suitable man pages. -export _OPT_APROPOS; # call `apropos' program. -export _OPT_BD; # set border color in some modes. -export _OPT_BG; # set background color in some modes. -export _OPT_BW; # set border width in some modes. -export _OPT_DEFAULT_MODES; # `,'-list of modes when no mode given. -export _OPT_DEVICE; # device option. -export _OPT_DO_NOTHING; # do nothing in main_display(). -export _OPT_DISPLAY; # set X display. -export _OPT_FG; # set foreground color in some modes. -export _OPT_FN; # set font in some modes. -export _OPT_GEOMETRY; # set size and position of viewer in X. -export _OPT_ICONIC; # -iconic option for X viewers. -export _OPT_LANG; # set language for man pages -export _OPT_LOCATION; # print processed file names to stderr -export _OPT_MODE; # values: X, tty, Q, Z, "" -export _OPT_MANPATH; # manual setting of path for man-pages -export _OPT_PAGER; # specify paging program for tty mode -export _OPT_RESOLUTION; # set X resolution in dpi -export _OPT_RV; # reverse fore- and background colors. -export _OPT_SECTIONS; # sections for man page search -export _OPT_SYSTEMS; # man pages of different OS's -export _OPT_TITLE; # title for gxditview window -export _OPT_TEXT_DEVICE; # set device for tty mode. -export _OPT_V; # groff option -V. -export _OPT_VIEWER_DVI; # viewer program for dvi mode -export _OPT_VIEWER_PDF; # viewer program for pdf mode -export _OPT_VIEWER_PS; # viewer program for ps mode -export _OPT_VIEWER_HTML; # viewer program for html mode -export _OPT_VIEWER_X; # viewer program for x mode -export _OPT_WHATIS; # print the man description -export _OPT_XRM; # specify X resource. -export _OPT_Z; # groff option -Z. -export _OUTPUT_FILE_NAME; # output generated, see main_set_res..() -export _VIEWER_TERMINAL; # viewer options for terminal (--*-viewer-tty) -# _TMP_* temporary directory and files -export _TMP_DIR; # groffer directory for temporary files -export _TMP_CAT; # stores concatenation of everything -export _TMP_STDIN; # stores stdin, if any - -# these variables are preset in section `Preset' after the rudim. test - - -######################################################################## -# Preset and reset of read-write global variables -######################################################################## - - -export _START_DIR; # directory at start time of the script -_START_DIR="$(pwd)"; - -# For variables that can be reset by option `--default', see reset(). - -_FILEARGS=''; - -# _HAS_* from availability tests -_HAS_COMPRESSION=''; -_HAS_BZIP=''; - -# _TMP_* temporary files -_TMP_DIR=''; -_TMP_CAT=''; -_TMP_CONF=''; -_TMP_STDIN=''; - - -######################################################################## -# reset () -# -# Reset the variables that can be affected by options to their default. -# -reset() -{ - if test "$#" -ne 0 - then - error "reset() does not have arguments."; - fi; - - _ADDOPTS_GROFF=''; - _ADDOPTS_POST=''; - _ADDOPTS_X=''; - _APROPOS_PROG=''; - _APROPOS_SECTIONS=''; - _DISPLAY_ARGS=''; - _DISPLAY_MODE=''; - _DISPLAY_PROG=''; - _REGISTERED_TITLE=''; - - # _MAN_* finally used configuration of man searching - _MAN_ALL='no'; - _MAN_ENABLE='yes'; # do search for man-pages - _MAN_EXT=''; - _MAN_FORCE='no'; # first local file, then search man page - _MAN_IS_SETUP='no'; - _MAN_LANG=''; - _MAN_LANG2=''; - _MAN_PATH=''; - _MAN_SEC=''; - _MAN_SEC_DONE='no'; - _MAN_SYS=''; - _MAN_SYS_DONE='no'; - - # _MANOPT_* as parsed from $MANOPT - _MANOPT_ALL='no'; - _MANOPT_EXTENSION=''; - _MANOPT_LANG=''; - _MANOPT_PATH=''; - _MANOPT_PAGER=''; - _MANOPT_SEC=''; - _MANOPT_SYS=''; - - # _OPT_* as parsed from groffer command line - _OPT_ALL='no'; - _OPT_APROPOS='no'; - _OPT_BD=''; - _OPT_BG=''; - _OPT_BW=''; - _OPT_DEFAULT_MODES=''; - _OPT_DEVICE=''; - _OPT_DISPLAY=''; - _OPT_DO_NOTHING='no'; - _OPT_FG=''; - _OPT_FN=''; - _OPT_GEOMETRY=''; - _OPT_ICONIC='no'; - _OPT_LANG=''; - _OPT_LOCATION='no'; - _OPT_MODE=''; - _OPT_MANPATH=''; - _OPT_PAGER=''; - _OPT_RESOLUTION=''; - _OPT_RV='no'; - _OPT_SECTIONS=''; - _OPT_SYSTEMS=''; - _OPT_TITLE=''; - _OPT_TEXT_DEVICE=''; - _OPT_V='no'; - _OPT_VIEWER_DVI=''; - _OPT_VIEWER_PDF=''; - _OPT_VIEWER_PS=''; - _OPT_VIEWER_HTML=''; - _OPT_VIEWER_X=''; - _OPT_WHATIS='no'; - _OPT_XRM=''; - _OPT_Z='no'; - _VIEWER_TERMINAL='no'; -} - -reset; - - -######################################################################## -# Functions for error handling and debugging -######################################################################## - - -############## -# echo1 (*) -# -# Output to stdout. -# -# Arguments : arbitrary text including `-'. -# -echo1() -{ - cat <*) -# -# Output to stderr. -# -# Arguments : arbitrary text. -# -echo2() -{ - cat >&2 <) -# -# Print to standard error as a debugging aid. -# -# Globals: $_DEBUG_LM -# -landmark() -{ - if test _"${_DEBUG_LM}"_ = _yes_ - then - echo2 "LM: $*"; - fi; -} - -landmark "1: debugging functions"; - - -############## -# clean_up () -# -# Clean up at exit. -# -clean_up() -{ - cd "${_START_DIR}" >"${_NULL_DEV}" 2>&1; - if test _${_DEBUG_KEEP_FILES}_ = _yes_ - then - echo2 "Kept temporary directory ${_TMP_DIR}." - else - if test _"${_TMP_DIR}"_ != __ - then - if test -d "${_TMP_DIR}" || test -f "${_TMP_DIR}" - then - rm -f -r "${_TMP_DIR}" >${_NULL_DEV} 2>&1; - fi; - fi; - fi; -} - - -############# -# diag (text>*) -# -# Output a diagnostic message to stderr -# -diag() -{ - echo2 '>>>>>'"$*"; -} - - -############# -# error (*) -# -# Print an error message to standard error, print the function stack, -# exit with an error condition. The argument should contain the name -# of the function from which it was called. This is for system errors. -# -error() -{ - case "$#" in - 1) echo2 'groffer error: '"$1"; ;; - *) echo2 'groffer error: wrong number of arguments in error().'; ;; - esac; - func_stack_dump; - if test _"${_TMP_DIR}"_ != __ && test -d "${_TMP_DIR}" - then - : >"${_TMP_DIR}"/,error; - fi; - exit "${_ERROR}"; -} - - -############# -# error_user (*) -# -# Print an error message to standard error; exit with an error condition. -# The error is supposed to be produce by the user. So the funtion stack -# is omitted. -# -error_user() -{ - case "$#" in - 1) - echo2 'groffer error: '"$1"; - ;; - *) - echo2 'groffer error: wrong number of arguments in error_user().'; - ;; - esac; - if test _"${_DEBUG_USER_WITH_STACK}"_ = _yes_ - then - func_stack_dump; - fi; - if test _"${_TMP_DIR}"_ != __ && test -d "${_TMP_DIR}" - then - : >"${_TMP_DIR}"/,error; - fi; - exit "${_ERROR}"; -} - - -############# -# exit_test () -# -# Test whether the former command ended with error(). Exit again. -# -# Globals: $_ERROR -# -exit_test() -{ - if test "$?" = "${_ERROR}" - then - exit ${_ERROR}; - fi; - if test _"${_TMP_DIR}"_ != __ && test -f "${_TMP_DIR}"/,error - then - exit ${_ERROR}; - fi; -} - - -############# -# func_check ( "$@") -# -# Check number of arguments and register to _FUNC_STACK. -# -# Arguments: >=3 -# : name of the calling function. -# : a relational operator: = != < > <= >= -# : number of arguments to be checked against -# "$@": the arguments of the calling function. -# -# Variable prefix: fc -# -func_check() -{ - if test "$#" -lt 3 - then - error 'func_check() needs at least 3 arguments.'; - fi; - fc_fname="$1"; - case "$3" in - 1) - fc_nargs="$3"; - fc_s=''; - ;; - 0|[2-9]) - fc_nargs="$3"; - fc_s='s'; - ;; - *) - error "func_check(): third argument must be a digit."; - ;; - esac; - case "$2" in - '='|'-eq') - fc_op='-eq'; - fc_comp='exactly'; - ;; - '>='|'-ge') - fc_op='-ge'; - fc_comp='at least'; - ;; - '<='|'-le') - fc_op='-le'; - fc_comp='at most'; - ;; - '<'|'-lt') - fc_op='-lt'; - fc_comp='less than'; - ;; - '>'|'-gt') - fc_op='-gt'; - fc_comp='more than'; - ;; - '!='|'-ne') - fc_op='-ne'; - fc_comp='not'; - ;; - *) - error \ - 'func_check(): second argument is not a relational operator.'; - ;; - esac; - shift; - shift; - shift; - if test "$#" "${fc_op}" "${fc_nargs}" - then - do_nothing; - else - error "func_check(): \ -${fc_fname}"'() needs '"${fc_comp} ${fc_nargs}"' argument'"${fc_s}"'.'; - fi; - func_push "${fc_fname}"; - if test _"${_DEBUG_STACKS}"_ = _yes_ - then - echo2 '+++ '"${fc_fname} $@"; - echo2 '>>> '"${_FUNC_STACK}"; - fi; - eval ${_UNSET} fc_comp; - eval ${_UNSET} fc_fname; - eval ${_UNSET} fc_nargs; - eval ${_UNSET} fc_op; - eval ${_UNSET} fc_s; -} - - -############# -# func_pop () -# -# Retrieve the top element from the stack. -# -# The stack elements are separated by `!'; the popped element is -# identical to the original element, except that all `!' characters -# were removed. -# -# Arguments: 1 -# -func_pop() -{ - if test "$#" -ne 0 - then - error 'func_pop() does not have arguments.'; - fi; - case "${_FUNC_STACK}" in - '') - if test _"${_DEBUG_STACKS}"_ = _yes_ - then - error 'func_pop(): stack is empty.'; - fi; - ;; - *!*) - # split at first bang `!'. - _FUNC_STACK="$(echo1 "${_FUNC_STACK}" | sed -e 's/^[^!]*!//')"; - exit_test; - ;; - *) - _FUNC_STACK=''; - ;; - esac; - if test _"${_DEBUG_STACKS}"_ = _yes_ - then - echo2 '<<< '"${_FUNC_STACK}"; - fi; -} - - -############# -# func_push () -# -# Store another element to stack. -# -# The stack elements are separated by `!'; if contains a `!' -# it is removed first. -# -# Arguments: 1 -# -# Variable prefix: fp -# -func_push() -{ - if test "$#" -ne 1 - then - error 'func_push() needs 1 argument.'; - fi; - case "$1" in - *'!'*) - # remove all bangs `!'. - fp_element="$(echo1 "$1" | sed -e 's/!//g')"; - exit_test; - ;; - *) - fp_element="$1"; - ;; - esac; - if test _"${_FUNC_STACK}"_ = __ - then - _FUNC_STACK="${fp_element}"; - else - _FUNC_STACK="${fp_element}!${_FUNC_STACK}"; - fi; - eval ${_UNSET} fp_element; -} - - -############# -# func_stack_dump () -# -# Print the content of the stack. Ignore the arguments. -# -func_stack_dump() -{ - diag 'call stack: '"${_FUNC_STACK}"; -} - - -######################################################################## -# System Test -######################################################################## - -landmark "2: system test"; - -# Test the availability of the system utilities used in this script. - - -######################################################################## -# Test of function `sed'. -# - -if test _"$(echo xTesTx \ - | sed -e 's/^.\([Tt]e*x*sTT*\).*$/\1/' \ - | sed -e 's|T|t|g')"_ != _test_ -then - error 'Test of "sed" command failed.'; -fi; - - -######################################################################## -# Test of function `cat'. -# -if test _"$(echo test | cat)"_ != _test_ -then - error 'Test of "cat" command failed.'; -fi; - - -######################################################################## -# Test for compression. -# -if test _"$(echo 'test' | gzip -c -d -f - 2>${_NULL_DEV})"_ = _test_ -then - _HAS_COMPRESSION='yes'; - if echo1 'test' | bzip2 -c 2>${_NULL_DEV} | bzip2 -t 2>${_NULL_DEV} \ - && test _"$(echo 'test' | bzip2 -c 2>${_NULL_DEV} \ - | bzip2 -d -c 2>${_NULL_DEV})"_ \ - = _test_ - then - _HAS_BZIP='yes'; - else - _HAS_BZIP='no'; - fi; -else - _HAS_COMPRESSION='no'; - _HAS_BZIP='no'; -fi; - - -######################################################################## -# Definition of normal Functions in alphabetical order -######################################################################## -landmark "3: functions"; - -######################################################################## -# apropos_filespec () -# -# Setup for the --apropos* options -# -apropos_filespec() -{ - - func_check apropos_filespec '=' 0 "$@"; - if obj _OPT_APROPOS is_yes - then - eval to_tmp_line \ - "'.SH $(echo1 "${_FILESPEC_ARG}" | sed 's/[^\\]-/\\-/g')'"; - exit_test; - if obj _APROPOS_PROG is_empty - then - error 'apropos_filespec: apropos_setup() must be run first.'; - fi; - if obj _APROPOS_SECTIONS is_empty - then - if obj _OPT_SECTIONS is_empty - then - s='^.*(.*).*$'; - else - s='^.*(['"$(echo1 "${_OPT_SECTIONS}" | sed -e 's/://g')"']'; - fi; - else - s='^.*(['"${_APROPOS_SECTIONS}"']'; - fi; - eval "${_APROPOS_PROG}" "'${_FILESPEC_ARG}'" | \ - sed -n -e ' -/^'"${_FILESPEC_ARG}"': /p -/'"$s"'/p -' | \ - sort |\ - sed -e ' -s/^\(.* (..*)\) *- *\(.*\)$/\.br\n\.TP 15\n\.BR \1\n\2/ -' >>"${_TMP_CAT}"; - fi; - eval "${return_ok}"; -} - - -######################################################################## -# apropos_setup () -# -# Setup for the --apropos* options -# -apropos_setup() -{ - func_check apropos_setup '=' 0 "$@"; - if obj _OPT_APROPOS is_yes - then - if is_prog apropos - then - _APROPOS_PROG='apropos'; - elif is_prog man - then - if man --apropos man >${_NULL_DEV} 2>${_NULL_DEV} - then - _APROPOS_PROG='man --apropos'; - elif man -k man >${_NULL_DEV} 2>${_NULL_DEV} - then - _APROPOS_PROG='man -k'; - fi; - fi; - if obj _APROPOS_PROG is_empty - then - error 'apropos_setup: no apropos program available.'; - fi; - to_tmp_line '.TH GROFFER APROPOS'; - fi; - eval "${return_ok}"; -} - - -######################################################################## -# base_name () -# -# Get the file name part of , i.e. delete everything up to last -# `/' from the beginning of . Remove final slashes, too, to get a -# non-empty output. -# -# Arguments : 1 -# Output : the file name part (without slashes) -# -# Variable prefix: bn -# -base_name() -{ - func_check base_name = 1 "$@"; - bn_name="$1"; - case "${bn_name}" in - */) - # delete all final slashes - bn_name="$(echo1 "${bn_name}" | sed -e 's|//*$||')"; - exit_test; - ;; - esac; - case "${bn_name}" in - /|'') - eval ${_UNSET} bn_name; - eval "${return_bad}"; - ;; - */*) - # delete everything before and including the last slash `/'. - echo1 "${bn_name}" | sed -e 's|^.*//*\([^/]*\)$|\1|'; - ;; - *) - obj bn_name echo1; - ;; - esac; - eval ${_UNSET} bn_name; - eval "${return_ok}"; -} - - -######################################################################## -# cat_z () -# -# Decompress if possible or just print to standard output. -# -# gzip, bzip2, and .Z decompression is supported. -# -# Arguments: 1, a file name. -# Output: the content of , possibly decompressed. -# -if test _"${_HAS_COMPRESSION}"_ = _yes_ -then - cat_z() - { - func_check cat_z = 1 "$@"; - case "$1" in - '') - error 'cat_z(): empty file name'; - ;; - '-') - error 'cat_z(): for standard input use save_stdin()'; - ;; - esac; - if obj _HAS_BZIP is_yes - then - if bzip2 -t "$1" 2>${_NULL_DEV} - then - bzip2 -c -d "$1" 2>${_NULL_DEV}; - eval "${return_ok}"; - fi; - fi; - gzip -c -d -f "$1" 2>${_NULL_DEV}; - eval "${return_ok}"; - } -else - cat_z() - { - func_check cat_z = 1 "$@"; - cat "$1"; - eval "${return_ok}"; - } -fi; - - -######################################################################## -# clean_up () -# -# Do the final cleaning up before exiting; used by the trap calls. -# -# defined above - - -######################################################################## -# diag (*) -# -# Print marked message to standard error; useful for debugging. -# -# defined above - - -######################################################################## -landmark '4: dirname()*'; -######################################################################## - -####################################################################### -# dirname_append ( ) -# -# Append `name' to `dir' with clean handling of `/'. -# -# Arguments : 2 -# Output : the generated new directory name / -# -dirname_append() -{ - func_check dirname_append = 2 "$@"; - if is_empty "$1" - then - error "dir_append(): first argument is empty."; - fi; - if is_empty "$2" - then - echo1 "$1"; - else - dirname_chop "$1"/"$2"; - fi; - eval "${return_ok}"; -} - - -######################################################################## -# dirname_chop () -# -# Remove unnecessary slashes from directory name. -# -# Argument: 1, a directory name. -# Output: path without double, or trailing slashes. -# -# Variable prefix: dc -# -dirname_chop() -{ - func_check dirname_chop = 1 "$@"; - # replace all multiple slashes by a single slash `/'. - dc_res="$(echo1 "$1" | sed -e 's|///*|/|g')"; - exit_test; - case "${dc_res}" in - ?*/) - # remove trailing slash '/'; - echo1 "${dc_res}" | sed -e 's|/$||'; - ;; - *) - obj dc_res echo1 - ;; - esac; - eval ${_UNSET} dc_res; - eval "${return_ok}"; -} - - -######################################################################## -# do_filearg () -# -# Append the file, man-page, or standard input corresponding to the -# argument to the temporary file. If this is compressed in the gzip -# or Z format it is decompressed. A title element is generated. -# -# Argument either: -# - name of an existing file. -# - `-' to represent standard input (several times allowed). -# - `man:name.(section)' the man-page for `name' in `section'. -# - `man:name.section' the man-page for `name' in `section'. -# - `man:name' the man-page for `name' in the lowest `section'. -# - `name.section' the man-page for `name' in `section'. -# - `name' the man-page for `name' in the lowest `section'. -# Globals : -# $_TMP_STDIN, $_MAN_ENABLE, $_MAN_IS_SETUP, $_OPT_MAN -# -# Output : none -# Return : $_GOOD if found, ${_BAD} otherwise. -# -# Variable prefix: df -# -do_filearg() -{ - func_check do_filearg = 1 "$@"; - df_filespec="$1"; - # store sequence into positional parameters - case "${df_filespec}" in - '') - eval ${_UNSET} df_filespec; - eval "${return_good}"; - ;; - '-') - register_file '-'; - eval ${_UNSET} df_filespec; - eval "${return_good}"; - ;; - */*) # with directory part; so no man search - set 'File'; - ;; - *) - if obj _MAN_ENABLE is_yes - then - if obj _MAN_FORCE is_yes - then - set 'Manpage' 'File'; - else - set 'File' 'Manpage'; - fi; - else - set 'File'; - fi; - ;; - esac; - for i - do - case "$i" in - File) - if test -f "${df_filespec}" - then - if test -r "${df_filespec}" - then - register_file "${df_filespec}"; - eval ${_UNSET} df_filespec; - eval ${_UNSET} df_no_man; - eval "${return_good}"; - else - echo2 "could not read \`${df_filespec}'"; - eval ${_UNSET} df_filespec; - eval ${_UNSET} df_no_man; - eval "${return_bad}"; - fi; - else - if obj df_no_man is_not_empty - then - if obj _OPT_WHATIS is_yes - then - to_tmp_line "This is neither a file nor a man page." - else - echo2 "\`${df_filespec}' is neither a file nor a man page." - fi; - fi; - df_no_file=yes; - continue; - fi; - ;; - Manpage) # parse filespec as man page - if obj _MAN_IS_SETUP is_not_yes - then - man_setup; - fi; - if man_do_filespec "${df_filespec}" - then - eval ${_UNSET} df_filespec; - eval ${_UNSET} df_no_file; - eval "${return_good}"; - else - if obj df_no_file is_not_empty - then - if obj _OPT_WHATIS is_yes - then - to_tmp_line "This is neither a file nor a man page." - else - echo2 "\`${df_filespec}' is neither a file nor a man page." - fi; - fi; - df_no_man=yes; - continue; - fi; - ;; - esac; - done; - eval ${_UNSET} df_filespec; - eval ${_UNSET} df_no_file; - eval ${_UNSET} df_no_man; - eval "${return_bad}"; -} # do_filearg() - - -######################################################################## -# do_nothing () -# -# Dummy function. -# -do_nothing() -{ - eval return "${_OK}"; -} - - -######################################################################## -# echo2 (*) -# -# Print to standard error with final line break. -# -# defined above - - -######################################################################## -# error (*) -# -# Print error message and exit with error code. -# -# defined above - - -######################################################################## -# exit_test () -# -# Test whether the former command ended with error(). Exit again. -# -# defined above - - -######################################################################## -# func_check ( "$@") -# -# Check number of arguments and register to _FUNC_STACK. -# -# Arguments: >=3 -# : name of the calling function. -# : a relational operator: = != < > <= >= -# : number of arguments to be checked against -# "$@": the arguments of the calling function. -# -# defined above - -######################################################################### -# func_pop () -# -# Delete the top element from the function call stack. -# -# defined above - - -######################################################################## -# func_push () -# -# Store another element to function call stack. -# -# defined above - - -######################################################################## -# func_stack_dump () -# -# Print the content of the stack. -# -# defined above - - -######################################################################## -# get_first_essential (*) -# -# Retrieve first non-empty argument. -# -# Return : `1' if all arguments are empty, `0' if found. -# Output : the retrieved non-empty argument. -# -# Variable prefix: gfe -# -get_first_essential() -{ - func_check get_first_essential '>=' 0 "$@"; - if is_equal "$#" 0 - then - eval "${return_ok}"; - fi; - for i - do - gfe_var="$i"; - if obj gfe_var is_not_empty - then - obj gfe_var echo1; - eval ${_UNSET} gfe_var; - eval "${return_ok}"; - fi; - done; - eval ${_UNSET} gfe_var; - eval "${return_bad}"; -} - - -######################################################################## -landmark '5: is_*()'; -######################################################################## - -######################################################################## -# is_dir () -# -# Test whether `name' is a directory. -# -# Arguments : 1 -# Return : `0' if arg1 is a directory, `1' otherwise. -# -is_dir() -{ - func_check is_dir '=' 1 "$@"; - if test _"$1"_ != __ && test -d "$1" && test -r "$1" - then - eval "${return_yes}"; - fi; - eval "${return_no}"; -} - - -######################################################################## -# is_empty () -# -# Test whether `string' is empty. -# -# Arguments : <=1 -# Return : `0' if arg1 is empty or does not exist, `1' otherwise. -# -is_empty() -{ - func_check is_empty '=' 1 "$@"; - if test _"$1"_ = __ - then - eval "${return_yes}"; - fi; - eval "${return_no}"; -} - - -######################################################################## -# is_equal ( ) -# -# Test whether `string1' is equal to . -# -# Arguments : 2 -# Return : `0' both arguments are equal strings, `1' otherwise. -# -is_equal() -{ - func_check is_equal '=' 2 "$@"; - if test _"$1"_ = _"$2"_ - then - eval "${return_yes}"; - fi; - eval "${return_no}"; -} - - -######################################################################## -# is_existing () -# -# Test whether `name' is an existing file or directory. Solaris 2.5 does -# not have `test -e'. -# -# Arguments : 1 -# Return : `0' if arg1 exists, `1' otherwise. -# -is_existing() -{ - func_check is_existing '=' 1 "$@"; - if test _"$1"_ = __ - then - eval "${return_no}"; - fi; - if test -f "$1" || test -d "$1" || test -c "$1" - then - eval "${return_yes}"; - fi; - eval "${return_no}"; -} - - -######################################################################## -# is_file () -# -# Test whether `name' is a readable file. -# -# Arguments : 1 -# Return : `0' if arg1 is a readable file, `1' otherwise. -# -is_file() -{ - func_check is_file '=' 1 "$@"; - if is_not_empty "$1" && test -f "$1" && test -r "$1" - then - eval "${return_yes}"; - fi; - eval "${return_no}"; -} - - -######################################################################## -# is_non_empty_file () -# -# Test whether `file_name' is a non-empty existing file. -# -# Arguments : <=1 -# Return : -# `0' if arg1 is a non-empty existing file -# `1' otherwise -# -is_non_empty_file() -{ - func_check is_non_empty_file '=' 1 "$@"; - if is_file "$1" && test -s "$1" - then - eval "${return_yes}"; - fi; - eval "${return_no}"; -} - - -######################################################################## -# is_not_dir () -# -# Test whether `name' is not a readable directory. -# -# Arguments : 1 -# Return : `0' if arg1 is a directory, `1' otherwise. -# -is_not_dir() -{ - func_check is_not_dir '=' 1 "$@"; - if is_dir "$1" - then - eval "${return_no}"; - fi; - eval "${return_yes}"; -} - - -######################################################################## -# is_not_empty () -# -# Test whether `string' is not empty. -# -# Arguments : <=1 -# Return : `0' if arg1 exists and is not empty, `1' otherwise. -# -is_not_empty() -{ - func_check is_not_empty '=' 1 "$@"; - if is_empty "$1" - then - eval "${return_no}"; - fi; - eval "${return_yes}"; -} - - -######################################################################## -# is_not_equal ( ) -# -# Test whether `string1' differs from `string2'. -# -# Arguments : 2 -# -is_not_equal() -{ - func_check is_not_equal '=' 2 "$@"; - if is_equal "$1" "$2" - then - eval "${return_no}"; - fi - eval "${return_yes}"; -} - - -######################################################################## -# is_not_file () -# -# Test whether `name' is a not readable file. -# -# Arguments : 1 (empty allowed) -# -is_not_file() -{ - func_check is_not_file '=' 1 "$@"; - if is_file "$1" - then - eval "${return_no}"; - fi; - eval "${return_yes}"; -} - - -######################################################################## -# is_not_prog ([ [*]]) -# -# Verify that arg is a not program in $PATH. -# -# Arguments : >=0 (empty allowed) -# more args are ignored, this allows to specify progs with arguments -# -is_not_prog() -{ - func_check is_not_prog '>=' 0 "$@"; - case "$#" in - 0) - eval "${return_yes}"; - ;; - *) - if where_is "$1" >${_NULL_DEV} - then - eval "${return_no}"; - fi; - ;; - esac - eval "${return_yes}"; -} - - -######################################################################## -# is_not_writable () -# -# Test whether `name' is a not a writable file or directory. -# -# Arguments : >=1 (empty allowed), more args are ignored -# -is_not_writable() -{ - func_check is_not_writable '>=' 1 "$@"; - if is_writable "$1" - then - eval "${return_no}"; - fi; - eval "${return_yes}"; -} - - -######################################################################## -# is_not_X () -# -# Test whether not running in X Window by checking $DISPLAY -# -is_not_X() -{ - func_check is_X '=' 0 "$@"; - if obj DISPLAY is_empty - then - eval "${return_yes}"; - fi; - eval "${return_no}"; -} - - -######################################################################## -# is_not_yes () -# -# Test whether `string' is not "yes". -# -# Arguments : 1 -# -is_not_yes() -{ - func_check is_not_yes = 1 "$@"; - if is_yes "$1" - then - eval "${return_no}"; - fi; - eval "${return_yes}"; -} - - -######################################################################## -# is_prog ([ [*]]) -# -# Determine whether is a program in $PATH -# -# Arguments : >=0 (empty allowed) -# * are ignored, this allows to specify progs with arguments. -# -is_prog() -{ - func_check is_prog '>=' 0 "$@"; - case "$#" in - 0) - eval "${return_no}"; - ;; - *) - if where_is "$1" >${_NULL_DEV} - then - eval "${return_yes}"; - fi; - ;; - esac - eval "${return_no}"; -} - - -######################################################################## -# is_writable () -# -# Test whether `name' is a writable file or directory. -# -# Arguments : >=1 (empty allowed), more args are ignored -# -is_writable() -{ - func_check is_writable '>=' 1 "$@"; - if test _"$1"_ = __ - then - eval "${return_no}"; - fi; - if test -r "$1" - then - if test -w "$1" - then - eval "${return_yes}"; - fi; - fi; - eval "${return_no}"; -} - - -######################################################################## -# is_X () -# -# Test whether running in X Window by checking $DISPLAY -# -is_X() -{ - func_check is_X '=' 0 "$@"; - if obj DISPLAY is_not_empty - then - eval "${return_yes}"; - fi; - eval "${return_no}"; -} - - -######################################################################## -# is_yes () -# -# Test whether `string' has value "yes". -# -# Return : `0' if arg1 is `yes', `1' otherwise. -# -is_yes() -{ - func_check is_yes '=' 1 "$@"; - if is_equal "$1" 'yes' - then - eval "${return_yes}"; - fi; - eval "${return_no}"; -} - - -######################################################################## -# landmark () -# -# Print debugging information on standard error if $_DEBUG_LM is `yes'. -# -# Globals: $_DEBUG_LM -# -# Defined in section `Debugging functions'. - - -######################################################################## -# leave ([]) -# -# Clean exit without an error or with . -# -leave() -{ - clean_up; - if test $# = 0 - then - exit "${_OK}"; - else - exit "$1"; - fi; -} - - -######################################################################## -landmark '6: list_*()'; -######################################################################## -# -# `list' is an object class that represents an array or list. Its -# data consists of space-separated single-quoted elements. So a list -# has the form "'first' 'second' '...' 'last'". See list_append() for -# more details on the list structure. The array elements of `list' -# can be get by `eval set x "$list"; shift`. - - -######################################################################## -# list_append ( ...) -# -# Arguments: >=2 -# : a variable name for a list of single-quoted elements -# : some sequence of characters. -# Output: none, but $ is set to -# if is empty: "'' '...'" -# otherwise: "$list '' ..." -# -# Variable prefix: la -# -list_append() -{ - func_check list_append '>=' 2 "$@"; - la_name="$1"; - eval la_list='"${'$1'}"'; - shift; - for s - do - la_s="$s"; - case "${la_s}" in - *\'*) - # escape each single quote by replacing each - # "'" (squote) by "'\''" (squote bslash squote squote); - # note that the backslash must be doubled in the following `sed' - la_element="$(echo1 "${la_s}" | sed -e 's/'"${_SQ}"'/&\\&&/g')"; - exit_test; - ;; - '') - la_element=""; - ;; - *) - la_element="${la_s}"; - ;; - esac; - if obj la_list is_empty - then - la_list="'${la_element}'"; - else - la_list="${la_list} '${la_element}'"; - fi; - done; - eval "${la_name}"='"${la_list}"'; - eval ${_UNSET} la_element; - eval ${_UNSET} la_list; - eval ${_UNSET} la_name; - eval ${_UNSET} la_s; - eval "${return_ok}"; -} - - -######################################################################## -# list_from_cmdline ( [...]) -# -# Transform command line arguments into a normalized form. -# -# Options, option arguments, and file parameters are identified and -# output each as a single-quoted argument of its own. Options and -# file parameters are separated by a '--' argument. -# -# Arguments: >=1 -# : common part of a set of 4 environment variable names: -# $_SHORT_NA: list of short options without an arg. -# $_SHORT_ARG: list of short options that have an arg. -# $_LONG_NA: list of long options without an arg. -# $_LONG_ARG: list of long options that have an arg. -# ...: the arguments from a command line, such as "$@", -# the content of a variable, or direct arguments. -# -# Output: ['-[-]opt' ['optarg']]... '--' ['filename']... -# -# Example: -# list_from_cmdline PRE 'a b' 'c' '' 'long' -a f1 -bcarg --long=larg f2 -# If $PRE_SHORT_NA, $PRE_SHORT_ARG, $PRE_LONG_NA, and $PRE_LONG_ARG are -# none-empty option lists, this will result in printing: -# '-a' '-b' '-c' 'arg' '--long' 'larg' '--' 'f1' 'f2' -# -# Use this function in the following way: -# eval set x "$(args_norm PRE_NAME "$@")"; -# shift; -# while test "$1" != '--'; do -# case "$1" in -# ... -# esac; -# shift; -# done; -# shift; #skip '--' -# # all positional parameters ("$@") left are file name parameters. -# -# Variable prefix: lfc -# -list_from_cmdline() -{ - func_check list_from_cmdline '>=' 1 "$@"; - lfc_short_n="$(obj_data "$1"_SHORT_NA)"; # short options, no argument - lfc_short_a="$(obj_data "$1"_SHORT_ARG)"; # short options, with argument - lfc_long_n="$(obj_data "$1"_LONG_NA)"; # long options, no argument - lfc_long_a="$(obj_data "$1"_LONG_ARG)"; # long options, with argument - exit_test; - if obj lfc_short_n is_empty - then - error 'list_from_cmdline(): no $'"$1"'_SHORT_NA options.'; - fi; - if obj lfc_short_a is_empty - then - error 'list_from_cmdline(): no $'"$1"'_SHORT_ARG options.'; - fi; - if obj lfc_long_n is_empty - then - error 'list_from_cmdline(): no $'"$1"'_LONG_NA options.'; - fi; - if obj lfc_long_a is_empty - then - error 'list_from_cmdline(): no $'"$1"'_LONG_ARG options.'; - fi; - - shift; - if is_equal "$#" 0 - then - echo1 -- - eval ${_UNSET} lfc_fparams; - eval ${_UNSET} lfc_short_a; - eval ${_UNSET} lfc_short_n; - eval ${_UNSET} lfc_long_a; - eval ${_UNSET} lfc_long_n; - eval ${_UNSET} lfc_result; - eval "${return_ok}"; - fi; - - lfc_fparams=''; - lfc_result=''; - while test "$#" -ge 1 - do - lfc_arg="$1"; - shift; - case "${lfc_arg}" in - --) break; ;; - --*=*) - # delete leading '--'; - lfc_abbrev="$(echo1 "${lfc_arg}" | sed -e 's/^--//')"; - lfc_with_equal="${lfc_abbrev}"; - # extract option by deleting from the first '=' to the end - lfc_abbrev="$(echo1 "${lfc_with_equal}" | \ - sed -e 's/^\([^=]*\)=.*$/\1/')"; - lfc_opt="$(list_single_from_abbrev lfc_long_a "${lfc_abbrev}")"; - exit_test; - if obj lfc_opt is_empty - then - error_user "--${lfc_abbrev} is not an option."; - else - # get the option argument by deleting up to first `=' - lfc_optarg="$(echo1 "${lfc_with_equal}" | sed -e 's/^[^=]*=//')"; - exit_test; - list_append lfc_result "--${lfc_opt}" "${lfc_optarg}"; - continue; - fi; - ;; - --*) - # delete leading '--'; - lfc_abbrev="$(echo1 "${lfc_arg}" | sed -e 's/^--//')"; - if list_has lfc_long_n "${lfc_abbrev}" - then - lfc_opt="${lfc_abbrev}"; - else - exit_test; - lfc_opt="$(list_single_from_abbrev lfc_long_n "${lfc_abbrev}")"; - exit_test; - if obj lfc_opt is_not_empty && is_not_equal "$#" 0 - then - a="$(list_single_from_abbrev lfc_long_a "${lfc_abbrev}")"; - exit_test; - if obj a is_not_empty - then - error_user "The abbreviation ${lfc_arg} \ -has multiple options: --${lfc_opt} and --${a}."; - fi; - fi; - fi; - if obj lfc_opt is_not_empty - then - # long option, no argument - list_append lfc_result "--${lfc_opt}"; - continue; - fi; - lfc_opt="$(list_single_from_abbrev lfc_long_a "${lfc_abbrev}")"; - exit_test; - if obj lfc_opt is_not_empty - then - # long option with argument - if test "$#" -le 0 - then - error_user "no argument for option --${lfc_opt}." - fi; - list_append lfc_result "--${lfc_opt}" "$1"; - shift; - continue; - fi; - error_user "${lfc_arg} is not an option."; - ;; - -?*) # short option (cluster) - # delete leading `-'; - lfc_rest="$(echo1 "${lfc_arg}" | sed -e 's/^-//')"; - exit_test; - while obj lfc_rest is_not_empty - do - # get next short option from cluster (first char of $lfc_rest) - lfc_optchar="$(echo1 "${lfc_rest}" | sed -e 's/^\(.\).*$/\1/')"; - # remove first character from ${lfc_rest}; - lfc_rest="$(echo1 "${lfc_rest}" | sed -e 's/^.//')"; - exit_test; - if list_has lfc_short_n "${lfc_optchar}" - then - list_append lfc_result "-${lfc_optchar}"; - continue; - elif list_has lfc_short_a "${lfc_optchar}" - then - if obj lfc_rest is_empty - then - if test "$#" -ge 1 - then - list_append lfc_result "-${lfc_optchar}" "$1"; - shift; - continue; - else - error_user "no argument for option -${lfc_optchar}."; - fi; - else # rest is the argument - list_append lfc_result "-${lfc_optchar}" "${lfc_rest}"; - lfc_rest=''; - continue; - fi; - else - error_user "unknown option -${lfc_optchar}."; - fi; - done; - ;; - *) - # Here, $lfc_arg is not an option, so a file parameter. - list_append lfc_fparams "${lfc_arg}"; - - # Ignore the strange POSIX option handling to end option - # parsing after the first file name argument. To reuse it, do - # a `break' here if $POSIXLY_CORRECT of `bash' is not empty. - # When `bash' is called as `sh' $POSIXLY_CORRECT is set - # automatically to `y'. - ;; - esac; - done; - list_append lfc_result '--'; - if obj lfc_fparams is_not_empty - then - lfc_result="${lfc_result} ${lfc_fparams}"; - fi; - if test "$#" -gt 0 - then - list_append lfc_result "$@"; - fi; - obj lfc_result echo1; - eval ${_UNSET} lfc_abbrev; - eval ${_UNSET} lfc_fparams; - eval ${_UNSET} lfc_short_a; - eval ${_UNSET} lfc_short_n; - eval ${_UNSET} lfc_long_a; - eval ${_UNSET} lfc_long_n; - eval ${_UNSET} lfc_result; - eval ${_UNSET} lfc_arg; - eval ${_UNSET} lfc_opt; - eval ${_UNSET} lfc_opt_arg; - eval ${_UNSET} lfc_opt_char; - eval ${_UNSET} lfc_with_equal; - eval ${_UNSET} lfc_rest; - eval "${return_ok}"; -} # list_from_cmdline() - - -######################################################################## -# list_from_split ( ) -# -# In , escape all white space characters and replace each -# by space. -# -# Arguments: 2: a that is to be split into parts divided by -# -# Output: the resulting list string -# -# Variable prefix: lfs -# -list_from_split() -{ - func_check list_from_split = 2 "$@"; - - # precede each space or tab by a backslash `\' (doubled for `sed') - lfs_s="$(echo1 "$1" | sed -e 's/\('"${_SPACE_SED}"'\)/\\\1/g')"; - exit_test; - - # replace split character of string by the list separator ` ' (space). - case "$2" in - /) # cannot use normal `sed' separator - echo1 "${lfs_s}" | sed -e 's|'"$2"'| |g'; - ;; - ?) # use normal `sed' separator - echo1 "${lfs_s}" | sed -e 's/'"$2"'/ /g'; - ;; - ??*) - error 'list_from_split(): separator must be a single character.'; - ;; - esac; - eval ${_UNSET} lfs_s; - eval "${return_ok}"; -} - - -######################################################################## -# list_get () -# -# Check whether is a space-separated list of '-quoted elements. -# -# If the test fails an error is raised. -# If the test succeeds the argument is echoed. -# -# Testing criteria: -# A list has the form "'first' 'second' '...' 'last'". So it has a -# leading and a final quote and the elements are separated by "' '" -# constructs. If these are all removed there should not be any -# unescaped single-quotes left. Watch out for escaped single -# quotes; they have the form '\'' (sq bs sq sq). - -# Arguments: 1 -# Output: the argument unchanged, if the check succeeded. -# -# Variable prefix: lg -# -list_get() -{ - func_check list_get = 1 "$@"; - eval lg_list='"${'$1'}"'; - # remove leading and final space characters - lg_list="$(echo1 "${lg_list}" | sed -e ' -s/^'"${_SPACE_SED}"'*// -s/'"${_SPACE_SED}"'*$// -')"; - exit_test; - case "${lg_list}" in - '') - eval ${_UNSET} lg_list; - eval "${return_ok}"; - ;; - \'*\') - obj lg_list echo1; - eval ${_UNSET} lg_list; - eval "${return_ok}"; - ;; - *) - error "list_get(): bad list: $1" - ;; - esac; - eval ${_UNSET} lg_list; - eval "${return_ok}"; -} - - -######################################################################## -# list_has ( ) -# -# Test whether the list has the element . -# -# Arguments: 2 -# : a variable name for a list of single-quoted elements -# : some sequence of characters. -# -# Variable prefix: lh -# -list_has() -{ - func_check list_has = 2 "$@"; - eval lh_list='"${'$1'}"'; - if obj lh_list is_empty - then - eval "${_UNSET}" lh_list; - eval "${return_no}"; - fi; - case "$2" in - \'*\') lh_element=" $2 "; ;; - *) lh_element=" '$2' "; ;; - esac; - if string_contains " ${lh_list} " "${lh_element}" - then - eval "${_UNSET}" lh_list; - eval "${_UNSET}" lh_element; - eval "${return_yes}"; - else - eval "${_UNSET}" lh_list; - eval "${_UNSET}" lh_element; - eval "${return_no}"; - fi; -} - - -######################################################################## -# list_has_abbrev ( ) -# -# Test whether the list has an element starting with . -# -# Arguments: 2 -# : a variable name for a list of single-quoted elements -# : some sequence of characters. -# -# Variable prefix: lha -# -list_has_abbrev() -{ - func_check list_has_abbrev = 2 "$@"; - eval lha_list='"${'$1'}"'; - if obj lha_list is_empty - then - eval "${_UNSET}" lha_list; - eval "${return_no}"; - fi; - case "$2" in - \'*) - lha_element="$(echo1 "$2" | sed -e 's/'"${_SQ}"'$//')"; - exit_test; - ;; - *) lha_element="'$2"; ;; - esac; - if string_contains " ${lha_list}" " ${lha_element}" - then - eval "${_UNSET}" lha_list; - eval "${_UNSET}" lha_element; - eval "${return_yes}"; - else - eval "${_UNSET}" lha_list; - eval "${_UNSET}" lha_element; - eval "${return_no}"; - fi; - eval "${return_ok}"; -} - - -######################################################################## -# list_has_not ( ) -# -# Test whether has no . -# -# Arguments: 2 -# : a space-separated list of single-quoted elements. -# : some sequence of characters. -# -# Variable prefix: lhn -# -list_has_not() -{ - func_check list_has_not = 2 "$@"; - eval lhn_list='"${'$1'}"'; - if obj lhn_list is_empty - then - eval "${_UNSET}" lhn_list; - eval "${return_yes}"; - fi; - case "$2" in - \'*\') lhn_element=" $2 "; ;; - *) lhn_element=" '$2' "; ;; - esac; - if string_contains " ${lhn_list} " "${lhn_element}" - then - eval "${_UNSET}" lhn_list; - eval "${_UNSET}" lhn_element; - eval "${return_no}"; - else - eval "${_UNSET}" lhn_list; - eval "${_UNSET}" lhn_element; - eval "${return_yes}"; - fi; -} - - -######################################################################## -# list_single_from_abbrev ( ) -# -# Check whether the list has an element starting with . If -# there are more than a single element an error is created. -# -# Arguments: 2 -# : a variable name for a list of single-quoted elements -# : some sequence of characters. -# -# Output: the found element. -# -# Variable prefix: lsfa -# -list_single_from_abbrev() -{ - func_check list_single_from_abbrev = 2 "$@"; - eval lsfa_list='"${'$1'}"'; - if obj lsfa_list is_empty - then - eval "${_UNSET}" lsfa_list; - eval "${return_no}"; - fi; - lsfa_abbrev="$2"; - if list_has lsfa_list "${lsfa_abbrev}" - then - obj lsfa_abbrev echo1; - eval "${_UNSET}" lsfa_abbrev; - eval "${_UNSET}" lsfa_list; - eval "${return_yes}"; - fi; - if list_has_abbrev lsfa_list "${lsfa_abbrev}" - then - lsfa_element=''; - eval set x "${lsfa_list}"; - shift; - for i - do - case "$i" in - ${lsfa_abbrev}*) - if obj lsfa_element is_not_empty - then - error_user "The abbreviation --${lsfa_abbrev} \ -has multiple options: --${lsfa_element} and --${i}."; - fi; - lsfa_element="$i"; - ;; - esac; - done; - obj lsfa_element echo1; - eval "${_UNSET}" lsfa_abbrev; - eval "${_UNSET}" lsfa_element; - eval "${_UNSET}" lsfa_list; - eval "${return_yes}"; - else - eval "${_UNSET}" lsfa_abbrev; - eval "${_UNSET}" lsfa_element; - eval "${_UNSET}" lsfa_list; - eval "${return_no}"; - fi; -} - - -######################################################################## -landmark '7: man_*()'; -######################################################################## - -######################################################################## -# man_do_filespec () -# -# Print suitable man page(s) for filespec to $_TMP_CAT. -# -# Arguments : 2 -# : argument of the form `man:name.section', `man:name', -# `man:name(section)', `name.section', `name'. -# -# Globals : $_OPT_ALL -# -# Output : none. -# Return : `0' if man page was found, `1' else. -# -# Only called from do_fileargs(), checks on $MANPATH and $_MAN_ENABLE -# are assumed (see man_setup()). -# -# Variable prefix: mdf -# -man_do_filespec() -{ - func_check man_do_filespec = 1 "$@"; - if obj _MAN_PATH is_empty - then - eval "${return_bad}"; - fi; - if is_empty "$1" - then - eval "${return_bad}"; - fi; - mdf_spec="$1"; - mdf_name=''; - mdf_section=''; - case "${mdf_spec}" in - */*) # not a man spec with containing '/' - eval ${_UNSET} mdf_got_one; - eval ${_UNSET} mdf_name; - eval ${_UNSET} mdf_section; - eval ${_UNSET} mdf_spec; - eval "${return_bad}"; - ;; - man:?*\(?*\)) # man:name(section) - mdf_name="$(echo1 "${mdf_spec}" \ - | sed -e 's/^man:\(..*\)(\(..*\))$/\1/')"; - mdf_section="$(echo1 "${mdf_spec}" \ - | sed -e 's/^man:\(..*\)(\(..*\))$/\2/')"; - exit_test; - ;; - man:?*.${_MAN_AUTO_SEC_CHARS}) # man:name.section - mdf_name="$(echo1 "${mdf_spec}" \ - | sed -e 's/^man:\(..*\)\..$/\1/')"; - mdf_section="$(echo1 "${mdf_spec}" \ - | sed -e 's/^.*\(.\)$/\1/')"; - exit_test; - ;; - man:?*) # man:name - mdf_name="$(echo1 "${mdf_spec}" | sed -e 's/^man://')"; - exit_test; - ;; - ?*\(?*\)) # name(section) - mdf_name="$(echo1 "${mdf_spec}" \ - | sed -e 's/^\(..*\)(\(..*\))$/\1/')"; - mdf_section="$(echo1 "${mdf_spec}" \ - | sed -e 's/^\(..*\)(\(..*\))$/\2/')"; - exit_test; - ;; - ?*.${_MAN_AUTO_SEC_CHARS}) # name.section - mdf_name="$(echo1 "${mdf_spec}" \ - | sed -e 's/^\(..*\)\..$/\1/')"; - mdf_section="$(echo1 "${mdf_spec}" \ - | sed -e 's/^.*\(.\)$/\1/')"; - exit_test; - ;; - ?*) - mdf_name="${mdf_spec}"; - ;; - esac; - if obj mdf_name is_empty - then - eval ${_UNSET} mdf_got_one; - eval ${_UNSET} mdf_name; - eval ${_UNSET} mdf_section; - eval ${_UNSET} mdf_spec; - eval "${return_bad}"; - fi; - mdf_got_one='no'; - if obj mdf_section is_empty - then - if obj _OPT_SECTIONS is_empty - then - eval set x "${_MAN_AUTO_SEC_LIST}"; - else - # use --sections when no section is given to filespec - eval set x "$(echo1 "${_OPT_SECTIONS}" | sed -e 's/:/ /g')"; - fi; - shift; - for s - do - mdf_s="$s"; - if man_search_section "${mdf_name}" "${mdf_s}" - then # found - if obj _MAN_ALL is_yes - then - mdf_got_one='yes'; - else - eval ${_UNSET} mdf_got_one; - eval ${_UNSET} mdf_name; - eval ${_UNSET} mdf_s; - eval ${_UNSET} mdf_section; - eval ${_UNSET} mdf_spec; - eval "${return_good}"; - fi; - fi; - done; - else - if man_search_section "${mdf_name}" "${mdf_section}" - then - eval ${_UNSET} mdf_got_one; - eval ${_UNSET} mdf_name; - eval ${_UNSET} mdf_s; - eval ${_UNSET} mdf_section; - eval ${_UNSET} mdf_spec; - eval "${return_good}"; - else - eval ${_UNSET} mdf_got_one; - eval ${_UNSET} mdf_name; - eval ${_UNSET} mdf_section; - eval ${_UNSET} mdf_spec; - eval "${return_bad}"; - fi; - fi; - if obj _MAN_ALL is_yes && obj mdf_got_one is_yes - then - eval ${_UNSET} mdf_got_one; - eval ${_UNSET} mdf_name; - eval ${_UNSET} mdf_s; - eval ${_UNSET} mdf_section; - eval ${_UNSET} mdf_spec; - eval "${return_good}"; - fi; - eval ${_UNSET} mdf_got_one; - eval ${_UNSET} mdf_name; - eval ${_UNSET} mdf_s; - eval ${_UNSET} mdf_section; - eval ${_UNSET} mdf_spec; - eval "${return_bad}"; -} # man_do_filespec() - - -######################################################################## -# man_register_file ( [
]) -# -# Write a found man page file and register the title element. -# -# Arguments: 1, 2, or 3; maybe empty -# Output: none -# -man_register_file() -{ - func_check man_register_file '>=' 2 "$@"; - case "$#" in - 2|3) do_nothing; ;; - *) - error "man_register_file() expects 2 or 3 arguments."; - ;; - esac; - if is_empty "$1" - then - error 'man_register_file(): file name is empty'; - fi; - to_tmp "$1"; - case "$#" in - 2) - register_title "man:$2"; - eval "${return_ok}"; - ;; - 3) - register_title "$2.$3"; - eval "${return_ok}"; - ;; - esac; - eval "${return_ok}"; -} - - -######################################################################## -# man_search_section (
) -# -# Retrieve man pages. -# -# Arguments : 2 -# Globals : $_MAN_PATH, $_MAN_EXT -# Return : 0 if found, 1 otherwise -# -# Variable prefix: mss -# -man_search_section() -{ - func_check man_search_section = 2 "$@"; - if obj _MAN_PATH is_empty - then - eval "${return_bad}"; - fi; - if is_empty "$1" - then - eval "${return_bad}"; - fi; - if is_empty "$2" - then - eval "${return_bad}"; - fi; - mss_name="$1"; - mss_section="$2"; - eval set x "$(path_split "${_MAN_PATH}")"; - exit_test; - shift; - mss_got_one='no'; - if obj _MAN_EXT is_empty - then - for d - do - mss_dir="$(dirname_append "$d" "man${mss_section}")"; - exit_test; - if obj mss_dir is_dir - then - mss_prefix="$(\ - dirname_append "${mss_dir}" "${mss_name}.${mss_section}")"; - if obj _OPT_WHATIS is_yes - then - mss_files="$(eval ls "${mss_prefix}"'*' 2>${_NULL_DEV} | - sed -e '\| found|s|.*||' - )"; - else - mss_files="$(eval ls "'${mss_prefix}'"'*' 2>${_NULL_DEV} | - sed -e '\| found|s|.*||' - )"; - fi; - exit_test; - if obj mss_files is_not_empty - then - # for f in $mss_files - for f in $(eval set x ${mss_files}; shift; echo1 "$@") - do - exit_test; - mss_f="$f"; - if obj mss_f is_file - then - if is_yes "${mss_got_one}" - then - register_file "${mss_f}"; - elif obj _MAN_ALL is_yes - then - man_register_file "${mss_f}" "${mss_name}"; - else - man_register_file "${mss_f}" "${mss_name}" "${mss_section}"; - eval ${_UNSET} mss_dir; - eval ${_UNSET} mss_ext; - eval ${_UNSET} mss_f; - eval ${_UNSET} mss_files; - eval ${_UNSET} mss_got_one; - eval ${_UNSET} mss_name; - eval ${_UNSET} mss_prefix; - eval ${_UNSET} mss_section; - eval "${return_good}"; - fi; - mss_got_one='yes'; - fi; - done; - fi; - fi; - done; - else - mss_ext="${_MAN_EXT}"; - # check for directory name having trailing extension - for d - do - mss_dir="$(dirname_append $d man${mss_section}${mss_ext})"; - exit_test; - if obj mss_dir is_dir - then - mss_prefix=\ - "$(dirname_append "${mss_dir}" "${mss_name}.${mss_section}")"; - mss_files="$( eval ls "${mss_prefix}"'*' 2>${_NULL_DEV} | - sed -e '\|not found|s|.*||' - )"; - exit_test; - if obj mss_files is_not_empty - then - # for f in $mss_files - for f in $(eval set x ${mss_files}; shift; echo1 "$@") - do - mss_f="$f"; - if obj mss_f is_file - then - if is_yes "${mss_got_one}" - then - register_file "${mss_f}"; - elif obj _MAN_ALL is_yes - then - man_register_file "${mss_f}" "${mss_name}"; - else - man_register_file "${mss_f}" "${mss_name}" "${mss_section}"; - eval ${_UNSET} mss_dir; - eval ${_UNSET} mss_ext; - eval ${_UNSET} mss_f; - eval ${_UNSET} mss_files; - eval ${_UNSET} mss_got_one; - eval ${_UNSET} mss_name; - eval ${_UNSET} mss_prefix; - eval ${_UNSET} mss_section; - eval "${return_good}"; - fi; - mss_got_one='yes'; - fi; - done; - fi; - fi; - done; - # check for files with extension in directories without extension - for d - do - mss_dir="$(dirname_append "$d" "man${mss_section}")"; - exit_test; - if obj mss_dir is_dir - then - mss_prefix="$(dirname_append "${mss_dir}" \ - "${mss_name}.${mss_section}${mss_ext}")"; - mss_files="$(eval ls "${mss_prefix}"'*' 2>${_NULL_DEV} | - sed -e '\|not found|s|.*||' - )"; - exit_test; - if obj mss_files is_not_empty - then - # for f in $mss_files - for f in $(eval set x ${mss_files}; shift; echo1 "$@") - do - mss_f="$f"; - if obj mss_f is_file - then - if is_yes "${mss_got_one}" - then - register_file "${mss_f}"; - elif obj _MAN_ALL is_yes - then - man_register_file "${mss_f}" "${mss_name}"; - else - man_register_file "${mss_f}" "${mss_name}" "${mss_section}"; - eval ${_UNSET} mss_dir; - eval ${_UNSET} mss_ext; - eval ${_UNSET} mss_f; - eval ${_UNSET} mss_files; - eval ${_UNSET} mss_got_one; - eval ${_UNSET} mss_name; - eval ${_UNSET} mss_prefix; - eval ${_UNSET} mss_section; - eval "${return_good}"; - fi; - mss_got_one='yes'; - fi; - done; - fi; - fi; - done; - fi; - if obj _MAN_ALL is_yes && is_yes "${mss_got_one}" - then - eval ${_UNSET} mss_dir; - eval ${_UNSET} mss_ext; - eval ${_UNSET} mss_f; - eval ${_UNSET} mss_files; - eval ${_UNSET} mss_got_one; - eval ${_UNSET} mss_name; - eval ${_UNSET} mss_prefix; - eval ${_UNSET} mss_section; - eval "${return_good}"; - fi; - eval ${_UNSET} mss_dir; - eval ${_UNSET} mss_ext; - eval ${_UNSET} mss_f; - eval ${_UNSET} mss_files; - eval ${_UNSET} mss_got_one; - eval ${_UNSET} mss_name; - eval ${_UNSET} mss_prefix; - eval ${_UNSET} mss_section; - eval "${return_bad}"; -} # man_search_section() - - -######################################################################## -# man_setup () -# -# Setup the variables $_MAN_* needed for man page searching. -# -# Globals: -# in: $_OPT_*, $_MANOPT_*, $LANG, $LC_MESSAGES, $LC_ALL, -# $MANPATH, $MANROFFSEQ, $MANSEC, $PAGER, $SYSTEM, $MANOPT. -# out: $_MAN_PATH, $_MAN_LANG, $_MAN_SYS, $_MAN_LANG, $_MAN_LANG2, -# $_MAN_SEC, $_MAN_ALL -# in/out: $_MAN_ENABLE -# -# The precedence for the variables related to `man' is that of GNU -# `man', i.e. -# -# $LANG; overridden by -# $LC_MESSAGES; overridden by -# $LC_ALL; this has the same precedence as -# $MANPATH, $MANROFFSEQ, $MANSEC, $PAGER, $SYSTEM; overridden by -# $MANOPT; overridden by -# the groffer command line options. -# -# Variable prefix: ms -# -man_setup() -{ - func_check main_man_setup = 0 "$@"; - - if obj _MAN_IS_SETUP is_yes - then - eval "${return_ok}"; - fi; - _MAN_IS_SETUP='yes'; - - if obj _MAN_ENABLE is_not_yes - then - eval "${return_ok}"; - fi; - - # determine basic path for man pages - _MAN_PATH="$(get_first_essential \ - "${_OPT_MANPATH}" "${_MANOPT_PATH}" "${MANPATH}")"; - exit_test; - if obj _MAN_PATH is_empty - then - manpath_set_from_path; - else - _MAN_PATH="$(path_clean "${_MAN_PATH}")"; - exit_test; - fi; - if obj _MAN_PATH is_empty - then - if is_prog 'manpath' - then - _MAN_PATH="$(manpath 2>${_NULL_DEV})"; # not always available - exit_test; - fi; - fi; - if obj _MAN_PATH is_empty - then - _MAN_ENABLE="no"; - eval "${return_ok}"; - fi; - - _MAN_ALL="$(get_first_essential "${_OPT_ALL}" "${_MANOPT_ALL}")"; - exit_test; - if obj _MAN_ALL is_empty - then - _MAN_ALL='no'; - fi; - - _MAN_SYS="$(get_first_essential \ - "${_OPT_SYSTEMS}" "${_MANOPT_SYS}" "${SYSTEM}")"; - ms_lang="$(get_first_essential \ - "${_OPT_LANG}" "${LC_ALL}" "${LC_MESSAGES}" "${LANG}")"; - exit_test; - case "${ms_lang}" in - C|POSIX) - _MAN_LANG=""; - _MAN_LANG2=""; - ;; - ?) - _MAN_LANG="${ms_lang}"; - _MAN_LANG2=""; - ;; - *) - _MAN_LANG="${ms_lang}"; - # get first two characters of $ms_lang - _MAN_LANG2="$(echo1 "${ms_lang}" | sed -e 's/^\(..\).*$/\1/')"; - exit_test; - ;; - esac; - # from now on, use only $_LANG, forget about $_OPT_LANG, $LC_*. - - manpath_add_lang_sys; # this is very slow - - _MAN_SEC="$(get_first_essential \ - "${_OPT_SECT}" "${_MANOPT_SEC}" "${MANSEC}")"; - exit_test; - if obj _MAN_PATH is_empty - then - _MAN_ENABLE="no"; - eval ${_UNSET} ms_lang; - eval "${return_ok}"; - fi; - - _MAN_EXT="$(get_first_essential \ - "${_OPT_EXTENSION}" "${_MANOPT_EXTENSION}")"; - exit_test; - eval ${_UNSET} ms_lang; - eval "${return_ok}"; -} # man_setup() - - -######################################################################## -landmark '8: manpath_*()'; -######################################################################## - -######################################################################## -# manpath_add_lang_sys () -# -# Add language and operating system specific directories to man path. -# -# Arguments : 0 -# Output : none -# Globals: -# in: $_MAN_SYS: has the form `os1,os2,...', a comma separated -# list of names of operating systems. -# $_MAN_LANG and $_MAN_LANG2: each a single name -# in/out: $_MAN_PATH: has the form `dir1:dir2:...', a colon -# separated list of directories. -# -# Variable prefix: mals -# -manpath_add_lang_sys() -{ - func_check manpath_add_lang_sys = 0 "$@"; - if obj _MAN_PATH is_empty - then - eval "${return_ok}"; - fi; - # twice test both sys and lang - eval set x "$(path_split "${_MAN_PATH}")"; - shift; - exit_test; - mals_mp=''; - for p - do # loop on man path directories - mals_mp="$(_manpath_add_lang_sys_single "${mals_mp}" "$p")"; - exit_test; - done; - eval set x "$(path_split "${mals_mp}")"; - shift; - exit_test; - for p - do # loop on man path directories - mals_mp="$(_manpath_add_lang_sys_single "${mals_mp}" "$p")"; - exit_test; - done; - _MAN_PATH="$(path_chop "${mals_mp}")"; - exit_test; - eval ${_UNSET} mals_mp; - eval "${return_ok}"; -} - - -# To the directory in $1 append existing sys/lang subdirectories -# Function is necessary to split the OS list. -# -# globals: in: $_MAN_SYS, $_MAN_LANG, $_MAN_LANG2 -# argument: 2: `man_path' and `dir' -# output: colon-separated path of the retrieved subdirectories -# -# Variable prefix: _mals -# -_manpath_add_lang_sys_single() -{ - func_check _manpath_add_lang_sys_single = 2 "$@"; - _mals_res="$1"; - _mals_parent="$2"; - eval set x "$(list_from_split "${_MAN_SYS}" ',')"; - shift; - exit_test; - for d in "$@" "${_MAN_LANG}" "${_MAN_LANG2}" - do - _mals_dir="$(dirname_append "${_mals_parent}" "$d")"; - exit_test; - if obj _mals_res path_not_contains "${_mals_dir}" && \ - obj _mals_dir is_dir - then - _mals_res="${_mals_res}:${_mals_dir}"; - fi; - done; - if path_not_contains "${_mals_res}" "${_mals_parent}" - then - _mals_res="${_mals_res}:${_mals_parent}"; - fi; - path_chop "${_mals_res}"; - eval ${_UNSET} _mals_dir; - eval ${_UNSET} _mals_parent; - eval ${_UNSET} _mals_res; - eval "${return_ok}"; -} - -# end manpath_add_lang_sys () - - -######################################################################## -# manpath_set_from_path () -# -# Determine basic search path for man pages from $PATH. -# -# Return: `0' if a valid man path was retrieved. -# Output: none -# Globals: -# in: $PATH -# out: $_MAN_PATH -# -# Variable prefix: msfp -# -manpath_set_from_path() -{ - func_check manpath_set_from_path = 0 "$@"; - - msfp_manpath=''; - - # get a basic man path from $PATH - if obj PATH is_not_empty - then - eval set x "$(path_split "${PATH}")"; - shift; - exit_test; - for d - do - # delete the final `/bin' part - msfp_base="$(echo1 "$d" | sed -e 's|//*bin/*$||')"; - exit_test; - for e in /share/man /man - do - msfp_mandir="${msfp_base}$e"; - if test -d "${msfp_mandir}" && test -r "${msfp_mandir}" - then - msfp_manpath="${msfp_manpath}:${msfp_mandir}"; - fi; - done; - done; - fi; - - # append some default directories - for d in /usr/share/man /usr/man \ - /usr/share/man /usr/man \ - /usr/X11R6/man /usr/openwin/man \ - /opt/share/man /opt/man \ - /opt/gnome/man /opt/kde/man - do - msfp_d="$d"; - if obj msfp_manpath path_not_contains "${msfp_d}" && obj mfsp_d is_dir - then - msfp_manpath="${msfp_manpath}:${mfsp_d}"; - fi; - done; - - _MAN_PATH="${msfp_manpath}"; - eval ${_UNSET} msfp_base; - eval ${_UNSET} msfp_d; - eval ${_UNSET} msfp_mandir; - eval ${_UNSET} msfp_manpath; - eval "${return_ok}"; -} # manpath_set_from_path() - - -######################################################################## -landmark '9: obj_*()'; -######################################################################## - -######################################################################## -# obj ( ...) -# -# This works like a method (object function) call for an object. -# Run " $ ...". -# -# The first argument represents an object whose data is given as first -# argument to (). -# -# Argument: >=2 -# : variable name -# : a program or function name -# -# Variable prefix: o -# -obj() -{ - func_check obj '>=' 2 "$@"; - eval o_arg1='"${'$1'}"'; - if is_empty "$2" - then - error "obj(): function name is empty." - else - o_func="$2"; - fi; - shift; - shift; - eval "${o_func}"' "${o_arg1}" "$@"'; - n="$?"; - eval ${_UNSET} o_arg1; - eval ${_UNSET} o_func; - eval "${return_var} $n"; -} # obj() - - -######################################################################## -# obj_data () -# -# Print the data of , i.e. the content of $. -# For possible later extensions. -# -# Arguments: 1 -# : a variable name -# Output: the data of -# -# Variable prefix: od -# -obj_data() -{ - func_check obj '=' 1 "$@"; - if is_empty "$1" - then - error "obj_data(): object name is empty." - fi; - eval od_res='"${'$1'}"'; - obj od_res echo1; - eval ${_UNSET} od_res; - eval "${return_ok}"; -} - - -######################################################################## -# obj_from_output ( ...) -# -# Run '$="$( ...)"' to set the result of a -# function call to a global variable. -# -# Arguments: >=2 -# : a variable name -# : the name of a function or program -# : optional argument to -# Output: none -# -# Variable prefix: ofo -# -obj_from_output() -{ - func_check obj_from_output '>=' 2 "$@"; - if is_empty "$1" - then - error "res(): variable name is empty."; - elif is_empty "$2" - then - error "res(): function name is empty." - else - ofo_result_name="$1"; - fi; - shift; - eval "${ofo_result_name}"'="$('"$@"')"'; - exit_test; - eval "${return_ok}"; -} - - -######################################################################## -# obj_set ( ) -# -# Set the data of , i.e. call "$=". -# -# Arguments: 2 -# : a variable name -# : a string -# Output:: none -# -obj_set() -{ - func_check obj_set '=' 2 "$@"; - if is_empty "$1" - then - error "obj_set(): object name is empty." - fi; - eval "$1"='"$2"'; - eval "${return_ok}"; -} - - -######################################################################## -# path_chop () -# -# Remove unnecessary colons from path. -# -# Argument: 1, a colon separated path. -# Output: path without leading, double, or trailing colons. -# -path_chop() -{ - func_check path_chop = 1 "$@"; - - # replace multiple colons by a single colon `:' - # remove leading and trailing colons - echo1 "$1" | sed -e ' -s/^:*// -s/:::*/:/g -s/:*$// -'; - eval "${return_ok}"; -} - - -######################################################################## -# path_clean () -# -# Remove non-existing directories from a colon-separated list. -# -# Argument: 1, a colon separated path. -# Output: colon-separated list of existing directories. -# -# Variable prefix: pc -# -path_clean() -{ - func_check path_clean = 1 "$@"; - if is_not_equal "$#" 1 - then - error 'path_clean() needs 1 argument.'; - fi; - pc_arg="$1"; - eval set x "$(path_split "${pc_arg}")"; - exit_test; - shift; - pc_res=""; - for i - do - pc_i="$i"; - if obj pc_i is_not_empty \ - && obj pc_res path_not_contains "${pc_i}" \ - && obj pc_i is_dir - then - case "${pc_i}" in - ?*/) - pc_res="${pc_res}$(dirname_chop "${pc_i}")"; - exit_test; - ;; - *) - pc_res="${pc_res}:${pc_i}"; - exit_test; - ;; - esac; - fi; - done; - eval ${_UNSET} pc_arg; - eval ${_UNSET} pc_i; - eval ${_UNSET} pc_res; - if path_chop "${pc_res}" - then - eval "${return_ok}"; - else - eval "${return_bad}"; - fi; -} - - -######################################################################## -# path_contains ( ) -#- -# Test whether `dir' is contained in `path', a list separated by `:'. -# -# Arguments : 2 arguments. -# Return : `0' if arg2 is substring of arg1, `1' otherwise. -# -path_contains() -{ - func_check path_contains = 2 "$@"; - case ":$1:" in - *":$2:"*) - eval "${return_yes}"; - ;; - *) - eval "${return_no}"; - ;; - esac; - eval "${return_ok}"; -} - - -######################################################################## -# path_not_contains ( ) -# -# Test whether `dir' is not contained in colon separated `path'. -# -# Arguments : 2 arguments. -# -path_not_contains() -{ - func_check path_not_contains = 2 "$@"; - if path_contains "$1" "$2" - then - eval "${return_no}"; - else - eval "${return_yes}"; - fi; - eval "${return_ok}"; -} - - -######################################################################## -# path_split () -# -# In `path' escape white space and replace each colon by a space. -# -# Arguments: 1: a colon-separated path -# Output: the resulting list, process with `eval set' -# -path_split() -{ - func_check path_split = 1 "$@"; - list_from_split "$1" ':'; - eval "${return_ok}"; -} - - -######################################################################## -landmark '10: register_*()'; -######################################################################## - -######################################################################## -# register_file () -# -# Write a found file and register the title element. -# -# Arguments: 1: a file name -# Output: none -# -register_file() -{ - func_check register_file = 1 "$@"; - if is_empty "$1" - then - error 'register_file(): file name is empty'; - fi; - if is_equal "$1" '-' - then - to_tmp "${_TMP_STDIN}"; - register_title 'stdin'; - else - to_tmp "$1"; - register_title "$(base_name "$1")"; - exit_test; - fi; - eval "${return_ok}"; -} # register_file() - - -######################################################################## -# register_title () -# -# Create title element from and append to $_REGISTERED_TITLE -# -# Globals: $_REGISTERED_TITLE (rw) -# -# Variable prefix: rt -# -register_title() -{ - func_check register_title '=' 1 "$@"; - if is_empty "$1" - then - eval "${return_ok}"; - fi; - - case "${_REGISTERED_TITLE}" in - *\ *\ *\ *) - eval "${return_ok}"; - ;; - esac; - - # remove directory part - rt_title="$(base_name "$1")"; - # replace space characters by `_' - rt_title="$(echo1 "${rt_title}" | sed -e 's/[ ]/_/g')"; - # remove extension `.bz2' - rt_title="$(echo1 "${rt_title}" | sed -e 's/\.bz2$//')"; - # remove extension `.gz' - rt_title="$(echo1 "${rt_title}" | sed -e 's/\.gz$//')"; - # remove extension `.Z' - rt_title="$(echo1 "${rt_title}" | sed -e 's/\.Z$//')"; - exit_test; - - if obj rt_title is_empty - then - eval ${_UNSET} rt_title; - eval "${return_ok}"; - fi; - if obj _REGISTERED_TITLE is_empty - then - _REGISTERED_TITLE="${rt_title}"; - else - _REGISTERED_TITLE="${_REGISTERED_TITLE} ${rt_title}"; - fi; - eval ${_UNSET} rt_title; - eval "${return_ok}"; -} # register_title() - - -######################################################################## -# reset () -# -# Reset the variables that can be affected by options to their default. -# -# -# Defined in section `Preset' after the rudimentary shell tests. - - -######################################################################## -# rm_file () -# -# Remove file if $_DEBUG_KEEP_FILES allows it. -# -# Globals: $_DEBUG_KEEP_FILES -# -rm_file() -{ - func_check rm_file '=' 1 "$@"; - if is_file "$1" - then - rm -f "$1" >${_NULL_DEV} 2>&1; - fi; - if is_existing "$1" - then - eval "${return_bad}"; - else - eval "${return_good}"; - fi; -} - - -######################################################################## -# rm_file_with_debug () -# -# Remove file if $_DEBUG_KEEP_FILES allows it. -# -# Globals: $_DEBUG_KEEP_FILES -# -rm_file_with_debug() -{ - func_check rm_file_with_debug '=' 1 "$@"; - if obj _DEBUG_KEEP_FILES is_not_yes - then - if is_file "$1" - then - rm -f "$1" >${_NULL_DEV} 2>&1; - fi; - fi; - if is_existing "$1" - then - eval "${return_bad}"; - else - eval "${return_good}"; - fi; -} - - -######################################################################## -# rm_tree () -# -# Remove file if $_DEBUG_KEEP_FILES allows it. -# -# Globals: $_DEBUG_KEEP_FILES -# -rm_tree() -{ - func_check rm_tree '=' 1 "$@"; - if is_existing "$1" - then - rm -f -r "$1" >${_NULL_DEV} 2>&1; - fi; - if is_existing "$1" - then - eval "${return_bad}"; - else - eval "${return_good}"; - fi; -} - - -######################################################################## -# save_stdin () -# -# Store standard input to temporary file (with decompression). -# -# Variable prefix: ss -# -if obj _HAS_COMPRESSION is_yes -then - save_stdin() - { - func_check save_stdin '=' 0 "$@"; - ss_f="${_TMP_DIR}"/INPUT; - cat >"${ss_f}"; - cat_z "${ss_f}" >"${_TMP_STDIN}"; - rm_file "${ss_f}"; - eval ${_UNSET} ss_f; - eval "${return_ok}"; - } -else - save_stdin() - { - func_check save_stdin = 0 "$@"; - cat >"${_TMP_STDIN}"; - eval "${return_ok}"; - } -fi; - - -######################################################################## -# special_filespec () -# -# Handle special modes like whatis and apropos. -# -special_filespec() -{ - func_check special_setup '=' 0 "$@"; - if obj _OPT_APROPOS is_yes - then - if obj _OPT_WHATIS is_yes - then - error \ - 'special_setup: $_OPT_APROPOS and $_OPT_WHATIS are both "yes"'; - fi; - apropos_filespec; - eval "${return_ok}"; - fi; - if obj _OPT_WHATIS is_yes - then - whatis_filespec; - fi; - eval "${return_ok}"; -} - - -######################################################################## -# special_setup () -# -# Handle special modes like whatis and apropos. -# -special_setup() -{ - func_check special_setup '=' 0 "$@"; - if obj _OPT_APROPOS is_yes - then - if obj _OPT_WHATIS is_yes - then - error \ - 'special_setup: $_OPT_APROPOS and $_OPT_WHATIS are both "yes"'; - fi; - apropos_setup; - eval "${return_ok}"; - fi; - if obj _OPT_WHATIS is_yes - then - whatis_header; - fi; - eval "${return_ok}"; -} - - -######################################################################## -landmark '11: stack_*()'; -######################################################################## - -######################################################################## -# string_contains ( ) -# -# Test whether `part' is contained in `string'. -# -# Arguments : 2 text arguments. -# Return : `0' if arg2 is substring of arg1, `1' otherwise. -# -string_contains() -{ - func_check string_contains '=' 2 "$@"; - case "$1" in - *"$2"*) - eval "${return_yes}"; - ;; - *) - eval "${return_no}"; - ;; - esac; - eval "${return_ok}"; -} - - -######################################################################## -# string_not_contains ( ) -# -# Test whether `part' is not substring of `string'. -# -# Arguments : 2 text arguments. -# Return : `0' if arg2 is substring of arg1, `1' otherwise. -# -string_not_contains() -{ - func_check string_not_contains '=' 2 "$@"; - if string_contains "$1" "$2" - then - eval "${return_no}"; - else - eval "${return_yes}"; - fi; - eval "${return_ok}"; -} - - -######################################################################## -landmark '12: tmp_*()'; -######################################################################## - -######################################################################## -# tmp_cat () -# -# output the temporary cat file (the concatenation of all input) -# -tmp_cat() -{ - func_check tmp_cat '=' 0 "$@"; - cat "${_TMP_CAT}"; - eval "${return_var}" "$?"; -} - - -######################################################################## -# tmp_create (?) -# -# Create temporary file. -# -# It's safe to use the shell process ID together with a suffix to -# have multiple temporary files. -# -# Globals: $_TMP_DIR -# -# Output : name of created file -# -# Variable prefix: tc -# -tmp_create() -{ - func_check tmp_create '<=' 1 "$@"; - # the output file does not have `,' as first character, so these are - # different names from the output file. - tc_tmp="${_TMP_DIR}/,$1"; - : >"${tc_tmp}" - obj tc_tmp echo1; - eval ${_UNSET} tc_tmp; - eval "${return_ok}"; -} - - -######################################################################## -# to_tmp () -# -# print file (decompressed) to the temporary cat file -# -to_tmp() -{ - func_check to_tmp '=' 1 "$@"; - if obj _TMP_CAT is_empty - then - error 'to_tmp_line: $_TMP_CAT is not yet set'; - fi; - if is_file "$1" - then - if obj _OPT_LOCATION is_yes - then - echo2 "$1"; - fi; - if obj _OPT_WHATIS is_yes - then - whatis_filename "$1" >>"${_TMP_CAT}"; - else - cat_z "$1" >>"${_TMP_CAT}"; - fi; - else - error "to_tmp(): could not read file \`$1'."; - fi; - eval "${return_ok}"; -} - - -######################################################################## -# to_tmp_line ([]) -# -# print line to the temporary cat file -# -to_tmp_line() -{ - func_check to_tmp '>=' 0 "$@"; - if obj _TMP_CAT is_empty - then - error 'to_tmp_line: $_TMP_CAT is not yet set'; - fi; - echo1 "$*" >>"${_TMP_CAT}"; - eval "${return_ok}"; -} - - -######################################################################## -# trap_set -# -# call function on signal 0 -# -trap_set() -{ - func_check trap_set '=' 0 "$@"; - trap 'clean_up' 0 2>${_NULL_DEV} || :; - eval "${return_ok}"; -} - - -######################################################################## -# trap_unset () -# -# disable trap on signal 0. -# -trap_unset() -{ - func_check trap_unset '=' 0 "$@"; - trap '' 0 2>${_NULL_DEV} || :; - eval "${return_ok}"; -} - - -######################################################################## -# usage () -# -# print usage information to stderr; for groffer option --help. -# -usage() -{ - func_check usage = 0 "$@"; - echo; - version; - echo1 'Usage: groffer [option]... [filespec]...'; - cat <&1 | sed -e '/^ *$/q' | sed -e '1s/^/is part of /'; - eval "${return_ok}"; -} - - -######################################################################## -# warning () -# -# Print warning to stderr -# -warning() -{ - echo2 "warning: $*"; -} - - -######################################################################## -# whatis_filename () -# -# Interpret as a man page and display its `whatis' -# information as a fragment written in the groff language. -# -# Variable prefix: wf -# -whatis_filename() -{ - func_check whatis_filename = 1 "$@"; - wf_arg="$1"; - if obj wf_arg is_not_file - then - error "whatis_filename(): argument is not a readable file." - fi; - wf_dot='^\.'"${_SPACE_SED}"'*'; - if obj _FILESPEC_ARG is_equal '-' - then - wf_arg='stdin'; - fi; - cat <) -# -# Output path of a program if in $PATH. -# -# Arguments : >=1 (empty allowed) -# more args are ignored, this allows to specify progs with arguments -# Return : `0' if arg1 is a program in $PATH, `1' otherwise. -# -# Variable prefix: w -# -where_is() -{ - func_check where_is '>=' 1 "$@"; - w_arg="$1"; - if obj w_arg is_empty - then - eval ${_UNSET} w_arg; - eval "${return_bad}"; - fi; - case "${w_arg}" in - /*) - eval ${_UNSET} w_arg; - eval ${_UNSET} w_file; - if test -f "${w_arg}" && test -x "${w_arg}" - then - eval "${return_ok}"; - else - eval "${return_bad}"; - fi; - ;; - esac; - eval set x "$(path_split "${PATH}")"; - exit_test; - shift; - for p - do - case "$p" in - */) w_file=${p}${w_arg}; ;; - *) w_file=${p}/${w_arg}; ;; - esac; - if test -f "${w_file}" && test -x "${w_file}" - then - obj w_file echo1; - eval ${_UNSET} w_arg; - eval ${_UNSET} w_file; - eval "${return_ok}"; - fi; - done; - eval ${_UNSET} w_arg; - eval ${_UNSET} w_file; - eval "${return_bad}"; -} - - -######################################################################## -# main* Functions -######################################################################## - -# The main area contains the following parts: -# - main_init(): initialize temporary files and set exit trap -# - main_parse_MANOPT(): parse $MANOPT -# - main_parse_args(): argument parsing -# - main_set_mode (): determine the display mode -# - main_do_fileargs(): process filespec arguments -# - main_set_resources(): setup X resources -# - main_display(): do the displaying -# - main(): the main function that calls all main_*() - - -####################################################################### -# main_init () -# -# set exit trap and create temporary files -# -# Globals: $_TMP_DIR, $_TMP_CAT, $_TMP_STDIN -# -# Variable prefix: mi -# -main_init() -{ - func_check main_init = 0 "$@"; - # call clean_up() on shell termination. - trap_set; - - # create temporary directory - umask 0022; - _TMP_DIR=''; - for d in "${GROFF_TMPDIR}" "${TMPDIR}" "${TMP}" "${TEMP}" \ - "${TEMPDIR}" "${HOME}"'/tmp' '/tmp' "${HOME}" '.' - do - mi_dir="$d"; - if obj mi_dir is_empty || obj mi_dir is_not_dir || \ - obj mi_dir is_not_writable - then - continue; - fi; - - case "${mi_dir}" in - */) - _TMP_DIR="${mi_dir}"; - ;; - *) - _TMP_DIR="${mi_dir}"'/'; - ;; - esac; - _TMP_DIR="${_TMP_DIR}groffer${_PROCESS_ID}"; - if obj _TMP_DIR rm_tree - then - : - else - mi_tdir_="${_TMP_DIR}"_; - mi_n=1; - mi_tdir_n="${mi_tdir_}${mi_n}"; - while obj mi_tdir_n is_existing - do - if obj mi_tdir_n rm_tree - then - # directory could not be removed - mi_n="$(expr "${mi_n}" + 1)"; - mi_tdir_n="${mi_tdir_}${mi_n}"; - continue; - fi; - done; - _TMP_DIR="${mi_tdir_n}"; - fi; - eval mkdir "${_TMP_DIR}"; - if is_not_equal "$?" 0 - then - obj _TMP_DIR rm_tree; - _TMP_DIR=''; - continue; - fi; - if obj _TMP_DIR is_dir && obj _TMP_DIR is_writable - then - # $_TMP_DIR can now be used as temporary directory - break; - fi; - obj _TMP_DIR rm_tree; - _TMP_DIR=''; - continue; - done; - if obj _TMP_DIR is_empty - then - error "main_init: \ -Couldn't create a directory for storing temporary files."; - fi; - if obj _DEBUG_PRINT_TMPDIR is_yes - then - echo2 "temporary directory: ${_TMP_DIR}"; - fi; - - _TMP_CAT="$(tmp_create groffer_cat)"; - _TMP_STDIN="$(tmp_create groffer_input)"; - exit_test; - - eval ${_UNSET} mi_dir; - eval ${_UNSET} mi_n; - eval ${_UNSET} mi_tdir_; - eval ${_UNSET} mi_tdir_n; - eval "${return_ok}"; -} # main_init() - - -######################################################################## -# main_parse_MANOPT () -# -# Parse $MANOPT to retrieve man options, but only if it is a non-empty -# string; found man arguments can be overwritten by the command line. -# -# Globals: -# in: $MANOPT, $_OPTS_MANOPT_* -# out: $_MANOPT_* -# -# Variable prefix: mpm -# -main_parse_MANOPT() -{ - func_check main_parse_MANOPT = 0 "$@"; - - if obj MANOPT is_not_empty - then - # Delete leading and final spaces - MANOPT="$(echo1 "${MANOPT}" | sed -e ' -s/^'"${_SPACE_SED}"'*// -s/'"${_SPACE_SED}"'*$// -')"; - exit_test; - fi; - if obj MANOPT is_empty - then - eval "${return_ok}"; - fi; - - mpm_list=''; - # add arguments in $MANOPT by mapping them to groffer options - eval set x "$(list_from_cmdline _OPTS_MANOPT "${MANOPT}")"; - exit_test; - shift; - until test "$#" -le 0 || is_equal "$1" '--' - do - mpm_opt="$1"; - shift; - case "${mpm_opt}" in - -7|--ascii) - list_append mpm_list '--ascii'; - ;; - -a|--all) - list_append mpm_list '--all'; - ;; - -c|--catman) - do_nothing; - shift; - ;; - -d|--debug) - do_nothing; - ;; - -D|--default) - # undo all man options so far - mpm_list=''; - ;; - -e|--extension) - list_append mpm_list '--extension'; - shift; - ;; - -f|--whatis) - list_append mpm_list '--whatis'; - shift; - ;; - -h|--help) - do_nothing; - shift; - ;; - -k|--apropos) - # groffer's --apropos takes an argument, but man's does not, so - do_nothing; - ;; - -l|--local-file) - do_nothing; - ;; - -L|--locale) - list_append mpm_list '--locale' "$1"; - shift; - ;; - -m|--systems) - list_append mpm_list '--systems' "$1"; - shift; - ;; - -M|--manpath) - list_append mpm_list '--manpath' "$1"; - shift; - ;; - -p|--preprocessor) - do_nothing; - shift; - ;; - -P|--pager) - list_append mpm_list '--pager' "$1"; - shift; - ;; - -r|--prompt) - do_nothing; - shift; - ;; - -S|--sections) - list_append mpm_list '--sections' "$1"; - shift; - ;; - -t|--troff) - do_nothing; - shift; - ;; - -T|--device) - list_append mpm_list '-T' "$1"; - shift; - ;; - -u|--update) - do_nothing; - shift; - ;; - -V|--version) - do_nothing; - ;; - -w|--where|--location) - list_append mpm_list '--location'; - ;; - -Z|--ditroff) - do_nothing; - ;; - # ignore all other options - esac; - done; - - # prepend $mpm_list to the command line - if obj mpm_list is_not_empty - then - eval set x "${mpm_list}" '"$@"'; - shift; - fi; - - eval ${_UNSET} mpm_list; - eval ${_UNSET} mpm_opt; - eval "${return_ok}"; -} # main_parse_MANOPT() - - -######################################################################## -# main_parse_args (*) -# -# Parse arguments; process options and filespec parameters -# -# Arguments: pass the command line arguments unaltered. -# Globals: -# in: $_OPTS_* -# out: $_OPT_*, $_ADDOPTS, $_FILEARGS -# -# Variable prefix: mpa -# -main_parse_args() -{ - func_check main_parse_args '>=' 0 "$@"; - _ALL_PARAMS="$(list_from_cmdline _OPTS_CMDLINE "$@")"; - exit_test; - if obj _DEBUG_PRINT_PARAMS is_yes - then - echo2 "parameters: ${_ALL_PARAMS}"; - fi; - eval set x "${_ALL_PARAMS}"; - shift; - - # By the call of `eval', unnecessary quoting was removed. So the - # positional shell parameters ($1, $2, ...) are now guaranteed to - # represent an option or an argument to the previous option, if any; - # then a `--' argument for separating options and - # parameters; followed by the filespec parameters if any. - - # Note, the existence of arguments to options has already been checked. - # So a check for `$#' or `--' should not be done for arguments. - - until test "$#" -le 0 || is_equal "$1" '--' - do - mpa_opt="$1"; # $mpa_opt is fed into the option handler - shift; - case "${mpa_opt}" in - -h|--help) - usage; - leave; - ;; - -Q|--source) # output source code (`Quellcode'). - _OPT_MODE='source'; - ;; - -T|--device|--troff-device) # device; arg - _OPT_DEVICE="$1"; - _check_device_with_mode; - shift; - ;; - -v|--version) - version; - leave; - ;; - -V) - _OPT_V='yes'; - ;; - -Z|--ditroff|--intermediate-output) # groff intermediate output - _OPT_Z='yes'; - ;; - -X) - if is_X - then - _OPT_MODE=X; - fi; - ;; - -?) - # delete leading `-' - mpa_optchar="$(echo1 "${mpa_opt}" | sed -e 's/^-//')"; - exit_test; - if list_has _OPTS_GROFF_SHORT_NA "${mpa_optchar}" - then - list_append _ADDOPTS_GROFF "${mpa_opt}"; - elif list_has _OPTS_GROFF_SHORT_ARG "${mpa_optchar}" - then - list_append _ADDOPTS_GROFF "${mpa_opt}" "$1"; - shift; - else - error "main_parse_args(): Unknown option : \`$1'"; - fi; - ;; - --all) - _OPT_ALL='yes'; - ;; - --apropos) # run `apropos' - _OPT_APROPOS='yes'; - _APROPOS_SECTIONS=''; - _OPT_WHATIS='no'; - ;; - --apropos-data) # run `apropos' for data sections - _OPT_APROPOS='yes'; - _APROPOS_SECTIONS='457'; - _OPT_WHATIS='no'; - ;; - --apropos-devel) # run `apropos' for development sections - _OPT_APROPOS='yes'; - _APROPOS_SECTIONS='239'; - _OPT_WHATIS='no'; - ;; - --apropos-progs) # run `apropos' for program sections - _OPT_APROPOS='yes'; - _APROPOS_SECTIONS='168'; - _OPT_WHATIS='no'; - ;; - --ascii) - list_append _ADDOPTS_GROFF '-mtty-char'; - if obj _OPT_MODE is_empty - then - _OPT_MODE='text'; - fi; - ;; - --auto) # the default automatic mode - _OPT_MODE=''; - ;; - --bd) # border color for viewers, arg; - _OPT_BD="$1"; - shift; - ;; - --bg|--backgroud) # background color for viewers, arg; - _OPT_BG="$1"; - shift; - ;; - --bw) # border width for viewers, arg; - _OPT_BW="$1"; - shift; - ;; - --debug|--debug-all|--debug-keep|--debug-lm|--debug-params|\ ---debug-shell|--debug-stacks|--debug-tmpdir|--debug-user) - # debug is handled at the beginning - :; - ;; - --default) # reset variables to default - reset; - ;; - --default-modes) # sequence of modes in auto mode; arg - _OPT_DEFAULT_MODES="$1"; - shift; - ;; - --display) # set X display, arg - _OPT_DISPLAY="$1"; - shift; - ;; - --do-nothing) - _OPT_DO_NOTHING='yes'; - ;; - --dvi) - if is_X - then - _OPT_MODE='dvi'; - fi; - ;; - --dvi-viewer) # viewer program for dvi mode; arg - _VIEWER_TERMINAL='no'; - _OPT_VIEWER_DVI="$1"; - shift; - ;; - --dvi-viewer-tty) # viewer program for dvi mode in tty; arg - _VIEWER_TERMINAL='yes'; - _OPT_VIEWER_DVI="$1"; - shift; - ;; - --extension) # the extension for man pages, arg - _OPT_EXTENSION="$1"; - shift; - ;; - --fg|--foreground) # foreground color for viewers, arg; - _OPT_FG="$1"; - shift; - ;; - --fn|--font) # set font for viewers, arg; - _OPT_FN="$1"; - shift; - ;; - --geometry) # window geometry for viewers, arg; - _OPT_GEOMETRY="$1"; - shift; - ;; - --groff) - _OPT_MODE='groff'; - ;; - --html|--www) # display with web browser - _OPT_MODE=html; - ;; - --html-viewer|--www-viewer) # viewer program for html mode; arg - _VIEWER_TERMINAL='no'; - _OPT_VIEWER_HTML="$1"; - shift; - ;; - --html-viewer-tty|--www-viewer-tty) # viewer for html mode in tty; arg - _VIEWER_TERMINAL='yes'; - _OPT_VIEWER_HTML="$1"; - shift; - ;; - --iconic) # start viewers as icons - _OPT_ICONIC='yes'; - ;; - --locale) # set language for man pages, arg - # argument is xx[_territory[.codeset[@modifier]]] (ISO 639,...) - _OPT_LANG="$1"; - shift; - ;; - --local-file) # force local files; same as `--no-man' - _MAN_FORCE='no'; - _MAN_ENABLE='no'; - ;; - --location|--where) # print file locations to stderr - _OPT_LOCATION='yes'; - ;; - --man) # force all file params to be man pages - _MAN_ENABLE='yes'; - _MAN_FORCE='yes'; - ;; - --manpath) # specify search path for man pages, arg - # arg is colon-separated list of directories - _OPT_MANPATH="$1"; - shift; - ;; - --mode) # display mode - mpa_arg="$1"; - shift; - case "${mpa_arg}" in - auto|'') # search mode automatically among default - _OPT_MODE=''; - ;; - groff) # pass input to plain groff - _OPT_MODE='groff'; - ;; - html|www) # display with a web browser - _OPT_MODE='html'; - ;; - dvi) # display with xdvi viewer - if is_X - then - _OPT_MODE='dvi'; - fi; - ;; - pdf) # display with PDF viewer - if is_X - then - _OPT_MODE='pdf'; - fi; - ;; - ps) # display with Postscript viewer - if is_X - then - _OPT_MODE='ps'; - fi; - ;; - text) # output on terminal - _OPT_MODE='text'; - ;; - tty) # output on terminal - _OPT_MODE='tty'; - ;; - X|x) # output on X roff viewer - if is_X - then - _OPT_MODE='x'; - fi; - ;; - Q|source) # display source code - _OPT_MODE="source"; - ;; - *) - error "main_parse_args(): unknown mode ${mpa_arg}"; - ;; - esac; - ;; - --no-location) # disable former call to `--location' - _OPT_LOCATION='yes'; - ;; - --no-man) # disable search for man pages - # the same as --local-file - _MAN_FORCE='no'; - _MAN_ENABLE='no'; - ;; - --no-special) # disable some special former calls - _OPT_ALL='no' - _OPT_APROPOS='no' - _OPT_WHATIS='no' - ;; - --pager|--tty-viewer|--tty-viewer-tty) - # set paging program for tty mode, arg - _VIEWER_TERMINAL='yes'; - _OPT_PAGER="$1"; - shift; - ;; - --pdf) - if is_X - then - _OPT_MODE='pdf'; - fi; - ;; - --pdf-viewer) # viewer program for ps mode; arg - _VIEWER_TERMINAL='no'; - _OPT_VIEWER_PDF="$1"; - shift; - ;; - --pdf-viewer-tty) # viewer program for ps mode in tty; arg - _VIEWER_TERMINAL='yes'; - _OPT_VIEWER_PDF="$1"; - shift; - ;; - --print) # for argument test - echo2 "$1"; - shift; - ;; - --ps) - if is_X - then - _OPT_MODE='ps'; - fi; - ;; - --ps-viewer) # viewer program for ps mode; arg - _VIEWER_TERMINAL='no'; - _OPT_VIEWER_PS="$1"; - shift; - ;; - --ps-viewer-tty) # viewer program for ps mode in tty; arg - _VIEWER_TERMINAL='yes'; - _OPT_VIEWER_PS="$1"; - shift; - ;; - --resolution) # set resolution for X devices, arg - mpa_arg="$1"; - shift; - case "${mpa_arg}" in - 75|75dpi) - mpa_dpi=75; - ;; - 100|100dpi) - mpa_dpi=100; - ;; - *) - error "main_parse_args(): \ -only resoutions of 75 or 100 dpi are supported"; - ;; - esac; - _OPT_RESOLUTION="${mpa_dpi}"; - ;; - --rv) - _OPT_RV='yes'; - ;; - --sections) # specify sections for man pages, arg - # arg is colon-separated list of section names - _OPT_SECTIONS="$1"; - shift; - ;; - --shell) - # already done during the first run; so ignore the argument - shift; - ;; - --systems) # man pages for different OS's, arg - # argument is a comma-separated list - _OPT_SYSTEMS="$1"; - shift; - ;; - --text) # text mode without pager - _OPT_MODE=text; - ;; - --title) # title for X viewers; arg - _OPT_TITLE="$1"; - shift; - ;; - --tty) # tty mode, text with pager - _OPT_MODE=tty; - ;; - --text-device|--tty-device) # device for tty mode; arg - _OPT_TEXT_DEVICE="$1"; - shift; - ;; - --whatis) - _OPT_WHATIS='yes'; - _OPT_ALL='yes'; - _OPT_APROPOS='no'; - ;; - --X|--x) - if is_X - then - _OPT_MODE=x; - fi; - ;; - --xrm) # pass X resource string, arg; - list_append _OPT_XRM "$1"; - shift; - ;; - --x-viewer|--X-viewer) # viewer program for x mode; arg - _VIEWER_TERMINAL='no'; - _OPT_VIEWER_X="$1"; - shift; - ;; - --x-viewer-tty|--X-viewer-tty) # viewer program for x mode in tty; arg - _VIEWER_TERMINAL='yes'; - _OPT_VIEWER_X="$1"; - shift; - ;; - *) - error 'main_parse_args(): error on argument parsing : '"\`$*'"; - ;; - esac; - done; - shift; # remove `--' argument - - if obj _OPT_DO_NOTHING is_yes - then - leave; - fi; - - # Remaining arguments are file names (filespecs). - # Save them to list $_FILEARGS - if is_equal "$#" 0 - then # use "-" for standard input - set x '-'; - shift; - fi; - _FILEARGS=''; - list_append _FILEARGS "$@"; - if list_has _FILEARGS '-' - then - save_stdin; - fi; - # $_FILEARGS must be retrieved with `eval set x "$_FILEARGS"; shift;' - eval ${_UNSET} mpa_arg; - eval ${_UNSET} mpa_dpi; - eval ${_UNSET} mpa_opt; - eval ${_UNSET} mpa_optchar; - eval "${return_ok}"; -} # main_parse_args() - - -# Called from main_parse_args() because double `case' is not possible. -# Globals: $_OPT_DEVICE, $_OPT_MODE -_check_device_with_mode() -{ - func_check _check_device_with_mode = 0 "$@"; - case "${_OPT_DEVICE}" in - dvi) - _OPT_MODE=dvi; - eval "${return_ok}"; - ;; - html) - _OPT_MODE=html; - eval "${return_ok}"; - ;; - lbp|lj4) - _OPT_MODE=groff; - eval "${return_ok}"; - ;; - ps) - _OPT_MODE=ps; - eval "${return_ok}"; - ;; - ascii|cp1047|latin1|utf8) - if obj _OPT_MODE is_not_equal text - then - _OPT_MODE=tty; # default text mode - fi; - eval "${return_ok}"; - ;; - X*) - _OPT_MODE=x; - eval "${return_ok}"; - ;; - *) # unknown device, go to groff mode - _OPT_MODE=groff; - eval "${return_ok}"; - ;; - esac; - eval "${return_error}"; -} # _check_device_with_mode() of main_parse_args() - - -######################################################################## -# main_set_mode () -# -# Determine the display mode. -# -# Globals: -# in: $DISPLAY, $_OPT_MODE, $_OPT_DEVICE -# out: $_DISPLAY_MODE -# -# Variable prefix: msm -# -main_set_mode() -{ - func_check main_set_mode = 0 "$@"; - - # set display - if obj _OPT_DISPLAY is_not_empty - then - DISPLAY="${_OPT_DISPLAY}"; - fi; - - if obj _OPT_V is_yes - then - list_append _ADDOPTS_GROFF '-V'; - fi; - if obj _OPT_Z is_yes - then - _DISPLAY_MODE='groff'; - list_append _ADDOPTS_GROFF '-Z'; - fi; - if obj _OPT_MODE is_equal 'groff' - then - _DISPLAY_MODE='groff'; - fi; - if obj _DISPLAY_MODE is_equal 'groff' - then - eval ${_UNSET} msm_modes; - eval ${_UNSET} msm_viewer; - eval ${_UNSET} msm_viewers; - eval "${return_ok}"; - fi; - - if obj _OPT_MODE is_equal 'source' - then - _DISPLAY_MODE='source'; - eval ${_UNSET} msm_modes; - eval ${_UNSET} msm_viewer; - eval ${_UNSET} msm_viewers; - eval "${return_ok}"; - fi; - - case "${_OPT_MODE}" in - '') # automatic mode - case "${_OPT_DEVICE}" in - X*) - if is_not_X - then - error_user "no X display found for device ${_OPT_DEVICE}"; - fi; - _DISPLAY_MODE='x'; - eval ${_UNSET} msm_modes; - eval ${_UNSET} msm_viewer; - eval ${_UNSET} msm_viewers; - eval "${return_ok}"; - ;; - ascii|cp1047|latin1|utf8) - if obj _DISPLAY_MODE is_not_equal 'text' - then - _DISPLAY_MODE='tty'; - fi; - eval ${_UNSET} msm_modes; - eval ${_UNSET} msm_viewer; - eval ${_UNSET} msm_viewers; - eval "${return_ok}"; - ;; - esac; - if is_not_X - then - _DISPLAY_MODE='tty'; - eval ${_UNSET} msm_modes; - eval ${_UNSET} msm_viewer; - eval ${_UNSET} msm_viewers; - eval "${return_ok}"; - fi; - - if obj _OPT_DEFAULT_MODES is_empty - then - msm_modes="${_DEFAULT_MODES}"; - else - msm_modes="${_OPT_DEFAULT_MODES}"; - fi; - ;; - text) - _DISPLAY_MODE='text'; - eval ${_UNSET} msm_modes; - eval ${_UNSET} msm_viewer; - eval ${_UNSET} msm_viewers; - eval "${return_ok}"; - ;; - tty) - _DISPLAY_MODE='tty'; - eval ${_UNSET} msm_modes; - eval ${_UNSET} msm_viewer; - eval ${_UNSET} msm_viewers; - eval "${return_ok}"; - ;; - html) - _DISPLAY_MODE='html'; - msm_modes="${_OPT_MODE}"; - ;; - *) # display mode was given - if is_not_X - then - error_user "You must be in X Window for ${_OPT_MODE} mode."; - fi; - msm_modes="${_OPT_MODE}"; - ;; - esac; - - # only viewer modes are left - eval set x "$(list_from_split "${msm_modes}" ',')"; - exit_test; - shift; - while test "$#" -gt 0 - do - m="$1"; - shift; - case "$m" in - dvi) - if obj _OPT_VIEWER_DVI is_not_empty - then - msm_viewer="${_OPT_VIEWER_DVI}"; - else - msm_viewer="$(_get_first_prog "$_VIEWER_DVI}")"; - exit_test; - fi; - if obj msm_viewer is_empty - then - error 'No viewer for dvi mode available.'; - fi; - if is_not_equal "$?" 0 - then - continue; - fi; - _DISPLAY_PROG="${msm_viewer}"; - _DISPLAY_MODE="dvi"; - eval ${_UNSET} msm_modes; - eval ${_UNSET} msm_viewer; - eval ${_UNSET} msm_viewers; - eval "${return_ok}"; - ;; - html) - if obj _OPT_VIEWER_HTML is_not_empty - then - msm_viewer="${_OPT_VIEWER_HTML}"; - else - if is_X - then - msm_viewers="${_VIEWER_HTML_X}"; - else - msm_viewers="${_VIEWER_HTML_TTY}"; - fi; - msm_viewer="$(_get_first_prog "${msm_viewers}")"; - exit_test; - fi; - if obj msm_viewer is_empty - then - error 'No viewer for html mode available.'; - fi; - if is_not_equal "$?" 0 - then - continue; - fi; - _DISPLAY_PROG="${msm_viewer}"; - _DISPLAY_MODE=html; - eval ${_UNSET} msm_modes; - eval ${_UNSET} msm_viewer; - eval ${_UNSET} msm_viewers; - eval "${return_ok}"; - ;; - pdf) - if obj _OPT_VIEWER_PDF is_not_empty - then - msm_viewer="${_OPT_VIEWER_PDF}"; - else - msm_viewer="$(_get_first_prog "${_VIEWER_PDF}")"; - exit_test; - fi; - if obj msm_viewer is_empty - then - error 'No viewer for pdf mode available.'; - fi; - if is_not_equal "$?" 0 - then - continue; - fi; - _DISPLAY_PROG="${msm_viewer}"; - _DISPLAY_MODE="pdf"; - eval ${_UNSET} msm_modes; - eval ${_UNSET} msm_viewer; - eval ${_UNSET} msm_viewers; - eval "${return_ok}"; - ;; - ps) - if obj _OPT_VIEWER_PS is_not_empty - then - msm_viewer="${_OPT_VIEWER_PS}"; - else - msm_viewer="$(_get_first_prog "${_VIEWER_PS}")"; - exit_test; - fi; - if obj msm_viewer is_empty - then - error 'No viewer for ps mode available.'; - fi; - if is_not_equal "$?" 0 - then - continue; - fi; - _DISPLAY_PROG="${msm_viewer}"; - _DISPLAY_MODE="ps"; - eval ${_UNSET} msm_modes; - eval ${_UNSET} msm_viewer; - eval ${_UNSET} msm_viewers; - eval "${return_ok}"; - ;; - text) - _DISPLAY_MODE='text'; - eval ${_UNSET} msm_modes; - eval ${_UNSET} msm_viewer; - eval ${_UNSET} msm_viewers; - eval "${return_ok}"; - ;; - tty) - _DISPLAY_MODE='tty'; - eval ${_UNSET} msm_modes; - eval ${_UNSET} msm_viewer; - eval ${_UNSET} msm_viewers; - eval "${return_ok}"; - ;; - x) - if obj _OPT_VIEWER_X is_not_empty - then - msm_viewer="${_OPT_VIEWER_X}"; - else - msm_viewer="$(_get_first_prog "${_VIEWER_X}")"; - exit_test; - fi; - if obj msm_viewer is_empty - then - error 'No viewer for x mode available.'; - fi; - if is_not_equal "$?" 0 - then - continue; - fi; - _DISPLAY_PROG="${msm_viewer}"; - _DISPLAY_MODE='x'; - eval ${_UNSET} msm_modes; - eval ${_UNSET} msm_viewer; - eval ${_UNSET} msm_viewers; - eval "${return_ok}"; - ;; - X) - _DISPLAY_MODE='X'; - eval ${_UNSET} msm_modes; - eval ${_UNSET} msm_viewer; - eval ${_UNSET} msm_viewers; - eval "${return_ok}"; - ;; - esac; - done; - eval ${_UNSET} msm_modes; - eval ${_UNSET} msm_viewer; - eval ${_UNSET} msm_viewers; - error_user "No suitable display mode found."; -} # main_set_mode() - - -# _get_first_prog () -# -# Retrieve first argument that represents an existing program in $PATH. -# Local function for main_set_mode(). -# -# Arguments: 1; a comma-separated list of commands (with options), -# like $_VIEWER_*. -# -# Return : `1' if none found, `0' if found. -# Output : the argument that succeded. -# -# Variable prefix: _gfp -# -_get_first_prog() -{ - if is_equal "$#" 0 - then - error "_get_first_prog() needs 1 argument."; - fi; - if is_empty "$1" - then - return "${_BAD}"; - fi; - eval set x "$(list_from_split "$1" ',')"; - exit_test; - shift; - for i - do - _gfp_i="$i"; - if obj _gfp_i is_empty - then - continue; - fi; - if eval is_prog "$(get_first_essential ${_gfp_i})" - then - exit_test; - obj _gfp_i echo1; - eval ${_UNSET} _gfp_i; - return "${_GOOD}"; - fi; - done; - eval ${_UNSET} _gfp_i; - return "${_BAD}"; -} # _get_first_prog() of main_set_mode() - - -####################################################################### -# main_do_fileargs () -# -# Process filespec arguments in $_FILEARGS. -# -# Globals: -# in: $_FILEARGS (process with `eval set x "$_FILEARGS"; shift;') -# -# Variable prefix: mdfa -# -main_do_fileargs() -{ - func_check main_do_fileargs = 0 "$@"; - special_setup; - eval set x "${_FILEARGS}"; - shift; - eval ${_UNSET} _FILEARGS; - # temporary storage of all input to $_TMP_CAT - while test "$#" -ge 2 - do - # test for `s name' arguments, with `s' a 1-char standard section - mdfa_filespec="$1"; - _FILESPEC_ARG="$1"; - shift; - case "${mdfa_filespec}" in - '') - continue; - ;; - '-') - special_filespec; - if obj _OPT_APROPOS is_yes - then - continue; - fi; - register_file '-' - continue; - ;; - ?) - if obj _OPT_APROPOS is_yes - then - special_filespec; - continue; - fi; - if list_has_not _MAN_AUTO_SEC_LIST "${mdfa_filespec}" - then - special_filespec; - do_filearg "${mdfa_filespec}" - continue; - fi; - mdfa_name="$1"; - _FILESPEC_ARG="${_FILESPEC_ARG} $1"; - special_filespec; - case "${mdfa_name}" in - */*|man:*|*\(*\)|*."${mdfa_filespec}") - do_filearg "${mdfa_filespec}" - continue; - ;; - esac; - shift; - if do_filearg "man:${mdfa_name}(${mdfa_filespec})" - then - continue; - else - do_filearg "${mdfa_filespec}" - continue; - fi; - ;; - *) - special_filespec; - if obj _OPT_APROPOS is_yes - then - continue; - fi; - do_filearg "${mdfa_filespec}" - continue; - ;; - esac; - done; # end of `s name' test - while test "$#" -gt 0 - do - mdfa_filespec="$1"; - _FILESPEC_ARG="$1"; - shift; - special_filespec; - if obj _OPT_APROPOS is_yes - then - continue; - fi; - do_filearg "${mdfa_filespec}" - done; - obj _TMP_STDIN rm_file_with_debug; - eval ${_UNSET} mdfa_filespec; - eval ${_UNSET} mdfa_name; - eval "${return_ok}"; -} # main_do_fileargs() - - -######################################################################## -# main_set_resources () -# -# Determine options for setting X resources with $_DISPLAY_PROG. -# -# Globals: $_DISPLAY_PROG, $_OUTPUT_FILE_NAME -# -# Variable prefix: msr -# -main_set_resources() -{ - func_check main_set_resources = 0 "$@"; - # $msr_prog viewer program - # $msr_rl resource list - msr_title="$(get_first_essential \ - "${_OPT_TITLE}" "${_REGISTERED_TITLE}")"; - exit_test; - _OUTPUT_FILE_NAME=''; - eval set x "${msr_title}"; - shift; - until is_equal "$#" 0 - do - msr_n="$1"; - case "${msr_n}" in - '') - continue; - ;; - ,*) - msr_n="$(echo1 "$1" | sed -e 's/^,,*//')"; - exit_test; - ;; - esac - if obj msr_n is_empty - then - continue; - fi; - if obj _OUTPUT_FILE_NAME is_not_empty - then - _OUTPUT_FILE_NAME="${_OUTPUT_FILE_NAME}"','; - fi; - _OUTPUT_FILE_NAME="${_OUTPUT_FILE_NAME}${msr_n}"; - shift; - done; - case "${_OUTPUT_FILE_NAME}" in - '') - _OUTPUT_FILE_NAME='-'; - ;; - ,*) - error "main_set_resources(): ${_OUTPUT_FILE_NAME} starts with a comma."; - ;; - esac; - _OUTPUT_FILE_NAME="${_TMP_DIR}/${_OUTPUT_FILE_NAME}"; - - if obj _DISPLAY_PROG is_empty - then # for example, for groff mode - _DISPLAY_ARGS=''; - eval ${_UNSET} msr_n; - eval ${_UNSET} msr_prog; - eval ${_UNSET} msr_rl; - eval ${_UNSET} msr_title; - eval "${return_ok}"; - fi; - - eval set x "${_DISPLAY_PROG}"; - shift; - msr_prog="$(base_name "$1")"; - exit_test; - shift; - if test $# != 0 - then - if obj _DISPLAY_PROG is_empty - then - _DISPLAY_ARGS="$*"; - else - _DISPLAY_ARGS="$* ${_DISPLAY_ARGS}"; - fi; - fi; - msr_rl=''; - if obj _OPT_BD is_not_empty - then - case "${msr_prog}" in - ghostview|gv|gxditview|xditview|xdvi) - list_append msr_rl '-bd' "${_OPT_BD}"; - ;; - esac; - fi; - if obj _OPT_BG is_not_empty - then - case "${msr_prog}" in - ghostview|gv|gxditview|xditview|xdvi) - list_append msr_rl '-bg' "${_OPT_BG}"; - ;; - kghostview) - list_append msr_rl '--bg' "${_OPT_BG}"; - ;; - xpdf) - list_append msr_rl '-papercolor' "${_OPT_BG}"; - ;; - esac; - fi; - if obj _OPT_BW is_not_empty - then - case "${msr_prog}" in - ghostview|gv|gxditview|xditview|xdvi) - _list_append msr_rl '-bw' "${_OPT_BW}"; - ;; - esac; - fi; - if obj _OPT_FG is_not_empty - then - case "${msr_prog}" in - ghostview|gv|gxditview|xditview|xdvi) - list_append msr_rl '-fg' "${_OPT_FG}"; - ;; - kghostview) - list_append msr_rl '--fg' "${_OPT_FG}"; - ;; - esac; - fi; - if is_not_empty "${_OPT_FN}" - then - case "${msr_prog}" in - ghostview|gv|gxditview|xditview|xdvi) - list_append msr_rl '-fn' "${_OPT_FN}"; - ;; - kghostview) - list_append msr_rl '--fn' "${_OPT_FN}"; - ;; - esac; - fi; - if is_not_empty "${_OPT_GEOMETRY}" - then - case "${msr_prog}" in - ghostview|gv|gxditview|xditview|xdvi|xpdf) - list_append msr_rl '-geometry' "${_OPT_GEOMETRY}"; - ;; - kghostview) - list_append msr_rl '--geometry' "${_OPT_GEOMETRY}"; - ;; - esac; - fi; - if is_empty "${_OPT_RESOLUTION}" - then - _OPT_RESOLUTION="${_DEFAULT_RESOLUTION}"; - case "${msr_prog}" in - gxditview|xditview) - list_append msr_rl '-resolution' "${_DEFAULT_RESOLUTION}"; - ;; - xpdf) - case "${_DEFAULT_RESOLUTION}" in - 75) - # 72dpi is '100' - list_append msr_rl '-z' '104'; - ;; - 100) - list_append msr_rl '-z' '139'; - ;; - esac; - ;; - esac; - else - case "${msr_prog}" in - ghostview|gv|gxditview|xditview|xdvi) - list_append msr_rl '-resolution' "${_OPT_RESOLUTION}"; - ;; - xpdf) - case "${_OPT_RESOLUTION}" in - 75) - list_append msr_rl '-z' '104'; - # '100' corresponds to 72dpi - ;; - 100) - list_append msr_rl '-z' '139'; - ;; - esac; - ;; - esac; - fi; - if is_yes "${_OPT_ICONIC}" - then - case "${msr_prog}" in - ghostview|gv|gxditview|xditview|xdvi) - list_append msr_rl '-iconic'; - ;; - esac; - fi; - if is_yes "${_OPT_RV}" - then - case "${msr_prog}" in - ghostview|gv|gxditview|xditview|xdvi) - list_append msr_rl '-rv'; - ;; - esac; - fi; - if is_not_empty "${_OPT_XRM}" - then - case "${msr_prog}" in - ghostview|gv|gxditview|xditview|xdvi|xpdf) - eval set x "${_OPT_XRM}"; - shift; - for i - do - list_append msr_rl '-xrm' "$i"; - done; - ;; - esac; - fi; - if is_not_empty "${msr_title}" - then - case "${msr_prog}" in - gxditview|xditview) - list_append msr_rl '-title' "${msr_title}"; - ;; - esac; - fi; - _DISPLAY_ARGS="${msr_rl}"; - eval ${_UNSET} msr_n; - eval ${_UNSET} msr_prog; - eval ${_UNSET} msr_rl; - eval ${_UNSET} msr_title; - eval "${return_ok}"; -} # main_set_resources - - -######################################################################## -# main_display () -# -# Do the actual display of the whole thing. -# -# Globals: -# in: $_DISPLAY_MODE, $_OPT_DEVICE, -# $_ADDOPTS_GROFF, $_ADDOPTS_POST, $_ADDOPTS_X, -# $_TMP_CAT, $_OPT_PAGER, $PAGER, $_MANOPT_PAGER, -# $_OUTPUT_FILE_NAME -# -# Variable prefix: md -# -main_display() -{ - func_check main_display = 0 "$@"; - - export md_addopts; - export md_groggy; - export md_modefile; - - if obj _TMP_CAT is_non_empty_file - then - md_modefile="${_OUTPUT_FILE_NAME}"; - else - echo2 'groffer: empty input.'; - clean_up; - eval ${_UNSET} md_modefile; - eval "${return_ok}"; - fi; - - # go to the temporary directory to be able to access internal data files - cd "${_TMP_DIR}" >"${_NULL_DEV}" 2>&1; - - case "${_DISPLAY_MODE}" in - groff) - _ADDOPTS_GROFF="${_ADDOPTS_GROFF} ${_ADDOPTS_POST}"; - if obj _OPT_DEVICE is_not_empty - then - _ADDOPTS_GROFF="${_ADDOPTS_GROFF} -T${_OPT_DEVICE}"; - fi; - md_groggy="$(tmp_cat | eval grog "${md_options}")"; - exit_test; - _do_opt_V; - - obj md_modefile rm_file; - mv "${_TMP_CAT}" "${md_modefile}"; - trap_unset; - cat "${md_modefile}" | \ - { - trap_set; - eval "${md_groggy}" "${_ADDOPTS_GROFF}"; - } & - ;; - text|tty) - case "${_OPT_DEVICE}" in - '') - md_device="$(get_first_essential \ - "${_OPT_TEXT_DEVICE}" "${_DEFAULT_TTY_DEVICE}")"; - exit_test; - ;; - ascii|cp1047|latin1|utf8) - md_device="${_OPT_DEVICE}"; - ;; - *) - warning "main_display(): \ -wrong device for ${_DISPLAY_MODE} mode: ${_OPT_DEVICE}"; - ;; - esac; - md_addopts="${_ADDOPTS_GROFF} ${_ADDOPTS_POST}"; - md_groggy="$(tmp_cat | grog -T${md_device})"; - exit_test; - if obj _DISPLAY_MODE is_equal 'text' - then - _do_opt_V; - tmp_cat | eval "${md_groggy}" "${md_addopts}"; - else - md_pager=''; - for p in "${_OPT_PAGER}" "${PAGER}" "${_MANOPT_PAGER}" \ - 'less -r -R' 'more' 'pager' 'cat' - do - md_p="$p"; - if eval is_prog ${md_p} - then # no "" for is_prog() allows args for $p - md_pager="${md_p}"; - break; - fi; - done; - if obj md_pager is_empty - then - error 'main_display(): no pager program found for tty mode'; - fi; - _do_opt_V; - tmp_cat | eval "${md_groggy}" "${md_addopts}" | \ - eval "${md_pager}"; - fi; - clean_up; - ;; - source) - tmp_cat; - clean_up; - ;; - - #### viewer modes - - dvi) - case "${_OPT_DEVICE}" in - ''|dvi) do_nothing; ;; - *) - warning "main_display(): \ -wrong device for ${_DISPLAY_MODE} mode: ${_OPT_DEVICE}" - ;; - esac; - md_modefile="${md_modefile}".dvi; - md_groggy="$(tmp_cat | grog -Tdvi)"; - exit_test; - _do_display; - ;; - html) - case "${_OPT_DEVICE}" in - ''|html) do_nothing; ;; - *) - warning "main_display(): \ -wrong device for ${_DISPLAY_MODE} mode: ${_OPT_DEVICE}"; - ;; - esac; - md_modefile="${md_modefile}".html; - md_groggy="$(tmp_cat | grog -Thtml)"; - exit_test; - _do_display; - ;; - pdf) - case "${_OPT_DEVICE}" in - ''|ps) - do_nothing; - ;; - *) - warning "main_display(): \ -wrong device for ${_DISPLAY_MODE} mode: ${_OPT_DEVICE}"; - ;; - esac; - md_groggy="$(tmp_cat | grog -Tps)"; - exit_test; - _do_display _make_pdf; - ;; - ps) - case "${_OPT_DEVICE}" in - ''|ps) - do_nothing; - ;; - *) - warning "main_display(): \ -wrong device for ${_DISPLAY_MODE} mode: ${_OPT_DEVICE}"; - ;; - esac; - md_modefile="${md_modefile}".ps; - md_groggy="$(tmp_cat | grog -Tps)"; - exit_test; - _do_display; - ;; - x) - case "${_OPT_DEVICE}" in - X*) - md_device="${_OPT_DEVICE}" - ;; - *) - case "${_OPT_RESOLUTION}" in - 100) - md_device='X100'; - if obj _OPT_GEOMETRY is_empty - then - case "${_DISPLAY_PROG}" in - gxditview|xditview) - # add width of 800dpi for resolution of 100dpi to the args - list_append _DISPLAY_ARGS '-geometry' '800'; - ;; - esac; - fi; - ;; - *) - md_device='X75-12'; - ;; - esac - esac; - md_groggy="$(tmp_cat | grog -T${md_device} -Z)"; - exit_test; - _do_display; - ;; - X) - case "${_OPT_DEVICE}" in - '') - md_groggy="$(tmp_cat | grog -X)"; - exit_test; - ;; - X*|dvi|html|lbp|lj4|ps) - # these devices work with - md_groggy="$(tmp_cat | grog -T"${_OPT_DEVICE}" -X)"; - exit_test; - ;; - *) - warning "main_display(): \ -wrong device for ${_DISPLAY_MODE} mode: ${_OPT_DEVICE}"; - md_groggy="$(tmp_cat | grog -Z)"; - exit_test; - ;; - esac; - _do_display; - ;; - *) - error "main_display(): unknown mode \`${_DISPLAY_MODE}'"; - ;; - esac; - eval ${_UNSET} md_addopts; - eval ${_UNSET} md_device; - eval ${_UNSET} md_groggy; - eval ${_UNSET} md_modefile; - eval ${_UNSET} md_options; - eval ${_UNSET} md_p; - eval ${_UNSET} md_pager; - eval "${return_ok}"; -} # main_display() - - -######################## -# _do_display ([]) -# -# Perform the generation of the output and view the result. If an -# argument is given interpret it as a function name that is called in -# the midst (actually only for `pdf'). -# -# Globals: $md_modefile, $md_groggy (from main_display()) -# -_do_display() -{ - func_check _do_display '>=' 0 "$@"; - _do_opt_V; - if obj _DISPLAY_PROG is_empty - then - trap_unset; - { - trap_set; - eval "${md_groggy}" "${_ADDOPTS_GROFF}" "${_TMP_CAT}"; - } & - else - obj md_modefile rm_file; - cat "${_TMP_CAT}" | \ - eval "${md_groggy}" "${_ADDOPTS_GROFF}" > "${md_modefile}"; - if is_not_empty "$1" - then - eval "$1"; - fi; - obj _TMP_CAT rm_file_with_debug; - if obj _VIEWER_TERMINAL is_yes # for programs that run on tty - then - eval "${_DISPLAY_PROG}" ${_DISPLAY_ARGS} "\"${md_modefile}\""; - else - case "${_DISPLAY_PROG}" in -# lynx\ *|less\ *|more\ *) # programs known to run on the terminal -# eval "${_DISPLAY_PROG}" ${_DISPLAY_ARGS} "\"${md_modefile}\""; -# ;; - *) - trap_unset; - { - trap_set; - eval "${_DISPLAY_PROG}" ${_DISPLAY_ARGS} "\"${md_modefile}\""; - } & - ;; - esac; - fi; - fi; - eval "${return_ok}"; -} # _do_display() of main_display() - - -############# -# _do_opt_V () -# -# Check on option `-V'; if set print the corresponding output and leave. -# -# Globals: $_ALL_PARAMS, $_ADDOPTS_GROFF, $_DISPLAY_MODE, $_DISPLAY_PROG, -# $_DISPLAY_ARGS, $md_groggy, $md_modefile -# -# Variable prefix: _doV -# -_do_opt_V() -{ - func_check _do_opt_V '=' 0 "$@"; - if obj _OPT_V is_yes - then - _OPT_V='no'; - echo1 "Parameters: ${_ALL_PARAMS}"; - echo1 "Display mode: ${_DISPLAY_MODE}"; - echo1 "Output file: ${md_modefile}"; - echo1 "Display prog: ${_DISPLAY_PROG} ${_DISPLAY_ARGS}"; - a="$(eval echo1 "'${_ADDOPTS_GROFF}'")"; - exit_test; - echo1 "Output of grog: ${md_groggy} $a"; - _doV_res="$(eval "${md_groggy}" "${_ADDOPTS_GROFF}")"; - exit_test; - echo1 "groff -V: ${_doV_res}" - leave; - fi; - eval "${return_ok}"; -} # _do_opt_V() of main_display() - - -############## -# _make_pdf () -# -# Transform to pdf format; for pdf mode in _do_display(). -# -# Globals: $md_modefile (from main_display()) -# -# Variable prefix: _mp -# -_make_pdf() -{ - func_check _do_display '=' 0 "$@"; - _mp_psfile="${md_modefile}"; - md_modefile="${md_modefile}.pdf"; - obj md_modefile rm_file; - if gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \ - -sOutputFile="${md_modefile}" -c save pop -f "${_mp_psfile}" - then - :; - else - error '_make_pdf: could not transform into pdf format.'; - fi; - obj _mp_psfile rm_file_with_debug; - eval ${_UNSET} _mp_psfile; - eval "${return_ok}"; -} # _make_pdf() of main_display() - - -######################################################################## -# main (*) -# -# The main function for groffer. -# -# Arguments: -# -main() -{ - func_check main '>=' 0 "$@"; - # Do not change the sequence of the following functions! - landmark '13: main_init()'; - main_init; - landmark '14: main_parse_MANOPT()'; - main_parse_MANOPT; - landmark '15: main_parse_args()'; - main_parse_args "$@"; - landmark '16: main_set_mode()'; - main_set_mode; - landmark '17: main_do_fileargs()'; - main_do_fileargs; - landmark '18: main_set_resources()'; - main_set_resources; - landmark '19: main_display()'; - main_display; - eval "${return_ok}"; -} - - -######################################################################## - -main "$@"; diff --git a/gen/usr/lib/groff/site-tmac/.gitkeep b/gen/usr/lib/groff/site-tmac/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/gen/usr/share/doc/groff/1.19.2/examples/grnexmpl.ps b/gen/usr/share/doc/groff/1.19.2/examples/grnexmpl.ps deleted file mode 100644 index b6964eb..0000000 --- a/gen/usr/share/doc/groff/1.19.2/examples/grnexmpl.ps +++ /dev/null @@ -1,3200 +0,0 @@ -%!PS-Adobe-3.0 -%%Creator: groff version 1.19.2 -%%CreationDate: Sat Nov 19 17:19:36 2016 -%%DocumentNeededResources: font Times-Roman -%%+ font Times-Italic -%%+ font Symbol -%%DocumentSuppliedResources: procset grops 1.19 2 -%%Pages: 1 -%%PageOrder: Ascend -%%DocumentMedia: Default 612 792 0 () () -%%Orientation: Portrait -%%EndComments -%%BeginDefaults -%%PageMedia: Default -%%EndDefaults -%%BeginProlog -%%BeginResource: procset grops 1.19 2 -%!PS-Adobe-3.0 Resource-ProcSet -/setpacking where{ -pop -currentpacking -true setpacking -}if -/grops 120 dict dup begin -/SC 32 def -/A/show load def -/B{0 SC 3 -1 roll widthshow}bind def -/C{0 exch ashow}bind def -/D{0 exch 0 SC 5 2 roll awidthshow}bind def -/E{0 rmoveto show}bind def -/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def -/G{0 rmoveto 0 exch ashow}bind def -/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/I{0 exch rmoveto show}bind def -/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def -/K{0 exch rmoveto 0 exch ashow}bind def -/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/M{rmoveto show}bind def -/N{rmoveto 0 SC 3 -1 roll widthshow}bind def -/O{rmoveto 0 exch ashow}bind def -/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/Q{moveto show}bind def -/R{moveto 0 SC 3 -1 roll widthshow}bind def -/S{moveto 0 exch ashow}bind def -/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/SF{ -findfont exch -[exch dup 0 exch 0 exch neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/MF{ -findfont -[5 2 roll -0 3 1 roll -neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/level0 0 def -/RES 0 def -/PL 0 def -/LS 0 def -/MANUAL{ -statusdict begin/manualfeed true store end -}bind def -/PLG{ -gsave newpath clippath pathbbox grestore -exch pop add exch pop -}bind def -/BP{ -/level0 save def -1 setlinecap -1 setlinejoin -72 RES div dup scale -LS{ -90 rotate -}{ -0 PL translate -}ifelse -1 -1 scale -}bind def -/EP{ -level0 restore -showpage -}def -/DA{ -newpath arcn stroke -}bind def -/SN{ -transform -.25 sub exch .25 sub exch -round .25 add exch round .25 add exch -itransform -}bind def -/DL{ -SN -moveto -SN -lineto stroke -}bind def -/DC{ -newpath 0 360 arc closepath -}bind def -/TM matrix def -/DE{ -TM currentmatrix pop -translate scale newpath 0 0 .5 0 360 arc closepath -TM setmatrix -}bind def -/RC/rcurveto load def -/RL/rlineto load def -/ST/stroke load def -/MT/moveto load def -/CL/closepath load def -/Fr{ -setrgbcolor fill -}bind def -/setcmykcolor where{ -pop -/Fk{ -setcmykcolor fill -}bind def -}if -/Fg{ -setgray fill -}bind def -/FL/fill load def -/LW/setlinewidth load def -/Cr/setrgbcolor load def -/setcmykcolor where{ -pop -/Ck/setcmykcolor load def -}if -/Cg/setgray load def -/RE{ -findfont -dup maxlength 1 index/FontName known not{1 add}if dict begin -{ -1 index/FID ne{def}{pop pop}ifelse -}forall -/Encoding exch def -dup/FontName exch def -currentdict end definefont pop -}bind def -/DEFS 0 def -/EBEGIN{ -moveto -DEFS begin -}bind def -/EEND/end load def -/CNT 0 def -/level1 0 def -/PBEGIN{ -/level1 save def -translate -div 3 1 roll div exch scale -neg exch neg exch translate -0 setgray -0 setlinecap -1 setlinewidth -0 setlinejoin -10 setmiterlimit -[]0 setdash -/setstrokeadjust where{ -pop -false setstrokeadjust -}if -/setoverprint where{ -pop -false setoverprint -}if -newpath -/CNT countdictstack def -userdict begin -/showpage{}def -/setpagedevice{}def -}bind def -/PEND{ -countdictstack CNT sub{end}repeat -level1 restore -}bind def -end def -/setpacking where{ -pop -setpacking -}if -%%EndResource -%%EndProlog -%%BeginSetup -%%BeginFeature: *PageSize Default -<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice -%%EndFeature -%%IncludeResource: font Times-Roman -%%IncludeResource: font Times-Italic -%%IncludeResource: font Symbol -grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 -def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron -/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent -/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen -/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon -/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O -/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex -/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y -/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft -/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl -/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut -/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash -/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen -/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft -/logicalnot/minus/registered/macron/degree/plusminus/twosuperior -/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior -/ordmasculine/guilsinglright/onequarter/onehalf/threequarters -/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE -/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex -/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn -/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla -/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis -/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash -/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def -/Times-Italic@0 ENC0/Times-Italic RE/Times-Roman@0 ENC0/Times-Roman RE -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 12/Times-Roman@0 SF 2.095(The follo)97 98.4 R 2.095(wing slide sho) --.3 F 2.095(ws the complete schematics of the fully-dif)-.3 F 2.094 -(ferential RIC.)-.3 F 1.658(The operation includes a correlated-double-\ -sampling phase that occurs once e)72 112.8 R -.18(ve)-.3 G 1.659(ry 256) -.18 F 1.437(clock periods, also called the)72 127.2 R/F1 12 -/Times-Italic@0 SF(spr)4.436 E 1.436(eading r)-.444 F(atio)-.18 E F0 -7.436(.T)C 1.436(his reset phase is controlled by clocks)-7.436 F F1(DP) -72.696 141.6 Q/F2 8.4/Times-Roman@0 SF(1).516 2.4 M F0(and)4.643 -2.4 M -F1(DP)4.739 E F2(2).516 2.4 M F0 1.043(in which the inte)4.643 -2.4 N -1.043(grator is initialized by totally remo)-.18 F 1.043(ving the char) --.18 F 1.044(ge from)-.216 F F1(C)71.808 156 Q/F3 8.4/Times-Italic@0 SF -(F).869 2.4 M F0 .535(and storing the lo)4.841 -2.4 N(w-frequenc)-.3 E -3.535(yn)-.18 G .534(oise of the op amp in)-3.535 F F1(C)3.342 E F3(C) -.382 2.4 M F0 3.534(.A)1.205 -2.4 O 3.534(tt)-3.534 G .534 -(he same time the com-)-3.534 F(parison thresholds are set.)72 170.4 Q -141.292 402.262 MT 0 3.384 RL 1.693 0 RL 1.692 -1.692 RL -1.692 -1.692 -RL -1.693 0 RL CL 0.563 Fg 185.292 405.646 MT 0 -3.384 RL 1.693 0 RL -1.692 1.692 RL -1.692 1.692 RL -1.693 0 RL CL FL 144.677 432.723 MT 0 --3.384 RL 1.692 0 RL 1.692 1.692 RL -1.692 1.692 RL -1.692 0 RL CL FL -176.831 434.416 MT -3.385 0 RL 0 -1.693 RL 1.692 -1.692 RL 1.693 1.692 -RL 0 1.693 RL CL FL 285.138 343.031 MT -3.384 0 RL 0 1.692 RL 1.692 -1.693 RL 1.692 -1.693 RL 0 -1.692 RL CL FL 285.138 302.416 MT -3.384 0 -RL 0 -1.693 RL 1.692 -1.692 RL 1.692 1.692 RL 0 1.693 RL CL FL 144.677 -375.185 MT 0 3.385 RL 1.692 0 RL 1.692 -1.693 RL -1.692 -1.692 RL -1.692 -0 RL CL FL 176.831 373.493 MT -3.385 0 RL 0 1.692 RL 1.692 1.692 RL -1.693 -1.692 RL 0 -1.692 RL CL FL 134.523 321.031 MT 0 3.385 RL 1.692 0 -RL 1.693 -1.693 RL -1.693 -1.692 RL -1.692 0 RL CL FL 134.523 312.57 MT -0 3.384 RL 1.692 0 RL 1.693 -1.692 RL -1.693 -1.692 RL -1.692 0 RL CL FL -97.293 332.877 MT 0 3.385 RL 1.692 0 RL 1.693 -1.692 RL -1.693 -1.693 RL --1.692 0 RL CL FL 97.293 321.031 MT 0 3.385 RL 1.692 0 RL 1.693 -1.693 -RL -1.693 -1.692 RL -1.692 0 RL CL FL 97.293 309.185 MT 0 3.385 RL 1.692 -0 RL 1.693 -1.693 RL -1.693 -1.692 RL -1.692 0 RL CL FL 486.523 290.57 -MT 0 3.384 RL 1.692 0 RL 1.693 -1.692 RL -1.693 -1.692 RL -1.692 0 RL CL -FL 466.215 348.108 MT 0 3.385 RL 1.693 0 RL 1.692 -1.693 RL -1.692 --1.692 RL -1.693 0 RL CL FL 466.215 321.031 MT 0 3.385 RL 1.693 0 RL -1.692 -1.693 RL -1.692 -1.692 RL -1.693 0 RL CL FL 422.215 282.108 MT 0 -3.385 RL 1.693 0 RL 1.692 -1.693 RL -1.692 -1.692 RL -1.693 0 RL CL FL -290.215 317.646 MT 0 3.385 RL -1.692 0 RL -1.692 -1.692 RL 1.692 -1.693 -RL 1.692 0 RL CL FL 281.754 329.493 MT 5.077 0 RL -3.385 3.384 RL -3.385 --3.384 RL 1.693 0 RL CL FL 219.138 321.031 MT 0 3.385 RL -1.692 0 RL --1.692 -1.693 RL 1.692 -1.692 RL 1.692 0 RL CL FL 312.215 321.031 MT 0 -3.385 RL 1.693 0 RL 1.692 -1.693 RL -1.692 -1.692 RL -1.693 0 RL CL FL -459.446 371.8 MT 0 -3.384 RL 1.692 0 RL 1.693 1.692 RL -1.693 1.692 RL --1.692 0 RL CL FL 288.523 370.108 MT -3.385 0 RL 0 1.692 RL 1.693 1.693 -RL 1.692 -1.693 RL 0 -1.692 RL CL FL 271.6 410.723 MT -3.385 0 RL 0 -1.693 RL 1.693 1.692 RL 1.692 -1.692 RL 0 -1.693 RL CL FL 340.985 371.8 -MT 0 -3.384 RL 1.692 0 RL 1.692 1.692 RL -1.692 1.692 RL -1.692 0 RL CL -FL 325.754 424.262 MT -3.385 0 RL 0 -1.692 RL 1.692 -1.693 RL 1.693 -1.693 RL 0 1.692 RL CL FL 239.446 371.8 MT 0 -3.384 RL 1.692 0 RL 1.693 -1.692 RL -1.693 1.692 RL -1.692 0 RL CL FL 371.446 356.57 MT 0 27.076 RL -27.077 -13.538 RL -27.077 -13.538 RL CL 0.938 Fg 459.446 266.877 MT 0 -3.385 RL 1.692 0 RL 1.693 -1.692 RL -1.693 -1.693 RL -1.692 0 RL CL -0.563 Fg 288.523 275.339 MT -3.385 0 RL 0 -1.693 RL 1.693 -1.692 RL -1.692 1.692 RL 0 1.693 RL CL FL 271.6 234.723 MT -3.385 0 RL 0 -1.692 RL -1.693 -1.692 RL 1.692 1.692 RL 0 1.692 RL CL FL 340.985 273.646 MT 0 -3.385 RL 1.692 0 RL 1.692 -1.692 RL -1.692 -1.693 RL -1.692 0 RL CL FL -325.754 221.185 MT -3.385 0 RL 0 1.692 RL 1.692 1.693 RL 1.693 -1.693 RL -0 -1.692 RL CL FL 242.831 343.031 MT 0 -40.615 RL 40.615 20.307 RL --40.615 20.308 RL CL 0.938 Fg 239.446 273.646 MT 0 3.385 RL 1.692 0 RL -1.693 -1.692 RL -1.693 -1.693 RL -1.692 0 RL CL 0.563 Fg 371.446 288.877 -MT 0 -27.077 RL 27.077 13.539 RL -27.077 13.538 RL CL 0.938 Fg 0 Cg/F4 8 -/Times-Italic@0 SF(V)128.962 408.204 Q/F5 5.6/Times-Italic@0 SF(B).669 -1.6 M/F6 5.6/Times-Roman@0 SF(1).151 E .75 LW 141.292 405.646 141.292 -402.262 DL 142.985 405.646 141.292 405.646 DL 144.677 403.954 142.985 -405.646 DL 142.985 402.262 144.677 403.954 DL 141.292 402.262 142.985 -402.262 DL .45 LW 153.138 403.954 144.677 403.954 DL .75 LW 153.138 -403.531 153.138 403.531 DL 153.113 403.533 153.138 403.531 DL 153.061 -403.54 153.113 403.533 DL 153.01 403.553 153.061 403.54 DL 152.961 -403.573 153.01 403.553 DL 152.915 403.598 152.961 403.573 DL 152.872 -403.629 152.915 403.598 DL 152.833 403.665 152.872 403.629 DL 152.799 -403.705 152.833 403.665 DL 152.771 403.75 152.799 403.705 DL 152.748 -403.797 152.771 403.75 DL 152.731 403.847 152.748 403.797 DL 152.72 -403.899 152.731 403.847 DL 152.716 403.951 152.72 403.899 DL 152.718 -404.002 152.716 403.951 DL 152.727 404.054 152.718 404.002 DL 152.742 -404.104 152.727 404.054 DL 152.764 404.152 152.742 404.104 DL 152.791 -404.197 152.764 404.152 DL 152.823 404.238 152.791 404.197 DL 152.861 -404.275 152.823 404.238 DL 152.902 404.306 152.861 404.275 DL 152.948 -404.333 152.902 404.306 DL 152.996 404.353 152.948 404.333 DL 153.046 -404.367 152.996 404.353 DL 153.098 404.375 153.046 404.367 DL 153.15 -404.377 153.098 404.375 DL 153.202 404.372 153.15 404.377 DL 153.253 -404.36 153.202 404.372 DL 153.303 404.342 153.253 404.36 DL 153.35 -404.319 153.303 404.342 DL 153.394 404.289 153.35 404.319 DL 153.433 -404.255 153.394 404.289 DL 153.469 404.215 153.433 404.255 DL 153.499 -404.172 153.469 404.215 DL 153.523 404.125 153.499 404.172 DL 153.542 -404.076 153.523 404.125 DL 153.554 404.025 153.542 404.076 DL 153.56 -403.973 153.554 404.025 DL 153.56 403.921 153.56 403.973 DL 153.553 -403.869 153.56 403.921 DL 153.539 403.819 153.553 403.869 DL 153.52 -403.77 153.539 403.819 DL 153.494 403.724 153.52 403.77 DL 153.463 -403.682 153.494 403.724 DL 153.427 403.644 153.463 403.682 DL 153.387 -403.611 153.427 403.644 DL 153.342 403.583 153.387 403.611 DL 153.295 -403.561 153.342 403.583 DL 153.245 403.545 153.295 403.561 DL 153.194 -403.535 153.245 403.545 DL 153.141 403.532 153.194 403.535 DL 175.138 -403.531 175.138 403.531 DL 175.113 403.533 175.138 403.531 DL 175.061 -403.54 175.113 403.533 DL 175.01 403.553 175.061 403.54 DL 174.961 -403.573 175.01 403.553 DL 174.915 403.598 174.961 403.573 DL 174.872 -403.629 174.915 403.598 DL 174.833 403.665 174.872 403.629 DL 174.799 -403.705 174.833 403.665 DL 174.771 403.75 174.799 403.705 DL 174.748 -403.797 174.771 403.75 DL 174.731 403.847 174.748 403.797 DL 174.72 -403.899 174.731 403.847 DL 174.716 403.951 174.72 403.899 DL 174.718 -404.002 174.716 403.951 DL 174.727 404.054 174.718 404.002 DL 174.742 -404.104 174.727 404.054 DL 174.764 404.152 174.742 404.104 DL 174.791 -404.197 174.764 404.152 DL 174.823 404.238 174.791 404.197 DL 174.861 -404.275 174.823 404.238 DL 174.902 404.306 174.861 404.275 DL 174.948 -404.333 174.902 404.306 DL 174.996 404.353 174.948 404.333 DL 175.046 -404.367 174.996 404.353 DL 175.098 404.375 175.046 404.367 DL 175.15 -404.377 175.098 404.375 DL 175.202 404.372 175.15 404.377 DL 175.253 -404.36 175.202 404.372 DL 175.303 404.342 175.253 404.36 DL 175.35 -404.319 175.303 404.342 DL 175.394 404.289 175.35 404.319 DL 175.433 -404.255 175.394 404.289 DL 175.469 404.215 175.433 404.255 DL 175.499 -404.172 175.469 404.215 DL 175.523 404.125 175.499 404.172 DL 175.542 -404.076 175.523 404.125 DL 175.554 404.025 175.542 404.076 DL 175.56 -403.973 175.554 404.025 DL 175.56 403.921 175.56 403.973 DL 175.553 -403.869 175.56 403.921 DL 175.539 403.819 175.553 403.869 DL 175.52 -403.77 175.539 403.819 DL 175.494 403.724 175.52 403.77 DL 175.463 -403.682 175.494 403.724 DL 175.427 403.644 175.463 403.682 DL 175.387 -403.611 175.427 403.644 DL 175.342 403.583 175.387 403.611 DL 175.295 -403.561 175.342 403.583 DL 175.245 403.545 175.295 403.561 DL 175.194 -403.535 175.245 403.545 DL 175.141 403.532 175.194 403.535 DL 170.061 -403.531 170.061 403.531 DL 170.036 403.533 170.061 403.531 DL 169.984 -403.54 170.036 403.533 DL 169.933 403.553 169.984 403.54 DL 169.884 -403.573 169.933 403.553 DL 169.838 403.598 169.884 403.573 DL 169.795 -403.629 169.838 403.598 DL 169.756 403.665 169.795 403.629 DL 169.722 -403.705 169.756 403.665 DL 169.694 403.75 169.722 403.705 DL 169.671 -403.797 169.694 403.75 DL 169.654 403.847 169.671 403.797 DL 169.643 -403.899 169.654 403.847 DL 169.639 403.951 169.643 403.899 DL 169.641 -404.002 169.639 403.951 DL 169.65 404.054 169.641 404.002 DL 169.665 -404.104 169.65 404.054 DL 169.687 404.152 169.665 404.104 DL 169.714 -404.197 169.687 404.152 DL 169.746 404.238 169.714 404.197 DL 169.784 -404.275 169.746 404.238 DL 169.825 404.306 169.784 404.275 DL 169.871 -404.333 169.825 404.306 DL 169.919 404.353 169.871 404.333 DL 169.969 -404.367 169.919 404.353 DL 170.021 404.375 169.969 404.367 DL 170.073 -404.377 170.021 404.375 DL 170.125 404.372 170.073 404.377 DL 170.176 -404.36 170.125 404.372 DL 170.226 404.342 170.176 404.36 DL 170.273 -404.319 170.226 404.342 DL 170.317 404.289 170.273 404.319 DL 170.356 -404.255 170.317 404.289 DL 170.392 404.215 170.356 404.255 DL 170.422 -404.172 170.392 404.215 DL 170.446 404.125 170.422 404.172 DL 170.465 -404.076 170.446 404.125 DL 170.477 404.025 170.465 404.076 DL 170.483 -403.973 170.477 404.025 DL 170.483 403.921 170.483 403.973 DL 170.476 -403.869 170.483 403.921 DL 170.462 403.819 170.476 403.869 DL 170.443 -403.77 170.462 403.819 DL 170.417 403.724 170.443 403.77 DL 170.386 -403.682 170.417 403.724 DL 170.35 403.644 170.386 403.682 DL 170.31 -403.611 170.35 403.644 DL 170.265 403.583 170.31 403.611 DL 170.218 -403.561 170.265 403.583 DL 170.168 403.545 170.218 403.561 DL 170.117 -403.535 170.168 403.545 DL 170.064 403.532 170.117 403.535 DL 185.292 -402.262 185.292 405.646 DL 186.985 402.262 185.292 402.262 DL 188.677 -403.954 186.985 402.262 DL 186.985 405.646 188.677 403.954 DL 185.292 -405.646 186.985 405.646 DL F4(V)190.161 408.204 Q F5(INC).669 1.6 M .45 -LW 185.292 403.954 170.061 403.954 DL .75 LW 144.677 429.339 144.677 -432.723 DL 146.369 429.339 144.677 429.339 DL 148.061 431.031 146.369 -429.339 DL 146.369 432.723 148.061 431.031 DL 144.677 432.723 146.369 -432.723 DL/F7 8/Symbol SF(+)127.671 435.281 Q F4(V)1.152 E F5(O).288 1.6 -M F4(DP)145.7 418.358 Q F6(1).344 1.6 M F4(C)163.164 434.454 Q F5(Y).187 -1.6 M .45 LW 175.138 424.262 175.138 431.031 DL .75 LW 173.446 434.416 -176.831 434.416 DL 173.446 432.723 173.446 434.416 DL 175.138 431.031 -173.446 432.723 DL 176.831 432.723 175.138 431.031 DL 176.831 434.416 -176.831 432.723 DL F4(B)172.818 444.608 Q .45 LW 178.523 422.57 171.754 -422.57 DL .75 LW 178.523 424.262 171.754 424.262 DL 163.292 412.416 -163.292 412.416 DL 163.296 412.494 163.292 412.416 DL 163.311 412.597 -163.296 412.494 DL 163.339 412.698 163.311 412.597 DL 163.379 412.794 -163.339 412.698 DL 163.431 412.884 163.379 412.794 DL 163.493 412.968 -163.431 412.884 DL 163.566 413.043 163.493 412.968 DL 163.647 413.108 -163.566 413.043 DL 163.735 413.163 163.647 413.108 DL 163.83 413.206 -163.735 413.163 DL 163.929 413.237 163.83 413.206 DL 164.032 413.256 -163.929 413.237 DL 164.136 413.262 164.032 413.256 DL 164.24 413.255 -164.136 413.262 DL 164.342 413.235 164.24 413.255 DL 164.442 413.203 -164.342 413.235 DL 164.537 413.159 164.442 413.203 DL 164.626 413.103 -164.537 413.159 DL 164.707 413.037 164.626 413.103 DL 164.78 412.962 -164.707 413.037 DL 164.843 412.878 164.78 412.962 DL 164.895 412.787 -164.843 412.878 DL 164.936 412.691 164.895 412.787 DL 164.965 412.59 -164.936 412.691 DL 164.98 412.487 164.965 412.59 DL 164.984 412.383 -164.98 412.487 DL 164.974 412.279 164.984 412.383 DL 164.951 412.178 -164.974 412.279 DL 164.916 412.079 164.951 412.178 DL 164.87 411.986 -164.916 412.079 DL 164.812 411.9 164.87 411.986 DL 164.743 411.821 -164.812 411.9 DL 164.666 411.752 164.743 411.821 DL 164.58 411.692 -164.666 411.752 DL 164.488 411.644 164.58 411.692 DL 164.391 411.608 -164.488 411.644 DL 164.289 411.583 164.391 411.608 DL 164.185 411.572 -164.289 411.583 DL 164.082 411.573 164.185 411.572 DL 163.978 411.588 -164.082 411.573 DL 163.877 411.615 163.978 411.588 DL 163.78 411.654 -163.877 411.615 DL 163.688 411.704 163.78 411.654 DL 163.604 411.766 -163.688 411.704 DL 163.527 411.838 163.604 411.766 DL 163.46 411.918 -163.527 411.838 DL 163.403 412.006 163.46 411.918 DL 163.357 412.1 -163.403 412.006 DL 163.323 412.199 163.357 412.1 DL 163.302 412.302 -163.323 412.199 DL 163.293 412.406 163.302 412.302 DL 161.6 415.8 -159.908 410.723 DL 158.215 412.416 158.215 412.416 DL 158.219 412.494 -158.215 412.416 DL 158.234 412.597 158.219 412.494 DL 158.262 412.698 -158.234 412.597 DL 158.302 412.794 158.262 412.698 DL 158.354 412.884 -158.302 412.794 DL 158.416 412.968 158.354 412.884 DL 158.489 413.043 -158.416 412.968 DL 158.57 413.108 158.489 413.043 DL 158.658 413.163 -158.57 413.108 DL 158.753 413.206 158.658 413.163 DL 158.852 413.237 -158.753 413.206 DL 158.955 413.256 158.852 413.237 DL 159.059 413.262 -158.955 413.256 DL 159.163 413.255 159.059 413.262 DL 159.265 413.235 -159.163 413.255 DL 159.365 413.203 159.265 413.235 DL 159.46 413.159 -159.365 413.203 DL 159.549 413.103 159.46 413.159 DL 159.63 413.037 -159.549 413.103 DL 159.703 412.962 159.63 413.037 DL 159.766 412.878 -159.703 412.962 DL 159.818 412.787 159.766 412.878 DL 159.859 412.691 -159.818 412.787 DL 159.888 412.59 159.859 412.691 DL 159.903 412.487 -159.888 412.59 DL 159.907 412.383 159.903 412.487 DL 159.897 412.279 -159.907 412.383 DL 159.874 412.178 159.897 412.279 DL 159.839 412.079 -159.874 412.178 DL 159.793 411.986 159.839 412.079 DL 159.735 411.9 -159.793 411.986 DL 159.666 411.821 159.735 411.9 DL 159.589 411.752 -159.666 411.821 DL 159.503 411.692 159.589 411.752 DL 159.411 411.644 -159.503 411.692 DL 159.314 411.608 159.411 411.644 DL 159.212 411.583 -159.314 411.608 DL 159.108 411.572 159.212 411.583 DL 159.005 411.573 -159.108 411.572 DL 158.901 411.588 159.005 411.573 DL 158.8 411.615 -158.901 411.588 DL 158.703 411.654 158.8 411.615 DL 158.611 411.704 -158.703 411.654 DL 158.527 411.766 158.611 411.704 DL 158.45 411.838 -158.527 411.766 DL 158.383 411.918 158.45 411.838 DL 158.326 412.006 -158.383 411.918 DL 158.28 412.1 158.326 412.006 DL 158.246 412.199 -158.28 412.1 DL 158.225 412.302 158.246 412.199 DL 158.216 412.406 -158.225 412.302 DL .45 LW 161.6 415.8 161.6 422.57 DL 164.985 422.57 -158.215 422.57 DL .75 LW 164.985 424.262 158.215 424.262 DL .45 LW 161.6 -431.031 148.061 431.031 DL 161.6 424.262 161.6 431.031 DL(C)176.703 -434.454 Q F5(Z).658 1.6 M .75 LW 283.446 334.146 283.446 334.146 DL -283.421 334.148 283.446 334.146 DL 283.368 334.155 283.421 334.148 DL -283.317 334.168 283.368 334.155 DL 283.268 334.188 283.317 334.168 DL -283.222 334.213 283.268 334.188 DL 283.179 334.244 283.222 334.213 DL -283.141 334.28 283.179 334.244 DL 283.107 334.321 283.141 334.28 DL -283.078 334.365 283.107 334.321 DL 283.055 334.413 283.078 334.365 DL -283.038 334.463 283.055 334.413 DL 283.027 334.514 283.038 334.463 DL -283.023 334.567 283.027 334.514 DL 283.025 334.618 283.023 334.567 DL -283.034 334.67 283.025 334.618 DL 283.049 334.721 283.034 334.67 DL -283.071 334.769 283.049 334.721 DL 283.098 334.813 283.071 334.769 DL -283.131 334.855 283.098 334.813 DL 283.168 334.891 283.131 334.855 DL -283.21 334.923 283.168 334.891 DL 283.255 334.95 283.21 334.923 DL -283.303 334.97 283.255 334.95 DL 283.354 334.984 283.303 334.97 DL -283.406 334.992 283.354 334.984 DL 283.458 334.994 283.406 334.992 DL -283.51 334.989 283.458 334.994 DL 283.561 334.977 283.51 334.989 DL -283.611 334.959 283.561 334.977 DL 283.658 334.935 283.611 334.959 DL -283.702 334.906 283.658 334.935 DL 283.742 334.871 283.702 334.906 DL -283.777 334.832 283.742 334.871 DL 283.808 334.789 283.777 334.832 DL -283.832 334.742 283.808 334.789 DL 283.851 334.692 283.832 334.742 DL -283.863 334.641 283.851 334.692 DL 283.869 334.589 283.863 334.641 DL -283.869 334.537 283.869 334.589 DL 283.862 334.485 283.869 334.537 DL -283.848 334.434 283.862 334.485 DL 283.829 334.386 283.848 334.434 DL -283.803 334.34 283.829 334.386 DL 283.772 334.297 283.803 334.34 DL -283.736 334.259 283.772 334.297 DL 283.695 334.226 283.736 334.259 DL -283.651 334.198 283.695 334.226 DL 283.603 334.176 283.651 334.198 DL -283.553 334.16 283.603 334.176 DL 283.502 334.15 283.553 334.16 DL -283.449 334.147 283.502 334.15 DL .45 LW 283.446 334.57 283.446 343.031 -DL .75 LW 281.754 343.031 285.138 343.031 DL 281.754 344.723 281.754 -343.031 DL 283.446 346.416 281.754 344.723 DL 285.138 344.723 283.446 -346.416 DL 285.138 343.031 285.138 344.723 DL F7(-)275.789 356.608 Q F4 -(V)1.152 E F5(O).288 1.6 M 283.446 311.3 283.446 311.3 DL 283.472 -311.299 283.446 311.3 DL 283.524 311.292 283.472 311.299 DL 283.575 -311.279 283.524 311.292 DL 283.624 311.259 283.575 311.279 DL 283.67 -311.234 283.624 311.259 DL 283.713 311.203 283.67 311.234 DL 283.752 -311.167 283.713 311.203 DL 283.786 311.127 283.752 311.167 DL 283.814 -311.082 283.786 311.127 DL 283.837 311.035 283.814 311.082 DL 283.854 -310.985 283.837 311.035 DL 283.865 310.933 283.854 310.985 DL 283.869 -310.881 283.865 310.933 DL 283.867 310.83 283.869 310.881 DL 283.858 -310.778 283.867 310.83 DL 283.843 310.728 283.858 310.778 DL 283.821 -310.68 283.843 310.728 DL 283.794 310.635 283.821 310.68 DL 283.762 -310.594 283.794 310.635 DL 283.724 310.557 283.762 310.594 DL 283.683 -310.526 283.724 310.557 DL 283.637 310.499 283.683 310.526 DL 283.589 -310.479 283.637 310.499 DL 283.539 310.465 283.589 310.479 DL 283.487 -310.457 283.539 310.465 DL 283.435 310.455 283.487 310.457 DL 283.383 -310.46 283.435 310.455 DL 283.332 310.472 283.383 310.46 DL 283.282 -310.49 283.332 310.472 DL 283.235 310.513 283.282 310.49 DL 283.191 -310.543 283.235 310.513 DL 283.152 310.577 283.191 310.543 DL 283.116 -310.617 283.152 310.577 DL 283.086 310.66 283.116 310.617 DL 283.062 -310.707 283.086 310.66 DL 283.043 310.756 283.062 310.707 DL 283.031 -310.807 283.043 310.756 DL 283.025 310.859 283.031 310.807 DL 283.025 -310.911 283.025 310.859 DL 283.032 310.963 283.025 310.911 DL 283.046 -311.013 283.032 310.963 DL 283.065 311.062 283.046 311.013 DL 283.091 -311.108 283.065 311.062 DL 283.122 311.15 283.091 311.108 DL 283.158 -311.188 283.122 311.15 DL 283.198 311.221 283.158 311.188 DL 283.243 -311.249 283.198 311.221 DL 283.29 311.271 283.243 311.249 DL 283.34 -311.287 283.29 311.271 DL 283.391 311.297 283.34 311.287 DL 283.444 -311.3 283.391 311.297 DL .45 LW 283.446 310.877 283.446 302.416 DL .75 -LW 281.754 302.416 285.138 302.416 DL 281.754 300.723 281.754 302.416 DL -283.446 299.031 281.754 300.723 DL 285.138 300.723 283.446 299.031 DL -285.138 302.416 285.138 300.723 DL F7(+)275.789 297.339 Q F4(V)1.152 E -F5(O).288 1.6 M 144.677 378.57 144.677 375.185 DL 146.369 378.57 144.677 -378.57 DL 148.061 376.877 146.369 378.57 DL 146.369 375.185 148.061 -376.877 DL 144.677 375.185 146.369 375.185 DL F7(+)127.671 381.127 Q F4 -(V)1.152 E F5(O).288 1.6 M F4(DP)145.7 393.8 Q F6(1).344 1.6 M F4(C) -176.703 381.954 Q F5(Z).658 1.6 M F4(C)163.164 381.954 Q F5(Y).187 1.6 M -.45 LW 170.061 395.493 164.985 395.493 DL 170.061 412.416 170.061 -395.493 DL 164.985 412.416 170.061 412.416 DL 153.138 395.493 158.215 -395.493 DL 153.138 412.416 153.138 395.493 DL 158.215 412.416 153.138 -412.416 DL 175.138 383.646 175.138 376.877 DL .75 LW 173.446 373.493 -176.831 373.493 DL 173.446 375.185 173.446 373.493 DL 175.138 376.877 -173.446 375.185 DL 176.831 375.185 175.138 376.877 DL 176.831 373.493 -176.831 375.185 DL F4(A)173.086 371.8 Q .45 LW 178.523 385.339 171.754 -385.339 DL .75 LW 178.523 383.646 171.754 383.646 DL .45 LW 175.138 -422.57 175.138 385.339 DL .75 LW 163.292 395.493 163.292 395.493 DL -163.296 395.571 163.292 395.493 DL 163.311 395.674 163.296 395.571 DL -163.339 395.775 163.311 395.674 DL 163.379 395.871 163.339 395.775 DL -163.431 395.961 163.379 395.871 DL 163.493 396.045 163.431 395.961 DL -163.566 396.12 163.493 396.045 DL 163.647 396.185 163.566 396.12 DL -163.735 396.24 163.647 396.185 DL 163.83 396.283 163.735 396.24 DL -163.929 396.314 163.83 396.283 DL 164.032 396.333 163.929 396.314 DL -164.136 396.339 164.032 396.333 DL 164.24 396.332 164.136 396.339 DL -164.342 396.312 164.24 396.332 DL 164.442 396.28 164.342 396.312 DL -164.537 396.236 164.442 396.28 DL 164.626 396.18 164.537 396.236 DL -164.707 396.114 164.626 396.18 DL 164.78 396.039 164.707 396.114 DL -164.843 395.955 164.78 396.039 DL 164.895 395.864 164.843 395.955 DL -164.936 395.768 164.895 395.864 DL 164.965 395.667 164.936 395.768 DL -164.98 395.564 164.965 395.667 DL 164.984 395.46 164.98 395.564 DL -164.974 395.356 164.984 395.46 DL 164.951 395.255 164.974 395.356 DL -164.916 395.156 164.951 395.255 DL 164.87 395.063 164.916 395.156 DL -164.812 394.977 164.87 395.063 DL 164.743 394.898 164.812 394.977 DL -164.666 394.829 164.743 394.898 DL 164.58 394.769 164.666 394.829 DL -164.488 394.721 164.58 394.769 DL 164.391 394.685 164.488 394.721 DL -164.289 394.66 164.391 394.685 DL 164.185 394.649 164.289 394.66 DL -164.082 394.65 164.185 394.649 DL 163.978 394.665 164.082 394.65 DL -163.877 394.692 163.978 394.665 DL 163.78 394.731 163.877 394.692 DL -163.688 394.781 163.78 394.731 DL 163.604 394.843 163.688 394.781 DL -163.527 394.915 163.604 394.843 DL 163.46 394.995 163.527 394.915 DL -163.403 395.083 163.46 394.995 DL 163.357 395.177 163.403 395.083 DL -163.323 395.276 163.357 395.177 DL 163.302 395.379 163.323 395.276 DL -163.293 395.483 163.302 395.379 DL 161.6 392.108 159.908 397.185 DL -158.215 395.493 158.215 395.493 DL 158.219 395.571 158.215 395.493 DL -158.234 395.674 158.219 395.571 DL 158.262 395.775 158.234 395.674 DL -158.302 395.871 158.262 395.775 DL 158.354 395.961 158.302 395.871 DL -158.416 396.045 158.354 395.961 DL 158.489 396.12 158.416 396.045 DL -158.57 396.185 158.489 396.12 DL 158.658 396.24 158.57 396.185 DL -158.753 396.283 158.658 396.24 DL 158.852 396.314 158.753 396.283 DL -158.955 396.333 158.852 396.314 DL 159.059 396.339 158.955 396.333 DL -159.163 396.332 159.059 396.339 DL 159.265 396.312 159.163 396.332 DL -159.365 396.28 159.265 396.312 DL 159.46 396.236 159.365 396.28 DL -159.549 396.18 159.46 396.236 DL 159.63 396.114 159.549 396.18 DL -159.703 396.039 159.63 396.114 DL 159.766 395.955 159.703 396.039 DL -159.818 395.864 159.766 395.955 DL 159.859 395.768 159.818 395.864 DL -159.888 395.667 159.859 395.768 DL 159.903 395.564 159.888 395.667 DL -159.907 395.46 159.903 395.564 DL 159.897 395.356 159.907 395.46 DL -159.874 395.255 159.897 395.356 DL 159.839 395.156 159.874 395.255 DL -159.793 395.063 159.839 395.156 DL 159.735 394.977 159.793 395.063 DL -159.666 394.898 159.735 394.977 DL 159.589 394.829 159.666 394.898 DL -159.503 394.769 159.589 394.829 DL 159.411 394.721 159.503 394.769 DL -159.314 394.685 159.411 394.721 DL 159.212 394.66 159.314 394.685 DL -159.108 394.649 159.212 394.66 DL 159.005 394.65 159.108 394.649 DL -158.901 394.665 159.005 394.65 DL 158.8 394.692 158.901 394.665 DL -158.703 394.731 158.8 394.692 DL 158.611 394.781 158.703 394.731 DL -158.527 394.843 158.611 394.781 DL 158.45 394.915 158.527 394.843 DL -158.383 394.995 158.45 394.915 DL 158.326 395.083 158.383 394.995 DL -158.28 395.177 158.326 395.083 DL 158.246 395.276 158.28 395.177 DL -158.225 395.379 158.246 395.276 DL 158.216 395.483 158.225 395.379 DL -.45 LW 161.6 392.108 161.6 385.339 DL 164.985 385.339 158.215 385.339 DL -.75 LW 164.985 383.646 158.215 383.646 DL .45 LW 161.6 376.877 148.061 -376.877 DL 161.6 383.646 161.6 376.877 DL .75 LW 149.754 323.146 149.754 -323.146 DL 149.78 323.145 149.754 323.146 DL 149.832 323.138 149.78 -323.145 DL 149.883 323.125 149.832 323.138 DL 149.932 323.105 149.883 -323.125 DL 149.978 323.08 149.932 323.105 DL 150.021 323.049 149.978 -323.08 DL 150.06 323.013 150.021 323.049 DL 150.094 322.973 150.06 -323.013 DL 150.122 322.928 150.094 322.973 DL 150.145 322.881 150.122 -322.928 DL 150.162 322.831 150.145 322.881 DL 150.173 322.779 150.162 -322.831 DL 150.177 322.727 150.173 322.779 DL 150.175 322.676 150.177 -322.727 DL 150.166 322.624 150.175 322.676 DL 150.151 322.574 150.166 -322.624 DL 150.129 322.526 150.151 322.574 DL 150.102 322.481 150.129 -322.526 DL 150.07 322.44 150.102 322.481 DL 150.032 322.403 150.07 -322.44 DL 149.991 322.372 150.032 322.403 DL 149.945 322.345 149.991 -322.372 DL 149.897 322.325 149.945 322.345 DL 149.847 322.311 149.897 -322.325 DL 149.795 322.303 149.847 322.311 DL 149.743 322.301 149.795 -322.303 DL 149.691 322.306 149.743 322.301 DL 149.64 322.318 149.691 -322.306 DL 149.59 322.336 149.64 322.318 DL 149.543 322.359 149.59 -322.336 DL 149.499 322.389 149.543 322.359 DL 149.46 322.423 149.499 -322.389 DL 149.424 322.463 149.46 322.423 DL 149.394 322.506 149.424 -322.463 DL 149.37 322.553 149.394 322.506 DL 149.351 322.602 149.37 -322.553 DL 149.339 322.653 149.351 322.602 DL 149.333 322.705 149.339 -322.653 DL 149.333 322.757 149.333 322.705 DL 149.34 322.809 149.333 -322.757 DL 149.354 322.859 149.34 322.809 DL 149.373 322.908 149.354 -322.859 DL 149.399 322.954 149.373 322.908 DL 149.43 322.996 149.399 -322.954 DL 149.466 323.034 149.43 322.996 DL 149.506 323.067 149.466 -323.034 DL 149.551 323.095 149.506 323.067 DL 149.598 323.117 149.551 -323.095 DL 149.648 323.133 149.598 323.117 DL 149.699 323.143 149.648 -323.133 DL 149.752 323.146 149.699 323.143 DL 142.985 314.685 142.985 -314.685 DL 143.011 314.684 142.985 314.685 DL 143.063 314.677 143.011 -314.684 DL 143.114 314.664 143.063 314.677 DL 143.163 314.644 143.114 -314.664 DL 143.209 314.619 143.163 314.644 DL 143.252 314.588 143.209 -314.619 DL 143.291 314.552 143.252 314.588 DL 143.325 314.512 143.291 -314.552 DL 143.353 314.467 143.325 314.512 DL 143.376 314.42 143.353 -314.467 DL 143.393 314.37 143.376 314.42 DL 143.404 314.318 143.393 -314.37 DL 143.408 314.266 143.404 314.318 DL 143.406 314.215 143.408 -314.266 DL 143.397 314.163 143.406 314.215 DL 143.382 314.113 143.397 -314.163 DL 143.36 314.065 143.382 314.113 DL 143.333 314.02 143.36 -314.065 DL 143.301 313.979 143.333 314.02 DL 143.263 313.942 143.301 -313.979 DL 143.222 313.911 143.263 313.942 DL 143.176 313.884 143.222 -313.911 DL 143.128 313.864 143.176 313.884 DL 143.078 313.85 143.128 -313.864 DL 143.026 313.842 143.078 313.85 DL 142.974 313.84 143.026 -313.842 DL 142.922 313.845 142.974 313.84 DL 142.871 313.857 142.922 -313.845 DL 142.821 313.875 142.871 313.857 DL 142.774 313.898 142.821 -313.875 DL 142.73 313.928 142.774 313.898 DL 142.691 313.962 142.73 -313.928 DL 142.655 314.002 142.691 313.962 DL 142.625 314.045 142.655 -314.002 DL 142.601 314.092 142.625 314.045 DL 142.582 314.141 142.601 -314.092 DL 142.57 314.192 142.582 314.141 DL 142.564 314.244 142.57 -314.192 DL 142.564 314.296 142.564 314.244 DL 142.571 314.348 142.564 -314.296 DL 142.585 314.398 142.571 314.348 DL 142.604 314.447 142.585 -314.398 DL 142.63 314.493 142.604 314.447 DL 142.661 314.535 142.63 -314.493 DL 142.697 314.573 142.661 314.535 DL 142.737 314.606 142.697 -314.573 DL 142.782 314.634 142.737 314.606 DL 142.829 314.656 142.782 -314.634 DL 142.879 314.672 142.829 314.656 DL 142.93 314.682 142.879 -314.672 DL 142.983 314.685 142.93 314.682 DL F7(-)114.174 326.973 Q F4 -(V)1.152 E F5(SIG).529 1.6 M 134.523 324.416 134.523 321.031 DL 136.215 -324.416 134.523 324.416 DL 137.908 322.723 136.215 324.416 DL 136.215 -321.031 137.908 322.723 DL 134.523 321.031 136.215 321.031 DL 134.523 -315.954 134.523 312.57 DL 136.215 315.954 134.523 315.954 DL 137.908 -314.262 136.215 315.954 DL 136.215 312.57 137.908 314.262 DL 134.523 -312.57 136.215 312.57 DL F7(+)114.174 318.512 Q F4(V)1.152 E F5(SIG).529 -1.6 M .45 LW 137.908 314.262 142.985 314.262 DL 137.908 322.723 149.754 -322.723 DL 149.754 324.416 149.754 321.031 DL 142.985 314.262 149.754 -314.262 DL 142.985 331.185 142.985 314.262 DL 149.754 331.185 142.985 -331.185 DL F4(ABN)115.146 363.339 Q(ABC)110.373 354.877 Q(ABP)116.122 -346.416 Q(ABN)115.146 295.646 Q(ABC)110.373 287.185 Q(ABP)116.122 -278.723 Q .75 LW 120.985 334.993 120.985 334.993 DL 121.011 334.992 -120.985 334.993 DL 121.063 334.985 121.011 334.992 DL 121.114 334.972 -121.063 334.985 DL 121.163 334.952 121.114 334.972 DL 121.209 334.927 -121.163 334.952 DL 121.252 334.896 121.209 334.927 DL 121.291 334.86 -121.252 334.896 DL 121.325 334.82 121.291 334.86 DL 121.353 334.775 -121.325 334.82 DL 121.376 334.728 121.353 334.775 DL 121.393 334.678 -121.376 334.728 DL 121.404 334.626 121.393 334.678 DL 121.408 334.574 -121.404 334.626 DL 121.406 334.523 121.408 334.574 DL 121.397 334.471 -121.406 334.523 DL 121.382 334.421 121.397 334.471 DL 121.36 334.373 -121.382 334.421 DL 121.333 334.328 121.36 334.373 DL 121.301 334.287 -121.333 334.328 DL 121.263 334.25 121.301 334.287 DL 121.222 334.219 -121.263 334.25 DL 121.176 334.192 121.222 334.219 DL 121.128 334.172 -121.176 334.192 DL 121.078 334.158 121.128 334.172 DL 121.026 334.15 -121.078 334.158 DL 120.974 334.148 121.026 334.15 DL 120.922 334.153 -120.974 334.148 DL 120.871 334.165 120.922 334.153 DL 120.821 334.183 -120.871 334.165 DL 120.774 334.206 120.821 334.183 DL 120.73 334.236 -120.774 334.206 DL 120.691 334.27 120.73 334.236 DL 120.655 334.31 -120.691 334.27 DL 120.625 334.353 120.655 334.31 DL 120.601 334.4 -120.625 334.353 DL 120.582 334.449 120.601 334.4 DL 120.57 334.5 120.582 -334.449 DL 120.564 334.552 120.57 334.5 DL 120.564 334.604 120.564 -334.552 DL 120.571 334.656 120.564 334.604 DL 120.585 334.706 120.571 -334.656 DL 120.604 334.755 120.585 334.706 DL 120.63 334.801 120.604 -334.755 DL 120.661 334.843 120.63 334.801 DL 120.697 334.881 120.661 -334.843 DL 120.737 334.914 120.697 334.881 DL 120.782 334.942 120.737 -334.914 DL 120.829 334.964 120.782 334.942 DL 120.879 334.98 120.829 -334.964 DL 120.93 334.99 120.879 334.98 DL 120.983 334.993 120.93 334.99 -DL .45 LW 120.985 334.57 100.678 334.57 DL .75 LW 97.293 336.262 97.293 -332.877 DL 98.985 336.262 97.293 336.262 DL 100.678 334.57 98.985 -336.262 DL 98.985 332.877 100.678 334.57 DL 97.293 332.877 98.985 -332.877 DL F7(-)73.336 338.82 Q F4(V)1.152 E F5(REF).697 1.6 M F4(AGND) -73.601 326.973 Q 97.293 324.416 97.293 321.031 DL 98.985 324.416 97.293 -324.416 DL 100.678 322.723 98.985 324.416 DL 98.985 321.031 100.678 -322.723 DL 97.293 321.031 98.985 321.031 DL .45 LW 114.216 322.723 -100.678 322.723 DL .75 LW 114.216 323.146 114.216 323.146 DL 114.242 -323.145 114.216 323.146 DL 114.294 323.138 114.242 323.145 DL 114.345 -323.125 114.294 323.138 DL 114.394 323.105 114.345 323.125 DL 114.44 -323.08 114.394 323.105 DL 114.483 323.049 114.44 323.08 DL 114.522 -323.013 114.483 323.049 DL 114.556 322.973 114.522 323.013 DL 114.584 -322.928 114.556 322.973 DL 114.607 322.881 114.584 322.928 DL 114.624 -322.831 114.607 322.881 DL 114.635 322.779 114.624 322.831 DL 114.639 -322.727 114.635 322.779 DL 114.637 322.676 114.639 322.727 DL 114.628 -322.624 114.637 322.676 DL 114.613 322.574 114.628 322.624 DL 114.591 -322.526 114.613 322.574 DL 114.564 322.481 114.591 322.526 DL 114.532 -322.44 114.564 322.481 DL 114.494 322.403 114.532 322.44 DL 114.453 -322.372 114.494 322.403 DL 114.407 322.345 114.453 322.372 DL 114.359 -322.325 114.407 322.345 DL 114.309 322.311 114.359 322.325 DL 114.257 -322.303 114.309 322.311 DL 114.205 322.301 114.257 322.303 DL 114.153 -322.306 114.205 322.301 DL 114.102 322.318 114.153 322.306 DL 114.052 -322.336 114.102 322.318 DL 114.005 322.359 114.052 322.336 DL 113.961 -322.389 114.005 322.359 DL 113.922 322.423 113.961 322.389 DL 113.886 -322.463 113.922 322.423 DL 113.856 322.506 113.886 322.463 DL 113.832 -322.553 113.856 322.506 DL 113.813 322.602 113.832 322.553 DL 113.801 -322.653 113.813 322.602 DL 113.795 322.705 113.801 322.653 DL 113.795 -322.757 113.795 322.705 DL 113.802 322.809 113.795 322.757 DL 113.816 -322.859 113.802 322.809 DL 113.835 322.908 113.816 322.859 DL 113.861 -322.954 113.835 322.908 DL 113.892 322.996 113.861 322.954 DL 113.928 -323.034 113.892 322.996 DL 113.968 323.067 113.928 323.034 DL 114.013 -323.095 113.968 323.067 DL 114.06 323.117 114.013 323.095 DL 114.11 -323.133 114.06 323.117 DL 114.161 323.143 114.11 323.133 DL 114.214 -323.146 114.161 323.143 DL 107.447 311.3 107.447 311.3 DL 107.473 -311.299 107.447 311.3 DL 107.525 311.292 107.473 311.299 DL 107.576 -311.279 107.525 311.292 DL 107.625 311.259 107.576 311.279 DL 107.671 -311.234 107.625 311.259 DL 107.714 311.203 107.671 311.234 DL 107.753 -311.167 107.714 311.203 DL 107.787 311.127 107.753 311.167 DL 107.815 -311.082 107.787 311.127 DL 107.838 311.035 107.815 311.082 DL 107.855 -310.985 107.838 311.035 DL 107.866 310.933 107.855 310.985 DL 107.87 -310.881 107.866 310.933 DL 107.868 310.83 107.87 310.881 DL 107.859 -310.778 107.868 310.83 DL 107.844 310.728 107.859 310.778 DL 107.822 -310.68 107.844 310.728 DL 107.795 310.635 107.822 310.68 DL 107.763 -310.594 107.795 310.635 DL 107.725 310.557 107.763 310.594 DL 107.684 -310.526 107.725 310.557 DL 107.638 310.499 107.684 310.526 DL 107.59 -310.479 107.638 310.499 DL 107.54 310.465 107.59 310.479 DL 107.488 -310.457 107.54 310.465 DL 107.436 310.455 107.488 310.457 DL 107.384 -310.46 107.436 310.455 DL 107.333 310.472 107.384 310.46 DL 107.283 -310.49 107.333 310.472 DL 107.236 310.513 107.283 310.49 DL 107.192 -310.543 107.236 310.513 DL 107.153 310.577 107.192 310.543 DL 107.117 -310.617 107.153 310.577 DL 107.087 310.66 107.117 310.617 DL 107.063 -310.707 107.087 310.66 DL 107.044 310.756 107.063 310.707 DL 107.032 -310.807 107.044 310.756 DL 107.026 310.859 107.032 310.807 DL 107.026 -310.911 107.026 310.859 DL 107.033 310.963 107.026 310.911 DL 107.047 -311.013 107.033 310.963 DL 107.066 311.062 107.047 311.013 DL 107.092 -311.108 107.066 311.062 DL 107.123 311.15 107.092 311.108 DL 107.159 -311.188 107.123 311.15 DL 107.199 311.221 107.159 311.188 DL 107.244 -311.249 107.199 311.221 DL 107.291 311.271 107.244 311.249 DL 107.341 -311.287 107.291 311.271 DL 107.392 311.297 107.341 311.287 DL 107.445 -311.3 107.392 311.297 DL .45 LW 107.447 310.877 100.678 310.877 DL .75 -LW 97.293 312.57 97.293 309.185 DL 98.985 312.57 97.293 312.57 DL -100.678 310.877 98.985 312.57 DL 98.985 309.185 100.678 310.877 DL -97.293 309.185 98.985 309.185 DL F7(+)73.336 315.127 Q F4(V)1.152 E F5 -(REF).697 1.6 M .45 LW 107.447 365.031 132.831 365.031 DL 107.447 -280.416 107.447 365.031 DL 132.831 280.416 107.447 280.416 DL 114.216 -288.877 126.061 288.877 DL 114.216 356.57 114.216 288.877 DL 126.061 -356.57 114.216 356.57 DL 120.985 297.339 132.831 297.339 DL 120.985 -348.108 120.985 297.339 DL 132.831 348.108 120.985 348.108 DL .75 LW -126.061 356.57 126.061 356.57 DL 126.065 356.648 126.061 356.57 DL -126.08 356.752 126.065 356.648 DL 126.108 356.852 126.08 356.752 DL -126.148 356.949 126.108 356.852 DL 126.2 357.039 126.148 356.949 DL -126.263 357.122 126.2 357.039 DL 126.335 357.197 126.263 357.122 DL -126.416 357.263 126.335 357.197 DL 126.505 357.317 126.416 357.263 DL -126.6 357.361 126.505 357.317 DL 126.699 357.392 126.6 357.361 DL -126.802 357.411 126.699 357.392 DL 126.906 357.417 126.802 357.411 DL -127.01 357.41 126.906 357.417 DL 127.112 357.39 127.01 357.41 DL 127.212 -357.358 127.112 357.39 DL 127.307 357.314 127.212 357.358 DL 127.396 -357.258 127.307 357.314 DL 127.478 357.192 127.396 357.258 DL 127.551 -357.117 127.478 357.192 DL 127.614 357.033 127.551 357.117 DL 127.666 -356.942 127.614 357.033 DL 127.707 356.845 127.666 356.942 DL 127.736 -356.744 127.707 356.845 DL 127.751 356.641 127.736 356.744 DL 127.755 -356.537 127.751 356.641 DL 127.745 356.433 127.755 356.537 DL 127.722 -356.331 127.745 356.433 DL 127.687 356.233 127.722 356.331 DL 127.64 -356.14 127.687 356.233 DL 127.582 356.053 127.64 356.14 DL 127.514 -355.975 127.582 356.053 DL 127.437 355.905 127.514 355.975 DL 127.351 -355.846 127.437 355.905 DL 127.259 355.797 127.351 355.846 DL 127.161 -355.761 127.259 355.797 DL 127.059 355.736 127.161 355.761 DL 126.956 -355.725 127.059 355.736 DL 126.852 355.726 126.956 355.725 DL 126.748 -355.741 126.852 355.726 DL 126.647 355.768 126.748 355.741 DL 126.55 -355.807 126.647 355.768 DL 126.458 355.858 126.55 355.807 DL 126.373 -355.919 126.458 355.858 DL 126.296 355.991 126.373 355.919 DL 126.229 -356.071 126.296 355.991 DL 126.172 356.159 126.229 356.071 DL 126.126 -356.254 126.172 356.159 DL 126.092 356.353 126.126 356.254 DL 126.071 -356.456 126.092 356.353 DL 126.062 356.56 126.071 356.456 DL 132.831 -363.339 132.831 363.339 DL 132.754 363.344 132.831 363.339 DL 132.651 -363.361 132.754 363.344 DL 132.55 363.391 132.651 363.361 DL 132.454 -363.432 132.55 363.391 DL 132.364 363.485 132.454 363.432 DL 132.28 -363.549 132.364 363.485 DL 132.205 363.622 132.28 363.549 DL 132.14 -363.704 132.205 363.622 DL 132.085 363.794 132.14 363.704 DL 132.042 -363.889 132.085 363.794 DL 132.011 363.989 132.042 363.889 DL 131.992 -364.092 132.011 363.989 DL 131.986 364.195 131.992 364.092 DL 131.993 -364.299 131.986 364.195 DL 132.013 364.402 131.993 364.299 DL 132.045 -364.501 132.013 364.402 DL 132.089 364.595 132.045 364.501 DL 132.145 -364.683 132.089 364.595 DL 132.211 364.764 132.145 364.683 DL 132.286 -364.835 132.211 364.764 DL 132.37 364.897 132.286 364.835 DL 132.461 -364.948 132.37 364.897 DL 132.557 364.987 132.461 364.948 DL 132.658 -365.014 132.557 364.987 DL 132.761 365.029 132.658 365.014 DL 132.865 -365.03 132.761 365.029 DL 132.969 365.019 132.865 365.03 DL 133.07 -364.995 132.969 365.019 DL 133.169 364.958 133.07 364.995 DL 133.262 -364.91 133.169 364.958 DL 133.348 364.851 133.262 364.91 DL 133.427 -364.781 133.348 364.851 DL 133.496 364.703 133.427 364.781 DL 133.556 -364.616 133.496 364.703 DL 133.604 364.523 133.556 364.616 DL 133.64 -364.425 133.604 364.523 DL 133.665 364.323 133.64 364.425 DL 133.676 -364.219 133.665 364.323 DL 133.675 364.116 133.676 364.219 DL 133.66 -364.013 133.675 364.116 DL 133.633 363.912 133.66 364.013 DL 133.594 -363.815 133.633 363.912 DL 133.544 363.724 133.594 363.815 DL 133.482 -363.641 133.544 363.724 DL 133.41 363.565 133.482 363.641 DL 133.33 -363.499 133.41 363.565 DL 133.242 363.443 133.33 363.499 DL 133.148 -363.399 133.242 363.443 DL 133.049 363.367 133.148 363.399 DL 132.946 -363.347 133.049 363.367 DL 132.842 363.34 132.946 363.347 DL 137.908 -356.57 131.138 349.8 DL 132.831 348.108 132.831 348.108 DL 132.754 -348.113 132.831 348.108 DL 132.651 348.13 132.754 348.113 DL 132.55 -348.16 132.651 348.13 DL 132.454 348.201 132.55 348.16 DL 132.364 -348.254 132.454 348.201 DL 132.28 348.318 132.364 348.254 DL 132.205 -348.391 132.28 348.318 DL 132.14 348.473 132.205 348.391 DL 132.085 -348.563 132.14 348.473 DL 132.042 348.658 132.085 348.563 DL 132.011 -348.758 132.042 348.658 DL 131.992 348.861 132.011 348.758 DL 131.986 -348.964 131.992 348.861 DL 131.993 349.068 131.986 348.964 DL 132.013 -349.171 131.993 349.068 DL 132.045 349.27 132.013 349.171 DL 132.089 -349.364 132.045 349.27 DL 132.145 349.452 132.089 349.364 DL 132.211 -349.533 132.145 349.452 DL 132.286 349.604 132.211 349.533 DL 132.37 -349.666 132.286 349.604 DL 132.461 349.717 132.37 349.666 DL 132.557 -349.756 132.461 349.717 DL 132.658 349.783 132.557 349.756 DL 132.761 -349.798 132.658 349.783 DL 132.865 349.799 132.761 349.798 DL 132.969 -349.788 132.865 349.799 DL 133.07 349.764 132.969 349.788 DL 133.169 -349.727 133.07 349.764 DL 133.262 349.679 133.169 349.727 DL 133.348 -349.62 133.262 349.679 DL 133.427 349.55 133.348 349.62 DL 133.496 -349.472 133.427 349.55 DL 133.556 349.385 133.496 349.472 DL 133.604 -349.292 133.556 349.385 DL 133.64 349.194 133.604 349.292 DL 133.665 -349.092 133.64 349.194 DL 133.676 348.988 133.665 349.092 DL 133.675 -348.885 133.676 348.988 DL 133.66 348.782 133.675 348.885 DL 133.633 -348.681 133.66 348.782 DL 133.594 348.584 133.633 348.681 DL 133.544 -348.493 133.594 348.584 DL 133.482 348.41 133.544 348.493 DL 133.41 -348.334 133.482 348.41 DL 133.33 348.268 133.41 348.334 DL 133.242 -348.212 133.33 348.268 DL 133.148 348.168 133.242 348.212 DL 133.049 -348.136 133.148 348.168 DL 132.946 348.116 133.049 348.136 DL 132.842 -348.109 132.946 348.116 DL 439.138 353.608 439.138 353.608 DL 439.164 -353.607 439.138 353.608 DL 439.216 353.6 439.164 353.607 DL 439.267 -353.587 439.216 353.6 DL 439.316 353.567 439.267 353.587 DL 439.362 -353.542 439.316 353.567 DL 439.405 353.511 439.362 353.542 DL 439.444 -353.475 439.405 353.511 DL 439.478 353.435 439.444 353.475 DL 439.506 -353.39 439.478 353.435 DL 439.529 353.343 439.506 353.39 DL 439.546 -353.293 439.529 353.343 DL 439.557 353.241 439.546 353.293 DL 439.561 -353.189 439.557 353.241 DL 439.559 353.138 439.561 353.189 DL 439.55 -353.086 439.559 353.138 DL 439.535 353.036 439.55 353.086 DL 439.513 -352.988 439.535 353.036 DL 439.486 352.943 439.513 352.988 DL 439.454 -352.902 439.486 352.943 DL 439.416 352.865 439.454 352.902 DL 439.375 -352.834 439.416 352.865 DL 439.329 352.807 439.375 352.834 DL 439.281 -352.787 439.329 352.807 DL 439.231 352.773 439.281 352.787 DL 439.179 -352.765 439.231 352.773 DL 439.127 352.763 439.179 352.765 DL 439.075 -352.768 439.127 352.763 DL 439.024 352.78 439.075 352.768 DL 438.974 -352.798 439.024 352.78 DL 438.927 352.821 438.974 352.798 DL 438.883 -352.851 438.927 352.821 DL 438.844 352.885 438.883 352.851 DL 438.808 -352.925 438.844 352.885 DL 438.778 352.968 438.808 352.925 DL 438.754 -353.015 438.778 352.968 DL 438.735 353.064 438.754 353.015 DL 438.723 -353.115 438.735 353.064 DL 438.717 353.167 438.723 353.115 DL 438.717 -353.219 438.717 353.167 DL 438.724 353.271 438.717 353.219 DL 438.738 -353.321 438.724 353.271 DL 438.757 353.37 438.738 353.321 DL 438.783 -353.416 438.757 353.37 DL 438.814 353.458 438.783 353.416 DL 438.85 -353.496 438.814 353.458 DL 438.89 353.529 438.85 353.496 DL 438.935 -353.557 438.89 353.529 DL 438.982 353.579 438.935 353.557 DL 439.032 -353.595 438.982 353.579 DL 439.083 353.605 439.032 353.595 DL 439.136 -353.608 439.083 353.605 DL 439.138 370.531 439.138 370.531 DL 439.164 -370.53 439.138 370.531 DL 439.216 370.523 439.164 370.53 DL 439.267 -370.51 439.216 370.523 DL 439.316 370.49 439.267 370.51 DL 439.362 -370.465 439.316 370.49 DL 439.405 370.434 439.362 370.465 DL 439.444 -370.398 439.405 370.434 DL 439.478 370.358 439.444 370.398 DL 439.506 -370.313 439.478 370.358 DL 439.529 370.266 439.506 370.313 DL 439.546 -370.216 439.529 370.266 DL 439.557 370.164 439.546 370.216 DL 439.561 -370.112 439.557 370.164 DL 439.559 370.061 439.561 370.112 DL 439.55 -370.009 439.559 370.061 DL 439.535 369.959 439.55 370.009 DL 439.513 -369.911 439.535 369.959 DL 439.486 369.866 439.513 369.911 DL 439.454 -369.825 439.486 369.866 DL 439.416 369.788 439.454 369.825 DL 439.375 -369.757 439.416 369.788 DL 439.329 369.73 439.375 369.757 DL 439.281 -369.71 439.329 369.73 DL 439.231 369.696 439.281 369.71 DL 439.179 -369.688 439.231 369.696 DL 439.127 369.686 439.179 369.688 DL 439.075 -369.691 439.127 369.686 DL 439.024 369.703 439.075 369.691 DL 438.974 -369.721 439.024 369.703 DL 438.927 369.744 438.974 369.721 DL 438.883 -369.774 438.927 369.744 DL 438.844 369.808 438.883 369.774 DL 438.808 -369.848 438.844 369.808 DL 438.778 369.891 438.808 369.848 DL 438.754 -369.938 438.778 369.891 DL 438.735 369.987 438.754 369.938 DL 438.723 -370.038 438.735 369.987 DL 438.717 370.09 438.723 370.038 DL 438.717 -370.142 438.717 370.09 DL 438.724 370.194 438.717 370.142 DL 438.738 -370.244 438.724 370.194 DL 438.757 370.293 438.738 370.244 DL 438.783 -370.339 438.757 370.293 DL 438.814 370.381 438.783 370.339 DL 438.85 -370.419 438.814 370.381 DL 438.89 370.452 438.85 370.419 DL 438.935 -370.48 438.89 370.452 DL 438.982 370.502 438.935 370.48 DL 439.032 -370.518 438.982 370.502 DL 439.083 370.528 439.032 370.518 DL 439.136 -370.531 439.083 370.528 DL .45 LW 439.138 299.031 439.138 353.185 DL -447.6 299.031 439.138 299.031 DL .75 LW 442.523 319.762 442.523 319.762 -DL 442.549 319.761 442.523 319.762 DL 442.601 319.754 442.549 319.761 DL -442.652 319.741 442.601 319.754 DL 442.701 319.721 442.652 319.741 DL -442.747 319.696 442.701 319.721 DL 442.79 319.665 442.747 319.696 DL -442.829 319.629 442.79 319.665 DL 442.863 319.589 442.829 319.629 DL -442.891 319.544 442.863 319.589 DL 442.914 319.497 442.891 319.544 DL -442.931 319.447 442.914 319.497 DL 442.942 319.395 442.931 319.447 DL -442.946 319.343 442.942 319.395 DL 442.944 319.292 442.946 319.343 DL -442.935 319.24 442.944 319.292 DL 442.92 319.19 442.935 319.24 DL -442.898 319.142 442.92 319.19 DL 442.871 319.097 442.898 319.142 DL -442.839 319.056 442.871 319.097 DL 442.801 319.019 442.839 319.056 DL -442.76 318.988 442.801 319.019 DL 442.714 318.961 442.76 318.988 DL -442.666 318.941 442.714 318.961 DL 442.616 318.927 442.666 318.941 DL -442.564 318.919 442.616 318.927 DL 442.512 318.917 442.564 318.919 DL -442.46 318.922 442.512 318.917 DL 442.409 318.934 442.46 318.922 DL -442.359 318.952 442.409 318.934 DL 442.312 318.975 442.359 318.952 DL -442.268 319.005 442.312 318.975 DL 442.229 319.039 442.268 319.005 DL -442.193 319.079 442.229 319.039 DL 442.163 319.122 442.193 319.079 DL -442.139 319.169 442.163 319.122 DL 442.12 319.218 442.139 319.169 DL -442.108 319.269 442.12 319.218 DL 442.102 319.321 442.108 319.269 DL -442.102 319.373 442.102 319.321 DL 442.109 319.425 442.102 319.373 DL -442.123 319.475 442.109 319.425 DL 442.142 319.524 442.123 319.475 DL -442.168 319.57 442.142 319.524 DL 442.199 319.612 442.168 319.57 DL -442.235 319.65 442.199 319.612 DL 442.275 319.683 442.235 319.65 DL -442.32 319.711 442.275 319.683 DL 442.367 319.733 442.32 319.711 DL -442.417 319.749 442.367 319.733 DL 442.468 319.759 442.417 319.749 DL -442.521 319.762 442.468 319.759 DL 435.754 292.685 435.754 292.685 DL -435.78 292.684 435.754 292.685 DL 435.832 292.677 435.78 292.684 DL -435.883 292.664 435.832 292.677 DL 435.932 292.644 435.883 292.664 DL -435.978 292.619 435.932 292.644 DL 436.021 292.588 435.978 292.619 DL -436.06 292.552 436.021 292.588 DL 436.094 292.512 436.06 292.552 DL -436.122 292.467 436.094 292.512 DL 436.145 292.42 436.122 292.467 DL -436.162 292.37 436.145 292.42 DL 436.173 292.318 436.162 292.37 DL -436.177 292.266 436.173 292.318 DL 436.175 292.215 436.177 292.266 DL -436.166 292.163 436.175 292.215 DL 436.151 292.113 436.166 292.163 DL -436.129 292.065 436.151 292.113 DL 436.102 292.02 436.129 292.065 DL -436.07 291.979 436.102 292.02 DL 436.032 291.942 436.07 291.979 DL -435.991 291.911 436.032 291.942 DL 435.945 291.884 435.991 291.911 DL -435.897 291.864 435.945 291.884 DL 435.847 291.85 435.897 291.864 DL -435.795 291.842 435.847 291.85 DL 435.743 291.84 435.795 291.842 DL -435.691 291.845 435.743 291.84 DL 435.64 291.857 435.691 291.845 DL -435.59 291.875 435.64 291.857 DL 435.543 291.898 435.59 291.875 DL -435.499 291.928 435.543 291.898 DL 435.46 291.962 435.499 291.928 DL -435.424 292.002 435.46 291.962 DL 435.394 292.045 435.424 292.002 DL -435.37 292.092 435.394 292.045 DL 435.351 292.141 435.37 292.092 DL -435.339 292.192 435.351 292.141 DL 435.333 292.244 435.339 292.192 DL -435.333 292.296 435.333 292.244 DL 435.34 292.348 435.333 292.296 DL -435.354 292.398 435.34 292.348 DL 435.373 292.447 435.354 292.398 DL -435.399 292.493 435.373 292.447 DL 435.43 292.535 435.399 292.493 DL -435.466 292.573 435.43 292.535 DL 435.506 292.606 435.466 292.573 DL -435.551 292.634 435.506 292.606 DL 435.598 292.656 435.551 292.634 DL -435.648 292.672 435.598 292.656 DL 435.699 292.682 435.648 292.672 DL -435.752 292.685 435.699 292.682 DL 435.754 268.993 435.754 268.993 DL -435.78 268.992 435.754 268.993 DL 435.832 268.985 435.78 268.992 DL -435.883 268.972 435.832 268.985 DL 435.932 268.952 435.883 268.972 DL -435.978 268.927 435.932 268.952 DL 436.021 268.896 435.978 268.927 DL -436.06 268.86 436.021 268.896 DL 436.094 268.82 436.06 268.86 DL 436.122 -268.775 436.094 268.82 DL 436.145 268.728 436.122 268.775 DL 436.162 -268.678 436.145 268.728 DL 436.173 268.626 436.162 268.678 DL 436.177 -268.574 436.173 268.626 DL 436.175 268.523 436.177 268.574 DL 436.166 -268.471 436.175 268.523 DL 436.151 268.421 436.166 268.471 DL 436.129 -268.373 436.151 268.421 DL 436.102 268.328 436.129 268.373 DL 436.07 -268.287 436.102 268.328 DL 436.032 268.25 436.07 268.287 DL 435.991 -268.219 436.032 268.25 DL 435.945 268.192 435.991 268.219 DL 435.897 -268.172 435.945 268.192 DL 435.847 268.158 435.897 268.172 DL 435.795 -268.15 435.847 268.158 DL 435.743 268.148 435.795 268.15 DL 435.691 -268.153 435.743 268.148 DL 435.64 268.165 435.691 268.153 DL 435.59 -268.183 435.64 268.165 DL 435.543 268.206 435.59 268.183 DL 435.499 -268.236 435.543 268.206 DL 435.46 268.27 435.499 268.236 DL 435.424 -268.31 435.46 268.27 DL 435.394 268.353 435.424 268.31 DL 435.37 268.4 -435.394 268.353 DL 435.351 268.449 435.37 268.4 DL 435.339 268.5 435.351 -268.449 DL 435.333 268.552 435.339 268.5 DL 435.333 268.604 435.333 -268.552 DL 435.34 268.656 435.333 268.604 DL 435.354 268.706 435.34 -268.656 DL 435.373 268.755 435.354 268.706 DL 435.399 268.801 435.373 -268.755 DL 435.43 268.843 435.399 268.801 DL 435.466 268.881 435.43 -268.843 DL 435.506 268.914 435.466 268.881 DL 435.551 268.942 435.506 -268.914 DL 435.598 268.964 435.551 268.942 DL 435.648 268.98 435.598 -268.964 DL 435.699 268.99 435.648 268.98 DL 435.752 268.993 435.699 -268.99 DL 442.523 284.223 442.523 284.223 DL 442.549 284.222 442.523 -284.223 DL 442.601 284.215 442.549 284.222 DL 442.652 284.202 442.601 -284.215 DL 442.701 284.182 442.652 284.202 DL 442.747 284.157 442.701 -284.182 DL 442.79 284.126 442.747 284.157 DL 442.829 284.09 442.79 -284.126 DL 442.863 284.05 442.829 284.09 DL 442.891 284.005 442.863 -284.05 DL 442.914 283.958 442.891 284.005 DL 442.931 283.908 442.914 -283.958 DL 442.942 283.856 442.931 283.908 DL 442.946 283.804 442.942 -283.856 DL 442.944 283.753 442.946 283.804 DL 442.935 283.701 442.944 -283.753 DL 442.92 283.651 442.935 283.701 DL 442.898 283.603 442.92 -283.651 DL 442.871 283.558 442.898 283.603 DL 442.839 283.517 442.871 -283.558 DL 442.801 283.48 442.839 283.517 DL 442.76 283.449 442.801 -283.48 DL 442.714 283.422 442.76 283.449 DL 442.666 283.402 442.714 -283.422 DL 442.616 283.388 442.666 283.402 DL 442.564 283.38 442.616 -283.388 DL 442.512 283.378 442.564 283.38 DL 442.46 283.383 442.512 -283.378 DL 442.409 283.395 442.46 283.383 DL 442.359 283.413 442.409 -283.395 DL 442.312 283.436 442.359 283.413 DL 442.268 283.466 442.312 -283.436 DL 442.229 283.5 442.268 283.466 DL 442.193 283.54 442.229 283.5 -DL 442.163 283.583 442.193 283.54 DL 442.139 283.63 442.163 283.583 DL -442.12 283.679 442.139 283.63 DL 442.108 283.73 442.12 283.679 DL -442.102 283.782 442.108 283.73 DL 442.102 283.834 442.102 283.782 DL -442.109 283.886 442.102 283.834 DL 442.123 283.936 442.109 283.886 DL -442.142 283.985 442.123 283.936 DL 442.168 284.031 442.142 283.985 DL -442.199 284.073 442.168 284.031 DL 442.235 284.111 442.199 284.073 DL -442.275 284.144 442.235 284.111 DL 442.32 284.172 442.275 284.144 DL -442.367 284.194 442.32 284.172 DL 442.417 284.21 442.367 284.194 DL -442.468 284.22 442.417 284.21 DL 442.521 284.223 442.468 284.22 DL F4 -(ABC)492.408 296.512 Q 486.523 293.954 486.523 290.57 DL 488.215 293.954 -486.523 293.954 DL 489.908 292.262 488.215 293.954 DL 488.215 290.57 -489.908 292.262 DL 486.523 290.57 488.215 290.57 DL .45 LW 486.523 -292.262 479.754 292.262 DL 466.215 349.8 459.446 349.8 DL .75 LW 466.215 -351.493 466.215 348.108 DL 467.908 351.493 466.215 351.493 DL 469.6 -349.8 467.908 351.493 DL 467.908 348.108 469.6 349.8 DL 466.215 348.108 -467.908 348.108 DL(ABN)472.1 354.05 Q .45 LW 466.215 322.723 459.446 -322.723 DL .75 LW 466.215 324.416 466.215 321.031 DL 467.908 324.416 -466.215 324.416 DL 469.6 322.723 467.908 324.416 DL 467.908 321.031 -469.6 322.723 DL 466.215 321.031 467.908 321.031 DL(ABP)472.1 326.973 Q -.45 LW 439.138 353.185 439.138 370.108 DL 445.908 353.185 439.138 -353.185 DL 445.908 319.339 442.523 319.339 DL 442.523 346.416 442.523 -283.8 DL 445.908 346.416 442.523 346.416 DL .75 LW 422.215 285.493 -422.215 282.108 DL 423.908 285.493 422.215 285.493 DL 425.6 283.8 -423.908 285.493 DL 423.908 282.108 425.6 283.8 DL 422.215 282.108 -423.908 282.108 DL(ITS)408.947 288.05 Q .45 LW 459.446 288.877 466.215 -288.877 DL 459.446 283.8 459.446 288.877 DL 425.6 283.8 459.446 283.8 DL -466.215 295.646 459.446 295.646 DL 435.754 376.877 428.985 376.877 DL -435.754 326.108 435.754 376.877 DL 445.908 326.108 435.754 326.108 DL -435.754 322.723 435.754 292.262 DL 445.908 322.723 435.754 322.723 DL -435.754 292.262 435.754 268.57 DL 447.6 292.262 435.754 292.262 DL .75 -LW 466.215 285.493 472.985 285.493 DL 466.215 299.031 466.215 285.493 DL -472.985 299.031 466.215 299.031 DL 472.985 299.031 472.985 299.031 DL -473.275 299.023 472.985 299.031 DL 474.044 298.94 473.275 299.023 DL -474.799 298.77 474.044 298.94 DL 475.531 298.516 474.799 298.77 DL -476.23 298.18 475.531 298.516 DL 476.886 297.766 476.23 298.18 DL -477.491 297.281 476.886 297.766 DL 478.038 296.731 477.491 297.281 DL -478.518 296.122 478.038 296.731 DL 478.927 295.463 478.518 296.122 DL -479.258 294.762 478.927 295.463 DL 479.507 294.028 479.258 294.762 DL -479.671 293.272 479.507 294.028 DL 479.748 292.502 479.671 293.272 DL -479.737 291.73 479.748 292.502 DL 479.637 290.964 479.737 291.73 DL -479.451 290.215 479.637 290.964 DL 479.181 289.493 479.451 290.215 DL -478.83 288.807 479.181 289.493 DL 478.402 288.166 478.83 288.807 DL -477.904 287.578 478.402 288.166 DL 477.342 287.052 477.904 287.578 DL -476.723 286.593 477.342 287.052 DL 476.055 286.208 476.723 286.593 DL -475.348 285.903 476.055 286.208 DL 474.609 285.68 475.348 285.903 DL -473.849 285.543 474.609 285.68 DL 473.078 285.494 473.849 285.543 DL -452.677 329.493 452.677 329.493 DL 452.967 329.485 452.677 329.493 DL -453.736 329.402 452.967 329.485 DL 454.492 329.232 453.736 329.402 DL -455.223 328.978 454.492 329.232 DL 455.922 328.641 455.223 328.978 DL -456.578 328.228 455.922 328.641 DL 457.184 327.743 456.578 328.228 DL -457.73 327.192 457.184 327.743 DL 458.211 326.583 457.73 327.192 DL -458.62 325.924 458.211 326.583 DL 458.951 325.223 458.62 325.924 DL -459.2 324.489 458.951 325.223 DL 459.364 323.733 459.2 324.489 DL -459.441 322.963 459.364 323.733 DL 459.43 322.191 459.441 322.963 DL -459.331 321.425 459.43 322.191 DL 459.144 320.676 459.331 321.425 DL -458.874 319.954 459.144 320.676 DL 458.523 319.267 458.874 319.954 DL -458.095 318.626 458.523 319.267 DL 457.597 318.039 458.095 318.626 DL -457.035 317.512 457.597 318.039 DL 456.416 317.053 457.035 317.512 DL -455.748 316.669 456.416 317.053 DL 455.04 316.363 455.748 316.669 DL -454.301 316.14 455.04 316.363 DL 453.542 316.003 454.301 316.14 DL -452.77 315.954 453.542 316.003 DL 445.908 315.954 452.677 315.954 DL -445.908 329.493 445.908 315.954 DL 452.677 329.493 445.908 329.493 DL -452.677 356.57 452.677 356.57 DL 452.967 356.562 452.677 356.57 DL -453.736 356.479 452.967 356.562 DL 454.492 356.309 453.736 356.479 DL -455.223 356.055 454.492 356.309 DL 455.922 355.718 455.223 356.055 DL -456.578 355.305 455.922 355.718 DL 457.184 354.82 456.578 355.305 DL -457.73 354.269 457.184 354.82 DL 458.211 353.66 457.73 354.269 DL 458.62 -353.001 458.211 353.66 DL 458.951 352.3 458.62 353.001 DL 459.2 351.566 -458.951 352.3 DL 459.364 350.81 459.2 351.566 DL 459.441 350.04 459.364 -350.81 DL 459.43 349.268 459.441 350.04 DL 459.331 348.502 459.43 -349.268 DL 459.144 347.753 459.331 348.502 DL 458.874 347.031 459.144 -347.753 DL 458.523 346.344 458.874 347.031 DL 458.095 345.703 458.523 -346.344 DL 457.597 345.116 458.095 345.703 DL 457.035 344.589 457.597 -345.116 DL 456.416 344.13 457.035 344.589 DL 455.748 343.746 456.416 -344.13 DL 455.04 343.44 455.748 343.746 DL 454.301 343.217 455.04 343.44 -DL 453.542 343.08 454.301 343.217 DL 452.77 343.031 453.542 343.08 DL -445.908 343.031 452.677 343.031 DL 445.908 356.57 445.908 343.031 DL -452.677 356.57 445.908 356.57 DL F7(+)258.746 330.358 Q(-)258.746 -323.589 Q 290.215 321.031 290.215 317.646 DL 288.523 321.031 290.215 -321.031 DL 286.831 319.339 288.523 321.031 DL 288.523 317.646 286.831 -319.339 DL 290.215 317.646 288.523 317.646 DL F4(V)288.315 315.954 Q F5 -(INC).669 1.6 M .45 LW 286.831 319.339 264.831 319.339 DL 286.831 -329.493 281.754 329.493 DL 283.446 332.877 286.831 329.493 DL 280.061 -329.493 283.446 332.877 DL 281.754 329.493 280.061 329.493 DL 283.446 -326.108 264.831 326.108 DL 283.446 329.493 283.446 326.108 DL .75 LW -264.831 331.185 264.831 314.262 DL 247.908 322.723 264.831 331.185 DL -264.831 314.262 247.908 322.723 DL F4(DP)335.238 293.954 Q F6(1).344 1.6 -M F4(DP)335.238 359.993 Q F6(1).344 1.6 M 219.138 324.416 219.138 -321.031 DL 217.446 324.416 219.138 324.416 DL 215.754 322.723 217.446 -324.416 DL 217.446 321.031 215.754 322.723 DL 219.138 321.031 217.446 -321.031 DL F4(GND)220.815 326.973 Q 205.6 323.146 205.6 323.146 DL -205.626 323.145 205.6 323.146 DL 205.678 323.138 205.626 323.145 DL -205.729 323.125 205.678 323.138 DL 205.778 323.105 205.729 323.125 DL -205.824 323.08 205.778 323.105 DL 205.867 323.049 205.824 323.08 DL -205.906 323.013 205.867 323.049 DL 205.94 322.973 205.906 323.013 DL -205.968 322.928 205.94 322.973 DL 205.991 322.881 205.968 322.928 DL -206.008 322.831 205.991 322.881 DL 206.019 322.779 206.008 322.831 DL -206.023 322.727 206.019 322.779 DL 206.021 322.676 206.023 322.727 DL -206.012 322.624 206.021 322.676 DL 205.997 322.574 206.012 322.624 DL -205.975 322.526 205.997 322.574 DL 205.948 322.481 205.975 322.526 DL -205.916 322.44 205.948 322.481 DL 205.878 322.403 205.916 322.44 DL -205.837 322.372 205.878 322.403 DL 205.791 322.345 205.837 322.372 DL -205.743 322.325 205.791 322.345 DL 205.693 322.311 205.743 322.325 DL -205.641 322.303 205.693 322.311 DL 205.589 322.301 205.641 322.303 DL -205.537 322.306 205.589 322.301 DL 205.486 322.318 205.537 322.306 DL -205.436 322.336 205.486 322.318 DL 205.389 322.359 205.436 322.336 DL -205.345 322.389 205.389 322.359 DL 205.306 322.423 205.345 322.389 DL -205.27 322.463 205.306 322.423 DL 205.24 322.506 205.27 322.463 DL -205.216 322.553 205.24 322.506 DL 205.197 322.602 205.216 322.553 DL -205.185 322.653 205.197 322.602 DL 205.179 322.705 205.185 322.653 DL -205.179 322.757 205.179 322.705 DL 205.186 322.809 205.179 322.757 DL -205.2 322.859 205.186 322.809 DL 205.219 322.908 205.2 322.859 DL -205.245 322.954 205.219 322.908 DL 205.276 322.996 205.245 322.954 DL -205.312 323.034 205.276 322.996 DL 205.352 323.067 205.312 323.034 DL -205.397 323.095 205.352 323.067 DL 205.444 323.117 205.397 323.095 DL -205.494 323.133 205.444 323.117 DL 205.545 323.143 205.494 323.133 DL -205.598 323.146 205.545 323.143 DL 188.677 323.146 188.677 323.146 DL -188.703 323.145 188.677 323.146 DL 188.755 323.138 188.703 323.145 DL -188.806 323.125 188.755 323.138 DL 188.855 323.105 188.806 323.125 DL -188.901 323.08 188.855 323.105 DL 188.944 323.049 188.901 323.08 DL -188.983 323.013 188.944 323.049 DL 189.017 322.973 188.983 323.013 DL -189.045 322.928 189.017 322.973 DL 189.068 322.881 189.045 322.928 DL -189.085 322.831 189.068 322.881 DL 189.096 322.779 189.085 322.831 DL -189.1 322.727 189.096 322.779 DL 189.098 322.676 189.1 322.727 DL -189.089 322.624 189.098 322.676 DL 189.074 322.574 189.089 322.624 DL -189.052 322.526 189.074 322.574 DL 189.025 322.481 189.052 322.526 DL -188.993 322.44 189.025 322.481 DL 188.955 322.403 188.993 322.44 DL -188.914 322.372 188.955 322.403 DL 188.868 322.345 188.914 322.372 DL -188.82 322.325 188.868 322.345 DL 188.77 322.311 188.82 322.325 DL -188.718 322.303 188.77 322.311 DL 188.666 322.301 188.718 322.303 DL -188.614 322.306 188.666 322.301 DL 188.563 322.318 188.614 322.306 DL -188.513 322.336 188.563 322.318 DL 188.466 322.359 188.513 322.336 DL -188.422 322.389 188.466 322.359 DL 188.383 322.423 188.422 322.389 DL -188.347 322.463 188.383 322.423 DL 188.317 322.506 188.347 322.463 DL -188.293 322.553 188.317 322.506 DL 188.274 322.602 188.293 322.553 DL -188.262 322.653 188.274 322.602 DL 188.256 322.705 188.262 322.653 DL -188.256 322.757 188.256 322.705 DL 188.263 322.809 188.256 322.757 DL -188.277 322.859 188.263 322.809 DL 188.296 322.908 188.277 322.859 DL -188.322 322.954 188.296 322.908 DL 188.353 322.996 188.322 322.954 DL -188.389 323.034 188.353 322.996 DL 188.429 323.067 188.389 323.034 DL -188.474 323.095 188.429 323.067 DL 188.521 323.117 188.474 323.095 DL -188.571 323.133 188.521 323.117 DL 188.622 323.143 188.571 323.133 DL -188.675 323.146 188.622 323.143 DL .45 LW 215.754 322.723 188.677 -322.723 DL 188.677 327.8 188.677 317.646 DL .75 LW 324.061 322.3 324.061 -322.3 DL 324.036 322.302 324.061 322.3 DL 323.984 322.309 324.036 -322.302 DL 323.933 322.322 323.984 322.309 DL 323.884 322.342 323.933 -322.322 DL 323.838 322.367 323.884 322.342 DL 323.795 322.398 323.838 -322.367 DL 323.756 322.434 323.795 322.398 DL 323.722 322.474 323.756 -322.434 DL 323.694 322.519 323.722 322.474 DL 323.671 322.566 323.694 -322.519 DL 323.654 322.616 323.671 322.566 DL 323.643 322.668 323.654 -322.616 DL 323.639 322.72 323.643 322.668 DL 323.641 322.771 323.639 -322.72 DL 323.65 322.823 323.641 322.771 DL 323.665 322.873 323.65 -322.823 DL 323.687 322.921 323.665 322.873 DL 323.714 322.966 323.687 -322.921 DL 323.746 323.007 323.714 322.966 DL 323.784 323.044 323.746 -323.007 DL 323.825 323.075 323.784 323.044 DL 323.871 323.102 323.825 -323.075 DL 323.919 323.122 323.871 323.102 DL 323.969 323.136 323.919 -323.122 DL 324.021 323.144 323.969 323.136 DL 324.073 323.146 324.021 -323.144 DL 324.125 323.141 324.073 323.146 DL 324.176 323.129 324.125 -323.141 DL 324.226 323.111 324.176 323.129 DL 324.273 323.088 324.226 -323.111 DL 324.317 323.058 324.273 323.088 DL 324.356 323.024 324.317 -323.058 DL 324.392 322.984 324.356 323.024 DL 324.422 322.941 324.392 -322.984 DL 324.446 322.894 324.422 322.941 DL 324.465 322.845 324.446 -322.894 DL 324.477 322.794 324.465 322.845 DL 324.483 322.742 324.477 -322.794 DL 324.483 322.69 324.483 322.742 DL 324.476 322.638 324.483 -322.69 DL 324.462 322.588 324.476 322.638 DL 324.443 322.539 324.462 -322.588 DL 324.417 322.493 324.443 322.539 DL 324.386 322.451 324.417 -322.493 DL 324.35 322.413 324.386 322.451 DL 324.31 322.38 324.35 -322.413 DL 324.265 322.352 324.31 322.38 DL 324.218 322.33 324.265 -322.352 DL 324.168 322.314 324.218 322.33 DL 324.117 322.304 324.168 -322.314 DL 324.064 322.301 324.117 322.304 DL .45 LW 324.061 322.723 -315.6 322.723 DL .75 LW 312.215 324.416 312.215 321.031 DL 313.908 -324.416 312.215 324.416 DL 315.6 322.723 313.908 324.416 DL 313.908 -321.031 315.6 322.723 DL 312.215 321.031 313.908 321.031 DL F7(+)289.95 -326.973 Q F4(V)1.152 E F5(REF).697 1.6 M .45 LW 324.061 326.108 324.061 -319.339 DL .75 LW 310.523 397.608 310.523 397.608 DL 310.549 397.607 -310.523 397.608 DL 310.601 397.6 310.549 397.607 DL 310.652 397.587 -310.601 397.6 DL 310.701 397.567 310.652 397.587 DL 310.747 397.542 -310.701 397.567 DL 310.79 397.511 310.747 397.542 DL 310.829 397.475 -310.79 397.511 DL 310.863 397.435 310.829 397.475 DL 310.891 397.39 -310.863 397.435 DL 310.914 397.343 310.891 397.39 DL 310.931 397.293 -310.914 397.343 DL 310.942 397.241 310.931 397.293 DL 310.946 397.189 -310.942 397.241 DL 310.944 397.138 310.946 397.189 DL 310.935 397.086 -310.944 397.138 DL 310.92 397.036 310.935 397.086 DL 310.898 396.988 -310.92 397.036 DL 310.871 396.943 310.898 396.988 DL 310.839 396.902 -310.871 396.943 DL 310.801 396.865 310.839 396.902 DL 310.76 396.834 -310.801 396.865 DL 310.714 396.807 310.76 396.834 DL 310.666 396.787 -310.714 396.807 DL 310.616 396.773 310.666 396.787 DL 310.564 396.765 -310.616 396.773 DL 310.512 396.763 310.564 396.765 DL 310.46 396.768 -310.512 396.763 DL 310.409 396.78 310.46 396.768 DL 310.359 396.798 -310.409 396.78 DL 310.312 396.821 310.359 396.798 DL 310.268 396.851 -310.312 396.821 DL 310.229 396.885 310.268 396.851 DL 310.193 396.925 -310.229 396.885 DL 310.163 396.968 310.193 396.925 DL 310.139 397.015 -310.163 396.968 DL 310.12 397.064 310.139 397.015 DL 310.108 397.115 -310.12 397.064 DL 310.102 397.167 310.108 397.115 DL 310.102 397.219 -310.102 397.167 DL 310.109 397.271 310.102 397.219 DL 310.123 397.321 -310.109 397.271 DL 310.142 397.37 310.123 397.321 DL 310.168 397.416 -310.142 397.37 DL 310.199 397.458 310.168 397.416 DL 310.235 397.496 -310.199 397.458 DL 310.275 397.529 310.235 397.496 DL 310.32 397.557 -310.275 397.529 DL 310.367 397.579 310.32 397.557 DL 310.417 397.595 -310.367 397.579 DL 310.468 397.605 310.417 397.595 DL 310.521 397.608 -310.468 397.605 DL 303.754 248.685 303.754 248.685 DL 303.78 248.684 -303.754 248.685 DL 303.832 248.677 303.78 248.684 DL 303.883 248.664 -303.832 248.677 DL 303.932 248.644 303.883 248.664 DL 303.978 248.619 -303.932 248.644 DL 304.021 248.588 303.978 248.619 DL 304.06 248.552 -304.021 248.588 DL 304.094 248.512 304.06 248.552 DL 304.122 248.467 -304.094 248.512 DL 304.145 248.42 304.122 248.467 DL 304.162 248.37 -304.145 248.42 DL 304.173 248.318 304.162 248.37 DL 304.177 248.266 -304.173 248.318 DL 304.175 248.215 304.177 248.266 DL 304.166 248.163 -304.175 248.215 DL 304.151 248.113 304.166 248.163 DL 304.129 248.065 -304.151 248.113 DL 304.102 248.02 304.129 248.065 DL 304.07 247.979 -304.102 248.02 DL 304.032 247.942 304.07 247.979 DL 303.991 247.911 -304.032 247.942 DL 303.945 247.884 303.991 247.911 DL 303.897 247.864 -303.945 247.884 DL 303.847 247.85 303.897 247.864 DL 303.795 247.842 -303.847 247.85 DL 303.743 247.84 303.795 247.842 DL 303.691 247.845 -303.743 247.84 DL 303.64 247.857 303.691 247.845 DL 303.59 247.875 -303.64 247.857 DL 303.543 247.898 303.59 247.875 DL 303.499 247.928 -303.543 247.898 DL 303.46 247.962 303.499 247.928 DL 303.424 248.002 -303.46 247.962 DL 303.394 248.045 303.424 248.002 DL 303.37 248.092 -303.394 248.045 DL 303.351 248.141 303.37 248.092 DL 303.339 248.192 -303.351 248.141 DL 303.333 248.244 303.339 248.192 DL 303.333 248.296 -303.333 248.244 DL 303.34 248.348 303.333 248.296 DL 303.354 248.398 -303.34 248.348 DL 303.373 248.447 303.354 248.398 DL 303.399 248.493 -303.373 248.447 DL 303.43 248.535 303.399 248.493 DL 303.466 248.573 -303.43 248.535 DL 303.506 248.606 303.466 248.573 DL 303.551 248.634 -303.506 248.606 DL 303.598 248.656 303.551 248.634 DL 303.648 248.672 -303.598 248.656 DL 303.699 248.682 303.648 248.672 DL 303.752 248.685 -303.699 248.682 DL F4(PN)144.402 341.377 Q(SP)156.266 326.973 Q(ITS) -174.562 326.973 Q(DP)207.756 333.743 Q F6(2).344 1.6 M F4(C)170.379 -344.762 Q F5(S).529 1.6 M F4(C)212.318 348.146 Q F5(C).254 1.6 M 149.754 -326.108 149.754 326.108 DL 149.832 326.104 149.754 326.108 DL 149.935 -326.087 149.832 326.104 DL 150.036 326.057 149.935 326.087 DL 150.132 -326.016 150.036 326.057 DL 150.222 325.963 150.132 326.016 DL 150.306 -325.899 150.222 325.963 DL 150.381 325.826 150.306 325.899 DL 150.446 -325.744 150.381 325.826 DL 150.501 325.654 150.446 325.744 DL 150.544 -325.559 150.501 325.654 DL 150.575 325.459 150.544 325.559 DL 150.594 -325.356 150.575 325.459 DL 150.6 325.253 150.594 325.356 DL 150.593 -325.149 150.6 325.253 DL 150.573 325.046 150.593 325.149 DL 150.541 -324.947 150.573 325.046 DL 150.497 324.853 150.541 324.947 DL 150.441 -324.765 150.497 324.853 DL 150.375 324.684 150.441 324.765 DL 150.3 -324.613 150.375 324.684 DL 150.216 324.551 150.3 324.613 DL 150.125 -324.5 150.216 324.551 DL 150.029 324.461 150.125 324.5 DL 149.928 -324.434 150.029 324.461 DL 149.825 324.419 149.928 324.434 DL 149.721 -324.418 149.825 324.419 DL 149.617 324.429 149.721 324.418 DL 149.516 -324.453 149.617 324.429 DL 149.417 324.49 149.516 324.453 DL 149.324 -324.538 149.417 324.49 DL 149.238 324.597 149.324 324.538 DL 149.159 -324.667 149.238 324.597 DL 149.09 324.745 149.159 324.667 DL 149.03 -324.832 149.09 324.745 DL 148.982 324.925 149.03 324.832 DL 148.946 -325.023 148.982 324.925 DL 148.921 325.125 148.946 325.023 DL 148.91 -325.229 148.921 325.125 DL 148.911 325.332 148.91 325.229 DL 148.926 -325.435 148.911 325.332 DL 148.953 325.536 148.926 325.435 DL 148.992 -325.633 148.953 325.536 DL 149.042 325.724 148.992 325.633 DL 149.104 -325.807 149.042 325.724 DL 149.176 325.883 149.104 325.807 DL 149.256 -325.949 149.176 325.883 DL 149.344 326.005 149.256 325.949 DL 149.438 -326.049 149.344 326.005 DL 149.537 326.081 149.438 326.049 DL 149.64 -326.101 149.537 326.081 DL 149.744 326.108 149.64 326.101 DL 153.138 -327.8 148.061 326.108 DL 149.754 331.185 149.754 331.185 DL 149.832 -331.181 149.754 331.185 DL 149.935 331.164 149.832 331.181 DL 150.036 -331.134 149.935 331.164 DL 150.132 331.093 150.036 331.134 DL 150.222 -331.04 150.132 331.093 DL 150.306 330.976 150.222 331.04 DL 150.381 -330.903 150.306 330.976 DL 150.446 330.821 150.381 330.903 DL 150.501 -330.731 150.446 330.821 DL 150.544 330.636 150.501 330.731 DL 150.575 -330.536 150.544 330.636 DL 150.594 330.433 150.575 330.536 DL 150.6 -330.33 150.594 330.433 DL 150.593 330.226 150.6 330.33 DL 150.573 -330.123 150.593 330.226 DL 150.541 330.024 150.573 330.123 DL 150.497 -329.93 150.541 330.024 DL 150.441 329.842 150.497 329.93 DL 150.375 -329.761 150.441 329.842 DL 150.3 329.69 150.375 329.761 DL 150.216 -329.628 150.3 329.69 DL 150.125 329.577 150.216 329.628 DL 150.029 -329.538 150.125 329.577 DL 149.928 329.511 150.029 329.538 DL 149.825 -329.496 149.928 329.511 DL 149.721 329.495 149.825 329.496 DL 149.617 -329.506 149.721 329.495 DL 149.516 329.53 149.617 329.506 DL 149.417 -329.567 149.516 329.53 DL 149.324 329.615 149.417 329.567 DL 149.238 -329.674 149.324 329.615 DL 149.159 329.744 149.238 329.674 DL 149.09 -329.822 149.159 329.744 DL 149.03 329.909 149.09 329.822 DL 148.982 -330.002 149.03 329.909 DL 148.946 330.1 148.982 330.002 DL 148.921 -330.202 148.946 330.1 DL 148.91 330.306 148.921 330.202 DL 148.911 -330.409 148.91 330.306 DL 148.926 330.512 148.911 330.409 DL 148.953 -330.613 148.926 330.512 DL 148.992 330.71 148.953 330.613 DL 149.042 -330.801 148.992 330.71 DL 149.104 330.884 149.042 330.801 DL 149.176 -330.96 149.104 330.884 DL 149.256 331.026 149.176 330.96 DL 149.344 -331.082 149.256 331.026 DL 149.438 331.126 149.344 331.082 DL 149.537 -331.158 149.438 331.126 DL 149.64 331.178 149.537 331.158 DL 149.744 -331.185 149.64 331.178 DL .45 LW 153.138 327.8 161.6 327.8 DL 161.6 -356.57 161.6 334.57 DL 137.908 356.57 161.6 356.57 DL 173.446 331.185 -164.985 331.185 DL 175.138 327.8 175.138 334.57 DL .75 LW 173.446 327.8 -173.446 334.57 DL 161.6 329.493 161.6 329.493 DL 161.678 329.489 161.6 -329.493 DL 161.782 329.472 161.678 329.489 DL 161.882 329.442 161.782 -329.472 DL 161.979 329.401 161.882 329.442 DL 162.069 329.348 161.979 -329.401 DL 162.152 329.284 162.069 329.348 DL 162.227 329.21 162.152 -329.284 DL 162.293 329.128 162.227 329.21 DL 162.347 329.039 162.293 -329.128 DL 162.391 328.943 162.347 329.039 DL 162.422 328.843 162.391 -328.943 DL 162.441 328.74 162.422 328.843 DL 162.447 328.637 162.441 -328.74 DL 162.44 328.532 162.447 328.637 DL 162.42 328.43 162.44 328.532 -DL 162.388 328.331 162.42 328.43 DL 162.344 328.236 162.388 328.331 DL -162.288 328.148 162.344 328.236 DL 162.222 328.068 162.288 328.148 DL -162.147 327.996 162.222 328.068 DL 162.063 327.934 162.147 327.996 DL -161.972 327.883 162.063 327.934 DL 161.875 327.844 161.972 327.883 DL -161.774 327.817 161.875 327.844 DL 161.671 327.802 161.774 327.817 DL -161.567 327.801 161.671 327.802 DL 161.463 327.812 161.567 327.801 DL -161.361 327.836 161.463 327.812 DL 161.263 327.873 161.361 327.836 DL -161.17 327.921 161.263 327.873 DL 161.083 327.981 161.17 327.921 DL -161.005 328.05 161.083 327.981 DL 160.935 328.129 161.005 328.05 DL -160.876 328.215 160.935 328.129 DL 160.827 328.308 160.876 328.215 DL -160.791 328.407 160.827 328.308 DL 160.766 328.508 160.791 328.407 DL -160.755 328.613 160.766 328.508 DL 160.756 328.716 160.755 328.613 DL -160.771 328.82 160.756 328.716 DL 160.798 328.92 160.771 328.82 DL -160.837 329.017 160.798 328.92 DL 160.888 329.108 160.837 329.017 DL -160.949 329.192 160.888 329.108 DL 161.021 329.268 160.949 329.192 DL -161.101 329.334 161.021 329.268 DL 161.189 329.389 161.101 329.334 DL -161.284 329.434 161.189 329.389 DL 161.383 329.466 161.284 329.434 DL -161.486 329.486 161.383 329.466 DL 161.59 329.493 161.486 329.486 DL -164.985 331.185 159.908 329.493 DL 161.6 334.57 161.6 334.57 DL 161.678 -334.566 161.6 334.57 DL 161.782 334.549 161.678 334.566 DL 161.882 -334.519 161.782 334.549 DL 161.979 334.478 161.882 334.519 DL 162.069 -334.425 161.979 334.478 DL 162.152 334.361 162.069 334.425 DL 162.227 -334.287 162.152 334.361 DL 162.293 334.205 162.227 334.287 DL 162.347 -334.116 162.293 334.205 DL 162.391 334.02 162.347 334.116 DL 162.422 -333.92 162.391 334.02 DL 162.441 333.817 162.422 333.92 DL 162.447 -333.714 162.441 333.817 DL 162.44 333.609 162.447 333.714 DL 162.42 -333.507 162.44 333.609 DL 162.388 333.408 162.42 333.507 DL 162.344 -333.313 162.388 333.408 DL 162.288 333.225 162.344 333.313 DL 162.222 -333.145 162.288 333.225 DL 162.147 333.073 162.222 333.145 DL 162.063 -333.011 162.147 333.073 DL 161.972 332.96 162.063 333.011 DL 161.875 -332.921 161.972 332.96 DL 161.774 332.894 161.875 332.921 DL 161.671 -332.879 161.774 332.894 DL 161.567 332.878 161.671 332.879 DL 161.463 -332.889 161.567 332.878 DL 161.361 332.913 161.463 332.889 DL 161.263 -332.95 161.361 332.913 DL 161.17 332.998 161.263 332.95 DL 161.083 -333.058 161.17 332.998 DL 161.005 333.127 161.083 333.058 DL 160.935 -333.206 161.005 333.127 DL 160.876 333.292 160.935 333.206 DL 160.827 -333.385 160.876 333.292 DL 160.791 333.484 160.827 333.385 DL 160.766 -333.585 160.791 333.484 DL 160.755 333.69 160.766 333.585 DL 160.756 -333.793 160.755 333.69 DL 160.771 333.897 160.756 333.793 DL 160.798 -333.997 160.771 333.897 DL 160.837 334.094 160.798 333.997 DL 160.888 -334.185 160.837 334.094 DL 160.949 334.269 160.888 334.185 DL 161.021 -334.345 160.949 334.269 DL 161.101 334.411 161.021 334.345 DL 161.189 -334.466 161.101 334.411 DL 161.284 334.511 161.189 334.466 DL 161.383 -334.543 161.284 334.511 DL 161.486 334.563 161.383 334.543 DL 161.59 -334.57 161.486 334.563 DL .45 LW 175.138 331.185 185.292 331.185 DL .75 -LW 205.6 326.108 207.292 331.185 DL 203.908 329.493 203.908 329.493 DL -203.905 329.416 203.908 329.493 DL 203.89 329.312 203.905 329.416 DL -203.862 329.212 203.89 329.312 DL 203.822 329.115 203.862 329.212 DL -203.77 329.025 203.822 329.115 DL 203.707 328.942 203.77 329.025 DL -203.635 328.867 203.707 328.942 DL 203.554 328.801 203.635 328.867 DL -203.465 328.747 203.554 328.801 DL 203.37 328.703 203.465 328.747 DL -203.271 328.672 203.37 328.703 DL 203.168 328.653 203.271 328.672 DL -203.064 328.647 203.168 328.653 DL 202.96 328.654 203.064 328.647 DL -202.858 328.674 202.96 328.654 DL 202.758 328.706 202.858 328.674 DL -202.663 328.75 202.758 328.706 DL 202.574 328.806 202.663 328.75 DL -202.492 328.872 202.574 328.806 DL 202.419 328.947 202.492 328.872 DL -202.356 329.031 202.419 328.947 DL 202.304 329.122 202.356 329.031 DL -202.263 329.219 202.304 329.122 DL 202.234 329.32 202.263 329.219 DL -202.219 329.423 202.234 329.32 DL 202.215 329.527 202.219 329.423 DL -202.225 329.631 202.215 329.527 DL 202.248 329.733 202.225 329.631 DL -202.283 329.831 202.248 329.733 DL 202.33 329.924 202.283 329.831 DL -202.388 330.011 202.33 329.924 DL 202.456 330.089 202.388 330.011 DL -202.533 330.159 202.456 330.089 DL 202.619 330.218 202.533 330.159 DL -202.711 330.267 202.619 330.218 DL 202.809 330.303 202.711 330.267 DL -202.911 330.328 202.809 330.303 DL 203.014 330.339 202.911 330.328 DL -203.118 330.338 203.014 330.339 DL 203.222 330.323 203.118 330.338 DL -203.323 330.296 203.222 330.323 DL 203.42 330.257 203.323 330.296 DL -203.512 330.206 203.42 330.257 DL 203.597 330.145 203.512 330.206 DL -203.674 330.073 203.597 330.145 DL 203.741 329.993 203.674 330.073 DL -203.798 329.905 203.741 329.993 DL 203.844 329.81 203.798 329.905 DL -203.878 329.711 203.844 329.81 DL 203.899 329.608 203.878 329.711 DL -203.908 329.504 203.899 329.608 DL 188.677 329.493 188.677 329.493 DL -188.755 329.489 188.677 329.493 DL 188.859 329.472 188.755 329.489 DL -188.959 329.442 188.859 329.472 DL 189.056 329.401 188.959 329.442 DL -189.146 329.348 189.056 329.401 DL 189.229 329.284 189.146 329.348 DL -189.304 329.21 189.229 329.284 DL 189.37 329.128 189.304 329.21 DL -189.424 329.039 189.37 329.128 DL 189.468 328.943 189.424 329.039 DL -189.499 328.843 189.468 328.943 DL 189.518 328.74 189.499 328.843 DL -189.524 328.637 189.518 328.74 DL 189.517 328.532 189.524 328.637 DL -189.497 328.43 189.517 328.532 DL 189.465 328.331 189.497 328.43 DL -189.421 328.236 189.465 328.331 DL 189.365 328.148 189.421 328.236 DL -189.299 328.068 189.365 328.148 DL 189.224 327.996 189.299 328.068 DL -189.14 327.934 189.224 327.996 DL 189.049 327.883 189.14 327.934 DL -188.952 327.844 189.049 327.883 DL 188.851 327.817 188.952 327.844 DL -188.748 327.802 188.851 327.817 DL 188.644 327.801 188.748 327.802 DL -188.54 327.812 188.644 327.801 DL 188.438 327.836 188.54 327.812 DL -188.34 327.873 188.438 327.836 DL 188.247 327.921 188.34 327.873 DL -188.16 327.981 188.247 327.921 DL 188.082 328.05 188.16 327.981 DL -188.012 328.129 188.082 328.05 DL 187.953 328.215 188.012 328.129 DL -187.904 328.308 187.953 328.215 DL 187.868 328.407 187.904 328.308 DL -187.843 328.508 187.868 328.407 DL 187.832 328.613 187.843 328.508 DL -187.833 328.716 187.832 328.613 DL 187.848 328.82 187.833 328.716 DL -187.875 328.92 187.848 328.82 DL 187.914 329.017 187.875 328.92 DL -187.965 329.108 187.914 329.017 DL 188.026 329.192 187.965 329.108 DL -188.098 329.268 188.026 329.192 DL 188.178 329.334 188.098 329.268 DL -188.266 329.389 188.178 329.334 DL 188.361 329.434 188.266 329.389 DL -188.46 329.466 188.361 329.434 DL 188.563 329.486 188.46 329.466 DL -188.667 329.493 188.563 329.486 DL 185.292 331.185 190.369 329.493 DL -188.677 334.57 188.677 334.57 DL 188.755 334.566 188.677 334.57 DL -188.859 334.549 188.755 334.566 DL 188.959 334.519 188.859 334.549 DL -189.056 334.478 188.959 334.519 DL 189.146 334.425 189.056 334.478 DL -189.229 334.361 189.146 334.425 DL 189.304 334.287 189.229 334.361 DL -189.37 334.205 189.304 334.287 DL 189.424 334.116 189.37 334.205 DL -189.468 334.02 189.424 334.116 DL 189.499 333.92 189.468 334.02 DL -189.518 333.817 189.499 333.92 DL 189.524 333.714 189.518 333.817 DL -189.517 333.609 189.524 333.714 DL 189.497 333.507 189.517 333.609 DL -189.465 333.408 189.497 333.507 DL 189.421 333.313 189.465 333.408 DL -189.365 333.225 189.421 333.313 DL 189.299 333.145 189.365 333.225 DL -189.224 333.073 189.299 333.145 DL 189.14 333.011 189.224 333.073 DL -189.049 332.96 189.14 333.011 DL 188.952 332.921 189.049 332.96 DL -188.851 332.894 188.952 332.921 DL 188.748 332.879 188.851 332.894 DL -188.644 332.878 188.748 332.879 DL 188.54 332.889 188.644 332.878 DL -188.438 332.913 188.54 332.889 DL 188.34 332.95 188.438 332.913 DL -188.247 332.998 188.34 332.95 DL 188.16 333.058 188.247 332.998 DL -188.082 333.127 188.16 333.058 DL 188.012 333.206 188.082 333.127 DL -187.953 333.292 188.012 333.206 DL 187.904 333.385 187.953 333.292 DL -187.868 333.484 187.904 333.385 DL 187.843 333.585 187.868 333.484 DL -187.832 333.69 187.843 333.585 DL 187.833 333.793 187.832 333.69 DL -187.848 333.897 187.833 333.793 DL 187.875 333.997 187.848 333.897 DL -187.914 334.094 187.875 333.997 DL 187.965 334.185 187.914 334.094 DL -188.026 334.269 187.965 334.185 DL 188.098 334.345 188.026 334.269 DL -188.178 334.411 188.098 334.345 DL 188.266 334.466 188.178 334.411 DL -188.361 334.511 188.266 334.466 DL 188.46 334.543 188.361 334.511 DL -188.563 334.563 188.46 334.543 DL 188.667 334.57 188.563 334.563 DL .45 -LW 202.215 334.57 202.215 329.493 DL 188.677 334.57 202.215 334.57 DL -229.292 334.57 217.446 334.57 DL 217.446 331.185 217.446 337.954 DL .75 -LW 215.754 331.185 215.754 337.954 DL 229.292 334.146 229.292 334.146 DL -229.267 334.148 229.292 334.146 DL 229.214 334.155 229.267 334.148 DL -229.163 334.168 229.214 334.155 DL 229.114 334.188 229.163 334.168 DL -229.068 334.213 229.114 334.188 DL 229.025 334.244 229.068 334.213 DL -228.987 334.28 229.025 334.244 DL 228.953 334.321 228.987 334.28 DL -228.924 334.365 228.953 334.321 DL 228.901 334.413 228.924 334.365 DL -228.884 334.463 228.901 334.413 DL 228.873 334.514 228.884 334.463 DL -228.869 334.567 228.873 334.514 DL 228.871 334.618 228.869 334.567 DL -228.88 334.67 228.871 334.618 DL 228.895 334.721 228.88 334.67 DL -228.917 334.769 228.895 334.721 DL 228.944 334.813 228.917 334.769 DL -228.977 334.855 228.944 334.813 DL 229.014 334.891 228.977 334.855 DL -229.056 334.923 229.014 334.891 DL 229.101 334.95 229.056 334.923 DL -229.149 334.97 229.101 334.95 DL 229.2 334.984 229.149 334.97 DL 229.252 -334.992 229.2 334.984 DL 229.304 334.994 229.252 334.992 DL 229.356 -334.989 229.304 334.994 DL 229.407 334.977 229.356 334.989 DL 229.457 -334.959 229.407 334.977 DL 229.504 334.935 229.457 334.959 DL 229.548 -334.906 229.504 334.935 DL 229.588 334.871 229.548 334.906 DL 229.623 -334.832 229.588 334.871 DL 229.654 334.789 229.623 334.832 DL 229.678 -334.742 229.654 334.789 DL 229.697 334.692 229.678 334.742 DL 229.709 -334.641 229.697 334.692 DL 229.715 334.589 229.709 334.641 DL 229.715 -334.537 229.715 334.589 DL 229.708 334.485 229.715 334.537 DL 229.694 -334.434 229.708 334.485 DL 229.675 334.386 229.694 334.434 DL 229.649 -334.34 229.675 334.386 DL 229.618 334.297 229.649 334.34 DL 229.582 -334.259 229.618 334.297 DL 229.541 334.226 229.582 334.259 DL 229.497 -334.198 229.541 334.226 DL 229.449 334.176 229.497 334.198 DL 229.399 -334.16 229.449 334.176 DL 229.348 334.15 229.399 334.16 DL 229.295 -334.147 229.348 334.15 DL 459.446 368.416 459.446 371.8 DL 461.138 -368.416 459.446 368.416 DL 462.831 370.108 461.138 368.416 DL 461.138 -371.8 462.831 370.108 DL 459.446 371.8 461.138 371.8 DL F4(UP)450.122 -377.743 Q .45 LW 459.446 370.108 425.6 370.108 DL 405.292 370.108 -398.523 370.108 DL(O)419.608 374.358 Q(D)407.449 374.358 Q 424.39 -374.679 421.91 374.679 DL(O)419.608 381.127 Q .75 LW 427.292 375.185 -427.292 375.185 DL 427.216 375.188 427.292 375.185 DL 427.01 375.212 -427.216 375.188 DL 426.809 375.26 427.01 375.212 DL 426.615 375.333 -426.809 375.26 DL 426.431 375.428 426.615 375.333 DL 426.26 375.546 -426.431 375.428 DL 426.105 375.683 426.26 375.546 DL 425.967 375.837 -426.105 375.683 DL 425.849 376.008 425.967 375.837 DL 425.752 376.191 -425.849 376.008 DL 425.678 376.384 425.752 376.191 DL 425.629 376.585 -425.678 376.384 DL 425.604 376.79 425.629 376.585 DL 425.604 376.996 -425.604 376.79 DL 425.63 377.201 425.604 376.996 DL 425.68 377.401 -425.63 377.201 DL 425.754 377.593 425.68 377.401 DL 425.852 377.774 -425.754 377.593 DL 425.97 377.942 425.852 377.774 DL 426.109 378.094 -425.97 377.942 DL 426.265 378.229 426.109 378.094 DL 426.436 378.343 -426.265 378.229 DL 426.62 378.435 426.436 378.343 DL 426.814 378.504 -426.62 378.435 DL 427.016 378.548 426.814 378.504 DL 427.221 378.568 -427.016 378.548 DL 427.427 378.563 427.221 378.568 DL 427.631 378.532 -427.427 378.563 DL 427.83 378.477 427.631 378.532 DL 428.022 378.398 -427.83 378.477 DL 428.202 378.296 428.022 378.398 DL 428.369 378.173 -428.202 378.296 DL 428.52 378.031 428.369 378.173 DL 428.653 377.872 -428.52 378.031 DL 428.765 377.698 428.653 377.872 DL 428.856 377.511 -428.765 377.698 DL 428.923 377.316 428.856 377.511 DL 428.966 377.113 -428.923 377.316 DL 428.983 376.907 428.966 377.113 DL 428.976 376.702 -428.983 376.907 DL 428.944 376.498 428.976 376.702 DL 428.887 376.3 -428.944 376.498 DL 428.806 376.111 428.887 376.3 DL 428.703 375.933 -428.806 376.111 DL 428.578 375.769 428.703 375.933 DL 428.435 375.621 -428.578 375.769 DL 428.274 375.493 428.435 375.621 DL 428.099 375.385 -428.274 375.493 DL 427.912 375.299 428.099 375.385 DL 427.715 375.237 -427.912 375.299 DL 427.513 375.199 427.715 375.237 DL 427.307 375.186 -427.513 375.199 DL(CK)406.857 381.127 Q 403.6 375.185 403.6 375.185 DL -403.524 375.188 403.6 375.185 DL 403.318 375.212 403.524 375.188 DL -403.117 375.26 403.318 375.212 DL 402.923 375.333 403.117 375.26 DL -402.739 375.428 402.923 375.333 DL 402.568 375.546 402.739 375.428 DL -402.413 375.683 402.568 375.546 DL 402.275 375.837 402.413 375.683 DL -402.157 376.008 402.275 375.837 DL 402.06 376.191 402.157 376.008 DL -401.986 376.384 402.06 376.191 DL 401.937 376.585 401.986 376.384 DL -401.912 376.79 401.937 376.585 DL 401.912 376.996 401.912 376.79 DL -401.938 377.201 401.912 376.996 DL 401.988 377.401 401.938 377.201 DL -402.062 377.593 401.988 377.401 DL 402.16 377.774 402.062 377.593 DL -402.278 377.942 402.16 377.774 DL 402.417 378.094 402.278 377.942 DL -402.573 378.229 402.417 378.094 DL 402.744 378.343 402.573 378.229 DL -402.928 378.435 402.744 378.343 DL 403.122 378.504 402.928 378.435 DL -403.324 378.548 403.122 378.504 DL 403.529 378.568 403.324 378.548 DL -403.735 378.563 403.529 378.568 DL 403.939 378.532 403.735 378.563 DL -404.138 378.477 403.939 378.532 DL 404.33 378.398 404.138 378.477 DL -404.51 378.296 404.33 378.398 DL 404.677 378.173 404.51 378.296 DL -404.828 378.031 404.677 378.173 DL 404.961 377.872 404.828 378.031 DL -405.073 377.698 404.961 377.872 DL 405.164 377.511 405.073 377.698 DL -405.231 377.316 405.164 377.511 DL 405.274 377.113 405.231 377.316 DL -405.291 376.907 405.274 377.113 DL 405.284 376.702 405.291 376.907 DL -405.252 376.498 405.284 376.702 DL 405.195 376.3 405.252 376.498 DL -405.114 376.111 405.195 376.3 DL 405.011 375.933 405.114 376.111 DL -404.886 375.769 405.011 375.933 DL 404.743 375.621 404.886 375.769 DL -404.582 375.493 404.743 375.621 DL 404.407 375.385 404.582 375.493 DL -404.22 375.299 404.407 375.385 DL 404.023 375.237 404.22 375.299 DL -403.821 375.199 404.023 375.237 DL 403.615 375.186 403.821 375.199 DL(R) -413.146 387.031 Q 415.446 387.031 415.446 387.031 DL 415.37 387.034 -415.446 387.031 DL 415.164 387.058 415.37 387.034 DL 414.963 387.106 -415.164 387.058 DL 414.769 387.179 414.963 387.106 DL 414.585 387.274 -414.769 387.179 DL 414.414 387.392 414.585 387.274 DL 414.259 387.529 -414.414 387.392 DL 414.121 387.683 414.259 387.529 DL 414.003 387.854 -414.121 387.683 DL 413.906 388.037 414.003 387.854 DL 413.832 388.23 -413.906 388.037 DL 413.783 388.431 413.832 388.23 DL 413.758 388.636 -413.783 388.431 DL 413.758 388.842 413.758 388.636 DL 413.784 389.047 -413.758 388.842 DL 413.834 389.247 413.784 389.047 DL 413.908 389.439 -413.834 389.247 DL 414.006 389.62 413.908 389.439 DL 414.124 389.788 -414.006 389.62 DL 414.263 389.94 414.124 389.788 DL 414.419 390.075 -414.263 389.94 DL 414.59 390.189 414.419 390.075 DL 414.774 390.281 -414.59 390.189 DL 414.968 390.35 414.774 390.281 DL 415.17 390.394 -414.968 390.35 DL 415.375 390.414 415.17 390.394 DL 415.581 390.409 -415.375 390.414 DL 415.785 390.378 415.581 390.409 DL 415.984 390.323 -415.785 390.378 DL 416.176 390.244 415.984 390.323 DL 416.356 390.142 -416.176 390.244 DL 416.523 390.019 416.356 390.142 DL 416.674 389.877 -416.523 390.019 DL 416.807 389.718 416.674 389.877 DL 416.919 389.544 -416.807 389.718 DL 417.01 389.357 416.919 389.544 DL 417.077 389.162 -417.01 389.357 DL 417.12 388.959 417.077 389.162 DL 417.137 388.753 -417.12 388.959 DL 417.13 388.548 417.137 388.753 DL 417.098 388.344 -417.13 388.548 DL 417.041 388.146 417.098 388.344 DL 416.96 387.957 -417.041 388.146 DL 416.857 387.779 416.96 387.957 DL 416.732 387.615 -416.857 387.779 DL 416.589 387.467 416.732 387.615 DL 416.428 387.339 -416.589 387.467 DL 416.253 387.231 416.428 387.339 DL 416.066 387.145 -416.253 387.231 DL 415.869 387.083 416.066 387.145 DL 415.667 387.045 -415.869 387.083 DL 415.461 387.032 415.667 387.045 DL 405.292 366.723 -405.292 387.031 DL 425.6 366.723 405.292 366.723 DL 425.6 387.031 425.6 -366.723 DL 405.292 387.031 425.6 387.031 DL(C)322.503 392.108 Q F5(D) -.669 1.6 M F6(2).157 E F4(C)322.503 405.646 Q F5(D).669 1.6 M F6(1).157 -E F4(DP)335.238 388.723 Q F6(1).344 1.6 M .45 LW 286.831 380.262 286.831 -373.493 DL .75 LW 285.138 370.108 288.523 370.108 DL 285.138 371.8 -285.138 370.108 DL 286.831 373.493 285.138 371.8 DL 288.523 371.8 -286.831 373.493 DL 288.523 370.108 288.523 371.8 DL F4(AGND)276.235 -368.416 Q(DP)270.93 381.954 Q F6(2).344 1.6 M F4(C)257.997 365.07 Q F5 -(O).288 1.6 M F4(C)251.202 397.223 Q F5(F).579 1.6 M 268.215 410.723 -271.6 410.723 DL 268.215 412.416 268.215 410.723 DL 269.908 414.108 -268.215 412.416 DL 271.6 412.416 269.908 414.108 DL 271.6 410.723 271.6 -412.416 DL F4(B)267.588 421.743 Q 269.908 396.762 269.908 396.762 DL -269.883 396.764 269.908 396.762 DL 269.831 396.771 269.883 396.764 DL -269.78 396.784 269.831 396.771 DL 269.731 396.804 269.78 396.784 DL -269.685 396.829 269.731 396.804 DL 269.642 396.86 269.685 396.829 DL -269.603 396.896 269.642 396.86 DL 269.569 396.936 269.603 396.896 DL -269.541 396.981 269.569 396.936 DL 269.518 397.028 269.541 396.981 DL -269.501 397.078 269.518 397.028 DL 269.49 397.13 269.501 397.078 DL -269.486 397.182 269.49 397.13 DL 269.488 397.233 269.486 397.182 DL -269.497 397.285 269.488 397.233 DL 269.512 397.335 269.497 397.285 DL -269.534 397.383 269.512 397.335 DL 269.561 397.428 269.534 397.383 DL -269.593 397.469 269.561 397.428 DL 269.631 397.506 269.593 397.469 DL -269.672 397.537 269.631 397.506 DL 269.718 397.564 269.672 397.537 DL -269.766 397.584 269.718 397.564 DL 269.816 397.598 269.766 397.584 DL -269.868 397.606 269.816 397.598 DL 269.92 397.608 269.868 397.606 DL -269.972 397.603 269.92 397.608 DL 270.023 397.591 269.972 397.603 DL -270.073 397.573 270.023 397.591 DL 270.12 397.55 270.073 397.573 DL -270.164 397.52 270.12 397.55 DL 270.203 397.486 270.164 397.52 DL -270.239 397.446 270.203 397.486 DL 270.269 397.403 270.239 397.446 DL -270.293 397.356 270.269 397.403 DL 270.312 397.307 270.293 397.356 DL -270.324 397.256 270.312 397.307 DL 270.33 397.204 270.324 397.256 DL -270.33 397.152 270.33 397.204 DL 270.323 397.1 270.33 397.152 DL 270.309 -397.05 270.323 397.1 DL 270.29 397.001 270.309 397.05 DL 270.264 396.955 -270.29 397.001 DL 270.233 396.913 270.264 396.955 DL 270.197 396.875 -270.233 396.913 DL 270.157 396.842 270.197 396.875 DL 270.112 396.814 -270.157 396.842 DL 270.065 396.792 270.112 396.814 DL 270.015 396.776 -270.065 396.792 DL 269.964 396.766 270.015 396.776 DL 269.911 396.763 -269.964 396.766 DL .45 LW 269.908 410.723 269.908 397.185 DL .75 LW -351.138 369.685 351.138 369.685 DL 351.113 369.687 351.138 369.685 DL -351.061 369.694 351.113 369.687 DL 351.01 369.707 351.061 369.694 DL -350.961 369.727 351.01 369.707 DL 350.915 369.752 350.961 369.727 DL -350.872 369.783 350.915 369.752 DL 350.833 369.819 350.872 369.783 DL -350.799 369.859 350.833 369.819 DL 350.771 369.904 350.799 369.859 DL -350.748 369.951 350.771 369.904 DL 350.731 370.001 350.748 369.951 DL -350.72 370.053 350.731 370.001 DL 350.716 370.105 350.72 370.053 DL -350.718 370.156 350.716 370.105 DL 350.727 370.208 350.718 370.156 DL -350.742 370.258 350.727 370.208 DL 350.764 370.306 350.742 370.258 DL -350.791 370.351 350.764 370.306 DL 350.823 370.392 350.791 370.351 DL -350.861 370.429 350.823 370.392 DL 350.902 370.46 350.861 370.429 DL -350.948 370.487 350.902 370.46 DL 350.996 370.507 350.948 370.487 DL -351.046 370.521 350.996 370.507 DL 351.098 370.529 351.046 370.521 DL -351.15 370.531 351.098 370.529 DL 351.202 370.526 351.15 370.531 DL -351.253 370.514 351.202 370.526 DL 351.303 370.496 351.253 370.514 DL -351.35 370.473 351.303 370.496 DL 351.394 370.443 351.35 370.473 DL -351.433 370.409 351.394 370.443 DL 351.469 370.369 351.433 370.409 DL -351.499 370.326 351.469 370.369 DL 351.523 370.279 351.499 370.326 DL -351.542 370.23 351.523 370.279 DL 351.554 370.179 351.542 370.23 DL -351.56 370.127 351.554 370.179 DL 351.56 370.075 351.56 370.127 DL -351.553 370.023 351.56 370.075 DL 351.539 369.973 351.553 370.023 DL -351.52 369.924 351.539 369.973 DL 351.494 369.878 351.52 369.924 DL -351.463 369.836 351.494 369.878 DL 351.427 369.798 351.463 369.836 DL -351.387 369.765 351.427 369.798 DL 351.342 369.737 351.387 369.765 DL -351.295 369.715 351.342 369.737 DL 351.245 369.699 351.295 369.715 DL -351.194 369.689 351.245 369.699 DL 351.141 369.686 351.194 369.689 DL -.45 LW 351.138 370.108 344.369 370.108 DL .75 LW 351.138 354.877 349.446 -349.8 DL 352.831 351.493 352.831 351.493 DL 352.835 351.571 352.831 -351.493 DL 352.85 351.674 352.835 351.571 DL 352.878 351.775 352.85 -351.674 DL 352.918 351.871 352.878 351.775 DL 352.97 351.961 352.918 -351.871 DL 353.032 352.045 352.97 351.961 DL 353.105 352.12 353.032 -352.045 DL 353.186 352.185 353.105 352.12 DL 353.274 352.24 353.186 -352.185 DL 353.369 352.283 353.274 352.24 DL 353.468 352.314 353.369 -352.283 DL 353.571 352.333 353.468 352.314 DL 353.675 352.339 353.571 -352.333 DL 353.779 352.332 353.675 352.339 DL 353.881 352.312 353.779 -352.332 DL 353.981 352.28 353.881 352.312 DL 354.076 352.236 353.981 -352.28 DL 354.165 352.18 354.076 352.236 DL 354.246 352.114 354.165 -352.18 DL 354.319 352.039 354.246 352.114 DL 354.382 351.955 354.319 -352.039 DL 354.434 351.864 354.382 351.955 DL 354.475 351.768 354.434 -351.864 DL 354.504 351.667 354.475 351.768 DL 354.519 351.564 354.504 -351.667 DL 354.523 351.46 354.519 351.564 DL 354.513 351.356 354.523 -351.46 DL 354.49 351.255 354.513 351.356 DL 354.455 351.156 354.49 -351.255 DL 354.409 351.063 354.455 351.156 DL 354.351 350.977 354.409 -351.063 DL 354.282 350.898 354.351 350.977 DL 354.205 350.829 354.282 -350.898 DL 354.119 350.769 354.205 350.829 DL 354.027 350.721 354.119 -350.769 DL 353.93 350.685 354.027 350.721 DL 353.828 350.66 353.93 -350.685 DL 353.724 350.649 353.828 350.66 DL 353.621 350.65 353.724 -350.649 DL 353.517 350.665 353.621 350.65 DL 353.416 350.692 353.517 -350.665 DL 353.319 350.731 353.416 350.692 DL 353.227 350.781 353.319 -350.731 DL 353.143 350.843 353.227 350.781 DL 353.066 350.915 353.143 -350.843 DL 352.999 350.995 353.066 350.915 DL 352.942 351.083 352.999 -350.995 DL 352.896 351.177 352.942 351.083 DL 352.862 351.276 352.896 -351.177 DL 352.841 351.379 352.862 351.276 DL 352.832 351.483 352.841 -351.379 DL 340.985 368.416 340.985 371.8 DL 342.677 368.416 340.985 -368.416 DL 344.369 370.108 342.677 368.416 DL 342.677 371.8 344.369 -370.108 DL 340.985 371.8 342.677 371.8 DL(V)326.962 374.358 Q F5(B).669 -1.6 M F6(1).151 E 354.523 396.762 354.523 396.762 DL 354.498 396.764 -354.523 396.762 DL 354.446 396.771 354.498 396.764 DL 354.395 396.784 -354.446 396.771 DL 354.346 396.804 354.395 396.784 DL 354.3 396.829 -354.346 396.804 DL 354.257 396.86 354.3 396.829 DL 354.218 396.896 -354.257 396.86 DL 354.184 396.936 354.218 396.896 DL 354.156 396.981 -354.184 396.936 DL 354.133 397.028 354.156 396.981 DL 354.116 397.078 -354.133 397.028 DL 354.105 397.13 354.116 397.078 DL 354.101 397.182 -354.105 397.13 DL 354.103 397.233 354.101 397.182 DL 354.112 397.285 -354.103 397.233 DL 354.127 397.335 354.112 397.285 DL 354.149 397.383 -354.127 397.335 DL 354.176 397.428 354.149 397.383 DL 354.208 397.469 -354.176 397.428 DL 354.246 397.506 354.208 397.469 DL 354.287 397.537 -354.246 397.506 DL 354.333 397.564 354.287 397.537 DL 354.381 397.584 -354.333 397.564 DL 354.431 397.598 354.381 397.584 DL 354.483 397.606 -354.431 397.598 DL 354.535 397.608 354.483 397.606 DL 354.587 397.603 -354.535 397.608 DL 354.638 397.591 354.587 397.603 DL 354.688 397.573 -354.638 397.591 DL 354.735 397.55 354.688 397.573 DL 354.779 397.52 -354.735 397.55 DL 354.818 397.486 354.779 397.52 DL 354.854 397.446 -354.818 397.486 DL 354.884 397.403 354.854 397.446 DL 354.908 397.356 -354.884 397.403 DL 354.927 397.307 354.908 397.356 DL 354.939 397.256 -354.927 397.307 DL 354.945 397.204 354.939 397.256 DL 354.945 397.152 -354.945 397.204 DL 354.938 397.1 354.945 397.152 DL 354.924 397.05 -354.938 397.1 DL 354.905 397.001 354.924 397.05 DL 354.879 396.955 -354.905 397.001 DL 354.848 396.913 354.879 396.955 DL 354.812 396.875 -354.848 396.913 DL 354.772 396.842 354.812 396.875 DL 354.727 396.814 -354.772 396.842 DL 354.68 396.792 354.727 396.814 DL 354.63 396.776 -354.68 396.792 DL 354.579 396.766 354.63 396.776 DL 354.526 396.763 -354.579 396.766 DL .45 LW 354.523 397.185 354.523 388.723 DL 351.138 -354.877 351.138 385.339 DL .75 LW 351.138 385.339 349.446 390.416 DL -352.831 388.723 352.831 388.723 DL 352.835 388.801 352.831 388.723 DL -352.85 388.904 352.835 388.801 DL 352.878 389.005 352.85 388.904 DL -352.918 389.101 352.878 389.005 DL 352.97 389.191 352.918 389.101 DL -353.032 389.275 352.97 389.191 DL 353.105 389.35 353.032 389.275 DL -353.186 389.415 353.105 389.35 DL 353.274 389.47 353.186 389.415 DL -353.369 389.513 353.274 389.47 DL 353.468 389.544 353.369 389.513 DL -353.571 389.563 353.468 389.544 DL 353.675 389.569 353.571 389.563 DL -353.779 389.562 353.675 389.569 DL 353.881 389.542 353.779 389.562 DL -353.981 389.51 353.881 389.542 DL 354.076 389.466 353.981 389.51 DL -354.165 389.41 354.076 389.466 DL 354.246 389.344 354.165 389.41 DL -354.319 389.269 354.246 389.344 DL 354.382 389.185 354.319 389.269 DL -354.434 389.094 354.382 389.185 DL 354.475 388.998 354.434 389.094 DL -354.504 388.897 354.475 388.998 DL 354.519 388.794 354.504 388.897 DL -354.523 388.69 354.519 388.794 DL 354.513 388.586 354.523 388.69 DL -354.49 388.485 354.513 388.586 DL 354.455 388.386 354.49 388.485 DL -354.409 388.293 354.455 388.386 DL 354.351 388.207 354.409 388.293 DL -354.282 388.128 354.351 388.207 DL 354.205 388.059 354.282 388.128 DL -354.119 387.999 354.205 388.059 DL 354.027 387.951 354.119 387.999 DL -353.93 387.915 354.027 387.951 DL 353.828 387.89 353.93 387.915 DL -353.724 387.879 353.828 387.89 DL 353.621 387.88 353.724 387.879 DL -353.517 387.895 353.621 387.88 DL 353.416 387.922 353.517 387.895 DL -353.319 387.961 353.416 387.922 DL 353.227 388.011 353.319 387.961 DL -353.143 388.073 353.227 388.011 DL 353.066 388.145 353.143 388.073 DL -352.999 388.225 353.066 388.145 DL 352.942 388.313 352.999 388.225 DL -352.896 388.407 352.942 388.313 DL 352.862 388.506 352.896 388.407 DL -352.841 388.609 352.862 388.506 DL 352.832 388.713 352.841 388.609 DL -322.369 424.262 325.754 424.262 DL 322.369 422.57 322.369 424.262 DL -324.061 420.877 322.369 422.57 DL 325.754 422.57 324.061 420.877 DL -325.754 424.262 325.754 422.57 DL F7(-)312.929 434.454 Q F4(V)1.152 E F5 -(REF).697 1.6 M .45 LW 324.061 420.877 324.061 414.108 DL .75 LW 359.6 -396.762 359.6 396.762 DL 359.575 396.764 359.6 396.762 DL 359.523 -396.771 359.575 396.764 DL 359.472 396.784 359.523 396.771 DL 359.423 -396.804 359.472 396.784 DL 359.377 396.829 359.423 396.804 DL 359.334 -396.86 359.377 396.829 DL 359.295 396.896 359.334 396.86 DL 359.261 -396.936 359.295 396.896 DL 359.233 396.981 359.261 396.936 DL 359.21 -397.028 359.233 396.981 DL 359.193 397.078 359.21 397.028 DL 359.182 -397.13 359.193 397.078 DL 359.178 397.182 359.182 397.13 DL 359.18 -397.233 359.178 397.182 DL 359.189 397.285 359.18 397.233 DL 359.204 -397.335 359.189 397.285 DL 359.226 397.383 359.204 397.335 DL 359.253 -397.428 359.226 397.383 DL 359.285 397.469 359.253 397.428 DL 359.323 -397.506 359.285 397.469 DL 359.364 397.537 359.323 397.506 DL 359.41 -397.564 359.364 397.537 DL 359.458 397.584 359.41 397.564 DL 359.508 -397.598 359.458 397.584 DL 359.56 397.606 359.508 397.598 DL 359.612 -397.608 359.56 397.606 DL 359.664 397.603 359.612 397.608 DL 359.715 -397.591 359.664 397.603 DL 359.765 397.573 359.715 397.591 DL 359.812 -397.55 359.765 397.573 DL 359.856 397.52 359.812 397.55 DL 359.895 -397.486 359.856 397.52 DL 359.931 397.446 359.895 397.486 DL 359.961 -397.403 359.931 397.446 DL 359.985 397.356 359.961 397.403 DL 360.004 -397.307 359.985 397.356 DL 360.016 397.256 360.004 397.307 DL 360.022 -397.204 360.016 397.256 DL 360.022 397.152 360.022 397.204 DL 360.015 -397.1 360.022 397.152 DL 360.001 397.05 360.015 397.1 DL 359.982 397.001 -360.001 397.05 DL 359.956 396.955 359.982 397.001 DL 359.925 396.913 -359.956 396.955 DL 359.889 396.875 359.925 396.913 DL 359.849 396.842 -359.889 396.875 DL 359.804 396.814 359.849 396.842 DL 359.757 396.792 -359.804 396.814 DL 359.707 396.776 359.757 396.792 DL 359.656 396.766 -359.707 396.776 DL 359.603 396.763 359.656 396.766 DL 324.061 396.762 -324.061 396.762 DL 324.036 396.764 324.061 396.762 DL 323.984 396.771 -324.036 396.764 DL 323.933 396.784 323.984 396.771 DL 323.884 396.804 -323.933 396.784 DL 323.838 396.829 323.884 396.804 DL 323.795 396.86 -323.838 396.829 DL 323.756 396.896 323.795 396.86 DL 323.722 396.936 -323.756 396.896 DL 323.694 396.981 323.722 396.936 DL 323.671 397.028 -323.694 396.981 DL 323.654 397.078 323.671 397.028 DL 323.643 397.13 -323.654 397.078 DL 323.639 397.182 323.643 397.13 DL 323.641 397.233 -323.639 397.182 DL 323.65 397.285 323.641 397.233 DL 323.665 397.335 -323.65 397.285 DL 323.687 397.383 323.665 397.335 DL 323.714 397.428 -323.687 397.383 DL 323.746 397.469 323.714 397.428 DL 323.784 397.506 -323.746 397.469 DL 323.825 397.537 323.784 397.506 DL 323.871 397.564 -323.825 397.537 DL 323.919 397.584 323.871 397.564 DL 323.969 397.598 -323.919 397.584 DL 324.021 397.606 323.969 397.598 DL 324.073 397.608 -324.021 397.606 DL 324.125 397.603 324.073 397.608 DL 324.176 397.591 -324.125 397.603 DL 324.226 397.573 324.176 397.591 DL 324.273 397.55 -324.226 397.573 DL 324.317 397.52 324.273 397.55 DL 324.356 397.486 -324.317 397.52 DL 324.392 397.446 324.356 397.486 DL 324.422 397.403 -324.392 397.446 DL 324.446 397.356 324.422 397.403 DL 324.465 397.307 -324.446 397.356 DL 324.477 397.256 324.465 397.307 DL 324.483 397.204 -324.477 397.256 DL 324.483 397.152 324.483 397.204 DL 324.476 397.1 -324.483 397.152 DL 324.462 397.05 324.476 397.1 DL 324.443 397.001 -324.462 397.05 DL 324.417 396.955 324.443 397.001 DL 324.386 396.913 -324.417 396.955 DL 324.35 396.875 324.386 396.913 DL 324.31 396.842 -324.35 396.875 DL 324.265 396.814 324.31 396.842 DL 324.218 396.792 -324.265 396.814 DL 324.168 396.776 324.218 396.792 DL 324.117 396.766 -324.168 396.776 DL 324.064 396.763 324.117 396.766 DL 269.908 383.223 -269.908 383.223 DL 269.883 383.225 269.908 383.223 DL 269.831 383.232 -269.883 383.225 DL 269.78 383.245 269.831 383.232 DL 269.731 383.265 -269.78 383.245 DL 269.685 383.29 269.731 383.265 DL 269.642 383.321 -269.685 383.29 DL 269.603 383.357 269.642 383.321 DL 269.569 383.397 -269.603 383.357 DL 269.541 383.442 269.569 383.397 DL 269.518 383.489 -269.541 383.442 DL 269.501 383.539 269.518 383.489 DL 269.49 383.591 -269.501 383.539 DL 269.486 383.643 269.49 383.591 DL 269.488 383.694 -269.486 383.643 DL 269.497 383.746 269.488 383.694 DL 269.512 383.796 -269.497 383.746 DL 269.534 383.844 269.512 383.796 DL 269.561 383.889 -269.534 383.844 DL 269.593 383.93 269.561 383.889 DL 269.631 383.967 -269.593 383.93 DL 269.672 383.998 269.631 383.967 DL 269.718 384.025 -269.672 383.998 DL 269.766 384.045 269.718 384.025 DL 269.816 384.059 -269.766 384.045 DL 269.868 384.067 269.816 384.059 DL 269.92 384.069 -269.868 384.067 DL 269.972 384.064 269.92 384.069 DL 270.023 384.052 -269.972 384.064 DL 270.073 384.034 270.023 384.052 DL 270.12 384.011 -270.073 384.034 DL 270.164 383.981 270.12 384.011 DL 270.203 383.947 -270.164 383.981 DL 270.239 383.907 270.203 383.947 DL 270.269 383.864 -270.239 383.907 DL 270.293 383.817 270.269 383.864 DL 270.312 383.768 -270.293 383.817 DL 270.324 383.717 270.312 383.768 DL 270.33 383.665 -270.324 383.717 DL 270.33 383.613 270.33 383.665 DL 270.323 383.561 -270.33 383.613 DL 270.309 383.511 270.323 383.561 DL 270.29 383.462 -270.309 383.511 DL 270.264 383.416 270.29 383.462 DL 270.233 383.374 -270.264 383.416 DL 270.197 383.336 270.233 383.374 DL 270.157 383.303 -270.197 383.336 DL 270.112 383.275 270.157 383.303 DL 270.065 383.253 -270.112 383.275 DL 270.015 383.237 270.065 383.253 DL 269.964 383.227 -270.015 383.237 DL 269.911 383.224 269.964 383.227 DL .45 LW 324.061 -397.185 324.061 407.339 DL 337.6 410.723 327.446 410.723 DL 339.292 -407.339 339.292 414.108 DL .75 LW 337.6 407.339 337.6 414.108 DL 324.061 -409.031 324.061 409.031 DL 324.139 409.027 324.061 409.031 DL 324.242 -409.01 324.139 409.027 DL 324.343 408.98 324.242 409.01 DL 324.439 -408.939 324.343 408.98 DL 324.529 408.886 324.439 408.939 DL 324.613 -408.822 324.529 408.886 DL 324.688 408.749 324.613 408.822 DL 324.753 -408.667 324.688 408.749 DL 324.808 408.577 324.753 408.667 DL 324.851 -408.482 324.808 408.577 DL 324.882 408.382 324.851 408.482 DL 324.901 -408.279 324.882 408.382 DL 324.907 408.176 324.901 408.279 DL 324.9 -408.072 324.907 408.176 DL 324.88 407.969 324.9 408.072 DL 324.848 -407.87 324.88 407.969 DL 324.804 407.776 324.848 407.87 DL 324.748 -407.688 324.804 407.776 DL 324.682 407.607 324.748 407.688 DL 324.607 -407.536 324.682 407.607 DL 324.523 407.474 324.607 407.536 DL 324.432 -407.423 324.523 407.474 DL 324.336 407.384 324.432 407.423 DL 324.235 -407.357 324.336 407.384 DL 324.132 407.342 324.235 407.357 DL 324.028 -407.341 324.132 407.342 DL 323.924 407.352 324.028 407.341 DL 323.823 -407.376 323.924 407.352 DL 323.724 407.413 323.823 407.376 DL 323.631 -407.461 323.724 407.413 DL 323.545 407.52 323.631 407.461 DL 323.466 -407.59 323.545 407.52 DL 323.397 407.668 323.466 407.59 DL 323.337 -407.755 323.397 407.668 DL 323.289 407.848 323.337 407.755 DL 323.253 -407.946 323.289 407.848 DL 323.228 408.048 323.253 407.946 DL 323.217 -408.152 323.228 408.048 DL 323.218 408.255 323.217 408.152 DL 323.233 -408.358 323.218 408.255 DL 323.26 408.459 323.233 408.358 DL 323.299 -408.556 323.26 408.459 DL 323.349 408.647 323.299 408.556 DL 323.411 -408.73 323.349 408.647 DL 323.483 408.806 323.411 408.73 DL 323.563 -408.872 323.483 408.806 DL 323.651 408.928 323.563 408.872 DL 323.745 -408.972 323.651 408.928 DL 323.844 409.004 323.745 408.972 DL 323.947 -409.024 323.844 409.004 DL 324.051 409.031 323.947 409.024 DL 327.446 -410.723 322.369 409.031 DL 324.061 414.108 324.061 414.108 DL 324.139 -414.104 324.061 414.108 DL 324.242 414.087 324.139 414.104 DL 324.343 -414.057 324.242 414.087 DL 324.439 414.016 324.343 414.057 DL 324.529 -413.963 324.439 414.016 DL 324.613 413.899 324.529 413.963 DL 324.688 -413.826 324.613 413.899 DL 324.753 413.744 324.688 413.826 DL 324.808 -413.654 324.753 413.744 DL 324.851 413.559 324.808 413.654 DL 324.882 -413.459 324.851 413.559 DL 324.901 413.356 324.882 413.459 DL 324.907 -413.253 324.901 413.356 DL 324.9 413.149 324.907 413.253 DL 324.88 -413.046 324.9 413.149 DL 324.848 412.947 324.88 413.046 DL 324.804 -412.853 324.848 412.947 DL 324.748 412.765 324.804 412.853 DL 324.682 -412.684 324.748 412.765 DL 324.607 412.613 324.682 412.684 DL 324.523 -412.551 324.607 412.613 DL 324.432 412.5 324.523 412.551 DL 324.336 -412.461 324.432 412.5 DL 324.235 412.434 324.336 412.461 DL 324.132 -412.419 324.235 412.434 DL 324.028 412.418 324.132 412.419 DL 323.924 -412.429 324.028 412.418 DL 323.823 412.453 323.924 412.429 DL 323.724 -412.49 323.823 412.453 DL 323.631 412.538 323.724 412.49 DL 323.545 -412.597 323.631 412.538 DL 323.466 412.667 323.545 412.597 DL 323.397 -412.745 323.466 412.667 DL 323.337 412.832 323.397 412.745 DL 323.289 -412.925 323.337 412.832 DL 323.253 413.023 323.289 412.925 DL 323.228 -413.125 323.253 413.023 DL 323.217 413.229 323.228 413.125 DL 323.218 -413.332 323.217 413.229 DL 323.233 413.435 323.218 413.332 DL 323.26 -413.536 323.233 413.435 DL 323.299 413.633 323.26 413.536 DL 323.349 -413.724 323.299 413.633 DL 323.411 413.807 323.349 413.724 DL 323.483 -413.883 323.411 413.807 DL 323.563 413.949 323.483 413.883 DL 323.651 -414.005 323.563 413.949 DL 323.745 414.049 323.651 414.005 DL 323.844 -414.081 323.745 414.049 DL 323.947 414.101 323.844 414.081 DL 324.051 -414.108 323.947 414.101 DL .45 LW 359.6 410.723 359.6 397.185 DL 339.292 -410.723 359.6 410.723 DL 359.6 397.185 339.292 397.185 DL 359.6 376.877 -359.6 397.185 DL 371.446 376.877 359.6 376.877 DL 339.292 393.8 339.292 -400.57 DL .75 LW 337.6 393.8 337.6 400.57 DL .45 LW 269.908 397.185 -269.908 383.646 DL 337.6 397.185 269.908 397.185 DL 283.446 383.646 -256.369 383.646 DL 296.985 387.031 286.831 387.031 DL 296.985 356.57 -296.985 387.031 DL 252.985 370.108 252.985 359.954 DL 242.831 370.108 -252.985 370.108 DL 254.677 380.262 254.677 387.031 DL .75 LW 256.369 -380.262 256.369 387.031 DL .45 LW 269.908 356.57 256.369 356.57 DL -269.908 353.185 269.908 359.954 DL .75 LW 271.6 353.185 271.6 359.954 DL -252.985 354.877 252.985 354.877 DL 253.063 354.873 252.985 354.877 DL -253.166 354.856 253.063 354.873 DL 253.267 354.826 253.166 354.856 DL -253.363 354.785 253.267 354.826 DL 253.453 354.732 253.363 354.785 DL -253.537 354.668 253.453 354.732 DL 253.612 354.595 253.537 354.668 DL -253.677 354.513 253.612 354.595 DL 253.732 354.423 253.677 354.513 DL -253.775 354.328 253.732 354.423 DL 253.806 354.228 253.775 354.328 DL -253.825 354.125 253.806 354.228 DL 253.831 354.022 253.825 354.125 DL -253.824 353.918 253.831 354.022 DL 253.804 353.815 253.824 353.918 DL -253.772 353.716 253.804 353.815 DL 253.728 353.622 253.772 353.716 DL -253.672 353.534 253.728 353.622 DL 253.606 353.453 253.672 353.534 DL -253.531 353.382 253.606 353.453 DL 253.447 353.32 253.531 353.382 DL -253.356 353.269 253.447 353.32 DL 253.26 353.23 253.356 353.269 DL -253.159 353.203 253.26 353.23 DL 253.056 353.188 253.159 353.203 DL -252.952 353.187 253.056 353.188 DL 252.848 353.198 252.952 353.187 DL -252.747 353.222 252.848 353.198 DL 252.648 353.259 252.747 353.222 DL -252.555 353.307 252.648 353.259 DL 252.469 353.366 252.555 353.307 DL -252.39 353.436 252.469 353.366 DL 252.321 353.514 252.39 353.436 DL -252.261 353.601 252.321 353.514 DL 252.213 353.694 252.261 353.601 DL -252.177 353.792 252.213 353.694 DL 252.152 353.894 252.177 353.792 DL -252.141 353.998 252.152 353.894 DL 252.142 354.101 252.141 353.998 DL -252.157 354.204 252.142 354.101 DL 252.184 354.305 252.157 354.204 DL -252.223 354.402 252.184 354.305 DL 252.273 354.493 252.223 354.402 DL -252.335 354.576 252.273 354.493 DL 252.407 354.652 252.335 354.576 DL -252.487 354.718 252.407 354.652 DL 252.575 354.774 252.487 354.718 DL -252.669 354.818 252.575 354.774 DL 252.768 354.85 252.669 354.818 DL -252.871 354.87 252.768 354.85 DL 252.975 354.877 252.871 354.87 DL -256.369 356.57 251.292 358.262 DL 239.446 368.416 239.446 371.8 DL -241.138 368.416 239.446 368.416 DL 242.831 370.108 241.138 368.416 DL -241.138 371.8 242.831 370.108 DL 239.446 371.8 241.138 371.8 DL F4(V) -225.424 374.358 Q F5(B).669 1.6 M F6(2).151 E 252.985 359.954 252.985 -359.954 DL 253.063 359.95 252.985 359.954 DL 253.166 359.933 253.063 -359.95 DL 253.267 359.903 253.166 359.933 DL 253.363 359.862 253.267 -359.903 DL 253.453 359.809 253.363 359.862 DL 253.537 359.745 253.453 -359.809 DL 253.612 359.672 253.537 359.745 DL 253.677 359.59 253.612 -359.672 DL 253.732 359.5 253.677 359.59 DL 253.775 359.405 253.732 359.5 -DL 253.806 359.305 253.775 359.405 DL 253.825 359.202 253.806 359.305 DL -253.831 359.099 253.825 359.202 DL 253.824 358.995 253.831 359.099 DL -253.804 358.892 253.824 358.995 DL 253.772 358.793 253.804 358.892 DL -253.728 358.699 253.772 358.793 DL 253.672 358.611 253.728 358.699 DL -253.606 358.53 253.672 358.611 DL 253.531 358.459 253.606 358.53 DL -253.447 358.397 253.531 358.459 DL 253.356 358.346 253.447 358.397 DL -253.26 358.307 253.356 358.346 DL 253.159 358.28 253.26 358.307 DL -253.056 358.265 253.159 358.28 DL 252.952 358.264 253.056 358.265 DL -252.848 358.275 252.952 358.264 DL 252.747 358.299 252.848 358.275 DL -252.648 358.336 252.747 358.299 DL 252.555 358.384 252.648 358.336 DL -252.469 358.443 252.555 358.384 DL 252.39 358.513 252.469 358.443 DL -252.321 358.591 252.39 358.513 DL 252.261 358.678 252.321 358.591 DL -252.213 358.771 252.261 358.678 DL 252.177 358.869 252.213 358.771 DL -252.152 358.971 252.177 358.869 DL 252.141 359.075 252.152 358.971 DL -252.142 359.178 252.141 359.075 DL 252.157 359.281 252.142 359.178 DL -252.184 359.382 252.157 359.281 DL 252.223 359.479 252.184 359.382 DL -252.273 359.57 252.223 359.479 DL 252.335 359.653 252.273 359.57 DL -252.407 359.729 252.335 359.653 DL 252.487 359.795 252.407 359.729 DL -252.575 359.851 252.487 359.795 DL 252.669 359.895 252.575 359.851 DL -252.768 359.927 252.669 359.895 DL 252.871 359.947 252.768 359.927 DL -252.975 359.954 252.871 359.947 DL 286.831 381.954 286.831 381.954 DL -286.909 381.95 286.831 381.954 DL 287.012 381.933 286.909 381.95 DL -287.113 381.903 287.012 381.933 DL 287.209 381.862 287.113 381.903 DL -287.299 381.809 287.209 381.862 DL 287.383 381.745 287.299 381.809 DL -287.458 381.672 287.383 381.745 DL 287.523 381.59 287.458 381.672 DL -287.578 381.5 287.523 381.59 DL 287.621 381.405 287.578 381.5 DL 287.652 -381.305 287.621 381.405 DL 287.671 381.202 287.652 381.305 DL 287.677 -381.099 287.671 381.202 DL 287.67 380.995 287.677 381.099 DL 287.65 -380.892 287.67 380.995 DL 287.618 380.793 287.65 380.892 DL 287.574 -380.699 287.618 380.793 DL 287.518 380.611 287.574 380.699 DL 287.452 -380.53 287.518 380.611 DL 287.377 380.459 287.452 380.53 DL 287.293 -380.397 287.377 380.459 DL 287.202 380.346 287.293 380.397 DL 287.106 -380.307 287.202 380.346 DL 287.005 380.28 287.106 380.307 DL 286.902 -380.265 287.005 380.28 DL 286.798 380.264 286.902 380.265 DL 286.694 -380.275 286.798 380.264 DL 286.593 380.299 286.694 380.275 DL 286.494 -380.336 286.593 380.299 DL 286.401 380.384 286.494 380.336 DL 286.315 -380.443 286.401 380.384 DL 286.236 380.513 286.315 380.443 DL 286.167 -380.591 286.236 380.513 DL 286.107 380.678 286.167 380.591 DL 286.059 -380.771 286.107 380.678 DL 286.023 380.869 286.059 380.771 DL 285.998 -380.971 286.023 380.869 DL 285.987 381.075 285.998 380.971 DL 285.988 -381.178 285.987 381.075 DL 286.003 381.281 285.988 381.178 DL 286.03 -381.382 286.003 381.281 DL 286.069 381.479 286.03 381.382 DL 286.119 -381.57 286.069 381.479 DL 286.181 381.653 286.119 381.57 DL 286.253 -381.729 286.181 381.653 DL 286.333 381.795 286.253 381.729 DL 286.421 -381.851 286.333 381.795 DL 286.515 381.895 286.421 381.851 DL 286.614 -381.927 286.515 381.895 DL 286.717 381.947 286.614 381.927 DL 286.821 -381.954 286.717 381.947 DL 283.446 383.646 288.523 385.339 DL 286.831 -387.031 286.831 387.031 DL 286.909 387.027 286.831 387.031 DL 287.012 -387.01 286.909 387.027 DL 287.113 386.98 287.012 387.01 DL 287.209 -386.939 287.113 386.98 DL 287.299 386.886 287.209 386.939 DL 287.383 -386.822 287.299 386.886 DL 287.458 386.749 287.383 386.822 DL 287.523 -386.667 287.458 386.749 DL 287.578 386.577 287.523 386.667 DL 287.621 -386.482 287.578 386.577 DL 287.652 386.382 287.621 386.482 DL 287.671 -386.279 287.652 386.382 DL 287.677 386.176 287.671 386.279 DL 287.67 -386.072 287.677 386.176 DL 287.65 385.969 287.67 386.072 DL 287.618 -385.87 287.65 385.969 DL 287.574 385.776 287.618 385.87 DL 287.518 -385.688 287.574 385.776 DL 287.452 385.607 287.518 385.688 DL 287.377 -385.536 287.452 385.607 DL 287.293 385.474 287.377 385.536 DL 287.202 -385.423 287.293 385.474 DL 287.106 385.384 287.202 385.423 DL 287.005 -385.357 287.106 385.384 DL 286.902 385.342 287.005 385.357 DL 286.798 -385.341 286.902 385.342 DL 286.694 385.352 286.798 385.341 DL 286.593 -385.376 286.694 385.352 DL 286.494 385.413 286.593 385.376 DL 286.401 -385.461 286.494 385.413 DL 286.315 385.52 286.401 385.461 DL 286.236 -385.59 286.315 385.52 DL 286.167 385.668 286.236 385.59 DL 286.107 -385.755 286.167 385.668 DL 286.059 385.848 286.107 385.755 DL 286.023 -385.946 286.059 385.848 DL 285.998 386.048 286.023 385.946 DL 285.987 -386.152 285.998 386.048 DL 285.988 386.255 285.987 386.152 DL 286.003 -386.358 285.988 386.255 DL 286.03 386.459 286.003 386.358 DL 286.069 -386.556 286.03 386.459 DL 286.119 386.647 286.069 386.556 DL 286.181 -386.73 286.119 386.647 DL 286.253 386.806 286.181 386.73 DL 286.333 -386.872 286.253 386.806 DL 286.421 386.928 286.333 386.872 DL 286.515 -386.972 286.421 386.928 DL 286.614 387.004 286.515 386.972 DL 286.717 -387.024 286.614 387.004 DL 286.821 387.031 286.717 387.024 DL 371.446 -383.646 371.446 356.57 DL 398.523 370.108 371.446 383.646 DL 371.446 -356.57 398.523 370.108 DL F7(+)373.138 367.589 Q(-)373.138 381.127 Q -296.985 356.146 296.985 356.146 DL 296.96 356.148 296.985 356.146 DL -296.907 356.155 296.96 356.148 DL 296.856 356.168 296.907 356.155 DL -296.807 356.188 296.856 356.168 DL 296.761 356.213 296.807 356.188 DL -296.718 356.244 296.761 356.213 DL 296.68 356.28 296.718 356.244 DL -296.646 356.321 296.68 356.28 DL 296.617 356.365 296.646 356.321 DL -296.594 356.413 296.617 356.365 DL 296.577 356.463 296.594 356.413 DL -296.566 356.514 296.577 356.463 DL 296.562 356.567 296.566 356.514 DL -296.564 356.618 296.562 356.567 DL 296.573 356.67 296.564 356.618 DL -296.588 356.721 296.573 356.67 DL 296.61 356.769 296.588 356.721 DL -296.637 356.813 296.61 356.769 DL 296.67 356.855 296.637 356.813 DL -296.707 356.891 296.67 356.855 DL 296.749 356.923 296.707 356.891 DL -296.794 356.95 296.749 356.923 DL 296.842 356.97 296.794 356.95 DL -296.893 356.984 296.842 356.97 DL 296.945 356.992 296.893 356.984 DL -296.997 356.994 296.945 356.992 DL 297.049 356.989 296.997 356.994 DL -297.1 356.977 297.049 356.989 DL 297.15 356.959 297.1 356.977 DL 297.197 -356.935 297.15 356.959 DL 297.241 356.906 297.197 356.935 DL 297.281 -356.871 297.241 356.906 DL 297.316 356.832 297.281 356.871 DL 297.347 -356.789 297.316 356.832 DL 297.371 356.742 297.347 356.789 DL 297.39 -356.692 297.371 356.742 DL 297.402 356.641 297.39 356.692 DL 297.408 -356.589 297.402 356.641 DL 297.408 356.537 297.408 356.589 DL 297.401 -356.485 297.408 356.537 DL 297.387 356.434 297.401 356.485 DL 297.368 -356.386 297.387 356.434 DL 297.342 356.34 297.368 356.386 DL 297.311 -356.297 297.342 356.34 DL 297.275 356.259 297.311 356.297 DL 297.234 -356.226 297.275 356.259 DL 297.19 356.198 297.234 356.226 DL 297.142 -356.176 297.19 356.198 DL 297.092 356.16 297.142 356.176 DL 297.041 -356.15 297.092 356.16 DL 296.988 356.147 297.041 356.15 DL .45 LW -379.908 366.723 376.523 366.723 DL 379.908 375.185 379.908 366.723 DL -383.292 375.185 379.908 375.185 DL 296.985 334.57 259.754 334.57 DL -296.985 356.57 296.985 334.57 DL 271.6 356.57 296.985 356.57 DL 229.292 -353.185 252.985 353.185 DL 229.292 334.57 229.292 353.185 DL 242.831 -334.57 229.292 334.57 DL 202.215 334.57 215.754 334.57 DL 202.215 -383.646 202.215 334.57 DL 254.677 383.646 202.215 383.646 DL F4(C) -322.503 353.223 Q F5(D).669 1.6 M F6(2).157 E F4(C)322.503 339.685 Q F5 -(D).669 1.6 M F6(1).157 E .75 LW 354.523 343.454 354.523 343.454 DL -354.549 343.453 354.523 343.454 DL 354.601 343.446 354.549 343.453 DL -354.652 343.433 354.601 343.446 DL 354.701 343.413 354.652 343.433 DL -354.747 343.388 354.701 343.413 DL 354.79 343.357 354.747 343.388 DL -354.829 343.321 354.79 343.357 DL 354.863 343.281 354.829 343.321 DL -354.891 343.236 354.863 343.281 DL 354.914 343.189 354.891 343.236 DL -354.931 343.139 354.914 343.189 DL 354.942 343.087 354.931 343.139 DL -354.946 343.035 354.942 343.087 DL 354.944 342.984 354.946 343.035 DL -354.935 342.932 354.944 342.984 DL 354.92 342.882 354.935 342.932 DL -354.898 342.834 354.92 342.882 DL 354.871 342.789 354.898 342.834 DL -354.839 342.748 354.871 342.789 DL 354.801 342.711 354.839 342.748 DL -354.76 342.68 354.801 342.711 DL 354.714 342.653 354.76 342.68 DL -354.666 342.633 354.714 342.653 DL 354.616 342.619 354.666 342.633 DL -354.564 342.611 354.616 342.619 DL 354.512 342.609 354.564 342.611 DL -354.46 342.614 354.512 342.609 DL 354.409 342.626 354.46 342.614 DL -354.359 342.644 354.409 342.626 DL 354.312 342.667 354.359 342.644 DL -354.268 342.697 354.312 342.667 DL 354.229 342.731 354.268 342.697 DL -354.193 342.771 354.229 342.731 DL 354.163 342.814 354.193 342.771 DL -354.139 342.861 354.163 342.814 DL 354.12 342.91 354.139 342.861 DL -354.108 342.961 354.12 342.91 DL 354.102 343.013 354.108 342.961 DL -354.102 343.065 354.102 343.013 DL 354.109 343.117 354.102 343.065 DL -354.123 343.167 354.109 343.117 DL 354.142 343.216 354.123 343.167 DL -354.168 343.262 354.142 343.216 DL 354.199 343.304 354.168 343.262 DL -354.235 343.342 354.199 343.304 DL 354.275 343.375 354.235 343.342 DL -354.32 343.403 354.275 343.375 DL 354.367 343.425 354.32 343.403 DL -354.417 343.441 354.367 343.425 DL 354.468 343.451 354.417 343.441 DL -354.521 343.454 354.468 343.451 DL .45 LW 354.523 343.031 354.523 -351.493 DL 324.061 319.339 324.061 326.108 DL .75 LW 359.6 343.454 359.6 -343.454 DL 359.626 343.453 359.6 343.454 DL 359.678 343.446 359.626 -343.453 DL 359.729 343.433 359.678 343.446 DL 359.778 343.413 359.729 -343.433 DL 359.824 343.388 359.778 343.413 DL 359.867 343.357 359.824 -343.388 DL 359.906 343.321 359.867 343.357 DL 359.94 343.281 359.906 -343.321 DL 359.968 343.236 359.94 343.281 DL 359.991 343.189 359.968 -343.236 DL 360.008 343.139 359.991 343.189 DL 360.019 343.087 360.008 -343.139 DL 360.023 343.035 360.019 343.087 DL 360.021 342.984 360.023 -343.035 DL 360.012 342.932 360.021 342.984 DL 359.997 342.882 360.012 -342.932 DL 359.975 342.834 359.997 342.882 DL 359.948 342.789 359.975 -342.834 DL 359.916 342.748 359.948 342.789 DL 359.878 342.711 359.916 -342.748 DL 359.837 342.68 359.878 342.711 DL 359.791 342.653 359.837 -342.68 DL 359.743 342.633 359.791 342.653 DL 359.693 342.619 359.743 -342.633 DL 359.641 342.611 359.693 342.619 DL 359.589 342.609 359.641 -342.611 DL 359.537 342.614 359.589 342.609 DL 359.486 342.626 359.537 -342.614 DL 359.436 342.644 359.486 342.626 DL 359.389 342.667 359.436 -342.644 DL 359.345 342.697 359.389 342.667 DL 359.306 342.731 359.345 -342.697 DL 359.27 342.771 359.306 342.731 DL 359.24 342.814 359.27 -342.771 DL 359.216 342.861 359.24 342.814 DL 359.197 342.91 359.216 -342.861 DL 359.185 342.961 359.197 342.91 DL 359.179 343.013 359.185 -342.961 DL 359.179 343.065 359.179 343.013 DL 359.186 343.117 359.179 -343.065 DL 359.2 343.167 359.186 343.117 DL 359.219 343.216 359.2 -343.167 DL 359.245 343.262 359.219 343.216 DL 359.276 343.304 359.245 -343.262 DL 359.312 343.342 359.276 343.304 DL 359.352 343.375 359.312 -343.342 DL 359.397 343.403 359.352 343.375 DL 359.444 343.425 359.397 -343.403 DL 359.494 343.441 359.444 343.425 DL 359.545 343.451 359.494 -343.441 DL 359.598 343.454 359.545 343.451 DL 324.061 343.454 324.061 -343.454 DL 324.087 343.453 324.061 343.454 DL 324.139 343.446 324.087 -343.453 DL 324.19 343.433 324.139 343.446 DL 324.239 343.413 324.19 -343.433 DL 324.285 343.388 324.239 343.413 DL 324.328 343.357 324.285 -343.388 DL 324.367 343.321 324.328 343.357 DL 324.401 343.281 324.367 -343.321 DL 324.429 343.236 324.401 343.281 DL 324.452 343.189 324.429 -343.236 DL 324.469 343.139 324.452 343.189 DL 324.48 343.087 324.469 -343.139 DL 324.484 343.035 324.48 343.087 DL 324.482 342.984 324.484 -343.035 DL 324.473 342.932 324.482 342.984 DL 324.458 342.882 324.473 -342.932 DL 324.436 342.834 324.458 342.882 DL 324.409 342.789 324.436 -342.834 DL 324.377 342.748 324.409 342.789 DL 324.339 342.711 324.377 -342.748 DL 324.298 342.68 324.339 342.711 DL 324.252 342.653 324.298 -342.68 DL 324.204 342.633 324.252 342.653 DL 324.154 342.619 324.204 -342.633 DL 324.102 342.611 324.154 342.619 DL 324.05 342.609 324.102 -342.611 DL 323.998 342.614 324.05 342.609 DL 323.947 342.626 323.998 -342.614 DL 323.897 342.644 323.947 342.626 DL 323.85 342.667 323.897 -342.644 DL 323.806 342.697 323.85 342.667 DL 323.767 342.731 323.806 -342.697 DL 323.731 342.771 323.767 342.731 DL 323.701 342.814 323.731 -342.771 DL 323.677 342.861 323.701 342.814 DL 323.658 342.91 323.677 -342.861 DL 323.646 342.961 323.658 342.91 DL 323.64 343.013 323.646 -342.961 DL 323.64 343.065 323.64 343.013 DL 323.647 343.117 323.64 -343.065 DL 323.661 343.167 323.647 343.117 DL 323.68 343.216 323.661 -343.167 DL 323.706 343.262 323.68 343.216 DL 323.737 343.304 323.706 -343.262 DL 323.773 343.342 323.737 343.304 DL 323.813 343.375 323.773 -343.342 DL 323.858 343.403 323.813 343.375 DL 323.905 343.425 323.858 -343.403 DL 323.955 343.441 323.905 343.425 DL 324.006 343.451 323.955 -343.441 DL 324.059 343.454 324.006 343.451 DL .45 LW 324.061 343.031 -324.061 332.877 DL 337.6 329.493 327.446 329.493 DL 339.292 332.877 -339.292 326.108 DL .75 LW 337.6 332.877 337.6 326.108 DL 324.061 331.185 -324.061 331.185 DL 323.984 331.19 324.061 331.185 DL 323.881 331.207 -323.984 331.19 DL 323.78 331.237 323.881 331.207 DL 323.684 331.278 -323.78 331.237 DL 323.594 331.331 323.684 331.278 DL 323.51 331.395 -323.594 331.331 DL 323.435 331.468 323.51 331.395 DL 323.37 331.55 -323.435 331.468 DL 323.315 331.64 323.37 331.55 DL 323.272 331.735 -323.315 331.64 DL 323.241 331.835 323.272 331.735 DL 323.222 331.938 -323.241 331.835 DL 323.216 332.041 323.222 331.938 DL 323.223 332.145 -323.216 332.041 DL 323.243 332.248 323.223 332.145 DL 323.275 332.347 -323.243 332.248 DL 323.319 332.441 323.275 332.347 DL 323.375 332.529 -323.319 332.441 DL 323.441 332.61 323.375 332.529 DL 323.516 332.681 -323.441 332.61 DL 323.6 332.743 323.516 332.681 DL 323.691 332.794 323.6 -332.743 DL 323.787 332.833 323.691 332.794 DL 323.888 332.86 323.787 -332.833 DL 323.991 332.875 323.888 332.86 DL 324.095 332.876 323.991 -332.875 DL 324.199 332.865 324.095 332.876 DL 324.3 332.841 324.199 -332.865 DL 324.399 332.804 324.3 332.841 DL 324.492 332.756 324.399 -332.804 DL 324.578 332.697 324.492 332.756 DL 324.657 332.627 324.578 -332.697 DL 324.726 332.549 324.657 332.627 DL 324.786 332.462 324.726 -332.549 DL 324.834 332.369 324.786 332.462 DL 324.87 332.271 324.834 -332.369 DL 324.895 332.169 324.87 332.271 DL 324.906 332.065 324.895 -332.169 DL 324.905 331.962 324.906 332.065 DL 324.89 331.859 324.905 -331.962 DL 324.863 331.758 324.89 331.859 DL 324.824 331.661 324.863 -331.758 DL 324.774 331.57 324.824 331.661 DL 324.712 331.487 324.774 -331.57 DL 324.64 331.411 324.712 331.487 DL 324.56 331.345 324.64 -331.411 DL 324.472 331.289 324.56 331.345 DL 324.378 331.245 324.472 -331.289 DL 324.279 331.213 324.378 331.245 DL 324.176 331.193 324.279 -331.213 DL 324.072 331.186 324.176 331.193 DL 327.446 329.493 322.369 -331.185 DL 324.061 326.108 324.061 326.108 DL 323.984 326.113 324.061 -326.108 DL 323.881 326.13 323.984 326.113 DL 323.78 326.16 323.881 -326.13 DL 323.684 326.201 323.78 326.16 DL 323.594 326.254 323.684 -326.201 DL 323.51 326.318 323.594 326.254 DL 323.435 326.391 323.51 -326.318 DL 323.37 326.473 323.435 326.391 DL 323.315 326.563 323.37 -326.473 DL 323.272 326.658 323.315 326.563 DL 323.241 326.758 323.272 -326.658 DL 323.222 326.861 323.241 326.758 DL 323.216 326.964 323.222 -326.861 DL 323.223 327.068 323.216 326.964 DL 323.243 327.171 323.223 -327.068 DL 323.275 327.27 323.243 327.171 DL 323.319 327.364 323.275 -327.27 DL 323.375 327.452 323.319 327.364 DL 323.441 327.533 323.375 -327.452 DL 323.516 327.604 323.441 327.533 DL 323.6 327.666 323.516 -327.604 DL 323.691 327.717 323.6 327.666 DL 323.787 327.756 323.691 -327.717 DL 323.888 327.783 323.787 327.756 DL 323.991 327.798 323.888 -327.783 DL 324.095 327.799 323.991 327.798 DL 324.199 327.788 324.095 -327.799 DL 324.3 327.764 324.199 327.788 DL 324.399 327.727 324.3 -327.764 DL 324.492 327.679 324.399 327.727 DL 324.578 327.62 324.492 -327.679 DL 324.657 327.55 324.578 327.62 DL 324.726 327.472 324.657 -327.55 DL 324.786 327.385 324.726 327.472 DL 324.834 327.292 324.786 -327.385 DL 324.87 327.194 324.834 327.292 DL 324.895 327.092 324.87 -327.194 DL 324.906 326.988 324.895 327.092 DL 324.905 326.885 324.906 -326.988 DL 324.89 326.782 324.905 326.885 DL 324.863 326.681 324.89 -326.782 DL 324.824 326.584 324.863 326.681 DL 324.774 326.493 324.824 -326.584 DL 324.712 326.41 324.774 326.493 DL 324.64 326.334 324.712 -326.41 DL 324.56 326.268 324.64 326.334 DL 324.472 326.212 324.56 -326.268 DL 324.378 326.168 324.472 326.212 DL 324.279 326.136 324.378 -326.168 DL 324.176 326.116 324.279 326.136 DL 324.072 326.109 324.176 -326.116 DL .45 LW 359.6 329.493 359.6 343.031 DL 339.292 329.493 359.6 -329.493 DL 339.292 346.416 339.292 339.646 DL .75 LW 337.6 346.416 337.6 -339.646 DL .45 LW 303.754 343.031 337.6 343.031 DL 303.754 248.262 -303.754 343.031 DL 359.6 343.031 339.292 343.031 DL 359.6 363.339 359.6 -343.031 DL 371.446 363.339 359.6 363.339 DL .75 LW 459.446 270.262 -459.446 266.877 DL 461.138 270.262 459.446 270.262 DL 462.831 268.57 -461.138 270.262 DL 461.138 266.877 462.831 268.57 DL 459.446 266.877 -461.138 266.877 DL F4(DOWN)436.706 265.185 Q .45 LW 459.446 268.57 -428.985 268.57 DL 432.369 275.339 425.6 275.339 DL 432.369 349.8 432.369 -275.339 DL 445.908 349.8 432.369 349.8 DL 405.292 275.339 398.523 -275.339 DL(O)419.608 279.589 Q(D)407.449 279.589 Q 424.39 266.372 421.91 -266.372 DL(O)419.608 272.82 Q .75 LW 427.292 270.262 427.292 270.262 DL -427.369 270.26 427.292 270.262 DL 427.575 270.236 427.369 270.26 DL -427.776 270.188 427.575 270.236 DL 427.97 270.115 427.776 270.188 DL -428.154 270.02 427.97 270.115 DL 428.325 269.902 428.154 270.02 DL -428.48 269.765 428.325 269.902 DL 428.618 269.611 428.48 269.765 DL -428.736 269.44 428.618 269.611 DL 428.833 269.257 428.736 269.44 DL -428.907 269.064 428.833 269.257 DL 428.956 268.863 428.907 269.064 DL -428.981 268.658 428.956 268.863 DL 428.981 268.452 428.981 268.658 DL -428.955 268.247 428.981 268.452 DL 428.905 268.047 428.955 268.247 DL -428.831 267.855 428.905 268.047 DL 428.733 267.674 428.831 267.855 DL -428.615 267.506 428.733 267.674 DL 428.476 267.354 428.615 267.506 DL -428.32 267.219 428.476 267.354 DL 428.149 267.105 428.32 267.219 DL -427.965 267.013 428.149 267.105 DL 427.771 266.944 427.965 267.013 DL -427.569 266.9 427.771 266.944 DL 427.364 266.88 427.569 266.9 DL 427.158 -266.885 427.364 266.88 DL 426.954 266.916 427.158 266.885 DL 426.755 -266.971 426.954 266.916 DL 426.563 267.05 426.755 266.971 DL 426.383 -267.152 426.563 267.05 DL 426.216 267.275 426.383 267.152 DL 426.065 -267.417 426.216 267.275 DL 425.932 267.576 426.065 267.417 DL 425.82 -267.75 425.932 267.576 DL 425.729 267.937 425.82 267.75 DL 425.662 -268.132 425.729 267.937 DL 425.619 268.335 425.662 268.132 DL 425.602 -268.541 425.619 268.335 DL 425.609 268.746 425.602 268.541 DL 425.641 -268.95 425.609 268.746 DL 425.698 269.148 425.641 268.95 DL 425.779 -269.337 425.698 269.148 DL 425.882 269.515 425.779 269.337 DL 426.007 -269.679 425.882 269.515 DL 426.15 269.827 426.007 269.679 DL 426.311 -269.955 426.15 269.827 DL 426.486 270.063 426.311 269.955 DL 426.673 -270.149 426.486 270.063 DL 426.87 270.211 426.673 270.149 DL 427.072 -270.249 426.87 270.211 DL 427.278 270.262 427.072 270.249 DL(CK)406.857 -272.82 Q 403.6 270.262 403.6 270.262 DL 403.677 270.26 403.6 270.262 DL -403.883 270.236 403.677 270.26 DL 404.084 270.188 403.883 270.236 DL -404.278 270.115 404.084 270.188 DL 404.462 270.02 404.278 270.115 DL -404.633 269.902 404.462 270.02 DL 404.788 269.765 404.633 269.902 DL -404.926 269.611 404.788 269.765 DL 405.044 269.44 404.926 269.611 DL -405.141 269.257 405.044 269.44 DL 405.215 269.064 405.141 269.257 DL -405.264 268.863 405.215 269.064 DL 405.289 268.658 405.264 268.863 DL -405.289 268.452 405.289 268.658 DL 405.263 268.247 405.289 268.452 DL -405.213 268.047 405.263 268.247 DL 405.139 267.855 405.213 268.047 DL -405.041 267.674 405.139 267.855 DL 404.923 267.506 405.041 267.674 DL -404.784 267.354 404.923 267.506 DL 404.628 267.219 404.784 267.354 DL -404.457 267.105 404.628 267.219 DL 404.273 267.013 404.457 267.105 DL -404.079 266.944 404.273 267.013 DL 403.877 266.9 404.079 266.944 DL -403.672 266.88 403.877 266.9 DL 403.466 266.885 403.672 266.88 DL -403.262 266.916 403.466 266.885 DL 403.063 266.971 403.262 266.916 DL -402.871 267.05 403.063 266.971 DL 402.691 267.152 402.871 267.05 DL -402.524 267.275 402.691 267.152 DL 402.373 267.417 402.524 267.275 DL -402.24 267.576 402.373 267.417 DL 402.128 267.75 402.24 267.576 DL -402.037 267.937 402.128 267.75 DL 401.97 268.132 402.037 267.937 DL -401.927 268.335 401.97 268.132 DL 401.91 268.541 401.927 268.335 DL -401.917 268.746 401.91 268.541 DL 401.949 268.95 401.917 268.746 DL -402.006 269.148 401.949 268.95 DL 402.087 269.337 402.006 269.148 DL -402.19 269.515 402.087 269.337 DL 402.315 269.679 402.19 269.515 DL -402.458 269.827 402.315 269.679 DL 402.619 269.955 402.458 269.827 DL -402.794 270.063 402.619 269.955 DL 402.981 270.149 402.794 270.063 DL -403.178 270.211 402.981 270.149 DL 403.38 270.249 403.178 270.211 DL -403.586 270.262 403.38 270.249 DL(R)413.146 266.916 Q 415.446 258.416 -415.446 258.416 DL 415.524 258.414 415.446 258.416 DL 415.729 258.39 -415.524 258.414 DL 415.93 258.342 415.729 258.39 DL 416.124 258.269 -415.93 258.342 DL 416.308 258.173 416.124 258.269 DL 416.479 258.056 -416.308 258.173 DL 416.635 257.919 416.479 258.056 DL 416.773 257.764 -416.635 257.919 DL 416.891 257.594 416.773 257.764 DL 416.988 257.411 -416.891 257.594 DL 417.062 257.217 416.988 257.411 DL 417.111 257.016 -417.062 257.217 DL 417.136 256.811 417.111 257.016 DL 417.136 256.605 -417.136 256.811 DL 417.11 256.4 417.136 256.605 DL 417.06 256.2 417.11 -256.4 DL 416.986 256.008 417.06 256.2 DL 416.888 255.826 416.986 256.008 -DL 416.77 255.658 416.888 255.826 DL 416.631 255.506 416.77 255.658 DL -416.475 255.372 416.631 255.506 DL 416.303 255.258 416.475 255.372 DL -416.119 255.165 416.303 255.258 DL 415.925 255.097 416.119 255.165 DL -415.724 255.052 415.925 255.097 DL 415.518 255.032 415.724 255.052 DL -415.312 255.037 415.518 255.032 DL 415.108 255.068 415.312 255.037 DL -414.908 255.123 415.108 255.068 DL 414.717 255.202 414.908 255.123 DL -414.536 255.304 414.717 255.202 DL 414.369 255.427 414.536 255.304 DL -414.218 255.569 414.369 255.427 DL 414.085 255.728 414.218 255.569 DL -413.973 255.903 414.085 255.728 DL 413.882 256.089 413.973 255.903 DL -413.815 256.285 413.882 256.089 DL 413.772 256.487 413.815 256.285 DL -413.755 256.693 413.772 256.487 DL 413.762 256.899 413.755 256.693 DL -413.794 257.103 413.762 256.899 DL 413.851 257.301 413.794 257.103 DL -413.932 257.49 413.851 257.301 DL 414.035 257.669 413.932 257.49 DL -414.16 257.833 414.035 257.669 DL 414.303 257.98 414.16 257.833 DL -414.464 258.109 414.303 257.98 DL 414.639 258.217 414.464 258.109 DL -414.827 258.303 414.639 258.217 DL 415.023 258.365 414.827 258.303 DL -415.226 258.403 415.023 258.365 DL 415.432 258.416 415.226 258.403 DL -405.292 278.723 405.292 258.416 DL 425.6 278.723 405.292 278.723 DL -425.6 258.416 425.6 278.723 DL 405.292 258.416 425.6 258.416 DL(C) -322.503 297.339 Q F5(D).669 1.6 M F6(2).157 E F4(C)322.503 310.877 Q F5 -(D).669 1.6 M F6(1).157 E F4(C)322.503 255.896 Q F5(D).669 1.6 M F6(2) -.157 E F4(C)322.503 242.358 Q F5(D).669 1.6 M F6(1).157 E F4(DP)335.238 -265.223 Q F6(1).344 1.6 M .45 LW 286.831 265.185 286.831 271.954 DL .75 -LW 285.138 275.339 288.523 275.339 DL 285.138 273.646 285.138 275.339 DL -286.831 271.954 285.138 273.646 DL 288.523 273.646 286.831 271.954 DL -288.523 275.339 288.523 273.646 DL F4(AGND)276.235 285.531 Q(DP)270.93 -271.993 Q F6(2).344 1.6 M F4(PN)144.402 312.57 Q(DP)207.756 320.204 Q F6 -(2).344 1.6 M F4(C)170.379 309.185 Q F5(S).529 1.6 M F4(C)212.318 305.8 -Q F5(C).254 1.6 M F4(C)257.997 285.493 Q F5(O).288 1.6 M F4(C)251.202 -256.723 Q F5(F).579 1.6 M 268.215 234.723 271.6 234.723 DL 268.215 -233.031 268.215 234.723 DL 269.908 231.339 268.215 233.031 DL 271.6 -233.031 269.908 231.339 DL 271.6 234.723 271.6 233.031 DL F4(A)267.856 -229.646 Q 269.908 248.685 269.908 248.685 DL 269.934 248.684 269.908 -248.685 DL 269.986 248.677 269.934 248.684 DL 270.037 248.664 269.986 -248.677 DL 270.086 248.644 270.037 248.664 DL 270.132 248.619 270.086 -248.644 DL 270.175 248.588 270.132 248.619 DL 270.214 248.552 270.175 -248.588 DL 270.248 248.512 270.214 248.552 DL 270.276 248.467 270.248 -248.512 DL 270.299 248.42 270.276 248.467 DL 270.316 248.37 270.299 -248.42 DL 270.327 248.318 270.316 248.37 DL 270.331 248.266 270.327 -248.318 DL 270.329 248.215 270.331 248.266 DL 270.32 248.163 270.329 -248.215 DL 270.305 248.113 270.32 248.163 DL 270.283 248.065 270.305 -248.113 DL 270.256 248.02 270.283 248.065 DL 270.224 247.979 270.256 -248.02 DL 270.186 247.942 270.224 247.979 DL 270.145 247.911 270.186 -247.942 DL 270.099 247.884 270.145 247.911 DL 270.051 247.864 270.099 -247.884 DL 270.001 247.85 270.051 247.864 DL 269.949 247.842 270.001 -247.85 DL 269.897 247.84 269.949 247.842 DL 269.845 247.845 269.897 -247.84 DL 269.794 247.857 269.845 247.845 DL 269.744 247.875 269.794 -247.857 DL 269.697 247.898 269.744 247.875 DL 269.653 247.928 269.697 -247.898 DL 269.614 247.962 269.653 247.928 DL 269.578 248.002 269.614 -247.962 DL 269.548 248.045 269.578 248.002 DL 269.524 248.092 269.548 -248.045 DL 269.505 248.141 269.524 248.092 DL 269.493 248.192 269.505 -248.141 DL 269.487 248.244 269.493 248.192 DL 269.487 248.296 269.487 -248.244 DL 269.494 248.348 269.487 248.296 DL 269.508 248.398 269.494 -248.348 DL 269.527 248.447 269.508 248.398 DL 269.553 248.493 269.527 -248.447 DL 269.584 248.535 269.553 248.493 DL 269.62 248.573 269.584 -248.535 DL 269.66 248.606 269.62 248.573 DL 269.705 248.634 269.66 -248.606 DL 269.752 248.656 269.705 248.634 DL 269.802 248.672 269.752 -248.656 DL 269.853 248.682 269.802 248.672 DL 269.906 248.685 269.853 -248.682 DL .45 LW 269.908 234.723 269.908 248.262 DL 310.523 302.416 -337.6 302.416 DL 310.523 397.185 310.523 302.416 DL 359.6 302.416 -339.292 302.416 DL 359.6 282.108 359.6 302.416 DL 371.446 282.108 359.6 -282.108 DL .75 LW 351.138 275.762 351.138 275.762 DL 351.164 275.761 -351.138 275.762 DL 351.216 275.754 351.164 275.761 DL 351.267 275.741 -351.216 275.754 DL 351.316 275.721 351.267 275.741 DL 351.362 275.696 -351.316 275.721 DL 351.405 275.665 351.362 275.696 DL 351.444 275.629 -351.405 275.665 DL 351.478 275.589 351.444 275.629 DL 351.506 275.544 -351.478 275.589 DL 351.529 275.497 351.506 275.544 DL 351.546 275.447 -351.529 275.497 DL 351.557 275.395 351.546 275.447 DL 351.561 275.343 -351.557 275.395 DL 351.559 275.292 351.561 275.343 DL 351.55 275.24 -351.559 275.292 DL 351.535 275.19 351.55 275.24 DL 351.513 275.142 -351.535 275.19 DL 351.486 275.097 351.513 275.142 DL 351.454 275.056 -351.486 275.097 DL 351.416 275.019 351.454 275.056 DL 351.375 274.988 -351.416 275.019 DL 351.329 274.961 351.375 274.988 DL 351.281 274.941 -351.329 274.961 DL 351.231 274.927 351.281 274.941 DL 351.179 274.919 -351.231 274.927 DL 351.127 274.917 351.179 274.919 DL 351.075 274.922 -351.127 274.917 DL 351.024 274.934 351.075 274.922 DL 350.974 274.952 -351.024 274.934 DL 350.927 274.975 350.974 274.952 DL 350.883 275.005 -350.927 274.975 DL 350.844 275.039 350.883 275.005 DL 350.808 275.079 -350.844 275.039 DL 350.778 275.122 350.808 275.079 DL 350.754 275.169 -350.778 275.122 DL 350.735 275.218 350.754 275.169 DL 350.723 275.269 -350.735 275.218 DL 350.717 275.321 350.723 275.269 DL 350.717 275.373 -350.717 275.321 DL 350.724 275.425 350.717 275.373 DL 350.738 275.475 -350.724 275.425 DL 350.757 275.524 350.738 275.475 DL 350.783 275.57 -350.757 275.524 DL 350.814 275.612 350.783 275.57 DL 350.85 275.65 -350.814 275.612 DL 350.89 275.683 350.85 275.65 DL 350.935 275.711 -350.89 275.683 DL 350.982 275.733 350.935 275.711 DL 351.032 275.749 -350.982 275.733 DL 351.083 275.759 351.032 275.749 DL 351.136 275.762 -351.083 275.759 DL .45 LW 351.138 275.339 344.369 275.339 DL .75 LW -354.523 301.993 354.523 301.993 DL 354.498 301.995 354.523 301.993 DL -354.446 302.002 354.498 301.995 DL 354.395 302.015 354.446 302.002 DL -354.346 302.035 354.395 302.015 DL 354.3 302.06 354.346 302.035 DL -354.257 302.091 354.3 302.06 DL 354.218 302.127 354.257 302.091 DL -354.184 302.167 354.218 302.127 DL 354.156 302.212 354.184 302.167 DL -354.133 302.259 354.156 302.212 DL 354.116 302.309 354.133 302.259 DL -354.105 302.361 354.116 302.309 DL 354.101 302.413 354.105 302.361 DL -354.103 302.464 354.101 302.413 DL 354.112 302.516 354.103 302.464 DL -354.127 302.566 354.112 302.516 DL 354.149 302.614 354.127 302.566 DL -354.176 302.659 354.149 302.614 DL 354.208 302.7 354.176 302.659 DL -354.246 302.737 354.208 302.7 DL 354.287 302.768 354.246 302.737 DL -354.333 302.795 354.287 302.768 DL 354.381 302.815 354.333 302.795 DL -354.431 302.829 354.381 302.815 DL 354.483 302.837 354.431 302.829 DL -354.535 302.839 354.483 302.837 DL 354.587 302.834 354.535 302.839 DL -354.638 302.822 354.587 302.834 DL 354.688 302.804 354.638 302.822 DL -354.735 302.781 354.688 302.804 DL 354.779 302.751 354.735 302.781 DL -354.818 302.717 354.779 302.751 DL 354.854 302.677 354.818 302.717 DL -354.884 302.634 354.854 302.677 DL 354.908 302.587 354.884 302.634 DL -354.927 302.538 354.908 302.587 DL 354.939 302.487 354.927 302.538 DL -354.945 302.435 354.939 302.487 DL 354.945 302.383 354.945 302.435 DL -354.938 302.331 354.945 302.383 DL 354.924 302.281 354.938 302.331 DL -354.905 302.232 354.924 302.281 DL 354.879 302.186 354.905 302.232 DL -354.848 302.144 354.879 302.186 DL 354.812 302.106 354.848 302.144 DL -354.772 302.073 354.812 302.106 DL 354.727 302.045 354.772 302.073 DL -354.68 302.023 354.727 302.045 DL 354.63 302.007 354.68 302.023 DL -354.579 301.997 354.63 302.007 DL 354.526 301.994 354.579 301.997 DL .45 -LW 354.523 302.416 354.523 293.954 DL .75 LW 351.138 290.57 349.446 -295.646 DL 352.831 293.954 352.831 293.954 DL 352.835 294.032 352.831 -293.954 DL 352.85 294.135 352.835 294.032 DL 352.878 294.236 352.85 -294.135 DL 352.918 294.332 352.878 294.236 DL 352.97 294.422 352.918 -294.332 DL 353.032 294.506 352.97 294.422 DL 353.105 294.581 353.032 -294.506 DL 353.186 294.646 353.105 294.581 DL 353.274 294.701 353.186 -294.646 DL 353.369 294.744 353.274 294.701 DL 353.468 294.775 353.369 -294.744 DL 353.571 294.794 353.468 294.775 DL 353.675 294.8 353.571 -294.794 DL 353.779 294.793 353.675 294.8 DL 353.881 294.773 353.779 -294.793 DL 353.981 294.741 353.881 294.773 DL 354.076 294.697 353.981 -294.741 DL 354.165 294.641 354.076 294.697 DL 354.246 294.575 354.165 -294.641 DL 354.319 294.5 354.246 294.575 DL 354.382 294.416 354.319 -294.5 DL 354.434 294.325 354.382 294.416 DL 354.475 294.229 354.434 -294.325 DL 354.504 294.128 354.475 294.229 DL 354.519 294.025 354.504 -294.128 DL 354.523 293.921 354.519 294.025 DL 354.513 293.817 354.523 -293.921 DL 354.49 293.716 354.513 293.817 DL 354.455 293.617 354.49 -293.716 DL 354.409 293.524 354.455 293.617 DL 354.351 293.438 354.409 -293.524 DL 354.282 293.359 354.351 293.438 DL 354.205 293.29 354.282 -293.359 DL 354.119 293.23 354.205 293.29 DL 354.027 293.182 354.119 -293.23 DL 353.93 293.146 354.027 293.182 DL 353.828 293.121 353.93 -293.146 DL 353.724 293.11 353.828 293.121 DL 353.621 293.111 353.724 -293.11 DL 353.517 293.126 353.621 293.111 DL 353.416 293.153 353.517 -293.126 DL 353.319 293.192 353.416 293.153 DL 353.227 293.242 353.319 -293.192 DL 353.143 293.304 353.227 293.242 DL 353.066 293.376 353.143 -293.304 DL 352.999 293.456 353.066 293.376 DL 352.942 293.544 352.999 -293.456 DL 352.896 293.638 352.942 293.544 DL 352.862 293.737 352.896 -293.638 DL 352.841 293.84 352.862 293.737 DL 352.832 293.944 352.841 -293.84 DL .45 LW 324.061 326.108 324.061 319.339 DL .75 LW 359.6 301.993 -359.6 301.993 DL 359.575 301.995 359.6 301.993 DL 359.523 302.002 -359.575 301.995 DL 359.472 302.015 359.523 302.002 DL 359.423 302.035 -359.472 302.015 DL 359.377 302.06 359.423 302.035 DL 359.334 302.091 -359.377 302.06 DL 359.295 302.127 359.334 302.091 DL 359.261 302.167 -359.295 302.127 DL 359.233 302.212 359.261 302.167 DL 359.21 302.259 -359.233 302.212 DL 359.193 302.309 359.21 302.259 DL 359.182 302.361 -359.193 302.309 DL 359.178 302.413 359.182 302.361 DL 359.18 302.464 -359.178 302.413 DL 359.189 302.516 359.18 302.464 DL 359.204 302.566 -359.189 302.516 DL 359.226 302.614 359.204 302.566 DL 359.253 302.659 -359.226 302.614 DL 359.285 302.7 359.253 302.659 DL 359.323 302.737 -359.285 302.7 DL 359.364 302.768 359.323 302.737 DL 359.41 302.795 -359.364 302.768 DL 359.458 302.815 359.41 302.795 DL 359.508 302.829 -359.458 302.815 DL 359.56 302.837 359.508 302.829 DL 359.612 302.839 -359.56 302.837 DL 359.664 302.834 359.612 302.839 DL 359.715 302.822 -359.664 302.834 DL 359.765 302.804 359.715 302.822 DL 359.812 302.781 -359.765 302.804 DL 359.856 302.751 359.812 302.781 DL 359.895 302.717 -359.856 302.751 DL 359.931 302.677 359.895 302.717 DL 359.961 302.634 -359.931 302.677 DL 359.985 302.587 359.961 302.634 DL 360.004 302.538 -359.985 302.587 DL 360.016 302.487 360.004 302.538 DL 360.022 302.435 -360.016 302.487 DL 360.022 302.383 360.022 302.435 DL 360.015 302.331 -360.022 302.383 DL 360.001 302.281 360.015 302.331 DL 359.982 302.232 -360.001 302.281 DL 359.956 302.186 359.982 302.232 DL 359.925 302.144 -359.956 302.186 DL 359.889 302.106 359.925 302.144 DL 359.849 302.073 -359.889 302.106 DL 359.804 302.045 359.849 302.073 DL 359.757 302.023 -359.804 302.045 DL 359.707 302.007 359.757 302.023 DL 359.656 301.997 -359.707 302.007 DL 359.603 301.994 359.656 301.997 DL 324.061 301.993 -324.061 301.993 DL 324.036 301.995 324.061 301.993 DL 323.984 302.002 -324.036 301.995 DL 323.933 302.015 323.984 302.002 DL 323.884 302.035 -323.933 302.015 DL 323.838 302.06 323.884 302.035 DL 323.795 302.091 -323.838 302.06 DL 323.756 302.127 323.795 302.091 DL 323.722 302.167 -323.756 302.127 DL 323.694 302.212 323.722 302.167 DL 323.671 302.259 -323.694 302.212 DL 323.654 302.309 323.671 302.259 DL 323.643 302.361 -323.654 302.309 DL 323.639 302.413 323.643 302.361 DL 323.641 302.464 -323.639 302.413 DL 323.65 302.516 323.641 302.464 DL 323.665 302.566 -323.65 302.516 DL 323.687 302.614 323.665 302.566 DL 323.714 302.659 -323.687 302.614 DL 323.746 302.7 323.714 302.659 DL 323.784 302.737 -323.746 302.7 DL 323.825 302.768 323.784 302.737 DL 323.871 302.795 -323.825 302.768 DL 323.919 302.815 323.871 302.795 DL 323.969 302.829 -323.919 302.815 DL 324.021 302.837 323.969 302.829 DL 324.073 302.839 -324.021 302.837 DL 324.125 302.834 324.073 302.839 DL 324.176 302.822 -324.125 302.834 DL 324.226 302.804 324.176 302.822 DL 324.273 302.781 -324.226 302.804 DL 324.317 302.751 324.273 302.781 DL 324.356 302.717 -324.317 302.751 DL 324.392 302.677 324.356 302.717 DL 324.422 302.634 -324.392 302.677 DL 324.446 302.587 324.422 302.634 DL 324.465 302.538 -324.446 302.587 DL 324.477 302.487 324.465 302.538 DL 324.483 302.435 -324.477 302.487 DL 324.483 302.383 324.483 302.435 DL 324.476 302.331 -324.483 302.383 DL 324.462 302.281 324.476 302.331 DL 324.443 302.232 -324.462 302.281 DL 324.417 302.186 324.443 302.232 DL 324.386 302.144 -324.417 302.186 DL 324.35 302.106 324.386 302.144 DL 324.31 302.073 -324.35 302.106 DL 324.265 302.045 324.31 302.073 DL 324.218 302.023 -324.265 302.045 DL 324.168 302.007 324.218 302.023 DL 324.117 301.997 -324.168 302.007 DL 324.064 301.994 324.117 301.997 DL .45 LW 324.061 -302.416 324.061 312.57 DL 337.6 315.954 327.446 315.954 DL 339.292 -312.57 339.292 319.339 DL .75 LW 337.6 312.57 337.6 319.339 DL 324.061 -314.262 324.061 314.262 DL 324.139 314.258 324.061 314.262 DL 324.242 -314.241 324.139 314.258 DL 324.343 314.211 324.242 314.241 DL 324.439 -314.17 324.343 314.211 DL 324.529 314.117 324.439 314.17 DL 324.613 -314.053 324.529 314.117 DL 324.688 313.98 324.613 314.053 DL 324.753 -313.898 324.688 313.98 DL 324.808 313.808 324.753 313.898 DL 324.851 -313.713 324.808 313.808 DL 324.882 313.613 324.851 313.713 DL 324.901 -313.51 324.882 313.613 DL 324.907 313.407 324.901 313.51 DL 324.9 -313.303 324.907 313.407 DL 324.88 313.2 324.9 313.303 DL 324.848 313.101 -324.88 313.2 DL 324.804 313.007 324.848 313.101 DL 324.748 312.919 -324.804 313.007 DL 324.682 312.838 324.748 312.919 DL 324.607 312.767 -324.682 312.838 DL 324.523 312.705 324.607 312.767 DL 324.432 312.654 -324.523 312.705 DL 324.336 312.615 324.432 312.654 DL 324.235 312.588 -324.336 312.615 DL 324.132 312.573 324.235 312.588 DL 324.028 312.572 -324.132 312.573 DL 323.924 312.583 324.028 312.572 DL 323.823 312.607 -323.924 312.583 DL 323.724 312.644 323.823 312.607 DL 323.631 312.692 -323.724 312.644 DL 323.545 312.751 323.631 312.692 DL 323.466 312.821 -323.545 312.751 DL 323.397 312.899 323.466 312.821 DL 323.337 312.986 -323.397 312.899 DL 323.289 313.079 323.337 312.986 DL 323.253 313.177 -323.289 313.079 DL 323.228 313.279 323.253 313.177 DL 323.217 313.383 -323.228 313.279 DL 323.218 313.486 323.217 313.383 DL 323.233 313.589 -323.218 313.486 DL 323.26 313.69 323.233 313.589 DL 323.299 313.787 -323.26 313.69 DL 323.349 313.878 323.299 313.787 DL 323.411 313.961 -323.349 313.878 DL 323.483 314.037 323.411 313.961 DL 323.563 314.103 -323.483 314.037 DL 323.651 314.159 323.563 314.103 DL 323.745 314.203 -323.651 314.159 DL 323.844 314.235 323.745 314.203 DL 323.947 314.255 -323.844 314.235 DL 324.051 314.262 323.947 314.255 DL 327.446 315.954 -322.369 314.262 DL 324.061 319.339 324.061 319.339 DL 324.139 319.335 -324.061 319.339 DL 324.242 319.318 324.139 319.335 DL 324.343 319.288 -324.242 319.318 DL 324.439 319.247 324.343 319.288 DL 324.529 319.194 -324.439 319.247 DL 324.613 319.13 324.529 319.194 DL 324.688 319.057 -324.613 319.13 DL 324.753 318.975 324.688 319.057 DL 324.808 318.885 -324.753 318.975 DL 324.851 318.79 324.808 318.885 DL 324.882 318.69 -324.851 318.79 DL 324.901 318.587 324.882 318.69 DL 324.907 318.484 -324.901 318.587 DL 324.9 318.38 324.907 318.484 DL 324.88 318.277 324.9 -318.38 DL 324.848 318.178 324.88 318.277 DL 324.804 318.084 324.848 -318.178 DL 324.748 317.996 324.804 318.084 DL 324.682 317.915 324.748 -317.996 DL 324.607 317.844 324.682 317.915 DL 324.523 317.782 324.607 -317.844 DL 324.432 317.731 324.523 317.782 DL 324.336 317.692 324.432 -317.731 DL 324.235 317.665 324.336 317.692 DL 324.132 317.65 324.235 -317.665 DL 324.028 317.649 324.132 317.65 DL 323.924 317.66 324.028 -317.649 DL 323.823 317.684 323.924 317.66 DL 323.724 317.721 323.823 -317.684 DL 323.631 317.769 323.724 317.721 DL 323.545 317.828 323.631 -317.769 DL 323.466 317.898 323.545 317.828 DL 323.397 317.976 323.466 -317.898 DL 323.337 318.063 323.397 317.976 DL 323.289 318.156 323.337 -318.063 DL 323.253 318.254 323.289 318.156 DL 323.228 318.356 323.253 -318.254 DL 323.217 318.46 323.228 318.356 DL 323.218 318.563 323.217 -318.46 DL 323.233 318.666 323.218 318.563 DL 323.26 318.767 323.233 -318.666 DL 323.299 318.864 323.26 318.767 DL 323.349 318.955 323.299 -318.864 DL 323.411 319.038 323.349 318.955 DL 323.483 319.114 323.411 -319.038 DL 323.563 319.18 323.483 319.114 DL 323.651 319.236 323.563 -319.18 DL 323.745 319.28 323.651 319.236 DL 323.844 319.312 323.745 -319.28 DL 323.947 319.332 323.844 319.312 DL 324.051 319.339 323.947 -319.332 DL .45 LW 359.6 315.954 359.6 302.416 DL 339.292 315.954 359.6 -315.954 DL 339.292 299.031 339.292 305.8 DL .75 LW 337.6 299.031 337.6 -305.8 DL 340.985 277.031 340.985 273.646 DL 342.677 277.031 340.985 -277.031 DL 344.369 275.339 342.677 277.031 DL 342.677 273.646 344.369 -275.339 DL 340.985 273.646 342.677 273.646 DL(V)326.962 279.589 Q F5(B) -.669 1.6 M F6(1).151 E 354.523 248.685 354.523 248.685 DL 354.549 -248.684 354.523 248.685 DL 354.601 248.677 354.549 248.684 DL 354.652 -248.664 354.601 248.677 DL 354.701 248.644 354.652 248.664 DL 354.747 -248.619 354.701 248.644 DL 354.79 248.588 354.747 248.619 DL 354.829 -248.552 354.79 248.588 DL 354.863 248.512 354.829 248.552 DL 354.891 -248.467 354.863 248.512 DL 354.914 248.42 354.891 248.467 DL 354.931 -248.37 354.914 248.42 DL 354.942 248.318 354.931 248.37 DL 354.946 -248.266 354.942 248.318 DL 354.944 248.215 354.946 248.266 DL 354.935 -248.163 354.944 248.215 DL 354.92 248.113 354.935 248.163 DL 354.898 -248.065 354.92 248.113 DL 354.871 248.02 354.898 248.065 DL 354.839 -247.979 354.871 248.02 DL 354.801 247.942 354.839 247.979 DL 354.76 -247.911 354.801 247.942 DL 354.714 247.884 354.76 247.911 DL 354.666 -247.864 354.714 247.884 DL 354.616 247.85 354.666 247.864 DL 354.564 -247.842 354.616 247.85 DL 354.512 247.84 354.564 247.842 DL 354.46 -247.845 354.512 247.84 DL 354.409 247.857 354.46 247.845 DL 354.359 -247.875 354.409 247.857 DL 354.312 247.898 354.359 247.875 DL 354.268 -247.928 354.312 247.898 DL 354.229 247.962 354.268 247.928 DL 354.193 -248.002 354.229 247.962 DL 354.163 248.045 354.193 248.002 DL 354.139 -248.092 354.163 248.045 DL 354.12 248.141 354.139 248.092 DL 354.108 -248.192 354.12 248.141 DL 354.102 248.244 354.108 248.192 DL 354.102 -248.296 354.102 248.244 DL 354.109 248.348 354.102 248.296 DL 354.123 -248.398 354.109 248.348 DL 354.142 248.447 354.123 248.398 DL 354.168 -248.493 354.142 248.447 DL 354.199 248.535 354.168 248.493 DL 354.235 -248.573 354.199 248.535 DL 354.275 248.606 354.235 248.573 DL 354.32 -248.634 354.275 248.606 DL 354.367 248.656 354.32 248.634 DL 354.417 -248.672 354.367 248.656 DL 354.468 248.682 354.417 248.672 DL 354.521 -248.685 354.468 248.682 DL .45 LW 354.523 248.262 354.523 256.723 DL -351.138 290.57 351.138 260.108 DL .75 LW 351.138 260.108 349.446 255.031 -DL 352.831 256.723 352.831 256.723 DL 352.835 256.801 352.831 256.723 DL -352.85 256.904 352.835 256.801 DL 352.878 257.005 352.85 256.904 DL -352.918 257.101 352.878 257.005 DL 352.97 257.191 352.918 257.101 DL -353.032 257.275 352.97 257.191 DL 353.105 257.35 353.032 257.275 DL -353.186 257.415 353.105 257.35 DL 353.274 257.47 353.186 257.415 DL -353.369 257.513 353.274 257.47 DL 353.468 257.544 353.369 257.513 DL -353.571 257.563 353.468 257.544 DL 353.675 257.569 353.571 257.563 DL -353.779 257.562 353.675 257.569 DL 353.881 257.542 353.779 257.562 DL -353.981 257.51 353.881 257.542 DL 354.076 257.466 353.981 257.51 DL -354.165 257.41 354.076 257.466 DL 354.246 257.344 354.165 257.41 DL -354.319 257.269 354.246 257.344 DL 354.382 257.185 354.319 257.269 DL -354.434 257.094 354.382 257.185 DL 354.475 256.998 354.434 257.094 DL -354.504 256.897 354.475 256.998 DL 354.519 256.794 354.504 256.897 DL -354.523 256.69 354.519 256.794 DL 354.513 256.586 354.523 256.69 DL -354.49 256.485 354.513 256.586 DL 354.455 256.386 354.49 256.485 DL -354.409 256.293 354.455 256.386 DL 354.351 256.207 354.409 256.293 DL -354.282 256.128 354.351 256.207 DL 354.205 256.059 354.282 256.128 DL -354.119 255.999 354.205 256.059 DL 354.027 255.951 354.119 255.999 DL -353.93 255.915 354.027 255.951 DL 353.828 255.89 353.93 255.915 DL -353.724 255.879 353.828 255.89 DL 353.621 255.88 353.724 255.879 DL -353.517 255.895 353.621 255.88 DL 353.416 255.922 353.517 255.895 DL -353.319 255.961 353.416 255.922 DL 353.227 256.011 353.319 255.961 DL -353.143 256.073 353.227 256.011 DL 353.066 256.145 353.143 256.073 DL -352.999 256.225 353.066 256.145 DL 352.942 256.313 352.999 256.225 DL -352.896 256.407 352.942 256.313 DL 352.862 256.506 352.896 256.407 DL -352.841 256.609 352.862 256.506 DL 352.832 256.713 352.841 256.609 DL -322.369 221.185 325.754 221.185 DL 322.369 222.877 322.369 221.185 DL -324.061 224.57 322.369 222.877 DL 325.754 222.877 324.061 224.57 DL -325.754 221.185 325.754 222.877 DL F7(-)312.929 217.8 Q F4(V)1.152 E F5 -(REF).697 1.6 M .45 LW 324.061 224.57 324.061 231.339 DL .75 LW 359.6 -248.685 359.6 248.685 DL 359.626 248.684 359.6 248.685 DL 359.678 -248.677 359.626 248.684 DL 359.729 248.664 359.678 248.677 DL 359.778 -248.644 359.729 248.664 DL 359.824 248.619 359.778 248.644 DL 359.867 -248.588 359.824 248.619 DL 359.906 248.552 359.867 248.588 DL 359.94 -248.512 359.906 248.552 DL 359.968 248.467 359.94 248.512 DL 359.991 -248.42 359.968 248.467 DL 360.008 248.37 359.991 248.42 DL 360.019 -248.318 360.008 248.37 DL 360.023 248.266 360.019 248.318 DL 360.021 -248.215 360.023 248.266 DL 360.012 248.163 360.021 248.215 DL 359.997 -248.113 360.012 248.163 DL 359.975 248.065 359.997 248.113 DL 359.948 -248.02 359.975 248.065 DL 359.916 247.979 359.948 248.02 DL 359.878 -247.942 359.916 247.979 DL 359.837 247.911 359.878 247.942 DL 359.791 -247.884 359.837 247.911 DL 359.743 247.864 359.791 247.884 DL 359.693 -247.85 359.743 247.864 DL 359.641 247.842 359.693 247.85 DL 359.589 -247.84 359.641 247.842 DL 359.537 247.845 359.589 247.84 DL 359.486 -247.857 359.537 247.845 DL 359.436 247.875 359.486 247.857 DL 359.389 -247.898 359.436 247.875 DL 359.345 247.928 359.389 247.898 DL 359.306 -247.962 359.345 247.928 DL 359.27 248.002 359.306 247.962 DL 359.24 -248.045 359.27 248.002 DL 359.216 248.092 359.24 248.045 DL 359.197 -248.141 359.216 248.092 DL 359.185 248.192 359.197 248.141 DL 359.179 -248.244 359.185 248.192 DL 359.179 248.296 359.179 248.244 DL 359.186 -248.348 359.179 248.296 DL 359.2 248.398 359.186 248.348 DL 359.219 -248.447 359.2 248.398 DL 359.245 248.493 359.219 248.447 DL 359.276 -248.535 359.245 248.493 DL 359.312 248.573 359.276 248.535 DL 359.352 -248.606 359.312 248.573 DL 359.397 248.634 359.352 248.606 DL 359.444 -248.656 359.397 248.634 DL 359.494 248.672 359.444 248.656 DL 359.545 -248.682 359.494 248.672 DL 359.598 248.685 359.545 248.682 DL 324.061 -248.685 324.061 248.685 DL 324.087 248.684 324.061 248.685 DL 324.139 -248.677 324.087 248.684 DL 324.19 248.664 324.139 248.677 DL 324.239 -248.644 324.19 248.664 DL 324.285 248.619 324.239 248.644 DL 324.328 -248.588 324.285 248.619 DL 324.367 248.552 324.328 248.588 DL 324.401 -248.512 324.367 248.552 DL 324.429 248.467 324.401 248.512 DL 324.452 -248.42 324.429 248.467 DL 324.469 248.37 324.452 248.42 DL 324.48 -248.318 324.469 248.37 DL 324.484 248.266 324.48 248.318 DL 324.482 -248.215 324.484 248.266 DL 324.473 248.163 324.482 248.215 DL 324.458 -248.113 324.473 248.163 DL 324.436 248.065 324.458 248.113 DL 324.409 -248.02 324.436 248.065 DL 324.377 247.979 324.409 248.02 DL 324.339 -247.942 324.377 247.979 DL 324.298 247.911 324.339 247.942 DL 324.252 -247.884 324.298 247.911 DL 324.204 247.864 324.252 247.884 DL 324.154 -247.85 324.204 247.864 DL 324.102 247.842 324.154 247.85 DL 324.05 -247.84 324.102 247.842 DL 323.998 247.845 324.05 247.84 DL 323.947 -247.857 323.998 247.845 DL 323.897 247.875 323.947 247.857 DL 323.85 -247.898 323.897 247.875 DL 323.806 247.928 323.85 247.898 DL 323.767 -247.962 323.806 247.928 DL 323.731 248.002 323.767 247.962 DL 323.701 -248.045 323.731 248.002 DL 323.677 248.092 323.701 248.045 DL 323.658 -248.141 323.677 248.092 DL 323.646 248.192 323.658 248.141 DL 323.64 -248.244 323.646 248.192 DL 323.64 248.296 323.64 248.244 DL 323.647 -248.348 323.64 248.296 DL 323.661 248.398 323.647 248.348 DL 323.68 -248.447 323.661 248.398 DL 323.706 248.493 323.68 248.447 DL 323.737 -248.535 323.706 248.493 DL 323.773 248.573 323.737 248.535 DL 323.813 -248.606 323.773 248.573 DL 323.858 248.634 323.813 248.606 DL 323.905 -248.656 323.858 248.634 DL 323.955 248.672 323.905 248.656 DL 324.006 -248.682 323.955 248.672 DL 324.059 248.685 324.006 248.682 DL 269.908 -262.223 269.908 262.223 DL 269.934 262.222 269.908 262.223 DL 269.986 -262.215 269.934 262.222 DL 270.037 262.202 269.986 262.215 DL 270.086 -262.182 270.037 262.202 DL 270.132 262.157 270.086 262.182 DL 270.175 -262.126 270.132 262.157 DL 270.214 262.09 270.175 262.126 DL 270.248 -262.05 270.214 262.09 DL 270.276 262.005 270.248 262.05 DL 270.299 -261.958 270.276 262.005 DL 270.316 261.908 270.299 261.958 DL 270.327 -261.856 270.316 261.908 DL 270.331 261.804 270.327 261.856 DL 270.329 -261.753 270.331 261.804 DL 270.32 261.701 270.329 261.753 DL 270.305 -261.651 270.32 261.701 DL 270.283 261.603 270.305 261.651 DL 270.256 -261.558 270.283 261.603 DL 270.224 261.517 270.256 261.558 DL 270.186 -261.48 270.224 261.517 DL 270.145 261.449 270.186 261.48 DL 270.099 -261.422 270.145 261.449 DL 270.051 261.402 270.099 261.422 DL 270.001 -261.388 270.051 261.402 DL 269.949 261.38 270.001 261.388 DL 269.897 -261.378 269.949 261.38 DL 269.845 261.383 269.897 261.378 DL 269.794 -261.395 269.845 261.383 DL 269.744 261.413 269.794 261.395 DL 269.697 -261.436 269.744 261.413 DL 269.653 261.466 269.697 261.436 DL 269.614 -261.5 269.653 261.466 DL 269.578 261.54 269.614 261.5 DL 269.548 261.583 -269.578 261.54 DL 269.524 261.63 269.548 261.583 DL 269.505 261.679 -269.524 261.63 DL 269.493 261.73 269.505 261.679 DL 269.487 261.782 -269.493 261.73 DL 269.487 261.834 269.487 261.782 DL 269.494 261.886 -269.487 261.834 DL 269.508 261.936 269.494 261.886 DL 269.527 261.985 -269.508 261.936 DL 269.553 262.031 269.527 261.985 DL 269.584 262.073 -269.553 262.031 DL 269.62 262.111 269.584 262.073 DL 269.66 262.144 -269.62 262.111 DL 269.705 262.172 269.66 262.144 DL 269.752 262.194 -269.705 262.172 DL 269.802 262.21 269.752 262.194 DL 269.853 262.22 -269.802 262.21 DL 269.906 262.223 269.853 262.22 DL .45 LW 324.061 -248.262 324.061 238.108 DL 337.6 234.723 327.446 234.723 DL 339.292 -238.108 339.292 231.339 DL .75 LW 337.6 238.108 337.6 231.339 DL 324.061 -236.416 324.061 236.416 DL 323.984 236.421 324.061 236.416 DL 323.881 -236.438 323.984 236.421 DL 323.78 236.468 323.881 236.438 DL 323.684 -236.509 323.78 236.468 DL 323.594 236.562 323.684 236.509 DL 323.51 -236.626 323.594 236.562 DL 323.435 236.699 323.51 236.626 DL 323.37 -236.781 323.435 236.699 DL 323.315 236.871 323.37 236.781 DL 323.272 -236.966 323.315 236.871 DL 323.241 237.066 323.272 236.966 DL 323.222 -237.169 323.241 237.066 DL 323.216 237.272 323.222 237.169 DL 323.223 -237.376 323.216 237.272 DL 323.243 237.479 323.223 237.376 DL 323.275 -237.578 323.243 237.479 DL 323.319 237.672 323.275 237.578 DL 323.375 -237.76 323.319 237.672 DL 323.441 237.841 323.375 237.76 DL 323.516 -237.912 323.441 237.841 DL 323.6 237.974 323.516 237.912 DL 323.691 -238.025 323.6 237.974 DL 323.787 238.064 323.691 238.025 DL 323.888 -238.091 323.787 238.064 DL 323.991 238.106 323.888 238.091 DL 324.095 -238.107 323.991 238.106 DL 324.199 238.096 324.095 238.107 DL 324.3 -238.072 324.199 238.096 DL 324.399 238.035 324.3 238.072 DL 324.492 -237.987 324.399 238.035 DL 324.578 237.928 324.492 237.987 DL 324.657 -237.858 324.578 237.928 DL 324.726 237.78 324.657 237.858 DL 324.786 -237.693 324.726 237.78 DL 324.834 237.6 324.786 237.693 DL 324.87 -237.502 324.834 237.6 DL 324.895 237.4 324.87 237.502 DL 324.906 237.296 -324.895 237.4 DL 324.905 237.193 324.906 237.296 DL 324.89 237.09 -324.905 237.193 DL 324.863 236.989 324.89 237.09 DL 324.824 236.892 -324.863 236.989 DL 324.774 236.801 324.824 236.892 DL 324.712 236.718 -324.774 236.801 DL 324.64 236.642 324.712 236.718 DL 324.56 236.576 -324.64 236.642 DL 324.472 236.52 324.56 236.576 DL 324.378 236.476 -324.472 236.52 DL 324.279 236.444 324.378 236.476 DL 324.176 236.424 -324.279 236.444 DL 324.072 236.417 324.176 236.424 DL 327.446 234.723 -322.369 236.416 DL 324.061 231.339 324.061 231.339 DL 323.984 231.344 -324.061 231.339 DL 323.881 231.361 323.984 231.344 DL 323.78 231.391 -323.881 231.361 DL 323.684 231.432 323.78 231.391 DL 323.594 231.485 -323.684 231.432 DL 323.51 231.549 323.594 231.485 DL 323.435 231.622 -323.51 231.549 DL 323.37 231.704 323.435 231.622 DL 323.315 231.794 -323.37 231.704 DL 323.272 231.889 323.315 231.794 DL 323.241 231.989 -323.272 231.889 DL 323.222 232.092 323.241 231.989 DL 323.216 232.195 -323.222 232.092 DL 323.223 232.299 323.216 232.195 DL 323.243 232.402 -323.223 232.299 DL 323.275 232.501 323.243 232.402 DL 323.319 232.595 -323.275 232.501 DL 323.375 232.683 323.319 232.595 DL 323.441 232.764 -323.375 232.683 DL 323.516 232.835 323.441 232.764 DL 323.6 232.897 -323.516 232.835 DL 323.691 232.948 323.6 232.897 DL 323.787 232.987 -323.691 232.948 DL 323.888 233.014 323.787 232.987 DL 323.991 233.029 -323.888 233.014 DL 324.095 233.03 323.991 233.029 DL 324.199 233.019 -324.095 233.03 DL 324.3 232.995 324.199 233.019 DL 324.399 232.958 324.3 -232.995 DL 324.492 232.91 324.399 232.958 DL 324.578 232.851 324.492 -232.91 DL 324.657 232.781 324.578 232.851 DL 324.726 232.703 324.657 -232.781 DL 324.786 232.616 324.726 232.703 DL 324.834 232.523 324.786 -232.616 DL 324.87 232.425 324.834 232.523 DL 324.895 232.323 324.87 -232.425 DL 324.906 232.219 324.895 232.323 DL 324.905 232.116 324.906 -232.219 DL 324.89 232.013 324.905 232.116 DL 324.863 231.912 324.89 -232.013 DL 324.824 231.815 324.863 231.912 DL 324.774 231.724 324.824 -231.815 DL 324.712 231.641 324.774 231.724 DL 324.64 231.565 324.712 -231.641 DL 324.56 231.499 324.64 231.565 DL 324.472 231.443 324.56 -231.499 DL 324.378 231.399 324.472 231.443 DL 324.279 231.367 324.378 -231.399 DL 324.176 231.347 324.279 231.367 DL 324.072 231.34 324.176 -231.347 DL .45 LW 359.6 234.723 359.6 248.262 DL 339.292 234.723 359.6 -234.723 DL 359.6 248.262 339.292 248.262 DL 359.6 268.57 359.6 248.262 -DL 371.446 268.57 359.6 268.57 DL 339.292 251.646 339.292 244.877 DL .75 -LW 337.6 251.646 337.6 244.877 DL .45 LW 269.908 248.262 269.908 261.8 -DL 337.6 248.262 269.908 248.262 DL .75 LW 149.754 319.339 149.754 -319.339 DL 149.677 319.344 149.754 319.339 DL 149.574 319.361 149.677 -319.344 DL 149.473 319.391 149.574 319.361 DL 149.377 319.432 149.473 -319.391 DL 149.287 319.485 149.377 319.432 DL 149.203 319.549 149.287 -319.485 DL 149.128 319.622 149.203 319.549 DL 149.063 319.704 149.128 -319.622 DL 149.008 319.794 149.063 319.704 DL 148.965 319.889 149.008 -319.794 DL 148.934 319.989 148.965 319.889 DL 148.915 320.092 148.934 -319.989 DL 148.909 320.195 148.915 320.092 DL 148.916 320.299 148.909 -320.195 DL 148.936 320.402 148.916 320.299 DL 148.968 320.501 148.936 -320.402 DL 149.012 320.595 148.968 320.501 DL 149.068 320.683 149.012 -320.595 DL 149.134 320.764 149.068 320.683 DL 149.209 320.835 149.134 -320.764 DL 149.293 320.897 149.209 320.835 DL 149.384 320.948 149.293 -320.897 DL 149.48 320.987 149.384 320.948 DL 149.581 321.014 149.48 -320.987 DL 149.684 321.029 149.581 321.014 DL 149.788 321.03 149.684 -321.029 DL 149.892 321.019 149.788 321.03 DL 149.993 320.995 149.892 -321.019 DL 150.092 320.958 149.993 320.995 DL 150.185 320.91 150.092 -320.958 DL 150.271 320.851 150.185 320.91 DL 150.35 320.781 150.271 -320.851 DL 150.419 320.703 150.35 320.781 DL 150.479 320.616 150.419 -320.703 DL 150.527 320.523 150.479 320.616 DL 150.563 320.425 150.527 -320.523 DL 150.588 320.323 150.563 320.425 DL 150.599 320.219 150.588 -320.323 DL 150.598 320.116 150.599 320.219 DL 150.583 320.013 150.598 -320.116 DL 150.556 319.912 150.583 320.013 DL 150.517 319.815 150.556 -319.912 DL 150.467 319.724 150.517 319.815 DL 150.405 319.641 150.467 -319.724 DL 150.333 319.565 150.405 319.641 DL 150.253 319.499 150.333 -319.565 DL 150.165 319.443 150.253 319.499 DL 150.071 319.399 150.165 -319.443 DL 149.972 319.367 150.071 319.399 DL 149.869 319.347 149.972 -319.367 DL 149.765 319.34 149.869 319.347 DL 153.138 317.646 148.061 -319.339 DL 149.754 314.262 149.754 314.262 DL 149.677 314.267 149.754 -314.262 DL 149.574 314.284 149.677 314.267 DL 149.473 314.314 149.574 -314.284 DL 149.377 314.355 149.473 314.314 DL 149.287 314.408 149.377 -314.355 DL 149.203 314.472 149.287 314.408 DL 149.128 314.545 149.203 -314.472 DL 149.063 314.627 149.128 314.545 DL 149.008 314.717 149.063 -314.627 DL 148.965 314.812 149.008 314.717 DL 148.934 314.912 148.965 -314.812 DL 148.915 315.015 148.934 314.912 DL 148.909 315.118 148.915 -315.015 DL 148.916 315.222 148.909 315.118 DL 148.936 315.325 148.916 -315.222 DL 148.968 315.424 148.936 315.325 DL 149.012 315.518 148.968 -315.424 DL 149.068 315.606 149.012 315.518 DL 149.134 315.687 149.068 -315.606 DL 149.209 315.758 149.134 315.687 DL 149.293 315.82 149.209 -315.758 DL 149.384 315.871 149.293 315.82 DL 149.48 315.91 149.384 -315.871 DL 149.581 315.937 149.48 315.91 DL 149.684 315.952 149.581 -315.937 DL 149.788 315.953 149.684 315.952 DL 149.892 315.942 149.788 -315.953 DL 149.993 315.918 149.892 315.942 DL 150.092 315.881 149.993 -315.918 DL 150.185 315.833 150.092 315.881 DL 150.271 315.774 150.185 -315.833 DL 150.35 315.704 150.271 315.774 DL 150.419 315.626 150.35 -315.704 DL 150.479 315.539 150.419 315.626 DL 150.527 315.446 150.479 -315.539 DL 150.563 315.348 150.527 315.446 DL 150.588 315.246 150.563 -315.348 DL 150.599 315.142 150.588 315.246 DL 150.598 315.039 150.599 -315.142 DL 150.583 314.936 150.598 315.039 DL 150.556 314.835 150.583 -314.936 DL 150.517 314.738 150.556 314.835 DL 150.467 314.647 150.517 -314.738 DL 150.405 314.564 150.467 314.647 DL 150.333 314.488 150.405 -314.564 DL 150.253 314.422 150.333 314.488 DL 150.165 314.366 150.253 -314.422 DL 150.071 314.322 150.165 314.366 DL 149.972 314.29 150.071 -314.322 DL 149.869 314.27 149.972 314.29 DL 149.765 314.263 149.869 -314.27 DL .45 LW 153.138 317.646 161.6 317.646 DL .75 LW 126.061 288.877 -126.061 288.877 DL 126.065 288.955 126.061 288.877 DL 126.08 289.059 -126.065 288.955 DL 126.108 289.159 126.08 289.059 DL 126.148 289.256 -126.108 289.159 DL 126.2 289.346 126.148 289.256 DL 126.263 289.429 -126.2 289.346 DL 126.335 289.504 126.263 289.429 DL 126.416 289.57 -126.335 289.504 DL 126.505 289.624 126.416 289.57 DL 126.6 289.668 -126.505 289.624 DL 126.699 289.699 126.6 289.668 DL 126.802 289.718 -126.699 289.699 DL 126.906 289.724 126.802 289.718 DL 127.01 289.717 -126.906 289.724 DL 127.112 289.697 127.01 289.717 DL 127.212 289.665 -127.112 289.697 DL 127.307 289.621 127.212 289.665 DL 127.396 289.565 -127.307 289.621 DL 127.478 289.499 127.396 289.565 DL 127.551 289.424 -127.478 289.499 DL 127.614 289.34 127.551 289.424 DL 127.666 289.249 -127.614 289.34 DL 127.707 289.152 127.666 289.249 DL 127.736 289.051 -127.707 289.152 DL 127.751 288.948 127.736 289.051 DL 127.755 288.844 -127.751 288.948 DL 127.745 288.74 127.755 288.844 DL 127.722 288.638 -127.745 288.74 DL 127.687 288.54 127.722 288.638 DL 127.64 288.447 -127.687 288.54 DL 127.582 288.36 127.64 288.447 DL 127.514 288.282 -127.582 288.36 DL 127.437 288.212 127.514 288.282 DL 127.351 288.153 -127.437 288.212 DL 127.259 288.104 127.351 288.153 DL 127.161 288.068 -127.259 288.104 DL 127.059 288.043 127.161 288.068 DL 126.956 288.032 -127.059 288.043 DL 126.852 288.033 126.956 288.032 DL 126.748 288.048 -126.852 288.033 DL 126.647 288.075 126.748 288.048 DL 126.55 288.114 -126.647 288.075 DL 126.458 288.165 126.55 288.114 DL 126.373 288.226 -126.458 288.165 DL 126.296 288.298 126.373 288.226 DL 126.229 288.378 -126.296 288.298 DL 126.172 288.466 126.229 288.378 DL 126.126 288.561 -126.172 288.466 DL 126.092 288.66 126.126 288.561 DL 126.071 288.763 -126.092 288.66 DL 126.062 288.867 126.071 288.763 DL 132.831 295.646 -132.831 295.646 DL 132.754 295.651 132.831 295.646 DL 132.65 295.668 -132.754 295.651 DL 132.55 295.698 132.65 295.668 DL 132.453 295.739 -132.55 295.698 DL 132.363 295.792 132.453 295.739 DL 132.28 295.856 -132.363 295.792 DL 132.205 295.93 132.28 295.856 DL 132.139 296.012 -132.205 295.93 DL 132.085 296.101 132.139 296.012 DL 132.041 296.197 -132.085 296.101 DL 132.01 296.297 132.041 296.197 DL 131.991 296.4 -132.01 296.297 DL 131.985 296.503 131.991 296.4 DL 131.992 296.608 -131.985 296.503 DL 132.012 296.71 131.992 296.608 DL 132.044 296.809 -132.012 296.71 DL 132.088 296.904 132.044 296.809 DL 132.144 296.992 -132.088 296.904 DL 132.21 297.072 132.144 296.992 DL 132.285 297.144 -132.21 297.072 DL 132.369 297.206 132.285 297.144 DL 132.46 297.257 -132.369 297.206 DL 132.557 297.296 132.46 297.257 DL 132.658 297.323 -132.557 297.296 DL 132.761 297.338 132.658 297.323 DL 132.865 297.339 -132.761 297.338 DL 132.969 297.328 132.865 297.339 DL 133.071 297.304 -132.969 297.328 DL 133.169 297.267 133.071 297.304 DL 133.262 297.219 -133.169 297.267 DL 133.349 297.159 133.262 297.219 DL 133.427 297.09 -133.349 297.159 DL 133.497 297.011 133.427 297.09 DL 133.556 296.925 -133.497 297.011 DL 133.605 296.832 133.556 296.925 DL 133.641 296.733 -133.605 296.832 DL 133.666 296.632 133.641 296.733 DL 133.677 296.527 -133.666 296.632 DL 133.676 296.424 133.677 296.527 DL 133.661 296.32 -133.676 296.424 DL 133.634 296.22 133.661 296.32 DL 133.595 296.123 -133.634 296.22 DL 133.544 296.032 133.595 296.123 DL 133.483 295.948 -133.544 296.032 DL 133.411 295.872 133.483 295.948 DL 133.331 295.806 -133.411 295.872 DL 133.243 295.751 133.331 295.806 DL 133.148 295.706 -133.243 295.751 DL 133.049 295.674 133.148 295.706 DL 132.946 295.654 -133.049 295.674 DL 132.842 295.647 132.946 295.654 DL 137.908 288.877 -131.138 282.108 DL 132.831 280.416 132.831 280.416 DL 132.754 280.421 -132.831 280.416 DL 132.651 280.438 132.754 280.421 DL 132.55 280.468 -132.651 280.438 DL 132.454 280.509 132.55 280.468 DL 132.364 280.562 -132.454 280.509 DL 132.28 280.626 132.364 280.562 DL 132.205 280.699 -132.28 280.626 DL 132.14 280.781 132.205 280.699 DL 132.085 280.871 -132.14 280.781 DL 132.042 280.966 132.085 280.871 DL 132.011 281.066 -132.042 280.966 DL 131.992 281.169 132.011 281.066 DL 131.986 281.272 -131.992 281.169 DL 131.993 281.376 131.986 281.272 DL 132.013 281.479 -131.993 281.376 DL 132.045 281.578 132.013 281.479 DL 132.089 281.672 -132.045 281.578 DL 132.145 281.76 132.089 281.672 DL 132.211 281.841 -132.145 281.76 DL 132.286 281.912 132.211 281.841 DL 132.37 281.974 -132.286 281.912 DL 132.461 282.025 132.37 281.974 DL 132.557 282.064 -132.461 282.025 DL 132.658 282.091 132.557 282.064 DL 132.761 282.106 -132.658 282.091 DL 132.865 282.107 132.761 282.106 DL 132.969 282.096 -132.865 282.107 DL 133.07 282.072 132.969 282.096 DL 133.169 282.035 -133.07 282.072 DL 133.262 281.987 133.169 282.035 DL 133.348 281.928 -133.262 281.987 DL 133.427 281.858 133.348 281.928 DL 133.496 281.78 -133.427 281.858 DL 133.556 281.693 133.496 281.78 DL 133.604 281.6 -133.556 281.693 DL 133.64 281.502 133.604 281.6 DL 133.665 281.4 133.64 -281.502 DL 133.676 281.296 133.665 281.4 DL 133.675 281.193 133.676 -281.296 DL 133.66 281.09 133.675 281.193 DL 133.633 280.989 133.66 -281.09 DL 133.594 280.892 133.633 280.989 DL 133.544 280.801 133.594 -280.892 DL 133.482 280.718 133.544 280.801 DL 133.41 280.642 133.482 -280.718 DL 133.33 280.576 133.41 280.642 DL 133.242 280.52 133.33 -280.576 DL 133.148 280.476 133.242 280.52 DL 133.049 280.444 133.148 -280.476 DL 132.946 280.424 133.049 280.444 DL 132.842 280.417 132.946 -280.424 DL .45 LW 161.6 288.877 161.6 310.877 DL 137.908 288.877 161.6 -288.877 DL 173.446 314.262 164.985 314.262 DL 175.138 317.646 175.138 -310.877 DL .75 LW 173.446 317.646 173.446 310.877 DL 161.6 315.954 161.6 -315.954 DL 161.523 315.959 161.6 315.954 DL 161.42 315.976 161.523 -315.959 DL 161.319 316.006 161.42 315.976 DL 161.223 316.047 161.319 -316.006 DL 161.133 316.1 161.223 316.047 DL 161.049 316.164 161.133 -316.1 DL 160.974 316.237 161.049 316.164 DL 160.909 316.319 160.974 -316.237 DL 160.854 316.409 160.909 316.319 DL 160.811 316.504 160.854 -316.409 DL 160.78 316.604 160.811 316.504 DL 160.761 316.707 160.78 -316.604 DL 160.755 316.81 160.761 316.707 DL 160.762 316.914 160.755 -316.81 DL 160.782 317.017 160.762 316.914 DL 160.814 317.116 160.782 -317.017 DL 160.858 317.21 160.814 317.116 DL 160.914 317.298 160.858 -317.21 DL 160.98 317.379 160.914 317.298 DL 161.055 317.45 160.98 -317.379 DL 161.139 317.512 161.055 317.45 DL 161.23 317.563 161.139 -317.512 DL 161.326 317.602 161.23 317.563 DL 161.427 317.629 161.326 -317.602 DL 161.53 317.644 161.427 317.629 DL 161.634 317.645 161.53 -317.644 DL 161.738 317.634 161.634 317.645 DL 161.839 317.61 161.738 -317.634 DL 161.938 317.573 161.839 317.61 DL 162.031 317.525 161.938 -317.573 DL 162.117 317.466 162.031 317.525 DL 162.196 317.396 162.117 -317.466 DL 162.265 317.318 162.196 317.396 DL 162.325 317.231 162.265 -317.318 DL 162.373 317.138 162.325 317.231 DL 162.409 317.04 162.373 -317.138 DL 162.434 316.938 162.409 317.04 DL 162.445 316.834 162.434 -316.938 DL 162.444 316.731 162.445 316.834 DL 162.429 316.628 162.444 -316.731 DL 162.402 316.527 162.429 316.628 DL 162.363 316.43 162.402 -316.527 DL 162.313 316.339 162.363 316.43 DL 162.251 316.256 162.313 -316.339 DL 162.179 316.18 162.251 316.256 DL 162.099 316.114 162.179 -316.18 DL 162.011 316.058 162.099 316.114 DL 161.917 316.014 162.011 -316.058 DL 161.818 315.982 161.917 316.014 DL 161.715 315.962 161.818 -315.982 DL 161.611 315.955 161.715 315.962 DL 164.985 314.262 159.908 -315.954 DL 161.6 310.877 161.6 310.877 DL 161.523 310.882 161.6 310.877 -DL 161.42 310.899 161.523 310.882 DL 161.319 310.929 161.42 310.899 DL -161.223 310.97 161.319 310.929 DL 161.133 311.023 161.223 310.97 DL -161.049 311.087 161.133 311.023 DL 160.974 311.16 161.049 311.087 DL -160.909 311.242 160.974 311.16 DL 160.854 311.332 160.909 311.242 DL -160.811 311.427 160.854 311.332 DL 160.78 311.527 160.811 311.427 DL -160.761 311.63 160.78 311.527 DL 160.755 311.733 160.761 311.63 DL -160.762 311.837 160.755 311.733 DL 160.782 311.94 160.762 311.837 DL -160.814 312.039 160.782 311.94 DL 160.858 312.133 160.814 312.039 DL -160.914 312.221 160.858 312.133 DL 160.98 312.302 160.914 312.221 DL -161.055 312.373 160.98 312.302 DL 161.139 312.435 161.055 312.373 DL -161.23 312.486 161.139 312.435 DL 161.326 312.525 161.23 312.486 DL -161.427 312.552 161.326 312.525 DL 161.53 312.567 161.427 312.552 DL -161.634 312.568 161.53 312.567 DL 161.738 312.557 161.634 312.568 DL -161.839 312.533 161.738 312.557 DL 161.938 312.496 161.839 312.533 DL -162.031 312.448 161.938 312.496 DL 162.117 312.389 162.031 312.448 DL -162.196 312.319 162.117 312.389 DL 162.265 312.241 162.196 312.319 DL -162.325 312.154 162.265 312.241 DL 162.373 312.061 162.325 312.154 DL -162.409 311.963 162.373 312.061 DL 162.434 311.861 162.409 311.963 DL -162.445 311.757 162.434 311.861 DL 162.444 311.654 162.445 311.757 DL -162.429 311.551 162.444 311.654 DL 162.402 311.45 162.429 311.551 DL -162.363 311.353 162.402 311.45 DL 162.313 311.262 162.363 311.353 DL -162.251 311.179 162.313 311.262 DL 162.179 311.103 162.251 311.179 DL -162.099 311.037 162.179 311.103 DL 162.011 310.981 162.099 311.037 DL -161.917 310.937 162.011 310.981 DL 161.818 310.905 161.917 310.937 DL -161.715 310.885 161.818 310.905 DL 161.611 310.878 161.715 310.885 DL -.45 LW 175.138 314.262 185.292 314.262 DL 205.6 326.108 205.6 319.339 DL -.75 LW 205.6 319.339 207.292 314.262 DL 203.908 315.954 203.908 315.954 -DL 203.905 315.877 203.908 315.954 DL 203.89 315.773 203.905 315.877 DL -203.862 315.673 203.89 315.773 DL 203.822 315.576 203.862 315.673 DL -203.77 315.486 203.822 315.576 DL 203.707 315.403 203.77 315.486 DL -203.635 315.328 203.707 315.403 DL 203.554 315.262 203.635 315.328 DL -203.465 315.208 203.554 315.262 DL 203.37 315.164 203.465 315.208 DL -203.271 315.133 203.37 315.164 DL 203.168 315.114 203.271 315.133 DL -203.064 315.108 203.168 315.114 DL 202.96 315.115 203.064 315.108 DL -202.858 315.135 202.96 315.115 DL 202.758 315.167 202.858 315.135 DL -202.663 315.211 202.758 315.167 DL 202.574 315.267 202.663 315.211 DL -202.492 315.333 202.574 315.267 DL 202.419 315.408 202.492 315.333 DL -202.356 315.492 202.419 315.408 DL 202.304 315.583 202.356 315.492 DL -202.263 315.68 202.304 315.583 DL 202.234 315.781 202.263 315.68 DL -202.219 315.884 202.234 315.781 DL 202.215 315.988 202.219 315.884 DL -202.225 316.092 202.215 315.988 DL 202.248 316.194 202.225 316.092 DL -202.283 316.292 202.248 316.194 DL 202.33 316.385 202.283 316.292 DL -202.388 316.472 202.33 316.385 DL 202.456 316.55 202.388 316.472 DL -202.533 316.62 202.456 316.55 DL 202.619 316.679 202.533 316.62 DL -202.711 316.728 202.619 316.679 DL 202.809 316.764 202.711 316.728 DL -202.911 316.789 202.809 316.764 DL 203.014 316.8 202.911 316.789 DL -203.118 316.799 203.014 316.8 DL 203.222 316.784 203.118 316.799 DL -203.323 316.757 203.222 316.784 DL 203.42 316.718 203.323 316.757 DL -203.512 316.667 203.42 316.718 DL 203.597 316.606 203.512 316.667 DL -203.674 316.534 203.597 316.606 DL 203.741 316.454 203.674 316.534 DL -203.798 316.366 203.741 316.454 DL 203.844 316.271 203.798 316.366 DL -203.878 316.172 203.844 316.271 DL 203.899 316.069 203.878 316.172 DL -203.908 315.965 203.899 316.069 DL 188.677 315.954 188.677 315.954 DL -188.6 315.959 188.677 315.954 DL 188.497 315.976 188.6 315.959 DL -188.396 316.006 188.497 315.976 DL 188.3 316.047 188.396 316.006 DL -188.21 316.1 188.3 316.047 DL 188.126 316.164 188.21 316.1 DL 188.051 -316.237 188.126 316.164 DL 187.986 316.319 188.051 316.237 DL 187.931 -316.409 187.986 316.319 DL 187.888 316.504 187.931 316.409 DL 187.857 -316.604 187.888 316.504 DL 187.838 316.707 187.857 316.604 DL 187.832 -316.81 187.838 316.707 DL 187.839 316.914 187.832 316.81 DL 187.859 -317.017 187.839 316.914 DL 187.891 317.116 187.859 317.017 DL 187.935 -317.21 187.891 317.116 DL 187.991 317.298 187.935 317.21 DL 188.057 -317.379 187.991 317.298 DL 188.132 317.45 188.057 317.379 DL 188.216 -317.512 188.132 317.45 DL 188.307 317.563 188.216 317.512 DL 188.403 -317.602 188.307 317.563 DL 188.504 317.629 188.403 317.602 DL 188.607 -317.644 188.504 317.629 DL 188.711 317.645 188.607 317.644 DL 188.815 -317.634 188.711 317.645 DL 188.916 317.61 188.815 317.634 DL 189.015 -317.573 188.916 317.61 DL 189.108 317.525 189.015 317.573 DL 189.194 -317.466 189.108 317.525 DL 189.273 317.396 189.194 317.466 DL 189.342 -317.318 189.273 317.396 DL 189.402 317.231 189.342 317.318 DL 189.45 -317.138 189.402 317.231 DL 189.486 317.04 189.45 317.138 DL 189.511 -316.938 189.486 317.04 DL 189.522 316.834 189.511 316.938 DL 189.521 -316.731 189.522 316.834 DL 189.506 316.628 189.521 316.731 DL 189.479 -316.527 189.506 316.628 DL 189.44 316.43 189.479 316.527 DL 189.39 -316.339 189.44 316.43 DL 189.328 316.256 189.39 316.339 DL 189.256 -316.18 189.328 316.256 DL 189.176 316.114 189.256 316.18 DL 189.088 -316.058 189.176 316.114 DL 188.994 316.014 189.088 316.058 DL 188.895 -315.982 188.994 316.014 DL 188.792 315.962 188.895 315.982 DL 188.688 -315.955 188.792 315.962 DL 185.292 314.262 190.369 315.954 DL 188.677 -310.877 188.677 310.877 DL 188.6 310.882 188.677 310.877 DL 188.497 -310.899 188.6 310.882 DL 188.396 310.929 188.497 310.899 DL 188.3 310.97 -188.396 310.929 DL 188.21 311.023 188.3 310.97 DL 188.126 311.087 188.21 -311.023 DL 188.051 311.16 188.126 311.087 DL 187.986 311.242 188.051 -311.16 DL 187.931 311.332 187.986 311.242 DL 187.888 311.427 187.931 -311.332 DL 187.857 311.527 187.888 311.427 DL 187.838 311.63 187.857 -311.527 DL 187.832 311.733 187.838 311.63 DL 187.839 311.837 187.832 -311.733 DL 187.859 311.94 187.839 311.837 DL 187.891 312.039 187.859 -311.94 DL 187.935 312.133 187.891 312.039 DL 187.991 312.221 187.935 -312.133 DL 188.057 312.302 187.991 312.221 DL 188.132 312.373 188.057 -312.302 DL 188.216 312.435 188.132 312.373 DL 188.307 312.486 188.216 -312.435 DL 188.403 312.525 188.307 312.486 DL 188.504 312.552 188.403 -312.525 DL 188.607 312.567 188.504 312.552 DL 188.711 312.568 188.607 -312.567 DL 188.815 312.557 188.711 312.568 DL 188.916 312.533 188.815 -312.557 DL 189.015 312.496 188.916 312.533 DL 189.108 312.448 189.015 -312.496 DL 189.194 312.389 189.108 312.448 DL 189.273 312.319 189.194 -312.389 DL 189.342 312.241 189.273 312.319 DL 189.402 312.154 189.342 -312.241 DL 189.45 312.061 189.402 312.154 DL 189.486 311.963 189.45 -312.061 DL 189.511 311.861 189.486 311.963 DL 189.522 311.757 189.511 -311.861 DL 189.521 311.654 189.522 311.757 DL 189.506 311.551 189.521 -311.654 DL 189.479 311.45 189.506 311.551 DL 189.44 311.353 189.479 -311.45 DL 189.39 311.262 189.44 311.353 DL 189.328 311.179 189.39 -311.262 DL 189.256 311.103 189.328 311.179 DL 189.176 311.037 189.256 -311.103 DL 189.088 310.981 189.176 311.037 DL 188.994 310.937 189.088 -310.981 DL 188.895 310.905 188.994 310.937 DL 188.792 310.885 188.895 -310.905 DL 188.688 310.878 188.792 310.885 DL .45 LW 202.215 310.877 -202.215 315.954 DL 188.677 310.877 202.215 310.877 DL 283.446 261.8 -256.369 261.8 DL 296.985 258.416 286.831 258.416 DL 296.985 288.877 -296.985 258.416 DL 252.985 275.339 252.985 285.493 DL 242.831 275.339 -252.985 275.339 DL 254.677 265.185 254.677 258.416 DL .75 LW 256.369 -265.185 256.369 258.416 DL .45 LW 202.215 310.877 215.754 310.877 DL -202.215 261.8 202.215 310.877 DL 254.677 261.8 202.215 261.8 DL 229.292 -310.877 217.446 310.877 DL 217.446 314.262 217.446 307.493 DL .75 LW -215.754 314.262 215.754 307.493 DL .45 LW 229.292 292.262 252.985 -292.262 DL 229.292 310.877 229.292 292.262 DL 242.831 310.877 229.292 -310.877 DL 269.908 288.877 256.369 288.877 DL 269.908 292.262 269.908 -285.493 DL .75 LW 271.6 292.262 271.6 285.493 DL .45 LW 296.985 310.877 -259.754 310.877 DL 296.985 288.877 296.985 310.877 DL 271.6 288.877 -296.985 288.877 DL .75 LW 229.292 311.3 229.292 311.3 DL 229.318 311.299 -229.292 311.3 DL 229.37 311.292 229.318 311.299 DL 229.421 311.279 -229.37 311.292 DL 229.47 311.259 229.421 311.279 DL 229.516 311.234 -229.47 311.259 DL 229.559 311.203 229.516 311.234 DL 229.598 311.167 -229.559 311.203 DL 229.632 311.127 229.598 311.167 DL 229.66 311.082 -229.632 311.127 DL 229.683 311.035 229.66 311.082 DL 229.7 310.985 -229.683 311.035 DL 229.711 310.933 229.7 310.985 DL 229.715 310.881 -229.711 310.933 DL 229.713 310.83 229.715 310.881 DL 229.704 310.778 -229.713 310.83 DL 229.689 310.728 229.704 310.778 DL 229.667 310.68 -229.689 310.728 DL 229.64 310.635 229.667 310.68 DL 229.608 310.594 -229.64 310.635 DL 229.57 310.557 229.608 310.594 DL 229.529 310.526 -229.57 310.557 DL 229.483 310.499 229.529 310.526 DL 229.435 310.479 -229.483 310.499 DL 229.385 310.465 229.435 310.479 DL 229.333 310.457 -229.385 310.465 DL 229.281 310.455 229.333 310.457 DL 229.229 310.46 -229.281 310.455 DL 229.178 310.472 229.229 310.46 DL 229.128 310.49 -229.178 310.472 DL 229.081 310.513 229.128 310.49 DL 229.037 310.543 -229.081 310.513 DL 228.998 310.577 229.037 310.543 DL 228.962 310.617 -228.998 310.577 DL 228.932 310.66 228.962 310.617 DL 228.908 310.707 -228.932 310.66 DL 228.889 310.756 228.908 310.707 DL 228.877 310.807 -228.889 310.756 DL 228.871 310.859 228.877 310.807 DL 228.871 310.911 -228.871 310.859 DL 228.878 310.963 228.871 310.911 DL 228.892 311.013 -228.878 310.963 DL 228.911 311.062 228.892 311.013 DL 228.937 311.108 -228.911 311.062 DL 228.968 311.15 228.937 311.108 DL 229.004 311.188 -228.968 311.15 DL 229.044 311.221 229.004 311.188 DL 229.089 311.249 -229.044 311.221 DL 229.136 311.271 229.089 311.249 DL 229.186 311.287 -229.136 311.271 DL 229.237 311.297 229.186 311.287 DL 229.29 311.3 -229.237 311.297 DL 242.831 302.416 242.831 343.031 DL 283.446 322.723 -242.831 302.416 DL 242.831 343.031 283.446 322.723 DL F7(-)244.523 -315.127 Q(+)244.523 338.82 Q 252.985 290.57 252.985 290.57 DL 252.908 -290.575 252.985 290.57 DL 252.805 290.592 252.908 290.575 DL 252.704 -290.622 252.805 290.592 DL 252.608 290.663 252.704 290.622 DL 252.518 -290.716 252.608 290.663 DL 252.434 290.78 252.518 290.716 DL 252.359 -290.853 252.434 290.78 DL 252.294 290.935 252.359 290.853 DL 252.239 -291.025 252.294 290.935 DL 252.196 291.12 252.239 291.025 DL 252.165 -291.22 252.196 291.12 DL 252.146 291.323 252.165 291.22 DL 252.14 -291.426 252.146 291.323 DL 252.147 291.53 252.14 291.426 DL 252.167 -291.633 252.147 291.53 DL 252.199 291.732 252.167 291.633 DL 252.243 -291.826 252.199 291.732 DL 252.299 291.914 252.243 291.826 DL 252.365 -291.995 252.299 291.914 DL 252.44 292.066 252.365 291.995 DL 252.524 -292.128 252.44 292.066 DL 252.615 292.179 252.524 292.128 DL 252.711 -292.218 252.615 292.179 DL 252.812 292.245 252.711 292.218 DL 252.915 -292.26 252.812 292.245 DL 253.019 292.261 252.915 292.26 DL 253.123 -292.25 253.019 292.261 DL 253.224 292.226 253.123 292.25 DL 253.323 -292.189 253.224 292.226 DL 253.416 292.141 253.323 292.189 DL 253.502 -292.082 253.416 292.141 DL 253.581 292.012 253.502 292.082 DL 253.65 -291.934 253.581 292.012 DL 253.71 291.847 253.65 291.934 DL 253.758 -291.754 253.71 291.847 DL 253.794 291.656 253.758 291.754 DL 253.819 -291.554 253.794 291.656 DL 253.83 291.45 253.819 291.554 DL 253.829 -291.347 253.83 291.45 DL 253.814 291.244 253.829 291.347 DL 253.787 -291.143 253.814 291.244 DL 253.748 291.046 253.787 291.143 DL 253.698 -290.955 253.748 291.046 DL 253.636 290.872 253.698 290.955 DL 253.564 -290.796 253.636 290.872 DL 253.484 290.73 253.564 290.796 DL 253.396 -290.674 253.484 290.73 DL 253.302 290.63 253.396 290.674 DL 253.203 -290.598 253.302 290.63 DL 253.1 290.578 253.203 290.598 DL 252.996 -290.571 253.1 290.578 DL 256.369 288.877 251.292 287.185 DL 239.446 -277.031 239.446 273.646 DL 241.138 277.031 239.446 277.031 DL 242.831 -275.339 241.138 277.031 DL 241.138 273.646 242.831 275.339 DL 239.446 -273.646 241.138 273.646 DL F4(V)225.424 279.589 Q F5(B).669 1.6 M F6(2) -.151 E 252.985 285.493 252.985 285.493 DL 252.908 285.498 252.985 -285.493 DL 252.805 285.515 252.908 285.498 DL 252.704 285.545 252.805 -285.515 DL 252.608 285.586 252.704 285.545 DL 252.518 285.639 252.608 -285.586 DL 252.434 285.703 252.518 285.639 DL 252.359 285.776 252.434 -285.703 DL 252.294 285.858 252.359 285.776 DL 252.239 285.948 252.294 -285.858 DL 252.196 286.043 252.239 285.948 DL 252.165 286.143 252.196 -286.043 DL 252.146 286.246 252.165 286.143 DL 252.14 286.349 252.146 -286.246 DL 252.147 286.453 252.14 286.349 DL 252.167 286.556 252.147 -286.453 DL 252.199 286.655 252.167 286.556 DL 252.243 286.749 252.199 -286.655 DL 252.299 286.837 252.243 286.749 DL 252.365 286.918 252.299 -286.837 DL 252.44 286.989 252.365 286.918 DL 252.524 287.051 252.44 -286.989 DL 252.615 287.102 252.524 287.051 DL 252.711 287.141 252.615 -287.102 DL 252.812 287.168 252.711 287.141 DL 252.915 287.183 252.812 -287.168 DL 253.019 287.184 252.915 287.183 DL 253.123 287.173 253.019 -287.184 DL 253.224 287.149 253.123 287.173 DL 253.323 287.112 253.224 -287.149 DL 253.416 287.064 253.323 287.112 DL 253.502 287.005 253.416 -287.064 DL 253.581 286.935 253.502 287.005 DL 253.65 286.857 253.581 -286.935 DL 253.71 286.77 253.65 286.857 DL 253.758 286.677 253.71 286.77 -DL 253.794 286.579 253.758 286.677 DL 253.819 286.477 253.794 286.579 DL -253.83 286.373 253.819 286.477 DL 253.829 286.27 253.83 286.373 DL -253.814 286.167 253.829 286.27 DL 253.787 286.066 253.814 286.167 DL -253.748 285.969 253.787 286.066 DL 253.698 285.878 253.748 285.969 DL -253.636 285.795 253.698 285.878 DL 253.564 285.719 253.636 285.795 DL -253.484 285.653 253.564 285.719 DL 253.396 285.597 253.484 285.653 DL -253.302 285.553 253.396 285.597 DL 253.203 285.521 253.302 285.553 DL -253.1 285.501 253.203 285.521 DL 252.996 285.494 253.1 285.501 DL -286.831 263.493 286.831 263.493 DL 286.754 263.498 286.831 263.493 DL -286.651 263.515 286.754 263.498 DL 286.55 263.545 286.651 263.515 DL -286.454 263.586 286.55 263.545 DL 286.364 263.639 286.454 263.586 DL -286.28 263.703 286.364 263.639 DL 286.205 263.776 286.28 263.703 DL -286.14 263.858 286.205 263.776 DL 286.085 263.948 286.14 263.858 DL -286.042 264.043 286.085 263.948 DL 286.011 264.143 286.042 264.043 DL -285.992 264.246 286.011 264.143 DL 285.986 264.349 285.992 264.246 DL -285.993 264.453 285.986 264.349 DL 286.013 264.556 285.993 264.453 DL -286.045 264.655 286.013 264.556 DL 286.089 264.749 286.045 264.655 DL -286.145 264.837 286.089 264.749 DL 286.211 264.918 286.145 264.837 DL -286.286 264.989 286.211 264.918 DL 286.37 265.051 286.286 264.989 DL -286.461 265.102 286.37 265.051 DL 286.557 265.141 286.461 265.102 DL -286.658 265.168 286.557 265.141 DL 286.761 265.183 286.658 265.168 DL -286.865 265.184 286.761 265.183 DL 286.969 265.173 286.865 265.184 DL -287.07 265.149 286.969 265.173 DL 287.169 265.112 287.07 265.149 DL -287.262 265.064 287.169 265.112 DL 287.348 265.005 287.262 265.064 DL -287.427 264.935 287.348 265.005 DL 287.496 264.857 287.427 264.935 DL -287.556 264.77 287.496 264.857 DL 287.604 264.677 287.556 264.77 DL -287.64 264.579 287.604 264.677 DL 287.665 264.477 287.64 264.579 DL -287.676 264.373 287.665 264.477 DL 287.675 264.27 287.676 264.373 DL -287.66 264.167 287.675 264.27 DL 287.633 264.066 287.66 264.167 DL -287.594 263.969 287.633 264.066 DL 287.544 263.878 287.594 263.969 DL -287.482 263.795 287.544 263.878 DL 287.41 263.719 287.482 263.795 DL -287.33 263.653 287.41 263.719 DL 287.242 263.597 287.33 263.653 DL -287.148 263.553 287.242 263.597 DL 287.049 263.521 287.148 263.553 DL -286.946 263.501 287.049 263.521 DL 286.842 263.494 286.946 263.501 DL -283.446 261.8 288.523 260.108 DL 286.831 258.416 286.831 258.416 DL -286.754 258.421 286.831 258.416 DL 286.651 258.438 286.754 258.421 DL -286.55 258.468 286.651 258.438 DL 286.454 258.509 286.55 258.468 DL -286.364 258.562 286.454 258.509 DL 286.28 258.626 286.364 258.562 DL -286.205 258.699 286.28 258.626 DL 286.14 258.781 286.205 258.699 DL -286.085 258.871 286.14 258.781 DL 286.042 258.966 286.085 258.871 DL -286.011 259.066 286.042 258.966 DL 285.992 259.169 286.011 259.066 DL -285.986 259.272 285.992 259.169 DL 285.993 259.376 285.986 259.272 DL -286.013 259.479 285.993 259.376 DL 286.045 259.578 286.013 259.479 DL -286.089 259.672 286.045 259.578 DL 286.145 259.76 286.089 259.672 DL -286.211 259.841 286.145 259.76 DL 286.286 259.912 286.211 259.841 DL -286.37 259.974 286.286 259.912 DL 286.461 260.025 286.37 259.974 DL -286.557 260.064 286.461 260.025 DL 286.658 260.091 286.557 260.064 DL -286.761 260.106 286.658 260.091 DL 286.865 260.107 286.761 260.106 DL -286.969 260.096 286.865 260.107 DL 287.07 260.072 286.969 260.096 DL -287.169 260.035 287.07 260.072 DL 287.262 259.987 287.169 260.035 DL -287.348 259.928 287.262 259.987 DL 287.427 259.858 287.348 259.928 DL -287.496 259.78 287.427 259.858 DL 287.556 259.693 287.496 259.78 DL -287.604 259.6 287.556 259.693 DL 287.64 259.502 287.604 259.6 DL 287.665 -259.4 287.64 259.502 DL 287.676 259.296 287.665 259.4 DL 287.675 259.193 -287.676 259.296 DL 287.66 259.09 287.675 259.193 DL 287.633 258.989 -287.66 259.09 DL 287.594 258.892 287.633 258.989 DL 287.544 258.801 -287.594 258.892 DL 287.482 258.718 287.544 258.801 DL 287.41 258.642 -287.482 258.718 DL 287.33 258.576 287.41 258.642 DL 287.242 258.52 -287.33 258.576 DL 287.148 258.476 287.242 258.52 DL 287.049 258.444 -287.148 258.476 DL 286.946 258.424 287.049 258.444 DL 286.842 258.417 -286.946 258.424 DL 371.446 261.8 371.446 288.877 DL 398.523 275.339 -371.446 261.8 DL 371.446 288.877 398.523 275.339 DL F7(+)373.138 272.82 -Q(-)373.138 286.358 Q 296.985 289.3 296.985 289.3 DL 297.011 289.299 -296.985 289.3 DL 297.063 289.292 297.011 289.299 DL 297.114 289.279 -297.063 289.292 DL 297.163 289.259 297.114 289.279 DL 297.209 289.234 -297.163 289.259 DL 297.252 289.203 297.209 289.234 DL 297.291 289.167 -297.252 289.203 DL 297.325 289.127 297.291 289.167 DL 297.353 289.082 -297.325 289.127 DL 297.376 289.035 297.353 289.082 DL 297.393 288.985 -297.376 289.035 DL 297.404 288.933 297.393 288.985 DL 297.408 288.881 -297.404 288.933 DL 297.406 288.83 297.408 288.881 DL 297.397 288.778 -297.406 288.83 DL 297.382 288.728 297.397 288.778 DL 297.36 288.68 -297.382 288.728 DL 297.333 288.635 297.36 288.68 DL 297.301 288.594 -297.333 288.635 DL 297.263 288.557 297.301 288.594 DL 297.222 288.526 -297.263 288.557 DL 297.176 288.499 297.222 288.526 DL 297.128 288.479 -297.176 288.499 DL 297.078 288.465 297.128 288.479 DL 297.026 288.457 -297.078 288.465 DL 296.974 288.455 297.026 288.457 DL 296.922 288.46 -296.974 288.455 DL 296.871 288.472 296.922 288.46 DL 296.821 288.49 -296.871 288.472 DL 296.774 288.513 296.821 288.49 DL 296.73 288.543 -296.774 288.513 DL 296.691 288.577 296.73 288.543 DL 296.655 288.617 -296.691 288.577 DL 296.625 288.66 296.655 288.617 DL 296.601 288.707 -296.625 288.66 DL 296.582 288.756 296.601 288.707 DL 296.57 288.807 -296.582 288.756 DL 296.564 288.859 296.57 288.807 DL 296.564 288.911 -296.564 288.859 DL 296.571 288.963 296.564 288.911 DL 296.585 289.013 -296.571 288.963 DL 296.604 289.062 296.585 289.013 DL 296.63 289.108 -296.604 289.062 DL 296.661 289.15 296.63 289.108 DL 296.697 289.188 -296.661 289.15 DL 296.737 289.221 296.697 289.188 DL 296.782 289.249 -296.737 289.221 DL 296.829 289.271 296.782 289.249 DL 296.879 289.287 -296.829 289.271 DL 296.93 289.297 296.879 289.287 DL 296.983 289.3 -296.93 289.297 DL .45 LW 379.908 278.723 376.523 278.723 DL 379.908 -270.262 379.908 278.723 DL 383.292 270.262 379.908 270.262 DL F4(DP) -308.161 238.973 Q F6(2).344 1.6 M F4(DP)308.161 320.204 Q F6(2).344 1.6 -M F4(DP)308.161 333.743 Q F6(2).344 1.6 M F4(DP)308.161 414.973 Q F6(2) -.344 1.6 M .75 LW 202.215 334.993 202.215 334.993 DL 202.241 334.992 -202.215 334.993 DL 202.293 334.985 202.241 334.992 DL 202.344 334.972 -202.293 334.985 DL 202.393 334.952 202.344 334.972 DL 202.439 334.927 -202.393 334.952 DL 202.482 334.896 202.439 334.927 DL 202.521 334.86 -202.482 334.896 DL 202.555 334.82 202.521 334.86 DL 202.583 334.775 -202.555 334.82 DL 202.606 334.728 202.583 334.775 DL 202.623 334.678 -202.606 334.728 DL 202.634 334.626 202.623 334.678 DL 202.638 334.574 -202.634 334.626 DL 202.636 334.523 202.638 334.574 DL 202.627 334.471 -202.636 334.523 DL 202.612 334.421 202.627 334.471 DL 202.59 334.373 -202.612 334.421 DL 202.563 334.328 202.59 334.373 DL 202.531 334.287 -202.563 334.328 DL 202.493 334.25 202.531 334.287 DL 202.452 334.219 -202.493 334.25 DL 202.406 334.192 202.452 334.219 DL 202.358 334.172 -202.406 334.192 DL 202.308 334.158 202.358 334.172 DL 202.256 334.15 -202.308 334.158 DL 202.204 334.148 202.256 334.15 DL 202.152 334.153 -202.204 334.148 DL 202.101 334.165 202.152 334.153 DL 202.051 334.183 -202.101 334.165 DL 202.004 334.206 202.051 334.183 DL 201.96 334.236 -202.004 334.206 DL 201.921 334.27 201.96 334.236 DL 201.885 334.31 -201.921 334.27 DL 201.855 334.353 201.885 334.31 DL 201.831 334.4 -201.855 334.353 DL 201.812 334.449 201.831 334.4 DL 201.8 334.5 201.812 -334.449 DL 201.794 334.552 201.8 334.5 DL 201.794 334.604 201.794 -334.552 DL 201.801 334.656 201.794 334.604 DL 201.815 334.706 201.801 -334.656 DL 201.834 334.755 201.815 334.706 DL 201.86 334.801 201.834 -334.755 DL 201.891 334.843 201.86 334.801 DL 201.927 334.881 201.891 -334.843 DL 201.967 334.914 201.927 334.881 DL 202.012 334.942 201.967 -334.914 DL 202.059 334.964 202.012 334.942 DL 202.109 334.98 202.059 -334.964 DL 202.16 334.99 202.109 334.98 DL 202.213 334.993 202.16 334.99 -DL 202.215 311.3 202.215 311.3 DL 202.241 311.299 202.215 311.3 DL -202.293 311.292 202.241 311.299 DL 202.344 311.279 202.293 311.292 DL -202.393 311.259 202.344 311.279 DL 202.439 311.234 202.393 311.259 DL -202.482 311.203 202.439 311.234 DL 202.521 311.167 202.482 311.203 DL -202.555 311.127 202.521 311.167 DL 202.583 311.082 202.555 311.127 DL -202.606 311.035 202.583 311.082 DL 202.623 310.985 202.606 311.035 DL -202.634 310.933 202.623 310.985 DL 202.638 310.881 202.634 310.933 DL -202.636 310.83 202.638 310.881 DL 202.627 310.778 202.636 310.83 DL -202.612 310.728 202.627 310.778 DL 202.59 310.68 202.612 310.728 DL -202.563 310.635 202.59 310.68 DL 202.531 310.594 202.563 310.635 DL -202.493 310.557 202.531 310.594 DL 202.452 310.526 202.493 310.557 DL -202.406 310.499 202.452 310.526 DL 202.358 310.479 202.406 310.499 DL -202.308 310.465 202.358 310.479 DL 202.256 310.457 202.308 310.465 DL -202.204 310.455 202.256 310.457 DL 202.152 310.46 202.204 310.455 DL -202.101 310.472 202.152 310.46 DL 202.051 310.49 202.101 310.472 DL -202.004 310.513 202.051 310.49 DL 201.96 310.543 202.004 310.513 DL -201.921 310.577 201.96 310.543 DL 201.885 310.617 201.921 310.577 DL -201.855 310.66 201.885 310.617 DL 201.831 310.707 201.855 310.66 DL -201.812 310.756 201.831 310.707 DL 201.8 310.807 201.812 310.756 DL -201.794 310.859 201.8 310.807 DL 201.794 310.911 201.794 310.859 DL -201.801 310.963 201.794 310.911 DL 201.815 311.013 201.801 310.963 DL -201.834 311.062 201.815 311.013 DL 201.86 311.108 201.834 311.062 DL -201.891 311.15 201.86 311.108 DL 201.927 311.188 201.891 311.15 DL -201.967 311.221 201.927 311.188 DL 202.012 311.249 201.967 311.221 DL -202.059 311.271 202.012 311.249 DL 202.109 311.287 202.059 311.271 DL -202.16 311.297 202.109 311.287 DL 202.213 311.3 202.16 311.297 DL -445.994 302.416 445.908 302.416 DL 446.253 302.416 445.994 302.416 DL -446.685 302.416 446.253 302.416 DL 447.289 302.416 446.685 302.416 DL -448.066 302.416 447.289 302.416 DL 449.016 302.416 448.066 302.416 DL -450.695 302.401 449.016 302.416 DL 451.237 302.356 450.695 302.401 DL -451.763 302.281 451.237 302.356 DL 452.274 302.175 451.763 302.281 DL -452.771 302.04 452.274 302.175 DL 453.252 301.874 452.771 302.04 DL -453.718 301.679 453.252 301.874 DL 454.17 301.453 453.718 301.679 DL -454.606 301.197 454.17 301.453 DL 455.027 300.912 454.606 301.197 DL -455.433 300.596 455.027 300.912 DL 455.824 300.25 455.433 300.596 DL -456.2 299.873 455.824 300.25 DL 456.562 299.467 456.2 299.873 DL 457.581 -298.133 456.562 299.467 DL 458.151 297.373 457.581 298.133 DL 458.617 -296.751 458.151 297.373 DL 458.98 296.268 458.617 296.751 DL 459.239 -295.922 458.98 296.268 DL 459.394 295.715 459.239 295.922 DL 445.994 -288.877 445.908 288.877 DL 446.253 288.877 445.994 288.877 DL 446.685 -288.877 446.253 288.877 DL 447.289 288.877 446.685 288.877 DL 448.066 -288.877 447.289 288.877 DL 449.016 288.877 448.066 288.877 DL 450.695 -288.892 449.016 288.877 DL 451.237 288.937 450.695 288.892 DL 451.763 -289.012 451.237 288.937 DL 452.274 289.118 451.763 289.012 DL 452.771 -289.253 452.274 289.118 DL 453.252 289.419 452.771 289.253 DL 453.718 -289.614 453.252 289.419 DL 454.17 289.84 453.718 289.614 DL 454.606 -290.095 454.17 289.84 DL 455.027 290.381 454.606 290.095 DL 455.433 -290.697 455.027 290.381 DL 455.824 291.043 455.433 290.697 DL 456.2 -291.419 455.824 291.043 DL 456.562 291.825 456.2 291.419 DL 457.581 -293.159 456.562 291.825 DL 458.151 293.919 457.581 293.159 DL 458.617 -294.541 458.151 293.919 DL 458.98 295.024 458.617 294.541 DL 459.239 -295.37 458.98 295.024 DL 459.394 295.577 459.239 295.37 DL 445.96 -302.347 445.908 302.416 DL 446.115 302.14 445.96 302.347 DL 446.374 -301.794 446.115 302.14 DL 446.737 301.311 446.374 301.794 DL 447.203 -300.689 446.737 301.311 DL 447.773 299.929 447.203 300.689 DL 448.762 -298.58 447.773 299.929 DL 449.033 298.128 448.762 298.58 DL 449.259 -297.677 449.033 298.128 DL 449.439 297.226 449.259 297.677 DL 449.575 -296.774 449.439 297.226 DL 449.665 296.323 449.575 296.774 DL 449.71 -295.872 449.665 296.323 DL 449.71 295.42 449.71 295.872 DL 449.665 -294.969 449.71 295.42 DL 449.575 294.518 449.665 294.969 DL 449.439 -294.067 449.575 294.518 DL 449.259 293.615 449.439 294.067 DL 449.033 -293.164 449.259 293.615 DL 448.762 292.713 449.033 293.164 DL 447.773 -291.364 448.762 292.713 DL 447.203 290.604 447.773 291.364 DL 446.737 -289.982 447.203 290.604 DL 446.374 289.499 446.737 289.982 DL 446.115 -289.153 446.374 289.499 DL 445.96 288.946 446.115 289.153 DL 444.267 -302.347 444.215 302.416 DL 444.422 302.14 444.267 302.347 DL 444.681 -301.794 444.422 302.14 DL 445.044 301.311 444.681 301.794 DL 445.51 -300.689 445.044 301.311 DL 446.08 299.929 445.51 300.689 DL 447.069 -298.58 446.08 299.929 DL 447.34 298.128 447.069 298.58 DL 447.566 -297.677 447.34 298.128 DL 447.746 297.226 447.566 297.677 DL 447.882 -296.774 447.746 297.226 DL 447.972 296.323 447.882 296.774 DL 448.017 -295.872 447.972 296.323 DL 448.017 295.42 448.017 295.872 DL 447.972 -294.969 448.017 295.42 DL 447.882 294.518 447.972 294.969 DL 447.746 -294.067 447.882 294.518 DL 447.566 293.615 447.746 294.067 DL 447.34 -293.164 447.566 293.615 DL 447.069 292.713 447.34 293.164 DL 446.08 -291.364 447.069 292.713 DL 445.51 290.604 446.08 291.364 DL 445.044 -289.982 445.51 290.604 DL 444.681 289.499 445.044 289.982 DL 444.422 -289.153 444.681 289.499 DL 444.267 288.946 444.422 289.153 DL .15 LW -256.153 248.263 256.369 248.262 DL 251.226 248.461 252.056 248.426 DL -247.961 248.8 251.226 248.461 DL 242.159 249.686 243.864 249.402 DL -239.769 250.236 242.159 249.686 DL 233.305 252.014 235.672 251.314 DL -231.577 252.642 233.305 252.014 DL 224.8 255.408 227.48 254.242 DL -223.385 256.129 224.8 255.408 DL 216.771 259.818 219.288 258.333 DL -215.193 260.883 216.771 259.818 DL 209.339 265.176 211.096 263.825 DL -207.001 267.212 209.339 265.176 DL 202.617 271.403 202.904 271.12 DL -200.64 273.605 202.617 271.403 DL 196.705 278.404 197.262 277.702 DL -194.337 281.797 196.705 278.404 DL 191.694 286.073 191.803 285.894 DL -189.621 289.989 191.694 286.073 DL 187.658 294.296 187.753 294.086 DL -186.177 298.181 187.658 294.296 DL 184.659 302.947 184.868 302.278 DL -183.815 306.373 184.659 302.947 DL 182.742 311.897 183.002 310.47 DL -182.424 314.565 182.742 311.897 DL 181.935 321.01 182.07 318.662 DL -181.941 322.757 181.935 321.01 DL 182.252 330.147 182.037 326.854 DL -182.354 330.949 182.252 330.147 DL 183.679 339.141 182.899 335.046 DL -184.816 343.603 184.723 343.238 DL 186.017 347.333 184.816 343.603 DL -187.882 352.208 187.578 351.43 DL 189.422 355.525 187.882 352.208 DL -191.981 360.367 191.577 359.622 DL 194.071 363.717 191.981 360.367 DL -197.051 367.959 196.947 367.814 DL 199.927 371.506 197.051 367.959 DL -200.297 371.909 199.927 371.506 DL 209.786 380.992 207.001 378.625 DL -211.096 381.972 209.786 380.992 DL 217.259 386.235 215.193 384.879 DL -219.288 387.395 217.259 386.235 DL 225.321 390.521 223.385 389.567 DL -227.48 391.424 225.321 390.521 DL 233.853 393.784 231.577 392.993 DL -235.672 394.293 233.853 393.784 DL 242.723 395.975 239.769 395.341 DL -243.864 396.147 242.723 395.975 DL 251.8 397.061 247.961 396.722 DL -252.056 397.067 251.8 397.061 DL 256.372 397.184 256.153 397.179 DL -260.248 397.051 256.372 397.184 DL 265.5 396.587 264.345 396.698 DL -268.44 396.121 265.5 396.587 DL 274.491 394.876 272.537 395.31 DL -276.632 394.261 274.491 394.876 DL 283.208 392.076 280.729 392.957 DL -284.824 391.388 283.208 392.076 DL 291.52 388.23 288.921 389.53 DL -293.016 387.363 291.52 388.23 DL 299.302 383.396 297.113 384.851 DL -301.208 381.954 299.302 383.396 DL 306.436 377.646 305.305 378.616 DL -309.4 374.773 306.436 377.646 DL 312.815 371.068 312.048 371.909 DL -315.437 367.814 312.815 371.068 DL 320.761 359.868 318.37 363.717 DL -320.893 359.622 320.761 359.868 DL 324.859 351.676 323.079 355.525 DL -324.954 351.43 324.859 351.676 DL 327.863 343.238 326.549 347.333 DL -329.054 338.611 328.919 339.141 DL 329.732 335.046 329.054 338.611 DL -330.488 329.573 330.313 330.949 DL 330.665 326.854 330.488 329.573 DL -330.804 320.432 330.795 322.757 DL 330.702 318.662 330.804 320.432 DL -329.996 311.326 330.384 314.565 DL 329.84 310.47 329.996 311.326 DL -328.078 302.391 329.062 306.373 DL 328.043 302.278 328.078 302.391 DL -326.711 298.03 326.758 298.181 DL 325.202 294.086 326.711 298.03 DL -323.186 289.605 323.361 289.989 DL 321.214 285.894 323.186 289.605 DL -318.654 281.679 318.726 281.797 DL 316.03 277.941 318.654 281.679 DL -315.84 277.702 316.03 277.941 DL 310.118 270.986 312.488 273.605 DL -306.852 267.795 309.4 270.285 DL 305.305 266.46 306.852 267.795 DL -299.761 262.046 301.208 263.147 DL 297.113 260.279 299.761 262.046 DL -292.016 257.213 293.016 257.795 DL 288.921 255.659 292.016 257.213 DL -283.733 253.368 284.824 253.834 DL 280.729 252.299 283.733 253.368 DL -275.037 250.569 276.632 251.029 DL 272.537 250.013 275.037 250.569 DL -266.059 248.859 268.44 249.237 DL 264.345 248.695 266.059 248.859 DL -256.936 248.263 260.248 248.377 DL F0 2.005(The f)97 467.548 R 2.005 -(aster clocks are)-.12 F F1(PN)5.606 E F0(,)1.32 E F1(ITS)5.702 E F0 -(and)5.702 E F1(SP)5.402 E F0 5.006(.T).528 G 2.006 -(he sampling capacitor)-5.006 F F1(C)4.814 E F3(S).793 2.4 M F0 2.006 -(performs the)6.093 -2.4 N .262 -(delayed subtraction of a sample of the input signal)72 481.948 R/F8 12 -/Symbol SF3.262 E F1(V)1.728 E F3(SIG).793 2.4 M F0 .262 -(and a choice of)4.282 -2.4 N F8(-)3.262 E F1(V)1.728 E F3(REF)1.045 2.4 -M F0(,)1.306 -2.4 M F1(AGND)4.474 E F0(or)72 496.348 Q F8(+)3.39 E F1(V) -1.728 E F3(REF)1.045 2.4 M F0 .39(according to the operations performed\ - by the logic partially depicted operating)4.696 -2.4 N 1.758(on past r\ -esults of the comparisons. The synchronous comparators are reset at thi\ -s f)72 510.748 R(ast)-.12 E .462 -(rates, thus performing one comparison for e)72 525.148 R -.18(ve)-.3 G -.462(ry f).18 F .462(ast clock c)-.12 F .462(ycle. The dynamic common-) --.18 F .729(mode feedback arrangement operates synchronously with the r\ -eset time slot and its con-)72 539.548 R(\214guration is equi)72 553.948 -Q -.3(va)-.3 G(lent to that in the dif).3 E(ferential feedback path.)-.3 -E 0 Cg EP -%%Trailer -end -%%EOF diff --git a/gen/usr/share/doc/groff/1.19.2/examples/mom/letter.ps b/gen/usr/share/doc/groff/1.19.2/examples/mom/letter.ps deleted file mode 100644 index b9ac49e..0000000 --- a/gen/usr/share/doc/groff/1.19.2/examples/mom/letter.ps +++ /dev/null @@ -1,256 +0,0 @@ -%!PS-Adobe-3.0 -%%Creator: groff version 1.19.2 -%%CreationDate: Sat Nov 19 17:19:37 2016 -%%DocumentNeededResources: font Times-Roman -%%DocumentSuppliedResources: procset grops 1.19 2 -%%Pages: 1 -%%PageOrder: Ascend -%%DocumentMedia: Default 612 792 0 () () -%%Orientation: Portrait -%%EndComments -%%BeginDefaults -%%PageMedia: Default -%%EndDefaults -%%BeginProlog -%%BeginResource: procset grops 1.19 2 -%!PS-Adobe-3.0 Resource-ProcSet -/setpacking where{ -pop -currentpacking -true setpacking -}if -/grops 120 dict dup begin -/SC 32 def -/A/show load def -/B{0 SC 3 -1 roll widthshow}bind def -/C{0 exch ashow}bind def -/D{0 exch 0 SC 5 2 roll awidthshow}bind def -/E{0 rmoveto show}bind def -/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def -/G{0 rmoveto 0 exch ashow}bind def -/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/I{0 exch rmoveto show}bind def -/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def -/K{0 exch rmoveto 0 exch ashow}bind def -/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/M{rmoveto show}bind def -/N{rmoveto 0 SC 3 -1 roll widthshow}bind def -/O{rmoveto 0 exch ashow}bind def -/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/Q{moveto show}bind def -/R{moveto 0 SC 3 -1 roll widthshow}bind def -/S{moveto 0 exch ashow}bind def -/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/SF{ -findfont exch -[exch dup 0 exch 0 exch neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/MF{ -findfont -[5 2 roll -0 3 1 roll -neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/level0 0 def -/RES 0 def -/PL 0 def -/LS 0 def -/MANUAL{ -statusdict begin/manualfeed true store end -}bind def -/PLG{ -gsave newpath clippath pathbbox grestore -exch pop add exch pop -}bind def -/BP{ -/level0 save def -1 setlinecap -1 setlinejoin -72 RES div dup scale -LS{ -90 rotate -}{ -0 PL translate -}ifelse -1 -1 scale -}bind def -/EP{ -level0 restore -showpage -}def -/DA{ -newpath arcn stroke -}bind def -/SN{ -transform -.25 sub exch .25 sub exch -round .25 add exch round .25 add exch -itransform -}bind def -/DL{ -SN -moveto -SN -lineto stroke -}bind def -/DC{ -newpath 0 360 arc closepath -}bind def -/TM matrix def -/DE{ -TM currentmatrix pop -translate scale newpath 0 0 .5 0 360 arc closepath -TM setmatrix -}bind def -/RC/rcurveto load def -/RL/rlineto load def -/ST/stroke load def -/MT/moveto load def -/CL/closepath load def -/Fr{ -setrgbcolor fill -}bind def -/setcmykcolor where{ -pop -/Fk{ -setcmykcolor fill -}bind def -}if -/Fg{ -setgray fill -}bind def -/FL/fill load def -/LW/setlinewidth load def -/Cr/setrgbcolor load def -/setcmykcolor where{ -pop -/Ck/setcmykcolor load def -}if -/Cg/setgray load def -/RE{ -findfont -dup maxlength 1 index/FontName known not{1 add}if dict begin -{ -1 index/FID ne{def}{pop pop}ifelse -}forall -/Encoding exch def -dup/FontName exch def -currentdict end definefont pop -}bind def -/DEFS 0 def -/EBEGIN{ -moveto -DEFS begin -}bind def -/EEND/end load def -/CNT 0 def -/level1 0 def -/PBEGIN{ -/level1 save def -translate -div 3 1 roll div exch scale -neg exch neg exch translate -0 setgray -0 setlinecap -1 setlinewidth -0 setlinejoin -10 setmiterlimit -[]0 setdash -/setstrokeadjust where{ -pop -false setstrokeadjust -}if -/setoverprint where{ -pop -false setoverprint -}if -newpath -/CNT countdictstack def -userdict begin -/showpage{}def -/setpagedevice{}def -}bind def -/PEND{ -countdictstack CNT sub{end}repeat -level1 restore -}bind def -end def -/setpacking where{ -pop -setpacking -}if -%%EndResource -%%EndProlog -%%BeginSetup -%%BeginFeature: *PageSize Default -<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice -%%EndFeature -%%IncludeResource: font Times-Roman -grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 -def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron -/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent -/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen -/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon -/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O -/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex -/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y -/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft -/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl -/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut -/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash -/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen -/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft -/logicalnot/minus/registered/macron/degree/plusminus/twosuperior -/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior -/ordmasculine/guilsinglright/onequarter/onehalf/threequarters -/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE -/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex -/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn -/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla -/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis -/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash -/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def -/Times-Roman@0 ENC0/Times-Roman RE -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 12/Times-Roman@0 SF(August 25, 2004)451.332 91.664 Q(GUILLA)81 -132.656 Q(UME B)-.66 E(ARRIRES)-.42 E(Minidoux Corporation)81 146.32 Q -(5000 P)81 159.984 Q(annes Dri)-.18 E -.18(ve)-.3 G(Redmond, V)81 -173.648 Q(ir)-.72 E(ginia)-.216 E(USA)81 187.312 Q -1.548(Y.)81 214.64 S -2.664 -1.332(P. G)1.548 H(UIQ)1.332 E(UE)-.12 E(022 Umask Road)81 -228.304 Q(St-Sauv)81 241.968 Q(eur)-.18 E -(-en-dehors-de-la-mappe, Qu\251bec)-.24 E(CAN)81 255.632 Q(AD)-.42 E(A) --.48 E(Dear Mr)81 282.96 Q 3(.B)-.66 G(arri\250res,)-3 E .877 -(It has come to my attention that you ha)117 310.288 R 1.237 -.18(ve b) --.24 H .877(een lobbying the US go).18 F -.18(ve)-.18 G .876 -(rnment to pro-).18 F 1.437(hibit the use of open source softw)81 -323.952 R 1.437(are by endea)-.12 F -.24(vo)-.24 G 1.437(uring to outla) -.24 F 4.438(ws)-.18 G 1.438(o-called \231w)-4.438 F 1.438 -(arranty free\232)-.12 F(applications.)81 337.616 Q 4.041(If)117 364.944 -S 1.04(eel it is my duty to inform you that the success of your operati\ -ng system with its)-4.041 F .746(embedded web bro)81 378.608 R .746 -(wser relies hea)-.3 F .746 -(vily on open source programs and protocols, most notably)-.24 F(TCP/IP) -81 392.272 Q(.)-1.332 E 1.561 -(Therefore, in the interests of your corporation')117 419.6 R 4.561 -<738c>-.66 G 1.561(scal health, I strongly advise that)-4.561 F .45 -(you withdra)81 433.264 R 3.45(ws)-.18 G .45(upport for an)-3.45 F 3.45 -(yU)-.18 G 3.45(Sl)-3.45 G -.18(eg)-3.45 G .45(islation that w).18 F .45 -(ould cripple or render ille)-.12 F -.06(ga)-.18 G 3.45(lo).06 G .45 -(pen source)-3.45 F(de)81 446.928 Q -.18(ve)-.3 G(lopment.).18 E -(Sincerely)306 487.92 Q(,)-.78 E -1.2(Ya)306 542.576 S(nnick P)1.2 E 3 -(.G)-1.332 G(uique)-3 E 0 Cg EP -%%Trailer -end -%%EOF diff --git a/gen/usr/share/doc/groff/1.19.2/examples/mom/sample_docs.ps b/gen/usr/share/doc/groff/1.19.2/examples/mom/sample_docs.ps deleted file mode 100644 index c2d95a8..0000000 --- a/gen/usr/share/doc/groff/1.19.2/examples/mom/sample_docs.ps +++ /dev/null @@ -1,913 +0,0 @@ -%!PS-Adobe-3.0 -%%Creator: groff version 1.19.2 -%%CreationDate: Sat Nov 19 17:19:37 2016 -%%DocumentNeededResources: font Times-Bold -%%+ font Times-Roman -%%+ font Times-Italic -%%+ font Times-BoldItalic -%%DocumentSuppliedResources: procset grops 1.19 2 -%%Pages: 11 -%%PageOrder: Ascend -%%DocumentMedia: Default 612 792 0 () () -%%Orientation: Portrait -%%EndComments -%%BeginDefaults -%%PageMedia: Default -%%EndDefaults -%%BeginProlog -%%BeginResource: procset grops 1.19 2 -%!PS-Adobe-3.0 Resource-ProcSet -/setpacking where{ -pop -currentpacking -true setpacking -}if -/grops 120 dict dup begin -/SC 32 def -/A/show load def -/B{0 SC 3 -1 roll widthshow}bind def -/C{0 exch ashow}bind def -/D{0 exch 0 SC 5 2 roll awidthshow}bind def -/E{0 rmoveto show}bind def -/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def -/G{0 rmoveto 0 exch ashow}bind def -/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/I{0 exch rmoveto show}bind def -/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def -/K{0 exch rmoveto 0 exch ashow}bind def -/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/M{rmoveto show}bind def -/N{rmoveto 0 SC 3 -1 roll widthshow}bind def -/O{rmoveto 0 exch ashow}bind def -/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/Q{moveto show}bind def -/R{moveto 0 SC 3 -1 roll widthshow}bind def -/S{moveto 0 exch ashow}bind def -/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/SF{ -findfont exch -[exch dup 0 exch 0 exch neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/MF{ -findfont -[5 2 roll -0 3 1 roll -neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/level0 0 def -/RES 0 def -/PL 0 def -/LS 0 def -/MANUAL{ -statusdict begin/manualfeed true store end -}bind def -/PLG{ -gsave newpath clippath pathbbox grestore -exch pop add exch pop -}bind def -/BP{ -/level0 save def -1 setlinecap -1 setlinejoin -72 RES div dup scale -LS{ -90 rotate -}{ -0 PL translate -}ifelse -1 -1 scale -}bind def -/EP{ -level0 restore -showpage -}def -/DA{ -newpath arcn stroke -}bind def -/SN{ -transform -.25 sub exch .25 sub exch -round .25 add exch round .25 add exch -itransform -}bind def -/DL{ -SN -moveto -SN -lineto stroke -}bind def -/DC{ -newpath 0 360 arc closepath -}bind def -/TM matrix def -/DE{ -TM currentmatrix pop -translate scale newpath 0 0 .5 0 360 arc closepath -TM setmatrix -}bind def -/RC/rcurveto load def -/RL/rlineto load def -/ST/stroke load def -/MT/moveto load def -/CL/closepath load def -/Fr{ -setrgbcolor fill -}bind def -/setcmykcolor where{ -pop -/Fk{ -setcmykcolor fill -}bind def -}if -/Fg{ -setgray fill -}bind def -/FL/fill load def -/LW/setlinewidth load def -/Cr/setrgbcolor load def -/setcmykcolor where{ -pop -/Ck/setcmykcolor load def -}if -/Cg/setgray load def -/RE{ -findfont -dup maxlength 1 index/FontName known not{1 add}if dict begin -{ -1 index/FID ne{def}{pop pop}ifelse -}forall -/Encoding exch def -dup/FontName exch def -currentdict end definefont pop -}bind def -/DEFS 0 def -/EBEGIN{ -moveto -DEFS begin -}bind def -/EEND/end load def -/CNT 0 def -/level1 0 def -/PBEGIN{ -/level1 save def -translate -div 3 1 roll div exch scale -neg exch neg exch translate -0 setgray -0 setlinecap -1 setlinewidth -0 setlinejoin -10 setmiterlimit -[]0 setdash -/setstrokeadjust where{ -pop -false setstrokeadjust -}if -/setoverprint where{ -pop -false setoverprint -}if -newpath -/CNT countdictstack def -userdict begin -/showpage{}def -/setpagedevice{}def -}bind def -/PEND{ -countdictstack CNT sub{end}repeat -level1 restore -}bind def -end def -/setpacking where{ -pop -setpacking -}if -%%EndResource -%%EndProlog -%%BeginSetup -%%BeginFeature: *PageSize Default -<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice -%%EndFeature -%%IncludeResource: font Times-Bold -%%IncludeResource: font Times-Roman -%%IncludeResource: font Times-Italic -%%IncludeResource: font Times-BoldItalic -grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 -def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron -/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent -/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen -/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon -/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O -/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex -/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y -/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft -/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl -/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut -/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash -/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen -/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft -/logicalnot/minus/registered/macron/degree/plusminus/twosuperior -/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior -/ordmasculine/guilsinglright/onequarter/onehalf/threequarters -/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE -/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex -/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn -/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla -/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis -/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash -/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def -/Times-BoldItalic@0 ENC0/Times-BoldItalic RE/Times-Italic@0 ENC0 -/Times-Italic RE/Times-Roman@0 ENC0/Times-Roman RE/Times-Bold@0 ENC0 -/Times-Bold RE -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 16/Times-Bold@0 SF(Sample mom Documents)221.12 264 Q/F1 10.5 -/Times-Roman@0 SF(Three types of mom documents)72 720.162 Q -(assembled and collated by mom')72 732.662 Q 2.625(sa)-.578 G(uthor) --2.625 E 0 Cg EP -%%Page: 2 2 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 16/Times-Bold@0 SF(Lak)235.416 264 Q 4(eA)-.16 G(ttica')-4 E 4(sS) --.592 G(hor)-4 E(es)-.288 E/F1 12.5/Times-Italic@0 SF(by)300.1 280.158 Q -(Rosemary W)253.286 296.316 Q(inspear)-.688 E(e)-.463 E/F2 15.5 -/Times-BoldItalic@0 SF(Outline)281.882 328.632 Q .48 LW 287.882 330.632 -281.882 330.632 DL 288.118 330.632 282.118 330.632 DL 294.118 330.632 -288.118 330.632 DL 300.118 330.632 294.118 330.632 DL 306.118 330.632 -300.118 330.632 DL 312.118 330.632 306.118 330.632 DL 318.118 330.632 -312.118 330.632 DL 324.118 330.632 318.118 330.632 DL 330.118 330.632 -324.118 330.632 DL/F3 10.5/Times-Roman@0 SF(\2512004 Alma Podborski) -439.85 732.662 Q 0 Cg EP -%%Page: 3 3 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 16/Times-Bold@0 SF(Lak)235.416 90 Q 4(eA)-.16 G(ttica')-4 E 4(sS) --.592 G(hor)-4 E(es)-.288 E/F1 12.5/Times-Roman@0 SF 3.125(AR)259.669 -106.158 S(omance No)-3.125 E -.188(ve)-.188 G(l).188 E/F2 12.5 -/Times-Italic@0 SF(by)300.1 122.316 Q(Rosemary W)253.286 138.474 Q -(inspear)-.688 E(e)-.463 E/F3 15.5/Times-BoldItalic@0 SF(Outline)281.882 -170.79 Q .48 LW 287.882 172.79 281.882 172.79 DL 288.118 172.79 282.118 -172.79 DL 294.118 172.79 288.118 172.79 DL 300.118 172.79 294.118 172.79 -DL 306.118 172.79 300.118 172.79 DL 312.118 172.79 306.118 172.79 DL -318.118 172.79 312.118 172.79 DL 324.118 172.79 318.118 172.79 DL -330.118 172.79 324.118 172.79 DL/F4 12.25/Times-BoldItalic@0 SF 3.062 -(1. A)72 219.264 R 1.151(note on the setting)4.215 F F1 1.151 -(Lorem ipsum dolor sit amet, consetetur sadipscing elitr)7.35 F 4.276 -(,s)-.5 G 1.151(ed diam)-4.276 F .19(nonumy eirmod tempor in)72 235.422 -R .19(vidunt ut labore et dolore magna aliquyam erat, sed diam v)-.5 F -(oluptua.)-.25 E .005(Stet clita kasd guber)72 251.58 R .005 -(gren, no sea takimata sanctus est. At v)-.225 F .005 -(ero eos et accusam et justo duo do-)-.188 F(lore et ea reb)72 267.738 Q -(um.)-.25 E .338(Stet clita kasd guber)97 283.896 R .338 -(gren, no sea takimata sanctus est. Lorem ipsum dolor sit amet, con-) --.225 F .664(setetur sadipscing elitr)72 300.054 R 3.788(,s)-.5 G .663 -(ed diam nonumy eirmod tempor in)-3.788 F .663 -(vidunt ut labore et dolore magna)-.5 F(aliquyam erat, sed diam v)72 -316.212 Q(oluptua.)-.25 E .398(Consetetur sadipscing elitr)97 332.37 R -3.523(,s)-.5 G .398(ed diam nonumy eirmod tempor in)-3.523 F .399 -(vidunt ut labore et dolo-)-.5 F .875 -(re magna aliquyam erat, sed diam v)72 348.528 R .875(oluptua. At v)-.25 -F .875(ero, eos et accusam et justo duo dolores et)-.188 F(ea reb)72 -364.686 Q(um. Consetetur sadipscing elitr)-.25 E 3.125(,s)-.5 G -(ed diam nonumy)-3.125 E(.)-.813 E 3.125(***)293.5 400.002 S F4 3.062 -(2. About)72 429.318 R 1.244(historical personnages)4.306 F F1 1.244 -(At v)7.35 F 1.244(ero eos et accusam et justo duo dolores et ea reb) --.188 F(um.)-.25 E 1.404(Stet clita kasd guber)72 445.476 R 1.404 -(gren, no sea takimata sanctus est. T)-.225 F 1.404(empor in)-.875 F -1.404(vidunt ut labore et dolore)-.5 F(magna aliquyam erat, sed diam v) -72 461.634 Q(oluptua.)-.25 E .675 -(Lorem ipsum dolor sit amet, consetetur sadipscing elitr)97 477.792 R -3.801(,s)-.5 G .676(ed diam nonumy eirmod tem-)-3.801 F .191(por in)72 -493.95 R .191 -(vidunt ut labore et dolore magna aliquyam erat, sed diam v)-.5 F .191 -(oluptua. Consetetur sadipsc-)-.25 F 2.84(ing elitr)72 510.108 R 5.965 -(,s)-.5 G 2.84(ed diam nonumy eirmod tempor in)-5.965 F 2.84 -(vidunt ut labore et dolore magna. T)-.5 F(empor)-.875 E(in)72 526.266 Q -(vidunt ut labore et dolore magna aliquyam erat, sed diam v)-.5 E -(oluptua.)-.25 E/F5 13.5/Times-Bold@0 SF 3.375(1. P)263.643 574.74 R(AR) --.999 E 3.375(TO)-.54 G(NE)-3.375 E 269.643 576.74 263.643 576.74 DL -270.357 576.74 264.357 576.74 DL 276.357 576.74 270.357 576.74 DL -282.357 576.74 276.357 576.74 DL 288.357 576.74 282.357 576.74 DL -294.357 576.74 288.357 576.74 DL 300.357 576.74 294.357 576.74 DL -306.357 576.74 300.357 576.74 DL 312.357 576.74 306.357 576.74 DL -318.357 576.74 312.357 576.74 DL 324.357 576.74 318.357 576.74 DL -330.357 576.74 324.357 576.74 DL 336.357 576.74 330.357 576.74 DL -342.357 576.74 336.357 576.74 DL 348.357 576.74 342.357 576.74 DL/F6 13 -/Times-Bold@0 SF 3.25(1.1 Chapter)72 605.037 R(1)3.25 E F1 1.717 -(Lorem ipsum dolor sit amet, consetetur sadipscing elitr)72 623.214 R -4.842(,s)-.5 G 1.717(ed diam nonumy eirmod tempor)-4.842 F(in)72 639.372 -Q .318(vidunt ut labore et dolore magna aliquyam erat, sed diam v)-.5 F -.318(oluptua. At v)-.25 F .319(ero eos et accusam)-.188 F -(et justo duo dolores et ea reb)72 655.53 Q(um.)-.25 E .998(At v)97 -671.688 R .998(ero eos et accusam et justo duo dolores et ea reb)-.188 F -.997(um. Stet clita kasd guber)-.25 F .997(gren, no)-.225 F 1.266(sea t\ -akimata sanctus est. Lorem ipsum dolor sit amet, consetetur sadipscing \ -elitr)72 687.846 R 4.391(,s)-.5 G 1.266(ed diam)-4.391 F .191 -(nonumy eirmod tempor in)72 704.004 R .19 -(vidunt ut labore et dolore magna aliquyam erat, sed diam v)-.5 F -(oluptua.)-.25 E(Stet clita kasd guber)72 720.162 Q -(gren, no sea takimata sanctus est.)-.225 E(-)296.629 755.296 Q(1)2.083 -.704 M(-)2.083 -.704 M 0 Cg EP -%%Page: 4 4 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 12/Times-Roman@0 SF(Rosemary W)72 54 Q(inspeare)-.48 E/F1 12 -/Times-Italic@0 SF(Outline)288 54 Q/F2 10.5/Times-Roman@0 SF(LAKE A)421 -54 Q(TTICA)-1.166 E('S SHORES)-1.166 E .48 LW 78 58 72 58 DL 84 58 78 58 -DL 90 58 84 58 DL 96 58 90 58 DL 102 58 96 58 DL 108 58 102 58 DL 114 58 -108 58 DL 120 58 114 58 DL 126 58 120 58 DL 132 58 126 58 DL 138 58 132 -58 DL 144 58 138 58 DL 150 58 144 58 DL 156 58 150 58 DL 162 58 156 58 -DL 168 58 162 58 DL 174 58 168 58 DL 180 58 174 58 DL 186 58 180 58 DL -192 58 186 58 DL 198 58 192 58 DL 204 58 198 58 DL 210 58 204 58 DL 216 -58 210 58 DL 222 58 216 58 DL 228 58 222 58 DL 234 58 228 58 DL 240 58 -234 58 DL 246 58 240 58 DL 252 58 246 58 DL 258 58 252 58 DL 264 58 258 -58 DL 270 58 264 58 DL 276 58 270 58 DL 282 58 276 58 DL 288 58 282 58 -DL 294 58 288 58 DL 300 58 294 58 DL 306 58 300 58 DL 312 58 306 58 DL -318 58 312 58 DL 324 58 318 58 DL 330 58 324 58 DL 336 58 330 58 DL 342 -58 336 58 DL 348 58 342 58 DL 354 58 348 58 DL 360 58 354 58 DL 366 58 -360 58 DL 372 58 366 58 DL 378 58 372 58 DL 384 58 378 58 DL 390 58 384 -58 DL 396 58 390 58 DL 402 58 396 58 DL 408 58 402 58 DL 414 58 408 58 -DL 420 58 414 58 DL 426 58 420 58 DL 432 58 426 58 DL 438 58 432 58 DL -444 58 438 58 DL 450 58 444 58 DL 456 58 450 58 DL 462 58 456 58 DL 468 -58 462 58 DL 474 58 468 58 DL 480 58 474 58 DL 486 58 480 58 DL 492 58 -486 58 DL 498 58 492 58 DL 504 58 498 58 DL 510 58 504 58 DL 516 58 510 -58 DL 522 58 516 58 DL 528 58 522 58 DL 534 58 528 58 DL 540 58 534 58 -DL/F3 13/Times-Bold@0 SF 3.25(1.2 Chapter)72 87.981 R(2)3.25 E/F4 12.5 -/Times-Roman@0 SF .04(Stet clita kasd guber)72 106.158 R .041(gren, no \ -sea takimata sanctus est. Lorem ipsum dolor sit amet, consetetur)-.225 F -1.945(sadipscing elitr)72 122.316 R 5.07(,s)-.5 G 1.945 -(ed diam nonumy eirmod tempor in)-5.07 F 1.945 -(vidunt ut labore et dolore magna ali-)-.5 F(quyam erat, sed diam v)72 -138.474 Q(oluptua. At v)-.25 E -(ero eos et accusam et justo duo dolores et ea reb)-.188 E(um.)-.25 E -.675(Lorem ipsum dolor sit amet, consetetur sadipscing elitr)97 154.632 -R 3.801(,s)-.5 G .676(ed diam nonumy eirmod tem-)-3.801 F(por in)72 -170.79 Q(vidunt. Ut labore et dolore magna aliquyam erat, sed diam v)-.5 -E(oluptua at v)-.25 E(ero.)-.188 E F3 3.25(1.3 Chapter)72 201.087 R(3) -3.25 E F4 .899(Eos et accusam et justo duo dolores et ea reb)72 219.264 -R .899(um. Stet clita kasd guber)-.25 F .898(gren, no sea takimata)-.225 -F 1.359(sanctus est lorem ipsum dolor sit amet. Lorem ipsum dolor sit a\ -met, consetetur sadipscing)72 235.422 R(elitr)72 251.58 Q 3.593(,s)-.5 G -.468(ed diam nonumy eirmod tempor in)-3.593 F .467 -(vidunt ut labore et dolore magna aliquyam erat, sed)-.5 F(diam v)72 -267.738 Q(oluptua. At v)-.25 E -(ero eos et accusam et justo duo dolores et ea reb)-.188 E(um.)-.25 E/F5 -13.5/Times-Bold@0 SF 3.375(2. P)261.834 316.212 R(AR)-.999 E 3.375(TT) --.54 G -.135(WO)-3.375 G 267.834 318.212 261.834 318.212 DL 272.166 -318.212 266.166 318.212 DL 278.166 318.212 272.166 318.212 DL 284.166 -318.212 278.166 318.212 DL 290.166 318.212 284.166 318.212 DL 296.166 -318.212 290.166 318.212 DL 302.166 318.212 296.166 318.212 DL 308.166 -318.212 302.166 318.212 DL 314.166 318.212 308.166 318.212 DL 320.166 -318.212 314.166 318.212 DL 326.166 318.212 320.166 318.212 DL 332.166 -318.212 326.166 318.212 DL 338.166 318.212 332.166 318.212 DL 344.166 -318.212 338.166 318.212 DL 350.166 318.212 344.166 318.212 DL F3 3.25 -(2.1 Chapter)72 346.509 R(4)3.25 E F4 1.85(Stet clita kasd guber)72 -364.686 R 1.851 -(gren, no sea takimata sanctus est lorem ipsum dolor sit amet. Lorem) --.225 F 1.063(ipsum dolor sit amet, consetetur sadipscing elitr)72 -380.844 R 4.188(,s)-.5 G 1.063(ed diam nonumy eirmod tempor in)-4.188 F -(vidunt)-.5 E(ut labore et dolore magna aliquyam erat, sed diam v)72 -397.002 Q(oluptua.)-.25 E .997(At v)97 413.16 R .997 -(ero eos et accusam et justo duo dolores et ea reb)-.188 F .998 -(um. Stet clita kasd guber)-.25 F .998(gren, no)-.225 F -(sea takimata sanctus est lorem ipsum dolor sit amet.)72 429.318 Q 2.038 -(Nonumy eirmod tempor in)97 445.476 R 2.037 -(vidunt ut labore et dolore magna aliquyam erat, sed diam)-.5 F -.25(vo) -72 461.634 S 1.387(luptua. At v).25 F 1.388 -(ero eos et accusam et justo duo dolores et ea reb)-.188 F 1.388 -(um. Lorem ipsum dolor sit)-.25 F .156 -(amet, consetetur sadipscing elitr)72 477.792 R 3.281(,s)-.5 G .155 -(ed diam nonumy eirmod tempor in)-3.281 F .155 -(vidunt ut labore et dolo-)-.5 F .17(re magna aliquyam erat, sed diam v) -72 493.95 R .17(oluptua. At v)-.25 F .171 -(ero eos et accusam et justo duo dolores et ea)-.188 F(reb)72 510.108 Q -1.745(um. Stet clita kasd guber)-.25 F 1.744 -(gren, no sea takimata sanctus est lorem ipsum dolor sit amet.)-.225 F -(Consetetur sadipscing elitr)72 526.266 Q 3.125(,s)-.5 G -(ed diam nonumy eirmod tempor in)-3.125 E(vidunt.)-.5 E F3 3.25 -(2.2 Chapter)72 556.563 R(5)3.25 E F4 1.717 -(Lorem ipsum dolor sit amet, consetetur sadipscing elitr)72 574.74 R -4.842(,s)-.5 G 1.717(ed diam nonumy eirmod tempor)-4.842 F(in)72 590.898 -Q .318(vidunt ut labore et dolore magna aliquyam erat, sed diam v)-.5 F -.318(oluptua. At v)-.25 F .318(ero eos et accusam)-.188 F .334 -(et justo duo dolores et ea reb)72 607.056 R .334 -(um. Stet clita kasd guber)-.25 F .334 -(gren, no sea takimata sanctus est lorem)-.225 F(ipsum dolor sit amet.) -72 623.214 Q .399(Consetetur sadipscing elitr)97 639.372 R 3.524(,s)-.5 -G .399(ed diam nonumy eirmod tempor in)-3.524 F .398 -(vidunt ut labore et dolo-)-.5 F .17(re magna aliquyam erat, sed diam v) -72 655.53 R .17(oluptua. At v)-.25 F .171 -(ero eos et accusam et justo duo dolores et ea)-.188 F(reb)72 671.688 Q -(um. Stet clita kasd guber)-.25 E(gren, no sea takimata sanctus.)-.225 E -.651(At v)97 687.846 R .651 -(ero eos et accusam et justo duo dolores et ea reb)-.188 F .65 -(um. Stet clita kasd guber)-.25 F .65(gren. Sea)-.225 F .988(takimata s\ -anctus est lorem ipsum dolor sit amet. Accusam et justo duo dolores et \ -ea reb)72 704.004 R(um)-.25 E/F6 12.5/Times-Bold@0 SF -(...end of sample outline)417.073 720.162 Q F4(-)296.629 755.296 Q(2) -2.083 .704 M(-)2.083 -.704 M 0 Cg EP -%%Page: 5 5 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 16/Times-Bold@0 SF(Chapter 1)271.56 264 Q/F1 16.5/Times-BoldItalic@0 -SF(The Bonny Blue Y)224.175 280.158 Q(onder)-1.832 E/F2 10.5 -/Times-Roman@0 SF(Draft 1, 2nd re)452.775 732.662 Q(vision)-.263 E 0 Cg -EP -%%Page: 6 6 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 16/Times-Bold@0 SF(Chapter 1)271.56 90 Q/F1 16.5/Times-BoldItalic@0 -SF(The Bonny Blue Y)224.175 110.158 Q(onder)-1.832 E/F2 11 -/Times-Italic@0 SF(Lor)147 143.211 Q .797 -(em ipsum dolor sit amet, consetetur sadipscing elitr)-.407 F 3.546(,s) --1.221 G .796(ed diam non-)-3.546 F 1.002(umy eirmod tempor in)147 -156.211 R 1.002(vidunt ut labor)-.44 F 3.752(ee)-.407 G 3.752(td)-3.752 -G(olor)-3.752 E 3.752(em)-.407 G -.11(ag)-3.752 G 1.003(na aliquyam er) -.11 F(at,)-.165 E(sed diam voluptua.)147 169.211 Q/F3 11/Times-Roman@0 -SF(\212Joseph E. Blough)376.692 182.211 Q/F4 12.5/Times-Roman@0 SF 1.717 -(Lorem ipsum dolor sit amet, consetetur sadipscing elitr)72 219.264 R -4.842(,s)-.5 G 1.717(ed diam nonumy eirmod tempor)-4.842 F(in)72 235.422 -Q .318(vidunt ut labore et dolore magna aliquyam erat, sed diam v)-.5 F -.318(oluptua. At v)-.25 F .319(ero eos et accusam)-.188 F 1.18 -(et justo duo dolores et ea reb)72 251.58 R 1.18 -(um. Stet clita kasd guber)-.25 F 1.18 -(gren, no sea takimata sanctus est. At)-.225 F -.188(ve)72 267.738 S -.158(ro eos et accusam et justo duo dolores et ea reb).188 F .158 -(um. Lorem ipsum dolor sit amet, consetetur)-.25 F 1.945 -(sadipscing elitr)72 283.896 R 5.07(,s)-.5 G 1.945 -(ed diam nonumy eirmod tempor in)-5.07 F 1.945 -(vidunt ut labore et dolore magna ali-)-.5 F .245 -(quyam erat, sed diam v)72 300.054 R .245(oluptua. At v)-.25 F .245 -(ero eos et accusam et justo duo dolores et ea reb)-.188 F .246 -(um. Stet)-.25 F .158(clita kasd guber)72 316.212 R .158 -(gren, no sea takimata sanctus est. At v)-.225 F .157 -(ero eos et accusam et justo duo dolores)-.188 F(et ea reb)72 332.37 Q -(um.)-.25 E .338(Stet clita kasd guber)97 348.528 R .338 -(gren, no sea takimata sanctus est. Lorem ipsum dolor sit amet, con-) --.225 F(setetur sadipscing elitr)72 364.686 Q 3.125(,s)-.5 G -(ed diam nonumy eirmod tempor in)-3.125 E(vidunt.)-.5 E -(\231Consetetur sadipscing elitr)97 380.844 Q(,\232 dixit ea.)-.5 E -(\231Sed diam nonumy eirmod tempor in)97 397.002 Q -(vidunt ut labore,\232 dixit eum.)-.5 E .676 -(Lorem ipsum dolor sit amet, consetetur sadipscing elitr)97 413.16 R 3.8 -(,s)-.5 G .675(ed diam nonumy eirmod tem-)-3.8 F .19(por in)72 429.318 R -.191(vidunt ut labore et dolore magna aliquyam erat, sed diam v)-.5 F -.191(oluptua. Consetetur sadipsc-)-.25 F(ing elitr)72 445.476 Q 3.125 -(,s)-.5 G(ed diam nonumy eirmod tempor in)-3.125 E -(vidunt ut labore et dolore magna.)-.5 E -(\231Lorem ipsum dolor sit amet,\232 dixit ea.)97 461.634 Q .651 -(\231At v)97 477.792 R .651 -(ero eos et accusam et justo duo dolores et ea reb)-.188 F .65 -(um. Stet clita kasd guber)-.25 F .65(gren, no)-.225 F .431(sea takimat\ -a sanctus est,\232 dixit eum. \231Sed diam nonumy eirmod tempor in)72 -493.95 R .431(vidunt ut labore et)-.5 F -(dolore magna aliquyam erat, sed diam v)72 510.108 Q(oluptua.\232)-.25 E -(Consetetur sadipscing elitr)97 526.266 Q 3.125(,s)-.5 G -(ed diam nonumy eirmod tempor:)-3.125 E/F5 12.5/Times-Italic@0 SF(In)147 -550.503 Q(vidunt ut labor)-.5 E 3.125(ee)-.463 G 3.125(td)-3.125 G(olor) --3.125 E(e)-.463 E(Ma)147 566.661 Q(gna aliquyam er)-.125 E(at sed diam) --.188 E -1.388(Vo)147 582.819 S(luptua stet clita kasd guber)1.388 E(gr) --.463 E(en)-.463 E(No sea takimata sanctus est.)147 598.977 Q F4 1.448 -(Justo duo dolores et ea reb)97 623.214 R 1.448 -(um. Stet clita kasd guber)-.25 F 1.447 -(gren, no sea takimata sanctus est.)-.225 F 1.717 -(Lorem ipsum dolor sit amet, consetetur sadipscing elitr)72 639.372 R -4.842(,s)-.5 G 1.717(ed diam nonumy eirmod tempor)-4.842 F(in)72 655.53 -Q(vidunt ut labore et dolore magna aliquyam erat, sed diam v)-.5 E -(oluptua.)-.25 E(\231Stet clita kasd guber)97 671.688 Q -(gren,\232 dixit ea.)-.225 E -(\231No sea takimata sanctus est,\232 dixit eum.)97 687.846 Q 1.748 -(Nonumy eirmod tempor in)97 704.004 R 1.748 -(vidunt ut labore et dolore magna. Aliquyam erat sed diam)-.5 F -.25(vo) -72 720.162 S(luptua. At v).25 E -(ero eos et accusam et justo, duo dolores et ea reb)-.188 E(um.)-.25 E -(Draft 1, Re)262.643 756 Q 1.626 -.813(v. 2 / i)-.313 H 0 Cg EP -%%Page: 7 7 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 12/Times-Roman@0 SF(Rosemary W)72 54 Q(inspeare)-.48 E/F1 12 -/Times-Italic@0 SF(The Bonny Blue Y)249.39 54 Q(onder)-1.104 E/F2 10.5 -/Times-Roman@0 SF(LAKE A)421 54 Q(TTICA)-1.166 E('S SHORES)-1.166 E .48 -LW 78 58 72 58 DL 84 58 78 58 DL 90 58 84 58 DL 96 58 90 58 DL 102 58 96 -58 DL 108 58 102 58 DL 114 58 108 58 DL 120 58 114 58 DL 126 58 120 58 -DL 132 58 126 58 DL 138 58 132 58 DL 144 58 138 58 DL 150 58 144 58 DL -156 58 150 58 DL 162 58 156 58 DL 168 58 162 58 DL 174 58 168 58 DL 180 -58 174 58 DL 186 58 180 58 DL 192 58 186 58 DL 198 58 192 58 DL 204 58 -198 58 DL 210 58 204 58 DL 216 58 210 58 DL 222 58 216 58 DL 228 58 222 -58 DL 234 58 228 58 DL 240 58 234 58 DL 246 58 240 58 DL 252 58 246 58 -DL 258 58 252 58 DL 264 58 258 58 DL 270 58 264 58 DL 276 58 270 58 DL -282 58 276 58 DL 288 58 282 58 DL 294 58 288 58 DL 300 58 294 58 DL 306 -58 300 58 DL 312 58 306 58 DL 318 58 312 58 DL 324 58 318 58 DL 330 58 -324 58 DL 336 58 330 58 DL 342 58 336 58 DL 348 58 342 58 DL 354 58 348 -58 DL 360 58 354 58 DL 366 58 360 58 DL 372 58 366 58 DL 378 58 372 58 -DL 384 58 378 58 DL 390 58 384 58 DL 396 58 390 58 DL 402 58 396 58 DL -408 58 402 58 DL 414 58 408 58 DL 420 58 414 58 DL 426 58 420 58 DL 432 -58 426 58 DL 438 58 432 58 DL 444 58 438 58 DL 450 58 444 58 DL 456 58 -450 58 DL 462 58 456 58 DL 468 58 462 58 DL 474 58 468 58 DL 480 58 474 -58 DL 486 58 480 58 DL 492 58 486 58 DL 498 58 492 58 DL 504 58 498 58 -DL 510 58 504 58 DL 516 58 510 58 DL 522 58 516 58 DL 528 58 522 58 DL -534 58 528 58 DL 540 58 534 58 DL/F3 12.5/Times-Roman@0 SF .675 -(Lorem ipsum dolor sit amet, consetetur sadipscing elitr)97 90 R 3.801 -(,s)-.5 G .676(ed diam nonumy eirmod tem-)-3.801 F .896(por in)72 -106.158 R .896 -(vidunt. Ut labore et dolore magna aliquyam erat, sed diam v)-.5 F .895 -(oluptua at v)-.25 F .895(ero. Stet clita)-.188 F 1.361(kasd guber)72 -122.316 R 1.362 -(gren, no sea takimata sanctus est. Consetetur sadipscing elitr)-.225 F -4.487(,s)-.5 G 1.362(ed diam nonumy)-4.487 F(eirmod tempor in)72 138.474 -Q(vidunt ut labore et dolore magna.)-.5 E(In)97 154.632 Q 1.804 -(vidunt ut labore et dolore magna aliquyam erat, sed diam v)-.5 F 1.803 -(oluptua. At v)-.25 F 1.803(ero eos et)-.188 F .565 -(accusam et justo duo dolores et ea reb)72 170.79 R .566 -(um. Stet clita kasd guber)-.25 F .566(gren, no sea takimata sanctus) --.225 F 1.252(est. At v)72 186.948 R 1.251 -(ero eos et accusam et justo duo dolores et ea reb)-.188 F 1.251 -(um. Lorem ipsum dolor sit amet,)-.25 F 2.251 -(consetetur sadipscing elitr)72 203.106 R 5.376(,s)-.5 G 2.252 -(ed diam nonumy eirmod tempor in)-5.376 F 2.252 -(vidunt ut labore et dolore)-.5 F .984(magna aliquyam erat, sed diam v) -72 219.264 R .984(oluptua. At v)-.25 F .983 -(ero eos et accusam et justo duo dolores et ea)-.188 F(reb)72 235.422 Q -.238(um. Stet clita kasd guber)-.25 F .238 -(gren, no sea takimata sanctus est. At v)-.225 F .238 -(ero eos et accusam et justo)-.188 F(duo dolores et ea reb)72 251.58 Q -(um.)-.25 E/F4 12.5/Times-Bold@0 SF(...end of sample chapter)412.923 -267.738 Q F3(Draft 1, Re)260.906 756 Q 1.626 -.813(v. 2 / i)-.313 H(i) -.813 E 0 Cg EP -%%Page: 8 8 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 13.5/Times-Bold@0 SF(CONTR)226.716 264 Q(OL EQ)-.405 E -.81(UA)-.135 -G(LS CHA).81 E(OS)-.608 E/F1 10/Times-Italic@0 SF(by)310.28 275.67 Q --.25(Jo)293.6 287.34 S 2.5(eC).25 G(hang)-2.5 E(and)307.5 299.01 Q(Br) -273.71 310.68 Q(ad He)-.15 E -.1(ge)-.4 G 2.5(lC).1 G(onnor)-2.5 E(s)-.1 -E/F2 8/Times-Roman@0 SF(\2512004 J. Chang, B.H. Connors)457.696 730.18 Q -(Submitted June 3, 2004)72 720.18 Q/F3 8/Times-Italic@0 SF -(Piano Quarterly)72 730.18 Q 0 Cg EP -%%Page: 9 9 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 13.5/Times-Bold@0 SF(CONTR)208.716 90 Q(OL EQ)-.405 E -.81(UA)-.135 -G(LS CHA).81 E(OS)-.608 E/F1 11.5/Times-Roman@0 SF -(The Psychological and Auditory Impact of Serial vs. Aleatoric Music) -137.297 104.67 Q/F2 10.5/Times-Italic@0 SF(by)292.044 117.34 Q -.263(Jo) -274.53 131.01 S 2.625(eC).263 G(hang)-2.625 E(and)289.125 144.68 Q(Br) -253.644 158.35 Q(ad He)-.158 E -.105(ge)-.42 G 2.625(lC).105 G(onnor) --2.625 E(s)-.105 E/F3 10/Times-Roman@0 SF 1.644 -(Lorem ipsum dolor sit amet, consetetur sadipscing elitr)72 195.03 R(.) --.55 E .089(Sed diam nonumy eirmod tempor in)72 206.7 R .089 -(vidunt ut labore et do-)-.4 F(lore magna. Aliquyam erat, sed diam v)72 -218.37 Q(oluptua.)-.2 E 2.719(At v)84 230.04 R 2.719 -(ero eos et accusam et justo duo dolores et ea)-.15 F(reb)72 241.71 Q -.482(um. Stet clita kasd guber)-.2 F .483(gren no sea takimata. Sanctus) --.18 F 2.437(est, lorem ipsum dolor sit amet. Consetetur sadipscing)72 -253.38 R(elitr)72 265.05 Q 2.973(,s)-.4 G .473(ed diam nonumy)-2.973 F -2.974(.E)-.65 G .474(irmod tempor in)-2.974 F .474(vidunt ut labore)-.4 -F .302(et dolore magna aliquyam erat. Sed diam v)72 276.72 R .302 -(oluptua at v)-.2 F(ero)-.15 E(eos et accusam et justo.)72 288.39 Q/F4 8 -/Times-Roman@0 SF(Stet clita kasd guber)96 305.895 Q -(gren, no sea takimata sanctus est)-.144 E 2(lorem. Ipsum)96 317.565 R -(dolor sit amet, consetetur sadipscing elitr)2 E(,)-.32 E -(sed diam nonumy eirmod tempor)96 329.235 Q 4(.I)-.44 G -.32(nv)-4 G -(idunt ut labore et).32 E(dolore magna aliquyam erat, sed diam v)96 -340.905 Q(oluptua at v)-.16 E(ero.)-.12 E -(Eos et accusam et justo duo dolores et ea reb)96 352.575 Q(um stet)-.16 -E(clita.)96 364.245 Q(*)-.444 E F3 .486(Duo dolores et ea reb)84 381.75 -R .485(um, stet clita kasd guber)-.2 F .485(gren. No)-.18 F .632 -(sea takimata sanctus est lorem ipsum dolor sit amet, con-)72 393.42 R -.732(setetur sadipscing elitr)72 405.09 R 3.232(.S)-.55 G .731 -(ed diam nonumy eirmod tempor)-3.232 F(in)72 416.76 Q 2.394 -(vidunt ut labore et dolore magna aliquyam. Erat sed)-.4 F .784(diam v) -72 428.43 R .784(oluptua at. V)-.2 F .784 -(ero eos et accusam et justo duo dolo-)-1.11 F .415(res et ea reb)72 -440.1 R .415(um stet. Clita kasd guber)-.2 F .415(gren no sea takimata) --.18 F(sanctus est.)72 451.77 Q 1.695(Nonumy eirmod tempor in)84 463.44 -R 1.694(vidunt, ut labore et dolore)-.4 F .142 -(magna aliquyam erat? At v)72 475.11 R .142 -(ero eos et accusam et justo duo)-.15 F .137(dolores et ea. Reb)72 -486.78 R .137(um stet clita kasd guber)-.2 F .137(gren no sea taki-)-.18 -F .118(mata sanctus. Est lorem ipsum dolor sit amet. Sadipscing)72 -498.45 R<87>-.277 E .586(elitr sed diam nonumy eirmod tempor in)72 -510.12 R .587(vidunt. Ut labore)-.4 F 2.404 -(et dolore magna aliquyam erat, sed diam v)72 521.79 R 2.403 -(oluptua. At)-.2 F -.15(ve)72 533.46 S .298 -(ro eos et accusam et justo duo dolores et ea reb).15 F .299(um. Stet) --.2 F(clita kasd guber)72 545.13 Q(gren no sea.)-.18 E/F5 10 -/Times-Bold@0 SF(Schoenber)72 567.012 Q<678a>-.1 E -(The Origins of Serial Pitch Or)72 578.682 Q(ganization)-.1 E F3 1.623 -(Lorem ipsum dolor sit amet, consetetur sadipscing elitr)72 591.81 R(,) --.4 E .274(sed diam nonumy eirmod tempor in)72 603.48 R .275 -(vidunt ut labore et do-)-.4 F .334 -(lore magna aliquyam erat, sed diam v)72 615.15 R .333(oluptua. At v)-.2 -F .333(ero eos)-.15 F 1.951(et accusam et justo duo dolores et ea reb)72 -626.82 R 1.951(um. Stet clita)-.2 F .528(kasd guber)72 638.49 R .527 -(gren, no sea takimata sanctus est lorem. Ipsum)-.18 F .83 -(dolor sit amet consetetur sadipscing. Elitr)72 650.16 R 3.33(,s)-.4 G -.83(ed diam non-)-3.33 F(umy)72 661.83 Q 3.759(,e)-.65 G 1.259 -(irmod tempor in)-3.759 F 1.259(vidunt ut labore et dolore magna.)-.4 F -.21(Aliquyam erat sed diam v)72 673.5 R .21(oluptua, at v)-.2 F .21 -(ero eos. Et accusam)-.15 F .32 LW 76 687.181 72 687.181 DL 80 687.181 -76 687.181 DL 84 687.181 80 687.181 DL 88 687.181 84 687.181 DL 92 -687.181 88 687.181 DL 96 687.181 92 687.181 DL 100 687.181 96 687.181 DL -104 687.181 100 687.181 DL 108 687.181 104 687.181 DL 112 687.181 108 -687.181 DL 116 687.181 112 687.181 DL 120 687.181 116 687.181 DL F4 -(*Clita ipsum dolor sit amet, consetetur sadipscing elitr)72 700.181 Q -(.)-.44 E 1.172(\207Sadipscing diam nonumy eirmod tempor in)72 710.181 R -1.173(vidunt ut labore et dolore)-.32 F(magna aliquyam erat, sed diam v) -72 720.181 Q(oluptua.)-.16 E F3 .664(et justo duo dolores et ea reb)324 -195.03 R .664(um stet clita kasd guber)-.2 F(gren)-.18 E 1.481 -(lorem ipsum. Dolor sit amet consetetur)324 206.7 R 3.982(,s)-.4 G 1.482 -(adipscing elitr)-3.982 F(,)-.4 E 1.698 -(sed diam. Nonumy eirmod tempor in)324 218.37 R 1.697 -(vidunt ut labore et)-.4 F 1.312(dolore. Magna aliquyam erat sed diam v) -324 230.04 R 1.313(oluptua at v)-.2 F(ero.)-.15 E .562 -(Eos et accusam et justo duo dolores et ea reb)324 241.71 R .561 -(um stet clita)-.2 F(kasd. Guber)324 253.38 Q -(gren no sea takimata sanctus est.)-.18 E .437 -(Amet consetetur sadipscing elitr sed diam nonumy eir)336 265.05 R(-)-.2 -E 2.515(mod. T)324 276.72 R 2.515(empor in)-.7 F 2.515 -(vidunt ut labore. Et dolore magna ali-)-.4 F .245 -(quyam erat, sed diam v)324 288.39 R .245(oluptua, at v)-.2 F .245 -(ero. Eos et accusam et)-.15 F(justo duo dolores et ea reb)324 300.06 Q -(um. Stet clita kasd guber)-.2 E(gren.)-.18 E 1.954 -(No sea takimata\210 sanctus est lorem. Ipsum dolor sit)336 311.73 R -1.892(amet, consetetur sadipscing elitr)324 323.4 R 4.391(,s)-.4 G 1.891 -(ed diam nonumy eir)-4.391 F(-)-.2 E .691(mod tempor in)324 335.07 R -.691(vidunt ut labore et dolore magna aliquyam)-.4 F 1.161 -(erat, sed diam v)324 346.74 R 1.161(oluptua. At v)-.2 F 1.161 -(ero eos et accusam et justo)-.15 F .563(duo dolores et ea reb)324 -358.41 R .564(um amet. Consetetur sadipscing elitr)-.2 F 1.975 -(sed diam nonumy eirmod tempor in)324 370.08 R 1.975 -(vidunt ut labore, et)-.4 F .93(dolore magna aliquyam erat. Sed diam v) -324 381.75 R .93(oluptua, at v)-.2 F(ero,)-.15 E -(eos et accusam et justo duo dolores et ea reb)324 393.42 Q(um.)-.2 E F5 -(Messiaen to Stockhausen\212)324 415.302 Q(The Quest f)324 426.972 Q -(or Absolute Contr)-.25 E(ol)-.18 E F3 -1.11(Ve)324 440.1 S 2.258 -(ro eos et accusam et justo duo dolores et ea reb)1.11 F(um)-.2 E(amet:) -324 451.77 Q/F6 10/Times-Italic@0 SF(Eirmod tempor in)348 469.275 Q -(vidunt)-.4 E(Ut labor)348 480.945 Q 2.5(ee)-.37 G 2.5(td)-2.5 G(olor) --2.5 E 2.5(em)-.37 G -.1(ag)-2.5 G(na aliquyam er).1 E(at)-.15 E -(Sed diam voluptua)348 492.615 Q(At ver)348 504.285 Q 2.5(oe)-.45 G -(os et accusam et justo duo dolor)-2.5 E(es.)-.37 E F3 1.923 -(Lorem ipsum dolor sit amet, consetetur sadipscing elitr)324 521.79 R -1.698(sed diam. Nonumy eirmod tempor in)324 533.46 R 1.697 -(vidunt ut labore et)-.4 F 1.104 -(dolore magna. Aliquyam erat, sed diam v)324 545.13 R 1.104 -(oluptua at v)-.2 F(ero)-.15 E -(eos et accusam. Et justo duo dolores et ea reb)324 556.8 Q(um stet.)-.2 -E 2.962(Elitr sed diam nonumy eirmod tempor)336 568.47 R 5.461(.I)-.55 G --.4(nv)-5.461 G 2.961(idunt ut).4 F .565 -(labore et dolore magna aliquyam erat sed. Diam v)324 580.14 R(oluptua) --.2 E(at v)324 591.81 Q -(ero eos et accusam et justo duo dolores et ea reb)-.15 E(um.)-.2 E F4 -(Sanctus est lorem ipsum dolor sit amet, consetetur sadip-)348 620.16 Q -2(scing. Elitr)348 631.83 R 2(,s)-.32 G(ed diam nonumy eirmod tempor)-2 -E 2(,i)-.32 G -.32(nv)-2 G(idunt ut).32 E -(labore et dolore magna aliquyam.)348 643.5 Q(Erat sed diam v)4 E(olup-) --.16 E(tua, at v)348 655.17 Q(ero eos et accusam et justo reb)-.12 E -(um amet.)-.16 E(Consetetur sadipscing elitr sed diam nonumy eirmod sed) -348 666.84 Q(diam nonumy)348 678.51 Q 2(,e)-.52 G(irmod tempor)-2 E 4 -(.I)-.44 G -.32(nv)-4 G(idunt tempor in).32 E(vidunt)-.32 E(ut labore.) -348 690.18 Q(** Et dolore et magna aliquyam erat, sed diam)-.444 E 328 -697.181 324 697.181 DL 332 697.181 328 697.181 DL 336 697.181 332 -697.181 DL 340 697.181 336 697.181 DL 344 697.181 340 697.181 DL 348 -697.181 344 697.181 DL 352 697.181 348 697.181 DL 356 697.181 352 -697.181 DL 360 697.181 356 697.181 DL 364 697.181 360 697.181 DL 368 -697.181 364 697.181 DL 372 697.181 368 697.181 DL<8854>324 710.181 Q -.366(akimata sadipscing elitr)-.64 F 2.366(,s)-.32 G .365 -(ed diam nonumy eirmod tempor in)-2.366 F .365(vidunt ut)-.32 F -(labore et dolore magna aliquyam erat, sed diam v)324 720.181 Q -(oluptua.)-.16 E F3(-)289.504 755.437 Q(1)1.666 .563 M(-)1.666 -.563 M 0 -Cg EP -%%Page: 10 10 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10.5/Times-Roman@0 SF(Chang, Connors)489.748 54 Q/F1 9/Times-Roman@0 -SF(CONTR)72 54 Q(OL EQ)-.36 E -.36(UA)-.09 G(LS CHA).36 E(OS)-.495 E .48 -LW 78 58 72 58 DL 84 58 78 58 DL 90 58 84 58 DL 96 58 90 58 DL 102 58 96 -58 DL 108 58 102 58 DL 114 58 108 58 DL 120 58 114 58 DL 126 58 120 58 -DL 132 58 126 58 DL 138 58 132 58 DL 144 58 138 58 DL 150 58 144 58 DL -156 58 150 58 DL 162 58 156 58 DL 168 58 162 58 DL 174 58 168 58 DL 180 -58 174 58 DL 186 58 180 58 DL 192 58 186 58 DL 198 58 192 58 DL 204 58 -198 58 DL 210 58 204 58 DL 216 58 210 58 DL 222 58 216 58 DL 228 58 222 -58 DL 234 58 228 58 DL 240 58 234 58 DL 246 58 240 58 DL 252 58 246 58 -DL 258 58 252 58 DL 264 58 258 58 DL 270 58 264 58 DL 276 58 270 58 DL -282 58 276 58 DL 288 58 282 58 DL 294 58 288 58 DL 300 58 294 58 DL 306 -58 300 58 DL 312 58 306 58 DL 318 58 312 58 DL 324 58 318 58 DL 330 58 -324 58 DL 336 58 330 58 DL 342 58 336 58 DL 348 58 342 58 DL 354 58 348 -58 DL 360 58 354 58 DL 366 58 360 58 DL 372 58 366 58 DL 378 58 372 58 -DL 384 58 378 58 DL 390 58 384 58 DL 396 58 390 58 DL 402 58 396 58 DL -408 58 402 58 DL 414 58 408 58 DL 420 58 414 58 DL 426 58 420 58 DL 432 -58 426 58 DL 438 58 432 58 DL 444 58 438 58 DL 450 58 444 58 DL 456 58 -450 58 DL 462 58 456 58 DL 468 58 462 58 DL 474 58 468 58 DL 480 58 474 -58 DL 486 58 480 58 DL 492 58 486 58 DL 498 58 492 58 DL 504 58 498 58 -DL 510 58 504 58 DL 516 58 510 58 DL 522 58 516 58 DL 528 58 522 58 DL -534 58 528 58 DL 540 58 534 58 DL 546 58 540 58 DL 552 58 546 58 DL 558 -58 552 58 DL/F2 8/Times-Roman@0 SF -.16(vo)96 90 S(luptua, at v).16 E 2 -(ero. Eos)-.12 F(et accusam et justo duo.)2 E/F3 10/Times-Roman@0 SF -3.345(Lorem ipsum dolor sit amet, consetetur sadipscing)84 113.34 R -(elitr)72 125.01 Q 3.224(.S)-.55 G .724(ed diam nonumy eirmod tempor in) --3.224 F .723(vidunt ut labore)-.4 F(et dolore magna.)72 136.68 Q 1.694 -(Nonumy eirmod tempor in)84 148.35 R 1.694(vidunt, ut labore et dolore) --.4 F .142(magna aliquyam erat? At v)72 160.02 R .142 -(ero eos et accusam et justo duo)-.15 F .137(dolores et ea. Reb)72 -171.69 R .137(um stet clita kasd guber)-.2 F .137(gren no sea taki-)-.18 -F .709(mata sanctus. Est lorem ipsum dolor sit amet. Sadipscing)72 -183.36 R .586(elitr sed diam nonumy eirmod tempor in)72 195.03 R .587 -(vidunt. Ut labore)-.4 F 2.404 -(et dolore magna aliquyam erat, sed diam v)72 206.7 R 2.403(oluptua. At) --.2 F -.15(ve)72 218.37 S .298 -(ro eos et accusam et justo duo dolores et ea reb).15 F .299(um. Stet) --.2 F 2.75(clita kasd guber)72 230.04 R 2.75 -(gren no sea. Aliquyam erat, sed diam)-.18 F -.2(vo)72 241.71 S(luptua.) -.2 E/F4 10/Times-Bold@0 SF -.15(Jo)72 263.592 S(hn Cage\212).15 E(Lea)72 -275.262 Q(ving It All to Chance)-.25 E F3 1.993 -(Sit amet, consetetur sadipscing elitr)72 288.39 R 4.493(,s)-.4 G 1.993 -(ed diam nonumy)-4.493 F(.)-.65 E 1.49(Eirmod tempor in)72 300.06 R 1.49 -(vidunt ut labore et dolore magna. Ali-)-.4 F .495 -(quyam erat, sed diam v)72 311.73 R .495(oluptua at v)-.2 F .495 -(ero. Eos et accusam et)-.15 F 1.077(justo duo dolores et ea reb)72 -323.4 R 1.076(um. Stet clita kasd guber)-.2 F(gren,)-.18 E -(no sea takimata sanctus est.)72 335.07 Q 1.466 -(Consetetur sadipscing elitr)84 346.74 R 3.967(,s)-.4 G 1.467 -(ed diam nonumy eirmod)-3.967 F .728(tempor in)72 358.41 R .727 -(vidunt ut labore et dolore magna aliquyam erat,)-.4 F 1.41(sed diam v) -72 370.08 R 1.41(oluptua. At v)-.2 F 1.41 -(ero eos et accusam et justo duo)-.15 F .054(dolores et ea reb)72 381.75 -R .054(um. Stet clita kasd guber)-.2 F .054(gren, no sea taki-)-.18 F -1.197(mata sanctus est lorem. Ipsum dolor sit amet, consetetur)72 393.42 -R .052(sadipscing elitr)72 405.09 R 2.552(,s)-.4 G .051 -(ed diam nonumy eirmod tempor in)-2.552 F(vidunt)-.4 E .594 -(ut labore et dolore magna aliquyam erat, sed diam v)72 416.76 R(olup-) --.2 E 1.998(tua. At v)72 428.43 R 1.997 -(ero eos et accusam et justo duo dolores et ea)-.15 F(reb)72 440.1 Q -(um.)-.2 E 1.006(Stet clita kasd guber)84 451.77 R 1.006 -(gren. No sea takimata sanctus est)-.18 F 1.701 -(lorem ipsum dolor sit. Amet consetetur sadipscing elitr)72 463.44 R(,) --.4 E 1.975(sed diam nonumy eirmod tempor)72 475.11 R 4.475(.I)-.55 G --.4(nv)-4.475 G 1.975(idunt ut labore et).4 F 1.139 -(dolore magna aliquyam erat, sed diam v)72 486.78 R 1.138(oluptua, at v) --.2 F(ero.)-.15 E .183(Eos et accusam et justo duo dolores et ea reb)72 -498.45 R .183(um. Stet clita)-.2 F .388(kasd guber)72 510.12 R .387 -(gren, no sea takimata. Sanctus est lorem ipsum)-.18 F 1.161 -(dolor sit amet consetetur)72 521.79 R 3.661(.S)-.55 G 1.161 -(adipscing elitr sed diam non-)-3.661 F 1.213(umy eirmod tempor in)72 -533.46 R 1.212(vidunt. Ut labore et dolore magna)-.4 F .395 -(aliquyam erat, sed diam v)72 545.13 R .396(oluptua. At v)-.2 F .396 -(ero eos et accusam)-.15 F(et justo duo dolores et ea reb)72 556.8 Q -(um.)-.2 E F2(Stet clita kasd guber)96 576.82 Q(gren no sea.)-.144 E --.64(Ta)4 G(kimata sanctus est).64 E(lorem ipsum dolor sit amet.)96 -588.49 Q(Consetetur sadipscing elitr)4 E -(sed diam nonumy eirmod tempor in)96 600.16 Q(vidunt ut labore et)-.32 E -2(dolore. Magna)96 611.83 R(aliquyam)2 E 2(*e)-.444 G(rat, sed diam v)-2 -E(oluptua at v)-.16 E(ero)-.12 E(eos et accusam.)96 623.5 Q -(Et justo duo dolores et ea reb)4 E(um, stet)-.16 E(clita kasd guber)96 -635.17 Q(gren, no sea takimata.)-.144 E(Sanctus est lorem ipsum.)102 -646.84 Q(Dolor sit amet consetetur)4 E(sadipscing elitr)96 658.51 Q 4 -(.S)-.44 G(ed diam nonumy eirmod tempor)-4 E(in)96 670.18 Q -(vidunt ut labore.)-.32 E(Et dolore magna aliquyam erat, sed)4 E .32 LW -76 677.181 72 677.181 DL 80 677.181 76 677.181 DL 84 677.181 80 677.181 -DL 88 677.181 84 677.181 DL 92 677.181 88 677.181 DL 96 677.181 92 -677.181 DL 100 677.181 96 677.181 DL 104 677.181 100 677.181 DL 108 -677.181 104 677.181 DL 112 677.181 108 677.181 DL 116 677.181 112 -677.181 DL 120 677.181 116 677.181 DL 1.926 -(**Labore diam nonumy eirmod tempor)72 690.181 R 3.925(,i)-.32 G -.32 -(nv)-3.925 G 1.925(idunt ut labore et dolore).32 F 1.584 -(magna aliquyam.)72 700.181 R 1.585(Erat sed diam v)5.584 F 1.585 -(oluptua, at v)-.16 F 1.585(ero eos et accusam et)-.12 F(justo.)72 -710.181 Q(*Aliquyam nonumy eirmod tempor in)72 720.181 Q -(vidunt ut labore.)-.32 E(diam v)348 90 Q 2(oluptua. At)-.16 F -.12(ve)2 -G(ro eos et accusam et justo duo.).12 E(Dolores et ea reb)348 101.67 Q -(um stet clita kasd guber)-.16 E(gren no sea.)-.144 E -.64(Ta)354 113.34 -S(kimata lorem ipsum dolor sit amet consetetur sadip-).64 E(scing elitr) -348 125.01 Q 4(.S)-.44 G(ed diam, nonumy eirmod tempor)-4 E 2(,i)-.32 G --.32(nv)-2 G(idunt ut).32 E(labore et dolore magna.)348 136.68 Q -(Aliquyam erat sed diam v)4 E(olup-)-.16 E 2(tua. At)348 148.35 R -.12 -(ve)2 G(ro eos et accusam et justo.).12 E<87>-.222 E F3 .733 -(Duo dolores et ea reb)336 171.69 R .732(um, stet clita kasd guber)-.2 F -.732(gren, no)-.18 F 2.134 -(sea takimata sanctus. Est lorem ipsum. Dolor sit amet,)324 183.36 R -3.252(consetetur sadipscing elitr)324 195.03 R 5.752(,s)-.4 G 3.252 -(ed diam nonumy)-5.752 F 5.751(.E)-.65 G(irmod)-5.751 E .727(tempor in) -324 206.7 R .728(vidunt ut labore et dolore magna aliquyam erat,)-.4 F -(sed diam v)324 218.37 Q(oluptua. At v)-.2 E(ero eos et accusam.)-.15 E -.271(Et justo duo dolores et ea reb)336 230.04 R .271 -(um stet clita kasd. Guber)-.2 F(-)-.2 E 1.311 -(gren no sea takimata sanctus est. Lorem ipsum dolor sit)324 241.71 R -1.892(amet, consetetur sadipscing elitr)324 253.38 R 4.391(,s)-.4 G -1.891(ed diam nonumy eir)-4.391 F(-)-.2 E .691(mod tempor in)324 265.05 -R .691(vidunt ut labore et dolore magna aliquyam)-.4 F 1.161 -(erat, sed diam v)324 276.72 R 1.161(oluptua. At v)-.2 F 1.161 -(ero eos et accusam et justo)-.15 F .387(duo dolores et ea reb)324 -288.39 R .387(um. Stet clita kasd guber)-.2 F .387(gren, no sea)-.18 F -(takimata sanctus est.)324 300.06 Q F4(Bey)324 321.942 Q(ond Cage\212) --.25 E(Catching the Midnight T)324 333.612 Q(rain)-.74 E F3 1.644 -(Lorem ipsum dolor sit amet, consetetur sadipscing elitr)324 346.74 R(.) --.55 E .089(Sed diam nonumy eirmod tempor in)324 358.41 R .089 -(vidunt ut labore et do-)-.4 F(lore magna. Aliquyam erat, sed diam v)324 -370.08 Q(oluptua.)-.2 E 2.719(At v)336 381.75 R 2.719 -(ero eos et accusam et justo duo dolores et ea)-.15 F(reb)324 393.42 Q -.482(um. Stet clita kasd guber)-.2 F .483(gren no sea takimata. Sanctus) --.18 F 2.437(est, lorem ipsum dolor sit amet. Consetetur sadipscing)324 -405.09 R(elitr)324 416.76 Q 2.973(,s)-.4 G .473(ed diam nonumy)-2.973 F -2.974(.E)-.65 G .474(irmod tempor in)-2.974 F .474(vidunt ut labore)-.4 -F .302(et dolore magna aliquyam erat. Sed diam v)324 428.43 R .302 -(oluptua at v)-.2 F(ero)-.15 E(eos et accusam et justo.)324 440.1 Q .485 -(Duo dolores et ea reb)336 451.77 R .486(um, stet clita kasd guber)-.2 F -.486(gren. No)-.18 F .632 -(sea takimata sanctus est lorem ipsum dolor sit amet, con-)324 463.44 R -.731(setetur sadipscing elitr)324 475.11 R 3.231(.S)-.55 G .732 -(ed diam nonumy eirmod tempor)-3.231 F(in)324 486.78 Q 2.394 -(vidunt ut labore et dolore magna aliquyam. Erat sed)-.4 F .784(diam v) -324 498.45 R .784(oluptua at. V)-.2 F .784 -(ero eos et accusam et justo duo dolo-)-1.11 F .415(res et ea reb)324 -510.12 R .415(um stet. Clita kasd guber)-.2 F .415(gren no sea takimata) --.18 F(sanctus est.)324 521.79 Q 1.694(Nonumy eirmod tempor in)336 -533.46 R 1.694(vidunt, ut labore et dolore)-.4 F .142 -(magna aliquyam erat? At v)324 545.13 R .142 -(ero eos et accusam et justo duo)-.15 F .137(dolores et ea. Reb)324 -556.8 R .137(um stet clita kasd guber)-.2 F .137(gren no sea taki-)-.18 -F .084(mata sanctus. Est lorem ipsum dolor sit amet. Sadipscing\210)324 -568.47 R .586(elitr sed diam nonumy eirmod tempor in)324 580.14 R .586 -(vidunt. Ut labore)-.4 F 2.404 -(et dolore magna aliquyam erat, sed diam v)324 591.81 R 2.404 -(oluptua. At)-.2 F -.15(ve)324 603.48 S .298 -(ro eos et accusam et justo duo dolores et ea reb).15 F .298(um. Stet) --.2 F 1.117(clita kasd guber)324 615.15 R 1.118 -(gren no sea takimata lorem. Ipsum dolor)-.18 F 2.279 -(sit amet, consetetur sadipscing elitr)324 626.82 R 4.778(.S)-.55 G -2.278(ed diam nonumy)-4.778 F 1.698(eirmod tempor in)324 638.49 R 1.699 -(vidunt ut labore et dolore magna. Ali-)-.4 F .384 -(quyam erat, sed diam v)324 650.16 R .384(oluptua. At v)-.2 F .384 -(ero eos et accusam et)-.15 F 1.076(justo duo dolores et ea reb)324 -661.83 R 1.077(um. Stet clita kasd guber)-.2 F(gren,)-.18 E -(no sea takimata sanctus est.)324 673.5 Q 328 687.181 324 687.181 DL 332 -687.181 328 687.181 DL 336 687.181 332 687.181 DL 340 687.181 336 -687.181 DL 344 687.181 340 687.181 DL 348 687.181 344 687.181 DL 352 -687.181 348 687.181 DL 356 687.181 352 687.181 DL 360 687.181 356 -687.181 DL 364 687.181 360 687.181 DL 368 687.181 364 687.181 DL 372 -687.181 368 687.181 DL F2(\207Justo v)324 700.181 Q -(ero eos et accusam et justo duo.)-.12 E 1.173 -(\210Sadipscing diam nonumy eirmod tempor in)324 710.181 R 1.172 -(vidunt ut labore et dolore)-.32 F(magna aliquyam erat, sed diam v)324 -720.181 Q(oluptua.)-.16 E F3(-)307.504 755.437 Q(2)1.666 .563 M(-)1.666 --.563 M 0 Cg EP -%%Page: 11 11 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10.5/Times-Roman@0 SF(Chang, Connors)54 54 Q/F1 9/Times-Roman@0 SF -(CONTR)428.31 54 Q(OL EQ)-.36 E -.36(UA)-.09 G(LS CHA).36 E(OS)-.495 E -.48 LW 60 58 54 58 DL 66 58 60 58 DL 72 58 66 58 DL 78 58 72 58 DL 84 58 -78 58 DL 90 58 84 58 DL 96 58 90 58 DL 102 58 96 58 DL 108 58 102 58 DL -114 58 108 58 DL 120 58 114 58 DL 126 58 120 58 DL 132 58 126 58 DL 138 -58 132 58 DL 144 58 138 58 DL 150 58 144 58 DL 156 58 150 58 DL 162 58 -156 58 DL 168 58 162 58 DL 174 58 168 58 DL 180 58 174 58 DL 186 58 180 -58 DL 192 58 186 58 DL 198 58 192 58 DL 204 58 198 58 DL 210 58 204 58 -DL 216 58 210 58 DL 222 58 216 58 DL 228 58 222 58 DL 234 58 228 58 DL -240 58 234 58 DL 246 58 240 58 DL 252 58 246 58 DL 258 58 252 58 DL 264 -58 258 58 DL 270 58 264 58 DL 276 58 270 58 DL 282 58 276 58 DL 288 58 -282 58 DL 294 58 288 58 DL 300 58 294 58 DL 306 58 300 58 DL 312 58 306 -58 DL 318 58 312 58 DL 324 58 318 58 DL 330 58 324 58 DL 336 58 330 58 -DL 342 58 336 58 DL 348 58 342 58 DL 354 58 348 58 DL 360 58 354 58 DL -366 58 360 58 DL 372 58 366 58 DL 378 58 372 58 DL 384 58 378 58 DL 390 -58 384 58 DL 396 58 390 58 DL 402 58 396 58 DL 408 58 402 58 DL 414 58 -408 58 DL 420 58 414 58 DL 426 58 420 58 DL 432 58 426 58 DL 438 58 432 -58 DL 444 58 438 58 DL 450 58 444 58 DL 456 58 450 58 DL 462 58 456 58 -DL 468 58 462 58 DL 474 58 468 58 DL 480 58 474 58 DL 486 58 480 58 DL -492 58 486 58 DL 498 58 492 58 DL 504 58 498 58 DL 510 58 504 58 DL 516 -58 510 58 DL 522 58 516 58 DL 528 58 522 58 DL 534 58 528 58 DL 540 58 -534 58 DL/F2 10/Times-Roman@0 SF 3.345 -(Lorem ipsum dolor sit amet, consetetur sadipscing)66 90 R(elitr)54 -101.67 Q 3.413(,s)-.4 G .914(ed diam nonumy eirmod tempor in)-3.413 F -.914(vidunt ut labore)-.4 F 2.404 -(et dolore magna aliquyam erat, sed diam v)54 113.34 R 2.403 -(oluptua. At)-.2 F -.15(ve)54 125.01 S .298 -(ro eos et accusam et justo duo dolores et ea reb).15 F .299(um. Stet) --.2 F(clita kasd guber)54 136.68 Q(gren, no sea takimata sanctus est.) --.18 E/F3 10/Times-Bold@0 SF(...end of sample article)191.9 148.35 Q F2 -<8a>150.586 170.44 Q(END)1.25 I<8a>.277 -1.25 M(-)289.504 755.437 Q(3) -1.666 .563 M(-)1.666 -.563 M 0 Cg EP -%%Trailer -end -%%EOF diff --git a/gen/usr/share/doc/groff/1.19.2/examples/mom/typesetting.ps b/gen/usr/share/doc/groff/1.19.2/examples/mom/typesetting.ps deleted file mode 100644 index 138674d..0000000 --- a/gen/usr/share/doc/groff/1.19.2/examples/mom/typesetting.ps +++ /dev/null @@ -1,999 +0,0 @@ -%!PS-Adobe-3.0 -%%Creator: groff version 1.19.2 -%%CreationDate: Sat Nov 19 17:19:37 2016 -%%DocumentNeededResources: font Times-Bold -%%+ font Helvetica-Bold -%%+ font Helvetica-Oblique -%%+ font Helvetica -%%+ font Times-Roman -%%+ font Times-Italic -%%+ font NewCenturySchlbk-Roman -%%+ font NewCenturySchlbk-Bold -%%+ font Palatino-Roman -%%+ font Palatino-Italic -%%DocumentSuppliedResources: file penguin.ps -%%+ procset grops 1.19 2 -%%LanguageLevel: 2 -%%Pages: 3 -%%PageOrder: Ascend -%%DocumentMedia: Default 612 792 0 () () -%%Orientation: Portrait -%%EndComments -%%BeginDefaults -%%PageMedia: Default -%%EndDefaults -%%BeginProlog -%%BeginResource: procset grops 1.19 2 -%!PS-Adobe-3.0 Resource-ProcSet -/setpacking where{ -pop -currentpacking -true setpacking -}if -/grops 120 dict dup begin -/SC 32 def -/A/show load def -/B{0 SC 3 -1 roll widthshow}bind def -/C{0 exch ashow}bind def -/D{0 exch 0 SC 5 2 roll awidthshow}bind def -/E{0 rmoveto show}bind def -/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def -/G{0 rmoveto 0 exch ashow}bind def -/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/I{0 exch rmoveto show}bind def -/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def -/K{0 exch rmoveto 0 exch ashow}bind def -/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/M{rmoveto show}bind def -/N{rmoveto 0 SC 3 -1 roll widthshow}bind def -/O{rmoveto 0 exch ashow}bind def -/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/Q{moveto show}bind def -/R{moveto 0 SC 3 -1 roll widthshow}bind def -/S{moveto 0 exch ashow}bind def -/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/SF{ -findfont exch -[exch dup 0 exch 0 exch neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/MF{ -findfont -[5 2 roll -0 3 1 roll -neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/level0 0 def -/RES 0 def -/PL 0 def -/LS 0 def -/MANUAL{ -statusdict begin/manualfeed true store end -}bind def -/PLG{ -gsave newpath clippath pathbbox grestore -exch pop add exch pop -}bind def -/BP{ -/level0 save def -1 setlinecap -1 setlinejoin -72 RES div dup scale -LS{ -90 rotate -}{ -0 PL translate -}ifelse -1 -1 scale -}bind def -/EP{ -level0 restore -showpage -}def -/DA{ -newpath arcn stroke -}bind def -/SN{ -transform -.25 sub exch .25 sub exch -round .25 add exch round .25 add exch -itransform -}bind def -/DL{ -SN -moveto -SN -lineto stroke -}bind def -/DC{ -newpath 0 360 arc closepath -}bind def -/TM matrix def -/DE{ -TM currentmatrix pop -translate scale newpath 0 0 .5 0 360 arc closepath -TM setmatrix -}bind def -/RC/rcurveto load def -/RL/rlineto load def -/ST/stroke load def -/MT/moveto load def -/CL/closepath load def -/Fr{ -setrgbcolor fill -}bind def -/setcmykcolor where{ -pop -/Fk{ -setcmykcolor fill -}bind def -}if -/Fg{ -setgray fill -}bind def -/FL/fill load def -/LW/setlinewidth load def -/Cr/setrgbcolor load def -/setcmykcolor where{ -pop -/Ck/setcmykcolor load def -}if -/Cg/setgray load def -/RE{ -findfont -dup maxlength 1 index/FontName known not{1 add}if dict begin -{ -1 index/FID ne{def}{pop pop}ifelse -}forall -/Encoding exch def -dup/FontName exch def -currentdict end definefont pop -}bind def -/DEFS 0 def -/EBEGIN{ -moveto -DEFS begin -}bind def -/EEND/end load def -/CNT 0 def -/level1 0 def -/PBEGIN{ -/level1 save def -translate -div 3 1 roll div exch scale -neg exch neg exch translate -0 setgray -0 setlinecap -1 setlinewidth -0 setlinejoin -10 setmiterlimit -[]0 setdash -/setstrokeadjust where{ -pop -false setstrokeadjust -}if -/setoverprint where{ -pop -false setoverprint -}if -newpath -/CNT countdictstack def -userdict begin -/showpage{}def -/setpagedevice{}def -}bind def -/PEND{ -countdictstack CNT sub{end}repeat -level1 restore -}bind def -end def -/setpacking where{ -pop -setpacking -}if -%%EndResource -%%EndProlog -%%BeginSetup -%%BeginFeature: *PageSize Default -<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice -%%EndFeature -%%IncludeResource: font Times-Bold -%%IncludeResource: font Helvetica-Bold -%%IncludeResource: font Helvetica-Oblique -%%IncludeResource: font Helvetica -%%IncludeResource: font Times-Roman -%%IncludeResource: font Times-Italic -%%IncludeResource: font NewCenturySchlbk-Roman -%%IncludeResource: font NewCenturySchlbk-Bold -%%IncludeResource: font Palatino-Roman -%%IncludeResource: font Palatino-Italic -grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 -def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron -/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent -/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen -/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon -/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O -/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex -/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y -/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft -/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl -/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut -/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash -/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen -/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft -/logicalnot/minus/registered/macron/degree/plusminus/twosuperior -/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior -/ordmasculine/guilsinglright/onequarter/onehalf/threequarters -/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE -/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex -/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn -/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla -/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis -/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash -/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def -/Palatino-Italic@0 ENC0/Palatino-Italic RE/Palatino-Roman@0 ENC0 -/Palatino-Roman RE/NewCenturySchlbk-Bold@0 ENC0/NewCenturySchlbk-Bold RE -/NewCenturySchlbk-Roman@0 ENC0/NewCenturySchlbk-Roman RE/Times-Italic@0 -ENC0/Times-Italic RE/Times-Roman@0 ENC0/Times-Roman RE/Helvetica@0 ENC0 -/Helvetica RE/Helvetica-Oblique@0 ENC0/Helvetica-Oblique RE -/Helvetica-Bold@0 ENC0/Helvetica-Bold RE/Times-Bold@0 ENC0/Times-Bold RE -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 12/Times-Bold@0 SF(Example 1)72 72 Q(:)-.666 E -1.332(Ta)72 89.5 S -(sting notes using padding, string tabs and multi-columns)1.332 E .48 LW -78 93.25 72 93.25 DL 80.064 93.25 74.064 93.25 DL 86.064 93.25 80.064 -93.25 DL 92.064 93.25 86.064 93.25 DL 98.064 93.25 92.064 93.25 DL -104.064 93.25 98.064 93.25 DL 110.064 93.25 104.064 93.25 DL 116.064 -93.25 110.064 93.25 DL 122.064 93.25 116.064 93.25 DL 128.064 93.25 -122.064 93.25 DL 134.064 93.25 128.064 93.25 DL 140.064 93.25 134.064 -93.25 DL 146.064 93.25 140.064 93.25 DL 152.064 93.25 146.064 93.25 DL -158.064 93.25 152.064 93.25 DL 164.064 93.25 158.064 93.25 DL 170.064 -93.25 164.064 93.25 DL 176.064 93.25 170.064 93.25 DL 182.064 93.25 -176.064 93.25 DL 188.064 93.25 182.064 93.25 DL 194.064 93.25 188.064 -93.25 DL 200.064 93.25 194.064 93.25 DL 206.064 93.25 200.064 93.25 DL -212.064 93.25 206.064 93.25 DL 218.064 93.25 212.064 93.25 DL 224.064 -93.25 218.064 93.25 DL 230.064 93.25 224.064 93.25 DL 236.064 93.25 -230.064 93.25 DL 242.064 93.25 236.064 93.25 DL 248.064 93.25 242.064 -93.25 DL 254.064 93.25 248.064 93.25 DL 260.064 93.25 254.064 93.25 DL -266.064 93.25 260.064 93.25 DL 272.064 93.25 266.064 93.25 DL 278.064 -93.25 272.064 93.25 DL 284.064 93.25 278.064 93.25 DL 290.064 93.25 -284.064 93.25 DL 296.064 93.25 290.064 93.25 DL 302.064 93.25 296.064 -93.25 DL 308.064 93.25 302.064 93.25 DL 314.064 93.25 308.064 93.25 DL -320.064 93.25 314.064 93.25 DL 326.064 93.25 320.064 93.25 DL 332.064 -93.25 326.064 93.25 DL 338.064 93.25 332.064 93.25 DL 344.064 93.25 -338.064 93.25 DL 350.064 93.25 344.064 93.25 DL 356.064 93.25 350.064 -93.25 DL 362.064 93.25 356.064 93.25 DL 368.064 93.25 362.064 93.25 DL -374.064 93.25 368.064 93.25 DL/F1 10/Helvetica-Bold@0 SF(VIN)72 117.5 Q -78 119.5 72 119.5 DL 82.67 119.5 76.67 119.5 DL 88.67 119.5 82.67 119.5 -DL -.2(RO)158.167 117.5 S(BE).2 E 164.167 119.5 158.167 119.5 DL 168.857 -119.5 162.857 119.5 DL 174.857 119.5 168.857 119.5 DL 180.857 119.5 -174.857 119.5 DL 186.857 119.5 180.857 119.5 DL(NEZ)256.354 117.5 Q -262.354 119.5 256.354 119.5 DL 264.354 119.5 258.354 119.5 DL 270.354 -119.5 264.354 119.5 DL 276.354 119.5 270.354 119.5 DL(BOUCHE)345.851 -117.5 Q 351.851 119.5 345.851 119.5 DL 353.181 119.5 347.181 119.5 DL -359.181 119.5 353.181 119.5 DL 365.181 119.5 359.181 119.5 DL 371.181 -119.5 365.181 119.5 DL 377.181 119.5 371.181 119.5 DL 383.181 119.5 -377.181 119.5 DL 389.181 119.5 383.181 119.5 DL(COMMENT)458.678 117.5 Q -(AIRES)-.9 E 464.678 119.5 458.678 119.5 DL 467.998 119.5 461.998 119.5 -DL 473.998 119.5 467.998 119.5 DL 479.998 119.5 473.998 119.5 DL 485.998 -119.5 479.998 119.5 DL 491.998 119.5 485.998 119.5 DL 497.998 119.5 -491.998 119.5 DL 503.998 119.5 497.998 119.5 DL 509.998 119.5 503.998 -119.5 DL 515.998 119.5 509.998 119.5 DL 521.998 119.5 515.998 119.5 DL -527.998 119.5 521.998 119.5 DL 533.998 119.5 527.998 119.5 DL 539.998 -119.5 533.998 119.5 DL/F2 10/Helvetica-Oblique@0 SF -.5(Pe)72 134.5 S -(elee Island).5 E/F3 10/Helvetica@0 SF(Ge)72 145.5 Q(w\303\274rztr)-.2 E -(aminer)-.1 E(2000)72 156.5 Q(\(Canada\))72 167.5 Q -.2(Ja)158.167 134.5 -S(une p\303\242le).2 E(.)-.15 E -1.98 -.45(Fr a)256.354 134.5 T(is).45 E -2.78(,f)-.15 G .15(ru)-2.78 G(it\303\251, ci-)-.15 E(tronn\303\251,) -256.354 145.5 Q(ar\303\264mes f)256.354 156.5 Q -2.38(or tes)-.3 F -(de lichee et de)256.354 167.5 Q -2.63(fr uits)256.354 178.5 R -(tropicaux.)2.78 E(Doux, fr)345.851 134.5 Q(uit\303\251, bien).15 E -(\303\251quilibr\303\251 a)345.851 145.5 Q -.25(ve)-.2 G 2.78(cu).25 G -(ne)-2.78 E(bonne acidit\303\251.)345.851 156.5 Q(Bon ap\303\251ro) -458.678 134.5 Q(.)-.4 E -2.48(Ser vir)458.678 145.5 R -.2(av)2.78 G -(ec des)-.05 E(plats i)458.678 156.5 Q .1 -.1(ndiens ou)-.1 H -.1 -(chinois)458.678 167.5 S(.)-.15 E(Excellent r)458.678 178.5 Q -2.38 -(appor t)-.1 F -2.63(qualit\303\251/pr ix.)458.678 189.5 R F2(Car)72 -208.5 Q(au Pujol)-.1 E F3 -1.2(Ta)72 219.5 S(nnat)1.2 E(1995)72 230.5 Q -(\(Ur)72 241.5 Q(agua)-.1 E(y\))-.3 E(Rubis f)158.167 208.5 Q -(onc\303\251, vio-)-.3 E(lac\303\251e)158.167 219.5 Q 2.78(,p)-.15 G -(resque)-2.78 E(opaque)158.167 230.5 Q(.)-.15 E(Belles ar\303\264mes) -256.354 208.5 Q(de fr)256.354 219.5 Q(uits f).15 E(onc\303\251s)-.3 E --2.63(\(pr unes)256.354 230.5 R 2.78(,c)-.15 G -2.63(er ises)-2.78 F -(noires)256.354 241.5 Q 2.78(,c)-.15 G(assis\).)-2.78 E(Odeurs ter) -256.354 252.5 Q(tiares).4 E(de cuir)256.354 263.5 Q 2.78(,c)-.5 G --2.78 E(,)-.15 E(violets)256.354 274.5 Q 2.78(,e)-.15 G -(ucalyp-)-2.78 E(tus)256.354 285.5 Q 2.78(,a)-.15 G -.25(ve)-2.98 G 2.78 -(cu).25 G(ne)-2.78 E(tr)256.354 296.5 Q(ace e)-.1 E(xotique de)-.3 E -(Band-Aid*)256.354 307.5 Q(.)-3.324 E -1.2(Tr)345.851 208.5 S -(\303\250s rond, tannins)1.2 E(m\303\202res et v)345.851 219.5 Q -(elout\303\251s)-.25 E(,)-.15 E -.2(av)345.851 230.5 S -(ec un long \214nis)-.05 E -2.63(fr uit\303\251)345.851 241.5 R -(et doucement)2.78 E(alcoolique)345.851 252.5 Q(.)-.15 E -1.114 -(Superbe !)458.678 208.5 R(Une)2.78 E(aubaine \303)458.678 219.5 Q -(ne pas)5.56 E(manquer)458.678 230.5 Q 2.78(.P)-.5 G<72c3aa7420c3>-2.78 -E(boire maintenant.)458.678 241.5 Q/F4 9.5/Helvetica-Oblique@0 SF 1(*T) -66.304 329 S .117(he ter)-1 F 2.758<6d99>.238 G .118 -(Band-Aid\232 means the slightly s)-2.758 F -.095(we)-.285 G .118(et, v) -.095 F .118(aguely chemical smell associated with medical-g)-.238 F --.095(ra)-.095 G .118(de plastics).095 F(.)-.143 E .223(It is often f)72 -339.5 R .223(ound in wines from terroirs in South Amer)-.285 F .222 -(ica. Pro).143 F .222(vided a wine has a suf\214cient concentr)-.143 F -.222(ation of fr)-.095 F(uit).143 E .196 -.04(aromas and comple)72 350 T -2.757(xt)-.285 G -2.221 -.04(er tiar)-2.797 H 2.757(yc).285 G -.04(har) --2.797 G -2.458 -.04(acter istics)-.095 H 2.757(,B)-.143 G .197 -.04 -(and-Aid is a Good Thing. Otherwise)-2.797 H 2.758(,i)-.143 G 2.758(ts) --2.798 G .197 -.04(mells lik)-2.798 H 2.758(ec)-.19 G .197 -.04 -(heap lipstic)-2.798 H -.04(k.)-.19 G F0(Example 2:)72 388 Q -1 -(\231Massaging\232 a)72 405.5 R(passage of rag right text)3 E 78 409.25 -72 409.25 DL 80.984 409.25 74.984 409.25 DL 86.984 409.25 80.984 409.25 -DL 92.984 409.25 86.984 409.25 DL 98.984 409.25 92.984 409.25 DL 104.984 -409.25 98.984 409.25 DL 110.984 409.25 104.984 409.25 DL 116.984 409.25 -110.984 409.25 DL 122.984 409.25 116.984 409.25 DL 128.984 409.25 -122.984 409.25 DL 134.984 409.25 128.984 409.25 DL 140.984 409.25 -134.984 409.25 DL 146.984 409.25 140.984 409.25 DL 152.984 409.25 -146.984 409.25 DL 158.984 409.25 152.984 409.25 DL 164.984 409.25 -158.984 409.25 DL 170.984 409.25 164.984 409.25 DL 176.984 409.25 -170.984 409.25 DL 182.984 409.25 176.984 409.25 DL 188.984 409.25 -182.984 409.25 DL 194.984 409.25 188.984 409.25 DL 200.984 409.25 -194.984 409.25 DL 206.984 409.25 200.984 409.25 DL 212.984 409.25 -206.984 409.25 DL 218.984 409.25 212.984 409.25 DL 224.984 409.25 -218.984 409.25 DL 230.984 409.25 224.984 409.25 DL 236.984 409.25 -230.984 409.25 DL 242.984 409.25 236.984 409.25 DL 248.984 409.25 -242.984 409.25 DL 254.984 409.25 248.984 409.25 DL 260.984 409.25 -254.984 409.25 DL 266.984 409.25 260.984 409.25 DL 272.984 409.25 -266.984 409.25 DL/F5 11.5/Times-Bold@0 SF -.115(Pa)72 433.5 S -(ssage using gr).115 E(off spacing defaults)-.207 E/F6 12.5 -/Times-Roman@0 SF(The thousand injuries of F)108 454.5 Q -(ortunato I had borne as I best could; b)-.188 E(ut when he)-.25 E -.188 -(ve)108 468.5 S(ntured upon insult, I v).188 E -.313(ow)-.25 G(ed re) -.313 E -.188(ve)-.313 G(nge. Y).188 E(ou, who so well kno)-1.375 E 3.125 -(wt)-.313 G(he nature of)-3.125 E(my soul, will not suppose, ho)108 -482.5 Q(we)-.313 E -.188(ve)-.313 G 1 -.5(r, t).188 H(hat I g).5 E --2.813 -.25(av e)-.063 H(utterance to a threat.)3.375 E/F7 12.5 -/Times-Italic@0 SF(At length)3.125 E F6(I)3.125 E -.125(wo)108 496.5 S -(uld be a).125 E -.188(ve)-.25 G(nged; this w).188 E -(as a point de\214niti)-.125 E -.188(ve)-.313 G(ly settled\212b).188 E -(ut the v)-.25 E(ery de\214ni-)-.188 E(ti)108 510.5 Q -.188(ve)-.313 G -(ness with which it w).188 E(as resolv)-.125 E -(ed, precluded the idea of risk. I must not only)-.188 E(punish, b)108 -524.5 Q(ut punish with impunity)-.25 E 3.125(.Aw)-.813 G -(rong is unredressed when retrib)-3.125 E(ution)-.25 E -.188(ove)108 -538.5 S(rtak).188 E(es its redresser)-.125 E 3.125(.I)-.688 G 3.125(ti) --3.125 G 3.125(se)-3.125 G(qually unredressed when the a)-3.125 E -.188 -(ve)-.25 G(nger f).188 E(ails to)-.125 E(mak)108 552.5 Q 3.125(eh)-.125 -G(imself felt as such to him who has done the wrong.)-3.125 E/F8 12 -/Times-Roman@0 SF(\212Edg)287.064 572.5 Q(ar Allen Poe,)-.06 E/F9 12 -/Times-Italic@0 SF(The Cask of Amontillado)3 E F5(The same passage,)72 -600.5 Q(\231massaged\232)1.599 E F6 .26(The thousand injuries of F)108 -621.5 R .26(ortunato I had borne as I best could; b)-.188 F .26 -(ut when he)-.25 F -.188(ve)108 635.5 S .26(ntured upon insult, I).188 F --.25(vo)2.691 G .26(wed re)-.063 F -.188(ve)-.313 G -1.128(nge. Y).188 F --1.128(ou, who)-2.082 F -.434(so well)3.385 F(kno)3.385 E 3.385(wt)-.313 -G .26(he nature)-3.385 F .06 .2(of my soul,)108 649.5 T .06 .2 -(will not suppose, ho)2.691 H .2(we)-.313 G -2.949 .012(ve r)-.313 H -3.585(,t)-.312 G .06 .2(hat I g)-3.385 H -3.013 -.05(av e)-.063 H .06 .2 -(utterance to a threat.)3.635 H F7(At)3.385 E .2(length)108 663.5 S F6 -3.585(Iw)3.385 G .06 .2(ould be a)-3.51 H -2.949 .012(ve n g e d ;)-.25 -H .06 .2(this w)3.573 H .06 .2(as a point de\214niti)-.125 H -2.949 .012 -(ve l y)-.313 H .2(settled\212b)3.573 G .06 .2(ut the)-.25 H -2.631 --.147(ve r y)108 677.5 T .2(de\214niti)3.732 G -2.949 .012(ve n e s s) --.313 H .06 .2(with which it w)3.573 H .06 .2(as resolv)-.125 H .06 .2 -(ed, precluded the idea of risk.)-.188 H 3.385(Im)108 691.5 S .26 -(ust not only punish, b)-3.385 F .26(ut punish with impunity)-.25 F -3.385(.A)-.813 G .26(wrong is unredressed)-1 F .16 .1(when retrib)108 -705.5 T .16 .1(ution o)-.25 H -2.849 -.088(ve r t a k)-.188 H .16 .1 -(es its redresser).063 H 3.485(.I)-.688 G 3.485(ti)-3.385 G 3.485(se) --3.385 G .16 .1(qually unredressed when the)-3.385 H -2.713 -.35(av e) -108 719.5 T .36 -.1(nger f).25 H .36 -.1(ails to mak)-.125 H 3.285(eh) --.125 G .36 -.1(imself felt as such to him)-3.385 H .36 -.1 -(who has done the wrong.)2.691 H F8<8a>285.064 738 Q(Edg)-1 1.5 M -1 -(ar Allen)-.06 F(Poe,)3 E F9 -.2 .2(The Cask of Amontillado)3 H 0 Cg EP -%%Page: 2 2 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 12/Times-Bold@0 SF(Example 3:)72 72 Q 2.334(Ar)72 89.5 S(ecipe f) --2.55 E(or enumerated lists using indents)-.3 E .48 LW 78 93.25 72 93.25 -DL 80.142 93.25 74.142 93.25 DL 86.142 93.25 80.142 93.25 DL 92.142 -93.25 86.142 93.25 DL 98.142 93.25 92.142 93.25 DL 104.142 93.25 98.142 -93.25 DL 110.142 93.25 104.142 93.25 DL 116.142 93.25 110.142 93.25 DL -122.142 93.25 116.142 93.25 DL 128.142 93.25 122.142 93.25 DL 134.142 -93.25 128.142 93.25 DL 140.142 93.25 134.142 93.25 DL 146.142 93.25 -140.142 93.25 DL 152.142 93.25 146.142 93.25 DL 158.142 93.25 152.142 -93.25 DL 164.142 93.25 158.142 93.25 DL 170.142 93.25 164.142 93.25 DL -176.142 93.25 170.142 93.25 DL 182.142 93.25 176.142 93.25 DL 188.142 -93.25 182.142 93.25 DL 194.142 93.25 188.142 93.25 DL 200.142 93.25 -194.142 93.25 DL 206.142 93.25 200.142 93.25 DL 212.142 93.25 206.142 -93.25 DL 218.142 93.25 212.142 93.25 DL 224.142 93.25 218.142 93.25 DL -230.142 93.25 224.142 93.25 DL 236.142 93.25 230.142 93.25 DL 242.142 -93.25 236.142 93.25 DL 248.142 93.25 242.142 93.25 DL 254.142 93.25 -248.142 93.25 DL 260.142 93.25 254.142 93.25 DL 266.142 93.25 260.142 -93.25 DL 272.142 93.25 266.142 93.25 DL 278.142 93.25 272.142 93.25 DL -284.142 93.25 278.142 93.25 DL 290.142 93.25 284.142 93.25 DL/F1 11 -/NewCenturySchlbk-Roman@0 SF .165(This example demonstrates the use of \ -left and hanging indents for simple enumerated lists)72 109.5 R(.)-.275 -E .172(Nested lists are possible)72 122.5 R 3.23(,a)-.198 G 3.23(st) --3.23 G .172(he example shows; however)-3.23 F 3.231(,t)-1.1 G .173 -(he more complex the nesting)-3.231 F 3.231(,t)-.275 G(he)-3.231 E -(wiser it becomes to use \(string\) tabs)72 135.5 Q 3.058(,a)-.275 G -3.058(ss)-3.058 G(een in Example 4.)-3.058 E/F2 11 -/NewCenturySchlbk-Bold@0 SF 1.781(Please note: mom)88.5 148.5 R F1 1.78 -(has macros that allow you to set enumerated lists automatically)4.839 F -(.)-1.375 E -(These examples merely show hanging indents and string tabs in use)72 -161.5 Q(.)-.198 E 3.058(1. This)72 180.5 R .616 -(is the \214rst item in the list. N)3.674 F .617 -(otice how the \214rst line \231hangs\232 bac)-.61 F 3.675(kf)-.077 G -.617(rom the remain-)-3.675 F 1.295(ing text, whic)87.29 193.5 R 4.352 -(hi)-.077 G 4.352(so)-4.352 G 1.294 -(therwise indented by the width of by two \214gure-spaces \(digit-width) --4.352 F(spaces\) and a period.)87.29 206.5 Q 3.058(2. This)72 225.5 R -.132(is the second item in the list. As with the above item, notice the\ - use of the)3.189 F .132(\\0 escape).75 F 1.304 -(sequence in the input text. It')87.29 238.5 R 4.362(st)-.275 G 1.304 -(here to ensure that the space after the number/period)-4.362 F 2.036 -(combination alw)87.29 251.5 R -.11(ay)-.198 G 5.094(sr).11 G 2.036 -(emains the same \(i.e)-5.094 F 5.094(.d)-.198 G 2.036(oesn't stretc) --5.094 F 5.094(hw)-.077 G 2.037(hen the line is justi\214ed\).)-5.094 F -(That w)87.29 264.5 Q -.11(ay)-.198 G 3.058(,t)-1.265 G(he text of eac) --3.058 E 3.058(hi)-.077 G(tem alw)-3.058 E -.11(ay)-.198 G 3.058(sl).11 -G(ines up perfectly)-3.058 E(.)-1.375 E<83>99.29 284.5 Q .647 -(This is the \214rst line of a sublist with bullets)3 -1 N 3.705(.N) --.275 G .647(otice how the \214rst line \(the one with)-4.315 F .722(th\ -e bullet\) is indented exactly one pica from the text of the list item \ -above it, while)108.956 296.5 R -(the remaining lines align with the left indent we set above)108.956 -309.5 Q(.)-.198 E<83>99.29 329.5 Q 1.223 -(This is the second item of the sublist with bullets)3 -1 N 3.061(.W) --.275 G 4.281(ec)-3.721 G 1.223(ould go on inde\214nitely)-4.281 F 4.281 -(,b)-1.375 G(ut)-4.281 E(let')108.956 341.5 Q 3.058(sg)-.275 G 3.058(ob) --3.058 G(ac)-3.058 E 3.058(kt)-.077 G 3.058(ot)-3.058 G -(he top level \(numbered\) list...)-3.058 E 3.058(3. ...and)72 360.5 R -(here we are)3.058 E(.)-.198 E 3.058(4. In)72 379.5 R -(order not to make the example too long)3.058 E 3.058(,w)-.275 G -(e'll stop here)-3.058 E(.)-.198 E F0(Example 4:)72 407.5 Q 2.334(Ar)72 -425 S(ecipe f)-2.55 E(or nested lists using string tabs)-.3 E 78 428.75 -72 428.75 DL 80.478 428.75 74.478 428.75 DL 86.478 428.75 80.478 428.75 -DL 92.478 428.75 86.478 428.75 DL 98.478 428.75 92.478 428.75 DL 104.478 -428.75 98.478 428.75 DL 110.478 428.75 104.478 428.75 DL 116.478 428.75 -110.478 428.75 DL 122.478 428.75 116.478 428.75 DL 128.478 428.75 -122.478 428.75 DL 134.478 428.75 128.478 428.75 DL 140.478 428.75 -134.478 428.75 DL 146.478 428.75 140.478 428.75 DL 152.478 428.75 -146.478 428.75 DL 158.478 428.75 152.478 428.75 DL 164.478 428.75 -158.478 428.75 DL 170.478 428.75 164.478 428.75 DL 176.478 428.75 -170.478 428.75 DL 182.478 428.75 176.478 428.75 DL 188.478 428.75 -182.478 428.75 DL 194.478 428.75 188.478 428.75 DL 200.478 428.75 -194.478 428.75 DL 206.478 428.75 200.478 428.75 DL 212.478 428.75 -206.478 428.75 DL 218.478 428.75 212.478 428.75 DL 224.478 428.75 -218.478 428.75 DL 230.478 428.75 224.478 428.75 DL 236.478 428.75 -230.478 428.75 DL 242.478 428.75 236.478 428.75 DL 248.478 428.75 -242.478 428.75 DL 254.478 428.75 248.478 428.75 DL 260.478 428.75 -254.478 428.75 DL 266.478 428.75 260.478 428.75 DL 272.478 428.75 -266.478 428.75 DL 278.478 428.75 272.478 428.75 DL F1 2.082(Although se\ -tting up string tabs is a bit more complex than setting up indents)72 -445 R 5.14(,i)-.275 G(t')-5.14 E 4.225(sw)-.275 G(ell)-4.225 E -(worth the effort, especially for nested lists)72 458 Q(.)-.275 E(1.)72 -477 Q 1.298(This is the \214rst item in the list. N)87.29 477 R 1.299 -(otice how)-.61 F 4.357(,j)-1.375 G 1.299 -(ust as in Example 3, the \214rst line hangs)-4.357 F(bac)87.29 490 Q -3.058(kf)-.077 G(rom the remaining text, whic)-3.058 E 3.058(hi)-.077 G -3.058(so)-3.058 G(therwise indented.)-3.058 E(2.)72 509 Q .836 -(This is the second item in the list. N)87.29 509 R .836 -(otice that when setting \231lists\232 with tabs)-.61 F 3.894(,t)-.275 G -(here')-3.894 E 3.893(sn)-.275 G(o)-3.893 E 1.778(need to use the)87.29 -522 R 1.778 -(\\0 escape sequence after the number/period combination in the input) -2.396 F(text.)87.29 535 Q<83>99.29 561 Q .155 -(This is the \214rst line of a sublist with bullets)108.956 560 R 3.213 -(.N)-.275 G .155(otice how the bullets and the text line)-3.823 F -(up exactly the same as in Example 3.)108.956 573 Q<83>99.29 593 Q 1.12 -(This is the second item of the sublist with bullets)108.956 592 R 4.178 -(.F)-.275 G 1.12(or the fun of it, lets add in an)-4.783 F -(en-dashed sub-sublist.)108.956 605 Q<89>120.956 623.25 Q 1.124 -(Lorem ipsum dolor sit amet, consetetur sadipscing elitr)131.072 624 R -4.182(,s)-1.1 G 1.124(ed diam nonumy eir)-4.182 F(-)-.407 E .58(mod tem\ -por invidunt ut labore et dolore magna aliquyam erat, sed diam volup-) -131.072 637 R(tua.)131.072 650 Q<89>120.956 668.25 Q .023(At vero) -131.072 669 R .938 -(eos et accusam et justo duo dolores et ea rebum. Stet c)3.996 F .939 -(lita kasd guber)-.077 F(-)-.407 E -(gren, no sea takimata sanctus est lorem ipsum dolor sit amet.)131.072 -682 Q(3.)72 701 Q(And here we are)87.29 701 Q 3.058(,b)-.198 G(ac)-3.058 -E 3.058(ka)-.077 G 3.058(tt)-3.058 G -(he top-level numbered list with a minimum of muss and fuss)-3.058 E(,) --.275 E(4.)72 720 Q .469(Generally speaking)87.29 720 R 3.527(,o)-.275 G -.468(nce you get the hang of string tabs and the)-3.527 F F2 -.814(PA) -3.526 G(D).814 E F1(macro)3.526 E 3.526(,y)-.198 G .468(ou'll \214nd) --3.526 F 1.052(setting up complex nested lists \(or anything similar to\ - them\) easier than with hanging)87.29 733 R(indents)87.29 746 Q(.)-.275 -E 0 Cg EP -%%Page: 3 3 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 12/Times-Bold@0 SF(Example 5:)72 72 Q -.9(Wo)72 89.5 S(rd spacing).9 -E .48 LW 78 93.25 72 93.25 DL 82.776 93.25 76.776 93.25 DL 88.776 93.25 -82.776 93.25 DL 94.776 93.25 88.776 93.25 DL 100.776 93.25 94.776 93.25 -DL 106.776 93.25 100.776 93.25 DL 112.776 93.25 106.776 93.25 DL 118.776 -93.25 112.776 93.25 DL 124.776 93.25 118.776 93.25 DL 130.776 93.25 -124.776 93.25 DL 136.776 93.25 130.776 93.25 DL 142.776 93.25 136.776 -93.25 DL/F1 10/Helvetica-Bold@0 SF(Normal w)72 111.5 Q(or)-.2 E 2.78(ds) --.2 G(pacing)-2.78 E/F2 11/Palatino-Roman@0 SF .305 -.305(Now i)72 125.5 -T 2.75(st).305 G -(he time for all good men to come to the aid of the party)-2.75 E(.) --1.221 E F1 -.6(Wo)72 143.5 S .4 -.2(rd s).6 H(pacing adjusted b).2 E(y) --.2 E(+)1.949 -1 M(2)-.277 1 M F2 .763 -.305(Now i)72 157.5 T 3.208(st) -.305 G .458(he time for all good men to come to the aid of the party) --3.208 F(.)-1.221 E F1 -.6(Wo)72 175.5 S .4 -.2(rd s).6 H -(pacing adjusted b).2 E(y)-.2 E(+)1.949 -1 M(4)1 I F2 1.221 -.305(Now i) -72 189.5 T 3.666(st).305 G .916 -(he time for all good men to come to the aid of the party)-3.666 F(.) --1.221 E F1 -.6(Wo)72 207.5 S .4 -.2(rd s).6 H(pacing adjusted b).2 E(y) --.2 E(+)1.949 -1 M(6)1 I F2 1.68 -.305(Now i)72 221.5 T 4.125(st).305 G -1.375(he time for all good men to come to the aid of the party)-4.125 F -(.)-1.221 E F0(Example 6:)72 256.5 Q(Line k)72 274 Q(er)-.12 E(ning)-.18 -E 78 277.75 72 277.75 DL 78.048 277.75 72.048 277.75 DL 84.048 277.75 -78.048 277.75 DL 90.048 277.75 84.048 277.75 DL 96.048 277.75 90.048 -277.75 DL 102.048 277.75 96.048 277.75 DL 108.048 277.75 102.048 277.75 -DL 114.048 277.75 108.048 277.75 DL 120.048 277.75 114.048 277.75 DL -126.048 277.75 120.048 277.75 DL 132.048 277.75 126.048 277.75 DL -138.048 277.75 132.048 277.75 DL F1(Unkerned line)72 297 Q F2 -(\231But this is)72 312 Q/F3 11/Palatino-Italic@0 SF -2.651 -(important! \232)2.75 F F2(she exclaimed.)A F1 -(Line \231tightened\232 \211 .R)72 331 Q 2.78(W.)-.4 G(1)-2.78 E F2 .1 --.1(\231But this is)72 346 T F3 -2.651(important! \232)2.75 F F2 .1 -.1 -(she exclaimed.)D F1(Line \231tightened\232 \211 .R)72 365 Q 2.78(W.)-.4 -G(2)-2.78 E F2 .2 -.2(\231But this is)72 380 T F3 -2.651 -(important! \232)2.75 F F2 .2 -.2(she exclaimed.)D F1 -(Line \231tightened\232 \211 .R)72 399 Q 2.78(W.)-.4 G(3)-2.78 E F2 .3 --.3(\231But this is)72 414 T F3 -2.651(important! \232)2.75 F F2 .3 -.3 -(she exclaimed.)D F1(Unkerned line)306 297 Q F2 .3 -.3(\231But this is) -306 312 T F3 -2.651(important! \232)2.75 F F2 .3 -.3(she exclaimed.)D F1 -(Line \231loosened\232 \211 .EW .1)306 331 Q F2 -.1 .1(\231But this is) -306 346 T F3 -2.651(important! \232)2.75 F F2 -.1 .1(she exclaimed.)D F1 -(Line \231loosened\232 \211 .EW .2)306 365 Q F2 -.2 .2(\231But this is) -306 380 T F3 -2.651(important! \232)2.75 F F2 -.2 .2(she exclaimed.)D F1 -(Line \231loosened\232 \211 .EW .3)306 399 Q F2 -.3 .3(\231But this is) -306 414 T F3 -2.651(important! \232)2.75 F F2 -.3 .3(she exclaimed.)D F0 -(Example 7:)72 450.5 Q(Cutar)72 468 Q(ound using left)-.216 E -(/right indents, multi columns and a dr).666 E(opcap)-.216 E 78 471.75 -72 471.75 DL 79.95 471.75 73.95 471.75 DL 85.95 471.75 79.95 471.75 DL -91.95 471.75 85.95 471.75 DL 97.95 471.75 91.95 471.75 DL 103.95 471.75 -97.95 471.75 DL 109.95 471.75 103.95 471.75 DL 115.95 471.75 109.95 -471.75 DL 121.95 471.75 115.95 471.75 DL 127.95 471.75 121.95 471.75 DL -133.95 471.75 127.95 471.75 DL 139.95 471.75 133.95 471.75 DL 145.95 -471.75 139.95 471.75 DL 151.95 471.75 145.95 471.75 DL 157.95 471.75 -151.95 471.75 DL 163.95 471.75 157.95 471.75 DL 169.95 471.75 163.95 -471.75 DL 175.95 471.75 169.95 471.75 DL 181.95 471.75 175.95 471.75 DL -187.95 471.75 181.95 471.75 DL 193.95 471.75 187.95 471.75 DL 199.95 -471.75 193.95 471.75 DL 205.95 471.75 199.95 471.75 DL 211.95 471.75 -205.95 471.75 DL 217.95 471.75 211.95 471.75 DL 223.95 471.75 217.95 -471.75 DL 229.95 471.75 223.95 471.75 DL 235.95 471.75 229.95 471.75 DL -241.95 471.75 235.95 471.75 DL 247.95 471.75 241.95 471.75 DL 253.95 -471.75 247.95 471.75 DL 259.95 471.75 253.95 471.75 DL 265.95 471.75 -259.95 471.75 DL 271.95 471.75 265.95 471.75 DL 277.95 471.75 271.95 -471.75 DL 283.95 471.75 277.95 471.75 DL 289.95 471.75 283.95 471.75 DL -295.95 471.75 289.95 471.75 DL 301.95 471.75 295.95 471.75 DL 307.95 -471.75 301.95 471.75 DL 313.95 471.75 307.95 471.75 DL 319.95 471.75 -313.95 471.75 DL 325.95 471.75 319.95 471.75 DL 331.95 471.75 325.95 -471.75 DL 337.95 471.75 331.95 471.75 DL 343.95 471.75 337.95 471.75 DL -349.95 471.75 343.95 471.75 DL 355.95 471.75 349.95 471.75 DL 361.95 -471.75 355.95 471.75 DL 367.95 471.75 361.95 471.75 DL 373.95 471.75 -367.95 471.75 DL 379.95 471.75 373.95 471.75 DL 385.95 471.75 379.95 -471.75 DL 391.95 471.75 385.95 471.75 DL 397.95 471.75 391.95 471.75 DL -403.95 471.75 397.95 471.75 DL 0 0 81 81 -96 96 265.5 659 PBEGIN -%%BeginDocument: penguin.ps -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner -%%Title: /home/peter/Pics/penguin_small2_bw.ps -%%CreationDate: Wed Apr 17 19:49:51 2002 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 0 0 81 96 -%%EndComments -%%BeginProlog -% Use own dictionary to avoid conflicts -5 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -0.000000 0.000000 translate -% Translate to begin of first scanline -0.000000 95.872000 translate -80.640000 -95.872000 scale -% Variable to keep one line of raster data -/scanline 90 1 mul string def -% Image geometry -90 107 8 -% Transformation matrix -[ 90 0 0 107 0 0 ] -{ currentfile scanline readhexstring pop } -image -72727272717171717171717172717171717171717171717172717171727271717171727273736f -675852524e4653535a676b73737272727272727272727272727272727272727272727272727272 -727272727272727272727272 -7172717271717171717171717271717171717171717171717271717171717172727272726d5d4a -4039393939373a3a3c3f4653637172727272727272727272727272727272727272727272727272 -727272727272727272727272 -7171717271717171717171717271717171717171717171717271717171717173747271644b3f3a -3a393a3a3a393b3b3b38393b3d4d64707272727272727272727272727272727272727272727272 -727272727272727272727272 -727272727171717171717171727171717172717171717171727171717171727372705b3b3d3b3a -3939393939393938393939383a3c3f546d71747272727272727272727272727272727272727272 -727272727272727272727272 -727271727171717171717171727171717171717171717171727171717171727173553e3d383a39 -393a383838383838393940564d3f38394668727272727272727272727272727272727272727272 -727272727272727272727272 -71717171717171717171717172717171717171717171717172717171717172715f3d38393b3b39 -3a393939393939393a3c5574807252403742627272727272727272727272727272727272727272 -727272727272727272727272 -727271727171717171717171727171717171717171717171727171717172726c403c373a3a3a3a -3a3a3a3a3a3a3a3a393e5e82958c72543a38416a72737272727272727272727272727272727272 -727272727272727272727272 -727171727171717171717171727171717171717171717171727171717271735a3d383b3a3a3a3a -3a3a3a3a3a3a3a3a383c5f87978e7c65493a3c5070737272727272727272727272727272727272 -727272727272727272727272 -7171717271717171717171717271717171717171717171717271717172736c4638373b3a3a3a3a -3a3a3a3a3a3a3a3a3a436384897d6d644f3a3b3e60727472727272727272727272727272727272 -727272727272727272727272 -727171727171717171717171727171717171717171717171727171717273603a3839393a3a3a3a -3a3a3a3a3a3a3a3b39425c6f68574745403b3c3848707472727272727272727272727272727272 -727272727272727272727272 -7271727271717171717171717271717171717171717171717271717172724d373938393a3a3a3a -3a3a3a3a3a3a3a393a3d494e3e3e3c3b393c3a393b617272727272727272727272727272727272 -727272727272727272727272 -71717171717171717171717171717171717171717171717172717171727241393839393c3a3a3a -3a3a3a3a3a3a3a393b3a3a3d3b3a3d393c3b393b3a4b7374717272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717171717171717271717172703a3b3937393b393a3a -3a3a3a3a3a3a3a3a3a3b3a3a393d3a3b3b3b393a393e6d74727272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717171717171717271717171633c3a3a38383d413c3a -3a3a3a3a3a3a3a3a3a3b3e4142393c3c3b3b3939393c6074707272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717171717171717271717171623b373b3e40475d5a3f -3b3b3a3a393b3b3b373839486b6d3d393b3b3a38393b5c73717272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717271717171717271717172623b373c3a3d3f425d65 -3f393a3a3d393b3e5b75795a3e6562393b3b3b39393d4f71727272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717272717171717271717171717271717172623c3838538a9e7e4960 -4e3c3a3a3c3a57879ea9b0b68e445b463b3b3b3a3b3d4a72727272727272727272727272727272 -727272727272727272727272 -7272727271717171727171717272717171727171717271717271717172613c374d96b6cabb8e48 -463b3a3a3a5291abb6c0c7d1be7f3f473b3b3a38393a4672727272727272727272727272727272 -727272727272727272727272 -7272727271717171717271717271717171717171717171717271717172603c3770acd1e3dfcc84 -3a3b3a3a3d85c0e7f4f7f7f2d9a4593a3b3b393839393f6b727272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717171717171717271717172603c3c9aebdbc5eefdda -45393a3a45b8f7fcda8386d1faec8b373b3b3a3938383e6b727272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717171717172717271717172613946c8db4e7188eaf9 -60443c3e4dc7fbe953468a7fcdfdc7433b3b3a3839383c6a727272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717171717171717271717172603a4bd59a387184a5fb -755363655bc9fb9c3d3a5c907ffbe7543b3b3a3939383c6a717272727272727272727272727272 -727272727272727272727272 -7171717171717171717171717171717171717171717171717171717171673b4ad5833e4a7f75f8 -6f484b575cb3f67b363c445b68f4ed553a3a3a3939393b6a717272727272727272727272727272 -727272727272727272727272 -7272727272717171717171717271717171717171717272717271717171714245cc953c3d5667ce -666e6f6c6282e97a3b3a3a3b5bf5ea58393a393a393c386a737272727272727272727272727272 -727272727272727272727272 -727272727171717171717171727171717171717171717171727171717171413eb7c4453b416fa6 -c3c9c6c2bcb1c19d3a3c3b3e8cfbdc4c3939393a39393969727272727272727272727272727272 -727272727272727272727272 -727272727171717171717171727171717171727171717171727171717171413a8df18e477da2af -cdcecbbfa6b2cfc289534273ebf9ac3f3939393939383b62727272727272727272727272727272 -727272727272727272727272 -72727272717171717171717172717171717172717171717172717171717142385bdae697a9c1cd -cfcecfd3d4d7dcd9d5c5a8c5e4dc633838393a39393a365b727272727272727272727272727272 -727272727272727272727272 -72727272717171717171717172717171717171717171717172717171717142363e99a4a8b9cacf -cecfd2d8dcdfe2dfdedad6cdc3ac693f39393939393a375b727272727272727272727272727272 -727272727272727272727272 -7272727271717171717271717271717171717171727171717271717171714137538fa4b4c2cbcf -cfd1d5dadee2e1dfdedededfdcdab5553a3a39393a3c3859727272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717271717171717271717171714b43839facbdc8cfcf -d0d3d7dae2e2dfdedededed1b1c5c05e3c3b393a3c393c4c717272727272727272727272727272 -727272727272727272727272 -727272727171717171717171727271717171717171717171727171717172524c94a0b2c1cbcfcf -d1d5d9dee1dfdedededabea8aebbad4f3b3c3a393a3a3d426b7273727272727272727272727272 -727272727272727272727272 -72727272727171717271717172727171717171717172717172727171717254478ea5b9c3ced0d1 -d3d6dbe0dededddccfabaab7bbbaaa4b3c3b393a37393f3b597174727272727272727272727272 -727272727272727272727272 -727272727171717171727171727171717171717171717171727171717171503b5c84aec9d0d1d1 -d6d9dddcded9d1b0a0b1b8bbbab387403a3b6c7446333938477173727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271727171717171717171717271717171714f3d457986a3c5d1d6 -d8d9d8d1bfa795a2b4b7bab7adac8642383863978e6f413c3c6973727272727272727272727272 -727272727272727272727272 -727272727171717171717171727171717171717171717271727172717272523b4390a58a8e9da8 -aba4a29d9ca5aeb3b2afabb7c4c2bb5d3b3645849b99663a3c4e72727272727272727272727272 -727272727272727272727272 -727272727171717171717171727171727171717171717271727171717273543c49adbfa29097b4 -c0b9b5b3b4b0afada5aabec7cfcac3763a3b3c5e999a8745393d65727272727272727272727272 -727272727272727272727272 -727272727271717171717171727271717172717171717171727172727171483856aac1bfa18e9e -b1b4b2afa9a3a0a4b3c1c1c5d3ded4ac413a3b4079895a38353948707472727272727272727272 -727272727272727272727272 -7272727271727171717171717272727171717171717171717272737272633f3c4ea8c5c1c0a790 -919698959193a7bac2c1c9e1f4fbfbde6c3b3c3a39423c3b3a393e617473727272727272727272 -727272727272727272727272 -7272727271717171717171717271727171717171717172717272717270453b394dc1d9c8c2c2bc -a79b9b9dabbac0c1c2cde3f8fdfdfdfabf453b3b3b3b3b3b3a393d4c7071727272727272727272 -727272727272727272727272 -727272727171717171717172727171717171717171717171727270715b3d3b398ff5e7cec3c3c1 -c3c1c2c2c3c2c2c8d4e4f5fdfdfdfdfdf9723f3b3b3b3b3b3b3a39435a74747272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717171717171717271726750463658e0fbf7e4c6c2c3 -c3c2c3c2c2c4ceddedf7fdfdfdfdfcfdfccb4a3b3d383b3b3a3a3a3e4a6b727271727272727272 -727272727272727272727272 -72727272717171717171717172717271717171717171717172716d4b544340b1f7fcfdf7d5c2c2 -c2c2c2c2c6d5e7f5fcfdfdfdfdfdfdfcfbf7833d3d3b3b3b393b393a3b4e717272717272727272 -727272727272727272727272 -7272727271717171717271727271727171717171717171727371483a3a3673f4fdfcfbfceccfc5 -c2c1c2cde3f3fafdfdfdfcfdfdfdfdfcfdfccb40393a3b3b39393a393b3c607271727272727272 -727272727272727272727272 -727272727171717171727171727171717171717171717171705a3e3f3c45d0fcfdfdfcfdfcf5e6 -d9dce5f1fafcfcfcfdfdfcfdfdfdfdfdfdfdf66937393b3b393939393a3a486a72717272727272 -727272727272727272727272 -7272727271717171717171717271717171717171717171725f3e3a3c3985fbfcfdfcfdfdfdfdf9 -f1f8fcfdfdfcfcfcfcfdfdfdfdfdfdfdfdfdfd933b3a3b3b3a3a3a3a393a3d4a6b717272727272 -727272727272727272727272 -717171717171717171717171717171717171717172727267443b3b394cd2fafcfdfdfdfdfdfdfb -fafcfdfdfdfcfcfcfcfcfdfdfdfdfdfdfdfdfbc73b3b3a3a3a393a3a3a393c3e52727272727271 -727272717171717172717271 -727172727171717171717171727171717172727175736d423a3a383c7de7f9fefefdfdfdfdfdfc -fbfcfdfdfdfcfdfdfcfdfdfdfdfdfdfdfdfcf8e24d3c3b3b3a3a3a3a3b3b393a3b537173727272 -727272727272727272727272 -7272727271717171717171717271727171727271726e4d3b3b3a3646a0e2f8fdfefdfcfcfdfdfc -f8f8fcfdfdfdfdfdfdfdfcfdfdfdfcfbf4f0efeb653f3b3b3b3b3b3b3b3b3938393f5772727272 -727272727272727272727272 -727172727171717171717171727171717171727171533f3b3b3a364aa5cef0f9fbfdfdfcf9f5f1 -ecebf3f8fafbfbfafcfaf8f7f5f5efeae3dbdfe687473b3b3a3b3a393a3a3b393a393f5c727272 -727272727272727272727272 -7272727271717171717171717272717171717271623d3d3a3b3a3a5ba9b8d0e7edf5f9f9f5ede3 -e1e5e7f2fbf9fafaf7eee2dad3d0cececcc8c9d8c5513a3b3a373c393d3b3a3939383d3e637272 -727272727272727272727272 -727272727171717171717171727171717172726e4a3d383a3b3a456fadb5cbddebf8fbfcfdfced -e4f5fbfdfcfdfdfdfcf7ede3d5cecac8c7c6c6c7deb844393e644e3a393b3a3a3939383c4b6f72 -727272727272727272727272 -72727272717171717172727272727271717272603e3a3b3b393a4b7cbbd3ebf7fdfcfcfbfdfcee -f1fcfcfcfcfbfbfdfcfcfdfbf8f2e8ded3cbc7c6ceee993d34556f5f463c3d393b393a3a3e6272 -727272727272727272727272 -717171727171717172717171727171717173704b3b3d39473c3c5fb0dcf1fbfcfcfcfdfcfcfcf5 -f5fbfcfbfdfcfcfcfcfcfbfbfdfcfcfbf5e9d9cdc7d8ea683b3d3d58724b3b3d3b3a3a3a3c5173 -737272727272727272727272 -7272727271717171717271717271717171736e433e385e603e4090dff5fcfdfcfcfbfcfcfbfcfa -fbfbfcfcfcfbfcfdfcfcfcfcfdfcfcfcfbfcf6e6d3c9e3c3403a3d394d7342353e3a3b3a39416b -727372727272727272727272 -727171727171717171717171727171717172673d374a6b3b3d4cd9f8fdfcfcfcfbfdfbfcfbfcfc -fbfcfcfbfcfcfcfcfdfcfcfcfbfcfbfcfcfdfdfaedd4ceeb6c3c3d3d3e51663a3e383b3a393c56 -717472727272727272727272 -727271727171717171717171727171717173573c3c604d3b3c8ffbfdfbfcfdfcfcfcfcfcfcfbfb -fdfbfdfcfdfbfcfcfcfbfcfcfdfbfdfcfcfcfcfdfcedd3dac43d384e5b5064583a3c3b3a363c40 -6f7272727272727272727272 -727271727171717171717171727171717170483f476f373851e9fdfdfdfbfcfcfcfcfcfcfbfcfd -fcfcfcfbfcfcfbfbfcfcfdfcfdfcfcfcfcfcfcfdfcfdf1e6f1583f5e7770546d42393b3a3b3a3d -637272727272727272727272 -7272727271717172717171717271727372643f3c6a52373da0fbfcfcfcfcfbfcfcfcfdfcfcfbfb -fcfbfcfbfbfcfdfcfcfcfcfcfcfcfcfbfcfcfdfcfdfbfcfcfd9545657c735259613d3c393a393b -4e7172727272727272727272 -7272727271717171717171717271727471513a456a393a5ae6fafcfbfcfbfcfbfcfcfcfcfbf8fa -fbfcfcfcfcfdfbfcfdfcfcfdfcfdfcfbfdfcfbfcfcfcfcfcfdc64f5e6456434078433b3d393b3d -436c72727272727272727272 -727272727171727171717171727272726e47385c53333e98fbfbfcfcfcfcfcfcfcfcfcfcf9eafb -fbfbfbfbfcfcfbfdfcfcfbfcfcfcfcfcfbfdfcfcfdfdfcfdfce7473d3f3b3b375e57393d383939 -3b6171727272727272727272 -72727272717171717171717172717272633c3b703f3451dafcfcfbfbfcfcfbfcfcfdfdfbf4e8fa -fcfdfcfcfcfbfcfbfcfcfcfcfbfdfcfcfcfcfcfcfcfbfbfcfcfa623c3a3a3b374b66373d393939 -3b5072727272727272727272 -727272727171717171717171727272714e3b52613b388af8fcfbfcfbfcfcfcfcfcfdfcfcf2edfc -fdfcfcfcfcfdfcfbfcfcfcfcfcfdfcfdfdfcfcfcfcfdfcfbfcfc84383b3b393a3f774138383938 -3a416f727272727272727272 -727271727171717171717171727272663c3c68453b40c5fbfbfbfdfdfcfcfdfbfcfcfcfcededfb -fcfcfcfcfbfcfcfcfcfbfbfcfcfcfcfcfafcfcfcfcfbfcfdfcfda23c3b3b3b3b3d7437383b3a39 -3b3f68727272727272727272 -7272727271717171717171717174714b3a3a6b373b57eefcfcfcfcfbfcfcfbfcfcfbfdfbe9e9fb -fbfcfcfcfbfcfcfbfbfcfcfbfbfcfbfcfcfcfcfcfbfcfcfcfdfcaf3b3b3b3c3a406f37373a3a39 -393d5f727272727272727272 -7171717272717171727171717271623e3d4a60373b82fbfcfcfdfbfdfcfcfcfcfbfcfcfbe6eafb -fcfdfcfcfcfcfcfbfdfcfcfcfdfcfcfcfcfdfcfcfcfbfcfcfcfdbd3a3b3b3a3843633836393a38 -3a3c54727272727272727272 -727272727272717171717272736d463a37535c3839aafcfcfcfdfdfcfcfcfbfcfdfcfbfbe6eaf9 -fbfbfcfbfcfbfcfcfbfdfcfcfbfcfcfcfcfdfcfcfcfcfbfdfcfcce3c3b3b393c4e533937383939 -383c4f727272727272727272 -71717272717171717171717371593d3b3952603947cdfcfbfcfcfcfcfcfdfdfcfcfcfdfae2e9fa -fbfbfcfdfbfcfcfcfcfcfcfcfcfcfcfbfbfcfbfdfcfcfdfafcfcd4423b3b3b3a5a4e393a39383a -3a3940727272727272727272 -7272727271717171717271726c41393c3656683b47d6fdfbfcfcfcfcfcfcfbfcfdfcfcfae1e9fb -fbfcfdfcfcfcfbfcfcfcfcfbfcfcfbfcfcfcfbfbfdfcfbfcfcfdda413b3b3c3b6644393a3a3938 -3b3a3f727272727272727272 -727271727171717171717171553c3b3b405f6d394ce1fcfcfcfcfcfcfbfdfcfcfcfcfcf9e1ecfb -fcfcfcfcfcfbfbfcfdfcfcfdfbfcfcfcfcfbfcfbfbfdfcfdfcfcdd423b3b3b39643f393a393939 -3a3a3e727272727272727272 -7272727271727171717171724f3e363d4f767e3b5be9fcfdfcfdfbfbfbfcfcfbfafcfcf8e2eefb -fbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfbfdfcfbfcfdfcfcfcfbfdde433b3b3b455f3a3b3b3a3a39 -39393e727272727272727272 -72727272717171717171716e46393938466b863e69edfcfdfcfcfcfcfbfcfcfcfcfcfcf7e2eefc -fbfcfcfdfbfdfcfbfdfcfdfdfdfcfcfcfcfdfbfcfcfbfcfcfbfddc443b3b385a463b3b3b3a3839 -393940727272727272727272 -72727272717171727171716f413a3a3a3945724869effcfcfcfcfbfcfcfbfcfcfcfcfbf8e2f1fc -fcfcfcfbfcfcfcfcfcfcfcfcfcfcfcfbfcfcfcfcfcfcfbfcfdfccc3f383a41683b3d3d3a3b3a3a -3a3b42727272727272727272 -72727272727171717171716e443938393c3c49626eeefcfbfcfcfcfcfcfcfcfcfcfcfcf8e2f1fc -fbfcfdfcfcfdfdfcfcfcfcfcfbfcfbfcfcfcfcfcfcfcfcfcfcfcb83b3f5a685d455b6054463f3a -3c3a51727272727272727272 -727272727271717172717171524a728f8d5e424d80e3fbfcfcfbfcfcfdfcfbfcfcfcfcf7e1f2fb -fcfcfcfcfcfcfcfbfcfdfbfcfcfcfcfcfcfcfcfcfcfdfcfcfcfc9c405b503d3b3c3c455368755c -3d3a5a727272727272727272 -72727172717171727271727174a3c9d4d6c87b3b50b0f9fcfcfdfcfcfcfbfdfcfcfcfcf8e2f3fb -fcfcfdfcfcfcfcfcfcfcfbfbfbfcfbfcfbfcfcfcfcfcfbf9fbf66956403b3a3a39393b3a3a608d -654567717273727272727272 -7272727271717172717371739bc1d1d4d4d4cc7f3f55a9f5fbfbfcfbfdfbfbfcfbfbfcf8e1f3fc -fbfcfcfcfbfcfbfcfcfdfdfcfcfcfcfcfcfcfcfcfbf6d5d3d3d29c59393a393b3b3b3b3a3c5d76 -61486b737272727272727272 -727272727171727171737288b1c7d1d4d4d5d4cc803f4ea1f0fbfcfcfcfbfcfcfcfdfcf6e3f4fc -fdfbfbfcfcfcfcfcfcfcfcfcfdfbfcfcfcfbfcfcfcdccfdbdddccd5b3e3a393b3b3b3b3a3e655e -519c89727373727272727272 -7171717272727171717276a3b8c8d2d4d5d4d5d5c66d3a4892e9fcfbfcfdfcfbfbfbfcf8e1effb -fcfbfcfcfcfcfbfcfcfbfcfbfcfcfcfcfbfcfcfcfcd5c7d4d7dabb50383c393b3b3b3b3a414f40 -76cfda8f7374727272727272 -7172717372727271707e9db3c0cdd4d4d5d4d4d5d4b6543b4673d6fbfbfcfcfdfdfcfbfaeaedfc -fbfdfcfcfcfdfdfcfcfcfcfcfbfbfcfbfcfdfcfcfcd7c5d3d4d1a9513a393a3b3b3b3b3a3a3653 -bad5d7b87371727272727272 -7170778c9baaa8a5a3a7b4bdc9d1d4d4d4d4d4d4d5d2a04435405bc1f7fcfcfdfbfcfcfdfbf9fc -fdfcfbfcfcfcfbfcfcfcfcfbfcfcfcfdfcfcfbfbf8d8c4d3d2c9a85c3a3b383b3b3b3b3a3a4196 -cfd1d4c47370727272727272 -73779fb2bcc1bfbbbbbdc4cad1d4d4d4d5d4d4d4d5d4cb7c3d373c469ef3fbfcfcfcfdfcfcfcfc -fcfbfcfcfbfcfcfcfcfcfcfcfcfcfcfcfbfcfbe8d3c7c4d2cec3ae78463c36383836373b477dbf -cccfd1c07671727272727272 -738ab0bec9cdccc9c7ccd1d2d4d4d4d4d4d4d4d4d4d5d5b758383b3a4387e5fdfcfcfcfbfcfcfc -fdfdfbfcfcfcfcfcfbfcfcfdfcfcfbfbfdfceecdc7c3c2cecbc1ae997146403e393d426189b2c3 -cccfd2c27572727272727272 -7193b7c7ced1d2d3d2d3d4d4d4d4d4d4d5d4d4d4d4d3d4cf953d383a353a68d0fbfbfbfbfdfcfc -fbfbfbfdfcfdfcfbfcfcfbfcfcfcfdfcfbfde3c7c8c2bfc9cac4b5a69c8e7d77767e929eacc0ca -d0d3d4d07f72727272727272 -729eb8c8d0d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d5d3d3d5c065383b38343f57bffbfbfcfcfbfc -fcfcfcfcfbfbfcfdfcfcfcfcfbfbfbfcfcfbdfc9c8bdb9c8cac6bbb0a8a5a1a0a1a3a7b1bfccd1 -d4d4d4d3af77717372727272 -7192b7c6d0d4d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d3d4d4a64639383c3a3852c7fcfcfdfdfd -fcfcfcfcfcfcfdfdfcfcfdfcfdfcfbfcfcfbe0c8c8b8b4c6cacac1b9b5b1b0afafb2b7c0cbd4d4 -d4d5d4d2cf9c727272727272 -728cb5c3ced4d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d4c97d3b363a3737396ef0fcfcfcfc -fdfcfcfcfbfcfcfcfcfcfcfcfdfcfcfbfcfde7cbc9b3aebfc9cbc8c2bcbbb9b9b9bcc3c9d1d5d5 -d5d5d5d3d1c88f7272727272 -718bb2c0cdd3d4d4d4d4d4d5d5d5d4d4d5d4d4d4d5d4d4d4d4d5b6573a3939393742d8fcfcfcfc -fcfbfcfbfcfcfcfdfcfcfcfcfbfbfcfcfdfbeed0c8adaabcc9d0cecbc5c3c2c1c3c5c8ced2d5d5 -d5d5d5d5d4d1c29071727372 -727fafbdccd3d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d4d4ce974038393b393fd1fcfcfcfb -fcfbfcfdfcfcfbfcfcfcfcfcfbfcfcfbfcfcf3d3b588aabdc9d0d2d1cdcbc9c8caccced1d4d5d5 -d5d5d5d5d4d3d0cb99767372 -727aadbccbd3d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d5d3d5c57a3a3a383a59ecfdfcfcfc -fbfcfcfcfcfcfcfbfcfbfcfcfbfcfcfcfbfcf2c46785aabdc9d1d3d3d2d2d0d1d1d2d2d3d4d5d5 -d5d5d5d5d5d5d4d4d4b88872 -727bacbacbd3d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d5d4d3d5b15441467bd7fcfcfcfbfc -fcfdfdfcfcfcfbfcfcfcfdfdfcfcfcfcfbfccd5d4484abbecad1d2d4d4d5d4d5d4d4d4d4d5d5d5 -d5d5d5d5d5d4d5d4d4d5cea5 -727caebac9d3d4d4d4d4d5d5d5d5d4d4d4d4d4d4d4d4d4d4d5d5d3d3ce99a7dcf8fcfcfcfcfcfc -fbfbfcfcfbfcfcfdfcfcfcfcfbfcfcfcf8c2523a4789aabecad1d3d4d5d5d5d5d5d5d5d5d5d5d5 -d5d5d5d5d5d5d5d5d5d5d2c6 -7084aebacbd2d3d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d3d1d1bfa4f4fafbfbfcfcfbfc -fcfcfbfbfcfcfcfcfcfcfcfcfcfbfbf6a44538364e8aaabecbd2d4d4d4d4d4d4d4d4d4d4d4d4d4 -d4d4d4d4d4d4d5d5d4d3cec1 -718eacbbcdd3d3d4d4d4d5d4d5d4d4d4d5d4d4d5d4d4d5d4d5d4d4d3cfceadbdfbfcfbfcfcfcfc -fbfdfdfcfbfdfbfbfcfcfbfbfcfce87f42353834578aa9c0cbd2d5d5d5d5d5d5d5d5d5d5d5d5d5 -d5d5d5d5d5d5d5d4d0c9c19f -739daec0d0d4d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d5d4d4d4cfd0bc95d1fbfbfbfcfcfc -fcfcfcfcfcfcfbfcfcfcfcfcefa84c3b383c39385e88a7c1ccd2d4d5d5d5d5d5d5d5d5d5d5d5d5 -d5d5d5d5d4d4d4d1c6bca676 -81a6b6cbd2d3d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d5d4d4d4cfcabf9f80cbfafbfcfcfc -fbfcfcfcfcfbfcfcfcfcf0b45b3c3a3b3a3738396488a6bfccd3d4d5d5d5d5d5d5d5d5d5d5d5d5 -d4d4d4d4d3d1ccc1b5947871 -94aebfcdd2d3d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d5d5d4d4d4d0c6bda6835a8ad1eff7fb -fcfbfcfcfbfaf3e7c5935a3f373a3b3b3b3b3b3d6b8ba7becbd2d5d5d5d5d5d5d5d5d5d5d5d4d4 -d5d4d4cec7c0b5a280727373 -a4afbdc8d1d2d2d3d4d3d4d4d5d4d4d4d4d4d4d4d4d4d4d4d5d4d4d4d1c8bca98d693b3d5c7e93 -a7aea0988f7c5e4b3d3b3a38383b3b3b3b3b3a43708ea7bdcad2d5d5d5d5d5d5d5d5d5d5d4d2d1 -d2d1c8bbb09a7f7372727272 -a3abb7bfc8cbcdcecfd0d2d4d3d4d4d4d4d4d4d4d4d4d4d5d5d4d5d4d0c8bca78f75473839383d -3d3a39373836353a383b37373b3a3a393a3a38477590a6bac9d2d4d5d5d5d4d4d4d5d4d4d0ccca -c6bdb1947971727272737272 -9aa5aaafb7bcbfc0c3c5c6cacccfd0d1d2d3d3d4d4d4d4d5d5d4d4d3cec3b6a28b7b553939393a -393939393939393939393939393a393a3a393947768fa3b5c3cfd4d4d4d4d4d4d2d2d1cbc5bfbb -b19b80737172727272727272 -7a91989da0a2a7abafb2b6b7bcc0c4c6c9cdd0d2d4d4d4d4d4d4d4d1c8bba9988a7c593a3a3a3a -3a393a3a3a3a3a3a3a3a3a3a3a3938393a3a3a4a768a9daebdc9d0d2d3d3d2d2d0cdc7bfb8b2a6 -8a7371717171727272727272 -7172757a838c91979c9fa4a4a6a9aeb1b6bac1c7cdcfd1d2d1d1d1cbbfb09e8f857958383a3839 -3b3b3b3b3c3b3b3c3b3b3b3b3b3a3837383a394c738596a5b5bfc9ced0d1d0cdc7bfbbafa49a7b -727172727272727272727272 -727273727272747c858b90949496999b9fa4acb3b9bec3c8cbcac4bbafa393867d734e3c404141 -4b555858585858585858585857554d454543404d7082909daab6c0c5c7c8c6beb8b2a89b8a7571 -727272727272727272727272 -7372727272727171727274797d8185898d90959ba2a6abb0b6b6b0a89c92867e776547656f7372 -707172727272727272727272727174736f6f66656c7e8a959fa6aeb3b4b4b1aaa49d9382727272 -727272727272727272727272 -727271717271717171727271717273767b7d82898e9195989b9b98928a837e7972616470727172 -72727171717171717172727272727272727171706d76828e979b9da0a1a19f9b968d7c73727271 -717272727272727272727272 -72727272717171717171717172717170717172767d81868788878683807c776f6e727271717171 -7171717171717171717272727272727272727271706f79838c9192959595938d84787171717272 -727272727272727272727272 -7272727271717171717171717271717171737372727375767a7c7d7b79746e6d72737271717171 -7171717171717171717272727272727272727271726e6f737c8285888786837974727172717272 -727272727272727272727272 -7272727271717171717171717271717171727272727272707273706f6f71707272727271717171 -71717271717171717172727272727272727272727272716e6f6f72757372727172717172727272 -727272727272727272727272 -showpage -%%Trailer -end -%%EOF -%%EndDocument -end PEND 1 0 0 Cr/F4 37.04 0 46.3/Times-Bold@0 MF(L)72 518 Q 0 Cg/F5 11 -/Times-Roman@0 SF .718 .2(orem ipsum dolor sit amet, consetetur sa-) -99.706 494 T 2.35 .2(dipscing elitr)99.706 506 T 5.5(,s)-.44 G 2.35 .2 -(ed diam nonumy eirmod)-5.3 H .13 .2(tempor in)99.706 518 T .129 .2 -(vidunt ut labore et dolore magna)-.44 H -.2 .2 -(aliquyam erat, sed diam v)72 530 T .2(oluptua.)-.22 G .914(At v)84 542 -R .914(ero eos et accusam et justo duo dolores et)-.165 F 1.378(ea reb) -72 554 R 1.378(um. Stet clita kasd guber)-.22 F 1.377 -(gren, no sea taki-)-.198 F .463 -(kimata sanctus est lorem ipsum dolor sit)72 566 R .975 -(amet. Lorem ipsum dolor sit amet, con-)72 578 R 2.725 -(setetur sadipscing elitr)72 590 R 5.475(,s)-.44 G 2.725(ed diam non-) --5.475 F(umy eirmod tempor)72 602 Q(.)-.605 E .2(In)84 614 S 1.838 .2 -(vidunt ut labore et dolore magna)-.44 H 2.035 .2 -(aliquyam erat, sed diam v)72 626 T 2.036 .2(oluptua. At)-.22 H -.165 -(ve)72 638 S .381(ro eos et accusam et justo duo dolores).165 F -(et ea reb)72 650 Q(um.)-.22 E 1.913(Stet clita kasd guber)84 662 R -1.914(gren, no sea ta-)-.198 F 2.556 -(kimata sanctus est lorem ipsum dolor sit amet.)72 674 R 1.712 -(Lorem ipsum dolor sit amet, consetetur sadipsc-)72 686 R 1.897 -(ing elitr)72 698 R 4.647(,s)-.44 G 1.896 -(ed diam nonumy eirmod tempor in)-4.647 F(vi-)-.44 E .293 -(dunt ut labore et dolore magna aliquyam erat. Sed)72 710 R .065(diam v) -72 722 R .065(oluptua, at v)-.22 F .064(ero eos et accusam et justo duo) --.165 F 1.22 .3(dolores et ea reb)72 734 T 1.22 .3 -(um. Stet clita no kasd guber)-.22 H(-)-.22 E .98 .3 -(gren, no sea takimata sanctus est lorem ipsum)318 494 T 3.158 -(dolor sit amet. Consetetur sadipscing elitr)318 506 R 5.909(,s)-.44 G -(ed)-5.909 E .306(diam nonumy eirmod tempor in)318 518 R .306 -(vidunt ut labore et)-.44 F(dolore.)318 530 Q 2.856 -(Magna aliquyam erat, sed diam v)330 542 R 2.857(oluptua, at)-.22 F --.165(ve)318 554 S 1.875(ro eos et accusam. Et justo duo dolores et ea) -.165 F(reb)360 566 Q .641(um, stet clita kasd guber)-.22 F .641 -(gren. No sea)-.198 F 1.046(takimata sanctus est, lorem ipsum dolor)360 -578 R(sit amet.)360 590 Q 2.238(Sit amet, consetetur sadipscing elitr) -372 602 R(,)-.44 E 1.134(sed diam. Nonumy eirmod tempor in)360 614 R -(vi-)-.44 E 1.875 .3(dunt ut labore et dolore magna. Ali-)360 626 T -1.499(quyam erat sed diam v)360 638 R 1.499(oluptua. At v)-.22 F(ero) --.165 E .199(eos et accusam et justo duo dolores et ea)360 650 R(reb)360 -662 Q(um stet.)-.22 E 1.257(Dolores et ea reb)330 674 R 1.257 -(um stet clita kasd guber)-.22 F(gren,)-.198 E 4.462 -(no sea takimata sanctus. Sadipscing elitr sed)318 686 R 1.296 -(diam, nonumy eirmod tempor)318 698 R 4.046(,i)-.44 G -.44(nv)-4.046 G -1.296(idunt ut labore).44 F 1.456 -(et dolore magna aliquyam erat. Sed diam v)318 710 R(olup-)-.22 E .435 -(tua, at v)318 722 R .434(ero eos et accusam et justo duo dolores et) --.165 F(ea reb)318 734 Q(um.)-.22 E 0 Cg EP -%%Trailer -end -%%EOF diff --git a/gen/usr/share/doc/groff/1.19.2/examples/webpage.ms b/gen/usr/share/doc/groff/1.19.2/examples/webpage.ms deleted file mode 100644 index 37f7e4d..0000000 --- a/gen/usr/share/doc/groff/1.19.2/examples/webpage.ms +++ /dev/null @@ -1,1832 +0,0 @@ -.\" This file gives a small example how a web page could look like if created -.\" with groff. -.\" -.\" -.\" To make it work with other output devices also, we include www.tmac -.\" directly. -.\" -.nr PS 10 -.nr VS 12 -.if '\*[.T]'html' .nr LL 10i -.if r ps4html .nr LL 10i -. -.HEAD "" -.\" .HEAD "" -. -.mso www.tmac -. -.de blm-macro -. nr tmp \\n[.i] -. LP -. in \\n[tmp]u -.. -.blm blm-macro -. -.HX 0 -. -.defcolor mydarkred rgb 0.65f 0.1f 0.2f -.defcolor mydarkgreen rgb 0.1f 0.5f 0.2f -.defcolor mydarkblue rgb 0.1f 0.2f 0.6f -. -.ds GNU \m[mydarkred]G\m[]\m[mydarkgreen]N\m[]\m[mydarkblue]U\m[] -. -.NHR -.HTL -. -Home of Groff (GNU Troff). -. -. -.HTML-IMAGE-LEFT -.PSPIC -L gnu.eps 2i 2i -.ie r ps4html \ -. nop \v'-0.66i'\h'2.0i'\s[100]\*[GNU] Troff\s0 -.el \ -. nop \v'-0.66i'\h'2.0i'\s[60]\*[GNU] Troff\s0 -.HTML-IMAGE-END -. -.HR -.HnS 1 -GNU Troff (\c -.URL http://\:groff.ffii.org/ Groff ) -\[em] a -.URL http://\:www.gnu.org/ GNU -project. -.HnE -.HR -.LK -. -.LP -.DC T HE mydarkred -groff (GNU Troff) software -is a typesetting package which reads plain text mixed with -formatting commands and produces formatted output. -Groff now supports HTML. -. -. -.SH -Download - -The source code of the currently released versions of groff is -available at the -.URL "http://\:groff.ffii.org/\:groff/" "FFII host (Germany)" , -.URL "ftp://\:ftp.gnu.org/\:gnu/\:groff/" "GNU host (USA)" , -and its mirrors. -. -The USA site also contains older, obsolete versions. - -The most actual pre-release, development version is available from a -CVS repository, see below. -. -Development snapshots (produced twice a day from the CVS repository) -can be downloaded from -.URL "http://\:groff.ffii.org/\:groff/\:devel" here . - -For a special version of groff on the Microsoft operating systems, see -.URL "http://\:gnuwin32.sf.net/\:packages/\:groffl.htm" "Groff for Windows" . - -GNU troff is released under the -.URL http://\:www.gnu.org/\:copyleft/\:gpl.html "GNU Copyright License" . - -User issues lead: -.MTO Ted.Harding@\:nessie.mcc.ac.uk "Ted Harding" . -.br -Technical issues lead: -.MTO wl@\:gnu.org "Werner Lemberg" . -. -. -.SH -README - -This is the GNU groff document formatting system. -The version number is given in the file VERSION. - -Included in this release are implementations of troff, pic, eqn, tbl, -grn, refer, \-man, \-mdoc, and \-ms macros, and drivers for PostScript, -TeX dvi format, HP LaserJet\~4 printers, Canon CAPSL printers, HTML format -(beta status), and typewriter-like devices. -Also included is a modified version of the Berkeley \-me macros, an enhanced -version of the X11 xditview previewer, and an implementation of the \-mm -macros contributed by -.MTO jh@\:axis.se "J\[:o]rgen H\[:a]gg" . - -See the file INSTALL for installation instructions. -You will require a C++ compiler. - -The file NEWS describes recent user-visible changes to groff. - -Groff is free software. -See the file COPYING for copying permission. - -The file PROBLEMS describes various problems that have been encountered in -compiling, installing, and running groff. - -The most recent released version of groff is always available by -.URL "ftp://\:ftp.gnu.org/\:gnu/\:groff" "anonymous ftp" . - -The current development version of groff is available from a -.URL "http://\:savannah.gnu.org/\:cvs/\:?group=groff" "CVS repository" . -You can access it by first selecting a parent directory in -which to create a working copy (call it, say, ~/cvswork), and then -executing the commands - -.in 2m -.nf -.ft C -cd ~/cvswork -CVS_RSH=ssh; export CVS_RSH -cvs -d:ext:anoncvs@savannah.gnu.org/cvsroot/groff -z5 co groff -.ft P -.fi -.in - -(Note that you need an SSH client for security reasons.) - -This will create a subdirectory, ~/cvswork/groff, with a `checked out' -copy of the CVS repository. -An update of this working copy may be -achieved, at any later time by invoking the commands - -.in 2m -.nf -.ft C -cd ~/cvswork/groff -CVS_RSH=ssh cvs -z5 update -dP -.ft P -.fi -.in - -Please read the CVS info pages for further details. - -Finally, it is possible to access the CVS with a -.URL http://\:savannah.gnu.org/\:cvs/\:?group=groff "web browser" . - -Alternatively, you can download snapshots (which are updated twice a day). -The complete groff source as a single file is available -.URL http://\:groff.ffii.org/\:groff/\:devel/\:groff-current.tar.gz here . - -A diff file relative to groff-\[la]version\[ra], the latest official groff -release is available at - -.in 2m -.ft C -http://groff.ffii.org/groff/devel/groff-\[la]version\[ra]-current.diff.gz -.ft P -.in - -Assuming that groff-\[la]version\[ra].tar.gz and -groff-\[la]version\[ra]-current.diff.gz are in the same directory, do the -following to apply the diff file: - -.in 2m -.nf -.ft C -tar xzvf groff-\[la]version\[ra].tar.gz -cd groff-\[la]version\[ra] -gunzip -c ../groff-\[la]version\[ra]-current.diff.gz | patch -p1 -.ft P -.fi -.in - -Depending on your requirements, you may need at least some of the -following tools to build groff directly from its source: - -.in 2m -.nf -ghostscript -the psutils package -the netpbm package -texinfo 4.8 -bison \[>=] 1.875b or byacc -.fi -.in - -Note that texinfo and bison or byacc are required only for building from -CVS sources (either a checked out working copy, or a daily snapshot). -They are not required for building from a stable release tarball. -Also note that the version numbers stated are the minimum supported. -No version of texinfo < 4.8 will work, and the original release of bison -1.875 is known not to work; you \fImay\fP find that bison releases < 1.875 -will work, but in case of difficulty, please update to a later version -\fIbefore\fP posting a bug report. - -For \fIall\fP sources, you need ghostscript for creation of either PDF or -HTML output; the netpbm and psutils packages are required only for HTML -output. -If you don't intend to produce output in either of these formats, then -these packages are unnecessary. - -Please report bugs using the form in the file BUG-REPORT; the idea of this -is to make sure that FSF has all the information it needs to fix the bug. -At the very least, read the BUG-REPORT form and make sure that you supply -all the information that it asks for. -Even if you are not sure that something is a bug, report it using -BUG-REPORT: this will enable us to determine whether it really is a bug or -not. - -Three mailing lists are available: - -.ULS -.LI -.MTO bug-groff@gnu.org bug-groff@gnu.org -for reporting bugs - -.LI -.MTO groff@gnu.org groff@gnu.org -for general discussion of groff - -.LI -.MTO groff-commit@gnu.org groff-commit@gnu.org -a read-only list showing commitments to the CVS repository -.ULE - -You can post mails directly to the `bug-groff' list, without subscribing; -to post mails to the `groff' list you must subscribe to it. - -To subscribe, send e-mail to \[la]list\[ra]-request@\[la]domain\[ra] -(example: -.MTO groff-request@\:gnu.org groff-request@\:gnu.org -for the `groff' list) with the word `subscribe' in either the -subject or body of the e-mail (don't include the quotes). -Alternatively, you may subscribe by visiting the web pages at - -.in 2m -.nf -.URL http://lists.gnu.org/mailman/listinfo/bug-groff -.URL http://lists.gnu.org/mailman/listinfo/groff -.URL http://lists.gnu.org/mailman/listinfo/groff-commit -.fi -.in - -Each of these web pages also provides a link to a browseable archive of -postings to the corresponding mailing list. - -GNU groff was written by -.MTO jjc@\:jclark.com "James Clark" . -It is now maintained by -.MTO Ted.Harding@\:nessie.mcc.ac.uk "Ted Harding" -and -.MTO wl@\:gnu.org "Werner Lemberg" . -. -. -.SH -NEWS VERSION 1.19.2 -. -.SH 2 troff - -.ULS -.LI -Analogously to the .ft and \ef pair, two new requests `gcolor' and -`fcolor' (which pair with \em and \eM, respectively) have been added to -set the glyph and background colours. - -.LI -A new read-only, string-valued register `.sty' returns the name of the -current style. - -.LI -Two new conditional operators `F\~\[la]name\[ra]' and `S\~\[la]name\[ra]' -have been added. -`F' is true if a font \[la]name\[ra] exists. -`S' is true if a style \[la]name\[ra] has been registered. - -.LI -Cyrillic characters have been added to the `utf8' and `html' output -devices. -.ULE -. -. -.SH 2 -pic - -.ULS -.LI -The `by' argument in a `for' loop can now be negative if it is additive. -For the multiplicative case, it must be greater than zero. -.ULE -. -. -.SH 2 -eqn - -.ULS -.LI -The following keywords aren't new but haven't been documented previously: - -.in 2m -\fBundef NAME\fP (to undefine a macro) -.br -\fBcopy "FILE"\fP (a synonym for `include') -.br -\fBspace n\fP (to modify the vertical spacing before and after an equation) -.in - -.LI -The following macros aren't new but haven't been documented previously: - -.in 2m -\fBAlpha, .\|.\|., Omega\fP (the same as `ALPHA', .\|.\|., `OMEGA') -.br -\fBldots\fP (three dots on the base line) -.br -\fBdollar\fP (a dollar glyph) -.in - -.LI -The following keywords have been extended. Again, this isn't new but -hasn't been documented previously: - -.in 2m -.ft B -col n { .\|.\|. } -.br -lcol n { .\|.\|. } -.br -rcol n { .\|.\|. } -.br -ccol n { .\|.\|. } -.br -pile n { .\|.\|. } -.br -lpile n { .\|.\|. } -.br -rpile n { .\|.\|. } -.br -cpile n { .\|.\|. } -.ft P -(set vertical spacing between rows to\~N) -.ULE -. -. -.SH 2 -grohtml - -.ULS -.LI -This device driver has been raised to beta stage; its set of tags should -be stable now. - -.LI -New command line option `\-s' to set the base point size. - -.LI -New command line option `\-S' to set the split level while generating -multiple files. -.ULE -. -. -.SH 2 -grotty - -.ULS -.LI -Experimental support for zero-width and double-width characters. -.ULE -. -. -.SH 2 -gxditview - -.ULS -.LI -On platforms which have the X\~Window System this program is now built and -installed automatically. -.ULE -. -. -.SH 2 -xtotroff - -.ULS -.LI -This program to create font definition files for xditview isn't new but -hasn't been installed previously. -.ULE -. -. -.SH 2 -groffer - -.ULS -.LI -A security problem (reported as CAN-2004-0969) has been fixed. -.ULE -. -. -.SH 2 -gdiffmk - -.ULS -.LI -A new script contributed by Mike Bianchi. -It compares two groff, nroff, or troff documents and creates an output with -added margin characters (using `.mc') to indicate the differences. -.ULE -. -. -.SH 2 -pdfroff - -.ULS -.LI -A new wrapper script contributed by Keith Marshall to easily create PDF -documents with groff. -.ULE -. -. -.SH 2 -macro packages - -.ULS -.LI -ms.tmac - -.ULS -.LI -Support for fractional point sizes: A value for the `PS', `VS', `FPS', -and `VPS' register larger than or equal to 1000 is always divided by 1000. -For example, `.nr\~PS\~10250' sets the document's font size to 10.25 points. - -.LI -The `Ds' and `De' macros provided in ms since groff version 1.19 have -been removed; the equivalent `DS' and `DE' macros should be used instead. -X11 documents which actually use `Ds' and `De' always load a -specific macro file from the X11 distribution (`macros.t') which -provides proper definitions for the two macros. - -.LI -The following registers have been added for improving layout control: - -.IP PORPHANS -Defines number of lines following `LP', `PP', `QP', `IP' or `XP' which -must be kept together, before any automatic page break. - -.IP HORPHANS -Sets number of lines of following paragraph which must be kept with a -heading, defined by `NH' or `SH', before any automatic page break. - -.IP GROWPS -Sets the first level of heading (set with `NH') which will keep the -same point size as body text. - -.IP PSINCR -Sets the point size increment for each level of heading (set with -`NH'), below the threshold level set by `GROWPS'; e.g., if -\en[PS]\~=\~10, \en[GROWPS]\~=\~3 and \en[PSINCR]\~=\~2.0p, then `.NH\~1' -will produce 14pt headings, `.NH\~2' will produce 12pt, and all other levels -will remain at 10pt (because \en[PS]\~=\~10). - -.LI -The `SH' macro now accepts a numeric argument, to make heading size -match that of `NH' with same argument value when the `GROWPS'/`PSINCR' -feature is enabled. -.ULE - -Please refer to the documentation of the ms package for other, minor -improvements. - -.LI -me.tmac - -The section type set with the `++' request is available in the `_M' -register. -This isn't new but hasn't been documented before. - -.LI -www.tmac - -The `HR' macro no longer causes an empty line for non-HTML devices. - -A new macro `HEAD' has been added to directly add data to the -... block. - -New macros `OLS' and `OLE' to start and end an ordered list. - -New macros `DLS' and `DLE' to start and end a definition list. -.ULE -. -. -.SH 2 -pdfmark - -.ULS -.LI -A new macro package contributed by Keith Marshall which implements PDF -marks. -This is in alpha stage currently. -.ULE -. -. -.SH 2 -miscellaneous - -.ULS -.LI -Two new keywords to the DESC file have been added which are needed for -grohtml: `image_generator' and `unscaled_charwidths'. -The former gives the name of the program which creates PNG images, -and the latter makes troff always use unscaled character widths. -.ULE -. -. -.SH -NEWS VERSION 1.19.1 -. -.SH 2 -groff - -.ULS -.LI -The argument of the command line option `\-I' is now also passed to troff -and grops, specifying a directory to search for files on the command line, -files named in `so' and `psbb' requests, and files named in \eX'ps:\~file' -and \eX'ps:\~import' escapes. - -.LI -If option `\-V' is used more than once, the commands will be both printed -on standard error and run. -.ULE -. -. -.SH 2 -troff - -.ULS -.LI -Two new read-only, string-valued registers `.m' and `.M' return the -name of the current drawing and background color, respectively. - -.LI -New read-only register `.U' which is set to\~1 if in safer mode and set -to\~0 if in unsafe mode. - -.LI -An input encoding file for \%latin-5 (a.k.a.\& ISO \%8859-9) has been -added. -Example use: - -.in 2m -.ft C -groff \-Tdvi \-mlatin5 my_file > my_file.dvi -.ft R -.in - -Note that some output devices don't support all glyphs of this encoding. - -.LI -If the `return' request is called with an argument, it exits twice, -namely the current macro and the macro one level higher. -This is used to define a wrapper macro for `return' in trace.tmac. - -.LI -For completeness, two new requests have been added: `dei1' and `ami1'. -They are equivalent to `dei' and `ami', respectively, but the macros -are executed with compatibility mode off (similar to `de1' and `am1'). - -.LI -New command line option `\-I' to specify a directory for files (both -those on the command line and those named in `psbb' requests). -This is also handled by the groff wrapper program. - -.LI -Since version 1.19 you can say `.vs\~0'. -Older versions emit a warning and convert this to `.vs\~\en[.V]'. - -This hasn't been documented properly. -Note that `.vs\~0' isn't saved in a diversion since it doesn't result -in vertical motion. -.ULE -. -. -.SH 2 -pic - -.ULS -.LI -Dashed and dotted ellipses have been implemented. -.ULE -. -. -.SH 2 -tbl - -.ULS -.LI -New key character `x' to make tbl call a user-defined macro on a table -cell. -Patch by -.MTO hj.oertel@\:surfeu.de "Heinz-J\[:u]rgen Oertel" . -.ULE -. -. -.SH 2 -grap2graph - -.ULS -.LI -A new script contributed by -.MTO esr@\:thyrsus.com "Eric S. Raymond" . -It converts a grap diagram into a cropped image. -Since it uses gs and the PNM library, virtually all graphics formats -are available for output. -[Note that the grap program itself isn't part of the groff package; -see the file MORE.STUFF how to obtain grap.] -.ULE -. -. -.SH 2 -grohtml - -.ULS -.LI -New option `\-j' to emit output splitted into multiple files. -.ULE -. -. -.SH 2 -grops - -.ULS -.LI -New command line option `\-I' to specify a directory to search for files -on the command line and files named in \eX'ps:\~import' and \eX'ps:\~file' -escapes. -This is also handled by the groff wrapper program. - -.LI -The default value for the `broken' keyword in the DESC file is now\~0. -.ULE -. -. -.SH 2 -grolj4 - -.ULS -.LI -A new man page `lj4_font(5)' documents how fonts are accessed with -grolj4. - -.LI -The built-in fonts for LJ4 and newer PCL\~5 devices have been completely -revised, mainly to access as much glyphs as possible. -The provided metric files should be compatible with recent PCL\~5 printers -also. -Additionally, font description files have been added for the Arial and -Times New Roman family, the MS symbol, and Wingdings fonts. -.ULE -. -. -.SH 2 -afmtodit - -.ULS -.LI -New option `\-x' to prevent use of built-in Adobe Glyph List. -.ULE -. -. -.SH 2 -hpftodit - -.ULS -.LI -Completely revised to handle HP TrueType metric files also. -See the hpftodit manual page for more details. -.ULE -. -. -.SH 2 -groffer - -.ULS -.LI -This version is a rewrite of groffer in many parts, but it is kept in -the old single script style. - -.ULS -.LI -New options: \-\-text (\-\-mode\~text), \-\-tty-viewer, \-\-X (\-\-mode\~X), -\-\-X-viewer, \-\-html (\-\-mode\~html), \-\-html-view, \-\-apropos-data, -\-\-apropos-devel, \-\-apropos-progs. - -.LI -New documentation file README_SH. - -.LI -Enhancement of the configuration files and the `apropos' handling. -.ULE -.ULE -. -. -.SH 2 -macro packages - -.ULS -.LI -www.tmac: New macro `JOBNAME' to split output into multiple files. - -.LI -In mdoc, multiple calls to `.Lb' are now supported in the LIBRARY -section. -.ULE -. -. -.SH -NEWS VERSION 1.19 -. -.SH 2 -troff - -.ULS -.LI -Input encoding files for \%latin-9 (a.k.a.\& \%latin-0 and ISO \%8859-15) -and \%latin-2 (ISO \%8859-2) have been added. -Example use: - -.in 2m -.ft C -groff -Tdvi -mlatin9 my_file > my_file.dvi -.ft P -.in - -You still need proper fonts with the necessary glyphs. -Out of the box, the groff package supports \%latin-9 only for \-Tps, -\-Tdvi, and \-Tutf8, and \%latin-2 only for \-Tdvi and \-Tutf8. - -.LI -Composite glyphs are now supported. -To do this, a subset of the Adobe Glyph List (AGL) Algorithm as described in -.URL http://partners.adobe.com/asn/tech/type/unicodegn.jsp \ - http://partners.adobe.com/asn/tech/type/unicodegn.jsp -is used to construct glyph names based on Unicode character codes. -The existing groff glyph names are frozen; no glyph names which can't be -constructed algorithmically will be added in the future. - -The \e[...] escape sequence has been extended to specify multiple glyph -components. -Example: - -.in 2m -.ft C -\e[A ho] -.ft R -.in - -this accesses a glyph with the name `u0041_0328'. - -Some groff glyphs which are useful as composites map to `wrong' Unicode -code points. -For example, `ho' maps to U+02DB which is a spacing ogonek, whereas a -non-spacing ogonek U+0328 is needed for composite glyphs. -The new request - -.in 2m -.ft C -\&.composite from to -.ft R -.in - -will change the mapping while a composite glyph name is constructed. -To make \e[A\~ho] yield the expected result, - -.in 2m -.ft C -\&.composite ho u0328 -.ft R -.in - -is needed. -[The new file `composite.tmac' loaded at start-up already -contains proper calls to `.composite'.] - -Please refer to the info pages of groff and to the groff_char man page -for more details. - -.LI -A new request `fschar' has been added to define font-specific fallback -characters. -They are searched after the list of fonts declared with the -`fspecial' request but before the list of fonts declared with `special'. - -.LI -Fallback characters defined with `fschar' can be removed with the -new `rfschar' request. - -.LI -A new request `schar' has been added to define global fallback -characters. -They are searched after the list of fonts declared with the -`special' request but before the already mounted special fonts. - -.LI -In groff versions 1.18 and 1.18.1, \eD'f\~...'\& didn't move the current -point horizontally. -Despite of being silly, this change has been reverted for backwards -compatibility. -Consequently, the intermediate output command `Df' also moves the -position horizontally again. - -\eD'f\~...'\& is deprecated since it depends on the horizontal resolution -of the output device (given with the `hor' parameter in the DESC file). -Use the new \eD'Fg\~...'\& escape instead. - -.LI -For orthogonality, new \eD subcommands to change the fill color are -available: - -.in 2m -.ft C -\eD'Fr ...' \f[R](rgb)\f[] -.br -\eD'Fc ...' \f[R](cmy)\f[] -.br -\eD'Fg ...' \f[R](gray)\f[] -.br -\eD'Fk ...' \f[R](cmyk)\f[] -.br -\eD'Fd' \f[R](default color)\f[] -.ft R -.in - -The arguments are the same as with the `defcolor' request. -The current position is \f[I]not\f[] changed. - -.LI -The values set with \eH and \eS are now available in number registers -\en[.height] and \en[.slant], respectively. - -.LI -The `.pe' number register isn't new but hasn't been documented before. -It is set to\~1 during a page ejection caused by the `bp' request. - -.LI -The new glyph symbol `tno' is a textual variant of `no'. - -.LI -The new glyph symbol `+e' represents U+03F5, GREEK LUNATE EPSILON SYMBOL. -(Well, it is not really new since it has been previously supported by -grolj4.) -The mapping for both the dvi and lj4 symbol font has been -changed accordingly so that Greek small letter epsilon, `*e', has the -same glyph shape as with other devices. -.ULE -. -. -.SH 2 -grops - -.ULS -.LI -The font `freeeuro.pfa' has been added to provide various default glyph -shapes for `eu' and `Eu'. - -.LI -It is now possible to access all glyphs in a Type\~1 font, not only 256 -(provided the font file created by afmtodit has proper entries). -grops constructs additional encoding vectors on the fly if necessary. - -.LI -The paper size is now emitted via the %%DocumentMedia and PageSize -mechanisms so that it is no longer required to tell `gv' or `ps2pdf' -about the paper size. -The `broken' flag value\~16 omits this feature -(the used PostScript command `setpagedevice' is a LanguageLevel\~2 -extension). -Patch by -.MTO egil@\:kvaleberg.no "Egil Kvaleberg" . - -.LI -Non-slanted PostScript metrics have been changed again; they no longer -contain negative left italic correction values. -This assures correct spacing with eqn. -.ULE -. -. -.SH 2 -grodvi - -.ULS -.LI -The font cmtex10 has been added as the special font `SC' to the DVI fonts. -It is used as a font-specific special font for CW and CWI. - -.LI -New options \-l and \-p to set landscape orientation and the paper size. -grodvi now emits a `papersize' special which is understood by DVI drivers -like dvips. - -Consequently, the DESC file should contain a `papersize' keyword. - -.LI -The glyph shapes for \e[*f] and \e[*e] have been exchanged with \e[+f] and -\e[+e], respectively, to be in sync with all other devices. - -.LI -Glyphs \e[HE] and \e[DI] have been replaced with \e[u2662] and \e[u2661], -respectively, since the former two glyphs have a black (filled) shape -which grodvi doesn't provide by default (it never has actually). -.ULE -. -. -.SH 2 -grolj4 - -.ULS -.LI -The glyphs \e[*e] and \e[+e] have been exchanged to be in sync with -all other devices. - -.LI -The glyph \e[~=] is now called \e[|=]. Similar to other devices, \e[~=] -is now another name for glyph \e[~~]. -.ULE -. -. -.SH 2 -grotty - -.ULS -.LI -New option `\-r'. -It is similar to the \-i option except it tells grotty to -use the `reverse video' attribute to render italic fonts. -.ULE -. -. -.SH 2 -pic - -.ULS -.LI -New command `figname' to set the name of a picture's output box in TeX -mode. -.ULE -. -. -.SH 2 -refer - -.ULS -.LI -The environment variable `REFER' to override the name of the default -database isn't new but hasn't been documented before. -.ULE -. -. -.SH 2 -soelim - -.ULS -.LI -New option `\-r' to avoid emission of `.lf' lines. - -.LI -New option `\-t' to emit TeX comment lines (giving current file and the -line number) instead of `.lf' lines. -.ULE -. -. -.SH 2 -afmtodit - -.ULS -.LI -Unencoded glyphs in an AFM file are output also (since grops can now emit -multiple encoding vectors for a single font). - -.LI -New option `\-m' to prevent negative left italic correction values. - -.LI -The mapping and encoding file together with file `DESC' are now searched -in the default font directory also. -Please refer to the man page of afmtodit for more details. -.ULE -. -. -.SH 2 -macro packages - -.ULS -.LI -.MTO kollar@\:alltel.net "Larry Kollar" -and others made the man macros more customizable. - -.ULS -.LI -New command line options \-rFT, \-rIN, and \-rSN to set the vertical -location of the footer line, the body text indentation, and the -sub-subheading indentation. - -.LI -New command line option \-rHY (similar to the ms macros) to control -hyphenation. - -.LI -New macros `.PT' and `.BT' to print the header and footer strings. -They can be replaced with a customized version in `man.local'. - -.LI -The string `HF' now holds the typeface to print headings and -subheadings. - -.LI -Similar to the ms macros, the LT register now defaults to LL if not -explicitly specified on the command line. -.ULE - -.LI -troff's start-up file `troffrc' now includes `papersize.tmac' to set -the paper size with the command line option `-dpaper='. - -Possible values for `' are the same as the predefined `papersize' -values in the DESC file (only lowercase; see the groff_font man page) -except \%a7-d7. -An appended `l' (ell) character denotes landscape orientation. -Examples: `a4', `c3l', `letterl'. - -Most output drivers need additional command line switches `\-p' and -`\-l' to override the default paper length and orientation as set in -the driver specific DESC file. - -For example, use the following for PS output on A4 paper in landscape -orientation: - -.in 2m -.ft C -groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps -.ft R -.in -.ULE -. -. -.SH -NEWS VERSION 1.18.1 -. -.SH 2 -troff - -.ULS -.LI -The non-slanted PostScript font definition files have been regenerated to -include left and right italic correction values. -Applying those to a glyph (this is, prepending the glyph with `\e,' and -appending `\e/' to the glyph) sets the glyph width to the real value given -by the horizontal bounding box values. -Without those escapes, the advance width for the particular glyph is used -(which can differ considerably). - -Most users will neither need this feature nor notice a difference in -existing documents (provided \e, and \e/ is used as advertised, namely for -italic fonts only); its main goal is to improve image generation with -grohtml. - -This is an experimental change, and feedback is welcome. -.ULE -. -.SH 2 -tbl - -.ULS -.LI -Added global option `nospaces' to ignore leading and trailing spaces in data -items. -.ULE -. -.SH 2 -grolbp - -.ULS -.LI -The option \-w (\-\-linewidth) has been added (similar to other device -drivers) to set the default line width. -.ULE -. -.SH 2 -grn - -.ULS -.LI -Support for b-spline and Bezier curves has been added. -.ULE -. -.SH 2 -groffer - -.ULS -.LI -New option \-\-shell to select the shell under wich groffer shall run. -.ULE -. -.SH 2 -Macro Packages - -.ULS -.LI -The string `Am' (producing an ampersand) has been added to mdoc for -compatibility with NetBSD. - -.LI -`.IX' is now deprecated for mom; you should use `.IQ' (Indent Quit) -instead. - -.LI -In mom, new inlines `FWD', `BCK', `UP', and `DOWN' deal with horizontal -and vertical movements; please refer to contrib/mom/NEWS for more -details. - -.LI -New macro ENDNOTES_HDRFTR_CENTER for mom to better control headers. -.ULE -. -.SH 2 -Miscellaneous - -.ULS -.LI -The `papersize' keyword in the DESC file now accepts multiple arguments. -It is scanned from left to the right, and the first valid argument is used. -This makes it possible to provide a fallback paper size. - -Example: - -.in 2m -.ft C -papersize /etc/papersize a4 -.ft P -.in - -.LI -A local font directory has been prepended to the default font path; it -defaults to /usr/share/groff/site-font. Similar to the normal -font searching process, files must be placed into a dev\f[I]XXX\f[] -subdirectory, e.g. - -.in 2m -.ft C -/usr/share/groff/site-font/devps/FOO -.ft P -.in - -for a PostScript font definition file FOO. -.ULE -. -. -.SH -NEWS VERSION 1.18 - -This section describes recent user-visible changes in groff. -Bug fixes are not described. -There are more details in the man pages. - -.ad c -\s[+5]\m[red]\ -Please read the changes below regarding -.ie '\*[.T]'html' \ -. URL #grotty grotty , -.el \ -. nop grotty, -groff's tty frontend.\ -\m[]\s[0] -.br -.ad n -. -.SH 2 -Troff - -.ULS -.LI -Color support has been added to troff and pic (and to the device drivers -grops, grodvi, grotty, and grohtml -- other preprocessors and drivers will -follow). -A new function `defcolor' defines colors; the escape sequence `\em' sets the -drawing color, the escape sequence `\eM' specifies the background color for -closed objects created with \eD'.\|.\|.' commands. -`\em[]' and `\eM[]' switch back to the previous color. -`\em' and `\eM' correspond to the new troff output command sets starting -with `m' and `DF'. -The device-specific default color is called `default' and can't be -redefined. - -Use the `color' request to toggle the usage of colors (default is on); the -read-only register `.color' is\~0 if colors are not active, and non-zero -otherwise. - -The old `Df' output command is mapped onto `DFg'; all color output -commands don't change the current font position (consequently, `Df' -doesn't either). - -Outputting color can be disabled in troff and groff with the option\~\-c -(it is always disabled in compatibility mode). -See the section on grotty for the -.ie '\*[.T]'html' \ -. URL #GROFF_NO_SGR GROFF_NO_SGR -.el \ -. nop GROFF_NO_SGR -environment variable also. - -For defining color components as fractions between 0 and\~1, a new scaling -indicator `f' has been defined: 1f\~=\~65536u. -For testing whether a color is defined (with .if and .ie), a new -conditional operator `m' is available. - -More details can be found in the groff_diff.7 manual page and in -groff.texinfo. - -.LI -Similar to \em and \eM, \ef[] switches back to the previous font. -\efP (and \ef[P]) is still valid for backwards compatibility. - -.LI -The new escape \eF is the same as `.fam'; \eF[] switches back to previous -family -- \eF[P] selects family `P'. - -.LI -Two new glyph symbols are available: `eu' is the official Euro symbol; -`Eu' is a font-specific glyph variant. - -.LI -The new glyph symbols `t+\-', `tdi', and `tmu' are textual variants of -`+\-', `di', and `mu', respectively. - -.LI -Latin-1 character 181 (PS name `mu', Unicode name U+00B5 MICRO SIGN) has -got the troff glyph name `mc'. - -.LI -\-Tutf8 is now available on EBCDIC hosts. - -.LI -Strings can take arguments, using this syntax: \e*[foo\~arg1\~arg2\~.\|.\|.]. -Example: - -.in 2m -.nf -.ft C -\&.ds xxx This is a \e\e$1 test. -\e*[xxx nice] -.ft P -.fi -.in - -.LI -It is now possible to have whitespace between the first and second dot (or -the name of the ending macro) to end a macro definition. -Example: - -.in 2m -.nf -.ft C -\&.de ! -\&.. -\&. -\&.de foo -\&. nop Hello, I'm `foo'. -\&. nop I will now define `bar'. -\&. de bar ! -\&. nop Hello, I'm `bar'. -\&. ! -\&.. -.ft P -.fi -.in - -.LI -`.fn' is a new string-valued register which returns the (internal) real -font name; styles and families are properly concatenated. - -.LI -Three new read/write registers `seconds', `minutes', and `hours' contain -the current time, set at start-up of troff. -Use the `af' request to control their output format. - -.LI -The new request `fchar' can be used to provide fallback characters. -It has the same syntax as the `char' request; the only difference is that -a character defined with `.char' hides the glyph with the same name in the -current font, whereas a character defined with `.fchar' is checked only if -the particular glyph isn't found in the current font. -This test happens before checking special fonts. - -.LI -In analogy to the `tmc' request, `.writec' is the same as `.write' but -doesn't emit a final newline. - -.LI -The new request `itc' is a variant of `.it' for which a line interrupted -with \ec counts as one input line. - -.LI -Two new requests `ds1' and `as1' which are similar to `ds' and `as' but -with compatibility mode disabled during expansion of strings defined by -them. - -.LI -The syntax of the `substring' request has been changed: -The first character in a string now has index\~0, the last character -has index\~\-1. -Note that this is an incompatible change. - -.LI -To emit strings directly to the intermediate output, a new `output' -request has been added; it is similar to `\e!' used at the top level. - -.LI -`.hpf' has been extended. -It can now handle most TeX hyphenation pattern files without -modification. -To do that, the commands \epatterns, \ehyphenation, and \eendinput are -recognized. -Please refer to groff_diff.7 for more information. - -.LI -`hpfcode' is a new request to provide an input encoding mapping for the -`hpf' request. - -.LI -The new request `hpfa' appends hyphenation patterns (`hpf' replaces -already existing patterns). - -.LI -A new request `ami' (append macro indirect) has been added. -The first and second parameter of `ami' are taken from string registers -rather than directly; this very special request is needed to make -`trace.tmac' independent from the escape character (which might even -be disabled). - -.LI -The new request `sizes' is similar to the `sizes' command in DESC files. -It expects the same syntax; the data must be on a single line, and the -final `0' can be omitted. - -.LI -`trin' (translate input) is a new request which is similar to `tr' with -the exception that the `asciify' request will use the character code (if -any) before the character translation. -Example: - -.in 2m -.nf -.ft C -\&.trin ax -\&.di xxx -a -\&.br -\&.di -\&.xxx -\&.trin aa -\&.asciify xxx -\&.xxx -.ft P -.fi -.in - -The result is `x\~a'. Using `tr', the result would be `x\~x'. - -.LI -The request `pvs' isn't new, but hasn't been documented before. -It adds vertical space after a line has been output. -This makes it an alternative to the `ls' request to produce -double-spaced documents. -The read-only register `.pvs' holds the current amount of the -post-vertical line space. - -.LI -For compatibility with plan 9's troff, multiple `pi' requests are -supported: - -.in 2m -.nf -.ft C -\&.pi foo -\&.pi bar -.ft P -.fi -.in - -is now equivalent to - -.in 2m -.ft C -\&.pi foo | bar -.ft P -.in - -.LI -A new escape sequence `\eO' is available to disable and enable glyph -output. -Please see groff_diff.man and groff.texinfo for more details. - -.LI -The escapes `\e%', `\e&', `\e)', and `\e:' no longer cause an error in \eX; -they are ignored now. -Additionally `\e\ ' and `\e~' are converted to single space characters. - -.LI -The default tab distance in nroff mode is now 0.8i to be compatible -with UNIX troff. - -.LI -Using the latin-1 input character 0xAD (soft hyphen) for the `shc' -request was a bad idea. -Instead, it is now translated to `\e%', and the default hyphenation -character is again \e[hy]. -Note that the glyph \e[shc] is not useful for typographic purposes; -it only exists to have glyph names for all latin-1 characters. -.ULE -. -.SH 2 -Macro Packages - -.ULS -.LI -.MTO df191@\:ncf.ca "Peter Schaffter" -has contributed a new major macro package called `mom', mainly for -non-scientific writers, which takes care of many typographic issues. -It comes with a complete reference (in HTML format) and some examples. -`mom' has been designed to format documents for PostScript output only. - -.LI -Two macros `AT' (AT&T) and `UC' (Univ. of California) have been added to -the man macros for compatibility with older BSD releases. - -.LI -Both the man and mdoc macro packages now use the LL and LT registers for -setting the line and title length, respectively (similar to those -registers in the ms macro package). -If not set on the command line or in a macro file loaded before the macro -package itself, they default to 78n in nroff mode and 6.5i in troff mode. - -.LI -The `\-xwidth' specifier in the mdoc macro package has been removed. -Its functionality is now integrated directly into `\-width'. -Similarly, `\-column' has been extended to has this functionality also. - -.LI -A new macro `Ex' has been added to the mdoc macro package to document an -exit status. - -.LI -`troff.man' has been split. Differences to UNIX troff are now documented -in the new man page `groff_diff.man'. - -.LI -The PSPIC macro has been extended to work with DVI output (`pspic.tmac' is -now automatically loaded for \-Tdvi), using a dvips special to load the EPS -file. - -.LI -The trace.tmac package now traces calls to `am' also. -Additionally, it works in compatibility mode. - -.LI -`troff.1' has been split. -Differences to UNIX troff are now documented in the new man page -`groff_diff.7'. - -.LI -`groff_mwww.7' has been renamed to `groff_www.7'. -The file mwww.tmac has been removed. - -.LI -`groff_ms.7' has been completely rewritten. -It now contains a complete reference to the ms macros. - -.LI -`groff_trace.7' documents the trace macro package. - -.LI -Changes in www.tmac - -Note that HTML support is still in alpha change, so it is rather likely -that both macro names and macro syntax will change. -Some of the macros mentioned below aren't really new but haven't been -documented properly before. - -.ULS -.LI -The following macros have been renamed: - -.in 2m -.nf -MAILTO -> MTO -IMAGE -> IMG -LINE -> HR -.fi -.in - -.LI -For consistency, the macros `URL', `FTL', and `MTO' now all have the -address as the first parameter followed by the description. - -.LI -By default, grohtml generates links to all section headings at the top -of the document. -Use the new `LK' macro to specify a different place. - -.LI -For specifying the background color and a background image, use the -new macros `BCL' and `BGIMG', respectively. - -.LI -The macro `NHR' has been added; it suppresses the generation of top and -bottom rules which grohtml emits by default. - -.LI -The new macro `HX' determines the cut-off point for automatic link -generation to headings. - -.LI -The image position parameter names in `IMG' have been changed to `\-L', -`\-R', and `\-C'. - -.LI -New macro `PIMG' for inclusion of a PNG image (it will automatically -convert it into an EPS file if not \-Thtml is used). - -.LI -New macro `MPIMG' for putting a PNG image into the left or right margin -(it will automatically convert it into an EPS file if not \-Thtml is used). - -.LI -New macros `HnS', `HnE' to start and end a header line block. - -.LI -New macro `DC' to produce dropcap characters. - -.LI -New macro `HTL' to generate an HTML title line only but no H1 heading. - -.LI -New macros `ULS' and `ULE' to start and end an unordered list. -The new macro `LI' inserts a list item. -.ULE -.ULE -. -. -.SH 2 -groff - -.ULS -.LI -The new command line `\-c' disables color output (which is always disabled -in compatibility mode). -.ULE -. -. -.SH 2 -Nroff - -.ULS -.LI -Two new command line options `\-c' and `\-C'; the former passes `\-c' to -grotty (switching to the old output scheme); the latter passes `\-C' to -groff (enabling compatibility mode). -.ULE -. -. -.SH 2 -pic - -.ULS -.LI -New keywords `color' (or `colour', `colored', `coloured'), `outline' (or -`outlined'), and `shaded' are available. -`outline' sets the color of the outline, `shaded' the fill color, and -`color' sets both. -Example: - -.in 2m -.ft C -circle shaded "green" outline "black" ; -.ft P -.in - -Filled arrows always use the outline color for filling. - -Color support for TeX output is not implemented yet. -.ULE -. -. -.SH 2 -Pic2graph - -.ULS -.LI -A new script contributed by -.MTO esr@\:thyrsus.com "Eric S.\~Raymond" . -It converts a PIC diagram into a cropped image. -Since it uses gs and the PNM library, virtually all graphics formats -are available for output. -.ULE -. -. -.SH 2 -Eqn2graph - -.ULS -.LI -A new script contributed by -.MTO esr@\:thyrsus.com "Eric S.\~Raymond" . -It converts an EQN diagram into a cropped image. -Since it uses gs and the PNM library, virtually all graphics formats -are available for output. -.ULE -. -. -.SH 2 -Groffer - -.ULS -.LI -A new script contributed by -.MTO bwarken@mayn.de "Bernd Warken" . -It displays groff files and man pages on X and tty, taking care of most -parameters automatically. -.ULE -. -. -.SH 2 -Grog - -.ULS -.LI -Documents using the mom macro package are recognized. -.ULE -. -. -.SH 2 -grops - -.ULS -.LI -Color support has been added. - -.LI -A new option `\-p' is available to select the output paper size. -It has the same syntax as the new `papersize' keyword in the DESC file. -.ULE -. -. -.SH 2 -Grodvi - -.ULS -.LI -By default, font sizes are now available in the range 5\-10000pt, similar -to PS fonts. -If you want the old behaviour (i.e., font sizes at discrete values only), -insert the following at the start of your document: - -.in 2m -.nf -.ft C -\&.if '\e*[.T]'dvi' \e -\&. sizes 500 600 700 800 900 1000 1095 1200 1400 1440 1600 \e -\& 1728 1800 2000 2074 2200 2400 2488 2800 3600 -.ft P -.fi -.in - -.LI -A new font file HBI (using cmssbxo10; this is slanted sans serif bold -extended) has been added. - -.LI -Two font families are now available: `T' and `H'. - -.LI -EC and TC fonts have been integrated. -Use `\-mec' (calling the file ec.tmac) to switch to them. -Those fonts give a much better coverage of the symbols defined by groff -than the CM fonts. - -Note that ec.tmac must be called before any language-specific files; it -doesn't take care of hcode values. - -.LI -Color support has been added. -For drawing commands, colors are translated to gray values currently. -.ULE -. -. -.TAG grotty -.SH 2 -Grotty - -.ULS -.LI -Color support has been added, using the SGR (ISO\~6429, sometimes called -ANSI color) escape sequences. - -.LI -SGR escape sequences are now used by default for underlining and bold -printing also, no longer using the backspace character trick. -To revert to the old behaviour, use the `\-c' switch. - -Note that you have to use the `\-R' option of `less' to make SGR escapes -display correctly. -On the other hand, terminal programs and consoles like `xterm' which -support SGR sequences natively can directly display the output of grotty. -Consequently, the options `\-b', `\-B', `\-u', and `\-U' work only in -combination with `\-c' and are ignored silently otherwise. - -For the `man' program, it may be necessary to add the `\-R' option of -`less' to the $PAGER environment variable; alternatively, you can use -`man's `\-P' option (or adapt its configuration file accordingly). -See man(1) for more details. - -.TAG GROFF_NO_SGR -.LI -If the environment variable GROFF_NO_SGR is set, SGR output is disabled, -reverting to the old behaviour. - -.LI -A new special \eX'tty:\~sgr\~n' has been added; if n is non-zero or missing, -enable SGR output (the default). - -.LI -If the new option `\-i' is used (only in SGR mode), grotty sends escape -sequences to set the italic font attribute instead of the underline -attribute for italic fonts. -Note that many terminals don't have support for this (including xterm). -.ULE -. -. -.SH 2 -grohtml - -.ULS -.LI -Color support for glyphs has been added. - -.LI -New option `\-h' to select the style of headings in HTML output. - -.LI -New option `\-b' to set the background colour to white. - -.LI -New options `\-a' and `\-g' to control the number of bits for anti-aliasing -used for text and graphics, respectively. -Default value is\~4; 0\~means no anti-aliasing. - -.LI -groff character/glyph entities now map onto HTML\~4 character entities. -.ULE -. -. -.SH 2 -Grolbp - -.ULS -.LI -Valid paper sizes are now specified as with the new `papersize' keyword -in the DESC file. -Specifically, the old custom paper type format `custAAAxBBB' is no longer -supported. -.ULE -. -. -.SH 2 -Miscellaneous - -.ULS -.LI -A new manual page `ditroff.7' is available. - -.LI -The groff texinfo manual will now be installed, together with a bunch -of examples. - -.LI -A new keyword `papersize' has been added to the DESC file format. -Its argument is either - -.ULS -.LI -a predefined paper format (e.g. `A4' or `letter') - -.LI -a file name pointing to a file which must contain a paper size -specification in its first line (e.g. `/etc/papersize') - -.LI -a custom paper size definition like `35c,4i' -.ULE - -See groff_font(5) for more details. -This keyword only affects the physical dimensions of the output medium; -grops, grolj4, and grolbp use it currently. -troff completely ignores it. -.ULE -. -.HR -. -\s[-2]\f[I]This document was produced using -.URL http://groff.ffii.org/ groff-\n[.x].\n[.y].\n[.Y] . -.br -The image at the top has been contributed by Imogen Mulley (born 1991), -based on a similar picture found on the -.URL http://www.gnu.org "GNU server" . -.HR -.\" EOF diff --git a/gen/usr/share/doc/groff/1.19.2/examples/webpage.ps b/gen/usr/share/doc/groff/1.19.2/examples/webpage.ps deleted file mode 100644 index 97e1823..0000000 --- a/gen/usr/share/doc/groff/1.19.2/examples/webpage.ps +++ /dev/null @@ -1,2530 +0,0 @@ -%!PS-Adobe-3.0 -%%Creator: groff version 1.19.2 -%%CreationDate: Sat Nov 19 17:19:36 2016 -%%DocumentNeededResources: font Times-Roman -%%+ font Symbol -%%+ font Courier -%%+ font Times-Bold -%%+ font Times-Italic -%%DocumentSuppliedResources: file gnu.eps -%%+ procset grops 1.19 2 -%%Pages: 16 -%%PageOrder: Ascend -%%DocumentMedia: Default 612 792 0 () () -%%Orientation: Portrait -%%EndComments -%%BeginDefaults -%%PageMedia: Default -%%EndDefaults -%%BeginProlog -%%BeginResource: procset grops 1.19 2 -%!PS-Adobe-3.0 Resource-ProcSet -/setpacking where{ -pop -currentpacking -true setpacking -}if -/grops 120 dict dup begin -/SC 32 def -/A/show load def -/B{0 SC 3 -1 roll widthshow}bind def -/C{0 exch ashow}bind def -/D{0 exch 0 SC 5 2 roll awidthshow}bind def -/E{0 rmoveto show}bind def -/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def -/G{0 rmoveto 0 exch ashow}bind def -/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/I{0 exch rmoveto show}bind def -/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def -/K{0 exch rmoveto 0 exch ashow}bind def -/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/M{rmoveto show}bind def -/N{rmoveto 0 SC 3 -1 roll widthshow}bind def -/O{rmoveto 0 exch ashow}bind def -/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/Q{moveto show}bind def -/R{moveto 0 SC 3 -1 roll widthshow}bind def -/S{moveto 0 exch ashow}bind def -/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/SF{ -findfont exch -[exch dup 0 exch 0 exch neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/MF{ -findfont -[5 2 roll -0 3 1 roll -neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/level0 0 def -/RES 0 def -/PL 0 def -/LS 0 def -/MANUAL{ -statusdict begin/manualfeed true store end -}bind def -/PLG{ -gsave newpath clippath pathbbox grestore -exch pop add exch pop -}bind def -/BP{ -/level0 save def -1 setlinecap -1 setlinejoin -72 RES div dup scale -LS{ -90 rotate -}{ -0 PL translate -}ifelse -1 -1 scale -}bind def -/EP{ -level0 restore -showpage -}def -/DA{ -newpath arcn stroke -}bind def -/SN{ -transform -.25 sub exch .25 sub exch -round .25 add exch round .25 add exch -itransform -}bind def -/DL{ -SN -moveto -SN -lineto stroke -}bind def -/DC{ -newpath 0 360 arc closepath -}bind def -/TM matrix def -/DE{ -TM currentmatrix pop -translate scale newpath 0 0 .5 0 360 arc closepath -TM setmatrix -}bind def -/RC/rcurveto load def -/RL/rlineto load def -/ST/stroke load def -/MT/moveto load def -/CL/closepath load def -/Fr{ -setrgbcolor fill -}bind def -/setcmykcolor where{ -pop -/Fk{ -setcmykcolor fill -}bind def -}if -/Fg{ -setgray fill -}bind def -/FL/fill load def -/LW/setlinewidth load def -/Cr/setrgbcolor load def -/setcmykcolor where{ -pop -/Ck/setcmykcolor load def -}if -/Cg/setgray load def -/RE{ -findfont -dup maxlength 1 index/FontName known not{1 add}if dict begin -{ -1 index/FID ne{def}{pop pop}ifelse -}forall -/Encoding exch def -dup/FontName exch def -currentdict end definefont pop -}bind def -/DEFS 0 def -/EBEGIN{ -moveto -DEFS begin -}bind def -/EEND/end load def -/CNT 0 def -/level1 0 def -/PBEGIN{ -/level1 save def -translate -div 3 1 roll div exch scale -neg exch neg exch translate -0 setgray -0 setlinecap -1 setlinewidth -0 setlinejoin -10 setmiterlimit -[]0 setdash -/setstrokeadjust where{ -pop -false setstrokeadjust -}if -/setoverprint where{ -pop -false setoverprint -}if -newpath -/CNT countdictstack def -userdict begin -/showpage{}def -/setpagedevice{}def -}bind def -/PEND{ -countdictstack CNT sub{end}repeat -level1 restore -}bind def -end def -/setpacking where{ -pop -setpacking -}if -%%EndResource -%%EndProlog -%%BeginSetup -%%BeginFeature: *PageSize Default -<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice -%%EndFeature -%%IncludeResource: font Times-Roman -%%IncludeResource: font Symbol -%%IncludeResource: font Courier -%%IncludeResource: font Times-Bold -%%IncludeResource: font Times-Italic -grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 -def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron -/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent -/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen -/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon -/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O -/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex -/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y -/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft -/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl -/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut -/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash -/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen -/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft -/logicalnot/minus/registered/macron/degree/plusminus/twosuperior -/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior -/ordmasculine/guilsinglright/onequarter/onehalf/threequarters -/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE -/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex -/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn -/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla -/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis -/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash -/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def -/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE -/Courier@0 ENC0/Courier RE/Times-Roman@0 ENC0/Times-Roman RE -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -BP -%%EndPageSetup -203 311 144 205 -119.415 170 72 203.415 PBEGIN -%%BeginDocument: gnu.eps -%!PS-Adobe-2.0 EPSF-2.0 -%%Creator: pnmtops -%%Title: noname.ps -%%Pages: 1 -%%BoundingBox: 203 311 408 481 -%%EndComments -/rlestr1 1 string def -/readrlestring { - /rlestr exch def - currentfile rlestr1 readhexstring pop - 0 get - dup 127 le { - currentfile rlestr 0 - 4 3 roll - 1 add getinterval - readhexstring pop - length - } { - 256 exch sub dup - currentfile rlestr1 readhexstring pop - 0 get - exch 0 exch 1 exch 1 sub { - rlestr exch 2 index put - } for - pop - } ifelse -} bind def -/readstring { - dup length 0 { - 3 copy exch - 1 index sub - getinterval - readrlestring - add - 2 copy le { exit } if - } loop - pop pop -} bind def -/rpicstr 107 string def -/gpicstr 107 string def -/bpicstr 107 string def -%%EndProlog -%%Page: 1 1 -gsave -203.76 311.04 translate -204.48 169.92 scale -213 177 4 -[ 213 0 0 -177 0 177 ] -{ rpicstr readstring } -{ gpicstr readstring } -{ bpicstr readstring } -true 3 -colorimage -96fffff096fffff096fffff096fffff096fffff096fffff0ebff04eddcaa -bddeb0fffff0ebff04eddcaabddeb0fffff0ebff04eddcaabddeb0fffff0 -edff0ad988777478864555678adfb4fffff0edff0ad98877747886455567 -8adfb4fffff0edff0ad988777478864555678adfb4fffff0efff0dfdbba9 -4afcb867b544777675447cb5fffff0efff0dfdbba94afcb867b544777675 -447cb5fffff0efff0dfdbba94afcb867b544777675447cb5fffff0f0ff10 -faab6985449d5d649543484465675558bdd2ff01ecdfe7fffff0f0ff10fa -ab6985449d5d649543484465675558bdd2ff01ecdfe7fffff0f0ff10faab -6985449d5d649543484465675558bdd2ff01ecdfe7fffff0f1ff12fb9de8 -9476454897d54a44397443575554339fd6ff06d978778998889ce9fffff0 -f1ff12fb9de89476454897d54a44397443575554339fd6ff06d978778998 -889ce9fffff0f1ff12fb9de89476454897d54a44397443575554339fd6ff -06d978778998889ce9fffff0f2ff14fc9cfff834455554669b487434a544 -4755555346cfd9ff0afc869cfdcfa9fedaa988dfebfffff0f2ff14fc9cff -f834455554669b487434a5444755555346cfd9ff0afc869cfdcfa9fedaa9 -88dfebfffff0f2ff14fc9cfff834455554669b487434a5444755555346cf -d9ff0afc869cfdcfa9fedaa988dfebfffff0f2ff159bffd5ae8453455445 -4c74b4444744449445665549effcff00fee1ff0ce8977adb887476456444 -4aee99ebfffff0f2ff159bffd5ae84534554454c74b44447444494456655 -49effcff00fee1ff0ce8977adb8874764564444aee99ebfffff0f2ff159b -ffd5ae84534554454c74b4444744449445665549effcff00fee1ff0ce897 -7adb8874764564444aee99ebfffff0f4ff1dfee8defd9975ca4535454445 -c47844455444554456444558bfffffff76afe3ff0ee8448baa5665444444 -4535797efc8becfffff0f4ff1dfee8defd9975ca4535454445c478444554 -44554456444558bfffffff76afe3ff0ee8448baa56654444444535797efc -8becfffff0f4ff1dfee8defd9975ca4535454445c4784445544455445644 -4558bfffffff76afe3ff0ee8448baa56654444444535797efc8becfffff0 -f4ff1de7cef97cd76758a454545456754b4454545446455463855caaacdd -a7bdafecff01fdbefaff10fd77a86754454445444444896446effc9eedff -fff0f4ff1de7cef97cd76758a454545456754b4454545446455463855caa -acdda7bdafecff01fdbefaff10fd77a86754454445444444896446effc9e -edfffff0f4ff1de7cef97cd76758a454545456754b445454544645546385 -5caaacdda7bdafecff01fdbefaff10fd77a86754454445444444896446ef -fc9eedfffff0f5ff1efe8e758a849ec65488444467c86467945646444444 -54555757efca78bffaefecff19d675affffffffeed976666844443444343 -444455677898affbaeeefffff0f5ff1efe8e758a849ec65488444467c864 -6794564644444454555757efca78bffaefecff19d675affffffffeed9766 -66844443444343444455677898affbaeeefffff0f5ff1efe8e758a849ec6 -5488444467c8646794564644444454555757efca78bffaefecff19d675af -fffffffeed976666844443444343444455677898affbaeeefffff0f5ff1d -c79889555655afc64664457efd75b594485445455445494674eefddeefda -ebff039efb6466fc4412466558444334563454434555434459cfffe9efef -fffff0f5ff1dc79889555655afc64664457efd75b5944854454554454946 -74eefddeefdaebff039efb6466fc44124665584443345634544345554344 -59cfffe9efeffffff0f5ff1dc79889555655afc64664457efd75b5944854 -45455445494674eefddeefdaebff039efb6466fc44124665584443345634 -54434555434459cfffe9efeffffff0f6ff1ef9ac796686455447eea64589 -dffffffddc669557656856684494cecba66c8eebff1aa8fefecb985677b6 -5554844434345346433456457899998effffadeffffff0f6ff1ef9ac7966 -86455447eea64589dffffffddc669557656856684494cecba66c8eebff1a -a8fefecb985677b65554844434345346433456457899998effffadefffff -f0f6ff1ef9ac796686455447eea64589dffffffddc669557656856684494 -cecba66c8eebff1aa8fefecb985677b65554844434345346433456457899 -998effffadeffffff0f6ff1dc7ffeffb557555465bfe77ccfffecccbba56 -8c9dfe8aefbed8dbfeeffd99eaff1bf57deef85544545555565343334534 -53345434644454444579fffbdff0fffff0f6ff1dc7ffeffb557555465bfe -77ccfffecccbba568c9dfe8aefbed8dbfeeffd99eaff1bf57deef8554454 -555556534333453453345434644454444579fffbdff0fffff0f6ff1dc7ff -effb557555465bfe77ccfffecccbba568c9dfe8aefbed8dbfeeffd99eaff -1bf57deef8554454555556534333453453345434644454444579fffbdff0 -fffff0f7ff1efe9ffdedffe7445465959ffbefe967abbbcdcb97778999aa -acceefffeb89dfe9ff1094679d9964454555569a65664345334443fa4403 -4568ffbef0fffff0f7ff1efe9ffdedffe7445465959ffbefe967abbbcdcb -97778999aaacceefffeb89dfe9ff1094679d9964454555569a6566434533 -4443fa44034568ffbef0fffff0f7ff1efe9ffdedffe7445465959ffbefe9 -67abbbcdcb97778999aaacceefffeb89dfe9ff1094679d9964454555569a -65664345334443fa44034568ffbef0fffff0f7ff0ef9ffc5457bff944545 -bd78ffe97aeffaff07edddccbccccccedee7ff1bfe96434689d556686887 -75874765675444443333344455789cfffaeff1fffff0f7ff0ef9ffc5457b -ff944545bd78ffe97aeffaff07edddccbccccccedee7ff1bfe96434689d5 -5668688775874765675444443333344455789cfffaeff1fffff0f7ff0ef9 -ffc5457bff944545bd78ffe97aeffaff07edddccbccccccedee7ff1bfe96 -434689d55668688775874765675444443333344455789cfffaeff1fffff0 -f7ff0c9ddea6544469e856567efceb9dd5ff05fda754445bdefcff04c65d -fe5444fa33043446effebff1fffff0f7ff0c9ddea6544469e856567efceb -9dd5ff05fda754445bdefcff04c65dfe5444fa33043446effebff1fffff0 -f7ff0c9ddea6544469e856567efceb9dd5ff05fda754445bdefcff04c65d -fe5444fa33043446effebff1fffff0f8ff0cf8bc7559bb853459679aa9fe -9dcaff03fea68ed6fc3307344456765467dfaff1fffff0f8ff0cf8bc7559 -bb853459679aa9fe9dcaff03fea68ed6fc3307344456765467dfaff1ffff -f0f8ff0cf8bc7559bb853459679aa9fe9dcaff03fea68ed6fc3307344456 -765467dfaff1fffff0f9ff0dfd74469cb646bdb63459eeffd8efc8ff0dc7 -cd33334444588754334457dfccf1fffff0f9ff0dfd74469cb646bdb63459 -eeffd8efc8ff0dc7cd33334444588754334457dfccf1fffff0f9ff0dfd74 -469cb646bdb63459eeffd8efc8ff0dc7cd33334444588754334457dfccf1 -fffff0f9ff0cf89644445885457dc436cefb8ec6ff028ab445fc33053456 -76654debf1fffff0f9ff0cf89644445885457dc436cefb8ec6ff028ab445 -fc3305345676654debf1fffff0f9ff0cf89644445885457dc436cefb8ec6 -ff028ab445fc3305345676654debf1fffff0f9ff0bc8ffeb744445544489 -5befb9c5ff0cfb8c95433334444444577769faf1fffff0f9ff0bc8ffeb74 -44455444895befb9c5ff0cfb8c95433334444444577769faf1fffff0f9ff -0bc8ffeb7444455444895befb9c5ff0cfb8c95433334444444577769faf1 -fffff0faff0cfe7cbbcacdb6444455666ffb9fc4ff02b8fc43fc33044445 -5568caf1fffff0faff0cfe7cbbcacdb6444455666ffb9fc4ff02b8fc43fc -330444455568caf1fffff0faff0cfe7cbbcacdb6444455666ffb9fc4ff02 -b8fc43fc330444455568caf1fffff0faff0be7e555444569a7444558dfd8 -c3ff0cfa7fb53334433333457abbebeff2fffff0faff0be7e555444569a7 -444558dfd8c3ff0cfa7fb53334433333457abbebeff2fffff0faff0be7e5 -55444569a7444558dfd8c3ff0cfa7fb53334433333457abbebeff2fffff0 -faff0b9bfc9cea7544568855da8b8eecff05edbbaaaabcefdcff0b97e633 -333334578865569dcff2fffff0faff0b9bfc9cea7544568855da8b8eecff -05edbbaaaabcefdcff0b97e633333334578865569dcff2fffff0faff0b9b -fc9cea7544568855da8b8eecff05edbbaaaabcefdcff0b97e63333333457 -8865569dcff2fffff0fbff0cfe7ffffeefffd9445776eff7dfeeff09eb86 -7789998778778adff6ff02cbcdefebff0bfaa5333433433469dfffffbff2 -fffff0fbff0cfe7ffffeefffd9445776eff7dfeeff09eb86778999877877 -8adff6ff02cbcdefebff0bfaa5333433433469dfffffbff2fffff0fbff0c -fe7ffffeefffd9445776eff7dfeeff09eb867789998778778adff6ff02cb -cdefebff0bfaa5333433433469dfffffbff2fffff0fbff0bf9dfffcbaaab -ceeb556cffabeeff0be769cedbb9988aa9abba88cff9ff05fea8998889ad -ebff0a77344555455444467cffaff2fffff0fbff0bf9dfffcbaaabceeb55 -6cffabeeff0be769cedbb9988aa9abba88cff9ff05fea8998889adebff0a -77344555455444467cffaff2fffff0fbff0bf9dfffcbaaabceeb556cffab -eeff0be769cedbb9988aa9abba88cff9ff05fea8998889adebff0a773445 -55455444467cffaff2fffff0fbff0be8ff94443344446afb9efc8fefff0d -fc69a899abdefeecba8668aa78cffbff07fb9aba988abdfcbdecff0ac874 -55544433344458ffbff2fffff0fbff0be8ff94443344446afb9efc8fefff -0dfc69a899abdefeecba8668aa78cffbff07fb9aba988abdfcbdecff0ac8 -7455544433344458ffbff2fffff0fbff0be8ff94443344446afb9efc8fef -ff0dfc69a899abdefeecba8668aa78cffbff07fb9aba988abdfcbdecff0a -c87455544433344458ffbff2fffff0fbff0a9dc856789a987544dfffe7ef -ff03fd747adff9ff11ec877667dfffffffe978879bcedba98aecbfedff0a -f7da53333333344456efbff2fffff0fbff0a9dc856789a987544dfffe7ef -ff03fd747adff9ff11ec877667dfffffffe978879bcedba98aecbfedff0a -f7da53333333344456efbff2fffff0fbff0a9dc856789a987544dfffe7ef -ff03fd747adff9ff11ec877667dfffffffe978879bcedba98aecbfedff0a -f7da53333333344456efbff2fffff0fbff0a8f998887765567977bffadef -ff1ca58efffffffdcfefffceffffffeb8549ffffd9968ceffb5becfffc89 -efedff0af9c85333333443344679cef2fffff0fbff0a8f99888776556797 -7bffadefff1ca58efffffffdcfefffceffffffeb8549ffffd9968ceffb5b -ecfffc89efedff0af9c85333333443344679cef2fffff0fbff0a8f998887 -765567977bffadefff1ca58efffffffdcfefffceffffffeb8549ffffd996 -8ceffb5becfffc89efedff0af9c85333333443344679cef2fffff0fcff0b -faad444444568aa86576df9ff0ff1dfa8efffffeffff9c885de67cffec9b -fd848ddab98effffe754547ffffe89edff0afd9f645aa6434696445ecef2 -fffff0fcff0bfaad444444568aa86576df9ff0ff1dfa8efffffeffff9c88 -5de67cffec9bfd848ddab98effffe754547ffffe89edff0afd9f645aa643 -4696445ecef2fffff0fcff0bfaad444444568aa86576df9ff0ff1dfa8eff -fffeffff9c885de67cffec9bfd848ddab98effffe754547ffffe89edff0a -fd9f645aa6434696445ecef2fffff0fcff0bf666544565654458dec9bf9f -f0ff1e9bfffffff9c8d99aa9485967ee6766cf9c65be88befdca8d444734 -9aeffd8cedff097d443347984348684eddf2fffff0fcff0bf66654456565 -4458dec9bf9ff0ff1e9bfffffff9c8d99aa9485967ee6766cf9c65be88be -fdca8d4447349aeffd8cedff097d443347984348684eddf2fffff0fcff0b -f666544565654458dec9bf9ff0ff1e9bfffffff9c8d99aa9485967ee6766 -cf9c65be88befdca8d4447349aeffd8cedff097d443347984348684eddf2 -fffff0fcff0bb888aaa8877655554ceffdbff1ff20e8cfffffc9b9aaab69 -b74b69586865565ba6d786b7559c5d644945a3465da9ea8eeeff09786443 -3434685345bfbcf2fffff0fcff0bb888aaa8877655554ceffdbff1ff20e8 -cfffffc9b9aaab69b74b69586865565ba6d786b7559c5d644945a3465da9 -ea8eeeff097864433434685345bfbcf2fffff0fcff0bb888aaa887765555 -4ceffdbff1ff20e8cfffffc9b9aaab69b74b69586865565ba6d786b7559c -5d644945a3465da9ea8eeeff097864433434685345bfbcf2fffff0fcff0b -6efddb9865554445569ffaeff1ff218effffff887b8a8c57c66887475875 -4764655a869e644566d548a3943333335bd7dfefff099a44333344447944 -bfbaf2fffff0fcff0b6efddb9865554445569ffaeff1ff218effffff887b -8a8c57c668874758754764655a869e644566d548a3943333335bd7dfefff -099a44333344447944bfbaf2fffff0fcff0b6efddb9865554445569ffaef -f1ff218effffff887b8a8c57c668874758754764655a869e644566d548a3 -943333335bd7dfefff099a44333344447944bfbaf2fffff0fdff0bfe7ffc -544444555556666df8f1ff22f8cfbea86ea55d697e56d575a54645854655 -4355a64ba454439b34c454334333345a7befff099d544555433445b65dba -f2fffff0fdff0bfe7ffc544444555556666df8f1ff22f8cfbea86ea55d69 -7e56d575a546458546554355a64ba454439b34c454334333345a7befff09 -9d544555433445b65dbaf2fffff0fdff0bfe7ffc544444555556666df8f1 -ff22f8cfbea86ea55d697e56d575a546458546554355a64ba454439b34c4 -54334333345a7befff099d544555433445b65dbaf2fffff0fdff02fbae95 -fb44034547eee9f1ff239cdd9bc65bd55d677f56e574c454459645544345 -6855d555654d7386453344533334b99ff0ff09ab4444345543454885a9f2 -fffff0fdff02fbae95fb44034547eee9f1ff239cdd9bc65bd55d677f56e5 -74c4544596455443456855d555654d7386453344533334b99ff0ff09ab44 -44345543454885a9f2fffff0fdff02fbae95fb44034547eee9f1ff239cdd -9bc65bd55d677f56e574c4544596455443456855d555654d738645334453 -3334b99ff0ff09ab4444345543454885a9f2fffff0fdff0bf8d9444578b9 -bcba75356e9cf2ff24f9aff768f549e55a857f55d463b444459547645445 -5655ab584844a3784643637443335bb8f0ff09baa443444345544448e9f2 -fffff0fdff0bf8d9444578b9bcba75356e9cf2ff24f9aff768f549e55a85 -7f55d463b4444595476454455655ab584844a3784643637443335bb8f0ff -09baa443444345544448e9f2fffff0fdff0bf8d9444578b9bcba75356e9c -f2ff24f9aff768f549e55a857f55d463b4444595476454455655ab584844 -a3784643637443335bb8f0ff09baa443444345544448e9f2fffff0fdff0b -f7fb59bba8754444458def8ff2ff25bce9fa56f648f659956f55d4749444 -44a65784563455945b6594b4546c354363854333349b9ff1ff09aba43334 -5533344346e9f2fffff0fdff0bf7fb59bba8754444458def8ff2ff25bce9 -fa56f648f659956f55d474944444a65784563455945b6594b4546c354363 -854333349b9ff1ff09aba433345533344346e9f2fffff0fdff0bf7fb59bb -a8754444458def8ff2ff25bce9fa56f648f659956f55d474944444a65784 -563455945b6594b4546c354363854333349b9ff1ff09aba4333455333443 -46e9f2fffff0fdff0bf7ffb854346788787569ce9ff3ff26fe8ff77655f6 -45f756a46e55a474744544b566a4754554a446846479864a454353754343 -43499cf1ff098d7643333568634446daf2fffff0fdff0bf7ffb854346788 -787569ce9ff3ff26fe8ff77655f645f756a46e55a474744544b566a47545 -54a446846479864a45435375434343499cf1ff098d7643333568634446da -f2fffff0fdff0bf7ffb854346788787569ce9ff3ff26fe8ff77655f645f7 -56a46e55a474744544b566a4754554a446846479864a4543537543434349 -9cf1ff098d7643333568634446daf2fffff0fdff0bf8ff84589876555676 -6acd9ff3ff27e7ee99b445e754e945945f54c584654544b577c464545485 -66458a5d5c38644465454343434486eff2ff0a7f8ac7333334774446faef -f3fffff0fdff0bf8ff845898765556766acd9ff3ff27e7ee99b445e754e9 -45945f54c584654544b577c46454548566458a5d5c386444654543434344 -86eff2ff0a7f8ac7333334774446faeff3fffff0fdff0bf8ff8458987655 -56766acd9ff3ff27e7ee99b445e754e945945f54c584654544b577c46454 -548566458a5d5c38644465454343434486eff2ff0a7f8ac7333334774446 -faeff3fffff0fdff0bf8fe576544455666567ace9ff3ff278dbb6a9544d8 -54da45a46f64d584554644c576c4858554655788fe8b8447844546444453 -4344467df3ff0bfe8e5544333334557554cbdff3fffff0fdff0bf8fe5765 -44455666567ace9ff3ff278dbb6a9544d854da45a46f64d584554644c576 -c4858554655788fe8b84478445464444534344467df3ff0bfe8e55443333 -34557554cbdff3fffff0fdff0bf8fe576544455666567ace9ff3ff278dbb -6a9544d854da45a46f64d584554644c576c4858554655788fe8b84478445 -464444534344467df3ff0bfe8e5544333334557554cbdff3fffff0fdff0b -fafc57555666655654448d8ff4ff29f8cff6489735c854bc55c56e54d584 -454844c578d485a6755433a47cf96445b4454735446444344456dff4ff02 -faae57fc3304355854ebdff3fffff0fdff0bfafc57555666655654448d8f -f4ff29f8cff6489735c854bc55c56e54d584454844c578d485a6755433a4 -7cf96445b4454735446444344456dff4ff02faae57fc3304355854ebdff3 -fffff0fdff0bfafc57555666655654448d8ff4ff29f8cff6489735c854bc -55c56e54d584454844c578d485a6755433a47cf96445b445473544644434 -4456dff4ff02faae57fc3304355854ebdff3fffff0fdff0bfdf9a44578ad -b985445bff8ff4ff299afff6488a34c954ad54d66e44d494444655b679d4 -a5c59666c9c445bfb343b54555364465443444456ef4ff03f8efd543fc33 -0355a4cbeff3fffff0fdff0bfdf9a44578adb985445bff8ff4ff299afff6 -488a34c954ad54d66e44d494444655b679d4a5c59666c9c445bfb343b545 -55364465443444456ef4ff03f8efd543fc330355a4cbeff3fffff0fdff0b -fdf9a44578adb985445bff8ff4ff299afff6488a34c954ad54d66e44d494 -444655b679d4a5c59666c9c445bfb343b54555364465443444456ef4ff03 -f8efd543fc330355a4cbeff3fffff0fcff0af67bdfea6546988655cf8ff5 -ff2afaadff55487c34c9549d44c76c44b4a5445546975bc4a5d4a55dfdc3 -334543437735553444564434443446f4ff0bf7ffa43453333333347cebef -f3fffff0fcff0af67bdfea6546988655cf8ff5ff2afaadff55487c34c954 -9d44c76c44b4a5445546975bc4a5d4a55dfdc33345434377355534445644 -34443446f4ff0bf7ffa43453333333347cebeff3fffff0fcff0af67bdfea -6546988655cf8ff5ff2afaadff55487c34c9549d44c76c44b4a544554697 -5bc4a5d4a55dfdc3334543437735553444564434443446f4ff0bf7ffa434 -53333333347cebeff3fffff0fdff0bfcf9fb85456875543345cf8ff5ff2b -a8fb9d44486e34a7549c45d66a4594a4444446685ca47694844ae5e53465 -554368345434445545454433446ef5ff0bf7fd533346334333345dfbeff3 -fffff0fdff0bfcf9fb85456875543345cf8ff5ff2ba8fb9d44486e34a754 -9c45d66a4594a4444446685ca47694844ae5e53465554368345434445545 -454433446ef5ff0bf7fd533346334333345dfbeff3fffff0fdff0bfcf9fb -85456875543345cf8ff5ff2ba8fb9d44486e34a7549c45d66a4594a44444 -46685ca47694844ae5e53465554368345434445545454433446ef5ff0bf7 -fd533346334333345dfbeff3fffff0fdff0bfbfea558754444697657ff8f -f6ff2dfa9ffe5e44466f45a7558b45e5763694b44544574d6c9576556347 -e4db747ca544683444344554454454353446eff6ff0ad654343334643443 -3489fbf2fffff0fdff0bfbfea558754444697657ff8ff6ff2dfa9ffe5e44 -466f45a7558b45e5763694b44544574d6c9576556347e4db747ca5446834 -44344554454454353446eff6ff0ad6543433346434433489fbf2fffff0fd -ff0bfbfea558754444697657ff8ff6ff2dfa9ffe5e44466f45a7558b45e5 -763694b44544574d6c9576556347e4db747ca54468344434455445445435 -3446eff6ff0ad6543433346434433489fbf2fffff0fdff0bfaee88754445 -9b85448cfd9cf6ff2d9affff5b54565e5486547847d4644866844535457a -4959fe9a6544d5affb4486866834443444644544643744468ef6ff0a958b -433333364334347ffaf2fffff0fdff0bfaee887544459b85448cfd9cf6ff -2d9affff5b54565e5486547847d4644866844535457a4959fe9a6544d5af -fb4486866834443444644544643744468ef6ff0a958b433333364334347f -faf2fffff0fdff0bfaee887544459b85448cfd9cf6ff2d9affff5b54565e -5486547847d4644866844535457a4959fe9a6544d5affb44868668344434 -44644544643744468ef6ff0a958b433333364334347ffaf2fffff0fdff0b -fadc985459da534784578ad8f7ff2ff8bffbbf7844566f54855455488444 -464853543646696fedcdc84a46555effa543545b44444344744644554764 -5ad7acf7ff0a74d543333333543343affbf2fffff0fdff0bfadc985459da -534784578ad8f7ff2ff8bffbbf7844566f54855455488444464853543646 -696fedcdc84a46555effa543545b444443447446445547645ad7acf7ff0a -74d543333333543343affbf2fffff0fdff0bfadc985459da534784578ad8 -f7ff2ff8bffbbf7844566f54855455488444464853543646696fedcdc84a -46555effa543545b444443447446445547645ad7acf7ff0a74d543333333 -543343affbf2fffff0fdff0bfb9ba56ce9534775444598f7f8ff30fe7cff -fc5f9654556f655455445846a7577a556577bf777855547a7b683836acee -63455c5445444464574365448457ed9af8ff02fb8663fc33043433436ffa -f2fffff0fdff0bfb9ba56ce9534775444598f7f8ff30fe7cfffc5f965455 -6f655455445846a7577a556577bf777855547a7b683836acee63455c5445 -444464574365448457ed9af8ff02fb8663fc33043433436ffaf2fffff0fd -ff0bfb9ba56ce9534775444598f7f8ff30fe7cfffc5f9654556f65545544 -5846a7577a556577bf777855547a7b683836acee63455c54454444645743 -65448457ed9af8ff02fb8663fc33043433436ffaf2fffff0fdff0cfe8eda -e9444454465445bdeabff9ff31e7dffece5eb555466f555474afd99d84aa -a954578887445aedc4bf8a7a76633455335b7b8487446447a94464445444 -8ff99ff9ff0be7e834334334333343343afbf2fffff0fdff0cfe8edae944 -4454465445bdeabff9ff31e7dffece5eb555466f555474afd99d84aaa954 -578887445aedc4bf8a7a76633455335b7b8487446447a944644454448ff9 -9ff9ff0be7e834334334333343343afbf2fffff0fdff0cfe8edae9444454 -465445bdeabff9ff31e7dffece5eb555466f555474afd99d84aaa9545788 -87445aedc4bf8a7a76633455335b7b8487446447a944644454448ff99ff9 -ff0be7e834334334333343343afbf2fffff0fcff0b7eec56b64346544455 -66ce9ffaff32fe7dffff7c7ba5565566487884963466556778887666789b -effff65d9358c585455954ad8c73445534556644444334544cfe69f9ff0b -7bd44334333343333334dfbef2fffff0fcff0b7eec56b6434654445566ce -9ffaff32fe7dffff7c7ba5565566487884963466556778887666789befff -f65d9358c585455954ad8c73445534556644444334544cfe69f9ff0b7bd4 -4334333343333334dfbef2fffff0fcff0b7eec56b6434654445566ce9ffa -ff32fe7dffff7c7ba5565566487884963466556778887666789beffff65d -9358c585455954ad8c73445534556644444334544cfe69f9ff0b7bd44334 -333343333334dfbef2fffff0fcff0b7c94774445544454445bef8cfaff0e -e8dfffffa887b46644886ec7458aeff9ff1deefffffffe48ec5359484379 -58f9566ab87dbefecaa967675574578de69ffbff02f87b63f9330234ef9f -f2fffff0fcff0b7c94774445544454445bef8cfaff0ee8dfffffa887b466 -44886ec7458aeff9ff1deefffffffe48ec535948437958f9566ab87dbefe -caa967675574578de69ffbff02f87b63f9330234ef9ff2fffff0fcff0b7c -94774445544454445bef8cfaff0ee8dfffffa887b46644886ec7458aeff9 -ff1deefffffffe48ec535948437958f9566ab87dbefecaa967675574578d -e69ffbff02f87b63f9330234ef9ff2fffff0fcff0ca97bb6444444585446 -449ff8bffcff0dfe7effffaec7b6c46545bd7579cff2ff2ac57dc6335364 -543a58efffffb79ffffffffdcb86557455cf97cffddeffea556494333433 -333334334afdaff2fffff0fcff0ca97bb6444444585446449ff8bffcff0d -fe7effffaec7b6c46545bd7579cff2ff2ac57dc6335364543a58efffffb7 -9ffffffffdcb86557455cf97cffddeffea556494333433333334334afdaf -f2fffff0fcff0ca97bb6444444585446449ff8bffcff0dfe7effffaec7b6 -c46545bd7579cff2ff2ac57dc6335364543a58efffffb79ffffffffdcb86 -557455cf97cffddeffea556494333433333334334afdaff2fffff0fcff0c -c9ec64444448754475345fff89fcff0bc8efffea6bc6b484959866aef0ff -08fe745885443334549ffcff01b6effcff17fdb685554bfc654456b847e7 -e633433343333333436ff9eff2fffff0fcff0cc9ec64444448754475345f -ff89fcff0bc8efffea6bc6b484959866aef0ff08fe745885443334549ffc -ff01b6effcff17fdb685554bfc654456b847e7e633433343333333436ff9 -eff2fffff0fcff0cc9ec64444448754475345fff89fcff0bc8efffea6bc6 -b484959866aef0ff08fe745885443334549ffcff01b6effcff17fdb68555 -4bfc654456b847e7e633433343333333436ff9eff2fffff0fcff1be7a644 -654595644853464cfff88dffffd99fffffc969e59595746aeff7ff00eff8 -ff0dea454589333684dffffdeffffc6ffaff0ea555635cfec8668aeff764 -54233334fc33014bf9f1fffff0fcff1be7a644654595644853464cfff88d -ffffd99fffffc969e59595746aeff7ff00eff8ff0dea454589333684dfff -fdeffffc6ffaff0ea555635cfec8668aeff76454233334fc33014bf9f1ff -fff0fcff1be7a644654595644853464cfff88dffffd99fffffc969e59595 -746aeff7ff00eff8ff0dea454589333684dffffdeffffc6ffaff0ea55563 -5cfec8668aeff76454233334fc33014bf9f1fffff0fcff19f7d658546857 -4476447445efffb988889dffffff8957e564459ef8ff03fea9568ff8ff0d -feedb845339d75bfffc57fffffb7faff0cfee644338ebdfb99eac5333553 -fb33023467ccf1fffff0fcff19f7d6585468574476447445efffb988889d -ffffff8957e564459ef8ff03fea9568ff8ff0dfeedb845339d75bfffc57f -ffffb7faff0cfee644338ebdfb99eac5333553fb33023467ccf1fffff0fc -ff19f7d6585468574476447445efffb988889dffffff8957e564459ef8ff -03fea9568ff8ff0dfeedb845339d75bfffc57fffffb7faff0cfee644338e -bdfb99eac5333553fb33023467ccf1fffff0fcff0cfab7a5467465576447 -7544b9cffcff07fdecda5d56e437dff9ff05fecaaada35effaff10eeefff -eedeb436e7487ff9a87efffff9affaff13cd554334448543443333334333 -43333334447a9ff1fffff0fcff0cfab7a54674655764477544b9cffcff07 -fdecda5d56e437dff9ff05fecaaada35effaff10eeefffeedeb436e7487f -f9a87efffff9affaff13cd55433444854344333333433343333334447a9f -f1fffff0fcff0cfab7a54674655764477544b9cffcff07fdecda5d56e437 -dff9ff05fecaaada35effaff10eeefffeedeb436e7487ff9a87efffff9af -faff13cd55433444854344333333433343333334447a9ff1fffff0fcff0c -fc9e94664655764458473455cefcff06f99b875d75838ff8ff04c4466553 -39faff11fe7445effffef955b3346ec8646effffef6dfaff02db9443fc33 -0034f7330248fe9ff1fffff0fcff0cfc9e94664655764458473455cefcff -06f99b875d75838ff8ff04c446655339faff11fe7445effffef955b3346e -c8646effffef6dfaff02db9443fc330034f7330248fe9ff1fffff0fcff0c -fc9e94664655764458473455cefcff06f99b875d75838ff8ff04c4466553 -39faff11fe7445effffef955b3346ec8646effffef6dfaff02db9443fc33 -0034f7330248fe9ff1fffff0fbff157f9764556664457464345577fddfff -ffea4a475d8434f8ff05fa444343336ff9ff10d844aeffefffd553338f94 -33afffffcfb7faff03fbd54334fc330b4334433333343333443dfadff1ff -fff0fbff157f9764556664457464345577fddfffffea4a475d8434f8ff05 -fa444343336ff9ff10d844aeffefffd553338f9433afffffcfb7faff03fb -d54334fc330b4334433333343333443dfadff1fffff0fbff157f97645566 -64457464345577fddfffffea4a475d8434f8ff05fa444343336ff9ff10d8 -44aeffefffd553338f9433afffffcfb7faff03fbd54334fc330b43344333 -33343333443dfadff1fffff0fbff158deb457866437655733543459b67ff -ffa947584b8357f8ff05e433344336eff9ff10fea46cffeffc644358de64 -34dffffebff6faff02fe9944f533044233343ceaf0fffff0fbff158deb45 -7866437655733543459b67ffffa947584b8357f8ff05e433344336eff9ff -10fea46cffeffc644358de6434dffffebff6faff02fe9944f53304423334 -3ceaf0fffff0fbff158deb457866437655733543459b67ffffa947584b83 -57f8ff05e433344336eff9ff10fea46cffeffc644358de6434dffffebff6 -faff02fe9944f533044233343ceaf0fffff0fbff15bbfb66969445554843 -4634554865faedb645594a639ef8ff04934334338ffbff14d7558dfffaaa -cffffb4368adfe6338dfffffcff7effaff01c844fc33013434fc33054333 -33335e9ef0fffff0fbff15bbfb669694455548434634554865faedb64559 -4a639ef8ff04934334338ffbff14d7558dfffaaacffffb4368adfe6338df -ffffcff7effaff01c844fc33013434fc3305433333335e9ef0fffff0fbff -15bbfb669694455548434634554865faedb645594a639ef8ff0493433433 -8ffbff14d7558dfffaaacffffb4368adfe6338dfffffcff7effaff01c844 -fc33013434fc3305433333335e9ef0fffff0fbff14e9fb5d6b5446545544 -4534544685f77e7645674545f8ff04fd4335337cfbff15b5335646fffffc -8bbffea8aeffed733aabaadedff8effaff01f854fa330043fb330334447b -bff0fffff0fbff14e9fb5d6b54465455444534544685f77e7645674545f8 -ff04fd4335337cfbff15b5335646fffffc8bbffea8aeffed733aabaadedf -f8effaff01f854fa330043fb330334447bbff0fffff0fbff14e9fb5d6b54 -465455444534544685f77e7645674545f8ff04fd4335337cfbff15b53356 -46fffffc8bbffea8aeffed733aabaadedff8effaff01f854fa330043fb33 -0334447bbff0fffff0fbff14f8c5d896547544644444344555a5f75c6654 -664489f8ff04f6335438bffcff15f946aeff74efffffd58ffffefffffa94 -368dfc8ccff7f9ff01fb44f433024475a9effffff0fbff14f8c5d8965475 -44644444344555a5f75c6654664489f8ff04f6335438bffcff15f946aeff -74efffffd58ffffefffffa94368dfc8ccff7f9ff01fb44f433024475a9ef -fffff0fbff14f8c5d896547544644444344555a5f75c6654664489f8ff04 -f6335438bffcff15f946aeff74efffffd58ffffefffffa94368dfc8ccff7 -f9ff01fb44f433024475a9effffff0fbff14fa6de8756574564454544436 -54b6f56a6754543bdff8ff12b4367469bffffffffc65cfffff849fffffb6 -9ffcff07f883357cfeebffe6f9ff09fd654333333334443334fc330253ad -cceffffff0fbff14fa6de875657456445454443654b6f56a6754543bdff8 -ff12b4367469bffffffffc65cfffff849fffffb69ffcff07f883357cfeeb -ffe6f9ff09fd654333333334443334fc330253adcceffffff0fbff14fa6d -e875657456445454443654b6f56a6754543bdff8ff12b4367469bfffffff -fc65cfffff849fffffb69ffcff07f883357cfeebffe6f9ff09fd65433333 -3334443334fc330253adcceffffff0fbff13fe8ffa756856554464634445 -55a5e56a7845535ff8ff04fc537fdaf5fcff0aa38fffffffd44efffffaae -fcff07f98334bfffffffb7f9ff10fb64334333333344333433333343566e -9feffffff0fbff13fe8ffa75685655446463444555a5e56a7845535ff8ff -04fc537fdaf5fcff0aa38fffffffd44efffffaaefcff07f98334bfffffff -b7f9ff10fb64334333333344333433333343566e9feffffff0fbff13fe8f -fa75685655446463444555a5e56a7845535ff8ff04fc537fdaf5fcff0aa3 -8fffffffd44efffffaaefcff07f98334bfffffffb7f9ff10fb6433433333 -3344333433333343566e9feffffff0faff129ef759685457455443544555 -75b45a765443bff8ff04c57affffc6fcff0057fcff11f93dfffffc58efff -fffffa53339efeffff8bf8ff0f84334333333344333334333433bf78cfef -fffff0faff129ef75968545745544354455575b45a765443bff8ff04c57a -ffffc6fcff0057fcff11f93dfffffc58effffffffa53339efeffff8bf8ff -0f84334333333344333334333433bf78cfeffffff0faff129ef759685457 -45544354455575b45a765443bff8ff04c57affffc6fcff0057fcff11f93d -fffffc58effffffffa53339efeffff8bf8ff0f8433433333334433333433 -3433bf78cfeffffff0faff11cbfb57954568484444444555548559675434 -f8ff20fd9bafffff6afffffffc5dfffcb9876639fffffe54bffffffffc53 -3356779bff8df8ff0efc443533333344443333443646fe8aeefffff0faff -11cbfb57954568484444444555548559675434f8ff20fd9bafffff6affff -fffc5dfffcb9876639fffffe54bffffffffc533356779bff8df8ff0efc44 -3533333344443333443646fe8aeefffff0faff11cbfb5795456848444444 -4555548559675434f8ff20fd9bafffff6afffffffc5dfffcb9876639ffff -fe54bffffffffc533356779bff8df8ff0efc443533333344443333443646 -fe8aeefffff0faff11f8fea9945895584534444956457459664437f7ff19 -e8effffe4dfffffffa38fb5333433335cfffffc4bffffffffe93fc330159 -7bf7ff0d743534333334443343535559fe8feefffff0faff11f8fea99458 -95584534444956457459664437f7ff19e8effffe4dfffffffa38fb533343 -3335cfffffc4bffffffffe93fc3301597bf7ff0d74353433333444334353 -5559fe8feefffff0faff11f8fea9945895584534444956457459664437f7 -ff19e8effffe4dfffffffa38fb5333433335cfffffc4bffffffffe93fc33 -01597bf7ff0d743534333334443343535559fe8feefffff0faff11fbafff -8678c4644434445c5645544b66644bf7ff14eefffffa6ffffffffd345333 -34333894bffffff6bffcff06d4354456875449f7ff0dc434333333344445 -43537cbfd8efeefffff0faff11fbafff8678c4644434445c5645544b6664 -4bf7ff14eefffffa6ffffffffd34533334333894bffffff6bffcff06d435 -4456875449f7ff0dc43433333334444543537cbfd8efeefffff0faff11fb -afff8678c4644434445c5645544b66644bf7ff14eefffffa6ffffffffd34 -533334333894bffffff6bffcff06d4354456875449f7ff0dc43433333334 -444543537cbfd8efeefffff0f9ff108efff6c894744444446b5645555b67 -544ef4ff11f7affffffffe533334333338b97ffffffeadfcff07f6464545 -557744eff8ff0cf5333433334333453356fffb6eedfffff0f9ff108efff6 -c894744444446b5645555b67544ef4ff11f7affffffffe533334333338b9 -7ffffffeadfcff07f6464545557744eff8ff0cf5333433334333453356ff -fb6eedfffff0f9ff108efff6c894744444446b5645555b67544ef4ff11f7 -affffffffe533334333338b97ffffffeadfcff07f6464545557744eff8ff -0cf5333433334333453356fffb6eedfffff0f9ff10e8eff8ea7544734454 -886544555b56648ff4ff01f4effcff0b5335843345338a7dffffff79fcff -07fe469333435777cff8ff0cf644453333334466659efa77dfedfffff0f9 -ff10e8eff8ea7544734454886544555b56648ff4ff01f4effcff0b533584 -3345338a7dffffff79fcff07fe469333435777cff8ff0cf6444533333344 -66659efa77dfedfffff0f9ff10e8eff8ea7544734454886544555b56648f -f4ff01f4effcff0b5335843345338a7dffffff79fcff07fe469333435777 -cff8ff0cf644453333334466659efa77dfedfffff0f9ff10fd9dfceb6559 -533844a59554565a5554eff4ff00e6fcff0cfe45bdc43344436edeffffff -67fcff07fe747334334789eff8ff0bfb4446333344458e66b758efecffff -f0f9ff10fd9dfceb6559533844a59554565a5554eff4ff00e6fcff0cfe45 -bdc43344436edeffffff67fcff07fe747334334789eff8ff0bfb44463333 -44458e66b758efecfffff0f9ff10fd9dfceb6559533844a59554565a5554 -eff4ff00e6fcff0cfe45bdc43344436edeffffff67fcff07fe7473343347 -89eff8ff0bfb4446333344458e66b758efecfffff0f8ff0ef8efee669a43 -484585b4657649453cf3ff009afbff0b4cffd33333435daefffffe5dfcff -06eec533333336bff7ff09fd69b643345874bd636beafffff0f8ff0ef8ef -ee669a43484585b4657649453cf3ff009afbff0b4cffd33333435daeffff -fe5dfcff06eec533333336bff7ff09fd69b643345874bd636beafffff0f8 -ff0ef8efee669a43484585b4657649453cf3ff009afbff0b4cffd3333343 -5daefffffe5dfcff06eec533333336bff7ff09fd69b643345874bd636bea -fffff0f8ff0efe9fffa9b634a54768a5b55559549ff3ff007efbff0b88fe -f5333334775ffffff8affcff07feeb43333356768ff7ff07c9fb87dcfed8 -76ade9fffff0f8ff0efe9fffa9b634a54768a5b55559549ff3ff007efbff -0b88fef5333334775ffffff8affcff07feeb43333356768ff7ff07c9fb87 -dcfed876ade9fffff0f8ff0efe9fffa9b634a54768a5b55559549ff3ff00 -7efbff0b88fef5333334775ffffff8affcff07feeb43333356768ff7ff07 -c9fb87dcfed876ade9fffff0f7ff0ccbffbae86594775d6684547655f2ff -006ffbff07e77cdc433346a56ff6ff0583333377845ff7ff06f566887777 -8bdffbff07feffdfdffffffffef5fffff0f7ff0ccbffbae86594775d6684 -547655f2ff006ffbff07e77cdc433346a56ff6ff0583333377845ff7ff06 -f5668877778bdffbff07feffdfdffffffffef5fffff0f7ff0ccbffbae865 -94775d6684547655f2ff006ffbff07e77cdc433346a56ff6ff0583333377 -845ff7ff06f5668877778bdffbff07feffdfdffffffffef5fffff0f7ff0c -fdaeefffda55b4ab586554954bf3ff01fc4efcff08feeda49fd88989b59f -f6ff05d445569c94cff7ff03fbdedeeffbff0ddeffe58bff6e6ffffebde5 -97bdbef8fffff0f7ff0cfdaeefffda55b4ab586554954bf3ff01fc4efcff -08feeda49fd88989b59ff6ff05d445569c94cff7ff03fbdedeeffbff0dde -ffe58bff6e6ffffebde597bdbef8fffff0f7ff0cfdaeefffda55b4ab5865 -54954bf3ff01fc4efcff08feeda49fd88989b59ff6ff05d445569c94cff7 -ff03fbdedeeffbff0ddeffe58bff6e6ffffebde597bdbef8fffff0f6ff0b -fabdfffcbb49e6bf7654854ff3ff01f95efaff05fd67aab75558f5ff05f9 -45669859dff6ff008ff9ff0fa4cff738fe579fcbfe76db549b6577affaff -fff0f6ff0bfabdfffcbb49e6bf7654854ff3ff01f95efaff05fd67aab755 -58f5ff05f945669859dff6ff008ff9ff0fa4cff738fe579fcbfe76db549b -6577affafffff0f6ff0bfabdfffcbb49e6bf7654854ff3ff01f95efaff05 -fd67aab75558f5ff05f945669859dff6ff008ff9ff0fa4cff738fe579fcb -fe76db549b6577affafffff0f5ff0afcacfc94aa79fd6855578ff3ff01f5 -9efaff05eefd989abdeff4ff03947757daf5ff009df9ff0ffb5dff56fd45 -eb48dfa55d849b46b6effafffff0f5ff0afcacfc94aa79fd6855578ff3ff -01f59efaff05eefd989abdeff4ff03947757daf5ff009df9ff0ffb5dff56 -fd45eb48dfa55d849b46b6effafffff0f5ff0afcacfc94aa79fd6855578f -f3ff01f59efaff05eefd989abdeff4ff03947757daf5ff009df9ff0ffb5d -ff56fd45eb48dfa55d849b46b6effafffff0f4ff09febabefecffcde8cd5 -dff3ff01e6aef9ff03feefffeef3ff03f64dfffcf5ff00e8f8ff0dd6efd8 -ee5dd436bff846d48c4c6ef9fffff0f4ff09febabefecffcde8cd5dff3ff -01e6aef9ff03feefffeef3ff03f64dfffcf5ff00e8f8ff0dd6efd8ee5dd4 -36bff846d48c4c6ef9fffff0f4ff09febabefecffcde8cd5dff3ff01e6ae -f9ff03feefffeef3ff03f64dfffcf5ff00e8f8ff0dd6efd8ee5dd436bff8 -46d48c4c6ef9fffff0f2ff06bbbbceffffffe5f2ff0198ccf7ff01efdff3 -ff04fd58fff97ff6ff00f8f8ff0efa6fffffec59358876446467558aeffa -fffff0f2ff06bbbbceffffffe5f2ff0198ccf7ff01efdff3ff04fd58fff9 -7ff6ff00f8f8ff0efa6fffffec59358876446467558aeffafffff0f2ff06 -bbbbceffffffe5f2ff0198ccf7ff01efdff3ff04fd58fff97ff6ff00f8f8 -ff0efa6fffffec59358876446467558aeffafffff0f0ff04ecbcceff69f2 -ff025cfacee8ff03a4cffb58f6ff01fbcffaff0fcaa957766664678889bd -eff9fffffebffafffff0f0ff04ecbcceff69f2ff025cfacee8ff03a4cffb -58f6ff01fbcffaff0fcaa957766664678889bdeff9fffffebffafffff0f0 -ff04ecbcceff69f2ff025cfacee8ff03a4cffb58f6ff01fbcffaff0fcaa9 -57766664678889bdeff9fffffebffafffff0eeff02fdc94ef3ff03fd3efb -cde8ff04f77ffe46dff6ff009ffaff047bcc89bceffaff04faffffffbffa -fffff0eeff02fdc94ef3ff03fd3efbcde8ff04f77ffe46dff6ff009ffaff -047bcc89bceffaff04faffffffbffafffff0eeff02fdc94ef3ff03fd3efb -cde8ff04f77ffe46dff6ff009ffaff047bcc89bceffaff04faffffffbffa -fffff0edff01f96ff3ff03f73cfedde8ff04fb4dffa78ef6ff00dafaff02 -8fffcff8ff04fafffffebffafffff0edff01f96ff3ff03f73cfedde8ff04 -fb4dffa78ef6ff00dafaff028fffcff8ff04fafffffebffafffff0edff01 -f96ff3ff03f73cfedde8ff04fb4dffa78ef6ff00dafaff028fffcff8ff04 -fafffffebffafffff0edff01f4cff3ff03d54efffee7ff0498fff5d7eef7 -ff01f9effbff029ffeaffcff08eddbba9997ab79adbffafffff0edff01f4 -cff3ff03d54efffee7ff0498fff5d7eef7ff01f9effbff029ffeaffcff08 -eddbba9997ab79adbffafffff0edff01f4cff3ff03d54efffee7ff0498ff -f5d7eef7ff01f9effbff029ffeaffcff08eddbba9997ab79adbffafffff0 -edff00c6f2ff027956dfe6ff04e5eff78e7df7ff01fe9ffcff10fd787658 -a987765445785796a8dd55a9cffafffff0edff00c6f2ff027956dfe6ff04 -e5eff78e7df7ff01fe9ffcff10fd787658a987765445785796a8dd55a9cf -fafffff0edff00c6f2ff027956dfe6ff04e5eff78e7df7ff01fe9ffcff10 -fd787658a987765445785796a8dd55a9cffafffff0edff007af3ff02fc5f -b7e5ff05f56ff95fe9cff7ff00dbfcff0ffe9a7684bbb968d74bff78f9fe -df97dff9fffff0edff007af3ff02fc5fb7e5ff05f56ff95fe9cff7ff00db -fcff0ffe9a7684bbb968d74bff78f9fedf97dff9fffff0edff007af3ff02 -fc5fb7e5ff05f56ff95fe9cff7ff00dbfcff0ffe9a7684bbb968d74bff78 -f9fedf97dff9fffff0eeff01fe4ef3ff02f78f95f0ff00edf6ff06fd5dfa -4effaaeff8ff01fbdffbff0d9bd5fffe6af94aff77f9ffefe7dff9fffff0 -eeff01fe4ef3ff02f78f95f0ff00edf6ff06fd5dfa4effaaeff8ff01fbdf -fbff0d9bd5fffe6af94aff77f9ffefe7dff9fffff0eeff01fe4ef3ff02f7 -8f95f0ff00edf6ff06fd5dfa4effaaeff8ff01fbdffbff0d9bd5fffe6af9 -4aff77f9ffefe7dff9fffff0eeff01fb6ff3ff03c4efb68ef3ff05feeeb4 -aeffecf8ff0688fc4afffe89eff8ff00aefbff0d8bb5ffff6afa49ff77f9 -fffff7dff9fffff0eeff01fb6ff3ff03c4efb68ef3ff05feeeb4aeffecf8 -ff0688fc4afffe89eff8ff00aefbff0d8bb5ffff6afa49ff77f9fffff7df -f9fffff0eeff01fb6ff3ff03c4efb68ef3ff05feeeb4aeffecf8ff0688fc -4afffe89eff8ff00aefbff0d8bb5ffff6afa49ff77f9fffff7dff9fffff0 -eeff01f7aff4ff05fe59ffd85eeff4ff0596678959ddddf8ff07e6bd59ff -fffd99aef9ff01f98efcff0d6bc5ffff5afa48ff86f8ffeff7dff9fffff0 -eeff01f7aff4ff05fe59ffd85eeff4ff0596678959ddddf8ff07e6bd59ff -fffd99aef9ff01f98efcff0d6bc5ffff5afa48ff86f8ffeff7dff9fffff0 -eeff01f7aff4ff05fe59ffd85eeff4ff0596678959ddddf8ff07e6bd59ff -fffd99aef9ff01f98efcff0d6bc5ffff5afa48ff86f8ffeff7dff9fffff0 -eeff01f4eff4ff05f77ffffc668ff1ff05c8667878888bfbff02fb6c59fc -ff02d98beffaff12e8efffffff7ad6fffe5afb49ff75f8fffff7dff9ffff -f0eeff01f4eff4ff05f77ffffc668ff1ff05c8667878888bfbff02fb6c59 -fcff02d98beffaff12e8efffffff7ad6fffe5afb49ff75f8fffff7dff9ff -fff0eeff01f4eff4ff05f77ffffc668ff1ff05c8667878888bfbff02fb6c -59fcff02d98beffaff12e8efffffff7ad6fffe5afb49ff75f8fffff7dff9 -fffff0eeff00c5f3ff05a6efffff754df2ff05ecbcccddeeeff9ff01685a -fbff1afb78adefffffffebaaefffffff7bd6ffff4bfb4aff75f8fffff7df -f9fffff0eeff00c5f3ff05a6efffff754df2ff05ecbcccddeeeff9ff0168 -5afbff1afb78adefffffffebaaefffffff7bd6ffff4bfb4aff75f8fffff7 -dff9fffff0eeff00c5f3ff05a6efffff754df2ff05ecbcccddeeeff9ff01 -685afbff1afb78adefffffffebaaefffffff7bd6ffff4bfb4aff75f8ffff -f7dff9fffff0eeff0089f4ff06e76ffffffffb6bf4ff06fd66787765458d -f8ff01a46cf9ff05c988999989befbff0d7bc7ffff5afc59ff76f8fffff6 -dff9fffff0eeff0089f4ff06e76ffffffffb6bf4ff06fd66787765458df8 -ff01a46cf9ff05c988999989befbff0d7bc7ffff5afc59ff76f8fffff6df -f9fffff0eeff0089f4ff06e76ffffffffb6bf4ff06fd66787765458df8ff -01a46cf9ff05c988999989befbff0d7bc7ffff5afc59ff76f8fffff6dff9 -fffff0eeff005ef5ff02fe55dffcff00abf4ff08f5affffffffeb858effa -ff01d54eeeff0d8bc7fffe4afc5aff77f8fffff6eff9fffff0eeff005ef5 -ff02fe55dffcff00abf4ff08f5affffffffeb858effaff01d54eeeff0d8b -c7fffe4afc5aff77f8fffff6eff9fffff0eeff005ef5ff02fe55dffcff00 -abf4ff08f5affffffffeb858effaff01d54eeeff0d8bc7fffe4afc5aff77 -f8fffff6eff9fffff0efff01fb5ff5ff01c44dfbff00eff4ff0098faff01 -d74bfaff02fc4befefff0d7bb7fffe4afd4aff87f8fffff6eff9fffff0ef -ff01fb5ff5ff01c44dfbff00eff4ff0098faff01d74bfaff02fc4befefff -0d7bb7fffe4afd4aff87f8fffff6eff9fffff0efff01fb5ff5ff01c44dfb -ff00eff4ff0098faff01d74bfaff02fc4befefff0d7bb7fffe4afd4aff87 -f8fffff6eff9fffff0efff01f6bff6ff02fd44cfefff01fc4df9ff01b58e -faff0474dfedc88af2ff0d7bb7fffe49fe4bff78f7fffff6eff9fffff0ef -ff01f6bff6ff02fd44cfefff01fc4df9ff01b58efaff0474dfedc88af2ff -0d7bb7fffe49fe4bff78f7fffff6eff9fffff0efff01f6bff6ff02fd44cf -efff01fc4df9ff01b58efaff0474dfedc88af2ff0d7bb7fffe49fe4bff78 -f7fffff6eff9fffff0efff00b5f5ff01b55ceeff04f6cfb6448efbff01a5 -affbff0596544557776df3ff0d7bb7fffe49fe4cff78f8fffff6eff9ffff -f0efff00b5f5ff01b55ceeff04f6cfb6448efbff01a5affbff0596544557 -776df3ff0d7bb7fffe49fe4cff78f8fffff6eff9fffff0efff00b5f5ff01 -b55ceeff04f6cfb6448efbff01a5affbff0596544557776df3ff0d7bb7ff -fe49fe4cff78f8fffff6eff9fffff0f0ff01fe5cf7ff03fea658efeeff05 -e6f8357755dffcff02fd66bffbff05feffffffd5eff4ff0d7ba8fffe49fe -4cff88f7fffff6eff9fffff0f0ff01fe5cf7ff03fea658efeeff05e6f835 -7755dffcff02fd66bffbff05feffffffd5eff4ff0d7ba8fffe49fe4cff88 -f7fffff6eff9fffff0f0ff01fe5cf7ff03fea658efeeff05e6f8357755df -fcff02fd66bffbff05feffffffd5eff4ff0d7ba8fffe49fe4cff88f7ffff -f6eff9fffff0f0ff01f59ff8ff03eb7457afedff05a8a37ffffceffbff02 -fa57dff8ff01fa8ff4ff0d7bb8fffd4afe4dff89f7fffff6eff9fffff0f0 -ff01f59ff8ff03eb7457afedff05a8a37ffffceffbff02fa57dff8ff01fa -8ff4ff0d7bb8fffd4afe4dff89f7fffff6eff9fffff0f0ff01f59ff8ff03 -eb7457afedff05a8a37ffffceffbff02fa57dff8ff01fa8ff4ff0d7bb8ff -fd4afe4dff89f7fffff6eff9fffff0f0ff0086faff05eca876678ccdecff -027d53bff7ff01e75bf7ff005ff4ff0c7cb8fffd4afe4cffacf8fffff6f8 -fffff0f0ff0086faff05eca876678ccdecff027d53bff7ff01e75bf7ff00 -5ff4ff0c7cb8fffd4afe4cffacf8fffff6f8fffff0f0ff0086faff05eca8 -76678ccdecff027d53bff7ff01e75bf7ff005ff4ff0c7cb8fffd4afe4cff -acf8fffff6f8fffff0f1ff01fa4efcff08fb75468beffe9db9efedff026d -84eff6ff0185aff8ff006df4ff0c6cb8fffc4bfb4dff8cf7fffff5f8ffff -f0f1ff01fa4efcff08fb75468beffe9db9efedff026d84eff6ff0185aff8 -ff006df4ff0c6cb8fffc4bfb4dff8cf7fffff5f8fffff0f1ff01fa4efcff -08fb75468beffe9db9efedff026d84eff6ff0185aff8ff006df4ff0c6cb8 -fffc4bfb4dff8cf7fffff5f8fffff0f1ff0ea4dffffffff95799bfffffff -fa8abfedff076dc5ffffc74579effbff00faf7ff008bf4ff0c6ca9fffc4b -fb4cff8cf7fffff5f8fffff0f1ff0ea4dffffffff95799bffffffffa8abf -edff076dc5ffffc74579effbff00faf7ff008bf4ff0c6ca9fffc4bfb4cff -8cf7fffff5f8fffff0f1ff0ea4dffffffff95799bffffffffa8abfedff07 -6dc5ffffc74579effbff00faf7ff008bf4ff0c6ca9fffc4bfb4cff8cf7ff -fff5f8fffff0f2ff01fa4cfcff0284efe9fcff02fe87bfedff07befdffff -75dca65ef1ff00a9f4ff0c6da9fffc4bfb4cff8bf7fffff5f8fffff0f2ff -01fa4cfcff0284efe9fcff02fe87bfedff07befdffff75dca65ef1ff00a9 -f4ff0c6da9fffc4bfb4cff8bf7fffff5f8fffff0f2ff01fa4cfcff0284ef -e9fcff02fe87bfedff07befdffff75dca65ef1ff00a9f4ff0c6da9fffc4b -fb4cff8bf7fffff5f8fffff0f2ff0873bffffffffd4bff9dfbff01c4efed -ff07dcfffffe43643567f1ff00a9f4ff0c6c99fffb4bfb4cff8cf7fffff5 -f8fffff0f2ff0873bffffffffd4bff9dfbff01c4efedff07dcfffffe4364 -3567f1ff00a9f4ff0c6c99fffb4bfb4cff8cf7fffff5f8fffff0f2ff0873 -bffffffffd4bff9dfbff01c4efedff07dcfffffe43643567f1ff00a9f4ff -0c6c99fffb4bfb4cff8cf7fffff5f8fffff0f3ff01f939fcff03f66fff7f -fbff00f6f1ff00cef9ff06fe433333569adff4ff01db7cf4ff0c5d99fffb -4aa539ff7cf7fffff5f8fffff0f3ff01f939fcff03f66fff7ffbff00f6f1 -ff00cef9ff06fe433333569adff4ff01db7cf4ff0c5d99fffb4aa539ff7c -f7fffff5f8fffff0f3ff01f939fcff03f66fff7ffbff00f6f1ff00cef9ff -06fe433333569adff4ff01db7cf4ff0c5d99fffb4aa539ff7cf7fffff5f8 -fffff0f3ff01f57ffcff03b4bfff7ffbff01f7bff3ff01edeff9ff06fe63 -33333b546ef5ff02fe875ff4ff0c6da9fffb479dc6bf6cf7fffff5f8ffff -f0f3ff01f57ffcff03b4bfff7ffbff01f7bff3ff01edeff9ff06fe633333 -3b546ef5ff02fe875ff4ff0c6da9fffb479dc6bf6cf7fffff5f8fffff0f3 -ff01f57ffcff03b4bfff7ffbff01f7bff3ff01edeff9ff06fe6333333b54 -6ef5ff02fe875ff4ff0c6da9fffb479dc6bf6cf7fffff5f8fffff0f3ff09 -f4effea69ec849fffe8ffbff01f85ff5ff02fe866df7ff05e633334d553a -f5ff02f7577ff4ff0c5db8fffb46ffec5e6cf7fffff5f8fffff0f3ff09f4 -effea69ec849fffe8ffbff01f85ff5ff02fe866df7ff05e633334d553af5 -ff02f7577ff4ff0c5db8fffb46ffec5e6cf7fffff5f8fffff0f3ff09f4ef -fea69ec849fffe8ffbff01f85ff5ff02fe866df7ff05e633334d553af5ff -02f7577ff4ff0c5db8fffb46ffec5e6cf7fffff5f8fffff0f3ff09f77863 -577347dffffb9ffbff01f95bf5ff01d6aef5ff04b8aeff5b46f5ff028344 -7ff4ff0c6ec8fffb4afff9344497ffffe5f8fffff0f3ff09f77863577347 -dffffb9ffbff01f95bf5ff01d6aef5ff04b8aeff5b46f5ff0283447ff4ff -0c6ec8fffb4afff9344497ffffe5f8fffff0f3ff09f77863577347dffffb -9ffbff01f95bf5ff01d6aef5ff04b8aeff5b46f5ff0283447ff4ff0c6ec8 -fffb4afff9344497ffffe5f8fffff0f3ff09fe99abfffedffffffabffbff -01f8c9f5ff005df1ff026cb3eff7ff03f84334cff4ff0c5eb9fffb38ffe4 -6745a7fffeb6f8fffff0f3ff09fe99abfffedffffffabffbff01f8c9f5ff -005df1ff026cb3eff7ff03f84334cff4ff0c5eb9fffb38ffe46745a7fffe -b6f8fffff0f3ff09fe99abfffedffffffabffbff01f8c9f5ff005df1ff02 -6cb3eff7ff03f84334cff4ff0c5eb9fffb38ffe46745a7fffeb6f8fffff0 -ebff01f9dffbff01f8f8f1ff01baeff6ff025ce4aff8ff03fe743337f3ff -0c5eb8fffa45ffe5ff6cf7eadda6f8fffff0ebff01f9dffbff01f8f8f1ff -01baeff6ff025ce4aff8ff03fe743337f3ff0c5eb8fffa45ffe5ff6cf7ea -dda6f8fffff0ebff01f9dffbff01f8f8f1ff01baeff6ff025ce4aff8ff03 -fe743337f3ff0c5eb8fffa45ffe5ff6cf7eadda6f8fffff0ebff01f8dffb -ff01f8f8f2ff05c5464afffffefaff03fe6ff57ff9ff04feb643345ef3ff -0c4eb8fff944cf88ff5bf7a37ba6f8fffff0ebff01f8dffbff01f8f8f2ff -05c5464afffffefaff03fe6ff57ff9ff04feb643345ef3ff0c4eb8fff944 -cf88ff5bf7a37ba6f8fffff0ebff01f8dffbff01f8f8f2ff05c5464affff -fefaff03fe6ff57ff9ff04feb643345ef3ff0c4eb8fff944cf88ff5bf7a3 -7ba6f8fffff0ebff01f9cffbff01f9e7f2ff05aedfe5bffdeff8ff01f99f -faff05eed7433346bff3ff0c4db9fff846df59ff6bf7a35ca7f8fffff0eb -ff01f9cffbff01f9e7f2ff05aedfe5bffdeff8ff01f99ffaff05eed74333 -46bff3ff0c4db9fff846df59ff6bf7a35ca7f8fffff0ebff01f9cffbff01 -f9e7f2ff05aedfe5bffdeff8ff01f99ffaff05eed7433346bff3ff0c4db9 -fff846df59ff6bf7a35ca7f8fffff0ebff01f9cffbff02fac8dff1ff02fc -4df8efff04fc64333378f2ff0c4ca9fff639ee84af5bf7834b97f8fffff0 -ebff01f9cffbff02fac8dff1ff02fc4df8efff04fc64333378f2ff0c4ca9 -fff639ee84af5bf7834b97f8fffff0ebff01f9cffbff02fac8dff1ff02fc -4df8efff04fc64333378f2ff0c4ca9fff639ee84af5bf7834b97f8fffff0 -ebff01fabffaff01a85ef0ff0179e8f0ff05fe853333356ef2ff0c4da558 -5445759a5a5bf7c69b97f8fffff0ebff01fabffaff01a85ef0ff0179e8f0 -ff05fe853333356ef2ff0c4da5585445759a5a5bf7c69b97f8fffff0ebff -01fabffaff01a85ef0ff0179e8f0ff05fe853333356ef2ff0c4da5585445 -759a5a5bf7c69b97f8fffff0ebff01fb9ff9ff0097f0ff01d6aaf0ff05e7 -43433346dff2ff0c4da85eedba8654444bf7edfb97f8fffff0ebff01fb9f -f9ff0097f0ff01d6aaf0ff05e743433346dff2ff0c4da85eedba8654444b -f7edfb97f8fffff0ebff01fb9ff9ff0097f0ff01d6aaf0ff05e743433346 -dff2ff0c4da85eedba8654444bf7edfb97f8fffff0ebff01fd8ff9ff01e6 -cff1ff01f96af1ff05fe743433346ef1ff0c5d8668aceffffffe5bf7effc -97f8fffff0ebff01fd8ff9ff01e6cff1ff01f96af1ff05fe743433346ef1 -ff0c5d8668aceffffffe5bf7effc97f8fffff0ebff01fd8ff9ff01e6cff1 -ff01f96af1ff05fe743433346ef1ff0c5d8668aceffffffe5bf7effc97f8 -fffff0ebff01fe7ff9ff01f89ff1ff01fe58f3ff07feede744443346dff1 -ff0c7d746456555666685bf7fffd98f8fffff0ebff01fe7ff9ff01f89ff1 -ff01fe58f3ff07feede744443346dff1ff0c7d746456555666685bf7fffd -98f8fffff0ebff01fe7ff9ff01f89ff1ff01fe58f3ff07feede744443346 -dff1ff0c7d746456555666685bf7fffd98f8fffff0eaff007ff9ff01eb8f -f0ff00b5f1ff05c889755459eff1ff0c6c8555bfffffec585bf7fffda8f8 -fffff0eaff007ff9ff01eb8ff0ff00b5f1ff05c889755459eff1ff0c6c85 -55bfffffec585bf7fffda8f8fffff0eaff007ff9ff01eb8ff0ff00b5f1ff -05c889755459eff1ff0c6c8555bfffffec585bf7fffda8f8fffff0eaff00 -7ff9ff01bd8ff0ff01f6cff2ff09eeffedbafd8efffeeedff6ff0dfe6965 -97feffffffd55bf6fffea9f8fffff0eaff007ff9ff01bd8ff0ff01f6cff2 -ff09eeffedbafd8efffeeedff6ff0dfe696597feffffffd55bf6fffea9f8 -fffff0eaff007ff9ff01bd8ff0ff01f6cff2ff09eeffedbafd8efffeeedf -f6ff0dfe696597feffffffd55bf6fffea9f8fffff0eaff007ef9ff01db9c -f0ff01fb8fedff06fb67656764666df9ff0efd84434658abceeeecb64af6 -fffea8f8fffff0eaff007ef9ff01db9cf0ff01fb8fedff06fb6765676466 -6df9ff0efd84434658abceeeecb64af6fffea8f8fffff0eaff007ef9ff01 -db9cf0ff01fb8fedff06fb67656764666df9ff0efd84434658abceeeecb6 -4af6fffea8f8fffff0eaff009bf9ff01f9c8efff007eecff05ccfffebefe -7af9ff0ef86aa98999a8764444364af6fffea9f8fffff0eaff009bf9ff01 -f9c8efff007eecff05ccfffebefe7af9ff0ef86aa98999a8764444364af6 -fffea9f8fffff0eaff009bf9ff01f9c8efff007eecff05ccfffebefe7af9 -ff0ef86aa98999a8764444364af6fffea9f8fffff0eaff00baf9ff02fe95 -acf0ff00d8ecff06fbdf97cceee6effaff0eb86544665567594666444ae6 -fffd9af8fffff0eaff00baf9ff02fe95acf0ff00d8ecff06fbdf97cceee6 -effaff0eb86544665567594666444ae6fffd9af8fffff0eaff00baf9ff02 -fe95acf0ff00d8ecff06fbdf97cceee6effaff0eb8654466556759466644 -4ae6fffd9af8fffff0eaff00d8f8ff03fbcb88eff2ff01fd8fedff06fe9e -b4386efc7ffaff0efeb764957acb5756544649d5fffd8af8fffff0eaff00 -d8f8ff03fbcb88eff2ff01fd8fedff06fe9eb4386efc7ffaff0efeb76495 -7acb5756544649d5fffd8af8fffff0eaff00d8f8ff03fbcb88eff2ff01fd -8fedff06fe9eb4386efc7ffaff0efeb764957acb5756544649d5fffd8af8 -fffff0eaff00f7f8ff04fcbffd88eff2ff00c9edff06fd7ed5439eff8af8 -ff0ce5f7aefe6ecdbddc58d6fffc8af8fffff0eaff00f7f8ff04fcbffd88 -eff2ff00c9edff06fd7ed5439eff8af8ff0ce5f7aefe6ecdbddc58d6fffc -8af8fffff0eaff00f7f8ff04fcbffd88eff2ff00c9edff06fd7ed5439eff -8af8ff0ce5f7aefe6ecdbddc58d6fffc8af8fffff0eaff00f7f7ff03baac -fd7cf2ff01fc9ff1ff0aeffebaa638e8547fffd5dff9ff0ce5f6adec58de -ebba57e6fffb8af8fffff0eaff00f7f7ff03baacfd7cf2ff01fc9ff1ff0a -effebaa638e8547fffd5dff9ff0ce5f6adec58deebba57e6fffb8af8ffff -f0eaff00f7f7ff03baacfd7cf2ff01fc9ff1ff0aeffebaa638e8547fffd5 -dff9ff0ce5f6adec58deebba57e6fffb8af8fffff0eaff01facff7ff03eb -9cf7dff2ff0186cff6ff0ec96655556798674a54ba555cfffc6dfaff10fe -b5b76554445569a738f6fffa88ccccdffbfffff0eaff01facff7ff03eb9c -f7dff2ff0186cff6ff0ec96655556798674a54ba555cfffc6dfaff10feb5 -b76554445569a738f6fffa88ccccdffbfffff0eaff01facff7ff03eb9cf7 -dff2ff0186cff6ff0ec96655556798674a54ba555cfffc6dfaff10feb5b7 -6554445569a738f6fffa88ccccdffbfffff0eaff01fd9ff6ff02fab86af2 -ff1be749effecbceefffeed996543344444333334bdeb36a454779bec68e -fbff00b6fb440b5444564ae6fffd855554456dfcfffff0eaff01fd9ff6ff -02fab86af2ff1be749effecbceefffeed996543344444333334bdeb36a45 -4779bec68efbff00b6fb440b5444564ae6fffd855554456dfcfffff0eaff -01fd9ff6ff02fab86af2ff1be749effecbceefffeed99654334444433333 -4bdeb36a454779bec68efbff00b6fb440b5444564ae6fffd855554456dfc -fffff0e9ff006ff6ff02fe99e7f1ff08a455533469cdcdb643f93326349f -fff73435469766774688898899996444455555455555454af6ffff864544 -44489afffffff0e9ff006ff6ff02fe99e7f1ff08a455533469cdcdb643f9 -3326349ffff73435469766774688898899996444455555455555454af6ff -ff86454444489afffffff0e9ff006ff6ff02fe99e7f1ff08a455533469cd -cdb643f93326349ffff73435469766774688898899996444455555455555 -454af6ffff86454444489afffffff0e9ff008df6ff02f9e8f8f1ff06fc44 -5bdcdb9754fb33143444334438fffffd455844678bdfdacebaabababa8fa -990f98775cf5efff78bbcbaaaab77ffffff0e9ff008df6ff02f9e8f8f1ff -06fc445bdcdb9754fb33143444334438fffffd455844678bdfdacebaabab -aba8fa990f98775cf5efff78bbcbaaaab77ffffff0e9ff008df6ff02f9e8 -f8f1ff06fc445bdcdb9754fb33143444334438fffffd455844678bdfdace -baabababa8fa990f98775cf5efff78bbcbaaaab77ffffff0e9ff00d8f6ff -02f8d9acf0ff04e534444343fc332c4433456655437ffffffe466857eca3 -7be8788767888888778799998aaabbba5bc5efff7899866658869ffffff0 -e9ff00d8f6ff02f8d9acf0ff04e534444343fc332c4433456655437fffff -fe466857eca37be8788767888888778799998aaabbba5bc5efff78998666 -58869ffffff0e9ff00d8f6ff02f8d9acf0ff04e534444343fc332c443345 -6655437ffffffe466857eca37be8788767888888778799998aaabbba5bc5 -efff7899866658869ffffff0e9ff00f7f6ff02f98e8ef0ff35fc74333334 -688887abcbaaefefded9afffffff488666fed347c49ddcbbaabbba75a469 -c85cccdccb7db5cffe7cfff8bd6ff9cffffff0e9ff00f7f6ff02f98e8ef0 -ff35fc74333334688887abcbaaefefded9afffffff488666fed347c49ddc -bbaabbba75a469c85cccdccb7db5cffe7cfff8bd6ff9cffffff0e9ff00f7 -f6ff02f98e8ef0ff35fc74333334688887abcbaaefefded9afffffff4886 -66fed347c49ddcbbaabbba75a469c85cccdccb7db5cffe7cfff8bd6ff9cf -fffff0e9ff00f7f6ff02f78f8feeff03edcdddeff8ff0cfd8fffffff57b5 -85dfe447c4bffbff1586e49efa7fffffff8ee5cffd7dfff8ce6ff9dfffff -f0e9ff00f7f6ff02f78f8feeff03edcdddeff8ff0cfd8fffffff57b585df -e447c4bffbff1586e49efa7fffffff8ee5cffd7dfff8ce6ff9dffffff0e9 -ff00f7f6ff02f78f8feeff03edcdddeff8ff0cfd8fffffff57b585dfe447 -c4bffbff1586e49efa7fffffff8ee5cffd7dfff8ce6ff9dffffff0e9ff01 -f8dff7ff02f78cafecff00fcf7ff0cfe7ffffffe58c6949fe559b4dffbff -15a7f48fe99fffffff8ff5dffe6dfff9ce6ff9dffffff0e9ff01f8dff7ff -02f78cafecff00fcf7ff0cfe7ffffffe58c6949fe559b4dffbff15a7f48f -e99fffffff8ff5dffe6dfff9ce6ff9dffffff0e9ff01f8dff7ff02f78caf -ecff00fcf7ff0cfe7ffffffe58c6949fe559b4dffbff15a7f48fe99fffff -ff8ff5dffe6dfff9ce6ff9dffffff0e9ff01fbaff7ff02f96cafe2ff0bfb -8ffffffe58d8955ff65cb6faff1596e58ff88ffffffd7ee5dfff6dfff8cd -7ff9effffff0e9ff01fbaff7ff02f96cafe2ff0bfb8ffffffe58d8955ff6 -5cb6faff1596e58ff88ffffffd7ee5dfff6dfff8cd7ff9effffff0e9ff01 -fbaff7ff02f96cafe2ff0bfb8ffffffe58d8955ff65cb6faff1596e58ff8 -8ffffffd7ee5dfff6dfff8cd7ff9effffff0e8ff007ff6ff01798fe2ff0b -f6dffffffd58e7765ef66e97faff1596f57ff98ffffffd7ff5efff6dfff8 -dd8ff8effffff0e8ff007ff6ff01798fe2ff0bf6dffffffd58e7765ef66e -97faff1596f57ff98ffffffd7ff5efff6dfff8dd8ff8effffff0e8ff007f -f6ff01798fe2ff0bf6dffffffd58e7765ef66e97faff1596f57ff98fffff -fd7ff5efff6dfff8dd8ff8effffff0e8ff00baf6ff01f66ce2ff0bc6ffff -fffd69e6685be66f88faff1596f59ff99ffffffe8fe6ffff5efff8ec9ff7 -fffffff0e8ff00baf6ff01f66ce2ff0bc6fffffffd69e6685be66f88faff -1596f59ff99ffffffe8fe6ffff5efff8ec9ff7fffffff0e8ff00baf6ff01 -f66ce2ff0bc6fffffffd69e6685be66f88faff1596f59ff99ffffffe8fe6 -ffff5efff8ec9ff7fffffff0e8ff00f7f6ff03fe87fffde5ff0cfe7dffff -fffc5af67938d67f6afaff15a5d59ff89fffffff9fe7ffff5efff8fbaff7 -fffffff0e8ff00f7f6ff03fe87fffde5ff0cfe7dfffffffc5af67938d67f -6afaff15a5d59ff89fffffff9fe7ffff5efff8fbaff7fffffff0e8ff00f7 -f6ff03fe87fffde5ff0cfe7dfffffffc5af67938d67f6afaff15a5d59ff8 -9fffffff9fe7ffff5efff8fbaff7fffffff0e8ff01f9cff6ff02fbbff7e6 -ff0dfd88effffffffb5ce67935d78e5efaff1595c49ff89fffffff9fe7ff -ff5efff8fabff6fffffff0e8ff01f9cff6ff02fbbff7e6ff0dfd88efffff -fffb5ce67935d78e5efaff1595c49ff89fffffff9fe7ffff5efff8fabff6 -fffffff0e8ff01f9cff6ff02fbbff7e6ff0dfd88effffffffb5ce67935d7 -8e5efaff1595c49ff89fffffff9fe7ffff5efff8fabff6fffffff0e8ff01 -fd8ff5ff01aee8e9ff04fefeb88aeffcff07fb4ec8a944b7ad5ffaff1596 -c49ff7afffffff9fe7ffff5ffff8f9dff7fffffff0e8ff01fd8ff5ff01ae -e8e9ff04fefeb88aeffcff07fb4ec8a944b7ad5ffaff1596c49ff7afffff -ff9fe7ffff5ffff8f9dff7fffffff0e8ff01fd8ff5ff01aee8e9ff04fefe -b88aeffcff07fb4ec8a944b7ad5ffaff1596c49ff7afffffff9fe7ffff5f -fff8f9dff7fffffff0e7ff007ef5ff03fac9ffdff0ff07db967665555788 -cffaff07fb4eb8d67587c97ffaff1586d49fe7afffffff9fe7ffff6ffff8 -f8efe6fffffff0e7ff007ef5ff03fac9ffdff0ff07db967665555788cffa -ff07fb4eb8d67587c97ffaff1586d49fe7afffffff9fe7ffff6ffff8f8ef -e6fffffff0e7ff007ef5ff03fac9ffdff0ff07db967665555788cffaff07 -fb4eb8d67587c97ffaff1586d49fe7afffffff9fe7ffff6ffff8f8efe6ff -fffff0e7ff00b8f5ff03fac9ffdff1ff06b643333343334ef8ff07f95faa -e6a566d79ffaff1586d49fe6affffffe8fe8ffff6ffff8f8ffd5fffffff0 -e7ff00b8f5ff03fac9ffdff1ff06b643333343334ef8ff07f95faae6a566 -d79ffaff1586d49fe6affffffe8fe8ffff6ffff8f8ffd5fffffff0e7ff00 -b8f5ff03fac9ffdff1ff06b643333343334ef8ff07f95faae6a566d79ffa -ff1586d49fe6affffffe8fe8ffff6ffff8f8ffd5fffffff0e7ff01f9bff6 -ff03cbb9fe8ff3ff01fe94fa33007ff8ff07f86f8af7d655d5dffaff1586 -d4aff5affffffe7fe8ffff7ffff7f7ffb5fffffff0e7ff01f9bff6ff03cb -b9fe8ff3ff01fe94fa33007ff8ff07f86f8af7d655d5dffaff1586d4aff5 -affffffe7fe8ffff7ffff7f7ffb5fffffff0e7ff01f9bff6ff03cbb9fe8f -f3ff01fe94fa33007ff8ff07f86f8af7d655d5dffaff1586d4aff5afffff -fe7fe8ffff7ffff7f7ffb5fffffff0e6ff007ef6ff03adc9fadff3ff08b5 -44333334333434dff8ff06f76f7bf97656e5f9ff1596e3bff4cfffffff9f -e8ffff7fffe8f7ffc8fffffff0e6ff007ef6ff03adc9fadff3ff08b54433 -3334333434dff8ff06f76f7bf97656e5f9ff1596e3bff4cfffffff9fe8ff -ff7fffe8f7ffc8fffffff0e6ff007ef6ff03adc9fadff3ff08b544333334 -333434dff8ff06f76f7bf97656e5f9ff1596e3bff4cfffffff9fe8ffff7f -ffe8f7ffc8fffffff0e6ff00d9f6ff03cae7f8fef3ff0083fb33014339f7 -ff06f68f6dfc5947c5f9ff15a5e3cff4aaa978998fd8fffc49ffe8f7ffcb -fffffff0e6ff00d9f6ff03cae7f8fef3ff0083fb33014339f7ff06f68f6d -fc5947c5f9ff15a5e3cff4aaa978998fd8fffc49ffe8f7ffcbfffffff0e6 -ff00d9f6ff03cae7f8fef3ff0083fb33014339f7ff06f68f6dfc5947c5f9 -ff15a5e3cff4aaa978998fd8fffc49ffe8f7ffcbfffffff0e6ff01facff7 -ff02f7e8c7f2ff079c665655469de63af7ff23f59f6ffe4b48c466677766 -78776656d4cff49bbba9978fc7fffe546db8f7ffcafffffff0e6ff01facf -f7ff02f7e8c7f2ff079c665655469de63af7ff23f59f6ffe4b48c4666777 -6678776656d4cff49bbba9978fc7fffe546db8f7ffcafffffff0e6ff01fa -cff7ff02f7e8c7f2ff079c665655469de63af7ff23f59f6ffe4b48c46667 -776678776656d4cff49bbba9978fc7fffe546db8f7ffcafffffff0e5ff00 -8ef7ff04fe8977fffcf3ff07c58e7ad9cfe864cff8ff23e59f6ffe7769c6 -eeeedddeddeeffc5e4cfd4dffffffb9fd7ffffac6478e8ffcafffffff0e5 -ff008ef7ff04fe8977fffcf3ff07c58e7ad9cfe864cff8ff23e59f6ffe77 -69c6eeeedddeddeeffc5e4cfd4dffffffb9fd7ffffac6478e8ffcaffffff -f0e5ff008ef7ff04fe8977fffcf3ff07c58e7ad9cfe864cff8ff23e59f6f -fe7769c6eeeedddeddeeffc5e4cfd4dffffffb9fd7ffffac6478e8ffcaff -fffff0e5ff01e7eff7ff0afa45dffcfffdbefdfffaeffaff07f7cd6ffcbf -fbf86ff8ff07b69e6fffd46bd49efaff15c6f3cfe4effffffccfe9fffe9f -fc67d9ffbbfffffff0e5ff01e7eff7ff0afa45dffcfffdbefdfffaeffaff -07f7cd6ffcbffbf86ff8ff07b69e6fffd46bd49efaff15c6f3cfe4efffff -fccfe9fffe9ffc67d9ffbbfffffff0e5ff01e7eff7ff0afa45dffcfffdbe -fdfffaeffaff07f7cd6ffcbffbf86ff8ff07b69e6fffd46bd49efaff15c6 -f3cfe4effffffccfe9fffe9ffc67d9ffbbfffffff0e5ff01fe7cf7ff09fe -74affcfcfe8cefffb6f9ff07fa9a8efe9ffffd4df8ff08b6cd7ffff55da8 -77dffbff15b6d4dfd4effffffddff9fffe9fffa9caffadfffffff0e5ff01 -fe7cf7ff09fe74affcfcfe8cefffb6f9ff07fa9a8efe9ffffd4df8ff08b6 -cd7ffff55da877dffbff15b6d4dfd4effffffddff9fffe9fffa9caffadff -fffff0e5ff01fe7cf7ff09fe74affcfcfe8cefffb6f9ff07fa9a8efe9fff -fd4df8ff08b6cd7ffff55da877dffbff15b6d4dfd4effffffddff9fffe9f -ffa9caffadfffffff0e4ff01f9bff8ff09fe946ffbfbfbcebfff5cf9ff07 -fe8e8afe9fcdff76f8ff0985e99ffff85e5adc69effcff15d6435554ffff -fffebff8fffe8fff8aabefaffffffff0e4ff01f9bff8ff09fe946ffbfbfb -cebfff5cf9ff07fe8e8afe9fcdff76f8ff0985e99ffff85e5adc69effcff -15d6435554fffffffebff8fffe8fff8aabefaffffffff0e4ff01f9bff8ff -09fe946ffbfbfbcebfff5cf9ff07fe8e8afe9fcdff76f8ff0985e99ffff8 -5e5adc69effcff15d6435554fffffffebff8fffe8fff8aabefaffffffff0 -e3ff00a9f7ff08f94dfbfce8df9ffbaaf8ff06df8a9bbfd8ffb7f8ff09d5 -65cffff86d658ee749fbff14ecbacefffffffe8fe5fffe9fff6656896cff -fffff0e3ff00a9f7ff08f94dfbfce8df9ffbaaf8ff06df8a9bbfd8ffb7f8 -ff09d565cffff86d658ee749fbff14ecbacefffffffe8fe5fffe9fff6656 -896cfffffff0e3ff00a9f7ff08f94dfbfce8df9ffbaaf8ff06df8a9bbfd8 -ffb7f8ff09d565cffff86d658ee749fbff14ecbacefffffffe8fe5fffe9f -ff6656896cfffffff0e3ff01fc7df8ff08fd46ebfdd9cb8ef8ccf8ff06fe -df97fff7ff98f7ff09faefffe89e6e859fd75bf5ff0d56a8fffebfffcdfe -dd648dfffff0e3ff01fc7df8ff08fd46ebfdd9cb8ef8ccf8ff06fedf97ff -f7ff98f7ff09faefffe89e6e859fd75bf5ff0d56a8fffebfffcdfedd648d -fffff0e3ff01fc7df8ff08fd46ebfdd9cb8ef8ccf8ff06fedf97fff7ff98 -f7ff09faefffe89e6e859fd75bf5ff0d56a8fffebfffcdfedd648dfffff0 -e2ff01e8cff8ff0797c8febc69caf8fbf6ff04a6ffe7ff6cf4ff1fc5ae7f -fc54bfe767777665555567988899aa86455557aaaaababbbb969fffff0e2 -ff01e8cff8ff0797c8febc69caf8fbf6ff04a6ffe7ff6cf4ff1fc5ae7ffc -54bfe767777665555567988899aa86455557aaaaababbbb969fffff0e2ff -01e8cff8ff0797c8febc69caf8fbf6ff04a6ffe7ff6cf4ff1fc5ae7ffc54 -bfe767777665555567988899aa86455557aaaaababbbb969fffff0e1ff00 -8ef8ff07f999aeae56e8f8fbf7ff05fd89bfbafb8ff4ff1fa5ac9fffd536 -ce4cedeeeecb99aa9cddccbbbbaa99a98aaaaaaaa98989fffff0e1ff008e -f8ff07f999aeae56e8f8fbf7ff05fd89bfbafb8ff4ff1fa5ac9fffd536ce -4cedeeeecb99aa9cddccbbbbaa99a98aaaaaaaa98989fffff0e1ff008ef8 -ff07f999aeae56e8f8fbf7ff05fd89bfbafb8ff4ff1fa5ac9fffd536ce4c -edeeeecb99aa9cddccbbbbaa99a98aaaaaaaa98989fffff0e1ff00edf7ff -0796eaaf859ba7fcdff8ff05ebfcbf7ef6eff4ff079478affffe95344eec -ff03d8fffff0e1ff00edf7ff0796eaaf859ba7fcdff8ff05ebfcbf7ef6ef -f4ff079478affffe95344eecff03d8fffff0e1ff00edf7ff0796eaaf859b -a7fcdff8ff05ebfcbf7ef6eff4ff079478affffe95344eecff03d8fffff0 -d7ff07fdbb9fd85da6bfaff7ff03e9ec8f7cf3ff1ffc75bfffffffd53899 -abccccccbbabbabaaabcdeedcb98888999a9987afffff0d7ff07fdbb9fd8 -5da6bfaff7ff03e9ec8f7cf3ff1ffc75bfffffffd53899abccccccbbabba -baaabcdeedcb98888999a9987afffff0d7ff07fdbb9fd85da6bfaff7ff03 -e9ec8f7cf3ff1ffc75bfffffffd53899abccccccbbabbabaaabcdeedcb98 -888999a9987afffff0d6ff06aad9ff96e86edcf7ff039dd7e8cff2ff00fe -fcff19fed787666556677788888999987667789bcccccccdeefffffff0d6 -ff06aad9ff96e86edcf7ff039dd7e8cff2ff00fefcff19fed78766655667 -7788888999987667789bcccccccdeefffffff0d6ff06aad9ff96e86edcf7 -ff039dd7e8cff2ff00fefcff19fed787666556677788888999987667789b -cccccccdeefffffff0d7ff07fddbfd98e67e77faf8ff03f9cd7ebdd3ffff -f0d7ff07fddbfd98e67e77faf8ff03f9cd7ebdd3fffff0d7ff07fddbfd98 -e67e77faf8ff03f9cd7ebdd3fffff0d7ff08fbaffffecd8ba9adbffaff04 -fe9bc7ebbfd3fffff0d7ff08fbaffffecd8ba9adbffaff04fe9bc7ebbfd3 -fffff0d7ff08fbaffffecd8ba9adbffaff04fe9bc7ebbfd3fffff0d7ff08 -bcdfffffefb7e88fbefbff04edcbee7eacd2fffff0d7ff08bcdfffffefb7 -e88fbefbff04edcbee7eacd2fffff0d7ff08bcdfffffefb7e88fbefbff04 -edcbee7eacd2fffff0d8ff09feb9fffffeecd7e98ffafcff09f857dfe7e9 -efffeca99ed6fffff0d8ff09feb9fffffeecd7e98ffafcff09f857dfe7e9 -efffeca99ed6fffff0d8ff09feb9fffffeecd7e98ffafcff09f857dfe7e9 -efffeca99ed6fffff0d8ff18faf8ffffffc9e8e89efe9fffffffe76cff8d -8cfd98adfbb8ced7fffff0d8ff18faf8ffffffc9e8e89efe9fffffffe76c -ff8d8cfd98adfbb8ced7fffff0d8ff18faf8ffffffc9e8e89efe9fffffff -e76cff8d8cfd98adfbb8ced7fffff0d8ff19f9f8ffffdbe7ca9caeff8fff -ffff8a6ff9c8ce875effeeff8bdfd8fffff0d8ff19f9f8ffffdbe7ca9cae -ff8fffffff8a6ff9c8ce875effeeff8bdfd8fffff0d8ff19f9f8ffffdbe7 -ca9caeff8fffffff8a6ff9c8ce875effeeff8bdfd8fffff0d8ff19f9f9ff -eacf9e9e7eadfbbfffffff6a7fc99cf7c746ca47bfe8bfd8fffff0d8ff19 -f9f9ffeacf9e9e7eadfbbfffffff6a7fc99cf7c746ca47bfe8bfd8fffff0 -d8ff19f9f9ffeacf9e9e7eadfbbfffffff6a7fc99cf7c746ca47bfe8bfd8 -fffff0d8ff09faebfdbfeadf8e8f9ef9fcff0b6a8f89afe77444b8498ff7 -bfd8fffff0d8ff09faebfdbfeadf8e8f9ef9fcff0b6a8f89afe77444b849 -8ff7bfd8fffff0d8ff09faebfdbfeadf8e8f9ef9fcff0b6a8f89afe77444 -b8498ff7bfd8fffff0d8ff09fdddfbfb9eff8b9f8fdbfcff0b5c8e68ff95 -433386447865afd8fffff0d8ff09fdddfbfb9eff8b9f8fdbfcff0b5c8e68 -ff95433386447865afd8fffff0d8ff09fdddfbfb9eff8b9f8fdbfcff0b5c -8e68ff95433386447865afd8fffff0d6ff17ce9effff9c8f9fbdfffffeff -6f7b5eff643343453543688fd8fffff0d6ff17ce9effff9c8f9fbdfffffe -ff6f7b5eff643343453543688fd8fffff0d6ff17ce9effff9c8f9fbdffff -feff6f7b5eff643343453543688fd8fffff0d6ff17e9efffffab6cdb9eff -fffdff6f8b4fff64434437443345bfd8fffff0d6ff17e9efffffab6cdb9e -fffffdff6f8b4fff64434437443345bfd8fffff0d6ff17e9efffffab6cdb -9efffffdff6f8b4fff64434437443345bfd8fffff0d6ff16dbffffffe89a -fabdfffffddf8bca7bff83436434433466d7fffff0d6ff16dbffffffe89a -fabdfffffddf8bca7bff83436434433466d7fffff0d6ff16dbffffffe89a -fabdfffffddf8bca7bff83436434433466d7fffff0d6ff16befffffff9b6 -cbeafeffffafb5fef9bfc359d834433598d7fffff0d6ff16befffffff9b6 -cbeafeffffafb5fef9bfc359d834433598d7fffff0d6ff16befffffff9b6 -cbeafeffffafb5fef9bfc359d834433598d7fffff0d1ff119c8ffbffefff -8ee58fff99e548784433455ed7fffff0d1ff119c8ffbffefff8ee58fff99 -e548784433455ed7fffff0d1ff119c8ffbffefff8ee58fff99e548784433 -455ed7fffff0d1ff01fccffcff0bb9fa8afffb7743333333548ed7fffff0 -d1ff01fccffcff0bb9fa8afffb7743333333548ed7fffff0d1ff01fccffc -ff0bb9fa8afffb7743333333548ed7fffff0d1ff00fafbff0cfa68858eff -fc87433333356549d8fffff0d1ff00fafbff0cfa68858efffc8743333335 -6549d8fffff0d1ff00fafbff0cfa68858efffc87433333356549d8fffff0 -d1ff00ebfaff0cb99a769effffdca7568effe69ad9fffff0d1ff00ebfaff -0cb99a769effffdca7568effe69ad9fffff0d1ff00ebfaff0cb99a769eff -ffdca7568effe69ad9fffff0d1ff00cff9ff03feffc7effcff03efffb68a -d9fffff0d1ff00cff9ff03feffc7effcff03efffb68ad9fffff0d1ff00cf -f9ff03feffc7effcff03efffb68ad9fffff0c7ff01fedffbff02fe645ad9 -fffff0c7ff01fedffbff02fe645ad9fffff0c7ff01fedffbff02fe645ad9 -fffff096fffff096fffff096fffff096fffff096fffff096fffff096ffff -f096fffff096fffff0 -grestore -showpage -%%Trailer -%%EndDocument -end PEND 0.65 0.1 0.2 Cr/F0 60/Times-Roman@0 SF(G)216 167.895 Q 0.1 0.5 -0.2 Cr(N)A 0.1 0.2 0.6 Cr(U)A 0 Cg -2.1(Tr)35.04 G(of)2.1 E(f)-1.5 E/F1 -10/Times-Roman@0 SF(GNU T)72 227.415 Q(rof)-.35 E 2.5(f\()-.25 G 0 0 1 -Cr(Grof)-2.5 E(f)-.25 E 0 Cg/F2 10/Symbol SF2.5 E/F3 10/Courier@0 SF -(http://groff.ffii.org/)A F2A F1 2.5<298a61>C 0 0 1 Cr(GNU)A 0 Cg F2 -2.5 E F3(http://www.gnu.org/)A F2A F1(project.)2.5 E 0.65 0.1 -0.2 Cr/F4 28.126/Times-Roman@0 SF(T)72 255.015 Q 0 Cg F1 .539(HE grof) --12 J 3.039(f\()-.25 G .539(GNU T)-3.039 F(rof)-.35 E .539(f\) softw) --.25 F .54(are is a typesetting package which reads plain te)-.1 F .54 -(xt mix)-.15 F .54(ed with formatting)-.15 F -(commands and produces formatted output.)89.185 255.015 Q(Grof)5 E 2.5 -(fn)-.25 G .5 -.25(ow s)-2.5 H(upports HTML.).25 E/F5 10/Times-Bold@0 SF -(Do)72 279.015 Q(wnload)-.1 E F1 -(The source code of the currently released v)72 294.615 Q -(ersions of grof)-.15 E 2.5(fi)-.25 G 2.5(sa)-2.5 G -.25(va)-2.7 G -(ilable at the).25 E 0 0 1 Cr(FFII host \(German)2.5 E(y\))-.15 E 0 Cg -F272 306.615 Q F3(http://groff.ffii.org/groff/)A F2A F1(,)A 0 0 -1 Cr .712(GNU host \(USA\))3.212 F 0 Cg F23.213 E F3 -(ftp://ftp.gnu.org/gnu/groff/)A F2A F1(,)A(and its mirrors.)72 -318.615 Q(The USA site also contains older)5 E 2.5(,o)-.4 G(bsolete v) --2.5 E(ersions.)-.15 E .36(The most actual pre-release, de)72 334.215 R --.15(ve)-.25 G .36(lopment v).15 F .36(ersion is a)-.15 F -.25(va)-.2 G -.36(ilable from a CVS repository).25 F 2.86(,s)-.65 G .36(ee belo)-2.86 -F 4.16 -.65(w. D)-.25 H -2.15 -.25(ev e).65 H(lop-).25 E(ment snapshots\ - \(produced twice a day from the CVS repository\) can be do)72 346.215 Q -(wnloaded from)-.25 E 0 0 1 Cr(here)2.5 E 0 Cg F22.5 E F3(http://)A -(groff.ffii.org/groff/devel)72 358.215 Q F2A F1(.)A -.15(Fo)72 -373.815 S 2.5(ras).15 G(pecial v)-2.5 E(ersion of grof)-.15 E 2.5(fo) --.25 G 2.5(nt)-2.5 G(he Microsoft operating systems, see)-2.5 E 0 0 1 Cr -(Grof)2.5 E 2.5(ff)-.25 G(or W)-2.5 E(indo)-.4 E(ws)-.25 E 0 Cg F2 -2.5 E F3(http://)A(gnuwin32.sf.net/packages/groffl.htm)72 385.815 Q F2 -A F1(.)A(GNU trof)72 401.415 Q 2.5(fi)-.25 G 2.5(sr)-2.5 G -(eleased under the)-2.5 E 0 0 1 Cr(GNU Cop)2.5 E(yright License)-.1 E 0 -Cg F22.5 E F3(http://www.gnu.org/copyleft/)A(gpl.html)72 413.415 Q -F2A F1(.)A(User issues lead:)72 429.015 Q 0 0 1 Cr -.7(Te)2.5 G 2.5 -(dH).7 G(arding)-2.5 E 0 Cg F22.5 E F3(Ted.Harding@nessie.mcc.ac.uk) -A F2A F1(.)A -.7(Te)72 441.015 S(chnical issues lead:).7 E 0 0 1 Cr --.8(We)2.5 G(rner Lember).8 E(g)-.18 E 0 Cg F22.5 E F3(wl@gnu.org)A -F2A F1(.)A F5(README)72 465.015 Q F1(This is the GNU grof)72 480.615 -Q 2.5(fd)-.25 G(ocument formatting system.)-2.5 E(The v)5 E -(ersion number is gi)-.15 E -.15(ve)-.25 G 2.5(ni).15 G 2.5(nt)-2.5 G -(he \214le VERSION.)-2.5 E 1.925 -(Included in this release are implementations of trof)72 496.215 R 1.925 -(f, pic, eqn, tbl, grn, refer)-.25 F 4.425<2cad>-.4 G 1.925 -(man, \255mdoc, and \255ms)-4.425 F .284(macros, and dri)72 508.215 R --.15(ve)-.25 G .284(rs for PostScript, T).15 F .284 -(eX dvi format, HP LaserJet 4 printers, Canon CAPSL printers, HTML)-.7 F -.509(format \(beta status\), and type)72 520.215 R(writer)-.25 E(-lik) --.2 E 3.009(ed)-.1 G -.25(ev)-3.009 G 3.009(ices. Also).25 F .509 -(included is a modi\214ed v)3.009 F .508(ersion of the Berk)-.15 F(ele) --.1 E 3.008<79ad>-.15 G(me)-3.008 E 1.016(macros, an enhanced v)72 -532.215 R 1.016(ersion of the X11 xditvie)-.15 F 3.516(wp)-.25 G(re) --3.516 E(vie)-.25 E(wer)-.25 E 3.516(,a)-.4 G 1.016 -(nd an implementation of the \255mm macros)-3.516 F(contrib)72 544.215 Q -(uted by)-.2 E 0 0 1 Cr(J\366r)2.5 E(gen H\344gg)-.18 E 0 Cg F22.5 E -F3(jh@axis.se)A F2A F1(.)A(See the \214le INST)72 559.815 Q -(ALL for installation instructions.)-.93 E -1.1(Yo)5 G 2.5(uw)1.1 G -(ill require a C++ compiler)-2.5 E(.)-.55 E -(The \214le NEWS describes recent user)72 575.415 Q -(-visible changes to grof)-.2 E(f.)-.25 E(Grof)72 591.015 Q 2.5(fi)-.25 -G 2.5(sf)-2.5 G(ree softw)-2.5 E 2.5(are. See)-.1 F -(the \214le COPYING for cop)2.5 E(ying permission.)-.1 E .683 -(The \214le PR)72 606.615 R .683(OBLEMS describes v)-.4 F .682 -(arious problems that ha)-.25 F .982 -.15(ve b)-.2 H .682 -(een encountered in compiling, installing, and).15 F(running grof)72 -618.615 Q(f.)-.25 E(The most recent released v)72 634.215 Q -(ersion of grof)-.15 E 2.5(fi)-.25 G 2.5(sa)-2.5 G -.1(lwa)-2.5 G(ys a) -.1 E -.25(va)-.2 G(ilable by).25 E 0 0 1 Cr(anon)2.5 E(ymous ftp)-.15 E -0 Cg F22.5 E F3(ftp://ftp.gnu.org/)A(gnu/groff)72 646.215 Q F2A -F1(.)A(The current de)72 661.815 Q -.15(ve)-.25 G(lopment v).15 E -(ersion of grof)-.15 E 2.5(fi)-.25 G 2.5(sa)-2.5 G -.25(va)-2.7 G -(ilable from a).25 E 0 0 1 Cr(CVS repository)2.5 E 0 Cg F22.5 E F3 -(http://)A(savannah.gnu.org/cvs/?group=groff)72 673.815 Q F2A F1 -5.244(.Y)C .245 -(ou can access it by \214rst selecting a parent directory in)-6.344 F -(which to create a w)72 685.815 Q(orking cop)-.1 E 2.5(y\()-.1 G -(call it, say)-2.5 E 2.5(,~)-.65 G(/cvsw)-2.5 E(ork\), and then e)-.1 E --.15(xe)-.15 G(cuting the commands).15 E F3(cd ~/cvswork)92 701.415 Q -(CVS_RSH=ssh; export CVS_RSH)92 713.415 Q -(cvs -d:ext:anoncvs@savannah.gnu.org/cvsroot/groff -z5 co groff)92 -725.415 Q 0 Cg EP -%%Page: 2 2 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-2-)282.17 48 Q -(\(Note that you need an SSH client for security reasons.\))72 84 Q -1.688(This will create a subdirectory)72 99.6 R 4.188(,~)-.65 G(/cvsw) --4.188 E(ork/grof)-.1 E 1.688(f, with a `check)-.25 F 1.688(ed out' cop) --.1 F 4.188(yo)-.1 G 4.188(ft)-4.188 G 1.688(he CVS repository)-4.188 F -6.688(.A)-.65 G(n)-6.688 E(update of this w)72 111.6 Q(orking cop)-.1 E -2.5(ym)-.1 G(ay be achie)-2.5 E -.15(ve)-.25 G(d, at an).15 E 2.5(yl) --.15 G(ater time by in)-2.5 E -.2(vo)-.4 G(king the commands).2 E/F1 10 -/Courier@0 SF(cd ~/cvswork/groff)92 127.2 Q -(CVS_RSH=ssh cvs -z5 update -dP)92 139.2 Q F0 -(Please read the CVS info pages for further details.)72 154.8 Q(Finally) -72 170.4 Q 2.5(,i)-.65 G 2.5(ti)-2.5 G 2.5(sp)-2.5 G -(ossible to access the CVS with a)-2.5 E 0 0 1 Cr(web bro)2.5 E(wser) --.25 E 0 Cg/F2 10/Symbol SF2.5 E F1(http://savannah.gnu.org/cvs/)A -(?group=groff)72 182.4 Q F2A F0(.)A(Alternati)72 198 Q -.15(ve)-.25 -G(ly).15 E 2.929(,y)-.65 G .429(ou can do)-2.929 F .429 -(wnload snapshots \(which are updated twice a day\).)-.25 F .428 -(The complete grof)5.428 F 2.928(fs)-.25 G .428(ource as)-2.928 F 2.5 -(as)72 210 S(ingle \214le is a)-2.5 E -.25(va)-.2 G(ilable).25 E 0 0 1 -Cr(here)2.5 E 0 Cg F22.5 E F1(http://groff.ffii.org/groff/devel/)A -(groff-current.tar.gz)72 222 Q F2A F0(.)A 2.5(Ad)72 237.6 S(if)-2.5 -E 2.5<668c>-.25 G(le relati)-2.5 E .3 -.15(ve t)-.25 H 2.5(og).15 G(rof) --2.5 E(f-)-.25 E F2A F0 -.15(ve)C(rsion).15 E F2A F0 2.5(,t)C -(he latest of)-2.5 E(\214cial grof)-.25 E 2.5(fr)-.25 G(elease is a)-2.5 -E -.25(va)-.2 G(ilable at).25 E F1 -(http://groff.ffii.org/groff/devel/groff-)92 253.2 Q F2A F1(version) -A F2A F1(-current.diff.gz)A F0 .17(Assuming that grof)72 268.8 R(f-) --.25 E F2A F0 -.15(ve)C(rsion).15 E F2A F0(.tar)A .169 -(.gz and grof)-.55 F(f-)-.25 E F2A F0 -.15(ve)C(rsion).15 E F2A -F0(-current.dif)A .169(f.gz are in the same directory)-.25 F 2.669(,d) --.65 G 2.669(ot)-2.669 G .169(he fol-)-2.669 F(lo)72 280.8 Q -(wing to apply the dif)-.25 E 2.5<668c>-.25 G(le:)-2.5 E F1 -(tar xzvf groff-)92 296.4 Q F2A F1(version)A F2A F1(.tar.gz)A -(cd groff-)92 308.4 Q F2A F1(version)A F2A F1 -(gunzip -c ../groff-)92 320.4 Q F2A F1(version)A F2A F1 -(-current.diff.gz | patch -p1)A F0 .456(Depending on your requirements,\ - you may need at least some of the follo)72 336 R .456(wing tools to b) --.25 F .456(uild grof)-.2 F 2.956(fd)-.25 G(irectly)-2.956 E -(from its source:)72 348 Q(ghostscript)92 363.6 Q(the psutils package)92 -375.6 Q(the netpbm package)92 387.6 Q(te)92 399.6 Q(xinfo 4.8)-.15 E -(bison)92 411.6 Q F22.5 E F0(1.875b or byacc)2.5 E .203 -(Note that te)72 427.2 R .203 -(xinfo and bison or byacc are required only for b)-.15 F .203 -(uilding from CVS sources \(either a check)-.2 F .202(ed out)-.1 F -.1 -(wo)72 439.2 S .65(rking cop).1 F 1.95 -.65(y, o)-.1 H 3.15(rad).65 G -.65(aily snapshot\).)-3.15 F(The)5.65 E 3.15(ya)-.15 G .651 -(re not required for b)-3.15 F .651 -(uilding from a stable release tarball.)-.2 F(Also)5.651 E .916 -(note that the v)72 451.2 R .915 -(ersion numbers stated are the minimum supported.)-.15 F .915(No v)5.915 -F .915(ersion of te)-.15 F .915(xinfo < 4.8 will w)-.15 F(ork,)-.1 E -.365(and the original release of bison 1.875 is kno)72 463.2 R .365 -(wn not to w)-.25 F .365(ork; you)-.1 F/F3 10/Times-Italic@0 SF(may) -2.865 E F0 .365(\214nd that bison releases < 1.875 will)2.865 F -.1(wo) -72 475.2 S(rk, b).1 E(ut in case of dif)-.2 E(\214culty)-.25 E 2.5(,p) --.65 G(lease update to a later v)-2.5 E(ersion)-.15 E F3(befor)2.5 E(e) --.37 E F0(posting a b)2.5 E(ug report.)-.2 E -.15(Fo)72 490.8 S(r).15 E -F3(all)3.315 E F0 .815(sources, you need ghostscript for creation of ei\ -ther PDF or HTML output; the netpbm and psutils)3.315 F .507 -(packages are required only for HTML output.)72 502.8 R .507 -(If you don')5.507 F 3.007(ti)-.18 G .507 -(ntend to produce output in either of these for)-3.007 F(-)-.2 E -(mats, then these packages are unnecessary)72 514.8 Q(.)-.65 E .078 -(Please report b)72 530.4 R .077(ugs using the form in the \214le B)-.2 -F(UG-REPOR)-.1 E 1.177 -.55(T; t)-.6 H .077(he idea of this is to mak) -.55 F 2.577(es)-.1 G .077(ure that FSF has all)-2.577 F .373 -(the information it needs to \214x the b)72 542.4 R 2.873(ug. At)-.2 F -.373(the v)2.873 F .373(ery least, read the B)-.15 F(UG-REPOR)-.1 E -2.873(Tf)-.6 G .373(orm and mak)-2.873 F 2.874(es)-.1 G .374(ure that) --2.874 F .801(you supply all the information that it asks for)72 554.4 R -5.801(.E)-.55 G -.15(ve)-5.801 G 3.301(ni).15 G 3.301(fy)-3.301 G .801 -(ou are not sure that something is a b)-3.301 F .801(ug, report it)-.2 F -(using B)72 566.4 Q(UG-REPOR)-.1 E 1 -.5(T: t)-.6 H -(his will enable us to determine whether it really is a b).5 E -(ug or not.)-.2 E(Three mailing lists are a)72 582 Q -.25(va)-.2 G -(ilable:).25 E<83>72 601.2 Q 0 0 1 Cr -.2(bu)5 G(g-grof).2 E(f@gnu.or) --.25 E(g)-.18 E 0 Cg F22.5 E F1(bug-groff@gnu.org)A F2A F0 -(for reporting b)2.5 E(ugs)-.2 E<83>72 620.4 Q 0 0 1 Cr(grof)5 E -(f@gnu.or)-.25 E(g)-.18 E 0 Cg F22.5 E F1(groff@gnu.org)A F2A F0 -(for general discussion of grof)2.5 E(f)-.25 E<83>72 639.6 Q 0 0 1 Cr -(grof)5 E(f-commit@gnu.or)-.25 E(g)-.18 E 0 Cg F25.043 E F1 -(groff-commit@gnu.org)A F2A F0 5.044(ar)5.043 G 2.544 -(ead-only list sho)-5.044 F 2.544(wing commitments to the)-.25 F -(CVS repository)80.5 651.6 Q -1.1(Yo)72 667.2 S 2.975(uc)1.1 G .475 -(an post mails directly to the `b)-2.975 F(ug-grof)-.2 E -.625 .55(f' l) --.25 H .475(ist, without subscribing; to post mails to the `grof)-.55 F --.625 .55(f' l)-.25 H .475(ist you)-.55 F(must subscribe to it.)72 679.2 -Q 13.571 -.8(To s)72 694.8 T 11.971(ubscribe, send e-mail to).8 F F2 -14.472 E F0(list)A F2A F0(-request@)A F2A F0(domain)A F2A F0 -(\(e)14.472 E(xample:)-.15 E 0 0 1 Cr(grof)14.472 E(f-request@gnu.or) --.25 E(g)-.18 E 0 Cg F272 706.8 Q F1(groff-request@gnu.org)A F2A -F0 .266(for the `grof)2.766 F -.834 .55(f' l)-.25 H .266 -(ist\) with the w)-.55 F .265 -(ord `subscribe' in either the subject or body)-.1 F -(of the e-mail \(don')72 718.8 Q 2.5(ti)-.18 G(nclude the quotes\).)-2.5 -E(Alternati)5 E -.15(ve)-.25 G(ly).15 E 2.5(,y)-.65 G -(ou may subscribe by visiting the web pages at)-2.5 E 0 Cg EP -%%Page: 3 3 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-3-)282.17 48 Q/F1 10/Symbol SF92 84 Q 0 0 1 -Cr/F2 10/Courier@0 SF(http://lists.gnu.org/mailman/listinfo/bug-groff)A -0 Cg F1A92 96 Q 0 0 1 Cr F2 -(http://lists.gnu.org/mailman/listinfo/groff)A 0 Cg F1A92 108 Q -0 0 1 Cr F2(http://lists.gnu.org/mailman/listinfo/groff-commit)A 0 Cg F1 -A F0 .098(Each of these web pages also pro)72 123.6 R .098 -(vides a link to a bro)-.15 F .098(wseable archi)-.25 F .399 -.15(ve o) --.25 H 2.599(fp).15 G .099(ostings to the corresponding mail-)-2.599 F -(ing list.)72 135.6 Q 1.984(GNU grof)72 151.2 R 4.484(fw)-.25 G 1.984 -(as written by)-4.584 F 0 0 1 Cr 1.984(James Clark)4.484 F 0 Cg F1 -4.484 E F2(jjc@jclark.com)A F1A F0 6.984(.I)C 4.483(ti)-6.984 G -4.483(sn)-4.483 G 2.483 -.25(ow m)-4.483 H 1.983(aintained by).25 F 0 0 -1 Cr -.7(Te)4.483 G 4.483(dH).7 G(arding)-4.483 E 0 Cg F172 163.2 Q -F2(Ted.Harding@nessie.mcc.ac.uk)A F1A F0(and)2.5 E 0 0 1 Cr -.8(We) -2.5 G(rner Lember).8 E(g)-.18 E 0 Cg F12.5 E F2(wl@gnu.org)A F1A -F0(.)A/F3 10/Times-Bold@0 SF(NEWS VERSION 1.19.2)72 187.2 Q F0 5<8341>72 -230.4 S 1.057(nalogously to the .ft and \\f pair)-5 F 3.558(,t)-.4 G -1.258 -.1(wo n)-3.558 H 1.558 -.25(ew r).1 H 1.058 -(equests `gcolor' and `fcolor' \(which pair with \\m and \\M,).25 F -(respecti)80.5 242.4 Q -.15(ve)-.25 G(ly\) ha).15 E .3 -.15(ve b)-.2 H -(een added to set the glyph and background colours.).15 E 5<8341>72 -261.6 S(ne)-2.5 E 2.5(wr)-.25 G(ead-only)-2.5 E 2.5(,s)-.65 G(tring-v) --2.5 E(alued re)-.25 E -(gister `.sty' returns the name of the current style.)-.15 E 5<8354>72 -280.8 S .837 -.1(wo n)-5.8 H 1.137 -.25(ew c).1 H .637 -(onditional operators `F).25 F F13.137 E F0(name)A F1A F0 3.137 -('a)C .637(nd `S)-3.137 F F13.137 E F0(name)A F1A F0 3.137('h)C --2.25 -.2(av e)-3.137 H .637(been added.)3.337 F .636 -(`F' is true if a font)5.637 F F13.136 E F0(name)A F1A F0 -.15 -(ex)80.5 292.8 S 2.5(ists. `S').15 F(is true if a style)2.5 E F12.5 -E F0(name)A F1A F0(has been re)2.5 E(gistered.)-.15 E 5<8343>72 312 -S(yrillic characters ha)-5 E .3 -.15(ve b)-.2 H -(een added to the `utf8' and `html' output de).15 E(vices.)-.25 E F3 -(pic)72 336 Q F0 5<8354>72 355.2 S .04(he `by' ar)-5 F .04 -(gument in a `for' loop can no)-.18 F 2.54(wb)-.25 G 2.54(en)-2.54 G --2.25 -.15(eg a)-2.54 H(ti).15 E .341 -.15(ve i)-.25 H 2.541(fi).15 G -2.541(ti)-2.541 G 2.541(sa)-2.541 G(dditi)-2.541 E -.15(ve)-.25 G 5.041 -(.F).15 G .041(or the multiplicati)-5.191 F .341 -.15(ve c)-.25 H .041 -(ase, it must).15 F(be greater than zero.)80.5 367.2 Q F3(eqn)72 391.2 Q -F0 5<8354>72 410.4 S(he follo)-5 E(wing k)-.25 E -.15(ey)-.1 G -.1(wo) -.15 G(rds aren').1 E 2.5(tn)-.18 G .5 -.25(ew b)-2.5 H(ut ha).05 E -.15 -(ve)-.2 G(n').15 E 2.5(tb)-.18 G(een documented pre)-2.5 E(viously:)-.25 -E F3(undef N)92 426 Q(AME)-.2 E F0(\(to unde\214ne a macro\))2.5 E F3 -(copy "FILE")92 438 Q F0(\(a synon)2.5 E(ym for `include'\))-.15 E F3 -(space n)92 450 Q F0(\(to modify the v)2.5 E -(ertical spacing before and after an equation\))-.15 E 5<8354>72 469.2 S -(he follo)-5 E(wing macros aren')-.25 E 2.5(tn)-.18 G .5 -.25(ew b)-2.5 -H(ut ha).05 E -.15(ve)-.2 G(n').15 E 2.5(tb)-.18 G(een documented pre) --2.5 E(viously:)-.25 E F3(Alpha, .)92 484.8 Q 1.666(..)1.666 G 2.5(,O) --1.666 G(mega)-2.5 E F0(\(the same as `)2.5 E(ALPHA)-.8 E(', .)-1.11 E -1.666(..)1.666 G 2.5(,`)-1.666 G(OMEGA)-2.5 E('\))-1.11 E F3(ldots)92 -496.8 Q F0(\(three dots on the base line\))2.5 E F3(dollar)92 508.8 Q F0 -(\(a dollar glyph\))2.5 E 5<8354>72 528 S .989(he follo)-5 F .989 -(wing k)-.25 F -.15(ey)-.1 G -.1(wo).15 G .989(rds ha).1 F 1.289 -.15 -(ve b)-.2 H .989(een e).15 F 3.489(xtended. Ag)-.15 F .989 -(ain, this isn')-.05 F 3.488(tn)-.18 G 1.488 -.25(ew b)-3.488 H .988 -(ut hasn').05 F 3.488(tb)-.18 G .988(een documented pre)-3.488 F(vi-) --.25 E(ously:)80.5 540 Q F3(col n { .)92 555.6 Q -3.332 1.666(.. })1.666 -H(lcol n { .)92 567.6 Q -3.332 1.666(.. })1.666 H -.18(rc)92 579.6 S -(ol n { .).18 E -3.332 1.666(.. })1.666 H(ccol n { .)92 591.6 Q -3.332 -1.666(.. })1.666 H(pile n { .)92 603.6 Q -3.332 1.666(.. })1.666 H -(lpile n { .)92 615.6 Q -3.332 1.666(.. })1.666 H -.1(rp)92 627.6 S -(ile n { .).1 E -3.332 1.666(.. })1.666 H(cpile n { .)92 639.6 Q -3.332 -1.666(.. })1.666 H F0(\(set v).834 E(ertical spacing between ro)-.15 E -(ws to N\))-.25 E F3(gr)72 663.6 Q(ohtml)-.18 E F0 5<8354>72 682.8 S -(his de)-5 E(vice dri)-.25 E -.15(ve)-.25 G 2.5(rh).15 G -(as been raised to beta stage; its set of tags should be stable no)-2.5 -E -.65(w.)-.25 G 5<834e>72 702 S .5 -.25(ew c)-5 H -(ommand line option `\255s' to set the base point size.).25 E 5<834e>72 -721.2 S .5 -.25(ew c)-5 H -(ommand line option `\255S' to set the split le).25 E -.15(ve)-.25 G 2.5 -(lw).15 G(hile generating multiple \214les.)-2.5 E 0 Cg EP -%%Page: 4 4 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-4-)282.17 48 Q/F1 10/Times-Bold@0 SF(gr)72 84 Q -(otty)-.18 E F0 5<8345>72 103.2 S -(xperimental support for zero-width and double-width characters.)-5 E F1 -(gxditview)72 127.2 Q F0 5<834f>72 146.4 S 2.5(np)-5 G -(latforms which ha)-2.5 E .3 -.15(ve t)-.2 H(he X W).15 E(indo)-.4 E 2.5 -(wS)-.25 G(ystem this program is no)-2.5 E 2.5(wb)-.25 G -(uilt and installed automatically)-2.7 E(.)-.65 E F1(xtotr)72 170.4 Q -(off)-.18 E F0 5<8354>72 189.6 S -(his program to create font de\214nition \214les for xditvie)-5 E 2.5 -(wi)-.25 G(sn')-2.5 E 2.5(tn)-.18 G .5 -.25(ew b)-2.5 H(ut hasn').05 E -2.5(tb)-.18 G(een installed pre)-2.5 E(viously)-.25 E(.)-.65 E F1(gr)72 -213.6 Q(offer)-.18 E F0 5<8341>72 232.8 S -(security problem \(reported as CAN-2004-0969\) has been \214x)-2.5 E -(ed.)-.15 E F1(gdiffmk)72 256.8 Q F0 5<8341>72 276 S(ne)-1.876 E 3.124 -(ws)-.25 G .624(cript contrib)-3.124 F .624(uted by Mik)-.2 F 3.124(eB) --.1 G 3.124(ianchi. It)-3.124 F .624(compares tw)3.124 F 3.124(og)-.1 G -(rof)-3.124 E .625(f, nrof)-.25 F .625(f, or trof)-.25 F 3.125(fd)-.25 G -.625(ocuments and creates)-3.125 F(an output with added mar)80.5 288 Q -(gin characters \(using `.mc'\) to indicate the dif)-.18 E(ferences.) --.25 E F1(pdfr)72 312 Q(off)-.18 E F0 5<8341>72 331.2 S(ne)-2.5 E 2.5 -(ww)-.25 G(rapper script contrib)-2.5 E(uted by K)-.2 E -(eith Marshall to easily create PDF documents with grof)-.25 E(f.)-.25 E -F1(macr)72 355.2 Q 2.5(op)-.18 G(ackages)-2.5 E F0 5<836d>72 374.4 S -(s.tmac)-5 E .4 LW 86 393.6 81 393.6 DL 86 388.6 86 393.6 DL 81 388.6 86 -388.6 DL 81 393.6 81 388.6 DL .414 -(Support for fractional point sizes: A v)91.5 393.6 R .413 -(alue for the `PS', `VS', `FPS', and `VPS' re)-.25 F .413(gister lar) --.15 F .413(ger than or)-.18 F .151(equal to 1000 is al)91.5 405.6 R -.1 -(wa)-.1 G .151(ys di).1 F .151(vided by 1000.)-.25 F -.15(Fo)5.151 G -2.651(re).15 G .151(xample, `.nr PS 10250' sets the document')-2.801 F -2.651(sf)-.55 G .152(ont size to)-2.651 F(10.25 points.)91.5 417.6 Q 86 -436.8 81 436.8 DL 86 431.8 86 436.8 DL 81 431.8 86 431.8 DL 81 436.8 81 -431.8 DL .46(The `Ds' and `De' macros pro)91.5 436.8 R .459 -(vided in ms since grof)-.15 F 2.959(fv)-.25 G .459(ersion 1.19 ha) --3.109 F .759 -.15(ve b)-.2 H .459(een remo).15 F -.15(ve)-.15 G .459 -(d; the equi).15 F -.25(va)-.25 G(lent).25 E 1.598 -(`DS' and `DE' macros should be used instead.)91.5 448.8 R 1.598 -(X11 documents which actually use `Ds' and `De')6.598 F(al)91.5 460.8 Q --.1(wa)-.1 G .481 -(ys load a speci\214c macro \214le from the X11 distrib).1 F .48 -(ution \(`macros.t'\) which pro)-.2 F .48(vides proper de\214ni-)-.15 F -(tions for the tw)91.5 472.8 Q 2.5(om)-.1 G(acros.)-2.5 E 86 492 81 492 -DL 86 487 86 492 DL 81 487 86 487 DL 81 492 81 487 DL(The follo)91.5 492 -Q(wing re)-.25 E(gisters ha)-.15 E .3 -.15(ve b)-.2 H -(een added for impro).15 E(ving layout control:)-.15 E(PORPHANS)72 511.2 -Q .175(De\214nes number of lines follo)97 523.2 R .176 -(wing `LP', `PP', `QP', `IP' or `XP' which must be k)-.25 F .176 -(ept together)-.1 F 2.676(,b)-.4 G(efore)-2.676 E(an)97 535.2 Q 2.5(ya) --.15 G(utomatic page break.)-2.5 E(HORPHANS)72 554.4 Q .436 -(Sets number of lines of follo)97 566.4 R .436 -(wing paragraph which must be k)-.25 F .436 -(ept with a heading, de\214ned by `NH' or)-.1 F(`SH', before an)97 578.4 -Q 2.5(ya)-.15 G(utomatic page break.)-2.5 E(GR)72 597.6 Q -.35(OW)-.4 G -(PS).35 E(Sets the \214rst le)97 609.6 Q -.15(ve)-.25 G 2.5(lo).15 G 2.5 -(fh)-2.5 G(eading \(set with `NH'\) which will k)-2.5 E -(eep the same point size as body te)-.1 E(xt.)-.15 E(PSINCR)72 628.8 Q -.445(Sets the point size increment for each le)97 640.8 R -.15(ve)-.25 G -2.945(lo).15 G 2.945(fh)-2.945 G .445(eading \(set with `NH'\), belo) --2.945 F 2.946(wt)-.25 G .446(he threshold le)-2.946 F -.15(ve)-.25 G -2.946(ls).15 G(et)-2.946 E .074(by `GR)97 652.8 R -.35(OW)-.4 G .074 -(PS'; e.g., if \\n[PS] = 10, \\n[GR).35 F -.35(OW)-.4 G .073 -(PS] = 3 and \\n[PSINCR] = 2.0p, then `.NH 1' will pro-).35 F 1.525 -(duce 14pt headings, `.NH 2' will produce 12pt, and all other le)97 -664.8 R -.15(ve)-.25 G 1.526(ls will remain at 10pt \(because).15 F -(\\n[PS] = 10\).)97 676.8 Q 86 696 81 696 DL 86 691 86 696 DL 81 691 86 -691 DL 81 696 81 691 DL .152(The `SH' macro no)91.5 696 R 2.651(wa)-.25 -G .151(ccepts a numeric ar)-2.651 F .151(gument, to mak)-.18 F 2.651(eh) --.1 G .151(eading size match that of `NH' with same)-2.651 F(ar)91.5 708 -Q(gument v)-.18 E(alue when the `GR)-.25 E -.35(OW)-.4 G -(PS'/`PSINCR' feature is enabled.).35 E 0 Cg EP -%%Page: 5 5 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-5-)282.17 48 Q -(Please refer to the documentation of the ms package for other)80.5 84 Q -2.5(,m)-.4 G(inor impro)-2.5 E -.15(ve)-.15 G(ments.).15 E 5<836d>72 -103.2 S(e.tmac)-5 E .121 -(The section type set with the `++' request is a)80.5 118.8 R -.25(va) --.2 G .121(ilable in the `_M' re).25 F(gister)-.15 E 5.121(.T)-.55 G -.121(his isn')-5.121 F 2.621(tn)-.18 G .621 -.25(ew b)-2.621 H .121 -(ut hasn').05 F 2.622(tb)-.18 G(een)-2.622 E(documented before.)80.5 -130.8 Q 5<8377>72 150 S(ww)-5 E(.tmac)-.65 E -(The `HR' macro no longer causes an empty line for non-HTML de)80.5 -165.6 Q(vices.)-.25 E 2.5(An)80.5 181.2 S .5 -.25(ew m)-2.5 H(acro `HEA\ -D' has been added to directly add data to the ... block.) -.25 E(Ne)80.5 196.8 Q 2.5(wm)-.25 G -(acros `OLS' and `OLE' to start and end an ordered list.)-2.5 E(Ne)80.5 -212.4 Q 2.5(wm)-.25 G -(acros `DLS' and `DLE' to start and end a de\214nition list.)-2.5 E/F1 -10/Times-Bold@0 SF(pdfmark)72 236.4 Q F0 5<8341>72 255.6 S(ne)-1.235 E -3.765(wm)-.25 G 1.265(acro package contrib)-3.765 F 1.265(uted by K)-.2 -F 1.265(eith Marshall which implements PDF marks.)-.25 F 1.264 -(This is in alpha)6.264 F(stage currently)80.5 267.6 Q(.)-.65 E F1 -(miscellaneous)72 291.6 Q F0 5<8354>72 310.8 S .804 -.1(wo n)-5.8 H -1.104 -.25(ew k).1 H -.15(ey).15 G -.1(wo).15 G .604 -(rds to the DESC \214le ha).1 F .904 -.15(ve b)-.2 H .604 -(een added which are needed for grohtml: `image_generator').15 F .663 -(and `unscaled_charwidths'.)80.5 322.8 R .663(The former gi)5.663 F -.15 -(ve)-.25 G 3.163(st).15 G .663 -(he name of the program which creates PNG images, and)-3.163 F -(the latter mak)80.5 334.8 Q(es trof)-.1 E 2.5(fa)-.25 G -.1(lwa)-2.5 G -(ys use unscaled character widths.).1 E F1(NEWS VERSION 1.19.1)72 358.8 -Q(gr)72 382.8 Q(off)-.18 E F0 5<8354>72 402 S .493(he ar)-5 F .494 -(gument of the command line option `\255I' is no)-.18 F 2.994(wa)-.25 G -.494(lso passed to trof)-2.994 F 2.994(fa)-.25 G .494 -(nd grops, specifying a direc-)-2.994 F .611(tory to search for \214les\ - on the command line, \214les named in `so' and `psbb' requests, and \ -\214les named in)80.5 414 R -(\\X'ps: \214le' and \\X'ps: import' escapes.)80.5 426 Q 5<8349>72 445.2 -S 2.5(fo)-5 G(ption `\255V' is used more than once, the commands will b\ -e both printed on standard error and run.)-2.5 E F1(tr)72 469.2 Q(off) --.18 E F0 5<8354>72 488.4 S 1.708 -.1(wo n)-5.8 H 2.008 -.25(ew r).1 H -(ead-only).25 E 4.008(,s)-.65 G(tring-v)-4.008 E 1.508(alued re)-.25 F -1.508(gisters `.m' and `.M' return the name of the current dra)-.15 F -1.508(wing and)-.15 F(background color)80.5 500.4 Q 2.5(,r)-.4 G -(especti)-2.5 E -.15(ve)-.25 G(ly).15 E(.)-.65 E 5<834e>72 519.6 S .5 --.25(ew r)-5 H(ead-only re).25 E(gister `.U' which is set to 1 if in sa\ -fer mode and set to 0 if in unsafe mode.)-.15 E 5<8341>72 538.8 S 2.5 -(ni)-5 G -(nput encoding \214le for latin-5 \(a.k.a. ISO 8859-9\) has been added.) --2.5 E(Example use:)5 E/F2 10/Courier@0 SF -(groff \255Tdvi \255mlatin5 my_file > my_file.dvi)92 554.4 Q F0 -(Note that some output de)80.5 570 Q(vices don')-.25 E 2.5(ts)-.18 G -(upport all glyphs of this encoding.)-2.5 E 5<8349>72 589.2 S 2.904(ft) --5 G .404(he `return' request is called with an ar)-2.904 F .403 -(gument, it e)-.18 F .403 -(xits twice, namely the current macro and the macro)-.15 F(one le)80.5 -601.2 Q -.15(ve)-.25 G 2.5(lh).15 G(igher)-2.5 E 5(.T)-.55 G -(his is used to de\214ne a wrapper macro for `return' in trace.tmac.)-5 -E 5<8346>72 620.4 S .023(or completeness, tw)-5.15 F 2.523(on)-.1 G .523 --.25(ew r)-2.523 H .024(equests ha).25 F .324 -.15(ve b)-.2 H .024 -(een added: `dei1' and `ami1'.).15 F(The)5.024 E 2.524(ya)-.15 G .024 -(re equi)-2.524 F -.25(va)-.25 G .024(lent to `dei' and).25 F .137 -(`ami', respecti)80.5 632.4 R -.15(ve)-.25 G(ly).15 E 2.637(,b)-.65 G -.137(ut the macros are e)-2.837 F -.15(xe)-.15 G .137 -(cuted with compatibility mode of).15 F 2.636(f\()-.25 G .136 -(similar to `de1' and `am1'\).)-2.636 F 5<834e>72 651.6 S .737 -.25 -(ew c)-5 H .238(ommand line option `\255I' to specify a directory for \ -\214les \(both those on the command line and those).25 F -(named in `psbb' requests\).)80.5 663.6 Q -(This is also handled by the grof)5 E 2.5(fw)-.25 G(rapper program.)-2.5 -E 5<8353>72 682.8 S(ince v)-5 E(ersion 1.19 you can say `.vs 0'.)-.15 E -(Older v)5 E(ersions emit a w)-.15 E(arning and con)-.1 E -.15(ve)-.4 G -(rt this to `.vs \\n[.V]'.).15 E .52(This hasn')80.5 698.4 R 3.02(tb) --.18 G .52(een documented properly)-3.02 F 5.52(.N)-.65 G .52 -(ote that `.vs 0' isn')-5.52 F 3.019(ts)-.18 G -2.25 -.2(av e)-3.019 H -3.019(di).2 G 3.019(nad)-3.019 G -2.15 -.25(iv e)-3.019 H .519 -(rsion since it doesn').25 F 3.019(tr)-.18 G(esult)-3.019 E(in v)80.5 -710.4 Q(ertical motion.)-.15 E 0 Cg EP -%%Page: 6 6 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-6-)282.17 48 Q/F1 10/Times-Bold@0 SF(pic)72 84 -Q F0 5<8344>72 103.2 S(ashed and dotted ellipses ha)-5 E .3 -.15(ve b) --.2 H(een implemented.).15 E F1(tbl)72 127.2 Q F0 5<834e>72 146.4 S .517 --.25(ew k)-5 H .317 -.15(ey c).15 H .017(haracter `x' to mak).15 F 2.517 -(et)-.1 G .017(bl call a user)-2.517 F .017 -(-de\214ned macro on a table cell.)-.2 F -.15(Pa)5.018 G .018(tch by).15 -F 0 0 1 Cr(Heinz-J\374r)2.518 E .018(gen Oertel)-.18 F 0 Cg/F2 10/Symbol -SF80.5 158.4 Q/F3 10/Courier@0 SF(hj.oertel@surfeu.de)A F2A F0 -(.)A F1(grap2graph)72 182.4 Q F0 5<8341>72 201.6 S(ne)-2.154 E 2.846(ws) --.25 G .346(cript contrib)-2.846 F .346(uted by)-.2 F 0 0 1 Cr .346 -(Eric S. Raymond)2.846 F 0 Cg F22.846 E F3(esr@thyrsus.com)A F2A -F0 5.346(.I)C 2.846(tc)-5.346 G(on)-2.846 E -.15(ve)-.4 G .346 -(rts a grap diagram into a).15 F .274(cropped image.)80.5 213.6 R .275 -(Since it uses gs and the PNM library)5.274 F 2.775(,v)-.65 G .275 -(irtually all graphics formats are a)-2.775 F -.25(va)-.2 G .275 -(ilable for out-).25 F 2.844(put. [Note)80.5 225.6 R .344 -(that the grap program itself isn')2.844 F 2.843(tp)-.18 G .343 -(art of the grof)-2.843 F 2.843(fp)-.25 G .343 -(ackage; see the \214le MORE.STUFF ho)-2.843 F 2.843(wt)-.25 G(o)-2.843 -E(obtain grap.])80.5 237.6 Q F1(gr)72 261.6 Q(ohtml)-.18 E F0 5<834e>72 -280.8 S .5 -.25(ew o)-5 H -(ption `\255j' to emit output splitted into multiple \214les.).25 E F1 -(gr)72 304.8 Q(ops)-.18 E F0 5<834e>72 324 S 1.478 -.25(ew c)-5 H .979(\ -ommand line option `\255I' to specify a directory to search for \214les\ - on the command line and \214les).25 F -(named in \\X'ps: import' and \\X'ps: \214le' escapes.)80.5 336 Q -(This is also handled by the grof)5 E 2.5(fw)-.25 G(rapper program.)-2.5 -E 5<8354>72 355.2 S(he def)-5 E(ault v)-.1 E(alue for the `brok)-.25 E -(en' k)-.1 E -.15(ey)-.1 G -.1(wo).15 G(rd in the DESC \214le is no).1 E -2.5(w0)-.25 G(.)-2.5 E F1(gr)72 379.2 Q(olj4)-.18 E F0 5<8341>72 398.4 S -(ne)-2.5 E 2.5(wm)-.25 G(an page `lj4_font\(5\)' documents ho)-2.5 E 2.5 -(wf)-.25 G(onts are accessed with grolj4.)-2.5 E 5<8354>72 417.6 S .908 -(he b)-5 F .908(uilt-in fonts for LJ4 and ne)-.2 F .908(wer PCL 5 de) --.25 F .908(vices ha)-.25 F 1.208 -.15(ve b)-.2 H .907 -(een completely re).15 F .907(vised, mainly to access as)-.25 F .004 -(much glyphs as possible.)80.5 429.6 R .004(The pro)5.004 F .005(vided \ -metric \214les should be compatible with recent PCL 5 printers also.) --.15 F(Additionally)80.5 441.6 Q 2.939(,f)-.65 G .438 -(ont description \214les ha)-2.939 F .738 -.15(ve b)-.2 H .438 -(een added for the Arial and T).15 F .438(imes Ne)-.35 F 2.938(wR)-.25 G -.438(oman f)-2.938 F(amily)-.1 E 2.938(,t)-.65 G .438(he MS)-2.938 F -(symbol, and W)80.5 453.6 Q(ingdings fonts.)-.4 E F1(afmtodit)72 477.6 Q -F0 5<834e>72 496.8 S .5 -.25(ew o)-5 H(ption `\255x' to pre).25 E -.15 -(ve)-.25 G(nt use of b).15 E(uilt-in Adobe Glyph List.)-.2 E F1 -(hpftodit)72 520.8 Q F0 5<8343>72 540 S 1.534(ompletely re)-5 F 1.534 -(vised to handle HP T)-.25 F(rueT)-.35 E 1.534(ype metric \214les also.) --.8 F 1.534(See the hpftodit manual page for more)6.534 F(details.)80.5 -552 Q F1(gr)72 576 Q(offer)-.18 E F0 5<8354>72 595.2 S(his v)-5 E -(ersion is a re)-.15 E(write of grof)-.25 E(fer in man)-.25 E 2.5(yp) --.15 G(arts, b)-2.5 E(ut it is k)-.2 E -(ept in the old single script style.)-.1 E .4 LW 86 614.4 81 614.4 DL 86 -609.4 86 614.4 DL 81 609.4 86 609.4 DL 81 614.4 81 609.4 DL(Ne)91.5 -614.4 Q 7.488(wo)-.25 G 4.988(ptions: \255\255te)-7.488 F 4.988 -(xt \(\255\255mode te)-.15 F 4.988(xt\), \255\255tty-vie)-.15 F(wer)-.25 -E 7.488<2cad>-.4 G 4.988(\255X \(\255\255mode X\), \255\255X-vie)-7.488 -F(wer)-.25 E 7.488<2cad>-.4 G(\255html)-7.488 E -(\(\255\255mode html\), \255\255html-vie)91.5 626.4 Q 1.3 -.65(w, \255) --.25 H(\255apropos-data, \255\255apropos-de).65 E -.15(ve)-.25 G -(l, \255\255apropos-progs.).15 E 86 645.6 81 645.6 DL 86 640.6 86 645.6 -DL 81 640.6 86 640.6 DL 81 645.6 81 640.6 DL(Ne)91.5 645.6 Q 2.5(wd)-.25 -G(ocumentation \214le README_SH.)-2.5 E 86 664.8 81 664.8 DL 86 659.8 86 -664.8 DL 81 659.8 86 659.8 DL 81 664.8 81 659.8 DL -(Enhancement of the con\214guration \214les and the `apropos' handling.) -91.5 664.8 Q F1(macr)72 688.8 Q 2.5(op)-.18 G(ackages)-2.5 E F0 5<8377> -72 708 S(ww)-5 E(.tmac: Ne)-.65 E 2.5(wm)-.25 G(acro `JOBN)-2.5 E -(AME' to split output into multiple \214les.)-.35 E 0 Cg EP -%%Page: 7 7 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-7-)282.17 48 Q 5<8349>72 84 S 2.5(nm)-5 G -(doc, multiple calls to `.Lb' are no)-2.5 E 2.5(ws)-.25 G -(upported in the LIBRAR)-2.5 E 2.5(Ys)-.65 G(ection.)-2.5 E/F1 10 -/Times-Bold@0 SF(NEWS VERSION 1.19)72 108 Q(tr)72 132 Q(off)-.18 E F0 5 -<8349>72 151.2 S 1.78(nput encoding \214les for latin-9 \(a.k.a. latin-\ -0 and ISO 8859-15\) and latin-2 \(ISO 8859-2\) ha)-5 F 2.08 -.15(ve b) --.2 H(een).15 E 2.5(added. Example)80.5 163.2 R(use:)2.5 E/F2 10 -/Courier@0 SF(groff -Tdvi -mlatin9 my_file > my_file.dvi)92 178.8 Q F0 --1.1(Yo)80.5 194.4 S 2.888(us)1.1 G .387 -(till need proper fonts with the necessary glyphs.)-2.888 F .387 -(Out of the box, the grof)5.387 F 2.887(fp)-.25 G .387 -(ackage supports latin-9)-2.887 F(only for \255Tps, \255Tdvi, and \255T) -80.5 206.4 Q(utf8, and latin-2 only for \255Tdvi and \255T)-.45 E(utf8.) --.45 E 5<8343>72 225.6 S .358(omposite glyphs are no)-5 F 2.858(ws)-.25 -G 2.858(upported. T)-2.858 F 2.858(od)-.8 G 2.858(ot)-2.858 G .358 -(his, a subset of the Adobe Glyph List \(A)-2.858 F .359 -(GL\) Algorithm as)-.4 F(described in)80.5 237.6 Q 0 0 1 Cr -(http://partners.adobe.com/asn/tech/type/unicode)2.5 E(gn.jsp)-.15 E 0 -Cg/F3 10/Symbol SF2.5 E F2(http://)A -(partners.adobe.com/asn/tech/type/unicodegn.jsp)80.5 249.6 Q F3A F0 -1.907(is used to construct glyph names)4.406 F 1.1 -(based on Unicode character codes.)80.5 261.6 R 1.1(The e)6.1 F 1.1 -(xisting grof)-.15 F 3.6(fg)-.25 G 1.1 -(lyph names are frozen; no glyph names which)-3.6 F(can')80.5 273.6 Q -2.5(tb)-.18 G 2.5(ec)-2.5 G -(onstructed algorithmically will be added in the future.)-2.5 E -(The \\[...] escape sequence has been e)80.5 289.2 Q -(xtended to specify multiple glyph components.)-.15 E(Example:)5 E F2 -(\\[A ho])92 304.8 Q F0 -(this accesses a glyph with the name `u0041_0328'.)80.5 320.4 Q .866 -(Some grof)80.5 336 R 3.366(fg)-.25 G .867(lyphs which are useful as co\ -mposites map to `wrong' Unicode code points.)-3.366 F -.15(Fo)5.867 G -3.367(re).15 G(xample,)-3.517 E .508(`ho' maps to U+02DB which is a spa\ -cing ogonek, whereas a non-spacing ogonek U+0328 is needed for)80.5 348 -R(composite glyphs.)80.5 360 Q(The ne)5 E 2.5(wr)-.25 G(equest)-2.5 E F2 -(.composite from to)92 375.6 Q F0 1.979 -(will change the mapping while a composite glyph name is constructed.) -80.5 391.2 R 3.58 -.8(To m)6.98 H(ak).8 E 4.48(e\\)-.1 G 1.98 -([A ho] yield the)-4.48 F -.15(ex)80.5 403.2 S(pected result,).15 E F2 -(.composite ho u0328)92 418.8 Q F0 .79(is needed.)80.5 434.4 R .79 -([The ne)5.79 F 3.29<778c>-.25 G .79(le `composite.tmac' loaded at star\ -t-up already contains proper calls to `.compos-)-3.29 F(ite'.])80.5 -446.4 Q(Please refer to the info pages of grof)80.5 462 Q 2.5(fa)-.25 G -(nd to the grof)-2.5 E(f_char man page for more details.)-.25 E 5<8341> -72 481.2 S(ne)-2.464 E 2.536(wr)-.25 G .037 -(equest `fschar' has been added to de\214ne font-speci\214c f)-2.536 F -.037(allback characters.)-.1 F(The)5.037 E 2.537(ya)-.15 G .037 -(re searched after)-2.537 F -(the list of fonts declared with the `fspecial' request b)80.5 493.2 Q -(ut before the list of fonts declared with `special'.)-.2 E 5<8346>72 -512.4 S(allback characters de\214ned with `fschar' can be remo)-5.15 E --.15(ve)-.15 G 2.5(dw).15 G(ith the ne)-2.5 E 2.5(w`)-.25 G -(rfschar' request.)-2.5 E 5<8341>72 531.6 S(ne)-1.615 E 3.385(wr)-.25 G -.885(equest `schar' has been added to de\214ne global f)-3.385 F .884 -(allback characters.)-.1 F(The)5.884 E 3.384(ya)-.15 G .884 -(re searched after the)-3.384 F -(list of fonts declared with the `special' request b)80.5 543.6 Q -(ut before the already mounted special fonts.)-.2 E 5<8349>72 562.8 S -3.469(ng)-5 G(rof)-3.469 E 3.469(fv)-.25 G .969 -(ersions 1.18 and 1.18.1, \\D'f ...)-3.619 F 3.469('d)-.7 G(idn')-3.469 -E 3.469(tm)-.18 G 1.269 -.15(ove t)-3.469 H .97 -(he current point horizontally).15 F 5.97(.D)-.65 G .97(espite of being) --5.97 F(silly)80.5 574.8 Q 3.371(,t)-.65 G .871(his change has been re) --3.371 F -.15(ve)-.25 G .871(rted for backw).15 F .871 -(ards compatibility)-.1 F 5.871(.C)-.65 G(onsequently)-5.871 E 3.371(,t) --.65 G .87(he intermediate output)-3.371 F(command `Df)80.5 586.8 Q 2.5 -('a).55 G(lso mo)-2.5 E -.15(ve)-.15 G 2.5(st).15 G -(he position horizontally ag)-2.5 E(ain.)-.05 E .91(\\D'f ...)80.5 602.4 -R 3.41('i)-.7 G 3.41(sd)-3.41 G .91(eprecated since it depends on the h\ -orizontal resolution of the output de)-3.41 F .91(vice \(gi)-.25 F -.15 -(ve)-.25 G 3.41(nw).15 G .91(ith the)-3.41 F -(`hor' parameter in the DESC \214le\).)80.5 614.4 Q(Use the ne)5 E 2.5 -(w\\)-.25 G(D'Fg ...)-2.5 E 2.5('e)-.7 G(scape instead.)-2.5 E 5<8346>72 -633.6 S(or orthogonality)-5.15 E 2.5(,n)-.65 G .5 -.25(ew \\)-2.5 H 2.5 -(Ds).25 G(ubcommands to change the \214ll color are a)-2.5 E -.25(va)-.2 -G(ilable:).25 E F2(\\D'Fr ...')92 649.2 Q F0(\(r)6 E(gb\))-.18 E F2 -(\\D'Fc ...')92 661.2 Q F0(\(cmy\))6 E F2(\\D'Fg ...')92 673.2 Q F0 -(\(gray\))6 E F2(\\D'Fk ...')92 685.2 Q F0(\(cmyk\))6 E F2(\\D'Fd')92 -697.2 Q F0(\(def)6 E(ault color\))-.1 E(The ar)80.5 712.8 Q -(guments are the same as with the `defcolor' request.)-.18 E -(The current position is)5 E/F4 10/Times-Italic@0 SF(not)2.5 E F0 -(changed.)2.5 E 0 Cg EP -%%Page: 8 8 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-8-)282.17 48 Q 5<8354>72 84 S 1.282(he v)-5 F -1.282(alues set with \\H and \\S are no)-.25 F 3.782(wa)-.25 G -.25(va) --3.982 G 1.282(ilable in number re).25 F 1.282 -(gisters \\n[.height] and \\n[.slant], respec-)-.15 F(ti)80.5 96 Q -.15 -(ve)-.25 G(ly).15 E(.)-.65 E 5<8354>72 115.2 S .356(he `.pe' number re) --5 F .357(gister isn')-.15 F 2.857(tn)-.18 G .857 -.25(ew b)-2.857 H -.357(ut hasn').05 F 2.857(tb)-.18 G .357(een documented before.)-2.857 F -.357(It is set to 1 during a page ejec-)5.357 F -(tion caused by the `bp' request.)80.5 127.2 Q 5<8354>72 146.4 S(he ne) --5 E 2.5(wg)-.25 G(lyph symbol `tno' is a te)-2.5 E(xtual v)-.15 E -(ariant of `no'.)-.25 E 5<8354>72 165.6 S .143(he ne)-5 F 2.643(wg)-.25 -G .142(lyph symbol `+e' represents U+03F5, GREEK LUN)-2.643 F -1.11(AT) --.35 G 2.642(EE)1.11 G .142(PSILON SYMBOL.)-2.642 F(\(W)5.142 E .142 -(ell, it is not)-.8 F .41(really ne)80.5 177.6 R 2.91(ws)-.25 G .41 -(ince it has been pre)-2.91 F .41(viously supported by grolj4.\))-.25 F -.41(The mapping for both the dvi and lj4 sym-)5.41 F .423(bol font has \ -been changed accordingly so that Greek small letter epsilon, `*e', has \ -the same glyph shape)80.5 189.6 R(as with other de)80.5 201.6 Q(vices.) --.25 E/F1 10/Times-Bold@0 SF(gr)72 225.6 Q(ops)-.18 E F0 5<8354>72 244.8 -S(he font `freeeuro.pf)-5 E(a' has been added to pro)-.1 E(vide v)-.15 E -(arious def)-.25 E(ault glyph shapes for `eu' and `Eu'.)-.1 E 5<8349>72 -264 S 3.387(ti)-5 G 3.387(sn)-3.387 G 1.387 -.25(ow p)-3.387 H .887 -(ossible to access all glyphs in a T).25 F .887 -(ype 1 font, not only 256 \(pro)-.8 F .888 -(vided the font \214le created by)-.15 F(afmtodit has proper entries\).) -80.5 276 Q(grops constructs additional encoding v)5 E -(ectors on the \215y if necessary)-.15 E(.)-.65 E 5<8354>72 295.2 S -1.359(he paper size is no)-5 F 3.858(we)-.25 G 1.358 -(mitted via the %%DocumentMedia and P)-3.858 F 1.358 -(ageSize mechanisms so that it is no)-.15 F .095 -(longer required to tell `gv' or `ps2pdf)80.5 307.2 R 2.595('a).55 G -.096(bout the paper size.)-2.595 F .096(The `brok)5.096 F .096 -(en' \215ag v)-.1 F .096(alue 16 omits this feature)-.25 F 1.073 -(\(the used PostScript command `setpagede)80.5 319.2 R 1.072 -(vice' is a LanguageLe)-.25 F -.15(ve)-.25 G 3.572(l2e).15 G 3.572 -(xtension\). P)-3.722 F 1.072(atch by)-.15 F 0 0 1 Cr 1.072(Egil Kv) -3.572 F(ale-)-.25 E(ber)80.5 331.2 Q(g)-.18 E 0 Cg/F2 10/Symbol SF -2.5 E/F3 10/Courier@0 SF(egil@kvaleberg.no)A F2A F0(.)A 5<834e>72 -350.4 S .669(on-slanted PostScript metrics ha)-5 F .969 -.15(ve b)-.2 H -.669(een changed ag).15 F .669(ain; the)-.05 F 3.169(yn)-.15 G 3.169(ol) --3.169 G .669(onger contain ne)-3.169 F -.05(ga)-.15 G(ti).05 E .97 -.15 -(ve l)-.25 H .67(eft italic cor).15 F(-)-.2 E(rection v)80.5 362.4 Q 2.5 -(alues. This)-.25 F(assures correct spacing with eqn.)2.5 E F1(gr)72 -386.4 Q(odvi)-.18 E F0 5<8354>72 405.6 S .595(he font cmte)-5 F .595 -(x10 has been added as the special font `SC' to the D)-.15 F .595 -(VI fonts.)-.4 F .595(It is used as a font-speci\214c)5.595 F -(special font for CW and CWI.)80.5 417.6 Q 5<834e>72 436.8 S 1.367 -.25 -(ew o)-5 H .867(ptions \255l and \255p to set landscape orientation and\ - the paper size.).25 F .867(grodvi no)5.867 F 3.367(we)-.25 G .867 -(mits a `papersize')-3.367 F(special which is understood by D)80.5 448.8 -Q(VI dri)-.4 E -.15(ve)-.25 G(rs lik).15 E 2.5(ed)-.1 G(vips.)-2.5 E -(Consequently)80.5 464.4 Q 2.5(,t)-.65 G -(he DESC \214le should contain a `papersize' k)-2.5 E -.15(ey)-.1 G -.1 -(wo).15 G(rd.).1 E 5<8354>72 483.6 S .278 -(he glyph shapes for \\[*f] and \\[*e] ha)-5 F .577 -.15(ve b)-.2 H .277 -(een e).15 F .277(xchanged with \\[+f] and \\[+e], respecti)-.15 F -.15 -(ve)-.25 G(ly).15 E 2.777(,t)-.65 G 2.777(ob)-2.777 G 2.777(ei)-2.777 G -2.777(ns)-2.777 G(ync)-2.777 E(with all other de)80.5 495.6 Q(vices.) --.25 E 5<8347>72 514.8 S .025(lyphs \\[HE] and \\[DI] ha)-5 F .325 -.15 -(ve b)-.2 H .025(een replaced with \\[u2662] and \\[u2661], respecti).15 -F -.15(ve)-.25 G(ly).15 E 2.526(,s)-.65 G .026(ince the former tw)-2.526 -F(o)-.1 E(glyphs ha)80.5 526.8 Q .3 -.15(ve a b)-.2 H -(lack \(\214lled\) shape which grodvi doesn').15 E 2.5(tp)-.18 G(ro)-2.5 -E(vide by def)-.15 E(ault \(it ne)-.1 E -.15(ve)-.25 G 2.5(rh).15 G -(as actually\).)-2.5 E F1(gr)72 550.8 Q(olj4)-.18 E F0 5<8354>72 570 S -(he glyphs \\[*e] and \\[+e] ha)-5 E .3 -.15(ve b)-.2 H(een e).15 E -(xchanged to be in sync with all other de)-.15 E(vices.)-.25 E 5<8354>72 -589.2 S(he glyph \\[~=] is no)-5 E 2.5(wc)-.25 G(alled \\[|=].)-2.5 E -(Similar to other de)5 E(vices, \\[~=] is no)-.25 E 2.5(wa)-.25 G -(nother name for glyph \\[~~].)-2.5 E F1(gr)72 613.2 Q(otty)-.18 E F0 5 -<834e>72 632.4 S 1.024 -.25(ew o)-5 H .524(ption `\255r'.).25 F .524 -(It is similar to the \255i option e)5.524 F .524 -(xcept it tells grotty to use the `re)-.15 F -.15(ve)-.25 G .524 -(rse video' attrib).15 F .524(ute to)-.2 F(render italic fonts.)80.5 -644.4 Q F1(pic)72 668.4 Q F0 5<834e>72 687.6 S .5 -.25(ew c)-5 H -(ommand `\214gname' to set the name of a picture').25 E 2.5(so)-.55 G -(utput box in T)-2.5 E(eX mode.)-.7 E 0 Cg EP -%%Page: 9 9 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-9-)282.17 48 Q/F1 10/Times-Bold@0 SF -.18(re)72 -84 S(fer).18 E F0 5<8354>72 103.2 S .062(he en)-5 F .062(vironment v)-.4 -F .062(ariable `REFER' to o)-.25 F -.15(ve)-.15 G .062 -(rride the name of the def).15 F .063(ault database isn')-.1 F 2.563(tn) --.18 G .563 -.25(ew b)-2.563 H .063(ut hasn').05 F 2.563(tb)-.18 G(een) --2.563 E(documented before.)80.5 115.2 Q F1(soelim)72 139.2 Q F0 5<834e> -72 158.4 S .5 -.25(ew o)-5 H(ption `\255r' to a).25 E -.2(vo)-.2 G -(id emission of `.lf).2 E 2.5('l).55 G(ines.)-2.5 E 5<834e>72 177.6 S -.575 -.25(ew o)-5 H .075(ption `\255t' to emit T).25 F .075 -(eX comment lines \(gi)-.7 F .074 -(ving current \214le and the line number\) instead of `.lf)-.25 F 2.574 -('l).55 G(ines.)-2.574 E F1(afmtodit)72 201.6 Q F0 5<8355>72 220.8 S -.767 -(nencoded glyphs in an AFM \214le are output also \(since grops can no) --5 F 3.268(we)-.25 G .768(mit multiple encoding v)-3.268 F(ectors)-.15 E -(for a single font\).)80.5 232.8 Q 5<834e>72 252 S .5 -.25(ew o)-5 H -(ption `\255m' to pre).25 E -.15(ve)-.25 G(nt ne).15 E -.05(ga)-.15 G -(ti).05 E .3 -.15(ve l)-.25 H(eft italic correction v).15 E(alues.)-.25 -E 5<8354>72 271.2 S .593 -(he mapping and encoding \214le together with \214le `DESC' are no)-5 F -3.092(ws)-.25 G .592(earched in the def)-3.092 F .592 -(ault font directory)-.1 F 2.5(also. Please)80.5 283.2 R -(refer to the man page of afmtodit for more details.)2.5 E F1(macr)72 -307.2 Q 2.5(op)-.18 G(ackages)-2.5 E F0<83>72 326.4 Q 0 0 1 Cr(Larry K)5 -E(ollar)-.35 E 0 Cg/F2 10/Symbol SF2.5 E/F3 10/Courier@0 SF -(kollar@alltel.net)A F2A F0 -(and others made the man macros more customizable.)2.5 E .4 LW 86 345.6 -81 345.6 DL 86 340.6 86 345.6 DL 81 340.6 86 340.6 DL 81 345.6 81 340.6 -DL(Ne)91.5 345.6 Q 3.65(wc)-.25 G 1.15(ommand line options \255rFT)-3.65 -F 3.65<2cad>-.74 G 1.15(rIN, and \255rSN to set the v)-3.65 F 1.15 -(ertical location of the footer line, the)-.15 F(body te)91.5 357.6 Q -(xt indentation, and the sub-subheading indentation.)-.15 E 86 376.8 81 -376.8 DL 86 371.8 86 376.8 DL 81 371.8 86 371.8 DL 81 376.8 81 371.8 DL -(Ne)91.5 376.8 Q 2.5(wc)-.25 G -(ommand line option \255rHY \(similar to the ms macros\) to control h) --2.5 E(yphenation.)-.05 E 86 396 81 396 DL 86 391 86 396 DL 81 391 86 -391 DL 81 396 81 391 DL(Ne)91.5 396 Q 3.099(wm)-.25 G .599 -(acros `.PT' and `.BT' to print the header and footer strings.)-3.099 F -(The)5.599 E 3.099(yc)-.15 G .599(an be replaced with a cus-)-3.099 F -(tomized v)91.5 408 Q(ersion in `man.local'.)-.15 E 86 427.2 81 427.2 DL -86 422.2 86 427.2 DL 81 422.2 86 422.2 DL 81 427.2 81 422.2 DL -(The string `HF' no)91.5 427.2 Q 2.5(wh)-.25 G(olds the typef)-2.5 E -(ace to print headings and subheadings.)-.1 E 86 446.4 81 446.4 DL 86 -441.4 86 446.4 DL 81 441.4 86 441.4 DL 81 446.4 81 441.4 DL 1.015 -(Similar to the ms macros, the L)91.5 446.4 R 3.515(Tr)-.92 G -.15(eg) --3.515 G 1.015(ister no).15 F 3.515(wd)-.25 G(ef)-3.515 E 1.015 -(aults to LL if not e)-.1 F 1.015(xplicitly speci\214ed on the com-)-.15 -F(mand line.)91.5 458.4 Q 5<8374>72 477.6 S(rof)-5 E .55(f')-.25 G 3.568 -(ss)-1.1 G 1.068(tart-up \214le `trof)-3.568 F 1.068(frc' no)-.25 F -3.568(wi)-.25 G 1.067 -(ncludes `papersize.tmac' to set the paper size with the command line) --3.568 F(option `-dpaper='.)80.5 489.6 Q .13(Possible v)80.5 505.2 -R .13(alues for `' are the same as the prede\214ned `papersize' v) --.25 F .131(alues in the DESC \214le \(only lo)-.25 F(w-)-.25 E .104 -(ercase; see the grof)80.5 517.2 R .104(f_font man page\) e)-.25 F .103 -(xcept a7-d7.)-.15 F .103 -(An appended `l' \(ell\) character denotes landscape ori-)5.103 F 2.5 -(entation. Examples:)80.5 529.2 R(`a4', `c3l', `letterl'.)2.5 E 1.002 -(Most output dri)80.5 544.8 R -.15(ve)-.25 G 1.002 -(rs need additional command line switches `\255p' and `\255l' to o).15 F --.15(ve)-.15 G 1.002(rride the def).15 F 1.002(ault paper)-.1 F -(length and orientation as set in the dri)80.5 556.8 Q -.15(ve)-.25 G -2.5(rs).15 G(peci\214c DESC \214le.)-2.5 E -.15(Fo)80.5 572.4 S 2.5(re) -.15 G(xample, use the follo)-2.65 E -(wing for PS output on A4 paper in landscape orientation:)-.25 E F3 -(groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps)92 588 Q F1 -(NEWS VERSION 1.18.1)72 612 Q(tr)72 636 Q(off)-.18 E F0 5<8354>72 655.2 -S .525(he non-slanted PostScript font de\214nition \214les ha)-5 F .825 --.15(ve b)-.2 H .525(een re).15 F .524 -(generated to include left and right italic cor)-.15 F(-)-.2 E .125 -(rection v)80.5 667.2 R 2.625(alues. Applying)-.25 F .125 -(those to a glyph \(this is, prepending the glyph with `\\,)2.625 F -2.626('a)-.7 G .126(nd appending `\\/' to the)-2.626 F .268 -(glyph\) sets the glyph width to the real v)80.5 679.2 R .268(alue gi) --.25 F -.15(ve)-.25 G 2.768(nb).15 G 2.768(yt)-2.768 G .267 -(he horizontal bounding box v)-2.768 F 2.767(alues. W)-.25 F .267 -(ithout those)-.4 F(escapes, the adv)80.5 691.2 Q -(ance width for the particular glyph is used \(which can dif)-.25 E -(fer considerably\).)-.25 E .373 -(Most users will neither need this feature nor notice a dif)80.5 706.8 R -.373(ference in e)-.25 F .373(xisting documents \(pro)-.15 F .373 -(vided \\, and \\/)-.15 F .083(is used as adv)80.5 718.8 R .083 -(ertised, namely for italic fonts only\); its main goal is to impro)-.15 -F .382 -.15(ve i)-.15 H .082(mage generation with gro-).15 F(html.)80.5 -730.8 Q 0 Cg EP -%%Page: 10 10 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-10-)279.67 48 Q(This is an e)80.5 84 Q -(xperimental change, and feedback is welcome.)-.15 E/F1 10/Times-Bold@0 -SF(tbl)72 108 Q F0 5<8341>72 127.2 S(dded global option `nospaces' to i\ -gnore leading and trailing spaces in data items.)-5 E F1(gr)72 151.2 Q -(olbp)-.18 E F0 5<8354>72 170.4 S .024(he option \255w \(\255\255line)-5 -F .025(width\) has been added \(similar to other de)-.25 F .025 -(vice dri)-.25 F -.15(ve)-.25 G .025(rs\) to set the def).15 F .025 -(ault line width.)-.1 F F1(gr)72 194.4 Q(n)-.15 E F0 5<8353>72 213.6 S -(upport for b-spline and Bezier curv)-5 E(es has been added.)-.15 E F1 -(gr)72 237.6 Q(offer)-.18 E F0 5<834e>72 256.8 S .5 -.25(ew o)-5 H -(ption \255\255shell to select the shell under wich grof).25 E -(fer shall run.)-.25 E F1(Macr)72 280.8 Q 2.5(oP)-.18 G(ackages)-2.6 E -F0 5<8354>72 300 S(he string `)-5 E(Am' \(producing an ampersand\) has \ -been added to mdoc for compatibility with NetBSD.)-.8 E 5<8360>72 319.2 -S(.IX' is no)-5 E 2.5(wd)-.25 G -(eprecated for mom; you should use `.IQ' \(Indent Quit\) instead.)-2.5 E -5<8349>72 338.4 S 3.306(nm)-5 G .806(om, ne)-3.306 F 3.306(wi)-.25 G -.806(nlines `FWD', `BCK', `UP', and `DO)-3.306 F .805 -(WN' deal with horizontal and v)-.35 F .805(ertical mo)-.15 F -.15(ve) --.15 G(ments;).15 E(please refer to contrib/mom/NEWS for more details.) -80.5 350.4 Q 5<834e>72 369.6 S .5 -.25(ew m)-5 H(acro ENDNO).25 E -(TES_HDRFTR_CENTER for mom to better control headers.)-.4 E F1 -(Miscellaneous)72 393.6 Q F0 5<8354>72 412.8 S .239(he `papersize' k)-5 -F -.15(ey)-.1 G -.1(wo).15 G .239(rd in the DESC \214le no).1 F 2.739 -(wa)-.25 G .239(ccepts multiple ar)-2.739 F 2.74(guments. It)-.18 F .24 -(is scanned from left to the)2.74 F(right, and the \214rst v)80.5 424.8 -Q(alid ar)-.25 E(gument is used.)-.18 E(This mak)5 E -(es it possible to pro)-.1 E(vide a f)-.15 E(allback paper size.)-.1 E -(Example:)80.5 440.4 Q/F2 10/Courier@0 SF(papersize /etc/papersize a4)92 -456 Q F0 5<8341>72 475.2 S .065 -(local font directory has been prepended to the def)-2.435 F .064 -(ault font path; it def)-.1 F .064(aults to /usr/share/grof)-.1 F -(f/site-)-.25 E 2.5(font. Similar)80.5 487.2 R -(to the normal font searching process, \214les must be placed into a de) -2.5 E(v)-.25 E/F3 10/Times-Italic@0 SF(XXX)A F0(subdirectory)2.5 E 2.5 -(,e)-.65 G(.g.)-2.5 E F2(/usr/share/groff/site-font/devps/FOO)92 -502.8 Q F0(for a PostScript font de\214nition \214le FOO.)80.5 518.4 Q -F1(NEWS VERSION 1.18)72 542.4 Q F0 1.05 -(This section describes recent user)72 558 R 1.051 -(-visible changes in grof)-.2 F 3.551(f. Bug)-.25 F<8c78>3.551 E 1.051 -(es are not described.)-.15 F 1.051(There are more)6.051 F -(details in the man pages.)72 570 Q 1 0 0 Cr/F4 15/Times-Roman@0 SF -(Please read the changes belo)84.27 585.6 Q 3.75(wr)-.375 G -3.375 -.225 -(eg a)-3.75 H(rding grotty).225 E 3.75(,g)-.975 G(rof)-3.75 E .825(f') --.375 G 3.75(st)-1.65 G(ty frontend.)-3.75 E 0 Cg F1 -1.2 -.74(Tr o)72 -609.6 T(ff).74 E F0 5<8343>72 628.8 S .084 -(olor support has been added to trof)-5 F 2.583(fa)-.25 G .083 -(nd pic \(and to the de)-2.583 F .083(vice dri)-.25 F -.15(ve)-.25 G -.083(rs grops, grodvi, grotty).15 F 2.583(,a)-.65 G .083(nd grohtml) --2.583 F 1.67(-- other preprocessors and dri)80.5 640.8 R -.15(ve)-.25 G -1.671(rs will follo).15 F 4.171(w\). A)-.25 F(ne)4.171 E 4.171(wf)-.25 G -1.671(unction `defcolor' de\214nes colors; the escape)-4.171 F .278 -(sequence `\\m' sets the dra)80.5 652.8 R .278(wing color)-.15 F 2.777 -(,t)-.4 G .277 -(he escape sequence `\\M' speci\214es the background color for closed) --2.777 F 1.116(objects created with \\D'.)80.5 664.8 R 1.666(..)1.666 G -3.616('c)-2.366 G 3.616(ommands. `\\m[]')-3.616 F 1.117 -(and `\\M[]' switch back to the pre)3.616 F 1.117(vious color)-.25 F -6.117(.`)-.55 G 1.117(\\m' and)-6.117 F .862(`\\M' correspond to the ne) -80.5 676.8 R 3.362(wt)-.25 G(rof)-3.362 E 3.362(fo)-.25 G .862 -(utput command sets starting with `m' and `DF'.)-3.362 F .862(The de) -5.862 F(vice-speci\214c)-.25 E(def)80.5 688.8 Q -(ault color is called `def)-.1 E(ault' and can')-.1 E 2.5(tb)-.18 G 2.5 -(er)-2.5 G(ede\214ned.)-2.5 E .523 -(Use the `color' request to toggle the usage of colors \(def)80.5 704.4 -R .524(ault is on\); the read-only re)-.1 F .524 -(gister `.color' is 0 if)-.15 F(colors are not acti)80.5 716.4 Q -.15 -(ve)-.25 G 2.5(,a).15 G(nd non-zero otherwise.)-2.5 E 0 Cg EP -%%Page: 11 11 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-11-)279.67 48 Q .767(The old `Df)80.5 84 R -3.267('o).55 G .767 -(utput command is mapped onto `DFg'; all color output commands don') --3.267 F 3.267(tc)-.18 G .766(hange the cur)-3.267 F(-)-.2 E -(rent font position \(consequently)80.5 96 Q 2.5(,`)-.65 G -1.95(Df ') --2.5 F(doesn')2.5 E 2.5(te)-.18 G(ither\).)-2.5 E .138 -(Outputting color can be disabled in trof)80.5 111.6 R 2.638(fa)-.25 G -.138(nd grof)-2.638 F 2.638(fw)-.25 G .138 -(ith the option \255c \(it is al)-2.638 F -.1(wa)-.1 G .139 -(ys disabled in compatibil-).1 F(ity mode\).)80.5 123.6 Q -(See the section on grotty for the GR)5 E(OFF_NO_SGR en)-.4 E -(vironment v)-.4 E(ariable also.)-.25 E -.15(Fo)80.5 139.2 S 2.637(rd) -.15 G .137 -(e\214ning color components as fractions between 0 and 1, a ne)-2.637 F -2.636(ws)-.25 G .136(caling indicator `f)-2.636 F 2.636('h).55 G .136 -(as been de\214ned:)-2.636 F .701(1f = 65536u.)80.5 151.2 R -.15(Fo) -5.701 G 3.201(rt).15 G .701 -(esting whether a color is de\214ned \(with .if and .ie\), a ne)-3.201 F -3.201(wc)-.25 G .701(onditional operator `m' is)-3.201 F -.2(av)80.5 -163.2 S(ailable.)-.05 E(More details can be found in the grof)80.5 178.8 -Q(f_dif)-.25 E(f.7 manual page and in grof)-.25 E(f.te)-.25 E(xinfo.) --.15 E 5<8353>72 198 S .598 -(imilar to \\m and \\M, \\f[] switches back to the pre)-5 F .598 -(vious font.)-.25 F .598(\\fP \(and \\f[P]\) is still v)5.598 F .597 -(alid for backw)-.25 F(ards)-.1 E(compatibility)80.5 210 Q(.)-.65 E 5 -<8354>72 229.2 S .156(he ne)-5 F 2.656(we)-.25 G .157 -(scape \\F is the same as `.f)-2.656 F .157 -(am'; \\F[] switches back to pre)-.1 F .157(vious f)-.25 F .157 -(amily -- \\F[P] selects f)-.1 F .157(amily `P'.)-.1 F 5<8354>72 248.4 S -.517 -.1(wo n)-5.8 H .817 -.25(ew g).1 H .317(lyph symbols are a).25 F --.25(va)-.2 G .317(ilable: `eu' is the of).25 F .316 -(\214cial Euro symbol; `Eu' is a font-speci\214c glyph v)-.25 F(ari-) --.25 E(ant.)80.5 260.4 Q 5<8354>72 279.6 S(he ne)-5 E 2.5(wg)-.25 G -(lyph symbols `t+\255', `tdi', and `tmu' are te)-2.5 E(xtual v)-.15 E -(ariants of `+\255', `di', and `mu', respecti)-.25 E -.15(ve)-.25 G(ly) -.15 E(.)-.65 E 5<834c>72 298.8 S 1.275 -(atin-1 character 181 \(PS name `mu', Unicode name U+00B5 MICR)-5 F -3.775(OS)-.4 G 1.276(IGN\) has got the trof)-3.775 F 3.776(fg)-.25 G -(lyph)-3.776 E(name `mc'.)80.5 310.8 Q 5<83ad>72 330 S -.45(Tu)-5 G -(tf8 is no).45 E 2.5(wa)-.25 G -.25(va)-2.7 G(ilable on EBCDIC hosts.) -.25 E 5<8353>72 349.2 S(trings can tak)-5 E 2.5(ea)-.1 G -.18(rg)-2.5 G -(uments, using this syntax: \\*[foo ar).18 E(g1 ar)-.18 E(g2 .)-.18 E -1.666(..)1.666 G 2.5(]. Example:)-1.666 F/F1 10/Courier@0 SF -(.ds xxx This is a \\\\$1 test.)92 364.8 Q(\\*[xxx nice])92 376.8 Q F0 5 -<8349>72 396 S 2.764(ti)-5 G 2.764(sn)-2.764 G .764 -.25(ow p)-2.764 H -.264(ossible to ha).25 F .564 -.15(ve w)-.2 H .264(hitespace between th\ -e \214rst and second dot \(or the name of the ending macro\)).15 F -(to end a macro de\214nition.)80.5 408 Q(Example:)5 E F1(.de !)92 423.6 -Q(..)92 435.6 Q(.)92 447.6 Q(.de foo)92 459.6 Q 12(.n)92 471.6 S -(op Hello, I'm `foo'.)-12 E 12(.n)92 483.6 S -(op I will now define `bar'.)-12 E 12(.d)92 495.6 S 6(eb)-12 G(ar !)-6 E -24(.n)92 507.6 S(op Hello, I'm `bar'.)-24 E 12(.!)92 519.6 S(..)92 531.6 -Q F0 5<8360>72 550.8 S 1.087(.fn' is a ne)-5 F 3.587(ws)-.25 G(tring-v) --3.587 E 1.087(alued re)-.25 F 1.088 -(gister which returns the \(internal\) real font name; styles and f)-.15 -F 1.088(amilies are)-.1 F(properly concatenated.)80.5 562.8 Q 5<8354>72 -582 S .743(hree ne)-5 F 3.243(wr)-.25 G .742(ead/write re)-3.243 F .742 -(gisters `seconds', `minutes', and `hours' contain the current time, se\ -t at start-up)-.15 F(of trof)80.5 594 Q 2.5(f. Use)-.25 F(the `af)2.5 E -2.5('r).55 G(equest to control their output format.)-2.5 E 5<8354>72 -613.2 S .569(he ne)-5 F 3.069(wr)-.25 G .569 -(equest `fchar' can be used to pro)-3.069 F .569(vide f)-.15 F .569 -(allback characters.)-.1 F .57(It has the same syntax as the `char')5.57 -F .229(request; the only dif)80.5 625.2 R .229(ference is that a charac\ -ter de\214ned with `.char' hides the glyph with the same name in)-.25 F -1.215 -(the current font, whereas a character de\214ned with `.fchar' is check) -80.5 637.2 R 1.216(ed only if the particular glyph isn')-.1 F(t)-.18 E -(found in the current font.)80.5 649.2 Q -(This test happens before checking special fonts.)5 E 5<8349>72 668.4 S -2.5(na)-5 G -(nalogy to the `tmc' request, `.writec' is the same as `.write' b)-2.5 E -(ut doesn')-.2 E 2.5(te)-.18 G(mit a \214nal ne)-2.5 E(wline.)-.25 E 5 -<8354>72 687.6 S(he ne)-5 E 2.5(wr)-.25 G(equest `itc' is a v)-2.5 E(ar\ -iant of `.it' for which a line interrupted with \\c counts as one input\ - line.)-.25 E 5<8354>72 706.8 S .375 -.1(wo n)-5.8 H .675 -.25(ew r).1 H -.175(equests `ds1' and `as1' which are similar to `ds' and `as' b).25 F -.174(ut with compatibility mode disabled)-.2 F(during e)80.5 718.8 Q -(xpansion of strings de\214ned by them.)-.15 E 0 Cg EP -%%Page: 12 12 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-12-)279.67 48 Q 5<8354>72 84 S .73(he syntax o\ -f the `substring' request has been changed: The \214rst character in a \ -string no)-5 F 3.231(wh)-.25 G .731(as inde)-3.231 F 3.231(x0)-.15 G(,) --3.231 E(the last character has inde)80.5 96 Q 2.5<78ad>-.15 G 2.5 -(1. Note)-2.5 F(that this is an incompatible change.)2.5 E 5<8354>72 -115.2 S 2.863(oe)-5.8 G .363 -(mit strings directly to the intermediate output, a ne)-2.863 F 2.863 -(w`)-.25 G .363(output' request has been added; it is similar to)-2.863 -F(`\\!' used at the top le)80.5 127.2 Q -.15(ve)-.25 G(l.).15 E 5<8360> -72 146.4 S -1.95(.hpf ')-5 F 1.05(has been e)3.55 F 3.55(xtended. It) --.15 F 1.051(can no)3.551 F 3.551(wh)-.25 G 1.051(andle most T)-3.551 F -1.051(eX h)-.7 F 1.051 -(yphenation pattern \214les without modi\214cation.)-.05 F 4.718 -.8 -(To d)80.5 158.4 T 5.618(ot).8 G 3.118 -(hat, the commands \\patterns, \\h)-5.618 F 3.118 -(yphenation, and \\endinput are recognized.)-.05 F 3.117 -(Please refer to)8.117 F(grof)80.5 170.4 Q(f_dif)-.25 E -(f.7 for more information.)-.25 E 5<8360>72 189.6 S(hpfcode' is a ne)-5 -E 2.5(wr)-.25 G(equest to pro)-2.5 E -(vide an input encoding mapping for the `hpf)-.15 E 2.5('r).55 G -(equest.)-2.5 E 5<8354>72 208.8 S(he ne)-5 E 2.5(wr)-.25 G(equest `hpf) --2.5 E(a' appends h)-.1 E(yphenation patterns \(`hpf)-.05 E 2.5('r).55 G -(eplaces already e)-2.5 E(xisting patterns\).)-.15 E 5<8341>72 228 S(ne) --1.634 E 3.366(wr)-.25 G .867 -(equest `ami' \(append macro indirect\) has been added.)-3.366 F .867 -(The \214rst and second parameter of `ami')5.867 F 3.291(are tak)80.5 -240 R 3.291(en from string re)-.1 F 3.291 -(gisters rather than directly; this v)-.15 F 3.29 -(ery special request is needed to mak)-.15 F(e)-.1 E -(`trace.tmac' independent from the escape character \(which might e)80.5 -252 Q -.15(ve)-.25 G 2.5(nb).15 G 2.5(ed)-2.5 G(isabled\).)-2.5 E 5 -<8354>72 271.2 S .373(he ne)-5 F 2.873(wr)-.25 G .374 -(equest `sizes' is similar to the `sizes' command in DESC \214les.) --2.873 F .374(It e)5.374 F .374(xpects the same syntax; the)-.15 F -(data must be on a single line, and the \214nal `0' can be omitted.)80.5 -283.2 Q 5<8360>72 302.4 S .159(trin' \(translate input\) is a ne)-5 F -2.659(wr)-.25 G .159(equest which is similar to `tr' with the e)-2.659 F -.159(xception that the `asciify' request)-.15 F -(will use the character code \(if an)80.5 314.4 Q -(y\) before the character translation.)-.15 E(Example:)5 E/F1 10 -/Courier@0 SF(.trin ax)92 330 Q(.di xxx)92 342 Q(a)92 354 Q(.br)92 366 Q -(.di)92 378 Q(.xxx)92 390 Q(.trin aa)92 402 Q(.asciify xxx)92 414 Q -(.xxx)92 426 Q F0(The result is `x a'.)80.5 441.6 Q -(Using `tr', the result w)5 E(ould be `x x'.)-.1 E 5<8354>72 460.8 S -1.025(he request `pvs' isn')-5 F 3.526(tn)-.18 G -.25(ew)-3.526 G 3.526 -(,b)-.4 G 1.026(ut hasn')-3.726 F 3.526(tb)-.18 G 1.026 -(een documented before.)-3.526 F 1.026(It adds v)6.026 F 1.026 -(ertical space after a line has)-.15 F .846(been output.)80.5 472.8 R -.846(This mak)5.846 F .846(es it an alternati)-.1 F 1.145 -.15(ve t)-.25 -H 3.345(ot).15 G .845 -(he `ls' request to produce double-spaced documents.)-3.345 F(The)5.845 -E(read-only re)80.5 484.8 Q -(gister `.pvs' holds the current amount of the post-v)-.15 E -(ertical line space.)-.15 E 5<8346>72 504 S -(or compatibility with plan 9')-5.15 E 2.5(st)-.55 G(rof)-2.5 E -(f, multiple `pi' requests are supported:)-.25 E F1(.pi foo)92 519.6 Q -(.pi bar)92 531.6 Q F0(is no)80.5 547.2 Q 2.5(we)-.25 G(qui)-2.5 E -.25 -(va)-.25 G(lent to).25 E F1(.pi foo | bar)92 562.8 Q F0 5<8341>72 582 S -(ne)-1.625 E 3.375(we)-.25 G .875(scape sequence `\\O' is a)-3.375 F --.25(va)-.2 G .875(ilable to disable and enable glyph output.).25 F .876 -(Please see grof)5.876 F(f_dif)-.25 E(f.man)-.25 E(and grof)80.5 594 Q -(f.te)-.25 E(xinfo for more details.)-.15 E 5<8354>72 613.2 S .644(he e\ -scapes `\\%', `\\&', `\\\)', and `\\:' no longer cause an error in \\X;\ - the)-5 F 3.144(ya)-.15 G .644(re ignored no)-3.144 F 4.443 -.65(w. A) --.25 H(dditionally).65 E(`\\ ' and `\\~' are con)80.5 625.2 Q -.15(ve) --.4 G(rted to single space characters.).15 E 5<8354>72 644.4 S(he def)-5 -E(ault tab distance in nrof)-.1 E 2.5(fm)-.25 G(ode is no)-2.5 E 2.5(w0) --.25 G(.8i to be compatible with UNIX trof)-2.5 E(f.)-.25 E 5<8355>72 -663.6 S .624(sing the latin-1 input character 0xAD \(soft h)-5 F .624 -(yphen\) for the `shc' request w)-.05 F .625(as a bad idea.)-.1 F .625 -(Instead, it is)5.625 F(no)80.5 675.6 Q 2.806(wt)-.25 G .306 -(ranslated to `\\%', and the def)-2.806 F .305(ault h)-.1 F .305 -(yphenation character is ag)-.05 F .305(ain \\[h)-.05 F 2.805(y]. Note) --.05 F .305(that the glyph \\[shc] is)2.805 F -(not useful for typographic purposes; it only e)80.5 687.6 Q -(xists to ha)-.15 E .3 -.15(ve g)-.2 H -(lyph names for all latin-1 characters.).15 E 0 Cg EP -%%Page: 13 13 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-13-)279.67 48 Q/F1 10/Times-Bold@0 SF(Macr)72 -84 Q 2.5(oP)-.18 G(ackages)-2.6 E F0<83>72 103.2 Q 0 0 1 Cr .14 -(Peter Schaf)5 F(fter)-.25 E 0 Cg/F2 10/Symbol SF2.64 E/F3 10 -/Courier@0 SF(df191@ncf.ca)A F2A F0 .14(has contrib)2.64 F .14 -(uted a ne)-.2 F 2.64(wm)-.25 G .14 -(ajor macro package called `mom', mainly for)-2.64 F .533 -(non-scienti\214c writers, which tak)80.5 115.2 R .533(es care of man) --.1 F 3.033(yt)-.15 G .533(ypographic issues.)-3.033 F .533 -(It comes with a complete reference)5.533 F 1.098 -(\(in HTML format\) and some e)80.5 127.2 R 3.598(xamples. `mom')-.15 F -1.098(has been designed to format documents for PostScript)3.598 F -(output only)80.5 139.2 Q(.)-.65 E 5<8354>72 158.4 S .913 -.1(wo m)-5.8 -H .713(acros `).1 F -1.11(AT)-.8 G 3.213('\()1.11 G -1.11(AT)-3.213 G -.713(&T\) and `UC' \(Uni)1.11 F 2.012 -.65(v. o)-.25 H 3.212(fC).65 G -.712(alifornia\) ha)-3.212 F 1.012 -.15(ve b)-.2 H .712 -(een added to the man macros for com-).15 F -(patibility with older BSD releases.)80.5 170.4 Q 5<8342>72 189.6 S -1.002(oth the man and mdoc macro packages no)-5 F 3.503(wu)-.25 G 1.003 -(se the LL and L)-3.503 F 3.503(Tr)-.92 G -.15(eg)-3.503 G 1.003 -(isters for setting the line and title).15 F .406(length, respecti)80.5 -201.6 R -.15(ve)-.25 G .406(ly \(similar to those re).15 F .405 -(gisters in the ms macro package\).)-.15 F .405 -(If not set on the command line)5.405 F .787 -(or in a macro \214le loaded before the macro package itself, the)80.5 -213.6 R 3.288(yd)-.15 G(ef)-3.288 E .788(ault to 78n in nrof)-.1 F 3.288 -(fm)-.25 G .788(ode and 6.5i in)-3.288 F(trof)80.5 225.6 Q 2.5(fm)-.25 G -(ode.)-2.5 E 5<8354>72 244.8 S .002 -(he `\255xwidth' speci\214er in the mdoc macro package has been remo)-5 -F -.15(ve)-.15 G 2.502(d. Its).15 F .002(functionality is no)2.502 F -2.502(wi)-.25 G(nte)-2.502 E(grated)-.15 E(directly into `\255width'.) -80.5 256.8 Q(Similarly)5 E 2.5(,`)-.65 G(\255column' has been e)-2.5 E -(xtended to has this functionality also.)-.15 E 5<8341>72 276 S(ne)-2.5 -E 2.5(wm)-.25 G -(acro `Ex' has been added to the mdoc macro package to document an e) --2.5 E(xit status.)-.15 E 5<8360>72 295.2 S(trof)-5 E 2.694 -(f.man' has been split.)-.25 F(Dif)7.694 E 2.694(ferences to UNIX trof) --.25 F 5.194(fa)-.25 G 2.694(re no)-5.194 F 5.194(wd)-.25 G 2.694 -(ocumented in the ne)-5.194 F 5.194(wm)-.25 G 2.694(an page)-5.194 F -(`grof)80.5 307.2 Q(f_dif)-.25 E(f.man'.)-.25 E 5<8354>72 326.4 S .26 -(he PSPIC macro has been e)-5 F .26(xtended to w)-.15 F .26(ork with D) --.1 F .26(VI output \(`pspic.tmac' is no)-.4 F 2.76(wa)-.25 G .26 -(utomatically loaded)-2.76 F -(for \255Tdvi\), using a dvips special to load the EPS \214le.)80.5 -338.4 Q 5<8354>72 357.6 S(he trace.tmac package no)-5 E 2.5(wt)-.25 G -(races calls to `am' also.)-2.5 E(Additionally)5 E 2.5(,i)-.65 G 2.5(tw) --2.5 G(orks in compatibility mode.)-2.6 E 5<8360>72 376.8 S(trof)-5 E -3.508(f.1' has been split.)-.25 F(Dif)8.508 E 3.509 -(ferences to UNIX trof)-.25 F 6.009(fa)-.25 G 3.509(re no)-6.009 F 6.009 -(wd)-.25 G 3.509(ocumented in the ne)-6.009 F 6.009(wm)-.25 G 3.509 -(an page)-6.009 F(`grof)80.5 388.8 Q(f_dif)-.25 E(f.7'.)-.25 E 5<8360>72 -408 S(grof)-5 E(f_mwww)-.25 E(.7' has been renamed to `grof)-.65 E -(f_www)-.25 E 2.5(.7'. The)-.65 F(\214le mwww)2.5 E(.tmac has been remo) --.65 E -.15(ve)-.15 G(d.).15 E 5<8360>72 427.2 S(grof)-5 E -(f_ms.7' has been completely re)-.25 E 2.5(written. It)-.25 F(no)2.5 E -2.5(wc)-.25 G(ontains a complete reference to the ms macros.)-2.5 E 5 -<8360>72 446.4 S(grof)-5 E -(f_trace.7' documents the trace macro package.)-.25 E 5<8343>72 465.6 S -(hanges in www)-5 E(.tmac)-.65 E .601 -(Note that HTML support is still in alpha change, so it is rather lik) -80.5 481.2 R .601(ely that both macro names and macro)-.1 F .018 -(syntax will change.)80.5 493.2 R .018 -(Some of the macros mentioned belo)5.018 F 2.518(wa)-.25 G(ren')-2.518 E -2.518(tr)-.18 G .018(eally ne)-2.518 F 2.518(wb)-.25 G .018(ut ha)-2.718 -F -.15(ve)-.2 G(n').15 E 2.518(tb)-.18 G .018(een documented)-2.518 F -(properly before.)80.5 505.2 Q .4 LW 86 524.4 81 524.4 DL 86 519.4 86 -524.4 DL 81 519.4 86 519.4 DL 81 524.4 81 519.4 DL(The follo)91.5 524.4 -Q(wing macros ha)-.25 E .3 -.15(ve b)-.2 H(een renamed:).15 E(MAIL)92 -540 Q .36 -.18(TO -)-.92 H 2.5(>M).18 G -.18(TO)-2.5 G(IMA)92 552 Q 2.5 -(GE ->)-.4 F(IMG)2.5 E 5(LINE ->)92 564 R(HR)2.5 E 86 583.2 81 583.2 DL -86 578.2 86 583.2 DL 81 578.2 86 578.2 DL 81 583.2 81 578.2 DL -.15(Fo) -91.5 583.2 S 3.007(rc).15 G(onsistenc)-3.007 E 1.807 -.65(y, t)-.15 H -.507(he macros `URL).65 F .506(', `FTL)-.92 F .506(', and `MT)-.92 F -.506(O' no)-.18 F 3.006(wa)-.25 G .506(ll ha)-3.006 F .806 -.15(ve t)-.2 -H .506(he address as the \214rst parameter).15 F(follo)91.5 595.2 Q -(wed by the description.)-.25 E 86 614.4 81 614.4 DL 86 609.4 86 614.4 -DL 81 609.4 86 609.4 DL 81 614.4 81 609.4 DL .954(By def)91.5 614.4 R -.955(ault, grohtml generates links to all section headings at the top o\ -f the document.)-.1 F .955(Use the ne)5.955 F(w)-.25 E -(`LK' macro to specify a dif)91.5 626.4 Q(ferent place.)-.25 E 86 645.6 -81 645.6 DL 86 640.6 86 645.6 DL 81 640.6 86 640.6 DL 81 645.6 81 640.6 -DL -.15(Fo)91.5 645.6 S 5.259(rs).15 G 2.759 -(pecifying the background color and a background image, use the ne) --5.259 F 5.258(wm)-.25 G 2.758(acros `BCL)-5.258 F 5.258('a)-.92 G(nd) --5.258 E(`BGIMG', respecti)91.5 657.6 Q -.15(ve)-.25 G(ly).15 E(.)-.65 E -86 676.8 81 676.8 DL 86 671.8 86 676.8 DL 81 671.8 86 671.8 DL 81 676.8 -81 671.8 DL .195(The macro `NHR' has been added; it suppresses the gene\ -ration of top and bottom rules which grohtml)91.5 676.8 R(emits by def) -91.5 688.8 Q(ault.)-.1 E 86 708 81 708 DL 86 703 86 708 DL 81 703 86 703 -DL 81 708 81 703 DL(The ne)91.5 708 Q 2.5(wm)-.25 G -(acro `HX' determines the cut-of)-2.5 E 2.5(fp)-.25 G -(oint for automatic link generation to headings.)-2.5 E 0 Cg EP -%%Page: 14 14 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-14-)279.67 48 Q .4 LW 86 84 81 84 DL 86 79 86 -84 DL 81 79 86 79 DL 81 84 81 79 DL -(The image position parameter names in `IMG' ha)91.5 84 Q .3 -.15(ve b) --.2 H(een changed to `\255L).15 E(', `\255R', and `\255C'.)-.92 E 86 -103.2 81 103.2 DL 86 98.2 86 103.2 DL 81 98.2 86 98.2 DL 81 103.2 81 -98.2 DL(Ne)91.5 103.2 Q 3.149(wm)-.25 G .648 -(acro `PIMG' for inclusion of a PNG image \(it will automatically con) --3.149 F -.15(ve)-.4 G .648(rt it into an EPS \214le if).15 F -(not \255Thtml is used\).)91.5 115.2 Q 86 134.4 81 134.4 DL 86 129.4 86 -134.4 DL 81 129.4 86 129.4 DL 81 134.4 81 129.4 DL(Ne)91.5 134.4 Q 2.724 -(wm)-.25 G .224 -(acro `MPIMG' for putting a PNG image into the left or right mar)-2.724 -F .224(gin \(it will automatically con-)-.18 F -.15(ve)91.5 146.4 S -(rt it into an EPS \214le if not \255Thtml is used\).).15 E 86 165.6 81 -165.6 DL 86 160.6 86 165.6 DL 81 160.6 86 160.6 DL 81 165.6 81 160.6 DL -(Ne)91.5 165.6 Q 2.5(wm)-.25 G -(acros `HnS', `HnE' to start and end a header line block.)-2.5 E 86 -184.8 81 184.8 DL 86 179.8 86 184.8 DL 81 179.8 86 179.8 DL 81 184.8 81 -179.8 DL(Ne)91.5 184.8 Q 2.5(wm)-.25 G -(acro `DC' to produce dropcap characters.)-2.5 E 86 204 81 204 DL 86 199 -86 204 DL 81 199 86 199 DL 81 204 81 199 DL(Ne)91.5 204 Q 2.5(wm)-.25 G -(acro `HTL)-2.5 E 2.5('t)-.92 G 2.5(og)-2.5 G -(enerate an HTML title line only b)-2.5 E(ut no H1 heading.)-.2 E 86 -223.2 81 223.2 DL 86 218.2 86 223.2 DL 81 218.2 86 218.2 DL 81 223.2 81 -218.2 DL(Ne)91.5 223.2 Q 3.444(wm)-.25 G .944 -(acros `ULS' and `ULE' to start and end an unordered list.)-3.444 F .943 -(The ne)5.943 F 3.443(wm)-.25 G .943(acro `LI' inserts a list)-3.443 F -(item.)91.5 235.2 Q/F1 10/Times-Bold@0 SF(gr)72 259.2 Q(off)-.18 E F0 5 -<8354>72 278.4 S(he ne)-5 E 2.5(wc)-.25 G -(ommand line `\255c' disables color output \(which is al)-2.5 E -.1(wa) --.1 G(ys disabled in compatibility mode\).).1 E F1(Nr)72 302.4 Q(off) --.18 E F0 5<8354>72 321.6 S .385 -.1(wo n)-5.8 H .685 -.25(ew c).1 H -.186(ommand line options `\255c' and `\255C'; the former passes `\255c'\ - to grotty \(switching to the old out-).25 F -(put scheme\); the latter passes `\255C' to grof)80.5 333.6 Q 2.5(f\() --.25 G(enabling compatibility mode\).)-2.5 E F1(pic)72 357.6 Q F0 5 -<834e>72 376.8 S 2.474 -.25(ew k)-5 H -.15(ey).15 G -.1(wo).15 G 1.973(\ -rds `color' \(or `colour', `colored', `coloured'\), `outline' \(or `out\ -lined'\), and `shaded' are).1 F -.2(av)80.5 388.8 S 2.5 -(ailable. `outline')-.05 F -(sets the color of the outline, `shaded' the \214ll color)2.5 E 2.5(,a) --.4 G(nd `color' sets both.)-2.5 E(Example:)5 E/F2 10/Courier@0 SF -(circle shaded "green" outline "black" ;)92 404.4 Q F0(Filled arro)80.5 -420 Q(ws al)-.25 E -.1(wa)-.1 G(ys use the outline color for \214lling.) -.1 E(Color support for T)80.5 435.6 Q(eX output is not implemented yet.) --.7 E F1(Pic2graph)72 459.6 Q F0 5<8341>72 478.8 S(ne)-2.007 E 2.993(ws) --.25 G .493(cript contrib)-2.993 F .493(uted by)-.2 F 0 0 1 Cr .493 -(Eric S. Raymond)2.993 F 0 Cg/F3 10/Symbol SF2.993 E F2 -(esr@thyrsus.com)A F3A F0 5.493(.I)C 2.993(tc)-5.493 G(on)-2.993 E --.15(ve)-.4 G .494(rts a PIC diagram into a).15 F .275(cropped image.) -80.5 490.8 R .275(Since it uses gs and the PNM library)5.275 F 2.775(,v) --.65 G .274(irtually all graphics formats are a)-2.775 F -.25(va)-.2 G -.274(ilable for out-).25 F(put.)80.5 502.8 Q F1(Eqn2graph)72 526.8 Q F0 -5<8341>72 546 S(ne)-2.19 E 2.81(ws)-.25 G .31(cript contrib)-2.81 F .31 -(uted by)-.2 F 0 0 1 Cr .311(Eric S. Raymond)2.811 F 0 Cg F32.811 E -F2(esr@thyrsus.com)A F3A F0 5.311(.I)C 2.811(tc)-5.311 G(on)-2.811 E --.15(ve)-.4 G .311(rts an EQN diagram into).15 F 3.462(ac)80.5 558 S -.962(ropped image.)-3.462 F .961(Since it uses gs and the PNM library) -5.962 F 3.461(,v)-.65 G .961(irtually all graphics formats are a)-3.461 -F -.25(va)-.2 G .961(ilable for).25 F(output.)80.5 570 Q F1(Gr)72 594 Q -(offer)-.18 E F0 5<8341>72 613.2 S(ne)-2.443 E 2.557(ws)-.25 G .057 -(cript contrib)-2.557 F .057(uted by)-.2 F 0 0 1 Cr .057(Bernd W)2.557 F -(ark)-.8 E(en)-.1 E 0 Cg F32.557 E F2(bwarken@mayn.de)A F3A F0 -5.057(.I)C 2.557(td)-5.057 G .057(isplays grof)-2.557 F 2.557<668c>-.25 -G .058(les and man pages)-2.557 F(on X and tty)80.5 625.2 Q 2.5(,t)-.65 -G(aking care of most parameters automatically)-2.5 E(.)-.65 E F1(Gr)72 -649.2 Q(og)-.18 E F0 5<8344>72 668.4 S -(ocuments using the mom macro package are recognized.)-5 E F1(gr)72 -692.4 Q(ops)-.18 E F0 5<8343>72 711.6 S(olor support has been added.)-5 -E 0 Cg EP -%%Page: 15 15 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-15-)279.67 48 Q 5<8341>72 84 S(ne)-2.017 E -2.983(wo)-.25 G .483(ption `\255p' is a)-2.983 F -.25(va)-.2 G .483 -(ilable to select the output paper size.).25 F .482 -(It has the same syntax as the ne)5.482 F 2.982(w`)-.25 G(paper)-2.982 E -(-)-.2 E(size' k)80.5 96 Q -.15(ey)-.1 G -.1(wo).15 G -(rd in the DESC \214le.).1 E/F1 10/Times-Bold@0 SF(Gr)72 120 Q(odvi)-.18 -E F0 5<8342>72 139.2 S 2.919(yd)-5 G(ef)-2.919 E .419 -(ault, font sizes are no)-.1 F 2.919(wa)-.25 G -.25(va)-3.119 G .419 -(ilable in the range 5\25510000pt, similar to PS fonts.).25 F .42 -(If you w)5.42 F .42(ant the old)-.1 F(beha)80.5 151.2 Q -(viour \(i.e., font sizes at discrete v)-.2 E -(alues only\), insert the follo)-.25 E -(wing at the start of your document:)-.25 E/F2 10/Courier@0 SF -(.if '\\*[.T]'dvi' \\)92 166.8 Q 12(.s)92 178.8 S -(izes 500 600 700 800 900 1000 1095 1200 1400 1440 1600 \\)-12 E -(1728 1800 2000 2074 2200 2400 2488 2800 3600)146 190.8 Q F0 5<8341>72 -210 S(ne)-2.5 E 2.5(wf)-.25 G -(ont \214le HBI \(using cmssbxo10; this is slanted sans serif bold e) --2.5 E(xtended\) has been added.)-.15 E 5<8354>72 229.2 S .2 -.1(wo f) --5.8 H(ont f).1 E(amilies are no)-.1 E 2.5(wa)-.25 G -.25(va)-2.7 G -(ilable: `T' and `H'.).25 E 5<8345>72 248.4 S 3.29(Ca)-5 G .79 -(nd TC fonts ha)-3.29 F 1.09 -.15(ve b)-.2 H .79(een inte).15 F 3.29 -(grated. Use)-.15 F .79 -(`\255mec' \(calling the \214le ec.tmac\) to switch to them.)3.29 F -(Those)5.79 E(fonts gi)80.5 260.4 Q .3 -.15(ve a m)-.25 H(uch better co) -.15 E -.15(ve)-.15 G(rage of the symbols de\214ned by grof).15 E 2.5(ft) --.25 G(han the CM fonts.)-2.5 E -(Note that ec.tmac must be called before an)80.5 276 Q 2.5(yl)-.15 G -(anguage-speci\214c \214les; it doesn')-2.5 E 2.5(tt)-.18 G(ak)-2.5 E -2.5(ec)-.1 G(are of hcode v)-2.5 E(alues.)-.25 E 5<8343>72 295.2 S -(olor support has been added.)-5 E -.15(Fo)5 G 2.5(rd).15 G(ra)-2.5 E -(wing commands, colors are translated to gray v)-.15 E(alues currently) --.25 E(.)-.65 E F1(Gr)72 319.2 Q(otty)-.18 E F0 5<8343>72 338.4 S 2.952 -(olor support has been added, using the SGR \(ISO 6429, sometimes calle\ -d ANSI color\) escape)-5 F(sequences.)80.5 350.4 Q 5<8353>72 369.6 S -.887(GR escape sequences are no)-5 F 3.387(wu)-.25 G .887(sed by def) --3.387 F .887 -(ault for underlining and bold printing also, no longer using)-.1 F -(the backspace character trick.)80.5 381.6 Q 1.6 -.8(To r)5 H -2.15 -.25 -(ev e).8 H(rt to the old beha).25 E(viour)-.2 E 2.5(,u)-.4 G -(se the `\255c' switch.)-2.5 E .372(Note that you ha)80.5 397.2 R .672 --.15(ve t)-.2 H 2.872(ou).15 G .373 -(se the `\255R' option of `less' to mak)-2.872 F 2.873(eS)-.1 G .373 -(GR escapes display correctly)-2.873 F 5.373(.O)-.65 G 2.873(nt)-5.373 G -.373(he other)-2.873 F 1.04(hand, terminal programs and consoles lik) -80.5 409.2 R 3.539(e`)-.1 G 1.039 -(xterm' which support SGR sequences nati)-3.539 F -.15(ve)-.25 G 1.039 -(ly can directly).15 F .183(display the output of grotty)80.5 421.2 R -5.183(.C)-.65 G(onsequently)-5.183 E 2.683(,t)-.65 G .183 -(he options `\255b', `\255B', `\255u', and `\255U' w)-2.683 F .184 -(ork only in combina-)-.1 F -(tion with `\255c' and are ignored silently otherwise.)80.5 433.2 Q -.15 -(Fo)80.5 448.8 S 2.813(rt).15 G .312(he `man' program, it may be necess\ -ary to add the `\255R' option of `less' to the $P)-2.813 F -.4(AG)-.92 G -.312(ER en).4 F(vironment)-.4 E -.25(va)80.5 460.8 S .757 -(riable; alternati).25 F -.15(ve)-.25 G(ly).15 E 3.257(,y)-.65 G .758 -(ou can use `man')-3.257 F 3.258(s`)-.55 G .758 -(\255P' option \(or adapt its con\214guration \214le accordingly\).) --3.258 F(See)5.758 E(man\(1\) for more details.)80.5 472.8 Q 5<8349>72 -492 S 2.901(ft)-5 G .401(he en)-2.901 F .401(vironment v)-.4 F .401 -(ariable GR)-.25 F .401(OFF_NO_SGR is set, SGR output is disabled, re) --.4 F -.15(ve)-.25 G .4(rting to the old beha).15 F(v-)-.2 E(iour)80.5 -504 Q(.)-.55 E 5<8341>72 523.2 S(ne)-2.329 E 2.671(ws)-.25 G .171 -(pecial \\X')-2.671 F .172(tty: sgr n' has been added; if n is non-zero\ - or missing, enable SGR output \(the def)-.18 F(ault\).)-.1 E 5<8349>72 -542.4 S 3.456(ft)-5 G .956(he ne)-3.456 F 3.456(wo)-.25 G .956(ption `\ -\255i' is used \(only in SGR mode\), grotty sends escape sequences to s\ -et the italic font)-3.456 F(attrib)80.5 554.4 Q .882 -(ute instead of the underline attrib)-.2 F .883(ute for italic fonts.) --.2 F .883(Note that man)5.883 F 3.383(yt)-.15 G .883(erminals don') --3.383 F 3.383(th)-.18 G -2.25 -.2(av e)-3.383 H(support)3.583 E -(for this \(including xterm\).)80.5 566.4 Q F1(gr)72 590.4 Q(ohtml)-.18 -E F0 5<8343>72 609.6 S(olor support for glyphs has been added.)-5 E 5 -<834e>72 628.8 S .5 -.25(ew o)-5 H -(ption `\255h' to select the style of headings in HTML output.).25 E 5 -<834e>72 648 S .5 -.25(ew o)-5 H -(ption `\255b' to set the background colour to white.).25 E 5<834e>72 -667.2 S 2.031 -.25(ew o)-5 H 1.531(ptions `\255a' and `\255g' to contro\ -l the number of bits for anti-aliasing used for te).25 F 1.53 -(xt and graphics,)-.15 F(respecti)80.5 679.2 Q -.15(ve)-.25 G(ly).15 E 5 -(.D)-.65 G(ef)-5 E(ault v)-.1 E(alue is 4; 0 means no anti-aliasing.) --.25 E 5<8367>72 698.4 S(rof)-5 E 2.5(fc)-.25 G -(haracter/glyph entities no)-2.5 E 2.5(wm)-.25 G -(ap onto HTML 4 character entities.)-2.5 E 0 Cg EP -%%Page: 16 16 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-16-)279.67 48 Q/F1 10/Times-Bold@0 SF(Gr)72 84 -Q(olbp)-.18 E F0 5<8356>72 103.2 S .612(alid paper sizes are no)-6.11 F -3.112(ws)-.25 G .612(peci\214ed as with the ne)-3.112 F 3.113(w`)-.25 G -.613(papersize' k)-3.113 F -.15(ey)-.1 G -.1(wo).15 G .613 -(rd in the DESC \214le.).1 F(Speci\214cally)5.613 E(,)-.65 E -(the old custom paper type format `custAAAxBBB' is no longer supported.) -80.5 115.2 Q F1(Miscellaneous)72 139.2 Q F0 5<8341>72 158.4 S(ne)-2.5 E -2.5(wm)-.25 G(anual page `ditrof)-2.5 E(f.7' is a)-.25 E -.25(va)-.2 G -(ilable.).25 E 5<8354>72 177.6 S(he grof)-5 E 2.5(ft)-.25 G -.15(ex)-2.5 -G(info manual will no).15 E 2.5(wb)-.25 G 2.5(ei)-2.5 G -(nstalled, together with a b)-2.5 E(unch of e)-.2 E(xamples.)-.15 E 5 -<8341>72 196.8 S(ne)-2.5 E 2.5(wk)-.25 G -.15(ey)-2.6 G -.1(wo).15 G -(rd `papersize' has been added to the DESC \214le format.).1 E(Its ar)5 -E(gument is either)-.18 E .4 LW 86 216 81 216 DL 86 211 86 216 DL 81 211 -86 211 DL 81 216 81 211 DL 2.5(ap)91.5 216 S -(rede\214ned paper format \(e.g. `)-2.5 E(A4' or `letter'\))-.8 E 86 -235.2 81 235.2 DL 86 230.2 86 235.2 DL 81 230.2 86 230.2 DL 81 235.2 81 -230.2 DL 4.647<618c>91.5 235.2 S 2.147(le name pointing to a \214le whi\ -ch must contain a paper size speci\214cation in its \214rst line \(e.g.) --4.647 F(`/etc/papersize'\))91.5 247.2 Q 86 266.4 81 266.4 DL 86 261.4 -86 266.4 DL 81 261.4 86 261.4 DL 81 266.4 81 261.4 DL 2.5(ac)91.5 266.4 -S(ustom paper size de\214nition lik)-2.5 E 2.5(e`)-.1 G(35c,4i')-2.5 E -1.747(See grof)80.5 282 R 1.747(f_font\(5\) for more details.)-.25 F -1.747(This k)6.747 F -.15(ey)-.1 G -.1(wo).15 G 1.747(rd only af).1 F -1.747(fects the ph)-.25 F 1.747(ysical dimensions of the output)-.05 F -(medium; grops, grolj4, and grolbp use it currently)80.5 294 Q 5(.t)-.65 -G(rof)-5 E 2.5(fc)-.25 G(ompletely ignores it.)-2.5 E/F2 8 -/Times-Italic@0 SF(This document was pr)72 306 Q(oduced using)-.36 E 0 0 -1 Cr(gr)2 E(of)-.36 E(f-1.19.2)-.144 E 0 Cg/F3 8/Symbol SF2 E/F4 8 -/Courier@0 SF(http://groff.ffii.org/)A F3A F2(.)A(The ima)72 318 Q -.16 -.08(ge a)-.08 H 2(tt).08 G(he top has been contrib)-2 E -(uted by Imo)-.16 E -.08(ge)-.08 G 2(nM).08 G(ulle)-2 E 2(y\()-.24 G -(born 1991\), based on a similar pictur)-2 E 2(ef)-.296 G(ound on the)-2 -E 0 0 1 Cr(GNU server)2 E 0 Cg F372 330 Q F4(http://www.gnu.org)A F3 -A F2(.)A 0 Cg EP -%%Trailer -end -%%EOF diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/appendices.html b/gen/usr/share/doc/groff/1.19.2/html/mom/appendices.html deleted file mode 100644 index bf794d0..0000000 --- a/gen/usr/share/doc/groff/1.19.2/html/mom/appendices.html +++ /dev/null @@ -1,692 +0,0 @@ - - - - -Mom -- Appendices - - - - - -Next   -Prev   -Back to Table of Contents -

- - - -

APPENDICES

- - - - - -

Further notes on this documentation

-
- -Some mom users are sure to ask: "Why is this -documentation in html? If mom's so great, why not -typeset the whole thing to show her off? And if groff's so great, -why not write a man page?" -

-Valid questions, to be sure, and mom has -answers. (Okay -- I have answers, but I speak for -mom.) -

-The documentation is in html because I still find it the best tool -for navigating lengthy manuals. Html, with its anchors and links, -came into being precisely so people could do something they'd never -been able to with the printed word: instantly track down internal -and external references in a document. -

-To me, it's essential that people reading mom's -documentation never have difficulty finding precisely the macro -they need for a particular task. Equally, when reading up on -a macro, they should never be presented with terms or other -macro names for which they cannot instantly find accurate explanations. -Short of having written the documentation in TeX for the info browser -(and TeX bloat is one of the reasons I prefer to typeset with groff), -I can think of no better way to achieve the kind of truly useful -documentation I wanted than html. -

-Another reason for html is that working with mom -necessarily involves creating files inside a text editor. I use -elvis, a truly fabulous vi clone that does a terrific job of rendering -basic (text only) html. I may have written mom, -but I still regularly call on her documentation. Elvis, with its -html capabilities, lets me write and format mom -documents AND peruse her documentation, clicking on links as -necessary, without ever leaving the comfy confines of my -text editor. -

-Not everyone, of course, uses an editor with html capabilities. -For them, firing up a browser is obviously necessary for reading -mom's documentation. Browsers being what they are, -and not everyone on the globe having the cash for muscle machines -to run Galeon, or Konqueror or Mozilla, their browser -needs to be fast and light--and probably "text-only". -

-Some mom users may notice the absence of graphics, -frames, and (for the most part) tables in this documentation. The -reason is simple: text-only browsers. People who, for whatever -reason (choice or necessity), use lynx, or links or w3m to read -the documentation must be able to make sense of it. All of it. -Graphical examples of mom in action might have made -some parts of the documentation easier to write, but would have -excluded text-only browser users. And it goes without saying that -the documentation looks fine if you're reading it in a graphical -browser. -
-


- - - - -

Adding PostScript fonts to groff

-
- - -Small note: the term <prefix> in this -section refers to the directory in which groff is installed, -typically something like /usr/share/groff/<version#> -(for distro-specific, pre-compiled groff packages) or -/usr/share/groff/<version#> (if you've built groff -from source). -

-Groff comes with a small library of PostScript -families -(see the -FAMILY -macro for a list). The families have four -fonts -associated with them. These fonts are a combination of -weight -and -shape: -
-

    -
  • R (Roman, usually Medium weight), -
  • I (Italic, usually Medium weight), -
  • B (Bold, usually Roman shape) and -
  • BI (Bold Italic). -
-

-If you do a lot of document processing or typesetting with -mom, you'll find, sooner or later, that these -families and their associated fonts aren't sufficient. You'll want -to supplement them, either with more fonts for the families already -provided--"Damn! I need Helvetica Bold Condensed Italic!"--or with -entire new families. -

-Without going into the gory details (yet), while it's true that -adding fonts to groff is a relatively straightforward -process, extending existing families or adding new ones requires -some planning. -

-The traditional approach to extending groff families has been -to create new families for non-default weights and -shapes (e.g. Light, which is a weight; Condensed, which is a -shape), then to associate them with groff's predefined R, -I, B and BI font styles. An example -of this can be seen in the groff PostScript font library itself -(<prefix>/font/devps/): there's one "family" for -Helvetica (HR, HI, HB, HBI) and another for Helvetica Narrow (HNR, -HNI, HNB, HNBI). -

-The difficulty with this approach is that typographers -tend to think of "families" as referring to the -entire set of font weights and shapes associated with a -particular family name. For example, when a typesetter says -"the Helvetica family", s/he is including the weights Helvetica Thin, -Helvetic Light, Helvetica Regular, Helvetica Bold, Helvetica Heavy, -etc, and all their associated -shapes -(Roman, -Italic, Condensed, Narrow, Extended, Outline, etc). -

-Thus, intuitively, when a typesetter gives mom a -.FAM(ILY) directive, s/he reasonably expects that any -subsequent .FT directive will access the desired font -from the Helvetica family--without the need to state explicitly both -family and font to .FT, as it is explained one can do in -the -FAMILY -and -FT -sections of these documents. -

-If one had, say, the fonts, Helvetica Light Roman -and Helvetica Light Italic as well as Helvetica Light Condensed -Roman and Helvetica Light Condensed Italic, the traditional -approach would require two "partial" families: HLR/HLI and -HLCDR/HLCDI. Accessing these family/font combos -routinely throughout a document would then require -changing family (with .FAM(ILY)) and selecting the -desired font (with .FT R or .FT I), or -passing .FT the lengthy family+fontname (.e.g. .FT -HLCDI). -

-Fortunately, groff provides a mechanism whereby it's possible to -extend the basic R, I, B and BI -fonts ("styles" in groff-speak) so that one can, in -fact, create extensive type families, and access all the fonts -in them with .ft (groff) or .FT (mom). -

-mom uses this mechanism to offer, in addition to -groff's default PostScript font styles, the following: -

- -

-Mom's extensions to groff's basic font styles
-=============================================
-
-	L      =  Light Roman
-	LI     =  Light Italic
-	LCD    =  Light Condensed Roman
-	LCDI   =  Light Condensed Italic
-	LEX    =  Light Extended Roman
-	LEXI   =  Light Extended Italic
-	CD     =  Medium/Book Condensed Roman
-	CDI    =  Medium/Book Condensed Italic
-	EX     =  Medium/Book Extended Roman
-	EXI    =  Medium/Book Extended Italic
-	DB     =  DemiBold Roman
-	DBI    =  DemiBold Italic
-	BCD    =  Bold Condensed Roman
-	BCDI   =  Bold Condensed Italic
-	BEX    =  Bold Extended Roman
-	BEXI   =  Bold Extended Italic
-	HV     =  Heavy Roman
-	HVI    =  Heavy Italic
-	HVCD   =  Heavy Condensed Roman
-	HVCDI  =  Heavy Condensed Italic
-	HVEX   =  Heavy Extended Roman
-	HVEXI  =  Heavy Extended Italic
-	BL     =  Black Roman
-	BLI    =  Black Italic
-	BLCD   =  Black Condensed Roman
-	BLCDI  =  Black Condensed Italic
-	BLEX   =  Black Extended Roman
-	BLEXI  =  Black Extended Italic
-	UBL    =  Ultra-Black Roman
-	UBLI   =  Ultra-Black Italic
-
- -Thus, with mom, if you've installed, say, some -extra Helvetica fonts and named them according to the convention FS -(where "F" means family and "S" means font -style), once having entered -

-

-	.FAMILY H
-	  or
-	.FAM H
-
- -you can access any of those Helvetica fonts simply by -passing the correct argument from the list above to -FT. -

-For example, if you were working in Medium Roman (.FT R) -and you needed Medium Condensed Italic for a while (assuming it's -installed), you'd just type -

-

-	.FT CDI
-
- -to access the Medium Condensed Italic font from the Helvetica -family. -

-Mom's list of font styles doesn't pretend to -be exhaustive, but rather tries to cover the basic weight/shape -combinations likely to be found in any reasonably complete type -family. -

-The actual extension names are arbitrary and can be used in a -flexible manner. For example, if you create a family that has a -DemiBold font (DB) but no Bold font (B), you might find it more -convenient to give the DemiBold font the extension "B". -Equally, if the family has an ExtraBold font, you might find it more -convenient to use the extension "HV" (Heavy). - -

-However, you may, at needs, want to add to mom's -list of font styles. You can do this by editing the file, om.tmac. -Near the top, you'll see lines of the form -

-

-	.sty \n[.fp] L       \" Light Roman
-	.sty \n[.fp] LI      \" Light Italic
-	.sty \n[.fp] LCD     \" Light Condensed Roman
-
- -Simply add your new font style by imitating what you see and -plugging in your new font style (having, of course, first created the -font, correctly named, in groff's PostScript font directory; see -How to create a PostScript font for use with groff). -

-For example, if you already have some fonts from the Univers -family installed and have called the family UN, you might decide at -some point to add the Bold Outline font (UNBO). In which case, -you'd add -

-

-	.sty \n[.fp] BO      \" Bold Outline
-
- -to the .sty \n[.fp] <font style> list in om.tmac. -

-Be careful, though, that any styles you add do not conflict -with family names that already exist. -"C", for example, conflicts with the Courier family -(CR, CI, CB, CI). Were you to create a font style "C", -thinking that .FT C would give you access to font style -once you'd given a .FAM(ILY) directive, you'd get a nasty -surprise: your type would come out in Courier Roman! -

-VERY IMPORTANT NOTE: mom's font extensions are -not "user-space" controllable via a macro. If you've -been using groff for a long time, and have already rolled your own -solution to adding PostScript families, fonts, weights, shapes, etc. to -groff, you may find that mom's font extensions -conflict with your own scheme. Should that be the case, comment out -the .sty \n[.fp] <font style> lines found near the -top of the om.tmac file. - -

How to create a PostScript font for use with groff

-These instructions aren't meant to cover all possibilities, merely -to present one way of making PostScript families/fonts available to -groff and mom. -

-GNU/Linux distributions being what they are, directory locations may -differ and the presence of some executables can't be guaranteed. -I run a Debian system. The instructions reflect that. Users of -other distros will have to interpret them according to the way their -distro operates. -

-What you need before you start: -
-

    -
  • groff, version 1.18 or higher -
    - (Debian package: groff) -
  • a full installation of gs and associated tools -
    - (Debian package: gs or gs-gpl) -
  • a library of gs fonts -
    - (Debian package: gsfonts) -
  • a utility for converting TrueType fonts to Type1 fonts -
    - (Debian package: ttf2pt1) -
  • a font manager -
    - (Debian packages: defoma, psfontmgr, dfontmgr) -
  • perl -
    - (Debian package: perl) -
-
-A reasonably complete installation of any major GNU/Linux distro -should already have these on your system, except perhaps for the -utility to convert TrueType fonts to Type1 fonts. -

-Initial preparation (you only have to do this once): -
-

    -
  1. If you don't already have one, create a directory in your - home directory to hold new fonts. Any directory name will do. - I use ~/Fonts, with subdirectories for Type1, TrueType and Groff - fonts. - -
  2. Locate the groff directory, site-font. The exact location is - difficult to predict, owing to differences between distros - and whether you're using a pre-packaged groff or have built - it from source. Some typical locations are -
    -
      -
    • /usr/share/groff, -
    • /usr/share/groff -
    • /etc/groff -
    -

    - If you can't find the site-font directory, locate - groff's site-tmac directory, and, as root, create site-font - in the same directory as the one that holds site-tmac. - E.g., if you find site-tmac in /usr/share/groff, create - site-font in /usr/share/groff. -

  3. Locate the file <prefix>/font/devps/generate/textmap - and symlink it to textmap in the directory that - contains your personal collection of PostScript fonts. (See the - Small Note, - above, for the meaning of <prefix>). On my system, - at the time of writing, <prefix> is - /usr/share/groff/1.19.2/, therefore, I symlink it in - ~/Fonts/Type1 with -
    -
    -ln -s /usr/share/groff/1.19.2/font/devps/generate/textmap textmap
    -		
    -
  4. Locate the file <prefix>/font/devps/text.enc and - symlink it to text.enc in your personal font - directory. On my system, in ~/Fonts/Type1 -
    -ln -s /usr/share/groff/1.19.2/font/devps/text.enc text.enc
    -		
    -
  5. Make sure you know which directory/ies holds your gs fonts. - You'll need the information later. On a Debian box, some - typical locations are -
    -
      -
    • /usr/lib/ghostscript/fonts -
    • /usr/share/ghostscript/fonts -
    • /usr/share/fonts/type1/gsfonts -
    -
-
-Font creation/installation: -
-
    -
  1. Acquire the font in either Type1 (.pfb) or TrueType - (.ttf) format. -
  2. Place the font in your personal font directory; for me, - that's ~/Fonts/Type1 or ~/Fonts/TrueType. -
  3. In your personal font directory, run one of the following: -
    -
      -
    • For Type1 fonts -
      -
        -
      • getafm fontfilename.pfb | gsnd - > fontfilename.afm -
        - For Type1 fonts, this will generate something called - an .afm (Adobe Font Metrics) file, which is - required to create PostScript fonts for groff. -
      -
    • For TrueType fonts -
      -
        -
      • ttf2pt1 \-b fontfilename.ttf -
        - For TrueType fonts, this will generate a PostScript - .pfb file as well as an .afm file. -
      -
    -
  4. Still in your personal font directory, run -
    -
      -
    • afmtodit -e text.enc fontfilename.afm textmap GROFF_FONTNAME -
    -

    - Q: How do I choose a GROFF_FONTNAME? -

    - A: Start by considering the - family - to which the font belongs. If you're adding to a family that - already exists in groff's <prefix>/font/devps - directory, that will be the first part of the font name. - (See - here - for a list of families already installed, along with their groff - names.) Add to that name the appropriate weight/style extension, - listed - here. -

    - For example, if you're adding Helvetica Light Roman, your - GROFF_FONTNAME would be HL. If you're - adding Helvetica Light Italic, your GROFF_FONTNAME would be - HLI. -

    - If you're adding a font not already in groff's PostScript - families, first choose a meaningful name for the - family - to which the font belongs. The name can be anything you like. If, - for example, the family is Garamond, you could choose GARAMOND, - GARA, GD, or even just plain G as the family name. Then tack on the - appropriate style/weight extension. Thus, if you were installing - Garamond Bold Condensed Italic and had chosen GD - as the family name for Garamond, your GROFF_FONTNAME would be - GDBCDI. -

    - In mom, you can then access the Garamond - family with .FAM GD, and the Bold Condensed - Italic font wth .FT BCDI. -

    - Note: The family name need not be in upper - case, and there's no limit to the length of the name. - "Garamond", for example, could be the name you - give the Garamond family. In fact, you might find it - preferable, since a) you wouldn't have to remember how - you'd named the family, and b) should you be scanning - your - site-font directory, - something like GaramondBCDI will be more meaningful than, - say, GDBCDI. -

  5. Copy or move GROFF_FONTNAME to your - site-font directory, - or change to the site-font directory and make a symlink to - GROFF_FONTNAME in your personal directory. -
  6. Copy or move the .pfb file to the directory that - holds your gs fonts, or change to that directory and make a - symlink to the .pfb file in your personal directory. -
  7. Do whatever your system or distro requires in order to - register the new PostScript font (the .pfb file). On a - Debian system, as root, you can run dfontmgr for a - graphical interface that will take care of registering the - font. -
-

-Written out in full, adding fonts looks like a lot of work. It -isn't. Basically, it's just: -
-

    -
  • acquire the font -
  • generate an .afm file for the font -
  • create the groff font -
  • put the groff font in <prefix>/font/devps -
  • make sure gs knows about the font -
-
-After you've done it a couple of times, it all makes sense, and is -really quite easy. Not to mention that once you understand the -process, you can write a bash script to automate the process. -Here's an example, which you can adapt to your own needs. The -script requires an argument (the .pfb filename), then prompts for -the GROFF_FONTNAME. -

-

-#! /bin/bash
-
-# A script for installing Type1 fonts.
-#
-# Builds .afm files from .pfb files, generates a groff font from the
-# .afm file, makes a symlink in /usr/lib/ghostscript/font/ to the
-# .pfb file, and a symlink in site-font to the groff font
-
-# .pfb filename, stripped of .pfb extension
-FONT=`basename $1 .pfb`
-
-# Directory holding my personal collection of type1 fonts
-FONTDIR="$HOME/Fonts/Type1"
-
-# Directory holding system ghostscript fonts
-GS_FONTDIR="/usr/lib/ghostscript/fonts"
-
-# Location of site-font/devps
-GROFF_SITE_FONTDIR="/usr/share/groff/site-font/devps"
-
-# Personal groff fonts directory
-GROFF_FONTS="$HOME/Fonts/Groff"
-
-# Symlinks to textmap and text.enc
-TEXTMAP="$FONTDIR/textmap"
-TEXTENC="$FONTDIR/text.enc"
-
-if [ ! `pwd` = "$FONTDIR" ] ; then
-    echo "Changing into $FONTDIR directory.."
-    cd $FONTDIR
-    sleep 1
-else
-	sleep 1
-fi
-
-echo -n "Groff name for this font: "
-read FONTNAME
-sleep 1
-
-echo "Getting .afm.."
-getafm $FONT.pfb | gsnd - > $FONT.afm
-sleep 1
-
-echo "Creating $FONTNAME.."
-afmtodit -e $TEXTENC $FONTDIR/$FONT.afm $TEXTMAP $FONTNAME
-mv -i $FONTNAME $GROFF_FONTS
-sudo ln -s $GROFF_FONTS/$FONTNAME $GROFF_SITE_FONTDIR/$FONTNAME
-sleep 1
-
-echo "Linking $FONT in $GS_FONTDIR.."
-cd $GS_FONTDIR
-sudo ln -s $FONTDIR/$FONT.afm $FONT.afm
-sudo ln -s $FONTDIR/$FONT.pfb $FONT.pfb
-sleep 1
-
-# This next bit is Debian specific.  If you're not running a
-# Debian system, replace it with whatever your distro requires
-# in order to register Type1 fonts.
-
-if [ !`pidof -x /usr/bin/dfontmgr` ] ; then
-    echo "I will now run dfontmgr so you can register the font."
-    exec sudo dfontmgr &
-else
-    echo "You may now register the font with dfontmgr."
-fi
-
-
- - - - -

Some reflections on mom

-
- -

-Mom, as a complete macro set, had her origins -in a "library" of groff routines I wrote over the -years to handle various aspects of typesetting and document -processing that weren't adequately covered by ms, me, mm, and so -on. Typically, I'd use the library to cobble together macro -sets for new challenges as they came my way. -

-If, as Eric Raymond asserts, open source begins with a programmer -scratching a personal itch, then mom can truly be -called open source, even if, a mere humble set of macros standing on -the shoulders of a giant named troff, she isn't programming at all. -

-As a writer living in a perpetual state of penury, all the computers -I've ever owned have been hand-me-downs -- several generations -out-of-date and "resource challenged". Disk space has -always been an issue, as has processor speed and available RAM. -One of the reasons I run GNU/Linux is that it has helped enormously -to get the most out of my poor little boxes. (It has been pointed -out to me that NetBSD might be an even better choice of operating -systems for computers with limited resources.) -

-In Linux-land, the choice of typesetting systems basically comes down -to groff or TeX. Both are wonderful -- monumental achievements if you -ask me -- and both have their own particular strengths. However, for -people in my financial position (and there are millions of us around -the globe, in both developed and developing countries), TeX and groff -have one big difference: size. TeX is huge. Even its most ardent -supporters agree it suffers from bloat, on top of being complex and -unwieldy to manage. Groff is tiny by comparison, occupying minimal -disk space and having only a small memory footprint while at the same -time being flexible and powerful, typographically speaking. I've run -it successfully on a 386 with 8 megs of RAM and a 250 meg hard disk. -

-However, groff has always had a liability: it's incredibly geeky. -Owing to its very long history, it -- and its "power users" --- have remained stuck in a time warp. Most common macro packages -still look as they did in those decades when memory was exorbitantly -expensive and every byte mattered. Documentation -- not always -easy to find -- is written as if all readers are computer whizzes, -or at least have a university degree in one of the higher sciences. -

-By no means a stupid man, nor unfamiliar with the precepts of -programming, I've more than once torn my hair out over the terseness and -ambiguity of groff's documentation. Making sense of certain primitives -has often involved days of testing, interpreting the documentation -instead of just using the primitive. -

-(ADDENDUM to the previous two paragraphs: A tremendous amount of -effort has gone into creating a groff manual that can be read with -"info," as well as creating truly useful man pages. The info -manual is clear and well-written, so my comments are actually out -of date. I leave them in for the benefit of groff newbies, who may -still find the documents a bit intimidating.) -

-For some time now, groff users and macro writers have had the -option to use "long" names, yet have mostly chosen not to. -With long names, it's possible to create macro sets that are humanly -readable and easy to interpret, encouraging development and evolution. -What's more, the macros themselves need not be terse, intimidating, -and easily forgotten 1- or 2-letter commands inserted in the body -of a document. They can be sensible and helpful to everyone, groff -newbies and old hands alike. -

-Mom's macro file, om.tmac, uses long names, aliases, -and a host of other groff goodies that have become part of the -whole groff picture under the unflagging guidance of groff's current -maintainer, Werner Lemberg. Nearly every macro, number register and -string is "recognizable" simply by its name. The file is -heavily commented. A consistent, if idiosyncratic, indenting style -is used as well, significantly improving readability. Anyone -wanting to futz around with mom's macros should be -able to do so with a minimum of head scratching. -
-


- - - - -

Contact the author

-
- -

-If you have any questions or comments about mom, -suggestions to make, criticisms to offer, or bugs to report, use the -groff mailing list at -groff@ffii.org -(subscription information available -here) -or contact me, Peter Schaffter, directly at -peter@faustus.dyn.ca -or -ptpi@golden.net. - -

-Please include the word "mom" or "groff" in the -Subject: line of any message sent to my personal address, or you -risk the wrath of my implacable spam filters. :) -

-If you want to visit mom's homepage, you'll find -it -here. -

-


-Next   -Prev   -Top   -Back to Table of Contents - - diff --git a/gen/usr/share/doc/groff/1.19.2/meintro.ps b/gen/usr/share/doc/groff/1.19.2/meintro.ps deleted file mode 100644 index 10e07c4..0000000 --- a/gen/usr/share/doc/groff/1.19.2/meintro.ps +++ /dev/null @@ -1,1611 +0,0 @@ -%!PS-Adobe-3.0 -%%Creator: groff version 1.19.2 -%%CreationDate: Sat Nov 19 17:19:36 2016 -%%DocumentNeededResources: font Times-Bold -%%+ font Times-Italic -%%+ font Times-Roman -%%DocumentSuppliedResources: procset grops 1.19 2 -%%Pages: 18 -%%PageOrder: Ascend -%%DocumentMedia: Default 612 792 0 () () -%%Orientation: Portrait -%%EndComments -%%BeginDefaults -%%PageMedia: Default -%%EndDefaults -%%BeginProlog -%%BeginResource: procset grops 1.19 2 -%!PS-Adobe-3.0 Resource-ProcSet -/setpacking where{ -pop -currentpacking -true setpacking -}if -/grops 120 dict dup begin -/SC 32 def -/A/show load def -/B{0 SC 3 -1 roll widthshow}bind def -/C{0 exch ashow}bind def -/D{0 exch 0 SC 5 2 roll awidthshow}bind def -/E{0 rmoveto show}bind def -/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def -/G{0 rmoveto 0 exch ashow}bind def -/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/I{0 exch rmoveto show}bind def -/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def -/K{0 exch rmoveto 0 exch ashow}bind def -/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/M{rmoveto show}bind def -/N{rmoveto 0 SC 3 -1 roll widthshow}bind def -/O{rmoveto 0 exch ashow}bind def -/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/Q{moveto show}bind def -/R{moveto 0 SC 3 -1 roll widthshow}bind def -/S{moveto 0 exch ashow}bind def -/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/SF{ -findfont exch -[exch dup 0 exch 0 exch neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/MF{ -findfont -[5 2 roll -0 3 1 roll -neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/level0 0 def -/RES 0 def -/PL 0 def -/LS 0 def -/MANUAL{ -statusdict begin/manualfeed true store end -}bind def -/PLG{ -gsave newpath clippath pathbbox grestore -exch pop add exch pop -}bind def -/BP{ -/level0 save def -1 setlinecap -1 setlinejoin -72 RES div dup scale -LS{ -90 rotate -}{ -0 PL translate -}ifelse -1 -1 scale -}bind def -/EP{ -level0 restore -showpage -}def -/DA{ -newpath arcn stroke -}bind def -/SN{ -transform -.25 sub exch .25 sub exch -round .25 add exch round .25 add exch -itransform -}bind def -/DL{ -SN -moveto -SN -lineto stroke -}bind def -/DC{ -newpath 0 360 arc closepath -}bind def -/TM matrix def -/DE{ -TM currentmatrix pop -translate scale newpath 0 0 .5 0 360 arc closepath -TM setmatrix -}bind def -/RC/rcurveto load def -/RL/rlineto load def -/ST/stroke load def -/MT/moveto load def -/CL/closepath load def -/Fr{ -setrgbcolor fill -}bind def -/setcmykcolor where{ -pop -/Fk{ -setcmykcolor fill -}bind def -}if -/Fg{ -setgray fill -}bind def -/FL/fill load def -/LW/setlinewidth load def -/Cr/setrgbcolor load def -/setcmykcolor where{ -pop -/Ck/setcmykcolor load def -}if -/Cg/setgray load def -/RE{ -findfont -dup maxlength 1 index/FontName known not{1 add}if dict begin -{ -1 index/FID ne{def}{pop pop}ifelse -}forall -/Encoding exch def -dup/FontName exch def -currentdict end definefont pop -}bind def -/DEFS 0 def -/EBEGIN{ -moveto -DEFS begin -}bind def -/EEND/end load def -/CNT 0 def -/level1 0 def -/PBEGIN{ -/level1 save def -translate -div 3 1 roll div exch scale -neg exch neg exch translate -0 setgray -0 setlinecap -1 setlinewidth -0 setlinejoin -10 setmiterlimit -[]0 setdash -/setstrokeadjust where{ -pop -false setstrokeadjust -}if -/setoverprint where{ -pop -false setoverprint -}if -newpath -/CNT countdictstack def -userdict begin -/showpage{}def -/setpagedevice{}def -}bind def -/PEND{ -countdictstack CNT sub{end}repeat -level1 restore -}bind def -end def -/setpacking where{ -pop -setpacking -}if -%%EndResource -%%EndProlog -%%BeginSetup -%%BeginFeature: *PageSize Default -<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice -%%EndFeature -%%IncludeResource: font Times-Bold -%%IncludeResource: font Times-Italic -%%IncludeResource: font Times-Roman -grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 -def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron -/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent -/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen -/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon -/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O -/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex -/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y -/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft -/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl -/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut -/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash -/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen -/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft -/logicalnot/minus/registered/macron/degree/plusminus/twosuperior -/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior -/ordmasculine/guilsinglright/onequarter/onehalf/threequarters -/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE -/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex -/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn -/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla -/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis -/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash -/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def -/Times-Roman@0 ENC0/Times-Roman RE/Times-Italic@0 ENC0/Times-Italic RE -/Times-Bold@0 ENC0/Times-Bold RE -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 14/Times-Bold@0 SF(Writing P)186.594 141 Q(apers with GR)-.14 E -(OFF using \255me)-.42 E/F1 10/Times-Italic@0 SF(Eric P)274.315 177 Q -2.5(.A)-1.35 G(llman*)-2.5 E/F2 10/Times-Roman@0 SF(Project INGRES) -272.53 201 Q(Electronics Research Laboratory)240.465 213 Q(Uni)237.725 -225 Q -.15(ve)-.25 G(rsity of California, Berk).15 E(ele)-.1 E(y)-.15 E -(Berk)250.625 237 Q(ele)-.1 E 1.3 -.65(y, C)-.15 H 2.5(alifornia 94720) -.65 F F1(Modi\214ed for)233.143 273 Q/F3 9/Times-Italic@0 SF(GR)2.5 E -(OFF)-.36 E F1(by J)2.5 E(ames Clark)-.35 E F2 .045 -(This document describes the te)97 341.4 R .045(xt processing f)-.15 F -.045(acilities a)-.1 F -.25(va)-.2 G .045(ilable on the).25 F/F4 9 -/Times-Roman@0 SF(UNIX)2.545 E F2 2.545<876f>C .045(perating system via) --2.545 F F4(GR)2.544 E(OFF)-.36 E F2(and)2.544 E .435 -(the \255me macro package.)72 353.4 R .435 -(It is assumed that the reader already is generally f)5.435 F .436 -(amiliar with the)-.1 F F4(UNIX)2.936 E F2 .436(operating system)2.936 F -.323(and a te)72 365.4 R .323(xt editor such as)-.15 F/F5 10 -/Times-Bold@0 SF(ex)2.822 E F2 5.322(.T)C .322(his is intended to be a \ -casual introduction, and as such not all material is co)-5.322 F -.15 -(ve)-.15 G 2.822(red. In).15 F(particular)72 377.4 Q 2.677(,m)-.4 G(an) --2.677 E 2.677(yv)-.15 G .177(ariations and additional features of the \ -\255me macro package are not e)-2.927 F 2.677(xplained. F)-.15 F .177 -(or a complete dis-)-.15 F(cussion of this and other issues, see)72 -389.4 Q F1(The \255me Refer)2.5 E(ence Manual)-.37 E F2(and)2.5 E F1 -(The)2.5 E F3(NR)2.5 E(OFF)-.36 E F1(/)A F3(TR)A(OFF)-.36 E F1(Refer)2.5 -E(ence Manual.)-.37 E F4(GR)97 405.6 Q(OFF)-.36 E F2 2.947(,ac)C .447 -(omputer program that runs on the)-2.947 F F4(UNIX)2.947 E F2 .447 -(operating system, reads an input \214le prepared by the user)2.947 F -.25(and outputs a formatted paper suitable for publication or framing.) -72 417.6 R .25(The input consists of)5.25 F F1(te)2.75 E(xt)-.2 E F2 -2.75(,o)C 2.75(rw)-2.75 G .25(ords to be printed,)-2.85 F(and)72 429.6 Q -F1 -.37(re)2.5 G(quests).37 E F2 2.5(,w)C(hich gi)-2.5 E .3 -.15(ve i) --.25 H(nstructions to the).15 E F4(GR)2.5 E(OFF)-.36 E F2 -(program telling ho)2.5 E 2.5(wt)-.25 G 2.5(of)-2.5 G -(ormat the printed cop)-2.5 E -.65(y.)-.1 G .236 -(Section 1 describes the basics of te)97 445.8 R .236(xt processing.) --.15 F .235(Section 2 describes the basic requests.)5.236 F .235 -(Section 3 introduces)5.235 F 3.228(displays. Annotations,)72 457.8 R -.728(such as footnotes, are handled in section 4.)3.228 F .728 -(The more comple)5.728 F 3.228(xr)-.15 G .729 -(equests which are not dis-)-3.228 F .134(cussed in section 2 are co)72 -469.8 R -.15(ve)-.15 G .134(red in section 5.).15 F(Finally)5.134 E -2.634(,s)-.65 G .134(ection 6 discusses things you will need to kno) --2.634 F 2.634(wi)-.25 G 2.634(fy)-2.634 G .134(ou w)-2.634 F .134 -(ant to)-.1 F .108(typeset documents.)72 481.8 R .108(If you are a no) -5.108 F .108(vice, you probably w)-.15 F(on')-.1 E 2.608(tw)-.18 G .108 -(ant to read be)-2.708 F .108(yond section 4 until you ha)-.15 F .408 --.15(ve t)-.2 H .108(ried some).15 F(of the basic features out.)72 493.8 -Q(When you ha)97 510 Q .3 -.15(ve y)-.2 H(our ra).15 E 2.5(wt)-.15 G --.15(ex)-2.5 G 2.5(tr).15 G(eady)-2.5 E 2.5(,c)-.65 G(all the)-2.5 E F4 -(GR)2.5 E(OFF)-.36 E F2(formatter by typing as a request to the)2.5 E F4 -(UNIX)2.5 E F2(shell:)2.5 E(grof)112 526.2 Q 2.5<66ad>-.25 G(me \255T) --2.5 E F1(type \214les)A F2(where)72 542.4 Q F1(type)2.703 E F2 .203 -(describes the type of output de)2.703 F .202(vice you are using.)-.25 F -2.702(Ac)5.202 G .202(omplete description of options to the)-2.702 F F4 -(GR)2.702 E(OFF)-.36 E F2(com-)2.702 E(mand can be found in)72 554.4 Q -F5(gr)2.5 E(off)-.18 E F2(\(1\).)A 1.006(The w)97 570.6 R(ord)-.1 E F1 -(ar)3.506 E(gument)-.37 E F2 1.006(is used in this manual to mean a w) -3.506 F 1.007(ord or number which appears on the same line as a)-.1 F -(request which modi\214es the meaning of that request.)72 582.6 Q -.15 -(Fo)5 G 2.5(re).15 G(xample, the request)-2.65 E(.sp)112 598.8 Q -(spaces one line, b)72 615 Q(ut)-.2 E(.sp 4)112 631.2 Q 1.05 -(spaces four lines.)72 647.4 R 1.05(The number)6.05 F F5(4)3.55 E F2 -1.05(is an)3.55 F F1(ar)3.55 E(gument)-.37 E F2 1.05(to the)3.55 F F5 -(.sp)3.55 E F2 1.05 -(request which says to space four lines instead of one.)3.55 F(Ar)72 -659.4 Q -(guments are separated from the request and from each other by spaces.) --.18 E .32 LW 76 669 72 669 DL 80 669 76 669 DL 84 669 80 669 DL 88 669 -84 669 DL 92 669 88 669 DL 96 669 92 669 DL 100 669 96 669 DL 104 669 -100 669 DL 108 669 104 669 DL 112 669 108 669 DL 116 669 112 669 DL 120 -669 116 669 DL 124 669 120 669 DL 128 669 124 669 DL 132 669 128 669 DL -136 669 132 669 DL 140 669 136 669 DL 144 669 140 669 DL 148 669 144 669 -DL 152 669 148 669 DL 156 669 152 669 DL 160 669 156 669 DL 164 669 160 -669 DL 168 669 164 669 DL 172 669 168 669 DL 176 669 172 669 DL 180 669 -176 669 DL 184 669 180 669 DL 188 669 184 669 DL 192 669 188 669 DL 196 -669 192 669 DL 200 669 196 669 DL 204 669 200 669 DL 208 669 204 669 DL -212 669 208 669 DL 216 669 212 669 DL/F6 8/Times-Roman@0 SF(*Author') -93.6 681 Q 2(sc)-.44 G -(urrent address: Britton Lee, Inc., 1919 Addison Suite 105, Berk)-2 E -(ele)-.08 E 1.04 -.52(y, C)-.12 H(alifornia 94704.).52 E<87>93.6 693 Q -/F7 7/Times-Roman@0 SF(UNIX)A F6(is a trademark of A)2 E -(T&T Bell Laboratories)-.888 E F5(USING GR)72 756 Q(OFF AND \255ME)-.3 E -(1)345.66 E 0 Cg EP -%%Page: 2 2 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(2)345.66 E -2.5(1. Basics)72 96 R(of T)2.5 E(ext Pr)-.92 E(ocessing)-.18 E/F1 10 -/Times-Roman@0 SF .161(The primary function of)112 112.2 R/F2 9 -/Times-Roman@0 SF(GR)2.661 E(OFF)-.36 E F1 .161(is to)2.661 F/F3 10 -/Times-Italic@0 SF(collect)2.661 E F1 -.1(wo)2.661 G .161 -(rds from input lines,).1 F F3(\214ll)2.661 E F1 .162 -(output lines with those w)2.661 F(ords,)-.1 E F3(jus-)2.662 E(tify)87 -124.2 Q F1(the right hand mar)2.5 E(gin by inserting e)-.18 E -(xtra spaces in the line, and output the result.)-.15 E -.15(Fo)5 G 2.5 -(re).15 G(xample, the input:)-2.65 E(No)127 140.4 Q 2.5(wi)-.25 G 2.5 -(st)-2.5 G(he time)-2.5 E(for all good men)127 152.4 Q -(to come to the aid)127 164.4 Q(of their party)127 176.4 Q(.)-.65 E -.15 -(Fo)127 188.4 S(ur score and se).15 E -.15(ve)-.25 G(n).15 E -(years ago,...)127 200.4 Q(will be read, pack)87 216.6 Q -(ed onto output lines, and justi\214ed to produce:)-.1 E(No)127 232.8 Q -3.6(wi)-.25 G 3.6(st)-3.6 G 1.1 -(he time for all good men to come to the aid of their party)-3.6 F 6.099 -(.F)-.65 G 1.099(our score and se)-6.249 F -.15(ve)-.25 G(n).15 E -(years ago,...)127 244.8 Q .393(Sometimes you may w)87 261 R .393 -(ant to start a ne)-.1 F 2.893(wo)-.25 G .394(utput line e)-2.893 F -.15 -(ve)-.25 G 2.894(nt).15 G .394 -(hough the line you are on is not yet full; for e)-2.894 F(xample,)-.15 -E .067(at the end of a paragraph.)87 273 R 1.667 -.8(To d)5.067 H 2.567 -(ot).8 G .066(his you can cause a)-2.567 F F3(br)2.566 E(eak)-.37 E F1 -2.566(,w)C .066(hich starts a ne)-2.566 F 2.566(wo)-.25 G .066 -(utput line.)-2.566 F .066(Some requests cause)5.066 F 2.5(ab)87 285 S -(reak automatically)-2.5 E 2.5(,a)-.65 G 2.5(sd)-2.5 G 2.5(ob)-2.5 G -(lank input lines and input lines be)-2.5 E(ginning with a space.)-.15 E -.007(Not all input lines are te)112 301.2 R .007(xt to be formatted.) --.15 F .007(Some of the input lines are)5.007 F F3 -.37(re)2.507 G -(quests).37 E F1 .007(which describe ho)2.507 F 2.507(wt)-.25 G 2.507 -(of)-2.507 G(or)-2.507 E(-)-.2 E(mat the te)87 313.2 Q 2.5(xt. Requests) --.15 F(al)2.5 E -.1(wa)-.1 G(ys ha).1 E .3 -.15(ve a p)-.2 H -(eriod or an apostrophe \(\231).15 E 1.6661.666 G 2.5(\)a)-1.666 G -2.5(st)-2.5 G(he \214rst character of the input line.)-2.5 E .539 -(The te)112 329.4 R .539(xt formatter also does more comple)-.15 F 3.039 -(xt)-.15 G .538 -(hings, such as automatically numbering pages, skipping o)-3.039 F -.15 -(ve)-.15 G(r).15 E -(page folds, putting footnotes in the correct place, and so forth.)87 -341.4 Q 3.077(Ic)112 357.6 S .577(an of)-3.077 F .577(fer you a fe)-.25 -F 3.077(wh)-.25 G .577(ints for preparing te)-3.077 F .577 -(xt for input to)-.15 F F2(GR)3.077 E(OFF)-.36 E F1 5.577(.F)C .577 -(irst, k)-5.577 F .577(eep the input lines short.)-.1 F(Short)5.578 E -.089(input lines are easier to edit, and)87 369.6 R F2(GR)2.588 E(OFF) --.36 E F1 .088(will pack w)2.588 F .088 -(ords onto longer lines for you an)-.1 F(yho)-.15 E 3.888 -.65(w. I)-.25 -H 2.588(nk).65 G .088(eeping with this,)-2.688 F .847 -(it is helpful to be)87 381.6 R .847(gin a ne)-.15 F 3.347(wl)-.25 G -.847(ine after e)-3.347 F -.15(ve)-.25 G .848 -(ry period, comma, or phrase, since common corrections are to add or).15 -F .411(delete sentences or phrases.)87 393.6 R .41(Second, do not put s\ -paces at the end of lines, since this can sometimes confuse the)5.411 F -F2(NR)87 405.6 Q(OFF)-.36 E F1(processor)2.928 E 5.428(.T)-.55 G .428 -(hird, do not h)-5.428 F .428(yphenate w)-.05 F .428 -(ords at the end of lines \(e)-.1 F .429(xcept w)-.15 F .429 -(ords that should ha)-.1 F .729 -.15(ve h)-.2 H .429(yphens in).1 F .377 -(them, such as \231mother)87 417.6 R(-in-la)-.2 E(w\232\);)-.15 E F2(GR) -2.877 E(OFF)-.36 E F1 .377(is smart enough to h)2.877 F .377(yphenate w) --.05 F .377(ords for you as needed, b)-.1 F .376(ut is not smart)-.2 F -.563(enough to tak)87 429.6 R 3.064(eh)-.1 G .564 -(yphens out and join a w)-3.114 F .564(ord back together)-.1 F 5.564(.A) --.55 G .564(lso, w)-5.564 F .564(ords such as \231mother)-.1 F(-in-la) --.2 E .564(w\232 should not be)-.15 F(brok)87 441.6 Q(en o)-.1 E -.15 -(ve)-.15 G 2.5(ral).15 G -(ine, since then you will get a space where not w)-2.5 E -(anted, such as \231mother)-.1 E 2.5(-i)-.2 G(n-la)-2.5 E(w\232.)-.15 E -F0 2.5(2. Basic)72 465.6 R(Requests)2.5 E 2.5(2.1. P)87 489.6 R -(aragraphs)-.1 E F1 -.15(Pa)127 505.8 S(ragraphs are be).15 E -(gun by using the)-.15 E F0(.pp)2.5 E F1 2.5(request. F)2.5 F(or e)-.15 -E(xample, the input:)-.15 E(.pp)142 522 Q(No)142 534 Q 2.5(wi)-.25 G 2.5 -(st)-2.5 G(he time for all good men)-2.5 E -(to come to the aid of their party)142 546 Q(.)-.65 E -.15(Fo)142 558 S -(ur score and se).15 E -.15(ve)-.25 G 2.5(ny).15 G(ears ago,...)-2.5 E -(produces a blank line follo)102 574.2 Q -(wed by an indented \214rst line.)-.25 E(The result is:)5 E(No)167 590.4 -Q 2.82(wi)-.25 G 2.82(st)-2.82 G .32 -(he time for all good men to come to the aid of their party)-2.82 F 5.32 -(.F)-.65 G .32(our score and)-5.47 F(se)142 602.4 Q -.15(ve)-.25 G 2.5 -(ny).15 G(ears ago,...)-2.5 E 1.071 -(Notice that the sentences of the paragraphs)127 622.8 R F3 1.072 -(must not)3.572 F F1(be)3.572 E 1.072 -(gin with a space, since blank lines and lines)-.15 F(be)102 634.8 Q -(ginning with spaces cause a break.)-.15 E -.15(Fo)5 G 2.5(re).15 G -(xample, if I had typed:)-2.65 E(.pp)142 651 Q(No)142 663 Q 2.5(wi)-.25 -G 2.5(st)-2.5 G(he time for all good men)-2.5 E -(to come to the aid of their party)157 675 Q(.)-.65 E -.15(Fo)142 687 S -(ur score and se).15 E -.15(ve)-.25 G 2.5(ny).15 G(ears ago,...)-2.5 E -(The output w)102 703.2 Q(ould be:)-.1 E 0 Cg EP -%%Page: 3 3 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(3)345.66 E -/F1 10/Times-Roman@0 SF(No)167 96 Q 2.5(wi)-.25 G 2.5(st)-2.5 G -(he time for all good men)-2.5 E(to come to the aid of their party)157 -108 Q 5(.F)-.65 G(our score and se)-5.15 E -.15(ve)-.25 G 2.5(ny).15 G -(ears ago,...)-2.5 E 2.5(An)102 124.2 S .5 -.25(ew l)-2.5 H(ine be).25 E -(gins after the w)-.15 E(ord \231men\232 because the second line be)-.1 -E -.05(ga)-.15 G 2.5(nw).05 G(ith a space character)-2.5 E(.)-.55 E -(There are man)127 140.4 Q 2.5(yf)-.15 G -(ancier types of paragraphs, which will be described later)-2.6 E(.)-.55 -E F0 2.5(2.2. Headers)87 164.4 R(and F)2.5 E(ooters)-.25 E F1 .012 -(Arbitrary headers and footers can be put at the top and bottom of e)127 -180.6 R -.15(ve)-.25 G .012(ry page.).15 F -1 -.8(Tw o)5.012 H .012 -(requests of the form)3.312 F F0(.he)102 192.6 Q/F2 10/Times-Italic@0 SF -(title)2.5 E F1(and)2.78 E F0(.f)2.78 E(o)-.25 E F2(title)2.5 E F1 .28 -(de\214ne the titles to put at the head and the foot of e)2.78 F -.15 -(ve)-.25 G .28(ry page, respecti).15 F -.15(ve)-.25 G(ly).15 E 5.28(.T) --.65 G .28(he titles are)-5.28 F(called)102 204.6 Q F2(thr)2.674 E -(ee-part)-.37 E F1 .174(titles, that is, there is a left-justi\214ed pa\ -rt, a centered part, and a right-justi\214ed part.)2.674 F 1.773 -.8 -(To s)5.173 H(epa-).8 E .016 -(rate these three parts the \214rst character of)102 216.6 R F2(title) -2.516 E F1(\(whate)2.516 E -.15(ve)-.25 G 2.516(ri).15 G 2.517(tm)-2.516 -G .017(ay be\) is used as a delimiter)-2.517 F 5.017(.A)-.55 G .317 -.15 -(ny c)-5.017 H .017(haracter may).15 F .571(be used, b)102 228.6 R .571 -(ut backslash and double quote marks should be a)-.2 F -.2(vo)-.2 G 3.07 -(ided. The).2 F .57(percent sign is replaced by the cur)3.07 F(-)-.2 E -(rent page number whene)102 240.6 Q -.15(ve)-.25 G 2.5(rf).15 G -(ound in the title.)-2.5 E -.15(Fo)5 G 2.5(re).15 G(xample, the input:) --2.65 E<2e686520b4b425b4b4>142 256.8 Q -(.fo \264Jane Jones\264\264My Book\264)142 268.8 Q .66(results in the p\ -age number centered at the top of each page, \231Jane Jones\232 in the \ -lo)102 285 R .661(wer left corner)-.25 F 3.161(,a)-.4 G .661(nd \231My) --3.161 F(Book\232 in the lo)102 297 Q(wer right corner)-.25 E(.)-.55 E -F0 2.5(2.3. Double)87 321 R(Spacing)2.5 E/F3 9/Times-Roman@0 SF(GR)127 -337.2 Q(OFF)-.36 E F1 .669(will double space output te)3.169 F .669 -(xt automatically if you use the request)-.15 F F0(.ls 2)3.168 E F1 -3.168(,a)C 3.168(si)-3.168 G 3.168(sd)-3.168 G .668(one in this sec-) --3.168 F 2.5(tion. Y)102 361.2 R(ou can re)-1.1 E -.15(ve)-.25 G -(rt to single spaced mode by typing).15 E F0(.ls 1)2.5 E F1(.)A F0 2.5 -(2.4. P)87 385.2 R(age Lay)-.1 E(out)-.25 E F1 2.608(An)127 401.4 S .108 -(umber of requests allo)-2.608 F 2.608(wy)-.25 G .108 -(ou to change the w)-2.608 F .108(ay the printed cop)-.1 F 2.608(yl)-.1 -G .109(ooks, sometimes called the)-2.608 F F2(layout)2.609 E F1 1.005 -(of the output page.)102 413.4 R 1.004(Most of these requests adjust th\ -e placing of \231white space\232 \(blank lines or spaces\).)6.005 F(In) -6.004 E .443(these e)102 425.4 R .444 -(xplanations, characters in italics should be replaced with v)-.15 F -.444(alues you wish to use; bold characters rep-)-.25 F -(resent characters which should actually be typed.)102 437.4 Q(The)127 -453.6 Q F0(.bp)2.5 E F1(request starts a ne)2.5 E 2.5(wp)-.25 G(age.) --2.5 E .428(The request)127 469.8 R F0(.sp)2.928 E F2(N)2.5 E F1(lea) -2.928 E -.15(ve)-.2 G(s).15 E F2(N)2.928 E F1 .428 -(lines of blank space.)2.928 F F2(N)5.428 E F1 .428 -(can be omitted \(meaning skip a single line\) or can)2.928 F -(be of the form)102 481.8 Q F2(N)2.5 E F0(i).833 E F1(\(for)2.5 E F2(N) -2.5 E F1(inches\) or)2.5 E F2(N)2.5 E F0(c).833 E F1(\(for)2.5 E F2(N) -2.5 E F1 2.5(centimeters\). F)2.5 F(or e)-.15 E(xample, the input:)-.15 -E(.sp 1.5i)142 498 Q(My thoughts on the subject)142 510 Q(.sp)142 522 Q -(lea)102 538.2 Q -.15(ve)-.2 G 2.918(so).15 G .418 -(ne and a half inches of space, follo)-2.918 F .419 -(wed by the line \231My thoughts on the subject\232, follo)-.25 F .419 -(wed by a sin-)-.25 F(gle blank line.)102 550.2 Q(The)127 566.4 Q F0 -(.in)3.017 E F2(+N)2.5 E F1 .516(request changes the amount of white sp\ -ace on the left of the page \(the)3.017 F F2(indent)3.016 E F1 3.016 -(\). The)B(ar)3.016 E(gu-)-.18 E(ment)102 578.4 Q F2(N)3.407 E F1 .907 -(can be of the form)3.407 F F0(+)3.407 E F2(N)A F1 .907(\(meaning lea) -3.407 F -.15(ve)-.2 G F2(N)3.557 E F1 .908 -(spaces more than you are already lea)3.407 F(ving\),)-.2 E F03.408 -E F2(N)A F1(\(meaning)3.408 E(lea)102 590.4 Q .422 -.15(ve l)-.2 H .121 -(ess than you do no).15 F .121(w\), or just)-.25 F F2(N)2.621 E F1 .121 -(\(meaning lea)2.621 F .421 -.15(ve ex)-.2 H(actly).15 E F2(N)2.621 E F1 -(spaces\).)2.621 E F2(N)5.121 E F1 .121(can be of the form)2.621 F F2(N) -2.621 E F0(i).833 E F1(or)2.621 E F2(N)2.621 E F0(c).833 E F1(also.) -2.621 E -.15(Fo)102 602.4 S 2.5(re).15 G(xample, the input:)-2.65 E -(initial te)142 618.6 Q(xt)-.15 E(.in 5)142 630.6 Q(some te)142 642.6 Q -(xt)-.15 E(.in +1i)142 654.6 Q(more te)142 666.6 Q(xt)-.15 E(.in \2552c) -142 678.6 Q(\214nal te)142 690.6 Q(xt)-.15 E .06(produces \231some te) -102 706.8 R .06(xt\232 indented e)-.15 F .06(xactly \214v)-.15 F 2.56 -(es)-.15 G .06(paces from the left mar)-2.56 F .06(gin, \231more te)-.18 -F .06(xt\232 indented \214v)-.15 F 2.56(es)-.15 G .06(paces plus)-2.56 F -.413(one inch from the left mar)102 718.8 R .413 -(gin \(\214fteen spaces on a pica type)-.18 F .413 -(writer\), and \231\214nal te)-.25 F .412(xt\232 indented \214v)-.15 F -2.912(es)-.15 G .412(paces plus)-2.912 F 0 Cg EP -%%Page: 4 4 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(4)345.66 E -/F1 10/Times-Roman@0 SF(one inch minus tw)102 96 Q 2.5(oc)-.1 G -(entimeters from the mar)-2.5 E 2.5(gin. That)-.18 F(is, the output is:) -2.5 E(initial te)142 112.2 Q(xt)-.15 E(some te)192 124.2 Q(xt)-.15 E -(more te)264 136.2 Q(xt)-.15 E(\214nal te)207.308 148.2 Q(xt)-.15 E(The) -127 168.6 Q F0(.ti)3.726 E/F2 10/Times-Italic@0 SF(+N)2.5 E F1 1.227 -(\(temporary indent\) request is used lik)3.726 F(e)-.1 E F0(.in)3.727 E -F2(+N)2.5 E F1 1.227(when the indent should apply to one line)3.727 F -(only)102 180.6 Q 2.5(,a)-.65 G(fter which it should re)-2.5 E -.15(ve) --.25 G(rt to the pre).15 E(vious indent.)-.25 E -.15(Fo)5 G 2.5(re).15 G -(xample, the input:)-2.65 E(.in 1i)142 196.8 Q(.ti 0)142 208.8 Q -.8(Wa) -142 220.8 S(re, James R.).8 E(The Best of Confucius,)5 E(Halc)142 232.8 -Q(yon House, 1950.)-.15 E(An e)142 244.8 Q -(xcellent book containing translations of)-.15 E -(most of Confucius\264 most delightful sayings.)142 256.8 Q 2.5(Ad)142 -268.8 S(e\214nite must for an)-2.5 E -(yone interested in the early foundations)-.15 E(of Chinese philosoph) -142 280.8 Q -.65(y.)-.05 G(produces:)102 297 Q -.8(Wa)102 309 S .278 -(re, James R.).8 F .278(The Best of Confucius, Halc)5.278 F .277 -(yon House, 1950.)-.15 F .277(An e)5.277 F .277 -(xcellent book containing translations of)-.15 F .923 -(most of Confucius' most delightful sayings.)174 321 R 3.423(Ad)5.923 G -.923(e\214nite must for an)-3.423 F .923(yone interested in the)-.15 F -(early foundations of Chinese philosoph)174 333 Q -.65(y.)-.05 G -1.25 --.7(Te x)127 349.2 T 2.905(tl).7 G .405 -(ines can be centered by using the)-2.905 F F0(.ce)2.905 E F1 2.905 -(request. The)2.905 F .405(line after the)2.905 F F0(.ce)2.905 E F1 .405 -(is centered \(horizontally\) on)2.905 F .21(the page.)102 361.2 R 1.81 --.8(To c)5.21 H .21(enter more than one line, use).8 F F0(.ce)2.71 E F2 -(N)2.5 E F1(\(where)2.71 E F2(N)2.71 E F1 .211 -(is the number of lines to center\), follo)2.711 F .211(wed by the)-.25 -F F2(N)102 373.2 Q F1 2.5(lines. If)2.5 F(you w)2.5 E(ant to center man) --.1 E 2.5(yl)-.15 G(ines b)-2.5 E(ut don')-.2 E 2.5(tw)-.18 G -(ant to count them, type:)-2.6 E(.ce 1000)142 389.4 Q(lines to center) -142 401.4 Q(.ce 0)142 413.4 Q(The)102 429.6 Q F0(.ce 0)2.5 E F1 -(request tells)2.5 E/F3 9/Times-Roman@0 SF(GR)2.5 E(OFF)-.36 E F1 -(to center zero more lines, in other w)2.5 E(ords, stop centering.)-.1 E -.146(All of these requests cause a break; that is, the)127 445.8 R 2.646 -(ya)-.15 G -.1(lwa)-2.646 G .145(ys start a ne).1 F 2.645(wl)-.25 G -2.645(ine. If)-2.645 F .145(you w)2.645 F .145(ant to start a ne)-.1 F -2.645(wl)-.25 G(ine)-2.645 E(without performing an)102 457.8 Q 2.5(yo) --.15 G(ther action, use)-2.5 E F0(.br)2.5 E F1(.)A F0 2.5(3. Displays)72 -481.8 R F1 .201(Displays are sections of te)112 498 R .201 -(xt to be set of)-.15 F 2.701(ff)-.25 G .202(rom the body of the paper) --2.701 F 5.202(.M)-.55 G .202(ajor quotes, tables, and \214gures are) --5.202 F .48(types of displays, as are all the e)87 510 R .48 -(xamples used in this document.)-.15 F .48(All displays e)5.48 F .48 -(xcept centered blocks are output)-.15 F(single spaced.)87 522 Q F0 2.5 -(3.1. Major)87 546 R(Quotes)2.5 E F1 1.185 -(Major quotes are quotes which are se)127 562.2 R -.15(ve)-.25 G 1.186 -(ral lines long, and hence are set in from the rest of the te).15 F(xt) --.15 E .556(without quote marks around them.)102 574.2 R .556 -(These can be generated using the commands)5.556 F F0(.\(q)3.056 E F1 -(and)3.056 E F0(.\)q)3.056 E F1 .555(to surround the)3.056 F 2.5 -(quote. F)102 586.2 R(or e)-.15 E(xample, the input:)-.15 E(As W)142 -602.4 Q(eizenbaum points out:)-.8 E(.\(q)142 614.4 Q -(It is said that to e)142 626.4 Q(xplain is to e)-.15 E(xplain a)-.15 E --.1(wa)-.15 G -.65(y.).1 G(This maxim is no)142 638.4 Q -(where so well ful\214lled)-.25 E -(as in the areas of computer programming,...)142 650.4 Q(.\)q)142 662.4 -Q(generates as output:)102 678.6 Q(As W)102 694.8 Q -(eizenbaum points out:)-.8 E F3 .106(It is said that to e)122 709.8 R -.106(xplain is to e)-.135 F .106(xplain a)-.135 F -.09(wa)-.135 G 3.526 --.585(y. T).09 H .106(his maxim is no).585 F .107 -(where so well ful\214lled as in the areas of comput-)-.225 F -(er programming,...)122 720.6 Q 0 Cg EP -%%Page: 5 5 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(5)345.66 E -2.5(3.2. Lists)87 96 R/F1 10/Times-Roman@0 SF(A)127 112.2 Q/F2 10 -/Times-Italic@0 SF(list)3.844 E F1 1.344 -(is an indented, single spaced, un\214lled display)3.844 F 6.344(.L)-.65 -G 1.343(ists should be used when the material to be)-6.344 F .268 -(printed should not be \214lled and justi\214ed lik)102 124.2 R 2.768 -(en)-.1 G .268(ormal te)-2.768 F .268 -(xt, such as columns of \214gures or the e)-.15 F .268(xamples used in) --.15 F(this paper)102 136.2 Q 5(.L)-.55 G -(ists are surrounded by the requests)-5 E F0(.\(l)2.5 E F1(and)2.5 E F0 -(.\)l)2.5 E F1 5(.F)C(or e)-5.15 E(xample, type:)-.15 E(Alternati)142 -152.4 Q -.15(ve)-.25 G 2.5(st).15 G 2.5(oa)-2.5 G -.2(vo)-2.7 G -(id deadlock are:).2 E(.\(l)142 164.4 Q(Lock in a speci\214ed order)142 -176.4 Q(Detect deadlock and back out one process)142 188.4 Q -(Lock all resources needed before proceeding)142 200.4 Q(.\)l)142 212.4 -Q(will produce:)102 228.6 Q(Alternati)102 240.6 Q -.15(ve)-.25 G 2.5(st) -.15 G 2.5(oa)-2.5 G -.2(vo)-2.7 G(id deadlock are:).2 E -(Lock in a speci\214ed order)142 256.8 Q -(Detect deadlock and back out one process)142 268.8 Q -(Lock all resources needed before proceeding)142 280.8 Q F0 2.5(3.3. K) -87 309 R(eeps)-.25 E F1(A)127 325.2 Q F2 -.1(ke)3.588 G(ep).1 E F1 1.088 -(is a display of lines which are k)3.588 F 1.088 -(ept on a single page if possible.)-.1 F 1.088(An e)6.088 F 1.088 -(xample of where you)-.15 F -.1(wo)102 337.2 S .211(uld use a k).1 F -.212(eep might be a diagram.)-.1 F -.25(Ke)5.212 G .212(eps dif).25 F -.212(fer from lists in that lists may be brok)-.25 F .212(en o)-.1 F --.15(ve)-.15 G 2.712(rap).15 G .212(age bound-)-2.712 F(ary whereas k) -102 349.2 Q(eeps will not.)-.1 E 1.016(Blocks are the basic kind of k) -127 365.4 R 3.516(eep. The)-.1 F 3.516(yb)-.15 G -.15(eg)-3.516 G 1.016 -(in with the request).15 F F0(.\(b)3.516 E F1 1.016 -(and end with the request)3.516 F F0(.\)b)3.515 E F1 6.015(.I)C(f)-6.015 -E .184(there is not room on the current page for e)102 377.4 R -.15(ve) --.25 G .185(rything in the block, a ne).15 F 2.685(wp)-.25 G .185 -(age is be)-2.685 F 2.685(gun. This)-.15 F .185(has the unpleas-)2.685 F -.941(ant ef)102 389.4 R .941(fect of lea)-.25 F .941 -(ving blank space at the bottom of the page.)-.2 F .94 -(When this is not appropriate, you can use the)5.94 F(alternati)102 -401.4 Q -.15(ve)-.25 G 2.5(,c).15 G(alled)-2.5 E F2(\215oating k)2.5 E -(eeps)-.1 E F1(.)A F2 .432(Floating k)127 417.6 R(eeps)-.1 E F1(mo)2.932 -E .732 -.15(ve r)-.15 H(elati).15 E .732 -.15(ve t)-.25 H 2.933(ot).15 G -.433(he te)-2.933 F 2.933(xt. Hence,)-.15 F(the)2.933 E 2.933(ya)-.15 G -.433(re good for things which will be referred to by)-2.933 F .308 -(name, such as \231See \214gure 3\232.)102 429.6 R 2.808<418d>5.308 G -.308(oating k)-2.808 F .308(eep will appear at the bottom of the curren\ -t page if it will \214t; oth-)-.1 F .258 -(erwise, it will appear at the top of the ne)102 441.6 R .258(xt page.) --.15 F .258(Floating k)5.258 F .258(eeps be)-.1 F .258 -(gin with the line)-.15 F F0(.\(z)2.758 E F1 .259(and end with the line) -2.758 F F0(.\)z)102 453.6 Q F1 5.38(.F)C .38(or an e)-5.53 F .379 -(xample of a \215oating k)-.15 F .379(eep, see \214gure 1.)-.1 F(The) -5.379 E F0(.hl)2.879 E F1 .379(request is used to dra)2.879 F 2.879(wah) --.15 G .379(orizontal line so that)-2.879 F -(the \214gure stands out from the te)102 465.6 Q(xt.)-.15 E .4 LW 149 -528 144 528 DL 153 528 148 528 DL 158 528 153 528 DL 163 528 158 528 DL -168 528 163 528 DL 173 528 168 528 DL 178 528 173 528 DL 183 528 178 528 -DL 188 528 183 528 DL 193 528 188 528 DL 198 528 193 528 DL 203 528 198 -528 DL 208 528 203 528 DL 213 528 208 528 DL 218 528 213 528 DL 223 528 -218 528 DL 228 528 223 528 DL 233 528 228 528 DL 238 528 233 528 DL 243 -528 238 528 DL 248 528 243 528 DL 253 528 248 528 DL 258 528 253 528 DL -263 528 258 528 DL 268 528 263 528 DL 273 528 268 528 DL 278 528 273 528 -DL 283 528 278 528 DL 288 528 283 528 DL 293 528 288 528 DL 298 528 293 -528 DL 303 528 298 528 DL 308 528 303 528 DL 313 528 308 528 DL 318 528 -313 528 DL 323 528 318 528 DL 328 528 323 528 DL 333 528 328 528 DL 338 -528 333 528 DL 343 528 338 528 DL 348 528 343 528 DL 353 528 348 528 DL -358 528 353 528 DL 363 528 358 528 DL 368 528 363 528 DL 373 528 368 528 -DL 378 528 373 528 DL 383 528 378 528 DL 388 528 383 528 DL 393 528 388 -528 DL 398 528 393 528 DL 403 528 398 528 DL 408 528 403 528 DL 413 528 -408 528 DL 418 528 413 528 DL 423 528 418 528 DL 428 528 423 528 DL 433 -528 428 528 DL 438 528 433 528 DL 443 528 438 528 DL 448 528 443 528 DL -453 528 448 528 DL 458 528 453 528 DL 463 528 458 528 DL 468 528 463 528 -DL(.\(z)144 552 Q(.hl)144 564 Q -1.25 -.7(Te x)144 576 T 2.5(to).7 G 2.5 -(fk)-2.5 G(eep to be \215oated.)-2.6 E(.sp)144 588 Q(.ce)144 600 Q -(Figure 1.)144 612 Q(Example of a Floating K)5 E(eep.)-.25 E(.hl)144 624 -Q(.\)z)144 636 Q(Figure 1.)227.94 660 Q(Example of a Floating K)5 E -(eep.)-.25 E 149 672 144 672 DL 153 672 148 672 DL 158 672 153 672 DL -163 672 158 672 DL 168 672 163 672 DL 173 672 168 672 DL 178 672 173 672 -DL 183 672 178 672 DL 188 672 183 672 DL 193 672 188 672 DL 198 672 193 -672 DL 203 672 198 672 DL 208 672 203 672 DL 213 672 208 672 DL 218 672 -213 672 DL 223 672 218 672 DL 228 672 223 672 DL 233 672 228 672 DL 238 -672 233 672 DL 243 672 238 672 DL 248 672 243 672 DL 253 672 248 672 DL -258 672 253 672 DL 263 672 258 672 DL 268 672 263 672 DL 273 672 268 672 -DL 278 672 273 672 DL 283 672 278 672 DL 288 672 283 672 DL 293 672 288 -672 DL 298 672 293 672 DL 303 672 298 672 DL 308 672 303 672 DL 313 672 -308 672 DL 318 672 313 672 DL 323 672 318 672 DL 328 672 323 672 DL 333 -672 328 672 DL 338 672 333 672 DL 343 672 338 672 DL 348 672 343 672 DL -353 672 348 672 DL 358 672 353 672 DL 363 672 358 672 DL 368 672 363 672 -DL 373 672 368 672 DL 378 672 373 672 DL 383 672 378 672 DL 388 672 383 -672 DL 393 672 388 672 DL 398 672 393 672 DL 403 672 398 672 DL 408 672 -403 672 DL 413 672 408 672 DL 418 672 413 672 DL 423 672 418 672 DL 428 -672 423 672 DL 433 672 428 672 DL 438 672 433 672 DL 443 672 438 672 DL -448 672 443 672 DL 453 672 448 672 DL 458 672 453 672 DL 463 672 458 672 -DL 468 672 463 672 DL 0 Cg EP -%%Page: 6 6 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(6)345.66 E -2.5(3.4. F)87 96 R(ancier Displays)-.25 E/F1 10/Times-Roman@0 SF -.25 -(Ke)127 112.2 S .27(eps and lists are normally collected in).25 F/F2 10 -/Times-Italic@0 SF(no\214ll)2.77 E F1 .27(mode, so that the)2.77 F 2.77 -(ya)-.15 G .27(re good for tables and such.)-2.77 F .27(If you)5.27 F --.1(wa)102 124.2 S .445(nt a display in \214ll mode \(for te).1 F .445 -(xt\), type)-.15 F F0(.\(l F)2.944 E F1 .444 -(\(Throughout this section, comments applied to)2.944 F F0(.\(l)2.944 E -F1 .444(also apply)2.944 F(to)102 136.2 Q F0(.\(b)2.5 E F1(and)2.5 E F0 -(.\(z)2.5 E F1 2.5(\). This)B -(kind of display will be indented from both mar)2.5 E 2.5(gins. F)-.18 F -(or e)-.15 E(xample, the input:)-.15 E(.\(l F)142 152.4 Q(And no)142 -164.4 Q 2.5(wb)-.25 G -.1(oy)-2.5 G 2.5(sa).1 G(nd girls,)-2.5 E 2.5(an) -142 176.4 S -.25(ew)-2.5 G(er).25 E 2.5(,b)-.4 G(igger)-2.5 E 2.5(,b)-.4 -G(etter to)-2.5 E 2.5(yt)-.1 G(han e)-2.5 E -.15(ve)-.25 G 2.5(rb).15 G -(efore!)-2.5 E(Be the \214rst on your block to ha)142 188.4 Q .3 -.15 -(ve y)-.2 H(our o).15 E(wn computer!)-.25 E -1(Ye)142 200.4 S 2.5(sk)1 G -(ids, you too can ha)-2.5 E .3 -.15(ve o)-.2 H(ne of these modern).15 E -(data processing de)142 212.4 Q(vices.)-.25 E -1.1(Yo)142 224.4 S 2.5 -(ut)1.1 G(oo can produce beautifully formatted papers)-2.5 E(without e) -142 236.4 Q -.15(ve)-.25 G 2.5(nb).15 G(atting an e)-2.5 E(ye!)-.15 E -(.\)l)142 248.4 Q(will be output as:)102 264.6 Q .08(And no)142 280.8 R -2.58(wb)-.25 G -.1(oy)-2.58 G 2.58(sa).1 G .08(nd girls, a ne)-2.58 F -(wer)-.25 E 2.58(,b)-.4 G(igger)-2.58 E 2.58(,b)-.4 G .08(etter to)-2.58 -F 2.58(yt)-.1 G .08(han e)-2.58 F -.15(ve)-.25 G 2.58(rb).15 G 2.58 -(efore! Be)-2.58 F .08(the \214rst on your)2.58 F .384(block to ha)142 -292.8 R .683 -.15(ve y)-.2 H .383(our o).15 F .383(wn computer!)-.25 F --1(Ye)5.383 G 2.883(sk)1 G .383(ids, you too can ha)-2.883 F .683 -.15 -(ve o)-.2 H .383(ne of these modern data).15 F .463(processing de)142 -304.8 R 2.963(vices. Y)-.25 F .464 -(ou too can produce beautifully formatted papers without e)-1.1 F -.15 -(ve)-.25 G 2.964(nb).15 G(at-)-2.964 E(ting an e)142 316.8 Q(ye!)-.15 E -.733(Lists and blocks are also normally indented \(\215oating k)127 -337.2 R .733(eeps are normally left justi\214ed\).)-.1 F 2.333 -.8(To g) -5.733 H .733(et a left-).8 F .397(justi\214ed list, type)102 349.2 R F0 -(.\(l L)2.897 E F1 5.397(.T)C 2.897(og)-6.197 G .397 -(et a list centered line-for)-2.897 F .397(-line, type)-.2 F F0 .397 -(.\(l C)2.897 F F1 5.397(.F)C .397(or e)-5.547 F .397 -(xample, to get a \214lled, left justi-)-.15 F(\214ed list, enter:)102 -361.2 Q(.\(l L F)142 377.4 Q(te)142 389.4 Q(xt of block)-.15 E(.\)l)142 -401.4 Q(The input:)102 417.6 Q(.\(l)142 433.8 Q -(\214rst line of un\214lled display)142 445.8 Q(more lines)142 457.8 Q -(.\)l)142 469.8 Q(produces the indented te)102 486 Q(xt:)-.15 E -(\214rst line of un\214lled display)142 502.2 Q(more lines)142 514.2 Q --.8(Ty)102 530.4 S(ping the character).8 E F0(L)2.5 E F1(after the)2.5 E -F0(.\(l)2.5 E F1(request produces the left justi\214ed result:)2.5 E -(\214rst line of un\214lled display)102 546.6 Q(more lines)102 558.6 Q -(Using)102 574.8 Q F0(C)2.5 E F1(instead of)2.5 E F0(L)2.5 E F1 -(produces the line-at-a-time centered output:)2.5 E -(\214rst line of un\214lled display)266.83 591 Q(more lines)300.03 603 Q -.677(Sometimes it may be that you w)127 623.4 R .677(ant to center se) --.1 F -.15(ve)-.25 G .676 -(ral lines as a group, rather than centering them one).15 F .237 -(line at a time.)102 635.4 R 1.837 -.8(To d)5.237 H 2.737(ot).8 G .238 -(his use centered blocks, which are surrounded by the requests)-2.737 F -F0(.\(c)2.738 E F1(and)2.738 E F0(.\)c)2.738 E F1 5.238(.A)C .238 -(ll the lines)-5.238 F .28(are centered as a unit, such that the longes\ -t line is centered and the rest are lined up around that line.)102 647.4 -R(Notice)5.279 E .274(that lines do not mo)102 659.4 R .574 -.15(ve r) --.15 H(elati).15 E .574 -.15(ve t)-.25 H 2.774(oe).15 G .274 -(ach other using centered blocks, whereas the)-2.774 F 2.774(yd)-.15 G -2.774(ou)-2.774 G .275(sing the)-2.774 F F0(C)2.775 E F1(ar)2.775 E .275 -(gument to)-.18 F -.1(ke)102 671.4 S(eps.).1 E .685(Centered blocks are) -127 687.6 R F2(not)3.184 E F1 -.1(ke)3.184 G .684 -(eps, and may be used in conjunction with k).1 F 3.184(eeps. F)-.1 F -.684(or e)-.15 F .684(xample, to center a)-.15 F -(group of lines as a unit and k)102 699.6 Q(eep them on one page, use:) --.1 E 0 Cg EP -%%Page: 7 7 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(7)345.66 E -/F1 10/Times-Roman@0 SF(.\(b L)142 96 Q(.\(c)142 108 Q -(\214rst line of un\214lled display)142 120 Q(more lines)142 132 Q(.\)c) -142 144 Q(.\)b)142 156 Q(to produce:)102 172.2 Q -(\214rst line of un\214lled display)251.83 188.4 Q(more lines)251.83 -200.4 Q .172(If the block requests \()102 216.6 R F0(.\(b)A F1(and)2.672 -E F0(.\)b)2.672 E F1 2.672(\)h)C .172(ad been omitted the result w) --2.672 F .173(ould ha)-.1 F .473 -.15(ve b)-.2 H .173(een the same, b) -.15 F .173(ut with no guaran-)-.2 F .472 -(tee that the lines of the centered block w)102 228.6 R .472(ould ha)-.1 -F .772 -.15(ve a)-.2 H .472(ll been on one page.).15 F .472 -(Note the use of the)5.472 F F0(L)2.971 E F1(ar)2.971 E .471(gument to) --.18 F F0(.\(b)102 240.6 Q F1 2.616(;t)C .117(his causes the centered b\ -lock to center within the entire line rather than within the line minus\ - the indent.)-2.616 F(Also, the center requests must be nested)102 252.6 -Q/F2 10/Times-Italic@0 SF(inside)2.5 E F1(the k)2.5 E(eep requests.)-.1 -E F0 2.5(4. Annotations)72 276.6 R F1 .785 -(There are a number of requests to sa)112 292.8 R 1.085 -.15(ve t)-.2 H --.15(ex).15 G 3.285(tf).15 G .785(or later printing.)-3.285 F F2 -1.05 -(Fo)5.785 G(otnotes)1.05 E F1 .784(are printed at the bottom of the) -3.285 F .654(current page.)87 304.8 R F2 .654(Delayed te)5.654 F(xt)-.2 -E F1 .654(is intended to be a v)3.154 F .654 -(ariant form of footnote; the te)-.25 F .655(xt is printed only when e) --.15 F(xplicitly)-.15 E .628(called for)87 316.8 R 3.128(,s)-.4 G .628 -(uch as at the end of each chapter)-3.128 F(.)-.55 E F2(Inde)5.627 E -(xes)-.2 E F1 .627(are a type of delayed te)3.127 F .627(xt ha)-.15 F -.627(ving a tag \(usually the page)-.2 F -(number\) attached to each entry after a ro)87 328.8 Q 2.5(wo)-.25 G 2.5 -(fd)-2.5 G 2.5(ots. Inde)-2.5 F -.15(xe)-.15 G 2.5(sa).15 G(re also sa) --2.5 E -.15(ve)-.2 G 2.5(du).15 G(ntil called for e)-2.5 E(xplicitly) --.15 E(.)-.65 E F0 2.5(4.1. F)87 352.8 R(ootnotes)-.25 E F1 -.15(Fo)127 -369 S .083(otnotes be).15 F .083(gin with the request)-.15 F F0(.\(f) -2.583 E F1 .083(and end with the request)2.583 F F0(.\)f)2.584 E F1 -5.084(.T)C .084(he current footnote number is main-)-5.084 F .16 -(tained automatically)102 383 R 2.66(,a)-.65 G .159 -(nd can be used by typing \\**, to produce a footnote number)-2.66 F/F3 -7/Times-Roman@0 SF(1)-4 I F1 5.159(.T)4 K .159(he number is automat-) --5.159 F(ically incremented after e)102 395 Q -.15(ve)-.25 G -(ry footnote.).15 E -.15(Fo)5 G 2.5(re).15 G(xample, the input:)-2.65 E -(.\(q)142 411.2 Q 2.5(Am)142 423.2 S(an who is not upright)-2.5 E -(and at the same time is presumptuous;)142 435.2 Q -(one who is not diligent and at the same time is ignorant;)142 447.2 Q -(one who is untruthful and at the same time is incompetent;)142 459.2 Q -(such men I do not count among acquaintances.\\**)142 471.2 Q(.\(f)142 -483.2 Q(\\**James R. W)142 495.2 Q(are,)-.8 E(.ul)142 507.2 Q -(The Best of Confucius,)142 519.2 Q(Halc)142 531.2 Q(yon House, 1950.) --.15 E -.15(Pa)142 543.2 S(ge 77.).15 E(.\)f)142 555.2 Q(.\)q)142 567.2 -Q(generates the result:)102 583.4 Q/F4 9/Times-Roman@0 SF 2.477(Am)122 -598.4 S .228(an who is not upright and at the same time is presumptuous\ -; one who is not diligent and at the same time)-2.477 F .752(is ignoran\ -t; one who is untruthful and at the same time is incompetent; such men \ -I do not count among ac-)122 609.2 R(quaintances.)122 621.8 Q/F5 6 -/Times-Roman@0 SF(2)-3.6 I F1 .139 -(It is important that the footnote appears)102 638 R F2(inside)2.639 E -F1 .139 -(the quote, so that you can be sure that the footnote will appear)2.639 -F(on the same page as the quote.)102 650 Q .32 LW 76 665.2 72 665.2 DL -80 665.2 76 665.2 DL 84 665.2 80 665.2 DL 88 665.2 84 665.2 DL 92 665.2 -88 665.2 DL 96 665.2 92 665.2 DL 100 665.2 96 665.2 DL 104 665.2 100 -665.2 DL 108 665.2 104 665.2 DL 112 665.2 108 665.2 DL 116 665.2 112 -665.2 DL 120 665.2 116 665.2 DL 124 665.2 120 665.2 DL 128 665.2 124 -665.2 DL 132 665.2 128 665.2 DL 136 665.2 132 665.2 DL 140 665.2 136 -665.2 DL 144 665.2 140 665.2 DL 148 665.2 144 665.2 DL 152 665.2 148 -665.2 DL 156 665.2 152 665.2 DL 160 665.2 156 665.2 DL 164 665.2 160 -665.2 DL 168 665.2 164 665.2 DL 172 665.2 168 665.2 DL 176 665.2 172 -665.2 DL 180 665.2 176 665.2 DL 184 665.2 180 665.2 DL 188 665.2 184 -665.2 DL 192 665.2 188 665.2 DL 196 665.2 192 665.2 DL 200 665.2 196 -665.2 DL 204 665.2 200 665.2 DL 208 665.2 204 665.2 DL 212 665.2 208 -665.2 DL 216 665.2 212 665.2 DL/F6 5/Times-Roman@0 SF(1)93.6 675.6 Q/F7 -8/Times-Roman@0 SF(Lik)3.2 I 2(et)-.08 G(his.)-2 E F6(2)93.6 689.2 Q F7 -(James R. W)3.2 I(are,)-.64 E/F8 8/Times-Italic@0 SF -(The Best of Confucius,)2 E F7(Halc)2 E(yon House, 1950.)-.12 E -.12(Pa) -4 G(ge 77.).12 E 0 Cg EP -%%Page: 8 8 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(8)345.66 E -2.5(4.2. Delay)87 96 R(ed T)-.1 E(ext)-.92 E/F1 10/Times-Roman@0 SF -1.544(Delayed te)127 112.2 R 1.544(xt is v)-.15 F 1.544 -(ery similar to a footnote e)-.15 F 1.543 -(xcept that it is printed when called for e)-.15 F(xplicitly)-.15 E -6.543(.T)-.65 G(his)-6.543 E(allo)102 124.2 Q -(ws a list of references to appear \(for e)-.25 E .001 -(xample\) at the end of each chapter)-.15 F 2.501(,a)-.4 G 2.501(si) --2.501 G 2.501(st)-2.501 G .001(he con)-2.501 F -.15(ve)-.4 G .001 -(ntion in some dis-).15 F 2.5(ciplines. Use)102 136.2 R F0(\\*#)2.5 E F1 -(on delayed te)2.5 E(xt instead of)-.15 E F0(\\**)2.5 E F1 -(as on footnotes.)2.5 E .178(If you are using delayed te)127 152.4 R -.177(xt as your standard reference mechanism, you can still use footnot\ -es, e)-.15 F(xcept)-.15 E(that you may w)102 164.4 Q -(ant to reference them with special characters* rather than numbers.)-.1 -E F0 2.5(4.3. Indexes)87 188.4 R F1 1.704(An \231inde)127 204.6 R 1.704 -(x\232 \(actually more lik)-.15 F 4.204(eat)-.1 G 1.704 -(able of contents, since the entries are not sorted alphabetically\)) --4.204 F .084(resembles delayed te)102 216.6 R .083 -(xt, in that it is sa)-.15 F -.15(ve)-.2 G 2.583(du).15 G .083 -(ntil called for)-2.583 F 5.083(.H)-.55 G -.25(ow)-5.083 G -2.15 -.25 -(ev e).25 H .883 -.4(r, e).25 H .083 -(ach entry has the page number \(or some).4 F -(other tag\) appended to the last line of the inde)102 228.6 Q 2.5(xe) --.15 G(ntry after a ro)-2.5 E 2.5(wo)-.25 G 2.5(fd)-2.5 G(ots.)-2.5 E -(Inde)127 244.8 Q 2.748(xe)-.15 G .248(ntries be)-2.748 F .248 -(gin with the request)-.15 F F0(.\(x)2.748 E F1 .248(and end with)2.748 -F F0(.\)x)2.748 E F1 5.248(.T)C(he)-5.248 E F0(.\)x)2.748 E F1 .249 -(request may ha)2.749 F .549 -.15(ve a a)-.2 H -.18(rg).15 G .249 -(ument, which).18 F .359(is the v)102 256.8 R .359 -(alue to print as the \231page number\232.)-.25 F .359(It def)5.359 F -.358(aults to the current page number)-.1 F 5.358(.I)-.55 G 2.858(ft) --5.358 G .358(he page number gi)-2.858 F -.15(ve)-.25 G(n).15 E .277(is\ - an underscore \(\231_\232\) no page number or line of dots is printed \ -at all.)102 268.8 R 1.877 -.8(To g)5.277 H .277 -(et the line of dots without a page).8 F(number)102 280.8 Q 2.5(,t)-.4 G -(ype)-2.5 E F0(.\)x "")2.5 E F1 2.5(,w)C(hich speci\214es an e)-2.5 E -(xplicitly null page number)-.15 E(.)-.55 E(The)127 297 Q F0(.xp)2.5 E -F1(request prints the inde)2.5 E(x.)-.15 E -.15(Fo)127 313.2 S 2.5(re) -.15 G(xample, the input:)-2.65 E(.\(x)142 329.4 Q(Sealing w)142 341.4 Q -(ax)-.1 E(.\)x)142 353.4 Q(.\(x)142 365.4 Q(Cabbages and kings)142 377.4 -Q(.\)x _)142 389.4 Q(.\(x)142 401.4 Q(Wh)142 413.4 Q 2.5(yt)-.05 G -(he sea is boiling hot)-2.5 E(.\)x 2.5a)142 425.4 Q(.\(x)142 437.4 Q -(Whether pigs ha)142 449.4 Q .3 -.15(ve w)-.2 H(ings).15 E(.\)x "")142 -461.4 Q(.\(x)142 473.4 Q(This is a terribly long inde)142 485.4 Q 2.5 -(xe)-.15 G(ntry)-2.5 E 2.5(,s)-.65 G(uch as might be used)-2.5 E -(for a list of illustrations, tables, or \214gures; I e)142 497.4 Q -(xpect it to)-.15 E(tak)142 509.4 Q 2.5(ea)-.1 G 2.5(tl)-2.5 G(east tw) --2.5 E 2.5(ol)-.1 G(ines.)-2.5 E(.\)x)142 521.4 Q(.xp)142 533.4 Q -(generates:)102 549.6 Q(Sealing w)102 564 Q .44(ax ....................\ -.......................................................................\ -.................................................)-.1 F(8)31 E -(Cabbages and kings)102 578.4 Q(Wh)102 592.8 Q 2.5(yt)-.05 G -(he sea is boiling hot)-2.5 E 16.56(...................................\ -.......................................................................\ -........... 2.5a)4.83 F(Whether pigs ha)102 607.2 Q .3 -.15(ve w)-.2 H -.98(ings ..............................................................\ -.........................................................).15 F .748 -(This is a terribly long inde)102 621.6 R 3.248(xe)-.15 G(ntry)-3.248 E -3.248(,s)-.65 G .748 -(uch as might be used for a list of illustrations, tables, or \214g-) --3.248 F(ures; I e)127 633.6 Q(xpect it to tak)-.15 E 2.5(ea)-.1 G 2.5 -(tl)-2.5 G(east tw)-2.5 E 2.5(ol)-.1 G 4.04(ines. .....................\ -..............................................................)-2.5 F(8) -31 E(The)127 649.8 Q F0(.\(x)2.91 E F1 .41(request may ha)2.91 F .71 --.15(ve a s)-.2 H .41(ingle character ar).15 F .41 -(gument, specifying the \231name\232 of the inde)-.18 F .41 -(x; the normal)-.15 F(inde)102 661.8 Q 2.979(xi)-.15 G(s)-2.979 E F0(x) -2.979 E F1 5.479(.T)C .479(hus, se)-5.479 F -.15(ve)-.25 G .478(ral \ -\231indices\232 may be maintained simultaneously \(such as a list of ta\ -bles, table of con-).15 F(tents, etc.\).)102 673.8 Q .32 LW 76 683.4 72 -683.4 DL 80 683.4 76 683.4 DL 84 683.4 80 683.4 DL 88 683.4 84 683.4 DL -92 683.4 88 683.4 DL 96 683.4 92 683.4 DL 100 683.4 96 683.4 DL 104 -683.4 100 683.4 DL 108 683.4 104 683.4 DL 112 683.4 108 683.4 DL 116 -683.4 112 683.4 DL 120 683.4 116 683.4 DL 124 683.4 120 683.4 DL 128 -683.4 124 683.4 DL 132 683.4 128 683.4 DL 136 683.4 132 683.4 DL 140 -683.4 136 683.4 DL 144 683.4 140 683.4 DL 148 683.4 144 683.4 DL 152 -683.4 148 683.4 DL 156 683.4 152 683.4 DL 160 683.4 156 683.4 DL 164 -683.4 160 683.4 DL 168 683.4 164 683.4 DL 172 683.4 168 683.4 DL 176 -683.4 172 683.4 DL 180 683.4 176 683.4 DL 184 683.4 180 683.4 DL 188 -683.4 184 683.4 DL 192 683.4 188 683.4 DL 196 683.4 192 683.4 DL 200 -683.4 196 683.4 DL 204 683.4 200 683.4 DL 208 683.4 204 683.4 DL 212 -683.4 208 683.4 DL 216 683.4 212 683.4 DL/F2 8/Times-Roman@0 SF -(*Such as an asterisk.)93.6 695.4 Q 0 Cg EP -%%Page: 9 9 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(9)345.66 E -/F1 10/Times-Roman@0 SF .285(Notice that the inde)127 96 R 2.785(xm)-.15 -G .285(ust be printed at the)-2.785 F/F2 10/Times-Italic@0 SF(end)2.785 -E F1 .286(of the paper)2.785 F 2.786(,r)-.4 G .286(ather than at the be) --2.786 F .286(ginning where it will)-.15 F -(probably appear \(as a table of contents\); the pages may ha)102 108 Q -.3 -.15(ve t)-.2 H 2.5(ob).15 G 2.5(ep)-2.5 G -.05(hy)-2.5 G -(sically rearranged after printing.).05 E F0 2.5(5. F)72 132 R(ancier F) --.25 E(eatur)-.25 E(es)-.18 E F1 3.023(Al)112 148.2 S(ar)-3.023 E .523 -(ge number of f)-.18 F .523(ancier requests e)-.1 F .523 -(xist, notably requests to pro)-.15 F .522 -(vide other sorts of paragraphs, numbered)-.15 F(sections of the form)87 -160.2 Q F0(1.2.3)2.5 E F1 -(\(such as used in this document\), and multicolumn output.)2.5 E F0 2.5 -(5.1. Mor)87 184.2 R 2.5(eP)-.18 G(aragraphs)-2.6 E F1 -.15(Pa)127 200.4 -S .733(ragraphs generally start with a blank line and with the \214rst \ -line indented.).15 F .733(It is possible to get left-)5.733 F -(justi\214ed block-style paragraphs by using)102 212.4 Q F0(.lp)2.5 E F1 -(instead of)2.5 E F0(.pp)2.5 E F1 2.5(,a)C 2.5(sd)-2.5 G -(emonstrated by the ne)-2.5 E(xt paragraph.)-.15 E .64(Sometimes you w) -102 228.6 R .64(ant to use paragraphs that ha)-.1 F .94 -.15(ve t)-.2 H -(he).15 E F2(body)3.14 E F1 .64(indented, and the \214rst line e)3.14 F -.64(xdented \(opposite of)-.15 F .903(indented\) with a label.)102 240.6 -R .904(This can be done with the)5.903 F F0(.ip)3.404 E F1 3.404 -(request. A)3.404 F -.1(wo)3.404 G .904 -(rd speci\214ed on the same line as).1 F F0(.ip)3.404 E F1(is)3.404 E -.622(printed in the mar)102 252.6 R .621(gin, and the body is lined up \ -at a prespeci\214ed position \(normally \214v)-.18 F 3.121(es)-.15 G -3.121(paces\). F)-3.121 F .621(or e)-.15 F(xam-)-.15 E(ple, the input:) -102 264.6 Q(.ip one)142 280.8 Q(This is the \214rst paragraph.)142 292.8 -Q(Notice ho)142 304.8 Q 2.5(wt)-.25 G(he \214rst line)-2.5 E -(of the resulting paragraph lines up)142 316.8 Q -(with the other lines in the paragraph.)142 328.8 Q(.ip tw)142 340.8 Q -(o)-.1 E(And here we are at the second paragraph already)142 352.8 Q(.) --.65 E -1.1(Yo)142 364.8 S 2.5(um)1.1 G(ay notice that the ar)-2.5 E -(gument to)-.18 E F0(.ip)2.5 E F1(appears)142 376.8 Q(in the mar)142 -388.8 Q(gin.)-.18 E(.lp)142 400.8 Q 1.6 -.8(We c)142 412.8 T -(an continue te).8 E(xt...)-.15 E(produces as output:)102 429 Q 8.06 -(one This)102 445.2 R .522(is the \214rst paragraph.)3.022 F .523 -(Notice ho)5.523 F 3.023(wt)-.25 G .523 -(he \214rst line of the resulting paragraph lines up with the other) --3.023 F(lines in the paragraph.)127 457.2 Q(tw)102 473.4 Q 10.1(oA)-.1 -G .511(nd here we are at the second paragraph already)-10.1 F 5.511(.Y) --.65 G .511(ou may notice that the ar)-6.611 F .511(gument to)-.18 F F0 -(.ip)3.011 E F1 .511(appears in)3.011 F(the mar)127 485.4 Q(gin.)-.18 E -1.6 -.8(We c)102 501.6 T(an continue te).8 E(xt without starting a ne) --.15 E 2.5(wi)-.25 G(ndented paragraph by using the)-2.5 E F0(.lp)2.5 E -F1(request.)2.5 E .291(If you ha)127 517.8 R .591 -.15(ve s)-.2 H .291 -(paces in the label of a).15 F F0(.ip)2.791 E F1 .291 -(request, you must use an \231unpaddable space\232 instead of a re)2.791 -F(gu-)-.15 E .748(lar space.)102 529.8 R .748 -(This is typed as a backslash character \(\231\\\232\) follo)5.748 F -.748(wed by a space.)-.25 F -.15(Fo)5.748 G 3.248(re).15 G .748 -(xample, to print the label)-3.398 F<9950>102 541.8 Q(art 1\232, enter:) --.15 E(.ip "P)142 558 Q(art\\ 1")-.15 E .625 -(If a label of an indented paragraph \(that is, the ar)127 578.4 R .625 -(gument to)-.18 F F0(.ip)3.125 E F1 3.125(\)i)C 3.125(sl)-3.125 G .626 -(onger than the space allocated for)-3.125 F(the label,)102 590.4 Q F0 -(.ip)2.5 E F1(will be)2.5 E(gin a ne)-.15 E 2.5(wl)-.25 G -(ine after the label.)-2.5 E -.15(Fo)5 G 2.5(re).15 G -(xample, the input:)-2.65 E(.ip longlabel)142 606.6 Q -(This paragraph had a long label.)142 618.6 Q -(The \214rst character of te)142 630.6 Q(xt on the \214rst line)-.15 E -(will not line up with the te)142 642.6 Q -(xt on second and subsequent lines,)-.15 E(although the)142 654.6 Q 2.5 -(yw)-.15 G(ill line up with each other)-2.5 E(.)-.55 E(will produce:)102 -670.8 Q(longlabel)102 687 Q .855(This paragraph had a long label.)127 -699 R .855(The \214rst character of te)5.855 F .854 -(xt on the \214rst line will not line up with the)-.15 F(te)127 711 Q -(xt on second and subsequent lines, although the)-.15 E 2.5(yw)-.15 G -(ill line up with each other)-2.5 E(.)-.55 E 0 Cg EP -%%Page: 10 10 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(10)340.66 E -/F1 10/Times-Roman@0 SF .392 -(It is possible to change the size of the label by using a second ar)127 -96 R .393(gument which is the size of the label.)-.18 F -.15(Fo)102 108 -S 2.5(re).15 G(xample, the abo)-2.65 E .3 -.15(ve ex)-.15 H -(ample could be done correctly by saying:).15 E(.ip longlabel 10)142 -124.2 Q 1.089(which will mak)102 140.4 R 3.589(et)-.1 G 1.089 -(he paragraph indent 10 spaces for this paragraph only)-3.589 F 6.089 -(.I)-.65 G 3.589(fy)-6.089 G 1.089(ou ha)-3.589 F 1.388 -.15(ve m)-.2 H -(an).15 E 3.588(yp)-.15 G 1.088(aragraphs to)-3.588 F .21 -(indent all the same amount, use the)102 152.4 R/F2 10/Times-Italic@0 SF -.21(number r)2.71 F -.4(eg)-.37 G(ister).4 E F0(ii)2.71 E F1 5.21(.F)C -.211(or e)-5.36 F .211(xample, to lea)-.15 F .511 -.15(ve o)-.2 H .211 -(ne inch of space for the label,).15 F(type:)102 164.4 Q(.nr ii 1i)142 -180.6 Q(some)102 196.8 Q(where before the \214rst call to)-.25 E F0(.ip) -2.5 E F1 5(.R)C(efer to the reference manual for more information.)-5 E -(If)127 213 Q F0(.ip)2.5 E F1(is used with no ar)2.5 E -(gument at all no hanging tag will be printed.)-.18 E -.15(Fo)5 G 2.5 -(re).15 G(xample, the input:)-2.65 E(.ip [a])142 229.2 Q -(This is the \214rst paragraph of the e)142 241.2 Q(xample.)-.15 E 1.6 --.8(We h)142 253.2 T -2.25 -.2(av e).8 H(seen this sort of e)2.7 E -(xample before.)-.15 E(.ip)142 265.2 Q -(This paragraph is lined up with the pre)142 277.2 Q(vious paragraph,) --.25 E -.2(bu)142 289.2 S 2.5(ti).2 G 2.5(th)-2.5 G -(as no tag in the mar)-2.5 E(gin.)-.18 E(produces as output:)102 305.4 Q -11.4([a] This)102 321.6 R(is the \214rst paragraph of the e)2.5 E 2.5 -(xample. W)-.15 F 2.5(eh)-.8 G -2.25 -.2(av e)-2.5 H -(seen this sort of e)2.7 E(xample before.)-.15 E -(This paragraph is lined up with the pre)127 337.8 Q(vious paragraph, b) --.25 E(ut it has no tag in the mar)-.2 E(gin.)-.18 E 3.148(As)127 354 S -.648(pecial case of)-3.148 F F0(.ip)3.148 E F1(is)3.148 E F0(.np)3.148 E -F1 3.148(,w)C .648 -(hich automatically numbers paragraphs sequentially from 1.)-3.148 F -.648(The num-)5.648 F .054(bering is reset at the ne)102 366 R(xt)-.15 E -F0(.pp)2.554 E F1(,)A F0(.lp)2.554 E F1 2.554(,o)C(r)-2.554 E F0(.sh) -2.554 E F1 .054(\(to be described in the ne)2.554 F .055 -(xt section\) request.)-.15 F -.15(Fo)5.055 G 2.555(re).15 G .055 -(xample, the input:)-2.705 F(.np)142 382.2 Q(This is the \214rst point.) -142 394.2 Q(.np)142 406.2 Q(This is the second point.)142 418.2 Q -(Points are just re)142 430.2 Q(gular paragraphs)-.15 E(which are gi)142 -442.2 Q -.15(ve)-.25 G 2.5(ns).15 G(equence numbers automatically)-2.5 E -(by the .np request.)142 454.2 Q(.pp)142 466.2 Q -(This paragraph will reset numbering by .np.)142 478.2 Q(.np)142 490.2 Q --.15(Fo)142 502.2 S 2.5(re).15 G(xample,)-2.65 E(we ha)142 514.2 Q .3 --.15(ve r)-.2 H -2.15 -.25(ev e).15 H(rted to numbering from one no).25 -E -.65(w.)-.25 G(generates:)102 530.4 Q 12.5(\(1\) This)107 546.6 R -(is the \214rst point.)2.5 E 12.5(\(2\) This)107 562.8 R .335 -(is the second point.)2.835 F .335(Points are just re)5.335 F .335 -(gular paragraphs which are gi)-.15 F -.15(ve)-.25 G 2.834(ns).15 G .334 -(equence numbers auto-)-2.834 F(matically by the .np request.)133.66 -574.8 Q(This paragraph will reset numbering by .np.)127 591 Q 12.5 -(\(1\) F)107 607.2 R(or e)-.15 E(xample, we ha)-.15 E .3 -.15(ve r)-.2 H --2.15 -.25(ev e).15 H(rted to numbering from one no).25 E -.65(w.)-.25 G -(The)127 623.4 Q F0(.b)3.248 E(u)-.2 E F1 .748(request gi)3.248 F -.15 -(ve)-.25 G 3.249(sl).15 G .749 -(ists of this sort that are identi\214ed with b)-3.249 F .749 -(ullets rather than numbers.)-.2 F .749(The para-)5.749 F -(graphs are also crunched together)102 635.4 Q 5(.F)-.55 G(or e)-5.15 E -(xample, the input:)-.15 E 0 Cg EP -%%Page: 11 11 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(11)340.66 E -/F1 10/Times-Roman@0 SF(.b)142 96 Q(u)-.2 E(One e)142 108 Q(gg yolk)-.15 -E(.b)142 120 Q(u)-.2 E(One tablespoon cream or top milk)142 132 Q(.b)142 -144 Q(u)-.2 E(Salt, cayenne, and lemon juice to taste)142 156 Q(.b)142 -168 Q(u)-.2 E 2.5(Ag)142 180 S(enerous tw)-2.5 E 2.5(ot)-.1 G -(ablespoonfuls of b)-2.5 E(utter)-.2 E(produces)102 198.2 Q/F2 7 -/Times-Roman@0 SF(3)-4 I F1(:)4 I 5<834f>107 214.4 S(ne e)-5 E(gg yolk) --.15 E 5<834f>107 226.4 S(ne tablespoon cream or top milk)-5 E 5<8353> -107 238.4 S(alt, cayenne, and lemon juice to taste)-5 E 5<8341>107 250.4 -S(generous tw)-2.5 E 2.5(ot)-.1 G(ablespoonfuls of b)-2.5 E(utter)-.2 E -F0 2.5(5.2. Section)87 274.4 R(Headings)2.5 E F1 .139(Section numbers \ -\(such as the ones used in this document\) can be automatically generat\ -ed using the)127 290.6 R F0(.sh)2.638 E F1 2.68(request. Y)102 302.6 R -.18(ou must tell)-1.1 F F0(.sh)2.68 E F1(the)2.68 E/F3 10/Times-Italic@0 -SF(depth)2.68 E F1 .181(of the section number and a section title.)2.68 -F .181(The depth speci\214es ho)5.181 F 2.681(wm)-.25 G(an)-2.681 E(y) --.15 E .125(numbers are to appear \(separated by decimal points\) in th\ -e section number)102 314.6 R 5.124(.F)-.55 G .124(or e)-5.274 F .124 -(xample, the section number)-.15 F F0(4.2.5)102 326.6 Q F1 -(has a depth of three.)2.5 E 1.93 -(Section numbers are incremented in a f)127 342.8 R 1.931(airly intuiti) --.1 F 2.231 -.15(ve f)-.25 H 4.431(ashion. If).05 F 1.931 -(you add a number \(increase the)4.431 F 1.102(depth\), the ne)102 354.8 -R 3.601(wn)-.25 G 1.101(umber starts out at one.)-3.601 F 1.101 -(If you subtract section numbers \(or k)6.101 F 1.101 -(eep the same number\) the)-.1 F(\214nal number is incremented.)102 -366.8 Q -.15(Fo)5 G 2.5(re).15 G(xample, the input:)-2.65 E -(.sh 1 "The Preprocessor")142 383 Q(.sh 2 "Basic Concepts")142 395 Q -(.sh 2 "Control Inputs")142 407 Q(.sh 3)142 419 Q(.sh 3)142 431 Q -(.sh 1 "Code Generation")142 443 Q(.sh 3)142 455 Q -(produces as output the result:)102 471.2 Q F0 2.5(1. The)142 487.4 R -(Pr)2.5 E(epr)-.18 E(ocessor)-.18 E 2.5(1.1. Basic)142 499.4 R(Concepts) -2.5 E 2.5(1.2. Contr)142 511.4 R(ol Inputs)-.18 E(1.2.1.)142 523.4 Q -(1.2.2.)142 535.4 Q 2.5(2. Code)142 547.4 R(Generation)2.5 E(2.1.1.)142 -559.4 Q F1 -1.1(Yo)127 579.8 S 2.59(uc)1.1 G .09 -(an specify the section number to be)-2.59 F .09 -(gin by placing the section number after the section title, using)-.15 F -(spaces instead of dots.)102 591.8 Q -.15(Fo)5 G 2.5(re).15 G -(xample, the request:)-2.65 E(.sh 3 "Another section" 7 3 4)142 608 Q -(will be)102 624.2 Q(gin the section numbered)-.15 E F0(7.3.4)2.5 E F1 -2.5(;a)C(ll subsequent)-2.5 E F0(.sh)2.5 E F1 -(requests will number relati)2.5 E .3 -.15(ve t)-.25 H 2.5(ot).15 G -(his number)-2.5 E(.)-.55 E 1.05(There are more comple)127 640.4 R 3.55 -(xf)-.15 G 1.049(eatures which will cause each section to be indented p\ -roportionally to the)-3.55 F(depth of the section.)102 652.4 Q -.15(Fo)5 -G 2.5(re).15 G(xample, if you enter:)-2.65 E .32 LW 76 662 72 662 DL 80 -662 76 662 DL 84 662 80 662 DL 88 662 84 662 DL 92 662 88 662 DL 96 662 -92 662 DL 100 662 96 662 DL 104 662 100 662 DL 108 662 104 662 DL 112 -662 108 662 DL 116 662 112 662 DL 120 662 116 662 DL 124 662 120 662 DL -128 662 124 662 DL 132 662 128 662 DL 136 662 132 662 DL 140 662 136 662 -DL 144 662 140 662 DL 148 662 144 662 DL 152 662 148 662 DL 156 662 152 -662 DL 160 662 156 662 DL 164 662 160 662 DL 168 662 164 662 DL 172 662 -168 662 DL 176 662 172 662 DL 180 662 176 662 DL 184 662 180 662 DL 188 -662 184 662 DL 192 662 188 662 DL 196 662 192 662 DL 200 662 196 662 DL -204 662 200 662 DL 208 662 204 662 DL 212 662 208 662 DL 216 662 212 662 -DL/F4 5/Times-Roman@0 SF(3)93.6 672.4 Q/F5 8/Times-Roman@0 SF .258 -(By the w)3.2 J(ay)-.08 E 2.258(,i)-.52 G 2.258(fy)-2.258 G .258 -(ou put the \214rst three ingredients in a a hea)-2.258 F(vy)-.16 E -2.258(,d)-.52 G .258(eep pan and whisk the ingredients madly o)-2.258 F --.12(ve)-.12 G 2.257(ram).12 G .257(edium \215ame \(ne)-2.257 F -.12(ve) --.2 G 2.257(rt).12 G(ak-)-2.257 E .104(ing your hand of)72 685.2 R 2.105 -(ft)-.2 G .105 -(he handle of the pot\) until the mixture reaches the consistenc)-2.105 -F 2.105(yo)-.12 G 2.105(fc)-2.105 G .105(ustard \(just a minute or tw) --2.105 F .105(o\), then mix in the b)-.08 F .105(utter of)-.16 F -(f-heat,)-.2 E(you will ha)72 694.8 Q .24 -.12(ve a w)-.16 H -(onderful Hollandaise sauce.).04 E 0 Cg EP -%%Page: 12 12 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(12)340.66 E -/F1 10/Times-Roman@0 SF(.nr si)142 96 Q/F2 10/Times-Italic@0 SF(N)2.5 E -F1 .007(each section will be indented by an amount)102 112.2 R F2(N) -2.508 E F1(.)A F2(N)5.008 E F1 .008(must ha)2.508 F .308 -.15(ve a s)-.2 -H .008(caling f).15 F .008(actor attached, that is, it must be of the) --.1 F(form)102 124.2 Q F2(Nx)3.093 E F1 3.093(,w)C(here)-3.093 E F2(x) -3.093 E F1 .592(is a character telling what units)3.093 F F2(N)3.092 E -F1 .592(is in.)3.092 F .592(Common v)5.592 F .592(alues for)-.25 F F2(x) -3.092 E F1(are)3.092 E F0(i)3.092 E F1 .592(for inches,)3.092 F F0(c) -3.092 E F1 .592(for cen-)3.092 F .605(timeters, and)102 136.2 R F0(n) -3.105 E F1(for)3.105 E F2(ens)3.105 E F1 .605 -(\(the width of a single character\).)3.105 F -.15(Fo)5.605 G 3.105(re) -.15 G .605(xample, to indent each section one-half inch,)-3.255 F(type:) -102 148.2 Q(.nr si 0.5i)142 164.4 Q .394 -(After this, sections will be indented by one-half inch per le)102 180.6 -R -.15(ve)-.25 G 2.894(lo).15 G 2.894(fd)-2.894 G .394 -(epth in the section number)-2.894 F 5.393(.F)-.55 G .393(or e)-5.543 F -(xample,)-.15 E(this document w)102 192.6 Q -(as produced using the request)-.1 E(.nr si 3n)142 208.8 Q(at the be)102 -225 Q(ginning of the input \214le, gi)-.15 E -(ving three spaces of indent per section depth.)-.25 E(Section headers \ -without automatically generated numbers can be done using:)127 241.2 Q -(.uh "T)142 257.4 Q(itle")-.35 E(which will do a section heading, b)102 -273.6 Q(ut will put no number on the section.)-.2 E F0 2.5(5.3. P)87 -297.6 R(arts of the Basic P)-.1 E(aper)-.1 E F1 .687 -(There are some requests which assist in setting up papers.)127 313.8 R -(The)5.687 E F0(.tp)3.187 E F1 .687 -(request initializes for a title page.)3.187 F .566 -(There are no headers or footers on a title page, and unlik)102 325.8 R -3.066(eo)-.1 G .566(ther pages you can space do)-3.066 F .566 -(wn and lea)-.25 F .866 -.15(ve b)-.2 H(lank).15 E(space at the top.)102 -337.8 Q -.15(Fo)5 G 2.5(re).15 G -(xample, a typical title page might appear as:)-2.65 E(.tp)142 354 Q -(.sp 2i)142 366 Q(.\(l C)142 378 Q(THE GR)142 390 Q -.35(OW)-.4 G -(TH OF T).35 E(OEN)-.18 E(AILS)-.35 E(IN UPPER PRIMA)142 402 Q(TES)-1.11 -E(.sp)142 414 Q(by)142 426 Q(.sp)142 438 Q(Frank N. Furter)142 450 Q -(.\)l)142 462 Q(.bp)142 474 Q(The)127 494.4 Q F0(.+c)2.597 E F2(T)2.5 E -F1 .097(request can be used to start chapters.)2.597 F .098 -(Each chapter is automatically numbered from one, and)5.098 F 2.517(ah) -102 506.4 S .017(eading is printed at the top of each chapter with the \ -chapter number and the chapter name)-2.517 F F2(T)2.517 E F1 5.017(.F)C -.017(or e)-5.167 F(xample,)-.15 E(to be)102 518.4 Q -(gin a chapter called \231Conclusions\232, use the request:)-.15 E -(.+c "CONCLUSIONS")142 534.6 Q(which will produce, on a ne)102 550.8 Q -2.5(wp)-.25 G(age, the lines)-2.5 E(CHAPTER 5)294.47 567 Q(CONCLUSIONS) -286 579 Q .292(with appropriate spacing for a thesis.)102 595.2 R .292 -(Also, the header is mo)5.292 F -.15(ve)-.15 G 2.792(dt).15 G 2.792(ot) --2.792 G .293(he foot of the page on the \214rst page of a)-2.792 F -(chapter)102 607.2 Q 5.346(.A)-.55 G .346(lthough the)-5.346 F F0(.+c) -2.846 E F1 .346(request w)2.846 F .346(as not designed to w)-.1 F .346 -(ork only with the)-.1 F F0(.th)2.846 E F1 .346 -(request, it is tuned for the for)2.846 F(-)-.2 E -(mat acceptable for a PhD thesis at Berk)102 619.2 Q(ele)-.1 E -.65(y.) --.15 G .811(If the title parameter)127 635.4 R F2(T)3.311 E F1 .811 -(is omitted from the)3.311 F F0(.+c)3.311 E F1 .811 -(request, the result is a chapter with no heading.)3.311 F(This)5.812 E -.756(can also be used at the be)102 647.4 R .755 -(ginning of a paper; for e)-.15 F(xample,)-.15 E F0(.+c)3.255 E F1 -.1 -(wa)3.255 G 3.255(su).1 G .755(sed to generate page one of this docu-) --3.255 F(ment.)102 659.4 Q .192(Although papers traditionally ha)127 -675.6 R .492 -.15(ve t)-.2 H .192 -(he abstract, table of contents, and so forth at the front of the paper) -.15 F(,)-.4 E .644(it is more con)102 687.6 R -.15(ve)-.4 G .643 -(nient to format and print them last when using).15 F/F3 9/Times-Roman@0 -SF(GR)3.143 E(OFF)-.36 E F1 5.643(.T)C .643(his is so that inde)-5.643 F -3.143(xe)-.15 G .643(ntries can be)-3.143 F .847 -(collected and then printed for the table of contents \(or whate)102 -699.6 R -.15(ve)-.25 G 3.347(r\). At).15 F .847(the end of the paper) -3.347 F 3.347(,i)-.4 G .847(ssue the)-3.347 F F0 .847(.++ P)3.347 F F1 -.32(request, which be)102 711.6 R .32 -(gins the preliminary part of the paper)-.15 F 5.32(.A)-.55 G .32 -(fter issuing this request, the)-5.32 F F0(.+c)2.82 E F1 .32 -(request will be)2.82 F(gin)-.15 E 3.615(ap)102 723.6 S 1.115 -(reliminary section of the paper)-3.615 F 6.115(.M)-.55 G 1.115 -(ost notably)-6.115 F 3.615(,t)-.65 G 1.116 -(his prints the page number restarted from one in lo)-3.615 F(wer)-.25 E -0 Cg EP -%%Page: 13 13 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(13)340.66 E -/F1 10/Times-Roman@0 SF .386(case Roman numbers.)102 96 R F0(.+c)5.386 E -F1 .386(may be used repeatedly to be)2.886 F .386(gin dif)-.15 F .386 -(ferent parts of the front material for e)-.25 F(xample,)-.15 E .275 -(the abstract, the table of contents, ackno)102 108 R .275 -(wledgments, list of illustrations, etc.)-.25 F .275(The request)5.275 F -F0 .276(.++ B)2.776 F F1 .276(may also be)2.776 F .449(used to be)102 -120 R .449(gin the bibliographic section at the end of the paper)-.15 F -5.448(.F)-.55 G .448(or e)-5.598 F .448 -(xample, the paper might appear as out-)-.15 F(lined in \214gure 2.)102 -132 Q(\(In this \214gure, comments be)5 E(gin with the sequence)-.15 E -F0(\\")2.5 E F1(.\))A .4 LW 77 168 72 168 DL 80 168 75 168 DL 85 168 80 -168 DL 90 168 85 168 DL 95 168 90 168 DL 100 168 95 168 DL 105 168 100 -168 DL 110 168 105 168 DL 115 168 110 168 DL 120 168 115 168 DL 125 168 -120 168 DL 130 168 125 168 DL 135 168 130 168 DL 140 168 135 168 DL 145 -168 140 168 DL 150 168 145 168 DL 155 168 150 168 DL 160 168 155 168 DL -165 168 160 168 DL 170 168 165 168 DL 175 168 170 168 DL 180 168 175 168 -DL 185 168 180 168 DL 190 168 185 168 DL 195 168 190 168 DL 200 168 195 -168 DL 205 168 200 168 DL 210 168 205 168 DL 215 168 210 168 DL 220 168 -215 168 DL 225 168 220 168 DL 230 168 225 168 DL 235 168 230 168 DL 240 -168 235 168 DL 245 168 240 168 DL 250 168 245 168 DL 255 168 250 168 DL -260 168 255 168 DL 265 168 260 168 DL 270 168 265 168 DL 275 168 270 168 -DL 280 168 275 168 DL 285 168 280 168 DL 290 168 285 168 DL 295 168 290 -168 DL 300 168 295 168 DL 305 168 300 168 DL 310 168 305 168 DL 315 168 -310 168 DL 320 168 315 168 DL 325 168 320 168 DL 330 168 325 168 DL 335 -168 330 168 DL 340 168 335 168 DL 345 168 340 168 DL 350 168 345 168 DL -355 168 350 168 DL 360 168 355 168 DL 365 168 360 168 DL 370 168 365 168 -DL 375 168 370 168 DL 380 168 375 168 DL 385 168 380 168 DL 390 168 385 -168 DL 395 168 390 168 DL 400 168 395 168 DL 405 168 400 168 DL 410 168 -405 168 DL 415 168 410 168 DL 420 168 415 168 DL 425 168 420 168 DL 430 -168 425 168 DL 435 168 430 168 DL 440 168 435 168 DL 445 168 440 168 DL -450 168 445 168 DL 455 168 450 168 DL 460 168 455 168 DL 465 168 460 168 -DL 470 168 465 168 DL 475 168 470 168 DL 480 168 475 168 DL 485 168 480 -168 DL 490 168 485 168 DL 495 168 490 168 DL 500 168 495 168 DL 505 168 -500 168 DL 510 168 505 168 DL 515 168 510 168 DL 520 168 515 168 DL 525 -168 520 168 DL 530 168 525 168 DL 535 168 530 168 DL 540 168 535 168 DL -131.22(.th \\")108 192 R(set for thesis mode)2.5 E -(.fo \264\264DRAFT\264\264)108 204 Q(\\" de\214ne footer for each page) -84.57 E 131.22(.tp \\")108 216 R(be)2.5 E(gin title page)-.15 E(.\(l C) -108 228 Q(\\" center a lar)126.22 E(ge block)-.18 E(THE GR)108 240 Q --.35(OW)-.4 G(TH OF T).35 E(OEN)-.18 E(AILS)-.35 E(IN UPPER PRIMA)108 -252 Q(TES)-1.11 E(.sp)108 264 Q(by)108 276 Q(.sp)108 288 Q(Frank Furter) -108 300 Q 132.89(.\)l \\")108 312 R(end centered part)2.5 E(.+c INTR)108 -324 Q 51.28(ODUCTION \\")-.4 F(be)2.5 E(gin chapter named "INTR)-.15 E -(ODUCTION")-.4 E(.\(x t)108 336 Q(\\" mak)127.89 E 2.5(ea)-.1 G 2.5(ne) --2.5 G(ntry into inde)-2.5 E 2.5(x`)-.15 G(t')-2.5 E(Introduction)108 -348 Q 130.67(.\)x \\")108 360 R(end of inde)2.5 E 2.5(xe)-.15 G(ntry) --2.5 E(te)108 372 Q(xt of chapter one)-.15 E(.+c "NEXT CHAPTER")108 384 -Q(\\" be)46.04 E(gin another chapter)-.15 E(.\(x t)108 396 Q -(\\" enter into inde)127.89 E 2.5(x`)-.15 G(t' ag)-2.5 E(ain)-.05 E(Ne) -108 408 Q(xt Chapter)-.15 E(.\)x)108 420 Q(te)108 432 Q -(xt of chapter tw)-.15 E(o)-.1 E(.+c CONCLUSIONS)108 444 Q(.\(x t)108 -456 Q(Conclusions)108 468 Q(.\)x)108 480 Q(te)108 492 Q -(xt of chapter three)-.15 E(.++ B)108 504 Q(\\" be)121.05 E -(gin bibliographic information)-.15 E(.+c BIBLIOGRAPHY)108 516 Q(\\" be) -54.48 E(gin another `chapter')-.15 E(.\(x t)108 528 Q(Bibliograph)108 -540 Q(y)-.05 E(.\)x)108 552 Q(te)108 564 Q(xt of bibliograph)-.15 E(y) --.05 E(.++ P)108 576 Q(\\" be)122.16 E(gin preliminary material)-.15 E -(.+c "T)108 588 Q(ABLE OF CONTENTS")-.93 E(.xp t)108 600 Q -(\\" print inde)126.22 E 2.5(x`)-.15 G(t' collected abo)-2.5 E -.15(ve) --.15 G(.+c PREF)108 612 Q -.4(AC)-.74 G 86.16(E\\).4 G 2.5("b)-86.16 G --.15(eg)-2.5 G(in another preliminary section).15 E(te)108 624 Q -(xt of pref)-.15 E(ace)-.1 E(Figure 2.)232.75 660 Q -(Outline of a Sample P)5 E(aper)-.15 E 77 672 72 672 DL 80 672 75 672 DL -85 672 80 672 DL 90 672 85 672 DL 95 672 90 672 DL 100 672 95 672 DL 105 -672 100 672 DL 110 672 105 672 DL 115 672 110 672 DL 120 672 115 672 DL -125 672 120 672 DL 130 672 125 672 DL 135 672 130 672 DL 140 672 135 672 -DL 145 672 140 672 DL 150 672 145 672 DL 155 672 150 672 DL 160 672 155 -672 DL 165 672 160 672 DL 170 672 165 672 DL 175 672 170 672 DL 180 672 -175 672 DL 185 672 180 672 DL 190 672 185 672 DL 195 672 190 672 DL 200 -672 195 672 DL 205 672 200 672 DL 210 672 205 672 DL 215 672 210 672 DL -220 672 215 672 DL 225 672 220 672 DL 230 672 225 672 DL 235 672 230 672 -DL 240 672 235 672 DL 245 672 240 672 DL 250 672 245 672 DL 255 672 250 -672 DL 260 672 255 672 DL 265 672 260 672 DL 270 672 265 672 DL 275 672 -270 672 DL 280 672 275 672 DL 285 672 280 672 DL 290 672 285 672 DL 295 -672 290 672 DL 300 672 295 672 DL 305 672 300 672 DL 310 672 305 672 DL -315 672 310 672 DL 320 672 315 672 DL 325 672 320 672 DL 330 672 325 672 -DL 335 672 330 672 DL 340 672 335 672 DL 345 672 340 672 DL 350 672 345 -672 DL 355 672 350 672 DL 360 672 355 672 DL 365 672 360 672 DL 370 672 -365 672 DL 375 672 370 672 DL 380 672 375 672 DL 385 672 380 672 DL 390 -672 385 672 DL 395 672 390 672 DL 400 672 395 672 DL 405 672 400 672 DL -410 672 405 672 DL 415 672 410 672 DL 420 672 415 672 DL 425 672 420 672 -DL 430 672 425 672 DL 435 672 430 672 DL 440 672 435 672 DL 445 672 440 -672 DL 450 672 445 672 DL 455 672 450 672 DL 460 672 455 672 DL 465 672 -460 672 DL 470 672 465 672 DL 475 672 470 672 DL 480 672 475 672 DL 485 -672 480 672 DL 490 672 485 672 DL 495 672 490 672 DL 500 672 495 672 DL -505 672 500 672 DL 510 672 505 672 DL 515 672 510 672 DL 520 672 515 672 -DL 525 672 520 672 DL 530 672 525 672 DL 535 672 530 672 DL 540 672 535 -672 DL 0 Cg EP -%%Page: 14 14 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(14)340.66 E -2.5(5.4. Equations)87 96 R(and T)2.5 E(ables)-.92 E/F1 10/Times-Roman@0 -SF -1 -.8(Tw o)127 112.2 T(special)5.674 E/F2 9/Times-Roman@0 SF(UNIX) -4.875 E F1 2.375(programs e)4.875 F 2.375 -(xist to format special types of material.)-.15 F F0(Eqn)7.375 E F1 -2.375(sets equations.)4.875 F F0(Tbl)7.375 E F1 .057 -(arranges to print e)102 124.2 R .057(xtremely pretty tables in a v)-.15 -F .057(ariety of formats.)-.25 F .057 -(This document will only describe the embel-)5.057 F 1.225(lishments to\ - the standard features; consult the reference manuals for those process\ -ors for a description of)102 136.2 R(their use.)102 148.2 Q(The)127 -164.4 Q F0(eqn)2.533 E F1 .033 -(program is described fully in the document)2.533 F/F3 10/Times-Italic@0 -SF -.74(Ty)2.533 G .032(pesetting Mathematics \255 User').74 F 2.532(sG) --.4 G(uide)-2.532 E F1 .032(by Brian)2.532 F 3.027 -.92(W. K)102 176.4 T -1.187(ernighan and Lorinda L. Cherry).67 F 6.187(.E)-.65 G 1.188 -(quations are centered, and are k)-6.187 F 1.188(ept on one page.)-.1 F -(The)6.188 E 3.688(ya)-.15 G 1.188(re intro-)-3.688 F(duced by the)102 -188.4 Q F0(.EQ)2.5 E F1(request and terminated by the)2.5 E F0(.EN)2.5 E -F1(request.)2.5 E(The)127 204.6 Q F0(.EQ)3.714 E F1 1.214 -(request may tak)3.714 F 3.714(ea)-.1 G 3.714(ne)-3.714 G 1.214 -(quation number as an optional ar)-3.714 F 1.214 -(gument, which is printed v)-.18 F(ertically)-.15 E .468 -(centered on the right hand side of the equation.)102 216.6 R .468 -(If the equation becomes too long it should be split between)5.468 F(tw) -102 228.6 Q 2.5(ol)-.1 G 2.5(ines. T)-2.5 F 2.5(od)-.8 G 2.5(ot)-2.5 G -(his, type:)-2.5 E(.EQ \(eq 34\))142 244.8 Q(te)142 256.8 Q -(xt of equation 34)-.15 E(.EN C)142 268.8 Q(.EQ)142 280.8 Q -(continuation of equation 34)142 292.8 Q(.EN)142 304.8 Q(The)102 321 Q -F0(C)2.5 E F1(on the)2.5 E F0(.EN)2.5 E F1 -(request speci\214es that the equation will be continued.)2.5 E(The)127 -337.2 Q F0(tbl)2.61 E F1 .11(program produces tables.)2.61 F .11 -(It is fully described \(including numerous e)5.11 F .11 -(xamples\) in the document)-.15 F F3 .51(Tbl \255 A Pr)102 349.2 R -.1 -(og)-.45 G -.15(ra).1 G 3.01(mt).15 G 3.01(oF)-3.01 G .51(ormat T)-4.06 -F(ables)-.92 E F1 .51(by M. E. Lesk.)3.01 F -.8(Ta)5.51 G .51(bles be).8 -F .51(gin with the)-.15 F F0(.TS)3.01 E F1 .51(request and end with the) -3.01 F F0(.TE)3.01 E F1 3.429(request. T)102 361.2 R .929 -(ables are normally k)-.8 F .928(ept on a single page.)-.1 F .928 -(If you ha)5.928 F 1.228 -.15(ve a t)-.2 H .928 -(able which is too big to \214t on a single).15 F 1.005 -(page, so that you kno)102 373.2 R 3.505(wi)-.25 G 3.505(tw)-3.505 G -1.005(ill e)-3.505 F 1.005(xtend to se)-.15 F -.15(ve)-.25 G 1.005 -(ral pages, be).15 F 1.005(gin the table with the request)-.15 F F0 -(.TS H)3.505 E F1 1.005(and put the)3.505 F(request)102 385.2 Q F0(.TH) -3.385 E F1 .885(after the part of the table which you w)3.385 F .885 -(ant duplicated at the top of e)-.1 F -.15(ve)-.25 G .884 -(ry page that the table is).15 F(printed on.)102 397.2 Q -.15(Fo)5 G 2.5 -(re).15 G(xample, a table de\214nition for a long table might look lik) --2.65 E(e:)-.1 E(.TS H)142 413.4 Q 2.5(css)142 425.4 S 2.5(nnn)142 437.4 -S(.)-2.5 E(THE T)142 449.4 Q(ABLE TITLE)-.93 E(.TH)142 461.4 Q(te)142 -473.4 Q(xt of the table)-.15 E(.TE)142 485.4 Q F0 2.5(5.5. T)87 505.8 R -.2 -.1(wo C)-.74 H(olumn Output).1 E F1 -1.1(Yo)127 522 S 2.877(uc)1.1 G -.377(an get tw)-2.877 F 2.877(oc)-.1 G .377 -(olumn output automatically by using the request)-2.877 F F0(.2c)2.878 E -F1 5.378(.T)C .378(his causes e)-5.378 F -.15(ve)-.25 G .378 -(rything after it).15 F .04(to be output in tw)102 534 R .04 -(o-column form.)-.1 F .04(The request)5.04 F F0(.bc)2.54 E F1 .04 -(will start a ne)2.54 F 2.54(wc)-.25 G .04(olumn; it dif)-2.54 F .04 -(fers from)-.25 F F0(.bp)2.54 E F1 .04(in that)2.54 F F0(.bp)2.54 E F1 -(may)2.54 E(lea)102 546 Q .3 -.15(ve a t)-.2 H -(otally blank column when it starts a ne).15 E 2.5(wp)-.25 G 2.5(age. T) --2.5 F 2.5(or)-.8 G -2.15 -.25(ev e)-2.5 H -(rt to single column output, use).25 E F0(.1c)2.5 E F1(.)A F0 2.5 -(5.6. De\214ning)87 570 R(Macr)2.5 E(os)-.18 E F1(A)127 586.2 Q F3(macr) -3.258 E(o)-.45 E F1 .759(is a collection of requests and te)3.258 F .759 -(xt which may be used by stating a simple request.)-.15 F(Macros)5.759 E -(be)102 598.2 Q .352(gin with the line)-.15 F F0(.de)2.852 E F3(xx)2.5 E -F1(\(where)2.852 E F3(xx)2.852 E F1 .352(is the name of the macro to be\ - de\214ned\) and end with the line consisting)2.852 F .098(of tw)102 -610.2 R 2.598(od)-.1 G 2.598(ots. After)-2.598 F .098 -(de\214ning the macro, stating the line)2.598 F F0(.)2.598 E F3(xx)A F1 -.098(is the same as stating all the other lines.)2.598 F -.15(Fo)5.099 G -2.599(re).15 G(xam-)-2.749 E -(ple, to de\214ne a macro that spaces 3 lines and then centers the ne) -102 622.2 Q(xt input line, enter:)-.15 E(.de SS)142 638.4 Q(.sp 3)142 -650.4 Q(.ce)142 662.4 Q(..)142 674.4 Q(and use it by typing:)102 690.6 Q -0 Cg EP -%%Page: 15 15 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(15)340.66 E -/F1 10/Times-Roman@0 SF(.SS)142 96 Q -.35(Ti)142 108 S(tle Line).35 E -(\(be)142 120 Q(ginning of te)-.15 E(xt\))-.15 E .067 -(Macro names may be one or tw)127 140.4 R 2.567(oc)-.1 G 2.567 -(haracters. In)-2.567 F .067(order to a)2.567 F -.2(vo)-.2 G .066 -(id con\215icts with names in \255me, al).2 F -.1(wa)-.1 G .066(ys use) -.1 F(upper case letters as names.)102 152.4 Q(The only names to a)5 E --.2(vo)-.2 G(id are).2 E F0(TS)2.5 E F1(,)A F0(TH)2.5 E F1(,)A F0(TE)2.5 -E F1(,)A F0(EQ)2.5 E F1 2.5(,a)C(nd)-2.5 E F0(EN)2.5 E F1(.)A F0 2.5 -(5.7. Annotations)87 176.4 R(Inside K)2.5 E(eeps)-.25 E F1 .521 -(Sometimes you may w)127 192.6 R .521(ant to put a footnote or inde)-.1 -F 3.021(xe)-.15 G .521(ntry inside a k)-3.021 F 3.021(eep. F)-.1 F .521 -(or e)-.15 F .521(xample, if you w)-.15 F .522(ant to)-.1 F -(maintain a \231list of \214gures\232 you will w)102 204.6 Q -(ant to do something lik)-.1 E(e:)-.1 E(.\(z)142 220.8 Q(.\(c)142 232.8 -Q(te)142 244.8 Q(xt of \214gure)-.15 E(.\)c)142 256.8 Q(.ce)142 268.8 Q -(Figure 5.)142 280.8 Q(.\(x f)142 292.8 Q(Figure 5)142 304.8 Q(.\)x)142 -316.8 Q(.\)z)142 328.8 Q .386(which you may hope will gi)102 345 R .686 --.15(ve y)-.25 H .386 -(ou a \214gure with a label and an entry in the inde).15 F(x)-.15 E F0 -(f)2.886 E F1 .386(\(presumably a list of \214g-)2.886 F 1.433 -(ures inde)102 357 R 3.933(x\). Unfortunately)-.15 F 3.933(,t)-.65 G -1.433(he inde)-3.933 F 3.933(xe)-.15 G 1.433 -(ntry is read and interpreted when the k)-3.933 F 1.434 -(eep is read, not when it is)-.1 F .528 -(printed, so the page number in the inde)102 369 R 3.028(xi)-.15 G 3.028 -(sl)-3.028 G(ik)-3.028 E .528(ely to be wrong.)-.1 F .527 -(The solution is to use the magic string)5.528 F F0(\\!)3.027 E F1(at) -5.527 E(the be)102 381 Q(ginning of all the lines dealing with the inde) --.15 E 2.5(x. In)-.15 F(other w)2.5 E(ords, you should use:)-.1 E(.\(z) -142 397.2 Q(.\(c)142 409.2 Q -1.25 -.7(Te x)142 421.2 T 2.5(to).7 G 2.5 -<668c>-2.5 G(gure)-2.5 E(.\)c)142 433.2 Q(.ce)142 445.2 Q(Figure 5.)142 -457.2 Q(\\!.\(x f)142 469.2 Q(\\!Figure 5)142 481.2 Q(\\!.\)x)142 493.2 -Q(.\)z)142 505.2 Q .095(which will defer the processing of the inde)102 -521.4 R 2.595(xu)-.15 G .095(ntil the \214gure is output.)-2.595 F .096 -(This will guarantee that the page num-)5.095 F(ber in the inde)102 -533.4 Q 2.5(xi)-.15 G 2.5(sc)-2.5 G 2.5(orrect. The)-2.5 F -(same comments apply to blocks \(with)2.5 E F0(.\(b)2.5 E F1(and)2.5 E -F0(.\)b)2.5 E F1 2.5(\)a)C 2.5(sw)-2.5 G(ell.)-2.5 E F0(6.)72 557.4 Q/F2 -9/Times-Bold@0 SF(TR)5 E(OFF)-.27 E F0(and the Photosetter)2.5 E F1 -.4 -(Wi)112 573.6 S .927(th a little care, you can prepare documents that w\ -ill print nicely on either a re).4 F .927(gular terminal or when)-.15 F -(phototypeset using the)87 585.6 Q/F3 9/Times-Roman@0 SF(TR)2.5 E(OFF) --.36 E F1(formatting program.)2.5 E F0 2.5(6.1. F)87 609.6 R(onts)-.25 E -F1(A)127 625.8 Q/F4 10/Times-Italic@0 SF(font)2.834 E F1 .334 -(is a style of type.)2.834 F .335(There are three fonts that are a)5.335 -F -.25(va)-.2 G .335(ilable simultaneously).25 F 2.835(,T)-.65 G .335 -(imes Roman, T)-3.185 F(imes)-.35 E(Italic, and T)102 637.8 Q -(imes Bold, plus the special math font.)-.35 E -(The normal font is Roman.)5 E 1.166(There are w)127 654 R 1.166 -(ays of switching between fonts.)-.1 F 1.166(The requests)6.166 F F0(.r) -3.666 E F1(,)A F0(.i)3.666 E F1(,)A F0(.b)3.666 E F1 3.666(,a)C(nd) --3.666 E F0(.bi)3.666 E F1 1.165(switch to Roman, italic,)3.666 F -(bold, and bold-italic fonts respecti)102 666 Q -.15(ve)-.25 G(ly).15 E -5(.Y)-.65 G(ou can set a single w)-6.1 E -(ord in some font by typing \(for e)-.1 E(xample\):)-.15 E(.i w)142 -682.2 Q(ord)-.1 E(which will set)102 698.4 Q F4(wor)2.5 E(d)-.37 E F1 -(in italics b)2.5 E(ut does not af)-.2 E(fect the surrounding te)-.25 E -(xt.)-.15 E 0 Cg EP -%%Page: 16 16 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(16)340.66 E -/F1 10/Times-Roman@0 SF .434 -(Notice that if you are setting more than one w)127 96 R .434 -(ord in whate)-.1 F -.15(ve)-.25 G 2.935(rf).15 G .435 -(ont, you must surround that w)-2.935 F .435(ord with)-.1 F .682 -(double quote marks \(`)102 108 R 1.666("')1.666 G 3.181(\)s)-1.666 G -3.181(ot)-3.181 G .681(hat it will appear to the)-3.181 F/F2 9 -/Times-Roman@0 SF(GR)3.181 E(OFF)-.36 E F1 .681(processor as a single w) -3.181 F 3.181(ord. The)-.1 F .681(quote marks)3.181 F 1.033 -(will not appear in the formatted te)102 120 R 3.533(xt. If)-.15 F 1.033 -(you do w)3.533 F 1.033(ant a quote mark to appear)-.1 F 3.533(,y)-.4 G -1.033(ou should quote the entire)-3.533 F .532(string \(e)102 132 R -.15 -(ve)-.25 G 3.032(ni).15 G 3.032(fas)-3.032 G .532(ingle w)-3.032 F .532 -(ord\), and use)-.1 F/F3 10/Times-Italic@0 SF(two)3.032 E F1 .532 -(quote marks where you w)3.032 F .532(ant one to appear)-.1 F 5.532(.F) --.55 G .532(or e)-5.682 F .532(xample, if you)-.15 F -.1(wa)102 144 S -(nt to produce the te).1 E(xt:)-.15 E F3("Master Contr)142 160.2 Q -.834 -(ol ")-.45 F F1(in italics, you must type:)102 176.4 Q -(.i """Master Control\\|""")142 192.6 Q(The)102 208.8 Q F0(\\|)2.5 E F1 -(produces a v)2.5 E(ery narro)-.15 E 2.5(ws)-.25 G -(pace so that the \231l\232 does not o)-2.5 E -.15(ve)-.15 G -(rlap the quote sign in).15 E F2(GR)2.5 E(OFF)-.36 E F1 2.5(,l)C(ik)-2.5 -E 2.5(et)-.1 G(his:)-2.5 E F3("Master Contr)142 225 Q(ol")-.45 E F1 -(There are also some \231pseudo-fonts\232 a)127 245.4 Q -.25(va)-.2 G -2.5(ilable. The).25 F(input:)2.5 E(.\(b)142 261.6 Q(.u underlined)142 -273.6 Q(.bx "w)142 285.6 Q(ords in a box")-.1 E(.\)b)142 297.6 Q -(generates)102 313.8 Q(underlined)142 330 Q .4 LW 184.77 332.5 142 332.5 -DL 142 334.5 142 344.5 DL -.1(wo)143.666 342 S(rds in a box).1 E 204.392 -334.5 204.392 344.5 DL 147 334.5 142 334.5 DL 149.392 334.5 144.392 -334.5 DL 154.392 334.5 149.392 334.5 DL 159.392 334.5 154.392 334.5 DL -164.392 334.5 159.392 334.5 DL 169.392 334.5 164.392 334.5 DL 174.392 -334.5 169.392 334.5 DL 179.392 334.5 174.392 334.5 DL 184.392 334.5 -179.392 334.5 DL 189.392 334.5 184.392 334.5 DL 194.392 334.5 189.392 -334.5 DL 199.392 334.5 194.392 334.5 DL 204.392 334.5 199.392 334.5 DL -147 344.5 142 344.5 DL 149.392 344.5 144.392 344.5 DL 154.392 344.5 -149.392 344.5 DL 159.392 344.5 154.392 344.5 DL 164.392 344.5 159.392 -344.5 DL 169.392 344.5 164.392 344.5 DL 174.392 344.5 169.392 344.5 DL -179.392 344.5 174.392 344.5 DL 184.392 344.5 179.392 344.5 DL 189.392 -344.5 184.392 344.5 DL 194.392 344.5 189.392 344.5 DL 199.392 344.5 -194.392 344.5 DL 204.392 344.5 199.392 344.5 DL .359(Notice that pseudo\ - font requests set only the single parameter in the pseudo font; ordina\ -ry font requests will)102 358.2 R(be)102 370.2 Q .791 -(gin setting all te)-.15 F .791 -(xt in the special font if you do not pro)-.15 F .791(vide a parameter) --.15 F 5.791(.N)-.55 G 3.291(om)-5.791 G .791(ore than one w)-3.291 F -.791(ord should)-.1 F .333 -(appear with these three font requests in the middle of lines.)102 382.2 -R .333(This is because of the w)5.333 F(ay)-.1 E F2(GR)2.833 E(OFF)-.36 -E F1 .333(justi\214es te)2.833 F(xt.)-.15 E -.15(Fo)102 394.2 S 2.5(re) -.15 G(xample, if you were to issue the requests:)-2.65 E -(.u "some bold italics")142 410.4 Q(and)142 422.4 Q(.bx "w)142 434.4 Q -(ords in a box")-.1 E 7.232(in the middle of a line)102 450.6 R F2(GR) -9.732 E(OFF)-.36 E F1 -.1(wo)9.732 G 7.232(uld produce some).1 F -(bold italics)2.5 E 418.675 453.1 350.895 453.1 DL(and)428.407 450.6 Q -452.579 443.1 452.579 453.1 DL -.1(wo)454.245 450.6 S 7.232 -(rds in a box).1 F 536.667 443.1 536.667 453.1 DL 479.275 443.1 474.275 -443.1 DL 481.667 443.1 476.667 443.1 DL 486.667 443.1 481.667 443.1 DL -491.667 443.1 486.667 443.1 DL 496.667 443.1 491.667 443.1 DL 501.667 -443.1 496.667 443.1 DL 506.667 443.1 501.667 443.1 DL 511.667 443.1 -506.667 443.1 DL 516.667 443.1 511.667 443.1 DL 521.667 443.1 516.667 -443.1 DL 526.667 443.1 521.667 443.1 DL 531.667 443.1 526.667 443.1 DL -536.667 443.1 531.667 443.1 DL 479.275 453.1 474.275 453.1 DL 481.667 -453.1 476.667 453.1 DL 486.667 453.1 481.667 453.1 DL 491.667 453.1 -486.667 453.1 DL 496.667 453.1 491.667 453.1 DL 501.667 453.1 496.667 -453.1 DL 506.667 453.1 501.667 453.1 DL 511.667 453.1 506.667 453.1 DL -516.667 453.1 511.667 453.1 DL 521.667 453.1 516.667 453.1 DL 526.667 -453.1 521.667 453.1 DL 531.667 453.1 526.667 453.1 DL 536.667 453.1 -531.667 453.1 DL(,)537.5 450.6 Q -(which I think you will agree does not look good.)102 462.6 Q -(The second parameter of all font requests is set in the original font.) -127 478.8 Q -.15(Fo)5 G 2.5(re).15 G(xample, the font request:)-2.65 E -(.b bold f)142 495 Q(ace)-.1 E(generates \231bold\232 in bold font, b) -102 511.2 Q(ut sets \231f)-.2 E -(ace\232 in the font of the surrounding te)-.1 E(xt, resulting in:)-.15 -E F0(bold)142 527.4 Q F1 -.1(fa)C(ce.).1 E 1.6 -.8(To s)102 543.6 T -(et the tw).8 E 2.5(ow)-.1 G(ords)-2.6 E F0(bold)2.5 E F1(and)2.5 E F0 -(face)2.5 E F1(both in)2.5 E F0(bold face)2.5 E F1 2.5(,t)C(ype:)-2.5 E -(.b "bold f)142 559.8 Q(ace")-.1 E -1.1(Yo)127 580.2 S 2.822(uc)1.1 G -.322(an mix fonts in a w)-2.822 F .322 -(ord by using the special sequence)-.1 F F0(\\c)2.822 E F1 .323 -(at the end of a line to indicate \231continue)2.822 F(te)102 592.2 Q -.807(xt processing\232; this allo)-.15 F .807 -(ws input lines to be joined together without a space between them.)-.25 -F -.15(Fo)5.806 G 3.306(re).15 G(xample,)-3.456 E(the input:)102 604.2 Q -(.u under \\c)142 620.4 Q(.i italics)142 632.4 Q(generates under)102 -648.6 Q 165.03 651.1 142.26 651.1 DL F3(italics)165.03 648.6 Q F1 2.5 -(,b)C(ut if we had typed:)-2.7 E(.u under)142 664.8 Q(.i italics)142 -676.8 Q(the result w)102 693 Q(ould ha)-.1 E .3 -.15(ve b)-.2 H -(een under).15 E 234.02 695.5 211.25 695.5 DL F3(italics)236.52 693 Q F1 -(as tw)2.5 E 2.5(ow)-.1 G(ords.)-2.6 E 0 Cg EP -%%Page: 17 17 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(17)340.66 E -2.5(6.2. P)87 96 R(oint Sizes)-.2 E/F1 10/Times-Roman@0 SF .745 -(The phototypesetter supports dif)127 112.2 R .745 -(ferent sizes of type, measured in points.)-.25 F .746(The def)5.745 F -.746(ault point size is 10)-.1 F(points for most te)102 124.2 Q -(xt, 8 points for footnotes.)-.15 E 1.6 -.8(To c)5 H -(hange the pointsize, type:).8 E(.sz)142 140.4 Q/F2 10/Times-Italic@0 SF -(+N)2.5 E F1(where)102 156.6 Q F2(N)2.861 E F1 .361(is the size w)2.861 -F .361(anted in points.)-.1 F(The)5.361 E F2 .361(vertical spacing)2.861 -F F1 .36(\(distance between the bottom of most letters \(the)2.86 F F2 -(baseline)102 168.6 Q F1 2.5(\)b)C -(etween adjacent lines\) is set to be proportional to the type size.) --2.5 E .94(These pointsize changes are)127 184.8 R F2(tempor)3.44 E(ary) --.15 E F1 3.44(!!! F)B .941(or e)-.15 F .941 -(xample, to reset the pointsize of basic te)-.15 F .941(xt to twelv)-.15 -F(e)-.15 E(point, use:)102 196.8 Q(.nr pp 12)142 213 Q(.nr sp 12)142 225 -Q(.nr tp 12)142 237 Q .762(to reset the def)102 253.2 R .761 -(ault pointsize of paragraphs, section headers, and titles respecti)-.1 -F -.15(ve)-.25 G(ly).15 E 5.761(.I)-.65 G 3.261(fy)-5.761 G .761 -(ou only w)-3.261 F .761(ant to set)-.1 F -(the names of sections in a lar)102 265.2 Q(ger pointsize, use:)-.18 E -(.nr sp 11)142 281.4 Q(alone \212 this sets section titles \(e.g.,)102 -297.6 Q F0 -.2(Po)2.5 G(int Sizes).2 E F1(abo)2.5 E -.15(ve)-.15 G 2.5 -(\)i).15 G 2.5(nal)-2.5 G(ar)-2.5 E(ger font than the def)-.18 E(ault.) --.1 E 4.087(As)127 313.8 S 1.587(ingle w)-4.087 F 1.588(ord or phrase c\ -an be set in a smaller pointsize than the surrounding te)-.1 F 1.588 -(xt using the)-.15 F F0(.sm)4.088 E F1 3.41(request. This)102 325.8 R -.91(is especially con)3.41 F -.15(ve)-.4 G .91(nient for w).15 F .91 -(ords that are all capitals, due to the optical illusion that mak)-.1 F -(es)-.1 E(them look e)102 337.8 Q -.15(ve)-.25 G 2.5(nl).15 G(ar)-2.5 E -(ger than the)-.18 E 2.5(ya)-.15 G(ctually are.)-2.5 E -.15(Fo)5 G 2.5 -(re).15 G(xample:)-2.65 E(.sm UNIX)142 354 Q(prints as)102 370.2 Q/F3 9 -/Times-Roman@0 SF(UNIX)2.5 E F1(rather than UNIX.)2.5 E -.8(Wa)127 386.4 -S .056(rning: changing point sizes on the phototypesetter is a slo).8 F -2.556(wm)-.25 G .056(echanical operation.)-2.556 F .056 -(On laser printers)5.056 F(it may require loading ne)102 398.4 Q 2.5(wf) --.25 G 2.5(onts. Size)-2.5 F(changes should be considered carefully)2.5 -E(.)-.65 E F0 2.5(6.3. Quotes)87 422.4 R F1 .448(It is con)127 438.6 R --.15(ve)-.4 G .447 -(ntional when using the typesetter to use pairs of gra).15 F .747 -.15 -(ve a)-.2 H .447(nd acute accents to generate double).15 F .845 -(quotes, rather than the double quote character \(`)102 450.6 R 1.666 -("')1.666 G 3.345(\). This)-1.666 F .845 -(is because it looks better to use gra)3.345 F 1.145 -.15(ve a)-.2 H -.845(nd acute).15 F(accents; for e)102 462.6 Q -(xample, compare "quote" to `)-.15 E(`quote')-.74 E('.)-.74 E -1.1(Yo) -127 478.8 S 2.57(um)1.1 G .07(ay use the sequences)-2.57 F F0(\\*\(lq) -2.57 E F1(and)2.57 E F0(\\*\(r)2.57 E(q)-.18 E F1 .069 -(to stand for the left and right quote respecti)2.57 F -.15(ve)-.25 G -(ly).15 E 5.069(.F)-.65 G .069(or e)-5.219 F(xam-)-.15 E(ple, use:)102 -490.8 Q(\\*\(lqSome things aren\264t true)142 507 Q -2.15 -.25(ev e)142 -519 T 2.5(ni).25 G 2.5(ft)-2.5 G(he)-2.5 E 2.5(yd)-.15 G -(id happen.\\*\(rq)-2.5 E(to generate the result:)102 535.2 Q -(\231Some things aren')142 551.4 Q 2.5(tt)-.18 G(rue e)-2.5 E -.15(ve) --.25 G 2.5(ni).15 G 2.5(ft)-2.5 G(he)-2.5 E 2.5(yd)-.15 G(id happen.) --2.5 E<9a>-.7 E(As a shorthand, the special font request:)102 567.6 Q -(.q "quoted te)142 583.8 Q(xt")-.15 E 1.519(will generate \231quoted te) -102 600 R 4.019(xt\232. Notice)-.15 F 1.52 -(that you must surround the material to be quoted with double quote) -4.019 F(marks if it is more than one w)102 612 Q(ord.)-.1 E F0(Ackno)72 -708 Q(wledgments)-.1 E 0 Cg EP -%%Page: 18 18 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(USING GR)72 60 Q(OFF AND \255ME)-.3 E(18)340.66 E -/F1 10/Times-Roman@0 SF 2.854(Iw)97 96 S .354(ould lik)-2.954 F 2.854 -(et)-.1 G 2.854(ot)-2.854 G .354(hank Bob Epstein, Bill Jo)-2.854 F -1.653 -.65(y, a)-.1 H .353(nd Larry Ro).65 F .353(we for ha)-.25 F .353 -(ving the courage to use the \255me macros to)-.2 F 1.002 -(produce non-tri)72 108 R 1.002(vial papers during the de)-.25 F -.15 -(ve)-.25 G 1.003(lopment stages; Ricki Blau, P).15 F 1.003 -(amela Humphre)-.15 F 2.303 -.65(y, a)-.15 H 1.003(nd Jim Jo).65 F 1.003 -(yce for their)-.1 F .096(help with the documentation phase; peter k)72 -120 R .095(essler for numerous complaints years after I w)-.1 F .095 -(as \231done\232 with this project,)-.1 F .585 -(most accompanied by \214x)72 132 R .586 -(es \(hence forcing me to \214x se)-.15 F -.15(ve)-.25 G .586 -(ral small b).15 F .586(ugs\); and the plethora of people who ha)-.2 F -.886 -.15(ve c)-.2 H(on-).15 E(trib)72 144 Q(uted ideas and ha)-.2 E .3 --.15(ve g)-.2 H -2.15 -.25(iv e).15 H 2.5(ns).25 G -(upport for the project.)-2.5 E(This document applies to the v)72 228 Q -(ersion of the \255me macros included with)-.15 E/F2 9/Times-Roman@0 SF -(GR)2.5 E(OFF)-.36 E F1 -.15(ve)2.5 G(rsion 1.19.2.).15 E 0 Cg EP -%%Trailer -end -%%EOF diff --git a/gen/usr/share/doc/groff/1.19.2/meref.ps b/gen/usr/share/doc/groff/1.19.2/meref.ps deleted file mode 100644 index e282fe1..0000000 --- a/gen/usr/share/doc/groff/1.19.2/meref.ps +++ /dev/null @@ -1,1358 +0,0 @@ -%!PS-Adobe-3.0 -%%Creator: groff version 1.19.2 -%%CreationDate: Sat Nov 19 17:19:36 2016 -%%DocumentNeededResources: font Times-Bold -%%+ font Times-Italic -%%+ font Times-Roman -%%DocumentSuppliedResources: procset grops 1.19 2 -%%Pages: 14 -%%PageOrder: Ascend -%%DocumentMedia: Default 612 792 0 () () -%%Orientation: Portrait -%%EndComments -%%BeginDefaults -%%PageMedia: Default -%%EndDefaults -%%BeginProlog -%%BeginResource: procset grops 1.19 2 -%!PS-Adobe-3.0 Resource-ProcSet -/setpacking where{ -pop -currentpacking -true setpacking -}if -/grops 120 dict dup begin -/SC 32 def -/A/show load def -/B{0 SC 3 -1 roll widthshow}bind def -/C{0 exch ashow}bind def -/D{0 exch 0 SC 5 2 roll awidthshow}bind def -/E{0 rmoveto show}bind def -/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def -/G{0 rmoveto 0 exch ashow}bind def -/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/I{0 exch rmoveto show}bind def -/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def -/K{0 exch rmoveto 0 exch ashow}bind def -/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/M{rmoveto show}bind def -/N{rmoveto 0 SC 3 -1 roll widthshow}bind def -/O{rmoveto 0 exch ashow}bind def -/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/Q{moveto show}bind def -/R{moveto 0 SC 3 -1 roll widthshow}bind def -/S{moveto 0 exch ashow}bind def -/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/SF{ -findfont exch -[exch dup 0 exch 0 exch neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/MF{ -findfont -[5 2 roll -0 3 1 roll -neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/level0 0 def -/RES 0 def -/PL 0 def -/LS 0 def -/MANUAL{ -statusdict begin/manualfeed true store end -}bind def -/PLG{ -gsave newpath clippath pathbbox grestore -exch pop add exch pop -}bind def -/BP{ -/level0 save def -1 setlinecap -1 setlinejoin -72 RES div dup scale -LS{ -90 rotate -}{ -0 PL translate -}ifelse -1 -1 scale -}bind def -/EP{ -level0 restore -showpage -}def -/DA{ -newpath arcn stroke -}bind def -/SN{ -transform -.25 sub exch .25 sub exch -round .25 add exch round .25 add exch -itransform -}bind def -/DL{ -SN -moveto -SN -lineto stroke -}bind def -/DC{ -newpath 0 360 arc closepath -}bind def -/TM matrix def -/DE{ -TM currentmatrix pop -translate scale newpath 0 0 .5 0 360 arc closepath -TM setmatrix -}bind def -/RC/rcurveto load def -/RL/rlineto load def -/ST/stroke load def -/MT/moveto load def -/CL/closepath load def -/Fr{ -setrgbcolor fill -}bind def -/setcmykcolor where{ -pop -/Fk{ -setcmykcolor fill -}bind def -}if -/Fg{ -setgray fill -}bind def -/FL/fill load def -/LW/setlinewidth load def -/Cr/setrgbcolor load def -/setcmykcolor where{ -pop -/Ck/setcmykcolor load def -}if -/Cg/setgray load def -/RE{ -findfont -dup maxlength 1 index/FontName known not{1 add}if dict begin -{ -1 index/FID ne{def}{pop pop}ifelse -}forall -/Encoding exch def -dup/FontName exch def -currentdict end definefont pop -}bind def -/DEFS 0 def -/EBEGIN{ -moveto -DEFS begin -}bind def -/EEND/end load def -/CNT 0 def -/level1 0 def -/PBEGIN{ -/level1 save def -translate -div 3 1 roll div exch scale -neg exch neg exch translate -0 setgray -0 setlinecap -1 setlinewidth -0 setlinejoin -10 setmiterlimit -[]0 setdash -/setstrokeadjust where{ -pop -false setstrokeadjust -}if -/setoverprint where{ -pop -false setoverprint -}if -newpath -/CNT countdictstack def -userdict begin -/showpage{}def -/setpagedevice{}def -}bind def -/PEND{ -countdictstack CNT sub{end}repeat -level1 restore -}bind def -end def -/setpacking where{ -pop -setpacking -}if -%%EndResource -%%EndProlog -%%BeginSetup -%%BeginFeature: *PageSize Default -<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice -%%EndFeature -%%IncludeResource: font Times-Bold -%%IncludeResource: font Times-Italic -%%IncludeResource: font Times-Roman -grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 -def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron -/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent -/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen -/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon -/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O -/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex -/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y -/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft -/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl -/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut -/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash -/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen -/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft -/logicalnot/minus/registered/macron/degree/plusminus/twosuperior -/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior -/ordmasculine/guilsinglright/onequarter/onehalf/threequarters -/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE -/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex -/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn -/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla -/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis -/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash -/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def -/Times-Roman@0 ENC0/Times-Roman RE/Times-Italic@0 ENC0/Times-Italic RE -/Times-Bold@0 ENC0/Times-Bold RE -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 14/Times-Bold@0 SF(\255ME REFERENCE MANU)212.991 136.8 Q(AL)-.84 E -/F1 9/Times-Italic@0 SF(GR)258.983 160.8 Q(OFF)-.36 E/F2 10 -/Times-Italic@0 SF -1.11(Ve)2.5 G -.1(rs)1.11 G(ion 1.19.2\207).1 E -(Eric P)274.315 196.8 Q 2.5(.A)-1.35 G(llman*)-2.5 E/F3 10/Times-Roman@0 -SF(Project INGRES)272.53 220.8 Q(Electronics Research Laboratory)240.465 -232.8 Q(Uni)237.725 244.8 Q -.15(ve)-.25 G(rsity of California, Berk).15 -E(ele)-.1 E(y)-.15 E(Berk)250.625 256.8 Q(ele)-.1 E 1.3 -.65(y, C)-.15 H -2.5(alifornia 94720).65 F F2(Modi\214ed for)233.143 292.8 Q F1(GR)2.5 E -(OFF)-.36 E F2(by J)2.5 E(ames Clark)-.35 E F3 .869 -(This document describes in e)97 357 R .869 -(xtremely terse form the features of the)-.15 F/F4 10/Times-Bold@0 SF -(\255me)3.369 E F3 .869(macro package for)3.369 F/F5 9/Times-Roman@0 SF -(GR)3.369 E(OFF)-.36 E F3 5.868(.S)C(ome)-5.868 E -.1(fa)72 369 S .362 -(miliarity is assumed with).1 F F5(GR)2.862 E(OFF)-.36 E F3 5.362(.S)C -(peci\214cally)-5.362 E 2.862(,t)-.65 G .362 -(he reader should understand breaks, fonts, pointsizes, the use and) --2.862 F .207(de\214nition of number re)72 381 R .206 -(gisters and strings, ho)-.15 F 2.706(wt)-.25 G 2.706(od)-2.706 G .206 -(e\214ne macros, and scaling f)-2.706 F .206(actors for ens, points,)-.1 -F F4(v)2.706 E F3 1.306 -.55('s \()D -.15(ve).55 G .206(rtical line).15 -F(spaces\), etc.)72 393 Q -.15(Fo)97 409.2 S 3.665(ram).15 G 1.165 -(ore casual introduction to te)-3.665 F 1.165(xt processing using)-.15 F -F5(GR)3.665 E(OFF)-.36 E F3 3.665(,r)C 1.165(efer to the document)-3.665 -F F2 1.166(Writing P)3.666 F(aper)-.8 E 3.666(sw)-.1 G(ith)-3.666 E F1 -(GR)72 421.2 Q(OFF)-.36 E F2(using \255me)2.5 E(.)-.15 E F3 .313 -(There are a number of macro parameters that may be adjusted.)97 437.4 R --.15(Fo)5.312 G .312(nts may be set to a font number only).15 F 5.312 -(.F)-.65 G(ont)-5.462 E 2.856(0i)72 449.4 S 2.856(sn)-2.856 G 2.856(of) --2.856 G .356(ont change; the font of the surrounding te)-2.856 F .356 -(xt is used instead.)-.15 F .356 -(Notice that font 0 is a \231pseudo-font\232; that is, it)5.356 F .188 -(is simulated by the macros.)72 461.4 R .188 -(This means that although it is le)5.188 F -.05(ga)-.15 G 2.688(lt).05 G -2.688(os)-2.688 G .188(et a font re)-2.688 F .187 -(gister to zero, it is not le)-.15 F -.05(ga)-.15 G 2.687(lt).05 G 2.687 -(ou)-2.687 G .187(se the)-2.687 F(escape character form, such as:)72 -473.4 Q(\\f0)112 489.6 Q 1.436 -(All distances are in basic units, so it is nearly al)97 510 R -.1(wa) --.1 G 1.436(ys necessary to use a scaling f).1 F(actor)-.1 E 6.436(.F) --.55 G 1.436(or e)-6.586 F 1.436(xample, the)-.15 F -(request to set the paragraph indent to eight one-en spaces is:)72 522 Q -(.nr pi 8n)112 538.2 Q(and not)72 554.4 Q(.nr pi 8)112 570.6 Q .28 -(which w)72 586.8 R .28(ould set the paragraph indent to eight basic un\ -its, or about 0.02 inch.)-.1 F(Def)5.28 E .28(ault parameter v)-.1 F .28 -(alues are gi)-.25 F -.15(ve)-.25 G 2.78(ni).15 G(n)-2.78 E(brack)72 -598.8 Q(ets in the remainder of this document.)-.1 E(Re)97 615 Q .962 -(gisters and strings of the form)-.15 F F4($)3.462 E F2(x)A F3 .962 -(may be used in e)3.462 F .962(xpressions b)-.15 F .962 -(ut should not be changed.)-.2 F .963(Macros of the)5.962 F(form)72 627 -Q F4($)2.553 E F2(x)A F3 .052(perform some function \(as described\) an\ -d may be rede\214ned to change this function.)2.553 F .052 -(This may be a sensiti)5.052 F -.15(ve)-.25 G -(operation; look at the body of the original macro before changing it.) -72 639 Q 1.668(All names in \255me follo)97 655.2 R 4.168(war)-.25 G -1.668(igid naming con)-4.168 F -.15(ve)-.4 G 4.168(ntion. The).15 F -1.668(user may de\214ne number re)4.168 F 1.669(gisters, strings, and) --.15 F .985(macros, pro)72 667.2 R .985(vided that s/he uses single cha\ -racter upper case names or double character names consisting of letters) --.15 F .32 LW 76 676.8 72 676.8 DL 80 676.8 76 676.8 DL 84 676.8 80 -676.8 DL 88 676.8 84 676.8 DL 92 676.8 88 676.8 DL 96 676.8 92 676.8 DL -100 676.8 96 676.8 DL 104 676.8 100 676.8 DL 108 676.8 104 676.8 DL 112 -676.8 108 676.8 DL 116 676.8 112 676.8 DL 120 676.8 116 676.8 DL 124 -676.8 120 676.8 DL 128 676.8 124 676.8 DL 132 676.8 128 676.8 DL 136 -676.8 132 676.8 DL 140 676.8 136 676.8 DL 144 676.8 140 676.8 DL 148 -676.8 144 676.8 DL 152 676.8 148 676.8 DL 156 676.8 152 676.8 DL 160 -676.8 156 676.8 DL 164 676.8 160 676.8 DL 168 676.8 164 676.8 DL 172 -676.8 168 676.8 DL 176 676.8 172 676.8 DL 180 676.8 176 676.8 DL 184 -676.8 180 676.8 DL 188 676.8 184 676.8 DL 192 676.8 188 676.8 DL 196 -676.8 192 676.8 DL 200 676.8 196 676.8 DL 204 676.8 200 676.8 DL 208 -676.8 204 676.8 DL 212 676.8 208 676.8 DL 216 676.8 212 676.8 DL/F6 8 -/Times-Roman@0 SF(\207Based on Berk)93.6 688.8 Q(ele)-.08 E 2(yR)-.12 G -(elease 2.31.)-2 E(*Author')93.6 700.8 Q 2(sc)-.44 G -(urrent address: Britton Lee, Inc., 1919 Addison Suite 105, Berk)-2 E -(ele)-.08 E 1.04 -.52(y, C)-.12 H(alifornia 94704.).52 E F4 -(\255ME REFERENCE MANU)72 756 Q 327.63(AL 1)-.6 F 0 Cg EP -%%Page: 2 2 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(\255ME REFERENCE MANU)72 60 Q 327.63(AL 2)-.6 F -/F1 10/Times-Roman@0 SF .802 -(and digits, with at least one upper case letter)72 96 R 5.802(.I)-.55 G -3.302(nn)-5.802 G 3.302(oc)-3.302 G .802 -(ase should special characters be used in user)-3.302 F .803 -(-de\214ned names.)-.2 F -(Locally de\214ned macros should all be of the form)72 108 Q F0(.*)2.5 E -/F2 10/Times-Italic@0 SF(X)A F1 2.5(,w)C(here)-2.5 E F2(X)2.5 E F1 -(is an)2.5 E 2.5(yl)-.15 G(etter \(upper or lo)-2.5 E -(wer case\) or digit.)-.25 E(This documentation applies to)97 124.2 Q/F3 -9/Times-Roman@0 SF(GR)2.5 E(OFF)-.36 E F1 -.15(ve)2.5 G -(rsion 1.19.2 of the \255me macros.).15 E F0 2.5(1. P)72 148.2 R -(aragraphing)-.1 E F1 .025(These macros are used to be)97 164.4 R .025 -(gin paragraphs.)-.15 F .025(The standard paragraph macro is)5.025 F F0 -(.pp)2.525 E F1 2.525(;t)C .025(he others are all v)-2.525 F .025 -(ariants to)-.25 F(be used for special purposes.)72 176.4 Q .75(After t\ -he \214rst call to one of the paragraphing macros de\214ned in this sec\ -tion or the)97 192.6 R F0(.sh)3.251 E F1 .751(macro \(de\214ned in the) -3.251 F(ne)72 204.6 Q .48(xt session\), the ef)-.15 F .48 -(fects of changing parameters which will ha)-.25 F .779 -.15(ve a g)-.2 -H .479(lobal ef).15 F .479(fect on the format of the page \(notably)-.25 -F(page length and header and footer mar)72 216.6 Q -(gins\) are not well de\214ned and should be a)-.18 E -.2(vo)-.2 G -(ided.).2 E F0(.lp)72 232.8 Q F1(Be)97.16 E .676 -(gin left-justi\214ed paragraph.)-.15 F .677 -(Centering and underlining are turned of)5.676 F 3.177(fi)-.25 G 3.177 -(ft)-3.177 G(he)-3.177 E 3.177(yw)-.15 G .677(ere on,)-3.177 F .293 -(the font is set to)180 244.8 R F0(\\n\(pf)2.793 E F1 .293 -([1] the type size is set to)2.793 F F0(\\n\(pp)2.792 E F1 .292 -([10p], and a)2.792 F F0(\\n\(ps)2.792 E F1 .292(space is inserted)2.792 -F 1.522(before the paragraph [0.35v] The indent is reset to)180 256.8 R -F0(\\n\($i)4.022 E F1 1.522([0] plus)4.022 F F0(\\n\(po)4.022 E F1 1.522 -([0] unless the)4.022 F .729(paragraph is inside a display)180 268.8 R -5.728(.\()-.65 G(see)-5.728 E F0(.ba)3.228 E F1 3.228(\). At)B .728 -(least the \214rst tw)3.228 F 3.228(ol)-.1 G .728 -(ines of the paragraph are)-3.228 F -.1(ke)180 280.8 S -(pt together on a page.).1 E F0(.pp)72 297 Q F1(Lik)94.38 E(e)-.1 E F0 -(.lp)4.018 E F1 4.018(,e)C 1.518(xcept that it puts)-4.168 F F0(\\n\(pi) -4.018 E F1 1.518([5n] units of indent.)4.018 F 1.518 -(This is the standard paragraph)6.518 F(macro.)180 309 Q F0(.ip)72 325.2 -Q F2 2.5(TI)2.5 G F1 .473(Indented paragraph with hanging tag.)80.77 F -.473(The body of the follo)5.473 F .473(wing paragraph is indented)-.25 -F F2(I)2.973 E F1 .024(spaces \(or)180 337.2 R F0(\\n\(ii)2.524 E F1 -.024([5n] spaces if)2.524 F F2(I)2.524 E F1 .024 -(is not speci\214ed\) more than a non-indented paragraph \(such)2.524 F -.55(as with)180 349.2 R F0(.pp)3.05 E F1 3.05(\)i)C 3.05(s. The)-3.05 F -(title)3.05 E F2(T)3.05 E F1 .55(is e)3.05 F .55 -(xdented \(opposite of indented\).)-.15 F .55(The result is a paragraph) -5.55 F .241(with an e)180 361.2 R -.15(ve)-.25 G 2.741(nl).15 G .241 -(eft edge and)-2.741 F F2(T)2.742 E F1 .242(printed in the mar)2.742 F -2.742(gin. An)-.18 F 2.742(ys)-.15 G .242(paces in)-2.742 F F2(T)2.742 E -F1 .242(must be unpaddable.)2.742 F(If)180 373.2 Q F2(T)2.5 E F1 -(will not \214t in the space pro)2.5 E(vided,)-.15 E F0(.ip)2.5 E F1 -(will start a ne)2.5 E 2.5(wl)-.25 G(ine.)-2.5 E F0(.np)72 389.4 Q F1 -3.52(Av)94.38 G 1.02(ariant of .ip which numbers paragraphs.)-3.77 F -1.02(Numbering is reset after a)6.02 F F0(.lp)3.52 E F1(,)A F0(.pp)3.52 -E F1 3.52(,o)C(r)-3.52 E F0(.sh)3.52 E F1(.)A -(The current paragraph number is in)180 401.4 Q F0(\\n\($p)2.5 E F1(.)A -F0(.b)72 417.6 Q(u)-.2 E F1(Lik)94.58 E(e)-.1 E F0(.np)2.919 E F1 -.15 -(ex)2.919 G .419(cept that paragraphs are mark).15 F .419(ed with b)-.1 -F .419(ullets \(\203\).)-.2 F .42(Leading space is eliminated)5.419 F -(to create compact lists.)180 429.6 Q F0 2.5(2. Section)72 453.6 R -(Headings)2.5 E F1 .347(Numbered sections are similar to paragraphs e)97 -469.8 R .346 -(xcept that a section number is automatically generated for each)-.15 F -2.581(one. The)72 481.8 R .081(section numbers are of the form)2.581 F -F0(1.2.3)2.581 E F1 5.081(.T)C(he)-5.081 E F2(depth)2.581 E F1 .082 -(of the section is the count of numbers \(separated by dec-)2.581 F -(imal points\) in the section number)72 493.8 Q(.)-.55 E -(Unnumbered section headings are similar)97 510 Q 2.5(,e)-.4 G -(xcept that no number is attached to the heading.)-2.65 E F0(.sh)72 -526.2 Q F2(+N T a b c d e f)2.5 E F1(Be)30.41 E .438 -(gin numbered section of depth)-.15 F F2(N)2.938 E F1 5.438(.I)C(f) --5.438 E F2(N)2.938 E F1 .438 -(is missing the current depth \(maintained in the)2.938 F .645 -(number re)180 538.2 R(gister)-.15 E F0(\\n\($0)3.145 E F1 3.145(\)i)C -3.145(su)-3.145 G 3.145(sed. The)-3.145 F -.25(va)3.145 G .645 -(lues of the indi).25 F .645(vidual parts of the section number)-.25 F -.004(are maintained in)180 550.2 R F0(\\n\($1)2.503 E F1(through)2.503 E -F0(\\n\($6)2.503 E F1 5.003(.T)C .003(here is a)-5.003 F F0(\\n\(ss) -2.503 E F1 .003([1v] space before the section.)2.503 F F2(T)5.003 E F1 -(is)2.503 E .313(printed as a section title in font)180 562.2 R F0 -(\\n\(sf)2.813 E F1 .314([8] and size)2.813 F F0(\\n\(sp)2.814 E F1 -2.814([10p]. The)2.814 F .314(\231name\232 of the section)2.814 F .852 -(may be accessed via)180 574.2 R F0(\\*\($n)3.352 E F1 5.852(.I)C(f) --5.852 E F0(\\n\(si)3.352 E F1 .852 -(is non-zero, the base indent is set to)3.352 F F0(\\n\(si)3.351 E F1 -.851(times the)3.351 F .747(section depth, and the section title is e) -180 586.2 R 3.247(xdented. \(See)-.15 F F0(.ba)3.247 E F1 3.247 -(.\) Also,)B .748(an additional indent of)3.247 F F0(\\n\(so)180 598.2 Q -F1 .231([0] is added to the section title \(b)2.732 F .231 -(ut not to the body of the section\).)-.2 F .231(The font is then)5.231 -F .229(set to the paragraph font, so that more information may occur on\ - the line with the section)180 610.2 R .436(number and title.)180 622.2 -R F0(.sh)5.436 E F1 .436 -(insures that there is enough room to print the section head plus the) -2.936 F(be)180 634.2 Q 1.199 -(ginning of a paragraph \(about 3 lines total\).)-.15 F(If)6.199 E F2(a) -3.699 E F1(through)3.699 E F2(f)3.7 E F1 1.2 -(are speci\214ed, the section)3.7 F .261 -(number is set to that number rather than incremented automatically)180 -646.2 R 5.261(.I)-.65 G 2.76(fa)-5.261 G .56 -.15(ny o)-2.76 H(f).15 E -F2(a)2.76 E F1(through)2.76 E F2(f)2.76 E F1 .775(are a h)180 658.2 R -.775(yphen that number is not reset.)-.05 F(If)5.775 E F2(T)3.275 E F1 -.776(is a single underscore \(\231_\232\) then the section)3.275 F .674 -(depth and numbering is reset, b)180 670.2 R .674 -(ut the base indent is not reset and nothing is printed out.)-.2 F(This\ - is useful to automatically coordinate section numbers with chapter num\ -bers.)180 682.2 Q F0(.sx)72 698.4 Q F2(+N)2.5 E F1 .805 -(Go to section depth)80.69 F F2(N)3.305 E F1([)3.305 E F0A F1 .805 -(], b)B .805(ut do not print the number and title, and do not increment) --.2 F(the section number at le)180 710.4 Q -.15(ve)-.25 G(l).15 E F2(N) -2.5 E F1 5(.T)C(his has the ef)-5 E(fect of starting a ne)-.25 E 2.5(wp) --.25 G(aragraph at le)-2.5 E -.15(ve)-.25 G(l).15 E F2(N)2.5 E F1(.)A 0 -Cg EP -%%Page: 3 3 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(\255ME REFERENCE MANU)72 60 Q 327.63(AL 3)-.6 F -(.uh)72 96 Q/F1 10/Times-Italic@0 SF(T)2.5 E/F2 10/Times-Roman@0 SF .202 -(Unnumbered section heading.)86.32 F .202(The title)5.202 F F1(T)2.702 E -F2 .201(is printed with the same rules for spacing, font,)2.702 F -(etc., as for)180 108 Q F0(.sh)2.5 E F2(.)A F0(.$p)72 124.2 Q F1 2.5 -(TBN)2.5 G F2 .546(Print section heading.)66.6 F .547 -(May be rede\214ned to get f)5.546 F .547(ancier headings.)-.1 F F1(T) -5.547 E F2 .547(is the title passed on)3.047 F(the)180 136.2 Q F0(.sh) -2.709 E F2(or)2.709 E F0(.uh)2.709 E F2(line;)2.709 E F1(B)2.709 E F2 -.209(is the section number for this section, and)2.709 F F1(N)2.709 E F2 -.209(is the depth of this sec-)2.709 F 4.281(tion. These)180 148.2 R -1.781(parameters are not al)4.281 F -.1(wa)-.1 G 1.782 -(ys present; in particular).1 F(,)-.4 E F0(.sh)4.282 E F2 1.782 -(passes all three,)4.282 F F0(.uh)4.282 E F2 .02 -(passes only the \214rst, and)180 160.2 R F0(.sx)2.52 E F2 .02 -(passes three, b)2.52 F .019(ut the \214rst tw)-.2 F 2.519(oa)-.1 G .019 -(re null strings.)-2.519 F .019(Care should be)5.019 F(tak)180 172.2 Q -(en if this macro is rede\214ned; it is quite comple)-.1 E 2.5(xa)-.15 G -(nd subtle.)-2.5 E F0(.$0)72 188.4 Q F1 2.5(TBN)2.5 G F2 .958 -(This macro is called automatically after e)67.16 F -.15(ve)-.25 G .959 -(ry call to).15 F F0(.$p)3.459 E F2 5.959(.I)C 3.459(ti)-5.959 G 3.459 -(sn)-3.459 G .959(ormally unde\214ned, b)-3.459 F(ut)-.2 E .271 -(may be used to automatically put e)180 200.4 R -.15(ve)-.25 G .27 -(ry section title into the table of contents or for some).15 F .3 -(similar function.)180 212.4 R F1(T)5.3 E F2 .301 -(is the section title for the section title which w)2.8 F .301 -(as just printed,)-.1 F F1(B)2.801 E F2 .301(is the)2.801 F -(section number)180 224.4 Q 2.5(,a)-.4 G(nd)-2.5 E F1(N)2.5 E F2 -(is the section depth.)2.5 E F0(.$1)72 240.6 Q F22.5 E F0(.$6)2.5 E -F2 -.35(Tr)72.36 G .188 -(aps called just before printing that depth section.).35 F .188 -(May be de\214ned to \(for e)5.188 F .187(xample\) gi)-.15 F -.15(ve) --.25 G -.25(va)180 252.6 S 1.243(riable spacing before sections.).25 F -1.244(These macros are called from)6.244 F F0(.$p)3.744 E F2 3.744(,s)C -3.744(oi)-3.744 G 3.744(fy)-3.744 G 1.244(ou rede\214ne)-3.744 F -(that macro you may lose this feature.)180 264.6 Q F0 2.5(3. Headers)72 -288.6 R(and F)2.5 E(ooters)-.25 E F2 .632 -(Headers and footers are put at the top and bottom of e)97 304.8 R -.15 -(ve)-.25 G .631(ry page automatically).15 F 5.631(.T)-.65 G(he)-5.631 E -3.131(ya)-.15 G .631(re set in font)-3.131 F F0(\\n\(tf)3.131 E F2([3]) -3.131 E .381(and size)72 316.8 R F0(\\n\(tp)2.881 E F2 2.881 -([10p]. Each)2.881 F .381(of the de\214nitions apply as of the)2.881 F -F1(ne)2.881 E(xt)-.2 E F2 2.882(page. Three-part)2.882 F .382 -(titles must be quoted if there are)2.882 F(tw)72 328.8 Q 2.5(ob)-.1 G -(lanks adjacent an)-2.5 E -(ywhere in the title or more than eight blanks total.)-.15 E .469 -(The spacing of headers and footers are controlled by three number re)97 -345 R(gisters.)-.15 E F0(\\n\(hm)5.469 E F2 .468 -([4v] is the distance from)2.969 F .449 -(the top of the page to the top of the header)72 357 R(,)-.4 E F0 -(\\n\(fm)2.95 E F2 .45 -([3v] is the distance from the bottom of the page to the bottom of)2.95 -F .637(the footer)72 369 R(,)-.4 E F0(\\n\(tm)3.137 E F2 .637 -([7v] is the distance from the top of the page to the top of the te) -3.137 F .636(xt, and)-.15 F F0(\\n\(bm)3.136 E F2 .636 -([6v] is the distance)3.136 F .462 -(from the bottom of the page to the bottom of the te)72 381 R .462 -(xt \(nominal\).)-.15 F .462(The macros)5.462 F F0(.m1)2.962 E F2(,)A F0 -(.m2)2.962 E F2(,)A F0(.m3)2.962 E F2 2.962(,a)C(nd)-2.962 E F0(.m4) -2.962 E F2 .462(are also sup-)2.962 F(plied for compatibility with)72 -393 Q/F3 9/Times-Roman@0 SF -.36(RO)2.5 G(FF).36 E F2(documents.)2.5 E -F0(.he)72 409.2 Q F1 -.8342.5 F -1.667.833 F F2 -(De\214ne three-part header)62.458 E 2.5(,t)-.4 G 2.5(ob)-2.5 G 2.5(ep) --2.5 G(rinted on the top of e)-2.5 E -.15(ve)-.25 G(ry page.).15 E F0 -(.f)72 425.4 Q(o)-.25 E F1 -.8342.5 F -1.667.833 F -F2(De\214ne footer)64.378 E 2.5(,t)-.4 G 2.5(ob)-2.5 G 2.5(ep)-2.5 G -(rinted at the bottom of e)-2.5 E -.15(ve)-.25 G(ry page.).15 E F0(.eh) -72 441.6 Q F1 -.8342.5 F -1.667.833 F F2 -(De\214ne header)62.458 E 2.5(,t)-.4 G 2.5(ob)-2.5 G 2.5(ep)-2.5 G -(rinted at the top of e)-2.5 E -.15(ve)-.25 G(ry e).15 E -.15(ve)-.25 G -(n-numbered page.).15 E F0(.oh)72 457.8 Q F1 -.8342.5 F --1.667.833 F F2(De\214ne header)61.898 E 2.5(,t)-.4 G 2.5(ob) --2.5 G 2.5(ep)-2.5 G(rinted at the top of e)-2.5 E -.15(ve)-.25 G -(ry odd-numbered page.).15 E F0(.ef)72 474 Q F1 -.8342.5 F --1.667.833 F F2(De\214ne footer)64.688 E 2.5(,t)-.4 G 2.5(ob) --2.5 G 2.5(ep)-2.5 G(rinted at the bottom of e)-2.5 E -.15(ve)-.25 G -(ry e).15 E -.15(ve)-.25 G(n-numbered page.).15 E F0(.of)72 490.2 Q F1 --.8342.5 F -1.667.833 F F2(De\214ne footer)64.128 -E 2.5(,t)-.4 G 2.5(ob)-2.5 G 2.5(ep)-2.5 G(rinted at the bottom of e) --2.5 E -.15(ve)-.25 G(ry odd-numbered page.).15 E F0(.hx)72 506.4 Q F2 -(Suppress headers and footers on the ne)94.94 E(xt page.)-.15 E F0(.m1) -72 522.6 Q F1(+N)2.5 E F2 -(Set the space between the top of the page and the header [4v].)76.25 E -F0(.m2)72 538.8 Q F1(+N)2.5 E F2 -(Set the space between the header and the \214rst line of te)76.25 E -(xt [2v].)-.15 E F0(.m3)72 555 Q F1(+N)2.5 E F2 -(Set the space between the bottom of the te)76.25 E -(xt and the footer [2v].)-.15 E F0(.m4)72 571.2 Q F1(+N)2.5 E F2 -(Set the space between the footer and the bottom of the page [4v].)76.25 -E F0(.ep)72 587.4 Q F2 .29(End this page, b)95.5 F .29(ut do not be)-.2 -F .289(gin the ne)-.15 F .289(xt page.)-.15 F .289 -(Useful for forcing out footnotes, b)5.289 F .289(ut other)-.2 F -(than that hardly e)180 599.4 Q -.15(ve)-.25 G(ry used.).15 E -(Must be follo)5 E(wed by a)-.25 E F0(.bp)2.5 E F2(or the end of input.) -2.5 E F0(.$h)72 615.6 Q F2 .576(Called at e)94.94 F -.15(ve)-.25 G .576 -(ry page to print the header).15 F 5.577(.M)-.55 G .577 -(ay be rede\214ned to pro)-5.577 F .577(vide f)-.15 F(anc)-.1 E 3.077 -(y\()-.15 G .577(e.g., multi-)-3.077 F .226(line\) headers, b)180 627.6 -R .225(ut doing so loses the function of the)-.2 F F0(.he)2.725 E F2(,)A -F0(.f)2.725 E(o)-.25 E F2(,)A F0(.eh)2.725 E F2(,)A F0(.oh)2.725 E F2(,) -A F0(.ef)2.725 E F2 2.725(,a)C(nd)-2.725 E F0(.of)2.725 E F2(requests,) -2.725 E(as well as the chapter)180 639.6 Q(-style title feature of)-.2 E -F0(.+c)2.5 E F2(.)A F0(.$f)72 655.8 Q F2 -(Print footer; same comments apply as in)97.17 E F0(.$h)2.5 E F2(.)A F0 -(.$H)72 672 Q F2 2.781(An)92.72 G .282(ormally unde\214ned macro which \ -is called at the top of each page \(after putting out the)-2.781 F -(header)180 684 Q 2.641(,i)-.4 G .141(nitial sa)-2.641 F -.15(ve)-.2 G -2.641<648d>.15 G .141(oating k)-2.641 F .141(eeps, etc.\); in other w) --.1 F .14(ords, this macro is called immediately)-.1 F -(before printing te)180 696 Q(xt on a page.)-.15 E -(It can be used for column headings and the lik)5 E(e.)-.1 E 0 Cg EP -%%Page: 4 4 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(\255ME REFERENCE MANU)72 60 Q 327.63(AL 4)-.6 F -2.5(4. Displays)72 96 R/F1 10/Times-Roman@0 SF .917(All displays e)97 -112.2 R .917 -(xcept centered blocks and block quotes are preceded and follo)-.15 F -.917(wed by an e)-.25 F(xtra)-.15 E F0(\\n\(bs)3.417 E F1 .918([same as) -3.417 F F0(\\n\(ps)72 124.2 Q F1 2.844(]s)C 2.844(pace. Quote)-2.844 F -.344(spacing is stored in a separate re)2.844 F .344 -(gister; centered blocks ha)-.15 F .644 -.15(ve n)-.2 H 2.844(od).15 G -(ef)-2.844 E .344(ault initial or trailing space.)-.1 F(The v)72 136.2 Q -(ertical spacing of all displays e)-.15 E -(xcept quotes and centered blocks is stored in re)-.15 E(gister)-.15 E -F0(\\n\($V)2.5 E F1(instead of)2.5 E F0(\\n\($v)2.5 E F1(.)A F0(.\(l)72 -152.4 Q/F2 10/Times-Italic@0 SF 2.5(mf)2.5 G F1(Be)81.89 E .126 -(gin list.)-.15 F .126(Lists are single spaced, un\214lled te)5.126 F -2.626(xt. If)-.15 F F2(f)2.626 E F1(is)2.626 E F0(F)2.627 E F1 2.627(,t) -C .127(he list will be \214lled.)-2.627 F(If)5.127 E F2(m)2.627 E F1([) -2.627 E F0(I)A F1 2.627(]i)C(s)-2.627 E F0(I)180 164.4 Q F1 .154 -(the list is indented by)2.654 F F0(\\n\(bi)2.654 E F1 .153([4m]; if) -2.654 F F0(M)2.653 E F1 .153(the list is indented to the left mar)2.653 -F .153(gin; if)-.18 F F0(L)2.653 E F1 .153(the list)2.653 F .206 -(is left justi\214ed with respect to the te)180 176.4 R .206(xt \(dif) --.15 F .206(ferent from)-.25 F F0(M)2.706 E F1 .206 -(only if the base indent \(stored in)2.706 F F0(\\n\($i)180 188.4 Q F1 -.928(and set with)3.428 F F0(.ba)3.428 E F1 3.428(\)i)C 3.428(sn)-3.428 -G .928(ot zero\); and if)-3.428 F F0(C)3.428 E F1 .927 -(the list is centered on a line-by-line basis.)3.428 F .605 -(The list is set in font)180 200.4 R F0(\\n\(df)3.105 E F1 3.105 -([0]. Must)3.105 F .605(be matched by a)3.105 F F0(.\)l)3.105 E F1 5.605 -(.T)C .606(his macro is almost lik)-5.605 F(e)-.1 E F0(.\(b)3.106 E F1 --.15(ex)180 212.4 S(cept that no attempt is made to k).15 E -(eep the display on one page.)-.1 E F0(.\)l)72 228.6 Q F1(End list.) -99.39 E F0(.\(q)72 244.8 Q F1(Be)96.61 E .432(gin major quote.)-.15 F -.431(These are single spaced, \214lled, mo)5.432 F -.15(ve)-.15 G 2.931 -(di).15 G 2.931(nf)-2.931 G .431(rom the te)-2.931 F .431 -(xt on both sides)-.15 F(by)180 256.8 Q F0(\\n\(qi)2.9 E F1 .4 -([4n], preceded and follo)2.9 F .4(wed by)-.25 F F0(\\n\(qs)2.901 E F1 -.401([same as)2.901 F F0(\\n\(bs)2.901 E F1 2.901(]s)C .401 -(pace, and are set in point)-2.901 F(size)180 268.8 Q F0(\\n\(qp)2.5 E -F1([one point smaller than surrounding te)2.5 E(xt].)-.15 E F0(.\)q)72 -285 Q F1(End major quote.)96.61 E F0(.\(b)72 301.2 Q F2 2.5(mf)2.5 G F1 -(Be)79.11 E .393(gin block.)-.15 F .393(Blocks are a form of)5.393 F F2 --.1(ke)2.893 G(ep).1 E F1 2.893(,w)C .393(here the te)-2.893 F .393 -(xt of a k)-.15 F .393(eep is k)-.1 F .392(ept together on one)-.1 F -.001(page if possible \(k)180 313.2 R .001 -(eeps are useful for tables and \214gures which should not be brok)-.1 F -.002(en o)-.1 F -.15(ve)-.15 G 2.502(ra).15 G 2.639(page\). If)180 325.2 -R .139(the block will not \214t on the current page a ne)2.639 F 2.639 -(wp)-.25 G .139(age is be)-2.639 F(gun,)-.15 E F2(unless)2.639 E F1 .138 -(that w)2.638 F(ould)-.1 E(lea)180 337.2 Q 1.966 -.15(ve m)-.2 H 1.666 -(ore than).15 F F0(\\n\(bt)4.166 E F1 1.666 -([0] white space at the bottom of the te)4.166 F 4.167(xt. If)-.15 F F0 -(\\n\(bt)4.167 E F1 1.667(is zero, the)4.167 F 1 -(threshold feature is turned of)180 349.2 R 3.5(f. Blocks)-.25 F 1 -(are not \214lled unless)3.5 F F2(f)3.5 E F1(is)3.5 E F0(F)3.5 E F1 3.5 -(,w)C 1(hen the)-3.5 F 3.5(ya)-.15 G 1(re \214lled.)-3.5 F .542 -(The block will be left-justi\214ed if)180 361.2 R F2(m)3.042 E F1(is) -3.042 E F0(L)3.042 E F1 3.042(,i)C .542(ndented by)-3.042 F F0(\\n\(bi) -3.042 E F1 .542([4m] if)3.042 F F2(m)3.042 E F1(is)3.042 E F0(I)3.042 E -F1 .543(or absent, cen-)3.042 F .379(tered \(line-for)180 373.2 R .379 -(-line\) if)-.2 F F2(m)2.879 E F1(is)2.879 E F0(C)2.879 E F1 2.879(,a)C -.379(nd left justi\214ed to the mar)-2.879 F .379 -(gin \(not to the base indent\) if)-.18 F F2(m)2.878 E F1(is)180 385.2 Q -F0(M)2.5 E F1 5(.T)C(he block is set in font)-5 E F0(\\n\(df)2.5 E F1 -([0].)2.5 E F0(.\)b)72 401.4 Q F1(End block.)96.61 E F0(.\(z)72 417.6 Q -F2 2.5(mf)2.5 G F1(Be)80.23 E .462(gin \215oating k)-.15 F 2.962 -(eep. Lik)-.1 F(e)-.1 E F0(.\(b)2.962 E F1 -.15(ex)2.962 G .462 -(cept that the k).15 F .462(eep is)-.1 F F2(\215oated)2.962 E F1 .463 -(to the bottom of the page or)2.962 F .31(the top of the ne)180 429.6 R -.31(xt page.)-.15 F .309(Therefore, its position relati)5.309 F .609 --.15(ve t)-.25 H 2.809(ot).15 G .309(he te)-2.809 F .309(xt changes.) --.15 F .309(The \215oating)5.309 F -.1(ke)180 441.6 S -(ep is preceded and follo).1 E(wed by)-.25 E F0(\\n\(zs)2.5 E F1 -([1v] space.)2.5 E(Also, it def)5 E(aults to mode)-.1 E F0(M)2.5 E F1(.) -A F0(.\)z)72 457.8 Q F1(End \215oating k)97.73 E(eep.)-.1 E F0(.\(c)72 -474 Q F1(Be)97.73 E .44(gin centered block.)-.15 F .44(The ne)5.44 F .44 -(xt k)-.15 F .44 -(eep is centered as a block, rather than on a line-by-line)-.1 F -(basis as with)180 486 Q F0(.\(b C)2.5 E F1 5(.T)C -(his call may be nested inside k)-5 E(eeps.)-.1 E F0(.\)c)72 502.2 Q F1 -(End centered block.)97.73 E F0 2.5(5. Annotations)72 526.2 R(.\(d)72 -542.4 Q F1(Be)96.61 E .936(gin delayed te)-.15 F 3.436(xt. Ev)-.15 F -.936(erything in the ne)-.15 F .936(xt k)-.15 F .936(eep is sa)-.1 F --.15(ve)-.2 G 3.436(df).15 G .935(or output later with)-3.436 F F0(.pd) -3.435 E F1 3.435(,i)C 3.435(na)-3.435 G(manner similar to footnotes.)180 -554.4 Q F0(.\)d)72 570.6 Q F2(n)2.5 E F1 1(End delayed te)89.11 F 3.5 -(xt. The)-.15 F 1(delayed te)3.5 F 1(xt number re)-.15 F(gister)-.15 E -F0(\\n\($d)3.5 E F1 1(and the associated string)3.5 F F0(\\*#)3.5 E F1 -(are incremented if)180 582.6 Q F0(\\*#)2.5 E F1(has been referenced.) -2.5 E F0(.pd)72 598.8 Q F1 1.125(Print delayed te)94.38 F 3.625(xt. Ev) --.15 F 1.125(erything di)-.15 F -.15(ve)-.25 G 1.125(rted via).15 F F0 -(.\(d)3.625 E F1 1.124(is printed and truncated.)3.625 F 1.124 -(This might be)6.124 F(used at the end of each chapter)180 610.8 Q(.) --.55 E F0(.\(f)72 627 Q F1(Be)98.84 E .95(gin footnote.)-.15 F .95 -(The te)5.95 F .951 -(xt of the footnote is \215oated to the bottom of the page and set in) --.15 F(font)180 639 Q F0(\\n\(ff)4.931 E F1 2.431([1] and size)4.931 F -F0(\\n\(fp)4.931 E F1 4.931([8p]. Each)4.931 F 2.431 -(entry is preceded by)4.931 F F0(\\n\(fs)4.93 E F1 2.43 -([0.2v] space, is)4.93 F(indented)180 651 Q F0<5c6e288c>2.712 E F1 .212 -([3n] on the \214rst line, and is indented)2.712 F F0(\\n\(fu)2.713 E F1 -.213([0] from the right mar)2.713 F 2.713(gin. F)-.18 F(oot-)-.15 E .425 -(notes line up underneath tw)180 663 R 2.924(oc)-.1 G .424 -(olumn output.)-2.924 F .424(If the te)5.424 F .424 -(xt of the footnote will not all \214t on)-.15 F -(one page it will be carried o)180 675 Q -.15(ve)-.15 G 2.5(rt).15 G 2.5 -(ot)-2.5 G(he ne)-2.5 E(xt page.)-.15 E F0(.\)f)72 691.2 Q F2(n)2.5 E F1 -.465(End footnote.)91.34 F .465(The number re)5.465 F(gister)-.15 E F0 -(\\n\($f)2.965 E F1 .465(and the associated string)2.965 F F0(\\**)2.966 -E F1 .466(are incremented if)2.966 F(the)180 703.2 Q 2.5(yh)-.15 G -2.25 --.2(av e)-2.5 H(been referenced.)2.7 E 0 Cg EP -%%Page: 5 5 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(\255ME REFERENCE MANU)72 60 Q 327.63(AL 5)-.6 F -(.$s)72 96 Q/F1 10/Times-Roman@0 SF .906 -(The macro to output the footnote separator)96.61 F 5.906(.T)-.55 G .906 -(his macro may be rede\214ned to gi)-5.906 F 1.205 -.15(ve o)-.25 H -(ther).15 E(size lines or other types of separators.)180 108 Q -(Currently it dra)5 E(ws a 1.5i line.)-.15 E F0(.\(x)72 124.2 Q/F2 10 -/Times-Italic@0 SF(x)2.5 E F1(Be)90.23 E 1.353(gin inde)-.15 F 3.853(xe) --.15 G(ntry)-3.853 E 6.353(.I)-.65 G(nde)-6.353 E 3.853(xe)-.15 G 1.353 -(ntries are sa)-3.853 F -.15(ve)-.2 G 3.853(di).15 G 3.853(nt)-3.853 G -1.353(he inde)-3.853 F(x)-.15 E F2(x)3.853 E F1([)3.853 E F0(x)A F1 -3.853(]u)C 1.353(ntil called up with)-3.853 F F0(.xp.)3.854 E F1 .209 -(Each entry is preceded by a)180 136.2 R F0(\\n\(xs)2.709 E F1 .209 -([0.2v] space.)2.709 F .208(Each entry is \231undented\232 by)5.209 F F0 -(\\n\(xu)2.708 E F1([0.5i];)2.708 E(this re)180 148.2 Q(gister tells ho) --.15 E 2.5(wf)-.25 G(ar the page number e)-2.6 E -(xtends into the right mar)-.15 E(gin.)-.18 E F0(.\)x)72 164.4 Q F2 2.5 -(PA)2.5 G F1 .578(End inde)77.45 F 3.078(xe)-.15 G(ntry)-3.078 E 5.578 -(.T)-.65 G .578(he inde)-5.578 F 3.078(xe)-.15 G .578 -(ntry is \214nished with a ro)-3.078 F 3.078(wo)-.25 G 3.078(fd)-3.078 G -.578(ots with)-3.078 F F2(A)3.079 E F1 .579([null] right justi-)3.079 F -.773(\214ed on the last line \(such as for an author')180 176.4 R 3.273 -(sn)-.55 G .773(ame\), follo)-3.273 F .773(wed by P [)-.25 F F0(\\n%)A -F1 3.272(]. If)B F2(A)3.272 E F1 .772(is speci-)3.272 F(\214ed,)180 -188.4 Q F2(P)3.289 E F1 .789(must be speci\214ed;)3.289 F F0(\\n%)3.289 -E F1 .789(can be used to print the current page number)3.289 F 5.79(.I) --.55 G(f)-5.79 E F2(P)3.29 E F1 .79(is an)3.29 F -(underscore, no page number and no ro)180 200.4 Q 2.5(wo)-.25 G 2.5(fd) --2.5 G(ots are printed.)-2.5 E F0(.xp)72 216.6 Q F2(x)2.5 E F1 1.114 -(Print inde)88 F(x)-.15 E F2(x)3.614 E F1([)3.614 E F0(x)A F1 3.614 -(]. The)B(inde)3.614 E 3.614(xi)-.15 G 3.614(sf)-3.614 G 1.114 -(ormatted in the font, size, and so forth in ef)-3.614 F 1.113 -(fect at the)-.25 F -(time it is printed, rather than at the time it is collected.)180 228.6 -Q F0 2.5(6. Columned)72 252.6 R(Output)2.5 E(.2c)72 268.8 Q F2(+S N)2.5 -E F1 1.222(Enter tw)72.64 F 1.222(o-column mode.)-.1 F 1.222 -(The column separation is set to)6.222 F F2(+S)3.722 E F1 1.222 -([4n, 0.5i in A)3.722 F 1.223(CM mode])-.4 F(\(sa)180 280.8 Q -.15(ve) --.2 G 3.102(di).15 G(n)-3.102 E F0(\\n\($s)3.102 E F1 3.102(\). The)B -.601 -(column width, calculated to \214ll the single column line length with) -3.102 F 1.122(both columns, is stored in)180 292.8 R F0(\\n\($l)3.622 E -F1 6.122(.T)C 1.122(he current column is in)-6.122 F F0(\\n\($c)3.622 E -F1 6.122(.Y)C 1.122(ou can test re)-7.222 F(gister)-.15 E F0(\\n\($m)180 -304.8 Q F1 1.935 -([1] to see if you are in single column or double column mode.)4.435 F -(Actually)6.934 E 4.434(,t)-.65 G(he)-4.434 E(request enters)180 316.8 Q -F2(N)2.5 E F1([2] column output.)2.5 E F0(.1c)72 333 Q F1(Re)96.06 E --.15(ve)-.25 G(rt to single-column mode.).15 E F0(.bc)72 349.2 Q F1(Be) -95.5 E .352(gin column.)-.15 F .352(This is lik)5.352 F(e)-.1 E F0(.bp) -2.853 E F1 -.15(ex)2.853 G .353(cept that it be).15 F .353(gins a ne) --.15 F 2.853(wc)-.25 G .353(olumn on a ne)-2.853 F 2.853(wp)-.25 G .353 -(age only if)-2.853 F(necessary)180 361.2 Q 2.593(,r)-.65 G .093 -(ather than forcing a whole ne)-2.593 F 2.593(wp)-.25 G .092 -(age if there is another column left on the cur)-2.593 F(-)-.2 E -(rent page.)180 373.2 Q F0 2.5(7. F)72 397.2 R(onts and Sizes)-.25 E -(.sz)72 413.4 Q F2(+P)2.5 E F1 .581(The pointsize is set to)81.81 F F2 -(P)3.081 E F1 .581([10p], and the line spacing is set proportionally) -3.081 F 5.582(.T)-.65 G .582(he line spac-)-5.582 F .404 -(ing as a percentage of the pointsize e)180 425.4 R .403 -(xpressed in units is stored in)-.15 F F0(\\n\($v)2.903 E F1 5.403(.T)C -.403(he percentage)-5.403 F .833 -(used internally by displays and annotations is stored in)180 437.4 R F0 -(\\n\($V)3.334 E F1 .834(\(although this is not used)3.334 F(by)180 -449.4 Q F0(.sz)4.385 E F1 4.385(\). This)B 1.885(size is)4.385 F F2(not) -4.385 E F1(stick)4.385 E 4.385(yb)-.15 G -.15(ey)-4.385 G 1.885(ond man) -.15 F 4.384(ym)-.15 G 1.884(acros: in particular)-4.384 F(,)-.4 E F0 -(\\n\(pp)4.384 E F1(\(paragraph)4.384 E .575 -(pointsize\) modi\214es the pointsize e)180 461.4 R -.15(ve)-.25 G .575 -(ry time a ne).15 F 3.075(wp)-.25 G .575(aragraph is be)-3.075 F .575 -(gun using the)-.15 F F0(.pp)3.075 E F1(,)A F0(.lp)3.075 E F1(,)A F0 -(.ip)180 473.4 Q F1(,)A F0(.np)3.58 E F1 3.58(,o)C(r)-3.58 E F0(.b)3.58 -E(u)-.2 E F1 3.58(macros. Also,)3.58 F F0(\\n\(fp)3.58 E F1 1.08 -(\(footnote pointsize\),)3.58 F F0(\\n\(qp)3.58 E F1 1.08 -(\(quote pointsize\),)3.58 F F0(\\n\(sp)3.58 E F1 -(\(section header pointsize\), and)180 485.4 Q F0(\\n\(tp)2.5 E F1 -(\(title pointsize\) may modify the pointsize.)2.5 E F0(.r)72 501.6 Q F2 -2.5(WX)2.5 G F1(Set)79.12 E F2(W)2.608 E F1 .108 -(in roman font, appending)2.608 F F2(X)2.609 E F1 .109(in the pre)2.609 -F .109(vious font.)-.25 F 1.709 -.8(To a)5.109 H .109(ppend dif).8 F -.109(ferent font requests,)-.25 F(use)180 513.6 Q F2(X)2.5 E F1(=)2.5 E -F0(\\c)2.5 E F1 5(.I)C 2.5(fn)-5 G 2.5(op)-2.5 G -(arameters, change to roman font.)-2.5 E F0(.i)72 529.8 Q F2 2.5(WX)2.5 -G F1(Set)80.78 E F2(W)2.745 E F1 .245(in italics, appending)2.745 F F2 -(X)2.745 E F1 .244(in the pre)2.745 F .244(vious font.)-.25 F .244 -(If no parameters, change to italic font.)5.244 F F0(.b)72 546 Q F2 2.5 -(WX)2.5 G F1(Set)78 E F2(W)3.399 E F1 .899(in bold font and append)3.399 -F F2(X)3.399 E F1 .899(in the pre)3.399 F .9(vious font.)-.25 F .9 -(If no parameters, switch to bold)5.9 F(font.)180 558 Q F0(.u)72 574.2 Q -F2 2.5(WX)2.5 G F1(Underline)78 E F2(W)4.022 E F1 1.522(and append)4.022 -F F2(X)4.022 E F1 6.522(.T)C 1.521 -(his is a true underlining, as opposed to the)-6.522 F F0(.ul)4.021 E F1 -(request,)4.021 E .322 -(which changes to \231underline font\232 \(usually italics in)180 586.2 -R/F3 9/Times-Roman@0 SF(GR)2.822 E(OFF)-.36 E F1 2.822(\). It)B -.1(wo) -2.822 G(n').1 E 2.822(tw)-.18 G .322(ork right if)-2.922 F F2(W)2.823 E -F1(is)2.823 E(spread or brok)180 598.2 Q(en \(including h)-.1 E 2.5 -(yphenated\). In)-.05 F(other w)2.5 E -(ords, it is safe in no\214ll mode only)-.1 E(.)-.65 E F0(.q)72 614.4 Q -F2 2.5(WX)2.5 G F1(Quote)78 E F2(W)2.5 E F1(and append)2.5 E F2(X)2.5 E -F1 5(.I)C(n)-5 E F3(GR)2.5 E(OFF)-.36 E F1(this surrounds)2.5 E F2(W)2.5 -E F1(with)2.5 E F0<99>2.5 E F1 2.5(,a)C(nd)-2.5 E F0<9a>2.5 E F1(.)A F0 -(.bi)72 630.6 Q F2 2.5(WX)2.5 G F1(Set)75.22 E F2(W)2.5 E F1 -(in bold italics and append)2.5 E F2(X)2.5 E F1(.)A F0(.bx)72 646.8 Q F2 -2.5(WX)2.5 G F1(Sets)73 E F2(W)2.514 E F1 .014(in a box, with)2.514 F F2 -(X)2.514 E F1 2.514(appended. It)2.514 F -.1(wo)2.514 G(n').1 E 2.514 -(tw)-.18 G .014(ork right if)-2.614 F F2(W)2.514 E F1 .014 -(is spread or brok)2.514 F .013(en \(including)-.1 F -.05(hy)180 658.8 S -2.5(phenated\). In).05 F(other w)2.5 E -(ords, it is safe in no\214ll mode only)-.1 E(.)-.65 E F0(.sm)72 675 Q -F2 2.5(WX)2.5 G F1(Sets)71.34 E F2(W)2.5 E F1 -(in a smaller pointsize, with)2.5 E F2(X)2.5 E F1(appended.)2.5 E 0 Cg -EP -%%Page: 6 6 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(\255ME REFERENCE MANU)72 60 Q 327.63(AL 6)-.6 F -2.5(8. Roff)72 96 R(Support)2.5 E(.ix)72 112.2 Q/F1 10/Times-Italic@0 SF -(+N)2.5 E/F2 10/Times-Roman@0 SF(Indent, no break.)81.8 E(Equi)5 E -.25 -(va)-.25 G(lent to).25 E F0(\264in)2.5 E F1(N)2.5 E F2(.)A F0(.bl)72 -128.4 Q F1(N)2.5 E F2(Lea)87.99 E -.15(ve)-.2 G F1(N)4.482 E F2 1.832 -(contiguous white space, on the ne)4.332 F 1.833 -(xt page if not enough room on this page.)-.15 F(Equi)180 140.4 Q -.25 -(va)-.25 G(lent to a).25 E F0(.sp)2.5 E F1(N)2.5 E F2(inside a block.) -2.5 E F0(.pa)72 156.6 Q F1(+N)2.5 E F2(Equi)79.02 E -.25(va)-.25 G -(lent to).25 E F0(.bp)2.5 E F2(.)A F0(.r)72 172.8 Q(o)-.18 E F2 -(Set page number in roman numerals.)96.24 E(Equi)5 E -.25(va)-.25 G -(lent to).25 E F0(.af % i)2.5 E F2(.)A F0(.ar)72 189 Q F2 -(Set page number in Arabic.)96.06 E(Equi)5 E -.25(va)-.25 G(lent to).25 -E F0(.af % 1)2.5 E F2(.)A F0(.n1)72 205.2 Q F2(Number lines in mar)94.94 -E(gin from one on each page.)-.18 E F0(.n2)72 221.4 Q F1(N)2.5 E F2 -(Number lines from)85.77 E F1(N)2.5 E F2 2.5(,s)C(top if)-2.5 E F1(N)2.5 -E F2 2.5(=0)2.5 G(.)-2.5 E F0(.sk)72 237.6 Q F2(Lea)96.05 E 1.187 -.15 -(ve t)-.2 H .887(he ne).15 F .887(xt output page blank, e)-.15 F .887 -(xcept for headers and footers.)-.15 F .886(This is used to lea)5.886 F --.15(ve)-.2 G .68(space for a full-page diagram which is produced e)180 -249.6 R .68(xternally and pasted in later)-.15 F 5.68(.T)-.55 G 3.18(og) --6.48 G .68(et a)-3.18 F 1.583(partial-page paste-in display)180 261.6 R -4.083(,s)-.65 G(ay)-4.083 E F0(.sv)4.083 E F1(N)2.5 E F2 4.083(,w)C -(here)-4.083 E F1(N)4.083 E F2 1.583(is the amount of space to lea)4.083 -F -.15(ve)-.2 G 4.082(;t).15 G(his)-4.082 E .297(space will be output i\ -mmediately if there is room, and will otherwise be output at the top)180 -273.6 R .376(of the ne)180 285.6 R .376(xt page.)-.15 F(Ho)5.376 E(we) --.25 E -.15(ve)-.25 G 1.176 -.4(r, b).15 H 2.876(ew).4 G .376(arned: if) --2.976 F F1(N)2.876 E F2 .375(is greater than the amount of a)2.876 F --.25(va)-.2 G .375(ilable space).25 F(on an empty page, no space will e) -180 297.6 Q -.15(ve)-.25 G 2.5(rb).15 G 2.5(eo)-2.5 G(utput.)-2.5 E F0 -2.5(9. Pr)72 321.6 R(epr)-.18 E(ocessor Support)-.18 E(.EQ)72 337.8 Q F1 -2.5(mT)2.5 G F2(Be)70.77 E .075(gin equation.)-.15 F .076 -(The equation is centered if)5.075 F F1(m)2.576 E F2(is)2.576 E F0(C) -2.576 E F2 .076(or omitted, indented)2.576 F F0(\\n\(bi)2.576 E F2 .076 -([4m] if)2.576 F F1(m)2.576 E F2(is)2.576 E F0(I)180 349.8 Q F2 2.906 -(,a)C .406(nd left justi\214ed if)-2.906 F F1(m)2.906 E F2(is)2.906 E F0 -(L)2.906 E F2(.)A F1(T)5.406 E F2 .405 -(is a title printed on the right mar)2.906 F .405(gin ne)-.18 F .405 -(xt to the equation.)-.15 F(See)180 361.8 Q F1 -.74(Ty)4.264 G 1.764 -(pesetting Mathematics \255 User').74 F 4.264(sG)-.4 G(uide)-4.264 E F2 -1.764(by Brian W)4.264 F 4.264(.K)-.92 G 1.765(ernighan and Lorinda L.) --4.514 F(Cherry)180 373.8 Q(.)-.65 E F0(.EN)72 390 Q F1(c)2.5 E F2 .933 -(End equation.)84.67 F(If)5.933 E F1(c)3.432 E F2(is)3.432 E F0(C)3.432 -E F2 .932(the equation must be continued by immediately follo)3.432 F -.932(wing with)-.25 F(another)180 402 Q F0(.EQ)2.774 E F2 2.774(,t)C -.274(he te)-2.774 F .274 -(xt of which can be centered along with this one.)-.15 F .274 -(Otherwise, the equa-)5.274 F(tion is printed, al)180 414 Q -.1(wa)-.1 G -(ys on one page, with).1 E F0(\\n\(es)2.5 E F2([0.5v] space abo)2.5 E .3 --.15(ve a)-.15 H(nd belo).15 E 2.5(wi)-.25 G(t.)-2.5 E F0(.TS)72 430.2 Q -F1(h)2.5 E F2 -.8(Ta)85.77 G .055(ble start.).8 F -.8(Ta)5.055 G .055 -(bles are single spaced and k).8 F .055(ept on one page if possible.)-.1 -F .054(If you ha)5.054 F .354 -.15(ve a l)-.2 H(ar).15 E(ge)-.18 E .567 -(table which will not \214t on one page, use)180 442.2 R F1(h)3.067 E F2 -(=)3.067 E F0(H)3.067 E F2 .567(and follo)3.067 F 3.067(wt)-.25 G .567 -(he header part \(to be printed)-3.067 F .305(on e)180 454.2 R -.15(ve) --.25 G .305(ry page of the table\) with a).15 F F0(.TH)2.805 E F2 5.305 -(.S)C(ee)-5.305 E F1 .305(Tbl \255 A Pr)2.805 F -.1(og)-.45 G -.15(ra).1 -G 2.805(mt).15 G 2.804(oF)-2.805 G .304(ormat T)-3.854 F(ables)-.92 E F2 -.304(by M. E.)2.804 F(Lesk.)180 466.2 Q F0(.TH)72 482.4 Q F2 -.4(Wi) -91.05 G(th).4 E F0(.TS H)2.5 E F2 2.5(,e)C -(nds the header portion of the table.)-2.5 E F0(.TE)72 498.6 Q F2 -.8 -(Ta)92.16 G .413(ble end.).8 F .414 -(Note that this table does not \215oat, in f)5.413 F .414 -(act, it is not e)-.1 F -.15(ve)-.25 G 2.914(ng).15 G .414 -(uaranteed to stay on)-2.914 F .103 -(one page if you use requests such as)180 510.6 R F0(.sp)2.602 E F2 -(intermix)2.602 E .102(ed with the te)-.15 F .102(xt of the table.)-.15 -F .102(If you w)5.102 F(ant)-.1 E .332(it to \215oat \(or if you use re\ -quests inside the table\), surround the entire table \(including the)180 -522.6 R F0(.TS)180 534.6 Q F2(and)2.5 E F0(.TE)2.5 E F2 -(requests\) with the requests)2.5 E F0(.\(z)2.5 E F2(and)2.5 E F0(.\)z) -2.5 E F2(.)A F0(.PS)72 550.8 Q F1 2.5(hw)2.5 G F2(Be)74.66 E(gin)-.15 E -F1(pic)2.5 E F2(picture.)2.5 E F1(H)5 E F2(is the height and)2.5 E F1(w) -2.5 E F2(is the width, both in basic units.)2.5 E F0(.PE)72 567 Q F2 -(End picture.)92.72 E F0(.IS)72 583.2 Q F2(Be)96.05 E(gin)-.15 E F1 -(ideal)2.5 E F2(picture.)2.5 E F0(.IE)72 599.4 Q F2(End)94.94 E F1 -(ideal)2.5 E F2(picture.)2.5 E F0(.IF)72 615.6 Q F2(End)95.5 E F1(ideal) -2.5 E F2(picture \(alternate form\).)2.5 E F0(.GS)72 631.8 Q F1(x)2.5 E -F2(Be)85.22 E(gin)-.15 E F1(gr)2.585 E(emlin)-.37 E F2(picture.)2.585 E -F1(X)5.085 E F2 .085(can be either)2.585 F F0(C)2.585 E F2(,)A F0(L) -2.585 E F2 2.585(,o)C(r)-2.585 E F0(R)2.585 E F2 .085(to center)2.585 F -2.585(,l)-.4 G .085(eft, or right justify the whole)-2.585 F 2.5 -(picture. Def)180 643.8 R(ault is centering the image.)-.1 E F0(.GE)72 -660 Q F2(End)91.05 E F1(gr)2.5 E(emlin)-.37 E F2(picture.)2.5 E F0(.GF) -72 676.2 Q F2(End)91.61 E F1(gr)2.5 E(emlin)-.37 E F2 -(picture \(alternate form\).)2.5 E 0 Cg EP -%%Page: 7 7 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(\255ME REFERENCE MANU)72 60 Q 327.63(AL 7)-.6 F -2.5(10. Miscellaneous)72 96 R(.r)72 112.2 Q(e)-.18 E/F1 10/Times-Roman@0 -SF(Reset tabs e)96.8 E -.15(ve)-.25 G(ry 0.5i.).15 E F0(.ba)72 128.4 Q -/F2 10/Times-Italic@0 SF(+N)2.5 E F1 1.569(Set the base indent to)79.02 -F F2(+N)4.069 E F1 1.569([0] \(sa)4.069 F -.15(ve)-.2 G 4.069(di).15 G -(n)-4.069 E F0(\\n\($i)4.069 E F1 4.069(\). All)B 1.57 -(paragraphs, sections, and displays)4.07 F .734 -(come out indented by this amount.)180 140.4 R -.35(Ti)5.734 G .734 -(tles and footnotes are unaf).35 F 3.234(fected. The)-.25 F F0(.sh)3.233 -E F1(request)3.233 E(performs a)180 152.4 Q F0(.ba)2.5 E F1(request if) -2.5 E F0(\\n\(si)2.5 E F1([0] is not zero, and sets the base indent to) -2.5 E F0(\\n\(si*\\n\($0)2.5 E F1(.)A F0(.xl)72 168.6 Q F2(+N)2.5 E F1 -1.284(Set the line length to)81.8 F F2(N)3.784 E F1 3.784([6.0i]. This) -3.784 F(dif)3.784 E 1.284(fers from)-.25 F F0(.ll)3.784 E F1 1.285 -(because it only af)3.785 F 1.285(fects the current)-.25 F(en)180 180.6 -Q(vironment.)-.4 E F0(.ll)72 196.8 Q F2(+N)2.5 E F1 .738 -(Set line length in all en)84.02 F .738(vironments to)-.4 F F2(N)3.238 E -F1 3.237([6.0i]. This)3.238 F .737(should not be used after output has) -3.237 F(be)180 208.8 Q 1.389(gun, and particularly not in tw)-.15 F -1.389(o-column output.)-.1 F 1.389(The current line length is stored in) -6.389 F F0(\\n\($l)180 220.8 Q F1(.)A F0(.hl)72 237 Q F1(Dra)97.16 E -.262(ws a horizontal line the length of the page.)-.15 F .261 -(This is useful inside \215oating k)5.261 F .261(eeps to dif-)-.1 F -(ferentiate between the te)180 249 Q(xt and the \214gure.)-.15 E F0 2.5 -(11. Standard)72 273 R -.1(Pa)2.5 G(pers).1 E(.tp)72 289.2 Q F1(Be)96.61 -E .96(gin title page.)-.15 F .96 -(Spacing at the top of the page can occur)5.96 F 3.46(,a)-.4 G .96 -(nd headers and footers are)-3.46 F 2.5(suppressed. Also,)180 301.2 R -(the page number is not incremented for this page.)2.5 E F0(.++)72 317.4 -Q F2 2.5(mH)2.5 G F1 .69 -(This request de\214nes the section of the paper which we are entering.) -72.16 F .69(The section type is)5.69 F .985(de\214ned by)180 329.4 R F2 -(m)3.485 E F1(.)A F0(C)5.985 E F1 .985 -(means that we are entering the chapter portion of the paper)3.485 F(,) --.4 E F0(A)3.485 E F1(means)3.485 E .493 -(that we are entering the appendix portion of the paper)180 341.4 R(,) --.4 E F0(P)2.993 E F1 .492(means that the material follo)2.992 F(w-)-.25 -E 1.606(ing should be the preliminary portion \(abstract, table of cont\ -ents, etc.\))180 353.4 R 1.607(portion of the)6.606 F(paper)180 365.4 Q -(,)-.4 E F0(AB)3.777 E F1 1.276(means that we are entering the abstract\ - \(numbered independently from 1 in)3.777 F .62(Arabic numerals\), and) -180 377.4 R F0(B)3.12 E F1 .62 -(means that we are entering the bibliographic portion at the end)3.12 F -.756(of the paper)180 389.4 R 5.756(.A)-.55 G .756(lso, the v)-5.756 F -(ariants)-.25 E F0(RC)3.256 E F1(and)3.256 E F0(RA)3.256 E F1 .756 -(are allo)3.256 F .755(wed, which specify renumbering of)-.25 F .91 -(pages from one at the be)180 401.4 R .911 -(ginning of each chapter or appendix, respecti)-.15 F -.15(ve)-.25 G(ly) -.15 E 5.911(.T)-.65 G .911(he section)-5.911 F .17(type is a)180 413.4 R --.25(va)-.2 G .17(ilable in re).25 F(gister)-.15 E F0(\\n\(_M)2.67 E F1 -.17([1]; v)2.67 F .169(alue 1 is equi)-.25 F -.25(va)-.25 G .169 -(lent to type).25 F F0(C)2.669 E F1(or)2.669 E F0(RC)2.669 E F1 2.669 -(,v)C .169(alue 2 rep-)-2.919 F 1.495(resents type)180 425.4 R F0(A) -3.995 E F1(or)3.995 E F0(RA)3.995 E F1 3.995(,a)C 1.495(nd v)-3.995 F -1.496(alues 3 to 5 are type)-.25 F F0(P)3.996 E F1(,)A F0(B)3.996 E F1 -3.996(,a)C(nd)-3.996 E F0(AB)3.996 E F1 3.996(,r)C(especti)-3.996 E -.15 -(ve)-.25 G(ly).15 E 6.496(.T)-.65 G(he)-6.496 E F2(H)3.996 E F1 .397 -(parameter de\214nes the ne)180 437.4 R 2.897(wh)-.25 G(eader)-2.897 E -5.396(.I)-.55 G 2.896(ft)-5.396 G .396(here are an)-2.896 F 2.896(ys) --.15 G .396(paces in it, the entire header must be)-2.896 F 3.156 -(quoted. If)180 449.4 R .656(you w)3.156 F .656(ant the header to ha)-.1 -F .956 -.15(ve t)-.2 H .656(he chapter number in it, Use the string).15 -F F0(\\\\\\\\n\(ch)3.157 E F1(.)A -.15(Fo)180 461.4 S 3.398(re).15 G -.898(xample, to number appendix)-3.548 F(es)-.15 E F0(A.1)3.398 E F1 -.897(etc., type)3.398 F F0 .897(.++ RA \264\264\264\\\\\\\\n\(ch.%\264) -3.397 F F1 5.897(.E)C .897(ach section)-5.897 F(\(chapter)180 473.4 Q -3.123(,a)-.4 G .623(ppendix, etc.\))-3.123 F .624 -(should be preceded by the)5.624 F F0(.+c)3.124 E F1 3.124(request. It) -3.124 F .624(should be mentioned)3.124 F .177 -(that it is easier when using)180 485.4 R/F3 9/Times-Roman@0 SF(TR)2.677 -E(OFF)-.36 E F1 .176(to put the front material at the end of the paper) -2.677 F 2.676(,s)-.4 G 2.676(ot)-2.676 G(hat)-2.676 E 1.211(the table o\ -f contents can be collected and put out; this material can then be ph) -180 497.4 R(ysically)-.05 E(mo)180 509.4 Q -.15(ve)-.15 G 2.5(dt).15 G -2.5(ot)-2.5 G(he be)-2.5 E(ginning of the paper)-.15 E(.)-.55 E F0(.+c) -72 525.6 Q F2(T)2.5 E F1(Be)87.3 E .897(gin chapter with title)-.15 F F2 -(T)3.397 E F1 5.897(.T)C .896(he chapter number is maintained in)-5.897 -F F0(\\n\(ch)3.396 E F1 5.896(.T)C .896(his re)-5.896 F .896(gister is) --.15 F .6(incremented e)180 537.6 R -.15(ve)-.25 G .6(ry time).15 F F0 -(.+c)3.1 E F1 .6(is called with a parameter)3.1 F 5.6(.T)-.55 G .6 -(he title and chapter number are)-5.6 F .078(printed by)180 549.6 R F0 -(.$c)2.578 E F1 5.078(.T)C .078(he header is mo)-5.078 F -.15(ve)-.15 G -2.578(dt).15 G 2.578(ot)-2.578 G .078 -(he footer on the \214rst page of each chapter)-2.578 F 5.078(.I)-.55 G -(f)-5.078 E F2(T)2.577 E F1(is)2.577 E(omitted,)180 561.6 Q F0(.$c)2.508 -E F1 .009(is not called; this is useful for doing your o)2.508 F .009 -(wn \231title page\232 at the be)-.25 F .009(ginning of)-.15 F 1.033 -(papers without a title page proper)180 573.6 R(.)-.55 E F0(.$c)6.033 E -F1(calls)3.533 E F0(.$C)3.533 E F1 1.033 -(as a hook so that chapter titles can be)3.533 F -(inserted into a table of contents automatically)180 585.6 Q 5(.T)-.65 G -(he footnote numbering is reset to one.)-5 E F0(.$c)72 601.8 Q F2(T)2.5 -E F1 .429(Print chapter number \(from)88 F F0(\\n\(ch)2.929 E F1 2.929 -(\)a)C(nd)-2.929 E F2(T)2.929 E F1 5.429(.T)C .43 -(his macro can be rede\214ned to your liking.)-5.429 F(It)5.43 E .432 -(is de\214ned by def)180 613.8 R .431 -(ault to be acceptable for a PhD thesis at Berk)-.1 F(ele)-.1 E 4.231 --.65(y. T)-.15 H .431(his macro calls).65 F F0($C)2.931 E F1(,)A -(which can be de\214ned to mak)180 625.8 Q 2.5(ei)-.1 G(nde)-2.5 E 2.5 -(xe)-.15 G(ntries, or whate)-2.5 E -.15(ve)-.25 G -.55(r.).15 G F0(.$C) -72 642 Q F2 2.5(KNT)2.5 G F1 .997(This macro is called by)64.38 F F0 -(.$c)3.497 E F1 5.997(.I)C 3.497(ti)-5.997 G 3.497(sn)-3.497 G .997 -(ormally unde\214ned, b)-3.497 F .998(ut can be used to automatically) --.2 F 2.787(insert inde)180 654 R 5.287(xe)-.15 G 2.787 -(ntries, or whate)-5.287 F -.15(ve)-.25 G -.55(r.).15 G F2(K)8.337 E F1 -2.787(is a k)5.287 F -.15(ey)-.1 G -.1(wo).15 G 2.786 -(rd, either \231Chapter\232 or \231).1 F(Appendix\232)-.8 E .6 -(\(depending on the)180 666 R F0(.++)3.1 E F1(mode\);)3.1 E F2(N)3.1 E -F1 .601(is the chapter or appendix number)3.1 F 3.101(,a)-.4 G(nd)-3.101 -E F2(T)3.101 E F1 .601(is the chapter)3.101 F(or appendix title.)180 678 -Q 0 Cg EP -%%Page: 8 8 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(\255ME REFERENCE MANU)72 60 Q 327.63(AL 8)-.6 F -2.5(12. Pr)72 96 R(ede\214ned Strings)-.18 E(\\**)72 112.2 Q/F1 10 -/Times-Roman@0 SF -.15(Fo)95.22 G(otnote number).15 E 2.5(,a)-.4 G -(ctually)-2.5 E F0(\\*[\\n\($f\\*])2.5 E F1 5(.T)C -(his macro is incremented after each call to)-5 E F0(.\)f)2.5 E F1(.)A -F0(\\*#)72 128.4 Q F1(Delayed te)95.22 E(xt number)-.15 E 5(.A)-.55 G -(ctually [)-5 E F0(\\n\($d)A F1(].)A F0(\\*{)72 144.6 Q F1 3.762 -(Superscript. This)96.28 F 1.262(string gi)3.762 F -.15(ve)-.25 G 3.762 -(su).15 G(pw)-3.762 E 1.262(ard mo)-.1 F -.15(ve)-.15 G 1.261 -(ment and a change to a smaller point size.).15 F -(Extra space is left abo)180 156.6 Q .3 -.15(ve t)-.15 H -(he line to allo).15 E 2.5(wr)-.25 G(oom for the superscript.)-2.5 E F0 -(\\*})72 172.8 Q F1 4.306(Unsuperscript. In)96.28 F -.15(ve)-.4 G 1.806 -(rse to).15 F F0(\\*{)4.306 E F1 6.806(.F)C 1.807(or e)-6.956 F 1.807 -(xample, to produce a superscript you might type)-.15 F F0(x\\*{2\\*}) -180 186.8 Q F1 2.5(,w)C(hich will produce)-2.5 E F0(x)2.5 E/F2 7 -/Times-Bold@0 SF(2)-4 I F1(.)4 I F0(\\*<)72 203 Q F1 2.5 -(Subscript. Extra)94.52 F(space is left belo)2.5 E 2.5(wt)-.25 G -(he line to allo)-2.5 E 2.5(wf)-.25 G(or the subscript.)-2.5 E F0(\\*>) -72 219.2 Q F1(In)94.52 E -.15(ve)-.4 G(rse to).15 E F0(\\*<)2.5 E F1(.)A -F0(\\*\(d)72 235.4 Q(w)-.15 E F1(The day of the week, as a w)84.26 E -(ord.)-.1 E F0(\\*\(mo)72 251.6 Q F1(The month, as a w)83.56 E(ord.)-.1 -E F0(\\*\(td)72 267.8 Q F1 -.8(To)88 G(day').8 E 2.84(sd)-.55 G .34 -(ate, directly printable.)-2.84 F .339 -(The date is of the form February 15, 2003.)5.34 F .339(Other forms) -5.339 F .196(of the date can be used by using)180 279.8 R F0(\\n\(dy) -2.697 E F1 .197(\(the day of the month; for e)2.697 F .197 -(xample, 15\),)-.15 F F0(\\*\(mo)2.697 E F1(\(as)2.697 E .53(noted abo) -180 291.8 R -.15(ve)-.15 G 3.03(\)o).15 G(r)-3.03 E F0(\\n\(mo)3.03 E F1 -.53(\(the same, b)3.03 F .529(ut as an ordinal number; for e)-.2 F .529 -(xample, February is 2\),)-.15 F F0(\\n\(y4)180 303.8 Q F1 -(\(the current year\), and)2.5 E F0(\\n\(y2)2.5 E F1(\(the last tw)2.5 E -2.5(od)-.1 G(igits of the current year\).)-2.5 E F0(\\*\(lq)72 320 Q F1 -(Left quote marks.)88.55 E F0(\\*\(r)72 336.2 Q(q)-.18 E F1 -(Right quote.)87.07 E F0<5c2aad>72 352.4 Q F1 2.594.52 G 2.5(md) --2.5 G(ash.)-2.5 E F0 2.5(13. Special)72 376.4 R(Characters and Marks) -2.5 E F1(There are a number of special characters and diacritical marks\ - \(such as accents\) a)97 392.6 Q -.25(va)-.2 G(ilable through \255me.) -.25 E 123.62(Name Usage)72 404.6 R(Example)25.01 E(Acute accent)72 416.6 -Q 36.39(\\*\264 a\\*\264)98.08 F -3.552<61b4>44.45 G(Gra)72 428.6 Q .3 --.15(ve a)-.2 H 95.38(ccent \\*\222).15 F 41.95(e\\*\222 e)38.89 F<92> --3.108 E 117.5(Umlaut \\*:)72 440.6 R 41.94(u\\*: u)39.44 F -.5(..)-5 -6 -O -.35(Ti)72 452.6 S 126.74(lde \\*~).35 F 41.39(n\\*~ n)38.89 F(~)-4.5 -E 125.84(Caret \\*^)72 464.6 R 41.95(e\\*^ e)38.89 F(^)-3.94 E 118.61 -(Cedilla \\*,)72 476.6 R 42.78(c\\*, c)39.72 F(,)-4.44 E 122.51 -(Czech \\*v)72 488.6 R 40.28(e\\*v e)37.22 F/F3 6/Times-Roman@0 SF(v) --3.996 -6 M F1 123.06(Circle \\*o)72 500.6 R 37.5(A\\*o A)37.22 F --5.61 -2 M(There e)72 512.6 Q 99.05(xists \\*\(qe)-.15 F/F4 8 -/Times-Roman@0 SF<8a>89.45 3.6 M<8a>-8 -5 M<8a>-8 -5 M .4 LW 339 504.6 -339 514.6 DL F1 -.15(Fo)72 524.6 S 2.5(ra).15 G 121.26(ll \\*\(qa)-2.5 F -.72(\\/)89.45 G F3<8a>-6.8 -3 M F0(Ackno)72 608.6 Q(wledgments)-.1 E F1 -2.853(Iw)97 624.8 S .353(ould lik)-2.953 F 2.853(et)-.1 G 2.853(ot) --2.853 G .353(hank Bob Epstein, Bill Jo)-2.853 F 1.653 -.65(y, a)-.1 H -.353(nd Larry Ro).65 F .353(we for ha)-.25 F .354 -(ving the courage to use the \255me macros to)-.2 F 1.003 -(produce non-tri)72 636.8 R 1.003(vial papers during the de)-.25 F -.15 -(ve)-.25 G 1.003(lopment stages; Ricki Blau, P).15 F 1.003 -(amela Humphre)-.15 F 2.302 -.65(y, a)-.15 H 1.002(nd Jim Jo).65 F 1.002 -(yce for their)-.1 F 1.516(help with the documentation phase; peter k)72 -648.8 R 1.517(essler for numerous complaints, most accompanied by \214x) --.1 F 1.517(es; and the)-.15 F(plethora of people who ha)72 660.8 Q .3 --.15(ve c)-.2 H(ontrib).15 E(uted ideas and ha)-.2 E .3 -.15(ve g)-.2 H --2.15 -.25(iv e).15 H 2.5(ns).25 G(upport for the project.)-2.5 E 0 Cg -EP -%%Page: 9 9 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(\255ME REFERENCE MANU)72 60 Q 327.63(AL 9)-.6 F -(Summary)72 96 Q/F1 10/Times-Roman@0 SF 1.982 -(This alphabetical list summarizes all macros, strings, and number re)97 -112.2 R 1.981(gisters a)-.15 F -.25(va)-.2 G 1.981 -(ilable in the \255me macros.).25 F(Selected)72 124.2 Q/F2 10 -/Times-Italic@0 SF(tr)4.337 E(of)-.45 E(f)-.18 E F1 1.837(commands, re) -4.337 F 1.838(gisters, and functions are included as well; those listed\ - can generally be used with)-.15 F(impunity)72 136.2 Q(.)-.65 E .44 -(The columns are the name of the command, macro, re)97 152.4 R(gister) --.15 E 2.94(,o)-.4 G 2.94(rs)-2.94 G .44 -(tring; the type of the object, and the descrip-)-2.94 F 3.915(tion. T) -72 164.4 R 1.415(ypes are)-.8 F F0(M)3.915 E F1 1.415(for macro or b) -3.915 F 1.415(uiltin command \(in)-.2 F -.2(vo)-.4 G -.1(ke).2 G 3.915 -(dw).1 G(ith)-3.915 E F0(.)3.915 E F1(or)6.415 E F03.915 E F1 1.415 -(in the \214rst input column\),)3.915 F F0(S)3.915 E F1 1.415 -(for a string)3.915 F(\(in)72 176.4 Q -.2(vo)-.4 G -.1(ke).2 G 2.93(dw) -.1 G(ith)-2.93 E F0(\\*)2.93 E F1(or)2.93 E F0(\\*\()2.93 E F1(\),)A F0 -(R)2.93 E F1 .43(for a number re)2.93 F .43(gister \(in)-.15 F -.2(vo) --.4 G -.1(ke).2 G 2.93(dw).1 G(ith)-2.93 E F0(\\n)2.93 E F1(or)2.93 E F0 -(\\n\()2.93 E F1 .43(\), and)B F0(F)2.93 E F1 .43(for a)2.93 F F2(tr) -2.93 E(of)-.45 E(f)-.18 E F1 -.2(bu)2.93 G .43(iltin function \(in).2 F --.2(vo)-.4 G -.1(ke).2 G(d).1 E -(by preceding it with a single backslash\).)72 188.4 Q .278(Lines mark) -97 204.6 R .278(ed with \247 are)-.1 F F2(tr)2.778 E(of)-.45 E(f)-.18 E -F1 .278(internal codes.)2.778 F .278(Lines mark)5.278 F .278 -(ed with \207 or \210 may be de\214ned by the user to get spe-)-.1 F -1.082(cial functions; \210 indicates that these are de\214ned by def)72 -216.6 R 1.082(ault and changing them may ha)-.1 F 1.381 -.15(ve u)-.2 H -(ne).15 E 1.081(xpected side ef)-.15 F(fects.)-.25 E(Lines mark)72 228.6 -Q(ed with \260 are speci\214c to)-.1 E F2(ditr)2.5 E(of)-.45 E(f)-.18 E -F1(\(de)2.5 E(vice-independent)-.25 E F2(tr)2.5 E(of)-.45 E(f)-.18 E F1 -(\).)A -.35(NA)112 244.8 S 7.56(ME TYPE).35 F(DESCRIPTION)5 E 5 -(\\\(space\) F\247)112 256.8 R(unpaddable space)19.44 E 29.79(\\" F\247) -112 268.8 R(comment \(to end of line\))19.44 E 23.87(\\*# S)112 280.8 R -(optional delayed te)24.44 E(xt tag string)-.15 E(\\$)112 292.8 Q F2(N)A -F1 16.94(F\247 interpolate)24.7 F(ar)2.5 E(gument)-.18 E F2(N)2.5 E F1 -15.54(\\n\($0 R)112 304.8 R(section depth)23.33 E 24.15(.$0 M\207)112 -316.8 R(in)16.11 E -.2(vo)-.4 G -.1(ke).2 G 2.5(da).1 G -(fter section title printed)-2.5 E 15.54(\\n\($1 R)112 328.8 R -(\214rst section number)23.33 E 24.15(.$1 M\207)112 340.8 R(in)16.11 E --.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G(efore printing depth 1 section)-2.5 -E 15.54(\\n\($2 R)112 352.8 R(second section number)23.33 E 24.15 -(.$2 M\207)112 364.8 R(in)16.11 E -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G -(efore printing depth 2 section)-2.5 E 15.54(\\n\($3 R)112 376.8 R -(third section number)23.33 E 24.15(.$3 M\207)112 388.8 R(in)16.11 E -.2 -(vo)-.4 G -.1(ke).2 G 2.5(db).1 G(efore printing depth 3 section)-2.5 E -15.54(\\n\($4 R)112 400.8 R(fourth section number)23.33 E 24.15 -(.$4 M\207)112 412.8 R(in)16.11 E -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G -(efore printing depth 4 section)-2.5 E 15.54(\\n\($5 R)112 424.8 R -(\214fth section number)23.33 E 24.15(.$5 M\207)112 436.8 R(in)16.11 E --.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G(efore printing depth 5 section)-2.5 -E 15.54(\\n\($6 R)112 448.8 R(sixth section number)23.33 E 24.15 -(.$6 M\207)112 460.8 R(in)16.11 E -.2(vo)-.4 G -.1(ke).2 G 2.5(db).1 G -(efore printing depth 6 section)-2.5 E 22.48(.$C M\207)112 472.8 R -(called at be)16.11 E(ginning of chapter)-.15 E 21.93(.$H M\207)112 -484.8 R(te)16.11 E(xt header)-.15 E 13.32(\\n\($V R\210)112 496.8 R -(relati)18.33 E .3 -.15(ve ve)-.25 H(rtical spacing in displays).15 E -16.1(\\n\($c R)112 508.8 R(current column number)23.33 E 24.71 -(.$c M\210)112 520.8 R(print chapter title)16.11 E 15.54(\\n\($d R)112 -532.8 R(delayed te)23.33 E(xt number)-.15 E 17.21(\\n\($f R)112 544.8 R -(footnote number)23.33 E 25.82(.$f M\210)112 556.8 R(print footer)16.11 -E 24.15(.$h M\210)112 568.8 R(print header)16.11 E 17.76(\\n\($i R)112 -580.8 R(paragraph base indent)23.33 E 17.76(\\n\($l R)112 592.8 R -(column width)23.33 E 12.76(\\n\($m R)112 604.8 R -(number of columns in ef)23.33 E(fect)-.25 E 15.54(\\*\($n S)112 616.8 R -(section name)24.44 E 15.54(\\n\($p R)112 628.8 R -(numbered paragraph number)23.33 E 24.15(.$p M\210)112 640.8 R -(print section heading \(internal macro\))16.11 E 16.65(\\n\($s R)112 -652.8 R(column indent)23.33 E 25.26(.$s M\210)112 664.8 R -(footnote separator \(from te)16.11 E(xt\))-.15 E 15.54(\\n\($v R\210) -112 676.8 R(relati)18.33 E .3 -.15(ve ve)-.25 H(rtical spacing in te).15 -E(xt)-.15 E 20.54(\\n% R\247)112 688.8 R(current page number)18.33 E -26.09(\\& F\247)112 700.8 R(zero width character)19.44 E 2.5(,u)-.4 G -(seful for hiding controls)-2.5 E(\\\()112 712.8 Q F2(xx)A F1 16.94 -(F\247 interpolate)24.16 F(special character)2.5 E F2(xx)2.5 E F1 25.82 -(.\(b M)112 724.8 R(be)21.11 E(gin block)-.15 E 0 Cg EP -%%Page: 10 10 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(\255ME REFERENCE MANU)72 60 Q 322.63(AL 10)-.6 F -/F1 10/Times-Roman@0 SF -.35(NA)112 96 S 7.56(ME TYPE).35 F(DESCRIPTION) -5 E 26.38(.\(c M)112 108 R(be)21.11 E(gin centered block)-.15 E 25.82 -(.\(d M)112 120 R(be)21.11 E(gin delayed te)-.15 E(xt)-.15 E 27.49 -(.\(f M)112 132 R(be)21.11 E(gin footnote)-.15 E 28.04(.\(l M)112 144 R -(be)21.11 E(gin list)-.15 E 25.82(.\(q M)112 156 R(be)21.11 E(gin quote) --.15 E 25.82(.\(x M)112 168 R(be)21.11 E(gin inde)-.15 E 2.5(xe)-.15 G -(ntry)-2.5 E 26.38(.\(z M)112 180 R(be)21.11 E(gin \215oating k)-.15 E -(eep)-.1 E 25.82(.\)b M)112 192 R(end block)21.11 E 26.38(.\)c M)112 204 -R(end centered block)21.11 E 25.82(.\)d M)112 216 R(end delayed te)21.11 -E(xt)-.15 E 27.49(.\)f M)112 228 R(end footnote)21.11 E 28.04(.\)l M)112 -240 R(end list)21.11 E 25.82(.\)q M)112 252 R(end quote)21.11 E 25.82 -(.\)x M)112 264 R(end inde)21.11 E 2.5(xe)-.15 G(ntry)-2.5 E 26.38 -(.\)z M)112 276 R(end \215oating k)21.11 E(eep)-.1 E(\\*)112 288 Q/F2 10 -/Times-Italic@0 SF(x)A F1 16.94(F\247 interpolate)26.93 F(string)2.5 E -F2(x)2.5 E F1(\\*\()112 300 Q F2(xx)A F1 16.94(F\247 interpolate)19.16 F -(string)2.5 E F2(xx)2.5 E F1 23.87(\\** S)112 312 R -(optional footnote tag string)24.44 E 22.87(.++ M)112 324 R -(set paper section type)21.11 E 24.07(.+c M)112 336 R(be)21.11 E -(gin chapter)-.15 E 26.37(\\*, S)112 348 R(cedilla)24.44 E 28.23 -<5cad2046a7>112 360 R(minus sign)19.44 E 23.23(\\*\255 S)112 372 R -(3/4 em dash)24.44 E 28.87(\\0 F\247)112 384 R -(unpaddable digit-width space)19.44 E 24.71(.1c M)112 396 R(re)21.11 E --.15(ve)-.25 G(rt to single column output).15 E 24.71(.2c M)112 408 R -(be)21.11 E(gin tw)-.15 E 2.5(oc)-.1 G(olumn output)-2.5 E 26.09(\\*: S) -112 420 R(umlaut)24.44 E 23.23(\\*< S)112 432 R(be)24.44 E -(gin subscript)-.15 E 23.23(\\*> S)112 444 R(end subscript)24.44 E 20.82 -(.EN M)112 456 R(end equation)21.11 E 20.82(.EQ M)112 468 R(be)21.11 E -(gin equation)-.15 E<5c4cb4>112 480 Q F2(d)A F1 18.6C 19.44 --18.6 G(ertical line dra)-19.59 E(wing function for distance)-.15 E F2 -(d)2.5 E F1 20.82(.GE M\260)112 492 R(end)17.11 E F2(gr)2.5 E(emlin)-.37 -E F1(picture)2.5 E 21.37(.GF M\260)112 504 R(end)17.11 E F2(gr)2.5 E -(emlin)-.37 E F1(picture \(with \215yback\))2.5 E 21.37(.GS M\260)112 -516 R(start)17.11 E F2(gr)2.5 E(emlin)-.37 E F1(picture)2.5 E 24.71 -(.IE M\260)112 528 R(end)17.11 E F2(ideal)2.5 E F1(picture)2.5 E 25.26 -(.IF M\260)112 540 R(end)17.11 E F2(ideal)2.5 E F1 -(picture \(with \215yback\))2.5 E 25.26(.IS M\260)112 552 R(start)17.11 -E F2(ideal)2.5 E F1(picture)2.5 E 22.48(.PE M\260)112 564 R(end)17.11 E -F2(pic)2.5 E F1(picture)2.5 E 23.03(.PF M\260)112 576 R(end)17.11 E F2 -(pic)2.5 E F1(picture \(with \215yback\))2.5 E 23.03(.PS M\260)112 588 R -(start)17.11 E F2(pic)2.5 E F1(picture)2.5 E 21.93(.TE M)112 600 R -(end table)21.11 E 20.82(.TH M)112 612 R(end header of table)21.11 E -22.48(.TS M)112 624 R(be)21.11 E(gin table)-.15 E 24.07(\\*{ S)112 636 R -(be)24.44 E(gin superscript)-.15 E 18.04(\\n\(.$ R\247)112 648 R -(number of ar)18.33 E(guments to macro)-.18 E 20.26(\\n\(.i R\247)112 -660 R(current indent)18.33 E 20.26(\\n\(.l R\247)112 672 R -(current line length)18.33 E 19.15(\\n\(.s R\247)112 684 R -(current point size)18.33 E 22.21(\\*\(\264 S)112 696 R(acute accent) -24.44 E 22.21(\\*\(\222 S)112 708 R(gra)24.44 E .3 -.15(ve a)-.2 H -(ccent).15 E 27.21<5c28b42046a7>112 720 R(acute accent)19.44 E 0 Cg EP -%%Page: 11 11 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(\255ME REFERENCE MANU)72 60 Q 322.63(AL 11)-.6 F -/F1 10/Times-Roman@0 SF -.35(NA)112 96 S 7.56(ME TYPE).35 F(DESCRIPTION) -5 E 27.21<5c28922046a7>112 108 R(gra)19.44 E .3 -.15(ve a)-.2 H(ccent) -.15 E 24.07(\\*} S)112 120 R(end superscript)24.44 E 30.54(\\^ F\247)112 -132 R(1/12 em narro)19.44 E 2.5(ws)-.25 G(pace)-2.5 E 25.54(\\*^ S)112 -144 R(caret)24.44 E 24.71(.ad M\247)112 156 R(set te)16.11 E -(xt adjustment)-.15 E 26.38(.af M\247)112 168 R(assign format to re) -16.11 E(gister)-.15 E 21.93(.am M\247)112 180 R(append to macro)16.11 E -26.38(.ar M)112 192 R(set page numbers in Arabic)21.11 E 25.82 -(.as M\247)112 204 R(append to string)16.11 E 29.15(.b M)112 216 R -(bold font)21.11 E 24.71(.ba M)112 228 R(set base indent)21.11 E 24.71 -(.bc M)112 240 R(be)21.11 E(gin ne)-.15 E 2.5(wc)-.25 G(olumn)-2.5 E -26.37(.bi M)112 252 R(bold italic)21.11 E 17.76(\\n\(bi R)112 264 R -(display \(block\) indent)23.33 E 26.37(.bl M)112 276 R(blank lines \(e) -21.11 E -.15(ve)-.25 G 2.5(na).15 G 2.5(tt)-2.5 G(op of page\))-2.5 E -12.76(\\n\(bm R)112 288 R(bottom title mar)23.33 E(gin)-.18 E 24.15 -(.bp M\247)112 300 R(be)16.11 E(gin page)-.15 E 25.82(.br M\247)112 312 -R(break \(start ne)16.11 E 2.5(wl)-.25 G(ine\))-2.5 E 16.65(\\n\(bs R) -112 324 R(display \(block\) pre/post spacing)23.33 E 17.76(\\n\(bt R)112 -336 R(block k)23.33 E(eep threshold)-.1 E 24.15(.bx M)112 348 R(box) -21.11 E(ed)-.15 E 29.43(\\c F\247)112 360 R(continue input)19.44 E 25.27 -(.ce M\247)112 372 R(center lines)16.11 E 16.1(\\n\(ch R)112 384 R -(current chapter number)23.33 E 24.71(.de M\247)112 396 R -(de\214ne macro)16.11 E 17.21(\\n\(df R)112 408 R(display font)23.33 E -25.26(.ds M\247)112 420 R(de\214ne string)16.11 E 13.32(\\n\(dw R\247) -112 432 R(current day of week)18.33 E 13.32(\\*\(dw S)112 444 R -(current day of week)24.44 E 15.54(\\n\(dy R\247)112 456 R(day of month) -18.33 E 29.43(\\e F\247)112 468 R(printable v)19.44 E(ersion of \\)-.15 -E 26.38(.ef M)112 480 R(set footer \(e)21.11 E -.15(ve)-.25 G 2.5(nn).15 -G(umbered pages only\))-2.5 E 24.71(.eh M)112 492 R(set header \(e)21.11 -E -.15(ve)-.25 G 2.5(nn).15 G(umbered pages only\))-2.5 E 26.93 -(.el M\247)112 504 R(else part of conditional)16.11 E 24.71(.ep M)112 -516 R(end page)21.11 E 17.21(\\n\(es R)112 528 R -(equation pre/post space)23.33 E(\\f)112 540 Q/F2 10/Times-Italic@0 SF -(f)A F1 16.94(F\247 inline)30.26 F(font change to font)2.5 E F2(f)2.5 E -F1(\\f\()112 552 Q F2 -.18(ff)C F1 16.94(F\247 inline)24.51 F -(font change to font)2.5 E F2 -.18(ff)2.5 G F1 26.38(.fc M\247)112 564 R -(set \214eld characters)16.11 E(\\n\(f)112 576 Q -22.43 21.63(fR f)-.25 -H(ootnote font)-21.63 E 28.59<2e8c204da7>112 588 R(\214ll output lines) -16.11 E 19.98(\\n\(\214 R)112 600 R -(footnote indent \(\214rst line only\))23.33 E 14.43(\\n\(fm R)112 612 R -(footer mar)23.33 E(gin)-.18 E 25.82(.fo M)112 624 R(set footer)21.11 E -17.21(\\n\(fp R)112 636 R(footnote pointsize)23.33 E 18.32(\\n\(fs R)112 -648 R(footnote prespace)23.33 E 17.21(\\n\(fu R)112 660 R -(footnote undent \(from right mar)23.33 E(gin\))-.18 E<5c68b4>112 672 Q -F2(d)A F1 19.71C 19.44-19.71 G -(ocal horizontal motion for distance)-19.44 E F2(d)2.5 E F1 24.71 -(.hc M\247)112 684 R(set h)16.11 E(yphenation character)-.05 E 24.71 -(.he M)112 696 R(set header)21.11 E 26.37(.hl M)112 708 R(dra)21.11 E -2.5(wh)-.15 G(orizontal line)-2.5 E 12.76(\\n\(hm R)112 720 R -(header mar)23.33 E(gin)-.18 E 0 Cg EP -%%Page: 12 12 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(\255ME REFERENCE MANU)72 60 Q 322.63(AL 12)-.6 F -/F1 10/Times-Roman@0 SF -.35(NA)112 96 S 7.56(ME TYPE).35 F(DESCRIPTION) -5 E 24.15(.hx M)112 108 R(suppress headers and footers on ne)21.11 E -(xt page)-.15 E(.h)112 120 Q 26.7(yM)-.05 G 16.11-26.7 G(et h) --16.11 E(yphenation mode)-.05 E 31.37(.i M)112 132 R(italic font)21.11 E -26.93(.ie M\247)112 144 R(conditional with else)16.11 E 28.04(.if M\247) -112 156 R(conditional)16.11 E 19.98(\\n\(ii R)112 168 R -(indented paragraph indent)23.33 E 26.37(.in M\247)112 180 R -(indent \(transient, use .ba for perv)16.11 E(asi)-.25 E -.15(ve)-.25 G -(\)).15 E 26.37(.ip M)112 192 R(be)21.11 E(gin indented paragraph)-.15 E -26.37(.ix M)112 204 R(indent, no break)21.11 E<5c6cb4>112 216 Q/F2 10 -/Times-Italic@0 SF(d)A F1 21.93C 19.44-21.93 G -(orizontal line dra)-19.44 E(wing function for distance)-.15 E F2(d)2.5 -E F1 26.93(.lc M\247)112 228 R(set leader repetition character)16.11 E -28.59(.ll M)112 240 R(set line length)21.11 E 26.37(.lp M)112 252 R(be) -21.11 E(gin left justi\214ed paragraph)-.15 E 17.76(\\*\(lq S)112 264 R -(left quote marks)24.44 E 27.48(.ls M\247)112 276 R -(set multi-line spacing)16.11 E 21.37(.m1 M)112 288 R -(set space from top of page to header)21.11 E 21.37(.m2 M)112 300 R -(set space from header to te)21.11 E(xt)-.15 E 21.37(.m3 M)112 312 R -(set space from te)21.11 E(xt to footer)-.15 E 21.37(.m4 M)112 324 R -(set space from footer to bottom of page)21.11 E 21.93(.mc M\247)112 336 -R(insert mar)16.11 E(gin character)-.18 E 21.37(.mk M\247)112 348 R -(mark v)16.11 E(ertical position)-.15 E 12.76(\\n\(mo R\247)112 360 R -(month of year)18.33 E 12.76(\\*\(mo S)112 372 R(current month)24.44 E -(\\n)112 384 Q F2(x)A F1 16.94(F\247 interpolate)26.93 F(number re)2.5 E -(gister)-.15 E F2(x)2.5 E F1(\\n\()112 396 Q F2(xx)A F1 16.94 -(F\247 interpolate)19.16 F(number re)2.5 E(gister)-.15 E F2(xx)2.5 E F1 -24.15(.n1 M)112 408 R(number lines in mar)21.11 E(gin)-.18 E 24.15 -(.n2 M)112 420 R(number lines in mar)21.11 E(gin)-.18 E 24.71(.na M\247) -112 432 R(turn of)16.11 E 2.5(ft)-.25 G -.15(ex)-2.5 G 2.5(ta).15 G -(djustment)-2.5 E 24.71(.ne M\247)112 444 R(need v)16.11 E -(ertical space)-.15 E 25.82(.nf M\247)112 456 R(don')16.11 E 2.5<748c> --.18 G(ll output lines)-2.5 E 24.15(.nh M\247)112 468 R(turn of)16.11 E -2.5(fh)-.25 G(yphenation)-2.55 E 24.15(.np M)112 480 R(be)21.11 E -(gin numbered paragraph)-.15 E 25.82(.nr M\247)112 492 R(set number re) -16.11 E(gister)-.15 E 25.26(.ns M\247)112 504 R(no space mode)16.11 E -23.87(\\*o S)112 516 R(circle \(e.g., for Norse A)24.44 E-5.61 -2 M -(\))1.61 2 M 25.82(.of M)112 528 R -(set footer \(odd numbered pages only\))21.11 E 24.15(.oh M)112 540 R -(set header \(odd numbered pages only\))21.11 E 24.71(.pa M)112 552 R -(be)21.11 E(gin page)-.15 E 24.15(.pd M)112 564 R(print delayed te)21.11 -E(xt)-.15 E 17.21(\\n\(pf R)112 576 R(paragraph font)23.33 E 17.76 -(\\n\(pi R)112 588 R(paragraph indent)23.33 E 26.37(.pl M\247)112 600 R -(set page length)16.11 E 24.15(.pn M\247)112 612 R(set ne)16.11 E -(xt page number)-.15 E 24.15(.po M\247)112 624 R(page of)16.11 E(fset) --.25 E 15.54(\\n\(po R)112 636 R(simulated page of)23.33 E(fset)-.25 E -24.15(.pp M)112 648 R(be)21.11 E(gin paragraph)-.15 E 15.54(\\n\(pp R) -112 660 R(paragraph pointsize)23.33 E 16.65(\\n\(ps R)112 672 R -(paragraph prespace)23.33 E 29.15(.q M)112 684 R(quoted)21.11 E 16.1 -(\\*\(qa S)112 696 R(for all)24.44 E 16.1(\\*\(qe S)112 708 R(there e) -24.44 E(xists)-.15 E 17.76(\\n\(qi R)112 720 R -(quote indent \(also shortens line\))23.33 E 0 Cg EP -%%Page: 13 13 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(\255ME REFERENCE MANU)72 60 Q 322.63(AL 13)-.6 F -/F1 10/Times-Roman@0 SF -.35(NA)112 96 S 7.56(ME TYPE).35 F(DESCRIPTION) -5 E 15.54(\\n\(qp R)112 108 R(quote pointsize)23.33 E 16.65(\\n\(qs R) -112 120 R(quote pre/post space)23.33 E 30.82(.r M)112 132 R(roman font) -21.11 E 25.82(.rb M)112 144 R(real bold font)21.11 E 26.38(.re M)112 156 -R(reset tabs)21.11 E 23.04(.rm M\247)112 168 R(remo)16.11 E .3 -.15 -(ve m)-.15 H(acro or string).15 E 25.82(.rn M\247)112 180 R -(rename macro or string)16.11 E 25.82(.ro M)112 192 R -(set page numbers in roman)21.11 E 17.21(\\*\(rq S)112 204 R -(right quote marks)24.44 E 27.49(.rr M\247)112 216 R(remo)16.11 E .3 --.15(ve r)-.15 H -.15(eg).15 G(ister).15 E 26.93(.rs M\247)112 228 R -(restore spacing)16.11 E 28.04(.rt M\247)112 240 R(return to v)16.11 E -(ertical position)-.15 E(\\s)112 252 Q/F2 10/Times-Italic@0 SF(S)A F1 -16.94(F\247 inline)27.48 F(size change to size)2.5 E F2(S)2.5 E F1 18.32 -(\\n\(sf R)112 264 R(section title font)23.33 E 25.26(.sh M)112 276 R -(be)21.11 E(gin numbered section)-.15 E 18.87(\\n\(si R)112 288 R -(relati)23.33 E .3 -.15(ve b)-.25 H(ase indent per section depth).15 E -25.26(.sk M)112 300 R(skip ne)21.11 E(xt page)-.15 E 22.48(.sm M)112 312 -R(set ar)21.11 E(gument in a smaller pointsize)-.18 E 25.26(.so M\247) -112 324 R(source input \214le)16.11 E 16.65(\\n\(so R)112 336 R -(additional section title of)23.33 E(fset)-.25 E 25.26(.sp M\247)112 348 -R -.15(ve)16.11 G(rtical space).15 E 16.65(\\n\(sp R)112 360 R -(section title pointsize)23.33 E 17.76(\\n\(ss R)112 372 R -(section prespace)23.33 E 25.26(.sx M)112 384 R(change section depth) -21.11 E 25.82(.sz M)112 396 R(set pointsize and v)21.11 E -(ertical spacing)-.15 E 26.93(.ta M\247)112 408 R(set tab stops)16.11 E -26.93(.tc M\247)112 420 R(set tab repetition character)16.11 E 17.76 -(\\*\(td S)112 432 R(today')24.44 E 2.5(sd)-.55 G(ate)-2.5 E 19.43 -(\\n\(tf R)112 444 R(title font)23.33 E 28.59(.ti M\247)112 456 R -(temporary indent \(ne)16.11 E(xt line only\))-.15 E 28.59(.tl M\247)112 -468 R(three part title)16.11 E 14.98(\\n\(tm R)112 480 R(top title mar) -23.33 E(gin)-.18 E 26.37(.tp M)112 492 R(be)21.11 E(gin title page)-.15 -E 17.76(\\n\(tp R)112 504 R(title pointsize)23.33 E 28.04(.tr M\247)112 -516 R(translate)16.11 E 29.15(.u M)112 528 R(underlined)21.11 E 24.15 -(.uh M)112 540 R(unnumbered section)21.11 E 26.37(.ul M\247)112 552 R -(underline ne)16.11 E(xt line)-.15 E<5c76b4>112 564 Q F2(d)A F1 19.71 -C 19.44-19.71 G(ocal v)-19.44 E(ertical motion for distance) --.15 E F2(d)2.5 E F1 23.87(\\*v S)112 576 R(in)24.44 E -.15(ve)-.4 G -(rted `v' for czeck `).15 E(`e)-.74 E/F3 6/Times-Roman@0 SF(v)-3.996 -6 -M F1 -.74('').996 6 O<5c77b4>112 588 Q F2(S)A F1 17.49C 19.44 --17.49 G(eturn width of string)-19.44 E F2(S)2.5 E F1 26.37(.xl M) -112 600 R(set line length \(local\))21.11 E 24.15(.xp M)112 612 R -(print inde)21.11 E(x)-.15 E 16.65(\\n\(xs R)112 624 R(inde)23.33 E 2.5 -(xe)-.15 G(ntry prespace)-2.5 E 15.54(\\n\(xu R)112 636 R(inde)23.33 E -2.5(xu)-.15 G(ndent \(from right mar)-2.5 E(gin\))-.18 E 15.54 -(\\n\(y2 R)112 648 R(year \(last tw)23.33 E 2.5(od)-.1 G(igits only\)) --2.5 E 15.54(\\n\(y4 R)112 660 R(year \(all digits\))23.33 E 17.21 -(\\n\(yr R\247)112 672 R(year minus 1900)18.33 E 17.21(\\n\(zs R)112 684 -R(\215oating k)23.33 E(eep pre/post space)-.1 E 29.07(\\{ F\247)112 696 -R(be)19.44 E(gin conditional group)-.15 E 31.87(\\| F\247)112 708 R -(1/6 em narro)19.44 E 2.5(ws)-.25 G(pace)-2.5 E 29.07(\\} F\247)112 720 -R(end conditional group)19.44 E 0 Cg EP -%%Page: 14 14 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Bold@0 SF(\255ME REFERENCE MANU)72 60 Q 322.63(AL 14)-.6 F -/F1 10/Times-Roman@0 SF -.35(NA)112 96 S 7.56(ME TYPE).35 F(DESCRIPTION) -5 E 25.54(\\*~ S)112 108 R(tilde)24.44 E 11.65(\\n\(_M R)112 120 R -(section type \(as set with .++ macro\))23.33 E 0 Cg EP -%%Trailer -end -%%EOF diff --git a/gen/usr/share/doc/groff/1.19.2/pdf/pdfmark.pdf b/gen/usr/share/doc/groff/1.19.2/pdf/pdfmark.pdf deleted file mode 100644 index dd1c6c7b9473a8e588f7cc802207adec69684c11..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 161012 zcma&NQ*@@^vOOHzwr$(C^~SdCj%{~rJ007$^TuY!?xg>F@9&)RUHoqL)mo#j>Zuyz znKkFEMX4eo#mLIU2}e18omdRVNy0+nWNHg1Ai%6(;b`SsUnR6;^zb-rF^B03>sN zt#q8lIJ?LkEG@lK6Rw`jXi<9S*Jd+=vHn>_^+x+08hi8_9O|lKdh30=A0@0fcy!^u z7O0zUM)#3t``&=hx}yo3UQn#0hzlm?GvABF4mhnGB-8CN3;MBjs6H-IbaF70FTLsO zQT!XJk}9l25fB~n(q@gI9RP?(PAK*Y+olP4EK{`wWjogxfLP1^-A`1SH@*Ue z1@qKrtzk&#A?OL*`SLx`K2(#^|FR7nQ;yvef;ukJ?>IKO_ZXbXDSby3PUfcPLAeyJ z{f+%>g@fuSVlXO0LJ1IL%(dte0DQIRuubW|$s-USgs{{Lx1=#)%F#7HK?3Tq=jfKK z3B9L;JM`32p~LS#jlI2j}EdM_xSq?TGldV(&;MlD<=}+S-Rm6BQ1r!O||ADRL6}Ol$058D)1yj%xj9k4_|ncUnE@Y};Jy@ImBbZnL*51q zW-_fsZ*7QFa!<*}qb{&bDq5oK8bvyMC~pPdW@9j*KG!omuM?uTyz+CPGJXu8Ck;B!#EXe z>B2|U1a2V$J&_n*vT(3*z!HNYc8R$_P*@Qs>>Sj3^MKy zrM8dj0=R5D!&|9qBr!X9248uNGafT3^7VapH=c+dSnxK{P>5lu8t7o#!(=6zN`npZ zi7~&AF^;jxQt4xwqWkEPogNQn5>?(b#4tDn1?a3&Fy|LfO(fqGk0Eq0=2}5|OSKJRoD3udv1VIocuArBR- zt`reM>lZ;UIG|O$HpJ5w!COq`pZJ~VaL%IDTL(z6xARtgxa456SY&@6D7m&IyB^mdr@wrwP{6?dPF`St?MG*-qY5A{`BLR zYMP``Kl!ySlJi6TxPUvlX(Fzk6w@Hej|1ishr^&5^GAs9Zd^zQvT77-0YMU)k-Y4B z@h4NG`N>{hRg?;{6Q8sMa<T59*&dEf8+umo4~=3J+&`v99ZyW z?IKy52Hj^)H&`gG7i`$itj)&3*e!QPkvwF%Aw&x zS6^C*%~Tnr>N}1+%dyW}ZmNGIt$GcJ(z7YxyAu#$@amTk+2fGn_5<4D^;BA1a}Q=~mR zAQ4KihO=jL41oMsQ&7DPtw0mJ9cEDO4B=*?qbdK#I)}WV<-y$nLk#2Ia8bECK>nV1 zlrJzDWejI?aP+TnD7)Q#;`kp%LpiZmmid%qSu<-$;;n(_6xZ&_+3NW;V|iJR^#tu3 zGZD&Pa1Z^Iz){!L!zN&hih)XJ`FyAfH}?Wr1CT z1w@o4FL%0(*t|Z;aK@rAX-;#(0wzNvNNutcPKi_m5{o1_iGwMMNF34(TwTx&TpZF3 z9X&irp9yhiM!{eD*-ey2<`EfyIG9uEnqio<;!O|UdTm#b_iDgSRowO*K+uLx=&VB4Xc7=$8mP_h458a(8*oSm8~G_SJVeZ~q5zXHxFk zAa7!pObEp3K;yyRpB278S=6UO;UC|Yy92YT@n@cTiMYKLjnY_@801>p8i^Yd=IMQ% zlS>(r zL_a(Vi_G3d5GwNiwMznm3Cep z*;s*Hqd1SExkVDShFwU1T@3T66(nRQhg?#CNy9@6oq0)Gd2+8iyx5TVHat8@RFf<8 z&j8xup*jxVqnEi73i%nRZja?!?Wq7yaIyq7OQR(o=XgLRM!)2M~C}GEGgpqAlsM@5zJ$YN6eakdg{gv)j-WU{ou z4cy>nvhGoc_ww+<(MB_zdm9;h8t=j#-}g2Q@%GjV z`!eZ98Y|yK^&`Wp@vPB#UL2upf{#c+H_XDlA@Z*FcP#O_Mh1s@+fed~tz-bCotomN zHF6@}bJWz9yCnn}Gr)fKO4G59MwRhQzG>be#F=>Hw?M`@baVnlTaD?M8Hn(%=GYD; z0Tg2k`r&_AQWQVqfBj+&3Jx&v0QsEV=n>wpU^!DXo7s~I>D)JtYNn}WJjvot98@1r zLX#|+2jPd-o-2HF0{Mh5c@k#{r6O?!y3eX8#&184*Kf&1{hXC%2O0(q|19)Y_aP?l z%OE8yM)=Htol}+`o*PAe(Zd64=-QNKw+c(V{gc>X65x#8tGLL591MzN6Dbt~j!C{d zjMs!Mv?lX(WjRvrl3 zJVeeY*ZZ{Aw$q9}(_)-uz`pZ*g*nND32lB*gquuA-x!LF^~XDrTCL0@pz#V?408yo zp9SrDkHcW$cQueog)L(3P76BbK_9q?7geQn)JXY$KAlYwdx)<22&pNbD$9&xxaznXk{nT3gwpz?&hM8RYVr(4Bhzq5Uw;AJK}TjLwQ0| zjxOm`t}JC-14>px<8&J(XF{HHN<0<>q{1_D2QiJ)zT2ky0>le95FZGv|ANUNceLYs ztJ5kC`U9y6zbWx<2a;juN}Ov@N1Lv}mwX=0Sf8Rp%?ytm8?5Qo?RtIerZO`!;$q}`z|skAKkty1l6>Ft-# zxJnc!+aGlcC9LRU0DZI;k>j2^J&pZBCA$jS-P^# zGcA+?=W!`cI0#B>#AOsIAHkuDcP2*7PL6Zwi5%w87^E5>_r?1*Ra)7tK{BXdea@H2 z@ocazwjzJL{U+eAT_v-67^iDdo<#i{TZ(G8gJkx;xe+q=XM+1Y=tnOhVYi<`sj5Vv zf717~B*o!Kd~wja_j7dncwyd{Ww)xDfjJ9RlIb#w93y`1#zGXKDQmf83lh?bgDxL2 zgZ$9qoqpv*7W8{B;uD?y!t*lPW=)bgso1 zRa}+zn+htUI5-Vu-vx4B>m68XwG=(+YsbxD7;*b-^XAB)v!tVYnUYhoZU9zOM;4Ie zF&2p6(`?LeooMI+Psa)$X<$Y^RaJiNRbAzyJ?kg+HUfq1uBo3ZhKL#6T8E#JtEY;V zGP+~XvI7l+MNv0C0sXy4&8)SHH!>1EtlC$-1Dk-m{?bx&tfXSn%|z!|09RI zV^q?SR&ONMq%3o-lxx4lu$3FmSF3<@!Ia6K^bFJF0W;K&IFe2AqVMezzL|!_A2ihUkbRXNyqaTL@MEqw~@?Z>QhU%06lopCu1Pt zN9&KiYtfH#d_JD4@zGGTT7(eun|mY(gsWH_1qIuPvCXH~>Po$-_Tc~BzFMN`B72C6 zgFUkrsou|R4wy%$O~3m|iLS}3j+~Xpg%hzT-$Wy-<7lv|P=o%kpmW%4o56@=y|jej zx&0Y#et|MF+bLDCGS_x*hn*GyY_khd#U02^e?o%hke@moY;)jp3@-RyczwkfJF;4^ zT$c#UGMG7<@yNCiZ~Zkh^fTtUmEnZIlET7Yg9TnllvW%2%C=hQbCzYnL9^y%eQJD7 zA&Khl^l`&9iZr>Uq7m}P(iYYRoVHex>8K9bR&TAEMQSYH#5oHEA{8B5y0DDvbdxd2>bO*jouoq5gOk#6G(HSf1k8}H#;0o|bClz55y*#0E@O}lnqz->p;flUC-tnl?GUfzP&JP3IkX{1ht5?~d|15~CdKmxaanl1?ugSN3 zgX<}EIo334>9SkHRMt7J2JGMnR&~eBaP`d!P((B#HviaTFsZAA?kZ{Y|mg7 zRkRHqJ$mCO8fUHQ5-kV8H^*fMLI#z&|77?8TR=!z z-)6#gs}`Gb&ZUpTeNx!<{bPDvgirwxe5xS1fiTM=B3C=vncPs~dPoJ&p}k zoxjO3t4()0H34;S%pc}!dCgaA1fvPU5YvuH-2-Of-uKU2ER(pM4l3}xAK5ZUW6~_c zj*`8v7Jtd5x~3EXg^6B*EqGcwo=8cvu^lY@bqTMrtsr3Gf{kE_3>E1)E{Mr~2HvHk zhXQ%{ZngTWvJg0#ZB`iAaL->3W+_C|WMTXh!DA>Rs&9m_A|%*7fw$O1coab`}z z`b7YPs<)0ZsdLF}vQUu-!%4GDxabrz;%3pdLz(_*H*5-}b%T+s2Lxlub&fGu__~PJ zwWd2nwv->*V##Go;q&HU4BBi@MwVebu~pAsh`6L&3Lc7`q%3hxN}Dk~h3Z_(j+}tj ziQ-&*c;Ol+s4RHdK%Ej5oN{R|xZ+XsQx1&gT9>ACq&FbFt*yiWnnlrm!OxTL)A%ZXAuHy3dE3=`BRtt6nck+iD z=)rSSe3EI?G28s~o!0L|dX7DNT@fOSq?}b;SMq6N4-g44ohuaA>bO4m!OA9aMr%e5 zB7y$qrKvidvfLP$+=r?gM3qr^OK+8mOP~4xt0^&F7)-i29uEhUv6B6Ca|b?V)C<=X z$Fh=RQ3GjOS7NkFtPGcmp1#1UufOOV(pwe}w3^c&p^hJoQqN&p+$sjd@&&|X)+WtkD5w3CV#?BuQ_gulm~ougRY z{J&>a)Tc*{xfF-u6@D>av|Tt^*k~<4ie-hyR_01h{|=;Z@DQ+C(VuxhnF@{j7Aq)8 zU@rf}c9$}D8!+LQTF#Z}-sB$3=Wv4i?9hU)N41sF9G494MnBE8R@(rg@cghR0X8BTk(Me#eOZN+x(-I9ls*OdpUJXU@f|-gHesOlcqQxj$ z)dL@GhRG5|kSLLj6B8Dm{O$gQhIy1NBV6q-hDO4VvhSkD04^(K=8|L9mgPw1yqy-B z^jFH(v$ME7<8>Q*{l?!pE=oZ^U%jeLIlpR~ug9g@S1Xm4UgrYPn1Z4FQU{3uR{=8^ zzl^|9GYCDFEwBU729sqCikNwg^Mi z0X4~@v!9*>d#voPKf6=dJ{p-PH>XRb;vJA~egX zjR^Z+3EbYI>Cb*r^n6*fK>S!IEl1l3*vFvv-+V+1sbwwe&=ANxGXE&We?IX)YBM*- z|5f7OX7ayd|No`{C+~k#i8|eXX}4pj0cYAXIgM2YFzg+f1?B*`v}VRlLtr}DGYA+7 zHYt`4xQ^PN@U#ceCFx^)H($pNXW7kYdCDqV)~t&Q-hdBx7UX+p8mdnU%w}^ zcK@Ci@Cil%)gxPqnoF|5uKoV9Zn9&@#ckv#MeHQi=+10J&jmQTk6HW99$<-+Q*!-~`` zhnw{7N1g>xc`W*U`@cRn$K24{W-Fk=9Y@;s@?o*5nr?P}wm1MfeIs^^2@-cW5GJi_ ze|I(!Eg^4O7(DZ5H1#-qR1;g@)Gz@vf5jrcN9?|sa?6Q5x4Eq^v2)f9^et%!pF3`7 z0-I`SW<2Xl?=AW*f4<0B&tUdlNuSPM)%SL(k z59&;HT@2F^gnSn`!a+5i`Dz`}M6P<676;8Yzc(6eba1+gsApbgB*dqyshqmSffnMt zkEBHVS#XF+ocNxU(?~i`3z{5SK2-CU+1ooU#n+GZT@3J^fVDcIIhxYh_he_u^P164 z{4z17z;?^eMbIjI=pk>a?sX&-M-+-RP~XRE6)Rq>knl!Z7XnnS%Zf>KYDRr<#uomy z_Hm~1_uZRn|M3q4zgqb0Zj)cS>!%ibW`o_f8-hU@C{;O9{dT=QJGU+6#y9Ei)C=84 z3T^kO-BJ3OhL&P&n?$~zeTyaJdm{78=-hlEWZ}OS+eDDP`*8&w{LL)!&CC-H!fk?m zZv9(WhWj>%BH&!UHe&0q`iy!ma|rb{JtkRzcf#7o003j!@7;wk*We?ui_;=Q>#3^QVBqbi}(EXDe>&)LK- z9({L2>iRlgBFQ1QkrG66>g%y*r!Z(}M)Dy_Qrm zlKCqW7iFAMYr~(soiHmx$J&T3=?B0=Huo#Zb8lj@GM}ot z*H@~4J$1A6(bNXF!3Bd)P8;!n^q()pl}aX~V#%1SxEh>8Dj9#;7cfpPi}Ddbl&nfG z;1jYMfewFe61_`qS}^vjd;?@33W1FtcLA5SxYY-plV089ln@s+{$keb`yN6Thr)G6 zeOq?PMWLVRR?*0OirR|$hQX2CgMZ1WmQZypa*~07N*UeFOf)Z>k*a!xFjuF;kc_MC z*+e8WPbhUejs9^y>|Vw}4B&i2jSF#ZDs03F0LwPk4`Rpri7kQ?TV{*L8;BPd*)YEH zjG8JmaE4}V0|Ekdk%_blZ$)QShiP5+%QuY9^a({FN~5|zbtDnp;**@#3{3PH6+^FH z#j#u#hliL=4#yl=&$%_Cj*3oMFN3)KyIH>5Ov8+csiJXaO;S`B zStbQAUG0@CV!$ciA5|6Si8yYkFY^?Jq}zKHU6CmU-5%aYD%dKC{Z`tP1w;Wl7_VqnOa&|{ zNDYPhd1LYAlz*i~JQkh2s~VXqj$YMYDM*`IB3HDiQ-E6**3;23fLr6eX|8LtrUj

nMA3#cAl4H?JC`jorbSSnG6-A zPvsWGO60=0NIun&hT#*VLlD#9#F&`ox*K;WbLzzTvl}(^Pm()!&#L=2%S`%%B07{I zP+(9}tQNNwRgJUg4oGUL3O*wisK0$P#g#bb2@FG}aJp`FpD{xY;$d?-dU3un>rj>gAFVBIAX zB*|98W?}{$A#S1?eyzXm2K68XArBYI^O7m4ABg>MZu=(1m9j#ruZqiyD%-PJFRU?d zBbuz*h|Tz$&}b}dTt#ondD*Q&TV6RvjW>}kni3n2AON7CHfBB8(cei{mE9wRRi=RK zP*MAoEDSz)lk8bn8bEjDpNL1IwWYOo8<*Q+;sAI`d1YV<*LdST?>AA~Dt`c8f=R;MN z$L8wT_QSa3OF%JIEx=;h9fURHT$<%i!ic*zU5JzE_gmYP%)qU-fPtvj*L*LCCF_Ex zp86Q$JLzz&2GCvps&-EAZ8h=QHsS(kwg9U&q7_Ew44m3qYe-n|wH+nAlNb!y=4fB< z>3!s%W7FnOE$Ph2==OdkfBjNWxDG>#w!x5N28o-tH~b-?FMBV2nF#S5DJ_}m^L+%4 zE+LSr;I(XwWwwn9tkenqNTfOzLz8AJhKu-ik5fk%p>B5C?fY{wTVr$<5wUNToOLvH zReP(9%_15n^JQA0NYSRBl^IMHphhL8?K4ROE|^T`jMAR%Eh8qZfm7$6hAKvZF!M+D z@T2d>VCPxAK+23sGo^~#o(sEF6-L!g&pZ`P&|@@fF|R(AM_+g=OTuHM$g0BQu`UCx z;!QeZips0|y7gcGT(&BiIa$u4QuwO;R}b0OLj6cII4n-gy6OCWa9;m)EK0v`H=|30 zP3Eag0526e(|jcjFD4jkdPdaKo?b`|N+E%0PZ^AjD!~+bUNw!93l^T>VGe$k$&!9h z$CJaYN!C(4j(YJ0)ym1LF_S0WrPO*1J8|u_gPu?GHH8#9g}omA&zI-x7#Lo`Y{S?I zSt8ze#^l}1`JoR7r4)1{?<%{{CɿH;i|zyaP$B$z1-uP!(Z810;|zH~&yJZ`AY zdl+2jwC-sr3$P`;l08Q!EM4}_gagZ`(v=+OpAtMf`b;rnL5KPjEjW~GPsB>B^CALI zh_E8L*NMZ)zp~WSQ1W&wKZQj&ULSY!k|eU?eMp#xthkYZPD-~a5maMR z5Nw`3&6bKPF-q*E7|x{I+9i(z`x=<+e3)B0&SECqsPUsxKU{kxJ(++e+|U_?5;j2C z)a{xjgeN(cC9Jd_7>suYHuff!Y!%ClMhQ?P+qvv!!55YGUy~}m@@N@MXSID_K(#&J z;MIt_FuaQEY@uqOd&fJG7qWF)`8-EK2jD@WKX`;iuQHgw0{ki&m^y)JQbKsg0yd~c zdqadMcW2B=CX{N-6QlSwXc>#pAZZ@=EEQ`)@zD$Baz& zDNSD{sm43m8i?Xie^(M^Oo$}f2>TPtf{Y_M$9e$$MK0X19p|Tl;Gu;k!)#^WrQ)~L zJ|O-Bvt&xiN_A)V^Ox^Sh2f<$O{Gp?(&LZq6YFw8k1}zCHtXi8vl`lG7D_k+8Q`yiBeWS9ggo99^dn%Yex^hU2cPjV;0NpYz-GSZR!64OrGgG{cwwY9~ zW;*uJoplu4*kUVzr^s?2^fMiPb52^er93q9qSh7z^i7jJ%>aDX z*kDZP1kgt>to|y#*Q?-Ud68jpAVqveLZp8z*s(~QGczgxE1LOc7XFYWP*$V61AZP{ zAB!1aUiyY;Q<_P9GcJH_vgWNzYcqz_&+)Hzsd2x`7%2X>;El4 z@%(dRi|4=E*c#OZrU3tkL=R%Xnprx>t5@mn9mYFMX2yS!oPffcW;Tk1fDM$rpr@z_ ziF`!)n<>pBVynp=t7*zun zW6cX3$p7d}2pQcU5*M5PlOQY__0CFw+T!r4rHNVfNQamh* z{*d}NnK}hB*?kD-=G|^S6V*@Ioq3rlC;$y&IiAob*Yqn9|Em40AX{3~k)J{rgh~6_ zM)o0@32hGzCI%^GfRZsrNRT7Hcy}FDq6D5KGBk8Y9e$YGR71>p)vcW}% zGOIsI21*mgdj8X^I)iN5*!T4L)Qqm@cjc~Xgxp1>rvOP8pbFe){JyE@_R%!fS{+)u z>I*ElYQ9X|s_^xy&{@~gxFkuQ`Buk^Ciaq(ipLY~RpDnshqn*ID9_Fr zFiV^pvrw&1HR5Bu*JcH`rcvf}D}so@z~X?OFoBcZKxziB=2yno$>iRKB5-@B%EzW* zkJ0g)CI9kr!zstJ6N~ipqpdWvZyxBFv)<}!#rJV`bmIiGNBI(Vu*X5|I;Gu!w$qjbKLwQ)I;k!JV#WAy;*)p!1=nrTk9AqiAq7f#< zY)^mOybPVKAGZ*>k#nqHyu6l2Eh92Z#KPhN?G7g+J!shGABj$~iCyB>T&#VpUD$aJ z{jKI8=!x)lO8yle&^Qf0NU2zgDP`E#uQ0)7^@LM!74IL3<1ABqd<%k@(&+dqvt8^m3)kUQ z{|SMi#Am}^>4hl~q3D7XvnL3NtgXl;CXxyN5bNUFK8&0x1EuNuW2YmpEY zx>UEW@_H_5!dbS`)nxz&Hn3+lw$EM|{C=IO>B!*0Rt(g!ck7@g1yfORQc-m@0Cv7D zq9P4DEb5Dorm}{La;Tu^DvEit=n#Cg1hNt@}WW&EmmUn0%syZRU(cdXVh5RT*!C`sxEXm7^-N$@DbXqvFvva5zDG^*#( zK(tt`FLFGMPZDI@RG=U)z$6Z~BT+R1dCF(u$%s)8)j}$iCFzl)>d4(?>V8E4z=&6b zI>WMH$#Z0C=?zf>#L)zre-L&vTGRri?KdwiBnNrcHYR^Xj&*`3JIdye?GvENX;MWG zV+0rbZDU*E%{$tucoDM~^LnC|{E7xEIy`%`#aMd#*P)$S@XjkE_wkfQfBMzn(aROp>6UfW_SSZ`= zNiB7uqOa~iR#1Vk`Quj^yRYJBi7(;WFJDKaa!+jWPk{EIk? zwo@7gdCNn*#XDnMp5$HGaq5oG_#M~Zt_97Q&sB{I&Umb#t5w132tTV1fDd(Qg^q$K zGf-9fP4bm?HVOVolx$0!&1 z)R;<0D~?u!sEnQWSu8?eLp2x3w(MIbqTa*(#f6-!5vIBHL@bCsdb*xh)aMV|7IEEa{`K@1u}YKJ{$i42qtqn(Bg!jV zkn^x~kJ-)3%w%RX^=g#@gYL4f9z9#C%SrffC>fYYVy!8pRLF|{6UnSIyx`DK&K73q z)77Yrx7yz$Bh6x-POULED#F0w00&Q;Yqq*=A^+mi5#vh~B-rXxoRMBP$K_=}p>mmQu~S^#`)t^+DNTfo`QjdZJE8w))Lb^4OjuN`dVr!O8pDL zWu%IoNtBCBHG#xsBw)5@Ds@z>Sjc&y|HI!|BPL{x=$BTdk2dBRoUN{sWH2$6s~Rl4 z_}03g#T=3*Vz;K-VD*meR7oZU27xO>rLwzc~N;RJbE!bL}_kJGlp;2p~QyrSggXp zIe2H=W<^_zTwgi#!+nb6GEhQaflamDA>rAwm_RGLfD+U3o}$5rnvnpM!;Ua`j%rcX zZQIs3I1X#8-232|g(lT>MrLpTf%GsmTf=ps-nokFEb9yHNa;ZYW3q+lNY$gj<0yqN zJ7(qP+F6M%8?(ed=Yu3 zK%Xos_{bM9Z*J|YmGx%|9T;2XP>prBrcXW8j8Db_I`DazEQ_7l<5PAc*$$tgnf(p% zJ_{kbt=<9kxeK9l+xk`msXY=|ML41gUN%Y%RZJ3>oN_2FBU=TV3lHluBbSt*qaBV zR5J%*?XvXJG9gJNoTX@9es4aa$Uwhq7Q?F2i=?-$Rp@mhu7bSl3hilqs)4YmWR}m}i>(SUhRH8q8$At`8-_%)fuSgoE4F9Y83ak>=VA)x zEjFs0J>7w>pqNOQlBT*O5?V?kb3kGsocYove0Px}P{yO8eli_OjMCCnPzm`MNSAD4xyddUv^(t7y9dgVzXTv&-dZQT80* zQ1_7`bq{=eOn~9p>ueLgho01WssQA(y!JWt>Gyz)U(0h6lPr7tfo}wVnAzb{8Z2{8 zkua;oxF%N=y25csMNTEo0ox$^eCch`fJ*y@IJe$csp+Vcuv()jKDjxMIxw>#u2e9X zdM|g=jQHnO(B<48s6&6Ok50wQ-xppxpA~A6A`&L0j|&=Fx(I({?G zmR1>-MX_a#sH)Ia%k#_~JtmDf!NS?(snEO!t^>wI0moLvsljSF6T9NVHC_h1^ttCu zt%XKN9cdfPlD3Yy-KugkQnO1|M1%WEoD__<8^<5R=gzhRIF(^2jQ5p)Fiy4TgbAj4 z^48g*#-sbnrqLww-Fb-W%T%7m!3Qb=w8mK{9E%ur#O+yH9d>g_mlrm>v)3FQ{8s2Z zm)yNI28+@HxhD*te{}nNs@K;ojkEKi(e6wrPG%w~GSU1g;)(DMziZwP_T-yt~{JQ{_C<{)2k|hf@E4)SH{-fBkFTf4-0A{jc6f z|I5El0dk=Q6f_I~U8^a=K$uC^l|2QNnkUB+1k+d6D3A$I$z2$e*<|Bul{Xmwiaelx z#slN|X*XTenri%UQ%Dv9KAtWd`^Z@>D8}|qZ&!a`#;%9dM%HB2HtZU(dL(D{Yw!~?LAN7of8a``@RV2#M#-qVc6Y~QY(9Lv>^YOq&*aI^?PD^KPg790KWj?7J`a~? zA|F%A!c@>&qzO>YR~G@2&vq^wQ*UGpiN+k3<$ARaGD0+Uq@MW<6190}CvGm~7TBVX zz+NCSe-}%-%`T^8P$q8Oe`ErG3>57%X)W+1cJ|S4$*4I;)?5oLdROm7&+FUxu z+K4$OYA=>hAbV#T(u9(ymvxF8+quYxpoX|f>39PFcsd0D>QTQ%ocleekJvy`D1pV)?%n+ zwH%%yjZ*coy&Rx zsIUFAEY(&@)@o3=44-64Qe&u9Qj1Oe3`Q@P-894xrpgn*>1}8Z!2JN-7O~~6{WvvT zE48@~&H>gCqu>}13+s^BIl8~v-bt>6q20au+!&e#B1@c8 zLfJX6PCh|mi_YjaLjNEf|3Ajgu}QRG!LnuBwr$(CdCRtK+qP}%mTlX%T{XAgM9joQ z&xigG87DH=-g}+AzTnY6>ivOfUoM1`m}Fpm&29N{YqJsRYlM7m<6=D2_D20L=tWJ4 zI#d%JZ4QR|aB@{u4MaWOZswkMN8jf_pDCawA%jr$yB<(d%$W>%uLLz!L#<)?7>E}+ z`)deKB8E%U-lUR{vnY7_7O9n}uFDYsBV)Y9b3t)=pqz$lAyI&YlX|Vxs7_=PEOcgN z`=UaRLnDu!w|J&9xdP_K5xljN=)!Ji>Rd{qasjy4xOOj&%iaq6H5Kr=YFYqHwzkYZ z%^acGDN#ckRMSX@&~2M0nGO@8cxyqI9J%SXiJh4axsRBG!_$|2Z;jl|MJ0ojfdtTL zJZ)$m)YFviwM9{&^DY}9LSh_X9Z_&W4@#^s(^xk83F2cX@l#DKm95}w4_&|t!~}pn zD|oK20!7=vH(4-YpS5*aXn=v_R!0EdtW-`ECq_Vy@q2WDXWjge-r@KN4(3I##2mdL z%VtmTm|RBh!K})ehr-No9Z{{@tYaMhBvE)kh!8`QfyCfvO;3KX4B4y;pJlC-2 zc3drB(gx!T8}A(3xDZuKqH|>uxDj3T#eAXpRMkR)+7Q5%f_hB!oNSx4AJXEHVsZx* zpl3T}-L$6N7UBMcN_mo52<<>G7xq;z3{eDkG-Dtjf-SqR+r4&wzB!!%e~EfPbaQhI zR)xM8lgX_QoEIv_1-jz-FQgHta=#it(;x!rj)iRo!mU(Zgxc zAxh+>mkgCCFkUcbG&L1Z=WkLh3;;;ud8O3l{nHrrAB-bEZwtX#*DOgsWm*4H|3qzQ zpEpV!bEgR3Wt;0jteDP$$#FEIL6_Ifby)V*sOedCUxePnQe1wU&r+yVPV_&<4=NvV zteyUrqEQg|6!NFOaN&6RVJOy*TZ(6H%dJ3&j~j zyII`FkT2bPW4LJeJA;&V$CHNS2SVFr(yUYfuiz6*TVDDz*l4L{*^bw_CaAV-jP2(C zwHP(^8tI7bX%>oB{Wt)U=9v7%_A_+>cS_`5$-uJA@q$EySbRcuNAB)iCc+G?vjAU@ ztHscIU>ad!oJ%2#jK=M;Baq2*aAKTfoS-Y~V6LUGQ2Mt%IRj!Zhzo9RxcI3`O*~K8oN-YexU-c3fskBDW@5;I->e4i>x%(7xH9RI08Hjm@UBCr!NH~ zQsKn*FBUA)r||A|GASGZE6mJ{d)a(_LnWNI)?rVprb0Oq4<*1}tV1a#*;HtU90b~= zg0!$t3}_#p?9@J*m4t$717!ew%|xcLc7RIHAFaKv;F85gt^y5KAEeIclU|NY;T7Jv zVgEkbzcj7r-aXe?6mR+UnTxNIa)TtV9I&CIOLWixR+IS`fZAx&?Q=xsY1{&LFn#6Y zcNaLloUOpY+q&#ChGb!b&|Mu~MS!4T59LpI6diQnWjXQ02#evAO~hu_@-aqG+n&=s z_VVVYYQP1mnuYAR8%hkPy>t-%16bpCTFO>@PX26n*W>l)aN5?h)-6#5ma9?14mO)I z^Na|V_Cc2?hJy8cEG;51Fvh$#u&11~-!-j2bCdG(%WMTnx<@~%JrIDd(@u$nl`1`h z9>hZ4dWUz!J`ka7lv^KEE)I%9Y*dA|5L_1mG8t9`7rfaU%cZwkdnuG;3dQALw+K~! z?F9Vdewym60fk@(l=aZep#g0khcsh#c3XT6#_knvn(N+&B@urO$JDaXKglLhxbZ`v zQ@hS4XH4x_s$udsS!5boR7m``Sr+w&dA1##PC`M1$i>%_&s7gwP4Yp6vZg2 z%_LRI>TXpwl_$rrRVe#57)R|w(|*Bdlt{R&PRj2G_vMvH#@H0Kd!Wb=2;!mC0eJiz z$cj}$tEMW9ZC>QSwy_@C_}SP_kHoNntd2)YF(vqFc;b@3jyU{<*HbsTgUzG|eG%t8 zR4+fgGXlBB{Kd$K4CA!{ZucB(Y(vm{S)DJ0Ive#mKksL z+VeF-Z5g6b5zuAF&KXT1{Y5GR@P|AH>f@wLX!RQpx^%Aj0Z&c&-AhP4DMhsaR@TIUfclt?M*%eM48d2k;O1Z*Fx?8(F27 z)?hD}({zO6WnoF%)fvMMzMU{0G|S+YY@P~G(oqk;hb-9ZL#E+LA-89 z61MMU{k69>F+QJ+^{tF_hkFZOj97KBLl<$wg_*~U`L0KWj-P18haTg!m?LD2_(Q9` zt`6X^wq#tDBnen4uPi1L+E>nhJ*mg*cYk#}Y4`j7^xXC|YG>=)sNCXQ89MQmO$1#{ z|Aj!tEV5Hm5?GGR5wzs7jG{~%?7LeH&_k6^V1yEJyzau>eo~G9QikcT@a92z^?td^ zPQT=P?#3>k=lA%n4oC`)nLLV~rQ`iE43rN8{a0(C%MC)kgsL9WvEnxXf_giA#Rusg z!&NfmHc_q#)L2}(Qm)S}& zfEKZ)9gf=t+eNKbn=g7%MGE=)WNV>KEF}Ty1`$<%ZDS(98ZC=)_w|&gUJLEDvO#TM zRQHNUU{g0%c44o{ICOb$D{*W@;QQM5dGzkUtg$(7e23r|I(_E7)dTaFf?RU{`xPJWa;@0%ZCaT%rmb6BXzh zRfcT7={>Sxq19l{U$vC}S!1q+7}&W1sV6f)MThcMq)`K9+%#DYC?Ta7UIP3u!U)^C zP!AqDPVliZ1BF)Jjw3oCPT${g0^^LEf6d$qPH)zk1+hT<_4c3DTj4;#mIUn(gk@X+ zK=J3Etyjmt0(hUmYo5^0kOV+k{$K!QK5aKuJ@0B_twB0xW0Qg?Dg8^EBogI~>I<(> zs-+=PEU%XL&3P=)J;a`ncglhCuiE(_vOLNpl+4J7A&q^ifLN<7gXDo)bU-_JnV&V; zj-$Z`%MMWGS1#JD#^%APi$?9tu)ax*tXl*=pV8O|QUV^L@l1!Bycp3r&i7{6J%tL) z0rr-ZOxtYUow!`id17LJz|c9JR6&k=?00@~ng#652683S=|}A2vZVYxnJ#%vF@0xE zgulD>;Y}K_Pd|mT=B5b}I;*tUY3{o?2?wCa<~g@Y2Bno%!}V9+yLi+PX)939zSp@lN(>m_{mgU zc4ySzz2GKatm?P6;Ht?x((lK)&XCcB@C@-gF2o6dET?-Af#AE)_Ttz6z@N1=dHy#9 z@Smsse<1)C28REWzB4lZSJwXjcGwvinf_-b_U(W9dqeMTnZPmG8Wml1M!%hR$&gZ^ zNGpzq(Q3tW2f+9~5+kGnKs$A=*_;Q!IpIU}yXOxBK!+B0O5;QoDnn52&-=&ajR*b^ zBDCSh?3d1UU9V>v`0KYS&X#^ppW%hUAK&Vietf%oA;Dk!u8svO4T1v}DrmGLNu;ft zx`C{#laH4?b#|R%L?a7(;>JB!A5`&@z5eS%)i+P%Y7>1o#~z5#8W=oFNobMeIq0gY zY;nq24z|(8yN0qbM&3V?$z)qR`QPaqw*>0XqpGY+Hpo|1%Js?pmfEbZ&A$&Qd)yC3 z%IvQfM&EP$bx9*m)1OI#@6jSJZzbDK1yZ^d0ZS*_ev>*4+lX=zl(Z(3F`lct} zqO4LF;zVXsJmxF?1=pXR9o(SHwRS05NU35Lx!~;4i_$zuqJ^=73#_9(R~M+prEbhT zQ_x+TKHKn(S<<=UG;-?{@A^AE-X+DcJKf&*)0ekDGSH6RBso&E?$&6c^vOE*K+jN* zZbyn@(1f}{#L=TP#HnSb-*8H-b3exDdLj;p+8ubt^}X%sR{iz-84{ZIi!-z7WQw^d z$LQ6M%iQ}jsH2LC8tX5kzH{_zr#d1X$Uc-Ul6wx4N*YN+By+lJ)P0GU`L;kf4!hvj zWbW-Jk}9b@@Kw4!YPFwzZGOX?%{Ll|4bZ;Sh0((+1wL-PD!MIcYd!iPs`3U67Z)Y( zWMBKkoy$xMfR3boQ$z_MkiEiL-&UTTJX9FP(6(2P@=ssK|CV5g^h7a-jSBa;e!2xcBU~Kb#A$l8fQW z#l;DM2x!9_n!Q%w6;DoAq?#c=mBOVUG|`p4I85hLIlX@Or)l%QXB6^g28m=JJze&S z`ccW&^aG{}V(P8OcW+a^cXYu7RvjI50pS%AgBR`Cfh~{Mu0?2`1Ie5_(d+0wn}BkX z2j}cnCfqR_B>xN`?e5BV1xqcRRLey}p`SHzWf@7lTPr<^M052BuFMp?lqoAMY(br? zBa#yolDbm>F;34bmD~8Sz&h?8nWGM9kg01;0|BkLDkgtf^DcNBlxXq384NA>EIT39 zazt31wLzZXD)*nD-IK^faKdE=}KB|s^^0arUEQoN< z+?Mm1v$SKjbeW(<0Mhrh5d8KGx-$2q$Ca_yY?$w}nI^~(@$*8sDyq$fLOcC-T?w^9r z5xMq-L?QgZsjw0 zvorAo3r!*wL>oLxj@e!nh&YnMh0evj52p{5U+s``k$fw>-Bh)i<9Hhh9FCg+)d-+b z+SoEV_XP|N)C;i0bU+i%;_0T3|EB#WrG#=h@mxEA=DP(j{uOT~?w7=b7&$8cAm-Nx zmNi%QH%nZ<}ZisrCZO}FYCTRy`SBD6PzKVIO}nufAn-805|%E-VYIIzAsKGh6s!5(9jjqXSl zfd9ed+&o&-sv{9)cVQe;v|m!<<8|nn!Y+#i60r^GcjjmUmr`|)BlA)Fd4)%{BZ01MitDa#`|9_N};@9Yrx=gdgo>(v>5$U()9Wl*95 z#UcArc$CHghuEcN1{825t-D2ezgk-`^Ksp1eZ#0$82zbrCLbEK!wKl-VM#Qk`@lhp z(a!8$=zPyiU&20UbKj|3LPpSZXVxMdNi+w#NHZFdOhc>?u1d_K9{?c;SLC8}2>DPd zOHTyx%1fuDp}!GRs{01ddxVC8O zz~jcq$%42eH`_*SNm(NU^3j6Z;YP~)@`J92Ywd!>RtuLIn)E~SWrl~DoPewg?RQjB zwhpi&7TK2Axq#HDj?>?!`?oc!2>?!~K~(s$wej3ae@QRm{oZ{tc(o1&AUms%HLlgR2kKt)!Y+ zfX>C@ATq3D zufO)gKl=#t1*CsRRi8a$O6&;ejfmWY(L2yFP0AaeSw?%-C$$Q{)PTJ$?+{Asng90p zl9zSFD(fflM-@BNZqj$@Ie;wgtKmLbb|`bb z2M2n6YX*hRtN7{Iu&PotfVP0x6p_)|^kE`VMJozweIu7dC;aHBtcmi(y_d|T_g$uh zt*U@hZh4khK*J?EB{~CLdbk7A^p1pmDmn?aXpQf5_Z81@J|iLNn(}Dnsa6E_$2sy9 z_29k;IwSjZnp(W=D`4VevRX-V1Y7lNhr}(_=Yyn#WlflpEl!ojb;ZX9+l1SRlaJ}1 zFcQ{1w_jD7wv-Tg(C#Z*;ex4vjBF8)w3!K(XC4{Chy;FU5*Rj+(!-cUr%DYQ!@J;x ziyf>DB~%HwRJ%RfFEpp6Vip}}piPT!Xy?-)PPKq`y}0)+H_O9S_A;9cWS2ux9r;*g zC2{75b_7x^`N;kybxI*)pql*ZHSM#B>tY>7o3R*IaoVE4havYRViA}xWRc8`fQ<~d z=#!c5JEMN99{-b(MX0dQVymf7Uf!pa8XWVqA>@(FQ79umPpQPo{UW-u)|I=-(wDrI zHO?TT-25r< z8|G5^ti{!61yW#`gY6m-C`AjvICweMxG)eGYx%DzvyQ?#K-~Uo3zSdhTya-x$<4Qw zbpLOhMP6#aU5b1y-cM~ZPcu;_vKQMaIx_2o=v)3b^4JhbtCh4AXtnYa{?ul1fk2|* zaQ`&V550S(wAzc46I|hT{%yS|afDT)gjRoFPZnJ#&|hG$;?z9b9H?m#*LH+^&t-IbE(uS^_haojDB+8S6LqQ1 zlMi5&;AS7g+4ZpZu-oQlFG};y9*}FFuQc0qZ?5s#AF@ zoJo<{99r{X5V^nrN`b!O+=s=RMC9VI!J>4>SLbbT6UKU>Wu8`1oODt4IdUsAx~RDf z#S2}Hdl6g#*3a=u9QP#&C)4x~!j8Zi^`>d)LnGC_Xxm8U4C}(wLo&5SpTPTQrybH_ zD|d>R#|1pPGV^KYHrGXAsE0c@ZNbi#?2yuRnPn$C*{}!T*!h{hTv!C=yl(nrRfG}J zWyIk~76*_(l4JIUhg_7F19Y%vn?1b{|FtE`SLd4OgXY>jZrMk(^GzttL~~ueJL0GV z%2uXMWYOu455SC03>1$*zlcFgoxot&p%&OHO9Jsr2t1bFd%+I=t9+?^_`;C$PkpkRIV&`Gha18=Q1XQYT_*qYmM9?lR60DA+_3rEqnr{Fx>K_JNzVJKgVUj z2(!yODhHdQ&k-?oyNSkI_AQojvkJVJ^u#z~_+p;YH?+a_kCJhvI5^r0pwy75HTI*) z86p+bwN)QG5P*87w)WH=dI0Irba#{g4&snf7#0@o#AQJ{4;drMMSd!^ImkhBGDO#k zyI*(fBT{LesLW2OxGI59&xoQsj%0{ijc|HqSzr~_o@?mP1H@zgsgoG!mp4K2@y@RI zKT_X5+a!Kl!7krdDw>y7|T{0~1TqNNH+fabOKjPu5TrdFR z2JfNVrRe^IJaH|wWKDEIKeatv&i?hgYCGEV-22*1KYR$ZjWq@wl$TqSC0C*!Z*@)1 z`geik&;A?L*(#V5?C(`IsCNOC`%TW;Y_OGm8E%Uos7gmr= zB?;k$gf%-X^S|zuRRK<;t2qu5c5v^r-x60 zVqMUi-wOAV=1VLgENWWevJ9j*a%edkLo{MkeQm8;>rCTz zi$`CVy7-AX!&}8if0teAUAAS_-)r#vLT+G$k-}d6l+&`dP2|g;RQ2vY2oH3Grx=?U z_`=;uRC4|@v6iAjjd-AN5qHvSeJ%xe0LqE{^&4^cd9;C1_1_M3f~eo7H=V6C(mk86 zY8C&PmYWy;3^kU%T-`{Cv$?B?(9Z0Sgn251f%%F+)SrvMq|RH5Sg@g{R9x2Hn*8g% zwWZs*qm$xY)|PTGs#icHQv}mmY7bOo`Ig6S2H+}-Z;9{arw&azn?kE2x##%qai$pj z?-QOagpj6H5cQs%cmG6NT$EY$8d=)sXdhi}!)JjuLW*s+q0QI$Q4Q^UB^j0><+j~c z87sR-jrMmEwldk6L4!qNk7QHR2!I|6v9Rfm(wn9FDlo^kveC9|ejnZ{k!LLwL!8}8 z0CS25bUaDrCfeY{Eqb@Z8XiMWU9U5U6KB=3Nd|9)Rr8R}E<2}pd)dL4z~jXz%fMQf zE+o#=kn`iYQq_FmM!aNASy2JlLu+H}h>AYleT1*(8rB7(+oK)Te5F2%a%Fyn{EJqs z!~Ji`4srckL49`e!;B2t@lc9;Px#xs7_j|Hy==b>P2D$md4!F7F-MxQ7$oz}q_3{ly zU;H$9@+0Oqm;pn?FU=`E5O4FszQd(i$M);dgvRv18Mmf2Vy(Pm&wm_fgJ;+M!QgD; zK}D6?WVE`&x}3WVuI8-Dw-iP@316*BEl?Y76N!x{>YELD73$J0kID;kCU_FXA}##w z&$idx?^XA2^^juYu%R9n&{9@V0l!Rpc?rx`^I#bEJ>f|z1c4W_Q`X6I4C}S|GB_)$ zjvuxhHr-c|MCPnOSPvhk3Bj5G@GJcp=Q;MJ0cJ6^^5QXn6L%fp>RU}Xnv>{;3$`FH zIb%wl|Hb3=ZVK+b_rk8> zrhf4>AAhX^^Mbe6YNopCrmB{h7LImvF~~@{p>(*>#p_IRc2Evd#PAE#5X7N!NI~iK zS%Gu-y~=J3tYX1=Z`9)7DI7g1lAUxkqAH+C`Fm8ss>02f{O+(-H$o}T5s;WZBV|U| zAN6v_@4~p3F1E1Shn(=-L2+NQxu>ynd-uMDV{j&ZZ`>x*HN;2H1+mFe!{mkLaNAIZ zyH-)hwV>u#9r^JCQ|68JaQ#^07}#=@fzMUtpl`epf$zrJp*Z_+*ua%skC~c({IEDT zfWcr4>}6dgyiA!ySN%q-H?sQq1p`iqDV1vUZ&b~zgAh5_Ab>A`sFoDRp0(TadI!hL zv-};~vex8P{Ry?xQShyeKrTnh z{suh3eYlF}dglZMIxhktO*6aaf_YAg2UVx5`~|a7Nqa@V@*#CQC#C#v!pV}6IB98e zMBez2XzK@BAwn#!B;B7VN6KqM{pR{MEs*m)l&W;*-q#zda)S_kAiPn%<2#8yDkOfn z#-Z$R5H1RBJ5A+jf96Ercrb6U?14DC{6#Bk6erwk-vMUu_U#o5o|2H~x{1I$>b{3( zNyDnU76c6m0sIN=yIQ;E8DFh6ve;?MTXd_n-PJ5oAdRHorgtH_UjIVx(1h3QO`wZw;Ij1_SLD=&#CTc-ZZ^6AjBZpLXBhV;oc^?6|8wR$Bn8X35XbJg_ zHKxcJK$2pe`Mhb$wBl$4{={Aq$}5{#g6a5DYH2AG9IOgHtGStp*6;Nb@s}dmp392g zJFr)Mm}8K@6L4`*>Q}9VO5Mvk+)W~EowMePIB>uNM^+Fh1G5Jec~KG>4ngH7A|MQdZEDCzpL{<|_?)B%^KY+%3nUx+kmse^-mF1&SFS#^lA zZTU|Xz>mDPR1sR$b*>Z7K*lJyz|7&lp1_NXI`Bm?TU(2#jH`_Fc#gDNco37jX+DP+ z_6`@~hzxjBl!z)E5|E6F;jlBpp^za(|B;Uium*q-?2$$IyS{GfG;x1s5;n=}&-aJy zRQS$l_t$FC_IU8IeR+0*%qMd((hY%Vv zDqOxes4s3yPC0_qAsV1DDjP*2^?Wuwab@dnK3v*pMXC7_SFJ}I8f3Fo8>rQJdbRoR(qHUOqLyG97MnK8P)uAQYua8vLvu59PsApOy#Zmk5%2 z#`oFi+s8h-(Z{>1L0&k6@FG(KA`QLYIL9IQRM~m;H6%|-2|M1e-|5Xp@kzcv`u6*6$8M3&~P+x{1alK1VSQqQq6)8!k$(thaqk(%vyZj+IE5AJ_C8+1;e zi00YIw}*Z#VXwXHDoZ!yq%FM+UrIlOMA~_2q?9%>0Nh}OHp|{LpEpsYh@lbMHrhly zsHR(L3#bmR!>dOlFrbz*ie~ypm34XQeORxwR8w&rTY94Ri4t7S<)77FTmC4B=eeK{ zEA)@&wq>>wA&0ZzbaC^{(L&2kB6K|NC1O(aUL*Ufr?)A7@n*aN3IB^>uDy0{cpwL+ z0(6#PI}ySEIOB0d-g&s2&P@a@K-wQkPzZ_aay`~gNJ~ie(X{}pC29*{yHvM(RvpG!b zZRyR|7^>a5vA+;i4+;|*SX{3V!XWMda{6S<1?+V=fUrR$>HLgTF&t<5s>A!J>{$Kg zC<&(zld{0|aEL23Qexx)rYHpre-u8A!WL-~>*G*Ca|w%8mMwcA{>p~R(cKwzqyT+r zopuqhbh-%SCRpi^%bn6BFnUw3n3Toz?}J|<1S$n(ebf8xSsyJ? z5DT0nDMMnwk9fPrMm(lJcW+PAzRY!X9l1pT+mVKy zD$DWYRt6A|4sVYId5b^>dM1<^R>6Os-7n9|{`?bEDZ0!6ZsIf}{B3s4mL#Mpi`&^< z<(w#Pey0%xIA%|#n^>n#u+C5_@NI*M(?%Pv@e@f0mA`_ZvMCDqF;csvE9?zRlQ$9( z8zI^T#7@maa8fqTo><%16Acz&N$%NGf?Z{_Y0jQyexk90i(^}Wi?Xq=O*Gqgg7j z!t%V~crY%6y3Qt4jM90ah$%lCnEdLGG=jtuQRKa1D-84dqE*OVl%>f?p@afeCkvuq z4TikrxPMvH8$Od0D;{qYPc4kfC1gWM)D)cw*Ysu28CCdK;{o3isKfSs@@fnGUYw7 z=$n9NpaaGW$2cJi#EjkyVet}UxBeL6AylAP@Z!(7vorUH*33@t`=F==uoo#H5N}lc z*k$QLfQnUDb$_oy^X%6{j~iF=^*J2h@|?s6hoa!}b{^IVSHr0VdY<$c&&s{?XaJY; z0`^p%#nH2yM$`spf*apl9^T%_K9Fo)wjKcZyI|b-CNKyl7uAqVSXEVds6~PdtJI-L zo@{kqqSeSzI(g#;{w&9wsh*XHLbZ0=hqYU3TFc0tZKnl>1iL)kGtE#FJFd!XwTe2g zC+{SI%S9CsEO#zfW}n3nRJ{_95ZWDGM`;ws@R4C?Z?FIgR%#x1d##T`dLCaP8*WPOiR|OG>Z$bRtP)wQ0 z(-RX^oWhSRebJZuwmpL08F7z|qYL}}`2pVYBM?ePz|Fyu%Sh$u;@>3@%@{YC(&pKK z>`n~W!C<_cP`#L4pASl7LfTAIQOF{?H7?Rg{*@d?)j{7K|gIX?&GGIIt}4s zO9~#X!)fUi30eFnGbdU*rNpzB`)IQmS3y11HcJF&s;6EP3F{9wJR8)44HdWS;-lXB zjQdvneoV9a7Fx*yujD27f@AZm95*t~Fz0i^oTY}7flc>wJ6BAFHf(bx@h!j*{D|A?N)eZut?K$j5c-`GClCwxeQ3ePLn{BbM~WAMoyytUQJ~?4*m*&&G0yxF7` zI&ZG#Hdh{2`D@cW;h6EU=RP7jsN@$#v?h*)A{?#@6K&?F4oho2;J=JtzEg31v{yuy zt04u*Kn|}p+Glm_zui1f;>g>NhEvAhU7}SL>WQAGR%bV`2HSUP~OI5#} z?`>7AdRijvS=2K~WJK2Kp7L~=Wwgo7dt9~KU z_j}n@y?)u`N7CuDdIGLqkY}ed@;;1dl1v_G!o)}rJg*EN5xek|_xe#>3 zgf1{R&47t8?q02*m@hx#=^-)fsoyHkw`w%93oPo4)=ycsLa}#RP&fXFec7pZHeRDr zsYftgf%|-@WdnK+%cnz5)CV7q%7B0r~EzMs5V{G=l*^= zS!dX8?n8sMZ0Ij8Ej3;}S)e-FQvg3~I{=}#q2jjAr7U z!F=eT+FAbo=+hbD|BUrT`{W+YjIkuVlb#`)QMY=RkN%8?eY_yM8lK60m-@=>Ir%F? z0`P}ffJxt6OK+VzZS~py%YiNt?b%IXcSBEf2yamHvL=z6x6C$Ei7lo*Z~teDI^<+eV>zb^naqACfwU^i^u zP7Z;rX=stvxDex0WOTvgnvKP|63H_-ofc5br|!nLpSPv;(G zRbKy5?A!A{1y;`;Bp-VPTB3ukdU$e_nvPeRCUc5lQJ1lj3F$a2DpQ>X0gQrcPUZhd z>29We7vnMIWHJf}mvAy`X5Fs=D<*AI8p3CLc3`ot2mphysVr!XM(^}w$nbZ16TFA~ zTft-~5tX-FFW44`a$VNiarqGh|5mx}Et69DlFpyaNgrd9kknzforn1W`} z4}?3SCnG{BIoYs)C~rxWr{-9WcmG2ylRs9W^{U{5UYy{wa(Edrv>+lIu)hYFPx7<< zIh?L5rz*r`l`DLE zKHv6g)s9xrwVchzO%@;slEJHv-Q?VXgW!?SYisA)(>}}r;q+hEnJz+?KlnW2bjysL zL~G;55(ig2dP5qCD=lK&7WooiOx(&W18iT-SQ%^l3Ri*^i#gfkVaj6WlRO;SpH;g! zUKd>(g*XUH%|kBpPoR|^Jybn_=vK!GRlJw4{g9YmWuZECHMvPgc+2frNYaDQ6*5;Z z-y14LBxtD)(uht#oly1nGi7x|Bg>etq?Xii zB#)ks0;xgi;2;#eRA#@}n1jB}Ma@e*(WTE@pDitu3rBLq#KIEj)aOjWO8%_RZ!MdP zp6z8m&11PYww2keMjBLhDx<25e)caw}g~> zLvKu77U~W}<8eHCR3i@l(QWyJVg{vt3jAWM$y!iFsNoCNXz^yLxQt-N7M6q1(CYw7 zoe~hx4m6`$6LVpogo>8sqPxWHs_K|26Z%cqVZ&`K@4kazrbLy6X9NpyEzP;fO=5|{ zgvj8*N~31pXSj%hF{pREA0U0$S*>ZHMT=DN4wVSH+oqwFFv7aP9b_=Q zZ*>)SG7)Qh;rth^yWT|=n~w(CtbfDTwK7SM1A=D{o_CRlPsY zAb14x*1V=W_v}YYx;@}Yn25&o{Mn%i>3HU#zl0ploCT!F?;g8L+BLM!BY?J=7J<-T zSTVdp0K=cI@O1BRlp;*Bqy+qc1xR;X^ z@sC41-i;@h(+3&j7jo!~7AYu5K!#1Xa<3}1@7eJV8pMwt5PukJ#@Fa`RX>vn^gw{o z(^BH*7^PfZ^B=jdzL1mUWqx`zP1JxqHnZ8jau>dNT8@_Tp7`v~e`0ocBO+JZwE4(k z`x-{V%;`(?k5TRv%A*yT!3pyOZeO(g=^W9l6zcL7 zlM_W{2n)Kn1y%pxPvswXFJy!n+MKs&n%7<-s=3#T8qH@j;qmKo4$riF>>s+dC7WG^SeqFjM(ZK72i~+CJ}J9cVx@*WMZ3P)39BlF|SX@3flHCrF9|HE^8??2^rdZ zJ*&e385yp{j|k`CA@Jdv!Gn`Enl^e$QOcmadYjO$?cFOWI!)e~h>;J5`v;SySOldn zN8x8Q38uA)1@CD;bh1r0+*6N|xGLwoaCApSyZ-EBocLCS$`w z>)j6$79e&6^KFYh?svc*Hk(`cEPOzLu5%?&?R*5~VKFyjyZv^HrV>R_ift*q2JerT zzh7a)MEROZCr)rG=f3WU8T0UH9M81o)x4L}i+`?OWm+oAs!Ww_-oz+YN3!+iz=TP8 z)9-?CPRTRrRZvLXY!whmo>@`k*JgZ)8cuC>QZiZ0yW+PCFhl>?mjIr`Tb(oeSAsb* z!;xj$D0H4UVWeB6GRy)HK&(o5>Ay}ULrg;P8wh7|u^gIX^Rdv(jxk=s2u>O+RQvS7 zL#ER;$tkyzuET)DG?`0*pxeIEk+O**<4be8L=|_$#g_f7$&wsj04LGTum|@qEwE4K zC2DriUymIrm;vs*MwM30wYWlXYBBMn!(Lx+QTKXRzt$3y;Y6p{*Pv0DS@jDeeP87X z1dniNYekr|_D8nI>wv zFKdil-7iHUF`8I4yjIvzB*4>>1U`F=qG1}mHyEmLWAPF$V@bO$jJ~2hZA0R0oRF8d zM5#!as$a^&%gY+fc38deIglw$V@r*qoek4<)4Xdrwzcp#FY@Ee+1b;1I)%+3(vHe8 z7vk?Fy;y$n`$n4m(aR_T;oV)_uhUAXe1$Vywbrlq3)N@39}_>r(0RACgwg!4>{iGn z|7?wxlV2Z>zdJWJL27Npp4wb3Pf*0)8vnSLyh5tqbk$0A1W zhTaTndEz~~WjBSlqAw;r)i@91Cg9wa?FBgqa*}^aRB(i2<}V#gChyyniLuQ%Szn6a zF$5{pF08B0Eo{OV5Ra3bCkz?!*!giYNKOUXRI&W_9p!0_rjkUFw=Bfr@U4a6w?Tr$ za<#CY#cHy%9m8OwieVPXtY>Y+%-BAf81h<>@9J?7`L7>hA%O4r3~jzJNv1~)9`QYI zP9<=hsq2rswFJAfG-wc$oN35y?kcw5hV81s=hQiuqG{BJGLVzyic{H2Q?kmzTP`;nw{*+2O`FdWjIC8Ld{LEHDYEd((0+r}1|x=2SW&$me2i?Rhk;6n2pBQw<)E?toD<21?66s2Nj0F8hyf#}f6?iXq;<)#~piwIddL6 zZ<2*kDB^GJhYbaECg3XHM*mS09#GK^f3`poj!$J~+3~UR@(X}QDrut*9<$HElXyYy z;}bYN;IEJfjI){225SMEdBK!evQl0cRO9Ak-AZ2ZNUxrs(6xyn*U*!;kE9)1fAilQ zDB)#Ec0DdsFsU;&%~w#iW9jFPq7J#7qjjzz6v;AT7`?2(MY0Hg8HzQbEKk#}YT4%mc&L1vnD&jcM}nWv zbBgfmZR!LRYtJ-nsOgew++!@tOH)BDx(3oaml811e8`>u#n?M`*BSR+yRq%0QG>>I zW7{@YY}>YNXT@%u#Lm&)+_~ z5UOwF4ky#ImcU%jyEv7`iPo5TR zhRq_|Ka_bNWL?Z^ejx@0Dd_)qar2)#=0C*^J3Gt&p`x&G{!dBs|2c``{2xuT3X_DD ztt-Hplu5$Y_@8P9VCrB75D-9cadie5+aY-7Ug>VeZ%HKo8=Oc@sd6X{8=K#!&zS_S zFXP<~jCi*2-$L9AG-%h@$5)SGjH^@!7#F<;uB={1bthk1yUDJAHTUE5_6PT-W^6gRcD{D&<5Uag_JD`t7N-EC4qv7D4Tss?Ai^QSMzt9jsarR+tB5WS;wKNaO@-Zf!O7r~^b+nUdw636s@m|WQ z>=N^0zE4N23ahb2aBF3RVqY%1{;$J|Q3o?X7xnN!JZWwB)5za(g-&Zo-8z82HO(s( z2k6MOm5buW+cao}x9(U|ZSFBE^JnqmW=&L=cu(+6XEEJ$v9(}jHbqkN!+4@JHl=YE$+>1wdpySKQ|_d?>#LyV7d$;cTn+A$HjX}1?9Q3_SUDee%m3ZNRNJ5%PEN$JwS^%n&d$be zb0`IaG^X#n2tv~Wxiff(-{R*_XfPX{o_GCK60P<@Ow@|DqA%95rMVZI%Y!?oclaUvn@K~~(Tr}~;Uu@} zCF6b;&r=_Qp_i^OC7wUGW=InC+i6+>e8ccouGVW^vgF(27|fW8-@W#QzL!1fh#_<& zU`h8hQ-f_=p)+#R9V;LsZO4EAC%-Dp`UbXX%#FUcM+UVH;`IA{{|?6Ojml?I#?ED! zH@Bc@C@0&;3$ZjEF|8GV7trpxi3^bRpK!TJ_-dm0<(W2+EkKoE_+W?PCaq`nqnMke zEa=XNCm!HtL-?~3I1`}~G?X$>%Nq;moBD~4EnYLQu{DQ;m0rxE6D^HJ9WJ8%G|e%N zzE%;cgl{h#lt&QyJwkt+ip&Z}x2Jwx5j+eb;a9F-EeC*HJy>PK#v>IwtZ`sph}_C9 zv+ycWzOd^#gD)yIdKhRwUc9fR@szD^lj0da%S|yC{6kuiyxGWnntSP;h)?Q<)2>y} zZeI*hq=%zv>W2OlEZ_Blri<8JBRmfvM&kP_j|R!M!|pTfOv_d7HnEwekQ%XRzlAhv z|MwALMY&EWO$@=@^YV;4LF~GhB9FmCm1#8Q()XX0mLW8JKVlZQEoJ*&3a1g#tjkYM zxw-TGG()=CYgGEcWw_Jy?t9a3+OeiMDUNEG_+Oo<=7ah>EY+r}Y40CBc7>%@g-z7c z`Id#h_5^x6*#Esg&AyP3FnO|iO#zmy`pQC=pQfZpi9!BmqpG@bRH6y19Hs3jOZaH$ z`oV7$PdQ3!i-qT{RMMQkl<-?PFu#Xj0Ae?}4kMkx@Cbhl)a?uWi7DQLRz?)HTuW4({KkQc24w;hk^pj7Vxxd3AB{~9%nx8JMuJRg_zLnz zHV50c20crF`ydu^Fd_-x=?Eq*%@x(eM6bVx^_#cNPn8Cw8tjJ=Q`gS80jphQRRn2X zeR7N&h3&J{!Dea^_;WhbZ={*cCL@Av;90gf`k7Yf2|lKF*{GLH`c5bY8Lc zo%}e5J2eKwF+iIPH1pG8sDqGszgl{?8V%rp=HMa?!*MJ*OhxBg3!ZGm zbd(y9nu*VHJZZdHC2EC7;o%Ec#p`KUg(rP-oGk#Dar7G6?}g{aFL=M_6kggg`MFL( zp0F(I{k8NQ#Psc{{9xT_WwO1-2!P%%lAhnFA@25{PfA3B%{nS+%`|jSqPnLLCh_VvwR?P7GoH8@tL?H>NH)p>W4Im%WH~ zl4z`Ti~HwPiwaz7fz?y1A)O@32%pPmIsLEHSKtmoZ}ifAjigc8I1l(QtT^_GV3TD# zs%9#&O(*Cp9UZ24sT@_dtze1Ku8kj9S}ov)K^?)0PZFV|8gLQRNpcK=DWkAB-D@pB ztr(#vBFN-5ZgQ@wwwlReL8!o9tc-1(F%`C$KU|<)dOko>D<3K5_WGGzYy1 zxo2G+!>IyK{=OYr339Ftj2Y+__#Rh*>lkjMPEfF|s87kSx7?Cq$wga2uKMu$r|@>sP4Ydy+qULpS0Kr2BeUaGE4l;r<&@RbBlk+{ zzcw|CqebxRrY6SPy0>NaqcZX9iZMonSYL3aoid^4hMroW0MDN;r-Yxl_%tWMlIblL zE?){ga`U9gg|Mw2$vu_ZtuEsPL7x0Po}WN7VJmD(k^JWUj7g3sdN&UX713V+wzmHVHrmA#ROACS1#WinFKLT1+T}nzvA(qrlg0|^FGs- z6~>?BX`)_w0ip+og{e^1QTF|w7fyv_b)s&3*-AYIgqj}_e-aT%^Is<#iZD~wm(V7i zzJc2-SV*T*7$%BEjhRQJjs+h@VFcuhvATLT6S6vdiMqfo$Bz+tV(NaUha^9hT%s&- zEnZP5(?fgAm!d5$XF^eoelv&~$`Y?C4M`ayq|goZW}fV@JJMFquhb~|6$;f9p*Zch zmGS%?I=s=gos!ii%TeOBkMan!!8NE&%j^wGAhX-m(b|U!-cIocR?@_l*wMZs^SgHf zXts33!+ec=S>{{q;vlT?i_ENOhH}f`gPJ2zc>&eWuHK`isZkpFxbQ`e1HOC-WOzf8 zx050zYCV_TeA-Q}>>zyh5B|6X0eS-7H1WIAYuU16msRF0Fakx&!WjD86@Gfjgg4@Z zX<%HeTo9ld+1+$yiWA6?BLF}qAx2}=$GHHQu((T~2IqThS+qw0>&Tw)W;gbGc68>s$3-`#2=NM3k;x?1^EO^L_!2A^Tx{>6}exCU7 zUq>juE@V7>SSIYGkc>4KgJy&A@hGYRzHx8R@cvw;`5VT1V2)J5qBt7gljE2mb>EAT*M4%3Kj?CtKgSS~-#idFFXxLKeTE+_BFB-idGcYe)9(~; zT(o(^d-ycIc69|(U|KW0CyVyVUzc@pjsK*!w9#NPFQ^JdKA!^L0fu2_pKmeQ23Wx3 zcwzjENt@!o{ky%~78AN!xdg>)?n=%qRKVsvyFNlC-{^4Y5;v5s57R(^vgqDSEPt#9wH zyiN4gAv1am$l#(L?^=^-hrdd$e4L2~~sGheYil}*z_rG>n zCX#^z5}($%y;@<%y(LH4oc~F1XQ1H>MUt;3hF$TynaCG8YpO_eO;}30?#xQIC$z`C zB$l5_LIZVtHlZ!dR+Tazi0OarbAz-Y*wcLZFyxFW5W>RC(>U?J40gI%SCuNtj2v?U zmC8|E!hs)cKbkK3@6T@*g8xpYi`JP3b>H`cwRvZ2E-p0bv}N$4ElNC^f#GWZM@pjzcxyI5k5 z(o*WuOM;khU#na3wF8YZOG1XxI>v+>{TEKlCVfaKgQ@z9{5=-ZFr~}Do0bXL_UbwZ zg;AMTZTG#G=sQS=y4ypmUU=^FO4)>H!+c`6r*j>YMNmz5)k=6m*1@tZA3o3=mRGR7 z=8$;7v8(#XW5&()8OoxC?xkilyBLo+h}i$BB71r!SF^J+YOzPkE52(jBg0neK`+=} zB#?U@`?2Mo*^W(55Wb*N>ie)&=?40#;P)EcTg%K*l%(U$Aya|oS-@S23LPMF)qBdA z)-5wR8R9Gw8$2F*Bk(uvN-$l$@4wm8nz>>=KTIWp*0br4Jg|K&V&BN*<^9FH%vsa4lH+uA1CLo^?dEMFEy9G!)sPumBLE4VRF@V~ROu@*5=y>a4msgNJPH!7-lYn+fZ%pzw6;{fhs$%JFs#my+s=FJkvS2>?A8PYSyzf zB3^3pYGe~}{MTQdav-DfrBpk#E=F?Wl?7szEeF4x?*gjoBg6l@4ERsP|4$jf%)<76 z%K)zbW~8!k{jVUYS2~;Vn`7vHNQL!h?aN>)OkFv)$xdkf+BXm=D?a$MBjDZd{YBj5 z=9DTwXcC^_!T&<$Cya5G18+*%iDzq4jDq@6+r*o+)%`$ARo1=V(E$_#f+si5yzlpX zl&c@~WUI|wY~_p?51Jj60Ud$gSpV)HSeF+Vi-`q~;FDVsro>#?_L|M#UmlP&Q{v{z zq$ido9+`0D7}n4&+<0`geFI|CaEdN-3@ar)=R~s)w~<}hS8kRYCg!;5*GbQ-m-gCk zpj_A0k2Taet~1R7Oz8JmOSF+B_CS*kkLvdIO_@JVHVPgof0($)XCrDpm1pyfTm=WL z;MR0y>B{FwgYwz0gx>VkS8l48A+A0S1*v{8dNIzAP|8-u58SUWDLs$yPV2RP+=o^< zxo<21$o9ernZ(s3ZWD6W|CY5ik8)=_R%ZflSL5P%)|aO1&D5Vnk#kJ{>Z#v+dvx4g zoo@Ak!}*agK%BPxs1_g}R z!E!(xk?E}&1)lcC#Z?`sU#8_?4s|*G;6uAXK&SX4ptX(w@P<0u`@Ont%c0s_=(H24 zg?`&ix>>BZDi2*$3FZys(BP7ckOYMe*k~Q^`u_80rz)WYP28~Q*7RNn^+b0Up4&$g zbZ=!=xAck8H``}8d6mDM%*SX`V|KVhh+CnT{88k2fAA>`P6o+DL1?iQSpL;~vLS=9*V|-RQQuhxVN|ly%6y*HvqpuUCn(gfh)uM~#@`?LBp$ z&1gxGr#HN|!X%f0JFBAF0H&F61CX-4%gIoqj)n)LpwK>j zzGJL)chQ83T64<@Y+uz#a+Vca$#hVG^G6vCoG!%_*W?skt(IUXztolT>FiO!mIVc! z$@~>US;)dV?&o7n!;4$ct38B^_GN{q3>1Lvi+DoQ zL{8-Xuo@YXmQZoRgfHeWx|AxP*r3rN5tSvxFg&^^HW=^#!TF^YCadj8uA-7tXPu<8 z29=;i_7DFX@g=39;Co`bd~1AdT!9Fe(asml?n};e_7&KxFCd;Vd@uL+K%gBbLf8KB z`W4*|2L37uM-R@aXv-b&cKy10hp&L?TaLu%$nq+BkvO6vRM^mZ7U`c3e+x5vC@D=m zOAQQU0Lb9)ZMY~+aMVHeX4%6$LPkAYMcf!#pLQ!kH1xBXud^Ii9VS~*C^jLOR=(d< zU!o2pM9R)Arqnp=oR%h+gZF+ixqhmOoGuSW9hBSqbBRzL{DK-eCv?$mDO z`lxiAB=0zsEsG6u@6kf{_0mR_Y!bc-wpJ@1DhG_LABx4464L(}&KNDA(1{*VBHcmN zMrT74#EFRb6DyiMM4xAfjNp{SIFcw@wY_AzJZQ;CLehh!^#g{w;H=M4D(GdmWiRZT zQRexG2rOCn31+B>l4?REJ?y>dD}UCz5WVOh33|m`6c)=*?h<|lgfbE7O`kHQq3a|O z+3%*=qY5B@4II^}zq=)@D4cA+O3MZ1{=qkE9N|obxQ>A$lB5G&hAafoJflVh!s@U| zd9&(E1+SIgO15mU8T_k9tW4{KZkmQb&pR5+Xw7iNCFr=XFMu zSEO50-q%y}ljsdg6MQ4Ec*O1>s;QrV z^$F;>Pke3Rs8+t0}R3y^_p{)4FIKnD#6naAJlMpIsV0KhfU2QiP zvJLpE7V16gqTK!QvXuaWZ~JWq;OtvR7#lYf$>d=_gR{v6);fx;HTF_a5i~+UNGd$D zUOxk1$5a5gFLJ2gXRh)Ppk^!1*DqfAKf5o0!X+itlWn@#zq${%#*L_ovcmf5?v}Y7 z34^gMvXBWETNY5on`t}K?un8rwcLI_qpL|tvc@BuIcFoCD6V`*9wuv|6&aSO$~1SG z8y{es0L+m|4|?o*z;3EPKY`hXt#k324!N| z)Z7d^B4jC%E;xY&&pA)%(L}`VxK%EoU0?ei!i4PsX}QF4)$acFA`Pe}sZ<-Buw_(7 zr#w4vPs5jzW^$GOK>et|a%Z{F>qW&JymV;=&wN$4t5$}NpBb_ zoi1cxzHZ=-cMh@h*6_0DCO&DumtFs?1=dcnBlITCRl|^OWF<|EznlQAk3b~`i^+=a z81AA)Fp9dQRCs!5lIr)X5Mq5gr}Puj!o1S%s*$pP0(N)l+ZBV@1om%gKdRTklz*zT z{uQr9XOT6iKP5%sCjKSnyu%g5909y>3vc}e;qhL~TQ~{Etfy(>{Q8YUyr)(ZyA4~t zgE6~vH{PXUS9H^j)`YsI@TVkF3wmkL3R|aVbMAa<*`Ybnx@Fhq(g(qQ99c07x-vA3 zNLGh_Zl7I<2tfN_bfcdb z#;*M9UT+e3_=`g02Vz$5n7%I1DhJRORPWj--3-IF``R?=A2RMg9yGqXlcc=neRzZ5VYIMBvV2IH|O}?wK11iyCZI z>~FeVKO)4aWC^P|iGGW5v?vGx)-wJV0^3#{MB0xDy^aw3%|U_LTW(eYj!l2aq5*H` zMoYwvboxRu%#C^FPMY!#P-Z+NF~e zj2=ly6{HZVd_UC3fghn9!JIzlJWd*(jj_id7?1~iRikUAFzneK~+j}QD2CY3UKjeJ-;(I)5 zY;`qo;M7W5`cY)HkDrF#JnV1T-cL(Oa6S?V?JnAj?cC%y!CRnc0iVA>krW!zd06RE z6IP!Pic>*Yx}qJP#+Ck1F`~fWQm`Jhzl+7GMO@^~y3dT9Hxyr-E1eA~nu}n95SzLw z&n&3{k*$(eJ68iy;7BEOI_$+AiFQp5@iwewQ58clV?;~^sT~Vzerv;M=X(hfET}^6 zBJX3NY;r0iEaUP7@IPJR`IKv=jr2_53Y=nKJ4z{ z>_QOH74jF>fe*clXk$VBA76i_aM%jT&fk9`|IpUN+n-QUs9l+v9^-BAY7o)X99;oE zP3%*K$LtXHnGa=C&#sh${&+*@*&b;p&YZ=0(U`+ZX|mw$44!(UxSK@d%3nuTNX*A1 zY(firld97)o5xK1GThICxt@0#&*X-k&%!*fC@Z^wd{3f|nh zAc>bPw+l>iOlp*gnPbgv3I=BVHjM;fjd1QdxFzX#gvDW1j6%Gmaz-MUL>0B1MMG7( zEIipXqS56hYXHH0Dg?^Oe)F{5iAO+(|8hmqM z8y8@hfv`)5ig;cj^ur@arJcs)Pc4j-IrX0-x#zTZ9Acv`YP=bD+Nir2jtX6VU?Ys( zv1HzOU2jA}5Q@YMg6cDfcEfECPTXixz2t(#Yh#?r1X{8T^=x~@`>%+*)NUfz>Mdo| za-YxD#@s)EjJ|&kSB{*r-&eGC77-B>>k#db-#HZsis!LWZvgiGDf}69vf0B7r^$z>$<=Wu_RdQ}-g_D~= z`DrK>WW&U8-(S9AY=m;&cb2@Jng&8b0qXqhC;DI-T+ zL7v83?x@3|vWb=STv$B9B&`%M$iU(!`1N~K3d62#7g(ur>51_W`h8Y@Kb})pRDa6< zacO)_&w6{@4PWHeM8ss)F!}cwfyh_{K}4_j1pizbsH^R`|8Z#)6&q3D2J7807E_u| zPF{QsTfFU|i&mH_&+ZTdb27&mT9o-LSUpOy4rN zPaXN^L)KU91uAsw}Lr+qRt)$ZR-8rJn8U&+$Y|M?hxI^~*A^T(B)JkwY) zEwR@h=v8&rH@uBKankO$?{CZe(U5Q`?n)&c_a1qNlm3rQS=K|j(*9^ElTdDnDCJS@ zk*`I5pIaX0=cd;B{MOmbQUX9{bMabUj>xl>bl!aGvL-x^?&d(fUE)(NZ^8N#QB{KWX6t}rTxk6{RK5Ckz?MED4R5z+MG;}zj_iGYvV%P6nqKvxz|Vr)^%@5*n{}Mh`h9z6VTVWt^Uzfl@MA87^!XT0)}%B z&`!I@*wkki2_Qjo2k6Enn%z=Iygz+GNDc~sc>iw0e5zuV#0S;zCC1SEGZq+)<+{7l$1i z=W_a`Pe;AC`YB?oe0oL8m_D#FEIy}vClN+g4savGL^r;6SvrI8w>CfZJKh0{8L4_g zz{}hO_OKg0^^npXkiFQ(b1=dm?@EKd1%U5p!T}T1!iin0%EQ=%cdQ~%yu<1c2bauk- zqxjcC3fNmkP^tj@JeMD9ak}iAA!xbj(u@8;S}7GN&dQcp+?M{*hc@W-PpW(TIk6!NO#PipuiMEmd{5)mf&zg)KO7-1tCC9)t6Ioo@9Fz(Buzku34I-%7 zu?Bli^KO&4v)3;=3Ml=};W{IVXQK2E9!j^)HL{xBT9k^}oWR@q1;toNM|s@ekq)8J zo?iww^v@iI;#aobxH)}QJ%V5|sl*;h@0}n33)%ID@US5^XjP?ohdH?FBQ{O8C9Z?l zTl*?-(=G`1CKy2~v>^=fu@$_;{4p(@N%axH-Nb_4^cw5K*w4wta{co{^olx0>?RkM z&F{N31S)Y4tm;%$f5=ZkdTg5ph$x7Y_5P2#+SyAKXzbrzh9Ebd$?{`sju8_5N)}R+ z8IDLveL=6>(-yNfxf1bXlHpQm{vlR7_b!nDW9R2>_v#~@-`ROY%G%;%}4C3 zZ|a#gG$vWSV6WR+&i!(t2DYosYq2M2GQ*bc?2 zP-yZ)TMjBASO_~|)xX!16FU<3hE31g#AaxtO(v#kuN0b*OVx9^d)__UhAmj-lO9<^ z#HM7`AfxNh$?GBS8Xz#08R65#u&Je4rD}jQ1Ut~$NLG#TrA|o zG$G-4p=sS2#=pJPe^k8PCCpkd9#sY8ijG7I?T)!~7qUvW_@gOfUzijJGYVn1q+v^? z%hYcXyE_1G3bYdU8(`hyAjGNM%7URF6rfccmRxbNY!)s7n5UGE`Re$h+g$IBLFtyM zHx{YNIE9q-{mix=#~Tp2-1F=xhYI$AswUso74X zE?^Tu(4NExv-oQ)$Z{yPVjwq7Wy`%Yq&L2K+BH{(LZv~!#6ePI0ZLLk>=Fz1W^8Xv zhLK4M8cU7a%9Q+P9#Mo_+TyurB`35h4LWEFC71_3E1hkrqVgYS7x9;!>MqrB+W4_x z{Dug!xmx_?ll^NMiv+9ns!loet#%t8b8LQ{Fp;7US)ygpDp5_}E(0R5{kR#VipD#d zibY~>PvZ-Eii~$dh(9Ld5~N7=%GjX(A+-z4De&>2CPHHzGk;GrAO6!6xT(gO7aIG# z6)>gbjyP$E#qoiTY7|EClDmi8pZ-#i!x$`Qeu`XF6>S)!w-!z}Mw>xnpN7M28;4Sl zqv4bT{;apy%vj|M>X^}Bv#sxY-=+|RlyflY&-X5Xnp=yy(d3-E^MZz8Kloe>{KTa_}zO;%=&iVKq{fp zdprAHM zi*+5tSmDUx(!y+Ghn!J~6}uYvtC5~BV$SJ-o`M=1h9;3AZ!lXMH7C%n{Td~N_zjGC za@)T;cUIUE8%N~&ctUM87clJ#dG{A;Sb*lDP!g{&E|QJckvV1-UTO}C_Ae`JWZ=n( zaiXMT6GY;UytEw}Mmdm0H3e!l2(}g*CSo0NVzM?2RnaB@RZ1+Wf5iNqy;(~PT$XsHD~oCZ}`!I5rmmRmOF9}&_W@WC1Ki;}%wTn9%OlJ)uL z7^>!#^)um9klt)04V0H8eB$IWy|B@e33LxXI4a~KpzaVS1=A17a@NxPk~h}6sN zy(qMvL4mhJt&L#cbEt*QZ?&zu+OeItdI;l8=zzk_+$k;!t=-Cd?Y*2GFYy>N)qr|P zy9TvHDS&BeZ6vBW1v2h2Xa{ppvDb4acK7V$0fzDK%i{&zTY=%&ei90ns@`UKPm47S zb=UiT5`G?0w};O~o*<@^0U7oC%$x)tSPurq@7dl~efM0kAHrcjb|aCg2W&U0z~+7D zaDd@2Yc;pXZ)3t=CN(P(prX*WB;hAs5kVCTZLJ_a#@qY{XsNzF@3+fgRKsc%U7{I& ztw=k#KL+05U1u(xa2Tx)){#Np+OZ~s(TQ$snTyozaO~0Ig(|_U7W*l1-tEuPRlX10 zm(@Dh{GRaEBEK0a3J4PxkZeMp35WFh!!dxi$$Lr>FQh2pQDn?Mm@=~HTiEi_CD$bYOr$T)LxIr~Uxq0K~mL>9)fjIJNH zOZ%zzqAunprQyUmz;=^yjhJAJY^;+?(h@7{Q-dNxEVUQRox~p`$)ah_-^Um(VK3{n z;pGbM@Nufb=ONJYYpU836mT4wtGaMYl8_qLB-p?XGI6dW|*fku$>%Jgf)=0s4;;(K8YV= zG^PQ8&^OQ9o%Meb>yMsmYc%$T1aZtP=~lU}5$rlc})!2^DkzV~tI0qeL1g9;$ zTUKN%)raQ^sGtnsuUYp#i7TN+tn;o<9Luw@p~l38VniR@=}3aT|6-NU6aRRIT1v=a zAjY*vRSMwYc7a*5h!1VBKGHa_YP|Mc;4Y<4vb2Bs6Bsi48^4@T`(XHuY}(PYf5t=+ zBzPMbf2XJFqND5H5W&AfkOnc=PJEw-a^n^LGljocVSXx0hK`L3k&w|VOK5ex*d7Us z+<(xxhu{)#1AV{8E<6p)pd&-V$_mP#W3ys`V{Me;SZq)Zb%td74T-ctayt56&d>6iHCEn?uXFEOJyy8i&h{t;Fp1+tWIa_uTMi)S*A;`cnoW7xG69`4FB z*pX(#RtU>NLED~Xk=(YL35VdLyd~pSl)Iaat5~5j#>C$wF0~b-Qv+&>0aQ=h(S{~i zoi{|p6iRMzY*0+anfzmjq-jVPI1-P5;BmHy@~vSIXramDQXu{g3(4!f?P0l=QusGm zTd;$*(EQp>=?}TkLMj;}GVvz!!Z0>&fm%Y@8zgI`BhJVysn{uEH58k?8(QlYJZ>wg zrBkI5I)Pw(M=_Jp=3fQcVBo$Tc?@37ftg1XLf+5#fk21-JKbvHb2A?Y^KI+y+r{B8 za7@fb-2YCX|H+mANuZo8-2W$mvNH4h*KV1Wh53K8TW;0eblw_E@;lXB+6?@*ji-iP z_dSB#Otv|{)tsaJyp?E)FL0YQN||d8vQYdEm$QYW@O6V7lXA8~W&ybtxs5RaEiUW~UUO1_4 zgLQN(EuyUk4f}P3w}#8FiWy&F(BdYVSmK$ZT3CjN{=QG!2~1xPZZC>Dle%eUMRMfE z#30%?ju3ot<4+j2O4H4C!6D>uVix!xB2{j$QGD0;vH zIz2!1Uj%piK6&}6MWsm$;$p{Zh++!PqayvM2i0(tt^L=YA?bWHP|d>IgkBj>Ag(cx zW=c;zGbQx!KO()P2~Y5uy1fEC-~Y@Cc6Yxtv$3G?_?g?97&CY&|HR}$E!*4r+pylC z-nFeUErhcmTF*552_ZN^5gn~Jtf+!zrPgqLu1t=QOUaor045fwOx+a;m~r|aVd0(zj}&BSK()rLWbmZVdDs8jl8N~9~? zAbHn^(t;}JUoBJ)nm`t4-?SsvdYbIr+B5WZ(sjR?^$HbASOkl4U6x-~p9Y$cfIxZ_ zzy0cM`%A9;*OuhnZl$FBM_h{J;l>@s;IFjJF7Kz;j|23e$>c=v^O>Bef9G_1IsDOX zA{h%Lqj#pEz;_fj6g=gjKOj?@>;`(jh+mD+@B3zl($u1L+s^dyU>c`OV}B=$T^I=8 z5Iq!?6f|L#pIbbtbB+mH^-qJoc&_G+{<~jyMR!Hf#F7NR?)l-!{)I@2-452EySw#U zb@4I5w9mhRK~ul0pCyF}wExXJ^%B#}igu7%!7lN+U>m2mM`}Bm5Z=_~C1U)-Uphyq zug#PRj`6bHBQmz=>PLMHJ^e42J(CN=Fzu*Y6f9cjp!C%rj6aDgx%8_IbS5AiJWJsw zM(8Qj%5jUv5Mi@XyT+wEC`M&O>X%lgjTZiHB3eCD-!r?A(Bwo^EqdYHFWKSt53XEU zD@GdU8O{j8wVSwfe2}SpiVmawy{WxpqZ&;e{zGB#XpbvSjkwROIE>X>Mi`H4j5n z58#>KN_a>AtYfjjKi=EQhsjYzF?Z}=F{XMl!G}3?gLv}3#DQ=q{PpbT^*U8LQh-bT z+f`;t4LE&&%68oqjC;svgpW;wvuQki`UBT@TPUT}c;vWyu^5G6Sh;7jGweqzs5j(AKDsIRj|jGFEql_HpFD zIQAuD1r9V=+%D!ow@I{YRJmk$*v8^CJHW^iJ1wf`zUfJb7M_@W07Y>5+0BgTAW@l@ zJ3ImLi4hOkN}@^e09rJGwG&Bn2f>wiwrN7Sio+aj!tns;MP25c6m3 zH+ojMy>GBR1%$OS&rU*QH5QR{)C8$HaM*EGm(#YQRbgAz>lc4+CN*8AO+3DMKOi&i zF0nVJlK;4oQcXejeML=YVE$=8PB84*LHSlK$QS`SbhP$JsC&7u)}(i6FlrTOD^<1B zy5Hu_%e6Y%yDH83Dgq@jMv(hi`+uH;sB>Dv88Zy;+H(8i9(3HE6j*+2pd$`CUSpuI zJII$1W&09ZL_XO2Uk=GFdY-6S3@?V5cRHd6Gp}z<55ifLVwh^yf)vy00v>rPbu;p|edsP*a@f&(wICvmCDm03IM)mWvf=2qblqRqVz6i1Z2Nq6| z`R}1Z217lh%Jf8C@wqw)S9HLDRdRJdBQ#%mT6v5TbP;Y6!xH^1OBlw#V*G&Dqi`Tk&!;11T*_;ulq?b#ftyuMRd`6uC&G5vtp{_vsQ>dq9IGSJP%q5fK? z_1(CgL`$&$YcmXh#PVd;&#EUVB{i6$c3UZh4|Gvj2(DZhRsfQ1ZutV*0H)?z^vl+3)j^+HJJN zhI@?`P4a(rfUvp2s|ai|>c5=uKku$`+5@`ge0!L1fKNtXf3^CkWSqS}A0PN$>GBqv@jZUu8vIfv+ z+O*C?AmJJo)sCza;YDh5#l~g(DnjMzQ?x6s8aevGGVp4J(n_eJzK5P7S{Ef+)BPQJ z-V!@ARKc@-ffXhY4!_ykd>i5|0b(4CQl~ZZgRnB)%$O9`iO{LuiE{SoQ?Tzk;@(^J z*&~}cpu$PAFn8_*E9ANObafu3SEDsDS9)N$R>z>=q3Z#+)938tx*s0GzuAzyou5w7 z7S0JuiBXT_JI8LGN2oIu;?@R`T$h{`F1xP;s^2uYZY;k#+Kt| zS9JS={&i6|tVaz8YK^syrB?_K4yAc`XL-{-B6w%Yx*XBJ9AL<{#^l3T*DW@eL-bm-kpqg!ro{a5`aAaI@iSwk1b z8m|1BE$Gd%*w75J?ob#fvlA%t^U+%JT{Q5N2(j_Sz=X1PC?67<&`=eY~u0!Ggm`y#GceGvQxx>X< z6a@mn?A-Tk3wA%Z?D+^>87mN$x?lha^mMBzVa!q_&Lnfj@L8t~e}up9#{3|qWR+rm z@CVOYn*0g7tX#(pjl3k9*?|Tux7$EjwDa(OD#k^H@9Y*+%4g{q`?2U~D0Ss`hgJH= zYys9qX1ap|#H4duWGqaU{yiNOvb%g8&24&)6BZgP|2<~LRj!nayhz@;l&lUdhjzB? zi`-g9#n?yZx7(f02PxjZ)r{X}3c&}I5;0Y+m1KOoMDR%mc-M)!o94ZI{^DeObP5N` z;$am_4+ZD>`VYpVextY-eT^Oo%u>PzmU;sQoSD$)!9y&wHWl=hSk%xaFkrnR{+7Rq zAu&{$)>?fh2FzGR23uX{$cBk33}HuqZ5C?qUl_wDg(^jo&0hMYHy(l_!;PubWH1CP zWTG$$OvfuYr7Kj`)SXvry(c0-y^9%9c<0qxF3sh^{C?|Icj#$sT&R+31Z2VQ>Gyi+ zAzvdV6AjD%blwRfK|&CTj+Xeo)RN4Dl6XRS{U37!4ky_oP)Su`pL<`cGpu$VIUAOa z-VnBRHy>*Y$rhE_RZMS%axR1wGiAp&iov%>>@Hl}GD~HSTVQ>B^qHhwNmmwxJN6X7 z?b|T#*VJ$EA<_k^MTgcs;9-4?BW1NU^w5VRtgav2q<#Xoj@xf zrT?n2MU8Z!JYL)PTIW2W!LxlBlAuqniGJzpS!jc_w!ODpg z_q11MtxZrH*P>AcWdoLEx;5qX@QCv*u$K52FYNgk`R+$HZ_fLCYs!oOO-4GQp6n9^ z5`t+$`Hie9cx?|q8`Df8ZNgm(oo&SkFxit6vXVM_fMz*`QbeHdFL|@`>M#qN;$sn$ z!Kc&2)%dYtwf8$hLwqc1rF7uk_76ujF9`}BxOl?j(k!RWkwsc<&Ky5MS9_dVV**2R zB`+5;DM^>4hek2vI*~tA0BgNKsh@N=)mHv@=+1c5LkV~2JxQ7M9*8HSx4&)~sjADa z((4|VQ*pk4R06$wPkymqo2vGe^4oKy)J75uTBIBvbd!g`)~W*|1u{1;IKmhV%yq?i zY(D8A(v!mT?*A9QfbeAq!UqIr2MdqYP7S==Datn`?HKDVeJmDu*CQ~&RuI8c@vN8ll5Hg z+B`T@5~p>|THNfDzwb;N`|`Y0)_3k&`~XS&b0qmQxS?MXXFsMI8?(-js`69R;HZP3 zvPNx;m%6ia3FULwLInhhJH{uLoG!{#WaPW8H20tug0bq{51`E+R;R?Ct5@ zZPI=i0SVtdexI4TIQ~Enrb_(yp-UtlS!aq1bc`41%ZM?ylj=_@3s(tetRu49FaSqa z7qAmlT@Tz0Xy87eFaI|*U%oy#R^;g-W;Aj4yBmep44L}dy3rWm7lDfKHrzEGmOq#k z3rNMvJ(eEWxnjhTWz6{J!Q}0oQh7L68S+ZKOJx9z?9?*h%=`CroL?aOOs3aAjSl$h zQD~(Lyjk$~156}X*&3|cIO2?J)wxyIvcB$v!cF-vOZUR?4SKWf&LxPqob^!;n`+&k zY|TM!f8##h=#Uw`k{T&-LG2{w;bXZ_F15qjwX53=E!nV`DFd?1yE6=(fA`PduYk*| zH_xBv??f9XhgHamnOdpiUYK9^uISgC1nFJC@VJZd=C z8Vm|HSaBuI)3t7EvcCLjF*@`w+u4$S`3~6f6vP$kJx%-D+S^DFG*U;O{6KHimrc-m z)IosfKCmhUgNMt+z1$|!+bh3r+>qyA2YUfsf;3`I(h9#xL=R8z_Lxa6|;92 zuyvJEn}sh|E74E7--Sa~UH%cM&)Do#rF~`|T+^U%&X6}v4ql`+G(me_*60!Mo(gRB zEAAbm@C}4ss5?u81jx;mYUP`wNA(?`-z~#9y-VxBw<(?aZ)L#7zg$I3Ck;N?xTtR? z1jDQW3WoH{!S3Q$!6SVC4{vW76vq~|3*+t%AvnQh26wmM?!kfvcMYzA0D(YocXtaO zB)Dq`5ZvAE5}0#N-uK+9@BaBt6;;%9Pxq{6t+k&ey?bw#VCfIkgE`n%E_mHrul*!) zdKXBgupNnU)O|Uqi)b*mB?^J9E!u~)9f4EJj;81Jp|mSl(7C!?f8*;TjDEaf zopp~qZCq6PvM5*8n)sLK=0iL!*vuXx_yd!2Oa65((Sdn_wcf=gOjYoWL9xr1+Om14 zg^!jZOYA7o2q>R+_5wpFlt>DW_j8FXOt1@sG8(Ldh}YhgQkamb^Tb1ccAs-duuMCcdt;=^8VQ4a_PvjO@%b3A8VyEi-?O5$Isbr~E4zBs6TpwP#3BPHb2on}bU;fp6Ht#-60 z>D({8zesoqc3x1;zc{^WXk;WND}{kCA!fl}j|`3VMo{0bFw)86;pHkX(kqXe)8=nP z@Pps=7rwpR@iK*-j85XStGhgsiZk@C4B76Y7`$MMyG8mXW@+2eKp#zAzr6WH6|%xl4^Sw zUUdgAIQtdrQR7cT?}sYBv{OwL-H>0VRrkzk|Z^c{H$+ujT^ zM-29o)iC*wo7S&aO+m(TCWy+PSsnybQIeL+Ln&837`dnwL9vU`>bSUcik|LDUi~6n zkQbc#9xE0SnQX^yZY;L`X-Xk!HL=6c4an4Iah?$LaJv7?<_op*MAvFZq0)fh$aRkk zZ$D?4*eea%C{5Mj@obax7$ZvomA#C)>z8RG3SH(|mEZl=T6HjdjgmxA`P@gi%fIcR zZDFXisThv+g|La<=JSg;lqh%jR+bI((PYeb5Qwpjtyv#YBKZW8mq6!Dz!+gz%BTw@-*7y-$)&ZW-PmRf9P+fL={Y%NpY;+vU08UEuM++?f z%vdEk+K8$-QsiK6`KDpoD@f`o?T&Tk5zlGtH}4W2FwWAg`eeDwS=1|i(u?#aJ{9^& z3|d%7EJS2AJ9%+mFU&ULpU-deTcV1$)R4al!8O&fIU;XYak}%<63G;``q9Q06!iYx z49ljH*aK^mtF1Dhn1;=Cb=XOH#2m7derz7226DM79h8S)Ns@El++AgpMOn3qgg&mr zM;SJsTI3q?vi*(PP1JcUa0Wry$r~~~%gwI`^rLCiVE!e7&}`BE?*y?n;7U!^x($yi z=6pLe$VXU>u4v8B+7=8Kur87mI6mTB2hn=!C5`1ZOnoza|An4jQ@5y;NXiu~%yMIH ze;eDg9N*biOgK&}G`x~tuCGf%Qc5DLBPGD|qpO4y4t)7O6mwDn+IUz1c$tu7=J^?0 z(~-HKAC}-@oJceGE*kArZ)a@yWJ{w(?VzhX22H3hri3RJ8vPz}LL>ax*K8B* zv`Lml-E@XCD(1_j0a>;E&z}u^rD5{GQc87Km@VDjBGBljxCu-~xhj2v(j~6RHn43Z zH|LI)Y_v5?%2IB?lLxk>x!IZ9)=>3lY$z~PS~p9e12 zNO{GYaRy_6rGT8L;vwy&J~$zojmkksuD$E6q2tUXO2BkIY=N6Y( zkOY!2LS8Alw|ZZosd&X8LSGOzP#B(Ke(~%MhE=QsvODIy0jgWs*>{W^meMUYKA~Tz zqZ%wE!{*vLui^Tw9ReA#Wjs{~3)6B>BpmreqOXLe7K~l?YcR}Le!EbBoYwfpy^bIn zwZv0NMf5R4RuV{vmKMYnsp}?@&X2Rnt^Kj3gS+ajGI9Lvi;#J16FN>iF=zaXlj_pk zSjlBurREZLbjM!^m>Hq2Ng(<%!xz|Ys*e-1FjD1}8p)H1q znBnQu1)E`P35>`pMi$y>)KVu%ld%j^4QeNzidyLi&MpHM-V0Uo>xSE8PVN|Uw8lY^ z5H(8Udx>B1M!Rxpkew9XQfE}9UrXokpAK^@)DxaBTtZXjO9u-xmZ~~*s`Lhh-82>B zVSm6vC6f$Op&vdEB!VPAIY%pb$D}IvV{~J=D2)6IX~mHEXjb~V2L1jua{2D*r#Bb* zp3VV1P48qrK29^+xXYmwl?^~usQMKQ&8L&OgRUK&r=z|)sUN9Tp=|gwlRgjMPIZfj ze&No>tImhI=djqSSV}L0(w@K z>yK)!`WV)nvys`-KC8&muk zi#vfCvx^iLtv8Y@tk%txj)8t4kGr^B-l(=lbOq==T9qvqa49(M4CA!<9M zZoYe=cQF7@)6Iv@ee??Brte!(=E`Lud!&t}Cf1vr>?PIx(E|w=neFodr^oq ze4$R!Eva=OFXesxMCS=>CH;pv)5eGSF(+Doe0IPhZk(b!cGQ}rwO-k20idP8+8BqF zK(=f)l%lYVmynOm?6}xtEx?$2E{VmkGC_?D80_r~^~G+{vb_FE(Oed7o<5+{qqn}! zs9ZCU!Efa~qcrTj+jQp3NVv}Q#V#}R&}PHQ<$w#r16=+!$&0+;N!q+m_tRc=@D}f+ z_Sd8IF&$MledEp&=~UJd2UEZAnoMHSlT&WTJ}v@?fWC^Dqf_l71Q{{KOeGCgIPbLr zP7(4669Sv6v9O3CaC?%E2Wgwz$9e+QgPo8$hoI#y5}%#k;a6gxJfcGfUlFm3T<%IC z6Svt`W zzTcghm>g)-xjQI}X^ES$IPyQMl};{b^alI9Rmy5ANSihPt6hK-Zn55+g@4{l9wI(N zN0BoU8Abc(3WAbNZsG1WR8DWjBbA}Fb$=bE7p8Huj_+>7JY(>#CxcX*>tc~@nuGkY z=6on>esDfoY~i6p`*-`}sj2bQ{s6ME{XKPs_1|yV16lu{-m)*z?Ef_1jlD3ee#)pH z7BITt%1uXAODAV;K<8*~VC)N?BqB;8xJ+unPs;e2bqnyL?0(-u4obye~?Jq9jx!I#CO}(dW7)dm%<3{qzGB3 zA7USTS6!3B53*~&B6OdDUDDrpms6*RG;x{-0sEB>_ItaB0wA7t?gejSQYi2w*0&tx{a z!?N6o2q%wK#0X!X4xnnc9a$c+4k4reHS-fK5Snj2jAv5eBBYiKQW5fnD18_Z-!mWe z@Pk)=F#Nt+%-k5ZlSe)sEruRfRtH0S4>~`ps-6IMU9)mNrCJ&>2O$hrG~BB&LB3Qx zv2w;2R=*g11$c*2h84fOY5+tbD4!XXz?`#8G7`DCTKBW;nkAY}P3$!x6Qxk)qw&r; zw|nyL6719xK0f_|>^pCRQFYn_2hWM2G)z(U$qw)2mA1;P%VP534L6RP?}hF*wkRZ% z8UNA6B8#B=hFIcdY3WNq%oN_f+`7FV`*9L*0fA~TE6jOGc?Qv(F*WGMERH`hyke^=dG6hNWyFp-;aPy1bup#H zL$dB8@;hW19n?;m-ws*URbDg$ojxBgg&qsu`Fh4(Bv8PLCI=dps(7H;?=bvO!cJ~7 z2teI%nEqw0+vI47u`|b4E^%FMEukHqJG5J+`z}Gn#30}e#{M^6St~}TjHwdeUW62} zcCfjf$I9$WPc4{h@186%nxrlf{OqqnalR{iTH$DN#=2ld4O=CtHn5lj6#od#AwABL z#At+Rtb*Y3+@xyCP%cO`FcnGi9TT+ucr;wot&WF*fZG7-$U^R#vl}T=99a>(+@W}w zijPt9=&-{fj$9EhnTOWV?Oc}MD12Gk%=%FiPl+SqfKu#IAu8!*?@Eo4(aamKx>%96 zwQX~bD$phhpGs{n+bpG+t=N7oAXlHDkYJ$Eg5+ zCkq>Uxb_Y@Xq@^oEb*+Sl$6vVf}&fX@Ob&e^02HA9N#2#Jq_1UXh z*&3^qC>hcUl3;8NA$JS;+r8nKQc9z>!Z!_=AVD~?h-qdOqQ-tRJ6KIM)3(ky@!Y<>)Qa%pq8$dv4=1t03#-$PO@hnQ&?60Q%Q_(V zYDXLz%7vpvk!ie=$m?MB##-mds68f`5fDMd^IwL!khKS}S&ec`CScIKcbIr#SyojB zQS#DlDNHE_)9~h#*TY%e?uaU8pbEK-W}Sb5_tqdf*#N>cITR=HM5CCkGa({?*nr@z z8XDFIl&b^HaaDr$cJjihH2OA6>S!g?p*SI_0@XLrZG&BHGq#bsLPa*<_5oKvYS2g% znDIL`yRlqG(&e|q;ceLQN7ZOERs`j3*wGl!$U9&K|9m=a@QtIqXAPR}<)Zk>k z@#ODyDs>62CwgKh4B^HT!ZhX=Cd@=zyty2kK+2bn=_xSRUpIFvzqIM^#qm}NmDvhST1Uf;wuEgP2M7aZPm9*C(B; zh48I&QIHeEbOg+mDO7=@d*sOp@=)>3w!a1e6@2S9<36y{=gb&96m)O6kwR}4QJR7w zRFaux&r%ox3P+CbCx8WKZ3yLUYmXap@U180pvjXQipD}o)F>?Cks%0(nL*@Wh>5uh z=lUc2Z11|t)j$Ts0n`d+XAMe1e!@I3y$@$;qqdHAlL2rs$uyDome3f4=PA;gBJ~!# zJ~(pp+X?hE9LcUsnZ7JqB<=T5hIZ%iHH%MR&Q*FrKzZ++MTIk&ski%8skTVSg~k<7 zW}X*ygmA)&jfP)8)+LUR$LYt!%l5K4Y9LO)X^Rz;MiH^`#BJmF7x94PUOA7+l%M@ui1~$}-pjK5beYs2nWz_jpjr5}Ql4MSrq<2@m#i3&2-*kzP z6jwPjDOFpkTeH^TVWWv_NX*n$cEW|NdtsyB5?VH3&hl>M)mF9EA!{9`L%JuqQ~kWJ z;o`q6?Mau-azRGr!{|pkDSb!bt2FQuV~0Nrp1-b;hE&S zZdDQO=7EyUqOMYX-39z(jL30W*!uTD;0CVB0f;8MiK zT_BS?a5>*?JA*e}8Jdn*84A6p5)xoce;vSU?;~E(Ye~P)5cmsQ?H1bRhvF=8b!@Ap zxwGk(J&uGKiR|xvmUvw{7;{HP)xNXlf$jCoU6vM(;Kz;XvY;qu6=});2u7LP;;ez0 z>+{uAjQq}Dl>l?F7K)El05(Yq^2sWG7S#X|?PQ$S06Mw+iIGd5)o|uVB`u2)$9RsPGh$wrkRnkUT)WWj5nOMUu+}zo zTUbuV$-UVjVtq#-IUSLqgC8p|nyD$1oCxDJi-N-@E7Pj=nu5iy+hBPz(pL7$oiPxC zV5-QfWYWe&n3N*mhy58zap`-bfEu~Q9~um{N-s`kBJ>pyyuULt|1j^C=0K{63loJu zAH}R{br_N^o@JU!;7qD78M7G^po*|7cQMSF9d9yCJ8P-woMt@Me6cV zfAT8PHJ#n==G7Q@*RJO6>5$7hAl-!cxLyj8EB1+FOUL1gODxMbNSb6qn=KE#plU=G z7LJx_kAQ`yeg$j2J_@KkrkL(8v<$sts0n>P+0>{ z9j&NXJ@FS+GvJJx2sZ6nz%{MeQSj7_xBKhq_E-V}%``82Ts|PUWUCSHo(6A-eb{2c zg|TO9o+~&JBe$GQTwt5z+N*TM8#cUj6GKvxbn#pNDHgI`1H(34pi@IXDaLr`K0x66 zk&jWLf-Kb(U`kC;^_9UmrKUtm$%`XroHwDdzGk7m6ektKoAIO6Zf|g|8Npl}vR24X zKe@Qgcg?V&C;E!3rx?Bc2wyBc!YEYSSp*1BUsa)1W+GR8A>ML)JDP8zxDA{14X9K< z_eC<_0<(k4xw{PIOo*sMV*>3h;RFd+%fMs zb0bP`U$VYB$rf4hElyCy2lSSw7^P1e0c>CO@y;a5-p4bjT*U_O|4v)Cv`{ zPAmE|M^!Mz+DA)hklX8#@z#xx$)XSCFUQTF-ix+=X-GATto?-q;DB={580#f{#ku0jSC_B={ z>u&O(`-}-fZ)DB(`ilxXITa&z{WYb!#RP2%yw;SnS^VnGyu)m`>i)B3?%fpMyHJM@W~@<;j?Sc&OWR-TrF`~Aar+blc5iYm z`F<*w8WDWs9sT@)4exE>qNzOtX(*$hcH&WdH3?v<*K80`ZpY06j5|@{tFomXf^{=b z*H^=Gr~8hgP1N@@r*2!G4yOk?I@N02m2t0BZ}=;Ek%fLjxej5~wcq9A@)Sa$;J2?{ zpb7Ba;;ye$Zv4B(da9hBUJqbl0sdWMvHz~8ejnxKWs)(rHgz;30kZ#oW#IpFS@ROD z$NlKKvF}>t0f%X}h~^#m?~#)-&628pK2SJg;n$9a*=bAyQ3pig>d>KzxH#N<6NN6d6T4P9dQ3?mUzwg z&NvVj%d33u=NA{K4;>*rugmE_&TiXc(u-Ao)xFy>q3I0IBQxlyHZB@Oey^Qk;}=pD zFUvR4)v{0L&iI+PUD%Zj&-prr$vZZ5o?<Qu4=()a*B6lH^k`TeLlxb&7QUz zhe&^r?n0H3onA!-T_RCZE%KeaPWc%*(WqLGPNgdRj(zH!6_M8UtL#XJ(%oR2o%NrV z$=oY(KpY*(Aj}g-3lfj-ab@aNS@|=ir?4l1A%-^*^A`%Sx=og0oj(xG&C)Jc)<)yW zq+d0qxu|k@tD5i*jo)%Ca&H)f^=kB-Pz+X|EZagwj|vwrY%j`tO;+4H^6u|gtaRGF zb?=83NiNJ4aJqC6#6J-TYBN4R;#Q2x${2SNmT%A!G|wW z;#;%~U0+5mykJ5oQiw8R0FOd;yj%Xv&kYEBfRrxdw$;90quYlr8!?O@#0t_me;f^0UuLGFj_EKfFQ&Ch|n7_WK4)V2sTXKORSjSxVUee7> zuf8lPwJL4-EH$;GF|-nOv~cV#EU$-^amrPGz%hg8)DE7r>SMK?{ftgU5g$kGD( zEKj#=nn{5#?S}Xw?8e`QS_so_;D$#d=R+ zXSkTgoyOU=cjawFTQlaKYVhhnrInRvyK9l=0=(_7?;>?|ktXREDr68{Aj7RGuehX- zVElwX79>Xa(&=L4V=Z-~8|#+sc=7RWgS|D$JAT!%Q_-*7LeP)rL`#0tP*7x?EJf7A zf8=M?w74Sz2i>}QkJe{Alpq64NIzcEwd35U^XYGt2>c8w+^{$2FGO&cGI(0y`MG0O z$BO7$TK+@0L;~7Mso}Oc?syk{82&GoDUV3JV{obTleDR<&PWf6(glX?Q8rR}biq65Lql9418$xh@L`zix%w%@B;y?;1xGtKBO z=niUM{OZ=e-{jn6%!G1>_!{_{VtnWg;lV?-b#MmXS6i$8?3>a}%?gPlYu3im?!}+Q z?_EsewAEGpcSV?H4$y(_=d>@E>zKKa{6E_S#(q`J^S6jgWG%(T3D+y6XkfBnUeR*<#I6|D&;aneAQd z{US8F;ZLti6hH``Dq6cARj`ZiD$Q+F8?v``qBAwC63*@!hquupClcS;>GF;?KFpro z)k(D1BAG{ZQszj*o8tk-({Ur^{YLG#9;GT6)v_gv-cAG`^T2y%W(rA#aT6LP-C|9R z#$O2ay-0bh!_{)_G>MUYybinY=GqHWaRjg+~ggPEM($Ho{G=)y(+!uhN6>8yl~D zH_>hj3=mY9hLtBwF1Qd#vvP+FMad{5n6IPET@ zwpKRaO@$+Tw5e?+6Q}nGDVw-=P>|FTdGc0=Ai4U_AB?5-j`(>a$iP(g>c-hx`Ol$I zspL&T=Ser}-$-NyyEtXSuilq6CHRwbUa~``sQ^*$zmA$6c->&I@lCYG1qpbnBX=Dq z8B*WN$BVl`WM$Hco2O-7mtL}Ui!9xyeey`9gd&Pil;8aEVjQj`St5%}a7Q($7p&y9 z4;!Zt0Hf-h6-=^d5l9l7PEv6w^ma(@m5%f!-qB?uJy3r`FHHaaM`?YCxvdOBfqQRZ4w61d-qt)XBG% zB&z!+5UVVh8Ku*N*d|fKeVJ4*t*W#({p_RbGiTdEdPKaDwlLSouoV!K88Q@nzSnnP zDvZl;09duDb5s}b&6YuS>bFlp>0frj0cg0hOy@tDp zY82oS^5Fv52Xya8Y*f(t;i2`D%4eQP%-O6-+KYK2IBXSPhVLiDixUO$c5>CXC3+ii z`soD{Z&m`wY}e!EA=qA~k|0)XUQHq14}CZbR_5sEI8a1IqvgOfAafPg2U8)J4EvEHbg~{?n{TE z(JN=0q2N|dhM|&8T_PeN(zMvzi>QREI1Q{4z>Q>?!v%M85CHh9I?_^HWcYxwRdrIb zby7qynW(xDj3sAs3Sy2%?_vp>U@ksvh$;nr1g|n5%V>Ycct@l@4Es7 zzM`6!{1A;~vV|RC-;!muU!2mULV_XKR~m>4N;5`ODi+Cd*XX1Sp?5wL>7~EMq-XL*~bG*k3{HUV{cD$OH0|@6Op8pQ0gMxh!du~aO>TWBLtTA72c8^VmPHj zMPbI!5YTUC1g4_VtPwhJd{QE;m~ISRRWe3Qx~34S72qs5=cvoBB6BqRjEOQOGVD&< zRmibY3Jsp0%F&n|ZEgFhC%)5pJHE>8rdri6@Dfk!BWyt~T6O&tZu9W1HA|frhG+&BdOdgcZgiTK<=lD7}a~Xw9#*a8}Qv1i=k)PgtADI`4 zfOvt2>udW{H<7X{phLk^{0m10#7w+GF8RKWPQD=VMp`jM(|jD;Y^11DUS^`)1$mn!olEg;>>q9vd6a7MYw&wI;j_5U|)sEeJf17guIcIazmsgzFU>TrBCzrXYf^`V=}x*8qzIWs1|0Vv^ypgZ#naX_o40B z~^h9qWQLFeLGR?QYcI6Pm*gYRk-rIp6xtql?l_*^->s#KTn;oKV~ddP4(tIz~L`P z&agVW72J9v&nS9zP=`};WD(jpR7zIfj9*2aZ;baNV#q_mCqi_i^alXx z?^tC-5t>d}*~}IgBkV0{A%_Zp?j(^;bv5owoP&P6$vROtoLzvebJt`@4UJ3`-S++$ zwyNh&c4S3cfyq96r_^yb0&g~V15Y}1rPery&0e#~|8SjPK;7@Z{O$_7+P*uIfh;3W z&g;lUz7O#Uc+G^s7`P}gFRZ6bFsZ#^LS-&F9cC4m z7du30pH(p_o(j)d#_3r}kw$nor^6_HodqpFD>cEtT%ORhPvQ~o0cWM-Aly2q*T^&I z%KcF|yh(_BYayZ4zq$M(bX~g91?lDBuf-pb~opiIPFTi*h0<+)$AwpSWu0_M&}(eE~(wE8r*IUSiAm z%^ms_4)?oa2Y1evKq~$DPRs{(QZ4+6l2z53BuCMvcbrS=%Bhy2em$ zLgMi7xTO>Y`j;+WglVwEpeYs6*F!b;i=j;;P_uo=bzgP(#R;_;h-m^(PY0ok%SyXw z)S&aKHU?`aI~V%3Lm?<1w`(9nPODhW3+Zb&TCsT$E~3cy8x1Y=2;`+y*$DrYjNT&3 zz!Y_if8Kj^g>=-~9Z8BP{+3e0(4iu!3wX+9M}~L#g%fUD<-}AV&$)+Kr=-v(44s8nljKS#;I~0S@3>oLB{To%kx_{D{7AH z7tlO(Z>~EE-r^xHuAe1O?Ovw6fmDs5Q~$TGK6&78uVmx=XYB;e|H}ht&i|(e(9N3j zL-XC}Ez`=oy7|AR<2;rOqKj(fwsAt2IT5tlhM>JI&OTI#_E8vX9z@|vrq!}|WTUhu zLzx@2u~XPPJFh3%wBUP@&=^y63G6SrbKIOH`SBuG#qtjF4}7`$RPX(`c;5~N5%rP( zn!CxOfoQg0-=}Ed*Ofm8KS9&soUF+oQs4$iB`$X&GI9=TisJygUzy=Ia4gEon1T*e?%T|%Fc zJ1;sb-Coq@xa|k#X>JiOvqGoE_h?oYZMVGWeU0k0$h(bgt_8GaoxNzBD$4aD^Dphm zeMj8e1jX>aCfSQax&UlZ)x0B~=Cl9uJqHx>zJ|%CRbwISAmls1K9bfAB)m6CtLK?{ z>s})I9Vg<%bRz+3GtoV!?lrPhKM7u#{E+<5LE@1yVH_^m$L06%>N0kDZj<5r`eJ97 z+9Lq7OM5*gIa2dN1MH0wb!tCbou&^8M=y2NZ?-FD*;hgx--TO^V;W(7LQ-6s%1C|6VcG;5;o?1Vg34ftf!yW`Z2($r; zHqn1T+e675Z`y_*fyukomiMZAlh#RKxVjMP`s$|ey&j)AuI*{@Lq|aJ+)NHM!|h%W z_fN*0oI~^XNtTVdQ)pEmRf@3jQO-<04Y;LJPGC{Te$BS^4=j;K3jc*O^k7yIb*>sI zh{rLAhIXt^_@cW|SM_fD*ATsWwWRdMk~L>5kdWLBzb)U@&g%r$)}?ikJu2FQ1bg*u z-GP>9F5>q^y*t4;oIsy^o%$-0HXJyNk~f)_&50d(y$HkwCV0Ml>oSVaPAP;)1~W^N zib@F^{5|38wa)BI(^*ptqde4h)k&r*v3&~!WEN>WTi7+JbCKKlOyI2d4d1vey?&{z zzIK~w@-HMfQH_`rX%Ac?TSr(x;_&(?obYz^7T=#BTQ7+r{Z^?xReJ4PCd(<^v{@bF40jmY#E*v`k=1A&kY4lBpM-eN$c)3i#oLcv=8=%hmzP_B92JIH z|G?{Sl8dm*2M7V%OltYGE-tO( z1W%bi!1g0XDXQi@#Lr;H(@wBd-GJ7B;6Ou{BQo;>Ph&3++*e%LK=t8{)jl*gt3DMa z{B~oJha2upFiQu0U&42AB3L3v*7ua=;=KoZJCg;Qeez6J+3MBk|k#pJQb4$|I( z@I>~6(J-8z2*u`1e@x@fL;a^fkOz;EtvXp5zRQf8vBF4}YfW;rO(hK#_ z@yzQmNRxe3)+C{Uq3})4=U7Oum}J$zdn-L!$rNwffv37>ntI+@f`{gv$H-^ry90 zXP0xcL@*KYWE!UdTnx8u5YOOn%AiKaAIR*kAj-GM3<# z-BvBmcf$r3lnvk5mlBj8UalW?M4e`M?YzOfXM0eq>w!ZFP*S!jeJNqSgnY{x&CHKK zsMabSql2x=}(I@_9By%7BPLNW_q zXWIJB*+sCga2e6Bln6tS>8O5v?sY%;(r|*rg5%r1boelz_8qN&Ps_UwFMOq#8PCDa ze+4<+HZOLt77x0UF<=d}EEvqBhKpdBiKZ*(?~p0r8=zfT# zgN!Yvfva8u`P$+qQ%ZNoP_MWmKe&bjqJuw%itZijvl zx)4;zFpL?9f`JqLs@pHpovHg`4~YO*Wo*BjD?(*tx4BAI*A#a_LY{#>y9Vy+^|`9b zFc77C|4@mv@;kg*GF11hS{}+Kb`w>YI!TJVi2L30$m!g%at-ARTayoLc0cfPW=c?M zT6rPu9$%i$CHVk`)F5DFn}`NAs^8o1n-Y+KUDh}{6bgn`XS2)<-!(Zby2V^bM%zB0 z3;hM0MXm#;cKO5OmKhdwAtZo?KxY)RGxm?Hcy)cz4ami-K0G7s^;13@3hO|En`RH0 zHjQB$c!dkTfgLxr{6(HIw*tD@KyfZvd{bNNFvP*SD9Qm1MQ{2WDYo1S0t1A!D1@I% zM`UjG#k`>+zOFdD(8-91LPV2T=#T1`{VfBx<*P1cG;Nq9msuc{rAKeYs zJ=Q^~p`B8}XN0YG%j~m8TmykZreAk0J^a+%s=<(;;LhkeJ|C1wx2K*gd+H*5qKe-g zlmBt^t1@eEhywNyaA@#G^m}^t0^GhMa?T7A5BXA>W6@3DX<=CSk53*^|g9vcWQq4pnt=m~_7MSHBuby1FY z(zKj`3&$r5KWLyHUif#>C^f2Va5i5bEqCjCvgf`T)x=Y_diAOZqyOh?O&$9B>f#kL zT=lFY3 z>OVFzR&ld6W>PRPHD;1Eers+ZY~xCz{kuG42LMSpxPZC{OiDJ6kDD5kFh73F-q_la z09~&yz+ZZVuJ8Cm2h>DXiNm)JKPK1O>#n{#H@p>^=M+xPp zTL3_pYRDT}7#lf~0G?iCMPL%QdAu#)X(wfb$8D3DL>@ms{*nX9--jM?{m#q*?Ee&w z|33)+FM)x-v;Rk|PXYp;(*FM`AmI56k3xea1pcws+J7M-3-AvKpI#PL`kxZA{5Iy( zF_46RPqcls+kYV;+p_@AI%IpQ@}DFWvbMHybkJsfKF#`kg7q2B)Bf8^2&})&{rK-$ z$6f;;rT<|Y<~{}kVA3&$1eZ8cs^)Qa{X<5CXhpM zK8w%!e1h}Y98YDu5(3w=vvEBE{R7ieL+Z~#!u9*I|Imd1%+Fc{QQ^~yjn4xagbKj? zEINSs*+>B9=aB+ne)cT@^D}G!^AqkruyOrwiUK^X{rF#k1O7`2LLSpo8bV!|4kr(C!+i>ZOHy?01$fiXYczHJu3)3h_nG9)&_uR z8}Q8A2mnw#0DwXP;EAmtwZjH-WHyi^vw`mS#Ff9#gS5l;q@Bl9;K`}}^byv7X^H*! zk^fRlAnpWd2}GfPYKa|Wb9Ru;pC(^Dq61MdfCDtlL0k;r01b1FCv1PBWq;PwY8U!n!kDG2Q|tNs~R0MAW*1OO)p1t-YHAdUurNE!fQX#j|(0nZ)Q$Lszz5c>D1@h|_?; zXFmpl*b@k1PvA3q{^9Y@>lptJtvqGF|D{$yi77}cAjwrC=kT$KoGYBLEH`m zg$*Dm(FHzp)}JWZ@C!wKayVHzq4K-h^&Ding;$W)dhms`41HTb+QWtQ6}HTWwKE(@n550$I*@21fbxlF)&}KbPerg20x0(Yr5I1PeJm0{A^LfVbOZoMr010D zcc=yhv1fNd06YbtM?wRo@IX*W{yc0SkAp%z5On)zBPb#0l025MPLGWbAoK5-`PX3o zO|;Jz`ujW=36r?Fy~E=-pTZ~!lZ?UR2bO0lA^GRpe=Y^-LBzn(z|zL_FNHkI%_Q&S zXlZV3>_7t2Ig^}$)#E2#UIZplV~5AC%VT5US#^Nt@cZ}+kAF{Em9=?m%%tjI{MS7Y z9=k@425%pKhlJ(dh2h^&o*NB+H-ZqDgI2M&vAd; z%$rHl*xc0YvG>Hmfxske?&zRkY%gMCWou*oyV1q^SYw)7IvU$EiCaE)z(kFW9?}0+ z((nI|%`mIy*4Ja(%*fHk{;`4e^n*@T*1uKzc=M-UcOYTm=l^S7{bSP0!N$+;;An4b zV1?kCyype`W$o>(^AJS8pD{cm$qWg5*jgu&tfGR0PBgaIci$X14Gech5(8-8NM{H* z_P)?QDryocTDXulctc1UOmK5DG{J0m>$ut`W#{$QgNwl}E-UAtwWgMbhObiw>#?if zmG|>n8oqy*T6-9e-GUZNXeumQ_GVd&laVXMf{f|1`$RFSXLKgpSQ{GlAUmCNcaUCy zsDFzpP!I7{Iu<*+vN59tfMWA{!U@YsSJorXIx)BQsQS&;yHEBp(y#K`+Cn*Rb&(#Q z6f4oGn;YQy#jG<{xX5MhGy)Tryhl?)TdXQvEBPVS@3b=8p>65m-k11!&uNQDCO4F0 z-M>+su0CU!TvD&73@Qi@R$0*`z$-4!)z)K)kT+v-ID%9@PNQ~{O5-2wm6c<}5BFWk z@UAe~CxmK+Tk*Dt0+#pQ>KJ;`*G95`RupjSV&%tJy4dE0v`3H%CzdT12`ahE-AT+7 zW@f*CP+-v4ooJA%6m4JA)Js5F!xIHl7rmFqdcPOKQSFuQH>J2LwxylW&P0CaMH(>5 zrL@*nn%nv6SQitJ>NZNZ^}vQ4&%<02@|DHY$*X@(FXBGeH=23ysFO66nW(s-sY z?kb7U$M-%`c&A9*)0@=2{G0cI%qQHg6Hg)4DaTV;T_cIEn~xAvqXpDqS8mXaC|0>? zZnM;S7SYRWei;LU>8*09XZrCgRF35+s2pzm0gCNx?+zq?^G~A};nvX)F{9t_pZ;H7f zSJHu~7WTOQs<%Q!WS!KJ=q}^&5yPSFDgFp5&29`0YQ$H30jxH^cqXO-n-KkR(ro3g zLHw5-2~h^}^V{yH=-cAPn}sgU#i;mTOqV=p#4W^r@RO5^#DU%uhXGssP|+z|?r(2( z8q-4%gY$yS+D6+JSPM>lumtowC$@Nz*uqUgcf$( z7QEoZ3Mg`Nm=@BcUM)j~5wB|;U7#h(nvl~8Z7|iGZ*!Jk#qN$QQV`8A+ZlrpR!r~N z-Vxz<)+wxxEP7EMdJSu6s+iDs%6UNI#yIlR3dMC$7HVJfM)cg5C{>QI=S%?3%4aci zGHDfB@b(Cz{6my?Tu@#d!RIrX4LrmaV9JI##S_u8- z5M0)c8cotMCaYo;ESiaJ3q2;G>O+Cx{HutPsa;Ip3*SZx*k7|U+N>T75Ib(ism^#Nr8 zG_pVmo050d4DSQXmWWSo06uCcoRBwAR`VyQoTg8g86t=Y;^@uz=Jj9hU zp`Ir1S9{!$OZpr9`+Ufp7KatKaXVp?fiGLuW_dP@+$gc>8{w{2ner5sViCbSHA(|gJ%R+qiW3P!5^ z-}=&~G1ccaOMjy<^7p8*zV*+3)K{><%fmtD%R{VlgX+n-Trn`}>!u>so&F;3-jtAK zXZYCoksKWPsTahGr?~Sxi!^%KI0(>JyxNPY#x3v@|>T1R=wKkXhUbZtwMiu z(9Y;1CTP`mxOz@WN$6=9Rft`t?B$SZUEHefNNoa8YJc zY`eZW>^*o8H+zS8Vqt`*zF?1Co1zAHdAVaLd_yGh>0z}x%(v!5C^kPpWr-gdGs#1W zDHv^=3nV+5ah{XswRK!ZTzGj= z3iTGr{7mp|;o4&Z*N?ClWy2s6mh8vvmLWNlpS}HHeR66=ST8+%LNZ>{hO>;CU3m%# zd2Q)wkppC)DJ4}qU>_@Uj1?=jEciH&01Nmrimv6hZN3k7Llh=S32Z{(IAcRvREvQ}1ao2)+Kl>tWR#k_2$JQqGmJK*9QXU{&D z^o;-ZD@G<(pRTG8J`-bw#I`SYZR~5jurt`fz=~@f&pA%==|;H4pds($AP#V+oN*BqkhYO~F(;-5-Xhpw}PN?j@KyZ%i0A>FXw z(F5%b0s4Wxb{b`pMWQ)#X9djKb1^ndJS~VmGa&9~;@wXrLxx>TF=Oke? zXsyT46ufuvfclTiWKH6ACcAI>SQYc5r)>t_7Z(kI`3*(7gY5P%gGDuuh7NNOk?$~! z)F677E`Rcz2l=~$&(@_Y&Nj19eoVEOC1yS^?Mx!NLDc^y=Mnev>YPtk!$|cre7g(M z&*dv&$Xsrk@tcTn`!!p$7$x$kHx*nHjkXUdFliMJNcQ|bTa+fGJy5JF8vOD?$PFtQ zb-|0iP2>~ZM`pR+A8HtzRFYRYL*#W_TQkt*W%{SUglN}(^Df`s?n5X=Tdb38&c2u21guvVl zk^5HUjLteIh9WD68;WEuH{5ldJEb$rEbUNguv@p0`m;=ZB}I_8vEMi;Pmdnv>^k{% zCltnGw6wf+Naw2I99nBk_FTTF`Narqa_)5r3 zSk}j0$%Kep7_X#`vU%sAR>l)G*0I|=NUz?G^(nX6Bi+e*bF&&zAENTIBy&g0;7jtJ zL?PdlIj#gr4l*T{1PLYf$_aMkjsv$CbNu(cj2pI1$W0Fvr{LQ<7NOWH-QQ_%OY&px z(03S*JM&$O_RB_6TUbPYgefyhSBttG?u=&ed{edC^kS7^+ug2RI^7Rq{R%$5nX4U? zx?&~johan|TH4f6a{4;es&!;<)A zDi=Ley<3uas`E=y#y#)a)~GvdyDr{)My`TV-+O1A;;^!w(QFvz>n@VM!FAf}C|{Vd z9VR=FeC!mv+}2ZJv-$M*1)tn3_%g*OsAuC7a9FbyPQBIta+oAsvsa1iT#+HeX2mTc z2IK~?2cNDo9o@2SD*k<=pwC&F=)uW}Tj{}9i?LSPhhgvPT@IL&Pq_Ks-7=I+vE|Ir z^O?cT<&DL(_jeSr-ufIn)ZX@C{rV4EN>h9oGS+o#-^r@rkh?p5P|5ll|F!7ceQ!lP zZhm|7;_WTXFcu;$1CdiLGOZfxYJ3&Xsrf%T3LCqo+k13M{y0nHfeq8_=89;K=AdEp zGkHxX;)p?$+EEJ8=Jbj;h>wDZx4CAH=f7@dtG&nhqQb%#y(tshgCH?oc?wkp`i zWAuGbYKu+O^S$H|?uVGy+1yhhzUv+L7EV2T(O0qH>wzB>ABeRt@15z;E}wp6&3QW} ze`}8$>a{f0*XzonC|2Q;ab}pWNymLbb_*v#sgA?72A11Qn<&J%M@AlbP1W#Zc0Be! zeE6yFSMh_lN;bt#2HeCrXdI$uBRyuGcrn{j;4XVlSS@k)4L_gq<4^MjZ?cG!&?UN< zYda!#AAc!w&3-1BGyU3+sr9F*JcD}@w@->#T-1Mc`oYKIF~jeXPQ#kAf}-MFyY>uD z7Ct!q^t7^uqjuefxeqc1qjX5h!Z1rl`;m@P&}8iVrGJx^O%v_?Q!v&*qCI+pM3!V& zwPR$lFXj1lgJZ}qfs?s`0@^vfc>*NqyA6_tGFaw9+cRs1J;-*GKQ}z)B2`>f z(2&mkW_|q#daqZ1LuGb_$S2a#ajw@SlIQF$3_YmYxuxsLF(pR2H{0IcC~%;Ee|z$y zUVtqt_nW>E*)Lh!GQEo0?z^d4`pvh4_bQ(j#t8av2(%U2FdNF3AX0k!g6Hj~ zjVdbb#R9W#J`5=q=PtmW9AWO2EG+*1EuxF)*mzhN+XO}1<(o`n$w4>L6>g9;sXdV= zCV#0v_0X3j_v5!L!%>(W5%tY)pTB$(_Z3~2*rBhNOePsR&4cPlEtZ?@t9z2=wp~Zm z^u_jXz56jgJQ)h8o(4;j(CkTm*Xy6F*sRNKHA=Kw;X!SK7tfJr#gy=I*xONks^^hA z1meHRbUxh8e{hzKl`@~Wcpb3}s}PCIwn1%lMZTl&>~J;B5%iP+Y*3(L8_6C~`ZHwr zsM-|XoGB2>sR#;pXWrE5PyDf?sb4y9DsxPWOW(JQUeS!}^w#JNBr+-C8}v9nkexbi zoJ@MF*D=UPvuEGkN?Q8l$^-YvMsG0C88UGsdmU{(y3z0OE5?TRpJh6KV93+d(mn5l zCNb3)&hT;OOp@)k3LzcvZL5-+Q4HwqoIWAbIsXLqC|ac(lX9%2z@tHqwWU;9Mff!VT{_}8O1--`*KGIdbo zh~)nI?ILdhxrt;R%LM^|c)AQjKAGrmG>KbzznQ#OzQb^_D?Fd2lp|B*lS6z56P#3* zMBLYa^AK%A(DOYq^wY(3WbU;&`^9N4?0+j~@5{jmvbcDR`U z=T0srt+9tUHu65S3nv#78ILLK5xUpKFe3L}{*hj!6?Vr(k#NUt8uSH@C!#;(bIFD) znyU8YDZHO?%$goCvM1x9X7TuXb<>ze5=ZxIvoBKo`BR7Q+1s8Ln>Z(MSv2KEzPv=T z1mi{eCc8BIUd6`;MaD#~Pj^vXDYh_FVem29`{TIH6O~uW$|G(MleiemE%gsJ8l4g&)_+5iZM3jYC461@xK|?O4;62u5fOR1*tTeE#O*g*&2MI_ zs`(!N_=bVGQb6z^wNTd#ruSKUEDUDIJ0-$raM^G=KyWltZ92YNZgL|dEV|M%l8=5H z%+6W%a(h|SZBN?dT9zDIL{2yR*_r)*<-UpKKgHWG2-{-)=w z-!)XLKXBfMZvqzdj6= zG6sy3{_PsZ{o;E3KSpN-PPTT;n&~JAFb}d3@pReT)T$RG_NTbCx#Kl!Q(8aK)bMAk zha+Na`$FAVNa0x>4;TgtBV3-SkAIZha^(8dxdh5fhFg*0B^S5(ZtZ?>EPz!Y?P~zt zOB#yF4vr*U!El+$DZWj&ls3*#$NA|nAT(QwgRb$@H{YTmjxH08%?f1dI#+zLo8?QA z3n@Koh+OkDrRB-UR}FG>1KgrS(VB;_DdF5 zsWTxhBu!}N&hHPBIXrg5OvbZaG*ek)ql}+Wp||7-ZrQg@Ww&F+iXRrdpda0hLPegr z#dA!rTl2+nrMpM-TEe&KCCR1;Y@$l>xshyNwTFUR+{pq7X5C=wGlo#sWS@0p!bDZe zj*?LcMNxErXtPYZWBWQf@kvauTjyx)d;Ugm;umTo0)cmTX~hMcnydNJN<(@h?utHr zJyqeb+70RI?4Y?MGfD&gN$X-!O6~X;Mj;&eS90`~%x)HIANKRl?4sY_zCM(OsI^N# z)?kz8X1;z#F3cNL%3OWj(Y~p3eEhaGl;)1j@CvoYw!khOGiIBT#wYaeZFUAf+z=jH z?-B0f#~nJ6knPAi-Mx?T#QM8d&50C=s#y zB~`{tPQ5|*1oM|}4h03*8QnYuCB@a7KD+HKd~)jO`kLIwC9IE2JxEv_kJ0W=pl*yo zUh1M9r7^hZs(EQc-0QlX95b3%8IoJPwqN-CL;$WIA0Pctml}56R*lPl*9-f5Tzem9 zV8ZtN*m7NX^A7q)t=rBJ-R-w|JK^Hk;lU{xWlZHO@ulmjfTE{3HpS9<)7intad)jR zdtzZuKCf8%xMgYKKU$l zQ2d2ZZb^!ukvXG7CD)>xHYd=HMD|hL5cu5o_(lv{MR3b@j!O}*-)a)8#5JdV*R-#* zpL^%*=VF{re2BW<%IzBY8x^JWG`S<+zSw^ZNztJM6T)O#q|^oVEA;H%zs}g(Bi@ek%F^<8Xg;o8ExCrV#-ZV2^+0vO$KIa zR)iBJpWcz3yUYeQb&eFNm#9f~o|4%2^!ROKO&))wxRE$AIU(RRW!%~7Xv^WG_hQk< z)R?Vkh^yVdq3k*j3SIE;3Ax==?QTdTMP%_|f1yxu=xB%5h3)#jC9GTD9`AmT#_G3W zlTi;b4aKgc!CMTk3b#{>mNrF>UbSsn_khvf&oaoy-)~an6XoQ?5yhy`xW|S3GWmjH z(I`H}JC#ySm)FU{IJUcFq(6VH)XuF!Ea%{f#JI^|QMIZLf3w9Rq zdVuj_lipIa$;o-YT+AJX<2sbDHFN7f(ARsX`F!H@vHdE)CHqun`9{Bc!OAa@8S-}> znXhjxnE7D2`CR-a#FaZUr5;qhp0<}0I(G>+>0>q%#g*z5r1rPaJ!ThqKNXPRwV(3h z=^{neYcyv*R<(K_JWG&sI#lS36XHZP?a;t*Jzm1oHyi1J4b3%Os4pD5-FkM1$ToyE)5CrwA!|P z)FW-aI;l(o&f? zo^yhQwFi}4E>>ZNNJVLM#*#iz5@Em7-*Fw@GD{cKcnro%l3bhIGf009DTCcPp5bda zoTse!!u|5xqp(E3LaqyA4Z|V4<(F<=-da&BW=hmFE977pB6fx4^4;vfx|{}IL*F+J zU8JhF9%F9Iwon)eo;tSfc?ev7Q(Uv&(1W;m(G&X}t`GEw_pjHBpsLsv;oh1yw* zQ#y=2SC~3_ELItv4_2=ZGn<{?vsuQncY}IIL-0#Qq<}^Z`FD-;BuO;L> zeV3*EdS4kUpY`6@P15?0gND33Jk@fCKWn!7TZgAmI@D5V2CKmnj@_2>x7m_*h-k>d zBwdZJPBZJYpVQ{`ofIYxg2qRVp)hk%N2#UQWOGvcUby5Hwm#D2Q4=t(*}8E~{h+6H zX>c6<5f`g0lg2@IM&fwx6c+~1+F8xU7q(7K*LR1%ALJxUA#E6^wYDVPIM}f#+fRpr znu|&MYdq5l?Ew-;voNh)bJ2qC40D^S*~kqlE|b$g_?+c~4Dc)9r`b40d(FYJcmknj zaX=cGmWh(~5ou_ajT-cicw_I+uqjHFBnu(sX2-Kq{SndgOtPf5^aF4F{>% zO;luqchuUrO272Fr#32t6pY;^m$^h!hO$stH!eIyY(=AaC!ilW8R>Z&3?bJLKY74& z&%+cd1uY8VT4&h_^CNqTq%+=MI`RH~;fF1cbxw&Ae~2bU9vbb`*%h%f{X|9zPcFRW zOpSCnnH*jUeDp&gWG1@cd;F9@=Y_^^Fzmq4 z^SgV`oy?2aUV6_iS_EO4i6l);7`{|iFmx`ZZ{&>Ilgb%c>Z4q@#gw1smSSu|ExdJm z-z0M#@@T%T`)&yS$wPf2^?K#WF9-%YTjSIoo7?Kvm+RkO3pBoAdcs}j_FK^c`8{S5 z+aBIO>J(_u&!kZ$W3rLM&r6dat7?(}KetakEFQSP8|6pH~Zv%udiPh zSspwPp3`c4+C^cV=Q=|ZmwR`C4}7-BC-~xv$4cD&H+6cS~p~)`*1f zwD+MQFUB7q1s#=oh;;_ExYCO2&bAe665XU*&y^m&UN5PE{G*ZayPITz@SB`Uj+w{f zcaEsq@ij+=Zk{+MfBQ>c&gES}9ntUh!nk~e$6CPTF^5;JhiM8TCkb=+NFdbq(g zm$tCu9K#Wk8B&B0nQS@Z$?0ga@(>x72$77JM+eUBwBT`n5!0$a9R4}Jy!C;tvktKv zN1j?;RO_Gz0xt=0|+0!bNgb*+d_0`^vJ^ zzIe>K<>tww>UXJ!AMkqZuVa2y?$XYF_mGnN+bw6W_dCmDc6;3MwV*mrb5E3|cpn9| zr^W@H=^JGT>bKf88BgC^KW{r)u)A9|M7%R)UC8t4uI(U|%OV|dtn2AB-Q0&Q6t$MM zBBv^a^rJIWYj&3ge{j<3KCK&CLY$z-c~QSW`Sl^?iH#E<2X;Tw;MW5#I>*8G+O0ow z&XiJcag$g{${shDWiD=(sz>$i(oJ1onrn-=zPGi+|25P3IM;Czhq_VW0#;w|mqspD znG?5XXwL`EK4Qt3stCUyO$m1`n`H8&XV+htI%L@W`Fgi1Q)7BP=j1lJ*<0lU0=cvq`r^A7 zn8&DYeY&3Ssg1Gdmp5wNHl@13ahvAr-RKYSN|8^B11#keJ3P%y*$%YdkrSyVqKW2h z`EEi_RerH)I9l;d`0!~*mj{S~MmMbkUmK?OcssdWm*5!oY-tU*@jT6!@$`v2&9-}d zC%Qt@Ey6HE_MFXo?@v(LGI`;_r6VYfD;40n-%xL@cb1*w?>ew5@u5)BsbEy63vs|R7d5I?Ltv7VdB}dx|wc}&*|Pp>?W#JAzQcd+(5U%p3tHJ!}F@xFSltPSR}0oCO;89DM@ zk#06qt+!F>+xXk#TNS*g_t$=_J>35CL}ym{r!5V;5*Y{EQa;>~wT$O83M5l9nvHTE ze8^GgqkqVBj)=K7G|RXkAYA8tR9%g@>uhJaspECAP^`0cB<;4ui(Kn0!d~A*P5Ya6 z>aV+ed=p9jVNWf&r|4L_>Au%Bwp;eQbjd?D*<^i}v|^Lwr@| z&v*<1{^!EaWGBz1KTVw6!{-!%^mTK5=hUYHre(fsu7thcwWC&S{A~4L;ltOXTdU5! zovUXl)e`>p^n%?T8k@2*w`+ACu%h&mu_3)rmei~6^U&PTtA_VITQZ#>M_ zcd%s&W9=#{TOs^)>xVlNapSbP0S1?JEuCtdA_daT_Z7q6iTJ(|o_ups-67WYOLTF& zP0X}shF1$u zOxvEr?&&ISNFj?mHk*a+b>kk;6x#ebXk(F6V2##~Q{3cQ+ufp)Jx39zGyS((^@jAC z%o$82Cbvj1#m2n3wB2cgRTni&un^^_ZRmzu1o2uS#jAxW-1 ziK9|9Z8G#SgOMGY!{4l=D12x(jGci?RaS_mr|p9U08ijlp1av|Lp?@6uDm<3LCB{u z6sNODxgzdx=yr;a$;nRaOPi~Y;Ugc|;_G~mR?j%6;0?cK$)VI(pPcpUuRM8P{5%}Y zQk-$9L9#26V27$Ah7^QbjhLLiI#Hh_>F&JGondl8IP+lI*zOr6t1f-Jj0{-NmJ5FT zf+#NEbnA46j z_yU=kne(}M8q5X9OQnrQUYN@hUD`bDRH7cMdyiB4+Evf*!ReVHu2UJXlkP{k_t`Po zo4KsdDG-LGb_Sg}}#@br8m%gENVObk&P6pmj z?1(=i^SxcMVu)*oMRw}YaOgCnx1^ZFk@IE8zO|fpb~s1XQM1RG*@$z z-iQB44@%c)_GEkVvc&xgSLde)*2Fh-o$u46bXmLQAD=mPo{RMIv*VF@_e4L|^tXIJ z9=!LB0k(^p97*Xn9!wTTJS+QS(B}UADcWzEBoqk-Io=v2tl_Xj{n3*p;?}|P380FI z%HUiH&2guR^czrF!w57*6oZm=F##3xm?N%6b)yCD{QJR6Gi-x+a;(R z5M6E)s1o8J(dc6|5|($lRme*B@OycGpRB4Kv>SS+uKWn&q@4+?^^RaqC2roWG`XK#u09>!nGH7=b;u3N$yePF^ZEF$vn)si^Q`eB&lVUzfG3D*PiT)&gfQ`)4RG3lQ=~7d4b<6D-6>C?Mvm(Ap zH{!dlUYc4Len`6yR`|Sie_5l%_Jm`8g$`SSP0w?lE)?0*$l?`d(90tJY2Wzci|PAb zr8~6mYc7>zt!+B}k<+v)Kff_I)d}rs&!Q8M*mHoa>Bw2}XR1U*EY$auHgGU(@V&Xw zzh?O6=Fdgu=Y0xCw>kIuUWrpgy?CDCOD%=9V5}J6eV1D3YtE|KZq3>8`Yfg(RPxPz z=@0wIchh_TRhVhlR6iXeo_k8dO_WYc5^^X|If;5t|3Re1P1ei(d*tDQIrVJY2h`=? zg*&^~-1d0HLrfiSSDq==Wb*X5PuNK^*^l&&6k1`OG0Zs`YMzhFn9fNsO?M^VntD0O ziz-Hn%t6Iq&01R+yFhDs1irk7Kgo z`LjBErjAc4lx~K5?4ArqIB<{UUwU?meL~DT8+~+}No{JPxEnqBfyYx*pQ@_q#u;v+ z=^ZwWH_vJqhfI`N6`w#FMtzRl1D|mxjbykgF~>tg}9*f*CVO*&57UvHtv^SGo?w8%*|ln~ZKM`s8Q4b$!lohwqSm|EXZ^`a_{k zs*F4G8wAU2owjNiy(=upHZ1%u$U)1+M!L0KmW|FMyEVzi-hJ0A^F48`JSXmtgr`=Z z$!x~^u{<$#E_+k;YkSUd=k?f+J8l?+3Cz8oRiZL@XX$X3S0%{UcQ?%SB+P3g@A)YH zsL(Ih`qs0@p3US*m~pks3FRy=v=baI)$nkqR-1lGPF{77h}*YvcZ(HrsJicv<|VI& z*iF(oP82)CiZ$e2DDO5YX!H?z$prW3#P|0M3{$;0w}GMkouJmkV_FF+RFTb=KNzNsr>V)ES{k?{BSNB@ z-T2-#*GR0#u)x2@ne1g1-wf0I;=j{jU*Ut?S@)#tMV*{y<4^js-fy3A)RaDTJkFe6 z`r2LVsTfnoBPW#K);!`ivUxWU!Y@(3LF_E0Hr&Lt{j+2M+sJX(2{(jPDT|mH&mOgx z`%OQOs#46o?9Y%2G!-J^H3?H|CuTEl5wY$$DEy;%`-Ktj{@$j(ob}9{m+g+K)ok`w zxF^tiXJ%@c{`Le{729Xdn#RIi!LQO{s^Fs4yLRz=M5%juR+R6pJngQKQKxHnzWq_- zcUVe*-?1HZ+KQVd_v@NR{F%e!i5I%8dLP}-D%ZGvzOM@p?>x34oPdFnT&=+we$As((`@M^)cf&?iRnS2n_$x z9l<%rT_+Lp;=l!;X{wCV5hV>?uppz<&DMbOHtMLCqSUiK9bMMCG%AUVTeMYy(F}je{hC>MP$sOJ18d68El#Lv3hef0<&MSpOW|LH8(@L zh94W58!vmt)M17}Rf~bayKG6>bUXKB4sx+qAF5!ikFuweZAZ?!#d; z$6giEFE%xOPq(8!L6=2eZev_-HkAR42tzj<)S{s2lPDoabMOA9FZ-|O&urLw!u=*o z<7c){lk9~uqEUzX#+)WkgI@T zz63dCgEw81>dSqPO zz(;4ZU$5q%Ir)998m!6rr#;8>J2JTru#d<&SId)xbU)1Rs9qOx8 zVxYvIQB+-KmW|ZoN*6}*f)gLh^_nI^i6!N5S}=7`rwIHf@% z>jWah-qkwnd_i%5*Y1Nmn2OVorbU|yW9}fNttGMzVAn$)mq@C+9d~pZ%3?j3Y*z`f;Q*U`*-Hb118;e%qpDX&DOLM;@EakOyiqf630JPR{%z+ZMdNufG zQ8!w5@jhkUuosL?_QKenGu^Y-c9QlvA3>TXxo}axyJ>QkMxKSUz1lGPyGBZsU(T1o z&38RHHPKtRlYKJ>avGk*(?=y}b@ba+nh3EBgk0Gx+0r>{C7&-TNqxmn%dAIz+gwrs zQS+#xiC+ovVct1)cXH0#>4?1B+EQuLpXGvcUw=;H+Vo(K$JODPuTxsf*NdMVF|m*0 zl2pBB!e?VO?d)DFkLxqY`(V#-aA32ow6oQ}~C17|l1x0v?IkM&nY%=Y;m%h}PFDOvi|UAI)D)JpM%tFuDzRMN*Y1uZ7` zNXUPDAmYm4*r5``?3dO3(g%#_u1=C|lNBAL#d4;$quXfi*@k?RH=5h9E&1pd^T#)C ze2gKf@Ekr>s@|kd-MLQ7YD;T|rKHE1UM1wYlD*Gwfv$q)l;r36Csjgp$Nf}$ugvxd zeq!6=sHp63QA0Y{t>dr1x6}3hPF3Dqtb^HQAIWoWD#dSAT{k{!+4h`9nQxBI{fpa9 zadk-`hSf`Ugrkb(403I*+V7K_@k%=$5D z)R?EVa8fo0>t*k8Dvp{oTi)WCZoP+I+*2I|lRGK4d$3(XXt3QwZ_#V(AuHMRJyKH% zAxxS-4S2nG+*`P!#jpxO^4Y`jFi6>Ex23T6_ zheT?T@cTQz-XUqSy(h7;iG230l9&*CpL$1{(*2+`;g1Q#vtayRxG%4R+s(|HOr61W z!{))0ClF@$Y3PG3mnMd#_4y&m5l`HvpvQT}|^oec3kh=q0gg;(!g z*~TKB&8M%OZ{0(hsyDS;@YM;U3@g_!R6)V)%^P^8pQ%?DSJIGrswhPK*z#ufqPR?_ z$3Rnw!ZFWa-MPAJ@yz19lq4Jv2jQff>8mojSQV2w&r(E|Gv4#1h{PI_KB_!0yzY98 zvqBDuVw}Y>PTOdfCor?~cSyE3+;Vp9U_2=mi`JMnChOwO>MD}E)vls9xiQN8hE&B! zoM8jKvm>2N>ehUtjZ~7xaMc^9kmDt_x2=?jrC_1DiqHKvco%?$?9%Zb-i&3>3wqYu>gWhPoJ0CM2J6*af5bWd zUZ&7AJ2!ou$mxk_XE`qurcRSC^Meljuev;T6K@?)fg5B9eY;8Qnsw>g2}wzwfvX#v zTCc{?ks0;a^SS$KKDp{nKAGwgjJmE{&#RhB<2?|QpIY|Sx@|&?!8yLYUb6MoL{77L z%Qm;Ndu5qANr8uKQXV_`9Je{O!_4ZyAg{N)MY^~LRpJhJ!A~jvM@hV&Udwbvo=;`C z(Nbs@%eWkfT|4#4_$-TrF6GTPPfbnMACkK zoJ*ZOaa5J#gs{MPsTZGC_P~SJdrtj$`!L?ZPWxeBBAVk;@S$@Q+QN!0947Rnfl()N z@2iswe!ugBf{{prs*4#tjxLuFQfc5eIqzdwAt@xJY2I>0R@nK>p&|;YqX?{dDcQ^i z%J4_1+b3BPbQ=z)&Q<*|^5k%M5~{7A^7ITDePD?Y``M#5oI~4>#BYuXuh}>9@xoSl z{WqI#KNvCpk#hKTfi~GOUTOE8LLdCc&Yt>I-1Lg&;bD=dhy$sV zft8_PuK$pTb5f14HE&Y|gGNSfRv+n5lCYvO`q}VfDppDxZ3dpv59VeO30=KJ98a7b zM(Vi&4X5~C8L7p0A?rl18nTQ#wv|RvQS3H4dD60O$UdC9-ukQG+pqa!v?rxmpJ3r8 zeOKxOVMONEM|-xu zfD?z=tFe0~IHWBfhJLA9SHrCLO@U5arr;s}+2G4roXUHdu$LHCqVHu zc=Ec*Ozr^Bmw?kbUd5odC+!)@%glR^ z$<209Ar9}nRKB<7>nHyL8IB>uYqqcq;Y<5`gR9hn#*Zhs_HGd^;J(qHdbs5I`t1E1 zGl^K|q8W%a&+{koP#$~ZlCZ}xasM1W9jj3Mw~0O`aqslNFnc18?_8w!*Aef1e%$FD z+~@92%Fa)Id7Jw8O0;psc=+EH*t@wfz$=jZE6+WSOQvnHX8TyIo*{y4xMA^y*xZ3f zXC_N-ojB2am1WxBIK8SvRxjb|(jBQ6-hC*Lzf5GVma9sZ z;615RM`I&79mraJS3E9?Bl6Y_ruCwm4cYz0ayHoI|Bzz;lq=-}Cp|i_!RG1#_fZR` zk;uI5)}CZ5@(Dx~e83+fwa`SqyxDGAGJL zM@5@YwWScVx1?!Gurg%&SusoFP^%0v`E{M9gqou>=Z;*Evma-h;j9#eXws*%(hYAK zJlG=0doZm&z+2nWtoxe}GpT;Scb_016tB;m8;iKy_o6vcN@^}HsC9b2qjsU67#bb3 z*fETt!jGyDQ5UDeP2^Z=9maK^&p#*+)4`9ffV!<+_QS-G7`Q0-2a7nq*r<%_Mql{h z6^+Wc0dWg|i$qc3CtNJPRzw|%p~CmIFHt}^!D40WGj0~d!Y{6%9yeQJiF$lb`+rc6 z8(=j5JZ|b3Zu}Bxe71KoF?GU^{SyTP`{clX!f}HvMB!Ly03bB0PX~n%g-ZYiV9*%2 z7z~X>!NtMg5)4KRE(V^F1x@3J)fKl}xVSj%6cKSSbaJsXb#jIqg1LRBaASL05kqG? z5kq4qdm}>^5fgi3XAuVzGh0I^YdH9S0V)v<=<9$lA`30tN|tuki;Tzhy8kulpc@;G z0K*4BYd#zUdb6=`Ec6MDhGPKfP}BQ%Gkbd%Fptg@0g*D_M82GYpU2FsiFs%sOkzL` z@f4tu5^!jK%BmC~e@OvBmpl;GW!nwr1i>*tSP_^dVa3fV`D>n`(Bgn+NYK>|@eD1B z1@yxZSUk&q+HG?udowe*nVF>}+}_Fj_nS#@JXb6PBMKLT7J?*L2sDu4uNQ(uA>d%X z7?{2V#1^!OiaxTU2R<8hRzPZCmDjk zzh)*FHwPC56GtS(;E*&R0R1q8s019bl3-&Gb2m%7KVu^_XW}1d5{F~JbTKgu9Beb- zsTi1%CoTp@t)$7#%?)mAX=m>CM{z*+d))zBU#PKBTPvnuf8#+xmC zeT6E)5QzLrwS^nIGyh$1fbio>{sZ`Nb3^dY!$dSKU2IIZYZ@Ban8NJMU<f1h)oS2*&{ZOglzG9GuEU(8o>R`NdEF z{OCVP5F|NZsuu==JRm_5a1iPVj^shpAG}z$ZBd3H;?WY}Bn1oZm`*ctzFX9yr;?e7;8g^NSH0!ALNORxam0R-WQ`P0`EsKS+C ziJQJPFE;9{fh870g`YYmqK-vT;YTcqsQ)*F;wE1$$s&Hf(tp4pZbH^tp8qFVL}4&+ z445T_701HSi#v)15Qko1DKLXiSem;1YDaOyzUJxu>m9|4p~34Vuy6$MZg8~x>D&KF zo{&I-#lb`@3WVC`Q7RX1ZwT82V+O!V6`x`1TeLM`3is( z%&3VGjp!|ijpe2ytcNP^DZcOE$J&GHd`PX}j2D(WCcwH!PR2MJ;B__VW zQLrKlCsUj^wHkKg26X=QyXO%C1?IDY8IEvqFx?W6@u#mQ@ScFyUv^X>PXqE@Py~)P zZUE*lIJ)Zd1V?ox`rw8{&;Q#041I7@J(oztPmP;LA1qcJrwP##OG1L5;QZI@M@axU z0SJZ#ZUPW!H1J`;%vdZMwIt9+hR&A8zf<7&0n&d>1_FzPgUiEVSW$42!RR_sxG1my zu?TR=2t)z$>xE6-4Q(B4On-%L_zBj3O$eAf3I|U7JRKMyLSREyrNiFA)X5MGX!|uG z1UAark!Jo}paE0B{AxHF0v+@s#Qz3l@MF9Gnh7Wr3NS$e2EBX%57zSXe==DX77l`F zkl7#x^b4SaKnniLT0!8Z=*}-3Ai}cag9d#384(b;LAz`E0)eNy5)**ey5w~J4ix^| z4ng3?m;d!9qCq?g0hALKOiRWf!GD9;!yx0G=#fl%d{?~LPkZ2G`11Asz3=A~* z01Z6HBE**Ln|XaC{9i^60yj5!XDA|f6b%d)0*?@~VHP6=Kx%&T@IP4)VDc*7 zBnJKxI9&j6B|z{NjAmYjbpI*iAhz>sYQY@Q6_G9kZsO*zn6c_N2t(MbNIA}VpZ~#C zrTjOdjf+?RwTK`kK!gY=dx(2W77GTT^`hb6>I~vB!p=Zceu>YxiO_#d!#qr3fGY(& z8ej;bAwv)%XaTDJgoJ+*B`BmP3RZyzeia&q0!Ks~z#m}D(oy*{-A$NbfW&`cAS^Cn z0oepUyWjY`2mYFOXb{@N0P7Y7T<9eYgMu9EH82l1O8l>BSg<>RPY(% z(Ex!FXasaXksz4^g&i=crPJ|8MEuk70G2H-_5iXXP*w)e0Bk56MGHIpM>G(C?b@w4 z1hCk#fcubD3Ps3p|BYDO37kP|0un{P1S#C59e=$KND%(P1q+Z+tN;n#4<=_rp8Em^ zjKRcU7gJ$dLtKP^HSZ38Kgm1=t7rnk6xynq;I|g0!l98!Ue9*rcT0U_D;5jzupAk5G*R(zmNeWJ_rVkFW}+=F$6#Z zh*=W>|8x*g!0yEYjK_*WdSZbGSm5+8$^n?%Z7pmE26mhLQW9|&uKe{b%pXQ97P9IP zVo-($n4=Iu3w-z!5(sSTweJHG2!aF%{$o)yRMFg9W)`5XPF9M=Z$WE)s!b1W1aQI@$f22m-~kb|Mf95((0lAlw2$ zBbc&|BWc-g{Ei5M=*wRafdv_0V7*{KcprcxFzKK>J}}@<7mWaCQsH*&0)I^c5&|*c?IXZ_A7}{PfS(O+99r13KY0B=p&4$Q zpfov11~0$}xCCqA^?z`52-CfPaeU`71iF?C+=2o}Lx~;KB8dIT`w1{?6~lrs1N{GF zSO7)*4|*Mm0#S1)R*2JSXz)oC3bzpIv_H`&gqiELZvzy+6$jollonbN1Qa;Wi(6sq zYU5%F1$llO!zIj&ubq?yAVY!Ru{dz4ppqEiQbB|*NaY$x`KQAHoE$B>HZp_ z7X%Uss(6q<2C(2}G(gK*-v6KZA8_f)5`HX{(||uV3-W-4ssfPU-%$DiN6>;i{0RyF6lsE@OBhh0hyaz-OEFb&0qD}f_yaeB zu;gIv61l(zP|6JzoB|I9s5~4&3vBoU5(rBfRxt|+s}262%tFGvK7^?Fo7m>zceVO` z1TM`;0N8)j z{(my?z^!l~Lk+?xP~ZgA;ea>>xc(Fu*;x>^-w=SmHubL=0B%_YX*OWk0bxOdbU6x$ z07i5%s`z``26(Q^_4YEEL4$Azs9jlByn@8t&HXDWTm2jVltoyOGRTfwDmBApn--Y- z2N87qeYAhg=y^;*1E&I5Z$Q$Zi@tFbt%(K#OKt7A28BnUi>A?_OdUv@IQTcnsDcE? zl4mnt-};|9Y5Wzx^PE@-ZTLHX7ykNxRn3UMQ1`Fdj|7Eo;s{WR1A^BmfHTm|vIN2F zKUy~U`l6c+@O1u0%XvJ-g5p{zIJB%Eim>wG55MtGrW6X8QsThbz>4A$B@1{8)!i&e z8O~d>wEM59EdH+Izh?Ekq+>wZ5QNBq!zcl?Cyt^u(eQ7^6v)hqgYYz-hy`P6B@zD} z8OC4I{LhSlqDmlRA^{fzQ5GCU%NX%H8VJm(6*7duCBYVRvmpQbA0qnm!-TaFYX=h) zC~*@9w_D?jt3d1!t02u`4DJ_o{bgYp{>tmW<}Mnt)j@0o6t6B7cOlmhIK*GI z{nziG7jsBq;`SC)_W)8BcJ>bxC$9hTuU`)>A4*N*{MJPVfD40{j{0vyxA@D&|C)q( z4&dErT-zXM$Xw<}{{aR6q|m^v=x_k!P%RP=L<|J+AWQ_g^=sLOe?l54A&>KtaQ+J9 z!~t^y^nMZeD}TU+f3l(>5+r~PhXD2)R7{S=<;p?2dC6t^6LI`6oB@S0aA0XJ>pKKe z{~utp>Nf~WT~;w1Pz0vr|Bp|EzkvR)B_60Ws89)9Qw;1U1TZNiK<)+ucmtjLpSnK( z*X4*v;F&C%A8Ute1PC-i`UmPY0BK54u>_^k(O^Z3Y05t_4G5d6*G>cm1lf=v0gncC zoPcrj_6ZtAkf;0uNyW7d{`DR%7~)Vd0SpOBd7z9Bj-WMQ24Oi1q?B>0MaepX@R&?fKUn2AT#go*<_Mc7#a&iI0PmPNDwO!C4Bh5#BIgH1md;|&;amX zl*Zoy&3_lSBMB47&>C%SZ{V)M5*RDPx zpH>V6Frf|`fKxzFfZ#5(4Sv&=2{vnq{cC?el!AliprAqg1_&sqi4X%JBpfvhf(i(* zv@^5+RYe^Vmt+0wg93$vB|u;j1=W0m7lV#JR47{Ci&lD$>9PM9HG z%JLKNca`}|P|y7$oIuAK_&ZBR#cDYu0-#QZYX!5dKoZ=C;Kk@>ga-?=n?3W-Z*{QMRq9HwDv1ExL!fq)s>fyG(6SQ^^E zS8D?Z|GvUoZFaR)3Kc2kSHyuV+q)n=m1S^fD+gqsIzv76xGEU83Y^< zBYZRd*B91|6DcY}t}p2@!gm3_@3#cas!qlhV3{^B4HqXc;>Xp=6lQ4$GyKi_#aDU% z{0=}XTiO8#x|Xke3Cswof%X8*95S{942R@k>HX05!`v)gEFj^SX9i5&)XWq}xiQr6 zOTZS1Uz3Gr%L0=i>uxz&OZFZiS!g(Hue}XUHeA3_Sa`jQJv7S3*c7l$$<)~yreSGr zhm#f{uKP_5q34~KQ-%=zHEDPrEszF5#B$P>K!cDp419qcXBg;IfGIB&^ewXPXA%g( zL1JEL<~I$`4?GE=8to?%@PG32!39bk4wDB**BpOHzQKh29om;!R0pw4Y{Ddt?0(e`bW1e9@s{s7puiP%60+c|D4YXZ=1Vh~3nVKx|g^;SBxB#i6 z-)dh4oBqT#;s)CY8VW%CCf+#W*O+tF?9hXJA+J}vFXoDA^_l@rHW8J zf#H`psUkROxS^seS%w3e!%$N*&__^q5aOJ?DKOW7;bMwoCm_Zg;Ly*cpa91fj`{rS z<~f7Q%P%`#1etn5jKdu;4F^+WOEV9Mf<*y_X+l<}g1du_r7@WQ=CORUkc1ew@M^rM z;8wYa#JF_-aza+K-aw%MI6yEw7i3*s>_N{SWYE}n0M!jO@VP7#B8ax12qG}!7Fds0 z4WLjQf4uQ03Z!R$f?(XAthOycFyvgF0WFre&G{>`2$A?FKCRFNxW8YG5SW6q3z)uV z>1+XQk>NZ`a0bKTe*G*Pkb<5+P3T|3;QaZS=L{a{7ETj>9~Vy3Dr{TLBEB^y z0eA!i)E)vYMlek$Lpx`jApt=Vq(NnYvv9(6Ub27MOajXkg`4)UT!L2DSiq1u1ct@h zfRh7c2T#LKzYFQ3d8QzK#gv6z!rKlg-24a-;lbMu_)i3eIUWL5ZrXw~vbaAuByMxeD8oYDCcw_twFQ@R3(38q{uVUZYcA;GXZ3nzO!{CNYWpo6Om zj$;enD{l0pyUS0Mpa}HVPn6)6yHxhAOWU_%!&m>t62AP! zGNBQOP#pjo8n6u32?b0+z!Gf#VtWn{=Rer+C461EQZy8Y1^*CEKm+{~ODkQwh@hb1 z)*v7T#?2zo(h(~^j|+kuWIyub4cAzd;~SJI3EIc;cn2#0;5elD0;7ED|1 z8~6kMGvMM36?>pxfPP$tVheuTPl{j>Z9#R|f(f-O)`pAOEm|?SB8^240Uu~v0^1e% zMlghZ0pB3+0Qw&;7x)MvjwpWDD(zmTnljvNXZiN z;b+8LQa8c`iV#<9vbanzDh$Ze;xh4{mQl1a-iUL8@K)RcX5&^mZwx?sA5e??BVZR8 zTLaTz`Ocu0>=r`8=6(HnWw%gTfY-^Zuo|edw^hFJU)l{fgmEdy2J&-Dc(IZoXksJ5!vu9oOX9ao z#$ZZ@9`^so+E;*8)vRr+C`xyibhGL1?(P&Mq`OnPyHmPDQd(L%m6Dc5y7S)~i}yY6 zIp6ud>%VlfX06FJPt43c&oj&ZZ}V~n&~oX=#D@N#CGGc!{bROpf9S{q9=u0#eoeoA zGU$Uf)dS;)U(Es`us}ikCv@rIYz%ZP%CF%U2)Z*o#43LHxc@|;fr=3%2M;;_!9n>C zYXvUB1r4msEbmuR575v5RPDp5?yqWpETryV?XT7TD^7I}H-na{W)AlY$iDzXf1k23 z`~lMb5Cb?u-M`+idH;`UfA#o3y!(UE@n5%8faCffruv^YTOXX;`wtr}50=XSAe?R> zY-wQ!P*RkUP?n+;H86890Id)Kpr=4G-k-n^M8$o}pVWi=UoAtg#hV{-#rYJMQn{r66} zp90DM&z%B15a>^@+*`u@dZWKyK_de_C?5DeKnt3G`}=DyP-;*wfcgq_{S{`uCp4(f zK!>(~@_lm&lJEspx%6#|8F(?X%WbP4OjvwJ?IK*@qJ5y_dnIv5=rE?T_@pmfYw05p&;?UvK)L&Ij~-@Dx}Eu%rjn1$oK?AIkrp+W(EJKcasQ zKld}Y-+TZf^6#6!Gl`(F;m;iuARB{-XJ`!6*r2c5fXaF>c>HD+IT-~3F|nVlA`e7a zEdI_b_mIFpvkJ=}@d2KU@rzSlvfaBW|K3&HLB=bFK{&eia5Gd|G{vXKoFdc}TztjE>{d)52`X|k=C&25^ z`aw_rG5+V%-?crc=|L$!TKV(u&o)17$Aema)by)7;N1f@`fo?ThgM|2=_4nrs4k`S zn?5o?tkl}x;P0yKUMKulB>FQ9{^^`w&3<_O)eZk7QxDVq|A_z7l3%s{y8i0)e<9-E zy8c)C2iN}t0Unx~|0V#xu!@wb+|O}E%uW}$Y4G>nzqb$nZ+f5ckAVDrnD|Sd{u^EP zmo)z%JRr6DAkBS>9}|op(~}2rztREIJXE@%Fi2ZIRLr38pQjJh^dEH&no} z01YbtqI>^QL;q;i&sIF38c_S*1Hu1(YVlyz`G3{EKc*HyHTpnL{y5h0?}}1TQcgr% z__rW}CZqpG80qep-2aXr7#~bE=zmM&Zzc108i6<(`0pR6{g;&g5dSmh14{o@n*Ngi zM=D?`KXN^gqu&beSKNOqi@(!7py_|B3Ll=d{96(wWknPP`F>I0??MRld;ksA_l)qL zmPbHO?7xjte|=?8w>*6Pzup03?p4pj6u-j%obyNif1m4D?qAn`sSnhe|5@Gr1L1(} z`AN`UW&ba)|MpG)R?h!{zz_Cp|B&p@V)vf7(!i5F|9Mr+&u{6ZLHm*#xMpMl!kH|L zbXovmGhHLwm(0MKAS=+l!}c}EG!Ga7glKfFL=8X_svozYNNUa`mI$5mrej6X<%UlG$vzWq37oQ z`6W-MRHev02_$Rmp4NrA-P$kp23Ep64%i6vRZ>;(CC}e09>2vXRSp!EW~*znVBmtu z=6T5~KMO7f*PyC9LKs94*dDlr7f2Q3XZKVE&e!AM!sBB8T}S@$m;?6-NtGF)Yv_uR2nW;( z1JbmeunIwMXMNt<8rYqv#&%mr-=~3vu(4ce!*S=_QIv6$GTO32=VqSbFi9zje1!|K zTp6)~%|cC+Wu8Fz!!FlL>0?q9-_xuY!CB}geBWOXw$9=>k0RJT=Mq@3M$hQ!u;LNb zfJOpW5i1T7!-X7!q}=Cus+@;8Ecljsg3&|33GNxLcrjulf!B*|x5)XiVyha+5T)y> zwT(wnM5mQtBs35unQVOy-L7aE(EUFB7c$*OJjZT6k2<|HBm|`{imea`1{#OLG0lbZ z)6q@#aP^wn9L|$qb-zG@VHHc@&3}r!xi-ZYO~+E&VmL@1EMmL{qw>o>lV2q_NLNz#LP0q)*j&!960i7W#J;96 ziqfHm4|u(J@g$6%{K|XR@&vNp9SMkvIpFkWdp7lnSr0&`6Yb61rPY}q2S%${t-M{ z`hO>R%*=n6JSL!6s{WK;Mj)#8Pz?D20sujP5I`6p3K07#k}?2U0C2$uPy`C6GC&ug z2Y3z82N(bhfd~TdzXLD?Tn@M4tId$> z{Mp&<`~rZp&k(X}()>5;qdcplix*edwo6ka8u~pV4$NFf zz5txXh$?&olAUy+1Lvmiq=XK_J!H!{_?b2d3)qflsts-z!FM;qmJ4cCL&UrX+gJ%& zh)Ik@eFhL0gnWnyI7s9{(Rk6q;GO-NU$Y5svNd6aEbXlA*~lQGyG3pn(2#{nXK`x? zU5p0G=B!=y58V&&NQf>;pM9Ws0tb#0jScGn1!13n%Z2K}xh$CDv0B8`s@1qVcS5r# zH}PbPwkFah8&yuEplbqgi|mBiK9pUWI#*h@pA4=qW`@sMj-xPcLd*oMCU{1wH1AY) zPu8`NX@Yx8z=XOcLtUg-Sq6|joA`YI$^oi4joo&uurPbvL9#gc zlxI9bYVSSL>|Dls^KO`{`qTCAx`xLCJynTn`9|Ya{f3SMEqk=%d~5qEZJ2Mh_sdxd zSmM1$J*d!?I!>i`Z%pQ=o}*^s$tPrZC9wum+K1*@e><;V{A^s9&m>LHYM>kbtt;Uj zxT5lus(WEpKZ4#yZD}q(87^@V<5((HY@WoRfq_*9h6-QsKJlBD9!w3_UC5%f9iBCJ z*rP?M#GdtJ>UMaaBF%-aCweW1O_iG!Iwcwv8wlJ~Mwiuon9V#Pt{7>a{@pSXwF(-E zBb-Xl*oXO_`5Zz9hlH4zQ0LYJa;ae0YKAg}(x}EET5z!?y~ooCQ~$6x%>D@O%STAn zhy~xXbx7f@wU1hu%wT)?`_GZJGO3qG)+!F0S4$R|rqZ{+-ws@yBo{mRywHgmb+j2G zgTdW#LXO!kl$^~rz{lc7P0xK+uC2qqRLQyj4Rrz8wl#5lsyZRTKKN<*Ud?&AIyP?D zcbm>rO=%N`GYf`t4AeFX)y@D;8reW2fR1n4`~KoOz8CsfiEvqQh3H}VoEh&P{{l`GFHO%358waI5*WxlxR?Ig1oG-RBKfK3a*48~NR z6IrNQWVvLJ#M)7MdKP?1WUsqkTZJmyIo2mD#fqff_zp@MIzjdQ^tNE{zd364HUtew_|e=-20Dr*LxM{ zYkN*X&K6@%XD<%sdZSTtx51{YnX;h&teoBGD~hN9@QtAviTbR;IH_&q_ak)oWlcK41ZnI1gelJcSw9kVWehBI@l zh*!GQtri1(=Xh}^qEfSIy?r09B+<^NyGIc4NQ47~uY6NQr~Oq`gp4!L$C5JS>T;0B z&A2!tvg4*m$n@W)`w``3m%MrLMLTwx?SufzDJ){_G!={QV$Eb8%G(OP`o&zRaqgQ~ zKc4~F*OsPonaXMeMZu*b6NI(dE$^#%NrRZ6XIq#U*7!_6TcrT4#iRvRUr z5M4>EzS4X>7^ZJrRX|ckRQ5Hll#mZD=3Scn><346=fQ=xCZ3}utaHT|P|Har69ZHz zeS(+*;vRz5Zt2kPP0#S=D_VQjIXn;M3c6X5+rWjoFLqCMJ)>R*w{354F002BzDSbg zvygMJogubI(z|12KMc5vo;ToHZkD1uDF`z+t+r!kEI=|9WC|hK*RPH04Ml+yQNqlzUL9L@*S_;}C>jWn+_V3)sZj9zPLVhD! z^{TU^@!Q2!W^Hgki{SIbc}R)*(kIIB4D!6^V-QM5Uigzs=cr5JO*xQrBc1mCrUP)$ zL>ra{1I@kLsy?UU;&TRF{dJ*nu0_tNsoxMp~d*Buoh2v=8 zP*^jA^y=h6tUU6nMiC7+D7n1G{Vdfu-1b$yDr19NCoQb(81HXUhGsq!E( z#s0Mj+gy}V32{!jycj`Up1)ydF+bBBn;(Qs^zNJCEP_gB4-wpHX0;(ZgH5^59-J1hdms%i1H%=EjJS@LgzkSm-2v88 zR}Q17b1AC0qm*KYaFV$e9F9v*xIb#zo)}2PwCVe)v%Acci%Z6|L{o;MtCx!3Ae~u9 zBNWZ&>w#;cnovO@+d?6%Wh4VyWhi?NZ{P8^#7~l?@|lvNX7WmgDTwM5OhhUM1{dc3 zy@(S=NtMNfy3E|W=s1X2d2&J$pMs1rlD4q@!Y3RFF??K<9@A$ZUhWR@`HU*c%DR!{ zab}Wzj*ZID9iUQ1rH};|S1=G(oh&AOH`6}Y+U_b@(GWh6HADBdg2$)A9-ia2GS=C~ z{^dI@X9%{ouRP8EbxVWhp4|%40eMfKg=9WzWLOLr@r&b9T2t-}uiok5=LC#>W_nq> z+D=p>eYiDc7lIsc+{c|%fQn(bG_g2={BRWgv)HaL#Z9|mIqDUcQ%-* zs~%3(0`2vAb<=W7oGZK!R}WalbF^0>C-j#dd1?lO5x%4Kg=4j9&Z4@ywTaP1b{Una zcwld?Z8gT?16>U`(!0LlD&>B!KD}8-vTwnZ9c0rc{{B8uF}Y&w(c}o_F&(1vmTr9t ztE%*&P63lsl@nlv2VQMSVB%4Y^J9qFi_t^80FA)}@UG{HZ!0gaQ+xwBMIglmnai=lNPN8o)T8l{o31F_Q&6K4^Y58`^~Gn9@95KrpdwL8ua*} z&mrWRICcxN;eLF3RFRj|L;c8AcVtu4k0<(FL0{)-4yw7vDXAd$SdtFeb3*nG4!5F+ zD6GM$3TQwlR7UC3t9&#K?RnG{y(ucj_UgVeiGm<(IrOLm{ZL|KW%Ya!`Rzn4%5t>Y zj)lO1<+U(#WIfNOL{5(>G}I-bMTwkG1c&Es#$$7>ZKPcdR`{}Y`*xL`>lILW?*}t8 zmXLkJAHjqsN;1+{rd@u_P9ht0zV2g_wah%*`b^vqp@!}}Ux%B=fEPDes}ld_vs!&p z(k4L|JqJ$VbfAl~MnLZEHO$#A%oUfxEnU{rLT30LbZo`i+lm%H?~(D#WGGj+ zx;d|1KRd`7Pqgkyz7WfovqTU-DU2&f5p`OljEG=%^(Crz4SomF*qih?j66m)>>%}S z*aSW3Gg(>T1zd5IMGa=(eyUE1@IK(sjGerjdujmhsQLwpsKHpQF5r!Qlbn*yjOxO~ zt6kxn9OQnHeQtyn5q7Rd&d(L&>cL-el8=L=@A}%W+u^NB-r{ea<|c+2{RI zHS^VgY}y+%dyIF3`=2AhltLHT3|}nXaI^?ELWb~|&Aa1xbH z`*<_H%n7PtgK=!!+UOlAd5+cuNoima+edW~*rkal#WVzHUn9$DhTI2i44|hB;I0x6 z6l;UNyiNFi4#ke?1w{X zkjEIilq3DQJCMYQLo2~xB393lmc!#rz*)CRm9ig0 zVc3#qi<+{*I_sC zC6g!@S-~6?0~XoeJ5O=Q`zwDA_^)hvzi=In82zaNW2 z#00iyjpgW9KEpn{cmYT2kCS8~#*77LT@y+KsOsb;b6F%6-Y??d;Nf!Q2)QANf2x+y zIZ6LEM&c9n+d_uT{&bkEx&0?7{-W-845(f18sct$U;TZgd5m`ODIKtX8#(5D=i(xY{St_(% z))u8;{KSs$Pq1*IeULIjydPzThR!5Ljrwtq)@v6>Bb{ffDI`x$pIZTOuZ<&^o)MQ#lqn3y3W_XN* zbRda57=zdPqt6wO8oi*{k~JWN@#|LI*FGsku?Wp=>j^6Yk8hn|DsN+GQ!9D_Ufw5sR& zI=uI_#4vc!wMJH-9y}H%8tKUgnj6gdXKNhrH&**W5+SPch;en~3+!e}FpqAUm{rAG z49GK}a5Vs(w$ZR8JNumqwYY7ZzU!6eHI^>B*?}>hbc5rKtJUc|5#;(ZEd;K99GBoDs1ZUd9BZn%t~MA4JEl zS18}`U>loeQd%;r`P)&Qj|pacnQh7X9#h2X2_|}C*UtzqWl6V&5$1f+C7hk6l~G^O zrl^yeU|F4#Syz=`;0cz~R+00s0P6!o)&GdE{u_&>dw`W1cpM8gJ?L0^kdX^B>u-z| zxHa)}a|8JBFBmK6_7BEN2fX{|-3<_;`q$kJ(31zd8-HL`k$YfO93b(J;HnBh6`%%$ zSat1yDC-YH6(HCOItJ7N_}AQA_a1n?-+K9Jwerh`yuMym_-ufI2Uu>yteZC!o=x7NQ+VE)w}=7E6?5a6`|Iv?5scVrCo z@3CHU;~%Ymfclz&Y;Nv%dH!I(zwCAXiUI>%04@eVkLkZ`2Ho47Jp_XvFvoun2D1P^ zuJr&64s(9)q@YrJf>OELEapYz@Dvd|h*5L{{spVJ1kk%7hicKdsP@B76hKEL`Rmz?X2sBp0?!nF??IIv-VyvQk$5}yY1PnROnU*(V zHlSgkZO2n-)oQj9?1jY@Q&|paHFvL;)=dtT8Px0)D!e3lr^a{!shw& z?;K<)3)3bj`qErtW`s)f9288+$WM?@7*7aLM3@xD3!F^Y<9N9wxJ0;Q*yP#!g2Z#R z-}z2JQ}`r{9graq=NZZkO_-U$cFD^rGOY@U3$e-SPH1VjBj=O1DOeoLoulC>voS&$ zLg;&o*fHKPtn@)w=zR&{x{d8nh|izo<~j`>X2@2+$ur6Kpf^8bys>j|IX&Ubw90AP zR)SN-ZDOGA5H57yBRe_ez5w)aQ)&+Y_9IPli(9o9I5@Bc7Tv(f|Uuq>=kzBbSKfe0D5vLLDiT1>Tdo99sIwb04_V9-3ku0P< z8rf%?YkFz4rOB6SO4+4CD0=#(%#N5LvTQ}P70Pak-Kir=lpdXccF7&;b}Wn=tor(X z$QRsbr2~+!rTuPkp{~%KV8#G<_4T*MMBTv%yOv;_{M@&!T^EqH_)?M5rsGv{7-VR@ zQisc4>Yhg)-@G;T=9=dm{HTSTAVc81(TDwc;jdXQ4~WIqqF_?$dP@299KRWGOs%`q zpGrJ+Lv?V2p=xqjlDu4cEM^o++}6+$jvnsAYEQ~?6TLDQ5PAA0PeF+;9EtxHVdnEY zs!5&Kx@;>%A-l%1aBLk6I&Z<6AcyPS-+!cJ?cz{%i5SInA0xDFs_LAUOv*%#!>=t? zY}R2%=zZr-Q4t_F$H3^v zmB|4wZA{hU{!z;Ha-E%`oMhY8z_1aeLhW6Vp&JELZi8<8mA@RuQ>=r0 z{#g0Q>>;WCQ049{)mYVZ-7sUBR)33%{bPV|pu zj>()5>R94Xra~#P!NnG&SXdK5E9CpI_?a)+o3#az=hae=$69GGy4{Tt*l_9PhfEZb zG7;ZP8BDjyo9WrLsFyYd%dVx}?TL~{QWI$yDw`8(@CiMZI%8Ts@ zO6g!fU_eAYhq)+NVX&}^JWy+Uv$41MXvFC4*!zv$&>3W8O4x9*{aM86GghVOumq*i z+*KiA8v@c+NX0_a3I&DPG0j)DEuQu}HwuL!j%T8D_SBie^S`9AGe<-r(AJ)e#N_`>0Fb%^k`ul{*c~fNl)jB$g=$T=&k?ULbV5zjXb^0p?JTP z9d26miBNUVBoWhhL#z$XK=_=|nb3h$yBy(Zp(J9yc(ApX?aeoWl4~nI<#iv@&mvnI zSFdOjy}3p9HP3iipxQzYY=l<*2prh$3Wlu|IGi0{*i+WKw>y6vTV+>h(cjzpP;gEa zCtOS%iHvDSf^!ASEm3a4<8+{}vyzk@of=%7v-6da2sWWkGmigGW&mlAlkN!@^ZWu{ z$3>6ZHuOftSQ&Aj_zg8G{}SgZF;kz?O|Nz~EalNG%8(D;R~kU8inw5zK=;@2_+l6= z)h4(MQj^o?DkPL#^})?o-K-)hb5eDj-)s*R+TGYc7SL@+RPEzvM|EkEmnaf?qEceS zMwZJKAdc(BSqE}qk24YZJ$Fj?W|L<84F73a&+t1$>umE46E$`8l5QJjo~UEr7X|AE zbxyH6u~kFdS)8lbI0rh4B74Uj4wm`SqU#C4Q%CV`x6?-3Qk5cQw3)N~3TsnyPMRRE zkX)OFs*x;V`kXI?P!r`#;-kf~d8ITZ!UlSFIaxrX6ZMLW)Xnj@A`zXpg-*Qs6UmHu zoQJt|t5{IMb|i}4;>A?W`%k_i)XY(lo3l&@m2RxuiZOriIUZJQtbzWt5mAE@^9D!H zJ9bkHvb0`|P|ne4k_exfj+%*1pVk7ppucX>nOr31b!?owrk)H`tNA&}bVcgsSgffm zYP4yLl32fWH@`SH*tg9%IEQFQWLdI| zo4RLFi~WQ?_C_=ksYRzKc)jR$yZrWXbMD^|wZ$jcXmsMrB$bKQatWE~Gfh?1JJD&v zj@uM`TJx!#f)!sq7Nbjm9DLR}H7>u>bW?$)P3#TdZB_Rbwi4wGk!D?mEDS5dO6??v zu%UFILC?VN78c4iajoIbX|v`qxQtAw73Q z11$cZkd98*16PioPD=)5zKA1m7)iw-u9FO$*=2U`+bd@Xed5#^=~|RjpTWVI?VSkFlQh9^WRw zlIZF_ZVb~l8erITRiz21n=dPB&|$>TS;n(T5CbEc;`oweXC`Ig@K#%+Ad2RrdE#3{ zb9=s;v>6eq+z#OnRf1yqiErk!H(ITLFEi9thjxia>}yTy^!L21RFk=!SS(8=QI~fP z7RnqEu1KkVNkT~>D1Cl@dQ_R2>8@I@+IZ;w&W+m;X0G{aR)eFSL4=hel|y~|%E%EE zL_KJ-TEpoLO|acZryH&v0tt^5r9wxsS{5aXkcd(^Z#*1mC;&lESX(EFL($crSTWQI z>3XggA3427eBGWF_mOA8h-033t``}l{hHxP(|$C(F{5}51tp;vPQ(<`JYHMXOIGLg zjw;gAy_jfi7Rr=`WxK1D|far#Y3PFi$ccLkr zAorU8bDtQ(-qP)K$2P%%9?po{dCxf}{%L!a7}*Q;ul2_z`E~<0AswD17$bOwF^@?$ z0?tL|(QUVRFG>lg8cne~GrOUNNJ*nUd$mE>-Y!md(dQsur|T1iVoqV%kxza1uVh%+eI z9?YsJ;cVsgr`mPbtQyC|J{y=;<3bY0<~0c7NyLa+(@oesHI-sZVYm^F)sCn=+4t0sHkfrQ| zTS8#*;qlp}@j$=VnpGAucD0hEMB<$>&XIJ%9TgE| zYkL_Xx^ms?DGlvK9+`nnx=JnUXxW$$IMRWs!&IuHEIWb#BNNZCf&e74sqQK2y3)p{ z^_qc^H?HP9dNNExAH=L5WzVJ-9}bYR2+^PFE_8G4u5x)mv*nnq9F?}yDhNBfp~3ng zBCs;0arxbP``ZF>f_Csp#@XUAlI*>2ad(Xs^(HFR@XE!xRq}5kCoAByyovK~;d};m-S>@C+`Gqb14wGfYFT8GcK^m)L2v z$9W%p6I`Ia35rsLDf!bAS)``Qd<(S@D04Bz-#*4*4Fw>P)}MP`bzZTf&PBJ_;p;z5dp!(uqRqxk6tWR-*QrSQ*(nks z2pgxz@$J>OgFAZX>+-e$j+X;0&N=?8PWp&9RLrWOr~+(=EU^YrGu-{}PW*a{pi9-G z@?WCn(F_*#o5{u^Oo|Tk_=(fsgk;-h% z@swqfVNlpvuYkuU^r!bD82<1`5aP{xRz|OA<`rTs`&dwd2Tfv7SF7sl)pG?&0-T_5 z%z|tDQ@cZSGYU$dr9TgdPc~(b_JpNK^l%q?+{ag6&lZf$`CJCg+BEUW>qL5POUqi; zp&@5}aBrwtrFbN=G*P4DD@Z7oVv^7HzAI);8F(E$!sjd84n~pv8?G1e&?}Tw7OzH> zrBod>^%jRzRjM(bF_Pd8?@SzL6;pjp$2Q`wj9}oRUu(1U8L|hrJfC{@+9UC%auyfr)xJS_^lS;1yt3IVoGH^mY(LauZ{;H6)f>-RNEENDPTIm zIr>qqa*@PB=S4E7ls-zkOrJ9XF`xwZ6ny$i%_RgBao*`=N0aemXCEmRH|;c}o9H%0W(hln`RV1k ze>nPN-KotQ{XsaG5IrqGxk^RCLcD@jtUFOJ?%7EQe(c+PI34x%rHtxHk!WZ9qORx9 zGILTtb4)jec5je|$UFCUsY%B5nt4LZXvX7^brFXSQHm@{X>Lvq%Dg(a55oaRw3l8- zLPwPIXO>Iz%INV#&_!^|rW`7rOzEt*SEnrE4TD)V`c6BgKk&@m*UI9AHJ6n*xY4Covy+*;>>m=k(eaT*l|B{C7`r}$$)DeOQ z^*7LtgYL@qo|Z zB9w+MuC_PV+!(X(l^9ZcbR}?~sJ!Ad1;$XI@R<24N=dfT+g_u}VpziWJnX3ms7;Qp z-=0+a+9$Up-SIB}fzyg>V?-1Hpz zZ0L)o7rFdSTMZNkWO2+W_qUW5b`O^AYIasGcJ3iIM&tcCEc?Av>;wncQo^d_@q zA}#od?yK$fiZfdej&>p#z88lxlp|Ua%UfQtDbnAV_ zTj)4QoU4aukaCG;=Xr;BirqS+T^wGRz$g@NToPDXUTBUzKY7aRpji(cl8dS558efT ztf5;AHk`>1<-4R==o_7d2(Ve!`8E|&H-aD_BfqWU9wEjM>1XXiASU!L%DA{_a1 zLI88XgE1ctA6Pz$GAy27Z09Ts5w5*&%3-< zi$rjeu#YvD#B4&up1I9meO&K2;(=U=j(NSD5YH+EDi|RzLap? zov(Mh_~ITBvb`hnvZ`Mt0ei{kxo(}Px=+`B;XZ-M2-7!hsqaVp8dEII4i=)H$jqS= zA`w0?hI~V;C*ZPS{eA<7#|W1miHm23DZnz4v@_}(e(a*Q%10??#S+1ClAd-FbX8A$ z+onc`5dA^WS^g4N;_aKoq4z_@f$omq7KdIq>)S*#($Mg=F!`nVBChGI+zRG>e0?@K zN7x$_;%By0{B`~n=0f5WC+}%wZN~&_c7Si7>kB>ycy^)X@=d5k}jbhOX9dpYWweOb>IsPaYxVoh(T}Sf1PYW@-F*er`|rXDwd5ERD)hFNHS3beQu^_N!OD z&1Vd7hQ~fKJa4tjK3jJUsP5tOv0jjdSz+7vS;f%ylzVV-3mSl@?d3#so40Rn~QT`yY6hmyj60 zzg?ePgPE^TPGbqg5AS}Aqytqp4$pQwrvFU6C%+Dev5b6&C2Cr~0Zt`dX$R=q@#Z&i z`B|oASaebYoGr~YYCACR`sIVh(Gu%OxIFqxCig7CF!SbJ&nyx1T{k=?tU13^G9RHV znJ;v|$im_9_I4;a!*aE2w%A{W=5hqO_uhbUYMe$iP5*90}JSx~PyNmW|Iq*RT6di1(@U%l}QJoOW>(d>xt zE{rKqw|m~c?>q2J$ z@zwpSd#1wjUIW-48{E)$ zBd6|etn?ffD&os}CUz&5nT|{Q0Gw?LvyCmuDt}W(muBVY^6{7!y`yU4wd~S4qpO@q zy_>T+E#2(9{<(3_FzgII-)dWARK|~Oa@=)&>DW~p{49uD0|IN&uTRZ3B(lF#CwYosSrD-Qco)t5n$ z^u{Nzlb5?T^a6GdEq0WLH}O#;t!Fj;1<)|nx-qI$vqMrv(e|njzaV+n^>W-OIXF02 zO6ZhFA^#L*HaJ*3BqX>mUpl+s?m0#@3HHC5Ks@{|&409k_;<%o{4jz59&bWT4?M-2 z8R+QAOwahs&y0cTj}Zht&>-TEhbI#o%R?gwT42I|Zv?^T@YB5$@lpsA$`+wgg<0crOZ8Gcp$Tt2 zAzp~b-b)Ct+X(?rnfHhy;a@HhzaTq*_XKtOyo5c?)YX2*+G2f3(^8|fRAk-ZYrf-A z&zv*gliJoKJkLkd)9WQCrIzm7vne7^&k;CrEw9y$<0VtcG(HF?M=zegqG1W^Y2N9P zIvWzVTG_B>yQnCnf$iB17l%F@D1po=PNzoXx@@<0ORT33oLN{FGedF?bPZ z?K`BW2o3DteVE3M6YaMRmN5338u53V-BXYcQjiD`>vlYO$mzu^-9@&B{6hF&=#jkl zbMi?PYLYP{_K;{2A0Vkk$P`4T3rLh0Ap8Ok6Ak-;9mEY`T zJVJkvRHtR&WY7z}XLN59MfU^Q(6I@;HkM1z2(K}(cQ3H6Js|^Ehu1yDQ57u5Ig{OK z4(c;{+%K9)A|ZEh?@rGxNhf67-1SyFTcs#GbuXcGWXcc%pVsL}dK{1|;4(6haf{;Q ztav1Tym@3M`>CBOzNZ;HfnG}EBIz67JIXH`N|=MXR_J6fMVMh?DhgB3Z^#ISnbjjS z>}%>tj6KGzp*>)f$|pY3Q5SguWnE`VfA-tnG`TnKhnU%q zR76#8TT~SaM%Me@VvAzJWl-crsmt_w)ru_ThWx>$faO-z=7{?Uw*p2~k?wsp1MO~g zSPz0#sXjcApMX zk|LUt*Q5f<*b{C{_%)7j17Rcg`%VmYD5FX%aE^<|P`1;ep*u2gs=`8sti`Jy^?mOc zO`+K(bdfwp*$~4UU5}PvtnX$lqP(^_v==_#jh#_)i@4zz9nY;3y_HkZns~CI9xcRx z&I$&uz#?tf+0&gE|^{y2S0XNv>yyrd4gY^ zs;5)XY}-4wKpre9A%&NBN*m`(JZ}|V`kdc|7zPImB;B=~+-@l?X(Z6Vv>x^VEVXWx zeet}PRYl*+uD=_?L4{q$R#;3PPLx?5rYK+bL&pOdFjs1~x!WVvlHuU3b@irCEdC7_07^t-?C>(RaC7 z+gR-<0B_we+c2(!(lAf!j_@ibO7&Xh($7RB#p$PKJ$QKwCjd3lD#xo_R5+5Xs0?F) zDr-vnSusgGY?17S%`Jc*E#T?3EDd;B7O$yw+T$ zZy}O*m3-z?QNTp%Q_x2z0i503oAAL2kw0)A)>&$W1>jSRK64*OC>|SX)Yrx~v{P<|V+ zNF{lmVN1e>A~w#1kap|@%s#_yqA;osVw;%6{7AGviMJT+7#lS^t?#fw^_*>c80Mp6 z60=V(Y_(J0CN|*Bcl4TyH=#7q6-)Zw1afsyW=}?ImQQ1W8;*;R?lDh%YTL@n!o#_@ ziLJ1p4U?jw$sZ|hL1Tu@@08`VDa!jf-;qKxqG27Aq{Vy)@KR4ncwc9oV9enJW)}N> zDroMLNkz1_$lDX@C8K5T@LSWFh(#LoYB$>+IP`sX6FBY1* zn4d<0IayAc;a@Ya5uU?o4U*l#Ss^&1Dgh6P!>p(L^B&C{CvOEeZ>Ru6^cjqNK*b)6 zlg7Im#&vj$lk+y!8fbyjf8g%Ok!*>``n)1{O%pt)tR~PLe&myYIay%XMHwOQ>;>1sK33XC`6fK3?(<$xcvLzZ?U?D+uNEn0s ze#OuNfDZPS%Ip1m8LR8gIFYxn9wB?zTw9~ zXWP9cX6FUT!Zl4Z26hE~n_^`kP;nNcHCBooS{$g8yn-!+E_I^X8SLvAw}S$2QxU^F zvusklq0b2-T-;7Aupj7WX^;5bto+~%VR#E+e8TUvLkgdyVl(6tf?NLbatC@DF5o(~ zk2$|DtvX?R;Q7Xykv!QN?J{gomw{ZUA0sR{*wZ<|xo%erX_+E1NPrz;G{_Q*BAr}; zJv93V+H{jElhG8lwaq4SmzqNjX?|=QVK7qDe?n0wiVLb8)UU`5)4@X$iK{u_>Xh#* z8K8tWZ2n>|wNj<47;5h|USM29BZfS9&hBkDunKVDl#{-OK`hJ0M&)z_=yOz zc+c3&Mq5DY9=7KTUQfR9Whgek=!tl5PcXjrAMfJ!u$e6S$3>u_2?V^Q107%i2_h!d znV5GhB1{|r2~G(nOj^_ANfEa$vTLCItg~#I(vuE;zBnB-i;JpGlVz;7b=6qJ?dix& z)us}|zWpO3a}O_a_|X0V*_2C@-{f-nkW`)MZxQdy0)z+6KI{CbRy-d&d+7)XdHb{tR{M?B+F?Cb|PkkJ%Km6Mn;{3xLiAkPD^8 zEAnbMNjD$b9xS*tf`oIsI~stPJB${+J?wP1g0o6hCUm`!j0w3`g z`14XsUJ|y&Xwkbq;LbQhTSdqWBrShm#ahcyUA&`;?{6-lg7ZClUWktreKjumZdc=w z%?v)6s>gHQA$v(b%7)Z($UN5jm`SI04L@YQI`Jm43H}w3;J@He8759@Z$(wj+kX#(Bzl^rqMLJ)-OE7@r9t zyzwW9yy&pDNUI!)nCixr!=O#T&I2Lys$8_LD;`|z>|+ibB%4w}IA<^9fyPl|&%n@# zuDvnEq6{}*a=F1NtuOr87;iopXAj*Nd(8RmN?4CH*^Jc_0P6)|m(4f<{z*LmjCyCE zO|xZ&a%IU#9w_?eYJcb!LHg)-+89)3{|y^e95FCEd#{5l=}80osCwz&oL&fTy_6X` z)FHMaw7e4!WtQ&gQDISm zehp{DI|s2bdO-S7Ite|}SEyheKwW$6akSkEmN+IbS#$WHuOZ~@V`uk+y`#Hg0FN*u z#e77DIOKL9Nu-0d+b>deu*+VL^4=lRrHhymF+i>E%{7TOiH4xi@3_E-likJ7qMc3Q zlrF)yZ1GZe>!6#rttlg|HrL*3!B5#Zx3{ z5d|slmfyRj-bhItqN%G%*0KO40+q5-PJt|ai?ItYKsS3D9Wi={ZGW2HPU`&=QIFWl7u zP&`LBc>xacusLWhy}Wn%eVpi4-WNU_T2c79y{cW6Mjoqco*uKSkC7<*{`2+kud#*B z++5y5F~MsFAw9{9S_!z1`_I`o=}^jPJsOIr7|Y7GY{^MU>MSYXG4zm`0tlb*p1$Bx z|BV9j2f_3|p3nbR1>}DLJpN4t`PvzxW&9eBWczbd;y*=@FBZ<J|{{!3@#&o}Q?1R+KF7SCFI;`LE??g}og{iUq6s7&FN*3jWmJ_8Z+?3! zt6*|U8qp|Rkq5im_MRp5nGe+!POVdRphLEkbdPm7ZI&DJRllG%JHf%EOG`*FaXj?N zTAYBUmA-@5CILDyUi(X@&^d{zb<{XEINJ4$^N+^;q*?e-IWT%7W~U^jeOFMjboqHY zy_rd4BBEuPegg`Vf*^?CQ(|$Frn$n|;vW8te<>}sStZ3;?-lF_C}>TdA7*X@jws!a zc!_u|0#p;fEE$B55l$;Yfhg84ErJjq#LgH>00~LhM~i#`BEL@NnrLk6jFi?-HhKEc8$UShYGeDM5g+`1 zfTM!52zIQW%t1M*u(4A3G&OCQ+NfswBk;y4MS7Kv%V7 z1RA05eq?j7FJuUb4$ONViend;ED>b!CbhRcrzLBC{5Qb#4$HMAS3*!y`5hWKb)k5d zCvNVyvVxX8AN~h$jerd8Ly+(OVzyJ-B^>Bs4jB0@n8GyM$eyW=CU=f)qPiXw`M^00gbGS+O+AdL~y~gzJ8b}WnLifo!0nw{9syR)+^5GSXqb+ zi(=BmRgEaxE$xd!#$aLKmxaWS4N-wj<81zoWvgD>F@hS-gRvW68(f90Qo5+WOsQnB z>XO)-uuvLcQP#4&USxK1-gnCQbvxM8r|YJBZMFf2S&vd9wFRk}-41RqU-;&J)Kk)= zFY4s-CJ>b|S;?r?J#{$e4}w_w2~JM#v69{I+|;g9fv$N|vDQ!y;>VX21US*GG$LKN z85Wz??glgp&*>Ra+l+$-%iM8a(re;-Tjr|S&1ayzU@1UbV$?{4Yw0Q!y3K%~oKJ(h z*1*YIBV>24J9n?J@=OP6wP+gC(3kugu2TAzzoHVSoWy>N@%>z)r4s1JSiuyzZ?QpN zNY8yyUV-kS2ObNPX@#V&W?@;mLN&P)(iY|N4u00%NeWnpq}}cZ#2Q8F#g9W4I0r92 zd&CEk9|#w(v=fWrkT@B1hZHJzKej~);klN=3D7ia(21I?Wnu3>kEcff@h~i-)-iDM zKBOHvDq3aK!AAE977~0|x(bh*i@>7-uP3RAcM1H50U$pwpq-x}UZe1!Iro)J1H>#e zgrD!UulQIm=4rG}$7|*ub37I4siERK?P)8`ok}PiOmhln&W>B5Zd7=pe}q*9ER`6N zQ&yI+t@=Ud6zmY0p9rE^hEyYP|5)+%IS!S-I&Ortd-+H-y`L*b<<^KSU|dRd!n?Ye z(RgkBiTXS+5-}@9i-%pnW;xyf*0Gt}JU64c1fA;ODVC3>az@p%8<%=m-}>l}<8T|8 zVqebpcHX(RG{{A_(LGv*|DzH*c4QMGbr?7YPHvqSKCMTvqV=c{Qqqu3Cb3u7p7d*Y zV0dC>8XOkoXQJqNSQevVCV zovdGxnzm>>RF4-)=gB7R#?pZv36EW-RW0F~&$PhK-4@7jAVng|R8O$&aW%CSlk;I3 zW!!h8uIN_3z&2!l>)l21Sy#3XoPavRH{Is_xW*sokV^X0BhRcFy^v zHp$iv5~BOD3E<|vZx4?c}Mvy~ArUn#8NCk=s0^KCQEl%~5l(b3ao_t?y(ZQM!qS zf~ZG4gdU{KhIjXSRNt0;(`ebRO$flbC)^ivf-G0|WL6t}Z&U1>0D+@6J~z|--4VX8 zcgdrEc3iLH^{9g&oEc|s0qggVG2xHj-CxgsedXmvc})zY(fLkjN(J==2?l+W;eEXV zWjMo9q9y|JUJHCp?_ENb@)6ScqdRyoWKT`<5h<4eWY@Y^0ixHs1eL~(m$NIIdmSI- ztITj}yVNpc!FiCUA!oNcMAqEwt8<&s`?^E5DoHWCh!JEC3DOmc%gTLcvfU*7p1H2- zMvi*DbfPB;9 z*Ctq}1NHCjb4K}I!k?Nn@{#9$ghr{fh!a-XTH2T&Gf-db6wkPCotPu)Z_XQ~g?pg0 zLR*z9EH1BzteL@%+p=T9gsgIHuKzv|Mfe0{XGbUc*Q4)G5cI!u^!-mz>HoO+zUFJb z%D-Pb5*%M=A1CwQeXqZCe>wjkA^rnw%EtCZRQyZ#_kZLoGJe@(|JwcihqcA>N2B=f zXPx91M^W{kY^y&Aiq?Ok6aUIgw5NCY?{2#PYGD02Rr%Me?mrh_zV=!ET`VdKBlBOe zh|%iqD#}Z({D{bMWsONJtdurz4S}flE2X%V9@;}(z)-(_sR|+qm_k6N9XXg004pOg zF$g1wh=Pbisd4{O)dp>ASMw~xz3}X4dc42bTdREC9IR}+@I33_-{g8GKHJ|vfA`+9 zTZJ(?MG5FJ7$2sfKvSVxCK#oo;$Uz$hRYhx)lU`b!U#=J_~<+CgOy?6g_Fryed!%H z0ODamPUeN3%O>2#h)UwjUnn%0jRQk*?YTXPxDVz>L?zohZln;@0sob`Q6s25Yv zj8jjz!}=gXLrF?Tg_aVb1Rda1O_E%bima1PP?GXZspquFAgC&(Xd^mlqJ6&vhX~kC z`H`HYt`bqo7Dl?Vz&Q)t0%WN7(HPJ>o^RAf98RDV&SFGe6D>i`6eeTD9WQfE;DS^Z zMq|WU6R9CwPRd8Hh~q+C?}VChehrM94i_ojw^8J2(X)9${Pms;ukg4TYG2i;(9c; z^7LBWvwpW@B(X9v8-2p<{-tQY~Hhd~XNq{}@HNE*9l@ivnF_v6S&{!HEtc!@4~ zVpVKtXYdmE8As7pRq%Qq7h&6icC%l!H}9-`n=xcU^x+Jvo⋙yW6;2S#|LHmbIev zg%u+5ek6|9#}D8s{Fhw5{=Uz%-MsdR?RC!Qw4GYxoSX4Y&L%x&o{P%8k=GO&tkW1QrrP6*L+L9)JH0FTR@UbX!M@Poi*gw5Oup{-6vbBg?se2u?rA5 zJbR5yG;EK82)6#A7m3*Xbq{NH{wNlyi#aKg5avZZ^cL&cLCWKF?0 z8QVpO>6mOH$XXW@My|8;`M+^6r3p%4Ij=LUD4zJdGg=Y~m;1iO!jF*nXNvp?^9h}u z?keZ3eVn5Yh3h-IP==ntG>Osa>gi7uwt5Q*W#+7Ts10yk%vE2qEgUVAT1fI6M|aJB zvjkzH*UvMm$u6oKX}l6h%|>N-4NUcWIe>HP(Nf123$e4jujd`%iRSSdnC1am@d-(}XO%@k#IonDI4dsXSL*D6EL*M zk<>P)+ZZ74;7J1ztXVf=AJB*q<@@07@v?~FwNQBHwfgOvtNszl)I$>S1NfNgul z#~trO-9?f?F_+ArEjvNV$o2yjn&(;HArF-gJqn?2M+{t+S^>knL^nbT#!<^z?urCE zJxNFS;xiK(ZVmFGj!(~{UGN{tJxT}SE0M62V0ld57_k8wim;@k;V}F*Rq`g#bJd#@ zl0pInq@Xf>dM{0RgSd8Ecs)!Cp^)qA-+L)0mU}jH-Z2-Uv_tp87YAWp9OY)2K>u{F z$D0lpw|!iE=so#P#{N_@^zKkW+bt@`c^1&Q2@v7mOEiaGfEmlwTw4Lw$3`nAna(2f z$v2*xI5~K4d^5jt=7$aw&m#4N<`GoR=OZD3Sq`PIgMWm95r;R}6{x)T=G zXwim2i!^Qeu$TOXzr7<%BUEBOvigxZRf*3JVzyZll#*2`yIVP*fEd>M%&&3% z8u_?Tj55lJU#HN{%`jIY1oA0lj9UH^=1!E&ea;wlxv0(e(b`-yG8f$D>CGZK6@Wa% z)10ifN#c9+z)JZFVPnEK7aARxyO^c4i>uz&_0SXBifNRM;`=lP))jIwr7dRKW!w(=-t6+LGt1JQF=(nD$AOZClNzH;)BT=Ca zM9jd&swdh}BnB%HFGEHZE73+LNS6uzC`9IrI(hzv^rbaWYeiBWK*g_@MgMvtj1~v~ zK|t=hg2d8>#W$krl>(PS1z=&iVx2s+kATHgZ<CB*KwMa4avlte?|uCFn7Z8En^&~b zW&N-(?foQ~RKab*C&6?RxJ@wMB zn92`@BRg1(eD{f{f-Rwg0}d{{K?k)$w9#vfCdgMlC=N^S&=NRw9R&Y=kmez53fnOu zr)h0-POa+iB=3v&;l}E8H;R}#{U`4ihy7`iZqy>+Wx>G%KM3Rrv~@&{wgh@1-fdt; z3t;YgQMukN*EwHUC%qSY#V=L!DZ!Z^fU~tOOPp76C$UBkYTEoVqND;vxj<^?}sIeLN|Xk4ShG0N$h_lFx41=u`fJ<4ET;Y?=NuD)Mu?9Uw9Q+Q}B$2Xh_ zEZ`A#J^4NL<+tnyNID4yP`vR0)y1%hA+HyBH*L2^it0}peP&hWqdPWMGYH^#xLVBh ztm>@W9QJNat>MvPQWq#W{X|lL{Glf+alJZd$+#?A*-?L473clfi_gEoo4P)@rLK+# z;4{0mzIkj9kdb&CniWwl?}3i(Aa;2cZ{oeZ2VCsuO$prr#mStszj>7r{pL5Uc6f z;ljF(eJz7Upa)pWI-0cGQVpw&!E{+3^#<6!r##Y**<7vI+3@}ouvX2oNjXixe?E=9|t_R zGGhFY_hYFiiTLna_RIGMv9z;#tQ^Z~oXurWLzvDp({waTdzxiKm4EVXqAi~@w+hh1 z&vTtxy^0y|Jtjc%McOhOGC_+T^E<7_gUQ1aT*B;kKE4!XQ3#ecv{99ej5{WLkd8m? zo8rt1CMfF}u$VU}l?avfedIm5o$2_vhB-E8>4iQ5whuIL97>2D0;8>`AZll=kO6Ad z^^%MToi)#*7&FGj_4@s^YVJDAxb@=X9i@y9gNhW|os2n5exOs-#$+A&<+QQ`(irjq zkVt74IinC=LUS_mo>(I2py7f-)~8u>EJ=f0bxpg_%PPv-4s zJa4X+$y!%0FCn^mv`1oL3i2csQw2+huL5qi{v-# zeeizJmJDX7C4igX6~&eJkG&~$yfMhSg zs_OEJ!qdk;T)0odLhWW<$1hY0yW?(}Z!|QDS=OS^aD(;SQR>XCIl8WcdQO*HHYa^M z#)nY(inzV%M!m_C0u-?mAXq1QG zz`#zGqBTE?yT1>B_8NPah27@qP>vo4i6bkrI;Ffy^d^DEImrdK6_w5HgsLBy z&9@SHu=d+f?sWcx?@2Ayr$rw%#Ip?90%68a%kh6Z+# z^yi-3wIzNvy#3_gl@tSHmi5i;w&H<((i?tR&Y>Gw-9yGxcbL2$oxOwKrf3^~*^E_? z7}fA(#b2Jg_@dL#Zz1=PFDZ1$Su~_on2uWZo@q)-YAnto!nxv1SZsu4Yc!xu@C~#7 z_=sIKl+y^YlJ7m#1SzxM=qZZ_7w$^|tRgp>*0MevDvjOC1pKA*;(@!%m*6N1Rfa>Y zX0keiJBr|FL`$LC{1}R*OSjFtS_f#C4k4fZ`S3*z(pegsZ0$GPOUWZ4a?< zy)vbxf|bFi2yUIbE?eulPRiuPA|xM(S_WbsuR4@9^ukZJ{eAw8pZw~QMxXzd^4Lpi zRix^=FO#C|Xe8WXLarFvcb#tQ?gZpozX&p~?q4OEzl}5fI~vXZ$Kcc7q?)f?+dmV^ z?0=?|{|$4FmE%jf`A@0le@-a>@yY+AJIDH0ckb^p&j0Gs{gXNOhb{NDYw^#f+@FKl zf0b|kc;o-xlwS?OQrXeO1xHH#FKzv1T6}Q z1OZ@xK=!_xoX2O^;2F9~v4O5Q9cFrsar9Xh#Pq^byFAb?l~)w-HiKsrSz+Fp(ZCK^`z z=$y{BTCbB@Gow1H!Os4{qaXVRXoHi2{15vOqPqc^LXt{)f@&6$=U|F?6v^&V=f~P) z<;ECnWeOy8bn!pPewZY8Wo6Y-yE^GbR2$47V>BX453(6*S6662HNtB96&g8cV4=l! zL{tpu^(`7wSBso$S_3Bsi5lf;u$1CL_r=r*X#^6|2fbmQLS&#Xj%QDN;53Cy!FEaU z$a}HNa(VB3e+4eXyAs(KaUsrGWh4jrCI0+3c0l6U3fnZs1OcE-L z2f`$@ReFfCs86pDKRdM?SoX+kyFq~Ly8`aEbzIGIu|l>7ZW^p$v6A&L#w56V0+9LU z^l`n}vRUM6w7EtE`A-8>~ zE63MjBwfj4j2ym6bK7UifA(VIcHlz6nz1^l3zhthoZR$h#8RLvNc5H)=%n9N&$B(6 z7gTM|dw@^skMRRN-a4muCu+5+=e5Ox6k8bm&IxhynKU1ai_lg8pou0^2M~s5;|qm{ zxH}qxZK>hFxou>I{i@HO#O&XOnb@y6;no=0WMu?Ib0&tb1pY8dSI*ZxcDO>qNNg`riT^{kf380p(THx2zX%8LXRiy4?553NTnd z=bbcp*`X8%Ly61GFuL(gFAS6GE=3m4V7V{}8$}Coo)BI#Vq|1RCyvZAew*=H2S2Le zEaUr}3V-j!K(AI?NpcBZ*aiujS~@sewKe9g zMxu2zE0HOnS55$uZ!`htdWv7U9z)ui2#uHep!6>5DYTkhQ4tVDv7^(?xM?g97E*gv zfn!AQtK~g~*|<2iw5R|)h6vZ*G;B&Om#eLM3wpuX-IK(4S($oQ()WSx8ty1#oNVkV zWiLHNan^#aM%Yx&W)|j?)x@?~0ro2?)jON#_Jd~8#BtFsD9P(ggy8GggvYJ@zAMJJQ7-60FXldTRu0cm$%UWbY5?zKv4C1om+DXvPyBu(mw+H1~=bj#lN8_jk-7*|b#s*alKkrI@l{k)#rJ6ChE; zubPHU^9?JLZPk~YYo%Dvg6+U4GD_dL6F&-SU@s|1#j8^5m-~Cl;0Ts(X>?C7G~+%! z=ue)zXjgOlHW-Nt$Iu=no05Bg-sq$0a4^jZB$cb($x95Mt|9j~pb^BfxfT9cq8%s} zs+q6H_-SX9p{e}YUrZOY^P_BuR^>^$$lS-@5nvBQRM&g;+xrZs(r$v?d3bmgul7nI za9GjdIgoq(Kz#$wnm6va9%4CkfP66+oa+Mv+X*BK+EQdx3p~QCyZ4SojhZt%aP(#9 zm-eR{&LKSTjUToFKDMc?LR-CbOC& zppf-E+fM<_Vh5GMV$tGkYbOqEfiV!bF~Ay*YIhhtgrr+rtKqEer123RBBm(lfccxxIXAkt z`cMSxr87vV8U(c^i=aW$(E%Af#g_{8mIT^jw>~G^DpI-?rwc3+SuMvcgL?43qTWLq zA}@=8zY9y`vy^QdCc#PYF04!}3FAl@k_n3@WDi@EI)$Dxj%o8QTS zH<=LhQ|k$x+w5W8V6AP|e9RvOXCwzi?crcJ>FyA5YSg+z`uo2_G@5Rh(~sD5;ik6$ zZ~ILa98rHapjR=andXjft4qq?U5kTx*T|G)vE$vWM znjnBuaG`*%+^Qd^-AUi!aHVI4!zwbdOphbnpB%Eh)H)zg|n*J5Y;2E+wazOK_K(nif?Jgx*h45odGn~BNKwqZ=9 zjBFEue|>Gx`?(#8=bO!b%Cvh)E+x%7FmbuL5+swNC&Vvydko6*a9|ns`JP&K#G>Dz znw3ttY_va9PB4@xON|mr*!`(GhOfROQSZs*~XI`9AvG3#fR&hVo zbu}6h#2(}Gw6LV_H3l!I%l&Ro8ZZq}qo4sA+0wNecq4C~Y{z#^S~}vcj#c3PjUgFG zC>-5e$IWOdPd_H78KM$ttIHz?P!kaMw$?yB`U6SrC zci(kxK(OV8fISNE#OFkZE2iTiP&i)&_H+Zti$Er_RM?gBtaHtyCC3eJjvmWdrl|7{H6=dVn(dH`I&4?YFxx?J9uT8}`#* z<;BeCcws7P407~pft_FlOY!B|Rqc#jw7>ZZGC43@!oVC#1-+d_`yy#HCy3e}4pjnRwvJ7_n|#6cxcBCSpAA!ZFzF{MW<&&;8GT=dS;6W<>wI z<-a^vM$WG}T+XkqA=^KA%YW?}{;@3ipQbA-``1|AKQ8&Nul^4)JH|g;)&Iv!{-1Jo zg7p8D%>2)7!@rN-{e#Q=2ie%d$?87<&4$KSPJhyjjU2yTntcD0jre`7fRL2dre{k;F5c+G!oasDf}`EQ2uf5%?_>+asa@|IcuNL~I@P4X`> z%zxiyW@TsP_)B&$S`%CYMZFDgbTTGD0wXlvbZ8mjd|5#;0s>7y^y{xYBmz(orBH$% z+S4z%Fx0e1szw&YC=%(bzwtw)fU$;TFctew{zf)i_@cuM{oByzl<(zb0nhnlnp5YE z&*h_!IPmCl91{bB!C{cNSP+P~xo;CPIA&NN?7(9*!UJl~C#PVtiKU-RbX>`GNzWTS zTK=o6S-1dJ{=;d4a(FVITul(yii)Vc}p z*L8?k+-&Y6(aEg_&)>bjob_hTI@q5;=vSNF=1jNZ3bo((Zs1`dwAnm=WJSK0b~Ba@ z#bEOr=J)*^Q4ZmN%i=SBf*_B;lA_HoQttcO;e)Z{Xb8d*d{!bZDf~fuARe9nM#)X( zS6iH{I7Z2C3DXdeE*xE`rgSmSVM)iDeUnS3kUcMAiN~6gE<&42rVL#|`2(Fb>87Yi zk?#lbfU@_m&Ux@3kOv|Y`7erfl+304CUPC(nhG?me!CRXqkgq{QNR4>38chk=3nQ9 z5`afjS4|Ae6%3ZAriZSWiP;Ot_VNZpO@vKa>IuCSE@-O0i7`+WHN@KF+;y6IN6Lt$ zsie0v=vsIbY_0ngkAtO(rs|$u&UcN!0pGq~Qf|Hu_YN8*4iuL&x5d7@bUy*ou8Yw5 zw^>+NxUXCON~%)LU*Ic4D_dGTT&%0GD)(*BG`aQ4-Rmv@wgQL6M`1XA-tGzX_255w z=ia4ezD7mrR`dHxSAF*%&_QlY;+&fqDYi`y#s_jWtmK4-J?U!&$1`N#y@Qr zWimKM>SQIQLp3y~GTGX)Vv7ah=2$B)_jr#eq+-MO$$qCquvkG<>;B?&gLF+1BTz9+ z=QH2`V*p`#THjO8S)n?zW2WdADKusltPxu3)OHJmw}F|T{^bJg)N%ptH&UQaJecK98K_ci6jRjz&^z^=>G+yW`+ zhbbuJ2Serss0+ALQXeeQzpre0z+A@UPTy0+-u&3IJxw^i{UXV*d|%D`-ZUbEdWYJm zqPb4M;Xx=CW=U6VIOG3pj;GbmYrc@au;UaDzeh0?n8(i+*u!3>&YrD~Q%*-G94wzyWxN0hybldr^8-yn^nb|8~z|V+W85%x*5UB?hgPh?5a1WaLx&_M0``MPKs> zb9K+R*P4}a{%2QVKmK561JeOMgr#0(x~s;mnH3WALt`=nWa}G8p1Y%!#@Amb=6g0^ zWxw~8%vL-*N{rWrhjxqxOgOpg*};s>*$}3-20Lb6j`x`?_sbu0d|S7!p+6f*@YLVQ zG|a7xg04cVGeDlZ47m_^Vj=PiSVsy;NqC{E6CTOPAz}%x>`2ti6Qre_<)7))-K&mL z+K5O+2R|(1#azf1lL0LyZK_@O5UwPDS3th7sl~%m0 zcSzRwXAIVNZYW?0+KziBsl?g6(4@>|O!Smwq=mhMEY}X0Cs#co9Nm?yU=Afbq(13ocKfA#?z=-arM2?9`dx}aWhi10x)c}p3peCo0ZU4`gNfiAC?buW4*ywS}L>< zwD4R=()n?mI2w2lq*n9h106z*#$0o=WV!=j;goshSX^$A+#nfBpT@?N$HHYJhY4N3?%Z-Ghqo9&U2oQ@8Wc4i-~!woBHm%!%fTH&skXedP4n#^Pl?XNCOWD@C-K{1!JKhgP;L}!-qvPW$tC$TEvqXYt#Q%cHR%ncE{Jd5iJ)kCYfNg50K00euXJbby(ND}2-hkor$_VcZs)snTYx4ZM&_rfgNs!d2Q z=^km<657)Jwv0}9M|d)LUI%Z`AJfY+x(F7Q49-s)tcP&=-9Q#}TW35DA43M~_mLAm zY%2FMf3Np7rsSESH|)UMWFP<5kZSYW8jO4>CInK`N|7X5O4-bsP4vxAwsdHOspY}PU-Pcu0uh`lwRL95aCWbgNz>@i4v8kxjA;}}Y_gF)U2a#MW26+{I$8BYv8bWSF ze@-Z!oM~3TKb05~ZUDYllV#nrWmUVsiR4x>7S}oQ8c((*nam0LckeY=e#RI#IggSq!*} z2eJel4lkJY9w2`-co}z7=_&n9Xc-@!FsT+}a%y^fT0*`?hc#3nSwk@swt14s`Ucb_H7%&MWfnl$y;>*^{gA062a#GLS* zU{0yLe6B0}HwnsmL-yc=QSv#kRw?Muk7emmIURXnCv~+Z?rkzZ-kml_je)$usL|$C z+1M<)W#qXQ#XWm|Yti)WSM_x1vZ>n!6Z{lQCvhw-tq>|&)f&Een_~7}l=Ky(M{HsY z^|$5KH>mf3RkRdYgI0$;L>M}#-ESLlGlM&Z%K%Qx;RK@y+JJ^`3?M?A+hMRhSn!8) ziw@I|pvm#UZyGd1EXlFJoG^eNpbQ4%U8FD=l9r?)=N^83u*nh_h9k}|M#3AvUs|Jn zkcoCuVIP>YYWO%9rjs#-!q1G4X~$xO1_Ro*Pmy?Mctqr^O6K1ef}G>=(i~6=Os;Xt zj-}P$q&@oiEPm_`+$|FF$Q6DvQjzLsB8m3hfc*8hk)tjWi!7PCth8PB^<6`C&tR7twVr@C8kU>}BdY;YBg!T< zh*FKH)I7OcvWgOz%8e2HXrAmVlirS?4hwK2_@N)ZL2S&Gcpt{(&3f%wc?wCz7Q2WA zq^@|0n)7AqnfQdeJPOTNGeR%pkNTah&9^dFfPD2#JXw^q&BDJzTD*V1 zH9dAgX#FV2u-ckE!Oowio`w2pT%jT8#SYM%E}Uu#RZ>!^=$ItFUFr_v228@|bjQ4q z)mDm+;Q(2g@{JXB%-K;Pjv)E`E7<>0s_c+TcjpMCx0$+bmM-CIU)oUj50q*fTi zogZGDF6WlJsFjihjqw?k9vZ&Qn7`*6&qlW8Pu>?BHa=9jkg<`e?v$EgJ$T^yULK1Q%SA4#GlXZU2Z8gqdziKYj-Ri5CmuJD}7WirXUPId>^44`*o!yD$ z<}nppf?u!-PsTO=5&3K^B@dUHBkEje!di z#v{-N_Spsx2wrEe+G_=^?Hk)f{wHr{=echVb~& zF&1#*fr0n!0KDr|RcaZ;kJw?yd%?L>&I!QB$lJQwGL#&QAv2O+NCuT;o|$S5f}BH6Ft3R3qeyXV|aX)^k3>H!`)aa!N(WtDF#2cU@{XJ{^vW`_*7h3sn+U4sR9J8ENaHkI*g~Fl=~9T61z@K`|4utdW|PBYUV{ z{UNfb8sOgYK~@snfhUGPTO?^{c-c9E&@}-8Sx+aWP7hkO(P$ z-QaV&O5%%+1MQHFP}s)71J>ol$Q%B2u=A!_mx(TSbzjDVH(Y#3RX2x_n3|A@qMx9E zJ)sX}7uDs55%+ob>(+L=L6eo|b>nv*`J_JXQ~z^}P50<>HEe_~qXXmWbr(S)1wVOP zvx39V3olhhQcfn)Kt#N4nv>Fm&k9I?z}62{ zrBz-6%Ay&L(lISGicnyn(8uX&|0or3^DL(;1px8{ByPZmgz~3^Sw9v?hs8bb?_NHR zirHM;RT_lnHWYl(sY4T+aKc9uHQKvfpXXG3s&l_NN_K;0d0E?@ptUE5^vGf|_1hK5}lm?Bn8yKKFLARevw&WqTFH9 zkA%$Ox}$Mrueii5>vR!wY& zLc! zBx;cl!JsJt)Dr9OzIn4d_nwJBz-`jZ{`TB^&OP^>bI&>N&3i|m|7zjpgU3GmNZ(K9 zj$O0r!7J{$_dWl<=$X@QKdE^5b9;Vv^plV8-Cz04V_*OI{D+>JzVlxXy?n);>-Sby z|KaM~Ie+}bWfz@$;L}fEvUI{!>xPBHllPysb^q5+y6R)u{YN(Ku54Sq=H6G2Jo@0I zv+9?xF1)__$dhY>HS0h8>-{f0bJHaUPrv8+LjxC_|D7{y+b%9{c;mSED^Ybv`M&=w zy>RRKYd4jvAHVjFZ!AsRf8lj^Z+hy?C;$2QE&cmufAi-Xt{mI(+}`Uy__y2FAD;Z_ zhPwQ~ZLfXvxQEWY^s>7ye}jMi*yR(C9z1mD;42S5_Q1j&?$bYb=}Gs-L+^j?(Hnnv zZ)0oyA20s+Pg`!hboY^&*@0_kX!*xV7oRUDtTg%M+`uFFS!e z>G<2e{k|hNTib5?jSrsjy~*o0XMTI?Rin3F z`NO%X*PcJ{-OG-w+A%e?=h<&H8ylOAmtNoh8lJ8A-j|Qw@-)5B!CmzQ`Sz6#D>oCN zk>BqQS~K&ZH9fJ;nr_XOqvm{6owKI#bQrumaUi)&5%<@NrJ>mh_wf68tyPUJZsn%c z%M)V@4_ZXuJd>Mlgu5)x?e=f$qDB)`xW@^9v~rXAmESTew*s-1R~lw=lTjs#o7Q=m z{(P~Rt=8gjAk)8C%~tXSyc#icK_<5;UkP;r%fZVo75ijNtreH?qQ?PCh!t=l#G?3QR83L595hi{f>xo`B1rM2!33=28#}Yb zunFa`AbAO8roYlE#}VF^8LudabtXww25pp!Fdd9yseGNkv=_|mRMYkRT$qg;N}~=Q zOp!2!fn`f!K5jL_=78m=o2t-qehKq{RHU-BZ4sL3>_!UMigSlWVy_HDEU_`{dP)WL zv5rzwhy&v3;#0^4)G>?{@&Jhyx!?}W2PAcl0R*-6xrEZ~$}-hJsUUqhGiu5Ekfo zI!CoYLoT&IKe>9g%uy{cXa|N)?7(tTt7}ir)p7z&Dy}wF*9*sTxT8(Zu^gUUvR&R) zj^%J&HHcO4LVX~X!@0I!9LwQcmkZ0`x=t~>E-2;}n&g;SH&4uqi@{y{f?1`eNvMd~ zE9#z4;s)a@N>fO-?K+OV0w?YnF6JxsG9q0k{6VM5A8Pfmk&kN)XnSSu=2Eqwl%1MW zGmNw9Wwk9(IbIjI924DC(pEEUbVa#To2@3?Jlh0IXbO+lO;))ar~xJVyr3)2b5B9t zSJ)jlex*TIv3Ad%$IWc8tU+xMLh8Z7oDwHym7ZW()afV ze$;10#gV>k-jqF69}nlFvv)VbExR|(6n5_{$YS4`(ai9ge6cngW*77IY$^GQaMKE# zg^`oTH&3oRSrIG_EmrCkh+!>O%GKu3;z(aIWC))Xoa?g^l6dDx-}b3#E3VbbJ0qNT zgL05%89&1+H4r%$YK@&18}$1yWdl)XGtSZWg!pZwZ$6IeL%H0-!ouJJAFMUza!g8@ zvz?sdWI>U|-o*LEY_)j`_$7iw+n0w`n}dl=gLo%$F4~@BgLbaNNZmfri0W}vt6GY2 zeimVJq_5SAibExri;{1bvY}s`%`#SES-cC{&WfPq2aa&K&BG2mY-4YJ_yZVnFdW9m zA!G!_Rv~PRuAiQ?*3Z|Pahtydb;#kIMv_TJoD(iVJH_VcT%%ShS#k2e$}>Q#jI}*z znJP1!Q|stjSE|x3_%9Dm*2Fe5NL(xowPPK8 zzFsd!g}ibjWy3Ib{4rLU@o3`DW97L0p&Tjy94hClb0d9=NRUc-Bt?Cr)5zZPv*pn0 zD8O2mq?X;;^g@KFwtmxAYexA%d*8~@X!}FLA-BR6pOU1r)@U={5?vN2IYs3uw-j?YNsI$`21E@&pIH?4fNXw8I$`D%1=3pqEmWvyMTmupd+R0nY4 zb!oO{y|u+@a`bTY1VZqHJ>-@{^JvC;mww*8iB`^|u!=)yL7g`E)QsW!74=CSbLvn{ zkGoFX?C%vfRXwFb2CPp7jsA%t6>%7nRu(Xs1e-qF?gJTu(wk7Ep`pJWZS~-R3EI`( z+qYH>9c#t&wMM^ge86#Z?+6QV|2wl7Ow>68QrXE#F)%usDpr+O8QbEX%%~Hs{bTu_ zhk~nQwJ~2hs*X}WR<(^Wk0+&RH)i|NR^_UWxq-?fH4ML~ipIcPl~HS$FI`oHbz|5` z$3@ztVUF#q+Nm3ZES{>ByD`RWSJh-X<~r&|wQdY!T~(MEn8!>^xKfoEI-M(3ZK7ee z4JDYE;|gTX-E_Ue8TiW zTllsrEOZ`z(xNah9uU4zAmIVGH!dLnQv2{fnO3?1U(mou<6=_dIqZ@pWuwn=bEw37Q!=Q9WbBzs_<2#M%MupL-s?! z5C~n5{gnuJCLPX86Z7HICWZvYv|Sr%jU=`PQzJT%jK)~WagrNr!&ytmdI7Oh>G$A^ z3Yg3%X$(W9Zt4nZA$tUj#49{jO?An%{Xk<-HMevO=cTz039~Zo1*#`!sI*<;ztZ-| zc@9kVUo^h30zvr(M5odYde8})zu>4a_sDUjYKm!m9qAA~OIWn2E6HqT?j_8H>K+H7 z$rl+7@pH*svLAS%k?PTD^1=L6JJ7^TKVo2Eo}mbcF4YwiB(6y&&79CiW=3pCI*v`` zbCAfI@;O|!Up1M19|79HpnGx#;F1Q(L9j(6hDr2+$sVDjNbJ->c46>EI!<|T>id!> zjcaWk5_%@{aU?`052%3HGx9{!{v@aI518up>wH}tX9RPIP7#Jk{KM|5wyZIqr+T;= z<_ETI+8UNi;xo30+9}+P@(8GHz$D4OK@?LKi9DOqIV7Iqq#)~%o=0jXXq23*z|8#K zMj1eIOdh~94PChiiKecQHBq1O1hq*IS(h=N^d!kGka?^2yS7IXaoqGH>2rE6^vF*o zaz|o+et<8EnLOa>CWfa%5W5dhUKwJ5&g?T_zT}#?F&`2WGM40t7|Tsv z0VBO2U?fje7~ON^NW@+o+P|`q#u~aphVGhUZR`i}bCg?VUj?!VGxq_8%#P>)1(J!u z1qmIushx6W=1AyeaI-cA=2H21kDjH#VXMo6PHA!WGd!56kke*RFA|up|xS zL|14n5j#NrM(n^#?(XT{58TDzQD61Ad3M9015z`=^UYoX=t$2EtzpOP6@U(zr>Pg; z#)Hq5cq_esbY!R<1aL1x=TZOgeQLWHZ27G^Q-V?LkMbVPHNqH_2ECNH9!jViHX}g7vU_Rmc-M zxF*3!FOAvKrDp|Pn(~EVk@@@{bZCqcy1>l6aY_r~3pg;%I1c$F@l}6&>lS{?zhA?}m-j6R4U=ZEW(dIs4LGy7721j%V| za~{zjIso0W;BLaG95yn;!&Yufv^!K62(8>^+(l`@GSnTY8*mqYp6#xJL diff --git a/gen/usr/share/doc/groff/1.19.2/pic.ps b/gen/usr/share/doc/groff/1.19.2/pic.ps deleted file mode 100644 index 7963a8d..0000000 --- a/gen/usr/share/doc/groff/1.19.2/pic.ps +++ /dev/null @@ -1,3308 +0,0 @@ -%!PS-Adobe-3.0 -%%Creator: groff version 1.19.2 -%%CreationDate: Sat Nov 19 17:19:36 2016 -%%DocumentNeededResources: font Times-Bold -%%+ font Times-Italic -%%+ font Symbol -%%+ font Times-Roman -%%+ font Courier -%%+ font Courier-Oblique -%%DocumentSuppliedResources: procset grops 1.19 2 -%%+ font Symbol-Slanted -%%Pages: 38 -%%PageOrder: Ascend -%%DocumentMedia: Default 612 792 0 () () -%%Orientation: Portrait -%%EndComments -%%BeginDefaults -%%PageMedia: Default -%%EndDefaults -%%BeginProlog -%%BeginResource: procset grops 1.19 2 -%!PS-Adobe-3.0 Resource-ProcSet -/setpacking where{ -pop -currentpacking -true setpacking -}if -/grops 120 dict dup begin -/SC 32 def -/A/show load def -/B{0 SC 3 -1 roll widthshow}bind def -/C{0 exch ashow}bind def -/D{0 exch 0 SC 5 2 roll awidthshow}bind def -/E{0 rmoveto show}bind def -/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def -/G{0 rmoveto 0 exch ashow}bind def -/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/I{0 exch rmoveto show}bind def -/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def -/K{0 exch rmoveto 0 exch ashow}bind def -/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/M{rmoveto show}bind def -/N{rmoveto 0 SC 3 -1 roll widthshow}bind def -/O{rmoveto 0 exch ashow}bind def -/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/Q{moveto show}bind def -/R{moveto 0 SC 3 -1 roll widthshow}bind def -/S{moveto 0 exch ashow}bind def -/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def -/SF{ -findfont exch -[exch dup 0 exch 0 exch neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/MF{ -findfont -[5 2 roll -0 3 1 roll -neg 0 0]makefont -dup setfont -[exch/setfont cvx]cvx bind def -}bind def -/level0 0 def -/RES 0 def -/PL 0 def -/LS 0 def -/MANUAL{ -statusdict begin/manualfeed true store end -}bind def -/PLG{ -gsave newpath clippath pathbbox grestore -exch pop add exch pop -}bind def -/BP{ -/level0 save def -1 setlinecap -1 setlinejoin -72 RES div dup scale -LS{ -90 rotate -}{ -0 PL translate -}ifelse -1 -1 scale -}bind def -/EP{ -level0 restore -showpage -}def -/DA{ -newpath arcn stroke -}bind def -/SN{ -transform -.25 sub exch .25 sub exch -round .25 add exch round .25 add exch -itransform -}bind def -/DL{ -SN -moveto -SN -lineto stroke -}bind def -/DC{ -newpath 0 360 arc closepath -}bind def -/TM matrix def -/DE{ -TM currentmatrix pop -translate scale newpath 0 0 .5 0 360 arc closepath -TM setmatrix -}bind def -/RC/rcurveto load def -/RL/rlineto load def -/ST/stroke load def -/MT/moveto load def -/CL/closepath load def -/Fr{ -setrgbcolor fill -}bind def -/setcmykcolor where{ -pop -/Fk{ -setcmykcolor fill -}bind def -}if -/Fg{ -setgray fill -}bind def -/FL/fill load def -/LW/setlinewidth load def -/Cr/setrgbcolor load def -/setcmykcolor where{ -pop -/Ck/setcmykcolor load def -}if -/Cg/setgray load def -/RE{ -findfont -dup maxlength 1 index/FontName known not{1 add}if dict begin -{ -1 index/FID ne{def}{pop pop}ifelse -}forall -/Encoding exch def -dup/FontName exch def -currentdict end definefont pop -}bind def -/DEFS 0 def -/EBEGIN{ -moveto -DEFS begin -}bind def -/EEND/end load def -/CNT 0 def -/level1 0 def -/PBEGIN{ -/level1 save def -translate -div 3 1 roll div exch scale -neg exch neg exch translate -0 setgray -0 setlinecap -1 setlinewidth -0 setlinejoin -10 setmiterlimit -[]0 setdash -/setstrokeadjust where{ -pop -false setstrokeadjust -}if -/setoverprint where{ -pop -false setoverprint -}if -newpath -/CNT countdictstack def -userdict begin -/showpage{}def -/setpagedevice{}def -}bind def -/PEND{ -countdictstack CNT sub{end}repeat -level1 restore -}bind def -end def -/setpacking where{ -pop -setpacking -}if -%%EndResource -%%EndProlog -%%BeginSetup -%%BeginFeature: *PageSize Default -<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice -%%EndFeature -%%IncludeResource: font Symbol -%%IncludeResource: font Times-Bold -%%IncludeResource: font Times-Italic -%%IncludeResource: font Times-Roman -%%IncludeResource: font Courier -%%IncludeResource: font Courier-Oblique -%%BeginResource: font Symbol-Slanted -%!PS-Adobe-3.0 Resource-Font -%%DocumentNeededResources: font Symbol -/MakeTransformedFont{ -findfont dup maxlength dict begin -{ -exch dup dup/FID ne exch/UniqueID ne and{ -exch def -}{ -pop pop -}ifelse -}forall -/FontBBox -currentdict/FontBBox get -4 array copy def -FontBBox aload pop -4 index transform 4 2 roll -4 index transform 4 2 roll -FontBBox astore pop -FontMatrix exch matrix concatmatrix -/FontMatrix exch def -dup/FontName exch def -currentdict end -definefont pop -}bind def -/Symbol-Slanted -[.89 0.0 15.5 dup sin exch cos div .89 0.0 0.0] -/Symbol -MakeTransformedFont -%%EndResource -grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72 -def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron -/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef -/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent -/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen -/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon -/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O -/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex -/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y -/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft -/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl -/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut -/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash -/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen -/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft -/logicalnot/minus/registered/macron/degree/plusminus/twosuperior -/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior -/ordmasculine/guilsinglright/onequarter/onehalf/threequarters -/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE -/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex -/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis -/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn -/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla -/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis -/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash -/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def -/Courier-Oblique@0 ENC0/Courier-Oblique RE/Courier@0 ENC0/Courier RE -/Times-Roman@0 ENC0/Times-Roman RE/Times-Italic@0 ENC0/Times-Italic RE -/Times-Bold@0 ENC0/Times-Bold RE -%%EndSetup -%%Page: 1 1 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 12/Times-Bold@0 SF(Making Pictur)204.552 123 Q(es W)-.216 E -(ith GNU PIC)-.216 E/F1 10/Times-Italic@0 SF(Eric S. Raymond)254.255 159 -Q/F2 10/Symbol SF237.665 177 Q F1(esr@snark.thyr)A(sus.com)-.1 E F2 -A F1(ABSTRA)264.535 213 Q(CT)-.3 E/F3 10/Times-Roman@0 SF(The)133 -237 Q/F4 10/Times-Bold@0 SF(pic)2.553 E F3 .053(language is a)2.553 F F4 -(tr)2.553 E(off)-.18 E F3 -.15(ex)2.553 G .053(tension that mak).15 F -.052(es it easy to create and alter box-and-)-.1 F(arro)108 249 Q 2.643 -(wd)-.25 G .143 -(iagrams of the kind frequently used in technical papers and te)-2.643 F -2.643(xtbooks. This)-.15 F(paper)2.644 E .166 -(is both an introduction to and reference for)108 261 R F1(gpic)2.666 E -F3 .166(\(1\), the implementation distrib).31 F .166(uted by the)-.2 F -(Free Softw)108 273 Q(are F)-.1 E(oundation for use with)-.15 E F1(gr) -2.5 E(of)-.45 E(f)-.18 E F3(\(1\).)1.96 E F4 2.5(1. Intr)72 309 R -(oduction to PIC)-.18 E 2.5(1.1. Wh)72 333 R 2.5(yP)-.15 G(IC?)-2.5 E F3 -(The)97 348.6 Q F4(pic)2.543 E F3 .043(language pro)2.543 F .043 -(vides an easy w)-.15 F .043(ay to write procedural box-and-arro)-.1 F -2.544(wd)-.25 G .044(iagrams to be included in)-2.544 F F4(tr)72 360.6 Q -(off)-.18 E F3 2.658(documents. The)2.658 F .158(language is suf)2.658 F -.158(\214ciently \215e)-.25 F .158 -(xible to be quite useful for state charts, Petri-net diagrams,)-.15 F -<8d6f>72 372.6 Q 3.563(wc)-.25 G 1.064(harts, simple circuit schematics\ -, jumper layouts, and other kinds of illustration in)-3.563 F -.2(vo)-.4 -G 1.064(lving repetiti).2 F -.15(ve)-.25 G .93 -(uses of simple geometric forms and splines.)72 384.6 R .93 -(Because these descriptions are procedural and object-based,)5.93 F(the) -72 396.6 Q 2.5(ya)-.15 G(re both compact and easy to modify)-2.5 E(.) --.65 E(The)97 412.2 Q F1(gpic)3.108 E F3 .608(\(1\) implementation of) -.31 F F4(pic)3.108 E F3 .608(is distrib)3.108 F .608 -(uted by the Free Softw)-.2 F .608(are F)-.1 F .608 -(oundation for use with their)-.15 F F1(gr)72 424.2 Q(of)-.45 E(f)-.18 E -F3 1.067(\(1\) implementation of)1.96 F F4(tr)3.567 E(off)-.18 E F3 -6.067(.B)C 1.067(ecause both implementations are widely a)-6.067 F -.25 -(va)-.2 G 1.067(ilable in source form for).25 F(free, the)72 436.2 Q 2.5 -(ya)-.15 G(re good bets for writing v)-2.5 E -(ery portable documentation.)-.15 E F4 2.5(1.2. PIC)72 460.2 R -1(Ve)2.5 -G(rsions)1 E F3 .879(The original 1984 pre-)97 475.8 R F1(ditr)A(of)-.45 -E(f)-.18 E F3 .879(\(1\) v)1.96 F .879(ersion of)-.15 F F4(pic)3.379 E -F3 .879(is long obsolete.)3.379 F .88(The re)5.879 F .88(written 1991 v) --.25 F .88(ersion is still)-.15 F -.2(av)72 487.8 S -(ailable as part of the Documenter')-.05 E 2.5(sW)-.55 G -(ork Bench module of System V)-3.3 E(.)-1.29 E 3.256(Where dif)97 503.4 -R 3.256(ferences between Documenter')-.25 F 5.756(sW)-.55 G 3.256 -(ork Bench \(1991\))-6.556 F F4(pic)5.755 E F3 3.255(and GNU)5.755 F F4 -(pic)5.755 E F3 3.255(need to be)5.755 F .526(described, original)72 -515.4 R F4(pic)3.026 E F3 .527(is referred to as \231D)3.026 F .527 -(WB pic\232.)-.3 F .527(Details on the history of the program are gi) -5.527 F -.15(ve)-.25 G 3.027(na).15 G 3.027(tt)-3.027 G(he)-3.027 E -(end of this document.)72 527.4 Q(In this document, the)97 543 Q F1 -(gpic)2.5 E F3(\(1\) e).31 E(xtensions will be mark)-.15 E(ed as such.) --.1 E F4 2.5(2. In)72 567 R -.1(vo)-.4 G(king PIC).1 E F3(Ev)97 582.6 Q -(ery)-.15 E F4(pic)3.092 E F3 .592 -(description is a little program, which gets compiled by)3.092 F F1(pic) -3.092 E F3 .592(\(1\) into).31 F F1(gtr)3.092 E(of)-.45 E(f)-.18 E F3 -.592(\(1\) macros.)1.96 F(Pro-)5.592 E .72 -(grams that process or display)72 594.6 R F1(gtr)3.22 E(of)-.45 E(f)-.18 -E F3 .72(\(1\) output need not kno)1.96 F 3.221(wo)-.25 G 3.221(rc) --3.221 G .721(are that parts of the image be)-3.221 F -.05(ga)-.15 G -3.221(nl).05 G .721(ife as)-3.221 F F4(pic)72 606.6 Q F3(descriptions.) -2.5 E(The)97 622.2 Q F1(pic)4.053 E F3 1.552 -(\(1\) program tries to translate an).31 F 1.552(ything between)-.15 F -F4(.PS)4.052 E F3(and)4.052 E F4(.PE)4.052 E F3(mark)4.052 E 1.552 -(ers, and passes through)-.1 F -2.15 -.25(ev e)72 634.2 T .622 -(rything else.).25 F .622(The normal de\214nitions of)5.622 F F4(.PS) -3.122 E F3(and)3.122 E F4(.PE)3.122 E F3 .622(in the)3.122 F F1(ms)3.122 -E F3 .623(macro package and else)3.123 F .623(where ha)-.25 F .923 -.15 -(ve a)-.2 H(lso).15 E(the side-ef)72 646.2 Q(fect of centering the)-.25 -E F4(pic)2.5 E F3(output on the page.)2.5 E F4 2.5(2.1. PIC)72 670.2 R -(Err)2.5 E(or Messages)-.18 E F3 .139(If you mak)97 685.8 R 2.639(ea)-.1 -G F4(pic)A F3 .138(syntax error)2.638 F(,)-.4 E F1(gpic)2.638 E F3 .138 -(\(1\) will issue an error message in the standard).31 F F1(gcc)2.638 E -F3(\(1\)-lik).31 E 2.638(es)-.1 G(yntax.)-2.638 E 2.5(At)72 697.8 S -(ypical error message looks lik)-2.5 E 2.5(et)-.1 G(his,)-2.5 E 0 Cg EP -%%Page: 2 2 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-2-)282.17 48 Q/F1 10/Courier@0 SF -(pic:pic.ms:: parse error before `')108 84 Q -(pic:pic.ms:: giving up on this picture)108 96 Q F0(where)72 117.6 -Q/F2 10/Symbol SF2.5 E F0(nnn)A F2A F0(is a line number)2.5 E -2.5(,a)-.4 G(nd)-2.5 E F22.5 E F0(tok)A(en)-.1 E F2A F0 -(is a tok)2.5 E(en near \(usually just after\) the error location.)-.1 E -/F3 10/Times-Bold@0 SF 2.5(3. Basic)72 141.6 R(PIC Concepts)2.5 E F0 -1.067(Pictures are described procedurally)97 157.2 R 3.567(,a)-.65 G -3.567(sc)-3.567 G 1.068(ollections of objects connected by motions.) --3.567 F(Normally)6.068 E(,)-.65 E F3(pic)3.568 E F0 .121 -(tries to string together objects left-to-right in the sequence the)72 -169.2 R 2.621(ya)-.15 G .12 -(re described, joining them at visually natu-)-2.621 F(ral points.)72 -181.2 Q(Here is an e)5 E(xample illustrating the \215o)-.15 E 2.5(wo) --.25 G 2.5(fd)-2.5 G(ata in)-2.5 E F3(pic)2.5 E F0(processing:)2.5 E 54 -36 106.2 217.2 DE .4 LW ST(document)86.48 219.4 Q 169.2 217.2 MT -7.2 -1.8 RL 0 -3.6 RL CL 0 Fg 169.2 217.2 MT -7.2 1.8 RL 0 -3.6 RL CL .1 LW 0 -Cg ST .4 LW 162 217.2 133.2 217.2 DL 212.4 235.2 MT 0 -36 RL -43.2 0 RL -0 36 RL CL ST/F4 10/Times-Italic@0 SF(gpic)176.205 219.4 Q F0(\(1\)).31 -E 248.4 217.2 MT -7.2 1.8 RL 0 -3.6 RL CL 0 Fg 248.4 217.2 MT -7.2 1.8 -RL 0 -3.6 RL CL .1 LW 0 Cg ST .4 LW 241.2 217.2 212.4 217.2 DL 252 235.2 -248.4 235.2 DL 259.56 235.2 255.96 235.2 DL 267.12 235.2 263.52 235.2 DL -274.68 235.2 271.08 235.2 DL 282.24 235.2 278.64 235.2 DL 289.8 235.2 -286.2 235.2 DL 297.36 235.2 293.76 235.2 DL 304.92 235.2 301.32 235.2 DL -312.48 235.2 308.88 235.2 DL 320.04 235.2 316.44 235.2 DL 327.6 235.2 -324 235.2 DL 327.6 231.6 327.6 235.2 DL 327.6 225.12 327.6 228.72 DL -327.6 218.64 327.6 222.24 DL 327.6 212.16 327.6 215.76 DL 327.6 205.68 -327.6 209.28 DL 327.6 199.2 327.6 202.8 DL 324 199.2 327.6 199.2 DL -316.44 199.2 320.04 199.2 DL 308.88 199.2 312.48 199.2 DL 301.32 199.2 -304.92 199.2 DL 293.76 199.2 297.36 199.2 DL 286.2 199.2 289.8 199.2 DL -278.64 199.2 282.24 199.2 DL 271.08 199.2 274.68 199.2 DL 263.52 199.2 -267.12 199.2 DL 255.96 199.2 259.56 199.2 DL 248.4 199.2 252 199.2 DL -248.4 202.8 248.4 199.2 DL 248.4 209.28 248.4 205.68 DL 248.4 215.76 -248.4 212.16 DL 248.4 222.24 248.4 218.64 DL 248.4 228.72 248.4 225.12 -DL 248.4 235.2 248.4 231.6 DL F4(gtbl)251.85 213.4 Q F0(\(1\) or).51 E -F4 -.1(ge)2.5 G(qn).1 E F0(\(1\)).24 E(\(optional\))268.28 225.4 Q 363.6 -217.2 MT -7.2 1.8 RL 0 -3.6 RL CL 0 Fg 363.6 217.2 MT -7.2 1.8 RL 0 -3.6 -RL CL .1 LW 0 Cg ST .4 LW 356.4 217.2 327.6 217.2 DL 406.8 235.2 MT 0 --36 RL -43.2 0 RL 0 36 RL CL ST F4(gtr)367.59 219.4 Q(of)-.45 E(f)-.18 E -F0(\(1\))1.96 E 442.8 217.2 MT -7.2 1.8 RL 0 -3.6 RL CL 0 Fg 442.8 217.2 -MT -7.2 1.8 RL 0 -3.6 RL CL .1 LW 0 Cg ST .4 LW 435.6 217.2 406.8 217.2 -DL 54 36 469.8 217.2 DE ST(PostScript)449.24 219.4 Q(Figure 3-1: Flo) -231.6 258.2 Q 2.5(wo)-.25 G(f)-2.5 E F3(pic)2.5 E F0(data)2.5 E(This w) -97 285.8 Q(as produced from the follo)-.1 E(wing)-.25 E F3(pic)2.5 E F0 -(program:)2.5 E/F5 9/Courier@0 SF(.PS)108 302.8 Q(ellipse "document";) -108 313.8 Q(arrow;)108 324.8 Q(box width 0.6 "\\fIpic\\/\\fP\(1\)")108 -335.8 Q(arrow;)108 346.8 Q(box width 1.1 "\\fIgtbl\\/\\fP\(1\) or \\fIg\ -eqn\\/\\fP\(1\)" "\(optional\)" dashed;)108 357.8 Q(arrow;)108 368.8 Q -(box width 0.6 "\\fIgtroff\\/\\fP\(1\)";)108 379.8 Q(arrow;)108 390.8 Q -(ellipse "PostScript")108 401.8 Q(.PE)108 412.8 Q F0 .53 -(This little program illustrates se)72 434.4 R -.15(ve)-.25 G(ral).15 E -F3(pic)3.03 E F0 3.03(basics. Firstly)3.03 F 3.03(,w)-.65 G 3.03(es) --3.03 G .53(ee ho)-3.03 F 3.03(wt)-.25 G 3.03(oi)-3.03 G -1.9 -.4(nv o) --3.03 H .73 -.1(ke t).4 H .53(hree object types; ellipses,).1 F(arro)72 -446.4 Q 1.168(ws, and box)-.25 F 3.668(es. W)-.15 F 3.668(es)-.8 G 1.168 -(ee ho)-3.668 F 3.668(wt)-.25 G 3.668(od)-3.668 G 1.168(eclare te)-3.668 -F 1.167(xt lines to go within an object \(and that te)-.15 F 1.167 -(xt can ha)-.15 F 1.467 -.15(ve f)-.2 H(ont).15 E .697(changes in it\).) -72 458.4 R 2.297 -.8(We s)5.697 H .697(ee ho).8 F 3.197(wt)-.25 G 3.198 -(oc)-3.197 G .698 -(hange the line style of an object from solid to dashed.)-3.198 F .698 -(And we see that a)5.698 F .001(box can be made wider than its def)72 -470.4 R .001(ault size to accommodate more te)-.1 F(xt \(we')-.15 E -(ll discuss this f)-.1 E(acility in detail in)-.1 E(the ne)72 482.4 Q -(xt section\).)-.15 E 3.083 -.8(We a)97 498 T 1.483(lso get to see).8 F -F3(pic)3.983 E F0 2.583 -.55('s s)D 1.483(imple syntax.).55 F 1.483 -(Statements are ended by ne)6.483 F 1.484(wlines or semicolons.)-.25 F -(String)6.484 E .496(quotes are required around all te)72 510 R .495 -(xt ar)-.15 F .495(guments, whether or not the)-.18 F 2.995(yc)-.15 G -.495(ontain spaces.)-2.995 F .495(In general, the order of)5.495 F .028 -(command ar)72 522 R .028(guments and modi\214ers lik)-.18 F 2.529<6599> --.1 G .029(width 1.2\232 or \231dashed\232 doesn')-2.529 F 2.529(tm)-.18 -G(atter)-2.529 E 2.529(,e)-.4 G .029(xcept that the order of te)-2.679 F -(xt)-.15 E(ar)72 534 Q(guments is signi\214cant.)-.18 E(Here are all b) -97 549.6 Q(ut one of the basic)-.2 E F3(pic)2.5 E F0 -(objects at their def)2.5 E(ault sizes:)-.1 E 135 603.6 MT 0 -36 RL -54 -0 RL 0 36 RL CL ST(box)100.5 587.8 Q 207 585.6 171 585.6 DL(line)181.5 -581.8 Q 279 585.6 MT -7.2 1.8 RL 0 -3.6 RL CL 0 Fg 279 585.6 MT -7.2 1.8 -RL 0 -3.6 RL CL .1 LW 0 Cg ST .4 LW 271.8 585.6 243 585.6 DL(arro) -249.465 581.8 Q(w)-.25 E 333 585.6 18 DC ST(circle)321.895 587.8 Q 54 36 -414 585.6 DE ST(ellipse)400.945 587.8 Q 477 567.6 18 90 0 DA(arc)488.895 -605.8 Q(Figure 3-2: Basic)230.225 626.6 Q F3(pic)2.5 E F0(objects)2.5 E -.346(The missing simple object type is a)97 654.2 R F4(spline)2.846 E F0 -5.346(.T)C .346(here is also a w)-5.346 F .346 -(ay to collect objects into)-.1 F F4(bloc)2.846 E 2.846(kc)-.2 G(ompos-) --2.846 E(ites)72 666.2 Q F0 1.047(which allo)3.547 F 1.047(ws you to tr\ -eat the whole group as a single object \(resembling a box\) for man)-.25 -F 3.548(yp)-.15 G(urposes.)-3.548 E -.8(We)72 678.2 S -.1('l).8 G 2.5 -(ld).1 G(escribe both of these later on.)-2.5 E .956 -(The box, ellipse, circle, and block composite objects are)97 693.8 R F4 -(closed)3.456 E F0 3.456(;l).77 G .956(ines, arro)-3.456 F .956 -(ws, arcs and splines are)-.25 F F4(open)72 705.8 Q F0 5(.T)C -(his distinction will often be important in e)-5 E -(xplaining command modi\214ers.)-.15 E 0 Cg EP -%%Page: 3 3 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-3-)282.17 48 Q(Figure 3-2 w)97 84 Q -(as produced by the follo)-.1 E(wing)-.25 E/F1 10/Times-Bold@0 SF(pic) -2.5 E F0(program, which introduces some more basic concepts:)2.5 E/F2 10 -/Courier@0 SF(.PS)108 102 Q(box "box";)108 114 Q(move;)108 126 Q -(line "line" "";)108 138 Q(move;)108 150 Q(arrow "arrow" "";)108 162 Q -(move;)108 174 Q(circle "circle";)108 186 Q(move;)108 198 Q -(ellipse "ellipse";)108 210 Q(move;)108 222 Q(arc; down; move; "arc")108 -234 Q(.PE)108 246 Q F0 .477(The \214rst thing to notice is the)97 267.6 -R/F3 10/Times-Italic@0 SF(mo)2.977 E(ve)-.1 E F0 .477(command, which mo) -2.977 F -.15(ve)-.15 G 2.977(sad).15 G(ef)-2.977 E .478 -(ault distance \(1/2 inch\) in the cur)-.1 F(-)-.2 E(rent mo)72 279.6 Q --.15(ve)-.15 G(ment direction.).15 E(Secondly)97 295.2 Q 3.335(,s)-.65 G -.835(ee ho)-3.335 F 3.335(ww)-.25 G 3.335(ec)-3.335 G .835 -(an also decorate lines and arro)-3.335 F .835(ws with te)-.25 F 3.335 -(xt. The)-.15 F .835(line and arro)3.335 F 3.335(wc)-.25 G(ommands) --3.335 E .817(each tak)72 307.2 R 3.317(et)-.1 G 1.017 -.1(wo a)-3.317 H --.18(rg).1 G .817(uments here, specifying te).18 F .817(xt to go abo) --.15 F 1.117 -.15(ve a)-.15 H .817(nd belo).15 F 3.317(wt)-.25 G .817 -(he object.)-3.317 F .818(If you w)5.817 F .818(onder wh)-.1 F 3.318(yo) --.05 G(ne)-3.318 E(ar)72 319.2 Q(gument w)-.18 E -(ould not do, contemplate the output of)-.1 E F1(arr)2.5 E .2 -.1(ow ") --.18 H -.1(ow).1 G(!").1 E F0(:)A 306 337.2 MT -7.2 1.8 RL 0 -3.6 RL CL -0 Fg 306 337.2 MT -7.2 1.8 RL 0 -3.6 RL CL .1 LW 0 Cg ST .4 LW 298.8 -337.2 270 337.2 DL -.25(ow)280.35 339.4 S(!).25 E(Figure 3-3: T)212.46 -360.2 Q -.15(ex)-.7 G 2.5(tc).15 G(entered on an arro)-2.5 E(w)-.25 E -.514(When a command tak)97 387.8 R .514(es one te)-.1 F .514(xt string,) --.15 F F1(pic)3.014 E F0 .514(tries to place it at the object')3.014 F -3.014(sg)-.55 G .514(eometric center)-3.014 F 5.513(.A)-.55 G 3.013(sy) --5.513 G(ou)-3.013 E(add more strings,)72 399.8 Q F1(pic)2.5 E F0 -(treats them as a v)2.5 E(ertical block to be centered.)-.15 E -(The program)5 E F2(line "1";)108 417.8 Q(line "1" "2";)108 429.8 Q -(line "1" "2" "3";)108 441.8 Q(line "1" "2" "3" "4";)108 453.8 Q -(line "1" "2" "3" "4" "5";)108 465.8 Q F0(for e)72 487.4 Q(xample, gi) --.15 E -.15(ve)-.25 G 2.5(sy).15 G(ou this:)-2.5 E 234 529.4 198 529.4 -DL(1)213.5 531.6 Q 270 529.4 234 529.4 DL(1)249.5 525.6 Q(2)249.5 537.6 -Q 306 529.4 270 529.4 DL(1)285.5 519.6 Q(2)285.5 531.6 Q(3)285.5 543.6 Q -342 529.4 306 529.4 DL(1)321.5 513.6 Q(2)321.5 525.6 Q(3)321.5 537.6 Q -(4)321.5 549.6 Q 378 529.4 342 529.4 DL(1)357.5 507.6 Q(2)357.5 519.6 Q -(3)357.5 531.6 Q(4)357.5 543.6 Q(5)357.5 555.6 Q(Figure 3-4: Ef)196.355 -576.4 Q(fects of multiple te)-.25 E(xt ar)-.15 E(guments)-.18 E .128 -(The last line of Figure 3.2')97 604 R 2.628(sp)-.55 G .128(rogram, `) --2.628 F F1(ar)A .128(c; do)-.18 F .128(wn; mo)-.1 F -.1(ve)-.1 G 2.628 -(;").1 G(ar)-2.628 E(c")-.18 E F0 .128 -(', describing the captioned arc, intro-)B .558(duces se)72 616 R -.15 -(ve)-.25 G .558(ral ne).15 F 3.058(wi)-.25 G 3.058(deas. Firstly)-3.058 -F 3.057(,w)-.65 G 3.057(es)-3.057 G .557(ee ho)-3.057 F 3.057(wt)-.25 G -3.057(oc)-3.057 G .557(hange the direction in which objects are joined.) --3.057 F .557(Had we)5.557 F(written)72 628 Q F1(ar)3.577 E 1.077(c; mo) --.18 F -.1(ve)-.1 G 3.577(;").1 G(ar)-3.577 E(c")-.18 E F0 3.577(,o)C -(mitting)-3.577 E F1(do)3.577 E(wn)-.1 E F0 1.077(the caption w)3.577 F -1.077(ould ha)-.1 F 1.377 -.15(ve b)-.2 H 1.077 -(een joined to the top of the arc, lik).15 F(e)-.1 E(this:)72 640 Q 0 Cg -EP -%%Page: 4 4 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-4-)282.17 48 Q .4 LW 279 120 18 90 0 DA(arc) -290.895 86.2 Q(Figure 3-5: Result of)222.23 161 Q/F1 10/Times-Bold@0 SF -(ar)2.5 E(c; mo)-.18 E -.1(ve)-.1 G(;).1 E F0 .129(This is because dra) -97 188.6 R .129(wing an arc changes the def)-.15 F .128 -(ault direction to the one its e)-.1 F .128(xit end points at.)-.15 F -1.728 -.8(To r)5.128 H(ein-).8 E(force this point, consider:)72 200.6 Q -279 236.6 18 -0 -90 DA(arc)290.895 274.8 Q(Figure 3-6: Result of)215.15 -295.6 Q F1(ar)2.5 E 2.5(cc)-.18 G(w; mo)-2.5 E -.1(ve)-.1 G(;).1 E F0 -.827(All we')97 323.2 R 1.127 -.15(ve d)-.5 H .827(one dif).15 F .827(f\ -erently here is specify \231cw\232 for a clockwise arc \(\231ccw\232 sp\ -eci\214es counter)-.25 F(-clock-)-.2 E(wise direction\).)72 335.2 Q -(Observ)5 E 2.5(eh)-.15 G .5 -.25(ow i)-2.5 H 2.5(tc).25 G -(hanges the def)-2.5 E(ault direction to do)-.1 E(wn, rather than up.) --.25 E(Another good w)97 350.8 Q(ay to see this via with the follo)-.1 E -(wing program:)-.25 E/F2 10/Courier@0 SF(line; arc; arc cw; line)108 -368.8 Q F0(which yields:)72 390.4 Q 270 444.4 234 444.4 DL 270 426.4 18 -90 0 DA 306 426.4 18 -90 180 DA 342 408.4 306 408.4 DL -(Figure 3-7: Result of)199.86 467.4 Q F1(line; ar)2.5 E(c; ar)-.18 E 2.5 -(cc)-.18 G(w; line)-2.5 E F0(Notice that we did not ha)72 495 Q .3 -.15 -(ve t)-.2 H 2.5(os).15 G(pecify \231up\232 for the second arc to be joi\ -ned to the end of the \214rst.)-2.5 E(Finally)97 510.6 Q 3.206(,o)-.65 G -(bserv)-3.206 E 3.206(et)-.15 G .705 -(hat a string, alone, is treated as te)-3.206 F .705 -(xt to be surrounded by an in)-.15 F .705(visible box of a size)-.4 F -.22(either speci\214ed by width and height attrib)72 522.6 R .221 -(utes or by the def)-.2 F(aults)-.1 E F1(textwid)2.721 E F0(and)2.721 E -F1(textht)2.721 E F0 5.221(.B)C .221(oth are initially zero)-5.221 F -(\(because we don')72 534.6 Q 2.5(tk)-.18 G(no)-2.5 E 2.5(wt)-.25 G -(he def)-2.5 E(ault font size\).)-.1 E F1 2.5(4. Sizes)72 558.6 R -(and Spacing)2.5 E F0 .252(Sizes are speci\214ed in inches.)97 574.2 R -.251(If you don')5.251 F 2.751(tl)-.18 G(ik)-2.751 E 2.751(ei)-.1 G .251 -(nches, it')-2.751 F 2.751(sp)-.55 G .251 -(ossible to set a global style v)-2.751 F(ariable)-.25 E F1(scale)2.751 -E F0 .314(that changes the unit.)72 586.2 R(Setting)5.314 E F1 .314 -(scale = 2.54)2.814 F F0 .314(will ef)2.814 F(fecti)-.25 E -.15(ve)-.25 -G .314(ly change the internal unit to centimeters \(all other).15 F -(size v)72 598.2 Q(ariable v)-.25 E -(alues will be scaled correspondingly\).)-.25 E F1 2.5(4.1. Default)72 -622.2 R(Sizes of Objects)2.5 E F0(Here are the def)97 637.8 Q -(ault sizes for)-.1 E F1(pic)2.5 E F0(objects:)2.5 E F1 12.5 -(Object Default)218.37 657.8 R(Size)2.5 E .08 LW 357.63 664.3 218.37 -664.3 DL 254.75 646.3 254.75 666.3 DL F0 26.38(box 0.75")218.37 675.8 R -(wide by 0.5" high)2.5 E 19.17(circle 0.5")218.37 687.8 R(diameter)2.5 E -15.27(ellipse 0.75")218.37 699.8 R(wide by 0.5" high)2.5 E 29.17 -(arc 0.5")218.37 711.8 R(radius)2.5 E 254.75 666.3 254.75 714.3 DL 0 Cg -EP -%%Page: 5 5 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-5-)282.17 48 Q/F1 10/Times-Bold@0 SF 12.5 -(Object Default)218.37 86 R(Size)2.5 E .08 LW 357.63 92.5 218.37 92.5 DL -254.75 74.5 254.75 94.5 DL F0 26.38(line 0.5")218.37 104 R(long)2.5 E -(arro)218.37 116 Q 20.81(w0)-.25 G(.5" long)-20.81 E 357.63 125.5 218.37 -125.5 DL 254.75 94.5 254.75 125.5 DL .076(The simplest w)97 144.6 R .076 -(ay to think about these def)-.1 F .076(aults is that the)-.1 F 2.575 -(ym)-.15 G(ak)-2.575 E 2.575(et)-.1 G .075 -(he other basic objects \214t snugly into)-2.575 F 2.5(ad)72 156.6 S(ef) --2.5 E(ault-sized box.)-.1 E F1 2.5(4.2. Objects)72 180.6 R(Do Not Str) -2.5 E(etch!)-.18 E F0 -1.25 -.7(Te x)97 196.2 T 2.711(ti).7 G 2.711(sr) --2.711 G .211(endered in the current font with normal trof)-2.711 F -2.711(fl)-.25 G .211(ine spacing.)-2.711 F(Box)5.211 E .211 -(es, circles, and ellipses do)-.15 F/F2 10/Times-Italic@0 SF(not)2.712 E -F0 .685(automatically resize to \214t enclosed te)72 208.2 R 3.184 -(xt. Thus,)-.15 F .684(if you say)3.184 F F1 .684 -(box "this text far too long f)3.184 F .684(or a default box")-.25 F F0 -(you')72 220.2 Q(ll get this:)-.1 E 315 274.2 MT 0 -36 RL -54 0 RL 0 36 -RL CL .4 LW ST(this te)208.6 258.4 Q(xt is f)-.15 E -(ar too long for a def)-.1 E(ault box)-.1 E(Figure 4-1: Box)196.695 -297.2 Q(es do not automatically resize)-.15 E -(which is probably not the ef)72 324.8 Q(fect you w)-.25 E(ant.)-.1 E F1 -2.5(4.3. Resizing)72 348.8 R(Boxes)2.5 E F0 1.6 -.8(To c)97 364.4 T(han\ -ge the box size, you can specify a box width with the \231width\232 mod\ -i\214er:).8 E 396 418.4 MT 0 -36 RL -216 0 RL 0 36 RL CL ST(this te) -208.6 402.6 Q(xt is f)-.15 E(ar too long for a def)-.1 E(ault box)-.1 E -(Figure 4-2: Result of)219.94 441.4 Q F1(box width 3)2.5 E F0 .272 -(This modi\214er tak)97 469 R .273(es a dimension in inches.)-.1 F .273 -(There is also a \231height\232 modi\214er that will change a box')5.273 -F(s)-.55 E 2.5(height. The)72 481 R F1(width)2.5 E F0 -.1(ke)2.5 G(yw) --.05 E(ord may be abbre)-.1 E(viated to)-.25 E F1(wid)2.5 E F0 2.5(;t)C -(he)-2.5 E F1(height)2.5 E F0 -.1(ke)2.5 G(yw)-.05 E(ord to)-.1 E F1(ht) -2.5 E F0(.)A F1 2.5(4.4. Resizing)72 505 R(Other Object T)2.5 E(ypes) --.74 E F0 2.477 -.8(To c)97 520.6 T .877(hange the size of a circle, gi) -.8 F 1.177 -.15(ve i)-.25 H 3.377(ta).15 G F1(rad[ius])A F0(or)3.377 E -F1(diam[eter])3.377 E F0 .876(modi\214er; this changes the radius or) -3.376 F(diameter of the circle, according to the numeric ar)72 532.6 Q -(gument that follo)-.18 E(ws.)-.25 E 223.2 572.2 7.2 DC ST(0.1)216.95 -596 Q 266.4 572.2 14.4 DC ST(0.2)260.15 574.4 Q 338.4 572.2 21.6 DC ST -(0.3)332.15 574.4 Q(Figure 4-3: Circles with increasing radii)207.87 -616.8 Q(The)97 644.4 Q F1(mo)3.27 E -.1(ve)-.1 G F0 .77 -(command can also tak)3.37 F 3.27(ead)-.1 G .771 -(imension, which just tells it ho)-3.27 F 3.271(wm)-.25 G(an)-3.271 E -3.271(yi)-.15 G .771(nches to mo)-3.271 F 1.071 -.15(ve i)-.15 H 3.271 -(nt).15 G(he)-3.271 E(current direction.)72 656.4 Q .849(Ellipses are s\ -ized to \214t in the rectangular box de\214ned by their ax)97 672 R .848 -(es, and can be resized with)-.15 F F1(width)3.348 E F0(and)72 684 Q F1 -(height)2.5 E F0(lik)2.5 E 2.5(eb)-.1 G(ox)-2.5 E(es.)-.15 E -1.1(Yo)97 -699.6 S 2.722(uc)1.1 G .222(an also change the radius of curv)-2.722 F -.222(ature of an arc with)-.25 F F1(rad[ius])2.722 E F0 .223 -(\(which speci\214es the radius of the)2.722 F -(circle of which the arc is a se)72 711.6 Q 2.5(gment\). Lar)-.15 F -(ger v)-.18 E(alues yield \215atter arcs.)-.25 E 0 Cg EP -%%Page: 6 6 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-6-)282.17 48 Q .4 LW 241.2 98.4 7.2 90 0 DA -(0.1)234.95 122.2 Q 277.2 91.2 14.4 90 0 DA(0.2)270.95 122.2 Q 313.2 84 -21.6 90 0 DA(0.3)306.95 122.2 Q(Figure 4-4:)206.435 143 Q/F1 10 -/Times-Bold@0 SF(ar)2.5 E 2.5(cr)-.18 G(ad)-2.5 E F0 -(with increasing radii)2.5 E(Observ)97 170.6 Q 2.667(et)-.15 G .166(hat\ - because an arc is de\214ned as a quarter circle, increasing the radius\ - also increases the size)-2.667 F(of the arc')72 182.6 Q 2.5(sb)-.55 G -(ounding box.)-2.5 E F1 2.5(4.5. The)72 206.6 R(`same' K)2.5 E(eyw)-.25 -E(ord)-.1 E F0 .231 -(In place of a dimension speci\214cation, you can use the k)97 222.2 R --.15(ey)-.1 G -.1(wo).15 G(rd).1 E F1(same)2.731 E F0 5.231(.T)C .231 -(his gi)-5.231 F -.15(ve)-.25 G 2.731(st).15 G .232(he object the same) --2.731 F(size as the pre)72 234.2 Q(vious one of its type.)-.25 E -(As an e)5 E(xample, the program)-.15 E/F2 10/Courier@0 SF(.PS)108 252.2 -Q(box; box wid 1 ht 1; box same; box)108 264.2 Q(.PE)108 276.2 Q F0(gi) -72 297.8 Q -.15(ve)-.25 G 2.5(sy).15 G(ou)-2.5 E 216 369.8 MT 0 -36 RL --54 0 RL 0 36 RL CL ST 288 387.8 MT 0 -72 RL -72 0 RL 0 72 RL CL ST 360 -387.8 MT 0 -72 RL -72 0 RL 0 72 RL CL ST 414 369.8 MT 0 -36 RL -54 0 RL -0 36 RL CL ST(Figure 4-5: The)225.965 410.8 Q F1(same)2.5 E F0 -.1(ke) -2.5 G(yw)-.05 E(ord)-.1 E F1 2.5(5. Generalized)72 446.8 R -(Lines and Splines)2.5 E 2.5(5.1. Diagonal)72 470.8 R(Lines)2.5 E F0 -.466(It is possible to specify diagonal lines or arro)97 486.4 R .466 -(ws by adding multiple)-.25 F F1(up)2.966 E F0(,)A F1(do)2.966 E(wn)-.1 -E F0(,)A F1(left)2.966 E F0 2.966(,a)C(nd)-2.966 E F1(right)2.965 E F0 -(modi-)2.965 E .373(\214ers to the line object.)72 498.4 R(An)5.373 E -2.873(yo)-.15 G 2.874(ft)-2.873 G .374(hese can ha)-2.874 F .674 -.15 -(ve a m)-.2 H(ultiplier).15 E 5.374(.T)-.55 G 2.874(ou)-6.174 G .374 -(nderstand the ef)-2.874 F .374(fects, think of the dra)-.25 F(wing)-.15 -E(area as being gridded with standard-sized box)72 510.4 Q(es.)-.15 E -86.4 528.4 MT 6.336 3.816 RL -2.52 2.52 RL CL 0 Fg 86.4 528.4 MT 6.336 -3.816 RL -2.52 2.52 RL CL .1 LW 0 Cg ST .4 LW 91.512 533.512 122.4 564.4 -DL 86.4 564.4 86.4 564.4 DL 90 564.4 90 564.4 DL 93.6 564.4 93.6 564.4 -DL 97.2 564.4 97.2 564.4 DL 100.8 564.4 100.8 564.4 DL 104.4 564.4 104.4 -564.4 DL 108 564.4 108 564.4 DL 111.6 564.4 111.6 564.4 DL 115.2 564.4 -115.2 564.4 DL 118.8 564.4 118.8 564.4 DL 122.4 564.4 122.4 564.4 DL -122.4 564.4 122.4 564.4 DL 122.4 560.8 122.4 560.8 DL 122.4 557.2 122.4 -557.2 DL 122.4 553.6 122.4 553.6 DL 122.4 550 122.4 550 DL 122.4 546.4 -122.4 546.4 DL 122.4 542.8 122.4 542.8 DL 122.4 539.2 122.4 539.2 DL -122.4 535.6 122.4 535.6 DL 122.4 532 122.4 532 DL 122.4 528.4 122.4 -528.4 DL 122.4 528.4 122.4 528.4 DL 118.8 528.4 118.8 528.4 DL 115.2 -528.4 115.2 528.4 DL 111.6 528.4 111.6 528.4 DL 108 528.4 108 528.4 DL -104.4 528.4 104.4 528.4 DL 100.8 528.4 100.8 528.4 DL 97.2 528.4 97.2 -528.4 DL 93.6 528.4 93.6 528.4 DL 90 528.4 90 528.4 DL 86.4 528.4 86.4 -528.4 DL 86.4 528.4 86.4 528.4 DL 86.4 532 86.4 532 DL 86.4 535.6 86.4 -535.6 DL 86.4 539.2 86.4 539.2 DL 86.4 542.8 86.4 542.8 DL 86.4 546.4 -86.4 546.4 DL 86.4 550 86.4 550 DL 86.4 553.6 86.4 553.6 DL 86.4 557.2 -86.4 557.2 DL 86.4 560.8 86.4 560.8 DL 86.4 564.4 86.4 564.4 DL F1 -(line up left)81.62 584.6 Q 136.8 528.4 MT 7.272 1.584 RL -1.584 3.24 RL -CL 0 Fg 136.8 528.4 MT 7.272 1.584 RL -1.584 3.24 RL CL .1 LW 0 Cg ST .4 -LW 143.208 531.64 208.8 564.4 DL 136.8 564.4 136.8 564.4 DL 140.4 564.4 -140.4 564.4 DL 144 564.4 144 564.4 DL 147.6 564.4 147.6 564.4 DL 151.2 -564.4 151.2 564.4 DL 154.8 564.4 154.8 564.4 DL 158.4 564.4 158.4 564.4 -DL 162 564.4 162 564.4 DL 165.6 564.4 165.6 564.4 DL 169.2 564.4 169.2 -564.4 DL 172.8 564.4 172.8 564.4 DL 172.8 564.4 172.8 564.4 DL 172.8 -560.8 172.8 560.8 DL 172.8 557.2 172.8 557.2 DL 172.8 553.6 172.8 553.6 -DL 172.8 550 172.8 550 DL 172.8 546.4 172.8 546.4 DL 172.8 542.8 172.8 -542.8 DL 172.8 539.2 172.8 539.2 DL 172.8 535.6 172.8 535.6 DL 172.8 532 -172.8 532 DL 172.8 528.4 172.8 528.4 DL 172.8 528.4 172.8 528.4 DL 169.2 -528.4 169.2 528.4 DL 165.6 528.4 165.6 528.4 DL 162 528.4 162 528.4 DL -158.4 528.4 158.4 528.4 DL 154.8 528.4 154.8 528.4 DL 151.2 528.4 151.2 -528.4 DL 147.6 528.4 147.6 528.4 DL 144 528.4 144 528.4 DL 140.4 528.4 -140.4 528.4 DL 136.8 528.4 136.8 528.4 DL 136.8 528.4 136.8 528.4 DL -136.8 532 136.8 532 DL 136.8 535.6 136.8 535.6 DL 136.8 539.2 136.8 -539.2 DL 136.8 542.8 136.8 542.8 DL 136.8 546.4 136.8 546.4 DL 136.8 550 -136.8 550 DL 136.8 553.6 136.8 553.6 DL 136.8 557.2 136.8 557.2 DL 136.8 -560.8 136.8 560.8 DL 136.8 564.4 136.8 564.4 DL 172.8 564.4 172.8 564.4 -DL 176.4 564.4 176.4 564.4 DL 180 564.4 180 564.4 DL 183.6 564.4 183.6 -564.4 DL 187.2 564.4 187.2 564.4 DL 190.8 564.4 190.8 564.4 DL 194.4 -564.4 194.4 564.4 DL 198 564.4 198 564.4 DL 201.6 564.4 201.6 564.4 DL -205.2 564.4 205.2 564.4 DL 208.8 564.4 208.8 564.4 DL 208.8 564.4 208.8 -564.4 DL 208.8 560.8 208.8 560.8 DL 208.8 557.2 208.8 557.2 DL 208.8 -553.6 208.8 553.6 DL 208.8 550 208.8 550 DL 208.8 546.4 208.8 546.4 DL -208.8 542.8 208.8 542.8 DL 208.8 539.2 208.8 539.2 DL 208.8 535.6 208.8 -535.6 DL 208.8 532 208.8 532 DL 208.8 528.4 208.8 528.4 DL 208.8 528.4 -208.8 528.4 DL 205.2 528.4 205.2 528.4 DL 201.6 528.4 201.6 528.4 DL 198 -528.4 198 528.4 DL 194.4 528.4 194.4 528.4 DL 190.8 528.4 190.8 528.4 DL -187.2 528.4 187.2 528.4 DL 183.6 528.4 183.6 528.4 DL 180 528.4 180 -528.4 DL 176.4 528.4 176.4 528.4 DL 172.8 528.4 172.8 528.4 DL 172.8 -528.4 172.8 528.4 DL 172.8 532 172.8 532 DL 172.8 535.6 172.8 535.6 DL -172.8 539.2 172.8 539.2 DL 172.8 542.8 172.8 542.8 DL 172.8 546.4 172.8 -546.4 DL 172.8 550 172.8 550 DL 172.8 553.6 172.8 553.6 DL 172.8 557.2 -172.8 557.2 DL 172.8 560.8 172.8 560.8 DL 172.8 564.4 172.8 564.4 DL -(arr)141.14 584.6 Q .2 -.1(ow u)-.18 H 2.5(pl).1 G(eft 1)-2.5 E 223.2 -528.4 MT 7.416 .576 RL -1.152 3.384 RL CL 0 Fg 223.2 528.4 MT 7.416 .576 -RL -1.152 3.384 RL CL .1 LW 0 Cg ST .4 LW 230.04 530.704 331.2 564.4 DL -223.2 564.4 223.2 564.4 DL 226.8 564.4 226.8 564.4 DL 230.4 564.4 230.4 -564.4 DL 234 564.4 234 564.4 DL 237.6 564.4 237.6 564.4 DL 241.2 564.4 -241.2 564.4 DL 244.8 564.4 244.8 564.4 DL 248.4 564.4 248.4 564.4 DL 252 -564.4 252 564.4 DL 255.6 564.4 255.6 564.4 DL 259.2 564.4 259.2 564.4 DL -259.2 564.4 259.2 564.4 DL 259.2 560.8 259.2 560.8 DL 259.2 557.2 259.2 -557.2 DL 259.2 553.6 259.2 553.6 DL 259.2 550 259.2 550 DL 259.2 546.4 -259.2 546.4 DL 259.2 542.8 259.2 542.8 DL 259.2 539.2 259.2 539.2 DL -259.2 535.6 259.2 535.6 DL 259.2 532 259.2 532 DL 259.2 528.4 259.2 -528.4 DL 259.2 528.4 259.2 528.4 DL 255.6 528.4 255.6 528.4 DL 252 528.4 -252 528.4 DL 248.4 528.4 248.4 528.4 DL 244.8 528.4 244.8 528.4 DL 241.2 -528.4 241.2 528.4 DL 237.6 528.4 237.6 528.4 DL 234 528.4 234 528.4 DL -230.4 528.4 230.4 528.4 DL 226.8 528.4 226.8 528.4 DL 223.2 528.4 223.2 -528.4 DL 223.2 528.4 223.2 528.4 DL 223.2 532 223.2 532 DL 223.2 535.6 -223.2 535.6 DL 223.2 539.2 223.2 539.2 DL 223.2 542.8 223.2 542.8 DL -223.2 546.4 223.2 546.4 DL 223.2 550 223.2 550 DL 223.2 553.6 223.2 -553.6 DL 223.2 557.2 223.2 557.2 DL 223.2 560.8 223.2 560.8 DL 223.2 -564.4 223.2 564.4 DL 259.2 564.4 259.2 564.4 DL 262.8 564.4 262.8 564.4 -DL 266.4 564.4 266.4 564.4 DL 270 564.4 270 564.4 DL 273.6 564.4 273.6 -564.4 DL 277.2 564.4 277.2 564.4 DL 280.8 564.4 280.8 564.4 DL 284.4 -564.4 284.4 564.4 DL 288 564.4 288 564.4 DL 291.6 564.4 291.6 564.4 DL -295.2 564.4 295.2 564.4 DL 295.2 564.4 295.2 564.4 DL 295.2 560.8 295.2 -560.8 DL 295.2 557.2 295.2 557.2 DL 295.2 553.6 295.2 553.6 DL 295.2 550 -295.2 550 DL 295.2 546.4 295.2 546.4 DL 295.2 542.8 295.2 542.8 DL 295.2 -539.2 295.2 539.2 DL 295.2 535.6 295.2 535.6 DL 295.2 532 295.2 532 DL -295.2 528.4 295.2 528.4 DL 295.2 528.4 295.2 528.4 DL 291.6 528.4 291.6 -528.4 DL 288 528.4 288 528.4 DL 284.4 528.4 284.4 528.4 DL 280.8 528.4 -280.8 528.4 DL 277.2 528.4 277.2 528.4 DL 273.6 528.4 273.6 528.4 DL 270 -528.4 270 528.4 DL 266.4 528.4 266.4 528.4 DL 262.8 528.4 262.8 528.4 DL -259.2 528.4 259.2 528.4 DL 259.2 528.4 259.2 528.4 DL 259.2 532 259.2 -532 DL 259.2 535.6 259.2 535.6 DL 259.2 539.2 259.2 539.2 DL 259.2 542.8 -259.2 542.8 DL 259.2 546.4 259.2 546.4 DL 259.2 550 259.2 550 DL 259.2 -553.6 259.2 553.6 DL 259.2 557.2 259.2 557.2 DL 259.2 560.8 259.2 560.8 -DL 259.2 564.4 259.2 564.4 DL 295.2 564.4 295.2 564.4 DL 298.8 564.4 -298.8 564.4 DL 302.4 564.4 302.4 564.4 DL 306 564.4 306 564.4 DL 309.6 -564.4 309.6 564.4 DL 313.2 564.4 313.2 564.4 DL 316.8 564.4 316.8 564.4 -DL 320.4 564.4 320.4 564.4 DL 324 564.4 324 564.4 DL 327.6 564.4 327.6 -564.4 DL 331.2 564.4 331.2 564.4 DL 331.2 564.4 331.2 564.4 DL 331.2 -560.8 331.2 560.8 DL 331.2 557.2 331.2 557.2 DL 331.2 553.6 331.2 553.6 -DL 331.2 550 331.2 550 DL 331.2 546.4 331.2 546.4 DL 331.2 542.8 331.2 -542.8 DL 331.2 539.2 331.2 539.2 DL 331.2 535.6 331.2 535.6 DL 331.2 532 -331.2 532 DL 331.2 528.4 331.2 528.4 DL 331.2 528.4 331.2 528.4 DL 327.6 -528.4 327.6 528.4 DL 324 528.4 324 528.4 DL 320.4 528.4 320.4 528.4 DL -316.8 528.4 316.8 528.4 DL 313.2 528.4 313.2 528.4 DL 309.6 528.4 309.6 -528.4 DL 306 528.4 306 528.4 DL 302.4 528.4 302.4 528.4 DL 298.8 528.4 -298.8 528.4 DL 295.2 528.4 295.2 528.4 DL 295.2 528.4 295.2 528.4 DL -295.2 532 295.2 532 DL 295.2 535.6 295.2 535.6 DL 295.2 539.2 295.2 -539.2 DL 295.2 542.8 295.2 542.8 DL 295.2 546.4 295.2 546.4 DL 295.2 550 -295.2 550 DL 295.2 553.6 295.2 553.6 DL 295.2 557.2 295.2 557.2 DL 295.2 -560.8 295.2 560.8 DL 295.2 564.4 295.2 564.4 DL(arr)241.79 584.6 Q .2 --.1(ow u)-.18 H 2.5(pl).1 G(eft 1.5)-2.5 E 345.6 528.4 MT 7.416 0 RL --.864 3.528 RL CL 0 Fg 345.6 528.4 MT 7.416 0 RL -.864 3.528 RL CL .1 LW -0 Cg ST .4 LW 352.584 530.128 489.6 564.4 DL 345.6 564.4 345.6 564.4 DL -349.2 564.4 349.2 564.4 DL 352.8 564.4 352.8 564.4 DL 356.4 564.4 356.4 -564.4 DL 360 564.4 360 564.4 DL 363.6 564.4 363.6 564.4 DL 367.2 564.4 -367.2 564.4 DL 370.8 564.4 370.8 564.4 DL 374.4 564.4 374.4 564.4 DL 378 -564.4 378 564.4 DL 381.6 564.4 381.6 564.4 DL 381.6 564.4 381.6 564.4 DL -381.6 560.8 381.6 560.8 DL 381.6 557.2 381.6 557.2 DL 381.6 553.6 381.6 -553.6 DL 381.6 550 381.6 550 DL 381.6 546.4 381.6 546.4 DL 381.6 542.8 -381.6 542.8 DL 381.6 539.2 381.6 539.2 DL 381.6 535.6 381.6 535.6 DL -381.6 532 381.6 532 DL 381.6 528.4 381.6 528.4 DL 381.6 528.4 381.6 -528.4 DL 378 528.4 378 528.4 DL 374.4 528.4 374.4 528.4 DL 370.8 528.4 -370.8 528.4 DL 367.2 528.4 367.2 528.4 DL 363.6 528.4 363.6 528.4 DL 360 -528.4 360 528.4 DL 356.4 528.4 356.4 528.4 DL 352.8 528.4 352.8 528.4 DL -349.2 528.4 349.2 528.4 DL 345.6 528.4 345.6 528.4 DL 345.6 528.4 345.6 -528.4 DL 345.6 532 345.6 532 DL 345.6 535.6 345.6 535.6 DL 345.6 539.2 -345.6 539.2 DL 345.6 542.8 345.6 542.8 DL 345.6 546.4 345.6 546.4 DL -345.6 550 345.6 550 DL 345.6 553.6 345.6 553.6 DL 345.6 557.2 345.6 -557.2 DL 345.6 560.8 345.6 560.8 DL 345.6 564.4 345.6 564.4 DL 381.6 -564.4 381.6 564.4 DL 385.2 564.4 385.2 564.4 DL 388.8 564.4 388.8 564.4 -DL 392.4 564.4 392.4 564.4 DL 396 564.4 396 564.4 DL 399.6 564.4 399.6 -564.4 DL 403.2 564.4 403.2 564.4 DL 406.8 564.4 406.8 564.4 DL 410.4 -564.4 410.4 564.4 DL 414 564.4 414 564.4 DL 417.6 564.4 417.6 564.4 DL -417.6 564.4 417.6 564.4 DL 417.6 560.8 417.6 560.8 DL 417.6 557.2 417.6 -557.2 DL 417.6 553.6 417.6 553.6 DL 417.6 550 417.6 550 DL 417.6 546.4 -417.6 546.4 DL 417.6 542.8 417.6 542.8 DL 417.6 539.2 417.6 539.2 DL -417.6 535.6 417.6 535.6 DL 417.6 532 417.6 532 DL 417.6 528.4 417.6 -528.4 DL 417.6 528.4 417.6 528.4 DL 414 528.4 414 528.4 DL 410.4 528.4 -410.4 528.4 DL 406.8 528.4 406.8 528.4 DL 403.2 528.4 403.2 528.4 DL -399.6 528.4 399.6 528.4 DL 396 528.4 396 528.4 DL 392.4 528.4 392.4 -528.4 DL 388.8 528.4 388.8 528.4 DL 385.2 528.4 385.2 528.4 DL 381.6 -528.4 381.6 528.4 DL 381.6 528.4 381.6 528.4 DL 381.6 532 381.6 532 DL -381.6 535.6 381.6 535.6 DL 381.6 539.2 381.6 539.2 DL 381.6 542.8 381.6 -542.8 DL 381.6 546.4 381.6 546.4 DL 381.6 550 381.6 550 DL 381.6 553.6 -381.6 553.6 DL 381.6 557.2 381.6 557.2 DL 381.6 560.8 381.6 560.8 DL -381.6 564.4 381.6 564.4 DL 417.6 564.4 417.6 564.4 DL 421.2 564.4 421.2 -564.4 DL 424.8 564.4 424.8 564.4 DL 428.4 564.4 428.4 564.4 DL 432 564.4 -432 564.4 DL 435.6 564.4 435.6 564.4 DL 439.2 564.4 439.2 564.4 DL 442.8 -564.4 442.8 564.4 DL 446.4 564.4 446.4 564.4 DL 450 564.4 450 564.4 DL -453.6 564.4 453.6 564.4 DL 453.6 564.4 453.6 564.4 DL 453.6 560.8 453.6 -560.8 DL 453.6 557.2 453.6 557.2 DL 453.6 553.6 453.6 553.6 DL 453.6 550 -453.6 550 DL 453.6 546.4 453.6 546.4 DL 453.6 542.8 453.6 542.8 DL 453.6 -539.2 453.6 539.2 DL 453.6 535.6 453.6 535.6 DL 453.6 532 453.6 532 DL -453.6 528.4 453.6 528.4 DL 453.6 528.4 453.6 528.4 DL 450 528.4 450 -528.4 DL 446.4 528.4 446.4 528.4 DL 442.8 528.4 442.8 528.4 DL 439.2 -528.4 439.2 528.4 DL 435.6 528.4 435.6 528.4 DL 432 528.4 432 528.4 DL -428.4 528.4 428.4 528.4 DL 424.8 528.4 424.8 528.4 DL 421.2 528.4 421.2 -528.4 DL 417.6 528.4 417.6 528.4 DL 417.6 528.4 417.6 528.4 DL 417.6 532 -417.6 532 DL 417.6 535.6 417.6 535.6 DL 417.6 539.2 417.6 539.2 DL 417.6 -542.8 417.6 542.8 DL 417.6 546.4 417.6 546.4 DL 417.6 550 417.6 550 DL -417.6 553.6 417.6 553.6 DL 417.6 557.2 417.6 557.2 DL 417.6 560.8 417.6 -560.8 DL 417.6 564.4 417.6 564.4 DL 453.6 564.4 453.6 564.4 DL 457.2 -564.4 457.2 564.4 DL 460.8 564.4 460.8 564.4 DL 464.4 564.4 464.4 564.4 -DL 468 564.4 468 564.4 DL 471.6 564.4 471.6 564.4 DL 475.2 564.4 475.2 -564.4 DL 478.8 564.4 478.8 564.4 DL 482.4 564.4 482.4 564.4 DL 486 564.4 -486 564.4 DL 489.6 564.4 489.6 564.4 DL 489.6 564.4 489.6 564.4 DL 489.6 -560.8 489.6 560.8 DL 489.6 557.2 489.6 557.2 DL 489.6 553.6 489.6 553.6 -DL 489.6 550 489.6 550 DL 489.6 546.4 489.6 546.4 DL 489.6 542.8 489.6 -542.8 DL 489.6 539.2 489.6 539.2 DL 489.6 535.6 489.6 535.6 DL 489.6 532 -489.6 532 DL 489.6 528.4 489.6 528.4 DL 489.6 528.4 489.6 528.4 DL 486 -528.4 486 528.4 DL 482.4 528.4 482.4 528.4 DL 478.8 528.4 478.8 528.4 DL -475.2 528.4 475.2 528.4 DL 471.6 528.4 471.6 528.4 DL 468 528.4 468 -528.4 DL 464.4 528.4 464.4 528.4 DL 460.8 528.4 460.8 528.4 DL 457.2 -528.4 457.2 528.4 DL 453.6 528.4 453.6 528.4 DL 453.6 528.4 453.6 528.4 -DL 453.6 532 453.6 532 DL 453.6 535.6 453.6 535.6 DL 453.6 539.2 453.6 -539.2 DL 453.6 542.8 453.6 542.8 DL 453.6 546.4 453.6 546.4 DL 453.6 550 -453.6 550 DL 453.6 553.6 453.6 553.6 DL 453.6 557.2 453.6 557.2 DL 453.6 -560.8 453.6 560.8 DL 453.6 564.4 453.6 564.4 DL(arr)385.94 584.6 Q .2 --.1(ow u)-.18 H 2.5(pl).1 G(eft 2)-2.5 E F0(Figure 5-1: Diagonal arro) -138.76 605.4 Q(ws \(dotted box)-.25 E(es sho)-.15 E 2.5(wt)-.25 G -(he implied 0.5-inch grid\))-2.5 E F1 2.5(5.2. Multi-Segment)72 641.4 R -(Line Objects)2.5 E F0 3.144<4199>97 657 S .644(line\232 or \231arro) --3.144 F .644(w\232 object may actually be a path consisting of an)-.25 -F 3.143(yn)-.15 G .643(umber of se)-3.143 F .643(gments of v)-.15 F -(arying)-.25 E .103(lengths and directions.)72 669 R 1.703 -.8(To d) -5.103 H .104(escribe a path, connect se).8 F -.15(ve)-.25 G .104 -(ral line or arro).15 F 2.604(wc)-.25 G .104(ommands with the k)-2.604 F --.15(ey)-.1 G -.1(wo).15 G(rd).1 E F1(then)2.604 E F0(.)A 0 Cg EP -%%Page: 7 7 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-7-)282.17 48 Q .4 LW 324 84 252 84 DL 252 120 -324 84 DL 324 120 252 120 DL(Figure 5-2:)174.3 143 Q/F1 10/Times-Bold@0 -SF(line right 1 then do)2.5 E(wn .5 left 1 then right 1)-.1 E 2.5 -(5.3. Spline)72 179 R(Objects)2.5 E F0 .311 -(If you start a path with the)97 194.6 R F1(spline)2.811 E F0 -.1(ke) -2.811 G(yw)-.05 E .311(ord, the path v)-.1 F .31 -(ertices are treated as control points for a spline)-.15 F(curv)72 206.6 -Q 2.5<658c>-.15 G(t.)-2.5 E 190.8 224.6 MT 36 0 RL 24 0 24 6 0 18 RC -24 -12 -24 18 0 18 RC 36 0 RL ST(The spline curv)189.8 277.2 Q(e...)-.15 E -309.6 224.6 306 224.6 DL 317.232 224.6 313.632 224.6 DL 324.792 224.6 -321.192 224.6 DL 332.424 224.6 328.824 224.6 DL 339.984 224.6 336.384 -224.6 DL 347.616 224.6 344.016 224.6 DL 355.176 224.6 351.576 224.6 DL -362.808 224.6 359.208 224.6 DL 370.368 224.6 366.768 224.6 DL 378 224.6 -374.4 224.6 DL 374.76 226.184 378 224.6 DL 368.496 229.28 371.736 -227.696 DL 362.232 232.448 365.472 230.864 DL 355.968 235.544 359.208 -233.96 DL 349.776 238.712 353.016 237.128 DL 343.512 241.808 346.752 -240.224 DL 337.248 244.976 340.488 243.392 DL 330.984 248.072 334.224 -246.488 DL 324.72 251.168 327.96 249.584 DL 318.456 254.336 321.696 -252.752 DL 312.264 257.432 315.504 255.848 DL 306 260.6 309.24 259.016 -DL 309.6 260.6 306 260.6 DL 317.232 260.6 313.632 260.6 DL 324.792 260.6 -321.192 260.6 DL 332.424 260.6 328.824 260.6 DL 339.984 260.6 336.384 -260.6 DL 347.616 260.6 344.016 260.6 DL 355.176 260.6 351.576 260.6 DL -362.808 260.6 359.208 260.6 DL 370.368 260.6 366.768 260.6 DL 378 260.6 -374.4 260.6 DL 306 224.6 MT 36 0 RL 24 0 24 6 0 18 RC -24 12 -24 18 0 18 -RC 36 0 RL ST(1)296.3 226.8 Q(2)382.7 226.8 Q(3)296.3 262.8 Q(4)382.7 -262.8 Q(...with tangents displayed)291.03 277.2 Q(Figure 5-3:)169.575 -298 Q F1(spline right 1 then do)2.5 E(wn .5 left 1 then right 1)-.1 E F0 --1.1(Yo)97 325.6 S 2.5(uc)1.1 G(an describe man)-2.5 E 2.5(yn)-.15 G -(atural-looking b)-2.5 E(ut irre)-.2 E(gular curv)-.15 E(es this w)-.15 -E(ay)-.1 E 5(.F)-.65 G(or e)-5.15 E(xample:)-.15 E 156.384 375.136 MT --1.8 -7.2 RL 3.6 0 RL CL 0 Fg 156.384 375.136 MT -1.8 -7.2 RL 3.6 0 RL -CL .1 LW 0 Cg ST 156.384 375.136 MT 18 0 RL 12 0 18 -6 18 -18 RC 0 -12 --6 -18 -18 -18 RC -12 0 -18 5.88 -18 17.64 RC 0 17.64 RL .4 LW ST F1 -(spline right then up then left then do)80.457 391.664 Q(wn ->;)-.1 E -(spline left then up right then do)295.347 391.664 Q(wn right ->;)-.1 E -419.616 375.136 MT -6.336 -3.816 RL 2.52 -2.52 RL CL 0 Fg 419.616 -375.136 MT -6.336 -3.816 RL 2.52 -2.52 RL CL .1 LW 0 Cg ST 383.616 -375.136 MT -18 0 RL -12 0 -12 -6 0 -18 RC 12 -12 23.916 -12.084 35.748 --.252 RC 17.748 17.748 RL .4 LW ST F0(Figure 5-4: T)210.895 412.464 Q .2 --.1(wo m)-.8 H(ore spline e).1 E(xamples)-.15 E .646(Note the arro)72 -440.064 R 3.146(wd)-.25 G 3.146(ecorations. Arro)-3.146 F .646 -(wheads can be applied naturally to an)-.25 F 3.146(yp)-.15 G .646 -(ath-based object, line or spline.)-3.146 F -.8(We)72 452.064 S -.1('l) -.8 G 2.5(ls).1 G(ee ho)-2.5 E 2.5(wi)-.25 G 2.5(nt)-2.5 G(he ne)-2.5 E -(xt section.)-.15 E F1 2.5(6. Decorating)72 476.064 R(Objects)2.5 E 2.5 -(6.1. Dashed)72 500.064 R(Objects)2.5 E F0 -.8(We)97 515.664 S -1.65 -.5 -('v e).8 H 1.4(already seen that the modi\214er)4.4 F F1(dashed)3.9 E F0 -1.399(can change the line style of an object from solid to)3.9 F 3.331 -(dashed. GNU)72 527.664 R F1(gpic)3.331 E F0 .832(permits you to dot or\ - dash ellipses, circles, and arcs \(and splines in T)3.331 F(E)-1.667 -2.24 M 3.332(Xm)-1.25 -2.24 O .832(ode only\);)-3.332 F .313(some v)72 -539.664 R .313(ersions of D)-.15 F .312 -(WB may only permit dashing of lines and box)-.3 F 2.812(es. It')-.15 F -2.812(sp)-.55 G .312(ossible to change the dash inter)-2.812 F(-)-.2 E --.25(va)72 551.664 S 2.5(lb).25 G 2.5(ys)-2.5 G -(pecifying a number after the modi\214er)-2.5 E(.)-.55 E 84.6 609.264 81 -609.264 DL 91.8 609.264 88.2 609.264 DL 99 609.264 95.4 609.264 DL 106.2 -609.264 102.6 609.264 DL 113.4 609.264 109.8 609.264 DL 120.6 609.264 -117 609.264 DL 127.8 609.264 124.2 609.264 DL 135 609.264 131.4 609.264 -DL 135 605.664 135 609.264 DL 135 599.184 135 602.784 DL 135 592.704 135 -596.304 DL 135 586.224 135 589.824 DL 135 579.744 135 583.344 DL 135 -573.264 135 576.864 DL 131.4 573.264 135 573.264 DL 124.2 573.264 127.8 -573.264 DL 117 573.264 120.6 573.264 DL 109.8 573.264 113.4 573.264 DL -102.6 573.264 106.2 573.264 DL 95.4 573.264 99 573.264 DL 88.2 573.264 -91.8 573.264 DL 81 573.264 84.6 573.264 DL 81 576.864 81 573.264 DL 81 -583.344 81 579.744 DL 81 589.824 81 586.224 DL 81 596.304 81 592.704 DL -81 602.784 81 599.184 DL 81 609.264 81 605.664 DL(def)94.165 593.464 Q -(ault)-.1 E 174.6 609.264 171 609.264 DL 181.8 609.264 178.2 609.264 DL -189 609.264 185.4 609.264 DL 196.2 609.264 192.6 609.264 DL 203.4 -609.264 199.8 609.264 DL 210.6 609.264 207 609.264 DL 217.8 609.264 -214.2 609.264 DL 225 609.264 221.4 609.264 DL 225 605.664 225 609.264 DL -225 599.184 225 602.784 DL 225 592.704 225 596.304 DL 225 586.224 225 -589.824 DL 225 579.744 225 583.344 DL 225 573.264 225 576.864 DL 221.4 -573.264 225 573.264 DL 214.2 573.264 217.8 573.264 DL 207 573.264 210.6 -573.264 DL 199.8 573.264 203.4 573.264 DL 192.6 573.264 196.2 573.264 DL -185.4 573.264 189 573.264 DL 178.2 573.264 181.8 573.264 DL 171 573.264 -174.6 573.264 DL 171 576.864 171 573.264 DL 171 583.344 171 579.744 DL -171 589.824 171 586.224 DL 171 596.304 171 592.704 DL 171 602.784 171 -599.184 DL 171 609.264 171 605.664 DL(0.05)189.25 593.464 Q 268.2 -609.264 261 609.264 DL 283.824 609.264 276.624 609.264 DL 299.376 -609.264 292.176 609.264 DL 315 609.264 307.8 609.264 DL 315 602.064 315 -609.264 DL 315 587.664 315 594.864 DL 315 573.264 315 580.464 DL 307.8 -573.264 315 573.264 DL 292.176 573.264 299.376 573.264 DL 276.624 -573.264 283.824 573.264 DL 261 573.264 268.2 573.264 DL 261 580.464 261 -573.264 DL 261 594.864 261 587.664 DL 261 609.264 261 602.064 DL(0.1) -281.75 593.464 Q 361.8 609.264 351 609.264 DL 383.4 609.264 372.6 -609.264 DL 405 609.264 394.2 609.264 DL 405 598.464 405 609.264 DL 405 -573.264 405 584.064 DL 394.2 573.264 405 573.264 DL 372.6 573.264 383.4 -573.264 DL 351 573.264 361.8 573.264 DL 351 584.064 351 573.264 DL 351 -609.264 351 598.464 DL(0.15)369.25 593.464 Q 455.4 609.264 441 609.264 -DL 495 609.264 480.6 609.264 DL 495 594.864 495 609.264 DL 495 573.264 -495 587.664 DL 480.6 573.264 495 573.264 DL 441 573.264 455.4 573.264 DL -441 587.664 441 573.264 DL 441 609.264 441 594.864 DL(0.2)461.75 593.464 -Q(Figure 6-1: Dashed objects)233.98 632.264 Q F1 2.5(6.2. Dotted)72 -668.264 R(Objects)2.5 E F0 .191(Another a)97 683.864 R -.25(va)-.2 G -.191(ilable quali\214er is).25 F F1(dotted)2.691 E F0 5.191(.G)C(NU) --5.191 E F1(gpic)2.691 E F0 .191 -(permits you to dot or dash ellipses, circles, and arcs)2.691 F .102 -(\(and splines in T)72 695.864 R(E)-1.667 2.24 M 2.602(Xm)-1.25 -2.24 O -.102(ode only\); some v)-2.602 F .102(ersions of D)-.15 F .102 -(WB may only permit dashing of lines and box)-.3 F 2.602(es. It)-.15 F -(too)2.601 E(can be suf)72 707.864 Q<8c78>-.25 E -(ed with a number to specify the interv)-.15 E(al between dots:)-.25 E 0 -Cg EP -%%Page: 8 8 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-8-)282.17 48 Q .4 LW 81 120 81 120 DL 84.6 120 -84.6 120 DL 88.2 120 88.2 120 DL 91.8 120 91.8 120 DL 95.4 120 95.4 120 -DL 99 120 99 120 DL 102.6 120 102.6 120 DL 106.2 120 106.2 120 DL 109.8 -120 109.8 120 DL 113.4 120 113.4 120 DL 117 120 117 120 DL 120.6 120 -120.6 120 DL 124.2 120 124.2 120 DL 127.8 120 127.8 120 DL 131.4 120 -131.4 120 DL 135 120 135 120 DL 135 120 135 120 DL 135 116.4 135 116.4 -DL 135 112.8 135 112.8 DL 135 109.2 135 109.2 DL 135 105.6 135 105.6 DL -135 102 135 102 DL 135 98.4 135 98.4 DL 135 94.8 135 94.8 DL 135 91.2 -135 91.2 DL 135 87.6 135 87.6 DL 135 84 135 84 DL 135 84 135 84 DL 131.4 -84 131.4 84 DL 127.8 84 127.8 84 DL 124.2 84 124.2 84 DL 120.6 84 120.6 -84 DL 117 84 117 84 DL 113.4 84 113.4 84 DL 109.8 84 109.8 84 DL 106.2 -84 106.2 84 DL 102.6 84 102.6 84 DL 99 84 99 84 DL 95.4 84 95.4 84 DL -91.8 84 91.8 84 DL 88.2 84 88.2 84 DL 84.6 84 84.6 84 DL 81 84 81 84 DL -81 84 81 84 DL 81 87.6 81 87.6 DL 81 91.2 81 91.2 DL 81 94.8 81 94.8 DL -81 98.4 81 98.4 DL 81 102 81 102 DL 81 105.6 81 105.6 DL 81 109.2 81 -109.2 DL 81 112.8 81 112.8 DL 81 116.4 81 116.4 DL 81 120 81 120 DL(def) -94.165 104.2 Q(ault)-.1 E 171 120 171 120 DL 174.6 120 174.6 120 DL -178.2 120 178.2 120 DL 181.8 120 181.8 120 DL 185.4 120 185.4 120 DL 189 -120 189 120 DL 192.6 120 192.6 120 DL 196.2 120 196.2 120 DL 199.8 120 -199.8 120 DL 203.4 120 203.4 120 DL 207 120 207 120 DL 210.6 120 210.6 -120 DL 214.2 120 214.2 120 DL 217.8 120 217.8 120 DL 221.4 120 221.4 120 -DL 225 120 225 120 DL 225 120 225 120 DL 225 116.4 225 116.4 DL 225 -112.8 225 112.8 DL 225 109.2 225 109.2 DL 225 105.6 225 105.6 DL 225 102 -225 102 DL 225 98.4 225 98.4 DL 225 94.8 225 94.8 DL 225 91.2 225 91.2 -DL 225 87.6 225 87.6 DL 225 84 225 84 DL 225 84 225 84 DL 221.4 84 221.4 -84 DL 217.8 84 217.8 84 DL 214.2 84 214.2 84 DL 210.6 84 210.6 84 DL 207 -84 207 84 DL 203.4 84 203.4 84 DL 199.8 84 199.8 84 DL 196.2 84 196.2 84 -DL 192.6 84 192.6 84 DL 189 84 189 84 DL 185.4 84 185.4 84 DL 181.8 84 -181.8 84 DL 178.2 84 178.2 84 DL 174.6 84 174.6 84 DL 171 84 171 84 DL -171 84 171 84 DL 171 87.6 171 87.6 DL 171 91.2 171 91.2 DL 171 94.8 171 -94.8 DL 171 98.4 171 98.4 DL 171 102 171 102 DL 171 105.6 171 105.6 DL -171 109.2 171 109.2 DL 171 112.8 171 112.8 DL 171 116.4 171 116.4 DL 171 -120 171 120 DL(0.05)189.25 104.2 Q 261 120 261 120 DL 267.768 120 -267.768 120 DL 274.536 120 274.536 120 DL 281.232 120 281.232 120 DL 288 -120 288 120 DL 294.768 120 294.768 120 DL 301.464 120 301.464 120 DL -308.232 120 308.232 120 DL 315 120 315 120 DL 315 120 315 120 DL 315 -112.8 315 112.8 DL 315 105.6 315 105.6 DL 315 98.4 315 98.4 DL 315 91.2 -315 91.2 DL 315 84 315 84 DL 315 84 315 84 DL 308.232 84 308.232 84 DL -301.464 84 301.464 84 DL 294.768 84 294.768 84 DL 288 84 288 84 DL -281.232 84 281.232 84 DL 274.536 84 274.536 84 DL 267.768 84 267.768 84 -DL 261 84 261 84 DL 261 84 261 84 DL 261 91.2 261 91.2 DL 261 98.4 261 -98.4 DL 261 105.6 261 105.6 DL 261 112.8 261 112.8 DL 261 120 261 120 DL -(0.1)281.75 104.2 Q 351 120 351 120 DL 361.8 120 361.8 120 DL 372.6 120 -372.6 120 DL 383.4 120 383.4 120 DL 394.2 120 394.2 120 DL 405 120 405 -120 DL 405 120 405 120 DL 405 107.976 405 107.976 DL 405 96.024 405 -96.024 DL 405 84 405 84 DL 405 84 405 84 DL 394.2 84 394.2 84 DL 383.4 -84 383.4 84 DL 372.6 84 372.6 84 DL 361.8 84 361.8 84 DL 351 84 351 84 -DL 351 84 351 84 DL 351 96.024 351 96.024 DL 351 107.976 351 107.976 DL -351 120 351 120 DL(0.15)369.25 104.2 Q 441 120 441 120 DL 454.536 120 -454.536 120 DL 468 120 468 120 DL 481.464 120 481.464 120 DL 495 120 495 -120 DL 495 120 495 120 DL 495 107.976 495 107.976 DL 495 96.024 495 -96.024 DL 495 84 495 84 DL 495 84 495 84 DL 481.464 84 481.464 84 DL 468 -84 468 84 DL 454.536 84 454.536 84 DL 441 84 441 84 DL 441 84 441 84 DL -441 96.024 441 96.024 DL 441 107.976 441 107.976 DL 441 120 441 120 DL -(0.2)461.75 104.2 Q(Figure 6-2: Dotted objects)235.365 143 Q/F1 10 -/Times-Bold@0 SF 2.5(6.3. Rounding)72 179 R(Box Cor)2.5 E(ners)-.15 E F0 -(It is also possible, in GNU)97 194.6 Q F1(gpic)2.5 E F0(only)2.5 E 2.5 -(,t)-.65 G 2.5(om)-2.5 G(odify a box so it has rounded corners:)-2.5 E -84.6 245 3.6 -180 90 DA 84.6 216.2 3.6 -90 180 DA 131.4 216.2 3.6 -0 -90 -DA 131.4 245 3.6 90 0 DA 81 216.2 81 245 DL 131.4 212.6 84.6 212.6 DL -135 245 135 216.2 DL 84.6 248.6 131.4 248.6 DL(rad 0.05)91.615 232.8 Q -178.2 241.4 7.2 -180 90 DA 178.2 219.8 7.2 -90 180 DA 217.8 219.8 7.2 -0 --90 DA 217.8 241.4 7.2 90 0 DA 171 219.8 171 241.4 DL 217.8 212.6 178.2 -212.6 DL 225 241.4 225 219.8 DL 178.2 248.6 217.8 248.6 DL(rad 0.1) -184.115 232.8 Q 271.8 237.8 10.8 -180 90 DA 271.8 223.4 10.8 -90 180 DA -304.2 223.4 10.8 -0 -90 DA 304.2 237.8 10.8 90 0 DA 261 223.4 261 237.8 -DL 304.2 212.6 271.8 212.6 DL 315 237.8 315 223.4 DL 271.8 248.6 304.2 -248.6 DL(rad 0.15)271.615 232.8 Q 365.4 234.2 14.4 -180 90 DA 365.4 227 -14.4 -90 180 DA 390.6 227 14.4 -0 -90 DA 390.6 234.2 14.4 90 0 DA 351 -227 351 234.2 DL 390.6 212.6 365.4 212.6 DL 405 234.2 405 227 DL 365.4 -248.6 390.6 248.6 DL(rad 0.2)364.115 232.8 Q 459 230.6 18 -180 90 DA 459 -230.6 18 -90 180 DA 477 230.6 18 -0 -90 DA 477 230.6 18 90 0 DA 441 -230.6 441 230.6 DL 477 212.6 459 212.6 DL 495 230.6 495 230.6 DL 459 -248.6 477 248.6 DL(rad 0.25)451.615 232.8 Q(Figure 6-3:)188.55 271.6 Q -F1(box rad)2.5 E F0(with increasing radius v)2.5 E(alues)-.25 E -(Radius v)97 299.2 Q(alues higher than half the minimum box dimension a\ -re silently truncated to that v)-.25 E(alue.)-.25 E F1 2.5(6.4. Arr)72 -323.2 R -.1(ow)-.18 G(heads).1 E F0 .756 -(Lines and arcs can be decorated as well.)97 338.8 R(An)5.756 E 3.256 -(yl)-.15 G .756(ine or arc \(and an)-3.256 F 3.257(ys)-.15 G .757 -(pline as well\) can be decorated)-3.257 F(with arro)72 350.8 Q -(wheads by adding one or more as modi\214ers:)-.25 E 270 368.8 MT 7.2 --1.8 RL 0 3.6 RL CL 0 Fg 270 368.8 MT 7.2 -1.8 RL 0 3.6 RL CL .1 LW 0 Cg -ST 306 368.8 MT -7.2 1.8 RL 0 -3.6 RL CL 0 Fg 306 368.8 MT -7.2 1.8 RL 0 --3.6 RL CL 0 Cg ST .4 LW 298.8 368.8 277.2 368.8 DL -(Figure 6-4: Double-headed line made with)181.065 391.8 Q F1(line <- ->) -5 E F0 .632(In f)97 419.4 R .632(act, the)-.1 F F1(arr)3.132 E -.1(ow) --.18 G F0 .632(command is just shorthand for)3.232 F F1 .632(line ->) -3.132 F F0 5.632(.A)C .631(nd there is a double-head modi\214er <->,) --5.632 F(so the \214gure abo)72 431.4 Q .3 -.15(ve c)-.15 H(ould ha).15 -E .3 -.15(ve b)-.2 H(een made with).15 E F1(line <->)2.5 E F0(.)A(Arro) -97 447 Q .505(wheads ha)-.25 F .805 -.15(ve a)-.2 H F1(width)3.155 E F0 -(attrib)3.005 E .505(ute, the distance across the rear; and a)-.2 F F1 -(height)3.005 E F0(attrib)3.005 E .505(ute, the length of)-.2 F -(the arro)72 459 Q(whead along the shaft.)-.25 E(Arro)97 474.6 Q .528 -(whead style is controlled by the style v)-.25 F(ariable)-.25 E F1(arr) -3.028 E -.1(ow)-.18 G(head).1 E F0 5.528(.T)C .528(he D)-5.528 F .528 -(WB and GNU v)-.3 F .527(ersions inter)-.15 F(-)-.2 E .797(pret it dif) -72 486.6 R(ferently)-.25 E 5.797(.D)-.65 G .797(WB def)-6.097 F .797 -(aults to open arro)-.1 F .797(wheads and an)-.25 F F1(arr)3.298 E -.1 -(ow)-.18 G(head).1 E F0 -.25(va)3.298 G .798(lue of 2; the K).25 F .798 -(ernighan paper)-.25 F .669(says a v)72 498.6 R .669(alue of 7 will mak) --.25 F 3.168(es)-.1 G .668(olid arro)-3.168 F 3.168(wheads. GNU)-.25 F -F1(gpic)3.168 E F0(def)3.168 E .668(aults to solid arro)-.1 F .668 -(wheads and an)-.25 F F1(arr)3.168 E -.1(ow)-.18 G(head).1 E F0 -.25(va) -72 510.6 S .8(lue of 1; a v).25 F .8(alue of 0 will produce open arro) --.25 F 3.3(wheads. Note)-.25 F .8(that solid arro)3.3 F .8 -(wheads are al)-.25 F -.1(wa)-.1 G .8(ys \214lled with).1 F -(the current outline color)72 522.6 Q(.)-.55 E F1 2.5(6.5. Line)72 546.6 -R(Thickness)2.5 E F0(It')97 562.2 Q 2.572(sa)-.55 G .071(lso possible t\ -o change the line thickness of an object \(this is a GNU e)-2.572 F .071 -(xtension, D)-.15 F(WB)-.3 E F1(pic)2.571 E F0(doesn')2.571 E(t)-.18 E -.607(support it\).)72 574.2 R .607(The def)5.607 F .607 -(ault thickness of the lines used to dra)-.1 F 3.107(wo)-.15 G .607 -(bjects is controlled by the)-3.107 F F1(linethick)3.107 E F0 -.25(va) -3.108 G(riable.).25 E .227(This gi)72 586.2 R -.15(ve)-.25 G 2.727(st) -.15 G .227(he thickness of lines in points.)-2.727 F 2.727(An)5.227 G --2.25 -.15(eg a)-2.727 H(ti).15 E .526 -.15(ve v)-.25 H .226 -(alue means use the def)-.1 F .226(ault thickness: in T)-.1 F(E)-1.667 -2.24 M 2.726(Xo)-1.25 -2.24 O(utput)-2.726 E .683 -(mode, this means use a thickness of 8 milliinches; in T)72 598.2 R(E) --1.667 2.24 M 3.184(Xo)-1.25 -2.24 O .684(utput mode with the)-3.184 F -F1(-c)3.184 E F0 .684(option, this means use)3.184 F .188 -(the line thickness speci\214ed by)72 610.2 R F1(.ps)2.688 E F0 .188 -(lines; in trof)2.688 F 2.688(fo)-.25 G .188 -(utput mode, this means use a thickness proportional to the)-2.688 F -3.293(pointsize. A)72 622.2 R .793(zero v)3.293 F .793(alue means dra) --.25 F 3.293(wt)-.15 G .793 -(he thinnest possible line supported by the output de)-3.293 F 3.294 -(vice. Initially)-.25 F(it)3.294 E .036(has a v)72 634.2 R .036 -(alue of -1.)-.25 F .036(There is also a)5.036 F F1(thickness)2.536 E F0 -(attrib)2.536 E .036(ute \(which can be abbre)-.2 F .036(viated to)-.25 -F F1(thick)2.535 E F0 2.535(\). F)B .035(or e)-.15 F(xample,)-.15 E F1 -(cir)2.535 E(-)-.37 E .475(cle thickness 1.5)72 646.2 R F0 -.1(wo)2.975 -G .475(uld dra).1 F 2.975(wac)-.15 G .476 -(ircle using a line with a thickness of 1.5 points.)-2.975 F .476 -(The thickness of lines is)5.476 F(not af)72 658.2 Q(fected by the v) --.25 E(alue of the)-.25 E F1(scale)2.5 E F0 -.25(va)2.5 G -(riable, nor by an).25 E 2.5(yw)-.15 G(idth or height gi)-2.5 E -.15(ve) --.25 G 2.5(ni).15 G 2.5(nt)-2.5 G(he)-2.5 E F1(.PS)2.5 E F0(line.)2.5 E -F1 2.5(6.6. In)72 682.2 R(visible Objects)-.4 E F0 .001(The modi\214er) -97 697.8 R F1(in)2.501 E(vis[ible])-.4 E F0(mak)2.501 E .001 -(es an object entirely in)-.1 F 2.501(visible. This)-.4 F 0 -(used to be useful for positioning te)2.501 F(xt)-.15 E .267(in an in)72 -709.8 R .267 -(visible object that is properly joined to neighboring ones.)-.4 F(Ne) -5.267 E .267(wer D)-.25 F .267(WB v)-.3 F .267(ersions and GNU)-.15 F F1 -(pic)2.767 E F0(treat)2.768 E(stand-alone te)72 721.8 Q(xt in e)-.15 E -(xactly this w)-.15 E(ay)-.1 E(.)-.65 E 0 Cg EP -%%Page: 9 9 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-9-)282.17 48 Q/F1 10/Times-Bold@0 SF 2.5 -(6.7. Filled)72 84 R(Objects)2.5 E F0 .17(It is possible to \214ll box) -97 99.6 R .17(es, circles, and ellipses.)-.15 F .17(The modi\214er)5.17 -F F1(\214ll[ed])2.67 E F0 .17(accomplishes this.)2.67 F -1.1(Yo)5.17 G -2.67(uc)1.1 G .17(an suf-)-2.67 F(\214x it with a \214ll v)72 111.6 Q -(alue; the def)-.25 E(ault is gi)-.1 E -.15(ve)-.25 G 2.5(nb).15 G 2.5 -(yt)-2.5 G(he stule v)-2.5 E(ariable)-.25 E F1(\214llv)2.5 E(al)-.1 E F0 -(.)A -.3(DW)97 127.2 S(B).3 E F1(pic)4.191 E F0(and)4.191 E F1(gpic) -4.191 E F0(ha)4.191 E 1.991 -.15(ve o)-.2 H 1.691(pposite con).15 F -.15 -(ve)-.4 G 1.691(ntions for \214ll v).15 F 1.692(alues and dif)-.25 F -1.692(ferent def)-.25 F 4.192(aults. D)-.1 F(WB)-.3 E F1(\214llv)4.192 E -(al)-.1 E F0(def)72 139.2 Q(aults to 0.3 and smaller v)-.1 E -(alues are dark)-.25 E(er; GNU)-.1 E F1(\214llv)2.5 E(al)-.1 E F0 -(uses 0 for white and 1 for black.)2.5 E 216 175.2 18 DC 0.5 Fg 216 -175.2 18 DC .4 LW 0 Cg ST 288 175.2 18 DC 0.6 Fg 288 175.2 18 DC 0 Cg ST -360 175.2 18 DC 0.1 Fg 360 175.2 18 DC 0 Cg ST(Figure 6-5:)158.355 216.2 -Q F1(cir)2.5 E(cle \214ll; mo)-.18 E -.1(ve)-.1 G 2.5(;c).1 G(ir)-2.5 E -(cle \214ll 0.4; mo)-.18 E -.1(ve)-.1 G 2.5(;c).1 G(ir)-2.5 E -(cle \214ll 0.9;)-.18 E F0(GNU)97 243.8 Q F1(gpic)2.528 E F0(mak)2.528 E -.028(es some additional guarantees.)-.1 F 2.528<418c>5.028 G .028(ll v) --2.528 F .027(alue greater than 1 can also be used: this means)-.25 F -.716(\214ll with the shade of gray that is currently being used for te) -72 255.8 R .717(xt and lines.)-.15 F .717 -(Normally this will be black, b)5.717 F(ut)-.2 E .519(output de)72 267.8 -R .519(vices may pro)-.25 F .519(vide a mechanism for changing this.) --.15 F .519(The in)5.519 F .519(visible attrib)-.4 F .518 -(ute does not af)-.2 F .518(fect the \214ll-)-.25 F .215 -(ing of objects.)72 279.8 R(An)5.215 E 2.715(yt)-.15 G -.15(ex)-2.715 G -2.715(ta).15 G .215(ssociated with a \214lled object will be added afte\ -r the object has been \214lled, so that)-2.715 F(the te)72 291.8 Q -(xt will not be obscured by the \214lling.)-.15 E 1.135 -(The closed-object modi\214er)97 307.4 R F1(solid)3.635 E F0 1.135 -(is equi)3.635 F -.25(va)-.25 G 1.135(lent to).25 F F1(\214ll)3.635 E F0 -1.135(with the dark)3.635 F 1.135(est \214ll v)-.1 F 1.135(alue \(D)-.25 -F(WB)-.3 E F1(pic)3.635 E F0 1.135(had this)3.635 F(capability b)72 -319.4 Q(ut mentioned it only in a reference section\).)-.2 E F1 2.5 -(6.8. Color)72 343.4 R(ed Objects)-.18 E F0 .289(As a GNU e)97 359 R -.289(xtension, three additional modi\214ers are a)-.15 F -.25(va)-.2 G -.289(ilable to specify colored objects.).25 F F1(outline)5.29 E F0(sets) -2.79 E .154(the color of the outline,)72 371 R F1(shaded)2.654 E F0 .154 -(the \214ll color)2.654 F 2.654(,a)-.4 G(nd)-2.654 E F1(color)2.654 E F0 -.154(sets both.)2.654 F .153(All three k)5.154 F -.15(ey)-.1 G -.1(wo) -.15 G .153(rds e).1 F .153(xpect a suf)-.15 F .153(\214x speci-)-.25 F -(fying the color)72 383 Q 5(.E)-.55 G(xample:)-5 E 279 437 MT 0 -36 RL --54 0 RL 0 36 RL CL 1 1 0 Fr 279 437 MT 0 -36 RL -54 0 RL 0 36 RL CL ST -315 419 MT -7.2 1.8 RL 0 -3.6 RL CL 0 1 1 Fr 315 419 MT -7.2 1.8 RL 0 --3.6 RL CL .1 LW ST .4 LW 307.8 419 279 419 DL 333 419 18 DC 0 1 0 Fr -333 419 18 DC 0 0 0 Cr ST 0 Cg(Figure 6-6:)94.015 460 Q F1(box color "y) -2.5 E(ello)-.1 E(w"; arr)-.1 E .2 -.1(ow c)-.18 H(olor "cyan"; cir).1 E -(cle shaded "gr)-.18 E(een" outline "black";)-.18 E F0(Alternati)97 -487.6 Q .3 -.15(ve s)-.25 H(pellings are).15 E F1(colour)2.5 E F0(,)A F1 -(color)2.5 E(ed)-.18 E F0(,)A F1(colour)2.5 E(ed)-.18 E F0 2.5(,a)C(nd) --2.5 E F1(outlined)2.5 E F0(.)A(Currently)97 503.2 Q 2.779(,c)-.65 G -.279(olor support is not a)-2.779 F -.25(va)-.2 G .279(ilable in T).25 F -(E)-1.667 2.24 M 2.779(Xm)-1.25 -2.24 O 2.779(ode. Prede\214ned)-2.779 F -.279(color names for)2.779 F/F2 10/Times-Italic@0 SF(gr)2.779 E(of)-.45 -E(f)-.18 E F0 .28(\(1\) are in the)1.96 F(de)72 515.2 Q .31 -(vice macro \214les, for e)-.25 F(xample)-.15 E/F3 10/Courier@0 SF -(ps.tmac)2.81 E F0 2.81(;a)C .31 -(dditional colors can be de\214ned with the)-2.81 F F1(.defcolor)2.81 E -F0 .31(request \(see)2.81 F(the manual page of GNU)72 527.2 Q F2(tr)2.5 -E(of)-.45 E(f)-.18 E F0(\(1\) for more details\).)1.96 E F1(pic)97 542.8 -Q F0(assumes that at the be)2.5 E -(ginning of a picture both glyph and \214ll color are set to the def) --.15 E(ault v)-.1 E(alue.)-.25 E F1 2.5(7. Mor)72 566.8 R 2.5(eA)-.18 G -(bout T)-2.5 E(ext Placement)-.92 E F0 .757(By def)97 582.4 R .757 -(ault, te)-.1 F .757(xt is centered at the geometric center of the obje\ -ct it is associated with.)-.15 F .758(The modi\214er)5.757 F F1(ljust)72 -594.4 Q F0 .302(causes the left end to be at the speci\214ed point \(wh\ -ich means that the te)2.803 F .302(xt lies to the right of the speci-) --.15 F .733(\214ed place!\), the modi\214er)72 606.4 R F1(rjust)3.233 E -F0 .733(puts the right end at the place.)3.233 F .734(The modi\214ers) -5.733 F F1(abo)3.234 E -.1(ve)-.1 G F0(and)3.334 E F1(belo)3.234 E(w)-.1 -E F0 .734(center the)3.234 F(te)72 618.4 Q -(xt one half line space in the gi)-.15 E -.15(ve)-.25 G 2.5(nd).15 G -(irection.)-2.5 E -1.25 -.7(Te x)97 634 T 2.5(ta).7 G(ttrib)-2.5 E -(utes can be combined:)-.2 E 0 Cg EP -%%Page: 10 10 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-10-)279.67 48 Q .4 LW 126 84 126 120 DL -(ljust te)126 104.2 Q(xt)-.15 E 234 84 234 120 DL(rjust te)198.87 104.2 -Q(xt)-.15 E 342 102 MT -7.2 1.8 RL 0 -3.6 RL CL 0 Fg 342 102 MT -7.2 1.8 -RL 0 -3.6 RL CL .1 LW 0 Cg ST .4 LW 334.8 102 270 102 DL(ljust abo)306 -98.2 Q -.15(ve)-.15 G 450 102 MT -7.2 1.8 RL 0 -3.6 RL CL 0 Fg 450 102 -MT -7.2 1.8 RL 0 -3.6 RL CL .1 LW 0 Cg ST .4 LW 442.8 102 378 102 DL -(rjust belo)369.53 110.2 Q(w)-.25 E(Figure 7-1: T)235.89 143 Q -.15(ex) --.7 G 2.5(ta).15 G(ttrib)-2.5 E(utes)-.2 E .205 -(What actually happens is that)97 170.6 R/F1 10/Times-Italic@0 SF(n) -2.704 E F0(te)2.704 E .204(xt strings are centered in a box that is)-.15 -F/F2 10/Times-Bold@0 SF(textwid)2.704 E F0 .204(wide by)2.704 F F2 -(textht)2.704 E F0(high.)2.704 E 1.643(Both these v)72 182.6 R 1.643 -(ariables are initially zero \(that is)-.25 F F2(pic)4.143 E F0 2.743 --.55('s w)D 1.644(ay of not making assumptions about).45 F F1([tg]r) -4.144 E(of)-.45 E(f)-.18 E F0(\(1\)')1.96 E(s)-.55 E(def)72 194.6 Q -(ault point size\).)-.1 E .637(In GNU)97 210.2 R F2(gpic)3.137 E F0 -3.137(,o)C .637(bjects can ha)-3.137 F .937 -.15(ve a)-.2 H(n).15 E F2 -(aligned)3.137 E F0(attrib)3.137 E 3.137(ute. This)-.2 F .637 -(will only w)3.137 F .637(ork when the postprocessor is)-.1 F F2(gr)72 -222.2 Q(ops)-.18 E F0 5.744(.A)C 1.044 -.15(ny t)-5.744 H -.15(ex).15 G -3.244(ta).15 G .744(ssociated with an object ha)-3.244 F .744(ving the) --.2 F F2(aligned)3.244 E F0(attrib)3.244 E .744 -(ute will be rotated about the center of)-.2 F .471(the object so that \ -it is aligned in the direction from the start point to the end point of\ - the object.)72 234.2 R .47(Note that)5.47 F(this attrib)72 246.2 Q -(ute will ha)-.2 E .3 -.15(ve n)-.2 H 2.5(oe).15 G -.25(ff)-2.5 G -(ect for objects whose start and end points are coincident.).25 E F2 2.5 -(8. Mor)72 270.2 R 2.5(eA)-.18 G(bout Dir)-2.5 E(ection Changes)-.18 E -F0 -.8(We)97 285.8 S -1.65 -.5('v e).8 H .87(already seen ho)3.87 F 3.37 -(wt)-.25 G 3.37(oc)-3.37 G .871 -(hange the direction in which objects are composed from rightw)-3.37 F -.871(ards to)-.1 F(do)72 297.8 Q(wnw)-.25 E 2.5(ards. Here)-.1 F -(are some more illustrati)2.5 E .3 -.15(ve ex)-.25 H(amples:).15 E F2 -(right; box; arr)204.365 318 Q -.1(ow)-.18 G 2.5(;c).1 G(ir)-2.5 E -(cle; arr)-.18 E -.1(ow)-.18 G 2.5(;e).1 G(llipse)-2.5 E 234 366.2 MT 0 --36 RL -54 0 RL 0 36 RL CL ST 270 348.2 MT -7.2 1.8 RL 0 -3.6 RL CL 0 Fg -270 348.2 MT -7.2 1.8 RL 0 -3.6 RL CL .1 LW 0 Cg ST .4 LW 262.8 348.2 -234 348.2 DL 288 348.2 18 DC ST 342 348.2 MT -7.2 1.8 RL 0 -3.6 RL CL 0 -Fg 342 348.2 MT -7.2 1.8 RL 0 -3.6 RL CL .1 LW 0 Cg ST .4 LW 334.8 348.2 -306 348.2 DL 54 36 369 348.2 DE ST(left; box; arr)207.98 390 Q -.1(ow) --.18 G 2.5(;c).1 G(ir)-2.5 E(cle; arr)-.18 E -.1(ow)-.18 G 2.5(;e).1 G -(llipse)-2.5 E 396 438.2 MT 0 -36 RL -54 0 RL 0 36 RL CL ST 306 420.2 MT -7.2 -1.8 RL 0 3.6 RL CL 0 Fg 306 420.2 MT 7.2 -1.8 RL 0 3.6 RL CL .1 LW -0 Cg ST .4 LW 313.2 420.2 342 420.2 DL 288 420.2 18 DC ST 234 420.2 MT -7.2 -1.8 RL 0 3.6 RL CL 0 Fg 234 420.2 MT 7.2 -1.8 RL 0 3.6 RL CL .1 LW -0 Cg ST .4 LW 241.2 420.2 270 420.2 DL 54 36 207 420.2 DE ST F0 -(Figure 8-1: Ef)159.8 461.2 Q(fects of dif)-.25 E -(ferent motion directions \(right and left\))-.25 E 0 Cg EP -%%Page: 11 11 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-11-)279.67 48 Q/F1 10/Times-Bold@0 SF(do) -102.635 86.2 Q(wn; box; arr)-.1 E -.1(ow)-.18 G 2.5(;c).1 G(ir)-2.5 E -(cle; arr)-.18 E -.1(ow)-.18 G 2.5(;e).1 G(llipse;)-2.5 E 216 134.4 MT 0 --36 RL -54 0 RL 0 36 RL CL .4 LW ST 189 170.4 MT -1.8 -7.2 RL 3.6 0 RL -CL 0 Fg 189 170.4 MT -1.8 -7.2 RL 3.6 0 RL CL .1 LW 0 Cg ST .4 LW 189 -163.2 189 134.4 DL 189 188.4 18 DC ST 189 242.4 MT -1.8 -7.2 RL 3.6 0 RL -CL 0 Fg 189 242.4 MT -1.8 -7.2 RL 3.6 0 RL CL .1 LW 0 Cg ST .4 LW 189 -235.2 189 206.4 DL 54 36 189 260.4 DE ST 414 278.4 MT 0 -36 RL -54 0 RL -0 36 RL CL ST 387 206.4 MT 1.8 7.2 RL -3.6 0 RL CL 0 Fg 387 206.4 MT 1.8 -7.2 RL -3.6 0 RL CL .1 LW 0 Cg ST .4 LW 387 213.6 387 242.4 DL 387 188.4 -18 DC ST 387 134.4 MT 1.8 7.2 RL -3.6 0 RL CL 0 Fg 387 134.4 MT 1.8 7.2 -RL -3.6 0 RL CL .1 LW 0 Cg ST .4 LW 387 141.6 387 170.4 DL 54 36 387 -116.4 DE ST(up; box; arr)306.695 86.2 Q -.1(ow)-.18 G 2.5(;c).1 G(ir) --2.5 E(cle; arr)-.18 E -.1(ow)-.18 G 2.5(;e).1 G(llipse;)-2.5 E F0 -(Figure 8-2: Ef)159.925 301.4 Q(fects of dif)-.25 E -(ferent motion directions \(up and do)-.25 E(wn\))-.25 E(Something that\ - may appear surprising happens if you change directions in the ob)97 329 -Q(vious w)-.15 E(ay:)-.1 E 265.5 383 MT 0 -36 RL -54 0 RL 0 36 RL CL ST -301.5 365 MT -7.2 1.8 RL 0 -3.6 RL CL 0 Fg 301.5 365 MT -7.2 1.8 RL 0 --3.6 RL CL .1 LW 0 Cg ST .4 LW 294.3 365 265.5 365 DL 319.5 365 18 DC ST -337.5 401 MT -1.8 -7.2 RL 3.6 0 RL CL 0 Fg 337.5 401 MT -1.8 -7.2 RL 3.6 -0 RL CL .1 LW 0 Cg ST .4 LW 337.5 393.8 337.5 365 DL 54 36 337.5 419 DE -ST(Figure 8-3:)179.69 460 Q F1(box; arr)2.5 E -.1(ow)-.18 G 2.5(;c).1 G -(ir)-2.5 E(cle; do)-.18 E(wn; arr)-.1 E -.1(ow)-.18 G 2.5(;e).1 G -(llipse)-2.5 E F0 -1.1(Yo)72 487.6 S 2.5(um)1.1 G(ight ha)-2.5 E .3 -.15 -(ve ex)-.2 H(pected that program to yield this:).15 E 274.5 541.6 MT 0 --36 RL -54 0 RL 0 36 RL CL ST 310.5 523.6 MT -7.2 1.8 RL 0 -3.6 RL CL 0 -Fg 310.5 523.6 MT -7.2 1.8 RL 0 -3.6 RL CL .1 LW 0 Cg ST .4 LW 303.3 -523.6 274.5 523.6 DL 328.5 523.6 18 DC ST 328.5 577.6 MT -1.8 -7.2 RL -3.6 0 RL CL 0 Fg 328.5 577.6 MT -1.8 -7.2 RL 3.6 0 RL CL .1 LW 0 Cg ST -.4 LW 328.5 570.4 328.5 541.6 DL 54 36 328.5 595.6 DE ST -(Figure 8-4: More intuiti)233.62 636.6 Q -.15(ve)-.25 G(?).15 E -(But, in f)72 664.2 Q(act, to get Figure 8.3 you ha)-.1 E .3 -.15(ve t) --.2 H 2.5(od).15 G 2.5(ot)-2.5 G(his:)-2.5 E 0 Cg EP -%%Page: 12 12 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-12-)279.67 48 Q/F1 10/Courier@0 SF(.PS)108 84 Q -(box;)108 96 Q(arrow;)108 108 Q(circle;)108 120 Q -(move to last circle .s;)108 132 Q(down;)108 144 Q(arrow;)108 156 Q -(ellipse)108 168 Q(.PE)108 180 Q F0(Wh)72 201.6 Q 2.892(yi)-.05 G 2.891 -(st)-2.892 G 2.891(his? Because)-2.891 F .391(the e)2.891 F .391 -(xit point for the current direction is already set when you dra)-.15 F -2.891(wt)-.15 G .391(he object.)-2.891 F(The)5.391 E .059(second arro)72 -213.6 R 2.559(wi)-.25 G 2.559(nF)-2.559 G .059(igure 8.2 dropped do) --2.559 F(wnw)-.25 E .059(ards from the circle')-.1 F 2.559(sa)-.55 G .06 -(ttachment point for an object to be joined)-2.559 F(to the right.)72 -225.6 Q .19(The meaning of the command)97 241.2 R/F2 10/Times-Bold@0 SF -(mo)2.69 E .39 -.1(ve t)-.1 H 2.69(ol).1 G .19(ast cir)-2.69 F .19 -(cle .s)-.18 F F0 .19(should be ob)2.69 F 2.69(vious. In)-.15 F .19 -(order to see ho)2.69 F 2.69(wi)-.25 G 2.69(tg)-2.69 G(ener)-2.69 E(-) --.2 E(alizes, we')72 253.2 Q(ll need to go into detail on tw)-.1 E 2.5 -(oi)-.1 G(mportant topics; locations and object names.)-2.5 E F2 2.5 -(9. Naming)72 277.2 R(Objects)2.5 E F0 .436(The most natural w)97 292.8 -R .436(ay to name locations in)-.1 F F2(pic)2.936 E F0 .436(is relati) -2.936 F .736 -.15(ve t)-.25 H 2.936(oo).15 G 2.936(bjects. In)-2.936 F -.436(order to do this, you ha)2.936 F .736 -.15(ve t)-.2 H(o).15 E .187 -(be able you ha)72 304.8 R .487 -.15(ve t)-.2 H 2.686(ob).15 G 2.686(ea) --2.686 G .186(ble to name objects.)-2.686 F(The)5.186 E F2(pic)2.686 E -F0 .186(language has rich f)2.686 F .186 -(acilities for this that try to emulate)-.1 F(the syntax of English.)72 -316.8 Q F2 2.5(9.1. Naming)72 340.8 R(Objects By Order Of Drawing)2.5 E -F0 .303(The simplest \(and generally the most useful\) w)97 356.4 R .304 -(ay to name an object is with a)-.1 F F2(last)2.804 E F0 2.804 -(clause. It)2.804 F .304(needs to)2.804 F .498(be follo)72 368.4 R .498 -(wed by an object type name;)-.25 F F2(box)2.998 E F0(,)A F2(cir)2.997 E -(cle)-.18 E F0(,)A F2(ellipse)2.997 E F0(,)A F2(line)2.997 E F0(,)A F2 -(arr)2.997 E -.1(ow)-.18 G F0(,).1 E F2(spline)2.997 E F0(,)A F2("") -2.997 E F0 2.997(,o)C(r)-2.997 E F2([])2.997 E F0 .497 -(\(the last type refers)2.997 F 1.307(to a)72 380.4 R/F3 10 -/Times-Italic@0 SF 1.307(composite object)3.807 F F0 1.307(which we') -3.807 F 1.307(ll discuss later\).)-.1 F 1.308(So, for e)6.308 F 1.308 -(xample, the)-.15 F F2 1.308(last cir)3.808 F(cle)-.18 E F0 1.308 -(clause in the program)3.808 F -(attached to Figure 9.1.3 refers to the last circle dra)72 392.4 Q(wn.) --.15 E .769(More generally)97 408 R 3.269(,o)-.65 G .768(bjects of a gi) --3.269 F -.15(ve)-.25 G 3.268(nt).15 G .768 -(ype are implicitly numbered \(starting from 1\).)-3.268 F -1.1(Yo)5.768 -G 3.268(uc)1.1 G .768(an refer to)-3.268 F .082 -(\(say\) the third ellipse in the current picture with)72 420 R F2 .083 -(3rd ellipse)2.582 F F0 2.583(,o)C 2.583(rt)-2.583 G 2.583(ot)-2.583 G -.083(he \214rst box as)-2.583 F F2 .083(1st box)2.583 F F0 2.583(,o)C -2.583(rt)-2.583 G 2.583(ot)-2.583 G .083(he \214fth te)-2.583 F(xt)-.15 -E(string \(which isn')72 432 Q 2.5(ta)-.18 G 2.5(na)-2.5 G(ttrib)-2.5 E -(ute to another object\) as)-.2 E F2(5th "")2.5 E F0(.)A .187 -(Objects are also numbered backw)97 447.6 R .186 -(ards by type from the last one.)-.1 F -1.1(Yo)5.186 G 2.686(uc)1.1 G -.186(an say)-2.686 F F2 .186(2nd last box)2.686 F F0 .186(to get the) -2.686 F(second-to-last box, or)72 459.6 Q F2(3rd last ellipse)2.5 E F0 -(to get the third-to-last ellipse.)2.5 E .45(In places where)97 475.2 R -F3(n)2.95 E F2(th).24 E F0 .45(is allo)2.95 F(wed,)-.25 E F2(`)2.95 E F3 --.2(ex)C(pr).2 E F2('th).73 E F0 .45(is also allo)2.95 F 2.951 -(wed. Note)-.25 F(that)2.951 E F2('th)2.951 E F0 .451(is a single tok) -2.951 F .451(en: no space is)-.1 F(allo)72 487.2 Q(wed between the)-.25 -E F2(')2.5 E F0(and the)2.5 E F2(th)2.5 E F0 5(.F)C(or e)-5.15 E -(xample,)-.15 E F1(for i = 1 to 4 do {)133 508.8 Q -(line from `i'th box.nw to `i+1'th box.se)151 520.8 Q(})133 532.8 Q F2 -2.5(9.2. Naming)72 562.8 R(Objects W)2.5 E(ith Labels)-.18 E F0 -1.1(Yo) -97 578.4 S 3.338(uc)1.1 G .838 -(an also specify an object by referring to a label.)-3.338 F 3.338(Al) -5.838 G .838(abel is a w)-3.338 F .838(ord \(which must be)-.1 F .838 -(gin with a)-.15 F .26(capital letter\) follo)72 590.4 R .26(wed by a c\ -olon; you declare it by placing it immediately before the object dra) --.25 F .26(wing com-)-.15 F 2.5(mand. F)72 602.4 R(or e)-.15 E -(xample, the program)-.15 E F1(.PS)108 620.4 Q(A: box "first" "object") -108 632.4 Q(move;)108 644.4 Q(B: ellipse "second" "object")108 656.4 Q -(move;)108 668.4 Q(arrow right at A .r;)108 680.4 Q(.PE)108 692.4 Q F0 -(declares labels)72 714 Q F2(A)2.5 E F0(and)2.5 E F2(B)2.5 E F0 -(for its \214rst and second objects.)2.5 E(Here')5 E 2.5(sw)-.55 G -(hat that looks lik)-2.5 E(e:)-.1 E 0 Cg EP -%%Page: 13 13 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-13-)279.67 48 Q 252 120 MT 0 -36 RL -54 0 RL 0 -36 RL CL .4 LW ST(\214rst)217.22 98.2 Q(object)212.78 110.2 Q 54 36 315 -102 DE ST(second)301.115 98.2 Q(object)302.78 110.2 Q 288 102 MT -7.2 -1.8 RL 0 -3.6 RL CL 0 Fg 288 102 MT -7.2 1.8 RL 0 -3.6 RL CL .1 LW 0 Cg -ST .4 LW 280.8 102 252 102 DL(Figure 9-1: Example of label use)222.315 -143 Q(The)72 167 Q/F1 10/Times-Bold@0 SF(at)3.35 E F0 .85 -(statement in the fourth line uses the label)3.35 F F1(A)3.35 E F0 .85 -(\(the beha)3.35 F .85(vior of)-.2 F F1(at)3.35 E F0 .85(will be e)3.35 -F .85(xplained in the ne)-.15 F .85(xt sec-)-.15 F 2.5(tion\). W)72 179 -R(e')-.8 E(ll see later on that labels are most useful for referring to\ - block composite objects.)-.1 E 1.224(Labels are not constants b)97 -194.6 R 1.224(ut v)-.2 F 1.225(ariables \(you can vie)-.25 F 3.725(wc) --.25 G 1.225(olon as a sort of assignment\).)-3.725 F -1.1(Yo)6.225 G -3.725(uc)1.1 G 1.225(an say)-3.725 F .452(something lik)72 206.6 R(e)-.1 -E F1 .452(A: A + \(1,0\);)2.952 F F0 .452(and the ef)2.952 F .452 -(fect will be to reassign the label)-.25 F F1(A)2.952 E F0 .452 -(to designate a position one inch)2.952 F(to the right of its old v)72 -218.6 Q(alue.)-.25 E F1 2.5(10. Describing)72 242.6 R(locations)2.5 E F0 -.376(The location of points can be described in man)97 258.2 R 2.877(yd) --.15 G(if)-2.877 E .377(ferent w)-.25 F 2.877(ays. All)-.1 F .377 -(these forms are interchangeable)2.877 F .581(as for as the)72 270.2 R -F1(pic)3.081 E F0 .581 -(language syntax is concerned; where you can use one, an)3.081 F 3.08 -(yo)-.15 G 3.08(ft)-3.08 G .58(he others that w)-3.08 F .58(ould mak)-.1 -F(e)-.1 E(semantic sense are allo)72 282.2 Q(wed.)-.25 E -(The special label)97 297.8 Q F1(Her)2.5 E(e)-.18 E F0(al)2.5 E -.1(wa) --.1 G(ys refers to the current position.).1 E F1 2.5(10.1. Absolute)72 -321.8 R(Coordinates)2.5 E F0 .069 -(The simplest is absolute coordinates in inches;)97 337.4 R F1(pic)2.569 -E F0 .07(uses a Cartesian system with \(0,0\) at the lo)2.569 F .07 -(wer left)-.25 F 1.505(corner of the virtual dra)72 349.4 R 1.505 -(wing surf)-.15 F 1.505(ace for each picture \(that is, X increases to \ -the right and Y increases)-.1 F(upw)72 361.4 Q 3.232(ards\). An)-.1 F -.732(absolute location may al)3.232 F -.1(wa)-.1 G .732 -(ys be written in the con).1 F -.15(ve)-.4 G .732(ntional form as tw).15 -F 3.233(oc)-.1 G(omma-separated)-3.233 E .539(numbers surrounded by par\ -entheses \(and this is recommended for clarity\).)72 373.4 R .538 -(In conte)5.539 F .538(xts where it creates no)-.15 F(ambiguity)72 385.4 -Q 2.5(,t)-.65 G(he pair of X and Y coordinates suf)-2.5 E -(\214ces without parentheses.)-.25 E .034(It is a good idea to a)97 401 -R -.2(vo)-.2 G .034(id absolute coordinates, ho).2 F(we)-.25 E -.15(ve) --.25 G 3.634 -.55(r. T).15 H(he).55 E 2.535(yt)-.15 G .035(end to mak) --2.535 F 2.535(ep)-.1 G .035(icture descriptions dif)-2.535 F<8c2d>-.25 -E .133(cult to understand and modify)72 413 R 5.133(.I)-.65 G .133 -(nstead, there are quite a number of w)-5.133 F .133 -(ays to specify locations relati)-.1 F .432 -.15(ve t)-.25 H(o).15 E F1 -(pic)2.632 E F0(objects and pre)72 425 Q(vious locations.)-.25 E 1.487 -(Another possibility of surprise is the f)97 440.6 R 1.487(act that)-.1 -F F1(pic)3.987 E F0 1.487 -(crops the picture to the smallest bounding box)3.987 F .19 -(before writing it out.)72 452.6 R -.15(Fo)5.19 G 2.69(re).15 G .19 -(xample, if you ha)-2.84 F .49 -.15(ve a p)-.2 H .189 -(icture consisting of a small box with its lo).15 F .189 -(wer left corner)-.25 F .978(at \(2,2\) and another small box with its \ -upper right corner at \(5,5\), the width and height of the image are)72 -464.6 R 1.036(both 3 units and not 5.)72 476.6 R 2.636 -.8(To g)6.036 H -1.036(et the origin at \(0,0\) included, simply add an in).8 F 1.036 -(visible object to the picture,)-.4 F(positioning the object')72 488.6 Q -2.5(sl)-.55 G(eft corner at \(0,0\).)-2.5 E F1 2.5(10.2. Locations)72 -512.6 R(Relati)2.5 E .2 -.1(ve t)-.1 H 2.5(oO).1 G(bjects)-2.5 E F0 .606 -(The symbol)97 528.2 R F1(Her)3.106 E(e)-.18 E F0(al)3.106 E -.1(wa)-.1 -G .607(ys refers to the position of the last object dra).1 F .607 -(wn or the destination of the last)-.15 F F1(mo)72 540.2 Q -.1(ve)-.1 G -F0(.).1 E 1.113(Alone and unquali\214ed, a)97 555.8 R F1 1.113(last cir) -3.613 F(cle)-.18 E F0 1.113(or an)3.613 F 3.613(yo)-.15 G 1.112(ther w) --3.613 F 1.112(ay of specifying a closed-object or arc location)-.1 F -.752(refers as a position to the geometric center of the object.)72 -567.8 R .753(Unquali\214ed, the name of a line or spline object)5.753 F -(refers to the position of the object start.)72 579.8 Q(Also,)97 595.4 Q -F1(pic)3.016 E F0 .516(objects ha)3.016 F .816 -.15(ve q)-.2 H .516 -(uite a fe).15 F 3.016(wn)-.25 G .516 -(amed locations associated with them.)-3.016 F .516 -(One of these is the object)5.516 F(center)72 607.4 Q 2.77(,w)-.4 G .27 -(hich can be indicated \(redundantly\) with the suf)-2.77 F<8c78>-.25 E -F1(.center)2.771 E F0 .271(\(or just)2.771 F F1(.c)2.771 E F0 2.771 -(\). Thus,)B F1 .271(last cir)2.771 F .271(cle .center)-.18 F F0(is) -2.771 E(equi)72 619.4 Q -.25(va)-.25 G(lent to).25 E F1(last cir)2.5 E -(cle)-.18 E F0(.)A F1 2.5(10.2.1. Locations)72 643.4 R(Relati)2.5 E .2 --.1(ve t)-.1 H 2.5(oC).1 G(losed Objects)-2.5 E F0(Ev)97 659 Q .931(ery\ - closed object \(box, circle, ellipse, or block composite\) also has ei\ -ght compass points associ-)-.15 F(ated with it;)72 671 Q 0 Cg EP -%%Page: 14 14 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-14-)279.67 48 Q 213.12 157.44 MT 0 -72 RL -108 -0 RL 0 72 RL CL .4 LW ST 159.12 121.44 1.44 DC 0.5 Fg 159.12 121.44 1.44 -DC 0 Cg ST/F1 10/Times-Bold@0 SF(.c)161.62 123.64 Q 159.12 85.44 1.44 DC -0.5 Fg 159.12 85.44 1.44 DC 0 Cg ST(.n)155.09 81.64 Q 213.12 85.44 1.44 -DC 0.5 Fg 213.12 85.44 1.44 DC 0 Cg ST(.ne)208.12 81.64 Q 213.12 121.44 -1.44 DC 0.5 Fg 213.12 121.44 1.44 DC 0 Cg ST(.e)215.62 123.64 Q 213.12 -157.44 1.44 DC 0.5 Fg 213.12 157.44 1.44 DC 0 Cg ST(.se)208.955 165.64 Q -159.12 157.44 1.44 DC 0.5 Fg 159.12 157.44 1.44 DC 0 Cg ST(.s)155.925 -165.64 Q 105.12 157.44 1.44 DC 0.5 Fg 105.12 157.44 1.44 DC 0 Cg ST(.sw) -97.065 165.64 Q 105.12 121.44 1.44 DC 0.5 Fg 105.12 121.44 1.44 DC 0 Cg -ST(.w)92.9 123.64 Q 105.12 85.44 1.44 DC 0.5 Fg 105.12 85.44 1.44 DC 0 -Cg ST(.nw)96.23 81.64 Q 288 121.44 36 DC ST 288 121.44 1.44 DC 0.5 Fg -288 121.44 1.44 DC 0 Cg ST(.c)290.5 123.64 Q 288 85.44 1.44 DC 0.5 Fg -288 85.44 1.44 DC 0 Cg ST(.n)283.97 81.64 Q 313.488 95.952 1.44 DC 0.5 -Fg 313.488 95.952 1.44 DC 0 Cg ST(.ne)308.488 92.152 Q 324 121.44 1.44 -DC 0.5 Fg 324 121.44 1.44 DC 0 Cg ST(.e)326.5 123.64 Q 313.488 146.928 -1.44 DC 0.5 Fg 313.488 146.928 1.44 DC 0 Cg ST(.se)309.323 155.128 Q 288 -157.44 1.44 DC 0.5 Fg 288 157.44 1.44 DC 0 Cg ST(.s)284.805 165.64 Q -262.512 146.928 1.44 DC 0.5 Fg 262.512 146.928 1.44 DC 0 Cg ST(.sw) -254.457 155.128 Q 252 121.44 1.44 DC 0.5 Fg 252 121.44 1.44 DC 0 Cg ST -(.w)239.78 123.64 Q 262.512 95.952 1.44 DC 0.5 Fg 262.512 95.952 1.44 DC -0 Cg ST(.nw)253.622 92.152 Q 108 72 416.88 121.44 DE ST 416.88 121.44 -1.44 DC 0.5 Fg 416.88 121.44 1.44 DC 0 Cg ST(.c)419.38 123.64 Q 416.88 -85.44 1.44 DC 0.5 Fg 416.88 85.44 1.44 DC 0 Cg ST(.n)412.85 81.64 Q -455.04 95.952 1.44 DC 0.5 Fg 455.04 95.952 1.44 DC 0 Cg ST(.ne)450.04 -92.152 Q 470.88 121.44 1.44 DC 0.5 Fg 470.88 121.44 1.44 DC 0 Cg ST(.e) -473.38 123.64 Q 455.04 146.928 1.44 DC 0.5 Fg 455.04 146.928 1.44 DC 0 -Cg ST(.se)450.875 155.128 Q 416.88 157.44 1.44 DC 0.5 Fg 416.88 157.44 -1.44 DC 0 Cg ST(.s)413.685 165.64 Q 378.72 146.928 1.44 DC 0.5 Fg 378.72 -146.928 1.44 DC 0 Cg ST(.sw)370.665 155.128 Q 362.88 121.44 1.44 DC 0.5 -Fg 362.88 121.44 1.44 DC 0 Cg ST(.w)350.66 123.64 Q 378.72 95.952 1.44 -DC 0.5 Fg 378.72 95.952 1.44 DC 0 Cg ST(.nw)369.83 92.152 Q F0 -(Figure 10-1: Compass points)230.08 181.88 Q .588(these are the locatio\ -ns where eight compass rays from the geometric center w)72 209.48 R .588 -(ould intersect the \214gure.)-.1 F(So)5.589 E .421(when we say)72 -221.48 R F1 .421(last cir)2.921 F .421(cle .s)-.18 F F0 .421 -(we are referring to the south compass point of the last circle dra) -2.921 F 2.921(wn. The)-.15 F -.15(ex)2.921 G(pla-).15 E -(nation of Figure 7.3')72 233.48 Q 2.5(sp)-.55 G(rogram is no)-2.5 E 2.5 -(wc)-.25 G(omplete.)-2.5 E .135(\(In case you dislik)97 249.08 R 2.635 -(ec)-.1 G .135(ompass points, the names)-2.635 F F1(.top)2.635 E F0(,)A -F1(.bottom)2.635 E F0(,)A F1(.left)2.635 E F0(and)2.635 E F1(.right) -2.635 E F0 .136(are synon)2.636 F .136(yms for)-.15 F F1(.n)2.636 E F0 -(,)A F1(.s)2.636 E F0(,)A F1(.e)72 261.08 Q F0 2.5(,a)C(nd)-2.5 E F1(.w) -2.5 E F0(respecti)2.5 E -.15(ve)-.25 G(ly; the).15 E 2.5(yc)-.15 G(an e) --2.5 E -.15(ve)-.25 G 2.5(nb).15 G 2.5(ea)-2.5 G(bbre)-2.5 E(viated to) --.25 E F1(.t)2.5 E F0(,)A F1(.b)2.5 E F0(,)A F1(.l)2.5 E F0(and)2.5 E F1 -(.r)2.5 E F0(\).)A .685(The names)97 276.68 R F1(center)3.185 E F0(,)A -F1(top)3.185 E F0(,)A F1(bottom)3.185 E F0(,)A F1(left)3.185 E F0(,)A F1 -(right)3.185 E F0(,)A F1(north)3.185 E F0(,)A F1(south)3.185 E F0(,)A F1 -(east)3.185 E F0 3.185(,a)C(nd)-3.185 E F1(west)3.185 E F0 .685 -(can also be used \(without)3.185 F .799 -(the leading dot\) in a pre\214x form mark)72 288.68 R .799(ed by)-.1 F -F1(of)3.299 E F0 3.299(;t)C(hus,)-3.299 E F1 .8(center of last cir)3.3 F -(cle)-.18 E F0(and)3.3 E F1 .8(top of 2nd last ellipse)3.3 F F0(are)3.3 -E .125(both v)72 300.68 R .125(alid object references.)-.25 F(Finally) -5.125 E 2.625(,t)-.65 G .125(he names)-2.625 F F1(left)2.625 E F0(and) -2.625 E F1(right)2.625 E F0 .125(can be pre\214x)2.625 F .124(ed with) --.15 F F1(upper)2.624 E F0(and)2.624 E F1(lo)2.624 E(wer)-.1 E F0(which) -2.624 E(both ha)72 312.68 Q .3 -.15(ve t)-.2 H(he ob).15 E -(vious meaning.)-.15 E(Arc objects also ha)97 328.28 Q .3 -.15(ve c)-.2 -H(ompass point; the).15 E 2.5(ya)-.15 G -(re the compass points of the implied circle.)-2.5 E F1 2.5 -(10.2.2. Locations)72 352.28 R(Relati)2.5 E .2 -.1(ve t)-.1 H 2.5(oO).1 -G(pen Objects)-2.5 E F0(Ev)97 367.88 Q .005 -(ery open object \(line, arro)-.15 F 1.306 -.65(w, a)-.25 H .006 -(rc, or spline\) has three named points:).65 F F1(.start)2.506 E F0(,)A -F1(.center)2.506 E F0(\(or)2.506 E F1(.c)2.506 E F0 .006(\), and)B F1 -(.end)2.506 E F0(.)A(The)72 379.88 Q 3.183(yc)-.15 G .683 -(an also be used without leading dots in the)-3.183 F F1(of)3.182 E F0 -.682(pre\214x form.)3.182 F .682 -(The center of an arc is the center of its)5.682 F(circle, b)72 391.88 Q -(ut the center of a line, path, or spline is halfw)-.2 E -(ay between its endpoints.)-.1 E 237.78 417.08 165.78 453.08 DL 201.78 -435.08 1.44 DC 0.5 Fg 201.78 435.08 1.44 DC 0 Cg ST F1(.center)165.43 -430.08 Q 165.78 453.08 1.44 DC 0.5 Fg 165.78 453.08 1.44 DC 0 Cg ST -(.start)136.09 448.08 Q 237.78 417.08 1.44 DC 0.5 Fg 237.78 417.08 1.44 -DC 0 Cg ST(.end)212.52 412.08 Q 318.42 453.08 36 -0 -90 DA 318.42 453.08 -1.44 DC 0.5 Fg 318.42 453.08 1.44 DC 0 Cg ST(.center)282.07 448.08 Q -318.42 417.08 1.44 DC 0.5 Fg 318.42 417.08 1.44 DC 0 Cg ST(.start)288.73 -412.08 Q 354.42 453.08 1.44 DC 0.5 Fg 354.42 453.08 1.44 DC 0 Cg ST -(.end)329.16 448.08 Q 237.78 497.72 165.78 497.72 DL 165.78 533.72 -237.78 497.72 DL 237.78 533.72 165.78 533.72 DL 201.78 515.72 1.44 DC -0.5 Fg 201.78 515.72 1.44 DC 0 Cg ST(.center)165.43 510.72 Q 165.78 -497.72 1.44 DC 0.5 Fg 165.78 497.72 1.44 DC 0 Cg ST(.start)136.09 492.72 -Q 237.78 533.72 1.44 DC 0.5 Fg 237.78 533.72 1.44 DC 0 Cg ST(.end)212.52 -528.72 Q 318.42 533.72 MT 36 0 RL 24 0 42 -6 54 -18 RC 12 -12 12 -18 0 --18 RC -12 0 -30 0 -54 0 RC -36 0 RL ST 318.42 515.72 1.44 DC 0.5 Fg -318.42 515.72 1.44 DC 0 Cg ST(.center)282.07 510.72 Q 318.42 533.72 1.44 -DC 0.5 Fg 318.42 533.72 1.44 DC 0 Cg ST(.start)288.73 528.72 Q 318.42 -497.72 1.44 DC 0.5 Fg 318.42 497.72 1.44 DC 0 Cg ST(.end)293.16 492.72 Q -F0(Figure 10-2: Special points on open objects)201.06 558.16 Q F1 2.5 -(10.3. W)72 597.76 R(ays of Composing P)-.65 E(ositions)-.2 E F0 .851 -(Once you ha)97 613.36 R 1.151 -.15(ve t)-.2 H 1.051 -.1(wo p).15 H .852 -(ositions to w).1 F .852(ork with, there are se)-.1 F -.15(ve)-.25 G -.852(ral w).15 F .852(ays to combine them to specify ne)-.1 F(w)-.25 E -(positions.)72 625.36 Q F1 2.5(10.3.1. V)72 649.36 R -(ector Sums and Displacements)-1 E F0 .239 -(Positions may be added or subtracted to yield a ne)97 664.96 R 2.738 -(wp)-.25 G .238(osition \(to be more precise, you can only add a)-2.738 -F .1(position and an e)72 676.96 R .101(xpression pair; the latter must\ - be on the right side of the addition or subtraction sign\).)-.15 F(The) -5.101 E .328(result is the con)72 688.96 R -.15(ve)-.4 G .328(ntional v) -.15 F .328(ector sum or dif)-.15 F .328(ference of coordinates.)-.25 F --.15(Fo)5.328 G 2.828(re).15 G(xample,)-2.978 E F1 .328 -(last box .ne + \(0.1, 0\))2.828 F F0 .327(is a)2.827 F -.25(va)72 -700.96 S .026(lid position.).25 F .026(This e)5.026 F .026 -(xample illustrates a common use, to de\214ne a position slightly of) --.15 F .027(fset from a named one)-.25 F(\(say)72 712.96 Q 2.5(,f)-.65 G -(or captioning purposes\).)-2.5 E 0 Cg EP -%%Page: 15 15 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-15-)279.67 48 Q/F1 10/Times-Bold@0 SF 2.5 -(10.3.2. Inter)72 84 R(polation Between P)-.1 E(ositions)-.2 E F0 4.496 -(Ap)97 99.6 S 1.996(osition may be interpolated between an)-4.496 F -4.495(yt)-.15 G 2.195 -.1(wo p)-4.495 H 4.495(ositions. The).1 F 1.995 -(syntax is `)4.495 F/F2 10/Times-Italic@0 SF(fr)A(action)-.15 E F1 1.995 -(of the way)4.495 F(between)72 111.6 Q F2(position1)2.516 E F1(and)2.516 -E F2(position2)2.516 E F0 2.516('. F)B .016(or e)-.15 F .016 -(xample, you can say)-.15 F F1 .017(1/3 of the way between her)2.516 F -2.517(ea)-.18 G .017(nd last ellipse)-2.517 F(.ne)72 123.6 Q F0 6.067 -(.T)C 1.066(he fraction may be in numerator/denominator form or may be \ -an ordinary number \(v)-6.067 F 1.066(alues are)-.25 F F2(not)3.566 E F0 -.004(restricted to [0,1]\).)72 135.6 R .004(As an alternati)5.004 F .304 --.15(ve t)-.25 H 2.504(ot).15 G .004(his v)-2.504 F .005 -(erbose syntax, you can say `)-.15 F F2(fr)A(action)-.15 E F1(<)5.005 E -F2(position1)1.25 E F1(,)2.505 E F2(position2)2.505 E F1(>).02 E F0(';)A -(thus, the e)72 147.6 Q(xample could also be written as)-.15 E F1 -(1/3 )-.18 E F0(.)A 306 165.6 MT -3.816 6.336 -RL -2.52 -2.52 RL CL 0 Fg 306 165.6 MT -3.816 6.336 RL -2.52 -2.52 RL CL -.1 LW 0 Cg ST .4 LW 300.888 170.712 270 201.6 DL 282.024 189.576 1.44 DC -0.5 Fg 282.024 189.576 1.44 DC 0 Cg ST(P)287.884 191.776 Q(Figure 10-3:) -129.69 224.6 Q F1(P: 1/3 of the way between last arr)2.5 E .2 -.1(ow .) --.18 H(start and last arr).1 E .2 -.1(ow .)-.18 H(end).1 E F0(This f)97 -252.2 Q(acility can be used, for e)-.1 E(xample, to dra)-.15 E 2.5(wd) --.15 G(ouble connections.)-2.5 E 270 306.2 MT 0 -36 RL -54 0 RL 0 36 RL -CL ST(yin)236.61 290.4 Q 360 306.2 MT 0 -36 RL -54 0 RL 0 36 RL CL ST -(yang)323.28 290.4 Q 306 283.736 MT -7.2 1.8 RL 0 -3.6 RL CL 0 Fg 306 -283.736 MT -7.2 1.8 RL 0 -3.6 RL CL .1 LW 0 Cg ST .4 LW 298.8 283.736 -270 283.736 DL 270 292.664 MT 7.2 -1.8 RL 0 3.6 RL CL 0 Fg 270 292.664 -MT 7.2 -1.8 RL 0 3.6 RL CL .1 LW 0 Cg ST .4 LW 277.2 292.664 306 292.664 -DL(Figure 10-4: Doubled arro)229.94 329.2 Q(ws)-.25 E -1.1(Yo)72 356.8 S -2.5(uc)1.1 G(an get Figure 10-4 from the follo)-2.5 E(wing program:)-.25 -E/F3 10/Courier@0 SF(.PS)108 374.8 Q(A: box "yin"; move;)108 386.8 Q -(B: box "yang";)108 398.8 Q(arrow right at 1/4 ;)108 410.8 Q -(arrow left)108 422.8 Q(at 1/4 ;)12 E(.PE)108 434.8 Q F0 -(Note the use of the short form for interpolating points.)72 456.4 Q F1 -2.5(10.3.3. Pr)72 480.4 R(ojections of P)-.18 E(oints)-.2 E F0(Gi)97 496 -Q -.15(ve)-.25 G 2.853(nt).15 G .553 -.1(wo p)-2.853 H(ositions).1 E F2 -(p)2.853 E F0(and)2.853 E F2(q)2.853 E F0 2.853(,t)C .353(he position) --2.853 F F1(\()2.853 E F2(p)1.25 E F1(,)A F2(q)2.853 E F1(\))A F0 .353 -(has the X coordinate of)2.853 F F2(p)2.853 E F0 .353 -(and the Y coordinate of)2.853 F F2(q)2.852 E F0(.)A 1.664(This can be \ -helpful in placing an object at one of the corners of the virtual box d\ -e\214ned by tw)72 508 R 4.164(oo)-.1 G(ther)-4.164 E(objects.)72 520 Q -360 545.2 1.44 DC 0.5 Fg 360 545.2 1.44 DC 0 Cg ST F1(\(B,A\))367.2 -540.2 Q F0(is here)2.5 E 360 617.2 1.44 DC 0.5 Fg 360 617.2 1.44 DC 0 Cg -ST(B)367.2 626.6 Q 216 617.2 1.44 DC 0.5 Fg 216 617.2 1.44 DC 0 Cg ST F1 -(\(A,B\))156.87 626.6 Q F0(is here)2.5 E 216 545.2 1.44 DC 0.5 Fg 216 -545.2 1.44 DC 0 Cg ST(A)208.8 540.2 Q(Figure 10-5: Using \()212.45 647.4 -Q F2(x)A F0(,)A F2(y)2.5 E F0 2.5(\)c)C(omposition)-2.5 E F1 2.5 -(10.4. Using)72 683.4 R(Locations)2.5 E F0 .656(There are four w)97 699 -R .656(ays to use locations;)-.1 F F1(at)3.156 E F0(,)A F1(fr)3.156 E -(om)-.18 E F0(,)A F1(to)3.156 E F0 3.156(,a)C(nd)-3.156 E F1(with)3.155 -E F0 5.655(.A)C .655(ll three are object modi\214ers; that is,)-5.655 F -(you use them as suf)72 711 Q<8c78>-.25 E(es to a dra)-.15 E -(wing command.)-.15 E 0 Cg EP -%%Page: 16 16 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-16-)279.67 48 Q(The)97 84 Q/F1 10/Times-Bold@0 -SF(at)3.623 E F0 1.123(modi\214er says to dra)3.623 F -6.122 3.623(wa c) --.15 H 1.124(losed object or arc with its center at the follo)-3.623 F -1.124(wing location, or to)-.25 F(dra)72 96 Q 2.5(wal)-.15 G -(ine/spline/arro)-2.5 E 2.5(ws)-.25 G(tarting at the follo)-2.5 E -(wing location.)-.25 E(The)97 111.6 Q F1(to)3.648 E F0 1.147 -(modi\214er can be used alone to specify a mo)3.647 F 1.447 -.15(ve d) --.15 H 3.647(estination. The).15 F F1(fr)3.647 E(om)-.18 E F0 1.147 -(modi\214er can be used)3.647 F(alone in the same w)72 123.6 Q(ay as)-.1 -E F1(at)2.5 E F0(.)A(The)97 139.2 Q F1(fr)2.677 E(om)-.18 E F0(and)2.677 -E F1(to)2.677 E F0 .177(modi\214ers can be used with a)2.677 F F1(line) -2.677 E F0(or)2.677 E F1(ar)2.677 E(c)-.18 E F0 .177 -(command to specify start and end points of)2.677 F 1.873(the object.)72 -151.2 R 1.873(In conjunction with named locations, this of)6.873 F 1.873 -(fers a v)-.25 F 1.873(ery \215e)-.15 F 1.872 -(xible mechanism for connecting)-.15 F 2.5(objects. F)72 163.2 R(or e) --.15 E(xample, the follo)-.15 E(wing program)-.25 E/F2 10/Courier@0 SF -(.PS)108 181.2 Q(box "from")108 193.2 Q(move 0.75;)108 205.2 Q -(ellipse "to")108 217.2 Q(arc cw from 1/3 of the way \\)108 229.2 Q -(between last box .n and last box .ne to last ellipse .n;)132 241.2 Q -(.PE)108 253.2 Q F0(yields:)72 274.8 Q 261 348.528 MT 0 -36 RL -54 0 RL -0 36 RL CL .4 LW ST(from)224.28 332.728 Q 54 36 342 330.528 DE ST(to) -338.11 332.728 Q 292.464 364.8 72.015 -46.5394 -133.4606 DA -(Figure 10-6: A trick)153.135 371.528 Q 2.5(yc)-.15 G -(onnection speci\214ed with English-lik)-2.5 E 2.5(es)-.1 G(yntax)-2.5 E -(The)97 399.128 Q F1(with)2.781 E F0 .281(modi\214er allo)2.781 F .281(\ -ws you to identify a named attachment point of an object \(or a positio\ -n within)-.25 F .167(the object\) with another point.)72 411.128 R .166 -(This is v)5.166 F .166 -(ery useful for connecting objects in a natural w)-.15 F(ay)-.1 E 5.166 -(.F)-.65 G .166(or an e)-5.316 F(xample,)-.15 E(consider these tw)72 -423.128 Q 2.5(op)-.1 G(rograms:)-2.5 E 180 504.128 MT 0 -36 RL -36 0 RL -0 36 RL CL ST 234 513.128 MT 0 -54 RL -54 0 RL 0 54 RL CL ST F1 -(box wid 0.5 ht 0.5; box wid 0.75 ht 0.75)106.075 544.128 Q 378 495.128 -MT 0 -36 RL -36 0 RL 0 36 RL CL ST 432 495.128 MT 0 -54 RL -54 0 RL 0 54 -RL CL ST(box wid 0.5 ht 0.5;)347.83 538.128 Q -(box wid 0.75 ht 0.75 with .sw at last box .se;)294.22 550.128 Q F0 -(Figure 10-7: Using the)181.48 582.928 Q F1(with)2.5 E F0 -(modi\214er for attachments)2.5 E F1 2.5(10.5. The)72 618.928 R -(`chop' Modi\214er)2.5 E F0 .99(When dra)97 634.528 R .99 -(wing lines between circles that don')-.15 F 3.49(ti)-.18 G .99 -(ntersect them at a compass point, it is useful to be)-3.49 F(able to s\ -horten a line by the radius of the circle at either or both ends.)72 -646.528 Q(Consider the follo)5 E(wing program:)-.25 E 0 Cg EP -%%Page: 17 17 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-17-)279.67 48 Q/F1 10/Courier@0 SF(.PS)108 84 Q -(circle "x")108 96 Q(circle "y" at 1st circle - \(0.4, 0.6\))108 108 Q -(circle "z" at 1st circle + \(0.4, -0.6\))108 120 Q -(arrow from 1st circle to 2nd circle chop)108 132 Q -(arrow from 2nd circle to 3rd circle chop)108 144 Q -(arrow from 3rd circle to 1st circle chop)108 156 Q(.PE)108 168 Q F0 -(It yields the follo)72 189.6 Q(wing:)-.25 E 288 225.6 18 DC .4 LW ST(x) -285.5 227.8 Q 259.2 268.8 18 DC ST(y)256.7 271 Q 316.8 268.8 18 DC ST(z) -314.58 271 Q 269.208 253.824 MT 2.52 -6.984 RL 3.024 2.016 RL CL 0 Fg -269.208 253.824 MT 2.52 -6.984 RL 3.024 2.016 RL CL .1 LW 0 Cg ST .4 LW -273.168 247.848 277.992 240.576 DL 298.8 268.8 MT -7.2 1.8 RL 0 -3.6 RL -CL 0 Fg 298.8 268.8 MT -7.2 1.8 RL 0 -3.6 RL CL .1 LW 0 Cg ST .4 LW -291.6 268.8 277.2 268.8 DL 298.008 240.576 MT 5.472 4.968 RL -3.024 -2.016 RL CL 0 Fg 298.008 240.576 MT 5.472 4.968 RL -3.024 2.016 RL CL .1 -LW 0 Cg ST .4 LW 301.968 246.552 306.792 253.824 DL(Figure 10-8: The) -224.39 309.8 Q/F2 10/Times-Bold@0 SF(chop)2.5 E F0(modi\214er)2.5 E .303 -(Notice that the)72 337.4 R F2(chop)2.803 E F0(attrib)2.803 E .303 -(ute mo)-.2 F -.15(ve)-.15 G 2.803(sa).15 G(rro)-2.803 E .302 -(wheads rather than stepping on them.)-.25 F .302(By def)5.302 F .302 -(ault, the)-.1 F F2(chop)2.802 E F0(modi-)2.802 E .437 -(\214er shortens both ends of the line by)72 349.4 R F2(cir)2.937 E -(clerad)-.18 E F0 5.437(.B)C 2.937(ys)-5.437 G(uf)-2.937 E .438 -(\214xing it with a number you can change the amount)-.25 F -(of chopping.)72 361.4 Q .466(If you say)97 377 R F2 .466(line .)2.966 F --2.866 1.666(.. c)1.666 H(hop)-1.666 E/F3 10/Times-Italic@0 SF(r1)2.966 -E F2(chop)2.966 E F3(r2)2.966 E F0(with)2.966 E F3(r1)2.966 E F0(and) -2.966 E F3(r2)2.966 E F0 .465(both numbers, you can v)2.966 F .465 -(ary the amount of chop-)-.25 F .081(ping at both ends.)72 389 R -1.1 -(Yo)5.081 G 2.581(uc)1.1 G .081(an use this in combination with trigono\ -metric functions to write code that will deal)-2.581 F(with more comple) -72 401 Q 2.5(xi)-.15 G(ntersections.)-2.5 E F2 2.5(11. Object)72 425 R -(Gr)2.5 E(oups)-.18 E F0(There are tw)97 440.6 Q 2.5(od)-.1 G(if)-2.5 E -(ferent w)-.25 E(ays to group objects in)-.1 E F2(pic)2.5 E F0(;)A F3 -(br)2.5 E(ace gr)-.15 E(ouping)-.45 E F0(and)2.5 E F3(bloc)2.5 E 2.5(kc) --.2 G(omposites)-2.5 E F0(.)A F2 2.5(11.1. Brace)72 464.6 R(Gr)2.5 E -(ouping)-.18 E F0 .504(The simpler method is simply to group a set of o\ -bjects within curly brack)97 480.2 R .503(et or brace characters.)-.1 F -(On)5.503 E -.15(ex)72 492.2 S 1.491(it from this grouping, the current\ - position and direction are restored to their v).15 F 1.491 -(alue when the opening)-.25 F(brace w)72 504.2 Q(as encountered.)-.1 E -F2 2.5(11.2. Block)72 528.2 R(Composites)2.5 E F0 2.554(Ab)97 543.8 S -.053(lock composite object is created a series of commands enclosed by \ -square brack)-2.554 F 2.553(ets. The)-.1 F(compos-)2.553 E .163 -(ite can be treated for most purposes lik)72 555.8 R 2.663(eas)-.1 G -.164(ingle closed object, with the size and shape of its bounding box.) --2.663 F(Here is an e)72 567.8 Q 2.5(xample. The)-.15 F -(program fragment)2.5 E F1(A: [)108 585.8 Q(circle;)132 597.8 Q -(line up 1 at last circle .n;)132 609.8 Q -(line down 1 at last circle .s;)132 621.8 Q -(line right 1 at last circle .e;)132 633.8 Q -(line left 1 at last circle .w;)132 645.8 Q -(box dashed with .nw at last circle .se + \(0.2, -0.2\);)132 657.8 Q -(Caption: center of last box;)132 669.8 Q(])108 681.8 Q F0 .853 -(yields the block in \214gure 11-1, which we sho)72 703.4 R 3.352(wb) --.25 G .852(oth with and without its attachment points.)-3.352 F .852 -(The block')5.852 F(s)-.55 E(location becomes the v)72 715.4 Q(alue of) --.25 E F2(A)2.5 E F0(.)A 0 Cg EP -%%Page: 18 18 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-18-)279.67 48 Q 178.56 175.44 18 DC .4 LW ST -178.56 85.44 178.56 157.44 DL 178.56 265.44 178.56 193.44 DL 268.56 -175.44 196.56 175.44 DL 88.56 175.44 160.56 175.44 DL 209.304 238.584 -205.704 238.584 DL 216.504 238.584 212.904 238.584 DL 223.704 238.584 -220.104 238.584 DL 230.904 238.584 227.304 238.584 DL 238.104 238.584 -234.504 238.584 DL 245.304 238.584 241.704 238.584 DL 252.504 238.584 -248.904 238.584 DL 259.704 238.584 256.104 238.584 DL 259.704 234.984 -259.704 238.584 DL 259.704 228.504 259.704 232.104 DL 259.704 222.024 -259.704 225.624 DL 259.704 215.544 259.704 219.144 DL 259.704 209.064 -259.704 212.664 DL 259.704 202.584 259.704 206.184 DL 256.104 202.584 -259.704 202.584 DL 248.904 202.584 252.504 202.584 DL 241.704 202.584 -245.304 202.584 DL 234.504 202.584 238.104 202.584 DL 227.304 202.584 -230.904 202.584 DL 220.104 202.584 223.704 202.584 DL 212.904 202.584 -216.504 202.584 DL 205.704 202.584 209.304 202.584 DL 205.704 206.184 -205.704 202.584 DL 205.704 212.664 205.704 209.064 DL 205.704 219.144 -205.704 215.544 DL 205.704 225.624 205.704 222.024 DL 205.704 232.104 -205.704 228.504 DL 205.704 238.584 205.704 234.984 DL 396 175.44 18 DC -ST 396 85.44 396 157.44 DL 396 265.44 396 193.44 DL 486 175.44 414 -175.44 DL 306 175.44 378 175.44 DL 426.744 238.584 423.144 238.584 DL -433.944 238.584 430.344 238.584 DL 441.144 238.584 437.544 238.584 DL -448.344 238.584 444.744 238.584 DL 455.544 238.584 451.944 238.584 DL -462.744 238.584 459.144 238.584 DL 469.944 238.584 466.344 238.584 DL -477.144 238.584 473.544 238.584 DL 477.144 234.984 477.144 238.584 DL -477.144 228.504 477.144 232.104 DL 477.144 222.024 477.144 225.624 DL -477.144 215.544 477.144 219.144 DL 477.144 209.064 477.144 212.664 DL -477.144 202.584 477.144 206.184 DL 473.544 202.584 477.144 202.584 DL -466.344 202.584 469.944 202.584 DL 459.144 202.584 462.744 202.584 DL -451.944 202.584 455.544 202.584 DL 444.744 202.584 448.344 202.584 DL -437.544 202.584 441.144 202.584 DL 430.344 202.584 433.944 202.584 DL -423.144 202.584 426.744 202.584 DL 423.144 206.184 423.144 202.584 DL -423.144 212.664 423.144 209.064 DL 423.144 219.144 423.144 215.544 DL -423.144 225.624 423.144 222.024 DL 423.144 232.104 423.144 228.504 DL -423.144 238.584 423.144 234.984 DL 396 175.44 1.44 DC 0.5 Fg 396 175.44 -1.44 DC 0 Cg ST/F1 10/Times-Bold@0 SF(.c)398.5 177.64 Q 396 85.44 1.44 -DC 0.5 Fg 396 85.44 1.44 DC 0 Cg ST(.n)391.97 81.64 Q 486 85.44 1.44 DC -0.5 Fg 486 85.44 1.44 DC 0 Cg ST(.ne)481 81.64 Q 486 175.44 1.44 DC 0.5 -Fg 486 175.44 1.44 DC 0 Cg ST(.e)488.5 177.64 Q 486 265.44 1.44 DC 0.5 -Fg 486 265.44 1.44 DC 0 Cg ST(.se)481.835 273.64 Q 396 265.44 1.44 DC -0.5 Fg 396 265.44 1.44 DC 0 Cg ST(.s)392.805 273.64 Q 306 265.44 1.44 DC -0.5 Fg 306 265.44 1.44 DC 0 Cg ST(.sw)297.945 273.64 Q 306 175.44 1.44 -DC 0.5 Fg 306 175.44 1.44 DC 0 Cg ST(.w)293.78 177.64 Q 306 85.44 1.44 -DC 0.5 Fg 306 85.44 1.44 DC 0 Cg ST(.nw)297.11 81.64 Q F0 -(Figure 11-1: A sample composite object)207.59 289.88 Q 3.041 -.8(To r) -72 317.48 T 1.441(efer to one of the composite').8 F 3.942(sa)-.55 G -1.442(ttachment points, you can say \(for e)-3.942 F(xample\))-.15 E F1 -3.942(A.)3.942 G(s)-3.942 E F0 6.442(.F)C 1.442(or purposes of)-6.592 F -1.044(object naming, composites are a class.)72 329.48 R -1.1(Yo)6.044 G -3.544(uc)1.1 G 1.044(ould write)-3.544 F F1 1.043(last [] .s)3.544 F F0 -1.043(as an equi)3.543 F -.25(va)-.25 G 1.043(lent reference, usable an) -.25 F(y-)-.15 E .826(where a location is needed.)72 341.48 R .826 -(This construction is v)5.826 F .826 -(ery important for putting together lar)-.15 F .826(ge, multi-part dia-) --.18 F(grams.)72 353.48 Q .121(Blocks are also a v)97 369.08 R .121 -(ariable-scoping mechanism, lik)-.25 F 2.621(ea)-.1 G/F2 10 -/Times-Italic@0 SF(gr)A(of)-.45 E(f)-.18 E F0 .121(\(1\) en)1.96 F 2.621 -(vironment. All)-.4 F -.25(va)2.62 G .12(riable assignments).25 F .474 -(done inside a block are undone at the end of it.)72 381.08 R 2.074 -.8 -(To g)5.474 H .474(et at v).8 F .474 -(alues within a block, write a name of the block)-.25 F(follo)72 393.08 -Q .156(wed by a dot, follo)-.25 F .155(wed by the label you w)-.25 F -2.655(ant. F)-.1 F .155(or e)-.15 F .155 -(xample, we could refer the the center of the box in)-.15 F(the abo)72 -405.08 Q .3 -.15(ve c)-.15 H(omposite as).15 E F1(last [] .Caption)2.5 E -F0(or)2.5 E F1(A.Caption)2.5 E F0(.)A .626 -(This kind of reference to a label can be used in an)97 420.68 R 3.126 -(yw)-.15 G .626(ay an)-3.226 F 3.126(yo)-.15 G .626 -(ther location can be.)-3.126 F -.15(Fo)5.626 G 3.126(re).15 G .626 -(xample, if)-3.276 F(we added)72 432.68 Q F1("Hi!" at A.Caption)2.5 E F0 -(the result w)2.5 E(ould look lik)-.1 E 2.5(et)-.1 G(his:)-2.5 E 288 -540.68 18 DC ST 288 450.68 288 522.68 DL 288 630.68 288 558.68 DL 378 -540.68 306 540.68 DL 198 540.68 270 540.68 DL 318.744 603.824 315.144 -603.824 DL 325.944 603.824 322.344 603.824 DL 333.144 603.824 329.544 -603.824 DL 340.344 603.824 336.744 603.824 DL 347.544 603.824 343.944 -603.824 DL 354.744 603.824 351.144 603.824 DL 361.944 603.824 358.344 -603.824 DL 369.144 603.824 365.544 603.824 DL 369.144 600.224 369.144 -603.824 DL 369.144 593.744 369.144 597.344 DL 369.144 587.264 369.144 -590.864 DL 369.144 580.784 369.144 584.384 DL 369.144 574.304 369.144 -577.904 DL 369.144 567.824 369.144 571.424 DL 365.544 567.824 369.144 -567.824 DL 358.344 567.824 361.944 567.824 DL 351.144 567.824 354.744 -567.824 DL 343.944 567.824 347.544 567.824 DL 336.744 567.824 340.344 -567.824 DL 329.544 567.824 333.144 567.824 DL 322.344 567.824 325.944 -567.824 DL 315.144 567.824 318.744 567.824 DL 315.144 571.424 315.144 -567.824 DL 315.144 577.904 315.144 574.304 DL 315.144 584.384 315.144 -580.784 DL 315.144 590.864 315.144 587.264 DL 315.144 597.344 315.144 -593.744 DL 315.144 603.824 315.144 600.224 DL(Hi!)335.479 588.024 Q -(Figure 11-2: Adding a caption using interior labeling)182.035 653.68 Q --1.1(Yo)97 681.28 S 2.993(uc)1.1 G .492 -(an also use interior labels in either part of a)-2.993 F F1(with)2.992 -E F0(modi\214er)2.992 E 5.492(.T)-.55 G .492(his means that the e)-5.492 -F .492(xample com-)-.15 F(posite could be placed relati)72 693.28 Q .3 --.15(ve t)-.25 H 2.5(oi).15 G(ts caption box by a command containing) --2.5 E F1(with A.Caption at)2.5 E F0(.)A -(Note that both width and height of the block composite object are al)97 -708.88 Q -.1(wa)-.1 G(ys positi).1 E -.15(ve)-.25 G(:).15 E 0 Cg EP -%%Page: 19 19 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-19-)279.67 48 Q 144 129 MT 0 -36 RL 36 0 RL 0 -36 RL CL .4 LW ST 198 138 MT 0 -54 RL -54 0 RL 0 54 RL CL ST/F1 10 -/Times-Bold@0 SF(box wid -0.5 ht 0.5; box wid 0.75 ht 0.75)86.41 169 Q -342 129 MT 0 -36 RL 36 0 RL 0 36 RL CL ST 432 138 MT 0 -54 RL -54 0 RL 0 -54 RL CL ST([box wid -0.5 ht 0.5]; box wid 0.75 ht 0.75)299.08 169 Q F0 -(Figure 11-3: Composite block objects al)135.15 189.8 Q -.1(wa)-.1 G -(ys ha).1 E .3 -.15(ve p)-.2 H(ositi).15 E .3 -.15(ve w)-.25 H -(idth and height).15 E 1.121(Blocks may be nested.)97 217.4 R 1.121 -(This means you can use block attachment points to b)6.121 F 1.122 -(uild up comple)-.2 F 3.622(xd)-.15 G(ia-)-3.622 E .156 -(grams hierarchically)72 229.4 R 2.656(,f)-.65 G .156 -(rom the inside out.)-2.656 F .155(Note that)5.155 F F1(last)2.655 E F0 -.155(and the other sequential naming mechanisms don')2.655 F(t)-.18 E -(look inside blocks, so if you ha)72 241.4 Q .3 -.15(ve a p)-.2 H -(rogram that looks lik).15 E(e)-.1 E/F2 10/Courier@0 SF(.PS)108 259.4 Q -(P: [box "foo"; ellipse "bar"];)108 271.4 Q(Q: [)108 283.4 Q -([box "baz"; ellipse "quxx"])133 295.4 Q("random text";)133 307.4 Q(]) -126 319.4 Q(arrow from 2nd last [];)108 331.4 Q(.PE)108 343.4 Q F0 -(the arro)72 365 Q 2.5(wi)-.25 G 2.5(nt)-2.5 G -(he last line will be attached to object)-2.5 E F1(P)2.5 E F0 2.5(,n)C -(ot object)-2.5 E F1(Q)2.5 E F0(.)A 2.52(In D)97 380.6 R(WB)-.3 E F1 -(pic)5.02 E F0 5.02(,o)C 2.52(nly references one le)-5.02 F -.15(ve)-.25 -G 5.02(ld).15 G 2.52(eep into enclosed blocks were permitted.)-5.02 F -(GNU)7.52 E F1(gpic)5.02 E F0(remo)72 392.6 Q -.15(ve)-.15 G 2.5(st).15 -G(his restriction.)-2.5 E .913(The combination of block v)97 408.2 R -.913(ariable scoping, assignability of labels and the macro f)-.25 F -.912(acility that we')-.1 F(ll)-.1 E .406 -(describe later on can be used to simulate functions with local v)72 -420.2 R .407(ariables \(just wrap the macro body in block)-.25 F -(braces\).)72 432.2 Q F1 2.5(12. Style)72 456.2 R -.92(Va)2.5 G(riables) -.92 E F0 .914(There are a number of global style v)97 471.8 R .913 -(ariables in)-.25 F F1(pic)3.413 E F0 .913 -(that can be used to change its o)3.413 F -.15(ve)-.15 G .913(rall beha) -.15 F(vior)-.2 E(.)-.55 E -.8(We)72 483.8 S -1.65 -.5('v e).8 H .758 -(mentioned se)3.758 F -.15(ve)-.25 G .758(ral of them in pre).15 F .758 -(vious sections.)-.25 F(The)5.758 E(y')-.15 E .758 -(re all described here.)-.5 F -.15(Fo)5.758 G 3.258(re).15 G .758(ach v) --3.258 F .758(ariable, the)-.25 F(def)72 495.8 Q(ault is gi)-.1 E -.15 -(ve)-.25 G(n.).15 E F1(Style V)138.325 515.8 Q 12.5 -(ariable Default What)-.92 F(It Does)2.5 E .08 LW 437.675 522.3 138.325 -522.3 DL 252.395 504.3 252.395 524.3 DL 205.735 504.3 205.735 524.3 DL -F0 59.21(boxht 0.5)138.325 533.8 R(Def)24.58 E(ault height of a box)-.1 -E 51.99(boxwid 0.75)138.325 545.8 R(Def)19.58 E(ault width of a box)-.1 -E 59.21(lineht 0.5)138.325 557.8 R(Def)24.58 E(ault length of v)-.1 E -(ertical line)-.15 E(line)138.325 569.8 Q 52.24(wid 0.75)-.25 F(Def) -19.58 E(ault length of horizontal line)-.1 E 43.66(linethick -1)138.325 -581.8 R(Def)32.08 E(ault line thickness)-.1 E 57.01(arcrad 0.25)138.325 -593.8 R(Def)19.58 E(ault radius of an arc)-.1 E 47.01(circlerad 0.25) -138.325 605.8 R(Def)19.58 E(ault radius of a circle)-.1 E 48.1 -(ellipseht 0.5)138.325 617.8 R(Def)24.58 E(ault height of an ellipse)-.1 -E(ellipse)138.325 629.8 Q 41.13(wid 0.75)-.25 F(Def)19.58 E -(ault width of an ellipse)-.1 E(mo)138.325 641.8 Q -.15(ve)-.15 G 52.29 -(ht 0.5).15 F(Def)24.58 E(ault length of v)-.1 E(ertical mo)-.15 E -.15 -(ve)-.15 G(mo)138.325 653.8 Q -.15(ve)-.15 G 45.32(wid 0.75)-.1 F(Def) -19.58 E(ault length of horizontal mo)-.1 E -.15(ve)-.15 G(te)138.325 -665.8 Q 59.36(xtht 0)-.15 F(Def)32.08 E -(ault height of box enclosing a te)-.1 E(xt object)-.15 E(te)138.325 -677.8 Q 52.14(xtwid 0)-.15 F(Def)32.08 E -(ault width of box enclosing a te)-.1 E(xt object)-.15 E(arro)138.325 -689.8 Q 51.14(wht 0.1)-.25 F(Length of arro)24.58 E(whead along shaft) --.25 E(arro)138.325 701.8 Q 43.92(wwid 0.05)-.25 F -.4(Wi)19.58 G -(dth of rear of arro).4 E(whead)-.25 E(arro)138.325 713.8 Q 40.04 -(whead 1)-.25 F(Enable/disable arro)32.08 E(whead \214lling)-.25 E -252.395 524.3 252.395 716.3 DL 205.735 524.3 205.735 716.3 DL 0 Cg EP -%%Page: 20 20 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-20-)279.67 48 Q/F1 10/Times-Bold@0 SF(Style V) -138.325 86 Q 12.5(ariable Default What)-.92 F(It Does)2.5 E .08 LW -437.675 92.5 138.325 92.5 DL 252.395 74.5 252.395 94.5 DL 205.735 74.5 -205.735 94.5 DL F0 48.66(dashwid 0.05)138.325 104 R(Interv)19.58 E -(al for dashed lines)-.25 E 35.88(maxpswid 11)138.325 116 R -(Maximum width of picture)32.08 E 48.1(maxpsht 8.5)138.325 128 R -(Maximum height of picture)24.58 E 62(scale 1)138.325 140 R -(Unit scale f)32.08 E(actor)-.1 E(\214llv)138.325 152 Q 58.9(al 0.5)-.25 -F(Def)24.58 E(ault \214ll v)-.1 E(alue)-.25 E 437.675 161.5 138.325 -161.5 DL 252.395 94.5 252.395 161.5 DL 205.735 94.5 205.735 161.5 DL(An) -72 177 Q 2.5(yo)-.15 G 2.5(ft)-2.5 G(hese v)-2.5 E -(ariables can be set with a simple assignment statement.)-.25 E -.15(Fo) -5 G 2.5(re).15 G(xample:)-2.65 E 244.8 267 MT 0 -72 RL -21.6 0 RL 0 72 -RL CL .4 LW ST 280.8 267 MT 0 -72 RL -21.6 0 RL 0 72 RL CL ST 316.8 267 -MT 0 -72 RL -21.6 0 RL 0 72 RL CL ST 352.8 267 MT 0 -72 RL -21.6 0 RL 0 -72 RL CL ST(Figure 12-1:)98.615 290 Q F1(boxht=1; boxwid=0.3; mo)2.5 E --.1(ve)-.1 G(wid=0.2; box; mo).1 E -.1(ve)-.1 G 2.5(;b).1 G(ox; mo)-2.5 -E -.1(ve)-.1 G 2.5(;b).1 G(ox; mo)-2.5 E -.1(ve)-.1 G 2.5(;b).1 G(ox;) --2.5 E F0 1.338(In GNU)97 317.6 R F1(pic)3.838 E F0 3.838(,s)C 1.338 -(etting the)-3.838 F F1(scale)3.838 E F0 -.25(va)3.837 G 1.337 -(riable re-scales all size-related state v).25 F 1.337 -(ariables so that their v)-.25 F(alues)-.25 E(remain equi)72 329.6 Q --.25(va)-.25 G(lent in the ne).25 E 2.5(wu)-.25 G(nits.)-2.5 E .087 -(The command)97 345.2 R F1 -.18(re)2.587 G(set).18 E F0 .088 -(resets all style v)2.587 F .088(ariables to their def)-.25 F 2.588 -(aults. Y)-.1 F .088(ou can gi)-1.1 F .388 -.15(ve i)-.25 H 2.588(tal) -.15 G .088(ist of v)-2.588 F .088(ariable names)-.25 F(as ar)72 357.2 Q -(guments \(optionally separated by commas\), in which case it resets on\ -ly those.)-.18 E(State v)97 372.8 Q(ariables retain their v)-.25 E -(alues across pictures until reset.)-.25 E F1 2.5(13. Expr)72 396.8 R -(essions, V)-.18 E(ariables, and Assignment)-.92 E F0 2.85(An)97 412.4 S -.35(umber is a v)-2.85 F .35(alid e)-.25 F .35(xpression, of course \(a\ -ll numbers are stored internally as \215oating-point\).)-.15 F(Deci-) -5.35 E .092(mal-point notation is acceptable; in GNU)72 424.4 R F1(gpic) -2.592 E F0 2.592(,s)C .093(cienti\214c notation in C')-2.592 F 2.593(s`) --.55 G .093(e' format \(lik)-2.593 F(e)-.1 E/F2 10/Courier@0 SF(5e-2) -2.593 E F0 2.593(\)i)C 2.593(sa)-2.593 G(ccepted.)-2.593 E(An)97 440 Q -.092(ywhere a number is e)-.15 F .091 -(xpected, the language will also accept a v)-.15 F 2.591(ariable. V)-.25 -F .091(ariables may be the b)-1.11 F(uilt-)-.2 E(in style v)72 452 Q -(ariable described in the last section, or ne)-.25 E 2.5(wv)-.25 G -(ariables created by assignment.)-2.75 E -.3(DW)97 467.6 S(B).3 E F1 -(pic)2.807 E F0 .307(supports only the ordinary assignment via)2.807 F -F1(=)2.808 E F0 2.808(,w)C .308(hich de\214nes the v)-2.808 F .308 -(ariable \(on the left side of)-.25 F .032(the equal sign\) in the curr\ -ent block if it is not already de\214ned there, and then changes the v) -72 479.6 R .031(alue \(on the right)-.25 F .031 -(side\) in the current block.)72 491.6 R .031(The v)5.031 F .031 -(ariable is not visible outside of the block.)-.25 F .031 -(This is similar to the C program-)5.031 F .019(ming language where a v) -72 503.6 R .019(ariable within a block shado)-.25 F .018(ws a v)-.25 F -.018(ariable with the same name outside of the block.)-.25 F(GNU)97 -519.2 Q F1(gpic)2.904 E F0 .404 -(supports an alternate form of assignment using)2.904 F F1(:=)2.904 E F0 -5.404(.T)C .404(he v)-5.404 F .404(ariable must already be de\214ned,) --.25 F .937(and the v)72 531.2 R .937(alue will be assigned to that v) --.25 F .937(ariable without creating a v)-.25 F .936 -(ariable local to the current block.)-.25 F -.15(Fo)5.936 G(r).15 E -.15 -(ex)72 543.2 S(ample, this).15 E F2(x=5)108 561.2 Q(y=5)108 573.2 Q([) -108 585.2 Q(x:=3)120 597.2 Q(y=3)120 609.2 Q(])108 621.2 Q -(print x " " y)108 633.2 Q F0(prints)72 654.8 Q F1 2.5(35)2.5 G F0(.) --2.5 E -1.1(Yo)97 670.4 S 2.723(uc)1.1 G .224 -(an use the height, width, radius, and x and y coordinates of an)-2.723 -F 2.724(yo)-.15 G .224(bject or corner in e)-2.724 F(xpressions.)-.15 E -(If)72 682.4 Q F1(A)2.5 E F0(is an object label or name, all the follo) -2.5 E(wing are v)-.25 E(alid:)-.25 E 0 Cg EP -%%Page: 21 21 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-21-)279.67 48 Q/F1 10/Courier@0 SF 102(A.x #) -108 84 R 6(xc)6 G(oordinate of the center of A)-6 E 84(A.ne.y #)108 96 R -6(yc)6 G(oordinate of the northeast corner of A)-6 E 90(A.wid #)108 108 -R(the width of A)6 E 96(A.ht #)108 120 R(and its height)6 E -(2nd last circle.rad)108 132 Q 6(#t)12 G -(he radius of the 2nd last circle)-6 E F0(Note the second e)72 153.6 Q -(xpression, sho)-.15 E(wing ho)-.25 E 2.5(wt)-.25 G 2.5(oe)-2.5 G -(xtract a corner coordinate.)-2.65 E .148 -(Basic arithmetic resembling those of C operators are a)97 169.2 R -.25 -(va)-.2 G(ilable;).25 E/F2 10/Times-Bold@0 SF(+)2.647 E F0(,)A F2(*) -2.647 E F0(,)A F2(-)2.647 E F0(,)A F2(/)2.647 E F0 2.647(,a)C(nd)-2.647 -E F2(%)2.647 E F0 5.147(.S)C 2.647(oi)-5.147 G(s)-2.647 E F2(^)2.647 E -F0 .147(for e)2.647 F(xponen-)-.15 E 3.307(tiation. Grouping)72 181.2 R -.807(is permitted in the usual w)3.307 F .807(ay using parentheses.)-.1 -F(GNU)5.807 E F2(gpic)3.308 E F0(allo)3.308 E .808 -(ws logical operators to)-.25 F(appear in e)72 193.2 Q(xpressions;)-.15 -E F2(!)2.5 E F0(\(logical ne)2.5 E -.05(ga)-.15 G(tion, not f).05 E -(actorial\),)-.1 E F2(&&)2.5 E F0(,)A F2 1.666(||)2.5 G F0(,)-1.666 E F2 -(==)2.5 E F0(,)A F2(!=)2.5 E F0(,)A F2(>=)2.5 E F0(,)A F2(<=)2.5 E F0(,) -A F2(<)2.5 E F0(,)A F2(>)2.5 E F0(.)A -1.11(Va)97 208.8 S .563(rious b) -1.11 F .563(uilt-in functions are supported:)-.2 F F2(sin\()3.063 E/F3 -10/Times-Italic@0 SF(x)A F2(\))A F0(,)A F2(cos\()3.063 E F3(x)A F2(\))A -F0(,)A F2(log\()3.063 E F3(x)A F2(\))A F0(,)A F2(exp\()3.063 E F3(x)A F2 -(\))A F0(,)A F2(sqrt\()3.062 E F3(x)A F2(\))A F0(,)A F2(max\()3.062 E F3 -(x)A F2(,)A F3(y)A F2(\))A F0(,)A F2(atan2\()3.062 E F3(x)A F2(,)A F3(y) -A F2(\))A F0(,)A F2(min\()72 220.8 Q F3(x)A F2(,)A F3(y)A F2(\))A F0(,)A -F2(int\()3.54 E F3(x)A F2(\))A F0(,)A F2(rand\(\))3.54 E F0 3.54(,a)C -(nd)-3.54 E F2(srand\(\))3.54 E F0 6.04(.B)C(oth)-6.04 E F2(exp)3.54 E -F0(and)3.541 E F2(log)3.541 E F0 1.041(are base 10;)3.541 F F2(int)3.541 -E F0 1.041(does inte)3.541 F 1.041(ger truncation;)-.15 F F2(rand\(\)) -3.541 E F0 .073(returns a random number in [0-1\), and)72 232.8 R F2 -(srand\(\))2.573 E F0 .073(sets the seed for a ne)2.573 F 2.573(ws)-.25 -G .073(equence of pseudo-random numbers)-2.573 F(to be returned by)72 -244.8 Q F2(rand\(\))2.5 E F0(\()2.5 E F2(srand\(\))A F0(is a GNU e)2.5 E -(xtension\).)-.15 E(GNU)97 260.4 Q F2(gpic)3.455 E F0 .955 -(also documents a one-ar)3.455 F .955(gument form or rand,)-.18 F F2 -(rand\()3.455 E F3(x)A F2(\))A F0 3.455(,w)C .955 -(hich returns a random number)-3.455 F(between 1 and)72 272.4 Q F3(x)2.5 -E F0 2.5(,b)C(ut this is deprecated and may be remo)-2.7 E -.15(ve)-.15 -G 2.5(di).15 G 2.5(naf)-2.5 G(uture v)-2.5 E(ersion.)-.15 E .072 -(The function)97 288 R F2(sprintf\(\))2.572 E F0(beha)2.572 E -.15(ve) --.2 G 2.571(sl).15 G(ik)-2.571 E 2.571(eaC)-.1 G F3(sprintf)A F0 .071 -(\(3\) function that only tak)1.96 F .071(es %, %e, %f, and %g format) --.1 F(strings.)72 300 Q F2 2.5(14. Macr)72 324 R(os)-.18 E F0 -1.1(Yo)97 -339.6 S 2.999(uc)1.1 G .499(an de\214ne macros in)-2.999 F F2(pic)2.999 -E F0 5.499(.T)C .499(his is useful for diagrams with repetiti)-5.499 F -.8 -.15(ve p)-.25 H 3(arts. In).15 F .5(conjunction with)3 F -(the scope rules for block composites, it ef)72 351.6 Q(fecti)-.25 E --.15(ve)-.25 G(ly gi).15 E -.15(ve)-.25 G 2.5(sy).15 G -(ou the ability to write functions.)-2.5 E(The syntax is)97 367.2 Q F2 -(de\214ne)108 385.2 Q F3(name)6 E F2({)6 E F3 -.37(re)6 G(placement te) -.37 E(xt)-.2 E F2(})2.5 E F0 .218(This de\214nes)72 406.8 R F3(name) -2.718 E F0 .218(as a macro to be replaced by the replacement te)2.718 F -.218(xt \(not including the braces\).)-.15 F .217(The macro)5.217 F -(may be called as)72 418.8 Q F3(name)108 436.8 Q F2(\()A F3(ar)A(g1, ar) --.37 E 1.666(g2, .)-.37 F -3.332 1.666(.. a)1.666 H -.37(rg)-1.666 G(n) -.37 E F2(\))A F0(The ar)72 458.4 Q(guments \(if an)-.18 E -(y\) will be substituted for tok)-.15 E(ens)-.1 E F2($1)2.5 E F0(,)A F2 -($2)2.5 E F0 1.666(...)2.5 G F2($n).834 E F0 -(appearing in the replacement te)2.5 E(xt.)-.15 E(As an e)97 474 Q -(xample of macro use, consider this:)-.15 E 0 Cg EP -%%Page: 22 22 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-22-)279.67 48 Q/F1 9/Courier@0 SF(.PS)108 83 Q -5.4(#P)108 94 S(lot a single jumper in a box, $1 is the on-off state.) --5.4 E(define jumper { [)108 105 Q(shrinkfactor = 0.8;)129.6 116 Q -(Outer: box invis wid 0.45 ht 1;)129.6 127 Q 5.4(#C)129.6 149 S -(ount on end ] to reset these)-5.4 E -(boxwid = Outer.wid * shrinkfactor / 2;)129.6 160 Q 5.4(boxht =)129.6 -171 R 5.4(Outer.ht *)5.4 F(shrinkfactor / 2;)5.4 E -(box fill \(!$1\) with .s at center of Outer;)129.6 193 Q -(box fill \($1\))129.6 204 Q(with .n at center of Outer;)10.8 E 5.4(]}) -108 215 S 5.4(#P)108 237 S(lot a block of six jumpers.)-5.4 E -(define jumperblock {)108 248 Q(jumper\($1\);)129.6 259 Q(jumper\($2\);) -129.6 270 Q(jumper\($3\);)129.6 281 Q(jumper\($4\);)129.6 292 Q -(jumper\($5\);)129.6 303 Q(jumper\($6\);)129.6 314 Q 5.4(jwidth =)129.6 -336 R(last [].Outer.wid;)5.4 E(jheight = last [].Outer.ht;)129.6 347 Q -(box with .nw at 6th last [].nw wid 6*jwidth ht jheight;)129.6 369 Q 5.4 -(#U)129.6 391 S(se {} to avoid changing position from last box draw.) --5.4 E 5.4(#T)129.6 402 S -(his is necessary so move in any direction will work as expected)-5.4 E -({"Jumpers in state $1$2$3$4$5$6" at last box .s + \(0,-0.2\);})129.6 -413 Q(})108 424 Q 5.4(#S)108 446 S(ample macro invocations.)-5.4 E -(jumperblock\(1,1,0,0,1,0\);)108 457 Q(move;)108 468 Q -(jumperblock\(1,0,1,0,1,1\);)108 479 Q(.PE)108 490 Q F0 -(It yields the follo)72 511.6 Q(wing:)-.25 E 107.28 565.6 MT 0 -28.8 RL --12.96 0 RL 0 28.8 RL CL 1 Fg 107.28 565.6 MT 0 -28.8 RL -12.96 0 RL 0 -28.8 RL CL .4 LW 0 Cg ST 107.28 594.4 MT 0 -28.8 RL -12.96 0 RL 0 28.8 -RL CL 0 Fg 107.28 594.4 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Cg ST -139.68 565.6 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 1 Fg 139.68 565.6 MT -0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Cg ST 139.68 594.4 MT 0 -28.8 RL --12.96 0 RL 0 28.8 RL CL 0 Fg 139.68 594.4 MT 0 -28.8 RL -12.96 0 RL 0 -28.8 RL CL 0 Cg ST 172.08 565.6 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 0 -Fg 172.08 565.6 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Cg ST 172.08 -594.4 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 1 Fg 172.08 594.4 MT 0 --28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Cg ST 204.48 565.6 MT 0 -28.8 RL --12.96 0 RL 0 28.8 RL CL 0 Fg 204.48 565.6 MT 0 -28.8 RL -12.96 0 RL 0 -28.8 RL CL 0 Cg ST 204.48 594.4 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 1 -Fg 204.48 594.4 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Cg ST 236.88 -565.6 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 1 Fg 236.88 565.6 MT 0 --28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Cg ST 236.88 594.4 MT 0 -28.8 RL --12.96 0 RL 0 28.8 RL CL 0 Fg 236.88 594.4 MT 0 -28.8 RL -12.96 0 RL 0 -28.8 RL CL 0 Cg ST 269.28 565.6 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 0 -Fg 269.28 565.6 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Cg ST 269.28 -594.4 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 1 Fg 269.28 594.4 MT 0 --28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Cg ST 279 601.6 MT 0 -72 RL -194.4 0 -RL 0 72 RL CL ST(Jumpers in state 110010)133.33 618.2 Q 319.68 565.6 MT -0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 1 Fg 319.68 565.6 MT 0 -28.8 RL --12.96 0 RL 0 28.8 RL CL 0 Cg ST 319.68 594.4 MT 0 -28.8 RL -12.96 0 RL -0 28.8 RL CL 0 Fg 319.68 594.4 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 0 -Cg ST 352.08 565.6 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Fg 352.08 -565.6 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Cg ST 352.08 594.4 MT 0 --28.8 RL -12.96 0 RL 0 28.8 RL CL 1 Fg 352.08 594.4 MT 0 -28.8 RL -12.96 -0 RL 0 28.8 RL CL 0 Cg ST 384.48 565.6 MT 0 -28.8 RL -12.96 0 RL 0 28.8 -RL CL 1 Fg 384.48 565.6 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Cg ST -384.48 594.4 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Fg 384.48 594.4 MT -0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Cg ST 416.88 565.6 MT 0 -28.8 RL --12.96 0 RL 0 28.8 RL CL 0 Fg 416.88 565.6 MT 0 -28.8 RL -12.96 0 RL 0 -28.8 RL CL 0 Cg ST 416.88 594.4 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 1 -Fg 416.88 594.4 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Cg ST 449.28 -565.6 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 1 Fg 449.28 565.6 MT 0 --28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Cg ST 449.28 594.4 MT 0 -28.8 RL --12.96 0 RL 0 28.8 RL CL 0 Fg 449.28 594.4 MT 0 -28.8 RL -12.96 0 RL 0 -28.8 RL CL 0 Cg ST 481.68 565.6 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 1 -Fg 481.68 565.6 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Cg ST 481.68 -594.4 MT 0 -28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Fg 481.68 594.4 MT 0 --28.8 RL -12.96 0 RL 0 28.8 RL CL 0 Cg ST 491.4 601.6 MT 0 -72 RL -194.4 -0 RL 0 72 RL CL ST(Jumpers in state 101011)345.73 618.2 Q -(Figure 14-1: Sample use of a macro)216.345 639 Q .644(This macro e)72 -666.6 R .644(xample illustrates ho)-.15 F 3.144(wy)-.25 G .645 -(ou can combine [], brace grouping, and v)-3.144 F .645 -(ariable assignment to write)-.25 F(true functions.)72 678.6 Q .252 -(One detail the e)97 694.2 R .252(xample abo)-.15 F .552 -.15(ve d)-.15 -H .252(oes not illustrate is the f).15 F .252(act that macro ar)-.1 F -.251(gument parsing is not tok)-.18 F(en-)-.1 E 2.708(oriented. If)72 -706.2 R .208(you call)2.708 F/F2 10/Times-Bold@0 SF(jumper\( 1 \))2.709 -E F0 2.709(,t)C .209(he v)-2.709 F .209(alue of $1 will be)-.25 F F2 2.5 -("1")2.709 G F0 5.209(.Y)-2.5 G .209(ou could e)-6.309 F -.15(ve)-.25 G -2.709(nc).15 G(all)-2.709 E F2(jumper\(big string\))2.709 E F0(to)2.709 -E(gi)72 718.2 Q .3 -.15(ve $)-.25 H 2.5(1t).15 G(he v)-2.5 E(alue)-.25 E -F2("big string")2.5 E F0(.)A 0 Cg EP -%%Page: 23 23 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-23-)279.67 48 Q .273(If you w)97 84 R .273 -(ant to pass in a coordinate pair)-.1 F 2.773(,y)-.4 G .273(ou can a) --2.773 F -.2(vo)-.2 G .272 -(id getting tripped up by the comma by wrapping).2 F -(the pair in parentheses.)72 96 Q(Macros persist through pictures.)97 -111.6 Q 1.6 -.8(To u)5 H(nde\214ne a macro, say).8 E/F1 10/Times-Bold@0 -SF(undef)2.5 E/F2 10/Times-Italic@0 SF(name)2.5 E F0 2.5(;f)C(or e)-2.5 -E(xample,)-.15 E/F3 10/Courier@0 SF(undef jumper)108 129.6 Q -(undef jumperblock)108 141.6 Q F0 -.1(wo)72 163.2 S -(uld unde\214ne the tw).1 E 2.5(om)-.1 G(acros in the jumper block e) --2.5 E(xample.)-.15 E F1 2.5(15. Import/Export)72 187.2 R(Commands)2.5 E -F0(Commands that import or e)97 202.8 Q(xport data between)-.15 E F1 -(pic)2.5 E F0(and its en)2.5 E(vironment are described here.)-.4 E F1 -2.5(15.1. File)72 226.8 R(and T)2.5 E(able Insertion)-.92 E F0 -(The statement)97 242.4 Q F3(copy)108 260.4 Q F2(\214lename)2.5 E F0 -.596(inserts the contents of)72 282 R F2(\214lename)3.096 E F0 .596 -(in the)3.096 F F1(pic)3.096 E F0 .596(input stream.)3.096 F(An)5.596 E -(y)-.15 E F1(.PS)3.096 E F0(/)A F1(.PE)A F0 .597 -(pair in the \214le will be ignored.)3.096 F -1.1(Yo)5.597 G(u)1.1 E -(can use this to include pre-generated images.)72 294 Q 2.5(Av)97 309.6 -S(ariant of this statement replicates the)-2.75 E F1(copy thru)2.5 E F0 -(feature of)2.5 E F2(gr)2.5 E(ap)-.15 E F0 2.5(\(1\). The)B(call)2.5 E -F3(copy)108 327.6 Q F2(\214lename)2.5 E F3(thru)2.5 E F2(macr)2.5 E(o) --.45 E F0(calls)72 349.2 Q F2(macr)2.85 E(o)-.45 E F0 .35 -(\(which may be either a name or replacement te)2.85 F .349 -(xt\) on the ar)-.15 F .349(guments obtained by breaking each)-.18 F -.636(line of the \214le into blank-separated \214elds.)72 361.2 R .636 -(The macro may ha)5.636 F .936 -.15(ve u)-.2 H 3.136(pt).15 G 3.136(o9a) --3.136 G -.18(rg)-3.136 G 3.136(uments. The).18 F .636(replacement te) -3.136 F(xt)-.15 E -(may be delimited by braces or by a pair of instances of an)72 373.2 Q -2.5(yc)-.15 G(haracter not appearing in the rest of the te)-2.5 E(xt.) --.15 E(If you write)97 388.8 Q F3 -3.5(copy thru)108 406.8 R F2(macr)2.5 -E(o)-.45 E F0(omitting the \214lename, lines to be parsed are tak)72 -428.4 Q(en from the input source up to the ne)-.1 E(xt)-.15 E F1(.PE)2.5 -E F0(.)A 1.507(In either of the last tw)97 444 R(o)-.1 E F1(copy)4.007 E -F0 1.507(commands, GNU)4.007 F F1(gpic)4.007 E F0 1.507 -(permits a trailing `)4.007 F F1(until)A F2(wor)4.007 E(d)-.37 E F0 -4.007('c).77 G 1.507(lause to be)-4.007 F .624 -(added which terminates the cop)72 456 R 3.124(yw)-.1 G .624 -(hen the \214rst w)-3.124 F .624(ord matches the ar)-.1 F .625 -(gument \(the def)-.18 F .625(ault beha)-.1 F .625(vior is there-)-.2 F -(fore equi)72 468 Q -.25(va)-.25 G(lent to).25 E F1(until .PE)2.5 E F0 -(\).)A(Accordingly)97 483.6 Q 2.5(,t)-.65 G(he command)-2.5 E F3(.PS)122 -499.2 Q(copy thru % circle at \($1,$2\) % until "END")122 511.2 Q 6(12) -122 523.2 S 6(34)122 535.2 S 6(56)122 547.2 S(END)122 559.2 Q(box)122 -571.2 Q(.PE)122 583.2 Q F0(is equi)72 598.8 Q -.25(va)-.25 G(lent to).25 -E F3(.PS)122 614.4 Q(circle at \(1,2\))122 626.4 Q(circle at \(3,4\))122 -638.4 Q(circle at \(5,6\))122 650.4 Q(box)122 662.4 Q(.PE)122 674.4 Q F1 -2.5(15.2. Deb)72 698.4 R(ug Messages)-.2 E F0 .89(The command)97 714 R -F1(print)3.39 E F0 .89(accepts an)3.39 F 3.39(yn)-.15 G .89(umber of ar) --3.39 F .89(guments, concatenates their output forms, and writes)-.18 F -(the result to standard error)72 726 Q 5(.E)-.55 G(ach ar)-5 E -(gument must be an e)-.18 E(xpression, a position, or a te)-.15 E -(xt string.)-.15 E 0 Cg EP -%%Page: 24 24 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-24-)279.67 48 Q/F1 10/Times-Bold@0 SF 2.5 -(15.3. Escape)72 84 R(to P)2.5 E(ost-Pr)-.2 E(ocessor)-.18 E F0 -(If you write)97 99.6 Q F1(command)108 117.6 Q/F2 10/Times-Italic@0 SF -(ar)2.5 E(g)-.37 E F0 1.666(...)1.666 G F1(pic)72 139.2 Q F0 1.547 -(concatenates the ar)4.047 F 1.547 -(guments and pass them through as a line to trof)-.18 F 4.047(fo)-.25 G -4.047(rT)-4.047 G(E)-5.714 2.24 M 4.047(X. Each)-1.25 -2.24 N F2(ar) -4.048 E(g)-.37 E F0 1.548(must be an)4.048 F -.15(ex)72 151.2 S .005 -(pression, a position, or te).15 F 2.505(xt. This)-.15 F .005 -(has a similar ef)2.505 F .005(fect to a line be)-.25 F .005 -(ginning with)-.15 F F1(.)2.505 E F0(or)5.005 E F1(\\)2.505 E F0 2.505 -(,b)1.666 G .005(ut allo)-2.705 F .005(ws the v)-.25 F(alues)-.25 E -(of v)72 163.2 Q(ariables to be passed through.)-.25 E -.15(Fo)72 178.8 -S 2.5(re).15 G(xample,)-2.65 E/F3 10/Courier@0 SF(.PS)108 196.8 Q 6(x=1) -108 208.8 S(4)-6 E(command ".ds string x is " x ".")108 220.8 Q(.PE)108 -232.8 Q(\\*[string])108 244.8 Q F0(prints)72 266.4 Q F3 6(xi)108 284.4 S -6(s1)-6 G(4.)-6 E F1 2.5(15.4. Executing)72 314.4 R(Shell Commands)2.5 E -F0(The command)97 330 Q F3 -3.5(sh {)108 348 R F2(anything)2.5 E 1.666 -(...)-.15 G F3(}).834 E F0(macro-e)72 369.6 Q 1.367(xpands the te)-.15 F -1.367(xt in braces, then e)-.15 F -.15(xe)-.15 G 1.367 -(cutes it as a shell command.).15 F 1.367 -(This could be used to generate)6.367 F .756 -(images or data tables for later inclusion.)72 381.6 R .756 -(The delimiters sho)5.756 F .756(wn as {} here may also be tw)-.25 F -3.255(oc)-.1 G .755(opies of an)-3.255 F(y)-.15 E 1.397 -(one character not present in the shell command te)72 393.6 R 3.897 -(xt. In)-.15 F 1.397(either case, the body may contain balanced {})3.897 -F 2.5(pairs. Strings)72 405.6 R -(in the body may contain balanced or unbalanced braces in an)2.5 E 2.5 -(yc)-.15 G(ase.)-2.5 E F1 2.5(16. Contr)72 429.6 R(ol-\215o)-.18 E 2.5 -(wc)-.1 G(onstructs)-2.5 E F0(The)97 445.2 Q F1(pic)2.5 E F0 -(language pro)2.5 E(vides conditionals and looping.)-.15 E -.15(Fo)5 G -2.5(re).15 G(xample,)-2.65 E F3(pi = atan2\(0,-1\);)108 463.2 Q -(for i = 0 to 2 * pi by 0.1 do {)108 475.2 Q("-" at \(i/2, 0\);)132 -487.2 Q("." at \(i/2, sin\(i\)/2\);)132 499.2 Q -(":" at \(i/2, cos\(i\)/2\);)132 511.2 Q(})108 523.2 Q F0 -(which yields this:)72 544.8 Q(-)174.735 601 Q(.)175.15 601 Q(:)175.01 -565 Q(-)178.335 601 Q(.)178.75 597.4 Q(:)178.61 565.144 Q(-)181.935 601 -Q(.)182.35 593.872 Q(:)182.21 565.72 Q(-)185.535 601 Q(.)185.95 590.344 -Q(:)185.81 566.584 Q(-)189.135 601 Q(.)189.55 586.96 Q(:)189.41 567.808 -Q(-)192.735 601 Q(.)193.15 583.72 Q(:)193.01 569.392 Q(-)196.335 601 Q -(.)196.75 580.696 Q(:)196.61 571.264 Q(-)199.935 601 Q(.)200.35 577.816 -Q(:)200.21 573.496 Q(-)203.535 601 Q(.)203.95 575.152 Q(:)203.81 575.944 -Q(-)207.135 601 Q(.)207.55 572.776 Q(:)207.41 578.608 Q(-)210.735 601 Q -(.)211.15 570.688 Q(:)211.01 581.56 Q(-)214.335 601 Q(.)214.75 568.888 Q -(:)214.61 584.656 Q(-)217.935 601 Q(.)218.35 567.448 Q(:)218.21 587.968 -Q(-)221.535 601 Q(.)221.95 566.296 Q(:)221.81 591.352 Q(-)225.135 601 Q -(.)225.55 565.504 Q(:)225.41 594.88 Q(-)228.735 601 Q(.)229.15 565.072 Q -(:)229.01 598.48 Q(-)232.335 601 Q(.)232.75 565 Q(:)232.61 602.08 Q(-) -235.935 601 Q(.)236.35 565.288 Q(:)236.21 605.608 Q(-)239.535 601 Q(.) -239.95 565.936 Q(:)239.81 609.208 Q(-)243.135 601 Q(.)243.55 566.944 Q -(:)243.41 612.664 Q(-)246.735 601 Q(.)247.15 568.24 Q(:)247.01 615.976 Q -(-)250.335 601 Q(.)250.75 569.896 Q(:)250.61 619.144 Q(-)253.935 601 Q -(.)254.35 571.912 Q(:)254.21 622.168 Q(-)257.535 601 Q(.)257.95 574.144 -Q(:)257.81 624.976 Q(-)261.135 601 Q(.)261.55 576.664 Q(:)261.41 627.568 -Q(-)264.735 601 Q(.)265.15 579.472 Q(:)265.01 629.872 Q(-)268.335 601 Q -(.)268.75 582.424 Q(:)268.61 631.816 Q(-)271.935 601 Q(.)272.35 585.592 -Q(:)272.21 633.544 Q(-)275.535 601 Q(.)275.95 588.976 Q(:)275.81 634.912 -Q(-)279.135 601 Q(.)279.55 592.36 Q(:)279.41 635.92 Q(-)282.735 601 Q(.) -283.15 595.888 Q(:)283.01 636.64 Q(-)286.335 601 Q(.)286.75 599.488 Q(:) -286.61 637 Q(-)289.935 601 Q(.)290.35 603.088 Q(:)290.21 636.928 Q(-) -293.535 601 Q(.)293.95 606.688 Q(:)293.81 636.568 Q(-)297.135 601 Q(.) -297.55 610.216 Q(:)297.41 635.776 Q(-)300.735 601 Q(.)301.15 613.6 Q(:) -301.01 634.696 Q(-)304.335 601 Q(.)304.75 616.912 Q(:)304.61 633.256 Q -(-)307.935 601 Q(.)308.35 620.08 Q(:)308.21 631.528 Q(-)311.535 601 Q(.) -311.95 623.032 Q(:)311.81 629.44 Q(-)315.135 601 Q(.)315.55 625.768 Q(:) -315.41 627.136 Q(-)318.735 601 Q(.)319.15 628.216 Q(:)319.01 624.544 Q -(-)322.335 601 Q(.)322.75 630.448 Q(:)322.61 621.664 Q(-)325.935 601 Q -(.)326.35 632.392 Q(:)326.21 618.64 Q(-)329.535 601 Q(.)329.95 633.976 Q -(:)329.81 615.4 Q(-)333.135 601 Q(.)333.55 635.272 Q(:)333.41 612.088 Q -(-)336.735 601 Q(.)337.15 636.208 Q(:)337.01 608.56 Q(-)340.335 601 Q(.) -340.75 636.784 Q(:)340.61 605.032 Q(-)343.935 601 Q(.)344.35 637 Q(:) -344.21 601.432 Q(-)347.535 601 Q(.)347.95 636.856 Q(:)347.81 597.832 Q -(-)351.135 601 Q(.)351.55 636.352 Q(:)351.41 594.304 Q(-)354.735 601 Q -(.)355.15 635.488 Q(:)355.01 590.776 Q(-)358.335 601 Q(.)358.75 634.336 -Q(:)358.61 587.392 Q(-)361.935 601 Q(.)362.35 632.824 Q(:)362.21 584.152 -Q(-)365.535 601 Q(.)365.95 630.952 Q(:)365.81 581.056 Q(-)369.135 601 Q -(.)369.55 628.792 Q(:)369.41 578.176 Q(-)372.735 601 Q(.)373.15 626.416 -Q(:)373.01 575.512 Q(-)376.335 601 Q(.)376.75 623.752 Q(:)376.61 573.064 -Q(-)379.935 601 Q(.)380.35 620.8 Q(:)380.21 570.976 Q(-)383.535 601 Q(.) -383.95 617.704 Q(:)383.81 569.104 Q(-)387.135 601 Q(.)387.55 614.464 Q -(:)387.41 567.592 Q(-)390.735 601 Q(.)391.15 611.08 Q(:)391.01 566.44 Q -(-)394.335 601 Q(.)394.75 607.552 Q(:)394.61 565.576 Q(-)397.935 601 Q -(.)398.35 604.024 Q(:)398.21 565.144 Q(Figure 16-1: Plotting with a) -214.79 657.8 Q F1 -.25(fo)2.5 G(r).25 E F0(loop)2.5 E(The syntax of the) -72 685.4 Q F1 -.25(fo)2.5 G(r).25 E F0(statement is:)2.5 E F1 -.25(fo) -108 703.4 S(r).25 E F2(variable)2.5 E F1(=)2.5 E F2 -.2(ex)2.5 G(pr1).2 -E F1(to)2.5 E F2 -.2(ex)2.5 G(pr2).2 E F0([)2.52 E F1(by)A F0([)2.5 E F1 -(*)A F0(])A F2 -.2(ex)C(pr3).2 E F0(]).15 E F1(do)2.5 E F2 2.5(Xb)2.5 G -(ody X)-2.5 E F0 .847(The semantics are as follo)72 721.4 R 3.347 -(ws: Set)-.25 F F2(variable)3.347 E F0(to)3.347 E F2 -.2(ex)3.347 G(pr1) -.2 E F0 5.847(.W)C .847(hile the v)-5.847 F .847(alue of)-.25 F F2 -(variable)3.347 E F0 .846(is less than or equal to)3.347 F 0 Cg EP -%%Page: 25 25 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-25-)279.67 48 Q/F1 10/Times-Italic@0 SF -.2(ex) -72 84 S(pr2).2 E F0 3.406(,d)C(o)-3.406 E F1(body)3.406 E F0 .906 -(and increment)3.406 F F1(variable)3.406 E F0(by)3.406 E F1 -.2(ex)3.406 -G(pr3).2 E F0 3.406(;i)C(f)-3.406 E/F2 10/Times-Bold@0 SF(by)3.406 E F0 -.906(is not gi)3.406 F -.15(ve)-.25 G .906(n, increment).15 F F1 -(variable)3.407 E F0 .907(by 1.)3.407 F(If)5.907 E F1 -.2(ex)3.407 G -(pr3).2 E F0(is)3.407 E(pre\214x)72 96 Q .315(ed by)-.15 F F2(*)2.815 E -F0(then)2.815 E F1(variable)2.815 E F0 .314 -(will instead be multiplied by)2.814 F F1 -.2(ex)2.814 G(pr3).2 E F0 -5.314(.T)C .314(he v)-5.314 F .314(alue of)-.25 F F1 -.2(ex)2.814 G(pr3) -.2 E F0 .314(can be ne)2.814 F -.05(ga)-.15 G(ti).05 E .614 -.15(ve f) --.25 H .314(or the).15 F(additi)72 108 Q 1.55 -.15(ve c)-.25 H(ase;).15 -E F1(variable)3.75 E F0 1.251 -(is then tested whether it is greater than or equal to)3.75 F F1 -.2(ex) -3.751 G(pr2).2 E F0 6.251(.F)C 1.251(or the multiplicati)-6.401 F -.15 -(ve)-.25 G(case,)72 120 Q F1 -.2(ex)3.118 G(pr3).2 E F0 .618 -(must be greater than zero.)3.118 F .617(If the constraints aren')5.618 -F 3.117(tm)-.18 G .617(et, the loop isn')-3.117 F 3.117(te)-.18 G -.15 -(xe)-3.267 G(cuted.).15 E F1(X)5.617 E F0 .617(can be an)3.117 F(y)-.15 -E(character not occurring in)72 132 Q F1(body)2.5 E F0 2.5(;o)C 2.5(rt) --2.5 G(he tw)-2.5 E(o)-.1 E F1(X)2.5 E F0 2.5(sm).94 G -(ay be paired braces \(as in the)-2.5 E F2(sh)2.5 E F0(command\).)2.5 E -(The syntax of the)97 147.6 Q F2(if)2.5 E F0(statement is as follo)2.5 E -(ws:)-.25 E F2(if)108 165.6 Q F1 -.2(ex)2.5 G(pr).2 E F2(then)2.5 E F1 -2.5(Xi)2.5 G(f-true X)-2.5 E F0([)2.5 E F2(else)A F1 2.5(Yi)2.5 G -(f-false Y)-2.5 E F0(])1.27 E .379(Its semantics are as follo)72 183.6 R -.379(ws: Ev)-.25 F(aluate)-.25 E F1 -.2(ex)2.879 G(pr).2 E F0 2.879(;i)C -2.879(fi)-2.879 G 2.879(ti)-2.879 G 2.879(sn)-2.879 G .38 -(on-zero then do)-2.879 F F1(if-true)2.88 E F0 2.88(,o)C .38 -(therwise do)-2.88 F F1(if-false)2.88 E F0(.)A F1(X)5.38 E F0 .38 -(can be)2.88 F(an)72 195.6 Q 2.5(yc)-.15 G(haracter not occurring in) --2.5 E F1(if-true)2.5 E F0(.)A F1(Y)5 E F0(can be an)2.5 E 2.5(yc)-.15 G -(haracter not occurring in)-2.5 E F1(if-false)2.5 E F0(.)A .41 -(Eithe or both of the)97 211.2 R F1(X)2.91 E F0(or)2.91 E F1(Y)2.91 E F0 -.409 -(pairs may instead be balanced pairs of braces \({ and }\) as in the) -2.91 F F2(sh)2.909 E F0(com-)2.909 E 3.57(mand. In)72 223.2 R 1.07 -(either case, the)3.57 F F1(if-true)3.57 E F0 1.071 -(may contain balanced pairs of braces.)3.57 F 1.071 -(None of these delimiters will be)6.071 F(seen inside strings.)72 235.2 -Q .464(All the usual relational operators my be used in conditional e)97 -250.8 R(xpressions;)-.15 E F2(!)2.963 E F0 .463(\(logical ne)2.963 F --.05(ga)-.15 G .463(tion, not f).05 F(ac-)-.1 E(torial\),)72 262.8 Q F2 -(&&)2.5 E F0(,)A F2 1.666(||)2.5 G F0(,)-1.666 E F2(==)2.5 E F0(,)A F2 -(!=)2.5 E F0(,)A F2(>=)2.5 E F0(,)A F2(<=)2.5 E F0(,)A F2(<)2.5 E F0(,)A -F2(>)2.5 E F0(.)A .57(String comparison is also supported using)97 278.4 -R F2(==)3.07 E F0(and)3.07 E F2(!=)3.07 E F0 5.57(.S)C .57 -(tring comparisons may need to be parenthe-)-5.57 F(sized to a)72 290.4 -Q -.2(vo)-.2 G(id syntactic ambiguities.).2 E F2 2.5(17. Interface)72 -314.4 R 1.84 -.92(To [)2.5 H(gt]r).92 E(off)-.18 E F0 .276 -(The output of)97 330 R F2(pic)2.776 E F0(is)2.776 E F2([gt]r)2.776 E -(off)-.18 E F0(dra)2.776 E .276(wing commands.)-.15 F .276(The GNU)5.276 -F F1(gpic)2.776 E F0 .275(\(1\) command w).31 F .275 -(arns that it relies on)-.1 F(dra)72 342 Q(wing e)-.15 E -(xtensions present in)-.15 E F1(gr)2.5 E(of)-.45 E(f)-.18 E F0 -(\(1\) that are not present in)1.96 E F1(tr)2.5 E(of)-.45 E(f)-.18 E F0 -(\(1\).)1.96 E F2 2.5(17.1. Scaling)72 366 R(Ar)2.5 E(guments)-.1 E F0 -.774(The D)97 381.6 R(WB)-.3 E F1(pic)3.274 E F0 .774 -(\(1\) program will accept one or tw).31 F 3.275(oa)-.1 G -.18(rg)-3.275 -G .775(uments to).18 F F2(.PS)3.275 E F0 3.275(,w)C .775 -(hich is interpreted as a width)-3.275 F .267 -(and height in inches to which the results of)72 393.6 R F1(pic)2.766 E -F0 .266 -(\(1\) should be scaled \(width and height scale independently\).).31 F -.127(If there is only one ar)72 405.6 R .127(gument, it is interpreted \ -as a width to scale the picture to, and height will be scaled by)-.18 F -(the same proportion.)72 417.6 Q(GNU)97 433.2 Q F2(gpic)3.283 E F0 .783 -(is less general; it will accept a single width to scale to, or a zero \ -width and a maximum)3.283 F(height to scale to.)72 445.2 Q -.4(Wi)5 G -(th tw).4 E 2.5(on)-.1 G(on-zero ar)-2.5 E -(guments, it will scale to the maximum height.)-.18 E F2 2.5(17.2. Ho)72 -469.2 R 2.5(wS)-.1 G(caling is Handled)-2.5 E F0(When)97 484.8 Q F2(pic) -3.131 E F0 .631(processes a picture description on input, it passes) -3.131 F F2(.PS)3.131 E F0(and)3.131 E F2(.PE)3.131 E F0 .632 -(through to the postproces-)3.132 F(sor)72 496.8 Q 5.393(.T)-.55 G(he) --5.393 E F2(.PS)2.893 E F0 .393(gets decorated with tw)2.893 F 2.893(on) --.1 G .393(umeric ar)-2.893 F .393 -(guments which are the X and Y dimensions of the picture)-.18 F -(in inches.)72 508.8 Q(The post-processor can use these to reserv)5 E -2.5(es)-.15 G(pace for the picture and center it.)-2.5 E -(The GNU incarnation of the)97 524.4 Q F2(ms)2.5 E F0 -(macro package, for e)2.5 E(xample, includes the follo)-.15 E -(wing de\214nitions:)-.25 E/F3 9/Courier@0 SF(.de PS)108 541.4 Q(.br)108 -552.4 Q(.sp \\\\n[DD]u)108 563.4 Q(.ie \\\\n[.$]<2 .@error bad argument\ -s to PS \(not preprocessed with pic?\))108 574.4 Q(.el \\{\\)108 585.4 Q -19.6(.d)108 596.4 S(s@need \(u;\\\\$1\)+1v)-19.6 E 19.6(.i)108 607.4 S -5.4(n+)-19.6 G(\(u;\\\\n[.l]-\\\\n[.i]-\\\\$2/2>?0\))-5.4 E(.\\})108 -618.4 Q(..)108 629.4 Q(.de PE)108 640.4 Q(.par@reset)108 651.4 Q -(.sp \\\\n[DD]u+.5m)108 662.4 Q(..)108 673.4 Q F0(Equi)72 695 Q -.25(va) --.25 G 1.453(lent de\214nition will be supplied by GNU).25 F F1(pic) -3.953 E F0 1.454(\(1\) if you use the \255mpic option; this should mak) -.31 F 3.954(ei)-.1 G(t)-3.954 E(usable with macro pages other than)72 -707 Q F1(ms)2.5 E F0(\(1\).).27 E 0 Cg EP -%%Page: 26 26 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-26-)279.67 48 Q(If)97 84 Q/F1 10/Times-Bold@0 -SF(.PF)4.787 E F0 2.287(is used instead of)4.787 F F1(.PE)4.787 E F0 -4.786(,t)C(he)-4.786 E F1(tr)4.786 E(off)-.18 E F0 2.286 -(position is restored to what it w)4.786 F 2.286 -(as at the picture start)-.1 F(\(K)72 96 Q -(ernighan notes that the F stands for \231\215yback\232\).)-.25 E -(The in)97 111.6 Q -.2(vo)-.4 G(cation).2 E F1(.PS <)108 129.6 Q/F2 10 -/Times-Italic@0 SF(\214le)1.91 E F0(causes the contents of)72 151.2 Q F2 -(\214le)2.5 E F0(to replace the)2.5 E F1(.PS)2.5 E F0 2.5(line. This)2.5 -F(feature is deprecated; use `)2.5 E F1(copy)A F2(\214le)2.5 E F0 2.5 -('i)C(nstead\).)-2.5 E F1 2.5(17.3. PIC)72 175.2 R(and [gt]r)2.5 E -(off commands)-.18 E F0 .351(By def)97 190.8 R .351 -(ault, input lines that be)-.1 F .351 -(gin with a period are passed to the postprocessor)-.15 F 2.851(,e)-.4 G -.352(mbedded at the cor)-2.851 F(-)-.2 E .662 -(responding point in the output.)72 202.8 R .662 -(Messing with horizontal or v)5.662 F .662(ertical spacing is an ob)-.15 -F .661(vious recipe for b)-.15 F(ugs,)-.2 E -.2(bu)72 214.8 S 2.5(tp).2 -G(oint size and font changes will usually be safe.)-2.5 E .764 -(Point sizes and font changes are also safe within te)97 230.4 R .765 -(xt strings, as long as the)-.15 F 3.265(ya)-.15 G .765 -(re undone before the)-3.265 F(end of string.)72 242.4 Q(The state of)97 -258 Q F1([gt]r)2.5 E(off)-.18 E F0 1.1 -.55('s \214)D -(ll mode is preserv).55 E(ed across pictures.)-.15 E F1 2.5(17.4. PIC)72 -282 R(and EQN)2.5 E F0 .543(The K)97 297.6 R .543(ernighan paper notes \ -that there is a subtle problem with complicated equations inside)-.25 F -F1(pic)3.042 E F0(pic-)3.042 E 1.042(tures; the)72 309.6 R 3.542(yc)-.15 -G 1.042(ome out wrong if)-3.542 F F2(eqn)3.543 E F0 1.043 -(\(1\) has to lea).24 F 1.343 -.15(ve ex)-.2 H 1.043(tra v).15 F 1.043 -(ertical space for the equation.)-.15 F 1.043(If your equation)6.043 F -(in)72 321.6 Q -.2(vo)-.4 G(lv).2 E .906 -(es more than subscripts and superscripts, you must add to the be)-.15 F -.905(ginning of each equation the e)-.15 F(xtra)-.15 E(information)72 -333.6 Q F1(space 0)2.5 E F0 5(.H)C 2.5(eg)-5 G -2.15 -.25(iv e)-2.5 H -2.5(st).25 G(he follo)-2.5 E(wing e)-.25 E(xample:)-.15 E/F3 10 -/Courier@0 SF(arrow)108 351.6 Q -(box "$space 0 {H\( omega \)} over {1 - H\( omega \)}$")108 363.6 Q -(arrow)108 375.6 Q 261 429.6 MT -7.2 1.8 RL 0 -3.6 RL CL 0 Fg 261 429.6 -MT -7.2 1.8 RL 0 -3.6 RL CL .1 LW 0 Cg ST .4 LW 253.8 429.6 225 429.6 DL -315 447.6 MT 0 -36 RL -54 0 RL 0 36 RL CL ST F2(H)277.365 424.8 Q F0(\() -.95 E/F4 10/Symbol-Slanted SF(w)-.35 E F0(\))1.26 E(1)-29.875 14 M/F5 10 -/Symbol SF(-)2.2 E F2(H)2.78 E F0(\().95 E F4(w)-.35 E F0(\))1.26 E -306.66 429.2 269.34 429.2 DL 351 429.6 MT -7.2 1.8 RL 0 -3.6 RL CL 0 Fg -351 429.6 MT -7.2 1.8 RL 0 -3.6 RL CL .1 LW 0 Cg ST .4 LW 343.8 429.6 -315 429.6 DL(Figure 17-1: Equations within pictures)210.78 470.6 Q F1 -2.5(17.5. Absolute)72 506.6 R -.2(Po)2.5 G(sitioning of Pictur).2 E(es) --.18 E F0(A)97 522.2 Q F1(pic)3.198 E F0 .698(picture is positioned v) -3.198 F .698(ertically by trof)-.15 F 3.198(fa)-.25 G 3.198(tt)-3.198 G -.698(he current position.)-3.198 F .698(The topmost position possible) -5.698 F .422(on a page is not the paper edge b)72 534.2 R .421 -(ut a position which is one baseline lo)-.2 F .421 -(wer so that the \214rst ro)-.25 F 2.921(wo)-.25 G 2.921(fg)-2.921 G -.421(lyphs is)-2.921 F 2.817(visible. T)72 546.2 R 2.817(om)-.8 G(ak) --2.817 E 2.817(eap)-.1 G .317 -(icture really start at the paper edge you ha)-2.817 F .617 -.15(ve t) --.2 H 2.817(om).15 G(ak)-2.817 E 2.817(et)-.1 G .317 -(he baseline-to-baseline distance)-2.817 F -(zero, this is, you must set the v)72 558.2 Q -(ertical spacing to 0 \(using)-.15 E F1(.vs)2.5 E F0 2.5(\)b)C -(efore starting the picture.)-2.5 E F1 2.5(18. Interface)72 582.2 R -(to T)2.5 E(eX)-.92 E F0(T)97 601.4 Q(E)-1.667 2.24 M 3.171(Xm)-1.25 --2.24 O .671(ode is enabled by the)-3.171 F F13.171 E F0 3.171 -(option. In)3.171 F(T)3.171 E(E)-1.667 2.24 M 3.171(Xm)-1.25 -2.24 O -.671(ode, pic will de\214ne a vbox called)-3.171 F F1(\\graph)3.17 E F0 -.67(for each)3.17 F .915 -(picture; the name can be changed with the pseudo-v)72 613.4 R(ariable) --.25 E F1(\214gname)3.415 E F0 .916 -(\(which is actually a specially parsed)3.415 F 2.5(command\). Y)72 -625.4 R(ou must yourself print that vbox using, for e)-1.1 E -(xample, the command)-.15 E F3(\\centerline{\\box\\graph})97 641 Q F0 -(Actually)72 656.6 Q 2.825(,s)-.65 G .325(ince the vbox has a height of\ - zero \(it is de\214ned with \\vtop\) this will produce slightly more v) --2.825 F(erti-)-.15 E(cal space abo)72 668.6 Q .3 -.15(ve t)-.15 H -(he picture than belo).15 E 2.5(wi)-.25 G(t;)-2.5 E F3 -(\\centerline{\\raise 1em\\box\\graph})97 684.2 Q F0 -.1(wo)72 699.8 S -(uld a).1 E -.2(vo)-.2 G(id this.).2 E 5.225 -.8(To m)97 715.4 T(ak).8 E -6.125(et)-.1 G 3.625(he vbox ha)-6.125 F 3.625(ving a positi)-.2 F 3.925 --.15(ve h)-.25 H 3.626(eight and a depth of zero \(as used e.g. by L).15 -F/F6 8/Times-Roman@0 SF(A)-3.6 -2.64 M F0(T)-1.5 2.64 M(E)-1.667 2.24 M -(X')-1.25 -2.24 M(s)-.55 E F3(graphics.sty)72 727.4 Q F0 -(\), de\214ne the follo)A(wing macro in your document:)-.25 E 0 Cg EP -%%Page: 27 27 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-27-)279.67 48 Q/F1 10/Courier@0 SF -(\\def\\gpicbox#1{%)108 84 Q -(\\vbox{\\unvbox\\csname #1\\endcsname\\kern 0pt}})120 96 Q F0(No)72 -117.6 Q 2.5(wy)-.25 G(ou can simply say)-2.5 E/F2 10/Times-Bold@0 SF -(\\gpicbox{graph})2.5 E F0(instead of \\box\\graph.)2.5 E -1.1(Yo)97 -133.2 S 2.5(um)1.1 G(ust use a T)-2.5 E(E)-1.667 2.24 M 2.5(Xd)-1.25 --2.24 O(ri)-2.5 E -.15(ve)-.25 G 2.5(rt).15 G(hat supports the)-2.5 E F2 -(tpic)2.5 E F0(specials, v)2.5 E(ersion 2.)-.15 E .386(Lines be)97 148.8 -R .386(ginning with)-.15 F F2(\\)2.886 E F0 .385 -(are passed through transparently; a)2.886 F F2(%)2.885 E F0 .385 -(is added to the end of the line to a)2.885 F -.2(vo)-.2 G(id).2 E(unw) -72 160.8 Q .599(anted spaces.)-.1 F -1.1(Yo)5.599 G 3.099(uc)1.1 G .599 -(an safely use this feature to change fonts or to change the v)-3.099 F -.6(alue of)-.25 F F2(\\baselineskip)3.1 E F0(.)A(An)72 172.8 Q .718 -(ything else may well produce undesirable results; use at your o)-.15 F -.718(wn risk.)-.25 F .718(Lines be)5.718 F .718(ginning with a period) --.15 F(are not gi)72 184.8 Q -.15(ve)-.25 G 2.5(na).15 G .3 -.15(ny s) --2.5 H(pecial treatment.).15 E(The T)97 200.4 Q(E)-1.667 2.24 M 2.5(Xm) --1.25 -2.24 O(ode of)-2.5 E/F3 10/Times-Italic@0 SF(pic)2.5 E F0 -(\(1\) will).31 E F3(not)2.5 E F0(translate)2.5 E F2(tr)2.5 E(off)-.18 E -F0(font and size changes included in te)2.5 E(xt strings!)-.15 E -(Here an e)97 216 Q(xample ho)-.15 E 2.5(wt)-.25 G 2.5(ou)-2.5 G(se)-2.5 -E F2(\214gname)2.5 E F0(.)A F1(.PS)108 234 Q(figname = foo;)108 246 Q -(...)108 258 Q(.PE)108 270 Q(.PS)108 294 Q(figname = bar;)108 306 Q(...) -108 318 Q(.PE)108 330 Q(\\centerline{\\box\\foo \\hss \\box\\bar})108 -354 Q F0 .823 -(Use this feature sparsingly and only if really needed: A dif)72 375.6 R -.824(ferent name means a ne)-.25 F 3.324(wb)-.25 G .824(ox re)-3.324 F -.824(gister in T)-.15 F(E)-1.667 2.24 M(X,)-1.25 -2.24 M 1.25 -(and the maximum number of box re)72 387.6 R 1.249(gisters is only 256.) --.15 F 1.249(Also be careful not to use a prede\214ned T)6.249 F(E) --1.667 2.24 M 3.749(Xo)-1.25 -2.24 O(r)-3.749 E(L)72 399.6 Q/F4 8 -/Times-Roman@0 SF(A)-3.6 -2.64 M F0(T)-1.5 2.64 M(E)-1.667 2.24 M 2.5 -(Xm)-1.25 -2.24 O(acro name as an ar)-2.5 E(gument to)-.18 E F2 -(\214gname)2.5 E F0(since this ine)2.5 E(vitably causes an error)-.25 E -(.)-.55 E F2 2.5(19. Obsolete)72 423.6 R(Commands)2.5 E F0(GNU)97 439.2 -Q F3(gpic)2.5 E F0 2.5(\(1\) has).31 F 2.5(ac)2.5 G(ommand)-2.5 E F2 -(plot)108 457.2 Q F3 -.2(ex)2.5 G(pr).2 E F0([)2.5 E F2(")A F3(te)A(xt) --.2 E F2(")A F0(])A .879(This is a te)72 475.2 R .879 -(xt object which is constructed by using)-.15 F F3(te)3.379 E(xt)-.2 E -F0 .879(as a format string for sprintf with an ar)3.379 F .879 -(gument of)-.18 F F3 -.2(ex)72 487.2 S(pr).2 E F0 5.225(.I)C(f)-5.225 E -F3(te)2.725 E(xt)-.2 E F0 .225(is omitted a format string of)2.725 F F2 -("%g")2.725 E F0 .225(is used.)2.725 F(Attrib)5.225 E .225 -(utes can be speci\214ed in the same w)-.2 F .224(ay as for)-.1 F 2.732 -(an)72 499.2 S .232(ormal te)-2.732 F .232(xt object.)-.15 F .233(Be v) -5.232 F .233(ery careful that you specify an appropriate format string;) --.15 F F2(pic)2.733 E F0 .233(does only v)2.733 F .233(ery lim-)-.15 F -(ited checking of the string.)72 511.2 Q(This is deprecated in f)5 E -.2 -(avo)-.1 G(ur of).2 E F2(sprintf)2.5 E F0(.)A F2 2.5(20. Some)72 535.2 R -(Lar)2.5 E(ger Examples)-.1 E F0 .093(Here are a fe)97 550.8 R 2.593(wl) --.25 G(ar)-2.593 E .093(ger e)-.18 F .093 -(xamples, with complete source code.)-.15 F .092(One of our earlier e) -5.092 F .092(xamples is generated)-.15 F(in an instructi)72 562.8 Q .3 --.15(ve w)-.25 H(ay using a for loop:).05 E 0 Cg EP -%%Page: 28 28 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-28-)279.67 48 Q/F1 9/Courier@0 SF(.PS)108 83 Q -5.4(#D)108 94 S(raw a demonstration up left arrow with grid box overlay) --5.4 E(define gridarrow)108 105 Q({)108 116 Q(move right 0.1)129.6 127 Q -([)129.6 138 Q({arrow up left $1;})151.2 149 Q -(box wid 0.5 ht 0.5 dotted with .nw at last arrow .end;)151.2 160 Q -(for i = 2 to \($1 / 0.5\) do)151.2 171 Q({)151.2 182 Q -(box wid 0.5 ht 0.5 dotted with .sw at last box .se;)172.8 193 Q(})151.2 -204 Q(move down from last arrow .center;)151.2 215 Q([)151.2 226 Q -(if \( $1 == boxht \) \\)172.8 237 Q(then { "\\fBline up left\\fP" } \\) -172.8 248 Q(else { sprintf\("\\fBarrow up left %g\\fP", $1\) };)172.8 -259 Q(])151.2 270 Q(])129.6 281 Q(move right 0.1 from last [] .e;)129.6 -292 Q(})108 303 Q(gridarrow\(0.5\);)108 314 Q(gridarrow\(1\);)108 325 Q -(gridarrow\(1.5\);)108 336 Q(gridarrow\(2\);)108 347 Q(undef gridarrow) -108 358 Q(.PE)108 369 Q 86.4 392 MT 6.336 3.816 RL -2.52 2.52 RL CL 0 Fg -86.4 392 MT 6.336 3.816 RL -2.52 2.52 RL CL .1 LW 0 Cg ST .36 LW 91.512 -397.112 122.4 428 DL 86.4 428 86.4 428 DL 90 428 90 428 DL 93.6 428 93.6 -428 DL 97.2 428 97.2 428 DL 100.8 428 100.8 428 DL 104.4 428 104.4 428 -DL 108 428 108 428 DL 111.6 428 111.6 428 DL 115.2 428 115.2 428 DL -118.8 428 118.8 428 DL 122.4 428 122.4 428 DL 122.4 428 122.4 428 DL -122.4 424.4 122.4 424.4 DL 122.4 420.8 122.4 420.8 DL 122.4 417.2 122.4 -417.2 DL 122.4 413.6 122.4 413.6 DL 122.4 410 122.4 410 DL 122.4 406.4 -122.4 406.4 DL 122.4 402.8 122.4 402.8 DL 122.4 399.2 122.4 399.2 DL -122.4 395.6 122.4 395.6 DL 122.4 392 122.4 392 DL 122.4 392 122.4 392 DL -118.8 392 118.8 392 DL 115.2 392 115.2 392 DL 111.6 392 111.6 392 DL 108 -392 108 392 DL 104.4 392 104.4 392 DL 100.8 392 100.8 392 DL 97.2 392 -97.2 392 DL 93.6 392 93.6 392 DL 90 392 90 392 DL 86.4 392 86.4 392 DL -86.4 392 86.4 392 DL 86.4 395.6 86.4 395.6 DL 86.4 399.2 86.4 399.2 DL -86.4 402.8 86.4 402.8 DL 86.4 406.4 86.4 406.4 DL 86.4 410 86.4 410 DL -86.4 413.6 86.4 413.6 DL 86.4 417.2 86.4 417.2 DL 86.4 420.8 86.4 420.8 -DL 86.4 424.4 86.4 424.4 DL 86.4 428 86.4 428 DL/F2 9/Times-Bold@0 SF -(line up left)83.898 447.98 Q 136.8 392 MT 7.272 1.584 RL -1.584 3.24 RL -CL 0 Fg 136.8 392 MT 7.272 1.584 RL -1.584 3.24 RL CL .1 LW 0 Cg ST .36 -LW 143.208 395.24 208.8 428 DL 136.8 428 136.8 428 DL 140.4 428 140.4 -428 DL 144 428 144 428 DL 147.6 428 147.6 428 DL 151.2 428 151.2 428 DL -154.8 428 154.8 428 DL 158.4 428 158.4 428 DL 162 428 162 428 DL 165.6 -428 165.6 428 DL 169.2 428 169.2 428 DL 172.8 428 172.8 428 DL 172.8 428 -172.8 428 DL 172.8 424.4 172.8 424.4 DL 172.8 420.8 172.8 420.8 DL 172.8 -417.2 172.8 417.2 DL 172.8 413.6 172.8 413.6 DL 172.8 410 172.8 410 DL -172.8 406.4 172.8 406.4 DL 172.8 402.8 172.8 402.8 DL 172.8 399.2 172.8 -399.2 DL 172.8 395.6 172.8 395.6 DL 172.8 392 172.8 392 DL 172.8 392 -172.8 392 DL 169.2 392 169.2 392 DL 165.6 392 165.6 392 DL 162 392 162 -392 DL 158.4 392 158.4 392 DL 154.8 392 154.8 392 DL 151.2 392 151.2 392 -DL 147.6 392 147.6 392 DL 144 392 144 392 DL 140.4 392 140.4 392 DL -136.8 392 136.8 392 DL 136.8 392 136.8 392 DL 136.8 395.6 136.8 395.6 DL -136.8 399.2 136.8 399.2 DL 136.8 402.8 136.8 402.8 DL 136.8 406.4 136.8 -406.4 DL 136.8 410 136.8 410 DL 136.8 413.6 136.8 413.6 DL 136.8 417.2 -136.8 417.2 DL 136.8 420.8 136.8 420.8 DL 136.8 424.4 136.8 424.4 DL -136.8 428 136.8 428 DL 172.8 428 172.8 428 DL 176.4 428 176.4 428 DL 180 -428 180 428 DL 183.6 428 183.6 428 DL 187.2 428 187.2 428 DL 190.8 428 -190.8 428 DL 194.4 428 194.4 428 DL 198 428 198 428 DL 201.6 428 201.6 -428 DL 205.2 428 205.2 428 DL 208.8 428 208.8 428 DL 208.8 428 208.8 428 -DL 208.8 424.4 208.8 424.4 DL 208.8 420.8 208.8 420.8 DL 208.8 417.2 -208.8 417.2 DL 208.8 413.6 208.8 413.6 DL 208.8 410 208.8 410 DL 208.8 -406.4 208.8 406.4 DL 208.8 402.8 208.8 402.8 DL 208.8 399.2 208.8 399.2 -DL 208.8 395.6 208.8 395.6 DL 208.8 392 208.8 392 DL 208.8 392 208.8 392 -DL 205.2 392 205.2 392 DL 201.6 392 201.6 392 DL 198 392 198 392 DL -194.4 392 194.4 392 DL 190.8 392 190.8 392 DL 187.2 392 187.2 392 DL -183.6 392 183.6 392 DL 180 392 180 392 DL 176.4 392 176.4 392 DL 172.8 -392 172.8 392 DL 172.8 392 172.8 392 DL 172.8 395.6 172.8 395.6 DL 172.8 -399.2 172.8 399.2 DL 172.8 402.8 172.8 402.8 DL 172.8 406.4 172.8 406.4 -DL 172.8 410 172.8 410 DL 172.8 413.6 172.8 413.6 DL 172.8 417.2 172.8 -417.2 DL 172.8 420.8 172.8 420.8 DL 172.8 424.4 172.8 424.4 DL 172.8 428 -172.8 428 DL(arr)144.306 447.98 Q .18 -.09(ow u)-.162 H 2.25(pl).09 G -(eft 1)-2.25 E 223.2 392 MT 7.416 .576 RL -1.152 3.384 RL CL 0 Fg 223.2 -392 MT 7.416 .576 RL -1.152 3.384 RL CL .1 LW 0 Cg ST .36 LW 230.04 -394.304 331.2 428 DL 223.2 428 223.2 428 DL 226.8 428 226.8 428 DL 230.4 -428 230.4 428 DL 234 428 234 428 DL 237.6 428 237.6 428 DL 241.2 428 -241.2 428 DL 244.8 428 244.8 428 DL 248.4 428 248.4 428 DL 252 428 252 -428 DL 255.6 428 255.6 428 DL 259.2 428 259.2 428 DL 259.2 428 259.2 428 -DL 259.2 424.4 259.2 424.4 DL 259.2 420.8 259.2 420.8 DL 259.2 417.2 -259.2 417.2 DL 259.2 413.6 259.2 413.6 DL 259.2 410 259.2 410 DL 259.2 -406.4 259.2 406.4 DL 259.2 402.8 259.2 402.8 DL 259.2 399.2 259.2 399.2 -DL 259.2 395.6 259.2 395.6 DL 259.2 392 259.2 392 DL 259.2 392 259.2 392 -DL 255.6 392 255.6 392 DL 252 392 252 392 DL 248.4 392 248.4 392 DL -244.8 392 244.8 392 DL 241.2 392 241.2 392 DL 237.6 392 237.6 392 DL 234 -392 234 392 DL 230.4 392 230.4 392 DL 226.8 392 226.8 392 DL 223.2 392 -223.2 392 DL 223.2 392 223.2 392 DL 223.2 395.6 223.2 395.6 DL 223.2 -399.2 223.2 399.2 DL 223.2 402.8 223.2 402.8 DL 223.2 406.4 223.2 406.4 -DL 223.2 410 223.2 410 DL 223.2 413.6 223.2 413.6 DL 223.2 417.2 223.2 -417.2 DL 223.2 420.8 223.2 420.8 DL 223.2 424.4 223.2 424.4 DL 223.2 428 -223.2 428 DL 259.2 428 259.2 428 DL 262.8 428 262.8 428 DL 266.4 428 -266.4 428 DL 270 428 270 428 DL 273.6 428 273.6 428 DL 277.2 428 277.2 -428 DL 280.8 428 280.8 428 DL 284.4 428 284.4 428 DL 288 428 288 428 DL -291.6 428 291.6 428 DL 295.2 428 295.2 428 DL 295.2 428 295.2 428 DL -295.2 424.4 295.2 424.4 DL 295.2 420.8 295.2 420.8 DL 295.2 417.2 295.2 -417.2 DL 295.2 413.6 295.2 413.6 DL 295.2 410 295.2 410 DL 295.2 406.4 -295.2 406.4 DL 295.2 402.8 295.2 402.8 DL 295.2 399.2 295.2 399.2 DL -295.2 395.6 295.2 395.6 DL 295.2 392 295.2 392 DL 295.2 392 295.2 392 DL -291.6 392 291.6 392 DL 288 392 288 392 DL 284.4 392 284.4 392 DL 280.8 -392 280.8 392 DL 277.2 392 277.2 392 DL 273.6 392 273.6 392 DL 270 392 -270 392 DL 266.4 392 266.4 392 DL 262.8 392 262.8 392 DL 259.2 392 259.2 -392 DL 259.2 392 259.2 392 DL 259.2 395.6 259.2 395.6 DL 259.2 399.2 -259.2 399.2 DL 259.2 402.8 259.2 402.8 DL 259.2 406.4 259.2 406.4 DL -259.2 410 259.2 410 DL 259.2 413.6 259.2 413.6 DL 259.2 417.2 259.2 -417.2 DL 259.2 420.8 259.2 420.8 DL 259.2 424.4 259.2 424.4 DL 259.2 428 -259.2 428 DL 295.2 428 295.2 428 DL 298.8 428 298.8 428 DL 302.4 428 -302.4 428 DL 306 428 306 428 DL 309.6 428 309.6 428 DL 313.2 428 313.2 -428 DL 316.8 428 316.8 428 DL 320.4 428 320.4 428 DL 324 428 324 428 DL -327.6 428 327.6 428 DL 331.2 428 331.2 428 DL 331.2 428 331.2 428 DL -331.2 424.4 331.2 424.4 DL 331.2 420.8 331.2 420.8 DL 331.2 417.2 331.2 -417.2 DL 331.2 413.6 331.2 413.6 DL 331.2 410 331.2 410 DL 331.2 406.4 -331.2 406.4 DL 331.2 402.8 331.2 402.8 DL 331.2 399.2 331.2 399.2 DL -331.2 395.6 331.2 395.6 DL 331.2 392 331.2 392 DL 331.2 392 331.2 392 DL -327.6 392 327.6 392 DL 324 392 324 392 DL 320.4 392 320.4 392 DL 316.8 -392 316.8 392 DL 313.2 392 313.2 392 DL 309.6 392 309.6 392 DL 306 392 -306 392 DL 302.4 392 302.4 392 DL 298.8 392 298.8 392 DL 295.2 392 295.2 -392 DL 295.2 392 295.2 392 DL 295.2 395.6 295.2 395.6 DL 295.2 399.2 -295.2 399.2 DL 295.2 402.8 295.2 402.8 DL 295.2 406.4 295.2 406.4 DL -295.2 410 295.2 410 DL 295.2 413.6 295.2 413.6 DL 295.2 417.2 295.2 -417.2 DL 295.2 420.8 295.2 420.8 DL 295.2 424.4 295.2 424.4 DL 295.2 428 -295.2 428 DL(arr)245.331 447.98 Q .18 -.09(ow u)-.162 H 2.25(pl).09 G -(eft 1.5)-2.25 E 345.6 392 MT 7.416 0 RL -.864 3.528 RL CL 0 Fg 345.6 -392 MT 7.416 0 RL -.864 3.528 RL CL .1 LW 0 Cg ST .36 LW 352.584 393.728 -489.6 428 DL 345.6 428 345.6 428 DL 349.2 428 349.2 428 DL 352.8 428 -352.8 428 DL 356.4 428 356.4 428 DL 360 428 360 428 DL 363.6 428 363.6 -428 DL 367.2 428 367.2 428 DL 370.8 428 370.8 428 DL 374.4 428 374.4 428 -DL 378 428 378 428 DL 381.6 428 381.6 428 DL 381.6 428 381.6 428 DL -381.6 424.4 381.6 424.4 DL 381.6 420.8 381.6 420.8 DL 381.6 417.2 381.6 -417.2 DL 381.6 413.6 381.6 413.6 DL 381.6 410 381.6 410 DL 381.6 406.4 -381.6 406.4 DL 381.6 402.8 381.6 402.8 DL 381.6 399.2 381.6 399.2 DL -381.6 395.6 381.6 395.6 DL 381.6 392 381.6 392 DL 381.6 392 381.6 392 DL -378 392 378 392 DL 374.4 392 374.4 392 DL 370.8 392 370.8 392 DL 367.2 -392 367.2 392 DL 363.6 392 363.6 392 DL 360 392 360 392 DL 356.4 392 -356.4 392 DL 352.8 392 352.8 392 DL 349.2 392 349.2 392 DL 345.6 392 -345.6 392 DL 345.6 392 345.6 392 DL 345.6 395.6 345.6 395.6 DL 345.6 -399.2 345.6 399.2 DL 345.6 402.8 345.6 402.8 DL 345.6 406.4 345.6 406.4 -DL 345.6 410 345.6 410 DL 345.6 413.6 345.6 413.6 DL 345.6 417.2 345.6 -417.2 DL 345.6 420.8 345.6 420.8 DL 345.6 424.4 345.6 424.4 DL 345.6 428 -345.6 428 DL 381.6 428 381.6 428 DL 385.2 428 385.2 428 DL 388.8 428 -388.8 428 DL 392.4 428 392.4 428 DL 396 428 396 428 DL 399.6 428 399.6 -428 DL 403.2 428 403.2 428 DL 406.8 428 406.8 428 DL 410.4 428 410.4 428 -DL 414 428 414 428 DL 417.6 428 417.6 428 DL 417.6 428 417.6 428 DL -417.6 424.4 417.6 424.4 DL 417.6 420.8 417.6 420.8 DL 417.6 417.2 417.6 -417.2 DL 417.6 413.6 417.6 413.6 DL 417.6 410 417.6 410 DL 417.6 406.4 -417.6 406.4 DL 417.6 402.8 417.6 402.8 DL 417.6 399.2 417.6 399.2 DL -417.6 395.6 417.6 395.6 DL 417.6 392 417.6 392 DL 417.6 392 417.6 392 DL -414 392 414 392 DL 410.4 392 410.4 392 DL 406.8 392 406.8 392 DL 403.2 -392 403.2 392 DL 399.6 392 399.6 392 DL 396 392 396 392 DL 392.4 392 -392.4 392 DL 388.8 392 388.8 392 DL 385.2 392 385.2 392 DL 381.6 392 -381.6 392 DL 381.6 392 381.6 392 DL 381.6 395.6 381.6 395.6 DL 381.6 -399.2 381.6 399.2 DL 381.6 402.8 381.6 402.8 DL 381.6 406.4 381.6 406.4 -DL 381.6 410 381.6 410 DL 381.6 413.6 381.6 413.6 DL 381.6 417.2 381.6 -417.2 DL 381.6 420.8 381.6 420.8 DL 381.6 424.4 381.6 424.4 DL 381.6 428 -381.6 428 DL 417.6 428 417.6 428 DL 421.2 428 421.2 428 DL 424.8 428 -424.8 428 DL 428.4 428 428.4 428 DL 432 428 432 428 DL 435.6 428 435.6 -428 DL 439.2 428 439.2 428 DL 442.8 428 442.8 428 DL 446.4 428 446.4 428 -DL 450 428 450 428 DL 453.6 428 453.6 428 DL 453.6 428 453.6 428 DL -453.6 424.4 453.6 424.4 DL 453.6 420.8 453.6 420.8 DL 453.6 417.2 453.6 -417.2 DL 453.6 413.6 453.6 413.6 DL 453.6 410 453.6 410 DL 453.6 406.4 -453.6 406.4 DL 453.6 402.8 453.6 402.8 DL 453.6 399.2 453.6 399.2 DL -453.6 395.6 453.6 395.6 DL 453.6 392 453.6 392 DL 453.6 392 453.6 392 DL -450 392 450 392 DL 446.4 392 446.4 392 DL 442.8 392 442.8 392 DL 439.2 -392 439.2 392 DL 435.6 392 435.6 392 DL 432 392 432 392 DL 428.4 392 -428.4 392 DL 424.8 392 424.8 392 DL 421.2 392 421.2 392 DL 417.6 392 -417.6 392 DL 417.6 392 417.6 392 DL 417.6 395.6 417.6 395.6 DL 417.6 -399.2 417.6 399.2 DL 417.6 402.8 417.6 402.8 DL 417.6 406.4 417.6 406.4 -DL 417.6 410 417.6 410 DL 417.6 413.6 417.6 413.6 DL 417.6 417.2 417.6 -417.2 DL 417.6 420.8 417.6 420.8 DL 417.6 424.4 417.6 424.4 DL 417.6 428 -417.6 428 DL 453.6 428 453.6 428 DL 457.2 428 457.2 428 DL 460.8 428 -460.8 428 DL 464.4 428 464.4 428 DL 468 428 468 428 DL 471.6 428 471.6 -428 DL 475.2 428 475.2 428 DL 478.8 428 478.8 428 DL 482.4 428 482.4 428 -DL 486 428 486 428 DL 489.6 428 489.6 428 DL 489.6 428 489.6 428 DL -489.6 424.4 489.6 424.4 DL 489.6 420.8 489.6 420.8 DL 489.6 417.2 489.6 -417.2 DL 489.6 413.6 489.6 413.6 DL 489.6 410 489.6 410 DL 489.6 406.4 -489.6 406.4 DL 489.6 402.8 489.6 402.8 DL 489.6 399.2 489.6 399.2 DL -489.6 395.6 489.6 395.6 DL 489.6 392 489.6 392 DL 489.6 392 489.6 392 DL -486 392 486 392 DL 482.4 392 482.4 392 DL 478.8 392 478.8 392 DL 475.2 -392 475.2 392 DL 471.6 392 471.6 392 DL 468 392 468 392 DL 464.4 392 -464.4 392 DL 460.8 392 460.8 392 DL 457.2 392 457.2 392 DL 453.6 392 -453.6 392 DL 453.6 392 453.6 392 DL 453.6 395.6 453.6 395.6 DL 453.6 -399.2 453.6 399.2 DL 453.6 402.8 453.6 402.8 DL 453.6 406.4 453.6 406.4 -DL 453.6 410 453.6 410 DL 453.6 413.6 453.6 413.6 DL 453.6 417.2 453.6 -417.2 DL 453.6 420.8 453.6 420.8 DL 453.6 424.4 453.6 424.4 DL 453.6 428 -453.6 428 DL(arr)389.106 447.98 Q .18 -.09(ow u)-.162 H 2.25(pl).09 G -(eft 2)-2.25 E F0(Figure 20-1: Diagonal arro)136.26 469 Q -(ws \(dotted box)-.25 E(es sho)-.15 E 2.5(wt)-.25 G -(he implied 0.5-inch grid\))-2.5 E(Here')97 496.6 Q 2.5(sa)-.55 G 2.5 -(ne)-2.5 G(xample concocted to demonstrate layout of a lar)-2.65 E -(ge, multiple-part pattern:)-.18 E 0 Cg EP -%%Page: 29 29 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-29-)279.67 48 Q/F1 9/Courier@0 SF(.PS)108 83 Q -(define filter {box ht 0.25 rad 0.125})108 94 Q(lineht = 0.25;)108 105 Q -(Top: [)108 116 Q(right;)129.6 127 Q(box "\\fBms\\fR" "sources";)129.6 -138 Q(move;)129.6 149 Q(box "\\fBHTML\\fR" "sources";)129.6 160 Q(move;) -129.6 171 Q(box "\\fBlinuxdoc-sgml\\fP" "sources" wid 1.5;)129.6 182 Q -(move;)129.6 193 Q(box "\\fBTexinfo\\fP" "sources";)129.6 204 Q -(line down from 1st box .s lineht;)129.6 226 Q(A: line down;)129.6 237 Q -(line down from 2nd box .s; filter "\\fBhtml2ms\\fP";)129.6 248 Q -(B: line down;)129.6 259 Q -(line down from 3rd box .s; filter "\\fBformat\\fP";)129.6 270 Q -(C: line down;)129.6 281 Q -(line down from 4th box .s; filter "\\fBtexi2roff\\fP";)129.6 292 Q -(D: line down;)129.6 303 Q(])108 314 Q(move down 1 from last [] .s;)108 -325 Q(Anchor: box wid 1 ht 0.75 "\\fBms\\fR" "intermediate" "form";)108 -336 Q(arrow from Top.A.end to Anchor.nw;)108 347 Q(arrow from Top.B.end\ - to 1/3 of the way between Anchor.nw and Anchor.ne;)108 358 Q(arrow fro\ -m Top.C.end to 2/3 of the way between Anchor.nw and Anchor.ne;)108 369 Q -(arrow from Top.D.end to Anchor.ne)108 380 Q({)108 391 Q 5.4(#P)129.6 -402 S(ostScript column)-5.4 E(move to Anchor .sw;)129.6 413 Q -(line down left then down ->;)129.6 424 Q(filter "\\fBpic\\fP";)129.6 -435 Q(arrow;)129.6 446 Q(filter "\\fBeqn\\fP";)129.6 457 Q(arrow;)129.6 -468 Q(filter "\\fBtbl\\fP";)129.6 479 Q(arrow;)129.6 490 Q -(filter "\\fBgroff\\fP";)129.6 501 Q(arrow;)129.6 512 Q -(box "PostScript";)129.6 523 Q 5.4(#H)129.6 545 S(TML column)-5.4 E -(move to Anchor .se;)129.6 556 Q(line down right then down ->;)129.6 567 -Q(A: filter dotted "\\fBpic2img\\fP";)129.6 578 Q(arrow;)129.6 589 Q -(B: filter dotted "\\fBeqn2html\\fP";)129.6 600 Q(arrow;)129.6 611 Q -(C: filter dotted "\\fBtbl2html\\fP";)129.6 622 Q(arrow;)129.6 633 Q -(filter "\\fBms2html\\fP";)129.6 644 Q(arrow;)129.6 655 Q(box "HTML";) -129.6 666 Q 5.4(#N)129.6 688 S(onexistence caption)-5.4 E -(box dashed wid 1 at B + \(2,0\) "These tools" "don't yet exist";)129.6 -699 Q(line chop 0 chop 0.1 dashed from last box .nw to A.e ->;)129.6 710 -Q(line chop 0 chop 0.1 dashed from last box .w)129.6 721 Q(to B.e ->;) -10.8 E 0 Cg EP -%%Page: 30 30 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-30-)279.67 48 Q/F1 9/Courier@0 SF -(line chop 0 chop 0.1 dashed from last box .sw to C.e ->;)129.6 83 Q(}) -108 94 Q(.PE)108 105 Q 126 164 MT 0 -36 RL -54 0 RL 0 36 RL CL .36 LW ST -/F2 9/Times-Bold@0 SF(ms)93.501 142.48 Q/F3 9/Times-Roman@0 SF(sources) -85.505 153.48 Q 216 164 MT 0 -36 RL -54 0 RL 0 36 RL CL ST F2(HTML) -175.248 142.48 Q F3(sources)175.505 153.48 Q 360 164 MT 0 -36 RL -108 0 -RL 0 36 RL CL ST F2(linuxdoc-sgml)278.996 142.48 Q F3(sources)292.505 -153.48 Q 450 164 MT 0 -36 RL -54 0 RL 0 36 RL CL ST F2 -.828(Te)408.776 -142.48 S(xinf).828 E(o)-.225 E F3(sources)409.505 153.48 Q 99 200 99 164 -DL 99 218 99 200 DL 189 182 189 164 DL 171 191 9 -180 90 DA 171 191 9 --90 180 DA 207 191 9 -0 -90 DA 207 191 9 90 0 DA 162 191 162 191 DL 207 -182 171 182 DL 216 191 216 191 DL 171 200 207 200 DL F2(html2ms)172.251 -192.98 Q 189 218 189 200 DL 306 182 306 164 DL 288 191 9 -180 90 DA 288 -191 9 -90 180 DA 324 191 9 -0 -90 DA 324 191 9 90 0 DA 279 191 279 191 -DL 324 182 288 182 DL 333 191 333 191 DL 288 200 324 200 DL -.225(fo) -292.869 192.98 S(rmat).225 E 306 218 306 200 DL 423 182 423 164 DL 405 -191 9 -180 90 DA 405 191 9 -90 180 DA 441 191 9 -0 -90 DA 441 191 9 90 0 -DA 396 191 396 191 DL 441 182 405 182 DL 450 191 450 191 DL 405 200 441 -200 DL(texi2r)406.589 192.98 Q(off)-.162 E 423 218 423 200 DL 297 344 MT -0 -54 RL -72 0 RL 0 54 RL CL ST(ms)255.501 307.98 Q F3(intermediate) -238.505 318.98 Q(form)252.252 329.98 Q 225 290 MT -7.128 -2.016 RL 1.8 --3.096 RL CL 0 Fg 225 290 MT -7.128 -2.016 RL 1.8 -3.096 RL CL .1 LW 0 -Cg ST .36 LW 218.736 286.4 99 218 DL 248.976 290 MT -5.976 -4.392 RL -2.736 -2.304 RL CL 0 Fg 248.976 290 MT -5.976 -4.392 RL 2.736 -2.304 RL -CL .1 LW 0 Cg ST .36 LW 244.368 284.456 189 218 DL 273.024 290 MT 1.368 --7.272 RL 3.24 1.512 RL CL 0 Fg 273.024 290 MT 1.368 -7.272 RL 3.24 -1.512 RL CL .1 LW 0 Cg ST .36 LW 275.976 283.448 306 218 DL 297 290 MT -5.328 -5.112 RL 1.8 3.096 RL CL 0 Fg 297 290 MT 5.328 -5.112 RL 1.8 -3.096 RL CL .1 LW 0 Cg ST .36 LW 303.264 286.4 423 218 DL 189 380 MT --1.8 -7.2 RL 3.6 0 RL CL 0 Fg 189 380 MT -1.8 -7.2 RL 3.6 0 RL CL .1 LW -0 Cg ST .36 LW 189 362 225 344 DL 189 372.8 189 362 DL 171 389 9 -180 90 -DA 171 389 9 -90 180 DA 207 389 9 -0 -90 DA 207 389 9 90 0 DA 162 389 -162 389 DL 207 380 171 380 DL 216 389 216 389 DL 171 398 207 398 DL F2 -(pic)183.249 390.98 Q 189 416 MT -1.8 -7.2 RL 3.6 0 RL CL 0 Fg 189 416 -MT -1.8 -7.2 RL 3.6 0 RL CL .1 LW 0 Cg ST .36 LW 189 408.8 189 398 DL -171 425 9 -180 90 DA 171 425 9 -90 180 DA 207 425 9 -0 -90 DA 207 425 9 -90 0 DA 162 425 162 425 DL 207 416 171 416 DL 216 425 216 425 DL 171 434 -207 434 DL(eqn)181.998 426.98 Q 189 452 MT -1.8 -7.2 RL 3.6 0 RL CL 0 Fg -189 452 MT -1.8 -7.2 RL 3.6 0 RL CL .1 LW 0 Cg ST .36 LW 189 444.8 189 -434 DL 171 461 9 -180 90 DA 171 461 9 -90 180 DA 207 461 9 -0 -90 DA 207 -461 9 90 0 DA 162 461 162 461 DL 207 452 171 452 DL 216 461 216 461 DL -171 470 207 470 DL(tbl)183.749 462.98 Q 189 488 MT -1.8 -7.2 RL 3.6 0 RL -CL 0 Fg 189 488 MT -1.8 -7.2 RL 3.6 0 RL CL .1 LW 0 Cg ST .36 LW 189 -480.8 189 470 DL 171 497 9 -180 90 DA 171 497 9 -90 180 DA 207 497 9 -0 --90 DA 207 497 9 90 0 DA 162 497 162 497 DL 207 488 171 488 DL 216 497 -216 497 DL 171 506 207 506 DL(gr)179.586 498.98 Q(off)-.162 E 189 524 MT --1.8 -7.2 RL 3.6 0 RL CL 0 Fg 189 524 MT -1.8 -7.2 RL 3.6 0 RL CL .1 LW -0 Cg ST .36 LW 189 516.8 189 506 DL 216 560 MT 0 -36 RL -54 0 RL 0 36 RL -CL ST F3(PostScript)170.496 543.98 Q 333 380 MT -1.8 -7.2 RL 3.6 0 RL CL -0 Fg 333 380 MT -1.8 -7.2 RL 3.6 0 RL CL .1 LW 0 Cg ST .36 LW 333 362 -297 344 DL 333 372.8 333 362 DL 357.336 395.336 357.336 395.336 DL -359.28 392.456 359.28 392.456 DL 360 389 360 389 DL 360 389 360 389 DL -359.28 385.544 359.28 385.544 DL 357.336 382.664 357.336 382.664 DL -354.384 380.648 354.384 380.648 DL 350.928 380 350.928 380 DL 347.328 -380 347.328 380 DL 343.728 380 343.728 380 DL 340.128 380 340.128 380 DL -336.6 380 336.6 380 DL 333 380 333 380 DL 329.4 380 329.4 380 DL 325.872 -380 325.872 380 DL 322.272 380 322.272 380 DL 318.672 380 318.672 380 DL -315.072 380 315.072 380 DL 311.616 380.648 311.616 380.648 DL 308.664 -382.664 308.664 382.664 DL 306.72 385.544 306.72 385.544 DL 306 389 306 -389 DL 306 389 306 389 DL 306.72 392.456 306.72 392.456 DL 308.664 -395.336 308.664 395.336 DL 311.616 397.352 311.616 397.352 DL 315.072 -398 315.072 398 DL 318.672 398 318.672 398 DL 322.272 398 322.272 398 DL -325.872 398 325.872 398 DL 329.4 398 329.4 398 DL 333 398 333 398 DL -336.6 398 336.6 398 DL 340.128 398 340.128 398 DL 343.728 398 343.728 -398 DL 347.328 398 347.328 398 DL 350.928 398 350.928 398 DL 354.384 -397.352 354.384 397.352 DL F2(pic2img)317.75 390.98 Q 333 416 MT -1.8 --7.2 RL 3.6 0 RL CL 0 Fg 333 416 MT -1.8 -7.2 RL 3.6 0 RL CL .1 LW 0 Cg -ST .36 LW 333 408.8 333 398 DL 357.336 431.336 357.336 431.336 DL 359.28 -428.456 359.28 428.456 DL 360 425 360 425 DL 360 425 360 425 DL 359.28 -421.544 359.28 421.544 DL 357.336 418.664 357.336 418.664 DL 354.384 -416.648 354.384 416.648 DL 350.928 416 350.928 416 DL 347.328 416 -347.328 416 DL 343.728 416 343.728 416 DL 340.128 416 340.128 416 DL -336.6 416 336.6 416 DL 333 416 333 416 DL 329.4 416 329.4 416 DL 325.872 -416 325.872 416 DL 322.272 416 322.272 416 DL 318.672 416 318.672 416 DL -315.072 416 315.072 416 DL 311.616 416.648 311.616 416.648 DL 308.664 -418.664 308.664 418.664 DL 306.72 421.544 306.72 421.544 DL 306 425 306 -425 DL 306 425 306 425 DL 306.72 428.456 306.72 428.456 DL 308.664 -431.336 308.664 431.336 DL 311.616 433.352 311.616 433.352 DL 315.072 -434 315.072 434 DL 318.672 434 318.672 434 DL 322.272 434 322.272 434 DL -325.872 434 325.872 434 DL 329.4 434 329.4 434 DL 333 434 333 434 DL -336.6 434 336.6 434 DL 340.128 434 340.128 434 DL 343.728 434 343.728 -434 DL 347.328 434 347.328 434 DL 350.928 434 350.928 434 DL 354.384 -433.352 354.384 433.352 DL(eqn2html)314.748 426.98 Q 333 452 MT -1.8 --7.2 RL 3.6 0 RL CL 0 Fg 333 452 MT -1.8 -7.2 RL 3.6 0 RL CL .1 LW 0 Cg -ST .36 LW 333 444.8 333 434 DL 357.336 467.336 357.336 467.336 DL 359.28 -464.456 359.28 464.456 DL 360 461 360 461 DL 360 461 360 461 DL 359.28 -457.544 359.28 457.544 DL 357.336 454.664 357.336 454.664 DL 354.384 -452.648 354.384 452.648 DL 350.928 452 350.928 452 DL 347.328 452 -347.328 452 DL 343.728 452 343.728 452 DL 340.128 452 340.128 452 DL -336.6 452 336.6 452 DL 333 452 333 452 DL 329.4 452 329.4 452 DL 325.872 -452 325.872 452 DL 322.272 452 322.272 452 DL 318.672 452 318.672 452 DL -315.072 452 315.072 452 DL 311.616 452.648 311.616 452.648 DL 308.664 -454.664 308.664 454.664 DL 306.72 457.544 306.72 457.544 DL 306 461 306 -461 DL 306 461 306 461 DL 306.72 464.456 306.72 464.456 DL 308.664 -467.336 308.664 467.336 DL 311.616 469.352 311.616 469.352 DL 315.072 -470 315.072 470 DL 318.672 470 318.672 470 DL 322.272 470 322.272 470 DL -325.872 470 325.872 470 DL 329.4 470 329.4 470 DL 333 470 333 470 DL -336.6 470 336.6 470 DL 340.128 470 340.128 470 DL 343.728 470 343.728 -470 DL 347.328 470 347.328 470 DL 350.928 470 350.928 470 DL 354.384 -469.352 354.384 469.352 DL(tbl2html)316.499 462.98 Q 333 488 MT -1.8 --7.2 RL 3.6 0 RL CL 0 Fg 333 488 MT -1.8 -7.2 RL 3.6 0 RL CL .1 LW 0 Cg -ST .36 LW 333 480.8 333 470 DL 315 497 9 -180 90 DA 315 497 9 -90 180 DA -351 497 9 -0 -90 DA 351 497 9 90 0 DA 306 497 306 497 DL 351 488 315 488 -DL 360 497 360 497 DL 315 506 351 506 DL(ms2html)316.251 498.98 Q 333 -524 MT -1.8 -7.2 RL 3.6 0 RL CL 0 Fg 333 524 MT -1.8 -7.2 RL 3.6 0 RL CL -.1 LW 0 Cg ST .36 LW 333 516.8 333 506 DL 360 560 MT 0 -36 RL -54 0 RL 0 -36 RL CL ST F3(HTML)320.252 543.98 Q 444.6 443 441 443 DL 452.232 443 -448.632 443 DL 459.792 443 456.192 443 DL 467.424 443 463.824 443 DL -474.984 443 471.384 443 DL 482.616 443 479.016 443 DL 490.176 443 -486.576 443 DL 497.808 443 494.208 443 DL 505.368 443 501.768 443 DL 513 -443 509.4 443 DL 513 439.4 513 443 DL 513 432.92 513 436.52 DL 513 -426.44 513 430.04 DL 513 419.96 513 423.56 DL 513 413.48 513 417.08 DL -513 407 513 410.6 DL 509.4 407 513 407 DL 501.768 407 505.368 407 DL -494.208 407 497.808 407 DL 486.576 407 490.176 407 DL 479.016 407 -482.616 407 DL 471.384 407 474.984 407 DL 463.824 407 467.424 407 DL -456.192 407 459.792 407 DL 448.632 407 452.232 407 DL 441 407 444.6 407 -DL 441 410.6 441 407 DL 441 417.08 441 413.48 DL 441 423.56 441 419.96 -DL 441 430.04 441 426.44 DL 441 436.52 441 432.92 DL 441 443 441 439.4 -DL(These tools)456.377 421.48 Q(don')451.4 432.48 Q 2.25(ty)-.162 G -(et e)-2.25 E(xist)-.135 E 367.056 390.584 MT 7.416 -.216 RL -.792 3.528 -RL CL 0 Fg 367.056 390.584 MT 7.416 -.216 RL -.792 3.528 RL CL .1 LW 0 -Cg ST .36 LW 437.472 406.208 441 407 DL 430.416 404.624 433.944 405.416 -DL 423.36 403.04 426.888 403.832 DL 416.304 401.528 419.832 402.32 DL -409.248 399.944 412.776 400.736 DL 402.264 398.36 405.792 399.152 DL -395.208 396.776 398.736 397.568 DL 388.152 395.264 391.68 396.056 DL -381.096 393.68 384.624 394.472 DL 374.04 392.096 377.568 392.888 DL -367.2 425 MT 7.2 -1.8 RL 0 3.6 RL CL 0 Fg 367.2 425 MT 7.2 -1.8 RL 0 3.6 -RL CL .1 LW 0 Cg ST .36 LW 437.4 425 441 425 DL 430.416 425 434.016 425 -DL 423.432 425 427.032 425 DL 416.376 425 419.976 425 DL 409.392 425 -412.992 425 DL 402.408 425 406.008 425 DL 395.424 425 399.024 425 DL -388.368 425 391.968 425 DL 381.384 425 384.984 425 DL 374.4 425 378 425 -DL 367.056 459.416 MT 6.624 -3.312 RL .792 3.528 RL CL 0 Fg 367.056 -459.416 MT 6.624 -3.312 RL .792 3.528 RL CL .1 LW 0 Cg ST .36 LW 437.472 -443.792 441 443 DL 430.416 445.376 433.944 444.584 DL 423.36 446.96 -426.888 446.168 DL 416.304 448.472 419.832 447.68 DL 409.248 450.056 -412.776 449.264 DL 402.264 451.64 405.792 450.848 DL 395.208 453.224 -398.736 452.432 DL 388.152 454.736 391.68 453.944 DL 381.096 456.32 -384.624 455.528 DL 374.04 457.904 377.568 457.112 DL F0 -(Figure 20-2: Hypothetical production \215o)151.05 583 Q 2.5(wf)-.25 G -(or dual-mode publishing)-2.5 E/F4 10/Times-Bold@0 SF 2.5(21. PIC)72 -622.6 R(Refer)2.5 E(ence)-.18 E F0(This is an annotated grammar of)97 -638.2 Q F4(pic)2.5 E F0(.)A F4 2.5(21.1. Lexical)72 662.2 R(Items)2.5 E -F0 .316(In general,)97 677.8 R F4(pic)2.817 E F0 .317 -(is a free-format, tok)2.817 F .317 -(en-oriented language that ignores whitespace outside strings.)-.1 F -(But)5.317 E -(certain lines and contructs are specially interpreted at the le)72 -689.8 Q(xical le)-.15 E -.15(ve)-.25 G(l:).15 E 3.816(Ac)97 705.4 S -1.316(omment be)-3.816 F 1.316(gins with)-.15 F F4(#)3.816 E F0 1.316 -(and continues to)3.816 F F4(\\n)3.816 E F0 1.315 -(\(comments may also follo)3.816 F 3.815(wt)-.25 G -.15(ex)-3.815 G -3.815(ti).15 G 3.815(nal)-3.815 G 3.815(ine\). A)-3.815 F(line)3.815 E -(be)72 717.4 Q .359 -(ginning with a period or backslash may be interpreted as te)-.15 F .359 -(xt to be passed through to the post-processor)-.15 F(,)-.4 E .823 -(depending on command-line options.)72 729.4 R .822 -(An end-of-line backslash is interpreted as a request to continue the) -5.822 F 0 Cg EP -%%Page: 31 31 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-31-)279.67 48 Q(line; the backslash and follo) -72 84 Q(wing ne)-.25 E(wline are ignored.)-.25 E -(Here are the grammar terminals:)97 99.6 Q/F1 9/Times-Roman@0 SF(INT)97 -115.2 Q F0 2.5(Ap)10.006 G(ositi)-2.5 E .3 -.15(ve i)-.25 H(nte).15 E -(ger)-.15 E(.)-.55 E F1(NUMBER)97 130.8 Q F0 3.37<418d>122 142.8 S .87 -(oating point numeric constant.)-3.37 F .871 -(May contain a decimal point or be e)5.871 F .871 -(xpressed in scienti\214c)-.15 F .218(notation in the style of)122 154.8 -R/F2 10/Times-Italic@0 SF(printf)2.718 E F0(\(3\)')1.96 E 2.718(s%)-.55 -G 2.718(ee)-2.718 G 2.718(scape. A)-2.718 F .217 -(trailing `i' or `I' \(indicating the unit `inch'\) is)2.718 F(ignored.) -122 166.8 Q F1(TEXT)97 182.4 Q F0 2.753(As)122 194.4 S .253 -(tring enclosed in double quotes.)-2.753 F 2.753(Ad)5.253 G .253 -(ouble quote within)-2.753 F F1(TEXT)2.754 E F0 .254 -(must be preceded by a back-)2.754 F 2.5(slash. Instead)122 206.4 R(of) -2.5 E F1(TEXT)2.5 E F0(you can use)2.5 E/F3 10/Courier@0 SF -(sprintf \( TEXT [, ...] \))158 224.4 Q F0 -.15(ex)122 246 S -(cept after the `until' and `last' k).15 E -.15(ey)-.1 G -.1(wo).15 G -(rds, and after all ordinal k).1 E -.15(ey)-.1 G -.1(wo).15 G -(rds \(`th' and friends\).).1 E F1 -1.215(VA)97 261.6 S(RIABLE)1.215 E -F0 2.525(As)122 273.6 S .025 -(tring starting with a character from the set [a-z], optionally follo) --2.525 F .025(wed by one or more charac-)-.25 F -(ters of the set [a-zA-Z0-9_].)122 285.6 Q(\(V)5 E(alues of v)-1.11 E -(ariables are preserv)-.25 E(ed across pictures.\))-.15 E F1(LABEL)97 -301.2 Q F0 2.814(As)122 313.2 S .314 -(tring starting with a character from the set [A-Z], optionally follo) --2.814 F .315(wed by one or more char)-.25 F(-)-.2 E -(acters of the set [a-zA-Z0-9_].)122 325.2 Q F1(COMMAND-LINE)97 340.8 Q -F0 2.5(Al)122 352.8 S(ine starting with a command character \(`.)-2.5 E -2.5('i)-.7 G 2.5(ng)-2.5 G(rof)-2.5 E 2.5(fm)-.25 G(ode, `\\' in T)-2.5 -E(E)-1.667 2.24 M 2.5(Xm)-1.25 -2.24 O(ode\).)-2.5 E F1 -.315(BA)97 -368.4 S(LANCED-TEXT).315 E F0 2.5(As)122 380.4 S -(tring either enclosed by `{' and `}' or with)-2.5 E F2(X)2.5 E F0(and) -2.5 E F2(X)2.5 E F0 2.5(,w)C(here)-2.5 E F2(X)2.5 E F0(doesn')2.5 E 2.5 -(to)-.18 G(ccur in the string.)-2.5 E F1 -.315(BA)97 396 S(LANCED-BOD) -.315 E(Y)-.495 E F0(Delimiters as in)122 408 Q F1 -.315(BA)2.5 G -(LANCED-TEXT).315 E F0 2.5(;t)C(he body will be interpreted as `)-2.5 E -/F4 10/Symbol SFA/F5 10/Times-Bold@0 SF(command)A F4A F5 1.666 -(...)C F0('.)-1.666 E F1(FILEN)97 423.6 Q(AME)-.315 E F0 -(The name of a \214le.)122 435.6 Q(This has the same semantics as)5 E F1 -(TEXT)2.5 E F0(.)A F1(MA)97 451.2 Q(CR)-.36 E(ON)-.36 E(AME)-.315 E F0 -(Either)122 463.2 Q F1 -1.215(VA)2.5 G(RIABLE)1.215 E F0(or)2.5 E F1 -(LABEL)2.5 E F0(.)A F5 2.5(21.2. Semi-F)72 487.2 R(ormal Grammar)-.25 E -F0 -.8(To)97 502.8 S -.1(ke).8 G(ns not enclosed in).1 E F4 1.666 -2.5 G F0(are literals, e).834 E(xcept:)-.15 E(1.)72 518.4 Q F5(\\n)17.5 -E F0(is a ne)2.5 E(wline.)-.25 E 15(2. Three)72 534 R(dots is a suf)2.5 -E(\214x meaning `replace with 0 or more repetitions of the preceding el\ -ement\(s\).)-.25 E 15(3. An)72 549.6 R(enclosure in square brack)2.5 E -(ets has its usual meaning of `this clause is optional'.)-.1 E 15 -(4. Square-brack)72 565.2 R 3.71(et-enclosed portions within tok)-.1 F -3.709(ens are optional.)-.1 F 3.709(Thus, `h)8.709 F -1.667([eigh] t') -.833 F 3.709(matches either)6.209 F(`height' or `ht'.)97 577.2 Q -(If one of these special tok)72 592.8 Q -(ens has to be referred to literally)-.1 E 2.5(,i)-.65 G 2.5(ti)-2.5 G -2.5(ss)-2.5 G(urrounded with single quotes.)-2.5 E(The top-le)97 608.4 Q --.15(ve)-.25 G(l).15 E F5(pic)2.5 E F0(object is a picture.)2.5 E F3 -( ::=)108 626.4 Q(.PS [NUMBER [NUMBER]]\\n)120 638.4 Q -( ...)120 650.4 Q(.PE \\n)120 662.4 Q F0 1.198(The ar)97 684 -R 1.199(guments, if present, represent the width and height of the pict\ -ure, causing)-.18 F F5(pic)3.699 E F0 1.199(to attempt to)3.699 F .314 -(scale it to the gi)72 696 R -.15(ve)-.25 G 2.814(nd).15 G .314 -(imensions in inches.)-2.814 F .314(In no case, ho)5.314 F(we)-.25 E --.15(ve)-.25 G 1.114 -.4(r, w).15 H .314 -(ill the X and Y dimensions of the picture).4 F -.15(ex)72 708 S .591 -(ceed the v).15 F .591(alues of the style v)-.25 F(ariables)-.25 E F5 -(maxpswid)3.092 E F0(and)3.092 E F5(maxpsheight)3.092 E F0 .592 -(\(which def)3.092 F .592(ault to the normal 8.5)-.1 F 3.092(ib).833 G -(y)-3.092 E -1.667(11 i)72 720 R(page size\).)2.5 E 0 Cg EP -%%Page: 32 32 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-32-)279.67 48 Q .597 -(If the ending `.PE' is replaced by `.PF', the page v)97 84 R .597 -(ertical position is restored to its v)-.15 F .596(alue at the time)-.25 -F .064(`.PS' w)72 96 R .064(as encountered.)-.1 F .064 -(Another alternate form of in)5.064 F -.2(vo)-.4 G .065(cation is `.PS) -.2 F(<)2.5 E/F1 9/Times-Roman@0 SF(FILEN)A(AME)-.315 E F0 .065 -(', which replaces the `.PS')B(line with a \214le to be interpreted by) -72 108 Q/F2 10/Times-Bold@0 SF(pic)2.5 E F0(\(b)2.5 E -(ut this feature is deprecated\).)-.2 E 1.323(The `.PS', `.PE', and `.P\ -F' macros to perform centering and scaling are normally supplied by the) -97 123.6 R(post-processor)72 135.6 Q(.)-.55 E(In the follo)97 151.2 Q -(wing, either `|' or a ne)-.25 E 2.5(wl)-.25 G(ine starts an alternati) --2.5 E -.15(ve)-.25 G(.).15 E/F3 10/Courier@0 SF( ::=)108 -169.2 Q( ;)120 181.2 Q( \\n)120 193.2 Q( ::=) -108 217.2 Q( [])120 229.2 Q(LABEL : [;] ) -120 241.2 Q(LABEL : [;] [])120 253.2 Q 6({<)120 -265.2 S(command> ... })-6 E(VARIABLE [:] = )120 277.2 Q -(figname = MACRONAME)120 289.2 Q(up | down | left | right)120 301.2 Q -(COMMAND-LINE)120 313.2 Q(command ...)120 325.2 Q -(print ...)120 337.2 Q(sh BALANCED-TEXT)120 349.2 Q -(copy FILENAME)120 361.2 Q(copy [FILENAME] thru MACRONAME [until TEXT]) -120 373.2 Q(copy [FILENAME] thru BALANCED-BODY [until TEXT])120 385.2 Q -(for VARIABLE = to [by [*] ] do BALANCED-BODY)120 -397.2 Q(if then BALANCED-BODY [else BALANCED-BODY])120 409.2 -Q(reset [VARIABLE [[,] VARIABLE ...]])120 421.2 Q( ::=)108 -445.2 Q(TEXT)120 457.2 Q()120 469.2 Q()120 481.2 Q F0 -.655(The current position and direction are sa)97 502.8 R -.15(ve)-.2 G -3.155(do).15 G 3.155(ne)-3.155 G .655(ntry to a `{)-3.155 F -3.332 1.666 -(... })2.5 H 3.155('c)-1.666 G .655(onstruction and restored on e)-3.155 -F(xit)-.15 E(from it.)72 514.8 Q(Note that in `if)97 530.4 Q 2.5('c).55 -G(onstructions, ne)-2.5 E(wlines can only occur in)-.25 E F1 -.315(BA) -2.5 G(LANCED-BOD).315 E(Y)-.495 E F0 5(.T)C(his means that)-5 E F3(if) -108 548.4 Q 6({.)108 560.4 S(.. })-6 E(else)108 572.4 Q 6({.)108 584.4 S -(.. })-6 E F0(will f)97 606 Q 2.5(ail. Y)-.1 F(ou ha)-1.1 E .3 -.15 -(ve t)-.2 H 2.5(ou).15 G(se the braces on the same line as the k)-2.5 E --.15(ey)-.1 G -.1(wo).15 G(rds:).1 E F3(if {)108 624 Q(...)108 636 Q 6 -(}e)108 648 S(lse {)-6 E(...)108 660 Q(})108 672 Q F0 -(This restriction doesn')97 693.6 Q 2.5(th)-.18 G -(old for the body after the `do' in a `for' construction.)-2.5 E .13 -(At the be)97 709.2 R .13(ginning of each picture, `\214gname' is reset\ - to the vbox name `graph'; this command has only)-.15 F 4.995(am)72 -721.2 S 2.495(eaning in T)-4.995 F(E)-1.667 2.24 M 4.995(Xm)-1.25 -2.24 -O 4.995(ode. While)-4.995 F 2.496(the grammar rules allo)4.996 F 4.996 -(wd)-.25 G 2.496(igits and the underscore in the v)-4.996 F 2.496 -(alue of)-.25 F 0 Cg EP -%%Page: 33 33 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-33-)279.67 48 Q 1.856(`\214gname', T)72 84 R(E) --1.667 2.24 M 4.356(Xn)-1.25 -2.24 O 1.856 -(ormally accepts uppercase and lo)-4.356 F 1.856 -(wercase letters only as box names \(you ha)-.25 F 2.155 -.15(ve t)-.2 H -4.355(ou).15 G(se)-4.355 E(`\\csname' if you really need to circumv)72 -96 Q(ent this limitation\).)-.15 E/F1 10/Courier@0 SF( ::=)108 -114 Q()120 126 Q()120 138 Q -( )120 150 Q 6(!<)120 162 S(any-expr>) --6 E( ::=)108 186 Q(== | != | && | '||')120 198 Q -( ::=)108 222 Q(TEXT == TEXT)120 234 Q(TEXT != TEXT)120 246 Q -F0 1.154(Logical operators are handled specially by)97 267.6 R/F2 10 -/Times-Bold@0 SF(pic)3.654 E F0 1.154(since the)3.654 F 3.654(yc)-.15 G -1.155(an deal with te)-3.654 F 1.155(xt strings also.)-.15 F F2(pic) -6.155 E F0(uses)3.655 E/F3 10/Times-Italic@0 SF(str)72 279.6 Q(cmp)-.37 -E F0(\(3\) to test for equality of strings; an empty string is consider\ -ed as `f).19 E(alse' for `&&' and `|)-.1 E(|'.)1.666 E F1 -( ::=)108 297.6 Q(box)120 309.6 Q F0 2.5(#c)114 G -(losed object \212 rectangle)-2.5 E F1(circle)120 321.6 Q F0 2.5(#c)96 G -(losed object \212 circle)-2.5 E F1(ellipse)120 333.6 Q F0 2.5(#c)90 G -(losed object \212 ellipse)-2.5 E F1(arc)120 345.6 Q F0 2.5(#o)114 G -(pen object \212 quarter)-2.5 E(-circle)-.2 E F1(line)120 357.6 Q F0 2.5 -(#o)108 G(pen object \212 line)-2.5 E F1(arrow)120 369.6 Q F0 2.5(#o)102 -G(pen object \212 line with arro)-2.5 E(whead)-.25 E F1(spline)120 381.6 -Q F0 2.5(#o)96 G(pen object \212 spline curv)-2.5 E(e)-.15 E F1(move)120 -393.6 Q(TEXT TEXT ...)120 405.6 Q F0 2.5(#t)54 G -.15(ex)-2.5 G 2.5(tw) -.15 G(ithin in)-2.5 E(visible box)-.4 E F1(plot TEXT)120 417.6 Q -F0 2.5(#f)36 G(ormatted te)-2.5 E(xt)-.15 E F1('[' ... ']')120 -429.6 Q F0(Dra)97 451.2 Q .632(wn objects within `[)-.15 F -3.332 1.666 -(... ])2.5 H 3.131('a)-1.666 G .631(re treated as a single composite ob\ -ject with a rectangular shape \(that)-3.131 F 1.071 -(of the bounding box of all the elements\).)72 463.2 R -1.11(Va)6.071 G -1.071(riable and label assignments within a block are local to the)1.11 -F 4.147(block. Current)72 475.2 R 1.647 -(direction of motion is restored to the v)4.147 F 1.647 -(alue at start of block upon e)-.25 F 4.146(xit. Position)-.15 F(is) -4.146 E F3(not)4.146 E F0 .903(restored \(unlik)72 487.2 R 3.403(e`)-.1 -G 2.5({})-3.403 G .903('\); instead, the current position becomes the e) --2.5 F .904(xit position for the current direction on)-.15 F(the block') -72 499.2 Q 2.5(sb)-.55 G(ounding box.)-2.5 E 0 Cg EP -%%Page: 34 34 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-34-)279.67 48 Q/F1 10/Courier@0 SF -( ::=)108 84 Q(h[eigh]t )120 96 Q F0 2.5(#s)42 G -(et height of closed \214gure)-2.5 E F1(wid[th] )120 108 Q F0 2.5 -(#s)48 G(et width of closed \214gure)-2.5 E F1(rad[ius] )120 120 Q -F0 2.5(#s)42 G(et radius of circle/arc)-2.5 E F1(diam[eter] )120 -132 Q F0 2.5(#s)30 G(et diameter of circle/arc)-2.5 E F1(up [])120 -144 Q F0 2.5(#m)66 G .3 -.15(ove u)-2.5 H(p).15 E F1(down [])120 -156 Q F0 2.5(#m)54 G .3 -.15(ove d)-2.5 H -.25(ow).15 G(n).25 E F1 -(left [])120 168 Q F0 2.5(#m)54 G .3 -.15(ove l)-2.5 H(eft).15 E -F1(right [])120 180 Q F0 2.5(#m)48 G .3 -.15(ove r)-2.5 H(ight).15 -E F1(from )120 192 Q F0 2.5(#s)42 G -(et from position of open \214gure)-2.5 E F1(to )120 204 Q F0 -2.5(#s)54 G(et to position of open \214gure)-2.5 E F1(at )120 -216 Q F0 2.5(#s)54 G(et center of open \214gure)-2.5 E F1(with ) -120 228 Q F0 2.5<238c>66 G 2.5(xc)-2.5 G -(orner/named point at speci\214ed location)-2.5 E F1(with )120 -240 Q F0 2.5<238c>42 G 2.5(xp)-2.5 G -(osition of object at speci\214ed location)-2.5 E F1(by )120 -252 Q F0 2.5(#s)48 G(et object')-2.5 E 2.5(sa)-.55 G(ttachment point) --2.5 E F1(then)120 264 Q F0 2.5(#s)108 G(equential se)-2.5 E -(gment composition)-.15 E F1(dotted [])120 276 Q F0 2.5(#s)42 G -(et dotted line style)-2.5 E F1(dashed [])120 288 Q F0 2.5(#s)42 G -(et dashed line style)-2.5 E F1(thick[ness] )120 300 Q F0 2.5(#s) -24 G(et thickness of lines)-2.5 E F1(chop [])120 312 Q F0 2.5(#c) -54 G(hop end\(s\) of se)-2.5 E(gment)-.15 E F1('->' | '<-' | '<->')120 -324 Q F0 2.5(#d)18 G(ecorate with arro)-2.5 E(ws)-.25 E F1(invis[ible]) -120 336 Q F0 2.5(#m)66 G(ak)-2.5 E 2.5(ep)-.1 G(rimiti)-2.5 E .3 -.15 -(ve i)-.25 H -.4(nv).15 G(isible).4 E F1(solid)120 348 Q F0 2.5(#m)102 G -(ak)-2.5 E 2.5(ec)-.1 G(losed \214gure solid)-2.5 E F1 -(fill[ed] [])120 360 Q F0 2.5(#s)30 G -(et \214ll density for \214gure)-2.5 E F1(colo[u]r[ed] TEXT)120 372 Q F0 -2.5(#s)30 G(et \214ll and outline color for \214gure)-2.5 E F1 -(outline[d] TEXT)120 384 Q F0 2.5(#s)42 G(et outline color for \214gure) --2.5 E F1(shaded TEXT)120 396 Q F0 2.5(#s)66 G -(et \214ll color for \214gure)-2.5 E F1(same)120 408 Q F0 2.5(#c)108 G -(op)-2.5 E 2.5(ys)-.1 G(ize of pre)-2.5 E(vious object)-.25 E F1 -(cw | ccw)120 420 Q F0 2.5(#s)84 G(et orientation of curv)-2.5 E(es)-.15 -E F1(ljust | rjust)120 432 Q F0 2.5(#a)54 G(djust te)-2.5 E -(xt horizontally)-.15 E F1(above | below)120 444 Q F0 2.5(#a)54 G -(djust te)-2.5 E(xt v)-.15 E(ertically)-.15 E F1(aligned)120 456 Q F0 -2.5(#a)90 G(lign parallel to object)-2.5 E F1(TEXT TEXT ...)120 468 Q F0 -2.5(#t)54 G -.15(ex)-2.5 G 2.5(tw).15 G(ithin object)-2.5 E F1() -120 480 Q F0 2.5(#m)96 G(otion in the current direction)-2.5 E 1.99 -(Missing attrib)97 501.6 R 1.99(utes are supplied from def)-.2 F 1.99 -(aults; inappropriate ones are silently ignored.)-.1 F -.15(Fo)6.99 G -4.49(rl).15 G(ines,)-4.49 E -(splines, and arcs, height and width refer to arro)72 513.6 Q -(whead size.)-.25 E .246(The `at' primiti)97 529.2 R .547 -.15(ve s)-.25 -H .247(ets the center of the current object.).15 F .247 -(The `with' attrib)5.247 F .247(ute \214x)-.2 F .247 -(es the speci\214ed feature)-.15 F 1.733(of the gi)72 541.2 R -.15(ve) --.25 G 4.233(no).15 G 1.733(bject to a speci\214ed location.)-4.233 F -1.732(\(Note that `with' is incorrectly described in the K)6.733 F -(ernighan)-.25 E(paper)72 553.2 Q(.\))-.55 E .176(The `by' primiti)97 -568.8 R .476 -.15(ve i)-.25 H 2.676(sn).15 G .176 -(ot documented in the tutorial portion of the K)-2.676 F .177 -(ernighan paper)-.25 F 2.677(,a)-.4 G .177(nd should prob-)-2.677 F -(ably be considered unreliable.)72 580.8 Q(The primiti)97 596.4 Q .3 --.15(ve `)-.25 H(arro).15 E(w' is a synon)-.25 E(ym for `line ->'.)-.15 -E -1.25 -.7(Te x)97 612 T 3.344(ti).7 G 3.344(sn)-3.344 G .844 -(ormally an attrib)-3.344 F .844 -(ute of some object, in which case successi)-.2 F 1.144 -.15(ve s)-.25 H -.844(trings are v).15 F .844(ertically stack)-.15 F(ed)-.1 E .83 -(and centered on the object')72 624 R 3.33(sc)-.55 G .83(enter by def) --3.33 F 3.33(ault. Standalone)-.1 F(te)3.33 E .83 -(xt is treated as though placed in an in)-.15 F(visible)-.4 E(box.)72 -636 Q 2.804(At)97 651.6 S -.15(ex)-2.804 G 2.804(ti).15 G .304 -(tem consists of a string or sprintf-e)-2.804 F .304 -(xpression, optionally follo)-.15 F .303 -(wed by positioning information.)-.25 F -1.25 -.7(Te x)72 663.6 T 5.029 -(t\().7 G 2.529(or strings speci\214ed with `sprintf)-5.029 F 2.529 -('\) may contain [gtn]rof).55 F 5.029(ff)-.25 G 2.53 -(ont changes, size changes, and local)-5.029 F(motions, pro)72 675.6 Q -(vided those changes are undone before the end of the current item.)-.15 -E 2.5(Ap)97 691.2 S(osition is an \(x,y\) coordinate pair)-2.5 E 5(.T) --.55 G(here are lots of dif)-5 E(ferent w)-.25 E -(ays to specify positions:)-.1 E 0 Cg EP -%%Page: 35 35 -%%BeginPageSetup -BP -%%EndPageSetup -/F0 10/Times-Roman@0 SF(-35-)279.67 48 Q/F1 10/Courier@0 SF -( ::=)108 84 Q()120 96 Q()120 108 Q -6(\(<)120 120 S(position> \))-6 E( ::=)108 144 Q -()120 156 Q( + )120 168 Q -( - )120 180 Q 6(\(<)120 192 S -(position> , \))-6 E -( [of the way] between and )120 204 Q -( '<' , '>')120 216 Q( ::=)108 -240 Q( , )120 252 Q 6(\(e)120 264 S(xpr-pair \))-6 E -( ::=)108 288 Q(

-. if \\n[www-html] \{\ -. \" the `\&' makes the vertical mode leave, so to say -. nop \&\X^html

:\\$*^ -. \} -.. -.\" -------------------------------------------------------------------- -.\" HX n -.\" -.\" Automatic heading level cut off. -.\" -.\" N is the depth limit of automatically linked headings. So a depth -.\" of 2 would cause grohtml to generate a list of links for `.NH 1' -.\" and `.NH 2' but not for `.NH 3'. -.\" -.de HX -. if \\n[www-html] \ -. nop \X^index:\\$*^ -.. -.\" -------------------------------------------------------------------- -.\" BCL foreground background active not-visited visited -.\" -.de BCL -. HTML -.. -.\" -------------------------------------------------------------------- -.\" BGIMG imagefile -.\" -.de BGIMG -. HTML -.. -.\" -------------------------------------------------------------------- -.\" URL url [description] [after] -.\" if description is absent then the url becomes the anchor text -.\" -.de URL -. ie !'\\$1'' \{\ -. ds \\$0:adr \\$1\" -. www:url_breaks \\$0:adr -. \} -. ie \\n[www-html] \{\ -. ie '\\$3'' \ -. ds \\$0:after \& -. el \ -. ds \\$0:after \&\\$3 -. ie '\\$2'' \ -. HTML-NS \\$1 -. el \ -. HTML-NS \\$2 -. nop \\*[\\$0:after] -. rm \\$0:after -. \} -. el \{\ -. if !r ps4html .ad l -. ie '\\$2'' \{\ -. ie '\\$1'' \{\ -. ie !'\\$3'' \ -. nop \\$3 -. \} -. el \{\ -. ie \\n[.color] \ -. nop \%\[la]\m[blue]\f[C]\\*[\\$0:adr]\f[]\m[]\[ra]\\$3 -. el \ -. nop \%\[la]\f[CB]\\*[\\$0:adr]\f[]\[ra]\\$3 -. \} -. \} -. el \{\ -. ie '\\$1'' \{\ -. ie \\n[.color] \ -. nop \m[blue]\\$2\m[]\\$3 -. el \ -. nop \f[B]\\$2\f[]\\$3 -. \} -. el \{\ -. ie \\n[.color] \ -. nop \m[blue]\\$2\m[] \%\[la]\f[C]\\*[\\$0:adr]\f[]\[ra]\\$3 -. el \ -. nop \f[B]\\$2\f[] \%\[la]\f[C]\\*[\\$0:adr]\f[]\[ra]\\$3 -. \} -. \} -. if !r ps4html .ad -. \} -. rm \\$0:adr -.. -.\" -------------------------------------------------------------------- -.\" FTP url description [after] -.\" -.\" Same as URL. -.\" -.als FTP URL -.\" -------------------------------------------------------------------- -.\" MTO address description [after] -.\" -.\" ADDRESS is the email address (without the `mailto:' prefix). -.\" -.\" DESCRIPTION is the optional name. If an empty argument is given, -.\" ADDRESS is used instead. -.\" -.\" AFTER is optional stuff printed immediately after ADDRESS -.\" (resp. DESCRIPTION). -.\" -.\" Example: -.\" -.\" Foobar has been written by -.\" .MTO fred@foo.bar "Fredrick Bloggs" . -.\" -.de MTO -. ie \\n[www-html] \{\ -. ie '\\$2'' \ -. URL mailto:\\$1 \\$1 "\\$3" -. el \ -. URL mailto:\\$1 "\\$2" "\\$3" -. \} -. el \{\ -. ie '\\$2'' \{\ -. ie '\\$1'' \{\ -. ie !'\\$3'' \ -. nop \\$3 -. \} -. el \{\ -. ie \\n[.color] \ -. nop \%\m[blue]\f[C]\\$1\f[]\m[]\\$3 -. el \ -. nop \%\f[CB]\\$1\f[]\\$3 -. \} -. \} -. el \{\ -. ie '\\$1'' \{\ -. ie \\n[.color] \ -. nop \m[blue]\\$2\m[]\\$3 -. el \ -. nop \f[B]\\$2\f[]\\$3 -. \} -. el \{\ -. ie \\n[.color] \ -. nop \m[blue]\\$2\m[] \%\[la]\f[C]\\$1\f[]\[ra]\\$3 -. el -. nop \f[B]\\$2\f[] \%\[la]\f[C]\\$1\f[]\[ra]\\$3 -. \} -. \} -. \} -.. -.\" -------------------------------------------------------------------- -.\" TAG name -.\" -.\" Generate an html name NAME. -.\" -.de TAG -. HTML -.. -.\" -------------------------------------------------------------------- -.\" IMG [-R|-L|-C] filename [width] [height] -.\" -.\" Include an image of any type (will only work for -Thtml). -.\" -.\" Alignment is centered by default (-C). -.\" Default value for WIDTH is 1i. -.\" If HEIGHT is not given, WIDTH is used as the height. -.\" -.de IMG -. ie \\n[www-html] \{\ -. ie '\\$2'-R' \ -. DEVTAG ".right-image" -. el \{\ -. ie '\\$2'-L' \ -. DEVTAG ".left-image" -. el \ -. DEVTAG ".centered-image" -. \} -. nr www-width 100 -. if !'\\$3'' \ -. nr www-width \\$3 -. nr www-height \\n[www-width] -. if !'\\$4'' \ -. nr www-height \\$4 -. HTML Image \\$1 -. \} -. el \ -. nop \[la]\f[C]\\$1\f[]\[ra] -.. -.\" -------------------------------------------------------------------- -.\" PIMG [-R|-L|-C] filename [width] [height] -.\" -.\" Include a png image. It will work for -Tps and -Thtml. -.\" The default value for WIDTH and HEIGHT is zero; the default -.\" alignment is centering (-C). -.\" -.\" Note: This macro can only be used with the `-U' option of groff, -.\" activating unsafe mode, if not used with -Thtml; the PNG image -.\" is then converted to the EPS format using netpbm utilities. -.\" -.de PIMG -. ie \\n[www-html] \{\ -. ie '\\$1'-R' \ -. DEVTAG ".right-image" -. el \{\ -. ie '\\$1'-L' \ -. DEVTAG ".left-image" -. el \ -. DEVTAG ".centered-image" -. \} -. nr www-width 0 -. nr www-height 0 -. if !'\\$3'' \ -. nr www-width (\\$3 * 100 / 240) -. if !'\\$4'' \ -. nr www-height (\\$4 * 100 / 240) -. ie (\\n[www-width] == 0) \{\ -. ie (\\n[www-height] == 0) \ -. HTML Image \\$2 -. el \ -. HTML Image \\$2 -. \} -. el \{\ -. ie (\\n[www-height] == 0) \ -. HTML Image \\$2 -. el \ -. HTML Image \\$2 -. \} -. \} -. el \{\ -. if !r ps4html \{\ -. www-make-unique-name -. sy pngtopnm \\$2 | pnmcrop -white | pnmtops -noturn > \\*[www-unique-name].eps -. ie '\\$1'-C' \ -. PSPIC \\*[www-unique-name].eps \\$3 \\$4 -. el \ -. PSPIC \\$1 \\*[www-unique-name].eps \\$3 \\$4 -. \} -. \} -.. -. -.\" -------------------------------------------------------------------- -.\" auxiliary definitions for MPIMG -.\" -.nr www-left-ll-trap 0 -.nr www-left-po-trap 0 -.nr www-right-ll-trap 0 -. -.de www-finish-left-po -. po -(\\n[www-left-indent]u + \\n[www-image-gap]u) -. wh \\n[www-left-po-trap]u -. nr www-left-indent 0 -.. -. -.\" called when the -R picture is finished -.de www-finish-right-ll -. ll +(\\n[www-right-indent]u + \\n[www-image-gap]u) -. \" now see whether we need to inline www-finish-left-ll -. if (\\n[www-left-ll-trap]u > 0) \ -. if ((\\n[www-right-ll-trap]u + 1v) >= \\n[www-left-ll-trap]u) \{\ -. mk www-left-po-trap -. nr www-left-po-trap +1v -. wh \\n[www-left-po-trap]u www-finish-left-po -. ll +\\n[www-left-indent]u -. wh \\n[www-left-ll-trap]u -. nr www-left-ll-trap 0 -. \} -. \" and see whether we need to inline www-finish-left-po -. if (\\n[www-left-po-trap]u > 0) \ -. if ((\\n[www-right-ll-trap]u + 1v) >= \\n[www-left-po-trap]u) \{\ -. po -\\n[www-left-indent]u -. wh \\n[www-left-po-trap]u -. nr www-left-indent 0 -. \} -. wh \\n[www-right-ll-trap]u -. nr www-right-ll-trap 0 -.. -. -.de www-finish-left-ll -. if (\\n[www-right-ll-trap] > 0) \ -. if ((\\n[www-left-ll-trap] + 1v) >= \\n[www-right-ll-trap]) \{\ -. ll +\\n[www-right-indent]u -. nr www-right-ll-trap 0 -. \} -. mk www-left-po-trap -. nr www-left-po-trap +1v -. wh \\n[www-left-po-trap]u www-finish-left-po -. ll +(\\n[www-left-indent]u + \\n[www-image-gap]u) -. wh \\n[www-left-ll-trap]u -. nr www-left-ll-trap 0 -.. -. -.\" www-handle-percent arg N1 N2 S1 -.\" arg - input string (number or number%) -.\" output parameters: -.\" N1 - name of number register 1=absolute 0=percentage -.\" N2 - number register name for absolute value -.\" S1 - string register name for percentage value -. -.de www-handle-percent -. ds www-percent \\$1\" -. substring www-percent -1 -1 -. -. ie '\\*[www-percent]'%' \{\ -. ds www-abs \\$1\" -. substring www-abs 0 -2 -. nr \\$2 0 -. nr \\$3 \\*[www-abs] -. ds \\$4 \\$1\" -. \} -. el \{\ -. nr \\$2 1 -. nr \\$3 \\$1 -. ds \\$4 none\" -. \} -.. -. -.\" -------------------------------------------------------------------- -.\" MPIMG [-R|-L] [-G gap] filename [width [height]] -.\" -.\" Include a png image and wrap text around it. It will work for -.\" -Tps and -Thtml. The default value for WIDTH is 1i; default value -.\" for HEIGHT is WIDTH; the default alignment is left (-L). -.\" -G is used to insert a gap between the text and the image. -.\" The height and width can also be given as a percentage. -.\" The PostScript device converts the percentage width into an -.\" absolute value by using \\n[.l], and the height by using \\n[.p]. -.\" -.\" -.\" Note: This macro can only be used with the `-U' option of groff, -.\" activating unsafe mode, if not used with -Thtml; the PNG image -.\" is then converted to the EPS format using netpbm utilities. -.\" -. -.nr www-htmlimage-gap 0 -. -.de MPIMG -. nr www-image-just 1 -. nr www-image-gap 0 -. while (\\n[.$] > 0) \{\ -. if '-L'\\$1' \{\ -. nr www-image-just 1 -. shift -. continue -. \} -. if '-R'\\$1' \{\ -. nr www-image-just 0 -. shift -. continue -. \} -. if '-G'\\$1' \{\ -. nr www-image-gap \\$2 -. nr www-htmlimage-gap (\\$2 * 100 / 240) -. shift 2 -. continue -. \} -. break -. \} -. -. nr www-width 1i -. nr www-height 1i -. ds www-size-specs "width=\\n[www-width] height=\\n[www-height]\" -. ie !'\\$2'' \{\ -. nr www-is-absolute 0 -. nr www-absolute 0 -. ds www-percentage none\" -. www-handle-percent \\$2 www-is-absolute www-absolute www-percentage -. ie !\\n[www-is-absolute] \{\ -. \" percentage of linelength requested -. nr www-width (\\n[www-absolute] * \\n[.l] / 100) -. if \\n[www-html] \ -. nr www-width (\\n[www-width] * 100 / 240) -. ds www-size-specs "width=\\*[www-percentage]\" -. \} -. el \{\ -. nr www-width \\n[www-absolute] -. if \\n[www-html] \ -. nr www-width (\\n[www-width] * 100 / 240) -. ds www-size-specs "width=\\n[www-width]\" -. \} -. -. nr www-height \\n[www-width] -. ie !'\\$3'' \{\ -. nr www-is-absolute 0 -. nr www-absolute 0 -. ds www-percentage none\" -. www-handle-percent \\$3 www-is-absolute www-absolute www-percentage -. ie !\\n[www-is-absolute] \{\ -. \" percentage of pagelength requested -. nr www-height (\\n[www-absolute] * \\n[.p] / 100) -. if \\n[www-html] \ -. nr www-height (\\n[www-height] * 100 / 240) -. ds www-size-specs "\\*[www-size-specs] height=\\*[www-percentage]\" -. \} -. el \{\ -. nr www-height \\n[www-absolute] -. if \\n[www-html] \ -. nr www-height (\\n[www-height] * 100 / 240) -. ds www-size-specs "\\*[www-size-specs] height=\\*[www-height]\" -. \} -. \} -. \} -. el \{\ -. \" height not specified; use width value -. ie !\\n[www-is-absolute] \{\ -. \" percentage value -. ds www-size-specs "\\*[www-size-specs] height=\\*[www-percentage]\" -. nr www-height \\n[www-width] -. \} -. el \{\ -. ds www-size-specs "\\*[www-size-specs] height=\\*[www-width]\" -. nr www-height \\n[www-width] -. \} -. \} -. -. ie \\n[www-html] \{\ -. ie !\\n[www-image-just] \ -. HTML Image \\$1 -. el \ -. HTML Image \\$1 -. \} -. el \{\ -. tm www-width is \\n[www-width] -. tm www-height is \\n[www-height] -. if !r ps4html \{\ -. www-make-unique-name -. sy pngtopnm \\$1 | pnmcrop -white | pnmtops -noturn > \\*[www-unique-name].eps -. ie !\\n[www-image-just] \{\ -. \" we must now disable a possible left image trap -. sp -1 -. if (\\n[www-left-ll-trap] > 0) \ -. wh \\n[www-left-ll-trap]u -. if (\\n[www-left-po-trap] > 0) \ -. wh \\n[www-left-po-trap]u -. PSPIC -R \\*[www-unique-name].eps \\n[www-width]u \\n[www-height]u -. sp -\\n[ps-desht]u -. nr www-right-indent \\n[ps-deswid]u -. \" we want to have some space between text and image, -. \" so the line length must be shorter -. ll -(\\n[www-right-indent]u + \\n[www-image-gap]u) -. mk www-right-ll-trap -. nr www-right-ll-trap +(\\n[ps-desht]u - 1v) -. wh \\n[www-right-ll-trap]u www-finish-right-ll -. \" now restore possible left trap -. if (\\n[www-left-ll-trap] > 0) \ -. wh \\n[www-left-ll-trap]u www-finish-left-ll -. if (\\n[www-left-po-trap] > 0) \ -. wh \\n[www-left-po-trap]u -. \} -. el \{\ -. \" we must now disable a possible right image trap -. if (\\n[www-right-ll-trap] > 0) \ -. wh \\n[www-right-ll-trap]u -. PSPIC -L \\*[www-unique-name].eps \\n[www-width]u \\n[www-height]u -. sp -\\n[ps-desht]u -. nr www-left-indent \\n[ps-deswid]u -. \" increase offset by gap -. po +(\\n[www-left-indent]u + \\n[www-image-gap]u) -. \" decrease line length by gap -. ll -(\\n[www-left-indent]u + \\n[www-image-gap]u) -. mk www-left-ll-trap -. nr www-left-ll-trap +(\\n[ps-desht]u - 1v) -. wh \\n[www-left-ll-trap]u www-finish-left-ll -. \" now restore possible right trap -. if (\\n[www-right-ll-trap] > 0) \ -. wh \\n[www-right-ll-trap]u www-finish-right-ll -. \} -. \} -. \} -.. -.\" -------------------------------------------------------------------- -.\" HnS n -.\" -.\" Begin heading. Heading level is N. -.\" -.\" HnE -.\" -.\" End heading. -.\" -.\" If your heading contains URL, FTP, MTO macros you might wish to -.\" disable automatic links to headings. This can be done via `-P-l' -.\" from the command line or by using a cakk to `.HX 0'. -.\" -.nr www-heading-no -1 -. -.de HnS -. ie '\\$1'' \ -. nr www-heading-no 1 -. el \ -. nr www-heading-no \\$1 -. DEVTAG-NH \\n[www-heading-no] -.. -. -.de HnE -. if (\\n[www-heading-no] == -1) \ -. www-error "HnE found without a corresponding HnS" -. DEVTAG-EO-H -.. -.\" -------------------------------------------------------------------- -.\" LK -.\" -.\" Emit the automatically collected links derived from -.\" section/numbered headings at this position. -.\" -.de LK -. DEVTAG ".links" -.. -.\" -------------------------------------------------------------------- -.\" HR -.\" -.\" Produce a horizontal line. -.\" -.de HR -. HTML

"
" -.. -.\" -------------------------------------------------------------------- -.\" NHR -.\" -.\" Suppresses the generation of the top and bottom rules which grohtml -.\" emits by default. -.\" -.de NHR -. DEVTAG ".no-auto-rule" -.. -.\" -.\" www-end-nowhere - end of input trap called to finish diversion. -.\" -.de www-end-nowhere -. if !\\n[www-html] \ -. di -. DEVTAG-EO-TL -.. -.\" -------------------------------------------------------------------- -.\" HTL -.\" -.\" Generate an HTML title only. This differs from the -ms .TL macro -.\" which generates both an HTML title and an H1 heading. -.\" -.\" This is useful when an author wishes to use a HTML title as search -.\" engine fodder but a graphic title in the document. -.\" -.\" The macro terminates when a space or break is seen (.sp, .br). -.\" -.de HTL -. DEVTAG ".html-tl" -. if !\\n[www-html] \ -. di www-nowhere -. it 2 www-end-nowhere -.. -. -.\" -------------------------------------------------------------------- -.\" auxiliary definitions for lists -.\" -.ds www-ul-level1 \[bu]\ \ \" -.ds www-ul-level2 \[sq]\ \ \" -.ds www-ul-level3 \[ci]\ \ \" -.nr www-ul-level 0 -. -.ds www-ol-level1 decimal\" -.ds www-ol-level2 lower-alpha\" -.ds www-ol-level3 lower-roman\" -.ds www-ol-tmp 00\ \ \" -.nr www-ol-ctr1 0 1 -.nr www-ol-ctr2 0 1 -.nr www-ol-ctr3 0 1 -.af www-ol-ctr2 a -.af www-ol-ctr3 i -.nr www-ol-level 0 -. -.nr www-dl-level 0 -.nr www-dl-shift 5n -. -.\" -.\" allow nested lists -.\" -.nr www-depth 0 -.nr www-li-indent \n[.i] -.ds www-level0 nop\" -.ds www-level1 -.ds www-level2 -.ds www-level3 -.ds www-level4 -.ds www-level5 -.ds www-level6 -.ds www-level7 -.ds www-level8 -.ds www-level9 -. -.\" which macro to use for LI -.de www-push-li -. nr www-depth +1 -. ds www-level\\n[www-depth] \\$1\" -. als LI \\$1 -.. -. -.de www-pop-li -. nr www-depth -1 -. als LI \\*[www-level\\n[www-depth]] -.. -. -.\" -.\" Auxiliary macro for ULS. -.\" -.de www-push-ul-level -. nr www-ul-level +1 -. if (\\n[www-ul-level] > 3) \ -. www-error "ULS: too many levels of indentation (\\n[www-ul-level])" -.. -.\" -.\" Auxiliary macro for ULE. -.\" -.de www-pop-ul-level -. if !\\n[www-ul-level] \ -. www-error "ULE: trying to terminate a list which does not exist" -. nr www-ul-level -1 -.. -. -.\" -.\" Auxiliary macro for OLS. -.\" -.de www-push-ol-level -. nr www-ol-level +1 -. if (\\n[www-ol-level] > 3) \ -. www-error "OLS: too many levels of indentation (\\n[www-ol-level])" -.. -.\" -.\" Auxiliary macro for OLE. -.\" -.de www-pop-ol-level -. if !\\n[www-ol-level] \ -. www-error "OLE: trying to terminate a list which does not exist" -. nr www-ol-level -1 -.. -. -.\" -------------------------------------------------------------------- -.\" ULS -.\" -.\" Start an unordered list. -.\" -.de ULS -. www-push-li www-li-ul -. www-push-ul-level -. ie \\n[www-html] \ -. HTML

"
    " -. el \{\ -. nr www-li-indent +\w'\\*[www-ul-level\\n[www-ul-level]]'u -. \} -.. -.\" -------------------------------------------------------------------- -.\" ULE -.\" -.\" End an unordered list. -.\" -.de ULE -. ie \\n[www-html] \ -. HTML "
" -. el \{\ -. nr www-li-indent -\w'\\*[www-ul-level\\n[www-ul-level]]'u -. in \\n[www-li-indent]u -. \} -. www-pop-ul-level -. www-pop-li -.. -.\" -------------------------------------------------------------------- -.\" OLS -.\" -.\" Start an ordered list. -.\" -.de OLS -. www-push-li www-li-ol -. www-push-ol-level -. ie \\n[www-html] \ -. HTML

"
    " -. el \ -. nr www-li-indent +\w'\\*[www-ol-tmp]'u -.. -.\" -------------------------------------------------------------------- -.\" OLE -.\" -.\" End an ordered list. -.\" -.de OLE -. ie \\n[www-html] \ -. HTML "
" -. el \{\ -. nr www-li-indent -\w'\\*[www-ol-tmp]'u -. in \\n[www-li-indent]u -. nr www-ol-ctr\\n[www-ol-level] 0 1 -. \} -. www-pop-ol-level -. www-pop-li -.. -.\" -------------------------------------------------------------------- -.\" -.\" DLS -.\" Start a definition list. -.\" -.de DLS -. www-push-li www-li-dl -. nr www-dl-level +1 -. ie \\n[www-html] \ -. HTML

"
" -. el \{\ -. nr www-li-indent +\\n[www-dl-shift]u -. in \\n[www-li-indent]u -. \} -.. -.\" -------------------------------------------------------------------- -.\" -.\" DLE -.\" End a definition list. -.\" -.de DLE -. ie \\n[www-html] \ -. HTML "
" -. el \{\ -. nr www-li-indent -\\n[www-dl-shift]u -. in \\n[www-li-indent]u -. \} -. nr www-dl-level -1 -. www-pop-li -.. -.\" -------------------------------------------------------------------- -.\" LI -.\" -.\" Insert a list item. -.\" -.\" ******** -.\" www-li-ul - bulleted list item -.\" -.de www-li-ul -. ie \\n[www-html] \ -. HTML-NS "
  • " -. el \{\ -. www:paraspace -. in \\n[www-li-indent]u -. ti -\w'\\*[www-ul-level\\n[www-ul-level]]'u -. nop \\*[www-ul-level\\n[www-ul-level]]\c -. \} -.. -.\" ******** -.\" www-li-ol - numbered list item -.\" -.de www-li-ol -. ie \\n[www-html] \ -. HTML-NS "
  • " -. el \{\ -. www:paraspace -. in \\n[www-li-indent]u -. ti -\w'\\n[www-ol-ctr\\n[www-ol-level]]\ \ 'u -. nop \\n+[www-ol-ctr\\n[www-ol-level]]\ \ \c -. \} -.. -.\" ******** -.\" www-li-dl - definition list item -.\" -.de www-li-dl -. ie \\n[www-html] \{\ -. HTML "
    \\$1
    " -. HTML-NS "
    " -. \} -. el \{\ -. www:paraspace -. in \\n[www-li-indent]u -. ti -\\n[www-dl-shift]u -. nop \&\\$1 -. br -. \} -.. -.\" -------------------------------------------------------------------- -.\" DC l text [color] -.\" -.\" L is the letter to be dropped and enlarged. -.\" -.\" TEXT is the following text whose height the first letter should not -.\" exceed. -.\" -.\" COLOR is the optional color of the dropped letter (default black). -.\" -.de DC -. ds www-dropcolor black -. if !'\\$3'' \ -. ds www-dropcolor \\$3 -. ie '\*(.T'html' \{\ -. www-make-unique-name -. nr www-drop-width (100u * \\n[.v]u * 3u / \\n[.l]u) -. MPIMG -L \\*[www-unique-name].png "\\n[www-drop-width]%" -. \} -. el \{\ -. ie r ps4html \{\ -. www-make-unique-name -. \" To avoid interferences with another DC macro call which is located -. \" very near to the current one, we draw the glyph on a separate page. -. \" Otherwise it could theoretically happen that the dropped capital -. \" glyphs overlap. -. bp -. ev www-DC -. vs 320p -. nop \O[5i\\*[www-unique-name].png]\O[1] -. nop \m[\\*[www-dropcolor]]\s[160]\O[3]\\$1\O[4] -. nop \O[2]\O[0] -. br -. ev -. bp -. \} -. el \{\ -. ie n \ -. nop \\$1\c -. el \{\ -. nr dummy \w'\\$1'u -. nr dcht ((\\n[.v] + \\n[rst]) * \\n[.ps] / \\n[rst]) -. char \[dcap] \m[\\*[www-dropcolor]]\s'\\n[dcht]u'\\$1 -. nop \v'\\n[.v]u'\\[dcap]\v'-\\n[.v]u'\c -' ti \w'\\[dcap]'u -. \} -. \} -. \} -. nop \\$2 -.. -.\" -------------------------------------------------------------------- -.\" Setup around HTML-IMAGE and friends -.\" -.\" now set up TS, TE, EQ, EN default macros -.\" -.do if !d TS .do ds TS HTML-IMAGE -.do if !d TE .do ds TE HTML-IMAGE-END -.do if !d EQ .do ds EQ HTML-IMAGE -.do if !d EN .do ds EN HTML-IMAGE-END -.\" -.\" supplementary macros used by other macro sets -.\" -.\" here are some tags specially for -Tps or -Thtml when invoked by -.\" pre-html to generate png images from postscript. -. -.\" -------------------------------------------------------------------- -.\" HTML-DO-IMAGE - tells troff to issue an image marker which can be -.\" read back by pre-html -.\" -.de HTML-DO-IMAGE -. if r ps4html \ -. nop \O[5\\$2\\$1.png]\O[1]\O[3] -. if \\n[www-html] \ -. nop \O[5\\$2\\$1.png]\O[0]\O[3] -.. -.\" -------------------------------------------------------------------- -.\" HTML-IMAGE-END - terminates an image for html -.\" -.de HTML-IMAGE-END -. if r ps4html \ -. nop \O[4]\O[2]\O[0] -. if \\n[www-html] \ -. nop \O[4]\O[2]\O[1] -.. -. -.nr www-png-no 0 -. -.\" -------------------------------------------------------------------- -.\" www-make-unique-name - generates another unique name in string -.\" `www-unique-name' -.\" -.de www-make-unique-name -. nr www-png-no +1 -. ds www-unique-name \\*[www-image-template]\\n[www-png-no] -.. -.\" -------------------------------------------------------------------- -.\" HTML-IMAGE and friends tell grohtml that this region of text needs -.\" to be rendered as an image. -.\" -.de HTML-IMAGE -. \" generates a centered image -. www-make-unique-name -. HTML-DO-IMAGE \\*[www-unique-name] c -.. -. -.de HTML-IMAGE-RIGHT -. www-make-unique-name -. HTML-DO-IMAGE \\*[www-unique-name] r -.. -. -.de HTML-IMAGE-LEFT -. www-make-unique-name -. HTML-DO-IMAGE \\*[www-unique-name] l -.. -. -.de HTML-IMAGE-INLINE -. www-make-unique-name -. HTML-DO-IMAGE \\*[www-unique-name] i -.. -. -.\" -------------------------------------------------------------------- -.\" JOBNAME -.\" -.\" Generate multiple output files containing the html. -.\" A file is split whenever a .SH or .NH 1 is encountered. -.\" The argument to JOBNAME is the file stem for future output files. -.\" -.de JOBNAME -. DEVTAG .job-name \\$1 -.. -.\" -------------------------------------------------------------------- -.\" HEAD -.\" -.\" Adds information to the section of the html -.\" document -.\" -------------------------------------------------------------------- -.de HEAD -. DEVTAG .head "\\$*" -.. -.\" -------------------------------------------------------------------- -.\" Final Setup -.\" -------------------------------------------------------------------- -. -.if \n[www-html] \{\ -. nh -. nr HY 0 -.\} -. -.\" -.\" start of some code -.\" -. -.de CDS -.ft C -.nf -.. -.\" -.\" end of some code -.\" -. -.de CDE -.fi -.ft P -.. -. -.if r ps4html .nop \O[0] -.cp \n(_C -. -.\" now set -. -.\" -------------------------------------------------------------------- -.\" Emacs settings -.\" -------------------------------------------------------------------- -. -.\" Local Variables: -.\" mode: nroff -.\" End: -.\" EOF diff --git a/gen/usr/share/groff/site-font/.gitkeep b/gen/usr/share/groff/site-font/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/gen/usr/share/info/groff b/gen/usr/share/info/groff deleted file mode 100644 index f2b3558..0000000 --- a/gen/usr/share/info/groff +++ /dev/null @@ -1,301 +0,0 @@ -This is groff, produced by makeinfo version 4.8 from ./groff.texinfo. - - This manual documents GNU `troff' version 1.19.2. - - Copyright (C) 1994-2000, 2001, 2002, 2003, 2004, 2005 Free Software -Foundation, Inc. - - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation License, - Version 1.1 or any later version published by the Free Software - Foundation; with no Invariant Sections, with the Front-Cover texts - being `A GNU Manual," and with the Back-Cover Texts as in (a) - below. A copy of the license is included in the section entitled - `GNU Free Documentation License." - - (a) The FSF's Back-Cover Text is: `You have freedom to copy and - modify this GNU Manual, like GNU software. Copies published by - the Free Software Foundation raise funds for GNU development." - -INFO-DIR-SECTION Typesetting -START-INFO-DIR-ENTRY -* Groff: (groff). The GNU troff document formatting system. -END-INFO-DIR-ENTRY - - -Indirect: -groff-1: 1019 -groff-2: 296006 -groff-3: 505206 - -Tag Table: -(Indirect) -Node: Top1019 -Node: Introduction2325 -Node: What Is groff?2800 -Node: What Is groff?-Footnotes4312 -Ref: What Is groff?-Footnote-14381 -Node: History4418 -Node: groff Capabilities9374 -Node: Macro Package Intro10565 -Node: Preprocessor Intro11193 -Node: Output device intro12695 -Node: Credits13165 -Node: Invoking groff13674 -Node: Groff Options14967 -Node: Environment25164 -Node: Macro Directories26996 -Node: Font Directories28327 -Node: Paper Size29973 -Node: Invocation Examples31323 -Node: Invocation Examples-Footnotes32520 -Ref: Invocation Examples-Footnote-132599 -Node: grog32832 -Node: Tutorial for Macro Users34110 -Node: Basics34531 -Node: Basics-Footnotes39351 -Ref: Basics-Footnote-139404 -Ref: Basics-Footnote-239498 -Node: Common Features39612 -Node: Paragraphs40402 -Node: Sections and Chapters41909 -Node: Headers and Footers42410 -Node: Page Layout Adjustment43292 -Node: Displays43568 -Node: Footnotes and Annotations44835 -Node: Table of Contents45503 -Node: Indices46027 -Node: Paper Formats46438 -Node: Multiple Columns46820 -Node: Font and Size Changes47079 -Node: Predefined Strings47392 -Node: Preprocessor Support47739 -Node: Configuration and Customization48304 -Node: Macro Packages48682 -Node: man49239 -Node: Man options49676 -Node: Man options-Footnotes52370 -Ref: Man options-Footnote-152433 -Node: Man usage53159 -Node: Man font macros59204 -Node: Miscellaneous man macros61036 -Node: Predefined man strings62767 -Node: Preprocessors in man pages63334 -Node: Optional man extensions63957 -Node: mdoc67957 -Node: ms68131 -Node: ms Intro68635 -Node: General ms Structure69313 -Node: General ms Structure-Footnotes71763 -Ref: General ms Structure-Footnote-171844 -Node: ms Document Control Registers71890 -Node: ms Cover Page Macros78371 -Node: ms Body Text81391 -Node: Paragraphs in ms81880 -Node: Headings in ms83594 -Node: Highlighting in ms85687 -Node: Lists in ms88278 -Node: Indentation values in ms91701 -Node: Tabstops in ms92330 -Node: ms Displays and Keeps92752 -Node: ms Insertions96706 -Node: Example multi-page table98278 -Node: ms Footnotes98734 -Node: ms Page Layout99999 -Node: ms Headers and Footers100525 -Node: ms Margins101576 -Node: ms Multiple Columns101830 -Node: ms TOC102647 -Node: ms Strings and Special Characters105379 -Node: ms Strings and Special Characters-Footnotes108189 -Ref: ms Strings and Special Characters-Footnote-1108296 -Node: Differences from AT&T ms108383 -Node: Missing ms Macros110615 -Node: Additional ms Macros111385 -Node: Naming Conventions112653 -Node: me113684 -Node: mm113847 -Node: gtroff Reference113999 -Node: Text114918 -Node: Filling and Adjusting115482 -Node: Hyphenation116204 -Node: Sentences116996 -Node: Tab Stops118146 -Node: Implicit Line Breaks119049 -Node: Input Conventions120071 -Node: Input Encodings120872 -Node: Measurements122842 -Node: Measurements-Footnotes125041 -Ref: Measurements-Footnote-1125106 -Node: Default Units125178 -Node: Expressions126233 -Node: Identifiers128963 -Node: Embedded Commands132825 -Node: Requests133577 -Node: Request and Macro Arguments135163 -Node: Request and Macro Arguments-Footnotes137653 -Ref: Request and Macro Arguments-Footnote-1137748 -Ref: Request and Macro Arguments-Footnote-2137876 -Node: Macros138230 -Node: Escapes138616 -Node: Comments141496 -Node: Comments-Footnotes144072 -Ref: Comments-Footnote-1144129 -Node: Registers144228 -Node: Setting Registers144736 -Node: Interpolating Registers147036 -Node: Auto-increment147853 -Node: Assigning Formats149403 -Node: Built-in Registers152324 -Node: Manipulating Filling and Adjusting155850 -Node: Manipulating Hyphenation164383 -Node: Manipulating Hyphenation-Footnotes175888 -Ref: Manipulating Hyphenation-Footnote-1175977 -Node: Manipulating Spacing176052 -Node: Tabs and Fields180045 -Node: Tabs and Fields-Footnotes186044 -Ref: Tabs and Fields-Footnote-1186115 -Node: Leaders186193 -Node: Leaders-Footnotes187797 -Ref: Leaders-Footnote-1187852 -Node: Fields187933 -Node: Character Translations189361 -Node: Troff and Nroff Mode198591 -Node: Line Layout200586 -Node: Line Control206522 -Node: Page Layout209194 -Node: Page Control212862 -Node: Fonts and Symbols216605 -Node: Changing Fonts217185 -Node: Font Families219319 -Node: Font Positions223890 -Node: Using Symbols227035 -Node: Using Symbols-Footnotes241744 -Ref: Using Symbols-Footnote-1241811 -Ref: Using Symbols-Footnote-2242264 -Ref: Using Symbols-Footnote-3242335 -Ref: Using Symbols-Footnote-4242574 -Node: Special Fonts242637 -Node: Artificial Fonts243822 -Node: Ligatures and Kerning249332 -Node: Sizes255358 -Node: Sizes-Footnotes256194 -Ref: Sizes-Footnote-1256245 -Node: Changing Type Sizes256657 -Node: Fractional Type Sizes262129 -Node: Strings265160 -Node: Conditionals and Loops273165 -Node: Operators in Conditionals273392 -Node: Operators in Conditionals-Footnotes276463 -Ref: Operators in Conditionals-Footnote-1276554 -Ref: Operators in Conditionals-Footnote-2276633 -Node: if-else276732 -Node: while278305 -Node: Writing Macros280692 -Node: Copy-in Mode285531 -Node: Parameters286425 -Node: Page Motions288686 -Node: Drawing Requests296006 -Node: Traps305731 -Node: Page Location Traps306343 -Node: Diversion Traps312169 -Node: Input Line Traps312784 -Node: Blank Line Traps313813 -Node: End-of-input Traps314100 -Node: Diversions314773 -Node: Environments321751 -Node: Suppressing output325621 -Node: Colors327446 -Node: I/O331019 -Node: Postprocessor Access339126 -Node: Miscellaneous340692 -Node: Miscellaneous-Footnotes346174 -Ref: Miscellaneous-Footnote-1346241 -Node: Gtroff Internals346311 -Node: Gtroff Internals-Footnotes350624 -Ref: Gtroff Internals-Footnote-1350697 -Node: Debugging350831 -Node: Warnings356659 -Node: Warnings-Footnotes359596 -Ref: Warnings-Footnote-1359653 -Node: Implementation Differences359774 -Node: Implementation Differences-Footnotes364405 -Ref: Implementation Differences-Footnote-1364498 -Node: Preprocessors364633 -Node: geqn364935 -Node: Invoking geqn365069 -Node: gtbl365175 -Node: Invoking gtbl365300 -Node: gpic365406 -Node: Invoking gpic365531 -Node: ggrn365637 -Node: Invoking ggrn365762 -Node: grap365868 -Node: grefer366144 -Node: Invoking grefer366280 -Node: gsoelim366396 -Node: Invoking gsoelim366522 -Node: Output Devices366643 -Node: Special Characters366882 -Node: grotty367051 -Node: Invoking grotty367200 -Node: grops367316 -Node: Invoking grops367475 -Node: Embedding PostScript367615 -Node: grodvi367749 -Node: Invoking grodvi367886 -Node: grolj4368002 -Node: Invoking grolj4368140 -Node: grolbp368256 -Node: Invoking grolbp368395 -Node: grohtml368511 -Node: Invoking grohtml368699 -Node: grohtml specific registers and strings368867 -Node: gxditview369744 -Node: Invoking gxditview369880 -Node: File formats370011 -Node: gtroff Output370282 -Node: gtroff Output-Footnotes372122 -Ref: gtroff Output-Footnote-1372189 -Node: Language Concepts372324 -Node: Separation373070 -Node: Argument Units375321 -Node: Document Parts376474 -Node: Command Reference377876 -Node: Comment Command378287 -Node: Simple Commands378780 -Node: Simple Commands-Footnotes384700 -Ref: Simple Commands-Footnote-1384771 -Node: Graphics Commands384832 -Node: Device Control Commands392151 -Node: Obsolete Command396199 -Node: Intermediate Output Examples397480 -Node: Output Language Compatibility400272 -Node: Font Files402328 -Node: Font Files-Footnotes402942 -Ref: Font Files-Footnote-1403003 -Node: DESC File Format403064 -Node: Font File Format407463 -Node: Font File Format-Footnotes413695 -Ref: Font File Format-Footnote-1413768 -Ref: Font File Format-Footnote-2413859 -Node: Installation414078 -Node: Copying This Manual414204 -Node: GNU Free Documentation License414442 -Node: Request Index436850 -Node: Escape Index452736 -Node: Operator Index459518 -Node: Register Index460999 -Node: Macro Index474581 -Node: String Index487458 -Node: Glyph Name Index496069 -Node: Font File Keyword Index496374 -Node: Program and File Index499417 -Node: Concept Index505206 - -End Tag Table - - -Local Variables: -coding: iso-8859-1 -End: diff --git a/gen/usr/share/info/groff-1 b/gen/usr/share/info/groff-1 deleted file mode 100644 index 2200dfb..0000000 --- a/gen/usr/share/info/groff-1 +++ /dev/null @@ -1,8695 +0,0 @@ -This is groff, produced by makeinfo version 4.8 from ./groff.texinfo. - - This manual documents GNU `troff' version 1.19.2. - - Copyright (C) 1994-2000, 2001, 2002, 2003, 2004, 2005 Free Software -Foundation, Inc. - - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation License, - Version 1.1 or any later version published by the Free Software - Foundation; with no Invariant Sections, with the Front-Cover texts - being `A GNU Manual," and with the Back-Cover Texts as in (a) - below. A copy of the license is included in the section entitled - `GNU Free Documentation License." - - (a) The FSF's Back-Cover Text is: `You have freedom to copy and - modify this GNU Manual, like GNU software. Copies published by - the Free Software Foundation raise funds for GNU development." - -INFO-DIR-SECTION Typesetting -START-INFO-DIR-ENTRY -* Groff: (groff). The GNU troff document formatting system. -END-INFO-DIR-ENTRY - - -File: groff, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) - -GNU troff -********* - -This manual documents GNU `troff' version 1.19.2. - - Copyright (C) 1994-2000, 2001, 2002, 2003, 2004, 2005 Free Software -Foundation, Inc. - - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation License, - Version 1.1 or any later version published by the Free Software - Foundation; with no Invariant Sections, with the Front-Cover texts - being `A GNU Manual," and with the Back-Cover Texts as in (a) - below. A copy of the license is included in the section entitled - `GNU Free Documentation License." - - (a) The FSF's Back-Cover Text is: `You have freedom to copy and - modify this GNU Manual, like GNU software. Copies published by - the Free Software Foundation raise funds for GNU development." - -* Menu: - -* Introduction:: -* Invoking groff:: -* Tutorial for Macro Users:: -* Macro Packages:: -* gtroff Reference:: -* Preprocessors:: -* Output Devices:: -* File formats:: -* Installation:: -* Copying This Manual:: -* Request Index:: -* Escape Index:: -* Operator Index:: -* Register Index:: -* Macro Index:: -* String Index:: -* Glyph Name Index:: -* Font File Keyword Index:: -* Program and File Index:: -* Concept Index:: - - -File: groff, Node: Introduction, Next: Invoking groff, Prev: Top, Up: Top - -1 Introduction -************** - -GNU `troff' (or `groff') is a system for typesetting documents. -`troff' is very flexible and has been in existence (and use) for about -3 decades. It is quite widespread and firmly entrenched in the UNIX -community. - -* Menu: - -* What Is groff?:: -* History:: -* groff Capabilities:: -* Macro Package Intro:: -* Preprocessor Intro:: -* Output device intro:: -* Credits:: - - -File: groff, Node: What Is groff?, Next: History, Prev: Introduction, Up: Introduction - -1.1 What Is `groff'? -==================== - -`groff' belongs to an older generation of document preparation systems, -which operate more like compilers than the more recent interactive -WYSIWYG(1) (*note What Is groff?-Footnote-1::) systems. `groff' and -its contemporary counterpart, TeX, both work using a "batch" paradigm: -The input (or "source") files are normal text files with embedded -formatting commands. These files can then be processed by `groff' to -produce a typeset document on a variety of devices. - - Likewise, `groff' should not be confused with a "word processor", -since that term connotes an integrated system that includes an editor -and a text formatter. Also, many word processors follow the WYSIWYG -paradigm discussed earlier. - - Although WYSIWYG systems may be easier to use, they have a number of -disadvantages compared to `troff': - - * They must be used on a graphics display to work on a document. - - * Most of the WYSIWYG systems are either non-free or are not very - portable. - - * `troff' is firmly entrenched in all UNIX systems. - - * It is difficult to have a wide range of capabilities available - within the confines of a GUI/window system. - - * It is more difficult to make global changes to a document. - - "GUIs normally make it simple to accomplish simple actions and - impossible to accomplish complex actions." -Doug Gwyn (22/Jun/91 - in `comp.unix.wizards') - - -File: groff, Node: What Is groff?-Footnotes, Up: What Is groff? - - (1) What You See Is What You Get - - -File: groff, Node: History, Next: groff Capabilities, Prev: What Is groff?, Up: Introduction - -1.2 History -=========== - -`troff' can trace its origins back to a formatting program called -`runoff', written by J. E. Saltzer, which ran on MIT's CTSS operating -system in the mid-sixties. This name came from the common phrase of -the time "I'll run off a document." Bob Morris ported it to the 635 -architecture and called the program `roff' (an abbreviation of -`runoff'). It was rewritten as `rf' for the PDP-7 (before having -UNIX), and at the same time (1969), Doug McIllroy rewrote an extended -and simplified version of `roff' in the BCPL programming language. - - The first version of UNIX was developed on a PDP-7 which was sitting -around Bell Labs. In 1971 the developers wanted to get a PDP-11 for -further work on the operating system. In order to justify the cost for -this system, they proposed that they would implement a document -formatting system for the AT&T patents division. This first formatting -program was a reimplementation of McIllroy's `roff', written by -J. F. Ossanna. - - When they needed a more flexible language, a new version of `roff' -called `nroff' ("Newer `roff'") was written. It had a much more -complicated syntax, but provided the basis for all future versions. -When they got a Graphic Systems CAT Phototypesetter, Ossanna wrote a -version of `nroff' that would drive it. It was dubbed `troff', for -"typesetter `roff'", although many people have speculated that it -actually means "Times `roff'" because of the use of the Times font -family in `troff' by default. As such, the name `troff' is pronounced -`t-roff' rather than `trough'. - - With `troff' came `nroff' (they were actually the same program -except for some `#ifdef's), which was for producing output for line -printers and character terminals. It understood everything `troff' -did, and ignored the commands which were not applicable (e.g. font -changes). - - Since there are several things which cannot be done easily in -`troff', work on several preprocessors began. These programs would -transform certain parts of a document into `troff', which made a very -natural use of pipes in UNIX. - - The `eqn' preprocessor allowed mathematical formulæ to be specified -in a much simpler and more intuitive manner. `tbl' is a preprocessor -for formatting tables. The `refer' preprocessor (and the similar -program, `bib') processes citations in a document according to a -bibliographic database. - - Unfortunately, Ossanna's `troff' was written in PDP-11 assembly -language and produced output specifically for the CAT phototypesetter. -He rewrote it in C, although it was now 7000 lines of uncommented code -and still dependent on the CAT. As the CAT became less common, and was -no longer supported by the manufacturer, the need to make it support -other devices became a priority. However, before this could be done, -Ossanna was killed in a car accident. - - So, Brian Kernighan took on the task of rewriting `troff'. The -newly rewritten version produced device independent code which was very -easy for postprocessors to read and translate to the appropriate -printer codes. Also, this new version of `troff' (called `ditroff' for -"device independent `troff'") had several extensions, which included -drawing functions. - - Due to the additional abilities of the new version of `troff', -several new preprocessors appeared. The `pic' preprocessor provides a -wide range of drawing functions. Likewise the `ideal' preprocessor did -the same, although via a much different paradigm. The `grap' -preprocessor took specifications for graphs, but, unlike other -preprocessors, produced `pic' code. - - James Clark began work on a GNU implementation of `ditroff' in -early 1989. The first version, `groff' 0.3.1, was released June 1990. -`groff' included: - - * A replacement for `ditroff' with many extensions. - - * The `soelim', `pic', `tbl', and `eqn' preprocessors. - - * Postprocessors for character devices, POSTSCRIPT, TeX DVI, and - X Windows. GNU `troff' also eliminated the need for a separate - `nroff' program with a postprocessor which would produce ASCII - output. - - * A version of the `me' macros and an implementation of the `man' - macros. - - Also, a front-end was included which could construct the, sometimes -painfully long, pipelines required for all the post- and preprocessors. - - Development of GNU `troff' progressed rapidly, and saw the additions -of a replacement for `refer', an implementation of the `ms' and `mm' -macros, and a program to deduce how to format a document (`grog'). - - It was declared a stable (i.e. non-beta) package with the release of -version 1.04 around November 1991. - - Beginning in 1999, `groff' has new maintainers (the package was an -orphan for a few years). As a result, new features and programs like -`grn', a preprocessor for gremlin images, and an output device to -produce HTML output have been added. - - -File: groff, Node: groff Capabilities, Next: Macro Package Intro, Prev: History, Up: Introduction - -1.3 `groff' Capabilities -======================== - -So what exactly is `groff' capable of doing? `groff' provides a wide -range of low-level text formatting operations. Using these, it is -possible to perform a wide range of formatting tasks, such as -footnotes, table of contents, multiple columns, etc. Here's a list of -the most important operations supported by `groff': - - * text filling, adjusting, and centering - - * hyphenation - - * page control - - * font and glyph size control - - * vertical spacing (e.g. double-spacing) - - * line length and indenting - - * macros, strings, diversions, and traps - - * number registers - - * tabs, leaders, and fields - - * input and output conventions and character translation - - * overstrike, bracket, line drawing, and zero-width functions - - * local horizontal and vertical motions and the width function - - * three-part titles - - * output line numbering - - * conditional acceptance of input - - * environment switching - - * insertions from the standard input - - * input/output file switching - - * output and error messages - - -File: groff, Node: Macro Package Intro, Next: Preprocessor Intro, Prev: groff Capabilities, Up: Introduction - -1.4 Macro Packages -================== - -Since `groff' provides such low-level facilities, it can be quite -difficult to use by itself. However, `groff' provides a "macro" -facility to specify how certain routine operations (e.g. starting -paragraphs, printing headers and footers, etc.) should be done. These -macros can be collected together into a "macro package". There are a -number of macro packages available; the most common (and the ones -described in this manual) are `man', `mdoc', `me', `ms', and `mm'. - - -File: groff, Node: Preprocessor Intro, Next: Output device intro, Prev: Macro Package Intro, Up: Introduction - -1.5 Preprocessors -================= - -Although `groff' provides most functions needed to format a document, -some operations would be unwieldy (e.g. to draw pictures). Therefore, -programs called "preprocessors" were written which understand their own -language and produce the necessary `groff' operations. These -preprocessors are able to differentiate their own input from the rest -of the document via markers. - - To use a preprocessor, UNIX pipes are used to feed the output from -the preprocessor into `groff'. Any number of preprocessors may be used -on a given document; in this case, the preprocessors are linked -together into one pipeline. However, with `groff', the user does not -need to construct the pipe, but only tell `groff' what preprocessors to -use. - - `groff' currently has preprocessors for producing tables (`tbl'), -typesetting equations (`eqn'), drawing pictures (`pic' and `grn'), and -for processing bibliographies (`refer'). An associated program which -is useful when dealing with preprocessors is `soelim'. - - A free implementation of `grap', a preprocessor for drawing graphs, -can be obtained as an extra package; `groff' can use `grap' also. - - There are other preprocessors in existence, but, unfortunately, no -free implementations are available. Among them are preprocessors for -drawing mathematical pictures (`ideal') and chemical structures -(`chem'). - - -File: groff, Node: Output device intro, Next: Credits, Prev: Preprocessor Intro, Up: Introduction - -1.6 Output Devices -================== - -`groff' actually produces device independent code which may be fed into -a postprocessor to produce output for a particular device. Currently, -`groff' has postprocessors for POSTSCRIPT devices, character terminals, -X Windows (for previewing), TeX DVI format, HP LaserJet 4 and Canon LBP -printers (which use CAPSL), and HTML. - - -File: groff, Node: Credits, Prev: Output device intro, Up: Introduction - -1.7 Credits -=========== - -Large portions of this manual were taken from existing documents, most -notably, the manual pages for the `groff' package by James Clark, and -Eric Allman's papers on the `me' macro package. - - The section on the `man' macro package is partly based on Susan G. -Kleinmann's `groff_man' manual page written for the Debian GNU/Linux -system. - - Larry Kollar contributed the section in the `ms' macro package. - - -File: groff, Node: Invoking groff, Next: Tutorial for Macro Users, Prev: Introduction, Up: Top - -2 Invoking `groff' -****************** - -This section focuses on how to invoke the `groff' front end. This -front end takes care of the details of constructing the pipeline among -the preprocessors, `gtroff' and the postprocessor. - - It has become a tradition that GNU programs get the prefix `g' to -distinguish it from its original counterparts provided by the host (see -*Note Environment::, for more details). Thus, for example, `geqn' is -GNU `eqn'. On operating systems like GNU/Linux or the Hurd, which -don't contain proprietary versions of `troff', and on -MS-DOS/MS-Windows, where `troff' and associated programs are not -available at all, this prefix is omitted since GNU `troff' is the only -used incarnation of `troff'. Exception: `groff' is never replaced by -`roff'. - - In this document, we consequently say `gtroff' when talking about -the GNU `troff' program. All other implementations of `troff' are -called AT&T `troff' which is the common origin of all `troff' derivates -(with more or less compatible changes). Similarly, we say `gpic', -`geqn', etc. - -* Menu: - -* Groff Options:: -* Environment:: -* Macro Directories:: -* Font Directories:: -* Paper Size:: -* Invocation Examples:: - - -File: groff, Node: Groff Options, Next: Environment, Prev: Invoking groff, Up: Invoking groff - -2.1 Options -=========== - -`groff' normally runs the `gtroff' program and a postprocessor -appropriate for the selected device. The default device is `ps' (but -it can be changed when `groff' is configured and built). It can -optionally preprocess with any of `gpic', `geqn', `gtbl', `ggrn', -`grap', `grefer', or `gsoelim'. - - This section only documents options to the `groff' front end. Many -of the arguments to `groff' are passed on to `gtroff', therefore those -are also included. Arguments to pre- or postprocessors can be found in -*Note Invoking gpic::, *Note Invoking geqn::, *Note Invoking gtbl::, -*Note Invoking ggrn::, *Note Invoking grefer::, *Note Invoking -gsoelim::, *Note Invoking grotty::, *Note Invoking grops::, *Note -Invoking grohtml::, *Note Invoking grodvi::, *Note Invoking grolj4::, -*Note Invoking grolbp::, and *Note Invoking gxditview::. - - The command line format for `groff' is: - - - groff [ -abceghilpstvzCEGNRSUVXZ ] [ -FDIR ] [ -mNAME ] - [ -TDEF ] [ -fFAM ] [ -wNAME ] [ -WNAME ] - [ -MDIR ] [ -dCS ] [ -rCN ] [ -nNUM ] - [ -oLIST ] [ -PARG ] [ -LARG ] [ -IDIR ] - [ FILES... ] - - The command line format for `gtroff' is as follows. - - - gtroff [ -abcivzCERU ] [ -wNAME ] [ -WNAME ] [ -dCS ] - [ -fFAM ] [ -mNAME ] [ -nNUM ] - [ -oLIST ] [ -rCN ] [ -TNAME ] - [ -FDIR ] [ -MDIR ] [ FILES... ] - -Obviously, many of the options to `groff' are actually passed on to -`gtroff'. - - Options without an argument can be grouped behind a single `-'. A -filename of `-' denotes the standard input. It is possible to have -whitespace between an option and its parameter. - - The `grog' command can be used to guess the correct `groff' command -to format a file. - - Here's the description of the command-line options: - -`-h' - Print a help message. - -`-e' - Preprocess with `geqn'. - -`-t' - Preprocess with `gtbl'. - -`-g' - Preprocess with `ggrn'. - -`-G' - Preprocess with `grap'. - -`-p' - Preprocess with `gpic'. - -`-s' - Preprocess with `gsoelim'. - -`-c' - Suppress color output. - -`-R' - Preprocess with `grefer'. No mechanism is provided for passing - arguments to `grefer' because most `grefer' options have - equivalent commands which can be included in the file. *Note - grefer::, for more details. - - Note that `gtroff' also accepts a `-R' option, which is not - accessible via `groff'. This option prevents the loading of the - `troffrc' and `troffrc-end' files. - -`-v' - Make programs run by `groff' print out their version number. - -`-V' - Print the pipeline on `stdout' instead of executing it. If - specified more than once, print the pipeline on `stderr' and - execute it. - -`-z' - Suppress output from `gtroff'. Only error messages are printed. - -`-Z' - Do not postprocess the output of `gtroff'. Normally `groff' - automatically runs the appropriate postprocessor. - -`-PARG' - Pass ARG to the postprocessor. Each argument should be passed - with a separate `-P' option. Note that `groff' does not prepend - `-' to ARG before passing it to the postprocessor. - -`-l' - Send the output to a spooler for printing. The command used for - this is specified by the `print' command in the device description - file (see *Note Font Files::, for more info). If not present, - `-l' is ignored. - -`-LARG' - Pass ARG to the spooler. Each argument should be passed with a - separate `-L' option. Note that `groff' does not prepend a `-' to - ARG before passing it to the postprocessor. If the `print' - keyword in the device description file is missing, `-L' is ignored. - -`-TDEV' - Prepare output for device DEV. The default device is `ps', unless - changed when `groff' was configured and built. The following are - the output devices currently available: - - `ps' - For POSTSCRIPT printers and previewers. - - `dvi' - For TeX DVI format. - - `X75' - For a 75dpi X11 previewer. - - `X75-12' - For a 75dpi X11 previewer with a 12pt base font in the - document. - - `X100' - For a 100dpi X11 previewer. - - `X100-12' - For a 100dpi X11 previewer with a 12pt base font in the - document. - - `ascii' - For typewriter-like devices using the (7-bit) ASCII character - set. - - `latin1' - For typewriter-like devices that support the Latin-1 - (ISO 8859-1) character set. - - `utf8' - For typewriter-like devices which use the Unicode (ISO 10646) - character set with UTF-8 encoding. - - `cp1047' - For typewriter-like devices which use the EBCDIC encoding IBM - cp1047. - - `lj4' - For HP LaserJet4-compatible (or other PCL5-compatible) - printers. - - `lbp' - For Canon CAPSL printers (LBP-4 and LBP-8 series laser - printers). - - `html' - To produce HTML output. Note that the HTML driver consists - of two parts, a preprocessor (`pre-grohtml') and a - postprocessor (`post-grohtml'). - - The predefined `gtroff' string register `.T' contains the current - output device; the read-only number register `.T' is set to 1 if - this option is used (which is always true if `groff' is used to - call `gtroff'). *Note Built-in Registers::. - - The postprocessor to be used for a device is specified by the - `postpro' command in the device description file. (*Note Font - Files::, for more info.) This can be overridden with the `-X' - option. - -`-X' - Preview with `gxditview' instead of using the usual postprocessor. - This is unlikely to produce good results except with `-Tps'. - - Note that this is not the same as using `-TX75' or `-TX100' to - view a document with `gxditview': The former uses the metrics of - the specified device, whereas the latter uses X-specific fonts and - metrics. - -`-N' - Don't allow newlines with `eqn' delimiters. This is the same as - the `-N' option in `geqn'. - -`-S' - Safer mode. Pass the `-S' option to `gpic' and disable the - `open', `opena', `pso', `sy', and `pi' requests. For security - reasons, this is enabled by default. - -`-U' - Unsafe mode. This enables the `open', `opena', `pso', `sy', and - `pi' requests. - -`-a' - Generate an ASCII approximation of the typeset output. The - read-only register `.A' is then set to 1. *Note Built-in - Registers::. A typical example is - - - groff -a -man -Tdvi troff.man | less - - which shows how lines are broken for the DVI device. Note that - this option is rather useless today since graphic output devices - are available virtually everywhere. - -`-b' - Print a backtrace with each warning or error message. This - backtrace should help track down the cause of the error. The line - numbers given in the backtrace may not always be correct: `gtroff' - can get confused by `as' or `am' requests while counting line - numbers. - -`-i' - Read the standard input after all the named input files have been - processed. - -`-wNAME' - Enable warning NAME. Available warnings are described in *Note - Debugging::. Multiple `-w' options are allowed. - -`-WNAME' - Inhibit warning NAME. Multiple `-W' options are allowed. - -`-E' - Inhibit all error messages. - -`-C' - Enable compatibility mode. *Note Implementation Differences::, - for the list of incompatibilities between `groff' and AT&T `troff'. - -`-dCS' -`-dNAME=S' - Define C or NAME to be a string S. C must be a one-letter name; - NAME can be of arbitrary length. All string assignments happen - before loading any macro file (including the start-up file). - -`-fFAM' - Use FAM as the default font family. *Note Font Families::. - -`-mNAME' - Read in the file `NAME.tmac'. Normally `groff' searches for this - in its macro directories. If it isn't found, it tries `tmac.NAME' - (searching in the same directories). - -`-nNUM' - Number the first page NUM. - -`-oLIST' - Output only pages in LIST, which is a comma-separated list of page - ranges; `N' means print page N, `M-N' means print every page - between M and N, `-N' means print every page up to N, `N-' means - print every page beginning with N. `gtroff' exits after printing - the last page in the list. All the ranges are inclusive on both - ends. - - Within `gtroff', this information can be extracted with the `.P' - register. *Note Built-in Registers::. - - If your document restarts page numbering at the beginning of each - chapter, then `gtroff' prints the specified page range for each - chapter. - -`-rCN' -`-rNAME=N' - Set number register C or NAME to the value N. C must be a - one-letter name; NAME can be of arbitrary length. N can be any - `gtroff' numeric expression. All register assignments happen - before loading any macro file (including the start-up file). - -`-FDIR' - Search `DIR' for subdirectories `devNAME' (NAME is the name of the - device), for the `DESC' file, and for font files before looking in - the standard directories (*note Font Directories::). This option - is passed to all pre- and postprocessors using the - `GROFF_FONT_PATH' environment variable. - -`-MDIR' - Search directory `DIR' for macro files before the standard - directories (*note Macro Directories::). - -`-IDIR' - This option may be used to specify a directory to search for files. - It is passed to the following programs: - - * `gsoelim' (see *Note gsoelim:: for more details); it also - implies `groff''s `-s' option. - - * `gtroff'; it is used to search files named in the `psbb' and - `so' requests. - - * `grops'; it is used to search files named in the - `\X'ps: import' and `\X'ps: file' escapes. - - The current directory is always searched first. This option may be - specified more than once; the directories will be searched in the - order specified. No directory search is performed for files - specified using an absolute path. - - -File: groff, Node: Environment, Next: Macro Directories, Prev: Groff Options, Up: Invoking groff - -2.2 Environment -=============== - -There are also several environment variables (of the operating system, -not within `gtroff') which can modify the behavior of `groff'. - -`GROFF_COMMAND_PREFIX' - If this is set to X, then `groff' runs `Xtroff' instead of - `gtroff'. This also applies to `tbl', `pic', `eqn', `grn', - `refer', and `soelim'. It does not apply to `grops', `grodvi', - `grotty', `pre-grohtml', `post-grohtml', `grolj4', and `gxditview'. - - The default command prefix is determined during the installation - process. If a non-GNU troff system is found, prefix `g' is used, - none otherwise. - -`GROFF_TMAC_PATH' - A colon-separated list of directories in which to search for macro - files (before the default directories are tried). *Note Macro - Directories::. - -`GROFF_TYPESETTER' - The default output device. - -`GROFF_FONT_PATH' - A colon-separated list of directories in which to search for the - `dev'NAME directory (before the default directories are tried). - *Note Font Directories::. - -`GROFF_BIN_PATH' - This search path, followed by `PATH', is used for commands executed - by `groff'. - -`GROFF_TMPDIR' - The directory in which `groff' creates temporary files. If this is - not set and `TMPDIR' is set, temporary files are created in that - directory. Otherwise temporary files are created in a - system-dependent default directory (on Unix and GNU/Linux systems, - this is usually `/tmp'). `grops', `grefer', `pre-grohtml', and - `post-grohtml' can create temporary files in this directory. - - Note that MS-DOS and MS-Windows ports of `groff' use semi-colons, -rather than colons, to separate the directories in the lists described -above. - - -File: groff, Node: Macro Directories, Next: Font Directories, Prev: Environment, Up: Invoking groff - -2.3 Macro Directories -===================== - -All macro file names must be named `NAME.tmac' or `tmac.NAME' to make -the `-mNAME' command line option work. The `mso' request doesn't have -this restriction; any file name can be used, and `gtroff' won't try to -append or prepend the `tmac' string. - - Macro files are kept in the "tmac directories", all of which -constitute the "tmac path". The elements of the search path for macro -files are (in that order): - - * The directories specified with `gtroff''s or `groff''s `-M' - command line option. - - * The directories given in the `GROFF_TMAC_PATH' environment - variable. - - * The current directory (only if in unsafe mode using the `-U' - command line switch). - - * The home directory. - - * A platform-dependent directory, a site-specific - (platform-independent) directory, and the main tmac directory; the - default locations are - - - /usr/lib/groff/site-tmac - /usr/share/groff/site-tmac - /usr/share/groff/1.18.2/tmac - - assuming that the version of `groff' is 1.18.2, and the - installation prefix was `/usr'. It is possible to fine-tune - those directories during the installation process. - - -File: groff, Node: Font Directories, Next: Paper Size, Prev: Macro Directories, Up: Invoking groff - -2.4 Font Directories -==================== - -Basically, there is no restriction how font files for `groff' are named -and how long font names are; however, to make the font family mechanism -work (*note Font Families::), fonts within a family should start with -the family name, followed by the shape. For example, the Times family -uses `T' for the family name and `R', `B', `I', and `BI' to indicate -the shapes `roman', `bold', `italic', and `bold italic', respectively. -Thus the final font names are `TR', `TB', `TI', and `TBI'. - - All font files are kept in the "font directories" which constitute -the "font path". The file search functions will always append the -directory `dev'NAME, where NAME is the name of the output device. -Assuming, say, DVI output, and `/foo/bar' as a font directory, the font -files for `grodvi' must be in `/foo/bar/devdvi'. - - The elements of the search path for font files are (in that order): - - * The directories specified with `gtroff''s or `groff''s `-F' - command line option. All device drivers and some preprocessors - also have this option. - - * The directories given in the `GROFF_FONT_PATH' environment - variable. - - * A site-specific directory and the main font directory; the default - locations are - - - /usr/share/groff/site-font - /usr/share/groff/1.18.2/font - - assuming that the version of `groff' is 1.18.2, and the - installation prefix was `/usr'. It is possible to fine-tune - those directories during the installation process. - - -File: groff, Node: Paper Size, Next: Invocation Examples, Prev: Font Directories, Up: Invoking groff - -2.5 Paper Size -============== - -In groff, the page size for `gtroff' and for output devices are handled -separately. *Note Page Layout::, for vertical manipulation of the page -size. *Note Line Layout::, for horizontal changes. - - A default paper size can be set in the device's `DESC' file. Most -output devices also have a command line option `-p' to override the -default paper size and option `-l' to use landscape orientation. *Note -DESC File Format::, for a description of the `papersize' keyword which -takes the same argument as `-p'. - - A convenient shorthand to set a particular paper size for `gtroff' -is command line option `-dpaper=SIZE'. This defines string `paper' -which is processed in file `papersize.tmac' (loaded in the start-up -file `troffrc' by default). Possible values for SIZE are the same as -the predefined values for the `papersize' keyword (but only in -lowercase) except `a7'-`d7'. An appended `l' (ell) character denotes -landscape orientation. - - For example, use the following for PS output on A4 paper in landscape -orientation: - - - groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps - - Note that it is up to the particular macro package to respect default -page dimensions set in this way (most do). - - -File: groff, Node: Invocation Examples, Prev: Paper Size, Up: Invoking groff - -2.6 Invocation Examples -======================= - -This section lists several common uses of `groff' and the corresponding -command lines. - - - groff file - -This command processes `file' without a macro package or a -preprocessor. The output device is the default, `ps', and the output -is sent to `stdout'. - - - groff -t -mandoc -Tascii file | less - -This is basically what a call to the `man' program does. `gtroff' -processes the manual page `file' with the `mandoc' macro file (which in -turn either calls the `man' or the `mdoc' macro package), using the -`tbl' preprocessor and the ASCII output device. Finally, the `less' -pager displays the result. - - - groff -X -m me file - -Preview `file' with `gxditview', using the `me' macro package. Since -no `-T' option is specified, use the default device (`ps'). Note that -you can either say `-m me' or `-me'; the latter is an anachronism from -the early days of UNIX.(1) (*note Invocation Examples-Footnote-1::) - - - groff -man -rD1 -z file - -Check `file' with the `man' macro package, forcing double-sided -printing - don't produce any output. - -* Menu: - -* grog:: - - -File: groff, Node: Invocation Examples-Footnotes, Up: Invocation Examples - - (1) The same is true for the other main macro packages that come -with `groff': `man', `mdoc', `ms', `mm', and `mandoc'. This won't work -in general; for example, to load `trace.tmac', either `-mtrace' or -`-m trace' must be used. - - -File: groff, Node: grog, Prev: Invocation Examples, Up: Invocation Examples - -2.6.1 `grog' ------------- - -`grog' reads files, guesses which of the `groff' preprocessors and/or -macro packages are required for formatting them, and prints the `groff' -command including those options on the standard output. It generates -one or more of the options `-e', `-man', `-me', `-mm', `-mom', `-ms', -`-mdoc', `-mdoc-old', `-p', `-R', `-g', `-G', `-s', and `-t'. - - A special file name `-' refers to the standard input. Specifying no -files also means to read the standard input. Any specified options are -included in the printed command. No space is allowed between options -and their arguments. The only options recognized are `-C' (which is -also passed on) to enable compatibility mode, and `-v' to print the -version number and exit. - - For example, - - - grog -Tdvi paper.ms - -guesses the appropriate command to print `paper.ms' and then prints it -to the command line after adding the `-Tdvi' option. For direct -execution, enclose the call to `grog' in backquotes at the UNIX shell -prompt: - - - `grog -Tdvi paper.ms` > paper.dvi - -As seen in the example, it is still necessary to redirect the output to -something meaningful (i.e. either a file or a pager program like -`less'). - - -File: groff, Node: Tutorial for Macro Users, Next: Macro Packages, Prev: Invoking groff, Up: Top - -3 Tutorial for Macro Users -************************** - -Most users tend to use a macro package to format their papers. This -means that the whole breadth of `groff' is not necessary for most -people. This chapter covers the material needed to efficiently use a -macro package. - -* Menu: - -* Basics:: -* Common Features:: - - -File: groff, Node: Basics, Next: Common Features, Prev: Tutorial for Macro Users, Up: Tutorial for Macro Users - -3.1 Basics -========== - -This section covers some of the basic concepts necessary to understand -how to use a macro package.(1) (*note Basics-Footnote-1::) References -are made throughout to more detailed information, if desired. - - `gtroff' reads an input file prepared by the user and outputs a -formatted document suitable for publication or framing. The input -consists of text, or words to be printed, and embedded commands -("requests" and "escapes"), which tell `gtroff' how to format the -output. For more detail on this, see *Note Embedded Commands::. - - The word "argument" is used in this chapter to mean a word or number -which appears on the same line as a request, and which modifies the -meaning of that request. For example, the request - - - .sp - -spaces one line, but - - - .sp 4 - -spaces four lines. The number 4 is an argument to the `sp' request -which says to space four lines instead of one. Arguments are separated -from the request and from each other by spaces (_no_ tabs). More -details on this can be found in *Note Request and Macro Arguments::. - - The primary function of `gtroff' is to collect words from input -lines, fill output lines with those words, justify the right-hand margin -by inserting extra spaces in the line, and output the result. For -example, the input: - - - Now is the time - for all good men - to come to the aid - of their party. - Four score and seven - years ago, etc. - -is read, packed onto output lines, and justified to produce: - - Now is the time for all good men to come to the aid of their party. - Four score and seven years ago, etc. - - Sometimes a new output line should be started even though the current -line is not yet full; for example, at the end of a paragraph. To do -this it is possible to cause a "break", which starts a new output line. -Some requests cause a break automatically, as normally do blank input -lines and input lines beginning with a space. - - Not all input lines are text to be formatted. Some input lines are -requests which describe how to format the text. Requests always have a -period (`.') or an apostrophe (`'') as the first character of the input -line. - - The text formatter also does more complex things, such as -automatically numbering pages, skipping over page boundaries, putting -footnotes in the correct place, and so forth. - - Here are a few hints for preparing text for input to `gtroff'. - - * First, keep the input lines short. Short input lines are easier to - edit, and `gtroff' packs words onto longer lines anyhow. - - * In keeping with this, it is helpful to begin a new line after every - comma or phrase, since common corrections are to add or delete - sentences or phrases. - - * End each sentence with two spaces - or better, start each sentence - on a new line. `gtroff' recognizes characters that usually end a - sentence, and inserts sentence space accordingly. - - * Do not hyphenate words at the end of lines - `gtroff' is smart - enough to hyphenate words as needed, but is not smart enough to - take hyphens out and join a word back together. Also, words such - as "mother-in-law" should not be broken over a line, since then a - space can occur where not wanted, such as "mother- in-law". - - `gtroff' double-spaces output text automatically if you use the -request `.ls 2'. Reactivate single-spaced mode by typing `.ls 1'.(2) -(*note Basics-Footnote-2::) - - A number of requests allow to change the way the output looks, -sometimes called the "layout" of the output page. Most of these -requests adjust the placing of "whitespace" (blank lines or spaces). - - The `bp' request starts a new page, causing a line break. - - The request `.sp N' leaves N lines of blank space. N can be omitted -(meaning skip a single line) or can be of the form Ni (for N inches) or -Nc (for N centimeters). For example, the input: - - - .sp 1.5i - My thoughts on the subject - .sp - -leaves one and a half inches of space, followed by the line "My -thoughts on the subject", followed by a single blank line (more -measurement units are available, see *Note Measurements::). - - Text lines can be centered by using the `ce' request. The line -after `ce' is centered (horizontally) on the page. To center more than -one line, use `.ce N' (where N is the number of lines to center), -followed by the N lines. To center many lines without counting them, -type: - - - .ce 1000 - lines to center - .ce 0 - -The `.ce 0' request tells `groff' to center zero more lines, in other -words, stop centering. - - All of these requests cause a break; that is, they always start a new -line. To start a new line without performing any other action, use -`br'. - - -File: groff, Node: Basics-Footnotes, Up: Basics - - (1) This section is derived from `Writing Papers with nroff using --me' by Eric P. Allman. - - (2) If you need finer granularity of the vertical space, use the -`pvs' request (*note Changing Type Sizes::). - - -File: groff, Node: Common Features, Prev: Basics, Up: Tutorial for Macro Users - -3.2 Common Features -=================== - -`gtroff' provides very low-level operations for formatting a document. -There are many common routine operations which are done in all -documents. These common operations are written into "macros" and -collected into a "macro package". - - All macro packages provide certain common capabilities which fall -into the following categories. - -* Menu: - -* Paragraphs:: -* Sections and Chapters:: -* Headers and Footers:: -* Page Layout Adjustment:: -* Displays:: -* Footnotes and Annotations:: -* Table of Contents:: -* Indices:: -* Paper Formats:: -* Multiple Columns:: -* Font and Size Changes:: -* Predefined Strings:: -* Preprocessor Support:: -* Configuration and Customization:: - - -File: groff, Node: Paragraphs, Next: Sections and Chapters, Prev: Common Features, Up: Common Features - -3.2.1 Paragraphs ----------------- - -One of the most common and most used capability is starting a -paragraph. There are a number of different types of paragraphs, any of -which can be initiated with macros supplied by the macro package. -Normally, paragraphs start with a blank line and the first line -indented, like the text in this manual. There are also block style -paragraphs, which omit the indentation: - - - Some men look at constitutions with sanctimonious - reverence, and deem them like the ark of the covenant, too - sacred to be touched. - -And there are also indented paragraphs which begin with a tag or label -at the margin and the remaining text indented. - - - one This is the first paragraph. Notice how the first - line of the resulting paragraph lines up with the - other lines in the paragraph. - - - longlabel - This paragraph had a long label. The first - character of text on the first line does not line up - with the text on second and subsequent lines, - although they line up with each other. - - A variation of this is a bulleted list. - - - . Bulleted lists start with a bullet. It is possible - to use other glyphs instead of the bullet. In nroff - mode using the ASCII character set for output, a dot - is used instead of a real bullet. - - -File: groff, Node: Sections and Chapters, Next: Headers and Footers, Prev: Paragraphs, Up: Common Features - -3.2.2 Sections and Chapters ---------------------------- - -Most macro packages supply some form of section headers. The simplest -kind is simply the heading on a line by itself in bold type. Others -supply automatically numbered section heading or different heading -styles at different levels. Some, more sophisticated, macro packages -supply macros for starting chapters and appendices. - - -File: groff, Node: Headers and Footers, Next: Page Layout Adjustment, Prev: Sections and Chapters, Up: Common Features - -3.2.3 Headers and Footers -------------------------- - -Every macro package gives some way to manipulate the "headers" and -"footers" (also called "titles") on each page. This is text put at the -top and bottom of each page, respectively, which contain data like the -current page number, the current chapter title, and so on. Its -appearance is not affected by the running text. Some packages allow -for different ones on the even and odd pages (for material printed in a -book form). - - The titles are called "three-part titles", that is, there is a -left-justified part, a centered part, and a right-justified part. An -automatically generated page number may be put in any of these fields -with the `%' character (see *Note Page Layout::, for more details). - - -File: groff, Node: Page Layout Adjustment, Next: Displays, Prev: Headers and Footers, Up: Common Features - -3.2.4 Page Layout ------------------ - -Most macro packages let the user specify top and bottom margins and -other details about the appearance of the printed pages. - - -File: groff, Node: Displays, Next: Footnotes and Annotations, Prev: Page Layout Adjustment, Up: Common Features - -3.2.5 Displays --------------- - -"Displays" are sections of text to be set off from the body of the -paper. Major quotes, tables, and figures are types of displays, as are -all the examples used in this document. - - "Major quotes" are quotes which are several lines long, and hence -are set in from the rest of the text without quote marks around them. - - A "list" is an indented, single-spaced, unfilled display. Lists -should be used when the material to be printed should not be filled and -justified like normal text, such as columns of figures or the examples -used in this paper. - - A "keep" is a display of lines which are kept on a single page if -possible. An example for a keep might be a diagram. Keeps differ from -lists in that lists may be broken over a page boundary whereas keeps are -not. - - "Floating keeps" move relative to the text. Hence, they are good for -things which are referred to by name, such as "See figure 3". A -floating keep appears at the bottom of the current page if it fits; -otherwise, it appears at the top of the next page. Meanwhile, the -surrounding text `flows' around the keep, thus leaving no blank areas. - - -File: groff, Node: Footnotes and Annotations, Next: Table of Contents, Prev: Displays, Up: Common Features - -3.2.6 Footnotes and Annotations -------------------------------- - -There are a number of requests to save text for later printing. - - "Footnotes" are printed at the bottom of the current page. - - "Delayed text" is very similar to a footnote except that it is -printed when called for explicitly. This allows a list of references to -appear (for example) at the end of each chapter, as is the convention in -some disciplines. - - Most macro packages which supply this functionality also supply a -means of automatically numbering either type of annotation. - - -File: groff, Node: Table of Contents, Next: Indices, Prev: Footnotes and Annotations, Up: Common Features - -3.2.7 Table of Contents ------------------------ - -"Tables of contents" are a type of delayed text having a tag (usually -the page number) attached to each entry after a row of dots. The table -accumulates throughout the paper until printed, usually after the paper -has ended. Many macro packages provide the ability to have several -tables of contents (e.g. a standard table of contents, a list of -tables, etc). - - -File: groff, Node: Indices, Next: Paper Formats, Prev: Table of Contents, Up: Common Features - -3.2.8 Indices -------------- - -While some macro packages use the term "index", none actually provide -that functionality. The facilities they call indices are actually more -appropriate for tables of contents. - - To produce a real index in a document, external tools like the -`makeindex' program are necessary. - - -File: groff, Node: Paper Formats, Next: Multiple Columns, Prev: Indices, Up: Common Features - -3.2.9 Paper Formats -------------------- - -Some macro packages provide stock formats for various kinds of -documents. Many of them provide a common format for the title and -opening pages of a technical paper. The `mm' macros in particular -provide formats for letters and memoranda. - - -File: groff, Node: Multiple Columns, Next: Font and Size Changes, Prev: Paper Formats, Up: Common Features - -3.2.10 Multiple Columns ------------------------ - -Some macro packages (but not `man') provide the ability to have two or -more columns on a page. - - -File: groff, Node: Font and Size Changes, Next: Predefined Strings, Prev: Multiple Columns, Up: Common Features - -3.2.11 Font and Size Changes ----------------------------- - -The built-in font and size functions are not always intuitive, so all -macro packages provide macros to make these operations simpler. - - -File: groff, Node: Predefined Strings, Next: Preprocessor Support, Prev: Font and Size Changes, Up: Common Features - -3.2.12 Predefined Strings -------------------------- - -Most macro packages provide various predefined strings for a variety of -uses; examples are sub- and superscripts, printable dates, quotes and -various special characters. - - -File: groff, Node: Preprocessor Support, Next: Configuration and Customization, Prev: Predefined Strings, Up: Common Features - -3.2.13 Preprocessor Support ---------------------------- - -All macro packages provide support for various preprocessors and may -extend their functionality. - - For example, all macro packages mark tables (which are processed with -`gtbl') by placing them between `TS' and `TE' macros. The `ms' macro -package has an option, `.TS H', that prints a caption at the top of a -new page (when the table is too long to fit on a single page). - - -File: groff, Node: Configuration and Customization, Prev: Preprocessor Support, Up: Common Features - -3.2.14 Configuration and Customization --------------------------------------- - -Some macro packages provide means of customizing many of the details of -how the package behaves. This ranges from setting the default type size -to changing the appearance of section headers. - - -File: groff, Node: Macro Packages, Next: gtroff Reference, Prev: Tutorial for Macro Users, Up: Top - -4 Macro Packages -**************** - -This chapter documents the main macro packages that come with `groff'. - - Different main macro packages can't be used at the same time; for -example - - - groff -m man foo.man -m ms bar.doc - -doesn't work. Note that option arguments are processed before -non-option arguments; the above (failing) sample is thus reordered to - - - groff -m man -m ms foo.man bar.doc - -* Menu: - -* man:: -* mdoc:: -* ms:: -* me:: -* mm:: - - -File: groff, Node: man, Next: mdoc, Prev: Macro Packages, Up: Macro Packages - -4.1 `man' -========= - -This is the most popular and probably the most important macro package -of `groff'. It is easy to use, and a vast majority of manual pages are -based on it. - -* Menu: - -* Man options:: -* Man usage:: -* Man font macros:: -* Miscellaneous man macros:: -* Predefined man strings:: -* Preprocessors in man pages:: -* Optional man extensions:: - - -File: groff, Node: Man options, Next: Man usage, Prev: man, Up: man - -4.1.1 Options -------------- - -The command line format for using the `man' macros with `groff' is: - - - groff -m man [ -rLL=LENGTH ] [ -rLT=LENGTH ] [ -rFT=DIST ] - [ -rcR=1 ] [ -rC1 ] [ -rD1 ] [-rHY=FLAGS ] - [ -rPNNN ] [ -rSXX ] [ -rXNNN ] - [ -rIN=LENGTH ] [ -rSN=LENGTH ] [ FILES... ] - -It is possible to use `-man' instead of `-m man'. - -`-rcR=1' - This option (the default if a TTY output device is used) creates a - single, very long page instead of multiple pages. Use `-rcR=0' to - disable it. - -`-rC1' - If more than one manual page is given on the command line, number - the pages continuously, rather than starting each at 1. - -`-rD1' - Double-sided printing. Footers for even and odd pages are - formatted differently. - -`-rFT=DIST' - Set the position of the footer text to DIST. If positive, the - distance is measured relative to the top of the page, otherwise it - is relative to the bottom. The default is -0.5i. - -`-rHY=FLAGS' - Set hyphenation flags. Possible values are 1 to hyphenate without - restrictions, 2 to not hyphenate the last word on a page, 4 to - not hyphenate the last two characters of a word, and 8 to not - hyphenate the first two characters of a word. These values are - additive; the default is 14. - -`-rIN=LENGTH' - Set the body text indentation to LENGTH. If not specified, the - indentation defaults to 7n (7 characters) in nroff mode and 7.2n - otherwise. For nroff, this value should always be an integer - multiple of unit `n' to get consistent indentation. - -`-rLL=LENGTH' - Set line length to LENGTH. If not specified, the line length is - set to respect any value set by a prior `ll' request (which _must_ - be in effect when the `TH' macro is invoked), if this differs from - the built-in default for the formatter; otherwise it defaults to - 78n in nroff mode (this is 78 characters per line) and 6.5i in - troff mode.(1) (*note Man options-Footnote-1::) - -`-rLT=LENGTH' - Set title length to LENGTH. If not specified, the title length - defaults to the line length. - -`-rPNNN' - Page numbering starts with NNN rather than with 1. - -`-rSXX' - Use XX (which can be 10, 11, or 12pt) as the base document font - size instead of the default value of 10pt. - -`-rSN=LENGTH' - Set the indentation for sub-subheadings to LENGTH. If not - specified, the indentation defaults to 3n. - -`-rXNNN' - After page NNN, number pages as NNNa, NNNb, NNNc, etc. For - example, the option `-rX2' produces the following page numbers: 1, - 2, 2a, 2b, 2c, etc. - - -File: groff, Node: Man options-Footnotes, Up: Man options - - (1) Note that the use of a `.ll LENGTH' request to initialize the -line length, prior to use of the `TH' macro, is supported for backward -compatibility with some versions of the `man' program. _Always_ use the -`-rLL=LENGTH' option, or an equivalent `.nr LL LENGTH' request, in -preference to such a `.ll LENGTH' request. In particular, note that in -nroff mode, the request `.ll 65n', (with any LENGTH expression which -evaluates equal to 65n, i.e., the formatter's default line length in -nroff mode), will _not_ set the line length to 65n (it will be adjusted -to the `man' macro package's default setting of 78n), whereas the use -of the `-rLL=65n' option, or the `.nr LL 65n' request _will_ establish -a line length of 65n. - - -File: groff, Node: Man usage, Next: Man font macros, Prev: Man options, Up: man - -4.1.2 Usage ------------ - -This section describes the available macros for manual pages. For -further customization, put additional macros and requests into the file -`man.local' which is loaded immediately after the `man' package. - - -- Macro: .TH title section [extra1 [extra2 [extra3]]] - Set the title of the man page to TITLE and the section to SECTION, - which must have a value between 1 and 8. The value of SECTION may - also have a string appended, e.g. `.pm', to indicate a specific - subsection of the man pages. - - Both TITLE and SECTION are positioned at the left and right in the - header line (with SECTION in parentheses immediately appended to - TITLE. EXTRA1 is positioned in the middle of the footer line. - EXTRA2 is positioned at the left in the footer line (or at the - left on even pages and at the right on odd pages if double-sided - printing is active). EXTRA3 is centered in the header line. - - For HTML output, headers and footers are completely suppressed. - - Additionally, this macro starts a new page; the new line number - is 1 again (except if the `-rC1' option is given on the command - line) - this feature is intended only for formatting multiple man - pages; a single man page should contain exactly one `TH' macro at - the beginning of the file. - - -- Macro: .SH [heading] - Set up an unnumbered section heading sticking out to the left. - Prints out all the text following `SH' up to the end of the line - (or the text in the next line if there is no argument to `SH') in - bold face (or the font specified by the string `HF'), one size - larger than the base document size. Additionally, the left margin - and the indentation for the following text is reset to its default - value. - - -- Macro: .SS [heading] - Set up an unnumbered (sub)section heading. Prints out all the text - following `SS' up to the end of the line (or the text in the next - line if there is no argument to `SS') in bold face (or the font - specified by the string `HF'), at the same size as the base - document size. Additionally, the left margin and the indentation - for the following text is reset to its default value. - - -- Macro: .TP [nnn] - Set up an indented paragraph with label. The indentation is set to - NNN if that argument is supplied (the default unit is `n' if - omitted), otherwise it is set to the previous indentation value - specified with `TP', `IP', or `HP' (or to the default value if - none of them have been used yet). - - The first line of text following this macro is interpreted as a - string to be printed flush-left, as it is appropriate for a label. - It is not interpreted as part of a paragraph, so there is no - attempt to fill the first line with text from the following input - lines. Nevertheless, if the label is not as wide as the - indentation the paragraph starts at the same line (but indented), - continuing on the following lines. If the label is wider than the - indentation the descriptive part of the paragraph begins on the - line following the label, entirely indented. Note that neither - font shape nor font size of the label is set to a default value; - on the other hand, the rest of the text has default font settings. - - -- Macro: .LP - -- Macro: .PP - -- Macro: .P - These macros are mutual aliases. Any of them causes a line break - at the current position, followed by a vertical space downwards by - the amount specified by the `PD' macro. The font size and shape - are reset to the default value (10pt roman if no `-rS' option is - given on the command line). Finally, the current left margin and - the indentation is restored. - - -- Macro: .IP [designator [nnn]] - Set up an indented paragraph, using DESIGNATOR as a tag to mark - its beginning. The indentation is set to NNN if that argument is - supplied (default unit is `n'), otherwise it is set to the - previous indentation value specified with `TP', `IP', or `HP' (or - the default value if none of them have been used yet). Font size - and face of the paragraph (but not the designator) are reset to - their default values. - - To start an indented paragraph with a particular indentation but - without a designator, use `""' (two double quotes) as the first - argument of `IP'. - - For example, to start a paragraph with bullets as the designator - and 4 en indentation, write - - - .IP \(bu 4 - - - -- Macro: .HP [nnn] - Set up a paragraph with hanging left indentation. The indentation - is set to NNN if that argument is supplied (default unit is `n'), - otherwise it is set to the previous indentation value specified - with `TP', `IP', or `HP' (or the default value if non of them have - been used yet). Font size and face are reset to their default - values. - - -- Macro: .RS [nnn] - Move the left margin to the right by the value NNN if specified - (default unit is `n'); otherwise it is set to the previous - indentation value specified with `TP', `IP', or `HP' (or to the - default value if none of them have been used yet). The - indentation value is then set to the default. - - Calls to the `RS' macro can be nested. - - -- Macro: .RE [nnn] - Move the left margin back to level NNN, restoring the previous left - margin. If no argument is given, it moves one level back. The - first level (i.e., no call to `RS' yet) has number 1, and each call - to `RS' increases the level by 1. - - To summarize, the following macros cause a line break with the -insertion of vertical space (which amount can be changed with the `PD' -macro): `SH', `SS', `TP', `LP' (`PP', `P'), `IP', and `HP'. - - The macros `RS' and `RE' also cause a break but do not insert -vertical space. - - Finally, the macros `SH', `SS', `LP' (`PP', `P'), and `RS' reset the -indentation to its default value. - - -File: groff, Node: Man font macros, Next: Miscellaneous man macros, Prev: Man usage, Up: man - -4.1.3 Macros to set fonts -------------------------- - -The standard font is roman; the default text size is 10 point. If -command line option `-rS=N' is given, use Npt as the default text size. - - -- Macro: .SM [text] - Set the text on the same line or the text on the next line in a - font that is one point size smaller than the default font. - - -- Macro: .SB [text] - Set the text on the same line or the text on the next line in bold - face font, one point size smaller than the default font. - - -- Macro: .BI text - Set its arguments alternately in bold face and italic, without a - space between the arguments. Thus, - - - .BI this "word and" that - - produces "thisword andthat" with "this" and "that" in bold face, - and "word and" in italics. - - -- Macro: .IB text - Set its arguments alternately in italic and bold face, without a - space between the arguments. - - -- Macro: .RI text - Set its arguments alternately in roman and italic, without a space - between the arguments. - - -- Macro: .IR text - Set its arguments alternately in italic and roman, without a space - between the arguments. - - -- Macro: .BR text - Set its arguments alternately in bold face and roman, without a - space between the arguments. - - -- Macro: .RB text - Set its arguments alternately in roman and bold face, without a - space between the arguments. - - -- Macro: .B [text] - Set TEXT in bold face. If no text is present on the line where - the macro is called, then the text of the next line appears in bold - face. - - -- Macro: .I [text] - Set TEXT in italic. If no text is present on the line where the - macro is called, then the text of the next line appears in italic. - - -File: groff, Node: Miscellaneous man macros, Next: Predefined man strings, Prev: Man font macros, Up: man - -4.1.4 Miscellaneous macros --------------------------- - -The default indentation is 7.2n in troff mode and 7n in nroff mode -except for `grohtml' which ignores indentation. - - -- Macro: .DT - Set tabs every 0.5 inches. Since this macro is always executed - during a call to the `TH' macro, it makes sense to call it only if - the tab positions have been changed. - - -- Macro: .PD [nnn] - Adjust the empty space before a new paragraph (or section). The - optional argument gives the amount of space (default unit is `v'); - without parameter, the value is reset to its default value (1 line - in nroff mode, 0.4v otherwise). - - This affects the macros `SH', `SS', `TP', `LP' (as well as `PP' - and `P'), `IP', and `HP'. - - The following two macros are included for BSD compatibility. - - -- Macro: .AT [system [release]] - Alter the footer for use with AT&T manpages. This command exists - only for compatibility; don't use it. The first argument SYSTEM - can be: - - `3' - 7th Edition (the default) - - `4' - System III - - `5' - System V - - An optional second argument RELEASE to `AT' specifies the release - number (such as "System V Release 3"). - - -- Macro: .UC [version] - Alters the footer for use with BSD manpages. This command exists - only for compatibility; don't use it. The argument can be: - - `3' - 3rd Berkeley Distribution (the default) - - `4' - 4th Berkeley Distribution - - `5' - 4.2 Berkeley Distribution - - `6' - 4.3 Berkeley Distribution - - `7' - 4.4 Berkeley Distribution - - -File: groff, Node: Predefined man strings, Next: Preprocessors in man pages, Prev: Miscellaneous man macros, Up: man - -4.1.5 Predefined strings ------------------------- - -The following strings are defined: - - -- String: \*[S] - Switch back to the default font size. - - -- String: \*[HF] - The typeface used for headings. The default is `B'. - - -- String: \*[R] - The `registered' sign. - - -- String: \*[Tm] - The `trademark' sign. - - -- String: \*[lq] - -- String: \*[rq] - Left and right quote. This is equal to `\(lq' and `\(rq', - respectively. - - -File: groff, Node: Preprocessors in man pages, Next: Optional man extensions, Prev: Predefined man strings, Up: man - -4.1.6 Preprocessors in `man' pages ----------------------------------- - -If a preprocessor like `gtbl' or `geqn' is needed, it has become common -usage to make the first line of the man page look like this: - - - '\" WORD - -Note the single space character after the double quote. WORD consists -of letters for the needed preprocessors: `e' for `geqn', `r' for -`grefer', `t' for `gtbl'. Modern implementations of the `man' program -read this first line and automatically call the right preprocessor(s). - - -File: groff, Node: Optional man extensions, Prev: Preprocessors in man pages, Up: man - -4.1.7 Optional `man' extensions -------------------------------- - -Use the file `man.local' for local extensions to the `man' macros or -for style changes. - -Custom headers and footers -.......................... - -In groff versions 1.18.2 and later, you can specify custom headers and -footers by redefining the following macros in `man.local'. - - -- Macro: .PT - Control the content of the headers. Normally, the header prints - the command name and section number on either side, and the - optional fifth argument to `TH' in the center. - - -- Macro: .BT - Control the content of the footers. Normally, the footer prints - the page number and the third and fourth arguments to `TH'. - - Use the `FT' number register to specify the footer position. The - default is -0.5i. - -Ultrix-specific man macros -.......................... - -The `groff' source distribution includes a file named `man.ultrix', -containing macros compatible with the Ultrix variant of `man'. Copy -this file into `man.local' (or use the `mso' request to load it) to -enable the following macros. - - -- Macro: .CT key - Print `'. - - -- Macro: .CW - Print subsequent text using the constant width (Courier) typeface. - - -- Macro: .Ds - Begin a non-filled display. - - -- Macro: .De - End a non-filled display started with `Ds'. - - -- Macro: .EX [indent] - Begins a non-filled display using the constant width (Courier) - typeface. Use the optional INDENT argument to indent the display. - - -- Macro: .EE - End a non-filled display started with `EX'. - - -- Macro: .G [text] - Sets TEXT in Helvetica. If no text is present on the line where - the macro is called, then the text of the next line appears in - Helvetica. - - -- Macro: .GL [text] - Sets TEXT in Helvetica Oblique. If no text is present on the line - where the macro is called, then the text of the next line appears - in Helvetica Oblique. - - -- Macro: .HB [text] - Sets TEXT in Helvetica Bold. If no text is present on the line - where the macro is called, then all text up to the next `HB' - appears in Helvetica Bold. - - -- Macro: .TB [text] - Identical to `HB'. - - -- Macro: .MS title sect [punct] - Set a manpage reference in Ultrix format. The TITLE is in Courier - instead of italic. Optional punctuation follows the section - number without an intervening space. - - -- Macro: .NT [`C'] [title] - Begin a note. Print the optional title, or the word "Note", - centered on the page. Text following the macro makes up the body - of the note, and is indented on both sides. If the first argument - is `C', the body of the note is printed centered (the second - argument replaces the word "Note" if specified). - - -- Macro: .NE - End a note begun with `NT'. - - -- Macro: .PN path [punct] - Set the path name in constant width (Courier), followed by - optional punctuation. - - -- Macro: .Pn [punct] path [punct] - When called with two arguments, identical to `PN'. When called - with three arguments, set the second argument in constant width - (Courier), bracketed by the first and third arguments in the - current font. - - -- Macro: .R - Switch to roman font and turn off any underlining in effect. - - -- Macro: .RN - Print the string `'. - - -- Macro: .VS [`4'] - Start printing a change bar in the margin if the number `4' is - specified. Otherwise, this macro does nothing. - - -- Macro: .VE - End printing the change bar begun by `VS'. - -Simple example -.............. - -The following example `man.local' file alters the `SH' macro to add -some extra vertical space before printing the heading. Headings are -printed in Helvetica Bold. - - - .\" Make the heading fonts Helvetica - .ds HF HB - . - .\" Put more whitespace in front of headings. - .rn SH SH-orig - .de SH - . if t .sp (u;\\n[PD]*2) - . SH-orig \\$* - .. - - -File: groff, Node: mdoc, Next: ms, Prev: man, Up: Macro Packages - -4.2 `mdoc' -========== - -See the `groff_mdoc(7)' man page (type `man groff_mdoc' at the command -line). - - -File: groff, Node: ms, Next: me, Prev: mdoc, Up: Macro Packages - -4.3 `ms' -======== - -The `-ms' macros are suitable for reports, letters, books, user -manuals, and so forth. The package provides macros for cover pages, -section headings, paragraphs, lists, footnotes, pagination, and a table -of contents. - -* Menu: - -* ms Intro:: -* General ms Structure:: -* ms Document Control Registers:: -* ms Cover Page Macros:: -* ms Body Text:: -* ms Page Layout:: -* Differences from AT&T ms:: -* Naming Conventions:: - - -File: groff, Node: ms Intro, Next: General ms Structure, Prev: ms, Up: ms - -4.3.1 Introduction to `ms' --------------------------- - -The original `-ms' macros were included with AT&T `troff' as well as -the `man' macros. While the `man' package is intended for brief -documents that can be read on-line as well as printed, the `ms' macros -are suitable for longer documents that are meant to be printed rather -than read on-line. - - The `ms' macro package included with `groff' is a complete, -bottom-up re-implementation. Several macros (specific to AT&T or -Berkeley) are not included, while several new commands are. *Note -Differences from AT&T ms::, for more information. - - -File: groff, Node: General ms Structure, Next: ms Document Control Registers, Prev: ms Intro, Up: ms - -4.3.2 General structure of an `ms' document -------------------------------------------- - -The `ms' macro package expects a certain amount of structure, but not -as much as packages such as `man' or `mdoc'. - - The simplest documents can begin with a paragraph macro (such as -`LP' or `PP'), and consist of text separated by paragraph macros or -even blank lines. Longer documents have a structure as follows: - -*Document type* - If you invoke the `RP' (report) macro on the first line of the - document, `groff' prints the cover page information on its own - page; otherwise it prints the information on the first page with - your document text immediately following. Other document formats - found in AT&T `troff' are specific to AT&T or Berkeley, and are - not supported in `groff'. - -*Format and layout* - By setting number registers, you can change your document's type - (font and size), margins, spacing, headers and footers, and - footnotes. *Note ms Document Control Registers::, for more - details. - -*Cover page* - A cover page consists of a title, the author's name and - institution, an abstract, and the date.(1) (*note General ms - Structure-Footnote-1::) *Note ms Cover Page Macros::, for more - details. - -*Body* - Following the cover page is your document. You can use the `ms' - macros to write reports, letters, books, and so forth. The - package is designed for structured documents, consisting of - paragraphs interspersed with headings and augmented by lists, - footnotes, tables, and other common constructs. *Note ms Body - Text::, for more details. - -*Table of contents* - Longer documents usually include a table of contents, which you can - invoke by placing the `TC' macro at the end of your document. The - `ms' macros have minimal indexing facilities, consisting of the - `IX' macro, which prints an entry on standard error. Printing the - table of contents at the end is necessary since `groff' is a - single-pass text formatter, thus it cannot determine the page - number of each section until that section has actually been set - and printed. Since `ms' output is intended for hardcopy, you can - manually relocate the pages containing the table of contents - between the cover page and the body text after printing. - - -File: groff, Node: General ms Structure-Footnotes, Up: General ms Structure - - (1) Actually, only the title is required. - - -File: groff, Node: ms Document Control Registers, Next: ms Cover Page Macros, Prev: General ms Structure, Up: ms - -4.3.3 Document control registers --------------------------------- - -The following is a list of document control number registers. For the -sake of consistency, set registers related to margins at the beginning -of your document, or just after the `RP' macro. You can set other -registers later in your document, but you should keep them together at -the beginning to make them easy to find and edit as necessary. - -Margin Settings -............... - - -- Register: \n[PO] - Defines the page offset (i.e., the left margin). There is no - explicit right margin setting; the combination of the `PO' and `LL' - registers implicitly define the right margin width. - - Effective: next page. - - Default value: 1i. - - -- Register: \n[LL] - Defines the line length (i.e., the width of the body text). - - Effective: next paragraph. - - Default: 6i. - - -- Register: \n[LT] - Defines the title length (i.e., the header and footer width). This - is usually the same as `LL', but not necessarily. - - Effective: next paragraph. - - Default: 6i. - - -- Register: \n[HM] - Defines the header margin height at the top of the page. - - Effective: next page. - - Default: 1i. - - -- Register: \n[FM] - Defines the footer margin height at the bottom of the page. - - Effective: next page. - - Default: 1i. - -Text Settings -............. - - -- Register: \n[PS] - Defines the point size of the body text. If the value is larger - than or equal to 1000, divide it by 1000 to get a fractional point - size. For example, `.nr PS 10250' sets the document's point size - to 10.25p. - - Effective: next paragraph. - - Default: 10p. - - -- Register: \n[VS] - Defines the space between lines (line height plus leading). If the - value is larger than or equal to 1000, divide it by 1000 to get a - fractional point size. Due to backwards compatibility, `VS' must - be smaller than 40000 (this is 40.0p). - - Effective: next paragraph. - - Default: 12p. - - -- Register: \n[PSINCR] - Defines an increment in point size, which will be applied to - section headings at nesting levels below the value specified in - `GROWPS'. The value of `PSINCR' should be specified in points, - with the p scaling factor, and may include a fractional component; - for example, `.nr PSINCR 1.5p' sets a point size increment of 1.5p. - - Effective: next section heading. - - Default: 1p. - - -- Register: \n[GROWPS] - Defines the heading level below which the point size increment set - by `PSINCR' becomes effective. Section headings at and above the - level specified by `GROWPS' will be printed at the point size set - by `PS'; for each level below the value of `GROWPS', the point - size will be increased in steps equal to the value of `PSINCR'. - Setting `GROWPS' to any value less than 2 disables the incremental - heading size feature. - - Effective: next section heading. - - Default: 0. - - -- Register: \n[HY] - Defines the hyphenation level. `HY' sets safely the value of the - low-level `hy' register. Setting the value of `HY' to 0 is - equivalent to using the `nh' request. - - Effective: next paragraph. - - Default: 14. - - -- Register: \n[FAM] - Defines the font family used to typeset the document. - - Effective: next paragraph. - - Default: as defined in the output device. - -Paragraph Settings -.................. - - -- Register: \n[PI] - Defines the initial indentation of a (`PP' macro) paragraph. - - Effective: next paragraph. - - Default: 5n. - - -- Register: \n[PD] - Defines the space between paragraphs. - - Effective: next paragraph. - - Default: 0.3v. - - -- Register: \n[QI] - Defines the indentation on both sides of a quoted (`QP' macro) - paragraph. - - Effective: next paragraph. - - Default: 5n. - - -- Register: \n[PORPHANS] - Defines the minimum number of initial lines of any paragraph which - should be kept together, to avoid orphan lines at the bottom of a - page. If a new paragraph is started close to the bottom of a page, - and there is insufficient space to accommodate `PORPHANS' lines - before an automatic page break, then the page break will be forced, - before the start of the paragraph. - - Effective: next paragraph. - - Default: 1. - - -- Register: \n[HORPHANS] - Defines the minimum number of lines of the following paragraph - which should be kept together with any section heading introduced - by the `NH' or `SH' macros. If a section heading is placed close - to the bottom of a page, and there is insufficient space to - accommodate both the heading and at least `HORPHANS' lines of the - following paragraph, before an automatic page break, then the page - break will be forced before the heading. - - Effective: next paragraph. - - Default: 1. - -Footnote Settings -................. - - -- Register: \n[FL] - Defines the length of a footnote. - - Effective: next footnote. - - Default: `\n[LL]' * 5 / 6. - - -- Register: \n[FI] - Defines the footnote indentation. - - Effective: next footnote. - - Default: 2n. - - -- Register: \n[FF] - The footnote format: - `0' - Print the footnote number as a superscript; indent the - footnote (default). - - `1' - Print the number followed by a period (like 1.) and indent the - footnote. - - `2' - Like 1, without an indentation. - - `3' - Like 1, but print the footnote number as a hanging paragraph. - - Effective: next footnote. - - Default: 0. - - -- Register: \n[FPS] - Defines the footnote point size. If the value is larger than or - equal to 1000, divide it by 1000 to get a fractional point size. - - Effective: next footnote. - - Default: `\n[PS]' - 2. - - -- Register: \n[FVS] - Defines the footnote vertical spacing. If the value is larger - than or equal to 1000, divide it by 1000 to get a fractional point - size. - - Effective: next footnote. - - Default: `\n[FPS]' + 2. - - -- Register: \n[FPD] - Defines the footnote paragraph spacing. - - Effective: next footnote. - - Default: `\n[PD]' / 2. - -Miscellaneous Number Registers -.............................. - - -- Register: \n[MINGW] - Defines the minimum width between columns in a multi-column - document. - - Effective: next page. - - Default: 2n. - - -File: groff, Node: ms Cover Page Macros, Next: ms Body Text, Prev: ms Document Control Registers, Up: ms - -4.3.4 Cover page macros ------------------------ - -Use the following macros to create a cover page for your document in -the order shown. - - -- Macro: .RP [`no'] - Specifies the report format for your document. The report format - creates a separate cover page. The default action (no `RP' macro) - is to print a subset of the cover page on page 1 of your document. - - If you use the word `no' as an optional argument, `groff' prints a - title page but does not repeat any of the title page information - (title, author, abstract, etc.) on page 1 of the document. - - -- Macro: .P1 - (P-one) Prints the header on page 1. The default is to suppress - the header. - - -- Macro: .DA [...] - (optional) Prints the current date, or the arguments to the macro - if any, on the title page (if specified) and in the footers. This - is the default for `nroff'. - - -- Macro: .ND [...] - (optional) Prints the current date, or the arguments to the macro - if any, on the title page (if specified) but not in the footers. - This is the default for `troff'. - - -- Macro: .TL - Specifies the document title. `groff' collects text following the - `TL' macro into the title, until reaching the author name or - abstract. - - -- Macro: .AU - Specifies the author's name, which appears on the line (or lines) - immediately following. You can specify multiple authors as - follows: - - - .AU - John Doe - .AI - University of West Bumblefuzz - .AU - Martha Buck - .AI - Monolithic Corporation - - ... - - - -- Macro: .AI - Specifies the author's institution. You can specify multiple - institutions in the same way that you specify multiple authors. - - -- Macro: .AB [`no'] - Begins the abstract. The default is to print the word ABSTRACT, - centered and in italics, above the text of the abstract. The word - `no' as an optional argument suppresses this heading. - - -- Macro: .AE - Ends the abstract. - - The following is example mark-up for a title page. - - - .RP - .TL - The Inevitability of Code Bloat - in Commercial and Free Software - .AU - J. Random Luser - .AI - University of West Bumblefuzz - .AB - This report examines the long-term growth - of the code bases in two large, popular software - packages; the free Emacs and the commercial - Microsoft Word. - While differences appear in the type or order - of features added, due to the different - methodologies used, the results are the same - in the end. - .PP - The free software approach is shown to be - superior in that while free software can - become as bloated as commercial offerings, - free software tends to have fewer serious - bugs and the added features are in line with - user demand. - .AE - - ... the rest of the paper follows ... - - -File: groff, Node: ms Body Text, Next: ms Page Layout, Prev: ms Cover Page Macros, Up: ms - -4.3.5 Body text ---------------- - -This section describes macros used to mark up the body of your -document. Examples include paragraphs, sections, and other groups. - -* Menu: - -* Paragraphs in ms:: -* Headings in ms:: -* Highlighting in ms:: -* Lists in ms:: -* Indentation values in ms:: -* Tabstops in ms:: -* ms Displays and Keeps:: -* ms Insertions:: -* Example multi-page table:: -* ms Footnotes:: - - -File: groff, Node: Paragraphs in ms, Next: Headings in ms, Prev: ms Body Text, Up: ms Body Text - -4.3.5.1 Paragraphs -.................. - -The following paragraph types are available. - - -- Macro: .PP - -- Macro: .LP - Sets a paragraph with an initial indentation. - - -- Macro: .QP - Sets a paragraph that is indented at both left and right margins. - The effect is identical to the HTML `
    ' element. The - next paragraph or heading returns margins to normal. - - -- Macro: .XP - Sets a paragraph whose lines are indented, except for the first - line. This is a Berkeley extension. - - The following markup uses all four paragraph macros. - - - .NH 2 - Cases used in the study - .LP - The following software and versions were - considered for this report. - .PP - For commercial software, we chose - .B "Microsoft Word for Windows" , - starting with version 1.0 through the - current version (Word 2000). - .PP - For free software, we chose - .B Emacs , - from its first appearance as a standalone - editor through the current version (v20). - See [Bloggs 2002] for details. - .QP - Franklin's Law applied to software: - software expands to outgrow both - RAM and disk space over time. - .LP - Bibliography: - .XP - Bloggs, Joseph R., - .I "Everyone's a Critic" , - Underground Press, March 2002. - A definitive work that answers all questions - and criticisms about the quality and usability of - free software. - - The `PORPHANS' register (*note ms Document Control Registers::) -operates in conjunction with each of these macros, to inhibit the -printing of orphan lines at the bottom of any page. - - -File: groff, Node: Headings in ms, Next: Highlighting in ms, Prev: Paragraphs in ms, Up: ms Body Text - -4.3.5.2 Headings -................ - -Use headings to create a hierarchical structure for your document. The -`ms' macros print headings in *bold*, using the same font family and -point size as the body text. - - The following describes the heading macros: - - -- Macro: .NH curr-level - -- Macro: .NH S level0 ... - Numbered heading. The argument is either a numeric argument to - indicate the level of the heading, or the letter `S' followed by - numeric arguments to set the heading level explicitly. - - If you specify heading levels out of sequence, such as invoking - `.NH 3' after `.NH 1', `groff' prints a warning on standard error. - - -- String: \*[SN] - -- String: \*[SN-DOT] - -- String: \*[SN-NO-DOT] - After invocation of `NH', the assigned section number is made - available in the strings `SN-DOT' (exactly as it appears in the - printed section heading) and `SN-NO-DOT' (with the final period - omitted). The string `SN' is also defined, as an alias for - `SN-DOT'; if preferred, you may redefine it as an alias for - `SN-NO-DOT', by including the initialization - - - .ds SN-NO-DOT - .als SN SN-NO-DOT - - *before* your first use of `NH', or simply - - - .als SN SN-NO-DOT - - *after* your first use of `NH'. - - -- Macro: .SH [match-level] - Unnumbered subheading. - - The optional MATCH-LEVEL argument is a GNU extension. It is a - number indicating the level of the heading, in a manner analogous - to the CURR-LEVEL argument to `.NH'. Its purpose is to match the - point size, at which the heading is printed, to the size of a - numbered heading at the same level, when the `GROWPS' and `PSINCR' - heading size adjustment mechanism is in effect. *Note ms Document - Control Registers::. - - The `HORPHANS' register (*note ms Document Control Registers::) -operates in conjunction with the `NH' and `SH' macros, to inhibit the -printing of orphaned section headings at the bottom of any page. - - -File: groff, Node: Highlighting in ms, Next: Lists in ms, Prev: Headings in ms, Up: ms Body Text - -4.3.5.3 Highlighting -.................... - -The `ms' macros provide a variety of methods to highlight or emphasize -text: - - -- Macro: .B [txt [post [pre]]] - Sets its first argument in *bold type*. If you specify a second - argument, `groff' prints it in the previous font after the bold - text, with no intervening space (this allows you to set - punctuation after the highlighted text without highlighting the - punctuation). Similarly, it prints the third argument (if any) in - the previous font *before* the first argument. For example, - - - .B foo ) ( - - prints (*foo*). - - If you give this macro no arguments, `groff' prints all text - following in bold until the next highlighting, paragraph, or - heading macro. - - -- Macro: .R [txt [post [pre]]] - Sets its first argument in roman (or regular) type. It operates - similarly to the `B' macro otherwise. - - -- Macro: .I [txt [post [pre]]] - Sets its first argument in _italic type_. It operates similarly - to the `B' macro otherwise. - - -- Macro: .CW [txt [post [pre]]] - Sets its first argument in a `constant width face'. It operates - similarly to the `B' macro otherwise. - - -- Macro: .BI [txt [post [pre]]] - Sets its first argument in bold italic type. It operates - similarly to the `B' macro otherwise. - - -- Macro: .BX [txt] - Prints its argument and draws a box around it. If you want to box - a string that contains spaces, use a digit-width space (`\0'). - - -- Macro: .UL [txt [post]] - Prints its first argument with an underline. If you specify a - second argument, `groff' prints it in the previous font after the - underlined text, with no intervening space. - - -- Macro: .LG - Prints all text following in larger type (two points larger than - the current point size) until the next font size, highlighting, - paragraph, or heading macro. You can specify this macro multiple - times to enlarge the point size as needed. - - -- Macro: .SM - Prints all text following in smaller type (two points smaller than - the current point size) until the next type size, highlighting, - paragraph, or heading macro. You can specify this macro multiple - times to reduce the point size as needed. - - -- Macro: .NL - Prints all text following in the normal point size (that is, the - value of the `PS' register). - - -- String: \*[{] - -- String: \*[}] - Text enclosed with `\*{' and `\*}' is printed as a superscript. - - -File: groff, Node: Lists in ms, Next: Indentation values in ms, Prev: Highlighting in ms, Up: ms Body Text - -4.3.5.4 Lists -............. - -The `IP' macro handles duties for all lists. - - -- Macro: .IP [marker [width]] - The MARKER is usually a bullet glyph (`\[bu]') for unordered - lists, a number (or auto-incrementing number register) for - numbered lists, or a word or phrase for indented (glossary-style) - lists. - - The WIDTH specifies the indentation for the body of each list - item; its default unit is `n'. Once specified, the indentation - remains the same for all list items in the document until specified - again. - - The `PORPHANS' register (*note ms Document Control Registers::) - operates in conjunction with the `IP' macro, to inhibit the - printing of orphaned list markers at the bottom of any page. - - The following is an example of a bulleted list. - - - A bulleted list: - .IP \[bu] 2 - lawyers - .IP \[bu] - guns - .IP \[bu] - money - - Produces: - - - A bulleted list: - - o lawyers - - o guns - - o money - - The following is an example of a numbered list. - - - .nr step 1 1 - A numbered list: - .IP \n[step] 3 - lawyers - .IP \n+[step] - guns - .IP \n+[step] - money - - Produces: - - - A numbered list: - - 1. lawyers - - 2. guns - - 3. money - - Note the use of the auto-incrementing number register in this -example. - - The following is an example of a glossary-style list. - - - A glossary-style list: - .IP lawyers 0.4i - Two or more attorneys. - .IP guns - Firearms, preferably - large-caliber. - .IP money - Gotta pay for those - lawyers and guns! - - Produces: - - - A glossary-style list: - - lawyers - Two or more attorneys. - - guns Firearms, preferably large-caliber. - - money - Gotta pay for those lawyers and guns! - - In the last example, the `IP' macro places the definition on the -same line as the term if it has enough space; otherwise, it breaks to -the next line and starts the definition below the term. This may or -may not be the effect you want, especially if some of the definitions -break and some do not. The following examples show two possible ways -to force a break. - - The first workaround uses the `br' request to force a break after -printing the term or label. - - - A glossary-style list: - .IP lawyers 0.4i - Two or more attorneys. - .IP guns - .br - Firearms, preferably large-caliber. - .IP money - Gotta pay for those lawyers and guns! - - The second workaround uses the `\p' escape to force the break. Note -the space following the escape; this is important. If you omit the -space, `groff' prints the first word on the same line as the term or -label (if it fits) *then* breaks the line. - - - A glossary-style list: - .IP lawyers 0.4i - Two or more attorneys. - .IP guns - \p Firearms, preferably large-caliber. - .IP money - Gotta pay for those lawyers and guns! - - To set nested lists, use the `RS' and `RE' macros. *Note -Indentation values in ms::, for more information. - - For example: - - - .IP \[bu] 2 - Lawyers: - .RS - .IP \[bu] - Dewey, - .IP \[bu] - Cheatham, - .IP \[bu] - and Howe. - .RE - .IP \[bu] - Guns - - Produces: - - - o Lawyers: - - o Dewey, - - o Cheatham, - - o and Howe. - - o Guns - - -File: groff, Node: Indentation values in ms, Next: Tabstops in ms, Prev: Lists in ms, Up: ms Body Text - -4.3.5.5 Indentation values -.......................... - -In many situations, you may need to indentation a section of text while -still wrapping and filling. *Note Lists in ms::, for an example of -nested lists. - - -- Macro: .RS - -- Macro: .RE - These macros begin and end an indented section. The `PI' register - controls the amount of indentation, allowing the indented text to - line up under hanging and indented paragraphs. - - *Note ms Displays and Keeps::, for macros to indentation and turn off -filling. - - -File: groff, Node: Tabstops in ms, Next: ms Displays and Keeps, Prev: Indentation values in ms, Up: ms Body Text - -4.3.5.6 Tab Stops -................. - -Use the `ta' request to define tab stops as needed. *Note Tabs and -Fields::. - - -- Macro: .TA - Use this macro to reset the tab stops to the default for `ms' - (every 5n). You can redefine the `TA' macro to create a different - set of default tab stops. - - -File: groff, Node: ms Displays and Keeps, Next: ms Insertions, Prev: Tabstops in ms, Up: ms Body Text - -4.3.5.7 Displays and keeps -.......................... - -Use displays to show text-based examples or figures (such as code -listings). - - Displays turn off filling, so lines of code are displayed as-is -without inserting `br' requests in between each line. Displays can be -"kept" on a single page, or allowed to break across pages. - - -- Macro: .DS L - -- Macro: .LD - -- Macro: .DE - Left-justified display. The `.DS L' call generates a page break, - if necessary, to keep the entire display on one page. The `LD' - macro allows the display to break across pages. The `DE' macro - ends the display. - - -- Macro: .DS I - -- Macro: .ID - -- Macro: .DE - Indents the display as defined by the `DI' register. The `.DS I' - call generates a page break, if necessary, to keep the entire - display on one page. The `ID' macro allows the display to break - across pages. The `DE' macro ends the display. - - -- Macro: .DS B - -- Macro: .BD - -- Macro: .DE - Sets a block-centered display: the entire display is - left-justified, but indented so that the longest line in the - display is centered on the page. The `.DS B' call generates a - page break, if necessary, to keep the entire display on one page. - The `BD' macro allows the display to break across pages. The `DE' - macro ends the display. - - -- Macro: .DS C - -- Macro: .CD - -- Macro: .DE - Sets a centered display: each line in the display is centered. The - `.DS C' call generates a page break, if necessary, to keep the - entire display on one page. The `CD' macro allows the display to - break across pages. The `DE' macro ends the display. - - -- Macro: .DS R - -- Macro: .RD - -- Macro: .DE - Right-justifies each line in the display. The `.DS R' call - generates a page break, if necessary, to keep the entire display on - one page. The `RD' macro allows the display to break across - pages. The `DE' macro ends the display. - - -- Macro: .Ds - -- Macro: .De - These two macros were formerly provided as aliases for `DS' and - `DE', respectively. They have been removed, and should no longer - be used. The original implementations of `DS' and `DE' are - retained, and should be used instead. X11 documents which actually - use `Ds' and `De' always load a specific macro file from the X11 - distribution (`macros.t') which provides proper definitions for - the two macros. - - On occasion, you may want to "keep" other text together on a page. -For example, you may want to keep two paragraphs together, or a -paragraph that refers to a table (or list, or other item) immediately -following. The `ms' macros provide the `KS' and `KE' macros for this -purpose. - - -- Macro: .KS - -- Macro: .KE - The `KS' macro begins a block of text to be kept on a single page, - and the `KE' macro ends the block. - - -- Macro: .KF - -- Macro: .KE - Specifies a "floating keep"; if the keep cannot fit on the current - page, `groff' holds the contents of the keep and allows text - following the keep (in the source file) to fill in the remainder of - the current page. When the page breaks, whether by an explicit - `bp' request or by reaching the end of the page, `groff' prints - the floating keep at the top of the new page. This is useful for - printing large graphics or tables that do not need to appear - exactly where specified. - - You can also use the `ne' request to force a page break if there is -not enough vertical space remaining on the page. - - Use the following macros to draw a box around a section of text (such -as a display). - - -- Macro: .B1 - -- Macro: .B2 - Marks the beginning and ending of text that is to have a box drawn - around it. The `B1' macro begins the box; the `B2' macro ends it. - Text in the box is automatically placed in a diversion (keep). - - -File: groff, Node: ms Insertions, Next: Example multi-page table, Prev: ms Displays and Keeps, Up: ms Body Text - -4.3.5.8 Tables, figures, equations, and references -.................................................. - -The `ms' macros support the standard `groff' preprocessors: `tbl', -`pic', `eqn', and `refer'. You mark text meant for preprocessors by -enclosing it in pairs of tags as follows. - - -- Macro: .TS [`H'] - -- Macro: .TE - Denotes a table, to be processed by the `tbl' preprocessor. The - optional argument `H' to `TS' instructs `groff' to create a - running header with the information up to the `TH' macro. `groff' - prints the header at the beginning of the table; if the table runs - onto another page, `groff' prints the header on the next page as - well. - - -- Macro: .PS - -- Macro: .PE - Denotes a graphic, to be processed by the `pic' preprocessor. You - can create a `pic' file by hand, using the AT&T `pic' manual - available on the Web as a reference, or by using a graphics - program such as `xfig'. - - -- Macro: .EQ [align] - -- Macro: .EN - Denotes an equation, to be processed by the `eqn' preprocessor. - The optional ALIGN argument can be `C', `L', or `I' to center (the - default), left-justify, or indent the equation. - - -- Macro: .[ - -- Macro: .] - Denotes a reference, to be processed by the `refer' preprocessor. - The GNU `refer(1)' man page provides a comprehensive reference to - the preprocessor and the format of the bibliographic database. - -* Menu: - -* Example multi-page table:: - - -File: groff, Node: Example multi-page table, Next: ms Footnotes, Prev: ms Insertions, Up: ms Body Text - -4.3.5.9 An example multi-page table -................................... - -The following is an example of how to set up a table that may print -across two or more pages. - - - .TS H - allbox expand; - cb | cb . - Text ...of heading... - _ - .TH - .T& - l | l . - ... the rest of the table follows... - .CW - .TE - - -File: groff, Node: ms Footnotes, Prev: Example multi-page table, Up: ms Body Text - -4.3.5.10 Footnotes -.................. - -The `ms' macro package has a flexible footnote system. You can specify -either numbered footnotes or symbolic footnotes (that is, using a -marker such as a dagger symbol). - - -- String: \*[*] - Specifies the location of a numbered footnote marker in the text. - - -- Macro: .FS - -- Macro: .FE - Specifies the text of the footnote. The default action is to - create a numbered footnote; you can create a symbolic footnote by - specifying a "mark" glyph (such as `\[dg]' for the dagger glyph) - in the body text and as an argument to the `FS' macro, followed by - the text of the footnote and the `FE' macro. - - You can control how `groff' prints footnote numbers by changing the -value of the `FF' register. *Note ms Document Control Registers::. - - Footnotes can be safely used within keeps and displays, but you -should avoid using numbered footnotes within floating keeps. You can -set a second `\**' marker between a `\**' and its corresponding `.FS' -entry; as long as each `FS' macro occurs _after_ the corresponding -`\**' and the occurrences of `.FS' are in the same order as the -corresponding occurrences of `\**'. - - -File: groff, Node: ms Page Layout, Next: Differences from AT&T ms, Prev: ms Body Text, Up: ms - -4.3.6 Page layout ------------------ - -The default output from the `ms' macros provides a minimalist page -layout: it prints a single column, with the page number centered at the -top of each page. It prints no footers. - - You can change the layout by setting the proper number registers and -strings. - -* Menu: - -* ms Headers and Footers:: -* ms Margins:: -* ms Multiple Columns:: -* ms TOC:: -* ms Strings and Special Characters:: - - -File: groff, Node: ms Headers and Footers, Next: ms Margins, Prev: ms Page Layout, Up: ms Page Layout - -4.3.6.1 Headers and footers -........................... - -For documents that do not distinguish between odd and even pages, set -the following strings: - - -- String: \*[LH] - -- String: \*[CH] - -- String: \*[RH] - Sets the left, center, and right headers. - - -- String: \*[LF] - -- String: \*[CF] - -- String: \*[RF] - Sets the left, center, and right footers. - - For documents that need different information printed in the even and -odd pages, use the following macros: - - -- Macro: .OH 'left'center'right' - -- Macro: .EH 'left'center'right' - -- Macro: .OF 'left'center'right' - -- Macro: .EF 'left'center'right' - The `OH' and `EH' macros define headers for the odd and even - pages; the `OF' and `EF' macros define footers for the odd and - even pages. This is more flexible than defining the individual - strings. - - You can replace the quote (`'') marks with any character not - appearing in the header or footer text. - - -File: groff, Node: ms Margins, Next: ms Multiple Columns, Prev: ms Headers and Footers, Up: ms Page Layout - -4.3.6.2 Margins -............... - -You control margins using a set of number registers. *Note ms Document -Control Registers::, for details. - - -File: groff, Node: ms Multiple Columns, Next: ms TOC, Prev: ms Margins, Up: ms Page Layout - -4.3.6.3 Multiple columns -........................ - -The `ms' macros can set text in as many columns as will reasonably fit -on the page. The following macros are available; all of them force a -page break if a multi-column mode is already set. However, if the -current mode is single-column, starting a multi-column mode does _not_ -force a page break. - - -- Macro: .1C - Single-column mode. - - -- Macro: .2C - Two-column mode. - - -- Macro: .MC [width [gutter]] - Multi-column mode. If you specify no arguments, it is equivalent - to the `2C' macro. Otherwise, WIDTH is the width of each column - and GUTTER is the space between columns. The `MINGW' number - register controls the default gutter width. - - -File: groff, Node: ms TOC, Next: ms Strings and Special Characters, Prev: ms Multiple Columns, Up: ms Page Layout - -4.3.6.4 Creating a table of contents -.................................... - -The facilities in the `ms' macro package for creating a table of -contents are semi-automated at best. Assuming that you want the table -of contents to consist of the document's headings, you need to repeat -those headings wrapped in `XS' and `XE' macros. - - -- Macro: .XS [page] - -- Macro: .XA [page] - -- Macro: .XE - These macros define a table of contents or an individual entry in - the table of contents, depending on their use. The macros are very - simple; they cannot indent a heading based on its level. The - easiest way to work around this is to add tabs to the table of - contents string. The following is an example: - - - .NH 1 - Introduction - .XS - Introduction - .XE - .LP - ... - .CW - .NH 2 - Methodology - .XS - Methodology - .XE - .LP - ... - - You can manually create a table of contents by beginning with the - `XS' macro for the first entry, specifying the page number for - that entry as the argument to `XS'. Add subsequent entries using - the `XA' macro, specifying the page number for that entry as the - argument to `XA'. The following is an example: - - - .XS 1 - Introduction - .XA 2 - A Brief History of the Universe - .XA 729 - Details of Galactic Formation - ... - .XE - - - -- Macro: .TC [`no'] - Prints the table of contents on a new page, setting the page number - to *i* (Roman lowercase numeral one). You should usually place - this macro at the end of the file, since `groff' is a single-pass - formatter and can only print what has been collected up to the - point that the `TC' macro appears. - - The optional argument `no' suppresses printing the title specified - by the string register `TOC'. - - -- Macro: .PX [`no'] - Prints the table of contents on a new page, using the current page - numbering sequence. Use this macro to print a manually-generated - table of contents at the beginning of your document. - - The optional argument `no' suppresses printing the title specified - by the string register `TOC'. - - The `Groff and Friends HOWTO' includes a `sed' script that -automatically inserts `XS' and `XE' macro entries after each heading in -a document. - - Altering the `NH' macro to automatically build the table of contents -is perhaps initially more difficult, but would save a great deal of -time in the long run if you use `ms' regularly. - - -File: groff, Node: ms Strings and Special Characters, Prev: ms TOC, Up: ms Page Layout - -4.3.6.5 Strings and Special Characters -...................................... - -The `ms' macros provide the following predefined strings. You can -change the string definitions to help in creating documents in -languages other than English. - - -- String: \*[REFERENCES] - Contains the string printed at the beginning of the references - (bibliography) page. The default is `References'. - - -- String: \*[ABSTRACT] - Contains the string printed at the beginning of the abstract. The - default is `ABSTRACT'. - - -- String: \*[TOC] - Contains the string printed at the beginning of the table of - contents. - - -- String: \*[MONTH1] - -- String: \*[MONTH2] - -- String: \*[MONTH3] - -- String: \*[MONTH4] - -- String: \*[MONTH5] - -- String: \*[MONTH6] - -- String: \*[MONTH7] - -- String: \*[MONTH8] - -- String: \*[MONTH9] - -- String: \*[MONTH10] - -- String: \*[MONTH11] - -- String: \*[MONTH12] - Prints the full name of the month in dates. The default is - `January', `February', etc. - - The following special characters are available(1) (*note ms Strings -and Special Characters-Footnote-1::): - - -- String: \*[-] - Prints an em dash. - - -- String: \*[Q] - -- String: \*[U] - Prints typographer's quotes in troff, and plain quotes in nroff. - `\*Q' is the left quote and `\*U' is the right quote. - - Improved accent marks are available in the `ms' macros. - - -- Macro: .AM - Specify this macro at the beginning of your document to enable - extended accent marks and special characters. This is a Berkeley - extension. - - To use the accent marks, place them *after* the character being - accented. - - Note that groff's native support for accents is superior to the - following definitions. - - The following accent marks are available after invoking the `AM' -macro: - - -- String: \*['] - Acute accent. - - -- String: \*[`] - Grave accent. - - -- String: \*[^] - Circumflex. - - -- String: \*[,] - Cedilla. - - -- String: \*[~] - Tilde. - - -- String: \*[:] - Umlaut. - - -- String: \*[v] - Hacek. - - -- String: \*[_] - Macron (overbar). - - -- String: \*[.] - Underdot. - - -- String: \*[o] - Ring above. - - The following are standalone characters available after invoking the -`AM' macro: - - -- String: \*[?] - Upside-down question mark. - - -- String: \*[!] - Upside-down exclamation point. - - -- String: \*[8] - German ß ligature. - - -- String: \*[3] - Yogh. - - -- String: \*[Th] - Uppercase thorn. - - -- String: \*[th] - Lowercase thorn. - - -- String: \*[D-] - Uppercase eth. - - -- String: \*[d-] - Lowercase eth. - - -- String: \*[q] - Hooked o. - - -- String: \*[ae] - Lowercase æ ligature. - - -- String: \*[Ae] - Uppercase Æ ligature. - - -File: groff, Node: ms Strings and Special Characters-Footnotes, Up: ms Strings and Special Characters - - (1) For an explanation what special characters are see *Note Special -Characters::. - - -File: groff, Node: Differences from AT&T ms, Next: Naming Conventions, Prev: ms Page Layout, Up: ms - -4.3.7 Differences from AT&T `ms' --------------------------------- - -This section lists the (minor) differences between the `groff -ms' -macros and AT&T `troff -ms' macros. - - * The internals of `groff -ms' differ from the internals of AT&T - `troff -ms'. Documents that depend upon implementation details of - AT&T `troff -ms' may not format properly with `groff -ms'. - - * The general error-handling policy of `groff -ms' is to detect and - report errors, rather than silently to ignore them. - - * `groff -ms' does not work in compatibility mode (this is, with the - `-C' option). - - * There is no special support for typewriter-like devices. - - * `groff -ms' does not provide cut marks. - - * Multiple line spacing is not supported. Use a larger vertical - spacing instead. - - * Some UNIX `ms' documentation says that the `CW' and `GW' number - registers can be used to control the column width and gutter - width, respectively. These number registers are not used in - `groff -ms'. - - * Macros that cause a reset (paragraphs, headings, etc.) may change - the indentation. Macros that change the indentation do not - increment or decrement the indentation, but rather set it - absolutely. This can cause problems for documents that define - additional macros of their own. The solution is to use not the - `in' request but instead the `RS' and `RE' macros. - - * To make `groff -ms' use the default page offset (which also - specifies the left margin), the `PO' register must stay undefined - until the first `-ms' macro is evaluated. This implies that `PO' - should not be used early in the document, unless it is changed - also: Remember that accessing an undefined register automatically - defines it. - - -- Register: \n[GS] - This number register is set to 1 by the `groff -ms' macros, but it - is not used by the `AT&T' `troff -ms' macros. Documents that need - to determine whether they are being formatted with `AT&T' `troff - -ms' or `groff -ms' should use this number register. - -* Menu: - -* Missing ms Macros:: -* Additional ms Macros:: - - -File: groff, Node: Missing ms Macros, Next: Additional ms Macros, Prev: Differences from AT&T ms, Up: Differences from AT&T ms - -4.3.7.1 `troff' macros not appearing in `groff' -............................................... - -Macros missing from `groff -ms' are cover page macros specific to Bell -Labs and Berkeley. The macros known to be missing are: - -`.TM' - Technical memorandum; a cover sheet style - -`.IM' - Internal memorandum; a cover sheet style - -`.MR' - Memo for record; a cover sheet style - -`.MF' - Memo for file; a cover sheet style - -`.EG' - Engineer's notes; a cover sheet style - -`.TR' - Computing Science Tech Report; a cover sheet style - -`.OK' - Other keywords - -`.CS' - Cover sheet information - -`.MH' - A cover sheet macro - - -File: groff, Node: Additional ms Macros, Prev: Missing ms Macros, Up: Differences from AT&T ms - -4.3.7.2 `groff' macros not appearing in AT&T `troff' -.................................................... - -The `groff -ms' macros have a few minor extensions compared to the AT&T -`troff -ms' macros. - - -- Macro: .AM - Improved accent marks. *Note ms Strings and Special Characters::, - for details. - - -- Macro: .DS I - Indented display. The default behavior of AT&T `troff -ms' was to - indent; the `groff' default prints displays flush left with the - body text. - - -- Macro: .CW - Print text in `constant width' (Courier) font. - - -- Macro: .IX - Indexing term (printed on standard error). You can write a script - to capture and process an index generated in this manner. - - The following additional number registers appear in `groff -ms': - - -- Register: \n[MINGW] - Specifies a minimum space between columns (for multi-column - output); this takes the place of the `GW' register that was - documented but apparently not implemented in AT&T `troff'. - - Several new string registers are available as well. You can change -these to handle (for example) the local language. *Note ms Strings and -Special Characters::, for details. - - -File: groff, Node: Naming Conventions, Prev: Differences from AT&T ms, Up: ms - -4.3.8 Naming Conventions ------------------------- - -The following conventions are used for names of macros, strings and -number registers. External names available to documents that use the -`groff -ms' macros contain only uppercase letters and digits. - - Internally the macros are divided into modules; naming conventions -are as follows: - - * Names used only within one module are of the form MODULE`*'NAME. - - * Names used outside the module in which they are defined are of the - form MODULE`@'NAME. - - * Names associated with a particular environment are of the form - ENVIRONMENT`:'NAME; these are used only within the `par' module. - - * NAME does not have a module prefix. - - * Constructed names used to implement arrays are of the form - ARRAY`!'INDEX. - - Thus the groff ms macros reserve the following names: - - * Names containing the characters `*', `@', and `:'. - - * Names containing only uppercase letters and digits. - - -File: groff, Node: me, Next: mm, Prev: ms, Up: Macro Packages - -4.4 `me' -======== - -See the `meintro.me' and `meref.me' documents in groff's `doc' -directory. - - -File: groff, Node: mm, Prev: me, Up: Macro Packages - -4.5 `mm' -======== - -See the `groff_mm(7)' man page (type `man groff_mm' at the command -line). - - -File: groff, Node: gtroff Reference, Next: Preprocessors, Prev: Macro Packages, Up: Top - -5 `gtroff' Reference -******************** - -This chapter covers *all* of the facilities of `gtroff'. Users of -macro packages may skip it if not interested in details. - -* Menu: - -* Text:: -* Measurements:: -* Expressions:: -* Identifiers:: -* Embedded Commands:: -* Registers:: -* Manipulating Filling and Adjusting:: -* Manipulating Hyphenation:: -* Manipulating Spacing:: -* Tabs and Fields:: -* Character Translations:: -* Troff and Nroff Mode:: -* Line Layout:: -* Line Control:: -* Page Layout:: -* Page Control:: -* Fonts and Symbols:: -* Sizes:: -* Strings:: -* Conditionals and Loops:: -* Writing Macros:: -* Page Motions:: -* Drawing Requests:: -* Traps:: -* Diversions:: -* Environments:: -* Suppressing output:: -* Colors:: -* I/O:: -* Postprocessor Access:: -* Miscellaneous:: -* Gtroff Internals:: -* Debugging:: -* Implementation Differences:: - - -File: groff, Node: Text, Next: Measurements, Prev: gtroff Reference, Up: gtroff Reference - -5.1 Text -======== - -`gtroff' input files contain text with control commands interspersed -throughout. But, even without control codes, `gtroff' still does -several things with the input text: - - * filling and adjusting - - * adding additional space after sentences - - * hyphenating - - * inserting implicit line breaks - -* Menu: - -* Filling and Adjusting:: -* Hyphenation:: -* Sentences:: -* Tab Stops:: -* Implicit Line Breaks:: -* Input Conventions:: -* Input Encodings:: - - -File: groff, Node: Filling and Adjusting, Next: Hyphenation, Prev: Text, Up: Text - -5.1.1 Filling and Adjusting ---------------------------- - -When `gtroff' reads text, it collects words from the input and fits as -many of them together on one output line as it can. This is known as -"filling". - - Once `gtroff' has a "filled" line, it tries to "adjust" it. This -means it widens the spacing between words until the text reaches the -right margin (in the default adjustment mode). Extra spaces between -words are preserved, but spaces at the end of lines are ignored. -Spaces at the front of a line cause a "break" (breaks are explained in -*Note Implicit Line Breaks::). - - *Note Manipulating Filling and Adjusting::. - - -File: groff, Node: Hyphenation, Next: Sentences, Prev: Filling and Adjusting, Up: Text - -5.1.2 Hyphenation ------------------ - -Since the odds are not great for finding a set of words, for every -output line, which fit nicely on a line without inserting excessive -amounts of space between words, `gtroff' hyphenates words so that it -can justify lines without inserting too much space between words. It -uses an internal hyphenation algorithm (a simplified version of the -algorithm used within TeX) to indicate which words can be hyphenated -and how to do so. When a word is hyphenated, the first part of the -word is added to the current filled line being output (with an attached -hyphen), and the other portion is added to the next line to be filled. - - *Note Manipulating Hyphenation::. - - -File: groff, Node: Sentences, Next: Tab Stops, Prev: Hyphenation, Up: Text - -5.1.3 Sentences ---------------- - -Although it is often debated, some typesetting rules say there should be -different amounts of space after various punctuation marks. For -example, the `Chicago typsetting manual' says that a period at the end -of a sentence should have twice as much space following it as would a -comma or a period as part of an abbreviation. - - `gtroff' does this by flagging certain characters (normally `!', -`?', and `.') as "end-of-sentence" characters. When `gtroff' -encounters one of these characters at the end of a line, it appends a -normal space followed by a "sentence space" in the formatted output. -(This justifies one of the conventions mentioned in *Note Input -Conventions::.) - - In addition, the following characters and symbols are treated -transparently while handling end-of-sentence characters: `"', `'', `)', -`]', `*', `\[dg]', and `\[rq]'. - - See the `cflags' request in *Note Using Symbols::, for more details. - - To prevent the insertion of extra space after an end-of-sentence -character (at the end of a line), append `\&'. - - -File: groff, Node: Tab Stops, Next: Implicit Line Breaks, Prev: Sentences, Up: Text - -5.1.4 Tab Stops ---------------- - -`gtroff' translates "tabulator characters", also called "tabs" -(normally code point ASCII `0x09' or EBCDIC `0x05'), in the input into -movements to the next tabulator stop. These tab stops are initially -located every half inch across the page. Using this, simple tables can -be made easily. However, it can often be deceptive as the appearance -(and width) of the text on a terminal and the results from `gtroff' can -vary greatly. - - Also, a possible sticking point is that lines beginning with tab -characters are still filled, again producing unexpected results. For -example, the following input - - 1 2 3 - 4 5 - -produces - - 1 2 3 4 5 - - *Note Tabs and Fields::. - - -File: groff, Node: Implicit Line Breaks, Next: Input Conventions, Prev: Tab Stops, Up: Text - -5.1.5 Implicit Line Breaks --------------------------- - -An important concept in `gtroff' is the "break". When a break occurs, -`gtroff' outputs the partially filled line (unjustified), and resumes -collecting and filling text on the next output line. - - There are several ways to cause a break in `gtroff'. A blank line -not only causes a break, but it also outputs a one-line vertical space -(effectively a blank line). Note that this behaviour can be modified -with the blank line macro request `blm'. *Note Blank Line Traps::. - - A line that begins with a space causes a break and the space is -output at the beginning of the next line. Note that this space isn't -adjusted, even in fill mode. - - The end of file also causes a break - otherwise the last line of the -document may vanish! - - Certain requests also cause breaks, implicitly or explicitly. This -is discussed in *Note Manipulating Filling and Adjusting::. - - -File: groff, Node: Input Conventions, Next: Input Encodings, Prev: Implicit Line Breaks, Up: Text - -5.1.6 Input Conventions ------------------------ - -Since `gtroff' does filling automatically, it is traditional in `groff' -not to try and type things in as nicely formatted paragraphs. These -are some conventions commonly used when typing `gtroff' text: - - * Break lines after punctuation, particularly at the end of a - sentence and in other logical places. Keep separate phrases on - lines by themselves, as entire phrases are often added or deleted - when editing. - - * Try to keep lines less than 40-60 characters, to allow space for - inserting more text. - - * Do not try to do any formatting in a WYSIWYG manner (i.e., don't - try using spaces to get proper indentation). - - -File: groff, Node: Input Encodings, Prev: Input Conventions, Up: Text - -5.1.7 Input Encodings ---------------------- - -Currently, the following input encodings are available. - -cp1047 - This input encoding works only on EBCDIC platforms (and vice - versa, the other input encodings don't work with EBCDIC); the file - `cp1047.tmac' is by default loaded at start-up. - -latin-1 - This is the default input encoding on non-EBCDIC platforms; the - file `latin1.tmac' is loaded at start-up. - -latin-2 - To use this encoding, either say `.mso latin2.tmac' at the very - beginning of your document or use `-mlatin2' as a command line - argument for `groff'. - -latin-9 (latin-0) - This encoding is intended (at least in Europe) to replace latin-1 - encoding. The main difference to latin-1 is that latin-9 contains - the Euro character. To use this encoding, either say - `.mso latin9.tmac' at the very beginning of your document or use - `-mlatin9' as a command line argument for `groff'. - - Note that it can happen that some input encoding characters are not -available for a particular output device. For example, saying - - - groff -Tlatin1 -mlatin9 ... - -will fail if you use the Euro character in the input. Usually, this -limitation is present only for devices which have a limited set of -output glyphs (e.g. `-Tascii' and `-Tlatin1'); for other devices it is -usually sufficient to install proper fonts which contain the necessary -glyphs. - - Due to the importance of the Euro glyph in Europe, the groff package -now comes with a POSTSCRIPT font called `freeeuro.pfa' which provides -various glyph shapes for the Euro. With other words, latin-9 encoding -is supported for the `-Tps' device out of the box (latin-2 isn't). - - By its very nature, `-Tutf8' supports all input encodings; `-Tdvi' -has support for both latin-2 and latin-9 if the command line `-mec' is -used also to load the file `ec.tmac' (which flips to the EC fonts). - - -File: groff, Node: Measurements, Next: Expressions, Prev: Text, Up: gtroff Reference - -5.2 Measurements -================ - -`gtroff' (like many other programs) requires numeric parameters to -specify various measurements. Most numeric parameters(1) (*note -Measurements-Footnote-1::) may have a "measurement unit" attached. -These units are specified as a single character which immediately -follows the number or expression. Each of these units are understood, -by `gtroff', to be a multiple of its "basic unit". So, whenever a -different measurement unit is specified `gtroff' converts this into its -"basic units". This basic unit, represented by a `u', is a device -dependent measurement which is quite small, ranging from 1/75th to -1/72000th of an inch. The values may be given as fractional numbers; -however, fractional basic units are always rounded to integers. - - Some of the measurement units are completely independent of any of -the current settings (e.g. type size) of `gtroff'. - -`i' - Inches. An antiquated measurement unit still in use in certain - backwards countries with incredibly low-cost computer equipment. - One inch is equal to 2.54cm. - -`c' - Centimeters. One centimeter is equal to 0.3937in. - -`p' - Points. This is a typesetter's measurement used for measure type - size. It is 72 points to an inch. - -`P' - Pica. Another typesetting measurement. 6 Picas to an inch (and - 12 points to a pica). - -`s' -`z' - *Note Fractional Type Sizes::, for a discussion of these units. - -`f' - Fractions. Value is 65536. *Note Colors::, for usage. - - The other measurements understood by `gtroff' depend on settings -currently in effect in `gtroff'. These are very useful for specifying -measurements which should look proper with any size of text. - -`m' - Ems. This unit is equal to the current font size in points. So - called because it is _approximately_ the width of the letter `m' - in the current font. - -`n' - Ens. In `groff', this is half of an em. - -`v' - Vertical space. This is equivalent to the current line spacing. - *Note Sizes::, for more information about this. - -`M' - 100ths of an em. - -* Menu: - -* Default Units:: - - -File: groff, Node: Measurements-Footnotes, Up: Measurements - - (1) those that specify vertical or horizontal motion or a type size - - -File: groff, Node: Default Units, Prev: Measurements, Up: Measurements - -5.2.1 Default Units -------------------- - -Many requests take a default unit. While this can be helpful at times, -it can cause strange errors in some expressions. For example, the line -length request expects em units. Here are several attempts to get a -line length of 3.5 inches and their results: - - - 3.5i => 3.5i - 7/2 => 0i - 7/2i => 0i - (7 / 2)u => 0i - 7i/2 => 0.1i - 7i/2u => 3.5i - -Everything is converted to basic units first. In the above example it -is assumed that 1i equals 240u, and 1m equals 10p (thus 1m equals 33u). -The value 7i/2 is first handled as 7i/2m, then converted to 1680u/66u -which is 25u, and this is approximately 0.1i. As can be seen, a -scaling indicator after a closing parenthesis is simply ignored. - - Thus, the safest way to specify measurements is to always attach a -scaling indicator. If you want to multiply or divide by a certain -scalar value, use `u' as the unit for that value. - - -File: groff, Node: Expressions, Next: Identifiers, Prev: Measurements, Up: gtroff Reference - -5.3 Expressions -=============== - -`gtroff' has most arithmetic operators common to other languages: - - * Arithmetic: `+' (addition), `-' (subtraction), `/' (division), `*' - (multiplication), `%' (modulo). - - `gtroff' only provides integer arithmetic. The internal type used - for computing results is `int', which is usually a 32bit signed - integer. - - * Comparison: `<' (less than), `>' (greater than), `<=' (less than - or equal), `>=' (greater than or equal), `=' (equal), `==' (the - same as `='). - - * Logical: `&' (logical and), `:' (logical or). - - * Unary operators: `-' (negating, i.e. changing the sign), `+' (just - for completeness; does nothing in expressions), `!' (logical not; - this works only within `if' and `while' requests). See below for - the use of unary operators in motion requests. - - * Extrema: `>?' (maximum), `? \n[y]) - - The register `z' now contains 5. - - * Scaling: `(C;E)'. Evaluate E using C as the default scaling - indicator. If C is missing, ignore scaling indicators in the - evaluation of E. - - Parentheses may be used as in any other language. However, in -`gtroff' they are necessary to ensure order of evaluation. `gtroff' -has no operator precedence; expressions are evaluated left to right. -This means that `gtroff' evaluates `3+5*4' as if it were parenthesized -like `(3+5)*4', not as `3+(5*4)', as might be expected. - - For many requests which cause a motion on the page, the unary -operators `+' and `-' work differently if leading an expression. They -then indicate a motion relative to the current position (down or up, -respectively). - - Similarly, a leading `|' operator indicates an absolute position. -For vertical movements, it specifies the distance from the top of the -page; for horizontal movements, it gives the distance from the beginning -of the _input_ line. - - `+' and `-' are also treated differently by the following requests -and escapes: `bp', `in', `ll', `lt', `nm', `nr', `pl', `pn', `po', `ps', -`pvs', `rt', `ti', `\H', `\R', and `\s'. Here, leading plus and minus -signs indicate increments and decrements. - - *Note Setting Registers::, for some examples. - - -- Escape: \B'anything' - Return 1 if ANYTHING is a valid numeric expression; or 0 if - ANYTHING is empty or not a valid numeric expression. - - Due to the way arguments are parsed, spaces are not allowed in -expressions, unless the entire expression is surrounded by parentheses. - - *Note Request and Macro Arguments::, and *Note Conditionals and -Loops::. - - -File: groff, Node: Identifiers, Next: Embedded Commands, Prev: Expressions, Up: gtroff Reference - -5.4 Identifiers -=============== - -Like any other language, `gtroff' has rules for properly formed -"identifiers". In `gtroff', an identifier can be made up of almost any -printable character, with the exception of the following characters: - - * Whitespace characters (spaces, tabs, and newlines). - - * Backspace (ASCII `0x08' or EBCDIC `0x16') and character code - `0x01'. - - * The following input characters are invalid and are ignored if - `groff' runs on a machine based on ASCII, causing a warning - message of type `input' (see *Note Debugging::, for more details): - `0x00', `0x0B', `0x0D'-`0x1F', `0x80'-`0x9F'. - - And here are the invalid input characters if `groff' runs on an - EBCDIC host: `0x00', `0x08', `0x09', `0x0B', `0x0D'-`0x14', - `0x17'-`0x1F', `0x30'-`0x3F'. - - Currently, some of these reserved codepoints are used internally, - thus making it non-trivial to extend `gtroff' to cover Unicode or - other character sets and encodings which use characters of these - ranges. - - Note that invalid characters are removed before parsing; an - identifier `foo', followed by an invalid character, followed by - `bar' is treated as `foobar'. - - For example, any of the following is valid. - - - br - PP - (l - end-list - @_ - -Note that identifiers longer than two characters with a closing bracket -(`]') in its name can't be accessed with escape sequences which expect -an identifier as a parameter. For example, `\[foo]]' accesses the -glyph `foo', followed by `]', whereas `\C'foo]'' really asks for glyph -`foo]'. - - To avoid problems with the `refer' preprocessor, macro names should -not start with `[' or `]'. Due to backwards compatibility, everything -after `.[' and `.]' is handled as a special argument to `refer'. For -example, `.[foo' makes `refer' to start a reference, using `foo' as a -parameter. - - -- Escape: \A'ident' - Test whether an identifier IDENT is valid in `gtroff'. It expands - to the character 1 or 0 according to whether its argument (usually - delimited by quotes) is or is not acceptable as the name of a - string, macro, diversion, number register, environment, or font. - It returns 0 if no argument is given. This is useful for looking - up user input in some sort of associative table. - - - \A'end-list' - => 1 - - - *Note Escapes::, for details on parameter delimiting characters. - - Identifiers in `gtroff' can be any length, but, in some contexts, -`gtroff' needs to be told where identifiers end and text begins (and in -different ways depending on their length): - - * Single character. - - * Two characters. Must be prefixed with `(' in some situations. - - * Arbitrary length (`gtroff' only). Must be bracketed with `[' - and `]' in some situations. Any length identifier can be put in - brackets. - - Unlike many other programming languages, undefined identifiers are -silently ignored or expanded to nothing. When `gtroff' finds an -undefined identifier, it emits a warning, doing the following: - - * If the identifier is a string, macro, or diversion, `gtroff' - defines it as empty. - - * If the identifier is a number register, `gtroff' defines it with a - value of 0. - - *Note Warnings::., *Note Interpolating Registers::, and *Note -Strings::. - - Note that macros, strings, and diversions share the same name space. - - - .de xxx - . nop foo - .. - . - .di xxx - bar - .br - .di - . - .xxx - => bar - -As can be seen in the previous example, `gtroff' reuses the identifier -`xxx', changing it from a macro to a diversion. No warning is emitted! -The contents of the first macro definition is lost. - - *Note Interpolating Registers::, and *Note Strings::. - - -File: groff, Node: Embedded Commands, Next: Registers, Prev: Identifiers, Up: gtroff Reference - -5.5 Embedded Commands -===================== - -Most documents need more functionality beyond filling, adjusting and -implicit line breaking. In order to gain further functionality, -`gtroff' allows commands to be embedded into the text, in two ways. - - The first is a "request" which takes up an entire line, and does -some large-scale operation (e.g. break lines, start new pages). - - The other is an "escape" which can be usually embedded anywhere in -the text; most requests can accept it even as an argument. Escapes -generally do more minor operations like sub- and superscripts, print a -symbol, etc. - -* Menu: - -* Requests:: -* Macros:: -* Escapes:: - - -File: groff, Node: Requests, Next: Macros, Prev: Embedded Commands, Up: Embedded Commands - -5.5.1 Requests --------------- - -A request line begins with a control character, which is either a single -quote (`'', the "no-break control character") or a period (`.', the -normal "control character"). These can be changed; see *Note Character -Translations::, for details. After this there may be optional tabs or -spaces followed by an identifier which is the name of the request. -This may be followed by any number of space-separated arguments (_no_ -tabs here). - - Since a control character followed by whitespace only is ignored, it -is common practice to use this feature for structuring the source code -of documents or macro packages. - - - .de foo - . tm This is foo. - .. - . - . - .de bar - . tm This is bar. - .. - - Another possibility is to use the blank line macro request `blm' by -assigning an empty macro to it. - - - .de do-nothing - .. - .blm do-nothing \" activate blank line macro - - .de foo - . tm This is foo. - .. - - - .de bar - . tm This is bar. - .. - - .blm \" deactivate blank line macro - - *Note Blank Line Traps::. - - To begin a line with a control character without it being -interpreted, precede it with `\&'. This represents a zero width space, -which means it does not affect the output. - - In most cases the period is used as a control character. Several -requests cause a break implicitly; using the single quote control -character prevents this. - -* Menu: - -* Request and Macro Arguments:: - - -File: groff, Node: Request and Macro Arguments, Prev: Requests, Up: Requests - -5.5.1.1 Request and Macro Arguments -................................... - -Arguments to requests and macros are processed much like the shell: The -line is split into arguments according to spaces.(1) (*note Request and -Macro Arguments-Footnote-1::) - - An argument to a macro which is intended to contain spaces can -either be enclosed in double quotes, or have the spaces "escaped" with -backslashes. This is _not_ true for requests. - - Here are a few examples for a hypothetical macro `uh': - - - .uh The Mouse Problem - .uh "The Mouse Problem" - .uh The\ Mouse\ Problem - -The first line is the `uh' macro being called with 3 arguments, `The', -`Mouse', and `Problem'. The latter two have the same effect of calling -the `uh' macro with one argument, `The Mouse Problem'.(2) (*note -Request and Macro Arguments-Footnote-2::) - - A double quote which isn't preceded by a space doesn't start a macro -argument. If not closing a string, it is printed literally. - - For example, - - - .xxx a" "b c" "de"fg" - -has the arguments `a"', `b c', `de', and `fg"'. Don't rely on this -obscure behaviour! - - There are two possibilities to get a double quote reliably. - - * Enclose the whole argument with double quotes and use two - consecutive double quotes to represent a single one. This - traditional solution has the disadvantage that double quotes don't - survive argument expansion again if called in compatibility mode - (using the `-C' option of `groff'): - - - .de xx - . tm xx: `\\$1' `\\$2' `\\$3' - . - . yy "\\$1" "\\$2" "\\$3" - .. - .de yy - . tm yy: `\\$1' `\\$2' `\\$3' - .. - .xx A "test with ""quotes""" . - => xx: `A' `test with "quotes"' `.' - => yy: `A' `test with ' `quotes""' - - If not in compatibility mode, you get the expected result - - - xx: `A' `test with "quotes"' `.' - yy: `A' `test with "quotes"' `.' - - since `gtroff' preserves the input level. - - * Use the double quote glyph `\(dq'. This works with and without - compatibility mode enabled since `gtroff' doesn't convert `\(dq' - back to a double quote input character. - - Not that this method won't work with UNIX `troff' in general since - the glyph `dq' isn't defined normally. - - Double quotes in the `ds' request are handled differently. *Note -Strings::, for more details. - - -File: groff, Node: Request and Macro Arguments-Footnotes, Up: Request and Macro Arguments - - (1) Plan 9's `troff' implementation also allows tabs for argument -separation - `gtroff' intentionally doesn't support this. - - (2) The last solution, i.e., using escaped spaces, is "classical" in -the sense that it can be found in most `troff' documents. -Nevertheless, it is not optimal in all situations, since `\ ' inserts a -fixed-width, non-breaking space character which can't stretch. -`gtroff' provides a different command `\~' to insert a stretchable, -non-breaking space. - - -File: groff, Node: Macros, Next: Escapes, Prev: Requests, Up: Embedded Commands - -5.5.2 Macros ------------- - -`gtroff' has a "macro" facility for defining a series of lines which -can be invoked by name. They are called in the same manner as requests -- arguments also may be passed basically in the same manner. - - *Note Writing Macros::, and *Note Request and Macro Arguments::. - - -File: groff, Node: Escapes, Prev: Macros, Up: Embedded Commands - -5.5.3 Escapes -------------- - -Escapes may occur anywhere in the input to `gtroff'. They usually -begin with a backslash and are followed by a single character which -indicates the function to be performed. The escape character can be -changed; see *Note Character Translations::. - - Escape sequences which require an identifier as a parameter accept -three possible syntax forms. - - * The next single character is the identifier. - - * If this single character is an opening parenthesis, take the - following two characters as the identifier. Note that there is no - closing parenthesis after the identifier. - - * If this single character is an opening bracket, take all characters - until a closing bracket as the identifier. - -Examples: - - - \fB - \n(XX - \*[TeX] - - Other escapes may require several arguments and/or some special -format. In such cases the argument is traditionally enclosed in single -quotes (and quotes are always used in this manual for the definitions -of escape sequences). The enclosed text is then processed according to -what that escape expects. Example: - - - \l'1.5i\(bu' - - Note that the quote character can be replaced with any other -character which does not occur in the argument (even a newline or a -space character) in the following escapes: `\o', `\b', and `\X'. This -makes e.g. - - - A caf - \o - e\' - - - in Paris - => A café in Paris - -possible, but it is better not to use this feature to avoid confusion. - - The following escapes sequences (which are handled similarly to -characters since they don't take a parameter) are also allowed as -delimiters: `\%', `\ ', `\|', `\^', `\{', `\}', `\'', `\`', `\-', `\_', -`\!', `\?', `\@', `\)', `\/', `\,', `\&', `\:', `\~', `\0', `\a', `\c', -`\d', `\e', `\E', `\p', `\r', `\t', and `\u'. Again, don't use these -if possible. - - No newline characters as delimiters are allowed in the following -escapes: `\A', `\B', `\Z', `\C', and `\w'. - - Finally, the escapes `\D', `\h', `\H', `\l', `\L', `\N', `\R', `\s', -`\S', `\v', and `\x' can't use the following characters as delimiters: - - * The digits `0'-`9'. - - * The (single-character) operators `+-/*%<>=&:().'. - - * The space, tab, and newline characters. - - * All escape sequences except `\%', `\:', `\{', `\}', `\'', `\`', - `\-', `\_', `\!', `\@', `\/', `\c', `\e', and `\p'. - - To have a backslash (actually, the current escape character) appear -in the output several escapes are defined: `\\', `\e' or `\E'. These -are very similar, and only differ with respect to being used in macros -or diversions. *Note Character Translations::, for an exact -description of those escapes. - - *Note Implementation Differences::, *Note Copy-in Mode::, and *Note -Diversions::, *Note Identifiers::, for more information. - -* Menu: - -* Comments:: - - -File: groff, Node: Comments, Prev: Escapes, Up: Escapes - -5.5.3.1 Comments -................ - -Probably one of the most(1) (*note Comments-Footnote-1::) common forms -of escapes is the comment. - - -- Escape: \" - Start a comment. Everything to the end of the input line is - ignored. - - This may sound simple, but it can be tricky to keep the comments - from interfering with the appearance of the final output. - - If the escape is to the right of some text or a request, that - portion of the line is ignored, but the space leading up to it is - noticed by `gtroff'. This only affects the `ds' and `as' request - and its variants. - - One possibly irritating idiosyncracy is that tabs must not be used - to line up comments. Tabs are not treated as whitespace between - the request and macro arguments. - - A comment on a line by itself is treated as a blank line, because - after eliminating the comment, that is all that remains: - - - Test - \" comment - Test - - produces - - - Test - - Test - - To avoid this, it is common to start the line with `.\"' which - causes the line to be treated as an undefined request and thus - ignored completely. - - Another commenting scheme seen sometimes is three consecutive - single quotes (`'''') at the beginning of a line. This works, but - `gtroff' gives a warning about an undefined macro (namely `'''), - which is harmless, but irritating. - - -- Escape: \# - To avoid all this, `gtroff' has a new comment mechanism using the - `\#' escape. This escape works the same as `\"' except that the - newline is also ignored: - - - Test - \# comment - Test - - produces - - - Test Test - - as expected. - - -- Request: .ig [end] - Ignore all input until `gtroff' encounters the macro named `.'END - on a line by itself (or `..' if END is not specified). This is - useful for commenting out large blocks of text: - - - text text text... - .ig - This is part of a large block - of text that has been - temporarily(?) commented out. - - We can restore it simply by removing - the .ig request and the ".." at the - end of the block. - .. - More text text text... - - produces - - - text text text... More text text text... - - Note that the commented-out block of text does not cause a break. - - The input is read in copy-mode; auto-incremented registers _are_ - affected (*note Auto-increment::). - - -File: groff, Node: Comments-Footnotes, Up: Comments - - (1) Unfortunately, this is a lie. But hopefully future `gtroff' -hackers will believe it `:-)' - - -File: groff, Node: Registers, Next: Manipulating Filling and Adjusting, Prev: Embedded Commands, Up: gtroff Reference - -5.6 Registers -============= - -Numeric variables in `gtroff' are called "registers". There are a -number of built-in registers, supplying anything from the date to -details of formatting parameters. - - *Note Identifiers::, for details on register identifiers. - -* Menu: - -* Setting Registers:: -* Interpolating Registers:: -* Auto-increment:: -* Assigning Formats:: -* Built-in Registers:: - - -File: groff, Node: Setting Registers, Next: Interpolating Registers, Prev: Registers, Up: Registers - -5.6.1 Setting Registers ------------------------ - -Define or set registers using the `nr' request or the `\R' escape. - - -- Request: .nr ident value - -- Escape: \R'ident value' - Set number register IDENT to VALUE. If IDENT doesn't exist, - `gtroff' creates it. - - The argument to `\R' usually has to be enclosed in quotes. *Note - Escapes::, for details on parameter delimiting characters. - - The `\R' escape doesn't produce an input token in `gtroff'; with - other words, it vanishes completely after `gtroff' has processed - it. - - For example, the following two lines are equivalent: - - - .nr a (((17 + (3 * 4))) % 4) - \R'a (((17 + (3 * 4))) % 4)' - => 1 - - Both `nr' and `\R' have two additional special forms to increment or -decrement a register. - - -- Request: .nr ident +value - -- Request: .nr ident -value - -- Escape: \R'ident +value' - -- Escape: \R'ident -value' - Increment (decrement) register IDENT by VALUE. - - - .nr a 1 - .nr a +1 - \na - => 2 - - To assign the negated value of a register to another register, - some care must be taken to get the desired result: - - - .nr a 7 - .nr b 3 - .nr a -\nb - \na - => 4 - .nr a (-\nb) - \na - => -3 - - The surrounding parentheses prevent the interpretation of the - minus sign as a decrementing operator. An alternative is to start - the assignment with a `0': - - - .nr a 7 - .nr b -3 - .nr a \nb - \na - => 4 - .nr a 0\nb - \na - => -3 - - - -- Request: .rr ident - Remove number register IDENT. If IDENT doesn't exist, the request - is ignored. - - -- Request: .rnn ident1 ident2 - Rename number register IDENT1 to IDENT2. If either IDENT1 or - IDENT2 doesn't exist, the request is ignored. - - -- Request: .aln ident1 ident2 - Create an alias IDENT1 for a number register IDENT2. The new name - and the old name are exactly equivalent. If IDENT1 is undefined, - a warning of type `reg' is generated, and the request is ignored. - *Note Debugging::, for information about warnings. - - -File: groff, Node: Interpolating Registers, Next: Auto-increment, Prev: Setting Registers, Up: Registers - -5.6.2 Interpolating Registers ------------------------------ - -Numeric registers can be accessed via the `\n' escape. - - -- Escape: \ni - -- Escape: \n(id - -- Escape: \n[ident] - Interpolate number register with name IDENT (one-character name I, - two-character name ID). This means that the value of the register - is expanded in-place while `gtroff' is parsing the input line. - Nested assignments (also called indirect assignments) are possible. - - - .nr a 5 - .nr as \na+\na - \n(as - => 10 - - - .nr a1 5 - .nr ab 6 - .ds str b - .ds num 1 - \n[a\n[num]] - => 5 - \n[a\*[str]] - => 6 - - - -File: groff, Node: Auto-increment, Next: Assigning Formats, Prev: Interpolating Registers, Up: Registers - -5.6.3 Auto-increment --------------------- - -Number registers can also be auto-incremented and auto-decremented. -The increment or decrement value can be specified with a third argument -to the `nr' request or `\R' escape. - - -- Request: .nr ident value incr - Set number register IDENT to VALUE; the increment for - auto-incrementing is set to INCR. Note that the `\R' escape - doesn't support this notation. - - To activate auto-incrementing, the escape `\n' has a special syntax -form. - - -- Escape: \n+i - -- Escape: \n-i - -- Escape: \n(+id - -- Escape: \n(-id - -- Escape: \n+(id - -- Escape: \n-(id - -- Escape: \n[+ident] - -- Escape: \n[-ident] - -- Escape: \n+[ident] - -- Escape: \n-[ident] - Before interpolating, increment or decrement IDENT (one-character - name I, two-character name ID) by the auto-increment value as - specified with the `nr' request (or the `\R' escape). If no - auto-increment value has been specified, these syntax forms are - identical to `\n'. - - For example, - - - .nr a 0 1 - .nr xx 0 5 - .nr foo 0 -2 - \n+a, \n+a, \n+a, \n+a, \n+a - .br - \n-(xx, \n-(xx, \n-(xx, \n-(xx, \n-(xx - .br - \n+[foo], \n+[foo], \n+[foo], \n+[foo], \n+[foo] - -produces - - - 1, 2, 3, 4, 5 - -5, -10, -15, -20, -25 - -2, -4, -6, -8, -10 - - To change the increment value without changing the value of a -register (A in the example), the following can be used: - - - .nr a \na 10 - - -File: groff, Node: Assigning Formats, Next: Built-in Registers, Prev: Auto-increment, Up: Registers - -5.6.4 Assigning Formats ------------------------ - -When a register is used in the text of an input file (as opposed to -part of an expression), it is textually replaced (or interpolated) with -a representation of that number. This output format can be changed to -a variety of formats (numbers, Roman numerals, etc.). This is done -using the `af' request. - - -- Request: .af ident format - Change the output format of a number register. The first argument - IDENT is the name of the number register to be changed, and the - second argument FORMAT is the output format. The following output - formats are available: - - `1' - Decimal arabic numbers. This is the default format: 0, 1, 2, - 3, .... - - `0...0' - Decimal numbers with as many digits as specified. So, `00' - would result in printing numbers as 01, 02, 03, .... - - In fact, any digit instead of zero will do; `gtroff' only - counts how many digits are specified. As a consequence, - `af''s default format `1' could be specified as `0' also (and - exactly this is returned by the `\g' escape, see below). - - `I' - Upper-case Roman numerals: 0, I, II, III, IV, .... - - `i' - Lower-case Roman numerals: 0, i, ii, iii, iv, .... - - `A' - Upper-case letters: 0, A, B, C, ..., Z, AA, AB, .... - - `a' - Lower-case letters: 0, a, b, c, ..., z, aa, ab, .... - - Omitting the number register format causes a warning of type - `missing'. *Note Debugging::, for more details. Specifying a - nonexistent format causes an error. - - The following example produces `10, X, j, 010': - - - .nr a 10 - .af a 1 \" the default format - \na, - .af a I - \na, - .af a a - \na, - .af a 001 - \na - - The largest number representable for the `i' and `I' formats is - 39999 (or -39999); UNIX `troff' uses `z' and `w' to represent - 10000 and 5000 in Roman numerals, and so does `gtroff'. - Currently, the correct glyphs of Roman numeral five thousand and - Roman numeral ten thousand (Unicode code points `U+2182' and - `U+2181', respectively) are not available. - - If IDENT doesn't exist, it is created. - - Changing the output format of a read-only register causes an - error. It is necessary to first copy the register's value to a - writeable register, then apply the `af' request to this other - register. - - -- Escape: \gi - -- Escape: \g(id - -- Escape: \g[ident] - Return the current format of the specified register IDENT - (one-character name I, two-character name ID). For example, `\ga' - after the previous example would produce the string `000'. If the - register hasn't been defined yet, nothing is returned. - - -File: groff, Node: Built-in Registers, Prev: Assigning Formats, Up: Registers - -5.6.5 Built-in Registers ------------------------- - -The following lists some built-in registers which are not described -elsewhere in this manual. Any register which begins with a `.' is -read-only. A complete listing of all built-in registers can be found in -*Note Register Index::. - -`\n[.F]' - This string-valued register returns the current input file name. - -`\n[.H]' - Horizontal resolution in basic units. - -`\n[.U]' - If `gtroff' is called with the `-U' command line option, the - number register `.U' is set to 1, and zero otherwise. *Note Groff - Options::. - -`\n[.V]' - Vertical resolution in basic units. - -`\n[seconds]' - The number of seconds after the minute, normally in the range 0 - to 59, but can be up to 61 to allow for leap seconds. Initialized - at start-up of `gtroff'. - -`\n[minutes]' - The number of minutes after the hour, in the range 0 to 59. - Initialized at start-up of `gtroff'. - -`\n[hours]' - The number of hours past midnight, in the range 0 to 23. - Initialized at start-up of `gtroff'. - -`\n[dw]' - Day of the week (1-7). - -`\n[dy]' - Day of the month (1-31). - -`\n[mo]' - Current month (1-12). - -`\n[year]' - The current year. - -`\n[yr]' - The current year minus 1900. Unfortunately, the documentation of - UNIX Version 7's `troff' had a year 2000 bug: It incorrectly - claimed that `yr' contains the last two digits of the year. That - claim has never been true of either AT&T `troff' or GNU `troff'. - Old `troff' input that looks like this: - - - '\" The following line stopped working after 1999 - This document was formatted in 19\n(yr. - - can be corrected as follows: - - - This document was formatted in \n[year]. - - or, to be portable to older `troff' versions, as follows: - - - .nr y4 1900+\n(yr - This document was formatted in \n(y4. - -`\n[.c]' -`\n[c.]' - The current _input_ line number. Register `.c' is read-only, - whereas `c.' (a `gtroff' extension) is writable also, affecting - both `.c' and `c.'. - -`\n[ln]' - The current _output_ line number after a call to the `nm' request - to activate line numbering. - - *Note Miscellaneous::, for more information about line numbering. - -`\n[.x]' - The major version number. For example, if the version number is - 1.03 then `.x' contains `1'. - -`\n[.y]' - The minor version number. For example, if the version number is - 1.03 then `.y' contains `03'. - -`\n[.Y]' - The revision number of `groff'. - -`\n[$$]' - The process ID of `gtroff'. - -`\n[.g]' - Always 1. Macros should use this to determine whether they are - running under GNU `troff'. - -`\n[.A]' - If the command line option `-a' is used to produce an ASCII - approximation of the output, this is set to 1, zero otherwise. - *Note Groff Options::. - -`\n[.P]' - This register is set to 1 (and to 0 otherwise) if the current page - is actually being printed, i.e., if the `-o' option is being used - to only print selected pages. *Note Groff Options::, for more - information. - -`\n[.T]' - If `gtroff' is called with the `-T' command line option, the - number register `.T' is set to 1, and zero otherwise. *Note Groff - Options::. - -`\*[.T]' - A single read-write string register which contains the current - output device (for example, `latin1' or `ps'). This is the only - string register defined by `gtroff'. - - -File: groff, Node: Manipulating Filling and Adjusting, Next: Manipulating Hyphenation, Prev: Registers, Up: gtroff Reference - -5.7 Manipulating Filling and Adjusting -====================================== - -Various ways of causing "breaks" were given in *Note Implicit Line -Breaks::. The `br' request likewise causes a break. Several other -requests also cause breaks, but implicitly. These are `bp', `ce', -`cf', `fi', `fl', `in', `nf', `rj', `sp', `ti', and `trf'. - - -- Request: .br - Break the current line, i.e., the input collected so far is emitted - without adjustment. - - If the no-break control character is used, `gtroff' suppresses the - break: - - - a - 'br - b - => a b - - - Initially, `gtroff' fills and adjusts text to both margins. Filling -can be disabled via the `nf' request and re-enabled with the `fi' -request. - - -- Request: .fi - -- Register: \n[.u] - Activate fill mode (which is the default). This request implicitly - enables adjusting; it also inserts a break in the text currently - being filled. The read-only number register `.u' is set to 1. - - The fill mode status is associated with the current environment - (*note Environments::). - - See *Note Line Control::, for interaction with the `\c' escape. - - -- Request: .nf - Activate no-fill mode. Input lines are output as-is, retaining - line breaks and ignoring the current line length. This command - implicitly disables adjusting; it also causes a break. The number - register `.u' is set to 0. - - The fill mode status is associated with the current environment - (*note Environments::). - - See *Note Line Control::, for interaction with the `\c' escape. - - -- Request: .ad [mode] - -- Register: \n[.j] - Set adjusting mode. - - Activation and deactivation of adjusting is done implicitly with - calls to the `fi' or `nf' requests. - - MODE can have one of the following values: - - `l' - Adjust text to the left margin. This produces what is - traditionally called ragged-right text. - - `r' - Adjust text to the right margin, producing ragged-left text. - - `c' - Center filled text. This is different to the `ce' request - which only centers text without filling. - - `b' - `n' - Justify to both margins. This is the default used by - `gtroff'. - - Finally, MODE can be the numeric argument returned by the `.j' - register. - - With no argument, `gtroff' adjusts lines in the same way it did - before adjusting was deactivated (with a call to `na', for - example). - - - text - .ad r - .nr ad \n[.j] - text - .ad c - text - .na - text - .ad \" back to centering - text - .ad \n[ad] \" back to right justifying - - The current adjustment mode is available in the read-only number - register `.j'; it can be stored and subsequently used to set - adjustment. - - The adjustment mode status is associated with the current - environment (*note Environments::). - - -- Request: .na - Disable adjusting. This request won't change the current - adjustment mode: A subsequent call to `ad' uses the previous - adjustment setting. - - The adjustment mode status is associated with the current - environment (*note Environments::). - - -- Request: .brp - -- Escape: \p - Adjust the current line and cause a break. - - In most cases this produces very ugly results since `gtroff' - doesn't have a sophisticated paragraph building algorithm (as TeX - have, for example); instead, `gtroff' fills and adjusts a paragraph - line by line: - - - This is an uninteresting sentence. - This is an uninteresting sentence.\p - This is an uninteresting sentence. - - is formatted as - - - This is an uninteresting sentence. This is an - uninteresting sentence. - This is an uninteresting sentence. - - - -- Request: .ss word_space_size [sentence_space_size] - -- Register: \n[.ss] - -- Register: \n[.sss] - Change the size of a space between words. It takes its units as - one twelfth of the space width parameter for the current font. - Initially both the WORD_SPACE_SIZE and SENTENCE_SPACE_SIZE are 12. - In fill mode, the values specify the minimum distance. - - If two arguments are given to the `ss' request, the second - argument sets the sentence space size. If the second argument is - not given, sentence space size is set to WORD_SPACE_SIZE. The - sentence space size is used in two circumstances: If the end of a - sentence occurs at the end of a line in fill mode, then both an - inter-word space and a sentence space are added; if two spaces - follow the end of a sentence in the middle of a line, then the - second space is a sentence space. If a second argument is never - given to the `ss' request, the behaviour of UNIX `troff' is the - same as that exhibited by GNU `troff'. In GNU `troff', as in UNIX - `troff', a sentence should always be followed by either a newline - or two spaces. - - The read-only number registers `.ss' and `.sss' hold the values of - the parameters set by the first and second arguments of the `ss' - request. - - The word space and sentence space values are associated with the - current environment (*note Environments::). - - Contrary to AT&T `troff', this request is _not_ ignored if a TTY - output device is used; the given values are then rounded down to a - multiple of 12 (*note Implementation Differences::). - - The request is ignored if there is no parameter. - - Another useful application of the `ss' request is to insert - discardable horizontal space, i.e., space which is discarded at a - line break. For example, paragraph-style footnotes could be - separated this way: - - - .ll 4.5i - 1.\ This is the first footnote.\c - .ss 48 - .nop - .ss 12 - 2.\ This is the second footnote. - - The result: - - - 1. This is the first footnote. 2. This - is the second footnote. - - Note that the `\h' escape produces unbreakable space. - - -- Request: .ce [nnn] - -- Register: \n[.ce] - Center text. While the `.ad c' request also centers text, it - fills the text as well. `ce' does not fill the text it affects. - This request causes a break. The number of lines still to be - centered is associated with the current environment (*note - Environments::). - - The following example demonstrates the differences. Here the - input: - - - .ll 4i - .ce 1000 - This is a small text fragment which shows the differences - between the `.ce' and the `.ad c' request. - .ce 0 - - .ad c - This is a small text fragment which shows the differences - between the `.ce' and the `.ad c' request. - - And here the result: - - - This is a small text fragment which - shows the differences - between the `.ce' and the `.ad c' request. - - This is a small text fragment which - shows the differences between the `.ce' - and the `.ad c' request. - - With no arguments, `ce' centers the next line of text. NNN - specifies the number of lines to be centered. If the argument is - zero or negative, centering is disabled. - - The basic length for centering text is the line length (as set - with the `ll' request) minus the indentation (as set with the `in' - request). Temporary indentation is ignored. - - As can be seen in the previous example, it is a common idiom to - turn on centering for a large number of lines, and to turn off - centering after text to be centered. This is useful for any - request which takes a number of lines as an argument. - - The `.ce' read-only number register contains the number of lines - remaining to be centered, as set by the `ce' request. - - -- Request: .rj [nnn] - -- Register: \n[.rj] - Justify unfilled text to the right margin. Arguments are - identical to the `ce' request. The `.rj' read-only number - register is the number of lines to be right-justified as set by - the `rj' request. This request causes a break. The number of - lines still to be right-justified is associated with the current - environment (*note Environments::). - - -File: groff, Node: Manipulating Hyphenation, Next: Manipulating Spacing, Prev: Manipulating Filling and Adjusting, Up: gtroff Reference - -5.8 Manipulating Hyphenation -============================ - -Here a description of requests which influence hyphenation. - - -- Request: .hy [mode] - -- Register: \n[.hy] - Enable hyphenation. The request has an optional numeric argument, - MODE, to restrict hyphenation if necessary: - - `1' - The default argument if MODE is omitted. Hyphenate without - restrictions. This is also the start-up value of `gtroff'. - - `2' - Do not hyphenate the last word on a page or column. - - `4' - Do not hyphenate the last two characters of a word. - - `8' - Do not hyphenate the first two characters of a word. - - Values in the previous table are additive. For example, the - value 12 causes `gtroff' to neither hyphenate the last two nor the - first two characters of a word. - - The current hyphenation restrictions can be found in the read-only - number register `.hy'. - - The hyphenation mode is associated with the current environment - (*note Environments::). - - -- Request: .nh - Disable hyphenation (i.e., set the hyphenation mode to zero). Note - that the hyphenation mode of the last call to `hy' is not - remembered. - - The hyphenation mode is associated with the current environment - (*note Environments::). - - -- Request: .hlm [nnn] - -- Register: \n[.hlm] - -- Register: \n[.hlc] - Set the maximum number of consecutive hyphenated lines to NNN. If - this number is negative, there is no maximum. The default value - is -1 if NNN is omitted. This value is associated with the - current environment (*note Environments::). Only lines output - from a given environment count towards the maximum associated with - that environment. Hyphens resulting from `\%' are counted; - explicit hyphens are not. - - The current setting of `hlm' is available in the `.hlm' read-only - number register. Also the number of immediately preceding - consecutive hyphenated lines are available in the read-only number - register `.hlc'. - - -- Request: .hw word1 word2 ... - Define how WORD1, WORD2, etc. are to be hyphenated. The words - must be given with hyphens at the hyphenation points. For example: - - - .hw in-sa-lub-rious - - Besides the space character, any character whose hyphenation code - value is zero can be used to separate the arguments of `hw' (see - the documentation for the `hcode' request below for more - information). In addition, this request can be used more than - once. - - Hyphenation exceptions specified with the `hw' request are - associated with the current hyphenation language; it causes an - error if there is no current hyphenation language. - - This request is ignored if there is no parameter. - - In old versions of `troff' there was a limited amount of space to - store such information; fortunately, with `gtroff', this is no - longer a restriction. - - -- Escape: \% - -- Escape: \: - To tell `gtroff' how to hyphenate words on the fly, use the `\%' - escape, also known as the "hyphenation character". Preceding a - word with this character prevents it from being hyphenated; - putting it inside a word indicates to `gtroff' that the word may - be hyphenated at that point. Note that this mechanism only - affects that one occurrence of the word; to change the hyphenation - of a word for the entire document, use the `hw' request. - - The `\:' escape inserts a zero-width break point (that is, the - word breaks but without adding a hyphen). - - - ... check the /var/log/\:httpd/\:access_log file ... - - Note that `\X' and `\Y' start a word, that is, the `\%' escape in - (say) `\X'...'\%foobar' and `\Y'...'\%foobar' no longer prevents - hyphenation but inserts a hyphenation point at the beginning of - `foobar'; most likely this isn't what you want to do. - - -- Request: .hc [char] - Change the hyphenation character to CHAR. This character then - works the same as the `\%' escape, and thus, no longer appears in - the output. Without an argument, `hc' resets the hyphenation - character to be `\%' (the default) only. - - The hyphenation character is associated with the current - environment (*note Environments::). - - -- Request: .hpf pattern_file - -- Request: .hpfa pattern_file - -- Request: .hpfcode a b [c d ...] - Read in a file of hyphenation patterns. This file is searched for - in the same way as `NAME.tmac' (or `tmac.NAME') is searched for if - the `-mNAME' option is specified. - - It should have the same format as (simple) TeX patterns files. - More specifically, the following scanning rules are implemented. - - * A percent sign starts a comment (up to the end of the line) - even if preceded by a backslash. - - * No support for `digraphs' like `\$'. - - * `^^XX' (X is 0-9 or a-f) and `^^X' (character code of X in - the range 0-127) are recognized; other use of `^' causes an - error. - - * No macro expansion. - - * `hpf' checks for the expression `\patterns{...}' (possibly - with whitespace before and after the braces). Everything - between the braces is taken as hyphenation patterns. - Consequently, `{' and `}' are not allowed in patterns. - - * Similarly, `\hyphenation{...}' gives a list of hyphenation - exceptions. - - * `\endinput' is recognized also. - - * For backwards compatibility, if `\patterns' is missing, the - whole file is treated as a list of hyphenation patterns (only - recognizing the `%' character as the start of a comment). - - If no `hpf' request is specified (either in the document or in a - macro package), `gtroff' won't hyphenate at all. - - The `hpfa' request appends a file of patterns to the current list. - - The `hpfcode' request defines mapping values for character codes in - hyphenation patterns. `hpf' or `hpfa' then apply the mapping - (after reading the patterns) before replacing or appending them to - the current list of patterns. Its arguments are pairs of - character codes - integers from 0 to 255. The request maps - character code A to code B, code C to code D, and so on. You can - use character codes which would be invalid otherwise. - - The set of hyphenation patterns is associated with the current - language set by the `hla' request. The `hpf' request is usually - invoked by the `troffrc' or `troffrc-end' file; by default, - `troffrc' loads hyphenation patterns and exceptions for American - English (in files `hyphen.us' and `hyphenex.us'). - - A second call to `hpf' (for the same language) will replace the - hyphenation patterns with the new ones. - - Invoking `hpf' causes an error if there is no current hyphenation - language. - - -- Request: .hcode c1 code1 [c2 code2 ...] - Set the hyphenation code of character C1 to CODE1, that of C2 to - CODE2, etc. A hyphenation code must be a single input character - (not a special character) other than a digit or a space. - - To make hyphenation work, hyphenation codes must be set up. At - start-up, groff only assigns hyphenation codes to the letters - `a'-`z' (mapped to themselves) and to the letters `A'-`Z' (mapped - to `a'-`z'); all other hyphenation codes are set to zero. - Normally, hyphenation patterns contain only lowercase letters - which should be applied regardless of case. With other words, the - words `FOO' and `Foo' should be hyphenated exactly the same way as - the word `foo' is hyphenated, and this is what `hcode' is good - for. Words which contain other letters won't be hyphenated - properly if the corresponding hyphenation patterns actually do - contain them. For example, the following `hcode' requests are - necessary to assign hyphenation codes to the letters - `ÄäÖöÜüß' (this is needed for German): - - - .hcode ä ä Ä ä - .hcode ö ö Ö ö - .hcode ü ü Ãœ ü - .hcode ß ß - - Without those assignments, groff treats German words like - `Kindergärten' (the plural form of `kindergarten') as two - substrings `kinderg' and `rten' because the hyphenation code of - the umlaut a is zero by default. There is a German hyphenation - pattern which covers `kinder', so groff finds the hyphenation - `kin-der'. The other two hyphenation points (`kin-der-gär-ten') - are missed. - - This request is ignored if it has no parameter. - - -- Request: .hym [length] - -- Register: \n[.hym] - Set the (right) hyphenation margin to LENGTH. If the current - adjustment mode is not `b' or `n', the line is not hyphenated if - it is shorter than LENGTH. Without an argument, the hyphenation - margin is reset to its default value, which is 0. The default - scaling indicator for this request is `m'. The hyphenation margin - is associated with the current environment (*note Environments::). - - A negative argument resets the hyphenation margin to zero, emitting - a warning of type `range'. - - The current hyphenation margin is available in the `.hym' read-only - number register. - - -- Request: .hys [hyphenation_space] - -- Register: \n[.hys] - Set the hyphenation space to HYPHENATION_SPACE. If the current - adjustment mode is `b' or `n', don't hyphenate the line if it can - be justified by adding no more than HYPHENATION_SPACE extra space - to each word space. Without argument, the hyphenation space is - set to its default value, which is 0. The default scaling - indicator for this request is `m'. The hyphenation space is - associated with the current environment (*note Environments::). - - A negative argument resets the hyphenation space to zero, emitting - a warning of type `range'. - - The current hyphenation space is available in the `.hys' read-only - number register. - - -- Request: .shc [glyph] - Set the "soft hyphen character" to GLYPH.(1) (*note Manipulating - Hyphenation-Footnote-1::) If the argument is omitted, the soft - hyphen character is set to the default glyph `\(hy' (this is the - start-up value of `gtroff' also). The soft hyphen character is - the glyph that is inserted when a word is hyphenated at a line - break. If the soft hyphen character does not exist in the font of - the character immediately preceding a potential break point, then - the line is not broken at that point. Neither definitions - (specified with the `char' request) nor translations (specified - with the `tr' request) are considered when finding the soft hyphen - character. - - -- Request: .hla language - -- Register: \n[.hla] - Set the current hyphenation language to the string LANGUAGE. - Hyphenation exceptions specified with the `hw' request and - hyphenation patterns specified with the `hpf' and `hpfa' requests - are both associated with the current hyphenation language. The - `hla' request is usually invoked by the `troffrc' or the - `troffrc-end' files; `troffrc' sets the default language to `us'. - - The current hyphenation language is available as a string in the - read-only number register `.hla'. - - - .ds curr_language \n[.hla] - \*[curr_language] - => us - - - -File: groff, Node: Manipulating Hyphenation-Footnotes, Up: Manipulating Hyphenation - - (1) "Soft hyphen character" is a misnomer since it is an output -glyph. - - -File: groff, Node: Manipulating Spacing, Next: Tabs and Fields, Prev: Manipulating Hyphenation, Up: gtroff Reference - -5.9 Manipulating Spacing -======================== - - -- Request: .sp [distance] - Space downwards DISTANCE. With no argument it advances 1 line. A - negative argument causes `gtroff' to move up the page the - specified distance. If the argument is preceded by a `|' then - `gtroff' moves that distance from the top of the page. This - request causes a line break. The default scaling indicator is `v'. - - If a vertical trap is sprung during execution of `sp', the amount - of vertical space after the trap is discarded. For example, this - - - .de xxx - .. - . - .wh 0 xxx - . - .pl 5v - foo - .sp 2 - bar - .sp 50 - baz - - results in - - - foo - - - bar - - baz - - The amount of discarded space is available in the number register - `.trunc'. - - To protect `sp' against vertical traps, use the `vpt' request: - - - .vpt 0 - .sp -3 - .vpt 1 - - - -- Request: .ls [nnn] - -- Register: \n[.L] - Output NNN-1 blank lines after each line of text. With no - argument, `gtroff' uses the previous value before the last `ls' - call. - - - .ls 2 \" This causes double-spaced output - .ls 3 \" This causes triple-spaced output - .ls \" Again double-spaced - - The line spacing is associated with the current environment (*note - Environments::). - - The read-only number register `.L' contains the current line - spacing setting. - - *Note Changing Type Sizes::, for the requests `vs' and `pvs' as -alternatives to `ls'. - - -- Escape: \x'spacing' - -- Register: \n[.a] - Sometimes, extra vertical spacing is only needed occasionally, e.g. - to allow space for a tall construct (like an equation). The `\x' - escape does this. The escape is given a numerical argument, - usually enclosed in quotes (like `\x'3p''); the default scaling - indicator is `v'. If this number is positive extra vertical space - is inserted below the current line. A negative number adds space - above. If this escape is used multiple times on the same line, - the maximum of the values is used. - - *Note Escapes::, for details on parameter delimiting characters. - - The `.a' read-only number register contains the most recent - (nonnegative) extra vertical line space. - - Using `\x' can be necessary in combination with the `\b' escape, - as the following example shows. - - - This is a test with the \[rs]b escape. - .br - This is a test with the \[rs]b escape. - .br - This is a test with \b'xyz'\x'-1m'\x'1m'. - .br - This is a test with the \[rs]b escape. - .br - This is a test with the \[rs]b escape. - - produces - - - This is a test with the \b escape. - This is a test with the \b escape. - x - This is a test with y. - z - This is a test with the \b escape. - This is a test with the \b escape. - - - -- Request: .ns - -- Request: .rs - -- Register: \n[.ns] - Enable "no-space mode". In this mode, spacing (either via `sp' or - via blank lines) is disabled. The `bp' request to advance to the - next page is also disabled, except if it is accompanied by a page - number (see *Note Page Control::, for more information). This - mode ends when actual text is output or the `rs' request is - encountered which ends no-space mode. The read-only number - register `.ns' is set to 1 as long as no-space mode is active. - - This request is useful for macros that conditionally insert - vertical space before the text starts (for example, a paragraph - macro could insert some space except when it is the first - paragraph after a section header). - - -File: groff, Node: Tabs and Fields, Next: Character Translations, Prev: Manipulating Spacing, Up: gtroff Reference - -5.10 Tabs and Fields -==================== - -A tab character (ASCII char 9, EBCDIC char 5) causes a horizontal -movement to the next tab stop (much like it did on a typewriter). - - -- Escape: \t - This escape is a non-interpreted tab character. In copy mode - (*note Copy-in Mode::), `\t' is the same as a real tab character. - - -- Request: .ta [n1 n2 ... nn T r1 r2 ... rn] - -- Register: \n[.tabs] - Change tab stop positions. This request takes a series of tab - specifiers as arguments (optionally divided into two groups with - the letter `T') which indicate where each tab stop is to be - (overriding any previous settings). - - Tab stops can be specified absolutely, i.e., as the distance from - the left margin. For example, the following sets 6 tab stops every - one inch. - - - .ta 1i 2i 3i 4i 5i 6i - - Tab stops can also be specified using a leading `+' which means - that the specified tab stop is set relative to the previous tab - stop. For example, the following is equivalent to the previous - example. - - - .ta 1i +1i +1i +1i +1i +1i - - `gtroff' supports an extended syntax to specify repeat values after - the `T' mark (these values are always taken as relative) - this is - the usual way to specify tabs set at equal intervals. The - following is, yet again, the same as the previous examples. It - does even more since it defines an infinite number of tab stops - separated by one inch. - - - .ta T 1i - - Now we are ready to interpret the full syntax given at the - beginning: Set tabs at positions N1, N2, ..., NN and then set tabs - at NN+R1, NN+R2, ..., NN+RN and then at NN+RN+R1, NN+RN+R2, ..., - NN+RN+RN, and so on. - - Example: `4c +6c T 3c 5c 2c' is equivalent to `4c 10c 13c 18c 20c - 23c 28c 30c ...'. - - The material in each tab column (i.e., the column between two tab - stops) may be justified to the right or left or centered in the - column. This is specified by appending `R', `L', or `C' to the tab - specifier. The default justification is `L'. Example: - - - .ta 1i 2iC 3iR - - Some notes: - - * The default unit of the `ta' request is `m'. - - * A tab stop is converted into a non-breakable horizontal - movement which can be neither stretched nor squeezed. For - example, - - - .ds foo a\tb\tc - .ta T 5i - \*[foo] - - creates a single line which is a bit longer than 10 inches (a - string is used to show exactly where the tab characters are). - Now consider the following: - - - .ds bar a\tb b\tc - .ta T 5i - \*[bar] - - `gtroff' first converts the tab stops of the line into - unbreakable horizontal movements, then splits the line after - the second `b' (assuming a sufficiently short line length). - Usually, this isn't what the user wants. - - * Superfluous tabs (i.e., tab characters which do not - correspond to a tab stop) are ignored except the first one - which delimits the characters belonging to the last tab stop - for right-justifying or centering. Consider the following - example - - - .ds Z foo\tbar\tfoo - .ds ZZ foo\tbar\tfoobar - .ds ZZZ foo\tbar\tfoo\tbar - .ta 2i 4iR - \*[Z] - .br - \*[ZZ] - .br - \*[ZZZ] - .br - - which produces the following output: - - - foo bar foo - foo bar foobar - foo bar foobar - - The first line right-justifies the second `foo' relative to - the tab stop. The second line right-justifies `foobar'. The - third line finally right-justifies only `foo' because of the - additional tab character which marks the end of the string - belonging to the last defined tab stop. - - * Tab stops are associated with the current environment (*note - Environments::). - - * Calling `ta' without an argument removes all tab stops. - - * The start-up value of `gtroff' is `T 0.8i'. - - The read-only number register `.tabs' contains a string - representation of the current tab settings suitable for use as an - argument to the `ta' request. - - - .ds tab-string \n[.tabs] - \*[tab-string] - => T120u - - The `troff' version of the Plan 9 operating system uses register - `.S' for the same purpose. - - -- Request: .tc [fill-glyph] - Normally `gtroff' fills the space to the next tab stop with - whitespace. This can be changed with the `tc' request. With no - argument `gtroff' reverts to using whitespace, which is the - default. The value of this "tab repetition character" is - associated with the current environment (*note Environments::).(1) - (*note Tabs and Fields-Footnote-1::) - - -- Request: .linetabs n - -- Register: \n[.linetabs] - If N is missing or not zero, enable "line-tabs" mode, or disable - it otherwise (the default). In line-tabs mode, `gtroff' computes - tab distances relative to the (current) output line instead of the - input line. - - For example, the following code: - - - .ds x a\t\c - .ds y b\t\c - .ds z c - .ta 1i 3i - \*x - \*y - \*z - - in normal mode, results in the output - - - a b c - - in line-tabs mode, the same code outputs - - - a b c - - Line-tabs mode is associated with the current environment. The - read-only register `.linetabs' is set to 1 if in line-tabs mode, - and 0 in normal mode. - -* Menu: - -* Leaders:: -* Fields:: - - -File: groff, Node: Tabs and Fields-Footnotes, Up: Tabs and Fields - - (1) "Tab repetition character" is a misnomer since it is an output -glyph. - - -File: groff, Node: Leaders, Next: Fields, Prev: Tabs and Fields, Up: Tabs and Fields - -5.10.1 Leaders --------------- - -Sometimes it may may be desirable to use the `tc' request to fill a -particular tab stop with a given glyph (for example dots in a table of -contents), but also normal tab stops on the rest of the line. For this -`gtroff' provides an alternate tab mechanism, called "leaders" which -does just that. - - A leader character (character code 1) behaves similarly to a tab -character: It moves to the next tab stop. The only difference is that -for this movement, the fill glyph defaults to a period character and -not to space. - - -- Escape: \a - This escape is a non-interpreted leader character. In copy mode - (*note Copy-in Mode::), `\a' is the same as a real leader - character. - - -- Request: .lc [fill-glyph] - Declare the "leader repetition character".(1) (*note - Leaders-Footnote-1::) Without an argument, leaders act the same as - tabs (i.e., using whitespace for filling). `gtroff''s start-up - value is a dot (`.'). The value of the leader repetition - character is associated with the current environment (*note - Environments::). - - For a table of contents, to name an example, tab stops may be -defined so that the section number is one tab stop, the title is the -second with the remaining space being filled with a line of dots, and -then the page number slightly separated from the dots. - - - .ds entry 1.1\tFoo\a\t12 - .lc . - .ta 1i 5i +.25i - \*[entry] - -This produces - - - 1.1 Foo.......................................... 12 - - -File: groff, Node: Leaders-Footnotes, Up: Leaders - - (1) "Leader repetition character" is a misnomer since it is an -output glyph. - - -File: groff, Node: Fields, Prev: Leaders, Up: Tabs and Fields - -5.10.2 Fields -------------- - -"Fields" are a more general way of laying out tabular data. A field is -defined as the data between a pair of "delimiting characters". It -contains substrings which are separated by "padding characters". The -width of a field is the distance on the _input_ line from the position -where the field starts to the next tab stop. A padding character -inserts stretchable space similar to TeX's `\hss' command (thus it can -even be negative) to make the sum of all substring lengths plus the -stretchable space equal to the field width. If more than one padding -character is inserted, the available space is evenly distributed among -them. - - -- Request: .fc [delim-char [padding-char]] - Define a delimiting and a padding character for fields. If the - latter is missing, the padding character defaults to a space - character. If there is no argument at all, the field mechanism is - disabled (which is the default). Note that contrary to e.g. the - tab repetition character, delimiting and padding characters are - _not_ associated to the current environment (*note Environments::). - - Example: - - - .fc # ^ - .ta T 3i - #foo^bar^smurf# - .br - #foo^^bar^smurf# - - and here the result: - - - foo bar smurf - foo bar smurf - - - -File: groff, Node: Character Translations, Next: Troff and Nroff Mode, Prev: Tabs and Fields, Up: gtroff Reference - -5.11 Character Translations -=========================== - -The control character (`.') and the no-break control character (`'') -can be changed with the `cc' and `c2' requests, respectively. - - -- Request: .cc [c] - Set the control character to C. With no argument the default - control character `.' is restored. The value of the control - character is associated with the current environment (*note - Environments::). - - -- Request: .c2 [c] - Set the no-break control character to C. With no argument the - default control character `'' is restored. The value of the - no-break control character is associated with the current - environment (*note Environments::). - - -- Request: .eo - Disable the escape mechanism completely. After executing this - request, the backslash character `\' no longer starts an escape - sequence. - - This request can be very helpful in writing macros since it is not - necessary then to double the escape character. Here an example: - - - .\" This is a simplified version of the - .\" .BR request from the man macro package - .eo - .de BR - . ds result \& - . while (\n[.$] >= 2) \{\ - . as result \fB\$1\fR\$2 - . shift 2 - . \} - . if \n[.$] .as result \fB\$1 - \*[result] - . ft R - .. - .ec - - - -- Request: .ec [c] - Set the escape character to C. With no argument the default - escape character `\' is restored. It can be also used to - re-enable the escape mechanism after an `eo' request. - - Note that changing the escape character globally will likely break - macro packages since `gtroff' has no mechanism to `intern' macros, - i.e., to convert a macro definition into an internal form which is - independent of its representation (TeX has this mechanism). If a - macro is called, it is executed literally. - - -- Request: .ecs - -- Request: .ecr - The `ecs' request saves the current escape character in an - internal register. Use this request in combination with the `ec' - request to temporarily change the escape character. - - The `ecr' request restores the escape character saved with `ecs'. - Without a previous call to `ecs', this request sets the escape - character to `\'. - - -- Escape: \\ - -- Escape: \e - -- Escape: \E - Print the current escape character (which is the backslash - character `\' by default). - - `\\' is a `delayed' backslash; more precisely, it is the default - escape character followed by a backslash, which no longer has - special meaning due to the leading escape character. It is _not_ - an escape sequence in the usual sense! In any unknown escape - sequence `\X' the escape character is ignored and X is printed. - But if X is equal to the current escape character, no warning is - emitted. - - As a consequence, only at top-level or in a diversion a backslash - glyph is printed; in copy-in mode, it expands to a single - backslash which then combines with the following character to an - escape sequence. - - The `\E' escape differs from `\e' by printing an escape character - that is not interpreted in copy mode. Use this to define strings - with escapes that work when used in copy mode (for example, as a - macro argument). The following example defines strings to begin - and end a superscript: - - - .ds { \v'-.3m'\s'\En[.s]*60/100' - .ds } \s0\v'.3m' - - Another example to demonstrate the differences between the various - escape sequences, using a strange escape character, `-'. - - - .ec - - .de xxx - --A'123' - .. - .xxx - => -A'foo' - - The result is surprising for most users, expecting `1' since `foo' - is a valid identifier. What has happened? As mentioned above, - the leading escape character makes the following character - ordinary. Written with the default escape character the sequence - `--' becomes `\-' - this is the minus sign. - - If the escape character followed by itself is a valid escape - sequence, only `\E' yields the expected result: - - - .ec - - .de xxx - -EA'123' - .. - .xxx - => 1 - - - -- Escape: \. - Similar to `\\', the sequence `\.' isn't a real escape sequence. - As before, a warning message is suppressed if the escape character - is followed by a dot, and the dot itself is printed. - - - .de foo - . nop foo - . - . de bar - . nop bar - \\.. - . - .. - .foo - .bar - => foo bar - - The first backslash is consumed while the macro is read, and the - second is swallowed while exexuting macro `foo'. - - A "translation" is a mapping of an input character to an output -glyph. The mapping occurs at output time, i.e., the input character -gets assigned the metric information of the mapped output character -right before input tokens are converted to nodes (*note Gtroff -Internals::, for more on this process). - - -- Request: .tr abcd... - -- Request: .trin abcd... - Translate character A to glyph B, character C to glyph D, etc. If - there is an odd number of arguments, the last one is translated to - an unstretchable space (`\ '). - - The `trin' request is identical to `tr', but when you unformat a - diversion with `asciify' it ignores the translation. *Note - Diversions::, for details about the `asciify' request. - - Some notes: - - * Special characters (`\(XX', `\[XXX]', `\C'XXX'', `\'', `\`', - `\-', `\_'), glyphs defined with the `char' request, and - numbered glyphs (`\N'XXX'') can be translated also. - - * The `\e' escape can be translated also. - - * Characters can be mapped onto the `\%' and `\~' escapes (but - `\%' and `\~' can't be mapped onto another glyph). - - * The following characters can't be translated: space (with one - exception, see below), backspace, newline, leader (and `\a'), - tab (and `\t'). - - * Translations are not considered for finding the soft hyphen - character set with the `shc' request. - - * The pair `C\&' (this is an arbitrary character C followed by - the zero width space character) maps this character to - nothing. - - - .tr a\& - foo bar - => foo br - - It is even possible to map the space character to nothing: - - - .tr aa \& - foo bar - => foobar - - As shown in the example, the space character can't be the - first character/glyph pair as an argument of `tr'. - Additionally, it is not possible to map the space character - to any other glyph; requests like `.tr aa x' undo `.tr aa \&' - instead. - - If justification is active, lines are justified in spite of - the `empty' space character (but there is no minimal - distance, i.e. the space character, between words). - - * After an output glyph has been constructed (this happens at - the moment immediately before the glyph is appended to an - output glyph list, either by direct output, in a macro, - diversion, or string), it is no longer affected by `tr'. - - * Translating character to glyphs where one of them or both are - undefined is possible also; `tr' does not check whether the - entities in its argument do exist. - - *Note Gtroff Internals::. - - * `troff' no longer has a hard-coded dependency on Latin-1; all - `charXXX' entities have been removed from the font - description files. This has a notable consequence which - shows up in warnings like `can't find character with input - code XXX' if the `tr' request isn't handled properly. - - Consider the following translation: - - - .tr éÉ - - This maps input character `é' onto glyph `É', which is - identical to glyph `char201'. But this glyph intentionally - doesn't exist! Instead, `\[char201]' is treated as an input - character entity and is by default mapped onto `\['E]', and - `gtroff' doesn't handle translations of translations. - - The right way to write the above translation is - - - .tr é\['E] - - With other words, the first argument of `tr' should be an - input character or entity, and the second one a glyph entity. - - * Without an argument, the `tr' request is ignored. - - -- Request: .trnt abcd... - `trnt' is the same as the `tr' request except that the - translations do not apply to text that is transparently throughput - into a diversion with `\!'. *Note Diversions::, for more - information. - - For example, - - - .tr ab - .di x - \!.tm a - .di - .x - - prints `b' to the standard error stream; if `trnt' is used instead - of `tr' it prints `a'. - - -File: groff, Node: Troff and Nroff Mode, Next: Line Layout, Prev: Character Translations, Up: gtroff Reference - -5.12 Troff and Nroff Mode -========================= - -Originally, `nroff' and `troff' were two separate programs, the former -for TTY output, the latter for everything else. With GNU `troff', both -programs are merged into one executable, sending its output to a device -driver (`grotty' for TTY devices, `grops' for POSTSCRIPT, etc.) which -interprets the intermediate output of `gtroff'. For UNIX `troff' it -makes sense to talk about "Nroff mode" and "Troff mode" since the -differences are hardcoded. For GNU `troff', this distinction is not -appropriate because `gtroff' simply takes the information given in the -font files for a particular device without handling requests specially -if a TTY output device is used. - - Usually, a macro package can be used with all output devices. -Nevertheless, it is sometimes necessary to make a distinction between -TTY and non-TTY devices: `gtroff' provides two built-in conditions `n' -and `t' for the `if', `ie', and `while' requests to decide whether -`gtroff' shall behave like `nroff' or like `troff'. - - -- Request: .troff - Make the `t' built-in condition true (and the `n' built-in - condition false) for `if', `ie', and `while' conditional requests. - This is the default if `gtroff' (_not_ `groff') is started with - the `-R' switch to avoid loading of the start-up files `troffrc' - and `troffrc-end'. Without `-R', `gtroff' stays in troff mode if - the output device is not a TTY (e.g. `ps'). - - -- Request: .nroff - Make the `n' built-in condition true (and the `t' built-in - condition false) for `if', `ie', and `while' conditional requests. - This is the default if `gtroff' uses a TTY output device; the - code for switching to nroff mode is in the file `tty.tmac' which - is loaded by the start-up file `troffrc'. - - *Note Conditionals and Loops::, for more details on built-in -conditions. - - -File: groff, Node: Line Layout, Next: Line Control, Prev: Troff and Nroff Mode, Up: gtroff Reference - -5.13 Line Layout -================ - -The following drawing shows the dimensions which `gtroff' uses for -placing a line of output onto the page. They are labeled with the -request which manipulates each dimension. - - - -->| in |<-- - |<-----------ll------------>| - +----+----+----------------------+----+ - | : : : | - +----+----+----------------------+----+ - -->| po |<-- - |<--------paper width---------------->| - -These dimensions are: - -`po' - "Page offset" - this is the leftmost position of text on the final - output, defining the "left margin". - -`in' - "Indentation" - this is the distance from the left margin where - text is printed. - -`ll' - "Line length" - this is the distance from the left margin to right - margin. - - A simple demonstration: - - - .ll 3i - This is text without indentation. - The line length has been set to 3\~inch. - .in +.5i - .ll -.5i - Now the left and right margins are both increased. - .in - .ll - Calling .in and .ll without parameters restore - the previous values. - - Result: - - - This is text without indenta- - tion. The line length has - been set to 3 inch. - Now the left and - right margins are - both increased. - Calling .in and .ll without - parameters restore the previ- - ous values. - - -- Request: .po [offset] - -- Request: .po +offset - -- Request: .po -offset - -- Register: \n[.o] - Set horizontal page offset to OFFSET (or increment or decrement - the current value by OFFSET). Note that this request does not - cause a break, so changing the page offset in the middle of text - being filled may not yield the expected result. The initial value - is 1i. For TTY output devices, it is set to 0 in the startup file - `troffrc'; the default scaling indicator is `m' (and not `v' as - incorrectly documented in the original UNIX troff manual). - - The current page offset can be found in the read-only number - register `.o'. - - If `po' is called without an argument, the page offset is reset to - the previous value before the last call to `po'. - - - .po 3i - \n[.o] - => 720 - .po -1i - \n[.o] - => 480 - .po - \n[.o] - => 720 - - - -- Request: .in [indent] - -- Request: .in +indent - -- Request: .in -indent - -- Register: \n[.i] - Set indentation to INDENT (or increment or decrement the current - value by INDENT). This request causes a break. Initially, there - is no indentation. - - If `in' is called without an argument, the indentation is reset to - the previous value before the last call to `in'. The default - scaling indicator is `m'. - - The indentation is associated with the current environment (*note - Environments::). - - If a negative indentation value is specified (which is not - allowed), `gtroff' emits a warning of type `range' and sets the - indentation to zero. - - The effect of `in' is delayed until a partially collected line (if - it exists) is output. A temporary indentation value is reset to - zero also. - - The current indentation (as set by `in') can be found in the - read-only number register `.i'. - - -- Request: .ti offset - -- Request: .ti +offset - -- Request: .ti -offset - -- Register: \n[.in] - Temporarily indent the next output line by OFFSET. If an - increment or decrement value is specified, adjust the temporary - indentation relative to the value set by the `in' request. - - This request causes a break; its value is associated with the - current environment (*note Environments::). The default scaling - indicator is `m'. A call of `ti' without an argument is ignored. - - If the total indentation value is negative (which is not allowed), - `gtroff' emits a warning of type `range' and sets the temporary - indentation to zero. `Total indentation' is either OFFSET if - specified as an absolute value, or the temporary plus normal - indentation, if OFFSET is given as a relative value. - - The effect of `ti' is delayed until a partially collected line (if - it exists) is output. - - The read-only number register `.in' is the indentation that applies - to the current output line. - - The difference between `.i' and `.in' is that the latter takes - into account whether a partially collected line still uses the old - indentation value or a temporary indentation value is active. - - -- Request: .ll [length] - -- Request: .ll +length - -- Request: .ll -length - -- Register: \n[.l] - -- Register: \n[.ll] - Set the line length to LENGTH (or increment or decrement the - current value by LENGTH). Initially, the line length is set to - 6.5i. The effect of `ll' is delayed until a partially collected - line (if it exists) is output. The default scaling indicator is - `m'. - - If `ll' is called without an argument, the line length is reset to - the previous value before the last call to `ll'. If a negative - line length is specified (which is not allowed), `gtroff' emits a - warning of type `range' and sets the line length to zero. - - The line length is associated with the current environment (*note - Environments::). - - The current line length (as set by `ll') can be found in the - read-only number register `.l'. The read-only number register - `.ll' is the line length that applies to the current output line. - - Similar to `.i' and `.in', the difference between `.l' and `.ll' - is that the latter takes into account whether a partially - collected line still uses the old line length value. - - -File: groff, Node: Line Control, Next: Page Layout, Prev: Line Layout, Up: gtroff Reference - -5.14 Line Control -================= - -It is important to understand how `gtroff' handles input and output -lines. - - Many escapes use positioning relative to the input line. For -example, this - - - This is a \h'|1.2i'test. - - This is a - \h'|1.2i'test. - -produces - - - This is a test. - - This is a test. - - The main usage of this feature is to define macros which act exactly -at the place where called. - - - .\" A simple macro to underline a word - .de underline - . nop \\$1\l'|0\[ul]' - .. - -In the above example, `|0' specifies a negative distance from the -current position (at the end of the just emitted argument `\$1') back -to the beginning of the input line. Thus, the `\l' escape draws a line -from right to left. - - `gtroff' makes a difference between input and output line -continuation; the latter is also called "interrupting" a line. - - -- Escape: \ - -- Escape: \c - -- Register: \n[.int] - Continue a line. `\' (this is a backslash at the end of a - line immediately followed by a newline) works on the input level, - suppressing the effects of the following newline in the input. - - - This is a \ - .test - => This is a .test - - The `|' operator is also affected. - - `\c' works on the output level. Anything after this escape on the - same line is ignored, except `\R' which works as usual. Anything - before `\c' on the same line will be appended to the current - partial output line. The next non-command line after an - interrupted line counts as a new input line. - - The visual results depend on whether no-fill mode is active. - - * If no-fill mode is active (using the `nf' request), the next - input text line after `\c' will be handled as a continuation - of the same input text line. - - - .nf - This is a \c - test. - => This is a test. - - * If fill mode is active (using the `fi' request), a word - interrupted with `\c' will be continued with the text on the - next input text line, without an intervening space. - - - This is a te\c - st. - => This is a test. - - - Note that an intervening control line which causes a break is - stronger than `\c', flushing out the current partial line in the - usual way. - - The `.int' register contains a positive value if the last output - line was interrupted with `\c'; this is associated with the - current environment (*note Environments::). - - -File: groff, Node: Page Layout, Next: Page Control, Prev: Line Control, Up: gtroff Reference - -5.15 Page Layout -================ - -`gtroff' provides some very primitive operations for controlling page -layout. - - -- Request: .pl [length] - -- Request: .pl +length - -- Request: .pl -length - -- Register: \n[.p] - Set the "page length" to LENGTH (or increment or decrement the - current value by LENGTH). This is the length of the physical - output page. The default scaling indicator is `v'. - - The current setting can be found in the read-only number register - `.p'. - - Note that this only specifies the size of the page, not the top and - bottom margins. Those are not set by `gtroff' directly. *Note - Traps::, for further information on how to do this. - - Negative `pl' values are possible also, but not very useful: No - trap is sprung, and each line is output on a single page (thus - suppressing all vertical spacing). - - If no argument or an invalid argument is given, `pl' sets the page - length to 11i. - - `gtroff' provides several operations which help in setting up top -and bottom titles (or headers and footers). - - -- Request: .tl 'left'center'right' - Print a "title line". It consists of three parts: a left - justified portion, a centered portion, and a right justified - portion. The argument separator `'' can be replaced with any - character not occurring in the title line. The `%' character is - replaced with the current page number. This character can be - changed with the `pc' request (see below). - - Without argument, `tl' is ignored. - - Some notes: - - * A title line is not restricted to the top or bottom of a page. - - * `tl' prints the title line immediately, ignoring a partially - filled line (which stays untouched). - - * It is not an error to omit closing delimiters. For example, - `.tl /foo' is equivalent to `.tl /foo///': It prints a title - line with the left justified word `foo'; the centered and - right justfied parts are empty. - - * `tl' accepts the same parameter delimiting characters as the - `\A' escape; see *Note Escapes::. - - -- Request: .lt [length] - -- Request: .lt +length - -- Request: .lt -length - -- Register: \n[.lt] - The title line is printed using its own line length, which is - specified (or incremented or decremented) with the `lt' request. - Initially, the title line length is set to 6.5i. If a negative - line length is specified (which is not allowed), `gtroff' emits a - warning of type `range' and sets the title line length to zero. - The default scaling indicator is `m'. If `lt' is called without - an argument, the title length is reset to the previous value - before the last call to `lt'. - - The current setting of this is available in the `.lt' read-only - number register; it is associated with the current environment - (*note Environments::). - - -- Request: .pn page - -- Request: .pn +page - -- Request: .pn -page - -- Register: \n[.pn] - Change (increase or decrease) the page number of the _next_ page. - The only argument is the page number; the request is ignored - without a parameter. - - The read-only number register `.pn' contains the number of the next - page: either the value set by a `pn' request, or the number of the - current page plus 1. - - -- Request: .pc [char] - Change the page number character (used by the `tl' request) to a - different character. With no argument, this mechanism is disabled. - Note that this doesn't affect the number register `%'. - - *Note Traps::. - - -File: groff, Node: Page Control, Next: Fonts and Symbols, Prev: Page Layout, Up: gtroff Reference - -5.16 Page Control -================= - - -- Request: .bp [page] - -- Request: .bp +page - -- Request: .bp -page - -- Register: \n[%] - Stop processing the current page and move to the next page. This - request causes a break. It can also take an argument to set - (increase, decrease) the page number of the next page (which - actually becomes the current page after `bp' has finished). The - difference between `bp' and `pn' is that `pn' does not cause a - break or actually eject a page. *Note Page Layout::. - - - .de newpage \" define macro - 'bp \" begin page - 'sp .5i \" vertical space - .tl 'left top'center top'right top' \" title - 'sp .3i \" vertical space - .. \" end macro - - `bp' has no effect if not called within the top-level diversion - (*note Diversions::). - - The read-write register `%' holds the current page number. - - The number register `.pe' is set to 1 while `bp' is active. *Note - Page Location Traps::. - - -- Request: .ne [space] - It is often necessary to force a certain amount of space before a - new page occurs. This is most useful to make sure that there is - not a single "orphan" line left at the bottom of a page. The `ne' - request ensures that there is a certain distance, specified by the - first argument, before the next page is triggered (see *Note - Traps::, for further information). The default scaling indicator - for `ne' is `v'; the default value of SPACE is 1v if no argument - is given. - - For example, to make sure that no fewer than 2 lines get orphaned, - do the following before each paragraph: - - - .ne 2 - text text text - - `ne' will then automatically cause a page break if there is space - for one line only. - - -- Request: .sv [space] - -- Request: .os - `sv' is similar to the `ne' request; it reserves the specified - amount of vertical space. If the desired amount of space exists - before the next trap (or the bottom page boundary if no trap is - set), the space is output immediately (ignoring a partially filled - line which stays untouched). If there is not enough space, it is - stored for later output via the `os' request. The default value - is 1v if no argument is given; the default scaling indicator is - `v'. - - Both `sv' and `os' ignore no-space mode. While the `sv' request - allows negative values for SPACE, `os' will ignore them. - - -- Register: \n[nl] - This register contains the current vertical position. If the - vertical position is zero and the top of page transition hasn't - happened yet, `nl' is set to negative value. `gtroff' itself does - this at the very beginning of a document before anything has been - printed, but the main usage is to plant a header trap on a page if - this page has already started. - - Consider the following: - - - .de xxx - . sp - . tl ''Header'' - . sp - .. - . - First page. - .bp - .wh 0 xxx - .nr nl (-1) - Second page. - - Result: - - - First page. - - ... - - Header - - Second page. - - ... - - Without resetting `nl' to a negative value, the just planted trap - would be active beginning with the _next_ page, not the current - one. - - *Note Diversions::, for a comparison with the `.h' and `.d' - registers. - - -File: groff, Node: Fonts and Symbols, Next: Sizes, Prev: Page Control, Up: gtroff Reference - -5.17 Fonts and Symbols -====================== - -`gtroff' can switch fonts at any point in the text. - - The basic set of fonts is `R', `I', `B', and `BI'. These are Times -Roman, Italic, Bold, and Bold Italic. For non-TTY devices, there is -also at least one symbol font which contains various special symbols -(Greek, mathematics). - -* Menu: - -* Changing Fonts:: -* Font Families:: -* Font Positions:: -* Using Symbols:: -* Special Fonts:: -* Artificial Fonts:: -* Ligatures and Kerning:: - - -File: groff, Node: Changing Fonts, Next: Font Families, Prev: Fonts and Symbols, Up: Fonts and Symbols - -5.17.1 Changing Fonts ---------------------- - - -- Request: .ft [font] - -- Escape: \ff - -- Escape: \f(fn - -- Escape: \f[font] - -- Register: \n[.sty] - The `ft' request and the `\f' escape change the current font to - FONT (one-character name F, two-character name FN). - - If FONT is a style name (as set with the `sty' request or with the - `styles' command in the `DESC' file), use it within the current - font family (as set with the `fam' request, `\F' escape, or with - the `family' command in the `DESC' file). - - With no argument or using `P' as an argument, `.ft' switches to - the previous font. Use `\f[]' to do this with the escape. The - old syntax forms `\fP' or `\f[P]' are also supported. - - Fonts are generally specified as upper-case strings, which are - usually 1 to 4 characters representing an abbreviation or acronym - of the font name. This is no limitation, just a convention. - - The example below produces two identical lines. - - - eggs, bacon, - .ft B - spam - .ft - and sausage. - - eggs, bacon, \fBspam\fP and sausage. - - Note that `\f' doesn't produce an input token in `gtroff'. As a - consequence, it can be used in requests like `mc' (which expects a - single character as an argument) to change the font on the fly: - - - .mc \f[I]x\f[] - - The current style name is available in the read-only number - register `.sty' (this is a string-valued register); if the current - font isn't a style, the empty string is returned. It is - associated with the current environment. - - *Note Font Positions::, for an alternative syntax. - - -- Request: .ftr f [g] - Translate font F to font G. Whenever a font named F is referred - to in a `\f' escape sequence, in the `F' and `S' conditional - operators, or in the `ft', `ul', `bd', `cs', `tkf', `special', - `fspecial', `fp', or `sty' requests, font G is used. If G is - missing or equal to F the translation is undone. - - -File: groff, Node: Font Families, Next: Font Positions, Prev: Changing Fonts, Up: Fonts and Symbols - -5.17.2 Font Families --------------------- - -Due to the variety of fonts available, `gtroff' has added the concept -of "font families" and "font styles". The fonts are specified as the -concatenation of the font family and style. Specifying a font without -the family part causes `gtroff' to use that style of the current family. - - Currently, fonts for the devices `-Tps', `-Tdvi', `-Tlj4', `-Tlbp', -and the X11 fonts are set up to this mechanism. By default, `gtroff' -uses the Times family with the four styles `R', `I', `B', and `BI'. - - This way, it is possible to use the basic four fonts and to select a -different font family on the command line (*note Groff Options::). - - -- Request: .fam [family] - -- Register: \n[.fam] - -- Escape: \Ff - -- Escape: \F(fm - -- Escape: \F[family] - -- Register: \n[.fn] - Switch font family to FAMILY (one-character name F, two-character - name FM). If no argument is given, switch back to the previous - font family. Use `\F[]' to do this with the escape. Note that - `\FP' doesn't work; it selects font family `P' instead. - - The value at start-up is `T'. The current font family is - available in the read-only number register `.fam' (this is a - string-valued register); it is associated with the current - environment. - - - spam, - .fam H \" helvetica family - spam, \" used font is family H + style R = HR - .ft B \" family H + style B = font HB - spam, - .fam T \" times family - spam, \" used font is family T + style B = TB - .ft AR \" font AR (not a style) - baked beans, - .ft R \" family T + style R = font TR - and spam. - - Note that `\F' doesn't produce an input token in `gtroff'. As a - consequence, it can be used in requests like `mc' (which expects a - single character as an argument) to change the font family on the - fly: - - - .mc \F[P]x\F[] - - The `.fn' register contains the current "real font name" of the - current font. This is a string-valued register. If the current - font is a style, the value of `\n[.fn]' is the proper - concatenation of family and style name. - - -- Request: .sty n style - Associate STYLE with font position N. A font position can be - associated either with a font or with a style. The current font - is the index of a font position and so is also either a font or a - style. If it is a style, the font that is actually used is the - font which name is the concatenation of the name of the current - family and the name of the current style. For example, if the - current font is 1 and font position 1 is associated with style `R' - and the current font family is `T', then font `TR' will be used. - If the current font is not a style, then the current family is - ignored. If the requests `cs', `bd', `tkf', `uf', or `fspecial' - are applied to a style, they will instead be applied to the member - of the current family corresponding to that style. - - N must be a non-negative integer value. - - The default family can be set with the `-f' option (*note Groff - Options::). The `styles' command in the `DESC' file controls - which font positions (if any) are initially associated with styles - rather than fonts. For example, the default setting for - POSTSCRIPT fonts - - - styles R I B BI - - is equivalent to - - - .sty 1 R - .sty 2 I - .sty 3 B - .sty 4 BI - - `fam' and `\F' always check whether the current font position is - valid; this can give surprising results if the current font - position is associated with a style. - - In the following example, we want to access the POSTSCRIPT font - `FooBar' from the font family `Foo': - - - .sty \n[.fp] Bar - .fam Foo - => warning: can't find font `FooR' - - The default font position at start-up is 1; for the POSTSCRIPT - device, this is associated with style `R', so `gtroff' tries to - open `FooR'. - - A solution to this problem is to use a dummy font like the - following: - - - .fp 0 dummy TR \" set up dummy font at position 0 - .sty \n[.fp] Bar \" register style `Bar' - .ft 0 \" switch to font at position 0 - .fam Foo \" activate family `Foo' - .ft Bar \" switch to font `FooBar' - - *Note Font Positions::. - - -File: groff, Node: Font Positions, Next: Using Symbols, Prev: Font Families, Up: Fonts and Symbols - -5.17.3 Font Positions ---------------------- - -For the sake of old phototypesetters and compatibility with old versions -of `troff', `gtroff' has the concept of font "positions", on which -various fonts are mounted. - - -- Request: .fp pos font [external-name] - -- Register: \n[.f] - -- Register: \n[.fp] - Mount font FONT at position POS (which must be a non-negative - integer). This numeric position can then be referred to with font - changing commands. When `gtroff' starts it is using font - position 1 (which must exist; position 0 is unused usually at - start-up). - - The current font in use, as a font position, is available in the - read-only number register `.f'. This can be useful to remember the - current font for later recall. It is associated with the current - environment (*note Environments::). - - - .nr save-font \n[.f] - .ft B - ... text text text ... - .ft \n[save-font] - - The number of the next free font position is available in the - read-only number register `.fp'. This is useful when mounting a - new font, like so: - - - .fp \n[.fp] NEATOFONT - - Fonts not listed in the `DESC' file are automatically mounted on - the next available font position when they are referenced. If a - font is to be mounted explicitly with the `fp' request on an unused - font position, it should be mounted on the first unused font - position, which can be found in the `.fp' register. Although - `gtroff' does not enforce this strictly, it is not allowed to - mount a font at a position whose number is much greater (approx. - 1000 positions) than that of any currently used position. - - The `fp' request has an optional third argument. This argument - gives the external name of the font, which is used for finding the - font description file. The second argument gives the internal - name of the font which is used to refer to the font in `gtroff' - after it has been mounted. If there is no third argument then the - internal name is used as the external name. This feature makes it - possible to use fonts with long names in compatibility mode. - - Both the `ft' request and the `\f' escape have alternative syntax -forms to access font positions. - - -- Request: .ft nnn - -- Escape: \fn - -- Escape: \f(nn - -- Escape: \f[nnn] - Change the current font position to NNN (one-digit position N, - two-digit position NN), which must be a non-negative integer. - - If NNN is associated with a style (as set with the `sty' request - or with the `styles' command in the `DESC' file), use it within - the current font family (as set with the `fam' request, the `\F' - escape, or with the `family' command in the `DESC' file). - - - this is font 1 - .ft 2 - this is font 2 - .ft \" switch back to font 1 - .ft 3 - this is font 3 - .ft - this is font 1 again - - *Note Changing Fonts::, for the standard syntax form. - - -File: groff, Node: Using Symbols, Next: Special Fonts, Prev: Font Positions, Up: Fonts and Symbols - -5.17.4 Using Symbols --------------------- - -A "glyph" is a graphical representation of a "character". While a -character is an abstract entity containing semantic information, a -glyph is something which can be actually seen on screen or paper. It -is possible that a character has multiple glyph representation forms -(for example, the character `A' can be either written in a roman or an -italic font, yielding two different glyphs); sometimes more than one -character maps to a single glyph (this is a "ligature" - the most -common is `fi'). - - A "symbol" is simply a named glyph. Within `gtroff', all glyph -names of a particular font are defined in its font file. If the user -requests a glyph not available in this font, `gtroff' looks up an -ordered list of "special fonts". By default, the POSTSCRIPT output -device supports the two special fonts `SS' (slanted symbols) and `S' -(symbols) (the former is looked up before the latter). Other output -devices use different names for special fonts. Fonts mounted with the -`fonts' keyword in the `DESC' file are globally available. To install -additional special fonts locally (i.e. for a particular font), use the -`fspecial' request. - - Here the exact rules how `gtroff' searches a given symbol: - - * If the symbol has been defined with the `char' request, use it. - This hides a symbol with the same name in the current font. - - * Check the current font. - - * If the symbol has been defined with the `fchar' request, use it. - - * Check whether the current font has a font-specific list of special - fonts; test all fonts in the order of appearance in the last - `fspecial' call if appropriate. - - * If the symbol has been defined with the `fschar' request for the - current font, use it. - - * Check all fonts in the order of appearance in the last `special' - call. - - * If the symbol has been defined with the `schar' request, use it. - - * As a last resort, consult all fonts loaded up to now for special - fonts and check them, starting with the lowest font number. Note - that this can sometimes lead to surprising results since the - `fonts' line in the `DESC' file often contains empty positions - which are filled later on. For example, consider the following: - - - fonts 3 0 0 FOO - - This mounts font `foo' at font position 3. We assume that `FOO' - is a special font, containing glyph `foo', and that no font has - been loaded yet. The line - - - .fspecial BAR BAZ - - makes font `BAZ' special only if font `BAR' is active. We further - assume that `BAZ' is really a special font, i.e., the font - description file contains the `special' keyword, and that it also - contains glyph `foo' with a special shape fitting to font `BAR'. - After executing `fspecial', font `BAR' is loaded at font - position 1, and `BAZ' at position 2. - - We now switch to a new font `XXX', trying to access glyph `foo' - which is assumed to be missing. There are neither font-specific - special fonts for `XXX' nor any other fonts made special with the - `special' request, so `gtroff' starts the search for special fonts - in the list of already mounted fonts, with increasing font - positions. Consequently, it finds `BAZ' before `FOO' even for - `XXX' which is not the intended behaviour. - - *Note Font Files::, and *Note Special Fonts::, for more details. - - The list of available symbols is device dependent; see the -`groff_char(7)' man page for a complete list of all glyphs. For -example, say - - - man -Tdvi groff_char > groff_char.dvi - -for a list using the default DVI fonts (not all versions of the `man' -program support the `-T' option). If you want to use an additional -macro package to change the used fonts, `groff' must be called directly: - - - groff -Tdvi -mec -man groff_char.7 > groff_char.dvi - - Glyph names not listed in groff_char(7) are derived algorithmically, -using a simplified version of the Adobe Glyph List (AGL) algorithm -which is described in -`http://partners.adobe.com/asn/tech/type/unicodegn.jsp'. The (frozen) -set of glyph names which can't be derived algorithmically is called -"groff glyph list (GGL)". - - * A glyph for Unicode character U+XXXX[X[X]] which is not a - composite character will be named `uXXXX[X[X]]'. X must be an - uppercase hexadecimal digit. Examples: `u1234', `u008E', - `u12DB8'. The largest Unicode value is 0x10FFFF. There must be at - least four `X' digits; if necessary, add leading zeroes (after the - `u'). No zero padding is allowed for character codes greater than - 0xFFFF. Surrogates (i.e., Unicode values greater than 0xFFFF - represented with character codes from the surrogate area - U+D800-U+DFFF) are not allowed too. - - * A glyph representing more than a single input character will be - named - - `u' COMPONENT1 `_' COMPONENT2 `_' COMPONENT3 ... - - Example: `u0045_0302_0301'. - - For simplicity, all Unicode characters which are composites must be - decomposed maximally (this is normalization form D in the Unicode - standard); for example, `u00CA_0301' is not a valid glyph name - since U+00CA (LATIN CAPITAL LETTER E WITH CIRCUMFLEX) can be - further decomposed into U+0045 (LATIN CAPITAL LETTER E) and U+0302 - (COMBINING CIRCUMFLEX ACCENT). `u0045_0302_0301' is thus the - glyph name for U+1EBE, LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND - ACUTE. - - * groff maintains a table to decompose all algorithmically derived - glyph names which are composites itself. For example, `u0100' - (LATIN LETTER A WITH MACRON) will be automatically decomposed into - `u0041_0304'. Additionally, a glyph name of the GGL is preferred - to an algorithmically derived glyph name; groff also automatically - does the mapping. Example: The glyph `u0045_0302' will be mapped - to `^E'. - - * glyph names of the GGL can't be used in composite glyph names; for - example, `^E_u0301' is invalid. - - -- Escape: \(nm - -- Escape: \[name] - -- Escape: \[component1 component2 ...] - Insert a symbol NAME (two-character name NM) or a composite glyph - with component glyphs COMPONENT1, COMPONENT2, .... There is no - special syntax for one-character names - the natural form `\N' - would collide with escapes.(1) (*note Using Symbols-Footnote-1::) - - If NAME is undefined, a warning of type `char' is generated, and - the escape is ignored. *Note Debugging::, for information about - warnings. - - groff resolves `\[...]' with more than a single component as - follows: - - * Any component which is found in the GGL will be converted to - the `uXXXX' form. - - * Any component `uXXXX' which is found in the list of - decomposable glyphs will be decomposed. - - * The resulting elements are then concatenated with `_' - inbetween, dropping the leading `u' in all elements but the - first. - - No check for the existence of any component (similar to `tr' - request) will be done. - - Examples: - - `\[A ho]' - `A' maps to `u0041', `ho' maps to `u02DB', thus the final - glyph name would be `u0041_02DB'. Note this is not the - expected result: The ogonek glyph `ho' is a spacing ogonek, - but for a proper composite a non-spacing ogonek (U+0328) is - necessary. Looking into the file `composite.tmac' one can - find `.composite ho u0328' which changes the mapping of `ho' - while a composite glyph name is constructed, causing the - final glyph name to be `u0041_0328'. - - `\[^E u0301]' - `\[^E aa]' - `\[E a^ aa]' - `\[E ^ ']' - `^E' maps to `u0045_0302', thus the final glyph name is - `u0045_0302_0301' in all forms (assuming proper calls of the - `composite' request). - - It is not possible to define glyphs with names like `A ho' within - a groff font file. This is not really a limitation; instead, you - have to define `u0041_0328'. - - -- Escape: \C'xxx' - Typeset the glyph named XXX.(2) (*note Using Symbols-Footnote-2::) - Normally it is more convenient to use `\[XXX]', but `\C' has the - advantage that it is compatible with newer versions of AT&T - `troff' and is available in compatibility mode. - - -- Request: .composite from to - Map glyph name FROM to glyph name TO if it is used in `\[...]' - with more than one component. See above for examples. - - This mapping is based on glyph names only; no check for the - existence of either glyph is done. - - A set of default mappings for many accents can be found in the file - `composite.tmac' which is loaded at start-up. - - -- Escape: \N'n' - Typeset the glyph with code N in the current font (`n' is *not* - the input character code). The number N can be any non-negative - decimal integer. Most devices only have glyphs with codes between - 0 and 255; the Unicode output device uses codes in the range - 0-65535. If the current font does not contain a glyph with that - code, special fonts are _not_ searched. The `\N' escape sequence - can be conveniently used in conjunction with the `char' request: - - - .char \[phone] \f[ZD]\N'37' - - The code of each glyph is given in the fourth column in the font - description file after the `charset' command. It is possible to - include unnamed glyphs in the font description file by using a - name of `---'; the `\N' escape sequence is the only way to use - these. - - No kerning is applied to glyphs accessed with `\N'. - - Some escape sequences directly map onto special glyphs. - - -- Escape: \' - This is a backslash followed by the apostrophe character, ASCII - character `0x27' (EBCDIC character `0x7D'). The same as `\[aa]', - the acute accent. - - -- Escape: \` - This is a backslash followed by ASCII character `0x60' (EBCDIC - character `0x79' usually). The same as `\[ga]', the grave accent. - - -- Escape: \- - This is the same as `\[-]', the minus sign in the current font. - - -- Request: .cflags n c1 c2 ... - Input characters and symbols have certain properties associated - with it.(3) (*note Using Symbols-Footnote-3::) These properties - can be modified with the `cflags' request. The first argument is - the sum of the desired flags and the remaining arguments are the - characters or symbols to have those properties. It is possible to - omit the spaces between the characters or symbols. - - `1' - The character ends sentences (initially characters `.?!' have - this property). - - `2' - Lines can be broken before the character (initially no - characters have this property). - - `4' - Lines can be broken after the character (initially the - character `-' and the symbols `\[hy]' and `\[em]' have this - property). - - `8' - The character overlaps horizontally if used as a horizontal - line building element. Initially the symbols `\[ul]', - `\[rn]', `\[ru]', `\[radicalex]', and `\[sqrtex]' have this - property. - - `16' - The character overlaps vertically if used as vertical line - building element. Initially symbol `\[br]' has this property. - - `32' - An end-of-sentence character followed by any number of - characters with this property is treated as the end of a - sentence if followed by a newline or two spaces; in other - words the character is "transparent" for the purposes of - end-of-sentence recognition - this is the same as having a - zero space factor in TeX (initially characters `"')]*' and - the symbols `\[dg]' and `\[rq]' have this property). - - -- Request: .char g [string] - -- Request: .fchar g [string] - -- Request: .fschar f g [string] - -- Request: .schar g [string] - Define a new glyph G to be STRING (which can be empty).(4) (*note - Using Symbols-Footnote-4::) Every time glyph G needs to be - printed, STRING is processed in a temporary environment and the - result is wrapped up into a single object. Compatibility mode is - turned off and the escape character is set to `\' while STRING is - being processed. Any emboldening, constant spacing or track - kerning is applied to this object rather than to individual - characters in STRING. - - A glyph defined by these requests can be used just like a normal - glyph provided by the output device. In particular, other - characters can be translated to it with the `tr' or `trin' - requests; it can be made the leader character by the `lc' request; - repeated patterns can be drawn with the glyph using the `\l' and - `\L' escape sequences; words containing the glyph can be - hyphenated correctly if the `hcode' request is used to give the - glyph's symbol a hyphenation code. - - There is a special anti-recursion feature: Use of `g' within the - glyph's definition is handled like normal characters and symbols - not defined with `char'. - - Note that the `tr' and `trin' requests take precedence if `char' - accesses the same symbol. - - - .tr XY - X - => Y - .char X Z - X - => Y - .tr XX - X - => Z - - The `fchar' request defines a fallback glyph: `gtroff' only checks - for glyphs defined with `fchar' if it cannot find the glyph in the - current font. `gtroff' carries out this test before checking - special fonts. - - `fschar' defines a fallback glyph for font F: `gtroff' checks for - glyphs defined with `fschar' after the list of fonts declared as - font-specific special fonts with the `fspecial' request, but - before the list of fonts declared as global special fonts with the - `special' request. - - Finally, the `schar' request defines a global fallback glyph: - `gtroff' checks for glyphs defined with `schar' after the list of - fonts declared as global special fonts with the `special' request, - but before the already mounted special fonts. - - *Note Using Symbols::, for a detailed description of the glyph - searching mechanism in `gtroff'. - - -- Request: .rchar c1 c2 ... - -- Request: .rfschar f c1 c2 ... - Remove the definitions of glyphs C1, C2, .... This undoes the - effect of a `char', `fchar', or `schar' request. - - It is possible to omit the whitespace between arguments. - - The request `rfschar' removes glyph definitions defined with - `fschar' for glyph f. - - *Note Special Characters::. - - -File: groff, Node: Using Symbols-Footnotes, Up: Using Symbols - - (1) Note that a one-character symbol is not the same as an input -character, i.e., the character `a' is not the same as `\[a]'. By -default, `groff' defines only a single one-character symbol, `\[-]'; it -is usually accessed as `\-'. On the other hand, `gtroff' has the -special feature that `\[charXXX]' is the same as the input character -with character code XXX. For example, `\[char97]' is identical to the -letter `a' if ASCII encoding is active. - - (2) `\C' is actually a misnomer since it accesses an output glyph. - - (3) Note that the output glyphs themselves don't have such -properties. For `gtroff', a glyph is a numbered box with a given -width, depth, and height, nothing else. All manipulations with the -`cflags' request work on the input level. - - (4) `char' is a misnomer since an output glyph is defined. - - -File: groff, Node: Special Fonts, Next: Artificial Fonts, Prev: Using Symbols, Up: Fonts and Symbols - -5.17.5 Special Fonts --------------------- - -Special fonts are those that `gtroff' searches when it cannot find the -requested glyph in the current font. The Symbol font is usually a -special font. - - `gtroff' provides the following two requests to add more special -fonts. *Note Using Symbols::, for a detailed description of the glyph -searching mechanism in `gtroff'. - - Usually, only non-TTY devices have special fonts. - - -- Request: .special [s1 s2 ...] - -- Request: .fspecial f [s1 s2 ...] - Use the `special' request to define special fonts. Initially, this - list is empty. - - Use the `fspecial' request to designate special fonts only when - font F is active. Initially, this list is empty. - - Previous calls to `special' or `fspecial' are overwritten; without - arguments, the particular list of special fonts is set to empty. - Special fonts are searched in the order they appear as arguments. - - All fonts which appear in a call to `special' or `fspecial' are - loaded. - - *Note Using Symbols::, for the exact search order of glyphs. - - -File: groff, Node: Artificial Fonts, Next: Ligatures and Kerning, Prev: Special Fonts, Up: Fonts and Symbols - -5.17.6 Artificial Fonts ------------------------ - -There are a number of requests and escapes for artificially creating -fonts. These are largely vestiges of the days when output devices did -not have a wide variety of fonts, and when `nroff' and `troff' were -separate programs. Most of them are no longer necessary in GNU -`troff'. Nevertheless, they are supported. - - -- Escape: \H'height' - -- Escape: \H'+height' - -- Escape: \H'-height' - -- Register: \n[.height] - Change (increment, decrement) the height of the current font, but - not the width. If HEIGHT is zero, restore the original height. - Default scaling indicator is `z'. - - The read-only number register `.height' contains the font height as - set by `\H'. - - Currently, only the `-Tps' device supports this feature. - - Note that `\H' doesn't produce an input token in `gtroff'. As a - consequence, it can be used in requests like `mc' (which expects a - single character as an argument) to change the font on the fly: - - - .mc \H'+5z'x\H'0' - - In compatibility mode, `gtroff' behaves differently: If an - increment or decrement is used, it is always taken relative to the - current point size and not relative to the previously selected font - height. Thus, - - - .cp 1 - \H'+5'test \H'+5'test - - prints the word `test' twice with the same font height (five - points larger than the current font size). - - -- Escape: \S'slant' - -- Register: \n[.slant] - Slant the current font by SLANT degrees. Positive values slant to - the right. Only integer values are possible. - - The read-only number register `.slant' contains the font slant as - set by `\S'. - - Currently, only the `-Tps' device supports this feature. - - Note that `\S' doesn't produce an input token in `gtroff'. As a - consequence, it can be used in requests like `mc' (which expects a - single character as an argument) to change the font on the fly: - - - .mc \S'20'x\S'0' - - This request is incorrectly documented in the original UNIX troff - manual; the slant is always set to an absolute value. - - -- Request: .ul [lines] - The `ul' request normally underlines subsequent lines if a TTY - output device is used. Otherwise, the lines are printed in italics - (only the term `underlined' is used in the following). The single - argument is the number of input lines to be underlined; with no - argument, the next line is underlined. If LINES is zero or - negative, stop the effects of `ul' (if it was active). Requests - and empty lines do not count for computing the number of underlined - input lines, even if they produce some output like `tl'. Lines - inserted by macros (e.g. invoked by a trap) do count. - - At the beginning of `ul', the current font is stored and the - underline font is activated. Within the span of a `ul' request, - it is possible to change fonts, but after the last line affected by - `ul' the saved font is restored. - - This number of lines still to be underlined is associated with the - current environment (*note Environments::). The underline font - can be changed with the `uf' request. - - The `ul' request does not underline spaces. - - -- Request: .cu [lines] - The `cu' request is similar to `ul' but underlines spaces as well - (if a TTY output device is used). - - -- Request: .uf font - Set the underline font (globally) used by `ul' and `cu'. By - default, this is the font at position 2. FONT can be either a - non-negative font position or the name of a font. - - -- Request: .bd font [offset] - -- Request: .bd font1 font2 [offset] - -- Register: \n[.b] - Artificially create a bold font by printing each glyph twice, - slightly offset. - - Two syntax forms are available. - - * Imitate a bold font unconditionally. The first argument - specifies the font to embolden, and the second is the number - of basic units, minus one, by which the two glyphs are - offset. If the second argument is missing, emboldening is - turned off. - - FONT can be either a non-negative font position or the name - of a font. - - OFFSET is available in the `.b' read-only register if a - special font is active; in the `bd' request, its default unit - is `u'. - - * Imitate a bold form conditionally. Embolden FONT1 by OFFSET - only if font FONT2 is the current font. This command can be - issued repeatedly to set up different emboldening values for - different current fonts. If the second argument is missing, - emboldening is turned off for this particular current font. - - This affects special fonts only (either set up with the - `special' command in font files or with the `fspecial' - request). - - -- Request: .cs font [width [em-size]] - Switch to and from "constant glyph space mode". If activated, the - width of every glyph is WIDTH/36 ems. The em size is given - absolutely by EM-SIZE; if this argument is missing, the em value - is taken from the current font size (as set with the `ps' request) - when the font is effectively in use. Without second and third - argument, constant glyph space mode is deactivated. - - Default scaling indicator for EM-SIZE is `z'; WIDTH is an integer. - - -File: groff, Node: Ligatures and Kerning, Prev: Artificial Fonts, Up: Fonts and Symbols - -5.17.7 Ligatures and Kerning ----------------------------- - -Ligatures are groups of characters that are run together, i.e, producing -a single glyph. For example, the letters `f' and `i' can form a -ligature `fi' as in the word `file'. This produces a cleaner look -(albeit subtle) to the printed output. Usually, ligatures are not -available in fonts for TTY output devices. - - Most POSTSCRIPT fonts support the fi and fl ligatures. The C/A/T -typesetter that was the target of AT&T `troff' also supported `ff', -`ffi', and `ffl' ligatures. Advanced typesetters or `expert' fonts may -include ligatures for `ft' and `ct', although GNU `troff' does not -support these (yet). - - Only the current font is checked for ligatures and kerns; neither -special fonts nor entities defined with the `char' request (and its -siblings) are taken into account. - - -- Request: .lg [flag] - -- Register: \n[.lg] - Switch the ligature mechanism on or off; if the parameter is - non-zero or missing, ligatures are enabled, otherwise disabled. - Default is on. The current ligature mode can be found in the - read-only number register `.lg' (set to 1 or 2 if ligatures are - enabled, 0 otherwise). - - Setting the ligature mode to 2 enables the two-character ligatures - (fi, fl, and ff) and disables the three-character ligatures (ffi - and ffl). - - "Pairwise kerning" is another subtle typesetting mechanism that -modifies the distance between a glyph pair to improve readability. In -most cases (but not always) the distance is decreased. Typewriter-like -fonts and fonts for terminals where all glyphs have the same width -don't use kerning. - - -- Request: .kern [flag] - -- Register: \n[.kern] - Switch kerning on or off. If the parameter is non-zero or missing, - enable pairwise kerning, otherwise disable it. The read-only - number register `.kern' is set to 1 if pairwise kerning is enabled, - 0 otherwise. - - If the font description file contains pairwise kerning information, - glyphs from that font are kerned. Kerning between two glyphs can - be inhibited by placing `\&' between them: `V\&A'. - - *Note Font File Format::. - - "Track kerning" expands or reduces the space between glyphs. This -can be handy, for example, if you need to squeeze a long word onto a -single line or spread some text to fill a narrow column. It must be -used with great care since it is usually considered bad typography if -the reader notices the effect. - - -- Request: .tkf f s1 n1 s2 n2 - Enable track kerning for font F. If the current font is F the - width of every glyph is increased by an amount between N1 and N2 - (N1, N2 can be negative); if the current point size is less than - or equal to S1 the width is increased by N1; if it is greater than - or equal to S2 the width is increased by N2; if the point size is - greater than or equal to S1 and less than or equal to S2 the - increase in width is a linear function of the point size. - - The default scaling indicator is `z' for S1 and S2, `p' for N1 and - N2. - - Note that the track kerning amount is added even to the rightmost - glyph in a line; for large values it is thus recommended to - increase the line length by the same amount to compensate it. - - Sometimes, when typesetting letters of different fonts, more or less -space at such boundaries are needed. There are two escapes to help -with this. - - -- Escape: \/ - Increase the width of the preceding glyph so that the spacing - between that glyph and the following glyph is correct if the - following glyph is a roman glyph. For example, if an italic `f' - is immediately followed by a roman right parenthesis, then in many - fonts the top right portion of the `f' overlaps the top left of - the right parenthesis. Use this escape sequence whenever an - italic glyph is immediately followed by a roman glyph without any - intervening space. This small amount of space is also called - "italic correction". - - - -- Escape: \, - Modify the spacing of the following glyph so that the spacing - between that glyph and the preceding glyph is correct if the - preceding glyph is a roman glyph. Use this escape sequence - whenever a roman glyph is immediately followed by an italic glyph - without any intervening space. In analogy to above, this space - could be called "left italic correction", but this term isn't used - widely. - - - -- Escape: \& - Insert a zero-width character, which is invisible. Its intended - use is to stop interaction of a character with its surrounding. - - * It prevents the insertion of extra space after an - end-of-sentence character. - - - Test. - Test. - => Test. Test. - Test.\& - Test. - => Test. Test. - - * It prevents interpretation of a control character at the - beginning of an input line. - - - .Test - => warning: `Test' not defined - \&.Test - => .Test - - * It prevents kerning between two glyphs. - - * It is needed to map an arbitrary character to nothing in the - `tr' request (*note Character Translations::). - - -- Escape: \) - This escape is similar to `\&' except that it behaves like a - character declared with the `cflags' request to be transparent for - the purposes of an end-of-sentence character. - - Its main usage is in macro definitions to protect against arguments - starting with a control character. - - - .de xxx - \)\\$1 - .. - .de yyy - \&\\$1 - .. - This is a test.\c - .xxx ' - This is a test. - =>This is a test.' This is a test. - This is a test.\c - .yyy ' - This is a test. - =>This is a test.' This is a test. - - - -File: groff, Node: Sizes, Next: Strings, Prev: Fonts and Symbols, Up: gtroff Reference - -5.18 Sizes -========== - -`gtroff' uses two dimensions with each line of text, type size and -vertical spacing. The "type size" is approximately the height of the -tallest glyph.(1) (*note Sizes-Footnote-1::) "Vertical spacing" is the -amount of space `gtroff' allows for a line of text; normally, this is -about 20% larger than the current type size. Ratios smaller than this -can result in hard-to-read text; larger than this, it spreads the text -out more vertically (useful for term papers). By default, `gtroff' -uses 10 point type on 12 point spacing. - - The difference between type size and vertical spacing is known, by -typesetters, as "leading" (this is pronounced `ledding'). - -* Menu: - -* Changing Type Sizes:: -* Fractional Type Sizes:: - - -File: groff, Node: Sizes-Footnotes, Up: Sizes - - (1) This is usually the parenthesis. Note that in most cases the -real dimensions of the glyphs in a font are _not_ related to its type -size! For example, the standard POSTSCRIPT font families `Times -Roman', `Helvetica', and `Courier' can't be used together at 10pt; to -get acceptable output, the size of `Helvetica' has to be reduced by one -point, and the size of `Courier' must be increased by one point. - - -File: groff, Node: Changing Type Sizes, Next: Fractional Type Sizes, Prev: Sizes, Up: Sizes - -5.18.1 Changing Type Sizes --------------------------- - - -- Request: .ps [size] - -- Request: .ps +size - -- Request: .ps -size - -- Escape: \ssize - -- Register: \n[.s] - Use the `ps' request or the `\s' escape to change (increase, - decrease) the type size (in points). Specify SIZE as either an - absolute point size, or as a relative change from the current size. - The size 0, or no argument, goes back to the previous size. - - Default scaling indicator of `size' is `z'. If `size' is zero or - negative, it is set to 1u. - - The read-only number register `.s' returns the point size in - points as a decimal fraction. This is a string. To get the point - size in scaled points, use the `.ps' register instead. - - `.s' is associated with the current environment (*note - Environments::). - - - snap, snap, - .ps +2 - grin, grin, - .ps +2 - wink, wink, \s+2nudge, nudge,\s+8 say no more! - .ps 10 - - The `\s' escape may be called in a variety of ways. Much like - other escapes there must be a way to determine where the argument - ends and the text begins. Any of the following forms are valid: - - `\sN' - Set the point size to N points. N must be either 0 or in the - range 4 to 39. - - `\s+N' - `\s-N' - Increase or decrease the point size by N points. N must be - exactly one digit. - - `\s(NN' - Set the point size to NN points. NN must be exactly two - digits. - - `\s+(NN' - `\s-(NN' - `\s(+NN' - `\s(-NN' - Increase or decrease the point size by NN points. NN must be - exactly two digits. - - Note that `\s' doesn't produce an input token in `gtroff'. As a - consequence, it can be used in requests like `mc' (which expects a - single character as an argument) to change the font on the fly: - - - .mc \s[20]x\s[0] - - *Note Fractional Type Sizes::, for yet another syntactical form of - using the `\s' escape. - - -- Request: .sizes s1 s2 ... sn [0] - Some devices may only have certain permissible sizes, in which case - `gtroff' rounds to the nearest permissible size. The `DESC' file - specifies which sizes are permissible for the device. - - Use the `sizes' request to change the permissible sizes for the - current output device. Arguments are in scaled points; the - `sizescale' line in the `DESC' file for the output device provides - the scaling factor. For example, if the scaling factor is 1000, - then the value 12000 is 12 points. - - Each argument can be a single point size (such as `12000'), or a - range of sizes (such as `4000-72000'). You can optionally end the - list with a zero. - - -- Request: .vs [space] - -- Request: .vs +space - -- Request: .vs -space - -- Register: \n[.v] - Change (increase, decrease) the vertical spacing by SPACE. The - default scaling indicator is `p'. - - If `vs' is called without an argument, the vertical spacing is - reset to the previous value before the last call to `vs'. - - `gtroff' creates a warning of type `range' if SPACE is negative; - the vertical spacing is then set to smallest positive value, the - vertical resolution (as given in the `.V' register). - - Note that `.vs 0' isn't saved in a diversion since it doesn't - result in a vertical motion. You explicitly have to repeat this - command before inserting the diversion. - - The read-only number register `.v' contains the current vertical - spacing; it is associated with the current environment (*note - Environments::). - - The effective vertical line spacing consists of four components. -Breaking a line causes the following actions (in the given order). - - * Move the current point vertically by the "extra pre-vertical line - space". This is the minimum value of all `\x' escapes with a - negative argument in the current output line. - - * Move the current point vertically by the vertical line spacing as - set with the `vs' request. - - * Output the current line. - - * Move the current point vertically by the "extra post-vertical line - space". This is the maximum value of all `\x' escapes with a - positive argument in the line which has just been output. - - * Move the current point vertically by the "post-vertical line - spacing" as set with the `pvs' request. - - It is usually better to use `vs' or `pvs' instead of `ls' to produce -double-spaced documents: `vs' and `pvs' have a finer granularity for -the inserted vertical space compared to `ls'; furthermore, certain -preprocessors assume single-spacing. - - *Note Manipulating Spacing::, for more details on the `\x' escape -and the `ls' request. - - -- Request: .pvs [space] - -- Request: .pvs +space - -- Request: .pvs -space - -- Register: \n[.pvs] - Change (increase, decrease) the post-vertical spacing by SPACE. - The default scaling indicator is `p'. - - If `pvs' is called without an argument, the post-vertical spacing - is reset to the previous value before the last call to `pvs'. - - `gtroff' creates a warning of type `range' if SPACE is zero or - negative; the vertical spacing is then set to zero. - - The read-only number register `.pvs' contains the current - post-vertical spacing; it is associated with the current - environment (*note Environments::). - - -File: groff, Node: Fractional Type Sizes, Prev: Changing Type Sizes, Up: Sizes - -5.18.2 Fractional Type Sizes ----------------------------- - -A "scaled point" is equal to 1/SIZESCALE points, where SIZESCALE is -specified in the `DESC' file (1 by default). There is a new scale -indicator `z' which has the effect of multiplying by SIZESCALE. -Requests and escape sequences in `gtroff' interpret arguments that -represent a point size as being in units of scaled points, but they -evaluate each such argument using a default scale indicator of `z'. -Arguments treated in this way are the argument to the `ps' request, the -third argument to the `cs' request, the second and fourth arguments to -the `tkf' request, the argument to the `\H' escape sequence, and those -variants of the `\s' escape sequence that take a numeric expression as -their argument (see below). - - For example, suppose SIZESCALE is 1000; then a scaled point is -equivalent to a millipoint; the request `.ps 10.25' is equivalent to -`.ps 10.25z' and thus sets the point size to 10250 scaled points, which -is equal to 10.25 points. - - `gtroff' disallows the use of the `z' scale indicator in instances -where it would make no sense, such as a numeric expression whose -default scale indicator was neither `u' nor `z'. Similarly it would -make no sense to use a scaling indicator other than `z' or `u' in a -numeric expression whose default scale indicator was `z', and so -`gtroff' disallows this as well. - - There is also new scale indicator `s' which multiplies by the number -of units in a scaled point. So, for example, `\n[.ps]s' is equal to -`1m'. Be sure not to confuse the `s' and `z' scale indicators. - - -- Register: \n[.ps] - A read-only number register returning the point size in scaled - points. - - `.ps' is associated with the current environment (*note - Environments::). - - -- Register: \n[.psr] - -- Register: \n[.sr] - The last-requested point size in scaled points is contained in the - `.psr' read-only number register. The last requested point size - in points as a decimal fraction can be found in `.sr'. This is a - string-valued read-only number register. - - Note that the requested point sizes are device-independent, whereas - the values returned by the `.ps' and `.s' registers are not. For - example, if a point size of 11pt is requested, and a `sizes' - request (or a `sizescale' line in a `DESC' file) specifies 10.95pt - instead, this value is actually used. - - Both registers are associated with the current environment (*note - Environments::). - - The `\s' escape has the following syntax for working with fractional -type sizes: - -`\s[N]' -`\s'N'' - Set the point size to N scaled points; N is a numeric expression - with a default scale indicator of `z'. - -`\s[+N]' -`\s[-N]' -`\s+[N]' -`\s-[N]' -`\s'+N'' -`\s'-N'' -`\s+'N'' -`\s-'N'' - Increase or or decrease the point size by N scaled points; N is a - numeric expression with a default scale indicator of `z'. - - *Note Font Files::. - - -File: groff, Node: Strings, Next: Conditionals and Loops, Prev: Sizes, Up: gtroff Reference - -5.19 Strings -============ - -`gtroff' has string variables, which are entirely for user convenience -(i.e. there are no built-in strings exept `.T', but even this is a -read-write string variable). - - -- Request: .ds name [string] - -- Request: .ds1 name [string] - -- Escape: \*n - -- Escape: \*(nm - -- Escape: \*[name arg1 arg2 ...] - Define and access a string variable NAME (one-character name N, - two-character name NM). If NAME already exists, `ds' overwrites - the previous definition. Only the syntax form using brackets can - take arguments which are handled identically to macro arguments; - the single exception is that a closing bracket as an argument must - be enclosed in double quotes. *Note Request and Macro - Arguments::, and *Note Parameters::. - - Example: - - - .ds foo a \\$1 test - . - This is \*[foo nice]. - => This is a nice test. - - The `\*' escape "interpolates" (expands in-place) a - previously-defined string variable. To be more precise, the stored - string is pushed onto the input stack which is then parsed by - `gtroff'. Similar to number registers, it is possible to nest - strings, i.e. string variables can be called within string - variables. - - If the string named by the `\*' escape does not exist, it is - defined as empty, and a warning of type `mac' is emitted (see - *Note Debugging::, for more details). - - *Caution:* Unlike other requests, the second argument to the `ds' - request takes up the entire line including trailing spaces. This - means that comments on a line with such a request can introduce - unwanted space into a string. - - - .ds UX \s-1UNIX\s0\u\s-3tm\s0\d \" UNIX trademark - - Instead the comment should be put on another line or have the - comment escape adjacent with the end of the string. - - - .ds UX \s-1UNIX\s0\u\s-3tm\s0\d\" UNIX trademark - - To produce leading space the string can be started with a double - quote. No trailing quote is needed; in fact, any trailing quote is - included in your string. - - - .ds sign " Yours in a white wine sauce, - - Strings are not limited to a single line of text. A string can - span several lines by escaping the newlines with a backslash. The - resulting string is stored _without_ the newlines. - - - .ds foo lots and lots \ - of text are on these \ - next several lines - - It is not possible to have real newlines in a string. To put a - single double quote character into a string, use two consecutive - double quote characters. - - The `ds1' request turns off compatibility mode while interpreting - a string. To be more precise, a "compatibility save" input token - is inserted at the beginning of the string, and a "compatibility - restore" input token at the end. - - - .nr xxx 12345 - .ds aa The value of xxx is \\n[xxx]. - .ds1 bb The value of xxx ix \\n[xxx]. - . - .cp 1 - . - \*(aa - => warning: number register `[' not defined - => The value of xxx is 0xxx]. - \*(bb - => The value of xxx ix 12345. - - Strings, macros, and diversions (and boxes) share the same name - space. Internally, even the same mechanism is used to store them. - This has some interesting consequences. For example, it is - possible to call a macro with string syntax and vice versa. - - - .de xxx - a funny test. - .. - This is \*[xxx] - => This is a funny test. - - .ds yyy a funny test - This is - .yyy - => This is a funny test. - - Diversions and boxes can be also called with string syntax. - - Another consequence is that you can copy one-line diversions or - boxes to a string. - - - .di xxx - a \fItest\fR - .br - .di - .ds yyy This is \*[xxx]\c - \*[yyy]. - => This is a test. - - As the previous example shows, it is possible to store formatted - output in strings. The `\c' escape prevents the insertion of an - additional blank line in the output. - - Copying diversions longer than a single output line produces - unexpected results. - - - .di xxx - a funny - .br - test - .br - .di - .ds yyy This is \*[xxx]\c - \*[yyy]. - => test This is a funny. - - Usually, it is not predictable whether a diversion contains one or - more output lines, so this mechanism should be avoided. With UNIX - `troff', this was the only solution to strip off a final newline - from a diversion. Another disadvantage is that the spaces in the - copied string are already formatted, making them unstretchable. - This can cause ugly results. - - A clean solution to this problem is available in GNU `troff', - using the requests `chop' to remove the final newline of a - diversion, and `unformat' to make the horizontal spaces - stretchable again. - - - .box xxx - a funny - .br - test - .br - .box - .chop xxx - .unformat xxx - This is \*[xxx]. - => This is a funny test. - - *Note Gtroff Internals::, for more information. - - -- Request: .as name [string] - -- Request: .as1 name [string] - The `as' request is similar to `ds' but appends STRING to the - string stored as NAME instead of redefining it. If NAME doesn't - exist yet, it is created. - - - .as sign " with shallots, onions and garlic, - - The `as1' request is similar to `as', but compatibility mode is - switched off while the appended string is interpreted. To be more - precise, a "compatibility save" input token is inserted at the - beginning of the appended string, and a "compatibility restore" - input token at the end. - - Rudimentary string manipulation routines are given with the next two -requests. - - -- Request: .substring str n1 [n2] - Replace the string named STR with the substring defined by the - indices N1 and N2. The first character in the string has index 0. - If N2 is omitted, it is taken to be equal to the string's length. - If the index value N1 or N2 is negative, it is counted from the - end of the string, going backwards: The last character has - index -1, the character before the last character has index -2, - etc. - - - .ds xxx abcdefgh - .substring xxx 1 -4 - \*[xxx] - => bcde - - - -- Request: .length reg str - Compute the number of characters of STR and return it in the - number register REG. If REG doesn't exist, it is created. `str' - is read in copy mode. - - - .ds xxx abcd\h'3i'efgh - .length yyy \*[xxx] - \n[yyy] - => 14 - - - -- Request: .rn xx yy - Rename the request, macro, diversion, or string XX to YY. - - -- Request: .rm xx - Remove the request, macro, diversion, or string XX. `gtroff' - treats subsequent invocations as if the object had never been - defined. - - -- Request: .als new old - Create an alias named NEW for the request, string, macro, or - diversion object named OLD. The new name and the old name are - exactly equivalent (it is similar to a hard rather than a soft - link). If OLD is undefined, `gtroff' generates a warning of type - `mac' and ignores the request. - - -- Request: .chop xx - Remove (chop) the last character from the macro, string, or - diversion named XX. This is useful for removing the newline from - the end of diversions that are to be interpolated as strings. - This command can be used repeatedly; see *Note Gtroff Internals::, - for details on nodes inserted additionally by `gtroff'. - - *Note Identifiers::, and *Note Comments::. - - -File: groff, Node: Conditionals and Loops, Next: Writing Macros, Prev: Strings, Up: gtroff Reference - -5.20 Conditionals and Loops -=========================== - -* Menu: - -* Operators in Conditionals:: -* if-else:: -* while:: - - -File: groff, Node: Operators in Conditionals, Next: if-else, Prev: Conditionals and Loops, Up: Conditionals and Loops - -5.20.1 Operators in Conditionals --------------------------------- - -In `if' and `while' requests, there are several more operators -available: - -`e' -`o' - True if the current page is even or odd numbered (respectively). - -`n' - True if the document is being processed in nroff mode (i.e., the - `.nroff' command has been issued). - -`t' - True if the document is being processed in troff mode (i.e., the - `.troff' command has been issued). - -`v' - Always false. This condition is for compatibility with other - `troff' versions only (identifying a `-Tversatec' device). - -`'XXX'YYY'' - True if the string XXX is equal to the string YYY. Other - characters can be used in place of the single quotes; the same set - of delimiters as for the `\D' escape is used (*note Escapes::). - `gtroff' formats the strings before being compared: - - - .ie "|"\fR|\fP" \ - true - .el \ - false - => true - - The resulting motions, glyph sizes, and fonts have to match,(1) - (*note Operators in Conditionals-Footnote-1::) and not the - individual motion, size, and font requests. In the previous - example, `|' and `\fR|\fP' both result in a roman `|' glyph with - the same point size and at the same location on the page, so the - strings are equal. If `.ft I' had been added before the `.ie', - the result would be "false" because (the first) `|' produces an - italic `|' rather than a roman one. - -`r XXX' - True if there is a number register named XXX. - -`d XXX' - True if there is a string, macro, diversion, or request named XXX. - -`m XXX' - True if there is a color named XXX. - -`c G' - True if there is a glyph G available(2) (*note Operators in - Conditionals-Footnote-2::); G is either an ASCII character or a - special character (`\(GG' or `\[GGG]'); the condition is also true - if G has been defined by the `char' request. - -`F FONT' - True if a font named FONT exists. FONT is handled as if it was - opened with the `ft' request (this is, font translation and styles - are applied), without actually mounting it. - - This test doesn't load the complete font but only its header to - verify its validity. - -`S STYLE' - True if style STYLE has been registered. Font translation is - applied. - - Note that these operators can't be combined with other operators like -`:' or `&'; only a leading `!' (without whitespace between the -exclamation mark and the operator) can be used to negate the result. - - - .nr xxx 1 - .ie !r xxx \ - true - .el \ - false - => false - - A whitespace after `!' always evaluates to zero (this bizarre -behaviour is due to compatibility with UNIX `troff'). - - - .nr xxx 1 - .ie ! r xxx \ - true - .el \ - false - => r xxx true - - It is possible to omit the whitespace before the argument to the -`r', `d', and `c' operators. - - *Note Expressions::. - - -File: groff, Node: Operators in Conditionals-Footnotes, Up: Operators in Conditionals - - (1) The created output nodes must be identical. *Note Gtroff -Internals::. - - (2) The name of this conditional operator is a misnomer since it -tests names of output glyphs. - - -File: groff, Node: if-else, Next: while, Prev: Operators in Conditionals, Up: Conditionals and Loops - -5.20.2 if-else --------------- - -`gtroff' has if-then-else constructs like other languages, although the -formatting can be painful. - - -- Request: .if expr anything - Evaluate the expression EXPR, and executes ANYTHING (the remainder - of the line) if EXPR evaluates to a value greater than zero - (true). ANYTHING is interpreted as though it was on a line by - itself (except that leading spaces are swallowed). *Note - Expressions::, for more info. - - - .nr xxx 1 - .nr yyy 2 - .if ((\n[xxx] == 1) & (\n[yyy] == 2)) true - => true - - - -- Request: .nop anything - Executes ANYTHING. This is similar to `.if 1'. - - -- Request: .ie expr anything - -- Request: .el anything - Use the `ie' and `el' requests to write an if-then-else. The - first request is the `if' part and the latter is the `else' part. - - - .ie n .ls 2 \" double-spacing in nroff - .el .ls 1 \" single-spacing in troff - - - -- Escape: \{ - -- Escape: \} - In many cases, an if (or if-else) construct needs to execute more - than one request. This can be done using the `\{' and `\}' - escapes. The following example shows the possible ways to use - these escapes (note the position of the opening and closing - braces). - - - .ie t \{\ - . ds lq `` - . ds rq '' - .\} - .el \ - .\{\ - . ds lq " - . ds rq "\} - - - *Note Expressions::. - - -File: groff, Node: while, Prev: if-else, Up: Conditionals and Loops - -5.20.3 while ------------- - -`gtroff' provides a looping construct using the `while' request, which -is used much like the `if' (and related) requests. - - -- Request: .while expr anything - Evaluate the expression EXPR, and repeatedly execute ANYTHING (the - remainder of the line) until EXPR evaluates to 0. - - - .nr a 0 1 - .while (\na < 9) \{\ - \n+a, - .\} - \n+a - => 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 - - Some remarks. - - * The body of a `while' request is treated like the body of a - `de' request: `gtroff' temporarily stores it in a macro which - is deleted after the loop has been exited. It can - considerably slow down a macro if the body of the `while' - request (within the macro) is large. Each time the macro is - executed, the `while' body is parsed and stored again as a - temporary macro. - - - .de xxx - . nr num 10 - . while (\\n[num] > 0) \{\ - . \" many lines of code - . nr num -1 - . \} - .. - - The traditional and ofter better solution (UNIX `troff' - doesn't have the `while' request) is to use a recursive macro - instead which is parsed only once during its definition. - - - .de yyy - . if (\\n[num] > 0) \{\ - . \" many lines of code - . nr num -1 - . yyy - . \} - .. - . - .de xxx - . nr num 10 - . yyy - .. - - Note that the number of available recursion levels is set - to 1000 (this is a compile-time constant value of `gtroff'). - - * The closing brace of a `while' body must end a line. - - - .if 1 \{\ - . nr a 0 1 - . while (\n[a] < 10) \{\ - . nop \n+[a] - .\}\} - => unbalanced \{ \} - - - -- Request: .break - Break out of a `while' loop. Be sure not to confuse this with the - `br' request (causing a line break). - - -- Request: .continue - Finish the current iteration of a `while' loop, immediately - restarting the next iteration. - - *Note Expressions::. - - -File: groff, Node: Writing Macros, Next: Page Motions, Prev: Conditionals and Loops, Up: gtroff Reference - -5.21 Writing Macros -=================== - -A "macro" is a collection of text and embedded commands which can be -invoked multiple times. Use macros to define common operations. - - -- Request: .de name [end] - -- Request: .de1 name [end] - -- Request: .dei name [end] - -- Request: .dei1 name [end] - Define a new macro named NAME. `gtroff' copies subsequent lines - (starting with the next one) into an internal buffer until it - encounters the line `..' (two dots). The optional second argument - to `de' changes this to a macro to `.END'. - - There can be whitespace after the first dot in the line containing - the ending token (either `.' or macro `END'). - - Here a small example macro called `P' which causes a break and - inserts some vertical space. It could be used to separate - paragraphs. - - - .de P - . br - . sp .8v - .. - - The following example defines a macro within another. Remember - that expansion must be protected twice; once for reading the macro - and once for executing. - - - \# a dummy macro to avoid a warning - .de end - .. - . - .de foo - . de bar end - . nop \f[B]Hallo \\\\$1!\f[] - . end - .. - . - .foo - .bar Joe - => Hallo Joe! - - Since `\f' has no expansion, it isn't necessary to protect its - backslash. Had we defined another macro within `bar' which takes - a parameter, eight backslashes would be necessary before `$1'. - - The `de1' request turns off compatibility mode while executing the - macro. On entry, the current compatibility mode is saved and - restored at exit. - - - .nr xxx 12345 - . - .de aa - The value of xxx is \\n[xxx]. - .. - .de1 bb - The value of xxx ix \\n[xxx]. - .. - . - .cp 1 - . - .aa - => warning: number register `[' not defined - => The value of xxx is 0xxx]. - .bb - => The value of xxx ix 12345. - - The `dei' request defines a macro indirectly. That is, it expands - strings whose names are NAME or END before performing the append. - - This: - - - .ds xx aa - .ds yy bb - .dei xx yy - - is equivalent to: - - - .de aa bb - - The `dei1' request is similar to `dei' but with compatibility mode - switched off during execution of the defined macro. - - If compatibility mode is on, `de' (and `dei') behave similar to - `de1' (and `dei1'): A `compatibility save' token is inserted at - the beginning, and a `compatibility restore' token at the end, with - compatibility mode switched on during execution. *Note Gtroff - Internals::, for more information on switching compatibility mode - on and off in a single document. - - Using `trace.tmac', you can trace calls to `de' and `de1'. - - Note that macro identifiers are shared with identifiers for - strings and diversions. - - -- Request: .am name [end] - -- Request: .am1 name [end] - -- Request: .ami name [end] - -- Request: .ami1 name [end] - Works similarly to `de' except it appends onto the macro named - NAME. So, to make the previously defined `P' macro actually do - indented instead of block paragraphs, add the necessary code to the - existing macro like this: - - - .am P - .ti +5n - .. - - The `am1' request turns off compatibility mode while executing the - appended macro piece. To be more precise, a "compatibility save" - input token is inserted at the beginning of the appended code, and - a "compatibility restore" input token at the end. - - The `ami' request appends indirectly, meaning that `gtroff' - expands strings whose names are NAME or END before performing the - append. - - The `ami1' request is similar to `ami' but compatibility mode is - switched off during execution of the defined macro. - - Using `trace.tmac', you can trace calls to `am' and `am1'. - - *Note Strings::, for the `als' request to rename a macro. - - The `de', `am', `di', `da', `ds', and `as' requests (together with -its variants) only create a new object if the name of the macro, -diversion or string diversion is currently undefined or if it is -defined to be a request; normally they modify the value of an existing -object. - - -- Request: .return [anything] - Exit a macro, immediately returning to the caller. - - If called with an argument, exit twice, namely the current macro - and the macro one level higher. This is used to define a wrapper - macro for `return' in `trace.tmac'. - -* Menu: - -* Copy-in Mode:: -* Parameters:: - - -File: groff, Node: Copy-in Mode, Next: Parameters, Prev: Writing Macros, Up: Writing Macros - -5.21.1 Copy-in Mode -------------------- - -When `gtroff' reads in the text for a macro, string, or diversion, it -copies the text (including request lines, but excluding escapes) into -an internal buffer. Escapes are converted into an internal form, -except for `\n', `\$', `\*', `\\' and `\' which are evaluated and -inserted into the text where the escape was located. This is known as -"copy-in" mode or "copy" mode. - - What this means is that you can specify when these escapes are to be -evaluated (either at copy-in time or at the time of use) by insulating -the escapes with an extra backslash. Compare this to the `\def' and -`\edef' commands in TeX. - - The following example prints the numbers 20 and 10: - - - .nr x 20 - .de y - .nr x 10 - \&\nx - \&\\nx - .. - .y - - -File: groff, Node: Parameters, Prev: Copy-in Mode, Up: Writing Macros - -5.21.2 Parameters ------------------ - -The arguments to a macro or string can be examined using a variety of -escapes. - - -- Register: \n[.$] - The number of arguments passed to a macro or string. This is a - read-only number register. - - Note that the `shift' request can change its value. - - Any individual argument can be retrieved with one of the following -escapes: - - -- Escape: \$n - -- Escape: \$(nn - -- Escape: \$[nnn] - Retrieve the Nth, NNth or NNNth argument. As usual, the first - form only accepts a single number (larger than zero), the second a - two-digit number (larger or equal to 10), and the third any - positive integer value (larger than zero). Macros and strings can - have an unlimited number of arguments. Note that due to copy-in - mode, use two backslashes on these in actual use to prevent - interpolation until the macro is actually invoked. - - -- Request: .shift [n] - Shift the arguments 1 position, or as many positions as specified - by its argument. After executing this request, argument I becomes - argument I-N; arguments 1 to N are no longer available. Shifting - by negative amounts is currently undefined. - - The register `.$' is adjusted accordingly. - - -- Escape: \$* - -- Escape: \$@ - In some cases it is convenient to use all of the arguments at once - (for example, to pass the arguments along to another macro). The - `\$*' escape concatenates all the arguments separated by spaces. A - similar escape is `\$@', which concatenates all the arguments with - each surrounded by double quotes, and separated by spaces. If not - in compatibility mode, the input level of double quotes is - preserved (see *Note Request and Macro Arguments::). - - -- Escape: \$0 - The name used to invoke the current macro. The `als' request can - make a macro have more than one name. - - - .de generic-macro - . ... - . if \\n[error] \{\ - . tm \\$0: Houston, we have a problem. - . return - . \} - .. - . - .als foo generic-macro - .als bar generic-macro - - - *Note Request and Macro Arguments::. - - -File: groff, Node: Page Motions, Next: Drawing Requests, Prev: Writing Macros, Up: gtroff Reference - -5.22 Page Motions -================= - -*Note Manipulating Spacing::, for a discussion of the main request for -vertical motion, `sp'. - - -- Request: .mk [reg] - -- Request: .rt [dist] - The request `mk' can be used to mark a location on a page, for - movement to later. This request takes a register name as an - argument in which to store the current page location. With no - argument it stores the location in an internal register. The - results of this can be used later by the `rt' or the `sp' request - (or the `\v' escape). - - The `rt' request returns _upwards_ to the location marked with the - last `mk' request. If used with an argument, return to a position - which distance from the top of the page is DIST (no previous call - to `mk' is necessary in this case). Default scaling indicator is - `v'. - - Here a primitive solution for a two-column macro. - - - .nr column-length 1.5i - .nr column-gap 4m - .nr bottom-margin 1m - . - - - .de 2c - . br - . mk - . ll \\n[column-length]u - . wh -\\n[bottom-margin]u 2c-trap - . nr right-side 0 - .. - . - - - .de 2c-trap - . ie \\n[right-side] \{\ - . nr right-side 0 - . po -(\\n[column-length]u + \\n[column-gap]u) - . \" remove trap - . wh -\\n[bottom-margin]u - . \} - . el \{\ - . \" switch to right side - . nr right-side 1 - . po +(\\n[column-length]u + \\n[column-gap]u) - . rt - . \} - .. - . - - - .pl 1.5i - .ll 4i - This is a small test which shows how the - rt request works in combination with mk. - - .2c - Starting here, text is typeset in two columns. - Note that this implementation isn't robust - and thus not suited for a real two-column - macro. - - Result: - - - This is a small test which shows how the - rt request works in combination with mk. - - Starting here, isn't robust - text is typeset and thus not - in two columns. suited for a - Note that this real two-column - implementation macro. - - - The following escapes give fine control of movements about the page. - - -- Escape: \v'e' - Move vertically, usually from the current location on the page (if - no absolute position operator `|' is used). The argument E - specifies the distance to move; positive is downwards and negative - upwards. The default scaling indicator for this escape is `v'. - Beware, however, that `gtroff' continues text processing at the - point where the motion ends, so you should always balance motions - to avoid interference with text processing. - - `\v' doesn't trigger a trap. This can be quite useful; for - example, consider a page bottom trap macro which prints a marker - in the margin to indicate continuation of a footnote or something - similar. - - There are some special-case escapes for vertical motion. - - -- Escape: \r - Move upwards 1v. - - -- Escape: \u - Move upwards .5v. - - -- Escape: \d - Move down .5v. - - -- Escape: \h'e' - Move horizontally, usually from the current location (if no - absolute position operator `|' is used). The expression E - indicates how far to move: positive is rightwards and negative - leftwards. The default scaling indicator for this escape is `m'. - - This horizontal space is not discarded at the end of a line. To - insert discardable space of a certain length use the `ss' request. - - There are a number of special-case escapes for horizontal motion. - - -- Escape: \ - An unbreakable and unpaddable (i.e. not expanded during filling) - space. (Note: This is a backslash followed by a space.) - - -- Escape: \~ - An unbreakable space that stretches like a normal inter-word space - when a line is adjusted. - - -- Escape: \| - A 1/6th em space. Ignored for TTY output devices (rounded to - zero). - - -- Escape: \^ - A 1/12th em space. Ignored for TTY output devices (rounded to - zero). - - -- Escape: \0 - A space the size of a digit. - - The following string sets the TeX logo: - - - .ds TeX T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X - - -- Escape: \w'text' - -- Register: \n[st] - -- Register: \n[sb] - -- Register: \n[rst] - -- Register: \n[rsb] - -- Register: \n[ct] - -- Register: \n[ssc] - -- Register: \n[skw] - Return the width of the specified TEXT in basic units. This - allows horizontal movement based on the width of some arbitrary - text (e.g. given as an argument to a macro). - - - The length of the string `abc' is \w'abc'u. - => The length of the string `abc' is 72u. - - Font changes may occur in TEXT which don't affect current settings. - - After use, `\w' sets several registers: - - `st' - `sb' - The highest and lowest point of the baseline, respectively, - in TEXT. - - `rst' - `rsb' - Like the `st' and `sb' registers, but takes account of the - heights and depths of glyphs. With other words, this gives - the highest and lowest point of TEXT. Values below the - baseline are negative. - - `ct' - Defines the kinds of glyphs occurring in TEXT: - - 0 - only short glyphs, no descenders or tall glyphs. - - 1 - at least one descender. - - 2 - at least one tall glyph. - - 3 - at least one each of a descender and a tall glyph. - - `ssc' - The amount of horizontal space (possibly negative) that - should be added to the last glyph before a subscript. - - `skw' - How far to right of the center of the last glyph in the `\w' - argument, the center of an accent from a roman font should be - placed over that glyph. - - -- Escape: \kp - -- Escape: \k(ps - -- Escape: \k[position] - Store the current horizontal position in the _input_ line in - number register with name POSITION (one-character name P, - two-character name PS). Use this, for example, to return to the - beginning of a string for highlighting or other decoration. - - -- Register: \n[hp] - The current horizontal position at the input line. - - -- Register: \n[.k] - A read-only number register containing the current horizontal - output position (relative to the current indentation). - - -- Escape: \o'abc' - Overstrike glyphs A, B, C, ...; the glyphs are centered, and the - resulting spacing is the largest width of the affected glyphs. - - -- Escape: \zg - Print glyph G with zero width, i.e., without spacing. Use this to - overstrike glyphs left-aligned. - - -- Escape: \Z'anything' - Print ANYTHING, then restore the horizontal and vertical position. - The argument may not contain tabs or leaders. - - The following is an example of a strike-through macro: - - - .de ST - .nr ww \w'\\$1' - \Z@\v'-.25m'\l'\\n[ww]u'@\\$1 - .. - . - This is - .ST "a test" - an actual emergency! - - - - -Local Variables: -coding: iso-8859-1 -End: diff --git a/gen/usr/share/info/groff-2 b/gen/usr/share/info/groff-2 deleted file mode 100644 index 4edffb5..0000000 --- a/gen/usr/share/info/groff-2 +++ /dev/null @@ -1,4922 +0,0 @@ -This is groff, produced by makeinfo version 4.8 from ./groff.texinfo. - - This manual documents GNU `troff' version 1.19.2. - - Copyright (C) 1994-2000, 2001, 2002, 2003, 2004, 2005 Free Software -Foundation, Inc. - - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU Free Documentation License, - Version 1.1 or any later version published by the Free Software - Foundation; with no Invariant Sections, with the Front-Cover texts - being `A GNU Manual," and with the Back-Cover Texts as in (a) - below. A copy of the license is included in the section entitled - `GNU Free Documentation License." - - (a) The FSF's Back-Cover Text is: `You have freedom to copy and - modify this GNU Manual, like GNU software. Copies published by - the Free Software Foundation raise funds for GNU development." - -INFO-DIR-SECTION Typesetting -START-INFO-DIR-ENTRY -* Groff: (groff). The GNU troff document formatting system. -END-INFO-DIR-ENTRY - - -File: groff, Node: Drawing Requests, Next: Traps, Prev: Page Motions, Up: gtroff Reference - -5.23 Drawing Requests -===================== - -`gtroff' provides a number of ways to draw lines and other figures on -the page. Used in combination with the page motion commands (see *Note -Page Motions::, for more info), a wide variety of figures can be drawn. -However, for complex drawings these operations can be quite -cumbersome, and it may be wise to use graphic preprocessors like `gpic' -or `ggrn'. *Note gpic::, and *Note ggrn::, for more information. - - All drawing is done via escapes. - - -- Escape: \l'l' - -- Escape: \l'lg' - Draw a line horizontally. L is the length of the line to be - drawn. If it is positive, start the line at the current location - and draw to the right; its end point is the new current location. - Negative values are handled differently: The line starts at the - current location and draws to the left, but the current location - doesn't move. - - L can also be specified absolutely (i.e. with a leading `|') which - draws back to the beginning of the input line. Default scaling - indicator is `m'. - - The optional second parameter G is a glyph to draw the line with. - If this second argument is not specified, `gtroff' uses the - underscore glyph, `\[ru]'. - - To separate the two arguments (to prevent `gtroff' from - interpreting a drawing glyph as a scaling indicator if the glyph is - represented by a single character) use `\&'. - - Here a small useful example: - - - .de box - \[br]\\$*\[br]\l'|0\[rn]'\l'|0\[ul]' - .. - - Note that this works by outputting a box rule (a vertical line), - then the text given as an argument and then another box rule. - Finally, the line drawing escapes both draw from the current - location to the beginning of the _input_ line - this works because - the line length is negative, not moving the current point. - - -- Escape: \L'l' - -- Escape: \L'lg' - Draw vertical lines. Its parameters are similar to the `\l' - escape, except that the default scaling indicator is `v'. The - movement is downwards for positive values, and upwards for - negative values. The default glyph is the box rule glyph, - `\[br]'. As with the vertical motion escapes, text processing - blindly continues where the line ends. - - - This is a \L'3v'test. - - Here the result, produced with `grotty'. - - - This is a - | - | - |test. - - - -- Escape: \D'command arg ...' - The `\D' escape provides a variety of drawing functions. Note - that on character devices, only vertical and horizontal lines are - supported within `grotty'; other devices may only support a subset - of the available drawing functions. - - The default scaling indicator for all subcommands of `\D' is `m' - for horizontal distances and `v' for vertical ones. Exceptions - are `\D'f ...'' and `\D't ...'' which use `u' as the default, and - `\D'FX ...'' which arguments are treated similar to the `defcolor' - request. - - `\D'l DX DY'' - Draw a line from the current location to the relative point - specified by (DX,DY), where positive values mean down and - right, respectively. The end point of the line is the new - current location. - - The following example is a macro for creating a box around a - text string; for simplicity, the box margin is taken as a - fixed value, 0.2m. - - - .de BOX - . nr @wd \w'\\$1' - \h'.2m'\ - \h'-.2m'\v'(.2m - \\n[rsb]u)'\ - \D'l 0 -(\\n[rst]u - \\n[rsb]u + .4m)'\ - \D'l (\\n[@wd]u + .4m) 0'\ - \D'l 0 (\\n[rst]u - \\n[rsb]u + .4m)'\ - \D'l -(\\n[@wd]u + .4m) 0'\ - \h'.2m'\v'-(.2m - \\n[rsb]u)'\ - \\$1\ - \h'.2m' - .. - - First, the width of the string is stored in register `@wd'. - Then, four lines are drawn to form a box, properly offset by - the box margin. The registers `rst' and `rsb' are set by the - `\w' escape, containing the largest height and depth of the - whole string. - - `\D'c D'' - Draw a circle with a diameter of D with the leftmost point at - the current position. After drawing, the current location is - positioned at the rightmost point of the circle. - - `\D'C D'' - Draw a solid circle with the same parameters and behaviour as - an outlined circle. No outline is drawn. - - `\D'e X Y'' - Draw an ellipse with a horizontal diameter of X and a vertical - diameter of Y with the leftmost point at the current position. - After drawing, the current location is positioned at the - rightmost point of the ellipse. - - `\D'E X Y'' - Draw a solid ellipse with the same parameters and behaviour - as an outlined ellipse. No outline is drawn. - - `\D'a DX1 DY1 DX2 DY2'' - Draw an arc clockwise from the current location through the - two specified relative locations (DX1,DY1) and (DX2,DY2). - The coordinates of the first point are relative to the - current position, and the coordinates of the second point are - relative to the first point. After drawing, the current - position is moved to the final point of the arc. - - `\D'~ DX1 DY1 DX2 DY2 ...'' - Draw a spline from the current location to the relative point - (DX1,DY1) and then to (DX2,DY2), and so on. The current - position is moved to the terminal point of the drawn curve. - - `\D'f N'' - Set the shade of gray to be used for filling solid objects - to N; N must be an integer between 0 and 1000, where 0 - corresponds solid white and 1000 to solid black, and values - in between correspond to intermediate shades of gray. This - applies only to solid circles, solid ellipses, and solid - polygons. By default, a level of 1000 is used. - - Despite of being silly, the current point is moved - horizontally to the right by N. - - Don't use this command! It has the serious drawback that it - will be always rounded to the next integer multiple of the - horizontal resolution (the value of the `hor' keyword in the - `DESC' file). Use `\M' (*note Colors::) or `\D'Fg ...'' - instead. - - `\D'p DX1 DY1 DX2 DY2 ...'' - Draw a polygon from the current location to the relative - position (DX1,DY1) and then to (DX2,DY2) and so on. When the - specified data points are exhausted, a line is drawn back to - the starting point. The current position is changed by - adding the sum of all arguments with odd index to the actual - horizontal position and the even ones to the vertical - position. - - `\D'P DX1 DY1 DX2 DY2 ...'' - Draw a solid polygon with the same parameters and behaviour - as an outlined polygon. No outline is drawn. - - Here a better variant of the box macro to fill the box with - some color. Note that the box must be drawn before the text - since colors in `gtroff' are not transparent; the filled - polygon would hide the text completely. - - - .de BOX - . nr @wd \w'\\$1' - \h'.2m'\ - \h'-.2m'\v'(.2m - \\n[rsb]u)'\ - \M[lightcyan]\ - \D'P 0 -(\\n[rst]u - \\n[rsb]u + .4m) \ - (\\n[@wd]u + .4m) 0 \ - 0 (\\n[rst]u - \\n[rsb]u + .4m) \ - -(\\n[@wd]u + .4m) 0'\ - \h'.2m'\v'-(.2m - \\n[rsb]u)'\ - \M[]\ - \\$1\ - \h'.2m' - .. - - `\D't N'' - Set the current line thickness to N machine units. A value of - zero selects the smallest available line thickness. A - negative value makes the line thickness proportional to the - current point size (this is the default behaviour of AT&T - `troff'). - - Despite of being silly, the current point is moved - horizontally to the right by N. - - `\D'FSCHEME COLOR_COMPONENTS'' - Change current fill color. SCHEME is a single letter - denoting the color scheme: `r' (rgb), `c' (cmy), `k' (cmyk), - `g' (gray), or `d' (default color). The color components use - exactly the same syntax as in the `defcolor' request (*note - Colors::); the command `\D'Fd'' doesn't take an argument. - - _No_ position changing! - - Examples: - - - \D'Fg .3' \" same gray as \D'f 700' \D'Fr #0000ff' \" - blue - - *Note Graphics Commands::. - - -- Escape: \b'string' - "Pile" a sequence of glyphs vertically, and center it vertically - on the current line. Use it to build large brackets and braces. - - Here an example how to create a large opening brace: - - - \b'\[lt]\[bv]\[lk]\[bv]\[lb]' - - The first glyph is on the top, the last glyph in STRING is at the - bottom. Note that `gtroff' separates the glyphs vertically by 1m, - and the whole object is centered 0.5m above the current baseline; - the largest glyph width is used as the width for the whole object. - This rather unflexible positioning algorithm doesn't work with - `-Tdvi' since the bracket pieces vary in height for this device. - Instead, use the `eqn' preprocessor. - - *Note Manipulating Spacing::, how to adjust the vertical spacing - with the `\x' escape. - - -File: groff, Node: Traps, Next: Diversions, Prev: Drawing Requests, Up: gtroff Reference - -5.24 Traps -========== - -"Traps" are locations, which, when reached, call a specified macro. -These traps can occur at a given location on the page, at a given -location in the current diversion, at a blank line, after a certain -number of input lines, or at the end of input. - - Setting a trap is also called "planting". It is also said that a -trap is "sprung" if the associated macro is executed. - -* Menu: - -* Page Location Traps:: -* Diversion Traps:: -* Input Line Traps:: -* Blank Line Traps:: -* End-of-input Traps:: - - -File: groff, Node: Page Location Traps, Next: Diversion Traps, Prev: Traps, Up: Traps - -5.24.1 Page Location Traps --------------------------- - -"Page location traps" perform an action when `gtroff' reaches or passes -a certain vertical location on the page. Page location traps have a -variety of purposes, including: - - * setting headers and footers - - * setting body text in multiple columns - - * setting footnotes - - -- Request: .vpt flag - -- Register: \n[.vpt] - Enable vertical position traps if FLAG is non-zero, or disables - them otherwise. Vertical position traps are traps set by the `wh' - or `dt' requests. Traps set by the `it' request are not vertical - position traps. The parameter that controls whether vertical - position traps are enabled is global. Initially vertical position - traps are enabled. The current setting of this is available in the - `.vpt' read-only number register. - - Note that a page can't be ejected if `vpt' is set to zero. - - -- Request: .wh dist [macro] - Set a page location trap. Non-negative values for DIST set the - trap relative to the top of the page; negative values set the trap - relative to the bottom of the page. Default scaling indicator is - `v'. - - MACRO is the name of the macro to execute when the trap is sprung. - If MACRO is missing, remove the first trap (if any) at DIST. - - The following is a simple example of how many macro packages set - headers and footers. - - - .de hd \" Page header - ' sp .5i - . tl 'Title''date' - ' sp .3i - .. - . - .de fo \" Page footer - ' sp 1v - . tl ''%'' - ' bp - .. - . - .wh 0 hd \" trap at top of the page - .wh -1i fo \" trap one inch from bottom - - A trap at or below the bottom of the page is ignored; it can be - made active by either moving it up or increasing the page length - so that the trap is on the page. - - It is possible to have more than one trap at the same location; to - do so, the traps must be defined at different locations, then - moved together with the `ch' request; otherwise the second trap - would replace the first one. Earlier defined traps hide later - defined traps if moved to the same position (the many empty lines - caused by the `bp' request are omitted in the following example): - - - .de a - . nop a - .. - .de b - . nop b - .. - .de c - . nop c - .. - . - .wh 1i a - .wh 2i b - .wh 3i c - .bp - => a b c - - - .ch b 1i - .ch c 1i - .bp - => a - - - .ch a 0.5i - .bp - => a b - - - -- Register: \n[.t] - A read-only number register holding the distance to the next trap. - - If there are no traps between the current position and the bottom - of the page, it contains the distance to the page bottom. In a - diversion, the distance to the page bottom is infinite (the - returned value is the biggest integer which can be represented in - `groff') if there are no diversion traps. - - -- Request: .ch macro [dist] - Change the location of a trap. The first argument is the name of - the macro to be invoked at the trap, and the second argument is - the new location for the trap (note that the parameters are - specified in opposite order as in the `wh' request). This is - useful for building up footnotes in a diversion to allow more - space at the bottom of the page for them. - - Default scaling indicator for DIST is `v'. If DIST is missing, - the trap is removed. - - - -- Register: \n[.ne] - The read-only number register `.ne' contains the amount of space - that was needed in the last `ne' request that caused a trap to be - sprung. Useful in conjunction with the `.trunc' register. *Note - Page Control::, for more information. - - Since the `.ne' register is only set by traps it doesn't make much - sense to use it outside of trap macros. - - -- Register: \n[.trunc] - A read-only register containing the amount of vertical space - truncated by the most recently sprung vertical position trap, or, - if the trap was sprung by an `ne' request, minus the amount of - vertical motion produced by the `ne' request. In other words, at - the point a trap is sprung, it represents the difference of what - the vertical position would have been but for the trap, and what - the vertical position actually is. - - Since the `.trunc' register is only set by traps it doesn't make - much sense to use it outside of trap macros. - - -- Register: \n[.pe] - A read-only register which is set to 1 while a page is ejected with - the `bp' request (or by the end of input). - - Outside of traps this register is always zero. In the following - example, only the second call to `x' is caused by `bp'. - - - .de x - \&.pe=\\n[.pe] - .br - .. - .wh 1v x - .wh 4v x - A line. - .br - Another line. - .br - => A line. - .pe=0 - Another line. - - .pe=1 - - - An important fact to consider while designing macros is that -diversions and traps do not interact normally. For example, if a trap -invokes a header macro (while outputting a diversion) which tries to -change the font on the current page, the effect will not be visible -before the diversion has completely been printed (except for input -protected with `\!' or `\?') since the data in the diversion is already -formatted. In most cases, this is not the expected behaviour. - - -File: groff, Node: Diversion Traps, Next: Input Line Traps, Prev: Page Location Traps, Up: Traps - -5.24.2 Diversion Traps ----------------------- - - -- Request: .dt [dist macro] - Set a trap _within_ a diversion. DIST is the location of the trap - (identical to the `wh' request; default scaling indicator is `v') - and MACRO is the name of the macro to be invoked. If called - without arguments, the diversion trap is removed. - - Note that there exists only a single diversion trap. - - The number register `.t' still works within diversions. *Note - Diversions::, for more information. - - -File: groff, Node: Input Line Traps, Next: Blank Line Traps, Prev: Diversion Traps, Up: Traps - -5.24.3 Input Line Traps ------------------------ - - -- Request: .it n macro - -- Request: .itc n macro - Set an input line trap. N is the number of lines of input which - may be read before springing the trap, MACRO is the macro to be - invoked. Request lines are not counted as input lines. - - For example, one possible use is to have a macro which prints the - next N lines in a bold font. - - - .de B - . it \\$1 B-end - . ft B - .. - . - .de B-end - . ft R - .. - - The `itc' request is identical except that an interrupted text - line (ending with `\c') is not counted as a separate line. - - Both requests are associated with the current environment (*note - Environments::); switching to another environment disables the - current input trap, and going back reactivates it, restoring the - number of already processed lines. - - -File: groff, Node: Blank Line Traps, Next: End-of-input Traps, Prev: Input Line Traps, Up: Traps - -5.24.4 Blank Line Traps ------------------------ - - -- Request: .blm macro - Set a blank line trap. `gtroff' executes MACRO when it encounters - a blank line in the input file. - - -File: groff, Node: End-of-input Traps, Prev: Blank Line Traps, Up: Traps - -5.24.5 End-of-input Traps -------------------------- - - -- Request: .em macro - Set a trap at the end of input. MACRO is executed after the last - line of the input file has been processed. - - For example, if the document had to have a section at the bottom - of the last page for someone to approve it, the `em' request could - be used. - - - .de approval - . ne 5v - . sp |(\\n[.t] - 6v) - . in +4i - . lc _ - . br - Approved:\t\a - . sp - Date:\t\t\a - .. - . - .em approval - - - -File: groff, Node: Diversions, Next: Environments, Prev: Traps, Up: gtroff Reference - -5.25 Diversions -=============== - -In `gtroff' it is possible to "divert" text into a named storage area. -Due to the similarity to defining macros it is sometimes said to be -stored in a macro. This is used for saving text for output at a later -time, which is useful for keeping blocks of text on the same page, -footnotes, tables of contents, and indices. - - For orthogonality it is said that `gtroff' is in the "top-level -diversion" if no diversion is active (i.e., the data is diverted to the -output device). - - -- Request: .di macro - -- Request: .da macro - Begin a diversion. Like the `de' request, it takes an argument of - a macro name to divert subsequent text into. The `da' macro - appends to an existing diversion. - - `di' or `da' without an argument ends the diversion. - - -- Request: .box macro - -- Request: .boxa macro - Begin (or appends to) a diversion like the `di' and `da' requests. - The difference is that `box' and `boxa' do not include a - partially-filled line in the diversion. - - Compare this: - - - Before the box. - .box xxx - In the box. - .br - .box - After the box. - .br - => Before the box. After the box. - .xxx - => In the box. - - with this: - - - Before the diversion. - .di yyy - In the diversion. - .br - .di - After the diversion. - .br - => After the diversion. - .yyy - => Before the diversion. In the diversion. - - `box' or `boxa' without an argument ends the diversion. - - -- Register: \n[.z] - -- Register: \n[.d] - Diversions may be nested. The read-only number register `.z' - contains the name of the current diversion (this is a string-valued - register). The read-only number register `.d' contains the current - vertical place in the diversion. If not in a diversion it is the - same as register `nl'. - - -- Register: \n[.h] - The "high-water mark" on the current page. It corresponds to the - text baseline of the lowest line on the page. This is a read-only - register. - - - .tm .h==\n[.h], nl==\n[nl] - => .h==0, nl==-1 - This is a test. - .br - .sp 2 - .tm .h==\n[.h], nl==\n[nl] - => .h==40, nl==120 - - As can be seen in the previous example, empty lines are not - considered in the return value of the `.h' register. - - -- Register: \n[dn] - -- Register: \n[dl] - After completing a diversion, the read-write number registers `dn' - and `dl' contain the vertical and horizontal size of the diversion. - Note that only the just processed lines are counted: For the - computation of `dn' and `dl', the requests `da' and `boxa' are - handled as if `di' and `box' had been used - lines which have been - already stored in a macro are not taken into account. - - - .\" Center text both horizontally & vertically - . - .\" Enclose macro definitions in .eo and .ec - .\" to avoid the doubling of the backslash - .eo - .\" macro .(c starts centering mode - .de (c - . br - . ev (c - . evc 0 - . in 0 - . nf - . di @c - .. - - - .\" macro .)c terminates centering mode - .de )c - . br - . ev - . di - . nr @s (((\n[.t]u - \n[dn]u) / 2u) - 1v) - . sp \n[@s]u - . ce 1000 - . @c - . ce 0 - . sp \n[@s]u - . br - . fi - . rr @s - . rm @s - . rm @c - .. - .\" End of macro definitions, restore escape mechanism - .ec - - - -- Escape: \! - -- Escape: \?anything\? - Prevent requests, macros, and escapes from being interpreted when - read into a diversion. Both escapes take the given text and - "transparently" embed it into the diversion. This is useful for - macros which shouldn't be invoked until the diverted text is - actually output. - - The `\!' escape transparently embeds text up to and including the - end of the line. The `\?' escape transparently embeds text until - the next occurrence of the `\?' escape. Example: - - - \?ANYTHING\? - - ANYTHING may not contain newlines; use `\!' to embed newlines in - a diversion. The escape sequence `\?' is also recognized in copy - mode and turned into a single internal code; it is this code that - terminates ANYTHING. Thus the following example prints 4. - - - .nr x 1 - .nf - .di d - \?\\?\\\\?\\\\\\\\nx\\\\?\\?\? - .di - .nr x 2 - .di e - .d - .di - .nr x 3 - .di f - .e - .di - .nr x 4 - .f - - Both escapes read the data in copy mode. - - If `\!' is used in the top-level diversion, its argument is - directly embedded into the `gtroff' intermediate output. This can - be used for example to control a postprocessor which processes the - data before it is sent to the device driver. - - The `\?' escape used in the top-level diversion produces no output - at all; its argument is simply ignored. - - -- Request: .output string - Emit STRING directly to the `gtroff' intermediate output (subject - to copy-mode interpretation); this is similar to `\!' used at the - top level. An initial double quote in STRING is stripped off to - allow initial blanks. - - This request can't be used before the first page has started - if - you get an error, simply insert `.br' before the `output' request. - - Without argument, `output' is ignored. - - Use with caution! It is normally only needed for mark-up used by a - postprocessor which does something with the output before sending - it to the output device, filtering out STRING again. - - -- Request: .asciify div - "Unformat" the diversion specified by DIV in such a way that ASCII - characters, characters translated with the `trin' request, space - characters, and some escape sequences that were formatted and - diverted are treated like ordinary input characters when the - diversion is reread. It can be also used for gross hacks; for - example, the following sets register `n' to 1. - - - .tr @. - .di x - @nr n 1 - .br - .di - .tr @@ - .asciify x - .x - - *Note Copy-in Mode::. - - -- Request: .unformat div - Like `asciify', unformat the specified diversion. However, - `unformat' only unformats spaces and tabs between words. - Unformatted tabs are treated as input tokens, and spaces are - stretchable again. - - The vertical size of lines is not preserved; glyph information - (font, font size, space width, etc.) is retained. - - -File: groff, Node: Environments, Next: Suppressing output, Prev: Diversions, Up: gtroff Reference - -5.26 Environments -================= - -It happens frequently that some text should be printed in a certain -format regardless of what may be in effect at the time, for example, in -a trap invoked macro to print headers and footers. To solve this -`gtroff' processes text in "environments". An environment contains -most of the parameters that control text processing. It is possible to -switch amongst these environments; by default `gtroff' processes text -in environment 0. The following is the information kept in an -environment. - - * font parameters (size, family, style, glyph height and slant, space - and sentence space size) - - * page parameters (line length, title length, vertical spacing, line - spacing, indentation, line numbering, centering, right-justifying, - underlining, hyphenation data) - - * fill and adjust mode - - * tab stops, tab and leader characters, escape character, no-break - and hyphen indicators, margin character data - - * partially collected lines - - * input traps - - * drawing and fill colours - - These environments may be given arbitrary names (see *Note -Identifiers::, for more info). Old versions of `troff' only had -environments named `0', `1', and `2'. - - -- Request: .ev [env] - -- Register: \n[.ev] - Switch to another environment. The argument ENV is the name of - the environment to switch to. With no argument, `gtroff' switches - back to the previous environment. There is no limit on the number - of named environments; they are created the first time that they - are referenced. The `.ev' read-only register contains the name or - number of the current environment. This is a string-valued - register. - - Note that a call to `ev' (with argument) pushes the previously - active environment onto a stack. If, say, environments `foo', - `bar', and `zap' are called (in that order), the first `ev' - request without parameter switches back to environment `bar' - (which is popped off the stack), and a second call switches back - to environment `foo'. - - Here is an example: - - - .ev footnote-env - .fam N - .ps 6 - .vs 8 - .ll -.5i - .ev - - ... - - .ev footnote-env - \(dg Note the large, friendly letters. - .ev - - - -- Request: .evc env - Copy the environment ENV into the current environment. - - The following environment data is not copied: - - * Partially filled lines. - - * The status whether the previous line was interrupted. - - * The number of lines still to center, or to right-justify, or - to underline (with or without underlined spaces); they are - set to zero. - - * The status whether a temporary indentation is active. - - * Input traps and its associated data. - - * Line numbering mode is disabled; it can be reactivated with - `.nm +0'. - - * The number of consecutive hyphenated lines (set to zero). - - -- Register: \n[.w] - -- Register: \n[.cht] - -- Register: \n[.cdp] - -- Register: \n[.csk] - The `\n[.w]' register contains the width of the last glyph added - to the current environment. - - The `\n[.cht]' register contains the height of the last glyph - added to the current environment. - - The `\n[.cdp]' register contains the depth of the last glyph added - to the current environment. It is positive for glyphs extending - below the baseline. - - The `\n[.csk]' register contains the "skew" (how far to the right - of the glyph's center that `gtroff' should place an accent) of the - last glyph added to the current environment. - - -- Register: \n[.n] - The `\n[.n]' register contains the length of the previous output - line in the current environment. - - -File: groff, Node: Suppressing output, Next: Colors, Prev: Environments, Up: gtroff Reference - -5.27 Suppressing output -======================= - - -- Escape: \Onum - Disable or enable output depending on the value of NUM: - - `\O0' - Disable any glyphs from being emitted to the device driver, - provided that the escape occurs at the outer level (see - `\O[3]' and `\O[4]'). Motion is not suppressed so - effectively `\O[0]' means _pen up_. - - `\O1' - Enable output of glyphs, provided that the escape occurs at - the outer level. - - `\O0' and `\O1' also reset the four registers `opminx', `opminy', - `opmaxx', and `opmaxy' to -1. *Note Register Index::. These four - registers mark the top left and bottom right hand corners of a box - which encompasses all written glyphs. - - For example the input text: - - - Hello \O[0]world \O[1]this is a test. - - produces the following output: - - - Hello this is a test. - - `\O2' - Provided that the escape occurs at the outer level, enable - output of glyphs and also write out to `stderr' the page - number and four registers encompassing the glyphs previously - written since the last call to `\O'. - - `\O3' - Begin a nesting level. At start-up, `gtroff' is at outer - level. - - `\O4' - End a nesting level. - - `\O[5PFILENAME]' - This escape is `grohtml' specific. Provided that this escape - occurs at the outer nesting level write the `filename' to - `stderr'. The position of the image, P, must be specified - and must be one of `l', `r', `c', or `i' (left, right, - centered, inline). FILENAME will be associated with the - production of the next inline image. - - -File: groff, Node: Colors, Next: I/O, Prev: Suppressing output, Up: gtroff Reference - -5.28 Colors -=========== - - -- Request: .color [n] - -- Register: \n[.color] - If N is missing or non-zero, activate colors (this is the default); - otherwise, turn it off. - - The read-only number register `.color' is 1 if colors are active, - 0 otherwise. - - Internally, `color' sets a global flag; it does not produce a - token. Similar to the `cp' request, you should use it at the - beginning of your document to control color output. - - Colors can be also turned off with the `-c' command line option. - - -- Request: .defcolor ident scheme color_components - Define color with name IDENT. SCHEME can be one of the following - values: `rgb' (three components), `cmy' (three components), `cmyk' - (four components), and `gray' or `grey' (one component). - - Color components can be given either as a hexadecimal string or as - positive decimal integers in the range 0-65535. A hexadecimal - string contains all color components concatenated. It must start - with either `#' or `##'; the former specifies hex values in the - range 0-255 (which are internally multiplied by 257), the latter - in the range 0-65535. Examples: `#FFC0CB' (pink), `##ffff0000ffff' - (magenta). The default color name value is device-specific - (usually black). It is possible that the default color for `\m' - and `\M' is not identical. - - A new scaling indicator `f' has been introduced which multiplies - its value by 65536; this makes it convenient to specify color - components as fractions in the range 0 to 1 (1f equals 65536u). - Example: - - - .defcolor darkgreen rgb 0.1f 0.5f 0.2f - - Note that `f' is the default scaling indicator for the `defcolor' - request, thus the above statement is equivalent to - - - .defcolor darkgreen rgb 0.1 0.5 0.2 - - - -- Request: .gcolor [color] - -- Escape: \mc - -- Escape: \m(co - -- Escape: \m[color] - -- Register: \n[.m] - Set (glyph) drawing color. The following examples show how to - turn the next four words red. - - - .gcolor red - these are in red - .gcolor - and these words are in black. - - - \m[red]these are in red\m[] and these words are in black. - - The escape `\m[]' returns to the previous color, as does a call to - `gcolor' without an argument. - - The name of the current drawing color is available in the - read-only, string-valued number register `.m'. - - The drawing color is associated with the current environment - (*note Environments::). - - Note that `\m' doesn't produce an input token in `gtroff'. As a - consequence, it can be used in requests like `mc' (which expects a - single character as an argument) to change the color on the fly: - - - .mc \m[red]x\m[] - - - -- Request: .fcolor [color] - -- Escape: \Mc - -- Escape: \M(co - -- Escape: \M[color] - -- Register: \n[.M] - Set fill (background) color for filled objects drawn with the - `\D'...'' commands. - - A red ellipse can be created with the following code: - - - \M[red]\h'0.5i'\D'E 2i 1i'\M[] - - The escape `\M[]' returns to the previous fill color, as does a - call to `fcolor' without an argument. - - The name of the current fill (background) color is available in the - read-only, string-valued number register `.M'. - - The fill color is associated with the current environment (*note - Environments::). - - Note that `\M' doesn't produce an input token in `gtroff'. - - -File: groff, Node: I/O, Next: Postprocessor Access, Prev: Colors, Up: gtroff Reference - -5.29 I/O -======== - -`gtroff' has several requests for including files: - - -- Request: .so file - Read in the specified FILE and includes it in place of the `so' - request. This is quite useful for large documents, e.g. keeping - each chapter in a separate file. *Note gsoelim::, for more - information. - - Since `gtroff' replaces the `so' request with the contents of - `file', it makes a difference whether the data is terminated with - a newline or not: Assuming that file `xxx' contains the word `foo' - without a final newline, this - - - This is - .so xxx - bar - - yields `This is foobar'. - - The search path for FILE can be controlled with the `-I' command - line option. - - -- Request: .pso command - Read the standard output from the specified COMMAND and includes - it in place of the `pso' request. - - This request causes an error if used in safer mode (which is the - default). Use `groff''s or `troff''s `-U' option to activate - unsafe mode. - - The comment regarding a final newline for the `so' request is valid - for `pso' also. - - -- Request: .mso file - Identical to the `so' request except that `gtroff' searches for - the specified FILE in the same directories as macro files for the - the `-m' command line option. If the file name to be included has - the form `NAME.tmac' and it isn't found, `mso' tries to include - `tmac.NAME' and vice versa. - - -- Request: .trf file - -- Request: .cf file - Transparently output the contents of FILE. Each line is output as - if it were preceded by `\!'; however, the lines are not subject to - copy mode interpretation. If the file does not end with a newline, - then a newline is added (`trf' only). For example, to define a - macro `x' containing the contents of file `f', use - - - .di x - .trf f - .di - - Both `trf' and `cf', when used in a diversion, embeds an object in - the diversion which, when reread, causes the contents of FILE to - be transparently copied through to the output. In UNIX `troff', - the contents of FILE is immediately copied through to the output - regardless of whether there is a current diversion; this behaviour - is so anomalous that it must be considered a bug. - - While `cf' copies the contents of FILE completely unprocessed, - `trf' disallows characters such as NUL that are not valid `gtroff' - input characters (*note Identifiers::). - - Both requests cause a line break. - - -- Request: .nx [file] - Force `gtroff' to continue processing of the file specified as an - argument. If no argument is given, immediately jump to the end of - file. - - -- Request: .rd [prompt [arg1 arg2 ...]] - Read from standard input, and include what is read as though it - were part of the input file. Text is read until a blank line is - encountered. - - If standard input is a TTY input device (keyboard), write PROMPT - to standard error, followed by a colon (or send BEL for a beep if - no argument is given). - - Arguments after PROMPT are available for the input. For example, - the line - - - .rd data foo bar - - with the input `This is \$2.' prints - - - This is bar. - - - Using the `nx' and `rd' requests, it is easy to set up form letters. -The form letter template is constructed like this, putting the -following lines into a file called `repeat.let': - - - .ce - \*(td - .sp 2 - .nf - .rd - .sp - .rd - .fi - Body of letter. - .bp - .nx repeat.let - -When this is run, a file containing the following lines should be -redirected in. Note that requests included in this file are executed -as though they were part of the form letter. The last block of input -is the `ex' request which tells `groff' to stop processing. If this -was not there, `groff' would not know when to stop. - - - Trent A. Fisher - 708 NW 19th Av., #202 - Portland, OR 97209 - - Dear Trent, - - Len Adollar - 4315 Sierra Vista - San Diego, CA 92103 - - Dear Mr. Adollar, - - .ex - - -- Request: .pi pipe - Pipe the output of `gtroff' to the shell command(s) specified by - PIPE. This request must occur before `gtroff' has a chance to - print anything. - - `pi' causes an error if used in safer mode (which is the default). - Use `groff''s or `troff''s `-U' option to activate unsafe mode. - - Multiple calls to `pi' are allowed, acting as a chain. For - example, - - - .pi foo - .pi bar - ... - - is the same as `.pi foo | bar'. - - Note that the intermediate output format of `gtroff' is piped to - the specified commands. Consequently, calling `groff' without the - `-Z' option normally causes a fatal error. - - -- Request: .sy cmds - -- Register: \n[systat] - Execute the shell command(s) specified by CMDS. The output is not - saved anyplace, so it is up to the user to do so. - - This request causes an error if used in safer mode (which is the - default). Use `groff''s or `troff''s `-U' option to activate - unsafe mode. - - For example, the following code fragment introduces the current - time into a document: - - - .sy perl -e 'printf ".nr H %d\\n.nr M %d\\n.nr S %d\\n",\ - (localtime(time))[2,1,0]' > /tmp/x\n[$$] - .so /tmp/x\n[$$] - .sy rm /tmp/x\n[$$] - \nH:\nM:\nS - - Note that this works by having the `perl' script (run by `sy') - print out the `nr' requests which set the number registers `H', - `M', and `S', and then reads those commands in with the `so' - request. - - For most practical purposes, the number registers `seconds', - `minutes', and `hours' which are initialized at start-up of - `gtroff' should be sufficient. Use the `af' request to get a - formatted output: - - - .af hours 00 - .af minutes 00 - .af seconds 00 - \n[hours]:\n[minutes]:\n[seconds] - - The `systat' read-write number register contains the return value - of the `system()' function executed by the last `sy' request. - - -- Request: .open stream file - -- Request: .opena stream file - Open the specified FILE for writing and associates the specified - STREAM with it. - - The `opena' request is like `open', but if the file exists, append - to it instead of truncating it. - - Both `open' and `opena' cause an error if used in safer mode - (which is the default). Use `groff''s or `troff''s `-U' option to - activate unsafe mode. - - -- Request: .write stream data - -- Request: .writec stream data - Write to the file associated with the specified STREAM. The - stream must previously have been the subject of an open request. - The remainder of the line is interpreted as the `ds' request reads - its second argument: A leading `"' is stripped, and it is read in - copy-in mode. - - The `writec' request is like `write', but only `write' appends a - newline to the data. - - -- Request: .writem stream xx - Write the contents of the macro or string XX to the file - associated with the specified STREAM. - - XX is read in copy mode, i.e., already formatted elements are - ignored. Consequently, diversions must be unformatted with the - `asciify' request before calling `writem'. Usually, this means a - loss of information. - - -- Request: .close stream - Close the specified STREAM; the stream is no longer an acceptable - argument to the `write' request. - - Here a simple macro to write an index entry. - - - .open idx test.idx - . - .de IX - . write idx \\n[%] \\$* - .. - . - .IX test entry - . - .close idx - - - -- Escape: \Ve - -- Escape: \V(ev - -- Escape: \V[env] - Interpolate the contents of the specified environment variable ENV - (one-character name E, two-character name EV) as returned by the - function `getenv'. `\V' is interpreted in copy-in mode. - - -File: groff, Node: Postprocessor Access, Next: Miscellaneous, Prev: I/O, Up: gtroff Reference - -5.30 Postprocessor Access -========================= - -There are two escapes which give information directly to the -postprocessor. This is particularly useful for embedding POSTSCRIPT -into the final document. - - -- Escape: \X'xxx' - Embeds its argument into the `gtroff' output preceded with `x X'. - - The escapes `\&', `\)', `\%', and `\:' are ignored within `\X', - `\ ' and `\~' are converted to single space characters. All other - escapes (except `\\' which produces a backslash) cause an error. - - If the `use_charnames_in_special' keyword is set in the `DESC' - file, special characters no longer cause an error; the name XX is - represented as `\(XX)' in the `x X' output command. Additionally, - the backslash is represented as `\\'. - - `use_charnames_in_special' is currently used by `grohtml' only. - - -- Escape: \Yn - -- Escape: \Y(nm - -- Escape: \Y[name] - This is approximately equivalent to `\X'\*[NAME]'' (one-character - name N, two-character name NM). However, the contents of the - string or macro NAME are not interpreted; also it is permitted for - NAME to have been defined as a macro and thus contain newlines (it - is not permitted for the argument to `\X' to contain newlines). - The inclusion of newlines requires an extension to the UNIX `troff' - output format, and confuses drivers that do not know about this - extension (*note Device Control Commands::). - - *Note Output Devices::. - - -File: groff, Node: Miscellaneous, Next: Gtroff Internals, Prev: Postprocessor Access, Up: gtroff Reference - -5.31 Miscellaneous -================== - -This section documents parts of `gtroff' which cannot (yet) be -categorized elsewhere in this manual. - - -- Request: .nm [start [inc [space [indent]]]] - Print line numbers. START is the line number of the _next_ output - line. INC indicates which line numbers are printed. For example, - the value 5 means to emit only line numbers which are multiples - of 5; this defaults to 1. SPACE is the space to be left between - the number and the text; this defaults to one digit space. The - fourth argument is the indentation of the line numbers, defaulting - to zero. Both SPACE and INDENT are given as multiples of digit - spaces; they can be negative also. Without any arguments, line - numbers are turned off. - - `gtroff' reserves three digit spaces for the line number (which is - printed right-justified) plus the amount given by INDENT; the - output lines are concatenated to the line numbers, separated by - SPACE, and _without_ reducing the line length. Depending on the - value of the horizontal page offset (as set with the `po' - request), line numbers which are longer than the reserved space - stick out to the left, or the whole line is moved to the right. - - Parameters corresponding to missing arguments are not changed; any - non-digit argument (to be more precise, any argument starting with - a character valid as a delimiter for identifiers) is also treated - as missing. - - If line numbering has been disabled with a call to `nm' without an - argument, it can be reactivated with `.nm +0', using the - previously active line numbering parameters. - - The parameters of `nm' are associated with the current environment - (*note Environments::). The current output line number is - available in the number register `ln'. - - - .po 1m - .ll 2i - This test shows how line numbering works with groff. - .nm 999 - This test shows how line numbering works with groff. - .br - .nm xxx 3 2 - .ll -\w'0'u - This test shows how line numbering works with groff. - .nn 2 - This test shows how line numbering works with groff. - - And here the result: - - - This test shows how - line numbering works - 999 with groff. This - 1000 test shows how line - 1001 numbering works with - 1002 groff. - This test shows how - line numbering - works with groff. - This test shows how - 1005 line numbering - works with groff. - - - -- Request: .nn [skip] - Temporarily turn off line numbering. The argument is the number - of lines not to be numbered; this defaults to 1. - - -- Request: .mc glyph [dist] - Print a "margin character" to the right of the text.(1) (*note - Miscellaneous-Footnote-1::) The first argument is the glyph to be - printed. The second argument is the distance away from the right - margin. If missing, the previously set value is used; default is - 10pt). For text lines that are too long (that is, longer than the - text length plus DIST), the margin character is directly appended - to the lines. - - With no arguments the margin character is turned off. If this - occurs before a break, no margin character is printed. - - For compatibility with AT&T `troff', a call to `mc' to set the - margin character can't be undone immediately; at least one line - gets a margin character. Thus - - - .ll 1i - .mc \[br] - .mc - xxx - .br - xxx - - produces - - - xxx | - xxx - - For empty lines and lines produced by the `tl' request no margin - character is emitted. - - The margin character is associated with the current environment - (*note Environments::). - - This is quite useful for indicating text that has changed, and, in - fact, there are programs available for doing this (they are called - `nrchbar' and `changebar' and can be found in any - `comp.sources.unix' archive). - - - .ll 3i - .mc | - This paragraph is highlighted with a margin - character. - .sp - Note that vertical space isn't marked. - .br - \& - .br - But we can fake it with `\&'. - - Result: - - - This paragraph is highlighted | - with a margin character. | - - Note that vertical space isn't | - marked. | - | - But we can fake it with `\&'. | - - - -- Request: .psbb filename - -- Register: \n[llx] - -- Register: \n[lly] - -- Register: \n[urx] - -- Register: \n[ury] - Retrieve the bounding box of the PostScript image found in - FILENAME. The file must conform to Adobe's "Document Structuring - Conventions" (DSC); the command searches for a `%%BoundingBox' - comment and extracts the bounding box values into the number - registers `llx', `lly', `urx', and `ury'. If an error occurs (for - example, `psbb' cannot find the `%%BoundingBox' comment), it sets - the four number registers to zero. - - The search path for FILENAME can be controlled with the `-I' - command line option. - - -File: groff, Node: Miscellaneous-Footnotes, Up: Miscellaneous - - (1) "Margin character" is a misnomer since it is an output glyph. - - -File: groff, Node: Gtroff Internals, Next: Debugging, Prev: Miscellaneous, Up: gtroff Reference - -5.32 `gtroff' Internals -======================= - -`gtroff' processes input in three steps. One or more input characters -are converted to an "input token".(1) (*note Gtroff -Internals-Footnote-1::) Then, one or more input tokens are converted -to an "output node". Finally, output nodes are converted to the -intermediate output language understood by all output devices. - - Actually, before step one happens, `gtroff' converts certain escape -sequences into reserved input characters (not accessible by the user); -such reserved characters are used for other internal processing also - -this is the very reason why not all characters are valid input. *Note -Identifiers::, for more on this topic. - - For example, the input string `fi\[:u]' is converted into a -character token `f', a character token `i', and a special token `:u' -(representing u umlaut). Later on, the character tokens `f' and `i' -are merged to a single output node representing the ligature glyph `fi' -(provided the current font has a glyph for this ligature); the same -happens with `:u'. All output glyph nodes are `processed' which means -that they are invariably associated with a given font, font size, -advance width, etc. During the formatting process, `gtroff' itself -adds various nodes to control the data flow. - - Macros, diversions, and strings collect elements in two chained -lists: a list of input tokens which have been passed unprocessed, and a -list of output nodes. Consider the following the diversion. - - - .di xxx - a - \!b - c - .br - .di - -It contains these elements. - -node list token list element number -line start node -- 1 -glyph node `a' -- 2 -word space node -- 3 --- `b' 4 --- `\n' 5 -glyph node `c' -- 6 -vertical size node -- 7 -vertical size node -- 8 --- `\n' 9 - -Elements 1, 7, and 8 are inserted by `gtroff'; the latter two (which -are always present) specify the vertical extent of the last line, -possibly modified by `\x'. The `br' request finishes the current -partial line, inserting a newline input token which is subsequently -converted to a space when the diversion is reread. Note that the word -space node has a fixed width which isn't stretchable anymore. To -convert horizontal space nodes back to input tokens, use the `unformat' -request. - - Macros only contain elements in the token list (and the node list is -empty); diversions and strings can contain elements in both lists. - - Note that the `chop' request simply reduces the number of elements -in a macro, string, or diversion by one. Exceptions are "compatibility -save" and "compatibility ignore" input tokens which are ignored. The -`substring' request also ignores those input tokens. - - Some requests like `tr' or `cflags' work on glyph identifiers only; -this means that the associated glyph can be changed without destroying -this association. This can be very helpful for substituting glyphs. -In the following example, we assume that glyph `foo' isn't available by -default, so we provide a substitution using the `fchar' request and map -it to input character `x'. - - - .fchar \[foo] foo - .tr x \[foo] - -Now let us assume that we install an additional special font `bar' -which has glyph `foo'. - - - .special bar - .rchar \[foo] - -Since glyphs defined with `fchar' are searched before glyphs in special -fonts, we must call `rchar' to remove the definition of the fallback -glyph. Anyway, the translation is still active; `x' now maps to the -real glyph `foo'. - - Macro and request arguments preserve the compatibility mode: - - - .cp 1 \" switch to compatibility mode - .de xx - \\$1 - .. - .cp 0 \" switch compatibility mode off - .xx caf\['e] - => café - -Since compatibility mode is on while `de' is called, the macro `xx' -activates compatibility mode while executing. Argument `$1' can still -be handled properly because it inherits the compatibility mode status -which was active at the point where `xx' is called. - - After expansion of the parameters, the compatibility save and restore -tokens are removed. - - -File: groff, Node: Gtroff Internals-Footnotes, Up: Gtroff Internals - - (1) Except the escapes `\f', `\F', `\H', `\m', `\M', `\R', `\s', and -`\S' which are processed immediately if not in copy-in mode. - - -File: groff, Node: Debugging, Next: Implementation Differences, Prev: Gtroff Internals, Up: gtroff Reference - -5.33 Debugging -============== - -`gtroff' is not easy to debug, but there are some useful features and -strategies for debugging. - - -- Request: .lf line [filename] - Change the line number and optionally the file name `gtroff' shall - use for error and warning messages. LINE is the input line number - of the _next_ line. - - Without argument, the request is ignored. - - This is a debugging aid for documents which are split into many - files, then put together with `soelim' and other preprocessors. - Usually, it isn't invoked manually. - - Note that other `troff' implementations (including the original - AT&T version) handle `lf' differently. For them, LINE changes the - line number of the _current_ line. - - -- Request: .tm string - -- Request: .tm1 string - -- Request: .tmc string - Send STRING to the standard error output; this is very useful for - printing debugging messages among other things. - - STRING is read in copy mode. - - The `tm' request ignores leading spaces of STRING; `tm1' handles - its argument similar to the `ds' request: a leading double quote - in STRING is stripped to allow initial blanks. - - The `tmc' request is similar to `tm1' but does not append a - newline (as is done in `tm' and `tm1'). - - -- Request: .ab [string] - Similar to the `tm' request, except that it causes `gtroff' to - stop processing. With no argument it prints `User Abort.' to - standard error. - - -- Request: .ex - The `ex' request also causes `gtroff' to stop processing; see also - *Note I/O::. - - When doing something involved it is useful to leave the debugging -statements in the code and have them turned on by a command line flag. - - - .if \n(DB .tm debugging output - -To activate these statements say - - - groff -rDB=1 file - - If it is known in advance that there will be many errors and no -useful output, `gtroff' can be forced to suppress formatted output with -the `-z' flag. - - -- Request: .pm - Print the entire symbol table on `stderr'. Names of all defined - macros, strings, and diversions are print together with their size - in bytes. Since `gtroff' sometimes adds nodes by itself, the - returned size can be larger than expected. - - This request differs from UNIX `troff': `gtroff' reports the sizes - of diversions, ignores an additional argument to print only the - total of the sizes, and the size isn't returned in blocks of 128 - characters. - - -- Request: .pnr - Print the names and contents of all currently defined number - registers on `stderr'. - - -- Request: .ptr - Print the names and positions of all traps (not including input - line traps and diversion traps) on `stderr'. Empty slots in the - page trap list are printed as well, because they can affect the - priority of subsequently planted traps. - - -- Request: .fl - Instruct `gtroff' to flush its output immediately. The intent is - for interactive use, but this behaviour is currently not - implemented in `gtroff'. Contrary to UNIX `troff', TTY output is - sent to a device driver also (`grotty'), making it non-trivial to - communicate interactively. - - This request causes a line break. - - -- Request: .backtrace - Print a backtrace of the input stack to the standard error stream. - - Consider the following in file `test': - - - .de xxx - . backtrace - .. - .de yyy - . xxx - .. - . - .yyy - - On execution, `gtroff' prints the following: - - - test:2: backtrace: macro `xxx' - test:5: backtrace: macro `yyy' - test:8: backtrace: file `test' - - The option `-b' of `gtroff' internally calls a variant of this - request on each error and warning. - - -- Register: \n[slimit] - Use the `slimit' number register to set the maximum number of - objects on the input stack. If `slimit' is less than or equal - to 0, there is no limit set. With no limit, a buggy recursive - macro can exhaust virtual memory. - - The default value is 1000; this is a compile-time constant. - - -- Request: .warnscale si - Set the scaling indicator used in warnings to SI. Valid values for - SI are `u', `i', `c', `p', and `P'. At startup, it is set to `i'. - - -- Request: .spreadwarn [limit] - Make `gtroff' emit a warning if the additional space inserted for - each space between words in an output line is larger or equal to - LIMIT. A negative value is changed to zero; no argument toggles - the warning on and off without changing LIMIT. The default scaling - indicator is `m'. At startup, `spreadwarn' is deactivated, and - LIMIT is set to 3m. - - For example, - - - .spreadwarn 0.2m - - will cause a warning if `gtroff' must add 0.2m or more for each - interword space in a line. - - This request is active only if text is justified to both margins - (using `.ad b'). - - `gtroff' has command line options for printing out more warnings -(`-w') and for printing backtraces (`-b') when a warning or an error -occurs. The most verbose level of warnings is `-ww'. - - -- Request: .warn [flags] - -- Register: \n[.warn] - Control the level of warnings checked for. The FLAGS are the sum - of the numbers associated with each warning that is to be enabled; - all other warnings are disabled. The number associated with each - warning is listed below. For example, `.warn 0' disables all - warnings, and `.warn 1' disables all warnings except that about - missing glyphs. If no argument is given, all warnings are enabled. - - The read-only number register `.warn' contains the current warning - level. - -* Menu: - -* Warnings:: - - -File: groff, Node: Warnings, Prev: Debugging, Up: Debugging - -5.33.1 Warnings ---------------- - -The warnings that can be given to `gtroff' are divided into the -following categories. The name associated with each warning is used by -the `-w' and `-W' options; the number is used by the `warn' request and -by the `.warn' register. - -`char' -`1' - Non-existent glyphs.(1) (*note Warnings-Footnote-1::) This is - enabled by default. - -`number' -`2' - Invalid numeric expressions. This is enabled by default. *Note - Expressions::. - -`break' -`4' - In fill mode, lines which could not be broken so that their length - was less than the line length. This is enabled by default. - -`delim' -`8' - Missing or mismatched closing delimiters. - -`el' -`16' - Use of the `el' request with no matching `ie' request. *Note - if-else::. - -`scale' -`32' - Meaningless scaling indicators. - -`range' -`64' - Out of range arguments. - -`syntax' -`128' - Dubious syntax in numeric expressions. - -`di' -`256' - Use of `di' or `da' without an argument when there is no current - diversion. - -`mac' -`512' - Use of undefined strings, macros and diversions. When an undefined - string, macro, or diversion is used, that string is automatically - defined as empty. So, in most cases, at most one warning is given - for each name. - -`reg' -`1024' - Use of undefined number registers. When an undefined number - register is used, that register is automatically defined to have a - value of 0. So, in most cases, at most one warning is given for - use of a particular name. - -`tab' -`2048' - Use of a tab character where a number was expected. - -`right-brace' -`4096' - Use of `\}' where a number was expected. - -`missing' -`8192' - Requests that are missing non-optional arguments. - -`input' -`16384' - Invalid input characters. - -`escape' -`32768' - Unrecognized escape sequences. When an unrecognized escape - sequence `\X' is encountered, the escape character is ignored, and - X is printed. - -`space' -`65536' - Missing space between a request or macro and its argument. This - warning is given when an undefined name longer than two characters - is encountered, and the first two characters of the name make a - defined name. The request or macro is not invoked. When this - warning is given, no macro is automatically defined. This is - enabled by default. This warning never occurs in compatibility - mode. - -`font' -`131072' - Non-existent fonts. This is enabled by default. - -`ig' -`262144' - Invalid escapes in text ignored with the `ig' request. These are - conditions that are errors when they do not occur in ignored text. - -`color' -`524288' - Color related warnings. - -`all' - All warnings except `di', `mac' and `reg'. It is intended that - this covers all warnings that are useful with traditional macro - packages. - -`w' - All warnings. - - -File: groff, Node: Warnings-Footnotes, Up: Warnings - - (1) `char' is a misnomer since it reports missing glyphs - there -aren't missing input characters, only invalid ones. - - -File: groff, Node: Implementation Differences, Prev: Debugging, Up: gtroff Reference - -5.34 Implementation Differences -=============================== - -GNU `troff' has a number of features which cause incompatibilities with -documents written with old versions of `troff'. - - Long names cause some incompatibilities. UNIX `troff' interprets - - - .dsabcd - -as defining a string `ab' with contents `cd'. Normally, GNU `troff' -interprets this as a call of a macro named `dsabcd'. Also UNIX `troff' -interprets `\*[' or `\n[' as references to a string or number register -called `['. In GNU `troff', however, this is normally interpreted as -the start of a long name. In compatibility mode GNU `troff' interprets -long names in the traditional way (which means that they are not -recognized as names). - - -- Request: .cp [n] - -- Request: .do cmd - -- Register: \n[.C] - If N is missing or non-zero, turn on compatibility mode; - otherwise, turn it off. - - The read-only number register `.C' is 1 if compatibility mode is - on, 0 otherwise. - - Compatibility mode can be also turned on with the `-C' command line - option. - - The `do' request turns off compatibility mode while executing its - arguments as a `gtroff' command. - - - .do fam T - - executes the `fam' request when compatibility mode is enabled. - - `gtroff' restores the previous compatibility setting before - interpreting any files sourced by the CMD. - - Two other features are controlled by `-C'. If not in compatibility -mode, GNU `troff' preserves the input level in delimited arguments: - - - .ds xx ' - \w'abc\*(xxdef' - -In compatibility mode, the string `72def'' is returned; without `-C' -the resulting string is `168' (assuming a TTY output device). - - Finally, the escapes `\f', `\H', `\m', `\M', `\R', `\s', and `\S' -are transparent for recognizing the beginning of a line only in -compatibility mode (this is a rather obscure feature). For example, -the code - - - .de xx - Hallo! - .. - \fB.xx\fP - -prints `Hallo!' in bold face if in compatibility mode, and `.xx' in -bold face otherwise. - - GNU `troff' does not allow the use of the escape sequences `\|', -`\^', `\&', `\{', `\}', `\', `\'', `\`', `\-', `\_', `\!', `\%', -and `\c' in names of strings, macros, diversions, number registers, -fonts or environments; UNIX `troff' does. The `\A' escape sequence -(*note Identifiers::) may be helpful in avoiding use of these escape -sequences in names. - - Fractional point sizes cause one noteworthy incompatibility. In -UNIX `troff' the `ps' request ignores scale indicators and thus - - - .ps 10u - -sets the point size to 10 points, whereas in GNU `troff' it sets the -point size to 10 scaled points. *Note Fractional Type Sizes::, for -more information. - - In GNU `troff' there is a fundamental difference between -(unformatted) input characters and (formatted) output glyphs. -Everything that affects how a glyph is output is stored with the glyph -node; once a glyph node has been constructed it is unaffected by any -subsequent requests that are executed, including `bd', `cs', `tkf', -`tr', or `fp' requests. Normally glyphs are constructed from input -characters at the moment immediately before the glyph is added to the -current output line. Macros, diversions and strings are all, in fact, -the same type of object; they contain lists of input characters and -glyph nodes in any combination. A glyph node does not behave like an -input character for the purposes of macro processing; it does not -inherit any of the special properties that the input character from -which it was constructed might have had. For example, - - - .di x - \\\\ - .br - .di - .x - -prints `\\' in GNU `troff'; each pair of input backslashes is turned -into one output backslash and the resulting output backslashes are not -interpreted as escape characters when they are reread. UNIX `troff' -would interpret them as escape characters when they were reread and -would end up printing one `\'. The correct way to obtain a printable -backslash is to use the `\e' escape sequence: This always prints a -single instance of the current escape character, regardless of whether -or not it is used in a diversion; it also works in both GNU `troff' and -UNIX `troff'.(1) (*note Implementation Differences-Footnote-1::) To -store, for some reason, an escape sequence in a diversion that will be -interpreted when the diversion is reread, either use the traditional -`\!' transparent output facility, or, if this is unsuitable, the new -`\?' escape sequence. - - *Note Diversions::, and *Note Gtroff Internals::, for more -information. - - -File: groff, Node: Implementation Differences-Footnotes, Up: Implementation Differences - - (1) To be completely independent of the current escape character, -use `\(rs' which represents a reverse solidus (backslash) glyph. - - -File: groff, Node: Preprocessors, Next: Output Devices, Prev: gtroff Reference, Up: Top - -6 Preprocessors -*************** - -This chapter describes all preprocessors that come with `groff' or -which are freely available. - -* Menu: - -* geqn:: -* gtbl:: -* gpic:: -* ggrn:: -* grap:: -* grefer:: -* gsoelim:: - - -File: groff, Node: geqn, Next: gtbl, Prev: Preprocessors, Up: Preprocessors - -6.1 `geqn' -========== - -* Menu: - -* Invoking geqn:: - - -File: groff, Node: Invoking geqn, Prev: geqn, Up: geqn - -6.1.1 Invoking `geqn' ---------------------- - - -File: groff, Node: gtbl, Next: gpic, Prev: geqn, Up: Preprocessors - -6.2 `gtbl' -========== - -* Menu: - -* Invoking gtbl:: - - -File: groff, Node: Invoking gtbl, Prev: gtbl, Up: gtbl - -6.2.1 Invoking `gtbl' ---------------------- - - -File: groff, Node: gpic, Next: ggrn, Prev: gtbl, Up: Preprocessors - -6.3 `gpic' -========== - -* Menu: - -* Invoking gpic:: - - -File: groff, Node: Invoking gpic, Prev: gpic, Up: gpic - -6.3.1 Invoking `gpic' ---------------------- - - -File: groff, Node: ggrn, Next: grap, Prev: gpic, Up: Preprocessors - -6.4 `ggrn' -========== - -* Menu: - -* Invoking ggrn:: - - -File: groff, Node: Invoking ggrn, Prev: ggrn, Up: ggrn - -6.4.1 Invoking `ggrn' ---------------------- - - -File: groff, Node: grap, Next: grefer, Prev: ggrn, Up: Preprocessors - -6.5 `grap' -========== - -A free implementation of `grap', written by Ted Faber, is available as -an extra package from the following address: - - `http://www.lunabase.org/~faber/Vault/software/grap/' - - -File: groff, Node: grefer, Next: gsoelim, Prev: grap, Up: Preprocessors - -6.6 `grefer' -============ - -* Menu: - -* Invoking grefer:: - - -File: groff, Node: Invoking grefer, Prev: grefer, Up: grefer - -6.6.1 Invoking `grefer' ------------------------ - - -File: groff, Node: gsoelim, Prev: grefer, Up: Preprocessors - -6.7 `gsoelim' -============= - -* Menu: - -* Invoking gsoelim:: - - -File: groff, Node: Invoking gsoelim, Prev: gsoelim, Up: gsoelim - -6.7.1 Invoking `gsoelim' ------------------------- - - -File: groff, Node: Output Devices, Next: File formats, Prev: Preprocessors, Up: Top - -7 Output Devices -**************** - -* Menu: - -* Special Characters:: -* grotty:: -* grops:: -* grodvi:: -* grolj4:: -* grolbp:: -* grohtml:: -* gxditview:: - - -File: groff, Node: Special Characters, Next: grotty, Prev: Output Devices, Up: Output Devices - -7.1 Special Characters -====================== - -*Note Font Files::. - - -File: groff, Node: grotty, Next: grops, Prev: Special Characters, Up: Output Devices - -7.2 `grotty' -============ - -* Menu: - -* Invoking grotty:: - - -File: groff, Node: Invoking grotty, Prev: grotty, Up: grotty - -7.2.1 Invoking `grotty' ------------------------ - - -File: groff, Node: grops, Next: grodvi, Prev: grotty, Up: Output Devices - -7.3 `grops' -=========== - -* Menu: - -* Invoking grops:: -* Embedding PostScript:: - - -File: groff, Node: Invoking grops, Next: Embedding PostScript, Prev: grops, Up: grops - -7.3.1 Invoking `grops' ----------------------- - - -File: groff, Node: Embedding PostScript, Prev: Invoking grops, Up: grops - -7.3.2 Embedding POSTSCRIPT --------------------------- - - -File: groff, Node: grodvi, Next: grolj4, Prev: grops, Up: Output Devices - -7.4 `grodvi' -============ - -* Menu: - -* Invoking grodvi:: - - -File: groff, Node: Invoking grodvi, Prev: grodvi, Up: grodvi - -7.4.1 Invoking `grodvi' ------------------------ - - -File: groff, Node: grolj4, Next: grolbp, Prev: grodvi, Up: Output Devices - -7.5 `grolj4' -============ - -* Menu: - -* Invoking grolj4:: - - -File: groff, Node: Invoking grolj4, Prev: grolj4, Up: grolj4 - -7.5.1 Invoking `grolj4' ------------------------ - - -File: groff, Node: grolbp, Next: grohtml, Prev: grolj4, Up: Output Devices - -7.6 `grolbp' -============ - -* Menu: - -* Invoking grolbp:: - - -File: groff, Node: Invoking grolbp, Prev: grolbp, Up: grolbp - -7.6.1 Invoking `grolbp' ------------------------ - - -File: groff, Node: grohtml, Next: gxditview, Prev: grolbp, Up: Output Devices - -7.7 `grohtml' -============= - -* Menu: - -* Invoking grohtml:: -* grohtml specific registers and strings:: - - -File: groff, Node: Invoking grohtml, Next: grohtml specific registers and strings, Prev: grohtml, Up: grohtml - -7.7.1 Invoking `grohtml' ------------------------- - - -File: groff, Node: grohtml specific registers and strings, Prev: Invoking grohtml, Up: grohtml - -7.7.2 `grohtml' specific registers and strings ----------------------------------------------- - - -- Register: \n[ps4html] - -- String: \*[www-image-template] - The registers `ps4html' and `www-image-template' are defined by - the `pre-grohtml' preprocessor. `pre-grohtml' reads in the - `troff' input, marks up the inline equations and passes the result - firstly to - - - troff -Tps -rps4html=1 -dwww-image-template=TEMPLATE - - and secondly to - - - troff -Thtml - - The PostScript device is used to create all the image files, and - the register `ps4html' enables the macro sets to ignore floating - keeps, footers, and headings. - - The register `www-image-template' is set to the user specified - template name or the default name. - - -File: groff, Node: gxditview, Prev: grohtml, Up: Output Devices - -7.8 `gxditview' -=============== - -* Menu: - -* Invoking gxditview:: - - -File: groff, Node: Invoking gxditview, Prev: gxditview, Up: gxditview - -7.8.1 Invoking `gxditview' --------------------------- - - -File: groff, Node: File formats, Next: Installation, Prev: Output Devices, Up: Top - -8 File formats -************** - -All files read and written by `gtroff' are text files. The following -two sections describe their format. - -* Menu: - -* gtroff Output:: -* Font Files:: - - -File: groff, Node: gtroff Output, Next: Font Files, Prev: File formats, Up: File formats - -8.1 `gtroff' Output -=================== - -This section describes the intermediate output format of GNU `troff'. -This output is produced by a run of `gtroff' before it is fed into a -device postprocessor program. - - As `groff' is a wrapper program around `gtroff' that automatically -calls a postprocessor, this output does not show up normally. This is -why it is called "intermediate". `groff' provides the option `-Z' to -inhibit postprocessing, such that the produced intermediate output is -sent to standard output just like calling `gtroff' manually. - - Here, the term "troff output" describes what is output by `gtroff', -while "intermediate output" refers to the language that is accepted by -the parser that prepares this output for the postprocessors. This -parser is smarter on whitespace and implements obsolete elements for -compatibility, otherwise both formats are the same.(1) (*note gtroff -Output-Footnote-1::) - - The main purpose of the intermediate output concept is to facilitate -the development of postprocessors by providing a common programming -interface for all devices. It has a language of its own that is -completely different from the `gtroff' language. While the `gtroff' -language is a high-level programming language for text processing, the -intermediate output language is a kind of low-level assembler language -by specifying all positions on the page for writing and drawing. - - The intermediate output produced by `gtroff' is fairly readable, -while output from AT&T `troff' is rather hard to understand because of -strange habits that are still supported, but not used any longer by -`gtroff'. - -* Menu: - -* Language Concepts:: -* Command Reference:: -* Intermediate Output Examples:: -* Output Language Compatibility:: - - -File: groff, Node: gtroff Output-Footnotes, Up: gtroff Output - - (1) The parser and postprocessor for intermediate output can be -found in the file -`GROFF-SOURCE-DIR/src/libs/libdriver/input.cpp'. - - -File: groff, Node: Language Concepts, Next: Command Reference, Prev: gtroff Output, Up: gtroff Output - -8.1.1 Language Concepts ------------------------ - -During the run of `gtroff', the input data is cracked down to the -information on what has to be printed at what position on the intended -device. So the language of the intermediate output format can be quite -small. Its only elements are commands with and without arguments. In -this section, the term "command" always refers to the intermediate -output language, and never to the `gtroff' language used for document -formatting. There are commands for positioning and text writing, for -drawing, and for device controlling. - -* Menu: - -* Separation:: -* Argument Units:: -* Document Parts:: - - -File: groff, Node: Separation, Next: Argument Units, Prev: Language Concepts, Up: Language Concepts - -8.1.1.1 Separation -.................. - -AT&T `troff' output has strange requirements on whitespace. The -`gtroff' output parser, however, is smart about whitespace by making it -maximally optional. The whitespace characters, i.e., the tab, space, -and newline characters, always have a syntactical meaning. They are -never printable because spacing within the output is always done by -positioning commands. - - Any sequence of space or tab characters is treated as a single -"syntactical space". It separates commands and arguments, but is only -required when there would occur a clashing between the command code and -the arguments without the space. Most often, this happens when -variable-length command names, arguments, argument lists, or command -clusters meet. Commands and arguments with a known, fixed length need -not be separated by syntactical space. - - A line break is a syntactical element, too. Every command argument -can be followed by whitespace, a comment, or a newline character. Thus -a "syntactical line break" is defined to consist of optional -syntactical space that is optionally followed by a comment, and a -newline character. - - The normal commands, those for positioning and text, consist of a -single letter taking a fixed number of arguments. For historical -reasons, the parser allows to stack such commands on the same line, but -fortunately, in `gtroff''s intermediate output, every command with at -least one argument is followed by a line break, thus providing -excellent readability. - - The other commands - those for drawing and device controlling - have -a more complicated structure; some recognize long command names, and -some take a variable number of arguments. So all `D' and `x' commands -were designed to request a syntactical line break after their last -argument. Only one command, `x X', has an argument that can stretch -over several lines; all other commands must have all of their arguments -on the same line as the command, i.e., the arguments may not be -splitted by a line break. - - Empty lines (these are lines containing only space and/or a -comment), can occur everywhere. They are just ignored. - - -File: groff, Node: Argument Units, Next: Document Parts, Prev: Separation, Up: Language Concepts - -8.1.1.2 Argument Units -...................... - -Some commands take integer arguments that are assumed to represent -values in a measurement unit, but the letter for the corresponding -scale indicator is not written with the output command arguments. Most -commands assume the scale indicator `u', the basic unit of the device, -some use `z', the scaled point unit of the device, while others, such -as the color commands, expect plain integers. - - Note that single characters can have the eighth bit set, as can the -names of fonts and special characters. The names of characters and -fonts can be of arbitrary length. A character that is to be printed -will always be in the current font. - - A string argument is always terminated by the next whitespace -character (space, tab, or newline); an embedded `#' character is -regarded as part of the argument, not as the beginning of a comment -command. An integer argument is already terminated by the next -non-digit character, which then is regarded as the first character of -the next argument or command. - - -File: groff, Node: Document Parts, Prev: Argument Units, Up: Language Concepts - -8.1.1.3 Document Parts -...................... - -A correct intermediate output document consists of two parts, the -"prologue" and the "body". - - The task of the prologue is to set the general device parameters -using three exactly specified commands. `gtroff''s prologue is -guaranteed to consist of the following three lines (in that order): - - - x T DEVICE - x res N H V - x init - -with the arguments set as outlined in *Note Device Control Commands::. -Note that the parser for the intermediate output format is able to -swallow additional whitespace and comments as well even in the prologue. - - The body is the main section for processing the document data. -Syntactically, it is a sequence of any commands different from the ones -used in the prologue. Processing is terminated as soon as the first -`x stop' command is encountered; the last line of any `gtroff' -intermediate output always contains such a command. - - Semantically, the body is page oriented. A new page is started by a -`p' command. Positioning, writing, and drawing commands are always -done within the current page, so they cannot occur before the first `p' -command. Absolute positioning (by the `H' and `V' commands) is done -relative to the current page; all other positioning is done relative to -the current location within this page. - - -File: groff, Node: Command Reference, Next: Intermediate Output Examples, Prev: Language Concepts, Up: gtroff Output - -8.1.2 Command Reference ------------------------ - -This section describes all intermediate output commands, both from AT&T -`troff' as well as the `gtroff' extensions. - -* Menu: - -* Comment Command:: -* Simple Commands:: -* Graphics Commands:: -* Device Control Commands:: -* Obsolete Command:: - - -File: groff, Node: Comment Command, Next: Simple Commands, Prev: Command Reference, Up: Command Reference - -8.1.2.1 Comment Command -....................... - -`#ANYTHING' - A comment. Ignore any characters from the `#' character up to the - next newline character. - - This command is the only possibility for commenting in the - intermediate output. Each comment can be preceded by arbitrary - syntactical space; every command can be terminated by a comment. - - -File: groff, Node: Simple Commands, Next: Graphics Commands, Prev: Comment Command, Up: Command Reference - -8.1.2.2 Simple Commands -....................... - -The commands in this subsection have a command code consisting of a -single character, taking a fixed number of arguments. Most of them are -commands for positioning and text writing. These commands are smart -about whitespace. Optionally, syntactical space can be inserted -before, after, and between the command letter and its arguments. All -of these commands are stackable, i.e., they can be preceded by other -simple commands or followed by arbitrary other commands on the same -line. A separating syntactical space is only necessary when two -integer arguments would clash or if the preceding argument ends with a -string argument. - -`C XXX' - Print a special character named XXX. The trailing syntactical - space or line break is necessary to allow glyph names of arbitrary - length. The glyph is printed at the current print position; the - glyph's size is read from the font file. The print position is - not changed. - -`c G' - Print glyph G at the current print position;(1) (*note Simple - Commands-Footnote-1::) the glyph's size is read from the font - file. The print position is not changed. - -`f N' - Set font to font number N (a non-negative integer). - -`H N' - Move right to the absolute vertical position N (a non-negative - integer in basic units `u' relative to left edge of current page. - -`h N' - Move N (a non-negative integer) basic units `u' horizontally to - the right. The original UNIX troff manual allows negative values - for N also, but `gtroff' doesn't use this. - -`m COLOR-SCHEME [COMPONENT ...]' - Set the color for text (glyphs), line drawing, and the outline of - graphic objects using different color schemes; the analoguous - command for the filling color of graphic objects is `DF'. The - color components are specified as integer arguments between 0 and - 65536. The number of color components and their meaning vary for - the different color schemes. These commands are generated by - `gtroff''s escape sequence `\m'. No position changing. These - commands are a `gtroff' extension. - - `mc CYAN MAGENTA YELLOW' - Set color using the CMY color scheme, having the 3 color - components CYAN, MAGENTA, and YELLOW. - - `md' - Set color to the default color value (black in most cases). - No component arguments. - - `mg GRAY' - Set color to the shade of gray given by the argument, an - integer between 0 (black) and 65536 (white). - - `mk CYAN MAGENTA YELLOW BLACK' - Set color using the CMYK color scheme, having the 4 color - components CYAN, MAGENTA, YELLOW, and BLACK. - - `mr RED GREEN BLUE' - Set color using the RGB color scheme, having the 3 color - components RED, GREEN, and BLUE. - -`N N' - Print glyph with index N (a non-negative integer) of the current - font. This command is a `gtroff' extension. - -`n B A' - Inform the device about a line break, but no positioning is done by - this command. In AT&T `troff', the integer arguments B and A - informed about the space before and after the current line to make - the intermediate output more human readable without performing any - action. In `groff', they are just ignored, but they must be - provided for compatibility reasons. - -`p N' - Begin a new page in the outprint. The page number is set to N. - This page is completely independent of pages formerly processed - even if those have the same page number. The vertical position on - the outprint is automatically set to 0. All positioning, writing, - and drawing is always done relative to a page, so a `p' command - must be issued before any of these commands. - -`s N' - Set point size to N scaled points (this is unit `z'). AT&T - `troff' used the unit points (`p') instead. *Note Output Language - Compatibility::. - -`t XXX' -`t XXX DUMMY-ARG' - Print a word, i.e., a sequence of characters XXX representing - output glyphs which names are single characters, terminated by a - space character or a line break; an optional second integer - argument is ignored (this allows the formatter to generate an even - number of arguments). The first glyph should be printed at the - current position, the current horizontal position should then be - increased by the width of the first glyph, and so on for each - glyph. The widths of the glyphs are read from the font file, - scaled for the current point size, and rounded to a multiple of - the horizontal resolution. Special characters cannot be printed - using this command (use the `C' command for special characters). - This command is a `gtroff' extension; it is only used for devices - whose `DESC' file contains the `tcommand' keyword (*note DESC File - Format::). - -`u N XXX' - Print word with track kerning. This is the same as the `t' - command except that after printing each glyph, the current - horizontal position is increased by the sum of the width of that - glyph and N (an integer in basic units `u'). This command is a - `gtroff' extension; it is only used for devices whose `DESC' file - contains the `tcommand' keyword (*note DESC File Format::). - -`V N' - Move down to the absolute vertical position N (a non-negative - integer in basic units `u') relative to upper edge of current page. - -`v N' - Move N basic units `u' down (N is a non-negative integer). The - original UNIX troff manual allows negative values for N also, but - `gtroff' doesn't use this. - -`w' - Informs about a paddable white space to increase readability. The - spacing itself must be performed explicitly by a move command. - - -File: groff, Node: Simple Commands-Footnotes, Up: Simple Commands - - (1) `c' is actually a misnomer since it outputs a glyph. - - -File: groff, Node: Graphics Commands, Next: Device Control Commands, Prev: Simple Commands, Up: Command Reference - -8.1.2.3 Graphics Commands -......................... - -Each graphics or drawing command in the intermediate output starts with -the letter `D', followed by one or two characters that specify a -subcommand; this is followed by a fixed or variable number of integer -arguments that are separated by a single space character. A `D' -command may not be followed by another command on the same line (apart -from a comment), so each `D' command is terminated by a syntactical -line break. - - `gtroff' output follows the classical spacing rules (no space -between command and subcommand, all arguments are preceded by a single -space character), but the parser allows optional space between the -command letters and makes the space before the first argument optional. -As usual, each space can be any sequence of tab and space characters. - - Some graphics commands can take a variable number of arguments. In -this case, they are integers representing a size measured in basic -units `u'. The arguments called H1, H2, ..., HN stand for horizontal -distances where positive means right, negative left. The arguments -called V1, V2, ..., VN stand for vertical distances where positive -means down, negative up. All these distances are offsets relative to -the current location. - - Each graphics command directly corresponds to a similar `gtroff' -`\D' escape sequence. *Note Drawing Requests::. - - Unknown `D' commands are assumed to be device-specific. Its -arguments are parsed as strings; the whole information is then sent to -the postprocessor. - - In the following command reference, the syntax element means a syntactical line break as defined above. - -`D~ H1 V1 H2 V2 ... HN VN' - Draw B-spline from current position to offset (H1,V1), then to - offset (H2,V2), if given, etc. up to (HN,VN). This command takes - a variable number of argument pairs; the current position is moved - to the terminal point of the drawn curve. - -`Da H1 V1 H2 V2' - Draw arc from current position to (H1,V1)+(H2,V2) with center at - (H1,V1); then move the current position to the final point of the - arc. - -`DC D' -`DC D DUMMY-ARG' - Draw a solid circle using the current fill color with diameter D - (integer in basic units `u') with leftmost point at the current - position; then move the current position to the rightmost point of - the circle. An optional second integer argument is ignored (this - allows the formatter to generate an even number of arguments). - This command is a `gtroff' extension. - -`Dc D' - Draw circle line with diameter D (integer in basic units `u') with - leftmost point at the current position; then move the current - position to the rightmost point of the circle. - -`DE H V' - Draw a solid ellipse in the current fill color with a horizontal - diameter of H and a vertical diameter of V (both integers in basic - units `u') with the leftmost point at the current position; then - move to the rightmost point of the ellipse. This command is a - `gtroff' extension. - -`De H V' - Draw an outlined ellipse with a horizontal diameter of H and a - vertical diameter of V (both integers in basic units `u') with the - leftmost point at current position; then move to the rightmost - point of the ellipse. - -`DF COLOR-SCHEME [COMPONENT ...]' - Set fill color for solid drawing objects using different color - schemes; the analoguous command for setting the color of text, line - graphics, and the outline of graphic objects is `m'. The color - components are specified as integer arguments between 0 and 65536. - The number of color components and their meaning vary for the - different color schemes. These commands are generated by - `gtroff''s escape sequences `\D'F ...'' and `\M' (with no other - corresponding graphics commands). No position changing. This - command is a `gtroff' extension. - - `DFc CYAN MAGENTA YELLOW' - Set fill color for solid drawing objects using the CMY color - scheme, having the 3 color components CYAN, MAGENTA, and - YELLOW. - - `DFd' - Set fill color for solid drawing objects to the default fill - color value (black in most cases). No component arguments. - - `DFg GRAY' - Set fill color for solid drawing objects to the shade of gray - given by the argument, an integer between 0 (black) and 65536 - (white). - - `DFk CYAN MAGENTA YELLOW BLACK' - Set fill color for solid drawing objects using the CMYK color - scheme, having the 4 color components CYAN, MAGENTA, YELLOW, - and BLACK. - - `DFr RED GREEN BLUE' - Set fill color for solid drawing objects using the RGB color - scheme, having the 3 color components RED, GREEN, and BLUE. - -`Df N' - The argument N must be an integer in the range -32767 to 32767. - - 0 <= N <= 1000 - Set the color for filling solid drawing objects to a shade of - gray, where 0 corresponds to solid white, 1000 (the default) - to solid black, and values in between to intermediate shades - of gray; this is obsoleted by command `DFg'. - - N < 0 or N > 1000 - Set the filling color to the color that is currently being - used for the text and the outline, see command `m'. For - example, the command sequence - - - mg 0 0 65536 - Df -1 - - sets all colors to blue. - - No position changing. This command is a `gtroff' extension. - -`Dl H V' - Draw line from current position to offset (H,V) (integers in basic - units `u'); then set current position to the end of the drawn line. - -`Dp H1 V1 H2 V2 ... HN VN' - Draw a polygon line from current position to offset (H1,V1), from - there to offset (H2,V2), etc. up to offset (HN,VN), and from there - back to the starting position. For historical reasons, the - position is changed by adding the sum of all arguments with odd - index to the actual horizontal position and the even ones to the - vertical position. Although this doesn't make sense it is kept - for compatibility. This command is a `gtroff' extension. - -`Dp H1 V1 H2 V2 ... HN VN' - Draw a solid polygon in the current fill color rather than an - outlined polygon, using the same arguments and positioning as the - corresponding `Dp' command. This command is a `gtroff' extension. - -`Dt N' - Set the current line thickness to N (an integer in basic units - `u') if N>0; if N=0 select the smallest available line thickness; - if N<0 set the line thickness proportional to the point size (this - is the default before the first `Dt' command was specified). For - historical reasons, the horizontal position is changed by adding - the argument to the actual horizontal position, while the vertical - position is not changed. Although this doesn't make sense it is - kept for compatibility. This command is a `gtroff' extension. - - -File: groff, Node: Device Control Commands, Next: Obsolete Command, Prev: Graphics Commands, Up: Command Reference - -8.1.2.4 Device Control Commands -............................... - -Each device control command starts with the letter `x', followed by a -space character (optional or arbitrary space or tab in `gtroff') and a -subcommand letter or word; each argument (if any) must be preceded by a -syntactical space. All `x' commands are terminated by a syntactical -line break; no device control command can be followed by another -command on the same line (except a comment). - - The subcommand is basically a single letter, but to increase -readability, it can be written as a word, i.e., an arbitrary sequence -of characters terminated by the next tab, space, or newline character. -All characters of the subcommand word but the first are simply ignored. -For example, `gtroff' outputs the initialization command `x i' as -`x init' and the resolution command `x r' as `x res'. - - In the following, the syntax element means a -syntactical line break (*note Separation::). - -`xF NAME' - The `F' stands for FILENAME. - - Use NAME as the intended name for the current file in error - reports. This is useful for remembering the original file name - when `gtroff' uses an internal piping mechanism. The input file is - not changed by this command. This command is a `gtroff' extension. - -`xf N S' - The `f' stands for FONT. - - Mount font position N (a non-negative integer) with font named S - (a text word). *Note Font Positions::. - -`xH N' - The `H' stands for HEIGHT. - - Set glyph height to N (a positive integer in scaled points `z'). - AT&T `troff' uses the unit points (`p') instead. *Note Output - Language Compatibility::. - -`xi' - The `i' stands for INIT. - - Initialize device. This is the third command of the prologue. - -`xp' - The `p' stands for PAUSE. - - Parsed but ignored. The original UNIX troff manual writes - - pause device, can be restarted - -`xr N H V' - The `r' stands for RESOLUTION. - - Resolution is N, while H is the minimal horizontal motion, and V - the minimal vertical motion possible with this device; all - arguments are positive integers in basic units `u' per inch. This - is the second command of the prologue. - -`xS N' - The `S' stands for SLANT. - - Set slant to N (an integer in basic units `u'). - -`xs' - The `s' stands for STOP. - - Terminates the processing of the current file; issued as the last - command of any intermediate troff output. - -`xt' - The `t' stands for TRAILER. - - Generate trailer information, if any. In GTROFF, this is actually - just ignored. - -`xT XXX' - The `T' stands for TYPESETTER. - - Set name of device to word XXX, a sequence of characters ended by - the next white space character. The possible device names coincide - with those from the `groff' `-T' option. This is the first - command of the prologue. - -`xu N' - The `u' stands for UNDERLINE. - - Configure underlining of spaces. If N is 1, start underlining of - spaces; if N is 0, stop underlining of spaces. This is needed for - the `cu' request in nroff mode and is ignored otherwise. This - command is a `gtroff' extension. - -`xX ANYTHING' - The `x' stands for X-ESCAPE. - - Send string ANYTHING uninterpreted to the device. If the line - following this command starts with a `+' character this line is - interpreted as a continuation line in the following sense. The - `+' is ignored, but a newline character is sent instead to the - device, the rest of the line is sent uninterpreted. The same - applies to all following lines until the first character of a line - is not a `+' character. This command is generated by the `gtroff' - escape sequence `\X'. The line-continuing feature is a `gtroff' - extension. - - -File: groff, Node: Obsolete Command, Prev: Device Control Commands, Up: Command Reference - -8.1.2.5 Obsolete Command -........................ - -In AT&T `troff' output, the writing of a single glyph is mostly done by -a very strange command that combines a horizontal move and a single -character giving the glyph name. It doesn't have a command code, but -is represented by a 3-character argument consisting of exactly 2 digits -and a character. - -DDG - Move right DD (exactly two decimal digits) basic units `u', then - print glyph G (represented as a single character). - - In `gtroff', arbitrary syntactical space around and within this - command is allowed to be added. Only when a preceding command on - the same line ends with an argument of variable length a - separating space is obligatory. In AT&T `troff', large clusters - of these and other commands are used, mostly without spaces; this - made such output almost unreadable. - - For modern high-resolution devices, this command does not make sense -because the width of the glyphs can become much larger than two decimal -digits. In `gtroff', this is only used for the devices `X75', -`X75-12', `X100', and `X100-12'. For other devices, the commands `t' -and `u' provide a better functionality. - - -File: groff, Node: Intermediate Output Examples, Next: Output Language Compatibility, Prev: Command Reference, Up: gtroff Output - -8.1.3 Intermediate Output Examples ----------------------------------- - -This section presents the intermediate output generated from the same -input for three different devices. The input is the sentence `hell -world' fed into `gtroff' on the command line. - -High-resolution device `ps' - This is the standard output of `gtroff' if no `-T' option is given. - - shell> echo "hell world" | groff -Z -T ps - - x T ps - x res 72000 1 1 - x init - p1 - x font 5 TR - f5 - s10000 - V12000 - H72000 - thell - wh2500 - tw - H96620 - torld - n12000 0 - x trailer - V792000 - x stop - - This output can be fed into `grops' to get its representation as a - PostScript file. - -Low-resolution device `latin1' - This is similar to the high-resolution device except that the - positioning is done at a minor scale. Some comments (lines - starting with `#') were added for clarification; they were not - generated by the formatter. - - shell> echo "hell world" | groff -Z -T latin1 - - # prologue - x T latin1 - x res 240 24 40 - x init - # begin a new page - p1 - # font setup - x font 1 R - f1 - s10 - # initial positioning on the page - V40 - H0 - # write text `hell' - thell - # inform about space, and issue a horizontal jump - wh24 - # write text `world' - tworld - # announce line break, but do nothing because ... - n40 0 - # ... the end of the document has been reached - x trailer - V2640 - x stop - - This output can be fed into `grotty' to get a formatted text - document. - -AT&T `troff' output - Since a computer monitor has a very low resolution compared to - modern printers the intermediate output for the X Window devices - can use the jump-and-write command with its 2-digit displacements. - - shell> echo "hell world" | groff -Z -T X100 - - x T X100 - x res 100 1 1 - x init - p1 - x font 5 TR - f5 - s10 - V16 - H100 - # write text with jump-and-write commands - ch07e07l03lw06w11o07r05l03dh7 - n16 0 - x trailer - V1100 - x stop - - This output can be fed into `xditview' or `gxditview' for - displaying in X. - - Due to the obsolete jump-and-write command, the text clusters in - the AT&T `troff' output are almost unreadable. - - -File: groff, Node: Output Language Compatibility, Prev: Intermediate Output Examples, Up: gtroff Output - -8.1.4 Output Language Compatibility ------------------------------------ - -The intermediate output language of AT&T `troff' was first documented -in the UNIX troff manual, with later additions documented in `A -Typesetter-indenpendent TROFF', written by Brian Kernighan. - - The `gtroff' intermediate output format is compatible with this -specification except for the following features. - - * The classical quasi device independence is not yet implemented. - - * The old hardware was very different from what we use today. So the - `groff' devices are also fundamentally different from the ones in - AT&T `troff'. For example, the AT&T PostScript device is called - `post' and has a resolution of only 720 units per inch, suitable - for printers 20 years ago, while `groff''s `ps' device has a - resolution of 72000 units per inch. Maybe, by implementing some - rescaling mechanism similar to the classical quasi device - independence, `groff' could emulate AT&T's `post' device. - - * The B-spline command `D~' is correctly handled by the intermediate - output parser, but the drawing routines aren't implemented in some - of the postprocessor programs. - - * The argument of the commands `s' and `x H' has the implicit unit - scaled point `z' in `gtroff', while AT&T `troff' has point (`p'). - This isn't an incompatibility but a compatible extension, for both - units coincide for all devices without a `sizescale' parameter in - the `DESC' file, including all postprocessors from AT&T and - `groff''s text devices. The few `groff' devices with a - `sizescale' parameter either do not exist for AT&T `troff', have a - different name, or seem to have a different resolution. So - conflicts are very unlikely. - - * The position changing after the commands `Dp', `DP', and `Dt' is - illogical, but as old versions of `gtroff' used this feature it is - kept for compatibility reasons. - - - -File: groff, Node: Font Files, Prev: gtroff Output, Up: File formats - -8.2 Font Files -============== - -The `gtroff' font format is roughly a superset of the `ditroff' font -format (as used in later versions of AT&T `troff' and its descendants). -Unlike the `ditroff' font format, there is no associated binary -format; all files are text files.(1) (*note Font Files-Footnote-1::) -The font files for device NAME are stored in a directory `devNAME'. -There are two types of file: a device description file called `DESC' -and for each font F a font file called `F'. - -* Menu: - -* DESC File Format:: -* Font File Format:: - - -File: groff, Node: Font Files-Footnotes, Up: Font Files - - (1) Plan 9 `troff' has also abandoned the binary format. - - -File: groff, Node: DESC File Format, Next: Font File Format, Prev: Font Files, Up: Font Files - -8.2.1 `DESC' File Format ------------------------- - -The `DESC' file can contain the following types of line. Except for -the `charset' keyword which must comes last (if at all), the order of -the lines is not important. - -`res N' - There are N machine units per inch. - -`hor N' - The horizontal resolution is N machine units. All horizontal - quantities are rounded to be multiples of this value. - -`vert N' - The vertical resolution is N machine units. All vertical - quantities are rounded to be multiples of this value. - -`sizescale N' - The scale factor for point sizes. By default this has a value - of 1. One scaled point is equal to one point/N. The arguments to - the `unitwidth' and `sizes' commands are given in scaled points. - *Note Fractional Type Sizes::, for more information. - -`unitwidth N' - Quantities in the font files are given in machine units for fonts - whose point size is N scaled points. - -`prepro PROGRAM' - Call PROGRAM as a preprocessor. Currently, this keyword is used - by `groff' with option `-Thtml' only. - -`postpro PROGRAM' - Call PROGRAM as a postprocessor. For example, the line - - - postpro grodvi - - in the file `devdvi/DESC' makes `groff' call `grodvi' if option - `-Tdvi' is given (and `-Z' isn't used). - -`tcommand' - This means that the postprocessor can handle the `t' and `u' - intermediate output commands. - -`sizes S1 S2 ... SN 0' - This means that the device has fonts at S1, S2, ... SN scaled - points. The list of sizes must be terminated by 0 (this is digit - zero). Each SI can also be a range of sizes M-N. The list can - extend over more than one line. - -`styles S1 S2 ... SM' - The first M font positions are associated with styles S1 ... SM. - -`fonts N F1 F2 F3 ... FN' - Fonts F1 ... FN are mounted in the font positions M+1, ..., M+N - where M is the number of styles. This command may extend over - more than one line. A font name of 0 means no font is mounted on - the corresponding font position. - -`family FAM' - The default font family is FAM. - -`use_charnames_in_special' - This command indicates that `gtroff' should encode special - characters inside special commands. Currently, this is only used - by the HTML output device. *Note Postprocessor Access::. - -`papersize STRING ...' - Select a paper size. Valid values for STRING are the ISO paper - types `A0'-`A7', `B0'-`B7', `C0'-`C7', `D0'-`D7', `DL', and the US - paper types `letter', `legal', `tabloid', `ledger', `statement', - `executive', `com10', and `monarch'. Case is not significant for - STRING if it holds predefined paper types. Alternatively, STRING - can be a file name (e.g. `/etc/papersize'); if the file can be - opened, `groff' reads the first line and tests for the above paper - sizes. Finally, STRING can be a custom paper size in the format - `LENGTH,WIDTH' (no spaces before and after the comma). Both - LENGTH and WIDTH must have a unit appended; valid values are `i' - for inches, `C' for centimeters, `p' for points, and `P' for - picas. Example: `12c,235p'. An argument which starts with a - digit is always treated as a custom paper format. `papersize' - sets both the vertical and horizontal dimension of the output - medium. - - More than one argument can be specified; `groff' scans from left to - right and uses the first valid paper specification. - -`pass_filenames' - Tell `gtroff' to emit the name of the source file currently being - processed. This is achieved by the intermediate output command - `F'. Currently, this is only used by the HTML output device. - -`print PROGRAM' - Use PROGRAM as a spooler program for printing. If omitted, the - `-l' and `-L' options of `groff' are ignored. - -`charset' - This line and everything following in the file are ignored. It is - allowed for the sake of backwards compatibility. - - The `res', `unitwidth', `fonts', and `sizes' lines are mandatory. -Other commands are ignored by `gtroff' but may be used by -postprocessors to store arbitrary information about the device in the -`DESC' file. - - Here a list of obsolete keywords which are recognized by `groff' but -completely ignored: `spare1', `spare2', `biggestfont'. - - -File: groff, Node: Font File Format, Prev: DESC File Format, Up: Font Files - -8.2.2 Font File Format ----------------------- - -A "font file", also (and probably better) called a "font description -file", has two sections. The first section is a sequence of lines each -containing a sequence of blank delimited words; the first word in the -line is a key, and subsequent words give a value for that key. - -`name F' - The name of the font is F. - -`spacewidth N' - The normal width of a space is N. - -`slant N' - The glyphs of the font have a slant of N degrees. (Positive means - forward.) - -`ligatures LIG1 LIG2 ... LIGN [0]' - Glyphs LIG1, LIG2, ..., LIGN are ligatures; possible ligatures are - `ff', `fi', `fl', `ffi' and `ffl'. For backwards compatibility, - the list of ligatures may be terminated with a 0. The list of - ligatures may not extend over more than one line. - -`special' - The font is "special"; this means that when a glyph is requested - that is not present in the current font, it is searched for in any - special fonts that are mounted. - - Other commands are ignored by `gtroff' but may be used by -postprocessors to store arbitrary information about the font in the font -file. - - The first section can contain comments which start with the `#' -character and extend to the end of a line. - - The second section contains one or two subsections. It must contain -a `charset' subsection and it may also contain a `kernpairs' -subsection. These subsections can appear in any order. Each -subsection starts with a word on a line by itself. - - The word `charset' starts the character set subsection.(1) (*note -Font File Format-Footnote-1::) The `charset' line is followed by a -sequence of lines. Each line gives information for one glyph. A line -comprises a number of fields separated by blanks or tabs. The format is - - NAME METRICS TYPE CODE [ENTITY-NAME] [`--' COMMENT] - -NAME identifies the glyph name(2) (*note Font File Format-Footnote-2::): -If NAME is a single character C then it corresponds to the `gtroff' -input character C; if it is of the form `\C' where C is a single -character, then it corresponds to the special character `\[C]'; -otherwise it corresponds to the special character `\[NAME]'. If it is -exactly two characters XX it can be entered as `\(XX'. Note that -single-letter special characters can't be accessed as `\C'; the only -exception is `\-' which is identical to `\[-]'. - - `gtroff' supports 8-bit input characters; however some utilities -have difficulties with eight-bit characters. For this reason, there is -a convention that the entity name `charN' is equivalent to the single -input character whose code is N. For example, `char163' would be -equivalent to the character with code 163 which is the pounds sterling -sign in the ISO Latin-1 character set. You shouldn't use `charN' -entities in font description files since they are related to input, not -output. Otherwise, you get hard-coded connections between input and -output encoding which prevents use of different (input) character sets. - - The name `---' is special and indicates that the glyph is unnamed; -such glyphs can only be used by means of the `\N' escape sequence in -`gtroff'. - - The TYPE field gives the glyph type: - -`1' - the glyph has a descender, for example, `p'; - -`2' - the glyph has an ascender, for example, `b'; - -`3' - the glyph has both an ascender and a descender, for example, `('. - - The CODE field gives the code which the postprocessor uses to print -the glyph. The glyph can also be input to `gtroff' using this code by -means of the `\N' escape sequence. CODE can be any integer. If it -starts with `0' it is interpreted as octal; if it starts with `0x' or -`0X' it is interpreted as hexadecimal. Note, however, that the `\N' -escape sequence only accepts a decimal integer. - - The ENTITY-NAME field gives an ASCII string identifying the glyph -which the postprocessor uses to print the `gtroff' glyph NAME. This -field is optional and has been introduced so that the HTML device -driver can encode its character set. For example, the glyph `\[Po]' is -represented as `£' in HTML 4.0. - - Anything on the line after the ENTITY-NAME field resp. after `--' -will be ignored. - - The METRICS field has the form: - - WIDTH[`,'HEIGHT[`,'DEPTH[`,'ITALIC-CORRECTION - [`,'LEFT-ITALIC-CORRECTION[`,'SUBSCRIPT-CORRECTION]]]]] - -There must not be any spaces between these subfields (it has been split -here into two lines for better legibility only). Missing subfields are -assumed to be 0. The subfields are all decimal integers. Since there -is no associated binary format, these values are not required to fit -into a variable of type `char' as they are in `ditroff'. The WIDTH -subfield gives the width of the glyph. The HEIGHT subfield gives the -height of the glyph (upwards is positive); if a glyph does not extend -above the baseline, it should be given a zero height, rather than a -negative height. The DEPTH subfield gives the depth of the glyph, that -is, the distance from the baseline to the lowest point below the -baseline to which the glyph extends (downwards is positive); if a glyph -does not extend below the baseline, it should be given a zero depth, -rather than a negative depth. The ITALIC-CORRECTION subfield gives the -amount of space that should be added after the glyph when it is -immediately to be followed by a glyph from a roman font. The -LEFT-ITALIC-CORRECTION subfield gives the amount of space that should -be added before the glyph when it is immediately to be preceded by a -glyph from a roman font. The SUBSCRIPT-CORRECTION gives the amount of -space that should be added after a glyph before adding a subscript. -This should be less than the italic correction. - - A line in the `charset' section can also have the format - - - NAME " - -This indicates that NAME is just another name for the glyph mentioned -in the preceding line. - - The word `kernpairs' starts the kernpairs section. This contains a -sequence of lines of the form: - - - C1 C2 N - -This means that when glyph C1 appears next to glyph C2 the space -between them should be increased by N. Most entries in the kernpairs -section have a negative value for N. - - -File: groff, Node: Font File Format-Footnotes, Up: Font File Format - - (1) This keyword is misnamed since it starts a list of ordered -glyphs, not characters. - - (2) The distinction between input, characters, and output, glyphs, -is not clearly separated in the terminology of `groff'; for example, -the `char' request should be called `glyph' since it defines an output -entity. - - -File: groff, Node: Installation, Next: Copying This Manual, Prev: File formats, Up: Top - -9 Installation -************** - - -File: groff, Node: Copying This Manual, Next: Request Index, Prev: Installation, Up: Top - -Appendix A Copying This Manual -****************************** - -* Menu: - -* GNU Free Documentation License:: License for copying this manual. - - -File: groff, Node: GNU Free Documentation License, Up: Copying This Manual - -A.1 GNU Free Documentation License -================================== - - Version 1.2, November 2002 - - Copyright (C) 2000,2001,2002 Free Software Foundation, Inc. - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - 0. PREAMBLE - - The purpose of this License is to make a manual, textbook, or other - functional and useful document "free" in the sense of freedom: to - assure everyone the effective freedom to copy and redistribute it, - with or without modifying it, either commercially or - noncommercially. Secondarily, this License preserves for the - author and publisher a way to get credit for their work, while not - being considered responsible for modifications made by others. - - This License is a kind of "copyleft", which means that derivative - works of the document must themselves be free in the same sense. - It complements the GNU General Public License, which is a copyleft - license designed for free software. - - We have designed this License in order to use it for manuals for - free software, because free software needs free documentation: a - free program should come with manuals providing the same freedoms - that the software does. But this License is not limited to - software manuals; it can be used for any textual work, regardless - of subject matter or whether it is published as a printed book. - We recommend this License principally for works whose purpose is - instruction or reference. - - 1. APPLICABILITY AND DEFINITIONS - - This License applies to any manual or other work, in any medium, - that contains a notice placed by the copyright holder saying it - can be distributed under the terms of this License. Such a notice - grants a world-wide, royalty-free license, unlimited in duration, - to use that work under the conditions stated herein. The - "Document", below, refers to any such manual or work. Any member - of the public is a licensee, and is addressed as "you". You - accept the license if you copy, modify or distribute the work in a - way requiring permission under copyright law. - - A "Modified Version" of the Document means any work containing the - Document or a portion of it, either copied verbatim, or with - modifications and/or translated into another language. - - A "Secondary Section" is a named appendix or a front-matter section - of the Document that deals exclusively with the relationship of the - publishers or authors of the Document to the Document's overall - subject (or to related matters) and contains nothing that could - fall directly within that overall subject. (Thus, if the Document - is in part a textbook of mathematics, a Secondary Section may not - explain any mathematics.) The relationship could be a matter of - historical connection with the subject or with related matters, or - of legal, commercial, philosophical, ethical or political position - regarding them. - - The "Invariant Sections" are certain Secondary Sections whose - titles are designated, as being those of Invariant Sections, in - the notice that says that the Document is released under this - License. If a section does not fit the above definition of - Secondary then it is not allowed to be designated as Invariant. - The Document may contain zero Invariant Sections. If the Document - does not identify any Invariant Sections then there are none. - - The "Cover Texts" are certain short passages of text that are - listed, as Front-Cover Texts or Back-Cover Texts, in the notice - that says that the Document is released under this License. A - Front-Cover Text may be at most 5 words, and a Back-Cover Text may - be at most 25 words. - - A "Transparent" copy of the Document means a machine-readable copy, - represented in a format whose specification is available to the - general public, that is suitable for revising the document - straightforwardly with generic text editors or (for images - composed of pixels) generic paint programs or (for drawings) some - widely available drawing editor, and that is suitable for input to - text formatters or for automatic translation to a variety of - formats suitable for input to text formatters. A copy made in an - otherwise Transparent file format whose markup, or absence of - markup, has been arranged to thwart or discourage subsequent - modification by readers is not Transparent. An image format is - not Transparent if used for any substantial amount of text. A - copy that is not "Transparent" is called "Opaque". - - Examples of suitable formats for Transparent copies include plain - ASCII without markup, Texinfo input format, LaTeX input format, - SGML or XML using a publicly available DTD, and - standard-conforming simple HTML, PostScript or PDF designed for - human modification. Examples of transparent image formats include - PNG, XCF and JPG. Opaque formats include proprietary formats that - can be read and edited only by proprietary word processors, SGML or - XML for which the DTD and/or processing tools are not generally - available, and the machine-generated HTML, PostScript or PDF - produced by some word processors for output purposes only. - - The "Title Page" means, for a printed book, the title page itself, - plus such following pages as are needed to hold, legibly, the - material this License requires to appear in the title page. For - works in formats which do not have any title page as such, "Title - Page" means the text near the most prominent appearance of the - work's title, preceding the beginning of the body of the text. - - A section "Entitled XYZ" means a named subunit of the Document - whose title either is precisely XYZ or contains XYZ in parentheses - following text that translates XYZ in another language. (Here XYZ - stands for a specific section name mentioned below, such as - "Acknowledgements", "Dedications", "Endorsements", or "History".) - To "Preserve the Title" of such a section when you modify the - Document means that it remains a section "Entitled XYZ" according - to this definition. - - The Document may include Warranty Disclaimers next to the notice - which states that this License applies to the Document. These - Warranty Disclaimers are considered to be included by reference in - this License, but only as regards disclaiming warranties: any other - implication that these Warranty Disclaimers may have is void and - has no effect on the meaning of this License. - - 2. VERBATIM COPYING - - You may copy and distribute the Document in any medium, either - commercially or noncommercially, provided that this License, the - copyright notices, and the license notice saying this License - applies to the Document are reproduced in all copies, and that you - add no other conditions whatsoever to those of this License. You - may not use technical measures to obstruct or control the reading - or further copying of the copies you make or distribute. However, - you may accept compensation in exchange for copies. If you - distribute a large enough number of copies you must also follow - the conditions in section 3. - - You may also lend copies, under the same conditions stated above, - and you may publicly display copies. - - 3. COPYING IN QUANTITY - - If you publish printed copies (or copies in media that commonly - have printed covers) of the Document, numbering more than 100, and - the Document's license notice requires Cover Texts, you must - enclose the copies in covers that carry, clearly and legibly, all - these Cover Texts: Front-Cover Texts on the front cover, and - Back-Cover Texts on the back cover. Both covers must also clearly - and legibly identify you as the publisher of these copies. The - front cover must present the full title with all words of the - title equally prominent and visible. You may add other material - on the covers in addition. Copying with changes limited to the - covers, as long as they preserve the title of the Document and - satisfy these conditions, can be treated as verbatim copying in - other respects. - - If the required texts for either cover are too voluminous to fit - legibly, you should put the first ones listed (as many as fit - reasonably) on the actual cover, and continue the rest onto - adjacent pages. - - If you publish or distribute Opaque copies of the Document - numbering more than 100, you must either include a - machine-readable Transparent copy along with each Opaque copy, or - state in or with each Opaque copy a computer-network location from - which the general network-using public has access to download - using public-standard network protocols a complete Transparent - copy of the Document, free of added material. If you use the - latter option, you must take reasonably prudent steps, when you - begin distribution of Opaque copies in quantity, to ensure that - this Transparent copy will remain thus accessible at the stated - location until at least one year after the last time you - distribute an Opaque copy (directly or through your agents or - retailers) of that edition to the public. - - It is requested, but not required, that you contact the authors of - the Document well before redistributing any large number of - copies, to give them a chance to provide you with an updated - version of the Document. - - 4. MODIFICATIONS - - You may copy and distribute a Modified Version of the Document - under the conditions of sections 2 and 3 above, provided that you - release the Modified Version under precisely this License, with - the Modified Version filling the role of the Document, thus - licensing distribution and modification of the Modified Version to - whoever possesses a copy of it. In addition, you must do these - things in the Modified Version: - - A. Use in the Title Page (and on the covers, if any) a title - distinct from that of the Document, and from those of - previous versions (which should, if there were any, be listed - in the History section of the Document). You may use the - same title as a previous version if the original publisher of - that version gives permission. - - B. List on the Title Page, as authors, one or more persons or - entities responsible for authorship of the modifications in - the Modified Version, together with at least five of the - principal authors of the Document (all of its principal - authors, if it has fewer than five), unless they release you - from this requirement. - - C. State on the Title page the name of the publisher of the - Modified Version, as the publisher. - - D. Preserve all the copyright notices of the Document. - - E. Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. - - F. Include, immediately after the copyright notices, a license - notice giving the public permission to use the Modified - Version under the terms of this License, in the form shown in - the Addendum below. - - G. Preserve in that license notice the full lists of Invariant - Sections and required Cover Texts given in the Document's - license notice. - - H. Include an unaltered copy of this License. - - I. Preserve the section Entitled "History", Preserve its Title, - and add to it an item stating at least the title, year, new - authors, and publisher of the Modified Version as given on - the Title Page. If there is no section Entitled "History" in - the Document, create one stating the title, year, authors, - and publisher of the Document as given on its Title Page, - then add an item describing the Modified Version as stated in - the previous sentence. - - J. Preserve the network location, if any, given in the Document - for public access to a Transparent copy of the Document, and - likewise the network locations given in the Document for - previous versions it was based on. These may be placed in - the "History" section. You may omit a network location for a - work that was published at least four years before the - Document itself, or if the original publisher of the version - it refers to gives permission. - - K. For any section Entitled "Acknowledgements" or "Dedications", - Preserve the Title of the section, and preserve in the - section all the substance and tone of each of the contributor - acknowledgements and/or dedications given therein. - - L. Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section - titles. - - M. Delete any section Entitled "Endorsements". Such a section - may not be included in the Modified Version. - - N. Do not retitle any existing section to be Entitled - "Endorsements" or to conflict in title with any Invariant - Section. - - O. Preserve any Warranty Disclaimers. - - If the Modified Version includes new front-matter sections or - appendices that qualify as Secondary Sections and contain no - material copied from the Document, you may at your option - designate some or all of these sections as invariant. To do this, - add their titles to the list of Invariant Sections in the Modified - Version's license notice. These titles must be distinct from any - other section titles. - - You may add a section Entitled "Endorsements", provided it contains - nothing but endorsements of your Modified Version by various - parties--for example, statements of peer review or that the text - has been approved by an organization as the authoritative - definition of a standard. - - You may add a passage of up to five words as a Front-Cover Text, - and a passage of up to 25 words as a Back-Cover Text, to the end - of the list of Cover Texts in the Modified Version. Only one - passage of Front-Cover Text and one of Back-Cover Text may be - added by (or through arrangements made by) any one entity. If the - Document already includes a cover text for the same cover, - previously added by you or by arrangement made by the same entity - you are acting on behalf of, you may not add another; but you may - replace the old one, on explicit permission from the previous - publisher that added the old one. - - The author(s) and publisher(s) of the Document do not by this - License give permission to use their names for publicity for or to - assert or imply endorsement of any Modified Version. - - 5. COMBINING DOCUMENTS - - You may combine the Document with other documents released under - this License, under the terms defined in section 4 above for - modified versions, provided that you include in the combination - all of the Invariant Sections of all of the original documents, - unmodified, and list them all as Invariant Sections of your - combined work in its license notice, and that you preserve all - their Warranty Disclaimers. - - The combined work need only contain one copy of this License, and - multiple identical Invariant Sections may be replaced with a single - copy. If there are multiple Invariant Sections with the same name - but different contents, make the title of each such section unique - by adding at the end of it, in parentheses, the name of the - original author or publisher of that section if known, or else a - unique number. Make the same adjustment to the section titles in - the list of Invariant Sections in the license notice of the - combined work. - - In the combination, you must combine any sections Entitled - "History" in the various original documents, forming one section - Entitled "History"; likewise combine any sections Entitled - "Acknowledgements", and any sections Entitled "Dedications". You - must delete all sections Entitled "Endorsements." - - 6. COLLECTIONS OF DOCUMENTS - - You may make a collection consisting of the Document and other - documents released under this License, and replace the individual - copies of this License in the various documents with a single copy - that is included in the collection, provided that you follow the - rules of this License for verbatim copying of each of the - documents in all other respects. - - You may extract a single document from such a collection, and - distribute it individually under this License, provided you insert - a copy of this License into the extracted document, and follow - this License in all other respects regarding verbatim copying of - that document. - - 7. AGGREGATION WITH INDEPENDENT WORKS - - A compilation of the Document or its derivatives with other - separate and independent documents or works, in or on a volume of - a storage or distribution medium, is called an "aggregate" if the - copyright resulting from the compilation is not used to limit the - legal rights of the compilation's users beyond what the individual - works permit. When the Document is included in an aggregate, this - License does not apply to the other works in the aggregate which - are not themselves derivative works of the Document. - - If the Cover Text requirement of section 3 is applicable to these - copies of the Document, then if the Document is less than one half - of the entire aggregate, the Document's Cover Texts may be placed - on covers that bracket the Document within the aggregate, or the - electronic equivalent of covers if the Document is in electronic - form. Otherwise they must appear on printed covers that bracket - the whole aggregate. - - 8. TRANSLATION - - Translation is considered a kind of modification, so you may - distribute translations of the Document under the terms of section - 4. Replacing Invariant Sections with translations requires special - permission from their copyright holders, but you may include - translations of some or all Invariant Sections in addition to the - original versions of these Invariant Sections. You may include a - translation of this License, and all the license notices in the - Document, and any Warranty Disclaimers, provided that you also - include the original English version of this License and the - original versions of those notices and disclaimers. In case of a - disagreement between the translation and the original version of - this License or a notice or disclaimer, the original version will - prevail. - - If a section in the Document is Entitled "Acknowledgements", - "Dedications", or "History", the requirement (section 4) to - Preserve its Title (section 1) will typically require changing the - actual title. - - 9. TERMINATION - - You may not copy, modify, sublicense, or distribute the Document - except as expressly provided for under this License. Any other - attempt to copy, modify, sublicense or distribute the Document is - void, and will automatically terminate your rights under this - License. However, parties who have received copies, or rights, - from you under this License will not have their licenses - terminated so long as such parties remain in full compliance. - - 10. FUTURE REVISIONS OF THIS LICENSE - - The Free Software Foundation may publish new, revised versions of - the GNU Free Documentation License from time to time. Such new - versions will be similar in spirit to the present version, but may - differ in detail to address new problems or concerns. See - `http://www.gnu.org/copyleft/'. - - Each version of the License is given a distinguishing version - number. If the Document specifies that a particular numbered - version of this License "or any later version" applies to it, you - have the option of following the terms and conditions either of - that specified version or of any later version that has been - published (not as a draft) by the Free Software Foundation. If - the Document does not specify a version number of this License, - you may choose any version ever published (not as a draft) by the - Free Software Foundation. - -A.1.1 ADDENDUM: How to use this License for your documents ----------------------------------------------------------- - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and license -notices just after the title page: - - Copyright (C) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.2 - or any later version published by the Free Software Foundation; - with no Invariant Sections, no Front-Cover Texts, and no Back-Cover - Texts. A copy of the license is included in the section entitled ``GNU - Free Documentation License''. - - If you have Invariant Sections, Front-Cover Texts and Back-Cover -Texts, replace the "with...Texts." line with this: - - with the Invariant Sections being LIST THEIR TITLES, with - the Front-Cover Texts being LIST, and with the Back-Cover Texts - being LIST. - - If you have Invariant Sections without Cover Texts, or some other -combination of the three, merge those two alternatives to suit the -situation. - - If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, to -permit their use in free software. - - -File: groff, Node: Request Index, Next: Escape Index, Prev: Copying This Manual, Up: Top - -Appendix B Request Index -************************ - -Requests appear without the leading control character (normally either -`.' or `''). - -[index] -* Menu: - -* ab: Debugging. (line 40) -* ad: Manipulating Filling and Adjusting. - (line 52) -* af: Assigning Formats. (line 13) -* aln: Setting Registers. (line 79) -* als: Strings. (line 224) -* am: Writing Macros. (line 107) -* am1: Writing Macros. (line 108) -* ami: Writing Macros. (line 109) -* ami1: Writing Macros. (line 110) -* as: Strings. (line 170) -* as1: Strings. (line 171) -* asciify: Diversions. (line 195) -* backtrace: Debugging. (line 94) -* bd: Artificial Fonts. (line 97) -* blm: Blank Line Traps. (line 7) -* box: Diversions. (line 25) -* boxa: Diversions. (line 26) -* bp: Page Control. (line 9) -* br: Manipulating Filling and Adjusting. - (line 12) -* break: while. (line 73) -* brp: Manipulating Filling and Adjusting. - (line 112) -* c2: Character Translations. - (line 16) -* cc: Character Translations. - (line 10) -* ce: Manipulating Filling and Adjusting. - (line 189) -* cf: I/O. (line 49) -* cflags: Using Symbols. (line 241) -* ch: Page Location Traps. (line 106) -* char: Using Symbols. (line 281) -* chop: Strings. (line 231) -* close: I/O. (line 230) -* color: Colors. (line 7) -* composite: Using Symbols. (line 197) -* continue: while. (line 77) -* cp: Implementation Differences. - (line 23) -* cs: Artificial Fonts. (line 127) -* cu: Artificial Fonts. (line 87) -* da: Diversions. (line 18) -* de: Writing Macros. (line 10) -* de1: Writing Macros. (line 11) -* defcolor: Colors. (line 21) -* dei: Writing Macros. (line 12) -* dei1: Writing Macros. (line 13) -* di: Diversions. (line 17) -* do: Implementation Differences. - (line 24) -* ds: Strings. (line 11) -* ds1: Strings. (line 12) -* dt: Diversion Traps. (line 7) -* ec: Character Translations. - (line 47) -* ecr: Character Translations. - (line 59) -* ecs: Character Translations. - (line 58) -* el: if-else. (line 28) -* em: End-of-input Traps. (line 7) -* eo: Character Translations. - (line 22) -* ev: Environments. (line 38) -* evc: Environments. (line 72) -* ex: Debugging. (line 45) -* fam: Font Families. (line 19) -* fc: Fields. (line 18) -* fchar: Using Symbols. (line 282) -* fcolor: Colors. (line 85) -* fi: Manipulating Filling and Adjusting. - (line 30) -* fl: Debugging. (line 85) -* fp: Font Positions. (line 11) -* fschar: Using Symbols. (line 283) -* fspecial: Special Fonts. (line 18) -* ft <1>: Changing Fonts. (line 7) -* ft: Font Positions. (line 58) -* ftr: Changing Fonts. (line 53) -* gcolor: Colors. (line 51) -* hc: Manipulating Hyphenation. - (line 105) -* hcode: Manipulating Hyphenation. - (line 174) -* hla: Manipulating Hyphenation. - (line 253) -* hlm: Manipulating Hyphenation. - (line 45) -* hpf: Manipulating Hyphenation. - (line 114) -* hpfa: Manipulating Hyphenation. - (line 115) -* hpfcode: Manipulating Hyphenation. - (line 116) -* hw: Manipulating Hyphenation. - (line 61) -* hy: Manipulating Hyphenation. - (line 9) -* hym: Manipulating Hyphenation. - (line 209) -* hys: Manipulating Hyphenation. - (line 224) -* ie: if-else. (line 27) -* if: if-else. (line 10) -* ig: Comments. (line 67) -* in: Line Layout. (line 93) -* it: Input Line Traps. (line 7) -* itc: Input Line Traps. (line 8) -* kern: Ligatures and Kerning. - (line 41) -* lc: Leaders. (line 23) -* length: Strings. (line 204) -* lf: Debugging. (line 10) -* lg: Ligatures and Kerning. - (line 23) -* linetabs: Tabs and Fields. (line 147) -* ll: Line Layout. (line 145) -* ls: Manipulating Spacing. - (line 51) -* lt: Page Layout. (line 61) -* mc: Miscellaneous. (line 76) -* mk: Page Motions. (line 10) -* mso: I/O. (line 41) -* na: Manipulating Filling and Adjusting. - (line 104) -* ne: Page Control. (line 34) -* nf: Manipulating Filling and Adjusting. - (line 41) -* nh: Manipulating Hyphenation. - (line 37) -* nm: Miscellaneous. (line 10) -* nn: Miscellaneous. (line 72) -* nop: if-else. (line 24) -* nr <1>: Auto-increment. (line 11) -* nr: Setting Registers. (line 32) -* nroff: Troff and Nroff Mode. - (line 32) -* ns: Manipulating Spacing. - (line 113) -* nx: I/O. (line 74) -* open: I/O. (line 198) -* opena: I/O. (line 199) -* os: Page Control. (line 55) -* output: Diversions. (line 180) -* pc: Page Layout. (line 89) -* pi: I/O. (line 138) -* pl: Page Layout. (line 11) -* pm: Debugging. (line 64) -* pn: Page Layout. (line 77) -* pnr: Debugging. (line 75) -* po: Line Layout. (line 62) -* ps: Changing Type Sizes. (line 7) -* psbb: Miscellaneous. (line 141) -* pso: I/O. (line 30) -* ptr: Debugging. (line 79) -* pvs: Changing Type Sizes. (line 135) -* rchar: Using Symbols. (line 340) -* rd: I/O. (line 79) -* return: Writing Macros. (line 143) -* rfschar: Using Symbols. (line 341) -* rj: Manipulating Filling and Adjusting. - (line 238) -* rm: Strings. (line 219) -* rn: Strings. (line 216) -* rnn: Setting Registers. (line 75) -* rr: Setting Registers. (line 71) -* rs: Manipulating Spacing. - (line 114) -* rt: Page Motions. (line 11) -* schar: Using Symbols. (line 284) -* shc: Manipulating Hyphenation. - (line 240) -* shift: Parameters. (line 30) -* sizes: Changing Type Sizes. (line 69) -* so: I/O. (line 9) -* sp: Manipulating Spacing. - (line 7) -* special: Special Fonts. (line 17) -* spreadwarn: Debugging. (line 131) -* ss: Manipulating Filling and Adjusting. - (line 134) -* sty: Font Families. (line 61) -* substring: Strings. (line 188) -* sv: Page Control. (line 54) -* sy: I/O. (line 160) -* ta: Tabs and Fields. (line 14) -* tc: Tabs and Fields. (line 139) -* ti: Line Layout. (line 119) -* tkf: Ligatures and Kerning. - (line 60) -* tl: Page Layout. (line 35) -* tm: Debugging. (line 25) -* tm1: Debugging. (line 26) -* tmc: Debugging. (line 27) -* tr: Character Translations. - (line 153) -* trf: I/O. (line 48) -* trin: Character Translations. - (line 154) -* trnt: Character Translations. - (line 245) -* troff: Troff and Nroff Mode. - (line 24) -* uf: Artificial Fonts. (line 91) -* ul: Artificial Fonts. (line 65) -* unformat: Diversions. (line 215) -* vpt: Page Location Traps. (line 17) -* vs: Changing Type Sizes. (line 85) -* warn: Debugging. (line 154) -* warnscale: Debugging. (line 127) -* wh: Page Location Traps. (line 29) -* while: while. (line 10) -* write: I/O. (line 210) -* writec: I/O. (line 211) -* writem: I/O. (line 221) - - -File: groff, Node: Escape Index, Next: Operator Index, Prev: Request Index, Up: Top - -Appendix C Escape Index -*********************** - -Any escape sequence `\X' with X not in the list below emits a warning, -printing glyph X. - -[index] -* Menu: - -* \: Using Symbols. (line 140) -* \!: Diversions. (line 133) -* \": Comments. (line 10) -* \#: Comments. (line 50) -* \$: Parameters. (line 19) -* \$*: Parameters. (line 38) -* \$0: Parameters. (line 48) -* \$@: Parameters. (line 39) -* \%: Manipulating Hyphenation. - (line 84) -* \&: Ligatures and Kerning. - (line 102) -* \': Using Symbols. (line 229) -* \): Ligatures and Kerning. - (line 131) -* \*: Strings. (line 14) -* \,: Ligatures and Kerning. - (line 92) -* \-: Using Symbols. (line 238) -* \.: Character Translations. - (line 126) -* \/: Ligatures and Kerning. - (line 80) -* \0: Page Motions. (line 139) -* \: Manipulating Hyphenation. - (line 85) -* \: Line Control. (line 43) -* \: Page Motions. (line 123) -* \?: Diversions. (line 134) -* \\: Character Translations. - (line 68) -* \^: Page Motions. (line 135) -* \`: Using Symbols. (line 234) -* \a: Leaders. (line 18) -* \A: Identifiers. (line 55) -* \b: Drawing Requests. (line 223) -* \B: Expressions. (line 65) -* \c: Line Control. (line 44) -* \C: Using Symbols. (line 191) -* \d: Page Motions. (line 109) -* \D: Drawing Requests. (line 71) -* \E: Character Translations. - (line 70) -* \e: Character Translations. - (line 69) -* \F: Font Families. (line 23) -* \f: Changing Fonts. (line 10) -* \F: Font Families. (line 22) -* \f: Font Positions. (line 59) -* \g: Assigning Formats. (line 75) -* \H: Artificial Fonts. (line 13) -* \h: Page Motions. (line 112) -* \k: Page Motions. (line 204) -* \l: Drawing Requests. (line 17) -* \L: Drawing Requests. (line 51) -* \l: Drawing Requests. (line 16) -* \m: Colors. (line 54) -* \M: Colors. (line 88) -* \m: Colors. (line 52) -* \M: Colors. (line 86) -* \n: Auto-increment. (line 22) -* \N: Using Symbols. (line 207) -* \n <1>: Auto-increment. (line 19) -* \n: Interpolating Registers. - (line 9) -* \o: Page Motions. (line 218) -* \O: Suppressing output. (line 7) -* \p: Manipulating Filling and Adjusting. - (line 113) -* \R: Setting Registers. (line 33) -* \r: Page Motions. (line 103) -* \R: Setting Registers. (line 34) -* \s: Changing Type Sizes. (line 10) -* \S: Artificial Fonts. (line 45) -* \t: Tabs and Fields. (line 10) -* \u: Page Motions. (line 106) -* \V: I/O. (line 248) -* \v: Page Motions. (line 87) -* \w: Page Motions. (line 147) -* \x: Manipulating Spacing. - (line 71) -* \X: Postprocessor Access. - (line 11) -* \Y: Postprocessor Access. - (line 25) -* \Z: Page Motions. (line 226) -* \z: Page Motions. (line 222) -* \{: if-else. (line 38) -* \|: Page Motions. (line 131) -* \}: if-else. (line 38) -* \~: Page Motions. (line 127) - - -File: groff, Node: Operator Index, Next: Register Index, Prev: Escape Index, Up: Top - -Appendix D Operator Index -************************* - -[index] -* Menu: - -* !: Expressions. (line 21) -* %: Expressions. (line 8) -* &: Expressions. (line 19) -* (: Expressions. (line 41) -* ): Expressions. (line 41) -* *: Expressions. (line 8) -* +: Expressions. (line 21) -* -: Expressions. (line 21) -* /: Expressions. (line 8) -* <: Expressions. (line 15) -* <=: Expressions. (line 15) -* : Expressions. (line 19) -* =: Expressions. (line 15) -* ==: Expressions. (line 15) -* >: Expressions. (line 15) -* >=: Expressions. (line 15) -* >?: Expressions. (line 26) - - -File: groff, Node: Register Index, Next: Macro Index, Prev: Operator Index, Up: Top - -Appendix E Register Index -************************* - -The macro package or program a specific register belongs to is appended -in brackets. - - A register name `x' consisting of exactly one character can be -accessed as `\nx'. A register name `xx' consisting of exactly two -characters can be accessed as `\n(xx'. Register names `xxx' of any -length can be accessed as `\n[xxx]'. - -[index] -* Menu: - -* $$: Built-in Registers. (line 96) -* % <1>: Page Layout. (line 89) -* %: Page Control. (line 10) -* .$: Parameters. (line 10) -* .A: Built-in Registers. (line 103) -* .a: Manipulating Spacing. - (line 72) -* .b: Artificial Fonts. (line 98) -* .C: Implementation Differences. - (line 25) -* .c: Built-in Registers. (line 73) -* .cdp: Environments. (line 96) -* .ce: Manipulating Filling and Adjusting. - (line 190) -* .cht: Environments. (line 95) -* .color: Colors. (line 8) -* .csk: Environments. (line 97) -* .d: Diversions. (line 62) -* .ev: Environments. (line 39) -* .F: Built-in Registers. (line 12) -* .f: Font Positions. (line 12) -* .fam: Font Families. (line 20) -* .fn: Font Families. (line 24) -* .fp: Font Positions. (line 13) -* .g: Built-in Registers. (line 99) -* .H: Built-in Registers. (line 15) -* .h: Diversions. (line 69) -* .height: Artificial Fonts. (line 16) -* .hla: Manipulating Hyphenation. - (line 254) -* .hlc: Manipulating Hyphenation. - (line 47) -* .hlm: Manipulating Hyphenation. - (line 46) -* .hy: Manipulating Hyphenation. - (line 10) -* .hym: Manipulating Hyphenation. - (line 210) -* .hys: Manipulating Hyphenation. - (line 225) -* .i: Line Layout. (line 94) -* .in: Line Layout. (line 120) -* .int: Line Control. (line 45) -* .j: Manipulating Filling and Adjusting. - (line 53) -* .k: Page Motions. (line 214) -* .kern: Ligatures and Kerning. - (line 42) -* .L: Manipulating Spacing. - (line 52) -* .l: Line Layout. (line 148) -* .lg: Ligatures and Kerning. - (line 24) -* .linetabs: Tabs and Fields. (line 148) -* .ll: Line Layout. (line 149) -* .lt: Page Layout. (line 63) -* .M: Colors. (line 89) -* .m: Colors. (line 55) -* .n: Environments. (line 112) -* .ne: Page Location Traps. (line 118) -* .ns: Manipulating Spacing. - (line 115) -* .o: Line Layout. (line 64) -* .P: Built-in Registers. (line 108) -* .p: Page Layout. (line 13) -* .pe: Page Location Traps. (line 139) -* .pn: Page Layout. (line 80) -* .ps: Fractional Type Sizes. - (line 35) -* .psr: Fractional Type Sizes. - (line 42) -* .pvs: Changing Type Sizes. (line 136) -* .rj: Manipulating Filling and Adjusting. - (line 239) -* .s: Changing Type Sizes. (line 11) -* .slant: Artificial Fonts. (line 46) -* .sr: Fractional Type Sizes. - (line 43) -* .ss: Manipulating Filling and Adjusting. - (line 135) -* .sss: Manipulating Filling and Adjusting. - (line 136) -* .sty: Changing Fonts. (line 11) -* .T: Built-in Registers. (line 114) -* .t: Page Location Traps. (line 97) -* .tabs: Tabs and Fields. (line 15) -* .trunc: Page Location Traps. (line 127) -* .u: Manipulating Filling and Adjusting. - (line 31) -* .v: Changing Type Sizes. (line 87) -* .V: Built-in Registers. (line 23) -* .vpt: Page Location Traps. (line 18) -* .w: Environments. (line 94) -* .warn: Debugging. (line 155) -* .x: Built-in Registers. (line 85) -* .Y: Built-in Registers. (line 93) -* .y: Built-in Registers. (line 89) -* .z: Diversions. (line 61) -* c.: Built-in Registers. (line 74) -* ct: Page Motions. (line 152) -* dl: Diversions. (line 87) -* dn: Diversions. (line 86) -* dw: Built-in Registers. (line 39) -* dy: Built-in Registers. (line 42) -* FAM [ms]: ms Document Control Registers. - (line 110) -* FF [ms]: ms Document Control Registers. - (line 184) -* FI [ms]: ms Document Control Registers. - (line 177) -* FL [ms]: ms Document Control Registers. - (line 170) -* FM [ms]: ms Document Control Registers. - (line 47) -* FPD [ms]: ms Document Control Registers. - (line 221) -* FPS [ms]: ms Document Control Registers. - (line 204) -* FVS [ms]: ms Document Control Registers. - (line 212) -* GROWPS [ms]: ms Document Control Registers. - (line 88) -* GS [ms]: Differences from AT&T ms. - (line 46) -* HM [ms]: ms Document Control Registers. - (line 40) -* HORPHANS [ms]: ms Document Control Registers. - (line 154) -* hours: Built-in Registers. (line 35) -* hp: Page Motions. (line 211) -* HY [ms]: ms Document Control Registers. - (line 101) -* LL [ms]: ms Document Control Registers. - (line 25) -* llx: Miscellaneous. (line 142) -* lly: Miscellaneous. (line 143) -* ln: Built-in Registers. (line 79) -* LT [ms]: ms Document Control Registers. - (line 32) -* MINGW [ms] <1>: ms Document Control Registers. - (line 231) -* MINGW [ms]: Additional ms Macros. - (line 28) -* minutes: Built-in Registers. (line 31) -* mo: Built-in Registers. (line 45) -* nl: Page Control. (line 68) -* opmaxx: Suppressing output. (line 19) -* opmaxy: Suppressing output. (line 19) -* opminx: Suppressing output. (line 19) -* opminy: Suppressing output. (line 19) -* PD [ms]: ms Document Control Registers. - (line 127) -* PI [ms]: ms Document Control Registers. - (line 120) -* PO [ms]: ms Document Control Registers. - (line 16) -* PORPHANS [ms]: ms Document Control Registers. - (line 142) -* PS [ms]: ms Document Control Registers. - (line 57) -* ps4html [grohtml]: grohtml specific registers and strings. - (line 7) -* PSINCR [ms]: ms Document Control Registers. - (line 77) -* QI [ms]: ms Document Control Registers. - (line 134) -* rsb: Page Motions. (line 151) -* rst: Page Motions. (line 150) -* sb: Page Motions. (line 149) -* seconds: Built-in Registers. (line 26) -* skw: Page Motions. (line 154) -* slimit: Debugging. (line 119) -* ssc: Page Motions. (line 153) -* st: Page Motions. (line 148) -* systat: I/O. (line 161) -* urx: Miscellaneous. (line 144) -* ury: Miscellaneous. (line 145) -* VS [ms]: ms Document Control Registers. - (line 67) -* year: Built-in Registers. (line 48) -* yr: Built-in Registers. (line 51) - - -File: groff, Node: Macro Index, Next: String Index, Prev: Register Index, Up: Top - -Appendix F Macro Index -********************** - -The macro package a specific macro belongs to is appended in brackets. -They appear without the leading control character (normally `.'). - -[index] -* Menu: - -* 1C [ms]: ms Multiple Columns. (line 13) -* 2C [ms]: ms Multiple Columns. (line 16) -* [ [ms]: ms Insertions. (line 33) -* ] [ms]: ms Insertions. (line 34) -* AB [ms]: ms Cover Page Macros. - (line 60) -* AE [ms]: ms Cover Page Macros. - (line 65) -* AI [ms]: ms Cover Page Macros. - (line 56) -* AM [ms] <1>: ms Strings and Special Characters. - (line 51) -* AM [ms]: Additional ms Macros. - (line 10) -* AT [man]: Miscellaneous man macros. - (line 26) -* AU [ms]: ms Cover Page Macros. - (line 38) -* B [man]: Man font macros. (line 48) -* B [ms]: Highlighting in ms. (line 10) -* B1 [ms]: ms Displays and Keeps. - (line 94) -* B2 [ms]: ms Displays and Keeps. - (line 95) -* BD [ms]: ms Displays and Keeps. - (line 31) -* BI [man]: Man font macros. (line 18) -* BI [ms]: Highlighting in ms. (line 39) -* BR [man]: Man font macros. (line 40) -* BT [man]: Optional man extensions. - (line 21) -* BX [ms]: Highlighting in ms. (line 43) -* CD [ms]: ms Displays and Keeps. - (line 41) -* CT [man]: Optional man extensions. - (line 36) -* CW [man]: Optional man extensions. - (line 39) -* CW [ms] <1>: Additional ms Macros. - (line 19) -* CW [ms]: Highlighting in ms. (line 35) -* DA [ms]: ms Cover Page Macros. - (line 23) -* De [man]: Optional man extensions. - (line 45) -* DE [ms]: ms Displays and Keeps. - (line 32) -* De [ms]: ms Displays and Keeps. - (line 57) -* DE [ms]: ms Displays and Keeps. - (line 16) -* Ds [man]: Optional man extensions. - (line 42) -* Ds [ms]: ms Displays and Keeps. - (line 56) -* DS [ms] <1>: ms Displays and Keeps. - (line 22) -* DS [ms] <2>: Additional ms Macros. - (line 14) -* DS [ms]: ms Displays and Keeps. - (line 14) -* DT [man]: Miscellaneous man macros. - (line 10) -* EE [man]: Optional man extensions. - (line 52) -* EF [ms]: ms Headers and Footers. - (line 26) -* EH [ms]: ms Headers and Footers. - (line 24) -* EN [ms]: ms Insertions. (line 28) -* EQ [ms]: ms Insertions. (line 27) -* EX [man]: Optional man extensions. - (line 48) -* FE [ms]: ms Footnotes. (line 15) -* FS [ms]: ms Footnotes. (line 14) -* G [man]: Optional man extensions. - (line 55) -* GL [man]: Optional man extensions. - (line 60) -* HB [man]: Optional man extensions. - (line 65) -* HP [man]: Man usage. (line 98) -* I [man]: Man font macros. (line 53) -* I [ms]: Highlighting in ms. (line 31) -* IB [man]: Man font macros. (line 28) -* ID [ms]: ms Displays and Keeps. - (line 23) -* IP [man]: Man usage. (line 78) -* IP [ms]: Lists in ms. (line 9) -* IR [man]: Man font macros. (line 36) -* IX [ms]: Additional ms Macros. - (line 22) -* KE [ms]: ms Displays and Keeps. - (line 73) -* KF [ms]: ms Displays and Keeps. - (line 77) -* KS [ms]: ms Displays and Keeps. - (line 72) -* LD [ms]: ms Displays and Keeps. - (line 15) -* LG [ms]: Highlighting in ms. (line 52) -* LP [man]: Man usage. (line 68) -* LP [ms]: Paragraphs in ms. (line 10) -* MC [ms]: ms Multiple Columns. (line 19) -* MS [man]: Optional man extensions. - (line 73) -* ND [ms]: ms Cover Page Macros. - (line 28) -* NE [man]: Optional man extensions. - (line 85) -* NH [ms]: Headings in ms. (line 13) -* NL [ms]: Highlighting in ms. (line 64) -* NT [man]: Optional man extensions. - (line 78) -* OF [ms]: ms Headers and Footers. - (line 25) -* OH [ms]: ms Headers and Footers. - (line 23) -* P [man]: Man usage. (line 70) -* P1 [ms]: ms Cover Page Macros. - (line 19) -* PD [man]: Miscellaneous man macros. - (line 15) -* PE [ms]: ms Insertions. (line 21) -* Pn [man]: Optional man extensions. - (line 92) -* PN [man]: Optional man extensions. - (line 88) -* PP [man]: Man usage. (line 69) -* PP [ms]: Paragraphs in ms. (line 9) -* PS [ms]: ms Insertions. (line 20) -* PT [man]: Optional man extensions. - (line 16) -* PX [ms]: ms TOC. (line 65) -* QP [ms]: Paragraphs in ms. (line 13) -* R [man]: Optional man extensions. - (line 98) -* R [ms]: Highlighting in ms. (line 27) -* RB [man]: Man font macros. (line 44) -* RD [ms]: ms Displays and Keeps. - (line 49) -* RE [man]: Man usage. (line 115) -* RE [ms]: Indentation values in ms. - (line 12) -* RI [man]: Man font macros. (line 32) -* RN [man]: Optional man extensions. - (line 101) -* RP [ms]: ms Cover Page Macros. - (line 10) -* RS [man]: Man usage. (line 106) -* RS [ms]: Indentation values in ms. - (line 11) -* SB [man]: Man font macros. (line 14) -* SH [man]: Man usage. (line 32) -* SH [ms]: Headings in ms. (line 43) -* SM [man]: Man font macros. (line 10) -* SM [ms]: Highlighting in ms. (line 58) -* SS [man]: Man usage. (line 41) -* TA [ms]: Tabstops in ms. (line 10) -* TB [man]: Optional man extensions. - (line 70) -* TC [ms]: ms TOC. (line 55) -* TE [ms]: ms Insertions. (line 12) -* TH [man]: Man usage. (line 11) -* TL [ms]: ms Cover Page Macros. - (line 33) -* TP [man]: Man usage. (line 49) -* TS [ms]: ms Insertions. (line 11) -* UC [man]: Miscellaneous man macros. - (line 43) -* UL [ms]: Highlighting in ms. (line 47) -* VE [man]: Optional man extensions. - (line 108) -* VS [man]: Optional man extensions. - (line 104) -* XA [ms]: ms TOC. (line 13) -* XE [ms]: ms TOC. (line 14) -* XP [ms]: Paragraphs in ms. (line 18) -* XS [ms]: ms TOC. (line 12) - - -File: groff, Node: String Index, Next: Glyph Name Index, Prev: Macro Index, Up: Top - -Appendix G String Index -*********************** - -The macro package or program a specific string belongs to is appended in -brackets. - - A string name `x' consisting of exactly one character can be -accessed as `\*x'. A string name `xx' consisting of exactly two -characters can be accessed as `\*(xx'. String names `xxx' of any -length can be accessed as `\*[xxx]'. - -[index] -* Menu: - -* ! [ms]: ms Strings and Special Characters. - (line 101) -* ' [ms]: ms Strings and Special Characters. - (line 65) -* * [ms]: ms Footnotes. (line 11) -* , [ms]: ms Strings and Special Characters. - (line 74) -* - [ms]: ms Strings and Special Characters. - (line 41) -* . [ms]: ms Strings and Special Characters. - (line 89) -* .T: Built-in Registers. (line 119) -* 3 [ms]: ms Strings and Special Characters. - (line 107) -* 8 [ms]: ms Strings and Special Characters. - (line 104) -* ? [ms]: ms Strings and Special Characters. - (line 98) -* \*[] [ms]: ms Strings and Special Characters. - (line 80) -* ^ [ms]: ms Strings and Special Characters. - (line 71) -* _ [ms]: ms Strings and Special Characters. - (line 86) -* ` [ms]: ms Strings and Special Characters. - (line 68) -* ABSTRACT [ms]: ms Strings and Special Characters. - (line 15) -* Ae [ms]: ms Strings and Special Characters. - (line 128) -* ae [ms]: ms Strings and Special Characters. - (line 125) -* CF [ms]: ms Headers and Footers. - (line 16) -* CH [ms]: ms Headers and Footers. - (line 11) -* D- [ms]: ms Strings and Special Characters. - (line 116) -* d- [ms]: ms Strings and Special Characters. - (line 119) -* HF [man]: Predefined man strings. - (line 12) -* LF [ms]: ms Headers and Footers. - (line 15) -* LH [ms]: ms Headers and Footers. - (line 10) -* lq [man]: Predefined man strings. - (line 21) -* MONTH1 [ms]: ms Strings and Special Characters. - (line 23) -* MONTH10 [ms]: ms Strings and Special Characters. - (line 32) -* MONTH11 [ms]: ms Strings and Special Characters. - (line 33) -* MONTH12 [ms]: ms Strings and Special Characters. - (line 34) -* MONTH2 [ms]: ms Strings and Special Characters. - (line 24) -* MONTH3 [ms]: ms Strings and Special Characters. - (line 25) -* MONTH4 [ms]: ms Strings and Special Characters. - (line 26) -* MONTH5 [ms]: ms Strings and Special Characters. - (line 27) -* MONTH6 [ms]: ms Strings and Special Characters. - (line 28) -* MONTH7 [ms]: ms Strings and Special Characters. - (line 29) -* MONTH8 [ms]: ms Strings and Special Characters. - (line 30) -* MONTH9 [ms]: ms Strings and Special Characters. - (line 31) -* o [ms]: ms Strings and Special Characters. - (line 92) -* Q [ms]: ms Strings and Special Characters. - (line 44) -* q [ms]: ms Strings and Special Characters. - (line 122) -* R [man]: Predefined man strings. - (line 15) -* REFERENCES [ms]: ms Strings and Special Characters. - (line 11) -* RF [ms]: ms Headers and Footers. - (line 17) -* RH [ms]: ms Headers and Footers. - (line 12) -* rq [man]: Predefined man strings. - (line 22) -* S [man]: Predefined man strings. - (line 9) -* SN [ms]: Headings in ms. (line 22) -* SN-DOT [ms]: Headings in ms. (line 23) -* SN-NO-DOT [ms]: Headings in ms. (line 24) -* th [ms]: ms Strings and Special Characters. - (line 113) -* Th [ms]: ms Strings and Special Characters. - (line 110) -* Tm [man]: Predefined man strings. - (line 18) -* TOC [ms]: ms Strings and Special Characters. - (line 19) -* U [ms]: ms Strings and Special Characters. - (line 45) -* v [ms]: ms Strings and Special Characters. - (line 83) -* www-image-template [grohtml]: grohtml specific registers and strings. - (line 8) -* { [ms]: Highlighting in ms. (line 68) -* } [ms]: Highlighting in ms. (line 69) -* ~ [ms]: ms Strings and Special Characters. - (line 77) - - -File: groff, Node: Glyph Name Index, Next: Font File Keyword Index, Prev: String Index, Up: Top - -Appendix H Glyph Name Index -*************************** - -A glyph name `xx' consisting of exactly two characters can be accessed -as `\(xx'. Glyph names `xxx' of any length can be accessed as `\[xxx]'. - - -File: groff, Node: Font File Keyword Index, Next: Program and File Index, Prev: Glyph Name Index, Up: Top - -Appendix I Font File Keyword Index -********************************** - -[index] -* Menu: - -* #: Font File Format. (line 36) -* ---: Font File Format. (line 51) -* biggestfont: DESC File Format. (line 109) -* charset <1>: Font File Format. (line 44) -* charset: DESC File Format. (line 101) -* family <1>: DESC File Format. (line 64) -* family <2>: Font Positions. (line 61) -* family: Changing Fonts. (line 11) -* fonts <1>: DESC File Format. (line 58) -* fonts <2>: Using Symbols. (line 15) -* fonts: Special Fonts. (line 18) -* hor: DESC File Format. (line 14) -* kernpairs: Font File Format. (line 135) -* ligatures: Font File Format. (line 22) -* name: Font File Format. (line 12) -* papersize: DESC File Format. (line 72) -* pass_filenames: DESC File Format. (line 92) -* postpro: DESC File Format. (line 36) -* prepro: DESC File Format. (line 32) -* print: DESC File Format. (line 97) -* res: DESC File Format. (line 11) -* sizes: DESC File Format. (line 49) -* sizescale: DESC File Format. (line 22) -* slant: Font File Format. (line 18) -* spacewidth: Font File Format. (line 15) -* spare1: DESC File Format. (line 109) -* spare2: DESC File Format. (line 109) -* special <1>: Font File Format. (line 28) -* special: Artificial Fonts. (line 116) -* styles <1>: Changing Fonts. (line 11) -* styles <2>: DESC File Format. (line 55) -* styles <3>: Font Positions. (line 61) -* styles: Font Families. (line 76) -* tcommand: DESC File Format. (line 45) -* unitwidth: DESC File Format. (line 28) -* use_charnames_in_special <1>: DESC File Format. (line 67) -* use_charnames_in_special: Postprocessor Access. - (line 17) -* vert: DESC File Format. (line 18) - - -File: groff, Node: Program and File Index, Next: Concept Index, Prev: Font File Keyword Index, Up: Top - -Appendix J Program and File Index -********************************* - -[index] -* Menu: - -* an.tmac: man. (line 6) -* changebar: Miscellaneous. (line 111) -* composite.tmac: Using Symbols. (line 197) -* cp1047.tmac: Input Encodings. (line 9) -* DESC <1>: Font Families. (line 76) -* DESC <2>: Special Fonts. (line 18) -* DESC <3>: Using Symbols. (line 15) -* DESC <4>: Font Positions. (line 61) -* DESC: Changing Fonts. (line 11) -* DESC file format: DESC File Format. (line 6) -* DESC, and font mounting: Font Positions. (line 37) -* DESC, and use_charnames_in_special: Postprocessor Access. - (line 17) -* ditroff: History. (line 58) -* ec.tmac: Input Encodings. (line 41) -* eqn: ms Insertions. (line 7) -* freeeuro.pfa: Input Encodings. (line 41) -* geqn: Groff Options. (line 6) -* geqn, invocation in manual pages: Preprocessors in man pages. - (line 12) -* ggrn: Groff Options. (line 6) -* gpic: Groff Options. (line 6) -* grap: Groff Options. (line 6) -* grefer: Groff Options. (line 6) -* grefer, invocation in manual pages: Preprocessors in man pages. - (line 12) -* groff: Groff Options. (line 6) -* grog: grog. (line 6) -* grohtml: Miscellaneous man macros. - (line 6) -* gsoelim: Groff Options. (line 6) -* gtbl: Groff Options. (line 6) -* gtbl, invocation in manual pages: Preprocessors in man pages. - (line 12) -* gtroff: Groff Options. (line 6) -* hyphen.us: Manipulating Hyphenation. - (line 161) -* hyphenex.us: Manipulating Hyphenation. - (line 161) -* latin1.tmac: Input Encodings. (line 14) -* latin2.tmac: Input Encodings. (line 18) -* latin9.tmac: Input Encodings. (line 23) -* makeindex: Indices. (line 10) -* man, invocation of preprocessors: Preprocessors in man pages. - (line 12) -* man-old.tmac: man. (line 6) -* man.local <1>: Optional man extensions. - (line 6) -* man.local: Man usage. (line 6) -* man.tmac: man. (line 6) -* man.ultrix: Optional man extensions. - (line 30) -* nrchbar: Miscellaneous. (line 111) -* papersize.tmac: Paper Size. (line 16) -* perl: I/O. (line 171) -* pic: ms Insertions. (line 7) -* post-grohtml: Groff Options. (line 165) -* pre-grohtml: Groff Options. (line 165) -* refer: ms Insertions. (line 7) -* soelim: Debugging. (line 10) -* tbl: ms Insertions. (line 7) -* trace.tmac: Writing Macros. (line 101) -* troffrc <1>: Manipulating Hyphenation. - (line 254) -* troffrc <2>: Troff and Nroff Mode. - (line 24) -* troffrc <3>: Groff Options. (line 80) -* troffrc <4>: Line Layout. (line 64) -* troffrc <5>: Paper Size. (line 16) -* troffrc: Manipulating Hyphenation. - (line 161) -* troffrc-end <1>: Groff Options. (line 80) -* troffrc-end <2>: Troff and Nroff Mode. - (line 24) -* troffrc-end: Manipulating Hyphenation. - (line 254) -* tty.tmac: Troff and Nroff Mode. - (line 32) - - - -Local Variables: -coding: iso-8859-1 -End: diff --git a/gen/usr/share/info/groff-3 b/gen/usr/share/info/groff-3 deleted file mode 100644 index 7354989a70cfcdb8f1078d6b4bc8c08325de7654..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 145790 zcmd75Yj+#TktVz!_w=9G@*IyF_K>td-L-!0S4~OXIwQ4oM7BNNX0Htb1rjaX8W&3J zot@vlPh9d=l@)-*0!1EML=%Mvk&&5^k#Rk_7%dC@?|d;E4)==rVm4U!%RzB=RZM#C z%h7Z=D=y2$ax|M3_YNKv!^Lb;9Q=_VKUkF?>4AfAE*A2DAQpQchRP z;@j_kDE_%3@UJ~i_n`au;7~qwG@D;7M&}o+qI2~7qWk#qz5T;Gckb*J__xdd9`e6; z`QLl|@BQM%qAZK!*>Lrtwl3j*ck_L;Rn`htcYy zn9eZN%idyyQ5DB!pGLpjllKH;HeKx>%`kVM`Qu7QbcPu{FaG(I=jAm|*51F+_`@f^ z>Gj|12T$mOMGp&PT6B89m+_pHr>~L#wA}C z&1^jKVmx|Z@*kGEmM|`?$Wgg0;#m=p+SC+bR*FS$v;+ZID9d7qX{ON)%1iKSP8)%S z^YZ%_Z}y+Pe7Ar6{OIK6o9~O0t9iLBS1U}(SH~w$-<|CHN1lIw^6u|n{h|1lcFvQc z!~5;`pf33#zR(x({tBxV-#_UwY_YsruFA>5SI@tHRt5j+e|+^~G%laGtzUdU8{of= zX48H-Utx6(%8z^4MT_$C3I3g(FM1PRDfB7-_7C$X#mQ{`)mKmF^Kv>EeJuVxh4|_Z z4L@If_22&ck0bh)|MuU1!cbqA)Af_D@Zw+girxyVWk73d3FeicsQ6R&&rg!U|FEQ` ze0()In~j%_GoA5hS{8>74}aeTl!6fAv3`XIp+5=`1d;+_E%zYZ`ioi7Tb#3St0BEB ze_5By6*K8IKl)T3T^`61BIM8dQF0C+5IO$}1}(9=#-qsyf}}==e#7%+zlR0pSR;Q` zpoez|=yz=aea%2UNQ4Qk_9lvs`q(E2GDZVTaehmnp}OD?e{Nwi(a43l+gg}9}P!%$s49hmRr`mj&c-{Q1ZEqGUBH%)S$k_a4&p6HqJiXumCr2&ff`4q5}cC>G^8RL*iis^@T6F8El3 zsxlo1zCRnOvK{f-G5Zl8Y6tUWgoI-WGItI=a0vySHA6grBjE)J1WYNEaZ)pi!K82H%;GgK6Qj*62-Z=L`Z1#bxc&Il_Zs&jDsdx6`6qQ6EcMA2pK;Gtva z=%P10r{f@+YPV`0^JM+8t#$lp|7^5^W5 z7Da#R&&IRqpEto(PeP*7@kq3x|8Elnf27z9w2_u=fqvXmm2=vg;7a08ecIb6)Np7}$irD1jN@RSoZ>m{!9_K9ju z`9s$2Pk#&h#6>y9qU{YxT9I9XWwhR`giT}-+6NzB<2vf^F1nfv)>}{M0))lCie@rl zv8?A^PI*^E22nDcjbRX>@tpn#8F)_rUZVwumeG7oYYtC+cQpqSc+T2ce#K+i2%rUQ zJN=K^*Sqb_zu(T5D_HsZQ0YMI(>}duiH6P;JI?m)q7udH(i#o z=+4KOKU@iiqbc?!WJtqhZNwt)hD$<_NvWH3=uyOX5j!J4sdTZf)EC5e1m-+dhY zi`lsFmr~CmwU5N2+#kXBWVS%jtysfM$E{hzpr)NQOjeOEEI1#?CIBV3NJxO1b{I@X zp4-7-SU_&YP68e6u$Jr|U@bg8Q-~QaRFcE3DE_8zd(DB~cNY&?dH}i&ORwvxX-6qy zk5&(^B*@@SInz64g*`jfgNsA9P@L|yHRWm#`jRK5iYriZ8`g~KG@$01drCEOm<8Ga zg2VQjK&oZ=+q@~fcCW;GI?Q2NmmW8uch65?5ZJKCx488D>G&;hQq$q-e^s@$8}LEN z9aYG=MVmqhGN%i|aElrH3!j|Vy2i^jm4Uvv66vn-pk@;zi-t!0czTr@_*c#nF1xZNalc=Ycg23!ar{fgF(qHVlb$=CWG}DehLPY zoep+PA2?CJLs+N715s{!Uw)<@ik%HZxAOubDX~q>s?sojsi_*`xcf3q!%O_+U+oWU`V%UTY#EtZVR2MXI~GCgM)*w znavlo#pqW|Y;O!_%5pYdyXXyLHFs4KKD+)R6r=Cp+Cx){N?AMCx2!AB7qu6#zx5Q9 z+=4~uRDV!&%|)m)^}H>h>rx&>>f(5e5fEwMq73)j@dME-!H z+r^(XM zu^~l&pZ2|csNV-HCH}q`ED5L;(M&*C&DUQ;07@<1(_Fg4)AeeGkfHv9!=chsS&#R{ zwVAEwASh}_&L6kMY@~g)Giw044I5S&4gTCBYQURzrX4`H<9J`m9&J`pS%g4O-C5jZ zR}EQ8$#tZK+`0hN&OK+{7SLr|dlNt-WWp^dpnp+PMurRgj79#pk_q@ypOl-9UQhH^ z@!|Rui6Iopf$fN$|B!{aoR|F(Mu)4Mthk`;(n{Q=%U2X{&>^v$l8JlzuQ6x+d3rOk zoS>y0ljGlS(V+g<^;e86z5jDNjs}g!05#W?I;zM0=dBtRsJZ5_^dSGgvcIn(-X)#) z6hOB@BhYCFHSO@{zl1+u^dOdaU{I23+ou#%Q5AzX7GeT&TH)|dU@#K;kupmeL=qPIf&L+3vOvT2&*>F*&~0@mS4Z}EOv{5Vt zq}xij5HlSSwd9Hx|EDkdQ-;5snDKA<=(dc)qOO z4+Ay30#r}GeHD?Tvu2#Z#be%{_!z1bRnR^Mh?CYy1=AV; zdj%|-A_+Ua@zO!+;S!&B?!-G(fkD~tdJZ>$(CD@Xnyx2jFfY4#OCd=xA4?UZ;+@Vc z86NZumMmQz8dcn)1(_Y!mK0Ihfk+0O{`O90*S&=eVN$|g;+(xSUZ)kXv8XqJ44a_D zSZ^|Nh~Qb(Z2h;5`6RvRbhaVJh`#*AY_`IKdR{#ZA8J+; zfEXhOx#$XeQXq(uvgkl>n#M5582{s&bRE)Ah0mzvMycn$6i9T#PHz%XL!bHE0xors z&2^L9q$!XJ{1ix*5;mUS7X)K2>h44K(DxPy${A?bSLgKE*F6rbsSsoZhIQ|XKB(25 zTtp$!pRrz9%D0pT@>PXs)^v4?Uc>BihOpgVyz~@tRjXt>#1ZVM3h2YlEMucoo$%vw zcY@C8Z>wy^lv$hgP^U~vZefE`O)$}}>)YNCXhoNU22dzvbpgRJ>ibK8<1Vir{l~fs z6tX{XHyMuDU`df4IS|5n8XhCfH!;X6vq|VIyMEd|&*{7jut!Getgf7AS)iKLWwStg zdVKWqCGFeA?BfW97Ni?Wx<`ya!iLRbG-OuS}!e?;%OQ(ac0+n(J!e4Qg8RApHrI&2Od zk#&L2De`hCl=2jDho?U-mOrV?shp_F9yKN6}elGz|Uh>$10m$%w_1S6k~qY)wlvugZ6$3@yGdzn%+`$!8T) z35SC&S6AaGh7YJ>4#O2>j1oVNB&A5gsIoxmloNHB_QnWT@%+X>x516_h_#k8XcSN{ zhEz6Wz)`hu0iTU$w3<%;kDtoXaK9WcLp>m#5arWdR>&BLPg8$?#-(TE5%?3^+|8{GKcw{`N!#VHz4 zXF0Dj#M5D|>Bp=*M?i9#cFx8V70Di^D8Auw^JpM~v_PKQW$Ytp0y<26O*hGzXh5~u z`jn}rqEz#swnuEiOOrFQ9sHWXxsD3uQqQ4AQDVS5#_0l8wjDb{SMEu?17W8Ln{uy^ zts3vjVvB7_TiFAVZr(#UFco+1oc`ai7PkPJjR(b$4xJyN*)+Ib*tCf#4))SO-_zZx zi%%j!Q7&45pesvu7!(l=lAu5j~k0^aF9 zC~{9Gk~7ku$aruz`&gUmfcbi~?3ZIKkaD*6Vn>G7l?rtDe6d(N%@7>^@oe!^Wn92B zl7tE=&IlmP_v~ZO-E!z|Sr6#ke3y(d1Y&?v@`G`OD9ax8NJPfmk)ldZzRDgmyCLOG zZ1rbVAlk36M9<5FCYiNaU#`C@$CTNU%@+gpduxvUA30f0$Hy6o@+UWE)>g$M8lMoA zO-QgT9FmA|wh-gE@Vh@8_p(KI(z}JOR$uPWgrppt<|x`|@p zKj{$k_YRL&U5d^$Ou{|G7Ad9tN9~KMF*5cXh7ZBAJFm-;)(AH)Je7=)v&d zMtWl#U*sAEgP@8x>X4$2siVQKA^+lwP(^E#&LEs@{j#p2-<%7$`{R_t!EgNI>F-KM4P?(wX|4#_fbRdnzh7O)p#sFvM8e88{+hK$${ z`qVj1P0S30;GpJ&))a_M7)1xa0x`VQEsDgFkpN*~4iT>DCaphO{LlgprYTwefef2AdjtHCA|SmPM+*e)ygUzguyEwM5s?CW5!Zh197OY@?6s_Ds(m_I z*##;n$t@aU2A7V(J6$w|^bCp^<0z54u4fZx`B$02Ye`P3`jF7}3Z}iNTNfDY zChP^h7hMY@p!%E((7ZQbt6YSFPkj?1ahp&)S(-yGpD zd}Hm59eZB!dlmMiH|MZ71t=$MSb5vsIaL!kj*{tYiU<@6DOj+XpmR!5YMDXlkR-${ z;*A8XcTSIz8RBWG>_+*U4{=M6m%U^C`&>cquSUbxL+7r9oo000r>J7fWK@XtS zRta{H1*i+Twrn(sHoN|I$=+_zA$3S-yOpKllZON#sOv#!t(?#TlG#DaU1UTc?G*sZ zZYQE>r@X1jEvBR{v{tmQj3E``&yDsbfT*p^ELRi*K#1_3xdvr4%Br=`$r12|ltyI8 z!Makj)Nf8_izx~~wdqgw8X?GC9cn8X+5m#3^ZUY7kHy{;hW2ZTxUUbR0h%T=9B$RW za~82(rp(mzoCZSJ>1_#8X^j%`I18lQwtRaMwd{e&r&o_)cC%)Q9f?|wf#A^HpAGk^ zC;_!KbRaax)~r{C28tq$DF)dDBq1&_MI4tT`(0x`S)s&Nr18u*-d3xSz?YQPOC(6Z zD~$lU)xsMli2+6!Y4ISvZewU8v;-%hOn*Le&!oB{fT(Zy7$Lwgt$fNfNR8ZhXvTq* zNsMd~P@qV&3NfRc@JKcvZ=Mj_BYDa~w?RE2#dFvnE&5{w62?*g{d&~Dv3a`E+{ytV zqjZG&moeT^gl7VY9eWI$E5;y+6@C0y>VKvMj~`?D4|NwJ9zWSOMdt#s%~iDBYBXJ` zU=Tt;#VR3@p?lsU3pYE(gKmxnje(TM35sTq7(j(IXp4csY8Vupby#T;HXA@1pUOa( z@N(E&kDI+c22dgK2Mm;VgbFPiDRQbT$JD}lz{7G$x0KKFg6hPQEEm8}} z42sLsaMT=t@_c$ZTFf}iyyjh1#YBMi*)ThkK>Vuo07c(YPy2j`eQ{q-Zvn!tFOhgQ z803S##XNtj zT?{4lsiqwhbF4Th^?yd~5aS#wohA2+LNa#Q($kBM(40}Ikx2p5G;5Mq!R7=n;t%-_ zT^=pXeTLJ93g~C768(zBKaKkO)4Wo!f2_wz~8-m-L;|*gV_N0mJqBBiTR`!4$ ziP_tWMco#6IXyT6lAJz@=BYCY7%u)<9(zTPwd3LO(>`66ebfrSEWMu1K{XsFaDiA} zp7!0U3eNtE&Y3InaY`{)kr$L(2s?Y^88lp;U5&&6?@7e-{T>=1WKJ$@J7Wy=%BEAK zsz6y$h-Bgoc3Q4~!!xNLJ|8P+mUg!ohF{8P@5iNf*Yf73zcqP|_q6>R8MiVi10; zYq2|+D?o`=(R1m@*#mZ9G7Y;c9TKd;&f?ke>e%NE$pIyUyD5{YOcg6E$;Do#$o*@r z!epwD;DxAx?A~H5OQL!p4Z2(Ml{s_UC8U?U^RUC*!Vx-3rJ0)K zW(!Iur3lBfa`mA^|8BHYLB1-^XR zh~P;L!B`Z=iW5BSs4bQcB6CL@Z~n!RJmyt*;(JA%s}!8!>;LCua`tmT^?)R(DjPC6 zW1!oU$r)3{CW(dy7Q63U(O=`p!qq|wAI0(^XsXmfZ>VPN)IzK8No1q_Q5u6wZ=HuCV zfj!2*!X^WhHMG0pHBcTAMJTj@+X2-$>gWp(W&%kRMFND2DlWtT(id9+9g2xffqbAS znQ`hX2V!7>9foerrc+yNWlAJ(;-io{!y(_xrQq(a_ za`0;goA!XivMpwd(XR#s#qNEK^MM&|0ZA5|00|jN(^bgEFh*t4>cJHl)eh&8GRD9@eEK+2=&;>}r=toAC|?87Em@bDMBgL_mb0l?Z)#VC&Co)A zBNrp&$by{=^@$ASz7Zu5K}Z_4PAxDiuG_V-C!zuq@I5B;Eq=TCFNX z47FJ+@<2WaHA1}ca8yr?ToNiep6Apj3~PBcL4J3ZIe^;+XxzKnn9{ZLVt(RJbB$^T zK28Idj@zK{sl-O@79`M)kL@UoLHC! z22e!X<}kE@KNLk@`wTTp0+K?GDW?-tB6aY}1(I&aTQ?Y;qdH6)!FI>%!+s5kL1#vm zIyYbLCfij#gn%GINC$DUWl=wutbL}6F?9XulD^2a3bRSLq4I^Q58?8~))cy1*9np; zNtKIQWmQ*zL@NkWrChSEd?`g&Fty7)q6R`(7LeQ>{pC|c;tCY8M5zqV0@9tYLjy$@ zv*uf$1tb}v5k+$Zjlz00+2`;q)Uk{PX#$Bh5-1|yuLr3(-Z&VdVb%`WG8a*l07cYn zWVTYIm2!$xSh?xKk^MQ^r58wwIQW`9-owfl&r0scjswg!`2)1{dy4@(ETfLm)u7tM z-;2`>PCaTT(Rz*YuEZ-URZz0T=?hmRj9@j7ctX{&WO=sa4R_LTiEVII*^jk#^K2xK zIlY`8NDo4NA{3&ifzTgdd3RXM-G493mi_zSERRSe{LmMiuJ{2!h%ZL%N2Mcjl7f8m z&|6SpVT$4gJVB9l;D965t?b`I^e9+hDcB3XdDtqD#CeYRlFZ)x4uv~lrt`$aJiafN zdKW%aD=_(MyxFZfLK2%A?De$hqQsAZj7g`?1ChVjh0wcMXB9C8YFtGokjgHNjKZ|} z64z3vo(mJD70`HT6QoDX)%iqF15mBUFYBCl1K5=NxMP+TE z%JkEPeloixQP){$;ET>Zep#Lu>EII$4Yp>KX<#67v?M52&(SjHqIyvLG8J z2(PF3^L~Ljd6e=<75vIe%cn$tiRT<+X>>pNBiUyiq^8ujb%7h z+fD!i3)g+b-jWERb8-o149;E(;(wA27t(o`a)yK1ngY^(S);cES%*+GjHk!jjD$Lk zq~bXf4gaaD^54>wiStFs!IePEa=<5ExfU>sj6y$7dF62>Ky^M>>KL`FCf*lmSfS$* z+hVT8M*L3X1VZuJ)(e<)RjJaB6TL!`NRWs2?CW|GiV?4`IVhSCfr*Buj(ADHjHBEW zN0b3nJd&O6DMBgst8;RY0c&2xGJv`@q^#l!>rw5*sgGyy`n%h7x(V|*UyvM3Ti zX%#3Q;M?th9D68*vV1p^WaB7`?wG_X7=TYBf2);=QglV9R*Du`kK<;Pb}SOAHZ7yEE@XksqS08wchUPcj^nS9E}tN^tT?dO259qm_=@)qUAtJCnP$v8IlTOES;$1f|^LNs5m#eb? zv4lWGIWFNPWDjMY!8ka-@YUUS9O)tXeF$ck^;R-;uz?i#!w-bjeHH}=D^j;xyuwl(?J|O}S2S36a#!=K&yv@>;toFM_ z=jHL6;?bk~kN3OaumvPH<{Cu;bQl30ZUSPXbOX?1xF#u1eE-f~5lFkAfox~yB{nP& zBPZWp!L8G(6J|xZi>6u!%1*rnHtgP0Dwq6bQAAJgs z#MVmvDhpy2&cAc>)gD1x5p!!v53 zP#^Y+gZ>3dCR0!p{kwc$9dJ8BN&J5aS*R~@Iil22wxf*8={Z7|I|p?1<_0L^>q-E9 z0B7+ip!lJ1>8khRIj_bPfC>slrR! ze+;kfOQdh32yPVLlLB!?&#=$pWYJLDbEl=wG`YL1QL=SyPn|8z0TUo=qL`yr#FEYy zQA8_7eQJSAFgw6#4jVk)#TR8P9?E3#j+E%I<8FnhkxZW*I0Hbm60N(uL{Ch}-r{OsYQA%qNeLyWV=0fs zW?BUjPsyBeUtnW^5k*j*JHpwK65ek29_GG;dxan+n_HQ4)dNI``pAg-h_JA9P;S2B zrX$$;qZLL%R7ca!Q69U>uaxi^WiIz9M7b}my`IoOd*Y>kt581Ug$3E=VEXrs;h~xcKo(V$Vlz+(gT@d%mPvo7J$SSEm!CeF)cJ%KoY%)fSv_z z+%S*q``aoX$pY9pmGyvNxkitcnCmwHIm;`~cyib#({|iyK$p0)l$=Fr4vWse#&JoH z5dmUuSaY_+P&uviNraS>^(6EvFFJqz%U zQUeWNf}TOKnD}a0wMmGyU&|D0>#hbWN07>^2ZbgG6 zSqf*K=1i)xmKf+ozM-wiu@}!??G@jC|3mR&QI^Fsjf0SkuUANxfRamV%6_6%9l@18 zqbnE{Im<3-xcE0#KpRF02)C%G5U1m~h<{RoX&p;rjkvab?Bwx+AyF9w$koNqqu`TU z0{O+~zpVOVTOg4~&@G!FH#@S1qjRc$7c{~uE%M)+Z($S=M7azIEo-8Npm2Ej$Nc@U z!fdKo8bU%5i`zjpyJ;o($+{psX0IVpgr%(oM>|cmMhze>H7Y9uBcc)5~0d%PH z7R=rxBWe0c3ey^JvX+Kin|=UsEEn1G5Hvz2kE(2vSguNzMS21tq91|{XLT*c<8?GX zkGfrPnq3qcF47ss5o^(U zEG#>S^x7f47+ThnV-Cn1f`x&DS9F081nWgV4gt~r`R?@Jp0R{@Gk>RuP z$hJtYs^5Knu!aps}XaM4vv8uZljWZlK>@yOOPxez19+sT&za( z60m@xy|ygJS}V~N2@%eOe{l-%1zHq4T}<_L#Qi^$aV4EVfoIK{Gy`QGvF$zvs&#JV zp*7stBOcW&o`pflD+?&_2nXYAO;u#!y&LA^h%9DH8wMI0!tk9#QCrFW_!BjheH)Zo z(>x+K5dbZNY_1N;{Wno0k&wq+V1(zbHfznx$KeFyBO|IPsRKbbf};<4*`r=AhYN7l z^ao}`QICXdw%@MFBQHh(g#FkYPX~&4)*9B4-i?Th#$86a#6S&VBpI5~TZExpgOQlm zP98ZRWX+)RnRyQ}lctKh9DYH`wg9r_qXX()LE8w&h)%z%#{#s49pXFb*~e-p<@4g} z+qH_h{9$`gK9!gWc{-iWqF-HG6d;J)uheC}ZtWJ`jYKV0SY?9 z>3IDL@pGOZOJnTBrtOQKYjrzCtF+oX+0P=~;c=brc3ghhiHP zir`Bj5`9AGk!lDUJfuKT zgL9O2=fdDB_~cjOkZL`SQk$GBEr`v4vXO7%P1G0x8d|(kf!HR##F`_~{^Md@m7!aT z8M^*o_C{k0N2VHvdCK?IrY#w#@Cx-42<>3JYbYP~ryK4%#iMD;+lStw%}Yzzk#8-rCe zUW_p3^HKkkbYVPSImA?}VxY|mWAu6Dkk`%?h?BuK1K}}8NF&e{RfOWKX3Ak7R!WY@ z$BZ4=l~DR~G@30DNV(z05bg{7ybzb_!V0uuaPobX!Bv2ug15prJ{_{<5Wj&coo-P^Pl+}z5Q}ounhc*4zj`{0zw*1 zkHrwQ;q1PZTh~$a7{D?>ECW>X;=1-pnx{4mm9L^z)Q50vjN6RX5k}BBG%*OzeF$fL zbcPAGd!IvYzJ2%R#fyJ@^YZ(DynTA|9km|y`F({;6a;RRU8dw<9+XFSxipgi9ld$| z`sw%2{_*zR^A|7wqY18xra+RmFF-Hee1Bq)B<8p(j-yDl^R0lMm_A^MMHirx*H4c& zQdAFaYv<^dQ)nwflHA1FWF2z5Y6tZ8*~@oLlY|Mb@s~EAn|0Pj73lA8pC3OzIeFd) zmP1k?X)=zTaj}}9+qo@bBb2wVyoRlFhP0 zStKEAW@WS4c=rMCSIm@yLI^k)qWK!AKiO zinj`$&+~|ZHjo60{O21eTF$7m#wL;iMe=-R^Ex1#r1R+W4HT`;Hp&uwGEju)-9|~* z5d+!e0O&mWd=o`dS9(OU@b}8jLTb=2|z=N8B6qLZdNiE<8W;{DSYs4J|Pw07QZEa}~e@NEKgKq+EFqqKRT#U{y z_CKJR-U3#hMcnxA;KFS%Fv%(@@_^&VE~Ik(rrELz+>1Ixtvxn1tOP}MjTnE_X_vT^ zs0b&5TYUeAs-GY+{vk@iN3cJ25$x?~YufZ7qDrh=_&#LM*CRnMC?qhoAj$AFzs3ea za9K}kx}Q>AlN3k!ba;o=z6gkDiL3L)A>f8JLyMM1Kod54!7v#wBHe5iTI8=XG_7$G z0m&gE{E&?tVJc<+;aI56i607ZrR5UgWB1- z7)#}^8>NK;GJ>n2c92<`k3@gCK{XrTcu&O(MRq3s)sst)KsfD@-paZ5o+51ZN}uE% zb4PM{qCvse4i&M(nqs6I@ECSWOIH%zVp^O;h^6Som{WpxOUt2zL&da+lb&3QwSsj! zrbSGf8Csl`3im%x)sATq6JSgW5@n!RQuG3Zd%9wFON+*J#kAl6hog?8_NV~4&$nTB z@NTIo?y_+-rbZ9%i>qbI7VM?n(sC$f(K;;&OB_`@rbV*6B3dXm#PzSMio4y?qP;c} zS|*jeRWGb}JV%;MJGy?U8mX2&`s1v2nuW3WSB6tZDSG+MYps3@^T&Km%}%ATX$t?6 z-+Qj_RWiHyvKRrWf}chDmg5%R%;_NX_gB3sh@$4KUUtSnVO3q1BR2vfRhW$)rLR2~ zc%)V~N-^<&)U*2$=Ln4|Mih>;{hV0RD$r+FT_08S>d&XB0z}r!-}s75ehrvKn1n|W z5Cs(W(DQCdwI-;JAjNbD)*Js8GPRFFh1s@3zIEn@`{lT9=k&9yFGliMn05MlqP3-g z$HlOR)Uov?SjHVO#f{P+mZ%4B0=4s47v&GALHgaQI9rsx_grm{%mh`RH&Mfn zy&`+YH~efnh7%_a-50RIM2JcFAza=)9n?Wft)#c83IMiSpwt@0}@%Fm@c4@k_IrCFB~UX zrIg)fz454`SXt_s*gX|!HoYV-C$zy-s=4`p$(kor1@{=OjLLe5^;VdjvdtW@9_TSk zg%ygN+S*XjpBC1q0_7|En?Pb@u2LjG)n*Ph5W52NK)#v7eAhb|wDc9`shGr5} z{to{FI#$MZ-ij-rkh1GS2e*#gl2_!;bux(?Rcc7nLjDV6mek^f zi7?SNS~wW&ML@WI#a$pqv5)j6Z&2pc2_BQP#EFb(JFwPCKn zB)0<)>t`Hpu~^S(Ezw&rmZ7FUxLzZyo#ia{pTL}$x!w&K@2%k2h&@R2V>ADX1ertJ(Xqsr)IQHs5lT3ucKdoV{_n zZo+i$6_57MM$J`Xw+YE-im>p}iGI*q3}|vB^nAFOP0+Mkub7tN@K6i()G8@&_-G5KJpm|^ zF*(kFKPNN z#09D~U5V;lAT!BZyO{6RHkHN(2rXkEVMoyOE7P`(*6b1jTwZkc@S<=v4I6Cekl=#d zIAOg)hTrX^>~6|y4?svD*#;=eGpPs;_f<&y*#;=e4r&16=)fkZFf@KlRzMRFWuj~W z6cSb%fheb~;U}V~A( z8LrH&MmSwKYM_)6u}z91d=?9>3E3Os_%EQn0z#sUJExQ|zss>nw!Dt5PLeiYO=%+b z?~*3rHy27CUa`#;jZU(=6#NIjeHmq{m<~NjN-eh>sH*;!3RSpg{Ot6*crn}*Rfl4* zuxlK9!mMJ)lJiDDC`qiflbd*sz~|+B+`CFm%(}>B|2NgU^R&ndM3*}(zW4t-mC0+# z9U#{QCPZ>KsR$#N4)~&7a=)AY0eh_sI?Q&zd5eXsOQyBIUcN;@c z6Vd3F<1Pu2PO!=m%BsgzRh$H!m;{;Q8zh9xB=75UqKj^qgotQI_}xHy8_waELBXyO zd5~&%sJA`%@QY(qy7PCYigFRs7rty^7@}ieJu+Bop+uiwb+7>(%$La4KUh+Epk3C0 zyT_@|s%u5vm_JkR$^(6d-lh6YMA6~r={f@BT?%(nmqJ~++@%5s@eWo{?UQLkVi@l# zHfl6DEk#^8Alea)ThlImt3Z@Cyde<_G+7bJl8ZH#GDqHo&_I<{?MU1oRUkQLAcWH5 zoJX!w3*}+?x7s=7x({VjREC5`ma{1w>`*9C1)Hqsol}Ye&W%aWZBYPpNKq{w&n77H zzS>p}2k(>XMK1sXlsO<(7(1CPd2x{(#2X5v(=KM+hDq{hBu!I&BmjxMk0_!8oTE&e z3EQO(DbAdf5GmI)s1syaFz>UScvG1z$783hsEWnvLp#f_koyA@;^MvMxp)>P#S#`0 z9TNeO3+4lbTTD<-sB+<=OI9`HLRU@qjh6r=>@Q_7epy44K<5C&x#ifWdTT< z)#?Df!CIj#ilphWR;QL;Ce0hwvhhlFB=IDJ*DkCReYSc*rFCPo+*ML&WvolSnHa`0 z&I-NnIUq5`tHxVL-KA=&V$g5mjNU)?b*Oeph$N7Dj-+~jAVFs7CJ2$5wupNn583Hi zA??5`vtwjv9!g3zuX_%i%oGT5Ypy81=`Bb7>Jg(yl~f6ffs7tuI}gSTbX0f|21BoI z%1Gh266B|_xpS5&C91?3Z0_nIL4sI9UH9bl^nHpYgJg@qJkC7{d_t-nMOZ`QEw;px ziSN2S0g5Q*1SWoi<*$hF23Mln<#=K+LO>pMP^{|&$|DA9I3!}AMehS?JZ#s?(q(K8 zt-8uQ+8n`XQ6#~O3?!F{{m3lbtXNJ zlLAjcjOaSj3k3m5$dTUm;+T^I7kacg@Q9i1faFRWBaPKcWCC$;L_FJqPwc}($F-iT03zk9mch-IPOY~-M6KyI8&4Y#Vx(JX-_U~ygd*ND4PFQiH4X; z$>Uc0l0Og)({ToLfW;|S=9ez(%;L-;Cy?-fRu`lGdjw2TY{s*%SD6xw#-8s!7UdZf zA?^s)tY%{xcGwQjv9M<1!VAy79%sg5brdb6^*eC}Dc+Mgs-t$6`L0qJka6@BkGU#@ z0EIZAn7T-A7%bMR5CSxE*&9uX8#`oiI48WQp%W}0HTjCxXv4`RE(jeEc{{&w@Z4rf znu~z6;sVuBOGk%~>B%2^+p^Y4@yaB5lZ+gATg;II3adC9;ker(BElS}YsK3r5x>?( z3Oe^bwf5%Tym=O5Yg+}R@3EtqD8doPQjd)8nsHl2OqAwUkAtq7se}$Ry2rxdv$kJm zN|zh5svFKXDj|^oRfltPw}9?ruX7Vs&~9B}3zuF@R>~W#aiLSrW>N_R6br5danQSn zQ$uX?jRYT4k@5QMVCkkm&Rv>VO!XG3_93cPPKGa6z+CiyjN+dtE;tFjus^ zl~baS{HO8k9MuWOK4G}w&SzyPN`&@!1~rzOqnN9RG>V$0~*`~@d2dP%68T&A7FuPS*+;q(60JDCt(dr~~_sY_jIbrn{~k#i&z z+AJUug)%e}VbOK`^tX2^i{LH#UQFQAjEha^{wPG13qVBCs)yc8kd53H<3|K#6zBs? z38xy`oJNf6&|)A>v#oa}bnKR)y+!N^jw5H<$?(Vl)p(NyLU1J3!hsuFJZlb!Mz=ta z{+bm8rNG_Am4GPv#5d42rY`_Z1zA{+|28`PirF(TV@!jevHzG}R5)Jl@u zYkV#iPQhXJUGBY%64TN1le`9&V_Ck>W*fE#_(M<-R7euqA-OXY< z%AKU&xiPI!Y+!+2-OO*4bE$NKK8fF!0scS_wSNLZ9)6G=ou8(nFgCoO@t+|>e_2zP zfcont%1{)p-ZGs$z8$z!al*o&A;2uIexH^mUYrVnJ1}c#>59mq zC3N*p?wi=A6g0R>VXWb61KNT0nJ=X^Q25 z*wYaMA*zQ?!YJU!50HjtNB6`)p)^Z&ao4~cMS8-A^+-MFuv2r1Q@dV@Dh>lJKa6oo zee^BIJZmudyA>JY872O*J`jJgF1+X$9;+VdmEb)*5wbIIMZh|g?2Mi(BhKG|NeYkc zG62tSvG8@y`dCkNO{n@VRG)20I%jAhVF(UoxSr6`s@d6}>Qj;Td&M`$&v1c=D&<7< z?06?gr~p=t*GQx9j#eJO#A6$mAN7f4tt*=5T1nc3xvfw1p}QwBEt=SsX?At&@AiS7N)iU6stO(e0}k0K)Aon%l=3b0GGXCIreGD&s2&10X9N^$Zt4n$?wjU{=sDr4;AC9-o?pGjdTIBf!V8d2 z;)NxCEHNgXm1IB))GRTqqfm0y5}><(ZsLwrI77{}@zCxy0=*`ydV}d%T^IqVi5i+K zgGb$X@v$q=0=l6|Ur%Yaj9K4yt{hO~tQ(xss5+T+2h=$0=A?^8#&hL>8fV?0s4Hpk zF-68?ZL@l&s|$+UAxGX79I25pd=irCEM`j~Ozkt~i^w-nWyO@-6Z051EKA}!bIr^6 zVwb;0X{wn}6e4%vB)s%WFKr3=F@TCk5k=6W=Vm&w1*Es1*;+!`*^u8EHUtH~z)@Pf z)jo7iY0&dj!mUs_LJTJjT-KpY+=ty*>36CpIv|`{eTv!x?&5vzMuqQFR~0+4kLi{K z2ZB#BZrN)Th&r1Mu8LK@6bp#@hTcBG+f}tg`5l1zNa$QNOdx=c_-&a%@ng2?fr#jE zo@Q8nQArmY4_6_$U{>Hc=s0rs@lpmBtk9y6_eGh<;U>vs6vWgm3pL$y}!?|hJ5+!uu%#lJfOz&|?f4AF^H3Pk zYm_5LabCZ8n-AUz`Z|mdAPb>2UQf~lOagLmAIaO*;HGYO zi{1C})HMNd{2dA$=E6w8?Ck|ITZ$oce5sOXB>?Els7p(UGpg~LSpLO`VofLFj?O>- z+Jfb@{K?#d9A!Peb67@shC+Q|3`904Iw+c?qno&B--1wGO_F)b`*oj}HV=*Zxb`T* zoptB+Tr0h40pFtfc)LoN6AmgnGF9e?&tUTgF@op^cs8;NhbKz^vHU602QGxZv3-6* zoot}xdJWA-zloj9PlaxnmbfD}7NP|{OZcpigo0LbBw=SL8x|$rzQ&CZf)!oQ(izt& z@7`fYng9(nwY`p_A({qI@h}2n<7FL%XptWSD55ATaE-g|k^giwVMei$?qg0&p`qbw zOPL(*+oR9>m%I0*uz>{BU}uv0?v5#B+PL#1(D(hu(+s=Zrz?D*)YZ&Mp3Dgq2We`j^^#Z#@M#38MI#Y8Vm-#P0HvBuFL z!w7G)@-Zzxh~K?)HqT@*I-;!UlH(!)s?3o?!EYlavJjshfcVhyibCF|nPvp&H|V^3 zic+9FRnNH?WJR1Q&_iW*g(4BfNIUd};t1MXcXn4ouErZm3wOse&Q%%;>w4~Vh&Zo9 zk~3L>Pz`E?oG(sM7|rRUgcmQ*MxgF}5zsIuagRJ$`xY~(iQK@iGu60Y_x*;2wh))s zlz|o{`MY6|a2<5Q?(ZD1{V!+i)1gUR+|)NMz=7J6)T@!p;im<`A(k8g83N2+L}72c zDM~yI#uZsU2bET0!m2H{ehd_>T9l!7pzTKq$^v>M%X$(-{?p{(m{4uuTi7zoY$0m2Pme};5tp6i@RJ$;yaD0l7*D@ zGQT3dz2STn_Z5J|YpUbRyH3;L?ZS6DWgm|eJjhFEUMW^Eh^`*;#kkZ>s4%WRT?Nz% zE|5gYX#{k=jlo`C;%|ipS^MtaoqGtUM8_WMbP&?G`{yGPzk@kvwz%@@7}KX4R4RsR zr!`7k_o-xFJ?k8}oHDX7G-dzk*}R^dQ5}6%+OWNyo!@7aQTZcFxs%3FN>Koc62YSS zWhRj5^;L=%sNu)Tb!Rd41-osExcp3oBHR@Q>j@vNo%uA7WL>}?MnJBjFr8dDr|X^R zETEX#;*LWWa~O_NEhPI6(Gzu-JV>N#YzqtfGlnE0oOS3Kr-V^<-DvIWIyd3{<>Fi zIBbr=H1SqgtQaUk5vrW@VYWe?VkmfIqToJHDWv79e!wdlQV0v!FT~(3Cpy9ppIwQW z6Yn`W#HtIt=26pV;<$vWR79;AV8Gcf1k_89jU3W;K%_pi;jKfkLGcMAGownRys8Tb zz+Okm30CH#&-<4av+wdAb3n8t5z2T0ft>3%WdRkuAY-6q^U}6fwit6FpkNtD*AR`* zqDaCBBOu%wAn_6W-TCuh_KH9KCFZ&XBuNYrkk|yFV`W0U?s8#DOpiNOWn@ zURm@@D!VG870bJI3l<$#fd=Izx`S(4G#lT&s)SY!Cwl5;f{a>;!q9f2Thfy4dL`1j ztNWgNRzh;{pg3zVlSzDnty^D>%|Oki9^NG1hssg43JuB7Dw7oUMxj8@m~dwy(t{|O zFV_KVuXuWV^zvm`Ito@F7v9jJiIGw%3PAbx-WHJf6KX)uzd3sL@~BGEX8`4Tapa~f z8X8CY*C<-AhWn4I1ZCzv0Ew+hfmr!eMN4*@w>K>Jk`xCK2o&gp8etrpyK}Srqj<=q z!PQr~E9?qm=z26>A#)*$t8vSskn4>OSyVw-`C$HSOs1Av>*WRV38EsQ5kXtD@)e5qvWIa{M_6DvEtkCbt14&O{N6~UU7u_AFWasovtR)d)$I;vJ5s>955^a)Y zDr^X3^hR_61&wu1f3sJdCMuW3Y&~;xKz*`KEMg0rbyP|fDmS!(c!|E=^R$1Ih%K;S(W>DXd+>Slh`53Li>L z|NQ#CZ!y)sZ2^cCxln7#4D)@>$pLST8c_4zfD0{oMsvRm-0I5l0CkRrDsx}(f4i-# zTifjyJ^|(w$-`E0a_jp7daxsx@#eEsOW7|BM3UbwTWmxuG(U6$B`NTLLwNO+`crP~N~5@koFSuPS-i>sa;a zclGZZy2yaCItu=%KoYq==ZG+Fij&M)yofddu>cn!H?I(yxf&XdBKO#dRNTr8O`iza z0^3yh^h4ttYC=&A^aUz>GA(j*Z@v!Lx#-af5)+-z`S~Chhv(3<4wC4sO_gHkQRVZ>!osB?Ez8|+m9FQ2xV~y=9R0y{&01_!8YUo9| z%mt^qIkWAFVwsxvRu_8EQ|tlRaC4K#p$CRz`vR=1>l79f(658d4IXrTqC-q{_h13qs_1vYyC~3@l!##KdO&AX}2x-~Vnd84s zw;i0wBF`m!bcpWFQYgF{mbY`$np9Rwh83u(uJ2v;IM!o~*&;Qt4V}T19UMZ3nA59s z@~OIbX=(~IuQkyzWJgyn_#S9E8;=Gl-rIm@0X@_iUvf2g^7@QtACTR`Ii=cN(-(O% zj6KBzQ5iKU7YF?rh(Z}11h+%6=^@Uf==`VKVwUgdKHDx_IAD_I99lrYS=!@Lg`LxS zcL9-Rnwp*i;vmWxENHhEG_$PsIg3au9u_SY(@2aMkC@*{^nGn`Em0#z6hB$6A{XR_ zRzm7by;0Osf+d0>3@ZS|VWr8C24HZskXji~;r4?pV-j1?>#8Ecoq4&4Qm59rtqwu% z#v;3bLg%W^dE=buO6>`7rUA$wKxB~NequSaR=CrZ1_jNuB*(>#(W2qQ5Db)AzsxD% zZ^6Fs*i(M2r39ET(f$i^6v&!+v(dpwlpgmNqj|l$tXp>Uo0r}Tgqe-CNH+a3(Y^u@ z6%#~G4jJ#xW*;ky*@y<}N_mA@GT$f-Blwl055d6eI&NE#Dx*W~cbcG~e%@A={r^6r7R^fCQ-*vp0p|$9c z9HZqBPdZpTqh_^nW;|mK#;s*7Fv6j1{z#!Yh^3w<%DDd>-WOXY(h=E;O{r>2sM&Ps zI>pGKUYtJ1|9@O8f6^d{YFLsE?cpZ?J>f2jyKKm#J|iFNNB&-Q9OFV#>El@#n_Y7^ zJrI%tmMg^XK-*ePaA%%$=^y7gwn9gxZlD9&D}F5(v;7aF0jl40PJacD|CiI=Xf@JY zIt_`}C;kymAL`{#wrcV687Y<1K!_z<09C?~;Pt5&eUuQ#TE)k9 zGy|RVh>ly}P%ZT07g2RR^Fai}5o6&NS*)(+NOy+S6=%{7Tp^c{C8IHlbsK}&Wi+N{ z=9u>^7KqX@f_yn>`_O#)xbhR>X!iSEC6EJxqY27QW3Fr_z03)Y;yyc47pT60!@c|% zcL-DNtDghVS<3#u7nkacrZu>oK~S-(*# zjTkn$_Zk}pRAaN4{)q3C$m&3YpXvC@pY+k?Lfj-YYAXg^EC~ceGM`H~kyIS?76XKP zaNnQ>T_X9%FhXlYmG6P0DfSIa-`op_D`SWU1Gat?9pub#9JlpWR!|@Y2$&fmj6m|{ zRSA&>RtiKJ*Eo|Jvvbb*xn#%rts<%;KR~rQ>@GM-md;3Jmd-B_+^R^qSCvq zC=?n(?!N(dSPgm1ttm_Sa|=_4sG)H_UB7c0=UcqoX)1q>6rYqe#YOb=U9v8%rR{*U z&C0-)`anC=dJi+>q&yTSgkR8AX$?G5Z((*DF6jjbtV(WKNOwh{^*|!ma@5cQ`~-?L zj=`-15EK&O0A!SKc&M9Ad8DUOmP4OJku38DoUMkY*@5w_#cNQusL3PIZ(N$8V|E>6 zBePSWI`-Kyq9>FKJvUVM}#VvJX_2^3G%9(?MoESA|C2MD2= zq+MYNUe7XV4xvNaa3;DL5B8=A$Vpcongmj)gDtaq44;@k!y+KjJL$$Io|=GYDWHxb z_Jna3rKH4!Pcxh4pJ&gHj|$vBN(~c=wKORvgIr8IxUJMoFW%W=qQuAH=*CmZhMH65tUMB>-iuD ze~-4BH6-2jTV(QM30cYfx)ABkx&JddA8H4e&f@2Y61Ns_>gstY(Z!3O!`1T^m2X*0 zZTo|AtEyM=pGC4Asu==-k6Q#US<|PRje8uiu7~T@Y(X(Ow7z;nSTPIjN+_ye=k$-5 z*jFPI)S{xeT348RY_z23OU&w`fh6r5S)plf$22|W$boDtD7Uu5Z|mkLS@0fd;^?nfwK@@7NkV%^q$T~D{!vDSVSal4d2!$#Mj zu0=Cmh_y8VN*NLsvVXOE^L2>dj24Uke*eNyiL^UI4Aj_mVw=Fw7^t!Bgq?RODNZp^ zW7`R{Nl0;*8x_Ss_ZytT;FMff@)5xjIud})nKziN5l|W_6*NY*qO#9%t}#Hcuhn9W zK&GB#(j!LeQ}}?c2D+@hDtSP@n>f3w8+CpTmZ-4E-5PX@p&v*8g3QEnnQjQ=wwNud zb)blWnn<#M97S;A4JZIJX(_iX`OjY4va~+&pL(&(HM<&EO{Nr)-dR!2=V1zz2ES75 z>rxz_H>LGyFp{IHiPI`ftl>F^uQ)Owm}Mx{spt$=p4o)uBhIK+<6OC=M_R$2FlW@m zvA91QB1xM(4T4oh*16~L+YT!W6aoz06`(VYLisIUyyTWRiXtGPXOxWXB~$u}A_yEk zZsQhG(8U2ca~y>j)Ge2$rAV25p-vf8PefIy*%@UQ0uAx2!w_#;7?*1ePFh}698MTm zQd?8zAF(Rpq~A$}O__Ey{mVqUR}VN#79Gkdod>G!TuX%L&WATTQOsBZcz>GTvp2nC zl`Qg@R|loLm3|$QFTLWlst9cb`hY?+a7y%`db)+lW7B>61%^k3st_V#jBbnkD-9-y zSdx9Y9iPkqe8If|wU4GW&IHIa=!WtEmha0CTrr)pEnEi9L4PUDgFUaKc*3w8RZc&a zolglf5-A+{s5_^}$-z<7B5&v`6zCosL6@^~JfdJL+o5|d&!v0Aog4}@Txs%Gh);@Y z077aKZOP7PJqhga9$#9Qvp|a)6)v=~uIDjc+z>5DZz%esMW2$c)Tqm+&QWygn8%K4 z`IIM7l!zRiFDppTBP8qml8jc^PXXlfFJh9S#0!%mada)`;r>g8g@%e$37d~46uliw zjyANc(m{$wMmO6X9feo}V>)h;HBgSJvvT#JL?OaP<<(MGyP}Qrc~=8UPe9Vh6Hf0i zEXnEP30-tFQ-GN`-=kCci%{i5HS^~VtV0_sy371|Ac<~8sThfF{hh07x=V|xl>6IE z2-`yp2~>!6aubm9N?oMk2#ilJ(OY@uJ!^2#XNvvV7C6ZQVu~Q1N0^PpfV%g^$ya-WS4c#|UWxharyvk^TbBp_6KiCTtE3G-JV*_JR(_pq4G z3F`DttdkkR=UsP-fZ19KDw}O0BQ$uV!Kh4;Y>A%Qm|PG*%q-nyY`K;TUfY2PY7wBt z406UA97!4j)^auAc8AA>M*9+9qQ#ahnCL&g=`Bb7RQ7n?`4PvSC=hv9roKBv%vwR) z;r3L^h72fFrK!_Elx%Tp)7Gy+pjJ%@Jfcj8SkD^ZrLbN zM2G5z;(d@AVLP!fDSIf{skt&};i!m{o!sp$3)JL}FkD%M_-7rPn4;`l@yxR&sUglo zFBiIm7zicGCug%U!ilT<&A6CqArD89j~gO+L8v4&B6AzokQ56b+H||>#q_>7HI$+R zNN$B@xh=rnKO z_en7JDs)5h?e{ybcvuU5@_bPMs1MBJdu;$86*H6jZGY>fkR3gyCXDn z!Q@%8&ShOk0#tsSV;xfvMCbGmv5KIRy)_UROk*-<`F&H0lfB3_bC}vL4|bdzfwq+>Rn4wWWv@DYnY3(WodK zd&c7e7SUJx#YHdlNRn#R0OI!9bSN!n>jnH8ed;8IjprM);+)iL1oX}Kl$8D?#I&|E zDk)61Tu}y=M)}gQ4>eNGOV%pftmRIAe`3q|SOsGJ!G#U@El8RJRS=MDF%@qr`=!ZJ zjUon06%nx1qDYmI)fLLM*(E*z#1u7@TF}+JK9hA=be8UADjR8z{i5UlaR2DcKjP@s zxY)8*a>>+O-lFL8@-m&Y25T^1fE&sZs>+UCB!Lm-^m4SAO*#C!=#=TD+;WoWO}es- z8lqB+6#lMmvnx_#-MVvZto=6hET?8O5Gf<<4DhX%A|E}WT3U_rh=HJsqCN#F*T@5x zT$z+8gQ7#pd0a9OR^*xj*cyju0J+oX3T?$Fo!?^-AZ~Li{ZH{9&J4T6`#tjgXLLVZ zkiu**CpeI@_fH<>w_lj{vA5}`7TqTWICH7)`PS^FdZjR z=Tw3#FeEugM6(8L%+K&ah;E;}5CON)mK3P8tp^%jWB29R2-2uMRT5~Dl*9;mOCIMxxp7mQaHz^`YFsO345tRsV$iyI9ak;S zN1VmiVVyNeafjUj@duin9mzehK1E&@ZdDB)|XiV?~%({!aS&FTWZi}z8I7}m7WifYoVe91gzIQ?Q>t)Zy3 z)azbF<#un8%R45E6`SHSBlB0I2`qjZ58JRb!KjQ*<2IgJMiL5}6VYjRJKz$`{v(G~Cw$(vzE45Z^oV%Scw#Hj9atA_J-2 zC#a7HV;?ta0m%(r*0hK@R{|`2UdY+7yknp_?z+`(o5@p663sL=zRA8emJwhD8 zJfO_U;fJyXi)GT^M-9ilMIG1Mw1~KM|CAf?DhpIoi#Okh6QD0!;b=8ZZ?KboGRuzH ziRS1IH#r=;l59Zr)X8n1sXXmK=(iP4E1~@YM1|V3lsK@>Kqs%?K708Ni#XhW8Kx`^*r06X18L>cYFsVp}`YLJ? zPP<;*U!PGTsR|TFTKY?5B>-$!QJyg^x1sWzbklG+8&rcl3MsP|ZviL3=(n?v$A5DoL#nG`L>w(5#`ebJaF@3O zz1Bw_XueB3^GQn6E)7ENh8cCZ^ZTzJQec?x4keeBPi}3M7l3MWWd@0INL~!&?a8&) zdm*Q(e#7iamx>%vz4e}@dKc1ruMR}#7p~(tS4U@9QCwD&RgatOzNuwYLEStG;SUua z`WJqWVoQk9n{9Q~y(5PO10jMD_2wvQFw&j9>TClQl3O4Y`NK4d;ZO3?{P7iKZn^y` zS!n_k=cGkgAunxnR+<2XRI&&rPAA)(OeR3C+emG7JJEBpG4euymM)N^328f^RBAXP zlHV4PS}cfWQ8P4(6$W7r0ZfQX>?p?)IM$MzRh%xw8Bd4mW0?V3>sjw!0(6EqH&N0hlSVv54f z$icuoVP#q7fn+7Ib78TblXHQt)37tZHwU>?Lu|+Y>$Fu~LUiqhWwOs*+%p3+mQXky zX)R)#uA%mvT@`0OV+DBuzLlf_q$<2!wgjDMLq_)O$IZBS*4fX z-m*VJshyPXUgl>`?Z+GwE8T*d{1bkUoKRaXHnD%tuU^BU(UKT);*h?eTJXw$zk8tu z>^Iya!CiUvo+=H+5EwDV62t~@G2$BQ5udO040c6sA+@qGx)RH_S|fmM)EgrX(uHEI zm$>q#lT@6Mlv@v07d1ttHn@upS&86C=gO(_zfkmt~ocN_U)AkH~Y`Y-dtCNDF@TkY>;LU zj2I!;HcAih^&txCqMX=6TZEfYg;mU zAFig713}x`pyHriPkW0iU+<(UBmAsc6;Gs?OO#}jQ7AnS3%`6@g|6h<_&STlC{&nE z_`+b7^3(DK%H>DAK?9J^S{;NwW%^b5v?8DdI~;h%JL_N>^8Z@vNFuQnD8G6cKhUeV{0ml@La>7&g84jII6j|wL_c&Kqfkch(&&IQwmcVo!@jFiOQBrlUiN8^R zM%ST8`X37rmz|4PQhR9*jV(+9^!hp!>G8qL&Uy=CvMh@3b99bS^!7RwiOoxZ661bM ziF<8PEZBpuL}ul*4N>&Y9Bo7m)8N3j8CEH*X9sKVa`pl z=GW_tNNhJWB91MYl)WX2Z&JKc2Gv?MfyZQWDTh4-+h-tzHP7Vz;s^R(Cxle`I3S9y zN8%TXHsLrVF~+qsUK|`8d>zg*;}km->*#taKuChklmcjbo1LN;0X0`7G$_&%i3vr`6$#D2 zYn46`Ma>lnEs7*wI-;m?HDXO#!7e)exJZAE08DP8;_l;h$Q!wW)7>AmI4XiwAYI=# zL)m zaG%L2E~LV0DN%fP#|T)qa9b`fBHz0+S*%^PhSHXO)EfL#K{C=vEeOse6<^B zLT=~uRX8zdK^mt7z(tLkEJup*AO3IP5Hf3y6avRG6#bzq*TpJ7wp9)kChg4Df zvXs1wCt0L+Opy}eG|kS@4R06)iVA1uvALgC(SkFQI}!;FC8eCKLN9|5YWACA-8( z=7HFE+fa@M+Fa1kz2@xJjviaoFBHuP*}jrHLS>6?Hqd|QaV*oO%cSA<>`EYp1Ilq& z(C!k*-js_D7w$~zYiC^RWVvpI`VLs1n2RWx_|yg zkG*t{DP1W=7ifO6VO&778uiIx%1>bBMA@%7W3)eU8ZFToAW|)U<1NBMt);cdt)Kz~ zo8)jE?mK6$;;1#Whn&1t0iuSsRFDA*>0jH?-#%)>0J)aRa zkN5{9Iww9{H|O%(v>|eIn-qL1xr!UErXT9dkdch@t1Ct%2C5eatpY~+SZ(7={7zJx zc1h)GqhmtrWiv%dB*+e9=CnxPhXv*lCj{S|(hEw=^1tb0?6!0ROt+dofmH*m08&>7 zxva6>xDy_V!f=HG?Ec({^;LP}N`pHrku5oOzlxOJV2(CLw%A_;Xrma}y+w)oXKRJQ z${xWI_Z0_s8apZ_2R9NT_6|#vmy&}UfE>@?iQsh$PgbTbKRLvr*5bZ4O})pss2+K5 zm^K;zPqEFjwkk@rBO=}pcJ~mN`tkEWz9OA(T>Mo7`j=0>a<}Hua<>2I(f!B!-LDW$ I^yI7m2cIP2wEzGB diff --git a/gen/usr/share/man/man1/addftinfo.1 b/gen/usr/share/man/man1/addftinfo.1 deleted file mode 100644 index 5396ac2..0000000 --- a/gen/usr/share/man/man1/addftinfo.1 +++ /dev/null @@ -1,111 +0,0 @@ -.ig -Copyright (C) 1989-2000, 2001 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be included in -translations approved by the Free Software Foundation instead of in -the original English. -.. -.TH ADDFTINFO 1 "27 June 2001" "Groff Version 1.19.2" -.SH NAME -addftinfo \- add information to troff font files for use with groff -.SH SYNOPSIS -.B addftinfo -[ -.B \-v -] -[ -.BI \- param\ value\fR.\|.\|. -] -.I res -.I unitwidth -.I font -.SH DESCRIPTION -.B addftinfo -reads a troff font file -and adds some additional font-metric information -that is used by the groff system. -The font file with the information added is written on the -standard output. -The information added is guessed using -some parametric information about the font -and assumptions -about the traditional troff names for characters. -The main information added is the heights and depths of characters. -The -.I res -and -.I unitwidth -arguments should be the same as the corresponding parameters -in the DESC file; -.I font -is the name of the file describing the font; -if -.I font -ends with -.B I -the font will be assumed to be italic. -.SH OPTIONS -.B \-v -prints the version number. -.LP -All other options changes one of the parameters that is used -to derive the heights and depths. -Like the existing quantities in the font -file, each -.I value -is in -.RI inches/ res -for a font whose point size is -.IR unitwidth . -.I param -must be one of: -.TP -.B x-height -The height of lowercase letters without ascenders such as x. -.TP -.B fig-height -The height of figures (digits). -.TP -.B asc-height -The height of characters with ascenders, such as b, d or l. -.TP -.B body-height -The height of characters such as parentheses. -.TP -.B cap-height -The height of uppercase letters such as A. -.TP -.B comma-depth -The depth of a comma. -.TP -.B desc-depth -The depth of characters with descenders, such as p,q, or y. -.TP -.B body-depth -The depth of characters such as parentheses. -.LP -.B addftinfo -makes no attempt to use the specified parameters to guess -the unspecified parameters. -If a parameter is not specified the default will be used. -The defaults are chosen to have the reasonable values for -a Times font. -.SH "SEE ALSO" -.BR groff_font (5), -.BR groff (1), -.BR groff_char (7) -. -.\" Local Variables: -.\" mode: nroff -.\" End: diff --git a/gen/usr/share/man/man1/afmtodit.1 b/gen/usr/share/man/man1/afmtodit.1 deleted file mode 100644 index 993044d..0000000 --- a/gen/usr/share/man/man1/afmtodit.1 +++ /dev/null @@ -1,337 +0,0 @@ -.ig -Copyright (C) 1989-2000, 2001, 2002, 2003, 2005 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be included in -translations approved by the Free Software Foundation instead of in -the original English. -.. -. -. -.\" Like TP, but if specified indent is more than half -.\" the current line-length - indent, use the default indent. -.de Tp -. ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP -. el .TP "\\$1" -.. -. -.de OP -. ie \\n(.$-1 .RI "[\ \fB\\$1\fP\ " "\\$2" "\ ]" -. el .RB "[\ " "\\$1" "\ ]" -.. -. -. -.TH AFMTODIT 1 "13 February 2005" "Groff Version 1.19.2" -. -. -.SH NAME -afmtodit \- create font files for use with groff \-Tps -. -. -.SH SYNOPSIS -.nr a \n(.j -.ad l -.nr i \n(.i -.in +\w'\fBafmtodit 'u -.ti \niu -.B afmtodit -.OP \-mnsvx -.OP \-a n -.OP \-d desc_file -.OP \-e enc_file -.OP \-i n -.I afm_file -.I map_file -.I font -.br -.ad \na -. -.LP -The whitespace between an command line option and its argument is optional. -. -.SH DESCRIPTION -.B afmtodit -creates a font file for use with groff and -.BR grops . -. -.B afmtodit -is written in perl; -you must have perl version 5.004 or newer installed in order to run -.BR afmtodit . -. -.LP -.I afm_file -is the AFM (Adobe Font Metric) file for the font. -. -.LP -.I map_file -is a file that says which groff character names map onto -each PostScript character name; -this file should contain a sequence of lines of the form -.IP -.I -ps_char groff_char -.LP -where -.I ps_char -is the PostScript name of the character -and -.I groff_char -is the groff name of the character (as used in the groff font file). -. -The same -.I ps_char -can occur multiple times in the file; -each -.I groff_char -must occur at most once. -. -Lines starting with -.B # -and blank lines are ignored. -. -If the file isn't found in the current directory, it is searched in -the `devps/generate' subdirectory of the default font directory. -. -.LP -If a PostScript character is not named as -.BI uni XXXX -.RI ( XXXX -are four uppercase hexadecimal digits), and is not mentioned in -.IR map_file , -and a generic groff glyph name can't be deduced using the -Adobe Glyph List (AGL, built into -.BR afmtodit ), -then -.B afmtodit -puts the PostScript character into the groff font file as an unnamed -character which can only be accessed by the -.B \eN -escape sequence in -.BR troff . -. -If option -.B \-e -is not specified, the encoding defined in the AFM file (i.e., entries -with non-negative character codes) is used. -. -Please refer to section `Using Symbols' in the groff info file which -describes how groff glyph names are constructed. -. -.LP -Characters not encoded in the AFM file (i.e., entries which have \-1 as -the character code) are still available in groff; they get glyph index -values greater than 255 (or greater than the biggest character code used -in the AFM file in the unlikely case that it is greater than 255) in the -groff font file. -. -Glyph indices of unencoded characters don't have a specific order; it -is best to access them with glyph names only. -. -.LP -The groff font file will be output to a file called -.IR font . -. -.LP -If there is a downloadable font file for the font, it may be listed in -the file -.BR /usr/share/groff/1.19.2/font/devps/download ; -see -.BR grops (1). -. -.LP -If the -.B \-i -option is used, -.B afmtodit -will automatically generate an italic correction, -a left italic correction and a subscript correction -for each character -(the significance of these parameters is explained in -.BR groff_font (5)); -these parameters may be specified for individual characters by -adding to the -.I afm_file -lines of the form: -.IP -.BI italicCorrection\ ps_char\ n -.br -.BI leftItalicCorrection\ ps_char\ n -.br -.BI subscriptCorrection\ ps_char\ n -.LP -where -.I ps_char -is the PostScript name of the character, -and -.I n -is the desired value of the corresponding parameter in thousandths of an em. -. -These parameters are normally needed only for italic (or oblique) fonts. -. -. -.SH OPTIONS -.TP -.BI \-a n -Use -.I n -as the slant parameter in the font file; -this is used by groff in the positioning of accents. -. -By default -.B afmtodit -uses the negative of the ItalicAngle specified in the afm file; -with true italic fonts it is sometimes desirable to use -a slant that is less than this. -. -If you find that characters from an italic font have accents -placed too far to the right over them, -then use the -.B \-a -option to give the font a smaller slant. -. -.TP -.BI \-d desc_file -The device description file is -.I desc_file -rather than the default -.BR DESC . -. -If not found in the current directory, the `devps' subdirectory of the -default font directory is searched (this is true for both the default -device description file and a file given with option -.BR \-d ). -. -.TP -.BI \-e enc_file -The PostScript font should be reencoded to use the encoding described -in enc_file. -. -The format of -.I enc_file -is described in -.BR grops (1). -. -If not found in the current directory, the `devps' subdirectory of the -default font directory is searched. -. -.TP -.BI \-i n -Generate an italic correction for each character so that -the character's width plus the character's italic correction -is equal to -.I n -thousandths of an em -plus the amount by which the right edge of the character's bounding box -is to the right of the character's origin. -. -If this would result in a negative italic correction, use a zero -italic correction instead. -. -.IP -Also generate a subscript correction equal to the -product of the tangent of the slant of the font and -four fifths of the x-height of the font. -. -If this would result in a subscript correction greater than the italic -correction, use a subscript correction equal to the italic correction -instead. -. -.IP -Also generate a left italic correction for each character -equal to -.I n -thousandths of an em -plus the amount by which the left edge of the character's bounding box -is to the left of the character's origin. -. -The left italic correction may be negative unless option -.B \-m -is given. -. -.IP -This option is normally needed only with italic (or oblique) fonts. -. -The font files distributed with groff were created using an option of -.B \-i50 -for italic fonts. -. -.TP -.B \-m -Prevent negative left italic correction values. -. -Roman font files distributed with groff were created with -.B \-i0\ \-m -to improve spacing with -.BR eqn (1). -. -.TP -.B \-n -Don't output a -.B ligatures -command for this font. -. -Use this with constant-width fonts. -. -.TP -.B \-s -The font is special. -. -The effect of this option is to add the -.B special -command to the font file. -. -.TP -.B \-v -Print version. -. -.TP -.B \-x -Don't use the built-in Adobe Glyph List. -. -. -.SH FILES -.Tp \w'\fB/usr/share/groff/1.19.2/font/devps/download'u+2n -.B /usr/share/groff/1.19.2/font/devps/DESC -Device description file. -. -.TP -.BI /usr/share/groff/1.19.2/font/devps/ F -Font description file for font -.IR F . -. -.TP -.B /usr/share/groff/1.19.2/font/devps/download -List of downloadable fonts. -. -.TP -.B /usr/share/groff/1.19.2/font/devps/text.enc -Encoding used for text fonts. -. -.TP -.B /usr/share/groff/1.19.2/font/devps/generate/textmap -Standard mapping. -. -. -.SH "SEE ALSO" -.BR groff (1), -.BR grops (1), -.BR groff_font (5), -.BR perl (1) -. -.LP -The groff info file, section `Using Symbols'. -. -.\" Local Variables: -.\" mode: nroff -.\" End: diff --git a/gen/usr/share/man/man1/eqn.1 b/gen/usr/share/man/man1/eqn.1 deleted file mode 100644 index 73a321f..0000000 --- a/gen/usr/share/man/man1/eqn.1 +++ /dev/null @@ -1,1160 +0,0 @@ -.ig -Copyright (C) 1989-2000, 2001, 2004, 2005 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be included in -translations approved by the Free Software Foundation instead of in -the original English. -.. -. -. -.ie \n(.V<\n(.v \ -. ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X -.el \ -. ds tx TeX -. -. -.\" Like TP, but if specified indent is more than half -.\" the current line-length - indent, use the default indent. -.de Tp -. ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP -. el .TP "\\$1" -.. -. -. -.de TQ -. br -. ns -. TP \\$1 -.. -. -. -.\" The BSD man macros can't handle " in arguments to font change macros, -.\" so use \(ts instead of ". -.tr \(ts" -. -. -.TH EQN 1 "20 February 2005" "Groff Version 1.19.2" -. -. -.SH NAME -eqn \- format equations for troff -. -. -.SH SYNOPSIS -.nr a \n(.j -.ad l -.nr i \n(.i -.in +\w'\fBeqn 'u -.ti \niu -.B eqn -.de OP -. ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]" -. el .RB "[\ " "\\$1" "\ ]" -.. -.OP \-rvCNR -.OP \-d xy -.OP \-T name -.OP \-M dir -.OP \-f F -.OP \-s n -.OP \-p n -.OP \-m n -.RI "[\ " files\|.\|.\|. "\ ]" -.br -.ad \na -. -.LP -It is possible to have whitespace between a command line option and its -parameter. -. -. -.SH DESCRIPTION -This manual page describes the GNU version of -.BR eqn , -which is part of the groff document formatting system. -.B eqn -compiles descriptions of equations embedded within -.B troff -input files into commands that are understood by -.BR troff . -Normally, it should be invoked using the -.B \-e -option of -.BR groff . -The syntax is quite compatible with Unix eqn. -The output of GNU -.B eqn -cannot be processed with Unix troff; -it must be processed with GNU troff. -If no files are given on the command line, the standard input -will be read. -A filename of -.B \- -will cause the standard input to be read. -. -.LP -.B eqn -searches for the file -.B eqnrc -in the directories given with the -.B \-M -option first, then in -.BR /usr/lib/groff/site-tmac , -.BR /usr/share/groff/site-tmac , -and finally in the standard macro directory -.BR /usr/share/groff/1.19.2/tmac . -If it exists, -.B eqn -will process it before the other input files. -The -.B \-R -option prevents this. -. -.LP -GNU -.B eqn -does not provide the functionality of neqn: -it does not support low-resolution, typewriter-like devices -(although it may work adequately for very simple input). -. -. -.SH OPTIONS -.TP -.BI \-d xy -Specify delimiters -.I x -and\~\c -.I y -for the left and right end, respectively, of in-line equations. -Any -.B delim -statements in the source file overrides this. -. -.TP -.B \-C -Recognize -.B .EQ -and -.B .EN -even when followed by a character other than space or newline. -.TP -.B \-N -Don't allow newlines within delimiters. -This option allows -.B eqn -to recover better from missing closing delimiters. -. -.TP -.B \-v -Print the version number. -. -.TP -.B \-r -Only one size reduction. -. -.TP -.BI \-m n -The minimum point-size is\~\c -.IR n . -.B eqn -will not reduce the size of subscripts or superscripts to -a smaller size than\~\c -.IR n . -. -.TP -.BI \-T name -The output is for device -.IR name . -The only effect of this is to define a macro -.I name -with a value of\~\c -.BR 1 . -Typically -.B eqnrc -will use this to provide definitions appropriate for the output device. -The default output device is -.BR ps . -. -.TP -.BI \-M dir -Search -.I dir -for -.B eqnrc -before the default directories. -. -.TP -.B \-R -Don't load -.BR eqnrc . -. -.TP -.BI \-f F -This is equivalent to a -.BI gfont\ F -command. -. -.TP -.BI \-s n -This is equivalent to a -.BI gsize\ n -command. -This option is deprecated. -.B eqn -will normally set equations at whatever the current point size -is when the equation is encountered. -. -.TP -.BI \-p n -This says that subscripts and superscripts should be -.I n\~\c -points smaller than the surrounding text. -This option is deprecated. -Normally -.B eqn -makes sets subscripts and superscripts at 70% -of the size of the surrounding text. -. -. -.SH USAGE -Only the differences between GNU -.B eqn -and Unix eqn are described here. -. -.LP -Most of the new features of GNU -.B eqn -are based on \*(tx. -There are some references to the differences between \*(tx and GNU -.B eqn -below; -these may safely be ignored if you do not know \*(tx. -. -.SS Automatic spacing -.B eqn -gives each component of an equation a type, and adjusts the spacing -between components using that type. -Possible types are: -. -.RS -.TP \w'punctuation'u+2n -ordinary -an ordinary character such as `1' or `\c -.IR x '; -. -.TP -operator -a large operator such as -.ds Su `\s+5\(*S\s0' -.if \n(.g .if !c\(*S .ds Su the summation operator -\*(Su; -. -.TP -binary -a binary operator such as `\(pl'; -. -.TP -relation -a relation such as `='; -. -.TP -opening -a opening bracket such as `('; -. -.TP -closing -a closing bracket such as `)'; -. -.TP -punctuation -a punctuation character such as `,'; -. -.TP -inner -a subformula contained within brackets; -.TP -suppress -spacing that suppresses automatic spacing adjustment. -.RE -. -.LP -Components of an equation get a type in one of two ways. -. -.TP -.BI type\ t\ e -This yields an equation component that contains\~\c -.I e -but that has type\~\c -.IR t , -where -.I t -is one of the types mentioned above. -For example, -.B times -is defined as -. -.RS -.IP -.B -type "binary" \e(mu -.RE -. -.IP -The name of the type doesn't have to be quoted, but quoting protects -from macro expansion. -. -.TP -.BI chartype\ t\ text -Unquoted groups of characters are split up into individual characters, -and the type of each character is looked up; -this changes the type that is stored for each character; -it says that the characters in -.I text -from now on have type\~\c -.IR t . -For example, -. -.RS -.IP -.B -chartype "punctuation" .,;: -.RE -. -.IP -would make the characters `.,;:' have type punctuation -whenever they subsequently appeared in an equation. -The type\~\c -.I t -can also be -.B letter -or -.BR digit ; -in these cases -.B chartype -changes the font type of the characters. -See the -.B Fonts -subsection. -. -.SS New primitives -.TP -.IB e1\ smallover\ e2 -This is similar to -.BR over ; -.B smallover -reduces the size of -.I e1 -and -.IR e2 ; -it also puts less vertical space between -.I e1 -or -.I e2 -and the fraction bar. -The -.B over -primitive corresponds to the \*(tx -.B \eover -primitive in display styles; -.B smallover -corresponds to -.B \eover -in non-display styles. -. -.TP -.BI vcenter\ e -This vertically centers -.I e -about the math axis. -The math axis is the vertical position about which characters -such as `\(pl' and `\(mi' are centered; also it is the vertical position -used for the bar of fractions. -For example, -.B sum -is defined as -. -.RS -.IP -.B -{ type "operator" vcenter size +5 \e(*S } -.RE -. -.TP -.IB e1\ accent\ e2 -This sets -.I e2 -as an accent over -.IR e1 . -.I e2 -is assumed to be at the correct height for a lowercase letter; -.I e2 -will be moved down according if -.I e1 -is taller or shorter than a lowercase letter. -For example, -.B hat -is defined as -. -.RS -.IP -.B -accent { "^" } -.RE -. -.IP -.BR dotdot , -.BR dot , -.BR tilde , -.BR vec , -and -.B dyad -are also defined using the -.B accent -primitive. -. -.TP -.IB e1\ uaccent\ e2 -This sets -.I e2 -as an accent under -.IR e1 . -.I e2 -is assumed to be at the correct height for a character without a descender; -.I e2 -will be moved down if -.I e1 -has a descender. -.B utilde -is pre-defined using -.B uaccent -as a tilde accent below the baseline. -. -.TP -.BI split\ \(ts text \(ts -This has the same effect as simply -. -.RS -.IP -.I text -.RE -. -.IP -but -.I text -is not subject to macro expansion because it is quoted; -.I text -will be split up and the spacing between individual characters -will be adjusted. -. -.TP -.BI nosplit\ text -This has the same effect as -. -.RS -.IP -.BI \(ts text \(ts -.RE -. -.IP -but because -.I text -is not quoted it will be subject to macro expansion; -.I text -will not be split up -and the spacing between individual characters will not be adjusted. -. -.TP -.IB e\ opprime -This is a variant of -.B prime -that acts as an operator on\~\c -.IR e . -It produces a different result from -.B prime -in a case such as -.BR A\ opprime\ sub\ 1 : -with -.B opprime -the\~\c -.B 1 -will be tucked under the prime as a subscript to the\~\c -.B A -(as is conventional in mathematical typesetting), -whereas with -.B prime -the\~\c -.B 1 -will be a subscript to the prime character. -The precedence of -.B opprime -is the same as that of -.B bar -and -.BR under , -which is higher than that of everything except -.B accent -and -.BR uaccent . -In unquoted text a\~\c -.B ' -that is not the first character will be treated like -.BR opprime . -. -.TP -.BI special\ text\ e -This constructs a new object from\~\c -.I e -using a -.BR troff (1) -macro named -.IR text . -When the macro is called, -the string -.B 0s -will contain the output for\~\c -.IR e , -and the number registers -.BR 0w , -.BR 0h , -.BR 0d , -.BR 0skern , -and -.BR 0skew -will contain the width, height, depth, subscript kern, and skew of\~\c -.IR e . -(The -.I "subscript kern" -of an object says how much a subscript on that object should be tucked in; -the -.I skew -of an object says how far to the right of the center of the object an -accent over the object should be placed.) -The macro must modify -.B 0s -so that it will output the desired result with its origin at the current -point, and increase the current horizontal position by the width -of the object. -The number registers must also be modified so that they correspond to the -result. -. -.IP -For example, suppose you wanted a construct that `cancels' an expression -by drawing a diagonal line through it. -. -.RS -.IP -.ft B -.if t .ne 6+\n(.Vu -.br -\&.EQ -.br -define cancel 'special Ca' -.br -\&.EN -.br -\&.de Ca -.br -\&.\ \ ds 0s \e -.br -\eZ'\e\e*(0s'\e -.br -\ev'\e\en(0du'\e -.br -\eD'l \e\en(0wu -\e\en(0hu-\e\en(0du'\e -.br -\ev'\e\en(0hu' -.br -\&.. -.ft -.RE -. -.IP -Then you could cancel an expression\~\c -.I e -with -.BI \%cancel\ {\ e\ } -. -.IP -Here's a more complicated construct that draws a box round an expression: -. -.RS -.IP -.ft B -.if t .ne 11+\n(.Vu -\&.EQ -.br -define box 'special Bx' -.br -\&.EN -.br -\&.de Bx -.br -\&.\ \ ds 0s \e -.br -\eZ'\eh'1n'\e\e*(0s'\e -.br -\eZ'\e -.br -\ev'\e\en(0du+1n'\e -.br -\eD'l \e\en(0wu+2n 0'\e -.br -\eD'l 0 -\e\en(0hu-\e\en(0du-2n'\e -.br -\eD'l -\e\en(0wu-2n 0'\e -.br -\eD'l 0 \e\en(0hu+\e\en(0du+2n'\e -.br -\&'\e -.br -\eh'\e\en(0wu+2n' -.br -\&.\ \ nr 0w +2n -.br -\&.\ \ nr 0d +1n -.br -\&.\ \ nr 0h +1n -.br -\&.. -.ft -.RE -. -.TP -.BI space\ n -A positive value of the integer\~\c -.I n -(in hundredths of an em) sets the vertical spacing before the equation, -a negative value sets the spacing after the equation, replacing the -default values. -This primitive provides an interface to -.BR groff 's -.B \ex -escape (but with opposite sign). -. -.IP -This keyword has no effect if the equation is part of a -.B pic -picture. -. -.SS Extended primitives -.TP -.BI col\ n\ {\ .\|.\|.\ } -.TQ -.BI ccol\ n\ {\ .\|.\|.\ } -.TQ -.BI lcol\ n\ {\ .\|.\|.\ } -.TQ -.BI rcol\ n\ {\ .\|.\|.\ } -.TQ -.BI pile\ n\ {\ .\|.\|.\ } -.TQ -.BI cpile\ n\ {\ .\|.\|.\ } -.TQ -.BI lpile\ n\ {\ .\|.\|.\ } -.TQ -.BI rpile\ n\ {\ .\|.\|.\ } -The integer value\~\c -.I n -(in hundredths of an em) increases the vertical spacing between rows, -using -.BR groff 's -.B \ex -escape. -Negative values are possible but have no effect. -If there is more than a single value given in a matrix, the biggest one -is used. -. -.SS Customization -The appearance of equations is controlled by a large number of parameters. -These can be set using -the -.B set -command. -. -.TP -.BI set\ p\ n -This sets parameter\~\c -.I p -to value\~\c -.IR n ; -.I n\~\c -is an integer. -For example, -. -.RS -.IP -.B -set x_height 45 -.RE -. -.IP -says that -.B eqn -should assume an x\~height of 0.45\~ems. -. -.RS -.LP -Possible parameters are as follows. -Values are in units of hundredths of an em unless otherwise stated. -These descriptions are intended to be expository rather than -definitive. -. -.ie t \ -. TP \w'\fBdefault_rule_thickness'u+2n -.el \ -. TP -.B minimum_size -.B eqn -will not set anything at a smaller point-size than this. -The value is in points. -. -.TP -.B fat_offset -The -.B fat -primitive emboldens an equation -by overprinting two copies of the equation -horizontally offset by this amount. -. -.TP -.B over_hang -A fraction bar will be longer by twice this amount than -the maximum of the widths of the numerator and denominator; -in other words, it will overhang the numerator and -denominator by at least this amount. -. -.TP -.B accent_width -When -.B bar -or -.B under -is applied to a single character, -the line will be this long. -Normally, -.B bar -or -.B under -produces a line whose length is the width of the object to which it applies; -in the case of a single character, -this tends to produce a line that looks too long. -. -.TP -.B delimiter_factor -Extensible delimiters produced with the -.B left -and -.B right -primitives will have a combined height and depth of at least this many -thousandths of twice the maximum amount by which the sub-equation that -the delimiters enclose extends away from the axis. -. -.TP -.B delimiter_shortfall -Extensible delimiters produced with the -.B left -and -.B right -primitives will have a combined height and depth -not less than the difference of -twice the maximum amount by which the sub-equation that -the delimiters enclose extends away from the axis -and this amount. -. -.TP -.B null_delimiter_space -This much horizontal space is inserted -on each side of a fraction. -. -.TP -.B script_space -The width of subscripts and superscripts is increased by this amount. -. -.TP -.B thin_space -This amount of space is automatically inserted after punctuation -characters. -. -.TP -.B medium_space -This amount of space is automatically inserted on either side -of binary operators. -. -.TP -.B thick_space -This amount of space is automatically inserted on either side of -relations. -. -.TP -.B x_height -The height of lowercase letters without ascenders such as `x'. -. -.TP -.B axis_height -The height above the baseline of the center of characters -such as `\(pl' and `\(mi'. -It is important that this value is correct for the font -you are using. -. -.TP -.B default_rule_thickness -This should set to the thickness of the -.B \e(ru -character, or the thickness of horizontal lines produced with the -.B \eD -escape sequence. -. -.TP -.B num1 -The -.B over -command will shift up the numerator by at least this amount. -. -.TP -.B num2 -The -.B smallover -command will shift up the numerator by at least this amount. -. -.TP -.B denom1 -The -.B over -command will shift down the denominator by at least this amount. -. -.TP -.B denom2 -The -.B smallover -command will shift down the denominator by at least this amount. -. -.TP -.B sup1 -Normally superscripts will be shifted up by at least this amount. -. -.TP -.B sup2 -Superscripts within superscripts or upper limits -or numerators of -.B smallover -fractions -will be shifted up by at least this amount. -This is usually less than sup1. -. -.TP -.B sup3 -Superscripts within denominators or square roots -or subscripts or lower limits will be shifted up by at least -this amount. -This is usually less than sup2. -. -.TP -.B sub1 -Subscripts will normally be shifted down by at least this amount. -. -.TP -.B sub2 -When there is both a subscript and a superscript, the subscript -will be shifted down by at least this amount. -. -.TP -.B sup_drop -The baseline of a superscript will be no more -than this much amount below the top of the object on -which the superscript is set. -. -.TP -.B sub_drop -The baseline of a subscript will be at least this much below -the bottom of the object on which the subscript is set. -. -.TP -.B big_op_spacing1 -The baseline of an upper limit will be at least this -much above the top of the object on which the limit is set. -. -.TP -.B big_op_spacing2 -The baseline of a lower limit will be at least this -much below the bottom of the object on which the limit is set. -. -.TP -.B big_op_spacing3 -The bottom of an upper limit will be at least this much above the -top of the object on which the limit is set. -. -.TP -.B big_op_spacing4 -The top of a lower limit will be at least this much below -the bottom of the object on which the limit is set. -. -.TP -.B big_op_spacing5 -This much vertical space will be added above and below limits. -. -.TP -.B baseline_sep -The baselines of the rows in a pile or matrix will normally be -this far apart. -In most cases this should be equal to the sum of -.B num1 -and -.BR denom1 . -. -.TP -.B shift_down -The midpoint between the top baseline and the bottom baseline -in a matrix or pile will be shifted down by this much from the axis. -In most cases this should be equal to -.BR axis_height . -. -.TP -.B column_sep -This much space will be added between columns in a matrix. -. -.TP -.B matrix_side_sep -This much space will be added at each side of a matrix. -. -.TP -.B draw_lines -If this is non-zero, lines will be drawn using the -.B \eD -escape sequence, rather than with the -.B \el -escape sequence and the -.B \e(ru -character. -. -.TP -.B body_height -The amount by which the height of the equation exceeds this -will be added as extra space before the line containing the equation -(using -.BR \ex ). -The default value is 85. -. -.TP -.B body_depth -The amount by which the depth of the equation exceeds this -will be added as extra space after the line containing the equation -(using -.BR \ex ). -The default value is 35. -. -.TP -.B nroff -If this is non-zero, -then -.B ndefine -will behave like -.B define -and -.B tdefine -will be ignored, -otherwise -.B tdefine -will behave like -.B define -and -.B ndefine -will be ignored. -The default value is\~0 -(This is typically changed to\~1 by the -.B eqnrc -file for the -.BR ascii , -.BR latin1 , -.BR utf8 , -and -.B cp1047 -devices.) -. -.LP -A more precise description of the role of many of these -parameters can be found in Appendix\~H of -.IR "The \*(txbook" . -.RE -. -.SS Macros -Macros can take arguments. -In a macro body, -.BI $ n -where -.I n -is between 1 and\~9, -will be replaced by the -.IR n-th -argument if the macro is called with arguments; -if there are fewer than -.I n\~\c -arguments, it will be replaced by nothing. -A word containing a left parenthesis where the part of the word -before the left parenthesis has been defined using the -.B define -command -will be recognized as a macro call with arguments; -characters following the left parenthesis -up to a matching right parenthesis will be treated as comma-separated -arguments; -commas inside nested parentheses do not terminate an argument. -. -.TP -.BI sdefine\ name\ X\ anything\ X -This is like the -.B define -command, but -.I name -will not be recognized if called with arguments. -. -.TP -.BI include\ \(ts file \(ts -.TQ -.BI copy\ \(ts file \(ts -Include the contents of -.I file -.RB ( include -and -.B copy -are synonyms). -Lines of -.I file -beginning with -.B .EQ -or -.B .EN -will be ignored. -. -.TP -.BI ifdef\ name\ X\ anything\ X -If -.I name -has been defined by -.B define -(or has been automatically defined because -.I name -is the output device) -process -.IR anything ; -otherwise ignore -.IR anything . -.I X -can be any character not appearing in -.IR anything . -. -.TP -.BI undef\ name -Remove definition of -.IR name , -making it undefined. -. -.LP -Besides the macros mentioned above, the following definitions are available: -.BR Alpha , -.BR Beta , -\&.\|.\|., -.B Omega -(this is the same as -.BR ALPHA , -.BR BETA , -\&.\|.\|., -.BR OMEGA ), -.B ldots -(three dots on the base line), -and -.BR dollar . -. -.SS Fonts -.B eqn -normally uses at least two fonts to set an equation: -an italic font for letters, -and a roman font for everything else. -The existing -.B gfont -command -changes the font that is used as the italic font. -By default this is\~\c -.BR I . -The font that is used as the roman font can be changed -using the new -.B grfont -command. -. -.TP -.BI grfont\ f -Set the roman font to\~\c -.IR f . -. -.LP -The -.B italic -primitive uses the current italic font set by -.BR gfont ; -the -.B roman -primitive uses the current roman font set by -.BR grfont . -There is also a new -.B gbfont -command, which changes the font used by the -.B bold -primitive. -If you only use the -.BR roman , -.B italic -and -.B bold -primitives to changes fonts within an equation, -you can change all the fonts used by your equations -just by using -.BR gfont , -.B grfont -and -.B gbfont -commands. -. -.LP -You can control which characters are treated as letters -(and therefore set in italics) by using the -.B chartype -command described above. -A type of -.B letter -will cause a character to be set in italic type. -A type of -.B digit -will cause a character to be set in roman type. -. -. -.SH FILES -.Tp \w'\fB/usr/share/groff/1.19.2/tmac/eqnrc'u+2n -.B /usr/share/groff/1.19.2/tmac/eqnrc -Initialization file. -. -. -.SH BUGS -Inline equations will be set at the point size that is current at the -beginning of the input line. -. -. -.SH "SEE ALSO" -.BR groff (1), -.BR troff (1), -.BR pic (1), -.BR groff_font (5), -.I The\ \*(txbook -. -.\" Local Variables: -.\" mode: nroff -.\" End: diff --git a/gen/usr/share/man/man1/eqn2graph.1 b/gen/usr/share/man/man1/eqn2graph.1 deleted file mode 100644 index ef567e3..0000000 --- a/gen/usr/share/man/man1/eqn2graph.1 +++ /dev/null @@ -1,115 +0,0 @@ -.\" $Id: eqn2graph.man,v 1.4 2003/10/28 07:46:23 wlemb Exp $ -.\" This documentation is released to the public domain. -. -. -.\" Like TP, but if specified indent is more than half -.\" the current line-length - indent, use the default indent. -.de Tp -.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP -.el .TP "\\$1" -.. -. -. -.TH EQN2GRAPH 1 "27 October 2003" "Groff Version 1.19.2" -.IX eqn2graph -.SH NAME -eqn2graph \- convert an EQN equation into a cropped image -. -. -.SH SYNOPSIS -.B eqn2graph -[ -.B \-unsafe -] -[ -.BI \-format\ fmt -] -. -. -.SH DESCRIPTION -Reads an EQN equation (one line) as input; produces an image -file (by default in Portable Network Graphics format) suitable for the -Web as output. -.P -Your input EQN code should \fInot\fR have the \&.EQ/.EN preamble that -that normally precedes it within -.BR groff (1) -macros; nor do you need to have dollar-sign or other delimiters -around the equation. -.P -The output image will be a black-on-white graphic clipped to the -smallest possible bounding box that contains all the black pixels. -By specifying command-line options to be passed to -.BR convert (1) -you can give it a border, set the background transparent, set the -image's pixel density, or perform other useful transformations. -.P -This program uses -.BR eqn (1), -.BR groff (1), -and the ImageMagick -.BR convert (1) -program. -These programs must be installed on your system and accessible on your -$PATH for \fBeqn2graph\fR to work. -. -. -.SH OPTIONS -.TP -.B \-unsafe -Run -.BR groff (1) -in the `unsafe' mode enabling the PIC macro -.B sh -to execute arbitrary commands. -The default is to forbid this. -.TP -.BI \-format\ fmt -Specify an output format; the default is PNG (Portable Network Graphics). -Any format that -.BR convert (1) -can emit is supported. -.PP -Command-line switches and arguments not listed above are passed to -.BR convert (1). -. -. -.SH FILES -.Tp \w'\fB/usr/share/groff/1.19.2/tmac/eqnrc'u+2n -.B /usr/share/groff/1.19.2/tmac/eqnrc -The -.BR eqn (1) -initialization file. -. -. -.SH ENVIRONMENT -.TP -.B GROFF_TMPDIR -The directory in which temporary files will be created. -If this is not set -.B eqn2graph -searches the environment variables -.BR \%TMPDIR , -.BR TMP , -and -.B TEMP -(in that order). -Otherwise, temporary files will be created in -.BR /tmp . -. -. -.SH "SEE ALSO" -.BR pic2graph (1), -.BR grap2graph (1), -.BR eqn (1), -.BR groff (1), -.BR gs (1), -.BR convert (1). -. -. -.SH AUTHOR -Eric S. Raymond . -. -.\" Local Variables: -.\" mode: nroff -.\" End: diff --git a/gen/usr/share/man/man1/gdiffmk.1 b/gen/usr/share/man/man1/gdiffmk.1 deleted file mode 100644 index 49a16d3..0000000 --- a/gen/usr/share/man/man1/gdiffmk.1 +++ /dev/null @@ -1,281 +0,0 @@ -.ig \"-*- nroff -*- -Copyright (C) 2004, 2005 Free Software Foundation, Inc. - -This file is part of the gdiffmk utility, which is part of groff. -Written by Mike Bianchi > - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be included in -translations approved by the Free Software Foundation instead of in -the original English. -.. -. -.do mso www.tmac -. -.TH GDIFFMK 1 "26 May 2005" "Groff Version 1.19.2" -. -. -.SH NAME -gdiffmk \- mark differences between groff/nroff/troff files -. -. -.SH SYNOPSIS -.nr a \n(.j -.ad l -.nr i \n(.i -.in +\w'\fBgdiffmk 'u -.ti \niu -.B gdiffmk -.de OP -. ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]" -. el .RB "[\ " "\\$1" "\ ]" -.. -.OP \-a \%addmark -.OP \-c \%changemark -.OP \-d \%deletemark -[\ \c -.B \-D -.OP \-B -.OP \-M "mark1 mark2" -] -.OP \-x \%diffcmd -.OP \-\- -.OP \-\-help -.OP \%\-\-version -.I \%file1 -.I \%file2 -[\ \c -.IR \%output \ \c -] -.br -.ad \na -. -. -.SH DESCRIPTION -.B gdiffmk -compares two -.BR groff (1), -.BR nroff (1), -or -.BR troff (1) -documents, -.I file1 -and -.IR file2 , -and creates an output which is -.I file2 -with added `margin character' (.mc) commands that indicate the differences. -. -.LP -If the -.I output -filename is present, -the output is written there. -If it is -.B \- -or absent the output is written to the standard output. -. -.LP -If the -.I file1 -or -.I file2 -argument is -.B \- -the standard input is read for that input. -Clearly both cannot be -.BR \- . -. -.LP -Note that the output is not necessarily compatible with all macro packages -and all preprocessors. -See the -.B BUGS -section below. -. -. -.SH OPTIONS -.TP -.BI \-a addmark -Use the -.I addmark -for source lines not in -.I file1 -but present in -.IR file2 . -Default: -.BR + . -. -.TP -.B \-B -By default, the deleted texts marked by the -.B \-D -option end -with an added troff break command, -.BR .br , -to ensure that the deletions are marked properly. -This is the only way to guarantee that deletions and small -changes get flagged. -This option directs the program not to insert these breaks; it makes no -sense to use it without -.BR \-D . -. -.TP -.BI \-c changemark -Use the -.I changemark -for changed source lines. -Default: -.BR | . -. -.TP -.BI \-d deletemark -Use the -.I deletemark -for deleted source lines. -Default: -.BR * . -. -.TP -.B \-D -Show the deleted portions from changed and deleted text. -Default delimiting marks: -.BR "[[" " .\&.\&.\&. " "]]" . -. -.TP -.BI \-M "mark1 mark2" -Change the delimiting marks for the -.B \-D -option. -It makes no sense to use this option without -.BR \-D . -. -.TP -.BI \-x diffcmd -Use the -.I diffcmd -command to perform the comparison of -.I file1 -and -.IR file2 . -In particular, -.I diffcmd -should accept the GNU -.B diff -.BI \-D name -option. -Default: -.BR diff (1). -. -.TP -.B \-\- -All the following arguments are treated as file names, -even if they begin with -.BR \- . -. -.TP -.B \-\-help -Print a usage message on standard error output and exit. -. -.TP -.B \-\-version -Print version information on the standard output and exit. -. -. -.SH BUGS -The output is not necessarily compatible with all macro packages -and all preprocessors. -A workaround that is often successful against preprocessor problems -is to run -.B gdiffmk -on the output of all the preprocessors instead of the input source. -. -.LP -.B gdiffmk -relies on the -.BI \-D name -option of GNU -.BR diff (1) -to make a merged `#ifdef' output format. -It hasn't been tested whether other versions of -.BR diff (1) -do support this option. -See also the -.BI \-x diffcmd -option. -. -.LP -Report bugs to bug-groff@gnu.org. -Include a complete, self-contained example that will allow the bug to -be reproduced, and say which version of -.B gdiffmk -you are using. -. -. -.SH AUTHORS -This document was written and is maintained by -.MTO MBianchi@Foveal.com "Mike Bianchi" . -. -.LP -This document is distributed under the terms of the FDL (GNU Free -Documentation License) version 1.1 or later. -You should have received a copy of the FDL on your system, it is also -available on-line at the -.URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" . -. -.LP -.B gdiffmk -is part of the -.I groff -GNU free software project. -All parts of the -.I groff package -are protected by GNU copyleft licenses. -The software files are distributed under the terms of the GNU General -Public License (GPL), while the documentation files mostly use the GNU -Free Documentation License (FDL). -. -. -.SH COPYRIGHT -Copyright \(co 2004, 2005 Free Software Foundation, Inc. -. -.LP -.B gdiffmk -is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 2, or (at your option) any later -version. -. -.LP -.B gdiffmk -is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. -See the GNU General Public License for more details. -. -.LP -You should have received a copy of the GNU General Public License along -with groff; see the file COPYING. -If not, write to the Free Software -Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. -. -. -.SH "SEE ALSO" -.BR groff (1), -.BR nroff (1), -.BR gtroff (1), -.BR diff (1) -. -.\" Local Variables: -.\" mode: nroff -.\" End: diff --git a/gen/usr/share/man/man1/grap2graph.1 b/gen/usr/share/man/man1/grap2graph.1 deleted file mode 100644 index 46bc035..0000000 --- a/gen/usr/share/man/man1/grap2graph.1 +++ /dev/null @@ -1,105 +0,0 @@ -.\" $Id: grap2graph.man,v 1.3 2003/10/28 07:46:23 wlemb Exp $ -.\" This documentation is released to the public domain. -. -. -.TH GRAP2GRAPH 1 "27 October 2003" "Groff Version 1.19.2" -.IX grap2graph -.SH NAME -grap2graph \- convert a grap diagram into a cropped bitmap image -. -. -.SH SYNOPSIS -.B grap2graph -[ -.B \-unsafe -] -[ -.BI \-resolution\ M\fR|\fPMxN -] -[ -.BI \-format\ fmt -] -. -. -.SH DESCRIPTION -Reads a grap program as input; produces an image file (by default in -Portable Network Graphics format) suitable for the Web as output. -For a description of the grap language, see -.BR grap (1). -.P -Your graph specification should \fInot\fR be wrapped with the \&.G1 and -\&.G2 macros that normally guard it within -.BR groff (1) -macros. -.P -The output image will be a black-on-white graphic clipped to the -smallest possible bounding box that contains all the black pixels. -By specifying command-line options to be passed to -.BR convert (1) -you can give it a border, set the background transparent, set the -image's pixel density, or perform other useful transformations. -.P -This program uses -.BR grap (1), -.BR pic (1), -.BR groff (1), -and the ImageMagick -.BR convert (1) -program. -These programs must be installed on your system and accessible on your -$PATH for \fBgrap2graph\fR to work. -. -. -.SH OPTIONS -.TP -.B \-unsafe -Run -.BR pic (1) -and -.BR groff (1) -in the `unsafe' mode enabling the PIC macro -.B sh -to execute arbitrary commands. -The default is to forbid this. -.TP -.BI \-format\ fmt -Specify an output format; the default is PNG (Portable Network Graphics). -Any format that -.BR convert (1) -can emit is supported. -.PP -Command-line switches and arguments not listed above are passed to -.BR convert (1). -. -. -.SH ENVIRONMENT -.TP -.B GROFF_TMPDIR -The directory in which temporary files will be created. -If this is not set -.B grap2graph -searches the environment variables -.BR \%TMPDIR , -.BR TMP , -and -.B TEMP -(in that order). -Otherwise, temporary files will be created in -.BR /tmp . -. -. -.SH "SEE ALSO" -.BR pic2graph (1), -.BR eqn2graph (1), -.BR pic (1), -.BR groff (1), -.BR gs (1), -.BR convert (1). -. -. -.SH AUTHOR -Eric S. Raymond -. -.\" Local Variables: -.\" mode: nroff -.\" End: diff --git a/gen/usr/share/man/man1/grn.1 b/gen/usr/share/man/man1/grn.1 deleted file mode 100644 index 66f46fe..0000000 --- a/gen/usr/share/man/man1/grn.1 +++ /dev/null @@ -1,652 +0,0 @@ -'\" t -.ig -Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be included in -translations approved by the Free Software Foundation instead of in -the original English. -.. -. -.do nr grn_C \n[.C] -.cp 0 -. -.de TQ -. br -. ns -. TP \\$1 -.. -. -.\" Like TP, but if specified indent is more than half -.\" the current line-length - indent, use the default indent. -.de Tp -. ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP -. el .TP "\\$1" -.. -. -. -.TH GRN 1 "7 August 2004" "Groff Version 1.19.2" -.SH NAME -grn \- groff preprocessor for gremlin files -.SH SYNOPSIS -.BR grn -[ -.B \-Cv -] -[ -.BI \-T dev -] -[ -.BI \-M dir -] -[ -.BI \-F dir -] -[ -.IR file\.\.\.\& -] -.PP -It is possible to have whitespace between a command line option and its -parameter. -.SH DESCRIPTION -.I grn -is a preprocessor for including -.I gremlin -pictures in -.I groff -input. -.I grn -writes to standard output, processing only input lines between two that -start with -.B .GS -and -.BR .GE. -Those lines must contain -.I grn -commands (see below). -These commands request a -.I gremlin -file, and the picture in that file is -converted and placed in the -.I troff -input stream. -The -.B .GS -request may be followed by a C, L, or R to center, left, or right -justify the whole -.I gremlin -picture (default justification is center). -If no -.I file -is mentioned, the standard input is read. -At the end of the picture, the position on the page is the bottom of the -.I gremlin -picture. -If the -.I grn -entry is ended with -.B .GF -instead of -.BR .GE , -the position is left at the top of the picture. -.PP -Please note that currently only the \-me macro package has support for -.BR .GS , -.BR .GE , -and -.BR .GF . -.PP -The following command-line options are understood: -.TP -.BI \-T dev -Prepare output for printer -.IR dev . -The default device is -.BR ps . -See -.BR groff (1) -for acceptable devices. -.TP -.BI \-M dir -Prepend -.I dir -to the default search path for -.I gremlin -files. -The default path is (in that order) the current directory, the home -directory, -.BR /usr/lib/groff/site-tmac , -.BR /usr/share/groff/site-tmac , -and -.BR /usr/share/groff/1.19.2/tmac . -.TP -.BI \-F dir -Search -.I dir -for subdirectories -.BI dev name -.RI ( name -is the name of the device) for the -.B DESC -file before the default font directories -.BR /usr/share/groff/site-font , -.BR /usr/share/groff/1.19.2/font , -and -.BR /usr/lib/font . -.TP -.B \-C -Recognize -.B .GS -and -.B .GE -(and -.BR .GF ) -even when followed by a character other than space or newline. -.\".TP -.\".B \-s -.\"This switch causes the picture to be traversed twice: -.\"The first time, only the interiors of filled polygons (as borderless -.\"polygons) are printed. -.\"The second time, the outline is printed as a series of line segments. -.\"This way, postprocessors that overwrite rather than merge picture elements -.\"(such as Postscript) can still have text and graphics on a shaded -.\"background. -.TP -.B \-v -Print the version number. -.SH GRN COMMANDS -Each input line between -.B .GS -and -.B .GE -may have one -.I grn -command. -Commands consist of one or two strings separated by white space, the first -string being the command and the second its operand. -Commands may be upper or lower case and abbreviated down to one character. -.PP -Commands that affect a picture's environment (those listed before -.BR default , -see below) are only in effect for the current picture: -The environment is reinitialized to the defaults at the start of the next -picture. -The commands are as follows: -.TP -.BI 1\ N -.TQ -.BI 2\ N -.TQ -.BI 3\ N -.TQ -.BI 4\ N -Set -.IR gremlin 's -text size number 1 (2, 3, or 4) to -.I N -points. -The default is 12 (16, 24, and 36, respectively). -.TP -.BI roman\ f -.TQ -.BI italics\ f -.TQ -.BI bold\ f -.TQ -.BI special\ f -Set the roman (italics, bold, or special) font to -.IR troff 's -font -.I f -(either a name or number). -The default is R (I, B, and S, respectively). -.TP -.BI l\ f -.TQ -.BI stipple\ f -Set the stipple font to -.IR troff 's -stipple font -.I f -(name or number). -The command -.B stipple -may be abbreviated down as far as `st' (to avoid -confusion with -.BR special ). -There is -.I no -default for stipples (unless one is set by the default command), and it is -invalid to include a -.I gremlin -picture with polygons without specifying a -stipple font. -.TP -.BI x\ N -.TQ -.BI scale\ N -Magnify the picture (in addition to any default magnification) by -.IR N , -a floating point number larger than zero. -The command -.B scale -may be abbreviated down to `sc'. -.TP -.BI narrow\ N -.TQ -.BI medium\ N -.TQ -.BI thick\ N -Set the thickness of -.IR gremlin 's -narrow (medium and thick, respectively) lines to -.I N -times 0.15pt (this value can be changed at compile time). -The default is 1.0 (3.0 and 5.0, respectively), which corresponds to 0.15pt -(0.45pt and 0.75pt, respectively). -A thickness value of zero selects the smallest available line thickness. -Negative values cause the line thickness to be proportional to the current -point size. -.TP -.BI pointscale\ -Scale text to match the picture. -Gremlin text is usually printed in the point size specified with the -commands -.BR 1 , -.BR 2 , -.BR 3 , -.RB or\~ 4 , -regardless of any scaling factors in the picture. -Setting -.B pointscale -will cause the point sizes to scale with the picture (within -.IR troff 's -limitations, of course). -An operand of anything but -.I off -will turn text scaling on. -.TP -.B default -Reset the picture environment defaults to the settings in the current -picture. -This is meant to be used as a global parameter setting mechanism at the -beginning of the -.I troff -input file, but can be used at any time to reset the -default settings. -.TP -.BI width\ N -Forces the picture to be -.I N -inches wide. -This overrides any scaling factors present in the same picture. -.RB ` width -.IR 0 ' -is ignored. -.TP -.BI height\ N -Forces picture to be -.I N -inches high, overriding other scaling factors. -If both `width' and `height' are specified the tighter constraint will -determine the scale of the picture. -.B Height -and -.B width -commands are not saved with a -.B default -command. -They will, however, affect point size scaling if that option is set. -.TP -.BI file\ name -Get picture from -.I gremlin -file -.I name -located the current directory (or in the library directory; see the -.B \-M -option above). -If two -.B file -commands are given, the second one overrides the first. -If -.I name -doesn't exist, an error message is reported and processing continues from -the -.B .GE -line. -.SH NOTES ABOUT GROFF -Since -.I grn -is a preprocessor, it doesn't know about current indents, point sizes, -margins, number registers, etc. -Consequently, no -.I troff -input can be placed between the -.B .GS -and -.B .GE -requests. -However, -.I gremlin -text is now processed by -.IR troff , -so anything legal in a single line of -.I troff -input is legal in a line of -.I gremlin -text (barring `.' directives at the beginning of a line). -Thus, it is possible to have equations within a -.I gremlin -figure by including in the -.I gremlin -file -.I eqn -expressions enclosed by previously defined delimiters (e.g. -.IR $$ ). -.PP -When using -.I grn -along with other preprocessors, it is best to run -.I tbl -before -.IR grn , -.IR pic , -and/or -.I ideal -to avoid overworking -.IR tbl . -.I Eqn -should always be run last. -.PP -A picture is considered an entity, but that doesn't stop -.I troff -from trying to break it up if it falls off the end of a page. -Placing the picture between `keeps' in \-me macros will ensure proper -placement. -.PP -.I grn -uses -.IR troff 's -number registers -.B g1 -through -.B g9 -and sets registers -.B g1 -and -.B g2 -to the width and height of the -.I gremlin -figure (in device units) before entering the -.B .GS -request (this is for those who want to rewrite these macros). -.SH GREMLIN FILE FORMAT -There exist two distinct -.I gremlin -file formats, the original format from the -.I AED -graphic terminal version, and the -.I SUN -or -.I X11 -version. -An extension to the -.IR SUN / X11 -version allowing reference points with negative coordinates is -.B not -compatible with the -.I AED -version. -As long as a -.I gremlin -file does not contain negative coordinates, either format will be read -correctly by either version of -.I gremlin -or -.IR grn . -The other difference to the -.IR SUN / X11 -format is the use of names for picture objects (e.g., POLYGON, CURVE) -instead of numbers. -Files representing the same picture are shown in Table 1 in each format. -.sp -.TS -center, tab(@); -l lw(0.1i) l. -sungremlinfile@@gremlinfile -0 240.00 128.00@@0 240.00 128.00 -CENTCENT@@2 -240.00 128.00@@240.00 128.00 -185.00 120.00@@185.00 120.00 -240.00 120.00@@240.00 120.00 -296.00 120.00@@296.00 120.00 -*@@-1.00 -1.00 -2 3@@2 3 -10 A Triangle@@10 A Triangle -POLYGON@@6 -224.00 416.00@@224.00 416.00 -96.00 160.00@@96.00 160.00 -384.00 160.00@@384.00 160.00 -*@@-1.00 -1.00 -5 1@@5 1 -0@@0 --1@@-1 -.T& -css. -.sp -Table 1. File examples -.TE -.sp -.IP \(bu -The first line of each -.I gremlin -file contains either the string -.B gremlinfile -.RI ( AED -version) or -.B sungremlinfile -.RI ( SUN / X11 ) -.IP \(bu -The second line of the file contains an orientation, and -.B x -and -.B y -values for a positioning point, separated by spaces. -The orientation, either -.B 0 -or -.BR 1 , -is ignored by the -.IR SUN / X11 -version. -.B 0 -means that -.I gremlin -will display things in horizontal format (drawing area wider than it is -tall, with menu across top). -.B 1 -means that -.I gremlin -will display things in vertical format (drawing area taller than it is wide, -with menu on left side). -.B x -and -.B y -are floating point values giving a positioning point to be used when this -file is read into another file. -The stuff on this line really isn't all that important; a value of ``1 0.00 -0.00'' is suggested. -.IP \(bu -The rest of the file consists of zero or more element specifications. -After the last element specification is a line containing the string ``-1''. -.IP \(bu -Lines longer than 127 characters are chopped to this limit. -.SH ELEMENT SPECIFICATIONS -.IP \(bu -The first line of each element contains a single decimal number giving the -type of the element -.RI ( AED -version) or its ASCII name -.RI ( SUN / X11 -version). -See Table 2. -.sp -.TS -center, tab(@); -css -ccc -nll. -\fIgremlin\fP File Format \(mi Object Type Specification -.sp -\fIAED\fP Number@\fISUN\fP/\fIX11\fP Name@Description -0@BOTLEFT@bottom-left-justified text -1@BOTRIGHT@bottom-right-justified text -2@CENTCENT@center-justified text -3@VECTOR@vector -4@ARC@arc -5@CURVE@curve -6@POLYGON@polygon -7@BSPLINE@b-spline -8@BEZIER@B\['e]zier -10@TOPLEFT@top-left-justified text -11@TOPCENT@top-center-justified text -12@TOPRIGHT@top-right-justified text -13@CENTLEFT@left-center-justified text -14@CENTRIGHT@right-center-justified text -15@BOTCENT@bottom-center-justified text -.T& -css. -.sp -Table 2. -Type Specifications in \fIgremlin\fP Files -.TE -.sp -.IP \(bu -After the object type comes a variable number of lines, each specifying a -point used to display the element. -Each line contains an x-coordinate and a y-coordinate in floating point -format, separated by spaces. -The list of points is terminated by a line containing the string ``-1.0 --1.0'' -.RI ( AED -version) or a single asterisk, ``*'' -.RI ( SUN / X11 -version). -.IP \(bu -After the points comes a line containing two decimal values, giving the -brush and size for the element. -The brush determines the style in which things are drawn. -For vectors, arcs, and curves there are six legal brush values: -.sp -.TS -center, tab(@); -ncw(0.1i)l. -1 \(mi@@thin dotted lines -2 \(mi@@thin dot-dashed lines -3 \(mi@@thick solid lines -4 \(mi@@thin dashed lines -5 \(mi@@thin solid lines -6 \(mi@@medium solid lines -.TE -.sp -For polygons, one more value, 0, is legal. -It specifies a polygon with an invisible border. -For text, the brush selects a font as follows: -.sp -.TS -center, tab(@); -ncw(0.1i)l. -1 \(mi@@roman (R font in groff) -2 \(mi@@italics (I font in groff) -3 \(mi@@bold (B font in groff) -4 \(mi@@special (S font in groff) -.TE -.sp -If you're using -.I grn -to run your pictures through -.IR groff , -the font is really just a starting font: -The text string can contain formatting sequences like -``\efI'' -or -``\ed'' -which may change the font (as well as do many other things). -For text, the size field is a decimal value between 1 and 4. -It selects the size of the font in which the text will be drawn. -For polygons, this size field is interpreted as a stipple number to fill the -polygon with. -The number is used to index into a stipple font at print time. -.IP \(bu -The last line of each element contains a decimal number and a string of -characters, separated by a single space. -The number is a count of the number of characters in the string. -This information is only used for text elements, and contains the text -string. -There can be spaces inside the text. -For arcs, curves, and vectors, this line of the element contains the string -``0''. -.SH NOTES ON COORDINATES -.I gremlin -was designed for -.IR AED s, -and its coordinates reflect the -.I AED -coordinate space. -For vertical pictures, x-values range 116 to 511, and y-values from 0 to -483. -For horizontal pictures, x-values range from 0 to 511 and y-values range -from 0 to 367. -Although you needn't absolutely stick to this range, you'll get best results -if you at least stay in this vicinity. -Also, point lists are terminated by a point of (-1, -1), so you shouldn't -ever use negative coordinates. -.I gremlin -writes out coordinates using format ``%f1.2''; it's probably a good idea to -use the same format if you want to modify the -.I grn -code. -.SH NOTES ON SUN/X11 COORDINATES -There is no longer a restriction on the range of coordinates used to create -objects in the -.IR SUN / X11 -version of -.IR gremlin . -However, files with negative coordinates -.B will -cause problems if displayed on the -.IR AED . -.SH FILES -.Tp \w'/usr/share/groff/1.19.2/font/devname/DESC'u+3n -.BI /usr/share/groff/1.19.2/font/dev name /DESC -Device description file for device -.IR name . -.SH SEE ALSO -.BR gremlin (1), -.BR groff (1), -.BR pic (1), -.BR ideal (1) -.SH HISTORY -.PP -David Slattengren and Barry Roitblat wrote the original Berkeley -.IR grn . -.PP -Daniel Senderowicz and Werner Lemberg modified it for -.IR groff . -. -.cp \n[grn_C] -. -.\" Local Variables: -.\" mode: nroff -.\" End: diff --git a/gen/usr/share/man/man1/grodvi.1 b/gen/usr/share/man/man1/grodvi.1 deleted file mode 100644 index 3b384dc..0000000 --- a/gen/usr/share/man/man1/grodvi.1 +++ /dev/null @@ -1,434 +0,0 @@ -.ig -Copyright (C) 1989-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. - -Permission is granted to make and distribute verbatim copies of -this manual provided the copyright notice and this permission notice -are preserved on all copies. - -Permission is granted to copy and distribute modified versions of this -manual under the conditions for verbatim copying, provided that the -entire resulting derived work is distributed under the terms of a -permission notice identical to this one. - -Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that this permission notice may be included in -translations approved by the Free Software Foundation instead of in -the original English. -.. -. -.do nr grodvi_C \n[.C] -.cp 0 -. -.ie t .ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X -.el .ds tx TeX -. -.\" Like TP, but if specified indent is more than half -.\" the current line-length - indent, use the default indent. -.de Tp -. ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP -. el .TP "\\$1" -.. -. -.de TQ -. br -. ns -. TP \$1 -.. -. -.de FT -. if '\\*(.T'dvi' .ft \\$1 -.. -. -. -.TH GRODVI 1 "1 October 2004" "Groff Version 1.19.2" -.SH NAME -grodvi \- convert groff output to TeX dvi format -. -. -.SH SYNOPSIS -.B grodvi -[ -.B \-dlv -] [ -.BI \-F dir -] [ -.BI \-p papersize -] [ -.BI \-w n -] [ -.IR files \|.\|.\|.\& -] -.PP -It is possible to have whitespace between a command line option and its -parameter. -. -. -.SH DESCRIPTION -.B grodvi -is a driver for -.B groff -that produces \*(tx dvi format. -. -Normally it should be run by -.BR groff\ \-Tdvi . -. -This will run -.BR troff\ \-Tdvi ; -it will also input the macros in -.BR /usr/share/groff/1.19.2/tmac/dvi.tmac . -. -.LP -The dvi file generated by -.B grodvi -can be printed by any correctly-written dvi driver. -. -The troff drawing primitives are implemented -using the tpic version\~2 specials. -. -If the driver does not support these, the -.B \[rs]D -commands will not produce any output. -. -.LP -There is an additional drawing command available: -. -.TP -.BI \[rs]D'R\ dh\ dv ' -Draw a rule (solid black rectangle), with one corner -at the current position, and the diagonally opposite corner -at the current position -.RI +( dh , dv ). -. -Afterwards the current position will be at the opposite corner. -. -This produces a rule in the dvi file and so can be printed even with a -driver that does not support the tpic specials unlike the other -.B \[rs]D -commands. -. -.LP -The groff command -.BI \[rs]X' anything ' -is translated into the same command in the dvi file as would be -produced by -.BI \[rs]special{ anything } -in \*(tx; -.I anything -may not contain a newline. -. -.LP -For inclusion of EPS image files, -.B \-Tdvi -loads -.B pspic.tmac -automatically, providing the -.B PSPIC -macro. -. -Please check -.BR groff_tmac (5) -for a detailed description. -. -.LP -Font files for -.B grodvi -can be created from tfm files using -.BR tfmtodit (1). -. -The font description file should contain the following -additional commands: -. -.Tp \w'\fBinternalname'u+2n -.BI internalname\ name -The name of the tfm file (without the -.B .tfm -extension) is -.IR name . -. -.TP -.BI checksum\ n -The checksum in the tfm file is -.IR n . -. -.TP -.BI designsize\ n -The designsize in the tfm file is -.IR n . -. -.LP -These are automatically generated by -.B tfmtodit. -. -.LP -The default color for -.B \[rs]m -and -.B \[rs]M -is black. -. -Currently, the drawing color for -.B \[rs]D -commands is always black, and fill color values are translated to gray. -. -.LP -In -.B troff -the -.B \[rs]N -escape sequence can be used to access characters by their position -in the corresponding tfm file; -all characters in the tfm file can be accessed this way. -. -.LP -By design, the DVI format doesn't care about physical dimensions of the -output medium. -. -Instead, -.B grodvi -emits the equivalent to \*(tx's -.BI \[rs]special{papersize= width , length } -on the first page; -.B dvips -(and possibly other DVI drivers) then sets the page size accordingly. -. -If either the page width or length is not positive, no papersize special -is output. -. -. -.SH OPTIONS -.TP -.B \-d -Do not use tpic specials to implement drawing commands. -. -Horizontal and vertical lines will be implemented by rules. -. -Other drawing commands will be ignored. -. -.TP -.BI \-F dir -Prepend directory -.IB dir /dev name -to the search path for font and device description files; -.I name -is the name of the device, usually -.BR dvi . -. -.TP -.B \-l -Specify landscape orientation. -. -.TP -.BI \-p papersize -Specify paper dimensions. -. -This overrides the -.BR papersize , -.BR paperlength , -and -.B paperwidth -commands in the -.B DESC -file; it accepts the same arguments as the -.B papersize -command (see -.BR groff_font (5) -for details). -. -.TP -.B \-v -Print the version number. -. -.TP -.BI \-w n -Set the default line thickness to -.I n -thousandths of an em. -If this option isn't specified, the line thickness defaults to 0.04\~em. -. -. -.SH USAGE -There are styles called -.BR R , -.BR I , -.BR B , -and -.B BI -mounted at font positions 1 to\ 4. -The fonts are grouped into families -.B T -and -.B H\ \c -having members in each of these styles: -. -.RS -.TP -.B TR -.FT TR -CM Roman (cmr10) -.FT -. -.TQ -.B TI -.FT TI -CM Text Italic (cmti10) -.FT -. -.TQ -.B TB -.FT TB -CM Bold Extended Roman (cmbx10) -.FT -. -.TQ -.B TBI -.FT TBI -CM Bold Extended Text Italic (cmbxti10) -.FT -. -.TQ -.B HR -.FT HR -CM Sans Serif (cmss10) -.FT -. -.TQ -.B HI -.FT HI -CM Slanted Sans Serif (cmssi10) -.FT -. -.TQ -.B HB -.FT HB -CM Sans Serif Bold Extended (cmssbx10) -.FT -. -.TQ -.B HBI -.FT HBI -CM Slanted Sans Serif Bold Extended (cmssbxo10) -.FT -.RE -. -.LP -There are also the following fonts which are not members of a family: -. -.RS -.TP -.B CW -CM Typewriter Text (cmtt10) -.FT CW -.FT -. -.TQ -.B CWI -CM Italic Typewriter Text (cmitt10) -.FT CWI -.FT -.RE -. -.LP -Special fonts are -.B MI -(cmmi10), -.B S -(cmsy10), -.B EX -(cmex10), -.B SC -(cmtex10, only for -.BR CW ), -and, perhaps surprisingly, -.BR TR , -.BR TI , -and -.BR CW , -due to the different font encodings of text fonts. -. -For italic fonts, -.B CWI -is used instead of -.BR CW . -. -.LP -Finally, the symbol fonts of the American Mathematical Society are available -as special fonts -.B SA -(msam10) and -.B SB -(msbm10). -. -These two fonts are not mounted by default. -. -.LP -Using the option -.B \-mec -(which loads the file -.BR ec.tmac ) -provides the EC and TC fonts. -. -The design of the EC family is very similar to that of the CM fonts; -additionally, they give a much better coverage of groff symbols. -. -Note that -.B ec.tmac -must be called before any language-specific files; it doesn't take care of -hcode values. -. -. -.SH FILES -.TP -.B /usr/share/groff/1.19.2/font/devdvi/DESC -Device description file. -. -.TP -.BI /usr/share/groff/1.19.2/font/devdvi/ F -Font description file for font -.IR F . -. -.TP -.B /usr/share/groff/1.19.2/tmac/dvi.tmac -Macros for use with -.BR grodvi . -. -.TP -.B /usr/share/groff/1.19.2/tmac/ec.tmac -Macros to switch to EC fonts. -. -. -.SH BUGS -Dvi files produced by -.B grodvi -use a different resolution (57816 units per inch) to those produced by -\*(tx. -. -Incorrectly written drivers which assume the resolution used by \*(tx, -rather than using the resolution specified in the dvi file will not -work with -.BR grodvi . -. -.LP -When using the -.B \-d -option with boxed tables, -vertical and horizontal lines can sometimes protrude by one pixel. -. -This is a consequence of the way \*(tx requires that the heights -and widths of rules be rounded. -. -. -.SH "SEE ALSO" -.BR tfmtodit (1), -.BR groff (1), -.BR troff (1), -.BR groff_out (5), -.BR groff_font (5), -.BR groff_char (7), -.BR groff_tmac (5) -. -.cp \n[grodvi_C] -. -.\" Local Variables: -.\" mode: nroff -.\" End: diff --git a/gen/usr/share/man/man1/groff.1 b/gen/usr/share/man/man1/groff.1 deleted file mode 100644 index 18965d5..0000000 --- a/gen/usr/share/man/man1/groff.1 +++ /dev/null @@ -1,1732 +0,0 @@ -.ig -groff.man - -Last update: 01 Jul 2005 - -Copyright (C) 1989, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -Rewritten in 2002 by Bernd Warken - -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.1 or -any later version published by the Free Software Foundation; with the -Invariant Sections being this .ig-section and AUTHOR, with no -Front-Cover Texts, and with no Back-Cover Texts. - -A copy of the Free Documentation License is included as a file called -FDL in the main directory of the groff source package. -.. -. -.\" -------------------------------------------------------------------- -.\" Setup -.\" -------------------------------------------------------------------- -. -.do nr groff_C \n[.C] -.cp 0 -. -.mso www.tmac -. -.\" set adjust to both -.ad b -. -.\" fonts of fixed length -. -.if n \{\ -. mso tty-char.tmac -. ftr CR R -. ftr CI I -. ftr CB B -.\} -. -.if '\*[.T]'dvi' \ -. ftr CB CW -. -.\" -------------------------------------------------------------------- -.\" String definitions -. -.ds @- "\-\" -.ds @-- "\-\^\-\" -. -.ds Ellipsis .\|.\|.\" -. -. -.\" -------------------------------------------------------------------- -.\" Begin of macro definitions -.de c -.\" this is like a comment request when escape mechanism is off -.. -.eo -. -.c -------------------------------------------------------------------- -.de TP+ -.br -.ns -.TP \$1 -.. -.c -------------------------------------------------------------------- -.c Like TP, but if specified indent is more than half -.c the current line-length - indent, use the default indent. -.de Tp -. ie \n[.$]=0:((0\$1)*2u>(\n.lu-\n(.iu)) .TP -. el .TP "\$1" -.. -.c -------------------------------------------------------------------- -.de Text -. nop \)\$* -.. -.c -------------------------------------------------------------------- -.de Synopsis -. ds @arg1 \$1\" -. nr @old_indent \n[.i] -. ad l -. in +\w'\f[B]\*[@arg1]\0'u -. ti \n[@old_indent]u -. B \*[@arg1]\0\c -. rr @old_indent -. rm @arg1 -.. -.c -------------------------------------------------------------------- -.de EndSynopsis -. ad -. in -.. -.c -------------------------------------------------------------------- -.c ShortOpt[] (name [arg]) -.c -.c short option in synopsis -.c -.de ShortOpt[] -. if \n[.$]=0 \ -. return -. ds @opt \$1\" -. shift -. ie \n[.$]=0 \ -. Text \f[R][\f[]\f[CB]\*[@-]\*[@opt]\f[]\f[R]]\f[] -. el \ -. Text \f[R][\f[]\f[CB]\*[@-]\*[@opt]\~\f[]\f[I]\/\$*\f[]\f[R]]\f[] -. rm @opt -.. -.c -------------------------------------------------------------------- -.c Option in synopsis (short option) -.de SynOpt -. if \n[.$]=0 \ -. return -. ds @opt \$1\" -. shift -. ie \n[.$]=0 \ -. Text \f[R][\f[]\f[CB]\*[@-]\*[@opt]\f[]\f[R]]\f[] -. el \ -. Text \f[R][\f[]\f[CB]\*[@-]\*[@opt]\~\f[]\f[I]\/\$*\f[]\f[R]]\f[] -. rm @opt -.. -.c -------------------------------------------------------------------- -.c ShortOpt ([char [punct]]) -.c -.c `-c' somewhere in the text -.c second arg is punctuation -.c -.de ShortOpt -. ds @opt \$1\" -. shift -. Text \f[CB]\*[@-]\*[@opt]\f[]\/\$* -. rm @opt -.. -.c -------------------------------------------------------------------- -.c LongOpt ([name [punct]]) -.c -.c `--name' somewhere in the text -.c second arg is punctuation -.c -.de LongOpt -. ds @opt \$1\" -. shift -. Text \f[CB]\*[@--]\f[]\f[B]\*[@opt]\f[]\/\$* -. rm @opt -.. -.c -------------------------------------------------------------------- -.c OptDef (shortopt [longopt [argument]]) -.c -.c option documentation -.c args : `shortopt', `longopt' can be "" -.c -.de OptDef -. ds @short -. ds @long -. ds @arg -. if \n[.$]>=1 \{\ -. ds @arg1 "\$1\" -. if !'\*[@arg1]'' \ -. ds @short "\f[CB]\*[@-]\*[@arg1]\f[]\" -. if \n[.$]>=2 \{\ -. if !'\*[@short]'' \ -. as @short \f[CW]\0\f[] -. ds @arg2 "\$2\" -. if !'\*[@arg2]'' \ -. ds @long "\f[CB]\*[@--]\f[]\f[B]\*[@arg2]\f[]\" -. if \n[.$]>=3 \{\ -. if !'\*[@long]'' \ -. as @long \|=\|\" -. shift 2 -. ds @arg \f[I]\$*\" -. \} -. \} -. \} -. IP "\f[R]\*[@short]\*[@long]\*[@arg]\f[]" -. rm @arg -. rm @arg1 -. rm @arg2 -. rm @short -. rm @long -.. -.c -------------------------------------------------------------------- -.c Continuation of an OptDef header. -.de OptDef+ -. br -. ns -. OptDef \$@ -.. -.c -------------------------------------------------------------------- -.c Environment variable -.de EnvVar -. SM -. BR \%\$1 \$2 -.. -.c -------------------------------------------------------------------- -.c a shell command line -.de ShellCommand -. nr @font \n[.f] -. c replace argument separator by unbreakable space -. ds @args \$1\"" -. shift -. while (\n[.$]>0) \{\ -. ds @args \*[@args]\~\$1 -. shift -. \} -. br -. ad l -. nh -. Text \f[I]sh#\h'1m'\f[P]\f[CR]\*[@args]\f[P]\&\" -. ft R -. ft P -. hy -. ad -. ft \n[@font] -. br -. rr @font -. rm @args -.. -.c -------------------------------------------------------------------- -.c `char or string' -.de Quoted -. ft CR -. Text \[oq]\$*\[cq] -. ft -.. -.c -------------------------------------------------------------------- -.c End of macro definitions -.ec -. -. -.\" -------------------------------------------------------------------- -.\" Title -.\" -------------------------------------------------------------------- -. -.TH GROFF 1 "3 July 2005" "Groff Version 1.19.2" -.SH NAME -groff \- front-end for the groff document formatting system -. -. -.\" -------------------------------------------------------------------- -.SH SYNOPSIS -.\" -------------------------------------------------------------------- -. -.ad l -.Synopsis groff -.ShortOpt[] abcegilpstzCEGNRSUVXZ -.ShortOpt[] d cs -.ShortOpt[] f fam -.ShortOpt[] F dir -.ShortOpt[] I dir -.ShortOpt[] L arg -.ShortOpt[] m name -.ShortOpt[] M dir -.ShortOpt[] n num -.ShortOpt[] o list -.ShortOpt[] P arg -.ShortOpt[] r cn -.ShortOpt[] T dev -.ShortOpt[] w name -.ShortOpt[] W name -.RI [ file -.Text \*[Ellipsis]] -.EndSynopsis -. -.Synopsis groff -.ShortOpt h -| -.LongOpt help -.EndSynopsis -. -.Synopsis groff -.ShortOpt v -| -.LongOpt version -.RI [ option -.Text \*[Ellipsis]] -.EndSynopsis -. -.P -The command line is parsed according to the usual GNU convention. -. -The whitespace between a command line option and its argument is -optional. -. -Options can be grouped behind a single -.ShortOpt -(minus character). -. -A filename of -.ShortOpt -(minus character) denotes the standard input. -. -. -.\" -------------------------------------------------------------------- -.SH DESCRIPTION -.\" -------------------------------------------------------------------- -. -This document describes the -.B groff -program, the main front-end for the -.I groff -document formatting system. -. -The -.I groff -program and macro suite is the implementation of a -.BR roff (7) -system within the free software collection -.URL http://\:www.gnu.org "GNU" . -. -The -.I groff -system has all features of the classical -.IR roff , -but adds many extensions. -. -.P -The -.B groff -program allows to control the whole -.I groff -system by command line options. -. -This is a great simplification in comparison to the classical case (which -uses pipes only). -. -. -.\" -------------------------------------------------------------------- -.SH OPTIONS -.\" -------------------------------------------------------------------- -. -As -.B groff -is a wrapper program for -.B troff -both programs share a set of options. -. -But the -.B groff -program has some additional, native options and gives a new meaning to -some -.B troff -options. -. -On the other hand, not all -.B troff -options can be fed into -.BR groff . -. -. -.\" -------------------------------------------------------------------- -.SS Native groff Options -.\" -------------------------------------------------------------------- -. -The following options either do not exist for -.B troff -or are differently interpreted by -.BR groff . -. -. -.OptDef e -Preprocess with -.BR eqn . -. -. -.OptDef g -Preprocess with -.BR grn . -. -. -.OptDef G -Preprocess with -.BR grap . -. -. -.OptDef h help -Print a help message. -. -. -.OptDef I "" dir -This option may be used to specify a directory to search for -files (both those on the command line and those named in -.B \&.psbb -and -.B \&.so -requests, and -.B \eX'ps: import' -and -.B \eX'ps: file' -escapes). -The current directory is always searched first. -This option may be specified more than once; -the directories will be searched in the order specified. -No directory search is performed for files specified using an absolute path. -This option implies the -.ShortOpt s -option. -. -. -.OptDef l -Send the output to a spooler program for printing. -. -The command that should be used for this is specified by the -.B print -command in the device description file, see -.BR \%groff_font (5). -If this command is not present, the output is piped into the -.BR lpr (1) -program by default. -. -See options -.ShortOpt L -and -.ShortOpt X . -. -. -.OptDef L "" arg -Pass -.I arg -to the spooler program. -Several arguments should be passed with a separate -.ShortOpt L -option each. -. -Note that -.B groff -does not prepend -.ShortOpt\" just a minus sign -(a minus sign) to -.I arg -before passing it to the spooler program. -. -. -.OptDef N -Don't allow newlines within -.I eqn -delimiters. -. -This is the same as the -.ShortOpt N -option in -.BR eqn . -. -. -.OptDef p -Preprocess with -.BR pic . -. -. -.OptDef P "" "\*[@-]option" -.OptDef+ P "" "\*[@-]option \f[CB]\*[@-]P\f[] arg" -Pass -.I \*[@-]option -or -.I \*[@-]option arg -to the postprocessor. -. -The option must be specified with the necessary preceding minus -sign(s) -.Quoted \*[@-] -or -.Quoted \*[@--] -because groff does not prepend any dashes before passing it to the -postprocessor. -. -For example, to pass a title to the \%gxditview postprocessor, the shell -command -.IP -.ShellCommand groff \*[@-]X \*[@-]P \*[@-]title \*[@-]P 'groff it' \f[I]foo\f[] -.IP -is equivalent to -.IP -.ShellCommand groff \*[@-]X \*[@-]Z \f[I]foo\f[] | \ -gxditview \*[@-]title 'groff it' \*[@-] -. -. -.OptDef R -Preprocess with -.BR refer . -. -No mechanism is provided for passing arguments to -.B refer -because most -.B refer -options have equivalent language elements that can be specified within -the document. -. -See -.BR \%refer (1) -for more details. -. -. -.OptDef s -Preprocess with -.BR soelim . -. -. -.OptDef S -Safer mode. -. -Pass the -.ShortOpt S -option to -.B pic -and disable the following -.B troff -requests: -.BR .open , -.BR .opena , -.BR .pso , -.BR .sy , -and -.BR .pi . -For security reasons, safer mode is enabled by default. -. -. -.OptDef t -Preprocess with -.BR tbl . -. -. -.OptDef T "" dev -Set output device to -.IR dev . -For this device, -.B troff -generates the -.I intermediate -.IR output ; -see -.BR \%groff_out (5). -. -Then -.B groff -calls a postprocessor to convert -.BR troff 's -.I intermediate output -to its final format. -. -Real devices in -.B groff -are -. -.RS -.RS -.IP dvi -TeX DVI format (postprocessor is -.BR grodvi ). -.IP html -HTML output (preprocessors are -.B soelim -and -.BR \%pre-grohtml , -postprocessor is -.BR \%post-grohtml ). -.IP lbp -Canon CAPSL printers (\%LBP-4 and \%LBP-8 series laser printers; -postprocessor is -.BR grolbp ). -.IP lj4 -HP LaserJet4 compatible (or other PCL5 compatible) printers (postprocessor -is -.BR grolj4 ). -.IP ps -PostScript output (postprocessor is -.BR grops ). -.RE -.RE -. -.IP -For the following TTY output devices (postprocessor is always -.BR grotty ), -.ShortOpt T -selects the output encoding: -.RS -.RS -.IP ascii -7bit ASCII. -.IP cp1047 -\%Latin-1 character set for EBCDIC hosts. -.IP latin1 -ISO \%8859-1. -.IP utf8 -Unicode character set in \%UTF-8 encoding. -.RE -.RE -. -.IP -The following arguments select -.B \%gxditview -as the `postprocessor' (it is rather a viewing program): -. -.RS -.RS -.IP X75 -75dpi resolution, 10pt document base font. -.IP X75-12 -75dpi resolution, 12pt document base font. -.IP X100 -100dpi resolution, 10pt document base font. -.IP X100-12 -100dpi resolution, 12pt document base font. -.RE -.RE -. -.IP -The default device is -.BR ps . -. -. -.OptDef U -Unsafe mode. -. -Reverts to the (old) unsafe behaviour; see option -.ShortOpt S . -. -. -.OptDef v version -Output version information of -.B groff -and of all programs that are run by it; that is, the given command line -is parsed in the usual way, passing -.ShortOpt v -to all subprograms. -. -. -.OptDef V -Output the pipeline that would be run by -.BR groff -(as a wrapper program) on the standard output, but do not execute it. -If given more than once, -the commands will be both printed on the standard error and run. -. -. -.OptDef X -Use -.B \%gxditview -instead of using the usual postprocessor to (pre)view a document. -. -The printing spooler behavior as outlined with options -.ShortOpt l -and -.ShortOpt L -is carried over to -.BR \%gxditview (1) -by determining an argument for the -.B \*[@-]printCommand -option of -.BR \%gxditview (1). -. -This sets the default -.B Print -action and the corresponding menu entry to that value. -. -.ShortOpt X -only produces good results with -.ShortOpt Tps , -.ShortOpt TX75 , -.ShortOpt TX75-12 , -.ShortOpt TX100 , -and -.ShortOpt TX100-12 . -. -The default resolution for previewing -.ShortOpt Tps -output is 75\|dpi; this can be changed by passing the -.ShortOpt resolution -option to -.BR \%gxditview , -for example -. -.IP -.ShellCommand groff \*[@-]X \*[@-]P\*[@-]resolution \*[@-]P100 \*[@-]man foo.1 -. -. -.OptDef z -Suppress output generated by -.BR troff . -Only error messages will be printed. -. -. -.OptDef Z -Print the -.I groff intermediate output -to standard output; see -.BR \%groff_out (5). -Normally -.BR groff -calls automatically a postprocessor. -. -With this option, the output of -.B troff -for the device, the so-called -.I intermediate output -is issued without postprocessing. -. -. -.\" -------------------------------------------------------------------- -.SS Transparent Options -.\" -------------------------------------------------------------------- -. -The following options are transparently handed over to the formatter -program -.B troff -that is called by groff subsequently. -. -These options are described in more detail in -.BR troff (1). -. -.OptDef a -ascii approximation of output. -. -.OptDef b -backtrace on error or warning. -. -.OptDef c -disable color output. -. -Please consult the -.BR \%grotty (1) -man page for more details. -. -.OptDef C -enable compatibility mode. -. -.OptDef d "" cs -.OptDef+ d "" name=s -define string. -. -.OptDef E -disable -.B troff -error messages. -. -.OptDef f "" fam -set default font family. -. -.OptDef F "" dir -set path for font DESC files. -. -.OptDef i -process standard input after the specified input files. -. -.OptDef m "" name -include macro file \f[I]name\f[]\f[B].tmac\f[] (or -\f[B]tmac.\f[]\f[I]name\f[]); see also -.BR \%groff_tmac (5). -. -.OptDef M "" dir -path for macro files. -. -.OptDef n "" num -number the first page -.IR num . -. -.OptDef o "" list -output only pages in -.IR list . -. -.OptDef r "" cn -.OptDef+ r "" name=n -set number register. -. -.OptDef w "" name -enable warning -.IR name . -. -.OptDef W "" name -disable warning -.IR name . -. -. -.\" -------------------------------------------------------------------- -.SH "USING GROFF" -.\" -------------------------------------------------------------------- -. -The -.I groff system -implements the infrastructure of classical roff; see -.BR roff (7) -for a survey on how a roff system works in general. -. -Due to the front-end programs available within the groff system, using -.I groff -is much easier than -.IR "classical roff" . -. -This section gives an overview of the parts that constitute the groff -system. -. -It complements -.BR roff (7) -with groff-specific features. -. -This section can be regarded as a guide to the documentation around -the groff system. -. -. -.\" -------------------------------------------------------------------- -.SS Paper Size -.\" -------------------------------------------------------------------- -. -The -.I virtual -paper size used by -.B troff -to format the input is controlled globally with the requests -.BR .po , -.BR .pl , -and -.BR .ll . -See -.BR groff_tmac (5) -for the `papersize' macro package which provides a convenient interface. -. -.P -The -.I physical -paper size, giving the actual dimensions of the paper sheets, is -controlled by output devices like -.BR grops -with the command line options -.B \-p -and -.BR \-l . -See -.BR groff_font (5) -and the man pages of the output devices for more details. -.B groff -uses the command line option -.B \-P -to pass options to output devices; for example, the following selects -A4 paper in landscape orientation for the PS device: -. -.RS -.P -groff -Tps -P-pa4 -P-l .\|.\|. -.RE -. -. -.\" -------------------------------------------------------------------- -.SS Front-ends -.\" -------------------------------------------------------------------- -. -The -.B groff -program is a wrapper around the -.BR troff (1) -program. -. -It allows to specify the preprocessors by command line options and -automatically runs the postprocessor that is appropriate for the -selected device. -. -Doing so, the sometimes tedious piping mechanism of classical -.BR roff (7) -can be avoided. -. -.P -The -.BR grog (1) -program can be used for guessing the correct groff command line to -format a file. -. -.P -The -.BR \%groffer (1) -program is an allround-viewer for groff files and man pages. -. -. -.\" -------------------------------------------------------------------- -.SS Preprocessors -.\" -------------------------------------------------------------------- -. -The groff preprocessors are reimplementations of the classical -preprocessors with moderate extensions. -. -The preprocessors distributed with the -.I groff -package are -. -.TP -.BR eqn (1) -for mathematical formul\(ae, -.TP -.BR grn (1) -for including -.BR gremlin (1) -pictures, -.TP -.BR pic (1) -for drawing diagrams, -.TP -.BR \%refer (1) -for bibliographic references, -.TP -.BR \%soelim (1) -for including macro files from standard locations, -. -.P -and -.TP -.BR tbl (1) -for tables. -. -.P -Besides these, there are some internal preprocessors that are -automatically run with some devices. -. -These aren't visible to the user. -. -. -.\" -------------------------------------------------------------------- -.SS "Macro Packages" -.\" -------------------------------------------------------------------- -. -Macro packages can be included by option -.ShortOpt m . -. -The groff system implements and extends all classical macro packages -in a compatible way and adds some packages of its own. -. -Actually, the following macro packages come with -.IR groff : -. -.TP -.B man -The traditional man page format; see -.BR \%groff_man (7). -It can be specified on the command line as -.ShortOpt man -or -.ShortOpt m -.BR man . -. -.TP -.B mandoc -The general package for man pages; it automatically recognizes -whether the documents uses the -.I man -or the -.I mdoc -format and branches to the corresponding macro package. -. -It can be specified on the command line as -.ShortOpt mandoc -or -.ShortOpt m -.BR mandoc . -. -.TP -.B mdoc -The BSD-style man page format; see -.BR \%groff_mdoc (7). -It can be specified on the command line as -.ShortOpt mdoc -or -.ShortOpt m -.BR mdoc . -. -.TP -.B me -The classical -.I me -document format; see -.BR \%groff_me (7). -It can be specified on the command line as -.ShortOpt me -or -.ShortOpt m -.BR me . -. -.TP -.B mm -The classical -.I mm -document format; see -.BR \%groff_mm (7). -It can be specified on the command line as -.ShortOpt mm -or -.ShortOpt m -.BR mm . -. -.TP -.B ms -The classical -.I ms -document format; see -.BR \%groff_ms (7). -It can be specified on the command line as -.ShortOpt ms -or -.ShortOpt m -.BR ms . -. -.TP -.B www -HTML-like macros for inclusion in arbitrary groff documents; see -.BR \%groff_www (7). -. -.P -Details on the naming of macro files and their placement can be found -in -.BR \%groff_tmac (5); -this man page also documents some other, minor auxiliary macro packages -not mentioned here. -. -. -.\" -------------------------------------------------------------------- -.SS "Programming Language" -.\" -------------------------------------------------------------------- -. -General concepts common to all roff programming languages are -described in -.BR roff (7). -. -.P -The groff extensions to the classical troff language are documented in -.BR \%groff_diff (7). -. -.P -The groff language as a whole is described in the (still incomplete) -.IR "groff info file" ; -a short (but complete) reference can be found in -.BR groff (7). -. -. -.\" -------------------------------------------------------------------- -.SS Formatters -.\" -------------------------------------------------------------------- -. -The central roff formatter within the groff system is -.BR troff (1). -It provides the features of both the classical troff and nroff, as -well as the groff extensions. -. -The command line option -.ShortOpt C -switches -.B troff -into -.I "compatibility mode" -which tries to emulate classical roff as much as possible. -. -.P -There is a shell script -.BR nroff (1) -that emulates the behavior of classical nroff. -. -It tries to automatically select the proper output encoding, according to -the current locale. -. -.P -The formatter program generates -.IR "intermediate output" ; -see -.BR \%groff_out (7). -. -. -.\" -------------------------------------------------------------------- -.SS Devices -.\" -------------------------------------------------------------------- -. -In roff, the output targets are called -.IR devices . -A device can be a piece of hardware, e.g. a printer, or a software -file format. -. -A device is specified by the option -.ShortOpt T . -The groff devices are as follows. -. -.TP -.B ascii -Text output using the -.BR ascii (7) -character set. -. -.TP -.B cp1047 -Text output using the EBCDIC code page IBM cp1047 (e.g. OS/390 Unix). -. -.TP -.B dvi -TeX DVI format. -. -.TP -.B html -HTML output. -. -.TP -.B latin1 -Text output using the ISO \%Latin-1 (ISO \%8859-1) character set; see -.BR \%iso_8859_1 (7). -. -.TP -.B lbp -Output for Canon CAPSL printers (\%LBP-4 and \%LBP-8 series laser printers). -. -.TP -.B lj4 -HP LaserJet4-compatible (or other PCL5-compatible) printers. -. -.TP -.B ps -PostScript output; suitable for printers and previewers like -.BR gv (1). -. -.TP -.B utf8 -Text output using the Unicode (ISO 10646) character set with \%UTF-8 -encoding; see -.BR unicode (7). -. -.TP -.B X75 -75dpi X Window System output suitable for the previewers -.BR \%xditview (1x) -and -.BR \%gxditview (1). -A variant for a 12\|pt document base font is -.BR \%X75-12 . -. -.TP -.B X100 -100dpi X Window System output suitable for the previewers -.BR \%xditview (1x) -and -.BR \%gxditview (1). -A variant for a 12\|pt document base font is -.BR \%X100-12 . -. -.P -The postprocessor to be used for a device is specified by the -.B postpro -command in the device description file; see -.BR \%groff_font (5). -. -This can be overridden with the -.B \*[@-]X -option. -. -.P -The default device is -.BR ps . -. -. -.\" -------------------------------------------------------------------- -.SS Postprocessors -.\" -------------------------------------------------------------------- -. -groff provides 3\~hardware postprocessors: -. -.TP -.BR \%grolbp (1) -for some Canon printers, -.TP -.BR \%grolj4 (1) -for printers compatible to the HP LaserJet\~4 and PCL5, -.TP -.BR \%grotty (1) -for text output using various encodings, e.g. on text-oriented -terminals or line-printers. -. -.P -Today, most printing or drawing hardware is handled by the operating -system, by device drivers, or by software interfaces, usually accepting -PostScript. -. -Consequently, there isn't an urgent need for more hardware device -postprocessors. -. -.P -The groff software devices for conversion into other document file -formats are -. -.TP -.BR \%grodvi (1) -for the DVI format, -.TP -.BR \%grohtml (1) -for HTML format, -.TP -.BR grops (1) -for PostScript. -. -.P -Combined with the many existing free conversion tools this should -be sufficient to convert a troff document into virtually any existing -data format. -. -. -.\" -------------------------------------------------------------------- -.SS Utilities -.\" -------------------------------------------------------------------- -. -The following utility programs around groff are available. -. -.TP -.BR \%addftinfo (1) -Add information to troff font description files for use with groff. -. -.TP -.BR \%afmtodit (1) -Create font description files for PostScript device. -. -.TP -.BR \%groffer (1) -General viewer program for groff files and man pages. -. -.TP -.BR \%gxditview (1) -The groff X viewer, the GNU version of xditview. -. -.TP -.BR \%hpftodit (1) -Create font description files for lj4 device. -. -.TP -.BR \%indxbib (1) -Make inverted index for bibliographic databases. -. -.TP -.BR lkbib (1) -Search bibliographic databases. -. -.TP -.BR \%lookbib (1) -Interactively search bibliographic databases. -. -.TP -.BR \%pfbtops (1) -Translate a PostScript font in .pfb format to ASCII. -. -.TP -.BR \%tfmtodit (1) -Create font description files for TeX DVI device. -. -.TP -.BR \%xditview (1x) -roff viewer distributed with X window. -. -. -.\" -------------------------------------------------------------------- -.SH ENVIRONMENT -.\" -------------------------------------------------------------------- -. -Normally, the path separator in the following environment variables is the -colon; this may vary depending on the operating system. -. -For example, DOS and Windows use a semicolon instead. -. -.TP -.EnvVar GROFF_BIN_PATH -This search path, followed by -.EnvVar $PATH , -will be used for commands that are executed by -.BR groff . -. -If it is not set then the directory where the groff binaries were -installed is prepended to -.EnvVar PATH . -. -.TP -.EnvVar GROFF_COMMAND_PREFIX -When there is a need to run different roff implementations at the same -time -.I groff -provides the facility to prepend a prefix to most of its programs that -could provoke name clashings at run time (default is to have none). -. -Historically, this prefix was the character -.BR g , -but it can be anything. -. -For example, -.BR gtroff -stood for -.IR groff 's -.BR troff , -.BR gtbl -for the -.I groff -version of -.BR tbl . -. -By setting -.EnvVar GROFF_COMMAND_PREFIX -to different values, the different roff installations can be -addressed. -. -More exactly, if it is set to prefix -.I xxx -then -.B groff -as a wrapper program will internally call -.IB xxx troff -instead of -.BR troff . -This also applies to the preprocessors -.BR \%eqn , -.BR \%grn , -.BR \%pic , -.BR \%refer , -.BR \%tbl , -.BR \%soelim , -and to the utilities -.B \%indxbib -and -.BR \%lookbib . -. -This feature does not apply to any programs different from the ones -above (most notably -.B groff -itself) since they are unique to the groff package. -. -. -.TP -.EnvVar GROFF_FONT_PATH -A list of directories in which to search for the -.BI dev name -directory in addition to the default ones. -. -See -.BR troff (1) -and -.BR \%groff_font (5) -for more details. -. -. -.TP -.EnvVar GROFF_TMAC_PATH -A list of directories in which to search for macro files in addition to -the default directories. -. -See -.BR troff (1) -and -.BR \%groff_tmac (5) -for more details. -. -. -.TP -.EnvVar GROFF_TMPDIR -The directory in which temporary files will be created. -. -If this is not set but the environment variable -.EnvVar TMPDIR -instead, temporary files will be created in the directory -.EnvVar $TMPDIR . -On MS-DOS and Windows\ 32 platforms, the environment variables -.EnvVar TMP -and -.EnvVar TEMP -(in that order) are searched also, after -.EnvVar GROFF_TMPDIR -and -.EnvVar TMPDIR . -. -Otherwise, temporary files will be created in -.BR /tmp . -The -.BR \%refer (1), -.BR \%groffer (1), -.BR \%grohtml (1), -and -.BR grops (1) -commands use temporary files. -. -. -.TP -.EnvVar GROFF_TYPESETTER -Preset the default device. -. -If this is not set the -.B ps -device is used as default. -. -This device name is overwritten by the option -.ShortOpt T . -. -. -.\" -------------------------------------------------------------------- -.SH FILES -.\" -------------------------------------------------------------------- -. -There are some directories in which -.I groff -installs all of its data files. -. -Due to different installation habits on different operating systems, -their locations are not absolutely fixed, but their function is -clearly defined and coincides on all systems. -. -. -.\" -------------------------------------------------------------------- -.SS "groff Macro Directory" -.\" -------------------------------------------------------------------- -. -This contains all information related to macro packages. -. -Note that more than a single directory is searched for those files -as documented in -.BR \%groff_tmac (5). -. -For the groff installation corresponding to this document, it is -located at -.IR /usr/share/groff/1.19.2/tmac . -. -The following files contained in the -.I groff macro directory -have a special meaning: -. -. -.TP -.B troffrc -Initialization file for troff. -. -This is interpreted by -.B troff -before reading the macro sets and any input. -. -. -.TP -.B troffrc-end -Final startup file for troff, it is parsed after all macro sets have -been read. -. -. -.TP -.IB name .tmac -.TP+ -.BI tmac. name -Macro file for macro package -.IR name . -. -. -.\" -------------------------------------------------------------------- -.SS "groff Font Directory" -.\" -------------------------------------------------------------------- -. -This contains all information related to output devices. -. -Note that more than a single directory is searched for those files; see -.BR troff (1). -. -For the groff installation corresponding to this document, it is -located at -.IR /usr/share/groff/1.19.2/font . -. -The following files contained in the -.I groff font directory -have a special meaning: -. -. -.TP -.BI dev name /DESC -Device description file for device -.IR name , -see -.BR \%groff_font (5). -. -. -.TP -.BI dev name / F -Font file for font -.I F -of device -.IR name . -. -. -.\" -------------------------------------------------------------------- -.SH EXAMPLES -.\" -------------------------------------------------------------------- -. -The following example illustrates the power of the -.B groff -program as a wrapper around -.BR troff . -. -.P -To process a roff file using the preprocessors -.B tbl -and -.B pic -and the -.B me -macro set, classical troff had to be called by -. -.P -.ShellCommand pic foo.me | tbl | troff \*[@-]me \*[@-]Tlatin1 | grotty -. -.P -Using -.BR groff , -this pipe can be shortened to the equivalent command -.P -.ShellCommand groff \*[@-]p \*[@-]t \*[@-]me \*[@-]T latin1 foo.me -. -.P -An even easier way to call this is to use -.BR grog (1) -to guess the preprocessor and macro options and execute the generated -command (by using backquotes to specify shell command substitution) -.P -.ShellCommand \`grog \*[@-]Tlatin1 foo.me\` -. -.P -The simplest way is to view the contents in an automated way by -calling -. -.P -.ShellCommand groffer foo.me -. -. -.\" -------------------------------------------------------------------- -.SH BUGS -.\" -------------------------------------------------------------------- -. -.P -On EBCDIC hosts (e.g. OS/390 Unix), output devices -.B ascii -and -.B latin1 -aren't available. -. -Similarly, output for EBCDIC code page -.B cp1047 -is not available on ASCII based operating systems. -. -.P -Report bugs to bug-groff@gnu.org. -. -Include a complete, self-contained example that will allow the bug to -be reproduced, and say which version of groff you are using. -. -. -.\" -------------------------------------------------------------------- -.SH AVAILABILITY -.\" -------------------------------------------------------------------- -. -Information on how to get groff and related information is available -at the -.URL http://\:www.gnu.org/\:software/\:groff "GNU website" . -The most recent released version of groff is available for anonymous -ftp at the -.URL ftp://ftp.ffii.org/\:pub/\:groff/\:devel/\:groff-current.tar.gz \ - "groff development site" . -. -.P -Three groff mailing lists are available: -.TP -.MTO bug-groff@gnu.org -for reporting bugs, -. -.TP -.MTO groff@gnu.org -for general discussion of groff, -. -.TP -.MTO groff-commit@ffii.org -a read-only list showing logs of commitments to the CVS repository. -. -.P -Details on CVS access and much more can be found in the file -.B README -at the top directory of the groff source package. -. -.P -There is a free implementation of the -.B grap -preprocessor, written by -.MTO faber@lunabase.org " Ted Faber" . -. -The actual version can be found at the -. -.URL http://\:www.lunabase.org/\:~faber/\:Vault/\:software/\:grap/ \ - "grap website" . -This is the only grap version supported by groff. -. -. -.\" -------------------------------------------------------------------- -.SH AUTHORS -.\" -------------------------------------------------------------------- -. -Copyright \(co 1989, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. -. -.P -This document is distributed under the terms of the FDL (GNU Free -Documentation License) version 1.1 or later. -. -You should have received a copy of the FDL on your system, it is also -available on-line at the -.URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" . -. -.P -This document is based on the original groff man page written by -.MTO jjc@jclark.com "James Clark" . -. -It was rewritten, enhanced, and put under the FDL license by -\m[blue]Bernd Warken\m[]. -. -It is maintained by -.MTO wl@gnu.org "Werner Lemberg" . -. -.P -.I groff -is a GNU free software project. -. -All parts of the -.I groff package -are protected by GNU copyleft licenses. -. -The software files are distributed under the terms of the GNU General -Public License (GPL), while the documentation files mostly use the GNU -Free Documentation License (FDL). -. -. -.\" -------------------------------------------------------------------- -.SH "SEE ALSO" -.\" -------------------------------------------------------------------- -. -The -.IR "groff info file" -contains all information on the groff system within a single document. -. -Beneath the detailed documentation of all aspects, it provides -examples and background information. -. -See -.BR info (1) -on how to read it. -. -.P -Due to its complex structure, the groff system has many man pages. -. -They can be read with -.BR man (1) -or -.BR \%groffer (1). -. -.TP -Introduction, history and further readings: -.BR roff (7). -. -.TP -Viewer for groff files: -.BR \%groffer (1), -.BR \%gxditview (1), -.BR \%xditview (1x). -. -.TP -Wrapper programs for formatters: -.BR \%groff (1), -.BR \%grog (1). -. -.TP -Roff preprocessors: -.BR \%eqn (1), -.BR \%grn (1), -.BR \%pic (1), -.BR \%refer (1), -.BR \%soelim (1), -.BR \%tbl (1), -.BR grap (1). -. -.TP -Roff language with the groff extensions: -.BR \%groff (7), -.BR \%groff_char (7), -.BR \%groff_diff (7), -.BR \%groff_font (5). -. -.TP -Roff formatter programs: -.BR \%nroff (1), -.BR \%troff (1), -.BR ditroff (7). -. -.TP -The -.I intermediate output -language: -.BR \%groff_out (7). -. -.TP -Postprocessors for the output devices: -.BR \%grodvi (1), -.BR \%grohtml (1), -.BR \%grolbp (1), -.BR \%grolj4 (1), -.BR \%lj4_font (5), -.BR \%grops (1), -.BR \%grotty (1). -. -.TP -Groff macro packages and macro-specific utilities: -.BR \%groff_tmac (5), -.BR \%groff_man (7), -.BR \%groff_mdoc (7), -.BR \%groff_me (7), -.BR \%groff_mm (7), -.BR \%groff_mmse (7), -.BR \%groff_mom (7), -.BR \%groff_ms (7), -.BR \%groff_www (7), -.BR \%groff_trace (7), -.BR \%mmroff (7). -. -.TP -The following utilities are available: -.BR \%addftinfo (1), -.BR \%afmtodit (1), -.BR \%eqn2graph (1), -.BR \%grap2graph (1), -.BR \%groffer (1), -.BR \%gxditview (1), -.BR \%hpftodit (1), -.BR \%indxbib (1), -.BR \%lookbib (1), -.BR \%pfbtops (1), -.BR \%pic2graph (1), -.BR \%tfmtodit (1). -. -.cp \n[groff_C] -. -.\" -------------------------------------------------------------------- -.\" Emacs setup -.\" -------------------------------------------------------------------- -. -.\" Local Variables: -.\" mode: nroff -.\" End: diff --git a/gen/usr/share/man/man1/groffer.1 b/gen/usr/share/man/man1/groffer.1 deleted file mode 100644 index f789efe..0000000 --- a/gen/usr/share/man/man1/groffer.1 +++ /dev/null @@ -1,4018 +0,0 @@ -.TH GROFFER 1 "22 August 2005" "Groff Version 1.19.2" -.SH NAME -groffer \- display groff files and man\~pages on X and tty -. -.SH "SYNOPSIS" -.\" The .SH was moved to this place in order to appease `apropos'. -. -.\" -------------------------------------------------------------------- -.\" Legalize -.\" -------------------------------------------------------------------- -. -.ig -groffer.1 - man page for groffer (section 1). - -Source file position: /contrib/groffer/groffer.man -Installed position: $prefix/share/man/man1/groffer.1 - -Last update: 22 August 2005 - -Source file position: /contrib/groffer/groffer.man -.. -.de author -This file was written by -.MTO "" "Bernd Warken" . -.. -.de copyleft -Copyright (C) 2001,2002,2004,2005 Free Software Foundation, Inc. -. -.P -This file is part of -.IR \%groffer , -which is part of -.IR \%groff , -a free software project. -. -You can redistribute it and/or modify it under the terms of the -.nh -.B GNU General Public License -.hy -as published by the -.nh -.BR "Free Software Foundation" , -.hy -either version 2, or (at your option) any later version. -. -.P -You should have received a copy of the \f[CR]GNU General Public -License\f[] along with -.IR groff , -see the files \%\f[CB]COPYING\f[] and \%\f[CB]LICENSE\f[] in the top -directory of the -.I groff -source package. -. -Or read the -.I man\~page -.BR gpl (1). -You can also write to the -.nh -.B Free Software Foundation, 51 Franklin St - Fifth Floor, Boston, -.BR "MA 02110-1301, USA" . -.hy -.. -. -.\" -------------------------------------------------------------------- -.\" Setup -.\" -------------------------------------------------------------------- -. -.mso www.tmac -. -.if n \{\ -. mso tty-char.tmac -. ftr CR R -. ftr CI I -. ftr CB B -.\} -. -.if '\*[.T]'dvi' \{\ -. ftr CB CW -.\} -. -.ds Ellipsis ".\|.\|.\"" -. -.\" -------------------------------------------------------------------- -.\" setup for the macro definitions below -.\" -.\" naming: namespace:cathegory_macro.variable_name (experimental) -. -.\" -------------------------------------------------------------------- -.\" configuration of prompt for `.Shell_cmd'* macros -.ds groffer:Shell_cmd.prompt_text sh#\" prompt for shell commands -.ds groffer:Shell_cmd+.prompt_text >\" prompt on continuation lines -.ds groffer:Shell_cmd_base.prompt_font I\" font for prompts -. -.\" automatically determine setup from the configuration above -.als @f groffer:Shell_cmd_base.prompt_font\" -.als @t groffer:Shell_cmd.prompt_text\" -.als @t+ groffer:Shell_cmd+.prompt_text\" -.ds groffer:Shell_cmd.prompt \f[\*[@f]]\*[@t]\f[]\" needed -.ds groffer:Shell_cmd+.prompt \f[\*[@f]]\*[@t+]\f[]\" needed -.nr @w \w'\*[groffer:Shell_cmd.prompt]'\" -.nr @w+ \w'\*[groffer:Shell_cmd+.prompt]'\" -.ft \*[@f] -.\" Full prompt width is maximum of texts plus 1m -.nr groffer:Shell_cmd_base.prompt_width (\n[@w]>?\n[@w+]+1m)\" needed -.ft -.rm @f -.rm @f+ -.rm @t -.rm @t+ -.rr @w -.rr @w+ -. -.\" -------------------------------------------------------------------- -.\" static register for inter-macro communication in `.Synopsis'* -.nr groffer:Synopsis.level 0 -. -.\" -------------------------------------------------------------------- -.\" static registers for inter-macro communication in `.TP'* -.nr groffer:TP.level 0 -.rr groffer:TP_header.flag -.rr groffer:TP_body.flag -.rr groffer:TP.indent -. -. -.\" -------------------------------------------------------------------- -.\" Macro definitions -. -.\" Ignore all arguments like a comment, even after a .eo call. -.de c -.. -.c -------------------------------------------------------------------- -.c .CB (...) -.c -.c Print in constant-width bold font. -.c -.de CB -. ft CB -. Text \\$* -. ft -.. -.c -------------------------------------------------------------------- -.c .CI (...) -.c -.c Print in constant-width italic font. -.c -.de CI -. ft CI -. Text \\$* -. ft -.. -.c -------------------------------------------------------------------- -.c .CR (...) -.c -.c Print in constant-width roman font. -.c -.de CR -. ft CR -. Text \\$* -. ft -.. -.c -------------------------------------------------------------------- -.c .Error (...) -.c -.c Print error message to terminal and abort. -.c -.de Error -. tm \\$* -. ab -.. -.c -------------------------------------------------------------------- -.c .Env_var ( []) -.c -.c Display an environment variable, with optional punctuation. -.c -.de Env_var -. nh -. SM -. Text \f[CB]\\$1\f[]\\$2 -. hy -.. -.c -------------------------------------------------------------------- -.c .File_name () -.c -.c Display a file or directory name in CB font. -.c -.de File_name -. Header_CB \\$@ -.. -.c -------------------------------------------------------------------- -.c .Header_CB () -.c -.c Display a line in CB font, for example after .TP -.c -.de Header_CB -. nh -. Text \f[CB]\\$1\f[]\\$2 -. hy -.. -.c -------------------------------------------------------------------- -.c .Opt_- ([]) -.c -.c Print `-' (minus sign); optional punctuation. -.c -.de Opt_- -. ie (\\n[.$] == 0) \ -. Opt_alt - "" -. el \ -. Opt_alt - "" "\\$1" -.. -.c -------------------------------------------------------------------- -.c .Opt_[-] ([]) -.c -.c Print `Opt_[-]' (minus sign in brackets); optional punctuation. -.c -.de Opt_[-] -. ie (\\n[.$] == 0) \ -. Opt_[alt] - "" -. el \ -. Opt_[alt] - "" "\\$1" -.. -.c -------------------------------------------------------------------- -.c .Opt_-- ([]) -.c -.c Print `--' (double minus); optional punctuation. -.c -.de Opt_-- -. ie (\\n[.$] == 0) \ -. Opt_alt -- "" -. el \ -. Opt_alt -- "" "\\$1" -.. -.c -------------------------------------------------------------------- -.c .Opt_[--] ([]) -.c -.c Print `Opt_[--]' (double minus in brackets); optional punctuation. -.c -.de Opt_[--] -. ie (\\n[.$] == 0) \ -. Opt_[alt] -- "" -. el \ -. Opt_[alt] -- "" "\\$1" -.. -.c -------------------------------------------------------------------- -.c .Opt_alt ([ ]... [ []]) -.c -.c Alternate options separated by a vertical bar. -.c -.c Arguments: -.c minus: either `-' or `--' (font CB). -.c opt: a name for an option, empty allowed (font CB). -.c arg: optionally, the argument to the option (font I). -.c punct: optional punctuation (in the starting font). -.c Result: -.c The minus/opt argument pairs, each -.c separated by a vertical bar `|', optionally add 'arg', separated -.c a space character ` '. -.c -.c Example: -.c .Opt_alt - T -- device -- device-troff device . -.c results in -.c -T|--device|--device-troff device. -.c -.de Opt_alt -. Opt_alt_base "" | "" \\$@ -.. -.c -------------------------------------------------------------------- -.c .Opt_[alt] ([ ]... [ []]) -.c -.c Alternate options in brackets for section SYNOPSIS. -.c -.c Arguments: -.c minus: either `-' or `--' (font CB). -.c opt: a name for an option, empty allowed (font CB). -.c arg: optionally, the argument to the option (font I). -.c punct: optional punctuation (in the starting font). -.c Global strings written to: -.c `@oa_prefix': left enclosing character (`[') -.c `@oa_sep': separator (`|') -.c `@oa_postfix': right enclosing character (`]') -.c Result: -.c The minus/opt argument pairs, each separated by a vertical -.c bar `|', optionally add 'arg', separated by a space character ` '. -.c -.c Example: -.c .Opt_[alt] - T -- device -- device-troff device . -.c results in -.c [-T|--device|--device-troff device]. -.c -.de Opt_[alt] -. Opt_alt_base [ | ] \\$@ -.. -.c -------------------------------------------------------------------- -.c .Opt_alt_base (
       [ ]... [arg [punct]])
    -.c
    -.c Alternating options; base macro for many others; do not use directly.
    -.c
    -.c Arguments:
    -.c   
    : prefix, result is preceded by this.
    -.c   : separator between minus/opt pairs.
    -.c   : postfix, is appended to the result.
    -.c   : either `-' or `--' (font CB).
    -.c   : a name for an option, empty allowed (font CB).
    -.c   : optionally, the argument to the option (font I).
    -.c   : optional punctuation (in the starting font).
    -.c Result:
    -.c   String `
    ' followed by the / argument pairs, each
    -.c   separated by string `', optionally add '', separated by
    -.c   a single space ` ', followed by the string `'.  Terminated
    -.c   by the optional punctuation .
    -.c
    -.de Opt_alt_base
    -.  nr @font \\n[.f]\"
    -.  if (\\n[.$] < 3) \
    -.    Error .\\0: not enough arguments.
    -.  ds @pre \)\\$1\)\"                   prefix
    -.  ds @sep \)\\$2\)\"                   separator
    -.  ds @post \)\\$3\)\"                  postfix
    -.  shift 3
    -.  nr @count 0
    -.  ds @res \f[CR]\\*[@pre]\"
    -.  while (\\n[.$] >= 2) \{\
    -.    c                                  do the pairs, break on no `-'
    -.    if !'\\$1'-' \{\
    -.      if !'\\$1'--' \
    -.        break
    -.    \}
    -.    c                                  separator
    -.    if (\\n[@count] > 0) \
    -.      as @res \f[CR]\\*[@sep]\:\"
    -.    nr @count +1
    -.    c                                  combine minus with option name
    -.    as @res \f[CB]\\-\"
    -.    if '\\$1'--' \
    -.      as @res \\-\"
    -.    as @res \\$2\"
    -.    shift 2
    -.  \}
    -.  if (\\n[.$] >= 3) \
    -.    Error .\\0: wrong arguments: \\$@
    -.  c                                    all pairs are done
    -.  ie (\\n[.$] == 0) \
    -.    as @res \f[CR]\\*[@post]\"
    -.  el \{\
    -.    c                                  optional option argument
    -.    if !'\\$1'' \
    -.      as @res \f[CR] \,\f[I]\\$1\"
    -.    shift
    -.    c                                  postfix
    -.    as @res \\f[CR]\\*[@post]\"
    -.    if (\\n[.$] >= 1) \{\
    -.      c                                add punctuation
    -.      as @res \f[\\n[@font]]\\$1\"
    -.    \}
    -.  \}
    -.  nh
    -.  Text \\*[@res]
    -.  hy
    -.  ft \\n[@font]
    -.  rr @count
    -.  rr @font
    -.  rm @pre
    -.  rm @post
    -.  rm @sep
    -.  rm @res
    -..
    -.c --------------------------------------------------------------------
    -.c .Opt_def  ([ ]... [ []])
    -.c
    -.c Definitions of options in section OPTIONS.
    -.c
    -.c Arguments:
    -.c   minus: either `-' or `--' (font CB).
    -.c   opt: a name for an option, empty allowed (font CB).
    -.c   arg: optionally, the argument to the option (font I).
    -.c   punct: optional punctuation (in the starting font).
    -.c Result:
    -.c   The header for an indented paragraph, consisting of
    -.c   minus/opt argument pairs, each, separated by a space
    -.c   character ` ', optionally add 'arg', separated a space
    -.c   character ` '.
    -.c
    -.c Example:
    -.c  .Opt_def - T -- device -- device-troff device .
    -.c  results in
    -.c  -T --device --device-troff device.
    -.c  as the header of for indented paragraph.
    -.c
    -.de Opt_def
    -.  TP
    -.    Opt_alt_base "" "\~|\~" "" \\$@
    -..
    -.c --------------------------------------------------------------------
    -.c .Opt_element  ([ ]... [ []])
    -.c
    -.c Definitions of options in section OPTIONS.
    -.c
    -.c Arguments:
    -.c   minus: either `-' or `--' (font CB).
    -.c   opt: a name for an option, empty allowed (font CB).
    -.c   arg: optionally, the argument to the option (font I).
    -.c   punct: optional punctuation (in the starting font).
    -.c Result:
    -.c   The minus/opt argument pairs, each, separated by a space
    -.c   character ` ', optionally add 'arg', separated a space
    -.c   character ` '.
    -.c
    -.c Example:
    -.c  .Opt_element - T -- device -- device-troff device .
    -.c  results in
    -.c  -T --device --device-troff device.
    -.c
    -.de Opt_element
    -.  Opt_alt_base "" "\~" "" \\$@
    -..
    -.c --------------------------------------------------------------------
    -.als Opt_list Opt_element
    -.
    -.c --------------------------------------------------------------------
    -.c .Opt_long  ([ []])
    -.c
    -.c Print `--name' somewhere in the text; optional punctuation.
    -.c
    -.de Opt_long
    -.  Opt_alt -- "\\$1" "" "\\$2"
    -..
    -.c --------------------------------------------------------------------
    -.c .Opt_long_arg  ([  []])
    -.c
    -.c Print `--name=arg' somewhere in the text; optional punctuation.
    -.c
    -.de Opt_long_arg
    -.  Opt_alt -- "\\$1=\\$2" "" "\\$3"
    -..
    -.c --------------------------------------------------------------------
    -.c .Opt_[long]  ([ []])
    -.c
    -.c Print `--name' somewhere in the text; optional punctuation.
    -.c
    -.de Opt_[long]
    -.  Opt_[alt] -- "\\$1" "" "\\$2"
    -..
    -.c --------------------------------------------------------------------
    -.c .Opt_short  ([ []])
    -.c
    -.c Print `-name' somewhere in the Text; optional punctuation.
    -.c
    -.de Opt_short
    -.  Opt_alt - "\\$1" "" "\\$2"
    -..
    -.c --------------------------------------------------------------------
    -.c .Opt_[short]  ([name [punct]])
    -.c
    -.c Print `[-name]' somewhere in the Text; optional punctuation.
    -.c
    -.de Opt_[short]
    -.  Opt_[alt] - "\\$1" "" "\\$2"
    -..
    -.c --------------------------------------------------------------------
    -.c .Shell_cmd  ( [] ...)
    -.c
    -.c A shell command line; display args alternating in fonts CR and CI.
    -.c
    -.c Examples:
    -.c   .Shell_cmd "groffer --dpi 100 file"
    -.c     result: `sh#  groffer --dpi 100 file'
    -.c             with 'sh#' in font I, the rest in CR
    -.c
    -.c   .Shell_cmd groffer\~--dpi\~100\~file
    -.c     result: the same as above
    -.c
    -.c   .Shell_cmd "groffer --dpi=" value " file"
    -.c     result: sh#  groffer --dpi=value file
    -.c             with `groffer --dpi=' and `file' in CR; `value' in CI
    -.c
    -.c   .Shell_cmd groffer\~--dpi= value \~file
    -.c     result: the same as the previous example
    -.c
    -.de Shell_cmd
    -.  groffer:Shell_cmd_base "\*[groffer:Shell_cmd.prompt]" \\$@
    -..
    -.c --------------------------------------------------------------------
    -.c .Shell_cmd+  ( [] ...)
    -.c
    -.c A continuation line for .Shell_cmd.
    -.c
    -.de Shell_cmd+
    -.  groffer:Shell_cmd_base "\*[groffer:Shell_cmd+.prompt]" \\$@
    -..
    -.c --------------------------------------------------------------------
    -.c .Shell_cmd_base  ( [ [] ...])
    -.c
    -.c A shell command line; display args alternating in fonts CR and CI.
    -.c Internal, do not use directly.
    -.c
    -.c Globals: read-only register @.Shell_cmd_width
    -.c
    -.de groffer:Shell_cmd_base
    -.  if (\\n[.$] <= 0) \
    -.    return
    -.  nr @+font \\n[.f]\"
    -.  ds @prompt \\$1\"
    -.  ft CR
    -.  c gap between prompt and command
    -.  nr @+gap \\n[groffer:Shell_cmd_base.prompt_width]-\\w'\\*[@prompt]'\"
    -.  ds @res \\*[@prompt]\h'\\n[@+gap]u'\"
    -.  shift
    -.  ds @cf CR\"
    -.  while (\\n[.$] > 0) \{\
    -.    as @res \\f[\\*[@cf]]\\$1\"
    -.    shift
    -.    ie '\\*[@cf]'CR' \
    -.      ds @cf I\"
    -.    el \
    -.      ds @cf CR\"
    -.  \}
    -.  br
    -.  ad l
    -.  nh
    -.  nf
    -.  Text \\*[@res]\"
    -.  fi
    -.  hy
    -.  ad
    -.  br
    -.  ft \\n[@+font]
    -.  rr @+font
    -.  rr @+gap
    -.  rm @cf
    -.  rm @res
    -..
    -.c --------------------------------------------------------------------
    -.c .Synopsis  ()
    -.c
    -.c Begin a synopsis section, to be ended by a ./Synopsis macro.
    -.c
    -.de Synopsis
    -.  if (\\n[groffer:Synopsis.level] > 0) \
    -.    Error .\\$0: previous .Synopsis was not closed by ./Synopsis.
    -.  nh
    -.  ds @1 \\$1\"
    -.  nr @old_indent \\n(.i
    -.  ad l
    -.  in +\w'\fB\\*[@1]\0'u
    -.  ti \\n[@old_indent]u
    -.  B \\*[@1]\0\c
    -.  rr @old_indent
    -.  rm @1
    -.  nr groffer:Synopsis.level +1\"        marker for ./Synopsis
    -..
    -.c  --------------------------------------------------------------------
    -.c ./Synopsis  ()
    -.c
    -.c Close a synopsis section opened by the previous .Synopsis macro.
    -.c
    -.de /Synopsis
    -.  if (\\n[groffer:Synopsis.level] <= 0) \
    -.    Error .\\$0: no previous call of .Synopsis
    -.  br
    -.  ad
    -.  in
    -.  hy
    -.  nr groffer:Synopsis.level -1
    -..
    -.c  --------------------------------------------------------------------
    -.c .Text  (...)
    -.c
    -.c Treat the arguments as text, no matter how they look.
    -.c
    -.de Text
    -.  if (\\n[.$] == 0) \
    -.    return
    -.  nh
    -.  nop \)\\$*\)
    -.  hy
    -..
    -.c --------------------------------------------------------------------
    -.c .Topic  ([])
    -.c
    -.c A bulleted paragraph
    -.c
    -.de Topic
    -.  ie (\\n[.$] = 0) \
    -.    ds @indent 2m\"
    -.  el \
    -.    ds @indent \\$1\"
    -.  TP \\*[@indent]
    -.  Text \[bu]
    -.  rm @indent
    -..
    -.c --------------------------------------------------------------------
    -.c .TP+  ()
    -.c
    -.c Continuation line for .TP header.
    -.c
    -.de TP+
    -.  br
    -.  ns
    -.  TP \\$1
    -..
    -.c --------------------------------------------------------------------
    -.c .TP_header  ([])
    -.c
    -.c Start a multi-line header for a .TP-like paragraph
    -.c
    -.de TP_header
    -.  if (\\n[groffer:TP.level] < 0) \
    -.    Error .\\$0: wrong level.
    -.  nr groffer:TP.level +1
    -.  P
    -.  ie (\\n[.$] == 0) \
    -.    rr groffer:TP.indent
    -.  el \
    -.    nr groffer:TP.indent \\$1
    -.  nr groffer:TP_header.flag 1
    -..
    -.c --------------------------------------------------------------------
    -.c .TP_body  ([])
    -.c
    -.c End a previous .TP-header and beging the body of the paragraph.
    -.c
    -.de TP_body
    -.  if !rgroffer:TP_header.flag \
    -.    Error .\\$0: no previous call of .TP_header
    -.  if (\\n[groffer:TP.level] <= 0) \
    -.    Error .\\$0: wrong level.
    -.  br
    -.  ie (\\n[.$] == 0) \{\
    -.    ie rgroffer:TP.indent \{\
    -.      RS \\n[groffer:TP.indent]u
    -.    \}
    -.    el \
    -.      RS
    -.  \}
    -.  el \
    -.    RS \\$1u
    -.  rr groffer:TP.indent
    -.  rr groffer:TP_header.flag
    -.  nr groffer:TP_body.flag 1
    -..
    -.c --------------------------------------------------------------------
    -.c TP_end  ()
    -.c
    -.c End of former .TP_body paragraph.
    -.c
    -.de TP_end
    -.  if !rgroffer:TP_body.flag \
    -.    Error .\\$0: no previous .TP_body.
    -.  if (\\n[groffer:TP.level] <= 0) \
    -.    Error TP_end: wrong level.
    -.  nr groffer:TP.level -1
    -.  rr grogger:TP.indent
    -.  rr groffer:TP_header.flag
    -.  rr groffer:TP_body.flag
    -.  br
    -.  RE
    -..
    -.
    -.\" End of macro definitions
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.\" SH "SYNOPSIS"
    -.\" --------------------------------------------------------------------
    -.
    -.ad l
    -.Synopsis groffer
    -.RI [ option... ]
    -.Opt_[--]
    -.RI [ "\%filespec" "\*[Ellipsis]]"
    -./Synopsis
    -.
    -.Synopsis groffer
    -.Opt_alt - h -- help
    -./Synopsis
    -.
    -.Synopsis groffer
    -.Opt_alt - v -- version
    -./Synopsis
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH DESCRIPTION
    -.\" --------------------------------------------------------------------
    -.
    -The
    -.B \%groffer
    -program is the easiest way to use
    -.BR \%groff (1).
    -It can display arbitrary documents written in the
    -.I \%groff
    -language, see
    -.BR \%groff (7),
    -or other
    -.I \%roff
    -languages, see
    -.BR \%roff (7),
    -that are compatible to the original
    -.I \%troff
    -language.
    -.
    -The
    -.B \%groffer
    -program also includes many of the features for finding and displaying
    -the \%\f[CR]Unix\f[] manual pages
    -.nh
    -.RI ( man\~pages ),
    -.hy
    -such that it can be used as a replacement for a
    -.BR \%man (1)
    -program.
    -.
    -Moreover, compressed files that can be handled by
    -.BR \%gzip (1)
    -or
    -.BR \%bzip2 (1)
    -are decompressed on-the-fly.
    -.
    -.
    -.P
    -The normal usage is quite simple by supplying a file name or name of a
    -.I \%man\~page
    -without further options.
    -.
    -But the option handling has many possibilities for creating special
    -behaviors.
    -.
    -This can be done either in configuration files, with the shell
    -environment variable
    -.BR \%$GROFFER_OPT ,
    -or on the command line.
    -.
    -.
    -.P
    -The output can be generated and viewed in several different ways
    -available for
    -.IR \%groff .
    -.
    -This includes the
    -.I \%groff
    -native \%\f[CR]X\~Window\f[] viewer
    -.BR \%gxditview (1),
    -each
    -.IR \%Postcript ,
    -.IR \%pdf ,
    -or
    -.I \%dvi
    -display program, a web browser by generating
    -.I \%html
    -in
    -.IR \%www\~mode ,
    -or several
    -.I \%text\~modes
    -in text terminals.
    -.
    -.
    -.P
    -Most of the options that must be named when running
    -.B \%groff
    -directly are determined automatically for
    -.BR \%groffer ,
    -due to the internal usage of the
    -.BR \%grog (1)
    -program.
    -.
    -But all parts can also be controlled manually by arguments.
    -.
    -.
    -.P
    -Several file names can be specified on the command line arguments.
    -.
    -They are transformed into a single document in the normal way of
    -.BR \%groff .
    -.
    -.
    -.P
    -Option handling is done in \f[CR]GNU\f[] style.
    -.
    -Options and file names can be mixed freely.
    -.
    -The option
    -.RB ` \-\- '
    -closes the option handling, all following arguments are treated as
    -file names.
    -.
    -Long options can be abbreviated.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "OPTION OVERVIEW"
    -.\" --------------------------------------------------------------------
    -.
    -.TP
    -.I breaking options
    -.RS
    -.P
    -.Opt_[alt] - h -- help
    -.Opt_[alt] - v -- version
    -.RE
    -.
    -.
    -.TP
    -.I \%groffer mode options
    -.RS
    -.P
    -.Opt_[alt] -- auto
    -.Opt_[alt] -- default
    -.Opt_[alt] -- default\-modes mode1,mode2,\*[Ellipsis]
    -.Opt_[alt] -- dvi
    -.Opt_[alt] -- dvi\-viewer prog
    -.Opt_[alt] -- dvi\-viewer\-tty prog
    -.Opt_[alt] -- groff
    -.Opt_[alt] -- html
    -.Opt_[alt] -- html\-viewer prog
    -.Opt_[alt] -- html\-viewer\-tty prog
    -.Opt_[alt] -- mode display_mode
    -.Opt_[alt] -- pdf
    -.Opt_[alt] -- pdf\-viewer prog
    -.Opt_[alt] -- pdf\-viewer\-tty prog
    -.Opt_[alt] -- ps
    -.Opt_[alt] -- ps\-viewer prog
    -.Opt_[alt] -- ps\-viewer\-tty prog
    -.Opt_[alt] -- text
    -.Opt_[alt] -- tty
    -.Opt_[alt] -- tty\-viewer prog
    -.Opt_[alt] -- tty\-viewer\-tty prog
    -.Opt_[alt] -- www
    -.Opt_[alt] -- www\-viewer prog
    -.Opt_[alt] -- www\-viewer\- prog
    -.Opt_[alt] -- x -- X
    -.Opt_[alt] -- x\-viewer -- X\-viewer prog
    -.Opt_[alt] -- x\-viewer\-tty -- X\-viewer\-tty prog
    -.RE
    -.
    -.
    -.TP
    -.I development options
    -.RS
    -.P
    -.Opt_[alt] -- debug
    -.Opt_[alt] -- do\-nothing
    -.Opt_[alt] -- shell prog
    -.Opt_[alt] - Q -- source
    -.Opt_[alt] - V
    -.RE
    -.
    -.
    -.TP
    -.I options related to \%groff
    -.RS
    -.P
    -.Opt_[alt] - T -- device device
    -.Opt_[alt] - Z -- intermediate\-output -- ditroff
    -.P
    -All further
    -.B \%groff
    -short options are accepted.
    -.RE
    -.
    -.
    -.TP
    -.I options for man\~pages
    -.Opt_[alt] -- apropos
    -.Opt_[alt] -- apropos\-data
    -.Opt_[alt] -- apropos\-devel
    -.Opt_[alt] -- apropos\-progs
    -.Opt_[alt] -- whatis
    -.Opt_[alt] -- man
    -.Opt_[alt] -- no-man
    -.Opt_[alt] -- no-special
    -.
    -.
    -.TP
    -.I long options taken over from GNU man
    -.RS
    -.P
    -.Opt_[alt] -- all
    -.Opt_[alt] -- ascii
    -.Opt_[alt] -- ditroff
    -.Opt_[alt] -- extension suffix
    -.Opt_[alt] -- locale language
    -.Opt_[alt] -- local-file
    -.Opt_[alt] -- manpath dir1:dir2:\*[Ellipsis]
    -.Opt_[alt] -- pager program
    -.Opt_[alt] -- sections sec1:sec2:\*[Ellipsis]
    -.Opt_[alt] -- systems sys1,sys2,\*[Ellipsis]
    -.Opt_[alt] -- troff-device device
    -.P
    -Further long options of \f[CR]GNU\f[]
    -.B man
    -are accepted as well.
    -.RE
    -.
    -.
    -.TP
    -.I X Window Toolkit options
    -.RS
    -.P
    -.Opt_[alt] -- bd pixels
    -.Opt_[alt] -- bg -- background color
    -.Opt_[alt] -- bw pixels
    -.Opt_[alt] -- display X-display
    -.Opt_[alt] -- fg -- foreground color
    -.Opt_[alt] -- ft -- font font_name
    -.Opt_[alt] -- geometry size_pos
    -.Opt_[alt] -- resolution value
    -.Opt_[alt] -- rv
    -.Opt_[alt] -- title string
    -.Opt_[alt] -- xrm X-resource
    -.RE
    -.
    -.
    -.TP
    -.I \%filespec arguments
    -.RS
    -.P
    -No
    -.I \%filespec
    -parameters means standard input.
    -.
    -.
    -.TP 10m
    -.Opt_short ""
    -stands for standard input (can occur several times).
    -.
    -.
    -.TP
    -.I filename
    -the path name of an existing file.
    -.
    -.
    -.TP
    -.BI man: name ( section )
    -.TP+
    -.IB name ( section )
    -search the \%man\~page
    -.I \%name
    -in \%man\~section
    -.IR section .
    -.
    -.
    -.TP
    -.BI man: name . s
    -.TP+
    -.IB name . s
    -if
    -.I s
    -is a character in
    -.BR \%[1-9on] ,
    -search for a \%man\~page
    -.I \%name
    -in \%man\~section
    -.IR s .
    -.
    -.
    -.TP
    -.BI man: name
    -\%man\~page in the lowest \%man\~section that has
    -.IR \%name .
    -.
    -.
    -.TP
    -.I "s name"
    -if
    -.I s
    -is a character in
    -.BR \%[1-9on] ,
    -search for a \%man\~page
    -.I \%name
    -in \%man\~section
    -.IR s .
    -.
    -.
    -.TP
    -.I name
    -if
    -.I \%name
    -is not an existing file search for the man\~page
    -.I \%name
    -in the lowest man\~section.
    -.
    -.RE
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "OPTION DETAILS"
    -.\" --------------------------------------------------------------------
    -.
    -The
    -.B \%groffer
    -program can usually be run with very few options.
    -.
    -But for special purposes, it supports many options.
    -.
    -These can be classified in 5 option classes.
    -.
    -.
    -.P
    -All short options of
    -.B \%groffer
    -are compatible with the short options of
    -.BR \%groff (1).
    -.
    -All long options of
    -.B \%groffer
    -are compatible with the long options of
    -.BR \%man (1).
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "groffer breaking Options"
    -.\" --------------------------------------------------------------------
    -.
    -As soon as one of these options is found on the command line it is
    -executed, printed to standard output, and the running
    -.B \%groffer
    -is terminated thereafter.
    -.
    -All other arguments are ignored.
    -.
    -.
    -.Opt_def - h -- help
    -Print a helping information with a short explanation of option sto
    -standard output.
    -.
    -.
    -.Opt_def - v -- version
    -Print version information to standard output.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "groffer Mode Options"
    -.\" --------------------------------------------------------------------
    -.
    -The display mode and the viewer programs are determined by these
    -options.
    -.
    -If none of these mode and viewer options is specified
    -.B \%groffer
    -tries to find a suitable display mode automatically.
    -.
    -The default modes are
    -.I mode x
    -with
    -.B gxditview
    -in \%\f[CR]X\~Window\f[] and
    -.I mode tty
    -with device
    -.I latin1
    -under
    -.B less
    -on a terminal.
    -.
    -.
    -.P
    -There are two kinds of options for viewers.
    -.Opt_long \fImode\fP-viewer
    -chooses the normal viewer programs that run on their own in
    -\%\f[CR]X\~Window\f[], while
    -.Opt_long \fImode\fP-viewer-tty
    -chooses programs that run on the terminal (on tty).
    -.
    -Most graphical viewers are programs running in \%\f[CR]X\~Window\f[],
    -so there aren't many opportunities to call the tty viewers.
    -.
    -But they give the chance to view the output source; for example,
    -.Opt_long ps\-viewer\-tty=less
    -shows the content of the
    -.I Postscript
    -output with the pager
    -.BR less .
    -.
    -.
    -.P
    -The \%\f[CR]X\~Window\f[] viewers are not critical, you can use both
    -.Opt_long *\-viewer
    -and
    -.Opt_long *\-viewer\-tty
    -for them; with
    -.Opt_long *\-viewer\-tty
    -the viewer program will not become independently, it just stays
    -coupled with
    -.BR groffer .
    -But the program will not run if you specify a terminal program with
    -.Opt_long *\-viewer
    -because this viewer will stay in background without a chance to reach
    -it.
    -.
    -So you really need
    -.Opt_long *\-viewer\-tty
    -for viewers that run on tty.
    -.
    -.
    -.Opt_def -- auto
    -Equivalent to
    -.Opt_long_arg mode auto .
    -.
    -.
    -.Opt_def -- default
    -Reset all configuration from previously processed command line options
    -to the default values.
    -.
    -This is useful to wipe out all former options of the configuration, in
    -.Env_var $GROFFER_OPT ,
    -and restart option processing using only the rest of the command line.
    -.
    -.
    -.Opt_def -- default\-modes mode1,mode2,\*[Ellipsis]
    -Set the sequence of modes for
    -.I \%auto\~mode
    -to the comma separated list given in the argument.
    -.
    -See
    -.Opt_long mode
    -for details on modes.  Display in the default manner; actually, this
    -means to try the modes
    -.IR x ,
    -.IR ps ,
    -and
    -.I \%tty
    -in this sequence.
    -.
    -.
    -.
    -.Opt_def -- dvi
    -Equivalent to
    -.Opt_long_arg mode \%dvi .
    -.
    -.
    -.Opt_def -- dvi\-viewer prog
    -Choose an \%\f[CR]X\~Window\f[] viewer program for
    -.IR \%dvi\~mode .
    -.
    -This can be a file name or a program to be searched in
    -.Env_var $PATH .
    -.
    -Known \%\f[CR]X\~Window\f[]
    -.I \%dvi
    -viewers include
    -.BR \%xdvi (1)
    -and
    -.BR \%dvilx (1)
    -.
    -In each case, arguments can be provided additionally.
    -.
    -.
    -.Opt_def -- dvi\-viewer\-tty prog
    -Choose a program running on the terminal for viewing the output of
    -.IR \%dvi\~mode .
    -.
    -This can be a file name or a program to be searched in
    -.Env_var $PATH ;
    -arguments can be provided additionally.
    -.
    -.
    -.Opt_def -- groff
    -Equivalent to
    -.Opt_long_arg mode groff .
    -.
    -.
    -.Opt_def -- html
    -Equivalent to
    -.Opt_long_arg mode html .
    -.
    -.
    -.Opt_def -- html\-viewer
    -Choose an \%\f[CR]X\~Window\f[] web browser program for viewing in
    -.I \%html\~mode .
    -.
    -It can be the path name of an executable file or a program in
    -.Env_var $PATH .
    -.
    -In each case, arguments can be provided additionally.
    -.
    -.
    -.Opt_def -- html\-viewer\-tty
    -Choose a terminal program for viewing the output of
    -.I \%html\~mode .
    -.
    -It can be the path name of an executable file or a program in
    -.Env_var $PATH ;
    -arguments can be provided additionally.
    -.
    -.
    -.Opt_def -- mode value
    -.
    -Set the display mode.
    -.
    -The following mode values are recognized:
    -.
    -.RS
    -.
    -.TP
    -.Header_CB auto
    -Select the automatic determination of the display mode.
    -.
    -The sequence of modes that are tried can be set with the
    -.Opt_long default\-modes
    -option.
    -.
    -Useful for restoring the
    -.I \%default\~mode
    -when a different mode was specified before.
    -.
    -.
    -.TP
    -.Header_CB dvi
    -Display formatted input in a
    -.I \%dvi
    -viewer program.
    -.
    -By default, the formatted input is displayed with the
    -.BR \%xdvi (1)
    -program.
    -.Opt_long dvi .
    -.
    -.
    -.TP
    -.Header_CB groff
    -After the file determination, switch
    -.B \%groffer
    -to process the input like
    -.BR \%groff (1)
    -would do.
    -.
    -This disables the
    -.I \%groffer
    -viewing features.
    -.
    -.
    -.TP
    -.Header_CB html
    -Translate the input into html format and display the result in a web
    -browser program.
    -.
    -By default, the existence of a sequence of standard web browsers is
    -tested, starting with
    -.BR \%konqueror (1)
    -and
    -.BR \%mozilla (1).
    -The text html viewer is
    -.BR \%lynx (1).
    -.
    -.
    -.TP
    -.Header_CB pdf
    -Display formatted input in a
    -.I \%PDF
    -(Portable Document Format) viewer
    -program.
    -.
    -By default, the input is formatted by
    -.B \%groff
    -using the Postscript device, then it is transformed into the PDF file
    -format using
    -.BR \%gs (1),
    -and finally displayed either with the
    -.BR \%xpdf (1)
    -or the
    -.BR \%acroread (1)
    -program.
    -.
    -PDF has a big advantage because the text is displayed graphically and
    -is searchable as well.
    -.
    -But as the transformation takes a considerable amount of time, this
    -mode is not suitable as a default device for the
    -.I \%auto\~mode .
    -.
    -.
    -.TP
    -.Header_CB ps
    -Display formatted input in a Postscript viewer program.
    -.
    -By default, the formatted input is displayed with the
    -.BR \%ghostview (1)
    -program.
    -.
    -.
    -.TP
    -.Header_CB text
    -Format in a
    -.I \%groff\~text\~mode
    -and write the result to standard output without a pager or viewer
    -program.
    -.
    -The text device,
    -.I \%latin1
    -by default, can be chosen with option
    -.Opt_short T .
    -.
    -.
    -.TP
    -.Header_CB tty
    -Format in a
    -.I \%groff\~text\~mode
    -and write the result to standard output using a text pager program,
    -even when in \%\f[CR]X\~Window\f[].
    -.
    -.
    -.TP
    -.Header_CB www
    -Equivalent to
    -.Opt_long_arg mode html .
    -.
    -.
    -.TP
    -.Header_CB x
    -Display the formatted input in a native
    -.I roff
    -viewer.
    -.
    -By default, the formatted input is displayed with the
    -.BR \%gxditview (1)
    -program being distributed together with
    -.BR \%groff .
    -But the standard \%\f[CR]X\~Window\f[] tool
    -.BR \%xditview (1)
    -can also be chosen with the option
    -.Opt_long x\-viewer .
    -The default resolution is
    -.BR 75\~dpi ,
    -but
    -.B 100\~dpi
    -are also possible.
    -.
    -The default
    -.I groff
    -device
    -for the resolution of
    -.B 75\~dpi
    -is
    -.BR X75\-12 ,
    -for
    -.B 100\~dpi
    -it is
    -.BR X100 .
    -.
    -The corresponding
    -.I "groff intermediate output"
    -for the actual device is generated and the result is displayed.
    -.
    -For a resolution of
    -.BR 100\~dpi ,
    -the default width of the geometry of the display program is chosen to
    -.BR 850\~dpi .
    -.
    -.
    -.TP
    -.Header_CB X
    -Equivalent to
    -.Opt_long_arg mode x .
    -.
    -.
    -.P
    -The following modes do not use the
    -.I \%groffer
    -viewing features.
    -.
    -They are only interesting for advanced applications.
    -.
    -.
    -.TP
    -.Header_CB groff
    -Generate device output with plain
    -.I \%groff
    -without using the special viewing features of
    -.IR \%groffer .
    -If no device was specified by option
    -.Opt_short T
    -the
    -.I \%groff
    -default
    -.B \%ps
    -is assumed.
    -.
    -.
    -.TP
    -.Header_CB source
    -Display the source code of the input without formatting; equivalent to
    -.Opt_short Q .
    -.
    -.
    -.RE
    -.
    -.
    -.Opt_def -- pdf
    -Equivalent to
    -.Opt_long_arg mode pdf .
    -.
    -.
    -.Opt_def -- pdf\-viewer prog
    -Choose an \%\f[CR]X\~Window\f[] viewer program for
    -.IR \%pdf\~mode .
    -.
    -This can be a file name or a program to be searched in
    -.Env_var $PATH ;
    -arguments can be provided additionally.
    -.
    -.
    -.Opt_def -- pdf\-viewer\-tty prog
    -Choose a terminal viewer program for
    -.IR \%pdf\~mode .
    -.
    -This can be a file name or a program to be searched in
    -.Env_var $PATH ;
    -arguments can be provided additionally.
    -.
    -.
    -.Opt_def -- ps
    -Equivalent to
    -.Opt_long_arg mode ps .
    -.
    -.
    -.Opt_def -- ps\-viewer prog
    -Choose an \%\f[CR]X\~Window\f[] viewer program for
    -.IR \%ps\~mode .
    -.
    -This can be a file name or a program to be searched in
    -.Env_var $PATH .
    -.
    -Common Postscript viewers inlude
    -.BR \%gv (1),
    -.BR \%ghostview (1),
    -and
    -.BR \%gs (1),
    -.
    -In each case, arguments can be provided additionally.
    -.
    -.
    -.Opt_def -- ps\-viewer\-tty prog
    -Choose a terminal viewer program for
    -.IR \%ps\~mode .
    -.
    -This can be a file name or a program to be searched in
    -.Env_var $PATH ;
    -arguments can be provided additionally.
    -.
    -.
    -.Opt_def -- text
    -Equivalent to
    -.Opt_long_arg mode text .
    -.
    -.
    -.Opt_def -- tty
    -Equivalent to
    -.Opt_long_arg mode tty .
    -.
    -.
    -.Opt_def -- tty\-viewer prog
    -Choose a text pager for mode
    -.IR tty .
    -The standard pager is
    -.BR less (1).
    -This option is eqivalent to
    -.I man
    -option
    -.Opt_long_arg pager prog .
    -The option argument can be a file name or a program to be searched in
    -.Env_var $PATH ;
    -arguments can be provided additionally.
    -.
    -.
    -.Opt_def -- tty\-viewer\-tty prog
    -This is equivalent to
    -.Opt_long tty\-viewer
    -because the programs for
    -.I tty
    -mode run on a terminal anyway.
    -.
    -.
    -.Opt_def -- www
    -Equivalent to
    -.Opt_long_arg mode html .
    -.
    -.
    -.Opt_def -- www\-viewer prog
    -Equivalent to
    -.Opt_long html\-viewer .
    -.
    -.
    -.Opt_def -- www\-viewer\-tty prog
    -Equivalent to
    -.Opt_long html\-viewer\-tty .
    -.
    -.
    -.Opt_def -- X -- x
    -Equivalent to
    -.Opt_long_arg mode x .
    -.
    -.
    -.Opt_def -- X\-viewer -- x\-viewer prog
    -Choose an \%\f[CR]X\~Window\f[] viewer program for
    -.IR \%x\~mode .
    -Suitable viewer programs are
    -.BR \%gxditview (1)
    -which is the default and
    -.BR \%xditview (1).
    -The argument can be any executable file or a program in
    -.Env_var $PATH ;
    -arguments can be provided additionally.
    -.
    -.
    -.Opt_def -- X\-viewer\-tty -- x\-viewer\-tty prog
    -Choose a terminal viewer program for
    -.IR \%x\~mode .
    -The argument can be any executable file or a program in
    -.Env_var $PATH ;
    -arguments can be provided additionally.
    -.
    -.
    -.TP
    -.Opt_--
    -Signals the end of option processing; all remaining arguments are
    -interpreted as
    -.I \%filespec
    -parameters.
    -.
    -.
    -.P
    -Besides these,
    -.B \%groffer
    -accepts all short options that are valid for the
    -.BR \%groff (1)
    -program.
    -.
    -All
    -.RB \%non- groffer
    -options are sent unmodified via
    -.B \%grog
    -to
    -.BR \%groff .
    -.
    -So postprocessors, macro packages, compatibility with
    -.I classical
    -.IR \%troff ,
    -and much more can be manually specified.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "Options for Development"
    -.\" --------------------------------------------------------------------
    -.
    -.Opt_def -- debug
    -Enable five debugging informations.
    -.
    -The temporary files are kept and not deleted, the name of the
    -temporary directory and the shell name for
    -.File_name groffer2.sh
    -are printed, the parameters are printed at several steps of
    -development, and a function stack is output with function
    -\f[CR]error_user()\f[] as well.
    -.
    -Neither the function call stack that is printed at each opening and
    -closing of a function call nor the landmark information that is
    -printed to determine how far the program is running are used.
    -.
    -This seems to be the most useful among all debugging options.
    -.
    -.
    -.Opt_def -- debug\-all
    -Enable all seven debugging informations including the function call
    -stack and the landmark information.
    -.
    -.
    -.Opt_def -- debug\-keep
    -Enable two debugging information, the printing of the name of the
    -temporary directory and the keeping of the temporary files.
    -.
    -.
    -.Opt_def -- debug\-lm
    -Enable one debugging information, the landmark information.
    -.
    -.
    -.Opt_def -- debug\-params
    -Enable one debugging information, the parameters at several steps.
    -.
    -.
    -.Opt_def -- debug\-shell
    -Enable one debugging information, the shell name for
    -.File_name groffer2.sh .
    -.
    -.
    -.Opt_def -- debug\-stacks
    -Enable one debugging information, the function call stack.
    -.
    -.
    -.Opt_def -- debug\-tmpdir
    -Enable one debugging information, the name of the temporary directory.
    -.
    -.
    -.Opt_def -- debug\-user
    -Enable one debugging information, the function stack with
    -\f[CR]error_user()\f[].
    -.
    -.
    -.Opt_def -- do-nothing
    -This is like
    -.Opt_long version ,
    -but without the output; no viewer is started.
    -.
    -This makes only sense in development.
    -.
    -.
    -.Opt_def -- print=text
    -Just print the argument to standard error.
    -.
    -This is good for parameter check.
    -.
    -.
    -.Opt_def -- shell "shell_program"
    -Specify the shell under which the
    -.File_name \%groffer2.sh
    -script should be run.
    -.
    -This option overwrites the automatic shell determination of the
    -program.
    -.
    -If the argument
    -.I shell_program
    -is empty a former shell option and the automatic shell determination
    -is cancelled and the default shell is restored.
    -.
    -Some shells run considerably faster than the standard shell.
    -.
    -.
    -.Opt_def - Q -- source
    -Output the roff source code of the input files without further
    -processing.
    -.
    -This is the equivalent
    -.Opt_long_arg mode source .
    -.
    -.
    -.Opt_def - V
    -This is an advanced option for debugging only.
    -.
    -Instead of displaying the formatted input, a lot of
    -.I \%groffer
    -specific information is printed to standard output:
    -.
    -.RS
    -.Topic
    -the output file name in the temporary directory,
    -.
    -.Topic
    -the display mode of the actual
    -.B \%groffer
    -run,
    -.
    -.Topic
    -the display program for viewing the output with its arguments,
    -.
    -.Topic
    -the active parameters from the config files, the arguments in
    -.Env_var $GROFFER_OPT ,
    -and the arguments of the command line,
    -.
    -.Topic
    -the pipeline that would be run by the
    -.B \%groff
    -program, but without executing it.
    -.RE
    -.
    -.
    -.P
    -Other useful debugging options are the
    -.B \%groff
    -option
    -.Opt_short Z
    -and
    -.Opt_long_arg mode groff .
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "Options related to groff"
    -.\" --------------------------------------------------------------------
    -.
    -All short options of
    -.B \%groffer
    -are compatible with the short options of
    -.BR \%groff (1).
    -.
    -The following of
    -.B \%groff
    -options have either an additional special meaning within
    -.B \%groffer
    -or make sense for normal usage.
    -.
    -.
    -.P
    -Because of the special outputting behavior of the
    -.B \%groff
    -option
    -.Opt_short Z
    -.B \%groffer
    -was designed to be switched into
    -.I \%groff\~mode ;
    -the
    -.I \%groffer
    -viewing features are disabled there.
    -.
    -The other
    -.B \%groff
    -options do not switch the mode, but allow to customize the formatting
    -process.
    -.
    -.
    -.Opt_def - a
    -This generates an ascii approximation of output in the
    -.IR \%text\~modes .
    -.
    -That could be important when the text pager has problems with control
    -sequences in
    -.IR "tty mode" .
    -.
    -.
    -.Opt_def - m file
    -Add
    -.I \%file
    -as a
    -.I \%groff
    -macro file.
    -.
    -This is useful in case it cannot be recognized automatically.
    -.
    -.
    -.Opt_def - P opt_or_arg
    -Send the argument
    -.I \%opt_or_arg
    -as an option or option argument to the actual
    -.B \%groff
    -postprocessor.
    -.
    -.
    -.Opt_def - T -- device devname
    -.
    -This option determines
    -.BR \%groff 's
    -output device.
    -.
    -The most important devices are the text output devices for referring
    -to the different character sets, such as
    -.BR \%ascii ,
    -.BR \%utf8 ,
    -.BR \%latin1 ,
    -and others.
    -.
    -Each of these arguments switches
    -.B \%groffer
    -into a
    -.I \%text\~mode
    -using this device, to
    -.I \%mode\~tty
    -if the actual mode is not a
    -.IR \%text\~mode .
    -.
    -The following
    -.I \%devname
    -arguments are mapped to the corresponding
    -.B \%groffer
    -.Opt_long_arg mode \fIdevname\fR
    -option:
    -.BR \%dvi ,
    -.BR \%html ,
    -and
    -.BR \%ps .
    -All
    -.B \%X*
    -arguments are mapped to
    -.IR \%mode\~x .
    -Each other
    -.I \%devname
    -argument switches to
    -.I \%mode\~groff
    -using this device.
    -.
    -.
    -.Opt_def - X
    -is equivalent to
    -.BR "groff \-X" .
    -It displays the
    -.I groff intermediate output
    -with
    -.BR gxditview .
    -As the quality is relatively bad this option is deprecated; use
    -.Opt_long X
    -instead because the
    -.I \%x\~mode
    -uses an
    -.IR X *
    -device for a better display.
    -.
    -.
    -.Opt_def - Z -- intermediate-output -- ditroff
    -Switch into
    -.I \%groff\~mode
    -and format the input with the
    -.I \%groff intermediate output
    -without postprocessing; see
    -.BR \%groff_out (5).
    -This is equivalent to option
    -.Opt_long ditroff
    -of
    -.IR \%man ,
    -which can be used as well.
    -.
    -.
    -.P
    -All other
    -.B \%groff
    -options are supported by
    -.BR \%groffer ,
    -but they are just transparently transferred to
    -.B \%groff
    -without any intervention.
    -.
    -The options that are not explicitly handled by
    -.B \%groffer
    -are transparently passed to
    -.BR \%groff .
    -.
    -Therefore these transparent options are not documented here, but in
    -.BR \%groff (1).
    -Due to the automatism in
    -.BR \%groffer ,
    -none of these
    -.B \%groff
    -options should be needed, except for advanced usage.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Options for man\~pages"
    -.\" --------------------------------------------------------------------
    -.
    -.Opt_def -- apropos
    -Start the
    -.BR \%apropos (1)
    -command or facility of
    -.BR \%man (1)
    -for searching the
    -.I \%filespec
    -arguments within all
    -.I \%man\~page
    -descriptions.
    -.
    -Each
    -.I \%filespec
    -argument is taken for search as it is; section specific parts are not
    -handled, such that
    -.B 7 groff
    -searches for the two arguments
    -.B 7
    -and
    -.B groff
    -with a large result; for the
    -.I \%filespec
    -.B groff.7
    -nothing will be found.
    -.
    -The display differs from the
    -.B \%apropos
    -program by the following concepts:
    -.RS
    -.Topic
    -construct a
    -.I \%groff
    -frame to the output of
    -.BR \%apropos ,
    -.Topic
    -each
    -.I \%filespec
    -argument is searched on its own.
    -.Topic
    -the restriction by
    -.Opt_long sections
    -is handled as well,
    -.Topic
    -wildcard characters are allowed and handled without a further option.
    -.RE
    -.
    -.
    -.Opt_def -- apropos\-data
    -Show only the
    -.B \%apropos
    -descriptions for data documents, these are the
    -.BR \%man (7)
    -sections 4, 5, and 7.
    -.
    -Direct section declarations are ignored, wildcards are accepted.
    -.
    -.
    -.Opt_def -- apropos\-devel
    -Show only the
    -.B \%apropos
    -descriptions for development documents, these are the
    -.BR man (7)
    -sections 2, 3, and 9.
    -.
    -Direct section declarations are ignored, wildcards are accepted.
    -.
    -.
    -.Opt_def -- apropos\-progs
    -Show only the
    -.B \%apropos
    -descriptions for documents on programs, these are the
    -.BR \%man (7)
    -sections 1, 6, and 8.
    -.
    -Direct section declarations are ignored, wildcards are accepted.
    -.
    -.
    -.Opt_def -- whatis
    -For each
    -.I \%filespec
    -argument search all
    -.I \%man\~pages
    -and display their description \[em] or say that it is not a
    -.IR \%man\~page .
    -This differs from
    -.IR man 's
    -.B whatis
    -output by the following concepts
    -.RS
    -.Topic
    -each retrieved file name is added,
    -.Topic
    -local files are handled as well,
    -.Topic
    -the display is framed by a
    -.I groff
    -output format,
    -.Topic
    -wildcard characters are allowed without a further option.
    -.RE
    -.
    -.
    -.P
    -The following two options were added to
    -.B \%groffer
    -for choosing whether the file name arguments are interpreted as names
    -for local files or as a search pattern for
    -.IR \%man\~pages .
    -.
    -The default is looking up for local files.
    -.
    -.
    -.Opt_def -- man
    -Check the non-option command line arguments
    -.nh
    -.RI ( filespecs )
    -.hy
    -first on being
    -.IR \%man\~pages ,
    -then whether they represent an existing file.
    -.
    -By default, a
    -.I \%filespec
    -is first tested whether it is an existing file.
    -.
    -.
    -.Opt_def -- no-man -- local-file
    -Do not check for
    -.IR \%man\~pages .
    -.
    -.Opt_long local-file
    -is the corresponding
    -.B man
    -option.
    -.
    -.
    -.Opt_def -- no-special
    -Disable former calls of
    -.Opt_long all ,
    -.Opt_long apropos* ,
    -and
    -.Opt_long whatis .
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Long options taken over from GNU man"
    -.\" --------------------------------------------------------------------
    -.
    -The long options of
    -.B \%groffer
    -were synchronized with the long options of \f[CR]GNU\f[]
    -.BR man .
    -.
    -All long options of \f[CR]GNU\f[]
    -.B man
    -are recognized, but not all of these options are important to
    -.BR \%groffer ,
    -so most of them are just ignored.
    -.
    -.
    -.P
    -In the following, the
    -.B man
    -options that have a special meaning for
    -.B \%groffer
    -are documented.
    -.
    -.
    -.P
    -The full set of long and short options of the \f[CR]GNU\f[]
    -.B man
    -program can be passed via the environment variable
    -.Env_var $MANOPT ;
    -see
    -.BR \%man (1)
    -if your system has \f[CR]GNU\f[]
    -.B man
    -installed.
    -.
    -.
    -.Opt_def -- all
    -In searching
    -.IR \%man\~pages ,
    -retrieve all suitable documents instead of only one.
    -.
    -.
    -.Opt_def - 7 -- ascii
    -In
    -.IR \%text\~modes ,
    -display ASCII translation of special characters for critical environment.
    -.
    -This is equivalent to
    -.BR "groff -mtty_char" ;
    -see
    -.BR groff_tmac (5).
    -.
    -.
    -.Opt_def -- ditroff
    -Eqivalent to
    -.B \%groffer
    -.Opt_short Z .
    -.
    -.
    -.Opt_def -- extension suffix
    -Restrict
    -.I \%man\~page
    -search to file names that have
    -.I \%suffix
    -appended to their section element.
    -.
    -For example, in the file name
    -.I \%/usr/share/man/man3/terminfo.3ncurses.gz
    -the
    -.I \%man\~page
    -extension is
    -.IR \%ncurses .
    -.
    -.
    -.Opt_def -- locale language
    -.
    -Set the language for
    -.IR \%man\~pages .
    -.
    -This has the same effect, but overwrites
    -.Env_var $LANG
    -.
    -.
    -.Opt_def -- location
    -Print the location of the retrieved files to standard error.
    -.
    -.
    -.Opt_def -- no-location
    -Do not display the location of retrieved files; this resets a former
    -call to
    -.Opt_long location .
    -.
    -This was added by
    -.BR \%groffer .
    -.
    -.
    -.Opt_def -- manpath "'dir1:dir2:\*[Ellipsis]'"
    -Use the specified search path for retrieving
    -.I \%man\~pages
    -instead of the program defaults.
    -.
    -If the argument is set to the empty string "" the search for
    -.I \%man\~page
    -is disabled.
    -.
    -.
    -.Opt_def -- pager
    -Set the pager program in
    -.IR \%tty\~mode ;
    -default is
    -.BR \%less .
    -This is equivalent to
    -.Opt_long tty\-viewer .
    -.
    -.
    -.Opt_def -- sections "'sec1:sec2:\*[Ellipsis]'"
    -Restrict searching for
    -.I \%man\~pages
    -to the given
    -.IR sections ,
    -a colon-separated list.
    -.
    -.
    -.Opt_def -- systems "'sys1,sys2,\*[Ellipsis]'"
    -Search for
    -.I \%man\~pages
    -for the given operating systems; the argument
    -.I \%systems
    -is a comma-separated list.
    -.
    -.
    -.Opt_def -- where
    -Eqivalent to
    -.Opt_long location .
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "X\~\%Window\~\%Toolkit Options"
    -.\" --------------------------------------------------------------------
    -.
    -The following long options were adapted from the corresponding
    -\%\f[CR]X\~\Window\~Toolkit\f[] options.
    -.
    -.B \%groffer
    -will pass them to the actual viewer program if it is an
    -\%\f[CR]X\~Window\f[] program.
    -.
    -Otherwise these options are ignored.
    -.
    -.
    -.P
    -Unfortunately these options use the old style of a single minus for
    -long options.
    -.
    -For
    -.B \%groffer
    -that was changed to the standard with using a double minus for long
    -options, for example,
    -.B \%groffer
    -uses the option
    -.Opt_long font
    -for the \%\f[CR]X\~Window\f[] option
    -.Opt_short font .
    -.
    -.
    -.P
    -See
    -.BR \%X (1),
    -.BR \%X (7),
    -and the documentation on the \%\f[CR]X\~Window\~Toolkit\f[] options
    -for more details on these options and their arguments.
    -.
    -.
    -.Opt_def -- background color
    -Set the background color of the viewer window.
    -.
    -.
    -.Opt_def -- bd pixels
    -Specifies the color of the border surrounding the viewer window.
    -.
    -.
    -.Opt_def -- bg color
    -This is equivalent to
    -.Opt_long background .
    -.
    -.
    -.Opt_def -- bw pixels
    -Specifies the width in pixels of the border surrounding the viewer
    -window.
    -.
    -.
    -.Opt_def -- display X-display
    -Set the \%\f[CR]X\~Window\f[] display on which the viewer program
    -shall be started, see the \%\f[CR]X\~Window\f[] documentation for the
    -syntax of the argument.
    -.
    -.
    -.Opt_def -- foreground color
    -Set the foreground color of the viewer window.
    -.
    -.
    -.Opt_def -- fg color
    -This is equivalent to
    -.Opt_short foreground .
    -.
    -.
    -.Opt_def -- font font_name
    -Set the font used by the viewer window.
    -.
    -The argument is an \%\f[CR]X\~Window\f[] font name.
    -.
    -.
    -.Opt_def -- ft font_name
    -This is equivalent to
    -.Opt_long ft .
    -.
    -.
    -.Opt_def -- geometry size_pos
    -Set the geometry of the display window, that means its size and its
    -starting position.
    -.
    -See
    -.BR \%X (7)
    -for the syntax of the argument.
    -.
    -.
    -.Opt_def -- resolution value
    -Set \%\f[CR]X\~Window\f[] resolution in dpi (dots per inch) in some
    -viewer programs.
    -.
    -The only supported dpi values are
    -.B 75
    -and
    -.BR 100 .
    -.
    -Actually, the default resolution for
    -.B \%groffer
    -is set to
    -.BR 75\~dpi .
    -The resolution also sets the default device in
    -.IR "mode x" .
    -.
    -.
    -.Opt_def -- rv
    -Reverse foreground and background color of the viewer window.
    -.
    -.
    -.Opt_def -- title "'some text'"
    -Set the title for the viewer window.
    -.
    -.
    -.Opt_def -- xrm "'resource'"
    -Set \f[CR]\%X\~Window\f[] resource.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Filespec Arguments"
    -.\" --------------------------------------------------------------------
    -.
    -A
    -.I \%filespec
    -parameter is an argument that is not an option or option argument.
    -.
    -It means an input source.
    -.
    -In
    -.BR \%groffer ,
    -.I \%filespec
    -parameters are a file name or a template for searching
    -.IR \%man\~pages .
    -.
    -These input sources are collected and composed into a single output
    -file such as
    -.B \%groff
    -does.
    -.
    -.
    -.P
    -The strange \%\f[CR]POSIX\f[] behavior to regard all arguments behind
    -the first non-option argument as
    -.I \%filespec
    -arguments is ignored.
    -.
    -The \f[CR]GNU\f[] behavior to recognize options even when mixed with
    -.I \%filespec
    -arguments is used througout.
    -.
    -But, as usual, the double minus argument
    -.Opt_long
    -ends the option handling and interprets all following arguments as
    -.I \%filespec
    -arguments; so the \%\f[CR]POSIX\f[] behavior can be easily adopted.
    -.
    -.
    -.P
    -For the following, it is necessary to know that on each system the
    -.I \%man\~pages
    -are sorted according to their content into several sections.
    -.
    -The
    -.I classical man sections
    -have a single-character name, either a digit from
    -.B 1
    -to
    -.B 9
    -or one of the characters
    -.B n
    -or
    -.BR o .
    -.
    -In the following, a stand-alone character
    -.I s
    -stands for a
    -.IR "classical man section" .
    -The internal precedence of
    -.B \%man
    -for searching
    -.I \%man\~pages
    -with the same name within several sections goes according to the
    -classical single-character sequence.
    -.
    -On some systems, this single character can be extended by a following
    -string.
    -.
    -But the special
    -.B \%groffer
    -.I \%man\~page
    -facility is based on the classical single character sections.
    -.
    -.
    -.P
    -Each
    -.I \%filespec
    -parameter can have one of the following forms in decreasing sequence.
    -.
    -.
    -.Topic
    -No
    -.I \%filespec
    -parameters means that
    -.B \%groffer
    -waits for standard input.
    -.
    -The minus option
    -.Opt_short ""
    -stands for standard input, too; it can occur several times.
    -.
    -.
    -.Topic
    -Next a
    -.I \%filespec
    -is tested whether it is the path name of an existing file.
    -.
    -Otherwise it is assumed to be a searching pattern for a
    -.IR \%man\~page .
    -.
    -.
    -.Topic
    -.BI \%man: name ( section )
    -and
    -.IB \%name ( section )
    -search the \%man\~page
    -.I \%name
    -in \%man\~section\~\c
    -.IR \%section ,
    -where
    -.I \%section
    -can be any string, but it must exist in the
    -.I \%man
    -system.
    -.
    -.
    -.Topic
    -Next some patterns based on the
    -.I classical man sections
    -are checked.
    -.
    -.BI \%man: name . s
    -and
    -.IB \%name . s
    -search for a \%man\~page
    -.I \%name
    -in \%man\~section
    -.I s
    -if
    -.I s
    -is a
    -.I classical man section
    -mentioned above.
    -.
    -Otherwise a
    -.I \%man\~page
    -named
    -.IR \%name.s
    -is searched in the lowest
    -.B man\~section .
    -.
    -.
    -.Topic
    -Now
    -.BI \%man: name
    -searches for a
    -.I \%man\~page
    -in the lowest
    -.I \%man\~section
    -that has a document called
    -.IR \%name .
    -.
    -.
    -.Topic
    -The pattern
    -.I \%s\~name
    -originates from a strange argument parsing of the
    -.B man
    -program.
    -.
    -If
    -.I s
    -is a
    -.I classical man section
    -interpret it as a search for a
    -.I \%man\~page
    -called
    -.I \%name
    -in man\~section
    -.IR s ,
    -otherwise interpret both
    -.I s
    -and
    -.I \%name
    -as two independent
    -.I \%filespec
    -arguments.
    -.
    -.
    -.Topic
    -We are left with the argument
    -.I \%name
    -which is not an existing file.
    -.
    -So this searches for the
    -.I \%man\~page
    -called
    -.I \%name
    -in the lowest
    -.I \%man\~section
    -that has a document for this name.
    -.
    -.
    -.P
    -Wildcards in
    -.I \%filespec
    -arguments are only accepted for
    -.Opt_long apropos*
    -and
    -.Opt_long whatis ;
    -for normal display, they are interpreted as characters.
    -.
    -.
    -.P
    -Several file name arguments can be supplied.
    -.
    -They are mixed by
    -.B \%groff
    -into a single document.
    -.
    -Note that the set of option arguments must fit to all of these file
    -arguments.
    -.
    -So they should have at least the same style of the
    -.I \%groff
    -language.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "OUTPUT MODES"
    -.\" --------------------------------------------------------------------
    -.
    -By default, the
    -.B \%groffer
    -program collects all input into a single file, formats it with the
    -.B \%groff
    -program for a certain device, and then chooses a suitable viewer
    -program.
    -.
    -The device and viewer process in
    -.B \%groffer
    -is called a
    -.IR \%mode .
    -.
    -The mode and viewer of a running
    -.B \%groffer
    -program is selected automatically, but the user can also choose it
    -with options.
    -.
    -.
    -The modes are selected by option the arguments of
    -.Opt_long_arg mode \fIanymode .
    -Additionally, each of this argument can be specified as an option of
    -its own, such as
    -.Opt_long \fIanymode .
    -Most of these modes have a viewer program, which can be chosen by an
    -option that is constructed like
    -.Opt_long \fIanymode\fR\-viewer .
    -.
    -.
    -.P
    -Several different modes are offered, graphical modes for
    -\f[CR]\%X\~Window\f[],
    -.IR \%text\~modes ,
    -and some direct
    -.I \%groff\~modes
    -for debugging and development.
    -.
    -.
    -.P
    -By default,
    -.B \%groffer
    -first tries whether
    -.I \%x\~mode
    -is possible, then
    -.IR \%ps\~mode ,
    -and finally
    -.IR \%tty\~mode .
    -.
    -This mode testing sequence for
    -.I \%auto\~mode
    -can be changed by specifying a comma separated list of modes with the
    -option
    -.Opt_long default\-modes.
    -.
    -.
    -.P
    -The searching for
    -.I \%man\~pages
    -and the decompression of the input are active in every mode.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Graphical Display Modes"
    -.\" --------------------------------------------------------------------
    -.
    -The graphical display modes work mostly in the \%\f[CR]X\~Window\f[]
    -environment (or similar implementations within other windowing
    -environments).
    -.
    -The environment variable
    -.Env_var $DISPLAY
    -and the option
    -.Opt_long display
    -are used for specifying the \%\f[CR]X\~Window\f[] display to be used.
    -.
    -If this environment variable is empty
    -.B \%groffer
    -assumes that no \%\f[CR]X\~Window\f[] is running and changes to a
    -.IR \%text\~mode .
    -.
    -You can change this automatic behavior by the option
    -.Opt_long default\-modes .
    -.
    -.
    -.P
    -Known viewers for the graphical display modes and their standard
    -\%\f[CR]X\~Window\f[] viewer progams are
    -.
    -.Topic
    -\%\f[CR]X\~Window\f[]
    -.I roff
    -viewers such as
    -.BR \%gxditview (1)
    -or
    -.BR \%xditview (1)
    -(in
    -.IR \%x\~mode ),
    -.
    -.Topic
    -in a Postscript viewer
    -.nh
    -.RI ( \%ps\~mode ),
    -.hy
    -.
    -.Topic
    -in a dvi viewer program
    -.nh
    -.RI ( \%dvi\~mode ),
    -.hy
    -.
    -.Topic
    -in a PDF viewer
    -.nh
    -.RI ( \%pdf\~mode ),
    -.hy
    -.
    -.Topic
    -in a web browser
    -.nh
    -.RI ( html
    -or
    -.IR \%www\~mode ).
    -.hy
    -.RE
    -.
    -.
    -.P
    -The
    -.I \%pdf\~mode
    -has a major advantage \[em] it is the only graphical diplay mode that
    -allows to search for text within the viewer; this can be a really
    -important feature.
    -.
    -Unfortunately, it takes some time to transform the input into the PDF
    -format, so it was not chosen as the major mode.
    -.
    -.
    -.P
    -These graphical viewers can be customized by options of the
    -\%\f[CR]X\~Window\~Toolkit\f[].
    -.
    -But the
    -.B \%groffer
    -options use a leading double minus instead of the single minus used by
    -the \%\f[CR]X\~Window\~Toolkit\f[].
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Text modes"
    -.\" --------------------------------------------------------------------
    -.
    -There are two modes for text output,
    -.I \%mode\~text
    -for plain output without a pager and
    -.I \%mode\~tty
    -for a text output on a text terminal using some pager program.
    -.
    -.
    -.P
    -If the variable
    -.Env_var \%$DISPLAY
    -is not set or empty,
    -.B \%groffer
    -assumes that it should use
    -.IR \%tty\~\%mode .
    -.
    -.
    -.P
    -In the actual implementation, the
    -.I groff
    -output device
    -.I \%latin1
    -is chosen for
    -.IR \%text\~modes .
    -.
    -This can be changed by specifying option
    -.Opt_short T
    -or
    -.Opt_long device .
    -.
    -.
    -.P
    -The pager to be used can be specified by one of the options
    -.Opt_long pager
    -and
    -.Opt_long tty\-viewer ,
    -or by the environment variable
    -.Env_var $PAGER .
    -If all of this is not used the
    -.BR \%less (1)
    -program with the option
    -.Opt_short r
    -for correctly displaying control sequences is used as the default
    -pager.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Special Modes for Debugging and Development"
    -.\" --------------------------------------------------------------------
    -.
    -These modes use the
    -.I \%groffer
    -file determination and decompression.
    -.
    -This is combined into a single input file that is fed directly into
    -.B \%groff
    -with different strategy without the
    -.I \%groffer
    -viewing facilities.
    -.
    -These modes are regarded as advanced, they are useful for debugging
    -and development purposes.
    -.
    -.
    -.P
    -The
    -.I \%source\~mode
    -with option
    -.Opt_short Q
    -and
    -.Opt_long source
    -just displays the decompressed input.
    -.
    -.
    -.P
    -The
    -.I \%groff\~mode
    -passes the input to
    -.B \%groff
    -using only some suitable options provided to
    -.BR \%groffer .
    -.
    -This enables the user to save the generated output into a file or pipe
    -it into another program.
    -.
    -.
    -.P
    -In
    -.IR \%groff\~\%mode ,
    -the option
    -.Opt_short Z
    -disables post-processing, thus producing the
    -.nh
    -.I groff intermediate
    -.IR output .
    -.hy
    -.
    -In this mode, the input is formatted, but not postprocessed; see
    -.BR \%groff_out (5)
    -for details.
    -.
    -.
    -.P
    -All
    -.B \%groff
    -short options are supported by
    -.BR \%groffer .
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "MAN\~PAGE\~SEARCHING"
    -.\" --------------------------------------------------------------------
    -.
    -The default behavior of
    -.B \%groffer
    -is to first test whether a file parameter represents a local file; if
    -it is not an existing file name, it is assumed to represent a name of
    -a
    -.IR \%man\~page .
    -.
    -This behavior can be modified by the following options.
    -.
    -.
    -.TP
    -.Opt_long man
    -forces to interpret all file parameters as
    -.I \%filespecs
    -for searching
    -.IR \%man\~pages .
    -.
    -.TP
    -.Opt_long no\-man
    -.TP+
    -.Opt_long local\-file
    -disable the
    -.I man
    -searching; so only local files are displayed.
    -.
    -.
    -.P
    -If neither a local file nor a
    -.I \%man\~page
    -was retrieved for some file parameter a warning is issued on standard
    -error, but processing is continued.
    -.
    -.
    -.P
    -The
    -.B \%groffer
    -program provides a search facility for
    -.IR \%man\~pages .
    -.
    -All long options, all environment variables, and most of the
    -functionality of the \f[CR]GNU\f[]
    -.BR \%man (1)
    -program were implemented.
    -.
    -This inludes the extended file names of
    -.IR \%man\~pages ,
    -for example, the
    -.I \%man\~page
    -of
    -.B \%groff
    -in man\~section 7 may be stored under
    -.File_name /usr/share/man/man7/groff.7.gz ,
    -where
    -.File_name /usr/share/man/
    -is part of the man\~path, the subdirectory
    -.I \%man7
    -and the file extension
    -.I .7
    -refer to the man\~section 7;
    -.I \%.gz
    -shows the compression of the file.
    -.
    -.
    -.P
    -The
    -.I cat\~pages
    -(preformatted
    -.IR \%man\~pages )
    -are intentionally excluded from the search because
    -.B \%groffer
    -is a
    -.I roff
    -program that wants to format by its own.
    -.
    -With the excellent performance of the actual computers, the
    -preformatted
    -.I \%man\~pages
    -aren't necessary any longer.
    -.
    -.
    -.P
    -The algorithm for retrieving
    -\I \%man\~pages
    -uses five search methods.
    -.
    -They are successively tried until a method works.
    -.
    -.
    -.Topic
    -The search path can be manually specified by using the option
    -.Opt_long manpath .
    -An empty argument disables the
    -.I \%man\~page
    -searching.
    -.
    -This overwrites the other methods.
    -.
    -.
    -.Topic
    -If this is not available the environment variable
    -.Env_var $MANPATH
    -is searched.
    -.
    -.
    -.Topic
    -If this is empty, the program tries to read it from the environment
    -variable
    -.Env_var $MANOPT .
    -.
    -.
    -.Topic
    -If this does not work a reasonable default path from
    -.Env_var $PATH
    -is searched for
    -.IR \%man\~pages .
    -.
    -.
    -.Topic
    -If this does not work, the
    -.BR \%manpath (1)
    -program for determining a path of
    -.I man
    -directories is tried.
    -.
    -.
    -.P
    -After this, the path elements for the language (locale) and operating
    -system specific
    -.I \%man\~pages
    -are added to the
    -.IR man\~path ;
    -their sequence is determined automatically.
    -.
    -For example, both
    -.File_name /usr/share/man/linux/fr
    -and
    -.File_name /usr/share/man/fr/linux
    -for french linux
    -.I \%man\~pages
    -are found.
    -.
    -The language and operating system names are determined from both
    -environment variables and command line options.
    -.
    -.
    -.P
    -The locale (language) is determined like in \f[CR]GNU\f[]
    -.BR man ,
    -that is from highest to lowest precedence:
    -.Topic
    -.Opt_long locale
    -.
    -.Topic
    -.Env_var $GROFFER_OPT
    -.
    -.Topic
    -.Env_var $MANOPT
    -.
    -.Topic
    -.Env_var $LCALL
    -.
    -.Topic
    -.Env_var $LC_MESSAGES
    -.
    -.Topic
    -.Env_var $LANG .
    -.
    -.
    -.P
    -The language locale is usually specified in the
    -\%\f[CR]POSIX\~1003.1\f[] based format:
    -.P
    -.nh
    -\f[I]\f[][\f[CB]_\f[]\f[I]\f[][\f[CB].\f[]\
    -\f[I]\f[][\f[CB],\f[]\f[I]\f[]]]],
    -.hy
    -.P
    -but the two-letter code in
    -.nh
    -.I 
    -.hy
    -is sufficient for most purposes.
    -.
    -.
    -.P
    -If no
    -.I \%man\~pages
    -for a complicated locale are found the country part consisting of the
    -first two characters (without the `\f[CB]_\f[]', `\f[CB].\f[]', and
    -`\f[CB],\f[]' parts) of the locale is searched as well.
    -.
    -.
    -.P
    -If still not found the corresponding
    -.I \%man\~page
    -in the default language is used instead.
    -.
    -As usual, this default can be specified by one of \f[CR]C\f[] or
    -\f[CR]\%POSIX\f[].
    -.
    -The
    -.I \%man\~pages
    -in the default language are usually in English.
    -.
    -.
    -.P
    -Several operating systems can be given by appending their names,
    -separated by a comma.
    -.
    -This is then specified by the environment variable
    -.Env_var $SYSTEM
    -or by the command line option
    -.Opt_long systems .
    -The precedence is similar to the locale case above from highest to
    -lowest precedence:
    -.
    -Topic
    -.Opt_long systems
    -.
    -.Topic
    -.Env_var $GROFFER_OPT
    -.
    -.Topic
    -.Env_var $MANOPT
    -.
    -.Topic
    -.Env_var $SYSTEM .
    -.
    -.
    -.P
    -When searching for
    -.I \%man\~pages
    -this
    -.I man\~path
    -with the additional language and system specific directories is used.
    -.
    -.
    -.P
    -The search can further be restricted by limiting it to certain
    -sections.
    -.
    -A single section can be specified within each
    -.I \%filespec
    -argument, several sections as a colon-separated list in command line
    -option
    -.Opt_long sections
    -or environment variable
    -.Env_var $MANSECT .
    -.
    -When no section was specified a set of standard sections is searched
    -until a suitable
    -.I \%man\~page
    -was found.
    -.
    -.
    -.P
    -Finally, the search can be restricted to a so-called
    -.IR extension .
    -This is a postfix that acts like a subsection.
    -.
    -It can be specified by
    -.Opt_long extension
    -or environment variable
    -.Env_var $EXTENSION .
    -.
    -.
    -.P
    -For further details on
    -.I \%man\~page
    -searching, see
    -.BR \%man (1).
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH DECOMPRESSION
    -.\" --------------------------------------------------------------------
    -.
    -The program has a decompression facility.
    -.
    -If standard input or a file that was retrieved from the command line
    -parameters is compressed with a format that is supported by either
    -.BR \%gzip (1)
    -or
    -.BR \%bzip2 (1)
    -it is decompressed on-the-fly.
    -.
    -This includes the \f[CR]GNU\f[]
    -.BR \%.gz ,
    -.BR \%.bz2 ,
    -and the traditional
    -.B \%.Z
    -compression.
    -.
    -The program displays the concatenation of all decompressed input in
    -the sequence that was specified on the command line.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "ENVIRONMENT"
    -.\" --------------------------------------------------------------------
    -.
    -The
    -.B \%groffer
    -program supports many system variables, most of them by courtesy of
    -other programs.
    -.
    -All environment variables of
    -.BR \%groff (1)
    -and \f[CR]GNU\f[]
    -.BR \%man (1)
    -and some standard system variables are honored.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Native groffer Variables"
    -.\" --------------------------------------------------------------------
    -.
    -.TP
    -.Env_var $GROFFER_OPT
    -Store options for a run of
    -.BR \%groffer .
    -.
    -The options specified in this variable are overridden by the options
    -given on the command line.
    -.
    -The content of this variable is run through the shell builtin `eval';
    -so arguments containing white-space or special shell characters should
    -be quoted.
    -.
    -Do not forget to export this variable, otherwise it does not exist
    -during the run of
    -.BR groffer .
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "System Variables"
    -.\" --------------------------------------------------------------------
    -.
    -The
    -.B \%groffer
    -program is a shell script that is run through
    -.File_name /bin/sh ,
    -which can be internally linked to programs like
    -.BR \%bash (1).
    -The corresponding system environment is automatically effective.
    -.
    -The following variables have a special meaning for
    -.BR \%groffer .
    -.
    -.
    -.TP
    -.Env_var $DISPLAY
    -If this variable is set this indicates that the \%\f[CR]X\~Window\f[]
    -system is running.
    -.
    -Testing this variable decides on whether graphical or text output is
    -generated.
    -.
    -This variable should not be changed by the user carelessly, but it can
    -be used to start the graphical
    -.B \%groffer
    -on a remote \%\f[CR]X\~Window\f[] terminal.
    -.
    -For example, depending on your system,
    -.B \%groffer
    -can be started on the second monitor by the command
    -.Shell_cmd DISPLAY=:0.1\~groffer\~ what.ever &
    -.
    -.
    -.TP
    -.Env_var $LC_ALL
    -.TP+
    -.Env_var $LC_MESSAGES
    -.TP+
    -.Env_var $LANG
    -If one of these variables is set (in the above sequence), its content
    -is interpreted as the locale, the language to be used, especially when
    -retrieving
    -\IR \%man\~pages .
    -.
    -A locale name is typically of the form
    -.nh
    -.IR language [\c
    -.B _\c
    -.IR territory [\c
    -.B .\c
    -.IR codeset [\c
    -.B @\c
    -.IR modifier ]]],
    -.hy
    -where
    -.I \%language
    -is an ISO 639 language code,
    -.I \%territory
    -is an ISO 3166 country code, and
    -.I \%codeset
    -is a character set or encoding identifier like ISO-8859-1 or UTF-8;
    -see
    -.BR \%setlocale (3).
    -.
    -The locale values \f[CR]C\f[] and \%\f[CR]POSIX\f[]
    -stand for the default, i.e. the
    -.I \%man\~page
    -directories without a language prefix.
    -.
    -This is the same behavior as when all 3\~variables are unset.
    -.
    -.
    -.TP
    -.Env_var $PAGER
    -This variable can be used to set the pager for the tty output.
    -.
    -For example, to disable the use of a pager completely set this
    -variable to the
    -.BR \%cat (1)
    -program
    -.Shell_cmd PAGER=cat\~groffer\~ anything
    -.
    -.
    -.TP
    -.Env_var $PATH
    -All programs within the
    -.B \%groffer
    -shell script are called without a fixed path.
    -.
    -Thus this environment variable determines the set of programs used
    -within the run of
    -.BR \%groffer .
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Groff Variables"
    -.\" --------------------------------------------------------------------
    -.
    -The
    -.B \%groffer
    -program internally calls
    -.BR \%groff ,
    -so all environment variables documented in
    -.BR \%groff (1)
    -are internally used within
    -.B \%groffer
    -as well.
    -.
    -The following variable has a direct meaning for the
    -.B \%groffer
    -program.
    -.
    -.TP
    -.Env_var $GROFF_TMPDIR
    -If the value of this variable is an existing, writable directory,
    -.B \%groffer
    -uses it for storing its temporary files, just as
    -.B groff
    -does.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Man Variables"
    -.\" --------------------------------------------------------------------
    -.
    -Parts of the functionality of the
    -.B man
    -program were implemented in
    -.BR \%groffer ;
    -support for all environment variables documented in
    -.BR \%man (1)
    -was added to
    -.BR \%groffer ,
    -but the meaning was slightly modified due to the different approach in
    -.BR \%groffer ;
    -but the user interface is the same.
    -.
    -The
    -.B man
    -environment variables can be overwritten by options provided with
    -.Env_var $MANOPT ,
    -which in turn is overwritten by the command line.
    -.
    -.
    -.TP
    -.Env_var $EXTENSION
    -Restrict the search for
    -.I \%man\~pages
    -to files having this extension.
    -.
    -This is overridden by option
    -.Opt_long extension ;
    -see there for details.
    -.
    -.
    -.TP
    -.Env_var $MANOPT
    -This variable contains options as a preset for
    -.BR \%man (1).
    -As not all of these are relevant for
    -.B \%groffer
    -only the essential parts of its value are extracted.
    -.
    -The options specified in this variable overwrite the values of the
    -other environment variables that are specific to
    -.IR man .
    -.
    -All options specified in this variable are overridden by the options
    -given on the command line.
    -.
    -.
    -.TP
    -.Env_var $MANPATH
    -If set, this variable contains the directories in which the
    -.I \%man\~page
    -trees are stored.
    -.
    -This is overridden by option
    -.Opt_long manpath .
    -.
    -.
    -.TP
    -.Env_var $MANSECT
    -If this is a colon separated list of section names, the search for
    -.I \%man\~pages
    -is restricted to those manual sections in that order.
    -.
    -This is overridden by option
    -.Opt_long sections .
    -.
    -.
    -.TP
    -.Env_var $SYSTEM
    -If this is set to a comma separated list of names these are interpreted
    -as
    -.I \%man\~page
    -trees for different operating systems.
    -.
    -This variable can be overwritten by option
    -.Opt_long systems ;
    -see there for details.
    -.
    -.
    -.P
    -The environment variable
    -.Env_var $MANROFFSEQ
    -is ignored by
    -.B \%groffer
    -because the necessary preprocessors are determined automatically.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "CONFIGURATION FILES"
    -.\" --------------------------------------------------------------------
    -.
    -The
    -.B \%groffer
    -program can be preconfigured by two configuration files.
    -.
    -.
    -.TP
    -.File_name /etc/groff/groffer.conf
    -System-wide configuration file for
    -.BR \%groffer .
    -.
    -.
    -.TP
    -.File_name $HOME/.groff/groffer.conf
    -User-specific configuration file for
    -.BR \%groffer ,
    -where
    -.Env_var $HOME
    -denotes the user's home directory.
    -.
    -This file is called after the system-wide configuration file to enable
    -overriding by the user.
    -.
    -.
    -.P
    -The precedence of option delivery is given in the following.
    -.
    -The configuration file in
    -.File_name /etc
    -has the lowest precedence; it is overwritten by the configuration file
    -in the home directory; both configuration files are overwritten by the
    -environment variable
    -.Env_var $GROFFER_OPT ;
    -everything is overwritten by the command line.
    -.
    -.
    -.P
    -In the configuration files, arbitrary spaces are allowed at the
    -beginning of each line, they are just ignored.
    -.
    -Apart from that, the lines of the configuration lines either start
    -with a minus character, all other lines are interpreted as shell
    -commands.
    -.
    -.
    -.P
    -The lines with the beginning minus are interpreted as
    -.B groffer
    -options.
    -.
    -This easily allows to set general
    -.B \%groffer
    -options that should be used with any call of
    -.BR \%groffer .
    -.
    -Each line can represent a single short option, a short option cluster,
    -or a long option with two minus signs, eventually with an argument.
    -.
    -The argument can be appended either after a space character or an
    -equal sign
    -.RB ` = '.
    -The argument can be surrounded by quotes, but this is not necessary.
    -.
    -The options from these lines are collected and prepended to the
    -existing value of
    -.Env_var $GROFFER_OPT
    -at the end of each configuration file.
    -.
    -.
    -.P
    -After the transformation of the minus lines, the configuration files
    -have been transferred into a shell script that is called within
    -.B \%groffer
    -using the `\c
    -.CB \.\~\c
    -.IR \%filename '
    -shell syntax.
    -.
    -.
    -.P
    -It makes sense to use these configuration files for the following
    -tasks:
    -.
    -.Topic
    -Preset command line options, such as choosing a
    -.I \%mode
    -or a viewer.
    -.
    -These are written into lines starting with a single or double minus
    -sign, followed by the option name.
    -.
    -.Topic
    -Preset environment variables recognized by
    -.BR \%groffer ;
    -but do not forget to export them.
    -.
    -.Topic
    -You can also write a shell function for calling, for example a viewer
    -program for some
    -.IR \%mode .
    -Such a function can be fed into a corresponding
    -.Opt_long \f[I]mode\f[]\-viewer
    -option.
    -.
    -.Topic
    -Enter
    -.Opt_long shell
    -to specify a shell for the run of
    -.File_name groffer2.sh .
    -Some shells run much faster than the standard shell.
    -.
    -.
    -.P
    -As an example, consider the following configuration file in
    -.File_name ~/.groff/groffer.conf ,
    -say.
    -.
    -.P
    -.ft CR
    -.nh
    -.nf
    -# groffer configuration file
    -#
    -# groffer options that are used in each call of groffer
    -\-\-shell=ksh
    -\-\-foreground=DarkBlue
    -\-\-resolution=100
    -\-\-x\-viewer='gxditview \-geometry 900x1200'
    -#
    -# some shell commands
    -if test "$DISPLAY" = ""; then
    -  export DISPLAY='localhost:0.0'
    -fi
    -date >>~/mygroffer.log
    -.fi
    -.hy
    -.ft
    -.
    -.
    -.P
    -The lines starting with
    -.B #
    -are command lines.
    -.
    -This configuration sets four
    -.B \%groffer
    -options (the lines starting with `\-') and runs two shell commands (the
    -rest of the script).
    -.
    -This has the following effects:
    -.
    -.
    -.Topic
    -Use
    -.B ksh
    -as the shell to run the
    -.B \%groffer
    -script; if it works it should be faster than the usual
    -.BR sh .
    -.
    -.
    -.Topic
    -Use a text color of
    -.B \%DarkBlue
    -in all viewers that support this, such as
    -.BR \%gxditview .
    -.
    -.
    -.Topic
    -Use a resolution of
    -.B 100\~dpi
    -in all viewers that support this, such as
    -.BR \%gxditview .
    -.
    -By this, the default device in
    -.I x mode
    -is set to
    -.BR X100 .
    -.
    -.
    -.Topic
    -Force
    -.BR \%gxditview (1)
    -as the
    -.I \%x-mode
    -viewer using the geometry option for setting the width to
    -.B 900\~dpi
    -and the height to
    -.BR 1200\~dpi .
    -This geometry is suitable for a resolution of
    -.BR 100\~dpi .
    -.
    -.
    -.Topic
    -If the environment variable
    -.Env_var $DISPLAY
    -is empty set it to
    -.IR localhost:0.0 .
    -.
    -That allows to start
    -.B \%groffer
    -in the standard \%\f[CR]X\~Window\f[] display, even when the program
    -is called from a text console.
    -.
    -.
    -.Topic
    -Just for fun, the date of each
    -.B \%groffer
    -start is written to the file
    -.File_name mygroffer.log
    -in the home directory.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "EXAMPLES"
    -.\" --------------------------------------------------------------------
    -.
    -The usage of
    -.B \%groffer
    -is very easy.
    -.
    -Usually, it is just called with a file name or
    -.IR \%man\~page .
    -.
    -The following examples, however, show that
    -.B \%groffer
    -has much more fancy capabilities.
    -.
    -.
    -.TP
    -.Shell_cmd "groffer\~/usr/share/doc/groff/meintro.ms.gz"
    -Decompress, format and display the compressed file
    -.File_name meintro.ms.gz
    -in the directory
    -.File_name /usr/share/doc/groff ,
    -using the standard viewer
    -.B \%gxditview
    -as graphical viewer when in \%\f[CR]X\~Window\f[], or the
    -.BR \%less (1)
    -pager program when not in \%\f[CR]X\~Window\f[].
    -.
    -.
    -.TP
    -.Shell_cmd "groffer\~groff"
    -If the file
    -.File_name \%./groff
    -exists use it as input.
    -.
    -Otherwise interpret the argument as a search for the
    -.I \%man\~page
    -named
    -.B \%groff
    -in the smallest possible
    -.IR \%man\~section ,
    -being section 1 in this case.
    -.
    -.
    -.TP
    -.Shell_cmd "groffer\~man:groff"
    -search for the
    -.I \%man\~page
    -of
    -.B \%groff
    -even when the file
    -.File_name ./groff
    -exists.
    -.
    -.
    -.TP
    -.Shell_cmd "groffer\~groff.7"
    -.TP+
    -.Shell_cmd "groffer\~7\~groff"
    -search the
    -.I \%man\~page
    -of
    -.B \%groff
    -in
    -.I \%man\~section
    -.BR 7 .
    -This section search works only for a digit or a single character from
    -a small set.
    -.
    -.
    -.TP
    -.Shell_cmd "groffer\~fb.modes"
    -If the file
    -.File_name ./fb.modes
    -does not exist interpret this as a search for the
    -.I \%man\~page
    -of
    -.BR fb.modes .
    -As the extension
    -.I \%modes
    -is not a single character in classical section style the argument is
    -not split to a search for
    -.BR fb .
    -.
    -.
    -.TP
    -.Shell_cmd "groffer\~groff\~\[cq]troff(1)\[cq]\~man:roff"
    -.
    -The arguments that are not existing files are looked-up as the
    -following
    -.IR \%man\~pages :
    -.B \%groff
    -(automatic search, should be found in \fIman\fP\~section\~1),
    -.B \%troff
    -(in section\~1),
    -and
    -.B \%roff
    -(in the section with the lowest number, being\~7 in this case).
    -.
    -The quotes around
    -.nh
    -.I \[cq]troff(1)\[cq]
    -.hy
    -are necessary because the paranthesis are special shell characters;
    -escaping them with a backslash character
    -.I \[rs](
    -and
    -.I \[rs])
    -would be possible, too.
    -.
    -The formatted files are concatenated and displayed in one piece.
    -.
    -.
    -.TP
    -.Shell_cmd "LANG=de\~groffer\~--man\~--www\~--www-viever=galeon\~ls"
    -.
    -Retrieve the German
    -.I \%man\~page
    -(language
    -.IR de )
    -for the
    -.B ls
    -program, decompress it, format it to
    -.I \%html
    -format
    -.nh
    -.RI ( \%www\~mode )
    -.hy
    -and view the result in the web browser
    -.BR \%galeon .
    -The option
    -.Opt_long man
    -guarantees that the
    -.I \%man\~page
    -is retrieved, even when a local file
    -.File_name \%ls
    -exists in the actual directory.
    -.
    -.
    -.TP
    -.Shell_cmd "groffer\~--source\~'man:roff(7)'"
    -.
    -Get the
    -.I \%man\~page
    -called
    -.I \%roff
    -in \fIman\fP\~section 7, decompress it, and print its unformatted
    -content, its source code.
    -.
    -.
    -.TP
    -.Shell_cmd "cat\~file.gz\~|\~groffer\~-Z\~-mfoo"
    -.
    -Decompress the standard input, send this to
    -.I \%groff intermediate output mode
    -without post-processing
    -.RB ( groff
    -option
    -.Opt_short Z ),
    -using macro package by
    -.I \%foo
    -.RB ( groff
    -option
    -.Opt_short m ) .
    -.
    -.
    -.TP
    -.Shell_cmd "echo\~'\[rs]f[CB]WOW!'\~|"
    -.TP+
    -.Shell_cmd+ "groffer --x --bg red --fg yellow --geometry 200x100 -"
    -.
    -Display the word \f[CB]WOW!\f[] in a small window in constant-width
    -bold font, using color yellow on red background.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "COMPATIBILITY"
    -.\" --------------------------------------------------------------------
    -.
    -The
    -.B \%groffer
    -program consists of two shell scripts.
    -.
    -.
    -.P
    -The starting script is the file
    -.File_name \%groffer
    -that is installed in a
    -.File_name bin
    -directory.
    -.
    -It is generated from the source file
    -.File_name \%groffer.sh .
    -.
    -It is just a short starting script without any functions such that it
    -can run on very poor shells.
    -.
    -.
    -.P
    -The main part of the
    -.B \%groffer
    -program is the file
    -.File_name groffer2.sh
    -that is installed in the
    -.I groff
    -library directory.
    -.
    -This script can be run under a different shell by using the
    -.B \%groffer
    -option
    -.Opt_long shell .
    -.
    -.
    -.P
    -Both scripts are compatible with both
    -\f[CR]GNU\f[] and \%\f[CR]POSIX\f[].
    -.
    -\%\f[CR]POSIX\f[] compatibility refers to
    -\%\f[CR]IEEE\~P1003.2/D11.2\f[] of September 1991, a very early
    -version of the \%\f[CR]POSIX\f[] standard that is still freely
    -available in the internet at
    -.URL http://\:www.funet.fi/\:pub/\:doc/\:posix/\:p1003.2/\:d11.2/\:all \
    -"\%POSIX\~P1003.2\~draft\~11.2" .
    -.
    -.
    -.P
    -Only a restricted set of shell language elements and shell builtins is
    -used to achieve even compatibility with some Bourne shells that are
    -not fully \%\f[CR]POSIX\f[] compatible.
    -.
    -The
    -.B \%groffer
    -shell scripts were tested on many shells, including the following
    -Bourne shells:
    -.BR \%ash (1),
    -.BR \%bash (1),
    -.BR \%dash (1),
    -.BR \%ksh (1),
    -.BR \%pdksh (1),
    -.BR \%posh (1),
    -and
    -.BR \%zsh (1).
    -So it should work on most actual free and commercial operating
    -systems.
    -.
    -.
    -.P
    -The shell for the run of
    -.File_name groffer2.sh
    -can be chosen by the option
    -.Opt_long shell
    -on the command line or the environment variable
    -.Env_var $GROFF_OPT .
    -If you want to add it to one of the
    -.B \%groffer
    -configuration files you must write a line starting with
    -.Opt_long shell .
    -.
    -.
    -.P
    -The
    -.B \%groffer
    -program provides its own parser for command line arguments that is
    -compatible to both \%\f[CR]POSIX\f[]
    -.BR \%getopts (1)
    -and \%\f[CR]GNU\f[]
    -.BR \%getopt (1).
    -It can handle option arguments and file names containing white space
    -and a large set of special characters.
    -.
    -The following standard types of options are supported.
    -.
    -.
    -.Topic
    -The option consisiting of a single minus
    -.Opt_short
    -refers to standard input.
    -.
    -.
    -.Topic
    -A single minus followed by characters refers to a single character
    -option or a combination thereof; for example, the
    -.B \%groffer
    -short option combination
    -.Opt_short Qmfoo
    -is equivalent to
    -.Opt_short Q\~\-m\~foo .
    -.
    -.
    -.Topic
    -Long options are options with names longer than one character; they
    -are always preceded by a double minus.
    -.
    -An option argument can either go to the next command line argument or
    -be appended with an equal sign to the argument; for example,
    -.Opt_alt -- long=arg
    -is equivalent to
    -.Opt_alt -- long\~arg .
    -.
    -.
    -.Topic
    -An argument of
    -.Opt_--
    -ends option parsing; all further command line arguments are
    -interpreted as
    -.I \%filespec
    -parameters, i.e. file names or constructs for searching
    -.IR \%man\~pages ).
    -.
    -.
    -.Topic
    -All command line arguments that are neither options nor option
    -arguments are interpreted as
    -.I \%filespec
    -parameters and stored until option parsing has finished.
    -.
    -For example, the command line
    -.Shell_cmd "groffer file1 -a -o arg file2"
    -is equivalent to
    -.Shell_cmd "groffer -a -o arg -- file1 file2"
    -.
    -.
    -.P
    -The free mixing of options and
    -.I \%filespec
    -parameters follows the GNU principle.
    -.
    -That does not fulfill the strange option behavior of \%\f[CR]POSIX\f[]
    -that ends option processing as soon as the first non-option argument
    -has been reached.
    -.
    -The end of option processing can be forced by the option
    -.RB ` \-\- '
    -anyway.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "BUGS"
    -.\" --------------------------------------------------------------------
    -.
    -Report bugs to the
    -.MTO bug-groff@gnu.org "bug-groff mailing list" .
    -.
    -Include a complete, self-contained example that will allow the bug to
    -be reproduced, and say which version of
    -.B \%groffer
    -you are using.
    -.
    -.
    -.P
    -You can also use the
    -.MTO groff@gnu.org "groff mailing list" ,
    -but you must first subscribe to this list.
    -.
    -You can do that by visiting the
    -.URL http://\:lists.gnu.org/\:mailman/\:listinfo/\:groff \
    -"groff mailing list web page" .
    -.
    -.
    -.P
    -See
    -.BR \%groff (1)
    -for information on availability.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "SEE ALSO"
    -.\" --------------------------------------------------------------------
    -.
    -.P
    -.BR \%groff (1),
    -.BR \%troff (1)
    -.RS
    -Details on the options and environment variables available in
    -.BR \%groff ;
    -all of them can be used with
    -.BR \%groffer .
    -.RE
    -.
    -.
    -.TP
    -.BR \%groff (7)
    -Documentation of the
    -.I \%groff
    -language.
    -.
    -.
    -.TP
    -.BR \%grog (1)
    -Internally,
    -.B \%groffer
    -tries to guess the
    -.B \%groff
    -command line options from the input using this program.
    -.
    -.
    -.TP
    -.BR groff_out (5)
    -Documentation on the
    -.I \%groff intermediate output
    -.nh
    -.RI ( ditroff
    -output).
    -.hy
    -.
    -.
    -.TP
    -.BR groff_tmac (5)
    -Documentation on the
    -.I \%groff
    -macro files.
    -.
    -.
    -.TP
    -.BR \%man (1)
    -The standard program to display
    -.IR \%man\~pages .
    -.
    -The information there is only useful if it is the
    -.I \%man\~page
    -for GNU
    -.BR man .
    -Then it documents the options and environment variables that are
    -supported by
    -.BR \%groffer .
    -.
    -.
    -.P
    -.BR \%ash (1),
    -.BR \%bash (1),
    -.BR \%dash (1),
    -.BR \%ksh (1),
    -.BR \%pdksh (1),
    -.BR \%posh (1),
    -.BR \%sh (1),
    -.BR \%zsh (1)
    -.RS
    -Bourne shells that were tested with
    -.BR \%groffer .
    -.RE
    -.
    -.
    -.P
    -.BR \%gxditview (1),
    -.BR \%xditview (1x)
    -.RS
    -Viewers for
    -.BR \%groffer 's
    -.IR \%x\~mode .
    -.RE
    -.
    -.
    -.P
    -.BR \%kghostview (1),
    -.BR \%ggv (1),
    -.BR \%gv (1),
    -.BR \%ghostview (1),
    -.BR \%gs (1)
    -.RS
    -Viewers for
    -.BR \%groffer 's
    -.IR \%ps\~mode .
    -.RE
    -.
    -.
    -.P
    -.BR \%kghostview (1),
    -.BR \%ggv (1),
    -.BR \%xpdf (1),
    -.BR \%acroread (1),
    -.BR \%kpdf (1)
    -.RS
    -Viewers for
    -.BR \%groffer 's
    -.IR \%pdf\~mode .
    -.RE
    -.
    -.
    -.P
    -.BR \%kdvi (1),
    -.BR \%xdvi (1),
    -.BR \%dvilx (1)
    -.RS
    -Viewers for
    -.BR \%groffer 's
    -.IR \%dvi\~mode .
    -.RE
    -.
    -.
    -.P
    -.BR \%konqueror (1),
    -.BR \%mozilla (1),
    -.BR \%lynx (1)
    -.RS
    -Web-browsers for
    -.BR \%groffer 's
    -.I \%html
    -or
    -.IR \%www\~mode .
    -.RE
    -.
    -.
    -.TP
    -.BR \%less (1)
    -Standard pager program for the
    -.I \%tty\~mode .
    -.
    -.
    -.P
    -.BR \%gzip (1),
    -.BR \%bzip2 (1)
    -.RS
    -The decompression programs supported by
    -.BR \%groffer .
    -.RE
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "AUTHOR"
    -.\" --------------------------------------------------------------------
    -.author
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "COPYING"
    -.\" --------------------------------------------------------------------
    -.copyleft
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.\" Emacs settings
    -.\" --------------------------------------------------------------------
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/grog.1 b/gen/usr/share/man/man1/grog.1
    deleted file mode 100644
    index e697e4f..0000000
    --- a/gen/usr/share/man/man1/grog.1
    +++ /dev/null
    @@ -1,91 +0,0 @@
    -.ig
    -Copyright (C) 1989-2000, 2001, 2002, 2003 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.TH GROG 1 "18 March 2003" "Groff Version 1.19.2"
    -.SH NAME
    -grog \- guess options for groff command
    -.SH SYNOPSIS
    -.B grog
    -[
    -.BI \- option
    -\|.\|.\|.\&
    -]
    -[
    -.IR files\  \|.\|.\|.\&
    -]
    -.SH DESCRIPTION
    -.B grog
    -reads
    -.I files
    -and guesses which of the
    -.BR groff  (1)
    -options
    -.BR \-e ,
    -.BR \-man ,
    -.BR \-me ,
    -.BR \-mm ,
    -.BR \-mom ,
    -.BR \-ms ,
    -.BR \-mdoc,
    -.BR \-mdoc-old,
    -.BR \-p ,
    -.BR \-R ,
    -.BR \-g ,
    -.BR \-G ,
    -.BR \-s ,
    -and
    -.BR \-t
    -are required for printing
    -.IR files ,
    -and prints the groff command including those options on the standard output.
    -A filename of
    -.B \-
    -is taken to refer to the standard input.
    -If no files are specified the standard input will be read.
    -Any specified options will be included in the printed command.
    -No space is allowed between options and their arguments.
    -The only options recognized are
    -.B \-C
    -(which is also passed on) to enable compatibility mode, and
    -.B \-v
    -to print the version number.
    -.LP
    -For example,
    -.IP
    -.B \`grog \-Tdvi paper.ms\`
    -.LP
    -will guess the appropriate command to print
    -.B paper.ms
    -and then run it after adding the
    -.B \-Tdvi
    -option.
    -.SH "SEE ALSO"
    -.BR doctype (1),
    -.BR groff (1),
    -.BR troff (1),
    -.BR tbl (1),
    -.BR pic (1),
    -.BR eqn (1),
    -.BR refer (1),
    -.BR grn (1),
    -.BR grap (1),
    -.BR soelim (1)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/grohtml.1 b/gen/usr/share/man/man1/grohtml.1
    deleted file mode 100644
    index 409be66..0000000
    --- a/gen/usr/share/man/man1/grohtml.1
    +++ /dev/null
    @@ -1,293 +0,0 @@
    -.ig
    -Copyright (C) 1999-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of this
    -manual provided the copyright notice and this permission notice are
    -preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.
    -.
    -.\" Like TP, but if specified indent is more than half
    -.\" the current line-length - indent, use the default indent.
    -.de Tp
    -.  ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
    -.  el .TP "\\$1"
    -..
    -.
    -.
    -.TH GROHTML 1 "24 November 2004" "Groff Version 1.19.2"
    -.
    -.
    -.SH NAME
    -grohtml \- html driver for groff
    -.
    -.
    -.SH SYNOPSIS
    -.nr a \n(.j
    -.ad l
    -.nr i \n(.i
    -.in +\w'\fBgrohtml 'u
    -.ti \niu
    -.B grohtml
    -.
    -.de OP
    -.  ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
    -.  el .RB "[\ " "\\$1" "\ ]"
    -..
    -.
    -.OP \-bhlnprv
    -.OP \-a \%aa-text-bits
    -.OP \-D dir
    -.OP \-F dir
    -.OP \-g \%aa-graphic-bits
    -.OP \-i \%resolution
    -.OP \-I \%image-stem
    -.OP \-j \%filename
    -.OP \-o \%image-vertical-offset
    -.OP \-s size
    -.OP \-S level
    -.RI "[\ " files\|.\|.\|. "\ ]"
    -.br
    -.ad \na
    -.
    -.
    -.SH DESCRIPTION
    -The
    -.B grohtml
    -front end (which consists of a preprocessor,
    -.BR pre-grohtml ,
    -and a device driver,
    -.BR post-grohtml )
    -translates the output of GNU
    -.B troff
    -to html.
    -Users should always invoke
    -.B grohtml
    -via the groff command with a
    -.B \-Thtml
    -option.
    -If no files are given,
    -.B grohtml
    -will read the standard input.
    -A filename of
    -.B \-
    -will also cause
    -.B grohtml
    -to read the standard input.
    -Html output is written to the standard output.
    -When
    -.B grohtml
    -is run by
    -.B groff
    -options can be passed to
    -.B grohtml
    -using
    -.BR groff 's
    -.B \-P
    -option.
    -.
    -.
    -.SH OPTIONS
    -.TP
    -.BI \-a aa-text-bits
    -Number of bits of antialiasing information to be used by
    -.I text
    -when generating png images.
    -The default is\~4 but valid values are 0, 1, 2, and\~4.
    -Note your version of
    -.B gs
    -needs to support the
    -.B \%\-dTextAlphaBits
    -and
    -.B \%\-dGraphicAlphaBits
    -options in order to exploit antialiasing.
    -A value of\~0 stops
    -.B grohtml
    -from issuing antialiasing commands to
    -.BR gs .
    -.
    -.TP
    -.B \-b
    -Initialize the background color to white.
    -.
    -.TP
    -.BI \-D dir
    -Inform
    -.B grohtml
    -to place all image files into directory
    -.IR dir .
    -.
    -.TP
    -.BI \-F dir
    -Prepend directory
    -.IB dir /dev name
    -to the search path for font and device description files;
    -.I name
    -is the name of the device, usually
    -.BR html .
    -.
    -.TP
    -.BI \-g aa-graphic-bits
    -Number of bits of antialiasing information to be used by
    -.I graphics
    -when generating png images.
    -The default is\~4 but valid values are 0, 1, 2, and\~4.
    -Note your version of
    -.B gs
    -needs to support the
    -.B \%\-dTextAlphaBits
    -and
    -.B \%\-dGraphicAlphaBits
    -options in order to exploit antialiasing.
    -A value of\~0 stops
    -.B grohtml
    -from issuing antialiasing commands to
    -.BR gs .
    -.
    -.TP
    -.B \-h
    -Generate section and number headings by using
    -.BR  .\|.\|. 
    -and increasing the font size, rather than using the
    -.BI \c
    -\&.\|.\|.\c
    -.BI 
    -tags.
    -.
    -.TP
    -.BI \-i resolution
    -Select the resolution for all images.
    -By default this is 100 pixels per inch.
    -Example:
    -.B \-i200
    -indicates 200 pixels per inch.
    -.
    -.TP
    -.BI \-I stem
    -Determine the image stem name.
    -If omitted grohtml uses
    -.BI \%grohtml- XXX
    -.RI ( XXX
    -is the process ID).
    -.
    -.TP
    -.BI \-j filename
    -Inform
    -.B grohtml
    -to split the html output into multiple files.
    -The
    -.I filename
    -is the stem and specified section headings
    -(default is level one) start a new file, named
    -.IR filename-n.html .
    -.
    -.TP
    -.B \-l
    -Turn off the production of automatic section links at the top of the
    -document.
    -.
    -.TP
    -.B \-n
    -Generate simple heading anchors whenever a section/number heading is found.
    -Without the option the anchor value is the textual heading.
    -This can cause problems when a heading contains a `?' on older versions of
    -some browsers (Netscape).
    -This flag is automatically turned on if a heading contains an image.
    -.
    -.TP
    -.BI \-o vertical-offset
    -Specify the vertical offset of images in points.
    -.
    -.TP
    -.B \-p
    -Display page rendering progress to stderr.
    -.B grohtml
    -only displays a page number when an image is required.
    -.
    -.TP
    -.B \-r
    -Turn off the automatic header and footer line (html rule).
    -.
    -.TP
    -.B \-s size
    -Set the base point size of the source file.
    -Thereafter when this point size is used in the source it will correspond
    -to the html base size.
    -Every increase of two points in the source will yield a
    -.B 
    -tag, and conversely when a decrease of two points is seen a
    -.B 
    -tag is emitted.
    -.
    -.TP
    -.BI \-S level
    -When splitting html output,
    -split at the heading level (or higher) defined by
    -.IR level .
    -.
    -.TP
    -.B \-v
    -Print the version number.
    -.
    -.
    -.SH USAGE
    -There are styles called
    -.BR R ,
    -.BR I ,
    -.BR B ,
    -and
    -.B BI
    -mounted at font positions 1 to\~4.
    -.
    -.
    -.SH DEPENDENCIES
    -.B grohtml
    -is dependent upon the png utilities
    -.RB ( \%pnmcut ,
    -.BR \%pnmcrop ,
    -.BR \%pnmtopng )
    -and GhostScript
    -.RB ( gs ).
    -.B \%pnmtopng
    -(version 2.37.6 or greater)
    -and
    -.B \%pnmcut
    -from the netpbm package (version 9.16 or greater) will work also.
    -It is also dependent upon
    -.B \%psselect
    -from the
    -.B PSUtils
    -package.
    -Images are generated whenever a table, picture, equation or line is
    -encountered.
    -.
    -.
    -.SH BUGS
    -.B Grohtml
    -has been completely redesigned and rewritten.
    -It is still beta code.
    -.
    -.
    -.SH "SEE ALSO"
    -.BR afmtodit (1),
    -.BR groff (1),
    -.BR troff (1),
    -.BR psbb (1),
    -.BR groff_out (5),
    -.BR groff_font (5),
    -.BR groff_char (7)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/grolbp.1 b/gen/usr/share/man/man1/grolbp.1
    deleted file mode 100644
    index c77950b..0000000
    --- a/gen/usr/share/man/man1/grolbp.1
    +++ /dev/null
    @@ -1,336 +0,0 @@
    -'\" t
    -.\" The above line should force the use of tbl as a preprocessor
    -.\" vim: set syntax=nroff : 
    -.\" The above line should set vim into nroff mode
    -.ig
    -Copyright (C) 1994-2000, 2002 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -
    -Modified by Francisco Andrés Verdú  for the grolbp
    -program.
    -..
    -.de TQ
    -.br
    -.ns
    -.TP \\$1
    -..
    -.\" Like TP, but if specified indent is more than half
    -.\" the current line-length - indent, use the default indent.
    -.de Tp
    -.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
    -.el .TP "\\$1"
    -..
    -.TH GROLBP 1 "1 March 2013" "Groff Version 1.19.2"
    -.
    -.SH NAME
    -grolbp \- groff driver for Canon CAPSL printers (LBP-4 and LBP-8 series laser printers).
    -.
    -.SH SYNOPSIS
    -.nr a \n(.j
    -.ad l
    -.nh
    -.nr i \n(.i
    -.in +\w'\fBgrolbp 'u
    -.ti \niu
    -.B grolpb
    -.de OP
    -.ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
    -.el .RB "[\ " "\\$1" "\ ]"
    -..
    -.OP \-l
    -.OP \-\-landscape
    -.OP \-v
    -.OP \-\-version
    -.OP \-c n
    -.OP \-\-copies= numcopies
    -.OP \-p paper_size
    -.OP \-\-papersize= paper_size
    -.OP \-o orientation
    -.OP \-\-orientation= orientation
    -.OP \-w width
    -.OP \-\-linewidth= width
    -.OP \-F dir
    -.OP \-\-fontdir= dir
    -.OP \-h
    -.OP \-\-help
    -.RI "[\ " files\|.\|.\|. "\ ]"
    -.br
    -.ad \na
    -.hy
    -.
    -.SH DESCRIPTION
    -.B grolbp
    -is a driver for
    -.B groff
    -that produces output in CAPSL and VDM format suitable for Canon LBP\-4 and
    -LBP\-8 printers.
    -.LP
    -For compatibility with grolj4 there is an additional drawing command
    -available:
    -.TP
    -.BI \eD'R\  dh\ dv '
    -Draw a rule (i.e.\ a solid black rectangle), with one corner at the current
    -position, and the diagonally opposite corner at the current position
    -.RI +( dh , dv ).
    -.SH OPTIONS
    -Note that there can be whitespace between a one-letter option and its
    -argument; on the other hand, there must be whitespace and/or an equal sign
    -(`=') between a long-name option and its argument.
    -.TP
    -.BI \-c numcopies
    -.TQ
    -.BI \-\-copies= numcopies
    -Print
    -.I numcopies
    -copies of each page.
    -.TP
    -.B \-l
    -.TQ
    -.B \-\-landscape
    -Print the document with a landscape orientation.
    -.TP
    -.BI \-p paper_size
    -.TQ
    -.BI \-\-papersize= paper_size
    -Set the paper size to
    -.IR paper_size ,
    -which must be a valid paper size description as indicated in the section
    -.BR "PAPER SIZES" .
    -.TP
    -.BI \-o orientation
    -.TQ
    -.BI \-\-orientation= orientation
    -Print the document with
    -.I orientation
    -orientation, which must be `portrait' or `landscape'.
    -.TP
    -.BI \-w width
    -.TQ
    -.BI \-\-linewidth= width
    -Set the default line thickness to
    -.I width
    -thousandths of an em.
    -If this option isn't specified, the line thickness defaults to 0.04\~em.
    -.TP
    -.B \-v
    -.TQ
    -.B \-\-version
    -Print the version number.
    -.TP
    -.BI \-F dir
    -.TQ
    -.BI \-\-fontdir= dir
    -Prepend directory
    -.IB dir /dev name
    -to the search path for font and device description files;
    -.I name
    -is the name of the device, usually
    -.BR lbp .
    -.TP
    -.B \-h
    -.TQ
    -.B \-\-help
    -Print a short help text.
    -.SH TYPEFACES
    -The driver supports the Dutch, Swiss and Swiss-Narrow scalable typefaces,
    -each one in the Regular, Bold, Italic and Bold-Italic styles.
    -Additionally, the Courier and Elite monospaced typefaces at the sizes 8 and
    -12 points (for Courier) resp. 8 and 10 points (for Elite) are supported,
    -each one in the Regular, Bold and Italic styles.
    -.PP
    -The following chart summarizes the font names you can use to access these
    -fonts:
    -.PP
    -.TS
    -tab(|) allbox center;
    -c c c c c
    -ab c c c c
    -.
    -Typeface | Regular | Bold | Italic | Bold-Italic
    -Dutch | TR | TB | TI | TBI
    -Swiss | HR | HB | HI | HBI
    -Swiss Narrow | HNR | HNB | HNI | HNBI
    -Courier | CR | CB | CI |
    -Elite | ER | EB | EI |
    -.TE
    -.PP
    -.SH PAPER SIZES
    -The paper size can be set in the
    -.B DESC
    -file or with command line options to
    -.BR grolbp .
    -If the paper size is specified both ways, the command line options take
    -precedence over the contents of the
    -.B DESC
    -file (this applies to the page orientation too).
    -.PP
    -See
    -.BR groff_font (1)
    -how to set the paper dimensions in the
    -.B DESC
    -file.
    -.PP
    -To set the paper size in the command line, add
    -.sp 1
    -.in +2m
    -.BI \-p \ paper-size
    -.in -2m
    -.sp 1
    -or
    -.sp 1
    -.in +2m
    -.BI \-\-papersize= paper-size
    -.in -2m
    -.sp 1
    -to the other
    -.B grolbp
    -options, where
    -.I paper-size
    -is in the same format as in the
    -.B DESC
    -file.
    -.PP
    -If no paper size is specified in the
    -.B DESC
    -file or the command line, a default size of A4 is used.
    -.SH PAGE ORIENTATION
    -As with the page size, the orientation of the printed page
    -.RB ( portrait
    -or
    -.BR landscape )
    -can be set in the
    -.B DESC
    -file or with command line options.
    -It is also case insensitive.
    -.PP
    -To set the orientation in the
    -.B DESC
    -file, insert a line with the following content:
    -.sp 1
    -.in +2m
    -.B orientation
    -.RB [ portrait | landscape ]
    -.in -2m
    -.sp 1
    -Only the first valid orientation command in the
    -.B DESC
    -file is used.
    -.PP
    -To set the page orientation with command line options you can use the
    -.B \-o
    -or
    -.B \-\-orientation
    -option with the same parameters
    -.RB ( portrait
    -or
    -.BR landscape )
    -as in the
    -.B DESC
    -file.
    -Or you can use the
    -.B \-l
    -option to force the pages to be printed in landscape.
    -.SH FONT FILE FORMAT
    -In addition to the usual commands described in
    -.BR groff_font (5),
    -.B grolbp
    -provides the command
    -.I lbpname
    -which sets the font name sent to the printer when requesting this font.
    -The syntax of this command is:
    -.sp 1
    -.in +2m
    -.B lbpname
    -.I printer_font_name
    -.in -2m
    -.IP \(bu
    -For bitmapped fonts,
    -.I printer_font_name
    -has the form
    -.sp 1
    -.in +2m
    -.RI N\(la base_fontname \(ra\(la font_style \(ra
    -.in -2m
    -.sp 1
    -.I base_fontname 
    -is the font name as it appears in the printers font listings without the
    -first letter, up to (but not including) the font size.
    -.I font_style
    -can be one of the letters
    -.BR R ,
    -.BR I ,
    -or
    -.BR B ,
    -indicating the font styles Roman, Italic and Bold respectively.
    -.IP
    -For instance, if the printer's 
    -.I font listing A
    -shows font `Nelite12I.ISO_USA', the corresponding entry in the font
    -description file is
    -.sp 1
    -.in +2m
    -.B lbpname NeliteI
    -.in -2m
    -.IP
    -Note that you may need to modify
    -.B grolbp
    -to add support for new bitmapped fonts, since the available font names and
    -font sizes of bitmapped fonts (as documented above) are hard-coded into the
    -program.
    -.IP \(bu
    -For scalable fonts,
    -.I printer_font_name
    -is identical to the font name as it appears in the printer's 
    -.IR "font listing A" .
    -.IP
    -For instance, to select the `Swiss' font in bold style, which appears in
    -the printer's
    -.I font listing A
    -as `Swiss-Bold', the required
    -.B lbpname
    -command line is
    -.sp 1
    -.in +2m
    -.B lbpname Swiss-Bold
    -.in -2m
    -.sp 1
    -.PP
    -The argument of
    -.B lbpname
    -is case sensitive.
    -.SH FILES
    -.TP
    -.B /usr/share/groff/1.19.2/font/devlbp/DESC
    -Device description file.
    -.TP
    -.BI /usr/share/groff/1.19.2/font/devlbp/ F
    -Font description file for font
    -.IR F .
    -.TP
    -.B /usr/share/groff/1.19.2/tmac/lbp.tmac
    -Macros for use with
    -.BR grolbp .
    -.SH SEE ALSO
    -.BR groff (1),
    -.BR troff (1),
    -.BR groff_out (5),
    -.BR groff_font (5),
    -.BR groff_char (7)
    -.\"
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/grolj4.1 b/gen/usr/share/man/man1/grolj4.1
    deleted file mode 100644
    index 649c0a9..0000000
    --- a/gen/usr/share/man/man1/grolj4.1
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -.ig
    -Copyright (C) 1994-2000, 2001, 2002, 2004 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.\" Like TP, but if specified indent is more than half
    -.\" the current line-length - indent, use the default indent.
    -.de Tp
    -.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
    -.el .TP "\\$1"
    -..
    -.TH GROLJ4 1 "14 January 2004" "Groff Version 1.19.2"
    -.SH NAME
    -grolj4 \- groff driver for HP Laserjet 4 family
    -.SH SYNOPSIS
    -.nr a \n(.j
    -.ad l
    -.nr i \n(.i
    -.in +\w'\fBgrolj4 'u
    -.ti \niu
    -.B grolj4
    -.de OP
    -.ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
    -.el .RB "[\ " "\\$1" "\ ]"
    -..
    -.OP \-lv
    -.OP \-d \fR[\fPn\fR]\fP
    -.OP \-c n
    -.OP \-p paper_size
    -.OP \-w n
    -.OP \-F dir
    -.RI "[\ " files\|.\|.\|. "\ ]"
    -.br
    -.ad \na
    -.PP
    -It is possible to have whitespace between a command line option and its
    -parameter.
    -.SH DESCRIPTION
    -.B grolj4
    -is a driver for
    -.B groff
    -that produces output in PCL5 format suitable for an HP Laserjet 4 printer.
    -.LP
    -There is an additional drawing command available:
    -.TP
    -.BI \eD'R\  dh\ dv '
    -Draw a rule (solid black rectangle), with one corner
    -at the current position, and the diagonally opposite corner
    -at the current position
    -.RI +( dh , dv ).
    -Afterwards the current position will be at the opposite corner.  This
    -generates a PCL fill rectangle command, and so will work on
    -printers that do not support HPGL/2 unlike the other
    -.B \eD
    -commands.
    -.SH OPTIONS
    -.TP
    -.BI \-c n
    -Print
    -.I n
    -copies of each page.
    -.TP
    -.B \-l
    -Print the document with a landscape orientation.
    -.TP
    -.BI "\-d [" n ]
    -Use duplex mode
    -.IR n :
    -1\ is long-side binding; 2\ is short-side binding;
    -default is\ 1.
    -.TP
    -.BI \-p size
    -Set the paper size to
    -.IR size ,
    -which must be one of
    -letter, legal, executive, a4, com10, monarch, c5, b5, dl.
    -.TP
    -.B \-v
    -Print the version number.
    -.TP
    -.BI \-w n
    -Set the default line thickness to
    -.I n
    -thousandths of an em.
    -If this option isn't specified, the line thickness defaults to 0.04\~em.
    -.TP
    -.BI \-F dir
    -Prepend directory
    -.IB dir /dev name
    -to the search path for font and device description files;
    -.I name
    -is the name of the device, usually
    -.BR lj4 .
    -.LP
    -The following four commands are available additionally in the
    -font description files:
    -.TP
    -.BI pclweight \ N
    -The integer value
    -.I N
    -must be in the range -7 to +7; default is 0.
    -.TP
    -.BI pclstyle \ N
    -The integer value
    -.I N
    -must be in the range 0 to 32767; default is 0.
    -.TP
    -.BI pclproportional \ N
    -A boolean flag which can be either 0 or 1; default is 0.
    -.TP
    -.BI pcltypeface \ N
    -The integer value
    -.I N
    -must be in the range 0 to 65535; default is 0.
    -.SH FILES
    -.TP
    -.B /usr/share/groff/1.19.2/font/devlj4/DESC
    -Device description file.
    -.TP
    -.BI /usr/share/groff/1.19.2/font/devlj4/ F
    -Font description file for font
    -.IR F .
    -.TP
    -.B /usr/share/groff/1.19.2/tmac/lj4.tmac
    -Macros for use with
    -.BR grolj4 .
    -.SH BUGS
    -Small dots.
    -.SH "SEE ALSO"
    -.BR lj4_font (5),
    -.BR groff (1),
    -.BR troff (1),
    -.BR groff_out (5),
    -.BR groff_font (5),
    -.BR groff_char (7)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/grops.1 b/gen/usr/share/man/man1/grops.1
    deleted file mode 100644
    index 83dd072..0000000
    --- a/gen/usr/share/man/man1/grops.1
    +++ /dev/null
    @@ -1,1170 +0,0 @@
    -.ig
    -Copyright (C) 1989-2000, 2001, 2002, 2003, 2004, 2005
    -  Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.
    -.do nr grops_C \n[.C]
    -.cp 0
    -.
    -.mso www.tmac
    -.
    -.
    -.\" Like TP, but if specified indent is more than half
    -.\" the current line-length - indent, use the default indent.
    -.de Tp
    -.  ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
    -.  el .TP "\\$1"
    -..
    -.
    -.de TQ
    -.  br
    -.  ns
    -.  TP \$1
    -..
    -.
    -.de FT
    -.  if '\\*(.T'ps' .ft \\$1
    -..
    -.
    -.
    -.TH GROPS 1 "21 January 2005" "Groff Version 1.19.2"
    -.
    -.
    -.SH NAME
    -grops \- PostScript driver for groff
    -.
    -.
    -.SH SYNOPSIS
    -.nr a \n(.j
    -.ad l
    -.nr i \n(.i
    -.in +\w'\fBgrops 'u
    -.ti \niu
    -.B grops
    -.
    -.de OP
    -.ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\%\\$2" "\ ]"
    -.el .RB "[\ " "\\$1" "\ ]"
    -..
    -.
    -.OP \-glmv
    -.OP \-b n
    -.OP \-c n
    -.OP \-F dir
    -.OP \-I dir
    -.OP \-p papersize
    -.OP \-P prologue
    -.OP \-w n
    -.RI "[\ " files\|.\|.\|. "\ ]"
    -.br
    -.ad \na
    -.
    -.PP
    -It is possible to have whitespace between a command line option and its
    -parameter.
    -.
    -.
    -.SH DESCRIPTION
    -.B grops
    -translates the output of GNU
    -.B troff
    -to PostScript.
    -.
    -Normally
    -.B grops
    -should be invoked by using the groff command
    -with a
    -.B \-Tps
    -option.
    -.
    -.if 'ps'ps' (Actually, this is the default for groff.)
    -.
    -If no files are given,
    -.B grops
    -will read the standard input.
    -.
    -A filename of
    -.B \-
    -will also cause
    -.B grops
    -to read the standard input.
    -.
    -PostScript output is written to the standard output.
    -.
    -When
    -.B grops
    -is run by
    -.B groff
    -options can be passed to
    -.B grops
    -using the
    -.B groff
    -.B \-P
    -option.
    -.
    -.PP
    -Note that
    -.B grops
    -doesn't produce a valid document structure (conforming to the Document
    -Structuring Convention) if called with multiple file arguments.
    -.
    -To print such concatenated output it is necessary to deactivate DSC
    -handling in the printing program or previewer.
    -.
    -.
    -.SH OPTIONS
    -.TP
    -.BI \-b n
    -Provide workarounds for older printers, broken spoolers, and previewers.
    -.
    -Normally
    -.B grops
    -produces output at PostScript LanguageLevel\~2 that conforms to the
    -Document Structuring Conventions version 3.0.
    -.
    -Some older printers, spoolers, and previewers can't handle such output.
    -.
    -The value of\~\c
    -.I n
    -controls what
    -.B grops
    -does to make its output acceptable to such programs.
    -.
    -A value of\~0 will cause grops not to employ any workarounds.
    -.
    -.IP
    -Add\~1 if no
    -.B %%Begin\%Document\%Setup
    -and
    -.B %%End\%Document\%Setup
    -comments should be generated;
    -this is needed for early versions of TranScript that get confused by
    -anything between the
    -.B %%End\%Prolog
    -comment and the first
    -.B %%Page
    -comment.
    -.
    -.IP
    -Add\~2 if lines in included files beginning with
    -.B %!
    -should be stripped out; this is needed for Sun's pageview previewer.
    -.
    -.IP
    -Add\~4 if
    -.BR %%Page ,
    -.BR %%Trailer
    -and
    -.B %%End\%Prolog
    -comments should be
    -stripped out of included files; this is needed for spoolers that
    -don't understand the
    -.B %%Begin\%Document
    -and
    -.B %%End\%Document
    -comments.
    -.
    -.IP
    -Add\~8 if the first line of the PostScript output should be
    -.B %!PS-Adobe-2.0
    -rather than
    -.BR %!PS-Adobe-3.0 ;
    -this is needed when using Sun's Newsprint with a printer that requires
    -page reversal.
    -.
    -.IP
    -Add\~16 if no media size information should be included in the document
    -(this is, neither use
    -.B %%Document\%Media
    -nor the
    -.B setpagedevice
    -PostScript command).
    -.
    -This was the behaviour of groff version 1.18.1 and earlier; it is needed
    -for older printers which don't understand PostScript LanguageLevel\~2.
    -.
    -It is also necessary if the output is further processed to get an
    -encapsulated PS (EPS) file -- see below.
    -.
    -.IP
    -The default value can be specified by a
    -.
    -.RS
    -.IP
    -.BI broken\  n
    -.
    -.LP
    -command in the DESC file.
    -.
    -Otherwise the default value is\~0.
    -.RE
    -.
    -.TP
    -.BI \-c n
    -Print
    -.I n
    -copies of each page.
    -.
    -.TP
    -.BI \-F dir
    -Prepend directory
    -.IB dir /dev name
    -to the search path for prologue, font, and device description files;
    -.I name
    -is the name of the device, usually
    -.BR ps .
    -.
    -.TP
    -.BI \-g
    -Guess the page length.
    -.
    -This generates PostScript code that guesses the page length.
    -.
    -The guess will be correct only if the imageable area is vertically
    -centered on the page.
    -.
    -This option allows you to generate documents that can be printed
    -both on letter (8.5\(mu11) paper and on A4 paper without change.
    -.
    -.TP
    -.BI \-I dir
    -This option may be used to specify a directory to search for
    -files on the command line and files named in 
    -.B \eX'ps: import'
    -and
    -.B \eX'ps: file'
    -escapes.
    -The current directory is always searched first.
    -This option may be specified more than once;
    -the directories will be searched in the order specified.
    -No directory search is performed for files specified using an absolute path.
    -.
    -.TP
    -.B \-l
    -Print the document in landscape format.
    -.
    -.TP
    -.B \-m
    -Turn manual feed on for the document.
    -.
    -.TP
    -.BI \-p paper-size
    -Set physical dimension of output medium.
    -.
    -This overrides the
    -.BR papersize ,
    -.BR paperlength ,
    -and
    -.B paperwidth
    -commands in the
    -.B DESC
    -file; it accepts the same arguments as the
    -.B papersize
    -command.
    -.
    -See
    -.B groff_font (5)
    -for details.
    -.
    -.TP
    -.BI \-P prologue-file
    -Use the file
    -.I prologue-file
    -(in the font path) as the prologue instead of the default prologue file
    -.BR prologue .
    -.
    -This option overrides the environment variable
    -.SM GROPS_PROLOGUE.
    -.
    -.TP
    -.BI \-w n
    -Lines should be drawn using a thickness of
    -.IR n \~\c
    -thousandths of an em.
    -If this option is not given, the line thickness defaults to 0.04\~em.
    -.
    -.TP
    -.B \-v
    -Print the version number.
    -.
    -.
    -.SH USAGE
    -There are styles called
    -.BR R ,
    -.BR I ,
    -.BR B ,
    -and
    -.B BI
    -mounted at font positions 1 to\~4.
    -.
    -The fonts are grouped into families
    -.BR A ,
    -.BR BM ,
    -.BR C ,
    -.BR H ,
    -.BR HN ,
    -.BR N ,
    -.BR P ,
    -and\~\c
    -.B T
    -having members in each of these styles:
    -.
    -.RS
    -.TP
    -.B AR
    -.FT AR
    -AvantGarde-Book
    -.FT
    -.
    -.TQ
    -.B AI
    -.FT AI
    -AvantGarde-BookOblique
    -.FT
    -.
    -.TQ
    -.B AB
    -.FT AB
    -AvantGarde-Demi
    -.FT
    -.
    -.TQ
    -.B ABI
    -.FT ABI
    -AvantGarde-DemiOblique
    -.FT
    -.
    -.TQ
    -.B BMR
    -.FT BMR
    -Bookman-Light
    -.FT
    -.
    -.TQ
    -.B BMI
    -.FT BMI
    -Bookman-LightItalic
    -.FT
    -.
    -.TQ
    -.B BMB
    -.FT BMB
    -Bookman-Demi
    -.FT
    -.
    -.TQ
    -.B BMBI
    -.FT BMBI
    -Bookman-DemiItalic
    -.FT
    -.
    -.TQ
    -.B CR
    -.FT CR
    -Courier
    -.FT
    -.
    -.TQ
    -.B CI
    -.FT CI
    -Courier-Oblique
    -.FT
    -.
    -.TQ
    -.B CB
    -.FT CB
    -Courier-Bold
    -.FT
    -.
    -.TQ
    -.B CBI
    -.FT CBI
    -Courier-BoldOblique
    -.FT
    -.
    -.TQ
    -.B HR
    -.FT HR
    -Helvetica
    -.FT
    -.
    -.TQ
    -.B HI
    -.FT HI
    -Helvetica-Oblique
    -.FT
    -.
    -.TQ
    -.B HB
    -.FT HB
    -Helvetica-Bold
    -.FT
    -.
    -.TQ
    -.B HBI
    -.FT HBI
    -Helvetica-BoldOblique
    -.FT
    -.
    -.TQ
    -.B HNR
    -.FT HNR
    -Helvetica-Narrow
    -.FT
    -.
    -.TQ
    -.B HNI
    -.FT HNI
    -Helvetica-Narrow-Oblique
    -.FT
    -.
    -.TQ
    -.B HNB
    -.FT HNB
    -Helvetica-Narrow-Bold
    -.FT
    -.
    -.TQ
    -.B HNBI
    -.FT HNBI
    -Helvetica-Narrow-BoldOblique
    -.FT
    -.
    -.TQ
    -.B NR
    -.FT NR
    -NewCenturySchlbk-Roman
    -.FT
    -.
    -.TQ
    -.B NI
    -.FT NI
    -NewCenturySchlbk-Italic
    -.FT
    -.
    -.TQ
    -.B NB
    -.FT NB
    -NewCenturySchlbk-Bold
    -.FT
    -.
    -.TQ
    -.B NBI
    -.FT NBI
    -NewCenturySchlbk-BoldItalic
    -.FT
    -.
    -.TQ
    -.B PR
    -.FT PR
    -Palatino-Roman
    -.FT
    -.
    -.TQ
    -.B PI
    -.FT PI
    -Palatino-Italic
    -.FT
    -.
    -.TQ
    -.B PB
    -.FT PB
    -Palatino-Bold
    -.FT
    -.
    -.TQ
    -.B PBI
    -.FT PBI
    -Palatino-BoldItalic
    -.FT
    -.
    -.TQ
    -.B TR
    -.FT TR
    -Times-Roman
    -.FT
    -.
    -.TQ
    -.B TI
    -.FT TI
    -Times-Italic
    -.FT
    -.
    -.TQ
    -.B TB
    -.FT TB
    -Times-Bold
    -.FT
    -.
    -.TQ
    -.B TBI
    -.FT TBI
    -Times-BoldItalic
    -.FT
    -.RE
    -.
    -.LP
    -There is also the following font which is not a member of a family:
    -.
    -.RS
    -.TP
    -.B ZCMI
    -.FT ZCMI
    -ZapfChancery-MediumItalic
    -.FT
    -.RE
    -.
    -.LP
    -There are also some special fonts called
    -.B S
    -for the PS Symbol font, and
    -.BR SS ,
    -containing slanted lowercase Greek letters taken from PS Symbol.
    -.
    -Zapf Dingbats is available as
    -.BR ZD
    -and a reversed version of ZapfDingbats (with symbols pointing in the opposite
    -direction) is available as
    -.BR ZDR ;
    -most characters in these fonts are unnamed and must be accessed using
    -.BR \[rs]N .
    -.
    -.LP
    -The default color for
    -.B \[rs]m
    -and
    -.B \[rs]M
    -is black; for colors defined in the `rgb' color space,
    -.B setrgbcolor
    -is used, for `cmy' and `cmyk'
    -.BR setcmykcolor ,
    -and for `gray'
    -.BR setgray .
    -Note that
    -.B setcmykcolor
    -is a PostScript LanguageLevel\~2 command and thus not available on some
    -older printers.
    -.
    -.LP
    -.B grops
    -understands various X\~commands produced using the
    -.B \[rs]X
    -escape sequence;
    -.B grops
    -will only interpret commands that begin with a
    -.B ps:
    -tag.
    -.
    -.TP
    -.BI \[rs]X'ps:\ exec\  code '
    -This executes the arbitrary PostScript commands in
    -.IR code .
    -.
    -The PostScript currentpoint will be set to the position of the
    -.B \[rs]X
    -command before executing
    -.IR code .
    -.
    -The origin will be at the top left corner of the page,
    -and y\~coordinates will increase down the page.
    -.
    -A procedure\~\c
    -.B u
    -will be defined that converts groff units
    -to the coordinate system in effect.
    -.
    -For example, 
    -.
    -.RS
    -.IP
    -.B
    -\&.nr x 1i
    -.br
    -.B
    -\[rs]X'ps: exec \[rs]nx u 0 rlineto stroke'
    -.br
    -.RE
    -.
    -.IP
    -will draw a horizontal line one inch long.
    -.
    -.I code
    -may make changes to the graphics state,
    -but any changes will persist only to the
    -end of the page.
    -.
    -A dictionary containing the definitions specified by the
    -.B def
    -and
    -.B mdef
    -will be on top of the dictionary stack.
    -.
    -If your code adds definitions to this dictionary,
    -you should allocate space for them using
    -.BI \[rs]X'ps\ mdef \ n '\fR.
    -.
    -Any definitions will persist only until the end of the page.
    -.
    -If you use the
    -.B \[rs]Y
    -escape sequence with an argument that names a macro,
    -.I code
    -can extend over multiple lines.
    -.
    -For example,
    -.
    -.RS
    -.IP
    -.nf
    -.ft B
    -\&.nr x 1i
    -\&.de y
    -\&ps: exec
    -\&\[rs]nx u 0 rlineto
    -\&stroke
    -\&..
    -\&\[rs]Yy
    -.fi
    -.ft R
    -.
    -.LP
    -is another way to draw a horizontal line one inch long.
    -.RE
    -.
    -.TP
    -.BI \[rs]X'ps:\ file\  name '
    -This is the same as the
    -.B exec
    -command except that the PostScript code is read from file
    -.IR name .
    -.
    -.TP
    -.BI \[rs]X'ps:\ def\  code '
    -Place a PostScript definition contained in
    -.I code
    -in the prologue.
    -.
    -There should be at most one definition per
    -.B \[rs]X
    -command.
    -.
    -Long definitions can be split over several
    -.B \[rs]X
    -commands;
    -all the
    -.I code
    -arguments are simply joined together separated by newlines.
    -.
    -The definitions are placed in a dictionary which is automatically
    -pushed on the dictionary stack when an
    -.B exec
    -command is executed.
    -.
    -If you use the
    -.B \[rs]Y
    -escape sequence with an argument that names a macro,
    -.I code
    -can extend over multiple lines.
    -.
    -.TP
    -.BI \[rs]X'ps:\ mdef\  n\ code  '
    -Like
    -.BR def ,
    -except that
    -.I code
    -may contain up to
    -.IR n \~\c
    -definitions.
    -.
    -.B grops
    -needs to know how many definitions
    -.I code
    -contains
    -so that it can create an appropriately sized PostScript dictionary
    -to contain them.
    -.
    -.TP
    -.BI \[rs]X'ps:\ import\  file\ llx\ lly\ urx\ ury\ width\ \fR[\fP\ height\ \fR]\fP '
    -Import a PostScript graphic from
    -.IR file .
    -.
    -The arguments
    -.IR llx ,
    -.IR lly ,
    -.IR urx ,
    -and
    -.I ury
    -give the bounding box of the graphic in the default PostScript
    -coordinate system; they should all be integers;
    -.I llx
    -and
    -.I lly
    -are the x and y\~coordinates of the lower left
    -corner of the graphic;
    -.I urx
    -and
    -.I ury
    -are the x and y\~coordinates of the upper right corner of the graphic;
    -.I width
    -and
    -.I height
    -are integers that give the desired width and height in groff
    -units of the graphic.
    -.
    -The graphic will be scaled so that it has this width and height
    -and translated so that the lower left corner of the graphic is
    -located at the position associated with
    -.B \[rs]X
    -command.
    -.
    -If the height argument is omitted it will be scaled uniformly in the
    -x and y\~directions so that it has the specified width.
    -.
    -Note that the contents of the
    -.B \[rs]X
    -command are not interpreted by
    -.BR troff ;
    -so vertical space for the graphic is not automatically added,
    -and the
    -.I width
    -and
    -.I height
    -arguments are not allowed to have attached scaling indicators.
    -.
    -If the PostScript file complies with the Adobe Document Structuring
    -Conventions and contains a
    -.B %%Bounding\%Box
    -comment, then the bounding box can be automatically
    -extracted from within groff by using the
    -.B psbb
    -request.
    -.
    -.IP
    -See
    -.BR groff_tmac (5)
    -for a description of the
    -.B PSPIC
    -macro which provides a convenient high-level interface for inclusion of
    -PostScript graphics.
    -.
    -.TP
    -.B \[rs]X'ps:\ invis'
    -.TQ
    -.B \[rs]X'ps:\ endinvis'
    -No output will be generated for text and drawing commands
    -that are bracketed with these
    -.B \[rs]X
    -commands.
    -.
    -These commands are intended for use when output from
    -.B troff
    -will be previewed before being processed with
    -.BR grops ;
    -if the previewer is unable to display certain characters
    -or other constructs, then other substitute characters or constructs
    -can be used for previewing by bracketing them with these
    -.B \[rs]X
    -commands.
    -.
    -.RS
    -.LP
    -For example,
    -.B \%gxditview
    -is not able to display a proper
    -.B \[rs](em
    -character because the standard X11 fonts do not provide it;
    -this problem can be overcome by executing the following
    -request
    -.
    -.IP
    -.ft B
    -.nf
    -\&.char \[rs](em \[rs]X'ps: invis'\[rs]
    -\[rs]Z'\[rs]v'-.25m'\[rs]h'.05m'\[rs]D'l .9m 0'\[rs]h'.05m''\[rs]
    -\[rs]X'ps: endinvis'\[rs](em
    -.ft
    -.fi
    -.
    -.LP
    -In this case,
    -.B \%gxditview
    -will be unable to display the
    -.B \[rs](em
    -character and will draw the line,
    -whereas
    -.B grops
    -will print the
    -.B \[rs](em
    -character
    -and ignore the line (this code is already in file
    -.B Xps.tmac
    -which will be loaded if a document intended for
    -.B grops
    -is previewed with
    -.BR \%gxditview ).
    -.RE
    -.
    -.LP
    -The input to
    -.B grops
    -must be in the format output by
    -.BR troff (1).
    -.
    -This is described in
    -.BR groff_out (5).
    -.
    -.LP
    -In addition, the device and font description files for the device used
    -must meet certain requirements.
    -.
    -The device and font description files supplied for
    -.B ps
    -device meet all these requirements.
    -.
    -.BR afmtodit (1)
    -can be used to create font files from AFM files.
    -.
    -The resolution must be an integer multiple of\~72 times the
    -.BR sizescale .
    -.
    -The
    -.B ps
    -device uses a resolution of 72000 and a sizescale of 1000.
    -.
    -.LP
    -The device description file must contain a valid paper size; see
    -.BR groff_font (5)
    -for more information.
    -.
    -.LP
    -Each font description file must contain a command
    -.IP
    -.BI internalname\  psname
    -.LP
    -which says that the PostScript name of the font is
    -.IR psname .
    -.
    -It may also contain a command
    -.IP
    -.BI encoding\  enc_file
    -.LP
    -which says that
    -the PostScript font should be reencoded using the encoding described in
    -.IR enc_file ;
    -this file should consist of a sequence of lines of the form:
    -.IP
    -.I
    -pschar code
    -.LP
    -where
    -.I pschar
    -is the PostScript name of the character,
    -and
    -.I code
    -is its position in the encoding expressed as a decimal integer; valid
    -values are in the range 0 to\~255.
    -.
    -Lines starting with
    -.B #
    -and blank lines are ignored.
    -.
    -The code for each character given in the font file must correspond
    -to the code for the character in encoding file, or to the code in the default
    -encoding for the font if the PostScript font is not to be reencoded.
    -.
    -This code can be used with the
    -.B \[rs]N
    -escape sequence in
    -.B troff
    -to select the character,
    -even if the character does not have a groff name.
    -.
    -Every character in the font file must exist in the PostScript font, and 
    -the widths given in the font file must match the widths used
    -in the PostScript font.
    -.
    -.B grops
    -will assume that a character with a groff name of
    -.B space
    -is blank (makes no marks on the page);
    -it can make use of such a character to generate more efficient and
    -compact PostScript output.
    -.
    -.LP
    -Note that
    -.B grops
    -is able to display all glyphs in a PostScript font, not only 256.
    -.I enc_file
    -(or the default encoding if no encoding file specified) just defines the
    -order of glyphs for the first 256 characters; all other glyphs are
    -accessed with additional encoding vectors which
    -.B grops
    -produces on the fly.
    -.
    -.LP
    -.B grops
    -can automatically include the downloadable fonts necessary
    -to print the document.
    -Such fonts must be in PFA format.
    -Use
    -.BR pfbtops (1)
    -to convert a Type\~1 font in PFB format.
    -Any downloadable fonts which should, when required, be included by
    -.B grops
    -must be listed in the file
    -.BR /usr/share/groff/1.19.2/font/devps/download ;
    -this should consist of lines of the form
    -.
    -.IP
    -.I
    -font filename
    -.
    -.LP
    -where
    -.I font
    -is the PostScript name of the font,
    -and
    -.I filename
    -is the name of the file containing the font;
    -lines beginning with
    -.B #
    -and blank lines are ignored;
    -fields may be separated by tabs or spaces;
    -.I filename
    -will be searched for using the same mechanism that is used
    -for groff font metric files.
    -.
    -The
    -.B download
    -file itself will also be searched for using this mechanism;
    -currently, only the first found file in the font path is used.
    -.
    -.LP
    -If the file containing a downloadable font or imported document
    -conforms to the Adobe Document Structuring Conventions,
    -then
    -.B grops
    -will interpret any comments in the files sufficiently to ensure that its
    -own output is conforming.
    -.
    -It will also supply any needed font resources that are listed in the
    -.B download
    -file
    -as well as any needed file resources.
    -.
    -It is also able to handle inter-resource dependencies.
    -.
    -For example, suppose that you have a downloadable font called Garamond,
    -and also a downloadable font called Garamond-Outline
    -which depends on Garamond
    -(typically it would be defined to copy Garamond's font dictionary,
    -and change the PaintType),
    -then it is necessary for Garamond to appear before Garamond-Outline
    -in the PostScript document.
    -.
    -.B grops
    -will handle this automatically
    -provided that the downloadable font file for Garamond-Outline
    -indicates its dependence on Garamond by means of
    -the Document Structuring Conventions,
    -for example by beginning with the following lines
    -.
    -.IP
    -.B
    -%!PS-Adobe-3.0 Resource-Font
    -.br
    -.B
    -%%DocumentNeededResources: font Garamond
    -.br
    -.B
    -%%EndComments
    -.br
    -.B
    -%%IncludeResource: font Garamond
    -.
    -.LP
    -In this case both Garamond and Garamond-Outline would need to be listed
    -in the
    -.B download
    -file.
    -.
    -A downloadable font should not include its own name in a
    -.B %%Document\%Supplied\%Resources
    -comment.
    -.
    -.LP
    -.B grops
    -will not interpret 
    -.B %%Document\%Fonts
    -comments.
    -.
    -The
    -.BR %%Document\%Needed\%Resources ,
    -.BR %%Document\%Supplied\%Resources ,
    -.BR %%Include\%Resource ,
    -.BR %%Begin\%Resource ,
    -and
    -.BR %%End\%Resource
    -comments
    -(or possibly the old
    -.BR %%Document\%Needed\%Fonts ,
    -.BR %%Document\%Supplied\%Fonts ,
    -.BR %%Include\%Font ,
    -.BR %%Begin\%Font ,
    -and
    -.BR %%End\%Font
    -comments)
    -should be used.
    -.
    -.
    -.SS Encapsulated PostScript
    -.B grops
    -itself doesn't emit bounding box information.
    -.
    -With the help of GhostScript the following commands will produce an
    -encapsulated PS file
    -.B foo.eps
    -from input file
    -.BR foo :
    -.
    -.IP
    -.B
    -groff -P-b16 foo > foo.ps
    -.br
    -.B
    -gs -dNOPAUSE -sDEVICE=bbox -- foo.ps 2> foo.bbox
    -.br
    -.B
    -cat foo.ps | sed \-e '/%%Orientation/rfoo.bbx' > foo.eps
    -.br
    -.B
    -rm foo.bbx
    -.br
    -.
    -.
    -.
    -.SS TrueType fonts
    -TrueType fonts can be used with 
    -.B grops 
    -if converted first to 
    -.B "Type 42"
    -format, an especial PostScript wrapper equivalent to the
    -PFA format mentioned in
    -.BR pfbtops (1).
    -There are several different methods to generate a type42 
    -wrapper and most of them involve the use of a PostScript
    -interpreter such as Ghostscript \(em see
    -.BR gs (1).
    -Yet, the easiest method involves the use of the application 
    -.BR ttftot42 .
    -This program uses
    -.BR freetype (3)
    -(version 1.3.1) to generate type42
    -font wrappers and well-formed AFM files that can be fed to
    -the
    -.BR afmtodit (1)
    -script to create appropriate metric files.
    -The resulting font wrappers should be added to the
    -.B download
    -file.
    -.B ttftot42
    -source code can be downloaded from
    -.URL ftp://\:www.giga.or.at/\:pub/\:nih/\:ttftot42/ \
    -     ftp://\:www.giga.or.at/\:pub/\:nih/\:ttftot42/ .
    -.
    -.
    -.SH ENVIRONMENT
    -.TP
    -.SM
    -.B GROPS_PROLOGUE
    -If this is set to
    -.IR foo ,
    -then
    -.B grops
    -will use the file
    -.I foo
    -(in the font path) instead of the default prologue file
    -.BR prologue .
    -.
    -The option
    -.B \-P
    -overrides this environment variable.
    -.
    -.
    -.SH FILES
    -.Tp \w'\fB/usr/share/groff/1.19.2/font/devps/download'u+2n
    -.B /usr/share/groff/1.19.2/font/devps/DESC
    -Device description file.
    -.
    -.TP
    -.BI /usr/share/groff/1.19.2/font/devps/ F
    -Font description file for font
    -.IR F .
    -.
    -.TP
    -.B /usr/share/groff/1.19.2/font/devps/download
    -List of downloadable fonts.
    -.
    -.TP
    -.B /usr/share/groff/1.19.2/font/devps/text.enc
    -Encoding used for text fonts.
    -.
    -.TP
    -.B /usr/share/groff/1.19.2/tmac/ps.tmac
    -Macros for use with
    -.BR grops ;
    -automatically loaded by
    -.BR troffrc
    -.
    -.TP
    -.B /usr/share/groff/1.19.2/tmac/pspic.tmac
    -Definition of
    -.B PSPIC
    -macro,
    -automatically loaded by
    -.BR ps.tmac .
    -.
    -.TP
    -.B /usr/share/groff/1.19.2/tmac/psold.tmac
    -Macros to disable use of characters not present in older
    -PostScript printers (e.g. `eth' or `thorn').
    -.
    -.TP
    -.BI /tmp/grops XXXXXX
    -Temporary file.
    -.
    -.
    -.SH "SEE ALSO"
    -.BR afmtodit (1),
    -.BR groff (1),
    -.BR troff (1),
    -.BR pfbtops (1),
    -.BR groff_out (5),
    -.BR groff_font (5),
    -.BR groff_char (7),
    -.BR groff_tmac (5)
    -.
    -.PP
    -.URL "http://\:partners.adobe.com/\:public/\:developer/\:en/\:ps/\:5001.DSC_Spec.pdf" \
    -     "PostScript Language Document Structuring Conventions Specification"
    -.
    -.cp \n[grops_C]
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/grotty.1 b/gen/usr/share/man/man1/grotty.1
    deleted file mode 100644
    index 5618624..0000000
    --- a/gen/usr/share/man/man1/grotty.1
    +++ /dev/null
    @@ -1,423 +0,0 @@
    -.ig
    -Copyright (C) 1989-2000, 2001, 2002, 2003 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.
    -.do nr grotty_C \n[.C]
    -.cp 0
    -.
    -.TH GROTTY 1 "18 July 2003" "Groff Version 1.19.2"
    -.SH NAME
    -grotty \- groff driver for typewriter-like devices
    -.
    -.
    -.SH SYNOPSIS
    -.B grotty
    -[
    -.B \-bBcdfhioruUv
    -] [
    -.BI \-F dir
    -] [
    -.IR files \|.\|.\|.\&
    -]
    -.PP
    -It is possible to have whitespace between the
    -.B \-F
    -option and its parameter.
    -.
    -.
    -.SH DESCRIPTION
    -.B grotty
    -translates the output of GNU
    -.B troff
    -into a form suitable for typewriter-like devices.
    -Normally
    -.B grotty
    -should be invoked by using the
    -.B groff
    -command
    -with a
    -.BR \-Tascii ,
    -.B \-Tlatin1
    -or
    -.B \-Tutf8
    -option on ASCII based systems, and with
    -.B \-Tcp1047
    -and
    -.B \-Tutf8
    -on EBCDIC based hosts.
    -If no files are given,
    -.B grotty
    -will read the standard input.
    -A filename of
    -.B \-
    -will also cause
    -.B grotty
    -to read the standard input.
    -Output is written to the standard output.
    -.LP
    -By default,
    -.B grotty
    -emits SGR escape sequences (from ISO 6429, also called ANSI color escapes)
    -to change text attributes (bold, italic, colors).
    -This makes it possible to have eight different \M[green]background\M[]
    -and \m[red]foreground\m[] colors; additionally, bold and italic
    -attributes can be used \f[BI]at the same time\f[] (by using the BI font).
    -.LP
    -The following colors are defined in
    -.BR tty.tmac :
    -black, white, red, green, blue, yellow, magenta, cyan.
    -Unknown colors are mapped to the default color (which is dependent on the
    -settings of the terminal; in most cases, this is black for the foreground
    -and white for the background).
    -.LP
    -Use the
    -.B \-c
    -switch to revert to the old behaviour, printing a bold character
    -.I c
    -with the sequence
    -.RI ` c
    -.SM BACKSPACE
    -.IR c '
    -and an italic character
    -.I c
    -by the sequence
    -.RB ` _
    -.SM BACKSPACE
    -.IR c '.
    -At the same time, color output is disabled.
    -The same effect can be achieved by setting either the
    -.B GROFF_NO_SGR
    -environment variable or using the `sgr' X command (see below).
    -.LP
    -For SGR support, it is necessary to use the
    -.B \-R
    -option of
    -.BR less (1)
    -to disable the interpretation of
    -.BR grotty 's
    -old output format.
    -Consequently, all programs which use
    -.B less
    -as the pager program have to pass this option to it.
    -For
    -.BR man (1)
    -in particular, either add
    -.B \-R
    -to the
    -.B $PAGER
    -environment variable, e.g.\&
    -.RS
    -.LP
    -.B PAGER="/usr/bin/less -R"
    -.br
    -.B export PAGER
    -.RE
    -.LP
    -or use the
    -.B \-P
    -option of
    -.B man
    -to set the pager executable and its options, or modify the configuration
    -file of
    -.B man
    -in a similar fashion.
    -.LP
    -.BR grotty 's
    -old output format can be displayed on a terminal
    -by piping through
    -.BR ul (1).
    -Pagers such as
    -.BR more (1)
    -or
    -.BR less (1)
    -are also able to display these sequences.
    -Use either
    -.B \-B
    -or
    -.B \-U
    -when piping into
    -.BR less (1);
    -use
    -.B \-b
    -when piping into
    -.BR more (1).
    -There is no need to filter the output through
    -.BR col (1)
    -since
    -.B grotty
    -never outputs reverse line feeds.
    -.LP
    -The font description file may contain a command
    -.IP
    -.BI internalname\  n
    -.LP
    -where
    -.I n
    -is a decimal integer.
    -If the 01 bit in
    -.I n
    -is set,
    -then the font will be treated as an italic font;
    -if the 02 bit is set,
    -then it will be treated as a bold font.
    -The code field in the font description field gives the
    -code which will be used to output the character.
    -This code can also be used in the
    -.B \[rs]N
    -escape sequence in
    -.BR troff .
    -.
    -.
    -.SH OPTIONS
    -.TP
    -.B \-b
    -Suppress the use of overstriking for bold characters.
    -Ignored if
    -.B \-c
    -isn't used.
    -.
    -.TP
    -.B \-B
    -Use only overstriking for bold-italic characters.
    -Ignored if
    -.B \-c
    -isn't used.
    -.
    -.TP
    -.B \-c
    -Use
    -.BR grotty 's
    -old output format (see above).
    -This also disables color output.
    -.
    -.TP
    -.B \-d
    -Ignore all
    -.B \[rs]D
    -commands.
    -Without this
    -.B grotty
    -will render
    -.B \[rs]D'l\|.\|.\|.\&'
    -commands that have at least one zero argument
    -(and so are either horizontal or vertical)
    -using
    -.BR \- ,
    -.BR | ,
    -and
    -.B +
    -characters.
    -.
    -.TP
    -.B \-f
    -Use form feeds in the output.
    -A form feed will be output at the end of each page that has no output
    -on its last line.
    -.
    -.TP
    -.BI \-F dir
    -Prepend directory
    -.IB dir /dev name
    -to the search path for font and device description files;
    -.I name
    -is the name of the device, usually
    -.BR ascii ,
    -.BR latin1 ,
    -.BR utf8 ,
    -or
    -.BR cp1047 .
    -.TP
    -.B \-h
    -Use horizontal tabs in the output.
    -Tabs are assumed to be set every 8 columns.
    -.
    -.TP
    -.B \-i
    -Use escape sequences to set the italic text attribute instead of the
    -underline attribute for italic fonts (`I' and `BI').
    -Note that most terminals (including xterm) don't support this.
    -Ignored if
    -.B \-c
    -is active.
    -.
    -.TP
    -.B \-o
    -Suppress overstriking (other than for bold or underlined characters in
    -case the old output format has been activated with
    -.BR \-c ).
    -.
    -.TP
    -.B \-r
    -Use escape sequences to set the reverse text attribute instead of the
    -underline attribute for italic fonts (`I' and `BI').
    -Ignored if
    -.B \-c
    -is active.
    -.
    -.TP
    -.B \-u
    -Suppress the use of underlining for italic characters.
    -Ignored if
    -.B \-c
    -isn't used.
    -.
    -.TP
    -.B \-U
    -Use only underlining for bold-italic characters.
    -Ignored if
    -.B \-c
    -isn't used.
    -.
    -.TP
    -.B \-v
    -Print the version number.
    -.
    -.
    -.SH USAGE
    -.B grotty
    -understands a single X command produced using the
    -.B \[rs]X
    -escape sequence.
    -.TP
    -.BI \[rs]X'tty:\ sgr\  n '
    -If
    -.I n
    -is non-zero or missing, enable SGR output (this is the default), otherwise
    -use the old drawing scheme for bold and underline.
    -.
    -.
    -.SH ENVIRONMENT
    -.TP
    -.B GROFF_NO_SGR
    -If set, the old drawing scheme for bold and underline (using the
    -backspace character) is active.
    -Colors are disabled.
    -.
    -.
    -.SH FILES
    -.TP
    -.B /usr/share/groff/1.19.2/font/devascii/DESC
    -Device description file for
    -.B ascii
    -device.
    -.
    -.TP
    -.BI /usr/share/groff/1.19.2/font/devascii/ F
    -Font description file for font
    -.I F
    -of
    -.B ascii
    -device.
    -.
    -.TP
    -.B /usr/share/groff/1.19.2/font/devlatin1/DESC
    -Device description file for
    -.B latin1
    -device.
    -.
    -.TP
    -.BI /usr/share/groff/1.19.2/font/devlatin1/ F
    -Font description file for font
    -.I F
    -of
    -.B latin1
    -device.
    -.
    -.TP
    -.B /usr/share/groff/1.19.2/font/devutf8/DESC
    -Device description file for
    -.B utf8
    -device.
    -.
    -.TP
    -.BI /usr/share/groff/1.19.2/font/devutf8/ F
    -Font description file for font
    -.I F
    -of
    -.B utf8
    -device.
    -.
    -.TP
    -.B /usr/share/groff/1.19.2/font/devcp1047/DESC
    -Device description file for
    -.B cp1047
    -device.
    -.
    -.TP
    -.BI /usr/share/groff/1.19.2/font/devcp1047/ F
    -Font description file for font
    -.I F
    -of
    -.B cp1047
    -device.
    -.
    -.TP
    -.B /usr/share/groff/1.19.2/tmac/tty.tmac
    -Macros for use with
    -.BR grotty .
    -.
    -.TP
    -.B /usr/share/groff/1.19.2/tmac/tty-char.tmac
    -Additional klugdey character definitions for use with
    -.BR grotty .
    -.LP
    -Note that on EBCDIC hosts, only files for the
    -.B cp1047
    -device will be installed.
    -.
    -.
    -.SH BUGS
    -.LP
    -.B grotty
    -is intended only for simple documents.
    -.LP
    -There is no support for fractional horizontal or vertical motions.
    -.LP
    -There is no support for
    -.B \[rs]D
    -commands
    -other than horizontal and vertical lines.
    -.LP
    -Characters above the first line (ie with a vertical position of\~0)
    -cannot be printed.
    -.LP
    -Color handling is different compared to
    -.BR grops (1).
    -.B \[rs]M
    -doesn't set the fill color for closed graphic objects (which
    -.B grotty
    -doesn't support anyway) but changes the background color of the character
    -cell, affecting all subsequent operations.
    -.
    -.
    -.SH "SEE ALSO"
    -.BR groff (1),
    -.BR troff (1),
    -.BR groff_out (5),
    -.BR groff_font (5),
    -.BR groff_char (7),
    -.BR ul (1),
    -.BR more (1),
    -.BR man (1),
    -.BR less (1)
    -.
    -.cp \n[grotty_C]
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/hpftodit.1 b/gen/usr/share/man/man1/hpftodit.1
    deleted file mode 100644
    index cde316d..0000000
    --- a/gen/usr/share/man/man1/hpftodit.1
    +++ /dev/null
    @@ -1,311 +0,0 @@
    -.tr ~
    -.ig
    -Copyright (C) 1994-2000, 2001, 2003, 2004 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.\" Like TP, but if specified indent is more than half
    -.\" the current line-length - indent, use the default indent.
    -.de Tp
    -.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
    -.el .TP "\\$1"
    -..
    -.de CW
    -.ie \\n(.$>2 \&\\$1\f(CR\\$2\fP\\$3
    -.el \&\f(CR\\$1\fP\\$2
    -..
    -.tr ~
    -.TH HPFTODIT 1 "14 January 2004" "Groff Version 1.19.2"
    -.\" --------------------------------------------------------------------------
    -.SH NAME
    -.\" --------------------------------------------------------------------------
    -hpftodit \- create font description files for use with groff \-Tlj4
    -.\" --------------------------------------------------------------------------
    -.SH SYNOPSIS
    -.\" --------------------------------------------------------------------------
    -.B hpftodit
    -[
    -.B \-adqsv
    -]
    -[
    -.BI \-i n
    -]
    -.I tfm_file
    -.I map_file
    -.I font
    -.PP
    -It is possible to have whitespace between the
    -.B \-i
    -option and its parameter.
    -.\" --------------------------------------------------------------------------
    -.SH DESCRIPTION
    -.\" --------------------------------------------------------------------------
    -.B hpftodit
    -creates a font file for use with a Hewlett-Packard LaserJet~4\(enseries
    -(or newer) printer with
    -.BR "groff \-Tlj4" ,
    -using data from an HP tagged font metric (TFM) file.
    -.I tfm_file
    -is the name of the TFM file for the font; Intellifont and
    -TrueType TFM files are supported, but symbol set TFM files are not.
    -.I map_file
    -is a file giving the groff names for characters in the font; this file
    -should consist of a sequence of lines of the form:
    -.IP
    -.I
    -m u c1 c2 \fR.\|.\|. [ 
    -.CW #
    -.I comment
    -]
    -.LP
    -where
    -.I m
    -is a decimal integer giving the MSL number of the character,
    -.I u
    -is a hexadecimal integer giving the Unicode value of the character,
    -and
    -.IR c1 ,
    -.IR c2 ", .\|.\|."
    -are the groff names of the character.
    -The values can be separated by any whitespace; the Unicode value must
    -use uppercase digits A\^\(en\^F, and must be without a leading
    -.CW ` 0x ',
    -.CW ` u ',
    -or
    -.CW ` U+ '.
    -Unicode values corresponding to composite glyphs are decomposed; e.g.,
    -.CW ` u00C0 '
    -becomes
    -.CW ` u0041_0300 '.
    -The name for a glyph without a groff name may be given as
    -.CW u \fIXXXX\fP
    -if the glyph corresponds to a Unicode value, or as an unnamed glyph
    -.CW ` --- '.
    -If the given Unicode value is in the Private Use Area
    -(0xE000\^\(en\^0xF8FF), the glyph is included as an unnamed glyph.
    -Refer to
    -.BR groff_diff (1)
    -for additional information about unnamed glyphs and how to access them.
    -.LP
    -Blank lines and lines beginning with
    -.CW ` # '
    -are ignored.
    -A
    -.CW ` # '
    -following one or more groff names begins a comment.
    -Because
    -.CW ` # '
    -is a valid groff name, it must appear first in a list of
    -groff names if a comment is included, e.g.,
    -.IP
    -.CW "3   0023   #   # number sign"
    -.LP
    -or
    -.IP
    -.CW "3   0023   # sh   # number sign"
    -.LP
    -rather than
    -.IP
    -.CW "3   0023   sh #   # number sign"
    -.LP
    -which will treat the first
    -.CW ` # '
    -as the beginning of the comment.
    -.LP
    -.I font
    -is the name of the groff font file.
    -The groff font file is written to
    -.IR font ;
    -if
    -.I font
    -is specified as
    -.CW ` - ',
    -the output is written to the standard output.
    -.LP
    -The
    -.B \-s
    -option should be given if the font is special
    -(a font is
    -.I special
    -if
    -.B troff
    -should search it whenever
    -a character is not found in the current font).
    -If the font is special,
    -it should be listed in the
    -.B fonts
    -command in the DESC file;
    -if it is not special, there is no need to list it, since
    -.B troff
    -can automatically mount it when it's first used.
    -.LP
    -If the
    -.B \-i
    -option is used,
    -.B hpftodit
    -automatically will generate an italic correction,
    -a left italic correction and a subscript correction
    -for each character
    -(the significance of these parameters is explained in
    -.BR groff_font (5)).
    -.\" --------------------------------------------------------------------------
    -.SH OPTIONS
    -.\" --------------------------------------------------------------------------
    -.TP
    -.B \-a
    -Include characters in the TFM file that are not included in the map
    -file.
    -A glyph with corresponding Unicode value is given the name
    -.RI u XXXX ;
    -a glyph without a Unicode value is included as an unnamed glyph
    -\&`\-\^\-\^\-'.
    -A glyph with a Unicode value in the Private Use Area
    -(0xE000\^\(en\^0xF8FF) also is included as an unnamed glyph.
    -.IP
    -This option provides a simple means of adding Unicode-named and unnamed
    -glyphs to a font without including them in the map file, but it affords
    -little control over which glyphs are placed in a regular font and which
    -are placed in a special font.
    -The presence or absence of the
    -.B \-s
    -option has some effect on which glyphs are included: without the
    -.B \-s
    -option, only the \(lqtext\(rq symbol sets are searched for matching
    -glyphs; with the
    -.B \-s
    -option, only the \(lqmathematical\(rq symbol sets
    -are searched.
    -Nonetheless, restricting the symbol sets searched isn't very
    -selective\(emmany glyphs are placed in both regular and special fonts.
    -Normally, the
    -.B \-a
    -option should be used only as a last resort.
    -.\" --------------------------------------------------------------------------
    -.TP
    -.B \-d
    -Dump information about the TFM file to the standard output; this option
    -can be useful for ensuring that a TFM file is a proper match for a font,
    -and that the contents of the TFM file are suitable.
    -The information includes the values of important TFM tags, and a listing
    -(by MSL number for Intellifont TFM files or by Unicode value for
    -TrueType TFM files) of the glyphs included in the TFM file.
    -The unit of measure `DU' for some tags indicates design units; there are
    -8782 design units per em for Intellifont fonts, and 2048 design units
    -per em for TrueType fonts.
    -Note that the accessibility of a glyph depends on its inclusion in a
    -symbol set; some TFM files list many glyphs but only a few symbol sets.
    -.IP
    -The glyph listing includes the glyph index within the TFM file, the MSL
    -or Unicode value, and the symbol set and character code that will be
    -used to print the glyph.
    -If
    -.I map_file
    -is given,
    -groff names are given for matching glyphs.
    -If only the glyph index and MSL or Unicode value are given, the glyph
    -does not appear in any supported symbol set and cannot be printed.
    -.IP
    -With the
    -.B \-d
    -option,
    -.I map_file
    -is optional, and
    -.I font
    -is ignored if given.
    -.\" --------------------------------------------------------------------------
    -.TP
    -.B \-q
    -Suppress warnings about characters in the map file that were not found
    -in the TFM file.
    -Warnings never are given for unnamed glyphs or by glyphs named by their
    -Unicode values.
    -This option is useful when sending the output of
    -.B hpftodit
    -to the standard output.
    -.\" --------------------------------------------------------------------------
    -.TP
    -.B \-v
    -Print the
    -.B hpftodit
    -version number.
    -.\" --------------------------------------------------------------------------
    -.TP
    -.B \-s
    -The font is special.
    -This option adds the
    -.B special
    -command to the font file, and affects the order in which HP symbol sets
    -are searched for each glyph.
    -Without the
    -.B \-s
    -option, the \(lqtext\(rq sets are searched before
    -the \(lqmathematical\(rq symbol sets.
    -With the
    -.B \-s
    -option, the search order is reversed.
    -.\" --------------------------------------------------------------------------
    -.TP
    -.BI \-i n
    -Generate an italic correction for each character so that the character's
    -width plus the character's italic correction is equal to
    -.I n
    -thousandths of an em plus the amount by which the right edge of the
    -character's bounding is to the right of the character's origin.
    -If this would result in a negative italic correction, use a zero italic
    -correction instead.
    -.IP
    -Also generate a subscript correction equal to the 
    -product of the tangent of the slant of the font and
    -four fifths of the x-height of the font.
    -If this would result in a subscript correction greater than the italic
    -correction, use a subscript correction equal to the italic correction
    -instead.
    -.IP
    -Also generate a left italic correction for each character
    -equal to
    -.I n
    -thousandths of an em plus the amount by which the left edge of the
    -character's bounding box is to the left of the character's origin.
    -The left italic correction may be negative.
    -.IP
    -This option normally is needed only with italic or oblique fonts;
    -a value of 50 (0.05 em) usually is a reasonable choice.
    -.\" --------------------------------------------------------------------------
    -.SH FILES
    -.\" --------------------------------------------------------------------------
    -.ad 0
    -.TP \w'\fB/usr/share/groff/1.19.2/font/devlj4/generate/\fP\fI*\fP.map'u+2n
    -.B /usr/share/groff/1.19.2/font/devlj4/DESC
    -Device description file.
    -.TP
    -.BI /usr/share/groff/1.19.2/font/devlj4/ F
    -Font description file for font
    -.IR F .
    -.TP
    -.BI /usr/share/groff/1.19.2/font/devlj4/generate/ * .map
    -Symbol mapping files
    -.\" --------------------------------------------------------------------------
    -.SH "SEE ALSO"
    -.\" --------------------------------------------------------------------------
    -.BR groff (1),
    -.BR groff_diff (1),
    -.BR grolj4 (1),
    -.BR groff_font (5),
    -.BR lj4_font (5)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/indxbib.1 b/gen/usr/share/man/man1/indxbib.1
    deleted file mode 100644
    index 6f64c9c..0000000
    --- a/gen/usr/share/man/man1/indxbib.1
    +++ /dev/null
    @@ -1,211 +0,0 @@
    -.ig
    -Copyright (C) 1989-2000, 2001 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.TH INDXBIB 1 "27 June 2001" "Groff Version 1.19.2"
    -.SH NAME
    -indxbib \- make inverted index for bibliographic databases
    -.SH SYNOPSIS
    -.nr a \n(.j
    -.ad l
    -.nr i \n(.i
    -.in +\w'\fBindxbib 'u
    -.ti \niu
    -.B indxbib
    -.de OP
    -.ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
    -.el .RB "[\ " "\\$1" "\ ]"
    -..
    -.OP \-vw
    -.OP \-c file
    -.OP \-d dir
    -.OP \-f file
    -.OP \-h n
    -.OP \-i string
    -.OP \-k n
    -.OP \-l n
    -.OP \-n n
    -.OP \-o file
    -.OP \-t n
    -.RI [\  filename \|.\|.\|.\ ]
    -.ad \na
    -.PP
    -It is possible to have whitespace between a command line option and its
    -parameter.
    -.SH DESCRIPTION
    -.B indxbib
    -makes an inverted index for the bibliographic databases in
    -.IR filename \|.\|.\|.
    -for use with
    -.BR refer (1),
    -.BR lookbib (1),
    -and
    -.BR lkbib (1).
    -The index will be named
    -.IB filename .i\fR;
    -the index is written to a temporary file which is then renamed to this.
    -If no filenames are given on the command line because the
    -.B \-f
    -option has been used, and no
    -.B \-o
    -option is given, the index will be named
    -.BR Ind.i .
    -.LP
    -Bibliographic databases are divided into records by blank lines.
    -Within a record, each fields starts with a
    -.B %
    -character at the beginning of a line.
    -Fields have a one letter name which follows the
    -.B %
    -character.
    -.LP
    -The values set by the
    -.BR \-c ,
    -.BR \-n ,
    -.BR \-l
    -and
    -.B \-t
    -options are stored in the index;
    -when the index is searched, keys will be discarded and truncated in a
    -manner appropriate to these options;
    -the original keys will be used for verifying that any record
    -found using the index actually contains the keys.
    -This means that a user of an index need not know whether these
    -options were used in the creation of the index,
    -provided that not all the keys to be searched for
    -would have been discarded during indexing
    -and that the user supplies at least the part of each key
    -that would have remained after being truncated during indexing.
    -The value set by the
    -.B \-i
    -option is also stored in the index
    -and will be used in verifying records found using the index.
    -.SH OPTIONS
    -.TP
    -.B \-v
    -Print the version number.
    -.TP
    -.B \-w
    -Index whole files.
    -Each file is a separate record.
    -.TP
    -.BI \-c file
    -Read the list of common words from
    -.I file
    -instead of
    -.BR /usr/share/groff/1.19.2/eign .
    -.TP
    -.BI \-d dir
    -Use
    -.I dir
    -as the pathname of the current working directory to store in the index,
    -instead of the path printed by
    -.BR pwd (1).
    -Usually
    -.I dir
    -will be a symbolic link that points to the directory printed by
    -.BR pwd (1).
    -.TP
    -.BI \-f file
    -Read the files to be indexed from
    -.IR file .
    -If
    -.I file
    -is
    -.BR \- ,
    -files will be read from the standard input.
    -The
    -.B \-f
    -option can be given at most once.
    -.TP
    -.BI \-i string
    -Don't index the contents of fields whose names are in
    -.IR string .
    -Initially
    -.I string
    -is
    -.BR XYZ .
    -.TP
    -.BI \-h n
    -Use the first prime greater than or equal to
    -.I n
    -for the size of the hash table.
    -Larger values of
    -.I n
    -will usually make searching faster,
    -but will make the index larger
    -and
    -.B indxbib
    -use more memory.
    -Initially
    -.I n
    -is 997.
    -.TP
    -.BI \-k n
    -Use at most
    -.I n
    -keys per input record.
    -Initially
    -.I n
    -is 100.
    -.TP
    -.BI \-l n
    -Discard keys that are shorter than
    -.IR n .
    -Initially
    -.I n
    -is 3.
    -.TP
    -.BI \-n n
    -Discard the
    -.I n
    -most common words.
    -Initially
    -.I n
    -is 100.
    -.TP
    -.BI \-o basename
    -The index should be named
    -.IB basename .i\fR.
    -.TP
    -.BI \-t n
    -Truncate keys to
    -.IR n .
    -Initially
    -.I n
    -is 6.
    -.SH FILES
    -.TP \w'\fBindxbib\fIXXXXXX'u+2n
    -.IB filename .i
    -Index.
    -.TP
    -.B Ind.i
    -Default index name.
    -.TP
    -.B /usr/share/groff/1.19.2/eign
    -List of common words.
    -.TP
    -.BI indxbib XXXXXX
    -Temporary file.
    -.SH "SEE ALSO"
    -.BR refer (1),
    -.BR lkbib (1),
    -.BR lookbib (1)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/lkbib.1 b/gen/usr/share/man/man1/lkbib.1
    deleted file mode 100644
    index 9f383b6..0000000
    --- a/gen/usr/share/man/man1/lkbib.1
    +++ /dev/null
    @@ -1,136 +0,0 @@
    -.ig
    -Copyright (C) 1989-2000, 2001, 2004 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.
    -.
    -.\" Like TP, but if specified indent is more than half
    -.\" the current line-length - indent, use the default indent.
    -.de Tp
    -.  ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
    -.  el .TP "\\$1"
    -..
    -.
    -.
    -.TH LKBIB 1 "24 November 2004" "Groff Version 1.19.2"
    -.
    -.
    -.SH NAME
    -lkbib \- search bibliographic databases
    -.
    -.
    -.SH SYNOPSIS
    -.B lkbib
    -[
    -.B \-v
    -]
    -[
    -.BI \-i fields
    -]
    -[
    -.BI \-p filename
    -]
    -[
    -.BI \-t n
    -]
    -.IR key \|.\|.\|.
    -.
    -.PP
    -It is possible to have whitespace between a command line option and its
    -parameter.
    -.
    -.
    -.SH DESCRIPTION
    -.B lkbib
    -searches bibliographic databases for references that contain the keys
    -.IR key \|.\|.\|.\&
    -and prints any references found on the standard output.
    -.B lkbib
    -will search any databases given by
    -.B \-p
    -options, and then a default database.
    -The default database is taken from the
    -.SB REFER
    -environment variable if it is set,
    -otherwise it is
    -.BR /usr/dict/papers/Ind .
    -For each database
    -.I filename
    -to be searched,
    -if an index
    -.IB filename .i
    -created by
    -.BR indxbib (1)
    -exists, then it will be searched instead;
    -each index can cover multiple databases.
    -.
    -.
    -.SH OPTIONS
    -.TP
    -.B \-v
    -Print the version number.
    -.
    -.TP
    -.BI \-p filename
    -Search
    -.IR filename .
    -Multiple
    -.B \-p
    -options can be used.
    -.
    -.TP
    -.BI \-i string
    -When searching files for which no index exists,
    -ignore the contents of fields whose names are in
    -.IR string .
    -.
    -.TP
    -.BI \-t n
    -Only require the first
    -.I n
    -characters of keys to be given.
    -Initially
    -.I n
    -is\~6.
    -.
    -.
    -.SH ENVIRONMENT
    -.TP \w'\fBREFER'u+2n
    -.SB REFER
    -Default database.
    -.
    -.
    -.SH FILES
    -.Tp \w'\fB/usr/dict/papers/Ind'u+2n
    -.B /usr/dict/papers/Ind
    -Default database to be used if the
    -.SB REFER
    -environment variable is not set.
    -.
    -.TP
    -.IB filename .i
    -Index files.
    -.
    -.
    -.SH "SEE ALSO"
    -.BR refer (1),
    -.BR lookbib (1),
    -.BR indxbib (1)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/lookbib.1 b/gen/usr/share/man/man1/lookbib.1
    deleted file mode 100644
    index bdafd95..0000000
    --- a/gen/usr/share/man/man1/lookbib.1
    +++ /dev/null
    @@ -1,101 +0,0 @@
    -.ig
    -Copyright (C) 1989-2000, 2001, 2004 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.
    -.
    -.TH LOOKBIB 1 "24 November 2004" "Groff Version 1.19.2"
    -.
    -.
    -.SH NAME
    -lookbib \- search bibliographic databases
    -.
    -.
    -.SH SYNOPSIS
    -.B lookbib
    -[
    -.B \-v
    -]
    -[
    -.BI \-i string
    -]
    -[
    -.BI \-t n
    -]
    -.IR filename \|.\|.\|.
    -.
    -.PP
    -It is possible to have whitespace between a command line option and its
    -parameter.
    -.
    -.
    -.SH DESCRIPTION
    -.B lookbib
    -prints a prompt on the standard error (unless the standard input is not
    -a terminal),
    -reads from the standard input a line containing a set of keywords,
    -searches the bibliographic databases
    -.IR filename \|.\|.\|.\&
    -for references containing those keywords,
    -prints any references found on the standard output,
    -and repeats this process until the end of input.
    -For each database
    -.I filename
    -to be searched,
    -if an index
    -.IB filename .i
    -created by
    -.BR indxbib (1)
    -exists, then it will be searched instead;
    -each index can cover multiple databases.
    -.
    -.
    -.SH OPTIONS
    -.TP
    -.B \-v
    -Print the version number.
    -.
    -.TP
    -.BI \-i string
    -When searching files for which no index exists,
    -ignore the contents of fields whose names are in
    -.IR string .
    -.
    -.TP
    -.BI \-t n
    -Only require the first
    -.I n
    -characters of keys to be given.
    -Initially
    -.I n
    -is\~6.
    -.
    -.
    -.SH FILES
    -.TP \w'\fIfilename\fB.i'u+2n
    -.IB filename .i
    -Index files.
    -.
    -.
    -.SH "SEE ALSO"
    -.BR refer (1),
    -.BR lkbib (1),
    -.BR indxbib (1)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/mmroff.1 b/gen/usr/share/man/man1/mmroff.1
    deleted file mode 100644
    index e72042d..0000000
    --- a/gen/usr/share/man/man1/mmroff.1
    +++ /dev/null
    @@ -1,49 +0,0 @@
    -.\"
    -.\" $Id: mmroff.man,v 2.2 2001/12/09 12:15:09 wlemb Exp $
    -.\"
    -.TH MMROFF 1 "1 March 2013" "Groff Version 1.19.2"
    -.SH NAME
    -mmroff \- reference preprocessor
    -.SH SYNOPSIS
    -.B mmroff
    -[
    -.I -x
    -]
    -.I groff_arguments
    -.SH DESCRIPTION
    -\fBmmroff\fP is a simple preprocessor for \fBgroff\fP, it is
    -used for expanding references in \fBmm\fP, see
    -\fBgroff_mm(7)\fP.
    -\fBgroff\fP is executed twice, first with \fB-z\fP and \fB-rRef=1\fR
    -to collect all references and then to do the real processing
    -when the reference file is up to date.
    -.TP
    -\fB\-x\fR
    -Just create the reference file. This can be used to refresh
    -the reference file, it isn't always needed to have accurate
    -references and by using this option \fBgroff\fP will only
    -be run once.
    -.\".SH BUGS
    -.SH AUTHOR
    -Jörgen Hägg, Lund, Sweden .
    -.SH FILES
    -.TP
    -.B /usr/share/groff/1.19.2/tmac/tmac.m
    -.TP
    -.B /usr/share/groff/1.19.2/tmac/mm/*.cov
    -.TP
    -.B /usr/share/groff/1.19.2/tmac/mm/*.MT
    -.TP
    -.B /usr/share/groff/1.19.2/tmac/mm/locale
    -.SH "SEE ALSO"
    -.BR groff_mm(7),
    -.BR groff_mmse(7),
    -.BR groff (1),
    -.BR troff (1),
    -.BR tbl (1),
    -.BR pic (1),
    -.BR eqn (1)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/neqn.1 b/gen/usr/share/man/man1/neqn.1
    deleted file mode 100644
    index 0c3b155..0000000
    --- a/gen/usr/share/man/man1/neqn.1
    +++ /dev/null
    @@ -1,43 +0,0 @@
    -.ig
    -Copyright (C) 2001 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.TH NEQN 1 "27 June 2001" "Groff Version 1.19.2"
    -.SH NAME
    -neqn \- format equations for ascii output
    -.SH SYNOPSIS
    -.B neqn
    -[eqn options]
    -.SH DESCRIPTION
    -The
    -.B neqn
    -program is actually just a shell script which invokes the
    -.BR eqn (1)
    -command with the
    -.B ascii
    -output device.
    -.LP
    -Note that
    -.B eqn
    -does not support low-resolution, typewriter-like devices (although it may
    -work adequately for very simple input).
    -.SH "SEE ALSO"
    -.BR eqn (1)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/nroff.1 b/gen/usr/share/man/man1/nroff.1
    deleted file mode 100644
    index 0feb517..0000000
    --- a/gen/usr/share/man/man1/nroff.1
    +++ /dev/null
    @@ -1,149 +0,0 @@
    -.ig
    -Copyright (C) 1989-2001, 2002, 2003, 2005 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.
    -.TH NROFF 1 "12 April 2005" "Groff Version 1.19.2"
    -.
    -.SH NAME
    -nroff \- emulate nroff command with groff
    -.
    -.SH SYNOPSIS
    -.nr a \n(.j
    -.ad l
    -.nr i \n(.i
    -.in +\w'\fBnroff 'u
    -.ti \niu
    -.B nroff
    -.de OP
    -.ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
    -.el .RB "[\ " "\\$1" "\ ]"
    -..
    -.
    -.OP \-CchipStUv
    -.OP \-d cs
    -.OP \-M dir
    -.OP \-m name
    -.OP \-n num
    -.OP \-o list
    -.OP \-r cn
    -.OP \-T name
    -.RI "[\ " "file" "\ .\|.\|.\ ]"
    -.br
    -.ad \na
    -.
    -.SH DESCRIPTION
    -The
    -.B nroff
    -script emulates the
    -.B nroff
    -command using groff.
    -Only 
    -.BR ascii ,
    -.BR latin1 ,
    -.BR utf8 ,
    -and
    -.B cp1047
    -are valid arguments for the
    -.B -T
    -option, selecting the output encoding emitted by
    -.BR grotty ,
    -groff's TTY output device.
    -If an invalid or no
    -.BR \-T
    -option is given,
    -.B nroff
    -checks the current locale to select a default output device.
    -It first tries the
    -.B locale
    -program, then the environment variables
    -.BR LC_ALL ,
    -.BR LC_CTYPE ,
    -and
    -.BR LANG ,
    -and finally the
    -.B LESSCHARSET
    -environment variable.
    -.PP
    -The
    -.B \-h
    -and
    -.B \-c
    -options
    -are equivalent to
    -.BR grotty 's
    -options
    -.B \-h
    -(using tabs in the output) and
    -.B \-c
    -(using the old output scheme instead of SGR escape sequences).
    -The
    -.BR \-d ,
    -.BR \-C ,
    -.BR \-i ,
    -.BR \-M ,
    -.BR \-m ,
    -.BR \-n ,
    -.BR \-o ,
    -and
    -.B \-r
    -options have the effect described in
    -.BR troff (1).
    -In addition,
    -.B nroff
    -silently ignores the options
    -.BR \-e ,
    -.BR \-q ,
    -and
    -.BR \-s
    -(which are not implemented in
    -.BR troff ).
    -Options 
    -.B \-p
    -(pic),
    -.B \-t
    -(tbl),
    -.B \-S
    -(safer), and
    -.B \-U
    -(unsafe) are passed to
    -.BR groff . 
    -.B \-v
    -shows the version number.
    -.
    -.SH ENVIRONMENT
    -.TP
    -.SM
    -.B GROFF_BIN_PATH
    -A colon separated list of directories in which to search for the
    -.B groff
    -executable before searching in PATH.  If unset, `/usr/bin' is used.
    -.SH NOTES
    -This shell script is basically intended for use with
    -.BR man (1),
    -so warnings are suppressed.
    -nroff-style character definitions (in the file tty-char.tmac) are also
    -loaded to emulate unrepresentable glyphs.
    -.
    -.SH "SEE ALSO"
    -.BR groff (1),
    -.BR troff (1),
    -.BR grotty (1)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/pfbtops.1 b/gen/usr/share/man/man1/pfbtops.1
    deleted file mode 100644
    index c94c1df..0000000
    --- a/gen/usr/share/man/man1/pfbtops.1
    +++ /dev/null
    @@ -1,68 +0,0 @@
    -.ig
    -Copyright (C) 1989-1995, 2001, 2003, 2004 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.
    -.
    -.TH PFBTOPS 1 "24 November 2004" "Groff Version 1.19.2"
    -.
    -.
    -.SH NAME
    -pfbtops \- translate a PostScript font in .pfb format to ASCII
    -.
    -.
    -.SH SYNOPSIS
    -.B pfbtops
    -[
    -.B \-v
    -]
    -[
    -.I pfb_file
    -]
    -.
    -.
    -.SH DESCRIPTION
    -.B pfbtops
    -translates a PostScript font in
    -.B .pfb
    -format to ASCII, splitting overlong lines in text packets into smaller
    -chunks.
    -If
    -.I pfb_file
    -is omitted the pfb file will be read from the standard input.
    -The ASCII format PostScript font will be written on the standard output.
    -PostScript fonts for MS-DOS are normally supplied in
    -.B .pfb
    -format.
    -.
    -.LP
    -The resulting ASCII format PostScript font can be used with groff.
    -It must first be listed in
    -.BR /usr/share/groff/1.19.2/font/devps/download .
    -.
    -.SH OPTIONS
    -.TP
    -.B \-v
    -Print the version number.
    -.
    -.
    -.SH "SEE ALSO"
    -.BR grops (1)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/pic.1 b/gen/usr/share/man/man1/pic.1
    deleted file mode 100644
    index da59205..0000000
    --- a/gen/usr/share/man/man1/pic.1
    +++ /dev/null
    @@ -1,1109 +0,0 @@
    -.ig
    -Copyright (C) 1989-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.
    -.
    -.\" Like TP, but if specified indent is more than half
    -.\" the current line-length - indent, use the default indent.
    -.de Tp
    -.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
    -.el .TP "\\$1"
    -..
    -.
    -.ie t \{\
    -.  ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X
    -.  ds lx L\h'-0.36m'\v'-0.22v'\s-2A\s0\h'-0.15m'\v'0.22v'\*(tx
    -.\}
    -.el \{\
    -.  ds tx TeX
    -.  ds lx LaTeX
    -.\}
    -.
    -.ie \n(.g .ds ic \/
    -.el       .ds ic \^
    -.
    -.\" The BSD man macros can't handle " in arguments to font change macros,
    -.\" so use \(ts instead of ".
    -.tr \(ts"
    -.
    -.
    -.TH PIC 1 "19 July 2004" "Groff Version 1.19.2"
    -.
    -.
    -.SH NAME
    -.
    -pic \- compile pictures for troff or TeX
    -.
    -.
    -.SH SYNOPSIS
    -.
    -.B pic
    -[
    -.B \-nvCSU
    -]
    -[
    -.I filename
    -\&.\|.\|.\&
    -]
    -.br
    -.B pic
    -.B \-t
    -[
    -.B \-cvzCSU
    -]
    -[
    -.I filename
    -\&.\|.\|.\&
    -]
    -.
    -.
    -.SH DESCRIPTION
    -.
    -This manual page describes the GNU version of
    -.BR pic ,
    -which is part of the groff document formatting system.
    -.B pic
    -compiles descriptions of pictures embedded within
    -.B troff
    -or \*(tx input files into commands that are understood by \*(tx or
    -.BR troff .
    -Each picture starts with a line beginning with
    -.B .PS
    -and ends with a line beginning with
    -.BR .PE .
    -Anything outside of
    -.B .PS
    -and
    -.B .PE
    -is passed through without change.
    -.LP
    -It is the user's responsibility to provide appropriate definitions of the
    -.B PS
    -and
    -.B PE
    -macros.
    -When the macro package being used does not supply such definitions
    -(for example, old versions of \-ms),
    -appropriate definitions can be obtained with
    -.BR \-mpic :
    -These will center each picture.
    -.
    -.
    -.SH OPTIONS
    -.
    -Options that do not take arguments may be grouped behind a single
    -.BR \- .
    -The special option
    -.B \-\^\-
    -can be used to mark the end of the options.
    -A filename of
    -.B \-
    -refers to the standard input.
    -.
    -.TP
    -.B \-C
    -Recognize
    -.B .PS
    -and
    -.B .PE
    -even when followed by a character other than space or newline.
    -.
    -.TP
    -.B \-S
    -Safer mode; do not execute
    -.B sh
    -commands.
    -This can be useful when operating on untrustworthy input.
    -(enabled by default)
    -.
    -.TP
    -.B \-U
    -Unsafe mode; revert the default option
    -.BR \-S .
    -.
    -.TP
    -.B \-n
    -Don't use the groff extensions to the troff drawing commands.
    -You should use this if you are using a postprocessor that doesn't support
    -these extensions.
    -The extensions are described in
    -.BR groff_out (5).
    -The
    -.B \-n
    -option also causes
    -.B pic
    -not to use zero-length lines to draw dots in troff mode.
    -.
    -.TP
    -.B \-t
    -\*(tx mode.
    -.
    -.TP
    -.B \-c
    -Be more compatible with
    -.BR tpic .
    -Implies
    -.BR \-t .
    -Lines beginning with
    -.B \e
    -are not passed through transparently.
    -Lines beginning with
    -.B .
    -are passed through with the initial
    -.B .
    -changed to
    -.BR \e .
    -A line beginning with
    -.B .ps
    -is given special treatment:
    -it takes an optional integer argument specifying
    -the line thickness (pen size) in milliinches;
    -a missing argument restores the previous line thickness;
    -the default line thickness is 8 milliinches.
    -The line thickness thus specified takes effect only
    -when a non-negative line thickness has not been
    -specified by use of the
    -.B thickness
    -attribute or by setting the
    -.B linethick
    -variable.
    -.
    -.TP
    -.B \-v
    -Print the version number.
    -.
    -.TP
    -.B \-z
    -In \*(tx mode draw dots using zero-length lines.
    -.
    -.LP
    -The following options supported by other versions of
    -.B pic
    -are ignored:
    -.
    -.TP
    -.B \-D
    -Draw all lines using the \eD escape sequence.
    -.B pic
    -always does this.
    -.
    -.TP
    -.BI \-T \ dev
    -Generate output for the
    -.B troff
    -device
    -.IR dev .
    -This is unnecessary because the
    -.B troff
    -output generated by
    -.B pic
    -is device-independent.
    -.
    -.
    -.SH USAGE
    -.
    -This section describes only the differences between GNU
    -.B pic
    -and the original version of
    -.BR pic .
    -Many of these differences also apply to newer versions of Unix
    -.BR pic .
    -A complete documentation is available in the file
    -.LP
    -.RS
    -.B /usr/share/doc/groff/1.19.2/pic.ms
    -.RE
    -.
    -.SS \*(tx mode
    -.
    -\*(tx mode is enabled by the
    -.B \-t
    -option.
    -In \*(tx mode,
    -.B pic
    -will define a vbox called
    -.B \egraph
    -for each picture.
    -Use the
    -.B figname
    -command to change the name of the vbox.
    -You must yourself print that vbox using, for example, the command
    -.RS
    -.LP
    -.B
    -\ecenterline{\ebox\egraph}
    -.RE
    -.LP
    -Actually, since the vbox has a height of zero (it is defined with
    -\evtop) this will produce slightly more vertical space above the
    -picture than below it;
    -.RS
    -.LP
    -.B
    -\ecenterline{\eraise 1em\ebox\egraph}
    -.RE
    -.LP
    -would avoid this.
    -.LP
    -To make the vbox having a positive height and a depth of zero
    -(as used e.g.\& by \*(lx's
    -.BR \%graphics.sty ),
    -define the following macro in your document:
    -.RS
    -.LP
    -.B \edef\egpicbox#1{%
    -.br
    -.B "   \evbox{\eunvbox\ecsname #1\eendcsname\ekern 0pt}}"
    -.RE
    -.LP
    -Now you can simply say
    -.B \egpicbox{graph}
    -instead of \ebox\egraph.
    -.LP
    -You must use a \*(tx driver that supports the
    -.B tpic
    -specials, version 2.
    -.LP
    -Lines beginning with
    -.B \e
    -are passed through transparently; a
    -.B %
    -is added to the end of the line to avoid unwanted spaces.
    -You can safely use this feature to change fonts or to
    -change the value of
    -.BR \ebaselineskip .
    -Anything else may well produce undesirable results; use at your own risk.
    -Lines beginning with a period are not given any special treatment.
    -.
    -.SS Commands
    -.
    -.TP
    -\fBfor\fR \fIvariable\fR \fB=\fR \fIexpr1\fR \fBto\fR \fIexpr2\fR \
    -[\fBby\fR [\fB*\fR]\fIexpr3\fR] \fBdo\fR \fIX\fR \fIbody\fR \fIX\fR
    -Set
    -.I variable
    -to
    -.IR expr1 .
    -While the value of
    -.I variable
    -is less than or equal to
    -.IR expr2 ,
    -do
    -.I body
    -and increment
    -.I variable
    -by
    -.IR expr3 ;
    -if
    -.B by
    -is not given, increment
    -.I variable
    -by 1.
    -If
    -.I expr3
    -is prefixed by
    -.B *
    -then
    -.I variable
    -will instead be multiplied by
    -.IR expr3 .
    -The value of
    -.I expr3
    -can be negative for the additive case;
    -.I variable
    -is then tested whether it is greater than or equal to
    -.IR expr2 .
    -For the multiplicative case,
    -.I expr3
    -must be greater than zero.
    -If the constraints aren't met, the loop isn't executed.
    -.I X
    -can be any character not occurring in
    -.IR body .
    -.
    -.TP
    -\fBif\fR \fIexpr\fR \fBthen\fR \fIX\fR \fIif-true\fR \fIX\fR \
    -[\fBelse\fR \fIY\fR \fIif-false\fR \fIY\fR]
    -Evaluate
    -.IR expr ;
    -if it is non-zero then do
    -.IR if-true ,
    -otherwise do
    -.IR if-false .
    -.I X
    -can be any character not occurring in
    -.IR if-true .
    -.I Y
    -can be any character not occurring in
    -.IR if-false .
    -.
    -.TP
    -\fBprint\fR \fIarg\fR\|.\|.\|.
    -Concatenate the arguments and print as a line on stderr.
    -Each
    -.I arg
    -must be an expression, a position, or text.
    -This is useful for debugging.
    -.
    -.TP
    -\fBcommand\fR \fIarg\fR\|.\|.\|.
    -Concatenate the arguments
    -and pass them through as a line to troff or \*(tx.
    -Each
    -.I arg
    -must be an expression, a position, or text.
    -This has a similar effect to a line beginning with
    -.B .\&
    -or
    -.BR \e ,
    -but allows the values of variables to be passed through.
    -For example,
    -.RS
    -.IP
    -.ft B
    -.nf
    -\&.PS
    -x = 14
    -command ".ds string x is " x "."
    -\&.PE
    -\e*[string]
    -.ft
    -.fi
    -.RE
    -.IP
    -prints
    -.RS
    -.IP
    -.B x is 14.
    -.RE
    -.
    -.TP
    -\fBsh\fR \fIX\fR \fIcommand\fR \fIX\fR
    -Pass
    -.I command
    -to a shell.
    -.I X
    -can be any character not occurring in
    -.IR command .
    -.
    -.TP
    -\fBcopy\fR \fB"\fIfilename\fB"\fR
    -Include
    -.I filename
    -at this point in the file.
    -.
    -.TP
    -\fBcopy\fR [\fB"\fIfilename\fB"\fR] \fBthru\fR \fIX\fR \fIbody\fR \fIX\fR \
    -[\fBuntil\fR \fB"\fIword\*(ic\fB"\fR]
    -.ns
    -.TP
    -\fBcopy\fR [\fB"\fIfilename\fB"\fR] \fBthru\fR \fImacro\fR \
    -[\fBuntil\fR \fB"\fIword\*(ic\fB"\fR]
    -This construct does
    -.I body
    -once for each line of
    -.IR filename ;
    -the line is split into blank-delimited words,
    -and occurrences of
    -.BI $ i
    -in
    -.IR body ,
    -for
    -.I i
    -between 1 and 9,
    -are replaced by the
    -.IR i -th
    -word of the line.
    -If
    -.I filename
    -is not given, lines are taken from the current input up to
    -.BR .PE .
    -If an
    -.B until
    -clause is specified,
    -lines will be read only until a line the first word of which is
    -.IR word ;
    -that line will then be discarded.
    -.I X
    -can be any character not occurring in
    -.IR body .
    -For example,
    -.RS
    -.IP
    -.ft B
    -.nf
    -\&.PS
    -copy thru % circle at ($1,$2) % until "END"
    -1 2
    -3 4
    -5 6
    -END
    -box
    -\&.PE
    -.ft
    -.fi
    -.RE
    -.IP
    -is equivalent to
    -.RS
    -.IP
    -.ft B
    -.nf
    -\&.PS
    -circle at (1,2)
    -circle at (3,4)
    -circle at (5,6)
    -box
    -\&.PE
    -.ft
    -.fi
    -.RE
    -.IP
    -The commands to be performed for each line can also be taken
    -from a macro defined earlier by giving the name of the macro
    -as the argument to
    -.BR thru .
    -.
    -.LP
    -.B reset
    -.br
    -.ns
    -.TP
    -\fBreset\fI variable1\fR[\fB,\fR]\fI variable2 .\^.\^.
    -Reset pre-defined variables
    -.IR variable1 ,
    -.I variable2
    -\&.\^.\^. to their default values.
    -If no arguments are given, reset all pre-defined variables
    -to their default values.
    -Note that assigning a value to
    -.B scale
    -also causes all pre-defined variables that control dimensions
    -to be reset to their default values times the new value of scale.
    -.
    -.TP
    -\fBplot\fR \fIexpr\fR [\fB"\fItext\*(ic\fB"\fR]
    -This is a text object which is constructed by using
    -.I text
    -as a format string for sprintf
    -with an argument of
    -.IR expr .
    -If
    -.I text
    -is omitted a format string of
    -.B "\(ts%g\(ts"
    -is used.
    -Attributes can be specified in the same way as for a normal text
    -object.
    -Be very careful that you specify an appropriate format string;
    -.B pic
    -does only very limited checking of the string.
    -This is deprecated in favour of
    -.BR sprintf .
    -.
    -.TP
    -.IB variable\  := \ expr
    -This is similar to
    -.B =
    -except
    -.I variable
    -must already be defined,
    -and
    -.I expr
    -will be assigned to
    -.I variable
    -without creating a variable local to the current block.
    -(By contrast,
    -.B =
    -defines the variable in the current block if it is not already defined there,
    -and then changes the value in the current block only.)
    -For example, the following:
    -.RS
    -.IP
    -.ft B
    -.nf
    -\&.PS
    -x = 3
    -y = 3
    -[
    -  x := 5
    -  y = 5
    -]
    -print x " " y
    -\&.PE
    -.ft
    -.fi
    -.RE
    -.IP
    -prints
    -.RS
    -.IP
    -.B 5 3
    -.RE
    -.
    -.LP
    -Arguments of the form
    -.IP
    -.I X anything X
    -.LP
    -are also allowed to be of the form
    -.IP
    -.BI {\  anything\  }
    -.LP
    -In this case
    -.I anything
    -can contain balanced occurrences of
    -.B {
    -and
    -.BR } .
    -Strings may contain
    -.I X
    -or imbalanced occurrences of
    -.B {
    -and
    -.BR } .
    -.
    -.SS Expressions
    -.
    -The syntax for expressions has been significantly extended:
    -.
    -.LP
    -.IB  x\  ^\  y
    -(exponentiation)
    -.br
    -.BI sin( x )
    -.br
    -.BI cos( x )
    -.br
    -.BI atan2( y , \ x )
    -.br
    -.BI log( x )
    -(base 10)
    -.br
    -.BI exp( x )
    -(base 10, ie
    -.ie t 10\v'-.4m'\fIx\*(ic\fR\v'.4m')
    -.el   10^\fIx\fR)
    -.br
    -.BI sqrt( x )
    -.br
    -.BI int( x )
    -.br
    -.B rand()
    -(return a random number between 0 and 1)
    -.br
    -.BI rand( x )
    -(return a random number between 1 and
    -.IR x ;
    -deprecated)
    -.br
    -.BI srand( x )
    -(set the random number seed)
    -.br
    -.BI max( e1 , \ e2 )
    -.br
    -.BI min( e1 , \ e2 )
    -.br
    -.BI ! e
    -.br
    -\fIe1\fB && \fIe2\fR
    -.br
    -\fIe1\fB || \fIe2\fR
    -.br
    -\fIe1\fB == \fIe2\fR
    -.br
    -\fIe1\fB != \fIe2\fR
    -.br
    -\fIe1\fB >= \fIe2\fR
    -.br
    -\fIe1\fB > \fIe2\fR
    -.br
    -\fIe1\fB <= \fIe2\fR
    -.br
    -\fIe1\fB < \fIe2\fR
    -.br
    -\fB"\fIstr1\*(ic\fB" == "\fIstr2\*(ic\fB"\fR
    -.br
    -\fB"\fIstr1\*(ic\fB" != "\fIstr2\*(ic\fB"\fR
    -.br
    -.
    -.LP
    -String comparison expressions must be parenthesised in some contexts
    -to avoid ambiguity.
    -.
    -.SS Other Changes
    -.
    -A bare expression,
    -.IR expr ,
    -is acceptable as an attribute;
    -it is equivalent to
    -.IR dir\ expr ,
    -where
    -.I dir
    -is the current direction.
    -For example
    -.LP
    -.RS
    -.B line 2i
    -.RE
    -.LP
    -means draw a line 2\ inches long in the current direction.
    -The `i' (or `I') character is ignored; to use another measurement unit,
    -set the
    -.I scale
    -variable to an appropriate value.
    -.
    -.LP
    -The maximum width and height of the picture are taken from the variables
    -.B maxpswid
    -and
    -.BR maxpsht .
    -Initially these have values 8.5 and 11.
    -.
    -.LP
    -Scientific notation is allowed for numbers.
    -For example
    -.RS
    -.LP
    -.B
    -x = 5e\-2
    -.RE
    -.
    -.LP
    -Text attributes can be compounded.
    -For example,
    -.RS
    -.LP
    -.B
    -"foo" above ljust
    -.RE
    -.LP
    -is valid.
    -.
    -.LP
    -There is no limit to the depth to which blocks can be examined.
    -For example,
    -.RS
    -.LP
    -.B
    -[A: [B: [C: box ]]] with .A.B.C.sw at 1,2
    -.br
    -.B
    -circle at last [\^].A.B.C
    -.RE
    -.LP
    -is acceptable.
    -.
    -.LP
    -Arcs now have compass points
    -determined by the circle of which the arc is a part.
    -.
    -.LP
    -Circles, ellipses, and arcs can be dotted or dashed.
    -In \*(tx mode splines can be dotted or dashed also.
    -.
    -.LP
    -Boxes can have rounded corners.
    -The
    -.B rad
    -attribute specifies the radius of the quarter-circles at each corner.
    -If no
    -.B rad
    -or
    -.B diam
    -attribute is given, a radius of
    -.B boxrad
    -is used.
    -Initially,
    -.B boxrad
    -has a value of\ 0.
    -A box with rounded corners can be dotted or dashed.
    -.
    -.LP
    -The
    -.B .PS
    -line can have a second argument specifying a maximum height for
    -the picture.
    -If the width of zero is specified the width will be ignored in computing
    -the scaling factor for the picture.
    -Note that GNU
    -.B pic
    -will always scale a picture by the same amount vertically as well as
    -horizontally.
    -This is different from the
    -.SM DWB
    -2.0
    -.B pic
    -which may scale a picture by a different amount vertically than
    -horizontally if a height is specified.
    -.
    -.LP
    -Each text object has an invisible box associated with it.
    -The compass points of a text object are determined by this box.
    -The implicit motion associated with the object is also determined
    -by this box.
    -The dimensions of this box are taken from the width and height attributes;
    -if the width attribute is not supplied then the width will be taken to be
    -.BR textwid ;
    -if the height attribute is not supplied then the height will be taken to be
    -the number of text strings associated with the object
    -times
    -.BR textht .
    -Initially
    -.B textwid
    -and
    -.B textht
    -have a value of 0.
    -.
    -.LP
    -In (almost all) places where a quoted text string can be used,
    -an expression of the form
    -.IP
    -.BI sprintf(\(ts format \(ts,\  arg ,\fR.\|.\|.\fB)
    -.LP
    -can also be used;
    -this will produce the arguments formatted according to
    -.IR format ,
    -which should be a string as described in
    -.BR printf (3)
    -appropriate for the number of arguments supplied.
    -.
    -.LP
    -The thickness of the lines used to draw objects is controlled by the
    -.B linethick
    -variable.
    -This gives the thickness of lines in points.
    -A negative value means use the default thickness:
    -in \*(tx output mode, this means use a thickness of 8 milliinches;
    -in \*(tx output mode with the
    -.B -c
    -option, this means use the line thickness specified by
    -.B .ps
    -lines;
    -in troff output mode, this means use a thickness proportional
    -to the pointsize.
    -A zero value means draw the thinnest possible line supported by
    -the output device.
    -Initially it has a value of -1.
    -There is also a
    -.BR thick [ ness ]
    -attribute.
    -For example,
    -.RS
    -.LP
    -.B circle thickness 1.5
    -.RE
    -.LP
    -would draw a circle using a line with a thickness of 1.5 points.
    -The thickness of lines is not affected by the
    -value of the
    -.B scale
    -variable, nor by the width or height given in the
    -.B .PS
    -line.
    -.
    -.LP
    -Boxes (including boxes with rounded corners),
    -circles and ellipses can be filled by giving them an attribute of
    -.BR fill [ ed ].
    -This takes an optional argument of an expression with a value between
    -0 and 1; 0 will fill it with white, 1 with black, values in between
    -with a proportionally gray shade.
    -A value greater than 1 can also be used:
    -this means fill with the
    -shade of gray that is currently being used for text and lines.
    -Normally this will be black, but output devices may provide
    -a mechanism for changing this.
    -Without an argument, then the value of the variable
    -.B fillval
    -will be used.
    -Initially this has a value of 0.5.
    -The invisible attribute does not affect the filling of objects.
    -Any text associated with a filled object will be added after the
    -object has been filled, so that the text will not be obscured
    -by the filling.
    -.
    -.LP
    -Three additional modifiers are available to specify colored objects:
    -.BR outline [ d ]
    -sets the color of the outline,
    -.B shaded
    -the fill color, and
    -.B colo\fR[\fPu\fR]\fPr\fR[\fPed\fR]
    -sets both.
    -All three keywords expect a suffix specifying the color, for example
    -.RS
    -.LP
    -.B circle shaded """green""" outline """black"""
    -.RE
    -.LP
    -Currently, color support isn't available in \*(tx mode.
    -Predefined color names for
    -.B groff
    -are in the device macro files, for example
    -.BR ps.tmac ;
    -additional colors can be defined with the
    -.B .defcolor
    -request (see the manual page of
    -.BR troff (1)
    -for more details).
    -.LP
    -To change the name of the vbox in \*(tx mode, set the pseudo-variable
    -.B figname
    -(which is actually a specially parsed command) within a picture.
    -Example:
    -.RS
    -.LP
    -.B .PS
    -.br
    -.B figname = foobar;
    -.br
    -.B ...
    -.br
    -.B .PE
    -.RE
    -.LP
    -The picture is then available in the box
    -.BR \efoobar .
    -.LP
    -.B pic
    -assumes that at the beginning of a picture both glyph and fill color are
    -set to the default value.
    -.
    -.LP
    -Arrow heads will be drawn as solid triangles if the variable
    -.B arrowhead
    -is non-zero and either \*(tx mode is enabled or the
    -.B \-n
    -option has not been given.
    -Initially
    -.B arrowhead
    -has a value of\ 1.
    -Note that solid arrow heads are always filled with the current outline
    -color.
    -.
    -.LP
    -The troff output of
    -.B pic
    -is device-independent.
    -The
    -.B \-T
    -option is therefore redundant.
    -All numbers are taken to be in inches; numbers are never interpreted
    -to be in troff machine units.
    -.
    -.LP
    -Objects can have an
    -.B aligned
    -attribute.
    -This will only work if the postprocessor is
    -.BR grops .
    -Any text associated with an object having the
    -.B aligned
    -attribute will be rotated about the center of the object
    -so that it is aligned in the direction from the start point
    -to the end point of the object.
    -Note that this attribute will have no effect for objects whose start and
    -end points are coincident.
    -.
    -.LP
    -In places where
    -.IB n th
    -is allowed
    -.BI ` expr 'th
    -is also allowed.
    -Note that
    -.B 'th
    -is a single token: no space is allowed between the
    -.B '
    -and the
    -.BR th .
    -For example,
    -.IP
    -.ft B
    -.nf
    -for i = 1 to 4 do {
    -   line from `i'th box.nw to `i+1'th box.se
    -}
    -.ft
    -.fi
    -.
    -.
    -.SH CONVERSION
    -.
    -To obtain a stand-alone picture from a
    -.B pic
    -file, enclose your
    -.B pic
    -code with
    -.B .PS
    -and
    -.B .PE
    -requests;
    -.B roff
    -configuration commands may be added at the beginning of the file, but no
    -.B roff
    -text.
    -.
    -.LP
    -It is necessary to feed this file into
    -.B groff
    -without adding any page information, so you must check which
    -.B .PS
    -and
    -.B .PE
    -requests are actually called.
    -For example, the mm macro package adds a page number, which is very
    -annoying.
    -At the moment, calling standard
    -.B groff
    -without any macro package works.
    -Alternatively, you can define your own requests, e.g. to do nothing:
    -.LP
    -.RS
    -.nf
    -.ft B
    -\&.de PS
    -\&..
    -\&.de PE
    -\&..
    -.ft
    -.fi
    -.RE
    -.
    -.LP
    -.B groff
    -itself does not provide direct conversion into other graphics file
    -formats.
    -But there are lots of possibilities if you first transform your picture
    -into PostScript\*R format using the
    -.B groff
    -option
    -.BR -Tps .
    -Since this
    -.IR ps -file
    -lacks BoundingBox information it is not very useful by itself, but it
    -may be fed into other conversion programs, usually named
    -.BI ps2 other
    -or
    -.BI psto other
    -or the like.
    -Moreover, the PostScript interpreter
    -.B ghostscript
    -.RB ( gs )
    -has built-in graphics conversion devices that are called with the option
    -.LP
    -.RS
    -.BI "gs -sDEVICE=" 
    -.RE
    -.LP
    -Call
    -.LP
    -.RS
    -.B gs --help
    -.RE
    -.LP
    -for a list of the available devices.
    -.
    -.LP
    -As the Encapsulated PostScript File Format
    -.B EPS
    -is getting more and more important, and the conversion wasn't regarded
    -trivial in the past you might be interested to know that there is a
    -conversion tool named
    -.B ps2eps
    -which does the right job.
    -It is much better than the tool
    -.B ps2epsi
    -packaged with
    -.BR gs .
    -.LP
    -For bitmapped graphic formats, you should use
    -.BR pstopnm ;
    -the resulting (intermediate)
    -.B PNM
    -file can be then converted to virtually any graphics format using the tools
    -of the
    -.B netpbm
    -package .
    -.
    -.
    -.SH FILES
    -.
    -.Tp \w'\fB/usr/share/groff/1.19.2/tmac/pic.tmac'u+3n
    -.B
    -/usr/share/groff/1.19.2/tmac/pic.tmac
    -Example definitions of the
    -.B PS
    -and
    -.B PE
    -macros.
    -.
    -.
    -.SH "SEE ALSO"
    -.
    -.BR troff (1),
    -.BR groff_out (5),
    -.BR tex (1),
    -.BR gs (1),
    -.BR ps2eps (1),
    -.BR pstopnm (1),
    -.BR ps2epsi (1),
    -.BR pnm (5)
    -.LP
    -Tpic: Pic for \*(tx
    -.LP
    -Brian W. Kernighan,
    -PIC \(em A Graphics Language for Typesetting (User Manual).
    -AT&T Bell Laboratories, Computing Science Technical Report No.\ 116
    -
    -(revised May, 1991).
    -.LP
    -.B ps2eps
    -is available from CTAN mirrors, e.g.
    -.br
    -
    -.LP
    -W. Richard Stevens - Turning PIC Into HTML
    -.br
    -
    -.LP
    -W. Richard Stevens - Examples of picMacros
    -.br
    -
    -.
    -.
    -.SH BUGS
    -.
    -Input characters that are invalid for
    -.B groff
    -(i.e., those with
    -.SM ASCII
    -code 0, or 013 octal, or between 015 and 037 octal, or between 0200 and 0237
    -octal) are rejected even in \*(tx mode.
    -.LP
    -The interpretation of
    -.B fillval
    -is incompatible with the pic in 10th edition Unix,
    -which interprets 0 as black and 1 as white.
    -.LP
    -PostScript\*R is a registered trademark of Adobe Systems Incorporation.
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/pic2graph.1 b/gen/usr/share/man/man1/pic2graph.1
    deleted file mode 100644
    index 61d5368..0000000
    --- a/gen/usr/share/man/man1/pic2graph.1
    +++ /dev/null
    @@ -1,140 +0,0 @@
    -.\" $Id: pic2graph.man,v 1.5 2003/10/28 07:46:24 wlemb Exp $
    -.\" This documentation is released to the public domain.
    -.TH PIC2GRAPH 1 "27 October 2003" "Groff Version 1.19.2"
    -.IX pic2graph
    -.SH NAME
    -pic2graph \- convert a PIC diagram into a cropped image
    -.
    -.
    -.SH SYNOPSIS
    -.B pic2graph
    -[
    -.B \-unsafe
    -]
    -[
    -.BI \-format\  fmt
    -]
    -[
    -.BI \-eqn\  delim
    -]
    -.
    -.
    -.SH DESCRIPTION
    -Reads a PIC program as input; produces an image file (by default in
    -Portable Network Graphics format) suitable for the Web as output.
    -Also translates
    -.BR eqn (1)
    -constructs, so it can be used for generating images of mathematical
    -formulae.
    -.P
    -PIC is a rather expressive graphics minilanguage suitable for
    -producing box-and-arrow diagrams of the kind frequently used in
    -technical papers and textbooks.  The language is sufficiently flexible
    -to be quite useful for state charts, Petri-net diagrams, flow charts,
    -simple circuit schematics, jumper layouts, and other kinds of
    -illustration involving repetitive uses of simple geometric forms and
    -splines.  Because PIC descriptions are procedural and object-based,
    -they are both compact and easy to modify.
    -.P
    -The PIC language is fully documented in "\fIMaking Pictures With GNU
    -PIC\fP", a document which is part of the
    -.BR groff (1)
    -distribution.
    -.P
    -Your input PIC code should \fInot\fR be wrapped with the .PS and .PE macros
    -that normally guard it within 
    -.BR groff (1) 
    -macros.
    -.P
    -The output image will be a black-on-white graphic clipped to the
    -smallest possible bounding box that contains all the black pixels.
    -By specifying command-line options to be passed to 
    -.BR convert (1)
    -you can give it a border, set the background transparent, set the
    -image's pixel density, or perform other useful transformations.
    -.P
    -This program uses 
    -.BR pic (1),
    -.BR eqn (1),
    -.BR groff (1),
    -.BR gs (1),
    -and the ImageMagick
    -.BR convert (1)
    -program.
    -These programs must be installed on your system and accessible on your
    -$PATH for \fBpic2graph\fR to work.
    -.
    -.
    -.SH OPTIONS
    -.TP
    -.B \-unsafe
    -Run 
    -.BR pic (1)
    -and
    -.BR groff (1)
    -in the `unsafe' mode enabling the PIC macro
    -.B sh
    -to execute arbitrary commands.  The default is to forbid this.
    -.TP
    -.BI \-format\  fmt
    -Specify an output format; the default is PNG (Portable Network Graphics).
    -Any format that
    -.BR convert (1)
    -can emit is supported.
    -.TP
    -.BI \-eqn\  delim
    -Change the fencepost characters that delimit 
    -.BR eqn (1)
    -directives
    -.RB ( $
    -and
    -.BR $ ,
    -by default).  This option requires an argument, but an empty string is
    -accepted as a directive to disable
    -.BR eqn (1)
    -processing.
    -.PP
    -Command-line switches and arguments not listed above are passed to
    -.BR convert (1).
    -.
    -.
    -.SH FILES
    -.TP \w'\fB/usr/share/groff/1.19.2/tmac/eqnrc'u+2n
    -.B /usr/share/groff/1.19.2/tmac/eqnrc
    -The 
    -.BR eqn (1)
    -initialization file.
    -.
    -.
    -.SH ENVIRONMENT
    -.TP
    -.B GROFF_TMPDIR
    -The directory in which temporary files will be created.
    -If this is not set
    -.B pic2graph
    -searches the environment variables
    -.BR \%TMPDIR ,
    -.BR TMP ,
    -and
    -.B TEMP
    -(in that order).
    -Otherwise, temporary files will be created in
    -.BR /tmp .
    -.
    -.
    -.SH "SEE ALSO"
    -.BR eqn2graph (1),
    -.BR grap2graph (1),
    -.BR pic (1),
    -.BR eqn (1),
    -.BR groff (1),
    -.BR gs (1),
    -.BR convert (1).
    -.
    -.
    -.SH AUTHOR
    -Eric S. Raymond , based on a recipe by W. Richard Stevens.
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/refer.1 b/gen/usr/share/man/man1/refer.1
    deleted file mode 100644
    index a9ac1f0..0000000
    --- a/gen/usr/share/man/man1/refer.1
    +++ /dev/null
    @@ -1,1492 +0,0 @@
    -.ig
    -Copyright (C) 1989-2000, 2001, 2002, 2003, 2004, 2005
    -  Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.
    -.
    -.de TQ
    -.  br
    -.  ns
    -.  TP \\$1
    -..
    -.
    -.
    -.\" Like TP, but if specified indent is more than half
    -.\" the current line-length - indent, use the default indent.
    -.de Tp
    -.  ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
    -.  el .TP "\\$1"
    -.
    -.
    -..
    -.\" The BSD man macros can't handle " in arguments to font change macros,
    -.\" so use \(ts instead of ".
    -.tr \(ts"
    -.
    -.
    -.TH REFER 1 "6 May 2005" "Groff Version 1.19.2"
    -.
    -.
    -.
    -.SH NAME
    -refer \- preprocess bibliographic references for groff
    -.
    -.
    -.
    -.SH SYNOPSIS
    -.nr a \n(.j
    -.ad l
    -.nr i \n(.i
    -.in +\w'\fBrefer 'u
    -.ti \niu
    -.B refer
    -.
    -.de OP
    -.  ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
    -.  el .RB "[\ " "\\$1" "\ ]"
    -..
    -.
    -.OP \-benvCPRS
    -.OP \-a n
    -.OP \-c fields
    -.OP \-f n
    -.OP \-i fields
    -.OP \-k field
    -.OP \-l m,n
    -.OP \-p \%filename
    -.OP \-s fields
    -.OP \-t n
    -.OP \-B field.macro
    -.RI [\  \%filename \|.\|.\|.\ ]
    -.br
    -.ad \na
    -.
    -.LP
    -It is possible to have whitespace between a command line option and its
    -parameter.
    -.
    -.
    -.
    -.SH DESCRIPTION
    -This file documents the GNU version of
    -.BR refer ,
    -which is part of the groff document formatting system.
    -.B refer
    -copies the contents of
    -.IR filename \|.\|.\|.\&
    -to the standard output,
    -except that lines between
    -.B .[
    -and
    -.B .]\&
    -are interpreted as citations,
    -and lines between
    -.B .R1
    -and
    -.B .R2
    -are interpreted as commands about how citations are to be processed.
    -.
    -.LP
    -Each citation specifies a reference.
    -The citation can specify a reference that is contained in
    -a bibliographic database by giving a set of keywords
    -that only that reference contains.
    -Alternatively it can specify a reference by supplying a database
    -record in the citation.
    -A combination of these alternatives is also possible.
    -.
    -.LP
    -For each citation,
    -.B refer
    -can produce a mark in the text.
    -This mark consists of some label which can be separated from
    -the text and from other labels in various ways.
    -For each reference it also outputs
    -.B groff
    -commands that can be used by a macro package to produce a formatted
    -reference for each citation.
    -The output of
    -.B refer
    -must therefore be processed using a suitable macro package.
    -The
    -.B \-ms
    -and
    -.B \-me
    -macros are both suitable.
    -The commands to format a citation's reference can be output immediately after
    -the citation,
    -or the references may be accumulated,
    -and the commands output at some later point.
    -If the references are accumulated, then multiple citations of the same
    -reference will produce a single formatted reference.
    -.
    -.LP
    -The interpretation of lines between
    -.B .R1
    -and
    -.B .R2
    -as commands is a new feature of GNU
    -.BR refer .
    -Documents making use of this feature can still be processed by
    -Unix refer just by adding the lines
    -.
    -.RS
    -.LP
    -.nf
    -.ft B
    -\&.de R1
    -\&.ig R2
    -\&..
    -.ft
    -.fi
    -.RE
    -.
    -to the beginning of the document.
    -This will cause
    -.B troff
    -to ignore everything between
    -.B .R1
    -and
    -.BR .R2 .
    -The effect of some commands can also be achieved by options.
    -These options are supported mainly for compatibility with Unix refer.
    -It is usually more convenient to use commands.
    -.
    -.LP
    -.B refer
    -generates
    -.B .lf
    -lines so that filenames and line numbers in messages produced
    -by commands that read
    -.B refer
    -output will be correct;
    -it also interprets lines beginning with
    -.B .lf
    -so that filenames and line numbers in the messages and
    -.B .lf
    -lines that it produces will be accurate even if the input has been
    -preprocessed by a command such as
    -.BR soelim (1).
    -.
    -.
    -.
    -.SH OPTIONS
    -.
    -.LP
    -Most options are equivalent to commands
    -(for a description of these commands see the
    -.B Commands
    -subsection):
    -.
    -.nr a \n(.j
    -.ad l
    -.TP
    -.B \-b
    -.B "no-label-in-text; no-label-in-reference"
    -.
    -.TP
    -.B \-e
    -.B accumulate
    -.
    -.TP
    -.B \-n
    -.B no-default-database
    -.
    -.TP
    -.B \-C
    -.B compatible
    -.
    -.TP
    -.B \-P
    -.B move-punctuation
    -.
    -.TP
    -.B \-S
    -.B
    -label\ "(A.n|Q)\ ',\ '\ (D.y|D)"; \%bracket-label\ "\ ("\ )\ ";\ "
    -.
    -.TP
    -.BI \-a n
    -.B reverse
    -.BI A n
    -.
    -.TP
    -.BI \-c fields
    -.B capitalize
    -.I fields
    -.
    -.TP
    -.BI \-f n
    -.B label
    -.BI % n
    -.
    -.TP
    -.BI \-i fields
    -.B search-ignore
    -.I fields
    -.
    -.TP
    -.B \-k
    -.B label
    -.B L\(ti%a
    -.
    -.TP
    -.BI \-k field
    -.B label
    -.IB field \(ti%a
    -.
    -.TP
    -.B \-l
    -.B label
    -.BI A.nD.y%a
    -.
    -.TP
    -.BI \-l m
    -.B label
    -.BI A.n+ m D.y%a
    -.
    -.TP
    -.BI \-l, n
    -.B label
    -.BI A.nD.y\- n %a
    -.
    -.TP
    -.BI \-l m , n
    -.B label
    -.BI A.n+ m D.y\- n %a
    -.
    -.TP
    -.BI \-p filename
    -.B database
    -.I filename
    -.
    -.TP
    -.BI \-s spec
    -.B sort
    -.I spec
    -.
    -.TP
    -.BI \-t n
    -.B search-truncate
    -.I n
    -.ad \na
    -.
    -.LP
    -These options are equivalent to the following commands with the
    -addition that the filenames specified on the command line are
    -processed as if they were arguments to the
    -.B bibliography
    -command instead of in the normal way:
    -.
    -.TP
    -.B \-B
    -.B "annotate X AP; no-label-in-reference"
    -.
    -.TP
    -.BI \-B field . macro
    -.B annotate
    -.I field
    -.IB macro ;
    -.B no-label-in-reference
    -.
    -.LP
    -The following options have no equivalent commands:
    -.
    -.TP
    -.B \-v
    -Print the version number.
    -.
    -.TP
    -.B \-R
    -Don't recognize lines beginning with
    -.BR .R1 / .R2 .
    -.
    -.
    -.
    -.SH USAGE
    -.
    -.
    -.SS Bibliographic databases
    -The bibliographic database is a text file consisting of records
    -separated by one or more blank lines.
    -Within each record fields start with a
    -.B %
    -at the beginning of a line.
    -Each field has a one character name that immediately follows the
    -.BR % .
    -It is best to use only upper and lower case letters for the names
    -of fields.
    -The name of the field should be followed by exactly one space,
    -and then by the contents of the field.
    -Empty fields are ignored.
    -The conventional meaning of each field is as follows:
    -.
    -.TP
    -.B A
    -The name of an author.
    -If the name contains a title such as
    -.B Jr.\&
    -at the end,
    -it should be separated from the last name by a comma.
    -There can be multiple occurrences of the
    -.B A
    -field.
    -The order is significant.
    -It is a good idea always to supply an
    -.B A
    -field or a
    -.B Q
    -field.
    -.
    -.TP
    -.B B
    -For an article that is part of a book, the title of the book.
    -.
    -.TP
    -.B C
    -The place (city) of publication.
    -.
    -.TP
    -.B D
    -The date of publication.
    -The year should be specified in full.
    -If the month is specified, the name rather than the number of the month
    -should be used, but only the first three letters are required.
    -It is a good idea always to supply a
    -.B D
    -field;
    -if the date is unknown, a value such as
    -.B in press
    -or
    -.B unknown
    -can be used.
    -.
    -.TP
    -.B E
    -For an article that is part of a book, the name of an editor of the book.
    -Where the work has editors and no authors,
    -the names of the editors should be given as
    -.B A
    -fields and
    -.B ,\ (ed)
    -or
    -.B ,\ (eds)
    -should be appended to the last author.
    -.
    -.TP
    -.B G
    -US Government ordering number.
    -.
    -.TP
    -.B I
    -The publisher (issuer).
    -.
    -.TP
    -.B J
    -For an article in a journal, the name of the journal.
    -.
    -.TP
    -.B K
    -Keywords to be used for searching.
    -.
    -.TP
    -.B L
    -Label.
    -.
    -.TP
    -.B N
    -Journal issue number.
    -.
    -.TP
    -.B O
    -Other information.
    -This is usually printed at the end of the reference.
    -.
    -.TP
    -.B P
    -Page number.
    -A range of pages can be specified as
    -.IB m \- n\fR.
    -.
    -.TP
    -.B Q
    -The name of the author, if the author is not a person.
    -This will only be used if there are no
    -.B A
    -fields.
    -There can only be one
    -.B Q
    -field.
    -.
    -.TP
    -.B R
    -Technical report number.
    -.
    -.TP
    -.B S
    -Series name.
    -.
    -.TP
    -.B T
    -Title.
    -For an article in a book or journal,
    -this should be the title of the article.
    -.
    -.TP
    -.B V
    -Volume number of the journal or book.
    -.
    -.TP
    -.B X
    -Annotation.
    -.
    -.LP
    -For all fields except
    -.B A
    -and
    -.BR E ,
    -if there is more than one occurrence of a particular field in a record,
    -only the last such field will be used.
    -.
    -.LP
    -If accent strings are used, they should follow the character to be accented.
    -This means that the
    -.B AM
    -macro must be used with the
    -.B \-ms
    -macros.
    -Accent strings should not be quoted:
    -use one
    -.B \e
    -rather than two.
    -.
    -.
    -.SS Citations
    -The format of a citation is
    -.
    -.RS
    -.BI .[ opening-text
    -.br
    -.I "flags keywords"
    -.br
    -.I fields
    -.br
    -.BI .] closing-text
    -.RE
    -.
    -.LP
    -The
    -.IR opening-text ,
    -.IR closing-text
    -and
    -.I flags
    -components are optional.
    -Only one of the
    -.I keywords
    -and
    -.I fields
    -components need be specified.
    -.
    -.LP
    -The
    -.I keywords
    -component says to search the bibliographic databases for a reference
    -that contains all the words in
    -.IR keywords .
    -It is an error if more than one reference if found.
    -.
    -.LP
    -The
    -.I fields
    -components specifies additional fields to replace or supplement
    -those specified in the reference.
    -When references are being accumulated and the
    -.I keywords
    -component is non-empty,
    -then additional fields should be specified only on the first
    -occasion that a particular reference is cited,
    -and will apply to all citations of that reference.
    -.
    -.LP
    -The
    -.I opening-text
    -and
    -.I closing-text
    -component specifies strings to be used to bracket the label instead
    -of the strings specified in the
    -.B bracket-label
    -command.
    -If either of these components is non-empty,
    -the strings specified in the
    -.B bracket-label
    -command will not be used;
    -this behaviour can be altered using the
    -.B [
    -and
    -.B ]
    -flags.
    -Note that leading and trailing spaces are significant for these components.
    -.
    -.LP
    -The
    -.I flags
    -component is a list of
    -non-alphanumeric characters each of which modifies the treatment
    -of this particular citation.
    -Unix refer will treat these flags as part of the keywords and
    -so will ignore them since they are non-alphanumeric.
    -The following flags are currently recognized:
    -.
    -.TP
    -.B #
    -This says to use the label specified by the
    -.B short-label
    -command,
    -instead of that specified by the
    -.B label
    -command.
    -If no short label has been specified, the normal label will be used.
    -Typically the short label is used with author-date labels
    -and consists of only the date and possibly a disambiguating letter;
    -the
    -.B #
    -is supposed to be suggestive of a numeric type of label.
    -.
    -.TP
    -.B [
    -Precede
    -.I opening-text
    -with the first string specified in the
    -.B bracket-label
    -command.
    -.
    -.TP
    -.B ]
    -Follow
    -.I closing-text
    -with the second string specified in the
    -.B bracket-label
    -command.
    -.
    -.LP
    -One advantages of using the
    -.B [
    -and
    -.B ]
    -flags rather than including the brackets in
    -.I opening-text
    -and
    -.I closing-text
    -is that
    -you can change the style of bracket used in the document just by changing the
    -.B bracket-label
    -command.
    -Another advantage is that sorting and merging of citations
    -will not necessarily be inhibited if the flags are used.
    -.
    -.LP
    -If a label is to be inserted into the text,
    -it will be attached to the line preceding the
    -.B .[
    -line.
    -If there is no such line, then an extra line will be inserted before the
    -.B .[
    -line and a warning will be given.
    -.
    -.LP
    -There is no special notation for making a citation to multiple references.
    -Just use a sequence of citations, one for each reference.
    -Don't put anything between the citations.
    -The labels for all the citations will be attached to the line preceding
    -the first citation.
    -The labels may also be sorted or merged.
    -See the description of the
    -.B <>
    -label expression, and of the
    -.B sort-adjacent-labels
    -and
    -.B abbreviate-label-ranges
    -command.
    -A label will not be merged if its citation has a non-empty
    -.I opening-text
    -or
    -.IR closing-text .
    -However, the labels for a citation using the
    -.B ]
    -flag and without any
    -.I closing-text
    -immediately followed by a citation using the
    -.B [
    -flag and without any
    -.I opening-text
    -may be sorted and merged
    -even though the first citation's
    -.I opening-text
    -or the second citation's
    -.I closing-text
    -is non-empty.
    -(If you wish to prevent this just make the first citation's
    -.I closing-text
    -.BR \e& .)
    -.
    -.
    -.SS Commands
    -Commands are contained between lines starting with
    -.B .R1
    -and
    -.BR .R2 .
    -Recognition of these lines can be prevented by the
    -.B \-R
    -option.
    -When a
    -.B .R1
    -line is recognized any accumulated references are flushed out.
    -Neither
    -.B .R1
    -nor
    -.B .R2
    -lines,
    -nor anything between them
    -is output.
    -.
    -.LP
    -Commands are separated by newlines or
    -.BR ; s.
    -.B #
    -introduces a comment that extends to the end of the line
    -(but does not conceal the newline).
    -Each command is broken up into words.
    -Words are separated by spaces or tabs.
    -A word that begins with
    -.B \(ts
    -extends to the next
    -.B \(ts
    -that is not followed by another
    -.BR \(ts .
    -If there is no such
    -.B \(ts
    -the word extends to the end of the line.
    -Pairs of
    -.B \(ts
    -in a word beginning with
    -.B \(ts
    -collapse to a single
    -.BR \(ts .
    -Neither
    -.B #
    -nor
    -.B ;
    -are recognized inside
    -.BR \(ts s.
    -A line can be continued by ending it with
    -.BR \e ;
    -this works everywhere except after a
    -.BR # .
    -.
    -.LP
    -.ds n \fR*
    -Each command
    -.I name
    -that is marked with \*n has an associated negative command
    -.BI no- name
    -that undoes the effect of
    -.IR name .
    -For example, the
    -.B no-sort
    -command specifies that references should not be sorted.
    -The negative commands take no arguments.
    -.
    -.LP
    -In the following description each argument must be a single word;
    -.I field
    -is used for a single upper or lower case letter naming a field;
    -.I fields
    -is used for a sequence of such letters;
    -.I m
    -and
    -.I n
    -are used for a non-negative numbers;
    -.I string
    -is used for an arbitrary string;
    -.I filename
    -is used for the name of a file.
    -.
    -.Tp \w'\fBabbreviate-label-ranges'u+2n
    -.BI abbreviate\*n\  fields\ string1\ string2\ string3\ string4
    -Abbreviate the first names of
    -.IR fields .
    -An initial letter will be separated from another initial letter by
    -.IR string1 ,
    -from the last name by
    -.IR string2 ,
    -and from anything else
    -(such as a
    -.B von
    -or
    -.BR de )
    -by
    -.IR string3 .
    -These default to a period followed by a space.
    -In a hyphenated first name,
    -the initial of the first part of the name will be separated from the hyphen by
    -.IR string4 ;
    -this defaults to a period.
    -No attempt is made to handle any ambiguities that might
    -result from abbreviation.
    -Names are abbreviated before sorting and before
    -label construction.
    -.
    -.TP
    -.BI abbreviate-label-ranges\*n\  string
    -Three or more adjacent labels that refer to consecutive references
    -will be abbreviated to a label consisting
    -of the first label, followed by
    -.I string
    -followed by the last label.
    -This is mainly useful with numeric labels.
    -If
    -.I string
    -is omitted it defaults to
    -.BR \- .
    -.
    -.TP
    -.B accumulate\*n
    -Accumulate references instead of writing out each reference
    -as it is encountered.
    -Accumulated references will be written out whenever a reference
    -of the form
    -.
    -.RS
    -.IP
    -.B .[
    -.br
    -.B $LIST$
    -.br
    -.B .]
    -.
    -.LP
    -is encountered,
    -after all input files hve been processed,
    -and whenever
    -.B .R1
    -line is recognized.
    -.RE
    -.
    -.TP
    -.BI annotate\*n\  field\ string
    -.I field
    -is an annotation;
    -print it at the end of the reference as a paragraph preceded by the line
    -.
    -.RS
    -.IP
    -.BI . string
    -.
    -.LP
    -If
    -.I macro
    -is omitted it will default to
    -.BR AP ;
    -if
    -.I field
    -is also omitted it will default to
    -.BR X .
    -Only one field can be an annotation.
    -.RE
    -.
    -.TP
    -.BI articles\  string \fR\|.\|.\|.
    -.IR string \|.\|.\|.\&
    -are definite or indefinite articles, and should be ignored at the beginning of
    -.B T
    -fields when sorting.
    -Initially,
    -.BR the ,
    -.B a
    -and
    -.B an
    -are recognized as articles.
    -.
    -.TP
    -.BI bibliography\  filename \fR\|.\|.\|.
    -Write out all the references contained in the bibliographic databases
    -.IR filename \|.\|.\|.
    -This command should come last in a
    -.BR .R1 / .R2
    -block.
    -.
    -.TP
    -.BI bracket-label\  string1\ string2\ string3
    -In the text, bracket each label
    -with
    -.I string1
    -and
    -.IR string2 .
    -An occurrence of
    -.I string2
    -immediately followed by
    -.I string1
    -will be turned into
    -.IR string3 .
    -The default behaviour is
    -.
    -.RS
    -.IP
    -.B
    -bracket-label \e*([. \e*(.] ", "
    -.RE
    -.
    -.TP
    -.BI capitalize\  fields
    -Convert
    -.I fields
    -to caps and small caps.
    -.
    -.TP
    -.B compatible\*n
    -Recognize
    -.B .R1
    -and
    -.B .R2
    -even when followed by a character other than space or newline.
    -.
    -.TP
    -.BI database\  filename \fR\|.\|.\|.
    -Search the bibliographic databases
    -.IR filename \|.\|.\|.
    -For each
    -.I filename
    -if an index
    -.IB filename .i
    -created by
    -.BR indxbib (1)
    -exists, then it will be searched instead;
    -each index can cover multiple databases.
    -.
    -.TP
    -.BI date-as-label\*n\  string
    -.I string
    -is a label expression that specifies a string with which to replace the
    -.B D
    -field after constructing the label.
    -See the
    -.B "Label expressions"
    -subsection for a description of label expressions.
    -This command is useful if you do not want explicit labels in the
    -reference list, but instead want to handle any necessary
    -disambiguation by qualifying the date in some way.
    -The label used in the text would typically be some combination of the
    -author and date.
    -In most cases you should also use the
    -.B no-label-in-reference
    -command.
    -For example,
    -.
    -.RS
    -.IP
    -.B "date-as-label D.+yD.y%a*D.-y"
    -.
    -.LP
    -would attach a disambiguating letter to the year part of the
    -.B D
    -field in the reference.
    -.RE
    -.
    -.TP
    -.B default-database\*n
    -The default database should be searched.
    -This is the default behaviour, so the negative version of
    -this command is more useful.
    -.B refer
    -determines whether the default database should be searched
    -on the first occasion that it needs to do a search.
    -Thus a
    -.B no-default-database
    -command must be given before then,
    -in order to be effective.
    -.
    -.TP
    -.BI discard\*n\  fields
    -When the reference is read,
    -.I fields
    -should be discarded;
    -no string definitions for
    -.I fields
    -will be output.
    -Initially,
    -.I fields
    -are
    -.BR XYZ .
    -.
    -.TP
    -.BI et-al\*n\  string\ m\ n
    -Control use of
    -.B "et al"
    -in the evaluation of
    -.B @
    -expressions in label expressions.
    -If the number of authors needed to make the author sequence
    -unambiguous is
    -.I u
    -and the total number of authors is
    -.I t
    -then the last
    -.IR t \|\-\| u
    -authors will be replaced by
    -.I string
    -provided that
    -.IR t \|\-\| u
    -is not less than
    -.I m
    -and
    -.I t
    -is not less than
    -.IR n .
    -The default behaviour is
    -.
    -.RS
    -.IP
    -.B
    -et-al " et al" 2 3
    -.RE
    -.
    -.TP
    -.BI include\  filename
    -Include
    -.I filename
    -and interpret the contents as commands.
    -.
    -.TP
    -.BI join-authors\  string1\ string2\ string3
    -This says how authors should be joined together.
    -When there are exactly two authors, they will be joined with
    -.IR string1 .
    -When there are more than two authors, all but the last two will
    -be joined with
    -.IR string2 ,
    -and the last two authors will be joined with
    -.IR string3 .
    -If
    -.I string3
    -is omitted,
    -it will default to
    -.IR string1 ;
    -if
    -.I string2
    -is also omitted it will also default to
    -.IR string1 .
    -For example,
    -.
    -.RS
    -.IP
    -.B
    -join-authors " and " ", " ", and "
    -.
    -.LP
    -will restore the default method for joining authors.
    -.RE
    -.
    -.TP
    -.B label-in-reference\*n
    -When outputting the reference,
    -define the string
    -.B [F
    -to be the reference's label.
    -This is the default behaviour; so the negative version
    -of this command is more useful.
    -.
    -.TP
    -.B label-in-text\*n
    -For each reference output a label in the text.
    -The label will be separated from the surrounding text as described in the
    -.B bracket-label
    -command.
    -This is the default behaviour; so the negative version
    -of this command is more useful.
    -.
    -.TP
    -.BI label\  string
    -.I string
    -is a label expression describing how to label each reference.
    -.
    -.TP
    -.BI separate-label-second-parts\  string
    -When merging two-part labels, separate the second part of the second
    -label from the first label with
    -.IR string .
    -See the description of the
    -.B <>
    -label expression.
    -.
    -.TP
    -.B move-punctuation\*n
    -In the text, move any punctuation at the end of line past the label.
    -It is usually a good idea to give this command unless you are using
    -superscripted numbers as labels.
    -.
    -.TP
    -.BI reverse\*n\  string
    -Reverse the fields whose names
    -are in
    -.IR string .
    -Each field name can be followed by a number which says
    -how many such fields should be reversed.
    -If no number is given for a field, all such fields will be reversed.
    -.
    -.TP
    -.BI search-ignore\*n\  fields
    -While searching for keys in databases for which no index exists,
    -ignore the contents of
    -.IR fields .
    -Initially, fields
    -.B XYZ
    -are ignored.
    -.
    -.TP
    -.BI search-truncate\*n\  n
    -Only require the first
    -.I n
    -characters of keys to be given.
    -In effect when searching for a given key
    -words in the database are truncated to the maximum of
    -.I n
    -and the length of the key.
    -Initially
    -.I n
    -is\ 6.
    -.
    -.TP
    -.BI short-label\*n\  string
    -.I string
    -is a label expression that specifies an alternative (usually shorter)
    -style of label.
    -This is used when the
    -.B #
    -flag is given in the citation.
    -When using author-date style labels, the identity of the author
    -or authors is sometimes clear from the context, and so it
    -may be desirable to omit the author or authors from the label.
    -The
    -.B short-label
    -command will typically be used to specify a label containing just
    -a date and possibly a disambiguating letter.
    -.
    -.TP
    -.BI sort\*n\  string
    -Sort references according to
    -.BR string .
    -References will automatically be accumulated.
    -.I string
    -should be a list of field names, each followed by a number,
    -indicating how many fields with the name should be used for sorting.
    -.B +
    -can be used to indicate that all the fields with the name should be used.
    -Also
    -.B .\&
    -can be used to indicate the references should be sorted using the
    -(tentative) label.
    -(The
    -.B "Label expressions"
    -subsection describes the concept of a tentative label.)
    -.
    -.TP
    -.B sort-adjacent-labels\*n
    -Sort labels that are adjacent in the text according to their
    -position in the reference list.
    -This command should usually be given if the
    -.B abbreviate-label-ranges
    -command has been given,
    -or if the label expression contains a
    -.B <>
    -expression.
    -This will have no effect unless references are being accumulated.
    -.
    -.
    -.SS Label expressions
    -.
    -.LP
    -Label expressions can be evaluated both normally and tentatively.
    -The result of normal evaluation is used for output.
    -The result of tentative evaluation, called the
    -.IR "tentative label" ,
    -is used to gather the information
    -that normal evaluation needs to disambiguate the label.
    -Label expressions specified by the
    -.B date-as-label
    -and
    -.B short-label
    -commands are not evaluated tentatively.
    -Normal and tentative evaluation are the same for all types
    -of expression other than
    -.BR @ ,
    -.BR * ,
    -and
    -.B %
    -expressions.
    -The description below applies to normal evaluation,
    -except where otherwise specified.
    -.
    -.TP
    -.I field
    -.TQ
    -.I field\ n
    -The
    -.IR n -th
    -part of
    -.IR field .
    -If
    -.I n
    -is omitted, it defaults to\ 1.
    -.
    -.TP
    -.BI ' string '
    -The characters in
    -.I string
    -literally.
    -.
    -.TP
    -.B @
    -All the authors joined as specified by the
    -.B join-authors
    -command.
    -The whole of each author's name will be used.
    -However, if the references are sorted by author
    -(that is the sort specification starts with
    -.BR A+ ),
    -then authors' last names will be used instead, provided that this does
    -not introduce ambiguity,
    -and also an initial subsequence of the authors may be used
    -instead of all the authors, again provided that this does not
    -introduce ambiguity.
    -The use of only the last name for the
    -.IR i -th
    -author of some reference
    -is considered to be ambiguous if
    -there is some other reference,
    -such that the first
    -.IR i \|-\|1
    -authors of the references are the same,
    -the
    -.IR i -th
    -authors are not the same,
    -but the
    -.IR i -th
    -authors' last names are the same.
    -A proper initial subsequence of the sequence
    -of authors for some reference is considered to be ambiguous if there is
    -a reference with some other sequence of authors which also has
    -that subsequence as a proper initial subsequence.
    -When an initial subsequence of authors is used, the remaining
    -authors are replaced by the string specified by the
    -.B et-al
    -command;
    -this command may also specify additional requirements that must be
    -met before an initial subsequence can be used.
    -.B @
    -tentatively evaluates to a canonical representation of the authors,
    -such that authors that compare equally for sorting purpose
    -will have the same representation.
    -.
    -.TP
    -.BI % n
    -.TQ
    -.B %a
    -.TQ
    -.B %A
    -.TQ
    -.B %i
    -.TQ
    -.B %I
    -The serial number of the reference formatted according to the character
    -following the
    -.BR % .
    -The serial number of a reference is\ 1 plus the number of earlier references
    -with same tentative label as this reference.
    -These expressions tentatively evaluate to an empty string.
    -.
    -.TP
    -.IB expr *
    -If there is another reference with the same tentative label as
    -this reference, then
    -.IR expr ,
    -otherwise an empty string.
    -It tentatively evaluates to an empty string.
    -.
    -.TP
    -.IB expr + n
    -.TQ
    -.IB expr \- n
    -The first
    -.RB ( + )
    -or last
    -.RB ( \- )
    -.I n
    -upper or lower case letters or digits of
    -.IR expr .
    -Troff special characters (such as
    -.BR \e('a )
    -count as a single letter.
    -Accent strings are retained but do not count towards the total.
    -.
    -.TP
    -.IB expr .l
    -.I expr
    -converted to lowercase.
    -.
    -.TP
    -.IB expr .u
    -.I expr
    -converted to uppercase.
    -.
    -.TP
    -.IB expr .c
    -.I expr
    -converted to caps and small caps.
    -.
    -.TP
    -.IB expr .r
    -.I expr
    -reversed so that the last name is first.
    -.
    -.TP
    -.IB expr .a
    -.I expr
    -with first names abbreviated.
    -Note that fields specified in the
    -.B abbreviate
    -command are abbreviated before any labels are evaluated.
    -Thus
    -.B .a
    -is useful only when you want a field to be abbreviated in a label
    -but not in a reference.
    -.
    -.TP
    -.IB expr .y
    -The year part of
    -.IR expr .
    -.
    -.TP
    -.IB expr .+y
    -The part of
    -.I expr
    -before the year, or the whole of
    -.I expr
    -if it does not contain a year.
    -.
    -.TP
    -.IB expr .\-y
    -The part of
    -.I expr
    -after the year, or an empty string if
    -.I expr
    -does not contain a year.
    -.
    -.TP
    -.IB expr .n
    -The last name part of
    -.IR expr .
    -.
    -.TP
    -.IB expr1 \(ti expr2
    -.I expr1
    -except that if the last character of
    -.I expr1
    -is
    -.B \-
    -then it will be replaced by
    -.IR expr2 .
    -.
    -.TP
    -.I expr1\ expr2
    -The concatenation of
    -.I expr1
    -and
    -.IR expr2 .
    -.
    -.TP
    -.IB expr1 | expr2
    -If
    -.I expr1
    -is non-empty then
    -.I expr1
    -otherwise
    -.IR expr2 .
    -.
    -.TP
    -.IB expr1 & expr2
    -If
    -.I expr1
    -is non-empty
    -then
    -.I expr2
    -otherwise an empty string.
    -.
    -.TP
    -.IB expr1 ? expr2 : expr3
    -If
    -.I expr1
    -is non-empty
    -then
    -.I expr2
    -otherwise
    -.IR expr3 .
    -.
    -.TP
    -.BI < expr >
    -The label is in two parts, which are separated by
    -.IR expr .
    -Two adjacent two-part labels which have the same first part will be
    -merged by appending the second part of the second label onto the first
    -label separated by the string specified in the
    -.B separate-label-second-parts
    -command (initially, a comma followed by a space); the resulting label
    -will also be a two-part label with the same first part as before
    -merging, and so additional labels can be merged into it.
    -Note that it is permissible for the first part to be empty;
    -this maybe desirable for expressions used in the
    -.B short-label
    -command.
    -.
    -.TP
    -.BI ( expr )
    -The same as
    -.IR expr .
    -Used for grouping.
    -.
    -.LP
    -The above expressions are listed in order of precedence
    -(highest first);
    -.B &
    -and
    -.B |
    -have the same precedence.
    -.
    -.
    -.SS Macro interface
    -Each reference starts with a call to the macro
    -.BR ]- .
    -The string
    -.B [F
    -will be defined to be the label for this reference,
    -unless the
    -.B no-label-in-reference
    -command has been given.
    -There then follows a series of string definitions,
    -one for each field:
    -string
    -.BI [ X
    -corresponds to field
    -.IR X .
    -The number register
    -.B [P
    -is set to\ 1 if the
    -.B P
    -field contains a range of pages.
    -The
    -.BR [T ,
    -.B [A
    -and
    -.B [O
    -number registers are set to\ 1 according as the
    -.BR T ,
    -.B A
    -and
    -.B O
    -fields end with one of the characters
    -.BR .?! .
    -The
    -.B [E
    -number register will be set to\ 1 if the
    -.B [E
    -string contains more than one name.
    -The reference is followed by a call to the
    -.B ][
    -macro.
    -The first argument to this macro gives a number representing
    -the type of the reference.
    -If a reference contains a
    -.B J
    -field, it will be classified as type\ 1,
    -otherwise if it contains a
    -.B B
    -field, it will type\ 3,
    -otherwise if it contains a
    -.B G
    -or
    -.B R
    -field it will be type\ 4,
    -otherwise if contains a
    -.B I
    -field it will be type\ 2,
    -otherwise it will be type\ 0.
    -The second argument is a symbolic name for the type:
    -.BR other ,
    -.BR journal-article ,
    -.BR book ,
    -.B article-in-book
    -or
    -.BR tech-report .
    -Groups of references that have been accumulated
    -or are produced by the
    -.B bibliography
    -command are preceded by a call to the
    -.B ]<
    -macro and followed by a call to the
    -.B ]>
    -macro.
    -.
    -.
    -.
    -.SH FILES
    -.
    -.Tp \w'\fB/usr/dict/papers/Ind'u+2n
    -.B /usr/dict/papers/Ind
    -Default database.
    -.
    -.TP
    -.IB file .i
    -Index files.
    -.
    -.
    -.
    -.SH ENVIRONMENT
    -.
    -.Tp \w'\fBREFER'u+2n
    -.B REFER
    -If set, overrides the default database.
    -.
    -.
    -.
    -.SH "SEE ALSO"
    -.BR indxbib (1),
    -.BR lookbib (1),
    -.BR lkbib (1)
    -.br
    -.
    -.
    -.
    -.SH BUGS
    -In label expressions,
    -.B <>
    -expressions are ignored inside
    -.BI . char
    -expressions.
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/soelim.1 b/gen/usr/share/man/man1/soelim.1
    deleted file mode 100644
    index 5930e03..0000000
    --- a/gen/usr/share/man/man1/soelim.1
    +++ /dev/null
    @@ -1,216 +0,0 @@
    -'\" p
    -.ig
    -Copyright (C) 1989-2000, 2001, 2003, 2004 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.
    -.mso pic.tmac
    -.
    -.TH SOELIM 1 "6 August 2004" "Groff Version 1.19.2"
    -.
    -.SH NAME
    -soelim \- interpret .so requests in groff input
    -.
    -.SH SYNOPSIS
    -.B soelim
    -[
    -.B \-Crtv
    -]
    -[
    -.BI \-I dir
    -]
    -[
    -.IR files \|.\|.\|.\|
    -]
    -.
    -.PP
    -It is possible to have whitespace between the
    -.B \-I
    -command line option and its parameter.
    -.
    -.SH DESCRIPTION
    -.B soelim
    -reads
    -.I files
    -and replaces lines of the form
    -.IP
    -.BI .so\  file
    -.LP
    -by the contents of
    -.IR file .
    -It is useful if files included with
    -.B so
    -need to be preprocessed.
    -Normally,
    -.B soelim
    -should be invoked with the
    -.B \-s
    -option of
    -.BR groff .
    -.
    -.PP
    -Note that there must be no whitespace between the leading dot and
    -the two characters `s' and `o'.  Otherwise, only
    -.B groff
    -interprets the
    -.B .so
    -request (and
    -.B soelim
    -ignores it).
    -.
    -.SH OPTIONS
    -.TP
    -.B \-C
    -Recognize
    -.B .so
    -even when followed by a character other than space or newline.
    -.
    -.TP
    -.BI \-I dir
    -This option may be used to specify a directory to search for
    -files (both those on the command line and those named in
    -.B \&.so
    -requests).
    -The current directory is always searched first.
    -This option may be specified more than once,
    -the directories will be searched in the order specified.
    -No directory search is performed for files specified using an absolute path.
    -.
    -.TP
    -.B \-r
    -Do not add .lf requests (for general use, with non-groff files).
    -.
    -.TP
    -.B \-t
    -Don't emit .lf requests but TeX comment lines (starting with `%') giving
    -the current file and line number.
    -.
    -.TP
    -.B \-v
    -Print the version number.
    -.
    -.SH USAGE
    -The normal processing sequence of groff is this:
    -.
    -.PP
    -.ie t \{\
    -.PS
    -box invisible width 0.5 height 0.4 "input" "file";
    -move to last box .bottom;
    -down;
    -arrow 0.3;
    -box invisible width 0.8 height 0.2 "preprocessor";
    -move to last box .right
    -right;
    -arrow 0.3;
    -A: box invisible width 0.35 height 0.2 "troff";
    -move to last box .top;
    -up;
    -move 0.3;
    -box invisible width 0.6 height 0.4 "sourced" "file";
    -line <- up 0.3 from A.top;
    -move to A.right;
    -right;
    -arrow 0.3;
    -box invisible width 0.85 height 0.2 "postprocessor";
    -move to last box .bottom;
    -down;
    -arrow 0.3;
    -box invisible width 0.5 height 0.4 "output" "file"
    -.PE
    -.\}
    -.el \{\
    -.nf
    -          input        sourced
    -          file          file
    -            |             |
    -            v             v
    -        preprocessor -> troff -> postprocessor
    -                                      |
    -                                      v
    -                                   output
    -                                    file
    -.fi
    -.\}
    -.PP
    -.
    -That is, files sourced with
    -.B .so
    -are normally read
    -.I only
    -by
    -.B troff
    -(the actual formatter).
    -.B soelim
    -is
    -.I not
    -required for
    -.B troff
    -to source files.
    -.
    -.PP
    -If a file to be sourced should also be preprocessed, it must
    -already be read
    -.I before
    -the input file passes through the preprocessor.
    -This is handled by
    -.BR soelim :
    -.
    -.PP
    -.ie t \{\
    -.PS
    -box invisible width 0.5 height 0.4 "input" "file";
    -move to last box .bottom;
    -down;
    -arrow 0.3;
    -A: box invisible width 0.5 height 0.2 "soelim";
    -line <- 0.3;
    -box invisible width 0.5 height 0.4 "sourced" "file";
    -move to A.right;
    -right;
    -arrow 0.3;
    -box invisible width 0.8 height 0.2 "preprocessor";
    -arrow 0.3;
    -box invisible width 0.35 height 0.2 "troff";
    -arrow 0.3
    -box invisible width 0.85 height 0.2 "postprocessor";
    -move to last box .bottom;
    -down;
    -arrow 0.3;
    -box invisible width 0.5 height 0.4 "output" "file"
    -.PE
    -.\}
    -.el \{\
    -.nf
    -          input
    -          file
    -            |
    -            v
    -          soelim -> preprocessor -> troff -> postprocessor
    -            ^                                     |
    -            |                                     v
    -         sourced                               output
    -          file                                  file
    -.fi
    -.\}
    -.
    -.SH "SEE ALSO"
    -.BR groff (1)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/tbl.1 b/gen/usr/share/man/man1/tbl.1
    deleted file mode 100644
    index ff0df4c..0000000
    --- a/gen/usr/share/man/man1/tbl.1
    +++ /dev/null
    @@ -1,493 +0,0 @@
    -.ig
    -Copyright (C) 1989-1995, 2001, 2002, 2003, 2004
    -  Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.TH TBL 1 "11 September 2004" "Groff Version 1.19.2"
    -.SH NAME
    -tbl \- format tables for troff
    -.
    -.
    -.SH SYNOPSIS
    -.B tbl
    -[
    -.B \-Cv
    -]
    -[
    -.IR files \|.\|.\|.\&
    -]
    -.
    -.
    -.SH DESCRIPTION
    -This manual page describes the GNU version of
    -.BR tbl ,
    -which is part of the groff document formatting system.
    -.B tbl
    -compiles descriptions of tables embedded within
    -.B troff
    -input files into commands that are understood by
    -.BR troff .
    -Normally, it should be invoked using the
    -.B \-t
    -option of
    -.B groff.
    -It is highly compatible with Unix
    -.BR tbl .
    -The output generated by GNU
    -.B tbl
    -cannot be processed with Unix
    -.BR troff ;
    -it must be processed with GNU
    -.BR troff .
    -If no files are given on the command line, the standard input
    -will be read.
    -A filename of
    -.B \-
    -will cause the standard input to be read.
    -.
    -.
    -.SH OPTIONS
    -.TP
    -.B \-C
    -Enable compatibility mode to
    -recognize
    -.B .TS
    -and
    -.B .TE
    -even when followed by a character other than space or newline.
    -Leader characters (\[rs]a) are handled as interpreted.
    -.TP
    -.B \-v
    -Print the version number.
    -.
    -.
    -.SH USAGE
    -.B tbl
    -expects to find table descriptions wrapped in the
    -.B .TS
    -(table start) and
    -.B .TE
    -(table end) macros.
    -The line immediately following the
    -.B .TS
    -macro may contain any of the following global options (ignoring the case
    -of characters -- Unix tbl only accepts options with all characters lowercase
    -or all characters uppercase):
    -.
    -.TP
    -.B center
    -Centers the table (default is left-justified).
    -The alternative keyword name
    -.B centre
    -is also recognized (this is a GNU tbl extension).
    -.
    -.TP
    -.BI delim( xy )
    -Use
    -.I x
    -and
    -.I y
    -as start and end delimiters for
    -.BR eqn (1).
    -.
    -.TP
    -.B expand
    -Makes the table as wide as the current line length.
    -.
    -.TP
    -.B box
    -Encloses the table in a box.
    -.
    -.TP
    -.B doublebox
    -Encloses the table in a double box.
    -.
    -.TP
    -.B allbox
    -Encloses each item of the table in a box.
    -.
    -.TP
    -.B frame
    -Same as box (GNU tbl only).
    -.
    -.TP
    -.B doubleframe
    -Same as doublebox (GNU tbl only).
    -.
    -.TP
    -.BI tab( x )
    -Uses the character
    -.I x
    -instead of a tab to separate items in a line of input data.
    -.
    -.TP
    -.BI linesize( n )
    -Sets lines or rules (e.g. from
    -.BR box )
    -in
    -.IR n -point
    -type.
    -.
    -.TP
    -.B nokeep
    -Don't use diversions to prevent page breaks (GNU tbl only).
    -Normally
    -.B tbl
    -attempts to prevent undesirable breaks in the table by using diversions.
    -This can sometimes interact badly with macro packages' own use of
    -diversions, when footnotes, for example, are used.
    -.
    -.TP
    -.BI decimalpoint( c )
    -Set the character to be recognized as the decimal point in numeric
    -columns (GNU tbl only).
    -.
    -.TP
    -.B nospaces
    -Ignore leading and trailing spaces in data items (GNU tbl only).
    -.
    -.LP
    -The global options must end with a semicolon.
    -There might be whitespace after an option and its argument in parentheses.
    -.LP
    -After global options come lines describing the format of each line of
    -the table.
    -Each such format line describes one line of the table itself, except that
    -the last format line (which you must end with a period) describes all
    -remaining lines of the table.
    -A single key character describes each column of each line of the table.
    -You may run format specs for multiple lines together on the same line by
    -separating them with commas.
    -.LP
    -You may follow each key character with specifiers that determine the font
    -and point size of the corresponding item, that determine column width,
    -inter-column spacing, etc.
    -.LP
    -The longest format line defines the number of columns in the table; missing
    -format descriptors at the end of format lines are assumed to be `L'.
    -Extra columns in the data (which have no corresponding format entry) are
    -ignored.
    -.LP
    -The available key characters are:
    -.
    -.TP
    -c,C
    -Centers item within the column.
    -.
    -.TP
    -r,R
    -Right-justifies item within the column.
    -.
    -.TP
    -l,L
    -Left-justifies item within the column.
    -.
    -.TP
    -n,N
    -Numerically justifies item in the column: Units positions of numbers are
    -aligned vertically.
    -.
    -.TP
    -s,S
    -Spans previous item on the left into this column.
    -.
    -.TP
    -a,A
    -Centers longest line in this column and then left-justifies all other lines
    -in this column with respect to that centered line.
    -.
    -.TP
    -^
    -Spans down entry from previous row in this column.
    -.
    -.TP
    -_,-
    -Replaces this entry with a horizontal line.
    -.
    -.TP
    -=
    -.
    -Replaces this entry with a double horizontal line.
    -.
    -.TP
    -|
    -The corresponding column becomes a vertical rule (if two of these are
    -adjacent, a double vertical rule).
    -.
    -.LP
    -A vertical bar to the left of the first key-letter or to the right of the
    -last one produces a line at the edge of the table.
    -.LP
    -Here are the specifiers that can appear in suffixes to column key letters:
    -.
    -.TP
    -b,B
    -Short form of fB (make affected entries bold).
    -.
    -.TP
    -i,I
    -Short form of fI (make affected entries italic).
    -.
    -.TP
    -t,T
    -Start an item vertically spanning rows at the top of its range rather than
    -vertically centering it.
    -.
    -.TP
    -d,D
    -Start an item vertically spanning rows at the bottom of its range rather
    -than vertically centering it (GNU tbl only).
    -.
    -.TP
    -v,V
    -Followed by a number, this indicates the vertical line spacing to be used in
    -a multi-line table entry.
    -If signed, the current vertical line spacing is incremented or decremented
    -(using a signed number instead of a signed digit is a GNU tbl extension).
    -A vertical line spacing specifier followed by a column separation number
    -must be separated by one or more blanks.
    -No effect if the corresponding table entry isn't a text block.
    -.
    -.TP
    -f,F
    -Either of these specifiers may be followed by a font name (either one or two
    -characters long), font number (a single digit), or long name in parentheses
    -(the last form is a GNU tbl extension).
    -A one-letter font name must be separated by one or more blanks from whatever
    -follows.
    -.
    -.TP
    -p,P
    -Followed by a number, this does a point size change for the affected fields.
    -If signed, the current point size is incremented or decremented (using a
    -signed number instead of a signed digit is a GNU tbl extension).
    -A point size specifier followed by a column separation number must be
    -separated by one or more blanks.
    -.
    -.TP
    -w,W
    -Minimal column width value.
    -Must be followed either by a
    -.BR troff (1)
    -width expression in parentheses or a unitless integer.
    -If no unit is given, en units are used.
    -Also used as the default line length for included text blocks.
    -If used multiple times to specify the width for a particular column,
    -the last entry takes effect.
    -.
    -.TP
    -x,X
    -This is a GNU tbl extension.
    -Either of these specifiers may be followed by a macro name 
    -(either one or two characters long),
    -or long name in parentheses.
    -A one-letter macro name must be separated by one or more blanks
    -from whatever follows.
    -The macro which name can be specified here
    -must be defined before creating the table.
    -It is called just before the table's cell text is output. 
    -As implemented currently, this macro is only called if block input is used,
    -that is, text between `T{' and `T}'.
    -The macro should contain only simple
    -.B troff
    -requests to change the text block formatting, like text adjustment,
    -hyphenation, size, or font.
    -The macro is called
    -.I after
    -other cell modifications like
    -.BR b ,
    -.B f
    -or
    -.B v
    -are output.
    -Thus the macro can overwrite other modification specifiers.
    -.
    -.TP
    -e,E
    -Make equally-spaced columns.
    -.
    -.TP
    -u,U
    -Move the corresponding column up one half-line.
    -.
    -.TP
    -z,Z
    -Ignore the corresponding column for width-calculation purposes.
    -.
    -.LP
    -A number suffix on a key character is interpreted as a column
    -separation in ens (multiplied in proportion if the
    -.B expand
    -option is on).
    -Default separation is 3n.
    -.LP
    -The format lines are followed by lines containing the actual data for the
    -table, followed finally by
    -.BR .TE .
    -Within such data lines, items are normally separated by tab characters (or
    -the character specified with the
    -.B tab
    -option).
    -Long input lines can be broken across multiple lines if the last character
    -on the line is `\e' (which vanishes after concatenation).
    -.LP
    -A dot starting a line, followed by anything but a digit is handled as a
    -troff command, passed through without changes.
    -The table position is unchanged in this case.
    -.LP
    -If a data line consists of only `_' or `=', a single or double line,
    -respectively, is drawn across the table at that point; if a single item in a
    -data line consists of only `_' or `=', then that item is replaced by a
    -single or double line, joining its neighbours.
    -If a data item consists only of `\e_' or `\e=', a single or double line,
    -respectively, is drawn across the field at that point which does not join
    -its neighbours.
    -.LP
    -A data item consisting only of `\eRx' (`x' any character) is replaced by
    -repetitions of character `x' as wide as the column (not joining its
    -neighbours).
    -.LP
    -A data item consisting only of `\e^' indicates that the field immediately
    -above spans downward over this row.
    -.LP
    -A text block can be used to enter data as a single entry which would be
    -too long as a simple string between tabs.
    -It is started with `T{' and closed with `T}'.
    -The former must end a line, and the latter must start a line, probably
    -followed by other data columns (separated with tabs).
    -By default, the text block is formatted with the settings which were
    -active before entering the table, possibly overridden by the
    -.B v
    -and
    -.B w
    -tbl specifiers.
    -For example, to make all text blocks ragged-right, insert
    -.B .na
    -right before the starting
    -.B .TS
    -(and
    -.B .ad
    -after the table).
    -.LP
    -To change the data format within a table, use the
    -.B .T&
    -command (at the start of a line).
    -It is followed by format and data lines (but no global options) similar to
    -the
    -.B .TS
    -request.
    -.
    -.
    -.SH "INTERACTION WITH EQN"
    -.BR tbl (1)
    -should always be called before
    -.BR eqn (1)
    -.RB ( groff (1)
    -automatically takes care of the correct order of preprocessors).
    -.
    -.
    -.SH "GNU TBL ENHANCEMENTS"
    -There is no limit on the number of columns in a table, nor any limit on the
    -number of text blocks.
    -All the lines of a table are considered in deciding column widths, not just
    -the first 200.
    -Table continuation
    -.RB ( .T& )
    -lines are not restricted to the first 200 lines.
    -.LP
    -Numeric and alphabetic items may appear in the same column.
    -.LP
    -Numeric and alphabetic items may span horizontally.
    -.LP
    -.B tbl
    -uses register, string, macro and diversion names beginning with the digit\~\c
    -.BR 3 .
    -When using
    -.B tbl
    -you should avoid using any names beginning with a\~\c
    -.BR 3 .
    -.
    -.
    -.SH BUGS
    -You should use
    -.BR .TS\ H / .TH
    -in conjunction with a supporting macro package for
    -.I all
    -multi-page boxed tables.
    -If there is no header that you wish to appear at the top of each page
    -of the table, place the
    -.B .TH
    -line immediately after the format section.
    -Do not enclose a multi-page table within keep/release macros,
    -or divert it in any other way.
    -.LP
    -A text block within a table must be able to fit on one page.
    -.LP
    -The
    -.B bp
    -request cannot be used to force a page-break in a multi-page table.
    -Instead, define
    -.B BP
    -as follows
    -.IP
    -.B .de BP
    -.br
    -.B .ie '\e\en(.z'' .bp \e\e$1
    -.br
    -.B .el \e!.BP \e\e$1
    -.br
    -.B ..
    -.br
    -.LP
    -and use
    -.B BP
    -instead of
    -.BR bp .
    -.LP
    -Using \ea directly in a table to get leaders will not work (except in
    -compatibility mode).
    -This is correct behaviour: \ea is an
    -.B uninterpreted
    -leader.
    -To get leaders use a real leader, either by using a control A or like
    -this:
    -.IP
    -.nf
    -.ft B
    -\&.ds a \ea
    -\&.TS
    -tab(;);
    -lw(1i) l.
    -A\e*a;B
    -\&.TE
    -.ft
    -.fi
    -.
    -.
    -.SH REFERENCE
    -Lesk, M.E.: "TBL -- A Program to Format Tables".
    -For copyright reasons it cannot be included in the groff distribution,
    -but copies can be found with a title search on the World Wide Web.
    -.
    -.
    -.SH "SEE ALSO"
    -.BR groff (1),
    -.BR troff (1)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/tfmtodit.1 b/gen/usr/share/man/man1/tfmtodit.1
    deleted file mode 100644
    index 6410dcb..0000000
    --- a/gen/usr/share/man/man1/tfmtodit.1
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -.ig
    -Copyright (C) 1989-2000, 2001, 2002 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.ie t .ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X
    -.el .ds tx TeX
    -.\" Like TP, but if specified indent is more than half
    -.\" the current line-length - indent, use the default indent.
    -.de Tp
    -.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
    -.el .TP "\\$1"
    -..
    -.TH TFMTODIT 1 "26 February 2002" "Groff Version 1.19.2"
    -.SH NAME
    -tfmtodit \- create font files for use with groff \-Tdvi
    -.SH SYNOPSIS
    -.nr a \n(.j
    -.ad l
    -.nr i \n(.i
    -.in +\w'\fBtfmtodit 'u
    -.ti \niu
    -.B tfmtodit
    -.de OP
    -.ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
    -.el .RB "[\ " "\\$1" "\ ]"
    -..
    -.OP \-sv
    -.OP \-g gf_file
    -.OP \-k skewchar
    -.I tfm_file
    -.I map_file
    -.I font
    -.br
    -.ad \na
    -.PP
    -It is possible to have whitespace between a command line option and its
    -parameter.
    -.SH DESCRIPTION
    -.B tfmtodit
    -creates a font file for use with
    -.B
    -groff \-Tdvi\fR.
    -.I tfm_file
    -is the name of the \*(tx font metric file for the font.
    -.I map_file
    -is a file giving the groff names for characters in the font;
    -this file should consist of a sequence of lines of the form:
    -.IP
    -.I
    -n c1 c2 \fR.\|.\|.
    -.LP
    -where
    -.I n
    -is a decimal integer giving the position of the character in the font,
    -and
    -.IR c1 ,
    -.IR c2 ,.\|.\|.
    -are the groff names of the character.
    -If a character has no groff names but exists in the tfm file,
    -then it will be put in the groff font file as an unnamed character.
    -.I font
    -is the name of the groff font file.
    -The groff font file is written to
    -.IR font .
    -.LP
    -The
    -.B \-s
    -option should be given if the font is special
    -(a font is
    -.I special
    -if
    -.B troff
    -should search it whenever
    -a character is not found in the current font.)
    -If the font is special,
    -it should be listed in the
    -.B fonts
    -command in the DESC file;
    -if it is not special, there is no need to list it, since
    -.B troff
    -can automatically mount it when it's first used.
    -.LP
    -To do a good job of math typesetting, groff requires
    -font metric information not present in the tfm file.
    -The reason for this is that \*(tx has separate math italic fonts
    -whereas groff uses normal italic fonts for math.
    -The additional information required by groff is given by the
    -two arguments to the
    -.B math_fit
    -macro in the Metafont programs for the Computer Modern fonts.
    -In a text font (a font for which
    -.B math_fitting
    -is false), Metafont normally ignores these two arguments.
    -Metafont can be made to put this information in the gf file
    -by loading the following definition after
    -.B cmbase
    -when creating
    -.BR cm.base :
    -.IP
    -.nf
    -.ft B
    -def ignore_math_fit(expr left_adjustment,right_adjustment) =
    -    special "adjustment";
    -    numspecial left_adjustment*16/designsize;
    -    numspecial right_adjustment*16/designsize;
    -    enddef;
    -.fi
    -.ft R
    -.LP
    -For the EC font family, load the following definition after
    -.B exbase
    -(it is probably easiest to patch
    -.B exbase.mf
    -locally):
    -.IP
    -.nf
    -.ft B
    -def ignore_math_fit(expr left_adjustment,right_adjustment) =
    -    ori_special "adjustment";
    -    ori_numspecial left_adjustment*16/designsize;
    -    ori_numspecial right_adjustment*16/designsize;
    -    enddef;
    -.fi
    -.ft R
    -.LP
    -The gf file created using this modified
    -.B cm.base
    -or
    -.B exbase
    -should be specified with the
    -.B \-g
    -option.
    -The
    -.B \-g
    -option should not be given for a font for which
    -.B math_fitting
    -is true.
    -.SH OPTIONS
    -.TP
    -.B \-v
    -Print the version number.
    -.TP
    -.B \-s
    -The font is special.
    -The effect of this option is to add the
    -.B special
    -command to the font file.
    -.TP
    -.BI \-k n
    -The skewchar of this font is at position
    -.IR n .
    -.I n
    -should be an integer;
    -it may be given in decimal,
    -or with a leading 
    -.B 0
    -in octal,
    -or with a leading
    -.B 0x
    -in hexadecimal.
    -The effect of this option is to ignore any kerns whose second component
    -is the specified character.
    -.TP
    -.BI \-g gf_file
    -.I gf_file
    -is a gf file produced by Metafont containing special and numspecial
    -commands giving additional font metric information.
    -.SH FILES
    -.Tp \w'\fB/usr/share/groff/1.19.2/font/devdvi/DESC'u+2n
    -.B /usr/share/groff/1.19.2/font/devdvi/DESC
    -Device description file.
    -.TP
    -.BI /usr/share/groff/1.19.2/font/devdvi/ F
    -Font description file for font
    -.IR F .
    -.SH "SEE ALSO"
    -.BR groff (1),
    -.BR grodvi (1),
    -.BR groff_font (5)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man1/troff.1 b/gen/usr/share/man/man1/troff.1
    deleted file mode 100644
    index 04367f1..0000000
    --- a/gen/usr/share/man/man1/troff.1
    +++ /dev/null
    @@ -1,705 +0,0 @@
    -'\" t
    -.ig
    -troff.man
    -
    -Last update : 12 Oct 2003
    -
    -This file is part of groff, the GNU roff type-setting system.
    -
    -Copyright (C) 1989, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
    -
    -written by James Clark
    -
    -modified by Werner Lemberg 
    -            Bernd Warken 
    -
    -Permission is granted to copy, distribute and/or modify this document
    -under the terms of the GNU Free Documentation License, Version 1.1 or
    -any later version published by the Free Software Foundation; with the
    -Invariant Sections being this .ig-section and AUTHOR, with no
    -Front-Cover Texts, and with no Back-Cover Texts.
    -
    -A copy of the Free Documentation License is included as a file called
    -FDL in the main directory of the groff source package.
    -..
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.\" Setup
    -.\" --------------------------------------------------------------------
    -.
    -.do nr troff_C \n[.C]
    -.cp 0
    -.
    -.mso www.tmac
    -.
    -.if n \{\
    -.  mso tty-char.tmac
    -.  ftr CR R
    -.  ftr CI I
    -.  ftr CB B
    -.\}
    -.
    -.if '\*[.T]'dvi' \
    -.  ftr CB CW
    -.
    -.de TQ
    -.br
    -.ns
    -.TP \\$1
    -..
    -.
    -.\" Like TP, but if specified indent is more than half
    -.\" the current line-length - indent, use the default indent.
    -.de Tp
    -.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
    -.el .TP "\\$1"
    -..
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.\" Title
    -.\" --------------------------------------------------------------------
    -.
    -.TH TROFF 1 "13 October 2003" "Groff Version 1.19.2"
    -.SH NAME
    -troff \- the troff processor of the groff text formatting system
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH SYNOPSIS
    -.\" --------------------------------------------------------------------
    -.
    -.nr a \n(.j
    -.ad l
    -.nr i \n(.i
    -.in +\w'\fBtroff 'u
    -.ti \niu
    -.B troff
    -.de OP
    -.ie \\n(.$-1 .RI "[\ \fB\\$1\fP" "\\$2" "\ ]"
    -.el .RB "[\ " "\\$1" "\ ]"
    -..
    -.OP \-abcivzCERU
    -.OP \-d cs
    -.OP \-f fam
    -.OP \-F dir
    -.OP \-I dir
    -.OP \-m name
    -.OP \-M dir
    -.OP \-n num
    -.OP \-o list
    -.OP \-r cn
    -.OP \-T name
    -.OP \-w name
    -.OP \-W name
    -.RI "[\ " files\|.\|.\|. "\ ]"
    -.br
    -.ad \na
    -.P
    -It is possible to have whitespace between a command line option and
    -its parameter.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH DESCRIPTION
    -.\" --------------------------------------------------------------------
    -.
    -This manual page describes the GNU version of
    -.BR troff .
    -It is part of the groff document formatting system.
    -.
    -It is functionally compatible with UNIX troff, but has many extensions,
    -see
    -.BR \%groff_diff (7).
    -Usually it should be invoked using the
    -.BR groff (1)
    -command which will also run preprocessors and postprocessors in the
    -appropriate order and with the appropriate options.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH OPTIONS
    -.\" --------------------------------------------------------------------
    -.
    -.TP \w'\-dname=s'u+2n
    -.B \-a
    -Generate an
    -.SM ASCII
    -approximation of the typeset output.
    -.
    -.TP
    -.B \-b
    -Print a backtrace with each warning or error message.
    -.
    -This backtrace should help track down the cause of the error.
    -.
    -The line numbers given in the backtrace may not always be correct, for
    -.BR troff 's
    -idea of line numbers gets confused by
    -.B as
    -or 
    -.B am
    -requests.
    -.
    -.TP
    -.B \-c
    -Disable color output (always disabled in compatibility mode).
    -.
    -.TP
    -.B \-C
    -Enable compatibility mode.
    -.
    -.TP
    -.BI \-d cs
    -.TQ
    -.BI \-d name = s
    -Define
    -.I c
    -or
    -.I name
    -to be a string
    -.IR s ;
    -.I c
    -must be a one letter name.
    -.
    -.TP
    -.B \-E
    -Inhibit all error messages of
    -.BR troff .
    -Note that this doesn't affect messages output to standard error by macro
    -packages using the
    -.B tm
    -or
    -.B tm1
    -requests.
    -.
    -.TP
    -.BI \-f fam
    -Use
    -.I fam
    -as the default font family.
    -.
    -.TP
    -.BI \-F dir
    -Search in directory (or directory path)
    -.I dir
    -for subdirectories
    -.BI dev name
    -.RI ( name
    -is the name of the device) and there for the
    -.B DESC
    -file and font files.
    -.I dir
    -is scanned before all other font directories.
    -.
    -.TP
    -.B \-i
    -Read the standard input after all the named input files have been
    -processed.
    -.
    -.TP
    -.BI \-I dir
    -This option may be used to specify a directory to search for
    -files (both those on the command line and those named in
    -.B \&.psbb
    -requests).
    -The current directory is always searched first.
    -This option may be specified more than once;
    -the directories will be searched in the order specified.
    -No directory search is performed for files specified using an absolute path.
    -.
    -.TP
    -.BI \-m name
    -Read in the file
    -.IB name .tmac\fR.
    -If it isn't found, try
    -.BI tmac. name
    -instead.
    -.
    -It will be first searched for in directories given with the
    -.B \-M
    -command line option, then in directories given in the
    -.B GROFF_TMAC_PATH
    -environment variable, then in the current directory (only if in unsafe
    -mode), the home directory, /usr/lib/groff/site-tmac, /usr/share/groff/site-tmac, and
    -/usr/share/groff/1.19.2/tmac.
    -.
    -.TP
    -.BI \-M dir
    -Search directory (or directory path)
    -.I dir
    -for macro files.
    -.
    -This is scanned before all other macro directories.
    -.
    -.TP
    -.BI \-n num
    -Number the first page
    -.IR num .
    -.
    -.TP
    -.BI \-o list
    -Output only pages in
    -.IR list ,
    -which is a comma-separated list of page ranges;
    -.I n
    -means print page
    -.IR n ,
    -.IB m \- n
    -means print every page between
    -.I m
    -and
    -.IR n ,
    -.BI \- n
    -means print every page up to
    -.IR n ,
    -.IB n \-
    -means print every page from
    -.IR n .
    -.B troff
    -will exit after printing the last page in the list.
    -.
    -.TP
    -.BI \-r cn
    -.TQ
    -.BI \-r name = n
    -Set number register
    -.I c
    -or
    -.I name
    -to
    -.IR n ;
    -.I c
    -must be a one character name;
    -.I n
    -can be any troff numeric expression.
    -.
    -.TP
    -.B \-R
    -Don't load
    -.B troffrc
    -and
    -.BR troffrc-end .
    -.
    -.TP
    -.BI \-T name
    -Prepare output for device
    -.IR name ,
    -rather than the default
    -.BR ps ;
    -see
    -.BR groff (1)
    -for a more detailed description.
    -.
    -.TP
    -.B \-U
    -Unsafe mode.
    -.
    -This will enable the following requests:
    -.BR open ,
    -.BR opena ,
    -.BR pso ,
    -.BR sy ,
    -and
    -.BR pi .
    -For security reasons, these potentially dangerous requests are disabled
    -otherwise.
    -.
    -It will also add the current directory to the macro search path.
    -.
    -.TP
    -.B \-v
    -Print the version number.
    -.
    -.TP
    -.BI \-w name
    -Enable warning
    -.IR  name .
    -Available warnings are described in the section
    -.I WARNINGS
    -below.
    -.
    -For example, to enable all warnings, use
    -.B \-w
    -.BR all .
    -Multiple
    -.B \-w
    -options are allowed.
    -.
    -.TP
    -.BI \-W name
    -Inhibit warning
    -.IR name .
    -Multiple
    -.B \-W
    -options are allowed.
    -.
    -.TP
    -.B \-z
    -Suppress formatted output.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH WARNINGS
    -.\" --------------------------------------------------------------------
    -.
    -The warnings that can be given by
    -.B troff
    -are divided into the following categories.
    -.
    -The name associated with each warning is used by the
    -.B \-w
    -and
    -.B \-W
    -options; the number is used by the
    -.B warn
    -request, and by the
    -.B .warn
    -register; it is always a power of 2 to allow bitwise composition.
    -.
    -.P
    -.TS
    -tab(@), center, box;
    -c c c | c c c
    -r rI lB | r rI lB.
    -Bit@Code@Warning@Bit@Code@Warning
    -_
    -0@1@char@10@1024@reg
    -1@2@number@11@2048@tab
    -2@4@break@12@4096@right-brace
    -3@8@delim@13@8192@missing
    -4@16@el@14@16384@input
    -5@32@scale@15@32768@escape
    -6@64@range@16@65536@space
    -7@128@syntax@17@131072@font
    -8@256@di@18@262144@ig
    -9@512@mac@19@524288@color
    -.TE
    -.
    -.P
    -.nr x \w'\fBright-brace'+1n+\w'00000'u
    -.ta \nxuR
    -.
    -.TP \nxu+3n
    -.BR break "\t4"
    -In fill mode, lines which could not be broken so that their length was
    -less than the line length.
    -.
    -This is enabled by default.
    -.
    -.TP
    -.BR char "\t1"
    -Non-existent characters.
    -.
    -This is enabled by default.
    -.
    -.TP
    -.BR color "\t524288"
    -Color related warnings.
    -.
    -.TP
    -.BR delim "\t8"
    -Missing or mismatched closing delimiters.
    -.
    -.TP
    -.BR di "\t256"
    -Use of
    -.B di
    -or
    -.B da
    -without an argument when there is no current diversion.
    -.
    -.TP
    -.BR el "\t16"
    -Use of the
    -.B el
    -request with no matching
    -.B ie
    -request.
    -.
    -.TP
    -.BR escape "\t32768"
    -Unrecognized escape sequences.
    -.
    -When an unrecognized escape sequence is encountered, the escape
    -character is ignored.
    -.
    -.TP
    -.BR font "\t131072"
    -Non-existent fonts.
    -.
    -This is enabled by default.
    -.
    -.TP
    -.BR ig "\t262144"
    -Invalid escapes in text ignored with the
    -.B ig
    -request.
    -.
    -These are conditions that are errors when they do not occur in ignored
    -text.
    -.
    -.TP
    -.BR input "\t16384"
    -Invalid input characters.
    -.
    -.TP
    -.BR mac "\t512"
    -Use of undefined strings, macros and diversions.
    -.
    -When an undefined string, macro or diversion is used, that string is
    -automatically defined as empty.
    -.
    -So, in most cases, at most one warning will be given for each name.
    -.
    -.TP
    -.BR missing "\t8192"
    -Requests that are missing non-optional arguments.
    -.
    -.TP
    -.BR number "\t2"
    -Invalid numeric expressions.
    -.
    -This is enabled by default.
    -.
    -.TP
    -.BR range "\t64"
    -Out of range arguments.
    -.
    -.TP
    -.BR reg "\t1024"
    -Use of undefined number registers.
    -.
    -When an undefined number register is used, that register is
    -automatically defined to have a value of\~0.
    -.
    -So, in most cases, at most one warning will be given for use of a
    -particular name.
    -.
    -.TP
    -.BR right-brace "\t4096"
    -Use of
    -.B \[rs]}
    -where a number was expected.
    -.
    -.TP
    -.BR scale "\t32"
    -Meaningless scaling indicators.
    -.
    -.TP
    -.BR space "\t65536"
    -Missing space between a request or macro and its argument.
    -.
    -This warning will be given when an undefined name longer than two
    -characters is encountered, and the first two characters of the name
    -make a defined name.
    -.
    -The request or macro will not be invoked.
    -.
    -When this warning is given, no macro is automatically defined.
    -.
    -This is enabled by default.
    -.
    -This warning will never occur in compatibility mode.
    -.
    -.TP
    -.BR syntax "\t128"
    -Dubious syntax in numeric expressions.
    -.
    -.TP
    -.BR tab "\t2048"
    -Inappropriate use of a tab character.
    -Either use of a tab character where a number was expected, or use of tab
    -character in an unquoted macro argument.
    -.
    -.P
    -There are also names that can be used to refer to groups of warnings:
    -.
    -.TP
    -.B all
    -All warnings except
    -.BR di ,
    -.BR mac ,
    -and
    -.BR reg .
    -It is intended that this covers all warnings that are useful with
    -traditional macro packages.
    -.
    -.TP
    -.B w
    -All warnings.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH ENVIRONMENT
    -.\" --------------------------------------------------------------------
    -.
    -.TP
    -.SM
    -.B GROFF_TMAC_PATH
    -A colon separated list of directories in which to search for
    -macro files.
    -.B troff
    -will scan directories given in the
    -.B \-M
    -option before these, and in standard directories (current directory if
    -in unsafe mode, home directory,
    -.BR /usr/lib/groff/site-tmac ,
    -.BR /usr/share/groff/site-tmac ,
    -.BR /usr/share/groff/1.19.2/tmac )
    -after these.
    -.
    -.TP
    -.SM
    -.B GROFF_TYPESETTER
    -Default device.
    -.
    -.TP
    -.SM
    -.B GROFF_FONT_PATH
    -A colon separated list of directories in which to search for the
    -.BI dev name
    -directory.
    -.B troff
    -will scan directories given in the
    -.B \-F
    -option before these, and in standard directories
    -.RB ( /usr/share/groff/site-font ,
    -.BR /usr/share/groff/1.19.2/font ,
    -.BR /usr/lib/font )
    -after these.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH FILES
    -.\" --------------------------------------------------------------------
    -.
    -.Tp \w'/usr/share/groff/1.19.2/font/devname/DESC'u+3n
    -.B /usr/share/groff/1.19.2/tmac/troffrc
    -Initialization file (called before any other macro package).
    -.
    -.TP
    -.B /usr/share/groff/1.19.2/tmac/troffrc-end
    -Initialization file (called after any other macro package).
    -.
    -.TP
    -.BI /usr/share/groff/1.19.2/tmac/ name .tmac
    -.TQ
    -.BI /usr/share/groff/1.19.2/tmac/tmac. name
    -Macro files
    -.
    -.TP
    -.BI /usr/share/groff/1.19.2/font/dev name /DESC
    -Device description file for device
    -.IR name .
    -.
    -.TP
    -.BI /usr/share/groff/1.19.2/font/dev name / F
    -Font file for font
    -.I F
    -of device
    -.IR name .
    -.P
    -Note that
    -.B troffrc
    -and
    -.B troffrc-end
    -are neither searched in the current nor in the home directory by
    -default for security reasons (even if the
    -.B \-U
    -option is given).
    -.
    -Use the
    -.B \-M
    -command line option or the
    -.B GROFF_TMAC_PATH
    -environment variable to add these directories to the search path if
    -necessary.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH AUTHOR
    -.\" --------------------------------------------------------------------
    -.
    -Copyright (C) 1989, 2001, 2002, 2003 Free Software Foundation, Inc.
    -.
    -.P
    -This document is distributed under the terms of the FDL (GNU Free
    -Documentation License) version 1.1 or later.
    -.
    -You should have received a copy of the FDL on your system, it is also
    -available on-line at the
    -.URL http://www.gnu.org/copyleft/fdl.html "GNU copyleft site" .
    -This document was written by James Clark, with modifications from
    -.MTO wl@gnu.org "Werner Lemberg"
    -and
    -.MTO bwarken@mayn.de "Bernd Warken"
    -.
    -.P
    -This document is part of
    -.IR groff ,
    -the GNU roff distribution.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "SEE ALSO"
    -.\" --------------------------------------------------------------------
    -.
    -.TP
    -.BR groff (1)
    -The main program of the
    -.I groff
    -system, a wrapper around
    -.IR troff .
    -.
    -.TP
    -.BR groff (7)
    -A description of the
    -.I groff
    -language, including a short but complete reference of all predefined
    -requests, registers, and escapes of plain
    -.IR groff .
    -From the command line, this is called by
    -.RS
    -.IP
    -.B man 7 groff
    -.RE
    -.
    -.TP
    -.BR \%groff_diff (7)
    -The differences of the
    -.I groff
    -language and the
    -.I classical troff
    -language.
    -.
    -Currently, this is the most actual document of the
    -.I groff
    -system.
    -.
    -.TP
    -.BR roff (7)
    -An overview over
    -.I groff
    -and other
    -.I roff
    -systems, including pointers to further related documentation.
    -.
    -.P
    -The
    -.I groff info
    -.IR file ,
    -cf.\&
    -.BR info (1),
    -presents all groff documentation within a single document.
    -.
    -.cp \n[troff_C]
    -.
    -.\" --------------------------------------------------------------------
    -.\" Emacs variables
    -.\" --------------------------------------------------------------------
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man5/groff_font.5 b/gen/usr/share/man/man5/groff_font.5
    deleted file mode 100644
    index 9193a6b..0000000
    --- a/gen/usr/share/man/man5/groff_font.5
    +++ /dev/null
    @@ -1,660 +0,0 @@
    -.ig
    -Copyright (C) 1989-1995, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.
    -.do nr groff_font_C \n[.C]
    -.cp 0
    -.
    -.de TQ
    -.  br
    -.  ns
    -.  TP \\$1
    -..
    -.
    -.\" Like TP, but if specified indent is more than half
    -.\" the current line-length - indent, use the default indent.
    -.de Tp
    -.  ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
    -.  el .TP "\\$1"
    -..
    -.
    -.
    -.TH GROFF_FONT 5 "8 October 2004" "Groff Version 1.19.2"
    -.
    -.
    -.SH NAME
    -groff_font \- format of groff device and font description files
    -.
    -.
    -.SH DESCRIPTION
    -The groff font format is roughly a superset of the ditroff
    -font format.
    -.
    -The font files for device
    -.I name
    -are stored in a directory
    -.BI dev name\c
    -\&.
    -.
    -There are two types of file: a
    -device description file called
    -.B DESC
    -and for each font
    -.I F
    -a font file called
    -.IR F .
    -.
    -These are text files;
    -unlike the ditroff font format,
    -there is no associated binary format.
    -.
    -.
    -.SS DESC file format
    -.
    -The DESC file can contain the following types of line as shown below.
    -.
    -Later entries in the file override previous values.
    -.
    -.TP
    -.B charset
    -This line and everything following in the file are ignored.
    -.
    -It is allowed for the sake of backwards compatibility.
    -.
    -.TP
    -.BI family\  fam
    -The default font family is
    -.IR fam .
    -.
    -.TP
    -.BI fonts\  n\ F1\ F2\ F3\|.\|.\|.\|Fn
    -Fonts
    -.I F1\|.\|.\|.\|Fn
    -will be mounted in the font positions 
    -.IR m +1,\|.\|.\|., m + n
    -where
    -.I m
    -is the number of styles.
    -.
    -This command may extend over more than one line.
    -.
    -A font name of
    -.B 0
    -will cause no font to be mounted on the corresponding font position.
    -.
    -.TP
    -.BI hor\  n
    -The horizontal resolution is
    -.I n
    -machine units.
    -.
    -.TP
    -.BI image_generator\  string
    -Needed for
    -.B grohtml
    -only.
    -It specifies the program to generate PNG images from
    -PostScript input.
    -Under GNU/Linux this is usually
    -.I gs
    -but under other systems (notably cygwin) it might be set to another name.
    -.
    -.TP
    -.BI paperlength\  n
    -The physical vertical dimension of the output medium in machine units.
    -.
    -This isn't used by
    -.B troff
    -itself but by output devices.
    -.
    -Deprecated.
    -.
    -Use
    -.B papersize
    -instead.
    -.
    -.TP
    -.BI papersize\  string
    -Select a paper size.
    -.
    -Valid values for
    -.I string
    -are the ISO paper types A0-A7, B0-B7, C0-C7, D0-D7, DL, and the US paper
    -types letter, legal, tabloid, ledger, statement, executive, com10, and
    -monarch.
    -.
    -Case is not significant for
    -.IR string
    -if it holds predefined paper types.
    -.
    -Alternatively,
    -.I string
    -can be a file name (e.g.\& `/etc/papersize'); if the file can be opened,
    -.B groff
    -reads the first line and tests for the above paper sizes.
    -.
    -Finally,
    -.I string
    -can be a custom paper size in the format
    -.IB length , width
    -(no spaces before and after the comma).
    -.
    -Both
    -.I length
    -and
    -.I width
    -must have a unit appended; valid values are `i' for inches, `c' for
    -centimeters, `p' for points, and `P' for picas.
    -.
    -Example:
    -.BR 12c,235p .
    -.
    -An argument which starts with a digit is always treated as a custom paper
    -format.
    -.
    -.B papersize
    -sets both the vertical and horizontal dimension of the output medium.
    -.
    -.IP
    -More than one argument can be specified;
    -.B groff
    -scans from left to right and uses the first valid paper specification.
    -.
    -.TP
    -.BI paperwidth\  n
    -The physical horizontal dimension of the output medium in machine units.
    -.
    -Deprecated.
    -.
    -Use
    -.B papersize
    -instead.
    -.
    -This isn't used by
    -.BR troff
    -itself but by output devices.
    -.
    -.TP
    -.B pass_filenames
    -Make troff tell the driver the source file name being processed.
    -.
    -This is achieved by another tcommand:
    -.B F
    -.IR filename .
    -.
    -.TP
    -.BI postpro\  program
    -Use
    -.I program
    -as the postprocessor.
    -.
    -.TP
    -.BI prepro\  program
    -Call
    -.I program
    -as a preprocessor.
    -.
    -.TP
    -.BI print\  program
    -Use
    -.I program
    -as the spooler program for printing.
    -.
    -If omitted, the
    -.B \-l
    -and
    -.B \-L
    -options of
    -.B groff
    -are ignored.
    -.
    -.TP
    -.BI res\  n
    -There are
    -.I n
    -machine units per inch.
    -.
    -.TP
    -.BI sizes\  s1\ s2\|.\|.\|.\|sn\  0
    -This means that the device has fonts at
    -.IR s1 ,
    -.IR s2 ,\|.\|.\|.\| sn
    -scaled points.
    -.
    -The list of sizes must be terminated by a
    -.BR 0 .
    -.
    -Each
    -.I si
    -can also be a range of sizes
    -.IR m \- n .
    -.
    -The list can extend over more than one line.
    -.
    -.TP
    -.BI sizescale\  n
    -The scale factor for pointsizes.
    -.
    -By default this has a value of 1.
    -.
    -One
    -.I
    -scaled point
    -is equal to
    -one
    -.RI point/ n .
    -.
    -The arguments to the
    -.B unitwidth
    -and
    -.B sizes
    -commands are given in scaled points.
    -.
    -.TP
    -.BI styles\  S1\ S2\|.\|.\|.\|Sm
    -The first
    -.I m
    -font positions will be associated with styles
    -.IR S1\|.\|.\|.\|Sm .
    -.
    -.TP
    -.B tcommand
    -This means that the postprocessor can handle the
    -.B t
    -and
    -.B u
    -output commands.
    -.
    -.TP
    -.BI unitwidth\  n
    -Quantities in the font files are given in machine units
    -for fonts whose point size is
    -.I n 
    -scaled points.
    -.
    -.TP
    -.B unscaled_charwidths
    -Make the font handling module always return unscaled character widths.
    -Needed for the
    -.B grohtml
    -device.
    -.
    -.TP
    -.B use_charnames_in_special
    -This command indicates that troff should encode named characters inside
    -special commands.
    -.
    -.TP
    -.BI vert\  n
    -The vertical resolution is
    -.I n
    -machine units.
    -.
    -.LP
    -The
    -.BR res ,
    -.BR unitwidth ,
    -.BR fonts ,
    -and
    -.B sizes
    -lines are compulsory.
    -.
    -Not all commands in the DESC file are used by
    -.B troff
    -itself; some of the keywords (or even additional ones) are used by
    -postprocessors to store arbitrary information about the device.
    -.
    -.LP
    -Here a list of obsolete keywords which are recognized by
    -.B groff
    -but completely ignored:
    -.BR spare1 ,
    -.BR spare2 ,
    -.BR biggestfont .
    -.
    -.
    -.SS Font file format
    -.
    -A font file has two sections.
    -The first section is a sequence
    -of lines each containing a sequence of blank delimited
    -words; the first word in the line is a key, and subsequent
    -words give a value for that key.
    -.
    -.TP
    -.BI ligatures\  lig1\ lig2\|.\|.\|.\|lign\ \fR[ 0 \fR]
    -Characters
    -.IR lig1 ,
    -.IR lig2 ,\ \|.\|.\|.,\ lign
    -are ligatures; possible ligatures are
    -.BR ff ,
    -.BR fi ,
    -.BR fl ,
    -.B ffi
    -and
    -.BR ffl .
    -.
    -For backwards compatibility, the list of ligatures may be terminated
    -with a
    -.BR 0.
    -.
    -The list of ligatures may not extend over more than one line.
    -.
    -.TP
    -.BI name\  F
    -The name of the font is
    -.IR F .
    -.
    -.TP
    -.BI slant\  n
    -The characters of the font have a slant of
    -.I n
    -degrees.
    -.
    -(Positive means forward.)
    -.
    -.TP
    -.BI spacewidth\  n
    -The normal width of a space is
    -.IR n .
    -.
    -.TP
    -.B special
    -The font is
    -.IR special ;
    -this means that when a character is requested that is not present in
    -the current font, it will be searched for in any special fonts that
    -are mounted.
    -.
    -.LP
    -Other commands are ignored by
    -.B troff
    -but may be used by postprocessors to store arbitrary information
    -about the font in the font file.
    -.
    -.LP
    -The first section can contain comments which start with the
    -.B #
    -character and extend to the end of a line.
    -.
    -.LP
    -The second section contains one or two subsections.
    -.
    -It must contain a
    -.I charset
    -subsection
    -and it may also contain a
    -.I kernpairs
    -subsection.
    -.
    -These subsections can appear in any order.
    -.
    -Each subsection starts with a word on a line by itself.
    -.
    -.LP
    -The word
    -.B charset
    -starts the charset subsection.
    -.
    -The
    -.B charset
    -line is followed by a sequence of lines.
    -.
    -Each line gives information for one character.
    -.
    -A line comprises a number of fields separated
    -by blanks or tabs.
    -.
    -The format is
    -.
    -.IP
    -.I name metrics type code 
    -.RI [ entity_name ]
    -.RB [ --
    -.IR comment ]
    -.
    -.LP
    -.I name
    -identifies the character:
    -if
    -.I name
    -is a single character
    -.I c
    -then it corresponds to the groff input character
    -.IR c ;
    -if it is of the form
    -.BI \[rs] c
    -where c is a single character, then it
    -corresponds to the special character
    -.BI \[rs][ c ]\fR;
    -otherwise it corresponds to the groff input character
    -.BI \[rs][ name ]\fR.
    -.
    -If it is exactly two characters
    -.I xx
    -it can be entered as
    -.BI \[rs]( xx\fR.
    -.
    -Note that single-letter special characters can't be accessed as
    -.BI \[rs] c\fR;
    -the only exception is `\[rs]-' which is identical to `\[rs][-]'.
    -.
    -The name
    -.B \-\-\-
    -is special and indicates that the character is unnamed;
    -such characters can only be used by means of the
    -.B \[rs]N
    -escape sequence in
    -.BR troff .
    -.
    -.LP
    -Groff supports eight-bit characters; however some utilities
    -have difficulties with eight-bit characters.
    -.
    -For this reason, there is a convention that the name
    -.BI char n
    -is equivalent to the single character whose code is
    -.IR n .
    -.
    -For example,
    -.B char163
    -would be equivalent to the character with code 163
    -which is the pounds sterling sign in ISO Latin-1.
    -.
    -.LP
    -The
    -.I type
    -field gives the character type:
    -.
    -.TP
    -1
    -means the character has a descender, for example, p;
    -.
    -.TP
    -2
    -means the character has an ascender, for example, b;
    -.
    -.TP
    -3
    -means the character has both an ascender and a descender, for example,
    -(.
    -.
    -.LP
    -The
    -.I code
    -field gives the code which the postprocessor uses to print the character.
    -.
    -The character can also be input to groff using this code by means of the
    -.B \[rs]N
    -escape sequence.
    -.
    -The code can be any integer.
    -.
    -If it starts with a
    -.B 0
    -it will be interpreted as octal;
    -if it starts with
    -.B 0x
    -or
    -.B 0X
    -it will be intepreted as hexadecimal.
    -.
    -Note, however, that the
    -.B \[rs]N
    -escape sequence only accepts a decimal integer.
    -.
    -.LP
    -The
    -.I entity_name
    -field gives an ascii string identifying the glyph which the postprocessor
    -uses to print the character.
    -.
    -This field is optional and has been introduced so that the html device driver
    -can encode its character set.
    -.
    -For example, the character `\[rs][Po]' is represented as `£' in
    -html\~4.0.
    -.
    -.LP
    -Anything on the line after the encoding field resp. after `-\&-' will
    -be ignored.
    -.
    -.LP
    -The
    -.I metrics
    -field has the form (in one line; it is broken here for the sake of
    -readability):
    -.
    -.IP
    -.I width\c
    -.RI [\fB, height\c
    -.RI [\fB, depth\c
    -.RI [\fB, italic-correction
    -.br
    -.RI [\fB, left-italic-correction\c
    -.RI [\fB, subscript-correction ]]]]]
    -.
    -.LP
    -There must not be any spaces between these subfields.
    -.
    -Missing subfields are assumed to be 0.
    -.
    -The subfields are all decimal integers.
    -.
    -Since there is no associated binary format, these
    -values are not required to fit into a variable of type
    -.B char
    -as they are in ditroff.
    -.
    -The
    -.I width
    -subfields gives the width of the character.
    -.
    -The
    -.I height
    -subfield gives the height of the character (upwards is positive);
    -if a character does not extend above the baseline, it should be
    -given a zero height, rather than a negative height.
    -.
    -The
    -.I depth
    -subfield gives the depth of the character, that is, the distance
    -below the lowest point below the baseline to which the
    -character extends (downwards is positive);
    -if a character does not extend below above the baseline, it should be
    -given a zero depth, rather than a negative depth.
    -.
    -The
    -.I italic-correction
    -subfield gives the amount of space that should be added after the
    -character when it is immediately to be followed by a character
    -from a roman font.
    -.
    -The
    -.I left-italic-correction
    -subfield gives the amount of space that should be added before the
    -character when it is immediately to be preceded by a character
    -from a roman font.
    -.
    -The
    -.I subscript-correction
    -gives the amount of space that should be added after a character
    -before adding a subscript.
    -.
    -This should be less than the italic correction.
    -.
    -.LP
    -A line in the charset section can also have the format
    -.
    -.IP
    -.I
    -name \fB"
    -.
    -.LP
    -This indicates that
    -.I name
    -is just another name for the character mentioned in the
    -preceding line.
    -.
    -.LP
    -The word
    -.B kernpairs
    -starts the kernpairs section.
    -.
    -This contains a sequence of lines of the form:
    -.
    -.IP
    -.I c1 c2 n
    -.
    -.LP
    -This means that when character
    -.I c1
    -appears next to character
    -.I c2
    -the space between them should be increased by
    -.IR n .
    -.
    -Most entries in kernpairs section will have a negative value for
    -.IR n .
    -.
    -.
    -.SH FILES
    -.
    -.Tp \w'/usr/share/groff/1.19.2/font/devname/DESC'u+3n
    -.BI /usr/share/groff/1.19.2/font/dev name /DESC
    -Device description file for device
    -.IR name .
    -.
    -.TP
    -.BI /usr/share/groff/1.19.2/font/dev name / F
    -Font file for font
    -.I F
    -of device
    -.IR name .
    -.
    -.
    -.SH "SEE ALSO"
    -.
    -.BR groff_out (5),
    -.BR troff (1).
    -.
    -.cp \n[groff_font_C]
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man5/groff_out.5 b/gen/usr/share/man/man5/groff_out.5
    deleted file mode 100644
    index 76585da..0000000
    --- a/gen/usr/share/man/man5/groff_out.5
    +++ /dev/null
    @@ -1,2106 +0,0 @@
    -'\" e
    -.\" The above line should force the use of eqn as a preprocessor
    -.ig
    -groff_out.5
    -
    -Last update: 2 Jul 2005
    -
    -This file is part of groff, the GNU roff type-setting system.
    -
    -Copyright (C) 1989, 2001, 2002, 2003, 2004, 2005
    -Free Software Foundation, Inc.
    -rewritten from scrach 2001 by Bernd Warken 
    -
    -Permission is granted to copy, distribute and/or modify this document
    -under the terms of the GNU Free Documentation License, Version 1.1 or
    -any later version published by the Free Software Foundation; with the
    -Invariant Sections being this .ig-section and AUTHORS, with no
    -Front-Cover Texts, and with no Back-Cover Texts.
    -
    -A copy of the Free Documentation License is included as a file called
    -FDL in the main directory of the groff source package.
    -..
    -.
    -.\" --------------------------------------------------------------------
    -.\" Setup
    -.\" --------------------------------------------------------------------
    -.
    -.do nr groff_out_C \n[.C]
    -.cp 0
    -.
    -.mso www.tmac
    -.
    -.if n \{\
    -.  mso tty-char.tmac
    -.  ftr CR R
    -.  ftr CI I
    -.  ftr CB B
    -.\}
    -.
    -.if '\*[.T]'dvi' \
    -.  ftr CB CW
    -.
    -.if t \{\
    -.EQ
    -delim $$
    -.EN
    -.\}
    -.
    -.\" ----------------- Document configuration
    -.
    -.\" Number register to decide whether the commands `{' and `}' are used
    -.\" 0: disable (actual default); 1: enable
    -.nr @USE_ENV_STACK 0
    -.
    -.ig
    -Unfortunately, old versions of groff used an illogical position change
    -after some D\~commands (Dp, DP, Dt).  If the number register
    -@STUPID_DRAWING_POSITIONING is 1 (actual default) then change position
    -after these commands, otherwise the position is not changed.
    -..
    -.nr @STUPID_DRAWING_POSITIONING 1
    -.
    -.\" ----------------- Syntactical definitions
    -.
    -.\" comments when escapes are switched off
    -.de c
    -..
    -.\" Begin of macro definitions
    -.eo
    -.
    -.de Text
    -.  nop \)\$*
    -..
    -.c follow-up line for a .TP header
    -.de TP+
    -.  br
    -.  ns
    -.  TP \$1
    -..
    -.c a bulleted paragraph
    -.de Topic
    -.  TP 2m
    -.  nop \[bu]
    -..
    -.de ShellCommand
    -.  br
    -.  IR "shell>" "\h'1m'\f[CB]\$*\f[]\/"
    -..
    -.ec
    -.\" End of macro definitions
    -.
    -.c ----------------- Semantical definitions
    -.
    -.nr @maxcolor 65536
    -.ds @backslash \[rs]\"
    -.ds @linebreak \f[R]\[la]line_break\[ra]\f[]\"
    -.
    -.\" Begin of macro definitions
    -.eo
    -.
    -.c format: .unit  
    -.de unit
    -.  BR \$@
    -..
    -.c argument in italic with punctuation
    -.de argument
    -.  if (\n[.$] == 0) \
    -.    return
    -.  IR \$@
    -..
    -.c comma separated list of indexed variables
    -.de list1..n
    -.  ds @arg1 \$1\"
    -.  nop \c
    -.  ie t \
    -.    nop $\*[@arg1] sub 1$, $\*[@arg1] sub 2$, .\|.\|., $\*[@arg1] sub n$ \c
    -.  el \{\
    -.    IR \*[@arg1]1 ,
    -.    IR \*[@arg1]2 ,
    -.    nop \&...,
    -.    I \*[@arg1]n
    -.  \}
    -.  rm @arg1
    -..
    -.de offset
    -.  if (\n[.$] < 2) \
    -.    ab `.offset' needs at least 2 arguments
    -.  ds @arg1 \$1\"
    -.  ds @arg2 \$2\"
    -.  shift 2
    -.  nop (\f[I]\,\*[@arg1]\/\f[],\ \f[I]\,\*[@arg2]\/\f[])\$*
    -.  rm @arg1
    -.  rm @arg2
    -..
    -.de indexed_offset
    -.  if (\n[.$] < 4) \
    -.    ab `.indexed_offset' needs at least 4 arguments
    -.  ds @arg1 \$1\"
    -.  ds @index1 \$2\"
    -.  ds @arg2 \$3\"
    -.  ds @index2 \$4\"
    -.  shift 4
    -.  ie t \{\
    -.    ie \B'\*[@index1]' \{\
    -.      nop ($\*[@arg1] sub roman \*[@index1]$,\ \c
    -.    \}
    -.    el \{\
    -.      nop ($\*[@arg1] sub \*[@index1]$,\ \c
    -.    \}
    -.    ie \B'\*[@index2]' \{\
    -.      nop $\*[@arg2] sub roman \*[@index2]$)\$* \c
    -.    \}
    -.    el \{\
    -.      nop $\*[@arg2] sub \*[@index2]$)\$* \c
    -.    \}
    -.  \}
    -.  el \{\
    -.    nop (\f[I]\*[@arg1]\*[@index1]\f[],\ \c
    -.    nop \f[I]\*[@arg2]\*[@index2]\f[])\$* \c
    -.  \}
    -.  rm @arg1
    -.  rm @arg2
    -.  rm @index1
    -.  rm @index2
    -..
    -.c format: .command  "" 
    -.de command
    -.  ds @arg1 \$1\"
    -.  ds @arg2 \$2\"
    -.  shift 2
    -.  IP "\f[B]\*[@arg1]\f[]\ \f[I]\,\*[@arg2]\/\f[]\$*"
    -.  rm @arg1
    -.  rm @arg2
    -..
    -.c format: .command+  "" 
    -.c continue previous .command heading
    -.de command+
    -.  ds @arg1 \$1\"
    -.  ds @arg2 \$2\"
    -.  shift 2
    -.  TP+
    -.  Text "\f[B]\*[@arg1]\f[]\ \f[I]\,\*[@arg2]\/\f[]\$*"
    -.  rm @arg1
    -.  rm @arg2
    -..
    -.c format: .D-command  ""
    -.de D-command
    -.  ds @sub \$1\"
    -.  shift 1
    -.  IP "\f[B]D\*[@sub]\f[]\ \f[I]\,\$*\/\f[]\|\*[@linebreak]"
    -.  rm @sub
    -..
    -.c format: .D-command+  ""
    -.c continue previous .D-command heading
    -.de D-command+
    -.  ds @sub \$1\"
    -.  shift 1
    -.  TP+
    -.  Text "\f[B]D\*[@sub]\f[]\ \f[I]\,\$*\/\f[]\*[@linebreak]"
    -.  rm @sub
    -..
    -.de Da-command
    -.  shift 1
    -.  ie t \
    -.    ds @args $h sub 1$\~$v sub 1$ $h sub 2$\~$v sub 2$\"
    -.  el \
    -.    ds @args \f[I]h1\~v1 h2\~v2\f[]\"
    -.  IP "\f[B]Da\f[]\ \*[@args]\|\*[@linebreak]"
    -.  rm @args
    -..
    -.c graphics command .D with a variable number of arguments
    -.c format: .D-multiarg 
    -.de D-multiarg
    -.  ds @sub \$1\"
    -.  shift 1
    -.  ie t \{\
    -.    ds @args "$h sub 1$\~$v sub 1$ $h sub 2$\~$v sub 2$ .\|.\|. \"
    -.    as @args "$h sub n$\~$v sub n$\"
    -.  \}
    -.  el \
    -.    ds @args \f[I]h1\~v1 h2\~v2\f[] ... \f[I]\,hn\~vn\f[]\"
    -.  IP "\f[B]D\*[@sub]\f[]\ \*[@args]\|\*[@linebreak]"
    -.  rm @args
    -.  rm @sub
    -..
    -.c format: .x-command  ""
    -.de x-command
    -.  ds @sub \$1\"
    -.  shift 1
    -.  ds @args
    -.  if (\n[.$] > 0) \
    -.    ds @args \ \f[I]\,\$*\/\f[]\"
    -.  IP "\f[B]x\*[@sub]\f[]\*[@args]\f[]\|\*[@linebreak]"
    -.  rm @sub
    -.  rm @args
    -..
    -.de xsub
    -.  RI "(" "\$1" " control command)"
    -.  br
    -..
    -.ec
    -.\" End of macro definitions 
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.\" Title
    -.\" --------------------------------------------------------------------
    -.
    -.TH GROFF_OUT 5 "3 July 2005" "Groff Version 1.19.2"
    -.
    -.SH NAME
    -groff_out \- groff intermediate output format
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH DESCRIPTION
    -.\" --------------------------------------------------------------------
    -.
    -This manual page describes the
    -.I intermediate output
    -format of the GNU
    -.BR roff (7)
    -text processing system
    -.BR groff (1).
    -.
    -This output is produced by a run of the GNU
    -.BR troff (1)
    -program.
    -.
    -It contains already all device-specific information, but it is not yet
    -fed into a device postprocessor program.
    -.
    -.
    -.P
    -As the GNU
    -.I roff
    -processor
    -.BR groff (1)
    -is a wrapper program around
    -.B troff
    -that automatically calls a
    -postprocessor, this output does not show up normally.
    -.
    -This is why it is called
    -.I intermediate
    -within the
    -.I groff
    -.IR system .
    -.
    -The
    -.B groff
    -program provides the option
    -.B -Z
    -to inhibit postprocessing, such that the produced
    -.I intermediate output
    -is sent to standard output just like calling
    -.B troff
    -manually.
    -.
    -.
    -.P
    -In this document, the term
    -.I troff output
    -describes what is output by the GNU
    -.B troff
    -program, while
    -.I intermediate output
    -refers to the language that is accepted by the parser that prepares
    -this output for the postprocessors.
    -.
    -This parser is smarter on whitespace and implements obsolete elements
    -for compatibility, otherwise both formats are the same.
    -.
    -Both formats can be viewed directly with
    -.BR \%gxditview (1).
    -.
    -.
    -.P
    -The main purpose of the
    -.I intermediate output
    -concept is to facilitate the development of postprocessors by
    -providing a common programming interface for all devices.
    -.
    -It has a language of its own that is completely different from the
    -.BR groff (7)
    -language.
    -.
    -While the
    -.I groff
    -language is a high-level programming language for text processing, the
    -.I intermediate output
    -language is a kind of low-level assembler language by specifying all
    -positions on the page for writing and drawing.
    -.
    -.
    -.P
    -The
    -.RI pre- groff
    -.I roff
    -versions are denoted as
    -.I classical
    -.IR troff .
    -The
    -.I intermediate output
    -produced by
    -.B groff
    -is fairly readable, while
    -.I classical troff
    -output was hard to understand because of strange habits that are
    -still supported, but not used any longer by
    -.I GNU
    -.IR troff .
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "LANGUAGE CONCEPTS"
    -.\" --------------------------------------------------------------------
    -.
    -During the run of
    -.BR troff , 
    -the
    -.I roff
    -input is cracked down to the information on what has to be printed at
    -what position on the intended device.
    -.
    -So the language of the
    -.I intermediate output
    -format can be quite small.
    -.
    -Its only elements are commands with or without arguments.
    -.
    -In this document, the term "command" always refers to the
    -.I intermediate output
    -language, never to the
    -.I roff
    -language used for document formatting.
    -.
    -There are commands for positioning and text writing, for drawing, and
    -for device controlling.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Separation"
    -.\" --------------------------------------------------------------------
    -.
    -.I Classical troff output
    -had strange requirements on whitespace.
    -.
    -The
    -.B groff
    -output parser, however, is smart about whitespace by making it
    -maximally optional.
    -.
    -The whitespace characters, i.e., the
    -.IR tab ,
    -.IR space ,
    -and
    -.I newline
    -characters, always have a syntactical meaning.
    -.
    -They are never printable because spacing within the output is always
    -done by positioning commands.
    -.
    -.
    -.P
    -Any sequence of
    -.I space
    -or
    -.I tab
    -characters is treated as a single
    -.I syntactical
    -.IR space .
    -.
    -It separates commands and arguments, but is only required when there
    -would occur a clashing between the command code and the arguments
    -without the space.
    -.
    -Most often, this happens when variable length command names,
    -arguments, argument lists, or command clusters meet.
    -.
    -Commands and arguments with a known, fixed length need not be
    -separated by
    -.I syntactical
    -.IR space .
    -.
    -.
    -.P
    -A line break is a syntactical element, too.
    -.
    -Every command argument can be followed by whitespace, a comment, or a
    -newline character.
    -.
    -Thus a
    -.I syntactical line break
    -is defined to consist of optional
    -.I syntactical space
    -that is optionally followed by a comment, and a newline character.
    -.
    -.
    -.P
    -The normal commands, those for positioning and text, consist of a
    -single letter taking a fixed number of arguments.
    -.
    -For historical reasons, the parser allows to stack such commands on
    -the same line, but fortunately, in
    -.I groff intermediate
    -.IR output ,
    -every command with at least one argument is followed by a line break,
    -thus providing excellent readability.
    -.
    -.P
    -The other commands \[em] those for drawing and device controlling \[em]
    -have a more complicated structure; some recognize long command names,
    -and some take a variable number of arguments.
    -.
    -So all
    -.B D
    -and
    -.B x
    -commands were designed to request a
    -.I syntactical line break
    -after their last argument.
    -.
    -Only one command,
    -.RB ` x\ X '
    -has an argument that can stretch over several lines, all other
    -commands must have all of their arguments on the same line as the
    -command, i.e., the arguments may not be splitted by a line break.
    -.
    -.P
    -Empty lines, i.e., lines containing only space and/or a comment, can
    -occur everywhere.
    -.
    -They are just ignored.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Argument Units"
    -.\" --------------------------------------------------------------------
    -.
    -Some commands take integer arguments that are assumed to represent
    -values in a measurement unit, but the letter for the corresponding
    -.I scale indicator
    -is not written with the output command arguments; see
    -.BR groff (7)
    -and the
    -.I groff info file
    -for more on this topic.
    -.
    -Most commands assume the scale indicator\~\c
    -.unit u ,
    -the basic unit of the device, some use\~\c
    -.unit z , 
    -the
    -.I scaled point unit
    -of the device, while others, such as the color commands expect plain
    -integers.
    -.
    -Note that these scale indicators are relative to the chosen device.
    -.
    -They are defined by the parameters specified in the device's
    -.I DESC
    -file; see
    -.BR groff_font (5).
    -.
    -.
    -.P
    -Note that single characters can have the eighth bit set, as can the
    -names of fonts and special characters.
    -.
    -The names of characters and fonts can be of arbitrary length.
    -.
    -A character that is to be printed will always be in the current font.
    -.
    -.
    -.P
    -A string argument is always terminated by the next whitespace
    -character (space, tab, or newline); an embedded
    -.B #
    -character is regarded as part of the argument, not as the beginning of
    -a comment command.
    -.
    -An integer argument is already terminated by the next non-digit
    -character, which then is regarded as the first character of the next
    -argument or command.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Document Parts"
    -.\" --------------------------------------------------------------------
    -A correct
    -.I intermediate output
    -document consists of two parts, the
    -.I prologue
    -and the
    -.IR body .
    -.
    -.P
    -The task of the
    -.I prologue
    -is to set the general device parameters using three exactly specified
    -commands.
    -.
    -The
    -.I groff prologue
    -is guaranteed to consist of the following three lines (in that order):
    -.RS
    -.P
    -.B x\ T
    -.I device
    -.br
    -.B x\ res
    -.I n\ h\ v
    -.br
    -.B x init
    -.RE
    -.P
    -with the arguments set as outlined in the section
    -.BR "Device Control Commands" .
    -.
    -But the parser for the
    -.I intermediate output
    -format is able to swallow additional whitespace and comments as well.
    -.
    -.
    -.P
    -The
    -.I body
    -is the main section for processing the document data.
    -.
    -Syntactically, it is a sequence of any commands different from the
    -ones used in the
    -.IR prologue .
    -.
    -Processing is terminated as soon as the first
    -.B x\ stop
    -command is encountered; the last line of any
    -.I groff intermediate output
    -always contains such a command.
    -.
    -.
    -.P
    -Semantically, the
    -.I body
    -is page oriented.
    -.
    -A new page is started by a
    -.BR p \~command.
    -.
    -Positioning, writing, and drawing commands are always done within the
    -current page, so they cannot occur before the first
    -.BR p \~command.
    -.
    -Absolute positioning (by the
    -.B H
    -and
    -.BR V \~commands)
    -is done relative to the current page, all other positioning
    -is done relative to the current location within this page.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "COMMAND REFERENCE"
    -.\" --------------------------------------------------------------------
    -.
    -This section describes all
    -.I intermediate output
    -commands, the classical commands as well as the
    -.I groff
    -extensions.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Comment Command"
    -.\" --------------------------------------------------------------------
    -.
    -.TP
    -.BI # anything \[la]end_of_line\[ra]
    -A comment.
    -.
    -Ignore any characters from the
    -.BR # \~\c
    -character up to the next newline character.
    -.
    -.P
    -This command is the only possibility for commenting in the
    -.I intermediate
    -.IR output .
    -.
    -Each comment can be preceded by arbitrary
    -.I syntactical
    -.IR space ;
    -every command can be terminated by a comment.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Simple Commands"
    -.\" --------------------------------------------------------------------
    -.
    -The commands in this subsection have a command code consisting of a
    -single character, taking a fixed number of arguments.
    -.
    -Most of them are commands for positioning and text writing.
    -.
    -These commands are smart about whitespace.
    -.
    -Optionally,
    -.I syntactical space
    -can be inserted before, after, and between the command letter and its
    -arguments.
    -.
    -All of these commands are stackable, i.e., they can be preceded by
    -other simple commands or followed by arbitrary other commands on the
    -same line.
    -.
    -A separating
    -.I syntactical space
    -is only necessary when two integer arguments would clash or if the
    -preceding argument ends with a string argument.
    -.
    -.
    -.if (\n[@USE_ENV_STACK] == 1) \{\
    -.command {
    -Open a new environment by copying the actual device configuration data
    -to the environment stack.
    -.
    -The current environment is setup by the device specification and
    -manipulated by the setting commands.
    -.
    -.
    -.command }
    -Close the actual environment (opened by a preceding
    -.BR { \~command)
    -and restore the previous environment from the environment
    -stack as the actual device configuration data.
    -.
    -\}              \" endif @USE_ENV_STACK
    -.
    -.
    -.command C xxx \[la]white_space\[ra]
    -Print a special groff character named
    -.argument xxx .
    -.
    -The trailing
    -.I syntactical space
    -or
    -.I line break
    -is necessary to allow character names of arbitrary length.
    -.
    -The character is printed at the current print position; the
    -character's size is read from the font file.
    -.
    -The print position is not changed.
    -.
    -.
    -.command c c
    -Print character\~\c
    -.argument c
    -at the current print position;
    -the character's size is read from the font file.
    -.
    -The print position is not changed.
    -.
    -.
    -.command f n
    -Set font to font number\~\c
    -.argument n
    -(a non-negative integer).
    -.
    -.
    -.command H n
    -Move right to the absolute vertical position\~\c
    -.argument n
    -(a non-negative integer in basic units\~\c
    -.unit u )
    -relative to left edge of current page.
    -.
    -.
    -.command h n
    -Move
    -.argument n
    -(a non-negative integer) basic units\~\c
    -.unit u
    -horizontally to the right.
    -.
    -.I [CSTR\~#54]
    -allows negative values for
    -.I n
    -also, but
    -.I groff
    -doesn't use this.
    -.
    -.
    -.command m "color_scheme \f[R][\f[]component .\|.\|.\f[R]]\f[]"
    -Set the color for text (glyphs), line drawing, and the outline of
    -graphic objects using different color schemes; the analoguous command
    -for the filling color of graphic objects is
    -.BR DF .
    -.
    -The color components are specified as integer arguments between 0 and
    -\n[@maxcolor].
    -.
    -The number of color components and their meaning vary for the
    -different color schemes.
    -.
    -These commands are generated by the
    -.I groff
    -escape sequence
    -.BR \*[@backslash]m .
    -.
    -No position changing.
    -.
    -These commands are a
    -.I groff
    -extension.
    -.
    -.
    -.RS
    -.
    -.command mc "cyan magenta yellow"
    -Set color using the CMY color scheme, having the 3\~color components
    -cyan, magenta, and yellow.
    -.
    -.
    -.command md
    -Set color to the default color value
    -(black in most cases).
    -.
    -No component arguments.
    -.
    -.
    -.command mg "gray"
    -Set color to the shade of gray given by the argument, an integer
    -between 0 (black) and \n[@maxcolor] (white).
    -.
    -.
    -.command mk "cyan magenta yellow black"
    -Set color using the CMYK color scheme, having the 4\~color components
    -cyan, magenta, yellow, and black.
    -.
    -.command mr "red green blue"
    -Set color using the RGB color scheme, having the 3\~color components
    -red, green, and blue.
    -.
    -.RE
    -.
    -.
    -.command N n
    -Print character with index\~\c
    -.argument n
    -(an integer, normally non-negative) of the current font.
    -.
    -The print position is not changed.
    -.
    -If
    -.B \-T\~html
    -is used, negative values are emitted also to indicate an unbreakable space
    -with given width.
    -.
    -For example,
    -.B N\~-193
    -represents an unbreakable space which has a width of 193u.
    -.
    -This command is a
    -.I groff
    -extension.
    -.
    -.
    -.command n b\ a
    -Inform the device about a line break, but no positioning is done by
    -this command.
    -.
    -In
    -.I classical
    -.IR troff ,
    -the integer arguments
    -.argument b
    -and\~\c
    -.argument a
    -informed about the space before and after the current line to
    -make the
    -.I intermediate output
    -more human readable without performing any action.
    -.
    -In
    -.IR groff ,
    -they are just ignored, but they must be provided for compatibility
    -reasons.
    -.
    -.
    -.command p n
    -Begin a new page in the outprint.
    -.
    -The page number is set to\~\c
    -.argument n .
    -.
    -This page is completely independent of pages formerly processed even
    -if those have the same page number.
    -.
    -The vertical position on the outprint is automatically set to\~0.
    -.
    -All positioning, writing, and drawing is always done relative to a
    -page, so a
    -.BR p \~command
    -must be issued before any of these commands.
    -.
    -.
    -.command s n
    -Set point size to
    -.argument n
    -scaled points
    -(this is unit\~\c
    -.unit z
    -in GNU
    -.BR troff ).
    -.
    -.I Classical troff
    -used the unit
    -.I points
    -(\c
    -.unit p )
    -instead; see section
    -.BR COMPATIBILITY .
    -.
    -.
    -.command t xxx \[la]white_space\[ra]
    -.command+ t "xxx dummy_arg" \[la]white_space\[ra]
    -Print a word, i.e., a sequence of characters
    -.argument xxx
    -terminated by a space character or a line break; an optional second
    -integer argument is ignored (this allows the formatter to generate
    -an even number of arguments).
    -.
    -The first character should be printed at the current position, the
    -current horizontal position should then be increased by the width of
    -the first character, and so on for each character.
    -.
    -The widths of the characters are read from the font file, scaled for the
    -current point size, and rounded to a multiple of the horizontal
    -resolution.
    -.
    -Special characters cannot be printed using this command (use the
    -.B C
    -command for named characters).
    -.
    -This command is a
    -.I groff
    -extension; it is only used for devices whose
    -.I DESC
    -file contains the
    -.B tcommand
    -keyword; see
    -.BR groff_font (5).
    -.
    -.
    -.command u "n xxx" \[la]white_space\[ra]
    -Print word with track kerning.
    -.
    -This is the same as the
    -.B t
    -command except that after printing each character, the current
    -horizontal position is increased by the sum of the width of that
    -character and\~\c
    -.argument n
    -(an integer in
    -basic units\~\c
    -.unit u ).
    -This command is a
    -.I groff
    -extension; it is only used for devices whose
    -.I DESC
    -file contains the
    -.B tcommand
    -keyword; see
    -.BR groff_font (5).
    -.
    -.
    -.command V n
    -Move down to the absolute vertical position\~\c
    -.argument n
    -(a non-negative integer in basic units\~\c
    -.unit u )
    -relative to upper edge of current page.
    -.
    -.
    -.command v n
    -Move
    -.argument n
    -basic units\~\c
    -.unit u
    -down
    -.RI ( n
    -is a non-negative integer).
    -.
    -.I [CSTR\~#54]
    -allows negative values for
    -.I n
    -also, but
    -.I groff
    -doesn't use this.
    -.
    -.
    -.command w
    -Informs about a paddable whitespace to increase readability.
    -.
    -The spacing itself must be performed explicitly by a move command.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Graphics Commands"
    -.\" --------------------------------------------------------------------
    -.
    -Each graphics or drawing command in the
    -.I intermediate output
    -starts with the letter\~\c
    -.B D
    -followed by one or two characters that specify a subcommand; this
    -is followed by a fixed or variable number of integer arguments that
    -are separated by a single space character.
    -.
    -A
    -.B D\c
    -\~command
    -may not be followed by another command on the same line (apart from a
    -comment), so each
    -.B D\c
    -\~command
    -is terminated by a
    -.I syntactical line
    -.IR break .
    -.
    -.
    -.P
    -.B troff
    -output follows the classical spacing rules (no space between command
    -and subcommand, all arguments are preceded by a single space
    -character), but the parser allows optional space between the command
    -letters and makes the space before the first argument optional.
    -.
    -As usual, each space can be any sequence of tab and space characters.
    -.
    -.
    -.P
    -Some graphics commands can take a variable number of arguments.
    -.
    -In this case, they are integers representing a size measured in basic
    -units\~\c
    -.unit u .
    -.
    -The arguments called
    -.list1..n h
    -stand for horizontal distances where positive means right, negative
    -left.
    -.
    -The arguments called
    -.list1..n v
    -stand for vertical distances where positive means down, negative up.
    -.
    -All these distances are offsets relative to the current location.
    -.
    -.
    -.P
    -Unless indicated otherwise, each graphics command directly corresponds
    -to a similar
    -.I groff
    -.B \*[@backslash]D
    -escape sequence; see
    -.BR groff (7).
    -.
    -.
    -.P
    -Unknown
    -.B D\c
    -\~commands are assumed to be device-specific.
    -.
    -Its arguments are parsed as strings; the whole information is then
    -sent to the postprocessor.
    -.
    -.
    -.P
    -In the following command reference, the syntax element
    -.I \[la]line_break\[ra]
    -means a
    -.I syntactical line break
    -as defined in section
    -.BR Separation .
    -.
    -.
    -.D-multiarg ~
    -Draw B-spline from current position to offset
    -.indexed_offset h 1 v 1 ,
    -then to offset
    -.indexed_offset h 2 v 2
    -if given, etc.\& up to
    -.indexed_offset h n v n .
    -This command takes a variable number of argument pairs; the current
    -position is moved to the terminal point of the drawn curve.
    -.
    -.
    -.Da-command
    -Draw arc from current position to
    -.indexed_offset h 1 v 1 \|+\|\c
    -.indexed_offset h 2 v 2
    -with center at
    -.indexed_offset h 1 v 1 ;
    -then move the current position to the final point of the arc.
    -.
    -.
    -.D-command C d
    -.D-command+ C d dummy_arg
    -Draw a solid circle using the current fill color with diameter\~\c
    -.argument d
    -(integer in basic units\~\c
    -.unit u )
    -with leftmost point at the current position; then move the current
    -position to the rightmost point of the circle.
    -.
    -An optional second integer argument is ignored (this allows to the
    -formatter to generate an even number of arguments).
    -.
    -This command is a
    -.I groff
    -extension.
    -.
    -.
    -.D-command c d
    -Draw circle line with diameter\~\c
    -.argument d
    -(integer in basic units\~\c
    -.unit u )
    -with leftmost point at the current position; then move the current
    -position to the rightmost point of the circle.
    -.
    -.
    -.D-command E "h v"
    -Draw a solid ellipse in the current fill color with a horizontal
    -diameter of\~\c
    -.argument h
    -and a vertical diameter of\~\c
    -.argument v
    -(both integers in basic units\~\c
    -.unit u )
    -with the leftmost point at the current position; then move to the
    -rightmost point of the ellipse.
    -.
    -This command is a
    -.I groff
    -extension.
    -.
    -.
    -.D-command e "h v"
    -Draw an outlined ellipse with a horizontal diameter of\~\c
    -.argument h
    -and a vertical diameter of\~\c
    -.argument v
    -(both integers in basic units\~\c
    -.unit u )
    -with the leftmost point at current position; then move to the
    -rightmost point of the ellipse.
    -.
    -.
    -.D-command F "color_scheme \f[R][\f[]component .\|.\|.\f[R]]\f[]"
    -Set fill color for solid drawing objects using different color
    -schemes; the analoguous command for setting the color of text, line
    -graphics, and the outline of graphic objects is
    -.BR m .
    -.
    -The color components are specified as integer arguments between 0 and
    -\n[@maxcolor].
    -.
    -The number of color components and their meaning vary for the
    -different color schemes.
    -.
    -These commands are generated by the
    -.I groff
    -escape sequences
    -.B \*[@backslash]D'F\ .\|.\|.'
    -and
    -.B \*[@backslash]M
    -(with no other corresponding graphics commands).
    -.
    -No position changing.
    -.
    -This command is a
    -.I groff
    -extension.
    -.
    -.
    -.RS
    -.
    -.D-command Fc "cyan magenta yellow"
    -Set fill color for solid drawing objects using the CMY color scheme,
    -having the 3\~color components cyan, magenta, and yellow.
    -.
    -.
    -.D-command Fd
    -Set fill color for solid drawing objects to the default fill color value
    -(black in most cases).
    -.
    -No component arguments.
    -.
    -.
    -.D-command Fg "gray"
    -Set fill color for solid drawing objects to the shade of gray given by
    -the argument, an integer between 0 (black) and \n[@maxcolor] (white).
    -.
    -.
    -.D-command Fk "cyan magenta yellow black"
    -Set fill color for solid drawing objects using the CMYK color scheme,
    -having the 4\~color components cyan, magenta, yellow, and black.
    -.
    -.D-command Fr "red green blue"
    -Set fill color for solid drawing objects using the RGB color scheme,
    -having the 3\~color components red, green, and blue.
    -.
    -.RE
    -.
    -.
    -.D-command f n
    -The argument
    -.argument n
    -must be an integer in the range -32767 to 32767.
    -.
    -.RS
    -.TP
    -.RI "0 \[<=] " n " \[<=] 1000"
    -Set the color for filling solid drawing objects to a shade of gray,
    -where 0 corresponds to solid white, 1000 (the default) to solid black,
    -and values in between to intermediate shades of gray; this is
    -obsoleted by command
    -.BR DFg .
    -.
    -.TP
    -.IR n " < 0 or " n " > 1000"
    -Set the filling color to the color that is currently being used for
    -the text and the outline, see command
    -.BR m .
    -For example, the command sequence
    -.
    -.nf
    -.ft CB
    -.RS
    -.RS
    -mg 0 0 \n[@maxcolor]
    -Df -1
    -.RE
    -.ft
    -.fi
    -.
    -sets all colors to blue.
    -.RE
    -.
    -.
    -.P
    -No position changing.
    -.
    -This command is a
    -.I groff
    -extension.
    -.
    -.RE
    -.
    -.
    -.D-command l "h v"
    -Draw line from current position to offset
    -.offset h v
    -(integers in basic units\~\c
    -.unit u );
    -then set current position to the end of the drawn line.
    -.
    -.
    -.D-multiarg p
    -Draw a polygon line from current position to offset
    -.offset h1 v1 ,
    -from there to offset
    -.offset h2 v2 ,
    -etc.\& up to offset
    -.offset hn vn ,
    -and from there back to the starting position.
    -.
    -.ie (\n[@STUPID_DRAWING_POSITIONING] == 1) \{\
    -For historical reasons, the position is changed by adding the sum of
    -all arguments with odd index to the actual horizontal position and the
    -even ones to the vertical position.
    -.
    -Although this doesn't make sense it is kept for compatibility.
    -.
    -\}
    -.el \{\
    -As the polygon is closed, the end of drawing is the starting point, so
    -the position doesn't change.
    -\}
    -.
    -This command is a
    -.I groff
    -extension.
    -.
    -.
    -.D-multiarg P
    -The same macro as the corresponding
    -.B Dp
    -command with the same arguments, but draws a solid polygon in the
    -current fill color rather than an outlined polygon.
    -.
    -.ie (\n[@STUPID_DRAWING_POSITIONING] == 1) \{\
    -The position is changed in the same way as with
    -.BR Dp .
    -\}
    -.el \
    -No position changing.
    -.
    -This command is a
    -.I groff
    -extension.
    -.
    -.
    -.D-command t n
    -Set the current line thickness to\~\c
    -.argument n
    -(an integer in basic units\~\c
    -.unit u )
    -if
    -.argument n >0;
    -if
    -.argument n =0
    -select the smallest available line thickness; if
    -.argument n <0
    -set the line thickness proportional to the point size (this is the
    -default before the first
    -.B Dt
    -command was specified).
    -.
    -.ie (\n[@STUPID_DRAWING_POSITIONING] == 1) \{\
    -For historical reasons, the horizontal position is changed by adding
    -the argument to the actual horizontal position, while the vertical
    -position is not changed.
    -.
    -Although this doesn't make sense it is kept for compatibility.
    -.
    -\}
    -.el \
    -No position changing.
    -.
    -This command is a
    -.I groff
    -extension.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Device Control Commands"
    -.\" --------------------------------------------------------------------
    -.
    -Each device control command starts with the letter
    -.B x
    -followed by a space character (optional or arbitrary space/\:tab in
    -.IR groff )
    -and a subcommand letter or word; each argument (if any) must be
    -preceded by a
    -.I syntactical
    -.IR space .
    -.
    -All
    -.B x
    -commands are terminated by a
    -.IR "syntactical line break" ;
    -no device control command can be followed by another command on the same
    -line (except a comment).
    -.
    -.P
    -The subcommand is basically a single letter, but to increase
    -readability, it can be written as a word, i.e., an arbitrary sequence
    -of characters terminated by the next tab, space, or newline character.
    -.
    -All characters of the subcommand word but the first are simply ignored.
    -.
    -For example,
    -.B troff
    -outputs the initialization command
    -.B x\ i
    -as
    -.B x\ init
    -and the resolution command
    -.B x\ r
    -as
    -.BR "x\ res" .
    -.
    -But writings like
    -.B x\ i_like_groff
    -and
    -.B x\ roff_is_groff
    -resp.\& are accepted as well to mean the same commands.
    -.
    -.P
    -In the following, the syntax element
    -.I \[la]line_break\[ra]
    -means a
    -.I syntactical line break
    -as defined in section
    -.BR Separation .
    -.
    -.x-command F name
    -.xsub Filename
    -Use
    -.argument name
    -as the intended name for the current file in error reports.
    -.
    -This is useful for remembering the original file name when
    -.B groff
    -uses an internal piping mechanism.
    -.
    -The input file is not changed by this command.
    -.
    -This command is a
    -.I groff
    -extension.
    -.
    -.
    -.x-command f "n\ s"
    -.xsub font
    -Mount font position\~\c
    -.argument n
    -(a non-negative integer) with font named\~\c
    -.argument s
    -(a text word),
    -cf.
    -.BR groff_font (5).
    -.
    -.
    -.x-command H n
    -.xsub Height
    -Set character height to\~\c
    -.argument n
    -(a positive integer in scaled points\~\c
    -.unit z ).
    -.
    -.I Classical troff
    -used the unit points (\c
    -.unit p )
    -instead; see section
    -.BR COMPATIBILITY .
    -.
    -.
    -.x-command i
    -.xsub init
    -Initialize device.
    -.
    -This is the third command of the
    -.IR prologue .
    -.
    -.
    -.x-command p
    -.xsub pause
    -Parsed but ignored.
    -.
    -The classical documentation reads
    -.I pause device, can be
    -.IR restarted .
    -.
    -.
    -.x-command r "n\ h\ v"
    -.xsub resolution
    -Resolution is\~\c
    -.argument n ,
    -while
    -.argument h
    -is the minimal horizontal motion, and
    -.argument v
    -the minimal vertical motion possible with this device; all arguments
    -are positive integers in basic units\~\c
    -.unit u
    -per inch.
    -.
    -This is the second command of the
    -.IR prologue .
    -.
    -.
    -.x-command S n
    -.xsub Slant
    -Set slant to\~\c
    -.argument n
    -degrees (an integer in basic units\~\c
    -.unit u ).
    -.
    -.
    -.x-command s
    -.xsub stop
    -Terminates the processing of the current file; issued as the last
    -command of any
    -.I intermediate troff
    -.IR output .
    -.
    -.
    -.x-command t
    -.xsub trailer
    -Generate trailer information, if any.
    -.
    -In
    -.BR groff ,
    -this is actually just ignored.
    -.
    -.
    -.x-command T xxx
    -.xsub Typesetter
    -Set name of device to word
    -.argument xxx ,
    -a sequence of characters ended by the next whitespace character.
    -.
    -The possible device names coincide with those from the groff
    -.B -T
    -option.
    -.
    -This is the first command of the
    -.IR prologue .
    -.
    -.
    -.x-command u n
    -.xsub underline
    -Configure underlining of spaces.
    -.
    -If
    -.argument n
    -is\~1, start underlining of spaces;
    -if
    -.argument n
    -is\~0, stop underlining of spaces.
    -.
    -This is needed for the
    -.B cu
    -request in
    -.B nroff
    -mode and is ignored otherwise.
    -.
    -This command is a
    -.I groff
    -extension.
    -.
    -.
    -.x-command X anything
    -.xsub X-escape
    -Send string
    -.argument anything
    -uninterpreted to the device.
    -.
    -If the line following this command starts with a
    -.B +
    -character this line is interpreted as a continuation line in the
    -following sense.
    -.
    -The
    -.B +
    -is ignored, but a newline character is sent instead to the device, the
    -rest of the line is sent uninterpreted.
    -.
    -The same applies to all following lines until the first character of a
    -line is not a
    -.B +
    -character.
    -.
    -This command is generated by the
    -.I groff
    -escape sequence
    -.BR \*[@backslash]X .
    -.
    -The line-continuing feature is a
    -.I groff
    -extension.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Obsolete Command"
    -.\" --------------------------------------------------------------------
    -.
    -In
    -.I classical troff
    -output, the writing of a single character was mostly done by a very
    -strange command that combined a horizontal move and the printing of a
    -character.
    -.
    -It didn't have a command code, but is represented by a 3-character
    -argument consisting of exactly 2\~digits and a character.
    -.
    -.TP
    -.argument ddc
    -Move right
    -.argument dd
    -(exactly two decimal digits) basic units\~\c
    -.unit u ,
    -then print character\~\c
    -.argument c .
    -.
    -.
    -.RS
    -.P
    -In
    -.IR groff ,
    -arbitrary
    -.I syntactical space
    -around and within this command is allowed to be added.
    -.
    -Only when a preceding command on the same line ends with an argument
    -of variable length a separating space is obligatory.
    -.
    -In
    -.I classical
    -.IR troff ,
    -large clusters of these and other commands were used, mostly without
    -spaces; this made such output almost unreadable.
    -.
    -.RE
    -.
    -.
    -.P
    -For modern high-resolution devices, this command does not make sense
    -because the width of the characters can become much larger than two
    -decimal digits.
    -.
    -In
    -.BR groff ,
    -this is only used for the devices
    -.BR X75 ,
    -.BR X75-12 ,
    -.BR X100 ,
    -and
    -.BR X100-12 .
    -.
    -For other devices,
    -the commands
    -.B t
    -and\~\c
    -.B u
    -provide a better functionality.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "POSTPROCESSING"
    -.\" --------------------------------------------------------------------
    -.
    -The
    -.I roff
    -postprocessors are programs that have the task to translate the
    -.I intermediate output
    -into actions that are sent to a device.
    -.
    -A device can be some piece of hardware such as a printer, or a software
    -file format suitable for graphical or text processing.
    -.
    -The
    -.I groff
    -system provides powerful means that make the programming of such
    -postprocessors an easy task.
    -.P
    -There is a library function that parses the
    -.I intermediate output
    -and sends the information obtained to the device via methods of a
    -class with a common interface for each device.
    -.
    -So a
    -.I groff
    -postprocessor must only redefine the methods of this class.
    -.
    -For details, see the reference in section
    -.BR FILES .
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "EXAMPLES"
    -.\" --------------------------------------------------------------------
    -.
    -This section presents the
    -.I intermediate output
    -generated from the same input for three different devices.
    -.
    -The input is the sentence
    -.I hell world
    -fed into
    -.B groff
    -on the command line.
    -.
    -.
    -.Topic
    -High-resolution device
    -.I ps
    -.
    -.
    -.RS
    -.P
    -.ShellCommand echo "hell world" | groff -Z -T ps
    -.
    -.
    -.P
    -.nf
    -.ft CB
    -x T ps
    -x res 72000 1 1
    -x init
    -p1
    -x font 5 TR
    -f5
    -s10000
    -V12000
    -H72000
    -thell
    -wh2500
    -tw
    -H96620
    -torld
    -n12000 0
    -x trailer
    -V792000
    -x stop
    -.ft P
    -.fi
    -.RE
    -.
    -.
    -.P
    -This output can be fed into the postprocessor
    -.BR grops (1)
    -to get its representation as a PostScript file.
    -.
    -.
    -.Topic
    -Low-resolution device
    -.I latin1
    -.
    -.
    -.RS
    -.P
    -This is similar to the high-resolution device except that the
    -positioning is done at a minor scale.
    -.
    -Some comments (lines starting with
    -.IR # )
    -were added for clarification; they were not generated by the
    -formatter.
    -.
    -.
    -.P
    -.ShellCommand echo "hell world" | groff -Z -T latin1
    -.
    -.
    -.P
    -.nf
    -.I "# prologue"
    -.ft CB
    -x T latin1
    -x res 240 24 40
    -x init
    -.I "# begin a new page"
    -.ft CB
    -p1
    -.I "# font setup"
    -.ft CB
    -x font 1 R
    -f1
    -s10
    -.I "# initial positioning on the page"
    -.ft CB
    -V40
    -H0
    -.I "# write text `hell'"
    -.ft CB
    -thell
    -.I "# inform about a space, and do it by a horizontal jump"
    -.ft CB
    -wh24
    -.I "# write text `world'"
    -.ft CB
    -tworld
    -.I "# announce line break, but do nothing because ..."
    -.ft CB
    -n40 0
    -.I "# ... the end of the document has been reached"
    -.ft CB
    -x trailer
    -V2640
    -x stop
    -.ft P
    -.fi
    -.RE
    -.
    -.
    -.P
    -This output can be fed into the postprocessor
    -.BR grotty (1)
    -to get a formatted text document.
    -.
    -.
    -.Topic
    -Classical style output
    -.
    -.
    -.RS
    -.P
    -As a computer monitor has a very low resolution compared to modern
    -printers the
    -.I intermediate output
    -for the X\~devices can use the jump-and-write command with its 2-digit
    -displacements.
    -.
    -.
    -.P
    -.ShellCommand echo "hell world" | groff -Z -T X100
    -.
    -.
    -.P
    -.nf
    -.ft CB
    -x T X100
    -x res 100 1 1
    -x init
    -p1
    -x font 5 TR
    -f5
    -s10
    -V16
    -H100
    -.I "# write text with old-style jump-and-write command"
    -.ft CB
    -ch07e07l03lw06w11o07r05l03dh7
    -n16 0
    -x trailer
    -V1100
    -x stop
    -.ft P
    -.fi
    -.RE
    -.
    -.
    -.P
    -This output can be fed into the postprocessor
    -.BR \%xditview (1x)
    -or
    -.BR \%gxditview (1)
    -for displaying in\~X.
    -.
    -.
    -.P
    -Due to the obsolete jump-and-write command, the text clusters in the
    -classical output are almost unreadable.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "COMPATIBILITY"
    -.\" --------------------------------------------------------------------
    -.
    -The
    -.I intermediate output
    -language of the 
    -.I classical troff
    -was first documented in
    -.IR [CSTR\~#97] .
    -.
    -The
    -.I groff intermediate output
    -format is compatible with this specification except for the following
    -features.
    -.
    -.
    -.Topic
    -The classical quasi device independence is not yet implemented.
    -.
    -.
    -.Topic
    -The old hardware was very different from what we use today.
    -.
    -So the
    -.I groff
    -devices are also fundamentally different from the ones in
    -.I classical
    -.IR troff .
    -.
    -For example, the classical PostScript device was called
    -.I post
    -and had a resolution of 720 units per inch,
    -while
    -.IR groff 's
    -.I ps
    -device has a resolution of 72000 units per inch.
    -.
    -Maybe, by implementing some rescaling mechanism similar to the
    -classical quasi device independence, these could be integrated into
    -modern
    -.IR groff .
    -.
    -.
    -.Topic
    -The B-spline command
    -.B D~
    -is correctly handled by the
    -.I intermediate output
    -parser, but the drawing routines aren't implemented in some of the
    -postprocessor programs.
    -.
    -.
    -.Topic
    -The argument of the commands
    -.B s
    -and
    -.B x H
    -has the implicit unit scaled point\~\c
    -.unit z
    -in
    -.IR groff ,
    -while
    -.I classical troff
    -had point (\c
    -.unit p ).
    -.
    -This isn't an incompatibility, but a compatible extension, for both
    -units coincide for all devices without a
    -.I sizescale
    -parameter, including all classical and the
    -.I groff
    -text devices.
    -.
    -The few
    -.I groff
    -devices with a sizescale parameter either did not exist, had a
    -different name, or seem to have had a different resolution.
    -.
    -So conflicts with classical devices are very unlikely.
    -.
    -.
    -.ie (\n[@STUPID_DRAWING_POSITIONING] == 1) \{\
    -.Topic
    -The position changing after the commands
    -.BR Dp ,
    -.BR DP ,
    -and
    -.B Dt
    -is illogical, but as old versions of groff used this feature it is
    -kept for compatibility reasons.
    -.\}             \" @STUPID_DRAWING_POSITIONING
    -.el \{\
    -.Topic
    -Temporarily, there existed some confusion on the positioning after the
    -.B D
    -commands that are
    -.I groff
    -extensions.
    -.
    -This has been clarified by establishing the classical rule for all
    -groff drawing commands:
    -.
    -.
    -.RS
    -.P
    -.ft I
    -The position after a graphic object has been drawn is at its end;
    -for circles and ellipses, the "end" is at the right side.
    -.ft
    -.RE
    -.
    -.
    -.P
    -From this, the positionings specified for the drawing commands above
    -follow quite naturally.
    -.\}             \" @STUPID_DRAWING_POSITIONING
    -.
    -.P
    -The differences between
    -.I groff
    -and
    -.I classical troff
    -are documented in
    -.BR groff_diff (7).
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "FILES"
    -.\" --------------------------------------------------------------------
    -.
    -.TP
    -.BI /usr/share/groff/1.19.2/font/dev name /DESC
    -Device description file for device
    -.IR name .
    -.
    -.TP
    -.IB \[la]groff_source_dir\[ra] /src/libs/libdriver/input.cpp
    -Defines the parser and postprocessor for the
    -.I intermediate
    -.IR output .
    -.
    -It is located relative to the top directory of the
    -.I groff
    -source tree, e.g.
    -.IR @GROFFSRCDIR@ .
    -.
    -This parser is the definitive specification of the
    -.I groff intermediate output
    -format.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "SEE ALSO"
    -.\" --------------------------------------------------------------------
    -.
    -A reference like
    -.BR groff (7)
    -refers to a manual page; here
    -.B groff
    -in section\~\c
    -.I 7
    -of the man-page documentation system.
    -.
    -To read the example, look up section\~7 in your desktop help
    -system or call from the shell prompt
    -.
    -.
    -.RS
    -.P
    -.ShellCommand man 7 groff
    -.RE
    -.
    -.
    -.P
    -For more details, see
    -.BR man (1).
    -.
    -.
    -.TP
    -.BR groff (1)
    -option
    -.B -Z
    -and further readings on groff.
    -.
    -.
    -.TP
    -.BR groff (7)
    -for details of the
    -.I groff
    -language such as numerical units and escape sequences.
    -.
    -.
    -.TP
    -.BR groff_font (5)
    -for details on the device scaling parameters of the
    -.B DESC
    -file.
    -.
    -.
    -.TP
    -.BR troff (1)
    -generates the device-independent intermediate output.
    -.
    -.
    -.TP
    -.BR roff (7)
    -for historical aspects and the general structure of roff systems.
    -.
    -.
    -.TP
    -.BR groff_diff (7)
    -The differences between the intermediate output in groff and classical
    -troff.
    -.
    -.
    -.TP
    -.BR gxditview (1)
    -Viewer for the
    -.I intermediate
    -.IR output .
    -.
    -.
    -.P
    -.BR \%grodvi (1),
    -.BR \%grohtml (1),
    -.BR \%grolbp (1),
    -.BR \%grolj4 (1),
    -.BR \%grops (1),
    -.BR \%grotty (1)
    -.br
    -.RS
    -the groff postprocessor programs.
    -.RE
    -.
    -.
    -.P
    -For a treatment of all aspects of the groff system within a single
    -document, see the
    -.I groff info
    -.IR file .
    -.
    -It can be read within the integrated help systems, within
    -.BR emacs (1)
    -or from the shell prompt by
    -.
    -.RS
    -.ShellCommand info groff
    -.RE
    -.
    -.
    -.P
    -The
    -.I classical troff output language
    -is described in two AT&T Bell Labs CSTR documents available on-line at
    -.URL http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr.html \
    -     "Bell Labs CSTR site" .
    -.
    -.
    -.TP
    -.I [CSTR #97]
    -.I A Typesetter-independent TROFF
    -by
    -.I Brian Kernighan
    -is the original and most concise documentation on the output language;
    -see
    -.URL http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr/\:97.ps.gz CSTR\~#97 .
    -.
    -.
    -.TP
    -.I [CSTR\~#54]
    -The 1992 revision of the
    -.I Nroff/\:Troff User's Manual
    -by
    -.I J.\& F.\& Osanna
    -and
    -.I Brian Kernighan
    -isn't as concise as
    -.I [CSTR\~#97]
    -regarding the output language; see
    -.URL http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr/\:54.ps.gz CSTR\~#54 .
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "AUTHORS"
    -.\" --------------------------------------------------------------------
    -.
    -Copyright (C) 1989, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
    -.
    -.
    -.P
    -This document is distributed under the terms of the FDL (GNU Free
    -Documentation License) version 1.1 or later.
    -.
    -You should have received a copy of the FDL with this package; it is also
    -available on-line at the
    -.URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" .
    -.
    -.
    -.P
    -This document is part of
    -.IR groff ,
    -the GNU
    -.I roff
    -distribution.
    -.
    -It is based on a former version \- published under the GPL \- that
    -described only parts of the
    -.I groff
    -extensions of the output language.
    -.
    -It has been rewritten 2002 by \m[blue]Bernd Warken\m[] and is
    -maintained by
    -.MTO wl@gnu.org "Werner Lemberg" .
    -.
    -.cp \n[groff_out_C]
    -.
    -.\" --------------------------------------------------------------------
    -.\" Emacs settings
    -.\" --------------------------------------------------------------------
    -.\"
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man5/groff_tmac.5 b/gen/usr/share/man/man5/groff_tmac.5
    deleted file mode 100644
    index 6e343d1..0000000
    --- a/gen/usr/share/man/man5/groff_tmac.5
    +++ /dev/null
    @@ -1,1282 +0,0 @@
    -.TH GROFF_TMAC 5 "28 July 2004" "Groff Version 1.19.2"
    -.SH NAME
    -groff_tmac \- macro files in the roff typesetting system
    -.SH DESCRIPTION
    -.\" The .SH was moved to this place to make `apropos' happy.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.\" Legalize
    -.\" --------------------------------------------------------------------
    -.
    -.ig
    -groff_tmac.5
    -
    -File position: /man/groff_tmac.man
    -
    -Last update: 27 Jul 2004
    -
    -This file is part of groff, the GNU roff type-setting system.
    -
    -Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
    -written by Bernd Warken  and Werner Lemberg
    -
    -
    -Permission is granted to copy, distribute and/or modify this document
    -under the terms of the GNU Free Documentation License, Version 1.1 or
    -any later version published by the Free Software Foundation; with the
    -Invariant Sections being this .ig-section and AUTHOR, with no
    -Front-Cover Texts, and with no Back-Cover Texts.
    -
    -A copy of the Free Documentation License is included as a file called
    -FDL in the main directory of the groff source package.
    -..
    -.
    -.\" --------------------------------------------------------------------
    -.\" Setup
    -.\" --------------------------------------------------------------------
    -.
    -.do nr groff_tmac_C \n[.C]
    -.cp 0
    -.
    -.mso www.tmac
    -.
    -.if n \{\
    -.  mso tty-char.tmac
    -.  ftr CR R
    -.  ftr CI I
    -.  ftr CB B
    -.\}
    -.
    -.ds Ellipsis \&.\|.\|.\&\"
    -.
    -.\" Global static variables for inter-macro communication
    -.rr @+Example_font
    -.
    -.\" --------------------------------------------------------------------
    -.\" setup for the macro definitions below
    -.\"
    -.\" naming:  namespace:cathegory_macro.variable_name  (experimental)
    -.
    -.\" --------------------------------------------------------------------
    -.\" configuration of prompt for `.Shell_cmd'* macros
    -.ds groffer:Shell_cmd.prompt_text sh#\"    prompt for shell commands
    -.ds groffer:Shell_cmd+.prompt_text >\"     prompt on continuation lines
    -.ds groffer:Shell_cmd_base.prompt_font I\" font for prompts
    -.
    -.\" automatically determine setup from the configuration above
    -.als @f groffer:Shell_cmd_base.prompt_font\"
    -.als @t groffer:Shell_cmd.prompt_text\"
    -.als @t+ groffer:Shell_cmd+.prompt_text\"
    -.ds groffer:Shell_cmd.prompt \f[\*[@f]]\*[@t]\f[]\"            needed
    -.ds groffer:Shell_cmd+.prompt \f[\*[@f]]\*[@t+]\f[]\"          needed
    -.nr @w \w'\*[groffer:Shell_cmd.prompt]'\"
    -.nr @w+ \w'\*[groffer:Shell_cmd+.prompt]'\"
    -.ft \*[@f]
    -.\" Full prompt width is maximum of texts plus 1m
    -.nr groffer:Shell_cmd_base.prompt_width (\n[@w]>?\n[@w+]+1m)\" needed
    -.ft
    -.rm @f
    -.rm @f+
    -.rm @t
    -.rm @t+
    -.rr @w
    -.rr @w+
    -.
    -.\"--------------------------------------------------------------------
    -.\" Ignore all arguments like a comment, even after a .eo call.
    -.de c
    -..
    -.c --------------------------------------------------------------------
    -.de BIR
    -.  ie (\\n[.$] < 3) \
    -.    BI \\$@
    -.  el \{\
    -.    ds @tmp@ \fB\\$1\f[]\fI\\$2\f[]
    -.    shift 2
    -.    Text \\*[@tmp@]\fR\\$*\f[]
    -.    rm @tmp@
    -.  \}
    -..
    -.c --------------------------------------------------------------------
    -.c .Env_var  ( [])
    -.c
    -.c Display an environment variable, with optional punctuation.
    -.c
    -.de Env_var
    -.  nh
    -.  SM
    -.  Text \f[CB]\\$1\f[]\\$2
    -.  hy
    -..
    -.c --------------------------------------------------------------------
    -.c .Error  (...)
    -.c
    -.c Print error message to terminal and abort.
    -.c
    -.de Error
    -.  tm \\$*
    -.  ab
    -..
    -.c --------------------------------------------------------------------
    -.de Example
    -.  if r@+Example_font \
    -.    Error previous .Example was not terminated by a ./Example
    -.  nr @+Example_font \\n[.f]
    -.  nh
    -.  nf
    -.  RS
    -.  ft CR
    -..
    -.c --------------------------------------------------------------------
    -.de /Example
    -.  if !r@+Example_font \
    -.    Error no previous call to .Example
    -.  ft \\n[@+Example_font]
    -.  RE
    -.  fi
    -.  hy
    -.  rr @+Example_font
    -..
    -.
    -.c --------------------------------------------------------------------
    -.c .Shell_cmd  ( [] ...)
    -.c
    -.c A shell command line; display args alternating in fonts CR and CI.
    -.c
    -.c Examples:
    -.c   .Shell_cmd "groffer --dpi 100 file"
    -.c     result: `sh#  groffer --dpi 100 file'
    -.c             with 'sh#' in font I, the rest in CR
    -.c
    -.c   .Shell_cmd groffer\~--dpi\~100\~file
    -.c     result: the same as above
    -.c
    -.c   .Shell_cmd "groffer --dpi=" value " file"
    -.c     result: sh#  groffer --dpi=value file
    -.c             with `groffer --dpi=' and `file' in CR; `value' in CI
    -.c
    -.c   .Shell_cmd groffer\~--dpi= value \~file
    -.c     result: the same as the previous example
    -.c
    -.de Shell_cmd
    -.  groffer:Shell_cmd_base "\*[groffer:Shell_cmd.prompt]" \\$@
    -..
    -.c --------------------------------------------------------------------
    -.c .Shell_cmd+  ( [] ...)
    -.c
    -.c A continuation line for .Shell_cmd.
    -.c
    -.de Shell_cmd+
    -.  groffer:Shell_cmd_base "\*[groffer:Shell_cmd+.prompt]" \\$@
    -..
    -.c --------------------------------------------------------------------
    -.c .Shell_cmd_base  ( [ [] ...])
    -.c
    -.c A shell command line; display args alternating in fonts CR and CI.
    -.c Internal, do not use directly.
    -.c
    -.c Globals: read-only register @.Shell_cmd_width
    -.c
    -.de groffer:Shell_cmd_base
    -.  if (\\n[.$] <= 0) \
    -.    return
    -.  nr @+font \\n[.f]\"
    -.  ds @prompt \\$1\"
    -.  ft CR
    -.  c gap between prompt and command
    -.  nr @+gap \\n[groffer:Shell_cmd_base.prompt_width]-\\w'\\*[@prompt]'\"
    -.  ds @res \\*[@prompt]\h'\\n[@+gap]u'\"
    -.  shift
    -.  ds @cf CR\"
    -.  while (\\n[.$] > 0) \{\
    -.    as @res \\f[\\*[@cf]]\\$1\"
    -.    shift
    -.    ie '\\*[@cf]'CR' \
    -.      ds @cf I\"
    -.    el \
    -.      ds @cf CR\"
    -.  \}
    -.  br
    -.  ad l
    -.  nh
    -.  nf
    -.  Text \\*[@res]\"
    -.  fi
    -.  hy
    -.  ad
    -.  br
    -.  ft \\n[@+font]
    -.  rr @+font
    -.  rr @+gap
    -.  rm @cf
    -.  rm @res
    -..
    -.c --------------------------------------------------------------------
    -.c .Text  (...)
    -.c
    -.c Treat the arguments as text, no matter how they look.
    -.c
    -.de Text
    -.  if (\\n[.$] == 0) \
    -.    return
    -.  nop \)\\$*\)
    -..
    -.c --------------------------------------------------------------------
    -.c .Topic  ([])
    -.c
    -.c A bulleted paragraph
    -.c
    -.de Topic
    -.  ie (\\n[.$] = 0) \
    -.    ds @indent 2m\"
    -.  el \
    -.    ds @indent \\$1\"
    -.  TP \\*[@indent]
    -.  Text \[bu]
    -.  rm @indent
    -..
    -.c --------------------------------------------------------------------
    -.c .TP+  ()
    -.c
    -.c Continuation line for .TP header.
    -.c
    -.de TP+
    -.  br
    -.  ns
    -.  TP \\$1
    -..
    -.c --------------------------------------------------------------------
    -.de 'char
    -.  ds @tmp@ `\f(CR\\$1\f[]'
    -.  shift
    -.  Text \\*[@tmp@]\\$*
    -.  rm @tmp@
    -..
    -.c --------------------------------------------------------------------
    -.de option
    -.  ds @tmp@ \f(CB\\$1\f[]
    -.  shift 1
    -.  Text \\*[@tmp@]\\$*
    -.  rm @tmp@
    -..
    -.c --------------------------------------------------------------------
    -.de argument
    -.  ds @tmp@ \f(CI\\$1\f[]
    -.  shift 1
    -.  Text \\*[@tmp@]\\$*
    -.  rm @tmp@
    -..
    -.c --------------------------------------------------------------------
    -.de request
    -.  ds @tmp@ \f(CB\\$1\f[]
    -.  shift 1
    -.  Text .\\*[@tmp@]\\$*
    -.  rm @tmp@
    -..
    -.c --------------------------------------------------------------------
    -.de escape
    -.  ds @tmp@ \f[CB]\\$1\f[]
    -.  shift 1
    -.  Text \[rs]\\*[@tmp@]\\$*
    -.  rm @tmp@
    -..
    -.\" --------------------------------------------------------------------
    -.\" SH DESCRIPTION
    -.\" --------------------------------------------------------------------
    -.
    -The
    -.BR roff (7)
    -type-setting system provides a set of macro packages suitable for
    -special kinds of documents.
    -.
    -Each macro package stores its macros and definitions in a file called
    -the package's
    -.BR "tmac file" .
    -The name is deduced from
    -.RB ` T\c
    -.IB roff MAC\c
    -.IR ros '.
    -.
    -.P
    -The tmac files are normal roff source documents, except that they
    -usually contain only definitions and setup commands, but no text.
    -.
    -All tmac files are kept in a single or a small number of directories,
    -the
    -.B tmac
    -directories.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "GROFF MACRO PACKAGES"
    -.\" --------------------------------------------------------------------
    -.
    -.I groff
    -provides all classical macro packages, some more full packages, and
    -some secondary packages for special purposes.
    -.
    -Note that it is not possible to use multiple primary macro packages at the
    -same time; saying e.g.\&
    -.
    -.IP
    -.Shell_cmd "groff \-m man \-m ms foo"
    -.
    -.P
    -or
    -.
    -.IP
    -.Shell_cmd "groff \-m man foo \-m ms bar"
    -.
    -.P
    -will fail.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Man\~Pages"
    -.\" --------------------------------------------------------------------
    -.
    -.TP
    -.B man
    -This is the classical macro package for UNIX manual pages
    -(man\~pages); it is quite handy and easy to use; see
    -.BR groff_man (7).
    -.
    -.
    -.TP
    -.B doc
    -.TP+
    -.B mdoc
    -An alternative macro package for man\~pages mainly used in BSD
    -systems; it provides many new features, but it is not the standard for
    -man\~pages; see
    -.BR groff_mdoc (7).
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Full Packages"
    -.\" --------------------------------------------------------------------
    -.
    -The packages in this section provide a complete set of macros for
    -writing documents of any kind, up to whole books.
    -.
    -They are similar in functionality; it is a matter of taste which one
    -to use.
    -.
    -.
    -.TP
    -.B me
    -The classical
    -.I me
    -macro package; see
    -.BR groff_me (7).
    -.
    -.
    -.TP
    -.B mm
    -The semi-classical
    -.I mm
    -macro package; see
    -.BR groff_mm (7).
    -.
    -.
    -.TP
    -.B mom
    -The new
    -.I mom
    -macro package, only available in groff.
    -.
    -As this is not based on other packages, it can be freely designed.
    -.
    -So it is expected to become quite a nice, modern macro package.
    -.
    -See
    -.BR groff_mom (7).
    -.
    -.
    -.TP
    -.B ms
    -The classical
    -.I ms
    -macro package; see
    -.BR groff_ms (7).
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Special Packages"
    -.\" --------------------------------------------------------------------
    -.
    -The macro packages in this section are not intended for stand-alone
    -usage, but can be used to add special functionality to any other
    -macro package or to plain groff.
    -.
    -.
    -.TP
    -.B papersize
    -This macro file is already loaded at start-up by
    -.B troff
    -so it isn't necessary to call it explicitly.
    -.
    -It provides an interface to set the paper size on the command line with
    -the option \f[B]\%\-dpaper=\f[]\f[I]size\f[].
    -.
    -Possible values for
    -.I size
    -are the same as the predefined
    -.B papersize
    -values in the DESC file (only lowercase; see
    -.BR groff_font (5)
    -for more) except
    -.BR a7 - d7 .
    -.
    -An appended
    -.B l
    -(ell) character denotes landscape orientation.
    -.
    -Examples:
    -.BR a4 ,
    -.BR c3l ,
    -.BR letterl .
    -.
    -.IP
    -Most output drivers need additional command line switches
    -.B \-p
    -and
    -.B \-l
    -to override the default paper length and orientation as set in the driver
    -specific DESC file.
    -.
    -For example, use the following for PS output on A4 paper in landscape
    -orientation:
    -.
    -.IP
    -.Shell_cmd "groff \-Tps \-dpaper=a4l \-P\-pa4 \-P\-l \-ms foo.ms > foo.ps"
    -.
    -.
    -.TP
    -.B pic
    -This file provides proper definitions for the macros
    -.B PS
    -and
    -.BR PE ,
    -needed for the
    -.BR pic (1)
    -preprocessor.
    -.
    -They will center each picture.
    -.
    -Use it only if your macro package doesn't provide proper definitions
    -for those two macros (actually, most of them already have).
    -.
    -.
    -.TP
    -.B pspic
    -A single macro is provided in this file,
    -.BR PSPIC ,
    -to include a PostScript graphic in a document.
    -.
    -It makes only sense for output devices which support inclusion of PS
    -images:
    -.BR \-Tps ,
    -.BR \-Tdvi ,
    -and
    -.BR \-Thtml ;
    -the file is then loaded automatically.
    -.
    -Syntax:
    -.RS
    -.IP
    -\&\fB.PSPIC\fP [\fB\-L\fP|\fB-R\fP|\fB\-I\fP \fIn\fP]\ \fI\|file\fP [\fIwidth\fP [\fIheight\fP]]
    -.RE
    -.
    -.IP
    -.I file
    -is the name of the file containing the illustration;
    -.I width
    -and
    -.I height
    -give the desired width and height of the graphic.
    -.
    -The
    -.I width
    -and
    -.I height
    -arguments may have scaling indicators attached;
    -the default scaling indicator is\~\c
    -.BR i .
    -.
    -This macro will scale the graphic uniformly
    -in the x and y\~directions so that it is no more than
    -.I width
    -wide
    -and
    -.I height
    -high.
    -.
    -By default, the graphic will be horizontally centered.
    -.
    -The
    -.BI \-L
    -and
    -.BI \-R
    -options cause the graphic to be left-aligned and right-aligned,
    -respectively.
    -.
    -The
    -.B \-I
    -option causes the graphic to be indented by\~\c
    -.I n
    -(default scaling indicator is\~\c
    -.BR m ).
    -.
    -.
    -.TP
    -.B trace
    -Use this for tracing macro calls.
    -.
    -It is only useful for debugging.
    -.
    -See
    -.BR groff_trace (7) .
    -.
    -.
    -.TP
    -.B tty-char
    -Overrides the definition of standard troff characters and some groff
    -characters for tty devices.
    -.
    -The optical appearance is intentionally inferior compared to that of
    -normal tty formatting to allow processing with critical equipment.
    -.
    -.
    -.TP
    -.B www
    -Additions of elements known from the html format, as being used in the
    -internet (World Wide Web) pages; this includes URL links and mail
    -addresses; see
    -.BR groff_www (7).
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH NAMING
    -.\" --------------------------------------------------------------------
    -.
    -In classical roff systems, there was a funny naming scheme for macro
    -packages, due to a simplistic design in option parsing.
    -.
    -Macro packages were always included by option
    -.option -m;
    -when this option was directly followed by its argument without an
    -intervening space, this looked like a long option preceded by a single
    -minus \[em] a sensation in the computer stone age.
    -.
    -To make this optically working for macro package names, all classical
    -macro packages choose a name that started with the letter
    -.'char m ,
    -which was omitted in the naming of the macro file.
    -.
    -.
    -.P
    -For example, the macro package for the man pages was called
    -.IR man ,
    -while its macro file
    -.IR tmac.an .
    -So it could be activated by the argument
    -.I an
    -to option
    -.option -m ,
    -or
    -.option -man
    -for short.
    -.
    -.
    -.P
    -For similar reasons, macro packages that did not start with an
    -.'char m
    -had a leading
    -.'char m
    -added in the documentation and in talking; for example, the package
    -corresponding to
    -.I tmac.doc
    -was called
    -.I mdoc
    -in the documentation, although a more suitable name would be
    -.IR doc .
    -For, when omitting the space between the option and its argument, the
    -command line option for activating this package reads
    -.option "-mdoc" .
    -.
    -.
    -.P
    -To cope with all situations, actual versions of
    -.BR groff (1)
    -are smart about both naming schemes by providing two macro files
    -for the inflicted macro packages; one with a leading
    -.'char m ,
    -the other one without it.
    -.
    -So in
    -.IR groff ,
    -the
    -.I man
    -macro package may be specified as on of the following four methods:
    -.
    -.IP
    -.Shell_cmd "groff\~\-m\~man"
    -.Shell_cmd "groff\~\-man"
    -.Shell_cmd "groff\~\-mman"
    -.Shell_cmd "groff\~\-m\~an"
    -.
    -.
    -.P
    -Recent packages that do not start with
    -.'char m
    -do not use an additional
    -.'char m
    -in the documentation.
    -.
    -For example, the
    -.I www
    -macro package may be specified only as one of the two methods:
    -.
    -.IP
    -.Shell_cmd "groff\~\-m\~www"
    -.Shell_cmd "groff\~\-mwww"
    -.
    -.
    -.P
    -Obviously, variants like
    -.I -mmwww
    -would not make much sense.
    -.
    -.
    -.P
    -A second strange feature of classical troff was to name macro files
    -according to
    -.BIR tmac. name .
    -In modern operating systems, the type of a file is specified as
    -postfix, the file name extension.
    -.
    -Again, groff copes with this situation by searching both
    -.IB anything .tmac
    -and
    -.BI tmac. anything
    -if only
    -.I anything
    -is specified.
    -.
    -.
    -.P
    -The easiest way to find out which macro packages are available on a
    -system is to check the man\~page
    -.BR groff (1),
    -or the contents of the
    -.I tmac
    -directories.
    -.
    -.
    -.P
    -In
    -.IR groff ,
    -most macro packages are described in\~man pages called
    -.BR groff_\f[I]name\f[] (7),
    -with a leading
    -.'char m
    -for the classical packages.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH INCLUSION
    -.\" --------------------------------------------------------------------
    -.
    -There are several ways to use a macro package in a document.
    -.
    -The classical way is to specify the troff/groff option
    -.option \-m
    -.argument name
    -at run-time; this makes the contents of the macro package
    -.I name
    -available.
    -.
    -In groff, the file
    -.IB name .tmac
    -is searched within the tmac path; if not found,
    -.BI tmac. name
    -will be searched for instead.
    -.
    -.
    -.P
    -Alternatively, it is also possible to include a macro file by adding
    -the request
    -.request so
    -.I filename
    -into the document; the argument must be the full file name of an
    -existing file, possibly with the directory where it is kept.
    -.
    -In groff, this was improved by the similar request
    -.request mso
    -.IR package ,
    -which added searching in the tmac path, just like option
    -.option -m
    -does.
    -.
    -.
    -.P
    -Note that in order to resolve the
    -.request so
    -and
    -.request mso
    -requests, the roff preprocessor
    -.BR soelim (1)
    -must be called if the files to be included need preprocessing.
    -.
    -This can be done either directly by a pipeline on the command line or
    -by using the troff/groff option
    -.option \-s .
    -.
    -.I man
    -calls soelim automatically.
    -.
    -.
    -.P
    -For example, suppose a macro file is stored as
    -.I /usr/share/groff/1.19.2/tmac/macros.tmac
    -and is used in some document called
    -.IR docu.roff .
    -.
    -.
    -.P
    -At run-time, the formatter call for this is
    -.
    -.IP
    -.Shell_cmd "groff\~\-m\~" "macrofile\~document.roff"
    -.
    -.
    -.P
    -To include the macro file directly in the document either
    -.
    -.IP
    -.Example
    -.  Text .mso macrofile.tmac
    -./Example
    -.
    -.P
    -is used or
    -.
    -.IP
    -.Example
    -.  Text .so /usr/share/groff/1.19.2/tmac/macros.tmac
    -./Example
    -.
    -.
    -.P
    -In both cases, the formatter is called with
    -.IP
    -.Shell_cmd "groff\~\-s\~" docu.roff
    -.
    -.
    -.P
    -If you want to write your own groff macro file, call it
    -.IB whatever .tmac
    -and put it in some directory of the tmac path, see section
    -.BR FILES .
    -Then documents can include it with the
    -.request mso
    -request or the option
    -.option -m .
    -.
    -.
    -.ig
    -.\" --------------------------------------------------------------------
    -.SH CONVENTION
    -.\" --------------------------------------------------------------------
    -.
    -.\" This section does not fit into the framework of this document.
    -.
    -There is a convention that is supported by many modern roff
    -type-setters and
    -.BR man (1)
    -programs, the
    -.I preprocessor word
    -described in the following.
    -.
    -.P
    -If the first line in a document is a comment, the first word (after the
    -comment characters and a blank) constitutes the
    -.B preprocessor
    -.BR word .
    -That means that the letters of this word are interpreted as
    -abbreviations for those preprocessor commands that should be run
    -when formatting the document.
    -.
    -Mostly, only the letters corresponding to the options for the
    -preprocessors are recognized,
    -.'char e
    -(for
    -.BR eqn ),
    -.\" 'char G ,
    -.\" 'char g ,
    -.'char p ,
    -(for
    -.BR pic ),
    -.'char R
    -(for
    -.BR refer ),
    -.'char s
    -(for
    -.BR soelim ),
    -and
    -.'char t
    -(for
    -.BR tbl ).
    -(see
    -.BR roff (7)).
    -.
    -.
    -.P
    -Besides being a good reminder for the user, some formatters (like the
    -.BR man (1)
    -program) are even able to automatically start the preprocessors
    -specified in the preprocessor word, but do not bet on this.
    -.
    -.
    -.P
    -The
    -.I man
    -program handles some preprocessors automatically, such that in
    -man\~pages only the following characters should be used:
    -.'char e ,
    -.'char p ,
    -and
    -.'char t .
    -.
    -.
    -..
    -.\" --------------------------------------------------------------------
    -.SH "WRITING MACROS"
    -.\" --------------------------------------------------------------------
    -.
    -A
    -.BR roff (7)
    -document is a text file that is enriched by predefined formatting
    -constructs, such as requests, escape sequences, strings, numeric
    -registers, and macros from a macro package.
    -.
    -These elements are described in
    -.BR roff (7).
    -.
    -.
    -.P
    -To give a document a personal style, it is most useful to extend the
    -existing elements by defining some macros for repeating tasks; the best
    -place for this is near the beginning of the document or in a separate
    -file.
    -.
    -.
    -.P
    -Macros without arguments are just like strings.
    -.
    -But the full power of macros reveals when arguments are passed with a
    -macro call.
    -.
    -Within the macro definition, the arguments are available as the escape
    -sequences
    -.BR $1 ,
    -\*[Ellipsis],
    -.BR $9 ,
    -.BR $[ \*[Ellipsis] ] ,
    -.BR $* ,
    -and
    -.BR $@ ,
    -the name under which the macro was called is in
    -.BR $0 ,
    -and the number of arguments is in register
    -.BR \n[.$] ;
    -see
    -.BR groff (7).
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Copy-in Mode"
    -.\" --------------------------------------------------------------------
    -.
    -The phase when groff reads a macro is called
    -.I "copy-in mode"
    -in roff-talk.
    -.
    -This is comparable to the C\~preprocessing phase during the development
    -of a program written in the C\~language.
    -.
    -.
    -.P
    -In this phase, groff interprets all backslashes; that means that all
    -escape sequences in the macro body are interpreted and replaced by
    -their value.
    -.
    -For constant expression, this is wanted, but strings and registers
    -that might change between calls of the macro must be protected from
    -being evaluated.
    -.
    -This is most easily done by doubling the backslash that introduces the
    -escape sequence.
    -.
    -This doubling is most important for the positional parameters.
    -.
    -For example, to print information on the arguments that were passed to
    -the macro to the terminal, define a macro named `.print_args',
    -say.
    -.
    -.
    -.P
    -.ds @1 \[rs]f[I]\[rs]\[rs]$0\[rs]f[]\"
    -.ds @2 arguments:\"
    -.Example
    -.  Text .ds midpart was called with
    -.  Text .de print_args
    -.  Text .\~\~tm\~\*[@1]\~\[rs]\[rs]*[midpart]\~\[rs]\[rs]n[.$]\~\*[@2]
    -.  Text .\~\~tm\~\[rs]\[rs]$*
    -.  Text ..
    -./Example
    -.rm @1
    -.rm @2
    -.
    -.
    -.P
    -When calling this macro by
    -.
    -.P
    -.Example
    -.  Text .print_args arg1 arg2
    -./Example
    -.
    -.P
    -the following text is printed to the terminal:
    -.
    -.P
    -.Example
    -.  Text \f[CI]print_args\f[] was called with the following 2 arguments:
    -arg1 arg2
    -./Example
    -.
    -.
    -.P
    -Let's analyze each backslash in the macro definition.
    -.
    -As the positional parameters and the number of arguments will change
    -with each call of the macro their leading backslash must be doubled,
    -which results in
    -.I \[rs]\[rs]$*
    -and
    -.IR \[rs]\[rs][.$] .
    -The same applies to the macro name because it could be called with an
    -alias name, so
    -.IR \[rs]\[rs]$0 .
    -.
    -.
    -.P
    -On the other hand,
    -.I midpart
    -is a constant string, it will not change, so no doubling for
    -.IR \[rs]*[midpart] .
    -The
    -.I \[rs]f
    -escape sequences are predefined groff elements for setting the font
    -within the text.
    -.
    -Of course, this behavior will not change, so no doubling with
    -.I \[rs]f[I]
    -and
    -.IR \[rs]f[] .
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Draft Mode"
    -.\" --------------------------------------------------------------------
    -.
    -Writing groff macros is easy when the escaping mechanism is temporarily
    -disabled.
    -.
    -In groff, this is done by enclosing the macro definition(s) into a
    -pair of
    -.B .eo
    -and
    -.B .ec
    -requests.
    -.
    -Then the body in the macro definition is just like a normal part of
    -the document \[em] text enhanced by calls of requests, macros,
    -strings, registers, etc.
    -.
    -For example, the code above can be written in a simpler way by
    -.
    -.
    -.P
    -.ds @1 \[rs]f[I]\[rs]$0\[rs]f[]\"
    -.ds @2 arguments:\"
    -.Example
    -.  Text .eo
    -.  Text .ds midpart was called with
    -.  Text .de print_args
    -.  Text .\~\~tm\~\*[@1]\~\[rs]*[midpart]\~\[rs]n[.$]\~\*[@2]
    -.  Text .\~\~tm\~\[rs]$*
    -.  Text ..
    -.  Text .ec
    -./Example
    -.rm @1
    -.rm @2
    -.
    -.
    -.P
    -Unfortunately, draft mode cannot be used universally.
    -.
    -Although it is good enough for defining normal macros, draft mode
    -will fail with advanced applications, such as indirectly defined
    -strings, registers, etc.
    -.
    -An optimal way is to define and test all macros in draft mode and then
    -do the backslash doubling as a final step; do not forget to remove the
    -.I .eo
    -request.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Tips for Macro Definitions"
    -.\" --------------------------------------------------------------------
    -.
    -.Topic
    -Start every line with a dot, for example, by using the groff request
    -.B .nop
    -for text lines, or write your own macro that handles also text lines
    -with a leading dot.
    -.
    -.IP
    -.Example
    -.  Text .de Text
    -.  Text .\~\~if (\[rs]\[rs]n[.$] == 0)\~\[rs]
    -.  Text .\~\~\~\~return
    -.  Text .\~nop\~\[rs])\[rs]\[rs]$*[rs]\)
    -.  Text ..
    -./Example
    -.
    -.Topic
    -Write a comment macro that works both for copy-in and draft mode; for
    -as escaping is off in draft mode, trouble might occur when normal
    -comments are used.
    -.
    -For example, the following macro just ignores its arguments, so it
    -acts like a comment line:
    -.
    -.IP
    -.Example
    -.  Text .de\~c
    -.  Text ..
    -.  Text .c\~This\~is\~like\~a\~comment\~line.
    -./Example
    -.
    -.Topic
    -In long macro definitions, make ample use of comment lines or empty
    -lines for a better structuring.
    -.
    -.Topic
    -To increase readability, use groff's indentation facility for requests
    -and macro calls (arbitrary whitespace after the leading dot).
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Diversions"
    -.\" --------------------------------------------------------------------
    -.
    -Diversions can be used to realize quite advanced programming
    -constructs.
    -.
    -They are comparable to pointers to large data structures in the
    -C\~programming language, but their usage is quite different.
    -.
    -.
    -.P
    -In their simplest form, diversions are multi-line strings, but
    -they get their power when diversions are used dynamically within macros.
    -.
    -The information stored in a diversion can be retrieved by calling the
    -diversion just like a macro.
    -.
    -.
    -.P
    -Most of the problems arising with diversions can be avoided if you are
    -conscious about the fact that diversions always deal with complete
    -lines.
    -.
    -If diversions are used when the line buffer has not been flashed,
    -strange results are produced; not knowing this, many people get
    -desperate about diversions.
    -.
    -To ensure that a diversion works, line breaks should be added at the
    -right places.
    -.
    -To be on the secure side, enclose everything that has to do with
    -diversions into a pair of line breaks; for example, by amply using
    -.B .br
    -requests.
    -.
    -This rule should be applied to diversion definition, both inside and
    -outside, and to all calls of diversions.
    -.
    -This is a bit of overkill, but it works nicely.
    -.
    -.
    -.P
    -[If you really need diversions which should ignore the current partial
    -line, use environments to save the current partial line and/\:or use the
    -.B .box
    -request.]
    -.
    -.
    -.P
    -The most powerful feature using diversions is to start a diversion
    -within a macro definition and end it within another macro.
    -.
    -Then everything between each call of this macro pair is stored within
    -the diversion and can be manipulated from within the macros.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH FILES
    -.\" --------------------------------------------------------------------
    -.
    -All macro names must be named
    -.IB name .tmac
    -to fully use the tmac mechanism.
    -.
    -.BI tmac. name
    -as with classical packages is possible as well, but deprecated.
    -.
    -.
    -.P
    -The macro files are kept in the
    -.IR "tmac directories" ;
    -a colon separated list of these constitutes the
    -.IR "tmac path" .
    -.
    -.
    -.P
    -The search sequence for macro files is (in that order):
    -.
    -.Topic
    -the directories specified with troff/groff's
    -.B \-M
    -command line option
    -.
    -.Topic
    -the directories given in the
    -.Env_var $GROFF_TMAC_PATH
    -environment variable
    -.
    -.Topic
    -the current directory (only if in unsafe mode, which is enabled by the
    -.B \-U
    -command line switch)
    -.
    -.Topic
    -the home directory
    -.
    -.Topic
    -a platform-specific directory, being
    -.B /usr/lib/groff/site-tmac
    -in this installation
    -.
    -.Topic
    -a site-specific (platform-independent) directory, being
    -.B /usr/share/groff/site-tmac
    -in this installation
    -.
    -.Topic
    -the main tmac directory, being
    -.B /usr/share/groff/1.19.2/tmac
    -in this installation
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH ENVIRONMENT
    -.\" --------------------------------------------------------------------
    -.
    -.TP
    -.Env_var $GROFF_TMAC_PATH
    -A colon separated list of additional tmac directories in which to search
    -for macro files.
    -.
    -See the previous section for a detailed description.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH AUTHOR
    -.\" --------------------------------------------------------------------
    -.
    -Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
    -.
    -.P
    -This document is distributed under the terms of the FDL (GNU Free
    -Documentation License) version 1.1 or later.
    -.
    -You should have received a copy of the FDL on your system, it is also
    -available on-line at the
    -.URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" .
    -.
    -.P
    -This document is part of
    -.IR groff ,
    -the GNU roff distribution.
    -.
    -It was written by
    -.MTO bwarken@mayn.de "Bernd Warken" ;
    -it is maintained by
    -.MTO wl@gnu.org "Werner Lemberg" .
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "SEE ALSO"
    -.\" --------------------------------------------------------------------
    -.
    -A complete reference for all parts of the groff system is found in the
    -groff
    -.BR info (1)
    -file.
    -.
    -.
    -.TP
    -.BR groff (1)
    -an overview of the groff system.
    -.
    -.
    -.TP
    -.BR groff_man (7),
    -.TP+
    -.BR groff_mdoc (7),
    -.TP+
    -.BR groff_me (7),
    -.TP+
    -.BR groff_mm (7),
    -.TP+
    -.BR groff_mom (7),
    -.TP+
    -.BR groff_ms (7),
    -.TP+
    -.BR groff_trace (7),
    -.TP+
    -.BR groff_www (7).
    -the groff tmac macro packages.
    -.
    -.
    -.TP
    -.BR groff (7)
    -the groff language.
    -.
    -.
    -.P
    -The Filesystem Hierarchy Standard is available at the
    -.URL http://\:www.pathname.com/\:fhs/ "FHS web site" .
    -.
    -.cp \n[groff_tmac_C]
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man5/lj4_font.5 b/gen/usr/share/man/man5/lj4_font.5
    deleted file mode 100644
    index 662b7c6..0000000
    --- a/gen/usr/share/man/man5/lj4_font.5
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -.tr ~
    -.ig
    -Copyright (C) 2004 Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.\" Like TP, but if specified indent is more than half
    -.\" the current line-length - indent, use the default indent.
    -.de Tp
    -.ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
    -.el .TP "\\$1"
    -..
    -.tr ~
    -.TH LJ4_FONT 5 "18 January 2004" "Groff Version 1.19.2"
    -.\" --------------------------------------------------------------------------
    -.SH NAME
    -.\" --------------------------------------------------------------------------
    -lj4_font \- groff fonts for use with devlj4
    -.\" --------------------------------------------------------------------------
    -.SH DESCRIPTION
    -.\" --------------------------------------------------------------------------
    -Nominally, all Hewlett-Packard LaserJet~4\(enseries and newer printers
    -have the same internal fonts: 45 scalable fonts and one bitmapped
    -Lineprinter font.
    -The scalable fonts are available in sizes between 0.25 point and 999.75
    -points, in 0.25-point increments; the Lineprinter font is available only
    -in 8.5-point size.
    -.LP
    -The LaserJet font files included with
    -.B groff
    -assume that all printers since the LaserJet~4 are identical.
    -There are some differences between fonts in the earlier and more recent
    -printers, however.
    -The LaserJet~4 printer used Agfa Intellifont technology for 35 of the
    -internal scalable fonts; the remaining 10 scalable fonts were TrueType.
    -Beginning with the LaserJet~4000\(enseries printers introduced in 1997,
    -all scalable internal fonts have been TrueType.
    -The number of printable glyphs differs slightly between Intellifont and
    -TrueType fonts (generally, the TrueType fonts include more glyphs), and
    -there are some minor differences in glyph metrics.
    -Differences among printer models are described in the
    -.I "PCL~5 Comparison Guide"
    -and the
    -.I "PCL~5 Comparison Guide Addendum"
    -(for printers introduced since approximately 2001).
    -.LP
    -LaserJet printers reference a glyph by a combination of a 256-glyph
    -symbol set and an index within that symbol set.
    -Many glyphs appear in more than one symbol set; all combinations of
    -symbol set and index that reference the same glyph are equivalent.
    -For each glyph,
    -.BR hpftodit (1)
    -searches a list of symbol sets, and selects the first set that contains
    -the glyph.
    -The printing code generated by
    -.BR hpftodit (1)
    -is an integer that encodes a numerical value for the symbol set in the
    -high byte(s), and the index in the low byte.
    -See
    -.BR groff_font (5)
    -for a complete description of the font file format; symbol sets are
    -described in greater detail in the
    -.IR "PCL~5 Printer Language Technical Reference Manual" .
    -.LP
    -Two of the scalable fonts, Symbol and Wingdings, are bound to
    -256-glyph symbol sets; the remaining scalable fonts, as well as the
    -Lineprinter font, support numerous symbol sets, sufficient to enable
    -printing of more than 600 glyphs.
    -.LP
    -The metrics generated by
    -.BR hpftodit (1)
    -assume that the DESC file contains values of 1200 for res and 6350 for
    -unitwidth (or any combination (e.g., 2400 and 3175) for which
    -res~\(mu~unitwidth~=~7\|620\|000).
    -Although HP PCL~5 LaserJet printers support an internal resolution of
    -7200 units per inch, they use a 16-bit signed integer for cursor
    -positioning; if
    -.B devlj4
    -is to support U.S. ledger paper (11\(sd~\(mu~17\(sd), the maximum usable
    -resolution is 32\|767~/~17, or 1927, units per inch, which rounds down to
    -1200 units per inch.
    -If the largest required paper size is less (e.g., 8.5\(sd~\(mu~11\(sd or
    -A5), a greater resolution (and lesser unitwidth) can be specified.
    -.\" --------------------------------------------------------------------------
    -.SH LIMITATIONS
    -.\" --------------------------------------------------------------------------
    -Font metrics for Intellifont fonts were provided by Tagged Font Metric
    -(TFM) files originally developed by Agfa/Compugraphic.
    -The TFM files provided for these fonts supported 600+ glyphs and
    -contained extensive lists of kern pairs.
    -.LP
    -To accommodate developers who had become accustomed to TFM files, HP also
    -provided TFM files for the 10 TrueType fonts included in the LaserJet~4.
    -The TFM files for TrueType fonts generally included less information
    -than the Intellifont TFMs, supporting fewer glyphs, and in most cases,
    -providing no kerning information.
    -By the time the LaserJet~4000 printer was introduced, most
    -developers had migrated to other means of obtaining font metrics,
    -and support for new TFM files was very limited.
    -The TFM files provided for the TrueType fonts in the LaserJet~4000
    -support only the Latin 2 (ISO 8859-2) symbol set, and include no kerning
    -information; consequently, they are of little value for any but the most
    -rudimentary documents.
    -.LP
    -Because the Intellifont TFM files contain considerably more information,
    -they generally are preferable to the TrueType TFM files even for use
    -with the TrueType fonts in the newer printers.
    -The metrics for the TrueType fonts are very close, though not identical,
    -to those for the earlier Intellifont fonts of the same names.
    -Although most output using the Intellifont metrics with the newer
    -printers is quite acceptable, a few glyphs may fail to print as
    -expected.
    -The differences in glyph metrics may be particularly noticeable with
    -composite parentheses, brackets, and braces used by
    -.BR eqn (1) .
    -A script, located in
    -.BR /usr/share/groff/1.19.2/font/devlj4/generate ,
    -can be used to adjust the metrics for these glyphs in the special font S
    -for use with printers that have all TrueType fonts.
    -.LP
    -At the time HP last supported TFM files, only Version 1 of the Unicode
    -standard was available.
    -Consequently, many glyphs lacking assigned code points were assigned by
    -HP to the Private Use Area (PUA).
    -Later versions of the Unicode standard included code points outside the
    -PUA for many of these glyphs.
    -The HP-supplied TrueType TFM files use the PUA assignments;
    -TFM files generated from more recent TrueType font files require the
    -later Unicode values to access the same glyphs.
    -Consequently, two different mapping files may be required: one for the
    -HP-supplied TFM files, and one for more recent TFM files.
    -.\" --------------------------------------------------------------------------
    -.SH FILES
    -.\" --------------------------------------------------------------------------
    -.Tp \w'\fB/usr/share/groff/1.19.2/font/devlj4/DESC'u+2n
    -.B /usr/share/groff/1.19.2/font/devlj4/DESC
    -Device description file.
    -.TP
    -.BI /usr/share/groff/1.19.2/font/devlj4/ F
    -Font description file for font
    -.IR F .
    -.\" --------------------------------------------------------------------------
    -.SH "SEE ALSO"
    -.\" --------------------------------------------------------------------------
    -.ad 0
    -.BR groff (1),
    -.BR groff_diff (1),
    -.BR hpftodit (1),
    -.BR grolj4 (1),
    -.BR groff_font (5)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man7/ditroff.7 b/gen/usr/share/man/man7/ditroff.7
    deleted file mode 100644
    index 1b1a4fe..0000000
    --- a/gen/usr/share/man/man7/ditroff.7
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -.ig
    -ditroff.man
    -
    -Last update: 2 Jul 2004
    -
    -This file is part of groff, the GNU roff type-setting system.
    -
    -Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
    -written by Bernd Warken 
    -maintained by Werner Lemberg 
    -
    -Permission is granted to copy, distribute and/or modify this document
    -under the terms of the GNU Free Documentation License, Version 1.1 or
    -any later version published by the Free Software Foundation; with the
    -Invariant Sections being this .ig-section and AUTHORS, with no
    -Front-Cover Texts, and with no Back-Cover Texts.
    -
    -A copy of the Free Documentation License is included as a file called
    -FDL in the main directory of the groff source package.
    -..
    -.
    -.\" --------------------------------------------------------------------
    -.\" Setup
    -.\" --------------------------------------------------------------------
    -.
    -.mso www.tmac
    -.
    -.if n \{\
    -.  mso tty-char.tmac
    -.  ftr CR R
    -.  ftr CI I
    -.  ftr CB B
    -.\}
    -.
    -.if '\*[.T]'dvi' \
    -.  ftr CB CW
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.\" Title
    -.\" --------------------------------------------------------------------
    -.
    -.TH DITROFF 7 "3 July 2004" "Groff Version 1.19.2"
    -.SH NAME
    -ditroff \- classical device independent roff
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH DESCRIPTION
    -.\" --------------------------------------------------------------------
    -.
    -The name
    -.I ditroff
    -once marked a development level of the
    -.I troff
    -text processing system.
    -.
    -In actual
    -.BR roff (7)
    -systems, the name
    -.I troff
    -is used as a synonym for
    -.IR ditroff .
    -.
    -.P
    -The first roff system was written by Joe Osanna around 1973.
    -.
    -It supported only two output devices, the
    -.B nroff
    -program produced text oriented tty output, while the
    -.B troff
    -program generated graphical output for exactly one output device, the Wang
    -.I Graphic Systems CAT
    -typesetter.
    -.
    -.P
    -In 1979, Brian Kernighan rewrote troff to support more devices by
    -creating an intermediate output format for troff that can be fed into
    -postprocessor programs which actually do the printout on the device.
    -.
    -Kernighan's version marks what is known as 
    -.I classical troff
    -today.
    -.
    -In order to distinguish it from Osanna's original mono-device version,
    -it was called
    -.I ditroff
    -(\c
    -.IR d\/ evice\~ i\/ ndependent\~ troff\/\c
    -)
    -on some systems, though this naming isn't mentioned in the classical
    -documentation.
    -.
    -.P
    -Today, any existing roff system is based on Kernighan's multi-device
    -troff.
    -.
    -The distinction between
    -.I troff
    -and 
    -.I ditroff
    -isn't necessary any longer, for each modern
    -.I troff
    -provides already the complete functionality of
    -.IR ditroff .
    -.
    -On most systems, the name
    -.I troff
    -is used to denote
    -.IR ditroff .
    -.
    -.P
    -The easiest way to use ditroff is the GNU roff system,
    -.IR groff .
    -The
    -.BR groff (1)
    -program is a wrapper around
    -.I (di)troff
    -that automatically handles postprocessing.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "SEE ALSO"
    -.\" --------------------------------------------------------------------
    -.
    -.TP
    -.I [CSTR\~#54]
    -The 1992 revision of the
    -.I Nroff/Troff User's Manual
    -by
    -.I J. F. Osanna
    -and
    -.IR "Brian Kernighan" ,
    -see
    -.br
    -.URL http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr/\:54.ps.gz \
    -     "Bell Labs CSTR\~#54" .
    -.
    -.TP
    -.I [CSTR\~#97]
    -.I A Typesetter-independent TROFF
    -by
    -.I Brian Kernighan
    -is the original documentation of the first multi-device troff
    -.RI ( ditroff\/ ),
    -see
    -.br
    -.URL http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr/\:97.ps.gz \
    -     "Bell Labs CSTR\~#97" .
    -.
    -.TP
    -.BR roff (7)
    -This document gives details on the history and concepts of roff.
    -.
    -.TP
    -.BR troff (1)
    -The actual implementation of
    -.IR ditroff .
    -.
    -.TP
    -.BR groff (1)
    -The GNU roff program and pointers to all documentation around groff.
    -.
    -.TP
    -.BR groff_out (5)
    -The groff version of the intermediate output language, the basis for
    -multi-devicing.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "AUTHORS"
    -.\" --------------------------------------------------------------------
    -.
    -Copyright (C) 2001, 2002, 2004 Free Software Foundation, Inc.
    -.
    -.P
    -This document is distributed under the terms of the FDL (GNU Free
    -Documentation License) version 1.1 or later.
    -.
    -You should have received a copy of the FDL on your system, it is also
    -available on-line at the
    -.URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" .
    -.
    -.P
    -This document is part of
    -.IR groff ,
    -the GNU roff distribution.
    -.
    -It was written by
    -.MTO bwarken@mayn.de "Bernd Warken"
    -and is maintained by
    -.MTO wl@gnu.org "Werner Lemberg" .
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.\" Emacs settings
    -.\" --------------------------------------------------------------------
    -.\"
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man7/groff.7 b/gen/usr/share/man/man7/groff.7
    deleted file mode 100644
    index 0ced3fa..0000000
    --- a/gen/usr/share/man/man7/groff.7
    +++ /dev/null
    @@ -1,3564 +0,0 @@
    -'\" t
    -.ig
    -groff.man
    -
    -Last update: 17 Feb 2005
    -
    -This file is part of groff, the GNU roff type-setting system.
    -
    -Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
    -  Free Software Foundation, Inc.
    -written by Bernd Warken 
    -maintained by Werner Lemberg 
    -
    -Permission is granted to copy, distribute and/or modify this document
    -under the terms of the GNU Free Documentation License, Version 1.1 or
    -any later version published by the Free Software Foundation; with the
    -Invariant Sections being this .ig-section and AUTHORS, with no
    -Front-Cover Texts, and with no Back-Cover Texts.
    -
    -A copy of the Free Documentation License is included as a file called
    -FDL in the main directory of the groff source package.
    -..
    -.
    -.\" --------------------------------------------------------------------
    -.\" Setup
    -.\" --------------------------------------------------------------------
    -.
    -.do nr groff_C \n[.C]
    -.cp 0
    -.
    -.mso www.tmac
    -.
    -.if n \{\
    -.  mso tty-char.tmac
    -.  ftr CR R
    -.  ftr CI I
    -.  ftr CB B
    -.\}
    -.
    -.if '\*[.T]'dvi' \{\
    -.  ftr CB CW
    -.\}
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.\" start of macro definitions
    -.eo
    -.
    -.de c
    -..
    -.
    -.de TPx
    -.  TP 10n
    -..
    -.c ---------------------------------------------------------------------
    -.c .Text anything ...
    -.c
    -.c All arguments are printed as text.
    -.c
    -.de Text
    -.  nop \)\$*
    -..
    -.c ---------------------------------------------------------------------
    -.c .ExecFF macro font1 font2 text1 text2 text1 text2 ...
    -.c
    -.c Concat text arguments using alternating fonts and feed into macro.
    -.c For a trailing punctuation, terminate the call with \c.
    -.c
    -.de ExecFF
    -.  if (\n[.$] < 4) \
    -.    return
    -.  ds @a\"
    -.  ds @m \$1\"
    -.  ds @f1 \$2\"
    -.  ds @f2 \$3\"
    -.  shift 3
    -.  ds @s\"
    -.  while 1 \{\
    -.    if (\n[.$] = 0) \
    -.      break
    -.    ds @a \$1\"
    -.    as @s \f[\*[@f1]]\*[@a]\f[]\"
    -.    shift
    -.    if (\n[.$] = 0) \
    -.      break
    -.    ds @a \$1\"
    -.    as @s \f[\*[@f2]]\*[@a]\f[]\"
    -.    shift
    -.  \}
    -.  \*[@m] "\*[@s]\f[R]"
    -.  ft P                 \" to make \c happy
    -.  rm @m
    -.  rm @s
    -.  rm @a
    -.  rm @f1
    -.  rm @f2
    -..
    -.
    -.c --------- command line option ---------
    -.
    -.de option
    -.  Text \f[CB]\$*
    -.  ft P
    -..
    -.
    -.c --------- characters ---------
    -.
    -.de character
    -.  ExecFF Text CB R \$*
    -..
    -.de squoted_char
    -.  ds @1 \$1\"
    -.  shift
    -.  ExecFF Text R CB \[oq] \*[@1] "\[cq]\$*"
    -.  rm @1
    -..
    -.de dquoted_char
    -.  ds @1 \$1\"
    -.  shift
    -.  ExecFF Text R CB \[lq] \*[@1] "\[rq]\$*"
    -.  rm @1
    -..
    -.c --------- requests ---------
    -.
    -.c synopsis of a request
    -.de REQ
    -.  if (\n[.$] = 0) \
    -.    return
    -.  ds @1 \$1\"
    -.  shift 1
    -.  ie (\n[.$] = 0) \{\
    -.    TP 10n
    -.    Text \f[CB]\*[@1]\f[]
    -.  \}
    -.  el \{\
    -.    TP 10n
    -.    Text \f[CB]\*[@1]\~\f[]\f[I]\$*\f[]
    -.  \}
    -.  rm @1
    -..
    -.c reference of a request
    -.de request
    -.  BR \$*
    -..
    -.
    -.c --------- numerical elements ---------
    -.
    -.c number with a trailing unit
    -.de scalednumber
    -.  Text \$1\^\f[CB]\$2\f[]\$3\f[R]
    -.  ft P
    -..
    -.
    -.c representation of units within the text
    -.de scaleindicator
    -.  Text \f[CB]\$1\f[]\$2\f[R]
    -.  ft P
    -..
    -.
    -.c representation of mathematical operators within the text
    -.de operator
    -.  squoted_char \$@
    -..
    -.
    -.
    -.c --------- escape sequences ---------
    -.
    -.c ---------------------------------------------------------------------
    -.c .ESC name [arg]
    -.c
    -.c Synopsis of an escape sequence, optionally with argument
    -.c Args   : 1 or 2; `name' obligatory, `arg' optional
    -.c   name : suitable name for an escape sequence (c, (xy, [long])
    -.c   arg  : arbitrary word
    -.c Result : prints \namearg, where `name' is in CB, `arg' in I
    -.c
    -.de ESC
    -.  if (\n[.$] < 1)
    -.    ab .ESC needs 1 or 2 arguments.
    -.  ExecFF IP CB I "\[rs]\$1" "\,\$2\/"
    -..
    -.c ---------------------------------------------------------------------
    -.c .ESC[] name arg
    -.c
    -.c Synopsis for escape sequence with a bracketed long argument
    -.c Args   : 2 obligatory
    -.c   name : suitable name for an escape sequence (c, (xy, [long])
    -.c   arg  : arbitrary text
    -.c Result : prints \name[arg], where `name' is in CB, `arg' in I
    -.c
    -.de ESC[]
    -.  if !(\n[.$] = 2) \
    -.    ab .ESC[] needs exactly 2 arguments.
    -.  ExecFF IP CB I "\[rs]\$1\[lB]" "\h'-0.2m'\$2\h'-0.15m'" \[rB]
    -..
    -.c ---------------------------------------------------------------------
    -.c .ESCq name arg
    -.c
    -.c Synopsis for escape sequence with a bracketed long argument
    -.c Args   : 2 obligatory
    -.c   name : suitable name for an escape sequence (c, (xy, [long])
    -.c   arg  : arbitrary text
    -.c Result : prints \name'arg', where `name' is in CB, `arg' in I
    -.c
    -.de ESCq
    -.  if !(\n[.$] = 2) \
    -.    ab .ESCq needs exactly 2 argument.
    -.  ExecFF IP CB I "\[rs]\$1\[cq]" "\h'-0.3m'\$2" \[cq]
    -..
    -.c ---------------------------------------------------------------------
    -.c .ESC? arg
    -.c
    -.c Synopsis for escape sequence with a bracketed long argument
    -.c Args   : 1 obligatory
    -.c   arg  : arbitrary text
    -.c Result : prints `\?arg?', where the `?' are in CB, `arg' in I
    -.c
    -.de ESC?
    -.  if !(\n[.$] = 1) \
    -.    ab .ESC? needs exactly 1 arguments.
    -.  ExecFF IP CB I \[rs]? "\$1" ?
    -..
    -.c ---------------------------------------------------------------------
    -.c .esc name [punct]
    -.c
    -.c Reference of an escape sequence (no args), possibly punctuation
    -.c Args    : 1 obligatory
    -.c   name  : suitable name for an escape sequence (c, (xy, [long])
    -.c   punct : arbitrary
    -.c Result  : prints \name, where `name' is in B, `punct' in R
    -.c
    -.de esc
    -.  if (\n[.$] < 1) \
    -.    ab .esc needs 1 or 2 arguments.
    -.  BR "\[rs]\$1" \$2
    -..
    -.c ---------------------------------------------------------------------
    -.c .escarg name arg [punct]
    -.c
    -.c Reference of an escape sequence (no args)
    -.c Args    : 1 obligatory, 1 optional
    -.c   name  : suitable name for an escape sequence (c, (xy, [long])
    -.c   arg   : arbitrary word
    -.c Result  : prints \namearg, where
    -.c           `name' is in B, `arg' in I
    -.c
    -.de escarg
    -.  if (\n[.$] < 2) \
    -.    ab .esc needs 2 or 3 arguments.
    -.  Text \f[B]\[rs]\$1\f[]\f[I]\$2\f[]\$3
    -..
    -.c ---------------------------------------------------------------------
    -.c .esc[] name arg [punct]
    -.c
    -.c Reference for escape sequence with a bracketed long argument
    -.c Args   : 2 obligatory
    -.c   name : suitable name for an escape sequence (c, (xy, [long])
    -.c   arg  : arbitrary text
    -.c Result : prints \name[arg], where `name' is in CB, `arg' in CI
    -.c
    -.de esc[]
    -.  if (\n[.$] < 2) \
    -.    ab .esc[] needs 2 or 3 arguments.
    -.  Text \f[B]\[rs]\$1\[lB]\f[]\f[I]\$2\f[]\f[B]\[rB]\f[]\$3
    -..
    -.
    -.c ---------------------------------------------------------------------
    -.c .escq name arg
    -.c
    -.c Reference for escape sequence with a bracketed long argument
    -.c Args   : 2 obligatory
    -.c   name : suitable name for an escape sequence (c, (xy, [long])
    -.c   arg  : arbitrary text
    -.c Result : prints \name'arg', where `name' is in CB, `arg' in CI
    -.c
    -.de escq
    -.  if (\n[.$] < 2) \
    -.    ab .escq needs 2 arguments.
    -.  Text \f[B]\[rs]\$1\[cq]\f[]\f[I]\$2\f[]\f[B]\[cq]\f[]\$3
    -..
    -.
    -.c --------- strings ---------
    -.
    -.c synopsis for string, with \*[]
    -.de STRING
    -.  ds @1 \$1\"
    -.  shift 1
    -.  TP 10n
    -.  ExecFF Text R CB \[rs]*[ \*[@1]\f[]\f[R]] \$*
    -.  rm @1
    -..
    -.c synopsis for a long string
    -.de string
    -.  if (\n[.$] = 0) \
    -.    return
    -.  Text \f[CB]\[rs]*\[lB]\$1\[rB]\f[]\$2
    -..
    -.
    -.
    -.c --------- registers ---------
    -.
    -.c synopsis for registers, with \n[]
    -.de REG
    -.  ds @1 \$1\"
    -.  shift 1
    -.  TP 10n
    -.  ExecFF Text R CB \[rs]n[ \*[@1]\f[]\f[R]] \$*
    -.  rm @1
    -..
    -.c reference of a register, without decoration
    -.de register
    -.  Text register
    -.  BR \$*
    -..
    -.
    -.ec
    -.\" end of macro definitions
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.\" Title
    -.\" --------------------------------------------------------------------
    -.
    -.TH GROFF 7 "16 February 2005" "Groff Version 1.19.2"
    -.SH NAME
    -groff \- a short reference for the GNU roff language
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH DESCRIPTION
    -.\" --------------------------------------------------------------------
    -.
    -The name
    -.I groff
    -stands for
    -.I GNU roff
    -and is the free implementation of the roff type-setting system.
    -.
    -See
    -.BR roff (7)
    -for a survey and the background of the groff system.
    -.
    -.P
    -This document gives only short descriptions of the predefined roff
    -language elements as used in groff.
    -.
    -Both the classical features and the groff extensions are provided.
    -.
    -.P
    -Historically, the
    -.I roff language
    -was called
    -.IR troff .
    -.I groff
    -is compatible with the classical system and provides proper
    -extensions.
    -.
    -So in GNU, the terms
    -.IR roff ,
    -.IR troff ,
    -and
    -.I groff language
    -could be used as synonyms.
    -.
    -However
    -.I troff
    -slightly tends to refer more to the classical aspects, whereas
    -.I groff
    -emphasizes the GNU extensions, and
    -.I roff
    -is the general term for the language.
    -.
    -.P
    -This file is only a short version of the complete documentation that
    -is found in the
    -.I groff
    -.BR info (1)
    -file, which contains more detailed, actual, and concise information.
    -.
    -.P
    -The general syntax for writing groff documents is relatively easy, but
    -writing extensions to the roff language can be a bit harder.
    -.
    -.P
    -The roff language is line-oriented.
    -.
    -There are only two kinds of lines, control lines and text lines.
    -.
    -The control lines start with a control character, by default a period
    -.dquoted_char .
    -or a single quote
    -.dquoted_char ' ;
    -all other lines are text lines.
    -.
    -.P
    -.B Control lines
    -represent commands, optionally with arguments.
    -.
    -They have the following syntax.
    -.
    -The leading control character can be followed by a command name;
    -arguments, if any, are separated by blanks from the command name and
    -among themselves, for example,
    -.RS
    -.
    -.P
    -.Text .command_name arg1 arg2
    -.RE
    -.
    -.P
    -For indentation, any number of space or tab characters can be inserted
    -between the leading control character and the command name, but the
    -control character must be on the first position of the line.
    -.
    -.P
    -.B Text lines
    -represent the parts that will be printed.
    -They can be modified by escape sequences, which are recognized by a
    -leading backslash
    -.squoted_char \[rs] .
    -These are in-line or even in-word formatting elements or functions.
    -.
    -Some of these take arguments separated by single quotes
    -.dquoted_char ' ,
    -others are regulated by a length encoding introduced by an open
    -parenthesis
    -.squoted_char (
    -or enclosed in brackets
    -.squoted_char [
    -and
    -.squoted_char ] .
    -.
    -.P
    -The roff language provides flexible instruments for writing language
    -extension, such as macros.
    -.
    -When interpreting macro definitions, the roff system enters a special
    -operating mode, called the
    -.BR "copy mode" .
    -.
    -.P
    -The copy mode behavior can be quite tricky, but there are some rules
    -that ensure a safe usage.
    -.
    -.IP 1.
    -Printable backslashes must be denoted as
    -.esc e .
    -To be more precise,
    -.esc e
    -represents the current escape character.
    -.
    -To get a backslash glyph, use
    -.esc (rs
    -or
    -.esc [rs] .
    -.IP 2.
    -Double all backslashes.
    -.IP 3.
    -Begin all text lines with the special non-spacing character
    -.esc & .
    -.
    -.P
    -This does not produce the most efficient code, but it should work as a
    -first measure.
    -.
    -For better strategies, see the groff info file and
    -.BR groff_tmac (5).
    -.
    -.P
    -Reading roff source files is easier, just reduce all double backslashes
    -to a single one in all macro definitions.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "GROFF ELEMENTS"
    -.\" --------------------------------------------------------------------
    -.
    -The roff language elements add formatting information to a text file.
    -.
    -The fundamental elements are predefined commands and variables that
    -make roff a full-blown programming language.
    -.
    -.P
    -There are two kinds of roff commands, possibly with arguments.
    -.B Requests
    -are written on a line of their own starting with a dot
    -.squoted_char .
    -or a
    -.dquoted_char ' ,
    -whereas
    -.B Escape sequences
    -are in-line functions and in-word formatting elements starting with a
    -backslash
    -.squoted_char \[rs] .
    -.
    -.P
    -The user can define her own formatting commands using the
    -.request de
    -request.
    -.
    -These commands are called
    -.BR macros ,
    -but they are used exactly like requests.
    -.
    -Macro packages are pre-defined sets of macros written in the groff
    -language.
    -.
    -A user's possibilities to create escape sequences herself is very
    -limited, only special characters can be mapped.
    -.
    -.P
    -The groff language provides several kinds of variables with
    -different interfaces.
    -.
    -There are pre-defined variables, but the user can define her own
    -variables as well.
    -.
    -.P
    -.B String
    -variables store character sequences.
    -.
    -They are set with the
    -.request ds
    -request and retrieved by the
    -.esc *
    -escape sequences.
    -.
    -Strings can have variables.
    -.
    -.P
    -.B Register
    -variables can store numerical values, numbers with a scale unit, and
    -occasionally string-like objects.
    -.
    -They are set with the
    -.request nr
    -request and retrieved by the
    -.esc n
    -escape sequences.
    -.
    -.P
    -.B Environments
    -allow the user to temporarily store global formatting parameters like
    -line length, font size, etc.\& for later reuse.
    -.
    -This is done by the
    -.request ev
    -request.
    -.
    -.P
    -.B Fonts
    -are identified either by a name or by an internal number.
    -.
    -The current font is chosen by the
    -.request ft
    -request or by the
    -.esc f
    -escape sequences.
    -.
    -Each device has special fonts, but the following fonts are available
    -for all devices.
    -.B R
    -is the standard font Roman.
    -.B B
    -is its
    -.B bold
    -counterpart.
    -.
    -The
    -.I italic
    -font is called
    -.B I
    -and is available everywhere, but on text devices it is displayed as an
    -underlined Roman font.
    -.
    -For the graphical output devices, there exist constant-width pendants
    -of these fonts,
    -.BR CR ,
    -.BR CI ,
    -and
    -.BR CB .
    -On text devices, all characters have a constant width anyway.
    -.
    -.P
    -Moreover, there are some advanced roff elements.
    -.
    -A
    -.B diversion
    -stores information into a macro for later usage.
    -.
    -A
    -.B trap
    -is a positional condition like a certain number of lines from page top
    -or in a diversion or in the input.
    -.
    -Some action can be prescribed to be run automatically when the
    -condition is met.
    -.
    -.P
    -More detailed information and examples can be found in the groff info
    -file.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "CONTROL CHARACTERS"
    -.\" --------------------------------------------------------------------
    -.
    -There is a small set of characters that have a special controlling
    -task in certain conditions.
    -.
    -.TP
    -.character .
    -A dot is only special at the beginning of a line or after the
    -condition in the requests
    -.request if ,
    -.request ie ,
    -.request el ,
    -and
    -.request while .
    -There it is the control character that introduces a request (or macro).
    -.
    -The special behavior can be delayed by using the
    -.esc .
    -escape.
    -.
    -By using the 
    -.request cc
    -request, the control character can be set to a different character,
    -making the dot
    -.squoted_char .
    -a non-special character.
    -.IP ""
    -In all other positions, it just means a dot character.
    -.
    -In text paragraphs, it is advantageous to start each sentence at a
    -line of its own.
    -.
    -.TP
    -.character '
    -The single quote has two controlling tasks.
    -.
    -At the beginning of a line and in the conditional requests it is the
    -non-breaking control character.
    -.
    -That means that it introduces a request like the dot, but with the
    -additional property that this request doesn't cause a linebreak.
    -.
    -By using the 
    -.request c2
    -request, the non-break control character can be set to a different
    -character.
    -.
    -.IP ""
    -As a second task, it is the most commonly used argument separator in
    -some functional escape sequences (but any pair of characters not part
    -of the argument will work).
    -.
    -In all other positions, it denotes the single quote or apostrophe
    -character.
    -.
    -Groff provides a printable representation with the
    -.esc (cq
    -escape sequence.
    -.
    -.TP
    -.character \[dq]
    -The double quote is used to enclose arguments in requests, macros, and
    -strings.
    -.
    -In the
    -.request ds
    -and
    -.request as
    -requests, a leading double quote in the argument will be stripped off,
    -making everything else afterwards the string to be defined (enabling
    -leading whitespace).
    -.
    -The escaped double quote
    -.esc \[dq]
    -introduces a comment.
    -.
    -Otherwise, it is not special.
    -.
    -Groff provides a printable representation with the
    -.esc (dq
    -escape sequence.
    -.
    -.TP
    -.character \[rs]
    -The backslash usually introduces an escape sequence (this can be
    -changed with the
    -.request ec
    -request).
    -.
    -A printed version of the escape character is the
    -.esc e
    -escape; a backslash glyph can be obtained by
    -.esc (rs .
    -.TP
    -.character (
    -The open parenthesis is only special in escape sequences when
    -introducing an escape name or argument consisting of exactly two
    -characters.
    -.
    -In groff, this behavior can be replaced by the \f[CB][]\f[] construct.
    -.TP
    -.character [
    -The opening bracket is only special in groff escape sequences; there
    -it is used to introduce a long escape name or long escape argument.
    -.
    -Otherwise, it is non-special, e.g.\& in macro calls.
    -.TP
    -.character ]
    -The closing bracket is only special in groff escape sequences; there
    -it terminates a long escape name or long escape argument.
    -.
    -Otherwise, it is non-special.
    -.TP
    -\f[CI]space\f[]
    -Space characters are only functional characters.
    -.
    -They separate the arguments in requests, macros, and strings, and the words
    -in text lines.
    -.
    -They are subject to groff's horizontal spacing calculations.
    -.
    -To get a defined space width, escape sequences like
    -.squoted_char "\[rs]\ "
    -(this is the escape character followed by a space),
    -.esc | ,
    -.esc ^ ,
    -or
    -.esc h
    -should be used.
    -.
    -.IP \f[CI]newline\f[]
    -In text paragraphs, newlines mostly behave like space characters.
    -.
    -Continuation lines can be specified by an escaped newline, i.e., by
    -specifying a backslash
    -.squoted_char \[rs]
    -as the last character of a line.
    -.IP \f[CI]tab\f[]
    -If a tab character occurs during text the interpreter makes a
    -horizontal jump to the next pre-defined tab position.
    -.
    -There is a sophisticated interface for handling tab positions.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "NUMERICAL EXPRESSIONS"
    -.\" --------------------------------------------------------------------
    -.
    -A
    -.B numerical value
    -is a signed or unsigned integer or float with or without an appended
    -scaling indicator.
    -.
    -A
    -.B scaling indicator
    -is a one-character abbreviation for a unit of measurement.
    -.
    -A number followed by a scaling indicator signifies a size value.
    -.
    -By default, numerical values do not have a scaling indicator, i.e., they
    -are normal numbers.
    -.
    -.P
    -The
    -.I roff
    -language defines the following scaling indicators.
    -.
    -.
    -.P
    -.PD 0
    -.RS
    -.
    -.TPx
    -.B c
    -Centimeter
    -.
    -.TPx
    -.B i
    -Inch
    -.
    -.TPx
    -.B P
    -Pica\ \[eq]\ 1/6\ inch
    -.
    -.TPx
    -.B p
    -Point\ \[eq]\ 1/72\ inch
    -.
    -.TPx
    -.B m
    -Em\ \[eq]\ \f[R]the font size in points (width of letter `\f[CR]m\f[R]')
    -.
    -.TPx
    -.B M
    -100\^th \f[R]of an \f[CR]Em
    -.
    -.TPx
    -.B n
    -En\ \[eq]\ Em/2
    -.
    -.TPx
    -.B u
    -Basic unit for actual output device
    -.
    -.TPx
    -.B v
    -Vertical line space in basic units
    -scaled point\ \[eq]\ 1/\f[CI]sizescale\f[R] of a point (defined in
    -font \f[I]DESC\f[] file)
    -.
    -.TPx
    -.B f
    -Scale by 65536.
    -.RE
    -.PD
    -.
    -.P
    -.B Numerical expressions
    -are combinations of the numerical values defined above with the
    -following arithmetical operators already defined in classical troff.
    -.
    -.P
    -.PD 0
    -.RS
    -.
    -.TPx
    -.B +
    -Addition
    -.
    -.TPx
    -.B \-
    -Subtraction
    -.
    -.TPx
    -.B *
    -Multiplication
    -.
    -.TPx
    -.B /
    -Division
    -.
    -.TPx
    -.B %
    -Modulo
    -.
    -.TPx
    -.B =
    -Equals
    -.
    -.TPx
    -.B ==
    -Equals
    -.
    -.TPx
    -.B <
    -Less than
    -.
    -.TPx
    -.B >
    -Greater than
    -.
    -.TPx
    -.B <=
    -Less or equal
    -.
    -.TPx
    -.B >=
    -Greater or equal
    -.
    -.TPx
    -.B &
    -Logical and
    -.
    -.TPx
    -.B :
    -Logical or
    -.
    -.TPx
    -.B !
    -Logical not
    -.
    -.TPx
    -.B (
    -Grouping of expressions
    -.
    -.TPx
    -.B )
    -Close current grouping
    -.
    -.RE
    -.PD
    -.
    -.P
    -Moreover,
    -.I groff
    -added the following operators for numerical expressions:
    -.
    -.P
    -.PD 0
    -.RS
    -.
    -.TPx
    -.ExecFF Text I CB e1 >? e2
    -The maximum of
    -.I e1
    -and
    -.IR e2 .
    -.
    -.TPx
    -.ExecFF Text I CB e1 0.
    -.
    -.REQ .ll
    -Change to previous line length.
    -.
    -.REQ .ll \[+-]N
    -Set line length according to
    -.I \[+-]N
    -(default size
    -.scalednumber 6.5 i ,
    -default scaling indicator\~\c
    -.scaleindicator m ).
    -.
    -.REQ .ls
    -Change to the previous value of additional intra-line skip.
    -.
    -.REQ .ls N
    -Set additional intra-line skip value to
    -.IR N ,
    -i.e.,
    -.IR N -1
    -blank lines are inserted after each text output line.
    -.
    -.REQ .lt \[+-]N
    -Length of title (default scaling indicator\~\c
    -.scaleindicator m ).
    -.
    -.REQ .mc
    -Margin character off.
    -.
    -.REQ .mc c
    -Print character
    -.I c
    -after each text line at actual distance from right margin.
    -.
    -.REQ .mc c N
    -Set margin character to
    -.I c
    -and distance to
    -.I N
    -from right margin (default scaling indicator\~\c
    -.scaleindicator m ).
    -.
    -.REQ .mk register
    -Mark current vertical position in
    -.IR register .
    -.
    -.REQ .mso file
    -The same as the .so request except that
    -.I file
    -is searched in the tmac directories.
    -.
    -.REQ .na
    -No output-line adjusting.
    -.
    -.REQ .ne
    -Need a one-line vertical space.
    -.
    -.REQ .ne N
    -Need
    -.I N
    -vertical space (default scaling indicator\~\c
    -.scaleindicator v ).
    -.
    -.REQ .nf
    -No filling or adjusting of output-lines.
    -.
    -.REQ .nh
    -No hyphenation.
    -.
    -.REQ .nm
    -Number mode off.
    -.
    -.REQ .nm \[+-]N \fR[\fPM \fR[\fPS \fR[\fPI\fR]]]\fP
    -In line number mode, set number, multiple, spacing, and indent.
    -.
    -.REQ .nn
    -Do not number next line.
    -.
    -.REQ .nn N
    -Do not number next
    -.I N
    -lines.
    -.
    -.REQ .nop anything
    -Always execute
    -.IR anything .
    -.
    -.REQ .nr register \[+-]N M
    -Define or modify
    -.I register
    -using
    -.I \[+-]N
    -with auto-increment
    -.IR M .
    -.
    -.REQ .nroff
    -Make the built-in condition
    -.B n
    -true and
    -.B t
    -false.
    -.
    -.REQ .ns
    -Turn no-space mode on.
    -.
    -.REQ .nx
    -Immediately jump to end of current file.
    -.
    -.REQ .nx filename
    -Next file.
    -.
    -.REQ .open stream filename
    -Open
    -.register filename
    -for writing and associate the stream named
    -.register stream
    -with it.
    -.
    -.REQ .opena stream filename
    -Like
    -.request .open
    -but append to it.
    -.
    -.REQ .os
    -Output vertical distance that was saved by the
    -.request sv
    -request.
    -.
    -.REQ .output string
    -Emit
    -.I string
    -directly to intermediate output, allowing leading whitespace if
    -.I string
    -starts with
    -.character \[dq]
    -(which will be stripped off).
    -.
    -.REQ .pc
    -Reset page number character to\~\c
    -.squoted_char % .
    -.
    -.REQ .pc c
    -Page number character.
    -.
    -.REQ .pi program
    -Pipe output to
    -.I program
    -(nroff only).
    -.
    -.REQ .pl
    -Set page length to default
    -.scalednumber 11 i .
    -The current page length is stored in
    -.register .p .
    -.
    -.REQ .pl \[+-]N
    -Change page length to
    -.I \[+-]N
    -(default scaling indicator\~\c
    -.scaleindicator v ).
    -.
    -.REQ .pm
    -Print macro names and sizes (number of blocks of 128 bytes).
    -.
    -.REQ ".pm t"
    -Print only total of sizes of macros (number of 128 bytes blocks).
    -.
    -.REQ .pn \[+-]N
    -Next page number
    -.IR N .
    -.
    -.REQ .pnr
    -Print the names and contents of all currently defined number registers
    -on stderr.
    -.
    -.REQ .po
    -Change to previous page offset.
    -.
    -The current page offset is available in
    -.register .o .
    -.
    -.REQ .po \[+-]N
    -Page offset
    -.IR N .
    -.
    -.REQ .ps
    -Return to previous point-size.
    -.REQ .ps \[+-]N
    -Point size; same as
    -.esc[] s \[+-]N .
    -.
    -.REQ .psbb filename
    -Get the bounding box of a PostScript image
    -.IR filename .
    -.
    -.REQ .pso command
    -This behaves like the
    -.request so
    -request except that input comes from the standard output of
    -.IR command .
    -.
    -.REQ .ptr
    -Print the names and positions of all traps (not including input line
    -traps and diversion traps) on stderr.
    -.
    -.REQ .pvs
    -Change to previous post-vertical line spacing.
    -.
    -.REQ .pvs \[+-]N
    -Change post-vertical line spacing according to
    -.I \[+-]N
    -(default scaling indicator\~\c
    -.scaleindicator p ).
    -.
    -.REQ .rchar c1 c2 .\|.\|.\&
    -Remove the definitions of characters
    -.IR c1 ,
    -.IR c2 ,
    -.I .\|.\|.\&
    -.
    -.REQ .rd prompt
    -Read insertion.
    -.
    -.REQ .return
    -Return from a macro.
    -.
    -.REQ .return anything
    -Return twice, namely from the macro at the current level and from the macro
    -one level higher.
    -.
    -.REQ .rfschar f c1 c2 .\|.\|.\&
    -Remove the definitions of characters
    -.IR c1 ,
    -.IR c2 ,
    -.I .\|.\|.\&
    -for font
    -.IR f .
    -.
    -.REQ .rj n
    -Right justify the next
    -.I n
    -input lines.
    -.
    -.REQ .rm name
    -Remove request, macro, or string
    -.IR name .
    -.
    -.REQ .rn old new
    -Rename request, macro, or string
    -.I old
    -to
    -.IR new .
    -.
    -.REQ .rnn reg1 reg2
    -Rename register
    -.I reg1
    -to
    -.IR reg2 .
    -.
    -.REQ .rr register
    -Remove
    -.IR register .
    -.
    -.REQ .rs
    -Restore spacing; turn no-space mode off.
    -.
    -.REQ .rt \[+-]N
    -Return
    -.I (upward only)
    -to marked vertical place (default scaling indicator\~\c
    -.scaleindicator v ).
    -.
    -.REQ .schar c anything
    -Define global fallback character
    -.I c
    -as string
    -.IR anything .
    -.
    -.REQ .shc
    -Reset soft hyphen character to
    -.esc (hy .
    -.
    -.REQ .shc c
    -Set the soft hyphen character to
    -.IR c .
    -.
    -.REQ .shift n
    -In a macro, shift the arguments by
    -.IR n \~\c
    -positions.
    -.
    -.REQ .sizes s1 s2 .\|.\|.\& sn \fB[0]\fP
    -Set available font sizes similar to the
    -.B sizes
    -command in a
    -.B DESC
    -file.
    -.
    -.REQ .so filename
    -Include source file.
    -.
    -.REQ .sp
    -Skip one line vertically.
    -.
    -.REQ .sp N
    -Space vertical distance
    -.I N
    -up or down according to sign of
    -.I N
    -(default scaling indicator\~\c
    -.scaleindicator v ).
    -.
    -.REQ .special
    -Reset global list of special fonts to be empty.
    -.
    -.REQ .special s1 s2 .\|.\|.\&
    -Fonts
    -.IR s1 ,
    -.IR s2 ,
    -etc.\& are special and will be searched for characters not in the
    -current font.
    -.
    -.REQ .spreadwarn
    -Toggle the spread warning on and off without changing its value.
    -.
    -.REQ .spreadwarn limit
    -Emit a warning if each space in an output line is widened by
    -.I limit
    -or more (default scaling indicator\~\c
    -.scaleindicator m ).
    -.
    -.REQ .ss N
    -Space-character size set to
    -.IR N /12
    -of the spacewidth in the current font.
    -.
    -.REQ .ss N M
    -Space-character size set to
    -.IR N /12
    -and sentence space size set to
    -.IR M /12
    -of the spacewidth in the current font (\f[CR]\[eq]1/3 em\f[]).
    -.
    -.REQ .sty n style
    -Associate
    -.I style
    -with font position
    -.IR n .
    -.
    -.REQ .substring xx n1 n2
    -Replace the string named
    -.I xx
    -with the substring defined by the indices
    -.I n1
    -and
    -.IR n2 .
    -.
    -.REQ .sv
    -Save
    -.scalednumber 1 v
    -of vertical space.
    -.
    -.REQ .sv N
    -Save the vertical distance
    -.I N
    -for later output with
    -.request os
    -request.
    -.
    -.REQ .sy command-line
    -Execute program
    -.IR command-line .
    -.
    -.REQ ".ta T" N
    -Set tabs after every position that is a multiple of
    -.I N
    -(default scaling indicator\~\c
    -.scaleindicator m ).
    -.REQ .ta n1 n2 .\|.\|.\& nn \f[CB]T\f[] r1 r2 .\|.\|.\& rn
    -Set tabs at positions
    -.IR n1 ,
    -.IR n2 ,
    -.Text .\|.\|.,
    -.IR nn ,
    -then set tabs at
    -.IR nn + r1 ,
    -.IR nn + r2 ,
    -.Text .\|.\|.,
    -.IR nn + rn ,
    -then at
    -.IR nn + rn + r1 ,
    -.IR nn + rn + r2 ,
    -.Text .\|.\|.,
    -.IR nn + rn + rn ,
    -and so on.
    -.
    -.\".REQ .tar
    -.\"Restore internally saved tab positions.
    -.\".
    -.\".REQ .tas
    -.\"Save tab positions internally.
    -.
    -.REQ .tc
    -Remove tab repition character.
    -.REQ .tc c
    -Set tab repetition character to\~\c
    -.IR c .
    -.
    -.REQ .ti \[+-]N
    -Temporary indent next line (default scaling indicator\~\c
    -.scaleindicator m ).
    -.
    -.REQ .tkf font s1 n1 s2 n2
    -Enable track kerning for
    -.IR font .
    -.
    -.REQ .tl \f[CB]\[cq]\f[]left\f[CB]\[cq]\f[]center\f[CB]\[cq]\f[]right\f[CB]\[cq]\f[]
    -Three-part title.
    -.
    -.REQ .tm anything
    -Print
    -.I anything
    -on terminal (UNIX standard message output).
    -.
    -.REQ .tm1 anything
    -Print
    -.I anything
    -on terminal (UNIX standard message output), allowing leading
    -whitespace if
    -.I anything
    -starts with
    -.character \[dq]
    -(which will be stripped off).
    -.
    -.REQ .tmc anything
    -Similar to
    -.request .tm1
    -without emitting a final newline.
    -.
    -.REQ .tr abcd.\|.\|.\&
    -Translate
    -.I a
    -to
    -.IR b ,
    -.I c
    -to
    -.IR d ,
    -etc.\& on output.
    -.
    -.REQ .trf filename
    -Transparently output the contents of file
    -.IR filename .
    -.
    -.REQ .trin abcd.\|.\|.\&
    -This is the same as the
    -.request tr
    -request except that the
    -.B asciify
    -request will use the character code (if any) before the character
    -translation.
    -.
    -.REQ .trnt abcd.\|.\|.\&
    -This is the same as the
    -.request tr
    -request except that the translations do not apply to text that is
    -transparently throughput into a diversion with
    -.esc ! .
    -.
    -.REQ .troff
    -Make the built-in condition
    -.B t
    -true and
    -.B n
    -false.
    -.
    -.REQ .uf font
    -Underline font set to
    -.I font
    -(to be switched to by
    -.request .ul ).
    -.
    -.REQ .ul N
    -Underline (italicize in troff)
    -.I N
    -input lines.
    -.
    -.REQ .unformat diversion
    -Unformat space characters and tabs, preserving font information in
    -.IR diversion .
    -.REQ .vpt n
    -Enable vertical position traps if
    -.I n
    -is non-zero, disable them otherwise.
    -.
    -.REQ .vs
    -Change to previous vertical base line spacing.
    -.
    -.REQ .vs \[+-]N
    -Set vertical base line spacing according to
    -.I \[+-]N
    -(default scaling indicator\~\c
    -.scaleindicator p ).
    -Default value is
    -.scalednumber 12 p .
    -.
    -.REQ .warn n
    -Set warnings code to
    -.IR n .
    -.
    -.REQ .warnscale si
    -Set scaling indicator used in warnings to
    -.IR si .
    -.
    -.REQ .wh N
    -Remove (first) trap at position
    -.IR N .
    -.
    -.REQ .wh N trap
    -Set location trap; negative means from page bottom.
    -.
    -.REQ .while cond anything
    -While condition
    -.I cond
    -is true, accept
    -.I anything
    -as input.
    -.
    -.REQ .write stream anything
    -Write
    -.I anything
    -to the stream named
    -.IR stream .
    -.
    -.REQ .writec stream anything
    -Similar to
    -.request .write
    -without emitting a final newline.
    -.
    -.REQ .writem stream xx
    -Write contents of macro or string
    -.I xx
    -to the stream named
    -.IR stream .
    -.
    -.PD
    -.
    -.P
    -Besides these standard groff requests, there might be further macro
    -calls.
    -They can originate from a macro package (see
    -.BR roff (7)
    -for an overview) or from a preprocessor.
    -.
    -.P
    -Preprocessor macros are easy to be recognized.
    -.
    -They enclose their code into a pair of characteristic macros.
    -.
    -.P
    -.TS
    -box, center, tab (@);
    -c | c | c
    -CfCB | CfCB | CfCB.
    -preprocessor@start macro@ end macro
    -=
    -eqn@.PS@.PE
    -grap@.G1@.G2
    -grn@.GS@.GE
    -pic@.PS@.PE
    -refer@.R1@.R2
    -soelim@\f[I]none@\f[I]none
    -tbl@.TS@.TE
    -.TE
    -.P
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "ESCAPE SEQUENCES"
    -.\" --------------------------------------------------------------------
    -.
    -Escape sequences are in-line language elements usually introduced by a
    -backslash
    -.squoted_char \[rs]
    -and followed by an escape name and sometimes by a required argument.
    -.
    -Input processing is continued directly after the escaped character or
    -the argument resp.\& without an intervening separation character.
    -.
    -So there must be a way to determine the end of the escape name and the
    -end of the argument.
    -.
    -.P
    -This is done by enclosing names (escape name and arguments consisting
    -of a variable name) by a pair of brackets
    -.BI \[lB] name \[rB] 
    -and constant arguments (number expressions and characters) by
    -apostrophes (ASCII 0x27) like
    -.BI \[cq] constant \[cq] \f[R].
    -.
    -.P
    -There are abbreviations for short names.
    -.
    -Two character escape names can be specified by an opening parenthesis
    -like
    -.esc ( xy
    -without a closing counterpart.
    -.
    -And all one-character names different from the special characters
    -.squoted_char [
    -and
    -.squoted_char (
    -can even be specified without a marker in the form
    -.esc c .
    -.
    -.P
    -Constant arguments of length\~1 can omit the marker apostrophes, too,
    -but there is no two-character analogue.
    -.
    -.P
    -While 1-character escape sequences are mainly used for in-line
    -functions and system related tasks, the 2-letter names following the
    -.esc (
    -construct are used for special characters predefined by the roff system.
    -.
    -Escapes sequences with names of more than two characters
    -.esc[] "" name
    -denote user defined named characters (see the
    -.request char
    -request).
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Single Character Escapes"
    -.\" --------------------------------------------------------------------
    -.
    -.PD 0
    -.
    -.\" --------- comments ---------
    -.
    -.ESC \[dq]
    -Beginning of a comment.
    -.
    -Everything up to the end of the line is ignored.
    -.
    -.ESC #
    -Everything up to and including the next newline is ignored.
    -.
    -This is interpreted in copy mode.
    -.
    -This is like
    -.esc \[dq]
    -except that the terminating newline is ignored as well.
    -.
    -.\" --------- strings ---------
    -.
    -.ESC *\f[I]s\f[]
    -The string stored in the string variable with 1-character name
    -.IR s .
    -.
    -.ESC *(\f[I]st\f[]
    -The string stored in the string variable with 2-character name
    -.IR st .
    -.
    -.ESC[] * "stringvar arg1 arg2 .\|.\|."
    -The string stored in the string variable with arbitrary length name
    -.IR stringvar ,
    -taking
    -.IR arg1 ,
    -.IR arg2 ,
    -.I .\|.\|.\&
    -as arguments.
    -.
    -.\" --------- macro arguments ---------
    -.
    -.ESC $0
    -The name by which the current macro was invoked.
    -.
    -The
    -.request als
    -request can make a macro have more than one name.
    -.
    -.ESC $ x
    -Macro or string argument with 1-place number
    -.IR x ,
    -where
    -.I x
    -is a digit between 1 and 9.
    -.
    -.ESC $( xy
    -Macro or string argument with 2-digit number
    -.IR xy .
    -.
    -.ESC[] $ nexp
    -Macro or string argument with number
    -.IR nexp ,
    -where
    -.I nexp
    -is a numerical expression evaluating to an integer \[>=]1.
    -.
    -.ESC $*
    -In a macro or string, the concatenation of all the arguments separated
    -by spaces.
    -.
    -.ESC $@
    -In a macro or string, the concatenation of all the arguments with each
    -surrounded by double quotes, and separated by spaces.
    -.
    -.\" --------- escaped characters ---------
    -.
    -.ESC \[rs]
    -reduces to a single backslash; useful to delay its interpretation as
    -escape character in copy mode.
    -.
    -For a printable backslash, use
    -.esc e ,
    -or even better
    -.esc [rs] ,
    -to be independent from the current escape character.
    -.
    -.ESC \[cq]
    -The acute accent \[aa]; same as
    -.esc (aa .
    -Unescaped: apostrophe, right quotation mark, single quote (ASCII 0x27).
    -.
    -.ESC `
    -The grave accent \[ga]; same as
    -.esc (ga .
    -Unescaped: left quote, backquote (ASCII 0x60).
    -.
    -.ESC \-
    -The \- sign in the current font.
    -.
    -.ESC .
    -An uninterpreted dot (period), even at start of line.
    -.
    -.ESC %
    -Default optional hyphenation character.
    -.
    -.ESC !
    -Transparent line indicator.
    -.
    -.ESC? anything
    -In a diversion, this will transparently embed
    -.I anything
    -in the diversion.
    -.I anything
    -is read in copy mode.
    -.
    -See also the escape sequences
    -.esc !
    -and
    -.esc ? .
    -.
    -.
    -.\" --------- spacing ---------
    -.
    -.ESC \& space
    -Unpaddable space-size space character (no line break).
    -.
    -.ESC 0
    -Digit width.
    -.
    -.ESC |
    -1/6\ em narrow space character; zero width in nroff.
    -.
    -.ESC ^
    -1/12\ em half-narrow space character; zero width in nroff.
    -.
    -.ESC &
    -Non-printable, zero width character.
    -.
    -.ESC )
    -Like
    -.esc &
    -except that it behaves like a character declared with the cflags
    -request to be transparent for the purposes of end of sentence
    -recognition.
    -.
    -.ESC /
    -Increases the width of the preceding character so that the spacing
    -between that character and the following character will be correct if
    -the following character is a roman character.
    -.
    -.ESC ,
    -Modifies the spacing of the following character so that the spacing
    -between that character and the preceding character will correct if the
    -preceding character is a roman character.
    -.
    -.ESC ~
    -Unbreakable space that stretches like a normal inter-word space when a
    -line is adjusted.
    -.
    -.ESC :
    -Inserts a zero-width break point (similar to
    -.esc %
    -but without a soft hyphen character).
    -.
    -.ESC "" newline
    -Ignored newline, for continuation lines.
    -.
    -.\" --------- structuring ---------
    -.
    -.ESC {
    -Begin conditional input.
    -.
    -.ESC }
    -End conditional input.
    -.
    -.\" --------- longer escape names ---------
    -.
    -.ESC ( sc
    -The special character with 2-character name
    -.IR sc ,
    -see section
    -.BR "Special Characters" .
    -.
    -.ESC[] "" name
    -The named character (or rather glyph) with arbitrary length name
    -.IR name .
    -.
    -.ESC[] "" "comp1 comp2 .\|.\|."
    -A composite glyph with components
    -.IR comp1 ,
    -.IR comp2 ,
    -.I .\|.\|.
    -.
    -.\" --------- alphabetical escapes ---------
    -.
    -.ESC a
    -Non-interpreted leader character.
    -.
    -.ESCq A anything
    -If
    -.I anything
    -is acceptable as a name of a string, macro, diversion, register,
    -environment or font it expands to\~1, and to\~0 otherwise.
    -.
    -.ESCq b abc.\|.\|.\&
    -Bracket building function.
    -.
    -.ESCq B anything
    -If
    -.I anything
    -is acceptable as a valid numeric expression it expands to\~1, and
    -to\~0 otherwise.
    -.
    -.ESC c
    -Interrupt text processing.
    -.
    -.ESCq C char
    -The character called
    -.IR char ;
    -same as
    -.esc[] "" char ,
    -but compatible to other roff versions.
    -.
    -.ESC d
    -Forward (down) 1/2 em vertical unit (1/2 line in nroff).
    -.
    -.ESCq D charseq
    -Draw a graphical element defined by the characters in
    -.IR charseq ;
    -see groff info file for details.
    -.
    -.ESC e
    -Printable version of the current escape character.
    -.
    -.ESC E
    -Equivalent to an escape character, but is not interpreted in copy-mode.
    -.
    -.ESC f F
    -Change to font with 1-character name or 1-digit number
    -.IR F .
    -.
    -.ESC fP
    -Switch back to previous font.
    -.
    -.ESC f( fo
    -Change to font with 2-character name or 2-digit number
    -.IR fo .
    -.
    -.ESC[] f font
    -Change to font with arbitrary length name or number expression
    -.IR font .
    -.
    -.ESC[] f ""
    -Switch back to previous font.
    -.
    -.ESC F f
    -Change to font family with 1-character name
    -.IR f .
    -.
    -.ESC F( fm
    -Change to font family with 2-character name
    -.IR fm .
    -.
    -.ESC[] F fam
    -Change to font family with arbitrary length name
    -.IR fam .
    -.
    -.ESC[] F ""
    -Switch back to previous font family.
    -.
    -.ESC[] g reg
    -Return format of register with name
    -.I reg
    -suitable for
    -.request .af .
    -.
    -Alternative forms
    -.escarg g( xy
    -and
    -.escarg g x .
    -.
    -.ESCq h N
    -Local horizontal motion; move right
    -.I N
    -(left if negative).
    -.
    -.ESCq H N
    -Set height of current font to
    -.IR N .
    -.
    -.ESC[] k reg
    -Mark horizontal input place in register with arbitrary length name
    -.IR reg .
    -Alternative forms
    -.escarg k( xy
    -and
    -.escarg k x .
    -.
    -.ESCq l Nc
    -Horizontal line drawing function (optionally using character
    -.IR c ).
    -.
    -.ESCq L Nc
    -Vertical line drawing function (optionally using character
    -.IR c ).
    -.
    -.ESC[] m color
    -Change to color
    -.IR color .
    -.
    -Alternative forms
    -.escarg m( co
    -and
    -.escarg m c .
    -.
    -.ESC[] m ""
    -Switch back to previous color.
    -.
    -.ESC[] M color
    -Change filling color for closed drawn objects to color
    -.IR color .
    -.
    -Alternative forms
    -.escarg M( co
    -and
    -.escarg M c .
    -.
    -.ESC[] M ""
    -Switch to previous fill color.
    -.
    -.ESC n r
    -The numerical value stored in the register variable with the
    -1-character name
    -.IR r .
    -.
    -.ESC n( re
    -The numerical value stored in the register variable with the
    -2-character name
    -.IR re .
    -.
    -.ESC[] n reg
    -The numerical value stored in the register variable with arbitrary
    -length name
    -.IR reg .
    -.
    -.ESCq N n
    -Typeset the character with code
    -.I n
    -in the current font, no special fonts are searched.
    -.
    -Useful for adding characters to a font using the
    -.request char
    -request.
    -.
    -.ESCq o abc.\|.\|.\&
    -Overstrike characters
    -.IR a ,
    -.IR b ,
    -.IR c ,
    -etc.
    -.
    -.ESC O 0
    -Disable glyph output.
    -.
    -Mainly for internal use.
    -.
    -.ESC O 1
    -Enable glyph output.
    -.
    -Mainly for internal use.
    -.
    -.ESC p
    -Break and spread output line.
    -.
    -.ESC r
    -Reverse 1\ em vertical motion (reverse line in nroff).
    -.
    -.ESCq R "name\~\[+-]n"
    -The same as
    -.request .nr
    -.I name
    -.IR \[+-]n .
    -.
    -.ESC[] s \[+-]N
    -Set the point size to
    -.I N
    -scaled points.
    -.
    -Note the alternative forms
    -.BI \[rs]s \[+-] [ N ]\c
    -,
    -.BI \[rs]s' \[+-]N '\c
    -.Text ,
    -.BI \[rs]s \[+-] ' N '\c
    -.Text ,
    -.escarg s( \[+-]xy\c
    -.Text ,
    -.BI \[rs]s \[+-] ( xy\c
    -.Text ,
    -.escarg s \[+-]x .
    -Same as
    -.request ps
    -request.
    -.
    -.ESCq S N
    -Slant output
    -.I N
    -degrees.
    -.
    -.ESC t
    -Non-interpreted horizontal tab.
    -.
    -.ESC u
    -Reverse (up) 1/2 em vertical motion (1/2 line in nroff).
    -.
    -.ESCq v N
    -Local vertical motion; move down
    -.I N
    -(up if negative).
    -.
    -.ESC[] V env
    -The contents of the environment variable
    -.IR env .
    -.
    -Alternative forms
    -.escarg V( xy
    -and
    -.escarg V x .
    -.
    -.ESCq w string
    -The width of the character sequence
    -.IR string .
    -.
    -.ESCq x N
    -Extra line-space function (negative before, positive after).
    -.
    -.ESCq X string
    -Output
    -.I string
    -as device control function.
    -.
    -.ESC[] Y name
    -Output string variable or macro
    -.I name
    -uninterpreted as device control function.
    -.
    -Alternative forms
    -.escarg Y( xy
    -and
    -.escarg Y x .
    -.
    -.ESC z c
    -Print
    -.I c
    -with zero width (without spacing).
    -.
    -.ESCq Z anything
    -Print
    -.I anything
    -and then restore the horizontal and vertical position;
    -.I anything
    -may not contain tabs or leaders.
    -.
    -.PD
    -.P
    -The escape sequences
    -.esc e ,
    -.esc . ,
    -.esc \[dq] ,
    -.esc $ ,
    -.esc * ,
    -.esc a ,
    -.esc n ,
    -.esc t ,
    -.esc g ,
    -and
    -.escarg \& newline
    -are interpreted in copy mode.
    -.
    -.P
    -Escape sequences starting with
    -.esc (
    -or
    -.esc [
    -do not represent single character escape sequences, but introduce escape
    -names with two or more characters.
    -.
    -.P
    -If a backslash is followed by a character that does not constitute a
    -defined escape sequence the backslash is silently ignored and the
    -character maps to itself.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Special Characters"
    -.\" --------------------------------------------------------------------
    -.
    -Common special characters are predefined by escape sequences of the
    -form
    -.BI \[rs]( xy
    -with characters
    -.I x
    -and
    -.IR y .
    -.
    -Some of these exist in the usual font while most of them are only
    -available in the special font.
    -.
    -Below you'll find a selection of the most important glyphs; a complete
    -list can be found in
    -.BR groff_char (7).
    -.RS
    -.P
    -.PD 0
    -.
    -.ESC (bu
    -Bullet sign
    -.ESC (co
    -Copyright
    -.ESC (ct
    -Cent
    -.ESC (dd
    -Double dagger
    -.ESC (de
    -Degree
    -.ESC (dg
    -Dagger
    -.ESC (rs
    -Printable double quote
    -.ESC (em
    -Em-dash
    -.ESC (hy
    -Hyphen
    -.ESC (rg
    -Registered sign
    -.ESC (rs
    -Printable backslash character
    -.ESC (sc
    -Section sign
    -.ESC (ul
    -Underline character
    -.ESC (==
    -Identical
    -.ESC (>=
    -Larger or equal
    -.ESC (<=
    -Less or equal
    -.ESC (!=
    -Not equal
    -.ESC (->
    -Right arrow
    -.ESC (<-
    -Left arrow
    -.ESC (+-
    -Plus-minus sign
    -.PD
    -.RE
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Strings"
    -.\" --------------------------------------------------------------------
    -.
    -Strings are defined by the
    -.request ds
    -request and can be retrieved by the
    -.esc *
    -escape sequence.
    -.
    -.P
    -Strings share their name space with macros.
    -.
    -So strings and macros without arguments are roughly equivalent; it is
    -possible to call a string like a macro and vice-versa, but this often
    -leads to unpredictable results.
    -.
    -The following strings are predefined in groff.
    -.
    -.STRING .T
    -The name of the current output device as specified by the
    -.option -T
    -command line option.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH REGISTERS
    -.\" --------------------------------------------------------------------
    -.
    -Registers are variables that store a value.
    -In groff, most registers store numerical values (see section
    -.B NUMERICAL EXPRESSIONS
    -above), but some can also hold a string value.
    -.
    -.P
    -Each register is given a name.
    -Arbitrary registers can be defined and set with the request
    -.request nr
    -.IR register .
    -.
    -.P
    -The value stored in a register can be retrieved by the escape sequences
    -introduced by
    -.esc n .
    -.
    -.P
    -Most useful are predefined registers.
    -.
    -In the following the notation
    -.I name
    -is used to refer to a register called
    -.register name
    -to make clear that we speak about registers.
    -.
    -Please keep in mind that the
    -.esc[] n ""
    -decoration is not part of the register name.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Read-only Registers"
    -.\" --------------------------------------------------------------------
    -.
    -The following registers have predefined values that should not be
    -modified by the user (usually, registers starting with a dot a
    -read-only).
    -.
    -Mostly, they provide information on the current settings or store
    -results from request calls.
    -.
    -.P
    -.PD 0
    -.
    -.REG .$
    -Number of arguments in the current macro or string.
    -.
    -.REG .a
    -Post-line extra line-space most recently utilized using
    -.escq x N .
    -.
    -.REG .A
    -Set to\~1 in
    -.B troff
    -if option
    -.B \-A
    -is used; always\~1 in
    -.BR nroff .
    -.
    -.REG .c
    -Current input line number.
    -.
    -.REG .C
    -1\~if compatibility mode is in effect, 0\~otherwise.
    -.
    -.REG .cdp
    -The depth of the last character added to the current environment.
    -It is positive if the character extends below the baseline.
    -.
    -.REG .ce
    -The number of lines remaining to be centered, as set by the
    -.request ce
    -request.
    -.
    -.REG .cht
    -The height of the last character added to the current environment.
    -It is positive if the character extends above the baseline.
    -.
    -.REG .color
    -1\~if colors are enabled, 0\~otherwise.
    -.
    -.REG .csk
    -The skew of the last character added to the current environment.
    -The skew of a character is how far to the right of the center of a character
    -the center of an accent over that character should be placed.
    -.
    -.REG .d
    -Current vertical place in current diversion; equal to
    -.register nl .
    -.
    -.REG .ev
    -The name or number of the current environment (string-valued).
    -.
    -.REG .f
    -Current font number.
    -.
    -.REG .fam
    -The current font family (string-valued).
    -.
    -.REG .fn
    -The current (internal) real font name (string-valued).
    -.
    -.REG .fp
    -The number of the next free font position.
    -.
    -.REG .g
    -Always 1 in GNU troff.
    -.
    -Macros should use it to test if running under groff.
    -.
    -.REG .h
    -Text base-line high-water mark on current page or diversion.
    -.
    -.REG .H
    -Available horizontal resolution in basic units.
    -.
    -.REG .height
    -The current font height as set with
    -.request \[rs]H .
    -.
    -.REG .hla
    -The current hyphenation language as set by the
    -.B .hla
    -request.
    -.
    -.REG .hlc
    -The number of immediately preceding consecutive hyphenated lines.
    -.
    -.REG .hlm
    -The maximum allowed number of consecutive hyphenated lines, as set by
    -the
    -.request hlm
    -request.
    -.
    -.REG .hy
    -The current hyphenation flags (as set by the
    -.request hy
    -request).
    -.
    -.REG .hym
    -The current hyphenation margin (as set by the
    -.request hym
    -request).
    -.
    -.REG .hys
    -The current hyphenation space (as set by the
    -.request hys
    -request).
    -.
    -.REG .i
    -Current ident.
    -.
    -.REG .in
    -The indent that applies to the current output line.
    -.
    -.REG .int
    -Positive if last output line contains
    -.esc c .
    -.
    -.REG .kern
    -1\~if pairwise kerning is enabled, 0\~otherwise.
    -.
    -.REG .l
    -Current line length.
    -.
    -.REG .lg
    -The current ligature mode (as set by the
    -.request lg
    -request).
    -.
    -.REG .linetabs
    -The current line-tabs mode (as set by the
    -.request linetabs
    -request).
    -.
    -.REG .ll
    -The line length that applies to the current output line.
    -.
    -.REG .lt
    -The title length (as set by the
    -.request lt
    -request).
    -.
    -.REG .m
    -The current drawing color (string-valued).
    -.
    -.REG .M
    -The current background color (string-valued).
    -.
    -.REG .n
    -Length of text portion on previous output line.
    -.
    -.REG .ne
    -The amount of space that was needed in the last
    -.request ne
    -request that caused a trap to be sprung.
    -.
    -Useful in conjunction with
    -.register .trunc .
    -.
    -.REG .ns
    -1\~if in no-space mode, 0\~otherwise.
    -.
    -.REG .o
    -Current page offset.
    -.
    -.REG .p
    -Current page length.
    -.
    -.REG .pe
    -1\~during page ejection, 0\~otherwise.
    -.
    -.REG .pn
    -The number of the next page: either the value set by a
    -.request pn
    -request, or the number of the current page plus\ 1.
    -.
    -.REG .ps
    -The current pointsize in scaled points.
    -.
    -.REG .psr
    -The last-requested pointsize in scaled points.
    -.
    -.REG .pvs
    -The current post-vertical line spacing.
    -.
    -.REG .rj
    -The number of lines to be right-justified as set by the rj request.
    -.
    -.REG .s
    -Current point size as a decimal fraction.
    -.
    -.REG .slant
    -The slant of the current font as set with
    -.request \[rs]S .
    -.
    -.REG .sr
    -The last requested pointsize in points as a decimal fraction
    -(string-valued).
    -.
    -.REG .ss
    -The value of the parameters set by the first argument of the
    -.request ss
    -request.
    -.
    -.REG .sss
    -The value of the parameters set by the second argument of the
    -.request ss
    -request.
    -.
    -.REG .sty
    -The current font style (string-valued).
    -.
    -.REG .t
    -Distance to the next trap.
    -.
    -.REG .T
    -Set to\~1
    -if option
    -.B \-T
    -is used.
    -.
    -.REG .tabs
    -A string representation of the current tab settings suitable for use
    -as an argument to the
    -.request ta
    -request.
    -.
    -.REG .trunc
    -The amount of vertical space truncated by the most recently sprung
    -vertical position trap, or, if the trap was sprung by a
    -.request ne
    -request, minus the amount of vertical motion produced by
    -.request .ne .
    -.
    -In other words, at the point a trap is sprung, it represents
    -the difference of what the vertical position would have been but for
    -the trap, and what the vertical position actually is.
    -.
    -Useful in conjunction with the
    -.register .ne .
    -.
    -.REG .u
    -Equal to 1 in fill mode and 0 in nofill mode.
    -.
    -.REG .U
    -Equal to 1 in safer mode and 0 in unsafe mode.
    -.
    -.REG .v
    -Current vertical line spacing.
    -.
    -.REG .V
    -Available vertical resolution in basic units.
    -.
    -.REG .vpt
    -1\~ if vertical position traps are enabled, 0\~otherwise.
    -.
    -.REG .w
    -Width of previous character.
    -.
    -.REG .warn
    -The sum of the number codes of the currently enabled warnings.
    -.
    -.REG .x
    -The major version number.
    -.
    -.REG .y
    -The minor version number.
    -.
    -.REG .Y
    -The revision number of groff.
    -.
    -.REG .z
    -Name of current diversion.
    -.PD
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Writable Registers"
    -.\" --------------------------------------------------------------------
    -.
    -The following registers can be read and written by the user.
    -They have predefined default values, but these can be modified for
    -customizing a document.
    -.
    -.P
    -.PD 0
    -.REG %
    -Current page number.
    -.
    -.REG c.
    -Current input line number.
    -.
    -.REG ct
    -Character type (set by width function
    -.esc w ).
    -.
    -.REG dl
    -Maximal width of last completed diversion.
    -.
    -.REG dn
    -Height of last completed diversion.
    -.
    -.REG dw
    -Current day of week (1-7).
    -.
    -.REG dy
    -Current day of month (1-31).
    -.
    -.REG hours
    -The number of hours past midnight.
    -.
    -Initialized at start-up.
    -.
    -.REG hp
    -Current horizontal position at input line.
    -.
    -.REG llx
    -Lower left x-coordinate (in PostScript units) of a given PostScript
    -image (set by
    -.request .psbb ).
    -.
    -.REG lly
    -Lower left y-coordinate (in PostScript units) of a given PostScript
    -image (set by
    -.request .psbb ).
    -.
    -.REG ln
    -Output line number.
    -.
    -.REG minutes
    -The number of minutes after the hour.
    -.
    -Initialized at start-up.
    -.
    -.REG mo
    -Current month (1-12).
    -.
    -.REG nl
    -Vertical position of last printed text base-line.
    -.
    -.REG rsb
    -Like
    -.register sb ,
    -but takes account of the heights and depths of characters.
    -.
    -.REG rst
    -Like
    -.register st ,
    -but takes account of the heights and depths of characters.
    -.
    -.REG sb
    -Depth of string below base line (generated by width function
    -.esc w ).
    -.
    -.REG seconds
    -The number of seconds after the minute.
    -.
    -Initialized at start-up.
    -.
    -.REG skw
    -Right skip width from the center of the last character in the
    -.esc w
    -argument.
    -.
    -.REG slimit
    -If greater than 0, the maximum number of objects on the input stack.
    -.
    -If \[<=]0 there is no limit, i.e., recursion can continue until virtual
    -memory is exhausted.
    -.
    -.REG ssc
    -The amount of horizontal space (possibly negative) that should be
    -added to the last character before a subscript (generated by width
    -function
    -.esc w ).
    -.
    -.REG st
    -Height of string above base line (generated by width function
    -.esc w ).
    -.
    -.REG systat
    -The return value of the
    -.I system()
    -function executed by the last
    -.request sy
    -request.
    -.
    -.REG urx
    -Upper right x-coordinate (in PostScript units) of a given PostScript
    -image (set by
    -.request .psbb ).
    -.
    -.REG ury
    -Upper right y-coordinate (in PostScript units) of a given PostScript
    -image (set by
    -.request .psbb ).
    -.
    -.REG year
    -The current year (year 2000 compliant).
    -.
    -.REG yr
    -Current year minus 1900.
    -.
    -For Y2K compliance use
    -.register year
    -instead.
    -.
    -.PD
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH COMPATIBILITY
    -.\" --------------------------------------------------------------------
    -.
    -The differences of the groff language in comparison to classical troff
    -as defined by
    -.I [CSTR\~#54]
    -are documented in
    -.BR groff_diff (7).
    -.
    -.P
    -The groff system provides a compatibility mode, see
    -.BR groff (1)
    -on how to invoke this.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH BUGS
    -.\" --------------------------------------------------------------------
    -.
    -Report bugs to the
    -.MTO bug-groff@gnu.org "groff bug mailing list" .
    -Include a complete, self-contained example that will allow the bug to
    -be reproduced, and say which version of groff you are using.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH AUTHORS
    -.\" --------------------------------------------------------------------
    -.
    -Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005
    -Free Software Foundation, Inc.
    -.
    -.P
    -This document is distributed under the terms of the FDL (GNU Free
    -Documentation License) version 1.1 or later.
    -.
    -You should have received a copy of the FDL on your system, it is also
    -available on-line at the
    -.URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" .
    -.
    -.P
    -This document is part of
    -.IR groff ,
    -the GNU roff distribution.
    -.
    -It was written by
    -.MTO bwarken@mayn.de "Bernd Warken" ;
    -it is maintained by
    -.MTO wl@gnu.org "Werner Lemberg" .
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "SEE ALSO"
    -.\" --------------------------------------------------------------------
    -.
    -.P
    -The main source of information for the groff language is the
    -.B groff
    -.BR info (1)
    -file.
    -.
    -Besides the gory details, it contains many examples.
    -.
    -.TP
    -.BR groff (1)
    -the usage of the groff program and pointers to the documentation and
    -availability of the groff system.
    -.
    -.TP
    -.BR groff_diff (7)
    -the differences of the groff language as compared to classical roff.
    -.
    -This is the authoritative document for the predefined language
    -elements that are specific to groff.
    -.
    -.TP
    -.BR groff_char (7)
    -the predefined groff characters (glyphs).
    -.
    -.TP
    -.BR groff_font (5)
    -the specification of fonts and the DESC file.
    -.
    -.TP
    -.BR roff (7)
    -the history of roff, the common parts shared by all roff systems, and
    -pointers to further documentation.
    -.
    -.TP
    -.I [CSTR\~#54]
    -.URL http://\:cm.bell-labs.com/\:cm/\:cs/\:54.ps \
    -     "Nroff/\:Troff User's Manual by Osanna & Kernighan"
    -\[em] the bible for classical troff.
    -.
    -.cp \n[groff_C]
    -.
    -.\" --------------------------------------------------------------------
    -.\" Emacs Setup
    -.\" --------------------------------------------------------------------
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man7/groff_char.7 b/gen/usr/share/man/man7/groff_char.7
    deleted file mode 100644
    index 34fbb26..0000000
    --- a/gen/usr/share/man/man7/groff_char.7
    +++ /dev/null
    @@ -1,1422 +0,0 @@
    -.TH GROFF_CHAR 7 "5 December 2004" "Groff Version 1.19.2"
    -.SH NAME
    -groff_char \- groff glyph names
    -.SH DESCRIPTION
    -.\" The lines above were designed to satisfy `apropos'.
    -.
    -.\" For best results, format this document with `groff' (GNU roff).
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.\" Legal terms
    -.\" --------------------------------------------------------------------
    -.
    -.ig
    -groff_char(7)
    -
    -This file is part of groff (GNU roff).
    -
    -File position: /man/groff_char.man
    -Last update: 05 Dec 2004
    -
    -Copyright (C) 1989-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
    -written by Werner Lemberg 
    -with additions by Bernd Warken 
    -
    -Permission is granted to copy, distribute and/or modify this document
    -under the terms of the GNU Free Documentation License, Version 1.1 or
    -any later version published by the Free Software Foundation; with the
    -Invariant Sections being this .ig-section and AUTHOR, with no
    -Front-Cover Texts, and with no Back-Cover Texts.
    -
    -A copy of the Free Documentation License is included as a file called
    -FDL in the main directory of the groff source package.
    -..
    -.
    -.\" --------------------------------------------------------------------
    -.\" Setup Part 1
    -.\" --------------------------------------------------------------------
    -.
    -.do nr groff_char_C \n[.C]
    -.cp 0
    -.
    -.\" groff only
    -.if \n(.g .mso www.tmac
    -.\".if \n(.g .ne 2v
    -.\".if \n(.g .sv 2v
    -.
    -.ds aq \(aq
    -.
    -.\" non-groff
    -.if !\n(.g .if '\(aq'' .ds aq \'
    -.
    -.\" groff
    -.if !\n(.g .ig
    -.  tr \[aq]\[aq]
    -.  if !c\[aq] \
    -.    ds aq \'
    -.  \" This is very special.  The standard devdvi fonts don't have a
    -.  \" real `aq' glyph; it is defined with .char to be ' instead.
    -.  \" The .tr request below in the definition of the C macro maps
    -.  \" the apostrophe ' onto the `aq' glyph which would cause a
    -.  \" recursive loop.  gtroff prevents this within the .char
    -.  \" request, trying to access glyph `aq' directly from the font.
    -.  \" Consequently, we get a warning, and nothing is printed.
    -.  \"
    -.  \" The following line prevents this.
    -.  if '\*[.T]'dvi' \
    -.    if !r ECFONTS \
    -.      ds aq \'
    -.  \" The same is true for X
    -.  ds dev \*[.T]
    -.  substring dev 0 0
    -.  if '\*[dev]'X' .ds aq \'
    -.  ig
    -..
    -.
    -.\" --------------------------------------------------------------------
    -.\" .Ac accented-char accent char (groff)
    -.
    -.if !\n(.g .ig
    -.de Ac
    -.  if !c\\$1 \{\
    -.    ie c\\$2 \
    -.      char \\$1 \
    -\k[acc]\
    -\h'\w'\\$3'u'\
    -\h'(u;-\w'\\$2'-\w'\\$3'/2+\\\\n[skw]+(\w'x'*0)-\\\\n[skw])'\
    -\v'(u;\w'x'*0+\\\\n[rst]+(\w'\\$3'*0)-\\\\n[rst])'\
    -\\$2\
    -\v'(u;\w'x'*0-\\\\n[rst]+(\w'\\$3'*0)+\\\\n[rst])'\
    -\h'|\\\\n[acc]u'\
    -\\$3
    -.    el \
    -.      char \\$1 \\$3
    -.    hcode \\$1 \\$3
    -.  \}
    -..
    -.
    -.\" --------------------------------------------------------------------
    -.\" Setup Part 2
    -.\" --------------------------------------------------------------------
    -.
    -.nr Sp 2n
    -.
    -.\" --------------------------------------------------------------------
    -.\" .C2/.CN (groff)
    -.
    -.if !\n(.g .ig
    -.de CN
    -.  C \e[\\$1] "" \[\\$1] \\$2 "\\$3" "\\$4"
    -..
    -.
    -.\" .Ns (groff) start .CN block
    -.
    -.if !\n(.g .ig
    -.de Ns
    -.  CN "\\$1" "\\$2" "\\$3" "\\$4"
    -.  if !\n[cR] \
    -.    wh (\\n[nl]u + \\n[.t]u - \\n[.V]u) Fo
    -..
    -.
    -.\" .Ne (groff) end .CN block
    -.
    -.if !\n(.g .ig
    -.de Ne
    -.  ch Fo
    -.  CN "\\$1" "\\$2" "\\$3" "\\$4"
    -..
    -.
    -.if \n(.g \{\
    -.  als C2 CN
    -.  als 2s Ns
    -.  als 2e Ne
    -.\}
    -.
    -.\" --------------------------------------------------------------------
    -.\" .C2 (non-groff)
    -.
    -.if \n(.g .ig
    -.de C2
    -.  C \e(\\$1 "" \\(\\$1 \\$2 "\\$3" "\\$4"
    -..
    -.
    -.\" .2s (non-groff) start .C2 block
    -.
    -.if \n(.g .ig
    -.de 2s
    -.  C2 "\\$1" "\\$2" "\\$3" "\\$4"
    -.  if !\n(cR \
    -.    wh \\n(nlu+\\n(.tu-\\n(.Vu Fo
    -..
    -.
    -.\" .2e (non-groff) end .C2 block
    -.
    -.if \n(.g .ig
    -.de 2e
    -.  ch Fo
    -.  C2 "\\$1" "\\$2" "\\$3" "\\$4"
    -..
    -.
    -.\" --------------------------------------------------------------------
    -.\" .CD (groff)
    -.
    -.if !\n(.g .ig
    -.de CD
    -.  C \[char\\$1] \\$1 \[char\\$1] \\$2 "\\$3" "\\$4" 1
    -..
    -.
    -.\" .Ds (groff) start .CD block
    -.
    -.if !\n(.g .ig
    -.de Ds
    -.  CD "\\$1" "\\$2" "\\$3" "\\$4"
    -.  if !\n[cR] \
    -.    wh (\\n[nl]u + \\n[.t]u - \\n[.V]u) Fo
    -..
    -.
    -.\" .De (groff) end .CD block
    -.
    -.if !\n(.g .ig
    -.de De
    -.  ch Fo
    -.  CD "\\$1" "\\$2" "\\$3" "\\$4"
    -..
    -.
    -.\" --------------------------------------------------------------------
    -.
    -.do if !r ECFONTS .do fspecial CR R
    -.
    -.\" .CT
    -.
    -.de CT
    -.  nr c1 \w'\\$1'
    -.  if \\n(c1 \
    -.    nr c1 +\\n(Spu
    -.  nr c2 \\n(c1+\w'\\$2'
    -.  if \\n(c1<\\n(c2 \
    -.    nr c2 +\\n(Spu
    -.  nr c3 \\n(c2+\w'\\$3'
    -.  if \\n(c2<\\n(c3 \
    -.    nr c3 +\\n(Spu
    -.  nr c4 \\n(c3+\w'\\$4'
    -.  if \\n(c3<\\n(c4 \
    -.    nr c4 +\\n(Spu
    -.  nr c5 \\n(c4+\w'\\$5'
    -.  if \\n(c4<\\n(c5 \
    -.    nr c5 +\\n(Spu
    -..
    -.
    -.\" .CL
    -.
    -.de CL
    -\\$1\c
    -\h'\\n(c1u-\\n(.ku'\\$2\c
    -\h'\\n(c2u-\\n(.ku'\\$3\c
    -\h'\\n(c3u-\\n(.ku'\\$4\c
    -\h'\\n(c4u-\\n(.ku'\\$5\c
    -\h'\\n(c5u-\\n(.ku'\\$6
    -.  br
    -..
    -.
    -.\" --------------------------------------------------------------------
    -.\" input-name decimal-code output-name ps-name unicode description is-char
    -.\" .C (groff)
    -.
    -.if !\n(.g .ig
    -.de C
    -.  nr CH 1
    -.  if \\$7 \
    -.    if !c\\$1 \
    -.      nr CH 0
    -.  ie !\\n[CH] \
    -.    ds CH
    -.  el \{\
    -.    ft CR
    -.    tr `\`'\*[aq]
    -.    in 0
    -.    di CH
    -.    nop \&\\$1
    -.    br
    -.    di
    -.    chop CH
    -.    in
    -.    ft
    -.    ds CH \\*[CH]
    -.    tr ``''
    -.  \}
    -.  di CC
    -.  ie c\\$3 \{\
    -.    nop \\&\\$3\c
    -.    \" The \x values assure that oversized symbols don't
    -.    \" overlap vertically.  The constant 1.5p is heuristic.
    -.    nop \x'(\w'('*0 - ((\\n[.cht]u - \\n[rst]u - 1.5p) >? 0))'\c
    -.    nop \x'((\\n[.cdp]u + \\n[rsb]u - 1.5p) >? 0)'\c
    -.    nop \h'(\\n[c1]u - \\n[.k]u)'\\*[CH]\c
    -.    nop \h'(\\n[c2]u - \\n[.k]u)'\\$2\c
    -.  \}
    -.  el \{\
    -.    nop (N/A)\c
    -.    nop \h'(\\n[c1]u - \\n[.k]u)'\\*[CH]\c
    -.  \}
    -.  nop \h'(\\n[c3]u - \\n[.k]u)'\\$4\c
    -.  nop \h'(\\n[c4]u - \\n[.k]u)'\\$5\c
    -.  br
    -.  di
    -.  \" we move upwards later on so force a page break now if necessary
    -.  if (\\n[dn] >= \\n[.t]) \
    -.    bp
    -.  mk C1
    -.  in 0
    -.  CC
    -.  in
    -.  \" allow multiple lines for last column
    -.  in +\\n[c5]u
    -.  mk C2
    -.  sp |\\n[C1]u
    -.  nr PN \\n[%]
    -.  ad l
    -.  nop \\$6
    -.  ad b
    -.  in
    -.  if (\\n[PN] == \\n[%]) \
    -.    if (\\n[nl] < \\n[C2]) \
    -.      sp |\\n[C2]u
    -..
    -.
    -.\" --------------------------------------------------------------------
    -.\" .C (non-groff)
    -.
    -.if \n(.g .ig
    -.de C
    -.  ft B
    -.  tr `\`'\*(aq
    -.  in 0
    -.  di CH
    -\&\\$1
    -.  br
    -.  di
    -.  in
    -.  ft
    -.  ds CH \\*(CH\
    -.  tr ``''
    -.  di CC
    -.  ie !'\\$3'' \{\
    -\&\\$3\c
    -\h'\\n(c1u-\\n(.ku)'\\*(CH\c
    -\h'\\n(c2u-\\n(.ku)'\\$2\c
    -\h'\\n(c3u-\\n(.ku)'\\$4\c
    -.  \}
    -.  el \{\
    -(N/A)\c
    -\h'\\n(c1u-\\n(.ku)'\\*(CH\c
    -\h'\\n(c3u-\\n(.ku)'\\$4\c
    -.  \}
    -\h'\\n(c4u-\\n(.ku)'\\$5\c
    -\h'\\n(c5u-\\n(.ku)'\\$6
    -.  br
    -.  di
    -.  \" we move upwards later on so force a page break now if necessary
    -.  if \\n(dn>=\\n(.t \
    -.    bp
    -.  mk C1
    -.  in 0
    -.  CC
    -.  in
    -.  \" allow multiple lines for last column
    -.  in +\\n(c5u
    -.  mk C2
    -.  sp |\\n(C1u
    -.  nr PN \\n%
    -.  ad l
    -\\$6
    -.  ad b
    -.  in
    -.  if \\n(PN==\\n% \
    -.    if \\n(nl<\\n(C2 \
    -.      sp |\\n(C2u
    -..
    -.
    -.\" --------------------------------------------------------------------
    -.
    -.de Fo
    -'  bp
    -.  He
    -..
    -.
    -.de Pa
    -.  P
    -.  ne 3
    -..
    -.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.\" .SH DESCRIPTION
    -.\" --------------------------------------------------------------------
    -.
    -This manual page lists the standard
    -.B groff
    -glyph names and the default input mapping, \%latin-1.
    -.
    -The glyphs in this document will look different depending
    -on which output device was chosen (with option
    -.B \-T
    -for the
    -.BR man (1)
    -program or the roff formatter).
    -.
    -Glyphs not available for the device that
    -is being used to print or view this manual page will be marked with
    -.ie \n(.g `(N/A)'; the device currently used is `\*(.T'.
    -.el `(N/A)'.
    -.
    -.
    -.P
    -In the actual version, 
    -.B groff
    -provides only \%8-bit characters for direct input and named entities
    -for further glyphs.
    -.
    -On ASCII platforms, input character codes in the range 0 to 127 (decimal)
    -represent the usual \%7-bit ASCII characters, while codes between 127
    -and 255 are interpreted as the corresponding characters in the
    -.I \%Latin-1
    -.RI ( \%ISO-8859-1 )
    -code set by default.
    -.
    -This mapping is contained in the file \f(CWlatin1.tmac\fP
    -and can be changed by loading a different input encoding.
    -.
    -Note that some of the input characters are reserved by
    -.BR groff ,
    -either for internal use or for special input purposes.
    -.
    -On EBCDIC platforms, only code page
    -.B cp1047
    -is supported (which contains the same characters as \%Latin-1; the
    -input encoding file is called \f(CWcp1047.tmac\fP).
    -.
    -Again, some input characters are reserved for internal and special purposes.
    -.
    -It is rather straightforward (for the experienced user) to set up other
    -\%8-bit encodings like
    -.IR \%Latin-2 ;
    -since
    -.B groff
    -will use Unicode in the next major version, no additional encodings
    -are provided.
    -.
    -.
    -.P
    -All roff systems provide the concept of named glyphs.
    -.
    -In traditional roff systems, only names of length\ 2 were used, while
    -groff also provides support for longer names.
    -.
    -It is strongly suggested that only named glyphs are used for all
    -character representations outside of the printable \%7-bit ASCII range.
    -.
    -.
    -.P
    -Some of the predefined groff escape sequences (with names of length\ 1)
    -also produce single characters; these exist for historical reasons or
    -are printable versions of syntactical characters.
    -.
    -They include `\f(CW\e\e\fP', `\f(CW\e\'\fP', `\f(CW\e`\fP', `\f(CW\e-\fP',
    -`\f(CW\e.\fP', and `\f(CW\ee\fP'; see
    -.BR groff (7).
    -.
    -.
    -.P
    -In groff, all of these different types of characters and glyphs can be
    -tested positively with the `\f(CW.if\ c\fP' conditional.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH REFERENCE
    -.\" --------------------------------------------------------------------
    -.
    -In this section, the glyphs in groff are specified in tabular
    -form.
    -.
    -The meaning of the columns is as follows.
    -.
    -.
    -.TP
    -.I "Output"
    -shows how the glyph is printed for the current device; although
    -this can have quite a different shape on other devices, it always
    -represents the same glyph.
    -.
    -.
    -.TP
    -.I "Input name"
    -specifies how the glyph is input either directly by a key on the
    -keyboard, or by a groff escape sequence.
    -.
    -.
    -.TP
    -.I "Input code"
    -applies to glyphs which can be input with a single character, and
    -gives the ISO \%Latin-1 decimal code of that input character.
    -.
    -Note that this code is equivalent to the lowest 256 Unicode characters,
    -including \%7-bit ASCII in the range 0 to\ 127.
    -.
    -.
    -.TP
    -.I "PostScript name"
    -gives the usual PostScript name of the glyph.
    -.
    -.
    -.TP
    -.I "Unicode decomposed"
    -is the glyph name used in composite glyph names.
    -.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "7-bit Character Codes 32-126"
    -.\" --------------------------------------------------------------------
    -.
    -These are the basic glyphs having 7-bit ASCII code values assigned.
    -.
    -They are identical to the printable characters of the
    -character standards \%ISO-8859-1 (\%Latin-1) and Unicode (range
    -.IR "C0 Controls and Basic Latin" ).
    -.
    -The glyph names used in composite glyph names are `u0020' up to `u007E'.
    -.
    -.
    -.P
    -Note that input characters in the range \%0\-31 and character 127 are
    -.I not
    -printable characters.
    -.
    -Most of them are invalid input characters for
    -.B groff
    -anyway, and the valid ones have special meaning.
    -.
    -For EBCDIC, the printable characters are in the range \%66\-255.
    -.
    -.
    -.TP
    -48\-57
    -Decimal digits 0 to\ 9 (print as themselves).
    -.
    -.
    -.TP
    -65\-90
    -Upper case letters A\-Z (print as themselves).
    -.
    -.
    -.TP
    -97\-122
    -Lower case letters a\-z (print as themselves).
    -.
    -.
    -.P
    -Most of the remaining characters not in the just described ranges print as
    -themselves; the only exceptions are the following characters:
    -.
    -.
    -.TP
    -.B \`
    -the ISO \%Latin-1 `Grave Accent' (code\ 96) prints as `, a left single
    -quotation mark; the original character can be obtained with `\f(CW\e`\fP'.
    -.
    -.
    -.TP
    -.B \*(aq
    -the ISO \%Latin-1 `Apostrophe' (code\ 39) prints as ', a right single
    -quotation mark; the original character can be obtained with `\f(CW\e(aq\fP'.
    -.
    -.
    -.TP
    -.B -
    -the ISO \%Latin-1 `Hyphen, Minus Sign' (code\ 45) prints as a hyphen; a
    -minus sign can be obtained with `\f(CW\e-\fP'.
    -.
    -.
    -.TP
    -.B ~
    -the ISO \%Latin-1 `Tilde' (code\ 126) is reduced in size to be usable as
    -a diacritic; a larger glyph can be obtained with `\f(CW\e(ti\fP'.
    -.
    -.
    -.TP
    -.B ^
    -the ISO \%Latin-1 `Circumflex Accent' (code\ 94) is reduced in size to be
    -usable as a diacritic; a larger glyph can be obtained with `\f(CW\e(ha\fP'.
    -.
    -.
    -.P
    -.CT "\fIOutput" "\fIInput" "\fIInput" "bracketright" "decomposed"
    -.de He
    -.  P
    -.  ne 4
    -.  ft I
    -.  CL "Output" "Input" "Input" "PostScript" "Unicode"    "Notes"
    -.  CL ""       "name"  "code"  "name"       "decomposed" ""
    -.  ft
    -.  P
    -..
    -.He
    -.Ds 33 exclam u0021
    -.CD 34 quotedbl u0022
    -.CD 35 numbersign u0023
    -.CD 36 dollar u0024
    -.CD 37 percent u0025
    -.CD 38 ampersand u0026
    -.CD 39 quoteright u0027
    -.CD 40 parenleft u0028
    -.CD 41 parenright u0029
    -.CD 42 asterisk u002A
    -.CD 43 plus u002B
    -.CD 44 comma u002C
    -.CD 45 hyphen u2010
    -.CD 46 period u002E
    -.CD 47 slash u002F
    -.CD 58 colon u003A
    -.CD 59 semicolon u003B
    -.CD 60 less u003C
    -.CD 61 equal u003D
    -.CD 62 greater u003E
    -.CD 63 question u003F
    -.CD 64 at u0040
    -.CD 91 bracketleft u005B
    -.CD 92 backslash u005C
    -.CD 93 bracketright u005D
    -.CD 94 circumflex u005E "circumflex accent"
    -.CD 95 underscore u005F
    -.CD 96 quoteleft u0060
    -.CD 123 braceleft u007B
    -.CD 124 bar u007C
    -.CD 125 braceright u007D
    -.De 126 tilde u007E "tilde accent"
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "8-bit Character Codes 160 to 255"
    -.\" --------------------------------------------------------------------
    -.
    -They are interpreted as printable characters according to the
    -.I Latin-1
    -.RI ( iso-8859-1 )
    -code set, being identical to the Unicode range
    -.IR "C1 Controls and Latin-1 Supplement" .
    -.
    -.
    -.P
    -Input characters in range 128-159 (on non-EBCDIC hosts) are not printable
    -characters.
    -.
    -.
    -.TP
    -160
    -.
    -the ISO \%Latin-1
    -.I no-break space
    -is mapped to `\f(CW\e~\fP', the stretchable space character.
    -.
    -.
    -.TP
    -173
    -.
    -the soft hyphen control character.
    -.
    -.B groff
    -never uses this character for output (thus it is omitted in the
    -table below); the input character\ 173 is mapped onto `\f(CW\e%\fP'.
    -.
    -.
    -.P
    -The remaining ranges (\%161\-172, \%174\-255)
    -are printable characters that print as themselves.
    -.
    -Although they can be specified directly with the keyboard on systems
    -with a \%Latin-1 code page, it is better to use their glyph names;
    -see next section.
    -.
    -.P
    -.CT "\fIOutput" "\fIInput" "\fIInput" "guillemotright" "decomposed"
    -.He
    -.Ds 161 exclamdown u00A1 "inverted exclamation mark"
    -.CD 162 cent u00A2
    -.CD 163 sterling u00A3
    -.CD 164 currency u00A4
    -.CD 165 yen u00A5
    -.CD 166 brokenbar u00A6
    -.CD 167 section u00A7
    -.CD 168 dieresis u00A8
    -.CD 169 copyright u00A9
    -.CD 170 ordfeminine u00AA
    -.CD 171 guillemotleft u00AB
    -.CD 172 logicalnot u00AC
    -.CD 174 registered u00AE
    -.CD 175 macron u00AF
    -.CD 176 degree u00B0
    -.CD 177 plusminus u00B1
    -.CD 178 twosuperior u00B2
    -.CD 179 threesuperior u00B3
    -.CD 180 acute u00B4 "acute accent"
    -.CD 181 mu u00B5 "micro sign"
    -.CD 182 paragraph u00B6
    -.CD 183 periodcentered u00B7
    -.CD 184 cedilla u00B8
    -.CD 185 onesuperior u00B9
    -.CD 186 ordmasculine u00BA
    -.CD 187 guillemotright u00BB
    -.CD 188 onequarter u00BC
    -.CD 189 onehalf u00BD
    -.CD 190 threequarters u00BE
    -.CD 191 questiondown u00BF
    -.CD 192 Agrave u0041_0300
    -.CD 193 Aacute u0041_0301
    -.CD 194 Acircumflex u0041_0302
    -.CD 195 Atilde u0041_0303
    -.CD 196 Adieresis u0041_0308
    -.CD 197 Aring u0041_030A
    -.CD 198 AE u00C6
    -.CD 199 Ccedilla u0043_0327
    -.CD 200 Egrave u0045_0300
    -.CD 201 Eacute u0045_0301
    -.CD 202 Ecircumflex u0045_0302
    -.CD 203 Edieresis u0045_0308
    -.CD 204 Igrave u0049_0300
    -.CD 205 Iacute u0049_0301
    -.CD 206 Icircumflex u0049_0302
    -.CD 207 Idieresis u0049_0308
    -.CD 208 Eth u00D0
    -.CD 209 Ntilde u004E_0303
    -.CD 210 Ograve u004F_0300
    -.CD 211 Oacute u004F_0301
    -.CD 212 Ocircumflex u004F_0302
    -.CD 213 Otilde u004F_0303
    -.CD 214 Odieresis u004F_0308
    -.CD 215 multiply u00D7
    -.CD 216 Oslash u00D8
    -.CD 217 Ugrave u0055_0300
    -.CD 218 Uacute u0055_0301
    -.CD 219 Ucircumflex u0055_0302
    -.CD 220 Udieresis u0055_0308
    -.CD 221 Yacute u0059_0301
    -.CD 222 Thorn u00DE
    -.CD 223 germandbls u00DF
    -.CD 224 agrave u0061_0300
    -.CD 225 aacute u0061_0301
    -.CD 226 acircumflex u0061_0302
    -.CD 227 atilde u0061_0303
    -.CD 228 adieresis u0061_0308
    -.CD 229 aring u0061_030A
    -.CD 230 ae u00E6
    -.CD 231 ccedilla u0063_0327
    -.CD 232 egrave u0065_0300
    -.CD 233 eacute u0065_0301
    -.CD 234 ecircumflex u0065_0302
    -.CD 235 edieresis u0065_0308
    -.CD 236 igrave u0069_0300
    -.CD 237 iacute u0069_0301
    -.CD 238 icircumflex u0069_0302
    -.CD 239 idieresis u0069_0308
    -.CD 240 eth u00F0
    -.CD 241 ntilde u006E_0303
    -.CD 242 ograve u006F_0300
    -.CD 243 oacute u006F_0301
    -.CD 244 ocircumflex u006F_0302
    -.CD 245 otilde u006F_0303
    -.CD 246 odieresis u006F_0308
    -.CD 247 divide u00F7
    -.CD 248 oslash u00F8
    -.CD 249 ugrave u0075_0300
    -.CD 250 uacute u0075_0301
    -.CD 251 ucircumflex u0075_0302
    -.CD 252 udieresis u0075_0308
    -.CD 253 yacute u0079_0301
    -.CD 254 thorn u00FE
    -.De 255 ydieresis u0079_0308
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Named Glyphs"
    -.\" --------------------------------------------------------------------
    -.
    -Glyph names can be embedded into the document text by using escape
    -sequences.
    -.
    -.BR groff (7)
    -describes how these escape sequences look.
    -.
    -Glyph names can consist of quite arbitrary characters from the
    -ASCII or \%Latin-1 code set, not only alphanumeric characters.
    -.
    -Here some examples:
    -.
    -.TP
    -\f(CW\e\fP\fIc\fP
    -A glyph having the name
    -.IR c ,
    -which consists of a single character (length\ 1).
    -.
    -.TP
    -\f(CW\e(\fP\fIch\fP
    -A glyph having the 2-character name
    -.IR ch .
    -.
    -.TP
    -\f(CW\e[\fP\fIchar_name\fP\f(CW]\fP
    -A glyph having the name
    -.I char_name
    -(having length 1, 2, 3, .\|.\|.).
    -.
    -.TP
    -\f(CW\e[\fP\fIbase_glyph composite_1 composite_2 .\|.\|.\fP\f(CW]\fP
    -A composite glyph; see below for a more detailed description.
    -.
    -.
    -.P
    -In groff, each \%8-bit input character can also referred to by the construct
    -`\f(CW\e[char\fP\fIn\fP\f(CW]\fP' where
    -.I n
    -is the decimal code of the character, a number between 0 and\ 255
    -without leading zeros (those entities are
    -.I not
    -glyph names).
    -.
    -They are normally mapped onto glyphs using the \f(CW.trin\fP request.
    -.
    -Another special convention is the handling of glyphs with names directly
    -derived from a Unicode code point; this is discussed below.
    -.
    -Moreover, new glyph names can be created by the \f(CW.char\fP request; see
    -.BR groff (7).
    -.
    -.P
    -In the following, a plus sign in the `Notes' column indicates that this
    -particular glyph name appears in the PS version of the original troff
    -documentation, CSTR\ 54.
    -.
    -.
    -.P
    -.CT "\fIOutput" "\f(CW\e[-D]" "" "Ocircumflex" "u0066_0066_006C"
    -.de He
    -.  P
    -.  ne 4
    -.  ft I
    -.  CL "Output" "Input" "" "PostScript" "Unicode"    "Notes"
    -.  CL ""       "name"  "" "name"       "decomposed" ""
    -.  ft
    -.  P
    -..
    -.He
    -.2s -D Eth u00D0 "uppercase eth"
    -.C2 Sd eth u00F0 "lowercase eth"
    -.C2 TP Thorn u00DE "uppercase thorn"
    -.C2 Tp thorn u00FE "lowercase thorn"
    -.2e ss germandbls u00DF "German sharp s"
    -.
    -.Pa
    -.I Ligatures and Other Latin Glyphs
    -.P
    -.2s ff ff u0066_0066 "ff ligature +"
    -.C2 fi fi u0066_0069 "fi ligature +"
    -.C2 fl fl u0066_006C "fl ligature +"
    -.C2 Fi ffi u0066_0066_0069 "ffi ligature +"
    -.C2 Fl ffl u0066_0066_006C "ffl ligature +"
    -.C2 /L Lslash u0141 "(Polish)"
    -.C2 /l lslash u0142 "(Polish)"
    -.C2 /O Oslash u00D8 "(Scandinavic)"
    -.C2 /o oslash u00F8 "(Scandinavic)"
    -.C2 AE AE u00C6
    -.C2 ae ae u00E6
    -.C2 OE OE u0152
    -.C2 oe oe u0153
    -.C2 IJ IJ u0132 "(Dutch)"
    -.C2 ij ij u0133 "(Dutch)"
    -.C2 .i dotlessi u0131 "(Turkish)"
    -.2e .j dotlessj --- "j without a dot"
    -.
    -.Pa
    -.I Accented Characters
    -.P
    -.2s 'A Aacute u0041_0301
    -.C2 'C Cacute u0043_0301
    -.C2 'E Eacute u0045_0301
    -.C2 'I Iacute u0049_0301
    -.C2 'O Oacute u004F_0301
    -.C2 'U Uacute u0055_0301
    -.C2 'Y Yacute u0059_0301
    -.C2 'a aacute u0061_0301
    -.C2 'c cacute u0063_0301
    -.C2 'e eacute u0065_0301
    -.C2 'i iacute u0069_0301
    -.C2 'o oacute u006F_0301
    -.C2 'u uacute u0075_0301
    -.C2 'y yacute u0079_0301
    -.C2 :A Adieresis u0041_0308 "A with umlaut"
    -.C2 :E Edieresis u0045_0308
    -.C2 :I Idieresis u0049_0308
    -.C2 :O Odieresis u004F_0308
    -.C2 :U Udieresis u0055_0308
    -.C2 :Y Ydieresis u0059_0308
    -.C2 :a adieresis u0061_0308
    -.C2 :e edieresis u0065_0308
    -.C2 :i idieresis u0069_0308
    -.C2 :o odieresis u006F_0308
    -.C2 :u udieresis u0075_0308
    -.C2 :y ydieresis u0079_0308
    -.C2 ^A Acircumflex u0041_0302
    -.C2 ^E Ecircumflex u0045_0302
    -.C2 ^I Icircumflex u0049_0302
    -.C2 ^O Ocircumflex u004F_0302
    -.C2 ^U Ucircumflex u0055_0302
    -.C2 ^a acircumflex u0061_0302
    -.C2 ^e ecircumflex u0065_0302
    -.C2 ^i icircumflex u0069_0302
    -.C2 ^o ocircumflex u006F_0302
    -.C2 ^u ucircumflex u0075_0302
    -.C2 `A Agrave u0041_0300
    -.C2 `E Egrave u0045_0300
    -.C2 `I Igrave u0049_0300
    -.C2 `O Ograve u004F_0300
    -.C2 `U Ugrave u0055_0300
    -.C2 `a agrave u0061_0300
    -.C2 `e egrave u0065_0300
    -.C2 `i igrave u0069_0300
    -.C2 `o ograve u006F_0300
    -.C2 `u ugrave u0075_0300
    -.C2 ~A Atilde u0041_0303
    -.C2 ~N Ntilde u004E_0303
    -.C2 ~O Otilde u004F_0303
    -.C2 ~a atilde u0061_0303
    -.C2 ~n ntilde u006E_0303
    -.C2 ~o otilde u006F_0303
    -.C2 vS Scaron u0053_030C
    -.C2 vs scaron u0073_030C
    -.C2 vZ Zcaron u005A_030C
    -.C2 vz zcaron u007A_030C
    -.C2 ,C Ccedilla u0043_0327
    -.C2 ,c ccedilla u0063_0327
    -.C2 oA Aring u0041_030A
    -.2e oa aring u0061_030A
    -.
    -.Pa
    -.I Accents
    -.P
    -The
    -.B composite
    -request is used to map most of the accents to non-spacing glyph names;
    -the values given in parentheses are the original (spacing) ones.
    -.
    -.P
    -.Ac \(vc \(ah c
    -.Ac \('a \(aa a
    -.
    -.\" we don't use the third column
    -.CT "\fIOutput" "\f(CW\e[-D]" "" "quotesinglebase" "uCCCC (uCCCC)"
    -.He
    -.2s a" hungarumlaut "u030B (u02DD)" "(Hungarian)"
    -.C2 a- macron "u0304 (u00AF)"
    -.C2 a. dotaccent "u0307 (u02D9)"
    -.C2 a^ circumflex "u0302 (u005E)"
    -.C2 aa acute "u0301 (u00B4)" "+"
    -.C2 ga grave "u0300 (u0060)" "+"
    -.C2 ab breve "u0306 (u02D8)"
    -.C2 ac cedilla "u0327 (u00B8)"
    -.C2 ad dieresis "u0308 (u00A8)" "umlaut"
    -.C2 ah caron "u030C (u02C7)" "h\('a\(vcek"
    -.C2 ao ring "u030A (u02DA)" "circle"
    -.C2 a~ tilde "u0303 (u007E)"
    -.C2 ho ogonek "u0328 (u02DB)" "hook"
    -.C2 ha asciicircum u005E "(spacing)"
    -.2e ti asciitilde u007E "(spacing)"
    -.
    -.Pa
    -.I Quotes
    -.P
    -.2s Bq quotedblbase u201E "low double comma quote"
    -.C2 bq quotesinglbase u201A "low single comma quote"
    -.C2 lq quotedblleft u201C
    -.C2 rq quotedblright u201D
    -.C2 oq quoteleft u2018 "single open quote"
    -.C2 cq quoteright u2019 "single closing quote"
    -.C2 aq quotesingle u0027 "apostrophe quote (ASCII 39)"
    -.C2 dq quotedbl u0022 "double quote (ASCII 34)"
    -.C2 Fo guillemotleft u00AB
    -.C2 Fc guillemotright u00BB
    -.C2 fo guilsinglleft u2039
    -.2e fc guilsinglright u203A
    -.
    -.Pa
    -.I Punctuation
    -.P
    -.2s r! exclamdown u00A1
    -.C2 r? questiondown u00BF
    -.C2 em emdash u2014 "+"
    -.C2 en endash u2013
    -.2e hy hyphen u2010 "+"
    -.
    -.Pa
    -.I Brackets
    -.P
    -The extensible bracket pieces are font-invariant glyphs.
    -.
    -In classical troff only one glyph was available to vertically extend
    -brackets, braces, and parentheses: `bv'.
    -.
    -We map it rather arbitrarily to u23AA.
    -.
    -.P
    -Note that not all devices contain extensible bracket pieces which can
    -be piled up with `\f(CW\eb\fP' due to the restrictions of the escape's
    -piling algorithm.
    -.
    -A general solution to build brackets out of pieces is the following
    -macro:
    -.
    -.P
    -.nf
    -.RS
    -.ft C
    -\&.\e" Make a pile centered vertically 0.5em
    -\&.\e" above the baseline.
    -\&.\e" The first argument is placed at the top.
    -\&.\e" The pile is returned in string `pile'
    -\&.eo
    -\&.de pile-make
    -\&.  nr pile-wd 0
    -\&.  nr pile-ht 0
    -\&.  ds pile-args
    -\&.
    -\&.  nr pile-# \en[.$]
    -\&.  while \en[pile-#] \e{\e
    -\&.    nr pile-wd (\en[pile-wd] >? \ew'\e$[\en[pile-#]]')
    -\&.    nr pile-ht +(\en[rst] - \en[rsb])
    -\&.    as pile-args \ev'\en[rsb]u'\e"
    -\&.    as pile-args \eZ'\e$[\en[pile-#]]'\e"
    -\&.    as pile-args \ev'-\en[rst]u'\e"
    -\&.    nr pile-# -1
    -\&.  \e}
    -\&.
    -\&.  ds pile \ev'(-0.5m + (\en[pile-ht]u / 2u))'\e"
    -\&.  as pile \e*[pile-args]\e"
    -\&.  as pile \ev'((\en[pile-ht]u / 2u) + 0.5m)'\e"
    -\&.  as pile \eh'\en[pile-wd]u'\e"
    -\&..
    -\&.ec
    -.ft
    -.RE
    -.fi
    -.
    -.P
    -Another complication is the fact that some glyphs which represent bracket
    -pieces in original troff can be used for other mathematical symbols also,
    -for example `lf' and `rf' which provide the `floor' operator.
    -.
    -Other devices (most notably for DVI output) don't unify such glyphs.
    -.
    -For this reason, the four glyphs `lf', `rf', `lc', and `rc' are not
    -unified with similarly looking bracket pieces.
    -.
    -In
    -.BR groff ,
    -only glyphs with long names are guaranteed to pile up correctly for all
    -devices (provided those glyphs exist).
    -.
    -.P
    -.CT "\fIOutput" "\f(CW\e[bracketrightex]" "" "bracketrightex" "decomposed"
    -.He
    -.2s lB bracketleft u005B
    -.C2 rB bracketright u005D
    -.C2 lC braceleft u007B
    -.C2 rC braceright u007D
    -.C2 la angleleft u27E8 "left angle bracket"
    -.C2 ra angleright u27E9 "right angle bracket"
    -.
    -.C2 bv braceex u23AA "vertical extension *** +"
    -.CN braceex braceex u23AA
    -.
    -.CN bracketlefttp bracketlefttp u23A1
    -.CN bracketleftbt bracketleftbt u23A3
    -.CN bracketleftex bracketleftex u23A2
    -.CN bracketrighttp bracketrighttp u23A4
    -.CN bracketrightbt bracketrightbt u23A6
    -.CN bracketrightex bracketrightex u23A5
    -.
    -.C2 lt bracelefttp u23A7 "+"
    -.CN bracelefttp bracelefttp u23A7
    -.C2 lk braceleftmid u23A8 "+"
    -.CN braceleftmid braceleftmid u23A8
    -.C2 lb braceleftbt u23A9 "+"
    -.CN braceleftbt braceleftbt u23A9
    -.CN braceleftex braceleftex u23AA
    -.C2 rt bracerighttp u23AB "+"
    -.CN bracerighttp bracerighttp u23AB
    -.C2 rk bracerightmid u23AC "+"
    -.CN bracerightmid bracerightmid u23AC
    -.C2 rb bracerightbt u23AD "+"
    -.CN bracerightbt bracerightbt u23AD
    -.CN bracerightex bracerightex u23AA
    -.
    -.CN parenlefttp parenlefttp u239B
    -.CN parenleftbt parenleftbt u239D
    -.CN parenleftex parenleftex u239C
    -.CN parenrighttp parenrighttp u239E
    -.CN parenrightbt parenrightbt u23A0
    -.Ne parenrightex parenrightex u239F
    -.
    -.Pa
    -.I Arrows
    -.P
    -.2s <- arrowleft u2190 "+"
    -.C2 -> arrowright u2192 "+"
    -.C2 <> arrowboth u2194 "(horizontal)"
    -.C2 da arrowdown u2193 "+"
    -.C2 ua arrowup u2191 "+"
    -.C2 va arrowupdn u2195
    -.C2 lA arrowdblleft u21D0
    -.C2 rA arrowdblright u21D2
    -.C2 hA arrowdblboth u21D4 "(horizontal)"
    -.C2 dA arrowdbldown u21D3
    -.C2 uA arrowdblup u21D1
    -.C2 vA uni21D5 u21D5 "vertical double-headed double arrow"
    -.2e an arrowhorizex u23AF "horizontal arrow extension"
    -.
    -.Pa
    -.I Lines
    -.P
    -The font-invariant glyphs `br', `ul', and `rn' form corners;
    -they can be used to build boxes.
    -.
    -Note that both the PostScript and the Unicode-derived names of
    -these three glyphs are just rough approximations.
    -.
    -.P
    -`rn' also serves in classical troff as the horizontal extension of the
    -square root sign.
    -.
    -.P
    -`ru' is a font-invariant glyph, namely a rule of length 0.5m.
    -.
    -.P
    -.CT "\fIOutput" "\f(CW\e[integral]" "" "propersuperset" "decomposed"
    -.He
    -.2s ba bar u007C
    -.C2 br SF110000 u2502 "box rule +"
    -.C2 ul underscore u005F "+"
    -.C2 rn overline u203E "use `\f(CW\e[radicalex]\fP' for continuation of square root +"
    -.C2 ru --- --- "baseline rule +"
    -.C2 bb brokenbar u00A6
    -.C2 sl slash u002F "+"
    -.2e rs backslash u005C "reverse solidus"
    -.
    -.Pa
    -.I Text markers
    -.P
    -.2s ci circle u25CB "+"
    -.C2 bu bullet u2022 "+"
    -.C2 dd daggerdbl u2021 "double dagger sign +"
    -.C2 dg dagger u2020 "+"
    -.C2 lz lozenge u25CA
    -.C2 sq uni25A1 u25A1 "white square +"
    -.C2 ps paragraph u00B6
    -.C2 sc section u00A7 "+"
    -.C2 lh uni261C u261C "hand pointing left +"
    -.C2 rh a14 u261E "hand pointing right +"
    -.C2 at at u0040
    -.C2 sh numbersign u0023
    -.C2 CR carriagereturn u21B5
    -.2e OK a19 u2713 "check mark, tick"
    -.
    -.Pa
    -.I Legal Symbols
    -.P
    -.2s co copyright u00A9 "+"
    -.C2 rg registered u00AE "+"
    -.C2 tm trademark u2122
    -.2e bs --- --- "AT&T Bell Labs logo (not used in groff) +"
    -.
    -.Pa
    -.I Currency symbols
    -.P
    -.2s Do dollar u0024
    -.C2 ct cent u00A2 "+"
    -.C2 eu --- u20AC "official Euro symbol"
    -.C2 Eu Euro u20AC "font-specific Euro glyph variant"
    -.C2 Ye yen u00A5
    -.C2 Po sterling u00A3 "British currency sign"
    -.C2 Cs currency u00A4 "Scandinavian currency sign"
    -.2e Fn florin u0192 "Dutch currency sign"
    -.
    -.Pa
    -.I Units
    -.P
    -.2s de degree u00B0 "+"
    -.C2 %0 perthousand u2030 "per thousand, per mille sign"
    -.C2 fm minute u2032 "footmark, prime +"
    -.C2 sd second u2033
    -.C2 mc mu u00B5 "micro sign"
    -.C2 Of ordfeminine u00AA
    -.2e Om ordmasculine u00BA
    -.
    -.Pa
    -.I Logical Symbols
    -.P
    -.2s AN logicaland u2227
    -.C2 OR logicalor u2228
    -.C2 no logicalnot u00AC "+"
    -.CN tno logicalnot u00AC "text variant of `no'"
    -.C2 te existential u2203 "there exists, existential quantifier"
    -.C2 fa universal u2200 "for all, universal quantifier"
    -.C2 st suchthat u220B
    -.C2 3d therefore u2234
    -.C2 tf therefore u2234
    -.
    -.2e or bar u007C "bitwise OR operator (as used in C) +"
    -.
    -.Pa
    -.I Mathematical Symbols
    -.P
    -.2s 12 onehalf u00BD "+"
    -.C2 14 onequarter u00BC "+"
    -.C2 34 threequarters u00BE "+"
    -.C2 18 oneeighth u215B
    -.C2 38 threeeighths u215C
    -.C2 58 fiveeighths u215D
    -.C2 78 seveneighths u215E
    -.C2 S1 onesuperior u00B9
    -.C2 S2 twosuperior u00B2
    -.C2 S3 threesuperior u00B3
    -.
    -.C2 pl plus u002B "plus sign in special font +"
    -.C2 mi minus u2212 "minus sign in special font +"
    -.C2 -+ uni2213 u2213
    -.C2 +- plusminus u00B1 "+"
    -.CN t+- plusminus u00B1 "text variant of `+\-'"
    -.C2 pc periodcentered u00B7
    -.C2 md dotmath u22C5 "multiplication dot"
    -.C2 mu multiply u00D7 "+"
    -.CN tmu multiply u00D7 "text variant of `mu'"
    -.C2 c* circlemultiply u2297 "multiply sign in a circle"
    -.C2 c+ circleplus u2295 "plus sign in a circle"
    -.C2 di divide u00F7 "division sign +"
    -.CN tdi divide u00F7 "text variant of `di'"
    -.C2 f/ fraction u2044 "bar for fractions"
    -.C2 ** asteriskmath u2217 "+"
    -.
    -.C2 <= lessequal u2264 "+"
    -.C2 >= greaterequal u2265 "+"
    -.C2 << uni226A u226A "much less"
    -.C2 >> uni226B u226B "much greater"
    -.C2 eq equal u003D "equals sign in special font +"
    -.C2 != notequal u003D_0338 "+"
    -.C2 == equivalence u2261 "+"
    -.C2 ne uni2262 u2261_0338
    -.C2 =~ congruent u2245 "approx.\& equal"
    -.C2 |= uni2243 u2243 "asymptot.\& equal to +"
    -.C2 ap similar u223C "+"
    -.C2 ~~ approxequal u2248 "almost equal to"
    -.C2 ~= approxequal u2248
    -.C2 pt proportional u221D "+"
    -.
    -.C2 es emptyset u2205 "+"
    -.C2 mo element u2208 "+"
    -.C2 nm notelement u2208_0338
    -.C2 sb propersubset u2282 "+"
    -.C2 nb notsubset u2282_0338
    -.C2 sp propersuperset u2283 "+"
    -.C2 nc uni2285 u2283_0338 "not superset"
    -.C2 ib reflexsubset u2286 "+"
    -.C2 ip reflexsuperset u2287 "+"
    -.C2 ca intersection u2229 "intersection, cap +"
    -.C2 cu union u222A "union, cup +"
    -.
    -.C2 /_ angle u2220
    -.C2 pp perpendicular u22A5
    -.C2 is integral u222B "+"
    -.CN integral integral u222B "***"
    -.CN sum summation u2211 "***"
    -.CN product product u220F "***"
    -.CN coproduct uni2210 u2210 "***"
    -.C2 gr gradient u2207 "+"
    -.C2 sr radical u221A "square root +"
    -.CN sqrt radical u221A "***"
    -.CN radicalex radicalex --- "continuation of square root"
    -.CN sqrtex radicalex --- "***"
    -.
    -.C2 lc uni2308 u2308 "left ceiling +"
    -.C2 rc uni2309 u2309 "right ceiling +"
    -.C2 lf uni230A u230A "left floor +"
    -.C2 rf uni230B u230B "right floor +"
    -.
    -.C2 if infinity u221E "+"
    -.C2 Ah aleph u2135
    -.C2 Im Ifraktur u2111 "Gothic I, imaginary"
    -.C2 Re Rfraktur u211C "Gothic R, real"
    -.C2 wp weierstrass u2118 "Weierstrass p"
    -.C2 pd partialdiff u2202 "partial differentiation sign +"
    -.C2 -h uni210F u210F "Planck constant over two pi"
    -.2e hbar uni210F u210F
    -.
    -.Pa
    -.I Greek characters
    -.P
    -These glyphs are intended for technical use, not for real Greek; normally,
    -the uppercase letters have upright shape, and the lowercase ones are
    -slanted.
    -.
    -There is a problem with the mapping of letter phi to Unicode.
    -.
    -Prior to Unicode version\ 3.0, the difference between U+03C6, GREEK
    -SMALL LETTER PHI, and U+03D5, GREEK PHI SYMBOL, was not clearly described;
    -only the glyph shapes in the Unicode book could be used as a reference.
    -.
    -Starting with Unicode\ 3.0, the reference glyphs have been exchanged and
    -described verbally also: In mathematical context, U+03D5 is the stroked
    -variant and U+03C5 the curly glyph.
    -.
    -Unfortunately, most font vendors didn't update their fonts to
    -this (incompatible) change in Unicode.
    -.
    -At the time of this writing (February 2003), it is not clear yet whether
    -the Adobe Glyph Names `phi' and `phi1' also change its meaning if used for
    -mathematics, thus compatibility problems are likely to happen \(en being
    -conservative, groff currently assumes that `phi' in a PostScript symbol
    -font is the stroked version.
    -.P
    -In groff, symbol `\f(CW\e[*f]\fP' always denotes the stroked version of
    -phi, and `\f(CW\e[+f]\fP' the curly variant.
    -.P
    -.2s *A Alpha u0391 "+"
    -.C2 *B Beta u0392 "+"
    -.C2 *G Gamma u0393 "+"
    -.C2 *D Delta u0394 "+"
    -.C2 *E Epsilon u0395 "+"
    -.C2 *Z Zeta u0396 "+"
    -.C2 *Y Eta u0397 "+"
    -.C2 *H Theta u0398 "+"
    -.C2 *I Iota u0399 "+"
    -.C2 *K Kappa u039A "+"
    -.C2 *L Lambda u039B "+"
    -.C2 *M Mu u039C "+"
    -.C2 *N Nu u039D "+"
    -.C2 *C Xi u039E "+"
    -.C2 *O Omicron u039F "+"
    -.C2 *P Pi u03A0 "+"
    -.C2 *R Rho u03A1 "+"
    -.C2 *S Sigma u03A3 "+"
    -.C2 *T Tau u03A4 "+"
    -.C2 *U Upsilon u03A5 "+"
    -.C2 *F Phi u03A6 "+"
    -.C2 *X Chi u03A7 "+"
    -.C2 *Q Psi u03A8 "+"
    -.C2 *W Omega u03A9 "+"
    -.C2 *a alpha u03B1 "+"
    -.C2 *b beta u03B2 "+"
    -.C2 *g gamma u03B3 "+"
    -.C2 *d delta u03B4 "+"
    -.C2 *e epsilon u03B5 "+"
    -.C2 *z zeta u03B6 "+"
    -.C2 *y eta u03B7 "+"
    -.C2 *h theta u03B8 "+"
    -.C2 *i iota u03B9 "+"
    -.C2 *k kappa u03BA "+"
    -.C2 *l lambda u03BB "+"
    -.C2 *m mu u03BC "+"
    -.C2 *n nu u03BD "+"
    -.C2 *c xi u03BE "+"
    -.C2 *o omicron u03BF "+"
    -.C2 *p pi u03C0 "+"
    -.C2 *r rho u03C1 "+"
    -.C2 ts sigma1 u03C2 "terminal sigma +"
    -.C2 *s sigma u03C3 "+"
    -.C2 *t tau u03C4 "+"
    -.C2 *u upsilon u03C5 "+"
    -.C2 *f phi u03D5 "(stroked glyph)+"
    -.C2 *x chi u03C7 "+"
    -.C2 *q psi u03C8 "+"
    -.C2 *w omega u03C9 "+"
    -.C2 +h theta1 u03D1 "variant theta"
    -.C2 +f phi1 u03C6 "variant phi (curly shape)"
    -.C2 +p omega1 u03D6 "variant pi, looking like omega"
    -.2e +e uni03F5 u03F5 "variant epsilon"
    -.
    -.Pa
    -.I Card symbols
    -.P
    -.2s CL club u2663 "black club suit"
    -.C2 SP spade u2660 "black spade suit"
    -.C2 HE heart u2665 "black heart suit"
    -.C2 u2662 uni2662 u2662 "white heart suit"
    -.C2 DI diamond u2666 "black diamond suit"
    -.2e u2661 uni2661 u2661 "white diamond suit"
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "AUTHOR"
    -.\" --------------------------------------------------------------------
    -.
    -Copyright \(co 1989-2000, 2001, 2002, 2003,
    -2004 Free Software Foundation, Inc.
    -.
    -.P
    -This document is distributed under the terms of the FDL (GNU Free
    -Documentation License) version 1.1 or later.
    -.
    -You should have received a copy of the FDL on your system, it is also
    -available on-line at the
    -.ie \n(.g \
    -.  URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" .
    -.el GNU copyleft site .
    -.
    -.P
    -This document is part of
    -.IR groff ,
    -the GNU roff distribution.
    -.
    -It was written by
    -.ie \n(.g \
    -.  MTO jjc@jclark.com "James Clark"
    -.el James Clark 
    -with additions by 
    -.ie \n(.g \
    -.  MTO wl@gnu.org  "Werner Lemberg"
    -.el Werner Lemberg 
    -and
    -.ie \n(.g \
    -.  MTO bwarken@mayn.de "Bernd Warken" .
    -.el Bernd Warken .
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "SEE ALSO"
    -.\" --------------------------------------------------------------------
    -.
    -.TP
    -.BR groff (1)
    -the GNU roff formatter.
    -.
    -.TP
    -.BR groff (7)
    -a short reference of the groff formatting language.
    -.
    -.
    -.P
    -.IR "An extension to the troff character set for Europe" ,
    -E.G. Keizer, K.J. Simonsen, J. Akkerhuis; EUUG Newsletter, Volume 9,
    -No. 2, Summer 1989
    -.
    -.
    -.P
    -.ie \n(.g .URL http://\:www.unicode.org "The Unicode Standard"
    -.el The Unicode Standard 
    -.
    -.cp \n[groff_char_C]
    -.
    -.\" --------------------------------------------------------------------
    -.\" Emacs settings
    -.\" --------------------------------------------------------------------
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man7/groff_diff.7 b/gen/usr/share/man/man7/groff_diff.7
    deleted file mode 100644
    index ed36518..0000000
    --- a/gen/usr/share/man/man7/groff_diff.7
    +++ /dev/null
    @@ -1,3848 +0,0 @@
    -'\" e
    -.\" The above line should force the use of eqn as a preprocessor
    -.ig
    -groff_diff.man
    -
    -Last update : 26 Jul 2004
    -
    -This file is part of groff, the GNU roff type-setting system.
    -It is the source of the man-page groff_diff(7).
    -
    -Copyright (C) 1989, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
    -written by James Clark
    -
    -modified by Werner Lemberg 
    -            Bernd Warken 
    -
    -Permission is granted to copy, distribute and/or modify this document
    -under the terms of the GNU Free Documentation License, Version 1.1 or
    -any later version published by the Free Software Foundation; with the
    -Invariant Sections being this .ig-section and AUTHORS, with no
    -Front-Cover Texts, and with no Back-Cover Texts.
    -
    -A copy of the Free Documentation License is included as a file called
    -FDL in the main directory of the groff source package.
    -..
    -.
    -.\" --------------------------------------------------------------------
    -.\" Setup
    -.\" --------------------------------------------------------------------
    -.
    -.do nr groff_diff_C \n[.C]
    -.cp 0
    -.
    -.mso www.tmac
    -.
    -.if n \{\
    -.  mso tty-char.tmac
    -.  ftr CR R
    -.  ftr CI I
    -.  ftr CB B
    -.\}
    -.
    -.if '\*[.T]'dvi' \
    -.  ftr CB CW
    -.
    -.\" define a string tx for the TeX logo
    -.ie t .ds tx T\h'-.1667m'\v'.224m'E\v'-.224m'\h'-.125m'X
    -.el   .ds tx TeX
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.\" start of macro definitions
    -.
    -.eo
    -.
    -.de c
    -..
    -.
    -.de TQ
    -.  br
    -.  ns
    -.  TP \$1
    -..
    -.de Text
    -.  RI "\$*"
    -..
    -.de Topic
    -.  TP 2m
    -.  Text \[bu]
    -..
    -.de squoted
    -.  ds @arg1 \$1
    -.  shift
    -.\"  Text \[oq]\f[CB]\*[@arg1]\f[]\[cq]\$*
    -.  Text \[oq]\f[B]\*[@arg1]\f[]\[cq]\$*
    -.  rm @arg1
    -..
    -.c A shell command line
    -.de ShellCommand
    -.  br
    -.  IR "shell#" "\h'1m'\f[CB]\$*\f[]\/"
    -..
    -.c reference of a request or macro
    -.de request
    -.  ds @arg1 \$1
    -.  shift 1
    -.\"  Text \f[CB]\*[@arg1]\f[]\$*
    -.  Text \f[B]\*[@arg1]\f[]\$*
    -.  rm @arg1
    -..
    -.als option request
    -.
    -.c representation of an escape sequence
    -.de esc
    -.  ds @arg1 \$1
    -.  shift
    -.\"  Text \f[CB]\[rs]\*[@arg1]\f[]\$*
    -.  Text \f[B]\[rs]\*[@arg1]\&\f[]\$*
    -.  rm @arg1
    -..
    -.ec
    -.\" end of macro definitions
    -.
    -.\" from old groff_out.man
    -.ie \n(.g \
    -.  ds ic \/
    -.el \
    -.  ds ic \^
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.\" Title
    -.\" --------------------------------------------------------------------
    -.
    -.TH GROFF_DIFF 7 "21 November 2004" "Groff Version 1.19.2"
    -.SH NAME
    -groff_diff \- differences between GNU troff and classical troff
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH DESCRIPTION
    -.\" --------------------------------------------------------------------
    -.
    -This manual page describes the language differences between
    -.IR groff ,
    -the GNU
    -.I roff
    -text processing system and the classical
    -.I roff
    -formatter of the freely available Unix\~7 of the 1970s, documented in
    -the
    -.I Troff User's Manual
    -by
    -.I Osanna
    -and
    -.IR Kernighan .
    -This inludes the roff language as well as the intermediate output
    -format (troff output).
    -.
    -.P
    -The section
    -.I SEE ALSO
    -gives pointers to both the classical
    -.I roff
    -and the modern
    -.I groff
    -documentation.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SH "GROFF LANGUAGE"
    -.\" --------------------------------------------------------------------
    -.
    -In this section, all additional features of
    -.I groff
    -compared to the classical Unix\~7
    -.I troff
    -are described in detail.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Long names"
    -.\" --------------------------------------------------------------------
    -.
    -The names of number registers, fonts, strings/\:macros/\:diversions,
    -special characters (glyphs), and colors can be of any length.
    -.
    -In escape sequences, additionally to the classical
    -.BI ( xx
    -construction for a two-character name, you can use
    -.BI [ xxx ]
    -for a name of arbitrary length.
    -.
    -.TP
    -.BI \[rs][ xxx ]
    -Print the special character (glyph) called
    -.IR xxx .
    -.
    -.TP
    -.BI \[rs][ "comp1 comp2 .\|.\|." ]
    -Print composite glyph consisting of multiple components.
    -.
    -Example: `\[rs][A\~ho]' is capital letter A with ogonek which finally maps
    -to glyph name `u0041_0328'.
    -.
    -See the
    -.I groff info file
    -for details how a glyph name for a composite glyph is constructed, and
    -.BR groff_char (7)
    -for list of glyph name components used composite glyph names.
    -.
    -.TP
    -.BI \[rs]f[ xxx ]
    -Set font
    -.IR xxx .
    -.
    -Additionally,
    -.B \[rs]f[]
    -is a new syntax equal to
    -.BR \[rs]fP ,
    -i.e., to return to the previous font.
    -.
    -.TP
    -.BI \[rs]*[ "xxx arg1 arg2 .\|.\|." ]
    -Interpolate string
    -.IR xxx ,
    -taking
    -.IR arg1 ,
    -.IR arg2 ,
    -.I .\|.\|.\&
    -as arguments.
    -.
    -.TP
    -.BI \[rs]n[ xxx ]
    -Interpolate number register
    -.IR xxx .
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Fractional pointsizes"
    -.\" --------------------------------------------------------------------
    -.
    -A
    -.I scaled point
    -is equal to
    -.B 1/sizescale
    -points, where
    -.B sizescale
    -is specified in the
    -.B DESC
    -file (1 by default).
    -.
    -There is a new scale indicator
    -.B z
    -that has the effect of multiplying by sizescale.
    -.
    -Requests and escape sequences in troff interpret arguments that
    -represent a pointsize as being in units of scaled points, but they
    -evaluate each such argument using a default scale indicator of
    -.BR z .
    -Arguments treated in this way are the argument to the
    -.B ps
    -request, the third argument to the
    -.B cs
    -request, the second and fourth arguments to the
    -.B tkf
    -request, the argument to the
    -.B \[rs]H
    -escape sequence, and those variants of the
    -.B \[rs]s
    -escape sequence that take a numeric expression as their argument.
    -.
    -.P
    -For example, suppose sizescale is 1000; then a scaled point will be
    -equivalent to a millipoint; the call
    -.B .ps\ 10.25
    -is equivalent to
    -.B .ps\ 10.25z
    -and so sets the pointsize to 10250 scaled points, which is equal to
    -10.25 points.
    -.
    -.P
    -The number register
    -.B \[rs]n[.s]
    -returns the pointsize in points as decimal fraction.
    -.
    -There is also a new number register
    -.B \[rs]n[.ps]
    -that returns the pointsize in scaled points.
    -.
    -.P
    -It would make no sense to use the
    -.B z
    -scale indicator in a numeric expression whose default scale indicator
    -was neither
    -.B u
    -nor
    -.BR z ,
    -and so
    -.B troff
    -disallows this.
    -.
    -Similarly it would make no sense to use a scaling indicator other than
    -.B z
    -or
    -.B u
    -in a numeric expression whose default scale indicator was
    -.BR z ,
    -and so
    -.B troff
    -disallows this as well.
    -.
    -.P
    -There is also new scale indicator\~\c
    -.B s
    -which multiplies by the number of units in a scaled point.
    -.
    -So, for example,
    -.B \[rs]n[.ps]s
    -is equal to
    -.BR 1m .
    -Be sure not to confuse the
    -.B s
    -and
    -.B z
    -scale indicators.
    -.
    -.
    -.\" --------------------------------------------------------------------
    -.SS "Numeric expressions"
    -.\" --------------------------------------------------------------------
    -.
    -Spaces are permitted in a number expression within parentheses.
    -.
    -.P
    -.B M
    -indicates a scale of 100ths of an em.
    -.B f
    -indicates a scale of 65536 units, providing fractions for color
    -definitions with the
    -.B defcolor
    -request.
    -.
    -For example, 0.5f = 32768u.
    -.
    -.TP
    -.IB e1 >? e2
    -The maximum of
    -.I e1
    -and
    -.IR e2 .
    -.
    -.TP
    -.IB e1 , corrected and updated
    -by Werner Lemberg , and is now part of the GNU troff
    -distribution.
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man7/groff_mdoc.7 b/gen/usr/share/man/man7/groff_mdoc.7
    deleted file mode 100644
    index 38c9615..0000000
    --- a/gen/usr/share/man/man7/groff_mdoc.7
    +++ /dev/null
    @@ -1,4136 +0,0 @@
    -.\" groff_mdoc.man
    -.\"
    -.\"   A complete reference of the mdoc macro package for GNU troff.
    -.\"
    -.\" Based on NetBSD's mdoc.samples.7, version 1.21.
    -.\"
    -.\"
    -.\"   Warning: You can't format this file with the old mdoc macros!
    -.\"
    -.\"
    -.\" Copyright (c) 1990, 1993
    -.\"     The Regents of the University of California.  All rights reserved.
    -.\"
    -.\" Redistribution and use in source and binary forms, with or without
    -.\" modification, are permitted provided that the following conditions
    -.\" are met:
    -.\" 1. Redistributions of source code must retain the above copyright
    -.\"    notice, this list of conditions and the following disclaimer.
    -.\" 2. Redistributions in binary form must reproduce the above copyright
    -.\"    notice, this list of conditions and the following disclaimer in the
    -.\"    documentation and/or other materials provided with the distribution.
    -.\" 3. [Deleted.  See
    -.\"     ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change]
    -.\" 4. Neither the name of the University nor the names of its contributors
    -.\"    may be used to endorse or promote products derived from this software
    -.\"    without specific prior written permission.
    -.\"
    -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
    -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
    -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
    -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
    -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
    -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
    -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
    -.\" SUCH DAMAGE.
    -.\"
    -.\"     @(#)mdoc.samples.7 8.2 (Berkeley) 12/30/93
    -.\"
    -.\" This reference invokes every macro in the package several
    -.\" times and is guaranteed to give a worst case performance
    -.\" for an already extremely slow package.
    -.\"
    -.
    -.Dd August 28, 2005
    -.Os
    -.Dt GROFF_MDOC 7
    -.
    -.
    -.Sh NAME
    -.
    -.Nm groff_mdoc
    -.Nd reference for groff's mdoc implementation
    -.
    -.
    -.Sh SYNOPSIS
    -.
    -.Nm groff Fl m Ns Cm doc Ar
    -.
    -.
    -.Sh DESCRIPTION
    -.
    -A complete reference for writing
    -.Ux
    -manual pages with the
    -.Nm \-mdoc
    -macro package; a
    -.Em content Ns -based
    -and
    -.Em domain Ns -based
    -formatting package for
    -.Tn GNU
    -.Xr troff 1 .
    -Its predecessor, the
    -.Xr \-man 7
    -package, addressed page layout leaving the manipulation of fonts and other
    -typesetting details to the individual author.
    -In
    -.Nm \-mdoc ,
    -page layout macros make up the
    -.Em "page structure domain"
    -which consists of macros for titles, section headers, displays and lists
    -\- essentially items which affect the physical position of text on a
    -formatted page.
    -In addition to the page structure domain, there are two more domains, the
    -.Em manual
    -domain and the
    -.Em general
    -text domain.
    -The general text domain is defined as macros which perform tasks such as
    -quoting or emphasizing pieces of text.
    -The manual domain is defined as macros that are a subset of the day to day
    -informal language used to describe commands, routines and related
    -.Ux
    -files.
    -Macros in the manual domain handle command names, command line arguments and
    -options, function names, function parameters, pathnames, variables, cross
    -references to other manual pages, and so on.
    -These domain items have value for both the author and the future user of the
    -manual page.
    -Hopefully, the consistency gained across the manual set will provide easier
    -translation to future documentation tools.
    -.Pp
    -Throughout the
    -.Ux
    -manual pages, a manual entry is simply referred to as a man page, regardless
    -of actual length and without sexist intention.
    -.
    -.
    -.Sh "GETTING STARTED"
    -.
    -The material presented in the remainder of this document is outlined
    -as follows:
    -.
    -.Bl -enum -width 3n -offset indent
    -.  It
    -.  Tn "TROFF IDIOSYNCRASIES"
    -.
    -.  Bl -tag -width 2n -compact
    -.    It "Macro Usage"
    -.    It "Passing Space Characters in an Argument"
    -.    It "Trailing Blank Space Characters"
    -.    It "Escaping Special Characters"
    -.    It "Other Possible Pitfalls"
    -.  El
    -.
    -.  It
    -.  Tn "A MANUAL PAGE TEMPLATE"
    -.
    -.  It
    -.  Tn "CONVENTIONS"
    -.
    -.  It
    -.  Tn "TITLE MACROS"
    -.
    -.  It
    -.  Tn "INTRODUCTION OF MANUAL AND GENERAL TEXT DOMAINS"
    -.
    -.  Bl -tag -width 2n -compact
    -.    It "What's in a Name" Ns ...
    -.    It "General Syntax"
    -.  El
    -.
    -.  It
    -.  Tn "MANUAL DOMAIN"
    -.
    -.  Bl -tag -width 2n -compact
    -.    It "Addresses"
    -.    It "Author Name"
    -.    It "Arguments"
    -.    It "Configuration Declarations (Section Four Only)"
    -.    It "Command Modifiers"
    -.    It "Defined Variables"
    -.    It "Errno's"
    -.    It "Environment Variables"
    -.    It "Flags"
    -.    It "Function Declarations"
    -.    It "Function Types"
    -.    It "Functions (Library Routines)"
    -.    It "Function Arguments"
    -.    It "Return Values"
    -.    It "Exit Status"
    -.    \" .It "Header File (including source code)"
    -.    It "Interactive Commands"
    -.    It "Library Names"
    -.    It "Literals"
    -.    It "Names"
    -.    It "Options"
    -.    It "Pathnames"
    -.    It "Standards"
    -.    It "Variable Types"
    -.    It "Variables"
    -.    It "Manual Page Cross References"
    -.  El
    -.
    -.  It
    -.  Tn "GENERAL TEXT DOMAIN"
    -.
    -.  Bl -tag -width 2n -compact
    -.    It "AT&T Macro"
    -.    It "BSD Macro"
    -.    It "NetBSD Macro"
    -.    It "FreeBSD Macro"
    -.    It "OpenBSD Macro"
    -.    It "BSD/OS Macro"
    -.    It "UNIX Macro"
    -.    It "Emphasis Macro"
    -.    It "Font Mode"
    -.    It "Enclosure and Quoting Macros"
    -.    It "No-Op or Normal Text Macro"
    -.    It "No-Space Macro"
    -.    It "Section Cross References"
    -.    It "Symbolics"
    -.    It "Mathematical Symbols"
    -.    It "References and Citations"
    -.    It "Trade Names (or Acronyms and Type Names)"
    -.    It "Extended Arguments"
    -.  El
    -.
    -.  It
    -.  Tn "PAGE STRUCTURE DOMAIN"
    -.
    -.  Bl -tag -width 2n -compact
    -.    It "Section Headers"
    -.    It "Subsection Headers"
    -.    It "Paragraphs and Line Spacing"
    -.    It "Keeps"
    -.    It "Examples and Displays"
    -.    It "Lists and Columns"
    -.  El
    -.
    -.  It
    -.  Tn "MISCELLANEOUS MACROS"
    -.
    -.  It
    -.  Tn "PREDEFINED STRINGS"
    -.
    -.  It
    -.  Tn "DIAGNOSTICS"
    -.
    -.  It
    -.  Tn "FORMATTING WITH GROFF, TROFF, AND NROFF"
    -.
    -.  It
    -.  Tn "FILES"
    -.
    -.  It
    -.  Tn "SEE ALSO"
    -.
    -.  It
    -.  Tn "BUGS"
    -.El
    -.
    -.\" XXX
    -.if t \
    -.  ne 7
    -.
    -.
    -.Sh "TROFF IDIOSYNCRASIES"
    -.
    -The
    -.Nm \-mdoc
    -package attempts to simplify the process of writing a man page.
    -Theoretically, one should not have to learn the tricky details of
    -.Tn GNU
    -.Xr troff 1
    -to use
    -.Nm \-mdoc ;
    -however, there are a few limitations which are unavoidable and best gotten
    -out of the way.
    -And, too, be forewarned, this package is
    -.Em not
    -fast.
    -.
    -.Ss "Macro Usage"
    -.
    -As in
    -.Tn GNU
    -.Xr troff 1 ,
    -a macro is called by placing a
    -.Ql .\&
    -(dot character) at the beginning of a line followed by the two-character
    -(or three-character) name for the macro.
    -There can be space or tab characters between the dot and the macro name.
    -Arguments may follow the macro separated by spaces (but
    -.Em no
    -tabs).
    -It is the dot character at the beginning of the line which causes
    -.Tn GNU
    -.Xr troff 1
    -to interpret the next two (or more) characters as a macro name.
    -A single starting dot followed by nothing is ignored.
    -To place a
    -.Ql .\&
    -(dot character) at the beginning of an input line in some context other than
    -a macro invocation, precede the
    -.Ql .\&
    -(dot) with the
    -.Ql \e&
    -escape sequence which translates literally to a zero-width space, and is
    -never displayed in the output.
    -.Pp
    -In general,
    -.Tn GNU
    -.Xr troff 1
    -macros accept an unlimited number of arguments (contrary to other versions
    -of troff which can't handle more than nine arguments).
    -In limited cases, arguments may be continued or extended on the next
    -line (See
    -.Sx Extended Arguments
    -below).
    -Almost all macros handle quoted arguments (see
    -.Sx Passing Space Characters in an Argument
    -below).
    -.Pp
    -Most of the
    -.Nm \-mdoc
    -general text domain and manual domain macros are special in that their
    -argument lists are
    -.Em parsed
    -for callable macro names.
    -This means an argument on the argument list which matches a general text or
    -manual domain macro name (and which is defined to be callable) will be
    -executed or called when it is processed.
    -In this case the argument, although the name of a macro, is not preceded by
    -a
    -.Ql .\&
    -(dot).
    -This makes it possible to nest macros; for example the option macro,
    -.Ql .Op ,
    -may
    -.Em call
    -the flag and argument macros,
    -.Ql \&Fl
    -and
    -.Ql \&Ar ,
    -to specify an optional flag with an argument:
    -.
    -.Bl -tag -width ".Op Fl s Ar bytes" -offset indent
    -.It Op Fl s Ar bytes
    -is produced by
    -.Ql ".Op Fl s Ar bytes"
    -.El
    -.
    -.Pp
    -To prevent a string from being interpreted as a macro name, precede the
    -string with the escape sequence
    -.Ql \e& :
    -.
    -.Bl -tag -width ".Op \&Fl s \&Ar bytes" -offset indent
    -.It Op \&Fl s \&Ar bytes
    -is produced by
    -.Ql ".Op \e&Fl s \e&Ar bytes"
    -.El
    -.
    -.Pp
    -Here the strings
    -.Ql \&Fl
    -and
    -.Ql \&Ar
    -are not interpreted as macros.
    -Macros whose argument lists are parsed for callable arguments are referred
    -to as
    -.Em parsed
    -and macros which may be called from an argument list are referred to as
    -.Em callable
    -throughout this document.
    -This is a technical
    -.Em faux pas
    -as almost all of the macros in
    -.Nm \-mdoc
    -are parsed, but as it was cumbersome to constantly refer to macros as
    -being callable and being able to call other macros, the term parsed
    -has been used.
    -.
    -.Pp
    -In the following, we call an
    -.Nm \-mdoc
    -macro which starts a line (with a leading dot) a
    -.Em command
    -if this distinction is necessary.
    -.
    -.Ss "Passing Space Characters in an Argument"
    -.
    -Sometimes it is desirable to give as an argument a string containing one or
    -more blank space characters, say, to specify arguments to commands which
    -expect particular arrangement of items in the argument list.
    -Additionally, it makes
    -.Nm \-mdoc
    -working faster.
    -For example, the function command
    -.Ql .Fn
    -expects the first argument to be the name of a function and any remaining
    -arguments to be function parameters.
    -As
    -.Tn ANSI\~C
    -stipulates the declaration of function parameters in the parenthesized
    -parameter list, each parameter is guaranteed to be at minimum a two word
    -string.
    -For example,
    -.Fa int foo .
    -.Pp
    -There are two possible ways to pass an argument which contains
    -an embedded space.
    -One way of passing a string containing blank spaces is to use the hard or
    -unpaddable space character
    -.Ql \e\  ,
    -that is, a blank space preceded by the escape character
    -.Ql \e .
    -This method may be used with any macro but has the side effect of
    -interfering with the adjustment of text over the length of a line.
    -.Xr Troff
    -sees the hard space as if it were any other printable character and cannot
    -split the string into blank or newline separated pieces as one would expect.
    -This method is useful for strings which are not expected to overlap a line
    -boundary.
    -An alternative is to use
    -.Ql \e~ ,
    -a paddable (i.e.\& stretchable), unbreakable space (this is a
    -.Tn GNU
    -.Xr troff 1
    -extension).
    -The second method is to enclose the string with double quotes.
    -.Pp
    -For example:
    -.
    -.Bl -tag -width ".Fn fetch char\ *str" -offset indent
    -.It Fn fetch char\ *str
    -is created by
    -.Ql ".Fn fetch char\e *str"
    -.It Fn fetch "char *str"
    -can also be created by
    -.Ql ".Fn fetch \*[q]char *str\*[q]"
    -.El
    -.
    -.Pp
    -If the
    -.Ql \e
    -before the space in the first example
    -or double quotes in the second example
    -were omitted,
    -.Ql .Fn
    -would see three arguments, and the result would be:
    -.Pp
    -.Dl Fn fetch char *str
    -.Pp
    -.\" For an example of what happens when the parameter list overlaps a newline
    -.\" boundary, see the
    -.\" .Sx BUGS
    -.\" section.
    -.
    -.Ss "Trailing Blank Space Characters"
    -.
    -.Xr Troff
    -can be confused by blank space characters at the end of a line.
    -It is a wise preventive measure to globally remove all blank spaces
    -from
    -.Ao blank-space Ac Ns Ao end-of-line Ac
    -character sequences.
    -Should the need arise to use a blank character at the end of a line, it
    -may be forced with an unpaddable space and the
    -.Ql \e&
    -escape character.
    -For example,
    -.Ql string\e\ \e& .
    -.
    -.Ss "Escaping Special Characters"
    -.
    -Special characters like the newline character
    -.Ql \en
    -are handled by replacing the
    -.Ql \e
    -with
    -.Ql \ee
    -(e.g.\&
    -.Ql \een )
    -to preserve the backslash.
    -.
    -.Ss "Other Possible Pitfalls"
    -.
    -A warning is emitted when an empty input line is found outside of displays
    -(see below).
    -Use
    -.Ql .sp
    -instead.
    -(Well, it is even better to use
    -.Nm \-mdoc
    -macros to avoid the usage of low-level commands.)
    -.Pp
    -Leading spaces will cause a break and are output directly.
    -Avoid this behaviour if possible.
    -Similarly, do not use more than one space character between words in an
    -ordinary text line; contrary to other text formatters, they are
    -.Em not
    -replaced with a single space.
    -.Pp
    -You can't pass
    -.Ql \*[q]
    -directly as an argument.
    -Use
    -.Ql \e*[q]
    -(or
    -.Ql \e*q )
    -instead.
    -.Pp
    -By default,
    -.Xr troff 1
    -inserts two space characters after a punctuation mark closing a sentence;
    -characters like
    -.Ql \&)
    -or
    -.Ql \&'
    -are treated transparently, not influencing the sentence-ending behaviour.
    -To change this, insert
    -.Ql \e&
    -before or after the dot:
    -.
    -.Bd -literal -offset indent
    -The
    -\&.Ql .
    -character.
    -\&.Pp
    -The
    -\&.Ql \e&.
    -character.
    -\&.Pp
    -\&.No test .
    -test
    -\&.Pp
    -\&.No test.
    -test
    -.Ed
    -.Pp
    -.
    -gives
    -.
    -.Bd -filled -offset indent
    -The
    -.Ql .
    -character
    -.Pp
    -The
    -.Ql \&.
    -character.
    -.Pp
    -.No test .
    -test
    -.Pp
    -.No test.
    -test
    -.Ed
    -.Pp
    -.
    -As can be seen in the first and third line,
    -.Nm \-mdoc
    -handles punctuation characters specially in macro arguments.
    -This will be explained in section
    -.Sx General Syntax
    -below.
    -In the same way, you have to protect trailing full stops of abbreviations
    -with a trailing zero-width space:
    -.Ql e.g.\e& .
    -.Pp
    -A comment in the source file of a man page can be either started with
    -.Ql .\e"
    -on a single line,
    -.Ql \e"
    -after some input, or
    -.Ql \e#
    -anywhere (the latter is a
    -.Tn GNU
    -.Xr troff 1
    -extension); the rest of such a line is ignored.
    -.
    -.
    -.Sh "A MANUAL PAGE TEMPLATE"
    -.
    -The body of a man page is easily constructed from a basic template:
    -.
    -.Bd -literal -offset indent
    -\&.\e" The following commands are required for all man pages.
    -\&.Dd Month day, year
    -\&.Os [OPERATING_SYSTEM] [version/release]
    -\&.Dt DOCUMENT_TITLE [section number] [architecture/volume]
    -\&.Sh NAME
    -\&.Nm name
    -\&.Nd one line description of name
    -\&.\e" This next command is for sections 2 and 3 only.
    -\&.\e" .Sh LIBRARY
    -\&.Sh SYNOPSIS
    -\&.Sh DESCRIPTION
    -\&.\e" The following commands should be uncommented and
    -\&.\e" used where appropriate.
    -\&.\e" .Sh IMPLEMENTATION NOTES
    -\&.\e" This next command is for sections 2, 3 and 9 function
    -\&.\e" return values only.
    -\&.\e" .Sh RETURN VALUES
    -\&.\e" This next command is for sections 1, 6, 7 and 8 only.
    -\&.\e" .Sh ENVIRONMENT
    -\&.\e" .Sh FILES
    -\&.\e" .Sh EXAMPLES
    -\&.\e" This next command is for sections 1, 6, 7, 8 and 9 only
    -\&.\e"     (command return values (to shell) and
    -\&.\e"     fprintf/stderr type diagnostics).
    -\&.\e" .Sh DIAGNOSTICS
    -\&.\e" .Sh COMPATIBILITY
    -\&.\e" This next command is for sections 2, 3 and 9 error
    -\&.\e"     and signal handling only.
    -\&.\e" .Sh ERRORS
    -\&.\e" .Sh SEE ALSO
    -\&.\e" .Sh STANDARDS
    -\&.\e" .Sh HISTORY
    -\&.\e" .Sh AUTHORS
    -\&.\e" .Sh BUGS
    -.Ed
    -.Pp
    -.
    -The first items in the template are the commands
    -.Ql .Dd ,
    -.Ql .Os ,
    -and
    -.Ql .Dt ;
    -the document date, the operating system the man page or subject source is
    -developed or modified for, and the man page title (in
    -.Em upper case )
    -along with the section of the manual the page belongs in.
    -These commands identify the page and are discussed below in
    -.Sx TITLE MACROS .
    -.Pp
    -The remaining items in the template are section headers
    -.Pf ( Li .Sh ) ;
    -of which
    -.Sx NAME ,
    -.Sx SYNOPSIS ,
    -and
    -.Sx DESCRIPTION
    -are mandatory.
    -The headers are discussed in
    -.Sx "PAGE STRUCTURE DOMAIN" ,
    -after presentation of
    -.Sx "MANUAL DOMAIN" .
    -Several content macros are used to demonstrate page layout macros; reading
    -about content macros before page layout macros is recommended.
    -.
    -.
    -.Sh CONVENTIONS
    -.
    -In the description of all macros below, optional arguments are put into
    -brackets.
    -An ellipsis
    -.Pf ( Sq ... )
    -represents zero or more additional arguments.
    -Alternative values for a parameter are separated with
    -.Ql | .
    -If there are alternative values for a mandatory parameter, braces are used
    -(together with
    -.Ql | )
    -to enclose the value set.
    -Meta-variables are specified within angles.
    -.Pp
    -Example:
    -.
    -.Bl -tag -width 6n -offset indent
    -.It Li .Xx Xo
    -.Aq foo 
    -.Brq bar1 | bar2
    -.Op \-test1 Op \-test2 | \-test3
    -.No ...
    -.Xc
    -.El
    -.
    -.Pp
    -Except stated explicitly, all macros are parsed and callable.
    -.Pp
    -Note that a macro takes effect up to the next nested macro.
    -For example,
    -.Ql ".Ic foo Aq bar"
    -doesn't produce
    -.Sq Ic "foo "
    -but
    -.Sq Ic foo Aq bar .
    -Consequently, a warning message is emitted for most commands if the first
    -argument is a macro itself since it cancels the effect of the calling
    -command completely.
    -Another consequence is that quoting macros never insert literal quotes;
    -.Sq Ic "foo "
    -has been produced by
    -.Ql ".Ic \*[q]foo \*[q]" .
    -.Pp
    -Most macros have a default width value which can be used to specify a label
    -width
    -.Pf ( Fl width )
    -or offset
    -.Pf ( Fl offset )
    -for the
    -.Ql .Bl
    -and
    -.Ql .Bd
    -macros.
    -It is recommended not to use this rather obscure feature to avoid
    -dependencies on local modifications of the
    -.Nm \-mdoc
    -package.
    -.
    -.
    -.Sh "TITLE MACROS"
    -.
    -The title macros are part of the page structure domain but are presented
    -first and separately for someone who wishes to start writing a man page
    -yesterday.
    -Three header macros designate the document title or manual page title, the
    -operating system, and the date of authorship.
    -These macros are called once at the very beginning of the document and are
    -used to construct headers and footers only.
    -.
    -.Bl -tag -width 6n
    -.It Li .Dt Xo
    -.Op Aq document title
    -.Op Aq section number
    -.Op Aq volume
    -.Xc
    -The document title is the subject of the man page and must be in
    -.Tn CAPITALS
    -due to troff limitations.
    -If omitted,
    -.Sq Tn UNTITLED
    -is used.
    -The section number may be a number in the range
    -.No 1,\~ Ns ... Ns ,\~9
    -or
    -.Ql unass ,
    -.Ql draft ,
    -or
    -.Ql paper .
    -If it is specified, and no volume name is given, a default volume name is
    -used.
    -.
    -.Pp
    -Under
    -.Tn \*[operating-system] ,
    -the following sections are defined:
    -.Pp
    -.Bl -column LOCAL -offset indent -compact
    -.It Li 1   Ta "\*[volume-operating-system] \*[volume-ds-1]"
    -.It Li 2   Ta "\*[volume-operating-system] \*[volume-ds-2]"
    -.It Li 3   Ta "\*[volume-operating-system] \*[volume-ds-3]"
    -.It Li 4   Ta "\*[volume-operating-system] \*[volume-ds-4]"
    -.It Li 5   Ta "\*[volume-operating-system] \*[volume-ds-5]"
    -.It Li 6   Ta "\*[volume-operating-system] \*[volume-ds-6]"
    -.It Li 7   Ta "\*[volume-operating-system] \*[volume-ds-7]"
    -.It Li 8   Ta "\*[volume-operating-system] \*[volume-ds-8]"
    -.It Li 9   Ta "\*[volume-operating-system] \*[volume-ds-9]"
    -.El
    -.Pp
    -.
    -A volume name may be arbitrary or one of the following:
    -.
    -.Pp
    -.Bl -column LOCAL -offset indent -compact
    -.It Li USD   Ta "\*[volume-ds-USD]"
    -.It Li PS1   Ta "\*[volume-ds-PS1]"
    -.It Li AMD   Ta "\*[volume-ds-AMD]"
    -.It Li SMM   Ta "\*[volume-ds-SMM]"
    -.It Li URM   Ta "\*[volume-ds-URM]"
    -.It Li PRM   Ta "\*[volume-ds-PRM]"
    -.It Li KM    Ta "\*[volume-ds-KM]"
    -.It Li IND   Ta "\*[volume-ds-IND]"
    -.It Li LOCAL Ta "\*[volume-ds-LOCAL]"
    -.It Li CON   Ta "\*[volume-ds-CON]"
    -.El
    -.Pp
    -.
    -For compatibility,
    -.Ql MMI
    -can be used for
    -.Ql IND ,
    -and
    -.Ql LOC
    -for
    -.Ql LOCAL .
    -Values from the previous table will specify a new volume name.
    -If the third parameter is a keyword designating a computer architecture,
    -its value is prepended to the default volume name as specified by the
    -second parameter.
    -By default, the following architecture keywords are defined:
    -.
    -\# we use `No' to avoid hyphenation
    -.Bd -ragged -offset indent
    -.No alpha , acorn26 , acorn32 , algor , amd64 , amiga , arc , arm26 ,
    -.No arm32 , atari , bebox , cats , cesfic , cobalt , dreamcast , evbarm ,
    -.No evbmips , evbppc , evbsh3 , hp300 , hp700 , hpcmips , i386 , luna68k ,
    -.No m68k , mac68k , macppc , mips , mmeye , mvme68k , mvmeppc , netwinder ,
    -.No news68k , newsmips , next68k , ofppc , pc532 , pmax , pmppc , powerpc ,
    -.No prep , sandpoint , sgimips , sh3 , shark , sparc , sparc64 , sun3 ,
    -.No tahoe , vax , x68k , x86_64
    -.Ed
    -.Pp
    -.
    -If the section number is neither a numeric expression in the range 1 to\~9
    -nor one of the above described keywords, the third parameter is used
    -verbatim as the volume name.
    -.Pp
    -In the following examples, the left (which is identical to the right) and
    -the middle part of the manual page header strings are shown.
    -Note how
    -.Ql \e&
    -prevents the digit\~7 from being a valid numeric expression.
    -.
    -.Bd -ragged
    -.Bl -tag -width ".Li .Dt\ FOO\ 2\ i386" -compact -offset indent
    -.It Li ".Dt FOO 7"
    -.Ql FOO(7)
    -.Ql \*[volume-operating-system] \*[volume-ds-7]
    -.It Li ".Dt FOO 7 bar"
    -.Ql FOO(7)
    -.Ql \*[volume-operating-system] \*[volume-ds-7]
    -.It Li ".Dt FOO \e&7 bar"
    -.Ql FOO(7)
    -.Ql bar
    -.It Li ".Dt FOO 2 i386"
    -.Ql FOO(2)
    -.Ql \*[volume-operating-system]/\*[volume-as-i386] \*[volume-ds-2]
    -.It Li ".Dt FOO \*[q]\*[q] bar"
    -.Ql FOO
    -.Ql bar
    -.El
    -.Ed
    -.Pp
    -.
    -Local, OS-specific additions might be found in the file
    -.Pa mdoc.local ;
    -look for strings named
    -.Ql volume-ds-XXX
    -(for the former type) and
    -.Ql volume-as-XXX
    -(for the latter type);
    -.Ql XXX
    -then denotes the keyword to be used with the
    -.Ql .Dt
    -macro.
    -.Pp
    -This macro is neither callable nor parsed.
    -.
    -.It Li .Os Xo
    -.Op Aq operating system
    -.Op Aq release
    -.Xc
    -If the first parameter is empty,
    -the default
    -.Sq Tn "\*[operating-system]"
    -is used.
    -This may be overridden in the local configuration file,
    -.Pa mdoc.local .
    -In general, the name of the operating system should be the common acronym,
    -e.g.\&
    -.Tn BSD
    -or
    -.Tn ATT .
    -The release should be the standard release nomenclature for the system
    -specified.
    -In the following table, the possible second arguments for some predefined
    -operating systems are listed.
    -Similar to
    -.Ql .Dt ,
    -local additions might be defined in
    -.Pa mdoc.local ;
    -look for strings named
    -.Ql operating-system-XXX-YYY ,
    -where
    -.Ql XXX
    -is the acronym for the operating system and
    -.Ql YYY
    -the release ID.
    -.
    -.Bd -ragged -compact
    -.Bl -tag -width ".No FreeBSD" -offset indent
    -.It ATT
    -7th, 7, III, 3, V, V.2, V.3, V.4
    -.It BSD
    -3, 4, 4.1, 4.2, 4.3, 4.3t, 4.3T, 4.3r, 4.3R, 4.4
    -.It NetBSD
    -0.8, 0.8a, 0.9, 0.9a, 1.0, 1.0a, 1.1, 1.2, 1.2a, 1.2b, 1.2c, 1.2d, 1.2e,
    -1.3, 1.3a, 1.4, 1.4.1, 1.4.2, 1.4.3, 1.5, 1.5.1, 1.5.2, 1.5.3, 1.6, 1.6.1,
    -1.6.2, 2.0, 2.0.1, 2.0.2, 2.1
    -.It FreeBSD
    -1.0, 1.1, 1.1.5, 1.1.5.1, 2.0, 2.0.5, 2.1, 2.1.5, 2.1.6, 2.1.7, 2.2, 2.2.1,
    -2.2.2, 2.2.5, 2.2.6, 2.2.7, 2.2.8, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 4.0, 4.1,
    -4.1.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.6.2, 4.7, 4.8, 4.9, 4.10, 5.0, 5.1, 5.2,
    -5.2.1, 5.3
    -.El
    -.Ed
    -.Pp
    -.
    -For
    -.Tn ATT ,
    -an unknown second parameter will be replaced with the string
    -.Tn UNIX ;
    -for the other predefined acronyms it will be ignored and a warning message
    -emitted.
    -Unrecognized arguments are displayed as given in the page footer.
    -For instance, a typical footer might be:
    -.Pp
    -.Dl .Os BSD 4.3
    -.Pp
    -giving
    -.Ql 4.3\~Berkeley Distribution ,
    -or for a locally produced set
    -.Pp
    -.Dl .Os CS Department
    -.Pp
    -which will produce
    -.Ql CS\~Department .
    -.Pp
    -If the
    -.Ql .Os
    -macro is not present, the bottom left corner of the manual page will be
    -ugly.
    -.Pp
    -This macro is neither callable nor parsed.
    -.
    -.It Li .Dd Oo
    -.Aq month
    -.Aq day ,
    -.Aq year
    -.Oc
    -If
    -.Ql Dd
    -has no arguments,
    -.Ql Epoch
    -is used for the date string.
    -If it has exactly three arguments, they are concatenated, separated with
    -unbreakable space:
    -.Pp
    -.Dl .Dd January 25, 2001
    -.Pp
    -The month's name shall not be abbreviated.
    -.Pp
    -With any other number of arguments, the current date is used, ignoring
    -the parameters.
    -.Pp
    -This macro is neither callable nor parsed.
    -.El
    -.
    -.
    -.Sh "INTRODUCTION OF MANUAL AND GENERAL TEXT DOMAINS"
    -.
    -.Ss "What's in a Name" Ns ...
    -.
    -The manual domain macro names are derived from the day to day informal
    -language used to describe commands, subroutines and related files.
    -Slightly different variations of this language are used to describe the
    -three different aspects of writing a man page.
    -First, there is the description of
    -.Nm \-mdoc
    -macro command usage.
    -Second is the description of a
    -.Ux
    -command
    -.Em with
    -.Nm \-mdoc
    -macros, and third, the description of a command to a user in the verbal
    -sense; that is, discussion of a command in the text of a man page.
    -.Pp
    -In the first case,
    -.Xr troff 1
    -macros are themselves a type of command; the general syntax for a troff
    -command is:
    -.
    -.Bd -filled -offset indent
    -.Li ".Xx argument1 argument2" ...
    -.Ed
    -.Pp
    -.
    -.Ql .Xx
    -is a macro command, and anything following it are arguments to
    -be processed.
    -In the second case, the description of a
    -.Ux
    -command using the content macros is a bit more involved; a typical
    -.Sx SYNOPSIS
    -command line might be displayed as:
    -.
    -.Bd -filled -offset indent
    -.Nm filter
    -.Op Fl flag
    -.Ao Ar infile Ac Ao Ar outfile Ac
    -.Ed
    -.Pp
    -.
    -Here,
    -.Nm filter
    -is the command name and the
    -bracketed string
    -.Fl flag
    -is a
    -.Em flag
    -argument designated as optional by the option brackets.
    -In
    -.Nm \-mdoc
    -terms,
    -.Ao Ar infile Ac
    -and
    -.Ao Ar outfile Ac
    -are called
    -.Em meta arguments ;
    -in this example, the user has to replace the meta expressions given in angle
    -brackets with real file names.
    -Note that in this document meta arguments are used to describe
    -.Nm \-mdoc
    -commands; in most man pages, meta variables are not specifically written
    -with angle brackets.
    -The macros which formatted the above example:
    -.
    -.Bd -literal -offset indent
    -\&.Nm filter
    -\&.Op Fl flag
    -\&.Ao Ar infile Ac Ao Ar outfile Ac
    -.Ed
    -.Pp
    -.
    -In the third case, discussion of commands and command syntax includes both
    -examples above, but may add more detail.
    -The arguments
    -.Ao Ar infile Ac
    -and
    -.Ao Ar outfile Ac
    -from the example above might be referred to as
    -.Em operands
    -or
    -.Em file arguments .
    -Some command line argument lists are quite long:
    -.
    -.Bd -ragged
    -.Bl -tag -width ".Nm make" -offset indent -compact
    -.It Nm make
    -.Op Fl eiknqrstv
    -.Op Fl D Ar variable
    -.Op Fl d Ar flags
    -.Op Fl f Ar makefile
    -.Op Fl I Ar directory
    -.Op Fl j Ar max_jobs
    -.Op Ar variable Ns = Ns Ar value
    -.Bk
    -.Op Ar target ...
    -.Ek
    -.El
    -.Ed
    -.Pp
    -.
    -Here one might talk about the command
    -.Nm make
    -and qualify the argument,
    -.Ar makefile ,
    -as an argument to the flag,
    -.Fl f ,
    -or discuss the optional file operand
    -.Ar target .
    -In the verbal context, such detail can prevent confusion, however the
    -.Nm \-mdoc
    -package does not have a macro for an argument
    -.Em to
    -a flag.
    -Instead the
    -.Ql \&Ar
    -argument macro is used for an operand or file argument like
    -.Ar target
    -as well as an argument to a flag like
    -.Ar variable .
    -The make command line was produced from:
    -.
    -.Bd -literal -offset indent
    -\&.Nm make
    -\&.Op Fl eiknqrstv
    -\&.Op Fl D Ar variable
    -\&.Op Fl d Ar flags
    -\&.Op Fl f Ar makefile
    -\&.Op Fl I Ar directory
    -\&.Op Fl j Ar max_jobs
    -\&.Op Ar variable Ns = Ns Ar value
    -\&.Bk
    -\&.Op Ar target ...
    -\&.Ek
    -.Ed
    -.Pp
    -.
    -The
    -.Ql .Bk
    -and
    -.Ql .Ek
    -macros are explained in
    -.Sx Keeps .
    -.
    -.Ss "General Syntax"
    -.
    -The manual domain and general text domain macros share a similar syntax with
    -a few minor deviations; most notably,
    -.Ql .Ar ,
    -.Ql .Fl ,
    -.Ql .Nm ,
    -and
    -.Ql .Pa
    -differ only when called without arguments; and
    -.Ql .Fn
    -and
    -.Ql .Xr
    -impose an order on their argument lists.
    -All content macros are capable of recognizing and properly handling
    -punctuation, provided each punctuation character is separated by a leading
    -space.
    -If a command is given:
    -.Pp
    -.Dl \&.Ar sptr, ptr),
    -.Pp
    -The result is:
    -.Pp
    -.Dl Ar sptr, ptr),
    -.Pp
    -The punctuation is not recognized and all is output in the
    -font used by
    -.Ql .Ar .
    -If the punctuation is separated by a leading white space:
    -.Pp
    -.Dl \&.Ar "sptr , ptr ) ,"
    -.Pp
    -The result is:
    -.Pp
    -.Dl Ar sptr , ptr ) ,
    -.Pp
    -The punctuation is now recognized and output in the default font
    -distinguishing it from the argument strings.
    -To remove the special meaning from a punctuation character escape it with
    -.Ql \e& .
    -.Pp
    -The following punctuation characters are recognized by
    -.Nm \-mdoc :
    -.
    -.Bl -column -offset indent-two XXXXXX XXXXXX XXXXXX XXXXXX
    -.It Li .\& Ta Li ,\& Ta Li :\& Ta Li ;\& Ta Li (\&
    -.It Li )\& Ta Li [\& Ta Li ]\& Ta Li ?\& Ta Li !\&
    -.El
    -.Pp
    -.
    -.Xr Troff
    -is limited as a macro language, and has difficulty when presented with a
    -string containing a member of the mathematical, logical or quotation set:
    -.
    -.Bd -literal -offset indent-two
    -{+,\-,/,*,%,<,>,<=,>=,=,==,&,`,',"}
    -.Ed
    -.Pp
    -.
    -The problem is that
    -.Xr troff
    -may assume it is supposed to actually perform the operation or evaluation
    -suggested by the characters.
    -To prevent the accidental evaluation of these characters, escape them with
    -.Ql \e& .
    -Typical syntax is shown in the first content macro displayed below,
    -.Ql .Ad .
    -.
    -.
    -.Sh "MANUAL DOMAIN"
    -.
    -.Ss Addresses
    -.
    -The address macro identifies an address construct.
    -.Pp
    -.Dl Usage: .Ad Ao address Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Ad\ f1\ ,\ f2\ ,\ f3\ :" -compact -offset 15n
    -.It Li ".Ad addr1"
    -.Ad addr1
    -.It Li ".Ad addr1 ."
    -.Ad addr1 .
    -.It Li ".Ad addr1 , file2"
    -.Ad addr1 , file2
    -.It Li ".Ad f1 , f2 , f3 :"
    -.Ad f1 , f2 , f3 :
    -.It Li ".Ad addr ) ) ,"
    -.Ad addr ) ) ,
    -.El
    -.Pp
    -.
    -The default width is 12n.
    -.
    -.Ss "Author Name"
    -.
    -The
    -.Ql .An
    -macro is used to specify the name of the author of the item being
    -documented, or the name of the author of the actual manual page.
    -.Pp
    -.Dl Usage: .An Ao author name Ac ...
    -.Pp
    -.Bl -tag -width ".Li .An\ \*[q]Joe\ Author\*[q]\ )\ )\ ," -offset 15n
    -.It Li ".An \*[q]Joe Author\*[q]"
    -.An "Joe Author"
    -.It Li ".An \*[q]Joe Author\*[q] ,"
    -.An "Joe Author" ,
    -.It Li ".An \*[q]Joe Author\*[q] Aq nobody@FreeBSD.org"
    -.An "Joe Author" Aq nobody@FreeBSD.org
    -.It Li ".An \*[q]Joe Author\*[q] ) ) ,"
    -.An "Joe Author" ) ) ,
    -.El
    -.Pp
    -.
    -The default width is 12n.
    -.Pp
    -In the
    -.Sx AUTHORS
    -section, the
    -.Ql .An
    -command causes a line break allowing each new name to appear on its own
    -line.
    -If this is not desirable,
    -.
    -.Bd -literal -offset indent
    -\&.An -nosplit
    -.Ed
    -.Pp
    -.
    -call will turn this off.
    -To turn splitting back on, write
    -.
    -.Bd -literal -offset indent
    -\&.An -split
    -.Ed
    -.
    -.Ss "Arguments"
    -.
    -The
    -.Li .Ar
    -argument macro may be used whenever an argument is referenced.
    -If called without arguments, the
    -.Sq Ar
    -string is output.
    -.Pp
    -.Dl Usage: .Ar Oo Ao argument Ac Oc ...
    -.Pp
    -.Bl -tag -width ".Li .Ar\ file1\ file2" -compact -offset 15n
    -.It Li .Ar
    -.Ar
    -.It Li ".Ar file1"
    -.Ar file1
    -.It Li ".Ar file1 ."
    -.Ar file1 .
    -.It Li ".Ar file1 file2"
    -.Ar file1 file2
    -.It Li ".Ar f1 f2 f3 :"
    -.Ar f1 f2 f3 :
    -.It Li ".Ar file ) ) ,"
    -.Ar file ) ) ,
    -.El
    -.Pp
    -.
    -The default width is 12n.
    -.
    -.Ss "Configuration Declaration (Section Four Only)"
    -.
    -The
    -.Ql .Cd
    -macro is used to demonstrate a
    -.Xr config 8
    -declaration for a device interface in a section four manual.
    -.Pp
    -.Dl Usage: .Cd Ao argument Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Cd\ Xdevice\ le0\ at\ scode?X" -offset 15n
    -.It Li ".Cd \*[q]device le0 at scode?\*[q]"
    -.Cd "device le0 at scode?"
    -.El
    -.Pp
    -In the
    -.Sx SYNOPSIS
    -section a
    -.Ql .Cd
    -command causes a line break before and after its arguments are printed.
    -.Pp
    -.
    -The default width is 12n.
    -.
    -.Ss "Command Modifiers"
    -.
    -The command modifier is identical to the
    -.Ql .Fl
    -(flag) command with the exception that the
    -.Ql .Cm
    -macro does not assert a dash in front of every argument.
    -Traditionally flags are marked by the preceding dash, however, some commands
    -or subsets of commands do not use them.
    -Command modifiers may also be specified in conjunction with interactive
    -commands such as editor commands.
    -See
    -.Sx Flags .
    -.Pp
    -The default width is 10n.
    -.
    -.Ss "Defined Variables"
    -.
    -A variable (or constant) which is defined in an include file
    -is specified by the macro
    -.Ql .Dv .
    -.Pp
    -.Dl Usage: .Dv Ao defined variable Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Dv\ MAXHOSTNAMELEN" -compact -offset 15n
    -.It Li ".Dv MAXHOSTNAMELEN"
    -.Dv MAXHOSTNAMELEN
    -.It Li ".Dv TIOCGPGRP )"
    -.Dv TIOCGPGRP )
    -.El
    -.Pp
    -.
    -The default width is 12n.
    -.
    -.Ss Errno's
    -.
    -The
    -.Ql .Er
    -errno macro specifies the error return value for section 2, 3, and\~9 library
    -routines.
    -The second example below shows
    -.Ql .Er
    -used with the
    -.Ql .Bq
    -general text domain macro, as it would be used in a section two manual page.
    -.Pp
    -.Dl Usage: .Er Ao errno type Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Bq\ Er\ ENOTDIR" -compact -offset 15n
    -.It Li ".Er ENOENT"
    -.Er ENOENT
    -.It Li ".Er ENOENT ) ;"
    -.Er ENOENT ) ;
    -.It Li ".Bq Er ENOTDIR"
    -.Bq Er ENOTDIR
    -.El
    -.Pp
    -.
    -The default width is 17n.
    -.
    -.Ss "Environment Variables"
    -.
    -The
    -.Ql .Ev
    -macro specifies an environment variable.
    -.Pp
    -.Dl Usage: .Ev Ao argument Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Ev\ PRINTER\ )\ )\ ," -compact -offset 15n
    -.It Li ".Ev DISPLAY"
    -.Ev DISPLAY
    -.It Li ".Ev PATH ."
    -.Ev PATH .
    -.It Li ".Ev PRINTER ) ) ,"
    -.Ev PRINTER ) ) ,
    -.El
    -.Pp
    -.
    -The default width is 15n.
    -.
    -.Ss Flags
    -.
    -The
    -.Ql .Fl
    -macro handles command line flags.
    -It prepends a dash,
    -.Ql \- ,
    -to the flag.
    -For interactive command flags, which are not prepended with a dash, the
    -.Ql .Cm
    -(command modifier)
    -macro is identical, but without the dash.
    -.Pp
    -.Dl Usage: .Fl Ao argument Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Fl\ xyz\ )\ ," -compact -offset 15n
    -.It Li .Fl
    -.Fl
    -.It Li ".Fl cfv"
    -.Fl cfv
    -.It Li ".Fl cfv ."
    -.Fl cfv .
    -.It Li ".Cm cfv ."
    -.Cm cfv .
    -.It Li ".Fl s v t"
    -.Fl s v t
    -.It Li ".Fl \- ,"
    -.Fl \- ,
    -.It Li ".Fl xyz ) ,"
    -.Fl xyz ) ,
    -.It Li ".Fl |"
    -.Fl |
    -.El
    -.Pp
    -The
    -.Ql .Fl
    -macro without any arguments results in a dash representing stdin/stdout.
    -Note that giving
    -.Ql .Fl
    -a single dash will result in two dashes.
    -.Pp
    -The default width is 12n.
    -.
    -.Ss "Function Declarations"
    -.
    -The
    -.Ql .Fd
    -macro is used in the
    -.Sx SYNOPSIS
    -section with section two or three functions.
    -It is neither callable nor parsed.
    -.Pp
    -.Dl Usage: .Fd Ao argument Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Fd\ X#include\ X" -compact -offset 15n
    -.It Li ".Fd \*[q]#include \*[q]"
    -.Fd "#include "
    -.El
    -.Pp
    -In the
    -.Sx SYNOPSIS
    -section a
    -.Ql .Fd
    -command causes a line break if a function has already been presented and a
    -break has not occurred.
    -This leaves a nice vertical space in between the previous function call and
    -the declaration for the next function.
    -.
    -.Pp
    -The
    -.Ql .In
    -macro, while in the
    -.Sx SYNOPSIS
    -section, represents the
    -.Li #include
    -statement, and is the short form of the above example.
    -It specifies the C\~header file as being included in a C\~program.
    -It also causes a line break.
    -.Pp
    -While not in the
    -.Sx SYNOPSIS
    -section, it represents the header file enclosed in angle brackets.
    -.Pp
    -.Dl Usage: .In Ao header file Ac
    -.Pp
    -.Bl -tag -width ".Li .In\ stdio.h" -compact -offset 15n
    -.nr in-synopsis-section 1
    -.It Li ".In stdio.h"
    -.In stdio.h
    -.nr in-synopsis-section 0
    -.It Li ".In stdio.h"
    -.In stdio.h
    -.El
    -.
    -.Ss "Function Types"
    -.
    -This macro is intended for the
    -.Sx SYNOPSIS
    -section.
    -It may be used anywhere else in the man page without problems, but its main
    -purpose is to present the function type in kernel normal form for the
    -.Sx SYNOPSIS
    -of sections two and three (it causes a line break, allowing the function
    -name to appear on the next line).
    -.Pp
    -.Dl Usage: .Ft Ao type Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Ft\ struct\ stat" -compact -offset 15n
    -.It Li ".Ft struct stat"
    -.Ft struct stat
    -.El
    -.
    -.Ss "Functions (Library Routines)"
    -.
    -The 
    -.Ql .Fn
    -macro is modeled on
    -.Tn ANSI\~C
    -conventions.
    -.Pp
    -.Dl Usage: .Fn Ao function Ac Oo Ao parameter Ac Oc ...
    -.Pp
    -.Bl -tag -width ".Li .Fn\ align\ Xchar\ *ptrX\ ," -compact -offset 15n
    -.It Li ".Fn getchar"
    -.Fn getchar
    -.It Li ".Fn strlen ) ,"
    -.Fn strlen ) ,
    -.It Li ".Fn align \*[q]char *ptr\*[q] ,"
    -.Fn align "char *ptr" ,
    -.El
    -.Pp
    -Note that any call to another macro signals the end of the
    -.Ql .Fn
    -call (it will insert a closing parenthesis at that point).
    -.Pp
    -For functions with many parameters (which is rare), the macros
    -.Ql .Fo
    -(function open)
    -and
    -.Ql .Fc
    -(function close)
    -may be used with
    -.Ql .Fa
    -(function argument).
    -.Pp
    -Example:
    -.
    -.Bd -literal -offset indent
    -\&.Ft int
    -\&.Fo res_mkquery
    -\&.Fa "int op"
    -\&.Fa "char *dname"
    -\&.Fa "int class"
    -\&.Fa "int type"
    -\&.Fa "char *data"
    -\&.Fa "int datalen"
    -\&.Fa "struct rrec *newrr"
    -\&.Fa "char *buf"
    -\&.Fa "int buflen"
    -\&.Fc
    -.Ed
    -.Pp
    -.
    -Produces:
    -.
    -.Bd -ragged -offset indent
    -.Ft int
    -.Fo res_mkquery
    -.Fa "int op"
    -.Fa "char *dname"
    -.Fa "int class"
    -.Fa "int type"
    -.Fa "char *data"
    -.Fa "int datalen"
    -.Fa "struct rrec *newrr"
    -.Fa "char *buf"
    -.Fa "int buflen"
    -.Fc
    -.Ed
    -.Pp
    -.
    -In the
    -.Sx SYNOPSIS
    -section, the function will always begin at the beginning of line.
    -If there is more than one function presented in the
    -.Sx SYNOPSIS
    -section and a function type has not been given, a line break will occur,
    -leaving a nice vertical space between the current function name and the one
    -prior.
    -.Pp
    -The default width values of
    -.Ql .Fn
    -and
    -.Ql .Fo
    -are 12n and 16n, respectively.
    -.
    -.Ss "Function Arguments"
    -.
    -The
    -.Ql .Fa
    -macro is used to refer to function arguments (parameters) outside of the
    -.Sx SYNOPSIS
    -section of the manual or inside the
    -.Sx SYNOPSIS
    -section if the enclosure macros
    -.Ql .Fo
    -and
    -.Ql .Fc
    -instead of
    -.Ql .Fn
    -are used.
    -.Ql .Fa
    -may also be used to refer to structure members.
    -.Pp
    -.Dl Usage: .Fa Ao function argument Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Fa\ d_namlen\ )\ )\ ," -compact -offset 15n
    -.It Li ".Fa d_namlen ) ) ,"
    -.Fa d_namlen ) ) ,
    -.It Li ".Fa iov_len"
    -.Fa iov_len
    -.El
    -.Pp
    -.
    -The default width is 12n.
    -.
    -.Ss "Return Values"
    -.
    -The
    -.Ql .Rv
    -macro generates text for use in the
    -.Sx RETURN VALUES
    -section.
    -.Pp
    -.Dl Usage: .Rv Oo -std Oc Op Ao function Ac ...
    -.Pp
    -For example,
    -.Ql ".Rv -std atexit"
    -produces:
    -.
    -.Bd -ragged -offset -indent
    -\# a small hack to suppress a warning message
    -.ds section-old "\*[section]
    -.ds section 3
    -.Rv -std atexit
    -.ds section "\*[section-old]
    -.Ed
    -.Pp
    -.
    -The
    -.Fl std
    -option is valid only for manual page sections\~2 and\~3.
    -Currently, this macro does nothing if used without the
    -.Fl std
    -flag.
    -.
    -.Ss "Exit Status"
    -.
    -The
    -.Ql .Ex
    -macro generates text for use in the
    -.Sx DIAGNOSTICS
    -section.
    -.Pp
    -.Dl Usage: .Ex Oo -std Oc Op Ao utility Ac ...
    -.Pp
    -For example,
    -.Ql ".Ex -std cat"
    -produces:
    -.
    -.Bd -ragged -offset -indent
    -\# a small hack to suppress a warning message
    -.ds section-old "\*[section]
    -.ds section 1
    -.Ex -std cat
    -.ds section "\*[section-old]
    -.Ed
    -.Pp
    -.
    -The
    -.Fl std
    -option is valid only for manual page sections 1, 6 and\~8.
    -Currently, this macro does nothing if used without the
    -.Fl std
    -flag.
    -.
    -.Ss "Interactive Commands"
    -.
    -The
    -.Ql .Ic
    -macro designates an interactive or internal command.
    -.Pp
    -.Dl Usage: .Ic Ao argument Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Ic\ setenv\ ,\ unsetenv" -compact -offset 15n
    -.It Li ".Ic :wq"
    -.Ic :wq
    -.It Li ".Ic \*[q]do while {...}\*[q]"
    -.Ic "do while {...}"
    -.It Li ".Ic setenv , unsetenv"
    -.Ic setenv , unsetenv
    -.El
    -.Pp
    -.
    -The default width is 12n.
    -.
    -.Ss "Library Names"
    -.
    -The
    -.Ql .Lb
    -macro is used to specify the library where a particular function is compiled
    -in.
    -.Pp
    -.Dl Usage: .Lb Ao argument Ac ...
    -.Pp
    -Available arguments to
    -.Ql .Lb 
    -and their results are:
    -.
    -.Pp
    -.Bl -tag -width ".Li libossaudio" -compact -offset indent
    -.It Li libarm
    -.Lb libarm
    -.It Li libarm32
    -.Lb libarm32
    -.It Li libc
    -.Lb libc
    -.It Li libcdk
    -.Lb libcdk
    -.It Li libcompat
    -.Lb libcompat
    -.It Li libcrypt
    -.Lb libcrypt
    -.It Li libcurses
    -.Lb libcurses
    -.It Li libedit
    -.Lb libedit
    -.It Li libevent
    -.Lb libevent
    -.It Li libform
    -.Lb libform
    -.It Li libi386
    -.Lb libi386
    -.It Li libintl
    -.Lb libintl
    -.It Li libipsec
    -.Lb libipsec
    -.It Li libkvm
    -.Lb libkvm
    -.It Li libm
    -.Lb libm
    -.It Li libm68k
    -.Lb libm68k
    -.It Li libmagic
    -.Lb libmagic
    -.It Li libmenu
    -.Lb libmenu
    -.It Li libossaudio
    -.Lb libossaudio
    -.It Li libpam
    -.Lb libpam
    -.It Li libpcap
    -.Lb libpcap
    -.It Li libpci
    -.Lb libpci
    -.It Li libpmc
    -.Lb libpmc
    -.It Li libposix
    -.Lb libposix
    -.It Li libpthread
    -.Lb libpthread
    -.It Li libresolv
    -.Lb libresolv
    -.It Li librt
    -.Lb librt
    -.It Li libtermcap
    -.Lb libtermcap
    -.It Li libusbhid
    -.Lb libusbhid
    -.It Li libutil
    -.Lb libutil
    -.It Li libx86_64
    -.Lb libx86_64
    -.It Li libz
    -.Lb libz
    -.El
    -.Pp
    -.
    -Local, OS-specific additions might be found in the file
    -.Pa mdoc.local ;
    -look for strings named
    -.Ql str-Lb-XXX .
    -.Ql XXX
    -then denotes the keyword to be used with the
    -.Ql .Lb
    -macro.
    -.Pp
    -In the
    -.Sx LIBRARY
    -section an
    -.Ql .Lb
    -command causes a line break before and after its arguments are printed.
    -.Pp
    -.
    -.Ss Literals
    -.
    -The
    -.Ql .Li
    -literal macro may be used for special characters, variable constants, etc.\&
    --- anything which should be displayed as it would be typed.
    -.Pp
    -.Dl Usage: .Li Ao argument Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Li\ cntrl-D\ )\ ,"  -compact -offset 15n
    -.It Li ".Li \een"
    -.Li \en
    -.It Li ".Li M1 M2 M3 ;"
    -.Li M1 M2 M3 ;
    -.It Li ".Li cntrl-D ) ,"
    -.Li cntrl-D ) ,
    -.It Li ".Li 1024 ..."
    -.Li 1024 ...
    -.El
    -.Pp
    -.
    -The default width is 16n.
    -.
    -.Ss Names
    -.
    -The
    -.Ql .Nm
    -macro is used for the document title or subject name.
    -It has the peculiarity of remembering the first argument it was called with,
    -which should always be the subject name of the page.
    -When called without arguments,
    -.Ql .Nm
    -regurgitates this initial name for the sole purpose of making less work for
    -the author.
    -Note: A section two or three document function name is addressed with the
    -.Ql .Nm
    -in the
    -.Sx NAME
    -section, and with
    -.Ql .Fn
    -in the
    -.Sx SYNOPSIS
    -and remaining sections.
    -For interactive commands, such as the
    -.Ql while
    -command keyword in
    -.Xr csh 1 ,
    -the
    -.Ql .Ic
    -macro should be used.
    -While
    -.Ql .Ic
    -is nearly identical
    -to
    -.Ql .Nm ,
    -it can not recall the first argument it was invoked with.
    -.Pp
    -.Dl Usage: .Nm Oo Ao argument Ac Oc ...
    -.Pp
    -.Bl -tag -width ".Li .Nm\ groff_mdoc" -compact -offset 15n
    -.It Li ".Nm groff_mdoc"
    -.Nm groff_mdoc
    -.It Li ".Nm \e-mdoc"
    -.Nm \-mdoc
    -.It Li ".Nm foo ) ) ,"
    -.Nm foo ) ) ,
    -.It Li ".Nm :"
    -.Nm :
    -.El
    -.Pp
    -.
    -The default width is 10n.
    -.
    -.Ss Options
    -.
    -The
    -.Ql .Op
    -macro places option brackets around any remaining arguments on the
    -command line, and places any trailing punctuation outside the brackets.
    -The macros
    -.Ql .Oo
    -and
    -.Ql .Oc
    -(which produce an opening and a closing option bracket respectively) may be used
    -across one or more lines or to specify the exact position of the closing
    -parenthesis.
    -.Pp
    -.Dl Usage: .Op Oo Ao option Ac Oc ...
    -.Pp
    -.Bl -tag -width ".Li .Op\ Fl\ c\ Ar\ objfil\ Op\ Ar\ corfil\ ," -compact -offset 15n
    -.It Li .Op
    -.Op
    -.It Li ".Op Fl k"
    -.Op Fl k
    -.It Li ".Op Fl k ) ."
    -.Op Fl k ) .
    -.It Li ".Op Fl k Ar kookfile"
    -.Op Fl k Ar kookfile
    -.It Li ".Op Fl k Ar kookfile ,"
    -.Op Fl k Ar kookfile ,
    -.It Li ".Op Ar objfil Op Ar corfil"
    -.Op Ar objfil Op Ar corfil
    -.It Li ".Op Fl c Ar objfil Op Ar corfil ,"
    -.Op Fl c Ar objfil Op Ar corfil ,
    -.It Li ".Op word1 word2"
    -.Op word1 word2
    -.It Li ".Li .Op Oo Ao option Ac Oc ..."
    -.Li .Op Oo Ao option Ac Oc ...
    -.El
    -.Pp
    -Here a typical example of the
    -.Ql .Oo
    -and
    -.Ql .Oc
    -macros:
    -.
    -.Bd -literal -offset indent
    -\&.Oo
    -\&.Op Fl k Ar kilobytes
    -\&.Op Fl i Ar interval
    -\&.Op Fl c Ar count
    -\&.Oc
    -.Ed
    -.Pp
    -.
    -Produces:
    -.
    -.Bd -filled -offset indent
    -.Oo
    -.Op Fl k Ar kilobytes
    -.Op Fl i Ar interval
    -.Op Fl c Ar count
    -.Oc
    -.Ed
    -.Pp
    -.
    -The default width values of
    -.Ql .Op
    -and
    -.Ql .Oo
    -are 14n and 10n, respectively.
    -.
    -.Ss Pathnames
    -.
    -The
    -.Ql .Pa
    -macro formats path or file names.
    -If called without arguments, the
    -.Sq Pa
    -string is output, which represents the current user's home directory.
    -.Pp
    -.Dl Usage: .Pa Oo Ao pathname Ac Oc ...
    -.Pp
    -.Bl -tag -width ".Li .Pa\ /tmp/fooXXXXX\ )\ ." -compact -offset 15n
    -.It Li .Pa
    -.Pa
    -.It Li ".Pa /usr/share"
    -.Pa /usr/share
    -.It Li ".Pa /tmp/fooXXXXX ) ."
    -.Pa /tmp/fooXXXXX ) .
    -.El
    -.Pp
    -.
    -The default width is 32n.
    -.
    -.Ss Standards
    -.
    -The
    -.Ql .St
    -macro replaces standard abbreviations with their formal names.
    -.Pp
    -.Dl Usage: .St Ao abbreviation Ac ...
    -.Pp
    -Available pairs for
    -.Dq Abbreviation/Formal Name
    -are:
    -.
    -.Pp
    -.Tn ANSI/ISO C
    -.Pp
    -.Bl -tag -width ".Li -iso9945-1-90" -compact -offset indent
    -.It Li -ansiC
    -.St -ansiC
    -.It Li -ansiC-89
    -.St -ansiC-89
    -.It Li -isoC
    -.St -isoC
    -.It Li -isoC-90
    -.St -isoC-90
    -.It Li -isoC-99
    -.St -isoC-99
    -.El
    -.Pp
    -.
    -.Tn POSIX
    -Part 1: System API
    -.Pp
    -.Bl -tag -width ".Li -p1003.1g-2000" -compact -offset indent
    -.It Li -iso9945-1-90
    -.St -iso9945-1-90
    -.It Li -iso9945-1-96
    -.St -iso9945-1-96
    -.It Li -p1003.1
    -.St -p1003.1
    -.It Li -p1003.1-88
    -.St -p1003.1-88
    -.It Li -p1003.1-90
    -.St -p1003.1-90
    -.It Li -p1003.1-96
    -.St -p1003.1-96
    -.It Li -p1003.1b-93
    -.St -p1003.1b-93
    -.It Li -p1003.1c-95
    -.St -p1003.1c-95
    -.It Li -p1003.1g-2000
    -.St -p1003.1g-2000
    -.It Li -p1003.1i-95
    -.St -p1003.1i-95
    -.It Li -p1003.1-2001
    -.St -p1003.1-2001
    -.It Li -p1003.1-2004
    -.St -p1003.1-2004
    -.El
    -.Pp
    -.
    -.Tn POSIX
    -Part 2: Shell and Utilities
    -.Pp
    -.Bl -tag -width ".Li -p1003.1g-2000" -compact -offset indent
    -.It Li -iso9945-2-93
    -.St -iso9945-2-93
    -.It Li -p1003.2
    -.St -p1003.2
    -.It Li -p1003.2-92
    -.St -p1003.2-92
    -.It Li -p1003.2a-92
    -.St -p1003.2a-92
    -.El
    -.Pp
    -.
    -X/Open
    -.Bl -tag -width ".Li -p1003.1g-2000" -compact -offset indent
    -.Pp
    -.It Li -susv2
    -.St -susv2
    -.It Li -susv3
    -.St -susv3
    -.It Li -svid4
    -.St -svid4
    -.It Li -xbd5
    -.St -xbd5
    -.It Li -xcu5
    -.St -xcu5
    -.It Li -xcurses4.2
    -.St -xcurses4.2
    -.It Li -xns5
    -.St -xns5
    -.It Li -xns5.2
    -.St -xns5.2
    -.It Li -xpg3
    -.St -xpg3
    -.It Li -xpg4
    -.St -xpg4
    -.It Li -xpg4.2
    -.St -xpg4.2
    -.It Li -xsh5
    -.St -xsh5
    -.El
    -.Pp
    -.
    -Miscellaneous
    -.Pp
    -.Bl -tag -width ".Li -p1003.1g-2000" -compact -offset indent
    -.It Li -ieee754
    -.St -ieee754
    -.It Li -iso8802-3
    -.St -iso8802-3
    -.El
    -.
    -.Ss "Variable Types"
    -.
    -The
    -.Ql .Vt
    -macro may be used whenever a type is referenced.
    -In the
    -.Sx SYNOPSIS
    -section, it causes a line break (useful for old style variable declarations).
    -.Pp
    -.Dl Usage: .Vt Ao type Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Vt\ extern\ char\ *optarg\ ;" -compact -offset 15n
    -.It Li ".Vt extern char *optarg ;"
    -.Vt extern char *optarg ;
    -.It Li ".Vt FILE *"
    -.Vt FILE *
    -.El
    -.
    -.Ss Variables
    -.
    -Generic variable reference.
    -.Pp
    -.Dl Usage: .Va Ao variable Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Va\ Xchar\ sX\ ]\ )\ )\ ," -compact -offset 15n
    -.It Li ".Va count"
    -.Va count
    -.It Li ".Va settimer ,"
    -.Va settimer ,
    -.It Li ".Va \*[q]int *prt\*[q] ) :"
    -.Va "int *prt" ) :
    -.It Li ".Va \*[q]char s\*[q] ] ) ) ,"
    -.Va "char s" ] ) ) ,
    -.El
    -.Pp
    -.
    -The default width is 12n.
    -.
    -.Ss "Manual Page Cross References"
    -.
    -The
    -.Ql .Xr
    -macro expects the first argument to be a manual page name.
    -The optional second argument, if a string (defining the manual section), is
    -put into parentheses.
    -.Pp
    -.Dl Usage: .Xr Ao man page name Ac Oo Ao section Ac Oc ...
    -.Pp
    -.Bl -tag -width ".Li .Xr\ xinit\ 1x\ ;" -compact -offset 15n
    -.It Li ".Xr mdoc"
    -.Xr mdoc
    -.It Li ".Xr mdoc ,"
    -.Xr mdoc ,
    -.It Li ".Xr mdoc 7"
    -.Xr mdoc 7
    -.It Li ".Xr xinit 1x ;"
    -.Xr xinit 1x ;
    -.El
    -.Pp
    -.
    -The default width is 10n.
    -.
    -.
    -.Sh "GENERAL TEXT DOMAIN"
    -.
    -.Ss "AT&T Macro"
    -.
    -.Pp
    -.Dl Usage: .At Oo Ao version Ac Oc ...
    -.Pp
    -.Bl -tag -width ".Li .At\ v6\ ." -compact -offset 15n
    -.It Li .At
    -.At
    -.It Li ".At v6 ."
    -.At v6 .
    -.El
    -.Pp
    -The following values for
    -.Ao version Ac
    -are possible:
    -.Pp
    -.Dl 32v, v1, v2, v3, v4, v5, v6, v7, V, V.1, V.2, V.3, V.4
    -.
    -.Ss "BSD Macro"
    -.
    -.Pp
    -.Dl "Usage: .Bx" Bro -alpha | -beta | -devel Brc ...
    -.Dl "       .Bx" Oo Ao version Ac Oo Ao release Ac Oc Oc ...
    -.Pp
    -.Bl -tag -width ".Li .Bx\ -devel" -compact -offset 15n
    -.It Li .Bx
    -.Bx
    -.It Li ".Bx 4.3 ."
    -.Bx 4.3 .
    -.It Li ".Bx \-devel"
    -.Bx -devel
    -.El
    -.Pp
    -.Ao version Ac
    -will be prepended to the string
    -.Sq Bx .
    -The following values for
    -.Ao release Ac
    -are possible:
    -.Pp
    -.Dl Reno, reno, Tahoe, tahoe, Lite, lite, Lite2, lite2
    -.
    -.Ss "NetBSD Macro"
    -.
    -.Pp
    -.Dl Usage: .Nx Oo Ao version Ac Oc ...
    -.Pp
    -.Bl -tag -width ".Li .Nx\ 1.4\ ." -compact -offset 15n
    -.It Li .Nx
    -.Nx
    -.It Li ".Nx 1.4 ."
    -.Nx 1.4 .
    -.El
    -.Pp
    -For possible values of
    -.Ao version Ac
    -see the description of the
    -.Ql .Os
    -command above in section
    -.Sx "TITLE MACROS" .
    -.
    -.Ss "FreeBSD Macro"
    -.
    -.Pp
    -.Dl Usage: .Fx Oo Ao version Ac Oc ...
    -.Pp
    -.Bl -tag -width ".Li .Fx\ 2.2\ ." -compact -offset 15n
    -.It Li .Fx
    -.Fx
    -.It Li ".Fx 2.2 ."
    -.Fx 2.2 .
    -.El
    -.Pp
    -For possible values of
    -.Ao version Ac
    -see the description of the
    -.Ql .Os
    -command above in section
    -.Sx "TITLE MACROS" .
    -.
    -.Ss "OpenBSD Macro"
    -.
    -.Pp
    -.Dl Usage: .Ox Oo Ao version Ac Oc ...
    -.Pp
    -.Bl -tag -width ".Li .Ox\ 1.0" -compact -offset 15n
    -.It Li ".Ox 1.0"
    -.Ox 1.0
    -.El
    -.
    -.Ss "BSD/OS Macro"
    -.
    -.Pp
    -.Dl Usage: .Bsx Oo Ao version Ac Oc ...
    -.Pp
    -.Bl -tag -width ".Li .Bsx\ 1.0" -compact -offset 15n
    -.It Li ".Bsx 1.0"
    -.Bsx 1.0
    -.El
    -.
    -.Ss "UNIX Macro"
    -.
    -.Pp
    -.Dl Usage: .Ux ...
    -.Pp
    -.Bl -tag -width ".Li .Ux" -compact -offset 15n
    -.It Li .Ux
    -.Ux
    -.El
    -.
    -.Ss "Emphasis Macro"
    -.
    -Text may be stressed or emphasized with the
    -.Ql .Em
    -macro.
    -The usual font for emphasis is italic.
    -.Pp
    -.Dl Usage: .Em Ao argument Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Em\ vide\ infra\ )\ )\ ," -compact -offset 15n
    -.It Li ".Em does not"
    -.Em does not
    -.It Li ".Em exceed 1024 ."
    -.Em exceed 1024 .
    -.It Li ".Em vide infra ) ) ,"
    -.Em vide infra ) ) ,
    -.El
    -.Pp
    -.
    -The default width is 10n.
    -.
    -.Ss "Font Mode"
    -.
    -The
    -.Ql .Bf
    -font mode must be ended with the
    -.Ql .Ef
    -macro (the latter takes no arguments).
    -Font modes may be nested within other font modes.
    -.Pp
    -.Ql .Bf
    -has the following syntax:
    -.Pp
    -.Dl .Bf Ao font mode Ac
    -.Pp
    -.Ao font mode Ac
    -must be one of the following three types:
    -.Pp
    -.Bl -tag -width ".Sy \&Sy | Fl symbolic" -compact -offset indent
    -.It Sy \&Em | Fl emphasis
    -Same as if the 
    -.Ql .Em
    -macro was used for the entire block of text.
    -.It Sy \&Li | Fl literal
    -Same as if the
    -.Ql .Li
    -macro was used for the entire block of text.
    -.It Sy \&Sy | Fl symbolic
    -Same as if the
    -.Ql .Sy
    -macro was used for the entire block of text.
    -.El
    -.Pp
    -Both macros are neither callable nor parsed.
    -.
    -.Ss "Enclosure and Quoting Macros"
    -.
    -The concept of enclosure is similar to quoting.
    -The object being to enclose one or more strings between a pair of characters
    -like quotes or parentheses.
    -The terms quoting and enclosure are used interchangeably throughout this
    -document.
    -Most of the one-line enclosure macros end in small letter
    -.Ql q
    -to give a hint of quoting, but there are a few irregularities.
    -For each enclosure macro there is also a pair of open and close macros which
    -end in small letters
    -.Ql o
    -and
    -.Ql c
    -respectively.
    -.Pp
    -\# XXX
    -.if t \
    -.  ne 10
    -.
    -.Bd -filled -offset 4n
    -.Bl -column "quote" "close" "open" "Angle Bracket Enclosure" "`string' or string"
    -.Em Quote Ta Em Open Ta Em Close Ta Em Function               Ta Em Result
    -.No .Aq   Ta    .Ao  Ta    .Ac   Ta "Angle Bracket Enclosure" Ta Ao string Ac
    -.No .Bq   Ta    .Bo  Ta    .Bc   Ta "Bracket Enclosure"       Ta Bo string Bc
    -.No .Brq  Ta    .Bro Ta    .Brc  Ta "Brace Enclosure"         Ta Bro string Brc
    -.No .Dq   Ta    .Do  Ta    .Dc   Ta "Double Quote"            Ta Do string Dc
    -.No .Eq   Ta    .Eo  Ta    .Ec   Ta "Enclose String (in XX)"  Ta XXstringXX
    -.No .Pq   Ta    .Po  Ta    .Pc   Ta "Parenthesis Enclosure"   Ta Po string Pc
    -.No .Ql   Ta         Ta          Ta "Quoted Literal"          Ta So string Sc or Li string
    -.No .Qq   Ta    .Qo  Ta    .Qc   Ta "Straight Double Quote"   Ta Qo string Qc
    -.No .Sq   Ta    .So  Ta    .Sc   Ta "Single Quote"            Ta So string Sc
    -.El
    -.Ed
    -.Pp
    -All macros ending with
    -.Sq q
    -and
    -.Sq o
    -have a default width value of 12n.
    -.
    -.Bl -tag -width ".Li .Ec , .Eo"
    -.It Li .Eo , .Ec
    -These macros expect the first argument to be the opening and closing strings
    -respectively.
    -.It Li .Es , .En
    -Due to the nine-argument limit in the original troff program two other
    -macros have been implemented which are now rather obsolete:
    -.Ql .Es
    -takes the first and second parameter as the left and right enclosure string,
    -which are then used to enclose the arguments of
    -.Ql .En .
    -The default width value is 12n for both macros.
    -.It Li .Eq
    -The first and second arguments of this macro are the opening and
    -closing strings respectively, followed by the arguments to be enclosed.
    -.It Li .Ql
    -The quoted literal macro behaves differently in troff and nroff mode.
    -If formatted with
    -.Xr nroff ,
    -a quoted literal is always quoted.
    -If formatted with troff, an item is only quoted if the width of the item is
    -less than three constant width characters.
    -This is to make short strings more visible where the font change to literal
    -(constant width) is less noticeable.
    -.Pp
    -The default width is 16n.
    -.It Li .Pf
    -The prefix macro suppresses the whitespace between its first and second
    -argument:
    -.
    -.Bl -tag -width ".Li .Pf\ (\ Fa\ name2" -offset indent
    -.It Li ".Pf ( Fa name2"
    -.Pf ( Fa name2
    -.El
    -.Pp
    -.
    -The default width is 12n.
    -.Pp
    -The
    -.Ql .Ns
    -macro (see below) performs the analogous suffix function.
    -.It Li .Ap
    -The
    -.Ql .Ap
    -macro inserts an apostrophe and exits any special text modes, continuing in
    -.Ql .No
    -mode.
    -.El
    -.Pp
    -.
    -Examples of quoting:
    -.
    -.Pp
    -.Bl -tag -width ".Li .Bq\ Em\ Greek\ ,\ French\ ." -compact -offset indent
    -.It Li .Aq
    -.Aq
    -.It Li ".Aq Pa ctype.h ) ,"
    -.Aq Pa ctype.h ) ,
    -.It Li .Bq
    -.Bq
    -.It Li ".Bq Em Greek , French ."
    -.Bq Em Greek , French .
    -.It Li .Dq
    -.Dq
    -.It Li ".Dq string abc ."
    -.Dq string abc .
    -.It Li ".Dq \'^[A-Z]\'"
    -.Dq \'^[A-Z]\'
    -.It Li ".Ql man mdoc"
    -.Ql man mdoc
    -.It Li .Qq
    -.Qq
    -.It Li ".Qq string ) ,"
    -.Qq string ) ,
    -.It Li ".Qq string Ns ),"
    -.Qq string Ns ),
    -.It Li .Sq
    -.Sq
    -.It Li ".Sq string"
    -.Sq string
    -.It Li ".Em or Ap ing"
    -.Em or Ap ing
    -.El
    -.Pp
    -.
    -For a good example of nested enclosure macros, see the
    -.Ql .Op
    -option macro.
    -It was created from the same underlying enclosure macros as those presented
    -in the list above.
    -The
    -.Ql .Xo
    -and
    -.Ql .Xc
    -extended argument list macros are discussed below.
    -.
    -.Ss "No-Op or Normal Text Macro"
    -.
    -The
    -.Ql .No
    -macro can be used in a macro command line for parameters which should
    -.Em not
    -be formatted.
    -Be careful to add
    -.Ql \e&
    -to the word
    -.Ql \&No
    -if you really want that English word (and not the macro) as a parameter.
    -.Pp
    -.Dl Usage: .No Ao argument Ac ...
    -.Pp
    -.Bl -tag -width ".Li .No\ test\ Ta\ with\ Ta\ tabs" -compact -offset 15n
    -.It Li ".No test Ta with Ta tabs"
    -.No test Ta with Ta tabs
    -.El
    -.Pp
    -.
    -The default width is 12n.
    -.
    -.Ss "No-Space Macro"
    -.
    -The
    -.Ql .Ns
    -macro suppresses insertion of a space between the current position and its
    -first parameter.
    -For example, it is useful for old style argument lists where there is no
    -space between the flag and argument:
    -.Pp
    -.Dl "Usage:" ... Ao argument Ac \&Ns Oo Ao argument Ac Oc ...
    -.Dl "      " .Ns Ao argument Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Op\ Fl\ I\ Ns\ Ar\ directory" -compact -offset 15n
    -.It Li ".Op Fl I Ns Ar directory"
    -.Op Fl I Ns Ar directory
    -.El
    -.Pp
    -Note: The
    -.Ql .Ns
    -macro always invokes the
    -.Ql .No
    -macro after eliminating the space unless another macro name follows it.
    -If used as a command (i.e., the second form above in the
    -.Sq Usage
    -line),
    -.Ql .Ns
    -is identical to
    -.Ql .No .
    -.
    -.Ss "Section Cross References"
    -.
    -The
    -.Ql .Sx
    -macro designates a reference to a section header within the same document.
    -.Pp
    -.Dl Usage: .Sx Ao section reference Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Sx\ FILES" -offset 15n
    -.It Li ".Sx FILES"
    -.Sx FILES
    -.El
    -.Pp
    -.
    -The default width is 16n.
    -.
    -.Ss Symbolics
    -.
    -The symbolic emphasis macro is generally a boldface macro in either the
    -symbolic sense or the traditional English usage.
    -.Pp
    -.Dl Usage: .Sy Ao symbol Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Sy\ Important\ Notice" -compact -offset 15n
    -.It Li ".Sy Important Notice"
    -.Sy Important Notice
    -.El
    -.Pp
    -.
    -The default width is 6n.
    -.
    -.Ss Mathematical Symbols
    -.
    -Use this macro for mathematical symbols and similar things.
    -.Pp
    -.Dl Usage: .Ms Ao math symbol Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Ms\ sigma" -compact -offset 15n
    -.It Li ".Ms sigma"
    -.Ms sigma
    -.El
    -.Pp
    -.
    -The default width is 6n.
    -.
    -.Ss "References and Citations"
    -.
    -The following macros make a modest attempt to handle references.
    -At best, the macros make it convenient to manually drop in a subset of
    -.Xr refer 1
    -style references.
    -.Pp
    -.Bl -tag -width 6n -offset indent -compact
    -.It Li .Rs
    -Reference start (does not take arguments).
    -Causes a line break in the
    -.Sx "SEE ALSO"
    -section and begins collection of reference information until the reference
    -end macro is read.
    -.It Li .Re
    -Reference end (does not take arguments).
    -The reference is printed.
    -.It Li .%A
    -Reference author name; one name per invocation.
    -.It Li .%B
    -Book title.
    -.It Li .%C
    -City/place (not implemented yet).
    -.It Li .%D
    -Date.
    -.It Li .%I
    -Issuer/publisher name.
    -.It Li .%J
    -Journal name.
    -.It Li .%N
    -Issue number.
    -.It Li .%O
    -Optional information.
    -.It Li .%P
    -Page number.
    -.It Li .%Q
    -Corporate or foreign author.
    -.It Li .%R
    -Report name.
    -.It Li .%T
    -Title of article.
    -.It Li .%V
    -Volume.
    -.El
    -.Pp
    -Macros beginning with
    -.Ql %
    -are not callable but accept multiple arguments in the usual way.
    -Only the
    -.Ql .Tn
    -macro is handled properly as a parameter; other macros will cause strange
    -output.
    -.Ql .%B
    -and
    -.Ql .%T
    -can be used outside of the
    -.Ql .Rs/.Re
    -environment.
    -.Pp
    -Example:
    -.
    -.Bd -literal -offset indent
    -\&.Rs
    -\&.%A "Matthew Bar"
    -\&.%A "John Foo"
    -\&.%T "Implementation Notes on foobar(1)"
    -\&.%R "Technical Report ABC-DE-12-345"
    -\&.%Q "Drofnats College, Nowhere"
    -\&.%D "April 1991"
    -\&.Re
    -.Ed
    -.Pp
    -produces
    -.
    -.Bd -ragged -offset indent
    -.Rs
    -.%A "Matthew Bar"
    -.%A "John Foo"
    -.%T "Implementation Notes on foobar(1)"
    -.%R "Technical Report ABC-DE-12-345"
    -.%Q "Drofnats College, Nowhere"
    -.%D "April 1991"
    -.Re
    -.Ed
    -.
    -.Ss "Trade Names (or Acronyms and Type Names)"
    -.
    -The trade name macro prints its arguments in a smaller font.
    -Its intended use is to imitate a small caps fonts for uppercase acronyms.
    -.Pp
    -.Dl Usage: .Tn Ao symbol Ac ...
    -.Pp
    -.Bl -tag -width ".Li .Tn\ ASCII" -compact -offset 15n
    -.It Li ".Tn DEC"
    -.Tn DEC
    -.It Li ".Tn ASCII"
    -.Tn ASCII
    -.El
    -.Pp
    -.
    -The default width is 10n.
    -.
    -.Ss "Extended Arguments"
    -.
    -The
    -.Li .Xo
    -and
    -.Li .Xc
    -macros allow one to extend an argument list on a macro boundary for the
    -.Ql .It
    -macro (see below).
    -Note that
    -.Li .Xo
    -and
    -.Li .Xc
    -are implemented similarly to all other macros opening and closing an
    -enclosure (without inserting characters, of course).
    -This means that the following is true for those macros also.
    -.Pp
    -Here is an example of
    -.Ql .Xo
    -using the space mode macro to turn spacing off:
    -.
    -.Bd -literal -offset indent
    -\&.Sm off
    -\&.It Xo Sy I Ar operation
    -\&.No \een Ar count No \een
    -\&.Xc
    -\&.Sm on
    -.Ed
    -.Pp
    -.
    -produces
    -.
    -.Bd -filled -offset indent
    -.Bl -tag -compact
    -.Sm off
    -.It Xo Sy I Ar operation
    -.No \en Ar count No \en
    -.Xc
    -.Sm on
    -.El
    -.Ed
    -.Pp
    -.
    -Another one:
    -.
    -.Bd -literal -offset indent
    -\&.Sm off
    -\&.It Cm S No / Ar old_pattern Xo
    -\&.No / Ar new_pattern
    -\&.No / Op Cm g
    -\&.Xc
    -\&.Sm on
    -.Ed
    -.Pp
    -.
    -produces
    -.
    -.Bd -filled -offset indent
    -.Bl -tag -compact
    -.Sm off
    -.It Cm S No \&/ Ar old_pattern Xo
    -.No \&/ Ar new_pattern
    -.No \&/ Op Cm g
    -.Xc
    -.Sm on
    -.El
    -.Ed
    -.Pp
    -.
    -Another example of
    -.Ql .Xo
    -and enclosure macros: Test the value of a variable.
    -.
    -.Bd -literal -offset indent
    -\&.It Xo
    -\&.Ic .ifndef
    -\&.Oo \e&! Oc Ns Ar variable Oo
    -\&.Ar operator variable ...
    -\&.Oc Xc
    -.Ed
    -.Pp
    -.
    -produces
    -.
    -.Bd -filled -offset indent
    -.Bl -tag -width flag -compact
    -.It Xo
    -.Ic .ifndef
    -.Oo \&! Oc Ns Ar variable Oo
    -.Ar operator variable ...
    -.Oc Xc
    -.El
    -.Ed
    -.Pp
    -.
    -.
    -.Sh "PAGE STRUCTURE DOMAIN"
    -.
    -.Ss "Section Headers"
    -.
    -The following
    -.Ql .Sh
    -section header macros are required in every man page.
    -The remaining section headers are recommended at the discretion of the
    -author writing the manual page.
    -The
    -.Ql .Sh
    -macro is parsed but not generally callable.
    -It can be used as an argument in a call to
    -.Ql .Sh
    -only; it then reactivates the default font for
    -.Ql .Sh .
    -.Pp
    -The default width is 8n.
    -.
    -.Bl -tag -width ".Li .Sh\ RETURN\ VALUES"
    -.It Li ".Sh NAME"
    -The
    -.Ql ".Sh NAME"
    -macro is mandatory.
    -If not specified, headers, footers and page layout defaults will not be set
    -and things will be rather unpleasant.
    -The
    -.Sx NAME
    -section consists of at least three items.
    -The first is the
    -.Ql .Nm
    -name macro naming the subject of the man page.
    -The second is the name description macro,
    -.Ql .Nd ,
    -which separates the subject name from the third item, which is the
    -description.
    -The description should be the most terse and lucid possible, as the space
    -available is small.
    -.Pp
    -.Ql .Nd
    -first prints
    -.Ql - ,
    -then all its arguments.
    -.
    -.It Li ".Sh LIBRARY"
    -This section is for section two and three function calls.
    -It should consist of a single
    -.Ql .Lb
    -macro call;
    -see
    -.Sx "Library Names" .
    -.
    -.It Li ".Sh SYNOPSIS"
    -The
    -.Sx SYNOPSIS
    -section describes the typical usage of the subject of a man page.
    -The macros required are either
    -.Ql .Nm ,
    -.Ql .Cd ,
    -or
    -.Ql .Fn
    -(and possibly
    -.Ql .Fo ,
    -.Ql .Fc ,
    -.Ql .Fd ,
    -and
    -.Ql .Ft ) .
    -The function name macro
    -.Ql .Fn
    -is required for manual page sections\~2 and\~3; the command and general name
    -macro
    -.Ql .Nm
    -is required for sections 1, 5, 6, 7, and\~8.
    -Section\~4 manuals require a
    -.Ql .Nm ,
    -.Ql .Fd
    -or a
    -.Ql .Cd
    -configuration device usage macro.
    -Several other macros may be necessary to produce the synopsis line as shown
    -below:
    -.
    -.Bd -filled -offset indent
    -.Nm cat
    -.Op Fl benstuv
    -.Op Fl
    -.Ar
    -.Ed
    -.Pp
    -.
    -The following macros were used:
    -.Pp
    -.Dl ".Nm cat"
    -.Dl ".Op Fl benstuv"
    -.Dl ".Op Fl"
    -.Dl .Ar
    -.
    -.It Li ".Sh DESCRIPTION"
    -In most cases the first text in the
    -.Sx DESCRIPTION
    -section is a brief paragraph on the command, function or file, followed by a
    -lexical list of options and respective explanations.
    -To create such a list, the
    -.Ql .Bl
    -(begin list),
    -.Ql .It
    -(list item) and
    -.Ql .El
    -(end list)
    -macros are used (see
    -.Sx Lists and Columns
    -below).
    -.
    -.It Li ".Sh IMPLEMENTATION NOTES"
    -Implementation specific information should be placed here.
    -.
    -.It Li ".Sh RETURN VALUES"
    -Sections 2, 3 and\~9 function return values should go here.
    -The
    -.Ql .Rv
    -macro may be used to generate text for use in the
    -.Sx RETURN VALUES
    -section for most section 2 and 3 library functions;
    -see
    -.Sx "Return Values" .
    -.El
    -.Pp
    -.
    -The following
    -.Ql .Sh
    -section headers are part of the preferred manual page layout and must be
    -used appropriately to maintain consistency.
    -They are listed in the order in which they would be used.
    -.
    -.Bl -tag -width ".Li .Sh\ COMPATIBILITY"
    -.It Li ".Sh ENVIRONMENT"
    -The
    -.Sx ENVIRONMENT
    -section should reveal any related environment variables and clues to their
    -behavior and/or usage.
    -.
    -.It Li ".Sh FILES"
    -Files which are used or created by the man page subject should be listed via
    -the
    -.Ql .Pa
    -macro in the
    -.Sx FILES
    -section.
    -.
    -.It Li ".Sh EXAMPLES"
    -There are several ways to create examples.
    -See the
    -.Sx EXAMPLES
    -section below for details.
    -.
    -.It Li ".Sh DIAGNOSTICS"
    -Diagnostic messages from a command should be placed in this section.
    -The
    -.Ql .Ex
    -macro may be used to generate text for use in the
    -.Sx DIAGNOSTICS
    -section for most section 1, 6 and\~8 commands;
    -see
    -.Sx "Exit Status" .
    -.
    -.It Li ".Sh COMPATIBILITY"
    -Known compatibility issues (e.g. deprecated options or parameters)
    -should be listed here.
    -.
    -.It Li ".Sh ERRORS"
    -Specific error handling, especially from library functions (man page
    -sections 2, 3, and\~9) should go here.
    -The
    -.Ql .Er
    -macro is used to specify an error (errno).
    -.
    -.It Li ".Sh SEE ALSO"
    -References to other material on the man page topic and cross references to
    -other relevant man pages should be placed in the
    -.Sx "SEE ALSO"
    -section.
    -Cross references are specified using the
    -.Ql .Xr
    -macro.
    -Currently
    -.Xr refer 1
    -style references are not accommodated.
    -.Pp
    -It is recommended that the cross references are sorted on the section
    -number, then alphabetically on the names within a section, and placed
    -in that order and comma separated.
    -Example:
    -.Pp
    -.Xr ls 1 ,
    -.Xr ps 1 ,
    -.Xr group 5 ,
    -.Xr passwd 5
    -.
    -.It Li ".Sh STANDARDS"
    -If the command, library function or file adheres to a specific
    -implementation such as
    -.St -p1003.2
    -or
    -.St -ansiC
    -this should be noted here.
    -If the command does not adhere to any standard, its history should be noted
    -in the
    -.Sx HISTORY
    -section.
    -.
    -.It Li ".Sh HISTORY"
    -Any command which does not adhere to any specific standards should be
    -outlined historically in this section.
    -.
    -.It Li ".Sh AUTHORS"
    -Credits should be placed here.
    -Use the
    -.Ql .An
    -macro for names and the
    -.Ql .Aq
    -macro for e-mail addresses within optional contact information.
    -Explicitly indicate whether the person authored the initial manual page
    -or the software or whatever the person is being credited for.
    -.It Li ".Sh BUGS"
    -Blatant problems with the topic go here.
    -.El
    -.Pp
    -.
    -User-specified
    -.Ql .Sh
    -sections may be added; for example, this section was set with:
    -.
    -.Bd -literal -offset 15n
    -\&.Sh "PAGE STRUCTURE DOMAIN"
    -.Ed
    -.
    -.Ss "Subsection Headers"
    -.
    -Subsection headers have exactly the same syntax as section headers:
    -.Ql .Ss
    -is parsed but not generally callable.
    -It can be used as an argument in a call to
    -.Ql .Ss
    -only; it then reactivates the default font for
    -.Ql .Ss .
    -.Pp
    -The default width is 8n.
    -.
    -.Ss "Paragraphs and Line Spacing"
    -.
    -.Bl -tag -width ".Li .Pp"
    -.It Li .Pp
    -The 
    -.Ql .Pp
    -paragraph command may be used to specify a line space where necessary.
    -The macro is not necessary after a
    -.Ql .Sh
    -or
    -.Ql .Ss
    -macro or before a
    -.Ql .Bl
    -or
    -.Ql .Bd
    -macro (which both assert a vertical distance unless the
    -.Fl compact
    -flag is given).
    -.Pp
    -The macro is neither callable nor parsed and takes no arguments; an
    -alternative name is
    -.Ql .Lp .
    -.El
    -.
    -.\" XXX
    -.
    -.\" This worked with version one, need to redo for version three
    -.\" .Pp
    -.\" .Ds I
    -.\" .Cw (ax+bx+c) \ is\ produced\ by\ \&
    -.\" .\".Cw (ax+bx+c) \&.Va_by_) \&_and_\& \&[?/]m_b1_e1_f1[?/]\&
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Cx\ (
    -.\" .Cx
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Va ax
    -.\" .Cx
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Sy \+
    -.\" .Cx
    -.\" .Cl Cx \&(\&
    -.\" .Va ax
    -.\" .Cx +
    -.\" .Va by
    -.\" .Cx +
    -.\" .Va c )
    -.\" .Cx \t
    -.\" .Em is produced by
    -.\" .Cx \t
    -.\" .Li \&.Va by
    -.\" .Cx
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Sy \+
    -.\" .Cx
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Va c )
    -.\" .Cx
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Cx
    -.\" .Cx
    -.\" .Cw
    -.\" .De
    -.\" .Pp
    -.\" This example shows the same equation in a different format.
    -.\" The spaces
    -.\" around the
    -.\" .Li \&+
    -.\" signs were forced with
    -.\" .Li \e :
    -.\" .Pp
    -.\" .Ds I
    -.\" .Cw (ax\ +\ bx\ +\ c) \ is\ produced\ by\ \&
    -.\" .\".Cw (ax+bx+c) \&.Va_by_) \&_and_\& \&[?/]m_b1_e1_f1[?/]\&
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Cx\ (
    -.\" .Cx
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Va a
    -.\" .Cx
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Sy x
    -.\" .Cx
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Cx \e\ +\e\ \e&
    -.\" .Cx
    -.\" .Cl Cx \&(\&
    -.\" .Va a
    -.\" .Sy x
    -.\" .Cx \ +\ \&
    -.\" .Va b
    -.\" .Sy y
    -.\" .Cx \ +\ \&
    -.\" .Va c )
    -.\" .Cx \t
    -.\" .Em is produced by
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Va b
    -.\" .Cx
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Sy y
    -.\" .Cx
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Cx \e\ +\e\ \e&
    -.\" .Cx
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Va c )
    -.\" .Cx
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Cx
    -.\" .Cx
    -.\" .Cw
    -.\" .De
    -.\" .Pp
    -.\" The incantation below was
    -.\" lifted from the
    -.\" .Xr adb 1
    -.\" manual page:
    -.\" .Pp
    -.\" .Ds I
    -.\" .Cw \&[?/]m_b1_e1_f1[?/]\& is\ produced\ by
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Cx Op Sy ?/
    -.\" .Cx
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Nm m
    -.\" .Cx
    -.\" .Cl Cx Op Sy ?/
    -.\" .Nm m
    -.\" .Ad \ b1 e1 f1
    -.\" .Op Sy ?/
    -.\" .Cx \t
    -.\" .Em is produced by
    -.\" .Cx \t
    -.\" .Li \&.Ar \e\ b1 e1 f1
    -.\" .Cx
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Op Sy ?/
    -.\" .Cx
    -.\" .Cl Cx \t\t
    -.\" .Li \&.Cx
    -.\" .Cx
    -.\" .Cw
    -.\" .De
    -.\" .Pp
    -.
    -.Ss Keeps
    -.
    -The only keep that is implemented at this time is for words.
    -The macros are
    -.Ql .Bk
    -(begin keep)
    -and
    -.Ql .Ek
    -(end keep).
    -The only option that
    -.Ql .Bk
    -accepts currently is
    -.Fl words
    -(this is also the default if no option is given) which is useful for
    -preventing line breaks in the middle of options.
    -In the example for the make command line arguments (see
    -.Sx What's in a Name ) ,
    -the keep prevented
    -.Xr nroff
    -from placing up the flag and the argument on separate lines.
    -.Pp
    -Both macros are neither callable nor parsed.
    -.Pp
    -More work needs to be done with the keep macros; specifically, a
    -.Fl line
    -option should be added.
    -.
    -.Ss "Examples and Displays"
    -.
    -There are seven types of displays.
    -.Pp
    -.Bl -tag -width ".Li .D1"
    -.It Li .D1
    -(This is D-one.)
    -Display one line of indented text.
    -This macro is parsed but not callable.
    -.Pp
    -.D1 Fl ldghfstru
    -.Pp
    -The above was produced by:
    -.Li ".D1 Fl ldghfstru" .
    -.
    -.It Li .Dl
    -(This is D-ell.)
    -Display one line of indented
    -.Em literal
    -text.
    -The
    -.Ql .Dl
    -example macro has been used throughout this file.
    -It allows the indentation (display) of one line of text.
    -Its default font is set to constant width (literal).
    -.Ql .Dl
    -is parsed but not callable.
    -.Pp
    -.Dl % ls -ldg /usr/bin
    -.Pp
    -The above was produced by:
    -.Li ".Dl % ls -ldg /usr/bin" .
    -.
    -.It Li .Bd
    -Begin display.
    -The
    -.Ql .Bd
    -display must be ended with the
    -.Ql .Ed
    -macro.
    -It has the following syntax:
    -.Pp
    -.Bd -ragged -compact
    -.Bl -tag -width ".Li .Bd" -offset indent
    -.It Li .Bd Xo
    -.Bro \-literal | \-filled | \-unfilled | \-ragged | \-centered Brc
    -.Oo \-offset Ao string Ac Oc Oo \-file Ao file name Ac Oc Oo \-compact Oc Xc
    -.El
    -.Ed
    -.Pp
    -.
    -.Bl -tag -width ".Fl file Ao Ar file name Ac " -compact
    -.It Fl ragged
    -Fill, but do not adjust the right margin (only left-justify).
    -.It Fl centered
    -Center lines between the current left and right margin.
    -Note that each single line is centered.
    -.It Fl unfilled
    -Do not fill; display a block of text as typed, using line breaks as
    -specified by the user.
    -This can produce overlong lines without warning messages.
    -.It Fl filled
    -Display a filled block.
    -The block of text is formatted (i.e., the text is justified on both the left
    -and right side).
    -.It Fl literal
    -Display block with literal font (usually fixed-width).
    -Useful for source code or simple tabbed or spaced text.
    -.It Fl file Ao Ar file name Ac
    -The file whose name follows the
    -.Fl file
    -flag is read and displayed before any data enclosed with
    -.Ql .Bd
    -and
    -.Ql .Ed ,
    -using the selected display type.
    -Any
    -.Xr troff/ Ns Nm \-mdoc
    -commands in the file will be processed.
    -.It Fl offset Ao Ar string Ac
    -If
    -.Fl offset
    -is specified with one of the following strings, the string is interpreted to
    -indicate the level of indentation for the forthcoming block of text:
    -.
    -.Pp
    -.Bl -tag -width ".Ar indent-two" -compact
    -.It Ar left
    -Align block on the current left margin; this is the default mode of
    -.Ql .Bd .
    -.It Ar center
    -Supposedly center the block.
    -At this time unfortunately, the block merely gets left aligned about an
    -imaginary center margin.
    -.It Ar indent
    -Indent by one default indent value or tab.
    -The default indent value is also used for the
    -.Ql .D1
    -and 
    -.Ql .Dl
    -macros, so one is guaranteed the two types of displays will line up.
    -The indentation value is normally set to\~6n or about two thirds of an inch
    -(six constant width characters).
    -.It Ar indent-two
    -Indent two times the default indent value.
    -.It Ar right
    -This
    -.Em left
    -aligns the block about two inches from the right side of the page.
    -This macro needs work and perhaps may never do the right thing within
    -.Xr troff .
    -.El
    -.Pp
    -.
    -If
    -.Ao string Ac
    -is a valid numeric expression instead
    -.Pf ( Em with a scale indicator other than
    -.Sq Em u ) ,
    -use that value for indentation.
    -The most useful scale indicators are
    -.Sq m
    -and
    -.Sq n ,
    -specifying the so-called
    -.Em \&Em
    -and
    -.Em "En square" .
    -This is approximately the width of the letters
    -.Sq m
    -and
    -.Sq n
    -respectively
    -of the current font (for nroff output, both scale indicators give the same
    -values).
    -If
    -.Ao string Ac
    -isn't a numeric expression, it is tested whether it is an
    -.Nm \-mdoc
    -macro name, and the default offset value associated with this macro is used.
    -Finally, if all tests fail,
    -the width of
    -.Ao string Ac
    -(typeset with a fixed-width font) is taken as the offset.
    -.It Fl compact
    -Suppress insertion of vertical space before begin of display.
    -.El
    -.
    -.It Li .Ed
    -End display (takes no arguments).
    -.El
    -.
    -.Ss "Lists and Columns"
    -.
    -There are several types of lists which may be initiated with the
    -.Ql .Bl
    -begin-list macro.
    -Items within the list are specified with the
    -.Ql .It
    -item macro, and each list must end with the
    -.Ql .El
    -macro.
    -Lists may be nested within themselves and within displays.
    -The use of columns inside of lists or lists inside of columns is unproven.
    -.Pp
    -In addition, several list attributes may be specified such as the width of a
    -tag, the list offset, and compactness (blank lines between items allowed or
    -disallowed).
    -Most of this document has been formatted with a tag style list
    -.Pf ( Fl tag ) .
    -.Pp
    -It has the following syntax forms:
    -.
    -.Pp
    -.Bd -ragged -compact
    -.Bl -tag -width ".Li .Bl" -offset indent -compact
    -.It Li .Bl Xo
    -.Bro \-hang | \-ohang | \-tag | \-diag | \-inset Brc
    -.Oo \-width Ao string Ac Oc
    -.Oo \-offset Ao string Ac Oc Oo \-compact Oc Xc
    -.It Li .Bl Xo
    -.No \-column Oo \-offset Ao string Ac Oc
    -.Ao string1 Ac Ao string2 Ac ... Xc
    -.It Li .Bl Xo
    -.Bro \-item | \-enum Oo \-nested Oc | \-bullet | \-hyphen | \-dash Brc
    -.Oo \-offset Ao string Ac Oc Oo \-compact Oc Xc
    -.El
    -.Ed
    -.Pp
    -.
    -And now a detailed description of the list types.
    -.
    -.Pp
    -.Bl -tag -width ".Fl column" -compact
    -.It Fl bullet
    -A bullet list.
    -.
    -.Bd -literal -offset indent
    -\&.Bl -bullet -offset indent -compact
    -\&.It
    -Bullet one goes here.
    -\&.It
    -Bullet two here.
    -\&.El
    -.Ed
    -.Pp
    -.
    -Produces:
    -.
    -.Pp
    -.Bl -bullet -offset indent -compact
    -.It
    -Bullet one goes here.
    -.It
    -Bullet two here.
    -.El
    -.Pp
    -.
    -.It Fl dash No ( or Fl hyphen )
    -A dash list.
    -.
    -.Bd -literal -offset indent
    -\&.Bl -dash -offset indent -compact
    -\&.It
    -Dash one goes here.
    -\&.It
    -Dash two here.
    -\&.El
    -.Ed
    -.Pp
    -.
    -Produces:
    -.
    -.Pp
    -.Bl -dash -offset indent -compact
    -.It
    -Dash one goes here.
    -.It
    -Dash two here.
    -.El
    -.Pp
    -.
    -.It Fl enum
    -An enumerated list.
    -.
    -.Bd -literal -offset indent
    -\&.Bl -enum -offset indent -compact
    -\&.It
    -Item one goes here.
    -\&.It
    -And item two here.
    -\&.El
    -.Ed
    -.Pp
    -.
    -The result:
    -.
    -.Pp
    -.Bl -enum -offset indent -compact
    -.It
    -Item one goes here.
    -.It
    -And item two here.
    -.El
    -.Pp
    -.
    -If you want to nest enumerated lists, use the
    -.Fl nested
    -flag (starting with the second-level list):
    -.
    -.Bd -literal -offset indent
    -\&.Bl -enum -offset indent -compact
    -\&.It
    -Item one goes here
    -\&.Bl -enum -nested -compact
    -\&.It
    -Item two goes here.
    -\&.It
    -And item three here.
    -\&.El
    -\&.It
    -And item four here.
    -\&.El
    -.Ed
    -.Pp
    -.
    -Result:
    -.
    -.Pp
    -.Bl -enum -offset indent -compact
    -.It
    -Item one goes here.
    -.Bl -enum -nested -compact
    -.It
    -Item two goes here.
    -.It
    -And item three here.
    -.El
    -.It
    -And item four here.
    -.El
    -.Pp
    -.
    -.It Fl item
    -A list of type
    -.Fl item
    -without list markers.
    -.
    -.Bd -literal -offset indent
    -\&.Bl -item -offset indent
    -\&.It
    -Item one goes here.
    -Item one goes here.
    -Item one goes here.
    -\&.It
    -Item two here.
    -Item two here.
    -Item two here.
    -\&.El
    -.Ed
    -.Pp
    -.
    -Produces:
    -.
    -.Pp
    -.Bl -item -offset indent
    -.It
    -Item one goes here.
    -Item one goes here.
    -Item one goes here.
    -.It
    -Item two here.
    -Item two here.
    -Item two here.
    -.El
    -.Pp
    -.
    -.It Fl tag
    -A list with tags.
    -Use
    -.Fl width
    -to specify the tag width.
    -.
    -.Pp
    -.Bl -tag -width "PPID" -compact -offset indent
    -.It SL
    -sleep time of the process (seconds blocked)
    -.It PAGEIN
    -number of disk
    -.Tn I/O Ns 's
    -resulting from references by the process
    -to pages not loaded in core.
    -.It UID
    -numerical user-id of process owner
    -.It PPID
    -numerical id of parent of process priority
    -(non-positive when in non-interruptible wait)
    -.El
    -.Pp
    -.
    -The raw text:
    -.
    -.Bd -literal -offset indent
    -\&.Bl -tag -width "PPID" -compact -offset indent
    -\&.It SL
    -sleep time of the process (seconds blocked)
    -\&.It PAGEIN
    -number of disk
    -\&.Tn I/O Ns 's
    -resulting from references by the process
    -to pages not loaded in core.
    -\&.It UID
    -numerical user-id of process owner
    -\&.It PPID
    -numerical id of parent of process priority
    -(non-positive when in non-interruptible wait)
    -\&.El
    -.Ed
    -.Pp
    -.
    -.It Fl diag
    -Diag lists create section four diagnostic lists and are similar to inset
    -lists except callable macros are ignored.
    -The
    -.Fl width
    -flag is not meaningful in this context.
    -.Pp
    -Example:
    -.
    -.Bd -literal -offset indent
    -\&.Bl -diag
    -\&.It You can't use Sy here.
    -The message says all.
    -\&.El
    -.Ed
    -.Pp
    -.
    -produces
    -.
    -.Bl -diag
    -.It You can't use Sy here.
    -The message says all.
    -.El
    -.Pp
    -.
    -.It Fl hang
    -A list with hanging tags.
    -.
    -.Bl -hang -offset indent
    -.It Em Hanged
    -labels appear similar to tagged lists when the
    -label is smaller than the label width.
    -.It Em Longer hanged list labels
    -blend into the paragraph unlike
    -tagged paragraph labels.
    -.El
    -.Pp
    -And the unformatted text which created it:
    -.
    -.Bd -literal -offset indent
    -\&.Bl -hang -offset indent
    -\&.It Em Hanged
    -labels appear similar to tagged lists when the
    -label is smaller than the label width.
    -\&.It Em Longer hanged list labels
    -blend into the paragraph unlike
    -tagged paragraph labels.
    -\&.El
    -.Ed
    -.Pp
    -.
    -.It Fl ohang
    -Lists with overhanging tags do not use indentation for the items; tags are
    -written to a separate line.
    -.Pp
    -.Bl -ohang -offset indent
    -.It Sy SL
    -sleep time of the process (seconds blocked)
    -.It Sy PAGEIN
    -number of disk
    -.Tn I/O Ns 's
    -resulting from references by the process
    -to pages not loaded in core.
    -.It Sy UID
    -numerical user-id of process owner
    -.It Sy PPID
    -numerical id of parent of process priority
    -(non-positive when in non-interruptible wait)
    -.El
    -.Pp
    -.
    -The raw text:
    -.
    -.Bd -literal -offset indent
    -\&.Bl -ohang -offset indent
    -\&.It Sy SL
    -sleep time of the process (seconds blocked)
    -\&.It Sy PAGEIN
    -number of disk
    -\&.Tn I/O Ns 's
    -resulting from references by the process
    -to pages not loaded in core.
    -\&.It Sy UID
    -numerical user-id of process owner
    -\&.It Sy PPID
    -numerical id of parent of process priority
    -(non-positive when in non-interruptible wait)
    -\&.El
    -.Ed
    -.Pp
    -.
    -.It Fl inset
    -Here is an example of inset labels:
    -.Bl -inset -offset indent
    -.It Em Tag
    -The tagged list (also called a tagged paragraph)
    -is the most common type of list used in the
    -Berkeley manuals.
    -Use a
    -.Fl width
    -attribute as described below.
    -.It Em Diag
    -Diag lists create section four diagnostic lists
    -and are similar to inset lists except callable
    -macros are ignored.
    -.It Em Hang
    -Hanged labels are a matter of taste.
    -.It Em Ohang
    -Overhanging labels are nice when space is constrained.
    -.It Em Inset
    -Inset labels are useful for controlling blocks of
    -paragraphs and are valuable for converting
    -.Nm \-mdoc
    -manuals to other formats.
    -.El
    -.Pp
    -Here is the source text which produced the above example:
    -.
    -.Bd -literal -offset indent
    -\&.Bl -inset -offset indent
    -\&.It Em Tag
    -The tagged list (also called a tagged paragraph)
    -is the most common type of list used in the
    -Berkeley manuals.
    -\&.It Em Diag
    -Diag lists create section four diagnostic lists
    -and are similar to inset lists except callable
    -macros are ignored.
    -\&.It Em Hang
    -Hanged labels are a matter of taste.
    -\&.It Em Ohang
    -Overhanging labels are nice when space is constrained.
    -\&.It Em Inset
    -Inset labels are useful for controlling blocks of
    -paragraphs and are valuable for converting
    -\&.Nm \-mdoc
    -manuals to other formats.
    -\&.El
    -.Ed
    -.Pp
    -.
    -.It Fl column
    -This list type generates multiple columns.
    -The number of columns and the width of each column is determined by the
    -arguments to the
    -.Fl column
    -list,
    -.Aq Ar string1 ,
    -.Aq Ar string2 ,
    -etc.
    -If
    -.Aq Ar stringN
    -starts with a
    -.Ql .\&
    -(dot) immediately followed by a valid
    -.Nm \-mdoc
    -macro name, interpret
    -.Aq Ar stringN
    -and use the width of the result.
    -Otherwise, the width of
    -.Aq Ar stringN
    -(typeset with a fixed-width font) is taken as the
    -.Ar N Ns th
    -column width.
    -.Pp
    -Each
    -.Ql .It
    -argument is parsed to make a row, each column within the row is a separate
    -argument separated by a tab or the
    -.Ql .Ta
    -macro.
    -.Pp
    -The table:
    -.
    -.Bl -column -offset indent ".Sy String" ".Sy Nroff" ".Sy Troff"
    -.It Sy String Ta Sy Nroff Ta Sy Troff
    -.It Li <= Ta <= Ta \*(<=
    -.It Li >= Ta >= Ta \*(>=
    -.El
    -.Pp
    -.
    -was produced by:
    -.
    -.Bd -literal
    -\&.Bl -column -offset indent ".Sy String" ".Sy Nroff" ".Sy Troff"
    -\&.It Sy String Ta Sy Nroff Ta Sy Troff
    -\&.It Li <= Ta <= Ta \e*(<=
    -\&.It Li >= Ta >= Ta \e*(>=
    -\&.El
    -.Ed
    -.El
    -.Pp
    -.
    -Other keywords:
    -.
    -.Bl -tag -width ".Fl indent Ao Ar string Ac"
    -.It Fl width Ao Ar string Ac
    -If
    -.Aq Ar string
    -starts with a
    -.Ql .\&
    -(dot) immediately followed by a valid
    -.Nm \-mdoc
    -macro name, interpret
    -.Aq Ar string
    -and use the width of the result.
    -Almost all lists in this document use this option.
    -.Pp
    -Example:
    -.
    -.Bd -literal -offset indent
    -\&.Bl -tag -width ".Fl test Ao Ar string Ac"
    -\&.It Fl test Ao Ar string Ac
    -This is a longer sentence to show how the
    -\&.Fl width
    -flag works in combination with a tag list.
    -\&.El
    -.Ed
    -.Pp
    -.
    -gives:
    -.
    -.Bl -tag -width ".Fl test Ao Ar string Ac"
    -.It Fl test Ao Ar string Ac
    -This is a longer sentence to show how the
    -.Fl width
    -flag works in combination with a tag list.
    -.El
    -.Pp
    -.
    -(Note that the current state of
    -.Nm \-mdoc
    -is saved before
    -.Aq Ar string
    -is interpreted; afterwards, all variables are restored again.
    -However, boxes (used for enclosures) can't be saved in
    -.Tn GNU
    -.Xr troff 1 ;
    -as a consequence, arguments must always be
    -.Em balanced
    -to avoid nasty errors.
    -For example, do not write
    -.Ql ".Ao Ar string"
    -but
    -.Ql ".Ao Ar string Xc"
    -instead if you really need only an opening angle bracket.)
    -.Pp
    -Otherwise, if
    -.Aq Ar string
    -is a valid numeric expression
    -.Em ( with a scale indicator other than
    -.Sq Em u ) ,
    -use that value for indentation.
    -The most useful scale indicators are
    -.Sq m
    -and
    -.Sq n ,
    -specifying the so-called
    -.Em \&Em
    -and
    -.Em "En square" .
    -This is approximately the width of the letters
    -.Sq m
    -and
    -.Sq n
    -respectively
    -of the current font (for nroff output, both scale indicators give the same
    -values).
    -If
    -.Aq Ar string
    -isn't a numeric expression, it is tested whether it is an
    -.Nm \-mdoc
    -macro name, and the default width value associated with this macro is used.
    -Finally, if all tests fail,
    -the width of
    -.Aq Ar string
    -(typeset with a fixed-width font) is taken as the width.
    -.Pp
    -If a width is not specified for the tag list type, every time
    -.Ql .It
    -is invoked, an attempt is made to determine an appropriate width.
    -If the first argument to
    -.Ql .It
    -is a callable macro, the default width for that macro will be used;
    -otherwise, the default width of
    -.Ql .No
    -is used.
    -.It Fl offset Ao Ar string Ac
    -If
    -.Aq Ar string
    -is
    -.Ar indent ,
    -a default indent value (normally set to\~6n, similar to the value used in
    -.Ql .Dl
    -or
    -.Ql .Bd )
    -is used.
    -If
    -.Aq Ar string
    -is a valid numeric expression instead
    -.Pf ( Em with a scale indicator other than
    -.Sq Em u ) ,
    -use that value for indentation.
    -The most useful scale indicators are
    -.Sq m
    -and
    -.Sq n ,
    -specifying the so-called
    -.Em \&Em
    -and
    -.Em "En square" .
    -This is approximately the width of the letters
    -.Sq m
    -and
    -.Sq n
    -respectively
    -of the current font (for nroff output, both scale indicators give the same
    -values).
    -If
    -.Aq Ar string
    -isn't a numeric expression, it is tested whether it is an
    -.Nm \-mdoc
    -macro name, and the default offset value associated with this macro is used.
    -Finally, if all tests fail,
    -the width of
    -.Aq Ar string
    -(typeset with a fixed-width font) is taken as the offset.
    -.It Fl compact
    -Suppress insertion of vertical space before the list and between list items.
    -.El
    -.
    -.
    -.Sh "MISCELLANEOUS MACROS"
    -.
    -Here a list of the remaining macros which do not fit well into one of the
    -above sections.
    -We couldn't find real examples for the following macros:
    -.Ql .Me
    -and
    -.Ql .Ot .
    -They are documented here for completeness \- if you know how to use them
    -properly please send a mail to
    -.Mt bug-groff@gnu.org
    -(including an example).
    -.
    -.Bl -tag -width ".Li .Bt"
    -.It Li .Bt
    -prints
    -.
    -.Bd -ragged -offset indent
    -.Bt
    -.Ed
    -.Pp
    -It is neither callable nor parsed and takes no arguments.
    -.
    -.It Li .Fr
    -.Pp
    -.Dl Usage: .Fr Ao function return value Ac ...
    -.Pp
    -Don't use this macro.
    -It allows a break right before the return value (usually a single digit)
    -which is bad typographical behaviour.
    -Use
    -.Ql \e~
    -to tie the return value to the previous word.
    -.
    -.It Li .Hf
    -Use this macro to include a (header) file literally.
    -It first prints
    -.Ql File:
    -followed by the file name, then the contents of
    -.Ao file Ac .
    -.Pp
    -.Dl Usage: .Hf Ao file Ac
    -.Pp
    -It is neither callable nor parsed.
    -.
    -.It Li .Lk
    -To be written.
    -.
    -.It Li .Me
    -Exact usage unknown.
    -The documentation in the
    -.Nm \-mdoc
    -source file describes it as a macro for
    -.Dq "menu entries" .
    -.Pp
    -Its default width is 6n.
    -.
    -.It Li .Mt
    -To be written.
    -.
    -.It Li .Ot
    -Exact usage unknown.
    -The documentation in the
    -.Nm \-mdoc
    -source file describes it as
    -.Dq old function type (fortran) .
    -.
    -.It Li .Sm
    -Activate (toggle) space mode.
    -.Pp
    -.Dl Usage: .Sm Oo on | off Oc ...
    -.Pp
    -If space mode is off, no spaces between macro arguments are inserted.
    -If called without a parameter (or if the next parameter is neither
    -.Ql on
    -nor
    -.Ql off ,
    -.Ql .Sm
    -toggles space mode.
    -.
    -.It Li .Ud
    -prints
    -.
    -.Bd -ragged -offset indent
    -.Ud
    -.Ed
    -.Pp
    -It is neither callable nor parsed and takes no arguments.
    -.El
    -.
    -.
    -.Sh "PREDEFINED STRINGS"
    -.
    -The following strings are predefined:
    -.Pp
    -.Bl -column String infinity "Troff " "straight double quote" -offset indent
    -.It Sy String Ta Sy Nroff Ta Sy Troff Ta Sy Meaning
    -.It Li <=     Ta <=       Ta \*[<=]   Ta "less equal"
    -.It Li >=     Ta >=       Ta \*[>=]   Ta "greater equal"
    -.It Li Rq     Ta ''       Ta \*[Rq]   Ta "right double quote"
    -.It Li Lq     Ta ``       Ta \*[Lq]   Ta "left double quote"
    -.It Li ua     Ta ^        Ta \*[ua]   Ta "upwards arrow"
    -.It Li aa     Ta \'       Ta \*[aa]   Ta "acute accent"
    -.It Li ga     Ta \`       Ta \*[ga]   Ta "grave accent"
    -.It Li q      Ta \&"      Ta \*[q]    Ta "straight double quote"
    -.It Li Pi     Ta pi       Ta \*[Pi]   Ta "greek pi"
    -.It Li Ne     Ta !=       Ta \*[Ne]   Ta "not equal"
    -.It Li Le     Ta <=       Ta \*[Le]   Ta "less equal"
    -.It Li Ge     Ta >=       Ta \*[Ge]   Ta "greater equal"
    -.It Li Lt     Ta <        Ta \*[Lt]   Ta "less than"
    -.It Li Gt     Ta >        Ta \*[Gt]   Ta "greater than"
    -.It Li Pm     Ta +\-      Ta \*[Pm]   Ta "plus minus"
    -.It Li If     Ta infinity Ta \*[If]   Ta "infinity"
    -.It Li Am     Ta \*[Am]   Ta \*[Am]   Ta "ampersand"
    -.It Li Na     Ta \*[Na]   Ta \*[Na]   Ta "not a number"
    -.It Li Ba     Ta \*[Ba]   Ta \*[Ba]   Ta "vertical bar"
    -.El
    -.Pp
    -The names of the columns
    -.Sy Nroff
    -and
    -.Sy Troff
    -are a bit misleading;
    -.Sy Nroff
    -shows the
    -.Tn ASCII
    -representation, while
    -.Sy Troff
    -gives the best glyph form available.
    -For example, a Unicode enabled
    -.Tn TTY Ns - Ns
    -device will have proper glyph representations for all strings, whereas the
    -enhancement for a Latin1
    -.Tn TTY Ns - Ns
    -device is only the plus-minus sign.
    -.Pp
    -String names which consist of two characters can be written as
    -.Ql \e*(xx ;
    -string names which consist of one character can be written as
    -.Ql \e*x .
    -A generic syntax for a string name of any length is
    -.Ql \e*[xxx]
    -(this is a
    -.Tn GNU
    -.Xr troff 1
    -extension).
    -.
    -.
    -\#
    -\#=====================================================================
    -\#
    -.Sh DIAGNOSTICS
    -.
    -The debugging macro
    -.Ql .Db
    -available in previous versions of
    -.Nm \-mdoc
    -has been removed since
    -.Tn GNU
    -.Xr troff 1
    -provides better facilities to check parameters; additionally, many error and
    -warning messages have been added to this macro package, making it both more
    -robust and verbose.
    -.Pp
    -The only remaining debugging macro is
    -.Ql .Rd
    -which yields a register dump of all global registers and strings.
    -A normal user will never need it.
    -.
    -.
    -.Sh "FORMATTING WITH GROFF, TROFF, AND NROFF"
    -.
    -By default, the package inhibits page breaks, headers, and footers if
    -displayed with a
    -.Tn TTY
    -device like
    -.Sq latin1
    -or
    -.Sq unicode ,
    -to make the manual more efficient for viewing on-line.
    -This behaviour can be changed (e.g.\& to create a hardcopy of the
    -.Tn TTY
    -output) by setting the register
    -.Ql cR
    -to zero while calling
    -.Xr groff 1 ,
    -resulting in multiple pages instead of a single, very long page:
    -.Pp
    -.Dl groff -Tlatin1 -rcR=0 -mdoc foo.man > foo.txt
    -.Pp
    -For double-sided printing, set register
    -.Ql D
    -to\~1:
    -.Pp
    -.Dl groff -Tps -rD1 -mdoc foo.man > foo.ps
    -.Pp
    -To change the document font size to 11pt or 12pt, set register
    -.Ql S
    -accordingly:
    -.Pp
    -.Dl groff -Tdvi -rS11 -mdoc foo.man > foo.dvi
    -.Pp
    -Register
    -.Ql S
    -is ignored for
    -.Tn TTY
    -devices.
    -.Pp
    -The line and title length can be changed by setting the registers
    -.Ql LL
    -and
    -.Ql LT ,
    -respectively:
    -.Pp
    -.Dl groff -Tutf8 -rLL=100n -rLT=100n -mdoc foo.man | less
    -.Pp
    -If not set, both registers default to 78n for TTY devices and 6.5i
    -otherwise.
    -.
    -.
    -.Sh FILES
    -.
    -.Bl -tag -width mdoc/doc-ditroff -compact
    -.It Pa doc.tmac
    -The main manual macro package.
    -.It Pa mdoc.tmac
    -A wrapper file to call
    -.Pa doc.tmac .
    -.It Pa mdoc/doc-common
    -Common strings, definitions, stuff related typographic output.
    -.It Pa mdoc/doc-nroff
    -Definitions used for a
    -.Tn TTY
    -output device.
    -.It Pa mdoc/doc-ditroff
    -Definitions used for all other devices.
    -.It Pa mdoc.local
    -Local additions and customizations.
    -.It Pa andoc.tmac
    -This file checks whether the
    -.Nm \-mdoc
    -or the
    -.Nm \-man
    -package should be used.
    -.El
    -.
    -.
    -.Sh "SEE ALSO"
    -.
    -.Xr groff 1 ,
    -.Xr man 1 ,
    -.Xr troff 1 ,
    -.Xr groff_man 7
    -.
    -.
    -.Sh BUGS
    -.
    -Section 3f has not been added to the header routines.
    -.Pp
    -.Ql \&.Nm
    -font should be changed in
    -.Sx NAME
    -section.
    -.Pp
    -.Ql \&.Fn
    -needs to have a check to prevent splitting up
    -if the line length is too short.
    -Occasionally it
    -separates the last parenthesis, and sometimes
    -looks ridiculous if a line is in fill mode.
    -.Pp
    -The list and display macros do not do any keeps
    -and certainly should be able to.
    -.\" Note what happens if the parameter list overlaps a newline
    -.\" boundary.
    -.\" to make sure a line boundary is crossed:
    -.\" .Bd -literal
    -.\" \&.Fn struct\e\ dictionarytable\e\ *dictionarylookup struct\e\ dictionarytable\e\ *tab[]
    -.\" .Ed
    -.\" .Pp
    -.\" produces, nudge nudge,
    -.\" .Fn struct\ dictionarytable\ *dictionarylookup char\ *h struct\ dictionarytable\ *tab[] ,
    -.\" .Fn struct\ dictionarytable\ *dictionarylookup char\ *h struct\ dictionarytable\ *tab[] ,
    -.\" nudge
    -.\" .Fn struct\ dictionarytable\ *dictionarylookup char\ *h struct\ dictionarytable\ *tab[] .
    -.\" .Pp
    -.\" If double quotes are used, for example:
    -.\" .Bd -literal
    -.\" \&.Fn \*qstruct dictionarytable *dictionarylookup\*q \*qchar *h\*q \*qstruct dictionarytable *tab[]\*q
    -.\" .Ed
    -.\" .Pp
    -.\" produces, nudge nudge,
    -.\" .Fn "struct dictionarytable *dictionarylookup" "char *h" "struct dictionarytable *tab[]" ,
    -.\" nudge
    -.\" .Fn "struct dictionarytable *dictionarylookup" "char *h" "struct dictionarytable *tab[]" ,
    -.\" nudge
    -.\" .Fn "struct dictionarytable *dictionarylookup" "char *h" "struct dictionarytable *tab[]" .
    -.\" .Pp
    -.\" Not a pretty sight...
    -.\" In a paragraph, a long parameter containing unpaddable spaces as
    -.\" in the former example will cause
    -.\" .Xr troff
    -.\" to break the line and spread
    -.\" the remaining words out.
    -.\" The latter example will adjust nicely to
    -.\" justified margins, but may break in between an argument and its
    -.\" declaration.
    -.\" In
    -.\" .Xr nroff
    -.\" the right margin adjustment is normally ragged and the problem is
    -.\" not as severe.
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man7/groff_me.7 b/gen/usr/share/man/man7/groff_me.7
    deleted file mode 100644
    index ff398a9..0000000
    --- a/gen/usr/share/man/man7/groff_me.7
    +++ /dev/null
    @@ -1,282 +0,0 @@
    -.\" Copyright (c) 1980 The Regents of the University of California.
    -.\" All rights reserved.
    -.\"
    -.\" Redistribution and use in source and binary forms are permitted
    -.\" provided that the above copyright notice and this paragraph are
    -.\" duplicated in all such forms and that any documentation,
    -.\" advertising materials, and other materials related to such
    -.\" distribution and use acknowledge that the software was developed
    -.\" by the University of California, Berkeley.  The name of the
    -.\" University may not be used to endorse or promote products derived
    -.\" from this software without specific prior written permission.
    -.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
    -.\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
    -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
    -.\"
    -.\"	@(#)me.7	6.4 (Berkeley) 4/13/90
    -.\"
    -.\" Modified for groff by jjc@jclark.com
    -.hc %
    -.TH GROFF_ME 7 "27 June 2001" "Groff Version 1.19.2"
    -.UC 3
    -.SH NAME
    -groff_me \- troff macros for formatting papers
    -.SH SYNOPSIS
    -.B "groff \-me"
    -[ options ]
    -file ...
    -.br
    -.B "groff \-m\ me"
    -[ options ]
    -file ...
    -.SH DESCRIPTION
    -This manual page describes the GNU version of the \-me macros,
    -which is part of the groff document formatting system.
    -This version can be used with both GNU troff and Unix troff.
    -This package of
    -.I troff
    -macro definitions provides a canned formatting
    -facility for tech%nical papers in various formats.
    -.PP
    -The macro requests are defined below.
    -Many
    -.I troff
    -requests are unsafe in conjunction with
    -this package, however, these requests may be used with
    -impunity after the first .pp:
    -.nf
    -.IP
    -.ta \w'.sz +n  'u
    -\&.bp	begin new page
    -\&.br	break output line here
    -\&.sp n	insert n spacing lines
    -\&.ls n	(line spacing) n=1 single, n=2 double space
    -\&.na	no alignment of right margin
    -\&.ce n	center next n lines
    -\&.ul n	underline next n lines
    -.fi
    -.PP
    -Output of the
    -.I pic,
    -.I eqn,
    -.I refer,
    -and
    -.I tbl
    -preprocessors
    -is acceptable as input.
    -.SH FILES
    -/usr/share/groff/1.19.2/tmac/me.tmac (a wrapper file for e.tmac)
    -.br
    -/usr/share/groff/1.19.2/tmac/e.tmac
    -.SH "SEE ALSO"
    -.BR groff (1),
    -.BR troff (1)
    -.br
    -\-me Reference Manual, Eric P. Allman
    -.br
    -Writing Papers with Groff Using \-me
    -.tr &.
    -.SH REQUESTS
    -This list is incomplete;
    -see
    -.I "The \-me Reference Manual"
    -for interesting details.
    -.PP
    -.ta \w'.eh \'x\'y\'z\'  'u +\w'Initial 'u +\w'Cause 'u
    -.br
    -.di x
    -			\ka
    -.br
    -.di
    -.na
    -.in \nau
    -.ti 0
    -Request	Initial	Cause	Explanation
    -.ti 0
    -	Value	Break
    -.br
    -.in \nau
    -.ti 0
    -\&.(c	-	yes	Begin centered block
    -.ti 0
    -\&.(d	-	no	Begin delayed text
    -.ti 0
    -\&.(f	-	no	Begin footnote
    -.ti 0
    -\&.(l	-	yes	Begin list
    -.ti 0
    -\&.(q	-	yes	Begin major quote
    -.ti 0
    -\&.(x \fIx\fR	-	no	Begin indexed item in index
    -.I x
    -.ti 0
    -\&.(z	-	no	Begin floating keep
    -.ti 0
    -\&.)c	-	yes	End centered block
    -.ti 0
    -\&.)d	-	yes	End delayed text
    -.ti 0
    -\&.)f	-	yes	End footnote
    -.ti 0
    -\&.)l	-	yes	End list
    -.ti 0
    -\&.)q	-	yes	End major quote
    -.ti 0
    -\&.)x	-	yes	End index item
    -.ti 0
    -\&.)z	-	yes	End floating keep
    -.ti 0
    -\&.++ \fIm H\fR	-	no	Define paper section.
    -.I m
    -defines the part of the paper, and can be
    -.B C
    -(chapter),
    -.B A
    -(appendix),
    -.B P
    -(preliminary, e.g., abstract, table of contents, etc.),
    -.B B
    -(bibliography),
    -.B RC
    -(chapters renumbered from page one each chapter),
    -or
    -.B RA
    -(appendix renumbered from page one).
    -.ti 0
    -\&.+c \fIT\fR	-	yes	Begin chapter (or appendix, etc., as
    -set by .++).
    -.I T
    -is the chapter title.
    -.ti 0
    -\&.1c	1	yes	One column format on a new page.
    -.ti 0
    -\&.2c	1	yes	Two column format.
    -.ti 0
    -\&.EN	-	yes	Space after equation
    -produced by
    -.I eqn
    -or
    -.IR neqn .
    -.ti 0
    -\&.EQ \fIx y\fR	-	yes	Precede equation; break out and
    -add space.
    -Equation number is
    -.IR y .
    -The optional argument \fIx\fR
    -may be
    -.I I
    -to indent equation (default),
    -.I L
    -to left-adjust the equation, or
    -.I C
    -to center the equation.
    -.ti 0
    -\&.GE	-	yes	End \fIgremlin\fP picture.
    -.ti 0
    -\&.GS	-	yes	Begin \fIgremlin\fP picture.
    -.ti 0
    -\&.PE	-	yes	End \fIpic\fP picture.
    -.ti 0
    -\&.PS	-	yes	Begin \fIpic\fP picture.
    -.ti 0
    -\&.TE	-	yes	End table.
    -.ti 0
    -\&.TH	-	yes	End heading section of table.
    -.ti 0
    -\&.TS \fIx\fR	-	yes	Begin table; if \fIx\fR is
    -.I H
    -table has repeated heading.
    -.ti 0
    -\&.b \fIx\fR	no	no	Print
    -.I x
    -in boldface; if no argument switch to boldface.
    -.ti 0
    -\&.ba \fI+n\fR	0	yes	Augments the base indent by
    -.I n.
    -This indent is used to set the indent on regular text
    -(like paragraphs).
    -.ti 0
    -\&.bc	no	yes	Begin new column
    -.ti 0
    -\&.bi \fIx\fR	no	no	Print
    -.I x
    -in bold italics (nofill only)
    -.ti 0
    -\&.bu	-	yes	Begin bulleted paragraph
    -.ti 0
    -\&.bx \fIx\fR	no	no	Print \fIx\fR in a box (nofill only).
    -.ti 0
    -\&.ef \fI\'x\'y\'z\'\fR	\'\'\'\'	no	Set even footer to x  y  z
    -.ti 0
    -\&.eh \fI\'x\'y\'z\'\fR	\'\'\'\'	no	Set even header to x  y  z
    -.ti 0
    -\&.fo \fI\'x\'y\'z\'\fR	\'\'\'\'	no	Set footer to x  y  z
    -.ti 0
    -\&.hx	-	no	Suppress headers and footers on next page.
    -.ti 0
    -\&.he \fI\'x\'y\'z\'\fR	\'\'\'\'	no	Set header to x  y  z
    -.ti 0
    -\&.hl	-	yes	Draw a horizontal line
    -.ti 0
    -\&.i \fIx\fR	no	no	Italicize
    -.I x;
    -if
    -.I x
    -missing, italic text follows.
    -.ti 0
    -\&.ip \fIx y\fR	no	yes	Start indented paragraph,
    -with hanging tag
    -.IR x .
    -Indentation is
    -.I y
    -ens (default 5).
    -.ti 0
    -\&.lp	yes	yes	Start left-blocked paragraph.
    -.ti 0
    -\&.np	1	yes	Start numbered paragraph.
    -.ti 0
    -\&.of \fI\'x\'y\'z\'\fR	\'\'\'\'	no	Set odd footer to x  y  z
    -.ti 0
    -\&.oh \fI\'x\'y\'z\'\fR	\'\'\'\'	no	Set odd header to x  y  z
    -.ti 0
    -\&.pd	-	yes	Print delayed text.
    -.ti 0
    -\&.pp	no	yes	Begin paragraph.
    -First line indented.
    -.ti 0
    -\&.r	yes	no	Roman text follows.
    -.ti 0
    -\&.re	-	no	Reset tabs to default values.
    -.ti 0
    -\&.sh \fIn x\fR	-	yes	Section head follows,
    -font automatically bold.
    -.I n
    -is level of section,
    -.I x
    -is title of section.
    -.ti 0
    -\&.sk	no	no	Leave the next page blank.
    -Only one page is remembered ahead.
    -.ti 0
    -\&.sm \fIx\fR	-	no	Set
    -.I x
    -in a smaller pointsize.
    -.ti 0
    -\&.sz \fI+n\fR	10p	no	Augment the point size by
    -.I n
    -points.
    -.ti 0
    -\&.tp	no	yes	Begin title page.
    -.ti 0
    -\&.u \fIx\fR	-	no	Underline argument (even in \fItroff\fR).
    -(Nofill only).
    -.ti 0
    -\&.uh	-	yes	Like .sh but unnumbered.
    -.ti 0
    -\&.xp \fIx\fR	-	no	Print index
    -.I x.
    -.ad
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man7/groff_mm.7 b/gen/usr/share/man/man7/groff_mm.7
    deleted file mode 100644
    index 96e7123..0000000
    --- a/gen/usr/share/man/man7/groff_mm.7
    +++ /dev/null
    @@ -1,2104 +0,0 @@
    -.\"
    -.\" $Id: groff_mm.man,v 2.13 2004/07/03 12:46:56 wlemb Exp $
    -.\"
    -.de T2
    -.if t .ne 2v
    -.ti -.5i
    -\\$1
    -.sp -1
    -..
    -.
    -.de T3
    -.if t .ne 2v
    -.ti -.5i
    -\fB\\$1\fP
    -.br
    -..
    -.
    -.TH GROFF_MM 7 "1 March 2013" "Groff Version 1.19.2"
    -.SH NAME
    -groff_mm \- groff mm macros
    -.SH SYNOPSIS
    -.B groff
    -.B \-mm
    -[
    -.IR options .\|.\|.
    -]
    -[
    -.IR files .\|.\|.
    -]
    -.SH DESCRIPTION
    -The groff mm macros are intended to be compatible with the DWB mm macros
    -with the following limitations:
    -.TP
    -.B \(bu
    -no Bell Labs localisms implemented.
    -.TP
    -.B \(bu
    -the macros OK and PM are not implemented.
    -.TP
    -.B \(bu
    -groff mm does not support cut marks
    -.LP
    -\fBmm\fP is intended to be international.
    -Therefore it is 
    -possible to write short national macrofiles which change all
    -english text to the preferred language.
    -Use \fBmmse\fP as an example.
    -.\"########################################################################
    -.LP
    -A file called \fBlocale\fP or \fIlang\fP\fB_locale\fP is read
    -after the initiation of the global variables.
    -It is therefore
    -possible to localize the macros with companyname and so on.
    -.sp
    -In this manual square brackets is used to show optional arguments.
    -.sp 3
    -\fBNumber registers and strings\fP
    -.br
    -Many macros can be controlled by number registers and strings.
    -A number register is assigned with the \fBnr\fP command:
    -.br
    -\fB\&.nr\fP \fIXXX\fP \fI[+-]n [i]\fP
    -.br
    -\fBXXX\fP is the name of the register, \fBn\fP is the value to
    -be assigned, and \fBi\fP is increment value for auto-increment.
    -\fBn\fP can have a plus or minus sign as prefix if an increment
    -or decrement of the current value is wanted.
    -(Auto-increment or decrement
    -occurs if the number register is used with a plus or minus sign,
    -\fB\en+[XXX]\fP or \fB\en-[XXX]\fP.)
    -.sp
    -Strings is defined with \fBds\fP.
    -.br
    -\fB\&.ds\fP \fIYYY string\fP
    -.br
    -The string is assigned everything to the end of the line, even blanks.
    -Initial blanks in \fIstring\fP should be prefixed with
    -a double-quote.
    -(Strings are used in the text as \fB\e*[YYY]\fP.)
    -.sp
    -\fBSpecial formatting of number registers\fP
    -.br
    -A number register is printed with normal digits if no format has been
    -given.
    -Set the format with \fBaf\fP:
    -.br
    -\fB\&.af\fP \fIR c\fP
    -.br
    -\fIR\fP is the name of the register, \fIc\fP is the format.
    -.in +.5i
    -.T2 \fBForm\fP
    -\fBSequence\fP
    -.T2 1
    -0, 1, 2, 3, ...
    -.T2 001
    -000, 001, 002, 003, ...
    -.T2 i
    -0, i, ii, iii, iv, ...
    -.T2 I
    -0, I, II, III, IV, ...
    -.T2 a
    -0, a, b, c, ..., z, aa, ab, ...
    -.T2 A
    -0, A, B, C, ..., Z, AA, AB, ...
    -.in
    -
    -.LP
    -\fBMacros:\fP
    -.TP
    -.B ")E level text"
    -Adds \fBtext\fP (heading-text) to the table of contents
    -with \fBlevel\fP either 0
    -or between 1-7.
    -See also \fB.H\fP.
    -This macro is used for customized
    -table of contents.
    -.TP
    -.B "1C [1]"
    -Begin one column processing.
    -An \fB1\fP as argument disables the page-break.
    -Use wide footnotes, small footnotes may be overprinted.
    -.TP
    -.B 2C
    -Begin two column processing.
    -Splits the page in two columns.
    -It is
    -a special case of \fBMC\fP.
    -See also \fB1C\fP.
    -.TP
    -.B AE
    -Abstract end, see \fBAS\fP.
    -.TP
    -.B "AF [name of firm]"
    -Authors firm, should be called before \fBAU\fP, see also \fBCOVER\fP.
    -.TP
    -.B "AL [type [text-indent [1]]]"
    -Start autoincrement list.
    -Items are numbered beginning on one.
    -The \fItype\fP argument controls the type of numbers.
    -.in +.5i
    -.T2 Arg
    -Description
    -.T2 1
    -Arabic (the default)
    -.T2 A
    -Upper-case letters (A-Z)
    -.T2 a
    -Lower-case letters (a-z)
    -.T2 I
    -Upper-case roman
    -.T2 i
    -Lower-case roman
    -.in
    -\fIText-indent\fP sets the indent and overrides \fBLi\fP.
    -A third argument will prohibit printing of a blank line before each
    -item.
    -.TP
    -.B "APP name text"
    -Begin an appendix with name \fIname\fP.
    -Automatic naming occurs if
    -\fIname\fP is "".
    -The appendixes starts with \fBA\fP if auto is used.
    -An new page is ejected, and a header is also produced if the number
    -variable \fBAph\fP is non-zero.
    -This is the default.
    -The appendix always appear in the 'List of contents' with correct
    -pagenumber.
    -The name \fIAPPENDIX\fP can be changed by setting
    -the string \fBApp\fP to the desired text.
    -The string \fBApptxt\fP contains the current appendix text.
    -.TP
    -.B "APPSK name pages text"
    -Same as \fB.APP\fP, but the pagenr is incremented with \fIpages\fP.
    -This is used when diagrams or other non-formatted documents are
    -included as appendixes.
    -.TP
    -.B "AS [arg [indent]]"
    -Abstract start.
    -Indent is specified in 'ens', but scaling is allowed.
    -Argument \fIarg\fP controls where the abstract is printed.
    -.in +.5i
    -.T2 Arg
    -Placement
    -.T2 0
    -Abstract will be printed on page 1 and on the cover sheet if
    -used in the released-paper style (\fBMT 4\fP), otherwise
    -it will be printed on page 1 without a cover sheet.
    -.T2 1
    -Abstract will only be printed on the cover sheet (\fBMT 4\fP only).
    -.T2 2
    -Abstract will be printed only on the cover sheet (other than \fBMT 4\fP only).
    -The cover sheet is printed without need for \fBCS\fP.
    -.in
    -Abstract is not printed at all in external letters (\fBMT 5\fP).
    -The \fIindent\fP controls the indentation of both margins, otherwise
    -will normal text indent be used.
    -.TP
    -.B "AST [title]"
    -Abstract title.
    -Default is \fBABSTRACT\fP.
    -Sets the text above the abstract text.
    -.TP
    -.B "AT title1 [title2 ...]"
    -Authors title.
    -\fBAT\fP must appear just after each \fBAU\fP.
    -The title will show up after the name in the signature block.
    -.TP
    -.B "AU [name [initials [loc [dept [ext [room [arg [arg [arg]]]]]]]]]"
    -Author information, specifies the author of the memo or paper, and
    -will be printed on the cover sheet and on other similar places.
    -\fBAU\fP must not appear before \fBTL\fP.
    -The author information
    -can contain initials, location, department, telephone extension,
    -room number or name and up to three extra arguments.
    -.TP
    -.B "AV [name [1]]"
    -Approval signature, generates an approval line with place for
    -signature and date.
    -The string \fBAPPROVED:\fP can be changed
    -with variable \fBLetapp\fP, and the string \fBDate\fP in \fBLetdate\fP.
    -.TP
    -.B "AVL [name]"
    -Letter signature, generates a line with place for signature.
    -.TP
    -.B "B [bold-text [prev-font-text [bold...]]]"
    -Begin boldface.
    -No limit on the number of arguments.
    -All arguments will be concatenated to one word, the first, third and so
    -on will be printed in boldface.
    -.TP
    -.B B1
    -Begin box (as the ms macro).
    -Draws a box around the text.
    -The text will be indented one character,
    -and the right margin will be one character shorter.
    -.TP
    -.B B2
    -End box.
    -Finish the box started by \fBB1\fP.
    -.TP
    -.B BE
    -End bottom block, see \fBBS\fP.
    -.TP
    -.B "BI [bold-text [italic-text [bold-text [...]]]]"
    -Bold-italic.
    -No limit on the number of arguments, see \fBB\fP.
    -.TP
    -.B "BL [text-indent [1]]"
    -Start bullet list, initialize a list with a bullet and a space
    -in the beginning of each list item (see \fBLI\fP).
    -\fIText-indent\fP
    -overrides the default indentation of the list items set by
    -number register \fBPi\fP.
    -A third argument will prohibit printing of a blank line before each
    -item.
    -.TP
    -.B "BR [bold-text [roman-text [bold-text [...]]]]"
    -Bold-roman.
    -No limit on the number of arguments.
    -.TP
    -.B BS
    -Bottom block start.
    -Begins the definition of a text block which is
    -printed at the bottom of each page.
    -Block ends with \fBBE\fP.
    -.TP
    -.B "BVL text-indent [mark-indent [1]]"
    -Start of 
    -broken variable-item list.
    -Broken variable-item list has no fixed mark, it assumes that
    -every \fBLI\fP has a mark instead.
    -The text will always begin at the next line after the mark.
    -\fIText-indent\fP sets the indent to the text, and \fImark-indent\fP
    -the distance from the current indent to the mark.
    -A third argument will prohibit printing of a blank line before each
    -item.
    -.TP
    -.B "COVER [arg]"
    -\&\fBCOVER\fP begins a coversheet definition.
    -It is important
    -that \fB.COVER\fP appears before any normal text.
    -\&\fB.COVER\fP uses \fIarg\fP to build the filename 
    -/usr/share/groff/1.19.2/tmac/mm/\fIarg\fP.cov.
    -Therefore it is possible to create unlimited
    -types of coversheets.
    -\fIms.cov\fP is supposed to look like the \fBms\fP coversheet.
    -\&\fB.COVER\fP requires a \fB.COVEND\fP at the end of the coverdefinition.
    -Always use this order of the covermacros:
    -.nf
    -\&.COVER
    -\&.TL
    -\&.AF
    -\&.AU
    -\&.AT
    -\&.AS
    -\&.AE
    -\&.COVEND
    -.fi
    -However, only \fB.TL\fP and \fB.AU\fP are required.
    -.TP
    -.B COVEND
    -This finish the cover description and prints the cover-page.
    -It is defined in the cover file.
    -.TP
    -.B DE
    -Display end.
    -Ends a block of text, display, that begins
    -with \fBDS\fP or \fBDF\fP.
    -.TP
    -.B "DF [format [fill [rindent]]]"
    -Begin floating display (no nesting allowed).
    -A floating display is saved in a queue and is printed in the
    -order entered.
    -\fIFormat\fP, \fIfill\fP and \fIrindent\fP is the same
    -as in \fBDS\fP.
    -Floating displays are controlled by the two number registers \fBDe\fP
    -and \fBDf\fP.
    -.sp
    -\fBDe register\fP
    -.in +.5i
    -.T2 0
    -Nothing special, this is the default.
    -.T2 1
    -A page eject will occur after each printed display, giving only
    -one display per page and no text following it.
    -.in
    -.sp
    -\fBDf register\fP
    -.in +.5i
    -.T2 0
    -Displays are printed at the end of each section (when section-page
    -numbering is active) or at the end of the document.
    -.T2 1
    -A new display will be printed on the current page if there is enough
    -space, otherwise it will be printed at the end of the document.
    -.T2 2
    -One display will be printed at the top of each page or column
    -(in multi-column mode).
    -.T2 3
    -Print one display if there is enough space for it, otherwise it will
    -be printed at the top of the next page or column.
    -.T2 4
    -Print as many displays that will fit in a new page or column.
    -A page break will occur between each display if \fBDe\fP is not zero.
    -.T2 5
    -Fill the current page with displays and the rest beginning at a new page
    -or column.
    -(This is the default.)
    -A page break will occur between each display
    -if \fBDe\fP is not zero.
    -.in
    -.TP
    -.B "DL [text-indent [1 [1]]]"
    -Dash list start.
    -Begins a list where each item is printed
    -after a dash.
    -\fIText-indent\fP changes the default indentation
    -of the list items set by
    -number register \fBPi\fP.
    -A second argument prevents the empty line between each list item
    -to be printed.
    -See \fBLI\fP.
    -A third argument will prohibit printing of a blank line before each
    -item.
    -.TP
    -.B "DS [format [fill [rindent]]]"
    -Static display start.
    -Begins collection of text until \fBDE\fP.
    -The text is printed together on the same page, unless it is longer
    -than the height of the page.
    -\fBDS\fP can be nested to a unlimited depth (reasonably :-).
    -.sp
    -\fBformat\fP
    -.in +.5i
    -.ds x "
    -.T2 """"""
    -No indentation.
    -.T2 none
    -No indentation.
    -.T2 L
    -No indentation.
    -.T2 I
    -Indent text with the value of number register \fBSi\fP.
    -.T2 C
    -Center each line
    -.T2 CB
    -Center the whole display as a block.
    -.T2 R
    -Right adjust the lines.
    -.T2 RB
    -Right adjust the whole display as a block
    -.in
    -.sp
    -L, I, C and CB can also be specified as 0, 1, 2 or 3 for compatibility
    -reasons.
    -(Don't use it.\ :-)
    -.sp
    -\fBfill\fP
    -.in +.5i
    -.T2 """"""
    -Line-filling turned off.
    -.T2 none
    -Line-filling turned off.
    -.T2 N
    -Line-filling turned off.
    -.T2 F
    -Line-filling turned on.
    -.in
    -.sp
    -N and F can also be specified as 0 or 1.
    -An empty line will normally be printed before and after the
    -display.
    -Setting number register \fBDs\fP to 0 will prevent this.
    -\fIRindent\fP shortens the line length by that amount.
    -.TP
    -.B "EC [title [override [flag [refname]]]]"
    -Equation title.
    -Sets a title for an equation.
    -The \fIoverride\fP argument
    -change the numbering.
    -.sp
    -\fBflag\fP
    -.in +.5i
    -.T2 none
    -\fIoverride\fP is a prefix to the number.
    -.T2 0
    -\fIoverride\fP is a prefix to the number.
    -.T2 1
    -\fIoverride\fP is a suffix to the number.
    -.T2 2
    -\fIoverride\fP replaces the number.
    -.in
    -\fBEC\fP uses the number register \fBEc\fP as counter.
    -It is possible to use \fB.af\fP to change the format of the number.
    -If number register \fBOf\fP is 1, then the format of title
    -will use a dash instead of a dot after the number.
    -.br
    -The string \fBLe\fP controls the title of the
    -List of Equations, default is \fILIST OF EQUATIONS\fP.
    -The List of Equations will only be printed if number register \fBLe\fP
    -is 1, default 0.
    -The string \fBLiec\fP contains the word \fIEquation\fP, wich
    -is printed before the number.
    -If \fIrefname\fP is used, then the equation number is saved with
    -\&\fB.SETR\fP, and can be retrieved with \fB.GETST\fP \fIrefname\fP.
    -.br
    -Special handling of the title will occur if
    -\fBEC\fP is used inside \fBDS\fP/\fBDE\fP, it will not be
    -affected by the format of \fBDS\fP.
    -.TP
    -.B "EF [arg]"
    -Even-page footer, printed just above the normal page footer
    -on even pages, see \fBPF\fP.
    -.TP
    -.B "EH [arg]"
    -Even-page header, printed just below the normal page header
    -on even pages, see \fBPH\fP.
    -.TP
    -.B EN
    -Equation end, see \fBEQ\fP.
    -.TP
    -.B EOP
    -End of page user-defined macro.
    -This macro will be called
    -instead of the normal printing of the footer.
    -The macro
    -will be executed in a separate environment, without any
    -trap active.
    -See \fBTP\fP.
    -.sp
    -\fBStrings available to EOP\fP
    -.in +.5i
    -.T2 EOPf
    -Argument from \fBPF\fP.
    -.T2 EOPef
    -Argument from \fBEF\fP.
    -.T2 EOPof
    -Argument from \fBOF\fP.
    -.in
    -.TP
    -.B "EPIC [-L] width height [name]"
    -\fBEPIC\fP draws a box with the given \fIwidth\fP and \fIheight\fP, it will
    -also print the text \fIname\fP or a default string if
    -\fIname\fP is not specified..
    -This is used to include external pictures, just give the size
    -of the picture.
    -\fB-L\fP will leftadjust the picture, the default is to center adjust.
    -See \fBPIC\fP
    -.TP
    -.B "EQ [label]"
    -Equation start.
    -\fBEQ\fP/\fBEN\fP are the delimiters for equations written for \fBeqn\fP.
    -\fBEQ\fP/\fBEN\fP must be inside a \fBDS\fP/\fBDE\fP-pair, except
    -when \fBEQ\fP is only used to set options in \fBeqn\fP.
    -The \fIlabel\fP will appear at the right margin of the equation, unless
    -number register \fBEq\fP is\ 1.
    -Then the label will appear at the
    -left margin.
    -.TP
    -.B "EX [title [override [flag [refname]]]]"
    -Exhibit title, arguments are the same as for \fBEC\fP.
    -\fBEX\fP uses the number register \fBEx\fP as counter.
    -The string \fBLx\fP controls the title of the
    -List of Exhibits, default is \fILIST OF EXHIBITS\fP.
    -The List of Exhibits will only be printed if number register \fBLx\fP
    -is 1, default 1.
    -The string \fBLiex\fP contains the word \fIExhibit\fP, which
    -is printed before the number.
    -If \fIrefname\fP is used, then the exhibit number is saved with
    -\&\fB.SETR\fP, and can be retrieved with \fB.GETST\fP \fIrefname\fP.
    -.br
    -Special handling of the title will occur if
    -\fBEX\fP is used inside \fBDS\fP/\fBDE\fP, it will not be
    -affected by the format of \fBDS\fP.
    -.TP
    -.B "FC [closing]"
    -Prints \fIYours\ very\ truly,\fP as a formal closing of a letter or
    -memorandum.
    -The argument replaces the defualt string.
    -The default is stored in string variable \fBLetfc\fP.
    -.TP
    -.B "FD [arg [1]]"
    -Footnote default format.
    -Controls the hyphenation (hyphen), right margin justification (adjust),
    -indentation of footnote text (indent).
    -It can also change the label
    -justification (ljust).
    -.sp
    -.if t .ne 14v
    -.nf
    -.ta .5i +.8i +.8i +.8i +.8i
    -\fBarg	hyphen	adjust	indent	ljust\fP
    -0	no	yes	yes	left
    -1	yes	yes	yes	left
    -2	no	no	yes	left
    -3	yes	no	yes	left
    -4	no	yes	no	left
    -5	yes	yes	no	left
    -6	no	no	no	left
    -7	yes	no	no	left
    -8	no	yes	yes	right
    -9	yes	yes	yes	right
    -10	no	no	yes	right
    -11	yes	no	yes	right
    -.sp
    -.fi
    -.DT
    -Argument greater than or equal to 11 is considered as arg 0.
    -Default for mm is 10.
    -.TP
    -.B FE
    -Footnote end.
    -.TP
    -.B "FG [title [override [flag [refname]]]]"
    -Figure title, arguments are the same as for \fBEC\fP.
    -\fBFG\fP uses the number register \fBFg\fP as counter.
    -The string \fBLf\fP controls the title of the
    -List of Figures, default is \fILIST OF FIGURES\fP.
    -The List of Figures will only be printed if number register \fBLf\fP
    -is 1, default 1.
    -The string \fBLifg\fP contains the word \fIFigure\fP, wich
    -is printed before the number.
    -If \fIrefname\fP is used, then the figure number is saved with
    -\&\fB.SETR\fP, and can be retrieved with \fB.GETST\fP \fIrefname\fP.
    -.br
    -Special handling of the title will occur if
    -\fBFG\fP is used inside \fBDS\fP/\fBDE\fP, it will not be
    -affected by the format of \fBDS\fP.
    -.TP
    -.B "FS [label]"
    -Footnote start.
    -The footnote is ended by \fBFE\fP.
    -Footnotes is normally automatically
    -numbered, the number is available in string \fBF\fP.
    -Just add \fB\e*F\fP in the text.
    -By adding \fIlabel\fP, it is possible
    -to have other number or names on the footnotes.
    -Footnotes in displays is now possible.
    -An empty line separates footnotes, the height of the line
    -is controlled by number register \fBFs\fP, default value is 1.
    -.TP
    -.B "GETHN refname [varname]"
    -Includes the headernumber where the corresponding \fBSETR\fP \fIrefname\fP
    -was placed.
    -Will be X.X.X. in pass\ 1.
    -See \fBINITR\fP.
    -If \fIvarname\fP is used, \fBGETHN\fP sets the stringvariable \fIvarname\fP to the 
    -headernumber.
    -.TP
    -.B "GETPN refname [varname]"
    -Includes the pagenumber where the corresponding \fBSETR\fP \fIrefname\fP
    -was placed.
    -Will be 9999 in pass\ 1.
    -See \fBINITR\fP.
    -If \fIvarname\fP is used, \fBGETPN\fP sets the stringvariable \fIvarname\fP
    -to the pagenumber.
    -.TP
    -.B "GETR refname"
    -Combines \fBGETHN\fP and \fBGETPN\fP with the text 'chapter' and ', page'.
    -The string \fIQrf\fP contains the text for reference:
    -.ti +.5i
    -\&.ds Qrf See chapter \e\e*[Qrfh], page \e\e*[Qrfp].
    -.br
    -\fIQrf\fP may be changed to support other languages.
    -Strings \fIQrfh\fP and \fIQrfp\fP are set by \fBGETR\fP
    -and contains the page and headernumber.
    -.TP
    -.B "GETST refname [varname]"
    -Includes the string saved with the second argument to \fB.SETR\fP.
    -Will be dummystring in pass 1.
    -If varname is used, \fBGETST\fP sets the stringvariable \fIvarname\fP to the 
    -saved string.
    -See \fBINITR\fP.
    -.TP
    -.B "H level [heading-text [heading-suffix]]"
    -Numbered section heading.
    -Section headers can have a level between 1 and 14, level 1 is the
    -top level.
    -The text is given in \fIheading-text\fP, and must be
    -surrounded by double quotes if it contains spaces.
    -\fBHeading-suffix\fP is added to the header in the text but not in
    -the table of contents.
    -This is normally used for footnote marks
    -and similar things.
    -Don't use \fB\e*F\fP in \fIheading-suffix\fP, it won't
    -work.
    -A manual label must be used, see \fBFS\fP.
    -.sp
    -An eventual paragraph, \fBP\fP, directly after \fBH\fP will be
    -ignored, \fBH\fP is taking care of spacing and indentation.
    -.sp
    -\fBPage ejection before heading\fP
    -.br
    -Number register \fBEj\fP controls page ejection before the heading.
    -Normally, a level one heading gets two blank lines before it, higher levels
    -gets only one.
    -A new page is ejected before each
    -first-level heading if number register \fBEj\fP is 1.
    -All levels below or equal the value of \fBEj\fP gets a new page.
    -Default value for \fBEj\fP is 0.
    -.sp
    -\fBHeading break level\fP
    -.br
    -A line break occurs after the heading if the heading level is less
    -or equal to number register \fBHb\fP.
    -Default value 2.
    -.sp
    -\fBHeading space level\fP
    -.br
    -A blank line is inserted after the heading if the heading level is less
    -or equal to number register \fBHs\fP.
    -Default value 2.
    -.sp
    -Text will follow the heading on the same line if the level is greater
    -than both \fBHb\fP and \fBHs\fP.
    -.sp
    -\fBPost-heading indent\fP
    -.br
    -Indentation of the text after the heading is controlled by number
    -register \fBHi\fP, default value 0.
    -.sp
    -\fBHi\fP
    -.in +.5i
    -.T2 0
    -The text will be left-justified.
    -.T2 1
    -Indentation of the text will follow the value of number register \fBPt\fP,
    -see \fBP\fP.
    -.T2 2
    -The text will be lined up with the first word of the heading.
    -.in
    -.sp
    -\fBCentered section headings\fP
    -.br
    -All headings whose level is equal or below number register \fBHc\fP
    -and also less than or equal to \fBHb\fP or \fBHs\fP
    -is centerered.
    -.sp
    -\fBFont control of the heading\fP
    -.br
    -The font of each heading level is controlled by string \fBHF\fP.
    -It contains a fontnumber or fontname for each level.
    -Default
    -is \fB2\ 2\ 2\ 2\ 2\ 2\ 2\ 2\ 2\ 2\ 2\ 2\ 2\ 2\fP (all headings in italic).
    -Could also be written as \fBI\ I\ I\ I\ I\ I\ I\ I\ I\ I\ I\ I\ I\ I\fP.
    -Note that some other implementations use \fB3\ 3\ 2\ 2\ 2\ 2\ 2\fP as the
    -default value.
    -All omitted values are presumed to be a 1.
    -.sp
    -\fBPoint size control\fP.
    -.br
    -String \fBHP\fP controls the pointsize of each heading, in the
    -same way as \fBHF\fP controls the font.
    -A value of 0 selects the default point size.
    -Default value is \fB0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\ 0\fP.
    -Beware that only the
    -point size changes, not the vertical size.
    -That can be controlled by the user specified macro \fBHX\fP and/or
    -\fBHZ\fP.
    -.sp
    -\fBHeading counters\fP
    -.br
    -Fourteen number registers, named \fBH1\fP thru \fBH14\fP contains
    -the counter for each heading level.
    -The values are printed using arabic numerals, this can be changed
    -with the macro \fBHM\fP (see below).
    -All marks are concatenated before printing.
    -To avoid this, set
    -number register \fBHt\fP to\ 1.
    -That will only print the current
    -heading counter at each heading.
    -.sp
    -\fBAutomatic table of contents\fP
    -.br
    -All headings whose level is equal or below number register \fBCl\fP
    -is saved to be printed in the table of contents.
    -Default value is\ 2.
    -.sp
    -\fBSpecial control of the heading, user-defined macros\fP.
    -.br
    -These macros can be defined by the user to get a finer control
    -of vertical spacing, fonts or other features.
    -Argument \fIlevel\fP is the level-argument to \fBH\fP, but
    -0 for unnumbered headings (see \fBHU\fP).
    -Argument \fIrlevel\fP is the real level, it is
    -set to number register \fBHu\fP for unnumbered headings.
    -Argument \fIheading-text\fP is the text argument to \fBH\fP and \fBHU\fP.
    -.sp
    -\fBHX\ \fP\fIlevel\ rlevel\ heading-text\fP
    -.br
    -\fBHX\fP is called just before the printing of the heading.
    -The following register is available for \fBHX\fP.
    -\fBHX\fP may alter \fB}0\fP, \fB}2\fP and \fB;3\fP.
    -.in +.5i
    -.T3 "string }0"
    -Contains the heading mark plus two spaces if \fIrlevel\fP is non-zero,
    -otherwise empty.
    -.T3 "register ;0"
    -Contains the position of the text after the heading.
    -0 means that the text should follow the heading on the same line, 1
    -means that a line break should occur before the text and
    -2 means that a blank line should separate the heading and the text.
    -.T3 "string }2"
    -Contains two spaces if register \fB;0\fP is\ 0.
    -It is used to
    -separate the heading from the text.
    -The string
    -is empty if \fB;0\fP is non-zero.
    -.T3 "register ;3"
    -Contains the needed space in units after the heading.
    -Default is 2v.
    -
    -Can be used to change things like numbering (\fB}0\fP),
    -vertical spacing (\fB}2\fP)
    -and the needed space after the heading.
    -.in
    -.sp
    -\fBHY\ \fP\fIdlevel\ rlevel\ heading-text\fP
    -.br
    -\fBHY\fP is called after size and font calculations and
    -might be used to change indentation.
    -.sp
    -\fBHZ\ \fP\fIdlevel\ rlevel\ heading-text\fP
    -.br
    -\fBHZ\fP is called after the printing of the heading, just before
    -\fBH\fP or \fBHU\fP exits.
    -Could be used to change the page header according to the section heading.
    -.TP
    -.B "HC [hyphenation-character]"
    -Set hyphenation character.
    -Default value is \e%.
    -Resets to the default if called without argument.
    -Hyphenation can be turned off by setting number
    -register \fBHy\fP to 0 in the beginning of the file.
    -.TP
    -.B "HM [arg1 [arg2 [... [arg14]]]]"
    -Heading mark style.
    -Controls the type of marking for printing of the heading counters.
    -Default is 1 for all levels.
    -.sp
    -\fBArgument\fP
    -.in +.5i
    -.T2 1
    -Arabic numerals.
    -.T2 0001
    -Arabic numerals with leading zeroes, one or more.
    -.T2 A
    -Upper-case alphabetic
    -.T2 a
    -Lower-case alphabetic
    -.T2 I
    -Upper-case roman numerals
    -.T2 i
    -lower-case roman numerals
    -.T2 \fIempty\fP
    -Arabic numerals.
    -.in
    -.TP
    -.B "HU heading-text"
    -Unnumbered section header.
    -\fBHU\fP behavies like \fBH\fP at the level in number register \fBHu\fP.
    -See \fBH\fP.
    -.TP
    -.B "HX dlevel rlevel heading-text"
    -Userdefined heading exit.
    -Called just before printing the header.
    -See \fBH\fP.
    -.TP
    -.B "HY dlevel rlevel heading-text"
    -Userdefined heading exit.
    -Called just before printing the header.
    -See \fBH\fP.
    -.TP
    -.B "HZ dlevel rlevel heading-text"
    -Userdefined heading exit.
    -Called just after printing the header.
    -See \fBH\fP.
    -.TP
    -.B "I [italic-text [prev-font-text [italic-text [...]]]]"
    -Italic.
    -Changes the font to italic if called without arguments.
    -With one argument it will set the word in italic.
    -With two argument it will concatenate them and set the first
    -word in italic and the second in the previous font.
    -There is no limit on the number of argument, all will be concatenated.
    -.TP
    -.B "IA [addressee-name [title]]"
    -Begins specification of the addressee and addressee's address in
    -letter style.
    -Several names can be specified with empty \fBIA\fP/\fBIE\fP-pairs, but
    -only one address.
    -See \fBLT\fP.
    -.TP
    -.B "IB [italic-text [bold-text [italic-text [...]]]]"
    -Italic-bold.
    -Even arguments is printed in italic, odd in boldface.
    -See \fBI\fP.
    -.TP
    -.B IE
    -Ends the address-specification after \fPIA\fP.
    -.TP
    -.B "INITI type filename [macro]"
    -Initialize the new index system, sets the filename to collect
    -index lines in with \fBIND\fP.
    -Argument \fItype\fP selects
    -the type of index, page number, header marks or both.
    -The default is \fIN\fP.
    -
    -It is also possible to create a macro that is responsible
    -for formatting each row.
    -Add the name of the macro as argument\ 3.
    -The macro will be called with the index as argument(s).
    -.sp
    -\fBtype\fP
    -.in +.5i
    -.T2 N
    -Page numbers
    -.T2 H
    -Header marks
    -.T2 B
    -Both page numbers and header marks, tab separated
    -.in
    -.TP
    -.B "INITR filename"
    -Initialize the refencemacros.
    -References will be written to stderr and is supposed to
    -be written to \fIfilename.qrf\fP. 
    -Requires two passes with groff, this is handled by a
    -separate program called \fBmmroff\fP, the reason is that
    -groff is often installed without the unsafe operations that
    -\fBINITR\fP requiered.
    -The first pass looks for references and the second one includes them.
    -\fBINITR\fP can be used several times, but it is only the first
    -occurrence of \fBINITR\fP that is active.
    -
    -See also \fBSETR\fP, \fBGETPN\fP and \fBGETHN\fP.
    -.TP
    -.B "IND arg1 [arg2 [...]]"
    -\fBIND\fP writes a line in the index file selected by \fBINITI\fP
    -with all arguments and the page number or header mark separated by tabs.
    -.in +.5i
    -\fBExamples\fP
    -.br
    -arg1\etpage number
    -.br
    -arg1\etarg2\etpage number
    -.br
    -arg1\etheader mark
    -.br
    -arg1\etpage number\etheader mark
    -.in
    -.TP
    -.B "INDP"
    -\fBINDP\fP prints the index by running the command specified
    -by string variable \fBIndcmd\fP, normally \fIsort\ -t\et\fP.
    -\fBINDP\fP reads the output from the command to form
    -the index, normally in two columns (can be changed by defining \fBTYIND\fP).
    -The index is printed with string variable \fBIndex\fP as header,
    -default is \fBINDEX\fP.
    -One-column processing is
    -returned after the list.
    -\fBINDP\fP will call the
    -user-defined macros \fBTXIND\fP, \fBTYIND\fP and \fBTZIND\fP if defined.
    -\fBTXIND\fP is called before printing \fBINDEX\fP, \fBTYIND\fP
    -is called instead of printing \fBINDEX\fP.
    -\fBTZIND\fP is called
    -after the printing and should take care of restoring to normal
    -operation again.
    -.TP
    -.B "ISODATE [0]"
    -\fBISODATE\fP changes the predefined date string in \fBDT\fP to
    -ISO-format, ie YYYY-MM-DD.
    -This can also be done by
    -adding \fB-rIso=1\fP on the command line.
    -Reverts to old date format if argument is \fB0\fP.
    -.TP
    -.B "IR [italic-text [roman-text [italic-text [...]]]]"
    -Italic-roman.
    -Even arguments is printed in italic, odd in roman.
    -See \fBI\fP.
    -.TP
    -.B "LB text-indent mark-indent pad type [mark [LI-space [LB-space]]]"
    -List begin macro.
    -This is the common macro used for all lists.
    -\fIText-indent\fP is the number of spaces to indent the text from the
    -current indent.
    -.sp
    -\fIPad\fP and \fImark-indent\fP controls where to put the mark.
    -The mark is placed within the mark area, and \fImark-indent\fP
    -sets the number of spaces before this area.
    -It is normally\ 0.
    -The mark area ends where the text begins.
    -The start of the text
    -is still controlled by \fItext-indent\fP.
    -.sp
    -The mark is left justified whitin the mark area if \fIpad\fP is 0.
    -If \fIpad\fP is greater than 0, then \fImark-indent\fP is ignored, and
    -the mark is placed \fIpad\fP spaces before the text.
    -This will right justify the mark.
    -.sp
    -If \fItype\fP is 0 the list will have either a hanging indent or, if
    -argument \fImark\fP is given, the string \fImark\fP as mark.
    -.sp
    -If \fItype\fP is greater than 0 automatic numbering will occur, arabic
    -if \fImark\fP is empty.
    -\fIMark\fP can then be any of \fB1\fP, \fBA\fP,
    -\fBa\fP, \fBI\fP or \fBi\fP.
    -.sp
    -\fIType\fP selects one of six possible ways to display the mark.
    -.br
    -\fBtype\fP
    -.in +.6i
    -.T2 1
    -x.
    -.T2 2
    -x)
    -.T2 3
    -(x)
    -.T2 4
    -[x]
    -.T2 5
    -
    -.T2 6
    -{x}
    -.in
    -.sp
    -Every item in the list will get \fILI-space\fP number of blank lines
    -before them.
    -Default is\ 1.
    -.sp
    -\fBLB\fP itself will print \fILB-space\fP blank lines.
    -Default is\ 0.
    -.TP
    -.B "LC [list-level]"
    -List-status clear.
    -Terminates all current active lists down to \fIlist-level\fP, or 0
    -if no argmuent is given.
    -This is used by \fBH\fP to clear any
    -active list.
    -.TP
    -.B "LE [1]"
    -List end.
    -Terminate the current list.
    -\fBLE\fP outputs a blank line
    -if an argument is given.
    -.TP
    -.B "LI [mark [1]]"
    -List item precedes every item in a list.
    -Without argument \fBLI\fP
    -will print the mark determined by the current list type.
    -By giving
    -\fBLI\fP one argument, it will use that as the mark instead.
    -Two arguments to \fBLI\fP will make \fImark\fP a prefix to
    -the current mark.
    -There will be no separating space between the prefix
    -and the mark if the second argument is \fB2\fP instead of \fB1\fP.
    -This behaviour can also be achieved by setting number register
    -\fBLimsp\fP to zero.
    -A zero length \fImark\fP will make a hanging
    -indent instead.
    -.sp
    -A blank line is normally printed before the list item.
    -This behaviour
    -can be controlled by number register \fBLs\fP.
    -Pre-spacing
    -will occur for each list-level less than or equal to \fBLs\fP.
    -Default value is\ 99.
    -(Nesting of lists is unlimited.\ :-)
    -.sp
    -The indentation can be changed thru number register \fBLi\fP.
    -Default is 6.
    -.sp
    -All lists begins with a list initialization macro, \fBLB\fP.
    -There are, however, seven predefined listtypes to
    -make lists easier to use.
    -They all call \fBLB\fP with different
    -default values.
    -.in +.5i
    -.T2 \fBAL\fP
    -Automatically Incremented List
    -.T2 \fBML\fP
    -Marked List
    -.T2 \fBVL\fP
    -Variable-Item List
    -.T2 \fBBL\fP
    -Bullet List
    -.T2 \fBDL\fP
    -Dash List
    -.T2 \fBRL\fP
    -Reference List
    -.T2 \fBBVL\fP
    -Broken Varable List.
    -.in
    -These lists are described at other places in this manual.
    -See also \fBLB\fP.
    -.TP
    -.B "LT [arg]"
    -Formats a letter in one of four different styles depending
    -on the argument.
    -See also \fBINTERNALS\fP.
    -.in +.5i
    -.T2 \fBArg
    -Style\fP
    -.T2 BL
    -Blocked.
    -Date line, return address, writer's address and closing
    -begins at the center of the line.
    -All other lines begin at the left margin.
    -.T2 SB
    -Semi-blocked.
    -Same as blocked, except that the first line in every
    -paragraph is indented five spaces.
    -.T2 FB
    -Full-blocked.
    -All lines begin at the left margin.
    -.T2 SP
    -Simplified.
    -Almost the same as the full-blocked style.
    -Subject and
    -the writer's identification are printed in all-capital.
    -.in
    -.TP
    -.B "LO type [arg]"
    -Specify options in letter (see \fB.LT\fP).
    -This is a list of the standard options:
    -.in +.5i
    -.T2 CN
    -Confidential notation.
    -Prints \fBCONFIDENTIAL\fP on the second line
    -below the date line.
    -Any argument replaces \fBCONFIDENTIAL\fP.
    -See also string variable \fBLetCN\fP.
    -.T2 RN
    -Reference notation.
    -Prints \fBIn reference to:\fP and the argument
    -two lines below the date line.
    -See also string variable \fBLetRN\fP.
    -.T2 AT
    -Attention.
    -Prints \fBATTENTION:\fP and the argument below the inside address.
    -See also string variable \fBLetAT\fP.
    -.T2 SA
    -Salutation.
    -Prints \fBTo Whom It May Concern:\fP or the argument if
    -it was present.
    -The salutation is printed two lines below the inside address.
    -See also string variable \fBLetSA\fP.
    -.T2 SJ
    -Subject line.
    -Prints the argument as subject prefixed with \fBSUBJECT:\fP
    -two lines below the inside address, except in letter type \fBSP\fP.
    -Then the subject is printed in all-captial without any prefix.
    -See also string variable \fBLetSJ\fP.
    -.in
    -.TP
    -.B "MC column-size [column-separation] "
    -Begin multiple columns.
    -Return to normal with \fB1C\fP.
    -\fBMC\fP will create as many columns as the current line length permits.
    -\fIColumn-size\fP is the width of each column, and \fIcolumn-separation\fP
    -is the space between two columns.
    -Default separation is the 
    -column-size/15.
    -See also \fB1C\fP.
    -.TP
    -.B "ML mark [text-indent [1]]"
    -Marked list start.
    -The \fImark\fP argument will be printed before
    -each list item.
    -\fIText-indent\fP sets the indent and overrides \fBLi\fP.
    -A third argument will prohibit printing of a blank line before each
    -item.
    -.TP
    -.B "MT [arg [addressee]]"
    -Memorandum type.
    -The \fIarg\fP is part of a filename in \fI/usr/share/groff/1.19.2/tmac/mm/*.MT\fP.
    -Memorandum type 0 thru 5 are supported, including \fI"string"\fP.
    -\fIAddressee\fP just sets a variable, used in the AT&T macros.
    -.br
    -\fBarg\fP
    -.in +.5i
    -.T2 0
    -Normal memorandum, no type printed
    -.T2 1
    -Memorandum with \fIMEMORANDUM FOR FILE\fP printed
    -.T2 2
    -Memorandum with \fIPROGRAMMER'S NOTES\fP printed
    -.T2 3
    -Memorandum with \fIENGINEER'S NOTES\fP printed
    -.T2 4
    -Released paper style
    -.T2 5
    -External letter style
    -.in
    -See also \fBCOVER\fP/\fBCOVEND\fP, a more flexible type of front page.
    -.TP
    -.B "MOVE y-pos [x-pos [line-length]]"
    -Move to a position, pageoffset set to \fIx-pos\fP.
    -If \fIline-length\fP is not given, the difference between
    -current and new pageoffset is used.
    -Use \fBPGFORM\fP without arguments to return to normal.
    -.TP
    -.B "MULB cw1 space1 [cw2 space2 [cw3 ...]]"
    -Begin a special multi-column mode.
    -Every columns width must be specified.
    -Also the space between the columns must be specified.
    -The last column
    -does not need any space-definition.
    -\fBMULB\fP starts a diversion and \fBMULE\fP
    -ends the diversion and prints the columns.
    -The unit for width and space is 'n', but \fBMULB\fP accepts all 
    -normal unitspecifications like 'c' and 'i'.
    -\fBMULB\fP operates in a separate environment.
    -.TP
    -.B "MULN"
    -Begin the next column.
    -This is the only way to switch column.
    -.TP
    -.B "MULE"
    -End the multi-column mode and print the columns.
    -.TP
    -.B "nP [type]"
    -Print numbered paragraph with header level two.
    -See \fB.P\fP.
    -.TP
    -.B "NCOL"
    -Force printing to the next column, don't use this together with
    -the \fBMUL*\fP macros, see \fB2C\fP.
    -.TP
    -.B "NS [arg [1]]"
    -Prints different types of notations.
    -The argument selects between
    -the predefined type of notations.
    -If the second argument is available, 
    -then the argument becomes the entire notation.
    -If the argument doesn't exist in the predefined, it will be
    -printed as \fBCopy (\fP\fIarg\fP\fB) to\fP.
    -It is possible to add more standard notations, see the string variable
    -\fBLetns\fP and \fBLetnsdef\fP.
    -.nf
    -.in +.5i
    -.T2 \fBArg
    -Notation\fP
    -.T2 \fInone\fP
    -Copy To
    -.T2 """""
    -Copy To
    -.T2 1
    -Copy To (with att.) to
    -.T2 2
    -Copy To (without att.) to
    -.T2 3
    -Att.
    -.T2 4
    -Atts.
    -.T2 5
    -Enc.
    -.T2 6
    -Encs.
    -.T2 7
    -Under separate cover
    -.T2 8
    -Letter to
    -.T2 9
    -Memorandum to
    -.T2 10
    -Copy (with atts.) to
    -.T2 11
    -Copy (without atts.) to
    -.T2 12
    -Abstract Only to
    -.T2 13
    -Complete Memorandum to
    -.T2 14
    -CC
    -.in
    -.fi
    -.TP
    -.B "ND new-date"
    -New date.
    -Override the current date.
    -Date is not
    -printed if \fInew-date\fP is an empty string.
    -.TP
    -.B "OF [arg]"
    -Odd-page footer, a line printed just above the normal footer.
    -See \fBEF\fP and \fBPF\fP.
    -.TP
    -.B "OH [arg]"
    -Odd-page header, a line printed just below the normal header.
    -See \fBEH\fP and \fBPH\fP.
    -.TP
    -.B OP
    -Make sure that the following text is printed at the top
    -of an odd-numbered page.
    -Will not output an empty page
    -if currently at the top of an odd page.
    -.TP
    -.B "P [type]"
    -Begin new paragraph.
    -\fBP\fP without argument will produce left justified text, even
    -the first line of the paragraph.
    -This is the same as setting
    -\fItype\fP to 0.
    -If the argument is\ 1, then the first line
    -of text following \fBP\fP will be indented by the number of
    -spaces in number register \fBPi\fP, normally 5.
    -.sp
    -Instead of giving 1 as argument to \fBP\fP it is possible to set the
    -paragraph type in number register \fBPt\fP.
    -Using 0 and\ 1
    -will be the same as adding that value to \fBP\fP.
    -A value of 2 will indent all paragraphs, except after
    -headings, lists and displays.
    -.sp
    -The space between two paragraphs is controlled by number register \fBPs\fP,
    -and is 1 by default (one blank line).
    -.TP
    -.B "PGFORM [linelength [pagelength [pageoffset [1]]]]"
    -Sets linelength, pagelength and/or pageoffset.
    -This macro can be used for special formatting, like letterheads
    -and other.
    -It is normally the first command in a file, though it's not necessary.
    -\fBPGFORM\fP can be used without arguments 
    -to reset everything after a \fBMOVE\fP.
    -A line-break is done unless the fourth argument is given.
    -This can be used to avoid the pagenumber on the first page while setting
    -new width and length.
    -(It seems as if this macro sometimes doesn't work too well.
    -Use the command line arguments
    -to change linelength, pagelength and pageoffset instead.
    -Sorry.)
    -.TP
    -.B PGNH
    -No header is printed on the next page.
    -Used to get rid of
    -the header in letters or other special texts.
    -This macro must be used before any text to inhibit the pageheader
    -on the first page.
    -.TP
    -.B "PIC [-L] [-C] [-R] [-I n] filename [width [height]]"
    -\fBPIC\fP includes a Postscript file in the document.
    -The macro depends on \fBmmroff\fP and \fBINITR\fP.
    -\fB-L\fP, \fB-C\fP, \fB-R\fP and \fB-I n\fP adjusts the picture
    -or indents it.
    -The optionally \fIwidth\fP and \fIheight\fP
    -can also be given to resize the picture.
    -.TP
    -.B PE
    -Picture end.
    -Ends a picture for \fBpic\fP, see the manual for \fBpic\fP.
    -.TP
    -.B "PF [arg]"
    -Page footer.
    -\fBPF\fP sets the line to be printed at the bottom of each page.
    -Normally empty.
    -See \fBPH\fP for the argument specification.
    -.TP
    -.B "PH [arg]"
    -Page header, a line printed at the top of each page.
    -The argument should be specified as "'left-part'center-part'right-part'",
    -where left-, center- and right-part is printed left-justified, centered
    -and right justified.
    -The character \fB%\fP is changed to the current
    -page number.
    -The default page-header is "''- % -''", the page
    -number between two dashes.
    -.TP
    -.B PS
    -Picture start (from pic).
    -Begins a picture for \fBpic\fP, see
    -the manual.
    -.TP
    -.B PX
    -Page-header user-defined exit.
    -\fBPX\fP is called just after the printing of the page header
    -in \fIno-space\fP mode.
    -.TP
    -.B R
    -Roman.
    -Return to roman font, see also \fBI\fP.
    -.TP
    -.B "RB [roman-text [bold-text [roman-text [...]]]]"
    -Roman-bold.
    -Even arguments is printed in roman, odd in boldface.
    -See \fBI\fP.
    -.TP
    -.B "RD [prompt [diversion [string]]]"
    -Read from standard input to diversion and/or string.
    -The text will be saved in a diversion named \fIdiversion\fP.
    -Recall the text by writing the name of the diversion after a dot
    -on an empty line.
    -A string will also be defined if
    -\fIstring\fP is given.
    -\fIDiversion\fP and/or \fIprompt\fP can 
    -be empty ("").
    -.TP
    -.B RF
    -Reference end.
    -Ends a reference definition and returns to normal
    -processing.
    -See \fBRS\fP.
    -.TP
    -.B "RI [roman-text [italic-text [roman-text [...]]]]"
    -Even arguments are printed in roman, odd in italic.
    -See \fBI\fP.
    -.TP
    -.B "RL [text-indent [1]]"
    -Reference list start.
    -Begins a list where each item is preceded with a automatically
    -incremented number between
    -square brackets.
    -\fIText-indent\fP changes the default indentation.
    -.TP
    -.B "RP [arg1 [arg2]]"
    -Produce reference page.
    -\fBRP\fP can be used if a reference page is wanted somewhere in the
    -document.
    -It is not needed if \fBTC\fP is used to produce
    -a table of content.
    -The reference page will then be printed automatically.
    -.sp
    -The reference counter will not be reset if \fIarg1\fP is 1.
    -.sp
    -\fIArg2\fP tells \fBRP\fP whether to eject a page or not.
    -.br
    -\fBArg2\fP
    -.in +.5i
    -.T2 0
    -The reference page will be printed on a separate page.
    -This is
    -the default.
    -.T2 1
    -Do not eject page after the list.
    -.T2 2
    -Do not eject page before the list.
    -.T2 3
    -Do not eject page before and after the list.
    -.in
    -The reference items will be separated by a blank line.
    -Setting number register \fBLs\fP to 0 will suppress the line.
    -.sp
    -The string \fBRp\fP contains the reference page title and
    -is normally set to \fIREFERENCES\fP.
    -.TP
    -.B "RS [string-name]"
    -\fBRS\fP begins an automatically numbered reference definition.
    -Put the string \fB\e*(Rf\fP where the reference mark
    -should be and write the reference between \fBRS\fP/\fBRF\fP
    -at next new line after the reference mark.
    -The reference number
    -is stored in number register \fB:R\fP.
    -If \fIstring-name\fP is given, a string with that name
    -will be defined and contain the current reference mark.
    -The string can be referenced as \fB\e*[\fIstring-name\fP]\fP later in
    -the text.
    -.TP
    -.B "S [size [spacing]]"
    -Set point size and vertical spacing.
    -If any argument is equal 'P', then
    -the previous value is used.
    -A 'C' means current value, and 'D' default value.
    -If '+' or '-' is used before the value, then increment or decrement of
    -the current value will be done.
    -.TP
    -.B "SA [arg]"
    -Set right-margin justification.
    -Justification is normally turned on.
    -No argumenent or \fB0\fP turns off justification, a \fB1\fP turns on
    -justification.
    -.TP
    -.B "SETR refname [string]"
    -Remember the current header and page-number as \fIrefname\fP.
    -Saves \fIstring\fP if \fIstring\fP is defined.
    -\fIstring\fP is retrieved
    -with \fB.GETST\fP.
    -See \fBINITR\fP.
    -.TP
    -.B "SG [arg [1]]"
    -Signature line.
    -Prints the authors name(s) after the formal closing.
    -The argument will be appended to the reference data, printed
    -at either the first or last author.
    -The reference data is the location,
    -department and initials specified with \fB.AU\fP.
    -It will be printed at the first author if the second argument is given,
    -otherwise at the last.
    -No reference data will be printed if the author(s) is specifed
    -thru \fB.WA\fP/\fB.WE\fP.
    -See \fBINTERNALS\fP.
    -.TP
    -.B "SK [pages]"
    -Skip pages.
    -If \fIpages\fP is \fB0\fP or omitted, a skip to the next page
    -will occur unless it is already at the top of a page.
    -Otherwise it will skip \fIpages\fP pages.
    -.TP
    -.B "SM string1 [string2 [string3]]"
    -Make a string smaller.
    -If \fIstring2\fP is given, \fIstring1\fP will be smaller and \fIstring2\fP
    -normal, concatenated with \fIstring1\fP.
    -With three argument, all is
    -concatenated, but only \fIstring2\fP is made smaller.
    -.TP
    -.B "SP [lines]"
    -Space vertically.
    -\fIlines\fP can have any scalingfactor, like \fI3i\fP or
    -\fI8v\fP.
    -Several \fBSP\fP in a line will only produce the
    -maximum number of lines, not the sum.
    -\fBSP\fP will also be ignored
    -until the first textline in a page.
    -Add a \fB\e&\fP before \fBSP\fP
    -to avoid this.
    -.TP
    -.B TAB
    -reset tabs to every\ 5n.
    -Normally used to reset any previous tabpositions.
    -.TP
    -.B "TB [title [override [flag [refname]]]]"
    -Table title, arguments are the same as for \fBEC\fP.
    -\fBTB\fP uses the number register \fBTb\fP as counter.
    -The string \fBLt\fP controls the title of the
    -List of Tables, default is \fILIST OF TABLES\fP.
    -The List of Tables will only be printed if number register \fBLt\fP
    -is 1, default 1.
    -The string \fBLitb\fP contains the word \fITABLE\fP, wich
    -is printed before the number.
    -.br
    -Special handling of the title will occur if
    -\fBTB\fP is used inside \fBDS\fP/\fBDE\fP, it will not be
    -affected by the format of \fBDS\fP.
    -.TP
    -.B "TC [slevel [spacing [tlevel [tab [h1 [h2 [h3 [h4 [h5]]]]]]]]]"
    -Table of contents.
    -This macro is normally used at the last line of the document.
    -It generates a table of contents with headings up to the level
    -controlled by number register \fBCl\fP.
    -Note that \fBCl\fP controls
    -the saving of headings, it has nothing to do with \fBTC\fP.
    -Headings with level less than or equal to \fIslevel\fP will get
    -\fIspacing\fP number of lines before them.
    -Headings with level less than or equal to \fItlevel\fP will have
    -their page numbers right justified with dots or spaces separating
    -the text and the page number.
    -Spaces is used if \fItab\fP
    -is greater than zero, otherwise dots.
    -Other headings will have the
    -page number directly at the end of the heading text (\fIragged right\fP).
    -.sp
    -The rest of the arguments will be printed, centered, before the
    -table of contents.
    -.sp
    -The user-defined macros \fBTX\fP and \fBTY\fP are used if \fBTC\fP is called
    -with at most four arguments.
    -\fBTX\fP is called before the printing
    -of \fICONTENTS\fP, and \fBTY\fP is called instead of printing \fICONTENTS\fP.
    -.sp
    -Equivalent macros can be defined for list of figures, tables, equations
    -and excibits by defining \fBTXxx\fP or \fBTYxx\fP, where \fBxx\fP
    -is \fBFg\fP, \fBTB\fP, \fBEC\fP or \fBEX\fP.
    -.sp
    -String \fBCi\fP can be set to control the indentations for each heading-level.
    -It must be scaled, like \fB.ds\ Ci\ .25i\ .5i\ .75i\ 1i\ 1i\fP.
    -The indentation is normally controlled by the maxlength of headings
    -in each level.
    -.sp
    -All texts can be redefined, new stringvariables 
    -\fILifg\fP, \fILitb\fP, \fILiex\fP, \fILiec\fP and \fILicon\fP contain
    -"Figure", "TABLE", "Exhibit", "Equation" and "CONTENTS".
    -These can be redefined to other languages.
    -.TP
    -.B TE
    -Table end.
    -See \fBTS\fP.
    -.TP
    -.B "TH [N]"
    -Table header.
    -See \fBTS\fP.
    -\fBTH\fP ends the header of the table.
    -This header will
    -be printed again if a page-break occurs.
    -Argument \fIN\fP isn't implemented yet.
    -.TP
    -.B TL [charging-case number(s) [filing-case number(s)]]
    -Begin title of memorandum.
    -All text up to the next \fBAU\fP is included in the title.
    -\fICharging-case number\fP and \fIfiling-case\fP are saved
    -for use in the front page processing.
    -.TP
    -.B TM [num1 [num2 [...]]]
    -Technical memorandumnumbers used in \fB.MT\fP.
    -Unlimited number
    -of arguments may be given.
    -.TP
    -.B TP
    -Top of page user-defined macro.
    -This macro is called instead of the normal page header.
    -It is
    -possible to get complete control over the header.
    -Note that header and footer is printed in a separate environment.
    -Linelength is preserved though.
    -.TP
    -.B "TS [H]"
    -Table start.
    -This is the start of a table specification
    -to \fBtbl\fP.
    -See separate manual for \fBtbl\fP.
    -\fBTS\fP ends with \fBTE\fP.
    -Argument \fIH\fP tells \fBmm\fP that the table
    -has a header.
    -See \fBTH\fP.
    -.TP
    -.B TX
    -Userdefined table of contents exit.
    -This macro is called just before \fBTC\fP prints the word \fICONTENTS\fP.
    -See \fBTC\fP.
    -.TP
    -.B TY
    -Userdefined table of contents exit (no "CONTENTS").
    -This macro is called instead of printing \fICONTENTS\fP.
    -See \fBTC\fP.
    -.TP
    -.B VERBON [flag [pointsize [font]]]
    -Begin verbatim output using courier font.
    -Usually for printing programs.
    -All character has equal width.
    -The pointsize can be changed with
    -the second argument.
    -By specifying the font-argument
    -it is possible to use another font instead of courier.
    -\fIflag\fP controls several special features.
    -It contains the sum of all wanted features.
    -.in +.5i
    -.T2 Value
    -Description
    -.T2 1
    -Disable the escape-character (\e).
    -This is normally turned on during
    -verbose output.
    -.T2 2
    -Add an empty line before the verbose text.
    -.T2 4
    -Add an empty line after the verbose text.
    -.T2 8
    -Print the verbose text with numbered lines.
    -This adds four digitsized
    -spaces in the beginning of each line.
    -Finer control is available with
    -the string-variable \fBVerbnm\fP.
    -It contains all arguments to the
    -\fBtroff\fP-command \fB.nm\fP, normally '1'.
    -.T2 16
    -Indent the verbose text with five 'n':s.
    -This is controlled by the
    -number-variable \fBVerbin\fP (in units).
    -.in
    -.TP
    -.B VERBOFF
    -End verbatim output.
    -.TP
    -.B "VL text-indent [mark-indent [1]]"
    -Variable-item list has no fixed mark, it assumes that
    -every \fBLI\fP have a mark instead.
    -\fIText-indent\fP sets the indent to the text, and \fImark-indent\fP
    -the distance from the current indent to the mark.
    -A third argument will prohibit printing of a blank line before each
    -item.
    -.TP
    -.B "VM [-T] [top [bottom]]"
    -Vertical margin. Adds extra vertical top and margin space.
    -Option \fB-T\fP set the total space instead.
    -No argument resets the margin to zero or the default
    -\fI(7v 5v)\fP if \fB-T\fP
    -was used. It is higly recommended that macro \fBTP\fP and/or
    -\fBEOP\fP are defined
    -if using \fB-T\fP and setting top and/or bottom margin to less than the default.
    -.TP
    -.B "WA [writer-name [title]]"
    -Begins specification of the writer and writer's address.
    -Several names can be specified with empty \fBWA\fP/\fBWE\fP-pairs, but
    -only one address.
    -.TP
    -.B WE
    -Ends the address-specification after \fP.WA\fP.
    -.TP
    -.B "WC [format]"
    -Footnote and display width control.
    -.in +.5i
    -.T2 N
    -Set default mode, \fB-WF\fP, \fB-FF\fP, \fB-WD\fP and \fBFB\fP.
    -.T2 WF
    -Wide footnotes, wide also in two-column mode.
    -.T2 -WF
    -Normal footnote width, follow column mode.
    -.T2 FF
    -All footnotes gets the same width as the first footnote encountered.
    -.T2 -FF
    -Normal footnotes, width follows \fBWF\fP and \fB-WF\fP.
    -.T2 WD
    -Wide displays, wide also in two-column mode.
    -.T2 -WD
    -Normal display width, follow column mode.
    -.T2 FB
    -Floating displays generates a line break when printed on the current page.
    -.T2 -FB
    -Floating displays does not generate line break.
    -.in
    -.sp 3
    -.LP
    -.\"########################################################################
    -.LP
    -.B "Strings used in mm:"
    -.TP
    -.B App
    -A string containing the word "APPENDIX".
    -.TP
    -.B Apptxt
    -The current appendix text.
    -.TP
    -.B "EM"
    -Em dash string
    -.TP
    -.B H1txt
    -Will be updated by \fB.H\fP and \fB.HU\fP to the current heading text.
    -Also updated in table of contents & friends.
    -.TP
    -.B HF
    -Fontlist for headings, normally "2 2 2 2 2 2 2".
    -Nonnumeric fontnames may also be used.
    -.TP
    -.B HP
    -Pointsize list for headings.
    -Normally "0 0 0 0 0 0 0" which is the same as
    -"10 10 10 10 10 10 10".
    -.TP
    -.B Index
    -Contains \fIINDEX\fP.
    -.TP
    -.B Indcmd
    -Contains the index command, \fIsort\ -t\et\fP.
    -.TP
    -.B Lifg
    -String containing \fIFigure\fP.
    -.TP
    -.B Litb
    -String containing \fITABLE\fP.
    -.TP
    -.B Liex
    -String containing \fIExhibit\fP.
    -.TP
    -.B Liec
    -String containing \fIEquation\fP.
    -.TP
    -.B Licon
    -String containing \fICONTENTS\fP.
    -.TP
    -.B Lf
    -Contains "LIST OF FIGURES".
    -.TP
    -.B Lt
    -Contains "LIST OF TABLES".
    -.TP
    -.B Lx
    -Contains "LIST OF EXHIBITS".
    -.TP
    -.B Le
    -Contains "LIST OF EQUATIONS".
    -.TP
    -.B Letfc
    -Contains "Yours very truly,", used in \fB.FC\fP.
    -.TP
    -.B Letapp
    -Contains "APPROVED:", used in \fB.AV\fP.
    -.TP
    -.B Letdate
    -Contains "Date", used in \fB.AV\fP.
    -.TP
    -.B LetCN
    -Contains "CONFIDENTIAL", used in \fB.LO CN\fP.
    -.TP
    -.B LetSA
    -Contains "To Whom It May Concern:", used in \fB.LO SA\fP.
    -.TP
    -.B LetAT
    -Contains "ATTENTION:", used in \fB.LO AT\fP.
    -.TP
    -.B LetSJ
    -Contains "SUBJECT:", used in \fB.LO SJ\fP.
    -.TP
    -.B LetRN
    -Contains "In reference to:", used in \fB.LO RN\fP.
    -.TP
    -.B Letns
    -is an array containing the different strings used in \fB.NS\fP.
    -It is really a number of stringvariables prefixed with \fBLetns!\fP.
    -If the argument doesn't exist, it will be included
    -between \fB()\fP with \fBLetns!copy\fP as prefix and \fBLetns!to\fP as suffix.
    -Observe the space after \fBcopy\fP and before \fBto\fP.
    -.nf
    -.ta 1.5i
    -\fBName	Value\fP
    -Letns!0	Copy to
    -Letns!1	Copy (with att.) to
    -Letns!2	Copy (without att.) to
    -Letns!3	Att.
    -Letns!4	Atts.
    -Letns!5	Enc.
    -Letns!6	Encs.
    -Letns!7	Under separate cover
    -Letns!8	Letter to
    -Letns!9	Memorandum to
    -Letns!10	Copy (with atts.) to
    -Letns!11	Copy (without atts.) to
    -Letns!12	Abstract Only to
    -Letns!13	Complete Memorandum to
    -Letns!14	CC
    -Letns!copy	Copy "
    -Letns!to	" to
    -.fi
    -.TP
    -.B Letnsdef
    -Defines the standard-notation used when no argument is given
    -to \fB.NS\fP.
    -Default is \fB0\fP.
    -.TP
    -.B "MO1 - MO12"
    -Strings containing \fIJanuary\fP thru \fIDecember\fP.
    -.TP
    -.B Qrf
    -String containing "See chapter \e\e*[Qrfh], page \e\en[Qrfp].".
    -.TP
    -.B Rp
    -Contains "REFERENCES".
    -.TP
    -.B Tcst
    -Contains current status of table of contents and list of XXXX.
    -Empty outside \fB.TC\fP.
    -Useful in user-defined macros like \fB.TP\fP.
    -.nf
    -.ta 1.5i
    -\fBValue	Meaning\fP
    -co	Table of contents
    -fg	List of figures
    -tb	List of tables
    -ec	List of equations
    -ex	List of exhibits
    -ap	Appendix
    -.fi
    -.ta
    -.TP
    -.B Tm
    -Contains \e(tm, trade mark.
    -.TP
    -.B Verbnm
    -Argument to \fB.nm\fP in \fB.VERBON\fP, default: \fB1\fP.
    -.\"-----------------------------------
    -.LP
    -.B "Number variables used in mm:"
    -.TP
    -.B Aph
    -Print an appendix-page for every new appendix 
    -if this numbervariable is non-zero.
    -No output will occur if \fBAph\fP is zero, but there will always
    -be an appendix-entry in the 'List of contents'.
    -.TP
    -.B Cl
    -Contents level [0:14], contents saved if heading level <= Cl, default 2.
    -.TP
    -.B Cp
    -Eject page between LIST OF XXXX if Cp == 0, default 0.
    -.TP
    -.B D
    -Debugflag, values >0 produces varying degree of debug.
    -A value of\ 1
    -gives information about the progress of formatting, default\ 0.
    -.TP
    -.B De
    -Eject after floating display is output [0:1], default\ 0.
    -.TP
    -.B Dsp
    -Controls the space output before and after static displays
    -if defined.
    -Otherwise is the value of Lsp used.
    -.TP
    -.B Df
    -Floating keep output [0:5], default 5.
    -.TP
    -.B Ds
    -\fBLsp\fP space before and after display if == 1 [0:1], default 1.
    -.TP
    -.B Ej
    -Eject page, default 0.
    -.TP
    -.B Eq
    -Equation lable adjust 0=left, 1=right.
    -Default\ 0.
    -.TP
    -.B Fs
    -Footnote spacing, default 1.
    -.TP
    -.B "H1-H7"
    -Heading counters
    -.TP
    -.B H1dot
    -Append a dot after the level one heading number if >\ 0.
    -Default is\ 1.
    -.TP
    -.B H1h
    -Copy of number register \fBH1\fP, but it is incremented
    -just before the page break.
    -Useful in user defined header macros.
    -.TP
    -.B Hb
    -Heading break level [0:14], default\ 2.
    -.TP
    -.B Hc
    -Heading centering level, [0:14].
    -Default\ 0.
    -.TP
    -.B Hi
    -Heading temporary indent [0:2], default\ 1.
    -.br
    -0\ ->\ 0 indent, left margin
    -.br
    -1\ ->\ indent to right , like .P 1
    -.br
    -2\ ->\ indent to line up with text part of preceding heading
    -.TP
    -.B Hps
    -Number variable with the heading pre-space level.
    -If the heading-level
    -is less than or equal to \fBHps\fP, then two lines will precede the
    -section heading instead of one.
    -Default is first level only.
    -The real amount of lines is controlled by the variables \fBHps1\fP and
    -\fBHps2\fP.
    -.TP
    -.B Hps1
    -This is the number of lines preceding \fB.H\fP when the heading-level
    -is greater than \fBHps\fP.
    -Value is in units, normally 0.5.
    -.TP
    -.B Hps2
    -This is the number of lines preceding \fB.H\fP when the heading-level
    -is less than or equal to \fBHps\fP.
    -Value is in units, normally\ 1.
    -.TP
    -.B Hs
    -Heading space level [0:14], default\ 2.
    -.TP
    -.B Hss
    -This is the number of lines that follows \fB.H\fP when the heading-level
    -is less than or equal to \fBHs\fP.
    -Value is in units, normally\ 1.
    -.TP
    -.B Ht
    -Heading numbering type, default 0.
    -0 -> multiple (1.1.1 ...)
    -.br
    -1 -> single
    -.TP
    -.B Hu
    -Unnumbered heading level, default 2.
    -.TP
    -.B Hy
    -Hyphenation in body, default 0.
    -.br
    -0\ ->\ no hyphenation
    -.br
    -1\ ->\ hyphenation 14 on
    -.TP
    -.B Iso
    -Set this variable to 1 on the command line to get ISO-formatted date string.
    -(\fB-rIso=1\fP)
    -Useless inside a document.
    -.TP
    -.B L
    -Page length, only for command line settings.
    -.TP
    -.B Letwam
    -Max lines in return-address, used in \fB.WA\fP/\fB.WE\fP.
    -Default\ 14.
    -.TP
    -.B "Lf, Lt, Lx, Le"
    -Enables (1) or disables (0) the printing of List of figures,
    -List of tables, List of exhibits and List of equations.
    -Default: Lf=1, Lt=1, Lx=1, Le=0.
    -.TP
    -.B Li
    -List indent, used by .AL, default 6.
    -.TP
    -.B Limsp
    -Flag for space between prefix and mark in automatic lists (.AL).
    -.br
    -0\ ==\ no space
    -.br
    -1\ ==\ space
    -.TP
    -.B Ls
    -List space, if current listlevel > Ls then no spacing will occur around lists.
    -Default 99.
    -.TP
    -.B Lsp
    -The size of an empty line.
    -Normally 0.5v, but it is 1v 
    -if \fBn\fP is set (\fB.nroff\fP).
    -.TP
    -.B N
    -Numbering style [0:5], default 0.
    -.br
    -0\ ==\ (default) normal header for all pages.
    -.br
    -1\ ==\ header replaces footer on first page, header is empty.
    -.br
    -2\ ==\ page header is removed on the first page.
    -.br
    -3\ ==\ "section-page" numbering enabled.
    -.br
    -4\ ==\ page header is removed on the first page.
    -.br
    -5\ ==\ "section-page" and "section-figure" numbering enabled.
    -See also the number-register Sectf and Sectp.
    -.TP
    -.B Np
    -Numbered paragraphs, default 0.
    -.br
    -0\ ==\ not numbered
    -.br
    -1\ ==\ numbered in first level headings.
    -.TP
    -.B O
    -Page offset, only for command line settings.
    -.TP
    -.B Of
    -Format of figure,table,exhibit,equation titles, default 0.
    -.br
    -0\ =\ ". "
    -.br
    -1\ =\ " - "
    -.TP
    -.B P
    -Current page-number, normally the same as % unless "section-page" numbering
    -is enabled.
    -.TP
    -.B Pi
    -paragraph indent, default 5.
    -.TP
    -.B Pgps
    -Controls whether header and footer pointsize should follow the current
    -setting or just change when the header and footer is defined.
    -.in +.5i
    -.ti -.5i
    -.T2 Value
    -Description
    -.T2 0
    -Pointsize will only change to the current setting when \fB.PH\fP, \fB.PF\fP,
    -\&\fB.OH\fP, \fP.EH\fP, \fB.OF\fP or \fB.OE\fP is executed.
    -.T2 1
    -Pointsize will change after every \fB.S\fP.
    -This is the default.
    -.in
    -.TP
    -.B Ps
    -paragraph spacing, default 1.
    -.TP
    -.B Pt
    -Paragraph type, default 0.
    -.br
    -0\ ==\ left-justified
    -.br
    -1\ ==\ indented .P
    -.br
    -2\ ==\ indented .P except after .H, .DE or .LE.
    -.TP
    -.B Sectf
    -Flag controlling "section-figures".
    -A non-zero value enables this.
    -See also register N.
    -.TP
    -.B Sectp
    -Flag controlling "section-page-numbers".
    -A non-zero value enables this.
    -See also register N.
    -.TP
    -.B Si
    -Display indent, default 5.
    -.TP
    -.B Verbin
    -Indent for \fB.VERBON\fP, default 5n.
    -.TP
    -.B W
    -Line length, only for command line settings.
    -.TP
    -.B .mgm
    -Always 1.
    -.LP
    -.SH INTERNALS
    -The letter macros is using different submacros depending on
    -the letter type.
    -The name of the submacro has the letter type
    -as suffix.
    -It is therefore possible to define other letter types, either
    -in the national macro-file, or as local additions.
    -\&\fB.LT\fP will set the number variables \fBPt\fP and \fBPi\fP to 0 and 5.
    -The following strings and macros must be defined for a new letter type:
    -.TP
    -\fBlet@init_\fP\fItype\fP
    -This macro is called directly by \fB.LT\fP.
    -It is supposed to initialize
    -variables and other stuff.
    -.TP
    -\fBlet@head_\fP\fItype\fP
    -This macro prints the letter head, and is called instead of the
    -normal page header.
    -It is supposed to remove the alias \fBlet@header\fP,
    -otherwise it will be called for all pages.
    -.TP
    -\fBlet@sg_\fP\fItype\ name\ title\ n\ flag\ [arg1\ [arg2\ [...]]]\fP
    -\&\fB.SG\fP is calling this macro only for letters, memorandums has
    -its own processing.
    -\fIname\fP and \fItitle\fP is specified
    -thru \fB.WA\fP/\fB.WB\fP.
    -\fIn\fP is the counter, 1-max, and
    -\fIflag\fP is true for the last name.
    -Any other argument to \fB.SG\fP
    -is appended.
    -.TP
    -\fBlet@fc_\fP\fItype\ closing\fP
    -This macro is called by \fB.FC\fP, and has the
    -formal closing as argument.
    -.LP
    -\&\fB.LO\fP is implemented as a general option-macro.
    -\fB.LO\fP demands
    -that a string named \fBLet\fP\fItype\fP is defined, where \fItype\fP
    -is the letter type.
    -\&\fB.LO\fP will then assign the argument to the string
    -variable \fBlet*lo-\fP\fItype\fP.
    -.LP
    -.\".SH BUGS
    -.SH AUTHOR
    -Jörgen Hägg, Lund, Sweden .
    -.SH FILES
    -.TP
    -.B /usr/share/groff/1.19.2/tmac/tmac.m
    -.TP
    -.B /usr/share/groff/1.19.2/tmac/mm/*.cov
    -.TP
    -.B /usr/share/groff/1.19.2/tmac/mm/*.MT
    -.TP
    -.B /usr/share/groff/1.19.2/tmac/mm/locale
    -.SH "SEE ALSO"
    -.BR groff (1),
    -.BR troff (1),
    -.BR tbl (1),
    -.BR pic (1),
    -.BR eqn (1)
    -.br
    -.BR groff_mmse (7)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" coding: latin-1
    -.\" End:
    diff --git a/gen/usr/share/man/man7/groff_mmse.7 b/gen/usr/share/man/man7/groff_mmse.7
    deleted file mode 100644
    index 73b1ba0..0000000
    --- a/gen/usr/share/man/man7/groff_mmse.7
    +++ /dev/null
    @@ -1,86 +0,0 @@
    -.\"
    -.\" $Id: groff_mmse.man,v 2.2 2001/12/09 12:15:09 wlemb Exp $
    -.\" Skrivet av Jörgen Hägg, Lund, Sverige
    -.\"
    -.TH GROFF_MMSE 7 "1 March 2013" "Groff Version 1.19.2"
    -.SH NAMN
    -groff_mmse \- svenska mm makro för groff
    -.SH SYNTAX
    -.B groff
    -.B \-mmse
    -[
    -.IR flaggor .\|.\|.
    -]
    -[
    -.IR filer .\|.\|.
    -]
    -.SH BESKRIVNING
    -\fBmmse\fP är en svensk variant av \fBmm\fP. Alla texter
    -är översatta. En A4 sida får text som är 13 cm bred, 3.5 cm indragning
    -samt är 28.5 cm hög.
    -Det finns stöd för brevuppställning enligt svensk standard
    -för vänster och högerjusterad text.
    -.LP
    -\fBCOVER\fP kan använda \fIse_ms\fP som argument. Detta ger ett
    -svenskt försättsblad.
    -Se \fBgroff_mm(7)\fP för övriga detaljer.
    -.SH BREV
    -Tillgängliga brevtyper:
    -.TP
    -.B ".LT SVV"
    -Vänsterställd löptext med adressat i position T0 (vänsterställt).
    -.TP
    -.B ".LT SVH"
    -Högerställd löptext med adressat i position T4 (passar
    -fönsterkuvert).
    -.LP
    -Följande extra LO-variabler används.
    -.TP
    -.B ".LO DNAMN\fI namn\fP"
    -Anger dokumentets namn.
    -.TP
    -.br
    -.B ".LO MDAT\fI datum\fP"
    -Mottagarens datum, anges under \fBErt datum:\fP (\fBLetMDAT\fP).
    -.TP
    -.br
    -.B ".LO BIL\fI sträng\fP"
    -Anger bilaga, nummer eller sträng med \fBBilaga\fP (\fBLetBIL\fP)
    -som prefix.
    -.TP
    -.br
    -.B ".LO KOMP\fI text\fP"
    -Anger kompletteringsuppgift.
    -.TP
    -.br
    -.B ".LO DBET\fI beteckning\fP"
    -Anger dokumentbeteckning eller dokumentnummer.
    -.TP
    -.br
    -.B ".LO BET\fI beteckning\fP"
    -Anger beteckning (ärendebeteckning i form av diarienummer eller liknande).
    -.TP
    -.br
    -.B ".LO SIDOR\fI antal\fP"
    -Anger totala antalet sidor och skrivs ut efter sidnumret inom
    -parenteser.
    -.LP
    -Om makrot \fB.TP\fP är definierat anropas det efter utskrift av brevhuvudet.
    -Där lägger man lämpligen in postadress och annat som brevfot.
    -.SH "SKRIVET AV"
    -Jörgen Hägg, Lund, Sweden 
    -.SH FILER
    -.B /usr/share/groff/1.19.2/tmac/tmac.mse
    -.B /usr/share/groff/1.19.2/tmac/mm/se_*.cov
    -.SH "SE OCKSÃ…"
    -.BR groff (1),
    -.BR troff (1),
    -.BR tbl (1),
    -.BR pic (1),
    -.BR eqn (1)
    -.br
    -.BR groff_mm (7)
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man7/groff_mom.7 b/gen/usr/share/man/man7/groff_mom.7
    deleted file mode 100644
    index a61910a..0000000
    --- a/gen/usr/share/man/man7/groff_mom.7
    +++ /dev/null
    @@ -1,101 +0,0 @@
    -.ig
    -This file is part of groff, the GNU roff type-setting system.
    -
    -Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
    -written by Werner Lemberg 
    -
    -Permission is granted to copy, distribute and/or modify this document
    -under the terms of the GNU Free Documentation License, Version 1.1 or
    -any later version published by the Free Software Foundation; with the
    -Invariant Sections being this .ig-section and AUTHORS, with no
    -Front-Cover Texts, and with no Back-Cover Texts.
    -
    -A copy of the Free Documentation License is included as a file called
    -FDL in the main directory of the groff source package.
    -..
    -.
    -.do nr groff_mom_C \n[.C]
    -.cp 0
    -.
    -.mso www.tmac
    -.
    -.de TQ
    -.br
    -.ns
    -.TP \\$1
    -..
    -.
    -.TH GROFF_MOM 7 "16 May 2005" "Groff Version 1.19.2"
    -.
    -.
    -.SH NAME
    -.
    -groff_mom \- groff `mom' macros
    -.
    -.
    -.SH SYNOPSIS
    -.
    -.B groff
    -.B \-mom
    -[
    -.IR files .\|.\|.\&
    -]
    -.br
    -.B groff
    -.B \-m\ mom
    -[
    -.IR files .\|.\|.\&
    -]
    -.
    -.
    -.SH DESCRIPTION
    -.
    -.B mom
    -(\[lq]my own macros\[rq], \[lq]my other macros\[rq], \[lq]maximum
    -overdrive macros\[rq], .\|.\|.\&) is a macro set for groff, designed
    -primarily to format documents for PostScript output.
    -.PP
    -.B mom
    -provides two categories of macros: macros for typesetting and macros
    -for document processing.
    -The typesetting macros provide access to groff's typesetting power in
    -ways that are simpler to master and to use than groff's primitives.
    -The document processing macros provide customizable markup
    -\[lq]tags\[rq] that allow the user to design and output
    -professional-looking documents with a minimum of typesetting
    -intervention.
    -.PP
    -mom comes with her own (very) complete documentation in HTML format.
    -.
    -.SH FILES
    -.TP
    -.B om.tmac
    -\[en] the main macro file
    -.TQ
    -.B mom.tmac
    -\[en] a wrapper file that calls om.tmac directly.
    -.
    -.TP
    -.URL /usr/share/doc/groff/1.19.2/html/momdoc/toc.html /usr/share/doc/groff/1.19.2/html/momdoc/toc.html
    -\[en] entry point to the HTML documentation
    -.
    -.TP
    -.B /usr/share/doc/groff/1.19.2/examples/*.mom
    -\[en] example files using mom
    -.
    -.
    -.SH AUTHOR
    -.
    -.B mom
    -was written by
    -.MTO peter@faustus.dyn.ca "Peter Schaffter" .
    -Please send bug reports to the
    -.MTO bug-groff@gnu.org "groff bug mailing list"
    -or directly to the author, either at the address above or to
    -.MTO ptpi@golden.net "" .
    -.
    -.cp \n[groff_mom_C]
    -.
    -.\" Local Variables:
    -.\" mode: nroff
    -.\" End:
    diff --git a/gen/usr/share/man/man7/groff_ms.7 b/gen/usr/share/man/man7/groff_ms.7
    deleted file mode 100644
    index 2509f98..0000000
    --- a/gen/usr/share/man/man7/groff_ms.7
    +++ /dev/null
    @@ -1,1556 +0,0 @@
    -'\" t
    -.ig
    -Copyright (C) 1989-1995, 2001, 2002, 2003, 2004, 2005
    -  Free Software Foundation, Inc.
    -
    -Permission is granted to make and distribute verbatim copies of
    -this manual provided the copyright notice and this permission notice
    -are preserved on all copies.
    -
    -Permission is granted to copy and distribute modified versions of this
    -manual under the conditions for verbatim copying, provided that the
    -entire resulting derived work is distributed under the terms of a
    -permission notice identical to this one.
    -
    -Permission is granted to copy and distribute translations of this
    -manual into another language, under the above conditions for modified
    -versions, except that this permission notice may be included in
    -translations approved by the Free Software Foundation instead of in
    -the original English.
    -..
    -.
    -.do nr groff_ms_C \n[.C]
    -.cp 0
    -.
    -.TH GROFF_MS 7 "4 September 2005" "Groff Version 1.19.2"
    -.
    -.
    -.
    -.SH NAME
    -.
    -groff_ms \- groff ms macros
    -.
    -.
    -.
    -.SH SYNOPSIS
    -.
    -.B groff
    -.B \-ms
    -[
    -.IR options .\|.\|.\&
    -]
    -[
    -.IR files .\|.\|.\&
    -]
    -.br
    -.B groff
    -.B \-m\ ms
    -[
    -.IR options .\|.\|.\&
    -]
    -[
    -.IR files .\|.\|.\&
    -]
    -.
    -.
    -.
    -.SH DESCRIPTION
    -.
    -This manual page describes the GNU version of the
    -.I ms
    -macros,
    -part of the
    -.I groff
    -typesetting system.
    -The
    -.I ms
    -macros are mostly compatible with the
    -documented behavior of the 4.3
    -.SM BSD
    -Unix
    -.I ms
    -macros (see
    -.I Differences from troff ms
    -below for details).
    -The
    -.I ms
    -macros are suitable for reports, letters, books, and
    -technical documentation.
    -.
    -.
    -.
    -.SH USAGE
    -.
    -The
    -.I ms
    -macro package expects files to have
    -a certain amount of structure.
    -The simplest documents can begin with a paragraph macro
    -and consist of text separated by paragraph macros
    -or even blank lines.
    -Longer documents have a structure as follows:
    -.
    -.TP
    -.B "Document type"
    -If you use the
    -.B RP
    -(report) macro at the beginning of the document,
    -.I groff
    -prints the cover page information on its own page;
    -otherwise it prints the information on the
    -first page with your document text immediately following.
    -Other document formats found in AT&T
    -.I troff
    -are specific to AT&T
    -or Berkeley, and are not supported in
    -.IR "groff ms" .
    -.
    -.TP
    -.B "Format and layout"
    -By setting number registers,
    -you can change your document's type (font and size),
    -margins, spacing, headers and footers, and footnotes.
    -See 
    -.I "Document control registers"
    -below for more details.
    -.
    -.TP
    -.B "Cover page"
    -A cover page consists of a title,
    -and optionally the author's name and institution,
    -an abstract, and the date.
    -See
    -.I "Cover page macros"
    -below for more details.
    -.
    -.TP
    -.B "Body"
    -Following the cover page is your document.
    -It consists of paragraphs, headings, and lists.
    -.
    -.TP
    -.B "Table of contents"
    -Longer documents usually include a table of contents,
    -which you can add by placing the
    -.B TC
    -macro at the end of your document.
    -.
    -.
    -.SS "Document control registers"
    -.
    -The following table lists the document control
    -number registers.
    -For the sake of consistency,
    -set registers related to margins at the beginning of your document,
    -or just after the
    -.B RP
    -macro.
    -.
    -.LP
    -.ne 12
    -.B Margin settings
    -.RS
    -.na
    -.TS
    -cb   s cb s s cb s cb s
    -afCW s l  s s l  s l  s.
    -Reg.	Definition	Effective	Default
    -_
    -PO	T{
    -Page offset (left margin)
    -T}	T{
    -next page
    -T}	1i
    -LL	T{
    -Line length
    -T}	next para.	6i
    -LT	T{
    -Header/footer length
    -T}	next para.	6i
    -HM	T{
    -Top (header) margin
    -T}	next page	1i
    -FM	T{
    -Bottom (footer) margin
    -T}	next page	1i
    -_
    -.TE
    -.RE
    -.
    -.LP
    -.ne 12
    -.B Text settings
    -.RS
    -.TS
    -cb   s cb s s cb s cb s
    -afCW s l  s s l  s l  s.
    -Reg.	Definition	Effective	Default
    -_
    -PS	T{
    -Point size
    -T}	next para.	10p
    -VS	T{
    -Line spacing (leading)
    -T}	next para.	12p
    -PSINCR	T{
    -Point size increment
    -for section headings of
    -increasing importance
    -T}	next heading	1p
    -GROWPS	T{
    -Heading level
    -beyond which PSINCR
    -is ignored
    -T}	next heading	0
    -_
    -.TE
    -.RE
    -.
    -.LP
    -.ne 11
    -.B Paragraph settings
    -.RS
    -.TS
    -cb cb s cb cb
    -afCW l s l l .
    -Reg.	Definition	Effective	Default
    -_
    -PI	T{
    -Initial indent
    -T}	next para.	5n
    -PD	T{
    -Space between paragraphs
    -T}	next para.	0.3v
    -QI	T{
    -Quoted paragraph indent
    -T}	next para.	5n
    -PORPHANS	T{
    -Number of initial lines
    -to be kept together
    -T}	next para.	1
    -HORPHANS	T{
    -Number of initial lines
    -to be kept with heading
    -T}	next heading	1
    -_
    -.TE
    -.RE
    -.
    -.LP
    -.ne 7
    -.B Footnote settings
    -.RS
    -.TS
    -cb cb cb cb
    -afCW l l l .
    -Reg.	Definition	Effective	Default
    -_
    -FL	Footnote length	next footnote	\[rs]n[LL]*5/6
    -FI	Footnote indent	next footnote	2n
    -FF	Footnote format	next footnote	0
    -FPS	Point size	next footnote	\[rs]n[PS]-2
    -FVS	Vert. spacing	next footnote	\[rs]n[FPS]+2
    -FPD	Para. spacing	next footnote	\[rs]n[PD]/2
    -_
    -.TE
    -.RE
    -.
    -.LP
    -.ne 6
    -.B Other settings
    -.RS
    -.TS
    -cb   s cb s s cb s cb s
    -afCW s l  s s l  s l  s.
    -Reg.	Definition	Effective	Default
    -_
    -MINGW	T{
    -Minimum width between columns
    -T}	next page	2n
    -_
    -.TE
    -.ad
    -.RE
    -.
    -.
    -.SS "Cover page macros"
    -.
    -Use the following macros to create a cover page for your document
    -in the order shown.
    -.
    -.TP
    -.B .RP [no]
    -Specifies the report format for your document.
    -The report format creates a separate cover page.
    -With no
    -.B RP
    -macro,
    -.I groff
    -prints a subset of the
    -cover page on page\~1 of your document.
    -.
    -.IP
    -If you use the optional
    -.B no
    -argument,
    -.I groff
    -prints a title page but
    -does not repeat any of the title page information
    -(title, author, abstract, etc.\&)
    -on page\~1 of the document.
    -.
    -.TP
    -.B .P1 
    -(P-one) Prints the header on page\~1.
    -The default is to suppress the header.
    -.
    -.TP
    -.BI ".DA [" xxx ]
    -(optional) Print the current date,
    -or the arguments to the macro if any,
    -on the title page (if specified)
    -and in the footers.
    -This is the default for
    -.IR nroff .
    -.
    -.TP
    -.BI ".ND [" xxx ]
    -(optional) Print the current date,
    -or the arguments to the macro if any,
    -on the title page (if specified)
    -but not in the footers.
    -This is the default for
    -.IR troff .
    -.
    -.TP
    -.B .TL
    -Specifies the document title.
    -.I Groff
    -collects text following the
    -.B TL
    -macro into the title, until reaching the author name or abstract.
    -.
    -.TP
    -.B .AU
    -Specifies the author's name.
    -You can specify multiple authors by using an
    -.B AU
    -macro for each author.
    -.
    -.TP
    -.B .AI
    -Specifies the author's institution.
    -You can specify multiple institutions.
    -.
    -.TP
    -.B .AB [no]
    -Begins the abstract.
    -The default is to print the word
    -.BR ABSTRACT ,
    -centered and in italics, above the text of the abstract.
    -The option
    -.B no
    -suppresses this heading.
    -.
    -.TP
    -.B .AE
    -End the abstract.
    -.
    -.
    -.SS Paragraphs
    -.
    -Use the
    -.B PP
    -macro to create indented paragraphs,
    -and the
    -.B LP
    -macro to create paragraphs with no initial indent.
    -.
    -.PP
    -The
    -.B QP
    -macro indents all text at both left and right margins.
    -The effect is identical to the HTML
    -.B 
    -element. -The next paragraph or heading -returns margins to normal. -. -.PP -The -.B XP -macro produces an exdented paragraph. -The first line of the paragraph begins at -the left margin, -and subsequent lines are indented -(the opposite of -.BR PP ). -. -.PP -For each of the above paragraph types, -and also for any list entry introduced by the -.B IP -macro -(described later), -the document control register -.BR PORPHANS , -sets the -.I minimum -number of lines which must be printed, -after the start of the paragraph, -and before any page break occurs. -If there is insufficient space remaining on the current page -to accommodate this number of lines, -then a page break is forced -.I before -the first line of the paragraph is printed. -. -.PP -Similarly, -when a section heading -(see subsection -.I Headings -below) -preceeds any of these paragraph types, -the -.B HORPHANS -document control register specifies the -.I minimum -number of lines of the paragraph -which must be kept on the same page as the heading. -If insufficient space remains on the current page -to accommodate the heading and this number of lines of paragraph text, -then a page break is forced -.I before -the heading is printed. -. -. -.SS Headings -. -Use headings to create a hierarchical structure -for your document. -By default, -the -.I ms -macros print headings in -.B bold -using the same font family and point size as the body text. -For output devices which support scalable fonts, -this behaviour may be modified, -by defining the document control registers, -.B GROWPS -and -.BR PSINCR . -. -.PP -The following heading macros are available: -. -.TP -.BI .NH\ xx -Numbered heading. -The argument -.I xx -is either a numeric argument to indicate the -level of the heading, or -.I S\ xx\ xx\ \c -".\|.\|." -to set the section number explicitly. -If you specify heading levels out of sequence, -such as invoking -.B ".NH\ 3" -after -.BR ".NH\ 1" , -.I groff -prints a warning on standard error. -. -.IP -If the -.B GROWPS -register is set to a value -greater than the level of the heading, -then the point size of the heading will be increased by -.B PSINCR -units over the text size specified by the -.B PS -register, -for each level by which the heading level is less than -the value of -.BR GROWPS . -For example, -the sequence: -. -.RS -.ne 12 -.nf -.IP -\&.nr PS 10 -\&.nr GROWPS 3 -\&.nr PSINCR 1.5p -\&. -\&.NH 1 -Top Level Heading -\&. -\&.NH 2 -Second Level Heading -\&. -\&.NH 3 -Third Level Heading -.fi -.RE -. -.IP -will cause -.RI \*(lq 1.\ Top\ Level\ Heading \*(rq -to be printed in 13pt -.B bold -text, followed by -.RI \*(lq 1.1.\ Second\ Level\ Heading \*(rq -in 11.5pt -.B bold -text, while -.RI \*(lq 1.1.1.\ Third\ Level\ Heading \*(rq, -and all more deeply nested heading levels, -will remain in the 10pt -.B bold -text which is specified by the -.B PS -register. -. -.IP -Note that the value stored in -.B PSINCR -is interpreted in -.I groff -basic units; -the -.I p -scaling factor should be employed, -when assigning a value specified in points. -. -.IP -After invoking -.BR .NH , -the assigned heading number is available in the strings -.B SN-DOT -(exactly as it appears in the formatted heading), -and -.B SN-NO-DOT -(with its final period omitted). -The string -.B SN -is also defined, -as an alias for -.BR SN-DOT ; -if preferred, -the user may redefine it as an alias for -.BR SN-NO-DOT , -'ne 10 -by including the initialisation: -. -.RS -.nf -.IP -\&.ds SN-NO-DOT -\&.als SN SN-NO-DOT -.fi -.RE -. -.IP -.I before -the first use of -.BR .NH , -or simply: -. -.RS -.nf -.IP -\&.als SN SN-NO-DOT -.fi -.RE -. -.IP -.I after -the first use of -.BR .NH . -. -.TP -.BI .SH\ [ xx ] -Unnumbered subheading. -The use of the optional -.I xx -argument is a GNU extension, -which adjusts the point size of the unnumbered subheading -to match that of a numbered heading, -introduced using -.BI .NH\ xx -with the same value of -.IR xx . -For example, -given the same settings for -.BR PS , -.B GROWPS -and -.BR PSINCR , -as used in the preceeding -.B .NH -example, -the sequence: -. -.RS -.ne -.nf -.IP -\&.SH 2 -An Unnumbered Subheading -.fi -.RE -. -.IP -will print -.RI \*(lq "An Unnumbered Subheading" \*(rq -in 11.5pt -.B bold -text. -. -. -.SS Highlighting -. -The -.I ms -macros provide a variety of methods to highlight -or emphasize text: -. -.TP -.B ".B [\fItxt\fP [\fIpost\fP [\fIpre\fP]]]" -Sets its first argument in -.BR "bold type" . -If you specify a second argument, -.I groff -prints it in the previous font after -the bold text, with no intervening space -(this allows you to set punctuation after -the highlighted text without highlighting -the punctuation). -Similarly, it prints the third argument (if any) -in the previous font -.B before -the first argument. -For example, -.RS -. -.IP -\&.B foo ) ( -.RE -. -.IP -prints -.RB ( foo ). -. -.IP -If you give this macro no arguments, -.I groff -prints all text following in bold until -the next highlighting, paragraph, or heading macro. -. -.TP -.B ".R [\fItxt\fP [\fIpost\fP [\fIpre\fP]]]" -Sets its first argument in -roman (or regular) type. -It operates similarly to the -.B B -macro otherwise. -. -.TP -.B ".I [\fItxt\fP [\fIpost\fP [\fIpre\fP]]]" -Sets its first argument in -.IR "italic type" . -It operates similarly to the -.B B -macro otherwise. -. -.TP -.B ".CW [\fItxt\fP [\fIpost\fP [\fIpre\fP]]]" -Sets its first argument in a constant width face. -It operates similarly to the -.B B -macro otherwise. -. -.TP -.B ".BI [\fItxt\fP [\fIpost\fP [\fIpre\fP]]]" -Sets its first argument in bold italic type. -It operates similarly to the -.B B -macro otherwise. -. -.TP -.BI ".BX [" txt ] -Prints its argument and draws a box around it. -If you want to box a string that contains spaces, -use a digit-width space (\[rs]0). -. -.TP -.BI ".UL [" txt " [" post ]] -Prints its first argument with an underline. -If you specify a second argument, -.I groff -prints it in the previous font after -the underlined text, with no intervening space. -. -.TP -.B .LG -Prints all text following in larger type -(2\~points larger than the current point size) until -the next font size, highlighting, paragraph, or heading macro. -You can specify this macro multiple times -to enlarge the point size as needed. -. -.TP -.B .SM -Prints all text following in -smaller type -(2\~points smaller than the current point size) until -the next type size, highlighting, paragraph, or heading macro. -You can specify this macro multiple times -to reduce the point size as needed. -. -.TP -.B .NL -Prints all text following in -the normal point size -(that is, the value of the -.B PS -register). -. -.TP -.BI \[rs]*{ text \[rs]*} -Print the enclosed -.I text -as a superscript. -. -. -.SS Indents -. -You may need to indent sections of text. -A typical use for indents is to create nested lists and sublists. -. -.PP -Use the -.B RS -and -.B RE -macros to start and end a section of indented text, respectively. -The -.B PI -register controls the amount of indent. -. -.PP -You can nest indented sections as deeply as needed by -using multiple, nested pairs of -.B RS -and -.BR RE . -. -. -.SS Lists -. -The -.B IP -macro handles duties for all lists. -Its syntax is as follows: -. -.TP -.BI ".IP [" marker " [" width ]] -. -.IP -The -.I marker -is usually a bullet character -.B \[rs](bu -for unordered lists, -a number (or auto-incrementing number register) for numbered lists, -or a word or phrase for indented (glossary-style) lists. -. -.IP -The -.I width -specifies the indent for the body of each list item. -Once specified, the indent remains the same for all -list items in the document until specified again. -.\" ----- -.br -.ne 15 -. -. -.SS "Tab stops" -. -Use the -.B ta -request to set tab stops as needed. -Use the -.B TA -macro to reset tabs to the default (every 5n). -You can redefine the -.B TA -macro to create a different set of default tab stops. -. -. -.SS "Displays and keeps" -. -Use displays to show text-based examples or figures -(such as code listings). -Displays turn off filling, so lines of code can be -displayed as-is without inserting -.B br -requests in between each line. -Displays can be -.I kept -on a single page, or allowed to break across pages. -The following table shows the display types available. -.RS -.ne 11 -.na -.TS -cb s s s cbt s s -cb s cb s ^ s s -lfCW s lfCW s l s s. -Display macro Type of display -With keep No keep -_ -\&.DS L \&.LD Left-justified. -\&.DS I [\fIindent\fP] \&.ID T{ -Indented (default indent in the \fBDI\fP register). -T} -\&.DS B \&.BD T{ -Block-centered (left-justified, longest line centered). -T} -\&.DS C \&.CD Centered. -\&.DS R \&.RD Right-justified. -_ -.TE -.RE -.ad -. -.LP -Use the -.B DE -macro to end any display type. -The macros -.B Ds -and -.B De -were formerly provided as aliases for -.B DS -and -.BR DE , -respectively, but they have been removed, and should no longer be used. -X11 documents which actually use -.B Ds -and -.B De -always load a specific macro file from the X11 distribution (macros.t) -which provides proper definitions for the two macros. -.PP -To -.I keep -text together on a page, -such as -a paragraph that refers to a table (or list, or other item) -immediately following, use the -.B KS -and -.B KE -macros. -The -.B KS -macro begins a block of text to be kept on a single page, -and the -.B KE -macro ends the block. -. -.PP -You can specify a -.I "floating keep" -using the -.B KF -and -.B KE -macros. -If the keep cannot fit on the current page, -.I groff -holds the contents of the keep and allows text following -the keep (in the source file) to fill in the remainder of -the current page. -When the page breaks, -whether by an explicit -.B bp -request or by reaching the end of the page, -.I groff -prints the floating keep at the top of the new page. -This is useful for printing large graphics or tables -that do not need to appear exactly where specified. -. -.PP -The macros -.B B1 -and -.B B2 -can be used to enclose a text within a box; -.B .B1 -begins the box, and -.B .B2 -ends it. -Text in the box is automatically placed in a diversion -(keep). -. -. -.SS "Tables, figures, equations, and references" -. -The -.I -ms -macros support the standard -.I groff -preprocessors: -.IR tbl , -.IR pic , -.IR eqn , -and -.IR refer . -Mark text meant for preprocessors by enclosing it -in pairs of tags as follows: -. -.TP -.BR ".TS [H]" " and " .TE -Denotes a table, to be processed by the -.I tbl -preprocessor. -The optional -.BR H "\~argument" -instructs -.I groff -to create a running header with the information -up to the -.B TH -macro. -.I Groff -prints the header at the beginning of the table; -if the table runs onto another page, -.I groff -prints the header on the next page as well. -. -.TP -.BR .PS " and " .PE -Denotes a graphic, to be processed by the -.I pic -preprocessor. -You can create a -.I pic -file by hand, using the -AT&T -.I pic -manual available on the Web as a reference, -or by using a graphics program such as -.IR xfig . -. -.TP -.BR ".EQ [\fI\,align\/\fP]" " and " .EN -Denotes an equation, to be processed by the -.I eqn -preprocessor. -The optional -.I align -argument can be -.BR C , -.BR L , -or\~\c -.B I -to center (the default), left-justify, or indent -the equation. -. -.TP -.BR .[ " and " .] -Denotes a reference, to be processed by the -.I refer -preprocessor. -The GNU -.IR refer (1) -manual page provides a comprehensive reference -to the preprocessor and the format of the -bibliographic database. -. -. -.SS Footnotes -. -The -.I ms -macros provide a flexible footnote system. -You can specify a numbered footnote by using the -.B \[rs]** -escape, followed by the text of the footnote -enclosed by -.B FS -and -.B FE -macros. -. -.PP -You can specify symbolic footnotes -by placing the mark character (such as -.B \[rs](dg -for the dagger character) in the body text, -followed by the text of the footnote -enclosed by -.B FS\ \[rs](dg -and -.B FE -macros. -. -.PP -You can control how -.I groff -prints footnote numbers by changing the value of the -.B FF -register as follows: -.RS -.ne 7 -. -.TP -0 -Prints the footnote number as a superscript; indents the footnote (default). -. -.TP -1 -Prints the number followed by a period (like\~1.\&) -and indents the footnote. -. -.TP -2 -Like\~1, without an indent. -. -.TP -3 -Like\~1, but prints the footnote number as a hanging paragraph. -. -.LP -.RE -You can use footnotes safely within keeps and displays, -but avoid using numbered footnotes within floating keeps. -You can set a second -.B \[rs]** -between a -.B \[rs]** -and its corresponding -.BR .FS ; -as long as each -.B .FS -occurs -.I after -the corresponding -.B \[rs]** -and the occurrences of -.B .FS -are in the same order as the corresponding occurrences of -.BR \[rs]** . -. -. -.SS "Headers and footers" -. -There are two ways to define headers and footers: -. -.IP \(bu 3n -Use the strings -.BR LH , -.BR CH , -and -.B RH -to set the left, center, and right headers; use -.BR LF , -.BR CF , -and -.B RF -to set the left, center, and right footers. -This works best for documents that do not distinguish -between odd and even pages. -. -.IP \(bu -Use the -.B OH -and -.B EH -macros to define headers for the odd and even pages; and -.B OF -and -.B EF -macros to define footers for the odd and even pages. -This is more flexible than defining the individual strings. -The syntax for these macros is as follows: -.RS -. -.IP -.B ".OH '\fIleft\fP'\fIcenter\fP'\fIright\fP'" -.RE -. -.IP -You can replace the quote (') marks with any character not -appearing in the header or footer text. -. -. -.SS Margins -. -You control margins using a set of number registers. -The following table lists the register names and defaults: -.RS -.ne 8 -.na -.TS -cb s cb s s cb s cb s -afCW s l s s l s l s. -Reg. Definition Effective Default -_ -PO T{ -Page offset (left margin) -T} next page 1i -LL T{ -Line length -T} next para. 6i -LT T{ -Header/footer length -T} next para. 6i -HM T{ -Top (header) margin -T} next page 1i -FM T{ -Bottom (footer) margin -T} next page 1i -_ -.TE -.RE -.ad -. -.PP -Note that there is no right margin setting. -The combination of page offset and line length -provide the information necessary to -derive the right margin. -. -. -.SS "Multiple columns" -. -The -.I ms -macros can set text in as many columns as will reasonably -fit on the page. -The following macros are available. -All of them force a page break if a multi-column mode is already set. -However, if the current mode is single-column, starting a multi-column -mode does -.I not -force a page break. -. -.TP -.B .1C -Single-column mode. -. -.TP -.B .2C -Two-column mode. -. -.TP -.BI ".MC [" width " [" gutter ]] -Multi-column mode. -If you specify no arguments, it is equivalent to the -.B 2C -macro. -Otherwise, -.I width -is the width of each column and -.I gutter -is the space between columns. -The -.B MINGW -number register is the default gutter width. -. -. -.SS "Creating a table of contents" -. -Wrap text that you want to appear in the -table of contents in -.B XS -and -.B XE -macros. -Use the -.B TC -macro to print the table of contents at the end of the document, -resetting the page number to\~\c -.B i -(Roman numeral\~1). -. -.PP -You can manually create a table of contents -by specifying a page number as the first argument to -.BR XS . -Add subsequent entries using the -.B XA -macro. -For example: -.RS -. -.PP -.ne 8 -.nf -\&.XS 1 -Introduction -\&.XA 2 -A Brief History of the Universe -\&.XA 729 -Details of Galactic Formation -\&.\|.\|. -\&.XE -.fi -.RE -. -.LP -Use the -.B PX -macro to print a manually-generated table of contents -without resetting the page number. -. -.PP -If you give the argument -.B no -to either -.B PX -or -.BR TC , -.I groff -suppresses printing the title -specified by the -.B \[rs]*[TOC] -string. -. -. -.SS "Fractional point sizes" -. -Traditionally, the -.I ms -macros only support integer values for the document's font size and -vertical spacing. -To overcome this restriction, values larger than or equal to 1000 are taken -as fractional values, multiplied by 1000. -For example, `.nr\~PS\~10250' sets the font size to 10.25 points. -. -.LP -The following four registers accept fractional point sizes: -.BR PS , -.BR VS , -.BR FPS , -and -.BR FVS . -. -.LP -Due to backwards compatibility, the value of -.B VS -must be smaller than 40000 (this is 40.0 points). -. -. -. -.SH "DIFFERENCES FROM troff ms" -. -The -.I "groff ms" -macros are a complete re-implementation, -using no original AT&T code. -Since they take advantage of the extended features in -.IR groff , -they cannot be used with AT&T -.IR troff . -Other differences include: -. -.IP \(bu 3n -The internals of -.I "groff ms" -differ from the internals of Unix -.IR ms . -Documents that depend upon implementation details of Unix -.I ms -may not format properly with -.IR "groff ms" . -. -.IP \(bu -The error-handling policy of -.I "groff ms" -is to detect and report errors, -rather than silently to ignore them. -. -.IP \(bu -Bell Labs localisms are not implemented. -. -.IP \(bu -Berkeley localisms, in particular the -.B TM -and -.B CT -macros, -are not implemented. -. -.IP \(bu -.I "Groff ms" -does not work in compatibility mode (e.g., with the -.B \-C -option). -. -.IP \(bu -There is no support for typewriter-like devices. -. -.IP \(bu -.I "Groff ms" -does not provide cut marks. -. -.IP \(bu -Multiple line spacing is not supported -(use a larger vertical spacing instead). -. -.IP \(bu -Some Unix -.I ms -documentation says that the -.B CW -and -.B GW -number registers can be used to control the column width and -gutter width, respectively. -These number registers are not used in -.IR "groff ms" . -. -.IP \(bu -Macros that cause a reset -(paragraphs, headings, etc.\&) -may change the indent. -Macros that change the indent do not increment or decrement -the indent, but rather set it absolutely. -This can cause problems for documents that define -additional macros of their own. -The solution is to use not the -.B in -request but instead the -.B RS -and -.B RE -macros. -. -.IP \(bu -The number register -.B GS -is set to\~1 by the -.I "groff ms" -macros, -but is not used by the Unix -.I ms -macros. -Documents that need to determine whether -they are being formatted with Unix -.I ms -or -.I "groff ms" -should use this number register. -. -.IP \(bu -To make -.I "groff ms" -use the default page offset (which also specifies the left margin), -the -.B PO -number register must stay undefined until the first -.B ms -macro is evaluated. -This implies that -.B PO -should not be used early in the document, unless it is changed also: -Remember that accessing an undefined register automatically defines it. -.br -.ne 23 -. -. -.SS Strings -. -You can redefine the following strings to adapt the -.I "groff ms" -macros to languages other than English: -.TS -center; -cb cb -afCW l . -String Default Value -_ -REFERENCES References -ABSTRACT ABSTRACT -TOC Table of Contents -MONTH1 January -MONTH2 February -MONTH3 March -MONTH4 April -MONTH5 May -MONTH6 June -MONTH7 July -MONTH8 August -MONTH9 September -MONTH10 October -MONTH11 November -MONTH12 December -_ -.TE -. -.PP -The -.B \[rs]*- -string produces an em dash \[em] like this. -. -.PP -Use -.B \[rs]*Q -and -.B \[rs]*U -to get a left and right typographer's quote, -respectively, in -.I troff -(and plain quotes in -.IR nroff ). - -. -. -.SS Text Settings -. -The -.B FAM -string sets the default font family. -If this string is undefined at initialization, -it is set to Times. -. -.LP -The point size, vertical spacing, and inter-paragraph spacing for footnotes -are controlled by the number registers -.BR FPS , -.BR FVS , -and -.BR FPD ; -at initialization these are set to -.BR \[rs]n(PS-2 , -.BR \[rs]n[FPS]+2 , -and -.BR \[rs]n(PD/2 , -respectively. -If any of these registers are defined before initialization, -the initialization macro does not change them. -. -.LP -The hyphenation flags (as set by the -.B hy -request) are set from the -.B HY -register; -the default is\~14. -. -.PP -Improved accent marks -(as originally defined in Berkeley's -.I ms -version) -are available by specifying the -.B AM -macro at the beginning of your document. -You can place an accent over most characters -by specifying the string defining the accent -directly after the character. -For example, -.B n\[rs]*~ -produces an n with a tilde over it. -. -. -. -.SH "NAMING CONVENTIONS" -. -. -.LP -The following conventions are used for names of macros, strings and -number registers. -External names available to documents that use the -.I "groff ms" -macros contain only uppercase letters and digits. -. -.LP -Internally the macros are divided into modules; -naming conventions are as follows: -. -.IP \(bu 3n -Names used only within one module are of the form -.IB \%module * name\fR. -. -.IP \(bu -Names used outside the module in which they are defined are of the form -.IB \%module @ name\fR. -. -.IP \(bu -Names associated with a particular environment are of the form -.IB \%environment : name\fR; -these are used only within the -.B par -module. -. -.IP \(bu -.I name -does not have a module prefix. -. -.IP \(bu -Constructed names used to implement arrays are of the form -.IB \%array ! index\fR. -. -.PP -Thus the groff ms macros reserve the following names: -. -.IP \(bu 3n -Names containing the characters -.BR * , -.BR @ , -and\~\c -.BR : . -. -.IP \(bu -Names containing only uppercase letters and digits. -. -. -. -.SH FILES -. -.B /usr/share/groff/1.19.2/tmac/ms.tmac -(a wrapper file for -.BR s.tmac ) -.br -.B /usr/share/groff/1.19.2/tmac/s.tmac -. -. -. -.SH "SEE ALSO" -. -.BR groff (1), -.BR troff (1), -.BR tbl (1), -.BR pic (1), -.BR eqn (1), -.BR refer (1), -.I Groff: The GNU Implementation of troff -by Trent Fisher and Werner Lemberg. -. -. -. -.SH AUTHOR -. -Original manual page by James Clark -.IR "et al" ; -rewritten by Larry Kollar -(\fIlkollar@despammed.com\fR). -. -.cp \n[groff_ms_C] -. -.\" Local Variables: -.\" mode: nroff -.\" End: diff --git a/gen/usr/share/man/man7/groff_trace.7 b/gen/usr/share/man/man7/groff_trace.7 deleted file mode 100644 index f605c77..0000000 --- a/gen/usr/share/man/man7/groff_trace.7 +++ /dev/null @@ -1,550 +0,0 @@ -. -.TH GROFF_TRACE 7 "18 July 2003" "Groff Version 1.19.2" -.SH NAME -groff_trace \- groff macro package trace.tmac -.SH SYNOPSIS -.\" The .SH was moved to this place to make `apropos' happy. -. -. -.\" -------------------------------------------------------------------- -.\" Legalize -.\" -------------------------------------------------------------------- -. -.ig -groff_trace.7 - -File position: /tmac/groff_trace.man - -Last update: 14 July 2002 - -This file is part of groff, the GNU roff type-setting system. - -Copyright (C) 2002 Free Software Foundation, Inc. -written by Bernd Warken - -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.1 or -any later version published by the Free Software Foundation; with the -Invariant Sections being this .ig-section and AUTHOR, with no -Front-Cover Texts, and with no Back-Cover Texts. - -A copy of the Free Documentation License is included as a file called -FDL in the main directory of the groff source package. -.. -. -.\" -------------------------------------------------------------------- -.\" Setup -.\" -------------------------------------------------------------------- -. -.do nr groff_trace_C \n[.C] -.cp 0 -. -.mso www.tmac -. -.if n \{\ -. mso tty-char.tmac -. ftr CR R -. ftr CI I -. ftr CB B -.\} -. -.ds Ellipsis .\|.\|.\&\" -. -.\" Global static variables for inter-macro communication -.rr @+Example_font -. -.\" -------------------------------------------------------------------- -.\" setup for the macro definitions below -.\" -.\" naming: namespace:category_macro.variable_name (experimental) -. -.\" -------------------------------------------------------------------- -.\" configuration of prompt for `.Shell_cmd'* macros -.ds trace:Shell_cmd.prompt_text sh#\" prompt for shell commands -.ds trace:Shell_cmd+.prompt_text >\" prompt on continuation lines -.ds trace:Shell_cmd_base.prompt_font I\" font for prompts -. -.\" automatically determine setup from the configuration above -.als @f trace:Shell_cmd_base.prompt_font\" -.als @t trace:Shell_cmd.prompt_text\" -.als @t+ trace:Shell_cmd+.prompt_text\" -.ds trace:Shell_cmd.prompt \f[\*[@f]]\*[@t]\f[]\" needed -.ds trace:Shell_cmd+.prompt \f[\*[@f]]\*[@t+]\f[]\" needed -.nr @w \w'\*[trace:Shell_cmd.prompt]'\" -.nr @w+ \w'\*[trace:Shell_cmd+.prompt]'\" -.ft \*[@f] -.\" Full prompt width is maximum of texts plus 1m -.nr trace:Shell_cmd_base.prompt_width (\n[@w]>?\n[@w+]+1m)\" needed -.ft -.rm @f -.rm @f+ -.rm @t -.rm @t+ -.rr @w -.rr @w+ -. -.\"-------------------------------------------------------------------- -.\" Ignore all arguments like a comment, even after a .eo call. -.de c -.. -.c -------------------------------------------------------------------- -.de BIR -. ie (\\n[.$] < 3) \ -. BI \\$@ -. el \{\ -. ds @tmp@ \fB\\$1\f[]\fI\\$2\f[] -. shift 2 -. Text \\*[@tmp@]\fR\\$*\f[] -. rm @tmp@ -. \} -.. -.c -------------------------------------------------------------------- -.c .Env_var ( []) -.c -.c Display an environment variable, with optional punctuation. -.c -.de Env_var -. nh -. SM -. Text \f[CB]\\$1\f[]\\$2 -. hy -.. -.c -------------------------------------------------------------------- -.c .Error (...) -.c -.c Print error message to terminal and abort. -.c -.de Error -. tm \\$* -. ab -.. -.c -------------------------------------------------------------------- -.de Example -. if r@+Example_font \ -. Error previous .Example was not terminated by a ./Example -. nr @+Example_font \\n[.f] -. nh -. nf -.c RS \\n[trace:Shell_cmd_base.prompt_width]u -. ft CR -.. -.c -------------------------------------------------------------------- -.de /Example -. if !r@+Example_font \ -. Error no previous call to .Example -. ft \\n[@+Example_font] -.c RE -. fi -. hy -. rr @+Example_font -.. -.c -------------------------------------------------------------------- -.de Macdef -. if (\\n[.$] <= 0) \ -. Error \\$0 needs at least one argument. -. ds @s .\f[B]\\$1\f[]\" -. shift -. if (\\n[.$] > 0) \ -. as @s \~\f[I]\\$*\f[]\" -. IP \\*[@s] -. rm @s -.. -.c -------------------------------------------------------------------- -.de Macdef+ -. br -. ns -. Macdef \\$@ -.. -.c -------------------------------------------------------------------- -.c .Shell_cmd ( [] ...) -.c -.c A shell command line; display args alternating in fonts CR and CI. -.c -.c Examples: -.c .Shell_cmd "groffer --dpi 100 file" -.c result: `sh# groffer --dpi 100 file' -.c with 'sh#' in font I, the rest in CR -.c -.c .Shell_cmd groffer\~--dpi\~100\~file -.c result: the same as above -.c -.c .Shell_cmd "groffer --dpi=" value " file" -.c result: sh# groffer --dpi=value file -.c with `groffer --dpi=' and `file' in CR; `value' in CI -.c -.c .Shell_cmd groffer\~--dpi= value \~file -.c result: the same as the previous example -.c -.de Shell_cmd -. trace:Shell_cmd_base "\*[trace:Shell_cmd.prompt]" \\$@ -.. -.c -------------------------------------------------------------------- -.c .Shell_cmd+ ( [] ...) -.c -.c A continuation line for .Shell_cmd. -.c -.de Shell_cmd+ -. trace:Shell_cmd_base "\*[trace:Shell_cmd+.prompt]" \\$@ -.. -.c -------------------------------------------------------------------- -.c .Shell_cmd_base ( [ [] ...]) -.c -.c A shell command line; display args alternating in fonts CR and CI. -.c Internal, do not use directly. -.c -.c Globals: read-only register @.Shell_cmd_width -.c -.de trace:Shell_cmd_base -. if (\\n[.$] <= 0) \ -. return -. nr @+font \\n[.f]\" -. ds @prompt \\$1\" -. ft CR -. c gap between prompt and command -. nr @+gap \\n[trace:Shell_cmd_base.prompt_width]-\\w'\\*[@prompt]'\" -. ds @res \\*[@prompt]\h'\\n[@+gap]u'\" -. shift -. ds @cf CR\" -. while (\\n[.$] > 0) \{\ -. as @res \\f[\\*[@cf]]\\$1\" -. shift -. ie '\\*[@cf]'CR' \ -. ds @cf I\" -. el \ -. ds @cf CR\" -. \} -. br -. ad l -. nh -. nf -. Text \\*[@res]\" -. fi -. hy -. ad -. br -. ft \\n[@+font] -. rr @+font -. rr @+gap -. rm @cf -. rm @res -.. -.c -------------------------------------------------------------------- -.c .Text (...) -.c -.c Treat the arguments as text, no matter how they look. -.c -.de Text -. if (\\n[.$] == 0) \ -. return -. nop \)\\$*\) -.. -.c -------------------------------------------------------------------- -.c .Topic ([]) -.c -.c A bulleted paragraph. -.c -.de Topic -. ie (\\n[.$] = 0) \ -. .ds @indent 2m\" -. el \ -. .ds @indent \\$1\" -. TP \\*[@indent] -. Text \[bu] -. rm @indent -.. -.c -------------------------------------------------------------------- -.c .TP+ () -.c -.c Continuation line for .TP header. -.c -.de TP+ -. br -. ns -. TP \\$1 -.. -.c -------------------------------------------------------------------- -.de 'char -. ds @tmp@ `\f(CR\\$1\f[]' -. shift -. Text \\*[@tmp@]\\$* -. rm @tmp@ -.. -.c -------------------------------------------------------------------- -.de option -. ds @tmp@ \f(CB\\$1\f[] -. shift 1 -. Text \\*[@tmp@]\\$* -. rm @tmp@ -.. -.c -------------------------------------------------------------------- -.de argument -. ds @tmp@ \f(CI\\$1\f[] -. shift 1 -. Text \\*[@tmp@]\\$* -. rm @tmp@ -.. -.c -------------------------------------------------------------------- -.de request -. ds @tmp@ \f(CB\\$1\f[] -. shift 1 -. Text .\\*[@tmp@]\\$* -. rm @tmp@ -.. -.c -------------------------------------------------------------------- -.de escape -. ds @tmp@ \f[CB]\\$1\f[] -. shift 1 -. Text \[rs]\\*[@tmp@]\\$* -. rm @tmp@ -.. -. -. -.\" -------------------------------------------------------------------- -.\" SH SYNOPSIS -.\" -------------------------------------------------------------------- -. -.B groff -m trace -.RI [ options\*[Ellipsis] ] -.RI [ files\*[Ellipsis] ] -. -. -.P -Elements in brackets denote optional arguments, and the ellipsis means -that there can be any number of arguments of this kind. -. -. -.\" -------------------------------------------------------------------- -.SH DESCRIPTION -.\" -------------------------------------------------------------------- -. -The -.I trace -macro package of -.BR groff (1) -can be a valuable tool for debugging documents written in the roff -formatting language. -. -A call stack trace is protocolled on standard error, that means, a -diagnostic message is emitted on entering and exiting of a macro call. -. -This greatly eases to track down an error in some macro. -. -. -.P -This tracing process is activated by specifying the groff or troff -command line option -.BR "-m\~trace" . -This works also with the -.BR groffer (1) -viewer program. -. -A finer control can be obtained by including the macro file within the -document by the groff macro call -.BR ".mso\~trace.tmac" . -Only macros that are defined after this line are traced. -. -. -.P -If some other macro package should be traced as well it must be specified -after -.BR "-m\~trace" -on the command line. -. -. -.P -The macro file -.B trace.tmac -is unusual because it does not contain any macros to be called by a -user. -. -Instead, the existing macro definition and appending facilities are -modified such that they display diagnostic messages. -. -. -.\" -------------------------------------------------------------------- -.SH EXAMPLES -.\" -------------------------------------------------------------------- -. -.P -In the following examples, a roff fragment is fed into groff via -standard input. -. -As we are only interested in the diagnostic messages (standard error) -on the terminal, the normal formatted output (standard output) is -redirected into the nirvana device -.IR /dev/null . -The resulting diagnostic messages are displayed directly below the -corresponding example. -. -. -.\" -------------------------------------------------------------------- -.SS "Command line option" -. -.P -.Shell_cmd "echo '." -.Shell_cmd+ ".de test_macro" -.Shell_cmd+ ".." -.Shell_cmd+ ".test_macro" -.Shell_cmd+ ".test_macro some dummy arguments" -.Shell_cmd+ "' | groff -m trace >/dev/null" -.P -.Example -*** de trace enter: test_macro -*** trace exit: test_macro -*** de trace enter: test_macro "some" "dummy" "arguments" -*** trace exit: test_macro "some" "dummy" "arguments" -./Example -. -.P -The entry and the exit of each macro call is displayed on the terminal -(standard output) \[em] together with the arguments (if any). -. -. -.\" -------------------------------------------------------------------- -.SS "Nested macro calls" -. -.P -.Shell_cmd "echo '." -.Shell_cmd+ ".de child" -.Shell_cmd+ ".." -.Shell_cmd+ ".de parent" -.Shell_cmd+ ".child" -.Shell_cmd+ ".." -.Shell_cmd+ ".parent" -.Shell_cmd+ "' | groff -m trace >/dev/null" -.P -.Example -*** de trace enter: parent -*** de trace enter: child -*** trace exit: child -*** trace exit: parent -./Example -. -.P -This shows that macro calls can be nested. -. -This powerful feature can help to tack down quite complex call stacks. -. -. -.\" -------------------------------------------------------------------- -.SS "Activating with .mso" -. -.Shell_cmd "echo '." -.Shell_cmd+ ".de before" -.Shell_cmd+ .. -.Shell_cmd+ ".mso trace.tmac" -.Shell_cmd+ ".de after" -.Shell_cmd+ .. -.Shell_cmd+ .before -.Shell_cmd+ .after -.Shell_cmd+ .before -.Shell_cmd+ "' | groff >/dev/null" -.P -.Example -*** de trace enter: after -*** trace exit: after -./Example -. -.P -Here, the tracing is activated within the document, not by a command -line option. -. -As tracing was not active when macro -.I before -was defined, no call of this macro is protocolled; on the other hand, -the macro -.I after -is fully protocolled. -. -. -.\" -------------------------------------------------------------------- -.SH FILES -.\" -------------------------------------------------------------------- -. -The -.I trace -macros are kept in the file -.B trace.tmac -located in the -.IR "tmac directory" ; -see -.BR groff_tmac (5) -for details. -. -. -.\" -------------------------------------------------------------------- -.SH ENVIRONMENT -.\" -------------------------------------------------------------------- -. -.TP -.Env_var $GROFF_TMAC_PATH -A colon-separated list of additional tmac directories in which to -search for macro files; see -.BR groff_tmac (5) -for details. -. -. -.\" -------------------------------------------------------------------- -.SH AUTHOR -.\" -------------------------------------------------------------------- -. -Copyright (C) 2002 Free Software Foundation, Inc. -. -.P -This document is distributed under the terms of the FDL (GNU Free -Documentation License) version 1.1 or later. -. -You should have received a copy of the FDL on your system, it is also -available on-line at the -.URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" . -. -.P -This document is part of -.IR groff , -the GNU roff distribution. -. -It was written by -.MTO bwarken@mayn.de "Bernd Warken". -. -. -.\" -------------------------------------------------------------------- -.SH "SEE ALSO" -.\" -------------------------------------------------------------------- -. -.TP -.BR groff (1) -An overview of the groff system. -. -. -.TP -.BR troff (1) -For details on option -.BR -m . -. -. -.TP -.BR groffer (1) -A viewer program for all kinds of roff documents. -. -. -.TP -.BR groff_tmac (5) -A general description of groff macro packages. -. -. -.TP -.BR groff (7) -A short reference for the groff formatting language. -. -. -.P -A complete reference for all parts of the groff system is found in the -groff -.BR info (1) -file. -. -.cp \n[groff_trace_C] -. -.\" Local Variables: -.\" mode: nroff -.\" End: diff --git a/gen/usr/share/man/man7/groff_www.7 b/gen/usr/share/man/man7/groff_www.7 deleted file mode 100644 index 77346f7..0000000 --- a/gen/usr/share/man/man7/groff_www.7 +++ /dev/null @@ -1,525 +0,0 @@ -.TH GROFF_WWW 7 "26 May 2005" "Groff Version 1.19.2" -.\" Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 -.\" Free Software Foundation, Inc. -.\" Written by Gaius Mulley (gaius@glam.ac.uk) -.\" -.\" This file is part of groff. -.\" -.\" groff is free software; you can redistribute it and/or modify it under -.\" the terms of the GNU General Public License as published by the Free -.\" Software Foundation; either version 2, or (at your option) any later -.\" version. -.\" -.\" groff is distributed in the hope that it will be useful, but WITHOUT ANY -.\" WARRANTY; without even the implied warranty of MERCHANTABILITY or -.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -.\" for more details. -.\" -.\" You should have received a copy of the GNU General Public License along -.\" with groff; see the file COPYING. If not, write to the Free Software -.\" Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. -.\" -.\" user level guide to using the -mwww macroset -.\" -. -.do nr groff_www_C \n[.C] -.cp 0 -. -.do mso www.tmac -. -.\" we need the .LK here as we use it in the middle as an example -- -.\" once the user requests .LK then the automatic generation of links -.\" at the top of the document is suppressed. -.LK -. -. -.SH NAME -groff_www \- groff macros for authoring web pages -.HR -. -. -.SH SYNOPSIS -.B "groff \-mwww" -[ options ] -file ... -. -. -.SH DESCRIPTION -This manual page describes the GNU \-mwww macro package, which is part of -the groff document formatting system. -The manual page is very a basic guide, and the html device driver -.RB ( \%grohtml ) -has been completely rewritten but still remains as in an alpha state. -It has been included into the distribution so that a lot of people have a -chance to test it. -Note that this macro file will be automatically called (via the -.B troffrc -file) if you use -.BR \-Thtml . -.PP -To see the hyperlinks in action, please format this man page with the -.B \%grohtml -device. -.PP -Here is a summary of the functions found in this macro set. -.ta 2iL -.nf -\&.JOBNAME split output into multiple files -\&.HX automatic heading level cut off; - $1 point for sections/headers -\&.BCL specify colours on a web page -\&.BGIMG specify background image -\&.URL create a url using two parameters -\&.FTP create an ftp reference -\&.MTO create a html email address -\&.FTP create an ftp reference -\&.TAG generate an html name -\&.IMG include an image file -\&.PIMG include png image -\&.MPIMG place png on the margin and - wrap text around it -\&.HnS begin heading -\&.HnE end heading -\&.LK emit automatically collected links. -\&.HR produce a horizontal rule -\&.NHR suppress automatic generation of rules. -\&.HTL only generate HTML title -\&.HEAD add data to block -\&.ULS unorder list begin -\&.ULE unorder list end -\&.OLS ordered list begin -\&.OLE ordered list end -\&.DLS definition list begin -\&.DLE definition list end -\&.LI insert a list item -\&.DC generate a drop capital -\&.HTML pass an html raw request to the - device driver -\&.CDS code example begin -\&.CDE code example end -.fi -.PP -Output of the -.BR pic , -.BR eqn , -.BR refer , -and -.B tbl -preprocessors is acceptable as input. -. -. -.SH REQUESTS -.TP -.B .JOBNAME filename -Split output into multiple HTML files. -A file is split whenever a .SH or .NH\ 1 is encountered. -Its argument is the file stem name for future output files. -This option is equivalent to -.BR \%grohtml 's -.B \-j -option. -.TP -.B .HX n -Specify the cut off depth when generating links from section headings. -For example, a parameter of\~2 would cause -.B \%grohtml -to generate a list of links for -.B .NH\ 1 -and -.B .NH\ 2 -but not for -.BR .NH\ 3 . -Whereas -.RS -.IP -.nf -.B .HX 0 -.fi -.RE -.IP -will tell -.B \%grohtml -that no heading links should be created at all. -Another method for turning automatic headings off is by issuing the -the command line switch -.B \-P\-l -to -.BR groff . -. -.TP -.B .BCL foreground background active not-visited visited -This macro takes five parameters: foreground, background, active hypertext -link, hypertext link not yet visited, and visited hypertext link colour. -. -.TP -.B .BGIMG imagefile -the only parameter to this macro is the background image file. -. -.TP -.B .URL url [description] [after] -generates -.TAG URL -a URL using either one, two or three arguments. -The first parameter is the actual URL, the second is the name of the link, -and the third is optional stuff to be printed immediately afterwards. -If -.B description -and -.B after -are absent then the -.B url -becomes the anchor text. -Hyphenation is disabled while printing the actual URL; -explicit breakpoints -should be inserted with the -.B \[rs]: -escape. -Here is how to encode -.URL http://\:foo.\:org/ "foo" : -.RS -.IP -.B .URL http://\[rs]:foo.\[rs]:org/ "foo" : -.RE -.IP -If this is processed by a device other than -.B \-Thtml -it appears as: -.RS -.IP -\m[blue]foo\m[] \[la]\f[C]http://foo.org\f[]\[ra]: -.RE -.IP -The URL macro can be of any type; for example we can reference -.URL pic.html "Eric Raymond's pic guide" -by: -.RS -.IP -.B .URL pic.html \[dq]Eric Raymond's pic guide\[dq] -.RE -. -.TP -.B .MTO address [description] [after] -Generate an email html reference. -The first argument is mandatory as the email address. -The optional second argument is the text you see in your browser -If an empty argument is given, -.B address -is used instead. -An optional third argument is stuff printed immediately afterwards. -Hyphenation is disabled while printing the actual email address. -For example, -.MTO joe@user.org "Joe User" -was achieved by the following macro: -.RS -.IP -.B .MTO joe@user.org \[dq]Joe User\[dq] -.RE -.IP -Note that all the URLs actually are treated as consuming no textual space -in groff. -This could be considered as a bug since it causes some problems. -To circumvent this, -.B www.tmac -inserts a zero-width character which expands to a harmless space (only if -run with -.BR \-Thtml ). -. -.TP -.B .FTP url [description] [after] -indicates that data can be obtained via ftp. -The first argument is the url and the second is the browser text. -A third argument, similar to the macros above, is intended for stuff printed -immediately afterwards. -The second and the third parameter are optional. -Hyphenation is disabled while printing the actual URL. -As an example, here the location of the -.FTP ftp://\:ftp.gnu.org/ "GNU ftp server" . -The macro example above was specified by: -.RS -.IP -.B .FTP ftp://\[rs]:ftp.gnu.org/ \[dq]GNU ftp server\[dq] . -.RE -. -.TP -.B .TAG name -Generates an html name tag from its argument. -This can then be referenced using the -.URL #URL URL -macro. -As you can see, you must precede the tag name with -.B # -since it is a local reference. -This link was achieved via placing a TAG in the URL description above; -the source looks like this: -.RS -.IP -.nf -.ft B -\&.TP -\&.B URL -generates -\&.TAG URL -a URL using either two or three arguments. -\&.\|.\|. -.fi -.ft P -.RE -. -.TP -.B .IMG [-R|-L|-C] filename [width] [height] -Include a picture into the document. -The first argument is the horizontal location: right, left, or center -.RB ( \-R , -.BR \-L , -or -.BR \-C ). -Alignment is centered by default (-C). -The second argument is the filename. -The optional third and fourth arguments are the width and height. -If the width is absent it defaults to 1\~inch. -If the height is absent it defaults to the width. -This maps onto an html img tag. -If you are including a png image then it is advisable to use the -.B PIMG -macro. -. -.TP -.B .PIMG [-R|-L|-C] filename [width [height]] -Include an image in PNG format. -This macro takes exactly the same parameters as the -.B IMG -macro; it has the advantage of working with postscript and html devices -also since it can automatically convert the image into the EPS format, -using the following programs -of the -.B netpbm -package: -.BR pngtopnm , -.BR pnmcrop , -and -.BR pnmtops . -If the document isn't processed with -.B \-Thtml -it is necessary to use the -.B \-U -option of groff. -. -.TP -.B .MPIMG [-R|-L] [-G gap] filename [width [height]] -Place a PNG image on the margin and wrap text around it. -The first parameters are optional. -The alignment: left or right -.RB ( \-L -or -.BR \-R ) -specifies the margin where the picture is placed at. -The default alignment is left -.RB ( -L ). -Optionally, -.BI \-G \~gap -can be used to arrange a gap between the picture -and the text that wraps around it. -The default gap width is zero. -.br -The first non-optional argument is the filename. -The optional following arguments are the width and height. -If the width is absent it defaults to 1\~inch. -If the height is absent it defaults to the width. -Example: -.RS -.IP -.nf -.ft B -\&.MPIMG -L -G 2c foo.png 3c 1.5c -.ft P -.fi -.RE -.IP -The height and width may also be given as percentages. The PostScript -device calculates the width from the -.B .l -register and the height from the -.B .p -register. For example: -.RS -.IP -.nf -.ft B -\&.MPIMG -L -G 2c foo.png 15% -.ft P -.fi -.RE -. -.TP -.B .HnS n -Begin heading. -The numeric heading level -.I n -is specified by the first parameter. -Use this macro if your headings contain URL, FTP or MTO macros. -Example: -.RS -.IP -.nf -.ft B -\&.HnS 1 -\&.HR -GNU Troff -\&.URL http://groff.ffii.org (Groff) -\&\(em a -\&.URL http://www.gnu.org/ GNU -\&project. -\&Hosted by -\&.URL http://ffii.org/ FFII . -\&.HR -\&.HnE -.ft P -.fi -.RE -.IP -In this case you might wish to -disable automatic links to headings. -This can be done via -.B \-P\-l -from the command line. -.\" or by using a call to `.HX 0'. - -. -.TP -.B .HnE -End heading. -. -.TP -.B .LK -.TAG LK -Force \%grohtml to place the automatically generated links at this position. -If this manual page has been processed with -.B \-Thtml -those links can be seen right here. -. -.LK -. -.TP -.B .HR -Generate a full-width horizontal rule for -.BR \-Thtml . -No effect for all other devices. -. -.TP -.B .NHR -Suppress generation of the top and bottom rules which \%grohtml emits -by default. -. -.TP -.B .HTL -Generate an HTML title only. -This differs from the -.B TL -macro of the -.B ms -macro package which generates both an HTML title and an

    heading. -Use it to provide an HTML title as search engine fodder but a graphic title -in the document. -The macro terminates when a space or break is seen (.sp, .br). -. -.TP -.B .HEAD -Add arbitrary HTML data to the block. -Ignored if not processed with -.BR \-Thtml . -Example: -.RS -.IP -.nf -.B ".HEAD" "\[dq]\[dq]" -.fi -.ft P -.RE -. -.TP -.B .HTML -All text after this macro is treated as raw html. -If the document is processed without -.B \-Thtml -then the macro is ignored. -Internally, this macro is used as a building block for other higher-level -macros. -.IP -For example, the -.B BGIMG -macro is defined as -.RS -.IP -.nf -.ft B -\&.de BGIMG -\&. HTML -\&.. -.ft P -.fi -.RE -. -.TP -.B .DC l text [color] -Produce a drop capital. -The first parameter is the letter to be dropped and enlarged, the second -parameter -.B text -is the ajoining text whose height the first letter should not exceed. -The optional third parameter is the color of the dropped letter. -It defaults to black. -. -.TP -.B ".CDS" -Start displaying a code section in constant width font. -. -.TP -.B ".CDE" -End code display -. -.SH SECTION HEADING LINKS -By default -.B \%grohtml -generates links to all section headings and places these at the top of the -html document. (See -.URL #LK LINKS -for details of how to switch this off or alter the position). -. -. -.SH LIMITATIONS OF GROHTML -.LP -.B tbl -information is currently rendered as a PNG image. -. -. -.SH FILES -/usr/share/groff/1.19.2/tmac/www.tmac -. -. -.SH "SEE ALSO" -.BR groff (1), -.BR troff (1) -.BR \%grohtml (1), -.BR netpbm (1) -. -. -.SH AUTHOR -.B \%grohtml -was written by -.MTO gaius@glam.ac.uk "Gaius Mulley" -. -. -.SH BUGS -Report bugs to the -.MTO bug-groff@\:gnu.org "Groff Bug Mailing List" . -Include a complete, self-contained example that will allow the bug to be -reproduced, and say which version of groff you are using. -. -.cp \n[groff_www_C] -. -.\" Local Variables: -.\" mode: nroff -.\" End: diff --git a/gen/usr/share/man/man7/roff.7 b/gen/usr/share/man/man7/roff.7 deleted file mode 100644 index 12672ac..0000000 --- a/gen/usr/share/man/man7/roff.7 +++ /dev/null @@ -1,1278 +0,0 @@ -.ig -roff.man - -Last update: 1 Jun 2004 - -This file is part of groff, the GNU roff type-setting system. - -Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -written by Bernd Warken -maintained by Werner Lemberg - -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License, Version 1.1 or -any later version published by the Free Software Foundation; with the -Invariant Sections being this .ig-section and AUTHORS, with no -Front-Cover Texts, and with no Back-Cover Texts. - -A copy of the Free Documentation License is included as a file called -FDL in the main directory of the groff source package. -.. -. -.\" -------------------------------------------------------------------- -.\" Setup -.\" -------------------------------------------------------------------- -. -.do nr roff_C \n[.C] -.cp 0 -. -.mso www.tmac -. -.if n \{\ -. mso tty-char.tmac -. ftr CR R -. ftr CI I -. ftr CB B -.\} -. -.if '\*[.T]'dvi' \{\ -. ftr CB CW -.\} -. -. -.\" -------------------------------------------------------------------- -.\" String definitions -. -.\" Final `\""' comments are used to make Emacs happy, sic \"" -. -.\" The `-' sign for options. -.ie t \{\ -. ds @- \-\" -. ds @-- \-\-\" -.\} -.el \{\ -. ds @- -\" -. ds @-- --\" -.\} -. -.ds Comment \.\[rs]\[dq]\" -.ds Ellipsis \.\|.\|.\&\" -. -. -.\" -------------------------------------------------------------------- -.\" Begin of macro definitions -. -.de c -.\" this is like a comment request when escape mechanism is off -.. -. -.eo -. -.c --------------------------------------------------------------------- -. -.de Text -. nop \)\$* -.. -. -.de CodeSkip -. ie t \ -. sp 0.2v -. el \ -. sp -.. -. -.de Esc -. ds @1 \$1\" -. shift -. Text \f[B]\[rs]\*[@1]\f[]\$* -. rm @1 -.. -. -.de QuotedChar -. ds @1 \$1 -. shift -. nop `\f[B]\*[@1]\f[]'\$* -. rm @1 -.. -. -.c -------------------------------------------------------------------- -. -.c a shell command line -.de ShellCommand -. br -. ad l -. nh -. Text \f[I]sh#\h'1m'\f[]\f[CR]\$*\f[]\&\" -. ft R -. ft P -. hy -. ad -.. -. -.c -------------------------------------------------------------------- -. -.c ShortOpt ([c [punct]]) -.c -.c `-c' somewhere in the text. -.c The second argument is some trailing punctuation. -.c -.de ShortOpt -. ds @1 \$1\" -. shift -. nh -. Text \f[CB]\*[@-]\f[]\f[B]\*[@1]\f[]\/\$* -. hy -. rm @1 -.. -. -.de TP+ -. br -. ns -. TP \$1 -.. -. -.c -------------------------------------------------------------------- -. -.c Topic -.c -.de Topic -. TP 2m -. Text \[bu] -.. -. -.ec -.\" End of macro definitions -. -. -.\" -------------------------------------------------------------------- -.\" Title -.\" -------------------------------------------------------------------- -. -.TH ROFF 7 "2 June 2004" "Groff Version 1.19.2" -.SH NAME -roff \- concepts and history of roff typesetting -. -. -.\" -------------------------------------------------------------------- -.SH DESCRIPTION -.\" -------------------------------------------------------------------- -. -.I roff -is the general name for a set of type-setting programs, known under -names like -.IR troff , -.IR nroff , -.IR ditroff , -.IR groff , -etc. -. -A roff type-setting system consists of an extensible text formatting -language and a set of programs for printing and converting to other -text formats. -. -Traditionally, it is the main text processing system of Unix; every -Unix-like operating system still distributes a roff system as a core -package. -. -.P -The most common roff system today is the free software implementation -.IR "GNU roff", -.BR groff (1). -. -The pre-groff implementations are referred to as -.I classical -(dating back as long as 1973). -. -.I groff -implements the look-and-feel and functionality of its classical -ancestors, but has many extensions. -. -As -.I groff -is the only roff system that is available for every (or almost every) -computer system it is the de-facto roff standard today. -. -.P -In some ancient Unix systems, there was a binary called -.B roff -that implemented the even more ancient -.B runoff -of the -.I Multics -operating system, cf. section -.BR HISTORY . -The functionality of this program was very restricted even in -comparison to ancient troff; it is not supported any longer. -. -Consequently, in this document, the term -.I roff -always refers to the general meaning of -.IR "roff system" , -not to the ancient roff binary. -. -.P -In spite of its age, roff is in wide use today, for example, the manual -pages on UNIX systems -.RI ( man\~pages\/ ), -many software books, system documentation, standards, and corporate -documents are written in roff. -. -The roff output for text devices is still unmatched, and its graphical -output has the same quality as other free type-setting programs and is -better than some of the commercial systems. -. -.P -The most popular application of roff is the concept of -.I manual pages -or shortly -.IR "man pages" ; -this is the standard documentation system on many operating systems. -. -.P -This document describes the historical facts around the development -of the -.IR "roff system" ; -some usage aspects common to all roff versions, details on the roff -pipeline, which is usually hidden behind front-ends like -.BR groff (1); -an general overview of the formatting language; some tips for editing -roff files; and many pointers to further readings. -. -. -.\" -------------------------------------------------------------------- -.SH "HISTORY" -.\" -------------------------------------------------------------------- -. -The -.I roff -text processing system has a very long history, dating back to the -1960s. -. -The roff system itself is intimately connected to the Unix operating -system, but its roots go back to the earlier operating systems CTSS -and Multics. -. -. -.\" -------------------------------------------------------------------- -.SS "The Predecessor runoff" -.\" -------------------------------------------------------------------- -. -.P -The evolution of -.I roff -is intimately related to the history of the operating systems. -. -Its predecessor -.B runoff -was written by -.I Jerry Saltzer -on the -.I CTSS -operating system -.RI ( "Compatible Time Sharing System" ) -as early as 1961. -. -When CTSS was further developed into the operating system -.URL http://\:www.multicians.org "Multics" , -the famous predecessor of Unix from 1963, -.I runoff -became the main format for documentation and text processing. -. -Both operating systems could only be run on very expensive computers -at that time, so they were mostly used in research and for official -and military tasks. -. -.P -The possibilities of the -.I runoff -language were quite limited as compared to modern roff. -. -Only text output was possible in the 1960s. -. -This could be implemented by a set of requests of length\~2, many of -which are still identically used in roff. -. -The language was modelled according to the habits of typesetting in -the pre-computer age, where lines starting with a dot were used in -manuscripts to denote formatting requests to the person who would -perform the typesetting manually later on. -. -.P -The runoff program was written in the -.I PL/1 -language first, later on in -.IR BCPL , -the grandmother of the -.IR C \~\c -programming language. -. -In the Multics operating system, the help system was handled by -runoff, similar to roff's task to manage the Unix manual pages. -. -There are still documents written in the runoff language; for examples -see Saltzer's home page, cf. section -.BR "SEE ALSO" . -. -. -.\" -------------------------------------------------------------------- -.SS "The Classical nroff/troff System" -.\" -------------------------------------------------------------------- -. -In the 1970s, the Multics off-spring -.I Unix -became more and more popular because it could be run on affordable -machines and was easily available for universities at that time. -. -At MIT (the Massachusetts Institute of Technology), there was a need to -drive the Wang -.I Graphic Systems CAT -typesetter, a graphical output device from a PDP-11 computer running -Unix. -. -As runoff was too limited for this task it was further developed into -a more powerful text formatting system by -.IR "Josef F. Osanna" , -a main developer of the Multics operating system and programmer of -several runoff ports. -. -.P -The name -.I runoff -was shortened to -.IR roff . -The greatly enlarged language of Osanna's concept included already all -elements of a full -.IR "roff system" . -. -All modern roff systems try to implement compatibility to this system. -. -So Joe Osanna can be called the father of all roff systems. -. -.P -This first -.I roff system -had three formatter programs. -. -.TP -.B troff -.RI ( "typesetter roff\/" ) -generated a graphical output for the -.I CAT -typesetter as its only device. -. -.TP -.B nroff -produced text output suitable for terminals and line printers. -. -.TP -.B roff -was the reimplementation of the former runoff program with its limited -features; this program was abandoned in later versions. -. -Today, the name -.I roff -is used to refer to a troff/\:nroff sytem as a whole. -. -.P -Osanna first version was written in the PDP-11 assembly language and -released in 1973. -. -.I Brian Kernighan -joined the -.I roff -development by rewriting it in the C\~programming language. -. -The C\~version was released in 1975. -. -.P -The syntax of the formatting language of the -.BR nroff / troff -programs was documented in the famous -.IR "Troff User's Manual [CSTR\~#54]" , -first published in 1976, with further revisions up to 1992 by Brian -Kernighan. -. -This document is the specification of the -.IR "classical troff" . -All later -.I roff -systems tried to establish compatibility with this specification. -. -.P -After Osanna had died in 1977 by a heart-attack at the age of about\~50, -Kernighan went on with developing troff. -. -The next milestone was to equip troff with a general interface to -support more devices, the intermediate output format and the -postprocessor system. -. -This completed the structure of a -.I "roff system" -as it is still in use today; see section -.BR "USING ROFF" . -. -In 1979, these novelties were described in the paper -.IR "[CSTR\~#97]" . -This new troff version is the basis for all existing newer troff -systems, including -.IR groff . -. -On some systems, this -.I device independent troff -got a binary of its own, called -.BR ditroff (7). -. -All modern -.B troff -programs already provide the full ditroff capabilities automatically. -. -. -.\" -------------------------------------------------------------------- -.SS "Commercialization" -.\" -------------------------------------------------------------------- -. -A major degradation occurred when the easily available Unix\~7 -operating system was commercialized. -. -A whole bunch of divergent operating systems emerged, fighting each -other with incompatibilities in their extensions. -. -Luckily, the incompatibilities did not fight the original troff. -. -All of the different commercial roff systems made heavy use of -Osanna/\:Kernighan's open source code and documentation, but sold them -as \[lq]their\[rq] system \[em] with only minor additions. -. -.P -The source code of both the ancient Unix and classical troff weren't -available for two decades. -. -Fortunately, Caldera bought SCO UNIX in 2001. -. -In the following, Caldera made the ancient source code accessible -on-line for non-commercial use, cf. section -.BR "SEE ALSO" . -. -. -.\" -------------------------------------------------------------------- -.SS "Free roff" -.\" -------------------------------------------------------------------- -. -None of the commercial roff systems could attain the status of a -successor for the general roff development. -. -Everyone was only interested in their own stuff. -. -This led to a steep downfall of the once excellent -Unix operating system during the 1980s. -. -.P -As a counter-measure to the galopping commercialization, AT&T Bell -Labs tried to launch a rescue project with their -.I Plan\~9 -operating system. -. -It is freely available for non-commercial use, even the source code, -but has a proprietary license that impedes the free development. -. -This concept is outdated, so Plan\~9 was not accepted as a platform to -bundle the main-stream development. -. -.P -The only remedy came from the emerging free operatings systems -(386BSD, GNU/\:Linux, etc.) and software projects during the 1980s and -1990s. -. -These implemented the ancient Unix features and many extensions, such -that the old experience is not lost. -. -In the 21st century, Unix-like systems are again a major factor in -computer industry \[em] thanks to free software. -. -.P -The most important free roff project was the GNU port of troff, -created by James Clark and put under the -.URL http://\:www.gnu.org/\:copyleft "GNU Public License" . -. -It was called -.I groff -.RI ( "GNU roff" ). -See -.BR groff (1) -for an overview. -. -.P -The groff system is still actively developed. -. -It is compatible to the classical troff, but many extensions were -added. -. -It is the first roff system that is available on almost all operating -systems \[em] and it is free. -. -This makes groff the de-facto roff standard today. -. -. -.\" -------------------------------------------------------------------- -.SH "USING ROFF" -.\" -------------------------------------------------------------------- -. -Most people won't even notice that they are actually using roff. -. -When you read a system manual page (man page) roff is working in the -background. -. -Roff documents can be viewed with a native viewer called -.BR \%xditview (1x), -a standard program of the X window distribution, see -.BR X (7x). -. -But using roff explicitly isn't difficult either. -. -.P -Some roff implementations provide wrapper programs that make it easy -to use the roff system on the shell command line. -. -For example, the GNU roff implementation -.BR groff (1) -provides command line options to avoid the long command pipes of -classical troff; a program -.BR grog (1) -tries to guess from the document which arguments should be used for a -run of groff; people who do not like specifying command line options -should try the -.BR groffer (1) -program for graphically displaying groff files and man pages. -. -. -.\" -------------------------------------------------------------------- -.SS "The roff Pipe" -.\" -------------------------------------------------------------------- -. -Each roff system consists of preprocessors, roff formatter programs, -and a set of device postprocessors. -. -This concept makes heavy use of the -.I piping -mechanism, that is, a series of programs is called one after the other, -where the output of each program in the queue is taken as the input -for the next program. -. -.CodeSkip -. -.ds @1 "cat \f[I]file\f[P] |\"" -.ds @2 "\*[Ellipsis] | \f[I]preproc\f[P] | \*[Ellipsis] |\"" -.ds @3 "troff \f[I]options\f[P] | \f[I]postproc\f[P]\"" -. -.ShellCommand "\*[@1] \*[@2] \*[@3]" -. -.rm @1 -.rm @2 -.rm @3 -.P -The preprocessors generate roff code that is fed into a roff formatter -(e.g. troff), which in turn generates -.I intermediate output -that is fed into a device postprocessor program for printing or final -output. -. -.P -All of these parts use programming languages of their own; each -language is totally unrelated to the other parts. -. -Moreover, roff macro packages that were tailored for special purposes -can be included. -. -.P -Most roff documents use the macros of some package, intermixed with -code for one or more preprocessors, spiced with some elements from the -plain roff language. -. -The full power of the roff formatting language is seldom needed by -users; only programmers of macro packages need to know about the gory -details. -. -. -. -.\" -------------------------------------------------------------------- -.SS "Preprocessors" -.\" -------------------------------------------------------------------- -. -A roff preprocessor is any program that generates output that -syntactically obeys the rules of the roff formatting language. -. -Each preprocessor defines a language of its own that is translated -into roff code when run through the preprocessor program. -. -Parts written in these languages may be included within a roff -document; they are identified by special roff requests or macros. -. -Each document that is enhanced by preprocessor code must be run -through all corresponding preprocessors before it is fed into the -actual roff formatter program, for the formatter just ignores all -alien code. -. -The preprocessor programs extract and transform only the document -parts that are determined for them. -. -.P -There are a lot of free and commercial roff preprocessors. -. -Some of them aren't available on each system, but there is a small -set of preprocessors that are considered as an integral part of each -roff system. -. -The classical preprocessors are -. - -.de @TP -.\" local indent for .TP -.TP \\w'\\f[B]soelim\\f[P]'u+2n -.. -.P -.RS -.PD 0 -.@TP -.B tbl -for tables -.@TP -.B eqn -for mathematical formul\[ae] -.@TP -.B pic -for drawing diagrams -.@TP -.B refer -for bibliographic references -.@TP -.B soelim -for including macro files from standard locations -.PD -.RE -. -.P -Other known preprocessors that are not available on all systems -include -. -.P -.RS -.PD 0 -.@TP -.B chem -for drawing chemical formul\[ae]. -.@TP -.B grap -for constructing graphical elements. -.@TP -.B grn -for including -.BR gremlin (1) -pictures. -.PD -.RE -. -.rm @TP -. -.\" -------------------------------------------------------------------- -.SS "Formatter Programs" -.\" -------------------------------------------------------------------- -. -A -.I roff formatter -is a program that parses documents written in the roff formatting -language or uses some of the roff macro packages. -. -It generates -.IR "intermediate output" , -which is intended to be fed into a single device postprocessor that -must be specified by a command-line option to the formatter program. -. -The documents must have been run through all necessary preprocessors -before. -. -.P -The output produced by a roff formatter is represented in yet another -language, the -.IR "intermediate output format" -or -.IR "troff output" . -This language was first specified in -.IR "[CSTR\~#97]" ; -its GNU extension is documented in -.BR groff_out (5). -. -The intermediate output language is a kind of assembly language -compared to the high-level roff language. -. -The generated intermediate output is optimized for a special device, -but the language is the same for every device. -. -.P -The roff formatter is the heart of the roff system. -. -The traditional roff had two formatters, -.B nroff -for text devices and -.B troff -for graphical devices. -. -.P -Often, the name -.I troff -is used as a general term to refer to both formatters. -. -. -.\" -------------------------------------------------------------------- -.SS "Devices and Postprocessors" -.\" -------------------------------------------------------------------- -. -Devices are hardware interfaces like printers, text or graphical -terminals, etc., or software interfaces such as a conversion into a -different text or graphical format. -. -.P -A roff postprocessor is a program that transforms troff output into a -form suitable for a special device. -. -The roff postprocessors are like device drivers for the output target. -. -.P -For each device there is a postprocessor program that fits the device -optimally. -. -The postprocessor parses the generated intermediate output and -generates device-specific code that is sent directly to the device. -. -.P -The names of the devices and the postprocessor programs are not fixed -because they greatly depend on the software and hardware abilities of -the actual computer. -. -For example, the classical devices mentioned in -.I [CSTR\~#54] -have greatly changed since the classical times. -. -The old hardware doesn't exist any longer and the old graphical -conversions were quite imprecise when compared to their modern -counterparts. -. -.P -For example, the Postscript device -.I post -in classical troff had a resolution -of 720, while groff's -.I ps -device has 72000, a refinement of factor 100. -. -.P -Today the operating systems provide device drivers for most -printer-like hardware, so it isn't necessary to write a special -hardware postprocessor for each printer. -. -. -.\" -------------------------------------------------------------------- -.SH "ROFF PROGRAMMING" -.\" -------------------------------------------------------------------- -. -Documents using roff are normal text files decorated by roff -formatting elements. -. -The roff formatting language is quite powerful; it is almost a full -programming language and provides elements to enlarge the language. -. -With these, it became possible to develop macro packages that are -tailored for special applications. -. -Such macro packages are much handier than plain roff. -. -So most people will choose a macro package without worrying about the -internals of the roff language. -. -. -.\" -------------------------------------------------------------------- -.SS "Macro Packages" -.\" -------------------------------------------------------------------- -. -Macro packages are collections of macros that are suitable to format a -special kind of documents in a convenient way. -. -This greatly eases the usage of roff. -. -The macro definitions of a package are kept in a file called -.IB name .tmac -(classically -.BI tmac. name\c -). -. -All tmac files are stored in one or more directories at standardized -positions. -. -Details on the naming of macro packages and their placement is found -in -.BR groff_tmac (5). -. -.P -A macro package that is to be used in a document can be announced to -the formatter by the command line option -.ShortOpt m , -see -.BR troff (1), -or it can be specified within a document using the file inclusion -requests of the roff language, see -.BR groff (7). -. -.P -Famous classical macro packages are -.I man -for traditional man pages, -.I mdoc -for BSD-style manual pages; -the macro sets for books, articles, and letters are -.I me -(probably from the first name of its creator -.I Eric -Allman), -.I ms -(from -.IR "Manuscript Macros\/" ), -and -.I mm -(from -.IR "Memorandum Macros\/" ). -. -. -.\" -------------------------------------------------------------------- -.SS "The roff Formatting Language" -.\" -------------------------------------------------------------------- -. -The classical roff formatting language is documented in the -.I Troff User's Manual -.IR "[CSTR\~#54]" . -. -The roff language is a full programming language providing requests, -definition of macros, escape sequences, string variables, number or -size registers, and flow controls. -. -.P -.I Requests -are the predefined basic formatting commands similar to the commands -at the shell prompt. -. -The user can define request-like elements using predefined roff -elements. -. -These are then called -.IR macros . -. -A document writer will not note any difference in usage for requests -or macros; both are written on a line on their own starting with a dot. -. -.P -.I Escape sequences -are roff elements starting with a backslash -.QuotedChar \[rs] . -They can be inserted anywhere, also in the midst of text in a line. -. -They are used to implement various features, including the insertion of -non-ASCII characters with -.Esc ( , -font changes with -.Esc f , -in-line comments with -.Esc \[dq] , -the escaping of special control characters like -.Esc \[rs] , -and many other features. -. -.P -.I Strings -are variables that can store a string. -. -A string is stored by the -.B .ds -request. -. -The stored string can be retrieved later by the -.B \[rs]* -escape sequence. -. -.P -.I Registers -store numbers and sizes. -. -A register can be set with the request -.B .nr -and its value can be retrieved by the escape sequence -.BR "\[rs]n" . -. -. -.\" -------------------------------------------------------------------- -.SH "FILE NAME EXTENSIONS" -.\" -------------------------------------------------------------------- -. -Manual pages (man pages) take the section number as a file name -extension, e.g., the filename for this document is -.IR roff.7 , -i.e., it is kept in section\~7 -of the man pages. -. -.P -The classical macro packages take the package name as an extension, e.g. -.IB file. me -for a document using the -.I me -macro package, -.IB file. mm -for -.IR mm , -.IB file. ms -for -.IR ms , -.IB file. pic -for -.I pic -files, -etc. -. -.P -But there is no general naming scheme for roff documents, though -.IB file. tr -for -.I troff file -is seen now and then. -. -Maybe there should be a standardization for the filename extensions of -roff files. -. -.P -File name extensions can be very handy in conjunction with the -.BR less (1) -pager. -. -It provides the possibility to feed all input into a command-line pipe -that is specified in the shell environment variable -.BR LESSOPEN . -This process is not well documented, so here an example: -. -.CodeSkip -.ShellCommand LESSOPEN='|lesspipe %s' -.CodeSkip -. -where -.B lesspipe -is either a system supplied command or a shell script of your own. -. -. -.\" -------------------------------------------------------------------- -.SH "EDITING ROFF" -.\" -------------------------------------------------------------------- -. -The best program for editing a roff document is Emacs (or Xemacs), see -.BR emacs (1). -It provides an -.I nroff -mode that is suitable for all kinds of roff dialects. -. -This mode can be activated by the following methods. -. -.P -When editing a file within Emacs the mode can be changed by typing -.RI ` "M-x nroff-mode" ', -where -.B M-x -means to hold down the -.B Meta -key (or -.BR Alt ) -and hitting the -.BR x\~ key -at the same time. -. -.P -But it is also possible to have the mode automatically selected when -the file is loaded into the editor. -. -.Topic -The most general method is to include the following 3 comment lines at -the end of the file. -. -.CodeSkip -.nf -.B \*[Comment] Local Variables: -.B \*[Comment] mode: nroff -.B \*[Comment] End: -.fi -. -.Topic -There is a set of file name extensions, e.g. the man pages that -trigger the automatic activation of the nroff mode. -. -.Topic -Theoretically, it is possible to write the sequence -.CodeSkip -.B \*[Comment] \%-*-\ nroff\ -*- -.CodeSkip -as the first line of a file to have it started in nroff mode when -loaded. -. -Unfortunately, some applications such as the -.B man -program are confused by this; so this is deprecated. -. -.P -All roff formatters provide automated line breaks and horizontal and -vertical spacing. -. -In order to not disturb this, the following tips can be helpful. -. -.Topic -Never include empty or blank lines in a roff document. -. -Instead, use the empty request (a line consisting of a dot only) or a -line comment -.B \*[Comment] -if a structuring element is needed. -. -.Topic -Never start a line with whitespace because this can lead to -unexpected behavior. -. -Indented paragraphs can be constructed in a controlled way by roff -requests. -. -.Topic -Start each sentence on a line of its own, for the spacing after a dot -is handled differently depending on whether it terminates an -abbreviation or a sentence. -. -To distinguish both cases, do a line break after each sentence. -. -.Topic -To additionally use the auto-fill mode in Emacs, it is best to insert -an empty roff request (a line consisting of a dot only) after each -sentence. -. -.P -The following example shows how optimal roff editing could look. -. -.IP -.nf -This is an example for a roff document. -.Text . -This is the next sentence in the same paragraph. -.Text . -This is a longer sentence stretching over several -lines; abbreviations like `cf.' are easily -identified because the dot is not followed by a -line break. -.Text . -In the output, this will still go to the same -paragraph. -.fi -. -.P -Besides Emacs, some other editors provide nroff style files too, e.g.\& -.BR vim (1), -an extension of the -.BR vi (1) -program. -. -. -.\" -------------------------------------------------------------------- -.SH BUGS -.\" -------------------------------------------------------------------- -. -.I UNIX\[rg] -is a registered trademark of the Open Group. -. -But things have improved considerably after Caldera had bought SCO -UNIX in 2001. -. -. -.\" -------------------------------------------------------------------- -.SH "SEE ALSO" -.\" -------------------------------------------------------------------- -. -There is a lot of documentation on roff. -. -The original papers on classical troff are still available, and all -aspects of groff are documented in great detail. -. -. -.\" -------------------------------------------------------------------- -.SS "Internet sites" -.\" -------------------------------------------------------------------- -. -.TP -troff.org -.URL http://\:www.troff.org "The historical troff site" -provides an overview and pointers to all historical aspects of roff. -. -.TP -Multics -.URL http://\:www.multicians.org "The Multics site" -contains a lot of information on the MIT projects, CTSS, Multics, -early Unix, including -.IR runoff ; -especially useful are a glossary and the many links to ancient -documents. -. -.TP -Unix Archive -.URL http://\:www.tuhs.org/\:Archive/ \ - "The Ancient Unixes Archive" -. -provides the source code and some binaries of the ancient Unixes -(including the source code of troff and its documentation) that were -made public by Caldera since 2001, e.g. of the famous Unix version\~7 -for PDP-11 at the -.URL http://\:www.tuhs.org/\:Archive/\:PDP-11/\:Trees/\:V7 \ - "Unix V7 site" . -. -.TP -Developers at AT&T Bell Labs -.URL http://\:cm.bell-labs.com/\:cm/\:index.html \ - "Bell Labs Computing and Mathematical Sciences Research" -. -provides a search facility for tracking information on the early -developers. -. -.TP -Plan 9 -.URL http://\:plan9.bell-labs.com "The Plan\~9 operating system" -. -by AT&T Bell Labs. -. -.TP -runoff -.URL http://web.mit.edu/\:Saltzer/\:www/\:publications/\:pubs.html \ -"Jerry Saltzer's home page" -. -stores some documents using the ancient runoff formatting language. -. -.TP -CSTR Papers -.URL http://\:cm.bell-labs.com/\:cm/\:cs/\:cstr.html \ - "The Bell Labs CSTR site" -. -stores the original troff manuals (CSTR #54, #97, #114, #116, #122) -and famous historical documents on programming. -. -.TP -GNU roff -.URL http://\:www.gnu.org/\:software/\:groff "The groff web site" -provides the free roff implementation groff, the actual standard roff. -. -. -.\" -------------------------------------------------------------------- -.SS "Historical roff Documentation" -.\" -------------------------------------------------------------------- -. -Many classical -.B troff -documents are still available on-line. -. -The two main manuals of the troff language are -. -.TP -[CSTR\~#54] -J. F. Osanna, -.URL http://\:cm.bell-labs.com/\:cm/\:cs/\:54.ps \ - "\fINroff/\:Troff User's Manual\fP" ; -. -Bell Labs, 1976; revised by Brian Kernighan, 1992. - -. -.TP -[CSTR\~#97] -Brian Kernighan, -.URL http://\:cm.bell-labs.com/\:cm/\:cs/\:97.ps \ - "\fIA Typesetter-independent TROFF\fP" , -. -Bell Labs, 1981, revised March 1982. -. -.P -The "little language" roff papers are -. -.TP -[CSTR\~#114] -Jon L. Bentley and Brian W. Kernighan, -.URL http://\:cm.bell-labs.com/\:cm/\:cs/\:114.ps \ - "\fIGRAP \(em A Language for Typesetting Graphs\fP" ; -. -Bell Labs, August 1984. -. -.TP -[CSTR\~#116] -Brian W. Kernighan, -.URL http://\:cm.bell-labs.com/\:cm/\:cs/\:116.ps \ - "\fIPIC -- A Graphics Language for Typesetting\fP" ; -. -Bell Labs, December 1984. -. -.TP -[CSTR\~#122] -J. L. Bentley, L. W. Jelinski, and B. W. Kernighan, -.URL http://\:cm.bell-labs.com/\:cm/\:cs/\:122.ps \ -"\fICHEM \(em A Program for Typesetting Chemical Structure Diagrams, \ -Computers and Chemistry\fP" ; -. -Bell Labs, April 1986. -. -. -.\" -------------------------------------------------------------------- -.SS "Manual Pages" -.\" -------------------------------------------------------------------- -. -Due to its complex structure, a full roff system has many man pages, -each describing a single aspect of roff. -. -Unfortunately, there is no general naming scheme for the -documentation among the different roff implementations. -. -.P -In -.IR groff , -the man page -.BR groff (1) -contains a survey of all documentation available in groff. -. -.P -On other systems, you are on your own, but -.BR troff (1) -might be a good starting point. -. -. -.\" -------------------------------------------------------------------- -.SH AUTHORS -.\" -------------------------------------------------------------------- -. -Copyright (C) 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -. -.P -This document is distributed under the terms of the FDL (GNU Free -Documentation License) version 1.1 or later. -. -You should have received a copy of the FDL on your system, it is also -available on-line at the -.URL http://\:www.gnu.org/\:copyleft/\:fdl.html "GNU copyleft site" . -. -.P -This document is part of -.IR groff , -the GNU roff distribution. -. -It was written by -.MTO bwarken@mayn.de "Bernd Warken" ; -it is maintained by -.MTO wl@gnu.org "Werner Lemberg". -. -.cp \n[roff_C] -. -.\" -------------------------------------------------------------------- -.\" Emacs setup -.\" -------------------------------------------------------------------- -. -.\" Local Variables: -.\" mode: nroff -.\" End: diff --git a/gen/version-libgroff.cpp b/gen/version-libgroff.cpp deleted file mode 100644 index 0ebcad3..0000000 --- a/gen/version-libgroff.cpp +++ /dev/null @@ -1,3 +0,0 @@ -const char *version_string = "1.19"; -const char *revision_string = "2"; -extern "C" const char *Version_string = "1.19.2"; diff --git a/groff.plist b/groff.plist new file mode 100644 index 0000000..8759602 --- /dev/null +++ b/groff.plist @@ -0,0 +1,22 @@ + + + OpenSourceProject + groff + OpenSourceVersion + 1.19.2 + OpenSourceWebsiteURL + http://www.gnu.org/software/groff/ + OpenSourceURL + http://ftp.gnu.org/pub/gnu/groff/groff-1.19.2.tar.gz + OpenSourceSHA1 + cfad99a5c52933a6a9180e394bd94fbaec0ac956 + OpenSourceModifications + + Added Darwin to the list of valid .Os values. + Disabled SGR by default (color codes). + Added -susv3 standards definition. + + OpenSourceLicense + GPL + + diff --git a/src/BUG-REPORT b/groff/BUG-REPORT similarity index 100% rename from src/BUG-REPORT rename to groff/BUG-REPORT diff --git a/src/COPYING b/groff/COPYING similarity index 100% rename from src/COPYING rename to groff/COPYING diff --git a/src/ChangeLog b/groff/ChangeLog similarity index 100% rename from src/ChangeLog rename to groff/ChangeLog diff --git a/src/ChangeLog.115 b/groff/ChangeLog.115 similarity index 100% rename from src/ChangeLog.115 rename to groff/ChangeLog.115 diff --git a/src/ChangeLog.116 b/groff/ChangeLog.116 similarity index 100% rename from src/ChangeLog.116 rename to groff/ChangeLog.116 diff --git a/src/ChangeLog.117 b/groff/ChangeLog.117 similarity index 100% rename from src/ChangeLog.117 rename to groff/ChangeLog.117 diff --git a/src/ChangeLog.118 b/groff/ChangeLog.118 similarity index 100% rename from src/ChangeLog.118 rename to groff/ChangeLog.118 diff --git a/src/FDL b/groff/FDL similarity index 100% rename from src/FDL rename to groff/FDL diff --git a/src/INSTALL b/groff/INSTALL similarity index 100% rename from src/INSTALL rename to groff/INSTALL diff --git a/src/INSTALL.gen b/groff/INSTALL.gen similarity index 100% rename from src/INSTALL.gen rename to groff/INSTALL.gen diff --git a/src/LICENSE b/groff/LICENSE similarity index 100% rename from src/LICENSE rename to groff/LICENSE diff --git a/src/MANIFEST b/groff/MANIFEST similarity index 100% rename from src/MANIFEST rename to groff/MANIFEST diff --git a/src/MORE.STUFF b/groff/MORE.STUFF similarity index 100% rename from src/MORE.STUFF rename to groff/MORE.STUFF diff --git a/src/Makefile b/groff/Makefile similarity index 100% rename from src/Makefile rename to groff/Makefile diff --git a/src/Makefile.ccpg b/groff/Makefile.ccpg similarity index 100% rename from src/Makefile.ccpg rename to groff/Makefile.ccpg diff --git a/src/Makefile.comm b/groff/Makefile.comm similarity index 100% rename from src/Makefile.comm rename to groff/Makefile.comm diff --git a/src/Makefile.cpg b/groff/Makefile.cpg similarity index 100% rename from src/Makefile.cpg rename to groff/Makefile.cpg diff --git a/src/Makefile.dev b/groff/Makefile.dev similarity index 100% rename from src/Makefile.dev rename to groff/Makefile.dev diff --git a/src/Makefile.in b/groff/Makefile.in similarity index 99% rename from src/Makefile.in rename to groff/Makefile.in index 26d55de..8318ba0 100644 --- a/src/Makefile.in +++ b/groff/Makefile.in @@ -546,9 +546,6 @@ OTHERDIRS=\ src/roff/nroff \ doc \ contrib/mm \ - contrib/pic2graph \ - contrib/eqn2graph \ - contrib/grap2graph \ contrib/groffer \ contrib/mom \ contrib/pdfmark \ diff --git a/src/Makefile.init b/groff/Makefile.init similarity index 100% rename from src/Makefile.init rename to groff/Makefile.init diff --git a/src/Makefile.lib b/groff/Makefile.lib similarity index 100% rename from src/Makefile.lib rename to groff/Makefile.lib diff --git a/src/Makefile.man b/groff/Makefile.man similarity index 100% rename from src/Makefile.man rename to groff/Makefile.man diff --git a/src/Makefile.sub b/groff/Makefile.sub similarity index 100% rename from src/Makefile.sub rename to groff/Makefile.sub diff --git a/src/NEWS b/groff/NEWS similarity index 100% rename from src/NEWS rename to groff/NEWS diff --git a/src/PROBLEMS b/groff/PROBLEMS similarity index 100% rename from src/PROBLEMS rename to groff/PROBLEMS diff --git a/src/PROJECTS b/groff/PROJECTS similarity index 100% rename from src/PROJECTS rename to groff/PROJECTS diff --git a/src/README b/groff/README similarity index 100% rename from src/README rename to groff/README diff --git a/src/README.MinGW b/groff/README.MinGW similarity index 100% rename from src/README.MinGW rename to groff/README.MinGW diff --git a/src/REVISION b/groff/REVISION similarity index 100% rename from src/REVISION rename to groff/REVISION diff --git a/src/TODO b/groff/TODO similarity index 100% rename from src/TODO rename to groff/TODO diff --git a/src/VERSION b/groff/VERSION similarity index 100% rename from src/VERSION rename to groff/VERSION diff --git a/src/aclocal.m4 b/groff/aclocal.m4 similarity index 100% rename from src/aclocal.m4 rename to groff/aclocal.m4 diff --git a/src/arch/djgpp/README b/groff/arch/djgpp/README similarity index 100% rename from src/arch/djgpp/README rename to groff/arch/djgpp/README diff --git a/src/arch/djgpp/config.bat b/groff/arch/djgpp/config.bat similarity index 100% rename from src/arch/djgpp/config.bat rename to groff/arch/djgpp/config.bat diff --git a/src/arch/djgpp/config.sed b/groff/arch/djgpp/config.sed similarity index 100% rename from src/arch/djgpp/config.sed rename to groff/arch/djgpp/config.sed diff --git a/src/arch/djgpp/config.site b/groff/arch/djgpp/config.site similarity index 100% rename from src/arch/djgpp/config.site rename to groff/arch/djgpp/config.site diff --git a/src/arch/djgpp/t-groff.bat b/groff/arch/djgpp/t-groff.bat similarity index 100% rename from src/arch/djgpp/t-groff.bat rename to groff/arch/djgpp/t-groff.bat diff --git a/src/arch/misc/Makefile.sub b/groff/arch/misc/Makefile.sub similarity index 100% rename from src/arch/misc/Makefile.sub rename to groff/arch/misc/Makefile.sub diff --git a/src/arch/misc/shdeps.sh b/groff/arch/misc/shdeps.sh similarity index 100% rename from src/arch/misc/shdeps.sh rename to groff/arch/misc/shdeps.sh diff --git a/src/configure b/groff/configure similarity index 100% rename from src/configure rename to groff/configure diff --git a/src/configure.ac b/groff/configure.ac similarity index 100% rename from src/configure.ac rename to groff/configure.ac diff --git a/src/contrib/eqn2graph/Makefile.sub b/groff/contrib/eqn2graph/Makefile.sub similarity index 100% rename from src/contrib/eqn2graph/Makefile.sub rename to groff/contrib/eqn2graph/Makefile.sub diff --git a/src/contrib/eqn2graph/eqn2graph.man b/groff/contrib/eqn2graph/eqn2graph.man similarity index 100% rename from src/contrib/eqn2graph/eqn2graph.man rename to groff/contrib/eqn2graph/eqn2graph.man diff --git a/src/contrib/eqn2graph/eqn2graph.sh b/groff/contrib/eqn2graph/eqn2graph.sh similarity index 100% rename from src/contrib/eqn2graph/eqn2graph.sh rename to groff/contrib/eqn2graph/eqn2graph.sh diff --git a/src/contrib/gdiffmk/ChangeLog b/groff/contrib/gdiffmk/ChangeLog similarity index 100% rename from src/contrib/gdiffmk/ChangeLog rename to groff/contrib/gdiffmk/ChangeLog diff --git a/src/contrib/gdiffmk/Makefile.sub b/groff/contrib/gdiffmk/Makefile.sub similarity index 100% rename from src/contrib/gdiffmk/Makefile.sub rename to groff/contrib/gdiffmk/Makefile.sub diff --git a/src/contrib/gdiffmk/README b/groff/contrib/gdiffmk/README similarity index 100% rename from src/contrib/gdiffmk/README rename to groff/contrib/gdiffmk/README diff --git a/src/contrib/gdiffmk/gdiffmk.man b/groff/contrib/gdiffmk/gdiffmk.man similarity index 100% rename from src/contrib/gdiffmk/gdiffmk.man rename to groff/contrib/gdiffmk/gdiffmk.man diff --git a/src/contrib/gdiffmk/gdiffmk.sh b/groff/contrib/gdiffmk/gdiffmk.sh similarity index 100% rename from src/contrib/gdiffmk/gdiffmk.sh rename to groff/contrib/gdiffmk/gdiffmk.sh diff --git a/src/contrib/gdiffmk/tests/file1 b/groff/contrib/gdiffmk/tests/file1 similarity index 100% rename from src/contrib/gdiffmk/tests/file1 rename to groff/contrib/gdiffmk/tests/file1 diff --git a/src/contrib/gdiffmk/tests/file2 b/groff/contrib/gdiffmk/tests/file2 similarity index 100% rename from src/contrib/gdiffmk/tests/file2 rename to groff/contrib/gdiffmk/tests/file2 diff --git a/src/contrib/gdiffmk/tests/runtests.in b/groff/contrib/gdiffmk/tests/runtests.in similarity index 100% rename from src/contrib/gdiffmk/tests/runtests.in rename to groff/contrib/gdiffmk/tests/runtests.in diff --git a/src/contrib/gdiffmk/tests/test_baseline b/groff/contrib/gdiffmk/tests/test_baseline similarity index 100% rename from src/contrib/gdiffmk/tests/test_baseline rename to groff/contrib/gdiffmk/tests/test_baseline diff --git a/src/contrib/gdiffmk/tests/test_baseline10 b/groff/contrib/gdiffmk/tests/test_baseline10 similarity index 100% rename from src/contrib/gdiffmk/tests/test_baseline10 rename to groff/contrib/gdiffmk/tests/test_baseline10 diff --git a/src/contrib/gdiffmk/tests/test_baseline6 b/groff/contrib/gdiffmk/tests/test_baseline6 similarity index 100% rename from src/contrib/gdiffmk/tests/test_baseline6 rename to groff/contrib/gdiffmk/tests/test_baseline6 diff --git a/src/contrib/gdiffmk/tests/test_baseline7 b/groff/contrib/gdiffmk/tests/test_baseline7 similarity index 100% rename from src/contrib/gdiffmk/tests/test_baseline7 rename to groff/contrib/gdiffmk/tests/test_baseline7 diff --git a/src/contrib/gdiffmk/tests/test_baseline8 b/groff/contrib/gdiffmk/tests/test_baseline8 similarity index 100% rename from src/contrib/gdiffmk/tests/test_baseline8 rename to groff/contrib/gdiffmk/tests/test_baseline8 diff --git a/src/contrib/gdiffmk/tests/test_baseline9 b/groff/contrib/gdiffmk/tests/test_baseline9 similarity index 100% rename from src/contrib/gdiffmk/tests/test_baseline9 rename to groff/contrib/gdiffmk/tests/test_baseline9 diff --git a/src/contrib/grap2graph/Makefile.sub b/groff/contrib/grap2graph/Makefile.sub similarity index 100% rename from src/contrib/grap2graph/Makefile.sub rename to groff/contrib/grap2graph/Makefile.sub diff --git a/src/contrib/grap2graph/grap2graph.man b/groff/contrib/grap2graph/grap2graph.man similarity index 100% rename from src/contrib/grap2graph/grap2graph.man rename to groff/contrib/grap2graph/grap2graph.man diff --git a/src/contrib/grap2graph/grap2graph.sh b/groff/contrib/grap2graph/grap2graph.sh similarity index 100% rename from src/contrib/grap2graph/grap2graph.sh rename to groff/contrib/grap2graph/grap2graph.sh diff --git a/src/contrib/groffer/ChangeLog b/groff/contrib/groffer/ChangeLog similarity index 100% rename from src/contrib/groffer/ChangeLog rename to groff/contrib/groffer/ChangeLog diff --git a/src/contrib/groffer/Makefile.sub b/groff/contrib/groffer/Makefile.sub similarity index 100% rename from src/contrib/groffer/Makefile.sub rename to groff/contrib/groffer/Makefile.sub diff --git a/src/contrib/groffer/README b/groff/contrib/groffer/README similarity index 100% rename from src/contrib/groffer/README rename to groff/contrib/groffer/README diff --git a/src/contrib/groffer/README_SH b/groff/contrib/groffer/README_SH similarity index 100% rename from src/contrib/groffer/README_SH rename to groff/contrib/groffer/README_SH diff --git a/src/contrib/groffer/TODO b/groff/contrib/groffer/TODO similarity index 100% rename from src/contrib/groffer/TODO rename to groff/contrib/groffer/TODO diff --git a/src/contrib/groffer/groffer.man b/groff/contrib/groffer/groffer.man similarity index 100% rename from src/contrib/groffer/groffer.man rename to groff/contrib/groffer/groffer.man diff --git a/src/contrib/groffer/groffer.sh b/groff/contrib/groffer/groffer.sh similarity index 100% rename from src/contrib/groffer/groffer.sh rename to groff/contrib/groffer/groffer.sh diff --git a/src/contrib/groffer/groffer2.sh b/groff/contrib/groffer/groffer2.sh similarity index 100% rename from src/contrib/groffer/groffer2.sh rename to groff/contrib/groffer/groffer2.sh diff --git a/src/contrib/mm/ChangeLog b/groff/contrib/mm/ChangeLog similarity index 100% rename from src/contrib/mm/ChangeLog rename to groff/contrib/mm/ChangeLog diff --git a/src/contrib/mm/Makefile.sim b/groff/contrib/mm/Makefile.sim similarity index 100% rename from src/contrib/mm/Makefile.sim rename to groff/contrib/mm/Makefile.sim diff --git a/src/contrib/mm/Makefile.sub b/groff/contrib/mm/Makefile.sub similarity index 100% rename from src/contrib/mm/Makefile.sub rename to groff/contrib/mm/Makefile.sub diff --git a/src/contrib/mm/NOTES b/groff/contrib/mm/NOTES similarity index 100% rename from src/contrib/mm/NOTES rename to groff/contrib/mm/NOTES diff --git a/src/contrib/mm/README b/groff/contrib/mm/README similarity index 100% rename from src/contrib/mm/README rename to groff/contrib/mm/README diff --git a/src/contrib/mm/examples/APP b/groff/contrib/mm/examples/APP similarity index 100% rename from src/contrib/mm/examples/APP rename to groff/contrib/mm/examples/APP diff --git a/src/contrib/mm/examples/B1B2 b/groff/contrib/mm/examples/B1B2 similarity index 100% rename from src/contrib/mm/examples/B1B2 rename to groff/contrib/mm/examples/B1B2 diff --git a/src/contrib/mm/examples/COVER b/groff/contrib/mm/examples/COVER similarity index 100% rename from src/contrib/mm/examples/COVER rename to groff/contrib/mm/examples/COVER diff --git a/src/contrib/mm/examples/IND b/groff/contrib/mm/examples/IND similarity index 100% rename from src/contrib/mm/examples/IND rename to groff/contrib/mm/examples/IND diff --git a/src/contrib/mm/examples/LT b/groff/contrib/mm/examples/LT similarity index 100% rename from src/contrib/mm/examples/LT rename to groff/contrib/mm/examples/LT diff --git a/src/contrib/mm/examples/LT.se b/groff/contrib/mm/examples/LT.se similarity index 100% rename from src/contrib/mm/examples/LT.se rename to groff/contrib/mm/examples/LT.se diff --git a/src/contrib/mm/examples/ML b/groff/contrib/mm/examples/ML similarity index 100% rename from src/contrib/mm/examples/ML rename to groff/contrib/mm/examples/ML diff --git a/src/contrib/mm/examples/MOVE b/groff/contrib/mm/examples/MOVE similarity index 100% rename from src/contrib/mm/examples/MOVE rename to groff/contrib/mm/examples/MOVE diff --git a/src/contrib/mm/examples/MUL b/groff/contrib/mm/examples/MUL similarity index 100% rename from src/contrib/mm/examples/MUL rename to groff/contrib/mm/examples/MUL diff --git a/src/contrib/mm/examples/NCOL b/groff/contrib/mm/examples/NCOL similarity index 100% rename from src/contrib/mm/examples/NCOL rename to groff/contrib/mm/examples/NCOL diff --git a/src/contrib/mm/examples/ND b/groff/contrib/mm/examples/ND similarity index 100% rename from src/contrib/mm/examples/ND rename to groff/contrib/mm/examples/ND diff --git a/src/contrib/mm/examples/README b/groff/contrib/mm/examples/README similarity index 100% rename from src/contrib/mm/examples/README rename to groff/contrib/mm/examples/README diff --git a/src/contrib/mm/examples/References b/groff/contrib/mm/examples/References similarity index 100% rename from src/contrib/mm/examples/References rename to groff/contrib/mm/examples/References diff --git a/src/contrib/mm/examples/SETR b/groff/contrib/mm/examples/SETR similarity index 100% rename from src/contrib/mm/examples/SETR rename to groff/contrib/mm/examples/SETR diff --git a/src/contrib/mm/groff_mm.man b/groff/contrib/mm/groff_mm.man similarity index 100% rename from src/contrib/mm/groff_mm.man rename to groff/contrib/mm/groff_mm.man diff --git a/src/contrib/mm/groff_mmse.man b/groff/contrib/mm/groff_mmse.man similarity index 100% rename from src/contrib/mm/groff_mmse.man rename to groff/contrib/mm/groff_mmse.man diff --git a/gen/usr/share/groff/1.19.2/tmac/m.tmac b/groff/contrib/mm/m.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/m.tmac rename to groff/contrib/mm/m.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/mm.tmac b/groff/contrib/mm/mm.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/mm.tmac rename to groff/contrib/mm/mm.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/mm/0.MT b/groff/contrib/mm/mm/0.MT similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/mm/0.MT rename to groff/contrib/mm/mm/0.MT diff --git a/gen/usr/share/groff/1.19.2/tmac/mm/4.MT b/groff/contrib/mm/mm/4.MT similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/mm/4.MT rename to groff/contrib/mm/mm/4.MT diff --git a/gen/usr/share/groff/1.19.2/tmac/mm/5.MT b/groff/contrib/mm/mm/5.MT similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/mm/5.MT rename to groff/contrib/mm/mm/5.MT diff --git a/gen/usr/share/groff/1.19.2/tmac/mm/ms.cov b/groff/contrib/mm/mm/ms.cov similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/mm/ms.cov rename to groff/contrib/mm/mm/ms.cov diff --git a/gen/usr/share/groff/1.19.2/tmac/mm/se_ms.cov b/groff/contrib/mm/mm/se_ms.cov similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/mm/se_ms.cov rename to groff/contrib/mm/mm/se_ms.cov diff --git a/src/contrib/mm/mmroff.man b/groff/contrib/mm/mmroff.man similarity index 100% rename from src/contrib/mm/mmroff.man rename to groff/contrib/mm/mmroff.man diff --git a/src/contrib/mm/mmroff.pl b/groff/contrib/mm/mmroff.pl similarity index 100% rename from src/contrib/mm/mmroff.pl rename to groff/contrib/mm/mmroff.pl diff --git a/gen/usr/share/groff/1.19.2/tmac/mmse.tmac b/groff/contrib/mm/mmse.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/mmse.tmac rename to groff/contrib/mm/mmse.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/mse.tmac b/groff/contrib/mm/mse.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/mse.tmac rename to groff/contrib/mm/mse.tmac diff --git a/src/contrib/mom/BUGS b/groff/contrib/mom/BUGS similarity index 100% rename from src/contrib/mom/BUGS rename to groff/contrib/mom/BUGS diff --git a/src/contrib/mom/ChangeLog b/groff/contrib/mom/ChangeLog similarity index 100% rename from src/contrib/mom/ChangeLog rename to groff/contrib/mom/ChangeLog diff --git a/src/contrib/mom/Makefile.sub b/groff/contrib/mom/Makefile.sub similarity index 100% rename from src/contrib/mom/Makefile.sub rename to groff/contrib/mom/Makefile.sub diff --git a/src/contrib/mom/NEWS b/groff/contrib/mom/NEWS similarity index 100% rename from src/contrib/mom/NEWS rename to groff/contrib/mom/NEWS diff --git a/src/contrib/mom/TODO b/groff/contrib/mom/TODO similarity index 100% rename from src/contrib/mom/TODO rename to groff/contrib/mom/TODO diff --git a/src/contrib/mom/copyright b/groff/contrib/mom/copyright similarity index 100% rename from src/contrib/mom/copyright rename to groff/contrib/mom/copyright diff --git a/gen/usr/share/doc/groff/1.19.2/examples/mom/README.txt b/groff/contrib/mom/examples/README.txt similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/examples/mom/README.txt rename to groff/contrib/mom/examples/README.txt diff --git a/gen/usr/share/doc/groff/1.19.2/examples/mom/elvis_syntax b/groff/contrib/mom/examples/elvis_syntax similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/examples/mom/elvis_syntax rename to groff/contrib/mom/examples/elvis_syntax diff --git a/gen/usr/share/doc/groff/1.19.2/examples/mom/elvis_syntax.new b/groff/contrib/mom/examples/elvis_syntax.new similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/examples/mom/elvis_syntax.new rename to groff/contrib/mom/examples/elvis_syntax.new diff --git a/gen/usr/share/doc/groff/1.19.2/examples/mom/letter.mom b/groff/contrib/mom/examples/letter.mom similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/examples/mom/letter.mom rename to groff/contrib/mom/examples/letter.mom diff --git a/gen/usr/share/doc/groff/1.19.2/examples/mom/penguin.ps b/groff/contrib/mom/examples/penguin.ps similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/examples/mom/penguin.ps rename to groff/contrib/mom/examples/penguin.ps diff --git a/gen/usr/share/doc/groff/1.19.2/examples/mom/sample_docs.mom b/groff/contrib/mom/examples/sample_docs.mom similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/examples/mom/sample_docs.mom rename to groff/contrib/mom/examples/sample_docs.mom diff --git a/gen/usr/share/doc/groff/1.19.2/examples/mom/typesetting.mom b/groff/contrib/mom/examples/typesetting.mom similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/examples/mom/typesetting.mom rename to groff/contrib/mom/examples/typesetting.mom diff --git a/src/contrib/mom/groff_mom.man b/groff/contrib/mom/groff_mom.man similarity index 100% rename from src/contrib/mom/groff_mom.man rename to groff/contrib/mom/groff_mom.man diff --git a/gen/usr/share/groff/1.19.2/tmac/mom.tmac b/groff/contrib/mom/mom.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/mom.tmac rename to groff/contrib/mom/mom.tmac diff --git a/src/contrib/mom/momdoc/appendices.html b/groff/contrib/mom/momdoc/appendices.html similarity index 100% rename from src/contrib/mom/momdoc/appendices.html rename to groff/contrib/mom/momdoc/appendices.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/color.html b/groff/contrib/mom/momdoc/color.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/color.html rename to groff/contrib/mom/momdoc/color.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/cover.html b/groff/contrib/mom/momdoc/cover.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/cover.html rename to groff/contrib/mom/momdoc/cover.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/definitions.html b/groff/contrib/mom/momdoc/definitions.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/definitions.html rename to groff/contrib/mom/momdoc/definitions.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/docelement.html b/groff/contrib/mom/momdoc/docelement.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/docelement.html rename to groff/contrib/mom/momdoc/docelement.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/docprocessing.html b/groff/contrib/mom/momdoc/docprocessing.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/docprocessing.html rename to groff/contrib/mom/momdoc/docprocessing.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/goodies.html b/groff/contrib/mom/momdoc/goodies.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/goodies.html rename to groff/contrib/mom/momdoc/goodies.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/headfootpage.html b/groff/contrib/mom/momdoc/headfootpage.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/headfootpage.html rename to groff/contrib/mom/momdoc/headfootpage.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/inlines.html b/groff/contrib/mom/momdoc/inlines.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/inlines.html rename to groff/contrib/mom/momdoc/inlines.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/intro.html b/groff/contrib/mom/momdoc/intro.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/intro.html rename to groff/contrib/mom/momdoc/intro.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/letters.html b/groff/contrib/mom/momdoc/letters.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/letters.html rename to groff/contrib/mom/momdoc/letters.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/macrolist.html b/groff/contrib/mom/momdoc/macrolist.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/macrolist.html rename to groff/contrib/mom/momdoc/macrolist.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/rectoverso.html b/groff/contrib/mom/momdoc/rectoverso.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/rectoverso.html rename to groff/contrib/mom/momdoc/rectoverso.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/refer.html b/groff/contrib/mom/momdoc/refer.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/refer.html rename to groff/contrib/mom/momdoc/refer.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/reserved.html b/groff/contrib/mom/momdoc/reserved.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/reserved.html rename to groff/contrib/mom/momdoc/reserved.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/toc.html b/groff/contrib/mom/momdoc/toc.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/toc.html rename to groff/contrib/mom/momdoc/toc.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/typemacdoc.html b/groff/contrib/mom/momdoc/typemacdoc.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/typemacdoc.html rename to groff/contrib/mom/momdoc/typemacdoc.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/typesetting.html b/groff/contrib/mom/momdoc/typesetting.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/typesetting.html rename to groff/contrib/mom/momdoc/typesetting.html diff --git a/gen/usr/share/doc/groff/1.19.2/html/mom/using.html b/groff/contrib/mom/momdoc/using.html similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/html/mom/using.html rename to groff/contrib/mom/momdoc/using.html diff --git a/gen/usr/share/groff/1.19.2/tmac/om.tmac b/groff/contrib/mom/om.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/om.tmac rename to groff/contrib/mom/om.tmac diff --git a/src/contrib/pdfmark/ChangeLog b/groff/contrib/pdfmark/ChangeLog similarity index 100% rename from src/contrib/pdfmark/ChangeLog rename to groff/contrib/pdfmark/ChangeLog diff --git a/src/contrib/pdfmark/Makefile.sub b/groff/contrib/pdfmark/Makefile.sub similarity index 100% rename from src/contrib/pdfmark/Makefile.sub rename to groff/contrib/pdfmark/Makefile.sub diff --git a/src/contrib/pdfmark/PROBLEMS b/groff/contrib/pdfmark/PROBLEMS similarity index 100% rename from src/contrib/pdfmark/PROBLEMS rename to groff/contrib/pdfmark/PROBLEMS diff --git a/src/contrib/pdfmark/README b/groff/contrib/pdfmark/README similarity index 100% rename from src/contrib/pdfmark/README rename to groff/contrib/pdfmark/README diff --git a/src/contrib/pdfmark/TODO b/groff/contrib/pdfmark/TODO similarity index 100% rename from src/contrib/pdfmark/TODO rename to groff/contrib/pdfmark/TODO diff --git a/src/contrib/pdfmark/cover.ms b/groff/contrib/pdfmark/cover.ms similarity index 100% rename from src/contrib/pdfmark/cover.ms rename to groff/contrib/pdfmark/cover.ms diff --git a/src/contrib/pdfmark/pdfmark.ms b/groff/contrib/pdfmark/pdfmark.ms similarity index 100% rename from src/contrib/pdfmark/pdfmark.ms rename to groff/contrib/pdfmark/pdfmark.ms diff --git a/gen/usr/share/groff/1.19.2/tmac/pdfmark.tmac b/groff/contrib/pdfmark/pdfmark.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/pdfmark.tmac rename to groff/contrib/pdfmark/pdfmark.tmac diff --git a/src/contrib/pdfmark/pdfroff.man b/groff/contrib/pdfmark/pdfroff.man similarity index 100% rename from src/contrib/pdfmark/pdfroff.man rename to groff/contrib/pdfmark/pdfroff.man diff --git a/src/contrib/pdfmark/pdfroff.sh b/groff/contrib/pdfmark/pdfroff.sh similarity index 100% rename from src/contrib/pdfmark/pdfroff.sh rename to groff/contrib/pdfmark/pdfroff.sh diff --git a/gen/usr/share/groff/1.19.2/tmac/spdf.tmac b/groff/contrib/pdfmark/spdf.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/spdf.tmac rename to groff/contrib/pdfmark/spdf.tmac diff --git a/src/contrib/pic2graph/Makefile.sub b/groff/contrib/pic2graph/Makefile.sub similarity index 100% rename from src/contrib/pic2graph/Makefile.sub rename to groff/contrib/pic2graph/Makefile.sub diff --git a/src/contrib/pic2graph/pic2graph.man b/groff/contrib/pic2graph/pic2graph.man similarity index 100% rename from src/contrib/pic2graph/pic2graph.man rename to groff/contrib/pic2graph/pic2graph.man diff --git a/src/contrib/pic2graph/pic2graph.sh b/groff/contrib/pic2graph/pic2graph.sh similarity index 100% rename from src/contrib/pic2graph/pic2graph.sh rename to groff/contrib/pic2graph/pic2graph.sh diff --git a/src/doc/Makefile.in b/groff/doc/Makefile.in similarity index 100% rename from src/doc/Makefile.in rename to groff/doc/Makefile.in diff --git a/src/doc/Makefile.sub b/groff/doc/Makefile.sub similarity index 100% rename from src/doc/Makefile.sub rename to groff/doc/Makefile.sub diff --git a/src/doc/fdl.texi b/groff/doc/fdl.texi similarity index 100% rename from src/doc/fdl.texi rename to groff/doc/fdl.texi diff --git a/src/doc/fixinfo.sh b/groff/doc/fixinfo.sh similarity index 100% rename from src/doc/fixinfo.sh rename to groff/doc/fixinfo.sh diff --git a/src/doc/gnu.eps b/groff/doc/gnu.eps similarity index 100% rename from src/doc/gnu.eps rename to groff/doc/gnu.eps diff --git a/src/doc/gnu.png b/groff/doc/gnu.png similarity index 100% rename from src/doc/gnu.png rename to groff/doc/gnu.png diff --git a/src/doc/gnu.xpm b/groff/doc/gnu.xpm similarity index 100% rename from src/doc/gnu.xpm rename to groff/doc/gnu.xpm diff --git a/gen/usr/share/doc/groff/1.19.2/examples/grnexmpl.g b/groff/doc/grnexmpl.g similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/examples/grnexmpl.g rename to groff/doc/grnexmpl.g diff --git a/gen/usr/share/doc/groff/1.19.2/examples/grnexmpl.me b/groff/doc/grnexmpl.me similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/examples/grnexmpl.me rename to groff/doc/grnexmpl.me diff --git a/src/doc/groff b/groff/doc/groff similarity index 100% rename from src/doc/groff rename to groff/doc/groff diff --git a/src/doc/groff-1 b/groff/doc/groff-1 similarity index 100% rename from src/doc/groff-1 rename to groff/doc/groff-1 diff --git a/src/doc/groff-2 b/groff/doc/groff-2 similarity index 100% rename from src/doc/groff-2 rename to groff/doc/groff-2 diff --git a/src/doc/groff-3 b/groff/doc/groff-3 similarity index 100% rename from src/doc/groff-3 rename to groff/doc/groff-3 diff --git a/gen/usr/share/doc/groff/1.19.2/examples/groff.css b/groff/doc/groff.css similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/examples/groff.css rename to groff/doc/groff.css diff --git a/src/doc/groff.texinfo b/groff/doc/groff.texinfo similarity index 100% rename from src/doc/groff.texinfo rename to groff/doc/groff.texinfo diff --git a/gen/usr/share/doc/groff/1.19.2/meintro.me b/groff/doc/meintro.me similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/meintro.me rename to groff/doc/meintro.me diff --git a/gen/usr/share/doc/groff/1.19.2/meref.me b/groff/doc/meref.me similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/meref.me rename to groff/doc/meref.me diff --git a/gen/usr/share/doc/groff/1.19.2/pic.ms b/groff/doc/pic.ms similarity index 100% rename from gen/usr/share/doc/groff/1.19.2/pic.ms rename to groff/doc/pic.ms diff --git a/src/doc/texinfo.tex b/groff/doc/texinfo.tex similarity index 100% rename from src/doc/texinfo.tex rename to groff/doc/texinfo.tex diff --git a/src/doc/webpage.ms b/groff/doc/webpage.ms similarity index 100% rename from src/doc/webpage.ms rename to groff/doc/webpage.ms diff --git a/src/font/devX100-12/CB b/groff/font/devX100-12/CB similarity index 100% rename from src/font/devX100-12/CB rename to groff/font/devX100-12/CB diff --git a/src/font/devX100-12/CBI b/groff/font/devX100-12/CBI similarity index 100% rename from src/font/devX100-12/CBI rename to groff/font/devX100-12/CBI diff --git a/src/font/devX100-12/CI b/groff/font/devX100-12/CI similarity index 100% rename from src/font/devX100-12/CI rename to groff/font/devX100-12/CI diff --git a/src/font/devX100-12/CR b/groff/font/devX100-12/CR similarity index 100% rename from src/font/devX100-12/CR rename to groff/font/devX100-12/CR diff --git a/src/font/devX100-12/DESC b/groff/font/devX100-12/DESC similarity index 100% rename from src/font/devX100-12/DESC rename to groff/font/devX100-12/DESC diff --git a/src/font/devX100-12/HB b/groff/font/devX100-12/HB similarity index 100% rename from src/font/devX100-12/HB rename to groff/font/devX100-12/HB diff --git a/src/font/devX100-12/HBI b/groff/font/devX100-12/HBI similarity index 100% rename from src/font/devX100-12/HBI rename to groff/font/devX100-12/HBI diff --git a/src/font/devX100-12/HI b/groff/font/devX100-12/HI similarity index 100% rename from src/font/devX100-12/HI rename to groff/font/devX100-12/HI diff --git a/src/font/devX100-12/HR b/groff/font/devX100-12/HR similarity index 100% rename from src/font/devX100-12/HR rename to groff/font/devX100-12/HR diff --git a/src/font/devX100-12/Makefile.sub b/groff/font/devX100-12/Makefile.sub similarity index 100% rename from src/font/devX100-12/Makefile.sub rename to groff/font/devX100-12/Makefile.sub diff --git a/src/font/devX100-12/NB b/groff/font/devX100-12/NB similarity index 100% rename from src/font/devX100-12/NB rename to groff/font/devX100-12/NB diff --git a/src/font/devX100-12/NBI b/groff/font/devX100-12/NBI similarity index 100% rename from src/font/devX100-12/NBI rename to groff/font/devX100-12/NBI diff --git a/src/font/devX100-12/NI b/groff/font/devX100-12/NI similarity index 100% rename from src/font/devX100-12/NI rename to groff/font/devX100-12/NI diff --git a/src/font/devX100-12/NR b/groff/font/devX100-12/NR similarity index 100% rename from src/font/devX100-12/NR rename to groff/font/devX100-12/NR diff --git a/src/font/devX100-12/S b/groff/font/devX100-12/S similarity index 100% rename from src/font/devX100-12/S rename to groff/font/devX100-12/S diff --git a/src/font/devX100-12/TB b/groff/font/devX100-12/TB similarity index 100% rename from src/font/devX100-12/TB rename to groff/font/devX100-12/TB diff --git a/src/font/devX100-12/TBI b/groff/font/devX100-12/TBI similarity index 100% rename from src/font/devX100-12/TBI rename to groff/font/devX100-12/TBI diff --git a/src/font/devX100-12/TI b/groff/font/devX100-12/TI similarity index 100% rename from src/font/devX100-12/TI rename to groff/font/devX100-12/TI diff --git a/src/font/devX100-12/TR b/groff/font/devX100-12/TR similarity index 100% rename from src/font/devX100-12/TR rename to groff/font/devX100-12/TR diff --git a/src/font/devX100/CB b/groff/font/devX100/CB similarity index 100% rename from src/font/devX100/CB rename to groff/font/devX100/CB diff --git a/src/font/devX100/CBI b/groff/font/devX100/CBI similarity index 100% rename from src/font/devX100/CBI rename to groff/font/devX100/CBI diff --git a/src/font/devX100/CI b/groff/font/devX100/CI similarity index 100% rename from src/font/devX100/CI rename to groff/font/devX100/CI diff --git a/src/font/devX100/CR b/groff/font/devX100/CR similarity index 100% rename from src/font/devX100/CR rename to groff/font/devX100/CR diff --git a/src/font/devX100/DESC b/groff/font/devX100/DESC similarity index 100% rename from src/font/devX100/DESC rename to groff/font/devX100/DESC diff --git a/src/font/devX100/HB b/groff/font/devX100/HB similarity index 100% rename from src/font/devX100/HB rename to groff/font/devX100/HB diff --git a/src/font/devX100/HBI b/groff/font/devX100/HBI similarity index 100% rename from src/font/devX100/HBI rename to groff/font/devX100/HBI diff --git a/src/font/devX100/HI b/groff/font/devX100/HI similarity index 100% rename from src/font/devX100/HI rename to groff/font/devX100/HI diff --git a/src/font/devX100/HR b/groff/font/devX100/HR similarity index 100% rename from src/font/devX100/HR rename to groff/font/devX100/HR diff --git a/src/font/devX100/Makefile.sub b/groff/font/devX100/Makefile.sub similarity index 100% rename from src/font/devX100/Makefile.sub rename to groff/font/devX100/Makefile.sub diff --git a/src/font/devX100/NB b/groff/font/devX100/NB similarity index 100% rename from src/font/devX100/NB rename to groff/font/devX100/NB diff --git a/src/font/devX100/NBI b/groff/font/devX100/NBI similarity index 100% rename from src/font/devX100/NBI rename to groff/font/devX100/NBI diff --git a/src/font/devX100/NI b/groff/font/devX100/NI similarity index 100% rename from src/font/devX100/NI rename to groff/font/devX100/NI diff --git a/src/font/devX100/NR b/groff/font/devX100/NR similarity index 100% rename from src/font/devX100/NR rename to groff/font/devX100/NR diff --git a/src/font/devX100/S b/groff/font/devX100/S similarity index 100% rename from src/font/devX100/S rename to groff/font/devX100/S diff --git a/src/font/devX100/TB b/groff/font/devX100/TB similarity index 100% rename from src/font/devX100/TB rename to groff/font/devX100/TB diff --git a/src/font/devX100/TBI b/groff/font/devX100/TBI similarity index 100% rename from src/font/devX100/TBI rename to groff/font/devX100/TBI diff --git a/src/font/devX100/TI b/groff/font/devX100/TI similarity index 100% rename from src/font/devX100/TI rename to groff/font/devX100/TI diff --git a/src/font/devX100/TR b/groff/font/devX100/TR similarity index 100% rename from src/font/devX100/TR rename to groff/font/devX100/TR diff --git a/src/font/devX75-12/CB b/groff/font/devX75-12/CB similarity index 100% rename from src/font/devX75-12/CB rename to groff/font/devX75-12/CB diff --git a/src/font/devX75-12/CBI b/groff/font/devX75-12/CBI similarity index 100% rename from src/font/devX75-12/CBI rename to groff/font/devX75-12/CBI diff --git a/src/font/devX75-12/CI b/groff/font/devX75-12/CI similarity index 100% rename from src/font/devX75-12/CI rename to groff/font/devX75-12/CI diff --git a/src/font/devX75-12/CR b/groff/font/devX75-12/CR similarity index 100% rename from src/font/devX75-12/CR rename to groff/font/devX75-12/CR diff --git a/src/font/devX75-12/DESC b/groff/font/devX75-12/DESC similarity index 100% rename from src/font/devX75-12/DESC rename to groff/font/devX75-12/DESC diff --git a/src/font/devX75-12/HB b/groff/font/devX75-12/HB similarity index 100% rename from src/font/devX75-12/HB rename to groff/font/devX75-12/HB diff --git a/src/font/devX75-12/HBI b/groff/font/devX75-12/HBI similarity index 100% rename from src/font/devX75-12/HBI rename to groff/font/devX75-12/HBI diff --git a/src/font/devX75-12/HI b/groff/font/devX75-12/HI similarity index 100% rename from src/font/devX75-12/HI rename to groff/font/devX75-12/HI diff --git a/src/font/devX75-12/HR b/groff/font/devX75-12/HR similarity index 100% rename from src/font/devX75-12/HR rename to groff/font/devX75-12/HR diff --git a/src/font/devX75-12/Makefile.sub b/groff/font/devX75-12/Makefile.sub similarity index 100% rename from src/font/devX75-12/Makefile.sub rename to groff/font/devX75-12/Makefile.sub diff --git a/src/font/devX75-12/NB b/groff/font/devX75-12/NB similarity index 100% rename from src/font/devX75-12/NB rename to groff/font/devX75-12/NB diff --git a/src/font/devX75-12/NBI b/groff/font/devX75-12/NBI similarity index 100% rename from src/font/devX75-12/NBI rename to groff/font/devX75-12/NBI diff --git a/src/font/devX75-12/NI b/groff/font/devX75-12/NI similarity index 100% rename from src/font/devX75-12/NI rename to groff/font/devX75-12/NI diff --git a/src/font/devX75-12/NR b/groff/font/devX75-12/NR similarity index 100% rename from src/font/devX75-12/NR rename to groff/font/devX75-12/NR diff --git a/src/font/devX75-12/S b/groff/font/devX75-12/S similarity index 100% rename from src/font/devX75-12/S rename to groff/font/devX75-12/S diff --git a/src/font/devX75-12/TB b/groff/font/devX75-12/TB similarity index 100% rename from src/font/devX75-12/TB rename to groff/font/devX75-12/TB diff --git a/src/font/devX75-12/TBI b/groff/font/devX75-12/TBI similarity index 100% rename from src/font/devX75-12/TBI rename to groff/font/devX75-12/TBI diff --git a/src/font/devX75-12/TI b/groff/font/devX75-12/TI similarity index 100% rename from src/font/devX75-12/TI rename to groff/font/devX75-12/TI diff --git a/src/font/devX75-12/TR b/groff/font/devX75-12/TR similarity index 100% rename from src/font/devX75-12/TR rename to groff/font/devX75-12/TR diff --git a/src/font/devX75/CB b/groff/font/devX75/CB similarity index 100% rename from src/font/devX75/CB rename to groff/font/devX75/CB diff --git a/src/font/devX75/CBI b/groff/font/devX75/CBI similarity index 100% rename from src/font/devX75/CBI rename to groff/font/devX75/CBI diff --git a/src/font/devX75/CI b/groff/font/devX75/CI similarity index 100% rename from src/font/devX75/CI rename to groff/font/devX75/CI diff --git a/src/font/devX75/CR b/groff/font/devX75/CR similarity index 100% rename from src/font/devX75/CR rename to groff/font/devX75/CR diff --git a/src/font/devX75/DESC b/groff/font/devX75/DESC similarity index 100% rename from src/font/devX75/DESC rename to groff/font/devX75/DESC diff --git a/src/font/devX75/HB b/groff/font/devX75/HB similarity index 100% rename from src/font/devX75/HB rename to groff/font/devX75/HB diff --git a/src/font/devX75/HBI b/groff/font/devX75/HBI similarity index 100% rename from src/font/devX75/HBI rename to groff/font/devX75/HBI diff --git a/src/font/devX75/HI b/groff/font/devX75/HI similarity index 100% rename from src/font/devX75/HI rename to groff/font/devX75/HI diff --git a/src/font/devX75/HR b/groff/font/devX75/HR similarity index 100% rename from src/font/devX75/HR rename to groff/font/devX75/HR diff --git a/src/font/devX75/Makefile.sub b/groff/font/devX75/Makefile.sub similarity index 100% rename from src/font/devX75/Makefile.sub rename to groff/font/devX75/Makefile.sub diff --git a/src/font/devX75/NB b/groff/font/devX75/NB similarity index 100% rename from src/font/devX75/NB rename to groff/font/devX75/NB diff --git a/src/font/devX75/NBI b/groff/font/devX75/NBI similarity index 100% rename from src/font/devX75/NBI rename to groff/font/devX75/NBI diff --git a/src/font/devX75/NI b/groff/font/devX75/NI similarity index 100% rename from src/font/devX75/NI rename to groff/font/devX75/NI diff --git a/src/font/devX75/NR b/groff/font/devX75/NR similarity index 100% rename from src/font/devX75/NR rename to groff/font/devX75/NR diff --git a/src/font/devX75/S b/groff/font/devX75/S similarity index 100% rename from src/font/devX75/S rename to groff/font/devX75/S diff --git a/src/font/devX75/TB b/groff/font/devX75/TB similarity index 100% rename from src/font/devX75/TB rename to groff/font/devX75/TB diff --git a/src/font/devX75/TBI b/groff/font/devX75/TBI similarity index 100% rename from src/font/devX75/TBI rename to groff/font/devX75/TBI diff --git a/src/font/devX75/TI b/groff/font/devX75/TI similarity index 100% rename from src/font/devX75/TI rename to groff/font/devX75/TI diff --git a/src/font/devX75/TR b/groff/font/devX75/TR similarity index 100% rename from src/font/devX75/TR rename to groff/font/devX75/TR diff --git a/src/font/devascii/DESC.proto b/groff/font/devascii/DESC.proto similarity index 100% rename from src/font/devascii/DESC.proto rename to groff/font/devascii/DESC.proto diff --git a/src/font/devascii/Makefile.sub b/groff/font/devascii/Makefile.sub similarity index 100% rename from src/font/devascii/Makefile.sub rename to groff/font/devascii/Makefile.sub diff --git a/src/font/devascii/R.proto b/groff/font/devascii/R.proto similarity index 100% rename from src/font/devascii/R.proto rename to groff/font/devascii/R.proto diff --git a/src/font/devcp1047/DESC.proto b/groff/font/devcp1047/DESC.proto similarity index 100% rename from src/font/devcp1047/DESC.proto rename to groff/font/devcp1047/DESC.proto diff --git a/src/font/devcp1047/Makefile.sub b/groff/font/devcp1047/Makefile.sub similarity index 100% rename from src/font/devcp1047/Makefile.sub rename to groff/font/devcp1047/Makefile.sub diff --git a/src/font/devcp1047/R.proto b/groff/font/devcp1047/R.proto similarity index 100% rename from src/font/devcp1047/R.proto rename to groff/font/devcp1047/R.proto diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/CW b/groff/font/devdvi/CW similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/CW rename to groff/font/devdvi/CW diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/CWEC b/groff/font/devdvi/CWEC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/CWEC rename to groff/font/devdvi/CWEC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/CWI b/groff/font/devdvi/CWI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/CWI rename to groff/font/devdvi/CWI diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/CWIEC b/groff/font/devdvi/CWIEC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/CWIEC rename to groff/font/devdvi/CWIEC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/CWITC b/groff/font/devdvi/CWITC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/CWITC rename to groff/font/devdvi/CWITC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/CWTC b/groff/font/devdvi/CWTC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/CWTC rename to groff/font/devdvi/CWTC diff --git a/src/font/devdvi/DESC.in b/groff/font/devdvi/DESC.in similarity index 100% rename from src/font/devdvi/DESC.in rename to groff/font/devdvi/DESC.in diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/EX b/groff/font/devdvi/EX similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/EX rename to groff/font/devdvi/EX diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/HB b/groff/font/devdvi/HB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/HB rename to groff/font/devdvi/HB diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/HBEC b/groff/font/devdvi/HBEC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/HBEC rename to groff/font/devdvi/HBEC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/HBI b/groff/font/devdvi/HBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/HBI rename to groff/font/devdvi/HBI diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/HBIEC b/groff/font/devdvi/HBIEC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/HBIEC rename to groff/font/devdvi/HBIEC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/HBITC b/groff/font/devdvi/HBITC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/HBITC rename to groff/font/devdvi/HBITC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/HBTC b/groff/font/devdvi/HBTC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/HBTC rename to groff/font/devdvi/HBTC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/HI b/groff/font/devdvi/HI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/HI rename to groff/font/devdvi/HI diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/HIEC b/groff/font/devdvi/HIEC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/HIEC rename to groff/font/devdvi/HIEC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/HITC b/groff/font/devdvi/HITC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/HITC rename to groff/font/devdvi/HITC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/HR b/groff/font/devdvi/HR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/HR rename to groff/font/devdvi/HR diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/HREC b/groff/font/devdvi/HREC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/HREC rename to groff/font/devdvi/HREC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/HRTC b/groff/font/devdvi/HRTC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/HRTC rename to groff/font/devdvi/HRTC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/MI b/groff/font/devdvi/MI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/MI rename to groff/font/devdvi/MI diff --git a/src/font/devdvi/Makefile.sub b/groff/font/devdvi/Makefile.sub similarity index 100% rename from src/font/devdvi/Makefile.sub rename to groff/font/devdvi/Makefile.sub diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/S b/groff/font/devdvi/S similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/S rename to groff/font/devdvi/S diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/SA b/groff/font/devdvi/SA similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/SA rename to groff/font/devdvi/SA diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/SB b/groff/font/devdvi/SB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/SB rename to groff/font/devdvi/SB diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/SC b/groff/font/devdvi/SC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/SC rename to groff/font/devdvi/SC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/TB b/groff/font/devdvi/TB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/TB rename to groff/font/devdvi/TB diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/TBEC b/groff/font/devdvi/TBEC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/TBEC rename to groff/font/devdvi/TBEC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/TBI b/groff/font/devdvi/TBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/TBI rename to groff/font/devdvi/TBI diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/TBIEC b/groff/font/devdvi/TBIEC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/TBIEC rename to groff/font/devdvi/TBIEC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/TBITC b/groff/font/devdvi/TBITC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/TBITC rename to groff/font/devdvi/TBITC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/TBTC b/groff/font/devdvi/TBTC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/TBTC rename to groff/font/devdvi/TBTC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/TI b/groff/font/devdvi/TI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/TI rename to groff/font/devdvi/TI diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/TIEC b/groff/font/devdvi/TIEC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/TIEC rename to groff/font/devdvi/TIEC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/TITC b/groff/font/devdvi/TITC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/TITC rename to groff/font/devdvi/TITC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/TR b/groff/font/devdvi/TR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/TR rename to groff/font/devdvi/TR diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/TREC b/groff/font/devdvi/TREC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/TREC rename to groff/font/devdvi/TREC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/TRTC b/groff/font/devdvi/TRTC similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/TRTC rename to groff/font/devdvi/TRTC diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/generate/CompileFonts b/groff/font/devdvi/generate/CompileFonts similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/generate/CompileFonts rename to groff/font/devdvi/generate/CompileFonts diff --git a/src/font/devdvi/generate/Makefile b/groff/font/devdvi/generate/Makefile similarity index 100% rename from src/font/devdvi/generate/Makefile rename to groff/font/devdvi/generate/Makefile diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/generate/ec.map b/groff/font/devdvi/generate/ec.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/generate/ec.map rename to groff/font/devdvi/generate/ec.map diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/generate/msam.map b/groff/font/devdvi/generate/msam.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/generate/msam.map rename to groff/font/devdvi/generate/msam.map diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/generate/msbm.map b/groff/font/devdvi/generate/msbm.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/generate/msbm.map rename to groff/font/devdvi/generate/msbm.map diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/generate/tc.map b/groff/font/devdvi/generate/tc.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/generate/tc.map rename to groff/font/devdvi/generate/tc.map diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/generate/texb.map b/groff/font/devdvi/generate/texb.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/generate/texb.map rename to groff/font/devdvi/generate/texb.map diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/generate/texex.map b/groff/font/devdvi/generate/texex.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/generate/texex.map rename to groff/font/devdvi/generate/texex.map diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/generate/texi.map b/groff/font/devdvi/generate/texi.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/generate/texi.map rename to groff/font/devdvi/generate/texi.map diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/generate/texmi.map b/groff/font/devdvi/generate/texmi.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/generate/texmi.map rename to groff/font/devdvi/generate/texmi.map diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/generate/texr.map b/groff/font/devdvi/generate/texr.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/generate/texr.map rename to groff/font/devdvi/generate/texr.map diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/generate/texsy.map b/groff/font/devdvi/generate/texsy.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/generate/texsy.map rename to groff/font/devdvi/generate/texsy.map diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/generate/textex.map b/groff/font/devdvi/generate/textex.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/generate/textex.map rename to groff/font/devdvi/generate/textex.map diff --git a/gen/usr/share/groff/1.19.2/font/devdvi/generate/textt.map b/groff/font/devdvi/generate/textt.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devdvi/generate/textt.map rename to groff/font/devdvi/generate/textt.map diff --git a/src/font/devhtml/DESC.proto b/groff/font/devhtml/DESC.proto similarity index 100% rename from src/font/devhtml/DESC.proto rename to groff/font/devhtml/DESC.proto diff --git a/src/font/devhtml/Makefile.sub b/groff/font/devhtml/Makefile.sub similarity index 100% rename from src/font/devhtml/Makefile.sub rename to groff/font/devhtml/Makefile.sub diff --git a/src/font/devhtml/R.proto b/groff/font/devhtml/R.proto similarity index 100% rename from src/font/devhtml/R.proto rename to groff/font/devhtml/R.proto diff --git a/src/font/devlatin1/DESC.proto b/groff/font/devlatin1/DESC.proto similarity index 100% rename from src/font/devlatin1/DESC.proto rename to groff/font/devlatin1/DESC.proto diff --git a/src/font/devlatin1/Makefile.sub b/groff/font/devlatin1/Makefile.sub similarity index 100% rename from src/font/devlatin1/Makefile.sub rename to groff/font/devlatin1/Makefile.sub diff --git a/src/font/devlatin1/R.proto b/groff/font/devlatin1/R.proto similarity index 100% rename from src/font/devlatin1/R.proto rename to groff/font/devlatin1/R.proto diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/CB b/groff/font/devlbp/CB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/CB rename to groff/font/devlbp/CB diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/CI b/groff/font/devlbp/CI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/CI rename to groff/font/devlbp/CI diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/CR b/groff/font/devlbp/CR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/CR rename to groff/font/devlbp/CR diff --git a/src/font/devlbp/DESC.in b/groff/font/devlbp/DESC.in similarity index 100% rename from src/font/devlbp/DESC.in rename to groff/font/devlbp/DESC.in diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/EB b/groff/font/devlbp/EB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/EB rename to groff/font/devlbp/EB diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/EI b/groff/font/devlbp/EI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/EI rename to groff/font/devlbp/EI diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/ER b/groff/font/devlbp/ER similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/ER rename to groff/font/devlbp/ER diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/HB b/groff/font/devlbp/HB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/HB rename to groff/font/devlbp/HB diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/HBI b/groff/font/devlbp/HBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/HBI rename to groff/font/devlbp/HBI diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/HI b/groff/font/devlbp/HI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/HI rename to groff/font/devlbp/HI diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/HNB b/groff/font/devlbp/HNB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/HNB rename to groff/font/devlbp/HNB diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/HNBI b/groff/font/devlbp/HNBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/HNBI rename to groff/font/devlbp/HNBI diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/HNI b/groff/font/devlbp/HNI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/HNI rename to groff/font/devlbp/HNI diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/HNR b/groff/font/devlbp/HNR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/HNR rename to groff/font/devlbp/HNR diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/HR b/groff/font/devlbp/HR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/HR rename to groff/font/devlbp/HR diff --git a/src/font/devlbp/Makefile.sub b/groff/font/devlbp/Makefile.sub similarity index 100% rename from src/font/devlbp/Makefile.sub rename to groff/font/devlbp/Makefile.sub diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/TB b/groff/font/devlbp/TB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/TB rename to groff/font/devlbp/TB diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/TBI b/groff/font/devlbp/TBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/TBI rename to groff/font/devlbp/TBI diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/TI b/groff/font/devlbp/TI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/TI rename to groff/font/devlbp/TI diff --git a/gen/usr/share/groff/1.19.2/font/devlbp/TR b/groff/font/devlbp/TR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlbp/TR rename to groff/font/devlbp/TR diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/AB b/groff/font/devlj4/AB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/AB rename to groff/font/devlj4/AB diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/ABI b/groff/font/devlj4/ABI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/ABI rename to groff/font/devlj4/ABI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/AI b/groff/font/devlj4/AI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/AI rename to groff/font/devlj4/AI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/ALBB b/groff/font/devlj4/ALBB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/ALBB rename to groff/font/devlj4/ALBB diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/ALBR b/groff/font/devlj4/ALBR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/ALBR rename to groff/font/devlj4/ALBR diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/AOB b/groff/font/devlj4/AOB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/AOB rename to groff/font/devlj4/AOB diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/AOI b/groff/font/devlj4/AOI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/AOI rename to groff/font/devlj4/AOI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/AOR b/groff/font/devlj4/AOR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/AOR rename to groff/font/devlj4/AOR diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/AR b/groff/font/devlj4/AR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/AR rename to groff/font/devlj4/AR diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/CB b/groff/font/devlj4/CB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/CB rename to groff/font/devlj4/CB diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/CBI b/groff/font/devlj4/CBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/CBI rename to groff/font/devlj4/CBI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/CI b/groff/font/devlj4/CI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/CI rename to groff/font/devlj4/CI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/CLARENDON b/groff/font/devlj4/CLARENDON similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/CLARENDON rename to groff/font/devlj4/CLARENDON diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/CORONET b/groff/font/devlj4/CORONET similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/CORONET rename to groff/font/devlj4/CORONET diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/CR b/groff/font/devlj4/CR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/CR rename to groff/font/devlj4/CR diff --git a/src/font/devlj4/DESC.in b/groff/font/devlj4/DESC.in similarity index 100% rename from src/font/devlj4/DESC.in rename to groff/font/devlj4/DESC.in diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/GB b/groff/font/devlj4/GB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/GB rename to groff/font/devlj4/GB diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/GBI b/groff/font/devlj4/GBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/GBI rename to groff/font/devlj4/GBI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/GI b/groff/font/devlj4/GI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/GI rename to groff/font/devlj4/GI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/GR b/groff/font/devlj4/GR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/GR rename to groff/font/devlj4/GR diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/LGB b/groff/font/devlj4/LGB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/LGB rename to groff/font/devlj4/LGB diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/LGI b/groff/font/devlj4/LGI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/LGI rename to groff/font/devlj4/LGI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/LGR b/groff/font/devlj4/LGR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/LGR rename to groff/font/devlj4/LGR diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/MARIGOLD b/groff/font/devlj4/MARIGOLD similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/MARIGOLD rename to groff/font/devlj4/MARIGOLD diff --git a/src/font/devlj4/Makefile.sub b/groff/font/devlj4/Makefile.sub similarity index 100% rename from src/font/devlj4/Makefile.sub rename to groff/font/devlj4/Makefile.sub diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/OB b/groff/font/devlj4/OB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/OB rename to groff/font/devlj4/OB diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/OBI b/groff/font/devlj4/OBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/OBI rename to groff/font/devlj4/OBI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/OI b/groff/font/devlj4/OI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/OI rename to groff/font/devlj4/OI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/OR b/groff/font/devlj4/OR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/OR rename to groff/font/devlj4/OR diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/S b/groff/font/devlj4/S similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/S rename to groff/font/devlj4/S diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/SYMBOL b/groff/font/devlj4/SYMBOL similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/SYMBOL rename to groff/font/devlj4/SYMBOL diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/TB b/groff/font/devlj4/TB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/TB rename to groff/font/devlj4/TB diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/TBI b/groff/font/devlj4/TBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/TBI rename to groff/font/devlj4/TBI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/TI b/groff/font/devlj4/TI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/TI rename to groff/font/devlj4/TI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/TNRB b/groff/font/devlj4/TNRB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/TNRB rename to groff/font/devlj4/TNRB diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/TNRBI b/groff/font/devlj4/TNRBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/TNRBI rename to groff/font/devlj4/TNRBI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/TNRI b/groff/font/devlj4/TNRI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/TNRI rename to groff/font/devlj4/TNRI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/TNRR b/groff/font/devlj4/TNRR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/TNRR rename to groff/font/devlj4/TNRR diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/TR b/groff/font/devlj4/TR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/TR rename to groff/font/devlj4/TR diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/UB b/groff/font/devlj4/UB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/UB rename to groff/font/devlj4/UB diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/UBI b/groff/font/devlj4/UBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/UBI rename to groff/font/devlj4/UBI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/UCB b/groff/font/devlj4/UCB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/UCB rename to groff/font/devlj4/UCB diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/UCBI b/groff/font/devlj4/UCBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/UCBI rename to groff/font/devlj4/UCBI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/UCI b/groff/font/devlj4/UCI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/UCI rename to groff/font/devlj4/UCI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/UCR b/groff/font/devlj4/UCR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/UCR rename to groff/font/devlj4/UCR diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/UI b/groff/font/devlj4/UI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/UI rename to groff/font/devlj4/UI diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/UR b/groff/font/devlj4/UR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/UR rename to groff/font/devlj4/UR diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/WINGDINGS b/groff/font/devlj4/WINGDINGS similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/WINGDINGS rename to groff/font/devlj4/WINGDINGS diff --git a/src/font/devlj4/generate/Makefile b/groff/font/devlj4/generate/Makefile similarity index 100% rename from src/font/devlj4/generate/Makefile rename to groff/font/devlj4/generate/Makefile diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/generate/special.awk b/groff/font/devlj4/generate/special.awk old mode 100755 new mode 100644 similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/generate/special.awk rename to groff/font/devlj4/generate/special.awk diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/generate/special.map b/groff/font/devlj4/generate/special.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/generate/special.map rename to groff/font/devlj4/generate/special.map diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/generate/symbol.map b/groff/font/devlj4/generate/symbol.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/generate/symbol.map rename to groff/font/devlj4/generate/symbol.map diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/generate/text.map b/groff/font/devlj4/generate/text.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/generate/text.map rename to groff/font/devlj4/generate/text.map diff --git a/gen/usr/share/groff/1.19.2/font/devlj4/generate/wingdings.map b/groff/font/devlj4/generate/wingdings.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devlj4/generate/wingdings.map rename to groff/font/devlj4/generate/wingdings.map diff --git a/gen/usr/share/groff/1.19.2/font/devps/AB b/groff/font/devps/AB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/AB rename to groff/font/devps/AB diff --git a/gen/usr/share/groff/1.19.2/font/devps/ABI b/groff/font/devps/ABI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/ABI rename to groff/font/devps/ABI diff --git a/gen/usr/share/groff/1.19.2/font/devps/AI b/groff/font/devps/AI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/AI rename to groff/font/devps/AI diff --git a/gen/usr/share/groff/1.19.2/font/devps/AR b/groff/font/devps/AR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/AR rename to groff/font/devps/AR diff --git a/gen/usr/share/groff/1.19.2/font/devps/BMB b/groff/font/devps/BMB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/BMB rename to groff/font/devps/BMB diff --git a/gen/usr/share/groff/1.19.2/font/devps/BMBI b/groff/font/devps/BMBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/BMBI rename to groff/font/devps/BMBI diff --git a/gen/usr/share/groff/1.19.2/font/devps/BMI b/groff/font/devps/BMI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/BMI rename to groff/font/devps/BMI diff --git a/gen/usr/share/groff/1.19.2/font/devps/BMR b/groff/font/devps/BMR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/BMR rename to groff/font/devps/BMR diff --git a/gen/usr/share/groff/1.19.2/font/devps/CB b/groff/font/devps/CB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/CB rename to groff/font/devps/CB diff --git a/gen/usr/share/groff/1.19.2/font/devps/CBI b/groff/font/devps/CBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/CBI rename to groff/font/devps/CBI diff --git a/gen/usr/share/groff/1.19.2/font/devps/CI b/groff/font/devps/CI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/CI rename to groff/font/devps/CI diff --git a/gen/usr/share/groff/1.19.2/font/devps/CR b/groff/font/devps/CR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/CR rename to groff/font/devps/CR diff --git a/src/font/devps/DESC.in b/groff/font/devps/DESC.in similarity index 100% rename from src/font/devps/DESC.in rename to groff/font/devps/DESC.in diff --git a/gen/usr/share/groff/1.19.2/font/devps/EURO b/groff/font/devps/EURO similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/EURO rename to groff/font/devps/EURO diff --git a/gen/usr/share/groff/1.19.2/font/devps/HB b/groff/font/devps/HB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/HB rename to groff/font/devps/HB diff --git a/gen/usr/share/groff/1.19.2/font/devps/HBI b/groff/font/devps/HBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/HBI rename to groff/font/devps/HBI diff --git a/gen/usr/share/groff/1.19.2/font/devps/HI b/groff/font/devps/HI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/HI rename to groff/font/devps/HI diff --git a/gen/usr/share/groff/1.19.2/font/devps/HNB b/groff/font/devps/HNB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/HNB rename to groff/font/devps/HNB diff --git a/gen/usr/share/groff/1.19.2/font/devps/HNBI b/groff/font/devps/HNBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/HNBI rename to groff/font/devps/HNBI diff --git a/gen/usr/share/groff/1.19.2/font/devps/HNI b/groff/font/devps/HNI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/HNI rename to groff/font/devps/HNI diff --git a/gen/usr/share/groff/1.19.2/font/devps/HNR b/groff/font/devps/HNR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/HNR rename to groff/font/devps/HNR diff --git a/gen/usr/share/groff/1.19.2/font/devps/HR b/groff/font/devps/HR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/HR rename to groff/font/devps/HR diff --git a/src/font/devps/Makefile.sub b/groff/font/devps/Makefile.sub similarity index 100% rename from src/font/devps/Makefile.sub rename to groff/font/devps/Makefile.sub diff --git a/gen/usr/share/groff/1.19.2/font/devps/NB b/groff/font/devps/NB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/NB rename to groff/font/devps/NB diff --git a/gen/usr/share/groff/1.19.2/font/devps/NBI b/groff/font/devps/NBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/NBI rename to groff/font/devps/NBI diff --git a/gen/usr/share/groff/1.19.2/font/devps/NI b/groff/font/devps/NI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/NI rename to groff/font/devps/NI diff --git a/gen/usr/share/groff/1.19.2/font/devps/NR b/groff/font/devps/NR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/NR rename to groff/font/devps/NR diff --git a/gen/usr/share/groff/1.19.2/font/devps/PB b/groff/font/devps/PB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/PB rename to groff/font/devps/PB diff --git a/gen/usr/share/groff/1.19.2/font/devps/PBI b/groff/font/devps/PBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/PBI rename to groff/font/devps/PBI diff --git a/gen/usr/share/groff/1.19.2/font/devps/PI b/groff/font/devps/PI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/PI rename to groff/font/devps/PI diff --git a/gen/usr/share/groff/1.19.2/font/devps/PR b/groff/font/devps/PR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/PR rename to groff/font/devps/PR diff --git a/gen/usr/share/groff/1.19.2/font/devps/S b/groff/font/devps/S similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/S rename to groff/font/devps/S diff --git a/gen/usr/share/groff/1.19.2/font/devps/SS b/groff/font/devps/SS similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/SS rename to groff/font/devps/SS diff --git a/gen/usr/share/groff/1.19.2/font/devps/TB b/groff/font/devps/TB similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/TB rename to groff/font/devps/TB diff --git a/gen/usr/share/groff/1.19.2/font/devps/TBI b/groff/font/devps/TBI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/TBI rename to groff/font/devps/TBI diff --git a/gen/usr/share/groff/1.19.2/font/devps/TI b/groff/font/devps/TI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/TI rename to groff/font/devps/TI diff --git a/gen/usr/share/groff/1.19.2/font/devps/TR b/groff/font/devps/TR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/TR rename to groff/font/devps/TR diff --git a/gen/usr/share/groff/1.19.2/font/devps/ZCMI b/groff/font/devps/ZCMI similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/ZCMI rename to groff/font/devps/ZCMI diff --git a/gen/usr/share/groff/1.19.2/font/devps/ZD b/groff/font/devps/ZD similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/ZD rename to groff/font/devps/ZD diff --git a/gen/usr/share/groff/1.19.2/font/devps/ZDR b/groff/font/devps/ZDR similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/ZDR rename to groff/font/devps/ZDR diff --git a/gen/usr/share/groff/1.19.2/font/devps/download b/groff/font/devps/download similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/download rename to groff/font/devps/download diff --git a/src/font/devps/freeeuro.afm b/groff/font/devps/freeeuro.afm similarity index 100% rename from src/font/devps/freeeuro.afm rename to groff/font/devps/freeeuro.afm diff --git a/gen/usr/share/groff/1.19.2/font/devps/freeeuro.pfa b/groff/font/devps/freeeuro.pfa similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/freeeuro.pfa rename to groff/font/devps/freeeuro.pfa diff --git a/src/font/devps/generate/Makefile b/groff/font/devps/generate/Makefile similarity index 100% rename from src/font/devps/generate/Makefile rename to groff/font/devps/generate/Makefile diff --git a/gen/usr/share/groff/1.19.2/font/devps/generate/afmname b/groff/font/devps/generate/afmname similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/generate/afmname rename to groff/font/devps/generate/afmname diff --git a/gen/usr/share/groff/1.19.2/font/devps/generate/dingbats.map b/groff/font/devps/generate/dingbats.map similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/generate/dingbats.map rename to groff/font/devps/generate/dingbats.map diff --git a/gen/usr/share/groff/1.19.2/font/devps/generate/dingbats.rmap b/groff/font/devps/generate/dingbats.rmap similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/generate/dingbats.rmap rename to groff/font/devps/generate/dingbats.rmap diff --git a/src/font/devps/generate/freeeuro.sfd b/groff/font/devps/generate/freeeuro.sfd similarity index 100% rename from src/font/devps/generate/freeeuro.sfd rename to groff/font/devps/generate/freeeuro.sfd diff --git a/gen/usr/share/groff/1.19.2/font/devps/generate/lgreekmap b/groff/font/devps/generate/lgreekmap similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/generate/lgreekmap rename to groff/font/devps/generate/lgreekmap diff --git a/src/font/devps/generate/sfdtopfa.pe b/groff/font/devps/generate/sfdtopfa.pe similarity index 100% rename from src/font/devps/generate/sfdtopfa.pe rename to groff/font/devps/generate/sfdtopfa.pe diff --git a/gen/usr/share/groff/1.19.2/font/devps/generate/symbol.sed b/groff/font/devps/generate/symbol.sed old mode 100755 new mode 100644 similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/generate/symbol.sed rename to groff/font/devps/generate/symbol.sed diff --git a/gen/usr/share/groff/1.19.2/font/devps/generate/symbolchars b/groff/font/devps/generate/symbolchars similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/generate/symbolchars rename to groff/font/devps/generate/symbolchars diff --git a/gen/usr/share/groff/1.19.2/font/devps/generate/symbolsl.afm b/groff/font/devps/generate/symbolsl.afm similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/generate/symbolsl.afm rename to groff/font/devps/generate/symbolsl.afm diff --git a/gen/usr/share/groff/1.19.2/font/devps/generate/textmap b/groff/font/devps/generate/textmap similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/generate/textmap rename to groff/font/devps/generate/textmap diff --git a/src/font/devps/prologue.ps b/groff/font/devps/prologue.ps similarity index 100% rename from src/font/devps/prologue.ps rename to groff/font/devps/prologue.ps diff --git a/src/font/devps/psstrip.sed b/groff/font/devps/psstrip.sed similarity index 100% rename from src/font/devps/psstrip.sed rename to groff/font/devps/psstrip.sed diff --git a/src/font/devps/symbol.afm b/groff/font/devps/symbol.afm similarity index 100% rename from src/font/devps/symbol.afm rename to groff/font/devps/symbol.afm diff --git a/src/font/devps/symbolmap b/groff/font/devps/symbolmap similarity index 100% rename from src/font/devps/symbolmap rename to groff/font/devps/symbolmap diff --git a/src/font/devps/symbolsl.ps b/groff/font/devps/symbolsl.ps similarity index 100% rename from src/font/devps/symbolsl.ps rename to groff/font/devps/symbolsl.ps diff --git a/gen/usr/share/groff/1.19.2/font/devps/text.enc b/groff/font/devps/text.enc similarity index 100% rename from gen/usr/share/groff/1.19.2/font/devps/text.enc rename to groff/font/devps/text.enc diff --git a/src/font/devps/zapfdr.afm b/groff/font/devps/zapfdr.afm similarity index 100% rename from src/font/devps/zapfdr.afm rename to groff/font/devps/zapfdr.afm diff --git a/src/font/devps/zapfdr.ps b/groff/font/devps/zapfdr.ps similarity index 100% rename from src/font/devps/zapfdr.ps rename to groff/font/devps/zapfdr.ps diff --git a/src/font/devutf8/DESC.proto b/groff/font/devutf8/DESC.proto similarity index 100% rename from src/font/devutf8/DESC.proto rename to groff/font/devutf8/DESC.proto diff --git a/src/font/devutf8/Makefile.sub b/groff/font/devutf8/Makefile.sub similarity index 100% rename from src/font/devutf8/Makefile.sub rename to groff/font/devutf8/Makefile.sub diff --git a/src/font/devutf8/NOTES b/groff/font/devutf8/NOTES similarity index 100% rename from src/font/devutf8/NOTES rename to groff/font/devutf8/NOTES diff --git a/src/font/devutf8/R.proto b/groff/font/devutf8/R.proto similarity index 100% rename from src/font/devutf8/R.proto rename to groff/font/devutf8/R.proto diff --git a/src/gendef.sh b/groff/gendef.sh similarity index 100% rename from src/gendef.sh rename to groff/gendef.sh diff --git a/src/install-sh b/groff/install-sh similarity index 100% rename from src/install-sh rename to groff/install-sh diff --git a/src/man/Makefile.sub b/groff/man/Makefile.sub similarity index 100% rename from src/man/Makefile.sub rename to groff/man/Makefile.sub diff --git a/src/man/ditroff.man b/groff/man/ditroff.man similarity index 100% rename from src/man/ditroff.man rename to groff/man/ditroff.man diff --git a/src/man/groff.man b/groff/man/groff.man similarity index 100% rename from src/man/groff.man rename to groff/man/groff.man diff --git a/src/man/groff_char.man b/groff/man/groff_char.man similarity index 100% rename from src/man/groff_char.man rename to groff/man/groff_char.man diff --git a/src/man/groff_diff.man b/groff/man/groff_diff.man similarity index 100% rename from src/man/groff_diff.man rename to groff/man/groff_diff.man diff --git a/src/man/groff_font.man b/groff/man/groff_font.man similarity index 100% rename from src/man/groff_font.man rename to groff/man/groff_font.man diff --git a/src/man/groff_out.man b/groff/man/groff_out.man similarity index 100% rename from src/man/groff_out.man rename to groff/man/groff_out.man diff --git a/src/man/groff_tmac.man b/groff/man/groff_tmac.man similarity index 100% rename from src/man/groff_tmac.man rename to groff/man/groff_tmac.man diff --git a/src/man/roff.man b/groff/man/roff.man similarity index 100% rename from src/man/roff.man rename to groff/man/roff.man diff --git a/src/mdate.sh b/groff/mdate.sh similarity index 100% rename from src/mdate.sh rename to groff/mdate.sh diff --git a/src/mkinstalldirs b/groff/mkinstalldirs similarity index 100% rename from src/mkinstalldirs rename to groff/mkinstalldirs diff --git a/src/src/devices/grodvi/Makefile.sub b/groff/src/devices/grodvi/Makefile.sub similarity index 100% rename from src/src/devices/grodvi/Makefile.sub rename to groff/src/devices/grodvi/Makefile.sub diff --git a/src/src/devices/grodvi/dvi.cpp b/groff/src/devices/grodvi/dvi.cpp similarity index 100% rename from src/src/devices/grodvi/dvi.cpp rename to groff/src/devices/grodvi/dvi.cpp diff --git a/src/src/devices/grodvi/grodvi.man b/groff/src/devices/grodvi/grodvi.man similarity index 100% rename from src/src/devices/grodvi/grodvi.man rename to groff/src/devices/grodvi/grodvi.man diff --git a/src/src/devices/grohtml/Makefile.sub b/groff/src/devices/grohtml/Makefile.sub similarity index 100% rename from src/src/devices/grohtml/Makefile.sub rename to groff/src/devices/grohtml/Makefile.sub diff --git a/src/src/devices/grohtml/grohtml.man b/groff/src/devices/grohtml/grohtml.man similarity index 100% rename from src/src/devices/grohtml/grohtml.man rename to groff/src/devices/grohtml/grohtml.man diff --git a/src/src/devices/grohtml/html-table.cpp b/groff/src/devices/grohtml/html-table.cpp similarity index 100% rename from src/src/devices/grohtml/html-table.cpp rename to groff/src/devices/grohtml/html-table.cpp diff --git a/src/src/devices/grohtml/html-table.h b/groff/src/devices/grohtml/html-table.h similarity index 100% rename from src/src/devices/grohtml/html-table.h rename to groff/src/devices/grohtml/html-table.h diff --git a/src/src/devices/grohtml/html-text.cpp b/groff/src/devices/grohtml/html-text.cpp similarity index 100% rename from src/src/devices/grohtml/html-text.cpp rename to groff/src/devices/grohtml/html-text.cpp diff --git a/src/src/devices/grohtml/html-text.h b/groff/src/devices/grohtml/html-text.h similarity index 100% rename from src/src/devices/grohtml/html-text.h rename to groff/src/devices/grohtml/html-text.h diff --git a/src/src/devices/grohtml/html.h b/groff/src/devices/grohtml/html.h similarity index 100% rename from src/src/devices/grohtml/html.h rename to groff/src/devices/grohtml/html.h diff --git a/src/src/devices/grohtml/output.cpp b/groff/src/devices/grohtml/output.cpp similarity index 100% rename from src/src/devices/grohtml/output.cpp rename to groff/src/devices/grohtml/output.cpp diff --git a/src/src/devices/grohtml/post-html.cpp b/groff/src/devices/grohtml/post-html.cpp similarity index 99% rename from src/src/devices/grohtml/post-html.cpp rename to groff/src/devices/grohtml/post-html.cpp index 1283e06..593991c 100644 --- a/src/src/devices/grohtml/post-html.cpp +++ b/groff/src/devices/grohtml/post-html.cpp @@ -1587,7 +1587,7 @@ void header_desc::write_headings (FILE *f, int force) buffer += as_string(h); buffer += '\0'; - fprintf(f, buffer.contents()); + fprintf(f, "%s", buffer.contents()); } else fputs(g->text_string, f); h++; diff --git a/src/src/devices/grolbp/Makefile.sub b/groff/src/devices/grolbp/Makefile.sub similarity index 100% rename from src/src/devices/grolbp/Makefile.sub rename to groff/src/devices/grolbp/Makefile.sub diff --git a/src/src/devices/grolbp/charset.h b/groff/src/devices/grolbp/charset.h similarity index 100% rename from src/src/devices/grolbp/charset.h rename to groff/src/devices/grolbp/charset.h diff --git a/src/src/devices/grolbp/grolbp.man b/groff/src/devices/grolbp/grolbp.man similarity index 100% rename from src/src/devices/grolbp/grolbp.man rename to groff/src/devices/grolbp/grolbp.man diff --git a/src/src/devices/grolbp/lbp.cpp b/groff/src/devices/grolbp/lbp.cpp similarity index 100% rename from src/src/devices/grolbp/lbp.cpp rename to groff/src/devices/grolbp/lbp.cpp diff --git a/src/src/devices/grolbp/lbp.h b/groff/src/devices/grolbp/lbp.h similarity index 100% rename from src/src/devices/grolbp/lbp.h rename to groff/src/devices/grolbp/lbp.h diff --git a/src/src/devices/grolj4/Makefile.sub b/groff/src/devices/grolj4/Makefile.sub similarity index 100% rename from src/src/devices/grolj4/Makefile.sub rename to groff/src/devices/grolj4/Makefile.sub diff --git a/src/src/devices/grolj4/grolj4.man b/groff/src/devices/grolj4/grolj4.man similarity index 100% rename from src/src/devices/grolj4/grolj4.man rename to groff/src/devices/grolj4/grolj4.man diff --git a/src/src/devices/grolj4/lj4.cpp b/groff/src/devices/grolj4/lj4.cpp similarity index 100% rename from src/src/devices/grolj4/lj4.cpp rename to groff/src/devices/grolj4/lj4.cpp diff --git a/src/src/devices/grolj4/lj4_font.man b/groff/src/devices/grolj4/lj4_font.man similarity index 100% rename from src/src/devices/grolj4/lj4_font.man rename to groff/src/devices/grolj4/lj4_font.man diff --git a/src/src/devices/grops/Makefile.sub b/groff/src/devices/grops/Makefile.sub similarity index 100% rename from src/src/devices/grops/Makefile.sub rename to groff/src/devices/grops/Makefile.sub diff --git a/src/src/devices/grops/TODO b/groff/src/devices/grops/TODO similarity index 100% rename from src/src/devices/grops/TODO rename to groff/src/devices/grops/TODO diff --git a/src/src/devices/grops/grops.man b/groff/src/devices/grops/grops.man similarity index 100% rename from src/src/devices/grops/grops.man rename to groff/src/devices/grops/grops.man diff --git a/src/src/devices/grops/ps.cpp b/groff/src/devices/grops/ps.cpp similarity index 100% rename from src/src/devices/grops/ps.cpp rename to groff/src/devices/grops/ps.cpp diff --git a/src/src/devices/grops/ps.h b/groff/src/devices/grops/ps.h similarity index 100% rename from src/src/devices/grops/ps.h rename to groff/src/devices/grops/ps.h diff --git a/src/src/devices/grops/psfig.diff b/groff/src/devices/grops/psfig.diff similarity index 100% rename from src/src/devices/grops/psfig.diff rename to groff/src/devices/grops/psfig.diff diff --git a/src/src/devices/grops/psrm.cpp b/groff/src/devices/grops/psrm.cpp similarity index 100% rename from src/src/devices/grops/psrm.cpp rename to groff/src/devices/grops/psrm.cpp diff --git a/src/src/devices/grotty/Makefile.sub b/groff/src/devices/grotty/Makefile.sub similarity index 100% rename from src/src/devices/grotty/Makefile.sub rename to groff/src/devices/grotty/Makefile.sub diff --git a/src/src/devices/grotty/TODO b/groff/src/devices/grotty/TODO similarity index 100% rename from src/src/devices/grotty/TODO rename to groff/src/devices/grotty/TODO diff --git a/src/src/devices/grotty/grotty.man b/groff/src/devices/grotty/grotty.man similarity index 100% rename from src/src/devices/grotty/grotty.man rename to groff/src/devices/grotty/grotty.man diff --git a/src/src/devices/grotty/tty.cpp b/groff/src/devices/grotty/tty.cpp similarity index 100% rename from src/src/devices/grotty/tty.cpp rename to groff/src/devices/grotty/tty.cpp diff --git a/src/src/devices/xditview/ChangeLog b/groff/src/devices/xditview/ChangeLog similarity index 100% rename from src/src/devices/xditview/ChangeLog rename to groff/src/devices/xditview/ChangeLog diff --git a/src/src/devices/xditview/DESC.in b/groff/src/devices/xditview/DESC.in similarity index 100% rename from src/src/devices/xditview/DESC.in rename to groff/src/devices/xditview/DESC.in diff --git a/src/src/devices/xditview/Dvi.c b/groff/src/devices/xditview/Dvi.c similarity index 100% rename from src/src/devices/xditview/Dvi.c rename to groff/src/devices/xditview/Dvi.c diff --git a/src/src/devices/xditview/Dvi.h b/groff/src/devices/xditview/Dvi.h similarity index 100% rename from src/src/devices/xditview/Dvi.h rename to groff/src/devices/xditview/Dvi.h diff --git a/src/src/devices/xditview/DviP.h b/groff/src/devices/xditview/DviP.h similarity index 100% rename from src/src/devices/xditview/DviP.h rename to groff/src/devices/xditview/DviP.h diff --git a/src/src/devices/xditview/FontMap b/groff/src/devices/xditview/FontMap similarity index 100% rename from src/src/devices/xditview/FontMap rename to groff/src/devices/xditview/FontMap diff --git a/src/src/devices/xditview/GXditview.ad b/groff/src/devices/xditview/GXditview.ad similarity index 100% rename from src/src/devices/xditview/GXditview.ad rename to groff/src/devices/xditview/GXditview.ad diff --git a/src/src/devices/xditview/Makefile.sub b/groff/src/devices/xditview/Makefile.sub similarity index 100% rename from src/src/devices/xditview/Makefile.sub rename to groff/src/devices/xditview/Makefile.sub diff --git a/src/src/devices/xditview/Menu.h b/groff/src/devices/xditview/Menu.h similarity index 100% rename from src/src/devices/xditview/Menu.h rename to groff/src/devices/xditview/Menu.h diff --git a/src/src/devices/xditview/README b/groff/src/devices/xditview/README similarity index 100% rename from src/src/devices/xditview/README rename to groff/src/devices/xditview/README diff --git a/src/src/devices/xditview/TODO b/groff/src/devices/xditview/TODO similarity index 100% rename from src/src/devices/xditview/TODO rename to groff/src/devices/xditview/TODO diff --git a/src/src/devices/xditview/ad2c b/groff/src/devices/xditview/ad2c similarity index 100% rename from src/src/devices/xditview/ad2c rename to groff/src/devices/xditview/ad2c diff --git a/src/src/devices/xditview/device.c b/groff/src/devices/xditview/device.c similarity index 100% rename from src/src/devices/xditview/device.c rename to groff/src/devices/xditview/device.c diff --git a/src/src/devices/xditview/device.h b/groff/src/devices/xditview/device.h similarity index 100% rename from src/src/devices/xditview/device.h rename to groff/src/devices/xditview/device.h diff --git a/src/src/devices/xditview/draw.c b/groff/src/devices/xditview/draw.c similarity index 100% rename from src/src/devices/xditview/draw.c rename to groff/src/devices/xditview/draw.c diff --git a/src/src/devices/xditview/font.c b/groff/src/devices/xditview/font.c similarity index 100% rename from src/src/devices/xditview/font.c rename to groff/src/devices/xditview/font.c diff --git a/src/src/devices/xditview/gray1.bm b/groff/src/devices/xditview/gray1.bm similarity index 100% rename from src/src/devices/xditview/gray1.bm rename to groff/src/devices/xditview/gray1.bm diff --git a/src/src/devices/xditview/gray2.bm b/groff/src/devices/xditview/gray2.bm similarity index 100% rename from src/src/devices/xditview/gray2.bm rename to groff/src/devices/xditview/gray2.bm diff --git a/src/src/devices/xditview/gray3.bm b/groff/src/devices/xditview/gray3.bm similarity index 100% rename from src/src/devices/xditview/gray3.bm rename to groff/src/devices/xditview/gray3.bm diff --git a/src/src/devices/xditview/gray4.bm b/groff/src/devices/xditview/gray4.bm similarity index 100% rename from src/src/devices/xditview/gray4.bm rename to groff/src/devices/xditview/gray4.bm diff --git a/src/src/devices/xditview/gray5.bm b/groff/src/devices/xditview/gray5.bm similarity index 100% rename from src/src/devices/xditview/gray5.bm rename to groff/src/devices/xditview/gray5.bm diff --git a/src/src/devices/xditview/gray6.bm b/groff/src/devices/xditview/gray6.bm similarity index 100% rename from src/src/devices/xditview/gray6.bm rename to groff/src/devices/xditview/gray6.bm diff --git a/src/src/devices/xditview/gray7.bm b/groff/src/devices/xditview/gray7.bm similarity index 100% rename from src/src/devices/xditview/gray7.bm rename to groff/src/devices/xditview/gray7.bm diff --git a/src/src/devices/xditview/gray8.bm b/groff/src/devices/xditview/gray8.bm similarity index 100% rename from src/src/devices/xditview/gray8.bm rename to groff/src/devices/xditview/gray8.bm diff --git a/src/src/devices/xditview/gxditview.man b/groff/src/devices/xditview/gxditview.man similarity index 100% rename from src/src/devices/xditview/gxditview.man rename to groff/src/devices/xditview/gxditview.man diff --git a/src/src/devices/xditview/lex.c b/groff/src/devices/xditview/lex.c similarity index 100% rename from src/src/devices/xditview/lex.c rename to groff/src/devices/xditview/lex.c diff --git a/src/src/devices/xditview/page.c b/groff/src/devices/xditview/page.c similarity index 100% rename from src/src/devices/xditview/page.c rename to groff/src/devices/xditview/page.c diff --git a/src/src/devices/xditview/parse.c b/groff/src/devices/xditview/parse.c similarity index 100% rename from src/src/devices/xditview/parse.c rename to groff/src/devices/xditview/parse.c diff --git a/src/src/devices/xditview/xdit.bm b/groff/src/devices/xditview/xdit.bm similarity index 100% rename from src/src/devices/xditview/xdit.bm rename to groff/src/devices/xditview/xdit.bm diff --git a/src/src/devices/xditview/xdit_mask.bm b/groff/src/devices/xditview/xdit_mask.bm similarity index 100% rename from src/src/devices/xditview/xdit_mask.bm rename to groff/src/devices/xditview/xdit_mask.bm diff --git a/src/src/devices/xditview/xditview.c b/groff/src/devices/xditview/xditview.c similarity index 100% rename from src/src/devices/xditview/xditview.c rename to groff/src/devices/xditview/xditview.c diff --git a/src/src/include/DviChar.h b/groff/src/include/DviChar.h similarity index 100% rename from src/src/include/DviChar.h rename to groff/src/include/DviChar.h diff --git a/src/src/include/Makefile.sub b/groff/src/include/Makefile.sub similarity index 100% rename from src/src/include/Makefile.sub rename to groff/src/include/Makefile.sub diff --git a/src/src/include/XFontName.h b/groff/src/include/XFontName.h similarity index 100% rename from src/src/include/XFontName.h rename to groff/src/include/XFontName.h diff --git a/src/src/include/assert.h b/groff/src/include/assert.h similarity index 100% rename from src/src/include/assert.h rename to groff/src/include/assert.h diff --git a/src/src/include/cmap.h b/groff/src/include/cmap.h similarity index 100% rename from src/src/include/cmap.h rename to groff/src/include/cmap.h diff --git a/src/src/include/color.h b/groff/src/include/color.h similarity index 100% rename from src/src/include/color.h rename to groff/src/include/color.h diff --git a/src/src/include/config.hin b/groff/src/include/config.hin similarity index 100% rename from src/src/include/config.hin rename to groff/src/include/config.hin diff --git a/src/src/include/cset.h b/groff/src/include/cset.h similarity index 100% rename from src/src/include/cset.h rename to groff/src/include/cset.h diff --git a/src/src/include/device.h b/groff/src/include/device.h similarity index 100% rename from src/src/include/device.h rename to groff/src/include/device.h diff --git a/src/src/include/driver.h b/groff/src/include/driver.h similarity index 100% rename from src/src/include/driver.h rename to groff/src/include/driver.h diff --git a/src/src/include/errarg.h b/groff/src/include/errarg.h similarity index 100% rename from src/src/include/errarg.h rename to groff/src/include/errarg.h diff --git a/src/src/include/error.h b/groff/src/include/error.h similarity index 100% rename from src/src/include/error.h rename to groff/src/include/error.h diff --git a/src/src/include/font.h b/groff/src/include/font.h similarity index 100% rename from src/src/include/font.h rename to groff/src/include/font.h diff --git a/src/src/include/geometry.h b/groff/src/include/geometry.h similarity index 100% rename from src/src/include/geometry.h rename to groff/src/include/geometry.h diff --git a/src/src/include/getopt.h b/groff/src/include/getopt.h similarity index 100% rename from src/src/include/getopt.h rename to groff/src/include/getopt.h diff --git a/src/src/include/getopt_int.h b/groff/src/include/getopt_int.h similarity index 100% rename from src/src/include/getopt_int.h rename to groff/src/include/getopt_int.h diff --git a/src/src/include/gettext.h b/groff/src/include/gettext.h similarity index 100% rename from src/src/include/gettext.h rename to groff/src/include/gettext.h diff --git a/src/src/include/html-strings.h b/groff/src/include/html-strings.h similarity index 100% rename from src/src/include/html-strings.h rename to groff/src/include/html-strings.h diff --git a/src/src/include/htmlhint.h b/groff/src/include/htmlhint.h similarity index 100% rename from src/src/include/htmlhint.h rename to groff/src/include/htmlhint.h diff --git a/src/src/include/index.h b/groff/src/include/index.h similarity index 100% rename from src/src/include/index.h rename to groff/src/include/index.h diff --git a/src/src/include/lib.h b/groff/src/include/lib.h similarity index 100% rename from src/src/include/lib.h rename to groff/src/include/lib.h diff --git a/src/src/include/macropath.h b/groff/src/include/macropath.h similarity index 100% rename from src/src/include/macropath.h rename to groff/src/include/macropath.h diff --git a/src/src/include/nonposix.h b/groff/src/include/nonposix.h similarity index 100% rename from src/src/include/nonposix.h rename to groff/src/include/nonposix.h diff --git a/src/src/include/paper.h b/groff/src/include/paper.h similarity index 100% rename from src/src/include/paper.h rename to groff/src/include/paper.h diff --git a/src/src/include/posix.h b/groff/src/include/posix.h similarity index 100% rename from src/src/include/posix.h rename to groff/src/include/posix.h diff --git a/src/src/include/printer.h b/groff/src/include/printer.h similarity index 100% rename from src/src/include/printer.h rename to groff/src/include/printer.h diff --git a/src/src/include/ptable.h b/groff/src/include/ptable.h similarity index 100% rename from src/src/include/ptable.h rename to groff/src/include/ptable.h diff --git a/src/src/include/refid.h b/groff/src/include/refid.h similarity index 100% rename from src/src/include/refid.h rename to groff/src/include/refid.h diff --git a/src/src/include/relocate.h b/groff/src/include/relocate.h similarity index 100% rename from src/src/include/relocate.h rename to groff/src/include/relocate.h diff --git a/src/src/include/search.h b/groff/src/include/search.h similarity index 100% rename from src/src/include/search.h rename to groff/src/include/search.h diff --git a/src/src/include/searchpath.h b/groff/src/include/searchpath.h similarity index 100% rename from src/src/include/searchpath.h rename to groff/src/include/searchpath.h diff --git a/src/src/include/stringclass.h b/groff/src/include/stringclass.h similarity index 100% rename from src/src/include/stringclass.h rename to groff/src/include/stringclass.h diff --git a/src/src/include/symbol.h b/groff/src/include/symbol.h similarity index 100% rename from src/src/include/symbol.h rename to groff/src/include/symbol.h diff --git a/src/src/include/unicode.h b/groff/src/include/unicode.h similarity index 100% rename from src/src/include/unicode.h rename to groff/src/include/unicode.h diff --git a/src/src/libs/libbib/Makefile.sub b/groff/src/libs/libbib/Makefile.sub similarity index 100% rename from src/src/libs/libbib/Makefile.sub rename to groff/src/libs/libbib/Makefile.sub diff --git a/src/src/libs/libbib/common.cpp b/groff/src/libs/libbib/common.cpp similarity index 100% rename from src/src/libs/libbib/common.cpp rename to groff/src/libs/libbib/common.cpp diff --git a/src/src/libs/libbib/index.cpp b/groff/src/libs/libbib/index.cpp similarity index 100% rename from src/src/libs/libbib/index.cpp rename to groff/src/libs/libbib/index.cpp diff --git a/src/src/libs/libbib/linear.cpp b/groff/src/libs/libbib/linear.cpp similarity index 100% rename from src/src/libs/libbib/linear.cpp rename to groff/src/libs/libbib/linear.cpp diff --git a/src/src/libs/libbib/map.c b/groff/src/libs/libbib/map.c similarity index 100% rename from src/src/libs/libbib/map.c rename to groff/src/libs/libbib/map.c diff --git a/src/src/libs/libbib/search.cpp b/groff/src/libs/libbib/search.cpp similarity index 100% rename from src/src/libs/libbib/search.cpp rename to groff/src/libs/libbib/search.cpp diff --git a/src/src/libs/libdriver/Makefile.sub b/groff/src/libs/libdriver/Makefile.sub similarity index 100% rename from src/src/libs/libdriver/Makefile.sub rename to groff/src/libs/libdriver/Makefile.sub diff --git a/src/src/libs/libdriver/input.cpp b/groff/src/libs/libdriver/input.cpp similarity index 100% rename from src/src/libs/libdriver/input.cpp rename to groff/src/libs/libdriver/input.cpp diff --git a/src/src/libs/libdriver/printer.cpp b/groff/src/libs/libdriver/printer.cpp similarity index 100% rename from src/src/libs/libdriver/printer.cpp rename to groff/src/libs/libdriver/printer.cpp diff --git a/src/src/libs/libgroff/Makefile.sub b/groff/src/libs/libgroff/Makefile.sub similarity index 100% rename from src/src/libs/libgroff/Makefile.sub rename to groff/src/libs/libgroff/Makefile.sub diff --git a/src/src/libs/libgroff/assert.cpp b/groff/src/libs/libgroff/assert.cpp similarity index 100% rename from src/src/libs/libgroff/assert.cpp rename to groff/src/libs/libgroff/assert.cpp diff --git a/src/src/libs/libgroff/change_lf.cpp b/groff/src/libs/libgroff/change_lf.cpp similarity index 100% rename from src/src/libs/libgroff/change_lf.cpp rename to groff/src/libs/libgroff/change_lf.cpp diff --git a/src/src/libs/libgroff/cmap.cpp b/groff/src/libs/libgroff/cmap.cpp similarity index 100% rename from src/src/libs/libgroff/cmap.cpp rename to groff/src/libs/libgroff/cmap.cpp diff --git a/src/src/libs/libgroff/color.cpp b/groff/src/libs/libgroff/color.cpp similarity index 100% rename from src/src/libs/libgroff/color.cpp rename to groff/src/libs/libgroff/color.cpp diff --git a/src/src/libs/libgroff/cset.cpp b/groff/src/libs/libgroff/cset.cpp similarity index 100% rename from src/src/libs/libgroff/cset.cpp rename to groff/src/libs/libgroff/cset.cpp diff --git a/src/src/libs/libgroff/device.cpp b/groff/src/libs/libgroff/device.cpp similarity index 100% rename from src/src/libs/libgroff/device.cpp rename to groff/src/libs/libgroff/device.cpp diff --git a/src/src/libs/libgroff/errarg.cpp b/groff/src/libs/libgroff/errarg.cpp similarity index 100% rename from src/src/libs/libgroff/errarg.cpp rename to groff/src/libs/libgroff/errarg.cpp diff --git a/src/src/libs/libgroff/error.cpp b/groff/src/libs/libgroff/error.cpp similarity index 100% rename from src/src/libs/libgroff/error.cpp rename to groff/src/libs/libgroff/error.cpp diff --git a/src/src/libs/libgroff/fatal.cpp b/groff/src/libs/libgroff/fatal.cpp similarity index 100% rename from src/src/libs/libgroff/fatal.cpp rename to groff/src/libs/libgroff/fatal.cpp diff --git a/src/src/libs/libgroff/filename.cpp b/groff/src/libs/libgroff/filename.cpp similarity index 100% rename from src/src/libs/libgroff/filename.cpp rename to groff/src/libs/libgroff/filename.cpp diff --git a/src/src/libs/libgroff/fmod.c b/groff/src/libs/libgroff/fmod.c similarity index 100% rename from src/src/libs/libgroff/fmod.c rename to groff/src/libs/libgroff/fmod.c diff --git a/src/src/libs/libgroff/font.cpp b/groff/src/libs/libgroff/font.cpp similarity index 100% rename from src/src/libs/libgroff/font.cpp rename to groff/src/libs/libgroff/font.cpp diff --git a/src/src/libs/libgroff/fontfile.cpp b/groff/src/libs/libgroff/fontfile.cpp similarity index 100% rename from src/src/libs/libgroff/fontfile.cpp rename to groff/src/libs/libgroff/fontfile.cpp diff --git a/src/src/libs/libgroff/geometry.cpp b/groff/src/libs/libgroff/geometry.cpp similarity index 100% rename from src/src/libs/libgroff/geometry.cpp rename to groff/src/libs/libgroff/geometry.cpp diff --git a/src/src/libs/libgroff/getcwd.c b/groff/src/libs/libgroff/getcwd.c similarity index 100% rename from src/src/libs/libgroff/getcwd.c rename to groff/src/libs/libgroff/getcwd.c diff --git a/src/src/libs/libgroff/getopt.c b/groff/src/libs/libgroff/getopt.c similarity index 99% rename from src/src/libs/libgroff/getopt.c rename to groff/src/libs/libgroff/getopt.c index f094859..bcb81c8 100644 --- a/src/src/libs/libgroff/getopt.c +++ b/groff/src/libs/libgroff/getopt.c @@ -48,7 +48,7 @@ #endif #ifdef _LIBC -//# include +# include #else # include "gettext.h" # define _(msgid) gettext (msgid) diff --git a/src/src/libs/libgroff/getopt1.c b/groff/src/libs/libgroff/getopt1.c similarity index 98% rename from src/src/libs/libgroff/getopt1.c rename to groff/src/libs/libgroff/getopt1.c index 9db5c00..5acd224 100644 --- a/src/src/libs/libgroff/getopt1.c +++ b/groff/src/libs/libgroff/getopt1.c @@ -41,7 +41,7 @@ #endif int -getopt_long (int argc, char * __getopt_argv_const *argv, const char *options, +getopt_long (int argc, char *__getopt_argv_const *argv, const char *options, const struct option *long_options, int *opt_index) { return _getopt_internal (argc, (char **) argv, options, long_options, diff --git a/src/src/libs/libgroff/glyphuni.cpp b/groff/src/libs/libgroff/glyphuni.cpp similarity index 100% rename from src/src/libs/libgroff/glyphuni.cpp rename to groff/src/libs/libgroff/glyphuni.cpp diff --git a/src/src/libs/libgroff/htmlhint.cpp b/groff/src/libs/libgroff/htmlhint.cpp similarity index 100% rename from src/src/libs/libgroff/htmlhint.cpp rename to groff/src/libs/libgroff/htmlhint.cpp diff --git a/src/src/libs/libgroff/hypot.cpp b/groff/src/libs/libgroff/hypot.cpp similarity index 100% rename from src/src/libs/libgroff/hypot.cpp rename to groff/src/libs/libgroff/hypot.cpp diff --git a/src/src/libs/libgroff/iftoa.c b/groff/src/libs/libgroff/iftoa.c similarity index 100% rename from src/src/libs/libgroff/iftoa.c rename to groff/src/libs/libgroff/iftoa.c diff --git a/src/src/libs/libgroff/invalid.cpp b/groff/src/libs/libgroff/invalid.cpp similarity index 100% rename from src/src/libs/libgroff/invalid.cpp rename to groff/src/libs/libgroff/invalid.cpp diff --git a/src/src/libs/libgroff/itoa.c b/groff/src/libs/libgroff/itoa.c similarity index 100% rename from src/src/libs/libgroff/itoa.c rename to groff/src/libs/libgroff/itoa.c diff --git a/src/src/libs/libgroff/lf.cpp b/groff/src/libs/libgroff/lf.cpp similarity index 100% rename from src/src/libs/libgroff/lf.cpp rename to groff/src/libs/libgroff/lf.cpp diff --git a/src/src/libs/libgroff/lineno.cpp b/groff/src/libs/libgroff/lineno.cpp similarity index 100% rename from src/src/libs/libgroff/lineno.cpp rename to groff/src/libs/libgroff/lineno.cpp diff --git a/src/src/libs/libgroff/macropath.cpp b/groff/src/libs/libgroff/macropath.cpp similarity index 100% rename from src/src/libs/libgroff/macropath.cpp rename to groff/src/libs/libgroff/macropath.cpp diff --git a/src/src/libs/libgroff/matherr.c b/groff/src/libs/libgroff/matherr.c similarity index 100% rename from src/src/libs/libgroff/matherr.c rename to groff/src/libs/libgroff/matherr.c diff --git a/src/src/libs/libgroff/maxfilename.cpp b/groff/src/libs/libgroff/maxfilename.cpp similarity index 100% rename from src/src/libs/libgroff/maxfilename.cpp rename to groff/src/libs/libgroff/maxfilename.cpp diff --git a/src/src/libs/libgroff/maxpathname.cpp b/groff/src/libs/libgroff/maxpathname.cpp similarity index 100% rename from src/src/libs/libgroff/maxpathname.cpp rename to groff/src/libs/libgroff/maxpathname.cpp diff --git a/src/src/libs/libgroff/mksdir.cpp b/groff/src/libs/libgroff/mksdir.cpp similarity index 100% rename from src/src/libs/libgroff/mksdir.cpp rename to groff/src/libs/libgroff/mksdir.cpp diff --git a/src/src/libs/libgroff/mkstemp.cpp b/groff/src/libs/libgroff/mkstemp.cpp similarity index 100% rename from src/src/libs/libgroff/mkstemp.cpp rename to groff/src/libs/libgroff/mkstemp.cpp diff --git a/src/src/libs/libgroff/nametoindex.cpp b/groff/src/libs/libgroff/nametoindex.cpp similarity index 100% rename from src/src/libs/libgroff/nametoindex.cpp rename to groff/src/libs/libgroff/nametoindex.cpp diff --git a/src/src/libs/libgroff/new.cpp b/groff/src/libs/libgroff/new.cpp similarity index 100% rename from src/src/libs/libgroff/new.cpp rename to groff/src/libs/libgroff/new.cpp diff --git a/src/src/libs/libgroff/paper.cpp b/groff/src/libs/libgroff/paper.cpp similarity index 100% rename from src/src/libs/libgroff/paper.cpp rename to groff/src/libs/libgroff/paper.cpp diff --git a/src/src/libs/libgroff/prime.cpp b/groff/src/libs/libgroff/prime.cpp similarity index 100% rename from src/src/libs/libgroff/prime.cpp rename to groff/src/libs/libgroff/prime.cpp diff --git a/src/src/libs/libgroff/progname.c b/groff/src/libs/libgroff/progname.c similarity index 100% rename from src/src/libs/libgroff/progname.c rename to groff/src/libs/libgroff/progname.c diff --git a/src/src/libs/libgroff/ptable.cpp b/groff/src/libs/libgroff/ptable.cpp similarity index 100% rename from src/src/libs/libgroff/ptable.cpp rename to groff/src/libs/libgroff/ptable.cpp diff --git a/src/src/libs/libgroff/putenv.c b/groff/src/libs/libgroff/putenv.c similarity index 100% rename from src/src/libs/libgroff/putenv.c rename to groff/src/libs/libgroff/putenv.c diff --git a/src/src/libs/libgroff/quotearg.c b/groff/src/libs/libgroff/quotearg.c similarity index 100% rename from src/src/libs/libgroff/quotearg.c rename to groff/src/libs/libgroff/quotearg.c diff --git a/src/src/libs/libgroff/relocate.cpp b/groff/src/libs/libgroff/relocate.cpp similarity index 100% rename from src/src/libs/libgroff/relocate.cpp rename to groff/src/libs/libgroff/relocate.cpp diff --git a/src/src/libs/libgroff/searchpath.cpp b/groff/src/libs/libgroff/searchpath.cpp similarity index 100% rename from src/src/libs/libgroff/searchpath.cpp rename to groff/src/libs/libgroff/searchpath.cpp diff --git a/src/src/libs/libgroff/spawnvp.c b/groff/src/libs/libgroff/spawnvp.c similarity index 100% rename from src/src/libs/libgroff/spawnvp.c rename to groff/src/libs/libgroff/spawnvp.c diff --git a/src/src/libs/libgroff/strcasecmp.c b/groff/src/libs/libgroff/strcasecmp.c similarity index 100% rename from src/src/libs/libgroff/strcasecmp.c rename to groff/src/libs/libgroff/strcasecmp.c diff --git a/src/src/libs/libgroff/strerror.c b/groff/src/libs/libgroff/strerror.c similarity index 100% rename from src/src/libs/libgroff/strerror.c rename to groff/src/libs/libgroff/strerror.c diff --git a/src/src/libs/libgroff/string.cpp b/groff/src/libs/libgroff/string.cpp similarity index 100% rename from src/src/libs/libgroff/string.cpp rename to groff/src/libs/libgroff/string.cpp diff --git a/src/src/libs/libgroff/strncasecmp.c b/groff/src/libs/libgroff/strncasecmp.c similarity index 100% rename from src/src/libs/libgroff/strncasecmp.c rename to groff/src/libs/libgroff/strncasecmp.c diff --git a/src/src/libs/libgroff/strsave.cpp b/groff/src/libs/libgroff/strsave.cpp similarity index 100% rename from src/src/libs/libgroff/strsave.cpp rename to groff/src/libs/libgroff/strsave.cpp diff --git a/src/src/libs/libgroff/strtol.c b/groff/src/libs/libgroff/strtol.c similarity index 100% rename from src/src/libs/libgroff/strtol.c rename to groff/src/libs/libgroff/strtol.c diff --git a/src/src/libs/libgroff/symbol.cpp b/groff/src/libs/libgroff/symbol.cpp similarity index 100% rename from src/src/libs/libgroff/symbol.cpp rename to groff/src/libs/libgroff/symbol.cpp diff --git a/src/src/libs/libgroff/tmpfile.cpp b/groff/src/libs/libgroff/tmpfile.cpp similarity index 100% rename from src/src/libs/libgroff/tmpfile.cpp rename to groff/src/libs/libgroff/tmpfile.cpp diff --git a/src/src/libs/libgroff/tmpname.cpp b/groff/src/libs/libgroff/tmpname.cpp similarity index 100% rename from src/src/libs/libgroff/tmpname.cpp rename to groff/src/libs/libgroff/tmpname.cpp diff --git a/src/src/libs/libgroff/unicode.cpp b/groff/src/libs/libgroff/unicode.cpp similarity index 100% rename from src/src/libs/libgroff/unicode.cpp rename to groff/src/libs/libgroff/unicode.cpp diff --git a/src/src/libs/libgroff/uniglyph.cpp b/groff/src/libs/libgroff/uniglyph.cpp similarity index 100% rename from src/src/libs/libgroff/uniglyph.cpp rename to groff/src/libs/libgroff/uniglyph.cpp diff --git a/src/src/libs/libgroff/uniuni.cpp b/groff/src/libs/libgroff/uniuni.cpp similarity index 100% rename from src/src/libs/libgroff/uniuni.cpp rename to groff/src/libs/libgroff/uniuni.cpp diff --git a/src/src/libs/libxutil/DviChar.c b/groff/src/libs/libxutil/DviChar.c similarity index 100% rename from src/src/libs/libxutil/DviChar.c rename to groff/src/libs/libxutil/DviChar.c diff --git a/src/src/libs/libxutil/Makefile.sub b/groff/src/libs/libxutil/Makefile.sub similarity index 100% rename from src/src/libs/libxutil/Makefile.sub rename to groff/src/libs/libxutil/Makefile.sub diff --git a/src/src/libs/libxutil/XFontName.c b/groff/src/libs/libxutil/XFontName.c similarity index 100% rename from src/src/libs/libxutil/XFontName.c rename to groff/src/libs/libxutil/XFontName.c diff --git a/src/src/libs/libxutil/xmalloc.c b/groff/src/libs/libxutil/xmalloc.c similarity index 100% rename from src/src/libs/libxutil/xmalloc.c rename to groff/src/libs/libxutil/xmalloc.c diff --git a/src/src/libs/snprintf/README b/groff/src/libs/snprintf/README similarity index 100% rename from src/src/libs/snprintf/README rename to groff/src/libs/snprintf/README diff --git a/src/src/libs/snprintf/snprintf.c b/groff/src/libs/snprintf/snprintf.c similarity index 100% rename from src/src/libs/snprintf/snprintf.c rename to groff/src/libs/snprintf/snprintf.c diff --git a/src/src/preproc/eqn/Makefile.sub b/groff/src/preproc/eqn/Makefile.sub similarity index 100% rename from src/src/preproc/eqn/Makefile.sub rename to groff/src/preproc/eqn/Makefile.sub diff --git a/src/src/preproc/eqn/TODO b/groff/src/preproc/eqn/TODO similarity index 100% rename from src/src/preproc/eqn/TODO rename to groff/src/preproc/eqn/TODO diff --git a/src/src/preproc/eqn/box.cpp b/groff/src/preproc/eqn/box.cpp similarity index 100% rename from src/src/preproc/eqn/box.cpp rename to groff/src/preproc/eqn/box.cpp diff --git a/src/src/preproc/eqn/box.h b/groff/src/preproc/eqn/box.h similarity index 100% rename from src/src/preproc/eqn/box.h rename to groff/src/preproc/eqn/box.h diff --git a/src/src/preproc/eqn/delim.cpp b/groff/src/preproc/eqn/delim.cpp similarity index 100% rename from src/src/preproc/eqn/delim.cpp rename to groff/src/preproc/eqn/delim.cpp diff --git a/src/src/preproc/eqn/eqn.cpp b/groff/src/preproc/eqn/eqn.cpp similarity index 100% rename from src/src/preproc/eqn/eqn.cpp rename to groff/src/preproc/eqn/eqn.cpp diff --git a/src/src/preproc/eqn/eqn.h b/groff/src/preproc/eqn/eqn.h similarity index 100% rename from src/src/preproc/eqn/eqn.h rename to groff/src/preproc/eqn/eqn.h diff --git a/src/src/preproc/eqn/eqn.man b/groff/src/preproc/eqn/eqn.man similarity index 100% rename from src/src/preproc/eqn/eqn.man rename to groff/src/preproc/eqn/eqn.man diff --git a/src/src/preproc/eqn/eqn.y b/groff/src/preproc/eqn/eqn.y similarity index 100% rename from src/src/preproc/eqn/eqn.y rename to groff/src/preproc/eqn/eqn.y diff --git a/src/src/preproc/eqn/eqn_tab.h b/groff/src/preproc/eqn/eqn_tab.h similarity index 100% rename from src/src/preproc/eqn/eqn_tab.h rename to groff/src/preproc/eqn/eqn_tab.h diff --git a/src/src/preproc/eqn/lex.cpp b/groff/src/preproc/eqn/lex.cpp similarity index 100% rename from src/src/preproc/eqn/lex.cpp rename to groff/src/preproc/eqn/lex.cpp diff --git a/src/src/preproc/eqn/limit.cpp b/groff/src/preproc/eqn/limit.cpp similarity index 100% rename from src/src/preproc/eqn/limit.cpp rename to groff/src/preproc/eqn/limit.cpp diff --git a/src/src/preproc/eqn/list.cpp b/groff/src/preproc/eqn/list.cpp similarity index 100% rename from src/src/preproc/eqn/list.cpp rename to groff/src/preproc/eqn/list.cpp diff --git a/src/src/preproc/eqn/main.cpp b/groff/src/preproc/eqn/main.cpp similarity index 100% rename from src/src/preproc/eqn/main.cpp rename to groff/src/preproc/eqn/main.cpp diff --git a/src/src/preproc/eqn/mark.cpp b/groff/src/preproc/eqn/mark.cpp similarity index 100% rename from src/src/preproc/eqn/mark.cpp rename to groff/src/preproc/eqn/mark.cpp diff --git a/src/src/preproc/eqn/neqn.man b/groff/src/preproc/eqn/neqn.man similarity index 100% rename from src/src/preproc/eqn/neqn.man rename to groff/src/preproc/eqn/neqn.man diff --git a/src/src/preproc/eqn/neqn.sh b/groff/src/preproc/eqn/neqn.sh similarity index 100% rename from src/src/preproc/eqn/neqn.sh rename to groff/src/preproc/eqn/neqn.sh diff --git a/src/src/preproc/eqn/other.cpp b/groff/src/preproc/eqn/other.cpp similarity index 100% rename from src/src/preproc/eqn/other.cpp rename to groff/src/preproc/eqn/other.cpp diff --git a/src/src/preproc/eqn/over.cpp b/groff/src/preproc/eqn/over.cpp similarity index 100% rename from src/src/preproc/eqn/over.cpp rename to groff/src/preproc/eqn/over.cpp diff --git a/src/src/preproc/eqn/pbox.h b/groff/src/preproc/eqn/pbox.h similarity index 100% rename from src/src/preproc/eqn/pbox.h rename to groff/src/preproc/eqn/pbox.h diff --git a/src/src/preproc/eqn/pile.cpp b/groff/src/preproc/eqn/pile.cpp similarity index 100% rename from src/src/preproc/eqn/pile.cpp rename to groff/src/preproc/eqn/pile.cpp diff --git a/src/src/preproc/eqn/script.cpp b/groff/src/preproc/eqn/script.cpp similarity index 100% rename from src/src/preproc/eqn/script.cpp rename to groff/src/preproc/eqn/script.cpp diff --git a/src/src/preproc/eqn/special.cpp b/groff/src/preproc/eqn/special.cpp similarity index 100% rename from src/src/preproc/eqn/special.cpp rename to groff/src/preproc/eqn/special.cpp diff --git a/src/src/preproc/eqn/sqrt.cpp b/groff/src/preproc/eqn/sqrt.cpp similarity index 100% rename from src/src/preproc/eqn/sqrt.cpp rename to groff/src/preproc/eqn/sqrt.cpp diff --git a/src/src/preproc/eqn/text.cpp b/groff/src/preproc/eqn/text.cpp similarity index 100% rename from src/src/preproc/eqn/text.cpp rename to groff/src/preproc/eqn/text.cpp diff --git a/src/src/preproc/grn/Makefile.sub b/groff/src/preproc/grn/Makefile.sub similarity index 100% rename from src/src/preproc/grn/Makefile.sub rename to groff/src/preproc/grn/Makefile.sub diff --git a/src/src/preproc/grn/README b/groff/src/preproc/grn/README similarity index 100% rename from src/src/preproc/grn/README rename to groff/src/preproc/grn/README diff --git a/src/src/preproc/grn/gprint.h b/groff/src/preproc/grn/gprint.h similarity index 100% rename from src/src/preproc/grn/gprint.h rename to groff/src/preproc/grn/gprint.h diff --git a/src/src/preproc/grn/grn.man b/groff/src/preproc/grn/grn.man similarity index 100% rename from src/src/preproc/grn/grn.man rename to groff/src/preproc/grn/grn.man diff --git a/src/src/preproc/grn/hdb.cpp b/groff/src/preproc/grn/hdb.cpp similarity index 100% rename from src/src/preproc/grn/hdb.cpp rename to groff/src/preproc/grn/hdb.cpp diff --git a/src/src/preproc/grn/hgraph.cpp b/groff/src/preproc/grn/hgraph.cpp similarity index 100% rename from src/src/preproc/grn/hgraph.cpp rename to groff/src/preproc/grn/hgraph.cpp diff --git a/src/src/preproc/grn/hpoint.cpp b/groff/src/preproc/grn/hpoint.cpp similarity index 100% rename from src/src/preproc/grn/hpoint.cpp rename to groff/src/preproc/grn/hpoint.cpp diff --git a/src/src/preproc/grn/main.cpp b/groff/src/preproc/grn/main.cpp similarity index 100% rename from src/src/preproc/grn/main.cpp rename to groff/src/preproc/grn/main.cpp diff --git a/src/src/preproc/html/Makefile.sub b/groff/src/preproc/html/Makefile.sub similarity index 100% rename from src/src/preproc/html/Makefile.sub rename to groff/src/preproc/html/Makefile.sub diff --git a/src/src/preproc/html/pre-html.cpp b/groff/src/preproc/html/pre-html.cpp similarity index 100% rename from src/src/preproc/html/pre-html.cpp rename to groff/src/preproc/html/pre-html.cpp diff --git a/src/src/preproc/html/pre-html.h b/groff/src/preproc/html/pre-html.h similarity index 100% rename from src/src/preproc/html/pre-html.h rename to groff/src/preproc/html/pre-html.h diff --git a/src/src/preproc/html/pushback.cpp b/groff/src/preproc/html/pushback.cpp similarity index 100% rename from src/src/preproc/html/pushback.cpp rename to groff/src/preproc/html/pushback.cpp diff --git a/src/src/preproc/html/pushback.h b/groff/src/preproc/html/pushback.h similarity index 100% rename from src/src/preproc/html/pushback.h rename to groff/src/preproc/html/pushback.h diff --git a/src/src/preproc/pic/Makefile.sub b/groff/src/preproc/pic/Makefile.sub similarity index 100% rename from src/src/preproc/pic/Makefile.sub rename to groff/src/preproc/pic/Makefile.sub diff --git a/src/src/preproc/pic/TODO b/groff/src/preproc/pic/TODO similarity index 100% rename from src/src/preproc/pic/TODO rename to groff/src/preproc/pic/TODO diff --git a/src/src/preproc/pic/common.cpp b/groff/src/preproc/pic/common.cpp similarity index 100% rename from src/src/preproc/pic/common.cpp rename to groff/src/preproc/pic/common.cpp diff --git a/src/src/preproc/pic/common.h b/groff/src/preproc/pic/common.h similarity index 100% rename from src/src/preproc/pic/common.h rename to groff/src/preproc/pic/common.h diff --git a/src/src/preproc/pic/lex.cpp b/groff/src/preproc/pic/lex.cpp similarity index 100% rename from src/src/preproc/pic/lex.cpp rename to groff/src/preproc/pic/lex.cpp diff --git a/src/src/preproc/pic/main.cpp b/groff/src/preproc/pic/main.cpp similarity index 100% rename from src/src/preproc/pic/main.cpp rename to groff/src/preproc/pic/main.cpp diff --git a/src/src/preproc/pic/object.cpp b/groff/src/preproc/pic/object.cpp similarity index 100% rename from src/src/preproc/pic/object.cpp rename to groff/src/preproc/pic/object.cpp diff --git a/src/src/preproc/pic/object.h b/groff/src/preproc/pic/object.h similarity index 100% rename from src/src/preproc/pic/object.h rename to groff/src/preproc/pic/object.h diff --git a/src/src/preproc/pic/output.h b/groff/src/preproc/pic/output.h similarity index 100% rename from src/src/preproc/pic/output.h rename to groff/src/preproc/pic/output.h diff --git a/src/src/preproc/pic/pic.cpp b/groff/src/preproc/pic/pic.cpp similarity index 100% rename from src/src/preproc/pic/pic.cpp rename to groff/src/preproc/pic/pic.cpp diff --git a/src/src/preproc/pic/pic.h b/groff/src/preproc/pic/pic.h similarity index 100% rename from src/src/preproc/pic/pic.h rename to groff/src/preproc/pic/pic.h diff --git a/src/src/preproc/pic/pic.man b/groff/src/preproc/pic/pic.man similarity index 100% rename from src/src/preproc/pic/pic.man rename to groff/src/preproc/pic/pic.man diff --git a/src/src/preproc/pic/pic.y b/groff/src/preproc/pic/pic.y similarity index 100% rename from src/src/preproc/pic/pic.y rename to groff/src/preproc/pic/pic.y diff --git a/src/src/preproc/pic/pic_tab.h b/groff/src/preproc/pic/pic_tab.h similarity index 100% rename from src/src/preproc/pic/pic_tab.h rename to groff/src/preproc/pic/pic_tab.h diff --git a/src/src/preproc/pic/position.h b/groff/src/preproc/pic/position.h similarity index 100% rename from src/src/preproc/pic/position.h rename to groff/src/preproc/pic/position.h diff --git a/src/src/preproc/pic/tex.cpp b/groff/src/preproc/pic/tex.cpp similarity index 100% rename from src/src/preproc/pic/tex.cpp rename to groff/src/preproc/pic/tex.cpp diff --git a/src/src/preproc/pic/text.h b/groff/src/preproc/pic/text.h similarity index 100% rename from src/src/preproc/pic/text.h rename to groff/src/preproc/pic/text.h diff --git a/src/src/preproc/pic/troff.cpp b/groff/src/preproc/pic/troff.cpp similarity index 100% rename from src/src/preproc/pic/troff.cpp rename to groff/src/preproc/pic/troff.cpp diff --git a/src/src/preproc/refer/Makefile.sub b/groff/src/preproc/refer/Makefile.sub similarity index 100% rename from src/src/preproc/refer/Makefile.sub rename to groff/src/preproc/refer/Makefile.sub diff --git a/src/src/preproc/refer/TODO b/groff/src/preproc/refer/TODO similarity index 100% rename from src/src/preproc/refer/TODO rename to groff/src/preproc/refer/TODO diff --git a/src/src/preproc/refer/command.cpp b/groff/src/preproc/refer/command.cpp similarity index 100% rename from src/src/preproc/refer/command.cpp rename to groff/src/preproc/refer/command.cpp diff --git a/src/src/preproc/refer/command.h b/groff/src/preproc/refer/command.h similarity index 100% rename from src/src/preproc/refer/command.h rename to groff/src/preproc/refer/command.h diff --git a/src/src/preproc/refer/label.cpp b/groff/src/preproc/refer/label.cpp similarity index 100% rename from src/src/preproc/refer/label.cpp rename to groff/src/preproc/refer/label.cpp diff --git a/src/src/preproc/refer/label.y b/groff/src/preproc/refer/label.y similarity index 100% rename from src/src/preproc/refer/label.y rename to groff/src/preproc/refer/label.y diff --git a/src/src/preproc/refer/ref.cpp b/groff/src/preproc/refer/ref.cpp similarity index 100% rename from src/src/preproc/refer/ref.cpp rename to groff/src/preproc/refer/ref.cpp diff --git a/src/src/preproc/refer/ref.h b/groff/src/preproc/refer/ref.h similarity index 100% rename from src/src/preproc/refer/ref.h rename to groff/src/preproc/refer/ref.h diff --git a/src/src/preproc/refer/refer.cpp b/groff/src/preproc/refer/refer.cpp similarity index 100% rename from src/src/preproc/refer/refer.cpp rename to groff/src/preproc/refer/refer.cpp diff --git a/src/src/preproc/refer/refer.h b/groff/src/preproc/refer/refer.h similarity index 100% rename from src/src/preproc/refer/refer.h rename to groff/src/preproc/refer/refer.h diff --git a/src/src/preproc/refer/refer.man b/groff/src/preproc/refer/refer.man similarity index 100% rename from src/src/preproc/refer/refer.man rename to groff/src/preproc/refer/refer.man diff --git a/src/src/preproc/refer/token.cpp b/groff/src/preproc/refer/token.cpp similarity index 100% rename from src/src/preproc/refer/token.cpp rename to groff/src/preproc/refer/token.cpp diff --git a/src/src/preproc/refer/token.h b/groff/src/preproc/refer/token.h similarity index 100% rename from src/src/preproc/refer/token.h rename to groff/src/preproc/refer/token.h diff --git a/src/src/preproc/soelim/Makefile.sub b/groff/src/preproc/soelim/Makefile.sub similarity index 100% rename from src/src/preproc/soelim/Makefile.sub rename to groff/src/preproc/soelim/Makefile.sub diff --git a/src/src/preproc/soelim/TODO b/groff/src/preproc/soelim/TODO similarity index 100% rename from src/src/preproc/soelim/TODO rename to groff/src/preproc/soelim/TODO diff --git a/src/src/preproc/soelim/soelim.cpp b/groff/src/preproc/soelim/soelim.cpp similarity index 100% rename from src/src/preproc/soelim/soelim.cpp rename to groff/src/preproc/soelim/soelim.cpp diff --git a/src/src/preproc/soelim/soelim.man b/groff/src/preproc/soelim/soelim.man similarity index 100% rename from src/src/preproc/soelim/soelim.man rename to groff/src/preproc/soelim/soelim.man diff --git a/src/src/preproc/tbl/Makefile.sub b/groff/src/preproc/tbl/Makefile.sub similarity index 100% rename from src/src/preproc/tbl/Makefile.sub rename to groff/src/preproc/tbl/Makefile.sub diff --git a/src/src/preproc/tbl/main.cpp b/groff/src/preproc/tbl/main.cpp similarity index 100% rename from src/src/preproc/tbl/main.cpp rename to groff/src/preproc/tbl/main.cpp diff --git a/src/src/preproc/tbl/table.cpp b/groff/src/preproc/tbl/table.cpp similarity index 100% rename from src/src/preproc/tbl/table.cpp rename to groff/src/preproc/tbl/table.cpp diff --git a/src/src/preproc/tbl/table.h b/groff/src/preproc/tbl/table.h similarity index 100% rename from src/src/preproc/tbl/table.h rename to groff/src/preproc/tbl/table.h diff --git a/src/src/preproc/tbl/tbl.man b/groff/src/preproc/tbl/tbl.man similarity index 100% rename from src/src/preproc/tbl/tbl.man rename to groff/src/preproc/tbl/tbl.man diff --git a/src/src/roff/groff/Makefile.sub b/groff/src/roff/groff/Makefile.sub similarity index 100% rename from src/src/roff/groff/Makefile.sub rename to groff/src/roff/groff/Makefile.sub diff --git a/src/src/roff/groff/groff.cpp b/groff/src/roff/groff/groff.cpp similarity index 100% rename from src/src/roff/groff/groff.cpp rename to groff/src/roff/groff/groff.cpp diff --git a/src/src/roff/groff/groff.man b/groff/src/roff/groff/groff.man similarity index 100% rename from src/src/roff/groff/groff.man rename to groff/src/roff/groff/groff.man diff --git a/src/src/roff/groff/pipeline.c b/groff/src/roff/groff/pipeline.c similarity index 100% rename from src/src/roff/groff/pipeline.c rename to groff/src/roff/groff/pipeline.c diff --git a/src/src/roff/groff/pipeline.h b/groff/src/roff/groff/pipeline.h similarity index 100% rename from src/src/roff/groff/pipeline.h rename to groff/src/roff/groff/pipeline.h diff --git a/src/src/roff/grog/Makefile.sub b/groff/src/roff/grog/Makefile.sub similarity index 100% rename from src/src/roff/grog/Makefile.sub rename to groff/src/roff/grog/Makefile.sub diff --git a/src/src/roff/grog/grog.man b/groff/src/roff/grog/grog.man similarity index 100% rename from src/src/roff/grog/grog.man rename to groff/src/roff/grog/grog.man diff --git a/src/src/roff/grog/grog.pl b/groff/src/roff/grog/grog.pl similarity index 100% rename from src/src/roff/grog/grog.pl rename to groff/src/roff/grog/grog.pl diff --git a/src/src/roff/grog/grog.sh b/groff/src/roff/grog/grog.sh similarity index 100% rename from src/src/roff/grog/grog.sh rename to groff/src/roff/grog/grog.sh diff --git a/src/src/roff/nroff/Makefile.sub b/groff/src/roff/nroff/Makefile.sub similarity index 100% rename from src/src/roff/nroff/Makefile.sub rename to groff/src/roff/nroff/Makefile.sub diff --git a/src/src/roff/nroff/nroff.man b/groff/src/roff/nroff/nroff.man similarity index 100% rename from src/src/roff/nroff/nroff.man rename to groff/src/roff/nroff/nroff.man diff --git a/src/src/roff/nroff/nroff.sh b/groff/src/roff/nroff/nroff.sh similarity index 100% rename from src/src/roff/nroff/nroff.sh rename to groff/src/roff/nroff/nroff.sh diff --git a/src/src/roff/troff/Makefile.sub b/groff/src/roff/troff/Makefile.sub similarity index 100% rename from src/src/roff/troff/Makefile.sub rename to groff/src/roff/troff/Makefile.sub diff --git a/src/src/roff/troff/TODO b/groff/src/roff/troff/TODO similarity index 100% rename from src/src/roff/troff/TODO rename to groff/src/roff/troff/TODO diff --git a/src/src/roff/troff/charinfo.h b/groff/src/roff/troff/charinfo.h similarity index 100% rename from src/src/roff/troff/charinfo.h rename to groff/src/roff/troff/charinfo.h diff --git a/src/src/roff/troff/column.cpp b/groff/src/roff/troff/column.cpp similarity index 100% rename from src/src/roff/troff/column.cpp rename to groff/src/roff/troff/column.cpp diff --git a/src/src/roff/troff/dictionary.cpp b/groff/src/roff/troff/dictionary.cpp similarity index 100% rename from src/src/roff/troff/dictionary.cpp rename to groff/src/roff/troff/dictionary.cpp diff --git a/src/src/roff/troff/dictionary.h b/groff/src/roff/troff/dictionary.h similarity index 100% rename from src/src/roff/troff/dictionary.h rename to groff/src/roff/troff/dictionary.h diff --git a/src/src/roff/troff/div.cpp b/groff/src/roff/troff/div.cpp similarity index 100% rename from src/src/roff/troff/div.cpp rename to groff/src/roff/troff/div.cpp diff --git a/src/src/roff/troff/div.h b/groff/src/roff/troff/div.h similarity index 100% rename from src/src/roff/troff/div.h rename to groff/src/roff/troff/div.h diff --git a/src/src/roff/troff/env.cpp b/groff/src/roff/troff/env.cpp similarity index 100% rename from src/src/roff/troff/env.cpp rename to groff/src/roff/troff/env.cpp diff --git a/src/src/roff/troff/env.h b/groff/src/roff/troff/env.h similarity index 100% rename from src/src/roff/troff/env.h rename to groff/src/roff/troff/env.h diff --git a/src/src/roff/troff/hvunits.h b/groff/src/roff/troff/hvunits.h similarity index 100% rename from src/src/roff/troff/hvunits.h rename to groff/src/roff/troff/hvunits.h diff --git a/src/src/roff/troff/input.cpp b/groff/src/roff/troff/input.cpp similarity index 100% rename from src/src/roff/troff/input.cpp rename to groff/src/roff/troff/input.cpp diff --git a/src/src/roff/troff/input.h b/groff/src/roff/troff/input.h similarity index 100% rename from src/src/roff/troff/input.h rename to groff/src/roff/troff/input.h diff --git a/src/src/roff/troff/mtsm.cpp b/groff/src/roff/troff/mtsm.cpp similarity index 100% rename from src/src/roff/troff/mtsm.cpp rename to groff/src/roff/troff/mtsm.cpp diff --git a/src/src/roff/troff/mtsm.h b/groff/src/roff/troff/mtsm.h similarity index 100% rename from src/src/roff/troff/mtsm.h rename to groff/src/roff/troff/mtsm.h diff --git a/src/src/roff/troff/node.cpp b/groff/src/roff/troff/node.cpp similarity index 99% rename from src/src/roff/troff/node.cpp rename to groff/src/roff/troff/node.cpp index 0c6b64e..7dadd42 100644 --- a/src/src/roff/troff/node.cpp +++ b/groff/src/roff/troff/node.cpp @@ -2157,7 +2157,7 @@ void glyph_node::debug_node() if (c) fprintf(stderr, "%c", c); else - fprintf(stderr, ci->nm.contents()); + fprintf(stderr, "%s", ci->nm.contents()); if (push_state) fprintf(stderr, " "); if (state) diff --git a/src/src/roff/troff/node.h b/groff/src/roff/troff/node.h similarity index 100% rename from src/src/roff/troff/node.h rename to groff/src/roff/troff/node.h diff --git a/src/src/roff/troff/number.cpp b/groff/src/roff/troff/number.cpp similarity index 100% rename from src/src/roff/troff/number.cpp rename to groff/src/roff/troff/number.cpp diff --git a/src/src/roff/troff/reg.cpp b/groff/src/roff/troff/reg.cpp similarity index 100% rename from src/src/roff/troff/reg.cpp rename to groff/src/roff/troff/reg.cpp diff --git a/src/src/roff/troff/reg.h b/groff/src/roff/troff/reg.h similarity index 100% rename from src/src/roff/troff/reg.h rename to groff/src/roff/troff/reg.h diff --git a/src/src/roff/troff/request.h b/groff/src/roff/troff/request.h similarity index 100% rename from src/src/roff/troff/request.h rename to groff/src/roff/troff/request.h diff --git a/src/src/roff/troff/token.h b/groff/src/roff/troff/token.h similarity index 100% rename from src/src/roff/troff/token.h rename to groff/src/roff/troff/token.h diff --git a/src/src/roff/troff/troff.h b/groff/src/roff/troff/troff.h similarity index 100% rename from src/src/roff/troff/troff.h rename to groff/src/roff/troff/troff.h diff --git a/src/src/roff/troff/troff.man b/groff/src/roff/troff/troff.man similarity index 100% rename from src/src/roff/troff/troff.man rename to groff/src/roff/troff/troff.man diff --git a/src/src/utils/addftinfo/Makefile.sub b/groff/src/utils/addftinfo/Makefile.sub similarity index 100% rename from src/src/utils/addftinfo/Makefile.sub rename to groff/src/utils/addftinfo/Makefile.sub diff --git a/src/src/utils/addftinfo/addftinfo.cpp b/groff/src/utils/addftinfo/addftinfo.cpp similarity index 100% rename from src/src/utils/addftinfo/addftinfo.cpp rename to groff/src/utils/addftinfo/addftinfo.cpp diff --git a/src/src/utils/addftinfo/addftinfo.man b/groff/src/utils/addftinfo/addftinfo.man similarity index 100% rename from src/src/utils/addftinfo/addftinfo.man rename to groff/src/utils/addftinfo/addftinfo.man diff --git a/src/src/utils/addftinfo/guess.cpp b/groff/src/utils/addftinfo/guess.cpp similarity index 100% rename from src/src/utils/addftinfo/guess.cpp rename to groff/src/utils/addftinfo/guess.cpp diff --git a/src/src/utils/addftinfo/guess.h b/groff/src/utils/addftinfo/guess.h similarity index 100% rename from src/src/utils/addftinfo/guess.h rename to groff/src/utils/addftinfo/guess.h diff --git a/src/src/utils/afmtodit/Makefile.sub b/groff/src/utils/afmtodit/Makefile.sub similarity index 100% rename from src/src/utils/afmtodit/Makefile.sub rename to groff/src/utils/afmtodit/Makefile.sub diff --git a/src/src/utils/afmtodit/afmtodit.man b/groff/src/utils/afmtodit/afmtodit.man similarity index 100% rename from src/src/utils/afmtodit/afmtodit.man rename to groff/src/utils/afmtodit/afmtodit.man diff --git a/src/src/utils/afmtodit/afmtodit.pl b/groff/src/utils/afmtodit/afmtodit.pl similarity index 100% rename from src/src/utils/afmtodit/afmtodit.pl rename to groff/src/utils/afmtodit/afmtodit.pl diff --git a/src/src/utils/hpftodit/Makefile.sub b/groff/src/utils/hpftodit/Makefile.sub similarity index 100% rename from src/src/utils/hpftodit/Makefile.sub rename to groff/src/utils/hpftodit/Makefile.sub diff --git a/src/src/utils/hpftodit/hpftodit.cpp b/groff/src/utils/hpftodit/hpftodit.cpp similarity index 99% rename from src/src/utils/hpftodit/hpftodit.cpp rename to groff/src/utils/hpftodit/hpftodit.cpp index 5910fb2..aca805f 100644 --- a/src/src/utils/hpftodit/hpftodit.cpp +++ b/groff/src/utils/hpftodit/hpftodit.cpp @@ -870,9 +870,9 @@ output_charset(const int tfm_type) else if (!all_flag) continue; else if (tfm_type == MSL) - printf(hp_msl_to_ucode_name(charcode)); + printf("%s", hp_msl_to_ucode_name(charcode)); else - printf(unicode_to_ucode_name(charcode)); + printf("%s", unicode_to_ucode_name(charcode)); printf("\t%d,%d", scale(char_table[i].width), scale(char_table[i].ascent)); diff --git a/src/src/utils/hpftodit/hpftodit.man b/groff/src/utils/hpftodit/hpftodit.man similarity index 100% rename from src/src/utils/hpftodit/hpftodit.man rename to groff/src/utils/hpftodit/hpftodit.man diff --git a/src/src/utils/hpftodit/hpuni.cpp b/groff/src/utils/hpftodit/hpuni.cpp similarity index 100% rename from src/src/utils/hpftodit/hpuni.cpp rename to groff/src/utils/hpftodit/hpuni.cpp diff --git a/src/src/utils/indxbib/Makefile.sub b/groff/src/utils/indxbib/Makefile.sub similarity index 100% rename from src/src/utils/indxbib/Makefile.sub rename to groff/src/utils/indxbib/Makefile.sub diff --git a/gen/usr/share/groff/1.19.2/eign b/groff/src/utils/indxbib/eign similarity index 100% rename from gen/usr/share/groff/1.19.2/eign rename to groff/src/utils/indxbib/eign diff --git a/src/src/utils/indxbib/indxbib.cpp b/groff/src/utils/indxbib/indxbib.cpp similarity index 100% rename from src/src/utils/indxbib/indxbib.cpp rename to groff/src/utils/indxbib/indxbib.cpp diff --git a/src/src/utils/indxbib/indxbib.man b/groff/src/utils/indxbib/indxbib.man similarity index 100% rename from src/src/utils/indxbib/indxbib.man rename to groff/src/utils/indxbib/indxbib.man diff --git a/src/src/utils/indxbib/signal.c b/groff/src/utils/indxbib/signal.c similarity index 100% rename from src/src/utils/indxbib/signal.c rename to groff/src/utils/indxbib/signal.c diff --git a/src/src/utils/lkbib/Makefile.sub b/groff/src/utils/lkbib/Makefile.sub similarity index 100% rename from src/src/utils/lkbib/Makefile.sub rename to groff/src/utils/lkbib/Makefile.sub diff --git a/src/src/utils/lkbib/lkbib.cpp b/groff/src/utils/lkbib/lkbib.cpp similarity index 100% rename from src/src/utils/lkbib/lkbib.cpp rename to groff/src/utils/lkbib/lkbib.cpp diff --git a/src/src/utils/lkbib/lkbib.man b/groff/src/utils/lkbib/lkbib.man similarity index 100% rename from src/src/utils/lkbib/lkbib.man rename to groff/src/utils/lkbib/lkbib.man diff --git a/src/src/utils/lookbib/Makefile.sub b/groff/src/utils/lookbib/Makefile.sub similarity index 100% rename from src/src/utils/lookbib/Makefile.sub rename to groff/src/utils/lookbib/Makefile.sub diff --git a/src/src/utils/lookbib/lookbib.cpp b/groff/src/utils/lookbib/lookbib.cpp similarity index 100% rename from src/src/utils/lookbib/lookbib.cpp rename to groff/src/utils/lookbib/lookbib.cpp diff --git a/src/src/utils/lookbib/lookbib.man b/groff/src/utils/lookbib/lookbib.man similarity index 100% rename from src/src/utils/lookbib/lookbib.man rename to groff/src/utils/lookbib/lookbib.man diff --git a/src/src/utils/pfbtops/Makefile.sub b/groff/src/utils/pfbtops/Makefile.sub similarity index 100% rename from src/src/utils/pfbtops/Makefile.sub rename to groff/src/utils/pfbtops/Makefile.sub diff --git a/src/src/utils/pfbtops/pfbtops.c b/groff/src/utils/pfbtops/pfbtops.c similarity index 100% rename from src/src/utils/pfbtops/pfbtops.c rename to groff/src/utils/pfbtops/pfbtops.c diff --git a/src/src/utils/pfbtops/pfbtops.man b/groff/src/utils/pfbtops/pfbtops.man similarity index 100% rename from src/src/utils/pfbtops/pfbtops.man rename to groff/src/utils/pfbtops/pfbtops.man diff --git a/src/src/utils/tfmtodit/Makefile.sub b/groff/src/utils/tfmtodit/Makefile.sub similarity index 100% rename from src/src/utils/tfmtodit/Makefile.sub rename to groff/src/utils/tfmtodit/Makefile.sub diff --git a/src/src/utils/tfmtodit/tfmtodit.cpp b/groff/src/utils/tfmtodit/tfmtodit.cpp similarity index 100% rename from src/src/utils/tfmtodit/tfmtodit.cpp rename to groff/src/utils/tfmtodit/tfmtodit.cpp diff --git a/src/src/utils/tfmtodit/tfmtodit.man b/groff/src/utils/tfmtodit/tfmtodit.man similarity index 100% rename from src/src/utils/tfmtodit/tfmtodit.man rename to groff/src/utils/tfmtodit/tfmtodit.man diff --git a/src/src/utils/xtotroff/Makefile.in b/groff/src/utils/xtotroff/Makefile.in similarity index 100% rename from src/src/utils/xtotroff/Makefile.in rename to groff/src/utils/xtotroff/Makefile.in diff --git a/src/src/utils/xtotroff/Makefile.sub b/groff/src/utils/xtotroff/Makefile.sub similarity index 100% rename from src/src/utils/xtotroff/Makefile.sub rename to groff/src/utils/xtotroff/Makefile.sub diff --git a/src/src/utils/xtotroff/xtotroff.c b/groff/src/utils/xtotroff/xtotroff.c similarity index 100% rename from src/src/utils/xtotroff/xtotroff.c rename to groff/src/utils/xtotroff/xtotroff.c diff --git a/src/src/utils/xtotroff/xtotroff.man b/groff/src/utils/xtotroff/xtotroff.man similarity index 100% rename from src/src/utils/xtotroff/xtotroff.man rename to groff/src/utils/xtotroff/xtotroff.man diff --git a/src/stamp-h.in b/groff/stamp-h.in similarity index 100% rename from src/stamp-h.in rename to groff/stamp-h.in diff --git a/src/test-groff.in b/groff/test-groff.in similarity index 100% rename from src/test-groff.in rename to groff/test-groff.in diff --git a/src/tmac/Makefile.sub b/groff/tmac/Makefile.sub similarity index 100% rename from src/tmac/Makefile.sub rename to groff/tmac/Makefile.sub diff --git a/src/tmac/README b/groff/tmac/README similarity index 100% rename from src/tmac/README rename to groff/tmac/README diff --git a/src/tmac/TODO b/groff/tmac/TODO similarity index 100% rename from src/tmac/TODO rename to groff/tmac/TODO diff --git a/gen/usr/share/groff/1.19.2/tmac/X.tmac b/groff/tmac/X.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/X.tmac rename to groff/tmac/X.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/Xps.tmac b/groff/tmac/Xps.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/Xps.tmac rename to groff/tmac/Xps.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/a4.tmac b/groff/tmac/a4.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/a4.tmac rename to groff/tmac/a4.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/an-old.tmac b/groff/tmac/an-old.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/an-old.tmac rename to groff/tmac/an-old.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/an.tmac b/groff/tmac/an.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/an.tmac rename to groff/tmac/an.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/andoc.tmac b/groff/tmac/andoc.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/andoc.tmac rename to groff/tmac/andoc.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/composite.tmac b/groff/tmac/composite.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/composite.tmac rename to groff/tmac/composite.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/cp1047.tmac b/groff/tmac/cp1047.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/cp1047.tmac rename to groff/tmac/cp1047.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/devtag.tmac b/groff/tmac/devtag.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/devtag.tmac rename to groff/tmac/devtag.tmac diff --git a/src/tmac/doc-common b/groff/tmac/doc-common similarity index 100% rename from src/tmac/doc-common rename to groff/tmac/doc-common diff --git a/src/tmac/doc-ditroff b/groff/tmac/doc-ditroff similarity index 100% rename from src/tmac/doc-ditroff rename to groff/tmac/doc-ditroff diff --git a/src/tmac/doc-nroff b/groff/tmac/doc-nroff similarity index 100% rename from src/tmac/doc-nroff rename to groff/tmac/doc-nroff diff --git a/gen/usr/share/groff/1.19.2/tmac/doc-old.tmac b/groff/tmac/doc-old.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/doc-old.tmac rename to groff/tmac/doc-old.tmac diff --git a/src/tmac/doc-syms b/groff/tmac/doc-syms similarity index 100% rename from src/tmac/doc-syms rename to groff/tmac/doc-syms diff --git a/src/tmac/doc.tmac b/groff/tmac/doc.tmac similarity index 100% rename from src/tmac/doc.tmac rename to groff/tmac/doc.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/dvi.tmac b/groff/tmac/dvi.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/dvi.tmac rename to groff/tmac/dvi.tmac diff --git a/src/tmac/e.tmac b/groff/tmac/e.tmac similarity index 100% rename from src/tmac/e.tmac rename to groff/tmac/e.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/ec.tmac b/groff/tmac/ec.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/ec.tmac rename to groff/tmac/ec.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/eqnrc b/groff/tmac/eqnrc similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/eqnrc rename to groff/tmac/eqnrc diff --git a/gen/usr/share/groff/1.19.2/tmac/europs.tmac b/groff/tmac/europs.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/europs.tmac rename to groff/tmac/europs.tmac diff --git a/src/tmac/fixmacros.sed b/groff/tmac/fixmacros.sed similarity index 100% rename from src/tmac/fixmacros.sed rename to groff/tmac/fixmacros.sed diff --git a/src/tmac/groff_man.man b/groff/tmac/groff_man.man similarity index 100% rename from src/tmac/groff_man.man rename to groff/tmac/groff_man.man diff --git a/src/tmac/groff_mdoc.man b/groff/tmac/groff_mdoc.man similarity index 100% rename from src/tmac/groff_mdoc.man rename to groff/tmac/groff_mdoc.man diff --git a/src/tmac/groff_me.man b/groff/tmac/groff_me.man similarity index 100% rename from src/tmac/groff_me.man rename to groff/tmac/groff_me.man diff --git a/src/tmac/groff_ms.man b/groff/tmac/groff_ms.man similarity index 100% rename from src/tmac/groff_ms.man rename to groff/tmac/groff_ms.man diff --git a/src/tmac/groff_trace.man b/groff/tmac/groff_trace.man similarity index 100% rename from src/tmac/groff_trace.man rename to groff/tmac/groff_trace.man diff --git a/src/tmac/groff_www.man b/groff/tmac/groff_www.man similarity index 100% rename from src/tmac/groff_www.man rename to groff/tmac/groff_www.man diff --git a/gen/usr/share/groff/1.19.2/tmac/html-end.tmac b/groff/tmac/html-end.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/html-end.tmac rename to groff/tmac/html-end.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/html.tmac b/groff/tmac/html.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/html.tmac rename to groff/tmac/html.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/hyphen.us b/groff/tmac/hyphen.us similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/hyphen.us rename to groff/tmac/hyphen.us diff --git a/src/tmac/hyphenex.pl b/groff/tmac/hyphenex.pl similarity index 100% rename from src/tmac/hyphenex.pl rename to groff/tmac/hyphenex.pl diff --git a/gen/usr/share/groff/1.19.2/tmac/hyphenex.us b/groff/tmac/hyphenex.us similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/hyphenex.us rename to groff/tmac/hyphenex.us diff --git a/gen/usr/share/groff/1.19.2/tmac/latin1.tmac b/groff/tmac/latin1.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/latin1.tmac rename to groff/tmac/latin1.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/latin2.tmac b/groff/tmac/latin2.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/latin2.tmac rename to groff/tmac/latin2.tmac diff --git a/src/tmac/latin5.tmac b/groff/tmac/latin5.tmac similarity index 100% rename from src/tmac/latin5.tmac rename to groff/tmac/latin5.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/latin9.tmac b/groff/tmac/latin9.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/latin9.tmac rename to groff/tmac/latin9.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/lbp.tmac b/groff/tmac/lbp.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/lbp.tmac rename to groff/tmac/lbp.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/lj4.tmac b/groff/tmac/lj4.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/lj4.tmac rename to groff/tmac/lj4.tmac diff --git a/gen/usr/share/groff/site-tmac/man.local b/groff/tmac/man.local similarity index 100% rename from gen/usr/share/groff/site-tmac/man.local rename to groff/tmac/man.local diff --git a/gen/usr/share/groff/1.19.2/tmac/man.tmac b/groff/tmac/man.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/man.tmac rename to groff/tmac/man.tmac diff --git a/src/tmac/man.ultrix b/groff/tmac/man.ultrix similarity index 100% rename from src/tmac/man.ultrix rename to groff/tmac/man.ultrix diff --git a/gen/usr/share/groff/1.19.2/tmac/mandoc.tmac b/groff/tmac/mandoc.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/mandoc.tmac rename to groff/tmac/mandoc.tmac diff --git a/gen/usr/share/groff/site-tmac/mdoc.local b/groff/tmac/mdoc.local similarity index 100% rename from gen/usr/share/groff/site-tmac/mdoc.local rename to groff/tmac/mdoc.local diff --git a/gen/usr/share/groff/1.19.2/tmac/mdoc.tmac b/groff/tmac/mdoc.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/mdoc.tmac rename to groff/tmac/mdoc.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/me.tmac b/groff/tmac/me.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/me.tmac rename to groff/tmac/me.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/ms.tmac b/groff/tmac/ms.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/ms.tmac rename to groff/tmac/ms.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/papersize.tmac b/groff/tmac/papersize.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/papersize.tmac rename to groff/tmac/papersize.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/pic.tmac b/groff/tmac/pic.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/pic.tmac rename to groff/tmac/pic.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/ps.tmac b/groff/tmac/ps.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/ps.tmac rename to groff/tmac/ps.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/psatk.tmac b/groff/tmac/psatk.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/psatk.tmac rename to groff/tmac/psatk.tmac diff --git a/src/tmac/psfig.tmac b/groff/tmac/psfig.tmac similarity index 100% rename from src/tmac/psfig.tmac rename to groff/tmac/psfig.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/psold.tmac b/groff/tmac/psold.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/psold.tmac rename to groff/tmac/psold.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/pspic.tmac b/groff/tmac/pspic.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/pspic.tmac rename to groff/tmac/pspic.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/s.tmac b/groff/tmac/s.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/s.tmac rename to groff/tmac/s.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/safer.tmac b/groff/tmac/safer.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/safer.tmac rename to groff/tmac/safer.tmac diff --git a/src/tmac/strip.sed b/groff/tmac/strip.sed similarity index 100% rename from src/tmac/strip.sed rename to groff/tmac/strip.sed diff --git a/gen/usr/share/groff/1.19.2/tmac/trace.tmac b/groff/tmac/trace.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/trace.tmac rename to groff/tmac/trace.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/troffrc b/groff/tmac/troffrc similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/troffrc rename to groff/tmac/troffrc diff --git a/gen/usr/share/groff/1.19.2/tmac/troffrc-end b/groff/tmac/troffrc-end similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/troffrc-end rename to groff/tmac/troffrc-end diff --git a/gen/usr/share/groff/1.19.2/tmac/tty-char.tmac b/groff/tmac/tty-char.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/tty-char.tmac rename to groff/tmac/tty-char.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/tty.tmac b/groff/tmac/tty.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/tty.tmac rename to groff/tmac/tty.tmac diff --git a/gen/usr/share/groff/1.19.2/tmac/unicode.tmac b/groff/tmac/unicode.tmac similarity index 100% rename from gen/usr/share/groff/1.19.2/tmac/unicode.tmac rename to groff/tmac/unicode.tmac diff --git a/src/tmac/www.tmac b/groff/tmac/www.tmac similarity index 100% rename from src/tmac/www.tmac rename to groff/tmac/www.tmac diff --git a/patches/PR-13280133.diff b/patches/PR-13280133.diff new file mode 100644 index 0000000..0f613c2 --- /dev/null +++ b/patches/PR-13280133.diff @@ -0,0 +1,11 @@ +--- src/roff/troff/node.cpp.orig 2013-02-27 16:47:58.000000000 -0800 ++++ src/roff/troff/node.cpp 2013-02-27 16:48:05.000000000 -0800 +@@ -4935,7 +4935,7 @@ + case charinfo::TRANSLATE_DUMMY: + return new dummy_node; + case charinfo::TRANSLATE_HYPHEN_INDICATOR: +- error("translation to \\% ignored in this context"); ++ error("translation to \\%% ignored in this context"); + break; + } + charinfo *tem = ci->get_translation(); diff --git a/patches/groff-25537049.diff b/patches/groff-25537049.diff new file mode 100644 index 0000000..09c2fbb --- /dev/null +++ b/patches/groff-25537049.diff @@ -0,0 +1,39 @@ +diff -urp groff.orig/groff/src/devices/grohtml/post-html.cpp groff.fixed/groff/src/devices/grohtml/post-html.cpp +--- src/devices/grohtml/post-html.cpp 2005-05-26 06:37:18.000000000 -0700 ++++ src/devices/grohtml/post-html.cpp 2018-10-24 13:10:56.000000000 -0700 +@@ -1587,7 +1587,7 @@ void header_desc::write_headings (FILE * + + buffer += as_string(h); + buffer += '\0'; +- fprintf(f, buffer.contents()); ++ fprintf(f, "%s", buffer.contents()); + } else + fputs(g->text_string, f); + h++; +diff -urp groff.orig/groff/src/roff/troff/node.cpp groff.fixed/groff/src/roff/troff/node.cpp +--- src/roff/troff/node.cpp 2018-10-24 13:09:01.000000000 -0700 ++++ src/roff/troff/node.cpp 2018-10-24 13:10:25.000000000 -0700 +@@ -2157,7 +2157,7 @@ void glyph_node::debug_node() + if (c) + fprintf(stderr, "%c", c); + else +- fprintf(stderr, ci->nm.contents()); ++ fprintf(stderr, "%s", ci->nm.contents()); + if (push_state) + fprintf(stderr, " "); + if (state) +diff -urp groff.orig/groff/src/utils/hpftodit/hpftodit.cpp groff.fixed/groff/src/utils/hpftodit/hpftodit.cpp +--- src/utils/hpftodit/hpftodit.cpp 2005-05-26 06:37:21.000000000 -0700 ++++ src/utils/hpftodit/hpftodit.cpp 2018-10-24 13:11:42.000000000 -0700 +@@ -870,9 +870,9 @@ output_charset(const int tfm_type) + else if (!all_flag) + continue; + else if (tfm_type == MSL) +- printf(hp_msl_to_ucode_name(charcode)); ++ printf("%s", hp_msl_to_ucode_name(charcode)); + else +- printf(unicode_to_ucode_name(charcode)); ++ printf("%s", unicode_to_ucode_name(charcode)); + + printf("\t%d,%d", + scale(char_table[i].width), scale(char_table[i].ascent)); diff --git a/patches/remove-2graph.diff b/patches/remove-2graph.diff new file mode 100644 index 0000000..ba48c05 --- /dev/null +++ b/patches/remove-2graph.diff @@ -0,0 +1,12 @@ +--- Makefile.in.orig 2015-09-22 17:31:39.000000000 -0700 ++++ Makefile.in 2015-09-22 17:31:41.000000000 -0700 +@@ -546,9 +546,6 @@ + src/roff/nroff \ + doc \ + contrib/mm \ +- contrib/pic2graph \ +- contrib/eqn2graph \ +- contrib/grap2graph \ + contrib/groffer \ + contrib/mom \ + contrib/pdfmark \ diff --git a/patches/remove-pdfroff.diff b/patches/remove-pdfroff.diff new file mode 100644 index 0000000..f241719 --- /dev/null +++ b/patches/remove-pdfroff.diff @@ -0,0 +1,13 @@ +--- contrib/pdfmark/Makefile.sub.orig 2015-06-26 02:53:38.000000000 -0700 ++++ contrib/pdfmark/Makefile.sub 2015-06-26 02:54:58.000000000 -0700 +@@ -18,10 +18,8 @@ + # Foundation, 51 Franklin St - Fifth Floor, Boston, MA 02110-1301, USA. + + MAN1=\ +- pdfroff.n + + CMDFILES=\ +- pdfroff + + TMACFILES=\ + pdfmark.tmac \ diff --git a/patches/tmac__doc-common.diff b/patches/tmac__doc-common.diff new file mode 100644 index 0000000..ea6c615 --- /dev/null +++ b/patches/tmac__doc-common.diff @@ -0,0 +1,165 @@ +--- tmac/doc-common.orig 2005-03-17 23:53:17.000000000 -0800 ++++ tmac/doc-common 2012-10-13 22:10:42.000000000 -0700 +@@ -418,8 +418,12 @@ + .ds doc-operating-system-NetBSD-1.2c 1.2C + .ds doc-operating-system-NetBSD-1.2d 1.2D + .ds doc-operating-system-NetBSD-1.2e 1.2E ++.ds doc-operating-system-NetBSD-1.2.1 1.2.1 + .ds doc-operating-system-NetBSD-1.3 1.3 + .ds doc-operating-system-NetBSD-1.3a 1.3A ++.ds doc-operating-system-NetBSD-1.3.1 1.3.1 ++.ds doc-operating-system-NetBSD-1.3.2 1.3.2 ++.ds doc-operating-system-NetBSD-1.3.3 1.3.3 + .ds doc-operating-system-NetBSD-1.4 1.4 + .ds doc-operating-system-NetBSD-1.4.1 1.4.1 + .ds doc-operating-system-NetBSD-1.4.2 1.4.2 +@@ -431,10 +435,27 @@ + .ds doc-operating-system-NetBSD-1.6 1.6 + .ds doc-operating-system-NetBSD-1.6.1 1.6.1 + .ds doc-operating-system-NetBSD-1.6.2 1.6.2 ++.ds doc-operating-system-NetBSD-1.6.3 1.6.3 + .ds doc-operating-system-NetBSD-2.0 2.0 + .ds doc-operating-system-NetBSD-2.0.1 2.0.1 + .ds doc-operating-system-NetBSD-2.0.2 2.0.2 ++.ds doc-operating-system-NetBSD-2.0.3 2.0.3 + .ds doc-operating-system-NetBSD-2.1 2.1 ++.ds doc-operating-system-NetBSD-3.0 3.0 ++.ds doc-operating-system-NetBSD-3.0.1 3.0.1 ++.ds doc-operating-system-NetBSD-3.0.2 3.0.2 ++.ds doc-operating-system-NetBSD-3.0.3 3.0.3 ++.ds doc-operating-system-NetBSD-3.1 3.1 ++.ds doc-operating-system-NetBSD-3.1.1 3.1.1 ++.ds doc-operating-system-NetBSD-4.0 4.0 ++.ds doc-operating-system-NetBSD-4.0.1 4.0.1 ++.ds doc-operating-system-NetBSD-5.0 5.0 ++.ds doc-operating-system-NetBSD-5.0.1 5.0.1 ++.ds doc-operating-system-NetBSD-5.0.2 5.0.2 ++.ds doc-operating-system-NetBSD-5.1 5.1 ++.ds doc-operating-system-NetBSD-5.1.1 5.1.1 ++.ds doc-operating-system-NetBSD-5.1.2 5.1.2 ++.ds doc-operating-system-NetBSD-6.0 6.0 + . + .ds doc-operating-system-FreeBSD-1.0 1.0 + .ds doc-operating-system-FreeBSD-1.1 1.1 +@@ -472,11 +493,100 @@ + .ds doc-operating-system-FreeBSD-4.8 4.8 + .ds doc-operating-system-FreeBSD-4.9 4.9 + .ds doc-operating-system-FreeBSD-4.10 4.10 ++.ds doc-operating-system-FreeBSD-4.11 4.11 + .ds doc-operating-system-FreeBSD-5.0 5.0 + .ds doc-operating-system-FreeBSD-5.1 5.1 + .ds doc-operating-system-FreeBSD-5.2 5.2 + .ds doc-operating-system-FreeBSD-5.2.1 5.2.1 + .ds doc-operating-system-FreeBSD-5.3 5.3 ++.ds doc-operating-system-FreeBSD-5.4 5.4 ++.ds doc-operating-system-FreeBSD-5.5 5.5 ++.ds doc-operating-system-FreeBSD-6.0 6.0 ++.ds doc-operating-system-FreeBSD-6.1 6.1 ++.ds doc-operating-system-FreeBSD-6.2 6.2 ++.ds doc-operating-system-FreeBSD-6.3 6.3 ++.ds doc-operating-system-FreeBSD-6.4 6.4 ++.ds doc-operating-system-FreeBSD-7.0 7.0 ++.ds doc-operating-system-FreeBSD-7.1 7.1 ++.ds doc-operating-system-FreeBSD-7.2 7.2 ++.ds doc-operating-system-FreeBSD-7.3 7.3 ++.ds doc-operating-system-FreeBSD-7.4 7.4 ++.ds doc-operating-system-FreeBSD-8.0 8.0 ++.ds doc-operating-system-FreeBSD-8.1 8.1 ++.ds doc-operating-system-FreeBSD-8.2 8.2 ++.ds doc-operating-system-FreeBSD-8.3 8.3 ++.ds doc-operating-system-FreeBSD-9.0 9.0 ++.ds doc-operating-system-FreeBSD-9.1 9.1 ++. ++.ds doc-operating-system-Darwin-8.0.0 8.0.0 ++.ds doc-operating-system-Darwin-8.1.0 8.1.0 ++.ds doc-operating-system-Darwin-8.2.0 8.2.0 ++.ds doc-operating-system-Darwin-8.3.0 8.3.0 ++.ds doc-operating-system-Darwin-8.4.0 8.4.0 ++.ds doc-operating-system-Darwin-8.5.0 8.5.0 ++.ds doc-operating-system-Darwin-8.6.0 8.6.0 ++.ds doc-operating-system-Darwin-8.7.0 8.7.0 ++.ds doc-operating-system-Darwin-8.8.0 8.8.0 ++.ds doc-operating-system-Darwin-8.9.0 8.9.0 ++.ds doc-operating-system-Darwin-8.10.0 8.10.0 ++.ds doc-operating-system-Darwin-8.11.0 8.11.0 ++.ds doc-operating-system-Darwin-9.0.0 9.0.0 ++.ds doc-operating-system-Darwin-9.1.0 9.1.0 ++.ds doc-operating-system-Darwin-9.2.0 9.2.0 ++.ds doc-operating-system-Darwin-9.3.0 9.3.0 ++.ds doc-operating-system-Darwin-9.4.0 9.4.0 ++.ds doc-operating-system-Darwin-9.5.0 9.5.0 ++.ds doc-operating-system-Darwin-9.6.0 9.6.0 ++.ds doc-operating-system-Darwin-9.7.0 9.7.0 ++.ds doc-operating-system-Darwin-9.8.0 9.8.0 ++.ds doc-operating-system-Darwin-10.0.0 10.0.0 ++.ds doc-operating-system-Darwin-10.1.0 10.1.0 ++.ds doc-operating-system-Darwin-10.2.0 10.2.0 ++.ds doc-operating-system-Darwin-10.3.0 10.3.0 ++.ds doc-operating-system-Darwin-10.4.0 10.4.0 ++.ds doc-operating-system-Darwin-10.5.0 10.5.0 ++.ds doc-operating-system-Darwin-10.6.0 10.6.0 ++.ds doc-operating-system-Darwin-10.7.0 10.7.0 ++.ds doc-operating-system-Darwin-10.8.0 10.8.0 ++.ds doc-operating-system-Darwin-11.0.0 11.0.0 ++.ds doc-operating-system-Darwin-11.1.0 11.1.0 ++.ds doc-operating-system-Darwin-11.2.0 11.2.0 ++.ds doc-operating-system-Darwin-11.3.0 11.3.0 ++.ds doc-operating-system-Darwin-11.4.0 11.4.0 ++.ds doc-operating-system-Darwin-11.5.0 11.5.0 ++.ds doc-operating-system-Darwin-12.0.0 12.0.0 ++.ds doc-operating-system-Darwin-12.1.0 12.1.0 ++.ds doc-operating-system-Darwin-12.2.0 12.2.0 ++.ds doc-operating-system-Darwin-13.0.0 13.0.0 ++. ++.ds doc-operating-system-DragonFly-1.0 1.0 ++.ds doc-operating-system-DragonFly-1.1 1.1 ++.ds doc-operating-system-DragonFly-1.2 1.2 ++.ds doc-operating-system-DragonFly-1.3 1.3 ++.ds doc-operating-system-DragonFly-1.4 1.4 ++.ds doc-operating-system-DragonFly-1.4.4 1.4.4 ++.ds doc-operating-system-DragonFly-1.5 1.5 ++.ds doc-operating-system-DragonFly-1.6 1.6 ++.ds doc-operating-system-DragonFly-1.7 1.7 ++.ds doc-operating-system-DragonFly-1.8 1.8 ++.ds doc-operating-system-DragonFly-1.8.1 1.8.1 ++.ds doc-operating-system-DragonFly-1.9 1.9 ++.ds doc-operating-system-DragonFly-1.10 1.10 ++.ds doc-operating-system-DragonFly-1.10.1 1.10.1 ++.ds doc-operating-system-DragonFly-1.11 1.11 ++.ds doc-operating-system-DragonFly-1.12 1.12 ++.ds doc-operating-system-DragonFly-1.12.1 1.12.1 ++.ds doc-operating-system-DragonFly-1.12.2 1.12.2 ++.ds doc-operating-system-DragonFly-2.0 2.0 ++.ds doc-operating-system-DragonFly-2.0.1 2.0.1 ++.ds doc-operating-system-DragonFly-2.2 2.2 ++.ds doc-operating-system-DragonFly-2.2.1 2.2.1 ++.ds doc-operating-system-DragonFly-2.4 2.4 ++.ds doc-operating-system-DragonFly-2.4.1 2.4.1 ++.ds doc-operating-system-DragonFly-3.0 3.0 ++.ds doc-operating-system-DragonFly-3.0.1 3.0.1 ++.ds doc-operating-system-DragonFly-3.0.2 3.0.2 ++.ds doc-operating-system-DragonFly-3.0.3 3.0.3 + . + .de Os + . ie "\$1"" \ +@@ -512,11 +614,19 @@ + . el \ + . tm mdoc warning: .Os: Unknown NetBSD version `\$2' (#\n[.c]) + . \}\} ++. el \{ .ie "\$1"Darwin" \{\ ++. ds doc-operating-system Darwin ++. if \A\$2 \{\ ++. ie d doc-operating-system-Darwin-\$2 \ ++. as doc-operating-system \~\*[doc-operating-system-Darwin-\$2] ++. el \ ++. tm mdoc warning: .Os: Unknown Darwin version `\$2' (#\n[.c]) ++. \}\} + . el \{\ + . ds doc-operating-system \$1 + . if !"\$2"" \ + . as doc-operating-system " \$2 +-. \}\}\}\}\} ++. \}\}\}\}\}\} + .. + . + . diff --git a/patches/tmac__doc-syms.diff b/patches/tmac__doc-syms.diff new file mode 100644 index 0000000..dad95f3 --- /dev/null +++ b/patches/tmac__doc-syms.diff @@ -0,0 +1,165 @@ +--- tmac/doc-syms.orig 2005-02-03 16:06:11.000000000 -0800 ++++ tmac/doc-syms 2012-10-13 22:13:42.000000000 -0700 +@@ -204,13 +204,13 @@ + .as doc-str-At-v7 " \*[doc-Tn-font-size]AT&T UNIX\*[doc-str-At] + .ds doc-str-At-V \*[doc-Tn-font-size]AT&T\*[doc-str-At] System\~V + .as doc-str-At-V " \*[doc-Tn-font-size]UNIX\*[doc-str-At] +-.ds doc-str-At-V.1 \*[doc-Tn-font-size]AT&T\*[doc-str-At] System\~V.1 ++.ds doc-str-At-V.1 \*[doc-Tn-font-size]AT&T\*[doc-str-At] System\~V Release\~1 + .as doc-str-At-V.1 " \*[doc-Tn-font-size]UNIX\*[doc-str-At] +-.ds doc-str-At-V.2 \*[doc-Tn-font-size]AT&T\*[doc-str-At] System\~V.2 ++.ds doc-str-At-V.2 \*[doc-Tn-font-size]AT&T\*[doc-str-At] System\~V Release\~2 + .as doc-str-At-V.2 " \*[doc-Tn-font-size]UNIX\*[doc-str-At] +-.ds doc-str-At-V.3 \*[doc-Tn-font-size]AT&T\*[doc-str-At] System\~V.3 ++.ds doc-str-At-V.3 \*[doc-Tn-font-size]AT&T\*[doc-str-At] System\~V Release\~3 + .as doc-str-At-V.3 " \*[doc-Tn-font-size]UNIX\*[doc-str-At] +-.ds doc-str-At-V.4 \*[doc-Tn-font-size]AT&T\*[doc-str-At] System\~V.4 ++.ds doc-str-At-V.4 \*[doc-Tn-font-size]AT&T\*[doc-str-At] System\~V Release\~4 + .as doc-str-At-V.4 " \*[doc-Tn-font-size]UNIX\*[doc-str-At] + . + .de At +@@ -260,6 +260,70 @@ + .. + . + . ++.\" NS Dx user macro ++.\" NS print DragonFly ++.\" NS ++.\" NS modifies: ++.\" NS doc-arg-ptr ++.\" NS doc-curr-font ++.\" NS doc-curr-size ++.\" NS doc-macro-name ++.\" NS ++.\" NS local variable: ++.\" NS doc-str-Dx ++.\" NS doc-str-Dx1 ++.\" NS ++.\" NS width register `Dx' defined in doc-common ++. ++.\" we use the doc-operating-system-DragonFly-* strings defined in doc-common ++. ++.de Dx ++. nr doc-curr-font \n[.f] ++. nr doc-curr-size \n[.ps] ++. ds doc-str-Dx \f[\n[doc-curr-font]]\s[\n[doc-curr-size]u] ++. ++. \" default value if no argument ++. ds doc-str-Dx1 \*[doc-Tn-font-size]\%DragonFly\*[doc-str-Dx] ++. ++. if !\n[doc-arg-limit] \ ++. if \n[.$] \{\ ++. ds doc-macro-name Dx ++. doc-parse-args \$@ ++. \} ++. ++. if (\n[doc-arg-limit] > \n[doc-arg-ptr]) \{\ ++. nr doc-arg-ptr +1 ++. ie (\n[doc-type\n[doc-arg-ptr]] == 2) \{\ ++. ie \A\*[doc-arg\n[doc-arg-ptr]] \{\ ++. ie d doc-operating-system-DragonFly-\*[doc-arg\n[doc-arg-ptr]] \ ++. as doc-str-Dx1 \~\*[doc-operating-system-DragonFly-\*[doc-arg\n[doc-arg-ptr]]] ++. el \{\ ++. tmc mdoc warning: .Dx: Unknown DragonFly version ++. tm1 " `\*[doc-arg\n[doc-arg-ptr]]' (#\n[.c]) ++. as doc-str-Dx1 \~\*[doc-arg\n[doc-arg-ptr]] ++. \}\} ++. el \ ++. as doc-str-Dx1 \~\*[doc-arg\n[doc-arg-ptr]] ++. \} ++. el \ ++. nr doc-arg-ptr -1 ++. \} ++. ++. \" replace current argument with result ++. ds doc-arg\n[doc-arg-ptr] "\*[doc-str-Dx1] ++. nr doc-type\n[doc-arg-ptr] 2 ++. ds doc-space\n[doc-arg-ptr] "\*[doc-space] ++. ++. \" recompute space vector for remaining arguments ++. nr doc-num-args (\n[doc-arg-limit] - \n[doc-arg-ptr]) ++. nr doc-arg-limit \n[doc-arg-ptr] ++. if \n[doc-num-args] \ ++. doc-parse-space-vector ++. ++. doc-print-recursive ++.. ++. ++. + .\" NS Fx user macro + .\" NS print FreeBSD + .\" NS +@@ -543,6 +607,14 @@ + .als doc-str-St--isoC-90 doc-str-St--isoC + .ds doc-str-St--isoC-99 \*[doc-Tn-font-size]ISO/IEC\*[doc-str-St] 9899:1999 + .as doc-str-St--isoC-99 " (\*[Lq]\*[doc-Tn-font-size]ISO\~C\^99\*[doc-str-St]\*[Rq]) ++.ds doc-str-St--isoC-2011 \*[doc-Tn-font-size]ISO/IEC\*[doc-str-St] 9899:2011 ++.as doc-str-St--isoC-2011 " (\*[Lq]\*[doc-Tn-font-size]ISO\~C\^11\*[doc-str-St]\*[Rq]) ++.ds doc-str-St--isoC-amd1 \*[doc-Tn-font-size]ISO/IEC\*[doc-str-St] 9899/AMD1:1995 ++.as doc-str-St--isoC-amd1 " (\*[Lq]\*[doc-Tn-font-size]ISO\~C\^90\*[doc-str-St], Amendment 1\*[Rq]) ++.ds doc-str-St--isoC-tcor1 \*[doc-Tn-font-size]ISO/IEC\*[doc-str-St] 9899/TCOR1:1994 ++.as doc-str-St--isoC-tcor1 " (\*[Lq]\*[doc-Tn-font-size]ISO\~C\^90\*[doc-str-St], Technical Corrigendum 1\*[Rq]) ++.ds doc-str-St--isoC-tcor2 \*[doc-Tn-font-size]ISO/IEC\*[doc-str-St] 9899/TCOR2:1995 ++.as doc-str-St--isoC-tcor2 " (\*[Lq]\*[doc-Tn-font-size]ISO\~C\^90\*[doc-str-St], Technical Corrigendum 2\*[Rq]) + . + .\" POSIX Part 1: System API + .ds doc-str-St--p1003.1 \*[doc-Tn-font-size]\%IEEE\*[doc-str-St] Std 1003.1 +@@ -567,6 +639,9 @@ + .as doc-str-St--p1003.1-2001 " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq]) + .ds doc-str-St--p1003.1-2004 \*[doc-Tn-font-size]\%IEEE\*[doc-str-St] Std 1003.1-2004 + .as doc-str-St--p1003.1-2004 " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq]) ++.ds doc-str-St--p1003.1-2008 \*[doc-Tn-font-size]\%IEEE\*[doc-str-St] Std 1003.1-2008 ++.as doc-str-St--p1003.1-2008 " (\*[Lq]\)\*[Px]\*[doc-str-St].1\*[Rq]) ++ + . + .\" POSIX Part 2: Shell and Utilities + .ds doc-str-St--p1003.2 \*[doc-Tn-font-size]\%IEEE\*[doc-str-St] Std 1003.2 +@@ -581,6 +656,8 @@ + .\" X/Open + .ds doc-str-St--susv2 Version\~2 of the Single \*[doc-Tn-font-size]UNIX\*[doc-str-St] Specification + .as doc-str-St--susv2 " (\*[Lq]\*[doc-Tn-font-size]SUSv2\*[doc-str-St]\*[Rq]) ++.ds doc-str-St--susv3 Version\~3 of the Single \*[doc-Tn-font-size]UNIX\*[doc-str-St] Specification ++.as doc-str-St--susv3 " (\*[Lq]\*[doc-Tn-font-size]SUSv3\*[doc-str-St]\*[Rq]) + .ds doc-str-St--svid4 System\~V Interface Definition, Fourth Edition + .as doc-str-St--svid4 " (\*[Lq]\*[doc-Tn-font-size]SVID\*[doc-str-St]\^4\*[Rq]) + .ds doc-str-St--xbd5 \*[doc-Tn-font-size]X/Open\*[doc-str-St] System Interface Definitions Issue\~5 +@@ -593,17 +670,23 @@ + .as doc-str-St--xns5 " (\*[Lq]\*[doc-Tn-font-size]XNS\*[doc-str-St]\^5\*[Rq]) + .ds doc-str-St--xns5.2 \*[doc-Tn-font-size]X/Open\*[doc-str-St] Networking Services Issue\~5.2 + .as doc-str-St--xns5.2 " (\*[Lq]\*[doc-Tn-font-size]XNS\*[doc-str-St]\^5.2\*[Rq]) ++.ds doc-str-St--xns5.2d2.0 \*[doc-Tn-font-size]X/Open\*[doc-str-St] Networking Services Issue\~5.2, Draft\~2.0 ++.as doc-str-St--xns5.2d2.0 " (\*[Lq]\*[doc-Tn-font-size]XNS\*[doc-str-St]\^5.2D2.0\*[Rq]) + .ds doc-str-St--xpg3 \*[doc-Tn-font-size]X/Open\*[doc-str-St] Portability Guide Issue\~3 + .as doc-str-St--xpg3 " (\*[Lq]\*[doc-Tn-font-size]XPG\*[doc-str-St]\^3\*[Rq]) + .ds doc-str-St--xpg4 \*[doc-Tn-font-size]X/Open\*[doc-str-St] Portability Guide Issue\~4 + .as doc-str-St--xpg4 " (\*[Lq]\*[doc-Tn-font-size]XPG\*[doc-str-St]\^4\*[Rq]) + .ds doc-str-St--xpg4.2 \*[doc-Tn-font-size]X/Open\*[doc-str-St] Portability Guide Issue\~4, Version\~2 + .as doc-str-St--xpg4.2 " (\*[Lq]\*[doc-Tn-font-size]XPG\*[doc-str-St]\^4.2\*[Rq]) ++.ds doc-str-St--xpg4.3 \*[doc-Tn-font-size]X/Open\*[doc-str-St] Portability Guide Issue\~4, Version\~3 ++.as doc-str-St--xpg4.3 " (\*[Lq]\*[doc-Tn-font-size]XPG\*[doc-str-St]\^4.3\*[Rq]) + .ds doc-str-St--xsh5 \*[doc-Tn-font-size]X/Open\*[doc-str-St] System Interfaces and Headers Issue\~5 + .as doc-str-St--xsh5 " (\*[Lq]\*[doc-Tn-font-size]XSH\*[doc-str-St]\^5\*[Rq]) + . + .\" Miscellaneous + .ds doc-str-St--ieee754 \*[doc-Tn-font-size]\%IEEE\*[doc-str-St] Std 754-1985 ++.ds doc-str-St--ieee1275-94 \*[doc-Tn-font-size]\%IEEE\*[doc-str-St] Std 1275-1994 ++.as doc-str-St--ieee1275-94 " (\*[Lq]\*[doc-Tn-font-size]Open Firmware\*[doc-str-St]\*[Rq]) + .ds doc-str-St--iso8802-3 \*[doc-Tn-font-size]ISO/IEC\*[doc-str-St] 8802-3:1989 + . + .de St +@@ -678,6 +761,7 @@ + . + .ds doc-str-Lb-libarm ARM Architecture Library (libarm, \-larm) + .ds doc-str-Lb-libarm32 ARM32 Architecture Library (libarm32, \-larm32) ++.ds doc-str-Lb-libbsm Basic Security Module Library (libbsm, \-lbsm) + .ds doc-str-Lb-libc Standard C\~Library (libc, \-lc) + .ds doc-str-Lb-libcdk Curses Development Kit Library (libcdk, \-lcdk) + .ds doc-str-Lb-libcompat Compatibility Library (libcompat, \-lcompat) +@@ -703,6 +787,7 @@ + .ds doc-str-Lb-libpthread \*[Px] \*[doc-str-Lb]Threads Library (libpthread, \-lpthread) + .ds doc-str-Lb-libresolv DNS Resolver Library (libresolv, \-lresolv) + .ds doc-str-Lb-librt \*[Px] \*[doc-str-Lb]Real-time Library (librt, \-lrt) ++.ds doc-str-Lb-libSystem System Library (libSystem, \-lSystem) + .ds doc-str-Lb-libtermcap Termcap Access Library (libtermcap, \-ltermcap) + .ds doc-str-Lb-libusbhid USB Human Interface Devices Library (libusbhid, \-lusbhid) + .ds doc-str-Lb-libutil System Utilities Library (libutil, \-lutil) diff --git a/patches/tmac__groff_mdoc.man.diff b/patches/tmac__groff_mdoc.man.diff new file mode 100644 index 0000000..a6c2199 --- /dev/null +++ b/patches/tmac__groff_mdoc.man.diff @@ -0,0 +1,11 @@ +--- tmac/groff_mdoc.man Tue May 11 15:10:17 2004 ++++ tmac/groff_mdoc.man Fri Sep 24 12:33:57 2004 +@@ -1990,6 +1990,8 @@ + .Pp + .It Li -susv2 + .St -susv2 ++.It Li -susv3 ++.St -susv3 + .It Li -svid4 + .St -svid4 + .It Li -xbd5 diff --git a/patches/tmac__troffrc.diff b/patches/tmac__troffrc.diff new file mode 100644 index 0000000..8067e42 --- /dev/null +++ b/patches/tmac__troffrc.diff @@ -0,0 +1,15 @@ +--- tmac/troffrc.orig Fri Jun 11 12:48:25 2004 ++++ tmac/troffrc Fri Jun 11 12:49:04 2004 +@@ -43,4 +43,12 @@ + .\" Handle paper formats + .do mso papersize.tmac + . ++.\" Disable SGR support in grotty(1). ++.if n \{\ ++. do nop \X'tty: sgr 0' ++. sp -1 ++. nr nl 0-1 ++. nr % -1 ++.\} ++. + .\" Don't let blank lines creep in here. diff --git a/patches/utf8.diff b/patches/utf8.diff new file mode 100644 index 0000000..1ed684b --- /dev/null +++ b/patches/utf8.diff @@ -0,0 +1,1347 @@ +diff -Naurp ChangeLog ChangeLog +--- ChangeLog 2005-09-04 03:01:44.000000000 -0700 ++++ ChangeLog 2012-10-02 15:09:49.000000000 -0700 +@@ -6,7 +6,7 @@ + + * install-sh, mkinstalldirs: New versions; taken from texinfo CVS. + +-2005-09-04 Jörgen Grahn ++2005-09-04 Jörgen Grahn + + * tmac/groff_ms.man: Document `PO' better. + +@@ -142,7 +142,7 @@ + `clear' with `mark' in /PBEGIN and `cleartomark' in /PEND (I've + never found this necessary). + +-2005-06-20 Jörgen Grahn ++2005-06-20 Jörgen Grahn + + * src/preproc/soelim/soelim.cpp (do_file): Append trailing zero + earlier to get correct error message. +@@ -781,7 +781,7 @@ + + * README.CVS: Updated. + +-2005-02-09 Alejandro López-Valencia (tiny change) ++2005-02-09 Alejandro López-Valencia (tiny change) + + * doc/groff.texinfo (ms Document Control Registers): Document `HY' + and `FAM' registers. +@@ -936,7 +936,7 @@ + * tmac/s.tmac (TL): Don't set `need_eo_tl'. + (cov*tl-au-print): Emit `.eo.tl' tag. + +-2004-12-05 Alejandro López-Valencia ++2004-12-05 Alejandro López-Valencia + + * man/groff_char.man: Minor imrovements. + +@@ -1434,7 +1434,7 @@ + + * NEWS: Updated. + +-2004-09-28 Heinz-Jürgen Oertel ++2004-09-28 Heinz-Jürgen Oertel + + * tmac/groff_www.man: Revised and updated. + +@@ -1657,7 +1657,7 @@ + avoid arrow sticking. + (arc_object::print): Take arrow direction into account. + +-2004-07-03 Heinz-Jürgen Oertel ++2004-07-03 Heinz-Jürgen Oertel + + * tmac/groff_www.man: Update documentation of .MPIMG. + +@@ -2385,7 +2385,7 @@ Version 1.19.1 released + MS Symbol (SYMBOL), Wingdings (WINGDINGS). + * NEWS: Document new lj4 fonts and revised hpftodit. + +-2004-02-17 Paco Andrés Verdú ++2004-02-17 Paco Andrés Verdú + + * src/devices/grolbp/lbp.h (vmdvarc): Fix formatting string. + +@@ -2691,7 +2691,7 @@ Version 1.19.1 released + + * src/include/unicode.h: Remove `extern' keywords. + +-2003-12-20 Nilgün Belma Bugüner ++2003-12-20 Nilgün Belma Bugüner + + * tmac/latin5.tmac: New file. + +@@ -3104,7 +3104,7 @@ Version 1.19.1 released + g++ linker is used. Reported by Mark J. Reed + . + +-2003-08-16 Heinz-Jürgen Oertel ++2003-08-16 Heinz-Jürgen Oertel + + Add key character `x' to tbl which makes tbl call a user-defined + macro on a table cell. +@@ -3177,7 +3177,7 @@ Version 1.19.1 released + * NEWS, man/groff_diff.man, man/groff.man, doc/groff.texinfo: + Document new requests. + +-2003-07-22 Heinz-Jürgen Oertel ++2003-07-22 Heinz-Jürgen Oertel + + Add option -G to .MPIMG to insert a gap between text and the image. + +@@ -4642,7 +4642,7 @@ Version 1.19 released + + * NEWS: Updated. + +-2003-01-16 Jörgen Grahn ++2003-01-16 Jörgen Grahn + + * src/preproc/refer/refer.man: Mention REFER environment variable. + +diff -Naurp ChangeLog.116 ChangeLog.116 +--- ChangeLog.116 2005-06-28 09:10:40.000000000 -0700 ++++ ChangeLog.116 2012-10-02 15:09:49.000000000 -0700 +@@ -207,7 +207,7 @@ Version 1.16.1 released + src/roff/groff/groff.cc: Use it. + * Makefile.in, configure: Updated. + +-2000-06-07 Paco Andrés Verdú ++2000-06-07 Paco Andrés Verdú + + * src/devides/grolbp/lbp.h: Removed unused variables. + +@@ -701,7 +701,7 @@ Version 1.16 released + + * src/roff/grog/grog.man: Updated copyright date. + +-2000-03-14 Francisco Andrés Verdú ++2000-03-14 Francisco Andrés Verdú + + * configure.in: Added test for strdup. + +@@ -786,7 +786,7 @@ Version 1.16 released + Implement it. + * src/roff/troff/env.h: Add prototype. + +-2000-03-05 Francisco Andrés Verdú ++2000-03-05 Francisco Andrés Verdú + + Adding strsep() -- Solaris 8 doesn't have it. + +@@ -810,7 +810,7 @@ Version 1.16 released + + * tmac/troffrc: Add tmac.lbp. + +-2000-03-03 Francisco Andrés Verdú ++2000-03-03 Francisco Andrés Verdú + + * tmac/tmac.lbp: New file. + * src/devices/grolbp/grolbp.man: Add documentation of `lbpname' +@@ -895,7 +895,7 @@ Version 1.16 released + + Adding a new driver, grolbp, for Canon CAPSL printers (LBP-4 and + LBP-8 series laser printers). This code has been contributed by +- Francisco Andrés Verdú . ++ Francisco Andrés Verdú . + + * src/devices/grolbp/*: The grolbp output device. + * font/devlpb/*: The font description files. +diff -Naurp ChangeLog.117 ChangeLog.117 +--- ChangeLog.117 2005-06-28 09:10:59.000000000 -0700 ++++ ChangeLog.117 2012-10-02 15:09:50.000000000 -0700 +@@ -1459,9 +1459,9 @@ Version 1.17 released + + * man/groff_char.man: Use table header traps only conditionally. + +-2001-01-09 Bjarni Ingi Gíslason ++2001-01-09 Bjarni Ingi Gíslason + +- * man/groff_char.man: Add `ý' and `Ý' to the `acute' group. ++ * man/groff_char.man: Add `ý' and `Ã' to the `acute' group. + + 2001-01-08 Werner LEMBERG + +@@ -1972,7 +1972,7 @@ Version 1.17 released + + * src/roff/troff/troff.man, NEWS, man/groff.man: Updated. + +-2000-09-22 Ricardo Soares Guimarães ++2000-09-22 Ricardo Soares Guimarães + + Adding a new option -P and new environment variable GROPS_PROLOGUE + to grops, selecting a different prologue file (minor modifications +diff -Naurp ChangeLog.118 ChangeLog.118 +--- ChangeLog.118 2005-06-28 09:10:27.000000000 -0700 ++++ ChangeLog.118 2012-10-02 15:09:50.000000000 -0700 +@@ -131,7 +131,7 @@ Version 1.18.1 released + + * src/devices/grolbp/grolbp.man, NEWS, doc/webpage.ms: Updated. + +-2002-09-22 Paco Andrés Verdú ++2002-09-22 Paco Andrés Verdú + + Fixed a bug in the line thickness setting code. + +@@ -1782,7 +1782,7 @@ Version 1.18.0 released + included. + Handle CYGWIN properly. + +-2002-03-07 Paco Andrés Verdú ++2002-03-07 Paco Andrés Verdú + + * font/devlbp/Makefile.sub (DEVFILES): Add some missing fonts. + * tmac/lbp.tmac: Add some font translations. +diff -Naurp NEWS NEWS +--- NEWS 2005-09-04 02:42:10.000000000 -0700 ++++ NEWS 2012-10-02 15:09:57.000000000 -0700 +@@ -233,7 +233,7 @@ Tbl + --- + + o New key character `x' to make tbl call a user-defined macro on a table +- cell. Patch by Heinz-Jürgen Oertel . ++ cell. Patch by Heinz-Jürgen Oertel . + + Grap2graph + ---------- +diff -Naurp contrib/mm/ChangeLog contrib/mm/ChangeLog +--- contrib/mm/ChangeLog 2005-05-25 23:25:03.000000000 -0700 ++++ contrib/mm/ChangeLog 2012-10-02 15:09:50.000000000 -0700 +@@ -147,7 +147,7 @@ Thu Apr 12 00:00:00 2001 Ruslan Ermilov + + * groff_mm.man: Fixing some typos. + +-Mon Mar 5 09:30:18 2001 Jörgen Hägg (jh@axis.com) ++Mon Mar 5 09:30:18 2001 Jörgen Hägg (jh@axis.com) + + * S didn't reset to default point size + * (dummy line to force cvs update...) +@@ -156,11 +156,11 @@ Sat Jan 06 10:30:00 2001 Werner LEMBERG + + * Fixed assignment of page offset given as a command line argument. + +-Fri Nov 17 05:34:17 2000 Jörgen Hägg (jh@axis.com) ++Fri Nov 17 05:34:17 2000 Jörgen Hägg (jh@axis.com) + + * Renamed tmac.m and tmac.mse to m.tmac and mse.tmac + +-Thu Sep 14 05:52:48 2000 Jörgen Hägg (jh@axis.com) ++Thu Sep 14 05:52:48 2000 Jörgen Hägg (jh@axis.com) + + * New Changelog-format, it will show changes better. + Easier for other to use. (Somehow I didn't really +@@ -172,7 +172,7 @@ Mon Aug 28 00:00:00 2000 Bruno Haible (h + * Makefile.sub: New target 'all', makes all prerequisites of + 'install'. + +-Thu Sep 7 06:17:42 2000 Jörgen Hägg (jh at axis.com) ++Thu Sep 7 06:17:42 2000 Jörgen Hägg (jh at axis.com) + + * version 2.0 + * Had to do something about my version numbering. +@@ -192,13 +192,13 @@ Tue Mar 7 00:00:00 2000 OKAZAKI Tetsurou + + * Makefile.sub: Use $(INSTALL_SCRIPT) for script files. + +-Sun Jan 30 22:52:20 2000 Jörgen Hägg (jh at axis.com) ++Sun Jan 30 22:52:20 2000 Jörgen Hägg (jh at axis.com) + + * version 1.34 + * Changed the version number in the CVS repository + * MC had a bug in column calculation, (thanks to T. Kurt Bond) + +-Fri Sep 3 07:33:14 1999 Jörgen Hägg (jh at axis.com) ++Fri Sep 3 07:33:14 1999 Jörgen Hägg (jh at axis.com) + + * version 1.33 + * At last! I finally tracked down the PGFORM bug! +@@ -219,7 +219,7 @@ Fri Sep 3 07:33:14 1999 Jörgen Hägg (jh + * Added test for missing abstract in 4.MT + * Updated Makefile.sub, using tmac_m_prefix. + +-Mon Mar 15 22:22:42 1999 Jörgen Hägg (jh at axis.com) ++Mon Mar 15 22:22:42 1999 Jörgen Hägg (jh at axis.com) + + * OK, let's release this as a beta, 1.33 will be better. :-) + * version 1.32 +@@ -246,14 +246,14 @@ Mon Mar 15 22:22:42 1999 Jörgen Hägg (jh + * fixed Hps-bug, should be 1, not 1v. + * fixed bug with APPSK, variable not set. + +-Wed Feb 4 15:46:04 1998 Jörgen Hägg (jh at axis.se) ++Wed Feb 4 15:46:04 1998 Jörgen Hägg (jh at axis.se) + + * version 1.31 + * .LI will now honor a space mark. + * Another fix for .AU to let it be used without arguments. + * uninitialized eq*label fixed + +-Fri Sep 6 07:13:07 1996 Jörgen Hägg (jh at axis.se) ++Fri Sep 6 07:13:07 1996 Jörgen Hägg (jh at axis.se) + + * version 1.30 + * This is more like a beta-release, bugs might pop up. :-) +@@ -293,7 +293,7 @@ Fri Sep 6 07:13:07 1996 Jörgen Hägg (jh + footnote on the page occurred at just the wrong place + + +-Wed May 15 07:39:32 1996 Jörgen Hägg (jh at axis.se) ++Wed May 15 07:39:32 1996 Jörgen Hägg (jh at axis.se) + + * version 1.29 + * Syntax and scaling errror fixed, (thanks to Frazer Williams) +@@ -311,7 +311,7 @@ Wed May 15 07:39:32 1996 Jörgen Hägg (jh + * Corrected line length for figure caption (FG and friends) + + +-Mon Apr 24 07:37:52 1995 Jörgen Hägg (jh at axis.se) ++Mon Apr 24 07:37:52 1995 Jörgen Hägg (jh at axis.se) + + * version 1.28 + * Added AVL (AV without date) +@@ -330,7 +330,7 @@ Mon Apr 24 07:37:52 1995 Jörgen Hägg (jh + * Space may be omitted between prefix and mark in automatic lists (.AL) + See .LI + +-Tue Jan 10 07:51:37 1995 Jörgen Hägg (jh at axis.se) ++Tue Jan 10 07:51:37 1995 Jörgen Hägg (jh at axis.se) + + * version 1.27 + * Manual updated +@@ -344,7 +344,7 @@ Tue Jan 10 07:51:37 1995 Jörgen Hägg (jh + * Added support for EOP (TPs twin) + * Hyphenation turned off by default. (Hy == 0) + +-Fri Nov 4 08:14:50 1994 Jörgen Hägg (jh at axis.se) ++Fri Nov 4 08:14:50 1994 Jörgen Hägg (jh at axis.se) + + * version 1.25 + * DS/DF separated and several bugs fixed. Watch out for new though. :-) +@@ -352,7 +352,7 @@ Fri Nov 4 08:14:50 1994 Jörgen Hägg (jh + * RD made prettier. + * typo in AV and let@print-head fixed. + +-Mon Oct 31 08:19:24 1994 Jörgen Hägg (jh at axis.se) ++Mon Oct 31 08:19:24 1994 Jörgen Hägg (jh at axis.se) + + * version 1.24 + * Bug fixed and format extended in .SG and .FC. +@@ -361,13 +361,13 @@ Mon Oct 31 08:19:24 1994 Jörgen Hägg (jh + * Swedish letter-standards implemented in tmac.mse. + * .ND can be used to turn off the date. (Empty argument) + +-Mon Oct 31 08:14:09 1994 Jörgen Hägg (jh at axis.se) ++Mon Oct 31 08:14:09 1994 Jörgen Hägg (jh at axis.se) + + * version 1.23 + * An attempt to get in sync with RCS. This is the distributed + version. + +-Thu Oct 27 08:29:34 1994 Jörgen Hägg (jh at axis.se) ++Thu Oct 27 08:29:34 1994 Jörgen Hägg (jh at axis.se) + + * version 1.22 + * (version 1.21 lost... :-) +@@ -389,7 +389,7 @@ Tue Dec 14 16:26:36 1993 Joergen Haegg ( + became necessary. + * WC WD now works in two-column-mode. + +-Tue Sep 7 08:37:00 1993 Jörgen Hägg (jh at efd.lth.se) ++Tue Sep 7 08:37:00 1993 Jörgen Hägg (jh at efd.lth.se) + + * version 1.19 + * .lt is called in the header for .TP also. +diff -Naurp contrib/mm/README contrib/mm/README +--- contrib/mm/README 2002-05-21 23:26:12.000000000 -0700 ++++ contrib/mm/README 2012-10-02 15:09:51.000000000 -0700 +@@ -24,7 +24,7 @@ make -f Makefile.sim install + + This README should be bigger :-) + +-/Jörgen Hägg ++/Jörgen Hägg + + Thanks to everyone who have sent me bug-reports and fixes. + +diff -Naurp contrib/mm/examples/LT.se contrib/mm/examples/LT.se +--- contrib/mm/examples/LT.se 2000-09-13 20:40:24.000000000 -0700 ++++ contrib/mm/examples/LT.se 2012-10-02 15:09:50.000000000 -0700 +@@ -19,10 +19,10 @@ Text xxxxxxxxxxxxxxxxxx + .LO BIL 2 + .LO KOMP Kompletteringsuppgift + .LO DBET dokumentnummer +-.LO BET ärendebeteckning ++.LO BET ärendebeteckning + .LO MBET "Mottagarens b" + .LO SIDOR 22 +-.\" vänster eller högerställt brev ++.\" vänster eller högerställt brev + .\" .LT SVH + .LT SVV + hepp +diff -Naurp contrib/mm/examples/MOVE contrib/mm/examples/MOVE +--- contrib/mm/examples/MOVE 2000-09-13 20:40:24.000000000 -0700 ++++ contrib/mm/examples/MOVE 2012-10-02 15:09:50.000000000 -0700 +@@ -1,9 +1,9 @@ + .PH "'hej'hopp'i skogen'" +-.PF "'livet'är'härligt'" +-.OH "'ojämn'%'sida'" +-.EH "'ojämn'%'sida'" +-.OF "'ojämn'%'sida'" +-.EF "'ojämn'%'sida'" ++.PF "'livet'är'härligt'" ++.OH "'ojämn'%'sida'" ++.EH "'ojämn'%'sida'" ++.OF "'ojämn'%'sida'" ++.EF "'ojämn'%'sida'" + 10th + 1st + 2nd +diff -Naurp contrib/mm/groff_mm.man contrib/mm/groff_mm.man +--- contrib/mm/groff_mm.man 2004-07-03 05:46:56.000000000 -0700 ++++ contrib/mm/groff_mm.man 2012-10-02 15:09:50.000000000 -0700 +@@ -2079,7 +2079,7 @@ variable \fBlet*lo-\fP\fItype\fP. + .LP + .\".SH BUGS + .SH AUTHOR +-Jörgen Hägg, Lund, Sweden . ++Jörgen Hägg, Lund, Sweden . + .SH FILES + .TP + .B @MACRODIR@/tmac.@TMAC_M_PREFIX@m +diff -Naurp contrib/mm/groff_mmse.man contrib/mm/groff_mmse.man +--- contrib/mm/groff_mmse.man 2001-12-09 04:15:09.000000000 -0800 ++++ contrib/mm/groff_mmse.man 2012-10-02 15:09:50.000000000 -0700 +@@ -1,10 +1,10 @@ + .\" + .\" $Id: groff_mmse.man,v 2.2 2001/12/09 12:15:09 wlemb Exp $ +-.\" Skrivet av Jörgen Hägg, Lund, Sverige ++.\" Skrivet av Jörgen Hägg, Lund, Sverige + .\" + .TH GROFF_MMSE @MAN7EXT@ "@MDATE@" "Groff Version @VERSION@" + .SH NAMN +-groff_mmse \- svenska mm makro för groff ++groff_mmse \- svenska mm makro för groff + .SH SYNTAX + .B groff + .B \-m@TMAC_M_PREFIX@mse +@@ -15,26 +15,26 @@ groff_mmse \- svenska mm makro för groff + .IR filer .\|.\|. + ] + .SH BESKRIVNING +-\fBm@TMAC_M_PREFIX@mse\fP är en svensk variant av \fBm@TMAC_M_PREFIX@m\fP. Alla texter +-är översatta. En A4 sida får text som är 13 cm bred, 3.5 cm indragning +-samt är 28.5 cm hög. +-Det finns stöd för brevuppställning enligt svensk standard +-för vänster och högerjusterad text. ++\fBm@TMAC_M_PREFIX@mse\fP är en svensk variant av \fBm@TMAC_M_PREFIX@m\fP. Alla texter ++är översatta. En A4 sida fÃ¥r text som är 13 cm bred, 3.5 cm indragning ++samt är 28.5 cm hög. ++Det finns stöd för brevuppställning enligt svensk standard ++för vänster och högerjusterad text. + .LP +-\fBCOVER\fP kan använda \fIse_ms\fP som argument. Detta ger ett +-svenskt försättsblad. +-Se \fBgroff_mm(@MAN7EXT@)\fP för övriga detaljer. ++\fBCOVER\fP kan använda \fIse_ms\fP som argument. Detta ger ett ++svenskt försättsblad. ++Se \fBgroff_mm(@MAN7EXT@)\fP för övriga detaljer. + .SH BREV +-Tillgängliga brevtyper: ++Tillgängliga brevtyper: + .TP + .B ".LT SVV" +-Vänsterställd löptext med adressat i position T0 (vänsterställt). ++Vänsterställd löptext med adressat i position T0 (vänsterställt). + .TP + .B ".LT SVH" +-Högerställd löptext med adressat i position T4 (passar +-fönsterkuvert). ++Högerställd löptext med adressat i position T4 (passar ++fönsterkuvert). + .LP +-Följande extra LO-variabler används. ++Följande extra LO-variabler används. + .TP + .B ".LO DNAMN\fI namn\fP" + Anger dokumentets namn. +@@ -44,8 +44,8 @@ Anger dokumentets namn. + Mottagarens datum, anges under \fBErt datum:\fP (\fBLetMDAT\fP). + .TP + .br +-.B ".LO BIL\fI sträng\fP" +-Anger bilaga, nummer eller sträng med \fBBilaga\fP (\fBLetBIL\fP) ++.B ".LO BIL\fI sträng\fP" ++Anger bilaga, nummer eller sträng med \fBBilaga\fP (\fBLetBIL\fP) + som prefix. + .TP + .br +@@ -58,21 +58,21 @@ Anger dokumentbeteckning eller dokumentn + .TP + .br + .B ".LO BET\fI beteckning\fP" +-Anger beteckning (ärendebeteckning i form av diarienummer eller liknande). ++Anger beteckning (ärendebeteckning i form av diarienummer eller liknande). + .TP + .br + .B ".LO SIDOR\fI antal\fP" + Anger totala antalet sidor och skrivs ut efter sidnumret inom + parenteser. + .LP +-Om makrot \fB.TP\fP är definierat anropas det efter utskrift av brevhuvudet. +-Där lägger man lämpligen in postadress och annat som brevfot. ++Om makrot \fB.TP\fP är definierat anropas det efter utskrift av brevhuvudet. ++Där lägger man lämpligen in postadress och annat som brevfot. + .SH "SKRIVET AV" +-Jörgen Hägg, Lund, Sweden ++Jörgen Hägg, Lund, Sweden + .SH FILER + .B @MACRODIR@/tmac.@TMAC_M_PREFIX@mse + .B @TMAC_MDIR@/se_*.cov +-.SH "SE OCKSÅ" ++.SH "SE OCKSÃ…" + .BR groff (@MAN1EXT@), + .BR @g@troff (@MAN1EXT@), + .BR @g@tbl (@MAN1EXT@), +diff -Naurp contrib/mm/m.tmac contrib/mm/m.tmac +--- contrib/mm/m.tmac 2005-05-25 23:28:38.000000000 -0700 ++++ contrib/mm/m.tmac 2012-10-02 15:09:50.000000000 -0700 +@@ -9,7 +9,7 @@ + + Copyright (C) 1991-2000, 2001, 2002, 2003, 2004, 2005 + Free Software Foundation, Inc. +-mgm is written by Jörgen Hägg ++mgm is written by Jörgen Hägg + + mgm is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free +diff -Naurp contrib/mm/mmroff.man contrib/mm/mmroff.man +--- contrib/mm/mmroff.man 2001-12-09 04:15:09.000000000 -0800 ++++ contrib/mm/mmroff.man 2012-10-02 15:09:51.000000000 -0700 +@@ -25,7 +25,7 @@ references and by using this option \fBg + be run once. + .\".SH BUGS + .SH AUTHOR +-Jörgen Hägg, Lund, Sweden . ++Jörgen Hägg, Lund, Sweden . + .SH FILES + .TP + .B @MACRODIR@/tmac.@TMAC_M_PREFIX@m +diff -Naurp contrib/mm/mse.tmac contrib/mm/mse.tmac +--- contrib/mm/mse.tmac 2000-11-16 20:26:02.000000000 -0800 ++++ contrib/mm/mse.tmac 2012-10-02 15:09:51.000000000 -0700 +@@ -9,7 +9,7 @@ + .ds App Bilaga + .ds Lf Figurer + .ds Lt Tabeller +-.ds Lx Uppställningar ++.ds Lx Uppställningar + .ds Le Ekvationer + .\" Page length + .if !r L .nr @pl 28.5c +@@ -23,18 +23,18 @@ + .pl \n[@pl]u + .ds Lifg Figur + .ds Litb Tabell +-.ds Liex Uppställning ++.ds Liex Uppställning + .ds Liec Ekvation +-.ds Licon Innehållsförteckning ++.ds Licon InnehÃ¥llsförteckning + .ds Qrf Se kapitel \\*[Qrfh], sidan \\*[Qrfp]. + .ds Rp Referenser +-.ds Letfc Vänliga hälsningar +-.ds Letapp Godkänd av: ++.ds Letfc Vänliga hälsningar ++.ds Letapp Godkänd av: + .ds Letdate datum + .ds Letconf KONFIDENTIELLT +-.ds Letsal Till vederbörande: ++.ds Letsal Till vederbörande: + .ds Letatt ATTENTION: +-.ds Letsubj Innehåll: ++.ds Letsubj InnehÃ¥ll: + .ds Letref Refererande till: + .\" + .ds Letns!copy Kopia \" space! +@@ -46,7 +46,7 @@ + .ds Letns!4 Atts. + .ds Letns!5 Enc. + .ds Letns!6 Encs. +-.ds Letns!7 Annat försättsblad ++.ds Letns!7 Annat försättsblad + .ds Letns!8 Brev till + .ds Letns!9 Dokument till + .ds Letns!10 Kopia (med atts.) till +@@ -79,13 +79,13 @@ + .ds LetKOMP + .\" Dokumentbeteckning eller dokumentnummer + .ds LetDBET +-.\" Beteckning (ärendebeteckning i form av diarienummer e.d. ++.\" Beteckning (ärendebeteckning i form av diarienummer e.d. + .ds LetBET Beteckning: + .\" Mottagarens beteckning. + .ds LetMBET Er beteckning: + .\" Antal sidor + .ds LetSIDOR +-.\" Svensk standard med högerställd löptext. --------------------- ++.\" Svensk standard med högerställd löptext. --------------------- + .de let@init_SVH + .in 4.57c + .ll 17.57c +@@ -98,7 +98,7 @@ + .. + .de let@fc_SVH + .. +-.\" Svensk standard med vänsterställd löptext. --------------------- ++.\" Svensk standard med vänsterställd löptext. --------------------- + .de let@init_SVV + .. + .de let@head_SVV +diff -Naurp contrib/mom/ChangeLog contrib/mom/ChangeLog +--- contrib/mom/ChangeLog 2005-08-10 21:19:16.000000000 -0700 ++++ contrib/mom/ChangeLog 2012-10-02 15:09:51.000000000 -0700 +@@ -509,7 +509,7 @@ o Added \*[RULE] ( = \l'\n(.lu' ) so tha + + o Macro .PS renamed to .PT_SIZE. Alias .TS removed. + +-o .tr bits in .CAPS rewritten in the form .tr é\[`E]. ++o .tr bits in .CAPS rewritten in the form .tr é\[`E]. + + o General cleanup of docs to reflect changes + +diff -Naurp contrib/mom/examples/README.txt contrib/mom/examples/README.txt +--- contrib/mom/examples/README.txt 2005-05-13 22:54:53.000000000 -0700 ++++ contrib/mom/examples/README.txt 2012-10-02 15:09:51.000000000 -0700 +@@ -94,7 +94,7 @@ rules for emacs. :) + + ***mom.vim*** + +-Christian V. J. Brüssow has kindly contributed a set of mom syntax ++Christian V. J. Brüssow has kindly contributed a set of mom syntax + highlighting rules for use with vim. Copy the file to your + ~/.vim/syntax directory, then, if your vim isn't already set up to + do so, enable mom syntax highlighting with +@@ -106,7 +106,7 @@ or + :syntax on + + Please note: I don't use vim, so I won't be making changes to this +-file myself. Christian Brüssow is the maintainer of the ruleset, ++file myself. Christian Brüssow is the maintainer of the ruleset, + which is available on the Web at + + http://www.cvjb.de/comp/vim/mom.vim +diff -Naurp contrib/mom/examples/letter.mom contrib/mom/examples/letter.mom +--- contrib/mom/examples/letter.mom 2002-06-07 14:19:47.000000000 -0700 ++++ contrib/mom/examples/letter.mom 2012-10-02 15:09:51.000000000 -0700 +@@ -5,7 +5,7 @@ + .DATE + August 25, 2004 + .TO +-GUILLAUME BARRIÈRES ++GUILLAUME BARRIÈRES + Minidoux Corporation + 5000 Pannes Drive + Redmond, Virginia +@@ -13,10 +13,10 @@ USA + .FROM + Y.P. GUIQUE + 022 Umask Road +-St-Sauveur-en-dehors-de-la-mappe, Québec ++St-Sauveur-en-dehors-de-la-mappe, Québec + CANADA + .GREETING +-Dear Mr. Barrières, ++Dear Mr. Barrières, + .PP + It has come to my attention that you have been lobbying the + US government to prohibit the use of open source software by +diff -Naurp contrib/mom/examples/typesetting.mom contrib/mom/examples/typesetting.mom +--- contrib/mom/examples/typesetting.mom 2004-06-03 23:43:07.000000000 -0700 ++++ contrib/mom/examples/typesetting.mom 2012-10-02 15:09:51.000000000 -0700 +@@ -74,27 +74,27 @@ and multi-columns" + \# + .TAB 1 \" Notice that this tab gets set line-for-line + \*[IT]Peelee Island \" Set italic +-\*[PREV]Gewürztraminer \" Revert to former font (roman) ++\*[PREV]Gewürztraminer \" Revert to former font (roman) + 2000 + (Canada) + .MCR \" Return to top of column + .TAB 2 \" Call tab 2; in multi-column mode, don't use .TN +-Jaune pâle. ++Jaune pâle. + .MCR + .TB 3 \" Notice that from here on, we use the alias TB instead of TAB +-Frais, fruité, ci\%tronné, arômes fortes de lichee et de fruits ++Frais, fruité, ci\%tronné, arômes fortes de lichee et de fruits + tropicaux. + .MCR + .TB 4 +-Doux, fruité, bien équilibré avec une bonne acidité. ++Doux, fruité, bien équilibré avec une bonne acidité. + .MCR + .TB 5 +-Bon apéro. Servir avec des plats ++Bon apéro. Servir avec des plats + .RW .1 \" Reduce Whitespace between letters to tighten this line + indiens ou \%chinois. + .RW 0 \" Back to normal spacing between letters + .BR +-Excellent rapport qualité/prix. ++Excellent rapport qualité/prix. + .MCX 8p \" Multi-column mode off; advance an extra 8 points + .MCO \" Re-invoke multi-columns for next wine description + .TB 1 +@@ -104,11 +104,11 @@ Excellent rapport qualité/prix. + (Uraguay) + .MCR + .TB 2 +-Rubis foncé, vio\%lacée, presque opaque. ++Rubis foncé, vio\%lacée, presque opaque. + .MCR + .TB 3 +-Belles arômes de fruits foncés (prunes, cerises noires, cassis). +-Odeurs tertiares de cuir, cèdre, violets, eucalyptus, avec une trace ++Belles arômes de fruits foncés (prunes, cerises noires, cassis). ++Odeurs tertiares de cuir, cèdre, violets, eucalyptus, avec une trace + exotique de Band-Aid*\*[BU 12]. + \# + \# The \*[BU 12], above, pulls the period back so that it falls +@@ -117,11 +117,11 @@ exotique de Band-Aid*\*[BU 12]. + \# + .MCR + .TB 4 +-Très rond, tannins mûres et veloutés, avec un long finis fruité et ++Très rond, tannins mûres et veloutés, avec un long finis fruité et + doucement alcoolique. + .MCR + .TB 5 +-Superbe\|! Une aubaine à ne pas manquer. Prêt à boire maintenant. ++Superbe\|! Une aubaine à ne pas manquer. Prêt à boire maintenant. + .MCX 1v \" Multi-columns off; advance an extra linespace + \# + \# Now, an example of a hanging indent. This is excessively fussy +diff -Naurp contrib/mom/momdoc/docelement.html contrib/mom/momdoc/docelement.html +--- contrib/mom/momdoc/docelement.html 2005-08-07 00:59:33.000000000 -0700 ++++ contrib/mom/momdoc/docelement.html 2012-10-02 15:09:51.000000000 -0700 +@@ -4357,7 +4357,7 @@ number of every blank page and keeps tra + stuff, but otherwise, does nothing. It's up to you, the user, to + figure out what to do with this feature. However, it's worth + noting that without it, inserting completely blank pages, to use +-a vernacular Québécois phrase, "c'est pas évident" ++a vernacular Québécois phrase, "c'est pas évident" + (somewhere between "isn't easy", "isn't + obvious" and "isn't fun"). +

    +diff -Naurp contrib/mom/momdoc/docprocessing.html contrib/mom/momdoc/docprocessing.html +--- contrib/mom/momdoc/docprocessing.html 2005-08-07 00:59:33.000000000 -0700 ++++ contrib/mom/momdoc/docprocessing.html 2012-10-02 15:09:51.000000000 -0700 +@@ -239,7 +239,7 @@ draft-style, etc). Thirdly, you make as + mom's default behaviour as you wish. Lastly, you + invoke the + START +-macro. Voilà! You're ready to write. ++macro. Voilà! You're ready to write. +

    +


    + +@@ -826,7 +826,7 @@ telling her what it is with the + macro, like this: +

    +

    +-	.CHAPTER_STRING "Chapître"
    ++	.CHAPTER_STRING "Chapître"
    + 
    + + You can also use CHAPTER_STRING if you want +@@ -989,7 +989,7 @@ thereof, in your own language by telling + REVISION_STRING macro, like this: +

    +

    +-	.REVISION_STRING "Rév."
    ++	.REVISION_STRING "Rév."
    + 
    + + Additionally, you may sometimes want to make use of +diff -Naurp contrib/mom/momdoc/goodies.html contrib/mom/momdoc/goodies.html +--- contrib/mom/momdoc/goodies.html 2005-08-07 00:59:33.000000000 -0700 ++++ contrib/mom/momdoc/goodies.html 2012-10-02 15:09:51.000000000 -0700 +@@ -289,7 +289,7 @@ right, and closes them with guillemets p + this ascii approximation: +

    +

    +-	>>Zurück !<<
    ++	>>Zurück !<<
    + 
    + + << opens quotes with guillemets pointing to the +@@ -312,10 +312,10 @@ and mom will output the +
    + 	.SMARTQUOTES DA     = Danish      >>text<<
    + 	.SMARTQUOTES DE     = German      ,,text``
    +-	.SMARTQUOTES ES     = Spanish     ``text´´
    ++	.SMARTQUOTES ES     = Spanish     ``text´´
    + 	.SMARTQUOTES FR     = French      << text >>
    + 	.SMARTQUOTES IT     = Italian     << text >>
    +-	.SMARTQUOTES NL     = Dutch       ´´text´´
    ++	.SMARTQUOTES NL     = Dutch       ´´text´´
    + 	.SMARTQUOTES NO     = Norwegian   <<text>>
    + 	.SMARTQUOTES PT     = Portuguese  <<text>>
    + 	.SMARTQUOTES SV     = Swedish     >>text>>
    +diff -Naurp contrib/mom/momdoc/headfootpage.html contrib/mom/momdoc/headfootpage.html
    +--- contrib/mom/momdoc/headfootpage.html	2005-08-07 00:59:33.000000000 -0700
    ++++ contrib/mom/momdoc/headfootpage.html	2012-10-02 15:09:51.000000000 -0700
    +@@ -768,7 +768,7 @@ And last, you'd do:
    + 	.START
    + 
    + +-Voilà! Any argument you pass to TITLE from here ++Voilà! Any argument you pass to TITLE from here + on in (say, for subsequent documents) is back in the header centre + position. Here's the whole routine again: +

    +diff -Naurp contrib/mom/momdoc/inlines.html contrib/mom/momdoc/inlines.html +--- contrib/mom/momdoc/inlines.html 2005-05-13 22:54:53.000000000 -0700 ++++ contrib/mom/momdoc/inlines.html 2012-10-02 15:09:51.000000000 -0700 +@@ -206,8 +206,8 @@ of the rest of the line. +

    + + NOTE: If you're accustomed to groff's usual way +-of handling inline size requests (\sN, \s±N, \s(NN, \s±(NN, +-\s[NNN], \s±[NNN]), feel free to continue with your old habits. ++of handling inline size requests (\sN, \s±N, \s(NN, \s±(NN, ++\s[NNN], \s±[NNN]), feel free to continue with your old habits. + Mom doesn't care. +

    + +diff -Naurp contrib/mom/momdoc/letters.html contrib/mom/momdoc/letters.html +--- contrib/mom/momdoc/letters.html 2005-05-13 22:54:53.000000000 -0700 ++++ contrib/mom/momdoc/letters.html 2012-10-02 15:09:51.000000000 -0700 +@@ -118,16 +118,16 @@ here's what the complete letter looks li + .DATE + August 25, 2004 + .TO +- GUILLAUME BARRIÈRES ++ GUILLAUME BARRIÈRES + Minidoux Corporation + 5000 Pannes Drive + Redmond, Virginia + .FROM + Y.P. GUIQUE + 022 Umask Road +- St-Sauveur-en-dehors-de-la-mappe, Québec ++ St-Sauveur-en-dehors-de-la-mappe, Québec + .GREETING +- Dear Mr. Barrières, ++ Dear Mr. Barrières, + .PP + It has come to my attention that you have been lobbying the + US government to prohibit the use of open source software by +@@ -160,9 +160,9 @@ same letter like this: + .RIGHT + Y.P. GUIQUE + 022 Umask Road +- St-Sauveur-en-dehors-de-la-mappe, Québec ++ St-Sauveur-en-dehors-de-la-mappe, Québec + .TO +- GUILLAUME BARRIÈRES ++ GUILLAUME BARRIÈRES + Minidoux Corporation + 5000 Pannes Drive + Redmond, Virginia +@@ -170,7 +170,7 @@ same letter like this: + .RIGHT + August 25, 2004 + .GREETING +- Dear Mr. Barrières, ++ Dear Mr. Barrières, +

    + + Notice the use of .RIGHT after +@@ -379,7 +379,7 @@ and address of the addresser underneath, + .FROM + JOE BLOW + 15 Brunette Road +- Ste-Vieille-Andouille, Québec ++ Ste-Vieille-Andouille, Québec +
    + + If you wish to change the default quad direction for the address, +@@ -394,7 +394,7 @@ address, not at the top of the next head + .FROM + JOE BLOW + 15 Brunette Road +- Ste-Vieille-Andouille, Québec ++ Ste-Vieille-Andouille, Québec + .SPACE \" Or, more simply, .SP + + +diff -Naurp contrib/mom/momdoc/typesetting.html contrib/mom/momdoc/typesetting.html +--- contrib/mom/momdoc/typesetting.html 2005-08-07 00:59:33.000000000 -0700 ++++ contrib/mom/momdoc/typesetting.html 2012-10-02 15:09:51.000000000 -0700 +@@ -111,7 +111,7 @@ the same thing. + package, independent of the + document processing macros. + With them, you can typeset on-the-fly. Book covers, your best +-friend's résumé, a poster for a lost dog--none of these requires ++friend's résumé, a poster for a lost dog--none of these requires + structured document processing (page headers, paragraphs, heads, + footnotes, etc). What they do demand is precise control over every + element on the page. The typesetting macros give you that control. +@@ -3815,7 +3815,7 @@ line length. In many instances where in + it's better to use tabs, or actually change the left margin or the + line length. Mom's indenting macros are flexible + and powerful, but easy to get tangled up in. Personally, I don't +-use them much, except for cutarounds and multi-level lists à la html, ++use them much, except for cutarounds and multi-level lists à la html, + at which they excel. +

    + NOTE: see the section +diff -Naurp contrib/mom/momdoc/using.html contrib/mom/momdoc/using.html +--- contrib/mom/momdoc/using.html 2005-05-13 22:54:53.000000000 -0700 ++++ contrib/mom/momdoc/using.html 2012-10-02 15:09:51.000000000 -0700 +@@ -218,7 +218,7 @@ the file inside gv. Ev + look at any changes I make, I simply tell elvis to work his magic + again. The Watch File option in gv registers that + the file has changed, and automatically loads the new version. +-Voilà! --instant previewing. ++Voilà! --instant previewing. + +

    +


    +diff -Naurp contrib/mom/om.tmac contrib/mom/om.tmac +--- contrib/mom/om.tmac 2005-08-07 00:59:33.000000000 -0700 ++++ contrib/mom/om.tmac 2012-10-02 15:09:51.000000000 -0700 +@@ -23,7 +23,7 @@ Foundation, 51 Franklin Street, Fifth Fl + + Version 1.3-a + ------------- +-Antoine de St-Exupéry asserted that elegance in engineering is ++Antoine de St-Exupéry asserted that elegance in engineering is + achieved not when there is nothing left to add, but when there is + nothing left to take away. + +@@ -3250,72 +3250,72 @@ can use HI. + .MAC CAPS END + . ie '\\$1'' \{\ + . tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ +-. tr à\[`A] +-. tr â\[^A] +-. tr á\['A] +-. tr ä\[:A] +-. tr å\[oA] +-. tr ã\[~A] +-. tr æ\[AE] +-. tr è\[`E] +-. tr ê\[^E] +-. tr é\['E] +-. tr ë\[:E] +-. tr ì\[`I] +-. tr î\[^I] +-. tr í\['I] +-. tr ï\[:I] +-. tr ò\[`O] +-. tr ô\[^O] +-. tr ó\['O] +-. tr ö\[:O] +-. tr õ\[~O] +-. tr ø\[/O] +-. tr ù\[`U] +-. tr û\[^U] +-. tr ú\['U] +-. tr ü\[:U] +-. tr ç\[,C] +-. tr ð\[-D] +-. tr ñ\[~N] +-. tr þ\[TP] +-. tr ý\['Y] +-. tr ÿ\[:Y] ++. tr à\[`A] ++. tr â\[^A] ++. tr á\['A] ++. tr ä\[:A] ++. tr Ã¥\[oA] ++. tr ã\[~A] ++. tr æ\[AE] ++. tr è\[`E] ++. tr ê\[^E] ++. tr é\['E] ++. tr ë\[:E] ++. tr ì\[`I] ++. tr î\[^I] ++. tr í\['I] ++. tr ï\[:I] ++. tr ò\[`O] ++. tr ô\[^O] ++. tr ó\['O] ++. tr ö\[:O] ++. tr õ\[~O] ++. tr ø\[/O] ++. tr ù\[`U] ++. tr û\[^U] ++. tr ú\['U] ++. tr ü\[:U] ++. tr ç\[,C] ++. tr ð\[-D] ++. tr ñ\[~N] ++. tr þ\[TP] ++. tr ý\['Y] ++. tr ÿ\[:Y] + . nr #CAPS_ON 1 + . \} + . el \{\ + . tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz +-. tr à\[`a] +-. tr â\[^a] +-. tr á\['a] +-. tr ä\[:a] +-. tr å\[oa] +-. tr ã\[~a] +-. tr æ\[ae] +-. tr è\[`e] +-. tr ê\[^e] +-. tr é\['e] +-. tr ë\[:e] +-. tr ì\[`i] +-. tr î\[^i] +-. tr í\['i] +-. tr ï\[:i] +-. tr ò\[`o] +-. tr ô\[^o] +-. tr ó\['o] +-. tr ö\[:o] +-. tr õ\[~o] +-. tr ø\[/o] +-. tr ù\[`u] +-. tr û\[^u] +-. tr ú\['u] +-. tr ü\[:u] +-. tr ç\[,c] +-. tr ð\[Sd] +-. tr ñ\[~n] +-. tr þ\[Tp] +-. tr ý\['y] +-. tr ÿ\[:y] ++. tr à\[`a] ++. tr â\[^a] ++. tr á\['a] ++. tr ä\[:a] ++. tr Ã¥\[oa] ++. tr ã\[~a] ++. tr æ\[ae] ++. tr è\[`e] ++. tr ê\[^e] ++. tr é\['e] ++. tr ë\[:e] ++. tr ì\[`i] ++. tr î\[^i] ++. tr í\['i] ++. tr ï\[:i] ++. tr ò\[`o] ++. tr ô\[^o] ++. tr ó\['o] ++. tr ö\[:o] ++. tr õ\[~o] ++. tr ø\[/o] ++. tr ù\[`u] ++. tr û\[^u] ++. tr ú\['u] ++. tr ü\[:u] ++. tr ç\[,c] ++. tr ð\[Sd] ++. tr ñ\[~n] ++. tr þ\[Tp] ++. tr ý\['y] ++. tr ÿ\[:y] + . rr #CAPS_ON + . \} + .END +diff -Naurp doc/groff-1 doc/groff-1 +--- doc/groff-1 2005-09-04 03:16:17.000000000 -0700 ++++ doc/groff-1 2012-10-02 15:09:52.000000000 -0700 +@@ -176,7 +176,7 @@ changes). + transform certain parts of a document into `troff', which made a very + natural use of pipes in UNIX. + +- The `eqn' preprocessor allowed mathematical formulæ to be specified ++ The `eqn' preprocessor allowed mathematical formulæ to be specified + in a much simpler and more intuitive manner. `tbl' is a preprocessor + for formatting tables. The `refer' preprocessor (and the similar + program, `bib') processes citations in a document according to a +@@ -3215,7 +3215,7 @@ macro: + Upside-down exclamation point. + + -- String: \*[8] +- German ß ligature. ++ German ß ligature. + + -- String: \*[3] + Yogh. +@@ -3236,10 +3236,10 @@ macro: + Hooked o. + + -- String: \*[ae] +- Lowercase æ ligature. ++ Lowercase æ ligature. + + -- String: \*[Ae] +- Uppercase Æ ligature. ++ Uppercase Æ ligature. + +  + File: groff, Node: ms Strings and Special Characters-Footnotes, Up: ms Strings and Special Characters +@@ -4214,7 +4214,7 @@ makes e.g. + + + in Paris +- => A café in Paris ++ => A café in Paris + + possible, but it is better not to use this feature to avoid confusion. + +@@ -5189,21 +5189,21 @@ Here a description of requests which inf + for. Words which contain other letters won't be hyphenated + properly if the corresponding hyphenation patterns actually do + contain them. For example, the following `hcode' requests are +- necessary to assign hyphenation codes to the letters `ÄäÖöÜüß' ++ necessary to assign hyphenation codes to the letters `ÄäÖöÜüß' + (this is needed for German): + + +- .hcode ä ä Ä ä +- .hcode ö ö Ö ö +- .hcode ü ü Ü ü +- .hcode ß ß ++ .hcode ä ä Ä ä ++ .hcode ö ö Ö ö ++ .hcode ü ü Ãœ ü ++ .hcode ß ß + + Without those assignments, groff treats German words like +- `Kindergärten' (the plural form of `kindergarten') as two ++ `Kindergärten' (the plural form of `kindergarten') as two + substrings `kinderg' and `rten' because the hyphenation code of + the umlaut a is zero by default. There is a German hyphenation + pattern which covers `kinder', so groff finds the hyphenation +- `kin-der'. The other two hyphenation points (`kin-der-gär-ten') ++ `kin-der'. The other two hyphenation points (`kin-der-gär-ten') + are missed. + + This request is ignored if it has no parameter. +@@ -5912,9 +5912,9 @@ Internals::, for more on this process). + Consider the following translation: + + +- .tr éÉ ++ .tr éÉ + +- This maps input character `é' onto glyph `É', which is ++ This maps input character `é' onto glyph `É', which is + identical to glyph `char201'. But this glyph intentionally + doesn't exist! Instead, `\[char201]' is treated as an input + character entity and is by default mapped onto `\['E]', and +@@ -5923,7 +5923,7 @@ Internals::, for more on this process). + The right way to write the above translation is + + +- .tr é\['E] ++ .tr é\['E] + + With other words, the first argument of `tr' should be an + input character or entity, and the second one a glyph entity. +diff -Naurp doc/groff-2 doc/groff-2 +--- doc/groff-2 2005-09-04 03:16:17.000000000 -0700 ++++ doc/groff-2 2012-10-02 15:09:52.000000000 -0700 +@@ -1602,7 +1602,7 @@ real glyph `foo'. + .. + .cp 0 \" switch compatibility mode off + .xx caf\['e] +- => café ++ => café + + Since compatibility mode is on while `de' is called, the macro `xx' + activates compatibility mode while executing. Argument `$1' can still +diff -Naurp doc/groff.texinfo doc/groff.texinfo +--- doc/groff.texinfo 2005-09-04 02:42:19.000000000 -0700 ++++ doc/groff.texinfo 2012-10-02 15:09:52.000000000 -0700 +@@ -434,27 +434,27 @@ Software Foundation raise funds for GNU + @c We map some latin-1 characters to corresponding texinfo macros. + + @tex +-\global\catcode`^^e4\active % ä ++\global\catcode`^^e4\active % ä + \gdef^^e4{\"a} +-\global\catcode`^^c4\active % Ä ++\global\catcode`^^c4\active % Ä + \gdef^^c4{\"A} +-\global\catcode`^^e9\active % é ++\global\catcode`^^e9\active % é + \gdef^^e9{\'e} +-\global\catcode`^^c9\active % É ++\global\catcode`^^c9\active % É + \gdef^^c9{\'E} +-\global\catcode`^^f6\active % ö ++\global\catcode`^^f6\active % ö + \gdef^^f6{\"o} +-\global\catcode`^^d6\active % Ö ++\global\catcode`^^d6\active % Ö + \gdef^^d6{\"O} +-\global\catcode`^^fc\active % ü ++\global\catcode`^^fc\active % ü + \gdef^^fc{\"u} +-\global\catcode`^^dc\active % Ü ++\global\catcode`^^dc\active % Ãœ + \gdef^^dc{\"U} +-\global\catcode`^^e6\active % æ ++\global\catcode`^^e6\active % æ + \gdef^^e6{\ae} +-\global\catcode`^^c6\active % Æ ++\global\catcode`^^c6\active % Æ + \gdef^^c6{\AE} +-\global\catcode`^^df\active % ß ++\global\catcode`^^df\active % ß + \gdef^^df{\ss} + @end tex + +@@ -668,7 +668,7 @@ Since there are several things which can + transform certain parts of a document into @code{troff}, which made a + very natural use of pipes in @acronym{UNIX}. + +-The @code{eqn} preprocessor allowed mathematical formulæ to be ++The @code{eqn} preprocessor allowed mathematical formulæ to be + specified in a much simpler and more intuitive manner. @code{tbl} is a + preprocessor for formatting tables. The @code{refer} preprocessor (and + the similar program, @code{bib}) processes citations in a document +@@ -4254,7 +4254,7 @@ Upside-down exclamation point. + @endDefstr + + @Defstr {8, ms} +-German ß ligature. ++German ß ligature. + @endDefstr + + @Defstr {3, ms} +@@ -4282,11 +4282,11 @@ Hooked o. + @endDefstr + + @Defstr {ae, ms} +-Lowercase æ ligature. ++Lowercase æ ligature. + @endDefstr + + @Defstr {Ae, ms} +-Uppercase Æ ligature. ++Uppercase Æ ligature. + @endDefstr + + @c --------------------------------------------------------------------- +@@ -5611,7 +5611,7 @@ e\' + + + in Paris +- @result{} A café in Paris ++ @result{} A café in Paris + @endExample + + @noindent +@@ -6959,23 +6959,23 @@ same way as the word `foo' is hyphenated + is good for. Words which contain other letters won't be hyphenated + properly if the corresponding hyphenation patterns actually do contain + them. For example, the following @code{hcode} requests are necessary to +-assign hyphenation codes to the letters @samp{ÄäÖöÜüß} (this is needed ++assign hyphenation codes to the letters @samp{ÄäÖöÜüß} (this is needed + for German): + + @Example +-.hcode ä ä Ä ä +-.hcode ö ö Ö ö +-.hcode ü ü Ü ü +-.hcode ß ß ++.hcode ä ä Ä ä ++.hcode ö ö Ö ö ++.hcode ü ü Ãœ ü ++.hcode ß ß + @endExample + + Without those assignments, groff treats German words like +-@w{`Kindergärten'} (the plural form of `kindergarten') as two ++@w{`Kindergärten'} (the plural form of `kindergarten') as two + substrings @w{`kinderg'} and @w{`rten'} because the hyphenation code + of the umlaut@tie{}a is zero by default. There is a German + hyphenation pattern which covers @w{`kinder'}, so groff finds the + hyphenation `kin-der'. The other two hyphenation points +-(`kin-der-gär-ten') are missed. ++(`kin-der-gär-ten') are missed. + + This request is ignored if it has no parameter. + @endDefreq +@@ -7849,11 +7849,11 @@ if the @code{tr} request isn't handled p + Consider the following translation: + + @Example +-.tr éÉ ++.tr éÉ + @endExample + + @noindent +-This maps input character @code{é} onto glyph @code{É}, which is ++This maps input character @code{é} onto glyph @code{É}, which is + identical to glyph @code{char201}. But this glyph intentionally + doesn't exist! Instead, @code{\[char201]} is treated as an input + character entity and is by default mapped onto @code{\['E]}, and +@@ -7862,7 +7862,7 @@ character entity and is by default mappe + The right way to write the above translation is + + @Example +-.tr é\['E] ++.tr é\['E] + @endExample + + @noindent +@@ -13379,7 +13379,7 @@ Macro and request arguments preserve the + .. + .cp 0 \" switch compatibility mode off + .xx caf\['e] +- @result{} café ++ @result{} café + @endExample + + @noindent +diff -Naurp src/devices/grolbp/grolbp.man src/devices/grolbp/grolbp.man +--- src/devices/grolbp/grolbp.man 2002-09-23 02:52:25.000000000 -0700 ++++ src/devices/grolbp/grolbp.man 2012-10-02 15:09:57.000000000 -0700 +@@ -20,7 +20,7 @@ versions, except that this permission no + translations approved by the Free Software Foundation instead of in + the original English. + +-Modified by Francisco Andrés Verdú for the grolbp ++Modified by Francisco Andrés Verdú for the grolbp + program. + .. + .de TQ +diff -Naurp src/devices/grolbp/lbp.cpp src/devices/grolbp/lbp.cpp +--- src/devices/grolbp/lbp.cpp 2005-05-27 22:38:28.000000000 -0700 ++++ src/devices/grolbp/lbp.cpp 2012-10-02 15:09:57.000000000 -0700 +@@ -1,7 +1,7 @@ + // -*- C++ -*- + /* Copyright (C) 1994, 2000, 2001, 2002, 2003, 2004, 2005 + Free Software Foundation, Inc. +- Written by Francisco Andrés Verdú with many ideas ++ Written by Francisco Andrés Verdú with many ideas + taken from the other groff drivers. + + +diff -Naurp src/devices/grolbp/lbp.h src/devices/grolbp/lbp.h +--- src/devices/grolbp/lbp.h 2005-05-27 22:39:34.000000000 -0700 ++++ src/devices/grolbp/lbp.h 2012-10-02 15:09:57.000000000 -0700 +@@ -1,7 +1,7 @@ + // -*- C -*- + /* Copyright (C) 1994, 2000, 2001, 2003, 2004, 2005 + Free Software Foundation, Inc. +- Written by Francisco Andrés Verdú ++ Written by Francisco Andrés Verdú + + groff is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free diff --git a/src/contrib/mm/m.tmac b/src/contrib/mm/m.tmac deleted file mode 100644 index 4b9c7f3..0000000 --- a/src/contrib/mm/m.tmac +++ /dev/null @@ -1,3536 +0,0 @@ -.\" -.de @revision -.ds RE \\$2 -.. -.\" -.\" $Id: m.tmac,v 2.26 2005/05/26 06:28:38 wl Exp $ -.@revision $Revision: 2.26 $ -.ig - -Copyright (C) 1991-2000, 2001, 2002, 2003, 2004, 2005 - Free Software Foundation, Inc. -mgm is written by Jörgen Hägg - -mgm is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 2, or (at your option) any later -version. - -mgm is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License along -with groff; see the file COPYING. If not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. - -Please send bugreports with examples to jh@axis.com. - -Naming convention stolen from mgs. -Local names module*name -Extern names module@name -Env.var environ:name -Index array!index -.. -.if !\n(.g .ab These mm macros require groff. -.do if d PH .nx -.if \n(.C .ab The groff mm macros do not work in compatibility mode. -.if (\n[.warn] == 65543) .warn -.mso devtag.tmac -.\" ######## init ####### -.\" Contents level [0:14], contents saved if heading level <= Cl -.nr Cl 2 -.\" Eject page between LIST OF XXXX if Cp == 0 -.nr Cp 0 -.\" Debugflag -.if !r D .nr D 0 -.\" Eject after floating display is output [0:1] -.nr De 0 -.\" Floating keep output [0;5] -.nr Df 5 -.\" space before and after display if == 1 [0:1] -.nr Ds 1 -.\" Eject page -.nr Ej 0 -.\" Equation label adjust 0=left, 1=right -.nr Eq 0 -.\" Em dash string -.ie n .ds EM " -- -.el .ds EM \(em -.\" Footnote spacing -.nr Fs 1 -.\" H1-H7 heading counters -.nr H1 0 1 -.nr H2 0 1 -.nr H3 0 1 -.nr H4 0 1 -.nr H5 0 1 -.nr H6 0 1 -.nr H7 0 1 -.nr H8 0 1 -.nr H9 0 1 -.nr H10 0 1 -.nr H11 0 1 -.nr H12 0 1 -.nr H13 0 1 -.nr H14 0 1 -.\" Heading break level [0:14] -.nr Hb 2 -.\" heading centering level, [0:14] -.nr Hc 0 -.\" header format -.ds HF 2 2 2 2 2 2 2 2 2 2 2 2 2 2 -.\" heading temp. indent [0:2] -.\" 0 -> 0 indent, left margin -.\" 1 -> indent to right , like .P 1 -.\" 2 -> indent to line up with text part of preceding heading -.nr Hi 1 -.\" header pointsize -.ds HP 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -.\" heading space level [0:14] -.nr Hs 2 -.\" heading numbering type -.\" 0 -> multiple (1.1.1 ...) -.\" 1 -> single -.nr Ht 0 -.\" Unnumbered heading level -.nr Hu 2 -.\" hyphenation in body -.\" 0 -> no hyphenation -.\" 1 -> hyphenation 14 on -.nr Hy 0 -.\" text for toc, selfexplanatory. Look in the new variable section -.ds Lf LIST OF FIGURES -.nr Lf 1 -.ds Lt LIST OF TABLES -.nr Lt 1 -.ds Lx LIST OF EXHIBITS -.nr Lx 1 -.ds Le LIST OF EQUATIONS -.nr Le 0 -.\" List indent, used by .AL -.nr Li 6 -.\" List space, if listlevel > Ls then no spacing will occur around lists. -.nr Ls 99 -.\" Numbering style [0:5] -.if !r N .nr N 0 -.\" numbered paragraphs -.\" 0 == not numbered -.\" 1 == numbered in first level headings. -.nr Np 0 -.\" Format of figure,table,exhibit,equation titles. -.\" 0= ". ", 1=" - " -.nr Of 0 -.\" Table of contents page numbering style -.nr Oc 0 -.\" Page-number, normally same as %. -.nr P 0 -.\" paragraph indent -.nr Pi 5 -.\" paragraph spacing -.nr Ps 1 -.\" paragraph type -.\" 0 == left-justified -.\" 1 == indented .P -.\" 2 == indented .P except after .H, .DE or .LE. -.nr Pt 0 -.\" Reference title -.ds Rp REFERENCES -.\" Display indent -.nr Si 5 -.\" -.\" Current state of TOC, empty outside TC, inside -.\" it will be set to co,fg,tb,ec,ex or ap. -.ds Tcst -.\" -.ds Tm \(tm -.\" -.\"--------------------------------------------- -.\" Internal global variables -.\" -.\" This is for cover macro .MT -.\" .ds @language -.\" -.nr @copy_type 0 -.if r C .nr @copy_type \n[C] -.\" >0 if Subject/Date/From should be bold, roman otherwise -.ie n .ds @sdf_font R -.el .ds @sdf_font B -.if \n[@copy_type]=4 \{\ -. ls 2 -. nr Pi 10 -. nr Pt 1 -.\} -.\" -.\" -.if r E \{\ -. ie \n[E] .ds @sdf_font B -. el .ds @sdf_font R -.\} -.\" -.\" Current pointsize and vertical space, always in points. -.if !r S .nr S 10 -.ps \n[S] -.vs \n[S]+2 -.\" -.nr @ps \n[.ps] -.nr @vs \n[.v] -.if \n[D]>1 .tm @ps=\n[@ps], @vs=\n[@vs] -.if \n[D]>3 .tm INIT: l:\n[.l] p:\n[.p] o:\n[.o] -.\" -.\" Page length -.if r L \{\ -. ie n .pl \n[L]u -. el .pl \n[L]u -.\} -.nr @pl \n[.p] -.\" -.\" page width -.ie r W \{\ -. ie n .ll \n[W]u -. el .ll \n[W]u -.\} -.el .ll 6i -.nr @ll \n[.l] -.nr @cur-ll \n[@ll] -.lt \n[@ll]u -.\" -.\" page offset -.ie r O .po \n[O]u -.el \{\ -. ie n .po .75i -. el .po .963i -.\} -.\" -.nr @po \n[.o] -.\" -.\" non-zero if escape mechanism is turned off. Used by VERBON/OFF -.nr @verbose-flag 0 -.\"--------------------------------------------- -.\" New variables -.\" -.\" Appendix name -.ds App APPENDIX -.\" print appendixheader, 0 == don't -.nr Aph 1 -.\" -.\" Current appendix text -.ds Apptext -.\" Controls the space before and after static displays if defined. -.\" Lsp is used otherwise -.\" .nr Dsp 1v -.\" -.\" Add a dot after level one heading number if >0 -.nr H1dot 1 -.\" -.\" header prespace level. If level <= Hps, then two lines will be printed -.\" before the header instead of one. -.nr Hps 1 -.\" -.\" These variables controls the number of lines preceding .H. -.\" Hps1 is the number of lines when level > Hps -.nr Hps1 0.5v -.if n .nr Hps1 1v -.\" -.\" Hps2 is the number of lines when level <= Hps -.nr Hps2 1v -.if n .nr Hps2 2v -.\" -.\" Hss is the number of lines (Lsp) after the header. -.nr Hss 1 -.\" -.\" H1txt will be updated by .H and .HU, containing the heading text. -.\" Will also be updated in table of contents & friends -.\" -.ds H1txt -.\" -.\" header text for the index -.ds Index INDEX -.\" command to sort the index -.ds Indcmd sort -.\" -.\" flag for mkindex -.if !r Idxf .nr Idxf 0 -.\" Change these in the national configuration file -.ds Lifg Figure -.ds Litb TABLE -.ds Liex Exhibit -.ds Liec Equation -.ds Licon CONTENTS -.\" Flag for space between mark and prefix 1==space, 0==no space -.\" Can also be controlled by using '.LI mark 2' -.nr Limsp 1 -.\" -.\" Lsp controls the height of an empty line. Normally 0.5v -.\" Normally used for nroff compatibility. -.nr Lsp 0.5v -.if n .nr Lsp 1v -.ds MO1 January -.ds MO2 February -.ds MO3 March -.ds MO4 April -.ds MO5 May -.ds MO6 June -.ds MO7 July -.ds MO8 August -.ds MO9 September -.ds MO10 October -.ds MO11 November -.ds MO12 December -.\" for GETR -.ds Qrf See chapter \\*[Qrfh], page \\*[Qrfp]. -.\" -.\" header- and footer-size will only change to the current -.\" if Pgps is > 0. -.nr Pgps 1 -.\" -.\" section-page if Sectp > 0 -.nr Sectp 0 -.if (\n[N]=3):(\n[N]=5) \{\ -. nr Sectp 1 -. nr Ej 1 -.\} -.\" section-figure if Sectf > 0 -.nr Sectf 0 -.if \n[N]=5 .nr Sectf 1 -.\" -.\" argument to .nm in .VERBON. -.ds Verbnm "1 -.\" indent for VERBON -.nr Verbin 5n -.\" -.\" Letter section -.\" Formal closing (.FC) -.ds Letfc Yours very truly, -.\" -.\" Approval line -.ds Letapp APPROVED: -.\" Approval date-string -.ds Letdate Date -.\" -.ds LetCN CONFIDENTIAL\" Confidential default -.ds LetSA To Whom It May Concern:\" Salutation default -.ds LetAT ATTENTION:\" Attention string -.ds LetSJ SUBJECT:\" Subject string -.ds LetRN In reference to:\" Reference string -.\" -.\" Copy to (.NS) -.ds Letnsdef 0 -.ds Letns!copy Copy \" space! -.ds Letns!to " to -.ds Letns!0 Copy to -.ds Letns!1 Copy (with att.) to -.ds Letns!2 Copy (without att.) to -.ds Letns!3 Att. -.ds Letns!4 Atts. -.ds Letns!5 Enc. -.ds Letns!6 Encs. -.ds Letns!7 Under separate cover -.ds Letns!8 Letter to -.ds Letns!9 Memorandum to -.ds Letns!10 Copy (with atts.) to -.ds Letns!11 Copy (without atts.) to -.ds Letns!12 Abstract Only to -.ds Letns!13 Complete Memorandum to -.ds Letns!14 CC: -.\" -.\" Text printed below the footer. Controlled by @copy_type (C). -.ds Pg_type!0 -.ds Pg_type!1 OFFICIAL FILE COPY -.ds Pg_type!2 DATE FILE COPY -.ds Pg_type!3 D\ R\ A\ F\ T -.ds Pg_type!4 D\ R\ A\ F\ T -.\" Max lines in return address -.nr Letwam 14 -.\"-------------------------- -.\" test for mgm macro. This can be used if the text must test -.\" what macros is used. -.nr .mgm 1 -.\" -.\" Due to security problems with groff I had to rewrite -.\" the reference system. It's not as elegant as before, you -.\" have to run groff with '-z -rRef=1' and put stderr into the filename -.\" for .INITR -.\" -.\" Output references to stderr if non-zero -.ie !r Ref \{\ -. nr Ref 0 -.\} -.el .warn 0 -.\" -.\"--------------------------------------------- -.\" set local variables. -.ie d @language .mso mm/\*[@language]_locale -.el .mso mm/locale -.\"--------------------------------------------- -.if \n[D] .tm Groff mm, version \*[RE]. -.\" ####### module init ###### -.\" reset all things -.de init@reset -.ie \\n[misc@adjust] 'ad -.el 'na -.ie \\n[Hy] 'hy 14 -.el 'nh -'in 0 -'ti 0 -.ps \\n[@ps]u -.vs \\n[@vs]u -.. -.de @warning -'tm WARNING:(\\n[.F]) input line \\n[.c]:\\$* -.if \\n[D] .backtrace -.. -.de @error -'tm ****************** -'tm ERROR:(\\n[.F]) input line \\n[.c]:\\$* -.if \\n[D] .backtrace -'tm ****************** -.ab "Input aborted, syntax error" -.. -.de misc@toupper -.tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ -.br -\\$1 -.tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz -.br -.. -.\" ####### module debug ################################# -.de debug -'tm \\$1:\\n[.F]:\\n[c.] ll=\\n[.l] vs=\\n[.v] ps=\\n[.s],\\n[.ps] \ -in=\\n[.i] fi=\\n[.u] .d=\\n[.d] nl=\\n[nl] pg=\\n[%] -.. -.de debug-all -.nr debug*n 1n -.nr debug*m 1m -'tm \\$1:\\n[.F]:\\n[c.] ll=\\n[.l] vs=\\n[.v] ps=\\n[.s] in=\\n[.i]\ - ad=\\n[.j] fi=\\n[.u] pl=\\n[.p] page=\\n[%] .o=\\n[.o] -'tm _______ .d=\\n[.d] .f=\\n[.f] .h=\\n[.h] .k=\\n[.k] .n=\\n[.n]\ - .p=\\n[.p] .t=\\n[.t] .z=\\n[.z] nl=\\n[nl] dn=\\n[dn] n=\\n[debug*n] -.. -.\" ####### module par ################################# -.nr par@ind-flag 1 \" indent on following P if Pt=2 -.nr hd*last-pos -1 -.nr hd*last-hsize -1 -.nr par*number 0 1 -.af par*number 01 -.nr par*number2 0 1 -.af par*number2 01 -.nr par*num-count 0 1 -.af par*num-count 01 -.\" reset numbered paragraphs, arg1 = headerlevel -.de par@reset-num -.if \\$1<3 .nr par*num-count 0 -.if (\\$1=1)&(\\n[Np]=1) .nr par*number 0 -.. -.\"------------ -.\" paragraph -.de P -.\" skip P if previous heading -.if \\n[D]>2 \{\ -. tm Paragraph nl=\\n[nl], last=\\n[hd*last-pos] -. tm Paragraph .k=\\n[.k], hsize=\\n[hd*last-hsize] -.\} -.if !((\\n[nl]=\\n[hd*last-pos]):(\\n[hd*last-hsize]=\\n[.k])) \{\ -. if \\n[D]>2 .tm Paragraph set ind-flag=1 -. nr par@ind-flag 1 -.\} -.\" any collected unprinted text? -.par@doit \\$* -.if \\n[Np] \\n[H1].\\n+[par*number]\ \ \c -.. -.\"------------ -.de nP -.\" skip P if previous heading -.if \\n[D]>2 \{\ -. tm Paragraph nl=\\n[nl], last=\\n[hd*last-pos] -. tm Paragraph .k=\\n[.k], hsize=\\n[hd*last-hsize] -.\} -.if !((\\n[nl]=\\n[hd*last-pos]):(\\n[hd*last-hsize]=\\n[.k])) \{\ -. if \\n[D]>2 .tm Paragraph set ind-flag=1 -. nr par@ind-flag 1 -.\} -.par@doit \\$* -\\n[H2].\\n+[par*number2]\ \ \c -.nr par@ind-flag 1 -.. -.\"------------ -.de par@doit -.SP (u;\\n[Ps]*\\n[Lsp]) -.ie \\n[.$] \{\ -. if \\$1=1 .ti +\\n[Pi]n -.\} -.el \{\ -. if \\n[Pt]=1 .ti +\\n[Pi]n -. if (\\n[Pt]=2)&\\n[par@ind-flag] .ti +\\n[Pi]n -.\} -.. -.\" ####### module line ####################################### -.de SP -.br -.if !r line*lp\\n[.z] .nr line*lp\\n[.z] 0 -.if !r line*ac\\n[.z] .nr line*ac\\n[.z] 0 -.ie \\n[.$] .nr line*temp (v;\\$1) -.el .nr line*temp 1v -.\" -.ie \\n[line*lp\\n[.z]]=\\n[.d] \{\ -. \" go here if no output since the last .SP -. nr line*output \\n[line*temp]-\\n[line*ac\\n[.z]] -. if \\n[line*output]<0 .nr line*output 0 -. nr line*ac\\n[.z] +\\n[line*output] -.\} -.el \{\ -. nr line*ac\\n[.z] \\n[line*temp] -. nr line*output \\n[line*temp] -. \" no extra space in the beginning of a page -. if (\\n[.d]<0):(\\n[pg*head-mark]=\\n[.d]) .nr line*output 0 -.\} -.if \\n[line*output] .sp \\n[line*output]u -.nr line*lp\\n[.z] \\n[.d] -.. -.\" ######## module misc ############### -.nr misc@adjust 14 -.de SA -.if \\n[.$] \{\ -. if \\$1-1 .@error "SA: bad arg: \\$1" -. nr misc@adjust 0\\$1 -.\} -.ie \\n[misc@adjust] 'ad -.el 'na -.. -.\"------------- -.\" switch environment, keep all important settings. -.de misc@ev-keep -.nr misc*ll \\n[.l] -.ev \\$1 -.ll \\n[misc*ll]u -.lt \\n[misc*ll]u -.. -.\"------------- -.\" .misc@push stackname value -.de misc@push -.ie d misc*st-\\$1 .ds misc*st-\\$1 \\$2 \\*[misc*st-\\$1] -.el .ds misc*st-\\$1 \\$2 -.. -.\"------------- -.\" .misc@pop stackname -.\" value returned in the string misc*pop -.de misc@pop -.misc@pop-set misc*st-\\$1 \\*[misc*st-\\$1] -.. -.\"------------- -.de misc@pop-set -.ds misc*st-name \\$1 -.shift -.if \\n[.$]<1 .@error "stack \\*[misc*st-name] empty" -.ds misc*pop \\$1 -.shift -.ds \\*[misc*st-name] \\$* -.. -.\"------------- -.\" .misc@pop-nr stackname varname -.de misc@pop-nr -.misc@pop \\$1 -.nr \\$2 \\*[misc*pop] -.. -.\"------------- -.\" .misc@pop-ds stackname varname -.de misc@pop-ds -.misc@pop \\$1 -.ds \\$2 \\*[misc*pop] -.. -.\"----------- -.\" reset tabs -.de TAB -.ta T 5n -.. -.\"------------- -.\" .PGFORM linelength [ pagelength [ pageoffset [1]]] -.de PGFORM -.\" Break here to avoid problems with new linesetting of the previous line. -.\" Hope this doesn't break anything else :-) -.\" Don't break if arg_4 is a '1'. -.if \\n[D]>2 .tm PGFORM: \\$* -.if ''\\$4' .br -.if \\n[D]>3 .tm PGFORM: IN l:\\n[.l] p:\\n[.p] o:\\n[.o] -.ie !''\\$1' \{\ -. ll \\$1 -. nr @ll \\n[.l] -. nr @cur-ll \\n[@ll] -. lt \\n[@ll]u -.\} -.el \{\ -. ll \\n[@ll]u -. lt \\n[@ll]u -.\} -.\" -.ie !''\\$2' \{\ -. pl \\$2 -. nr @pl \\n[.p] -.\} -.el .pl \\n[@pl]u -.\" -.ie !''\\$3' \{\ -. po \\$3 -. nr @po \\n[.o] -.\} -.el .po \\n[@po]u -.if \\n[D]>3 .tm PGFORM: OUT l:\\n[.l] p:\\n[.p] o:\\n[.o] -.if \\n[D]>2 .tm PGFORM: ll=\\n[@ll], pl=\\n[@pl], po=\\n[@po] -'in 0 -.pg@move-trap -.if \\n[D]>2 \{\ -. tm Traps: -. ptr -.\} -.. -.\"------------- -.\" .MOVE y [[x] linelength] -.\" move to line y, indent to x -.de MOVE -.if !\\n[.$] .@error "MOVE y [x]: no arguments" -.if \\n[nl]<0 \c -.\" move to Y-pos -.sp |(v;\\$1) -.\" calc linelength -.ie \\n[.$]>2 .nr pg*i (n;\\$3) -.el \{\ -. ie \\n[.$]>1 .nr pg*i (n;\\n[@ll]u-\\$2) -. el .nr pg*i \\n[@ll]u -.\} -.\" move to X-pos, if any -.if !''\\$2' .po \\$2 -.\" set linelength -.ll \\n[pg*i]u -.. -.\"------------- -.de SM -.if !\\n[.$] .@error "SM: no arguments" -.if \\n[.$]=1 \s-1\\$1\s0 -.if \\n[.$]=2 \s-1\\$1\s0\\$2 -.if \\n[.$]=3 \\$1\s-1\\$2\s0\\$3 -.. -.\"------------- -.nr misc*S-ps \n[@ps] -.nr misc*S-vs \n[@vs] -.nr misc*S-ps1 \n[@ps] -.nr misc*S-vs1 \n[@vs] -.ds misc*a -.ds misc*b -.de S -.ie !\\n[.$] \{\ -. ds misc*a P -. ds misc*b P -.\} -.el \{\ -. ie \\n[.$]=1 .ds misc*b D -. el \{\ -. ie \w@\\$2@=0 .ds misc*b C -. el .ds misc*b \\$2 -. \} -. ie \w@\\$1@=0 .ds misc*a C -. el .ds misc*a \\$1 -.\} -.\" -.\" set point size -.if !'\\*[misc*a]'C' \{\ -. ie '\\*[misc*a]'P' .ps \\n[misc*S-ps]u -. el \{\ -. ie '\\*[misc*a]'D' .ps \\n[S] -. el .ps \\*[misc*a] -. if \\n[D]>2 .tm S: .ps \\*[misc*a] -. \} -.\} -.\" -.\" set vertical spacing -.if !'\\*[misc*b]'C' \{\ -. ie '\\*[misc*b]'P' .vs \\n[misc*S-vs]u -. el \{\ -. ie '\\*[misc*b]'D' .vs \\n[.ps]s+2p -. el .vs \\*[misc*b] -. if \\n[D]>2 .tm S: .vs \\*[misc*b] -. \} -.\} -.nr @ps \\n[.ps] -.nr @psu \\n[.ps]s -.nr @vs \\n[.v] -.nr @vsp \\n[.v]u/1p -.nr @res 1i -.\" -.if \\n[D]>1 \{\ -. tmc "S(\\$*): ma:\\*[misc*a], mb:\\*[misc*b] -. tm1 " => ps:\\n[.s]p (\\n[@psu]u), vs:\\n[@vsp]p (\\n[@vs]u) (res:\\n[@res]) -.\} -.nr misc*S-ps \\n[misc*S-ps1] -.nr misc*S-vs \\n[misc*S-vs1] -.nr misc*S-ps1 \\n[@ps] -.nr misc*S-vs1 \\n[@vs] -.pg@move-trap -.. -.\"------------ -.de HC -.ev 0 -.hc \\$1 -.ev -.ev 1 -.hc \\$1 -.ev -.ev 2 -.hc \\$1 -.ev -.. -.\"------------ -.de RD -.di misc*rd -'fl -.rd \\$1\t -.br -.di -.ie !''\\$3' \{\ -. di misc*rd2 -. ds \\$3 "\\*[misc*rd] -. br -. di -.\} -.if !''\\$2' .rn misc*rd \\$2 -.rm misc*rd misc*rd2 -.. -.\"------------ -.\" VERBON [flag [pointsize [font]]] -.\" flag -.\" bit function -.\" 0 escape on -.\" 1 add an empty line before verbose text -.\" 2 add an empty line after verbose text -.\" 3 numbered lines (controlled by the string Verbnm) -.\" 4 indent text by the numbervariable Verbin. -.de VERBON -.br -.nr misc*verb 0\\$1 -.if (0\\n[misc*verb]%4)/2 .SP \\n[Lsp]u -.misc@ev-keep misc*verb-ev -.nf -.if (0\\n[misc*verb]%16)/8 .nm \\*[Verbnm] -.ie !'\\$3'' .ft \\$3 -.el .ft CR -.ie 0\\$2 \{\ -. ss \\$2 -. ps \\$2 -. vs \\$2 -.\} -.el .ss 12 -.ta T 8u*\w@n@u -.if (0\\n[misc*verb]%32)/16 .in +\\n[Verbin]u -.if 0\\n[misc*verb]%2 \{\ -. eo -. nr @verbose-flag 1 \" tell pageheader to set ec/eo -.\} -.. -.de VERBOFF -.ec -.br -.if (0\\n[misc*verb]%8)/4 .SP \\n[Lsp]u -.if (0\\n[misc*verb]%16)/8 .nm -.if (0\\n[misc*verb]%32)/16 .in -.ev -.nr @verbose-flag 0 -.. -.\" ######## module pict ################# -.nr pict*width 0 -.nr pict*height 0 -.nr pict*mode 0 -.nr pict*ind 0 -.nr pict*id 0 1 -.\" I assume that the number variable pict*id is the same -.\" between two runs. -.de PIC -.br -.nr pict*ind 0 -.nr pict*box 0 -.while \\n[.$]>0 \{\ -. if '-B'\\$1' \{\ -. nr pict*box 1 -. shift -. continue -. \} -. if '-L'\\$1' \{\ -. nr pict*mode 0 -. shift -. continue -. \} -. if '-R'\\$1' \{\ -. nr pict*mode 1 -. shift -. continue -. \} -. if '-I'\\$1' \{\ -. nr pict*ind (m;\\$2) -. nr pict*mode 2 -. shift 2 -. continue -. \} -. if '-C'\\$1' \{\ -. nr pict*mode 3 -. shift -. continue -. \} -. ds pict*f \\$1 -. nr pict*id +1 -. shift -. if \\n[.$]>0 \{\ -. nr pict*width (i;\\$1) -. shift -. \} -. if \\n[.$]>0 \{\ -. nr pict*height (i;\\$1) -. shift -. \} -.\} -.\" let mmroff know the filename and id -.if \\n[Ref]>0 \{\ -. tm .\\\\" PIC id \\n[pict*id] -. tm .\\\\" PIC file \\*[pict*f] -.\} -.\" these are defined by mmroff in the second pass -.if d pict*file!\\n[pict*id] \{\ -. ds pict*f \\*[pict*file!\\n[pict*id]] -. nr pict*llx \\n[pict*llx!\\n[pict*id]] -. nr pict*lly \\n[pict*lly!\\n[pict*id]] -. nr pict*urx \\n[pict*urx!\\n[pict*id]] -. nr pict*ury \\n[pict*ury!\\n[pict*id]] -. \" -. nr pict*w (p;\\n[pict*urx]-\\n[pict*llx]) -. if \\n[pict*w]<0 .nr pict*w 0-\\n[pict*w] -. nr pict*h (p;\\n[pict*ury]-\\n[pict*lly]) -. if \\n[pict*h]<0 .nr pict*h 0-\\n[pict*h] -. if \\n[pict*width]>0 \{\ -. nr pict*rs (u;1000*\\n[pict*width]/\\n[pict*w]) -. nr pict*w (u;\\n[pict*w]*\\n[pict*rs]/1000) -. nr pict*h (u;\\n[pict*h]*\\n[pict*rs]/1000) -. \} -. if \\n[pict*height]>0 \{\ -. nr pict*rs (u;1000*\\n[pict*height]/\\n[pict*h]) -. nr pict*h (u;\\n[pict*h]*\\n[pict*rs]/1000) -. \} -. if '0'\\n[pict*mode]' \{\ -. nr pict*in \\n[.i]u -. \} -. if '1'\\n[pict*mode]' \{\ -. nr pict*in (u;\\n[.l]-\\n[.i]-\\n[pict*w]) -. \} -. if '2'\\n[pict*mode]' \{\ -. nr pict*in \\n[pict*ind]u -. \} -. if '3'\\n[pict*mode]' \{\ -. nr pict*in (u;(\\n[.l]-\\n[.i]-\\n[pict*w])/2) -. \} -. ds pict*h " -. if \\n[pict*h]>0 .ds pict*h \\n[pict*h] -. \" -. ne \\n[pict*h]u-1v -. \" -. \" these lines are copied and modified from tmac.pspic. -. \" Originally written by James Clark -. br -. ie \\n[pict*box]>0 \{\ -\v'-1v'\h'\\n[pict*in]u'\ -\Z'\D'p 0 \\n[pict*h]u \\n[pict*w]u 0 0 -\\n[pict*h]u''\ -\v'\\n[pict*h]u'\X'ps: import \\*[pict*f] \ -\\n[pict*llx] \\n[pict*lly] \ -\\n[pict*urx] \\n[pict*ury] \ -\\n[pict*w] \\n[pict*h]' -.\} -. el \{\ -\v'-1v'\h'\\n[pict*in]u'\ -\X'ps: invis'\ -\Z'\D'p 0 \\n[pict*h]u \\n[pict*w]u 0 0 -\\n[pict*h]u''\ -\X'ps: endinvis'\ -\v'\\n[pict*h]u'\X'ps: import \\*[pict*f] \ -\\n[pict*llx] \\n[pict*lly] \ -\\n[pict*urx] \\n[pict*ury] \ -\\n[pict*w] \\n[pict*h]' -. \} -. br -. sp \\n[pict*h]u-1v -.\} -.. -.\" external picture -.\" -L left adjust -.de EPIC -.if \\n[.$]<2 .@error "EPIC: Not enough arguments" -.nr pict*adj 0 \" centered -.if '\\$1'-L' \{\ -. shift 1 \" left adjust -. nr pict*adj 1 -.\} -.if \\n[nl]<0 \& -.nr pict*w \\$1 -.nr pict*h \\$2 -.ds pict*name "External picture -.if !''$3' .ds pict*name \\$3 -.ne \\n[pict*h]u -.sp \\n[pict*h]u-1v -.nr pict*ind 0 -.if !\\n[pict*adj] .nr pict*ind (u;(\\n[.l]-\\n[.i]-\\n[pict*w])/2) -.mk -.in +\\n[pict*ind]u -\D'l \\n[pict*w]u 0'\ -\D'l 0 -\\n[pict*h]u'\ -\D'l -\\n[pict*w]u 0'\ -\D'l 0 \\n[pict*h]u'\ -\v'-(u;\\n[pict*h]/2)'\ -\h'(u;(\\n[pict*w]-\w'\\*[pict*name]'/2))'\\*[pict*name] -.in -.rt -.sp 1v -.. -.\" ######## module acc ################# -.\"----------- -.\" accents. These are copied from mgs, written by James Clark. -.de acc@over-def -.ds \\$1 \Z'\v'(u;\w'x'*0+\En[rst]-\En[.cht])'\ -\h'(u;-\En[skw]+(-\En[.w]-\w'\\$2'/2)+\En[.csk])'\\$2' -.. -.de acc@under-def -.ds \\$1 \Z'\v'\En[.cdp]u'\h'(u;-\En[.w]-\w'\\$2'/2)'\\$2' -.. -.acc@over-def ` \` -.acc@over-def ' \' -.acc@over-def ^ ^ -.acc@over-def ~ ~ -.acc@over-def : \(ad -.acc@over-def ; \(ad -.acc@under-def , \(ac -.\" ######## module uni ################# -.\" unimplemented macros -.de OK -'tm "OK: not implemented" -.. -.de PM -'tm "PM: not implemented" -.. -.\" ######## module hd ################# -.\" support for usermacro -.nr hd*h1-page 1 \" last page-number for level 1 header. -.nr hd*htype 0 -.ds hd*sect-pg -.ds hd*mark -.ds hd*suf-space -.nr hd*need 0 -.aln ;0 hd*htype -.als }0 hd*mark -.als }2 hd*suf-space -.aln ;3 hd*need -.\"------------- -.\" .hd@split varable index name val1 val2 ... -.de hd@split -.if \\$2>(\\n[.$]-3) .@error "\\$3 must have at least \\$2 values (\\*[\\$3]). -.nr hd*sp-tmp \\$2+3 -.ds \\$1 \\$[\\n[hd*sp-tmp]] -.. -.de HU -.H 0 "\\$1" -.. -.\"------------- -.de H -.if !r hd*cur-bline .nr hd*cur-bline \\n[nl] -.br -.df@print-float 2\" $$$ could be wrong... -.\" terminate all lists -.LC -.init@reset -.nr hd*level 0\\$1 -.nr hd*arg1 0\\$1 -.if !\\n[hd*level] .nr hd*level \\n[Hu] -.\" -.\" clear lower counters -.nr hd*i 1 1 -.while \\n+[hd*i]<15 .if \\n[hd*level]<\\n[hd*i] .nr H\\n[hd*i] 0 1 -.\" -.\" save last text for use in TP -.if \\n[hd*level]=1 .ds H1txt \\$2\\$3 -.\" -.\" This is a little fix to be able to get correct H1 heading number -.\" in page headers. Special attention was needed when other formats are used. -.ie !''\\g[H1]' \{\ -. ds hd*format \\g[H1] -. af H1 0 -. nr H1h \\n[H1] 1 -. af H1 \\*[hd*format] -.\} -.el .nr H1h \\n[H1] 1 -.if \\n[hd*level]=1 .nr H1h +1 -.\" -.\" Check if it's time for new page. Only if text has -.\" appeared before. -.if \\n[Ej]&(\\n[Ej]>=\\n[hd*level])&(\\n[nl]>\\n[hd*cur-bline]) .pg@next-page -.\" -.\" increment current counter -.nr H\\n[hd*level] +1 -.\" -.\" update pagenumber if section-page is used -.if (\\n[hd*level]=1)&(\\n[Sectp]>0) .hd@set-page 1 -.\" -.\" hd*mark is the text written to the left of the header. -.ds hd*mark \\n[H1]. -.\" -.if \\n[hd*level]>1 .as hd*mark \\n[H2] -.\" -.nr hd*i 2 1 -.while \\n+[hd*i]<15 .if \\n[hd*level]>(\\n[hd*i]-1) .as hd*mark .\\n[H\\n[hd*i]] -.if \\n[Ht] .ds hd*mark \\n[H\\n[hd*level]]. -.\" -.\" special case, no dot after level one heading if not H1dot true -.if (\\n[hd*level]=1)&(\\n[H1dot]=0) .ds hd*mark \\n[H1] -.\" -.as hd*mark \ \ \" add spaces between mark and heading -.if !\\n[hd*arg1] .ds hd*mark\" no mark for unnumbered -.\" -.if \\n[D]>1 .tm At header \\*[hd*mark] "\\$2" -.nr hd*htype 0 \" hd*htype = check break and space -. \" 0 = run-in, 1 = break only, 2 = space -.if \\n[hd*level]<=\\n[Hb] .nr hd*htype 1 -.if \\n[hd*level]<=\\n[Hs] .nr hd*htype 2 -. \" two spaces if hd*htype == 0 -.ie (\\n[hd*htype]=0)&(\w@\\$2@) .ds hd*suf-space " \" -.el .ds hd*suf-space -.nr hd*need 2v \" hd*need = header need space -.\"---------- user macro HX ------------ -.\" User exit macro to override numbering. -.\" May change hd*mark (}0), hd*suf-space (}2) and hd*need (;3) -.\" Can also change Hps1/2. -.if d HX .HX \\n[hd*level] \\n[hd*arg1] "\\$2\\$3" -.\"-------------------------------------- -.\" pre-space -.ie \\n[hd*level]<=\\n[Hps] .SP (u;\\n[Hps2]) -.el .SP (u;\\n[Hps1]) -.\" -.par@reset-num \\n[hd*level]\" reset numbered paragraph -.\" start diversion to measure size of header -.di hd*div -\\*[hd*mark]\\$2\\$3\\*[hd*suf-space] -.br -.di -.rm hd*div -.if \\n[hd*htype] .na \" no adjust if run-in -.if \\n[hd*htype]<2 .nr hd*need +\\n[Lsp]u \" add some extra space -.ne \\n[hd*need]u+\\n[dn]u+.5p-1v \" this is the needed space for a header -.\" -.\" size and font calculations -.hd@split hd*font \\n[hd*level] HF \\*[HF]\" get font for this level -.ft \\*[hd*font]\" set new font -.hd@split hd*new-ps \\n[hd*level] HP \\*[HP]\" get point size -.ie (\\*[hd*new-ps]=0):(\w@\\*[hd*new-ps]@=0) \{\ -. if \\n[hd*htype] \{\ -. if '\\*[hd*font]'3' \{\ -. ps -1 -. vs -1 -. \} -. if '\\*[hd*font]'B' \{\ -. ps -1 -. vs -1 -. \} -. \} -.\} -.el \{\ -. ps \\*[hd*new-ps] -. vs \\*[hd*new-ps]+2 -.\} -.\" -.\"---------- user macro HY ------------- -.\" user macro to reset indents -.if d HY .HY \\n[hd*level] \\n[hd*arg1] "\\$2\\$3" -.DEVTAG-NH \\n[hd*level] \" HTML: mark beginning of heading -.\"-------------------------------------- -.nr hd*mark-size \w@\\*[hd*mark]@ -.if (\\n[hd*level]<=\\n[Hc])&\\n[hd*htype] .ce\" center if level<=Hc -.\" -.\" finally, output the header -\\*[hd*mark]\&\c -.\" and the rest of the header -.ie \\n[hd*htype] \{\ -\\$2\\$3 -. br -.\} -.el \\$2\\$3\\*[hd*suf-space]\&\c -.ft 1 -.\" restore pointsize and vertical size. -.ps \\n[@ps]u -.vs \\n[@vs]u -.\" -.\" table of contents -.if (\\n[hd*level]<=\\n[Cl])&\w@\\$2@ .toc@entry \\n[hd*level] "\\$2" -.\" set adjust to previous value -.SA -.\" do break or space -.if \\n[hd*htype] .br -.if \\n[hd*htype]>1 .SP (u;\\n[Lsp]*\\n[Hss]) -.if \\n[hd*htype] \{\ -. \" indent if Hi=1 and Pt=1 -. if (\\n[Hi]=1)&(\\n[Pt]=1) .ti +\\n[Pi]n -. \" indent size of mark if Hi=2 -. if \\n[hd*htype]&(\\n[Hi]>1) .ti +\\n[hd*mark-size]u -.\} -.nr par@ind-flag 0 \" no indent on .P if Pt=2 -.\" -.\" check if it is time to reset footnotes -.if (\\n[hd*level]=1)&\\n[ft*clear-at-header] .nr ft*nr 0 1 -.\" -.\" check if it is time to reset indexes -.if (\\n[hd*level]=1)&\\n[Sectf] \{\ -. nr lix*fg-nr 0 1 -. nr lix*tb-nr 0 1 -. nr lix*ec-nr 0 1 -. nr lix*ex-nr 0 1 -.\} -.\"---------- user macro HZ ---------- -.if d HZ .HZ \\n[hd*level] \\n[hd*arg1] "\\$2\\$3" -.nr hd*last-pos \\n[nl] -.nr hd*last-hsize \\n[.k] -.nr par@ind-flag 0 -.DEVTAG-EO-H \" HTML: end of heading -.. -.\"-------- -.de HM -.nr hd*i 0 1 -.while \\n+[hd*i]<15 .af H\\n[hd*i] \\$[\\n[hd*i]] 1 -.. -.\"---------------------- -.\" set page-nr, called from header -.\" -.de hd@set-page -.\" -.ie \\n[.$]>0 .nr P \\$1 -.el .nr P +1 -.\" Set section-page-string -.ds hd*sect-pg \\n[H1]-\\n[P] -.if \\n[Sectp]>1 .if '\\n[H1]'0' .ds hd*sect-pg " -.. -.\"########### module pg #################### -.\" set end of text trap -.wh 0 pg@header -.em pg@end-of-text -.\" -.ds pg*header ''- \\nP -'' -.ds pg*footer -.if \n[N]=4 .ds pg*header '''' -.if (\n[N]=3):(\n[N]=5) \{\ -. ds pg*header '''' -. ds pg*footer ''\\*[hd*sect-pg]'' -.\} -.ds pg*even-footer -.ds pg*odd-footer -.ds pg*even-header -.ds pg*odd-header -.\" -.nr pg*top-margin 0 -.nr pg*foot-margin 0 -.nr pg*block-size 0 -.nr pg*footer-size 5v\" 1v+footer+even/odd footer+2v -.nr pg*header-size 7v\" 3v+header+even/odd header+2v -.nr pg*extra-footer-size 0 -.nr pg*extra-header-size 0 -.nr ft*note-size 0 -.nr pg*cur-column 0 -.nr pg*cols-per-page 1 -.nr pg*cur-po \n[@po] -.nr pg*head-mark 0 -.\" -.nr pg*ps \n[@ps] -.nr pg*vs \n[@vs] -.\"------------------------- -.\" footer TRAPS: set, enable and disable -.de pg@set-new-trap -.nr pg*foot-trap \\n[@pl]u-(\\n[pg*block-size]u+\\n[ft*note-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]u+\\n[pg*extra-footer-size]u) -.\" -.if \\n[D]>2 .tm pg*foot-trap \\n[@pl]u-(\\n[pg*block-size]u+\\n[ft*note-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]u+\\n[pg*extra-footer-size]u) = \\n[pg*foot-trap] -.\" -.\" last-pos points to the position of the footer and bottom -.\" block below foot-notes. -.nr pg*last-pos \\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]u+\\n[pg*extra-footer-size]u) -.if \\n[D]>2 .tm pg*last-pos \\n[@pl]u-(\\n[pg*block-size]u+\\n[pg*foot-margin]u+\\n[pg*footer-size]u+\\n[pg*extra-footer-size]u) = \\n[pg*last-pos] -.. -.de pg@enable-trap -.\" Disable in HTML mode -.if !'\*[.T]'html' \{\ -.wh \\n[pg*foot-trap]u pg@footer -.if \\n[D]>2 .tm pg@enable-trap .t=\\n[.t] nl=\\n[nl] -.if \\n[D]>2 .ptr -.\} -.. -.de pg@disable-trap -.ch pg@footer -.. -.\" move to new trap (if changed). -.de pg@move-trap -.pg@disable-trap -.pg@set-new-trap -.pg@enable-trap -.. -.de pg@enable-top-trap -.\" set trap for pageheader. -.nr pg*top-enabled 1 -.. -.de pg@disable-top-trap -.\" remove trap for pageheader. -.nr pg*top-enabled 0 -.. -.\" no header on the next page -.de PGNH -.nr pg*top-enabled (-1) -.. -.\" set first trap for pagefooter -.pg@enable-top-trap -.pg@set-new-trap -.pg@enable-trap -.\"------------------------- -.\" stop output and begin on next page. Fix footnotes and all that. -.de pg@next-page -.\".debug next-page -.ne 999i \" activate trap -.\" .pg@footer -.. -.\"------------------------- -.\" support for PX, TP and EOP. -.als }t pg*header -.als }e pg*even-header -.als }o pg*odd-header -.als TPh pg*header -.als TPeh pg*even-header -.als TPoh pg*odd-header -.\" -.als EOPf pg*footer -.als EOPef pg*even-footer -.als EOPof pg*odd-footer -.\"------------------------------------------------------------ -.\" HEADER -.de pg@header -.\" Disable in HTML mode -.if !'\*[.T]'html' \{\ -.if \\n[D]>1 .tm Page# \\n[%] (\\n[.F]:\\n[c.]) -.\" check if Hy has been changed -.ie \\n[Hy] 'hy 14 -.el 'nh -.if \\n[Idxf] \{\ -.tl '''' -.\} -.\" assign current page-number to P -.hd@set-page -.\" reset spacing -.nr line*lp\\n[.z] 0 -.nr line*ac\\n[.z] 0 -.\" -.\" suppress pageheader if pagenumber == 1 and N == [124] -.if \\n[pg*top-enabled] \{\ -.\" must be fixed!! -.\". pg@disable-top-trap -. if \\n[pg*extra-header-size] 'sp \\n[pg*extra-header-size]u -. if \\n[pg*top-margin] 'sp \\n[pg*top-margin]u -. ev pg*tl-ev -. pg@set-env -. ie d let@header .let@header -. el \{\ -. ie d TP .TP -. el \{\ -' sp 3 -. ie ((\\n[%]=1)&((\\n[N]=1):(\\n[N]=2))) .sp -. el .tl \\*[pg*header] -. ie o .tl \\*[pg*odd-header] -. el .tl \\*[pg*even-header] -' sp 2 -. \} -. \} -. ev -. \" why no-space?? -. if d PX \{\ -. ns -. PX -. rs -. \} -. \" check for pending footnotes -. ft@check-old -. \" -. \" back to normal text processing -. pg@enable-trap -. \" mark for multicolumn -. nr pg*head-mark \\n[nl]u -. \" reset NCOL pointer at each new page. -. nr pg*last-ncol 0 -. \" set multicolumn -. \" -. pg@set-po -. \" print floating displays -. df@print-float 4 -. tbl@top-hook -. ns -.\} -.if \\n[pg*top-enabled]<0 .nr pg*top-enabled 1 -.nr hd*cur-bline \\n[nl] \" .H needs to know if output has occured -.\} -.. -.\"--------------------------------------------------------- -.\" FOOTER -.de pg@footer -.ec -.if \\n[D]>2 .tm Footer# \\n[%] (\\n[.F]:\\n[c.]) nl=\\n[nl] -.pg@disable-trap -.\".debug footer -.tbl@bottom-hook -.\" increment pageoffset for MC -.\" move to the exact start of footer. -'sp |\\n[pg*foot-trap]u+1v -.\" -.if \\n[D]>3 .tm FOOTER after .sp, nl=\\n[nl] -.\" print footnotes -.if d ft*div .ft@print -.\" -.pg@inc-po -.if !\\n[pg*cur-column] .pg@print-footer -.\" next column -.pg@set-po -.pg@enable-trap -.if \\n[@verbose-flag] .eo \" to help VERBON/VERBOFF -.. -.\"------------------------- -.de pg@print-footer -.\" jump to the position just below the foot-notes. -'sp |\\n[pg*last-pos]u+1v -.if \\n[D]>3 .tm print-footer nl=\\n[nl] -.\" check if there are any bottom block -.if d pg*block-div .pg@block -.\" -.\" print the footer and eject new page -.ev pg*tl-ev -.pg@set-env -.\" user defined end-of-page macro -.ie d EOP .EOP -.el \{\ -. ie o .tl \\*[pg*odd-footer] -. el .tl \\*[pg*even-footer] -. ie (\\n[%]=1)&(\\n[N]=1) .tl \\*[pg*header] -. el .tl \\*[pg*footer] -. tl ''\\*[Pg_type!\\n[@copy_type]]'' -.\} -.ev -.\" be sure that floating displays and footnotes will be -.\" printed at the end of the document. -.ie (\\n[df*fnr]>=\\n[df*o-fnr]):\\n[ft*exist] \{\ -. ev ne -' bp -. ev -.\} -.el 'bp -.. -.\"------------------------- -.\" -.\" Initialize the title environment -.de pg@set-env -'na -'nh -'in 0 -'ti 0 -.ie \\n[Pgps] \{\ -. ps \\n[@ps]u -. vs \\n[@vs]u -.\} -.el \{\ -. ps \\n[pg*ps]u -. vs \\n[pg*vs]u -.\} -.lt \\n[@ll]u -.ll \\n[@ll]u -.. -.\"------------------------- -.de PH -.ds pg*header "\\$1 -.pg@set-new-size -.. -.de PF -.ds pg*footer "\\$1 -.pg@set-new-size -.. -.de OH -.ds pg*odd-header "\\$1 -.pg@set-new-size -.. -.de EH -.ds pg*even-header "\\$1 -.pg@set-new-size -.. -.de OF -.ds pg*odd-footer "\\$1 -.pg@set-new-size -.. -.de EF -.ds pg*even-footer "\\$1 -.pg@set-new-size -.. -.de pg@clear-hd -.ds pg*even-header -.ds pg*odd-header -.ds pg*header -.. -.de pg@clear-ft -.ds pg*even-footer -.ds pg*odd-footer -.ds pg*footer -.. -.de pg@set-new-size -.nr pg*ps \\n[@ps] -.nr pg*vs \\n[@vs] -.pg@move-trap -.. -.\"------------------------- -.\" end of page processing -.de pg@footnotes -.\".debug footnotes -.\" output footnotes. set trap for block -.\" -.. -.\"------------------------- -.\" print bottom block -.de pg@block -.ev pg*block-ev -'nf -'in 0 -.ll 100i -.pg*block-div -.br -.ev -.. -.\"------------------------- -.\" define bottom block -.de BS -.misc@ev-keep pg*block-ev -.init@reset -.br -.di pg*block-div -.. -.\"------------------------- -.de BE -.br -.di -.nr pg*block-size \\n[dn]u -.ev -.pg@move-trap -.. -.\"------------------------- -.\" print out all pending text -.de pg@end-of-text -.if \\n[D]>2 .tm ---------- End of text processing ---------------- -.df@eot-print -.ref@eot-print -.. -.\"------------------------- -.\" set top and bottom margins -.\" -T sets pg*footer-size and pg*header-size instead -.de VM -.ie '\\$1'-T' \{\ -. shift -. if \\n[.$]=0 \{\ -. nr pg*footer-size 5v -. nr pg*header-size 7v -. \} -. if \\n[.$]>0 .nr pg*header-size (v;\\$1) -. if \\n[.$]>1 .nr pg*footer-size (v;\\$2) -.\} -.el \{\ -. if \\n[.$]=0 \{\ -. nr pg*extra-footer-size 0 -. nr pg*extra-header-size 0 -. \} -. if \\n[.$]>0 .nr pg*extra-header-size (v;\\$1) -. if \\n[.$]>1 .nr pg*extra-footer-size (v;\\$2) -. if \\n[D]>2 \{\ -. tm extra top \\n[pg*extra-footer-size] -. tm extra bottom \\n[pg*extra-header-size] -. \} -.\} -.pg@move-trap -.. -.\"--------------------- -.\" multicolumn output. -.de pg@set-po -.if \\n[pg*cols-per-page]>1 \{\ -. ll \\n[pg*column-size]u -.\} -.. -.de pg@inc-po -.if \\n[pg*cols-per-page]>1 \{\ -. ie \\n+[pg*cur-column]>=\\n[pg*cols-per-page] \{\ -. nr pg*cur-column 0 1 -. nr pg*cur-po \\n[@po]u -. po \\n[@po]u -. ll \\n[@ll]u -. \} -. el \{\ -. nr pg*cur-po +(\\n[pg*column-size]u+\\n[pg*column-sep]u) -. po \\n[pg*cur-po]u -' sp |\\n[pg*head-mark]u -. tbl@top-hook -. \} -.\} -.. -.\" An argument disables the page-break. -.de 1C -.br -.if \\n[pg*cols-per-page]<=1 .@error "1C: multicolumn mode not active" -.nr pg*cols-per-page 1 -.nr pg*column-sep 0 -.nr pg*column-size \\n[@ll] -.nr pg*ncol-i \\n[pg*cur-column]\" temp variable -.nr pg*cur-column 0 1 -.nr pg*cur-po \\n[@po]u -.PGFORM -.ie !'\\$1'1' .SK -.el \{\ -. if d ft*div \{\ -. if \\n[pg*ncol-i]>0 \{\ -. @warning 1C: footnotes will be messy -. \} -. \} -. if \\n[pg*last-ncol]>0 \{\ -. sp |\\n[pg*last-ncol]u -. nr pg*last-ncol 0 -. \} -.\} -.. -.de 2C -.br -.nr pg*head-mark \\n[nl]u -.if \\n[pg*cols-per-page]>1 .@error "2C: multicolumn mode already active" -.nr pg*cols-per-page 2 -.nr pg*column-sep \\n[@ll]/15 -.nr pg*column-size (\\n[@ll]u*7)/15 -.nr pg*cur-column 0 1 -.nr pg*cur-po \\n[@po]u -.ll \\n[pg*column-size]u -.\" .lt \\n[pg*column-size]u -.. -.\" MC column-size [ column-separation ] -.de MC -.br -.nr pg*head-mark \\n[nl]u -.if \\n[pg*cols-per-page]>1 .@error "MC: multicolumn mode already active" -.ie ''\\$1' .nr pg*column-size \\n[.l] -.el .nr pg*column-size (n;\\$1) -.ie ''\\$2' .nr pg*column-sep \\n[pg*column-size]/15 -.el .nr pg*column-sep (n;\\$2) -.\" -.\" calculate the number of columns/page -.nr pg*cols-per-page 0 -.nr pg*i \\n[pg*column-size] -.while \\n[pg*i]<=\\n[.l] \{\ -. nr pg*cols-per-page \\n[pg*cols-per-page]+1 -. nr pg*i \\n[pg*i]+\\n[pg*column-sep]+\\n[pg*column-size] -.\} -.nr pg*cur-column 0 1 -.nr pg*cur-po \\n[@po]u -.ll \\n[pg*column-size]u -.\" .lt \\n[pg*column-size]u -.. -.\" begin a new column -.de NCOL -.br -.if \\n[nl]>\\n[pg*last-ncol] .nr pg*last-ncol \\n[nl] -.pg@footer -.. -.\" skip pages -.de SK -.br -.bp -.nr pg*i 0 1 -.\" force new page by writing something invisible. -.while \\n+[pg*i]<=(0\\$1) \{\ -\& -. bp -.\} -.. -.\"------------------------------- -.\" MULB width1 space1 width2 space2 width3 space3 ... -.de MULB -.br -.nr pg*i 0 1 -.nr pg*mul-x 0 1 -.nr pg*mul-ind 0 -.nr pg*mul-last 0 -.while \\n[.$] \{\ -. nr pg*mul!\\n+[pg*i] (n;0\\$1) -. nr pg*muls!\\n[pg*i] (n;0\\$2) -. shift 2 -.\} -.nr pg*mul-max-col \\n[pg*i] -.ds pg*mul-fam \\n[.fam] -.nr pg*mul-font \\n[.f] -.ev pg*mul-ev -.ps \\n[@ps]u -.vs \\n[@vs]u -.fam \\*[pg*mul-fam] -.ft \\n[pg*mul-font] -.fi -.hy 14 -.di pg*mul-div -.MULN -.. -.\"----------- -.de MULN -.if \\n[pg*mul-x]>=\\n[pg*mul-max-col] .@error "MULN: Undefined columnwidth" -.br -.if \\n[.d]>\\n[pg*mul-last] .nr pg*mul-last \\n[.d] -.rt +0 -.in \\n[pg*mul-ind]u -.ll (u;\\n[.i]+\\n[pg*mul!\\n+[pg*mul-x]])u -.nr pg*mul-ind +(u;\\n[pg*mul!\\n[pg*mul-x]]+\\n[pg*muls!\\n[pg*mul-x]]) -.. -.\"----------- -.\" MULE -.de MULE -.br -.if \\n[.d]>\\n[pg*mul-last] .nr pg*mul-last \\n[.d] -.di -.ev -.ne \\n[pg*mul-last]u -.nf -.mk -.pg*mul-div -.rt -.sp \\n[pg*mul-last]u -.fi -.. -.\"----------- -.de OP -.br -.ie o .if !\\n[pg*head-mark]=\\n[nl] \{\ -. bp +1 -. bp +1 -.\} -.el .bp -.. -.\"########### module footnotes ################### -.nr ft*note-size 0 -.nr ft*busy 0 -.nr ft*nr 0 1 -.nr ft*wide 0 -.nr ft*hyphen 0\" hyphenation value -.nr ft*adjust 1\" >0 if adjust true -.nr ft*indent 1\" >0 if text indent true (not imp. $$$) -.nr ft*just 0\" 0=left justification, 1=right (not imp. $$$) -.nr ft*exist 0\" not zero if there are any footnotes to be printed -.nr ft*clear-at-header 0\" >0 if footnotes should be reset at first level head. -.\" -.ds F \v'-.4m'\s-3\\n+[ft*nr]\s0\v'.4m' -.\" -.\"----------------- -.\" init footnote environment -.de ft@init -.\" indentcontrol not implemented $$$ -.\" label justification not implemented $$$ -'in 0 -'fi -.ie \\n[ft*adjust] 'ad -.el 'na -.ie \\n[ft*hyphen] 'hy 14 -.el 'hy 0 -.ll \\n[@cur-ll]u -.lt \\n[@cur-ll]u -.ps (p;\\n[@ps]u-2) -.vs (p;\\n[@vs]u-1) -.. -.\"----------------- -.\" set footnote format -.\" no support for two column processing (yet). $$$ -.de FD -.if \\n[.$]=0 .@error "FD: bad arg \\$1" -.ie \\n[.$]=2 .nr ft*clear-at-header 1 -.el .nr ft*clear-at-header 0 -.\" -.if !'\\$1'' \{\ -. ie \\$1>11 .nr ft*format 0 -. el .nr ft*format \\$1 -. \" -. nr ft*hyphen (\\n[ft*format]%2)*14 -. nr ft*format \\n[ft*format]/2 -. \" -. nr ft*adjust 1-(\\n[ft*format]%2) -. nr ft*format \\n[ft*format]/2 -. \" -. nr ft*indent 1-(\\n[ft*format]%2) -. nr ft*format \\n[ft*format]/2 -. \" -. nr ft*just \\n[ft*format]%2 -.\} -.. -.\"--------------- -.\" Footnote and display width control $$$ -.de WC -.nr ft*i 0 1 -.while \\n+[ft*i]<=\\n[.$] \{\ -. ds ft*x \\$[\\n[ft*i]] -. if '\\*[ft*x]'N' \{\ -. nr ft*wide 0 -. nr ft*first-fn 0 -. nr ds*wide 0 -. nr ds*float-break 1 -. \} -. if '\\*[ft*x]'-WF' .nr ft*wide 0 -. if '\\*[ft*x]'WF' .nr ft*wide 1 -. if '\\*[ft*x]'-FF' .nr ft*first-fn 0 -. if '\\*[ft*x]'FF' .nr ft*first-fn 1 -. if '\\*[ft*x]'-WD' \{\ -. nr ds*wide 0 -. if r ft*df-save \{\ -. nr Df \\n[ft*df-save] -. rm ft*df-save -. \} -. \} -. if '\\*[ft*x]'WD' \{\ -. nr ds*wide 1 -. nr ft*df-save \\n[Df] -. nr Df 4 -. \} -. if '\\*[ft*x]'-FB' .nr ds*float-break 0 -. if '\\*[ft*x]'FB' .nr ds*float-break 1 -. if \\n[D]>1 .tm WC WF=\\n[ft*wide] WD=\\n[ds*wide] -.\} -.. -.\"----------------- -.\" begin footnote -.\" Change environment, switch to diversion and print the foot-note mark. -.de FS -.if \\n[ft*busy] .@error "FS: missing FE" -.nr ft*busy 1 -.ev ft*ev -.ft@init -.if !\\n[ft*wide] .pg@set-po -.di ft*tmp-div -.nr ft*space (u;\\n[Fs]*\\n[Lsp]) -.sp \\n[ft*space]u -.\" print mark -.ie \\n[.$] .ds ft*mark \\$1 -.el .ds ft*mark \\n[ft*nr]. -\\*[ft*mark] -.in +.75c -.sp -1 -.nr ft*exist 1 -.. -.\"----------------- -.\" init footnote diversion -.de ft@init-footnote -.di ft*div -\l'20n' -.br -.di -.nr ft*note-size \\n[dn] -.. -.\"----------------- -.\" end footnote -.\" End the diversion, back to previous environment, and adjust -.\" the trap to the new foot-note size. -.de FE -.nr ft*busy 0 -.br -.di -'in 0 -'nf -.if \\n[@pl]u<\\n[dn]u .@error "FE: too big footnote" -.if !d ft*div .nr dn +1v -.if \\n[D]>3 .tm FE: foot-trap=\\n[pg*foot-trap] .d=\\n[.d] dn=\\n[dn] -.ie (\\n[pg*foot-trap]u-\\n[.d]u)<\\n[dn]u \{\ -. da ft*next-div -. ft*tmp-div -. br -. di -.\} -.el \{\ -. if !d ft*div .ft@init-footnote -. da ft*div -. ft*tmp-div -. di -. nr ft*note-size +\\n[dn] -.\} -.rm ft*tmp-div -.ev -.pg@move-trap -.. -.\"----------------- -.\" print footnotes, see pg@footer -.de ft@print -.ev ft*print-ev -'nf -'in 0 -.ll 100i -.ft*div -.br -.ev -.rm ft*div -.nr ft*note-size 0 -.pg@move-trap -.. -.\"----------------- -.\" check if any pending footnotes, see pg@header -.de ft@check-old -.if d ft*next-div \{\ -. ev ft*ev -. ft@init -. ft@init-footnote -. nf -. in 0 -. da ft*div -. ft*next-div -. di -. nr ft*note-size +\\n[dn] -. rm ft*next-div -. ev -. nr ft*exist 0 -. pg@move-trap -.\} -.. -.\"########### module display ################### -.nr ds*wide 0\" >0 if wide displays wanted -.nr df*fnr 0 1\" floating display counter -.nr df*o-fnr 1\" floating display counter, already printed -.nr ds*snr 0 1\" static display counter -.nr ds*lvl 0 1\" display level -.nr ds*float-busy 0\" >0 if printing float -.nr df*float 0 >0 if previous display was floating -.\"-------------------------------------------- -.de DE -.ie \\n[df*float] .df@end \\$@ -.el .ds@end \\$@ -.. -.\"-------------------------------------------- -.\" floating display start -.\" nested DF/DE is not allowed. -.de DF -.if \\n[df*float] .@error "DF:nested floating is not allowed. Use DS." -.ds@set-format \\$@ -.\" -.nr df*old-ll \\n[.l] -.nr ds*ftmp \\n[.f] -.misc@ev-keep df*ev -.ft \\n[ds*ftmp] -.\" -.init@reset -.di df*div -'in 0 -.\" -.ds@set-new-ev \\n[df*old-ll] -.SP \\n[Lsp]u -.nr df*float 1 -.. -.\"-------------------------------------------- -.de df@end -.br -.SP \\n[Lsp]u -.di -.nr df*width!\\n+[df*fnr] \\n[dl] -.nr df*height!\\n[df*fnr] \\n[dn] -.nr df*wide!\\n[df*fnr] \\n[ds*wide] -.nr df*format!\\n[df*fnr] \\n[ds*format] -.ev -.if \\n[D]>2 .tm DF:fnr=\\n[df*fnr] w=\\n[dl] h=\\n[dn] wide=\\n[ds*wide] \ - form=\\n[ds*format] -.\" move div to the floating display list -.rn df*div df*fdiv!\\n[df*fnr] -.\" -.nr par@ind-flag 0 -.\" print float if queue is empty and the display fits into -.\" the current page -.if ((\\n[df*fnr]>=\\n[df*o-fnr])&(\\n[dn]<\\n[.t])) .df@print-float 1 -.nr df*float 0 -.. -.\"------------- -.\" called by end-of-text -.de df@eot-print -.br -.if \\n[df*o-fnr]<=\\n[df*fnr] \{\ -. if \\n[D]>2 .tm Print remaining displays. -.\" still some floats left, make non-empty environment -. misc@ev-keep ne -. init@reset -\c -. df@print-float 3 -. ev -.\} -.. -.\"--------------- -.\" print according to Df and De. -.\" .df@print-float type -.\" type called from -.\" 1 .DE -.\" 2 end of section -.\" 3 end of document -.\" 4 beginning of new page -.\" -.de df@print-float -.if \\n[Df]>5 .@error "Df=\\n[Df], max value is 5" -.if !\\n[ds*float-busy] \{\ -. nr ds*float-busy 1 -.\" at .DE -. if \\n[D]>3 .tm print-float: .t=\\n[.t], h=\\n[df*height!\\n[df*o-fnr]] -. \" Df = 1 or 5 -. if (\\$1=1)&((\\n[Df]=1):(\\n[Df]=5)) \{\ -. if \\n[.t]>\\n[df*height!\\n[df*o-fnr]] \{\ -. \" Print only new displays. -. if \\n[df*o-fnr]=\\n[df*fnr] \{\ -. br -. ds@print-one-float -. \} -. \} -. \} -. \" Df = 3 -. if (\\$1=1)&(\\n[Df]=3) \{\ -. if \\n[.t]>\\n[df*height!\\n[df*o-fnr]] \{\ -. br -. ds@print-one-float -. \} -. \} -.\" print all if Df<2 and end of section -. if (\\$1=2)&(\\n[Sectp]>0)&(\\n[Df]<2) \{\ -. br -. ds@print-all-floats -. \} -.\" print all if end of document. Where should they go instead? -. if \\$1=3 \{\ -. br -. ds@print-all-floats -.\} -.\" new page -. if (\\$1=4)&(\\n[Df]>1) \{\ -. if \\n[Df]=2 .ds@print-one-float -. if \\n[Df]=3 .ds@print-one-float -. if \\n[Df]>3 \{\ -. ie \\n[De] .ds@print-all-floats -. el .ds@print-this-page -. \} -. \} -. nr ds*float-busy 0 -.\} -.. -.\"--------------- -.\" DF out -.\" print a floating diversion -.de ds@output-float -.nr df*old-ll \\n[.l] -.nr df*old-in \\n[.i] -.ev ds*fev -.nf -.nr df*i \\n[df*o-fnr] -.nr df*f \\n[df*format!\\n[df*i]] -.\" -.in \\n[df*old-in]u -.if \\n[df*f]=1 'in +\\n[Si]n -.if \\n[df*f]>=2 'in 0 -.if \\n[df*f]=2 'ce 9999 -.if \\n[df*f]=3 'in (u;(\\n[.l]-\\n[df*width!\\n[df*i]])/2) -.if \\n[df*f]=4 'rj 9999 -.if \\n[df*f]=5 'in (u;\\n[.l]-\\n[df*width!\\n[df*i]]) -.\" -.\" -.df*fdiv!\\n[df*o-fnr] -.\" -.if \\n[df*f]=2 'ce 0 -.if \\n[df*f]=4 'rj 0 -.ev -.rm df*fdiv!\\n[df*i] -.rm df*height!\\n[df*i] -.rm df*format!\\n[df*i] -.if \\n[df*wide!\\n[df*i]] .nr pg*head-mark \\n[nl]u -.nr df*o-fnr +1 -.. -.\"--------------- -.\" print one floating display if there is one. -.de ds@print-one-float -.if \\n[df*o-fnr]<=\\n[df*fnr] \{\ -. if \\n[D]>3 .tm print-one-float: .t=\\n[.t], h=\\n[df*height!\\n[df*o-fnr]] -. if \\n[.t]<\\n[df*height!\\n[df*o-fnr]] .pg@next-page -. ds@output-float -. if \\n[De] .pg@next-page -.\} -.. -.\"--------------- -.\" print all queued floats. -.\" if De>0 do a page eject between the floats. -.de ds@print-all-floats -.while \\n[df*o-fnr]<=\\n[df*fnr] \{\ -. if \\n[D]>3 .tm print-all-floats: .t=\\n[.t], h=\\n[df*height!\\n[df*o-fnr]] -. if \\n[.t]<\\n[df*height!\\n[df*o-fnr]] .pg@next-page -. br -\c -. ds@output-float -. if \\n[De] .pg@next-page -.\} -.. -.\"--------------- -.\" print as many floats as will fit on the current page -.de ds@print-this-page -.while \\n[df*o-fnr]<=\\n[df*fnr] \{\ -. if \\n[D]>3 .tm print-this-page: .t=\\n[.t], h=\\n[df*height!\\n[df*o-fnr]] -. if \\n[.t]<\\n[df*height!\\n[df*o-fnr]] .break -. ds@output-float -.\} -.. -.\"--------------------------------------------------- -.\" get format of the display -.de ds@set-format -.ie \\n[.$] \{\ -. ie r ds*format!\\$1 .nr ds*format \\n[ds*format!\\$1] -. el .@error "DS/DF:wrong format:\\$1" -.\} -.el .nr ds*format 0 -.if \\n[D]>2 .tm set format=\\n[ds*format] -.\" fill or not to fill, that is the... -.nr ds*fill 0 -.ie \\n[.$]>1 \{\ -. ie r ds*fill!\\$2 .nr ds*fill \\n[ds*fill!\\$2] -. el .@error "\\*[ds*type]:wrong fill:\\$2" -.\} -.if \\n[D]>2 .tm set fill=\\n[ds*fill] -.nr ds*rindent 0 -.if \\n[.$]>2 .nr ds*rindent \\$3 -.if \\n[D]>2 .tm set indent=\\n[ds*rindent] -.. -.\"----------------------------- -.\" .ds@set-new-ev previous-line-length -.de ds@set-new-ev -.ll \\$1u -.lt \\$1u -.if \\n[ds*rindent] \{\ -. ll -\\n[ds*rindent]n -. lt -\\n[ds*rindent]n -.\} -.if \\n[ds*wide] \{\ -. ll \\n[@ll]u -. lt \\n[@ll]u -.\} -.\" -.ie \\n[ds*fill] 'fi -.el 'nf -.. -.\"-------------------------------------------------------- -.nr ds*format 0\" dummy value for .En/.EQ -.nr ds*format! 0\" no indent -.nr ds*format!0 0\" no indent -.nr ds*format!L 0\" no indent -.nr ds*format!I 1\" indent -.nr ds*format!1 1\" indent -.nr ds*format!C 2\" center each line -.nr ds*format!2 2\" center each line -.nr ds*format!CB 3\" center as block -.nr ds*format!3 3\" center as block -.nr ds*format!R 4\" right justify each line -.nr ds*format!4 4\" right justify each line -.nr ds*format!RB 5\" right justify as block -.nr ds*format!5 5\" right justify as block -.\"--------------- -.nr ds*fill! 0\" no fill -.nr ds*fill!N 0\" no fill -.nr ds*fill!0 0\" no fill -.nr ds*fill!F 1\" fill on -.nr ds*fill!1 1\" fill on -.\"-------------------------------------------- -.\" static display start -.\" nested DS/DE is allowed. No limit on depth. -.de DS -.br -.nr XXX \\n[nl] -.nr ds*lvl +1 -.ds@set-format \\$@ -.\" -.nr ds*old-ll \\n[.l] -.nr ds*old-in \\n[.i] -.misc@push ds-ll \\n[.l] -.misc@push ds-form \\n[ds*format] -.nr ds*i \\n[.i] -.nr ds*ftmp \\n[.f] -.misc@ev-keep ds*ev!\\n+[ds*snr] -.ft \\n[ds*ftmp] -.\" -.init@reset -.\" indent in a diversion doesn't seem like a good idea. -'in 0 -.di ds*div!\\n[ds*snr] -.\" -.ds@set-new-ev \\n[ds*old-ll] -.nr df*float 0 -.. -.\"-------------------------------------------- -.de ds@end -.if \\n-[ds*lvl]<0 .@error "DE: no corresponding DS" -.br -.di -.\" ********** -.nr ds*width \\n[dl] -.nr ds*height \\n[dn] -.misc@pop-nr ds-ll ds*old-ll -.misc@pop-nr ds-form ds*format -.\" -.\" ********** -'nf -.\" calculate needed space -.nr ds*need \\n[ds*height] -.nr ds*i \\n[pg*foot-trap]-\\n[pg*header-size]u-\\n[pg*extra-header-size]u -.if (\\n[ds*height]>\\n[ds*i])&(\\n[.t]<(\\n[ds*i]/2)) .nr ds*need \\n[.t]u+1v -.if (\\n[ds*height]<\\n[ds*i])&(\\n[.t]<(\\n[ds*height])) .nr ds*need \\n[.t]u+1v -.\" Eject page if display will fit one page and -.\" there are less than half of the page left. -.if \\n[ds*need] .ne \\n[ds*need]u -.\" -.\" check if pending equation label -.eq@check \\n[ds*need] -'in \\n[ds*old-in]u -.if \\n[ds*format]=1 'in \\n[ds*old-in]u+\\n[Si]n -.if \\n[ds*format]>=2 'in 0 -.if \\n[ds*format]=2 'ce 9999 -.if \\n[ds*format]=3 'in (u;(\\n[.l]-\\n[ds*width])/2) -.if \\n[ds*format]=4 'rj 9999 -.if \\n[ds*format]=5 'in (u;\\n[.l]-\\n[ds*width]) -.\" ********** -.\" -.\" Print static display -.nr ds*i \\n[Lsp] -.if r Dsp .nr ds*i \\n[Dsp] -.\" -.if \\n[Ds] .sp \\n[ds*i]u -.ds*div!\\n[ds*snr] -.if \\n[Ds] .sp \\n[ds*i]u -.\" -.if \\n[ds*format]=2 'ce 0 -.if \\n[ds*format]=4 'rj 0 -.rm ds*div!\\n[ds*snr] -.nr ds*snr -1 -.nr par@ind-flag 0 -.ev -.. -.\"########### module list ################### -.\" .LI text-indent mark-indent pad type [mark [LI-space [LB-space] ] ] -.\" -.nr li*tind 0 -.nr li*mind 0 -.nr li*pad 0 -.nr li*type 0 -.ds li*mark 0 -.nr li*li-spc 0 -.nr li*lvl 0 1 -.aln :g li*lvl -.nr li*cur-vpos 0 -.\"-------------------------- -.\" the major list-begin macro. -.\" If type == -1 a 'break' will occur. -.de LB -.if \\n[.$]<4 .@error "LB: not enough arguments, min 4" -.misc@push cind \\n[.i] -.misc@push tind \\n[li*tind] -.misc@push mind \\n[li*mind] -.misc@push pad \\n[li*pad] -.misc@push type \\n[li*type] -.misc@push li-spc \\n[li*li-spc] -.ds li*mark-list!\\n[li*lvl] \\*[li*mark] -.nr li*lvl +1 -.\" -.nr li*tind (n;0\\$1)\" text-indent -.nr li*mind (n;0\\$2)\" mark-indent -.nr li*pad (n;0\\$3)\" pad -.nr li*type 0\\$4\" type -.ds li*mark \\$5\" mark -.ie !'\\$6'' .nr li*li-spc \\$6\" LI-space -.el .nr li*li-spc 1 -.ie !'\\$7'' .nr li*lb-spc \\$7\" LB-space -.el .nr li*lb-spc 0 -.\" init listcounter -.nr li*cnt!\\n[li*lvl] 0 1 -.\" assign format -.af li*cnt!\\n[li*lvl] 1 -.if \\n[li*type] .if !'\\*[li*mark]'' .af li*cnt!\\n[li*lvl] \\*[li*mark] -.\" -.if \\n[li*lb-spc] .SP (u;\\n[li*lb-spc]*\\n[Lsp]) -.in +\\n[li*tind]u -.. -.\"--------------- -.de LI -.if \\n[li*lvl]<1 .@error "LI:no lists active" -.if \\n[li*li-spc]&(\\n[Ls]>=\\n[li*lvl]) .SP (u;\\n[li*li-spc]*\\n[Lsp]) -.ne 2v -.\" -.ds li*c-mark \\*[li*mark] -.nr li*cnt!\\n[li*lvl] +1 -.if \\n[li*type]=1 .ds li*c-mark \\n[li*cnt!\\n[li*lvl]]. -.if \\n[li*type]=2 .ds li*c-mark \\n[li*cnt!\\n[li*lvl]]) -.if \\n[li*type]=3 .ds li*c-mark (\\n[li*cnt!\\n[li*lvl]]) -.if \\n[li*type]=4 .ds li*c-mark [\\n[li*cnt!\\n[li*lvl]]] -.if \\n[li*type]=5 .ds li*c-mark <\\n[li*cnt!\\n[li*lvl]]> -.if \\n[li*type]=6 .ds li*c-mark {\\n[li*cnt!\\n[li*lvl]]} -.if \\n[.$]=1 .ds li*c-mark \\$1 -.ie \\n[.$]=2 \{\ -. ie (\\$2=2):(\\n[Limsp]=0) .ds li*c-mark \\$1\\*[li*c-mark] -. el .ds li*c-mark \\$1\ \\*[li*c-mark] -.\} -.\" -.\" determine where the text begins -.nr li*text-begin \\n[li*tind]>?\w@\\*[li*c-mark]\ @ -.nr x \w@\\*[li*c-mark]\ @ -.\" -.\" determine where the mark begin -.ie !\\n[li*pad] .nr li*in \\n[li*mind] -.el .nr li*in \\n[li*text-begin]-\\n[li*pad]-\w@\\*[li*c-mark]@ -.if !\\n[li*in] .nr li*in 0 -.\" -.ti -\\n[li*tind]u -.\" no indentation if hanging indent -.if (\w@\\*[li*c-mark]@=0)&((\\n[.$]=0):(\w@\\$1@=0)) .nr li*text-begin 0 -\Z'\&\h'\\n[li*in]u'\\*[li*c-mark]'\h'\\n[li*text-begin]u'\&\c -.if \\n[li*type]=-1 .br -.. -.\" -.\"------------- -.de li@pop -.nr li*lvl -1 -.misc@pop-nr cind li*tmp -.in \\n[li*tmp]u -.misc@pop-nr tind li*tind -.misc@pop-nr mind li*mind -.misc@pop-nr pad li*pad -.misc@pop-nr type li*type -.misc@pop-nr li-spc li*li-spc -.ds li*mark \\*[li*mark-list!\\n[li*lvl]] -.. -.de LE -.if \\n[li*lvl]<1 .@error "LE:mismatched" -.li@pop -.if '\\$1'1' .SP \\n[Lsp]u -.. -.\"------------- -.\" list status clear. -.\" terminate all lists to level i -.de LC -.ie \\n[.$]<1 .nr li*i 0 -.el .nr li*i \\$1 -.if \\n[li*i]>\\n[li*lvl] .@error "LC: incorrect argument: \\n[li*i] (too big)" -.while \\n[li*lvl]>\\n[li*i] .li@pop -.nr par@ind-flag 0 -.. -.\"------------- -.de AL -.if \\n[.$]>3 .@error "AL: too many arguments" -.if \\n[D]>2 .tm AL $* -.ie \\n[.$]<=1 .LB \\n[Li] 0 2 1 "\\$1" -.el \{\ -. ie \\n[.$]=2 .LB 0\\$2 0 2 1 "\\$1" -. el \{\ -. ie !'\\$2'' .LB \\$2 0 2 1 "\\$1" 0 1 -. el .LB \\n[Li] 0 2 1 "\\$1" 0 1 -. \} -.\} -.. -.de ML -.if \\n[.$]>3 .@error "ML: too many arguments" -.if \\n[D]>2 .tm ML $* -.nr li*ml-width \w@\\$1@u+1n -.if \\n[.$]<2 .LB \\n[li*ml-width]u 0 1 0 "\\$1" -.if \\n[.$]=2 .LB 0\\$2 0 1 0 "\\$1" -.if \\n[.$]=3 \{\ -. ie '\\$2'' .LB \\n[li*ml-width]u 0 1 0 "\\$1" 0 1 -. el .LB \\n[Li] 0 1 0 "\\$1" 0 1 -.\} -.. -.de VL -.if \\n[D]>2 .tm VL $* -.if \\n[.$]>3 .@error "VL: too many arguments" -.if \\n[.$]<1 .@error "VL: missing text-indent" -.ie \\n[.$]<3 .LB 0\\$1 0\\$2 0 0 -.el .LB 0\\$1 0\\$2 0 0 \& 0 1 -.. -.\" Bullet (for .BL) -.de BL -.if \\n[D]>2 .tm BL $* -.ds BU \s-2\(bu\s0 -.if \\n[.$]>2 .@error "BL: too many arguments" -.if \\n[.$]<1 .LB \\n[Pi] 0 1 0 \\*[BU] -.if \\n[.$]=1 .LB 0\\$1 0 1 0 \\*[BU] -.if \\n[.$]=2 \{\ -. ie '\\$1'' .LB \\n[Pi] 0 1 0 \\*[BU] 0 1 -. el .LB 0\\$1 0 1 0 \\*[BU] 0 1 -.\} -.. -.de DL -.if \\n[D]>2 .tm DL $* -.if \\n[.$]>2 .@error "DL: too many arguments" -.if \\n[.$]<1 .LB \\n[Pi] 0 1 0 \(em -.if \\n[.$]=1 .LB 0\\$1 0 1 0 \(em -.if \\n[.$]=2 \{\ -. ie '\\$1'' .LB \\n[Pi] 0 1 0 \(em 0 1 -. el .LB 0\\$1 0 1 0 \(em 0 1 -.\} -.. -.de RL -.if \\n[D]>2 .tm RL $* -.if \\n[.$]>2 .@error "RL: too many arguments" -.if \\n[.$]<1 .LB 6 0 2 4 -.if \\n[.$]=1 .LB 0\\$1 0 2 4 -.if \\n[.$]=2 \{\ -. ie '\\$1'' .LB 6 0 2 4 1 0 1 -. el .LB 0\\$1 0 2 4 1 0 1 -.\} -.. -.\" Broken Variable List. As .VL but text begin on the next line -.de BVL -.if \\n[D]>2 .tm BVL $* -.if \\n[.$]>3 .@error "BVL: too many arguments" -.if \\n[.$]<1 .@error "BVL: missing text-indent" -.ie \\n[.$]<3 .LB 0\\$1 0\\$2 0 -1 -.el .LB 0\\$1 0\\$2 0 -1 \& 0 1 -.. -.\" ####### module tbl ####################################### -.\" This module is copied from groff_ms and modified for mgm. -.\" Yes, it does not resemble the original anymore :-). -.\" Don't know if I missed something important. -.\" Groff_ms is written by James Clark. -.nr tbl*have-header 0 -.nr tbl*header-written 0 -.de TS -.br -.if ''\\n[.z]' .SP -.if '\\$1'H' .di tbl*header-div -.. -.de tbl@top-hook -.if \\n[tbl*have-header] \{\ -. ie \\n[.t]-\\n[tbl*header-ht]-1v .tbl@print-header -. el .sp \\n[.t]u -.\} -.. -.de tbl@bottom-hook -.if \\n[tbl*have-header] \{\ -. nr T. 1 -.\" draw bottom and side lines of boxed tables. -. T# -.\} -.nr tbl*header-written 0 -.. -.de tbl@print-header -.ev tbl*ev -'nf -.tbl*header-div -.ev -.mk #T -.nr tbl*header-written 1 -.. -.de TH -.ie '\\n[.z]'tbl*header-div' \{\ -. nr T. 0 -. T# -. br -. di -. nr tbl*header-ht \\n[dn] -. ne \\n[dn]u+1v -. nr tbl*have-header 1 -. ie '\\$1'N' .if !\\n[tbl*header-written] .tbl@print-header -. el .tbl@print-header -.\} -.el .@error ".TH without .TS H" -.. -.de TE -.ie '\\n(.z'tbl*header-div' .@error ".TS H but no .TH before .TE" -.el \{\ -. nr tbl*have-header 0 -.\} -.\" reset tabs -.TAB -.. -.de T& -.. -.\" ####### module pic ####################################### -.de PS -.nr pic*in 0 -.br -.SP .5 -.ie \\n[.$]<2 .@error "PS: bad arguments. Probably not processed with pic." -.el \{\ -. if !\\n[ds*lvl] .ne (u;\\$1)+1v -.\" should be contained between .DS/.DE -.if r ds*format \{\ -. if \\n[ds*lvl]&((\\n[ds*format]=2):(\\n[ds*format]=3)) \{\ -. nr pic*in \\n[.i] -.\" . in +(u;\\n[.l]-\\n[.i]-\\$2/2) -. \} -. \} -.\} -.. -.de PE -.init@reset -.SP .5 -.. -.\" ####### module eq ####################################### -.\" -.nr eq*number 0 1 -.ds eq*label -.de EQ -.ds eq*label "\\$1 -.. -.de eq@check -.if !'\\*[eq*label]'' \{\ -. mk -. \" space down to middle of equation -' sp (u;\\$1/2) -. ie (\\n[Eq]%2) \{\ -. \" label to the left -\h'|0'\\*[eq*label] -. \} -. el \{\ -. \" label to the right -\h'|\\n[.l]u'\\*[eq*label] -. \} -. rt -.\} -.ds eq*label -.. -.de EN -.. -.\"########### module toc ################### -.\" table of contents -.nr toc*slevel 1 -.nr toc*spacing \n[Lsp]u -.nr toc*tlevel 2 -.nr toc*tab 0 -.\"----------- -.\" Table of contents with friends (module lix) -.de TC -.br -.\" print any pending displays and references -.df@print-float 3 -.if \\n[ref*flag] .RP 0 1 -.\" -.if \w@\\$1@>0 .nr toc*slevel \\$1 -.if \w@\\$2@>0 .nr toc*spacing (u;\\$2*\\n[Lsp]) -.if \w@\\$3@>0 .nr toc*tlevel \\$3 -.if \w@\\$4@>0 .nr toc*tab \\$4 -.if \\n[pg*cols-per-page]>1 .1C -.ds H1txt \\*[Licon] -.ds Tcst co -.pg@clear-hd -.EF "" -.OF "" -.pg@next-page -.\"------------- -.if d Ci .toc@read-Ci \\*[Ci] -.nf -.in 0 -.ie \\n[Oc] .hd@set-page 1 -.el \{\ -. nr toc*pn 1 1 -. af toc*pn i -. aln ;g toc*pn -. PF "''\\\\\\\\n[toc*pn]''" -. am pg@header -. nr toc*pn +1 -\\.. -.\} -.nr toc*i 4 1 -.while \\n+[toc*i]<10 \{\ -. if !'\\$\\n[toc*i]'' \{\ -. ce -\\$\\n[toc*i] -. br -. \} -.\} -.if \\n[.$]<=4 .if d TX .TX -.ie d TY .if \\n[.$]<=4 .TY -.el \{\ -. ce -\\*[Licon] -. br -. SP 3 -.\} -.if d toc*list .toc*list -.br -.\" print LIST OF XXX -.if d lix*dsfg .lix@print-ds fg FG "\\*[Lf]" \\n[.$] -.if d lix*dstb .lix@print-ds tb TB "\\*[Lt]" \\n[.$] -.if d lix*dsec .lix@print-ds ec EC "\\*[Le]" \\n[.$] -.if d lix*dsex .lix@print-ds ex EX "\\*[Lx]" \\n[.$] -.. -.\"----------- -.\" .toc@read-Ci lev1 lev2 lev3 lev4 ... lev7 -.de toc@read-Ci -.nr toc*i 0 1 -.while \\n+[toc*i]<15 \{\ -. nr toc*hl!\\n[toc*i] \\$[\\n[toc*i]] -.\} -.. -.\"----------- -.de toc@entry -.ie \\n[Sectp] \{\ -. toc@save \\$1 "\\*[hd*mark]" "\\$2" \\*[hd*sect-pg] -.\} -.el .toc@save \\$1 "\\*[hd*mark]" "\\$2" \\n[%] -.. -.als )E toc@entry -.\"----------- -.de toc@save -.\" collect maxsize of mark if string Ci don't exist. -.if !d Ci \{\ -. if !r toc*hl!\\$1 .nr toc*hl!\\$1 0 -. if \\n[toc*hl!\\$1]<=\w@\\$2@ \{\ -. nr toc*hl!\\$1 \w@\\$2@u -. \} -.\} -.am toc*list -.\" .toc@set level headernumber text pagenr -.toc@set \\$1 "\\$2" "\\$3" \\$4 -\\.. -.. -.\"----------- -.\" level mark text pagenumber -.de toc@set -.if \\$1<=\\n[toc*slevel] .SP \\n[toc*spacing]u -.na -.fi -.nr toc*ind 0 -.nr toc*i 0 1 -.ie d Ci \{\ -. nr toc*ind +\\n[toc*hl!\\$1]u -.\} -.el \{\ -. while \\n+[toc*i]<\\$1 \{\ -. nr toc*ind +\\n[toc*hl!\\n[toc*i]]u -. \} -.\} -.nr toc*text \\n[toc*ind]u+\\n[toc*hl!\\$1]u -.in \\n[toc*text]u -.ti -\\n[toc*hl!\\$1]u -.\" -.\" length of headernum space -.nr toc*i \\n[toc*hl!\\$1]-\w@\\$2@ -.\" -.ll \\n[@ll]u-\w@\\$4@u-2m -.ne 2v -.\" ragged right --------------------------------- -.ie \\$1>\\n[toc*tlevel] \{\ -\\$2 -. sp -1 -\\$3\ \ \ \\$4 -. br -.\} -.el \{\ -. \" unnumbered heading -------------------- -. ie '\\$2'' \{\ -. in \\n[toc*ind]u -\\$3\h'1m' -. \} -. \" normal heading ------------------------ -. el \{\ -\\$2 -. sp -1 -\\$3\h'1m' -. \} -. ll \\n[@ll]u -. sp -1 -. nr toc*sep (u;\\n[.l]-\\n[.n]-\\n[.i]-\w@\\$4@)-1m -\h'|\\n[.n]u'\l'\\n[toc*sep]u.'\h'1m'\\$4 -.\} -.ll \\n[@ll]u -.. -.\"########################### module lix ############################ -.\" LIST OF figures, tables, exhibits and equations -.nr lix*fg-nr 0 1 -.nr lix*tb-nr 0 1 -.nr lix*ec-nr 0 1 -.nr lix*ex-nr 0 1 -.aln Fg lix*fg-nr -.aln Tb lix*tb-nr -.aln Ec lix*ec-nr -.aln Ex lix*ex-nr -.\"------------ -.de FG -.lix@print-line fg Lf \\n+[lix*fg-nr] "\\$1" "\\$2" "\\$3" "\\$4" -.. -.de TB -.lix@print-line tb Lt \\n+[lix*tb-nr] "\\$1" "\\$2" "\\$3" "\\$4" -.. -.de EC -.lix@print-line ec Le \\n+[lix*ec-nr] "\\$1" "\\$2" "\\$3" "\\$4" -.. -.de EX -.lix@print-line ex Lx \\n+[lix*ex-nr] "\\$1" "\\$2" "\\$3" "\\$4" -.. -.\"------------ -.\" print line with 'figure' in the text -.\" type stringvar number text override flag refname -.de lix@print-line -.ds lix*text "\\$4 -.\" -.ie \\n[Sectf] .ds lix*numb \\n[H1]-\\$3 -.el .ds lix*numb \\$3 -.\" -.ie !\\n[Of] .ds lix*ds-form .\ \ \" -.el .ds lix*ds-form "\ \(em\ \" -.nr lix*in \\n[.i] -.ds lix*label \\*[Li\\$1]\ \\*[lix*numb]\\*[lix*ds-form] -.if !'\\$5'' \{\ -. if !0\\$6 .ds lix*label \\*[Li\\$1]\ \\$5\\*[lix*numb]\\*[lix*ds-form] -. if 0\\$6=1 .ds lix*label \\*[Li\\$1]\ \\*[lix*numb]\\$5\\*[lix*ds-form] -. if 0\\$6=2 .ds lix*label \\*[Li\\$1]\ \\$5\\*[lix*ds-form] -.\} -.\" print line if not between DS/DE -.ie \\n[ds*lvl]<1&\\n[df*float]=0 \{\ -. lix@print-text "\\*[lix*label]" "\\*[lix*text]" \\$1 \\$2 \\$7 -.\} -.el \{\ -. lix@embedded-text "\\*[lix*label]" "\\*[lix*text]" \\$1 \\$2 \\$7 -.\} -.\" -.. -.\"----------- -.\" label text type stringvar refname -.de lix@print-text -.ie \\n[Sectp] .ds lix*pgnr \\*[hd*sect-pg] -.el .ds lix*pgnr \\n[%] -.SP \\n[Lsp]u -.misc@ev-keep lix -.init@reset -.br -.ie (\w@\\$1\\$2@)>(\\n[.l]-\\n[.i]) \{\ -. in +\w@\\$1@u -. ti 0 -.\} -.el .ce 1 -\fB\\$1\fP\\$2 -.br -.ev -.\" save line for LIST OF XXX, wth is the width of the label -.if !r lix*wth\\$3 .nr lix*wth\\$3 0 -.\" find the maximum width -.if \w@\\*[lix*label]@>\\n[lix*wth\\$3] .nr lix*wth\\$3 \w@\\*[lix*label]@ -.if \\n[\\$4] .lix@ds-save \\$3 \\*[lix*pgnr] "\\*[lix*text]" "\\*[lix*label]" -.\" save reference to the figure -.if !'\\$5'' .SETR \\$5 \\*[lix*numb] -.. -.\" hide printout until diversion is evaluated -.de lix@embedded-text -\!.ie \\\\n[Sectp] .ds lix*pgnr \\\\*[hd*sect-pg] -\!.el .ds lix*pgnr \\\\n[%] -\!.SP \\\\n[Lsp]u -\!.misc@ev-keep lix -\!.ll \\n[.l]u -\!.init@reset -\!.fi -\!.ie (\w@\\$1\\$2@)>(\\\\n[.l]-\\\\n[.i]) \{\ -. in +\w@\\$1@u -\!. ti 0 -\!\fB\\$1\fP\\$2 -\!.\} -\!.el \{\ -. ce 1 -\!\fB\\$1\fP\\$2 -\!.\} -\!.br -\!.ev -.\" save line for LIST OF XXX, wth is the width of the label -\!.if !r lix*wth\\$3 .nr lix*wth\\$3 0 -.\" find the maximum width -\!.if \w@\\*[lix*label]@>\\\\n[lix*wth\\$3] .nr lix*wth\\$3 \w@\\*[lix*label]@ -\!.if \\\\n[\\$4] .lix@ds-save \\$3 \\\\*[lix*pgnr] "\\*[lix*text]" "\\*[lix*label]" -.\" save reference to the figure -\!.if !'\\$5'' .SETR \\$5 \\*[lix*numb] -.. -.\"------------ -.\" print complete list of XXXX -.de lix@print-ds -.\" arg: fg,tb,ec,ex text -.ds H1txt \\$3 -.ds Tcst \\$1 -.if !\\n[Cp] .pg@next-page -.\" print LIST OF XXXX -.\" execute user-defined macros -.if \\$4<=4 .if d TX\\$2 .TX\\$2 -.ie d TY\\$2 .if \\$4<=4 .TY\\$2 -.el \{\ -. ce -\\$3 -. SP 3 -.\} -.in \\n[lix*wth\\$1]u -.fi -.lix*ds\\$1 -.. -.\"------------ -.\" save line of list in macro -.de lix@ds-save -.\" type pagenumber text -.am lix*ds\\$1 -.lix@dsln \\$1 \\$2 "\\$3" "\\$4" \\$5 -\\.. -.. -.\"------------ -.\" print appended macro -.\" lix@dsln type pagenumber text headernr -.de lix@dsln -.nr lix*i \\n[lix*wth\\$1]-\w@\\$4@ -.ne 4v -.ll \\n[@ll]u-\w@\\$4@u-\w@\\$2@u-2m -.ti -\\n[lix*wth\\$1]u -\\$4 -.sp -1 -\\$3\h'1m' -.sp -1 -.ll -.nr lix*sep (u;\\n[.l]-\\n[.n]-\\n[.i]-\w@\\$2@)-1m -\h'|\\n[.n]u'\l'\\n[lix*sep]u.'\h'1m'\\$2 -.SP \\n[toc*spacing]u -.. -.\"########################### module fnt ############################ -.\" some font macros. -.de R -.ft R -.ul 0 -.. -.\"----------- -.de fnt@switch -.ul 0 -.ds fnt*tmp -.nr fnt*prev \\n[.f] -.nr fnt*i 2 1 -.while \\n+[fnt*i]<=\\n[.$] \{\ -. if \\n[fnt*i]>3 .as fnt*tmp \, -. ie (\\n[fnt*i]%2)=1 .as fnt*tmp \\$1\\$[\\n[fnt*i]] -. el .as fnt*tmp \\$2\\$[\\n[fnt*i]] -. if \\n[fnt*i]<\\n[.$] .as fnt*tmp \/ -.\} -\&\\*[fnt*tmp]\f[\\n[fnt*prev]] -.. -.\"----------- -.de B -.ie \\n[.$] .fnt@switch \fB \f[\\n[.f]] \\$@ -.el .ft B -.. -.de I -.ie \\n[.$] .fnt@switch \fI \f[\\n[.f]] \\$@ -.el .ft I -.. -.de IB -.if \\n[.$] .fnt@switch \fI \fB \\$@ -.. -.de BI -.if \\n[.$] .fnt@switch \fB \fI \\$@ -.. -.de IR -.if \\n[.$] .fnt@switch \fI \fR \\$@ -.. -.de RI -.if \\n[.$] .fnt@switch \fR \fI \\$@ -.. -.de RB -.if \\n[.$] .fnt@switch \fR \fB \\$@ -.. -.de BR -.if \\n[.$] .fnt@switch \fB \fR \\$@ -.. -.\"########################### module box ############################ -.\" draw a box around some text. Text will be kept on the same page. -.\" -.nr box*ll 0 -.\" .B1 and .B2 works like .DS -.de B1 -.if \\n[box*ll] .@error "B1: missing B2" -.nr box*ll \\n[.l] -.nr box*ind \\n[.i] -.nr box*hyp \\n[.hy] -.nr box*wid \\n[.l]-\\n[.i] -.\" -.\" jump to new environment. -.ev box*ev -.di box*div -.ps \\n[@ps]u -.vs \\n[@vs]u -.in 1n -.ll (u;\\n[box*wid]-1n) -.hy \\n[.hy] -.. -.de B2 -.if !\\n[box*ll] .@error "B2: missing B1" -.br -.di -.nr box*height \\n[dn] -.ne \\n[dn]u+1v -.ll \\n[box*ll]u -.in \\n[box*ind]u -.nr box*y-pos \\n[.d]u -.nf -.box*div -.fi -\v'-1v+.25m'\ -\D'l \\n[box*wid]u 0'\ -\D'l 0 -\\n[box*height]u'\ -\D'l -\\n[box*wid]u 0'\ -\D'l 0 \\n[box*height]u' -.br -.sp -1 -.ev -.sp .20v -.in \\n[box*ind]u -.ll \\n[box*ll]u -.rm box*div -.nr box*ll 0 -.. -.\"########################### module ref ############################ -.nr ref*nr 0 1 -.aln :R ref*nr -.nr ref*nr-width 5n -.nr ref*flag 0 \" for end-of-text -.ds Rf \v'-.4m'\s-3[\\n+[ref*nr]]\s0\v'.4m' -.\" -.\" start reference -.\"------------ -.de RS -.if !''\\$1' .ds \\$1 \v'-.4m'\s-3[\\n[ref*nr]]\s0\v'.4m' -.nr ref*flag 1 -.am ref*mac -.ref@start-print \\n[ref*nr] -\\.. -.eo -.am ref*mac RF -.. -.\"------------ -.de RF -.ec -.am ref*mac -.ref@stop-print -\\.. -.. -.\"------------ -.de ref@start-print -.di ref*div -.in \\n[ref*nr-width]u -.ti -(\w@\\$1.@u+1n) -\\$1. -.sp -1 -.. -.de ref@stop-print -.br -.di -.ne \\n[dn]u -.ev ref*ev2 -.nf -.ref*div -.ev -.rm ref*div -.if \\n[Ls] .SP \\n[Lsp]u -.. -.\"----------- -.de RP -.if !d ref*mac .@error "RP: No references!" -.nr ref*i 0\\$2 -.if \\n[ref*i]<2 .SK -.SP 2 -.ref@print-refs -.if 0\\$1<1 .nr ref*nr 0 1 -.if ((\\n[ref*i]=0):(\\n[ref*i]=2)) .SK -.. -.\"----------- -.\" called by end-of-text! -.de ref@eot-print -.\".if \\n[ref*flag] \{ -.if d ref*mac \{\ -. if \\n[D]>2 .tm Print references, called by eot -. nr ref*flag 0 -. br -. misc@ev-keep ne -. init@reset -\c -' bp -. ev -. ref@print-refs -.\} -.. -.\"----------- -.\" prints the references -.de ref@print-refs -.toc@save 1 "" "\\*[Rp]" \\n[%] -.ce -\fI\\*[Rp]\fP -.sp -.nr ref*ll \\n[.l] -.misc@ev-keep ref*ev -.ll \\n[ref*ll]u -.in 0 -.ref*mac -.in -.rm ref*mac -.ev -.nr ref*flag 0 1 -.. -.\"########################### module app ############################ -.\" -.nr app*nr 0 1 -.af app*nr A -.nr app*dnr 0 1 -.nr app*flag 0 -.\"------------ -.\" .APP name text -.\" name == "" -> autonumber -.de APP -.\" .if \\n[.$]<2 .@error "APP: too few arguments" -.app@set-ind "\\$1" -.\" -.ds Tcst ap -.ds Apptxt \\$2 -.\" -.ie \\n[Aph] .app@header \\*[app*ind] "\\$2" -.el .bp -.app@index "\\*[app*ind]" "\\$2" -.. -.\"------------ -.\" .APPSK name pages text -.\" name == "" -> autonumber -.de APPSK -.if \\n[.$]<2 .@error "APPSK: too few arguments" -.app@set-ind "\\$1" -.\" -.ds Tcst ap -.ds Apptxt \\$3 -.\" -.ie \\n[Aph] .app@header \\*[app*ind] "\\$3" -.el .bp -.app@index "\\*[app*ind]" "\\$3" -.pn +\\$2 -.. -.\"------------ -.de app@set-ind -.ie \w@\\$1@ .ds app*ind \\$1 -.el \{\ -. if !\\n[app*flag] \{\ -. nr H1 0 1 -. af H1 A -. af H1h A -. nr app*flag 1 -. \} -. ds app*ind \\n+[app*nr] -. nr H1 \\n+[app*dnr] -. nr H1h \\n[app*dnr] -.\} -.\" clear lower counters -.nr app*i 1 1 -.while \\n+[app*i]<15 .nr H\\n[app*i] 0 1 -.. -.\"------------ -.de app@index -.toc@save 1 "" "\\*[App] \\$1: \\$2" \\n[%] -.. -.\"------------ -.\" app@heaer name text -.de app@header -.bp -.SP (u;\\n[Lsp]*4) -.ce 1 -\s+4\fB\\*[App]\ \\$1\fP\s0 -.SP (u;\\n[Lsp]*2) -.if \w@\\$2@<\\n[.l] .ce 1 -\fB\s+2\\$2\s0\fP -.SP (u;\\n[Lsp]*4) -.. -.als APPX app@header -.\"########################### module cov ############################ -.\" title stored in diversion cov*title -.\" abstract stored in diversion cov*abstract -.\" arg to abstract stored in cov*abs-arg -.\" indent stored in cov*abs-ind -.\" number of authors stored in cov*au -.\" author(s) stored in cov*au!x!y -.\" author(s) title stored in cov*at!x!y -.\" x is the author-index [1-cov*au], y is the argument-index [1-9]. -.\" author(s) firm stored in cov*firm -.\" new date (if .ND exists) is stored in cov*new-date -.\" -.\" -.ds cov*abs-name ABSTRACT -.\" -.nr cov*au 0 -.de TL -.rm IA IE WA WE LO LT -.if \\n[.$]>0 .ds cov*title-charge-case \\$1 -.if \\n[.$]>1 .ds cov*title-file-case \\$2 -.pg@disable-top-trap -.eo -.de cov*title AU -.. -.\"------------------- -.de cov@title-end -.ec -.. -.\"------------------- -.\" .AU name [initials [loc [dept [ext [room [arg [arg [arg]]]]]]]] -.de AU -.cov@title-end -.pg@disable-top-trap -.nr cov*au +1 -.nr cov*i 0 1 -.ds cov*au!\\n[cov*au]!1 -.while \\n[.$]>=\\n+[cov*i] \{\ -. ds cov*au!\\n[cov*au]!\\n[cov*i] "\\$[\\n[cov*i]] -.\} -.if (\\n[.$]>=3)&(\w@\\$3@) \{\ -. if d cov*location-\\$3] \{\ -. ds cov*au!3!\\n[cov*au] \\*[cov*location-\\$3] -. \} -.\} -.. -.\"------------------- -.\" .AT title1 [title2 [... [title9] ]]]] -.\" Well, thats all that COVEND look for. -.\" Must appear directly after .AU -.de AT -.if \\n[.$]<1 .@error "AT: no arguments" -.nr cov*i 0 1 -.while \\n[.$]>=\\n+[cov*i] \{\ -. ds cov*at!\\n[cov*au]!\\n[cov*i] "\\$[\\n[cov*i]] -.\} -.. -.\"------------------- -.de AF -.cov@title-end -.if !''\\$1' .ds cov*firm \\$1 -.. -.de AST -.ds cov*abs-name \\$1 -.. -.de AS -.pg@disable-top-trap -.if d cov*abstract .@error "AS: only one abstract allowed" -.if !''\\n[.z]' .@error "AS: no diversion allowed (previous .AS?)" -.nr cov*abs-arg 0\\$1 -.nr cov*abs-ind (n;0\\$2) -.de cov*abstract AE -.. -.de AE -.. -.\" fixed for 2000, now uses \n[year]. -.de ISODATE -. \" support for ISO-date -. nr cov*mm \\n[mo] -. nr cov*dd \\n[dy] -. af cov*mm 01 -. af cov*dd 01 -. ie '0'\\$1' \{\ -. ds cov*new-date \\*[MO\\n[mo]] \\n[dy], \\n[year] -. \} -. el \{\ -. ds cov*new-date \\n[year]-\\n[cov*mm]-\\n[cov*dd] -. \} -.. -.ISODATE 0 -.als DT cov*new-date -.de ND -.ds cov*new-date \\$1 -.. -.\" switch to ISO-date if register Iso exist: YYYY-MM-DD -.if r Iso .ISODATE 1 -.\"------------------- -.\" save technical numbers. -.de TM -.nr cov*i 0 1 -.while \\n[.$]>=\\n+[cov*i] .ds cov*mt-tm!\\n[cov*i] \\$[\\n[cov*i]] -.nr cov*mt-tm-max \\n[.$] -.. -.\"----------------------- -.\" cover sheet -.\" the file must have the following last lines (somewhere): -.\" .pg@enable-top-trap -.\" .bp 1 -.\" .pg@enable-trap -.ds cov*mt-file!0 0.MT -.ds cov*mt-file!1 0.MT -.ds cov*mt-file!2 0.MT -.ds cov*mt-file!3 0.MT -.ds cov*mt-file!4 4.MT -.ds cov*mt-file!5 5.MT -.ds cov*mt-file!6 0.MT -.\"------------ -.de MT -.ie \\n[.$] \{\ -. ie d cov*mt-file!\\$1 .ds cov*mt-type \\$1 -. el .ds cov*mt-type 6 -.\} -.el .ds cov*mt-type 1 -.ds cov*mt-addresse "\\$2 -.ds cov*mt-type-text "\\$1 -.ie d @language .ds cov*str mm/\\*[@language]_ -.el .ds cov*str mm/ -.mso \\*[cov*str]\\*[cov*mt-file!\\*[cov*mt-type]] -.. -.de COVER -.ie !\\n[.$] .ds cov*cov-type ms -.el .ds cov*cov-type \\$1 -.pg@disable-top-trap -.ie d @language .ds cov*str mm/\\*[@language]_\\*[cov*cov-type].cov -.el .ds cov*str mm/\\*[cov*cov-type].cov -.mso \\*[cov*str] -.. -.\"########################### module qrf ############################ -.\" forward and backward reference thru special files. -.\" -.\" check if stderr-method is wanted -.\" This was needed when I discovered that groff was considered unsafe -.\" and groff -U didn't work. It's a workaround like the original -.\" index method, but not in my view elegant enough. -.\" -.\" init reference system -.de INITR -.ds qrf*file \\$1.qrf -.nr qrf*pass 2 -.if \\n[D]>1 .tm INITR: source \\*[qrf*file] -.ie \\n[Ref] \{\ -. tm .\\\\" Rfilename: \\*[qrf*file] -.\} -.el 'so \\*[qrf*file] -.. -.\"--------------- -.\" set a reference. -.de SETR -.if \\n[.$]<1 .@error "SETR:reference name missing" -.if !r qrf*pass .tm "SETR: No .INITR in this file" -.if \\n[Ref] \{\ -. ds qrf*name qrf*ref-\\$1 -. if \\n[D]>2 .tm SETR: ref \\*[qrf*name]=\\*[hd*mark],\\n[%] -. \" heading-number -. ds \\*[qrf*name]-hn \\*[hd*mark] -. \" page-number -. ds \\*[qrf*name]-pn \\n[%] -. \" -. if \\n[Ref] \{\ -. tm .ds \\*[qrf*name]-hn \\*[hd*mark] -. tm .ds \\*[qrf*name]-pn \\n[%] -. if !'\\$2'' .tm .ds \\*[qrf*name]-xx \\$2 -. \} -.\} -.. -.\"--------------- -.\" get misc-string -.\" If two arg -> set var. arg to misc-string. -.de GETST -.if \\n[.$]<1 .@error "GETST:reference name missing" -.if !r qrf*pass .tm "GETST: No .INITR in this file" -.ds qrf*name qrf*ref-\\$1 -. if d \\*[qrf*name]-xx \{\ -. ie \\n[.$]>1 .ds \\$2 \\*[\\*[qrf*name]-xx] -. el \\*[\\*[qrf*name]-xx]\c -. \} -.\} -.. -.\"--------------- -.\" get header-number -.\" If two arg -> set var. arg to header-number. -.de GETHN -.if \\n[.$]<1 .@error "GETHN:reference name missing" -.if !r qrf*pass .tm "GETHN: No .INITR in this file" -.ds qrf*name qrf*ref-\\$1 -.if d \\*[qrf*name]-hn \{\ -. ie \\n[.$]>1 .ds \\$2 \\*[\\*[qrf*name]-hn] -. el \\*[\\*[qrf*name]-hn]\c -.\} -.. -.\"--------------- -.\" get page-number -.\" If two arg -> set var. arg to page-number. -.de GETPN -.if \\n[.$]<1 .@error "GETPN:reference name missing" -.if !r qrf*pass .tm "GETPN: No .INITR in this file" -.ds qrf*name qrf*ref-\\$1 -.if d \\*[qrf*name]-pn \{\ -. ie \\n[.$]>1 .ds \\$2 \\*[\\*[qrf*name]-pn] -. el \\*[\\*[qrf*name]-pn]\c -.\} -.. -.\"---------- -.de GETR -.if \\n[.$]<1 .@error "GETR:reference name missing" -.ie !r qrf*pass \{\ -. tm "GETR: No .INITR in this file" -.\} -.el \{\ -. GETHN \\$1 Qrfh -. GETPN \\$1 Qrfp -\\*[Qrf] -.\} -.. -.\"########################### module ind ############################ -.\" Support for mgs-style indexing, borrowed from mgs. -.de IX -. tm \\$1\t\\$2\t\\$3\t\\$4 ... \\n[%] -.. -.\"-------------------- -.\" Another type of index system -.\" INITI type filename [macro] -.de INITI -.if \\n[.$]<1 .@error "INITI:type missing" -.\" ignore if INITI has already been used -.if \\n[.$]>1 \{\ -. if d ind*file .@error "INITI:file already set" -. ds ind*file \\$2.ind -. if \\n[D]>1 .tm INITI: source \\*[ind*file] -.\} -.if !d ind*file .@error "INITI:file not specified" -.ds ind*type \\$1 -.if \\n[Ref] \{\ -. if \\n[.$]>2 .tm .\\\\" Imacro: \\$3 -.\} -.. -.\"--------------- -.de IND -.if !d ind*file .@error "IND: No active INITI" -.if \\n[D]>1 .tm IND: type=\\*[ind*type] -.ds ind*ref -.if '\\*[ind*type]'N' .ds ind*ref \\n[%] -.if '\\*[ind*type]'H' .ds ind*ref \\*[hd*mark] -.if '\\*[ind*type]'B' .ds ind*ref \\*[hd*mark]\t\\n[%] -.if '\\*[ind*ref]'' .@error "IND:wrong index type: \\*[ind*ref]" -.\" -.ds ind*line \\$1 -.while \\n[.$]>0 \{\ -. shift -. as ind*line \t\\$1 -.\} -.as ind*line \\*[ind*ref] -.if \\n[Ref] .tm .\\\\" IND \\*[ind*line] -.. -.\" print index -.de INDP -.ie \\n[Ref] .tm .\\\\" Index: \\*[ind*file] -.el \{\ -. if !\\n[Cp] .pg@next-page -. \" print INDEX -. \" execute user-defined macros -. if d TXIND .TXIND -. ie d TYIND .TYIND -. el \{\ -. SK -. ce -\\*[Index] -. SP 3 -. 2C -. nf -. \} -' so \\*[ind*file] -. ie d TZIND .TZIND -. el \{\ -. fi -. 1C -. \} -.\} -.rm ind*file -.. -.\"########################### module let ############################ -.\" Letter macros -.\"------------------------ -.\" Formal closing -.de FC -.df@print-float 3 -.ie \\n[.$] .ds let*i \\$1 -.el .ds let*i \\*[Letfc] -.ie d let*type .let@fc_\\*[let*type] "\\*[let*i]" \\$@ -.el .let@mt-closing "\\*[let*i]" \\$@ -.. -.\"------- -.de let@mt-closing -.ne 5v -.in (u;\\n[.l]/2) -.sp -\\$1 -.in -.. -.\"------------------------ -.\" Signature line -.de SG -.ie d let*type .let*lt-sign \\$@ -.el .let*mt-sign \\$@ -.. -.\"------------------------ -.de let*lt-sign -.if !d let@sg_\\*[let*type] .@error "SG: letter type \\*[let*type] undefined" -.df@print-float 3 -.nr let*i 0 1 -.nr let*j 0 -.while \\n+[let*i]<=\\n[let*wa-n] \{\ -.if \\n[let*i]=\\n[let*wa-n] .nr let*j 1 -.let@sg_\\*[let*type] "\\*[let*wa-name!\\n[let*i]]" "\\*[let*wa-title!\\n[let*i]]" \\n[let*i] \\n[let*j] \\$@ -.\} -.. -.\"------------------------ -.\" Memorandum signature -.de let*mt-sign -.df@print-float 3 -.ne \\n[cov*au]u*4v -.ie \\n[.$]>1 .nr let*k 1 -.el .nr let*k \\n[cov*au] -.ds let*tmp \\*[cov*au!\\n[let*k]!3]-\\*[cov*au!\\n[let*k]!4]- -.nr let*i 0 1 -.while \\n+[let*i]<=\\n[cov*au] \{\ -. if \\n[let*i]>1 .as let*tmp / -. as let*tmp \\*[cov*au!\\n[let*k]!2] -.\} -.if !''\\$1' .as let*tmp -\\$1 -.in (u;\\n[.l]/2) -.nf -.nr let*i 0 1 -.while \\n+[let*i]<=\\n[cov*au] \{\ -. SP 3v -. if \\n[let*i]=\\n[let*k] \{\ -\Z'\h'-(u;\\n[.l]/2)'\\*[let*tmp]'\c -. \} -\\*[cov*au!\\n[let*i]!1] -.\} -.fi -.in -.. -.\"------------------------ -.\" Approval signature -.de AV -.ne 6v -.nf -.sp -.ie \\n[.$]<2 \\*[Letapp] -.el .sp -.sp 2 -.ie n ______________________________ ______________ -.el \D'l 25m 0'\h'4m'\D'l 12m 0' -\Z'\\$1'\h'29m'\f[\\*[@sdf_font]]\\*[Letdate]\fP -.fi -.. -.\"------------------------ -.\" Letter signature -.de AVL -.ne 6v -.nf -.sp 3 -.ie n ______________________________ -.el \D'l 25m 0' -\Z'\\$1' -.fi -.. -.\"------------------------ -.\" Letter type -.\" let@header is called from the header. It is supposed -.\" to remove the alias itself. -.de LT -.rm AF AS AE AT AU CS OK TL MT -.ds let*type BL -.nr Pi 5 -.nr Pt 0 -.if !''\\$1' .ds let*type \\$1 -.if !d let@head_\\*[let*type] .@error "LT: unknown letter type \\$1" -.shift -.als let@header let@head_\\*[let*type] -.let@init_\\*[let*type] \\$@ -.if \n[D]>1 .tm Letter type \\*[let*type] -.. -.\"----------- -.\" Blocked letter -.de let@init_BL -.. -.de let@head_BL -.rm let@header -.let@print-head 1 -.. -.de let@sg_BL -.ne 5v -.nf -.in (u;\\n[.l]/2) -.sp 3v -\\$1 -\\$2 -.in -.if \\$4 .sp -.if \w'\\$5'&\\$4 \\$5 -.fi -.. -.als let@fc_BL let@mt-closing -.\"----------- -.\" Semiblocked letter -.de let@init_SB -.nr Pt 1 -.. -.de let@head_SB -.rm let@header -.let@print-head 1 -.. -.als let@sg_SB let@sg_BL -.als let@fc_SB let@mt-closing -.\"----------- -.\" Full-blocked letter -.de let@init_FB -.. -.de let@head_FB -.rm let@header -.let@print-head -.. -.de let@sg_FB -.ne 5v -.nf -.sp 3v -\\$1 -\\$2 -.if \\$4 .sp -.if \w'\\$5'&\\$4 \\$5 -.fi -.. -.de let@fc_FB -.ne 5v -.sp -\\$1 -.. -.\"----------- -.\" Simplified letter -.de let@init_SP -.. -.de let@head_SP -.rm let@header -.let@print-head -.. -.de let@sg_SP -.nf -.if \\$3=1 .sp -.sp -.misc@toupper "\\$1, \\$2" -.if \\$4 .sp -.if \w'\\$5'&\\$4 \\$5 -.fi -.. -.de let@fc_SP -.sp 2 -.. -.\"-------------------------------------- -.\" Print the letter-head -.de let@print-head -.nf -.sp |11 -.if '1'\\$1' .in (u;\\n[.l]/2) -.\" ---- WA -.ie d let@wa-div .let@wa-div -.el .sp 3 -.\" ---- datum -\\*[cov*new-date] -.sp -.if '1'\\$1' .if !d let*lo-CN .if !d let*lo-RN .sp 2 -.\" ---- Confidential -.if d let*lo-CN \{\ -. ti 0 -. ie !''\\*[let*lo-CN]' \\*[let*lo-CN] -. el \\*[LetCN] -. sp -.\} -.\" ---- Reference -.if d let*lo-RN \{\ -\\*[LetRN] \\*[let*lo-RN] -. sp -.\} -.\" ---- IA -.sp -.in 0 -.nr let*i 0 1 -.while \\n+[let*i]<=\\n[let*ia-n] \{\ -\\*[let*ia-name!\\n[let*i]] -\\*[let*ia-title!\\n[let*i]] -.\} -.if d let@ia-div .let@ia-div -.\" ---- Attention -.if d let*lo-AT \{\ -. sp -\\*[LetAT] \\*[let*lo-AT] -.\} -.\" ---- Salutation -.if !'\\*[let*type]'SP' .if d let*lo-SA \{\ -. sp -. ti 0 -. ie !''\\*[let*lo-SA]' \\*[let*lo-SA] -. el \\*[LetSA] -.\} -.\" ---- Subject -.if d let*lo-SJ \{\ -. ie '\\*[let*type]'SP' \{\ -. sp 2 -. misc@toupper \\*[let*lo-SJ] -. sp -. \} -. el \{\ -. sp -. if '\\*[let*type]'SB' .ti +5m -\\*[LetSJ] \f[\\*[@sdf_font]]\\*[let*lo-SJ]\fP -. \} -.\} -.. -.\"------------------- -.\" .IA [name [title]] -.nr let*ia-n 0 1 -.de IA -.if \\n[.$] .ds let*ia-name!\\n+[let*ia-n] \\$1 -.if \\n[.$]>1 .ds let*ia-title!\\n[let*ia-n] \\$2 -.ev let@ev -.init@reset -'nf -.di let@ia-div -.eo -.. -.de IE -.di -.ec -.ev -.. -.\"------------------- -.\" .WA [name [title]] -.nr let*wa-n 0 1 -.de WA -.if \\n[.$] .ds let*wa-name!\\n+[let*wa-n] \\$1 -.if \\n[.$]>1 .ds let*wa-title!\\n[let*wa-n] \\$2 -.ev let@ev -.init@reset -'nf -.di let@wa-div -.it \\n[Letwam] let@wa-drain -.eo -.. -.\"------ -.de let@wa-drain -.it -.di -.di let@wa-junk -.. -.\"------ -.de WE -.it -.ec -.di -.ev -.if d let@wa-junk .rm let@wa-junk -.. -.\"------------------- -.\" Copy to -.de NS -.sp -.ie !''\\$2' .ds let*str \\$1 -.el \{\ -. ie \\n[.$]>0 \{\ -. ie !\w'\\$1' .ds let*str \\*[Letns!\\*[Letnsdef]] -. el \{\ -. ie d Letns!\\$1 .ds let*str \\*[Letns!\\$1] -. el .ds let*str \\*[Letns!copy](\\$1)\\*[Letns!to] -. \} -. \} -. el .ds let*str \\*[Letns!\\*[Letnsdef]] -.\} -.ne 2 -.nf -\\*[let*str] -.. -.de NE -.fi -.. -.\"------------------- -.\" Letter options -.de LO -.rm AF AS AE AT AU CS OK TL MT -.if ''\\$1' .@error "LO: missing option" -.if !d Let\\$1 .@error "LO: unknown option (\\$1)" -.ds let*lo-\\$1 \\$2 -.if \n[D]>1 .tm Letter option \\$1 \\$2 -.. -.\"-------------------- -.\" Start with a clean slate -.init@reset diff --git a/src/contrib/mm/mm.tmac b/src/contrib/mm/mm.tmac deleted file mode 100644 index 9ed09b7..0000000 --- a/src/contrib/mm/mm.tmac +++ /dev/null @@ -1,3 +0,0 @@ -.\" mm.tmac -.\" -.do mso m.tmac diff --git a/src/contrib/mm/mm/0.MT b/src/contrib/mm/mm/0.MT deleted file mode 100644 index 61f1a96..0000000 --- a/src/contrib/mm/mm/0.MT +++ /dev/null @@ -1,146 +0,0 @@ -.\"------------ -.\" $Id: 0.MT,v 2.0 2000/09/14 03:40:25 jhaegg Exp $ -.\" Cover sheet. Memorandum type 0-3 and "string". -.\"------------ -.if !r Au .nr Au 1 -.nr cov*mt0-ind 1.1c -.de cov@print-title -.MOVE 4.8c 1.5c -.S 8 -subject: -.sp -1.1 -.S -.PGFORM -.ft \\*[@sdf_font] -.ll 9c -.fi -.cov*title -.ft -.ll -.nf -.if d cov*title-charge-case \fBCharge Case \\*[cov*title-charge-case]\fP -.if d cov*title-file-case \fBFile Case \\*[cov*title-file-case]\fP -.fi -.. -.\"------------ -.de cov@print-authors -.MOVE 5.7c 13.3c -.nf -.S 8 -\\$1: -.br -.S -.sp -1 -.in 0.8c -.ft \\*[@sdf_font] -.nr cov*i 0 1 -.while \\n+[cov*i]<=\\n[cov*au] \{\ -. cov@print-au1 \\n[cov*i] 1 -. if \\n[Au] \{\ -. cov@print-au2 \\n[cov*i] 3 4 -. cov@print-au2 \\n[cov*i] 6 5 -. cov@print-au1 \\n[cov*i] 7 -. cov@print-au1 \\n[cov*i] 8 -. cov@print-au1 \\n[cov*i] 9 -. \} -. if \\n[cov*i]<\\n[cov*au] .SP 1 -.\} -.ft -.if r cov*mt-tm-max \{\ -. SP 1 -. nr cov*i 0 1 -. ft \\*[@sdf_font] -TM -. in 1.5c -. sp -1 -. while \\n+[cov*i]<\\n[cov*mt-tm-max] \\*[cov*mt-tm!\\n[cov*i]] -. in -. ft -.\} -.fi -.PGFORM -.. -.\"------------ -.\" index arg1 -.de cov@print-au1 -.if d cov*au!\\$1!\\$2 \\*[cov*au!\\$1!\\$2] -.. -.\"------------ -.de cov@print-au2 -.\" index arg1 arg2 -.if d cov*au!\\$1!\\$2 \\*[cov*au!\\$1!\\$2] \c -.if \\$3=5 .if d cov*au!\\$1!\\$3 x\c -.if d cov*au!\\$1!\\$3 \\*[cov*au!\\$1!\\$3]\c -.br -.. -.\"------------ -.de cov@print-date -.MOVE 4.8c 13.3c -.S 8 -.nf -\\$1: -.br -.S -.sp -1 -.in 0.8c -\f[\\*[@sdf_font]]\\*[cov*new-date]\fP -.br -.fi -.PGFORM -.. -.\"------------ -.de cov@print-firm -.if d cov*firm \{\ -. MOVE 2.8c 0 17.7c -. S 18 -. rj 1 -\fB\\*[cov*firm]\fP -. S -. PGFORM -.\} -.. -.\"------------ -.de cov@print-abstract -.SP 3 -.if d cov*abstract \{\ -. misc@ev-keep cov*ev -. if \\n[cov*abs-ind]>0 \{\ -. in +\\n[cov*abs-ind]u -. ll -\\n[cov*abs-ind]u -. \} -. ce -\fI\\$1\fP -. SP 1.5 -. fi -. cov*abstract -. br -. ev -.\} -.. -.\"----------------- -.ds cov*mt0-txt!1 MEMORANDUM FOR FILE -.ds cov*mt0-txt!2 PROGRAMMER'S NOTES -.ds cov*mt0-txt!3 ENGINEER'S NOTES -.if d cov*default-firm .if !d cov*firm .ds cov*firm \\*[cov*default-firm] -.\" -.if !d cov*mt-printed \{\ -. cov@print-firm -. cov@print-title subject -. cov@print-date date -. cov@print-authors from -. cov@print-abstract \\*[cov*abs-name] -. SP 3 -. if (\*[cov*mt-type]>=1)&(\*[cov*mt-type]<=3) \{\ -. ce -\fI\*[cov*mt0-txt!\*[cov*mt-type]]\fP -. SP 1.5 -. \} -. if \*[cov*mt-type]=6 \{\ -. ce -\fI\*[cov*mt-type-text]\fP -. SP 1.5 -. \} -. pg@enable-top-trap -. pg@enable-trap -. ds cov*mt-printed -.\} diff --git a/src/contrib/mm/mm/4.MT b/src/contrib/mm/mm/4.MT deleted file mode 100644 index 78c7766..0000000 --- a/src/contrib/mm/mm/4.MT +++ /dev/null @@ -1,82 +0,0 @@ -.\"------------ -.\" $Id: 4.MT,v 2.2 2003/04/02 04:06:40 jhaegg Exp $ -.\" Cover sheet. Memorandum type 4 -.\"------------ -.de cov@print-title -.if !d cov*title .@error title (.TL) not defined! -.MOVE 2.8c -.S +2 -.ad c -.fi -.B -.cov*title -.br -.S -.R -.ad b -.. -.\"------------ -.de cov@print-authors -.SP 0.5 -.I -.S +1 -.nr cov*i 0 1 -.while \\n+[cov*i]<=\\n[cov*au] \{\ -.ce -\\*[cov*au!\\n[cov*i]!1] -.br -.\} -.S -.R -.. -.\"------------ -.de cov@print-firm -.if d cov*firm \{\ -. SP 0.5 -. ce -\\*[cov*firm] -.\} -.. -.\"------------ -.de cov@print-abstract -.SP 2 -.if d cov*abstract \{\ -. misc@ev-keep cov*ev -. init@reset -. if \\n[cov*abs-ind]>0 \{\ -. in +\\n[cov*abs-ind]u -. ll -\\n[cov*abs-ind]u -. \} -. ce -\fI\\*[cov*abs-name]\fP -. SP 2 -. fi -. cov*abstract -. br -. ev -.\} -.. -.\"----------------- -.if d cov*default-firm .if !d cov*firm .ds cov*firm \\*[cov*default-firm] -.if !d cov*mt-printed \{\ -. cov@print-title -. cov@print-authors -. cov@print-firm -. if d cov*abstract \{\ -. if !\n[cov*abs-arg] .cov@print-abstract -. \} -. SP 2 -. nr hd*cur-bline \n[nl] -. ds cov*mt-printed -. pg@enable-top-trap -. pg@enable-trap -.\} -.de CS -.pg@disable-top-trap -.SK -.cov@print-title -.cov@print-authors -.cov@print-firm -.cov@print-abstract -.. - diff --git a/src/contrib/mm/mm/5.MT b/src/contrib/mm/mm/5.MT deleted file mode 100644 index a274d23..0000000 --- a/src/contrib/mm/mm/5.MT +++ /dev/null @@ -1,34 +0,0 @@ -.\"------------ -.\" $Id: 5.MT,v 2.0 2000/09/14 03:40:25 jhaegg Exp $ -.\" Cover sheet. Memorandum type 5 -.\"------------ -.nr cov*mt0-ind 1.1c -.de cov@print-title -.B -.ll 9c -.fi -.cov*title -.R -.ll -.nf -.if d cov*title-charge-case \fBCharge Case \\*[cov*title-charge-case]\fP -.if d cov*title-file-case \fBFile Case \\*[cov*title-file-case]\fP -.fi -.. -.\"------------ -.de cov@print-date -.rj 1 -\f[\\*[@sdf_font]]\\*[cov*new-date]\fP -.br -.. -.\"------------ -.if !d cov*mt-printed \{\ -. SP 1.9c -. cov@print-title -. SP 1.2c -. cov@print-date -. SP 3 -. pg@enable-top-trap -. pg@enable-trap -. ds cov*mt-printed -.\} diff --git a/src/contrib/mm/mm/ms.cov b/src/contrib/mm/mm/ms.cov deleted file mode 100644 index 25d4579..0000000 --- a/src/contrib/mm/mm/ms.cov +++ /dev/null @@ -1,84 +0,0 @@ -.\"------------ -.\" $Id: ms.cov,v 2.0 2000/09/14 03:40:25 jhaegg Exp $ -.\" Cover sheet. Mostly like ms cover. -.\"------------ -.de cov@print-title -.in 0 -.misc@ev-keep cov*ev -.init@reset -.ad c -.hy 0 -.fi -.B -.cov*title -.br -.ad b -.R -.ev -.. -.\"------------ -.de cov@print-authors -.SP -.nr cov*i 0 1 -.while \\n+[cov*i]<=\\n[cov*au] \{\ -. ce -\fI\\*[cov*au!\\n[cov*i]!1]\fP -. nr cov*j 0 1 -. while \\n+[cov*j]<=9 \{\ -. if d cov*at!\\n[cov*i]!\\n[cov*j] \{\ -. if \w'\\*[cov*at!\\n[cov*i]!\\n[cov*j]]' \{\ -. ce -\s-1\\*[cov*at!\\n[cov*i]!\\n[cov*j]]\s0 -. .\} -. \} -. \} -.\} -.. -.\"------------ -.de cov@print-firm -.SP .5 -.ce -\\*[cov*firm] -.. -.\"------------ -.de cov@print-abstract -.SP 2 -.if d cov*abstract \{\ -. misc@ev-keep cov*ev -. init@reset -. if \\n[cov*abs-ind]>0 \{\ -. in +\\n[cov*abs-ind]u -. ll -\\n[cov*abs-ind]u -. \} -. ce -\fI\\$1\fP -. SP 1.5 -. fi -. cov*abstract -. br -. ev -.\} -.. -.\"------------ -.de cov@print-date -.SP 2 -\f[\\*[@sdf_font]]\\*[cov*new-date]\fP -.. -.\"----------------- -.de COVEND -.br -.if d cov*default-firm .if !d cov*firm .ds cov*firm \\*[cov*default-firm] -.sp |4.2c -.cov@print-title -.cov@print-authors -.cov@print-firm -.cov@print-abstract \\*[cov*abs-name] -.cov@print-date -.pg@enable-top-trap -.bp 1 -.pg@enable-trap -.if d cov*abs-arg .if \\n[cov*abs-arg] \{\ -. cov@print-abstract ABSTRACT -. SP 2 -.\} -.. diff --git a/src/contrib/mm/mm/se_ms.cov b/src/contrib/mm/mm/se_ms.cov deleted file mode 100644 index 2d16d48..0000000 --- a/src/contrib/mm/mm/se_ms.cov +++ /dev/null @@ -1,3 +0,0 @@ -.\" $Id: se_ms.cov,v 2.0 2000/09/14 03:40:25 jhaegg Exp $ -.mso mm/ms.cov -.nr cur*abstract-ll 11c diff --git a/src/contrib/mm/mmse.tmac b/src/contrib/mm/mmse.tmac deleted file mode 100644 index 8198666..0000000 --- a/src/contrib/mm/mmse.tmac +++ /dev/null @@ -1,3 +0,0 @@ -.\" mmse.tmac -.\" -.do mso mse.tmac diff --git a/src/contrib/mm/mse.tmac b/src/contrib/mm/mse.tmac deleted file mode 100644 index 6a73e3c..0000000 --- a/src/contrib/mm/mse.tmac +++ /dev/null @@ -1,184 +0,0 @@ -.\" $Id: mse.tmac,v 2.1 2000/11/17 04:26:02 jhaegg Exp $ -.\" -.\" swedish version of mm -.\" See m.tmac for version-information. -.ds @language se -.mso m.tmac -.ISODATE -.\" -.ds App Bilaga -.ds Lf Figurer -.ds Lt Tabeller -.ds Lx Uppställningar -.ds Le Ekvationer -.\" Page length -.if !r L .nr @pl 28.5c -.\" page width -.if !r W .nr @ll 13c -.\" page offset -.if !r O .nr @po 3.5c -.\" set the above parameters -.ll \n[@ll]u -.po \n[@po]u -.pl \n[@pl]u -.ds Lifg Figur -.ds Litb Tabell -.ds Liex Uppställning -.ds Liec Ekvation -.ds Licon InnehÃ¥llsförteckning -.ds Qrf Se kapitel \\*[Qrfh], sidan \\*[Qrfp]. -.ds Rp Referenser -.ds Letfc Vänliga hälsningar -.ds Letapp Godkänd av: -.ds Letdate datum -.ds Letconf KONFIDENTIELLT -.ds Letsal Till vederbörande: -.ds Letatt ATTENTION: -.ds Letsubj InnehÃ¥ll: -.ds Letref Refererande till: -.\" -.ds Letns!copy Kopia \" space! -.ds Letns!to " till -.ds Letns!0 Kopia till -.ds Letns!1 Kopia (med att.) till -.ds Letns!2 Kopia (utan att.) till -.ds Letns!3 Att. -.ds Letns!4 Atts. -.ds Letns!5 Enc. -.ds Letns!6 Encs. -.ds Letns!7 Annat försättsblad -.ds Letns!8 Brev till -.ds Letns!9 Dokument till -.ds Letns!10 Kopia (med atts.) till -.ds Letns!11 Kopia (utan atts.) till -.ds Letns!12 Endast abstract till -.ds Letns!13 Hela dokumentet till -.ds Letns!14 CC: -.\" -.ds MO1 januari -.ds MO2 februari -.ds MO3 mars -.ds MO4 april -.ds MO5 maj -.ds MO6 juni -.ds MO7 juli -.ds MO8 augusti -.ds MO9 september -.ds MO10 oktober -.ds MO11 november -.ds MO12 december -.nr pg*footer-size 4\" 1v+footer+even/odd footer+1v -.\"------------------------------------------------ -.\" Dokumentnamn -.ds LetDNAMN -.\" Mottagarens datum -.ds LetMDAT Ert datum: -.\" Bilaga -.ds LetBIL Bilaga \" -.\" Kompletteringsuppgift -.ds LetKOMP -.\" Dokumentbeteckning eller dokumentnummer -.ds LetDBET -.\" Beteckning (ärendebeteckning i form av diarienummer e.d. -.ds LetBET Beteckning: -.\" Mottagarens beteckning. -.ds LetMBET Er beteckning: -.\" Antal sidor -.ds LetSIDOR -.\" Svensk standard med högerställd löptext. --------------------- -.de let@init_SVH -.in 4.57c -.ll 17.57c -.. -.de let@head_SVH -.rm let@header -.let@print_SV H -.. -.de let@sg_SVH -.. -.de let@fc_SVH -.. -.\" Svensk standard med vänsterställd löptext. --------------------- -.de let@init_SVV -.. -.de let@head_SVV -.rm let@header -.let@print_SV V -.. -.de let@sg_SVV -.. -.de let@fc_SVV -.. -.\"-------------------------------- -.de let@print_SV -.nf -.\" pos T0 ----------------------------------- -.in 0 -.sp |3 -.if d let@wa-div .let@wa-div -.\"----- addressat -.if '\\$1'V' .if d let@ia-div \{\ -. sp |10 -. let@ia-div -.\} -.\" pos T4 ----------------------------------- -.in 9.14c -.\"----- kompletteringsuppgift -.if d let*lo-KOMP \{\ -. sp |2 -\\*[let*lo-KOMP] -.\} -.\"----- dokumentnamn -.if d let*lo-DNAMN \{\ -. sp |3 -\\*[let*lo-DNAMN] -.\} -.\"----- datum -.if d cov*new-date \{\ -. sp |5 -Datum: -\\*[cov*new-date] -.\} -.\"----- mottagarens datum -.if d let*lo-MDAT \{\ -. sp |7 -\\*[LetMDAT] -\\*[let*lo-MDAT] -.\} -.\"----- addressat -.if '\\$1'H' .if d let@ia-div \{\ -. sp |10 -. let@ia-div -.\} -.\" pos T6 ----------------------------------- -.in 13.72c -.\"----- mottagarens beteck. -.if d let*lo-MBET \{\ -. sp |7 -\\*[LetMBET] -\\*[let*lo-MBET] -.\} -.\"----- dokumentbeteck. -.if d let*lo-BET \{\ -. sp |3 -\\*[LetBET] -\\*[let*lo-BET] -.\} -.\" pos T7 ----------------------------------- -.in 16c -.\"----- bilaga -.if d let*lo-BIL \{\ -. sp |2 -\\*[LetBIL]\\*[let*lo-BIL] -.\} -.\" -.\"----- sidnummer -.sp |3 -.ie d let*lo-SIDOR \\n[%] (\\*[let*lo-SIDOR]) -.el \\n[%] -.\" -.\" Ta hand om special -.if d TP .TP -.sp |17 -.. -.\" ----------------------------------- diff --git a/src/contrib/mom/examples/README.txt b/src/contrib/mom/examples/README.txt deleted file mode 100644 index 6150958..0000000 --- a/src/contrib/mom/examples/README.txt +++ /dev/null @@ -1,115 +0,0 @@ -The files in this directory show mom in action. - -If you have downloaded and untarrred a version of mom from her -homepage, you'll see that none of the example files come with -corresponding PostScript (.ps) files, as they do with pre-compiled -versions of groff, or groff built from source. - -I haven't included the PostScript output because I want to -keep the mom archive as lean as possible. To view the PostScript -output, process the files with groff and either - - a) send the output to a separate file for previewing with a - PostScript viewer such as gv (ghostview), or - - b) to your printer. - -Using the file sample_docs.mom as an example, you would -accomplish a) like this: - - groff -mom -Tps sample_docs.mom > sample_docs.ps - gv sample_docs.ps - -Accomplishing b) depends on your printer setup, but a fairly -standard way to do it would be - - groff -mom -Tps sample_docs.mom | lpr - - or - - groff -mom -Tps -l sample_docs.mom - -Note: I don't recommend previewing with gxditview because it doesn't -render some of mom's effects properly. - -The files themselves --------------------- - -All are set up for 8.5x11 inch paper (US letter). - -***typesetting.mom** - -The file, typesetting.mom, demonstrates the use of typesetting tabs, -string tabs, line padding, multi-columns and various indent styles, -as well as some of the refinements and fine-tuning available via -macros and inline escapes. - -Because the file also demonstrates a "cutaround" using a small -picture (of everybody's favourite mascot, Tux), the PostScript file, -penguin.ps has been included in the directory. - -***sample_docs.mom*** - -The file, sample_docs.mom, shows examples of three of the document -styles available with the mom's document processing macros, as well -as demonstrating the use of COLLATE. - -The PRINTSTYLE of this file is TYPESET, to give you an idea of mom's -default behaviour when typesetting a document. - -The last sample, set in 2 columns, shows off mom's flexibility -when it comes to designing documents. - -If you'd like to see how mom handles exactly the same file when the -PRINTSTYLE is TYPEWRITE (i.e. typewritten, double-spaced), simply -change - - .PRINTSTYLE TYPESET - -to - - .PRINTSTYLE TYPEWRITE - -near the top of the file. - -***letter.mom*** - -This is just the tutorial example from the momdocs, ready for -previewing. - -***elvis_syntax.new*** - -For those who use the vi clone, elvis, you can paste this file into -your elvis.syn. Provided your mom documents have the extension -.mom, they'll come out with colorized syntax highlighting. The -rules in elvis_syntax aren't exhaustive, but they go a LONG way to -making mom files more readable. - -The file elvis_syntax (for pre-2.2h versions of elvis) is no longer -being maintained. Users are encouraged to update to elvis 2.2h or -higher, and to use elvis_syntax.new for mom highlighting. - -I'll be very happy if someone decides to send me syntax highlighting -rules for emacs. :) - -***mom.vim*** - -Christian V. J. Brüssow has kindly contributed a set of mom syntax -highlighting rules for use with vim. Copy the file to your -~/.vim/syntax directory, then, if your vim isn't already set up to -do so, enable mom syntax highlighting with - - :syntax enable - -or - - :syntax on - -Please note: I don't use vim, so I won't be making changes to this -file myself. Christian Brüssow is the maintainer of the ruleset, -which is available on the Web at - - http://www.cvjb.de/comp/vim/mom.vim - -Contact Christian (cvjb@cvjb.de) if you have any suggestions or -requests. diff --git a/src/contrib/mom/examples/elvis_syntax b/src/contrib/mom/examples/elvis_syntax deleted file mode 100644 index 64fbb3b..0000000 --- a/src/contrib/mom/examples/elvis_syntax +++ /dev/null @@ -1,90 +0,0 @@ -#Mom -language mom -extension .mom .tmac - -startword . -color startword normal - -inword _.' -color inword normal - -other initialpunct -mostly normal - -backslash none - -color args like fixed -color braces like char -color brackets like underlined -color chars like emphasized -color decimals like number -color ellipsis normal -color escapes like keyword -color math like cursor -color misc like string -color operators like string -color parens like comment -color reg_string like math -color tmac_escapes like keyword -color single_slash like char - -font args DA DE EN ES FR IT NL NO PT SV -font args DEFAULT CHAPTER NAMED LETTER -font args TYPESET TYPEWRITE -font args FINAL DRAFT -font args BLOCK QUAD -font args LEFT RIGHT CENTER CENTRE JUSTIFY TOP BOTTOM L R C J -font args OFF QUIT END EXIT DONE NO ALL -font args PAGE NUMBER STAR -font args LETTER LEGAL EXECUTIVE LEDGER TABLOID QUARTO FOLIO -font args 10x14 A3 A4 A5 B4 B5 -font args SINGLESPACE -font args FACTOR -font args DASH BULLET ALPHA DIGIT USER -font args RGB CYM CMYK GRAY GREY -font args COND CONDX EXT EXTX SUP SUPX CONDSUP CONDSUPX EXTSUP EXTSUPX -font args BOLDER BOLDERX SLANT SLANTX -font args UP DOWN BCK FWD BU BP FU FP -font args ROM IT BD BDI PREV -font args ST -font args SUSPEND RESUME - -prefix { \{ \{\ -font braces { \{ \{\ -prefix [ ] -font brackets [ ] -prefix \(bu \(co \(ct \(de \(dg \(di \(em \(en \(mu \(pl \(rg \(sc \(sq \(lq \(rq -font chars \(bu \(co \(ct \(de \(dg \(di \(em \(en \(mu \(pl \(rg \(sc \(sq \(lq \(rq -prefix \(14 \(12 \(34 \(+- -font chars \(14 \(12 \(34 \(+- -prefix \fR \fB \fI \fP \f0 \f1 \f2 \f3 -font chars \fR \fB \fI \fP \f0 \f1 \f2 \f3 -prefix .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 -font decimals . .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 -prefix \/ \/. \/? \/! \/, \/; \/: -font escapes \/ \/. \/? \/! \/, \/; \/: -prefix \, \,. \,? \,! \,, \,; \,: -font escapes \, \,. \,? \,! \,, \,; \,: -prefix \~ \0 \: \| \^ \& \% \! -font escapes \~ \0 \: \| \^ \& \% \! -prefix \b \c \C \d \D \e \f \f( \h \l \L \p \r \s \s+ \s- \S \u \v \w -font escapes \b \c \C \d \D \e \f \f( \h \l \L \p \r \s \s+ \s- \S \u \v \w -prefix ... -font ellipsis ... -prefix + - * / = == < > <= >= ? % -font math + - * / = == < > <= >= ? % -prefix | -font misc | -prefix ! : & -font operators ! : & -prefix ( ) -font parens ( ) -prefix # * $ -font reg_string # * $ -prefix \n \* \[ -font single_slash \n \* \[ -prefix \\n \\* \\$ -font tmac_escapes \\n \\* \\$ - -comment \# -comment \" diff --git a/src/contrib/mom/examples/elvis_syntax.new b/src/contrib/mom/examples/elvis_syntax.new deleted file mode 100644 index d31e0c2..0000000 --- a/src/contrib/mom/examples/elvis_syntax.new +++ /dev/null @@ -1,106 +0,0 @@ -" Steve Kirkendall has thoughtfully reworked elvis's syntax -" highlighting so that it now supports nroff constructs like \fBword -" and \(emword, with \fB and \(em being highlighted while "word" is -" not. -" -" There are some other enhancements as well, making it possible -" to have any word beginning with punctuation (i.e. groff -" requests) highlighted. I've decided to take advantage of these -" improvements, which apply to elvis-2.2h onwards, and write a new -" simplified set of syntax highlighting rules for mom. Just plug -" this file at the end of /etc/elvis/elvis.syn to use them. -" -" If you're using an older version of elvis, stick with the -" highlighting rules in the files elvis_syntax. - -#Mom -language mom -extension .mom .tmac - -startword . -color startword normal - -inword _.' -color inword normal - -other initialpunct -mostly normal - -backslash none - -color args like fixed -color braces like char -color brackets like underlined -color chars like emphasized -color decimals normal -color ellipsis normal -color escapes like keyword -color math like cursor -color misc like string -color operators like string -color parens like comment -color reg_string like math -color tmac_escapes like keyword -color single_slash like char - -font args DA DE EN ES FR IT NL NO PT SV -font args DEFAULT CHAPTER NAMED LETTER -font args TYPESET TYPEWRITE -font args FINAL DRAFT -font args BLOCK QUAD -font args LEFT RIGHT CENTER CENTRE JUSTIFY TOP BOTTOM L R C J -font args OFF QUIT END EXIT DONE NO ALL -font args PAGE NUMBER STAR LINE -font args LETTER LEGAL EXECUTIVE LEDGER TABLOID QUARTO FOLIO -font args 10x14 A3 A4 A5 B4 B5 -font args SINGLESPACE -font args FACTOR -font args DASH BULLET ALPHA DIGIT USER ROMAN roman alpha -font args SUSPEND RESUME -font args RGB CYM CMYK GRAY GREY -font args COND CONDX EXT EXTX SUP SUPX CONDSUP CONDSUPX EXTSUP EXTSUPX -font args BOLDER BOLDERX SLANT SLANTX -font args UP DOWN BCK FWD BU BP FU FP FN_MARK EN_MARK -font args ROM IT BD BDI PREV -font args ST - -prefix { \{ \} \{\ } -font braces { \{ \} \{\ } -prefix [ ] -font brackets [ ] -prefix \(bu \(co \(ct \(de \(dg \(di \(em \(en \(mu \(pl \(rg \(sc \(sq \(lq \(rq -font chars \(bu \(co \(ct \(de \(dg \(di \(em \(en \(mu \(pl \(rg \(sc \(sq \(lq \(rq -prefix \(14 \(12 \(34 \(+- -font chars \(14 \(12 \(34 \(+- -prefix \fR \fB \fI \fP \f0 \f1 \f2 \f3 -font chars \fR \fB \fI \fP \f0 \f1 \f2 \f3 -prefix .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 -font decimals . .0 .1 .2 .3 .4 .5 .6 .7 .8 .9 -prefix \/ \/. \/? \/! \/, \/; \/: -font escapes \/ \/. \/? \/! \/, \/; \/: -prefix \, \,. \,? \,! \,, \,; \,: -font escapes \, \,. \,? \,! \,, \,; \,: -prefix \~ \0 \: \| \^ \& \% \! -font escapes \~ \0 \: \| \^ \& \% \! -prefix \b \c \C \d \D \e \f \f( \h \l \L \p \r \s \s+ \s- \S \u \v \w -font escapes \b \c \C \d \D \e \f \f( \h \l \L \p \r \s \s+ \s- \S \u \v \w -prefix ... -font ellipsis ... -prefix + - * / = == < > <= >= ? % -font math + - * / = == < > <= >= ? % -prefix | -font misc | -prefix ! : & -font operators ! : & -prefix ( ) -font parens ( ) -prefix # * $ -font reg_string # * $ -prefix \n \* -font single_slash \n \* -prefix \\n \\* \\$ -font tmac_escapes \\n \\* \\$ - -character \]' -comment \# -comment \" diff --git a/src/contrib/mom/examples/letter.mom b/src/contrib/mom/examples/letter.mom deleted file mode 100644 index 20827c8..0000000 --- a/src/contrib/mom/examples/letter.mom +++ /dev/null @@ -1,34 +0,0 @@ -.AUTHOR "Yannick P. Guique" -.DOCTYPE LETTER -.PRINTSTYLE TYPESET -.START -.DATE -August 25, 2004 -.TO -GUILLAUME BARRIÈRES -Minidoux Corporation -5000 Pannes Drive -Redmond, Virginia -USA -.FROM -Y.P. GUIQUE -022 Umask Road -St-Sauveur-en-dehors-de-la-mappe, Québec -CANADA -.GREETING -Dear Mr. Barrières, -.PP -It has come to my attention that you have been lobbying the -US government to prohibit the use of open source software by -endeavouring to outlaw so-called "warranty free" applications. -.PP -I feel it is my duty to inform you that the success of your -operating system with its embedded web browser relies heavily -on open source programs and protocols, most notably TCP/IP. -.PP -Therefore, in the interests of your corporation's fiscal health, -I strongly advise that you withdraw support for any US -legislation that would cripple or render illegal open source -development. -.CLOSING -Sincerely, diff --git a/src/contrib/mom/examples/penguin.ps b/src/contrib/mom/examples/penguin.ps deleted file mode 100644 index 2728930..0000000 --- a/src/contrib/mom/examples/penguin.ps +++ /dev/null @@ -1,461 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner -%%Title: /home/peter/Pics/penguin_small2_bw.ps -%%CreationDate: Wed Apr 17 19:49:51 2002 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 0 0 81 96 -%%EndComments -%%BeginPreview: 90 107 1 107 -% aaaaaaaaabff555555555540 -% 5b6db6db5edbf6b6b6b6b680 -% aaaaaaaab7ff7ad555555540 -% b55555557eddeeaadadadac0 -% 56db6db6dbffdf56ab555540 -% aaaaaaaaffb755dab556ab40 -% 5b555b55f77ed7d556b56d40 -% aab6d56dbfffaaeb6ad5aa80 -% 6d555aabf6edd5daad56ab40 -% aadaab56ffdfaff555aab540 -% 5555b56bddfdff76dab55680 -% b6aaaaaffbbbbbed5556dac0 -% 55b6d6d5bff7f77aab6aaa80 -% aaaaaaaff77f6ffd6d555540 -% 5b555b576defeedaaaadb680 -% aab6d56dfbfd3bfdb56aaac0 -% 55555aab8eda4fb556ab5540 -% b6daab5743f40b7eaad56d80 -% 5555b56f037007fadaad5540 -% aaaaaaab11e0c6ed55b5aa80 -% 5b6d6db731b1a3feaaaab6c0 -% aaab55566963a3badb555540 -% 6d556aaf35d2e37d556daa80 -% aadaadb57959f3f6aaaab6c0 -% 5555aaab3403c37d6dab5540 -% 6daab5571428c3eeaab56a80 -% aab6d6db908007fd5556ad80 -% ad5555574000176edb6ad540 -% 55aaadab920003fd55555a80 -% b56db55b2000136eaaadab40 -% 56aaaaab400047fdb6d55540 -% aad556d7040112df555ab680 -% 6d5b6ab5d00447bb55ab5540 -% aaaaad57402915cf6d556a80 -% adb555ab9a9243a7aab6ad80 -% 5556dab6902485ead5aad540 -% b5aaab57854901d7daad5a80 -% 56b5556d929201bfab55ab40 -% aaab6d57004400fb756ab540 -% 6d6d55af0a1000efeaad5680 -% aaaaaaba0080005ef6d5aac0 -% adb5b6d60220003fdaaab540 -% 5556aabc0000003bfd5b5680 -% b5aab57c0000003f76d56ac0 -% 56b556e80000001beeaaad40 -% aaab6bf80000001f7f5b5580 -% 6d6d55b00000001dfbaab540 -% aaaaaff00000001bdf6d5680 -% 55b5b5b00000000ffbd5aac0 -% b6aaafe40000000f6ff55a80 -% aad6df7000000246fedaab40 -% 555ab6d000000003aff5b540 -% b6aaafe000000013edbaaa80 -% 556b7d8000000001b7f6d6c0 -% aaad5bc000000001fbbd5a80 -% 6db57f0000000000d77aaac0 -% aaaab58000000000edf6d540 -% 5556f7000000000056fead80 -% b6dab600000000006edb5540 -% aaaaee00000000007ffeb680 -% 5555ee000000000076bb5540 -% b6dabc00000000003f7f6a80 -% 5555d800000000003b7756c0 -% aaabfc00000000003f7eda80 -% 6db6b0000000000036f7aac0 -% aaabd800000000003ffeab40 -% ad57b800000000003d6fda80 -% 55b7d8000000000037fdaac0 -% b55eb800000000003edfab40 -% 56afb000000000003bfbb540 -% aaddb000000000003edf5680 -% 6d5bd8000000000035fdaac0 -% aaafe800000000003b5bb540 -% 55ba5000000000006fef5680 -% b6a83800000000005f736ac0 -% aaa00c00000000003dfdad40 -% 55680e00000000003bd65580 -% b6a107000000000077bc5a80 -% 55a013c0000000023ff82b40 -% a80401a0000000005db45540 -% 429021f0000000043ff02d40 -% 900000f80000000096c4aa80 -% a00080be000000082a902d80 -% 004204770000000244401540 -% a200003e8000001411001540 -% 4004105fc000000044444b40 -% 8800001b8000000a00800540 -% 5040411f4000001012000280 -% 80040007c000001440044080 -% 5080040d0000003100100040 -% 800040200000007400400400 -% 51080002000000e804008040 -% 80008440000003f210000080 -% 50000005000007d400080940 -% 0111000080001ef020808280 -% a00008894000ffd480001540 -% 02000000fa57bb680108aa80 -% a0222002bfffffe900012b40 -% 0a4001115ffdedd20824d540 -% d0888004bb6fbfb4008b5a80 -% ad251202bffdfbe921255580 -% b554a05576ab576a045aaa80 -% aaaa950aaaad5aaaa955b6c0 -% 56d56a556d6aaad48556aa80 -% b55b5555aaab6b5ab55aad40 -% 55aaaaaab5b555554aaad580 -% ad556d5b56aaad6b556b5a80 -%%EndPreview -%%BeginProlog -% Use own dictionary to avoid conflicts -5 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -0.000000 0.000000 translate -% Translate to begin of first scanline -0.000000 95.872000 translate -80.640000 -95.872000 scale -% Variable to keep one line of raster data -/scanline 90 1 mul string def -% Image geometry -90 107 8 -% Transformation matrix -[ 90 0 0 107 0 0 ] -{ currentfile scanline readhexstring pop } -image -72727272717171717171717172717171717171717171717172717171727271717171727273736f -675852524e4653535a676b73737272727272727272727272727272727272727272727272727272 -727272727272727272727272 -7172717271717171717171717271717171717171717171717271717171717172727272726d5d4a -4039393939373a3a3c3f4653637172727272727272727272727272727272727272727272727272 -727272727272727272727272 -7171717271717171717171717271717171717171717171717271717171717173747271644b3f3a -3a393a3a3a393b3b3b38393b3d4d64707272727272727272727272727272727272727272727272 -727272727272727272727272 -727272727171717171717171727171717172717171717171727171717171727372705b3b3d3b3a -3939393939393938393939383a3c3f546d71747272727272727272727272727272727272727272 -727272727272727272727272 -727271727171717171717171727171717171717171717171727171717171727173553e3d383a39 -393a383838383838393940564d3f38394668727272727272727272727272727272727272727272 -727272727272727272727272 -71717171717171717171717172717171717171717171717172717171717172715f3d38393b3b39 -3a393939393939393a3c5574807252403742627272727272727272727272727272727272727272 -727272727272727272727272 -727271727171717171717171727171717171717171717171727171717172726c403c373a3a3a3a -3a3a3a3a3a3a3a3a393e5e82958c72543a38416a72737272727272727272727272727272727272 -727272727272727272727272 -727171727171717171717171727171717171717171717171727171717271735a3d383b3a3a3a3a -3a3a3a3a3a3a3a3a383c5f87978e7c65493a3c5070737272727272727272727272727272727272 -727272727272727272727272 -7171717271717171717171717271717171717171717171717271717172736c4638373b3a3a3a3a -3a3a3a3a3a3a3a3a3a436384897d6d644f3a3b3e60727472727272727272727272727272727272 -727272727272727272727272 -727171727171717171717171727171717171717171717171727171717273603a3839393a3a3a3a -3a3a3a3a3a3a3a3b39425c6f68574745403b3c3848707472727272727272727272727272727272 -727272727272727272727272 -7271727271717171717171717271717171717171717171717271717172724d373938393a3a3a3a -3a3a3a3a3a3a3a393a3d494e3e3e3c3b393c3a393b617272727272727272727272727272727272 -727272727272727272727272 -71717171717171717171717171717171717171717171717172717171727241393839393c3a3a3a -3a3a3a3a3a3a3a393b3a3a3d3b3a3d393c3b393b3a4b7374717272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717171717171717271717172703a3b3937393b393a3a -3a3a3a3a3a3a3a3a3a3b3a3a393d3a3b3b3b393a393e6d74727272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717171717171717271717171633c3a3a38383d413c3a -3a3a3a3a3a3a3a3a3a3b3e4142393c3c3b3b3939393c6074707272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717171717171717271717171623b373b3e40475d5a3f -3b3b3a3a393b3b3b373839486b6d3d393b3b3a38393b5c73717272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717271717171717271717172623b373c3a3d3f425d65 -3f393a3a3d393b3e5b75795a3e6562393b3b3b39393d4f71727272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717272717171717271717171717271717172623c3838538a9e7e4960 -4e3c3a3a3c3a57879ea9b0b68e445b463b3b3b3a3b3d4a72727272727272727272727272727272 -727272727272727272727272 -7272727271717171727171717272717171727171717271717271717172613c374d96b6cabb8e48 -463b3a3a3a5291abb6c0c7d1be7f3f473b3b3a38393a4672727272727272727272727272727272 -727272727272727272727272 -7272727271717171717271717271717171717171717171717271717172603c3770acd1e3dfcc84 -3a3b3a3a3d85c0e7f4f7f7f2d9a4593a3b3b393839393f6b727272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717171717171717271717172603c3c9aebdbc5eefdda -45393a3a45b8f7fcda8386d1faec8b373b3b3a3938383e6b727272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717171717172717271717172613946c8db4e7188eaf9 -60443c3e4dc7fbe953468a7fcdfdc7433b3b3a3839383c6a727272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717171717171717271717172603a4bd59a387184a5fb -755363655bc9fb9c3d3a5c907ffbe7543b3b3a3939383c6a717272727272727272727272727272 -727272727272727272727272 -7171717171717171717171717171717171717171717171717171717171673b4ad5833e4a7f75f8 -6f484b575cb3f67b363c445b68f4ed553a3a3a3939393b6a717272727272727272727272727272 -727272727272727272727272 -7272727272717171717171717271717171717171717272717271717171714245cc953c3d5667ce -666e6f6c6282e97a3b3a3a3b5bf5ea58393a393a393c386a737272727272727272727272727272 -727272727272727272727272 -727272727171717171717171727171717171717171717171727171717171413eb7c4453b416fa6 -c3c9c6c2bcb1c19d3a3c3b3e8cfbdc4c3939393a39393969727272727272727272727272727272 -727272727272727272727272 -727272727171717171717171727171717171727171717171727171717171413a8df18e477da2af -cdcecbbfa6b2cfc289534273ebf9ac3f3939393939383b62727272727272727272727272727272 -727272727272727272727272 -72727272717171717171717172717171717172717171717172717171717142385bdae697a9c1cd -cfcecfd3d4d7dcd9d5c5a8c5e4dc633838393a39393a365b727272727272727272727272727272 -727272727272727272727272 -72727272717171717171717172717171717171717171717172717171717142363e99a4a8b9cacf -cecfd2d8dcdfe2dfdedad6cdc3ac693f39393939393a375b727272727272727272727272727272 -727272727272727272727272 -7272727271717171717271717271717171717171727171717271717171714137538fa4b4c2cbcf -cfd1d5dadee2e1dfdedededfdcdab5553a3a39393a3c3859727272727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717271717171717271717171714b43839facbdc8cfcf -d0d3d7dae2e2dfdedededed1b1c5c05e3c3b393a3c393c4c717272727272727272727272727272 -727272727272727272727272 -727272727171717171717171727271717171717171717171727171717172524c94a0b2c1cbcfcf -d1d5d9dee1dfdedededabea8aebbad4f3b3c3a393a3a3d426b7273727272727272727272727272 -727272727272727272727272 -72727272727171717271717172727171717171717172717172727171717254478ea5b9c3ced0d1 -d3d6dbe0dededddccfabaab7bbbaaa4b3c3b393a37393f3b597174727272727272727272727272 -727272727272727272727272 -727272727171717171727171727171717171717171717171727171717171503b5c84aec9d0d1d1 -d6d9dddcded9d1b0a0b1b8bbbab387403a3b6c7446333938477173727272727272727272727272 -727272727272727272727272 -7272727271717171717171717271727171717171717171717271717171714f3d457986a3c5d1d6 -d8d9d8d1bfa795a2b4b7bab7adac8642383863978e6f413c3c6973727272727272727272727272 -727272727272727272727272 -727272727171717171717171727171717171717171717271727172717272523b4390a58a8e9da8 -aba4a29d9ca5aeb3b2afabb7c4c2bb5d3b3645849b99663a3c4e72727272727272727272727272 -727272727272727272727272 -727272727171717171717171727171727171717171717271727171717273543c49adbfa29097b4 -c0b9b5b3b4b0afada5aabec7cfcac3763a3b3c5e999a8745393d65727272727272727272727272 -727272727272727272727272 -727272727271717171717171727271717172717171717171727172727171483856aac1bfa18e9e -b1b4b2afa9a3a0a4b3c1c1c5d3ded4ac413a3b4079895a38353948707472727272727272727272 -727272727272727272727272 -7272727271727171717171717272727171717171717171717272737272633f3c4ea8c5c1c0a790 -919698959193a7bac2c1c9e1f4fbfbde6c3b3c3a39423c3b3a393e617473727272727272727272 -727272727272727272727272 -7272727271717171717171717271727171717171717172717272717270453b394dc1d9c8c2c2bc -a79b9b9dabbac0c1c2cde3f8fdfdfdfabf453b3b3b3b3b3b3a393d4c7071727272727272727272 -727272727272727272727272 -727272727171717171717172727171717171717171717171727270715b3d3b398ff5e7cec3c3c1 -c3c1c2c2c3c2c2c8d4e4f5fdfdfdfdfdf9723f3b3b3b3b3b3b3a39435a74747272727272727272 -727272727272727272727272 -7272727271717171717171717271717171717171717171717271726750463658e0fbf7e4c6c2c3 -c3c2c3c2c2c4ceddedf7fdfdfdfdfcfdfccb4a3b3d383b3b3a3a3a3e4a6b727271727272727272 -727272727272727272727272 -72727272717171717171717172717271717171717171717172716d4b544340b1f7fcfdf7d5c2c2 -c2c2c2c2c6d5e7f5fcfdfdfdfdfdfdfcfbf7833d3d3b3b3b393b393a3b4e717272717272727272 -727272727272727272727272 -7272727271717171717271727271727171717171717171727371483a3a3673f4fdfcfbfceccfc5 -c2c1c2cde3f3fafdfdfdfcfdfdfdfdfcfdfccb40393a3b3b39393a393b3c607271727272727272 -727272727272727272727272 -727272727171717171727171727171717171717171717171705a3e3f3c45d0fcfdfdfcfdfcf5e6 -d9dce5f1fafcfcfcfdfdfcfdfdfdfdfdfdfdf66937393b3b393939393a3a486a72717272727272 -727272727272727272727272 -7272727271717171717171717271717171717171717171725f3e3a3c3985fbfcfdfcfdfdfdfdf9 -f1f8fcfdfdfcfcfcfcfdfdfdfdfdfdfdfdfdfd933b3a3b3b3a3a3a3a393a3d4a6b717272727272 -727272727272727272727272 -717171717171717171717171717171717171717172727267443b3b394cd2fafcfdfdfdfdfdfdfb -fafcfdfdfdfcfcfcfcfcfdfdfdfdfdfdfdfdfbc73b3b3a3a3a393a3a3a393c3e52727272727271 -727272717171717172717271 -727172727171717171717171727171717172727175736d423a3a383c7de7f9fefefdfdfdfdfdfc -fbfcfdfdfdfcfdfdfcfdfdfdfdfdfdfdfdfcf8e24d3c3b3b3a3a3a3a3b3b393a3b537173727272 -727272727272727272727272 -7272727271717171717171717271727171727271726e4d3b3b3a3646a0e2f8fdfefdfcfcfdfdfc -f8f8fcfdfdfdfdfdfdfdfcfdfdfdfcfbf4f0efeb653f3b3b3b3b3b3b3b3b3938393f5772727272 -727272727272727272727272 -727172727171717171717171727171717171727171533f3b3b3a364aa5cef0f9fbfdfdfcf9f5f1 -ecebf3f8fafbfbfafcfaf8f7f5f5efeae3dbdfe687473b3b3a3b3a393a3a3b393a393f5c727272 -727272727272727272727272 -7272727271717171717171717272717171717271623d3d3a3b3a3a5ba9b8d0e7edf5f9f9f5ede3 -e1e5e7f2fbf9fafaf7eee2dad3d0cececcc8c9d8c5513a3b3a373c393d3b3a3939383d3e637272 -727272727272727272727272 -727272727171717171717171727171717172726e4a3d383a3b3a456fadb5cbddebf8fbfcfdfced -e4f5fbfdfcfdfdfdfcf7ede3d5cecac8c7c6c6c7deb844393e644e3a393b3a3a3939383c4b6f72 -727272727272727272727272 -72727272717171717172727272727271717272603e3a3b3b393a4b7cbbd3ebf7fdfcfcfbfdfcee -f1fcfcfcfcfbfbfdfcfcfdfbf8f2e8ded3cbc7c6ceee993d34556f5f463c3d393b393a3a3e6272 -727272727272727272727272 -717171727171717172717171727171717173704b3b3d39473c3c5fb0dcf1fbfcfcfcfdfcfcfcf5 -f5fbfcfbfdfcfcfcfcfcfbfbfdfcfcfbf5e9d9cdc7d8ea683b3d3d58724b3b3d3b3a3a3a3c5173 -737272727272727272727272 -7272727271717171717271717271717171736e433e385e603e4090dff5fcfdfcfcfbfcfcfbfcfa -fbfbfcfcfcfbfcfdfcfcfcfcfdfcfcfcfbfcf6e6d3c9e3c3403a3d394d7342353e3a3b3a39416b -727372727272727272727272 -727171727171717171717171727171717172673d374a6b3b3d4cd9f8fdfcfcfcfbfdfbfcfbfcfc -fbfcfcfbfcfcfcfcfdfcfcfcfbfcfbfcfcfdfdfaedd4ceeb6c3c3d3d3e51663a3e383b3a393c56 -717472727272727272727272 -727271727171717171717171727171717173573c3c604d3b3c8ffbfdfbfcfdfcfcfcfcfcfcfbfb -fdfbfdfcfdfbfcfcfcfbfcfcfdfbfdfcfcfcfcfdfcedd3dac43d384e5b5064583a3c3b3a363c40 -6f7272727272727272727272 -727271727171717171717171727171717170483f476f373851e9fdfdfdfbfcfcfcfcfcfcfbfcfd -fcfcfcfbfcfcfbfbfcfcfdfcfdfcfcfcfcfcfcfdfcfdf1e6f1583f5e7770546d42393b3a3b3a3d -637272727272727272727272 -7272727271717172717171717271727372643f3c6a52373da0fbfcfcfcfcfbfcfcfcfdfcfcfbfb -fcfbfcfbfbfcfdfcfcfcfcfcfcfcfcfbfcfcfdfcfdfbfcfcfd9545657c735259613d3c393a393b -4e7172727272727272727272 -7272727271717171717171717271727471513a456a393a5ae6fafcfbfcfbfcfbfcfcfcfcfbf8fa -fbfcfcfcfcfdfbfcfdfcfcfdfcfdfcfbfdfcfbfcfcfcfcfcfdc64f5e6456434078433b3d393b3d -436c72727272727272727272 -727272727171727171717171727272726e47385c53333e98fbfbfcfcfcfcfcfcfcfcfcfcf9eafb -fbfbfbfbfcfcfbfdfcfcfbfcfcfcfcfcfbfdfcfcfdfdfcfdfce7473d3f3b3b375e57393d383939 -3b6171727272727272727272 -72727272717171717171717172717272633c3b703f3451dafcfcfbfbfcfcfbfcfcfdfdfbf4e8fa -fcfdfcfcfcfbfcfbfcfcfcfcfbfdfcfcfcfcfcfcfcfbfbfcfcfa623c3a3a3b374b66373d393939 -3b5072727272727272727272 -727272727171717171717171727272714e3b52613b388af8fcfbfcfbfcfcfcfcfcfdfcfcf2edfc -fdfcfcfcfcfdfcfbfcfcfcfcfcfdfcfdfdfcfcfcfcfdfcfbfcfc84383b3b393a3f774138383938 -3a416f727272727272727272 -727271727171717171717171727272663c3c68453b40c5fbfbfbfdfdfcfcfdfbfcfcfcfcededfb -fcfcfcfcfbfcfcfcfcfbfbfcfcfcfcfcfafcfcfcfcfbfcfdfcfda23c3b3b3b3b3d7437383b3a39 -3b3f68727272727272727272 -7272727271717171717171717174714b3a3a6b373b57eefcfcfcfcfbfcfcfbfcfcfbfdfbe9e9fb -fbfcfcfcfbfcfcfbfbfcfcfbfbfcfbfcfcfcfcfcfbfcfcfcfdfcaf3b3b3b3c3a406f37373a3a39 -393d5f727272727272727272 -7171717272717171727171717271623e3d4a60373b82fbfcfcfdfbfdfcfcfcfcfbfcfcfbe6eafb -fcfdfcfcfcfcfcfbfdfcfcfcfdfcfcfcfcfdfcfcfcfbfcfcfcfdbd3a3b3b3a3843633836393a38 -3a3c54727272727272727272 -727272727272717171717272736d463a37535c3839aafcfcfcfdfdfcfcfcfbfcfdfcfbfbe6eaf9 -fbfbfcfbfcfbfcfcfbfdfcfcfbfcfcfcfcfdfcfcfcfcfbfdfcfcce3c3b3b393c4e533937383939 -383c4f727272727272727272 -71717272717171717171717371593d3b3952603947cdfcfbfcfcfcfcfcfdfdfcfcfcfdfae2e9fa -fbfbfcfdfbfcfcfcfcfcfcfcfcfcfcfbfbfcfbfdfcfcfdfafcfcd4423b3b3b3a5a4e393a39383a -3a3940727272727272727272 -7272727271717171717271726c41393c3656683b47d6fdfbfcfcfcfcfcfcfbfcfdfcfcfae1e9fb -fbfcfdfcfcfcfbfcfcfcfcfbfcfcfbfcfcfcfbfbfdfcfbfcfcfdda413b3b3c3b6644393a3a3938 -3b3a3f727272727272727272 -727271727171717171717171553c3b3b405f6d394ce1fcfcfcfcfcfcfbfdfcfcfcfcfcf9e1ecfb -fcfcfcfcfcfbfbfcfdfcfcfdfbfcfcfcfcfbfcfbfbfdfcfdfcfcdd423b3b3b39643f393a393939 -3a3a3e727272727272727272 -7272727271727171717171724f3e363d4f767e3b5be9fcfdfcfdfbfbfbfcfcfbfafcfcf8e2eefb -fbfcfcfcfcfcfcfcfcfcfcfcfcfcfcfbfdfcfbfcfdfcfcfcfbfdde433b3b3b455f3a3b3b3a3a39 -39393e727272727272727272 -72727272717171717171716e46393938466b863e69edfcfdfcfcfcfcfbfcfcfcfcfcfcf7e2eefc -fbfcfcfdfbfdfcfbfdfcfdfdfdfcfcfcfcfdfbfcfcfbfcfcfbfddc443b3b385a463b3b3b3a3839 -393940727272727272727272 -72727272717171727171716f413a3a3a3945724869effcfcfcfcfbfcfcfbfcfcfcfcfbf8e2f1fc -fcfcfcfbfcfcfcfcfcfcfcfcfcfcfcfbfcfcfcfcfcfcfbfcfdfccc3f383a41683b3d3d3a3b3a3a -3a3b42727272727272727272 -72727272727171717171716e443938393c3c49626eeefcfbfcfcfcfcfcfcfcfcfcfcfcf8e2f1fc -fbfcfdfcfcfdfdfcfcfcfcfcfbfcfbfcfcfcfcfcfcfcfcfcfcfcb83b3f5a685d455b6054463f3a -3c3a51727272727272727272 -727272727271717172717171524a728f8d5e424d80e3fbfcfcfbfcfcfdfcfbfcfcfcfcf7e1f2fb -fcfcfcfcfcfcfcfbfcfdfbfcfcfcfcfcfcfcfcfcfcfdfcfcfcfc9c405b503d3b3c3c455368755c -3d3a5a727272727272727272 -72727172717171727271727174a3c9d4d6c87b3b50b0f9fcfcfdfcfcfcfbfdfcfcfcfcf8e2f3fb -fcfcfdfcfcfcfcfcfcfcfbfbfbfcfbfcfbfcfcfcfcfcfbf9fbf66956403b3a3a39393b3a3a608d -654567717273727272727272 -7272727271717172717371739bc1d1d4d4d4cc7f3f55a9f5fbfbfcfbfdfbfbfcfbfbfcf8e1f3fc -fbfcfcfcfbfcfbfcfcfdfdfcfcfcfcfcfcfcfcfcfbf6d5d3d3d29c59393a393b3b3b3b3a3c5d76 -61486b737272727272727272 -727272727171727171737288b1c7d1d4d4d5d4cc803f4ea1f0fbfcfcfcfbfcfcfcfdfcf6e3f4fc -fdfbfbfcfcfcfcfcfcfcfcfcfdfbfcfcfcfbfcfcfcdccfdbdddccd5b3e3a393b3b3b3b3a3e655e -519c89727373727272727272 -7171717272727171717276a3b8c8d2d4d5d4d5d5c66d3a4892e9fcfbfcfdfcfbfbfbfcf8e1effb -fcfbfcfcfcfcfbfcfcfbfcfbfcfcfcfcfbfcfcfcfcd5c7d4d7dabb50383c393b3b3b3b3a414f40 -76cfda8f7374727272727272 -7172717372727271707e9db3c0cdd4d4d5d4d4d5d4b6543b4673d6fbfbfcfcfdfdfcfbfaeaedfc -fbfdfcfcfcfdfdfcfcfcfcfcfbfbfcfbfcfdfcfcfcd7c5d3d4d1a9513a393a3b3b3b3b3a3a3653 -bad5d7b87371727272727272 -7170778c9baaa8a5a3a7b4bdc9d1d4d4d4d4d4d4d5d2a04435405bc1f7fcfcfdfbfcfcfdfbf9fc -fdfcfbfcfcfcfbfcfcfcfcfbfcfcfcfdfcfcfbfbf8d8c4d3d2c9a85c3a3b383b3b3b3b3a3a4196 -cfd1d4c47370727272727272 -73779fb2bcc1bfbbbbbdc4cad1d4d4d4d5d4d4d4d5d4cb7c3d373c469ef3fbfcfcfcfdfcfcfcfc -fcfbfcfcfbfcfcfcfcfcfcfcfcfcfcfcfbfcfbe8d3c7c4d2cec3ae78463c36383836373b477dbf -cccfd1c07671727272727272 -738ab0bec9cdccc9c7ccd1d2d4d4d4d4d4d4d4d4d4d5d5b758383b3a4387e5fdfcfcfcfbfcfcfc -fdfdfbfcfcfcfcfcfbfcfcfdfcfcfbfbfdfceecdc7c3c2cecbc1ae997146403e393d426189b2c3 -cccfd2c27572727272727272 -7193b7c7ced1d2d3d2d3d4d4d4d4d4d4d5d4d4d4d4d3d4cf953d383a353a68d0fbfbfbfbfdfcfc -fbfbfbfdfcfdfcfbfcfcfbfcfcfcfdfcfbfde3c7c8c2bfc9cac4b5a69c8e7d77767e929eacc0ca -d0d3d4d07f72727272727272 -729eb8c8d0d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d5d3d3d5c065383b38343f57bffbfbfcfcfbfc -fcfcfcfcfbfbfcfdfcfcfcfcfbfbfbfcfcfbdfc9c8bdb9c8cac6bbb0a8a5a1a0a1a3a7b1bfccd1 -d4d4d4d3af77717372727272 -7192b7c6d0d4d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d3d4d4a64639383c3a3852c7fcfcfdfdfd -fcfcfcfcfcfcfdfdfcfcfdfcfdfcfbfcfcfbe0c8c8b8b4c6cacac1b9b5b1b0afafb2b7c0cbd4d4 -d4d5d4d2cf9c727272727272 -728cb5c3ced4d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d4c97d3b363a3737396ef0fcfcfcfc -fdfcfcfcfbfcfcfcfcfcfcfcfdfcfcfbfcfde7cbc9b3aebfc9cbc8c2bcbbb9b9b9bcc3c9d1d5d5 -d5d5d5d3d1c88f7272727272 -718bb2c0cdd3d4d4d4d4d4d5d5d5d4d4d5d4d4d4d5d4d4d4d4d5b6573a3939393742d8fcfcfcfc -fcfbfcfbfcfcfcfdfcfcfcfcfbfbfcfcfdfbeed0c8adaabcc9d0cecbc5c3c2c1c3c5c8ced2d5d5 -d5d5d5d5d4d1c29071727372 -727fafbdccd3d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d4d4ce974038393b393fd1fcfcfcfb -fcfbfcfdfcfcfbfcfcfcfcfcfbfcfcfbfcfcf3d3b588aabdc9d0d2d1cdcbc9c8caccced1d4d5d5 -d5d5d5d5d4d3d0cb99767372 -727aadbccbd3d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d5d3d5c57a3a3a383a59ecfdfcfcfc -fbfcfcfcfcfcfcfbfcfbfcfcfbfcfcfcfbfcf2c46785aabdc9d1d3d3d2d2d0d1d1d2d2d3d4d5d5 -d5d5d5d5d5d5d4d4d4b88872 -727bacbacbd3d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d5d4d3d5b15441467bd7fcfcfcfbfc -fcfdfdfcfcfcfbfcfcfcfdfdfcfcfcfcfbfccd5d4484abbecad1d2d4d4d5d4d5d4d4d4d4d5d5d5 -d5d5d5d5d5d4d5d4d4d5cea5 -727caebac9d3d4d4d4d4d5d5d5d5d4d4d4d4d4d4d4d4d4d4d5d5d3d3ce99a7dcf8fcfcfcfcfcfc -fbfbfcfcfbfcfcfdfcfcfcfcfbfcfcfcf8c2523a4789aabecad1d3d4d5d5d5d5d5d5d5d5d5d5d5 -d5d5d5d5d5d5d5d5d5d5d2c6 -7084aebacbd2d3d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d3d1d1bfa4f4fafbfbfcfcfbfc -fcfcfbfbfcfcfcfcfcfcfcfcfcfbfbf6a44538364e8aaabecbd2d4d4d4d4d4d4d4d4d4d4d4d4d4 -d4d4d4d4d4d4d5d5d4d3cec1 -718eacbbcdd3d3d4d4d4d5d4d5d4d4d4d5d4d4d5d4d4d5d4d5d4d4d3cfceadbdfbfcfbfcfcfcfc -fbfdfdfcfbfdfbfbfcfcfbfbfcfce87f42353834578aa9c0cbd2d5d5d5d5d5d5d5d5d5d5d5d5d5 -d5d5d5d5d5d5d5d4d0c9c19f -739daec0d0d4d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d5d4d4d4cfd0bc95d1fbfbfbfcfcfc -fcfcfcfcfcfcfbfcfcfcfcfcefa84c3b383c39385e88a7c1ccd2d4d5d5d5d5d5d5d5d5d5d5d5d5 -d5d5d5d5d4d4d4d1c6bca676 -81a6b6cbd2d3d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d4d5d4d4d4cfcabf9f80cbfafbfcfcfc -fbfcfcfcfcfbfcfcfcfcf0b45b3c3a3b3a3738396488a6bfccd3d4d5d5d5d5d5d5d5d5d5d5d5d5 -d4d4d4d4d3d1ccc1b5947871 -94aebfcdd2d3d4d4d4d4d4d4d5d4d4d4d4d4d4d4d4d4d4d5d5d4d4d4d0c6bda6835a8ad1eff7fb -fcfbfcfcfbfaf3e7c5935a3f373a3b3b3b3b3b3d6b8ba7becbd2d5d5d5d5d5d5d5d5d5d5d5d4d4 -d5d4d4cec7c0b5a280727373 -a4afbdc8d1d2d2d3d4d3d4d4d5d4d4d4d4d4d4d4d4d4d4d4d5d4d4d4d1c8bca98d693b3d5c7e93 -a7aea0988f7c5e4b3d3b3a38383b3b3b3b3b3a43708ea7bdcad2d5d5d5d5d5d5d5d5d5d5d4d2d1 -d2d1c8bbb09a7f7372727272 -a3abb7bfc8cbcdcecfd0d2d4d3d4d4d4d4d4d4d4d4d4d4d5d5d4d5d4d0c8bca78f75473839383d -3d3a39373836353a383b37373b3a3a393a3a38477590a6bac9d2d4d5d5d5d4d4d4d5d4d4d0ccca -c6bdb1947971727272737272 -9aa5aaafb7bcbfc0c3c5c6cacccfd0d1d2d3d3d4d4d4d4d5d5d4d4d3cec3b6a28b7b553939393a -393939393939393939393939393a393a3a393947768fa3b5c3cfd4d4d4d4d4d4d2d2d1cbc5bfbb -b19b80737172727272727272 -7a91989da0a2a7abafb2b6b7bcc0c4c6c9cdd0d2d4d4d4d4d4d4d4d1c8bba9988a7c593a3a3a3a -3a393a3a3a3a3a3a3a3a3a3a3a3938393a3a3a4a768a9daebdc9d0d2d3d3d2d2d0cdc7bfb8b2a6 -8a7371717171727272727272 -7172757a838c91979c9fa4a4a6a9aeb1b6bac1c7cdcfd1d2d1d1d1cbbfb09e8f857958383a3839 -3b3b3b3b3c3b3b3c3b3b3b3b3b3a3837383a394c738596a5b5bfc9ced0d1d0cdc7bfbbafa49a7b -727172727272727272727272 -727273727272747c858b90949496999b9fa4acb3b9bec3c8cbcac4bbafa393867d734e3c404141 -4b555858585858585858585857554d454543404d7082909daab6c0c5c7c8c6beb8b2a89b8a7571 -727272727272727272727272 -7372727272727171727274797d8185898d90959ba2a6abb0b6b6b0a89c92867e776547656f7372 -707172727272727272727272727174736f6f66656c7e8a959fa6aeb3b4b4b1aaa49d9382727272 -727272727272727272727272 -727271717271717171727271717273767b7d82898e9195989b9b98928a837e7972616470727172 -72727171717171717172727272727272727171706d76828e979b9da0a1a19f9b968d7c73727271 -717272727272727272727272 -72727272717171717171717172717170717172767d81868788878683807c776f6e727271717171 -7171717171717171717272727272727272727271706f79838c9192959595938d84787171717272 -727272727272727272727272 -7272727271717171717171717271717171737372727375767a7c7d7b79746e6d72737271717171 -7171717171717171717272727272727272727271726e6f737c8285888786837974727172717272 -727272727272727272727272 -7272727271717171717171717271717171727272727272707273706f6f71707272727271717171 -71717271717171717172727272727272727272727272716e6f6f72757372727172717172727272 -727272727272727272727272 -showpage -%%Trailer -end -%%EOF diff --git a/src/contrib/mom/examples/sample_docs.mom b/src/contrib/mom/examples/sample_docs.mom deleted file mode 100644 index 592c75e..0000000 --- a/src/contrib/mom/examples/sample_docs.mom +++ /dev/null @@ -1,574 +0,0 @@ -\# This file contains three greeked documents collated together: -\# -\# i) two pages of a novelist's outline -\# ii) two pages of a chapter using COPYSTYLE DRAFT -\# iii) three pages of an academic paper, set in two columns -\# -\# Mom's defaults are used throughout, except for iii), which -\# demonstrates some of the ways you can design your own documents. -\# -\# Since the text throughout is greeked, and groff doesn't know how -\# to hyphenate all that pseudo-latinate nonsense, I've inserted -\# discretionary hyphens (\%) into a large number of the the words. -\# Normally, this isn't necessary. -\# -\# The PRINTSTYLE is TYPESET. If you'd like to see what mom does -\# with the documents when the PRINTSTYLE is TYPEWRITE, change -\# PRINTSTYLE TYPESET, below, to PRINTSTYLE TYPEWRITE. Also, in the -\# third example, comment out PARA_INDENT and QUOTE_INDENT (lines -\# 332 and 333). -\# -\# =================================================================== -\# -\# First, a sample "NAMED" document--in this case, an outline. -\# A novelist wouldn't normally write an outline with numbered heads, -\# subheads and paraheads. I've turned the feature on merely to -\# demonstrate it. -\# -\# Reference macros -\# -.TITLE "Lake Attica's Shores" -.SUBTITLE "A Romance Novel" -.AUTHOR "Rosemary Winspeare" -.DRAFT 1 \" Ignored because COPYSTYLE is FINAL -.REVISION 2 \" Ignored because COPYSTYLE is FINAL -.COPYRIGHT "2004 Alma Podborski -\# -\# Reference macros for the document cover -\# -.DOC_COVERTITLE "Sample mom Documents" -.MISC "Three types of mom documents" "assembled and collated by mom's author" -\# -\# Docstyle macros -\# -.DOCTYPE NAMED "Outline" -.PRINTSTYLE TYPESET \" Or TYPEWRITE to preview "typewritten, double-spaced" -\# -.DOC_COVER COVERTITLE MISC -.COVER TITLE AUTHOR DOCTYPE COPYRIGHT -\# -\# Additional setup macros -\# -.NUMBER_PARAHEADS -\# -.START -.PP -.PARAHEAD "A note on the setting" -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, -sed diam voluptua. Stet clita kasd gubergren, no sea takimata sanctus est. -At vero eos et accusam et justo duo do\%lo\%re et ea rebum. -.PP -Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum -dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod -tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, sed diam -voluptua. -.PP -Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt -ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. At -vero, eos et accusam et justo duo do\%lo\%res et ea rebum. Consetetur -sadipscing elitr, sed diam nonumy. -.LINEBREAK -.PP -.PARAHEAD "About historical personnages" -At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est. Tempor invidunt ut -labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. -.PP -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, -sed diam voluptua. Consetetur sadipscing elitr, sed diam nonumy -eirmod tempor invidunt ut labore et do\%lo\%re magna. Tempor invidunt -ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. -.NUMBER_HEADS -.NUMBER_SUBHEADS -.HEAD "Part One" -.SUBHEAD "Chapter 1" -.PP -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, -sed diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna -ali\%quyam erat, sed diam voluptua. At vero eos et accusam et -justo duo do\%lo\%res et ea rebum. -.PP -At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit -amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor -invidunt ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. -Stet clita kasd gubergren, no sea takimata sanctus est. -.SUBHEAD "Chapter 2" -.PP -Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum -dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod -tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, sed diam -voluptua. At vero eos et accusam et justo duo do\%lo\%res et ea rebum. -.PP -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, -sed diam nonumy eirmod tempor invidunt. Ut labore et do\%lo\%re magna -ali\%quyam erat, sed diam voluptua at vero. -.SUBHEAD "Chapter 3" -.PP -Eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita kasd -gubergren, no sea takimata sanctus est lorem ipsum dolor sit amet. -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, -sed diam voluptua. At vero eos et accusam et justo duo do\%lo\%res et -ea rebum. -.HEAD "Part Two" -.SUBHEAD "Chapter 4" -.PP -Stet clita kasd gubergren, no sea takimata sanctus est -lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur -sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore -et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. -.PP -At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est lorem ipsum dolor sit amet. -.PP -Nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, -sed diam voluptua. At vero eos et accusam et justo duo do\%lo\%res et -ea rebum. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, -sed diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna -ali\%quyam erat, sed diam voluptua. At vero eos et accusam et justo -duo do\%lo\%res et ea rebum. Stet clita kasd gubergren, no sea takimata -sanctus est lorem ipsum dolor sit amet. Consetetur sadipscing elitr, -sed diam nonumy eirmod tempor invidunt. -.SUBHEAD "Chapter 5" -.PP -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed -diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna -ali\%quyam erat, sed diam voluptua. At vero eos et accusam et -justo duo do\%lo\%res et ea rebum. Stet clita kasd gubergren, -no sea takimata sanctus est lorem ipsum dolor sit amet. -.PP -Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt -ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. At vero -eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita kasd -gubergren, no sea takimata sanctus. -.PP -At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita -kasd gubergren. Sea takimata sanctus est lorem ipsum dolor -sit amet. Accusam et justo duo do\%lo\%res et ea rebum -.SPREAD -.RIGHT -\*[BD]\&...end of sample outline\c -.EL -.COLLATE -\# -\# The .EL after the line "...end of sample outline" ensures that -\# mom doesn't spring the page trap, which would deposit a header at -\# the top of the next page. COLLATE doesn't print a page header -\# on the first page of a collated document, but if the page trap -\# has already deposited one there, COLLATE can't undo it. -\# -\# Normally, this isn't necessary; here we require it because the -\# line falls right at the bottom of the page, and would therefore -\# normally spring the page trap. Sorry for the fussiness, but at -\# least now you know what to do if you ever encounter the problem -\# of a page header printing at the top of a collated document. -\# -\# Please notice, too, the use of "\&" before "..." Whenever an -\# input line begins with either a period, an apostrophe or a space, -\# you must precede it with \&, otherwise the line will disappear, -\# even when, as here, there's an inline escape that starts the -\# line. -\# -\# ===================================================================== -\# -\# Next, two pages of a chapter, set in DRAFT style, showing -\# the use of the EPIGRAPH BLOCK macro and the QUOTE macro. -\# -\# You'll notice that the starting page number of this "draft" is 1 (in -\# roman numerals). COPYSTYLE DRAFT always numbers the first page of a -\# document 1. -\# -\# Reference macros -\# -.TITLE "Lake Attica's Shores" -.SUBTITLE "A Romance Novel" -.AUTHOR "Rosemary Winspeare" -.CHAPTER 1 -.CHAPTER_TITLE "The Bonny Blue Yonder" -.DRAFT 1 -.REVISION 2 -.MISC "Draft 1, 2nd revision" -\# -\# Docstyle macros -\# -.DOCTYPE CHAPTER -.COPYSTYLE DRAFT -\# -\# Additional style macros -\# -.EPIGRAPH_FONT I \" Epigraphs are normally set in roman -.DRAFT_WITH_PAGENUMBER \" Draft/revision info usually goes in the header -.COVER_MISC_QUAD RIGHT \" Change default position of the cover "misc" line -\# -.COVER CHAPTER+TITLE MISC -\# -.START -.EPIGRAPH BLOCK -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, -sed diam voluptua. -.RIGHT -\*[ROM]\(emJoseph E. Blough -.EPIGRAPH OFF -.PP -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, -sed diam voluptua. At vero eos et accusam et justo duo do\%lo\%res et -ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. -At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Lorem ipsum -dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod -tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, sed diam -voluptua. At vero eos et accusam et justo duo do\%lo\%res et ea rebum. -Stet clita kasd gubergren, no sea takimata sanctus est. At vero eos -et accusam et justo duo do\%lo\%res et ea rebum. -.PP -Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum -dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod -tempor invidunt. -.PP -"Consetetur sadipscing elitr," dixit ea. -.PP -"Sed diam nonumy eirmod tempor invidunt ut labore," dixit eum. -.PP -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, -sed diam voluptua. Consetetur sadipscing elitr, sed diam nonumy -eirmod tempor invidunt ut labore et do\%lo\%re magna. -.PP -"Lorem ipsum dolor sit amet," dixit ea. -.PP -"At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est," dixit eum. "Sed diam -nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, -sed diam voluptua." -.PP -Consetetur sadipscing elitr, sed diam nonumy eirmod tempor: -.QUOTE -Invidunt ut labore et do\%lo\%re -Magna ali\%quyam erat sed diam -Voluptua stet clita kasd gubergren -No sea takimata sanctus est. -.QUOTE OFF -.PP -Justo duo do\%lo\%res et ea rebum. Stet clita kasd gubergren, no -sea takimata sanctus est. Lorem ipsum dolor sit amet, consetetur -sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore -et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. -.PP -"Stet clita kasd gubergren," dixit ea. -.PP -"No sea takimata sanctus est," dixit eum. -.PP -Nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna. Aliquyam erat -sed diam voluptua. At vero eos et accusam et justo, duo do\%lo\%res et -ea rebum. -.PP -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt. Ut labore et do\%lo\%re magna ali\%quyam -erat, sed diam voluptua at vero. Stet clita kasd gubergren, no sea -takimata sanctus est. Consetetur sadipscing elitr, sed diam nonumy -eirmod tempor invidunt ut labore et do\%lo\%re magna. -.PP -Invidunt ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. -At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est. At vero eos et accusam et -justo duo do\%lo\%res et ea rebum. Lorem ipsum dolor sit amet, consetetur -sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore -et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. At vero eos et -accusam et justo duo do\%lo\%res et ea rebum. Stet clita kasd gubergren, -no sea takimata sanctus est. At vero eos et accusam et justo duo -do\%lo\%res et ea rebum. -.RIGHT -\*[BD]\&...end of sample chapter -.COLLATE -\# -\# ===================================================================== -\# -\# Finally, a sample academic article, set in two columns with a -\# 1.5-pica gutter between them. This example also uses QUOTES, -\# BLOCKQUOTES and FOOTNOTES. In addition, it's set RECTO_VERSO, -\# with differing left and right margins that alternate from page to -\# page. (The header also flips from right to left, which you can -\# see on the 2nd and 3rd pages). -\# -\# In order to accomodate the narrow measure of the columns, there's also -\# a demonstration of things you can change with both the typesetting -\# macros and the document processing "control" macros. -\# -\# Reference macros -\# -.TITLE "CONTROL EQUALS CHAOS" -.SUBTITLE "\*[ALD1]The Psychological and Auditory \ -Impact of Serial vs. Aleatoric Music\*[RLD1]" -.AUTHOR "Joe Chang" "and" "Brad Hegel Connors" -.COPYRIGHT "2004 J. Chang, B.H. Connors -.MISC "Submitted June 3, 2004" "\*[IT]Piano Quarterly\*[PREV]" -\# -\# Docstyle macros -\# -.DOCTYPE DEFAULT -.COPYSTYLE FINAL -\# -\# Additional style macros -- general type parameters -\# -.L_MARGIN 6P -.R_MARGIN 4P+6p -.PT_SIZE 10 -.AUTOLEAD 1.5 -\# -\# Additional style macros -- change mom's default behaviour -\# -.RECTO_VERSO -.PAGENUM 1 -.HEADER_LEFT "Chang, Connors" \" Because we have two authors -.COLUMNS 2 1P+6p -.SUBTITLE_SIZE +1.5 -.AUTHOR_SIZE +.5 -.DOCHEADER_LEAD +2p -.HEADER_SIZE +1 -.PARA_INDENT 1P \" Comment this out if previewing PRINTSTYLE TYPEWRITE -.QUOTE_INDENT 2 \" Comment this out if previewing PRINTSTYLE TYPEWRITE -.SUBHEAD_SIZE +0 -.BLOCKQUOTE_FAMILY H -.BLOCKQUOTE_SIZE -2 -.NUMBER_HEADS OFF \" Because we turned them on in the first example -.NUMBER_SUBHEADS OFF \" Ibid -\# -.COVER TITLE AUTHOR COPYRIGHT MISC -\# -.START -.PP -Lorem ipsum dolor sit amet, consetetur sadipscing elitr. Sed diam -nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna. Ali\%quyam -erat, sed diam voluptua. -.PP -At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita -kasd gubergren no sea takimata. Sanctus est, lorem ipsum dolor sit -amet. Consetetur sadipscing elitr, sed diam nonumy. Eirmod tempor -invidunt ut labore et do\%lo\%re magna ali\%quyam erat. Sed diam voluptua -at vero eos et accusam et justo. -\# -.BLOCKQUOTE -Stet clita kasd gubergren, no sea takimata sanctus est lorem. -Ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy -eirmod tempor. Invidunt ut labore et do\%lo\%re magna ali\%quyam erat, -sed diam voluptua at vero. Eos et accusam et justo duo do\%lo\%res et -ea rebum stet clita.\c -.FOOTNOTE \" Note the use of \c, above, to keep the word and footnote marker together. -Clita ipsum dolor sit amet, consetetur sadipscing elitr. -.FOOTNOTE OFF -.BLOCKQUOTE OFF -\# -.PP -Duo do\%lo\%res et ea rebum, stet clita kasd gubergren. No sea takimata -sanctus est lorem ipsum dolor sit amet, consetetur sadipscing elitr. -Sed diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna -ali\%quyam. Erat sed diam voluptua at. Vero eos et accusam et justo -duo do\%lo\%res et ea rebum stet. Clita kasd gubergren no sea takimata -sanctus est. -.PP -Nonumy eirmod tempor invidunt, ut labore et do\%lo\%re magna ali\%quyam -erat? At vero eos et accusam et justo duo do\%lo\%res et ea. Rebum stet -clita kasd gubergren no sea takimata sanctus. Est lorem ipsum dolor -sit amet. Sadipscing\c -.FOOTNOTE -Sadipscing diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna -ali\%quyam erat, sed diam voluptua. -.FOOTNOTE OFF - elitr sed diam nonumy eirmod tempor invidunt. Ut labore et do\%lo\%re -magna ali\%quyam erat, sed diam voluptua. At vero eos et accusam et -justo duo do\%lo\%res et ea rebum. Stet clita kasd gubergren no sea. -\# -.SUBHEAD "Schoenberg\(em" "The Origins of Serial Pitch Organization" -\# -.PP -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna ali\%quyam erat, -sed diam voluptua. At vero eos et accusam et justo duo do\%lo\%res et ea -rebum. Stet clita kasd gubergren, no sea takimata sanctus est lorem. -Ipsum dolor sit amet consetetur sadipscing. Elitr, sed diam nonumy, -eirmod tempor invidunt ut labore et do\%lo\%re magna. Ali\%quyam erat sed -diam voluptua, at vero eos. Et accusam et justo duo do\%lo\%res et ea -rebum stet clita kasd gubergren lorem ipsum. Dolor sit amet -consetetur, sadipscing elitr, sed diam. Nonumy eirmod tempor invidunt -ut labore et do\%lo\%re. Magna ali\%quyam erat sed diam voluptua at vero. -Eos et accusam et justo duo do\%lo\%res et ea rebum stet clita kasd. -Gubergren no sea takimata sanctus est. -.PP -Amet consetetur sadipscing elitr sed diam nonumy eirmod. Tempor -invidunt ut labore. Et dolor\%e magna ali\%quyam erat, sed diam voluptua, -at vero. Eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita -kasd gubergren. -.PP -No sea takimata\c -.FOOTNOTE -Takimata sadipscing elitr, sed diam nonumy eirmod tempor invidunt -ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. -.FOOTNOTE OFF - sanctus est lorem. Ipsum dolor sit amet, consetetur -sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore -et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. At vero eos et -accusam et justo duo do\%lo\%res et ea rebum amet. Consetetur sadipscing -elitr sed diam nonumy eirmod tempor invidunt ut labore, et do\%lo\%re -magna ali\%quyam erat. Sed diam voluptua, at vero, eos et accusam et -justo duo do\%lo\%res et ea rebum. -\# -.SUBHEAD "Messiaen to Stockhausen\(em" "The Quest for Absolute Control" -\# -.PP -Vero eos et accusam et justo duo do\%lo\%res et ea rebum amet: -.QUOTE -Eirmod tempor invidunt -Ut labore et do\%lo\%re magna ali\%quyam erat -Sed diam voluptua -At vero eos et accusam et justo duo do\%lo\%res. -.QUOTE OFF -Lorem ipsum dolor sit amet, consetetur sadipscing elitr -sed diam. Nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna. -Aliquyam erat, sed diam voluptua at vero eos et accusam. Et -justo duo do\%lo\%res et ea rebum stet. -.PP -Elitr sed diam nonumy eirmod tempor. Invidunt ut labore et do\%lo\%re -magna ali\%quyam erat sed. Diam voluptua at vero eos et accusam et -justo duo do\%lo\%res et ea rebum. -\# -.BLOCKQUOTE -Sanctus est lorem ipsum dolor sit amet, consetetur sadipscing. Elitr, -sed diam nonumy eirmod tempor, invidunt ut labore et do\%lo\%re magna -ali\%quyam. Erat sed diam voluptua, at vero eos et accusam et justo -rebum amet. Consetetur sadipsc\%ing elitr sed diam nonumy eirmod -sed diam nonumy, eirmod tempor. Invidunt tempor invidunt ut labore.\c -.FOOTNOTE -Labore diam nonumy eirmod tempor, invidunt ut labore et do\%lo\%re -magna ali\%quyam. Erat sed diam voluptua, at vero eos et accusam et -justo. -.FOOTNOTE OFF - Et do\%lo\%re et magna ali\%quyam erat, sed diam voluptua, at vero. -Eos et accusam et justo duo. -.BLOCKQUOTE OFF -\# -.PP -Lorem ipsum dolor sit amet, consetetur sadipscing elitr. Sed diam -nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna. -.PP -Nonumy eirmod tempor invidunt, ut labore et do\%lo\%re magna ali\%quyam -erat? At vero eos et accusam et justo duo do\%lo\%res et ea. Rebum stet -clita kasd gubergren no sea takimata sanctus. Est lorem ipsum dolor -sit amet. Sadipscing elitr sed diam nonumy eirmod tempor invidunt. -Ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. -At vero eos et accusam et justo duo do\%lo\%res et ea rebum. -Stet clita kasd gubergren no sea. Ali\%quyam erat, sed diam voluptua. -\# -.SUBHEAD "John Cage\(em" "Leaving It All to Chance" -\# -.PP -Sit amet, consetetur sadipscing elitr, sed diam nonumy. Eirmod tempor -invidunt ut labore et do\%lo\%re magna. Ali\%quyam erat, sed diam -voluptua at vero. Eos et accusam et justo duo dolores et ea rebum. -Stet clita kasd gubergren, no sea taki\%mata sanctus est. -.PP -Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt -ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. At vero -eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita kasd -gubergren, no sea takimata sanctus est lorem. Ipsum dolor sit amet, -consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt -ut labore et do\%lo\%re magna ali\%quyam erat, sed diam voluptua. At vero -eos et accusam et justo duo do\%lo\%res et ea rebum. -.PP -Stet clita kasd gubergren. No sea takimata sanctus est lorem ipsum -dolor sit. Amet consetetur sadipscing elitr, sed diam nonumy eirmod -tempor. Invidunt ut labore et do\%lo\%re magna ali\%quyam erat, sed diam -voluptua, at vero. Eos et accusam et justo duo do\%lo\%res et ea rebum. -Stet clita kasd gubergren, no sea takimata. Sanctus est lorem ipsum -dolor sit amet consetetur. Sadipscing elitr sed diam nonumy eirmod -tempor invidunt. Ut labore et do\%lo\%re magna ali\%quyam erat, sed diam -voluptua. At vero eos et accusam et justo duo do\%lo\%res et ea rebum. -\# -.BLOCKQUOTE -.PP -Stet clita kasd gubergren no sea. Takimata sanctus est lorem ipsum -dolor sit amet. Consetetur sadipscing elitr sed diam nonumy eirmod -tempor invidunt ut labore et do\%lo\%re. Magna ali\%quyam\c -.FOOTNOTE -Aliquyam nonumy eirmod tempor invidunt ut labore. -.FOOTNOTE OFF - erat, sed diam -voluptua at vero eos et accusam. Et justo duo do\%lo\%res et ea rebum, -stet clita kasd gubergren, no sea takimata. -.PP -Sanctus est lorem ipsum. Dolor sit amet consetetur sadipscing -elitr. Sed diam nonumy eirmod tempor invidunt ut labore. Et -do\%lo\%re magna ali\%quyam erat, sed diam voluptua. At vero eos et -accusam et justo duo. Dolores et ea rebum stet clita kasd gubergren -no sea. -.PP -Takimata lorem ipsum dolor sit amet consetetur sadipscing elitr. -Sed diam, nonumy eirmod tempor, invidunt ut labore et do\%lo\%re magna. -Aliquyam erat sed diam voluptua. At vero eos et accusam et -justo.\c -.FOOTNOTE -Justo vero eos et accusam et justo duo. -.FOOTNOTE OFF -.BLOCKQUOTE OFF -\# -.PP -Duo do\%lo\%res et ea rebum, stet clita kasd gubergren, no sea takimata -sanctus. Est lorem ipsum. Dolor sit amet, consetetur sadipscing elitr, -sed diam nonumy. Eirmod tempor invidunt ut labore et do\%lo\%re magna -ali\%quyam erat, sed diam voluptua. At vero eos et accusam. -.PP -Et justo duo do\%lo\%res et ea rebum stet clita kasd. Gubergren -no sea takimata sanctus est. Lorem ipsum dolor sit amet, consetetur -sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore -et dolore magna ali\%quyam erat, sed diam voluptua. At vero eos et -accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, -no sea takimata sanctus est. -\# -.SUBHEAD "Beyond Cage\(em" "Catching the Midnight Train" -\# -.PP -Lorem ipsum dolor sit amet, consetetur sadipscing elitr. Sed diam -nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna. Ali\%quyam -erat, sed diam voluptua. -.PP -At vero eos et accusam et justo duo do\%lo\%res et ea rebum. Stet clita -kasd gubergren no sea takimata. Sanctus est, lorem ipsum dolor sit -amet. Consetetur sadipscing elitr, sed diam nonumy. Eirmod tempor -invidunt ut labore et do\%lo\%re magna ali\%quyam erat. Sed diam voluptua -at vero eos et accusam et justo. -.PP -Duo do\%lo\%res et ea rebum, stet clita kasd gubergren. No sea takimata -sanctus est lorem ipsum dolor sit amet, consetetur sadipscing elitr. -Sed diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna -ali\%quyam. Erat sed diam voluptua at. Vero eos et accusam et justo -duo do\%lo\%res et ea rebum stet. Clita kasd gubergren no sea takimata -sanctus est. -.PP -Nonumy eirmod tempor invidunt, ut labore et do\%lo\%re magna ali\%quyam -erat? At vero eos et accusam et justo duo do\%lo\%res et ea. Rebum stet -clita kasd gubergren no sea takimata sanctus. Est lorem ipsum dolor -sit amet. Sadipscing\c -.FOOTNOTE -Sadipscing diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna -ali\%quyam erat, sed diam voluptua. -.FOOTNOTE OFF - elitr sed diam nonumy eirmod tempor invidunt. Ut labore et do\%lo\%re -magna ali\%quyam erat, sed diam voluptua. At vero eos et accusam et -justo duo do\%lo\%res et ea rebum. Stet clita kasd gubergren no sea -takimata lorem. Ipsum dolor sit amet, consetetur sadipscing elitr. -Sed diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna. -Ali\%quyam erat, sed diam voluptua. At vero eos et accusam et justo -duo do\%lo\%res et ea rebum. Stet clita kasd gubergren, no sea -takimata sanctus est. -.PP -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed -diam nonumy eirmod tempor invidunt ut labore et do\%lo\%re magna -ali\%quyam erat, sed diam voluptua. At vero eos et accusam et justo -duo do\%lo\%res et ea rebum. Stet clita kasd gubergren, no sea -takimata sanctus est. -.RIGHT -\*[BD]\&...end of sample article\*[PREV] -.FINIS diff --git a/src/contrib/mom/examples/typesetting.mom b/src/contrib/mom/examples/typesetting.mom deleted file mode 100644 index 83bc53f..0000000 --- a/src/contrib/mom/examples/typesetting.mom +++ /dev/null @@ -1,673 +0,0 @@ -\# Most mom users rely on mom's document processing macros to format -\# their work. The doc processing macros take care of all things -\# typographic and are simple, clear and easy to learn. The kind of -\# "by hand" typesetting this file shows off is really geared toward -\# professional typographers. Bear in mind, though, that the full -\# power of mom's typesetting capabilities can be brought to bear -\# on document processing as well. -\# -\# Basic page setup -\# -.PAGE 8.5i 11i \" Printer sheet size -.L_MARGIN 1i \" Left margin 1 inch -.R_MARGIN 1i \" Right margin 1 inch (calculates the line length) -\# -\# Basic type parameters -\# -.FAMILY T \" Times Roman family -.FT B \" Bold font -.PT_SIZE 12 \" Point size -.LS 14 \" Leading (line spacing) -.LEFT \" Set lines flush left, nofill mode -\# -\# Refinements -\# -.HY \" Hyphenate -.KERN \" Automatic pairwise kerning -.LIGATURES \" Automatic ligature generation -.SMARTQUOTES \" Enable smartquotes -.SS 0 \" No extra space between sentences -\# -.ALD 1i-1v \" Advance 1 inch from top of paper to first baseline -Example 1\*[BU 2]: -.ALD .25v \" Advance an extra 1/4 linespace -.UNDERSCORE 3.75p "T\*[BU 4]asting notes using padding, string tabs \ -and multi-columns" -\# -.SP \" Add an extra line space -\# -.FAM H \" Helvetica family -.PT_SIZE 10 -.LS 11 \" New leading -\# -\# The following uses a combination of padding, string tabs, and the -\# FWD escape to set up five tabs with 1-pica gutters stretched over -\# the full line length. -\# -.SILENT \" Don't print the next line -.PAD "\*[ST1]VIN#\*[ST1X]\*[FWD 1P]\*[ST2]ROBE#\*[ST2X]\*[FWD 1P]\*[ST3]NEZ#\*[ST3X]\*[FWD 1P]\*[ST4]BOUCHE#\*[ST4X]\*[FWD 1P]\*[ST5]COMMENTAIRES\*[ST5X]" -.SILENT OFF \" Resume normal printing of text -\# -\# Now that the string tabs have been marked off, we "set" them. -\# -.ST 1 L \" First string tab flush left, nofill mode (no need for .BR's between input lines) -.ST 2 L QUAD \" Remaining tabs are flush left/rag right, fill mode -.ST 3 L QUAD -.ST 4 L QUAD -.ST 5 L QUAD -\# -.TAB 1 \" Call first tab -.UNDERSCORE "VIN" -.TN \" Move to next tab and stay on the same baseline -.UNDERSCORE "ROBE" -.TN \" Ibid -.UNDERSCORE "NEZ" -.TN \" Ibid -.UNDERSCORE "BOUCHE" -.TN \" Ibid -.UNDERSCORE "COMMENTAIRES" -.TQ \" Quit tabs -\# -.ALD 6p \" Advance an extra 6 points -.FT R \" Change font to roman (medium) -.MCO \" Turn multi-column mode on -\# -.TAB 1 \" Notice that this tab gets set line-for-line -\*[IT]Peelee Island \" Set italic -\*[PREV]Gewürztraminer \" Revert to former font (roman) -2000 -(Canada) -.MCR \" Return to top of column -.TAB 2 \" Call tab 2; in multi-column mode, don't use .TN -Jaune pâle. -.MCR -.TB 3 \" Notice that from here on, we use the alias TB instead of TAB -Frais, fruité, ci\%tronné, arômes fortes de lichee et de fruits -tropicaux. -.MCR -.TB 4 -Doux, fruité, bien équilibré avec une bonne acidité. -.MCR -.TB 5 -Bon apéro. Servir avec des plats -.RW .1 \" Reduce Whitespace between letters to tighten this line -indiens ou \%chinois. -.RW 0 \" Back to normal spacing between letters -.BR -Excellent rapport qualité/prix. -.MCX 8p \" Multi-column mode off; advance an extra 8 points -.MCO \" Re-invoke multi-columns for next wine description -.TB 1 -\*[IT]Carau Pujol -\*[ROM]Tannat -1995 -(Uraguay) -.MCR -.TB 2 -Rubis foncé, vio\%lacée, presque opaque. -.MCR -.TB 3 -Belles arômes de fruits foncés (prunes, cerises noires, cassis). -Odeurs tertiares de cuir, cèdre, violets, eucalyptus, avec une trace -exotique de Band-Aid*\*[BU 12]. -\# -\# The \*[BU 12], above, pulls the period back so that it falls -\# underneath the asterisk. \*[BP] could have been used instead -\# if you prefer to use points rather than kern units. -\# -.MCR -.TB 4 -Très rond, tannins mûres et veloutés, avec un long finis fruité et -doucement alcoolique. -.MCR -.TB 5 -Superbe\|! Une aubaine à ne pas manquer. Prêt à boire maintenant. -.MCX 1v \" Multi-columns off; advance an extra linespace -\# -\# Now, an example of a hanging indent. This is excessively fussy -\# from a typographic standpoint in that it hangs the asterisk outside -\# the current left margin so that the text following it lines up with -\# with the text in the tasting notes. Notice that in order to use a -\# hanging indent, you must first set a left indent. -\# -.FT I \" Change font to italic -.PT_SIZE -.5 \" Reduce point size by 1/2 point -.LS -.5 \" Reduce leading by 1/2 point -.JUSTIFY \" Set text justified -\# -\# Now, move the left margin back by the width of an asterisk plus 2 points... -\# -.L_MARGIN -(\w'*'+2p) -\# -\# ...and set a left indent equal to the width of an asterisk plus 2 points -\# -.IL \w'*'+2p -\# -\# Now, set the hanging indent equal to the left indent, effectively pulling -\# the first line of the following text back to the new left margin. -\# Subsequent output lines will be indented by the .IL amount. -\# Notice that when using the \w inline escape, there's no need to append -\# a unit of measure to it. -\# -.HI \w'*'+2p -*\*[FWD 1p]The term "Band-Aid" means the slightly sweet, vaguely chemical -smell associated with medical-grade plastics. It is often found in -wines from terroirs in South America. Provided a wine has a sufficient -concentration of fruit -.RW .04 \" Kern the whole next line slightly, so "lipstick" doesn't hyphenate. -aromas and complex tertiary characteristics, Band-Aid is a Good Thing. -Otherwise, it smells like cheap lipstick. -.RW 0 \" Reset kerning to 0 -\# -\# Notice, above, that although the values for IL and HI are the width -\# of an asterisk plus 2 points, when setting the first line of text -\# (the one with the asterisk at the beginning), we put only 1 point of -\# space after the *. This is to compensate for the fact that in the -\# italic font, the letter T doesn't align visually with the rest of -\# the text. As already noted, this is an extremely fussy example. :) -\# -.IQ CLEAR \" Cancel and clear stored indent values -.L_MARGIN 1i \" Reset left margin to its original value. -\# -.ALD 2P \" Add 2-picas extra space before next example -\# -.FAM T -.FT B -.PT_SIZE 12 -.LS 14 -\# -Example 2: -.ALD .25v -\# -.COMMENT \" COMMENT lets you enter comments without using \# or \" -In the next line, because the string to be underscored must be -enclosed in double-quotes, you can't use the double-quote character -itself around the word "Massaging". We circumvent this by using the -groff inline escapes \(lq and \(rq (leftquote and rightquote). -.COMMENT OFF \" Remember to turn COMMENT off! -\# -.UNDERSCORE 3.75p "\(lqMassaging\(rq \*[BCK 1p]a passage of rag right text" -.SP \" Add an extra linespace -\# -.PT_SIZE 12.5 -.LS 14 -.PT_SIZE -1 \" Reduce point size by 1 point -Passage using groff spacing defaults -\# -.ALD .5v \" Add an extra 1/2 line space -\# -.PT_SIZE +1 \" Restore point size -.QUAD LEFT \" Set quad left, fill mode -.IB 3P \" Indent 3 picas from both the left and right margins -.FT R -The thousand injuries of Fortunato I had borne as I best could; -but when he ventured upon insult, I vowed revenge. You, who so well -know the nature of my soul, will not suppose, however, that I gave -utterance to a threat. \*[IT]At length\*[PREV] I would be -avenged; this was a point definitively settled\(embut the very -definitiveness with which it was resolved, precluded the idea of -risk. I must not only punish, but punish with impunity. A -wrong is unredressed when retribution overtakes its redresser. -It is equally unredressed when the avenger fails to make himself -felt as such to him who has done the wrong. -.ALD 6p -\# -\# The next line is set quad right, nofill mode, 1/2 point smaller -\# than the preceding text (using the \*[SIZE ] inline escape. -\# -.RIGHT -\*[SIZE -.5]\(emEdgar Allen Poe, \*[IT]The Cask of Amontillado\*[PREV]\*[SIZE +.5] -.SP \" Extra linespace -.IBQ \" Disable "indent both" -\# -\# The passage above, while acceptable in a longer document, exhibits a -\# few typographic flaws. The shape of the right margin rag exhibits -\# a decidedly "rounded" appearance. The word "I" stands alone at the -\# end of the third line. The space between the 1st and 2nd sentences -\# ("...revenge. You...") is too large, owing to the letter "Y" that -\# begins the 2nd sentence. The spacing between "A wrong..." (line 6) -\# is equally too large because of the way "A" and "w" fit together. -\# The em-dash before Edgar isn't vertically centered with the letter "E". -\# And so on. The most important correction below is fixing the rag -\# so that longer and shorter lines alternate. This is accomplished by -\# manually breaking lines and then slightly lengthening and shortening -\# them until a pleasing rag is achieved. The remainder of the little -\# flaws are fixed with inline escapes. -\# -.FT B -.PT_SIZE -1 -.LEFT -The same passage, \*[BU 4]"massaged" -\# -.ALD .5v -\# -.FT R -.PT_SIZE +1 -.QUAD LEFT -.HY OFF \" Turn automatic hyphenation off -.BR_AT_LINE_KERN \" Automatically insert a line break (.BR) with each invocation of .RW and .EW -.WS +1 \" Increase word space slightly -.IB \" Turn "indent both" back on; values are the same as before -\# -The thousand injuries of Fortunato I had borne as I best could; but -when he ventured upon insult, I \*[BU 2]vowed revenge. \*[BU 4]Y\*[BU 6]ou, -\*[BU 4]who so \*[BU 2]well know the nature -.EW .2 -of my soul, \*[BU 2]will not suppose, however, that I gave utterance to -a threat. \*[IT]At -.EW .2 -length\*[PREV] I would be avenged; this was a point definitively -settled\(embut the -.EW .2 -v\*[BU 1]ery definitiveness with which it was resolved, precluded the idea -of risk. -.EW 0 -I must not only punish, but punish with impunity. A \*[BCK 1p]wrong is -unredressed -.EW .1 -when retribution overtakes its redresser. It is equally unredressed -when the -.RW .1 -avenger fails to make himself felt as such to him \*[BU 2]who has done -the wrong. -.RW 0 \" Restore normal kerning -.WS +0 \" Restore normal wordspacing -.ALD 6p -.PT_SIZE -.5 -.RIGHT -\*[UP 1.5p]\(em\*[DOWN 1.5p]\*[BCK 1p]Edgar \*[BCK 1p]Allen Poe, \*[IT]The Cask of Amontillado\*[PREV] -.IQ CLEAR \" Cancel and clear stored values of all indents -\# -\# -.NEWPAGE \" Start a new page -.T_MARGIN 1i \" Set top margin to 1i (approx. equivalent to .ALD 1i-1v above) -\# -.FAM T -.FT B -.PT_SIZE 12 -.LS 14 -.LEFT -\# -Example 3: -.ALD .25v -.UNDERSCORE 3.75p "A \*[BU 2]recipe for enumerated lists using indents" -.SP .5v \" Add an extra half line space -.FAM N \" New Century Schoolbook family -.FT R -.PT_SIZE 11 -.LS 13 -.HY \" Turn hyphenation back on -.JUSTIFY \" Justify text -This example demonstrates the use of left and hanging indents for -simple enumerated lists. Nested lists are possible, as the example -shows; however, the more complex the nesting, the wiser it becomes -to use (string) tabs, as seen in Example 4. -.TI 1.5m -\*[BD]Please note: mom\*[PREV] has macros that allow you to set -enumerated lists automatically. These examples merely show hanging -indents and string tabs in use. -\# -.JUSTIFY \" Justify text -.IL \w'\0.\0' \" Establish a left indent equal to the width of 2 figure spaces plus a period. -.HI \w'\0.\0' \" Establish a hanging indent equal to the size of the left indent. -.ALD 6p -\# -\# -1.\0This is the first item in the list. N\*[BU 2]otice how the first line -"hangs" back from the remaining text, which is otherwise -indented by the width of by two figure-spaces (digit-width -spaces) and a period. -.BR -.HI \" Notice that HI doesn't require an argument once the value's been set -.ALD 6p -2.\0This is the second item in the list. As with the above item, -notice the use of the \*[BU 8]\\0 escape sequence in the input text. It's -there to ensure that the space after the number/period combination -always remains the same (i.e. doesn't stretch when the line is -justified). That way, the text of each item always lines up perfectly. -\# -.COMMENT -Now we're going to set a bullet-point list, indented from the text -above by 1 pica. IL arguments are always added to whatever value -is in already effect for IL, hence all we have to do is tell mom to -indent (from the current left indent) 1 pica plus the width of the -bullet character ( \(bu ). \*[FWD 3p] puts three points of space after -the bullet so that the bullet and the text are visually separated. -.COMMENT OFF -\# -\# -.IL 1P+\w'\(bu\*[FWD 3p]' -\# -\# Hanging indents are always relative to the current left indent. -\# The additional 1-pica indent, above, already having been taken -\# care of, we only want to hang the first lines of bullet list items -\# back by the width of the bullet character plus its 3 extra -\# points of space. -\# -.ALD 6p -.HI \w'\(bu\*[FWD 3p]' -\*[DOWN 1p]\(bu\*[UP 1p]\*[FWD 3p]This is the first line of a sublist with bullets. -N\*[BU 2]otice how the first line (the one with the bullet) is indented -exactly one pica from the text of the list item above it, while the -remaining lines align with the left indent we set above. -.ALD 6p -.HI -\*[DOWN 1p]\(bu\*[UP 1p]\*[FWD 3p]This is the second item of the sublist with bullets. \*[BU 4]We -could go on indefinitely, but let's go back to the top level (numbered) -list... -\# -\# The easiest way to return to a previous indent value is by subtraction. -\# The argument to IL, above, was 1P+\w'\(bu\*[FWD 3p]', so we just reverse -\# it by putting a minus sign in front. The parentheses are required -\# for groff to evaluate the expression properly. -\# -.IL -(1P+\w'\(bu\*[FWD 3p]') -.HI \w'\0.\0' \" Reset hanging indent for use with numbered items. -.ALD 6p -3.\0...and here we are. -.HI \" Again, notice that once HI has been set, you don't have to keep passing it an argument. -.ALD 6p -4.\0In order not to make the example too long, we'll stop here. -.IQ CLEAR \" Don't forget to cancel and/or clear indents! -\# -.FAM T -.FT B -.PT_SIZE 12 -.LS 14 -.LEFT -.SP -\# -Example 4: -.ALD .25v -.UNDERSCORE 3.75p "A \*[BU 2]recipe for nested lists using string tabs" -.SP .5v -.FAM N -.FT R -.PT_SIZE 11 -.LS 13 -.JUSTIFY -Although setting up string tabs is a bit more complex than setting -up indents, it's \*[BU 3]well worth the effort, especially for nested lists. -.ALD 6p -\# -.COMMENT -The PAD line, below, sets up two string tabs. The first (ST1) -is exactly the length of two figure spaces and a period. The -second (ST2) is simply "the remainder of the line." -.COMMENT OFF -\# -.SILENT \" Don't print any of this -.PAD "\*[ST1]\0.\0\*[ST1X]\*[ST2]#\*[ST2X]" -.ST 1 L \" String tabs must be "set" after being marked off in a line -.ST 2 J \" ST 1 will be set flush left, nofill; ST 2 will be justified. -.SILENT OFF \" Restore printing -\# -.TB 1 -1. -.TN \" Use .TN here so text stays on the same baseline as the number in tab 1 -This is the first item in the list. N\*[BU 2]otice how, just as in Example 3, -the first line hangs back from the remaining text, which is otherwise -indented. -.ALD 6p -.TB 1 -2. -.TN -This is the second item in the list. N\*[BU 2]otice that when setting "lists" -with tabs, there's no need to use the \*[BU 8]\\0 escape sequence after -the number/period combination in the input text. -.ALD 6p -\# -.COMMENT -Now, set up the indented bullet-point sublist. The PAD line -says: move forward 12 points (1 pica), then mark off a string -tab (ST3) that's the length of the bullet character; move foward -another three points, then make the next string tab (ST4) the -length of remainder of the line. -.COMMENT OFF -\# -.SILENT -.PAD "\*[FWD 12p]\*[ST3]\(bu\*[ST3X]\*[FWD 3p]\*[ST4]#\*[ST4X]" -.ST 3 L -.ST 4 J -.SILENT OFF -.ALD 6p -.TB 3 -\*[DOWN 1p]\(bu\*[UP 1p] -.TN -This is the first line of a sublist with bullets. N\*[BU 2]otice how the -bullets and the text line up exactly the same as in Example 3. -.ALD 6p -.TB 3 -\*[DOWN 1p]\(bu\*[UP 1p] -.TN -This is the second item of the sublist with bullets. For the fun of -it, lets add in an -.SPREAD -en-dashed sub-sublist. -.BR \" We're in a fill mode right now, so you *must* terminate the line with BR -\# -.SILENT -.PAD "\*[FWD 12p]\*[ST5]\(en\*[ST5X]\*[FWD 4p]\*[ST6]#\*[ST6X]" -.ST 5 L -.ST 6 J -.SILENT OFF -.ALD 6p -.TB 5 -\*[UP .75p]\(en\*[DOWN .75p] -.TN -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, -sed diam voluptua. -.ALD 6p -.TB 5 -\*[UP .75p]\(en\*[DOWN .75p] -.TN -At \*[BU 3]vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea takimata sanctus est lorem ipsum dolor sit amet. -.ALD 6p -.TB 1 -3. -.TN -And here we are, back at the top-level numbered list with a minimum -of muss and fuss, -.ALD 6p -.TB 1 -4. -.TN -Generally speaking, once you get the hang of string tabs and the -\*[BD]PAD\*[PREV] macro, you'll find setting up complex nested lists -(or anything similar to them) easier than with hanging indents. -.TQ -\# -.NEWPAGE -.FAM T -.FT B -.PT_SIZE 12 -.LS 14 -.LEFT -\# -Example 5: -.ALD .25v -.UNDERSCORE 3.75p "Word spacing" -.ALD 8p -.FAM P \" Palatino family -.PT_SIZE 11 -.LS 14 -\# -\# The "label" lines for the following are set in Helvetica bold, one -\# point smaller than the examples themselves. This demonstrates the -\# use of the groff inline escape \f[...] to change both family and -\# font inline. It also shows using the mom inline \*S[...], which is -\# an alternate form of the inline, \*[SIZE ] -\# -\f[HB]\*S[-1]Normal word spacing\*S[+1]\*[PREV] -.FT R -N\*[BU 1]o\*[BU 1]w \*[BU 1]is the time for all good men to come to the aid of the party. -.ALD 4p -\f[HB]\*S[-1]Word spacing adjusted by \*[UP 1p]\*[BU 3]+\*[DOWN 1p]\*[BU 1]2\*S[+1]\*[PREV] -.FT R -.WS +2 -N\*[BU 1]o\*[BU 1]w \*[BU 1]is the time for all good men to come to the aid of the party. -.WS +0 -.ALD 4p -\f[HB]\*S[-1]Word spacing adjusted by \*[UP 1p]\*[BU 3]+\*[DOWN 1p]4\*S[+1]\*[PREV] -.FT R -.WS +4 -N\*[BU 1]o\*[BU 1]w \*[BU 1]is the time for all good men to come to the aid of the party. -.WS +0 -.ALD 4p -\f[HB]\*S[-1]Word spacing adjusted by \*[UP 1p]\*[BU 3]+\*[DOWN 1p]6\*S[+1]\*[PREV] -.FT R -.WS +6 -N\*[BU 1]o\*[BU 1]w \*[BU 1]is the time for all good men to come to the aid of the party. -.WS +0 -.SP 1.5v -\# -.FAM T -.FT B -.PT_SIZE 12 -.LS 14 -\# -.LEFT -Example 6: -.ALD .25v -.UNDERSCORE 3.75p "Line kerning" -.ALD 8p -.FAM P \" Palatino family -.FT R -.PT_SIZE 11 -.LS 15 -\# -\# Here, we set up some tabs so the examples can go into facing columns. -\# -.TAB_SET 1 0 19.5P L -.TAB_SET 2 19.5P 19.5P L -\# -.MCO \" Turn multi-columns on -.TB 1 -\f[HB]\*S[-1]Unkerned line\*S[+1]\*[PREV] -.FT R -"But this is \*[IT]important!\/"\*[PREV]she exclaimed. -.ALD 4p -\f[HB]\*S[-1]Line "tightened" \(en .RW .1\*S[+1]\*[PREV] -.RW .1 -"But this is \*[IT]important!\/"\*[PREV]she exclaimed. -.ALD 4p -\# -\# In the next line, notice that because it uses a different family -\# (Helvetica instead of Palatino), the RW macro doesn't affect it. -\# -\f[HB]\*S[-1]Line "tightened" \(en .RW .2\*S[+1]\*[PREV] -.RW .2 -"But this is \*[IT]important!\/"\*[PREV]she exclaimed. -.ALD 4p -\f[HB]\*S[-1]Line "tightened" \(en .RW .3\*S[+1]\*[PREV] -.RW .3 -"But this is \*[IT]important!\/"\*[PREV]she exclaimed. -.MCR -.TB 2 -\f[HB]\*S[-1]Unkerned line\*S[+1]\*[PREV] -"But this is \*[IT]important!\/"\*[PREV]she exclaimed. -.ALD 4p -\f[HB]\*S[-1]Line "loosened" \(en .EW .1\*S[+1]\*[PREV] -.EW .1 -"But this is \*[IT]important!\/"\*[PREV]she exclaimed. -.ALD 4p -\f[HB]\*S[-1]Line "loosened" \(en .EW .2\*S[+1]\*[PREV] -.EW .2 -"But this is \*[IT]important!\/"\*[PREV]she exclaimed. -.ALD 4p -\f[HB]\*S[-1]Line "loosened" \(en .EW .3\*S[+1]\*[PREV] -.EW .3 -"But this is \*[IT]important!\/"\*[PREV]she exclaimed. -.MCX 1.5v -\# -.FAM T -.FT B -.PT_SIZE 12 -.LS 14 -.LEFT -\# -Example 7: -.ALD .25v -.UNDERSCORE 3.75p "Cutaround using left\*[FU 2]/right indents, multi columns \ -and a dropcap" -.SP -\# -.FT R -.PT_SIZE 11 -.LS 12 -.BR_AT_LINE_KERN OFF \" In justified text, it's best to have this OFF -\# -.TAB_SET 1 0 18.5P J -.TAB_SET 2 20.5P 18.5P J -.MCO -.ALD 5P+9p -\# -\# The little picture of tux. -\# -.PSPIC penguin.ps -.MCR -.TAB 1 -.XCOLOR red \" Initialize the X11 color, red -.DROPCAP_COLOR red -.DROPCAP_FONT B -.DROPCAP L 3 COND 80 \" i.e. the letter L dropped 3 lines, condensed to 80% of its normal width -.EW .2 -orem ipsum dolor sit amet, consetetur sa\%dip\%scing elitr, sed diam -nonumy eir\%mod tempor invidunt ut labore et dolore magna aliquyam erat, -sed diam voluptua. -.EW 0 -.TI 1P -At vero eos et accusam et justo duo dolores et ea rebum. Stet clita -kasd gubergren, no sea taki- -.SPREAD \" Force justify preceding line before starting indent -.IR 3.5P -kimata sanctus est lorem ipsum dolor sit amet. -Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam -nonumy eirmod tempor. -.EW .2 -.TI -Invidunt ut labore et dolore magna ali\%qu\%yam erat, sed diam voluptua. -At -.EW 0 -vero eos et accusam et justo duo dolores et ea rebum. -.TI -Stet clita kasd gubergren, no sea ta- -.SPREAD \" Force justify preceding line before quitting indent -.IRQ -kimata sanctus est lorem ipsum dolor sit amet. Lorem ipsum dolor -sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor -in\%vi\%dunt ut labore et dolore magna aliquyam erat. Sed diam voluptua, -at vero eos et accusam et justo duo -.SPREAD -.EW .3 -dolores et ea rebum. Stet clita no kasd guber- -.SPREAD -.MCR -.TB 2 -gren, no sea takimata sanctus est lorem ipsum -.EW 0 -dolor sit amet. Consetetur sadipscing elitr, sed diam nonumy eirmod -tempor invidunt ut labore et dolore. -.TI -Magna aliquyam erat, sed diam voluptua, at vero eos et accusam. -Et justo duo dolores et ea -.SPREAD -.IL 3.5P -rebum, stet clita kasd gubergren. No sea -takimata sanctus est, lorem ipsum dolor sit amet. -.TI -Sit amet, consetetur sadipscing elitr, sed diam. Nonumy eirmod tempor -in\%vi- -.EW .3 -dunt ut labore et dolore magna. Ali- -.EW 0 -quyam erat sed diam voluptua. -At vero eos et accusam et justo duo dolores et ea rebum stet. -.ILQ -.TI -Dolores et ea rebum stet clita kasd gubergren, no sea takimata -sanctus. Sadipscing elitr sed diam, nonumy eirmod tempor, invidunt -ut labore et dolore magna aliquyam erat. Sed diam voluptua, at vero -eos et accusam et justo duo dolores et ea rebum. diff --git a/src/contrib/mom/mom.tmac b/src/contrib/mom/mom.tmac deleted file mode 100644 index b1b0b18..0000000 --- a/src/contrib/mom/mom.tmac +++ /dev/null @@ -1,3 +0,0 @@ -.\" mom.tmac -.\" -.do mso om.tmac diff --git a/src/contrib/mom/momdoc/color.html b/src/contrib/mom/momdoc/color.html deleted file mode 100644 index a6badbc..0000000 --- a/src/contrib/mom/momdoc/color.html +++ /dev/null @@ -1,338 +0,0 @@ - - - - -Mom -- Colour - - - - - -Next   -Prev   -Back to Table of Contents - - -

    - Coloured text -

    -

    -Introduction to coloured text -
    -Index of colour macros -

    - - -

    Introduction to coloured text

    - - -Mom's support for coloured text is straightforward. -You begin by telling mom about the colours you want -with -NEWCOLOR -or -XCOLOR. -Afterward, any time you want text to be coloured, you either colour -it with an -inline escape -that contains the colour name (e.g. \*[red] or -\*[blue]) or invoke the macro, -COLOR, -with the name of the colour you want. - -

    -For example, say you want to have the name "Jack" in the -sentence "All work and no play makes Jack a dull boy" -appear in yellow. You'd begin by telling mom about -the colour, yellow. There are two ways of doing this; see -NEWCOLOR -and -XCOLOR -for a full explanation of the difference between the two. If you -use XCOLOR, you'd enter this: -

    -

    -	.XCOLOR yellow
    -
    - -If you use NEWCOLOR, you might enter -

    -

    -	.NEWCOLOR yellow RGB #FFFF00
    -
    - - -After "defining" (or "initializing") the colour -"yellow", you'd colourize the name, Jack, either with an -inline escape -

    -

    -	All work and no play makes \*[yellow]Jack\*[black] a dull boy.
    -
    - -or with the COLOR macro -

    -

    -	All work and no play makes
    -	.COLOR yellow
    -	Jack
    -	.COLOR black
    -	a dull boy.
    -
    - -Notice, in both examples, that a) you have to set the colour back to -black after "Jack", and b) you don't have to define or -intialize the colour, black. Mom predefines -"black", "BLACK", "white" and -"WHITE" for you. -

    -For information on using colour during -document processing, -see -Colour support in document processing. -

    -Please note: Mom's colour support is for text only. -She doesn't support "fill" (or "background") -colour for drawn objects. Please also note that if you're -accustomed to using groff's .defcolor to define colours, -and groff's inline \m[<colorname>] to call them, you may -continue to do so without confusing mom. - -

    -

    Index of colour macros

    - -

    - - - -


    -

    Creating (initializing) a colour with NEWCOLOR

    -
    -Macro: NEWCOLOR <colour name> [<colour scheme>] <colour components> - -

    -NEWCOLOR lets you create a colour, rather like an -artist mixing paint on a palette. The colour isn't used -immediately; NEWCOLOR merely tells -mom how to mix the colour when you need it. If -you haven't invoked NEWCOLOR (or -XCOLOR), -mom doesn't have a clue what you mean when you -reference a colour (with -COLOR -or -\*[<color name>]). -

    -The first argument to NEWCOLOR is a name for your -colour. It can be anything you like--provided it's just one word -long--and can be caps, lower case, or any combination of the two. -

    -The second argument, which is entirely optional, is the "colour -scheme" you want mom to use when mixing the -colour. Valid arguments are RGB (3 components, -red green blue), CYM (3 components cyan yellow -magenta), CMYK (4 components cyan magenta yellow -black) or GRAY (1 component). If you omit the -second argument, mom assumes you want RGB. -

    -The final argument is the components of your colour. This can be -hexadecimal string starting with a pound sign (#) (for colour values -in the 0-255 range) or two pound signs (##) (for colour values -in the 0-65535 range), or it can be a series of decimal digits, -separated by spaces, one digit per component, with the argument -enclosed in double quotes. (If this is all gibberish to you, see -Tips for newbies.) -

    -Thus, to tell mom about a colour named -"YELLOW", you could enter one of the following: -

    -

    -	.NEWCOLOR YELLOW #FFFF00         \"or ##FFFFFFFF0000 or "1 1 0"
    -	.NEWCOLOR YELLOW RGB #FFFF00     \"or ##FFFFFFFF0000 or "1 1 0"
    -	.NEWCOLOR YELLOW CYM #00FF00     \"or ##0000FFFF0000 or "0 1 0"
    -	.NEWCOLOR YELLOW CYMK #00FF0000  \"or ##0000FFFF00000000 or "1 1 0"
    -
    - -After you've told mom about a colour, you can then get -her to set text in that colour either with the inline escape -\*[<colorname>] -or the macro -COLOR. -(See the -example, -above.) -
    -

    Tips for newbies

    -Colour manipulation can be tremendously confusing if you don't have -a background in graphic arts or computing. My advice, if color -intimidates you, is to stick to using mom's -default RGB colour scheme, and to fire up a color chooser that -gives you the RGB values you want for the colour you select. Plug -those values into the components argument to -NEWCOLOR, and you'll get the colour you want. -Both the KDE and gnome desktops have colour selectors that provide -you with the shorter RGB hexadecimal string. If you're not running -KDE or gnome, the X utility, xcolorsel, provides you with a similar -functionality, although it only provides RGB values for 256 -pre-defined colours. If you use xcolorsel, be sure to click the -button "Display format" and select "8 bit truncated -rgb". -

    -Alternatively, you can use mom's simpler -XCOLOR -macro to initialize one of the 256 pre-defined X colours by -supplying the name of the color as an argument. -
    - - - -


    -

    Initializing a colour with XCOLOR

    -
    -Macro: XCOLOR <X color name> [<alias>] -
    -*<X color name> must be all one word, all lower case. -
    -(See -
    Finding X color names -for how to get a list of valid colour names.) - -

    -XCOLOR is similar to NEWCOLOR in -that it tells mom to initialize a colour, but it's -easier to use. All you have to do is pass it, as an argument, the -legal name of one of the 256 pre-defined X colours. The name must -be all one word, and, breaking with mom policy, it -must be entered in lower case. -

    -For example, if you want to intialize the X colour, coral, all you -have to do is enter -
    -

    -	.XCOLOR coral
    -
    - -Afterwards -

    -

    -	.COLOR coral
    -
    - -will colourize subsequent text coral until you instruct -mom to return to black, or some other pre-defined -initialized colour. (The -inline escape -\*[coral] will equally colourize text coral after you've -initialized the colour with XCOLOR.) -

    -The downside of XCOLOR is that you can't create -custom colours. This restriction, however, is mitigated by the -fact that for many users, 256 colours is more than enough to play -around with. -

    -While some X colours have fanciful names (peachpuff, papayawhip, -thistle, snow), many are self-explanatory and self-descriptive in -ordinary colour terms. "blue" is pure (rgb) blue, -"green" is pure (rgb) green, and so on. Furthermore, for -many X colors, there exist four variants, each representing -increasingly darker shades of the same colour. For example, -"blue" (and "blue1") are the brightest forms of -(rgb) blue; "blue2", "blue3" and "blue4" -are increasingly darker shades of the same blue. For that reason, -you may find XCOLOR is a better choice than -NEWCOLOR when it comes to initializing common -colors. -

    -The whimsical nature of X colour names sometimes makes for names -that are long to type in, e.g. "mediumspringgreen". -The optional second argument to XCOLOR allows you -to come up with more convenient name by which to reference the -colour. For example, you could enter -

    -

    -	.XCOLOR mediumspringgreen mygreen
    -	    or
    -	.XCOLOR mediumspringgreen MYGREEN
    -
    - -so that whenever you want text mediumspringgreen-ed, you can use -either .COLOR mygreen (or .COLOR MYGREEN) or -the inline escape \*[mygreen] (or -\*[MYGREEN].) -

    -

    Finding X color names

    -
    -There are two ways of finding the names of the pre-defined X -colours. One is to consult the file, rgb.txt, included with -all X11 installations. The location of the file on a Debian -GNU/Linux distribution is typically /etc/X11/rgb.txt. Other -distributions and other X installations may have the file in -another location. The file lists the colour names, but doesn't -show you what the colours actually look like. -

    -A better way to get the colour names, as well as to see what the -colours look like, is to fire up a colour chooser (like xcolorsel) -that both lists the colour names and shows a swatch of the colour -as well. -

    -Whichever method you use to find X color names, remember that the -names, passed as arguments to XCOLOR, must -be all one word, all in lower case. -
    - - - -


    -

    Invoking a color

    -
    -Macro: COLOR <colorname> -
    -
    Inline: \*[<colorname>] -

    - -Once you've told mom about a colour (via -NEWCOLOR or XCOLOR), you use either -the macro, COLOR, or the -inline escape, -\*[<colorname>], to cause mom to -set subsequent text in that colour. See the -example, -above, which shows both in action. -

    -NOTE: You can use the -\*[<colorname>] inline escape in any -document processing -macro that takes a -string argument. -However, you must remember to reset the colour at the end of the -argument (typically with \*[black]) unless you want all -subsequent invocations of that particular macro to be colourized. -

    -Furthermore, if you use \*[<colorname>] in the -string argument passed to -.HEAD, -.SUBHEAD -or -.PARAHEAD, -and you've requested that any of these types of heads be numbered, -the numbers themselves will not be coloured, only the text you -passed the macro. If you wish the numbers to be colourized as -well, you must explicitly tell mom that you wish -all of the head(s), subhead(s) or parahead(s), including the -numbers, colourized by invoking the appropriate -control macro. - -
    - -


    -Next   -Prev   -Top   -Back to Table of Contents - - diff --git a/src/contrib/mom/momdoc/cover.html b/src/contrib/mom/momdoc/cover.html deleted file mode 100644 index 2566547..0000000 --- a/src/contrib/mom/momdoc/cover.html +++ /dev/null @@ -1,512 +0,0 @@ - - - - -Mom -- Document processing, creating a cover page - - - - - -Next   -Prev   -Back to Table of Contents -

    - - -

    CREATING A COVER PAGE

    - - - - -

    Introduction to cover pages

    -

    -As of version 1.19 of mom, you can now have cover -pages generated automatically. -

    -Though identical in treatment, mom provides two -kinds of cover pages: section cover pages (which I shall refer to -simply as "cover pages") and document cover pages -("doc covers"). -

    -A document cover page -(doc cover) -is what you'd most likely use at the start of a collated document, where -you might want the name of the complete document, the author(s) and -the copyright line to appear. Another place you might use a doc -cover is for a novel, where you want the title of the novel, not -the chapter title or chapter number, as the first cover page. -

    -A section -cover -page is what you'd use for cover pages that separate sections of a -collated document. A section cover page (but not a doc cover page) -in a collated document could, for example, simply read "PART -I". -

    -In non-collated documents (say, an essay) you can use either a -section cover or a doc cover to generate a cover sheet. -

    -In addition, nothing prevents you from generating both a doc cover -page and a section cover page for every document in a collated -document. Or you can selectively disable the automatic generation -of either doc covers or section covers in a collated document, -on-the-fly. -

    -Important note: -automatic generation of cover or doc cover pages after the first -one(s) only takes place if you are working with collated documents. -Mom provides no mechanism for saying "print -a section cover here even though I'm still working on the same -(non-collated) document." - -

    Description of what mom does on cover pages

    - -By default, mom typesets cover (and doc cover) -pages identically to -docheaders -(see -How to change the look of docheaders -for a description of what a docheader looks like). The only -differences are -
    -
      -
    • the position on the page where the information is output -
    • the (optional) addition of copyright and miscellaneous - information -
    • there's no running text underneath -
    - -

    -You tell mom what you want to appear on the cover -pages through the arguments you pass to -COVER -and/or -DOC_COVER. -Provided you have already given mom the -appropriate references macro (e.g. -TITLE -or -AUTHOR), -she will output cover (and doc cover) pages identically to how she -would output docheaders containing the same information. -

    -By default, mom starts cover (and doc cover) pages -one-third of the way down the page. This can be changed through -the use of the control macros -COVER_ADVANCE/DOC_COVER_ADVANCE. -

    -If you request copyright information (and have already given -mom the reference macro, -COPYRIGHT), -she sets it, by default, in a smaller -point size -in the bottom right hand corner of the cover (or doc cover) page. -The default point size and the position can be controlled -with -COVER_COPYRIGHT_SIZE/DOC_COVER_COPYRIGHT_SIZE -and -COVER_COPYRIGHT_QUAD/DOC_COVER_COPYRIGHT_QUAD. -

    -Similarly, if you request miscellaneous information (and have already given -mom the reference macro, -MISC), -she sets it, by default, in a smaller point size in the bottom left -hand corner of the cover (or doc cover) page. The default point -size is dependent on -COVER_COPYRIGHT_SIZE/DOC_COVER_COPYRIGHT_SIZE, -but the position can be controlled with -COVER_MISC_QUAD/DOC_COVER_MISC_QUAD. - - -

    -NOTE: mom does not set any -headers -or -footers -on cover pages. Neither does she set any page numbers. From the -point of pagination, cover (and doc cover) pages are considered -"null" pages; if you wish them to be included in the -pagination scheme (even though no page numbers appear), you must -set the page number of each first page following a -COLLATE -manually with -PAGENUMBER. - - -

    -Finally, if you want to design your own cover page(s), you can -always typeset them (using the -typesetting macros), -invoke -NEWPAGE, -set up your document in full (see -Tutorial -- Setting up a mom document), -and lastly invoke -START. -The cover page (and any typesetting commands on it) will have no -effect on mom's processing of the document itself, -the first page of which, moreover, will be numbered "1" -unless you instruct her otherwise with -PAGENUMBER. -

    - - - -


    -

    - - Macro: COVER -
    - Macro: DOC_COVER -
    - Required argument: TITLE | DOCTITLE | COVERTITLE | CHAPTER | CHAPTER_TITLE | CHAPTER+TITLE -
    - Optional arguments: [ SUBTITLE AUTHOR DOCTYPE COPYRIGHT MISC ] -

    - *Note: these macros should be placed in the - "style-sheet" section of your document setup (see the - Tutorial -- Setting up a mom document), - i.e. after PRINTSTYLE (and/or DOCTYPE and/or COPYSTYLE), but - before START. - - -

    -COVER and DOC_COVER behave -identically. The reason mom provides two macros -for automatic cover page generation is so that you can have two -different kinds of covers with different information on each. -

    -Imagine, for a moment, you've written a document comprised of three -sections. When you -COLLATE -the document for output, you could use DOC_COVER -to generate a cover page that contained the name of the entire -document, your (the author's) name, and perhaps the copyright date. -Subsequently, you could use COVER, after each -COLLATE but before each -START, -to generate a cover page (or cover "sheet", if you prefer) -containing just the name of the section. -
    - -

    The required argument

    - -Both COVER and DOC_COVER, whenever -invoked, require a first argument, as listed above. This first argument -will become the first bit of information mom -prints on the cover (or doc cover) page (i.e. it will be the -"title"). -

    -In order for the information to appear, you must, of course, first -have given mom the appropriate -reference macro. -A list of arguments with their equivalent reference macros follows. -
    - -

    -
    TITLE -
    -means the argument you gave to -TITLE -
    DOCTITLE -
    -means the argument you gave to -DOCTITLE -
    COVERTITLE -
    -means the argument you gave to -COVERTITLE -or -DOC_COVERTITLE -
    CHAPTER, CHAPTER_TITLE, CHAPTER+TITLE -
    -see below (How the CHAPTER argument and friends work) -
    -
    - -

    How the CHAPTER argument and friends work

    - -CHAPTER, by itself, will print the CHAPTER_STRING as well -as the chapter number that you gave to -CHAPTER. -For example, assuming a vanilla setup for your chapter -

    -

    -	\# Reference macros
    -	.CHAPTER 1
    -	.CHAPTER_TITLE "The Bonny Blue Yonder"
    -	<other stuff>
    -	.COVER CHAPTER \" (or .DOC_COVER CHAPTER)
    -	.START
    -
    - -will simply print -

    -

    -	Chapter 1
    -
    - -CHAPTER_TITLE will print the chapter title you -gave to -CHAPTER_TITLE. -For example, assuming a vanilla setup for your chapter -

    -

    -	\# Reference macros
    -	.CHAPTER 1
    -	.CHAPTER_TITLE "The Bonny Blue Yonder"
    -	<other stuff>
    -	.COVER CHAPTER_TITLE \" (or .DOC_COVER CHAPTER_TITLE)
    -	.START
    -
    - -will simply print -

    -

    -	The Bonny Blue Yonder
    -
    - -

    -CHAPTER+TITLE will print both the -chapter string + number AND the chapter title. For example, -assuming a vanilla setup for your chapter -

    -

    -	\# Reference macros
    -	.CHAPTER 1
    -	.CHAPTER_TITLE "The Bonny Blue Yonder"
    -	<other stuff>
    -	.COVER CHAPTER+TITLE \" (or .DOC_COVER CHAPTER+TITLE)
    -	.START
    -
    - -will print -

    -

    -	      Chapter 1
    -	The Bonny Blue Yonder
    -
    - -

    The optional arguments

    - -The remainder of the arguments to COVER and -DOC_COVER are optional. They refer specifically -to the information you gave the -reference macros -bearing the same name as the arguments. -

    -You may enter as many or as few as you would like to see on your -cover (or doc cover) page. The only hitch is--PAY ATTENTION, -CLASS!--they must be entered in the order given above. For -example, if you want TITLE, AUTHOR, -COPYRIGHT and MISC -

    -

    -	.COVER TITLE AUTHOR COPYRIGHT MISC
    -
    - -is correct, while -

    -

    -	.COVER TITLE AUTHOR MISC COPYRIGHT
    -
    - -is not. -
    - -

    What the DOCTYPE argument means

    - -When you pass COVER or DOC_COVER -the argument, DOCTYPE, it refers to the argument you -gave to -DOCTYPE NAMED. -For example, if, in your -docstyle macros -you gave a -

    -

    -	.DOCTYPE NAMED "Abstract"
    -
    - -the argument, DOCTYPE, in the COVER or -DOC_COVER macros, would mean that you wanted the -word, Abstract, to appear on the cover (or doc cover), just as it -would in the -docheader. -
    - - - -
    -

    - - Macro: COVERS <toggle> -
    - Macro: DOC_COVERS <toggle> - -

    -By default, if you give mom a -COVER -or -DOC_COVER -macro, she will print it. In a document that contains sections, -articles or chapters formerly treated as "one-off's" but -now being -collated, -such behaviour may not be desirable. -

    -Mom lets you selectively enable or disable the -generation of covers and/or doc covers with the toggle macros -COVERS and DOC_COVERS. Because -they're toggle macros, simply invoking them by themselves enables -automatic cover (or doc cover) generation, while invoking them -with any argument at all (OFF, QUIT, X, etc) -disables cover (or doc cover) generation. -

    -NOTE: You must place these macros prior to any -instance of -START. Since they're -"on" by default, there's no need to use them if you want -covers. However, if you don't, especially in the kind of scenario -described above, the best place to put them (most likely with an -OFF, NO, X, etc. argument), is immediately after the -first invocation of START. By doing so, you ensure -they precede all subsequent instances of START. -

    - -


    -

    -

    Control macros--changing the defaults for covers and document covers

    -The default typographic appearance of the items on a cover (or doc -cover) page is identical to that of the items in a -docheader. -(See -How to change the look of docheaders -for a description of the defaults.) -

    -COPYRIGHT -and -MISC, -which do not appear in docheaders, have the following default -characteristics: -
    -

      -
    1. The copyright line is set in the bottom right hand corner - of the page, 2 - point sizes - smaller than the size of - running text -
    2. The "misc" line is set in the bottom left hand - corner of the page, in the same family, font and point size - as the copyright line. -
    -

    -With the exception of the copyright and "misc" lines, the -defaults for the entirety of cover (and doc cover) pages, and all -the elements thereon, can be changed with control macros whose -behaviour and arguments are identical to -the control macros used for docheaders. -The only difference is the name by which you invoke the control -macro(s). -

    -The complete list of cover (and doc cover) page control macros -follows; please refer to the -docheader control macros index -in order to understand how to use them. -

    -

    Index of cover and doc cover control macros

    -
    -.COVER_ADVANCE  .DOC_COVER_ADVANCE -+
    -.COVER_FAMILY   .DOC_COVER_FAMILY   | like DOCHEADER_
    -.COVER_LEAD     .DOC_COVER_LEAD    -+
    -
    -.COVER_TITLE_FAMILY  .DOC_COVER_TITLE_FAMILY -+
    -.COVER_TITLE_FONT    .DOC_COVER_TITLE_FONT    | like
    -.COVER_TITLE_COLOR   .DOC_COVER_TITLE_COLOR   | TITLE_
    -.COVER_TITLE_SIZE    .DOC_COVER_TITLE_SIZE   -+
    -
    -.COVER_CHAPTER_TITLE_FAMILY  .DOC_COVER_CHAPTER_TITLE_FAMILY -+
    -.COVER_CHAPTER_TITLE_FONT    .DOC_COVER_CHAPTER_TITLE_FONT    | like
    -.COVER_CHAPTER_TITLE_COLOR   .DOC_COVER_CHAPTER_TITLE_COLOR   | CHAPTER_TITLE_
    -.COVER_CHAPTER_TITLE_SIZE    .DOC_COVER_CHAPTER_TITLE_SIZE   -+
    -
    -.COVER_SUBTITLE_FAMILY  .DOC_COVER_SUBTITLE_FAMILY -+
    -.COVER_SUBTITLE_FONT    .DOC_COVER_SUBTITLE_FONT    | like
    -.COVER_SUBTITLE_COLOR   .DOC_COVER_SUBTITLE_COLOR   | SUBTITLE_
    -.COVER_SUBTITLE_SIZE    .DOC_COVER_AUTHOR_SIZE     -+
    -
    -.COVER_ATTRIBUTE_COLOR  .DOC_COVER_ATTRIBUTE_COLOR - like ATTRIBUTE_COLOR
    - - the macro, .ATTRIBUTE_STRING, controls the attribution string
    -   for both docheaders and cover pages; cover pages have no
    -   separate ATTRIBUTE_STRING macro
    -
    -.COVER_AUTHOR_FAMILY  .DOC_COVER_AUTHOR_FAMILY -+
    -.COVER_AUTHOR_FONT    .DOC_COVER_AUTHOR_FONT    | like
    -.COVER_AUTHOR_COLOR   .DOC_COVER_AUTHOR_COLOR   | AUTHOR_
    -.COVER_AUTHOR_SIZE    .DOC_COVER_AUTHOR_SIZE   -+
    -
    -.COVER_DOCTYPE_FAMILY  .DOC_COVER_DOCTYPE_FAMILY -+
    -.COVER_DOCTYPE_FONT    .DOC_COVER_DOCTYPE_FONT    | like
    -.COVER_DOCTYPE_COLOR   .DOC_COVER_DOCTYPE_COLOR   | DOCTYPE_
    -.COVER_DOCTYPE_SIZE    .DOC_COVER_DOCTYPE_SIZE   -+
    -
    -.COVER_COPYRIGHT_FAMILY  .DOC_COVER_COPYRIGHT_FAMILY -+
    -.COVER_COPYRIGHT_FONT    .DOC_COVER_COPYRIGHT_FONT    | like any
    -.COVER_COPYRIGHT_COLOR   .DOC_COVER_COPYRIGHT_COLOR   | of the above
    -.COVER_COPYRIGHT_SIZE    .DOC_COVER_COPYRIGHT_SIZE   -+
    -.COVER_COPYRIGHT_QUAD    .DOC_COVER_COPYRIGHT_QUAD
    - - the copyright quad can be either L (left) or R (right); default is left
    -
    -.COVER_MISC_COLOR  .DOC_COVER_MISC_COLOR - like any of the above _COLOR
    -.COVER_MISC_QUAD   .DOC_COVER_MISC_QUAD
    - - the misc quad can be either L (left) or R (right); default is right
    -
    - -Note: COVER_MISC and -DOC_COVER_MISC have only two control macros, -_COLOR and _QUAD. The -family, font and size of the MISC argument to -COVER or DOC_COVER are always the -same as for COPYRIGHT. Should you wish the family, font -or size to be different from COPYRIGHT, I suggest setting -the type specs for COPYRIGHT to the ones you want for -MISC, then altering them for COPYRIGHT using -inline escapes -in the -string argument -you pass to the macro, -COPYRIGHT. (Of course, -you could always do the reverse, but if you pass several arguments -to -MISC, -it's more likely you want to get MISC right first.) - -

    -


    -Next   -Prev   -Top   -Back to Table of Contents - - diff --git a/src/contrib/mom/momdoc/definitions.html b/src/contrib/mom/momdoc/definitions.html deleted file mode 100644 index 80542af..0000000 --- a/src/contrib/mom/momdoc/definitions.html +++ /dev/null @@ -1,768 +0,0 @@ - - - - -Mom -- Definitions and Terms - - - - - -Next   -Prev   -Back to Table of Contents -

    - - -

    DEFINITIONS OF TERMS USED IN THIS MANUAL

    - - -Typesetting Terms -
    -Groff Terms -
    -Mom Document Processing Terms -

    -I use a number of typesetting-specific and groff-specific terms -throughout this documentation, as well as a few terms that apply -to mom herself. To make life easier, I'll explain -them here. Refer back to this section should you encounter a word -or concept you're not familiar with. -

    -


    - - -

    Typesetting terms

    -
    - - - -
    -
    Ascender -
    The portion of a letter that extends above the bowl. For example, -the letters a, c, and e have no ascenders. The letters b, d, and h -do. - -
    Baseline -
    The imaginary line on which the bottoms of capital letters and the -bowls of lower case letters rest. - -
    Ballot box -
    An unfilled square, usually -cap-height -in size, typically placed beside items in a checklist. - -
    Bullet -
    A small, filled circle typically found beside items or points in -a list. - -
    Cap-height -
    The height of the tallest capital letter in a given -font -at the current -point size. - -
    Descender -
    The portion of a letter that extends beneath the -baseline -(j, q, y are letters with descenders). - -
    Discretionary hyphen -
    A symbol inserted between two syllables of a word that indicates to a -typesetting program the legal hyphenation points in the word. Normally, -if hyphenation is turned on, groff knows where to hyphenate words. -However, hyphenation being what it is (in English, at any rate), -groff doesn't always get it right. Discretionary hyphens make sure -it does. In the event that the word doesn't need to be hyphenated -at all, groff leaves them alone. In groff, the discretionary hyphen is -entered with -

    -

    -	\%
    -
    - -(backslash followed by a percent). - -
    Drop cap -
    A large, usually upper-case letter that introduces the first -paragraph of a document or section thereof. The top of the drop -cap usually lines up with the top of the first line of the -paragraph, and typically "drops" several lines lower. -Text adjacent to the drop cap is indented to the right of the -letter until the bottom of the drop cap is reached, at which -point text reverts to the left margin. - -
    Em/en -
    An em is a relative measurement equal to the width of the -letter M at a given -point size -in a given -font. -Since most Ms are designed square, an em is usually (but sometimes -erroneously) considered to be the same size as the current point -size (i.e. if the point size of the type is 12, one em equals 12 -points). An en is equal to the width of a letter N (historically -2/3 of an em, although groff treats an en as 1/2 of an em). -Typically, ems and ens are used to measure indents, or to define the -length of dashes (long hyphens). - -
    Family -
    The collective name by which a collection of -fonts -are known, e.g. Helvetica, Times Roman, Garamond. - -
    Figure space/Digit space -
    A -fixed width space -that has the width of one digit. Used for aligning numerals in, -say, columns or numbered lists. In groff, the figure space is -entered with -

    -

    -	\0
    -
    - -(backslash followed by a zero). - -
    Fixed width space -
    Equal to -word space, -but does not expand or contract when text is -justified. -In groff, fixed width space is entered with -

    -

    -	\<space>
    -
    - -where <space> means "hit the spacebar on your keyboard." - -
    Font -
    The specific -weight -and -shape -of type within a -family, -e.g. light, medium, bold (which are weights), and roman, italic, -condensed (which are shapes). By default, groff knows of four fonts -within its default set of families: R (medium roman), I (medium -italic), B (bold roman) and BI (bold italic). - -
    Force justify - -
    Sometimes, in -justified -text, a line needs to be broken short of the right margin. Force -justifying means telling a typesetting program (like groff) that you -want the line broken early AND that you want the line's word spacing -stretched to force the line flush with the right margin. - -
    Gutter -
    The vertical whitespace separating columns of type. - -
    Justify/justification -
    Lines of type are justified when they're flush at both the left and -right margins. Justification is the act of making both margins flush. -Some people use the terms "left justified" and "right justified" -to mean type where only the left (or right) margins align. I don't. -See -quad. - -
    Kerning -
    Moving pairs of letters closer together to remove excess -whitespace between them. In the days before phototypesetting, -type was set from small, rectangular blocks of wood or metal, each -block having exactly one letter. Because the edge of each block -determined the edge of each letter, certain letter combinations (TA, -for example) didn't fit together well and had to be mortised by hand -to bring them visually closer. Modern typesetting systems usually -take care of kerning automatically, but they're far from perfect. -Professional typesetters still devote a lot of time to fitting letters -and punctuation together properly. - -
    Kern Units -
    A relative distance equal to 1/36 of the current -point size. -Used between individual letters -for -kerning. -Different typesetting systems use different values (1/54 is -popular), and sometimes call kern units by a different name. -

    -Experts: -
    A kern unit has nothing to do with groff -machine units. - -

    Lead/leading -
    The distance from the -baseline -of one line of type to the line of type immediately beneath it. -Pronounced "ledding." Also called line spacing. Usually measured -in -points. -

    -In case you're interested... In previous centuries, -lines of type were separated by thin strips of--you guessed -it--lead. Lines of type that had no lead between them were said to -be "set solid." Once you began separating them with strips -of lead, they were said to be "leaded", and the spacing was -expressed in terms of the number of -points -of lead. For this reason, "leading" and "line -spacing" aren't, historically speaking, synonymous. If type -was set 10 on 12, for example, the leading was 2 points, not 12. -Nowadays, however, the two terms are used interchangeably to mean -the distance from baseline to baseline. - -

    Leaders -
    Single characters used to fill lines, usually to their end. -So called because they "lead" the eye from one element -of the page to another. For example, in the following (brief) -Table of Contents, the periods (dots) are leaders. -

    -

    -	Foreword............... 2
    -	Chapter 1.............. 5
    -	Chapter 2.............. 38
    -	Chapter 3.............. 60
    -
    - -
    Ligature -
    Ligatures are letters joined together to form a single character. -The commonest are fi, fl, ff, ffi and ffl. Others are ae and oe. -Occasionally, one sees an st ligature, but this is archaic and -quite rare. - -
    Picas/Points -
    There are twelve points in a pica, and six picas in an inch -(hence 72 points to the inch). In the same way that gem-dealers -have always used their own system of measurement for weight (carats), -typographers have always used their own system of measurement for type. - -
    Point Size -
    The nominal size of type, measured in -points -from the bottom of the longest -descender -to the top of the highest -ascender. -In reality, type is always fractionally smaller than its point size. - -
    Quad -
    When only one margin of type is flush, lines of type are quadded in -the direction of the flush margin. Therefore, quad left means the -left margin is flush, the right isn't. Quad right means the right -margin is flush, the left isn't. Quad centre means neither the left -nor the right margin is flush; rather, lines of type are quadded on -both sides so that type appears centred on the page. - -
    Rag -
    Describes a margin that isn't flush. Rag right means the right -margin isn't flush. Rag left means the left margin isn't flush. -The expression "flush left/rag right" is sometimes used to describe -type that is -quadded -left. - -
    Shape -
    The degree of slant and/or the width of characters. -(Technically speaking, this is not a proper typesetting term; -however, it may help clarify some concepts presented in these -documents.) -

    -Some typical shapes are: -

      -
    • "Roman", which has no slant, and has letterforms of - average width -
    • "Italic", which is slanted, and has letterforms - of average width -
    • "Condensed", which has no slant, but has - letterforms narrower than the average represented by Roman -
    • "Condensed Italic", which is slanted, with letterforms narrower - than average -
    -The term -font, -as it is used in these documents, refers to a combination of -weight -and shape. - -
    Solid/set solid -
    When no -lead -is added between lines of type (i.e. the -point size -and linespacing are the same), the lines are said to be "set -solid." - -
    Track kerning/Line kerning -
    Sometimes, it's advantageous to increase or decrease the amount of -space between every letter in a line by an equal (usually small) -amount, in order to fit more (or fewer) characters on the line. -The correct term is letter spacing, but track kerning and line kerning -(and sometimes, just "kerning") have come to mean the same thing. - -
    Unbreakable space -
    Equal to -word space, -however words separated by an unbreakable space will always be kept -together on the same line. Expands and contracts like word space. -Useful for proper names, which one should, whenever possible, avoid -splitting onto two lines. In groff, unbreakable space is entered -with -

    -

    -	\~
    -
    - -(backslash followed by a tilde). - -
    Weight -
    The thickness of the strokes of letterforms. Medium and Book -have average thicknesses and are the weights used for most of the -text in books, magazines, newspapers, etc. Light has strokes -slightly thinner than Medium or Book, but is still acceptable for -most text. Semibold, Bold, Heavy and Black all have strokes of -increasing thickness, making them suitable for heads, subheads, -headlines and the like. - -
    Word space -
    The amount of whitespace between words. When text is -justified, -word space expands or contracts to make the margins flush. - -
    x-height -
    The height of a lower case letter x in a given font at a given -point size. Generally used to mean the average height of the bowl -of lower case letters. -
    -

    -


    - - -

    Groff terms

    -
    - - -
    - -
    Alias -
    A -macro -invoked by a name different from its "official" -name. For example, the official name of the macro to change -family -is FAMILY. Its alias is -FAM. Aliases may be created for any macro (via the -ALIAS -macro) provided the alias uses a name not already taken -by the mom macros or one of the groff -primitives. -For a complete list of words or names you must not use, see the -list of reserved words. - -
    Arguments -
    Parameters or information needed by a -macro -to do its job. For example, in the macro -

    -

    -	.PT_SIZE 12
    -
    - -"12" is the argument. In the macro -

    -

    -	.QUAD LEFT
    -
    - -LEFT is the argument. Arguments are separated from macros by spaces. -Some macros require several arguments; each is separated by a space. - -
    Comment Lines -
    Input lines -introduced with the comment character -

    -

    -	\#
    -
    - -When processing output, groff silently ignores everything on a -line that begins with the comment character. - -
    Control Lines -
    Instructions to groff that appear on a line by themselves, -which means that "control lines" are either -macros -or groff -primitives. -Control lines begin with a period or, occasionally, an apostrophe. - -
    Filled lines/fill mode -
    Automatic -justification -or -quadding. -In fill mode, the ends of lines as they appear in your text editor -are ignored. Instead, words from adjoining -input lines -are added one at a time to the output line until no more words fit. -Then, depending whether text is to be -justified -or -quadded -(left, right, or centre), and depending on whether automatic -hyphenation is turned on, groff attempts to hyphenate the last word, -or, barring that, spreads and breaks the line (when justification -is turned on) or breaks and quads the line (when quadding is turned -on). -

    - -Nofill mode (non-filled text) means that groff respects the ends -of lines as they appear in your text editor. - -

    Inline escapes -
    Instructions issued to groff that appear as part of an -input line -(as opposed to -macros, -which must appear on a line by themselves). Inline escapes are -always introduced by the backslash character. For example, -

    -

    -	A line of text with the word T\*[BU 2]oronto in it
    -
    - -contains the inline escape \*[BU 2] (which means "move the letter -'o' 2 -kern units -closer to the letter 'T'"). -

    -Mom's inline escapes always take the form -\*[ESCAPE], where ESCAPE -is composed of capital letters, sometimes followed immediately -by a digit, sometimes followed by a space and a -numeric argument. -Groff's escapes begin with the backslash character -but typically have no star and are in lower case. For example, the -mom escapes to move forward 6 points on a line are -either -

    -

    -	\*[FP6]  or  \*[FWD 6p]
    -
    - -while the groff escape for the same thing is -

    -

    -	\h'6p'
    -
    - -
    Input line -
    A line of text as it appears in your text editor. - -
    Macros -
    Instructions embedded in a document that determine how groff processes -the text for output. mom's macros always begin with a -period, on a line by themselves, and must be typed in capital letters. -Typically, macros contain complex commands issued to groff--behind -the scenes--via groff -primitives. - -
    Machine units -
    A machine unit is 1/1000 of a -point -when the groff device is ps. ("ps" means -"PostScript"--the default device for which groff -prepares output, and the device for which mom was -specifically designed.) - -
    Numeric argument -
    An -argument -that has the form of a digit. Numeric arguments can be built out -of arithmetic expressions using +, -, *, and / for plus, minus, -times, and divided-by respectively. If a numeric argument requires -a -unit of measure, -a unit of measure must be appended to every digit in the -argument. For example: -

    -

    -	.ALD 1i-1v
    -
    - -NOTE: groff does not respect the order of operations, -but rather evaluates arithmetic expressions from left to right. -Parentheses must be used to circumvent this peculiarity. Not to -worry, though. The likelihood of more than just the occasional plus -or minus sign when using mom's macros is slim. - -
    Output line -
    A line of text as it appears in output copy. - -
    Primitives -
    The two-letter, lower case instructions groff uses as its -native command language, and out of which macros are built. - -
    String Argument -
    Technically, any -argument -that is not numeric. In this documentation, string argument means -an argument that requires the user to input text. For example, in -the -macro -

    -

    -	.TITLE "My Pulitzer Novel"
    -
    - -"My Pulitzer Novel" is a string argument. -

    -Because string arguments must be enclosed by double-quotes, you can't -use double-quotes as part of the string argument. If you need -double-quotes to be part of a string argument, use the -inline escapes -\(lq and \(rq (leftquote and rightquote -respectively) in place of the double-quote character ("). - -

    Unit of measure -
    The single letter after a -numeric argument -that tells mom what measurement scale the argument -should use. Common valid units are: -

    - - -
    i = inches -
    p = points -
    P = picas -
    c = centimetres -
    m = ems -
    n = ens -
    v = the current leading (line space)
    -
    -

    Units of measure must come immediately after the numeric argument (i.e. -with no space between the argument and the unit of measure), like this: -

    -

    -	.ALD 2v
    -	.LL  39P
    -	.IL  1i
    -
    - -The above example advances 2 line spaces and sets the line length to -39 picas with a left indent of 1 inch. -

    -IMPORTANT: Most mom macros -that set the size or measure of something MUST be given a unit of -measure. mom's macros do not have default units -of measure. There are a couple of exceptions, the most notable of -which are PT_SIZE and LS. Both use -points -as the default unit of measure, which means -you don't have to append "p" to their argument. -

    -You can enter decimal values for any unit of measure. Different units -may be combined by adding them together (e.g. 1.5i+2m, which gives a -measure of 1-1/2 inches plus 2 ems). -

    -NOTE: a pica is composed of 12 points, -therefore 12.5 picas is 12 picas and 6 points, not 12 picas -and 5 points. If you want 12 picas and 5 points, you have to -enter the measure as 12P+5p. - -

    Zero-width character -
    The -inline escape -that allows you to print a literal period, apostrophe and, if -output lines -are -filled, -a space that falls at the beginning of an -input line. -It looks like this: -

    -

    -	\&
    -
    - -(backslash followed by an ampersand). -

    -Normally, groff interprets a period (or an apostrophe) at the beginning -of an input line as meaning that what follows is a -control line. -In fill modes, groff treats a space at the beginning of an input -line as meaning "start a new line and put a space at the -beginning of it." If you want groff to interpret periods and -apostrophes at the beginning of input lines literally (i.e. print -them), or spaces at the beginning of input lines as just garden -variety word spaces, you must start the line with the zero-width -character. -

    -

    -


    - - -

    Mom's Document Processing Terms

    -
    - - -
    -
    Blockquote -
    Cited material other than -quotes. -Typically set at a smaller point size than paragraph text, indented -from the left and right margins. Blockquotes are -filled. - -
    Control macro -
    Macros used in -document processing -to control/alter the appearance of document elements (e.g. heads, -quotes, footnotes, -headers, -etc.). - -
    Document header/docheader -
    Document information (title, subtitle, author, etc) output -at the top of page one. - -
    Epigraph -
    A short, usually cited passage that appears at the -beginning of a chapter, story, or other document. - -
    Footer/page footer -
    Document information (frequently author and title) output in -the bottom margin of pages after page one. Not to be -confused with footnotes, which are considered part of -running text. - -
    Head -
    A title that introduces a major section of a document. - -
    Header/page header -
    Document information (frequently author and title) output in -the top margin of pages after page one. -

    -NOTE: In terms of content and style, headers and -footers -are the same; they differ only in their placement on the page. In -most places in this documentation, references to the content or -style of headers applies equally to footers. - -

    Linebreak/author linebreak -
    A horizontal gap in -running text, -frequently set off by typographic symbols such as asterisks or -daggers. Used to indicate a shift in the content of a document -(e.g. a scene change in a short story). Also commonly called a -scene break or a section break. - -
    Paragraph head -
    A title joined to the body of a paragraph; hierarchically one -level beneath -subheads. - -
    Quote -
    A quote, to mom, is a line-for-line setting -of quoted material (e.g. poetry, song lyrics, or a snippet of -programming code). You don't have to use -BR -with quotes. - -
    Running text -
    In a document formatted with mom, running -text means text that forms the body of the document, including -elements such as heads and subheads. -Docheaders, -headers, -footers -and page numbers are NOT part of running text. - -
    Subhead -
    A title used to introduce secondary sections of a document; -hierarchically one level beneath sections introduced by -heads. - -
    Toggle -
    A macro or tag that, when invoked without an argument, -begins something or turns a feature on, and, when invoked with -ANY argument, ends something or turns a feature off. See -Example 3 -of the section -How to read macro arguments. -
    - -

    -


    -Next   -Prev   -Top   -Back to Table of Contents - - diff --git a/src/contrib/mom/momdoc/docelement.html b/src/contrib/mom/momdoc/docelement.html deleted file mode 100644 index 4ca56b1..0000000 --- a/src/contrib/mom/momdoc/docelement.html +++ /dev/null @@ -1,5041 +0,0 @@ - - - - -Mom -- Document Processing, element tags - - - - - -Next   -Prev   -Back to Table of Contents -

    - - -

    THE DOCUMENT ELEMENT TAGS

    - - - - - -

    Introduction to the document element tags

    -
    - -Once you've completed the setup for a document (see -Setting up a mom document), -formatting it is a snap. Simply invoke the appropriate tag for -each document element as you need it. The tags are macros that -tell mom, "This is a paragraph, this -is a subhead, this is a footnote," and so on. -

    -The list of tags is actually quite small -- ideal for the users -mom brought herself into being for (see -Who mom is meant for). -However, the list of macros that control the appearance of the -tags upon output is extensive. Generally, for each tag, -there are -control macros -for the tag's family, font and point size. Where appropriate, there -are macros to control leading, indents, quad and special features -as well. -

    -Mom has tasteful defaults for all the tags, hence you -only use the control macros when you want to change the way -she does things. This is usually done prior to -START, -but can, in fact, be done at any time in the course of a document. -Any change to a tag's style affects all subsequent invocations of -the tag. -

    - -

    Control macros -- changing defaults

    - -

    -The control macros for document processing tags let you -"design" the look of all the parts of your documents -- -should you wish. At a bare minimum, all tags have macros to change -mom's defaults for family, font, point size and -colour. Where appropriate, there are macros to control leading, -indents and quad as well. -

    -In addition, many tags have special macros to control features that -are pertinent to those tags alone. Have a look at the section dealing -with any particular tag to find out what macros control the tag, -and what mom's defaults for the tag are. -

    -The control macros may be used at any time during the course of -a document (i.e. before or after -START). The changes you -make alter all subsequent invocations of the affected tag until -you make another change, either by passing new arguments to the -tag's control macro, or toggling a particular feature of the tag on -or off. -

    -And don't forget: the -typesetting macros -can be used at any time, including inside -toggle -tags (affecting only that particular invocation of the tag). -Equally, -inline escapes -can be used in tags that take -string arguments. -

    -IMPORTANT NOTE: The family, font, point size, -colour and leading control macros have no effect in -PRINTSTYLE TYPEWRITE, -which sets EVERYTHING in Courier roman, 12/24 (i.e. 12-point type on -a linespace of 24 points). -

    -Please also note that the defaults listed -with the control macros apply only to -PRINTSTYLE TYPESET -unless a default for TYPEWRITE is also given. -

    -A WORD OF ADVICE: Get familiar with -mom at her default settings before exploring the -control macros. Put her through her paces. See how she behaves. -Get to know what she feels like and how she looks, both in your text -editor and on the printed page. Then, if you don't like something, -use this documentation to find the precise macro you need to change it. -There are tons of control macros. Reading up on them and trying to -remember them all might lead you to think that mom -is complex and unwieldy, which is not only untrue, but would offend -her mightily. -

    - -

    Arguments to the control macros

    - -

    Family and font

    -The arguments to the control macros that end in -_FAMILY or _FONT are the same -as for -FAMILY -and -FT. - -

    Point size

    -Control macros that end in _SIZE always take -the form +digit or -digit where digit is -the number of -points -larger (+) or smaller (-) than the point size of paragraphs -you want the document element to be. For example, to change -subheads to 1-1/2 points larger than the type in paragraphs, do -

    -

    -	.SUBHEAD_SIZE +1.5
    -
    - -There's no need for a -unit of measure -with the _SIZE control macros; points is assumed. - -

    Colour

    -Control macros that end in _COLOR take as their -argument a colour name pre-defined (or "initialized") -with -NEWCOLOR -or -XCOLOR. -For example, if you want your heads to be red, once you've defined -or initialized the color, red, -

    -

    -	.HEAD_COLOR red
    -
    - -will turn your heads red. - -

    Lead/linespacing

    -Control macros that end in _AUTOLEAD take the -same argument as -AUTOLEAD, -viz. a digit that represents the number of points to add to the -tag's point size to arrive at its -lead. -For example, to set footnotes -solid, do -

    -

    -	.FOOTNOTE_AUTOLEAD 0
    -
    - -To set footnotes with a 1-point lead (i.e. with the line spacing -one point greater than the footnote's point size), do -

    -

    -	.FOOTNOTE_AUTOLEAD 1
    -
    - -

    Indents

    -Except for PARA_INDENT, the argument to the control -macros that end -in _INDENT is always a single digit (whole numbers -only; no decimal fractions) with no -unit of measure -appended to it. The digit represents by how much you want the -size of the paragraph first-line indent multiplied to achieve the -correct indent for a particular tag. - -

    Quad/justification style

    -Control macros that end in _QUAD take the same -arguments as -QUAD. -

    -


    - -

    Document element tags list

    - -
    - - - - -

    Epigraphs

    - -

    -Epigraphs -colour, flavour, or comment on the document they precede. Typically, -they are centred at the top of a document's first page (underneath the -title) and set in a smaller point size than that of paragraph text. -

    -By default, mom sets epigraphs centred and -unfilled; -this lets you input them on a line for line basis. This behaviour -can be changed to accomodate -filled -epigraph "blocks." -

    - - - -


    -

    - - Macro: EPIGRAPH <toggle> | [ BLOCK ] - - -

    -EPIGRAPH is a toggle, used like this: -

    -

    -	.EPIGRAPH
    -	<text of epigraph>
    -	.EPIGRAPH OFF
    -
    - -OFF, above, could be anything -- say, Q or X -- -since any argument other than BLOCK turns it off. -

    -If given the argument BLOCK, EPIGRAPH -sets epigraphs -filled, -justified or quadded in the same direction as paragraphs, indented -equally from both the left and right margins. -

    -If a block-style epigraph runs to more than one paragraph (unlikely, -but conceivable), you MUST introduce every paragraph --- INCLUDING THE FIRST!!! -- with the -PP -tag. -

    -NOTE: EPIGRAPH should only be -used at the top of a document (i.e. just after -START) -or after -heads. The latter is not especially -recommended, but it does work. In all other places where you -want quotes or cited text, use -QUOTE -or -BLOCKQUOTE. -

    - -

    Epigraph control macros

    -

    -See -Arguments to the control macros. -

    -

    -.EPIGRAPH_FAMILY    default = prevailing document family; default is Times Roman
    -.EPIGRAPH_FONT      default = roman
    -.EPIGRAPH_SIZE      default = -1.5 (points)
    -.EPIGRAPH_COLOR     default = black
    -.EPIGRAPH_AUTOLEAD  default = 2 points
    -
    -(The next two apply to "block" style epigraphs only)
    -
    -.EPIGRAPH_QUAD      default = same as paragraphs
    -.EPIGRAPH_INDENT*   default = para indent x 3 (for typeset), x 2 (for typewrite)
    -
    -*Indent here refers to the indent from both the left and right margins
    - that centres the block style epigraph on the page.
    -
    -
    - - - -

    Paragraphs

    - -

    -The paragraph macro is the one you use most often. Consequently, -it's one of most powerful, yet simplest to use -- just the letters -PP. No arguments, nothing. Just .PP -on a line by itself any time, in any document element, tells -mom you want to start a new paragraph. The spacing -and indent appropriate to where you are in your document are taken -care of automatically. -

    -By default, mom does not indent the first paragraph -of a document, nor paragraphs that fall immediately after -heads -or -subheads. -The first paragraphs of blockquotes and block-style epigraphs are -also not indented. This behaviour can be changed with the control -macro -INDENT_FIRST_PARAS. -

    -In contrast to some other macro packages, mom does not -deposit a blank line between paragraphs. If you want her to do so, use -the control macro PARA_SPACE. (I don't recommend -using this macro with -PRINTSTYLE TYPEWRITE.) -

    -Note that mom does not provide "orphan -control" for paragraphs (i.e. even if only one line of a paragraph -fits at the bottom of a page, she will set it on that page). The -reason for this is that writers of fiction often have single-line -paragraphs (e.g. in dialogue). Groff's simplistic orphan control -will break these one-liners -- if they fall at the bottom of the page --- to a new page, which is not what you want. -

    -TIP: The last thing you want while you're writing -and editing drafts of a document (particularly stories and chapters) -is a text file cluttered up with PP's. The visual -interruption in the flow of text is a serious obstacle to creativity -and critiquing. -

    -I use the tab key on my keyboard to indent paragraphs when I'm writing, -producing a text file that looks pretty much like what you see on -a printed page. When it comes time to format and print the file, -I run it through a sed script that (amongst other things) converts -the character generated by the tab key (^I) into .PP -(plus a new line), and pipe the output to groff for processing and -printing. -

    -Another solution is to insert a blank line between paragraphs. -The blank lines can then be sedded out at print time as above, or, -more conveniently, you can use the .blm -primitive -(blank line macro) to instruct groff (and mom) -that blank lines should be interpreted as PP's. -

    -

    -	.blm PP
    -
    -tells groff that all blank lines are really the macro PP. -

    - - - -


    -

    - - Macro: PP - - -

    -PP (on a line by itself, of course) tells mom to -start a new paragraph. See -above -for more details. In addition to regular text paragraphs, you can -use PP in -epigraphs, -blockquotes -and -footnotes. - -

    Paragraph control macros

    -

    -The PP being so important, and representing, as -it were, the basis of everything that goes on in a document, its -control is managed in a manner somewhat different from other document -element tags. -

    -

      -
    1. Family control -
    2. Font control -
    3. Paragraph colour -
    4. Leading/linespacing control -
    5. Justification/quad control -
    6. First-line indent control -
    7. Initial paragraphs indent control -
    8. Paragraph spacing control -
    - -

    1. Family

    -

    -The paragraph -family -is set with -FAMILY -prior to -START, -or -DOC_FAMILY -afterwards. Please note that both globally affect the family of -every element in the document. -

    -If you wish to change the family for regular -text paragraphs only, invoke FAMILY immediately -after PP in EVERY paragraph whose family you wish -to differ from the prevailing document family. -

    -Mom's default paragraph (and document) family -is Times Roman. -

    - -

    2. Font -- PP_FONT

    -

    -To change the -font -used in regular text paragraphs, use .PP_FONT, -which takes the same argument as -FT. -PP_FONT may be used before or after -START. -Only regular text paragraphs are affected; paragraphs in -epigraphs, -blockquotes -and -footnotes -remain at their default setting (medium roman) unless you change them -with the appropriate control macros. -

    -Mom's default paragraph font is medium roman. -

    - -

    3. Paragraph colour

    -

    -Mom has no special control macro for colourizing -paragraphs. If you wish a colourized paragraph, you must use the -macro, -COLOR, -or the -inline escape, -\*[<colorname>], -after .PP. The colour must be one -pre-defined (or "initialized") with -NEWCOLOR -or -XCOLOR. -

    -Please note that unless you change the colour back to it's default -(usually black) at the end of the paragraph, all subsequent -paragraphs will be set in the new colour, although most other -elements of your document will continue to be set in the default -colour (usually black). -

    -For example, assuming you have defined the colour, blue, -

    -

    -	.PP
    -	.COLOR blue
    -	<first paragraph>
    -	.HEAD "Monty Python"
    -	.SUBHEAD "The Origins of Spam"
    -	.PP
    -	<second paragraph>
    -
    - -the first paragraph will be blue, the head and subhead will be in -the document's default colour (usually black), and the second -paragraph will be in blue. -

    -The one document element that is affected by changing the colour -of paragraphs are -paraheads, -since they are attached directly to the body of paragraphs. In -other words, if you change the colour of a paragraph and do not -reset the paragraph colour back to its default, subsequent paraheads -will appear in the same colour as your paragraphs unless you have -explicitly told mom you want a pre-defined (or -"initialized") color (usually black) for your paraheads. -

    -See the footnote to -.PARAHEAD_COLOR. - -

    4. Leading

    -

    -The paragraph -leading -is set with -LS -prior to -START, -or -DOC_LEAD -afterwards. Please note that either method globally affects the -leading and spacing of every document element (except -headers -and -footers). -

    -If you wish to change the leading of regular text paragraphs only, -invoke LS immediately after PP in -EVERY paragraph whose leading you wish to change. -

    -HYPER-IMPORTANT NOTE: It is extremely unwise to change -paragraph leading with LS, as it will, in all cases, -screw up mom's ability to balance the bottom margin -of pages. Should you absolutely need to change paragraph leading -with LS, and subsequently want mom -to get back on the right leading track, use the -SHIM -macro. -

    -Mom's default paragraph leading (document leading) -is 16 points, adjusted to fill the page. -

    - -

    5. Justification/quad

    -

    -The justification/quad-direction of regular text paragraphs (i.e. -justified, -or -filled -and -quadded -left/right/centre) is set with -JUSTIFY -or -QUAD -prior to -START, -and with -DOC_QUAD -afterwards. -

    -Please note that either method of setting the paragraph -justification/quad-direction also affects -epigraphs -and -footnotes, -but not -blockquotes -(whose default is QUAD LEFT unless you change it with -BLOCKQUOTE_QUAD). -The justification/quad-direction of epigraphs and footnotes may -be changed with their own control macros. -

    -If you wish to change the justification/quad-direction of -individual paragraphs, use JUSTIFY or -QUAD immediately after PP. -Only the paragraph in question gets justified or quadded -differently; subsequent paragraphs remain unaffected. -

    -Mom's default justification/quad-direction for -paragraphs is -
    -

    -

    -

    6. First-line indent -- PARA_INDENT

    -

    -The first-line indent of paragraphs is controlled by -PARA_INDENT, which takes one argument: the size -of the indent. PARA_INDENT may be used before -or after -START. -A -unit of measure -is required; fractional sizes are allowed. Thus, to set the paragraph -indent to 4-1/2 -ems, do -

    -

    -	.PARA_INDENT 4.5m
    -
    - -In addition to establishing the basic first line-indent of -paragraphs, PARA_INDENT also affects -epigraphs, -quotes -and -blockquotes, -whose overall indenting from the left and (where applicable) right -margins is relative to PARA_INDENT. Furthermore, the -first-line indent of paragraphs within these document elements (as well -as footnotes) is also relative to PARA_INDENT (always -1/2 of PARA_INDENT)), hence they are also affected. -

    -Mom's default PARA_INDENT is 2 -ems for -PRINTSTYLE_TYPESET -and 3 picas (1/2 inch) for -PRINTSTYLE_TYPEWRITE. -

    - -

    7. Indenting initial paragraphs -- INDENT_FIRST_PARAS

    -

    -By default, mom does not indent the first paragraph -of a document, nor the first paragraph after a head or -subhead, nor the first paragraphs of -epigraphs, -blockquotes -or -footnotes -that run to more than one paragraph. - -

    -If you wish to have first paragraphs indented, invoke the macro -.INDENT_FIRST_PARAS with no argument, either -before or after -START. -INDENT_FIRST_PARAS is a toggle macro, therefore -passing it any argument (OFF, QUIT, Q, X...) cancels -its effect, meaning that first paragraphs will once again NOT be -indented. -

    - -

    8. Spacing paragraphs -- PARA_SPACE

    -

    -By default, mom does not insert a blank line -between paragraphs. If you would like her to do so, invoke the -macro .PARA_SPACE with no argument, either -before or after -START. -PARA_SPACE is a toggle macro, therefore passing -it any argument (OFF, QUIT, Q, X...) cancels its -effect, meaning that paragraphs will once again NOT be separated by -a blank line. -

    -NOTE: If PARA_SPACE is on, -mom spaces only those paragraphs that come after -an "initial" paragraph. Initial paragraphs are those -that come immediately after the -docheader, -epigraphs, -heads, -subheads -and -linebreaks. -(The first paragraph after these document elements requires no -blank line to separate it from other paragraphs.) -

    -Sometimes, you can be fairly deep into a document before using -.PP for the first time, and when you do, because -mom is still waiting for that "initial" -paragraph, she doesn't space it with a blank line, even though -you expect her to. The simple workaround for this is to invoke -.PP twice (in succession) at the point you -expect the blank line to appear. -
    -


    - - - -

    Main heads

    - -

    -Main heads -- or, in this documentation, just "heads" --- should be used any place you want titles to introduce major -sections of a document. If you wish, mom can number -your heads for you. Head numbers can also be included -hierarchically in numbered -subheads -and -paraheads. -

    -By default, heads are centred on the page, underlined, -all in caps. A double linespace precedes each head. In PRINTSTYLE TYPESET, heads -are bold, slightly larger than paragraph text. -

    -If these defaults don't suit you, you can change them with the -head control macros. -

    - - - -


    -

    - - Macro: HEAD "<text of head>" [ "<2nd line>" [ "<3rd line>" ... ] ] - - -

    -The argument to HEAD is the text of the head, -surrounded by double-quotes. If you need additional lines for a -head, simply surround each line with double-quotes. -

    -NOTE: If a head falls near the bottom of an output page -and mom is unable to fit the head plus at least -one line of text underneath it, she will set the head at the -top of the next page. -

    -ADDITIONAL NOTE: If an -input line -in a head (i.e. one of the lines surrounded by double-quotes) has -to be broken by mom in order to fit the current -line-length (say, a narrow column measure), the head underline -(underscore) will not behave. You'll recognize the problem as soon -as you preview your document. If you encounter a head that -misbehaves with respect to underlining, the solution is to -supply each line as you want it as a separate argument -(surrounded by double-quotes) to the HEAD macro. -

    -For example, if mom breaks -

    -	.HEAD "This is a very, very, very long head"
    -
    -into -
    -	This is a very, very, very
    -	        long head        
    -
    - -you'll see the misbehaving underscore and should change the -argument to HEAD to -
    -	.HEAD "This is a very, very very" "long head"
    -
    - -

    Head control macros

    -

    -There are, in addition to the usual family/font/size/quad control -macros, a number of macros to manage head numbering, spacing, -underlining, and so on. Check them out if you're unhappy with -mom's defaults. -

    -

      -
    1. Family/font/size/colour/quad -
    2. Caps -
    3. Pre-head space -
    4. Underlining -
    5. Numbering -
    6. Reset head numbering -
    7. Vertical inline escapes inside heads -
    -

    -

    1. Family/font/size/colour/quad

    -

    -See -Arguments to the control macros. -

    -

    -.HEAD_FAMILY default = prevailing document family; default is Times Roman
    -.HEAD_FONT   default = bold
    -.HEAD_SIZE   default = +1 (point)
    -.HEAD_COLOR  default = black
    -.HEAD_QUAD   default = CENTER
    -
    - -

    2. Capitalizing heads -- HEAD_CAPS

    -

    -By default, mom sets heads in caps, regardless -of the -string(s) -you give to -HEAD. -To change this behaviour, do -

    -

    -	.HEAD_CAPS OFF
    -
    - -HEAD_CAPS is a toggle macro, therefore you can use -any argument you like instead of OFF (END, -QUIT, Q, X...). To turn HEAD_CAPS back on, -simply invoke it without an argument. -

    - -

    3. Space before heads -- HEAD_SPACE

    -

    -By default, mom deposits 2 blank lines prior to every -head. If you'd prefer just a single blank line, do -

    -

    -	.HEAD_SPACE OFF
    -
    - -HEAD_SPACE is a toggle macro, therefore you can use -any argument you like instead of OFF (END, -QUIT, Q, X...). To restore the space before heads to 2 -blank lines, invoke HEAD_SPACE without an argument. -

    - -

    4. Underlining heads -- HEAD_UNDERLINE

    -

    -By default, mom underlines heads. To change this -behaviour, do -

    -

    -	.HEAD_UNDERLINE OFF
    -
    - -HEAD_UNDERLINE is a toggle macro, therefore you can -use any argument you like instead of OFF (END, -QUIT, Q, X...). To restore underlining of heads, invoke -HEAD_UNDERLINE without an argument. -

    - -

    5. Number heads -- NUMBER_HEADS

    -

    -If you'd like your heads numbered, simply invoke -NUMBER_HEADS with no argument. Mom -will number all subsequent heads automatically (in ascending order, -naturally). -

    -If, in addition to numbering heads, you also request that -subheads -and/or -paraheads -be numbered, the head number will be included in their numbers -(each number separated by a period [dot]). -

    -Should you wish to stop head numbering, invoke -NUMBER_HEADS with any argument (OFF, QUIT, -END, X...). Head numbering will cease, and the head number -will not be included in the numbering of subheads and/or paraheads. -

    - -

    6. Reset head numbering -- RESET_HEAD_NUMBER

    -

    -Should you wish to reset the head number to "1", invoke -RESET_HEAD_NUMBER with no argument. If, for some -reason, you want mom to use a head number that is not -the next in ascending order (i.e. the last head number + 1), invoke -RESET_HEAD_NUMBER with the number you want, e.g. -

    -

    -	.RESET_HEAD_NUMBER 6
    -
    - -Your next head will be numbered "6" and subsequent heads will -be numbered in ascending order from "6". -

    - -

    7. Vertical inline escapes inside heads

    -

    -If you need to adjust the -baseline -position of a head (e.g. the head falls at the top of a column and -you want its -ascenders -to line up with the ascenders of -running text -in other columns), you can embed a vertical motion -inline escape -(either -mom's -or -groff's -in the string(s) you pass to HEAD -

    -For example, -

    -

    -	.HEAD "\[ALD3]Text of head"
    -	    or
    -	.HEAD "\[DOWN 3p]Text of head"
    -
    - -will lower the baseline of the head by three points. Note that -there's no need to reverse the sense of the inline escape. -

    -In the case of heads that run to more than one line, you must embed -the escape in the string for each line, like this: -

    -

    -	.HEAD "\[ALD3]First line" "\[ALD3]Next line" 
    -	    or
    -	.HEAD "\[DOWN 3p]First line" "\[DOWN 3p]Next line" 
    -
    -
    - - - -

    Subheads

    - -

    -Subheads should be used any place you want titles to introduce -sections of a document below heads. If you wish, mom -can number subheads for you. Subhead numbers can also be included -hierarchically in numbered -paraheads. -

    -By default, subheads are flush left. In -PRINTSTYLE TYPESET, -they are set bold, slightly larger than paragraph text. In -PRINTSTYLE TYPEWRITE, -they are underlined. A single linespace precedes them in both -printstyles, and a tiny space adjustment raises them slightly -above text that comes afterwards for greater clarity in -document structuring. -

    -If these defaults don't suit you, you can change them with the -subhead control macros. -

    - - - -


    -

    - - Macro: SUBHEAD "<text of subhead>" [ "<2nd line>" [ "<3rd line>" ... ] ] - -

    -The argument to SUBHEAD is the text of the subhead, -surrounded by double-quotes. If you need additional lines for a -subhead, simply surround each line with double-quotes. -

    -NOTE: If a subhead falls near the bottom of an output -page and mom is unable to fit the head plus at -least one line of text underneath it, she will set the subhead -at the top of the next page. - -

    Subhead control macros

    -

    -In addition to the usual family/font/size/quad control -macros, there are macros to manage subhead numbering. -

    -

      -
    1. Family/font/size/colour/quad -
    2. Numbering -
    3. Reset subhead numbering -
    4. Vertical inline escapes inside subheads -
    -

    -

    1. Family/font/size/quad

    -

    -See -Arguments to the control macros. -

    -

    -.SUBHEAD_FAMILY default = prevailing document family; default is Times Roman
    -.SUBHEAD_FONT   default = bold
    -.SUBHEAD_SIZE   default = +.5 (point)
    -.SUBHEAD_COLOR  default = black
    -.SUBHEAD_QUAD   default = LEFT
    -
    - -

    2. Number subheads -- NUMBER_SUBHEADS

    -

    -If you'd like your subheads numbered, simply invoke -.NUMBER_SUBHEADS with no argument. -Mom will number all subsequent subheads automatically -(in ascending order, naturally). -

    -If, in addition to numbering subheads, you also request that -heads -be numbered, the head number will be included in the subhead number -(separated by a period [dot]). -

    -Should you wish to stop subhead numbering, invoke -NUMBER_SUBHEADS with any argument (OFF, QUIT, -END, X...). Subhead numbering will cease, and the subhead -number will not be included in the numbering of paraheads. -

    - -

    3. Reset head numbering -- RESET_SUBHEAD_NUMBER

    -

    -Should you wish to reset the subhead number to "1", invoke -RESET_SUBHEAD_NUMBER with no argument. If, for some -reason, you want mom to use a subhead number that is not -the next in ascending order (i.e. the last subhead number + 1), invoke -RESET_SUBHEAD_NUMBER with the number you want, e.g. -

    -

    -	.RESET_SUBHEAD_NUMBER 4
    -
    - -Your next subhead will be numbered "4" and subsequent -subheads will be numbered in ascending order from "4". - -

    Vertical inline escapes inside subheads

    -See -Vertical inline escapes inside heads. -The information there applies equally to subheads. -

    -


    - - - -

    Paragraph heads

    - -

    -Paragraph heads (paraheads) should be used any place you want titles -to introduce paragraphs below heads or subheads. If you wish, -mom can number paraheads for you. -

    -By default, paraheads are joined to the body of a paragraph, -slightly indented (provided the paragraph is not a -"first" paragraph as defined in -Indenting initial paragraphs). -In -PRINTSTYLE TYPESET, -they are set bold italic, slightly larger than paragraph text. In -PRINTSTYLE TYPEWRITE, -they are underlined. -

    -If these defaults don't suit you, you can change them with the -parahead control macros. -

    - - - -


    -

    - - Macro: PARAHEAD "<text of parahead>" - -

    -PARAHEAD must come AFTER -PP -or it will not work! -

    -The argument is the text of the parahead, surrounded by double-quotes. -Because paraheads are joined to the body of a paragraph, they accept -only one argument (see -HEAD -and -SUBHEAD). -

    - -

    Parahead control macros

    -

    -In addition to the family/font/size/colour/indent control macros, -there are macros to manage parahead numbering. -

    -

      -
    1. Family/font/size/color -
    2. Indent -
    3. Numbering -
    4. Reset parahead numbering -
    -

    -

    1. Family/font/size/colour

    -

    -See -Arguments to the control macros. -

    -

    -.PARAHEAD_FAMILY default = prevailing document family; default is Times Roman
    -.PARAHEAD_FONT   default = bold italic
    -.PARAHEAD_SIZE   default = +.5 (point)
    -.PARAHEAD_COLOR  default = black*
    -
    -*If you colourize paragraph text, paraheads will appear in the same
    -colour as the text unless you explicitly tell mom to colour them
    -otherwise by invoking .PARAHEAD_COLOR.  If you do want paraheads
    -that are coloured the same as paragraph text, it's generally a good
    -idea to invoke .PARAHEAD_COLOR anyway (with the same colour used
    -for paragraph text), just to let mom know.
    -
    - -

    2. Indent

    -

    -Unlike other control macros that end in -_INDENT, -the argument to the macro that controls indenting of paragraph heads -(PARAHEAD_INDENT) is NOT relative to the first-line -indent of normal paragraphs. In other words, it takes an absolute -value, and requires a -unit of measure. -For example, to set the paragraph head indent to 2-1/2 picas, you -do: -

    -

    -	.PARAHEAD_INDENT 2.5P
    -
    -Mom's default indent for paragraph heads is 1/2 -the first-line indent of normal paragraphs (both printstyles). -However, as stated above, if you choose to change the indent, you -must give an absolute value (unless you're a groff expert and want -to manipulate the number register \n[#PP_INDENT]u -arithmetically as the argument to PARAHEAD_INDENT -for an indent that's relative to PP_INDENT.) -

    -NOTE: Paragraph heads in "first -paragraphs", as defined in -Indenting initial paragraphs, -are not indented unless you turn -INDENT_FIRST_PARAS -on. -

    - -

    3. Number paraheads -- NUMBER_PARAHEADS

    -

    -If you'd like your paraheads numbered, simply invoke -.NUMBER_PARAHEADS with no argument. -Mom will number all subsequent paraheads automatically -(in ascending order, naturally). -

    -If, in addition to numbering paraheads, you also request that -heads -and -subheads -be numbered, the head and/or subhead number will be included in the -parahead number (separated by a period [dot]). -

    -Should you wish to stop parahead numbering, invoke -NUMBER_PARAHEADS with any argument (OFF, -QUIT, END, X...). Parahead numbering will cease. -

    - -

    4. Reset head numbering -- RESET_PARAHEAD_NUMBER

    -

    -Should you wish to reset the parahead number to "1", invoke -RESET_PARAHEAD_NUMBER with no argument. If, for some -reason, you want mom to use a parahead number that is not -the next in ascending order (i.e. the last parahead number + 1), invoke -RESET_PARAHEAD_NUMBER with the number you want, e.g. -

    -

    -	.RESET_PARAHEAD_NUMBER 7
    -
    - -Your next parahead will be numbered "7" and subsequent -paraheads will be numbered in ascending order from "7". -

    -


    - - - -

    Author linebreaks

    - -

    -By default, mom marks -author linebreaks -with three centred asterisks. You can change this behaviour -with the linebreak character -control macro. -

    - - - -


    -

    - - Macro: LINEBREAK - -
    -Alias: SECTION - -

    -LINEBREAK takes no arguments. Simply invoke it -(on a line by itself, of course) whenever you want to insert an -author linebreak. The appearance of the linebreak is controlled -by the -LINEBREAK_CHAR -macro. - -

    Linebreak character control macro

    -

    - - Macro: LINEBREAK_CHAR [ <character> ] [ <iterations> [ <vertical adjustment> ] ] - -
    -Alias: SECTION_CHAR -
    -*The third optional argument requires a -unit of measure. -

    -LINEBREAK_CHAR determines what mom -prints when LINEBREAK is invoked. It takes 3 -optional arguments: the character you want deposited at the line -break, the number of times you want the character repeated, and a -vertical adjustment factor. -

    -The first argument is any legal groff character (e.g. * -[an asterisk], \(dg [a dagger], \f(ZD\N'141\fP -[an arbitrary character from Zapf Dingbats], \l'4P' -[a 4-pica long rule]). Mom sets the character -centred on the current line length. (See "man groff_char" -for a list of all legal groff characters.) -

    -The second argument is the number of times to repeat the character. -

    -The third argument is a +|- value by which to raise (+) or lower (-) -the character in order to make it appear visually centred between -sections of text. This lets you make vertical adjustments -to characters that don't sit on the -baseline -(such as asterisks). The argument must be preceded by a plus or -minus sign, and must include a unit of measure. -

    -If you enter LINEBREAK_CHAR with no arguments, -sections of text will be separated by two blank lines when you invoke -LINEBREAK. -

    -Mom's default for LINEBREAK_CHAR is -

    -

    -	.LINEBREAK_CHAR * 3 -3p
    -
    - -i.e. three asterisks, lowered 3 points from their normal vertical -position (for -PRINTSTYLE TYPESET; -the vertical adjustment is -2 points for -PRINTSTYLE TYPEWRITE). - -

    Linebreak colour control macro

    -

    - - Macro: LINEBREAK_COLOR <color name> - -

    -To change the colour of the linebreak character(s), simply invoke -LINBREAK_COLOR with the name of a pre-defined (or -"initialized") colour. -
    -


    - - - -

    Quotes (line for line)

    - -

    -Quotes -are always set in -nofill mode, -flush left. This permits entering quotes on a line for line basis in -your text editor and have them come out the same way on output copy. -(See -Blockquotes -for how quotes, in the present sense, differ from longer -passages of cited text.) -

    -Since mom originally came into being to serve -the needs of creative writers (i.e. novelists, short story -writers, etc. -- not to cast aspersions on the creativity of -mathematicians and programmers), she sets quotes in italics -(PRINTSTYLE TYPESET) -or underlined -(PRINTSTYLE TYPEWRITE), -indented from the left margin. Obviously, she's thinking -"quotes from poetry or song lyrics", but with the -quote control macros -you can change her defaults so QUOTE serves other -needs, e.g. entering verbatim snippets of programming code, command -line instructions, and so on. (See the -tip -below for suggestions about including programming code snippets in -documents.) -

    - -Besides indenting quotes, mom further sets them -off from -running text -with a small amount of vertical whitespace top and bottom. In -PRINTSTYLE TYPEWRITE, -this is always one full linespace. In -PRINTSTYLE TYPESET, -it's 1/2 of the prevailing -leading -if the quote fits fully on the page (i.e. with running text above -and below it), otherwise it's a full linespace either above or below -as is necessary to balance the page to the bottom margin. This -behaviour can be changed with the control macro -ALWAYS_FULLSPACE_QUOTES. -

    -NOTE: ALWAYS_FULLSPACE_QUOTES -applies to both -QUOTE -and -BLOCKQUOTE, -as does the control macro -QUOTE_INDENT. -

    -Version 1.3: mom's handling of the vertical -whitespace around quotes has changed slightly. In versions prior -to 1.3, it was not possible to alter the -leading -of quotes and blockquotes (which was the same as the document -leading), ensuring that the vertical whitespace remained consistent, -as described above. In 1.3 and later, it is possible to change the -leading of quotes and blockquote via -the QUOTE_AUTOLEAD and -BLOCKQUOTE_AUTOLEADmacro. Now, if your quote -(or blockquote) leading differs from the document leading, -mom attempts to observe the same rules for vertical -whitespace outlined above; however, she will also insert a small, -flexible amount of extra whitespace around the quotes to make sure -the whitespace is equal, top and bottom. Since she does this on a -quote by quote basis, rather than by figuring out how much extra -whitespace is needed to adjust all quotes on a page, -the spacing around multiple quotes on the same page will differ -slightly, although each will be balanced between lines of normal -running text, -top and bottom. (The inability to scan an entire page and insert -equalized whitespace at marked places is a limitation of groff, -which, by and large, works in a linear, line by line fashion.) -If you don't provide mom with a -QUOTE_AUTOLEAD, quotes are leaded at the default -for normal running text, meaning that multiple quotes on the same -page are all spaced identically. -

    -TIP: -If you want to include snippets of programming code in -mom documents, you may come acropper of the fact -that groff (and mom's) escape character is the -backslash. In order for mom not to interpret -backslashes that occur in code snippets as escapes, you have to -tell mom that the backslash character is -(temporarily) no longer the escape character. The easiest way -to do this is to set the escape character to something else for -the duration of the code snippet. You accomplish this with -ESC_CHAR, like this: -

    -

    -	.ESC_CHAR c
    -
    - -where "c", above, is the alternate escape character -(which should be a character that does not appear in the code). To -set the escape character back to the backslash, simply invoke -.ESC_CHAR by itself (i.e. with no argument). -

    -Because mom, by default, sets the text after -.QUOTE in italic (for PRINTSTYLE -TYPESET) or underlined (for PRINTSTYLE -TYPEWRITE), you'll want to change that behaviour as -well. Therefore, a recipe for setting verbatim code snippets using -QUOTE could be (assuming you want a fixed width -font like Courier): -

    -

    -	\# You only need the first two lines before the first invocation
    -	\# of QUOTE.  They stay in effect for all subsequent invocations.
    -	\#
    -	.QUOTE_FONT       CR    \" Set quote font to Courier roman
    -	.UNDERLINE_QUOTES OFF   \" Don't underline quotes in TYPEWRITE
    -	.QUOTE
    -	.ESC_CHAR ^             \" Change escape character to ^
    -	<code snippet>
    -	.ESC_CHAR               \" Restore escape character to \
    -	.QUOTE OFF
    -
    -
    - - - -
    -

    - - Macro: QUOTE toggle - - -

    -QUOTE is a toggle macro. To begin a section of -quoted text, invoke it with no argument, then type in your quote. -When you're finished, invoke QUOTE with any -argument (e.g. OFF, END, X, Q...) to turn it off. Example: -

    -

    -	.QUOTE
    -	Nymphomaniacal Jill
    -	Used a dynamite stick for a thrill
    -	They found her vagina
    -	In North Carolina
    -	And bits of her tits in Brazil.
    -	.QUOTE END
    -
    - -

    Quote control macros

    -
      -
    1. Family/font/size/leading/colour/indent -
    2. Spacing above and below (typeset only) -
    3. Underline quotes (typewrite only) -
    4. Manually break a footnoted quote that crosses pages/columns -
    -

    -

    1. Family/font/size/colour/indent

    -

    -See -Arguments to the control macros. -

    -

    -.QUOTE_FAMILY   default = prevailing document family; default is Times Roman
    -.QUOTE_FONT     default = italic; underlined in TYPEWRITE
    -.QUOTE_SIZE     default = +0 (i.e. same size as paragraph text)
    -.QUOTE_AUTOLEAD default = none; leading of quotes is the same as paragraphs
    -.QUOTE_COLOR    default = black
    -.QUOTE_INDENT   default = paragraph indent x 3 (typeset); x 2 (typewrite)
    -               (note that this macro also sets the indents (left and right)
    -                for blockquotes)
    -
    - -

    2. Spacing above and below -- ALWAYS_FULLSPACE_QUOTES (typeset only)

    -

    -If you'd like mom always to put a full linespace above -and below quotes, invoke .ALWAYS_FULLSPACE_QUOTES -with no argument. If you wish to restore mom's -default behaviour regarding the spacing of quotes (see -above), -invoke the macro with any argument (OFF, QUIT, END, -X...) -

    -NOTE: This macro also sets mom's -spacing policy for -blockquotes. -

    - -

    3. Underlining -- UNDERLINE_QUOTES (typewrite only)

    -

    -By default in -PRINTSTYLE TYPEWRITE, -mom underlines quotes. If you'd rather she didn't, -invoke .UNDERLINE_QUOTES with any argument -(OFF, QUIT, END, X...) to disable the feature. -Invoke it without an argument to restore mom's -default underlining of quotes. -

    -If you not only wish that mom not underline -quotes, but also that she set them in italic, you must follow each -instance of QUOTE with the typesetting macro FT I. -Furthermore, since mom underlines all instances -of italics by default in PRINTSTYLE TYPEWRITE, -you must also make sure that ITALIC_MEANS_ITALIC -is enabled (see -PRINTSTYLE TYPEWRITE control macros). -

    - -

    4. Manually break a footnoted quote -- BREAK_QUOTE

    -

    -NOTE: As of version 1.1.9, the macro -BREAK_QUOTE has become obsolete (or, at least, -should have become obsolete.) It remains here for backward -compatibility with documents created prior to 1.1.9, and just in -case, despite my efforts to make it obsolete, you still encounter the -problem it's supposed to fix. Should you find yourself having to -use BREAK_QUOTE while running mom -1.1.9 or higher, please notify me immediately. - -

    -Exceptionally, a quote or blockquote containing a footnote may cross -a page or column. When this happens, the footnote marker may not be -correct for its position relative to other footnotes on the page, and -the footnote itself may appear on the wrong page or at the bottom of -the wrong column. When this happens, study your output to determine -the precise point at which the quote breaks (or at which you want -it to break), and add .BREAK_QUOTE on a line by itself -afterwards. No other intervention is required, and the footnote(s) -will be marked correctly and appear on the correct page. -

    -BREAK_QUOTE may be used with both quotes and -blockquotes, and hence is aliased as BREAK_BLOCKQUOTE, -BREAK_CITATION and BREAK_CITE. -

    -


    - - - -

    Blockquotes (cited passages)

    - -

    -BLOCKQUOTES are used to cite passages from another -author's work. So that they stand out well from -running text, -mom indents them from both the left and right margins -and sets them in a different point size -(PRINTSTYLE TYPESET -only). -Output lines -are -filled, -and, by default, -quadded -left. -

    -Besides indenting blockquotes, mom further sets them -off from running text with a small amount of vertical whitespace top -and bottom. (See -above -for a complete explanation of how this is managed, and how to control it. -Be sure to read the section Version 1.3.) -

    - - - -


    -

    - - Macro: BLOCKQUOTE toggle -
    - Aliases: CITE, CITATION -
    - -

    -BLOCKQUOTE is a toggle macro. To begin a -cited passage, invoke the tag with no argument, then type in your quote. -When you're finished, invoke BLOCKQUOTE with any -argument (e.g. OFF, END, X, Q...) to turn it off. Example: -

    -

    -	.BLOCKQUOTE
    -	Redefining the role of the United States from enablers to keep
    -	the peace to enablers to keep the peace from peacekeepers is
    -	going to be an assignment.
    -	.RIGHT
    -	\(emGeorge W. Bush
    -	.BLOCKQUOTE END
    -
    - -If the cited passage runs to more than one paragraph, you MUST -introduce each paragraph -- including the first! -- -with -PP. -

    -NOTE: The aliases CITE -and CITATION may be used in place of the -BLOCKQUOTE tag, as well as in any of the control -macros that begin with BLOCKQUOTE_ or end with -_BLOCKQUOTE. - -

    Blockquote control macros

    -
      -
    1. Family/font/size/leading/colour/quad/indent -
    2. Spacing above and below (typeset only) -
    3. Manually break a footnoted blockquote that crosses pages/columns -
    -

    -

    1. Family/font/size/colour/quad/indent

    -

    -See -Arguments to the control macros. -

    -

    -.BLOCKQUOTE_FAMILY   default = prevailing document family; default is Times Roman
    -.BLOCKQUOTE_FONT     default = roman
    -.BLOCKQUOTE_SIZE     default = -1 (point)
    -.BLOCKQUOTE_AUTOLEAD default = none; leading of blockquotes is the same as paragraphs
    -.BLOCKQUOTE_COLOR    default = black
    -.BLOCKQUOTE_QUAD     default = left
    -.BLOCKQUOTE_INDENT   default = paragraph indent x 3 (typeset); x 2 (typewrite)
    -                    (note that this macro also sets the left indent for quotes)
    -
    - -

    2. Spacing above and below -- ALWAYS_FULLSPACE_QUOTES (typeset only)

    -

    -If you'd like mom always to put a full linespace above -and below blockquotes, invoke .ALWAYS_FULLSPACE_QUOTES -with no argument. If you wish to restore mom's -default behaviour regarding the spacing of blockquotes (see -above), -invoke the macro with any argument (OFF, QUIT, END, -X...). -

    -NOTE: This macro also sets mom's -spacing policy for -quotes. -

    -


    - - - -

    Nested lists

    - -

    -Lists are points or items of interest or importance that are -separated from -running text -by enumerators. Some typical enumerators are -en-dashes, -bullets, -digits and letters. -

    -Setting lists with mom is easy. First, you -initialize a list with the LIST macro. Then, for -every item in the list, you invoke the macro, ITEM, -followed by the text of the item. When a list is finished, you -exit the list with LIST OFF (or -QUIT, END, BACK, -etc.) -

    -By default mom starts each list with the enumerator -flush with the left margin of running text that comes before it, -like this: -

    -

    -	My daily schedule needs organizing.  I can't
    -	seem to get everything done I want.
    -	o an hour's worth of exercise
    -	o time to prepare at least one healthy
    -	  meal per day
    -	o reading time
    -	o work on mom
    -	o writing
    -	  - changes from publisher
    -	  - current novel
    -	o a couple of hours at the piano
    -
    - -In other words, mom does not, by default, indent -entire lists. Indenting a list is controlled by the macro, -SHIFT_LIST. -(This is a design decision; there are too many instances where a -default indent is not desirable.) Equally, mom -does not add any extra space above or below lists. -

    -Lists can be nested (as in the example above). In other words, you -can set lists within lists, each with an enumerator (and possibly, -indent) of your choosing. In nested lists, each invocation of -LIST OFF (you may prefer to use LIST -BACK) takes you back to the previous depth (or -level) of list, with that list's enumerator and indent intact. The -final LIST OFF exits lists completely and returns -you to the left margin of running text. -

    -Finally, lists can be used in documents created with either the -document processing macros or just the typesetting macros. -

    - - - -


    -

    - - Macro: LIST [ BULLET | DASH | DIGIT | ALPHA | alpha | ROMAN<n> | roman<n> | USER <string>] [ <separator> | <user-defined enumerator> ] [ <prefix> ] [ <off> ] -

    -Invoked by itself (i.e. with no argument), LIST -initializes a list (with bullets as the default enumerator). -Afterwards, each block of input text preceded by -.ITEM, -on a line by itself, is treated as a list item. -

    -NOTE: Every time you invoke LIST -to start a list (as opposed to -exiting one), -you must supply an enumerator (and optionally, a separator) for the -list, unless you want mom's default enumerator, -which is a bullet. Within nested lists, mom -stores the enumerator, separator and indent for any list you return -backwards to (i.e. with LIST OFF), but -does not store any information for lists you move forward -to. -
    - -

    The first argument--enumerator style

    -

    -The optional arguments BULLET, -DASH, DIGIT (for -Arabic numerals), ALPHA (for uppercase -letters), alpha (for lowercase letters), -ROMAN<n> (for uppercase roman numerals), -roman<n> (for lowercase roman numerals) tell -mom what kind of enumerator to use for a given -list. -

    -The arguments, ROMAN<n> and -roman<n>, are special. You must append to -them a digit (arabic, e.g. "1" or "9" or "17") saying how many items -a particular roman-numeralled LIST is going to -have. Mom requires this information in order to -align roman numerals sensibly, and will abort--with a message--if -you don't provide it. -

    -A roman-numeralled list containing, say, five items, would be set -up like this: -

    -

    -	.LIST roman5        producing        i)   Item 1.
    -	.ITEM                                ii)  Item 2.
    -	Item 1.                              iii) Item 3.
    -	.ITEM                                iv)  Item 4.
    -	Item 2.                              v)   Item 5.
    -	.ITEM
    -	Item 3
    -	.ITEM
    -	Item 4
    -	.ITEM
    -	Item 5
    -
    - -

    -The argument, USER, lets you make up your own -enumerator, and must be followed by a second argument: what you'd -like the enumerator to look like. For example, if you want a list -enumerated with -=>, -

    -

    -	.LIST USER =>
    -	.ITEM
    -	A list item
    -
    - -will produce -

    -

    -	=> A list item
    -
    - -Please note: if the argument to -USER contains spaces, you must enclose the argument -in double quotes. - -
    - -

    The second argument--separator style

    -

    -If you choose DIGIT, ALPHA, -alpha, ROMAN<n>, or -roman<n>, you may enter the optional -argument, separator, to say what kind of separator -you want after the enumerator. The separator can be anything you -like. The default for DIGIT is a period (dot), -like this: -

    -

    -	1. A list item
    -
    - -The default separator for ALPHA, -alpha, ROMAN<n> and -roman<n> is a right parenthesis, like this: -

    -

    -	a) An alpha-ed list item
    -	b) A second alpha-ed list item
    -
    -	   or
    -
    -	i)  A roman-ed list item
    -	ii) A second roman-ed item
    -
    - -If you'd prefer, say, digits with right-parenthesis separators -instead of the default period, you'd do -

    -

    -	.LIST DIGIT )
    -	.ITEM
    -	A numberd list item
    -
    - -which would produce -

    -

    -	1) A numbered list item
    -
    - -Please note: BULLET, DASH and -USER do not take a separator. -
    - -

    The third argument--prefix style

    -

    -Additionally, you may give a prefix (i.e. a character that comes -before the enumerator) when your enumerator style for a -particular list is DIGIT, ALPHA, -alpha, ROMAN<n> -or roman<n>. In the arguments to -LIST, the prefix comes after the -separator, which may seem counter-intuitive, so please be careful. -

    -A prefix can be anything you like. Most likely, you'll want some -kind of open-bracket, such as a left parenthesis. If, for example, -you want a DIGIT list with the numbers enclosed in -parentheses, you'd enter -

    -

    -	.LIST DIGIT ) (
    -	.ITEM
    -	The first item on the list.
    -	.ITEM
    -	The second item on the list.
    -
    - -which would produce -

    -

    -	(1) The first item on the list.
    -	(2) The second item on the list.
    -
    - -Please note: BULLET, DASH and -USER do not take a prefix. -
    - - -

    Exiting lists--.LIST OFF/BACK or .QUIT_LISTS

    -

    -Any single argument to LIST other -than BULLET, DASH, -DIGIT, ALPHA, -alpha, ROMAN<n>, -roman<n> or USER (e.g. -LIST OFF or LIST -BACK) takes you out of the current list. -

    -If you are at the first list-level (or "list-depth"), -mom returns you to the left margin of running text. -Any indents that were in effect prior to setting the list are fully -restored. -

    -If you are in a nested list, mom moves you -back one list-level (i.e. does not take you out of the -list structure) and restores the enumerator, separator and indent -appropriate to that level. -

    -Each invocation of LIST should be be matched by -a corresponding LIST OFF in order to fully exit -lists. For example, -

    -

    -	Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
    -	sed diam nonumy eirmod tempor invidunt ut labore.
    -	o List item in level 1
    -	o List item in level 1
    -	  - List item in level 2
    -	  - List item in level 2
    -	Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
    -	sed diam nonumy eirmod tempor invidunt ut labore.
    -
    - -is created like this: -

    -

    -	Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
    -	sed diam nonumy eirmod tempor invidunt ut labore.
    -	.LIST BULLET
    -	.ITEM
    -	List item in level 1
    -	.ITEM
    -	List item in level 1
    -	.LIST DASH
    -	.ITEM
    -	List item in level 2
    -	.ITEM
    -	List item in level 2
    -	.LIST OFF    \" Turn level 2 list off
    -	.LIST OFF    \" Turn level 1 list off
    -	Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
    -	sed diam nonumy eirmod tempor invidunt ut labore.
    -
    - -Alternatively, you may use the single-purpose macro, -QUIT_LISTS, to get yourself out of a list -structure. In the example above, the two .LIST OFF -lines could be replaced with a single .QUIT_LISTS. -

    - -


    -

    - - Macro: ITEM -

    -After you've initialized a list with -LIST, -precede each item you want in the list with ITEM. -Mom takes care of everything else with respect to -setting the item appropriate to the list you're in. -

    -In document processing, it is legal to have list items that contain -multiple paragraphs. Simply issue a -PP -request for each paragraph following the first item. -I.e., don't do this: -

    -

    -	.ITEM
    -	.PP
    -	Some text...
    -	.PP
    -	A second paragraph of text
    -
    - -but rather -

    -

    -	.ITEM
    -	Some text...
    -	.PP
    -	A second paragraph of text
    -
    -
    - -

    List control macros

    -
      -
    1. Indenting lists (SHIFT_LIST) -
    2. Resetting an initialized list's enumerator (RESET_LIST) -
    3. Padding digit enumerators (PAD_LIST_DIGITS) -
    - -

    1. Indenting lists -- SHIFT_LIST

    -

    -If you want a list to be indented to the right of running text, or -indented to the right of a current list, use the macro -SHIFT_LIST immediately after -LIST. -SHIFT_LIST takes just one argument: the amount by -which you want the list shifted to the right. The argument requires -a -unit of measure, -

    -SHIFT_LIST applies only to the list you -just initialized with LIST. It does not carry -over from one invocation of LIST to the next. -However, the indent remains in effect when you return to a -list level in a nested list. -

    -For example, if you want a 2-level list, with each list indented to -the right by 18 -points, -

    -

    -	Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
    -	sed diam nonumy eirmod tempor invidunt ut labore.
    -	.LIST           \" List 1
    -	.SHIFT_LIST 18p \" Indent 18 points right of running text
    -	.ITEM
    -	List 1 item
    -	.ITEM
    -	List 1 item
    -	.LIST DASH      \" List 2
    -	.SHIFT_LIST 18p \" Indent 18 points right of list 1
    -	.ITEM
    -	List 2 item
    -	.ITEM
    -	List 2 item
    -	.LIST OFF       \" Move back to list 1
    -	.ITEM
    -	List 1 item
    -	.ITEM
    -	List 1 item
    -	.LIST OFF       \" Exit lists
    -	Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
    -	sed diam nonumy eirmod tempor invidunt ut labore.
    -
    - -produces (approximately) -

    -

    -	Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
    -	sed diam nonumy eirmod tempor invidunt ut labore.
    -	    o List 1 item
    -	    o List 1 item
    -	        - List 2 item
    -	        - List 2 item
    -	    o List 1 item
    -	    o List 1 item
    -	Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
    -	sed diam nonumy eirmod tempor invidunt ut labore.
    -
    - -

    2. Resetting an initialized list's enumerator -- RESET_LIST

    -

    -In nested lists, if your choice of list enumerator for a given -level of list is DIGIT, ALPHA, -alpha, ROMAN or -roman, you may sometimes want to reset the list's -enumerator when you return to that list. Consider the following: -

    -

    -	Things to do religiously each and every day:
    -	1. Take care of the dog
    -	   a) walk every day
    -	   b) brush once a week
    -	      - trim around the eyes every fourth brushing
    -	      - don't forget to check nails
    -	2. Feed the cat
    -	   a) soft food on Mon., Wed. and Fri.
    -	   b) dry food on Tues., Thurs. and Sat.
    -	   c) canned tuna on Sunday
    -
    - -Normally, within a nested list, when you return to an -incrementally-enumerated list, the enumerator continues incrementing -from where it left off. That means, in the example above, the -normal state of affairs for the alpha'ed list under "2. Feed -the cat" would be c), d) and e). The solution, in such a case, -is simply to reset the enumerator --before ITEM!-- -with the macro, RESET_LIST. -

    -By default, with no argument, RESET_LIST resets the -enumerator to 1, A, a, I or i depending on the style of enumerator. -You may, if you wish, pass RESET_LISTS a numeric -argument representing the starting enumerator for the reset (if -different from "1"), although I can't at present think of a use for -this feature. -

    -

    3. Padding digit enumerators (PAD_LIST_DIGITS)

    -

    -Arabic digits -

    -When your choice of enumerators is DIGIT AND the -number of items in the list exceeds nine (9), you have to make a -design decision: should mom leave room for the -extra numeral in two-numeral digits to the right or the left of -the single-numeral digits? -

    -If you want the extra space to the right, invoke the macro, -.PAD_LIST_DIGITS (with no argument), after -LIST and before ITEM. This will -produce something like -

    -

    -	8.  List item
    -	9.  List item
    -	10. List item
    -
    - -If you want the extra space to the left, invoke -PAD_LIST_DIGITS with the single argument, -LEFT, which will produce -

    -

    -	 8. List item
    -	 9. List item
    -	10. List item
    -
    - -Of course, if the number of items in the list is less than ten -(10), there's no need for PAD_LIST_DIGITS. -

    -Roman numerals -

    -By default, mom sets roman numerals in lists flush -left. The <n> argument appended to -ROMAN<n> or roman<n> -allows her to calculate how much space to put after each numeral in -order to ensure that the text of items lines up properly. -

    -If you'd like the roman numerals to line up flush right (i.e. be -padded "left"), simply invoke PAD_LIST_DIGITS -LEFT after LIST ROMAN<n> -or LIST roman<n> amd before -ITEM. -

    -


    - - - -

    Line numbering

    - - -

    -Mom's line-numbering capabilities are not as flexible -as most of her other document processing macros. The reason is -that groff's underlying line-numbering -primitive, -.nm, is, well...primtive. It is not possible, for -example, to select a particular family or font for use exclusively -with line numbers. Nor is it possible to set the -gutter -using any -unit of measure -other than the -figure space. -

    -That said, when you turn line-numbering on, mom, -by default -
    - -

      -
    • numbers every line of paragraph text; line-numbering is - suspended for all other document processing tags (like - docheaders, epigraphs, heads, subheads, etc.) and special - pages (covers, endotes, bibliographies, etc.); be aware, - though, that if you turn - docheaders - off (with - DOCHEADER OFF) - and create your own docheader, mom - will line-number your custom docheader -
    • doesn't touch your line length; line numbers are hung - outside your current left margin (as set with - L_MARGIN, - PAGE - or - DOC_LEFT_MARGIN), - regardless of any indents that may be active -
    • separates line numbers from running text by two - figure spaces. -
    -

    -Line numbering may be enabled and disabled for -QUOTE -and/or -BLOCKQUOTE -in one of three styles. See -Line numbering control macros for quotes and blockquotes. -

    -The first time you invoke -NUMBER_LINES -you must, at a minimum, tell it what line number you want the -next -output line -to have. Optional arguments allow you to state which lines should -be numbered (e.g. every five or every ten lines), and the gutter to -place between line numbers and -running text. -

    -Subsequently, you can turn line-numbering off, either permanently, -or resume it later at a place of your choosing. When you -resume line-numbering, the line numbers pick up where you left off. -

    - - - -


    -

    - - - Macro: NUMBER_LINES <start number> [ <which lines to number> [ <gutter> ] ] -
    - Macro: NUMBER_LINES <anything> | RESUME -
    -
    - - -

    -NUMBER_LINES does what it says: prints line -numbers, to the left of -output lines -of paragraph text. One of the chief reasons for wanting numbered -lines is in order to identify footnotes or endnotes by line number -instead of by a marker in the text. (See -.FOOTNOTE_MARKER_STYLE LINE -for instructions on line-numbered footnotes, and -.ENDNOTE_MARKER_STYLE -for instructions on line-numbered endnotes.) -

    -Every time you invoke NUMBER_LINES, unless you are -using the arguments OFF (QUIT, -END, X, etc.) or -RESUME you must, at a minimum, pass it one -argument, namely the number (digit) you want the next -output line -to have. For example, -

    -	.NUMBER_LINES 3
    -
    - -will prepend the number, 3, to the next output line. -

    -Normally, of course, you will number lines of text starting at 1. -All you have to do in that case is ensure that -

    -	.NUMBER_LINES 1
    -
    - -precedes your first line of input text, which will also be the -first line of output text. -

    -You can alter mom's default line numbering -behaviour (see -above) -with the optional arguments <which lines to -number> and <gutter>. -

    -<which lines to number> instructs -NUMBER_LINES to number only certain lines, e.g. -every two lines or every five lines. If you want, say, only every -five lines to have a prepended number, you'd do -

    -	.NUMBER_LINES 1 5
    -
    - -GOTCHA! The argument to <which -lines to number> only numbers those lines that are -multiples of the argument. Hence, in the above example, line -number "1" will not be numbered, since "1" is not a -multiple of "5". -

    -If you wanted line number "1" to be numbered, you'd have to invoke -.NUMBER_LINES 1 1 before the first output line, then -study your output copy and determine where best to insert -the following in your input copy: -

    -	.NUMBER_LINES \n(ln 5
    -
    - -(The escape, \n(ln, ensures that -NUMBER_LINES automatically supplies the correct -value for the first argument, <start -number>.) -

    -Following this recipe, line number 1 will be numbered; subsequently, -only line numbers that are multiples of 5 will be numbered. A -little experimentation may be required to determine the best place -for it. -

    -The optional argument, <gutter>, tells -mom how much space to put between the line numbers -and the running text. -

    -Note: when giving a value for -<gutter>, you cannot skip the -<which lines to number> argument. Either -fill in the desired value, or use two double-quotes -("") to have mom use the value -formerly in effect. -

    -<gutter> does not require (or even accept) a -unit of measure. -The argument you pass to it is the number of -figure spaces -you want between line numbers and running text. -Mom's default gutter is two figure spaces. If -you'd like a wider gutter, say, four figures spaces, you'd do -

    -	.NUMBER_LINES 1 1 4
    -	                |
    -	                +-- Notice you *must* supply a value
    -	                    for the 2nd argument in order to supply
    -	                    a value for the 3rd.
    -
    - -

    -After you've set up line-numbering, NUMBER_LINES -can be used to control line numbering. -
    -

    Line-numbering control

    -

    -NUMBER_LINES OFF (or END, QUIT, X, etc.) -turns line-numbering off. -

    -Sometimes, you merely want to suspend line-numbering. In that case, -turn line numbering off with NUMBER_LINES OFF. -Later, when you want it to resume, enter -

    -	.NUMBER_LINES RESUME
    -
    - -Line numbering will resume exactly where it left off. If this is -not what you want--say you want to reset the line number to "1"--simply -invoke NUMBER_LINES with whatever arguments -are needed for the desired result. -

    -Extra Notes: -
    -

      -
    1. In document processing, you may invoke NUMBER_LINES - either before or after START. - Mom doesn't care. -
    2. If you're collating documents with - COLLATE, - you should re-invoke, at a minimum, .NUMBER_LINES - 1 for each collated document, in order to ensure that - each begins with the number "1" prepended to the first line - (unless, of course, that is not what you want). -
    3. Occasionally, you may want to change the current gutter - between line numbers and running text without knowing - what the next output line number should be. Since - NUMBER_LINES requires this number - as its first argument, in such instances, pass - NUMBER_LINES as its first argument the - escape \n(ln. -

      - For example, if you were numbering every 5 lines with a - gutter of 2 (figure spaces) and you needed to change the - gutter to 4 (figures spaces), -

      -     .NUMBER_LINES \n(ln 5 4 -

      - would do the trick. -

    4. If you're using margin notes in a document, be sure to set - the gutter for margin notes wide enough to allow room for - the line numbers. -
    5. Mom (groff, actually), only numbers lines - to the left of text. For aesthetic reason, - therefore, the use of line numbering when setting a document - in columns is discouraged. However, should you wish to - number lines when setting in columns, make sure the - gutter(s) - between columns is wide enough to leave room for the - numbers. -
    -
    - -

    Line numbering control macros for QUOTE and BLOCKQUOTE

    -
      -
    1. NUMBER_QUOTE_LINES -
    2. NUMBER_BLOCKQUOTE_LINES -
    3. Setting up line numbering in quotes and blockquotes on a case by case basis -
    - -

    1. NUMBER_QUOTE_LINES

    -

    -If you'd like mom to number lines of output text -in a -QUOTE -as part of the same order and sequence as paragraph text, simply -invoke NUMBER_QUOTE_LINES by itself. -

    -There is a catch with numbering quotes, though. Owing to groff's -restriction of accepting only the figure space as the line number -gutter's unit of measure, it is not possible for line numbers -in quotes to hang outside a document's overall left margin and -be reliably flush with the line numbers of paragraph text. -Conseqently, line numbers in quotes hang to the left of the quote, -separated from the quote by the <gutter> -argument. -

    -If you'd like to change the gutter for quotes line-numbered in -this way, invoke NUMBER_QUOTE_LINES with a digit -representing the number of -figure spaces -you'd like between the line numbers and the quoted text, like this: -

    -	.NUMBER_QUOTE_LINES 1
    -
    - -With the above, line numbers in quotes (and only quotes) will have -a gutter of 1 figure space. -

    -If you are using "line numbering style" for footnotes -(FOOTNOTE_MARKER_STYLE LINE), -you may not wish to have quotes visibly line-numbered, but -still want to embed footnotes inside quotes. In order to do that, -mom allows you to say NUMBER_QUOTE_LINES -SILENT. -

    -When you invoke NUMBER_QUOTE_LINES -SILENT, mom continues to increment line -numbers while quotes are being output, but they won't appear in the -output copy. (Compare this with mom's default -behaviour of suspending incrementing of line numbers -during the output of quotes.) This allows you to embed -line-numbered footnotes inside quotes and have the line number -"label" in the footnote come out sensibly. -

    -Once having turned NUMBER_QUOTE_LINES on, you -may disable it with NUMBER_QUOTE_LINES OFF (or -QUIT, END, X, -etc). -

    - -

    2. NUMBER_BLOCKQUOTE_LINES

    -

    -If you'd like mom to number lines of output text -in a -BLOCKQUOTE -as part of the same order and sequence as paragraph text, simply -invoke NUMBER_BLOCKQUOTE_LINES by itself. -

    -There is a catch with numbering blockquotes, though. Owing to -groff's restriction of accepting only the figure space as the -line number gutter's unit of measure, it is not possible for line -numbers in blockquotes to hang outside a document's overall left -margin and be reliably flush with the line numbers of paragraph -text. Conseqently, line numbers in blockquotes hang to the -left of the blockquote, separated from the blockquote by the -<gutter> argument. -

    -If you'd like to change the gutter for blockquotes line-numbered in -this way, invoke NUMBER_BLOCKQUOTE_LINES with a digit -representing the number of -figure spaces -you'd like between the line numbers and the blockquoted text, like -this: -

    -	.NUMBER_BLOCKQUOTE_LINES 1
    -
    - -With the above, line numbers in blockquotes (and only blockquotes) -will have a gutter of 1 figure space. -

    -If you are using "line numbering style" for footnotes -(FOOTNOTE_MARKER_STYLE LINE), -you may not wish to have blockquotes visibly line-numbered, -but still want to embed footnotes inside blockquotes. In -order to do that, mom allows you to say -NUMBER_BLOCKQUOTE_LINES SILENT. -

    -When you invoke NUMBER_BLOCKQUOTE_LINES -SILENT, mom continues to increment line -numbers while blockquotes are being output, but they won't appear in -the output copy. (Compare this with mom's default -behaviour of suspending incrementing of line numbers during -the output of blockquotes.) This allows you to embed line-numbered -footnotes inside blockquotes and have the line number "label" in the -footnote come out sensibly. -

    -Once having turned NUMBER_BLOCKQUOTE_LINES on, you -may disable it with NUMBER_BLOCKQUOTE_LINES OFF (or -QUIT, END, X, -etc). -

    - -

    3. Setting up line numbering in quotes and blockquotes on a case by case basis

    -

    -Sometimes, you may want quotes or blockquotes to have a different -line numbering scheme from the one used in the rest of the -document. Or, you may want line numbering enabled only inside a -particular quote or blockquote. A common reason for this would be -if you were using the -QUOTE -macro to insert lines of programming code into a document. (See -here -for suggestions about including programming code snippets in -documents.) -

    -To enable line numbering within quotes or blockquotes on a case by -case basis, simply invoke NUMBER_LINES, with the -arguments you need, immediately after entering QUOTE -or BLOCKQUOTE. (NUMBER_QUOTE_LINES -and/or NUMBER_BLOCKQUOTE_LINES should be turned -off if you're doing this.) The quote or blockquote will then be -line-numbered according to your specifications: the starting line -number of the quote or blockquote will be the one you give as a -first argument to NUMBER_LINES; which lines to -number will be the value you pass to <which lines to -number> (defaults to "1"); line numbers will hang -to the left of the quote or blockquote, separated from the quote or -blockquote by <gutter> (defaults to "2"). -

    -As soon as QUOTE or BLOCKQUOTE is -turned off, line numbering ceases, not only with respect to -subsequent paragraph text (if they are not being line-numbered), -but also for any subsequent invocation of QUOTE or -BLOCKQUOTE. In other words, you must re-enable -quote or blockquote line-numbering inside every instance of -QUOTE or BLOCKQUOTE when -line-numbering either of them on a case by case basis. -

    -


    - - - -

    Footnotes

    - - -

    -For something so complex behind the scenes, footnotes are easy to use. -You just type, for example -

    - -

    -	...the doctrines of Identity as urged by Schelling\c
    -	.FOOTNOTE
    -	<footnote about who the hell is Schelling>
    -	.FOOTNOTE OFF
    -	 were generally the points of discussion presenting the most
    -	of beauty to the imaginative Morella.
    -
    - -and be done with it. -

    -(Note the obligatory use of the \c -inline escape. -It is required when your -FOOTNOTE_MARKER_STYLE -is either STAR [star/dagger footnotes] or -NUMBER [superscript numbers]; it is NOT to be used -when the FOOTNOTE_MARKER_STYLE is -LINE, or when footnote markers have been disabled -with -.FOOTNOTE_MARKERS -OFF.) -

    -***Version 1.3 change*** -

    -As of version 1.3, the manner of entering the line -after .FOOTNOTE OFF has changed -to accommodate users' differing wishes with respect to -the order of punctuation and footnote markers. The -correct way to enter the line after .FOOTNOTE -OFF--ONLY if your -FOOTNOTE_MARKER_STYLE is -STAR or NUMBER--is to input -it as if it's literally a continuation of the line before -.FOOTNOTE, and therefore begins with either a space -or a punctuation mark, as in the two following examples. -

    -

    -	   Example 1					  Example 2
    -	   ---------                      ---------
    -
    -	A line of text,\c				A line of text\c
    -	.FOOTNOTE						.FOOTNOTE
    -	A footnote line.				A footnote line.
    -	.FOOTNOTE OFF					.FOOTNOTE OFF
    -	 broken up with a comma.		, broken up with a comma.
    -
    -	(last line begins with			(last line begins with
    -	 a literal space)				 the comma and a space)
    -
    - -If your FOOTNOTE_MARKER_STYLE is line, none of -this is a concern. -

    -***End of version 1.3 change*** -

    -After you invoke FOOTNOTE, mom -takes care of everything: putting footnote markers in the body of -the document, keeping track of how many footnotes are on the page, -identifying the footnotes themselves appropriately, balancing them -properly with the bottom margin, deferring footnotes that don't fit -on the page... Even if you're using -COLUMNS, -mom knows what to do, and Does The Right Thing. -

    -Footnotes can be sly little beasts, though. If you're writing a -document that's footnote-heavy, you might want to read the following. -

    - -

    Footnote behaviour

    -

    -By default, mom marks footnotes with alternating -stars (asterisks), daggers, and double-daggers. The first footnote -gets a star, the second a dagger, the third a double-dagger, the -fourth two stars, the fifth two daggers, etc. If you prefer -numbered footnotes, rest assured mom is happy to -oblige. -

    -A small amount of vertical whitespace and a short horizontal rule -separate footnotes from the document body. The amount of whitespace -varies slightly from page to page depending on the number of lines -in the footnotes. Mom tries for a nice balance -between too little whitespace and too much, but when push comes to -shove, she'll usually opt for ample over cramped. The last lines of -footnotes are always flush with the document's bottom margin. - -

    -If mom sees that a portion of a footnote cannot -be fit on its page, she carries that portion over to the next -page. If an entire footnote can't be fit on its page (i.e. -FOOTNOTE has been called too close to the bottom), -she defers the footnote to the next page, but sets it with the -appropriate marker from the previous page. -

    -When footnotes occur within cited text, for example a -QUOTE -or a -BLOCKQUOTE, -mom will usually opt for deferring the footnote -over to the next page if it allows her to complete the cited text -on one page. -

    -In the unfortunate happenstance that a deferred footnote is the -only footnote on its page (i.e. it's marked in the document body with -a star) and the page it's deferred to has its own footnotes, -mom separates the deferred footnote from the page's -proper footnote(s) with a blank line. This avoids the confusion that -might result from readers seeing two footnote entries on the same page -identified by a single star (or the number 1 if you've requested -numbered footnotes that begin at 1 on every page). The blank line -makes it clear that the first footnote entry belongs to the previous -page. -

    -In the circumstance where a deferred footnote is not the only one -on its page, and is consequently marked by something other than a -single star, there's no confusion and mom doesn't -bother with the blank line. (By convention, the first footnote on -a page is always marked with a single star, so if readers see, say, -a dagger or double-dagger marking the first footnote entry, they'll -know the entry belongs to the previous page). -

    -Very exceptionally, two footnotes may have to be deferred (e.g. one -occurs on the second to last line of a page, and another on the -last line). In such a circumstance, mom does not -add a blank after the second deferred footnote. If you'd like a -blank line separating both deferred footnotes from any footnotes -proper to the page the deferred ones were moved to, add the space -manually by putting a -.SPACE -command at the end of the footnote text, before -FOOTNOTE OFF (or FOOTNOTE X, QUIT, -EXIT, etc...). -

    -Obviously, deferred footnotes aren't an issue if you request numbered -footnotes that increase incrementally throughout the whole document -- -yet another convenience mom has thought of. -

    -While mom's handling of footnotes is -sophisticated, and tries to take nearly every imaginable situation -under which they might occur into account, some situations are -simply impossible from a typographic standpoint. For example, if -you have a -HEAD -near the bottom of the page AND that page has some footnotes on it, -mom may simply not have room to set any text under -the head (normally, she insists on having room for at least one line -of text beneath a head). In such an instance, mom -will either set the head, with nothing under it but footnotes, -or transfer the head to the next page. Either way, you'll have a -gaping hole at the bottom of the page. It's a sort of typographic -Catch-22, and can only be resolved by you, the writer or formatter -of the document, adjusting the type on the offending page so as to -circumvent the problem. -

    -NOTE: Exceptionally, you may encounter problems with footnotes inside -quotes and blockquotes that cross a page or column. See BREAK_QUOTE -for a solution. -

    - -

    Footnote markers and punctuation in the running text

    - -

    -As of version 1.3, the manner of entering the line after -.FOOTNOTE OFF has changed. The correct way to -enter the line after .FOOTNOTE OFF now is to -input it as if it's literally a continuation of the line before -.FOOTNOTE, and therefore begins with either a space -or a punctuation mark, as in the two following examples. -

    -

    -	   Example 1					  Example 2
    -	   ---------                      ---------
    -
    -	A line of text,\c				A line of text\c
    -	.FOOTNOTE						.FOOTNOTE
    -	A footnote line.				A footnote line.
    -	.FOOTNOTE OFF					.FOOTNOTE OFF
    -	 broken up with a comma.		, broken up with a comma.
    -
    -	(last line begins with			(last line begins with
    -	 a literal space)				 the comma and a space)
    -
    - -Care must be taken, though, if the punctuation mark that begins the -line after FOOTNOTE OFF is a period (dot). You -must begin such lines with -\&., like this: -

    -

    -	end of a sentence\c
    -	.FOOTNOTE
    -	A footnote line.
    -	.FOOTNOTE OFF
    -	\&.  A new sentence...
    -
    - -If you omit the \&., the line will vanish! -

    - - - - -


    -

    - - Tag: FOOTNOTE <toggle> | INDENT LEFT | RIGHT | BOTH <indent value> -
    - *See
    HYPER-IMPORTANT NOTE!!! -
    - <indent value> requires a - unit of measure - - -

    -FOOTNOTE is a toggle macro, therefore invoking it -on a line by itself allows you to enter a footnote in the body of a -document. Invoking it with any argument other than INDENT -(i.e. OFF, QUIT, END, X...) tells mom -you're finished. -

    -Footnotes are the only element of -running text -that are not affected by the typesetting -indent macros. -In the unlikely event that you want a page's footnotes to line -up with a running indent, invoke FOOTNOTE with -the INDENT argument and pass it an indent -direction and indent value. L, R, and -B may be used in place of LEFT, -RIGHT, and BOTH. -FOOTNOTE must be invoked with INDENT -for every footnote you want indented; mom does -not save any footnote indent information from invocation to -invocation. -

    -NOTE: If a footnote runs to more than one -paragraph(!), DO NOT begin the footnote with -the -PP -tag. Use PP only to introduce subsequent paragraphs. -

    -HYPER-IMPORTANT NOTE: -The final word on the -input line -that comes immediately before FOOTNOTE MUST terminate -with a -\c -inline escape if your -FOOTNOTE_MARKER_STYLE -is either STAR or NUMBER. -See the -footnote example -above. -

    -Additionally, the line after a FOOTNOTE -OFF should be entered as if there were no interruption in -the input text, i.e. the line should begin with a literal space or -punctuation mark. See -above. -

    -Do NOT use the \c inline escape if your -FOOTNOTE_MARKER_STYLE is LINE, or -if you have disabled footnote markers with -.FOOTNOTE_MARKERS -OFF. As well, the line after -FOOTNOTE OFF should be entered normally. - -

    -

    Footnote control macros

    -
      -
    1. Family/font/size/colour/lead/quad -
    2. Footnote markers -- on or off -
    3. Footnote marker style -- star+dagger, numbered or by line number - -
    4. Reset footnote number -- set footnote marker number to 1 -
    5. Inter-footnote spacing -
    6. Footnote rule -- on or off -
    7. Footnote rule length -- length of footnote separator rule -
    8. Adjust vertical position of footnote separator rule -
    -

    -

    1. Family/font/size/colour/lead/quad

    -

    -See -Arguments to the control macros. -

    -

    -.FOOTNOTE_FAMILY    default = prevailing document family; default is Times Roman
    -.FOOTNOTE_FONT      default = roman
    -.FOOTNOTE_SIZE      default = -2 (points)
    -.FOOTNOTE_COLOR     default = black
    -.FOOTNOTE_AUTOLEAD  default = 2 points (typeset); single-spaced (typewrite)
    -.FOOTNOTE_QUAD      default = same as paragraphs
    -
    - -

    2. Footnote markers -- FOOTNOTE_MARKERS

    -

    -If you don't want footnote markers, in either the body of -the document or beside footnote entries themselves, toggle -them off with .FOOTNOTE_MARKERS OFF (or -END, QUIT, X...). This means, of course, that -you'll have to roll your own. If you want them back on, invoke -.FOOTNOTE_MARKERS with no argument. Footnote markers -are on by default. -

    -If FOOTNOTE_MARKERS are disabled, do NOT use the -\c inline escape to terminate the line before -.FOOTNOTE. -

    - -

    3. Footnote marker style -- FOOTNOTE_MARKER_STYLE

    -

    -Mom gives you two choices of footnote marker style: -star+dagger (see -footnote behaviour -above), or numbered. -

    -.FOOTNOTE_MARKER_STYLE STAR gives you star+dagger -(the default). There is a limit of 10 footnotes per page with -this style. -

    -.FOOTNOTE_MARKER_STYLE NUMBER gives you superscript -numbers, both in the document body and in the footnote entries -themselves. By default, footnote numbers increase incrementally -(prev. footnote number + 1) throughout the whole document. You can -ask mom to start each page's footnote numbers at 1 -with .RESET_FOOTNOTE_NUMBER -(see below.) -

    -

    -.FOOTNOTE_MARKER_STYLE LINE lets you have -footnotes which are identified by line number, rather than by a -marker in the text. (Note that -NUMBER_LINES -must be enabled in order to use this marker style.) -

    -With FOOTNOTE_MARKER_STYLE LINE, mom -will identify footnotes either by single line numbers, or line -ranges. If what you want is a single line number, you need only -invoke .FOOTNOTE, without terminating the text -line before it with \c, at the appropriate -place in running text. -

    -If you want a range of line numbers (e.g. [5-11] ), -insert, directly into the first line of the range you want, the -inline escape, -\*[FN-MARK]. For the terminating line number of -the range, you need only invoke .FOOTNOTE, (again, -without attaching \c to the text line before it). -Mom is smart enough to figure out that where -FOOTNOTE was invoked represents the terminating -line number. Range-numbered footnotes are always output on the page -where FOOTNOTE was invoked, not the page where -\*[FN-MARK] appears (subject, of course, to the -rules for footnotes that fall too close to the bottom of a page, as -outlined -here). - -

    -Mom, by default, puts footnote line numbers inside -square brackets. The style of the brackets may be changed with -the macro, FOOTNOTE_LINENUMBER_BRACKETS, which -takes one of three possible arguments: PARENS -("round" brackets), SQUARE (the default) or -BRACES (curly braces). If you prefer a -shortform, the arguments, (, [ or -{ may be used instead. - -

    -If you don't want the numbers enclosed in brackets, you may tell -mom to use a "separator" instead. A common -separator would be the colon, but it can be anything you like. The -macro to do this is FOOTNOTE_LINENUMBER_SEPARATOR, -which takes, as its single argument, the separator you want. For -safety and consistency's sake, ALWAYS enclose the argument in -double-quotes. -

    -The separator can be composed of any legal groff character, or any -combination of characters. A word of caution: when -using a separator, mom doesn't insert a space -after the separator. Hence, if you want the space (you probably -do), you must make the space part of the argument you pass to -FOOTNOTE_LINENUMBER_SEPARATOR. For example, -to get a colon separator with a space after it, you'd do -

    -

    -	.FOOTNOTE_LINENUMBER_SEPARATOR ": "
    -
    - -RUN-ON FOOTNOTES -

    -Finally, if your footnote marker style is LINE, you -may instruct mom to do "run-on style" footnotes. -Run-on footnotes do not treat footnotes as discrete entities, i.e. -on a line by themselves. Rather, each footnote is separated from -the footnote before it by a space, so that the footnotes on any -given page form a continuous block, like lines in a paragraph. The -macro to get -mom to run footnotes on is -.FOOTNOTES_RUN_ON. Invoked by itself, it turns -the feature on. Invoked with any other argument -(OFF, NO, etc.), it turns the -feature off. It is generally NOT a good idea to turn the feature -on and off during the course of a single document. If you do, -mom will issue a warning if there's going to be a -problem. However, it is always perfectly safe to enable/disable the -feature after -COLLATE. -

    -The usual reason for wanting run-on footnotes is that you're -using them to hold many, short references. (See -here -for instructions on using the groff program, -refer, to set up references.) - -

    - -

    4. Reset footnote number -- RESET_FOOTNOTE_NUMBER

    -

    -.RESET_FOOTNOTE_NUMBER, by itself, resets -footnote numbering so that the next footnote you enter is -numbered 1. -

    -.RESET_FOOTNOTE_NUMBER PAGE tells -mom to start every page's footnote numbering at 1. -

    - -

    5. Inter-footnote spacing -- FOOTNOTE_SPACE

    -

    -If you'd like a little extra space between footnotes, you can have -mom put it in for you by invoking -.FOOTNOTE_SPACE with an argument representing the -amount of extra space you'd like. The argument to -FOOTNOTE_SPACE requires a -unit of measure. -

    -In the following example, footnotes will be separated from each -other by 3 -points. -

    -	.FOOTNOTE_SPACE 3p
    -
    - -

    6. Footnote rule -- FOOTNOTE_RULE

    -

    -If you don't want a footnote separator rule, toggle it off with -.FOOTNOTE_RULE OFF (or END, -QUIT, X...). Toggle it back on by invoking -.FOOTNOTE_RULE with no argument. The default is to -print the rule. -

    - -

    7. Footnote rule length -- FOOTNOTE_RULE_LENGTH

    -

    -If you want to change the length of the footnote separator rule, -invoke .FOOTNOTE_RULE_LENGTH with a length, like -this, -

    -	.FOOTNOTE_RULE_LENGTH 1i
    -
    - -which sets the length to 1 inch. Note that a -unit of measure -is required. The default is 4 -picas -for both -PRINTSTYLES. -

    - -

    8. Adjust vertical position of footnote separator rule -- FOOTNOTE_RULE_ADJ

    -

    -The footnote separator rule is actually a baseline rule that falls -on the -baseline -of the first line of a page's footnotes. By default, -mom raises the rule 3 -points -from the baseline so that the separator and the footnotes don't -look jammed together. If you'd prefer a different vertical -adjustment, invoke .FOOTNOTE_RULE_ADJ with the -amount you'd like. For example -

    -

    -	.FOOTNOTE_RULE_ADJ 4.25p
    -
    - -raises the rule by 4-1/4 points. Note that you can only raise -the rule, not lower it. A -unit of measure -is required. -

    -Tip: If your document -leading -is 2 -points -or less (e.g your -point size -is 10 and your linespacing is 10, 11, or 12, lowering -mom's default footnote rule adjustment will -almost certainly give you nicer looking results than leaving -the adjustment at the default. Furthermore, you can invoke -FOOTNOTE_RULE_ADJ on any page in which footnotes -appear, or in any column, so that the placement of the footnote rule -can be changed on-the-fly, should you wish to do so. -

    -


    - - - -

    Endnotes

    - - -

    -Embedding endnotes into mom documents is accomplished -the same way as embedding -footnotes. The example below is -identical to the one shown in the -introduction to footnotes, -except that .FOOTNOTE has been replaced with -.ENDNOTE. -

    - -

    -	...the doctrines of Identity as urged by Schelling\c
    -	.ENDNOTE
    -	<endnote about who the hell is Schelling>
    -	.ENDNOTE OFF
    -	 were generally the points of discussion presenting the most
    -	of beauty to the imaginative Morella.
    -
    - -As with footnotes, note the obligatory use of the \c -inline escape -when your -ENDNOTE_MARKER_STYLE -is NUMBER (which marks endnotes references in -running text -with superscript numbers). When the marker style is -LINE, you must not use the -\c escape. -

    -***Version 1.3 change*** -

    -As of version 1.3, the manner of entering the line after -.ENDNOTE OFF has changed to accommodate users' -differing wishes with respect to the order of punctuation and -endnote markers. The correct way to enter the line after -.ENDNOTE OFF--but NOT -if your -ENDNOTE_MARKER_STYLE -is LINE--is to input it as if it's literally -a continuation of the line before .ENDNOTE, and -therefore begins with either a space or a punctuation mark, as in -the two following examples. -

    - -

    -	   Example 1					  Example 2
    -	   ---------                      ---------
    -
    -	A line of text,\c				A line of text\c
    -	.ENDNOTE						.ENDNOTE
    -	A footnote line.				A footnote line.
    -	.ENDNOTE OFF					.ENDNOTE OFF
    -	 broken up with a comma.		, broken up with a comma.
    -
    -	(last line begins with			(last line begins with
    -	 a literal space)				 the comma and a space)
    -
    - -***End version 1.3 change*** -

    -Endnotes differ from footnotes in two ways (other than the fact that -endnotes come at the end of a document whereas footnotes appear in the -body of the document): -
    -

      -
    1. When your ENDNOTE_MARKER_STYLE is - NUMBER, endnotes are always numbered - incrementally, starting at "1". -
    2. Endnotes MUST be output explicitly; mom does - not output them for you. In - collated - documents, this allows you to choose whether you - want the endnotes to appear at the end of each chapter or - article in a document, or grouped together at the very end - of the document. -
    -

    -Within endnotes, you may use the document element tags -PP, -QUOTE -and -BLOCKQUOTE. -This provides the flexibility to create endnotes that run to several -paragraphs, as well as to embed cited text within endnotes. -

    -Should you wish to change the appearance of quotes or blockquotes that -appear within endnotes, you may do so with the -quote control macros -or -blockquote control macros. -HOWEVER... you must make the changes within each endnote, prior -to invoking QUOTE or BLOCKQUOTE, and -undo them prior to terminating the endnote (i.e. before ENDNOTE -OFF), otherwise the changes will affect subsequent quotes and -blockquotes that appear in the document body as well. -

    - -

    Endnote behaviour

    -
    -When you output endnotes (with -ENDNOTES), -mom finishes processing the last page of your document, -then breaks to a new page for printing the endnotes. If the document -type is -CHAPTER, -the centre part of the -header -(or footer), which, by default, contains a chapter number or title, is -removed. -

    -By default, mom starts the endnotes page with a -bold, centred, double-underscored head, "ENDNOTES". -Underneath--flush left, bold, and underscored--she prints the document -title (or, in the case of chapters, the chapter number or title). She -then prints the endnotes. Each endnote is identified by its appropriate -number, in bold, right aligned to two placeholders. The text of the -endnotes themselves is indented to the right of the numbers. -

    -If the endnotes are grouped together at the end of a collated document, -each section of the document that contains endnotes is identified by its -own unique title (or chapter number or title), bold, flush left, and -underscored. -

    -Of course, all the defaults, as well as the overall style of the -endnotes page, can be changed with the -endnote control macros. -The attentive will notice that endnotes have an awful lot of control -macros. This is because endnotes are like a mini-document unto -themselves, and therefore need not be bound by the style parameters of -the body of the document. -

    - - -

    A Note on Endnote Spacing

    - -
    -On the endnotes page(s), each new endnote is separated from the -previous endnote by a full line space. This can result in a bottom -margin that hangs, and is the one instance, other than the use of -PARA_SPACE, -where mom allows unequal bottom alignment of pages. -Should you wish to correct this, by adding or subtracting small amounts -of space between endnotes that appear together on an endnotes page, make -the adjustment (with -ALD, -RLD -or -SPACE) -at the end of each endnote (i.e. just before invoking -ENDNOTE OFF) -rather than at the top. -

    - - -

    Endnotes and columnar documents

    - -
    -Formerly (pre 1.1.6), there was no way to set a document in columns -(see -COLUMNS) -and then turn off column mode for endnotes. As of version 1.1.6, -you may now do so. See -ENDNOTES_NO_COLUMNS. -

    -


    - - - -

    - - Macro: ENDNOTE <toggle> -
    - *See
    HYPER-IMPORTANT NOTE!!! - - -

    -ENDNOTE is a toggle macro, therefore invoking it -on a line by itself allows you to enter an endnote in the body of a -document. Invoking it with any other argument -(i.e. OFF, QUIT, END, X...) tells mom -that you've finished the endnote. -

    -NOTE: If an endnote runs to more than one paragraph, -DO NOT begin the endnote with the -PP -tag. Use PP only to introduce subsequent paragraphs. -

    -HYPER-IMPORTANT NOTE: -If your -ENDNOTE_MARKER_STYLE -is NUMBER (mom's default), the -final word on the -input line -that comes immediately before ENDNOTE MUST terminate -with a -\c -inline escape. See the -endnote example -above. -

    -Additionally, the line after -.ENDNOTE OFF should be entered as if there -were no interruption in the input text, i.e. the line should begin -with a literal space or punctuation mark. See the two -examples, -above. -

    -If your ENDNOTE_MARKER_STYLE is -LINE, do NOT use the \c escape, -and enter the line after .ENDNOTE OFF -normally. -

    - - - -


    -

    -Tag: ENDNOTES - -

    -Unlike footnotes, which mom automatically outputs at the -bottom of pages, endnotes must be explicitly output by you, the user. -ENDNOTES, by itself (i.e. without any argument), is -the macro to do this. -

    -Typically, you'll use ENDNOTES at the end of -a document. If it's a single (i.e. not collated) document, -mom will print the endnotes pertaining to it. If it's -a collated document, mom will print all the endnotes -contained within all sections of the document (typically chapters), -appropriately identified and numbered. -

    -Should you wish to output the endnotes for each section of a collated -document at the ends of the sections (instead of at the very end of the -document), simply invoke ENDNOTES immediately prior to -COLLATE. -Mom will print the endnotes, identified and numbered -appropriately, on a separate page prior to starting the next section of -the document. Each subsequent invocation of ENDNOTES -outputs only those endnotes that mom collected -after the previous invocation. -

    -


    - -

    Endnote control macros

    -

    -VERY IMPORTANT NOTE! -
    -Endnote control macros must always be invoked prior to the first -instance of -ENDNOTE/ENDNOTE OFF. -

    -When you embed endnotes in the body of a document, -mom collects and processes them for later -outputting (when you invoke -ENDNOTES). -By the time you do invoke ENDNOTES, it's much too -late to change your mind about how you want them to look. -

    -My advice? If you're planning to change the default appearance of -endnotes pages, set them up prior to -START. -

    -

      -
    1. General endnotes-pages style control - -
    2. Endnotes-page header/footer control - -
    3. Endnotes-page head (i.e. the title at the top) control - -
    4. Endnote document-identification title - -
    5. Endnotes-pages endnote numbering style - -
    -
    - -

    1. General endnotes page style control

    - -

    *Endnote family/font/quad

    -

    -See -Arguments to the control macros. -

    -

    -.ENDNOTE_FAMILY    default = prevailing document family; default is Times Roman
    -.ENDNOTE_FONT      default = roman
    -.ENDNOTE_QUAD*     default = justified
    -
    -*Note: ENDNOTE_QUAD must be set to either L or J
    -
    - - - -

    *Endnote point size

    -

    -Macro: ENDNOTE_PT_SIZE <base type size of endnotes> - -

    -Unlike most other control macros that deal with size of document -elements, ENDNOTE_PT_SIZE takes as its argument an -absolute value, relative to nothing. Therefore, the argument represents -the size of endnote type in -points, -unless you append an alternative -unit of measure. -For example, -

    -

    -	.ENDNOTE_PT_SIZE 12
    -
    - -sets the base point size of type on the endnotes page to 12 -points, whereas -

    -

    -	.ENDNOTE_PT_SIZE .6i
    -
    - -sets the base point size of type on the endnotes page to 1/6 of an -inch. -

    -The type size set with ENDNOTE_PT_SIZE is the size of -type used for the text of the endnotes, and forms the basis from which -the point size of other endnote page elements is calculated. -

    -The default for -PRINTSTYLE TYPESET -is 12.5 points (the same default size used in the body of the document). -

    - - - -

    *Endnote lead

    -

    -Macro: ENDNOTE_LEAD <base leading of endnotes> [ ADJUST ] -
    -*Does not require a unit of measure; points is assumed - -

    -Unlike most other control macros that deal with leading of document -elements, ENDNOTE_LEAD takes as its argument an -absolute value, relative to nothing. Therefore, the argument represents -the -leading -of endnotes in -points -unless you append an alternative -unit of measure. -For example, -

    -

    -	.ENDNOTE_LEAD 14
    -
    - -sets the base leading of type on the endnotes page to 14 -points, whereas -

    -

    -	.ENDNOTE_LEAD .5i
    -
    - -sets the base leading of type on the endnotes page to 1/2 inch. -

    -If you want the leading of endnotes adjusted to fill the page, pass -ENDNOTE_LEAD the optional argument -ADJUST. (See -DOC_LEAD_ADJUST -for an explanation of leading adjustment.) -

    -The default for -PRINTSTYLE TYPESET -is 14 points, adjusted. -

    -NOTE: Even if you give mom a -DOC_LEAD_ADJUST OFF command, she will still, by -default, adjust endnote leading. You MUST enter -ENDNOTE_LEAD <lead> with no -ADJUST argument to disable this default behaviour. -

    - - - -

    *Singlespace endnotes (TYPEWRITE only)

    -

    -Macro: SINGLESPACE_ENDNOTES <toggle> - -

    -If your -PRINTSTYLE -is TYPEWRITE and you use TYPEWRITE's default -double-spacing, endnotes are double-spaced. If your document is -single-spaced, endnotes are single-spaced. -

    -If, for some reason, you'd prefer that endnotes be single-spaced -in an otherwise double-spaced document (including double-spaced -collated -documents), invoke SINGLESPACE_ENDNOTES with -no argument. And if, god help you, you want to change endnote -single-spacing back to double-spacing for different spacing of -endnotes output at the ends of separate documents in a collated -document, invoke SINGLESPACE_ENDNOTES with any -argument (OFF, QUIT, Q, X...). -

    - - - -

    *Endnote paragraph indenting

    -

    -Macro: ENDNOTE_PARA_INDENT <amount to indent first line of paragraphs in endnotes> -
    -*Requires a unit of measure - -

    -ENDNOTE_PARA_INDENT works exactly the same way as -PARA_INDENT, -except that the indent given is the amount by which to indent the first -lines of endnote paragraphs, not document body paragraphs. -

    -The default is 1.5 -ems -for -PRINTSTYLE TYPESET; -1/2 inch for -PRINTSTYLE TYPEWRITE. - -

    -NOTE: The first line of the first paragraph of endnotes -(the one attached immediately to the identifying endnote number) is -never indented. Only subsequent paragraphs are affected by -ENDNOTE_PARA_INDENT. -

    - - - -

    *Endnote paragraph spacing

    -

    -Macro: ENDNOTE_PARA_SPACE <toggle> - -

    -ENDNOTE_PARA_SPACE works exactly the same way as -PARA_SPACE, -except that it inserts a blank line between endnote paragraphs, not -document body paragraphs. -

    -The default is not to insert a blank line between paragraphs in -endnotes. -

    -NOTE: Each endnote itself is always separated from any -previous endnote by a line space. ENDNOTE_PARA_SPACE -refers only to paragraphs that appear within each discrete endnote. -

    - - - -

    *Turning off column mode during endnotes output

    -

    -Macro: ENDNOTES_NO_COLUMNS <toggle> - -

    -By default, if your document is -set in columns, -mom sets the endnotes in columns, too. However, -if your document is set in columns and you'd like the endnotes not -to be, just invoke ENDNOTES_NO_COLUMNS with no -argument. The endnotes pages will be set to the full page measure -of your document. -

    -If you output endnotes at the end of each document in a -collated -document set in columns, column mode will automatically -be reinstated for each document, even with -ENDNOTES_NO_COLUMNS turned on. -

    - - - -

    *Endnotes-pages page numbering style

    -

    -Macro: ENDNOTES_PAGENUM_STYLE DIGIT | ROMAN | roman | ALPHA | alpha - -

    -Use this macro to set the page numbering style of endnotes pages. -The arguments are identical to those for -PAGENUM_STYLE. -The default is digit. You may want to change it -to, say, alpha, which you would do with -

    -

    -	.ENDNOTES_PAGENUM_STYLE alpha
    -
    - - - -

    *Setting the first page number of endnotes pages

    -

    -Macro: ENDNOTES_FIRST_PAGENUMBER <page # that appears on page 1 of endnotes> - -

    -Use this macro with caution. If all endnotes for several -collated -documents are to be output at once, i.e. not at the end of each -separate doc, ENDNOTES_FIRST_PAGENUMBER tells -mom what page number to put on the first page of -the endnotes. -

    -If you set ENDNOTES_FIRST_PAGENUMBER in collated -documents where the endnotes are output after each separate doc, -you have to reset every separate document's first page number after -COLLATE -and before -START. -

    - - - -

    *Omitting a page number on the first page of endnotes

    -

    -Macro: ENDNOTES_NO_FIRST_PAGENUM <toggle> - -

    -This macro is for use only if FOOTERS are on. It -tells -ENDNOTES -not to print a page number on the first endnotes page. -Mom's default is to print the page number. -

    - - - -

    *Suspending pagination of endnotes pages

    -

    -Macro: SUSPEND_PAGINATION -
    -Macro: RESTORE_PAGINATION - -

    -SUSPEND_PAGINATION doesn't take an argument. -Invoked immediately prior to -ENDNOTES, -it turns off endnotes pages pagination. Mom -continues, however to increment page numbers silently. -

    -To restore normal document pagination after endnotes, invoke -RESTORE_PAGINATION (again, with no argument) -immediately after ENDNOTES. - -

    2. Endnotes-page header/footer control

    -

    - -If you wish to modify what appears in the header/footer that appears -on endnotes page(s), make the changes before you invoke -ENDNOTES, -not afterwards. -

    -Except in the case of -DOCTYPE CHAPTER, -mom prints the same header or footer used throughout -the document on the endnotes page(s). Chapters get treated differently -in that, by default, mom does not print the -header/footer centre string (normally the chapter number or chapter -title.) In most cases, this is what you want. However, should you -not want mom to remove the centre string from -the endnotes page(s) headers/footers, invoke -ENDNOTES_HEADER_CENTER -with no argument. -

    -An important change you may want to make is to put the word -"Endnotes" in the header/footer centre position. -To do so, do -

    -

    -	.HEADER_CENTER "Endnotes"
    -	           or
    -	.FOOTER_CENTER "Endnotes"
    -
    - -prior to invoking .ENDNOTES. If your -DOCTYPE -is CHAPTER, you must also invoke -ENDNOTES_HEADER_CENTER -for the HEADER_CENTER to appear. -

    - -

    *Endnotes page(s) header/footer centre string

    -

    -Macro: ENDNOTES_HEADER_CENTER toggle - -

    -If your -DOCTYPE -is CHAPTER and you want mom to include -a centre string in the headers/footers that appear on endnotes pages, -invoke ENDNOTES_HEADER_CENTER (or -ENDNOTES_FOOTER_CENTER) with no argument. -Mom's default is NOT to print the centre string. -

    -If, for some reason, having enabled the header/footer centre string -on endnotes pages, you wish to disable it, invoke the same macro -with any argument (OFF, QUIT, Q, X...). -

    - -

    *Allow headers on endnotes-pages

    -

    -Macro: ENDNOTES_ALLOWS_HEADERS <none> | ALL - -

    -By default, if HEADERS are on, mom -prints page headers on all endnotes pages except the first. If you -don't want her to print headers on endnotes pages, do -

    -

    -	.ENDNOTES_ALLOWS_HEADERS OFF
    -
    - -If you want headers on every page including the first, do -

    -

    -	.ENDNOTES_ALLOWS_HEADERS ALL
    -
    - -NOTE: If FOOTERS are on, -mom prints footers on every endnotes page. This is -a style convention. In mom, there is no such beast -as ENDNOTES_ALLOWS_FOOTERS OFF. -

    - -

    3. Endnotes-page first page head (title) control

    - - - -

    *Endnotes-page first page head (title) string

    -

    -Macro: ENDNOTE_STRING "<head to print at the top of endnotes>" - -

    -By default, mom prints the word "ENDNOTES" -as a head at the top of the first page of endnotes. If you want her -to print something else, invoke ENDNOTE_STRING with -the endnotes-page head you want, surrounded by double-quotes. If -you don't want a head at the top of the first endnotes-page, invoke -ENDNOTE_STRING with a blank argument (either two -double-quotes side by side -- "" -- or no argument -at all). -

    - - - -

    *Endnotes-page first page head (title) control

    -

    -See -Arguments to the control macros. -

    -

    -.ENDNOTE_STRING_FAMILY    default = prevailing document family; default is Times Roman
    -.ENDNOTE_STRING_FONT      default = bold
    -.ENDNOTE_STRING_SIZE*     default = +1
    -.ENDNOTE_STRING_QUAD      default = centred
    -
    -*Relative to the size of the endnotes text (set with ENDNOTE_PT_SIZE)
    -
    - - - -

    *Endnotes-page head (title) underscoring

    -

    -Macro: ENDNOTE_STRING_UNDERSCORE toggle | 2 - -

    -Invoked by itself, ENDNOTE_STRING_UNDERSCORE will -underscore the endnotes-page head. Invoked with the argument 2 -(i.e. the digit 2), ENDNOTE_STRING_UNDERSCORE will -double-underscore the head. Invoked with any other argument, the macro -disables underscoring of the head. -

    -Mom's default is to double-underscore the -head, therefore if you want no underscoring, you must insert -.ENDNOTE_STRING_UNDERSCORE OFF (or QUIT, X, NO, -NONE, etc.) into your document prior to outputting endnotes with -ENDNOTES. - - - -

    *Endnotes-page head (title) automatic capitalization

    -

    -Macro: ENDNOTE_STRING_CAPS toggle - -

    -Invoked by itself, ENDNOTE_STRING_CAPS will -automatically capitalize the endnotes-page head. Invoked with any -other argument, the macro disables automatic capitalization of the -head. -

    -If you're generating a table of contents, you may want the -endnotes-pages head string in caps, but the toc entry in caps/lower -case. If the argument to -ENDNOTE_STRING -is in caps/lower case and ENDNOTE_STRING_CAPS is -on, this is exactly what will happen. -

    -Mom's default is to capitalize the endnotes-pages -head string. -

    - - - -

    4. Endnote document-identification title

    -

    *Endnote document-identification title string

    -

    -Macro: ENDNOTE_TITLE "<title to identify a document in endnotes>" - -

    -By default, mom identifies the document(s) to which -endnotes belong by the document title(s) given to the -TITLE -macro. If you'd want her to identify the document(s) another way, -just invoke ENDNOTE_TITLE with the identifying -title you want, surrounded by double-quotes. -

    -If you don't want any identifying title, invoke -ENDNOTE_TITLE with a blank argument (either two -double-quotes side by side -- "" -- or no -argument at all). This is particularly useful if you have a single -(i.e. non-collated) document and find having the document's title -included in the endnotes redundant. -

    - - - -

    *Endnote document-identification title control

    -

    -See -Arguments to the control macros. -

    -

    -.ENDNOTE_TITLE_FAMILY    default = prevailing document family; default is Times Roman
    -.ENDNOTE_TITLE_FONT      default = bold
    -.ENDNOTE_TITLE_SIZE*     default = 0
    -.ENDNOTE_TITLE_QUAD      default = left
    -
    -*Relative to the size of the endnotes text (set with ENDNOTE_PT_SIZE)
    -
    - - - -

    *Endnote document-identification title underscoring

    -

    -Macro: ENDNOTE_TITLE_UNDERSCORE toggle - -

    -Invoked by itself, ENDNOTE_TITLE_UNDERSCORE will -underscore the endnote document-identification title(s). Invoked with any -other argument, the macro disables underscoring of the title(s). -

    -Mom's default is to underscore the document-identification title, therefore if you want no underscoring, you must -insert .ENDNOTE_TITLE_UNDERSCORE OFF (or QUIT, X, NO, -NONE, etc.) into your document prior to outputting endnotes with -ENDNOTES. -

    - - - -

    5. Endnotes-pages endnote numbering style

    - -

    *Endnote marker style

    -

    -The macro to control how endnotes are referenced is -ENDNOTE_MARKER_STYLE. -

    -By default, mom places superscript numbers in -running text -to identify endnotes. However, if you have -line-numbering -turned on, you may instruct mom not to put -superscript numbers in the running text, but rather to reference -endnotes by line number. The command to do this is -

    -

    -	.ENDNOTE_MARKER_STYLE LINE
    -
    - -With ENDNOTE_MARKER_STYLE LINE, mom -will identify endnotes either by single line numbers, or line -ranges. If what you want is a single line number, you need only -invoke .ENDNOTE, without terminating the text -line before it with \c, at the appropriate -place in running text. (Should you wish to revert to -mom's default behaviour of placing a superscript -number in the text to identify an endnote, you can invoke -ENDNOTE_MARKER_STYLE with the argument, -NUMBER. It is not advisable to switch marker -styles within a single document, for aesthetic reasons, but there -is nothing to prevent you from doing so.) -

    -If you want a range of line numbers (e.g. [5-11] ), -insert, directly into the first line of the range you want, the -inline escape, -\*[EN-MARK]. For the terminating line number of -the range, you need only invoke .ENDNOTE, (again, -without attaching \c to the text line before it). -Mom is smart enough to figure out that where -ENDNOTE was invoked represents the terminating -line number. - -

    -Given the impossibility of knowing, in advance, the "string length" -of all the line numbers or ranges of line numbers that will be used -in endnotes (the string length of 12 is two; the string length -of 12-15 is 5), mom cannot "hang" line numbers -and guarantee that they, and the endnote text, will align in a -visually pleasing manner. Consequently, mom sets -the entirety of line-numbered endnotes completely flush left, -including the line numbers themselves. The line -numbers (by default, enclosed in square brackets) are separated from -the beginning of each endnote by a gap, so that a line-numbered -endnote looks approximately like this: -

    -

    -	[1-2]   Notwithstanding, Frye later asserts that Christianity
    -	is "a ghost  with the chains of a foul historical record of
    -	cruelty clanking behind it."
    -
    - -The default gap for PRINTSTYLE TYPESET and -PRINSTYLE TYPEWRITE is 1.5 -ems. -You can change the size of the gap with the macro, -ENDNOTE_LINENUMBER_GAP, which takes, as its single -argument, the size of the gap. The argument requires a -unit of measure, -so, for example, to change the gap to 2 -picas, -you'd do -

    -

    -	.ENDNOTE_LINENUMBER_GAP 2P
    -
    - - -By default, mom puts endnote line numbers inside -square brackets. The style of the brackets may be changed with -the macro, ENDNOTE_LINENUMBER_BRACKETS, which -takes one of three possible arguments: PARENS -("round" brackets), SQUARE (the default) or -BRACES (curly braces). If you prefer a -shortform, the arguments, (, [ or -{ may be used instead. - -

    -If you don't want the numbers enclosed in brackets, you may tell -mom to use a "separator" instead. A common -separator would be the colon, but it can be anything you like. The -macro to do this is ENDNOTE_LINENUMBER_SEPARATOR, -which takes, as its single argument, the separator you want. -(If the argument contains spaces, don't forget to enclose the -argument in double-quotes.) The separator can be composed of -any legal groff character, or any combination of characters. -For example, to get a colon separator after the line number in -line-numbered endnotes, you'd do -

    -

    -	.ENDNOTE_LINENUMBER_SEPARATOR :
    -
    - -

    *Endnote numbering style control

    -

    -See -Arguments to the control macros. -

    -Please note that the control macros for endnote numbering affect only -the numbers that appear on the endnotes pages themselves, not the -endnote numbers that appear in the body of the document(s). -

    -

    -.ENDNOTE_NUMBER_FAMILY    default = prevailing document family; default is Times Roman
    -.ENDNOTE_NUMBER_FONT      default = bold
    -.ENDNOTE_NUMBER_SIZE*     default = 0
    -
    -*Relative to the size of the endnotes text (set with ENDNOTE_PT_SIZE)
    -
    - -

    *Endnote numbering alignment

    -

    -By default, mom hangs the numbers on endnotes pages, -aligned right to two placeholders, producing this: -

    - -

    -	 9. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
    -	    sed diam nonumy eirmod tempor invidunt ut labore et
    -	    dolore magna aliquyam erat, sed diam voluptua.
    -
    -	10. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
    -	    sed diam nonumy eirmod tempor invidunt ut labore et
    -	    dolore magna aliquyam erat, sed diam voluptua.
    -
    - -The macros to alter this behaviour are -
    - -
    -
    - - - -

    - - Macro: ENDNOTE_NUMBERS_ALIGN_RIGHT <number of placeholders> - -

    -ENDNOTE_NUMBERS_ALIGN_RIGHT takes one (non-optional) -argument: the number of placeholders to reserve for right alignment of -endnote numbers. -

    -For example, if you have fewer than ten endnotes, you might want to do -

    -

    -	.ENDNOTE_NUMBERS_ALIGN_RIGHT 1
    -
    - -which would ensure that the endnote numbers hang, but are all flush -with the page's left margin. If, god help you, you have over a hundred -endnotes, you'd want to do -

    -

    -	.ENDNOTE_NUMBERS_ALIGN_RIGHT 3
    -
    - -to ensure that the numbers hang and are properly right-aligned. -

    - -


    - - - -

    - - Macro: ENDNOTE_NUMBERS_ALIGN_LEFT - -

    -If you don't want the endnote numbers to hang and right-align, invoke -ENDNOTE_NUMBERS_ALIGN_LEFT, which doesn't require any -argument. This disables hanging and right-alignment of endnote numbers, -so that the example -above -comes out like this: -

    -

    -	9. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
    -	sed diam nonumy eirmod tempor invidunt ut labore et
    -	dolore magna aliquyam erat, sed diam voluptua.
    -
    -	10. Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
    -	sed diam nonumy eirmod tempor invidunt ut labore et
    -	dolore magna aliquyam erat, sed diam voluptua.
    -
    -
    - - - -

    Margin notes

    - - -

    -Margin notes are short annotations that appear in either the left -or right margin of a document. Sometimes they comment on the text. -Sometimes they assist in following the "flow" of a document by -summarizing the subject of a portion of text. Sometimes they're -comments to yourself in a draft copy. -

    -The margin notes macros and routines in om.tmac -(mom) are "mommified" versions of the margin notes -macros and routines written by Werner Lemberg and patched by Gaius -Mulley. -

    - -Margin notes behaviour -

    -First things first: before you enter your first margin note, you -must "initialize" margin notes with -MN_INIT. -MN_INIT sets up the style parameters for margin -notes, including things like -font, -family -and -leading. -

    -After initializing margin notes, you create margin notes with the -MN -macro. Based on the argument you pass MN, your -margin note will go in either the left or the right margin. -

    -Margin notes are tricky from a typographic standpoint with respect -to vertical placement. Since the leading of margin notes may -differ from that of -running text, -it's impossible for mom to guess whether to align -the first lines of margin notes with a document -baseline, -whether to align the last lines of margin notes with a document -baseline, or whether to center them, vertically, so that neither -first nor last line aligns with anything! -

    -Given this difficulty, mom always aligns the first -line of any margin note with a document baseline. If you want a -different behaviour, you must adjust the position(s) of margin -notes yourself, on a note by note basis. (See -Adjusting the vertical position of margin notes.) -

    -Generally speaking, mom tries to place margin -notes at the point where you invoke the tag, -MN. -However, in the event that a margin note runs deep, she may not -be able to place a subsequent margin note exactly where you want. -In such an instance, mom will "shift" the margin -note down on the page, placing it one (margin note) -linespace beneath the previous margin note (plus whatever vertical -space is required to get the first line to line up with a baseline -of running text). A warning will be issued, letting you know this -has happened, and where. -

    -Sometimes, if a margin note has to be shifted down, there simply -isn't enough room to start the margin note on the page on which -MN is invoked. In that case, mom -ignores the margin note entirely and issues a warning, letting you -know what she's done, and where. -

    -In the event that a margin note, sucessfully begun on a page, -runs past your bottom margin (or the last line before footnotes -begin), the margin note will "flow" onto the next page. If it is a -"left" margin note, it will continue in the left margin. If it is a -"right" margin note, it will continue in the right margin. -

    -If your document is being set in two columns, mom -will sensibly and automatically set all margin notes pertaining -to the left column in the left margin, and all margin notes -pertaining to the right column in the right margin, regardless of -the "direction" argument you give the MN tag. If -you try to use MN in documents of more than two -columns, mom will ignore all margin notes, and -issue warning for each. -

    -

    Adjusting the vertical position of margin notes

    -

    -When the -leading -of margin notes differs from the leading used throughout a document, -you may want to adjust the vertical position of individual margin -notes. This is most often going to be the case with margin notes -that end near the bottom of the page, where you want the last line of -the margin note to line up with the last line of text on the page. -

    -Adjustments to the vertical position of margin notes must be done -inside the margin note (i.e. after MN), at the -top, before entering text. The commands to use are -\!.ALD -(to lower the margin note), and -\!.RLD -(to raise it). The \! must precede the -macros, or they won't have any effect. - -

    -


    - - - -

    - - Macro: MN_INIT [ ragged | symmetric ] < left-width right-width gutter family+font point-size lead colour hyphenation-flags > - -

    -Before you enter your first margin note, you must initialize -all the parameters associated with margin notes with -MN_INIT. If you forget to do so, -mom will issue a warning and abort. -

    -The argument list is quite long; an -explanation of each argument follows. Any argument whose value you -want to be the default must be entered as "" (i.e. two -double-quotes with no space between them). Defaults for each -argument are given in the explanation below. -

    -[ ragged | symmetric ] -
    -If the first argument is "ragged", both left and right margin notes -will be flush left. If the first argument is "symmetric", left -margin notes will be set flush right, and right margin -notes will be set flush left. The effect is something -like this: -

    -

    -	     A left    This is a meaningless batch        A right
    -	margin note    of text whose sole purpose is      margin note
    -	  with just    to demonstrate how the sym-        with just
    -	a few words    metric argument to MN sets left    a few words
    -	     in it.    and right margin notes.            in it.
    -
    - - -If the argument is omitted, -or given as "", both left and right margin notes will be set -justified. (Justified is usually not a good idea, since the narrow -measure of margin notes makes pleasing justification a near -impossibility.) -

    -left-width -
    -The width of left margin notes. A -unit of measure -must be appended directly onto the argument. The default is to set -left margin notes right out to the edge of the page, which is -almost certainly not what you want, so you should give a value for -this argument if using left margin notes. -

    -right-width -
    -The width of right margin notes. A -unit of measure -must be appended directly onto the argument. The default is to set -right margin notes right out to the edge of the page, which is -almost certainly not what you want, so you should give a value for -this argument if using right margin notes. -

    -gutter -
    -The -gutter -between margin notes and -running text. -A -unit of measure -must be appended directly onto the argument. The gutter applies to -both left and right margin notes. The default is 1 -em. -

    -font -
    -The family+font for margin notes. Yes, that's right: the family -PLUS font combo. For example, if you want Times Roman Medium, -the argument must be TR. If you want Palatino Medium Italic, the -argument must be PI. The default is the same family+font combo used -for a document's paragraph text. -

    -lead -
    -The -leading -of margin notes. lead uses -points -as its unit of measure, so don't tack a unit of measure onto the -end of the argument. The default lead is the same leading as -is used for paragraph text (i.e. the document's base leading). -For convenience and clarity, you may also give the word, -DOC, to this argument, which indicates that the -leading should be the same as the document's base leading. -

    -colour -
    -The colour of margin notes. The colour must be pre-initialized -with -NEWCOLOR -or -XCOLOR. -The default is black. -

    -hyphenation-flags -
    -A number telling groff how you want margin notes -hyphenated. -

    -

    -	1 = hyphenate without restrictions
    -	2 = do not hyphenate the last word on the page
    -	4 = do not hyphenate the last two characters of a word
    -	8 = do not hyphenate the first two characters of a word
    -
    - -The values can be added together, so, for example, if you want -neither the first two nor the last two characters of words -hyphenated, the hyphenation-flag would be 12. The default value is -14 (i.e. 2+4+8). - -

    -


    - - - -

    - - Macro: MN LEFT|RIGHT | <anything> - -

    -Once you've initialized margin notes with -MN_INIT, -you can enter margin notes any time you like with -MN. An argument of LEFT will set -a left margin note. An argument of RIGHT will set -a right margin note. -

    -Any argument, such as OFF (or -QUIT, END, X, -etc) exits the current margin note. - -

    -


    - - - -

    Inserting a blank page into the document

    -

    - - Macro: BLANKPAGE <# of blank pages to insert> - - -

    -This one does exactly what you'd expect -- inserts a blank page into -the document. Mom silently increments the page -number of every blank page and keeps track of -recto/verso -stuff, but otherwise, does nothing. It's up to you, the user, to -figure out what to do with this feature. However, it's worth -noting that without it, inserting completely blank pages, to use -a vernacular Québécois phrase, "c'est pas évident" -(somewhere between "isn't easy", "isn't -obvious" and "isn't fun"). -

    -The argument to BLANK_PAGE is the number of blank -pages to insert. The argument is not optional, hence even if you -only want one blank page, you have to tell mom: -

    -

    -	.BLANKPAGE 1
    -
    - -

    Terminate document processing

    - - -

    -The use of FINIS is optional. If you invoke it -(at the end of a document before -TOC -or -ENDNOTES), -mom -deposits the word END, centred after a blank line, beneath the last -line of the document. END is enclosed between -em-dashes. -

    -Please note that in versions of -mom prior to 1.1.9, FINIS used to -turn off -footers -(if they were on) and page numbering (if page numbers were at the -bottom of the page). Damned if I can recall why I thought anyone -would want this behaviour, but it has been removed. -

    -If you're writing in a language other than English, you can -change what mom prints for END with -the control macro FINIS_STRING. -

    -


    - - - -

    Table of contents

    - - -

    -Want a table of contents for your document? Easy. Just enter -

    -

    -	.TOC
    -
    - -as the very last macro of your document file. Mom -will have picked up all document titles (in -collated -documents), all heads, subheads, and paragraph heads, as well as any -endnotes pages that have been output, and assigned them the -appropriate page number (and page numbering style). Talk about a -no-brainer! - -That said, tables of contents (tocs) have even more control macros -than endnotes. As always, the reason for so many control macros is -so that if you want to change just about any aspect of the toc's -typographic appearance, you can. Mom is all about -simplicity AND flexibility. -

    - -

    TOC behaviour

    -

    -When you output a toc (with -TOC), -mom finishes processing the last page of your document, -then breaks to a new page for printing the toc. -

    -Mom follows standard typesetting conventions for -tables of contents. To this end, if -HEADERS -are on for the document, the first page of the toc has no page -header, but does have a first page (roman numeral) number, always -"1", in the bottom margin. If -FOOTERS -are on for the document, the first page has neither a footer, nor a -page number in the top margin. (If you absolutely must have a page -footer on the first page of the toc, simply invoke -FOOTER_ON_FIRST_PAGE -immediately before TOC.) Subsequent toc pages have -both page headers or footers and a page number. -

    -Entries in the toc are hierarchically indented, as you would -expect. By default, each type of entry (e.g. a head or a subhead) -is set in a different font as well. If any of heads, subheads or -paragraph heads are numbered in the body of the document, they are -also numbered in the toc. Head numbering in the toc is NOT -concatenated as it is in the body of the document, which would be -visually redundant in a toc. -

    -Tocs are never set in columns, regardless of whether the rest of -the document is. Lastly, if -recto/verso -printing is enabled, the toc respects it. This sometimes leads to -tocs that begin with the wrong margins, but the margins can be -corrected either by outputting a -BLANKPAGE -or by using the toc control macro -TOC_RV_SWITCH. -

    -The overall toc -family, -point size -and -lead -can be altered with the toc -control macros, -as can the family, -font, -point size and indent of each type of toc entry (i.e. title, head, -subhead, paragraph head). Furthermore, the page numbering style -can be changed, as can the amount of visual space reserved for toc -entry page numbers. -

    - - - -


    -

    -Macro: TOC - -

    -If you want a toc, just put TOC as the last macro -in a document. Mom takes care of the rest. -

    -


    - -

    TOC control macros

    -

    -Toc entries are not actually processed when mom -collects them, so you can put any toc control macros anywhere you -like in your document. Some may prefer to place them at the top of -the file. Others may prefer to place them just before outputting -the toc. The choice is yours. -
    -

      -
    1. General toc page style control - -
    2. Toc page numbering - -
    3. Changing the toc header (title), string and style - -
    4. Changing the style for toc entries - -
    5. Additional toc control macros - -
    -
    - -

    1. General toc page style control

    - -

    *Toc family

    -

    -See -Arguments to the control macros. -

    -Set the family of toc pages with TOC_FAMILY, which -establishes the default family for every element of a toc page, -including the toc title ("Contents") and the page number -in the top or bottom margin. The default is the prevailing document -family. -

    -All elements on a toc page also have their own _FAMILY -control macros, which override the default set by -TOC_FAMILY. -

    - - - -

    *Toc point size

    -

    -Macro: TOC_PT_SIZE <base type size of the toc> - -

    -Unlike most other control macros that deal with size of document -elements, TOC_PT_SIZE takes as its argument an -absolute value, relative to nothing. Therefore, the argument -represents the size of toc type in -points, -unless you append an alternative -unit of measure. -For example, -

    -

    -	.TOC_PT_SIZE 12
    -
    - -sets the base point size of type for the toc to 12 points, whereas -

    -

    -	.TOC_PT_SIZE .6i
    -
    - -sets the base point size of type for the toc to 1/6 of an inch. -

    -The type size set with TOC_PT_SIZE forms the basis -from which the point size of other toc page elements are calculated. -

    -The default for -PRINTSTYLE TYPESET -is 12.5 points (the same default size used in the body of the -document). -

    - - - -

    *Toc lead

    -

    -Macro: TOC_LEAD <leading of the toc> [ ADJUST ] -
    -*Does not require a unit of measure; points is assumed - -

    -Unlike most other control macros that deal with leading of document -elements, TOC_LEAD takes as its argument an -absolute value, relative to nothing. Therefore, the argument -represents the -leading -of tocs in -points -unless you append an alternative -unit of measure. -For example, -

    -

    -	.TOC_LEAD 14
    -
    - -sets the base leading of type on the endnotes page to 14 -points, whereas -

    -

    -	.TOC_LEAD .5i
    -
    - -sets the base leading of type on the endnotes page to 1/2 inch. -

    -If you want the leading of toc pages adjusted to fill the -page, pass TOC_LEAD the optional argument -ADJUST. (See -DOC_LEAD_ADJUST -for an explanation of leading adjustment.) -

    -The default for -PRINTSTYLE TYPESET -is the prevailing document lead (16 by default), adjusted. -

    -NOTE: Even if you give mom a -DOC_LEAD_ADJUST OFF command, she will still, by -default, adjust toc leading. You MUST enter -TOC_LEAD <lead> with no -ADJUST argument to disable this default behaviour. -

    -ADDITIONAL NOTE: Tocs are always double-spaced in -PRINTSTYLE TYPEWRITE, regardless of whether the -body of the document is single-spaced. - -

    2. Toc page numbering

    -

    -The page numbering of toc pages is controlled by the same macros -that control -document page numbering, -except -PAGENUM -(tocs always start on page 1). The defaults are the same as the -rest of the document. -

    -If you wish to change some aspect of toc pagination, use the -document pagination control macros immediately prior to -.TOC. -

    -A special macro, -TOC_PAGENUM_STYLE -controls the style of toc pages page numbers. -

    - -


    - - - -

    - - Macro: PAGINATE_TOC <toggle> - -

    -By default, mom paginates the toc. If you'd like -her not to, do -

    -

    -	.PAGINATE_TOC OFF
    -
    - -NOTE: Simply invoking PAGINATION -OFF or PAGINATE OFF disables toc -pagination for the first toc page only. You MUST use -.PAGINATE_TOC OFF to disable toc pagination, even -if pagination is turned off elsewhere in your document. -

    - -


    -

    - - - - - Macro: TOC_PAGENUM_STYLE <DIGIT | ROMAN | roman | ALPHA | alpha> - -

    -By default, mom uses roman numerals to number -toc pages. Use TOC_PAGENUM_STYLE if you'd prefer -something else. For example, to have standard digits instead of -roman numerals, do the following: -

    -

    -	.TOC_PAGENUM_STYLE DIGIT
    -
    - -
    - -

    3. Changing the toc header (title) string and style

    -

    -The toc header string is the title that appears at to top of the -toc. By default, it's "Contents". If you'd like -something else, say, "Table of Contents", do -

    - -

    -	.TOC_HEADER_STRING "Table of Contents"
    -
    - - -The style of the toc header (title) is managed by the usual control -macros (see -arguments to the control macros). -

    -

    -	.TOC_HEADER_FAMILY  default = prevailing doc family (Times Roman in TYPEWRITE)
    -	.TOC_HEADER_FONT    default = bold
    -	.TOC_HEADER_SIZE    default = +4
    -	.TOC_HEADER_QUAD    default = left
    -
    - -

    4. Changing the style for toc entries

    -

    -"Toc entries" refers to titles, heads, subheads and -paragraph heads as they appear in the toc. Their style is managed -by the usual -control macros, -starting with TOC_ -

    - -

    The toc _INDENT control macros

    -

    -The toc control macros that end in _INDENT all take a single -argument that requires a -unit of measure. -The argument is the distance to indent the entry, always measured -from the left margin. For example, -

    -

    -	.TOC_HEAD_INDENT 2P
    -
    - -indents head entries 2 -picas -from the left margin. -

    - -

    *Changing the style for toc title entries

    -

    -(See -arguments to the control macros). -

    -Toc title entries are the titles of documents that have been -collated -together. -

    -

    -	.TOC_TITLE_FAMILY  default = prevailing doc family (Times Roman in TYPEWRITE)
    -	.TOC_TITLE_FONT    default = bold italic
    -	.TOC_TITLE_SIZE    default = +0
    -	.TOC_TITLE_INDENT  default = 0 for TYPESET and TYPEWRITE
    -
    - -

    *Changing the style for toc head entries

    -

    -(See -arguments to the control macros). -

    -Toc head entries are main heads that appear in the body of a -document. -

    -

    -	.TOC_HEAD_FAMILY  default = prevailing doc family (Times Roman in TYPEWRITE)
    -	.TOC_HEAD_FONT    default = bold
    -	.TOC_HEAD_SIZE    default = +.5
    -	.TOC_HEAD_INDENT  default = 18p for TYPESET; 2m for TYPEWRITE
    -
    - -

    *Changing the style for toc subhead entries

    -

    -(See -arguments to the control macros). -

    -Toc subhead entries are subheads that appear in the body of a -document. -

    -

    -	.TOC_SUBHEAD_FAMILY  default = prevailing doc family (Times Roman in TYPEWRITE)
    -	.TOC_SUBHEAD_FONT    default = roman
    -	.TOC_SUBHEAD_SIZE    default = +0
    -	.TOC_SUBHEAD_INDENT  default = 30p for TYPESET; 4m for TYPEWRITE
    -
    - -

    *Changing the style for toc paragraph head entries

    -

    -(See -arguments to the control macros). -

    -Toc paragraph head entries are paragraph heads that appear in the -body of a document. -

    -

    -	.TOC_PARAHEAD_FAMILY  default = prevailing doc family (Times Roman in TYPEWRITE)
    -	.TOC_PARAHEAD_FONT    default = italic
    -	.TOC_PARAHEAD_SIZE    default = +0
    -	.TOC_PARAHEAD_INDENT  default = 42p for TYPESET; 6m for TYPEWRITE
    -
    - -

    *Changing the style for toc paragraph page number listings

    -

    -(See -arguments to the control macros). -

    -Toc paragraph head entries are paragraph heads that appear in the -body of a document. -

    -

    -	.TOC_PN_FAMILY  default = prevailing doc family (Times Roman in TYPEWRITE)
    -	.TOC_PN_FONT    default = roman
    -	.TOC_PN_SIZE    default = +0
    -
    - -

    5. Additional toc macros

    -

    -The following macros allow you to switch page margins should -they be incorrect for recto/verso printing, to establish how -many placeholders to leave for page listings, and to have -mom append author(s) to toc title entries. -

    - -


    - - - -

    - - Macro: TOC_RV_SWITCH - -

    -TOC_RV_SWITCH doesn't take an argument. It simply -instructs mom to switch the left and right margins -of -recto/verso -documents should the toc happen to begin on an even page when you -want an odd, or vice versa. -

    -The same result can be accomplished by outputting a -BLANKPAGE. -

    - -


    - - - -

    - - Macro: TOC_TITLE_ENTRY <"alternate wording for a title entry in the toc"> - -

    -In -collated -documents, the title of each separate document appears in the table -of contents. It may sometimes happen that you don't want the title -as it appears in the toc to be the same as what appears in -the -docheader. -You might, for example, want to shorten it. Or, in the case of -chapters where the docheader contains both a chapter number and a -chapter title, like this -

    -

    -	           Chapter 6
    -	Burning Bush -- Maybe God Was Right
    -
    - -you might want only the chapter title, not the chapter number, to -show up in the toc. (By default, TOC generates -both.) -

    -If you want to change the wording of a title entry in the toc, -simply invoke TOC_TITLE_ENTRY with the desired -wording, enclosed in double-quotes. Using the example, above, -

    -

    -	.CHAPTER 6
    -	.CHAPTER_TITLE "Burning Bush -- Maybe God Was Right"
    -	.TOC_TITLE_ENTRY "Burning Bush"
    -	.DOCTYPE CHAPTER
    -
    - -would identify chapter 6 in the toc simply as "Burning -Bush". - -

    - -


    - - - -

    - - Macro: TOC_APPENDS_AUTHOR <none> | <"name(s) of authors"> - -

    -In certain kinds of collated documents, different authors are -responsible for the articles or stories contained within them. In -such documents, you may wish to have the author or authors -appended to the toc's title entry for each story or article. -

    -If you invoke TOC_APPENDS_AUTHOR with no argument, -mom appends the first argument you passed to -AUTHOR -to toc title entries, separated by a front-slash. -

    -If you invoke TOC_APPENDS_AUTHOR with an argument -(surrounded by double-quotes), mom will append it -to the toc title entries instead. This is useful if you have -multiple authors you wish to identify by last name only. For -example, if three authors--Joe Blough, Jane Doe, and John -Deere--are responsible for a single article -

    -

    -	.TOC_APPENDS_AUTHOR "Blough et al."
    -
    - -would be a good way to identify them in the toc. -

    - -


    - - - -

    - - Macro: TOC_PADDING <# of placeholders to allow for page number listings> - -

    -By default, mom allows room for 3 digits in the -page number listings of tocs. If you'd like some other number of -placeholders, say 2, do -

    -

    -	.TOC_PADDING 2
    -
    - - - -
    -

    - - Macro: FINIS - - -

    -The use of FINIS is optional, but if you use -it, it should be the last macro you invoke in a document (before -ENDNOTES -or -TOC). -See -above -for a description of how FINIS behaves. -

    -NOTE: If you don't use FINIS, -and you don't want -footers -(if they're on) or a page number at the bottom of the last page of -a document, you have to turn them off manually, as the last two -lines of your document file, like this: -

    -

    -	.FOOTERS OFF
    -	.PAGINATE OFF
    -
    - -

    Changing the FINIS string

    - -

    -By default, FINIS prints the word -END between -em-dashes. -If you'd like mom to print something else -between the dashes, use the FINIS_STRING macro -(anywhere in the document prior to FINIS). -

    -For example, if your document's in French, you'd do -

    -

    -	.FINIS_STRING "FIN"
    -
    - -Double-quotes must enclose the macro's argument. -

    -NOTE: If you pass FINIS_STRING -a blank string, i.e. -

    -

    -	.FINIS_STRING ""
    -
    - -mom will still print the em-dashes if you -invoke FINIS. This, in effect, produces a -short, centred horizontal rule that terminates the document. -(In -PRINTSTYLE TYPEWRITE, -it's a short, dashed line composed of four hyphens.) - -

    Changing the FINIS colour

    -

    -Invoking FINIS_COLOR with a pre-defined (or -"initalized") color changes the colour of both the FINIS -string and the em-dashes that surround it. If you use the -inline escape, -\*[<colorname>], -in the argument passed to FINIS, only the text -will be in the new colour; the em-dashes will be in the default -document colour (usually black). - -

    -


    -Next   -Prev   -Top   -Back to Table of Contents - - diff --git a/src/contrib/mom/momdoc/docprocessing.html b/src/contrib/mom/momdoc/docprocessing.html deleted file mode 100644 index 862d560..0000000 --- a/src/contrib/mom/momdoc/docprocessing.html +++ /dev/null @@ -1,2484 +0,0 @@ - - - - -Mom -- Document Processing, Introduction and Setup - - - - - -Next   -Prev   -Back to Table of Contents -

    - - -

    DOCUMENT PROCESSING WITH MOM

    - -Introduction to document processing -
    -Some document defaults -
    -* IMPORTANT NOTE on leading/spacing and bottom margins * -
    -The SHIM macro -
    -

    Table of Contents for document processing

    - -
    -
    - -

    Introduction to document processing

    - -As explained in -Document processing with mom, -document processing uses markup tags to identify document elements -such as heads, paragraphs, and so on. The tags are, of course, macros, -but with sensible, readable names that make them easy to grasp and -easy to remember. (And don't forget: if you don't like the -"official" name of a tag -- too long, cumbersome -to type in, not "intuitive" enough -- you can change it -with the -ALIAS -macro.) -

    -In addition to the tags themselves, mom has an -extensive array of macros that control how they look and behave. -

    -Setting up a mom doc is a simple, four-part procedure. -You begin by entering information about the document itself (title, -subtitle, author, etc.). Next, you tell mom what -kind of document you're creating (e.g. chapter, letter, abstract, -etc...) and what kind of output you want (typeset, typewritten, -draft-style, etc). Thirdly, you make as many or as few changes to -mom's default behaviour as you wish. Lastly, you -invoke the -START -macro. Voilà! You're ready to write. -

    -


    - - -

    Some document defaults

    - -As is to be expected, mom has defaults for everything. -If you want to know a particular default, read about it in the -description of the pertinent tag. -

    -I fear the following may not be adequately covered in the -documentation. Just in case, here they are. -

    -

      -
    • the paper size is 8.5x11 inches -
    • the left and right margins are 1-inch -
    • the top and bottom margins for document text are plus/minus - visually 1-inch -
    • pages are numbered; the number appears centred, at the - bottom, surrounded by hyphens ( e.g. -6- ) -
    • the first page of a document begins with a - document header -
    • subsequent pages have - page headers - with a rule underneath -
    -

    -Another way to check up on document processing defaults is to have -a look at the macro file (om.tmac). Each macro is preceded by a -description that (generally) says what its default is (if it has -one). -

    -


    - - -

    IMPORTANT NOTE on leading/spacing and bottom margins

    -
    - -Mom takes evenly-aligned bottom margins in -running text -very seriously. Only under a very few (exceptional) circumstances -will she allow a bottom margin to "hang" (i.e. to fall -short). -

    -In order to ensure even bottom margins, mom -uses the "base" document -leading -in effect at the start of running text on each page (i.e. -the leading used in paragraphs) to calculate the spacing of every -document element. Prior to invoking -START, -this is set with the -typesetting macro -LS, -afterwards with the document -control macro -DOC_LEAD. -

    -Because mom relies so heavily on the base document -leading, any change to the leading or spacing on a page will almost -certainly have undesirable consequences on that page's bottom margin -unless the change is fully compensated for elsewhere on the page. -

    -In other words, if you add a few points of space somewhere on a page, -you must subtract the same number of points somewhere else on that -same page, and vice versa. -

    -If it's a question of adding or subtracting full line spaces between -or within document elements, you can do so by using the "v" -unit of measure -with whatever spacing macro you choose -- -ALD, -RLD, -SPACE --- and mom won't object. "v" means -"the current leading", so she isn't confused by it. And -since "v" accepts decimal fractions, you can add/subtract -half linespaces and quarter linespaces with "v" as well, -provided you compensate for the fractional linespace somewhere -else on the page. -

    -If all this seems like too much work, mom -provides a special macro to get you out of trouble if you've played -around with leading and/or spacing. The macro is called -SHIM (like those little pieces of wood carpenters -use to get their work even, level and snug), and it's described -below. -

    - - - -


    -

    - -Macro: SHIM - -

    -SHIM doesn't take any argument. Use it whenever -you've played around with the -leading -or spacing on a page and you -need to get mom's document leading back on track. -

    -For example, say you want to insert a picture into a document with -the special groff macro, PSPIC (see the -groff_tmac man page for usage). -

    -Pictures aren't usually conveniently sized in multiples of document -leading, which means that when you insert the picture, you disrupt -mom's ordered placement of baselines on the page. -This will certainly result in a bottom margin that doesn't match the -bottom margins of your document's other pages. -

    -The solution is to insert SHIM after the picture, -like this: -

    -

    -	<some lines of text>
    -	.PSPIC <full path to picture>
    -	.SHIM
    -	<more lines of text>
    -
    -SHIM instructs mom to insert as -much or a little space after the picture as is needed to ensure that -the baseline of the next -output line -falls where mom would have put it had you not -disrupted the normal flow of output lines with the picture. -

    -And say, on previewing the above example, you find that the picture -doesn't centre nicely between the lines of text, you can always do -

    -

    -	<some lines of text>
    -	.RLD 3p
    -	.PSPIC <full path to picture>
    -	.SHIM
    -	<more lines of text>
    -
    - -to raise the picture slightly -(Reverse LeaD -3 points; see -RLD), -and still have SHIM ensure that text underneath -falls exactly where it's supposed to. -

    -


    - -

    Document setup

    -

    - -

    Tutorial -- Setting up a mom document

    - -There are four "parts" to setting up a mom -doc (three, actually, with one optional). Before we proceed, though, -be reassured that something as simple as -

    -

    -	.TITLE     "By the Shores of Lake Attica"
    -	.AUTHOR    "Rosemary Winspeare"
    -	.PRINTSTYLE TYPESET
    -	.START
    -
    - -produces a beautifully typeset 8.5x11 document, with a -docheader -at the top of page 1, -page headers -with the title and author on subsequent -pages, and page numbers at the bottom of each page. In the course -of the document, heads, subheads, citations, quotes, epigraphs, -and so on, all come out looking neat, trim, and professional. -

    -For the purposes of this tutorial, we're going to set up a short -story -- My Pulitzer Winner by Joe Blow. Thankfully, -we don't have to look at story itself, just the setup. -Joe wants the document -

    -

      -
    • to be draft 7, revision 39; -
    • to use the "default" style of document formatting: -
    • to print as draft-style output (instead of "final" copy output); -
    • to be typeset, in Helvetica, 12 on 14, - rag-right; -
    • to have footers - instead of - headers; -
    • to use a single asterisk for - author linebreaks. -
    -

    -Joe Blow has no taste in typography. His draft won't look pretty, -but this is, after all, a tutorial; we're after examples, not beauty. -

    Step 1

    - -The first step in setting up any document is giving mom -some reference information. The reference macros are: -

    -

      -
    • TITLE -
    • DOCTITLE -
    • COVERTITLE -
    • SUBTITLE -
    • AUTHOR -
    • CHAPTER -- the chapter number -
    • DRAFT -- the draft number -
    • REVISION -- the revision number -
    • COPYRIGHT -- only used on cover pages -
    • MISC -- only used on cover pages -
    • COVER_TITLE -- only on cover pages; only if needed -
    • DOC_COVER_TITLE -- only on document cover pages; only if needed -
    -

    -You can use as many or as few as you wish, although at a minimum, -you'll probably fill in TITLE (unless the document's -a letter) and AUTHOR. Order doesn't matter. -You can separate the -arguments -from the macros by any number of spaces. The following are -what you'd need to start Joe Blow's story. -

    -

    -	.TITLE    "My Pulitzer Winner"
    -	.AUTHOR   "Joe Blow"
    -	.DRAFT     7
    -	.REVISION  39
    -
    - -

    Step 2

    - -Once you've given mom the reference information she -needs, you tell her how you want your document formatted. What kind -of document is it? Should it be typeset or typewritten? Is this -a "final" copy (for the world to see) or just a draft? -Mom calls the macros that answer these questions -"the docstyle macros." They are: -

    -

      -
    • DOCTYPE -- the type of document (default, chapter, user-defined, letter) -
    • PRINTSTYLE -- typeset or typewritten -
    • COPYSTYLE -- draft or final copy -
    -

    -Mom has defaults for DOCTYPE -and COPYSTYLE; if they're what you want, you -don't need to include them here. However, PRINTSTYLE -has no default and MUST be present in every formatted document. -If you omit it, mom won't process the document AND -she'll complain (both to stderr and as a single printed sheet with -a warning). Moms -- they can be so annoying sometimes. <sigh> -

    -Adding to what we already have, the next bit of setup for Joe -Blow's story looks like this: -

    -

    -	.TITLE    "My Pulitzer Winner"
    -	.AUTHOR   "Joe Blow"
    -	.DRAFT     7
    -	.REVISION  39
    -	\#
    -	.DOCTYPE     DEFAULT \"Superfluous; mom uses DOCTYPE DEFAULT by default
    -	.PRINTSTYLE  TYPESET
    -	.COPYSTYLE   DRAFT
    -
    - -Notice the use of the -comment line -( \# ), a handy way to keep groups of macros visually separated -for easy reading in a text editor. - -

    Step 3

    - -This step -- completely optional -- is where you, the user, take -charge. Mom has defaults for everything, -but who's ever satisfied with defaults? Use any of the typesetting macros -here to change mom's document defaults (paper -size, margins, family, point size, line space, rag, etc), or -any of the document processing macros that set/change/control -the appearance of document elements. Think of this as the -"style-sheet " section of a document. And please note: -you MUST give mom a -PRINTSTYLE -directive before making any such changes. -

    -Joe Blow wants his story printed in Helvetica, 12 on 14, rag -right, with -page footers -instead of -page headers -and a single asterisk for the -linebreak -character. None of these requirements conforms -to mom's defaults for the chosen -PRINTSTYLE (TYPESET), so we change them here. -The setup for Joe Blow's story now looks like this: -

    -

    -	.TITLE    "My Pulitzer Winner"
    -	.AUTHOR   "Joe Blow"
    -	.DRAFT     7
    -	.REVISION  39
    -	\#
    -	.DOCTYPE     DEFAULT
    -	.PRINTSTYLE  TYPESET
    -	.COPYSTYLE   DRAFT
    -	\#
    -	.FAMILY  H
    -	.PT_SIZE 12
    -	.LS      14
    -	.QUAD    LEFT    \"i.e. rag right
    -	.FOOTERS
    -	.LINEBREAK_CHAR *
    -
    - -

    Step 4

    -The final step in setting up a document is telling mom -to start document processing. It's a no-brainer, just the single macro -START. Other than PRINTSTYLE, it's -the only macro required for document processing (although -I can't guarantee you'll like the results of using just the two). -

    -Here's the complete setup for My Pulitzer Winner: -

    -

    -	.TITLE    "My Pulitzer Winner"
    -	.AUTHOR   "Joe Blow"
    -	.DRAFT     7
    -	.REVISION  39
    -	\#
    -	.DOCTYPE     DEFAULT
    -	.PRINTSTYLE  TYPESET
    -	.COPYSTYLE   DRAFT
    -	\#
    -	.FAMILY   H
    -	.PT_SIZE  12
    -	.LS       14
    -	.QUAD     LEFT    \"i.e. rag right
    -	.FOOTERS
    -	.LINEBREAK_CHAR *
    -	\#
    -	.START
    -
    - -As pointed out earlier, Joe Blow is no typographer. Given that all he -needs is a printed draft of his work, a simpler setup would have been: -

    -

    -	.TITLE    "My Pulitzer Winner"
    -	.AUTHOR   "Joe Blow"
    -	.DRAFT     7
    -	.REVISION  39
    -	\#
    -	.PRINTSTYLE  TYPEWRITE
    -	.COPYSTYLE   DRAFT
    -	\#
    -	.START
    -
    - -.PRINTSTYLE TYPEWRITE, above, means that Joe's work -will come out "typewritten, double-spaced", making the -blue-pencilling he (or someone else) is sure to do much -easier (which is why many publishers and agents still insist on -typewritten, double-spaced copy). -

    -When J. Blow stops re-writing and decides to print off a final, -typeset copy of his work for the world to see, he need only -make two changes to the (simplified) setup: -

    -

    -	.TITLE    "My Pulitzer Winner"
    -	.AUTHOR   "Joe Blow"
    -	.DRAFT     7
    -	.REVISION  39
    -	\#
    -	.PRINTSTYLE  TYPESET  \"first change
    -	.COPYSTYLE   FINAL    \"second change
    -	\#
    -	.START
    -
    - -In the above, .DRAFT 7, .REVISION 39, and .COPYSTYLE -FINAL are actually superfluous. The draft and revision numbers -aren't used when COPYSTYLE is FINAL, -and COPYSTYLE FINAL is mom's -default unless you tell her otherwise. BUT... to judge from the -number of drafts already, J. Blow may very well decide his -"final" version still isn't up to snuff. Hence, he might -as well leave in the superfluous macros. That way, when draft 7, -rev. 62 becomes draft 8, rev. 1, he'll be ready to tackle his Pulitzer -winner again. -

    -


    - - - - -

    The Reference Macros

    -
    - -The reference macros give mom the information -she needs to generate -docheaders, -page headers, -and -covers. -They must go at the top of any file that uses mom's -document processing macros. -

    - -

    Reference macros list

    - - - -
    - - - -
    -

    - -Macro: TITLE "<title>" -
    -*Argument must be enclosed in double-quotes - -

    -The title string can be caps or caps/lower-case; it's up to you. -In -PRINTSTYLE TYPESET, -the title will appear in the -docheader -exactly as you typed it. However, mom converts -the title to all caps in -page headers -unless you turn that feature off (see -HEADER_<POSITION>_CAPS). In -PRINTSTYLE TYPEWRITE, -the title always gets converted to caps. -

    -NOTE: If your -DOCTYPE -is CHAPTER, TITLE should be the -title of the opus, not "CHAPTER whatever". -

    - - - -


    -

    - -Macro: DOCTITLE "<overall document title>" -
    -*Argument must be enclosed in double-quotes - -

    -NOTE: This macro should be used only if your -DOCTYPE -is DEFAULT (which is mom's -default). -

    -When you're creating a single document, say, an essay or a short -story, you have no need of this macro. -TITLE -takes care of all your title needs. -

    -However if you're -collating -a bunch of documents together, say, to print out a report containing -many articles with different titles, or a book of short stories, you -need DOCTITLE. -

    -DOCTITLE tells mom the title -of the complete document (as opposed to the title of each article -or entitled section). -

    -The doctitle string can be caps or caps/lower-case; it's up to you. -In -PRINTSTYLE TYPESET, -by default, the doctitle appears in the rightmost position of -page headers, -all in caps unless you turn that feature off (see -HEADER_<POSITION>_CAPS). In -PRINTSTYLE TYPEWRITE, -the doctitle always gets converted to caps. -

    -NOTE: If your -DOCTYPE -is CHAPTER, you don't need -DOCTITLE. TITLE takes care of -everything. -

    - - - -


    -

    - -Macro: SUBTITLE "<subtitle>" -
    -*Argument must be enclosed in double-quotes - -

    -The subtitle string can be caps or caps/lower-case. Since a -document's subtitle appears only in the -docheader, -and the title is most likely in caps, I recommend caps/lower case. -

    - - - -


    -

    - -Macro: AUTHOR "<author string>" [ "<author2 string>" "<author3 string>" ... ] -
    -*Multiple arguments must all be enclosed in double-quotes - -

    -Each author string can hold as many names as you like, e.g. -

    -

    -	.AUTHOR "Joe Blow"
    -	    or
    -	.AUTHOR "Joe Blow, Jane Doe" "John Hancock"
    -
    - -Mom prints each string that's enclosed in -double-quotes on a separate line in the -docheader, -however only the first string appears in -page headers. -If you want mom to put something else in the author -part of page headers (say, just the last names of a document's two -authors), redefine the appropriate part of the header (see -header/footer control). -

    -The strings can be caps or caps/lower-case. I recommend caps/lower -case. -

    - - - -


    -

    - -Macro: CHAPTER <chapter number> - -

    -The chapter number can be in any form you like -- a digit, a roman -numeral, a word. If you choose -DOCTYPE CHAPTER, -mom prints whatever argument you pass -CHAPTER beside the word "Chapter" as a -single line -docheader. -She also puts the same thing in the middle of -page headers. -

    -Please note that if your argument to CHAPTER runs -to more than one word, you must enclose the argument in -double-quotes. -

    -If you're not using DOCTYPE CHAPTER, the macro serves -no purpose and mom ignores it. -

    -CHAPTER_STRING -

    -If you're not writing in English, you can ask mom -to use the word for "chapter" in your own language by -telling her what it is with the CHAPTER_STRING -macro, like this: -

    -

    -	.CHAPTER_STRING "Chapître"
    -
    - -You can also use CHAPTER_STRING if you want -"CHAPTER" instead of "Chapter" in the doc- and -page-headers. -

    - - - -


    -

    - -Macro: CHAPTER_TITLE "<chapter title>" -
    -*Argument must be enclosed in double-quotes - -

    -If, either in addition to or instead of "Chapter #" appearing -at the top of chapters, you want your chapter to have a title, use -CHAPTER_TITLE, with your title enclosed in -double-quotes, like this: -

    -

    -	.CHAPTER_TITLE "The DMCA Nazis"
    -
    - -If you've used -CHAPTER to give the chapter a number, -both "Chapter #" and the chapter title will appear at the -top of the chapter, like this: -

    -

    -                       Chapter 1
    -                    The DMCA Nazis
    -
    - -In such a case, by default, only the chapter's title will appear in the -page headers, -not "Chapter #". -

    -If you omit CHAPTER when setting up your reference -macros, only the title will appear, both at the top of page one and in -subsequent page headers. -

    -The style of the chapter title can be altered by -control macros, -e.g. CHAPTER_TITLE_FAMILY, -CHAPTER_TITLE_FONT, etc. The default family, -font and point size are Times Roman, Bold Italic, 4 points larger -than -running text. -

    - - - -


    -

    - -Macro: DRAFT <draft #> - -

    -DRAFT only gets used with -COPYSTYLE DRAFT. -If the COPYSTYLE is FINAL (the -default), mom ignores DRAFT. -DRAFT accepts both alphabetic and numeric -arguments, hence it's possible to do either -

    -

    -	.DRAFT 2
    -	   or
    -	.DRAFT Two
    -
    - -Mom prints the argument to .DRAFT -(i.e. the draft number) beside the word "Draft" in the -middle part of -page headers. -

    -A small word of caution: If your argument to -.DRAFT is more than one word long, you must -enclose the argument in double-quotes. -

    -You may, if you wish, invoke .DRAFT without an -argument, in which case, no draft number will be printed beside -"Draft" in headers or footers. -

    -DRAFT_STRING -

    -If you're not writing in English, you can ask mom -to use the word for "draft" in your own language by -telling her what it is with the DRAFT_STRING macro, -like this: -

    -

    -	.DRAFT_STRING "Jet"
    -
    - -Equally, DRAFT_STRING can be used to roll your own -solution to something other than the word "Draft." For -example, you might want "Trial run alpha-three" to appear -in the headers of a draft version. You'd accomplish this by doing -

    -

    -	.DRAFT alpha-three
    -	.DRAFT_STRING "Trial run
    -
    - -.DRAFT without an argument, above, ensures that -only the DRAFT_STRING gets printed. -

    -NOTE: If you define both a blank .DRAFT -and a blank .DRAFT_STRING, mom -skips the draft field in headers entirely. If this is what you -want, this is also the only way to do it. Simply leaving out -.DRAFT and .DRAFT_STRING will -result in mom using her default, which is to print -"Draft 1". -

    - - - -


    -

    - -Macro: REVISION <revision #> - -

    -REVISION only gets used with -COPYSTYLE DRAFT. -If the COPYSTYLE is FINAL -(the default), mom ignores the -REVISION macro. REVISION accepts -both alphabetic and numeric arguments, hence it's possible to do -either -

    -

    -	.REVISION 2
    -	   or
    -	.REVISION Two
    -
    - -Mom prints the revision number beside the shortform -"Rev." in the middle part of -page headers. -

    -A small word of caution: If your argument to -.REVISION is more than one word long, you must -enclose the argument in double-quotes. -

    -You may, if you wish, invoke .REVISION without an -argument, in which case, no revision number will be printed beside -"Rev." in headers or footers. -

    -REVISION_STRING -

    -If you're not writing in English, you can ask mom -to use the word for "revision," or a shortform -thereof, in your own language by telling her what it is with the -REVISION_STRING macro, like this: -

    -

    -	.REVISION_STRING "Rév."
    -
    - -Additionally, you may sometimes want to make use of -mom's -COPYSTYLE DRAFT -but not actually require any draft information. For example, you -might like mom to indicate only the revision number -of your document. The way to do that is to define an empty -.DRAFT and .DRAFT_STRING in -addition to .REVISION, like this: -

    -

    -	.DRAFT
    -	.DRAFT_STRING
    -	.REVISION 2
    -
    - -

    -Equally, if you want to roll your own solution to what revision -information appears in headers, you could do something like this: -

    -	.DRAFT
    -	.DRAFT_STRING
    -	.REVISION "two-twenty-two"
    -	.REVISION_STRING "Revision"
    -
    - -

    -The above, naturally, has no draft information. If you want to -roll your own .DRAFT and/or -.DRAFT_STRING as well, simply supply arguments to -either or both. -

    - - - -


    -

    - -Macro: COPYRIGHT "<copyright info>" -
    -*Argument must be enclosed in double-quotes - -

    -The argument passed to COPYRIGHT is only used on -cover or doc cover pages, and then only if the argument COPYRIGHT is -passed to -COVER -or -DOC_COVER. -Do not include the copyright symbol in the argument passed to -COPYRIGHT; mom puts it in for -you. -

    - - - -


    -

    - -Macro: MISC "<argument 1>" ["<argument 2>" "<argument 3>" ...] -
    -*Multliple arguments must all be enclosed in double-quotes - -

    -The argument(s) passed to MISC are only used on -cover or doc cover pages, and then only if the argument MISC is -passed to -COVER -or -DOC_COVER. -MISC can contain any information you like. Each -argument appears on a separate line at the bottom of the cover or -doc cover page. -

    -For example, if you're submitting an essay where the prof has -requested that you include the course number, his name and the -date, you could do -

    -

    -	.MISC "Music History 101" "Professor Hasbeen" "Dec. 24, 2006"
    -
    - -and the information would appear on the essay's cover page. -

    - - - -


    -

    - -Macro: COVERTITLE "<user defined cover page title>" -
    -Macro: DOC_COVERTITLE "<user defined document cover page title>" -
    -*Argument must be enclosed in double-quotes - -

    -The argument passed to COVERTITLE or -DOC_COVERTITLE is only used on cover or doc cover -pages, and then only if the argument COVERTITLE is passed to -COVER -or -DOC_COVER. -

    -The only time you require a COVERTITLE or -DOC_COVERTITLEis when none of the required first -arguments to COVER or DOC_COVER -fits your needs for the title you want to appear on cover (or doc -cover) pages. - -

    -


    - - - -

    The Docstyle Macros

    -
    - -The docstyle macros tell mom what type of document you're -writing, whether you want the output typeset or -"typewritten", and whether you want a draft copy (with -draft and revision information in the headers) or a final copy. - - -

    Docstyle macros list

    -
    - - -
    - - - -
    -

    - -Macro: DOCTYPE DEFAULT | CHAPTER | NAMED "<name>" | LETTER -

    -The arguments DEFAULT, CHAPTER and -NAMED tell mom what to put -in the -docheader -and -page headers. -LETTER tells her that you want to write a -letter. -

    -Mom's default DOCTYPE is -DEFAULT. If that's what you want, you don't -have to give a DOCTYPE command. -

    -DEFAULT prints a -docheader -containing the title, subtitle and author information given to the -reference macros, -and page headers with the author and title. -(See -Default specs for headers -for how mom outputs each part of the page header.) -

    -CHAPTER prints "Chapter #" in place of a -docheader -(# is what you gave to the -reference macro -CHAPTER). -If you give the chapter a title with -CHAPTER TITLE, -mom prints "Chapter #" and the title -underneath. If you omit the -CHAPTER -reference macro but supply a -CHAPTER_TITLE, -mom prints only the chapter title. (*For -backward compatibility with pre-1.1.5 versions of -mom, you can also supply a chapter title by -omitting the CHAPTER reference macro and -supplying a chapter title with -CHAPTER_STRING.) -

    -The page headers in DOCTYPE CHAPTER contain the author, -the title of the book (which you gave with -TITLE), -and "Chapter #" (or the chapter title). See -Default Specs for Headers -for mom's default type parameters for each part of -the page header. -

    -NAMED takes an additional argument: a name -for this particular kind of document (e.g. outline, synopsis, -abstract, memorandum), enclosed in double-quotes. -NAMED is identical to DEFAULT -except that mom prints the argument to -NAMED beneath the -docheader, -as well as in page headers. -(See -Default specs for headers -for how mom outputs each part of the page header.) -

    -Additionally, if you wish the name of this particular kind of -document to be coloured, you can pass DOCTYPE NAMED -a third (optional) argument: the name of a colour pre-defined (or -"initialized") with -NEWCOLOR -or -XCOLOR. -For example, if you have a doctype named "Warning", and -you'd like "Warning" to be in red, assuming you've -pre-defined (or "initialized") the color, red, this is -what the DOCTYPE entry would look like: -

    -

    -	.DOCTYPE NAME "Warning" red
    -
    - -

    -LETTER tells mom you're writing a letter. See -the section -Writing Letters -for instructions on using mom to format letters. -

    - - - -


    -

    - -Macro: PRINTSTYLE TYPESET | TYPEWRITE [ SINGLESPACE ] -
    -*Required for document processing. -
    -*Must come before any changes to default document style - -

    -PRINTSTYLE tells mom whether to typeset -a document, or to print it out "typewritten, doubled-spaced". -

    -THIS MACRO MAY NOT BE OMITTED. In order for -document processing to take place, mom requires -a PRINTSTYLE. If you don't give one, -mom will warn you on stderr and print a single -page with a nasty message. -

    -Furthermore, PRINTSTYLE must come before any -changes to mom's default typestyle parameters. -(This applies primarily to, but is by no means restricted to, -PRINTSTYLE TYPESET.) PRINTSTYLE -sets up complete "templates" that include default -papersize, margins, family, fonts, point sizes, and so on. -Therefore, changes to any aspect of document style must come -afterwards. -

    -TYPESET, as the argument implies, typesets documents -(by default in Times Roman; see -TYPESET defaults). -You have full access to all the -typesetting macros -as well as the -style control macros -of document processing. -

    -As mentioned above, PRINTSTYLE TYPESET must come -before any changes to mom's default typographic -settings. For example, - -

    -	.PAPER A4
    -	.LS 14
    -	.PRINTSTYLE TYPESET
    -
    - -will not changes mom's default paper size to A4, -nor her default document leading 14 points, whereas - -
    -	.PRINTSTYLE TYPESET
    -	.PAPER A4
    -	.LS 14
    -
    - -will. -

    -With TYPEWRITE, mom does her best -to reproduce the look and feel of typewritten, double-spaced copy (see -TYPEWRITE defaults). -Control macros -and -typesetting macros -that alter family, font, point size, and -leading -are (mostly) ignored. An important exception is -HEADER_SIZE -(and, by extension, FOOTER_SIZE), which allows -you to reduce the point size of headers/footers should they become -too crowded. Most of mom's inlines affecting the -appearance of type are also ignored (\*S is an -exception; there may be a few others). -

    -In short, TYPEWRITE never produces effects other than -those available on a typewriter. Don't be fooled by how brainless -this sounds; mom is remarkably sophisticated when -it comes to conveying the typographic sense of a document within the -confines of TYPEWRITE. -

    -The primary uses of TYPEWRITE are: outputting hard -copy drafts of your work (for editing), and producing documents -for submission to publishers and agents who (wisely) insist on -typewritten, double-spaced copy. To get a nicely typeset version of -work that's in the submission phase of its life (say, to show fellow -writers for critiquing), simply change TYPEWRITE -to TYPESET and print out a copy. -

    -If, for some reason, you would prefer the output of -TYPEWRITE single-spaced, pass PRINTSTYLE -TYPEWRITE the optional argument, SINGLESPACE. -

    -If you absolutely must have a leading other than typewriter double- -or singlespaced, the only way to get it is with the -DOC_LEAD -macro, and then ONLY if DOC_LEAD is set -before you invoke the START -macro. -

    -

    TYPESET defaults

    -
    -	Family            = Times Roman
    -	Point size        = 12.5
    -	Paragraph leading = 16 points, adjusted
    -	Fill mode         = justified
    -	Hyphenation       = enabled
    -	                    max. lines = 2
    -	                    margin = 36 points
    -	                    interword adjustment = 1 point
    -	Kerning           = enabled
    -	Ligatures         = enabled
    -	Smartquotes       = enabled
    -	Word space        = groff default
    -	Sentence space    = 0
    -
    - -

    TYPEWRITE defaults

    -
    -	Family            = Courier
    -	Italics           = underlined
    -	Point size        = 12
    -	Paragraph leading = 24 points, adjusted; 12 points for SINGLESPACE
    -	Fill mode         = left
    -	Hyphenation       = disabled
    -	Kerning           = disabled
    -	Ligatures         = disabled
    -	Smartquotes       = disabled
    -	Word space        = groff default
    -	Sentence space    = groff default
    -	Columns           = ignored
    -
    - -

    PRINTSTYLE TYPEWRITE control macros

    -

    -In PRINTSTYLE TYPEWRITE, mom, -by default, underlines anything that looks like italics. This -includes the -\*[SLANT] -inline escape -for pseudo-italics. -

    -If you'd prefer that mom were -less bloody-minded about pretending to be a typewriter (i.e. -you'd like italics and pseudo-italics to come out as italics), -use the control macros .ITALIC_MEANS_ITALIC and -.SLANT_MEANS_SLANT. Neither requires an -argument. -

    -Although it's unlikely, should you wish to reverse the sense of -these macros in the midst of a document, -.UNDERLINE_ITALIC and -.UNDERLINE_SLANT restore underlining of -italics and pseudo-italics. -

    - -Additionally, by default, mom underlines -quotes -(but not -blockquotes) -in PRINTSTYLE TYPEWRITE. -If you don't like this behaviour, turn it off with -

    -

    -	.UNDERLINE_QUOTES OFF
    -
    - -To turn underlining of quotes back on, use -UNDERLINE_QUOTES without an argument. -

    -While most of the -control macros -have no effect on PRINTSTYLE TYPEWRITE, there -is an important exception: -HEADER_SIZE -(and by extension, FOOTER_SIZE). This is -particularly useful for reducing the point size of -headers/footers should they become crowded (quite likely to -happen if the title of your document is long and your -COPYSTYLE -is DRAFT). -

    - - - -


    -

    - -Macro: COPYSTYLE DRAFT | FINAL - -

    -Mom's default COPYSTYLE is -FINAL, so you don't have to use this macro unless -you want to. -

    -COPYSTYLE DRAFT exhibits the following behaviour: -
    -

      -
    1. documents start on page 1, whether or not you - request a different starting page number with - PAGENUMBER -
    2. page numbers are set in lower case roman numerals -
    3. the draft number supplied by - DRAFT - and a revision number, if supplied with - REVISION - (see - reference macros), - appear in the centre part of - page headers - (or footers, depending on which you've selected) along with - any other information that normally appears there. -
    -

    -IMPORTANT: If you define your own centre part for page -headers with -HEADER_CENTER, -no draft and/or revision number will appear there. If you want draft -and revision information in this circumstance, use -DRAFT_WITH_PAGENUMBER. -

    -COPYSTYLE FINAL differs from DRAFT in that: -
    -

      -
    1. it respects the starting page number you give the document -
    2. page numbers are set in normal (Arabic) digits -
    3. no draft or revision number appears in the page headers -
    -

    -NOTE: The centre part of page headers can get crowded, -especially with -DOCTYPE CHAPTER -and -DOCTYPE NAMED, -when the COPYSTYLE is DRAFT. -Three mechanisms are available to overcome this problem. One is to -reduce the overall size of headers (with -HEADER_SIZE). -Another, which only works with -PRINTSTYLE TYPESET, -is to reduce the size of the header's centre part only (with -HEADER_CENTER_SIZE). -And finally, you can elect to have the draft/revision information -attached to page numbers instead of having it appear in the centre -of page headers (see -DRAFT_WITH_PAGENUMBER). -

    -


    - - - -

    Changing type/style parameters prior to START

    -

    -In the third (optional) part of setting up a document (see -Tutorial -- setting up a mom document), -you can use the -typesetting macros -to change mom's document-wide defaults for margins, -line length, family, base point size, -leading, -and justification style. -

    -Two additional style concerns have to be addressed here (i.e. in -macros before -START): -changes to the -docheader, -and whether you want you want the document's nominal leading -adjusted to fill pages fully to the bottom margin. -

    -

    -
    - -
    -

    Using the typesetting macros prior to START

    -

    -From time to time (or maybe frequently), you'll want the overall -look of a document to differ from mom's defaults. -Perhaps you'd like her to use a different -family, -or a different overall -leading, -or have different left and/or right page margins. -

    -To accomplish such alterations, use the appropriate -typesetting macros -(listed below) after -PRINTSTYLE -and before -START. -

    -More than one user has, quite understandably, not fully grasped -the significance of the preceding sentence. The part they've missed -is "after PRINTSTYLE". -

    -Changes to any aspect of the default look and/or formatting -of a mom document must come after -PRINTSTYLE. For example, it might seem natural to -set up page margins at the very top of a document with -

    -

    -	.L_MARGIN 1i
    -	.R_MARGIN 1.5i
    -
    - -However, when you invoke .PRINTSTYLE, those -margins will be overridden. The correct place to set margins--and -all other changes to the look of a document--is after -PRINTSTYLE. - -

    -NOTE: Don't use the macros listed in Changing document-wide typesetting -parameters after START prior to START; they are -exclusively for use afterwards. -

    -When used before -START, -the -typesetting macros -(below) have the following meanings: -

    -

    -	L_MARGIN       Left margin of pages, including headers/footers
    -	R_MARGIN       Right margin of pages, including headers/footers
    -	T_MARGIN       The point at which running text (i.e. not
    -	               headers/footers or page numbers) starts on each page
    -	B_MARGIN*      The point at which running text (i.e. not
    -	(see note)     headers/footers or page numbers) ends on each page
    -
    -	PAGE           If you use PAGE, its final four arguments have the
    -	               same meaning as L_ R_ T_ and B_MARGIN (above).
    -
    -	LL             The line length for everything on the page;
    -	               equivalent to setting the right margin with R_MARGIN
    -	FAMILY         The family of all type in the document
    -	PT_SIZE        The point size of type in paragraphs; mom uses this
    -	               to calculate automatic point size changes (e.g. for
    -	               heads, footnotes, quotes, headers, etc)
    -	LS/AUTOLEAD**  The leading used in paragraphs; all leading and spacing
    -	               of running text is calculated from this
    -
    -	QUAD/JUSTIFY   Affects paragraphs only
    -	LEFT           No effect***
    -	RIGHT          No effect***
    -	CENTER         No effect***
    -
    -------
    -  *See FOOTER MARGIN AND BOTTOM MARGIN for an important warning
    - **See DOC_LEAD_ADJUST
    -***See Special note
    -
    - -Other macros that deal with type style, or refinements thereof -(KERN, LIGATURES, HY, WS, SS, etc.), behave normally. -It is not recommended that you set up tabs or indents prior to -START. -

    -If you want to change any of the basic parameters (above) -after START and have them affect a -document globally (as if you'd entered them before -START), you must use the macros listed in -Changing document-wide style parameters after START. - - -

    Special note on .LEFT, .RIGHT and .CENTER prior to START

    -In a word, these three macros have no effect on document processing -when invoked prior to START. -

    -All mom's document element tags -(PP, HEAD, -BLOCKQUOTE, FOOTNOTE, etc.) -except -QUOTE -set a -fill mode -as soon as they're invoked. If you wish to turn fill mode off for -the duration of any tag (with -.LEFT, .RIGHT or .CENTER) -you must do so immediately after invoking the tag. Furthermore, -the change affects only the current invocation of the tag. -Subsequent invocations of the same tag for which you want the same -change require that you invoke LEFT, -RIGHT or CENTER immediately after -every invocation of the tag. -

    - - -

    Colour

    -
    -Although it doesn't really matter where you define/initialize -colours for use in document processing (see -NEWCOLOR -and -XCOLOR -in the section -Coloured text), -I recommend doing so before you begin document processing with -START. -

    -The macro, -COLOR, -and the -inline escape, -\[<colorname>], -can be used at any time during document processing for occasional -colour effects. However, consistent and reliable colourizing of -various document elements (the docheader, heads, linebreaks, -footnotes, pagenumbers, and so on) must be managed through the use -of the -document element control macros. -

    -PLEASE NOTE: If you plan to have mom -generate a -table of contents, -do NOT embed colour -inline escapes -(\[<colorname>]) -in the -string arguments -given to any of the -reference macros, -nor in the string arguments given to -.HEAD, -.SUBHEAD -or -.PARAHEAD. -Use, rather, the -control macros -mom provides to automatically colourize these -elements. -
    - - - -


    -

    Adjusting document leading to fill pages

    -
    -Macro: DOC_LEAD_ADJUST toggle -
    -*Must come after LS or AUTOLEAD and before START - -

    -DOC_LEAD_ADJUST is a special macro to adjust -document -leading -so that bottom margins fall precisely where you expect. -

    -If you invoke DOC_LEAD_ADJUST, mom -takes the number of lines that fit on the page at your requested -leading, then incrementally adds -machine units -to the leading until the maximum number of lines at the new leading -matches the bottom margin. In most instances, the difference -between the requested lead and the adjusted lead is -unnoticeable, and since in almost all cases adjusted leading is -what you want, it's mom's default. -

    -Should you NOT want adjusted document leading, you MUST turn it -off manually, like this: -

    -

    -	.DOC_LEAD_ADJUST OFF
    -
    - If you set the document leading prior to START -with -LS -or -AUTOLEAD, -DOC_LEAD_ADJUST OFF must come afterwards, like -this: -

    -

    -	.LS 12
    -	.DOC_LEAD_ADJUST OFF
    -
    - -In this scenario, the maximum number of lines that fit on a page at -a -leading -of 12 -points -determine where mom ends -a page. The effect will be that last lines usually fall (slightly) -short of the "official" bottom margin. -

    -In -PRINTSTYLE -TYPEWRITE, the leading is always adjusted and -can't be turned off. -

    -NOTE: DOC_LEAD_ADJUST, if -used, must be invoked after -LS -or -AUTOLEAD -and before -START -

    -ADDITIONAL NOTE: Even if you disable -DOC_LEAD_ADJUST, mom will still -adjust the leading of endnotes pages and toc pages. See -ENDNOTE_LEAD -and -TOC_LEAD -for an explanation of how to disable this default behaviour. -

    - - - -


    -

    Managing the docheader

    -
    -Macro: DOCHEADER <toggle> [ distance to advance from top of page ] -
    -*Must come before START; distance requires a unit of measure - -

    -By default, mom prints a -docheader -on the first page of any document (see -below -for a description of the docheader). If you don't want a docheader, -turn it off with -

    -

    -	.DOCHEADER OFF
    -
    - -DOCHEADER is a toggle macro, so the argument doesn't -have to be OFF; it can be anything you like. -

    -If you turn the docheader off, mom, by default, starts -the running text of your document on the same top -baseline -as all subsequent pages. If you'd like her to start at a different -vertical position, give her the distance you'd like as a second -argument. -

    -

    -	.DOCHEADER OFF 1.5i
    -
    - -This starts the document 1.5 inches from the top of the page PLUS -whatever spacing adjustment mom has to make in -order to ensure that the first baseline of running text falls on a -"legal" baseline (i.e. one that ensures that the bottom -margin of the first page falls where it should). The distance is -measured from the top edge of the paper to the -baseline -of the first line of type. -

    -TIP: Since no document processing happens until -you invoke -START --- including anything to do with docheaders -- you can typeset -your own docheader prior to START (if you don't -like the way mom does things) and use -DOCHEADER OFF with its optional distance argument -to ensure that the body of your document starts where you want. -You can even insert a PostScript file (with .PSPIC; -see the groff_tmac man page for usage). -

    -

    How to change the look of docheaders: docheader control macros

    - -

    -With -PRINTSTYLE TYPEWRITE, -the look of docheaders is carved in stone. -In -PRINTSTYLE TYPESET, -however, you can make a lot of changes. Macros that alter docheaders -MUST come before -START. - -

    -A typeset docheader has the following characteristics. Note that -title, subtitle, author, and document type are what you supply -with the -reference macros. -Any you leave out will not appear; mom will -compensate: -

    -

    -	    TITLE         bold, 3.5 points larger than running text (not necessarily caps)
    -	   Subtitle       medium, same size as running text
    -	      by          medium italic, same size as running text
    -	   Author(s)      medium italic, same size as running text
    -
    -	(Document type)   bold italic, underscored, 3 points larger than running text
    -
    - -If the -DOCTYPE -is CHAPTER, -
    -	   Chapter #       bold, 4 points larger than running text
    -	 Chapter Title     bold italic, 4 points larger than running text
    -
    - -

    -The -family -is the prevailing family of the whole document. -

    -NOTE: If your DOCTYPE is -CHAPTER and you have both "Chapter #" -and a "Chapter Title" (as above), you may find the -leading -a bit cramped (owing to mom's default docheader -leading). If this is the case, you can adjust the leading either -with -DOCHEADER_LEAD -or by including the -inline escape, -\*[DOWN], -in the argument you pass to -CHAPTER_TITLE, like this: -

    -

    -	.CHAPTER_TITLE "\*[DOWN 2p]Why Not Patent Calculus?"
    -
    - - -

    The docheader macros to:

    -
      -
    1. Change the starting position of the docheader -
    2. Change the family of the entire docheader -
    3. Adjust the docheader leading -
    4. Change the family of individual docheader elements -
    5. Change the font of docheader elements -
    6. Change the colour of the docheader -
    7. Adjust the size of docheader elements -
    8. Change the attribution string ("by") -
    -

    -

    1. Change the starting position

    -

    -By default, a docheader starts on the same -baseline -as -running text. -If you'd like it to start somewhere else, use the macro -.DOCHEADER_ADVANCE and give it the distance you want -(measured from the top edge of the paper to the first baseline -of the docheader), like this: -

    -

    -	.DOCHEADER_ADVANCE 4P
    -
    - -A -unit of measure -is required. -

    -NOTE: If -HEADERS -are OFF, mom's normal top -margin for -running text -(7.5 -picas) -changes to 6 picas (visually approx. 1 inch). Since the -first baseline of the docheader falls on the same baseline -as the first line of running text (on pages after page 1), -you might find the docheaders a bit high when headers are off. -Use -DOCHEADER_ADVANCE -to place them where you want. -

    - -

    2. Change the family of the entire docheader

    -

    -By default, mom sets the docheader in the same -family used for -running text. -If you'd prefer to have your docheaders set in a different family, -invoke DOCHEADER_FAMILY with the family you want. -The argument for DOCHEADER_FAMILY is the same as -for -FAMILY. -

    -For example, mom's default family for running text -is Times Roman. If you'd like to keep that default, but have the -docheaders set entirely in Helvetica, -

    -

    -	.DOCHEADER_FAMILY H
    -
    - -is how you'd do it. -

    -Please note that if you use DOCHEADER_FAMILY, -you can still alter the family of individual parts of the docheader -with the macros listed -here. - -

    3. Adjust the leading

    -

    -The -leading -of docheaders is the same as running text (except when -DOCTYPE -is CHAPTER and both a chapter number and a -chapter title have been supplied, in which case the default is 4 points -more than running text.) -

    -If you'd like your docheaders to have a different leading, say, 2 -points more than the lead of running text, use: -

    -

    -	.DOCHEADER_LEAD +2
    -
    - -Since the leading of docheaders is calculated from the lead of running -text, a + or - sign is required before the argument (how much to add -or subtract from the lead of running text). No -unit of measure -is required; points is assumed. -

    - -

    4. Change the family of docheader elements

    -

    -The following macros let you change the -family -of each docheader element separately: -

    -

      -
    • TITLE_FAMILY <family> -
    • CHAPTER_TITLE_FAMILY <family> -
    • SUBTITLE_FAMILY <family> -
    • AUTHOR_FAMILY <family> -
    • DOCTYPE_FAMILY <family> (if -DOCTYPE is NAMED) -
    -

    -Simply pass the appropriate macro the family you want, just as you -would with -FAMILY. -

    - -

    5. Change the font of docheader elements

    -

    -The following macros let you change the -font -of each docheader element separately: -

    -

      -
    • TITLE_FONT R | B | I | BI -
    • CHAPTER_TITLE_FONT R | B | I | BI -
    • SUBTITLE_FONT R | B | I | BI -
    • AUTHOR_FONT R | B | I | BI -
    • DOCTYPE_FONT R | B | I | BI (if -DOCTYPE is NAMED) -
    -

    -Simply pass the appropriate macro the font you want. R, -B, I and BI have the same meaning as -they do for -FT. -

    - -

    6. Change the colour of the docheader elements individually

    -

    -The following macros let you change the color of each docheader -element separately. You must pre-define (or -"initialize") the color with -NEWCOLOR -or -XCOLOR. -

    -

      -
    • TITLE_COLOR <colorname> -
    • CHAPTER_TITLE_COLOR <colorname> -
        -
      • Note: CHAPTER_TITLE_COLOR is needed - only if you enter both a CHAPTER - reference macro AND a CHAPTER_TITLE - macro. Otherwise, the macro, - TITLE_COLOR takes care of colorizing - the chapter header. -
      -
    • SUBTITLE_COLOR <colorname> -
    • ATTRIBUTE_COLOR <colorname> - (the "by" string that precedes the author[s] name[s]) -
    • AUTHOR_COLOR <colorname> -
    • DOCTYPE_COLOR <colorname> (if - DOCTYPE is NAMED) -
    -

    -It is not recommended that you embed colour (with the -inline escape, -\*[<colorname>]) -in the strings passed to -TITLE, CHAPTER_TITLE, -SUBTITLE, AUTHOR or the name you -give DOCTYPE NAMED. The strings passed to these -macros are used to generate page -headers -and -footers. -An embedded colour will cause the string to be colourized any time -it appears in headers or footers. (If you want headers or footers -colourized, or parts thereof, use the header/footer control macros.) -

    - -If you want to colourize the entire docheader, use the macro -

    -

      -
    • DOCHEADER_COLOR <color name>. -
    - -

    7. Adjust the size of docheader elements

    -

    -The following macros let you adjust the point size of each docheader -element separately. -

    -Mom calculates the point size -of docheader elements from the point size of paragraphs in running -text, so you must prepend a + or - sign to the argument. Points is -assumed as the -unit of measure, -so there's no need to append a unit to the argument. Fractional point -sizes are allowed. -

    -

      -
    • TITLE_SIZE <+/-points> -
      -default = +3.5 (+4 if docheader title is "Chapter #") -
    • CHAPTER_TITLE_SIZE <+/-points> -
      -default = +4 -
    • SUBTITLE_SIZE <+/-points> -
      -default = +0 -
    • AUTHOR_SIZE <+/-points> -
      -default = +0 -
    • DOCTYPE_SIZE <+/-points> (if -DOCTYPE is NAMED) -
      -default = +3 -
    -

    -Simply pass the appropriate macro the size adjustment you want. -

    - -

    8. Change the attribution string ("by")

    -

    -If you're not writing in English, you can change what -mom prints where "by" appears in -docheaders. For example, -

    -

    -	.ATTRIBUTE_STRING "par"
    -
    - -changes "by" to "par". If you -don't want an attribution string at all, simply pass -ATTRIBUTE_STRING an empty argument, like this: -

    -

    -	.ATTRIBUTE_STRING ""
    -
    - -Mom will deposit a blank line where the -attribution string normally appears. -

    -NOTE: The type specs for the attribution line -in docheaders are the same as for the author line. Although -it's highly unlikely you'll want the attribution line in a -different family, font, or point size, you can do so by using -inline escapes -in the argument to ATTRIBUTE_STRING. For -example, -

    -

    -	.ATTRIBUTE_STRING "\f[HBI]\*[SIZE -2p] by \*[SIZE +2p]\*[PREV]"
    -
    - -would set "by" in Helvetica bold italic, 2 points -smaller than normal. -

    -


    - - - -

    Setting documents in columns

    - -

    -Setting documents in columns is easy with mom. (Of -course she'd say that, but it's true!) All you have to do is is -say how many columns you want and how much space you want -between them (the -gutters). -That's it. Mom takes care of everything else, from -soup to nuts. -

    -SOME WORDS OF ADVICE: -

    -If you want your type to achieve a pleasing -justification -or -rag -in columns, reduce the point size of type (and probably the -leading -as well). Mom's default document point -size is 12.5, which works well across her default 39 -pica -full page line length, but with even just two columns on a page, -the default point size is awkward to work with. -

    -Furthermore, you'll absolutely need to reduce the indents for -epigraphs, -quotes, -and -blockquotes -(and probably the -paragraph first-line indent -as well). -

    - - - -


    -

    COLUMNS

    -
    -Macro: COLUMNS <number of columns> <width of gutters> -
    -*Should be the last macro before START -
    -The second argument requires a unit of measure
    - -

    -COLUMNS takes two arguments: the number of -columns you want on document pages, and the width of the -gutter -between them. For example, to set up a page with two columns -separated by an 18 point gutter, you'd do -

    -

    -	.COLUMNS 2 18p
    -
    - -Nothing to it, really. However, as noted above, -COLUMNS should always be the last document -setup macro prior to -START. -

    -NOTE: Mom ignores columns completely -when the -PRINTSTYLE -is TYPEWRITE. The notion of typewriter-style -output in columns is just too ghastly for her to bear. - -

    Using tabs when COLUMNS are enabled

    -Mom's tabs -(both -typesetting tabs -and -string tabs) -behave as you'd expect during document processing, even when -COLUMNS are enabled. Tab structures set up -during document processing carry over from page to page and column -to column. - - -

    Breaking columns manually

    -Mom takes care of breaking columns when they reach -the bottom margin of a page. However, there may be times you want to -break the columns yourself. There are two macros for breaking columns -manually: COL_NEXT and COL_BREAK. - - -

    -.COL_NEXT breaks the line just before it, -quads -it left (assuming the type is justified or quad left), and moves over -to the top of the next column. If the column happens to be the last -(rightmost) one on the page, mom starts a new page -at the "column 1" position. This is the macro to use when -you want to start a new column after the end of a paragraph. - - -

    -.COL_BREAK is almost the same, except that -instead of breaking and quadding the line preceding it, -she breaks and spreads it (see -SPREAD). -Use this macro whenever you need to start a new column in the middle -of a paragraph. -

    -If you need COL_BREAK in the middle of a blockquote -or (god help us) an epigraph, you must do the following in order for -COL_BREAK to work: -

    -

    -	.SPREAD
    -	\!.COL_BREAK
    -
    -
    - - - - -

    Start document processing

    -
    - -In order to use mom's document element macros -(tags), you have to tell her you want them. The macro to do this -is START. -

    -START collects the information you gave -mom in the setup section at the top of your file (see -Tutorial -- setting up a mom document), -merges it with her defaults, sets up headers and page numbering, -and prepares mom to process your document using -the document element tags. No document processing takes place until -you invoke START. -

    - - - -


    -

    - -Macro: START -
    -*Required for document processing. - -

    -START takes no arguments. It simply instructs -mom to begin document processing. If you don't -want document processing (i.e. you only want the -typesetting macros), -don't use START. -

    -At a barest minimum before START, you must enter a -PRINTSTYLE -command. -

    -


    - - - - -

    Changing document-wide style parameters after START

    -
    - -In the normal course of things, you change the basic type -parameters of a document before -START, -using -typesetting macros -(L_MARGIN, FAMILY, PT_SIZE, LS, etc). After -START, you MUST use the following macros to make -global changes to the basic type parameters of a document. -

    - - -

    Macro list

    - - -
    - -
    -

    - - Macro: DOC_LEFT_MARGIN <left margin> - -
    -*Requires a unit of measure -

    -

      -
    • the argument is the same as for - L_MARGIN -
    • changes all left margins to the new value -
    • the line length remains the same (i.e. the right margin - shifts when you change the left margin) -
    -
    - -
    -

    - - Macro: DOC_RIGHT_MARGIN <right margin> - -
    -*Requires a unit of measure -

    -

    -
    - -
    -

    - - Macro: DOC_LINE_LENGTH <length> - -
    -*Requires a unit of measure -

    -

    -
    - -
    -

    - - Macro: DOC_FAMILY <family> - -

    -

      -
    • the argument is the same as for - FAMILY -
    • globally changes the type family -
    • any page elements (e.g. - headers, - page numbers, footnotes) whose families you wish to remain - at their old values must be reset with the appropriate - control macros -
    -
    - -
    -

    - - Macro: DOC_PT_SIZE <point size> - -
    -*Does not require a unit of measure; points is assumed -

    -

      -
    • the argument is the same as for - PT_SIZE, - and refers to the point size of type in paragraphs -
    • all automatic point size changes (heads, quotes, - footnotes, headers, etc.) are affected by the new size; - anything you do not want affected must be reset to - its former value (see the Control Macros section of - the pertinent document element for instructions on - how to do this) -
    -
    - -
    -

    - - Macro: DOC_LEAD <points> [ ADJUST ] - -
    -*Does not require a unit of measure; points is assumed -

    -

      -
    • the argument is the same as for - LS, - and refers to the - leading - of paragraphs -
    • because paragraphs will have a new leading, the leading and - spacing of most running text is influenced by the new value -
    • epigraphs and footnotes remain unaffected; - if you wish to change their leading, use - EPIGRAPH_AUTOLEAD - and - FOOTNOTE_AUTOLEAD. -
    • the optional argument ADJUST performs - leading adjustment as explained in - DOC_LEAD_ADJUST -
    -

    -IMPORTANT: Do not use DOC_LEAD -in the middle of a page! It should always and only be invoked -immediately prior to a new page, like this: -

    -

    -	.DOC_LEAD <new value>
    -	.NEWPAGE
    -
    - -NOTE: Even if you don't pass -DOC_LEAD the optional argument -ADJUST, mom will still adjust the -leading of endnotes pages and toc pages. See -ENDNOTE_LEAD -and -TOC_LEAD -for an explanation of how to disable this default behaviour. -

    - -


    -

    - - Macro: DOC_QUAD L | R | C | J - -

    -

      -
    • the arguments are the same as for - QUAD -
    • affects paragraphs, epigraphs and footnotes; does not - affect blockquotes -
    -
    - -
    -Next   -Prev   -Top   -Back to Table of Contents - - diff --git a/src/contrib/mom/momdoc/goodies.html b/src/contrib/mom/momdoc/goodies.html deleted file mode 100644 index 36f3576..0000000 --- a/src/contrib/mom/momdoc/goodies.html +++ /dev/null @@ -1,1057 +0,0 @@ - - - - -Mom -- Goodies - - - - - -Next   -Prev   -Back to Table of Contents -

    - - -

    Goodies

    - -

    - -The macros in this section are a collection of useful (and sometimes -nearly indispensable) routines to simplify typesetting. -

    - -

    Goodies list

    - - - - - - -
    -

    Rename macros

    -
    -Macro: ALIAS <new name> <old name> - -

    -The ALIAS macro may well be your best friend. With it, -you can change the name of a macro to anything you like -(provided the new name is not already being used by -mom; see the -list of reserved words). -

    -Groff has always been a bit intimidating for new users because -its standard macro packages use very terse macro names. -Mom doesn't like people to feel intimidated; she wants -them to feel welcome. Consequently, she tries for easy-to-grasp, -self-explanatory macro names. However, mom knows -that people have their own ways of thinking, their own preferences, -their own habits. Some of her macro names may not suit you; they -might be too long, or aren't what you automatically think of -when you want to do a particular thing, or might conflict with habits -you've developed over the years. -

    -If you don't like one of mom's macro names, -say, PAGEWIDTH, change it, like this: -

    -

    -	.ALIAS PW PAGEWIDTH
    -	       |      |
    -	  new__|      |__official
    -	 name            name
    -
    - -The first argument to ALIAS is the new name you want -for a macro. The second is the "official" name by -which the macro is normally invoked. After ALIAS, -either can be used. -

    -Note that in ALIAS, you do NOT include the period -(dot) that precedes the macro when it's a -control line. -

    -NOTE: If you use ALIAS a lot, -and always for the same things, consider creating an aliases -file of the form -

    -

    -	.ALIAS <new name> <old name>
    -	.ALIAS <new name> <old name>
    -	.ALIAS <new name> <old name>
    -	...etc
    -
    - -Put the file someplace convenient and source it at the -beginning of your documents using the groff -primitive -.so. Assuming that you've created an aliases file -called mom_aliases in your home directory under a directory -called Mom, you'd source it by placing -

    -

    -	.so /home/<username>/Mom/mom_aliases
    -
    - -at the top of your documents. -

    -If you share documents that make use of an alias file, remember that -other people don't have the file! Paste the whole thing at the top -of your documents, please. -

    -EXPERTS: ALIAS is an alias of -.als. You can use either, or mix 'n' match with -impunity. -

    - - - -


    -

    Hide input lines from output

    -
    -Macro: SILENT toggle -
    -Alias: COMMENT - -

    -Sometimes, you want to "hide" -input lines -from final output. This is most likely to be the case when setting -up string tabs (see the -quickie tutorial on string tabs -for an example), but there are other places where you might want input -lines to be invisible as well. Any place you don't want input lines -to appear in the output, use the SILENT macro. -

    -SILENT is a toggle. Invoking it without an argument -turns it on; any argument turns it off. E.g., -

    -

    -	.SILENT
    -	A line of text
    -	.SILENT OFF
    -
    - -The line "A line of text" will not appear in the -output copy. -

    -SILENT is aliased as COMMENT. -If you want to insert non-printing comments into your documents, -you may prefer this. -

    -NOTE: SILENT does not automatically break an -input line -(see -BR) -when you're in one of the -fill modes -(JUSTIFY -or -QUAD L | R | C | J). -The same applies to tabs -(typesetting -or -string) -to which you've passed the J or QUAD -argument. You must insert .BR yourself, or risk a -portion of your text disappearing into a black hole. -

    - - - -


    -

    Suspend/re-invoke traps

    -
    -Macro: TRAP toggle - -

    -Traps are vertical positions on the output page at which you or -mom have instructed groff to start doing -something automatically. Commonly, this is near the bottom of -the page, where automatic behind-the-scenes processing is needed -in order for one page to finish and another to start. -

    -Sometimes, traps get sprung when you don't want them. If this -happens, surround just the offending macros and input lines with -

    -

    -	.TRAP OFF
    -	...
    -	.TRAP
    -
    - -TRAP is a toggle, therefore any argument -turns it off (i.e. suspends the trap), and no argument turns it -(back) on. -

    - - - -


    -

    Convert typewriter doublequotes to proper doublequotes

    -
    -Macro: SMARTQUOTES [<off>] [ ,, | >> | << ] -
    -or -
    -Macro: SMARTQUOTES DA | DE | ES | FR | IT | NL | NO | PT | SV - -

    -If you invoke SMARTQUOTES without an argument, -mom converts all instances of the inch-mark, -(" -- also called a "doublequote"), into -the appropriate instances of true Anglo-American open- and -close-doublequotes. (See -Internationalization -for how to get SMARTQUOTES to behave correctly for non-English -quoting styles.) -

    -Typographically, there is a difference between the inch-mark and -doublequotes -- a BIG difference. Sadly, typewriters and computer -keyboards supply only one: the inch-mark. While using inches for -doublequotes is, and always has been, acceptable in typewriter-style -copy, it has never been, and, God willing, never will be acceptable in -typeset copy. Failure to turn inches into quotes is the first thing -a professional typesetter notices in documents prepared by amateurs. -And you don't want to look like an amateur, do you? -

    -

    Internationalization

    -

    -If you invoke SMARTQUOTES with one of the optional -arguments (,, or >> or -<<) you can use " as "cheap" -open- and close-quotes when inputting text in a language other than -English, and have mom convert them, on output, -into the chosen open- and close-quote style. -

    -,, opens quotes with "lowered doublequotes" and -closes them with "raised doublequotes", as in this ascii -approximation: -

    -

    -	,,Hilfe !``
    -
    - ->> opens quotes with guillemets pointing to the -right, and closes them with guillemets pointing to the left, as in -this ascii approximation: -

    -

    -	>>Zurück !<<
    -
    - -<< opens quotes with guillemets pointing to the -left, and closes them with guillemets pointing to the right, as in -this ascii approximation: -

    -

    -	<<Mais monsieur! Je ne suis pas ce genre de fille!>>
    -
    - -Please note: the above arguments to SMARTQUOTES -are literal ASCII characters. ,, is two commas, -<< is two less-than signs and >> -is two greater-than signs. -

    -Alternatively, you can pass SMARTQUOTES the -two-letter, ISO 639 abbreviation for the language you're writing in, -and mom will output the correct quotes. -

    -

    -	.SMARTQUOTES DA     = Danish      >>text<<
    -	.SMARTQUOTES DE     = German      ,,text``
    -	.SMARTQUOTES ES     = Spanish     ``text´´
    -	.SMARTQUOTES FR     = French      << text >>
    -	.SMARTQUOTES IT     = Italian     << text >>
    -	.SMARTQUOTES NL     = Dutch       ´´text´´
    -	.SMARTQUOTES NO     = Norwegian   <<text>>
    -	.SMARTQUOTES PT     = Portuguese  <<text>>
    -	.SMARTQUOTES SV     = Swedish     >>text>>
    -
    -

    -Turn SMARTQUOTES off by passing it any argument -not in the argument list (e.g. OFF, -QUIT, X, etc.) -

    -If you're using the -document processing macros -with -PRINTSTYLE TYPESET, -SMARTQUOTES is on by default (in the Anglo-American -style); with -PRINTSTYLE TYPEWRITE, -it's off by default (and should probably stay that way). -

    -Finally, if you're fussy about the kerning of quote marks in -relation to the text they surround, or have special quoting needs, -you have to enter quote marks by hand using groff's native -inline escapes -for special characters (see man groff_char for a complete list of -special characters). Entering quote marks this way allows you to -use mom's -inline kerning escapes -to fine-tune the look of quotes. -

    -NOTE: SMARTQUOTES does not work on -single quotes, which most people input with the apostrophe (found at -the right-hand end of the "home row" on a QWERTY keyboard). -Groff will interpret all instances of the apostrophe as an apostrophe, -making the symbol useless as an open-single-quote. For open single -quotes, input the backtick character typically found under the tilde -on most keyboards. (Pour nous autres, "backtick" veut dire -l'accent grave.) -Here's an example of correct input copy with single quotes: -

    -

    -	"But she said, `I don't want to!'"	
    -
    - -ADDITIONAL NOTE: Whether or not you have -SMARTQUOTES turned on, get into the habit of entering -the foot- and inch-marks, when you need them, with the -inline escapes -\*[FOOT] and \*[INCH], instead -of ' and ". -

    - - - -


    -

    Convert to upper case

    -
    -Macro: CAPS toggle - -

    -CAPS converts all lower case letters to upper -case. Primarily, it's a support macro used by the -document processing macros, -but you may find it helpful on occasion. CAPS -is a toggle, therefore no argument turns it on, any argument -turns it off. -

    -

    -	.CAPS
    -	All work and no play makes Jack a dull boy.
    -	.CAPS OFF
    -
    - -produces, on output -

    -

    -	ALL WORK AND NO PLAY MAKES JACK A DULL BOY.
    -
    - - - -
    -

    User-defined strings

    -
    -Macro: STRING <name> <what you want in the string> - -

    -You may find sometimes that you have to type out portions of text -repeatedly. If you'd like not to wear out your fingers, you can -define a "string" that, whenever you call it by name, -outputs whatever you put into it. -

    -For example, say you're creating a document that repeatedly uses -the phrase "the Montreal/Windsor corridor". Instead of -typing all that out every time, you could define a string, like -this: -

    -

    -	.STRING mw the Montreal/Windsor corridor
    -
    - -Once a string is defined, you can call it any time with the -inline escape -\*[<stringname>]. Using the example string above -

    -

    -	The schedule for trains along \*[mw]:
    -
    - -produces, on output -

    -

    -	The schedule for trains along the Montreal/Windsor corridor:
    -
    - -NOTE: Be very careful not to put any spaces at the -ends of strings you're defining, unless you want them. Everything -after the name argument you pass to STRING goes -into the string, including trailing spaces. -

    -Experts: STRING is an alias for ds. -You can use either, or mix 'n' match with impunity. -

    - - - -


    -

    Single underscore

    -
    -Macro: UNDERSCORE [ <distance below baseline> ] "<string>" -
    -*Optional argument requires a unit of measure - -

    -By default, UNDERSCORE places an underscore 2 points -beneath the required -string argument. -The string must be enclosed in double-quotes, like this: -

    -

    -	.UNDERSCORE "Unmonitored monopolies breed high prices and poor products."
    -
    - -If you wish to change the distance of the rule from the -baseline, use the optional argument <distance below -baseline> (with a unit of measure). -

    -

    -	.UNDERSCORE 3p "Unmonitored monopolies breed high prices and poor products."
    -
    - -The above places the underscore 3 points below the baseline. -

    - -NOTES: -
    -UNDERSCORE does not work across line breaks in output -copy, which is to say that you can't underscore a multi-line passage -simply by putting the text of the whole thing in the string you pass -to UNDERSCORE. Each -output line -or portion of an output line you want underscored must be plugged -separately into UNDERSCORE. Bear in mind, though, -that underscoring should at best be an occasional effect in typeset -copy. If you want to emphasize an entire passage, it's much, much -better to change fonts (e.g. to italic or bold). -

    -You can easily and successfully underline entire passages in simulated -typewriter-style copy (i.e. if your font is Courier, or you're using -the document processing macro -PRINTSTYLE TYPEWRITE), -with the -UNDERLINE -macro. UNDERLINE is designed specifically for this -purpose, but works only with the Courier font. -

    -Mom doesn't always get the position and length -of the underscore precisely right in -justified -copy, although she's fine with all the other -fill modes, -as well as with the no-fill modes. As of this writing, I have -no solution to the occasional problems with justified copy. -

    -UNDERSCORE tends to confuse -gxditview, even though the output, when -printed, looks fine. Generally, I recommend using gv -to preview files anyway. See the section on -previewing. -

    - - - -


    -

    Double underscore

    -
    -Macro: UNDERSCORE2 [ <distance below baseline> [ <distance between rules> ] ] "<string>" -
    -*Optional arguments require a unit of measure - -

    -By default, UNDERSCORE2 places a double underscore -2 points beneath the required -string argument. -The string must be enclosed in double-quotes, like this: -

    -

    -	.UNDERSCORE2 "Unmonitored monopolies breed high prices and poor products."
    -
    - -The default distance between the two rules is 2 points. -

    -If you wish to change the distance of the double underscore from -the baseline, use the optional argument <distance below -baseline> (with a unit of measure), e.g., -

    -

    -	.UNDERSCORE2 3p "Unmonitored monopolies breed high prices and poor products."
    -
    - -which places the double underscore 3 points below the baseline. -

    -If you wish to change the distance between the two rules as -well, use the second optional argument <distance between -rules> (with a unit of measure). Be aware that you must -give a value for the first optional argument if you want to use -the second. -

    -NOTE: the same restrictions and caveats apply -to UNDERSCORE2 as to -UNDERSCORE. See the -NOTES -for UNDERSCORE. -

    - - - -


    -

    Underline text -- Courier font only!

    -
    -Macro: UNDERLINE toggle - -

    -If your font is Courier, or you're using the document processing macro -PRINTSTYLE TYPEWRITE, -UNDERLINE allows you to underline words and -passages that, in typeset copy, would be italicized. You invoke -UNDERLINE as you do with all toggle macros -- -by itself (i.e. with no argument) to initiate underlining, and -with any argument to turn underlining off. -

    -When on, UNDERLINE underlines letters, words -and numbers, but not punctuation or spaces. This makes for more -readable copy than a solid underline. -

    -NOTE: Underlining may also be turned on and off -inline -with the escapes -\*[UL]...\*[ULX]. -

    - - - -


    -

    Inline escape for underlining -- Courier font only!

    -
    -Inline: \*[UL]...\*[ULX] - -

    -If your font is Courier, or you're using the document processing macro -PRINTSTYLE TYPEWRITE, -\*[UL]...\*[ULX] underlines words and -passages that, in typeset copy, would be italicized. -

    -\*[UL] underlines all letters, words and numbers -following it, but not punctuation or spaces. This makes for more -readable copy than a solid underline. When you no longer want -underlining, \*[ULX] turns underlining off. -

    -The macro -UNDERLINE -and the inline escape \*[UL] are functionally -identical, hence -

    -

    -	.FAM     C
    -	.FT      R
    -	.PT_SIZE 12
    -	.LS      24
    -	.SS      0
    -	.QUAD    LEFT
    -	Which should I heed?
    -	.UNDERLINE
    -	Just do it
    -	.UNDERLINE OFF
    -	or
    -	.UNDERLINE
    -	just say no?
    -	.UNDERLINE OFF
    -
    - -produces the same result as -

    -

    -	.FAM     C
    -	.FT      R
    -	.PT_SIZE 12
    -	.LS      24
    -	.SS      0
    -	.QUAD    LEFT
    -	Which should I heed? \*[UL]Just do it\*[ULX] or \*[UL]just say no?\*[ULX]
    -
    - - - -
    -

    Insert space into lines

    -
    -Macro: PAD "<string with pad markers inserted>" [NOBREAK] - -

    -With PAD, you can insert unspecified amounts of -whitespace into a line. The optional NOBREAK -argument tells mom not to advance on the page -after the PAD macro has been invoked. -

    -PAD calculates the difference between the length of -text on the line and the distance remaining to its end, then inserts -the difference (as whitespace) at the place(s) you specify. -

    -Take, for example, the following relatively common typesetting -situation, found at the bottom of legal agreements: -

    -

    -	Date             Signature                               |
    -
    - -The person signing the agreement is supposed to fill in the date -as well as a signature. Space needs to be left for both, but -the exact amount is neither known, nor important. All that -matters is that there be a little space after Date, and rather -more space after Signature. (In the above, | represents -the end of the line at the prevailing line length.) -

    -The -pad marker -(see below) is # (the pound or number sign on your keyboard) and -can be used multiple times in a line. With that in mind, here's how -you'd input the Date/Signature line (assuming a length of 30 picas): -

    -

    -	.LL 30P
    -	.PAD "Date#Signature###"
    -
    - -When the line is output, the space remaining on the line, after -"Date" and "Signature" have been taken into -account, is split into four (because there are four # signs). -One quarter of the space is inserted between Date and Signature, -the remainder is inserted after Signature. - -

    -One rarely wants merely to insert space in a line; one usually -wants to fill it with something, hence PAD is -particularly useful in conjunction with -string tabs. -The following uses the Date/Signature example above, but adds -rules into the whitespace through the use of string tabs and -mom's -inline escape -\*[RULE]. -(Instead of \*[RULE], -groff's line drawing function, -\l -could be used.) -

    -

    -	.LL 30P
    -	.PAD "Date \*[ST1]#\*[ST1X] Signature \*[ST2]###\*[ST2X]" NOBREAK
    -	.ST 1 J
    -	.ST 2 J
    -	.TAB 1
    -	\*[RULE]
    -	.TN
    -	\*[RULE]
    -	.TQ
    -
    - -If you're not a typesetter, and if you're new to groff, the -example probably looks like gibberish. My apologies. However, -remember that typesetting is a craft, and without having studied -the craft, it takes a while to grasp its concepts. -

    -Basically, what the example does is: -
    -

      -
    1. Pads the Date/Signature line (using the pad marker #), - encloses the padded space with two string tabs markers, - and outputs the line. -
      -
    2. Sets the two string tabs (notice the use of - EL - beforehand; you don't want mom - to advance a line at this point). -
      -
    3. Calls the first string tab and draws a rule to its full - length. -
      -
    4. Calls the second tab with - TN - (which moves to tab 2 and stays on the same baseline) - then draws a rule to the full length of string tab 2. -
    -
    -Often, when setting up string tabs this way, you don't want the -padded line to print immediately. To accomplish this, use -SILENT. -See the quickie tutorial on string tabs -for an example. -

    -NOTE: Because the pound sign (#) is used as the pad -marker, you can't use it as a literal part of the pad string. If you -need the sign to appear in the text of a padded line, change the pad -marker with PAD_MARKER. Also, be aware -that # as a pad marker only applies within the PAD -macro; at all other times it prints literally, just as you'd expect. -

    -Another important consideration when using PAD is that -because the string must be enclosed in double-quotes, you can't use the -double-quote (") as part of the string. The way to circumvent -this is to use the groff -inline escapes -\(lq and \(rq (leftquote and -rightquote respectively) whenever double-quotes are required in the -string passed to PAD. -

    - - - -


    -

    Change/set the marker used with PAD

    -
    -Macro: PAD_MARKER <character to use as the pad marker> - -

    -If you need to change mom's default pad marker -(#), either because you want a literal # in the padded line, -or simply because you want to use another character instead, use -PAD_MARKER, whose argument is the new pad marker -character you want. -

    -

    -	.PAD_MARKER @
    -
    - -changes the pad marker to @. -

    -Once you've changed the pad marker, the new marker remains in -effect for every instance of -PAD -until you change it again (say, back to the pound sign). -

    - - - -


    -

    Inline escape to add leaders to a line

    -
    -Inline: \*[LEADER] - -

    -Whenever you want to fill a line or tab with -leaders, -use the -inline escape -\*[LEADER]. The remainder of the line or tab will be -filled with the leader character. Mom's -default leader character is a period (dot), but you can change -it to any character you like with -LEADER_CHARACTER. -

    -NOTE: \*[LEADER] fills lines -or tabs right to their end. You cannot insert leaders into a -line or tab and have text following the leader on the same line -or in the same tab. Should you wish to achieve such an effect -typographically, create tabs for each element of the line and -fill them appropriately with the text and leaders you need. -String tabs are perfect for this. An -example follows. -

    -

    -	.LL 30P
    -	.PAD "Date\*[ST1]#\*[ST1X]Signature\*[ST2]###\*[ST2X]"
    -	.EL
    -	.ST 1 J
    -	.ST 2 J
    -	.TAB 1
    -	\*[LEADER]
    -	.TN
    -	\*[LEADER]
    -	.TQ
    -
    - -The PAD line sets the words Date and Signature, -and marks string tabs around the pad space inserted in the line. -The string tabs are then "set", called, and filled -with leaders. The result looks like this: -

    -

    -	Date.............Signature.....................................
    -
    - - - -
    -

    Change/set the leader character

    -
    -Macro: LEADER_CHARACTER <character> - -

    -LEADER_CHARACTER takes one argument: a single -character you would like to be used for -leaders. -(See -\*[LEADER] for an explanation of how to -fill lines with leaders.) -

    -For example, to change the leader character from mom's -default (a period) to the underscore character, enter -

    -

    -	.LEADER_CHARACTER _
    -
    - - - -
    -

    Drop caps

    -
    -Macro: DROPCAP <dropcap letter> <number of lines to drop> [ COND <percentage> | EXT <percentage> ] - -

    -The first two arguments to DROPCAP are the letter you -want to be the -drop cap -and the number of lines you want it to drop. By default, -mom uses the current family and font for the drop cap. -

    -The optional argument (COND or EXT) indicates that you want the -drop cap condensed (narrower) or extended (wider). If you use -COND or EXT, you must follow the -argument with the percentage of the letter's normal width you want -it condensed or extended. No percent sign (%) is required. -

    -Mom will do her very best to get the drop cap to -line up with the first line of text indented beside it, then set -the correct number of indented lines, and restore your left margin -when the number of drop cap lines has been reached. -

    -Beginning a paragraph with a drop cap "T" looks -like this: -

    -

    -	.DROPCAP T 3 COND 90
    -	he thousand injuries of Fortunato I had borne as best I
    -	could, but when he ventured upon insult, I vowed revenge.
    -	You who so well know the nature of my soul will not suppose,
    -	however, that I gave utterance to a threat...
    -
    - -The drop cap, slightly condensed but in the current family and font, -will be three lines tall, with whatever text fills those three -lines indented to the right of the letter. The remainder of the -paragraph's text will revert to the left margin. -

    -NOTE: When using the -document processing macro -PP, -DROPCAP only works -
    -

      -
    • with initial paragraphs (i.e. at the start of the document, - or after - HEAD), -
    • when DROPCAP comes immediately after PP, -
    • and when the - PRINTSTYLE - is TYPESET. -
    -
    -If these conditions aren't met, DROPCAP is silently ignored. -

    -WARNING: DROPCAP puts a bit of -a strain on resource-challenged systems. If you have such a -system and use drop caps extensively in a document, be prepared -for a wait while mom does her thing. - -

    Support macros for DROPCAP

    -Drop caps are the bane of most typesetters' existence. It's -very difficult to get the size of the drop cap right for the -number of drop lines, especially if the drop cap is in a -different family from the prevailing family of running text. -Not only that, but there's the gutter around the drop cap to -take into account, plus the fact that the letter may be too wide -or too narrow to look anything but odd or misplaced. -

    -Mom solves the last of these problems with the -COND and EXT arguments. The -rest she solves with macros that change the default behaviour of -DROPCAP, namely -

    -DROPCAP_FAMILY, -
    -DROPCAP_FONT, -
    -DROPCAP_COLOR, -
    -DROPCAP_ADJUST -
    -and -
    -DROPCAP_GUTTER. -

    -These macros must, of course, come before you invoke -DROPCAP. - -

    DROPCAP_FAMILY

    - -Set the drop cap family by giving -DROPCAP_FAMILY the name of the family you want, -e.g. -

    -

    -	.DROPCAP_FAMILY H
    -
    - -which will set the family to Helvetica for the drop cap only. - -

    DROPCAP_FONT

    - -Set the drop cap font by giving -DROPCAP_FONT the name of the font you want, -e.g. -

    -

    -	.DROPCAP_FONT I
    -
    - -which will set the font to italic for the drop cap only. - -

    DROPCAP_ADJUST

    - -If the size mom calculates for the drop cap -isn't precisely what you want, you can increase or decrease it -with DROPCAP_ADJUST, like this: -e.g. -

    -

    -	.DROPCAP_ADJUST +1
    -	    or
    -	.DROPCAP_ADJUST -.75
    -
    - -DROPCAP_ADJUST only understands -points, -therefore do not append any -unit of measure -to the argument. And always be sure to prepend the plus or -minus sign, depending on whether you want the drop cap larger or -smaller. - - -

    DROPCAP_COLOR

    - -If you'd like your drop cap colourized, simply invoke -DROPCAP_COLOR with the name of a colour you've already -created ("initialized") with -NEWCOLOR -or -XCOLOR. Only the drop cap will be -colourized; all other text will remain at the current colour -default (usually black). - -

    DROPCAP_GUTTER

    - -By default, mom puts three points of space -between the drop cap and the text indented beside it. If you -want another value, use DROPCAP_GUTTER (with a -unit of measure), like this: -

    -

    -	.DROPCAP_GUTTER 6p
    -
    - - - -
    -

    Superscript

    -
    -Inlines: \*[SUP]...\*[SUPX] - -

    -Superscripts are accomplished -inline. -Whenever you need one, typically for numerals, all you need to -do is surround the superscript with the inlines above. -\*[SUP] begins superscripting; -\*[SUPX] turns it off. - - -

    -If your running type is -pseudo-condensed -or -pseudo-extended -and you want your superscripts to be equivalently pseudo-condensed or --extended, use \*[CONDSUP]...\*[CONDSUPX] or -\*[EXTSUP]...\*[EXTSUPX]. -

    -The superscript inlines are primarily used by the -document processing macros -for automatic generation of numbered footnotes. However, you may -find them useful for other purposes. -

    -NOTE: Mom does a pretty fine job of -making superscripts look good in any font and at any size. If you're -fussy, though (and I am), about precise vertical placement, kerning, -weight, size, and so on, you may want to roll your own solution. -And sorry, there's no mom equivalent for subscripts. -I'm neither a mathematician nor a chemist, so I don't need them. -Of course, anyone who wishes to contribute a subscript routine to -mom will receive eternal blessings not only in this -lifetime, but in all lifetimes to come. -

    -


    -Next   -Prev   -Top   -Back to Table of Contents - - diff --git a/src/contrib/mom/momdoc/headfootpage.html b/src/contrib/mom/momdoc/headfootpage.html deleted file mode 100644 index ac34eb8..0000000 --- a/src/contrib/mom/momdoc/headfootpage.html +++ /dev/null @@ -1,1636 +0,0 @@ - - - - -Mom -- Document processing: headers, footers and pagination - - - - - -Next   -Prev   -Back to Table of Contents -

    - - - -

    PAGE HEADERS, FOOTERS, AND PAGINATION

    - - - - - -

    Introduction

    -
    - -Headers -and -footers, -as defined in the section -Mom's Document Processing Terms, -are those parts of a document that contain information about the document -itself which appear in the margins either above or below -running text. -They are, in all respects but two, identical. The differences are: -

    -

      -
    1. headers appear in the margin above running text while - footers appear in the margin beneath running text; -
    2. the (optional) rule that separates headers from running - text appears below the header while - the (optional) rule that separates footers from running - text appears above the footer. -
    - -

    -Because headers and footers are virtually identical, this -documentation addresses itself only to headers. In all cases, -unless otherwise noted, descriptions of headers -describe footers as well. -

    -Furthermore, any -control macro -that begins with HEADER_ may be used to control -footers, simply by replacing HEADER_ with -FOOTER_. -

    -Author's note: Left to their own devices (i.e. if -you're happy with the way mom does things by default), -headers are something you never have to worry about. You can skip -reading this section entirely. But if you want to change them, be -advised that headers have more macros to control their appearance than -any other document element. The text of this documentation becomes -correspondingly dense at this point. - -

    -NOTE: While the single page number that -mom generates in either the top or bottom margin -above or below running text is technically a kind of header/footer, -mom and this documentation treat it as a -separate page element. -

    - -

    General description of headers/footers

    -

    -Headers comprise three distinct parts: a left part, a centre part, -and a right part. Each part contains text (a "string") -that identifies some aspect of the document as a whole. -

    -The left part ("header left") lines up with the document's -left margin. The centre part ("header centre") is -centred on the document's line length. The right part ("header -right") lines up with the document's right margin. Not all parts -need contain a string, and if you don't want headers at all, you can -turn them off completely. -

    -A note to groff experts: Although -mom's headers resemble the three-part titles generated -by .tl, they're in no way related to it, nor based -upon it. .tl is not used at all in mom. -

    -Normally, mom fills headers with strings appropriate -to the document type selected with -DOCTYPE. -You can, however, supply whatever strings you like -- including page -numbers -- to go in any part of headers. What's more, you can set the -family, font, size and capitalization style (caps or caps/lower-case) -for each header part individually. -

    -By default, mom prints a horizontal rule beneath -headers to separate them visually from running text. In the case of -footers, the rule is above running text. You can increase -or decrease the space between the header and the rule if you like (with -HEADER_RULE_GAP), -or remove it completely. -

    - -

    Default specs for headers/footers

    -

    -Mom makes small type adjustments to each part of -the header (left, centre, right) to achieve an aesthetically -pleasing result. The defaults are listed below. (The strings -mom puts by default in each part are explained in -DOCTYPE.) -

    -NOTE: Except for capitalization (all caps or -caps/lower-case), these defaults apply only to -PRINTSTYLE TYPESET. -

    -

    -TYPE SPEC    HEADER LEFT         HEADER CENTER       HEADER RIGHT
    ----------    -----------         -------------       ------------
    -Family       document default    document default    document default
    -Font         roman               italic              roman
    -Colour       (black)             (black)             (black)
    -All caps     no                  no                  yes
    -Size*        -.5 (points)        -.5 (points)        -2 (points)
    -            (-2 if all caps)    (-2 if all caps)    (-.5 if not all caps)
    -
    -*Relative to the point size of type in paragraphs
    -
    - -You can, of course, change any of the defaults using the appropriate -control macros. And should you wish to design headers from the ground -up, mom has a special macro, -HEADER_PLAIN, -that removes all type adjustments to headers. The straightforward -type specs for paragraphs are used instead, providing a simple -reference point for any alterations you want to make to the family, -font, size and capitalization style of any header part. -

    - -

    Vertical placement and spacing of headers/footers

    -

    -As explained in the section on -typesetting macros in document processing, -the top and bottom margins of a mom document -are the vertical start and end positions of -running text, -not the vertical positions of headers or footers, which, by definition, -appear in the margins above (or below) running text. -

    -The vertical placement of headers -is controlled by the macro -HEADER_MARGIN, -which establishes the -baseline -position of headers relative to the top edge of the page. -The header rule, whose position is relative to the header itself, -is controlled by a separate macro. -FOOTER_MARGIN establishes the baseline position of -footers relative to the bottom edge of the page. -

    -HEADER_GAP establishes -the distance between headers and the start of running text (effectively -making HEADER_MARGIN + HEADER_GAP the top margin of -running text unless you give mom a literal top margin -(with -T_MARGIN), -in which case she ignores HEADER_GAP and starts -running text at whatever top margin you gave. -FOOTER_GAP and -B_MARGIN -work similarly, except they determine where running text -ends on the page. (See -FOOTER MARGIN AND BOTTOM MARGIN -- VERY IMPORTANT! -for a warning about possible conflicts between the footer margin -and the bottom margin.) -

    -Confused? Mom apologizes. It's really quite -simple. By default, mom sets headers 4-1/2 -picas -down from the top of the page and starts running text 3 picas (the -HEADER_GAP) beneath that, which means the -effective top margin of running text is 7-1/2 picas (visually approx. 1 -inch). If you give mom a literal top margin (with -T_MARGIN), -she ignores the HEADER_GAP and starts running -text at whatever top margin you gave. -

    -Footers are treated the same way, the only difference being the -default distances. Mom sets footers 3 picas up from -the bottom of the page, and interrupts the processing of running text 3 -picas (the FOOTER_GAP) above that (again, visually -approx. 1 inch). If you give mom a literal bottom -margin (with B_MARGIN), she ignores the -FOOTER_GAP and interrupts the processing of running -text at whatever bottom margin you gave. -

    -If mom is paginating your document (she -does, by default, at the bottom of each page), the vertical -spacing and placement of page numbers, whether at the top -or the bottom of the page, is managed exactly as if the -page numbers were headers (or footers), and are controlled -by the same macros. See -Pagination control. -

    -


    - - - - -

    Managing headers/footers

    -
    - -

    -The following are the basic macros for turning -headers -or -footers -on or off. They should be invoked prior to -START. -

    -By default, mom prints page headers. If you turn -them off, she will begin -running text -on each page with a default top margin of 6 -picas -unless you have requested a different top margin (with -T_MARGIN) -prior to -START. -

    -Please note that headers and footers are mutually exclusive. If -headers are on, footers (but NOT bottom-of-page numbering) are -automatically turned off. Equally, if footers are on, headers -(but NOT top-of-page numbering) are automatically turned off. Thus, if -you'd prefer footers in a document, you need only invoke -FOOTERS; -there's no need to turn headers off first. -

    - - - -


    -

    - -Macro: HEADERS toggle - -

    -Page headers -are on by default. If you don't want them, turn them off by -invoking HEADERS with any argument -(OFF, QUIT, END, X...), e.g. -

    -

    -	.HEADERS OFF
    -
    -

    -NOTE: HEADERS automatically -disables -footers -(you can't have both), but not the page numbers that normally -appear at the bottom of the page. -

    -ADDITIONAL NOTE: If HEADERS -are OFF, mom's normal top -margin for -running text -(7.5 -picas) -changes to 6 picas (visually approx. 1 inch). This does NOT apply -to the situation where footers have been explicitly turned on -(with -FOOTERS). -Explicitly invoking footers moves page numbering to the -top of the page, where its placement and spacing are the same as -for headers. (I.e. the top margin of running text remains 7.5 -picas.) -

    - - - -


    -

    - -Macro: FOOTERS toggle - -

    -Page footers -are off by default. If you want them instead of -headers -(you can't have both), turn them on by invoking -FOOTERS without an argument, e.g. -

    -

    -	.FOOTERS
    -
    - -

    -FOOTERS automatically disables headers, and -mom shifts the placement of page numbers from their -normal position at page bottom to the top of the page. -

    -NOTE: By default, when footers are on, -mom does not print a page number on the first -page of a document, nor on first pages after -COLLATE. -If you don't want this behaviour, you can change it with -PAGENUM_ON_FIRST_PAGE. -

    - - - -


    -

    - -Macro: FOOTER_ON_FIRST_PAGE toggle - -

    -If you invoke -FOOTERS, -mom, by default, does not print a footer on the -first page of the document. (The -docheader -on page 1 makes it redundant.) However, should you wish a footer on -page 1, invoke FOOTER_ON_FIRST_PAGE without any argument. -

    -


    - - - - -

    User-defined, single string recto/verso headers/footers

    -
    - -

    Introduction

    - -Sometimes, you'll find you can't get mom's handling -of 3-part headers or footers to do exactly what you want in the -order you want. This is most likely happen when you want the -information contained in the headers/footers split over two pages, -as is often the case with recto/verso documents. -

    -Say, for example, you want recto page headers to contain a document's -author, centred, and verso page headers to contain the document's -title, also centred, like this: -

    -

    -	+------------------------+   +------------------------+     
    -	|         Author         |   |         Title          |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	+------------------------+   +------------------------+     
    -
    - -With mom's standard 3-part headers, this isn't -possible, even when -RECTO_VERSO -is enabled. RECTO_VERSO switches the left and -right parts of headers on alternate pages, but the centre -part remains unchanged. -

    -Any time you need distinctly different headers on alternate -pages, mom has macros that let you manually -design and determine what goes into headers on recto pages, and -what goes into headers on verso pages. The macros are -HEADER_RECTO -and -HEADER_VERSO. -Both allow you to state whether the header is flush left, centred, -or flush right, and both take a single -string argument -with which, by combining text and -inline escapes, -you can make the headers come out just about any way you want. -Use of the \*[PAGE#] escape is permitted in the -string argument (see -Including the page number in header-left, -centre or -right), -and as an added bonus, mom provides a special -mechanism whereby it's possible to "pad" the string as well. -

    - - - -


    -

    - -Macro: HEADER_RECTO LEFT | CENTER | RIGHT "<header recto string>" -
    -Macro: HEADER_VERSO LEFT | CENTER | RIGHT "<header verso string>" -
    - -

    -HEADER_RECTO and HEADER_VERSO behave -identically, hence all references to HEADER_RECTO -in this section also refer to HEADER_VERSO. -Furthermore, FOOTER_ can be used instead of -HEADER_ to set up recto/verso footers. -

    -The first argument to HEADER_RECTO is the -direction in which you want the header -quadded. -L, C and R may be used in -place of LEFT, CENTER and -RIGHT. The second argument is a string, -surrounded by double-quotes, containing what you want in the -header. HEADER_RECTO disables mom's -normal 3-part headers, therefore anything you want in the -headers must be entered by hand in the string, including colours -(via the -inline escape -\*[<colorname>]). -

    -By default, HEADER_RECTO is set at the same -size, and in the same family and font, as paragraph text. The -control macros -HEADER_FAMILY -and -HEADER_SIZE -may be used to change the default family and size. Changes to -the font(s) within the string must be accomplished with the -inline escapes -\*[ROM], \*[IT], \*[BD], \*[BDI] and -\*[PREV] (see -Changing fonts). -Additional refinements to the style of the header-recto string, -including horizontal spacing and/or positioning, can also be made with -inline escapes. -

    -To include the current page number in the string, use the -\*[PAGE#] inline. -
    - -

    *Padding the HEADER_RECTO/HEADER_VERSO string

    -You can "pad" the header-recto string, a convenience you'll -appreciate in circumstances such as the following. -

    -

    -	           VERSO                       RECTO 
    -	+------------------------+   +------------------------+     
    -	| Author          Page#  |   | Page#            Title |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	|                        |   |                        |     
    -	+------------------------+   +------------------------+     
    -
    - -To pad the string argument passed to HEADER_RECTO, -begin and end the string (inside the double-quotes) with the caret -character (^). Enter the pound sign (#) at any -point in the string where you want an equalized amount of whitespace -inserted. (If you're unsure what padding is, see -Insert space into lines.) -Note that if you're padding the string, it doesn't matter what -quad direction you give HEADER_RECTO since -padding, by its nature, justifies text to the left and right -margins. -

    -The situation depicted above is accomplished like this: -

    -

    -	.HEADER_RECTO LEFT "^\*[PAGE#]#Title^"
    -	.HEADER_VERSO LEFT "^Author#\*[PAGE#]^"
    -
    - -Note that mom does not interpret the # -in \*[PAGE#] as a padding marker (i.e. as a place -to insert whitespace). -

    -Also, notice that the argument LEFT is used in both -cases. When padding a header, it doesn't matter whether you use -LEFT, CENTER or RIGHT as the argument. -

    -Furthermore, should you need a user-defined header of -the sort provided by HEADER_RECTO and -HEADER_VERSO but aren't actually printing -recto/verso, you can use HEADER_RECTO to design the -header that appears at the top of every page. -

    -IMPORTANT: The -PAD_MARKER -macro, which changes the default pad marker (#) used by -PAD, -has no effect on the pad marker used in the -HEADER_RECTO string. If you absolutely must -have a literal pound sign in your HEADER_RECTO -string, use the escape sequence for the pound sign -(\[sh]) where you want the pound sign to go. -

    -


    - - -

    Control macros for headers/footers

    -
    -Virtually every part of headers (see the paragraph on how -"headers" means "footers" -in the -introduction to headers/footers) -can be designed to your own specifications. -

    - - -

    Header/footer control macros

    - - - - - - -
    -

    Header/footer strings

    -

    - - Macro: HEADER_LEFT "<text of header left>" | # - -
    - - Macro: HEADER_CENTER "<text of header centre>" | # - -
    - - Macro: HEADER_RIGHT "<text of header right>" | # - - -

    -To change the text (the "string") of the left, centre, -or right part of headers, invoke the appropriate macro above with -the string you want. For example, mom, by default, -prints the document's author in the header-left position. If your -document has, say, two authors, and you want both their names to -appear header-left, change HEADER_LEFT like this: -

    -

    -	.HEADER_LEFT "R. Stallman, E. Raymond"
    -
    - -Because the arguments to HEADER_LEFT, _CENTER, -and _RIGHT are -string arguments, -they must be enclosed in double-quotes. -

    -NOTE: Replace HEADER_, above, -with FOOTER_ to change the strings in footers. - -

    *Padding the header/footer centre string

    -

    -Macro: HEADER_CENTER_PAD LEFT | RIGHT <amount of space by which to pad centre string left or right> -
    -*Requires a unit of measure -

    -By default, mom centres the header centre string -literally on the line length in effect for page headers. In some -cases, notably when the header left or header right strings are -particularly long, the effect isn't pretty. The offendingly long -header left or right crowds, or even overprints, the header centre. -That's where HEADER_CENTER_PAD comes in. With a -bit of experimentation (yes, you have to preview the document), you -can use HEADER_CENTER_PAD to move the header -centre string left or right until it looks acceptably centred -between the two other strings. -

    -For example, say your document is an outline for a novel called "By -the Shores of Lake Attica." You've told mom -you want -

    -    DOCTYPE - -NAMED "Outline" -

    -but when you preview your work, you see that "Outline", in the -centre of the page header, is uncomfortably close to the title, -which is to the right of it. By invoking -

    -

    -	.HEADER_CENTER_PAD RIGHT 3P
    -
    - -you can scoot the word "Outline" over three -picas -to the left (the padding's added to the right of the string) -so that your head looks nicely spaced out. Invoking -HEADER_CENTER_PAD with the LEFT -argument obviously puts the padding on the left side of the string. -

    -Most reassuring of all is that if you use -HEADER_CENTER_PAD conjunction with -RECTO_VERSO, -mom will pad the centre string appropriately left -OR right, depending on which page you're on, without you having to -tell her to do so. -

    - -


    -

    -

    Using mom's "reserved" strings in header/footer definitions

    -

    -As pointed out in the author's note in the introduction to -headers/footers, headers and footers are something you don't -normally have to worry much about. Mom usually -knows what to do. -

    -However, situations do arise where you need to manipulate what goes -in the header/footer strings, setting and resetting them as you go -along. A case where you might want to do this would be if you want -to output endnotes at the end of each document in a series of -collated -documents, and you want the word "Endnotes" to go in the header -centre position of the endnotes, but want, say, the -TITLE -to go back into the centre position for the next output document. -

    -In scenarios like the above, mom has a number of -"reserved" strings that you can plug into the -HEADER_LEFT, _CENTER and _RIGHT -macros. They are: -

    -

    -	\*[$TITLE]          -- the argument passed to .TITLE
    -	\*[$DOCTITLE]       -- the argument passed to .DOCTITLE
    -	\*[$AUTHOR_1]       -- the first argument passed to .AUTHOR
    -	\*[$CHAPTER_STRING] -- the argument passed to .CHAPTER_STRING,
    -	                       if invoked, otherwise, "Chapter"
    -	\*[$CHAPTER]        -- the argument (typically a number) passed
    -	                       to .CHAPTER
    -	\*[$CHAPTER_TITLE]  -- the argument passed to .CHAPTER_TITLE
    -
    - -Returning to the scenario above, first, you'd define a centre -string for the endnotes page: -

    -

    -	.HEADER_CENTER "Endnotes"
    -
    - -Then, you'd output the endnotes: -

    -

    -	.ENDNOTES
    -
    - -Then, you'd prepare mom for the next document: -

    -

    -	.COLLATE
    -	.TITLE "New Doc Title"
    -	.AUTHOR "Josephine Blough"
    -
    - -Then, you'd redefine the header centre string using the reserved -string \*[$TITLE], like this: -

    -

    -	.HEADER_CENTER "\*[$TITLE]"
    -
    - -And last, you'd do: -

    -

    -	.START
    -
    - -Voilà! Any argument you pass to TITLE from here -on in (say, for subsequent documents) is back in the header centre -position. Here's the whole routine again: -

    -

    -	.HEADER_CENTER "Endnotes"
    -	.ENDNOTES
    -	.COLLATE
    -	.TITLE         "New Doc Title"
    -	.AUTHOR        "Josephine Blough"
    -	.HEADER_CENTER "\*[$TITLE]"
    -	.START
    -
    - -If need be, you can concatenate the strings, as in the following -example. -

    -

    -	.HEADER_CENTER "\*[$CHAPTER_STRING] \*[$CHAPTER]"
    -
    - -which, assuming a .CHAPTER_STRING of -"Chapter" and a .CHAPTER of -"2", would put "Chapter 2" in the header centre -position. -

    - - -

    *Replacing header-left, -CENTER or -right with the page number

    - -

    -If you would like to have the current page number to appear -header-left, -center, or -right instead of a text -string, invoke the appropriate macro, above, with the single -argument # (the "number" or -"pound" sign). Do NOT use -double-quotes. For example, -

    -

    -	.HEADER_CENTER #
    -
    - -will print the current page number in the CENTER part of -headers. -

    - - -

    *Including the page number in header-left, -CENTER or -right

    - -

    -If you would like to include the current page number in -the string you pass to HEADER_LEFT, _CENTER, or -_RIGHT, use the special -inline escape -\*[PAGE#] in the string argument. -

    -For example, say you have a document that's ten pages long, and -you want header-right to say "page <whichever> of 10", -invoke HEADER_RIGHT as follows: -

    -

    -	.HEADER_RIGHT "page \*[PAGE#] of 10"
    -
    - -Header-right of page two will read "page 2 of 10", -header-right of page three will read "page 3 of 10", -and so on. -

    -


    - - - -

    Header/footer style

    - -

    -Global changes -

    -The following macros allow you to make changes that affect all -parts of the header at once. -

    -Please note that HEADER_FAMILY and -HEADER_FONT have no effect on -PRINTSTYLE TYPEWRITE. -

    -

    - -
    -

    - - Macro: HEADER_FAMILY <family> - - -

    -By default, mom uses the default document family -for headers. If you would like her to use another -family -in headers, invoke HEADER_FAMILY with the identifier -for the family you want. The argument is the same as for the -typesetting macro -FAMILY. -

    -NOTE: Replace HEADER_, above, -with FOOTER_ to change the footer family. -

    - -


    -

    - - Macro: HEADER_SIZE <+|-number of points> -
    - *Argument is relative to the point size of type in paragraphs -
    - -

    -By default, mom makes small adjustments to the size -of each part of a header to achieve an aesthetically pleasing result. -If you'd like her to continue to do so, but would like the overall -appearance of headers to be a little smaller or a little larger, -invoke HEADER_SIZE with + or - the number of -points -(fractions allowed) by which you want her to in/decrease the size -of headers. For example, -

    -

    -	.HEADER_SIZE +.75
    -
    - -increases the size of every part of a header by 3/4 of a point while -respecting mom's own little size changes. -

    -See -Arguments to the control macros -for an explanation of how control macros ending in -_SIZE work. -

    - -NOTE: Replace HEADER_, above, -with FOOTER_ to change the footer size. -

    -ADDITIONAL NOTE: Normally, macros that control headers have no -effect on -PRINTSTYLE TYPEWRITE. -HEADER_SIZE is an exception. While all parts of a -header in PRINTSTYLE TYPEWRITE are always the same -size, you can use HEADER_SIZE with PRINTSTYLE -TYPEWRITE to reduce the header's overall point size. -You'll most likely require this when the -COPYSTYLE -is DRAFT, since portions of the header may overprint -if, say, the title of your document is very long. -

    - -


    -

    - - Macro: HEADER_PLAIN - - -

    -By default, mom makes adjustments to the font, -size, and capitalization style of each part of headers to achieve -an aesthetically pleasing look. Should you wish to design your own -headers from the ground up without worrying how changes to the various -elements of header style interact with mom's defaults, -invoke HEADER_PLAIN by itself, with no argument. -Mom will disable her default behaviour for headers, -and reset all elements of header style to the same family, font, -and point size as she uses in paragraphs. -

    -NOTE: Replace HEADER_, above, -with FOOTER_ to disable mom's -default behaviour for the various elements of footer style. -

    - -


    -

    - - Macro: HEADER_COLOR <colorname> - - -

    -If you want your headers in a colour different from the document -default (usually black), invoke HEADER_COLOR with -the name of a colour pre-defined (or "initialized") with -NEWCOLOR -or -XCOLOR. -

    -HEADER_COLOR will set all the parts of the header -AND the header rule in the colour you give it as an argument. If -you wish finer control over colour in headers, you can use -HEADER_<POSITION>_COLOR -to colourize each part of the header separately, as well as -HEADER_RULE_COLOR -to change the colour of the header rule. -

    -NOTE: Replace HEADER_, above, -with FOOTER_ to colourize footers. -

    - -


    -

    -Part by part changes -

    -NOTE: When using the following control macros, -replace "<POSITION>" by LEFT, CENTER, -or RIGHT as appropriate. -

    -

    - -
    -

    - - Macro: HEADER_<POSITION>_FAMILY <family> - -

    -Use HEADER_<POSITION>_FAMILY to change the -family -of any part of headers. See -Arguments to the control macros -for an explanation of how control macros ending in -_FAMILY work. -

    -NOTE: Replace HEADER_, above, -with FOOTER_ to change a footer part's family. -

    - -


    -

    - - Macro: HEADER_<POSITION>_FONT <font> - -

    -Use HEADER_<POSITION>_FONT to change the -font -of any part of headers. See -Arguments to the control macros -for an explanation of how control macros ending in -_FONT work. -

    -NOTE: Replace HEADER_, above, -with FOOTER_ to change a footer part's font. -

    - -


    -

    - - Macro: HEADER_<POSITION>_SIZE <+|-number of points> - -

    -Use HEADER_<POSITION>_SIZE to change the size of any -part of headers (relative to the point size of type in -paragraphs). See -Arguments to the control macros -for an explanation of how control macros ending in -_SIZE work. -

    -NOTE: Replace HEADER_, above, -with FOOTER_ to change a footer part's size. -

    - -


    -

    - - Macro: HEADER_<POSITION>_CAPS toggle - -

    -HEADER_<POSITION>_CAPS is a -toggle macro. -If you want any part of headers to be set in all caps, -regardless of the capitalization of that part's string as given -to the -reference macros -or as defined by you with the -header string control macros, -simply invoke this macro (using the appropriate position) with no -argument. If you wish to turn capitalization off (say, for the -header-right string that mom capitalizes by -default), invoke the argument with any argument (e.g. OFF, -QUIT, END, X...). -

    -NOTE: Replace HEADER_, above, -with FOOTER_ to change a footer part's -capitalization style. - -

    -


    -

    - - Macro: HEADER_<POSITION>_COLOR <colorname> - -

    -HEADER_<POSITION>_COLOR allows you to set a -colour for each of the three possible parts of a page header -separately. For example, say you want the right part of the header -(by default, the document title) in red, this is how you'd get it: -

    -

    -	.HEADER_RIGHT_COLOR red
    -
    - -The other parts of the header will be in the default header colour -(usually black, but that can be changed with -HEADER_COLOR). -

    -Remember that you have to define (or "initialize") a -colour with -NEWCOLOR -or -XCOLOR -before you can use the colour. -

    -If you create a -user-defined header -with -HEADER_RECTO -or -HEADER_VERSO, -and you want various elements within the header to be colourized, -embed the colours in the string passed to HEADER_RECTO -or HEADER_VERSO with the -\*[<colorname>] -inline escape. -

    -NOTE: Replace HEADER_, above, -with FOOTER_ to set the colours for the various -elements of footers. -

    -


    - - - - -

    Header/footer vertical placement and spacing

    -
    - -

    -See -Vertical placement and spacing of headers/footers -for an explanation of how mom deals with -headers, footers, and top/bottom page margins. -

    - - - -


    -

    - -Macro: HEADER_MARGIN <distance to baseline of header> -
    -*Requires a unit of measure - -

    -Use HEADER_MARGIN to set the distance from the -top edge of the page to the -baseline -of type in headers. A unit of measure is required, and decimal -fractions are allowed. -

    -Mom's default header margin is 4-1/2 -picas, -but if you want a different margin, say, 1/2-inch, do -

    -

    -	.HEADER_MARGIN .5i
    -
    - -If your document uses -footers, -replace HEADER_, above, with -FOOTER_. The argument to -FOOTER_MARGIN is the distance from the bottom -edge of the page to the baseline of type in footers. -

    -Mom's default footer margin is 3 -picas. - - -

    -FOOTER MARGIN AND BOTTOM MARGIN -- VERY IMPORTANT! -

    -Mom requires a footer margin for proper operation, -hence she sets one, even if you don't. (As stated above, her default -footer margin is 3-picas). -

    -If you set a bottom margin for your document (with -B_MARGIN, -prior to -START) -and the margin's too close to mom's default -footer margin (or a footer margin you set yourself -with FOOTER_MARGIN), mom will -not print your footers; additionally, she'll give you a warning -and some advice on standard error. When this happens, you must -reset either B_MARGIN or -FOOTER_MARGIN so there's an adequate amount of -space for mom to print the bottom line of running -text and the footer. -

    -If you see the warning even when footers and/or bottom-of-page page -numbering are disabled, set a nominal footer margin of 0 prior to -START, -as in these examples. -

    -Example 1 -

    -

    -	<reference macros, etc>
    -	.PAGINATION    OFF
    -	.B_MARGIN      .25i
    -	.FOOTER_MARGIN O
    -	.START
    -
    - -Example 2 -

    -

    -	<reference macros, etc>
    -	.HEADERS       OFF
    -	.PAGENUM_POS   TOP RIGHT
    -	.B_MARGIN      .25i
    -	.FOOTER_MARGIN O
    -	.START
    -
    - -

    A note on header/footer margins and page numbering

    -Mom uses HEADER_MARGIN
    and -FOOTER_MARGIN to establish the baseline -position of page numbers in addition to the baseline position of -headers and footers. -

    -By default, page numbers appear at the bottom of the page, therefore -if you want the default position (bottom), but want to change the -baseline placement, use FOOTER_MARGIN. Conversely, -if page numbers are at the top of the page, either because you turned -FOOTERS -on or because you instructed mom to put them -there with -PAGENUM_POS, -you'd use HEADER_MARGIN to change their -baseline placement. -

    - - - -


    -

    - -Macro: HEADER_GAP <distance from header to start of running text> -
    -*Requires a unit of measure - -

    -Use HEADER_GAP to set the distance from the -baseline -of type in headers to the start of -running text. -A unit of measure is required, and decimal fractions are allowed. -

    -As explained in -Vertical placement and spacing of headers/footers, -HEADER_MARGIN + HEADER_GAP determine the -default vertical starting position of running text on the page -UNLESS you have given mom your own top margin -(with -T_MARGIN). If you give -a top margin, mom ignores -HEADER_GAP; running text starts at your stated -top margin. - -

    -Mom's default header gap is 3 -picas, -but if you want a different gap, say, 2 centimetres, do -

    -

    -	.HEADER_GAP 2c
    -
    - -If your document uses -footers, -replace HEADER_, above, with -FOOTER_. The argument to -FOOTER_GAP is the distance from the -baseline of type in footers to the last baseline of running text -on the page. -

    -As explained in -Vertical placement and spacing of headers/footers, -FOOTER_MARGIN + FOOTER_GAP determine the -default vertical end position of running text on the page -UNLESS you have given mom a bottom margin -(with -B_MARGIN). If you give -a bottom margin, mom ignores -FOOTER_GAP; running text ends at your stated -bottom margin. -

    -Mom's default footer gap is 3 -picas. -

    -NOTE: Mom uses -HEADER_GAP and -FOOTER_GAP to establish the start and end baseline -positions of running text with respect to both headers and footers -AND page numbers. If you wish to change the gap between -the last line of running text and a bottom page number, use -FOOTER_GAP. If page numbers are at the top of the -page, change the gap between the number and the first line of running -text with HEADER_GAP. -

    -


    - - - - -

    Header/footer separator rule

    -
    - -

    -The header/footer separator rule is a modest horizontal rule, -set slightly below the header (or above the footer), that runs -the length of the -header -and helps separate it visually from -running text. If -you don't want the rule, you can turn it off. If you want it, -but at a different vertical position relative to the header (or -footer), you can alter its placement. -

    -

    - - - -
    -

    - -Macro: HEADER_RULE toggle - -

    -By default, mom prints a header separator rule -underneath headers (or above footers). If you don't want the -rule, turn it off by invoking HEADER_RULE with any -argument (OFF, QUIT, END, X...), e.g. -

    -

    -	.HEADER_RULE OFF
    -
    - -To turn the rule (back) on, invoke HEADER_RULE -without any argument. -

    -NOTE: Replace HEADER_, above, -with FOOTER_ to enable/disable the printing of -the footer separator rule. (Most likely, if you're using -FOOTERS, you'll want it off.) -

    - - - -


    -

    - -Macro: HEADER_RULE_GAP distance of rule beneath header -
    -*Requires a unit of measure - -

    -HEADER_RULE_GAP is the distance from the -baseline -of type in headers to the rule underneath. A unit of measure is -required, and decimal fractions are allowed. Please note that -HEADER_RULE_GAP has no effect on -HEADER_GAP -(i.e. HEADER_RULE_GAP is NOT added to -HEADER_GAP when mom calculates -the space between headers and the start of -running text). -

    -By default, the header rule gap is 4 -points. -If you'd like to change it to, say, 1/4 -em, do -

    -

    -	.HEADER_RULE_GAP .25m
    -
    - -NOTE: Replace HEADER_, above, -with FOOTER_ if you're using -footers -and want to change the separator rule gap. In footers, the gap -is measured from the top of the tallest -ascender -in the footer. -

    -ADDITIONAL NOTE: When using -FOOTER_RECTO -and -FOOTER_VERSO, -make sure that the default size for footers -(FOOTER_SIZE) -is set to the largest size of type that will be used in the -footer or mom may not get the rule gap right. -Inline changes to the size of type in -FOOTER_RECTO and FOOTER_VERSO -should always be negative (smaller) than the default. -

    - - - -


    -

    - -Macro: HEADER_RULE_COLOR <colorname> - -

    -If you wish to change the colour of the header rule, invoke -HEADER_RULE_COLOR with the name of a colour -pre-defined (or "initialized") with -NEWCOLOR -or -XCOLOR. -

    -Please note that HEADER_RULE_COLOR overrides the -colour set with -HDRFTR_COLOR, -so that it's possible to have the heads entirely in, say, blue (set -with HEADER_COLOR), and the header rule in, say, -red. -

    -NOTE: Replace HEADER_, above, -with FOOTER_ to change the colour of the footer -rule. -

    -


    - - -

    Pagination

    -
    - -

    -By default, mom paginates documents. Page numbers -appear in the bottom margin of the page, centred between two hyphens. -As with all elements of mom's document processing, -most aspects of pagination style can be altered to suit your taste -with control macros. -

    - - -

    Pagination macros list

    - - - -

    - - - -


    -

    - -Macro: PAGINATE toggle -
    -Alias: PAGINATION - -

    -By default, mom paginates documents (in the bottom -margin). If you'd prefer she not paginate, turn pagination off -by invoking PAGINATE with any argument (OFF, -NO, QUIT, END, X...), e.g. -

    -

    -	.PAGINATE NO 
    -
    - -To (re)start pagination, invoke PAGINATE -without any argument. -

    - - - -


    -

    - -Macro: PAGENUMBER <number> - -

    -As is to be expected, pagination of documents begins at page 1. -If you'd prefer that mom begin with a different -number on the first page of a document, invoke -PAGENUMBER with the number you want. -

    -PAGENUMBER need not be used only to give -mom a "first page" number. It can be used at -any time to tell mom what number you want a -page to have. Subsequent page numbers will, of course, be -incremented by 1 from that number. -

    - - - -


    -

    - -Macro: PAGENUM_STYLE DIGIT | ROMAN | roman | ALPHA | alpha - -

    -PAGENUM_STYLE lets you tell -mom what kind of page numbering you want. -

    - - -
    DIGIT=Arabic digits (1, 2, 3...) -
    ROMAN=upper case roman numerals (I, II, III...) -
    roman=lower case roman numerals (i, ii, iii...) -
    ALPHA=upper case letters (A, B, C...) -
    alpha=lower case letters (a, b, c...)
    -

    - - - -


    -

    - -Macro: PAGENUM_ON_FIRST_PAGE toggle - -

    -This macro applies only if you've enabled -FOOTERS. -If FOOTERS are on, mom automatically -places page numbers at the tops of pages except on -the first page of a document (or on first pages after -COLLATE). If you'd -like the page number to appear on "first" pages when -footers are on, invoke PAGENUM_ON_FIRST_PAGE with -no argument. Any other argument turns the feature off (OFF, -QUIT, END, X...). -

    -As with most of the control macros, -PAGENUM_ON_FIRST_PAGE can be invoked at any time, -meaning that if you don't want a page number on the very first -page of a document, but do want one on pages that appear after -COLLATE, omit it before the first -START -of the document, then invoke it either just before or after your -first COLLATE. -

    - - - -


    -

    - -Macro: DRAFT_WITH_PAGENUMBER - -

    -Sometimes, in -COPYSTYLE DRAFT, -the CENTER part of page headers gets overcrowded because of the draft -and revision information that go there by default. -DRAFT_WITH_PAGENUMBER is one way to -fix the problem. -

    -Invoked without an argument, DRAFT_WITH_PAGENUMBER -removes draft/revision information from the page headers and attaches -it instead to the document's page numbering, in the form -

    -

    -    Draft #, Rev. # / <pagenumber>
    -
    - -See the note in -COPYSTYLE DRAFT -for other ways of dealing with crowded page headers when formatting -draft-style copy. -

    -


    - - - -

    Pagination control macros

    - -
      -
    1. Family/font/size/colour -
    2. Page number position (vertical and horizontal) -
    3. Enclose page numbers with hyphens (on or off) -
    -
    -

    1. Page number family/font/size/colour

    -

    -See -Arguments to the control macros. -

    -

    -.PAGENUM_FAMILY default = prevailing document family; default is Times Roman
    -.PAGENUM_FONT   default = roman
    -.PAGENUM_SIZE   default = 0 (i.e. same size as paragraph text)
    -.PAGENUM_COLOR  default= black
    -
    - -

    2. Page number position

    -

    -Macro: PAGENUM_POS TOP | BOTTOM  LEFT | CENTER | RIGHT - -

    -Use PAGENUM_POS to change the default position of -automatic page numbering. PAGENUM_POS requires -two arguments: a vertical position (TOP or BOTTOM) and a -horizontal position (LEFT or CENTER or RIGHT). -

    -For example, if you turn both -headers -and -footers -off (with .HEADERS OFF and .FOOTERS -OFF) and you want mom to number your -pages at the top right position, enter -

    -

    -	.PAGENUM_POS TOP RIGHT
    -
    - -

    3. Enclose page numbers with hyphens (on or off)

    -

    -By default, mom encloses page numbers between hyphens. -If you don't want this behaviour, invoke the macro -PAGENUM_HYPHENS with any argument (OFF, QUIT, END, X...), -like this: -

    -

    -	.PAGENUM_HYPHENS OFF
    -
    - -If, for some reason, you want to turn page number hyphens back -on, invoke the macro without an argument. -

    - -


    -Next   -Prev   -Top   -Back to Table of Contents - - diff --git a/src/contrib/mom/momdoc/inlines.html b/src/contrib/mom/momdoc/inlines.html deleted file mode 100644 index c6d4b03..0000000 --- a/src/contrib/mom/momdoc/inlines.html +++ /dev/null @@ -1,802 +0,0 @@ - - - - -Mom -- Inline escapes - - - - - -Next   -Prev   -Back to Table of Contents - - -

    - Inline escapes -

    -

    -Introduction to inline escapes -
    -Index of inline escapes -

    - - -

    Introduction to inline escapes

    - - - -Inline escapes, as described in the -groff terms -section of this manual, are typesetting commands that appear in -text -input lines, -as opposed to macros and other -control lines -that must appear on lines by themselves. -

    -Aside from altering type parameters within a line, inlines also -tell groff about special characters -- em-dashes, bullets, -figure/digit-width spaces, -and so on. It is beyond the scope of this manual to provide a -complete list of groff's inline functions and special characters. -I recommend having a look at the -canonical reference materials -should you need more information than is contained herein. -

    -In groff, the escape character is the backslash ( \ ). Groff interprets -everything following the backslash as instructions, not literal text, -until the escape sequence is complete. Should you need the actual -backslash character as part of a line of text, simply enter it twice -( \\ ). Groff understands that this means "please print a backslash -character." (You can also use \e to print a literal -backslash.) -

    -Groff has a number of ways of recognizing what constitutes a complete -escape sequence. This is both a boon and a curse; some escape -sequences have no terminating delimiter and consequently become -difficult to distinguish from real input text. Others require -the use of an opening parenthesis with no corresponding closing -parenthesis. Still others need to be enclosed in square brackets. -

    -Mom recognizes that certain escapes get used more -often than others. For these, she has a consistent input style that -takes the form \*[...], which makes them stand out well from the text -of your documents. These escapes are the ones listed under -Mom's personal inlines. -

    -Despite mom's best intentions, there are still -a number of typesetting functions that can only be accomplished -with groff's native inline escapes. I've listed the ones that -strike me as essential, but there are many others. If you want -to know what they are, please read the -canonical reference materials -pertaining to groff. -

    -HELPFUL BIT OF INFORMATION: Inline escapes can be used -in -document processing macros -that take -string arguments. -

    -

    Inlines index

    - -

    -


    - - - -

    Mom's personal inlines

    - -

    Changing fonts

    - -

    -Mom provides five escapes for changing fonts -inline: -

    - - - - - - - - - - - - - - - - - - - - - -
    \*[ROM]Change font to medium roman
    \*[IT]Change font to medium italic
    \*[BD]Change font to bold roman
    \*[BDI]Change font to bold italic
    \*[PREV]Revert to previous font
    -

    -These escapes are provided for merely for convenience, legibility, -and consistency when typesetting with mom. For -more complete and flexible inline font control, please see -font control with \f. - -

    -NOTE: If you're using the -document processing macros, -inline font changes remain in effect only for the duration of the -current document element tag. -

    - - - -


    -

    Changing point size

    - -

    -Mom has two inline escapes for changing point -size: -

    -

    -	\*[SIZE <size>]
    -
    - -and -

    -

    -	\*[S<size>]
    -
    - -where "size" is the new size you want. You can use -either; they behave exactly the same way. For example, to change -the point size of type inline to 12 points, you could enter either -

    -

    -	\*[SIZE 12]
    -
    - -or -

    -

    -	\*S[12]
    -
    - -The advantage of the first form is that it's easy to remember, and -follows mom's usual inline syntax. The advantage -of the second is that it's more concise. -

    -Notice that in both cases, the new size does not require a -unit of measure; -points -is assumed. However, a unit of measure may be appended to the size -if that's what you wish. Fractional sizes are, of course, allowed. -

    -The size given to \*[SIZE <size>] or -\*S[<size>] may be expressed in plus or minus -terms, which can be very useful. In the following examples, the word -"mom" will be output 2 points larger than the point size -of the rest of the line. -

    -

    -	While she isn't perfect, \*S[+2]mom\*S[-2] isn't half bad.
    -	While she isn't perfect, \*[SIZE +2]mom\*[SIZE -2] isn't half bad.
    -
    - -NOTE: If you're accustomed to groff's usual way -of handling inline size requests (\sN, \s±N, \s(NN, \s±(NN, -\s[NNN], \s±[NNN]), feel free to continue with your old habits. -Mom doesn't care. -

    - - - -


    -

    Pairwise kerning

    - -

    -Pairwise kerning means moving specific letter pairs closer -together or further apart (see -Typesetting terms, kerning -for more details). -

    -Mom permits inline pairwise -kerning through the use of the inline escapes - - - - - - - - - -
    \*[BU n]
    Closes the space between letters (Back Units).
    \*[FU n]
    Opens the space between letters (Forward Units).
    -
    -"n" is the number of -kern units -by which to close or open the space between letters. -

    -For example, -

    -

    -	THE HUMAN COST OF COMMODIF\*[FU 1]YING FRESH W\*[BU 4]A\*[BU 5]TER
    -
    - -moves the letter Y in "COMMODIFYING" 1 kern unit away from -the letter F, and the letter A in "WATER" 4 kern units closer -to the letter W. Additionally, the letter T in "WATER" is moved 5 kern -units closer to the letter A. -

    -For backward compatibility, the forms - - - - - - - - - -
    \*[BU1]...\*[BU36]
    Move back 1...36 kern units
    \*[FU1]...\*[FU36]
    Move forward 1...36 kern units
    -
    -also exist (i.e. with no space before the number of kern units desired, -up to a limit of 36). -

    -NOTE: Using BU or FU -between characters pairs that are already automatically kerned -disables the automatic kerning and uses the value you give to -BU or FU instead. -

    - - - -


    -

    Horizontal inline movement

    - -

    -Sometimes, you may need to insert a specified amount amount of white -space into an -output line, -or -- occasionally -- back up to a -previous position on an -output -line in order to create special typographic effects. -

    -Mom's inline escapes for these horizontal movements are -

    - - - - - - - - - - - -
    \*[FWD n<unit>]
    Move forward inline the specified number of - units of measure; - decimal fractions are allowed.
    \*[BCK n<unit>]
    Move backward inline the specified number of - units of measure; - decimal fractions are allowed.
    -

    -For example, -

    -

    -	1.\*[FWD 12p]The Free Trade Play-Offs: WalMart 100, Mexico 0
    -
    -puts 12 points of space between "1." and -"The". -

    -NOTE: For backward compatibility, the forms -

    - - - - - - - - - -
    \*[BP.25]...\*[BP12.75]
    Move back .25...12.75 points
    \*[FP.25]...\*[FP12.75]
    Move forward .25...12.75 points
    -
    -also exist (i.e. with no space before the digit and points being -the unit of measure, hence no unit of measure required). Both -accept quarter points, so it's possible to do, for example, -\*[FP.5] or \*[BP1.25] up to a limit -of 12.75 points. -

    - - - -


    -

    Vertical inline movement

    - -

    -If you need to move portions of type up or down on a line, -mom provides the following inline escapes: -

    - - - - - - - - - - - -
    \*[UP n<unit>]
    Move up inline the specified number of - units of measure
    \*[DOWN n<unit>]
    Move down inline the specified number of - units of measure
    -
    -For example, -

    -

    -	Tel: 905\*[UP 1p]-\*[DOWN 1p]4072
    -
    - -moves the hyphen in the telephone number up by 1 point, then -moves back down by the same amount. -

    -NOTE: \*[UP] and \*[DOWN] do not -work with the inline escape, -\*[RULE]. -See -here -for details. -

    -ADDITIONAL NOTE: For backward compatibility, the -following are also available: -

    - - - - - - - -
    \*[ALD.25]...\*[ALD12.75]
    -
    Advance lead .25...12.75 points (move downward) -
    \*[RLD.25]...\*[RLD12.75]
    Reverse lead .5...12.75 points (move upward)
    -

    -

    -Both \*[ALD] and \*[RLD] work in -points, hence you mustn't use a unit of measure. -

    - - - -


    -

    Terminate a line without advancing on the page

    - -

    -Sometimes, you want mom to break a line but not -advance on the page. See -here -for an example of when you might want to do this. -

    -In versions of mom prior to 1.2-f, this was -accomplished through the use of -EL. -As of 1.2-f, you can, if you prefer, accomplish the same thing -by using the inline escape, \*[B]. Simply -attach the escape to the end of any line. Using the example -given in the document entry for EL, you'd use -\*[B] like this: - -

    -

    -	.LEFT
    -	.LS 12.5
    -	A line of text.\*[B]
    -	.ALD 24p
    -	The next line of text.
    -
    - -\*[B] works reliably regardless of the current -fill mode. -

    - - - -


    -

    Call the next sequential tab without advancing on the page

    - -

    -Sometimes, you want mom to move to the next tab in -sequence (e.g. from TAB 1 to TAB 2, or TAB 8 to TAB 9) without -mom advancing on the page. (See the example in -here -if you're not clear how mom manages tabs and -linebreaks.) -

    -In versions of mom prior to 1.2-f, this was -accomplished through the use of -TN. -As of 1.2-f, you can, if you prefer, accomplish the same thing -by using the inline escape, \*[TB+]. Simply -attach the escape to the end of any line in a tab, like this: - -

    -

    -	.TAB 1
    -	Some text\*[TB+]    \" This line is in tab 1
    -	Some more text      \" This line is in tab 2, on the same baseline as tab 1
    -
    - -\*[TB+] works reliably regardless of the current -fill mode. -

    - - - -


    -

    Full measure rules

    - -

    -I find I often need rules drawn to the full measure of the current line -or tab length. The official way to do this is \l'\n(.lu', -which is annoying to type, and doesn't mean a whole heck of a lot if -you're new to groff. The inline, \*[RULE], is a simple -replacement for \l'\n(.lu'. Use it whenever you need -a rule drawn to the full measure of the current line or tab length, for -example: -

    -

    -	.LL 6P
    -	\*[RULE]
    -
    - -The above draws a rule the full measure of the 6-pica line length. -

    -\*[RULE] should appear on a line by itself. In -fill modes, -(i.e. -QUAD -or -JUSTIFY), -it requires a -.BR -on the line immediately before it; otherwise, the rule will be drawn -on the same baseline occupied by any type preceding it. In -nofill modes -(i.e -LEFT, -RIGHT -or -CENTER), -the .BR is not required. -

    -Please note that \*[RULE] draws the rule to the -full measure, hence it cannot be used to fill the remainder -of a partial line with a rule in this way: -

    -

    -	Signature__________________________________________
    -
    - -If you wish to accomplish this effect, you have to use -\*[RULE] in conjunction with the -PAD -macro and -string tabs. -(See the -example -provided with PAD.) - -

    -Please also note that the inline escapes -\*[UP] -and -\*[DOWN] -cannot be used in conjunction with \*[RULE]. This -doesn't work: -

    -

    -	\*[DOWN 2p]\*[RULE]\*[UP 2p]
    -
    - -This does: -

    -

    -	.ALD 2p
    -	\*[RULE]
    -	.RLD 2p
    -
    - -See groff's -Horizontal line drawing function -for more information on drawing horizontal rules. -

    -


    - - - -

    Groff inline escapes

    - -

    Font control with \f

    - -

    -Groff's basic mechanism for inline font control is the escape -\f[<font>]. -

    - - - - - - - - - - - - - - - - - - - - - -
    \f[R]Change font to medium roman (equivalent to mom's \*[ROM])
    \f[I]Change font to medium italic (equivalent to mom's \*[IT])
    \f[B]Change font to bold roman (equivalent to mom's \*[BD])
    \f[BI]Change font to bold italic (equivalent to mom's \*[BDI])
    \f[P]Revert to previous font (equivalent to mom's \*[PREV])
    -

    -\f[<font>] can be used with -any legal font style registered with groff. (See -here -for a list of pre-registered font styles provided by -mom). -

    -\f[<font>] can also take a -complete legal family+font name combo. This is especially useful -should you need to change both family and font inline. For example, -if your prevailing family and font are Times Roman and you want a -few words in Courier Bold Italic, you could do this: -

    -

    -	.FAM T
    -	.FT  R
    -	The command \f[CBI]ls -l\f[P] gives a "long" directory listing.
    -
    - -The Unix command "ls -l" will appear in Courier Bold Italic -in a line that is otherwise in Times Roman. -

    - - - -


    -

    Inline horizontal motions with \h

    - -

    -Whenever you need to move forward or backward on a line, use the inline -\h'<distance>'. In order to avoid unpleasant surprises, -always append a -unit of measure -to "distance". -

    -

    -	\h'1.25i'
    -
    - -moves you 1.25 inches to the right (forwards) of the horizontal -position on the current -output line. -\h'<distance>' is exactly equivalent to -\*[FWD n<unit>]. -

    -

    -	\h'-1.25i'
    -
    - -moves you 1.25 inches to the left (backwards). -\h'-<distance>' is exactly equivalent to -\*[BCK n<unit>]. -

    - - - -


    -

    Inline vertical motions with \v

    - -

    -If you need to raise or lower type on a line (say, for sub- or -superscripts, or any other special effect), use -\v'<distance>'. In order to avoid unpleasant -surprises, always append a -unit of measure -to "distance". -

    -

    -	\v'.6m'
    -
    - -moves you (approx.) 2/3 of an -em -downward on the current -output line. -\v'<distance>' is exactly equivalent to -\*[DOWN n<unit>]. -

    -

    -	\v'-.6m'
    -
    - -moves you (approx.) 2/3 of an em upward. -\v'<-distance>' is exactly equivalent to \*[UP n<unit>]. -

    -IMPORTANT: The vertical motion of \v -affects ONLY type on the current -output line. -When groff breaks the output line, the effect of -\v is cancelled; the baseline of the next output line -is where it would be if you hadn't used \v. -

    -TIP: When using \v for -occasional effects on a line, don't forget to reverse it when -you've done what you want to do. Otherwise, the remaining type -will be set too high (if you used \v with the -minus sign) or too low (if you used \v without -the minus sign). -

    - - - -


    -

    String width function \w

    - -

    -In the context of mom, the string width inline -\w'string' primarily serves to let you -establish the horizontal measure of something (e.g. indents) based -on the length of a bit of text. For example, if you want a left -indent the length of the word "Examples:" plus a -space, you can set it with the \w inline escape: -

    -

    -	.IL "\w'Examples: '"
    -
    - -NOTE: Whenever you pass \w'string' -to a macro that normally requires a -unit of measure, -do NOT add a unit of measure to the \w'string' -argument. -

    -Furthermore, if the string is composed of several words separated -by spaces, you MUST surround the whole escape with double quotes, -as in the example above. -

    - - - -


    -

    Horizontal line drawing function \l

    - -

    -The \l'distance' inline allows you to draw a -horizontal rule of the specified distance. You must supply a -unit of measure. -Therefore, to set a 3-pica rule into a line of text, you'd do -

    -

    -	A line of text with a superfluous \l'3P' 3-pica rule in it.
    -
    - -\l'3P' above not only draws the rule, but -advances 3 picas horizontally as well, just as you'd expect. -

    -For an easy way of drawing rules to the full measure of the current -line or tab length, see -Full measure rules. -

    -The weight (thickness) of rules varies according to the point size -in effect when you invoke \l, but you can't fix -the weight with any real precision. A point size of 12 produces -a tastefully moderate rule weight of between one-half and one -point (depending on your printer), and is the point size used by -mom for all macros and routines that create rules. -

    -NOTE: There are, in addition to \l, -a number of other line-drawing escapes, but frankly, using them for -typographically precise drawing is a bit like hammering in a nail -with a screwdriver -- doable, but not recommended. -

    -Groff comes with a number of "preprocessors" designed -to ease creating rules, boxes, splines, and so on (tbl, pic, -and friends), but I tend not to use them. A firm believer -in the "right tool for the job," I prefer a vector -drawing program when I need to combine type with graphic elements -(say, a complex ruled form). Inserting the results into a -document is easy enough with .PSPIC (consult -the groff_tmac man page for information on this -indispensable and easy-to-use macro). -

    - - - -


    -

    Special characters and symbols

    - -

    -Here follows a short list of commonly-used special characters available -via inline escapes. If you're not sure of the meaning of some of -these characters, consult the -Definitions of Terms. -

    -For a complete list of special characters and glyphs (i.e. just -about anything you'd ever want to appear on the printed page, -including mathematical symbols, accented characters, unusual -ligatures and letters unique to various European languages), consult -man groff_char. -

    -

    -    CHARACTER                   ESCAPE SEQUENCE
    -    ---------                   ---------------
    -
    -    Comment line                \#
    -    Fixed-width space           \<space>  i.e. backslash followed by a space
    -    Unbreakable space           \~
    -    Digit-width (figure) space  \0
    -    Zero-width character        \&
    -    Discretionary hyphen        \%
    -    Backslash                   \\ or \e
    -    Plus/minus (arithmetic)     \(+-
    -    Subtract (arithmetic)       \(mi
    -    Multiply (arithmetic)       \(mu
    -    Divide (arithmetic)         \(di
    -    Em-dash                     \(em
    -    En-dash                     \(en
    -    Left double-quote           \(lq
    -    Right double-quote          \(rq
    -    Bullet                      \(bu
    -    Ballot box                  \(sq
    -    One-quarter                 \(14
    -    One-half                    \(12
    -    Three-quarters              \(34
    -    Degree sign                 \(de
    -    Dagger                      \(dg
    -    Foot mark                   \(fm
    -    Cent sign                   \(ct
    -    Registered trademark        \(rg
    -    Copyright                   \(co
    -    Section symbol              \(se
    -
    - -
    -Next   -Prev   -Top   -Back to Table of Contents - - diff --git a/src/contrib/mom/momdoc/intro.html b/src/contrib/mom/momdoc/intro.html deleted file mode 100644 index 4c6e3eb..0000000 --- a/src/contrib/mom/momdoc/intro.html +++ /dev/null @@ -1,405 +0,0 @@ - - - - -What is mom? - - - - - -Next   -Back to Table of Contents - - - -

    WHAT IS MOM?

    -
    - -Who is mom meant for? -
    -Typesetting with mom -
    -Document processing with mom -
    -Mom's philosophy -
    -A note on mom's documentation -
    -Canonical reference materials -
    -How to read macro arguments - -

    Who is mom meant for?

    - -Mom ("my own macros", "my other -macros", "maximum overdrive macros"...) is a macro set for -groff, designed to format documents for PostScript output. -She's aimed at three kinds of users: -
    -
      -
    1. typesetters who suspect groff might be "the right - tool for the job" but who are - frustrated/intimidated by groff's terse, geeky, - not-always-typographically-intuitive - primitives; -
      -
    2. non-scientific writers (novelists, short story writers, - journalists, students) who just want their work to - look good; -
      -
    3. newbies to computer typesetting, document processing, or - groff who need a well-documented macro set to help them get - started. -
    -

    -As might be inferred from the above, mom is two macro -packages in one: a set of typesetting macros, and a set of document -processing macros. The typesetting macros govern the physical -aspects of page layout and provide sane, comprehensible control over -typographic refinements. The document processing macros let you focus -on a document's content and logical structure without worrying about -typesetting or page layout at all. -

    -Because mom provides both typesetting and document -processing macros, it's safe to say she blurs the distinction between -document processing and document design. While her basic document style -comes with pretty spiffy defaults (okay--change "spiffy" -to "typographically professional"), you can easily control -how all the various document elements look: titles, page headers and -footers, page numbering, heads, subheads, footnotes and so on can be -made to come out exactly the way you want. And should you need precise -typographic control over elements in a document that fall outside the -range of mom's document element tags, you don't have to -read up on groff -primitives -in order to accomplish what you want; the typesetting macros take -care of that. -

    - - -

    Typesetting with mom

    - - -Mom's typesetting macros control the basic parameters -of type: margins, line length, type family, font, point size, -linespacing, and so on. In addition, they allow you to move around -on the page horizontally and vertically, and to set up tabs, indents, -and columns. Finally, they let you adjust such typographic details as -justification style, letter spacing, word spacing, hyphenation, and -kerning. - -

    -In terms of typographic control, these macros resemble the -commands used on dedicated typesetting computers like Compugraphics and -Linotronics. Most of them simply give access to groff's typesetting -primitives in a way that's consistent and easy to use. A few of -them (tabs and indents, for example) handle fundamental typesetting -requirements in ways radically different from groff primitives. - -

    -With mom's typesetting macros, you can, if you wish, -create individual output pages that you design from the ground up. -Provided you have not signalled to mom that you -want document processing (via the -START -macro; see below), every macro is a literal command that remains in -effect until you modify it or turn it off. This means that if you -want to create flyers, surveys, tabulated forms, curricula vitae and -so on, you may do so in the good old-fashioned way: one step at a -time with complete control over every element on the page. -

    -Years of reading various mailing lists dealing with computer -typesetting (groff, TeX, and friends) have convinced me that no program -can ever replace the human eye and human input when it comes to high -quality typesetting. As of this writing, a thread on the subject of -"micro typography" in groff has been going on for nearly a -month. The reason for the lengthy thread is obvious; words and -punctuation on the printed page are too variable, too fluid, to be -rendered flawlessly by any algorithm, no matter how clever. (For -whatever it's worth, a similar problem exists with engraving musical -scores by computer.) -

    -Mom does not try to solve the problems posed -by things like hanging punctuation, left-margin adjustments for -upper case letters like T and W, and so on. She merely tries to -provide tools that allow knowledgeable typesetters to come up with -solutions to these problems in ways that are easier and more -intuitive than manipulating groff at the -primitive -level. As a professional typesetter of more than two decades, and a -writer, I have encountered few situations that cannot be handled by -mom's typesetting macros. -

    -Author's note: One area where groff itself needs -serious rethinking is in the matter of an algorithm that takes into -account both word and letter spacing when -justifying -lines. At present, only word spacing is adjusted, requiring what I -consider an unnecessary amount of user intervention whenever -letter spacing is required. -

    - -

    Document processing with mom

    - - -Mom's document processing macros let you format -documents without having to worry about the typographic details. -In this respect, mom is similar to other groff macro -packages, as well as to html and LaTeX. Where mom -differs is in the degree of control you have over the look and -placement of the various elements of a document. For example, if you -don't want your heads underlined, or you want them bigger/smaller, -or you'd prefer them to be in a different font, or you'd rather they -were flush left instead of centred, you can make the changes easily -and have them apply to the whole document. Temporary and one-off -changes are easy, too. -

    -Mom has some nifty features other macro sets -don't provide. For example, you can switch between draft-style and -final-copy output. If you regularly make submissions to publishers -and editors who insist on "typewritten, double-spaced," there's a -special macro-- -PRINTSTYLE TYPEWRITE ---that changes typeset documents into ones that would make your -high-school typing teacher proud. Footnotes, endnotes, tables of -contents, multiple columns, nested lists, recto/verso printing and -user designable headers and footers are also part of the fun. -

    - -

    Mom's philosophy

    - - -Formatting documents should be easy, from soup to nuts. Writers need -to focus on what they're writing, not on how it looks. From the -moment you fire up an editor to the moment you add "FINIS" -to your opus, nothing should interfere with the flow of your words. -The commands needed to format your work should be easy to remember, -comprehensible, and stand out well from the text. There shouldn't -be too much clutter. Your documents should be as readable inside a -text editor as they are on the printed page. -

    -Unfortunately, in computerland, "easy," -"comprehensible," and "readable" often mean -"you're stuck with what you get." No document formatting -system can give you exactly what you want all the time, every time. -Documents, it seems, always need to be tweaked, either to satisfy a -typographic whim or to clarify some aspect of their content. -

    -Groff has traditionally solved the problem of formatting vs. tweaking -by requiring users of the common macro packages (mm, ms, me and their -offspring) to resort to groff -primitives -and -inline escapes -for their special typesetting needs. Not to put too fine a point on -it, groff primitives tend toward the abstruse, and most inline escapes -are about as readable in-line as an encrypted password. This does -not make for happy-camper writers, who either find themselves stuck -with a document formatting style they don't really like, or are -forced to learn groff from the ground up--a daunting task, to say -the least. -

    -Mom aims to make creating documents a simple matter, -but with no corresponding loss of user control. The document -processing macros provide an excellent set of defaults, but if -something is not to your liking, you can change it. And in combination -with the typesetting macros, you have all the tools you need to -massage passages and tweak pages until they look utterly professional. -

    -One rarely hears the word "user interface" in conjunction -with document processing. Since the user formatting takes place -inside a text editor, little thought is given to the look and feel -of the formatting commands. Mom attempts to rectify -this by providing users with a consistent, readable "coding" -style. Most of the macros (especially in the document processing set) -have humanly-readable names. Not only does this speed up learning -the macros, it makes the sense of what's going on in a document, -typographically and structurally, easier to decipher. -

    -Mom does not try to be all things to all people. -In contrast to the normal groff philosophy, she does not try to -produce output that looks good no matter where it's displayed. -She's designed for printed output, although with -PRINTSTYLE TYPEWRITE -she produces acceptable terminal copy. She makes no attempt to be -compatible with older versions of troff. -

    -One special feature in mom's design is the attention -she pays to aligning the bottom margins of every page. Nothing screams -"shoddy" in typeset documents louder than bottom margins -that wander, or, in typesetter jargon, "hang." There are, -of course, situations where whitespace at the bottom of a page may -be desirable (for example, you wouldn't want a head to appear at the -bottom of the page without some text underneath it), but in all cases -where hanging bottom margins can be avoided, mom does -avoid them, by clever adjustments to leading ("line spacing") -and the spacing between different elements on the page. -

    - -

    A note on mom's documentation

    - - -Writing documentation is tough, no doubt about it. One is never -quite sure of the user's level of expertise. Is s/he new to the -application, new to its underlying protocols and programs, new to -the operating system, new to computers? At some point, one has to -decide who the documentation is for. Making the wrong decision can -mean the difference between a program that gets used and a program -that gets tossed. -

    -Mom's documentation assumes users know their way -around GNU/Linux. It further assumes they at least know what groff -is, even if they don't know much about it. Lastly, it assumes that -everyone--groff newbies and experts alike--learns faster from -a few well-placed examples than from manpage-style reference docs. -What mom's documentation doesn't assume is that -you know everything--not about groff, not about typesetting, -not about document processing. Even experts have odd lacunae in -their knowledge base. Therefore, whenever I suspect that a term -or procedure will cause head scratching, I offer an explanation. -And when explanations aren't enough, I offer examples. -
    - -

    Canonical reference materials

    -

    -The canonical reference materials for groff are -cstr54 (a downloadable PostScript copy of which is -available -here) -and the troff and groff_diff -manpages. Another excellent source of information (maybe the best) -is the groff info pages, available by typing -

    -

    -	info groff
    -
    - -at the command line (assuming you have info -installed on your system). And for inputting special characters, -see man groff_char. -

    -I've tried to avoid reiterating the information contained in these -documents; however, in a few places, this has proved impossible. -But be forewarned: I have no qualms about sidestepping excruciating -completeness concerning groff usage; I'm more interested in getting -mom users up and running. Mea culpa. -

    -Note: Mom's macro file -(om.tmac) is heavily commented. Each macro is preceded by a -description of its arguments, function and usage, which may -give you information in addition to what's contained in this -documentation. -

    - -

    How to read macro arguments

    - - -The concise descriptions of macros in this documentation typically -look like this: -
    -Macro: NAME arguments -
    -arguments lists the macro's arguments using conventions that -should be familiar to anyone who has ever read a manpage. Briefly: -

    -

      -
    1. Macro arguments are separated from each other by spaces. -
    2. If an argument is surrounded by chevrons - ( < > ), it's a description of the argument, - not the argument itself. -
    3. If an argument begins with or is surrounded by double-quotes, the - double quotes MUST be included in the argument. -
    4. If the user has a choice between several arguments, each of the - choices is separated by the pipe character ( | ), - which means "or." -
    5. Arguments that are optional are surrounded by square brackets. -
    6. <off> in an argument list means that any argument - other than those in the argument list turns the macro off. -
    - -

    Toggle macros

    -

    -Some macros don't require an argument. They simply start something. -When you need to turn them off, the same macro with any -argument will do the trick. That's right: ANY argument. This permits -choosing whatever works for you: OFF, END, QUIT, DONE, Q, X... Hell, -it could even be I_LOVE_MOM. -

    -Since these macros toggle things on and off, the argument list -simply reads -

    -toggle -
    -
    -
    - -

    Example 1: an argument requiring double-quotes

    -
    -Macro: TITLE "<title of document>" -
    -

    -The required argument to TITLE is the title of your -document. Since it's surrounded by double-quotes, you must -include them in the argument, like this: -

    -

    -	.TITLE "My Pulitzer Novel"
    -
    - -

    Example 2: a macro with required and optional arguments

    -
    -Macro: TAB_SET <tab #> <indent> <length> [ L | R | C | J [ QUAD ] ] -
    -

    -The first required argument is a number that identifies the tab (say, -"3"). The second required argument is an indent from the left margin -(say, 6 picas). The third required argument is the length of the tab -(say, 3 picas). Therefore, at a minimum, when using this macro, -you would enter: -

    -

    -	.TAB_SET 3 6P 3P
    -
    - -The remaining two arguments are optional. The first is a single -letter, either L, R, C or J. The second, which is itself optional -after L, R, C or J, is the word QUAD. Therefore, depending on -what additional information you wish to pass to the macro, -you could enter: -

    -

    -	.TAB_SET 3 6P 3P L
    -		or
    -	.TAB_SET 3 6P 3P L QUAD
    -
    - - -

    Example 3: a sample toggle macro:

    -
    -Macro: QUOTE toggle -
    -

    -QUOTE begins a section of quoted text in a document -and doesn't require an argument. When the quote's finished, -you have to tell mom it's done. -

    -

    -	.QUOTE
    -	So runs my dream, but what am I?
    -	An infant crying in the night
    -	An infant crying for the light
    -	And with no language but a cry.
    -	.QUOTE OFF
    -
    - -Alternatively, you could have turned the quote off with END, or -X, or something else. - -

    -


    -Next   -Top   -Table of Contents - - diff --git a/src/contrib/mom/momdoc/letters.html b/src/contrib/mom/momdoc/letters.html deleted file mode 100644 index fe67583..0000000 --- a/src/contrib/mom/momdoc/letters.html +++ /dev/null @@ -1,463 +0,0 @@ - - - - -Mom -- Document Processing, Writing Letters - - - - - -Next   -Prev   -Back to Table of Contents -

    - - - -

    WRITING LETTERS WITH MOM

    - - - -

    Introduction

    -
    - -Mom's simple but effective letter-writing -macros are a subset of the -document processing macros, -designed to ease the creation of correspondence. -

    -Because the letter macros are a subset of the document -processing macros, you can use -control macros -to design correspondence to your own specifications. However, -mom makes no pretence of providing complete design -flexibility in the matter of letters, which are, after all, simple -communicative documents whose only real style requirements are that -they be neat and professional-looking. -

    -

    Tutorial on writing letters

    -

    -Mom letters begin, like all -mom-processed documents, with a -reference macro -(in this case, -AUTHOR), -a -DOCTYPE -(LETTER, obviously), the essential -PRINTSTYLE -macro, and -START, -like this: -

    -

    -	.AUTHOR    "Yannick P. Guique"
    -	.DOCTYPE    LETTER
    -	.PRINTSTYLE TYPESET
    -	.START
    -
    - -PRINTSTYLE, above, could also be -TYPEWRITE. Mom has no objection -to creating letters that look like they were typed on an Underwood -by a shapely secretary with 1940s gams. -

    -After the START macro, you enter headers pertinent to -your letter: the date, the addressee (in business correspondence, -typically both name and address), the addresser (that's you; in -business correspondence, typically both name and address), and a -greeting (in full, e.g. "Dear Mr. Smith," or "Dear -Mr. Smith:"). -

    -The macros for entering the headers are simple (they're not even -toggles): -

    -

    -	.DATE
    -	.TO
    -	.FROM
    -	.GREETING
    -
    - -You may enter them in any order you like, except for -GREETING, which must come last. -Mom ignores any headers you omit and spaces the -letter's opening according to what you do include. See -Default for letters -to find out how mom formats the headers. -

    -(In pre 1.1.7-a releases of mom, the order -of entry was fixed at the above. This has been changed, although -if you do follow the above order, mom will -continue to behave exactly as she did in pre 1.1.7-a.) -

    -Once you've filled in what you need to get a letter started, simply -type the letter, introducing each and every paragraph, including -the first, with the -PP -macro. -

    -At the end of the letter, should you wish an indented closing -("Yours truly," "Sincerely," "Hugs and -kisses"), invoke the macro CLOSING on a -line by itself and follow it with the text of the closing. -N.B. Don't put your name here; mom -supplies it automatically from AUTHOR with -enough space to leave room for your signature. - -

    -Assuming our tutorial letter is for business correspondence, -here's what the complete letter looks like. -

    -

    -	.AUTHOR    "Yannick P. Guique"
    -	.DOCTYPE    LETTER
    -	.PRINTSTYLE TYPESET
    -	.START
    -	.DATE
    -	August 25, 2004
    -	.TO
    -	GUILLAUME BARRIÈRES
    -	Minidoux Corporation
    -	5000 Pannes Drive
    -	Redmond, Virginia
    -	.FROM
    -	Y.P. GUIQUE
    -	022 Umask Road
    -	St-Sauveur-en-dehors-de-la-mappe, Québec
    -	.GREETING
    -	Dear Mr. Barrières,
    -	.PP
    -	It has come to my attention that you have been lobbying the
    -	US government to prohibit the use of open source software by
    -	endeavouring to outlaw so-called "warranty free"
    -	applications.
    -	.PP
    -	I feel it is my duty to inform you that the success of your
    -	operating system with its embedded web browser relies heavily
    -	on open source programs and protocols, most notably TCP/IP.
    -	.PP
    -	Therefore, in the interests of your corporation's fiscal health,
    -	I strongly advise that you withdraw support for any US
    -	legislation that would cripple or render illegal open source
    -	development.
    -	.CLOSING
    -	Sincerely,
    -
    - -This produces a letter with headers that follow the North American -standard for business correspondence. If you'd prefer another -style of correspondence, for example, British, you'd set up the -same letter like this: -

    -

    -	.AUTHOR    "Yannick P. Guique"
    -	.DOCTYPE    LETTER
    -	.PRINTSTYLE TYPESET
    -	.START
    -	.FROM
    -	.RIGHT
    -	Y.P. GUIQUE
    -	022 Umask Road
    -	St-Sauveur-en-dehors-de-la-mappe, Québec
    -	.TO
    -	GUILLAUME BARRIÈRES
    -	Minidoux Corporation
    -	5000 Pannes Drive
    -	Redmond, Virginia
    -	.DATE
    -	.RIGHT
    -	August 25, 2004
    -	.GREETING
    -	Dear Mr. Barrières,
    -
    - -Notice the use of .RIGHT after -.FROM and .DATE in this example, -used to change the default quad for these macros. -

    -


    - - -

    Defaults for letters

    -
    - -In letters, if the order of header macros is -

    -

    -	.DATE
    -	.TO
    -	.FROM
    -	.GREETING
    -
    - -mom sets -
    -
      -
    1. the date flush right, page right, at the top of page one, -with a gap of two linespaces underneath -
    2. the addressee in a block flush left, page left, with a gap of -one linespace underneath -
    3. the addresser in a block flush left, page left, with a gap of -one linespace underneath -
    4. the greeting flush left, with a gap of one linespace -underneath -
    -

    -which is the standard for North American business correspondence. -

    -If you switch the order of .DATE, -.TO and/or .FROM, -mom sets all the headers flush left, with a gap of -one linespace underneath each. (The default left quad of any header -can be changed by invoking the .RIGHT macro, on -a line by itself, immediately before inputting the text of the -header.) -

    -Following the headers, mom sets -

    -

      -
    • the body of the letter justified -
    • in multi-page letters: -
        -
      • a footer indicating there's a next page (of the form .../#) -
      • the page number at the top of every page after page one -
      -
    • the closing/signature line flush left, indented halfway across the page -
    -

    -Other important style defaults are listed below, and may be changed -via the -typesetting macros -or the document processing -control macros -prior to -START. Assume that any -style parameter not listed below is the same as for -PRINTSTYLE TYPESET -or -PRINTSTYLE TYPEWRITE. -

    -

    -PARAMETER             PRINTSTYLE TYPESET   PRINTSTYLE TYPEWRITE
    ----------             ------------------   --------------------
    -
    -Paper size            8.5 x 11 inches      8.5 x 11 inches
    -Left/right margins    1.25 inches          1.25 inches
    -Header margin         3.5 picas            3.5 picas
    - (for page numbers)
    -Header gap            3 picas              3 picas
    - (for page numbers)
    -Family                Times Roman          Courier
    -Font                  roman                roman
    -Point size            12                   12
    -Line space            13.5                 12 (i.e. singlespaced)
    -Paragraph indent      3 ems                3 picas
    -Spaced paragraphs     yes                  no
    -Footers*              yes                  yes
    -Footer margin         3 picas              3 picas
    -Footer gap            3 picas              3 picas
    -Page numbers          top, centred        top, centred
    -
    -*Footers contain a "next page" number of the form .../#
    -
    -
    - - -

    The letter macros

    -
    - -All letter macros must come after -START, -except NO_SUITE. -

    -

    -
    - - - -
    -

    - -Macro: DATE - -

    -Invoke DATE on a line by itself, with the date -underneath, like this: -

    -

    -	.DATE
    -	October 31, 2002
    -
    - -If you wish to change the default quad direction for the date, -enter .LEFT or .RIGHT, on a line by itself, -immediately after .DATE. -

    -If you wish to insert additional space between the date and any -letter header that comes after it, do so after inputting the date, -not at the top of the next header macro, like this: -

    -

    -	.DATE
    -	October 31, 2002
    -	.SPACE     \" Or, more simply, .SP
    -
    - -If you wish to remove the default space, -

    -

    -	.SPACE -1v \" Or, more simply, .SP -1v
    -
    - -will do the trick. -

    - - - -


    -

    - -Macro: TO - -

    -Invoke TO on a line by itself, with the name -and address of the addressee underneath, like this: -

    -

    -	.TO
    -	JOHN SMITH
    -	10 Roberts Crescent
    -	Bramladesh, Ont.
    -
    - -If you wish to change the default quad direction for the address, -enter .LEFT or .RIGHT, on a line by itself, -immediately after .TO. -

    -If you wish to insert additional space between the address and -any letter header that comes after it, do so after inputting the -address, not at the top of the next header macro, like this: -

    -

    -	.TO
    -	JOHN SMITH
    -	10 Roberts Crescent
    -	Bramladesh, Ont.
    -	.SPACE     \" Or, more simply, .SP
    -
    - -If you wish to remove the default space, -

    -

    -	.SPACE -1v \" Or, more simply, .SP -1v
    -
    - -will do the trick. -

    - - - -


    -

    - -Macro: FROM - -

    -Invoke FROM on a line by itself, with the name -and address of the addresser underneath, like this: -

    -

    -	.FROM
    -	JOE BLOW
    -	15 Brunette Road
    -	Ste-Vieille-Andouille, Québec
    -
    - -If you wish to change the default quad direction for the address, -enter .LEFT or .RIGHT, on a line by itself, -immediately after .FROM. -

    -If you wish to insert additional space between the address and -any letter header that comes after it, do so after inputting the -address, not at the top of the next header macro, like this: -

    -

    -	.FROM
    -	JOE BLOW
    -	15 Brunette Road
    -	Ste-Vieille-Andouille, Québec
    -	.SPACE     \" Or, more simply, .SP
    -
    - -If you wish to remove the default space, -

    -

    -	.SPACE -1v \" Or, more simply, .SP -1v
    -
    - -will do the trick. -

    - - - -


    -

    - -Macro: GREETING - -

    -Invoke GREETING on a line by itself, with the -full salutation you want for the letter, like this: -

    -

    -	.GREETING
    -	Dear Mr. Smith,
    -
    - - - -
    -

    - -Macro: CLOSING - -

    -Invoke CLOSING on a line by itself after the -body of the letter, with the closing you'd like (e.g. "Yours -truly,"), like this: -

    -

    -	.CLOSING
    -	Yours truly,
    -
    - - - -
    -

    - -Macro: NO_SUITE - -

    -If you don't want mom to print a "next -page" number at the bottom of multi-page letters, invoke -.NO_SUITE, on a line by itself, prior to -START. - -

    -


    -Next   -Prev   -Top   -Back to Table of Contents - - diff --git a/src/contrib/mom/momdoc/macrolist.html b/src/contrib/mom/momdoc/macrolist.html deleted file mode 100644 index 01125f7..0000000 --- a/src/contrib/mom/momdoc/macrolist.html +++ /dev/null @@ -1,1794 +0,0 @@ - - - - -Mom -- Quick reference guide - - - - - -Next   -Prev   -Back to Table of Contents - - -

    - Quick reference guide -

    - -Once you know your way around mom, you may find -this guide preferable to using the Table of Contents. It lists (I -hope) all mom's user-space macros. The links -point to references found elsewhere in the documentation. -

    -NOTE: This guide uses tables extensively. Better -make sure you're reading it in a browser that renders them -sensibly. -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TypesettingDocument processing
    Page/paper size; margins; line lengthReference macros
    Family/font; pointsize; leadingLetters
    Font modificationsDocument style
    Underscoring and underliningSpecial to PRINTSTYLE TYPEWRITE
    ColourBegin document processing
    Quad, justification and fillCustomizing the document header
    Line terminationPagination
    HyphenationRecto/verso
    Word and sentence spacingAutomatic columns
    Kerning; ligaturesEpigraphs
    Vertical movementsHeads
    Horizontal movementsSubheads
    IndentsParagraph heads
    TabsParagraphs
    Manual columnsQuotes
    SuperscriptsBlockquotes
    DropcapsAuthor linebreaks
    ListsFootnotes
    Padding linesEndnotes
    MiscellaneousDesigning endnotes pages
     Lists
     Margin notes
     Line numbering
     References
     Bibliographies
     Table of contents
     Designing a table of contents
     Finis
     Headers and footers
     Part-by-part control -
    of headers
     Footers
     Covers and doc covers
     Customizing covers -
    and doc covers
     Part-by-part control of -
    covers and doc covers
     Miscellaneous
    - -
    -


    -

    Typesetting macros

    - -

    Page/paper size; margins; line length

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Page/paper sizeMarginsLine length
    PAGEWIDTHT_MARGINLL
    PAGELENGTHB_MARGIN 
    PAPERL_MARGIN 
    PAGER_MARGIN 
    - -

    Family/font; pointsize; leading

    - - - - - - - - - - - - - - - - - - - - - - -
    Family/fontPoint sizeLeading
    FAMILYPT_SIZELS
    FT\*[SIZE n]AUTOLEAD
    FALLBACK_FONT  
    - -

    Font modifications (pseudo-italic, -bold, -condensed, -extended)

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ItalicizeEmboldenCondenseExtend
    SETSLANTSETBOLDERCONDENSEEXTEND
    \*[SLANT]\*[BOLDER]\*[COND]\*[EXT]
    \*[SLANTX]\*[BOLDERX]\*[CONDX]\*[EXTX]
    - -

    Underscoring and underlining

    - - - - - - - - - - - - - - -
    UnderscoreUnderline
    UNDERSCOREUNDERLINE
    UNDERSCORE_2\*[UL]...\*[ULX]
    - -

    Colour

    - - - - - - - - - - - - - -
    Define coloursInvoke colours
    NEWCOLORCOLOR
    XCOLOR\*[<colorname>]
    - -

    Quad, justification and fill

    - - - - - - - - - - - - - - - - - - -
    Fill modesNo-fill modes
    JUSTIFYLEFT
    QUADCENTER
     RIGHT
    - -

    Line termination

    - - - - - - - - - - - - - - -
    BreakBreak (no space)Break (extra space)Break (force justify)
    BRELSPACESPREAD
    - -

    Hyphenation

    - - - - - - - - - - -
    EnableSet parameters
    HYHY_SET
    - -

    Word and sentence spacing

    - - - - - - - - - - -
    Word spaceSentence space
    WSSS
    - -

    Character pair and full line kerning; ligatures

    - - - - - - - - - - - - - - - - - - - - -
    Kern character pairsKern full linesLigatures
    KERNRWLIGATURES
    \*[BU n] - EW 
    \*[FU n] - BR_AT_LINE_KERN 
    - -

    Vertical movements

    - - - - - - - - - - - - - - -
    DownUp
    ALDRLD
    \*[DOWN n]\*[UP n]
    - -

    Horizontal movements

    - - - - - - - - - - -
    ForwardBack
    \*[FWD n]\*[BCK n]
    - -

    Indents

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    LeftRightBothQuitTempHanging
    ILIRIBIQTIHI
    ILXIRXIBX   
    - -

    Tabs

    - - - - - - - - - - - - - - - - - - - - - - -
    SetupInvokingQuitting
    TAB_SETTABTQ
    \*[STn]...\*[STnX]TN 
    ST  
    - -

    Manual columns

    - - - - - - - - - - - - -
    InitializingReturning to topExiting
    MCOMCRMCX
    - -

    Superscripts

    - - - - - - - - - - - - -
    SuperscriptCondensed superscriptExtended superscript
    \*[SUP]...\*[SUPX]\*[CONDSUP]...\*[CONDSUPX]\*[EXTSUP]...\*[EXTSUPX]
    - -

    Dropcaps

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    InvokingDropcap control
    DROPCAPDROPCAP_FAMILY
     DROPCAP_FONT
     DROPCAP_COLOR
     DROPCAP_ADJUST
     DROPCAP_GUTTER
    - -

    Lists

    - - - - - - - - - - - - - - - - - - - - - - -
    InitializingSetting itemsList control
    LISTITEMSHIFT_LIST
      RESET_LIST
      PAD_LIST_DIGITS
    - -

    Padding lines

    - - - - - - - - - - -
    Pad a lineChange the pad marker
    PADPAD_MARKER
    - -

    Miscellaneous

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NewpageAll capsSmartquotesRules/leaders
    NEWPAGECAPSSMARTQUOTES\*[RULE]
       \*[LEADER]
       LEADER_CHARACTER
    -
    - - - - - - - - - - - - - - - - - -
    Change the escape characterSuppress inputDisable traps
    ESC_CHARCOMMENTTRAP
     SILENT 
    - -
    -
    - -

    Document processing

    - -

    Reference macros

    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    TitlesAuthorsDraft copies
    TITLEAUTHORDRAFT
    SUBTITLE REVISION
    DOCTITLE DRAFT_STRING
    CHAPTER REVISION_STRING
    - -

    Letters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    HeadersClosingControl
    DATECLOSINGNO_SUITE
    FROM  
    TO  
    GREETING  
    - -

    Document style

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Basic styleStyle control*
    COPYSTYLEDOC_LEFT_MARGIN
    DOCTYPEDOC_RIGHT_MARGIN
    PRINTSTYLE**DOC_LINE_LENGTH
     DOC_FAMILY
     DOC_PT_SIZE
     DOC_LEAD
     DOC_LEAD_ADJUST
     DOC_QUAD
    -

    -*See the note -Changing document-wide style parameters after START -
    -**Absolutely required if you wish to use the document processing macros. - -

    Special to PRINTSTYLE TYPEWRITE

    - - - - - - - - - - - - - - - - - - - - - - -
    Italic/underliningQuotes
    UNDERLINE_ITALICUNDERLINE_QUOTES
    ITALIC_MEANS_ITALIC 
    UNDERLINE_SLANT 
    SLANT_MEANS_SLANT 
    - -

    Begin document processing

    - - - - - - - -
    Absolutely required in order to initialize document processing
    START
    - -

    Customizing the document header

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    GlobalTitleSubtitleChapter
    DOCHEADERTITLE_FAMILYSUBTITLE_FAMILYCHAPTER_STRING
    DOCHEADER_ADVANCETITLE_FONTSUBTITLE_FONTCHAPTER_TITLE_FAMILY
    DOCHEADER_FAMILYTITLE_SIZESUBTITLE_SIZECHAPTER_TITLE_FONT
    DOCHEADER_COLORTITLE_COLORSUBTITLE_COLORCHAPTER_TITLE_SIZE
       CHAPTER_TITLE_COLOR
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    AttributionAuthorDocument type
    ATTRIBUTE_STRINGAUTHOR_FAMILYDOCTYPE_FAMILY
    ATTRIBUTE_COLORAUTHOR_FONTDOCTYPE_FONT
     AUTHOR_SIZEDOCTYPE_SIZE
     AUTHOR_COLORDOCTYPE_COLOR
    - -

    Pagination

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PaginateStyle control
    PAGINATEPAGENUM_FAMILY
    PAGENUMBERPAGENUM_FONT
    PAGENUM_STYLE*PAGENUM_SIZE
    PAGENUM_ON_FIRST_PAGEPAGENUM_COLOR
    DRAFT_WITH_PAGENUMBERPAGENUM_POS
    SUSPEND_PAGINATIONPAGENUM_HYPHENS
    RESTORE_PAGINATION 
    -

    -*I.e. the "format" of page numbering (digits, roman numerals, letters) - -

    Recto/verso

    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    EnablingControlingUser-defined page headers/footers -
    - for alternating pages* -
    RECTO_VERSOSWITCH_HEADERSHEADER_RECTO
     SWITCH_FOOTERS*HEADER_VERSO
      FOOTER_RECTO*
      FOOTER_VERSO*
    -

    -*Please note that most aspects of page header and footer control -are treated identically. In the documentation, the descriptions -of macros that control header and footer behaviour usually only -mention "HEADER" or "HEADER_". Simply apply -"FOOTER" or "FOOTER_" to the appropriate -"HEADER" or "HEADER_"macros in order to enable -their behaviour for footers. - - -

    Automatic columns

    - - - - - - - - - - - - - - -
    EnablingControling
    COLUMNSCOL_NEXT
     COL_BREAK
    - -

    Epigraphs

    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    MacroType-style controlOther
    EPIGRAPHEPIGRAPH_FAMILYEPIGRAPH_AUTOLEAD
     EPIGRAPH_FONTEPIGRAPH_QUAD
     EPIGRAPH_SIZEEPIGRAPH_INDENT
     EPIGRAPH_COLOR 
    - -

    Heads

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    MacroType-style controlOther
    HEADHEAD_FAMILYHEAD_QUAD
     HEAD_FONTHEAD_CAPS
     HEAD_SIZEHEAD_UNDERLINE
     HEAD_COLORHEAD_SPACE
      NUMBER_HEADS
      RESET_HEAD_NUMBER
    - -

    Subheads

    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    MacroType-style controlOther
    SUBHEADSUBHEAD_FAMILYSUBHEAD_QUAD
     SUBHEAD_FONTNUMBER_SUBHEADS
     SUBHEAD_SIZERESET_SUBHEAD_NUMBER
      SUBHEAD_COLOR
    - -

    Paragraph heads

    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    MacroType-style controlOther
    PARAHEADPARAHEAD_FAMILYPARAHEAD_INDENT
     PARAHEAD_FONTNUMBER_PARAHEADS
     PARAHEAD_SIZERESET_PARAHEAD_NUMBER
     PARAHEAD_COLOR 
    - -

    Paragraphs

    - - - - - - - - - - - - - - - - - - - - - - -
    MacroType-style control*Other
    PPPP_FONTPARA_INDENT
      INDENT_FIRST_PARAS
      PARA_SPACE
    -

    -*For an in-depth explanation of how to manage the type-style of -paragraphs, much of which is normally established through the use of -typesetting macros prior to -START, -see -Paragraph control macros. - -

    Quotes -
    -(line-for-line cited text, e.g. poetry or code snippets) -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    MacroType-style controlOther
    QUOTEQUOTE_FAMILYQUOTE_INDENT*
     QUOTE_FONTALWAYS_FULLSPACE_QUOTES
     QUOTE_SIZEBREAK_QUOTE
     QUOTE_AUTOLEADUNDERLINE_QUOTES
     QUOTE_COLOR 
    -

    -*Note that the use of QUOTE_INDENT sets the indent for both QUOTE -and BLOCKQUOTE. - -

    Blockquotes -
    -(formatted citations) -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    MacroType-style controlOther
    BLOCKQUOTEBLOCKQUOTE_FAMILYBLOCKQUOTE_INDENT
     BLOCKQUOTE_FONTBLOCKQUOTE_QUAD
     BLOCKQUOTE_SIZEBREAK_BLOCKQUOTE
     BLOCKQUOTE_AUTOLEAD 
     BLOCKQUOTE_COLOR 
    -

    -*Note that the use of BLOCKQUOTE_INDENT sets the indent for both BLOCKQUOTE -and QUOTE. - -

    Author linebreaks -
    -(also called "scene" or "section" breaks) -

    - - - - - - - - - - - - -
    MacroType-style controlOther
    LINEBREAKLINEBREAK_COLORLINEBREAK_CHAR
    - -

    Footnotes

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    MacroType-style controlOther
    FOOTNOTE*FOOTNOTE_FAMILYFOOTNOTE_AUTOLEAD
     FOOTNOTE_FONTFOOTNOTE_QUAD
     FOOTNOTE_SIZEFOOTNOTE_MARKERS
     FOOTNOTE_COLORFOOTNOTE_MARKER_STYLE
      RESET_FOOTNOTE_NUMBER
      FOOTNOTE_RULE
      FOOTNOTE_RULE_ADJ
      FOOTNOTE_RULE_LENGTH
      FOOTNOTES_RUN_ON
    -

    -*Indenting of footnotes is handled by arguments passed to FOOTNOTE. - -

    Endnotes

    - - - - - - - - - - -
    Input endnotesOutput endnotes pages
    ENDNOTEENDNOTES
    - -

    Designing endnotes pages -
    -(if you want to change the defaults) -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Type-style controlEndnotes page -
    title string* -
    Document identification string**
    ENDNOTE_FAMILYENDNOTE_STRINGENDNOTE_TITLE
    ENDNOTE_FONTENDNOTE_STRING_FAMILYENDNOTE_TITLE_FAMILY
    ENDNOTE_LEADENDNOTE_STRING_FONTENDNOTE_TITLE_FONT
    ENDNOTE_PT_SIZEENDNOTE_STRING_SIZEENDNOTE_TITLE_SIZE
    ENDNOTE_QUADENDNOTE_STRING_CAPSENDNOTE_TITLE_QUAD
     ENDNOTE_STRING_UNDERSCOREENDNOTE_TITLE_UNDERSCORE
    -

    -*By default, "Endnotes", at the top of the first page of -endnotes -
    -**I.e. how each document in the endnotes for a collated document is -identified (by default, the strings passed to the reference -macro, .TITLE -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Endnotes numberingParagraph controlEndnotes headers/footers
    ENDNOTE_NUMBER_FAMILYENDNOTE_PARA_INDENTENDNOTES_ALLOWS_HEADERS
    ENDNOTE_NUMBER_FONTENDNOTE_PARA_SPACEENDNOTES_HEADER_CENTER
    ENDNOTE_NUMBER_SIZE ENDNOTES_FOOTER_CENTER
    ENDNOTE_NUMBERS_ALIGN_LEFT  
    ENDNOTE_NUMBERS_ALIGN_RIGHT  
    -
    - - - - - - - - - - - - - - - - - - -
    Endnotes page numberingMisc
    ENDNOTES_FIRST_PAGENUMBERENDNOTES_NO_COLUMNS
    ENDNOTES_PAGENUM_STYLE*SINGLESPACE_ENDNOTES**
    ENDNOTES_NO_FIRST_PAGENUM 
    -

    -*I.e. the format of page numbering (digits, roman, letters) -
    -**Applies to PRINTSTYLE TYPEWRITE only - -

    Margin notes

    - - - - - - - - - - -
    InitializeStart
    MN_INITMN
    - -

    Line numbering

    - - - - - - - - - - - - -
    TextQuotesBlockquotes
    NUMBER_LINESNUMBER_QUOTE_LINESNUMBER_BLOCKQUOTE_LINES
    - -

    References

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Begin/end refsFootnote refsEndnote refsEmbedded refs
    REFFOOTNOTE_REFSENDNOTE_REFSREF( / REF)
       REF( / REF)
       REF[ / REF]
       REF{ / REF}
    - -

    Bibliographies

    - - - - - - - - - - -
    Start bibliography pageBibliography type
    BIBLIOGRAPHYBIBLIOGRAPHY_TYPE
    - -

    Table of contents

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    GenerateGeneral -
    - type-style control -
    TOC title string* -
    - and style control -
    TOCTOC_FAMILYTOC_HEADER_STRING
     TOC_PT_SIZETOC_HEADER_FAMILY
     TOC_LEADTOC_HEADER_FONT
      TOC_HEADER_SIZE
      TOC_HEADER_QUAD
    -

    -*By default, "Table of Contents" - -

    Designing a table of contents -
    -(if you want to change the defaults) -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Title entriesHead entriesSubhead entries
    TOC_TITLE_ENTRYTOC_HEAD_FAMILYTOC_SUBHEAD_FAMILY
    TOC_APPENDS_AUTHORTOC_HEAD_FONTTOC_SUBHEAD_FONT
    TOC_TITLE_FAMILYTOC_HEAD_SIZETOC_SUBHEAD_SIZE
    TOC_TITLE_FONTTOC_HEAD_INDENTTOC_SUBHEAD_INDENT
    TOC_TITLE_SIZE  
    TOC_TITLE_INDENT  
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Parahead entriesPage number entriesPaginationMisc
    TOC_PARAHEAD_FAMILYTOC_PN_FAMILYPAGINATE_TOCTOC_RV_SWITCH
    TOC_PARAHEAD_FONTTOC_PN_FONTTOC_PAGENUM_STYLE* 
    TOC_PARAHEAD_SIZETOC_PN_SIZE  
    TOC_PARAHEAD_INDENTTOC_PADDING  
    -

    -*I.e. the format of page numbering (digits, roman, letters) - -

    Finis

    - - - - - - - - - - - - - - -
    MacroType style control
    FINISFINIS_COLOR
    FINIS_STRING 
    - -

    Headers and footers

    -

    -Mom treats all aspects of headers and footers -identically. The only difference between the two is whether the -information they contain appears at the top of the page or at the -bottom. Consequently, in the following, substitute FOOTERS -for HEADERS, and FOOTER_ for HEADER_ if you're hunting down how to -do something with footers. -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    MacroPlacementUser-defined headersGeneral -
    - type-style control -
    HEADERSHEADER_MARGINHEADER_RECTOHEADER_FAMILY
     HEADER_GAPHEADER_VERSOHEADER_SIZE
       HEADER_COLOR
       HEADER_PLAIN
    - -

    Part-by-part control of headers

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    LeftCenterRight
    HEADER_LEFTHEADER_CENTERHEADER_RIGHT
    HEADER_LEFT_FAMILYHEADER_CENTER_FAMILYHEADER_RIGHT_FAMILY
    HEADER_LEFT_FONTHEADER_CENTER_FONTHEADER_RIGHT_FONT
    HEADER_LEFT_SIZEHEADER_CENTER_SIZEHEADER_RIGHT_SIZE
    HEADER_LEFT_COLORHEADER_CENTER_COLORHEADER_RIGHT_COLOR
    HEADER_LEFT_CAPSHEADER_CENTER_CAPSHEADER_RIGHT_CAPS
     HEADER_CENTER_PAD 
    -
    - - - - - - - - - - - - - - - - - - -
    Separator ruleMisc
    HEADER_RULEREVISION_STRING
    HEADER_RULE_GAPDRAFT_STRING
    HEADER_RULE_COLOR 
    - -

    Footers

    -

    -This is the one exception to the "HEADER also means FOOTER" -convention used throughout the documentation. - - - - - -
    FOOTER_ON_FIRST_PAGE
    - -

    Covers and doc covers

    - - - - - - - - - - - - - - -
    CoversDoc covers
    COVERDOC_COVER
    COVERSDOC_COVERS
    - - -

    Customizing covers and doc covers

    - - - - - - - - - - - - - - - - - - - - - - -
    CoversDoc covers
    COVERTITLEDOC_COVERTITLE
    COVER_ADVANCEDOC_COVER_ADVANCE
    COVER_FAMILYDOC_COVER_FAMILY
    COVER_LEADDOC_COVER_LEAD
    - -

    Part-by-part control of covers and doc covers

    - -

    -For part-by-part control of the family, font, size and color, please -see - - - - - - - - -
    Control macros--changing the defaults for covers and document covers
    Index of cover and doc cover control macros
    - -

    Miscellaneous

    - - - - - - - - - - - - -
    Output a blank pageCollate multiple -
    documents
    Get leading back -
    on track
    BLANKPAGECOLLATESHIM
    - -
    -
    - -Next   -Prev   -Top   -Back to Table of Contents - - diff --git a/src/contrib/mom/momdoc/rectoverso.html b/src/contrib/mom/momdoc/rectoverso.html deleted file mode 100644 index 0644903..0000000 --- a/src/contrib/mom/momdoc/rectoverso.html +++ /dev/null @@ -1,253 +0,0 @@ - - - - -Mom -- Document Processing, Recto/verso printing - - - - - -Next   -Prev   -Back to Table of Contents -

    - - - - -

    RECTO/VERSO PRINTING and COLLATING

    - - - - - -

    Introduction to recto/verso

    -
    - -Recto/verso printing allows you to set up a mom -document in such a way that it can be printed on both sides of a -printer sheet and subsequently bound. -

    -With recto/verso, mom automatically takes control -of the following aspects of alternating page layout: -
    -

      -
    • switching left and right margins (if they're not equal) -
    • switching the left and right parts of the default 3-part - headers - or - footers - (see the - General description of headers) -
    • switching - HEADER_RECTO - and - HEADER_VERSO - if user-defined, single string recto/verso headers - or footers are used in place of the default 3-part - headers or footers -
    • switching the page number position (if page numbers are not centred) -
    -

    -It is beyond the scope of this documentation to cover the different -ways in which you can make your printer print on both sides of a sheet. -A simple but effective method for those of us with "dumb" -printers is to open the document (after it's been processed into -PostScript by groff -- see -How to invoke groff with mom) -in gv (ghostview), -click the "odd pages" icon, then click "Print -Marked". After printing is complete, rearrange the sheets -appropriately, put them back in your printer, and have -gv print the "even pages". If you prefer to -work from the command line, check out the man pages for -pstops and psbook. There are other -programs out there as well to help with two-sided printing. -

    - - -

    Recto/verso macros list

    - - - -

    - -


    - - - -

    Recto/verso printing

    -
    -Macro: RECTO_VERSO - -

    -If you want mom to set up alternating pages for -recto/verso printing, simply invoke RECTO_VERSO -with no argument. -

    -NOTE: -
    -Recto/verso always switches the left and right parts of -headers -or -footers -on odd/even pages. However, it only switches the left and right -margins if the margins aren't equal. Consequently, it is your -responsibility to set the appropriate differing left and right -margins with -L_MARGIN -and -R_MARGIN -(prior to -START) -or with -DOC_LEFT_MARGIN -and -DOC_RIGHT_MARGIN -(before or after START). -

    -Equally, recto/verso only switches the page number position if page -numbers aren't centred, which means you have to set the page -number position with -PAGENUM_POS -(before or after START). -

    - - - -


    - -

    Switch header left part/right part

    -
    -Macro: SWITCH_HEADERS - -

    -SWITCH_HEADERS switches the location of the -header left string (by default, the author) and the header right -string (by default, the document title). If you don't like -mom's default placement of author and title, use -SWITCH_HEADERS to reverse it. -

    -SWITCH_HEADERS can also be useful in conjunction -with -RECTO_VERSO. -The assumption of RECTO_VERSO is that the first -page of a document (recto/odd) represents the norm for header-left -and header-right, meaning that the second (and all subsequent even) -page(s) of the document exchange header-left and header-right. -

    -If mom's behaviour in this matter is not what -you want, simply invoke SWITCH_HEADERS on the -first page of your recto/verso document to reverse her default -treatment of header parts. The remainder of your document (with -respect to headers) will come out as you want. -

    -NOTE: Replace _HEADERS, above, -with _FOOTERS if your document uses footers. -

    -


    - - - - -

    Introduction to collating

    -
    - -The macro COLLATE lets you join documents together. -Primarily, it's a convenience for printing long documents that -comprise several chapters, although it could be used for any -document type (except LETTER). -

    -Personally, I prefer to keep chapters in separate files and print -them out as needed. However, that means keeping track of the correct -starting page number for each chapter, a problem circumvented by the -use of COLLATE. -

    -When collating chapters, you need only put .COLLATE -at the end of a chapter, follow it with any -reference macros -needed for the new chapter, e.g. -CHAPTER -or -CHAPTER_STRING -(have a look at the -Special Note on CHAPTER) -make any pertinent style changes to the document (unlikely, but -possible), and re-invoke the -START -macro. Your new chapter will begin on a fresh page and behave -as expected. -

    -COLLATE assumes you are collating documents/files -with similar type-style parameters hence there's no need for -PRINTSTYLE to appear after COLLATE, -although if you're collating documents that were created as separate -files, chances are the PRINTSTYLE's already there. -

    - -Two words of caution: -

      -
    1. Do not collate documents of differing - PRINTSTYLES (i.e. don't try to - collate a TYPESET document and TYPEWRITE document). -
    2. Use DOC_FAMILY instead of - FAMILY if, for some reason, you want - to change the family of all the document elements after - COLLATE. FAMILY, by - itself, will change the family of paragraph text only. -
    -

    - - - -


    - -

    Collate document files

    -
    - -Macro: COLLATE - -

    -The most basic (and most likely) collating situation looks like -this: -

    -

    -	.COLLATE
    -	.CHAPTER 17
    -	.START
    -
    - -A slightly more complex version of the same thing, for chapters -that require their own titles, looks like this: -

    -

    -	.COLLATE
    -	.CHAPTER_TITLE "Geek Fatigue: Symptoms and Causes"
    -	.START
    -
    - -NOTE: See the -two words of caution, -above. -

    - -


    -Next   -Prev   -Top   -Back to Table of Contents - - diff --git a/src/contrib/mom/momdoc/refer.html b/src/contrib/mom/momdoc/refer.html deleted file mode 100644 index bda1e4b..0000000 --- a/src/contrib/mom/momdoc/refer.html +++ /dev/null @@ -1,1482 +0,0 @@ - - - - -Mom -- Bibliographies and References - - - - - -Next   -Prev   -Back to Table of Contents - - -

    - Bibliographies and references -

    -

    -Introduction to bibliographies and references -
    -Tutorial -

    -
    -Index of bibliography and reference macros -

    - - -

    Introduction to bibliographies and references

    - - -Mom provides the ability to automatically format -and generate bibliography pages, as well as footnote or endnote -bibliographic references, or references embedded in text. She -accomplishes this by working in conjunction with a special -groff program called "refer". -

    -refer is a groff -"pre-processor", which is to say that it scans your files looking -for very specific commands (i.e. lines that begin with a period -[dot], just like macros and document element tags). If the -commands aren't there, refer can't do it's job, -and neither can mom. The scanning is done -before any actual mom processing -occurs. -

    -refer is a program that's been around for a long -time. It's powerful and has many, many features. Unfortunately, -the manpage (man refer), while complete and accurate, is -dense and not a good introduction to refer. (It's -a classic manpage Catch-22: the information it contains is most -useful only after you already grasp it.) -

    -In order to get mom users up and running with -refer, this section of mom's -documentation focuses exclusively, in a recipe-like manner, on -what you need to know to use refer satisfactorily -in conjunction with mom. The information and -instructions are not to be taken as -a manual or tutorial on full refer usage. Much has -been left out, on purpose. -

    -It is tempting to provide two levels of documentation, one for -users familiar with refer and one for newcomers -to groff and mom, but such an -approach may muddy the waters for newcomers. Mom's -allegiance, first and foremost, is to newcomers. If you're already -a refer user, the information herein will be useful -for adapting your current refer usage to -mom's way of doing things. If you've never used -refer, the information is essential, and, in many -cases, may be all you need. -

    -(For the benefit of old groff-hands: refer -support in mom is heavily based on the -refer module of the ms macros. The choice -was deliberate so that those wishing to play around with -mom's bibliography formatting style would be -tinkering with the familiar.) -

    -refer requires first that you create a -bibliographic database. From the information contained in the -database, mom formats and generates bibliographies -and references in MLA (Modern Language Association) style. MLA -style is clean, contemporary and flexible, and is widely used in -the humanities, where the range of material that has to be -referenced can run from simple books to live interviews and film. -

    -Once you have created your database, you instruct -refer (and mom) to access entries -in it by supplying keywords from the entries. Depending on what -you've instructed mom to do, she will put the -entries--fully and properly formatted with respect to order, punctuation -and italicization--in footnotes, endnotes, or a full bibliography. -

    -I encourage anyone interested in what MLA style looks like--and, by -extension, how your bibliographies and references will look after -mom formats them--to check out -

    -

    -	http://www.aresearchguide.com/12biblio.html
    -
    - -or any other website or reference book on MLA style. -

    -NOTE: MLA style requires that second and -subsequent lines of individual references be indented. Mom -takes care of this for you with a default indent, which -can be changed with the macro -INDENT_REFS. - - -

    Tutorial

    - -
      -
    1. Creating a refer database -
    2. Required "refer" commands -
    3. Accessing references -
    4. Telling mom where to put references -
    5. Creating bibliography pages -
    6. Invoking groff with mom and refer -
    -

    - -

    1. Creating a refer database

    -

    -The first step in using refer with -mom is setting up your bibliographic database. -The database is a file containing separate entries for each -reference you want to access from your mom files. -The file is not a "mom" file; it is a separate database. -You may set up individual databases for individual documents, or -create a large database that contains all the references you'll -ever need. -

    -Entries ("records") in the database file are separated from each -other by a single, blank line. The records themselves are composed -of single lines ("fields") with no blank lines between them. Each -field begins with a percent sign and a single letter (the "field -identifier") e.g. %A or %T. The letter identifies what part of a -bibliographic entry the field refers to: Author, Title, Publisher, -Date, etc. After the field identifier comes a single space, -followed by the information appropriate to field. No punctuation -should go at the ends of fields; mom adds what's -correct automatically. Do note, however, that author(s) (%A) -requires that you enter the author information exactly as you wish -it to come out (minus the period), including the comma after the -first author's last name. -

    -Here's a sample database containing two records so you can -visualize what the above paragraph says: -

    -

    -%A Schweitzer, Albert
    -%A C.M. Widor
    -%T J.S. Bach
    -%l Ernest Newman
    -%V Vol 2
    -%C London
    -%I Adam and Charles Black
    -%D 1923
    -%O 2 vols
    -%K bach vol 2
    -
    -%A Schaffter, Peter
    -%T The Schumann Proof
    -%C Toronto
    -%I RendezVous Press
    -%D 2004
    -%K schumann schaffter
    -
    - -The order in which you enter fields doesn't matter. -mom and refer will re-arrange -them in the correct order for you. -

    -The meaning of the letters follows. There are, with -refer, quite a few--all uppercase--which have, over -time, come to be "standard". Mom respects these. -However, she adds to the list (mostly the lowercase letters). -

    -

    -	%A Author           -- additional authors may be entered on separate %A
    -	                       lines as in first entry of the sample, above; mom 
    -	                       and refer will figure out what to do with multiple
    -	                       authors according to MLA rules
    -	%T Title            -- either the primary title (e.g. of a book), or the
    -	                       title of an article (e.g. within a book or
    -	                       journal or magazine)
    -	%B Book title       -- the title of a book when %T contains the title
    -	                       of an article; otherwise, use %T for book
    -	                       titles
    -	%R Report number    -- for technical reports
    -	%J Journal name     -- the name of a journal or magazine when %T
    -	                       contains the title of an article
    -	%E Editor           -- additional editors may be entered on separate %E
    -	                       lines (like authors); mom and refer will figure
    -	                       out what to do with them according to MLA rules
    -	%e Edition          -- the number of name of a specific edition
    -	                       (e.g. Second, 2nd, Collector's, etc.)
    -	%V Volume           -- volume number of a journal or series of books
    -	%N Journal number   -- journal or magazine number
    -	%S Series           -- series name for books or journals that are part of
    -	                       a series
    -	%C City             -- the city of publication
    -	%I Publisher        -- the publisher; %I stands for "Issuer"
    -	%D Publication date
    -	%P Page number(s)   -- enter page ranges as, e.g., 22-25
    -	%G Gov't.
    -	   ordering number  -- for government publications
    -	%O Other            -- additional information or comments you want
    -	                       to appear at the end of the reference
    -	%K Keywords         -- any words that will clear up ambiguities
    -	                       resulting from database entries that
    -	                       contain, say, the same author or the
    -	                       same title
    -	%d original
    -	   publication date -- if different from the date
    -	                                   of publication
    -	%a additions        -- for books, any additions to the original work,
    -					       such as the preface to a new edition or a new
    -	                       introduction
    -	%t reprint title    -- if different from a work's original title
    -	%l translator       -- if the translator is not the editor; if more
    -	                        than one translator, this field should contain
    -	                        all the names, with appropriate punctuation
    -	%r translator
    -	   and editor       -- if tr. and ed. are one in the same;
    -	%s site name        -- for web sites, the site name
    -	%c content
    -	   of site          -- for web sites, the content, if unclear
    -	                       (i.e. advertisement, cartoon, blog)
    -	%o organization     -- for web sites, the organization, group or
    -	                       sponsor of the site
    -	%a access date      -- for a website, the date you accessed it
    -	%u URL              -- for websites, the full URL of the site
    -
    - -
    -Tip: If you have hyphenation turned on in your -document (you probably do), mom will hyphenate -your references. This can be a problem because references -typically contain several proper names. Proper names shouldn't be -hyphenated. The solution is to prepend to any proper name in the -database the groff -discretionary hyphen -character, \%, like this: -

    -

    -	%A Hill, \%Reginald
    -
    - -Alternatively, you can turn hyphenation off entirely in -references with the macro, -HYPHENATE_REFS OFF. -

    - -

    2. Required "refer" commands

    -

    -Having set up your database, you now need to put some -refer-specific commands at the top of your -mom file. You cannot skip this step, nor can you -"source" these commands with the groff -primitive, -.so. They must -appear, exactly as shown, in every file requiring bibliographic -references. -

    -refer commands are introduced with a single -line containing .R1, and concluded with a single line -containing .R2. What you put between the .R1 -and .R2 lines are the commands themselves. The commands -should be entered one per line, in lowercase letters, with -no initial period (dot). -

    -Here's an example: -

    -

    -	.R1
    -	no-label-in-text
    -	no-label-in-reference
    -	.R2
    -
    - -There are an awful lot of refer commands. We will -focus only on those required to get mom cooperating -with refer. If you're interested, study the -refer manpage to discover what other commands are -available and how to manipulate them. -

    -At a minimum, all mom files accessing -a bibliographic database must contain the following -refer commands, exactly as shown: -

    - -

    -.R1
    -no-label-in-text
    -no-label-in-reference
    -join-authors ", and " ", " ", and "
    -database <full path to the database>
    -.R2
    -
    - -The first two commands tell refer to let -mom handle everything associated with footnote -and endnote markers, both in the body of the document, and in the -footnotes/endnotes themselves. -

    -The third command is required for mom to handle -multiple authors in proper, MLA style. -

    -The last command, database, assumes you have created -your own database, and do not otherwise have a system-wide -"default" database. "...full path to the database" means the full -path including the database filename, e.g. -/home/user/refer/my_database. -

    If you're already a refer user, feel free to -enter whatever refer commands are necessary to -access the database(s) you want. -

    -With the above refer block, you can embed -references directly into the text of your document, or have them -output as footnotes or endnotes. If you want to "collect" -references for later output on a bibliography page, the block must -read: -

    -

    -.R1
    -no-label-in-text
    -no-label-in-reference
    -join-authors ", and " ", " ", and "
    -database <full path to the database>
    -sort
    -accumulate
    -.R2
    -
    - -

    3. Accessing references

    -

    -References are accessed by putting keywords, all on one line, -between the refer commands .[ and -.]. Both of these commands must appear on separate -lines, by themselves, like this: -

    -

    -	.[
    -	keyword(s)
    -	.]
    -
    - -Keywords are any word, or set of words, that identify a database -record (i.e. a reference) unambiguously. (refer -doesn't like ambiguity.) -

    -If, for example, you want to reference a book by Ray Bradbury, -and the database contains only one book by Bradbury, a suitable -keyword would be "Bradbury". If your database contains several -books by Bradbury, say, Fahrenheit 451 and The Martian -Chronicles, you could reference them with the keywords, "451" -and "Martian". If, in addition to the two books by Bradbury, you -also had one whose title was The Martian Mission, suitable -keywords to reference The Martian Chronicles might be: -

    -

    -	.[                or    .[                   or  .[
    -	Bradbury Martian        Bradbury Chronicles      Martian Chronicles
    -	.]                      .]                       .]
    -
    - -The database field identifier, %K, lets you create special keywords -for references. This can be very handy if you need both a "short" -and a "long" reference to the same work. The short reference might -be used in footnotes; the long one in a bibliography. Consider the -following: -

    -

    -	%A Isherwood, Christopher      %A Isherwood
    -	%T Mr. Norris Changes Trains   %T Mr. Norris Changes Trains
    -	%d 1935                        %K Nor short
    -	%t The Last of Mr. \%Norris
    -	%a Intro. Tom Crawford
    -	%C New York
    -	%I New Directions
    -	%D 1945
    -	%K Norris
    -
    -
    - -To access the shorter reference, you'd do -

    -

    -	.[
    -	Nor short
    -	.]
    -
    - -To access the longer one, you'd do -
    -	.[
    -	Norris
    -	.]
    -
    - -

    4. Telling mom where to put references

    -

    -Mom provides several mechanisms for outputting -references where you want. -

    -

    Embedding references in the document body

    -

    -References may be embedded in the document body, surrounded by -parentheses, square brackets, or braces. Use whichever you prefer, -following the recipes below. -

    -

    -	Parentheses    Square brackets    Braces
    -	-----------    ---------------    ------
    -
    -	.REF(          .REF[              .REF{
    -	.[             .[                 .[
    -	keyword(s)     keyword(s)         keyword(s)
    -	.]             .]                 .]
    -	.REF)          .REF]              .REF}
    -
    - -

    Footnote or endnote references

    -

    -Most times, you'll probably want references in either footnotes or -endnotes. Mom provides a simple mechanism whereby -you can choose which, or even switch back and forth. The primary -tag is -REF, which is used like this: -

    -

    -	.REF
    -	.[
    -	keyword(s)
    -	.]
    -	.REF
    -
    - -REF collects references and outputs them -where you say with the macros, -FOOTNOTE_REFS -or -ENDNOTE_REFS. -Neither -FOOTNOTE_REFS nor ENDNOTE_REFS -requires an argument. All they do is tell REF, -whenever it's invoked, where to put the references. -

    -A recipe for footnote references looks like this: -

    -	.FOOTNOTE_REFS
    -	.REF
    -	.[
    -	keyword(s)
    -	.]
    -	.REF
    -
    - -When FOOTNOTE_REFS are enabled, REF -behaves identically to -FOOTNOTE, -so please read the -HYPER IMPORTANT NOTE -found in the document entry for FOOTNOTE. -

    -The reference between the first and second REF -will be treated as a footnote, as will all subsequent -REF pairs unless you invoke the macro, -ENDNOTE_REFS. -

    -A recipe for endnote references looks like this: -

    -	.ENDNOTE_REFS
    -	.REF
    -	.[
    -	keyword(s)
    -	.]
    -	.REF
    -
    - -The reference between the first and second REF -will be treated as an endnote, as will all subsequent -REF pairs unless you invoke the macro, -FOOTNOTE_REFS. -

    -When ENDNOTE_REFS are enabled, REF -behaves identically to -ENDNOTE, -so please read the -HYPER IMPORTANT NOTE -found in the document entry for ENDNOTE. -

    -The innate flexibility of this scheme allows you to have both -footnote references and endnote references in the same document. -This would be desirable if, say, you wanted "short" references in -footnotes, and complete references in endnotes. -

    - -

    Collected references

    -

    -Sometimes, you may want to put references in input text near -sections of text to which they pertain, but not actually want -them output until later (typically, on a bibliography page). -REF is used for this, too, but you have to make -sure your refer commands block is set up properly. -The recipe for this is: -

    - -

    -.R1
    -no-label-in-text
    -no-label-in-reference
    -join-authors ", and " ", " ", and "
    -database <full path to the database>
    -sort
    -accumulate
    -.R2
    -
    - -After this set up, and provided you don't issue a -FOOTNOTE_REFS or ENDNOTE_REFS -command, all reference between REF pairs will be -collected for later output. -

    -As a precaution, mom will issue a message the -first time you call .REF if neither -FOOTNOTE_REFS nor ENDNOTE_REFS is -in effect. If collected references are what you want, and you have -set up your .R1 - .R2 block as above, you may -safely ignore the message. -

    -LIMITATION: You cannot combine "collected" -references (plain REF) with REFs -that are instructed to go into footnotes (with -FOOTNOTE_REFS) or endnotes (with -ENDNOTE_REFS). This is a limitation imposed by -refer, not mom. - -

    5. Creating bibliography pages

    -

    -Bibliography pages are separate pages, like endnotes, on which -complete bibliographies are output. And, like endnotes pages, just -about every element on them can be designed to your specifications -with control macros. (See -Control macros for bibliographies.) -A bibliography page that uses mom's defaults -begins with the macro, -BIBLIOGRAPHY, -like this: -

    -

    -	.BIBLIOGRAPHY
    -
    - -

    -Following BIBLIOGRAPHY, you have three choices of -how to proceed. -

    -If you have elected to have references collected from within the -body of a document (see above, -Collected references, -for instructions), which assumes you have a refer -command block like the one -here -at the top of your document, you need only do -

    -

    -	.BIBLIOGRAPHY
    -	.[
    -	$LIST$
    -	.]
    -
    - -If you want to create the bibliography by hand (which may be the -case if you've used footnote and/or endnote references throughout -your document), follow this recipe, which assumes you already have a -refer block like the one -here -at the top of your document: -

    -

    -	.BIBLIOGRAPHY
    -	.R1
    -	sort
    -	accumulate
    -	.R2
    -	.[          -+
    -	keyword(s)   |
    -	.]           | "keyword(s)" are keywords identifying the
    -	.[           | particular bibliographic reference you want
    -	keyword(s)   | from your database.  Order doesn't matter here;
    -	.]           | the refer command, sort, takes care of that.
    -	.[           |
    -	keyword(s)   |
    -	.]          -+
    -	.[
    -	$LIST$
    -	.]
    -
    - -Your final choice is to output your whole database. Again, -assuming you have a refer block like the one -here at the top of your file, you need -only do: -

    -

    -	.BIBLIOGRAPHY
    -	.R1
    -	bibliography <full path to database>
    -	.R2
    -
    - -If you haven't put a refer block in -your file already, you can put the whole thing after -BIBLIOGRAPHY, like this: -

    -

    -	.BIBLIOGRAPHY
    -	.R1
    -	no-label-in-text                       -+
    -	no-label-in-reference                   | These are actually optional
    -	database <full path to the database>   -+ 
    -	join-authors ", and " ", " ", and "
    -	bibliography <full path to database>
    -	.R2
    -
    - -Whichever option you choose, mom will output a -full bibliography page, complete with a title (BIBLIOGRAPHY by -default, but that can be changed). - -

    6. Invoking groff with mom and refer

    -

    -So, now you've got a document, formatted properly to use -references processed with refer, what do you do to -output the document? -

    -It's simple. Instead of invoking groff with just -the -mom option, as explained -here, -invoke groff with the -R option as well, like this: -

    -

    -	groff -R -mom filename
    -
    - -
    - -

    -

    Index of bibliography and reference macros

    - -

    - - - -


    -

    Marking off references for footnotes, endnotes, or collection

    -

    - -Tag: REF -

    -The macro, REF, tells mom that -what follows is refer-specific, a -keyword-identified reference from a -refer database. Depending on whether you've -issued a -FOOTNOTE_REFS -or -ENDNOTE_REFS -instruction, REF also tells mom -where to place the reference. If FOOTNOTE_REFS, -the reference will be formatted and placed in a footnote. If -ENDNOTE_REFS, the reference will be collected for -output as an endnote. If you have issued neither instruction, the -reference will be collected for later output, most likely on a -bibliography page. -

    -Before you use REF, you must create a -refer block containing refer -commands (see -Required refer commands -in the tutorial, above). -

    -REF usage always looks like this: -

    -

    -	.REF
    -	.[
    -	keyword(s)
    -	.]
    -	.REF
    -
    - -Notice that REF "brackets" the -refer call, and never takes an argument. -

    -What REF really is is a convenience. One could, -for example, put a reference in a footnote by doing -

    -

    -	.FOOTNOTE
    -	.[
    -	keyword(s)
    -	.]
    -	.FOOTNOTE OFF
    -
    - -However, if you have a lot of references going into footnotes (or -endnotes), it's much shorter to type .REF/.REF than -.FOOTNOTE/.FOOTNOTE OFF. It also helps you -distinguish--visually, in your input file--between footnotes (or -endnotes) which are references, and footnotes (or endnotes) which -are explanatory, or expand on the text. -

    -Additional arguments: If you're using -REF to put references in footnotes and your -footnotes need to be indented, you may (indeed, should) pass -REF the same arguments used to indent footnotes. -See -FOOTNOTE. -

    -Note: -When REF is used with -FOOTNOTE_REFS, -it behaves identically to -FOOTNOTE, -so please read the -HYPER IMPORTANT NOTE -found in the document entry for FOOTNOTE. -

    -When REF is used with -ENDNOTE_REFS, -it behaves identically to -ENDNOTE, -so please read the -HYPER IMPORTANT NOTE -found in the document entry for ENDNOTE. - -
    - - - -


    -

    Instruct REF to put references in footnotes

    -

    - -Macro: FOOTNOTE_REFS -

    -FOOTNOTE_REFS is an instruction to -REF, -saying, "put all subsequent references bracketed by the -REF macro into footnotes." You invoke it by -itself, with no argument. -

    -When FOOTNOTE_REFS is in effect, regular -footnotes, (i.e. those introduced with .FOOTNOTE and -terminated with .FOOTNOTE OFF) continue to behave -normally. -

    -You may switch between FOOTNOTE_REFS and -ENDNOTE_REFS -at any time. -

    -If you have a lot of footnote references, and are identifying -footnotes by line number rather than by markers in the text, you may -want to enable -FOOTNOTES_RUN_ON -in conjunctions with FOOTNOTE_REFS. - -
    - - - -


    -

    Instruct REF to put references in endnotes

    -

    - -Macro: ENDNOTE_REFS -

    -ENDNOTE_REFS is an instruction to -REF, -saying, "add all subsequent references bracketed by the -REF macro to endnotes." You invoke it by -itself, with no argument. -

    -When ENDNOTE_REFS is in effect, -mom continues to format regular endnotes, (i.e. -those introduced with .ENDNOTE and terminated with -.ENDNOTE OFF) in the normal way. -

    -You may switch between ENDNOTE_REFS and -FOOTNOTE_REFS -at any time. - -
    - - - -


    -

    References embedded in text

    -

    - -Macro pair: REF(  ...  REF) -
    -Macro pair: REF[  ...  REF] -
    -Macro pair: REF{  ...  REF} -

    -You may sometimes want to embed references directly into the body -of your documents, typically, but not always, inside parentheses. -Mom makes this possible through the use of the -REF<bracket type> macros. -

    -All three macro pairs, above, are invoked the same way, namely by -introducing the reference with the first ("open") macro of -the REF<bracket type> pair, and -terminating it with the second ("close") -REF<bracket type> of the pair. For -example -

    -

    -	.REF(
    -	.[
    -	keyword(s)
    -	.]
    -	.REF)
    -
    - -will embed a reference in the body of your document, surrounded by -parentheses. .REF[ ... .REF] will -surround the reference with square brackets. -.REF{ ... .REF} will surround it with -curly braces. -
    - - - -
    -

    Manage the second-line indent of references

    -

    - -Macro: INDENT_REFS FOOTNOTE | ENDNOTE | BIBLIO <indent> -
    -*<indent> requires a unit of measure -

    -Proper MLA-style references should have their second, and subsequent -lines, if any, indented. Since mom formats -references in MLA style, she automatically indents second lines. -By default, the indent for the second line of references, -regardless of whether the references appear in footnotes, endnotes, -or bibliographies, is 1.5 -ems -for -PRINSTYLE -TYPESET -and 2 ems for -PRINSTYLE -TYPEWRITE. -

    -If you'd like to change the indent for footnotes, endnotes or -bibliographies, just invoke INDENT_REFS with a -first argument telling mom for which you want the -indent changed, and a second argument saying what you'd like the -indent to be. For example, if you want the second-line indent of -references on a bibliography page to be 3 -picas, -

    -

    -	.INDENT_REFS BIBLIO 3P
    -
    - -is how you'd set it up. -

    -Tip: if you are identifying endnotes by line -number -(ENDNOTE_MARKER_STYLE LINE) -and you have instructed mom to put references -bracketed by -REF -into endnotes (with -ENDNOTE_REFS), -you will probably want to adjust the second-line indent for -references in endnotes, owing to the way mom -formats line-numbered endnotes. Study the output of such -documents to see whether an indent adjustment is required. -
    - - - -


    -

    Enable/disable hyphenation of references

    -

    - -Macro: HYPHENATE_REFS <toggle> -

    -If you have hyphenation turned on for a document (see HY), -and in most cases you probably do, mom will -hyphenate references bracketed by the -REF -macro. Since references typically contain quite a lot of proper -names, which shouldn't be hyphenated, you may want to disable -hyphenation for references. -

    -HYPHENATE_REFS is a toggle macro; -invoking it by itself will turn automatic hyphenation of -REF-bracketed references on (the default). -Invoking it with any other argument (OFF, -NO, X, etc.) will disable -automatic hyphenation for references bracketed by -REF. -

    -An alternative to turning reference hyphenation off is to prepend -to selected proper names in your refer database -the groff -discretionary hyphen -character, \%. (See -here -in the tutorial for an example.) -

    -Note: references embedded in the body of a document -with -REF<bracket type> -are considered part of -running text, -and are hyphenated (or not) according to whether hyphenation -is turned on or off for running text. Therefore, if you want to -disable hyphenation for such references, you must do so -temporarily, with HY, like this: -

    -

    -	.HY OFF
    -	.REF(
    -	.[
    -	keyword(s)
    -	.]
    -	.REF)
    -	.HY
    -
    - -Alternatively, sprinkle your database fields liberally with -\%. -
    - - - -
    -

    Begin a bibliography page

    -

    - -Macro: BIBLIOGRAPHY -
    -

    -If you want to append a bibliography to your document, all you need -do is invoke BIBLIOGRAPHY at the place you want -it. BIBLIOGRAPHY breaks to a new page, prints the -title (BIBLIOGRAPHY by default, but that can be changed), and awaits -refer instructions. How to create bibliographies -is covered in the tutorial section, -Creating bibliography pages. -

    -See the -Bibliography page style control macros -for macros to tweak, design and control the appearance of -bibliography pages. -
    - - - -


    -

    Plain, or numbered list bibliography

    -

    - -Macro: BIBLIOGRAPHY_TYPE PLAIN | LIST [ <list separator> ] [ <list prefix> ] -

    -Mom offers two styles of bibliography output: plain, -or numbered list style. With PLAIN, bibliography -entries are output with no enumerators. With LIST, -each entry is numbered. -

    -Entering .BIBLIOGRPHY_TYPE PLAIN gives you a plain -bibliography. -

    -Entering .BIBLIOGRAPHY_TYPE LIST gives you an enumerated -bibliography. The two optional arguments, -<list separator> and -<list prefix> have the same meaning as -the equivalent arguments to -LIST -(i.e. <separator> and <prefix>). -

    -You may enter BIBLIOGRAPHY_TYPE either before or -after BIBLIOGRAPHY. It must, however, always come -before the refer command to output bibliographies. -(See the tutorial section, -Creating bibliography pages, -for instructions on how to output bibliographies.) -

    -Mom's default BIBLIOGRAPHY_TYPE -is LIST, with a period (dot) as the separator, and -no prefix. - -
    - - - -


    -

    Bibliography page style control

    - -

    -Mom processes bibliography pages in a manner very -similar to the way she processes endnotes pages. The bibliography -page control macros, therefore, behave in the same way as their -endnotes pages equivalents. -
    -

      -
    1. General bibliography page style control - -
    2. Bibliography pages header/footer control - -
    3. Bibliography page head (i.e. the title at the top) control - - -
    -
    - -

    1. General bibliography page style control

    - -

    *Bibliography family/font/quad

    -

    -See -Arguments to the control macros. -

    -

    -.BIBLIOGRAPHY_FAMILY    default = prevailing document family; default is Times Roman
    -.BIBLIOGRAPHY_FONT      default = roman
    -.BIBLIOGRAPHY_QUAD*     default = justified
    -
    -*Note: BIBLIOGRAPHY_QUAD must be set to either L or J
    -
    - - - -

    *Bibliography point size

    -

    -Macro: BIBLIOGRAPHY_PT_SIZE <base type size of bibliography> - -

    -Unlike most other control macros that deal with size of document -elements, BIBLIOGRAPHY_PT_SIZE takes as its argument an -absolute value, relative to nothing. Therefore, the argument represents -the size of bibliography type in -points, -unless you append an alternative -unit of measure. -For example, -

    -

    -	.BIBLIOGRAPHY_PT_SIZE 12
    -
    - -sets the base point size of type on the bibliography page to 12 -points, whereas -

    -

    -	.BIBLIOGRAPHY_PT_SIZE .6i
    -
    - -sets the base point size of type on the bibliography page to 1/6 of an -inch. -

    -The type size set with BIBLIOGRAPHY_PT_SIZE is the size of -type used for the text of the bibliographies, and forms the basis from which -the point size of other bibliography page elements is calculated. -

    -The default for -PRINTSTYLE TYPESET -is 12.5 points (the same default size used in the body of the document). -

    - - - -

    *Bibliography lead

    -

    -Macro: BIBLIOGRAPHY_LEAD <base leading of bibliographies> [ ADJUST ] -
    -*Does not require a unit of measure; points is assumed - -

    -Unlike most other control macros that deal with leading of document -elements, BIBLIOGRAPHY_LEAD takes as its argument an -absolute value, relative to nothing. Therefore, the argument represents -the -leading -of endnotes in -points -unless you append an alternative -unit of measure. -For example, -

    -

    -	.BIBLIOGRAPHY_LEAD 14
    -
    - -sets the base leading of type on the bibliography page to 14 -points, whereas -

    -

    -	.BIBLIOGRAPHY_LEAD .5i
    -
    - -sets the base leading of type on the bibliography page to 1/2 inch. -

    -If you want the leading of bibliographies adjusted to fill the page, -pass BIBLIOGRAPHY_LEAD the optional argument -ADJUST. (See -DOC_LEAD_ADJUST -for an explanation of leading adjustment.) -

    -The default for -PRINTSTYLE TYPESET -is 14 points, adjusted. -

    -NOTE: Even if you give mom a -DOC_LEAD_ADJUST OFF command, she will still, by -default, adjust bibliography leading. You MUST enter -BIBLIOGRAPHY_LEAD <lead> with no -ADJUST argument to disable this default behaviour. -

    - - - -

    *Singlespace bibliographies (TYPEWRITE only)

    -

    -Macro: SINGLESPACE_BIBLIOGRAPHY <toggle> - -

    -If your -PRINTSTYLE -is TYPEWRITE and you use TYPEWRITE's default -double-spacing, bibliographies are double-spaced. If your document -is single-spaced, bibliographies are single-spaced. -

    -If, for some reason, you'd prefer that bibliographies be single-spaced -in an otherwise double-spaced document (including double-spaced -collated -documents), invoke SINGLESPACE_BIBLIOGRAPHY with -with no argument. -

    - - - -

    *Adjusting the space between bibliography entries

    -

    -Macro: BIBLIOGRAPHY_SPACING <amount of space> -
    -*Requires a unit of measure - -

    -By default, mom inserts 1 linespaces between -bibliography entries on bibliography pages. If you'd prefer she -add a different amount of space, instruct her to do so with the -macro, BIBLIOGRAPHY_SPACING. Say, for example, -you'd prefer only 1/2 linespace. That would be done with -

    -

    -	.BIBLIOGRAPHY_SPACING .5v
    -
    - -As with endnotes pages, owing to the space inserted between bibliography -entries, bibliography pages may have hanging bottom margins. -Unlike endnotes pages, mom is sad to report that -there's nothing you can do about this, except a) pray things work -out, or b) set your BIBLIOGRAPHY_SPACING to zero. - - - -

    *Turning off column mode during bibliography output

    -

    -Macro: BIBLIOGRAPHY_NO_COLUMNS <toggle> - -

    -By default, if your document is -set in columns, -mom sets the bibliographies in columns, too. However, -if your document is set in columns and you'd like the bibliographies not -to be, just invoke BIBLIOGRAPHY_NO_COLUMNS with no -argument. The bibliography pages will be set to the full page measure -of your document. -

    -If you output bibliographies at the end of each document in a -collated -document set in columns, column mode will automatically -be reinstated for each document, even with -BIBLIOGRAPHY_NO_COLUMNS turned on. -

    - - - -

    *Bibliography-page page numbering style

    -

    -Macro: BIBLIOGRAPHY_PAGENUM_STYLE DIGIT | ROMAN | roman | ALPHA | alpha - -

    -Use this macro to set the page numbering style of bibliography pages. -The arguments are identical to those for -PAGENUM_STYLE. -The default is digit. You may want to change it -to, say, alpha, which you would do with -

    -

    -	.BIBLIOGRAPHY_PAGENUM_STYLE alpha
    -
    - - - -

    *Setting the first page number of bibliography pages

    -

    -Macro: BIBILOGRAPHY_FIRST_PAGENUMBER <page # that appears on page 1 of bibliographies> - -

    -Use this macro with caution. If all bibliographies for several -collated -documents are to be output at once, i.e. not at the end of each -separate doc, BIBLIOGRAPHY_FIRST_PAGENUMBER tells -mom what page number to put on the first page of -the bibliography. -

    -If you set BIBLIOGRAPHY_FIRST_PAGENUMBER in collated -documents where the bibliographies are output after each separate doc, -you have to reset every separate document's first page number after -COLLATE -and before -START. -

    - - - -

    *Omitting a page number on the first page of bibliographies

    -

    -Macro: BIBLIOGRAPHY_NO_FIRST_PAGENUM <toggle> - -

    -This macro is for use only if FOOTERS are on. It -tells -BIBLIOGRAPHY -not to print a page number on the first bibliography page. -Mom's default is to print the page number. -

    - - - -

    *Suspending pagination of bibliography pages

    -

    -Macro: SUSPEND_PAGINATION -
    -Macro: RESTORE_PAGINATION - -

    -SUSPEND_PAGINATION doesn't take an argument. -Invoked immediately prior to -BIBLIOGRAPHY, -it turns off pagination for the duration of the bibliography. -Mom continues, however to increment page numbers -silently. -

    -To restore normal document pagination after bibliographies, invoke -RESTORE_PAGINATION (again, with no argument) -immediately after you've finished with your bibliography. - -

    2. Bibliography page header/footer control

    -

    - -If you wish to modify what appears in the header/footer that appears -on bibliography pages, make the changes before you invoke -BIBLIOGRAPHY, -not afterwards. -

    -Except in the case of -DOCTYPE CHAPTER, -mom prints the same header or footer used throughout -the document on bibliography pages. Chapters get treated differently -in that, by default, mom does not print the -header/footer centre string (normally the chapter number or chapter -title.) In most cases, this is what you want. However, should you -not want mom to remove the centre string from -the bibliography pages headers/footers, invoke -BIBLIOGRAPHY_HEADER_CENTER -with no argument. -

    -An important change you may want to make is to put the word -"Bibliography" in the header/footer centre position. -To do so, do -

    -

    -	.HEADER_CENTER "Bibliography"
    -	           or
    -	.FOOTER_CENTER "Bibliography"
    -
    - -prior to invoking .BIBLIOGRAPHY. If your -DOCTYPE -is CHAPTER, you must also invoke -BIBLIOGRAPHY_HEADER_CENTER -for the HEADER_CENTER to appear. -

    - -

    *Bibliography page header/footer centre string

    -

    -Macro: BIBLIOGRAPHY_HEADER_CENTER toggle - -

    -If your -DOCTYPE -is CHAPTER and you want mom to include -a centre string in the headers/footers that appear on bibliography pages, -invoke BIBLIOGRAPHY_HEADER_CENTER (or -BIBLIOGRAPHY_FOOTER_CENTER) with no argument. -Mom's default is NOT to print the centre string. -

    -If, for some reason, having enabled the header/footer centre string -on bibliography pages, you wish to disable it, invoke the same macro -with any argument (OFF, QUIT, Q, X...). -

    - -

    *Allow headers on bibliography pages

    -

    -Macro: BIBLIOGRAPHY_ALLOWS_HEADERS <none> | ALL - -

    -By default, if HEADERS are on, mom -prints page headers on all bibliography pages except the first. If you -don't want her to print headers on bibliography pages, do -

    -

    -	.BIBLIOGRAPHY_ALLOWS_HEADERS OFF
    -
    - -If you want headers on every page including the first, do -

    -

    -	.BIBLIOGRAPHY_ALLOWS_HEADERS ALL
    -
    - -NOTE: If FOOTERS are on, -mom prints footers on every bibliography page. This is -a style convention. In mom, there is no such beast -as BIBLIOGRAPHY_ALLOWS_FOOTERS OFF. -

    - -

    3. Bibliography page first page head (title) control

    - - - -

    *Bibliography pages first page head (title) string

    -

    -Macro: BIBLIOGRAPHY_STRING "<head to print at the top of bibliography pages>" - -

    -By default, mom prints the word "BIBLIOGRAPHY" -as a head at the top of the first page of a bibliography. If you want her -to print something else, invoke BIBLIOGRAPHY_STRING with -the bibliography page head you want, surrounded by double-quotes. If -you don't want a head at the top of the first bibliography page, invoke -BIBLIOGRAPHY_STRING with a blank argument (either two -double-quotes side by side -- "" -- or no argument -at all). -

    - - - -

    *Bibliography page first page head (title) control

    -

    -See -Arguments to the control macros. -

    -

    -.BIBLIOGRAPHY_STRING_FAMILY    default = prevailing document family; default is Times Roman
    -.BIBLIOGRAPHY_STRING_FONT      default = bold
    -.BIBLIOGRAPHY_STRING_SIZE*     default = +1
    -.BIBLIOGRAPHY_STRING_QUAD      default = centred
    -
    -*Relative to the size of the bibliography text (set with BIBLIOGRAPHY_PT_SIZE)
    -
    - - - -

    *Bibliography-page head (title) underscoring

    -

    -Macro: BIBLIOGRAPHY_STRING_UNDERSCORE toggle | 2 - -

    -Invoked by itself, BIBLIOGRAPHY_STRING_UNDERSCORE will -underscore the bibliography page head. Invoked with the argument 2 -(i.e. the digit 2), BIBLIOGRAPHY_STRING_UNDERSCORE will -double-underscore the head. Invoked with any other argument, the macro -disables underscoring of the head. -

    -Mom's default is to double-underscore the -head, therefore if you want no underscoring, you must insert -.BIBLIOGRAPHY_STRING_UNDERSCORE OFF (or QUIT, X, NO, -NONE, etc.) into your document prior to outputting a -bibliography with -BIBLIOGRAPHY. - - - -

    *Bibliography-page head (title) automatic capitalization

    -

    -Macro: BIBLIOGRAPHY_STRING_CAPS toggle - -

    -Invoked by itself, BIBLIOGRAPHY_STRING_CAPS will -automatically capitalize the bibliography page head. Invoked with any -other argument, the macro disables automatic capitalization of the -head. -

    -If you're generating a table of contents, you may want the -bibliography page head string in caps, but the toc entry in caps/lower -case. If the argument to -BIBLIOGRAPHY_STRING -is in caps/lower case and BIBLIOGRAPHY_STRING_CAPS is -on, this is exactly what will happen. -

    -Mom's default is to capitalize the bibliography-page -head string. -

    - -
    - -


    -Next   -Prev   -Top   -Back to Table of Contents - - diff --git a/src/contrib/mom/momdoc/reserved.html b/src/contrib/mom/momdoc/reserved.html deleted file mode 100644 index ab8eeb1..0000000 --- a/src/contrib/mom/momdoc/reserved.html +++ /dev/null @@ -1,2200 +0,0 @@ - - - - -Mom -- List of reserved words - - - - - -Prev   Back to Table of Contents -

    - - - -

    LIST OF RESERVED WORDS

    - -

    The following is a list of "reserved" words used by -mom. Before changing the name of any macro or -document element tag with -ALIAS, -I strongly recommend doing a search of this page for your proposed -new name. If you find it in the left hand column, DON'T USE IT. -Choose something else instead. -

    -Anyone interested in playing around inside mom's macro -file (om.tmac) will find this list useful as well since it lists all -(I hope) the macros, strings, diversions and number registers -mom uses, along with brief descriptions of their -functions. -

    -

    -TYPESETTING
    -===========
    -
    -+++MACROS+++
    -
    -Page layout
    ------------
    -PAGELENGTH  Page width
    -PAGE        Page width/length; left, right, top, bottom margins
    -PAGEWIDTH   Page width
    -PAPER       Letter, legal, or A4
    -
    -B_MARGIN  Space to leave at page bottom
    -L_MARGIN  Page offset
    -R_MARGIN  Line length as a function of
    -          pagewidth minus pageoffset minus rightmargin
    -T_MARGIN  Advance lead from page top
    -
    -Page control
    -------------
    -DO_B_MARGIN  Margin at bottom of page; trap-invoked
    -DO_T_MARGIN  Margin at top of page; trap-invoked
    -
    -Style
    ------
    -COLOR          Change color of text to predefined value
    -CONDENSE       Set percentage of pseudo-condense (alias of
    -               CONDENSE_OR_EXTEND)
    -EXTEND         Set percentage of pseudo-extend (alias of
    -               CONDENSE_OR_EXTEND)
    -FAMILY         Family
    -FT             Font
    -FALLBACK_FONT  Font to use whenever FAMILY or FT errors occur
    -LL             Line length
    -LS             Leading (.vs)
    -NEWCOLOR       Define a text color
    -PT_SIZE        Point size
    -SETBOLDER      Set degree of emboldening (pseudo-bold) in units
    -SETSLANT       Set degree of pseudo-italic
    -XCOLOR         Initialize a color from rgb.txt
    -
    -Autolead
    ---------
    -AUTOLEAD  Always lead n points more than .PT_SIZE
    -
    -Flush
    ------
    -JUSTIFY  Justified text
    -QUAD     Filled text, left, right, or centre
    -
    -Quad
    -----
    -CENTER  Non-filled text, centre
    -LEFT    Non-filled text, left
    -RIGHT   Non-filled text, right
    -
    -Hyphenation
    ------------
    -HY      Turn hyphenation on/off, or set LINES, MARGIN, SPACE
    -HY_SET  Set LINES, MARGIN, SPACE in a single command
    -
    -Advanced style
    ---------------
    -KERN       Turn automatic kerning on or off
    -LIGATURES  Turn ligatures on or off
    -SS         Sentence space control
    -WS         Word space control
    -
    -Line breaks
    ------------
    -BR      Alias of br
    -EL      Breaks line but doesn't advance
    -SPACE   Alias of sp
    -SPREAD  Alias of brp
    -
    -Ald/rld
    --------
    -ALD  Advance lead
    -RLD  Reverse lead
    -
    -Indents
    --------
    -HI   Indent hang
    -IB   Indent both
    -IBX  Indent both off
    -IL   Indent left
    -ILX  Indent left off
    -IQ   Indents off
    -IR   Indent right
    -IRX  Indent right off
    -IX   Indents off -- deprecated
    -TI   Indent temporary
    -
    -Tabs
    -----
    -ST       String tab
    -TAB_SET  Tab Set
    -TN       Tab Next
    -TQ       Tab Quit
    -
    -MCO      Turn on multi-column mode
    -MCR      Return to top of column
    -MCX      Turn off multi-column mode
    -
    -Underscore
    -----------
    -UNDERSCORE   Underscores words or phrases
    -UNDERSCORE2  Double underscores words or phrases
    -
    -Underline
    ----------
    -UNDERLINE  Underlines whole passages (Courier only)
    -
    -Smart Quotes
    -------------
    -SMARTQUOTES  Turns smart quotes on or off
    -
    -Misc + Support
    ---------------
    -BR_AT_LINE_KERN  Deposit a break before RW and WE
    -CAPS             Convert u/lc to UC
    -COMMENT          Don't print lines till COMMENT OFF (alias of SILENT)
    -DROPCAP_ADJUST   Points (poss. fractional) to add/subtract
    -                 from drop caps
    -DROPCAP          Create drop cap
    -DROPCAP_FAMILY   Drop cap family
    -DROPCAP_FONT     Drop cap font
    -DROPCAP_GUTTER   Drop cap gutter
    -DROPCAP_OFF      Support only; restores .in if there was one
    -ESC_CHAR         Alias for .ec
    -EW               Extra white -- loosen overall line kern
    -                 (character spacing)
    -LEADER_CHARACTER Sets leader character
    -PAD              Insert padding spaces at marked places
    -PADMARKER        Sets character to use instead of # in PAD
    -PRINT            Simply prints args passed to it; keeps my code
    -                 indented nicely
    -RW               Reduce white -- tighten overall line kern
    -                 (character spacing)
    -SILENT           Don't print lines till SILENT OFF
    -SIZESPECS        Get cap-height, x-height and descender depth for
    -                 current point size
    -TRAP             Turn traps off or on
    -
    -+++DIVERSIONS+++
    -
    -NO_FLASH    Diverts output of SILENT or COMMENT so they don't print
    -NULL        Diverts SIZESPECS in PRINT_HDRFTR so it doesn't screw up
    -            FOOTER and FOOTNOTE processing when FOOTERS are on
    -PAD_STRING  Diverts $PAD_STRING for processing
    -TYPESIZE    Diverts SIZESPECS routine so it doesn't print
    -
    -+++NUMBER REGISTERS+++
    -
    -#ABORT_FT_ERRORS        Abort on FT errors? (toggle)
    -#ALD                    ALD value
    -#ARGS_TO_LIST           Tells LIST whether LIST was invoked with a legal
    -                        arg; controls LIST OFF processing
    -#ARGS_TO_SQ             Tells SMARTQUOTES whether it was invoked with a
    -                        legal arg; controls SMARTQUOTES OFF
    -                        processing
    -#AUTOLEAD_FACTOR        Using FACTOR arg to AUTOLEAD? (toggle)
    -#AUTO_LEAD              Using autolead? (toggle)
    -#AUTO_LEAD_VALUE        Auto leading value
    -#BL_INDENT              Value of left indent when IB
    -#B_MARGIN               Bottom margin
    -#BOLDER_UNITS           # of units to embolden type
    -#BR_INDENT              Value of right indent when IB
    -c                       column mark
    -#CONDENSE               Are we in pseudo-condense mode? (toggle)
    -#CONDENSE_WAS_ON        For restoring \*[COND] in DROPCAP
    -#COND_WIDTH             Width of pseudo-condensed type
    -                        (pointsize x $COND_PERCENT)
    -#CURRENT_L_LENGTH       Current line length at first invocation of LIST;
    -                        like #ORIG_L_LENGTH
    -#CURRENT_TAB            Current tab number
    -#DC_GUT                 Width of dropcap gutter
    -#DEGREES                # of degrees slant for pseudo-italic
    -#ENUMERATOR<n>          Number register enumerator for depth <n> in lists 
    -#EXT_WIDTH              Width of pseudo-extended type
    -                        (pointsize x $EXT_PERCENT)
    -#EXTEND                 Are we in pseudo-extend mode? (toggle)
    -#EXTEND_WAS_ON          For restoring \*[EXT] in DROPCAP
    -#FILL_MODE              Are we in fill mode (i.e. \n(.u=1)? (toggle)
    -#H_INDENT               Value of left indent when IH
    -#HL_INDENT              Value of the hang when IH
    -#HYPHENATE              Hyphenation on? (toggle)
    -#HY_SET                 Did we manually set hyphenation parameters?
    -                        (toggle)
    -#IN_TAB                 Are we in a tab? (toggle)
    -                        Set in macro TAB; used in ST to determine
    -                        whether to add #ST_OFFSET to #ST<#>_OFFSET
    -#INDENT_ACTIVE          Indicates whether an indent is active (toggle)
    -#INDENT_BOTH_ACTIVE     Toggle
    -#INDENT_LEFT_ACTIVE     Toggle
    -#INDENT_RIGHT_ACTIVE    Toggle
    -#INDENT_STYLE_BOTH      Indicates IB when #INDENT_ACTIVE=1 (toggle)
    -#INDENT_STYLE_HANG      Indicates IH when #INDENT_ACTIVE=1 (toggle)
    -#INDENT_STYLE_LEFT      Indicates IL when #INDENT_ACTIVE=1 (toggle)
    -#INDENT_STYLE_RIGHT     Indicates IR when #INDENT_ACTIVE=1 (toggle)
    -#INDENT_STYLE_TEMP      Indicates IT when #INDENT_ACTIVE=1 (toggle)
    -#IX_WARN                Toggles to 1 the first time IX is user-invoked
    -#JUSTIFY                In EW/RW, when BR_AT_LINE_KERN, whether to
    -                        break or break-spread preceding line (toggle)
    -#KERN                   Kern on? (toggle)
    -#LAST_TAB               Last tab number set in multi-columns
    -#LEAD                   Leading (alias)
    -#LIGATURES              Ligatures on? (toggle)
    -#LIST_INDENT<n>         Left indent of list <n>
    -#L_INDENT               Value of left indent
    -#L_LENGTH               Line length
    -#L_MARGIN               Page offset if set with LMARGIN;
    -                        if .po used, \n(.o returns page offset
    -#LOOP                   #LOOP=1 if a while loop executes; otherwise 0.
    -#NEXT_DEPTH_BACK        Next list level back in lists
    -#NEXT_TAB               Current tab number + 1 (used in TN)
    -#NEXT_TAB               Next tab in an n+1 sequence
    -#OLD_LEAD               Lead in effect prior to changing it with .vs
    -                        in .LS
    -#OPEN_CLOSE             Manipulates character " to print `` or ''
    -#ORIGINAL_L_LENGTH      Used in LIST for IB processing; holds \n(.l
    -p                       Output line horiz position at end of
    -                        $PAD_STRING
    -#PAD_COUNT              Number of times # was included in arg to PAD
    -#PAD_LIST_DIGITS        Pad list digits to the left? (toggle)
    -#PAD_SPACE              Size of padding space
    -#PAGE_LENGTH            Page length (alias)
    -#PAGE_WIDTH             Page width
    -#PP_ACTIVE              Are we in the context of a para? (toggle)
    -#PRINT_FOOTER_ON_PAGE_1 (toggle)
    -#PSEUDO_FILL            Signals that LEFT, RIGHT or CENTER is
    -                        in effect (toggled off, i.e. to 0, when
    -                        QUAD  or JUSTIFY is called)
    -#PT_SIZE                Point size (fractional) in units (alias)
    -#Q_AT_TOP               Does a quote start at the top of a new page?
    -                        (toggle)
    -#QUAD                   In autoquad mode? (toggle)
    -#QUIT                   Tells LIST whether to exit lists completely
    -                        (toggle)
    -#REMOVE                 Used in LIST OFF cleanup
    -#RESTORE_LEAD           Lead value in effect prior to AUTOLEAD
    -#RESTORE_LINE_LENGTH    Restores actual line length in RULE
    -#RESTORE_LN_NUMBER      Start linenumbering again with stored
    -                        #NEXT_LN? (toggle)
    -#RESTORE_PT_SIZE        Stores current point size (in units) prior
    -                        to underscore
    -#R_INDENT               Value of right indent
    -#R_MARGIN               Right margin
    -#RESTORE_PREV_INDENT    Tells LIST OFF what kind of indent was active
    -                        prior to first invocation of LIST
    -#RLD                    RLD value
    -#SILENT                 Is silent on? (toggle)
    -#SIZE_FOR_PAD           Used to ensure that the size in effect prior
    -                        to PAD is restored at the start of every
    -                        iteration of $PAD_STRING
    -#SLANT_ON               Is SLANT on? (toggle)
    -#SMART_QUOTES           Smartquotes on? (toggle)
    -#SPACE_TO_END           Whitespace at end of string passed to PAD
    -#ST<#>_LENGTH           Length of ST<#>; calculated during ST <#>
    -#ST<#>_MARK             Page offset of autotab <#> at ST<#>X
    -#ST_NUM                 Incrementing counter for autotab identification
    -#ST_OFFSET              Offset (from current tab) to add to #ST<#>_OFFSET
    -                        when calculating string indents set from within
    -                        tabs
    -#ST<#>_OFFSET           Indent of autotab <#> (page offset)
    -#STORED_L_INDENT        Current left indent at first invocation of LIST
    -#STORED_R_INDENT        Current right indent at first invocation of LIST
    -#STORED_BL_INDENT       Current "both, left" indent at first invocation
    -                        of LIST
    -#STORED_BR_INDENT       Current "both, right" indent at first invocation
    -                        of LIST
    -#STORED_HL_INDENT       Current hanging indent at first invocation
    -                        of LIST
    -#STORED_T_INDENT        Current temporary indent at first invocation
    -                        of LIST
    -#T_INDENT               Value of temporary indent
    -#T_MARGIN               Top margin
    -#TAB_ACTIVE             Are we in a tab? (toggle)
    -#TAB_NUMBER             Tab number
    -#TAB_OFFSET             Tab indent
    -#TOP                    Set to 1 in T_MARGIN, DO_T_MARGIN and ALD; tells
    -                        the first LS or AUTOLEAD on a page to maintain
    -                        the baseline position prior to the LS call
    -#TOP_BASELINE_ADJ       Amount by which to adjust the baseline position
    -                        of the first line on the page if an LS or AUTOLEAD
    -                        request differs from the lead current at the end of
    -                        the previous page
    -#TOTAL_LISTS            Total number of lists in a nest
    -#USER_SET_L_LENGTH      Did user invoke LL? (toggle)
    -#USER_SET_TITLE_ITEM    Did user invoke TOC_TITLE_ENTRY?
    -u                       Horiz position of start of underscore
    -
    -+++STRINGS+++
    -
    -$COND_PERCENT        Percentage by which to pseudo-condense type
    -$COLOR_SCHEME        Color scheme used in NEWCOLOR
    -$CURRENT_QUAD        Restores current quad value in RULE
    -$CURRENT_TAB         Current tab number
    -$DC_ADJUST           +|- # of points to subtract from dropcap
    -$DC_FAM              Drop cap family
    -$DC_FT               Drop cap font
    -$ENUMERATOR<n>       String enumerator for depth <n> in lists 
    -$EXT_PERCENT         Percentage by which to pseudo-extend type
    -$FAMILY              Family
    -$FAMILY_FOR_PAD      Used to ensure that the family in effect prior
    -                     to PAD is restored at the start of every
    -                     iteration of $PAD_STRING
    -$FONT                Font
    -$FONT_FOR_PAD        Used to ensure that the font in effect prior
    -                     to PAD is restored at the start of every
    -                     iteration of $PAD_STRING
    -$PAD_MARKER          Character to mark off padding in PAD
    -$PAD_STRING          Arg passed to PAD
    -$QUAD_VALUE          Quad value (left, right, centre, justify)
    -$QUOTE0              Open quotation marks
    -$QUOTE1              Close quotation marks
    -$RESTORE_COND        Restores the pseudo-condense value in effect
    -                     prior to DROPCAP
    -$RESTORE_EXT         Restores the pseudo-extend value in effect
    -                     prior to DROPCAP
    -$RESTORE_FAM         Used to restore the family in effect
    -                     prior to DROPCAP
    -$RESTORE_FT          Used to restore the font/fontstyle in effect
    -                     prior to DROPCAP
    -$RESTORE_PT_SIZE     Used to restore the point size of normal
    -                     running text after a dropcap
    -$RESTORE_QUAD_VALUE  Quad value for use in restoring L, R, C, J
    -                     (after tabs)
    -$SAVED_STYLE         Current style, if there is one (used in FAMILY)
    -$SEPARATOR<n>        Separator for depth <n> in lists
    -$SS_VAR              Holds + or - sentence space value
    -$ST<#>_FILL          Always QUAD if QUAD passed to ST <#>
    -$ST<#>_QUAD_DIR      Quad direction supplied to ST for <#>
    -$TAB_NUMBER          Argument passed to TAB macro to call TAB# macro
    -                     created in TAB_SET
    -$WS_CONSTANT         12; used to hold groff default wordspace
    -$WS                  Holds WS value; concatenation of WS_CONSTANT and
    -                     WS_VAR
    -$WS_VAR              + or - value to add to $WS_CONSTANT
    -BLACK                Pre-defined black color
    -black                Pre-defined black color
    -WHITE                Pre-defined white color
    -white                Pre-defined white color
    -
    -+++ALIASES+++
    -
    -ALIAS         als
    -ALIASN        aln
    -BR            br
    -CENTRE        CENTER
    -COLOUR        COLOR
    -COMMENT       SILENT
    -CONDENSE      CONDENSE_OR_EXTEND
    -EXTEND        CONDENSE_OR_EXTEND
    -FAM           FAMILY
    -FT            FONT
    -HYPHENATE     HY
    -HYPHENATION   HY
    -LIG           LIGATURES
    -LL            LINE_LENGTH
    -MAC           de
    -NEW_PAGE      bp
    -NEWCOLOUR     NEWCOLOR
    -NEWPAGE       NEW_PAGE
    -PAGELENGTH    PAGE_LENGTH
    -PAGE_LENGTH   pl
    -PAGEWIDTH     PAGE_WIDTH
    -SPREAD        brp
    -SP            sp
    -STRING        ds
    -TABSET        TAB_SET
    -TB            TAB
    -TI            IT
    -UNDERSCORE_2  UNDERSCORE2
    -XCOLOUR       XCOLOR
    -
    -+++ALIASES FOR NUMBER REGISTERS+++
    -
    -#DIVER_DEPTH    dn   -- diversion depth
    -#DIVER_WIDTH    dl   -- diversion width
    -#INDENT         .i   -- value of current indent
    -#LEAD           .v   -- line space (.vs, not .ls)
    -#L_LENGTH       .l   -- line length
    -#NUM_ARGS       .$   -- number of arguments passed to a macro
    -#PAGE_LENGTH    .p   -- page length
    -#PT_SIZE        .ps  -- current point size (fractional) in units
    -#TRAP_DISTANCE  .t   -- distance to next trap
    -
    -+++INLINE ESCAPES+++
    -
    -BCK          Inline backward horizontal movement
    -BOLDER       Pseudo-bold on
    -BOLDERX      Pseudo-bold off
    -BP           Back points (horizontal movement)
    -BU           Back units (inline pairwise kerning)
    -COND_FOR_SUP Pseudo-condense string for use with superscripts
    -             (called with CONDSUP)
    -COND_FOR_SUP Pseudo-extend string for use with superscripts (called
    -             with EXTSUP)
    -COND         Pseudo-condense type
    -CONDX        Pseudo-condense off
    -CONDSUP      Pseudo-condensed superscript (using value set with
    -             CONDENSE)
    -CONDSUPX     Pseudo-condensed superscript off
    -DOWN         Inline downward vertical movement
    -EXT          Pseudo-extend type
    -EXTX         Pseudo-extend off
    -EXTSUP       Pseudo-extended superscript
    -EXTSUPX      Pseudo-extended superscript off
    -FP           Forward points (horizontal movement)
    -FU           Forward units (inline pairwise kerning)
    -FWD          Inline forward horizontal movement
    -LEADER       Deposit leader to end of current LL or TAB
    -RULE         Draw a rule to the full measure of the current line or
    -             tab length
    -SLANT        Slant (pseudo-italic on
    -SLANTX       Slant off
    -ST<#>        String tab end marker
    -ST<#>        String tab start marker
    -SUP          Superscript
    -SUPX         Superscript off
    -UP           Inline upward vertical movement
    -
    -+++SPECIAL CHARACTERS+++
    -
    -FEET         The foot character \(fm
    -INCH         The inch character \(fm\(fm
    -
    -------------------------------------------------------------------------
    -
    -DOCUMENT PROCESSING
    -===================
    -
    -+++MACROS+++
    -
    -Document info
    --------------
    -AUTHOR          Author
    -CHAPTER         Chapter number
    -CHAPTER_TITLE   Chapter title
    -COPYRIGHT       Copyright info (covers only)
    -DOCTITLE        Overall doc title (for collated docs)
    -DRAFT           Draft number
    -MISC            Misc info (covers only)
    -REVISION        Revision number
    -SUBTITLE        Doc subtitle
    -TITLE           Doc title
    -
    -Covers
    -------
    -COVER               What goes on cover
    -COVERS              Whether covers get printed (toggle)
    -COVER_ADVANCE       Set vertical start position of cover material
    -COVER_LEAD          Overall leading of covers
    -COVERTITLE          User-defined cover title string
    -DOC_COVER           What goes on doc cover
    -DOC_COVERS          Whether doc covers get printed
    -DOC_COVER_ADVANCE   Set vertical start position of doc cover material
    -DOC_COVER_LEAD      Overall leading of doc covers
    -DOC_COVERTITLE      User-defined doc cover title string
    -
    -Document style
    ---------------
    -COPYSTYLE     Output style (DRAFT or FINAL)
    -DEFAULTS      In START, sets defaults
    -DOCTYPE       Kind of doc (DEFAULT, CHAPTER, NAMED, LETTER)
    -PAGENUMBER    Page number that appears on 1st page of doc
    -PAPER         Paper size (LETTER, LEGAL, A4)
    -PRINTSTYLE    Print style (TYPEWRITE or TYPESET)
    -NUMBER_LINES  Number output lines in the left margin
    -
    -Document tags and macros
    -------------------------
    -ADD_SPACE               Special macro to add space to the top of a pages after
    -                        page 1; must be preceded by NEWPAGE
    -BIBLIOGRAPHY            Begin a bibliography page
    -BIBLIOGRAPHY_TYPE       LIST or PLAIN
    -BLOCKQUOTE              Block-indented, quoted text
    -COL_BREAK               Breaks and spreads line before invocation; moves to
    -                        next column on page or 1st col of next page.  An alias
    -                        of COL_NEXT.
    -COL_NEXT                Moves to next column on page or 1st col of next page
    -ENDNOTE                 Endnote
    -ENDNOTE_REFS            Send REFs to endnotes
    -ENDNOTES                Output endnotes
    -EPIGRAPH                Epigraph before 1st para 
    -FINIS                   Prints --END--
    -FOOTNOTE                Collects footnotes in text for printing at bottom of page
    -FOOTNOTE_REFS           Send REFs to footnotes
    -HEAD                    Section title (main heads)
    -HYPHENATE_REFS          Turn on/off hyphenation of REF references
    -ITEM                    Begin a list item
    -LINEBREAK               Break between narrative sections
    -LIST                    Initialize a list
    -MN                      Margin note
    -MN_INIT                 Initialize parameters for margin notes
    -NUMBER_LINES            Number text lines
    -NUMBER_BLOCKQUOTE_LINES Number blockquote lines
    -NUMBER_QUOTE_LINES      Number quote lines
    -PAD_LIST_DIGITS         Leave space for two-numeral digit enumerators
    -                        in a list
    -PARAHEAD                Paragraph head
    -PP                      Paragraph
    -QUOTE                   Poetic or line for line quotes
    -REF                     Wrapper around FOOTNOTE or ENDNOTE, depending
    -                        on FOOTNOTE_REFS or ENDNOTE_REFS
    -REF(                    Begin embedded reference, parens
    -REF)                    End embedded reference, parens
    -REF[                    Begin embedded reference, square brackets
    -REF]                    End embedded reference, square brackets
    -REF{                    Begin embedded reference, braces
    -REF}                    End embedded reference, braces
    -REF_INDENT              Amount of 2nd line indent of references for
    -                        footnote, endnote or bibliography refs
    -RESET_LIST              Reset digit or alpha list enumerator
    -SHIFT_LIST              Move a list over to the right
    -START                   Sets doc defaults and prints info collected
    -                        with doc info macros
    -SUBHEAD                 Subheads
    -
    -Headers/footers
    ----------------
    -BREAK_QUOTE          Manually break a footnoted quote that crosses
    -                     a page/column
    -DO_FOOTER            Prints footer (after footnote processing, if any)
    -FOOTER_ON_FIRST_PAGE Print footer on first page? (toggle)
    -FOOTER               Trap-invoked footer macro
    -HEADER               Trap-invoked header macro
    -PAGINATE             Turns page numbering on or off (doc default=on)
    -PAGINATE_TOC         Turns pagination of toc on or off (default=on)
    -RECTO_VERSO          Enables switch HEADER_LEFT and HEADER_RIGHT on
    -                     alternate pages
    -
    -Alter doc "look" and/or change defaults
    ----------------------------------------
    -***General***
    -
    -ALWAYS_FULLSPACE_QUOTES  Fullspace quotes instead of default
    -                         1/2 spacing them.
    -ATTRIBUTE_STRING         What to print before author (default is "by")
    -CHAPTER_STRING           What to print whenever the word "chapter"
    -                         is required
    -COLUMNS                  Print in columns
    -DOC_FAMILY               Overall doc family
    -DOCHEADER                Print doc header?
    -DOCHEADER_ADVANCE        Start position of docheader (relative to top
    -                         of page)
    -DOCHEADER_LEAD           +|- value applied to #DOC_LEAD to in/decrease
    -                         leading of doc header
    -DOC_LEAD_ADJUST          Adjust #DOC_LEAD to fill page to #B_MARGIN
    -DOC_LEAD                 Overall doc leading
    -DOC_LEFT_MARGIN          Doc left margin
    -DOC_LINE_LENGTH          Doc line length
    -DOC_PT_SIZE              Overall doc point size
    -DOC_RIGHT_MARGIN         Doc right margin
    -DOC_TITLE                Overall doc title that gets printed in
    -                         headers/footers (mostly for use with collated
    -                         docs where each doc is an article with a
    -                         different title
    -DRAFT_STRING             What to print whenever the word "draft" is
    -                         required
    -DRAFT_WITH_PAGENUMBER    Attach draft/revision info to page number
    -                         (instead of putting it HEADER centre)
    -REVISION_STRING          What to print whenever the word "revision"
    -                         is required
    -
    -***Covers***
    -
    -COVER_ADVANCE            Vertical place on page to start outputting
    -                         cover material
    -COVER_LEAD               Lead in/decrease for cover pages
    -DOC_COVER_ADVANCE        Vertical place on page to start outputting
    -                         doc cover material
    -DOC_COVER_LEAD           Lead in/decrease for doc cover pages
    -
    -***Epigraphs and finis***
    -
    -EPIGRAPH_AUTOLEAD        Autolead value for epigraphs
    -EPIGRAPH_INDENT          Value by which to multiply PP_INDENT for
    -                         block epigraphs
    -FINIS_STRING             What to print when FINIS is invoked
    -
    -***Footnotes***
    -
    -FOOTNOTE_AUTOLEAD             Autolead to use in footnotes
    -FOOTNOTE_LINENUMBER_BRACKETS  Brackets for footnote linenumbers
    -FOOTNOTE_LINENUMBER_SEPARATOR Separator for footnote linenumbers
    -FOOTNOTE_MARKERS              Turns footnote markers on or off
    -FOOTNOTE_MARKER_STYLE         STAR or NUMBER; default=STAR
    -FOOTNOTE_RULE_ADJ             # of points to raise footnote rule from its
    -                              baseline
    -FOOTNOTE_RULE_LENGTH          Length of footnote separator rule
    -FOOTNOTE_RULE                 Turns printing of fn separator rule on or off;
    -                              default is on
    -FOOTNOTE_SPACING              Post footnote item spacing
    -FOOTNOTES_RUN_ON              Run footnotes on (line numbering mode only)
    -RESET_FOOTNOTE_NUMBER         Reset fn# to 1, or, if arg PAGE, reset
    -                              automatically to 1 on every page
    -RUNON_WARNING                 Utility macro; warns if FOOTNOTES_RUN_ON
    -                              was called when fn marker style is STAR or NUMBER
    -
    -***Endnotes***
    -
    -ENDNOTE_LEAD                 Leading for endnotes page
    -ENDNOTE_LINENUMBER_BRACKETS  Brackets around line numbers identifying
    -                             endnotes and text
    -ENDNOTE_LINENUMBER_GAP       Amount of space to leave between line
    -ENDNOTE_LINENUMBER_SEPARATOR Separator between line numbers identifying
    -                             endnotes and the endnote item text
    -                             endnotes and text
    -ENDNOTE_MARKER_STYLE         NUMBER or LINE
    -ENDNOTE_NUMBERS_ALIGN_RIGHT  Hang endnote numbers and align right
    -ENDNOTE_NUMBERS_ALIGN_LEFT   Don't hang endnote numbers and align left
    -ENDNOTE_PARA_INDENT          First line indent of paras in multi-para
    -                             endnotes
    -ENDNOTE_PARA_SPACE           Whether to space paras in multi-para endnotes
    -ENDNOTE_PT_SIZE              Base point size for endnotes page
    -ENDNOTE_STRING               Endnotes page head
    -ENDNOTE_STRING_CAPS          Capitalize the endnotes string
    -ENDNOTE_STRING_UNDERSCORE    Underscoring of endnotes page head
    -ENDNOTE_TITLE                Endnotes identifying title
    -ENDNOTE_TITLE_SPACE          Distance from top of page to endnotest title
    -ENDNOTE_TITLE_UNDERSCORE     Underscoring of endnotes identifying title
    -ENDNOTES_ALLOWS_HEADERS      Page headers on endnotes pages? (toggle)
    -ENDNOTES_FIRST_PAGENUMBER    Page number to appear on page 1 of endnotes
    -                             pages
    -ENDNOTES_HDRFTR_CENTER       Print header/footer centre string on endnotes
    -                             pages?
    -ENDNOTES_HEADER_CENTER       Print header centre string on endnotes pages?
    -ENDNOTES_FOOTER_CENTER       Print footer centre string on endnotes pages?
    -ENDNOTES_NO_COLUMNS          Turn columnar mode off for endnotes pages
    -ENDNOTES_NO_FIRST_PAGENUM    Don't print a pagenumber on page 1 of
    -                             endnotes.
    -ENDNOTES_PAGENUM_STYLE       Set numbering style for endnotes pages page
    -                             numbers
    -SINGLESPACE_ENDNOTES         Single space TYPEWRITE endnotes
    -
    -***Bibliographies***
    -
    -BIBLIOGRAPHY_ALLOWS_HEADERS    Allow headers on bib pages
    -BIBLIOGRAPHY_FIRST_PAGENUMBER  Starting page number for bibliographies
    -BIBLIOGRAPHY_HDRFTR_CENTER     Header/footer center string for bib pages
    -BIBLIOGRAPHY_LEAD              Base lead of bib pages
    -BIBLIOGRAPHY_NO_COLUMNS        De-columnize bibliographies
    -BIBLIOGRAPHY_NO_FIRST_PAGENUM  Don't print a page number on the first
    -                               page of bibliographies
    -BIBLIOGRAPHY_PAGENUM_STYLE     Format for bib pages page numbering
    -BIBLIOGRAPHY_PT_SIZE           Base point size for bib pages
    -BIBLIOGRAPHY_SPACING           Post bib entry space
    -BIBLIOGRAPHY_STRING            String for bib title
    -BIBLIOGRAPHY_STRING_CAPS       Capitalize bib title string
    -BIBLIOGRAPHY_STRING_UNDERSCORE Underscore bib title string
    -SINGLESPACE_BIBLIOGRAPHY       Singlespace bibs if PRINTSTYLE TYPEWRITE
    -
    -***Headers and footers***
    -
    -FOOTER_COLOR             Footer color
    -FOOTER_GAP               Distance between running text and footer
    -FOOTER_MARGIN            Distance from footer to bottom of page
    -FOOTERS                  Turns footers on or off
    -HDRFTR_CENTER            String to go in centre part of header/footer;
    -                         default doctype 
    -HDRFTR_CENTER_CAPS       Centre part of header/footer in caps? (toggle)
    -HDRFTR_CENTER_PAD        Pad hdrftr CENTER left or right by specified
    -                         amount
    -HDRFTR_GAP               Distance from header/footer to running text
    -HDRFTR_LEFT_CAPS         Left part of header/footer in caps? (toggle)
    -HDRFTR_LEFT              String to go in left part of header/footer;
    -                         default is AUTHOR_1
    -HDRFTR_LEFT              The header/footer left string
    -HDRFTR_MARGIN            Distance from top of page to header
    -HDRFTR_PLAIN             Header/footer fam/ft/ps all same as running
    -                         text
    -HDRFTR_RECTO             User-defined, single string recto
    -                         header/footer
    -HDRFTR_RIGHT_CAPS        Right part of header/footer in caps? (toggle)
    -HDRFTR_RIGHT             The header/footer right string
    -HDRFTR_RULE_GAP          Space between header/footer and header/footer
    -                         rule
    -HDRFTR_RULE_INTERNAL     Prints the header/footer rule
    -HDRFTR_RULE              Turns header/footer rule on or off
    -                         When invoked internally, prints the rule.
    -HDRFTR_VERSO             User-defined, single string verso
    -                         header/footer
    -HEADERS                  Turns headers on or off
    -SWITCH_HDRFTR            Switch HDRFTR_LEFT and HDRFTR_RIGHT
    -
    -***Page numbering***
    -
    -PAGENUM_HYPHENS          Turns on/off hyphens surrounding page numbers
    -PAGENUM_ON_FIRST_PAGE    Print page number on first page when footers
    -                         are on (toggle)
    -PAGENUM_POS              Controls placement of page numbers;
    -                         default=bottom/centred
    -PAGENUM_SIZE             How much to in/decrease point size of page
    -                         numbers*
    -PAGENUM_STYLE            Page # in roman, Arabic, or alphabetic
    -RESTORE_PAGINATION       Restore pagination after outputting non-
    -                         paginated endnotes.
    -SUSPEND_PAGINATION       Suspend pagination prior to outputting
    -                         endnotes
    -
    -***Heads***
    -
    -HEADER_GAP               Space between header and running text
    -HEADER_MARGIN            Space from top of page to header
    -HEAD_CAPS                Print section titles in caps? (toggle)
    -HEAD_SPACE               Give HEADs 2 line-spaces before. If OFF,
    -                         only 1.  Default is on.
    -HEAD_UNDERLINE           Underline section titles? (toggle)
    -NUMBER_HEADS             Print head numbers
    -RESET_HEAD_NUMBER        Reset head number
    -
    -***Subheads***
    -
    -NUMBER_SUBHEADS          Print subhead numbers
    -RESET_SUBHEAD_NUMBER     Reset subhead number
    -
    -***Para heads***
    -
    -NUMBER_PARAHEADS         Print parahead numbers
    -PARAHEAD_INDENT          How much to indent paraheads
    -RESET_PARAHEAD_NUMBER    Reset parahead number
    -
    -***Paragraphs***
    -
    -INDENT_FIRST_PARAS       Indent 1st paras? (doc default=not indented) 
    -PARA_INDENT              Size of para indent
    -PARA_SPACE               Put a line space before paras
    -PP_FONT                  Overall doc font
    -
    -***Quotes***
    -
    -Q_FITS                  Utility macro for DO_QUOTE
    -Q_NOFIT                 Utility macro for DO_QUOTE
    -QUOTE_AUTOLEAD          Leading of (block)quotes
    -
    -***Line/section breaks***
    -
    -LINEBREAK_CHAR           Linebreak character, iterations and positioning
    -
    -***Printstyle TYPEWRITE***
    -
    -ITALIC_MEANS_ITALIC      For TYPEWRITE; render .FT I in italic.
    -SLANT_MEANS_SLANT        In TYPEWRITE, render \*[SLANT] as slant
    -UNDERLINE_ITALIC         In TYPEWRITE, render .FT I as underlined
    -UNDERLINE_QUOTES         In TYPEWRITE, underline quotes? (toggle)
    -UNDERLINE_SLANT          In TYPEWRITE, render \*[SLANT] as underlined
    -
    -***Table of contents***
    -
    -TOC_APPENDS_AUTHORS      Appends author(s) to toc doc title entries
    -TOC_LEAD                 Leading of toc pages
    -TOC_PADDING              Number of placeholders for toc entries page
    -                         numbers
    -TOC_HEAD_INDENT          Indent of toc head entries
    -TOC_HEADER_STRING        TOC header string (default=Contents)
    -TOC_PAGENUM_STYLE        Page numbering style (hdrftr nums) of
    -                         toc pages
    -TOC_RV_SWITCH            Switch L/R margins of toc pages
    -TOC_PARAHEAD_INDENT      Indent of toc parahead entries
    -TOC_SUBHEAD_INDENT       Indent of toc subhead entries
    -TOC_TITLE_ENTRY          User supplied toc doc title entry
    -TOC_TITLE_INDENT         Indent of toc doc title entries
    -
    -***Aliases for headers and footers***
    -HEADER_SIZE           HDRFTR_SIZE
    -HEADER_RIGHT_PS       HDRFTR_RIGHT_SIZE
    -HEADER_RIGHT_SIZE     HDRFTR_RIGHT_SIZE
    -HEADER_RIGHT_FAM      HDRFTR_RIGHT_FAMILY
    -HEADER_RIGHT_FAMILY   HDRFTR_RIGHT_FAMILY
    -HEADER_RIGHT_FONT     HDRFTR_RIGHT_FONT
    -HEADER_RIGHT_FT       HDRFTR_RIGHT_FONT
    -HEADER_LEFT_PS        HDRFTR_LEFT_SIZE
    -HEADER_LEFT_SIZE      HDRFTR_LEFT_SIZE
    -HEADER_LEFT_FAM       HDRFTR_LEFT_FAMILY
    -HEADER_LEFT_FAMILY    HDRFTR_LEFT_FAMILY
    -HEADER_LEFT_FONT      HDRFTR_LEFT_FONT
    -HEADER_LEFT_FT        HDRFTR_LEFT_FONT
    -HEADER_CENTRE_PS      HDRFTR_CENTER_SIZE
    -HEADER_CENTRE_SIZE    HDRFTR_CENTER_SIZE
    -HEADER_FAM            HDRFTR_FAMILY
    -HEADER_FAMILY         HDRFTR_FAMILY
    -HEADER_CENTRE_FAM     HDRFTR_CENTER_FAMILY
    -HEADER_CENTRE_FAMILY  HDRFTR_CENTER_FAMILY
    -HEADER_CENTRE_FONT    HDRFTR_CENTER_FONT
    -HEADER_CENTRE_FT      HDRFTR_CENTER_FONT
    -HEADER_CENTER_PS      HDRFTR_CENTER_SIZE
    -HEADER_CENTER_SIZE    HDRFTR_CENTER_SIZE
    -HEADER_CENTER_FAM     HDRFTR_CENTER_FAMILY
    -HEADER_CENTER_FAMILY  HDRFTR_CENTER_FAMILY
    -HEADER_CENTER_FONT    HDRFTR_CENTER_FONT
    -HEADER_CENTER_FT      HDRFTR_CENTER_FONT
    -FOOTER_SIZE           HDRFTR_SIZE
    -FOOTER_RIGHT_PS       HDRFTR_RIGHT_SIZE
    -FOOTER_RIGHT_SIZE     HDRFTR_RIGHT_SIZE
    -FOOTER_RIGHT_FAM      HDRFTR_RIGHT_FAMILY
    -FOOTER_RIGHT_FAMILY   HDRFTR_RIGHT_FAMILY
    -FOOTER_RIGHT_FONT     HDRFTR_RIGHT_FONT
    -FOOTER_RIGHT_FT       HDRFTR_RIGHT_FONT
    -FOOTER_LEFT_PS        HDRFTR_LEFT_SIZE
    -FOOTER_LEFT_SIZE      HDRFTR_LEFT_SIZE
    -FOOTER_LEFT_FAM       HDRFTR_LEFT_FAMILY
    -FOOTER_LEFT_FAMILY    HDRFTR_LEFT_FAMILY
    -FOOTER_LEFT_FONT      HDRFTR_LEFT_FONT
    -FOOTER_LEFT_FT        HDRFTR_LEFT_FONT
    -FOOTER_CENTRE_PS      HDRFTR_CENTER_SIZE
    -FOOTER_CENTRE_SIZE    HDRFTR_CENTER_SIZE
    -FOOTER_FAM            HDRFTR_FAMILY
    -FOOTER_FAMILY         HDRFTR_FAMILY
    -FOOTER_CENTRE_FAM     HDRFTR_CENTER_FAMILY
    -FOOTER_CENTRE_FAMILY  HDRFTR_CENTER_FAMILY
    -FOOTER_CENTRE_FT      HDRFTR_CENTER_FONT
    -FOOTER_CENTER_PS      HDRFTR_CENTER_SIZE
    -FOOTER_CENTER_SIZE    HDRFTR_CENTER_SIZE
    -FOOTER_CENTER_FAM     HDRFTR_CENTER_FAMILY
    -FOOTER_CENTER_FAMILY  HDRFTR_CENTER_FAMILY
    -FOOTER_CENTER_FONT    HDRFTR_CENTER_FONT
    -FOOTER_CENTER_FT      HDRFTR_CENTER_FONT
    -
    -   *relative to #DOC_PT_SIZE
    -  **relative to overall ps of headers as set by HEADER_SIZE
    - ***relative to overall ps of endnotes pages
    -****relative to overall ps of toc pages
    -
    -+++LETTER MACROS+++
    -
    -CLOSING      Closing (i.e. Yours truly,)
    -DATE         Date for letters
    -FROM         Addresser's name and address
    -GREETING     Full salutation (e.g. Dear John Smith,)
    -NO_SUITE     Remove suite page numbers from bottom of letter pages
    -TO           Addressee's name and address
    -ALL_DONE     .em (the "end macro") for letters
    -
    -+++SUPPORT+++
    -
    -CHECK_INDENT         Applies indents to doc elements inside ev's
    -                     (head, subhead, etc)
    -CLEANUP_DEFAULTS     Removes selected rregisters and strings
    -                     from DEFAULTS after START
    -DO_COVER             Formats and outputs covers
    -DO_DOC_COVER         Formats and outputs doc covers
    -D0_QUOTE             Outputs quotes with space adjustments before
    -                     and after
    -DIVER_FN_1_PRE  -+     
    -DIVER_FN_2_PRE   |   Manage footnotes called inside diversions
    -                 |   QUOTE, BLOCKQUOTE and EPIGRAPH
    -DIVER_FN_2_POST -+
    -DIVERT_FN_LEFTOVER   Diverts excess fn stored in FN_OVERFLOW into
    -                     FOOTNOTE
    -DIVERT_FN_OVERFLOW   Diverts excess fn stored in FN_OVERFLOW when
    -                     FN_DEFER into FOOTNOTE
    -DO_EPIGRAPH          Outputs epigraphs with space adjustments before
    -                     and after
    -FN_OVERFLOW_TRAP     Fixed at B_MARGIN; if footnotes run longer than
    -                     B_MARGIN, diverts excess into FN_OVERFLOW
    -GET_ROMAN_INDENT     Figures out amount of space to reserve
    -                     for roman numerals in lists
    -HDRFTR_RULE          Prints rule under header or over footer
    -MN_OVERFLOW_TRAP     Trap-invoked macro to collect margin note
    -                     overflows
    -PRINT_FOOTNOTE_RULE  An alias of PRINT_FOOTNOTE; prints footnote
    -                     separator rule
    -PRINT_HDRFTR         Prints header/footer (trap invoked)
    -PRINT_PAGE_NUMBER    Invoked in HEADER or FOOTER
    -PRINT_USERDEF_HDRFTR Prints user defined, single string recto/verso
    -                     header/footer
    -PROCESS_SHIM         Calculates #SHIM when \n(.d is lower on the
    -                     page than #T_MARGIN
    -PROCESS_FN_IN_DIVER  Processes footnotes gathered in a diversion (called
    -                     at page/column breaks)
    -REMOVE_INDENT        Removes indents set with CHECK_INDENT
    -Q_FITS               Handles spacing of quotes when quote fits on the page
    -Q_NOFIT              Handles spacing of quotes when quote does not fit on
    -                     the page
    -QUIT_LISTS           Exit lists cleanly and completely
    -SET_LIST_INDENT      Restore indent of a prev. level of list
    -SHIM                 Advance to next "legal" baseline
    -TERMINATE            .em that ensures deferred footnotes get output
    -                     on final pages
    -TRAPS                Sets hdrftr traps; optionally adjusts #DOC_LEAD
    -                     to fill page to #B_MARGIN
    -TYPEWRITER           Sets family (C), font (R) and point size (12)
    -                     for PRINTSTYLE TYPEWRITE
    -VFP_CHECK            Trap-sprung macro 1 legal baseline higher than
    -                     where FOOTER will be sprung; checks whether
    -                     there is, in fact, just enough room for
    -                     another line of running text to be added to
    -                     the page without jamming footnotes too close
    -                     to running text.
    -
    -+++DIVERSIONS+++
    -
    -B_QUOTE           Block (indented) quote text
    -CLOSING           Closing (i.e. Yours truly,)
    -EPI_TEXT          Epigraph text
    -END_NOTES         Endnotes text
    -FN_IN_DIVER       Footnotes gathered from inside a diversion
    -FN_OVERFLOW       Excess footnotes when B_MARGIN is reached
    -FOOTNOTES         Text of footnotes
    -GREETING          Full salutation (e.g. Dear John Smith,)
    -LETTERHEAD<n>     Date, addresser, addressee or greeting;
    -                  <n> is from 1 to 4, supplied by #FIELD
    -P_QUOTE           Line for line (poetic) quote text
    -RUNON_FOOTNOTES   Special diversion for run-on footnotes
    -RUNON_FN_IN_DIVER Special diversion for run-on footnotes inside
    -                  (block)quotes
    -TOC_ENTRIES       TOC entries
    -
    -+++NUMBER REGISTERS+++
    -
    -#1ST_FN_VP_ADJ             An adjustment factor that ensures VFP
    -                           doesn't fall below what should be the
    -                           correct last printed line of running
    -                           text
    -#ADD_BREAK                 Instructs FOOTNOTEs and ENDNOTEs to add
    -                           a break afer processing a footnote if
    -                           we're not in fill mode
    -#ADJ_BIB_LEAD              Adjust BIB_LEAD? (toggle)
    -#ADJ_DOC_LEAD              Adjust DOC_LEAD? (toggle)
    -#ADJ_TOC_LEAD              Adjust TOC_LEAD? (toggle)
    -#ARG_NUM                   Keeps track of number of args passed to a
    -                           macro
    -#ARGS_TO_LIST              Was LIST passed some args? (toggle)
    -#AUTHOR_[n]                Strings passed to AUTHOR
    -#AUTHOR_LINES              # of lines of authors in doc header; odd=0
    -                           even=1
    -#AUTHOR_NUM                Keeps track of user-defined string
    -                           AUTHOR_<#> in AUTHOR
    -#AUTHORS                   Equals final value of AUTHOR_NUM;
    -                           used for authors in doc header
    -#BASELINE_MARK             In PP, the vertical position on the page
    -                           (when paragraph spacing is on) after a
    -                           quote or blockquote has been output and
    -                           the post-quote space has been added.
    -#BMARG                     Position of unvarying bottom margin
    -                           during doc processing; required for
    -                           collecting footnotes inside diversions
    -#BIB_ALLOWS_HEADERS        Put headers on bib pages? (toggle)
    -#BIB_ALLOWS_HEADERS_ALL    Put headers on all bib pages? (toggle)
    -#BIB_FIRST_PAGE            Tells PRINT_PAGE_NUMBER about bibliography
    -                           first page number
    -#BIB_FIRST_PN              Starting pagenumber for bibliographies
    -#BIB_HDRFTR_CENTER         Put a center string in bib page headers?
    -                           (toggle)
    -#BIB_LEAD                  Bibliography lead, expressed in points
    -#BIB_LIST                  Output bibs in list style? (toggle)
    -#BIB_NO_COLS               De-columnize bibliographies? (toggle)
    -#BIB_NO_FIRST_PN           Put a page number on the first page of
    -                           bibliographies? (toggle)
    -#BIB_SINGLESPACE           Single-space TYPEWRITE bibliographies? (toggle)
    -#BIB_SPACE                 Post item space for bibliography pages
    -#BIB_STRING_CAPS           Capitalize bib title? (toggle)
    -#BIB_STRING_UNDERSCORE     Underscore bib title? 0=no; 1=yes; 2=double
    -#BIB_PS                    Base point size for bibliography pages expressed
    -                           in points
    -#BIBLIOGRAPHY              Are we doing a bib page? (toggle)
    -#BQ_AUTOLEAD               Register created by BLOCKQUOTE_AUTOLEAD
    -#BQ_LEAD                   Leading of blockquotes
    -#BQUOTE_COLOR              Colored blockquotes? (toggle)
    -#BQUOTE_LN                 Number blockquotes? (toggle)
    -#BROKEN_QUOTE              Did we invoke BREAK_QUOTE? (toggle)
    -#CAP_HEIGHT_ADJUST         Tallest cap height of strings LEFT, CENTER,
    -                           and RIGHT in footers; used to place rule
    -                           over footer
    -#CAPS_WAS_ON               In HDRFTR, to re-enable running text CAPS
    -                           (toggle)
    -#CENTER_CAP_HEIGHT         Cap height of CENTER string in
    -                           headers/footers
    -#CHAPTER_TITLE_COLOR       Colored chapter title? (toggle)
    -#CLOSING                   Is there a closing (for letters)? 1=yes
    -#COL_L_LENGTH              Line length of columns
    -#COL_NEXT                  Was COL_NEXT invoked? (toggle; used in
    -                           FOOTER)
    -#COL_NUM                   Incrementing counter of num of columns;
    -                           for use with #COL_<#>_L_MARGIN
    -#COL_TOTAL                 #COL_L_LENGTH + #GUTTER; used to calculate
    -                           #COL_<#>_L_MARGIN
    -#COLLATED_DOC              If 1, instructs TOC that this is a collated
    -                           doc
    -#COLUMNS                   Are columns turned on? (toggle)
    -#COLUMNS_WERE_ON           Stores columnar state prior to outputting
    -                           endnotes in no-columns mode
    -#COPY_STYLE                1=draft, 2=final
    -#COUNTERS_RESET            Tells FOOTNOTE if fn counters have
    -                           been reset because of footnotes gathered
    -                           inside a diversion
    -#COVER_COLOR               Colored cover? (toggle)
    -#COVER_START_POS           Vertical starting pos of cover material
    -#COVER_TITLE_COLOR         Colored cover title? (toggle)
    -#COVER_SUBTITLE_COLOR      Colored cover subtitle? (toggle)
    -#COVER_ATTRIBUTE_COLOR     Colored cover attribution string? (toggle)
    -#COVER_AUTHOR_COLOR        Colored cover author(s)? (toggle)
    -#COVER_DOCTYPE_COLOR       Colored cover doctype? (toggle)
    -#COVER_COPYRIGHT_COLOR     Colored cover copyright line? (toggle)
    -#COVER_MISC_COLOR          Colored cover misc line? (toggle)
    -#CURRENT_V_POS             \n(.d ; used in SHIM
    -#COVERS                    Print covers? (toggle)
    -#DATE_FIRST                Was .DATE invoked as first letter
    -                           header after .START? (toggle)
    -dc                         "mark" register for document columns
    -#DIVER_FN                  Register that tells FOOTNOTE whether to
    -                           "move" or "defer" a footnote collected
    -                           inside a diversion
    -#DEFER_BIB_SPACING         Tells DEFAULTS to do BIBLIOGRAPHY_SPACING
    -                           if it was called before START
    -#DEFER_PAGINATION          Tells COLLATE to restore pagination (from
    -                           RESTORE_PAGINATION
    -#DELAY_SHIM                Instructs DO_QUOTE to delay SHIM when quote
    -                           falls at the top of a page
    -#DEPTH_1                   Doc header depth with lead adjustment
    -                           (#DOCHEADER_LINES * #DOCHEADER_LEAD)
    -#DEPTH_2                   Doc header depth without lead adjustment
    -                           (#DOCHEADER_LINES * #DOC_LEAD)
    -#DEPTH_TO_B_MARGIN         Page length minus #B_MARGIN
    -#DIVERSIONS_HY_MARGIN      A reasonable value for .hym applied to
    -                           QUOTE, BLOCKQUOTE and EPIGRAPH to
    -                           avoid excessive hyphenation if these are
    -                           set quad left
    -#DIVERTED                  Set to 1 in DIVERT_FN_OVERFLOW; reset
    -                           subsequently in FOOTNOTES when called by
    -                           PROCESS_FN_LEFTOVER to 2 or 3 for use by
    -                           FOOTER to decide whether to in/decrease
    -                           #FN_DEPTH when outputting footnotes
    -#DOCHEADER_ADVANCE         Distance from top-of-page to baseline of
    -                           docheader
    -#DOCHEADER_COLOR           Colored docheader? (toggle)
    -#DOCHEADER_LEAD            Lead of doc header
    -                           (#DOC_LEAD + #DOCHEADER_LEAD_ADJ)
    -#DOCHEADER_SPACE_ADJ       Lead difference between #DEPTH_1 and
    -                           #DEPTH_2
    -#DOC_COVER_START_POS       Vertical starting pos of doc cover material
    -#DOC_COVERS                Print doc covers? (toggle)
    -#DOC_COVER_COLOR           Colored cover? (toggle)
    -#DOC_COVER_START_POS       Vertical starting pos of cover material
    -#DOC_COVER_TITLE_COLOR     Colored doc cover title? (toggle)
    -#DOC_COVER_SUBTITLE_COLOR  Colored doc cover subtitle? (toggle)
    -#DOC_COVER_ATTRIBUTE_COLOR Colored doc cover attribution string? (toggle)
    -#DOC_COVER_AUTHOR_COLOR    Colored doc cover author(s)? (toggle)
    -#DOC_COVER_DOCTYPE_COLOR   Colored doc cover doctype? (toggle)
    -#DOC_COVER_COPYRIGHT_COLOR Colored doc cover copyright line? (toggle)
    -#DOC_COVER_MISC_COLOR      Colored doc cover misc line? (toggle)
    -#DOC_HEADER                Whether to print a doc header (toggle)
    -#DOC_LEAD_ADJ              Incrementing value (in units) added to
    -                           #DOC_LEAD to fill page to #B_MARGIN
    -#DOC_LEAD                  Leading used in body
    -#DOC_L_LENGTH              Global L_LENGTH
    -#DOC_L_MARGIN              Global L_MARGIN
    -#DOC_LR_MARGIN_TMP         In HEADER, if RECTO_VERSO=1, temporarily
    -                           holds DOC_L_MARGIN during page margin switch
    -#DOC_PT_SIZE               Point size used for body text
    -#DOC_R_MARGIN              Global R_MARGIN
    -#DOCS                      Always 1 after START
    -#DOC_TYPE                  1=default, 2=chapter, 3=named, 4=letter
    -#DOING_COVER               Tells PRINT_AUTHORS that it's printing
    -                           the authors for a cover or doc cover
    -#DONE_ONCE                 Keeps track of how many times footnotes
    -                           have been collected inside the same diversion
    -#DONT_RULE_ME              Rule this (apparent) first footnote? (toggle)
    -#DIVER_LN_OFF              Turn linenumbering off in (block)quotes?
    -                           (toggle)
    -#DRAFT_WITH_PAGENUM        Are we attaching draft/revision info to page
    -                           number? (toggle)
    -#EM_ADJUST                 Amount to raise \(em at END
    -#EN_ALLOWS_HEADERS         Put page headers on endnotes pages? (toggle)
    -#EN_ALLOWS_HEADERS_ALL     Put page headers on all endnotes pages?
    -                           (toggle)
    -#EN_BQ_AUTOLEAD            Register created by EN_BLOCKQUOTE_AUTOLEAD
    -#EN_BQ_LEAD                Leading of blockquotes on endnotes pages
    -#EN_FIGURE_SPACE           Width of \0, for use with formatting endnotes
    -#EN_FIRST_PAGE             Tells PRINT_PAGE_NUMBER about endnotes
    -                           first page number
    -#EN_FIRST_PN               Page number that appears on page 1 of
    -                           endnotes pages.
    -#EN_HDRFTR_CENTER          Should we print centre string of
    -                           headers/footers on endnotes pages? (toggle)
    -#EN_LEAD                   Lead of endnotes
    -#EN_LN_BRACKETS            Are we using brackets for line-numbered
    -                           endnotes (toggle)
    -#EN_LN_SEP                 Are we using a separator for line-numbered
    -                           endnotes (toggle)
    -#EN_MARK                   \n(ln when \*[EN-MARK] is called
    -#EN_MARK_2                 \n(ln when ENDNOTE is called
    -#EN_MARKER_STYLE           1=NUMBER; 2=LINE
    -#EN_NO_COLS                Do not set endnotes in columns? (toggle)
    -#EN_NO_FIRST_PN            Put pagenumber on 1st page of endnotes?
    -                           (toggle)
    -#EN_NUMBERS_ALIGN_RIGHT    Hang and align endnote numbers right?
    -                           (toggle)
    -#EN_NUMBERS_ALIGN_LEFT     Align endnote numbers with left margin?
    -                           (toggle)
    -#EN_NUMBERS_PLACEHOLDERS   Number of placeholders when endnote numbers
    -                           hang and align right
    -#EN_NUMBER_L_LENGTH        Line length for endnote numbers when they're
    -                           right aligned
    -#EN_PP_INDENT              First line indent of paras in multi-para
    -                           endnotes
    -#EN_PP_SPACE               Space multi-paras in endnotes? (toggle)
    -#EN_PS                     ps of endnotes
    -#EN_Q_AUTOLEAD             Register created by EN_QUOTE_AUTOLEAD
    -#EN_Q_LEAD                 Leading of quotes on endnotes pages
    -#EN_REF                    Put REFs in endnotes? (toggle)
    -#EN_SINGLESPACE            Single space endnotes pages? (toggle)
    -#EN_STRING_CAPS            Should ENDNOTES capitalize the endnotes
    -                           string? (toggle)
    -#EN_STRING_UNDERSCORE      Underscore endnotes page head? (toggle)
    -#EN_TITLE_UNDERSCORE       Underscore endnotes document identifier?
    -                           (toggle)
    -#EN_TEXT_INDENT            Page offset for text of endnotes when
    -                           numbers right align
    -#END_QUOTE                 For PP=0 indenting; did we just end a quote?
    -                           (toggle)
    -#ENDNOTE                   Are we in an endnote? (toggle)
    -#ENDNOTE_REFS              Are REFs going to endnotes? (toggle)
    -#ENDNOTES                  Are we in an endnote (for FOOTERs; toggle)
    -#EPI_ACTIVE                Are we in an epigraph? (toggle)
    -#EPI_COLOR                 Colored epigraphs? (toggle)
    -#EPI_DEPTH                 Depth of epigraph from first baseline to
    -                           last
    -#EPI_FITS                  Does epigraph fit on page/column? (toggle)
    -#EPIGRAPH                  Did we have an epigraph? (toggle) 
    -#EPI_LEAD_DIFF             Difference between #DOC_LEAD and #EPI_LEAD
    -#EPI_LEAD                  Leading of epigraph; set by AUTOLEAD
    -#EPI_LINES_EVEN            Even # of lines at end of epi crossing page in
    -                           TYPEWRITE (d-spaced)?
    -#EPI_LINES                 Number of lines in the epigraph
    -#EPI_LINES_TO_END          Number of epigraph lines remaining after
    -                           footer trap is sprung
    -#EPI_LINES_TO_TRAP         Number of epigraph lines till footer trap is
    -                           sprung
    -#EPI_L_LENGTH              Epigraph line length
    -#EPI_OFFSET                Left margin of epigraphs
    -#EPI_OFFSET_VALUE          Epigraph indent as a function of page offset
    -#EPI_ON                    Are we in an epigraph? (toggle)
    -#EPI_WHITESPACE            Space after epigraph to compensate for
    -                           epigraph leading
    -#FIELD                     Incrementing register tacked onto LETTERHEAD
    -#FINIS                     Was FINIS invoked? (toggle)
    -#FINIS_COLOR               Colored FINIS? (toggle)
    -#FN_AUTOLEAD               Autolead value of footnotes
    -#FN_BL_INDENT              Left indent of INDENT BOTH in footnotes
    -#FN_BR_INDENT              Right indent of INDENT BOTH in footnotes
    -#FN_COUNT                  Which fn marker to print; also to
    -                           tell mom to reserve space for and print
    -                           the rule above footnotes
    -#FN_COUNT_AT_FOOTER        The FN_COUNT after FOOTNOTES has been
    -                           output in FOOTER
    -#FN_COUNT_FOR_COLS         Holds a separate footnote count for columns
    -                           (so they don't reset to 0 1 until page break)
    -#FN_DEFER                  Defer footnote to next page/column? (toggle)
    -                           If 0, don't defer.
    -#FN_DEFER_SPACE            Whether to deposit space before
    -                           footnote 1 because there's a deferred
    -                           footnote on the page
    -#FN_DEPTH                  Depth of footnote diversion(s)
    -#FN_FOR_EPI                Signals to epigraph that a footnote is being
    -                           processed
    -#FN_GAP                    When there are footnotes on a page, the
    -                           difference between where FOOTER will be
    -                           sprung and the next legal baseline.
    -                           Used in VFP_CHECK.
    -#FN_LEAD                   Lead in footnotes after FN_AUTOLEAD is
    -                           applied
    -#FN_L_INDENT               Left indent of INDENT LEFT in footnotes
    -#FN_LINES                  Number of lines in fn; used to calculate
    -                           fn depth
    -#FN_LN_BRACKETS            Are footnote linenumber brackets being used?
    -                           (toggle)
    -#FN_LN_SEP                 Is a footnote linenumber separator being used?
    -                           (toggle)
    -#FN_MARK                   \n(ln when \*[FN-MARK] is called
    -#FN_MARK_2                 \n(nl when FOOTNOTE is called
    -#FN_MARKERS                Print footnote markers? (toggle)
    -#FN_MARKER_STYLE           1=STAR; 2=NUMBER
    -#FN_NUMBER                 The footnote number attached to running text
    -                           (and fns) when numbers instead of
    -                           star/dagger is being used for footnootes
    -                           numbers
    -#FN_OVERFLOW_TRAP_POS      The register that sets the position of
    -                           trap FN_OVERFLOW_TRAP.
    -#FN_R_INDENT               Right indent of INDENT RIGHT in footnotes
    -#FN_REF                    Put REFs in footnotes? (toggle)
    -#FN_RULE_ADJ               # of points to raise footnote separator from
    -                           its baseline
    -#FN_RULE_LENGTH            Length of footnote separator rule
    -#FN_RULE                   Print fn rule? (toggle)
    -#FN_SPACE                  Post footnote space
    -#FN_WAS_DEFERED            Tells HEADER about a deferred footnote
    -#FOOTER_DIFF               In TRAPS, the difference between the
    -                           original #B_MARGIN and #VISUAL_B_MARGIN
    -#FOOTER_GAP                Amount of space between end of text and
    -                           page #
    -#FOOTER_MARGIN             Amount of space between page # and bottom
    -                           of page
    -#FOOTER_POS                Position of footer trap (required for
    -                           collecting footnotes inside a diversion)
    -#FOOTERS_ON                Are we using footers? (toggle)
    -#FOOTERS_WERE_ON           Were footers on? - used in FINIS and BLANKPAGE
    -                           (toggle)
    -#FOOTNOTE_COLOR            Colored footnotes? (toggle)
    -#FROM_DIVERT_FN            Signals to FOOTNOTE, when run from
    -                           within DIVERT_FN_LEFTOVER, to set #SPACE_REMAINING
    -                           to the total area allowable for running text
    -#FROM_FOOTER               In col to col footnote processing, tells
    -                           FOOTNOTE that FOOTNOTES was output from
    -                           FOOTER.
    -#FROM_HEADER               In col to col footnote processing, tells
    -                           FOOTNOTE that FOOTNOTES was output from
    -                           HEADER.
    -#FULLSPACE_QUOTES          Should we fullspace quotes? (toggle)
    -#GET_DEPTH                 Signals to FOOTNOTE that it should
    -                           measure the depth of current footnotes
    -                           plus the most recently added one, except
    -                           where the footnote is to be deferred to
    -                           the next page or column
    -#GUTTER                    Width of gutter between columns
    -#HDRFTR_CENTER_CAPS        CENTER part of header/footer in caps?
    -                           (toggle; default=off)
    -#HDRFTR_COLOR              Colored headers/footers? (toggle)
    -#HDRFTR_CTR_PAD_LEFT       Amount of hdrftr CENTER padding on the left
    -#HDRFTR_CTR_PAD_RIGHT      Amount of hdrftr CENTER padding on the right
    -#HDRFTR_CTR_PAD_TMP        Temp storage of left hdrftr CENTER padding
    -                           (for recto/verso switch)
    -#HDRFTR_HEIGHT             Cap height of $HDRFTR_RECTO/$HDRFTR_VERSO
    -                           strings
    -#HDRFTR_LEFT_CAPS          Left part of header/footer in caps?
    -                           (toggle; default=off)
    -#HDRFTR_RIGHT_CAPS         Right part of header/footer in caps?
    -                           (toggle; default=on)
    -#HDRFTR_RULE_COLOR         Colored header/footer rule? (toggle)
    -#HDRFTR_RULE_GAP           Space between header/footer and
    -                           header/footer rule
    -#HDRFTR_RULE               Print head/footer rule? (toggle)
    -#HDRFTR_TMP_CAPS_SWITCH    Temporarily holds HDRFTR_LEFT_CAPS value if
    -                           #SWITCH_HDRFTR=1
    -#HEAD                      1=main/section head 2=subhead
    -#HEAD_CAPS                 Print section titles in caps? (toggle)
    -#HEAD_COLOR                Colored heads? (toggle)
    -#HEADER_GAP                Distance from header to running text
    -#HEADER_MARGIN             Distance from top of page to header
    -#HEADERS_ON                Headers on? (toggle)
    -#HEADER_STATE              Saves header state in COLLATE for use in
    -                           START after COLLATE
    -#HEADERS_WERE_ON           Were headers on? - used in BLANKPAGE (toggle)
    -#HEAD_NUM                  Head number
    -#HEAD_SPACE                2 line spaces before heads?
    -                           (toggle; 1=yes, 0=no)
    -#HORIZ_MARK                Horizontal 
    -#HOW_MANY                  Number of blank pages to output
    -#IGNORE                    Should we ignore this macro? Set to 1 in
    -                           TYPEWRITE.
    -#IN_BIB_LIST               Tells ITEM we're doing a bibliography in
    -                           list style
    -#INDENT_FIRST_PARAS        Indent first paras? (toggle)
    -#INDENT_FIRSTS             Tells footnotes to leave INDENT_FIRST_PARAS
    -                           alone if it's on for running text.
    -#ITALIC_MEANS_ITALIC       For TYPEWRITE.  1=yes; 0=no
    -#L_LENGTH_FOR_EPI          Stores line length at top of doc for use
    -                           with EPIGRAPH when columns are on
    -#L_MARGIN_DIFF             Difference between DOC_L_MARGIN and
    -                           L_MARGIN
    -#LEFT_CAP_HEIGHT           Cap height of left string in headers/footers
    -#LEGAL_BASELINE            Calculates vert. position of next legal
    -                           baseline in SHIM
    -#LETTER_STYLE              1=BUSINESS 2=PERSONAL
    -#LINEBREAK                 Did we have a linebreak? (toggle)
    -#LINEBREAK_COLOR           Colored linebreak? (toggle)
    -#LINENUMBERS               Holds various states of line-numbering when
    -                           line numbering is enabled
    -#LINES_PER_PAGE            # of lines (at DOC_LEAD) that fit on
    -                           page after #B_MARGIN is set
    -#LN                        Are line numbers on? (toggle)
    -#MISC_<n>            Used to print "next" misc lines in DO_COVER
    -#MISC_NUM                  Number of MISC lines
    -#MISCS                     =#MISC_NUM in DO_COVER
    -#MN_OVERFLOW_LEFT          If 1, left margin note text overflows
    -#MN_OVERFLOW_RIGHT         If 1, right margin note text overflows
    -#n%_AT_PAGENUM_SET         Page # from n% when PAGENUMBER invoked
    -#NEEDS_SPACE               Instruct FOOTNOTE, when called by
    -                           PROCESS_FN_IN_DIVER, that if the footnote
    -                           had to be deferred, the VFP must be
    -                           raised by 1v (set in DIVER_FN_2_PRE)
    -#NEXT_AUTHOR               Supplies correct digit to AUTHOR_<#>
    -                           when printing authors in doc header
    -#NEXT_LN                   Next linenumber when \n(ln has to be stored
    -                           because linenumbering suspended
    -#NEXT_MISC                 Incrementing counter for misc lines in
    -                           DO_COVER
    -#NO_BACK_UP                Instructs FN_OVERFLOW_TRAP not to
    -                           subtract 1 line of footnote lead from
    -                           FN_OVERFLOW in a PREV_FN_DEFERRED
    -                           situation.
    -#NO_SPACE                  When para spacing is active, instructs
    -                           PP not to add space after a quote or blockquote.
    -#NO_TRAP_RESET             Should we reset page traps? (toggle)
    -#NUM_AUTHORS               # of authors mod 2 to test if odd or even
    -                           # of authors
    -#NUM_MISCS                 Number of args passed to MISC
    -#NUMBER_HEAD               Are heads numbered? (toggle)
    -#NUMBER_PH                 Are paraheads numbered? (toggle)
    -#NUMBER_SH                 Are subheads numbered? (toggle)
    -#NUM_COLS                  Number of columns per page
    -#NUM_FIELDS                Incrementing register used to match
    -                           #TOTAL_FIELDS
    -#OK_PROCESS_LEAD           Initial processing of TOC and endnote
    -                           leading is deferred until OK_PROCESS_LEAD=1
    -#ORIGINAL_B_MARGIN         The value for #B_MARGIN as set by the
    -                           macro B_MARGIN
    -#ORIGINAL_DOC_LEAD         The lead for PRINT_STYLE 1 as set in
    -                           PRINTSTYLE; required so that PRINT_STYLE 1
    -                           footnotes have an unadjusted lead of
    -                           12 points
    -#OVERFLOW                  Signals to FOOTNOTE that some of the
    -                           footnote text won't fit on the page
    -#PAGE_NUM_ADJ              What to add to n% to get #PAGENUMBER
    -#PAGENUMBER                The page number
    -#PAGENUM_STYLE_SET         Did we set pagenumber style? (toggle)
    -#PAGE_NUM_H_POS            1=left 2=CENTER 3=right; default=2
    -#PAGE_NUM_COLOR            Colored pagenumbers? (toggle)
    -#PAGE_NUM_HYPHENS          Print hyphens surrounding page numbers?
    -                           (toggle)
    -#PAGE_NUM_HYPHENS_SET      Did user set (or unset) hyphens around page
    -                           numbers? (toggle)
    -#PAGE_NUM_POS_SET          Did user set page number position? (toggle)
    -#PAGE_NUM_SET              Test if PAGE_1_NUM was used to set 1st page
    -                           number
    -#PAGE_NUMS                 Print page numbers? (toggle)
    -#PAGE_NUM_V_POS            1=top 2=bottom; default=2
    -#PAGE_TOP                  \n(nl after HEADER completes itself
    -#PH_COLOR                  Colored paraheads? (toggle)
    -#PH_NUM                    Parahead number
    -#PAGE_POS                  Exact position on page during a diversion
    -                           (required for collecting footnotes inside
    -                           a diversion)
    -#PAGINATE_TOC              Is toc pagination on? (toggle)
    -#PAGINATE_WAS_ON           Keeps track of pagination state while
    -                           outputting blank pages
    -#PAGINATION_STATE          Saves pagination state in COLLATE for use in
    -                           START after a COLLATE
    -#PAGINATION_WAS_ON         Was pagination on? - used in FINIS (toggle)
    -#PP                        0 at first para; auto-increments
    -#PP_AT_PAGE_BREAK          # of last (incl. partial) para on page
    -#PP_INDENT                 How much to indent paras
    -#PP_SPACE                  Put space before paras? (toggle)
    -#PP_SPACE_SUSPEND          Suspend para spacing for blockquotes and
    -                           epigraphs
    -#PP_STYLE_PREV             In footnotes, stores PP style in effect
    -                           prior to invoking FOOTNOTE
    -#PP_STYLE                  Regular para=1; quote or epi para=2
    -#PRINT_PAGENUM_ON_PAGE_1   Should we print the page number on first
    -                           page of doc when footers are on? (toggle)
    -#PRINT_STYLE               Typewrite=1, typeset=2
    -#PT_SIZE_IN_UNITS          Stored value of \n[.ps] from last time
    -                           PT_SIZE was called
    -#Q_AUTOLEAD                Register created by QUOTE_AUTOLEAD
    -#Q_DEPTH                   Depth of quote
    -#Q_FITS                    Does this quote fit on one page/column?
    -                           (toggle)
    -#Q_LEAD                    Leading of quotes
    -#Q_LEAD_DIFF               Difference between leading of running text
    -                           and the leading used in quotes/blockquotes
    -#Q_LEAD_REAL               Leading of quotes and blockquotes saved at the
    -                           ends of their respective diversions
    -#Q_L_LENGTH                Line length of quotes
    -#Q_OFFSET                  Page offset for quotes
    -#Q_OFFSET_VALUE            Factor by which to multiply PP_INDENT to
    -                           offset quotes
    -#Q_PARTIAL_DEPTH           The amount of a quote/blockquote that fits at
    -                           the bottom of a page when a quote/blockquote
    -                           spans pages
    -#Q_PP                      In PP, stores para # in QUOTE.  Removed in
    -                           ENDQUOTE.
    -#Q_SPACE_ADJ               The flexible amount of whitespace to add before
    -                           and after a quote/blockquote
    -#Q_TOP                     Vertical place on page that a quote starts
    -#QUOTE                     1=PQUOTE, 2=BQUOTE
    -#QUOTE_COLOR               Color quotes (poetic)? (toggle)
    -#QUOTE_LN                  Linenumber quotes? (toggle)
    -#RECTO_VERSO               Switch HEADER_LEFT and HEADER_RIGHT on
    -                           alternate pages? (toggle); default=0
    -#REF_HYPHENATE             Hyphenate REFs? (toggle)
    -#REF_WARNING               Have we issued a ref warning? (toggle)
    -#REPEAT                    Number of times to repeat linebreak
    -                           character
    -#RESERVED_SPACE            Just enough room to put 1 more line of
    -                           footnotes on the page
    -#RESET_EN_PP               Holds value of register #EN_PP_INDENT
    -#RESET_FN_COUNTERS         1 = "moved" footnote collected in a diversion
    -                           2 = "deferred" fn collected in a diversion
    -#RESET_FN_NUMBER           Should fn# start at 1 on every page?
    -                           (toggle)
    -#RESET_L_LENGTH            Stores current line length when necessary
    -#RESET_PARA_SPACE          Holds current value of toggle register
    -                           #PP_SPACE
    -#RESET_PP_INDENT           Stores value of PP_INDENT when necessary
    -#RESET_QUOTE_SPACING       Stores value of toggle register
    -                           #FULLSPACE_QUOTES (used in endnotes)
    -#RESTORE_DOC_LEAD          Holds value of current doc lead (used in
    -                           endnotes)
    -#RESTORE_HY                Restore hyphenation after .][? (toggle)
    -#RESTORE_OFFSET            Page offset at moment footer trap is sprung;
    -                           not currently used
    -#RESTORE_TOC_PN_PADDING    Saves #TOC_PN_PADDING in TOC prior to
    -                           processing $FIRST_DOC_TITLE
    -#RIGHT_CAP_HEIGHT          Cap height of right string in
    -                           headers/footers
    -#RULED                     Tells FOOTNOTE if a rule (or space has been
    -                           put above the first footnote on the page
    -#RUNON_FN_IN_DIVER         If #LN=1, if we're in a (block)quote, instructs
    -                           FOOTNOTE to unformat diversion RUNON_FN_IN_DIVER
    -#RUNON_FOOTNOTES           If #LN=1, instructs FOOTNOTE to unformat
    -                           diversion RUNON_FOOTNOTES
    -#RUN_ON                    Are we using run-on footnotes? (toggle)
    -#SAVED_DIVER_FN_COUNT      In the case of a footnote inside a
    -                           diversion that should be treated as a
    -                           "normal" footnote, FOOTNOTE needs to
    -                           distinguish between a "normal" deferred
    -                           footnote (always the 1st footnote on the
    -                           page) and one that only looks as if
    -                           it should be deferred, when, in fact,
    -                           it's an overflow; this register lets
    -                           FOOTNOTE know whether the diversion
    -                           footnote is, in fact, the first on the
    -                           page.
    -#SAVED_FN_COUNT            #FN_COUNT+1 prior to +#FN_COUNT; used
    -                           in FOOTNOTES while gathering fns inside
    -                           diversions
    -#SAVED_FN_COUNT_FOR_COLS   #FN_COUNT_FOR_COLS+1 prior to
    -                           +#FN_COUNT_FOR_COLS; used in FOOTNOTES
    -                           while gathering fns inside diversions
    -#SAVED_FN_DEPTH_1          Footnote depth prior to adding footnote
    -                           diversion depth to FN_DEPTH; used when
    -                           footnote text will overflow
    -#SAVED_FN_DEPTH_2          Footnote depth after to adding footnote
    -                           diversion depth to FN_DEPTH; used when
    -                           footnote text will overflow
    -#SAVED_FOOTER_POS          Position of FOOTER in DO_QUOTE (hack)
    -#SAVED_LEAD                In FOOTER and DO_FOOTER, stores the
    -                           lead in effect prior to outputting
    -                           FOOTNOTES or performing either
    -                           PROCESS_FN_LEFTOVER or
    -                           PROCESS_FN_IN_DIVERSION; both the
    -                           diversion FOOTNOTES and the two macros
    -                           have, for PRINT_STYLE 2, an AUTOLEAD
    -                           call, which requires that an LS be
    -                           performed with the #SAVED_LEAD in
    -                           order to remove register #AUTO_LEAD or
    -                           #AUTO_LEAD_FACTOR.
    -#SEP_TYPE                  Set to 1 if LIST separator is ( or [ or {
    -#SH_LEAD_ADJUST            #DOC_LEAD/8 (TYPESET) or /2 (TYPEWRITE)
    -                           (used for subhead spacing)
    -#SH_NUM                    Subhead number
    -#SHIM                      Amount of lead required to advance to
    -                           next legal baseline
    -#SILENT_BQUOTE_LN          "Silently" linenumber blockquotes? (toggle)
    -#SILENT_QUOTE_LN           "Silently" linenumber quotes? (toggle)
    -#SINGLE_SPACE              Is TYPEWRITE in single space mode? (toggle)
    -#SKIP_FOOTER               If 1, instructs DO_FOOTER to do nothing
    -                           if B_MARGIN falls below FOOTER_MARGIN
    -#SLANT_MEANS_SLANT         For TYPEWRITE.  1=yes; 0=no
    -#SLANT_WAS_ON              Keeps track of SLANT when it needs to go off
    -                           for a while
    -#SPACE_REMAINING           Space remaining to footer trap; used to
    -                           decide whether or not to defer a footnote
    -#SR_ADJ_FACTOR             An adjustment factor that compensates
    -                           for the fact that #SPACE_REMAINING
    -                           sometimes reports a fractionally larger
    -                           space than is actually available for
    -                           footnote text.
    -#START                     If 1, signals completion of START
    -#START_FOR_FOOTERS         Toggle set in START; signals to
    -                           PRINT_HDRFTR that START has been invoked,
    -                           allowing PRINT_HDRFTR to decide whether or
    -                           not to print a footer on page 1
    -#START_FOR_MNinit          If 1, defer processing MN_INIT until #START
    -#STORED_PP_INDENT          Temporarily holds value of #PP_INDENT
    -#SUITE                     Current page number (for letters)
    -#SUP_PT_SIZE               Point size of superscript
    -#SUSPEND_PAGINATION        Suspend pagination prior to endnotes?
    -#SWITCH_HDRFTR             Switch HDRFTR_LEFT and HDRFTR_RIGHT?
    -                           (toggle)
    -#T_MARGIN_LEAD_ADJ         \n(.v-12000; ensures critically accurate
    -                           placement of first lines on pages when
    -                           doc processing is not being used and
    -                           a T_MARGIN has been set
    -#TAB_OFFSET#               "#" at the end is from $CURRENT_TAB
    -#TERMINATE                 Has TERMINATE been called? (toggle)
    -#TOC_AUTHORS               Whether to append author(s) to toc doc
    -                           title entries (toggle)
    -#TOC_ENTRY_PN              Current page number when a toc entry is
    -                           collected
    -#TOC_FIRST_PAGE            If 1, tells PRINT_PAGE_NUMBER that this
    -                           is the first page of the toc
    -#TOC_LEAD                  Leading of toc pages
    -#TOC_PN_PADDING            Max. # of placeholders for toc entries
    -                           page numbers
    -#TOC_PS                    Point size of toc pages
    -#TOC_RV_SWITCH             Switch L/R margins of toc pages
    -#TOC_HEAD_INDENT           Indent of toc head entries
    -#TOC_HEAD_SIZE_CHANGE      ps in/decrease of toc head entries****
    -#TOC_PH_INDENT             Indent of toc parahead entries
    -#TOC_PH_SIZE_CHANGE        ps in/decrease of toc parahead entries****
    -#TOC_SH_INDENT             Indent of toc subhead entries
    -#TOC_SH_SIZE_CHANGE        ps in/decrease of toc subhead entries****
    -#TOC_TITLE_INDENT          Indent of toc doc title entries
    -#TOC_TITLE_SIZE_CHANGE     ps in/decrease of toc doc title entries****
    -#TOTAL_FIELDS              Total number of letter header fields
    -#UNDERLINE_ITALIC          For TYPEWRITE.  1=yes; 0=no
    -#UNDERLINE_QUOTE           Underline pquotes? (toggle)
    -#UNDERLINE_SLANT           For TYPEWRITE.  1=yes; 0=no
    -#UNDERLINE_WAS_ON          In HEADER to re-enable running text
    -                           UNDERLINE (toggle)
    -#USERDEF_HDRFTR            User defined single string recto/verso
    -                           header/footer? (toggle)
    -#USERDEF_HDRFTR_RECTO_QUAD 1=left, 2=CENTER, 3=right
    -#USERDEF_HDRFTR_VERSO_QUAD 1=left, 2=CENTER, 3=right
    -#USER_DEF_HEADER_CENTER    User defined CENTER title? (1=yes);
    -                           used in COPYSTYLE
    -#USER_DEF_HEADER_LEFT      User defined CENTER title? (1=yes);
    -                           used in COPYSTYLE
    -#USER_DEF_HEADER_RIGHT     User defined CENTER title? (1=yes);
    -                           used in COPYSTYLE
    -#VARIABLE_FOOTER_POS       Wandering trap position for processing
    -                           footnotes and footers; pos depends on
    -                           footnotes
    -#VISUAL_B_MARGIN           Set in TRAPS, what \n(nl would report
    -                           on the last line of running text before
    -                           FOOTER is sprung.
    -#VFP_DIFF                  #FN_DEPTH minus #SAVED_FN_DEPTH; the
    -                           number of footnote lines that will fit
    -                           on the page when there will be over, and
    -                           therefore the amount by which to raise
    -                           the VFP for footnotes with overflow after
    -                           the 1st footnote.
    -y                          Vertical position stored with mk in hdrftrs.
    - 
    -+++STRINGS+++
    -
    -$1ST_LETTER                      First letter of first arg to LIST
    -$ADJUST_BIB_LEAD                 2nd arg to BIBLIOGRAPHY_LEAD; if not blank
    -                                 adjust bib leading
    -$ATTRIBUTE_STRING               "by" line in doc header
    -$AUTHOR_1...9                    Document author(s)
    -$AUTHOR_FAM                      Family to use for author in doc header
    -$AUTHOR_FT                       Font to use for author in doc header
    -$AUTHOR_SIZE_CHANGE              ps in/decrease of author in doc header*
    -$AUTHOR_PT_SIZE                  Absolute ps of authors
    -$BIB_FAM                         Bibliography page family
    -$BIB_FT                          Bibliography page font
    -$BIB_LEAD                        Base leading for bibliographies
    -$BIB_LIST_SEPARATOR              Separator between enumerator and text
    -                                 when outputting bibliographies in LIST style
    -$BIB_LIST_PREFIX                 Prefix before enumerator when outputting
    -                                 bibliographies in LIST style
    -$BIB_PN_STYLE                    Format of bibliography page numbers
    -$BIB_SPACE                       Post entry space for bibliographies
    -$BIB_STRING                      Bibliography title string
    -$BIB_STRING_FAM                  Bib title family
    -$BIB_STRING_FT                   Bib title font
    -$BIB_STRING_QUAD                 Bib title quad
    -$BIB_STRING_SIZE_CHANGE          Bib title size (+ or -)
    -$BQ_LN_GUTTER                    Gutter between line numbers and bquotes in
    -                                 bquotes
    -$BQUOTE_COLOR                    Blockquote color
    -$BQUOTE_FAM                      Family to use for blockquotes
    -$BQUOTE_FT                       Font to use for blockquotes
    -$BQUOTE_QUAD                     Quad value for blockquotes
    -$BQUOTE_SIZE_CHANGE              ps in/decrease of blockquotes*
    -$CENTER_TITLE                    What to put in the middle of header
    -                                 title
    -$CHAPTER                         The chapter number
    -$CHAPTER_STRING                  What to print whenever the word
    -                                 "chapter" is required
    -$CHAPTER_TITLE                   Chapter title (if there is one)
    -$CHAPTER_TITLE_FAM               Family of chapter title
    -$CHAPTER_TITLE_FT                Font of chapter title
    -$CHAPTER_TITLE_SIZE_CHANGE       ps in/decrease of chapter title*
    -$CHAPTER_TITLE_PT_SIZE           Absolute ps of chapter title
    -$CHAPTER_TITLE_COLOR             Color of chapter title
    -$COPYRIGHT_FAM                   Copyright line family
    -$COPYRIGHT_FT                    Copyright line font
    -$COPYRIGHT_SIZE_CHANGE           Copyright line size*
    -$COPYRIGHT_COLOR                 Copyright line color
    -$COPYRIGHT_QUAD                  Copyright line quad direction
    -$COPY_STYLE                      DRAFT or FINAL
    -$COVER_FAM                       Overall cover family
    -$COVER_COLOR                     Overall cover color
    -$COVER_TITLE                     User-defined cover title string
    -$COVER_TITLE_FAM                 Cover title family
    -$COVER_TITLE_FT                  Cover title font
    -$COVER_TITLE_SIZE_CHANGE         Cover title size*
    -$COVER_TITLE_COLOR               Cover title color
    -$COVER_SUBTITLE_FAM              Cover subtitle family
    -$COVER_SUBTITLE_FT               Cover subtitle font
    -$COVER_SUBTITLE_SIZE_CHANGE      Cover subtitle size*
    -$COVER_SUBTITLE_COLOR            Cover subtitle color
    -$COVER_ATTRIBUTE_COLOR           Cover attribution string color
    -$COVER_AUTHOR_FAM                Cover author(s) family
    -$COVER_AUTHOR_FT                 Cover author(s) font
    -$COVER_AUTHOR_SIZE_CHANGE        Cover author(s) size*
    -$COVER_AUTHOR_COLOR              Cover author(s) color
    -$COVER_DOCTYPE_FAM               Cover doctype family
    -$COVER_DOCTYPE_FT                Cover doctype font
    -$COVER_DOCTYPE_SIZE_CHANGE       Cover doctype size*
    -$COVER_DOCTYPE_COLOR             Cover doctype color
    -$COVER_COPYRIGHT_FAM             Cover copyright family
    -$COVER_COPYRIGHT_FT              Cover copyright font
    -$COVER_COPYRIGHT_SIZE_CHANGE     Cover copyright size*
    -$COVER_COPYRIGHT_COLOR           Cover copyright color
    -$COVER_MISC_FAM                  Cover misc family
    -$COVER_MISC_FT                   Cover misc font
    -$COVER_MISC_SIZE_CHANGE          Cover misc size*
    -$COVER_MISC_COLOR                Cover misc color
    -$CURRENT_EV                      \n[.ev] at REF_BRACKETS_START
    -$DOC_COVER_FAM                   Overall doc cover family
    -$DOC_COVER_COLOR                 Overall doc cover color
    -$DOC_COVER_TITLE                 User-defined doc cover title string
    -$DOC_COVER_TITLE_FAM             Doc cover title family
    -$DOC_COVER_TITLE_FT              Doc cover title font
    -$DOC_COVER_TITLE_SIZE_CHANGE     Doc cover title size*
    -$DOC_COVER_TITLE_COLOR           Doc cover title color
    -$DOC_COVER_SUBTITLE_FAM          Doc cover subtitle family
    -$DOC_COVER_SUBTITLE_FT           Doc cover subtitle font
    -$DOC_COVER_SUBTITLE_SIZE_CHANGE  Doc cover subtitle size*
    -$DOC_COVER_SUBTITLE_COLOR        Doc cover subtitle color
    -$DOC_COVER_ATTRIBUTE_COLOR       Doc cover attribution string color
    -$DOC_COVER_AUTHOR_FAM            Doc cover author(s) family
    -$DOC_COVER_AUTHOR_FT             Doc cover author(s) font
    -$DOC_COVER_AUTHOR_SIZE_CHANGE    Doc cover author(s) size*
    -$DOC_COVER_AUTHOR_COLOR          Doc cover author(s) color
    -$DOC_COVER_DOCTYPE_FAM           Doc cover doctype family
    -$DOC_COVER_DOCTYPE_FT            Doc cover doctype font
    -$DOC_COVER_DOCTYPE_SIZE_CHANGE   Doc cover doctype size*
    -$DOC_COVER_DOCTYPE_COLOR         Doc cover doctype color
    -$DOC_COVER_COPYRIGHT_FAM         Doc cover copyright family
    -$DOC_COVER_COPYRIGHT_FT          Doc cover copyright font
    -$DOC_COVER_COPYRIGHT_SIZE_CHANGE Doc cover copyright size*
    -$DOC_COVER_COPYRIGHT_COLOR       Doc cover copyright color
    -$DOC_COVER_MISC_FAM              Doc cover misc family
    -$DOC_COVER_MISC_FT               Doc cover misc font
    -$DOC_COVER_MISC_SIZE_CHANGE      Doc cover misc size*
    -$DOC_COVER_MISC_COLOR            Doc cover misc color
    -$DOC_FAM                         Predominant font family used in the
    -                                 document
    -$DOC_QUAD                        Quad used for body text (justified or
    -                                 left) 
    -$DOC_TITLE                       Overall doc title that gets printed in
    -                                 headers/footers (mostly for use with
    -                                 collated docs where each doc is an
    -                                 article with a different title)
    -$DOC_TYPE                        Document type (default, chapter, named,
    -                                 letter)
    -$DOCHEADER_COLOR                 Color of docheader
    -$DOCHEADER_FAM                   Family used for all parts of the docheader
    -$DOCHEADER_LEAD_ADJ              +|- value applied to #DOC_LEAD to
    -                                 in/decrease leading of doc header
    -$DOCTYPE_FAM                     Family to use for DOCTYPE string in
    -                                 doc header
    -$DOCTYPE_FT                      Font to use for DOCTYPE string in
    -                                 doc header
    -$DOCTYPE_SIZE_CHANGE             ps in/decrease of DOCTYPE string in
    -                                 doc header*
    -$DOCTYPE_PT_SIZE                 Absolute ps of DOCTYPE
    -$DRAFT                           The draft number (string valued)
    -$DRAFT_STRING                    What to print whenever the word "draft"
    -                                 is required
    -EN_MARK                          Inline, gets #EN_MARK (\(ln)
    -$EN_CLOSE_BRACKET                Close bracket for line-number enumerated
    -                                 endnotes
    -$EN_FAMILY                       Family for endnotes
    -$EN_FT                           Font for endnotes
    -$EN_LINENUMBER                   String to print for line-number enumerators
    -                                 in line-numbered endnotes
    -$EN_LN_FAM                       Family for line-numbers in line-number
    -                                 identified endnotes
    -$EN_LN_FT                        Font for line-numbers in line-number
    -                                 identified endnotes
    -$EN_LN_GAP                       Gap to leave in initial endnote lines
    -                                 between line-number identifies and text
    -$EN_OPEN_BRACKET                 Open bracket for line-number enumerated
    -                                 endnotes
    -$EN_LN_SIZE_CHANGE               Size change (+ or -) for line-numbers in
    -                                 line-number identified endnotes
    -$EN_PN_STYLE                     Pagenumbering style for endnotes pages
    -$EN_QUAD                         Quad for endnotes
    -$EN_STRING                       Endnotes page head
    -$EN_STRING_FAM                   Endnotes page head family
    -$EN_STRING_FT                    Endnotes page head font
    -$EN_STRING_QUAD                  Endnotes page head quad direction
    -$EN_STRING_SIZE_CHANGE           Endnotes page head size***
    -$EN_TITLE                        Endnote document identifier
    -$EN_TITLE_FAM                    Endnote document identifier family
    -$EN_TITLE_FT                     Endnote document identifier font
    -$EN_TITLE_QUAD                   Endnote document identifier quad
    -                                 direction
    -$EN_TITLE_SIZE_CHANGE            Endnote document identifier size***
    -$EN_NUMBER_FAM                   Endnote numbering family
    -$EN_NUMBER_FT                    Endnote numbering font
    -$EN_NUMBER_SIZE_CHANGE           Endnote numbering size***
    -$EPI_AUTOLEAD                    Autolead value (decimals ok) of
    -                                 epigraphs
    -$EPI_COLOR                       Color of epigraphs
    -$EPI_FAM                         Family to use in epigraphs
    -$EPI_FT                          Font to use in epigraphs
    -$EPI_QUAD                        Quad in block-style epigraphs
    -                                 (justified or left)
    -$EPI_SIZE_CHANGE                 ps in/decrease of epigraphs*
    -$EVAL_BIB_SPACE                  Temporary string to find out if the
    -                                 arg to BIBLIOGRAPHY_SPACING ended in "v"
    -$FINIS_COLOR                     Color of FINIS string
    -$FINIS_STRING                    What to print when FINIS macro is
    -                                 invoked
    -$FIRST_DOC_TITLE                 1st doc's title captured in COLLATE
    -FN_MARK                          Inline, gets #FN_MARK (\n(ln)
    -$FN_CLOSE_BRACKET                Close bracket for line-number identified
    -                                 footnotes
    -$FN_FAM                          Family used in footnotes
    -$FN_FT                           Font used in footnotes
    -$FN_LINENUMBER                   String to print before footnotes when
    -                                 line-numbering enabled for footnotes
    -$FN_LN_SEP                       Separator after line-number identified
    -                                 footnotes
    -$FN_OPEN_BRACKET                 Open bracket for line-number identified
    -                                 footnotes
    -$FN_QUAD                         Quad used in footnotes
    -$FN_SIZE_CHANGE                  ps in/decrease of footnotes*
    -$FOOTNOTE_COLOR                  Footnote color
    -$HDRFTR_CENTER                   What to put in CENTER part of headers;
    -                                 default doctype
    -$HDRFTR_CENTER_FAM               Family of CENTER part of headers
    -$HDRFTR_CENTER_FT                Font of centre part of headers
    -$HDRFTR_CENTER_NEW               HDRFTR_CENTER after the start of TOC;
    -                                 defined in HDRFTR_CENTER if
    -                                 HDRFTR_CENTER is called as
    -                                 FOOTER_CENTER
    -$HDRFTR_CENTER_OLD               HDRFTR_CENTER just prior to start of
    -                                 TOC; defined in HDRFTR_CENTER if
    -                                 HDRFTR_CENTER is called as
    -                                 FOOTER_CENTER
    -$HDRFTR_CENTER_SIZE_CHANGE       ps in/decrease of centre title in
    -                                 headers**
    -$HDRFTR_COLOR                    Color of headers/footers
    -$HDRFTR_FAM                      Family to use in headers
    -$HDRFTR_LEFT_FAM                 Family of left part of headers
    -$HDRFTR_LEFT_FT                  Font of left part of headers
    -$HDRFTR_LEFT_SIZE_CHANGE         ps in/decrease of author in headers**
    -$HDRFTR_LEFT                     What to put in left part of headers;
    -                                 default author
    -$HDRFTR_RIGHT_FAM                Family of right part of headers
    -$HDRFTR_RIGHT_FT                 Font of right part of headers
    -$HDRFTR_RIGHT_SIZE_CHANGE        ps in/decrease of right part of
    -                                 headers**
    -$HDRFTR_RIGHT                    What to put in right part of headers;
    -                                 default title
    -$HDRFTR_SIZE_CHANGE              ps in/decrease of headers*
    -$HDRFTR_TMP_SIZE_CHANGE_SWITCH   Temporarily holds
    -                                 HDRFTR_LEFT_SIZE_CHANGE if
    -                                 #SWITCH_HDRFTRS=1
    -$HDRFTR_TMP_SWITCH               Temporarily holds HDRFTR_LEFT if
    -                                 #SWITCH_HDRFTRS=1
    -$HEAD_COLOR                      Head color
    -$HEAD_FAM                        Family to use for section titles
    -$HEAD_FT                         Font to use for section titles
    -$HEAD_QUAD                       Quad value of section titles
    -$HEAD_SIZE_CHANGE                ps in/decrease of section titles*
    -$LINEBREAK_CHAR                  Character that marks line breaks
    -$LINEBREAK_CHAR_V_ADJ            +|- amount by which to raise/lower
    -                                 linebreak character
    -$LAST_CHAR                       Temporary string used to discover whether
    -                                 user has remembered to put a digit after
    -                                 ROMAN or roman in arg to LIST
    -$LINEBREAK_COLOR                 Linebreak color
    -$LIST_ARG_1                      The first arg to LIST (minus digits if
    -                                 ROMAN or roman
    -$LN_GUTTER                       Gutter to leave between line numbers
    -                                 and text
    -$LN_INC                          2nd arg to NUMBER_LINES as a string
    -$LN_NUM                          1st arg to NUMBER_LINES as a string
    -$MISC_COLOR                      Misc line color
    -$MISC_QUAD                       Misc line quad
    -PAGE#                            For use in hdrftr strings where page #
    -                                 is needed; \*[PAGE]
    -$PAGENUM_COLOR                   Page number color
    -$PAGENUM_STYLE                   String passed to PAGENUM_STYLE
    -$PAGE_NUM_FAM                    Family of page numbers
    -$PAGE_NUM_FT                     Font of page numbers
    -$PAGE_NUM_SIZE_CHANGE            ps in/decrease of page numbers
    -$PAPER                           Paper size (LETTER, A4, LEGAL);
    -                                 default=LETTER
    -$PH_COLOR                        Parahead color
    -$PP_FT                           Font used in paragraphs
    -$ROMAN_WIDTH                     The digit(s) appended to ROMAN or
    -                                 roman LIST args
    -$Q_LN_GUTTER                     Gutter between linenumbers and quotes
    -                                 in quotes
    -$QUOTE_COLOR                     Quote (poetic) color
    -$QUOTE_FAM                       Family to use for pquotes
    -$QUOTE_FT                        Font to use for pquotes
    -$QUOTE_SIZE_CHANGE               ps in/decrease of pquotes*
    -$REF_BIB_INDENT                  2nd line indent value for references in
    -                                 bibliographies
    -$REF_EN_INDENT                   2nd line indent value for references in
    -                                 endnotes
    -$REF_FN_INDENT                   2nd line indent value for references in
    -                                 footnotes
    -$RESTORE_SS_VAR                  Saves \*[$SS_VAR] for use with ref*build
    -#REVISION                        The revision number (string valued)
    -$REVISION_STRING                 What to print whenever the word
    -                                 "revision" is required
    -$SH_FAM                          Family to use in subheads
    -$SH_FT                           Font to use in subheads
    -$SH_SIZE_CHANGE                  ps in/decrease of subheads*
    -$SH_COLOR                        Subhead color
    -$SUBTITLE                        Document subtitle
    -$SUBTITLE_FAM                    Family to use for subtitle in doc
    -                                 header
    -$SUBTITLE_FT                     Font to use for subtitle in doc header
    -$SUBTITLE_SIZE_CHANGE            ps in/decrease of subtitle*
    -$SUBTITLE_PT_SIZE                Absolute ps of subtitle
    -$SUITE                           The #SUITE number register
    -$TITLE                           Document title
    -$TITLE_FAM                       Family to use for title in doc header
    -$TITLE_FT                        Font to use for title in doc header
    -$TITLE_PT_SIZE                   Absolute point size of title in docheader
    -$TITLE_SIZE_CHANGE               ps in/decrease of title in doc header*
    -$TOC_AUTHORS                     What to print after toc doc title entry
    -                                 if #TOC_AUTHORS=1
    -$TOC_FAM                         Family to use on toc pages
    -$TOC_HEAD_FAM                    Family of toc head entries
    -$TOC_HEAD_FT                     Font of toc head entries
    -$TOC_HEAD_ITEM                   A head as collected for TOC_ENTRIES
    -$TOC_HEADER_FAM                  Family to use for "Contents"
    -$TOC_HEADER_FT                   Font to use for "Contents"
    -$TOC_HEADER_QUAD                 Quad direction of "Contents"
    -$TOC_HEADER_SIZE                 ps in/decrease of "Contents"****
    -$TOC_HEADER_STRING               Header string of first toc page
    -$TOC_PN                          Sets up toc leaders + entry pn
    -                                 (typeset)
    -$TOC_PN_FAM                      Family for toc entries page numbers
    -$TOC_PN_FT                       Font for toc entries page numbers
    -$TOC_PN_SIZE_CHANGE              ps in/decrease of toc entries page
    -                                 numbers
    -$TOC_PN_STYLE                    Page-numbering style of toc pages
    -$TOC_PN_TYPEWRITE                Sets up toc leaders + entry pn
    -                                 (typewrite)
    -$TOC_PH_FAM                      Family of toc parahead entries
    -$TOC_PH_FT                       Font of toc parahead entries
    -$TOC_PARAHEAD_ITEM               A parahead collected for TOC_ENTRIES
    -$TOC_SH_FAM                      Family of toc subhead entries
    -$TOC_SH_FT                       Font of toc subhead entries
    -$TOC_SH_ITEM                     A subhead collected for TOC_ENTRIES
    -$TOC_TITLE_FAM                   Family of toc doc title entries
    -$TOC_TITLE_FT                    Font of toc doc title entries
    -$USER_SET_TITLE_ITEM             User defined toc doc title entry as
    -                                 set by TOC_TITLE_ENTRY
    -$UR_PAGINATION_STYLE             Pagination style prior to endnotes
    -$USERDEF_HDRFTR_RECTO            User defined header/footer recto string
    -$USERDEF_HDRFTR_VERSO            User defined header/footer verso string
    -
    -   *relative to #DOC_PT_SIZE
    -  **relative to overall ps of headers as set by HEADER_SIZE
    - ***relative to overall ps of endnotes
    -****relative to overall ps of toc pages
    -
    -+++PREPROCESSOR KEYWORDS+++
    -
    -(eqn)
    -EQ
    -EN
    -
    -(grn)
    -GS
    -GE
    -GF
    -
    -(pic)
    -PS
    -PE
    -
    -(refer)
    -R1
    -R2
    -[
    -]
    -
    -(tbl)
    -TS
    -TE
    -TH
    -
    -(grap)
    -G1
    -G2
    -
    -(ideal)
    -IS
    -IE
    -
    -(chem)
    -cstart
    -cend
    -
    -+++ALIASES+++
    -
    -Please note:
    -
    -Prior to version 1.1.9, all macros that included the word COLOR had
    -aliases that used COLOUR instead.  This convenience has now been
    -removed, in an effort to reduce the size of the om.tmac file.
    -
    -Furthermore, if you want the convenience, you'll have to edit the
    -om.tmac file.  Simply aliasing, say, HEAD_COLOR as HEAD_COLOUR will
    -not work, owing to significant changes in the handling of
    -docelement control macros that end in _COLOR.
    -
    -+++The following are for convenience, and header/footer management+++
    -
    -BREAK_BLOCKQUOTE      BREAK_QUOTE
    -BREAK_CITATION        BREAK_QUOTE
    -BREAK_CITE            BREAK_QUOTE
    -CITATION              BLOCKQUOTE
    -CITE                  BLOCKQUOTE
    -COL_BREAK             COL_NEXT
    -DOC_FAM               DOC_FAMILY
    -DOC_LLENGTH           DOC_LINE_LENGTH
    -DOC_L_LENGTH          DOC_LINE_LENGTH
    -DOC_L_MARGIN          DOC_LEFT_MARGIN
    -DOC_LMARGIN           DOC_LEFT_MARGIN
    -DOC_LS                DOC_LEAD
    -DOC_PS                DOC_PT_SIZE
    -DOC_R_MARGIN          DOC_RIGHT_MARGIN
    -DOC_RMARGIN           DOC_RIGHT_MARGIN
    -FOOTER_CENTER_CAPS    HDRFTR_CENTER_CAPS
    -FOOTER_CENTER         HDRFTR_CENTER
    -FOOTER_CENTRE_CAPS    HDRFTR_CENTER_CAPS
    -FOOTER_CENTRE         HDRFTR_CENTER
    -FOOTER_LEFT_CAPS      HDRFTR_LEFT_CAPS
    -FOOTER_LEFT           HDRFTR_LEFT
    -FOOTER_PLAIN          HDRFTR_PLAIN
    -FOOTER_RECTO          HDRFTR_RECTO
    -FOOTER_RIGHT_CAPS     HDRFTR_RIGHT_CAPS
    -FOOTER_RIGHT          HDRFTR_RIGHT
    -FOOTER_RULE_GAP       HDRFTR_RULE_GAP
    -FOOTER_RULE           HDRFTR_RULE
    -FOOTER_VERSO          HDRFTR_VERSO
    -HDRFTR_RULE_INTERNAL  HDRFTR_RULE
    -HEADER_CENTER_CAPS    HDRFTR_CENTER_CAPS
    -HEADER_CENTER         HDRFTR_CENTER
    -HEADER_CENTRE_CAPS    HDRFTR_CENTER_CAPS
    -HEADER_CENTRE         HDRFTR_CENTER
    -HEADER_LEFT_CAPS      HDRFTR_LEFT_CAPS
    -HEADER_LEFT           HDRFTR_LEFT
    -HEADER_PLAIN          HDRFTR_PLAIN
    -HEADER_RECTO          HDRFTR_RECTO
    -HEADER_RIGHT_CAPS     HDRFTR_RIGHT_CAPS
    -HEADER_RIGHT          HDRFTR_RIGHT
    -HEADER_RULE_GAP       HDRFTR_RULE_GAP
    -HEADER_RULE           HDRFTR_RULE
    -HEADER_VERSO          HDRFTR_VERSO
    -PAGENUM               PAGENUMBER
    -PAGINATION            PAGINATE
    -PP_FT                 PP_FONT
    -PRINT_FOOTNOTE_RULE   FOOTNOTE_RULE
    -SWITCH_FOOTERS        SWITCH_HDRFTR
    -SWITCH_HEADERS        SWITCH_HDRFTR
    -TOC_LS                TOC_LEAD
    -TOC_PS                TOC_PT_SIZE
    -
    -+++The following are used for docelement type-style control+++
    -
    -AUTHOR_FAMILY                 _FAMILY
    -AUTHOR_FONT                   _FONT
    -AUTHOR_SIZE                   _SIZE
    -BIBLIOGRAPHY_FAMILY           _FAMILY
    -BIBLIOGRAPHY_FONT             _FONT
    -BIBLIOGRAPHY_FOOTER_CENTER    BIBLIOGRAPHY_HDRFTR_CENTER
    -BIBLIOGRAPHY_FOOTER_CENTRE    BIBLIOGRAPHY_HDRFTR_CENTRE
    -BIBLIOGRAPHY_HEADER_CENTER    BIBLIOGRAPHY_HDRFTR_CENTER
    -BIBLIOGRAPHY_HEADER_CENTRE    BIBLIOGRAPHY_HDRFTR_CENTRE
    -BIBLIOGRAPHY_QUAD             _QUAD
    -BIBLIOGRAPHY_STRING_FAMILY    _FAMILY
    -BIBLIOGRAPHY_STRING_FONT      _FONT
    -BIBLIOGRAPHY_STRING_QUAD      _QUAD
    -BIBLIOGRAPHY_STRING_SIZE      _SIZE
    -BLOCKQUOTE_AUTOLEAD           Q_AUTOLEAD
    -BLOCKQUOTE_AUTOLEAD           QUOTE_AUTOLEAD
    -BLOCKQUOTE_COLOR              _COLOR
    -BLOCKQUOTE_FAMILY             _FAMILY
    -BLOCKQUOTE_FONT               _FONT
    -BLOCKQUOTE_QUAD               _QUAD
    -BLOCKQUOTE_SIZE               _SIZE
    -CHAPTER_TITLE_COLOR           _COLOR
    -CHAPTER_TITLE_FAMILY          _FAMILY
    -CHAPTER_TITLE_FONT            _FONT
    -CHAPTER_TITLE_SIZE            _SIZE
    -COVER_ATTRIBUTE_COLOR         _COLOR
    -COVER_AUTHOR_COLOR            _COLOR
    -COVER_AUTHOR_FAMILY           _FAMILY
    -COVER_AUTHOR_FONT             _FONT
    -COVER_AUTHOR_SIZE             _SIZE
    -COVER_COLOR                   _COLOR
    -COVER_COPYRIGHT_COLOR         _COLOR
    -COVER_COPYRIGHT_FAMILY        _FAMILY
    -COVER_COPYRIGHT_FONT          _FONT
    -COVER_COPYRIGHT_QUAD          _QUAD
    -COVER_COPYRIGHT_SIZE          _SIZE
    -COVER_DOCTYPE_COLOR           _COLOR
    -COVER_DOCTYPE_FAMILY          _FAMILY
    -COVER_DOCTYPE_FONT            _FONT
    -COVER_DOCTYPE_SIZE            _SIZE
    -COVER_FAMILY                  _FAMILY
    -COVER_MISC_COLOR              _COLOR
    -COVER_MISC_QUAD               _QUAD
    -COVER_SUBTITLE_COLOR          _COLOR
    -COVER_SUBTITLE_FAMILY         _FAMILY
    -COVER_SUBTITLE_FONT           _FONT
    -COVER_SUBTITLE_SIZE           _SIZE
    -COVER_TITLE_COLOR             _COLOR
    -COVER_TITLE_FAMILY            _FAMILY
    -COVER_TITLE_FONT              _FONT
    -COVER_TITLE_SIZE              _SIZE
    -DOC_COVER_ATTRIBUTE_COLOR     _COLOR
    -DOC_COVER_AUTHOR_COLOR        _COLOR
    -DOC_COVER_AUTHOR_FAMILY       _FAMILY
    -DOC_COVER_AUTHOR_FONT         _FONT
    -DOC_COVER_AUTHOR_SIZE         _SIZE
    -DOC_COVER_COLOR               _COLOR
    -DOC_COVER_COPYRIGHT_COLOR     _COLOR
    -DOC_COVER_COPYRIGHT_FAMILY    _FAMILY
    -DOC_COVER_COPYRIGHT_FONT      _FONT
    -DOC_COVER_COPYRIGHT_QUAD      _QUAD
    -DOC_COVER_COPYRIGHT_SIZE      _SIZE
    -DOC_COVER_DOCTYPE_COLOR       _COLOR
    -DOC_COVER_DOCTYPE_FAMILY      _FAMILY
    -DOC_COVER_DOCTYPE_FONT        _FONT
    -DOC_COVER_DOCTYPE_SIZE        _SIZE
    -DOC_COVER_FAMILY              _FAMILY
    -DOC_COVER_MISC_COLOR          _COLOR
    -DOC_COVER_MISC_QUAD           _QUAD
    -DOC_COVER_SUBTITLE_COLOR      _COLOR
    -DOC_COVER_SUBTITLE_FAMILY     _FAMILY
    -DOC_COVER_SUBTITLE_FONT       _FONT
    -DOC_COVER_SUBTITLE_SIZE       _SIZE
    -DOC_COVER_TITLE_COLOR         _COLOR
    -DOC_COVER_TITLE_FAMILY        _FAMILY
    -DOC_COVER_TITLE_FONT          _FONT
    -DOC_COVER_TITLE_SIZE          _SIZE
    -DOCHEADER_COLOR               _COLOR
    -DOCHEADER_FAMILY              _FAMILY
    -DOC_QUAD                      _QUAD
    -DOCTYPE_FAMILY                _FAMILY
    -DOCTYPE_FONT                  _FONT
    -DOCTYPE_SIZE                  _SIZE
    -ENDNOTE_BLOCKQUOTE_AUTOLEAD   Q_AUTOLEAD
    -ENDNOTE_BLOCKQUOTE_AUTOLEAD   QUOTE_AUTOLEAD
    -ENDNOTE_FAMILY                _FAMILY
    -ENDNOTE_FONT                  _FONT
    -ENDNOTE_LINENUMBER_FAMILY     _FAMILY
    -ENDNOTE_LINENUMBER_FONT       _FONT
    -ENDNOTE_LINENUMBER_SIZE       _SIZE
    -ENDNOTE_NUMBER_FAMILY         _FAMILY
    -ENDNOTE_NUMBER_FONT           _FONT
    -ENDNOTE_NUMBER_SIZE           _SIZE
    -ENDNOTE_QUAD                  _QUAD
    -ENDNOTE_QUOTE_AUTLOEAD        Q_AUTOLEAD
    -ENDNOTE_QUOTE_AUTOLEAD        QUOTE_AUTOLEAD
    -ENDNOTE_STRING_FAMILY         _FAMILY
    -ENDNOTE_STRING_FONT           _FONT
    -ENDNOTE_STRING_QUAD           _QUAD
    -ENDNOTE_STRING_SIZE           _SIZE
    -ENDNOTE_TITLE_FAMILY          _FAMILY
    -ENDNOTE_TITLE_FONT            _FONT
    -ENDNOTE_TITLE_QUAD            _QUAD
    -ENDNOTE_TITLE_SIZE            _SIZE
    -EPIGRAPH_COLOR                _COLOR
    -EPIGRAPH_FAMILY               _FAMILY
    -EPIGRAPH_FONT                 _FONT
    -EPIGRAPH_QUAD                 _QUAD
    -EPIGRAPH_SIZE                 _SIZE
    -FINIS_COLOR                   _COLOR
    -FOOTNOTE_COLOR                _COLOR
    -FOOTNOTE_FAMILY               _FAMILY
    -FOOTNOTE_FONT                 _FONT
    -FOOTNOTE_QUAD                 _QUAD
    -FOOTNOTE_SIZE                 _SIZE
    -HDRFTR_CENTER_FAMILY          _FAMILY
    -HDRFTR_CENTER_FONT            _FONT
    -HDRFTR_CENTER_SIZE            _SIZE
    -HDRFTR_COLOR                  _COLOR
    -HDRFTR_FAMILY                 _FAMILY
    -HDRFTR_LEFT_FAMILY            _FAMILY
    -HDRFTR_LEFT_FONT              _FONT
    -HDRFTR_LEFT_SIZE              _SIZE
    -HDRFTR_RIGHT_FAMILY           _FAMILY
    -HDRFTR_RIGHT_FONT             _FONT
    -HDRFTR_RIGHT_SIZE             _SIZE
    -HDRFTR_RULE_COLOR             _COLOR
    -HDRFTR_SIZE                   _SIZE
    -HEAD_COLOR                    _COLOR
    -HEAD_FAMILY                   _FAMILY
    -HEAD_FONT                     _FONT
    -HEAD_QUAD                     _QUAD
    -HEAD_SIZE                     _SIZE
    -LINEBREAK_COLOR               _COLOR
    -MISC_COLOR                    _COLOR
    -MISC_QUAD                     _QUAD
    -PAGENUM_COLOR                 _COLOR
    -PAGENUM_FAMILY                _FAMILY
    -PAGENUM_FONT                  _FONT
    -PARAHEAD_COLOR                _COLOR
    -PARAHEAD_FAMILY               _FAMILY
    -PARAHEAD_FONT                 _FONT
    -PARAHEAD_SIZE                 _SIZE
    -QUOTE_COLOR                   _COLOR
    -QUOTE_FAMILY                  _FAMILY
    -QUOTE_FONT                    _FONT
    -QUOTE_INDENT                  _INDENT
    -QUOTE_SIZE                    _SIZE
    -REF_INDENT                    INDENT_REFS
    -REF)                          REF_BRACKETS_END
    -REF]                          REF_BRACKETS_END
    -REF}                          REF_BRACKETS_END
    -REF(                          REF_BRACKETS_START
    -REF[                          REF_BRACKETS_START
    -REF{                          REF_BRACKETS_START
    -SUBHEAD_COLOR                 _COLOR
    -SUBHEAD_FAMILY                _FAMILY
    -SUBHEAD_FONT                  _FONT
    -SUBHEAD_SIZE                  _SIZE
    -SUBTITLE_COLOR                _COLOR
    -SUBTITLE_FAMILY               _FAMILY
    -SUBTITLE_FONT                 _FONT
    -SUBTITLE_SIZE                 _SIZE
    -TITLE_COLOR                   _COLOR
    -TITLE_FAMILY                  _FAMILY
    -TITLE_FONT                    _FONT
    -TITLE_SIZE                    _SIZE
    -TOC_FAM                       _FAMILY
    -TOC_FAMILY                    _FAMILY
    -TOC_HEADER_FAMILY             _FAMILY
    -TOC_HEADER_FONT               _FONT
    -TOC_HEADER_QUAD               _QUAD
    -TOC_HEADER_SIZE               _SIZE
    -TOC_HEAD_FAMILY               _FAMILY
    -TOC_HEAD_FONT                 _FONT
    -TOC_HEAD_SIZE                 _SIZE
    -TOC_PARAHEAD_FAMILY           _FAMILY
    -TOC_PARAHEAD_FONT             _FONT
    -TOC_PARAHEAD_SIZE             _SIZE
    -TOC_PN_FAMILY                 _FAMILY
    -TOC_PN_FONT                   _FONT
    -TOC_PN_SIZE                   _SIZE
    -TOC_PT_SIZE                   _SIZE
    -TOC_SUBHEAD_FAMILY            _FAMILY
    -TOC_SUBHEAD_FONT              _FONT
    -TOC_SUBHEAD_SIZE              _SIZE
    -TOC_TITLE_FAMILY              _FAMILY
    -TOC_TITLE_FONT                _FONT
    -TOC_TITLE_SIZE                _SIZE
    -
    - -
    -Prev   -Top   -Back to Table of Contents - - diff --git a/src/contrib/mom/momdoc/toc.html b/src/contrib/mom/momdoc/toc.html deleted file mode 100644 index 5157404..0000000 --- a/src/contrib/mom/momdoc/toc.html +++ /dev/null @@ -1,329 +0,0 @@ - - - - -Mom, version 1.3-a -- Table of Contents - - - - - -

    Table of Contents for mom, version 1.3-a

    - -The table of contents has grown quite large. If you've been using -mom for a while, you might prefer the -Quick Reference Guide. -

    -If you're new to mom, click on any link in the -Quick Table of Contents -to go to the -appropriate section of the Full Table of Contents. -

    -Or click -here -to go directly to the Full Table of Contents. -

    -


    - -

    Quick Table of Contents

    -INTRODUCTORY STUFF - -TYPESETTING WITH MOM - -

    -DOCUMENT PROCESSING WITH MOM -

    -
    -
    - -

    Full Table of Contents

    - - -
  • 1. WHAT IS MOM? - - -
  • 2. DEFINITIONS OF TERMS USED IN THIS MANUAL - - -
  • 3. USING MOM - - -
  • 4. THE TYPESETTING MACROS - - - -
  • 5. DOCUMENT PROCESSING WITH MOM - - -
  • 6. QUICK REFERENCE GUIDE TO MOM -

    - -

  • 7. APPENDICES - - - - diff --git a/src/contrib/mom/momdoc/typemacdoc.html b/src/contrib/mom/momdoc/typemacdoc.html deleted file mode 100644 index bedd031..0000000 --- a/src/contrib/mom/momdoc/typemacdoc.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - -Mom -- Typesetting macros in document processing - - - - - -Next   -Prev   -Back to Table of Contents -

    - - - -

    USING TYPESETTING MACROS DURING DOCUMENT PROCESSING

    - - -During document processing, most of the -typesetting macros -affect type in the document globally. For example, if you turn kerning -off, pairwise kerning is disabled not only in paragraphs, but -also in headers, footers, quotes, and so on. -

    -Typesetting macros that alter margins and line lengths affect -running text -globally (or at least try to), but leave headers/footers and footnotes -alone. (To indent footnotes, see the full explanation of the -FOOTNOTE -macro.) -

    -Mom's tabs -(both -typesetting tabs -and -string tabs) -behave as expected in running text during document processing. Tab -structures that do not exceed the line length of running text are -preserved sensibly from page to page, and, if -COLUMNS -are enabled, from column to column. -

    -Some typesetting macros, however, when used during document -processing, behave in special ways. These are the macros that deal -with the basic parameters of type style: horizontal and vertical -margins, line length, -family, -font, -point size, -leading, -and -quad. - -

    -Mom assumes that any changes to these parameters -stem from a temporary need to set type in a style different from that -provided by mom's -document element tags. -In other words, you need to do a bit of creative typesetting in the -middle of a document. -

    -The following lists those typesetting macros whose behaviour during -document processing requires some explanation. -(Please refer to -Top and bottom margins in document processing -for information on how mom interprets -T_MARGIN -and -B_MARGIN -in document processing. Additionally, see -ADD_SPACE -if you encounter the problem of trying to get mom -to put space at the tops of pages after the first.) - -

    -MACRO           EFFECT DURING DOCUMENT PROCESSING
    ------           ---------------------------------
    -
    -L_MARGIN        *The left margin of all running text
    -                 assumes the new value.
    -
    -                *The line length remains unaltered.
    -
    -                *The header and footer left margin
    -                 remain at the current document default.
    -
    -                (You won't use this often by itself.  Most
    -                 likely, you'll use it in combination with
    -                 R_MARGIN or LL.)
    -
    -R_MARGIN        *The right margin of all running text
    -                 assumes the new value.  In other words,
    -                 the line length is altered.
    -
    -                *The header and footer right margin
    -                 remain at the current document default.
    -
    -LL              *The line length of all running text
    -                 is set to the new value.
    -
    -                *The header and footer line length remain
    -                 at the current document default.
    -
    -FAMILY          *Changes family for the duration of the
    -                 current tag only.  As soon as another document
    -                 element tag is invoked, the family reverts to
    -                 the current default for the new tag.
    -
    -FT              *Changes font for the duration of the
    -                 current tag only.  As soon as another document
    -                 element tag is entered, the font reverts
    -                 to the current default for the new tag.
    -
    -                 N.B. -- \*[SLANT] and \*[BOLDER] affect
    -                 paragraph text, and remain in effect for all
    -                 paragraphs until turned off.  If you want to
    -                 use them in a macro that takes a string
    -                 argument, include the escape in the string.
    -                 \*[COND] and \*[EXT] behave similarly.
    -
    -PT_SIZE         *Changes point size for the duration of the
    -                 current tag only.  As soon as another document
    -                 element tag is entered, the point size reverts
    -                 to the current document default for the new
    -                 tag.
    -
    -LS              *Changes line space for the duration of the
    -                 current tag only.  As soon as another document
    -                 element tag is entered, the line space reverts to
    -                 the current document default for the new
    -                 tag.
    -
    -                 Using LS to temporarily change leading within a
    -                 document will almost certainly result in a bottom
    -                 margin that doesn't align with the bottom margin
    -                 of subsequent pages.  You'll need to use the SHIM
    -                 macro to get mom back on track when you're ready
    -                 to return to the document's default leading.
    -
    -QUAD            *Changes quad for the duration of the
    -                 current tag only.  As soon as another document
    -                 element tag is entered, the quad reverts to
    -                 the current document default for the new
    -                 tag.
    -
    -                 N.B. -- Line-for-line quadding macros
    -                 (LEFT, CENTER, RIGHT) are also temporary,
    -                 overridden by the QUAD value of any subsequent
    -                 document element tag.
    -
    -
    - - - - -

    Top and bottom margins in document processing

    -
    - -Normally, mom establishes the top and bottom margins -of -running text -in documents from the values of HEADER_MARGIN + -HEADER_GAP and FOOTER_MARGIN + FOOTER_GAP -respectively. However, if you invoke -T_MARGIN -or -B_MARGIN -either before or after -START, -they set the top and bottom margins of running text irrespective -of HEADER_GAP and FOOTER_GAP. -

    -Put another way, in document processing, T_MARGIN -and B_MARGIN set the top and bottom margins of -running text, but have no effect on the placement of -headers, -footers, -or page numbers. - - -

    ADD_SPACE

    - - -

    -Occasionally, you may want to insert space before the start of -running text -on pages after the first. -

    -You might have tried using -ALD -or -SPACE -and found it did nothing. This is because mom -normally inhibits any extra space before the start of running text -on pages after the first. -

    -If you need the space, you must use the macro, -ADD_SPACE, in conjuction with -NEWPAGE. -ADD_SPACE takes as its single argument the -distance you want mom to advance from the normal -baseline position at the top of the page. A -unit of measure -is required. - -

    -For example, say you wanted to insert 2 inches of space before the -start of running text on a page other than the first. You'd -accomplish it with - -

    -

    -	.NEWPAGE
    -	.ADD_SPACE 2i
    -
    - -which would terminate your current page, break to a new page, -print the header (assuming headers are on) and insert 2 inches of -space before the start of running text. -

    -Since adding space in this way is almost sure to disrupt -mom's ability to guarantee perfectly flush bottom -margins, I highly recommend using the -SHIM -macro immediately after ADD_SPACE. -

    -


    -Next   -Prev   -Top   -Back to Table of Contents - - diff --git a/src/contrib/mom/momdoc/typesetting.html b/src/contrib/mom/momdoc/typesetting.html deleted file mode 100644 index a7584b2..0000000 --- a/src/contrib/mom/momdoc/typesetting.html +++ /dev/null @@ -1,4189 +0,0 @@ - - - - -Mom -- Typesetting Macros - - - - - -Next   -Prev   -Back to Table of Contents -

    - - -

    THE TYPESETTING MACROS

    - - -Introduction to the typesetting macros -
    - -

    -


    - -

    Introduction to the typesetting macros

    - -Mom's typesetting macros provide access to -groff's typesetting capabilities. Aside from controlling basic -type parameters (family, font, line length, point size, leading), -mom's macros fine-tune wordspacing, letterspacing, -kerning, hyphenation, and so on. In addition, mom -has true typesetting tabs, string tabs, multiple indent styles, -line padding, and a batch of other goodies. -

    -In some cases, mom's typesetting macros merely imitate -groff primitives. In others, they approach typesetting concerns in -conceptually new ways (for groff, at least). This should present no -problem for newcomers to groff who are learning mom. -Old groff hands should be careful. Just because it looks like a -duck and walks like a duck does not, in this instance, mean that it -is a duck. When using mom, stay away from groff -primitives if mom provides a macro that accomplishes -the same thing. -

    -Mom's typesetting macros can be used as a standalone -package, independent of the -document processing macros. -With them, you can typeset on-the-fly. Book covers, your best -friend's résumé, a poster for a lost dog--none of these requires -structured document processing (page headers, paragraphs, heads, -footnotes, etc). What they do demand is precise control over every -element on the page. The typesetting macros give you that control. -

    -


    - - - - - - -

    Page setup: paper size and page margins

    -
    - -The page setup macros establish the physical dimensions of your -page and the margins you want it to have. Groff -has defaults for these, but I recommend setting them at the top -of your files anyway unless you're using mom's -document processing macros -and are content with her defaults. -

    -The -PAPER -macro provides a shortcut for setting the page to the correct dimensions -for a number of well-known, established paper sizes. The -PAGE -macro provides a convenient way of setting the page dimensions and -some or all of the page margins with a single macro. -

    - - -

    Page setup macros list

    - - - -

    - - - -


    -

    Page width

    -
    -Macro: PAGEWIDTH <width of printer sheet> -
    -*Requires a unit of measure - -

    -The argument to PAGEWIDTH is the width of your -printer sheet. PAGEWIDTH requires a unit of measure. -Decimal fractions are allowed. Hence, to tell mom -the width of your printer sheet is 8-1/2 inches, you enter -

    -

    -	.PAGEWIDTH 8.5i
    -
    - - - -
    -

    Page length

    -
    -Macro: PAGELENGTH <length of printer sheet> -
    -*Requires a unit of measure - -

    -PAGELENGTH tells mom how long your -printer sheet is. It works just like -PAGEWIDTH. Therefore, to tell -mom your printer sheet is 11 inches long, you -enter -

    -

    -	.PAGELENGTH 11i
    -
    - - - -
    -

    Paper

    -
    -Macro: PAPER <paper type> - -

    -PAPER provides a convenient way to set the page -dimensions for some common printer sheet sizes. <paper -type> can be one of: -

    -

    -	LETTER
    -	LEGAL
    -	STATEMENT
    -	TABLOID
    -	LEDGER
    -	FOLIO
    -	QUARTO
    -	10x14
    -	EXECUTIVE
    -	A3
    -	A4
    -	A5
    -	B4
    -	B5 
    -
    - -Say, for example, you have A4-sized sheets in your printer. -It's shorter (and easier) to enter -

    -

    -	.PAPER A4
    -
    - -than to remember the correct dimensions and enter -

    -

    -	.PAGEWIDTH  595p
    -	.PAGELENGTH 842p
    -
    - - - -
    -

    Left margin

    -
    -Macro: L_MARGIN <left margin> -
    -*Requires a unit of measure - -

    -L_MARGIN establishes the distance from the left edge -of the printer sheet at which you want your type to start. It may -be used any time, and remains in effect until you enter a new value. -

    -Left indents -and -tabs -are calculated from the value you pass to L_MARGIN, -hence it's always a good idea to invoke it before starting any serious -typesetting. A unit of measure is required. Decimal fractions are -allowed. Therefore, to set the left margin at 3 picas (1/2 inch), -you'd enter either -

    -

    -	.L_MARGIN 3P
    -	  or
    -	.L_MARGIN .5i
    -
    - -If you use the macros -PAGE, -PAGEWIDTH -or -PAPER -without invoking L_MARGIN (either before -or afterwards), mom automatically sets -L_MARGIN to 1 inch. -

    -NOTE: L_MARGIN behaves in a special way when you're -using the -document processing macros. -See -Typesetting Macros in Document Processing -for an explanation. -

    - - - -


    -

    Right margin

    -
    -Macro: R_MARGIN <right margin> -
    -*Requires a unit of measure - -

    -R_MARGIN establishes the amount of space you -want between the end of typeset lines and the right hand edge -of the printer sheet. In other words, it sets the line length. -R_MARGIN requires a unit of measure. Decimal -fractions are allowed. -

    -The line length macro (LL) can -be used in place of R_MARGIN. In either case, the -last one invoked sets the line length. The choice of which to use is -up to you. In some instances, you may find it easier to think of a -section of type as having a right margin. In others, giving a line -length may make more sense. -

    -For example, if you're setting a page of type you know should have -6-pica margins left and right, it makes sense to enter a left and -right margin, like this: -

    -

    -	.L_MARGIN 6P
    -	.R_MARGIN 6P
    -
    - -That way, you don't have to worry about calculating the line -length. On the other hand, if you know the line length for a -patch of type should be 17 picas and 3 points, entering the line -length with LL is much easier than calculating the -right margin. -

    -

    -	.LL 17P+3p
    -
    - -If you use the macros -PAGE, -PAGEWIDTH -or -PAPER -without invoking R_MARGIN afterwards, -mom automatically sets R_MARGIN -to 1 inch. If you set a line length after these macros (with -LL), -the line length calculated by R_MARGIN is, of course, -overridden. -

    -IMPORTANT: R_MARGIN, if used, MUST come after -PAPER, -PAGEWIDTH, -L_MARGIN -and/or -PAGE -(if a right margin isn't given to PAGE). -The reason is that R_MARGIN calculates line -length from the overall page dimensions and the left margin. -Obviously, it can't make the calculation if it doesn't know the page -width and the left margin. -

    -NOTE: R_MARGIN behaves in a special way -when you're using the -document processing macros. -See -Typesetting Macros in Document Processing -for an explanation. -

    - - - -


    -

    Top margin

    -
    -Macro: T_MARGIN <top margin> -
    -*Requires a unit of measure - -

    -T_MARGIN establishes the distance from the top of -the printer sheet at which you want your type to start. It requires -a unit of measure, and decimal fractions are allowed. To set a top -margin of 2-1/2 centimetres, you'd enter -

    -

    -	.T_MARGIN 2.5c
    -
    - -T_MARGIN calculates the vertical position of the -first line of type on a page by treating the top edge of the printer -sheet as a baseline. Therefore, -

    -

    -	.T_MARGIN 1.5i
    -
    - -puts the baseline of the first line of type 1-1/2 inches beneath -the top of the page. -

    -IMPORTANT: T_MARGIN does two -things: it establishes the top margin for pages that come after -it AND it moves to that position on the current page. Therefore, -T_MARGIN should only be used at the top of a file -(prior to entering text) or after -NEWPAGE, -like this: -

    -

    -	.NEWPAGE
    -	.T_MARGIN 6P
    -	<text>
    -
    - -NOTE: T_MARGIN means something -slightly different when you're using the -document processing macros. -See -Top and bottom margins in document processing -for an explanation. -

    - - - -


    -

    Bottom margin

    -
    -Macro: B_MARGIN <bottom margin> -
    -*Requires a unit of measure - -

    -B_MARGIN sets a nominal position at the bottom -of the page beyond which you don't want your type to go. When the -bottom margin is reached, mom starts a new page. -B_MARGIN requires a unit of measure. Decimal -fractions are allowed. To set a nominal bottom margin of 3/4 inch, -enter -

    -

    -	.B_MARGIN .75i
    -
    - -Obviously, if you haven't spaced the type on your pages so that -the last lines fall perfectly at the bottom margin, the margin will -vary from page to page. Usually, but not always, the last line of -type that fits on a page before the bottom margin causes -mom to start a new page. -

    -Occasionally, owing to a peculiarity in groff, -an extra line will fall below the nominal bottom margin. If you're -using the -document processing macros, -this is unlikely to happen; the document processing macros are very -hard-nosed about aligning bottom margins. -

    -NOTE: The meaning of B_MARGIN is -slightly different when you're using the document processing macros. -See -Top and bottom margins in document processing -for an explanation. -

    - - - -


    -

    Page

    -
    -Macro: PAGE -<width> [ <length> [ <lm> [ <rm> [ <tm> [ <bm> ] ] ] ] ] -
    -*All arguments require a unit of measure - -

    -PAGE lets you establish paper dimensions and page -margins with a single macro. The only required argument is page width. -The rest are optional, but they must appear in order and you can't -skip over any. <lm>, <rm>, <tm> -and <bm> refer to the left, right, top and bottom -margins respectively. -

    -Assuming your page dimensions are 11 inches by 17 inches, and that's -all you want to set, enter -

    -

    -	.PAGE 11i 17i
    -
    - -If you want to set the left margin as well, say, at 1 inch, -PAGE would look like this: -

    -

    -	.PAGE 11i 17i 1i
    -
    - -Now suppose you also want to set the top margin, say, at 1-1/2 -inches. <tm> comes after <rm> -in the optional arguments, but you can't skip over any arguments, -therefore to set the top margin, you must also give a right margin. -The PAGE macro would look like this: -

    -

    -        .PAGE 11i 17i 1i 1i 1.5i
    -                         |   |
    -        required right___|   |___top margin
    -                margin
    -
    - -Clearly, PAGE is best used when you want a convenient -way to tell mom just the dimensions of your printer -sheet (width and length), or when you want to tell her everything -about the page (dimensions and all the margins), for example -

    -

    -	.PAGE 8.5i 11i 45p 45p 45p 45p
    -
    - -This sets up an 8-1/2 by 11 inch page with margins of 45 points -(5/8-inch) all around. -

    -NOTE: Only use PAGE at the -start of a document, before entering any text. And remember, -when you're using the -document processing macros, -top margin and bottom margin mean something slightly different than -when you're using just the typesetting macros (see -Top and bottom margins in document processing). -

    -Additionally, if you invoke PAGE with a top margin -argument, any macros you invoke after PAGE will -almost certainly move the -baseline -of the first line of text down by one linespace. To compensate, do -

    -

    -	.RLD 1v
    -
    - -immediately before entering any text, or, if it's feasible, make -PAGE the last macro you invoke prior to entering text. -

    - - - -


    -

    Start a new page

    -
    -Macro: NEWPAGE - -

    -Whenever you want to start a new page, use NEWPAGE, by -itself with no argument. Mom will finish up -processing the current page and move you to the top of a new one -(subject to the top margin set with -T_MARGIN. -

    -Experts: Prior to version 1.1.9, -NEWPAGE was simply an alias of -.bp. As of 1.1.9, NEWPAGE, -is its own mom macro. While the new macro -should be backwardly compatible with documents created using -pre-1.1.9 moms, I suggest that from this version -onward, if you were in the habit of using .bp -whenever you wanted to break to a new page, you now begin to use -NEWPAGE instead. -

    -


    - - - - - - -

    Basic Typesetting Parameters

    -
    - -Basic parameter macros deal with the fundamental requirements -for setting type: family, font, point size, leading and line length. -

    -If you're using the typesetting macros only, the arguments passed -to the basic parameter macros remain in effect until you change them. -The document processing macros handle things differently. See -Typesetting Macros in Document Processing -for an explanation. -

    - -

    Basic parameter macros list

    - - - - -
    -

    Type family

    -
    -Macro: FAMILY <family> -
    -Alias: FAM - -

    -FAMILY takes one argument: the name of the -family -you want. Groff comes with a number of PostScript families, each -identified by a 1-, 2- or 3-letter mnemonic. The standard families -are: - - - -
    AAvant Garde -
    BM Bookman -
    HHelvetica -
    HNHelvetica Narrow -
    NNew Century Schoolbook -
    PPalatino -
    TTimes Roman
    ZCMZapf Chancery
    -

    -The argument you pass to FAMILY is the identifier at -left, above. For example, if you want Helvetica, enter -

    -

    -	.FAMILY H
    -
    - -NOTE: The -font macro -(FT) lets you specify both the type family -and the desired font with a single macro. While this saves a few -keystrokes, I recommend using FAMILY for family, -and FT for font, except where doing so is genuinely -inconvenient. ZCM, for example, only exists in one -style: Italic (I). Therefore, .FT ZCMI -makes more sense than setting the family to "ZCM", then -setting the font to "I". -

    - -ADDITIONAL NOTE: As of mom, version -1.1.9-a, if you are running a version of groff lower -than 1.19.2, you MUST follow all FAMILY -requests with a FT request, otherwise -mom will set all type up to the next -FT request in the -fallback font. -

    -If you are running a version of groff greater than or equal -to 1.19.2, when you invoke the FAMILY macro, -mom "remembers" the font style (Roman, -Italic, etc) currently in use (if the font style exists in the new -family) and will continue to use the same font style in the new -family. For example: -

    -

    -	.FAMILY BM   \" Bookman family
    -	.FT     I    \" Medium Italic
    -	<some text>  \" Bookman Medium Italic
    -	.FAMILY H    \" Helvetica family
    -	<more text>  \" Helvetica Medium Italic
    -
    - -However, if the font style does not exist in the new family, -mom will set all subsequent type in the -fallback font -(by default, Courier Medium Roman) until she encounters a -.FT -request that's valid for the family. For example, assuming -you don't have the font "Medium Condensed Roman" -(mom extension "CD") -in the Helvetica family: -

    -

    -	.FAMILY UN    \" Univers family
    -	.FT     CD    \" Medium Condensed
    -	<some text>   \" Univers Medium Condensed
    -	.FAMILY H     \" Helvetica family
    -	<more text>   \" Courier Medium Roman!
    -
    - -In the above example, you must follow .FAMILY H with a -FT request that's valid for Helvetica. -

    -Experts: -
    -If you add other PostScript families to groff's /font/devps directory, -I recommend following the groff standard for naming families and fonts. -For example, if you add the Garamond family, name the font files -

    -

    -	GARAMONDR
    -	GARAMONDI
    -	GARAMONDB
    -	GARAMONDBI
    -
    - -GARAMOND then becomes a legal family name you can pass to -FAMILY. (You could, of course, shorten GARAMOND to just -G, or GD.) R, I, B, and BI after GARAMOND are the roman, italic, -bold and bold-italic fonts respectively. -

    -Please see the Appendices, -Adding PostScript fonts to groff, -for information on adding fonts and families to groff, as well as -to see a list of the extensions mom provides to -groff's basic R, I, B, BI styles. -

    - - - -


    -

    Font

    -
    -Macro: FT R | I | B | BI | <any other valid font style> - -

    -By default, groff permits FT to take one of four -possible arguments specifying the desired font: - - -
    R = (Medium) Roman -
    I = (Medium) Italic -
    B = Bold (Roman) -
    BI = Bold Italic
    -

    -For example, if your -family -is Helvetica, entering -

    -

    -	.FT B
    -
    - -will give you the Helvetica bold -font. -If your family were Palatino, you'd get the Palatino bold font. -

    -(As of mom, version 1.1.9-a, the range of arguments -that can be passed to FT has been considerably -extended, allowing access to a greater variety of font -weights -and -shapes. -Please see the -NOTE, -below.) -

    -How mom reacts to an invalid argument to -FT depends on which version of groff you're using. -If your groff version is greater than or equal to 1.19.2, -mom will issue a warning and, depending on how -you've set up the -fallback font, -either continue processing using the fallback font, or abort -(allowing you to correct the problem). If your groff version is less -than 1.19.2, mom will silently continue processing, -using either the fallback font or the font that was in effect prior -to the invalid FT call. -

    -FT will also accept, as an argument, a full -family+font name. For example, -

    -

    -	.FT HB
    -
    - -will set subsequent type in Helvetica Bold. However, I strongly -recommend keeping family and font separate except where doing so is -genuinely inconvenient. -

    -For inline control of fonts, see -Inline Escapes, font control. -

    - -NOTE: mom, versions 1.1.9-a and higher, -considerably extends the range of arguments you can pass to -FT, making it more convenient to add and access -fonts of differing -weights -and -shapes -within the same family. Have a look -here -for a list of the weight/style arguments mom -allows. -

    -Be aware, though, that you must have the fonts, correctly -installed and named, in order to use the arguments. (See -How to create a PostScript font for use with groff -for how to add fonts to groff.) Please also read the -ADDITIONAL NOTE -found in the description of the FAMILY macro. -

    - - - -


    -

    Fallback font

    -
    -Macro: FALLBACK_FONT <fallback font> [ ABORT | WARN ] | ABORT | WARN - -

    -In the event that you pass an invalid argument to -.FAMILY -(i.e. a non-existent family), mom, by default, uses -the fallback font, Courier Medium Roman (CR), in order to continue -processing your file. -

    -If you'd prefer another fallback font, pass -FALLBACK_FONT the full family+font name -of the font you'd like. For example, if you'd rather the -fallback font were Times Roman Medium Roman, - -

    -	.FALLBACK_FONT TR
    -
    -

    -would do the trick. -

    -Additionally, if your version of groff accepts accepts "if -F" and "if S" (see -above), -mom issues a warning whenever a -font style set with -.FT -does not exist, either because you haven't registered the style -(see -here -for instructions on registering styles), or because the font style -does not exist in the current family set with -.FAMILY. -By default, mom then aborts, which allows you to -correct the problem. -

    -If you'd prefer that mom not abort on non-existent -fonts, but rather continue processing using a fallback font, -you can pass FALLBACK_FONT the argument -WARN, either by itself, or in conjunction with your -chosen fallback font. -

    -Some examples of invoking FALLBACK_FONT: -
    -

      -
    • .FALLBACK_FONT WARN -
      - mom will issue a warning whenever you try - to access a non-existent font but will continue processing - your file with the default fallback font, Courier Medium Roman. -
    • .FALLBACK_FONT TR WARN -
      - mom will issue a warning whenever you try - to access a non-existent font but will continue processing - your file with a fallback font of Times Roman Medium Roman; - additionally, "TR" will be the fallback font whenever - you try to access a family that does not exist. -
    • .FALLBACK_FONT TR ABORT -
      - mom will abort whenever you try to access a - non-existent font, and will use the fallback font - "TR" whenever you try to access a family - that does not exist. -
    -

    -If, for some reason, you want to revert to ABORT, just enter -.FALLBACK_FONT ABORT and mom will once -again abort on font errors. -

    - - - -


    -

    Point size of type

    -
    -Macro: PT_SIZE <size of type in points> -
    -*Does not require a unit of measure - -

    -PT_SIZE (Point Size) takes one argument: the size of type -in points. Unlike most other macros that establish the size or measure -of something, PT_SIZE does not require that you supply a -unit of measure since it's a near universal convention that type size -is measured in points. Therefore, to change the type size to, say, -11 points, enter -

    -

    -	.PT_SIZE 11
    -
    - -Point sizes may be fractional (e.g. 10.25 or 12.5). -

    -You can prepend a plus or a minus sign to the argument to -PT_SIZE, in which case the point size will be changed by + -or - the original value. For example, if the point size is 12, -and you want 14, you can do -

    -

    -	.PT_SIZE +2
    -
    - -then later reset it to 12 with -

    -

    -	.PT_SIZE -2
    -
    - -The size of type can also be changed inline. See -Inline Escapes, changing point size. -

    -NOTE: It is unfortunate that the pic -pre-processor uses PS, and thus -mom's macro for setting point sizes can't use it. -However, if you aren't using pic, you might want to -alias PT_SIZE as PS, since -there'd be no conflict. -

    -

    -	.ALIAS PS PT_SIZE
    -
    - -would allow you to set point sizes with .PS. -

    - - - -


    -

    Line spacing/leading

    -
    -Macro: LS <distance between lines> -
    -*Does not require a unit of measure - -

    -LS (Line Space) takes one argument: the distance you want, typically -in points, from baseline to baseline of type. The argument may -be fractional (e.g. 12.25 or 14.5). Like PT_SIZE, -LS does not require a unit of measure, since -leading -is most often given in points. Therefore, to set the linespace to -14 points, you would enter -

    -

    -	.LS 14
    -
    - -However, if you wish, you may specify a unit of measure by appending -it directly to the argument passed to LS. For example, -if you want a linespace of 1/4 of an inch, enter -

    -

    -	.LS .25i
    -
    - -You can prepend a plus or a minus sign to the argument to -LS, in which case the line spacing will be changed -by + or - the original value. For example, if the line spacing is -14 points, and you want 17 points, you can do -

    -

    -	.LS +3
    -
    - -then later reset it to 14 points with -

    -

    -	.LS -3
    -
    - -Experts: -
    -LS should not be confused with the groff primitive -ls. LS acts like vs. -mom does not provide a macro analogous to -ls. -

    - - - -


    -

    Automatic line spacing

    -
    -Macro: AUTOLEAD <amount of automatic leading> [FACTOR] -
    -*Does not require a unit of measure - -

    -Without the FACTOR argument, AUTOLEAD -calculates the linespace for you by adding its argument to the -current point size of type. All subsequent PT_SIZE -requests automatically update the linespacing by the autolead amount. -

    -Used in this way, AUTOLEAD does not require a unit -of measure; points is assumed. However, you may use an alternate -unit of measure by appending it to the argument. The argument may -be a decimal fraction (e.g. .5 or 2.75). -

    -As an example, if your current point size of type is 12, entering -

    -

    -	.AUTOLEAD 2
    -
    - -changes the linespace to 14 points, regardless any linespacing -already in effect. From here on, every change to the size of type -(with PT_SIZE, not -inline) -changes the linespace as well. If you decrease the type size to 9 -points, the leading decreases to 11 points. If you increase the type -size to 16 points, the leading increases to 18 points. -

    -Automatic updating of the linespacing continues until you enter a -"manual" line space value with LS. -

    -If you give AUTOLEAD the optional -FACTOR argument, AUTOLEAD -calculates the line space as a factor of the -numeric argument -you gave AUTOLEAD. For example, if your point -size is 12, -

    -

    -	.AUTOLEAD 1.125 FACTOR
    -
    -sets the leading at 13.5 points. If you change the point size -to 14, the leading automatically changes to 15.75 (14 x 1.125). -

    -NOTE: There's no need to prepend a plus sign (+) -to AUTOLEAD's argument, although you may do so if you -wish. -

    - - - -


    -

    Line length

    -
    -Macro: LL <line length> -
    -*Requires a unit of measure - -

    -LL (Line Length) takes one argument: the distance from the -left margin of the page to the maximum allowable point on the -right at which groff should place type. The line length, in -other words, as the macro suggests. -

    -LL requires a unit of measure. Therefore, to set the line -length to 39 picas, you would enter -

    -

    -	.LL 39P
    -
    - -As with other macros that require a unit of measure, the argument to -LL may be fractional. For example, -

    -

    -	.LL 4.5i
    -
    - -sets the line length to 4-1/2 inches. - -

    -Additionally, you may express a new line length relative to the -current line length by prepending a plus or minus sign to the -argument. Thus, if you wanted to increase the line length by 3 -points, you could -do -

    -

    -	.LL +3p
    -
    - -This is especially handy when you want to "hang" -punctuation outside the right margin since you can pass groff's -\w -escape as the argument to LL, like this: -

    -

    -	.LL +\w'.'u
    -
    - -The above example increases the current line length by the width of -a period. Notice that you must append the -unit of measure, -u, to the escape since .LL requires a unit of -measure. - -

    -NOTE: The right margin -macro (R_MARGIN) can also be used to set line -length. -

    -


    - - - - - - -

    Justifying, quadding, filling and breaking lines

    -
    - -The justification and quadding macros deal with how type aligns along -the left and right margins. In a nutshell, type either aligns at the -left margin, at the right margin, at both margins, or at neither margin -(centred). -

    -These macros also determine whether or not -input lines -are joined and -filled -during output. -

    -Additionally, macros that deal with how to break -output lines -are covered in this section, as is the -inline escape -for joining input lines. -

    -You may encounter some words here that are unfamiliar. Refer to -Typesetting terms -and -Groff terms -for an explanation. - -

    Justification, quad, fill, and break macro list

    -

    -

      -
    • Fill modes -
        -
      • JUSTIFY (set lines justified) -
      • QUAD (set filled lines flush left, right or centred) -
      -
    • Nofill modes -
        -
      • LEFT (set non-filled lines flush left) -
      • RIGHT (set non-filled lines flush right) -
      • CENTER (set non-filled lines centred) -
      -
    • Breaking lines -
        -
      • BR (manually break an output line) -
      • EL (break a line without advancing to the next output line) -
      • SPACE (break a line and add space before the next output line) -
      • SPREAD (break and force-justify an output line) -
      -
    • Joining input lines in - nofill mode -
        -
      • \c inline escape -
      -
    - - - -
    -

    Justify lines

    -
    -Macro: JUSTIFY -
    -Fill mode - -

    -JUSTIFY doesn't take an argument. -Input lines -after JUSTIFY are -filled and -justified -upon output. -

    -To break lines and prevent them from being filled and justified, -use the -BR macro. -

    - - - -


    -

    Quad lines left, right, or centre

    -
    -Macro: QUAD L | LEFT | R | RIGHT | C | CENTER | J | JUSTIFY -
    -Alias: FILL -
    -Fill mode - -

    -QUAD takes one argument: the direction in which lines -should be -quadded. -Input lines -after QUAD are -filled -upon output. -

    -If L or LEFT, type is set flush -along the left margin. -

    -If R or RIGHT, type is -set flush along the right margin. -

    -If C or CENTER type is set centred -on the current line length. -

    -J and JUSTIFY justify text, -and are included as a convenience only. Obviously, if text is -justified, it isn't quadded. QUAD J and -QUAD JUSTIFY have exactly the same effect as JUSTIFY. -

    -To break lines and prevent them from being filled, use the -BR macro. -

    - - - -


    -

    Set non-filled lines flush left, right, or centred

    -
    -Macro: LEFT -  Macro: RIGHT -  Macro: CENTER - (alias CENTRE) -
    -Nofill mode - -

    -LEFT, RIGHT and -CENTER let you enter text on a line for line basis -without having to use the -BR macro after each line. -Consider the following: -

    -

    -	.QUAD LEFT
    -	So runs my dream, but what am I?
    -	.BR
    -	An infant crying in the night
    -	.BR
    -	An infant crying for the light
    -	.BR
    -	And with no language but a cry.
    -	.BR
    -
    - -Because text after QUAD is -filled, you have to use the -BR -macro to prevent the lines from running together. Not only is this -annoying to type, it's awkward to read in a text editor. Much better -to do -

    -

    -	.LEFT
    -	So runs my dream, but what am I?
    -	An infant crying in the night
    -	An infant crying for the light
    -	And with no language but a cry.
    -
    - -IMPORTANT: Because LEFT, -RIGHT and CENTER are nofill -modes, groff does not always respect the current line length. -Input lines -that run long may exceed it, or get broken in undesirable ways. -Therefore, when using these three macros, you should preview your -work to ensure that all lines fit as expected. -

    - - - -


    -

    Manually break lines

    -
    -Macro: BR - -

    -When using JUSTIFY or QUAD, -BR tells mom about partial lines -that you want broken (as opposed to -filled). -Any partial -output line -that immediately precedes BR will be -quadded -in the direction of the current quad, or set flush left if text is -justified. - -

    -Most of the time, you won't need the BR macro. -In fill modes, mom tries to be sensible about -where breaks are needed. If the nature of a macro is such that under -most circumstances you'd expect a break, mom puts -it in herself. Equally, in macros where a break isn't normally -desirable, no break occurs. This means text files don't get cluttered -with annoying BR's. -

    -NOTE: Lines of text in -nofill mode -never require a BR. Furthermore, in nofill mode, -ALL macros cause a break. If a break is not desired, use the -\c -inline escape. - -

    -Experts: BR is an alias for br. -You can use either, or mix 'n' match with impunity. -

    - - - -


    -

    Manually break a line without advancing on the page

    -
    -Macro: EL -
    -*In nofill modes (LEFT, RIGHT, CENTER), you must terminate the -line input preceding EL with the \c inline -escape. See -NOTES, -below. -
    -*If you find remembering whether to put in the \c -bothersome, you may prefer to use the -inline escape -alternative to -.EL, -\*[B], -which works consistently regardless of the fill mode. -
    -*EL does not work after the PAD macro. -See -PAD -for the way around this
    . -

    -The mnemonic "EL" is borrowed from old Compugraphic typesetting -systems, where it stood for "End Line." Conceptually, -EL is equivalent to the notion of a carriage return -with no linefeed. - -

    -Note to groff jocks: EL is -unrelated to groff's .el. If you find the -similarity confusing, you may want to alias EL as -something else (but don't use EOL; it's already -taken.) - -

    -EL's function is simple: it breaks a line without -advancing on the page. -As -an example of where you might use it, -imagine that you're working from marked-up copy. The markup -indicates 24 points of space between two given lines, but the -prevailing line spacing is 12.5 points. You may find it more -convenient to break the first line with EL and -instruct mom to advance 24 points to the next line -instead of calculating the lead that needs to be added to 12.5 to -get 24. To demonstrate: -

    -

    -	.LEFT
    -	.LS 12.5
    -	A line of text.\c
    -	.EL
    -	.ALD 24p
    -	The next line of text.
    -
    - -may be more intuitive than -

    -

    -	.LEFT
    -	.LS 12.5
    -	A line of text.
    -	.ALD 11.5p
    -	The next line of text.
    -
    - -The first example has the further advantage that should you wish -to change the prevailing line space but keep the 24 points lead, -you don't have to recalculate the extra space. -

    -"ALD" in the above examples stands for "Advance -LeaD" (another mnemonic borrowed -from Compugraphic), which is covered in the section -Vertical movement. -

    -NOTES: -

    -In versions of mom prior to 1.1.9, EL did not -always work as advertised on the last -output line -of pages that contained a footer trap (e.g. one set with -B_MARGIN -or in documents formatted using the -document processing macros). -

    -EL has been re-written so that this should no longer be the -case. However, in order for it to work in the -nofill -modes -(LEFT, -RIGHT -or -CENTER), -you must always "join" .EL to the line -before it using the -\c -inline escape, -like this: -

    -

    -	.LEFT
    -	A line I don't want to advance\c
    -	.EL
    -
    - -Conversely, in -fill modes -(QUAD LEFT, -QUAD RIGHT, -QUAD CENTER -or -JUSTIFY), -the \c must not be used. -

    -If EL is used after most macros or groff -primitives -(see the exception, below), you don't have to worry about this, -regardless of the fill mode. Just type .EL -
    - - - -


    -

    Break lines and add space between

    -
    -Macro: SPACE <space to add between lines> -
    -Alias: SP - -

    -SPACE breaks a line, just like -BR, then adds space after the line. With no -argument, it adds an extra line space of a value equal to the -current -leading. -If you pass it a numeric argument without supplying a -unit of measure, -it advances that number of extra line spaces. For example: -

    -

    -	.SPACE
    -
    - -breaks the line then adds an extra linespace, whereas -

    -

    -	.SPACE 2
    -
    - -breaks the line and adds two extra linespaces. - -

    -If you supply a unit of measure, SPACE breaks the -line then advances one linespace (at the current -leading) -PLUS the specified amount of extra space given to -SPACE, -as in -

    -

    -	.SPACE 6p
    -
    - -which breaks the line and advances one full linespace plus six -points. - -

    -SUGGESTION: SPACE and -ALD -can be used interchangeably (.SPACE 6p and -.ALD 6p are equivalent). However, -ALD without an argument does nothing, whereas -SPACE without an argument adds an extra line -space. I recommend using SPACE when you -want an extra line space (or multiple thereof), and -ALD whenever you want some other value of space -after a line. - -

    -Experts: SPACE is an alias of sp. -You can use either, or mix 'n' match with impunity. -

    - - - -


    -

    Break and force justify (spread) lines

    -
    -Macro: SPREAD - -

    -Sometimes, you need to break a line of -justified -text and have it come out fully justified, not -quadded -left the way it would be with the BR macro. -An example of where you'd do this would be when you want to prevent a -word at the end of a line from being hyphenated (say, a proper name). -SPREAD is the macro that lets you break the line -and have it came out fully justified. - -

    -Experts: SPREAD is an alias for brp. -You can use either, or mix 'n' match with impunity. -

    - - - -


    -

    Join input lines

    -
    -Inline: \c - -

    -Sometimes, especially when in one of the -nofill modes, -a macro will cause a break where you don't want one. In order -to prevent this from happening (in other words, to join -input lines -together, forming one -output line), -use the groff -inline escape -\c at the end of each input line to -be joined to another, like this: -

    -

    -	.LEFT
    -	.FAMILY T
    -	.FT R
    -	Some lines of text to be \c
    -	.FAMILY H
    -	.FT B
    -	joined \c
    -	.FAMILY T
    -	.FT R
    -	together.
    -
    - -Upon output, the lines will be joined together to read -

    -

    -	Some lines of text to be joined together.
    -
    - -with the word "joined" in Helvetica bold. Note the -space before \c. Without it, the last three -words of the output line would read -

    -

    -	bejoinedtogether
    -
    - -Please also note that had the example been in one of the -fill modes, -there'd have been no need for the \c. -

    -Addendum: The example, above, is designed to -demonstrate the use of \c. However, an easier and -more intuitive way to accomplish the family/font change in the -example would be with the groff -inline escape, -\f. -

    -

    -	Some lines of text to be \f[HB]joined\*[PREV] together.
    -
    -

    -


    - - - - - - -

    Typographic refinements

    -
    - -The macros in this section help you tweak groff's behaviour, -ensuring that your documents look typographically professional. -
    - - -

    Typographic refinements macro list

    -
    -
      -
    • Word and sentence spacing -
        -
      • WS (word spacing) -
      • SS (sentence space) -
      -
    • Letter spacing (track kerning) - -
    • Hyphenation -
        -
      • HY (turn auto hyphenation on/off, or set specific hyphenation parameters) -
      • HY_SET (set all hyphenation parameters) -
      -
    • Automatic kerning and ligatures -
        -
      • KERN (turn automatic pairwise kerning on or off) -
      • LIGATURES (turn automatic generation of ligatures on or off) -
      -
    - - - -
    -

    Word spacing

    -
    -Macro: WS <+|-wordspace> | DEFAULT - -

    -WS (Word Space) increases or decreases the amount -of space between words. In -nofill modes, -or if -QUAD -is in effect, the space between words is fixed. Therefore, if you -change the word spacing with WS, the change applies -uniformly to the space between every word on every line. However, -when text is -justified, -the space between words varies from line to line (in order to justify -the text). Consequently, the change you make with WS -represents the minimum (and ideal) space groff will try to put between -words before deciding whether to hyphenate a final word or to stretch -the word spacing. - -

    -Word space is relative to type size. Knowing how it's calculated is -unimportant. What matters is having a sense of how the value passed -to WS affects the look of your type. Generally, -in/decreasing the word space by a value of 1 or 2 produces a difference -that in many cases is scarcely visible; in/decreasing by a value of 5 -or so produces a subtle but noticeable difference; and in/decreasing -by a value greater than 10 is always apparent. You should preview -your work to assess the effect of WS. - -

    -WS -takes as its argument a whole number preceded by a plus or minus sign. -Therefore, to decrease the word space slightly, you might enter -

    -

    -	.WS -4
    -
    - -To increase it by a noticeable amount, you might enter -

    -

    -	.WS +12
    -
    - -You can reset the word spacing to its previous value by switching -the plus or minus sign, like this: -

    -

    -	.WS +4
    -	A line of text
    -	.WS -4
    -
    - -The .WS -4 undoes the effect of .WS -+4. You can also reset WS to -its groff default by entering -

    -

    -	.WS DEFAULT
    -
    - -This can be particularly useful if you've been playing around -with plus and minus values, and can't remember by how much you -have to in/decrease the word space to get it back to normal. -

    - - - -


    -

    Sentence space

    -
    -Macro: SS <+sentence space> | 0 | DEFAULT - -

    -SS (Sentence Space) tells groff how to treat double -spaces it encounters between sentences in -input lines. -If you use SS, input sentences with two spaces -after them AND input sentences that fall at the end of input lines -all receive a normal word space plus an additional amount of space -whose size is determined by the + value passed as an argument to -SS. Thus, -

    -

    -	.SS +2
    -
    - -means that input sentences with two spaces after them receive a normal -word space PLUS the +2 value passed to SS. -

    -Like -WS, increasing the sentence space by a value of -1 or 2 produces a difference that in many cases is scarcely visible; -increasing by a value of 5 or so produces a subtle but noticeable -difference (i.e. the space between double-spaced input sentences will -be slightly but visibly greater than the space between words); and -increasing by a value greater than 10 is always apparent. You should -preview your work to assess the effect of SS. -

    -There's an additional argument you can pass SS: -the number zero (without the + sign). It's the argument you'll -use most often. Typeset copy should never have two spaces between -sentences, and the "zero" argument tells groff to give the extra -spaces no space at all (effectively removing them). Therefore, -if you double-space your sentences (as you should when writing in a -text editor), get in the habit of putting -

    -

    -	.SS 0
    -
    - -at the top of your files. - -

    -If you do use SS for something other than ensuring -that you don't get unwanted sentence spaces in output copy, you -can set or reset the sentence space to the groff default (the same -width as a word space, i.e. double-spaced input sentences will appear -double-spaced on output as well) with -

    -

    -	.SS DEFAULT
    -
    - -If you're using the -document processing macros -and your -PRINTSTYLE -is TYPEWRITE, .SS DEFAULT is the default, -because you do want double spaces between sentences in copy -that imitates the look of a typewritten document. -

    -IMPORTANT: SS with an argument other than -"0" should only be used if you're of the old (and wise) -school of typists that puts two spaces between sentences. If you -ignore this advice and use SS when you habitually -put only one space between sentences, you risk producing output where -the space between sentences is not equal. -

    - - - -


    -

    Automatic hyphenation control

    -
    -Macro: HY toggle -
    -Macro: HY LINES <max. number of consecutive hyphenated lines> -
    -Macro: HY MARGIN <size of hyphenation margin> -
    -Macro: HY SPACE <extra interword spacing to prevent hyphenation> -
    -Macro: HY DEFAULT -
    -Aliases: HYPHENATE, HYPHENATION - -

    -HY, as you can see, can be invoked with a number of -arguments. In all cases, the aliases HYPHENATE -or HYPHENATION can be used in place of -HY. To aid in understanding the various arguments -you can pass to HY, I've broken them down into -separate sections. - -

    1. HY

    -HY by itself (i.e. with no argument) simply turns -automatic hyphenation on. Any argument other than LINES, -MARGIN, SPACE or DEFAULT, turns automatic -hyphenation off. For example, as explained in -How to read macro arguments, -you could turn HY off by entering -

    -

    -	.HY OFF
    -	   or
    -	.HY X
    -	   or
    -	.HY END
    -
    - -HY observes the following default hyphenation rules: -
    -
      -
    1. Last lines (i.e. ones that will spring a trap--typically - the last line on a page) will not be hyphenated. -
    2. The first and last two characters of a word are never - split off. -
    - -

    2. HY LINES

    -HY LINES sets the maximum number of consecutive -hyphenated lines that will appear in output copy. 2 is a very -good choice, and you'd set it with -

    -

    -	.HY LINES 2
    -
    - -By default, when you turn automatic hyphenation on, there is no -limit to the number of consecutive hyphenated lines. - -

    -NOTE: -Discretionary hyphens -count when groff is figuring out how many lines to hyphenate; -explicit hyphens do not. - -

    3. HY MARGIN

    -HY MARGIN sets the amount of room allowed at -the end of a line before hyphenation is tripped (e.g. if there's -only 6 points left at the end of a line, groff won't try to hyphenate -the next word). HY MARGIN only applies if you're -using -QUAD, and is really only useful if you're -using QUAD LEFT. - -

    -As an example, if you don't want groff to hyphenate words when there's -only 18 points of space left at the end of a left-quadded line, -you'd enter -

    -

    -	.HY MARGIN 18p
    -
    - -NOTE: The numeric argument after HY -MARGIN requires a -unit of measure. - -

    4. HY SPACE

    -HY SPACE sets an amount of extra interword -space that groff will try to put between words on a -line in order to PREVENT hyphenation. HY SPACE -applies only to -justified lines. Generally speaking, -you'll want this value to be quite small, since too big a value -will result in lines with gaping holes between the words. A reasonable -value might be half a point, or one point, which you'd set with -

    -

    -	.HY SPACE .5p
    -	    or
    -	.HY SPACE 1p
    -
    - -NOTE: The numeric argument after HY -SPACE requires a -unit of measure. - -

    5. HY DEFAULT

    -HY DEFAULT resets automatic hyphenation to its -default behaviour, cancelling any changes made with LINES, -MARGIN, and/or SPACE. - -

    A note on hyphenation in general

    -Hyphenation is a necessary evil. If it can be avoided, it should be. -If it can't be, it should occur infrequently. That's the reason for -the number of parameters you can set with HY. - -

    -Furthermore, hyphenation in -rag -copy requires a great deal of attention. At best, it should be -avoided completely by individually adjusting the number of words -on consecutive lines to achieve a pleasing, natural-looking rag. -Since such adjustments are often too fussy for document -processing, I recommend playing around with HY MARGIN -a bit if your copy looks hyphen-heavy. -

    - - - -


    -

    Set hyphenation parameters all at once

    -
    -Macro: HY_SET <lines> [ <margin> [ <space> ] ] -
    -Alias: HYSET - -

    -HY_SET lets you set the parameters for hyphenation -with a single macro. <lines>, <margin> and <space> -correspond to the numeric values required by -LINES, MARGIN and -SPACE as described -above. - -

    -To set just the maximum number of consecutive hyphenated lines, -you'd enter -

    -

    -	.HY_SET 2
    -
    - -If you wanted the same number of maximum consecutive hyphenated lines -and a hyphenation margin for use with -rag -copy, -

    -

    -	.HY_SET 2 36p
    -
    - -would set the hyphenation margin to 36 points. - -

    -If you wanted the same number of maximum consecutive hyphenated -lines and a hyphenation space of 2 points for use with -justified -copy, -

    -

    -	.HYSET 2 0 2p
    -
    - -is how you'd do it. -

    - - - -


    -

    Reduce whitespace

    -
    -Macro: RW <amount of whitespace reduction between letters> -
    - -

    -RW (Reduce Whitespace) and its corresponding macro, -EW (Expand Whitespace), allow you to tighten -(or loosen) -output lines -by uniformly reducing or expanding the space between characters. -This is particularly useful when you want to squeeze or stretch -lines on a narrow measure. - -

    -The value passed to RW may be a whole number or a -decimal fraction. Since a value of 1 produces a noticeable reduction -in the space between letters at text sizes, you'll most likely use -small decimal values when tightening lines. For example, -

    -

    -	.RW .1
    -	  or
    -	.RW .2
    -
    - -may be just enough to squeeze an extra character or two on a -line without the change in letter spacing being obvious. I -highly recommend previewing your work to assess the effect of -RW. - -

    -

    -IMPORTANT: In versions prior to 1.1.9-a, -RW affected all -fonts -in the -family -current at the time it was invoked. As of 1.1.9-a, this behaviour -has been changed. RW affects only the font -current at the time it's invoked, and remains in effect for that -font every time the font is called, hence must be reset to zero to -cancel its effect (.RW 0) on that font. -

    -NOTE: By default, RW does not deposit a -break -(BR) when it's invoked if you're in one of the -fill -modes (i.e. -QUAD -L, R, C, J or -JUSTIFY). -If you want -RW to break at the ends of the previous -input lines -while you're in a fill mode, tell mom -that's what you want by invoking the -BR_AT_LINE_KERN -toggle macro. -

    - - - -


    -

    Expand whitespace

    -
    -Macro: EW <amount of whitespace expansion between letters> -
    - -

    -EW (Expand Whitespace) expands the amount of -whitespace between letters, effectively "loosening" lines -of type. - -

    -The value passed to EW may be a whole number or a -decimal fraction. Since a value of 1 produces a noticeable -expansion in the space between letters at text sizes, you'll most likely use -small decimal values when loosening lines. For example, -

    -

    -	.EW .1
    -	  or
    -	.EW .2
    -
    - -may be just enough to open up a line without the change in letter -spacing being obvious. I highly recommend previewing your work to -assess the effect of EW. -

    -IMPORTANT: In versions prior to 1.1.9-a, -EW affected all -fonts -in the -family -current at the time it was invoked. As of 1.1.9-a, this behaviour -has been changed. EW affects only the font -current at the time it's invoked, and remains in effect for that -font every time the font is called, hence must be reset to zero to -cancel its effect (.EW 0) on that font. -

    -NOTE: By default, EW does not deposit a -break -(BR) when it's invoked if you're in one of the -fill -modes (i.e. -QUAD -L, R, C, J or -JUSTIFY). -If you want -EW to break at the ends of the previous -input lines -while you're in a fill mode, tell mom -that's what you want by invoking the -BR_AT_LINE_KERN -toggle macro. -

    - - - -


    -

    Break before line kerning

    -
    -Macro: BR_AT_LINE_KERN toggle -
    - -

    -By default, in -fill -modes (i.e. -QUAD -L, R, C, J or -JUSTIFY) -mom does not break -input lines -when you invoke RW or EW. -If you'd like her to break input lines prior to RW -or EW, invoke BR_AT_INPUT_LINE -without any argument. To disable the breaks, invoke -BR_AT_INPUT_LINE with any argument (OFF, -QUIT, Q, X...), like this -

    -

    -	.BR_AT_LINE_KERN OFF
    -	    or
    -	.BR_AT_LINE_KERN X
    -
    - -In QUAD L, R or C, -mom simply breaks the line. In QUAD J -(or JUSTIFY, which is the same thing), she breaks -and -force justifies -the line prior to EW or RW. -
    - - - -
    -

    Automatic kerning

    -
    -Macro: KERN toggle -
    - -

    -By itself (i.e. with no argument), KERN turns -automatic pairwise -kerning -on. With any argument (e.g. OFF, Q, X), pairwise kerning is turned -off. -

    -Kerning of individual character pairs can be controlled with the -inline escapes -\*[BU <n>] and \*[FU <n>]. See -Inline Escapes, kerning. -

    - - - -


    -

    Automatic ligature generation

    -
    -Macro: LIGATURES toggle -
    -Alias: LIG - -

    -Provided your current font has -ligatures, -LIGATURES, by itself, turns on automatic -generation of ligatures. When automatic ligature generation is -on, simply typing the letters of a ligature combination will -produce the correct ligature upon output. For example, if you -type the word "finally", the fi combination will be -output as an fi ligature. Generally speaking, ligatures are A -Good Thing, hence mom has them on by default. -

    -LIGATURES with any argument turns automatic -ligature generation off. -

    -NOTE: Not all fonts support ligatures. -

    -


    - - - - - - -

    Type modifications: pseudo-italic, -bold, -condensed, -extended

    -
    - -It sometimes happens that a PostScript -family -doesn't contain all the fonts you need. You might, for example, -be missing an italic font, or a bold font. Or you might not be able -to get your hands on a condensed family. That's where these macros -and inline escapes come in. With them, you can fake the fonts -you're missing. A word of caution, though: "faked" -fonts are just that--faked. You should only use them as a -last resort, and then only sparingly. A word or two or a line -or two in a faked font will pass unnoticed; large patches of -type in a faked font look typographically cheap. -
    - - -

    Type modifications macro list

    -
    - -
      -
    • Pseudo italic -
        -
      • SETSLANT -- degree of pseudo-italicizing -
      • \*[SLANT] -- inline escape for pseudo-italicizing type -
      -
    • Pseudo bold - -
    • Pseudo condensed -
        -
      • CONDENSE -- percentage for pseudo-condensed type -
      • \*[COND] -- inline escape for pseudo-condensed type -
      -
    • Pseudo extended -
        -
      • EXTEND -- percentage for pseudo-extended type -
      • \*[EXT] -- inline escape for pseudo-extending -
      -
    - - - -
    -

    Set degree of slant for pseudo-italicizing

    -
    -Macro: SETSLANT <degrees to slant type> | RESET - -

    -Pseudo-italicizing of type is accomplished by slanting a roman font -a certain number of degrees to the right. SETSLANT -lets you fix the number of degrees. Mom's -default is 15, which produces an acceptable approximation of an -italic font. If you want another value -- say, 13 degrees -- -you'd set it by entering -

    -

    -	.SETSLANT 13
    -
    - -If you change the degree of slant and later want to set it back -to the mom default, do -

    -

    -	.SETSLANT RESET
    -
    - -NOTE: By itself, SETSLANT -will not start pseudo-italicizing type; it merely tells -mom what degree of slant you want. To start -pseudo-italicizing, use the -inline escape -\*[SLANT]. -

    - - - -


    -

    Pseudo italic on/off

    -
    -Inline: \*[SLANT] -- turn pseudo-italic on -
    -Inline: \*[SLANTX] -- turn pseudo-italic off - -

    -\*[SLANT] begins pseudo-italicizing type. -\*[SLANTX] turns the feature off. Both are -inline escapes, -therefore they should not appear as separate lines, but rather -be embedded in text lines, like this: -

    -

    -	Not \*[SLANT]everything\*[SLANTX] is as it seems.
    -
    - -Alternatively, if you wanted the whole line pseudo-italicized, -you'd do -

    -

    -	\*[SLANT]Not everything is as it seems.\*[SLANTX]
    -
    - -Once \*[SLANT] is invoked, it remains in effect -until turned off. - -

    -NOTE: If you're using the -document processing macros -with -PRINTSTYLE TYPEWRITE, -mom underlines pseudo-italics by default. To -change this behaviour, use the special macro -SLANT_MEANS_SLANT. -

    - - - -


    -

    Set amount of emboldening

    -
    -Macro: SETBOLDER <amount of emboldening, in machine units> | RESET - -

    -Emboldening of type is accomplished by printing characters -twice; the second printing is slightly offset from the first, -effectively "thickening" the character. -SETBOLDER lets you set the number of -machine units -for the offset. Mom's default is 700 units, which -produces an acceptable approximation of a bold font. If you want -another value -- say, 500 units -- you'd set it by entering -

    -

    -	.SETBOLDER 500
    -
    - -If you change the emboldening offset and later want to set it back -to the mom default, do -

    -

    -	.SETBOLDER RESET
    -
    - -NOTE: By itself, SETBOLDER -will not start emboldening type; it merely tells -mom what you want the emboldening offset to be. -To start emboldening, use the -inline escape -\*[BOLDER]. -

    - - - -


    -

    Emboldening on/off

    -
    -Inline: \*[BOLDER] -- turn emboldening on -
    -Inline: \*[BOLDERX] -- turn emboldening off - -

    -\*[BOLDER] begins emboldening type. -\*[BOLDERX] turns the feature off. Both are -inline escapes, -therefore they should not appear as separate lines, but rather -be embedded in text lines, like this: -

    -

    -	Not \*[BOLDER]everything\*[BOLDERX] is as it seems.
    -
    - -Alternatively, if you wanted the whole line emboldened, -you'd do -

    -

    -	\*[BOLDER]Not everything is as it seems.\*[BOLDERX]
    -
    - -Once \*[BOLDER] is invoked, it remains in effect -until turned off. - -

    -NOTE: If you're using the -document processing macros -with -PRINTSTYLE TYPEWRITE, -mom ignores \*[BOLDER] -requests. -

    - - - -


    -

    Set percentage for pseudo-condensed type

    -
    -Macro: CONDENSE <pseudo-condense percentage> - -

    -Pseudo-condensing of type is accomplished by reducing the width of -characters at a given point size without reducing their height, -effectively narrowing them so they look like condensed type. -CONDENSE tells mom what -percentage of the normal character width you want the characters -to be condensed. -

    -Mom has no default value for -CONDENSE, therefore you must set it before using the -inline escape -\*[COND]. -80 percent of the normal character width is a good value, and -you'd set it like this: -

    -

    -	.CONDENSE 80
    -
    - -NOTE: By itself, CONDENSE -will not start pseudo-condensing type; it merely tells -mom what percentage of the normal character -width you want characters to be condensed. -To start pseudo-condensing, use the -inline escape -\*[COND]. -

    -Additional note: Make sure that pseudo-condensing -is off (with -\*[CONDX]) -before before making any changes to the pseudo-condense percentage -with CONDENSE. -

    - - - -


    -

    Pseudo-condensing on/off

    -
    -Inline: \*[COND] -- turn pseudo-condensing on -
    -Inline: \*[CONDX] -- turn pseudo-condensing off - -

    -\*[COND] begins pseudo-condensing type. -\*[CONDX] turns the feature off. Both are -inline escapes, -therefore they should not appear as separate lines, but rather -be embedded in text lines, like this: -

    -

    -	\*[COND]Not everything is as it seems.\*[CONDX]
    -
    - -\*[COND] remains in effect until you turn it -off with \*[CONDX]. - -

    -IMPORTANT: You MUST turn \*[COND] -off before making any changes to the point size of your type, either -via the -PT_SIZE -macro or with the \s inline escape. If you wish -the new point size to be pseudo-condensed, simply reinvoke -\*[COND] afterwards. Equally, -\*[COND] must be turned off before changing the -condense percentage with CONDENSE. - -

    -NOTE: If you're using the -document processing macros -with -PRINTSTYLE TYPEWRITE, -mom ignores \*[COND] -requests. -

    - - - -


    -

    Set percentage for pseudo-extended type

    -
    -Macro: EXTEND <pseudo-extend percentage> - -

    -Pseudo-extending of type is accomplished by increasing the width of -characters at a given point size without increasing their height, -effectively widening them so they look like extended type. -EXTEND tells mom what -percentage of the normal character width you want the characters -to be extended. -

    -Mom has no default value for -EXTEND, therefore you must set it before using the -inline escape -\*[EXT]. -120% of the normal character width is a good value, and -you'd set it like this: -

    -

    -	.EXTEND 120
    -
    - -NOTE: By itself, EXTEND -will not start pseudo-extending type; it merely tells -mom what percentage of the normal character -width you want characters to be extended. -To start pseudo-extending, use the -inline escape -\*[EXT]. - -

    -Additional note: Make sure that -pseudo-extending is off (with -\*[EXTX]) -before before making any changes to the pseudo-extend percentage -with EXTEND. -

    - - - -


    -

    Pseudo-extending on/off

    -
    -Inline: \*[EXT] -- turn pseudo-extending on -
    -Inline: \*[EXTX] -- turn pseudo-extending off - -

    -\*[EXT] begins pseudo-extending type. -\*[EXTX] turns the feature off. Both are -inline escapes, -therefore they should not appear as separate lines, but rather -be embedded in text lines, like this: -

    -

    -	\*[EXT]Not everything is as it seems.\*[EXTX]
    -
    - -\*[EXT] remains in effect until you turn it -off with \*[EXTX]. - -

    -IMPORTANT: You MUST turn \*[EXT] -off before making any changes to the point size of your type, either -via the -PT_SIZE -macro or with the \s inline escape. If you wish -the new point size to be pseudo-extended, simply reinvoke -\*[EXT] afterwards. Equally, -\*[EXT] must be turned off before changing the -extend percentage with EXTEND. - -

    -NOTE: If you're using the -document processing macros -with -PRINTSTYLE TYPEWRITE, -mom ignores \*[EXT] -requests. -

    -


    - - - - - - -

    Vertical movement

    -
    - -The two macros in this section allow you to move down or up on the page -relative to the current -baseline. - - -

    Vertical movement macro list

    -
    -
      -
    • ALD -- Advance Lead -
    • RLD -- Reverse Lead -
    - - - -
    -

    Advance Lead (move downward)

    -
    -Macro: ALD <distance to move downward> -
    -*Requires a unit of measure - -

    -ALD takes one argument: the distance to move downward -on the page relative to the current vertical position. -

    -Used by itself, or preceded by -BR, -ALD will advance by one line space plus the -distance you specify. Preceded by -EL, -it will advance by exactly the distance you specify. -

    -ALD requires a unit of measure. Decimal fractions -are allowed, and values may be combined. Therefore, to move down -on the page by 1/4 of an inch, you could enter either -

    -

    -	.ALD .25i
    -	    or
    -	.ALD 1P+6p
    -
    - -As the mnemonic (Advance -LeaD) suggests, you'll most often -use ALD with -points -of lead. - -

    -NOTE: if you want to use ALD -at the top of a page (i.e. to advance to the starting position -of type on a page), combine the value you want with -1v (minus -one line space), like this: -

    -

    -	.ALD 1i-1v
    -
    - -At the top of a page, this will advance one inch from the -top edge of the paper. Without the -1v, the same command would -advance one inch from the top of the page plus the distance of -one line space. -

    -Important: Do NOT use ALD in this -way if you have set a top margin with -T_MARGIN -or -PAGE. -

    - - - -


    -

    Reverse Lead (move upward)

    -
    -Macro: RLD <distance to move upward> -
    -*Requires a unit of measure - -

    -RLD takes one argument: the distance to move -upward on the page relative to the current vertical position. -

    -Used by itself, or preceded by -BR, -RLD will advance by one line space, then -reverse by the distance you specify. Preceded by -EL, -it will reverse by exactly the distance you specify. -

    -RLD requires a unit of measure. Decimal fractions -are allowed, and values may be combined. Therefore, to move up -on the page by 1/4 of an inch, you could enter either -

    -

    -	.RLD .25i
    -	    or
    -	.RLD 1P+6p
    -
    - -As the mnemonic (Rdvance -LeaD) suggests, you'll most often -use RLD with -points -of lead. -

    -


    - - - - - - -

    Tabs

    -
    - -Mom provides two different kinds of tab setup: -typesetting tabs and string tabs. Neither one has anything to -do with the tab key on your keyboard, and both are utterly -divorced from groff's notion of tabs. I recommend reading this -section carefully in order to understand how -mom handles tabs. -

    -NOTE: see the section -Using typesetting macros during document processing -for re-assuring information on the use of tabs during -document processing. -

    - -

    Typesetting tabs

    -

    -Typesetting tabs are defined by both an indent from the left margin and -a line length. This is quite different from typewriter-style tab stops -(the groff norm) that only define the left indent. In conjunction -with the -multi-column macros, -typesetting tabs significantly facilitate -tabular and columnar work. -

    -Typesetting tabs are created with the -TAB_SET -macro. TAB_SET identifies the tab (by number), -establishes its left indent and line length, and optionally sets -a quad direction and fill mode. After tabs have been created with -TAB_SET, they can be called at any time with the -TAB -macro. -

    - -

    Quickie tutorial on typesetting tabs

    -

    -Say you want to set up three tabs to produce an employee evaluation -that looks something like this: -

    - -

    -	CRITERION       EVALUATION     COMMENTS
    -
    -	Service           Good         Many clients specifically request
    -	                               support from Joe by name.
    -
    -	Punctuality    Satisfactory    Tends to arrive after 8:00am, but
    -	                               often works through lunch hour.
    -
    -	Team spirit     Needs work     Persistently gives higher priority
    -	                               to helping clients than respecting
    -	                               organizational hierarchy.
    -
    - -You want the first tab ("CRITERION") -
    -
      -
    • to begin at the left margin of the page (i.e. no indent) -
    • to have a line length of 5 picas -
    • to be set flush left -
    -
    -Tabs must be numbered, and each has to be set up with a separate -TAB_SET -line. Therefore, to set up tab 1, you enter -

    -

    -   .TAB_SET  1  0  5P  L
    -             |  |  |   |
    -      tab #__|  |  |   |__direction
    -                |  |
    -        indent__|  |__length
    -
    - -You want the second tab ("EVALUATION") -
    -
      -
    • to begin 8 picas from the left margin -
    • to have a length of 9 picas -
    • to be set centred. -
    -
    -You set it up like this: -

    -

    -   .TAB_SET  2  8P  9P  C
    -             |  |   |   |
    -      tab #__|  |   |   |__direction
    -                |   |
    -        indent__|   |__length
    -
    - -You want the third tab ("COMMENTS") -
    -
      -
    • to begin 19 picas from the left margin -
    • to have a length of 17 picas -
    • to be set flush left, filled -
    -
    -The setup looks like this: -

    -

    -   .TAB_SET  3  19P  17P  L  QUAD
    -             |   |    |   |    |
    -             |   |    |   |    |__fill output lines
    -             |   |    |   |
    -      tab #__|   |    |   |__direction
    -                 |    |
    -         indent__|    |__length
    -
    - -Once the tabs are set up, you can call them in one of two ways: -
    -
      -
    • TAB (with the tab - number as an argument) breaks the current line, - advances one linespace, and calls the tab. -
    • TN (Tab Next) keeps - you on the current line and moves over to the next - tab in sequence (i.e. from 1 to 2, 2 to 3, etc.). -
    -
    -To exit from tabs and restore your original left margin, line length, -quad direction and fill mode, use -TQ -(Tab Quit). -

    -Here's how the input for our sample employee evaluation looks -(with some introductory parameters): -

    -

    -	.PAGE 8.5i 11i 1i 1i 1i
    -	.FAMILY  T
    -	.FT      R
    -	.PT_SIZE 14
    -	.LS      16
    -	.QUAD    LEFT
    -	.KERN
    -	.HY OFF
    -	.SS 0
    -	.TAB_SET 1 0   5P  L
    -	.TAB_SET 2 8P  9P  C
    -	.TAB_SET 3 19P 17P L QUAD
    -	.TAB 1
    -	CRITERION
    -	.TN
    -	EVALUATION
    -	.TN
    -	COMMENTS
    -	.SP
    -	.TAB 1
    -	Service
    -	.TN
    -	Good
    -	.TN
    -	Many clients specifically request support from Joe by name.
    -	.SP
    -	.TAB 1
    -	Punctuality
    -	.TN
    -	Satisfactory
    -	.TN
    -	Tends to arrive after 8:00am, but often works through lunch hour.
    -	.SP
    -	.TAB 1
    -	Team spirit
    -	.TN
    -	Needs work
    -	.TN
    -	Persistently gives higher priority to helping clients
    -	than respecting organizational hierarchy.
    -	.TQ
    -
    - -Try setting this up and previewing it with -

    -

    -	groff -mom -X <filename>
    -
    - -Notice how .TN simply moves over to the next tab, -while the combination .SP/.TAB 1 breaks the -line, advances by one extra linespace, and calls the first tab. -

    -Notice, too, how the QUAD argument passed to -tab 3 means you don't have to worry about the length of -input lines; -mom -fills -the tab and sets the type flush left. -

    -

    String tabs (autotabs)

    -

    -String tabs let you mark off tab positions with -inline escapes -embedded in -input lines. -Left indents and line lengths are calculated from the beginning and -end positions of the marks. This is especially useful when tab -indents and lengths need to be determined from the text that goes in -each tab. -

    -Setting up string tabs is a two-step procedure. First, you enter an -input line in which you mark off where you want tabs to begin and end. -(This is often best done in conjunction with the -SILENT -macro.) -

    -Next, you invoke the -ST -macro for every string tab you defined, and optionally pass quad and -fill information to it. That done, string tabs are called with -the -TAB -macro, just like typesetting tabs. -

    -In combination with the -PAD -macro and the groff inline escape -\h -(move horizontally across the page) or mom's -\*[FWD <distance>] -(move forward) inline, string tabs provide -tremendous flexibility in setting up complex tab structures. -

    -

    Quickie tutorial on string tabs

    -

    -Say you want to set up tabs for the -employee evaluation form -used as an example in the -typesetting tabs tutorial. -This time, though, you want to play around with the point size of -type, so you can't know exactly how long the tabs will be or where -they should start. All you know is -
    -

      -
    • CRITERION is the longest line in tab 1 -
    • EVALUATION is the longest line in tab 2 -
    • tab 3 should extend to the current right margin -
    • you want a 1 pica gutter between each tab -
    -
    -This is an ideal job for string tabs. -

    -The first thing you need for string tabs is an -input line -with tab positions marked on it. Tabs are marked with the -inline escapes -\*[ST<n>] -and -\*[ST<n>X], -where <n> -is the number you want the tab to have. (In this example, we -enclose the input line with the -SILENT -macro so the line doesn't print. We also use the -PAD -macro to permit defining tab 3 as simply "the amount of -space remaining on the input line.") -

    -The setup looks like this: -

    -

    -	.SILENT
    -	.PAD "\*[ST1]CRITERION\*[ST1X]\*[FWD 12p]\*[ST2]EVALUATION\*[ST2X]\*[FWD 12p]\*[ST3]#\*[ST3X]"
    -	.SILENT OFF
    -
    - -The long line after .PAD looks scary, but it isn't. -Here's what it means when broken down into its component parts: -
    -
      -
    • The longest line in tab 1 is "CRITERION", so we - enclose CRITERION with begin/end markers for string tab 1: -

      - \*[ST1]CRITERION\*[ST1X] -
      -

    • We want a 1 pica (12 points) gutter between tab 1 and 2, - so we insert 12 points of space with \*[FWD 12p] - (ForWarD 12 points): -

      - \*[FWD 12p] -
      -

    • The longest line in tab 2 is "EVALUATION", so - we enclose EVALUATION with begin/end markers for string - tab 2: -

      - \*[ST2]EVALUATION\*[ST2X] -
      -

    • We want 1 pica (12 points) between tab 2 and 3, so we - insert 12 points of space with another \*[FWD 12p]: -

      - \*[FWD 12p] -
      -

    • We want tab 3 to be as long as whatever space remains on - the current line length, so we enclose the - pad marker - (#) with begin/end markers for string tab 3: -

      - \*[ST3]#\*[ST3X] -
      -

    -
    -The tabs are now defined, but they require -quad direction -and -fill -information. For each string tab defined above, enter a -separate -ST -line, like this: -

    -

    -	.ST  1  L
    -	.ST  2  L
    -	.ST  3  L  QUAD
    -	     |  |   |
    -	     |  |   |__fill output lines
    -	     |  |
    -	tab__|  |__direction
    -	number
    -
    - -From here on in, you call the tabs with -TAB -and -TN -just like typesetting tabs (see -typesetting tabs tutorial). -

    -Here's the complete setup and entry for the sample employee -evaluation form utilizing string tabs. -

    -

    -	.PAGE 8.5i 11i 1i 1i 1i
    -	.FAMILY  T
    -	.FT      R
    -	.PT_SIZE 14
    -	.LS      16
    -	.QUAD    LEFT
    -	.KERN
    -	.HY OFF
    -	.SS 0
    -	.SILENT
    -	.PAD "\*[ST1]CRITERION\*[ST1X]\*[FWD 12p]\*[ST2]EVALUATION\*[ST2X]\*[FWD 12p]\*[ST3]#\*[ST3X]"
    -	.SILENT OFF
    -	.ST  1  L
    -	.ST  2  L
    -	.ST  3  L  QUAD
    -	.TAB 1
    -	CRITERION
    -	.TN
    -	EVALUATION
    -	.TN
    -	COMMENTS
    -	.SP
    -	.TAB 1
    -	Service
    -	.TN
    -	Good
    -	.TN
    -	Many clients specifically request support from Joe by name.
    -	.SP
    -	.TAB 1
    -	Punctuality
    -	.TN
    -	Satisfactory
    -	.TN
    -	Tends to arrive after 8:00am, but often works through lunch hour.
    -	.SP
    -	.TAB 1
    -	Team spirit
    -	.TN
    -	Needs work
    -	.TN
    -	Persistently gives higher priority to helping clients
    -	than respecting organizational hierarchy.
    -	.TQ
    -
    - -Try setting this up and previewing it with -

    -

    -	groff -mom -X <filename>
    -
    - -Now, change the point size of the above sample to 12 and preview -it again. You'll see that the tab structure remains identical (tab -1=CRITERION, tab 2=EVALUATION, tab 3=space remaining, and the gutter -between tabs is still 1 pica), while the position and length -of the tabs have altered because of the new point size. -

    -Now try increasing the gutters to 2 picas (\*[FWD 24p] or -\*[FWD 2P] instead of \*[FWD 12p]). Preview the -file again, and notice how the tab structure remains the same, but -the gutters are wider. -

    - - -

    Tabs macro list

    - - -
      -
    • TAB_SET (create typesetting tabs) -
    • \*[ST]...\*[STX] (inline escapes for marking String Tabs) -
    • ST (set String Tabs) -
    • TAB (call tabs) -
    • TN (Tab Next; call next tab in a sequence) -
    • TQ (Tab Quit) -
    - - - -
    -

    Set up typesetting tabs

    -
    -Macro: TAB_SET <tab number> <indent> <length> L | R | C | J [ QUAD ] -
    -*<indent> and <length> require a unit of measure - -

    -TAB_SET creates typesetting tabs that later can be -called with -TAB. -Typesetting tabs are numbered, and defined by an indent, a length, -and a "direction", hence TAB_SET has -four required arguments: -
    -

      -
    • a tab number -
    • an indent (measured from the left margin of the page, - or, if you're already in a tab, from the left margin of the tab) -
    • a length -
    • a direction -
    -
    -To set up a centred tab 6 picas long and 9 points from the left -margin, you'd enter -

    -

    -	.TAB_SET 1 9p 6P C
    -
    - -The tab number in the above ("1") is simply an -identifier. It could have been 4, or 17, or 296. There's no -need to set up tabs in numerical sequence. -

    -By default, tabs are in -nofill -mode, meaning you can enter text in tabs on a line-for-line basis -without having to use the -BR -macro. If you want a tab to be -filled, -pass the optional argument QUAD, which will -make the tab behave as if you'd entered .QUAD L | R | -C. -

    -For -justified -tabs, simply pass the argument J (without the -QUAD argument), like this: -

    -

    -	.TAB 1 9p 6P J
    -
    - -Once tabs are set, they can be called at any time with the -TAB # -macro, where "#" is the number of the desired tab. -

    -You can set up any number of typesetting tabs. However, be -aware that -string tabs -are also called with TAB #, so be careful that you -don't set up a typesetting tab numbered, say, 4, when you already -have a string tab numbered 4. Every tab, typesetting or string, -must have a unique numeric identifier. -

    -NOTE: If you use TAB_SET while -you're currently inside a tab, the indent argument is the distance from -the tab's left margin, not the left margin of the page. Therefore, -you should exit tabs (with -TQ) -before creating new tabs (unless, of course, you want to set -up a tab structure within the confines of an existing tab). -

    -IMPORTANT: Turn all indents off (see -Indents) -before setting up tabs with TAB_SET, or -mom may get confused. -

    - - - -


    -

    Mark positions of string tabs

    -
    -Inlines: \*[ST<number>]...\*[ST<number>X] -
    -*Quad -direction must be LEFT or JUSTIFY (see -QUAD -and -JUSTIFY) -or the -no-fill mode -set to -LEFT. -Please see -IMPORTANT, -below. -

    -String tabs need to be marked off with -inline escapes -before being set up with the -ST -macro. Any input line may contain string tab markers. -<number>, above, means the numeric identifier of -the tab. The following shows a sample input line with string -tab markers. -

    -

    -	\*[ST1]Now is the time\*[ST1X] for all \*[ST2]good men\*ST2X] to come to the aid of the party.
    -
    - -String tab 1 begins at the start of the line and ends after the word -"time". String tab 2 starts at "good" and ends -after "men". Inline escapes (e.g. font or point size -changes, or horizontal movements, including -padding) -are taken into account when mom determines the -position and length of string tabs. -

    -Up to nineteen string tabs may be marked (not necessarily all on -the same line, of course), and they must be numbered between 1 -and 19. -

    -Once string tabs have been marked in input lines, they have to -be "set" with -ST, -after which they may be called, by number, with -TAB. -

    -NOTE: Lines with string tabs marked off in them -are normal input lines, i.e. they get printed, just like any -input line. If you want to set up string tabs without the line -printing, use the -SILENT -macro. -

    -IMPORTANT: -Owing to the way groff processes -input lines -and turns them into -output lines, -it is not possible for mom to "guess" the -correct starting position of string tabs marked off in lines that -are centered or set flush right. -

    -Equally, she cannot guess the starting position if a line is fully -justified and broken with -SPREAD. -

    -In other words, in order to use string tabs, -LEFT -must be active, or, if -QUAD LEFT -or -JUSTIFY -are active, the line on which the string tabs are marked must be -broken "manually" with -BR -(but not -SPREAD). -

    -To circumvent this behaviour, I recommend using the -PAD -to set up string tabs in centered or flush right lines. Say, for -example, you want to use a string tab to underscore the text of a -centered line with a rule. Rather than this, -

    -

    -	.CENTER
    -	\*[ST1]A line of text\*[ST1X]\c
    -	.EL
    -	.ST 1
    -	.TAB 1
    -	.PT_SIZE 24
    -	.ALD 3p
    -	\*[RULE]
    -	.RLD 3p
    -	.TQ
    -
    - -you should do: -

    -

    -	.QUAD CENTER
    -	.PAD "#\*[ST1]A line of text\*[ST1X]#"
    -	.EL
    -	.ST 1
    -	.TAB 1
    -	.PT_SIZE 24
    -	.ALD 3p
    -	\*[RULE] \" Note that you can't use \*[UP ] or \*[DOWN] with \*[RULE]
    -	.RLD 3p
    -	.TQ
    -
    - -

    - - - -


    -

    Set string tabs

    -
    -Macro: ST <tab number> L | R | C | J [ QUAD ] - -

    -After string tabs have been marked off on an input line (see -\*[ST]...\*[STX]), -you need to "set" them by giving them a direction -and, optionally, the QUAD argument. In this -respect, ST is like -TAB_SET -except that you don't have to give ST an indent -or a line length (that's already taken care of, inline, by -\*[ST]...\*[STX]). If you want string tab 1 to be -left, enter -

    -

    -	.ST 1 L
    -
    - -If you want it to be left and -filled, enter -

    -

    -	.ST 1 L QUAD
    -
    - -If you want it to be justified, enter -

    -

    -	.ST 1 J
    -
    - -See the -Quickie tutorial on string tabs -for a full explanation of setting up string tabs. -

    - - - -


    -

    Call tabs

    -
    -Macro: TAB <tab number> -
    -Alias: TB -

    -After tabs have been defined (either with -TAB_SET -or -ST), -TAB moves to whatever tab number you pass it as -an argument. For example, -

    -

    -	.TAB 3
    -
    - -moves you to tab 3. -

    - -NOTE: TAB breaks the line preceding -it and advances 1 linespace. Hence, -

    -

    -	.TAB 1
    -	A line of text in tab 1.
    -	.TAB 2
    -	A line of text in tab 2.
    -
    - -produces, on output -

    -

    -	A line of text in tab 1.
    -	                           A line of text in tab 2.
    -
    - -If you want the tabs to line up, use -TN -(Tab Next), like this: -

    -

    -	.TAB 1
    -	A line of text in tab 1.
    -	.TN
    -	A line of text in tab 2.
    -
    - -which produces -

    -

    -	A line of text in tab 1.   A line of text in tab 2.
    -
    - -If the text in your tabs runs to several lines, and you want the -first lines of each tab to align, you must use the -multi-column macros. -

    -ADDITIONAL NOTE: Any indents in effect prior to -calling a tab are automatically turned off by TAB. -If you were happily zipping down the page with a left indent of 2 -picas turned on, and you call a tab whose indent from the left margin -is 6 picas, your new distance from the left margin will be 6 picas, -not 6 picas plus the 2 pica indent. -

    - - - -


    -

    Tab Next

    -
    -Macro: TN -
    -*In tabs that aren't given the QUAD argument when they're set up -with -TAB_SET -or -ST, you must terminate the line preceding -TN with the \c inline escape. See the -ADDITIONAL NOTE, -
    -*If you find remembering whether to put in the \c -bothersome, you may prefer to use the -inline escape -alternative to -.TN, -\*[TB+], -which works consistently regardless of the fill mode.
    - -

    -TN moves over to the next tab in numeric -sequence (tab n+1) without advancing on the page. See the -NOTE -in the description of the TAB macro for an -example of how TN works. -

    -NOTE: You must put text in the -input line -immediately after TN. "Stacking" of -TN's is not allowed. In other words, you cannot -do -

    -

    -	.TAB 1
    -	Some text
    -	.TN
    -	Some more text
    -	.TN
    -	.TN
    -	Yet more text
    -
    - -The above example, assuming tabs numbered from 1 to 4, should be entered -

    -

    -	.TAB 1
    -	Some text
    -	.TN
    -	Some more text
    -	.TAB 4
    -	Yet more text
    -
    -

    -ADDITIONAL NOTE: -In versions of mom prior to 1.1.9, TN did not -always work as advertised on the last -output line -of pages that contained a footer trap (e.g. one set with -B_MARGIN -or in documents formatted using the -document processing macros). -

    -TN has been re-written so that this should no longer be the -case. However, in order for it to work in tabs that have not been -given a QUAD argument (see -TAB_SET -and -ST) -you must always "join" .TN to the line -before it using the -\c -inline escape, -as in the following example: -

    -

    -	.TAB_SET 1 0  1P  L
    -	.TAB_SET 2 1P 20P L
    -	.TAB 1
    -	1.\c
    -	.TN
    -	The first rule of survival is "make and keep good friends."
    -
    - -When output, the example will look like this: -

    -

    -	1.  The first rule of survival is "make and keep good friends."
    -
    - -Conversely, if you did give a QUAD argument -to TAB_SET or ST, the -\c must not be used. -

    - - - -


    -

    Tab Quit

    -
    -Macro: TQ -
    - -

    -TQ takes you out of whatever tab you were in, -advances 1 linespace, and restores the left margin, line length, -quad direction and -fill mode -that were in effect prior to invoking any tabs. -

    -


    - - - - - - -

    Multi-Columns

    -
    - -Tabs are not by nature columnar, which is to say that if the text -inside a tab runs to several lines, calling another tab does not -automatically move to the -baseline -of the first line in the previous tab. To demonstrate: -

    -

    -	.TAB 1
    -	Carrots
    -	Potatoes
    -	Broccoli
    -	.TAB 2
    -	$1.99/5 lbs
    -	$0.25/lb
    -	$0.99/bunch
    -
    - -produces, on output -

    -

    -	Carrots
    -	Potatoes
    -	Broccoli
    -	           $1.99/5 lbs
    -	           $0.25/lb
    -	           $0.99/bunch
    -
    - -The multi-column macros allow you to set tabs in columnar -fashion, rather than line by line. When you invoke multi-column -mode (with -MCO), -mom saves the position of the current baseline. -MCR -(Multi-column return) at any point while multi-columns are on -returns you to the saved position. Exiting multi-columns -(MCX) -quits the current tab (if you're in one) and moves you to the -bottom of the longest column. (Note that you do not have to use -multi-columns in conjunction with tabs.) -

    -Using our example above, but setting it in multi-column mode, -

    -

    -	.MCO
    -	.TAB 1
    -	Carrots
    -	Potatoes
    -	Broccoli
    -	.MCR
    -	.TAB 2
    -	$1.99/5 lbs
    -	$0.25/lb
    -	$0.99/bunch
    -	.MCX
    -
    - -produces -

    -

    -	Carrots   $1.99/5 lbs
    -	Potatoes  $0.25/lb
    -	Broccoli  $0.99/bunch
    -
    - -NOTE: Do not confuse MCO with -the -COLUMNS -macro in the -document processing macros. -

    - -

    Columns macro list

    - - - - - -
    -

    Begin multi-column setting

    -
    -Macro: MCO -
    - -

    -MCO -(Multi-Column On) -is the macro you use to begin multi-column setting. It marks -the current -baseline -as the top of your columns, for use later with -MCR. See the -introduction to columns -for an explanation of multi-columns and some sample -input. -

    -NOTE: Do not confuse MCO with -the -COLUMNS -macro in the -document processing macros. -

    - - - -


    -

    Return to top of column

    -
    -Macro: MCR -
    - -

    -Once you've turned multi-columns on (with -MCO), -MCR, at any time, returns you to the top of -your columns. -

    - - - -


    -

    Exit multi-columns

    -
    -Macro: MCX [ <distance to advance below longest column> ] -
    -*Optional argument requires a unit of measure - -

    -MCX takes you out of any tab you were in (by silently -invoking -TQ) and advances to the bottom of the longest -column. -

    -Without an argument, MCX advances 1 linespace -below the longest column. Linespace, in this instance, is the -leading -in effect at the moment MCX is -invoked. -

    -If you pass the <distance> argument to -MCX, it advances 1 linespace below the longest -column (see above) PLUS the distance specified by the argument. -The argument requires a unit of measure; therefore, to advance -an extra 6 points below where MCX would -normally place you, you'd enter -

    -

    -	.MCX 6p
    -
    - -NOTE: If you wish to advance a precise distance -below the -baseline -of the longest column, use MCX with an -argument of 0 (zero; no unit of measure required) in conjunction -with the -ALD -macro, like this: -

    -

    -	.MCX 0
    -	.ALD 24p
    -
    - -The above advances to precisely 24 points below the baseline -of the longest column. -

    -


    - - - - - - -

    Indents

    -
    - -With mom's indents, you can indent from the left, -the right, or both margins. In addition, mom -provides temporary left indents (i.e. only one line is indented, -as at the start of a paragraph) and "hanging" left indents -(the reverse of a temporary indent; the first line isn't indented, -subsequent lines are). -

    -

    A brief explanation of how mom handles indents

    -

    -Mom provides five kinds of indents: left, right, -both, temporary, and hanging. Each is invoked by its own name: -
    -

      -
    • IL = Indent Left -
    • IR = Indent Right -
    • IB = Indent Both -
    • HI = Hanging Indent -
    • TI = Temporary Indent -
    -
    -In addition, there are four macros to control exiting from -indents: -
    -
      -
    • IQ  = quit all active indents -
    • ILX = exit indent style left -
    • IRX = exit indent style right -
    • IBX = exit indent style both -
    -
    -This section deals exclusively with IL, IR and -IB. For an explanation -of hanging and temporary indents -- how they work and how to use -them -- see -Hanging indents -and -Temporary indents. -

    -The first time you invoke any of mom's indents, -you must supply a measure. For example, -

    -

    -	.IL 2P
    -
    - -indents text 2 picas from the left margin (or current tab -indent). -

    -When you want to exit the above indent, use either -

    -

    -	.IQ
    -	 or
    -	.ILX
    -
    - -The next time you want the same indent, invoke it without the -argument, like this: -

    -

    -	.IL
    -
    - -As you can see, once you've supplied a measure to an indent macro -mom stores the value, obviating the need to repeat -it on subsequent invocations. And mom doesn't just -store the measure -- she hangs on to it tenaciously. Arguments passed -to IL, IR and IB are additive. -Consider the following: -

    -

    -	.LL 20P
    -	.IR 2P    \"Indent right by 2 picas
    -	A first block of text...
    -	...
    -	...
    -	.IQ       \"Turn indent off
    -	A second block of text...
    -	...
    -	...
    -	.IR 2P    \"Indent right by an additional 2 picas (i.e. 4 picas)
    -	A third block of text...
    -	...
    -	...
    -
    - -The first block of text is right indented by 2 picas (i.e. the line -length is shortened by 2 picas to 18 picas). The second block of -text, after IQ, is, as you'd expect, set to the full -measure. The third block of text -- the one to pay attention to -- -is not right indented by 2 picas, but rather by 4 picas. -Mom adds the value of arguments to IL, -IR and IB to whatever value is already -in effect. -

    -If you wanted the third block of text in the example above to -be right indented by just 2 picas (the original measure given to -IR), you would enter .IR without an -argument. -

    -Because indent arguments are additive, putting a minus sign in front -of the argument can be used to subtract from the current value. -In the following example, the first line is indented 18 points, the -second is indented 36 points (18+18), and the third is again indented -18 points (36-18). -

    -

    -	.IL 18p     \"Indent left by 18 points      = 18 points
    -	Now is the time
    -	.IL 18p     \"Indent left by 18 points more = 36 points
    -	for all good men to come
    -	.IL -18p    \"Indent left by 18 points less = 18 points
    -	to the aid of the party.
    -
    - -Sometimes, you may want to clear out the stored indent values -- let -mom start indenting with a clean slate, as it were. -Giving the optional argument CLEAR to any of the -"indent quit" macros resets them to zero. -
    -
      -
    • IQ CLEAR  = quit and clear all indents -
    • ILX CLEAR = quit and clear indent style left -
    • IRX CLEAR = quit and clear indent style right -
    • IBX CLEAR = quit and clear indent style both -
    -
    -Indent styles may be combined and manipulated separately. You could, -for example, have a left indent of 4 picas and a right indent of 6 -picas and control each separately, as in the following example. -

    -

    -	.IL 4P     \"Indent left 4 picas
    -	.IR 6P     \"Indent right 6 picas
    -	Some text
    -	.IRX       \"Turn off the right indent only
    -	More text  \"Text is still indented 4 picas left
    -
    - -If, at .IRX, you wanted the text afterwards to have no -indents (either left or right), you would enter .IQ, -which exits all indent styles at once. -

    -A word of advice: Indents are best used only when -you have a compelling reason not to change the current left margin or -line length. In many instances where indents might seem expedient, -it's better to use tabs, or actually change the left margin or the -line length. Mom's indenting macros are flexible -and powerful, but easy to get tangled up in. Personally, I don't -use them much, except for cutarounds and multi-level lists à la html, -at which they excel. -

    -NOTE: see the section -Typesetting Macros in Document Processing -for information and advice on using indents with the -document processing macros. -

    -

    Indents macro list

    -
      -
    • IL  (Indent left) -
    • IR  (Indent right) -
    • IB  (Indent both) -
    • TI  (Temporary indent, left) -
    • HI  (Hanging Indent) - -
    • IQ  (Quit indents, all) -
    • ILX (Exit indent style left) -
    • IRX (Exit indent style right) -
    • IBX (Exit indent style both) -
    - - - -
    -

    Indent left

    -
    -Macro: IL [ <measure> ] -
    -*The optional argument requires a unit of measure - -

    -IL indents text from the left margin of the page, -or if you're in a tab, from the left edge of the tab. Once -IL is on, the left indent is applied uniformly to -every subsequent line of text, even if you change the line length. -

    -The first time you invoke IL, you must give it a -measure. Subsequent invocations with a measure add to the previous -measure. A minus sign may be prepended to the argument to subtract -from the current measure. The -\w -inline escape -may be used to specify a text-dependent measure, in which case -no unit of measure is required. For example, -

    -

    -	.IL \w'margarine'
    -
    - -indents text by the width of the word "margarine". -

    -With no argument, IL indents by its last -active value. See the -brief explanation of how mom handles indents -for more details. -

    -NOTE: Calling a tab (with -TAB) -automatically cancels any active indents. -

    -ADDITIONAL NOTE: Invoking IL -automatically turns off IB. -

    - - - -


    -

    Indent right

    -
    -Macro: IR [ <measure> ] -
    -*The optional argument requires a unit of measure - -

    -IR indents text from the right margin of the -page, or if you're in a tab, from the end of the tab. -

    -The first time you invoke IR, you must give it a -measure. Subsequent invocations with a measure add to the previous -indent measure. A minus sign may be prepended to the argument to -subtract from the current indent measure. The -\w -inline escape -may be used to specify a text-dependent measure, in which case -no unit of measure is required. For example, -

    -

    -	.IR \w'jello'
    -
    - -indents text by the width of the word "jello". -

    -With no argument, IR indents by its last -active value. See the -brief explanation of how mom handles indents -for more details. -

    -NOTE: Calling a tab (with -TAB) -automatically cancels any active indents. -

    -ADDITIONAL NOTE: Invoking IR -automatically turns off IB. -

    - - - -


    -

    Indent both

    -
    -Macro: IB [ <left measure> <right measure> ] -
    -*The optional arguments require a unit of measure - -

    -IB allows you to set or invoke a left and a right -indent at the same time. -

    -At its first invocation, you must supply a measure for both indents; -at subsequent invocations when you wish to supply a measure, both must -be given again. As with IL and IR, -the measures are added to the values previously passed to the macro. -Hence, if you wish to change just one of the values, you must -give an argument of zero to the other. -

    -A word of advice: If you need to manipulate left and -right indents separately, use a combination of IL -and IR instead of IB. You'll -save yourself a lot of grief. -

    -A minus sign may be prepended to the arguments to subtract from their -current values. The -\w -inline escape -may be used to specify text-dependent measures, in which case -no unit of measure is required. For example, -

    -

    -	.IB \w'margarine' \w'jello'
    -
    - -left indents text by the width of the word "margarine" -and right indents by the width of "jello". -

    -Like IL and IR, IB -with no argument indents by its last active values. See the -brief explanation of how mom handles indents -for more details. -

    -NOTE: Calling a tab (with -TAB) -automatically cancels any active indents. -

    -ADDITIONAL NOTE: Invoking IB -automatically turns off IL and -IR. -

    - - - -


    -

    Temporary (left) indent

    -
    -Macro: TI [ <measure> ] -
    -*The optional argument requires a unit of measure - -

    -A temporary indent is one that applies only to the first line of -text that comes after it. Its chief use is indenting the first -line of paragraphs. (Mom's -PP -macro, for example, uses a temporary indent.) -

    -The first time you invoke TI, you must give it -a measure. If you want to indent the first line of a -paragraph by, say, 2 -ems, -do -

    -

    -	.TI 2m
    -
    - -Subsequent invocations of TI do not require you -to supply a measure; mom keeps track of the -last measure you gave it. -

    -Because temporary indents are temporary, there's no need to turn -them off. -

    -IMPORTANT: Unlike IL, IR and -IB, measures given to TI -are NOT additive. In the following example, the second .TI -2P is exactly 2 picas. -

    -

    -	.TI 1P
    -	The beginning of a paragraph...
    -	.TI 2P
    -	The beginning of another paragraph...
    -
    - - - -
    -

    Hanging indent

    -
    -Macro: HI [ <measure> ] -
    -*The optional argument requires a unit of measure - -

    -A hanging indent looks like this: -

    -

    -	The thousand injuries of Fortunato I had borne as best I
    -	    could, but when he ventured upon insult, I vowed
    -	    revenge.  You who so well know the nature of my soul
    -	    will not suppose, however, that I gave utterance to a
    -	    threat, at length I would be avenged...
    -
    - -The first line of text "hangs" outside the left -margin. -

    -In order to use hanging indents, you must first have a left indent -active (set with either -IL -or -IB). -Mom will not hang text outside the left margin set with -L_MARGIN -or outside the left margin of a tab. -

    -The first time you invoke HI, you must give it -a measure. If you want the first line of a paragraph to hang by, -say, 1 pica, do -

    -

    -	.IL 1P
    -	.HI 1P
    -
    - -Subsequent invocations of HI do not require you -to supply a measure; mom keeps track of the -last measure you gave it. -

    -Generally speaking, you should invoke HI immediately -prior to the line you want hung (i.e. without any intervening -control lines). -And because hanging indents affect only one line, there's no need to turn -them off. -

    -

    A recipe for numbered lists

    -

    -PLEASE NOTE: mom now has macros for setting lists (see -Nested lists), -making this recipe superfluous. It remains here in the hope that -it will clarify the use of hanging indents generally, if no longer -specifically. -

    -Consider the following example: -

    -

    -	.PAGE 8.5i 11i 1i 1i 1i 1i
    -	.FAMILY  T
    -	.FT      R
    -	.PT_SIZE 12
    -	.LS      14
    -	.JUSTIFY
    -	.KERN
    -	.SS 0
    -	.IL \w'\0\0.'    \"Indent left by 2 figure spaces and a period
    -	.HI \w'\0\0.'    \"Hang first line of text back by 2 figure spaces and a period
    -	1.\0The most important point to be considered is whether the
    -	answer to the meaning of life, the universe, and everything
    -	really is 42.  We have no-one's word on the subject except
    -	Mr. Adams'.
    -	.HI
    -	2.\0If the answer to the meaning of life, the universe,
    -	and everything is indeed 42, what impact does this have on
    -	the politics of representation?  42 is, after all not a
    -	prime number.  Are we to infer that prime numbers don't
    -	deserve equal rights and equal access in the universe?
    -	.HI
    -	3.\0If 42 is deemed non-exclusionary, how do we present it
    -	as the answer and, at the same time, forestall debate on its
    -	exclusionary implications?
    -
    - -First, we invoke a left indent with a measure equal to the width -of 2 -figures spaces -plus a period (using the -\w -inline escape). At this point, the left indent is active; text -afterwards would normally be indented. However, we invoke a hanging -indent of exactly the same width, which hangs the first line (and -first line only!) to the left of the indent by the same distance -(in this case, that means "out to the left margin"). -Because we begin the first line with a number, a period, and a -figure space, the actual text ("The most important point...") -starts at exactly the same spot as the indented lines that -follow. -

    -Notice that subsequent invocations of HI without a -measure produce exactly the same effect. -

    -Paste the example above into a file and preview it with groff -mom -X -<filename> to see hanging indents in action. -

    -IMPORTANT: Unlike IL, IR and -IB, measures given to HI -are NOT additive. Each time you pass a measure to -HI, the measure is treated literally. -

    - - - -


    -

    Quitting indents

    -
    -Macro: IQ  [ CLEAR ]  (quit any/all indents -- see *IMPORTANT NOTE) -
    -Macro: ILX [ CLEAR ]  (exit Indent Left) -
    -Macro: IRX [ CLEAR ]  (exit Indent Right) -
    -Macro: IBX [ CLEAR ]  (exit Indent Both) - -

    -*IMPORTANT NOTE: -
    -    Formerly, the macro for quitting all indents was -.IX. This usage is now deprecated, in favour -of .IQ. .IX will -continue to behave as before, but mom will -issue a warning to stderr indicating that you should update your -documents. -
    -    As a consequence of this change,
    -ILX, IRX and IBX may -now also be invoked as ILQ, IRQ and -IBQ. Both forms are acceptable. -

    -Without an argument, the macros to quit indents merely restore your -original margins and line length. The measures stored in the -indent macros themselves are saved so you can call them again without -having to supply a measure. -

    -If you pass these macros the optional argument CLEAR, -they not only restore your original left margin and line length, -but also clear any values associated with a particular indent style. -The next time you need an indent of the same style, you have to supply -a measure again. -

    -IQ CLEAR, as you'd suspect, quits and clears -the values for all indent styles at once. - -

    -


    -Next   -Prev   -Top   -Back to Table of Contents - - - diff --git a/src/contrib/mom/momdoc/using.html b/src/contrib/mom/momdoc/using.html deleted file mode 100644 index f601dde..0000000 --- a/src/contrib/mom/momdoc/using.html +++ /dev/null @@ -1,230 +0,0 @@ - - - - -Using mom - - - - - -Next   -Prev   -Back to Table of Contents -

    - - -

    USING MOM

    - - -Introduction -
    -Inputting macros -
    -Invoking groff -
    -Previewing documents -

    -


    -

    Introduction

    - -As explained in the section -What is mom?, -mom can be used in two ways: for straight typesetting -or for document processing. The difference between the two is -that in straight typesetting, every macro is a literal -typesetting instruction that determines precisely how text -following it will look. Document processing, on the other hand, -uses markup "tags" (e.g. .PP for -paragraphs, .HEAD for heads, .FOOTNOTE -for footnotes, etc.) that make a lot of typesetting decisions -automatically. -

    -You tell mom that you want to use the document -processing macros with the -START -macro, explained below. After START, -mom determines the appearance of text following -the markup tags automatically, although you, the user, can easily -change how mom interprets the tags. This gives you -nearly complete control over document design. In addition, the -typesetting macros, in combination with document processing, let you -meet all sorts of typesetting needs that just can't be covered by -"one macro fits all" markup tags. -

    - -

    How to input mom's macros

    - - -Regardless of which way you use mom, the -following apply. -
    -
      -
    1. You need a good text editor for inputting - mom files. -

      - I cannot recommend highly enough that you use an - editor that lets you write syntax highlighting - rules for mom's macros and - inline escapes. - I use the vi clone called elvis, and find it a pure - joy in this regard. Simply colourizing macros and - inlines to half-intensity can be enough to make text stand - out clearly from formatting commands. -

    2. All mom's macros begin with a period - (dot) and must be entered in upper case (capital) - letters. -
    3. Macro - arguments - are separated from the macro itself by spaces. Multiple - arguments to the same macro are separated from each - other by spaces. Any number of spaces may be used. All - arguments to a macro must appear on the same line as the - macro. -
    4. Any argument (except a - string argument) - that is not a digit must be entered in upper case - (capital) letters. -
    5. Any argument that requires a plus or minus sign must - have the plus or minus sign prepended to the argument - with no intervening space (e.g. +2, -4). -
    6. Any argument that requires a - unit of measure - must have the unit appended directly to the argument, - with no intervening space (e.g. 4P, .5i, 2v). -
    7. String arguments, - in the sense that the term is used in this manual, must - be surrounded by double-quotes ("text of - string"). Multiple string arguments are separated - from each other by spaces (each argument surrounded by - double-quotes, of course). -
    8. If a string argument, as entered in your text editor, - becomes uncomfortably long (i.e. runs longer than the - visible portion of your screen or window), you may break - it into two or more lines by placing the backslash - character (\) at the ends of lines to break - them up, like this: -

      -

      -	.SUBTITLE "An In-Depth Consideration of the \
      -	Implications of Forty-Two as the Meaning of Life, \
      -	The Universe, and Everything"
      -	
      -
    - -It's important that formatted documents be easy to read/interpret -when you're looking at them in a text editor. One way to achieve -this is to group macros that serve a similar purpose together, and -separate them from other groups of macros with a blank comment line. -In groff, that's done with \# on a line by itself. -Consider the following, which is a template for starting the -chapter of a book. -

    -

    -	.TITLE   "My Pulitzer Novel"
    -	.AUTHOR  "Joe Blow"
    -	.CHAPTER  1
    -	\#
    -	.DOCTYPE    CHAPTER
    -	.PRINTSTYLE TYPESET
    -	\#
    -	.FAM     P
    -	.PT_SIZE 10
    -	.LS      12
    -	\#
    -	.START
    -
    - - -

    Printing -- invoking groff with mom

    -
    - -After you've finished your document, naturally you will want to -print it. This involves invoking groff from the command line. -In all likelihood, you already know how to do this, but in case -you don't, here are two common ways to do it. -

    -

    -	groff -mom -l <filename>
    -	groff -mom <filename> | lpr
    -
    - -In the first, the -l option to groff tells -groff to send the output to your printer. In the second, you're -doing the same thing, except you're telling groff to pipe the -output to your printer. Basically, they're the same thing. The -only advantage to the second is that your system may be set up -to use something other than lpr as your print -command, in which case, you can replace lpr -with whatever is appropriate to your box. -

    -Sadly, it is well beyond the scope of this manual to tell you -how to set up a printing system. See the README file for -minimum requirements to run groff with mom. -

    -NOTE FOR ADVANCED USERS: I've sporadically had groff -choke on perfectly innocent sourced files within mom -documents. You'll know you have this problem when groff complains that -it can't find the sourced file even when you can plainly see that the -file exists, and that you've given .so the right path and -name. Should this happen, pass groff the -U (unsafe mode) -option along with the other options you require. Theoretically, you -only need -U with .open, .opena, .pso, .sy, -and .pi, however reality seems, at times, to dictate -otherwise. -

    - -

    How to preview documents

    - - -Other than printing out hard copy, there are two well-established -methods for previewing your work. Both assume you have a working -X server. -

    -Groff itself comes with a quick and dirty previewer called -gxditview. Invoke it with -

    -

    -	groff -X -mom filename
    -
    - -It's not particularly pretty, doesn't have many navigation -options, requires a lot of work if you want to use other than -the "standard" groff PostScript fonts, and occasionally -has difficulty accurately reproducing some of -mom's macro effects -(smartquotes -and -leaders -come to mind). What it does have going for it is that it's fast and -doesn't gobble up system resources. -

    -A surer way to preview documents is with gv -(ghostview). This involves processing documents with groff, -and directing the output to a PostScript file, like this, -

    -

    -	groff -mom filename > filename.ps
    -
    -then opening .ps file in gv. -

    -While that may sound like a lot of work, I've set up my editor -(elvis) to do it for me. Whenever I'm working on a document that -needs previewing/checking, I fire up gv with the -"Watch File" option turned on. To look at the file, I -tell elvis to process it (with groff) and send it to a temporary -file (groff -mom filename > filename.ps), then open -the file inside gv. Ever after, when I want to -look at any changes I make, I simply tell elvis to work his magic -again. The Watch File option in gv registers that -the file has changed, and automatically loads the new version. -Voilà! --instant previewing. - -

    -


    -Next   -Prev   -Top   -Back to Table of Contents - - diff --git a/src/contrib/mom/om.tmac b/src/contrib/mom/om.tmac deleted file mode 100644 index 45e9aa8..0000000 --- a/src/contrib/mom/om.tmac +++ /dev/null @@ -1,15889 +0,0 @@ -.\" om.tmac -.ig -Mom -- a typesetting/document-processing macro set for groff. - -Copyright (C) 2002, 2003 Free Software Foundation, Inc. - Written by Peter Schaffter (peter@faustus.dyn.ca) - -This file is part of groff. - -groff is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 2, or (at your option) any later -version. - -groff is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or -FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -for more details. - -You should have received a copy of the GNU General Public License along -with groff; see the file COPYING. If not, write to the Free Software -Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - -Version 1.3-a -------------- -Antoine de St-Exupéry asserted that elegance in engineering is -achieved not when there is nothing left to add, but when there is -nothing left to take away. - -By those standards, mom is a Rube Goldberg contraption. She was -created over the years while groff, and my understanding of it, -changed and evolved. However, I'm a firm believer in "if it -ain't broke, don't fix it," so I'm leaving any major clean-up -of redundancies and whatnot for a rainy day. - -Inasmuch as possible, macros that turn a feature on or off follow -a similar style. Invoking the macro without an argument turns -the feature on. Invoking it with any other argument turns it off. -Use of the argument OFF is recommended, but not required; users -may find other conventions preferable (e.g. NO, X, END, QUIT, etc.). - -"" in the description of arguments that can be passed -to a macro means that any argument turns the feature off. -.. -\# -\# ==================================================================== -\# -\# Check which version of groff is being run -.if (\n[.x]\n[.y] < 118) \ -. ab You need GNU troff version 1.18 or higher to run this version of mom. -\# Check that GNU troff is being run -.if !\n[.g]=1 \ -. ab The mom macros require that you be running GNU troff. -.if \n(.C \ -. ab The groff mom macros do not work in compatibility mode. -\# Add supplementary styles -.sty \n[.fp] L \" Light Roman -.sty \n[.fp] LI \" Light Italic -.sty \n[.fp] LCD \" Light Condensed Roman -.sty \n[.fp] LCDI \" Light Condensed Italic -.sty \n[.fp] LEX \" Light Extended Roman -.sty \n[.fp] LEXI \" Light Extended Italic -.sty \n[.fp] CD \" Medium/Book Condensed Roman -.sty \n[.fp] CDI \" Medium/Book Condensed Italic -.sty \n[.fp] EX \" Medium/Book Extended Roman -.sty \n[.fp] EXI \" Medium/Book Extended Italic -.sty \n[.fp] DB \" DemiBold Roman -.sty \n[.fp] DBI \" DemiBold Italic -.sty \n[.fp] BCD \" Bold Condensed Roman -.sty \n[.fp] BCDI \" Bold Condensed Italic -.sty \n[.fp] BEX \" Bold Extended Roman -.sty \n[.fp] BEXI \" Bold Extended Italic -.sty \n[.fp] HV \" Heavy Roman -.sty \n[.fp] HVI \" Heavy Italic -.sty \n[.fp] HVCD \" Heavy Condensed Roman -.sty \n[.fp] HVCDI \" Heavy Condensed Italic -.sty \n[.fp] HVEX \" Heavy Extended Roman -.sty \n[.fp] HVEXI \" Heavy Extended Italic -.sty \n[.fp] BL \" Black Roman -.sty \n[.fp] BLI \" Black Italic -.sty \n[.fp] BLCD \" Black Condensed Roman -.sty \n[.fp] BLCDI \" Black Condensed Italic -.sty \n[.fp] BLEX \" Black Extended Roman -.sty \n[.fp] BLEXI \" Black Extended Italic -.sty \n[.fp] UBL \" Ultra-Black Roman -.sty \n[.fp] UBLI \" Ultra-Black Italic -\# -\# ==================================================================== -\# -\# TYPESETTING MACROS, STRINGS, AND ALIASES -\# ======================================== -\# -\# +++ALIASES+++ -\# -\# Alias .als as ALIAS, and .aln (number registers) as ALIASN -\# -.als ALIAS als -.als ALIASN aln -\# -\# -\# ALIASES FOR GROFF REQUESTS -\# -------------------------- -\# -.ALIAS MAC de -.ALIAS BR br -.ALIAS SP sp -.ALIAS PAGELENGTH pl -.ALIAS SPREAD brp -.ALIAS ESC_CHAR ec -.ALIAS STRING ds -\# -\# ALIASES FOR NUMBER REGISTERS -\# ---------------------------- -\# -.ALIASN #PT_SIZE .ps \"fractional point size in units -.ALIASN #DIVER_DEPTH dn \"diversion depth -.ALIASN #DIVER_WIDTH dl \"diversion width -.ALIASN #TRAP_DISTANCE .t \"distance to next trap -.ALIASN #LEAD .v \"line space (.vs, not .ls) -.ALIASN #PAGE_LENGTH .p \"page length -.ALIASN #NUM_ARGS .$ \"number of arguments passed to a macro -.ALIASN #INDENT .i \"value of current indent -\# -\# ==================================================================== -\# -\# MISCELLANEOUS -\# ============= -.nr #L_MARGIN \n(.o \" Tabs, etc require #L_MARGIN -.cflags 4 /\(en \" So slash and en-dashes get broken -.warn 8192 -\# -.ig -About the warn level --------------------- - -There's a lot of testing for the presence of number registers and -strings in this macro file. Many of the registers and strings -pop into and out of existence on the fly. For convenience, I -often use - - .if \\n[whatever] and .if !\\n[whatever] - -to test "if the register exists and is (not) empty." Groff, -encountering such tests when called with the -ww options, emits - - warning: number register whatever not defined. - -Groff also warns about strings similarly tested for. - -The warn level, above, is high in order to shut off those -warnings. If you're futzing in this file and need more verbose -warnings, either comment out ".warn 8192" or set the warnlevel -to the one you need (but be ready for lots of what I've just -described). -.. -\# -\# ==================================================================== -\# -\# +++PAGE LAYOUT+++ -\# -\# Macros that control the physical layout of the page: paper size -\# and margins. -\# -\# PAGE WIDTH -\# ---------- -\# *Argument: -\# -\# *Function: -\# Stores user supplied page width in register #PAGE_WIDTH. -\# *Notes: -\# #PAGE_WIDTH is used to establish the default LL (and right margin). -\# Requires unit of measure. -\# -.MAC PAGEWIDTH END -. br -. nr #PAGE_WIDTH \\$1 -. if !r#L_MARGIN \{ .L_MARGIN \\n(.o \} -. if !r#R_MARGIN \{ .R_MARGIN 1i \} -.END -\# -\# -\# L_MARGIN -\# -------- -\# *Argument: -\# -\# *Function: -\# Stores user supplied page offset in register #L_MARGIN. -\# Sets .po to user supplied offset. -\# *Notes: -\# Requires unit of measure. -\# -.MAC L_MARGIN END -. br -. nr #L_MARGIN (\\$1) -. po \\n[#L_MARGIN]u -.END -\# -\# -\# R_MARGIN -\# -------- -\# *Argument: -\# -\# *Function: -\# Stores user supplied right margin in register #R_MARGIN. -\# *Notes: -\# This is a pseudo-margin. Right margin is actually a function of -\# line length. The macro calculates line length from the page offset -\# and the value plugged into #R_MARGIN. -\# -\# N.B. -- PAGEWIDTH and L_MARGIN have to be defined before R_MARGIN. -\# -\# Requires unit of measure. -\# -.MAC R_MARGIN END -. br -. nr #R_MARGIN (\\$1) -. ll \\n[#PAGE_WIDTH]u-\\n[#L_MARGIN]u-\\n[#R_MARGIN]u -. ta \\n(.lu -. nr #L_LENGTH \\n(.l -.END -\# -\# -\# T_MARGIN -\# -------- -\# *Argument: -\# -\# *Function: -\# Stores the user supplied top margin in register #T_MARGIN. -\# Advances user supplied depth from the top of the page. -\# *Notes: -\# Requires unit of measure. -\# -.MAC T_MARGIN END -. nr #T_MARGIN (\\$1) -. nr #TOP 1 -. if !\\n[#DOCS] \{\ -. sp |\\n[#T_MARGIN]u-1v -. \} -. wh 0i DO_T_MARGIN -.END -\# -\# -\# B_MARGIN -\# -------- -\# *Argument: -\# -\# *Function: -\# Stores the user supplied bottom margin in register #B_MARGIN. -\# *Notes: -\# Requires unit of measure. -\# -.MAC B_MARGIN END -. br -. nr #B_MARGIN (\\$1) -. nr #ORIGINAL_B_MARGIN \\n[#B_MARGIN] -. nr #B_MARGIN_SET 1 -. wh -\\n[#B_MARGIN]u DO_B_MARGIN -.END -\# -\# -\# PAGE -\# ---- -\# *Arguments: -\# [pagelength [leftmargin [rightmargin [topmargin [bottommargin]]]]] -\# *Function: -\# Page set-up. Collects arguments and passes them to the appropriate -\# macros. -\# *Notes: -\# All arguments after pagewidth are optional, but must appear -\# in the order given above. (User can fill in as much or as -\# little as desired.) -\# -\# All arguments require a unit of measure. -\# -.MAC PAGE END -. br -. PAGEWIDTH \\$1 -. PAGELENGTH \\$2 -. ie '\\$3'' \{ .L_MARGIN \\n(.o \} -. el \{ .L_MARGIN \\$3 \} -. ie '\\$4'' \{ .R_MARGIN 1i \} -. el \{ .R_MARGIN \\$4 \} -. if !'\\$5'' \{ .T_MARGIN \\$5 \} -. if !'\\$6'' \{ .B_MARGIN \\$6 \} -.END -\# -\# ===================================================================== -\# -\# +++PAGE CONTROL+++ -\# -\# Generic macros for breaking pages. -\# -\# DO_T_MARGIN -\# ----------- -\# *Argument: -\# -\# *Function: -\# Plants the top margin at the top of each page. -\# *Notes: -\# The trap is set in .T_MARGIN or .PAGE -\# -.MAC DO_T_MARGIN END -. ev T_MARGIN -. nr #TOP 1 -. sp |\\n[#T_MARGIN]u-1v -. ev -. sp -\\n[#T_MARGIN_LEAD_ADJ]u -.END -\# -\# -\# DO_B_MARGIN -\# ----------- -\# *Argument: -\# -\# *Function: -\# Plants the bottom margin at the bottom of each page. -\# *Notes: -\# The trap is set in .B_MARGIN or .PAGE. -\# -.MAC DO_B_MARGIN END -. nr #T_MARGIN_LEAD_ADJ \\n[#LEAD]-12000 -. ev B_MARGIN -. bp -. ev -.END -\# -\# -\# NEWPAGE -\# ------- -\# *Argument: -\# -\# *Function: -\# Breaks to a new page. -\# *Notes: -\# If a B_MARGIN has been set, processes that, otherwise, just -\# breaks to a new page. -\# -.MAC NEWPAGE END -. br -. nr #NEWPAGE 1 -. ie \\n[#B_MARGIN_SET]=1 \{\ -. ie !\\n[#DOCS]=1 \{\ -. ev NP -. bp -. ev -. \} -. el \{\ -. if \\n[#COLUMNS]=1 \{ .nr #COL_NUM \\n[#NUM_COLS] \} -. ie !\\n[#FN_DEPTH] \{\ -. ch FN_OVERFLOW_TRAP -. DO_B_MARGIN -. wh -(\\n[#FN_OVERFLOW_TRAP_POS]u) FN_OVERFLOW_TRAP -. \} -. el \{\ -. DO_B_MARGIN -. \} -. \} -. \} -. el \{\ -. DO_B_MARGIN -. \} -.END -\# -\# ===================================================================== -\# -\# +++GENERAL STYLE MACROS+++ -\# -\# Macros that are likely to appear together to define general -\# type style: line length, family, font, point size, and line -\# spacing. -\# -\# LINE LENGTH -\# ----------- -\# *Argument: -\# -\# *Function: -\# Stores user supplied line length in register #L_LENGTH. -\# Sets .ll to #L_LENGTHu -\# *Notes: -\# Requires unit of measure. -\# -.MAC LL END -. nr #USER_SET_L_LENGTH 1 -. ll \\$1 -. nr #L_LENGTH \\n(.l -. ta \\n(.lu -.END -\# -\# -\# +++FAMILY AND FONT+++ -\# -\# FALLBACK FONT -\# ------------- -\# *Argument: -\# [ ABORT | WARN ] | ABORT | WARN -\# *Function: -\# Sets register #ABORT_FT_ERRORS to 1, or defines a fallback font -\# called "dummy" at font position 0. -\# *Notes: -\# Calls to non-existent families cause mom to continue processing -\# files using the fallback font until a valid family is entered. -\# -\# Calls to non-existent fonts generate warnings. If ABORT is passed -\# to FALLBACK_FONT, mom stops processing files after the warning. -\# Otherwise, she continues to process files using the fallback font -\# after the warning is issued. The default fallback font is CR; the -\# default for font warnings is to abort. -\# -.MAC FALLBACK_FONT END -. if \\n[#NUM_ARGS]=1 \{\ -. if '\\$1'ABORT' \{ .nr #ABORT_FT_ERRORS 1 \} -. if '\\$1'WARN' \{\ -. if r#ABORT_FT_ERRORS \{ .nr #ABORT_FT_ERRORS 0 \} -. \} -. if !'\\$1'ABORT' \{\ -. if !'\\$1'WARN' \{\ -. fp 0 dummy \\$1 -. \} -. \} -. \} -. if \\n[#NUM_ARGS]=2 \{\ -. fp 0 dummy \\$1 -. if '\\$2'ABORT' \{ .nr #ABORT_FT_ERRORS 1 \} -. if '\\$2'WARN' \{ .nr #ABORT_FT_ERRORS 0 \} -. \} -.END -\# -.FALLBACK_FONT CR ABORT -\# -\# FAMILY -\# ------ -\# *Argument: -\# -\# *Function: -\# Stores user supplied font family in string $FAMILY. Sets .fam -\# to $FAMILY. -\# -.MAC FAMILY END -. if \\n[#PRINT_STYLE]=1 \{\ -. fam C -. return -. \} -. if \\n[#IGNORE] \{\ -. fam C -. return -. \} -. if (\\n[.x]\\n[.y]\\n[.Y] >= 1192) \{\ -. ds $SAVED_STYLE \\n[.sty] -. \} -. ds $FAMILY \\$1 -. ft 0 -. fam \\*[$FAMILY] -. if (\\n[.x]\\n[.y]\\n[.Y] >= 1192) \{\ -. ft \\*[$SAVED_STYLE] -. if !F\\n[.fn] \{\ -. ft 0 -. \} -. \} -. if \\n[#COLLATE]=1 \{\ -. if !r#START \{ .DOC_FAM \\*[$FAMILY] \} -. \} -.END -\# -\# -\# FONT -\# ---- -\# *Argument: -\# R | I | B | BI | -\# *Function: -\# Stores user supplied font in $FONT and sets .ft to $FONT. -\# -.MAC FT END -. if \\n[#PRINT_STYLE]=1 \{\ -. ie '\\$1'I' \{\ -. if \\n[#UNDERLINE_ITALIC]=1 \{\ -. UNDERLINE -. return -. \} -. if \\n[#ITALIC_MEANS_ITALIC]=1 \{\ -. ds $FONT \\$1 -. ft \\*[$FONT] -. return -. \} -. \} -. el \{ .UNDERLINE OFF \} -. return -. \} -. ds $FONT \\$1 -. ft 0 -. ft \\*[$FONT] -. if if (\\n[.x]\\n[.y]\\n[.Y] >= 1192) \{\ -. if '\\n[.sty]'' \{\ -. if !F\\n[.fn] \{\ -. if !S\\*[$FONT] \{\ -. tm1 "[mom]: Font style "\\*[$FONT]" at line \\n(.c has not been registered. -. ie \\n[#ABORT_FT_ERRORS]=0 \{\ -. tm1 " Continuing to process using fallback font. -. \} -. el .ab Aborting. -. \} -. if \\n[.f]=0 \{\ -. tm1 "[mom]: Either font style "\\*[$FONT]" at line \\n(.c does not exist in family "\\n[.fam]", -. tm1 " or family "\\n[.fam]" has not been installed in font/devps. -. ie \\n[#ABORT_FT_ERRORS]=0 \{\ -. tm1 " Continuing to process using fallback font. -. \} -. el .ab Aborting. -. \} -. \} -. \} -. \} -.END -\# -\# -\# POINT SIZE -\# ---------- -\# *Arguments: -\# -\# *Function: -\# Sets point size to user supplied value in scaled points. -\# If #AUTO_LEAD is on, sets .vs to #AUTOLEAD_VALUE+#PT_SIZE. -\# *Notes: -\# Must NOT use a unit of measure. -\# -.MAC PT_SIZE END -. if \\n[#PRINT_STYLE]=1 \{ .return \} -. if \\n[#IGNORE] \{ .return \} -. nr #PT_SIZE_SET 1 -. ps \\$1 -. if \\n[#AUTO_LEAD] \{\ -. ie \\n[#AUTOLEAD_FACTOR] \{ .vs \\n[#PT_SIZE]u*\\n[#AUTOLEAD_VALUE]u/1000u \} -. el \{ .vs \\n[#PT_SIZE]u+\\n[#AUTOLEAD_VALUE]u \} -. \} -. nr #PT_SIZE_IN_UNITS \\n[.ps] -.END -\# -\# -\# SIZE (inline) -\# ------------- -\# *Arguments: -\# -\# *Function: -\# Sets point size to user supplied value in scaled points. -\# Intended to be called inline with \*[SIZE ] -\# *Notes: -\# Can be used with a unit of measure or not. -\# -.MAC SIZE END -\c -.ps \\$1 -.END -\# -\# -\# LEADING -\# ------- -\# *Argument: -\# -\# *Function: -\# Turns off #AUTOLEAD if it's on. -\# Sets .vs to user supplied value. -\# *Notes: -\# Does not require unit of measure. LS automatically turns off AUTOLEAD. -\# -.MAC LS END -. br -. nr #OLD_LEAD \\n(.v -. if \\n[#PRINT_STYLE]=1 \{ .return \} -. if \\n[#IGNORE] \{ .return \} -. if \\n[#AUTO_LEAD] \{\ -. rr #AUTO_LEAD -. rr #AUTOLEAD_FACTOR -. \} -. vs \\$1 -. if \\n[#TOP] \{\ -. nr #TOP_BASELINE_ADJ \\n(.v-\\n[#OLD_LEAD] -. sp -\\n[#TOP_BASELINE_ADJ]u -. rr #TOP -. rr #TOP_BASELINE_ADJ -. \} -.END -\# -.MAC RESET_LEAD END -' vs -. ch RESET_LEAD -.END -\# -\# -\# AUTOLEAD -\# -------- -\# *Argument: -\# [FACTOR] -\# *Function: -\# Stores user supplied auto-lead value in register #AUTOLEAD_VALUE. -\# Adds #AUT0LEAD_VALUE to #PT_SIZE when invoked to set leading. -\# All subsequent PT_SIZE requests reset the leading in the same way until -\# AUTOLEAD is turned off. -\# *Notes: -\# With the optional FACTOR argument, the current point size is -\# multiplied by #AUTOLEAD_VALUE instead of the two being added -\# together. -\# -.MAC AUTOLEAD END -. if \\n[#PRINT_STYLE]=1 \{ .return \} -. if \\n[#IGNORE] \{ .return \} -. nr #AUTO_LEAD 1 -. nr #OLD_LEAD \\n(.v -. nr #AUTOLEAD_VALUE (p;\\$1) -. ie \\n[#NUM_ARGS]=2 \{\ -. if '\\$2'FACTOR' \{\ -. nr #AUTOLEAD_FACTOR 1 -. vs \\n[#PT_SIZE]u*\\n[#AUTOLEAD_VALUE]u/1000u -. \} -. \} -. el \{\ -. vs \\n[#PT_SIZE]u+\\n[#AUTOLEAD_VALUE]u -. \} -. if \\n[#TOP] \{\ -. nr #TOP_BASELINE_ADJ \\n(.v-\\n[#OLD_LEAD] -. sp -\\n[#TOP_BASELINE_ADJ]u -. rr #TOP -. rr #TOP_BASELINE_ADJ -. \} -.END -\# -\# -\# STRINGS FOR INLINE CONTROL OF GENERAL TYPE STYLE -\# ------------------------------------------------ -.ds ROM \EfR -.ds IT \EfI -.ds BD \EfB -.ds BDI \Ef(BI -.ds PREV \EfP -.ds S \Es -\# -\# ===================================================================== -\# -\# +++KERNING+++ -\# -\# AUTOMATIC PAIRWISE KERNING -\# -------------------------- -\# *Arguments: -\# | -\# *Function: -\# Turns automatic pairwise kerning on or off. -\# -.MAC KERN END -. ie '\\$1'' \{\ -. kern -. nr #KERN 1 -. \} -. el \{\ -. kern 0 -. nr #KERN 0 -. \} -.END -\# -\# -.ig -INLINE KERNING AND HORIZONTAL MOVEMENT --------------------------------------- -Kerning - -Inline kerning provides a simple method for users to adjust the -amount of space between any two letters. It's predicated on a -unit of measure "U", which is 1/36 of the current point size as -returned by \n[.ps]. E.g., if the current point size is 18, -\n[.ps] returns 18000u, therefore U=500u. Since U remains -proportional relative to the current point size, the amount -of kerning between two letters as expressed in Us remains -visually similar regardless of changes in point size. - -N.B.--the amount of inline kerning supplied by \*[BU] or -\*[FU] is added to or subtracted from any kerning that already -takes place between two characters when automatic kerning is -turned on. - -In groff v. 1.17.2, it was not possible to pass arguments to macros that -were called with inline escapes, nor thence to evaluate conditional -expressions. Consequently, each pseudo-escape \[BU] had to be defined -separately with ".char". - -As of v. 1.18, one can pass arguments to inline strings/macros, -hence it is now possible to do \*[BU n] where n, inline, is the desired -number of kern units. The original .char definitions have been left in -for backward compatibility with documents created prior to mom-1.1.3c. -.. -\# -.nr #KERN_UNIT 36 -.ds BU \h'-(\En[#PT_SIZE]u/\n[#KERN_UNIT]u*\\$1u)' -.ds FU \h'(\En[#PT_SIZE]u/\n[#KERN_UNIT]u*\\$1u)' -\# -\# Initialize strings for pre-1.1.3c-style BU and FU -\# -.nr #LOOP 0 1 -.while \n+[#LOOP]<37 \{\ -. ds BU\n[#LOOP] \h'-(\En[#PT_SIZE]u/\n[#KERN_UNIT]u*\n[#LOOP]u)' -.\} -\# -.nr #LOOP 0 1 -.while \n+[#LOOP]<37 \{\ -. ds FU\n[#LOOP] \h'(\En[#PT_SIZE]u/\n[#KERN_UNIT]u*\n[#LOOP]u)' -.\} -.rr #LOOP -\# -.ig -Horizontal movements - -BP1...12.75 and FP1...12.75 move backwards or forwards inline by the -specified number of points. -Left in for backward compatibility with mom-1.1.3c, the -preferred methods for inline horizontal movements are now -\*[BCK ] and \*[FWD ]. -.. -\# -.ds BCK \h'-\\$1' -.ds FWD \h'\\$1' -\# -.ds BP.25 \h'-.25' -.ds BP.5 \h'-.5' -.ds BP.75 \h'-.75' -.ds BP1 \h'-1p' -.ds BP1.25 \h'-1.25p' -.ds BP1.5 \h'-1.5p' -.ds BP1.75 \h'-1.75p' -.ds BP2 \h'-2p' -.ds BP2.25 \h'-2.25p' -.ds BP2.5 \h'-2.5p' -.ds BP2.75 \h'-2.75p' -.ds BP3 \h'-3p' -.ds BP3.25 \h'-3.25p' -.ds BP3.5 \h'-3.5p' -.ds BP3.75 \h'-3.75p' -.ds BP4 \h'-4p' -.ds BP4.25 \h'-4.25p' -.ds BP4.5 \h'-4.5p' -.ds BP4.75 \h'-4.75p' -.ds BP5 \h'-5p' -.ds BP5.25 \h'-5.25p' -.ds BP5.5 \h'-5.5p' -.ds BP5.75 \h'-5.75p' -.ds BP6 \h'-6p' -.ds BP6.25 \h'-6.25p' -.ds BP6.5 \h'-6.5p' -.ds BP6.75 \h'-6.75p' -.ds BP7 \h'-7p' -.ds BP7.25 \h'-7.25p' -.ds BP7.5 \h'-7.5p' -.ds BP7.75 \h'-7.75p' -.ds BP8 \h'-8p' -.ds BP8.25 \h'-8.25p' -.ds BP8.5 \h'-8.5p' -.ds BP8.75 \h'-8.75p' -.ds BP9 \h'-9p' -.ds BP9.25 \h'-9.25p' -.ds BP9.5 \h'-9.5p' -.ds BP9.75 \h'-9.75p' -.ds BP10 \h'-10p' -.ds BP10.25 \h'-10.25p' -.ds BP10.5 \h'-10.5p' -.ds BP10.75 \h'-10.75p' -.ds BP11 \h'-11p' -.ds BP11.25 \h'-11.25p' -.ds BP11.5 \h'-11.5p' -.ds BP11.75 \h'-11.75p' -.ds BP12 \h'-12p' -.ds BP12.25 \h'-12.25p' -.ds BP12.5 \h'-12.5p' -.ds BP12.75 \h'-12.75p' -\# -.ds FP.25 \h'.25' -.ds FP.5 \h'.5' -.ds FP.75 \h'.75' -.ds FP1 \h'1p' -.ds FP1.25 \h'1.25p' -.ds FP1.5 \h'1.5p' -.ds FP1.75 \h'1.75p' -.ds FP2 \h'2p' -.ds FP2.25 \h'2.25p' -.ds FP2.5 \h'2.5p' -.ds FP2.75 \h'2.75p' -.ds FP3 \h'3p' -.ds FP3.25 \h'3.25p' -.ds FP3.5 \h'3.5p' -.ds FP3.75 \h'3.75p' -.ds FP4 \h'4p' -.ds FP4.25 \h'4.25p' -.ds FP4.5 \h'4.5p' -.ds FP4.75 \h'4.75p' -.ds FP5 \h'5p' -.ds FP5.25 \h'5.25p' -.ds FP5.5 \h'5.5p' -.ds FP5.75 \h'5.75p' -.ds FP6 \h'6p' -.ds FP6.25 \h'6.25p' -.ds FP6.5 \h'6.5p' -.ds FP6.75 \h'6.75p' -.ds FP7 \h'7p' -.ds FP7.25 \h'7.25p' -.ds FP7.5 \h'7.5p' -.ds FP7.75 \h'7.75p' -.ds FP8 \h'8p' -.ds FP8.25 \h'8.25p' -.ds FP8.5 \h'8.5p' -.ds FP8.75 \h'8.75p' -.ds FP9 \h'9p' -.ds FP9.25 \h'9.25p' -.ds FP9.5 \h'9.5p' -.ds FP9.75 \h'9.75p' -.ds FP10 \h'10p' -.ds FP10.25 \h'10.25p' -.ds FP10.5 \h'10.5p' -.ds FP10.75 \h'10.75p' -.ds FP11 \h'11p' -.ds FP11.25 \h'11.25p' -.ds FP11.5 \h'11.5p' -.ds FP11.75 \h'11.75p' -.ds FP12 \h'12p' -.ds FP12.25 \h'12.25p' -.ds FP12.5 \h'12.5p' -.ds FP12.75 \h'12.75p' -\# -\# -\# WHOLE LINE KERNING (RW and EW) -\# ----------------------------- -\# -.ig -The line kerning macros are special instances of track kerning, -used where a complete line needs to be tightened (or relaxed) in -order to accomodate or remove one or two more characters -than the default justification permits. -.. -\# -\# *Argument: -\# -\# *Function: -\# Invokes .tkf (track kerning) for the current font with -\# 1 as both the upper and lower point size limits, so that -\# the value entered by the user applies regardless of point -\# size. RW ("Reduce Whitespace") reduces the amount of space -\# between all characters by an equal amount. EW ("Extra -\# Whitespace") increases the amount of space. -\# *Notes: -\# Decimal values are acceptable. -\# -.ig -The groff documentation is a tad confusing about what unit of -measure is used in track kerning, only that the width of each -character is increased or decreased by the amount(s) passed as -arguments to .tkf, and something about linear function of point -size. In fact, with the way I've put this macro together, it -doesn't matter. All the user needs to know is that a value of -one will produce an unacceptably tight or loose line at most text -point sizes; therefore, effective use of RW and EW is in the -fractional range below 1 (e.g. .25, .5). Given that RW and EW -are for massaging type, a certain amount of experimentation and -previewing is expected and necessary. - -\n(.f holds the current font number, which is acceptable to .tkf. - -RW and EW must be reset to 0 to cancel their effect on subsequent -output lines. -.. -\# -.MAC RW END -. if \\n[#BR_AT_LINE_KERN] \{\ -. ie \\n[#JUSTIFY]=1 \{ .brp \} -. el \{ .br \} -. \} -. tkf \\n(.f 1 -\\$1 1 -\\$1 -.END -\# -\# -.MAC EW END -. if \\n[#BR_AT_LINE_KERN] \{\ -. ie \\n[#JUSTIFY]=1 \{ .brp \} -. el \{ .br \} -. \} -. tkf \\n(.f 1 \\$1 1 \\$1 -.END -\# -\# -\# BREAK AT LINE KERN -\# ------------------ -\# *Arguments: -\# toggle -\# *Function: -\# Enables/disables .br's before .RW and .EW -\# *Notes: -\# Mostly, users will want .br's before any kind of line kerning, but -\# there may be cases where they don't. BR_BEFORE_LINE_KERN is off by -\# default and must be invoked explicitly. -\# -.MAC BR_AT_LINE_KERN END -. ie '\\$1'' \{ .nr #BR_AT_LINE_KERN 1 \} -. el \{ .rr #BR_AT_LINE_KERN \} -.END -\# -\# ===================================================================== -\# -\# +++HYPHENATION+++ -\# -\# AUTO HYPHENATION -\# ---------------- -\# *Arguments: -\# | | DEFAULT -\# or -\# LINES | MARGIN | SPACE -\# *Function: -\# Turns auto hyphenation on or off, resets the hyphenation style -\# to default, or permits the setting of various hyphenation -\# parameters. -\# *Notes: -\# HY, by itself, defaults to .hy 14, i.e. no hyphens after the -\# first two or before the last two characters of a word, and no -\# hyphenation of the last line prior to a trap (e.g., at the -\# bottom of a page). -\# -\# HY DEFAULT resets the hyphenation style to .hy 14 (see -\# above) if that behaviour is desired after changes have been -\# made to LINES, MARGIN, or SPACE. -\# -\# HY LINES sets the number of allowable consecutive hyphenated lines. -\# -\# HY MARGIN sets the amount of space (ipPcm) allowed at the end -\# of a line in QUAD mode before hyphenation is tripped (e.g. if there's -\# only 6 points left, groff won't try to hyphenate the next word). -\# -\# HY SPACE sets the amount of extra interword space (ipPcm) that can -\# be added in JUSTIFY mode to prevent a line from being hyphenated. -\# -.MAC HY END -. ie '\\$1'' \{\ -. hy 14 -. nr #HYPHENATE 1 -. \} -. el \{\ -. if !'\\$1'LINES' \{\ -. nh -. nr #HYPHENATE 0 -. \} -. if !'\\$1'MARGIN' \{\ -. nh -. nr #HYPHENATE 0 -. \} -. if !'\\$1'SPACE' \{\ -. nh -. nr #HYPHENATE 0 -. \} -. if !'\\$1'DEFAULT' \{\ -. nh -. nr #HYPHENATE 0 -. \} -. if '\\$1'LINES' \{ .hlm \\$2 \} -. if '\\$1'MARGIN' \{ .hym \\$2 \} -. if '\\$1'SPACE' \{ .hys \\$2 \} -. if '\\$1'DEFAULT' \{\ -. hlm -1 -. hym 0 -. hys 0 -. \} -. \} -.END -\# -\# -\# HYPHENATION PARAMETERS -\# ---------------------- -\# *Arguments: -\# <# of lines> | | -\# *Function: -\# Allows user to specify .HY LINES, MARGIN, and SPACE with a single command. -\# -.MAC HY_SET END -. nr #HY_SET 1 -. hlm \\$1 -. hym \\$2 -. hys \\$3 -.END -\# -\# ===================================================================== -\# -\# +++VERTICAL SPACING+++ -\# -\# ADVANCE LEAD -\# ------------ -\# *Argument: -\# -\# *Function: -\# Creates or modifies register #ALD. Adds user supplied lead -\# below current baseline. -\# *Notes: -\# Requires a unit of measure. -\# -.MAC ALD END -. if \\n(nl=0 \{ .nr #TOP 1 \} -. if '\\$0'ALD' \{\ -. nr #ALD (\\$1) -. sp \\n[#ALD]u -. \} -. if '\\$0'ADD_SPACE' \{\ -. nr #ALD (\\$1) -. rs -. sp \\n[#ALD]u -. \} -. if '\\$0'SPACE' \{\ -. sp \\$1u -. \} -. if '\\$0'SP' \{\ -. sp \\$1u -. \} -.END -\# -\# -\# REVERSE LEAD -\# ------------ -\# *Argument: -\# -\# *Function: -\# Creates or modifies register #RLD. Reverses user supplied -\# lead above current baseline. -\# *Notes: -\# Requires a unit of measure. -\# -.MAC RLD END -. nr #RLD (\\$1) -. sp -\\n[#RLD]u -.END -\# -\# ALD/RLD STRINGS -\# --------------- -.ig -The strings \*[ALD.25]...\*[ALD12.75] and their corresponding -\*[RLD] forms have been left in for backward compatibility with -documents created using mom-1.1.3c or earlier. The prefered methods -of advancing and reversing on the page inline are \*[UP ] -and \*[DOWN ]. -.. -\# -.ds DOWN \v'\\$1' -.ds UP \v'-\\$1' -\# -.ds ALD.25 \v'.25p' -.ds ALD.5 \v'.5p' -.ds ALD.75 \v'.75p' -.ds ALD1 \v'1p' -.ds ALD1.25 \v'1.25p' -.ds ALD1.5 \v'1.5p' -.ds ALD1.75 \v'1.75p' -.ds ALD2 \v'2p' -.ds ALD2.25 \v'2.25p' -.ds ALD2.5 \v'2.5p' -.ds ALD2.75 \v'2.75p' -.ds ALD3 \v'3p' -.ds ALD3.25 \v'3.25p' -.ds ALD3.5 \v'3.5p' -.ds ALD3.75 \v'3.75p' -.ds ALD4 \v'4p' -.ds ALD4.25 \v'4.25p' -.ds ALD4.5 \v'4.5p' -.ds ALD4.75 \v'4.75p' -.ds ALD5 \v'5p' -.ds ALD5.25 \v'5.25p' -.ds ALD5.5 \v'5.5p' -.ds ALD5.75 \v'5.75p' -.ds ALD6 \v'6p' -.ds ALD6.25 \v'6.25p' -.ds ALD6.5 \v'6.5p' -.ds ALD6.75 \v'6.75p' -.ds ALD7 \v'7p' -.ds ALD7.25 \v'7.25p' -.ds ALD7.5 \v'7.5p' -.ds ALD7.75 \v'7.75p' -.ds ALD8 \v'8p' -.ds ALD8.25 \v'8.25p' -.ds ALD8.5 \v'8.5p' -.ds ALD8.75 \v'8.75p' -.ds ALD9 \v'9p' -.ds ALD9.25 \v'9.25p' -.ds ALD9.5 \v'9.5p' -.ds ALD9.75 \v'9.75p' -.ds ALD10 \v'10p' -.ds ALD10.25 \v'10.25p' -.ds ALD10.5 \v'10.5p' -.ds ALD10.75 \v'10.75p' -.ds ALD11 \v'11p' -.ds ALD11.25 \v'11.25p' -.ds ALD11.5 \v'11.5p' -.ds ALD11.75 \v'11.75p' -.ds ALD12 \v'12p' -.ds ALD12.25 \v'12.5p' -.ds ALD12.5 \v'12.5p' -.ds ALD12.75 \v'12.75p' -\# -.ds RLD.25 \v'-.25p' -.ds RLD.5 \v'-.5p' -.ds RLD.75 \v'-.75p' -.ds RLD1 \v'-1p' -.ds RLD1.25 \v'-1.25p' -.ds RLD1.5 \v'-1.5p' -.ds RLD1.75 \v'-1.75p' -.ds RLD2 \v'-2p' -.ds RLD2.25 \v'-2.25p' -.ds RLD2.5 \v'-2.5p' -.ds RLD2.75 \v'-2.75p' -.ds RLD3 \v'-3p' -.ds RLD3.25 \v'-3.25p' -.ds RLD3.5 \v'-3.5p' -.ds RLD3.75 \v'-3.75p' -.ds RLD4 \v'-4p' -.ds RLD4.25 \v'-4.25p' -.ds RLD4.5 \v'-4.5p' -.ds RLD4.75 \v'-4.75p' -.ds RLD5 \v'-5p' -.ds RLD5.25 \v'-5.25p' -.ds RLD5.5 \v'-5.5p' -.ds RLD5.75 \v'-5.75p' -.ds RLD6 \v'-6p' -.ds RLD6.25 \v'-6.25p' -.ds RLD6.5 \v'-6.5p' -.ds RLD6.75 \v'-6.75p' -.ds RLD7 \v'-7p' -.ds RLD7.25 \v'-7.25p' -.ds RLD7.5 \v'-7.5p' -.ds RLD7.75 \v'-7.75p' -.ds RLD8 \v'-8p' -.ds RLD8.25 \v'-8.25p' -.ds RLD8.5 \v'-8.5p' -.ds RLD8.75 \v'-8.75p' -.ds RLD9 \v'-9p' -.ds RLD9.25 \v'-9.25p' -.ds RLD9.5 \v'-9.5p' -.ds RLD9.75 \v'-9.75p' -.ds RLD10 \v'-10p' -.ds RLD10.25 \v'-10.25p' -.ds RLD10.5 \v'-10.5p' -.ds RLD10.75 \v'-10.75p' -.ds RLD11 \v'-11p' -.ds RLD11.25 \v'-11.25p' -.ds RLD11.5 \v'-11.5p' -.ds RLD11.75 \v'-11.75p' -.ds RLD12 \v'-12p' -.ds RLD12.25 \v'-12.5p' -.ds RLD12.5 \v'-12.5p' -.ds RLD12.75 \v'-12.75p' -\# -\# ===================================================================== -\# -\# +++REFINEMENTS+++ -\# -\# AUTOMATIC LIGATURES -\# ------------------- -\# *Arguments: -\# | -\# *Function: -\# Turns automatic ligature generation on or off. -\# *Notes: -\# Ligatures may be supplied manually with \(fi, \(fl, etc. -\# -.MAC LIGATURES END -. ie '\\$1'' \{\ -. lg -. nr #LIGATURES 1 -. \} -. el \{\ -. lg 0 -. nr #LIGATURES 0 -. \} -.END -\# -\# -\# SMARTQUOTES -\# ----------- -\# *Arguments: -\# [ ,, ] | [ << ] | [ >> ] | -\# or -\# [ DA | DE | ES | FR | IT | NL | NO | PT | SV ] | -\# *Function: -\# Turns smartquotes on (optionally with a quoting style from the -\# argument list, or off). -\# *Notes: -\# The " character is read outside the macro when mom is -\# processed. The strings for open/close ($QUOTE) are then -\# defined in the macro. -\# -\# (Note to myself: code for " is \N'34'.) -\# -.char " \\*[$QUOTE\\n[#OPEN_CLOSE]]\R'#OPEN_CLOSE (1-\\n[#OPEN_CLOSE])' -\# -.MAC SMARTQUOTES END -. rr #ARGS_TO_SQ -. ie '\\$1'' \{\ -. nr #OPEN_CLOSE 0 -. ds $QUOTE0 \\[lq] -. ds $QUOTE1 \\[rq] -. \} -. el \{\ -. if '\\$1',,' \{\ -. nr #ARGS_TO_SQ 1 -. ds $QUOTE0 \\[Bq] -. ds $QUOTE1 \\[lq] -. \} -. if '\\$1'<<' \{\ -. nr #ARGS_TO_SQ 1 -. ds $QUOTE0 \\[Fo] -. ds $QUOTE1 \\[Fc] -. \} -. if '\\$1'>>' \{\ -. nr #ARGS_TO_SQ 1 -. ds $QUOTE0 \\[Fc] -. ds $QUOTE1 \\[Fo] -. \} -. if '\\$1'DA' \{\ -. nr #ARGS_TO_SQ 1 -. ds $QUOTE0 \\[Fc] -. ds $QUOTE1 \\[Fo] -. \} -. if '\\$1'DE' \{\ -. nr #ARGS_TO_SQ 1 -. ds $QUOTE0 \\[Bq] -. ds $QUOTE1 \\[lq] -. \} -. if '\\$1'ES' \{\ -. nr #ARGS_TO_SQ 1 -. ds $QUOTE0 \\[lq] -. ds $QUOTE1 \\[rq] -. \} -. if '\\$1'FR' \{\ -. nr #ARGS_TO_SQ 1 -. ds $QUOTE0 \\[Fo]\\| -. ds $QUOTE1 \\|\\[Fc] -. \} -. if '\\$1'IT' \{\ -. nr #ARGS_TO_SQ 1 -. ds $QUOTE0 \\[Fo]\\| -. ds $QUOTE1 \\|\\[Fc] -. \} -. if '\\$1'NL' \{\ -. nr #ARGS_TO_SQ 1 -. ds $QUOTE0 \\[rq] -. ds $QUOTE1 \\[rq] -. \} -. if '\\$1'NO' \{\ -. nr #ARGS_TO_SQ 1 -. ds $QUOTE0 \\[Fo] -. ds $QUOTE1 \\[Fc] -. \} -. if '\\$1'PT' \{\ -. nr #ARGS_TO_SQ 1 -. ds $QUOTE0 \\[Fo] -. ds $QUOTE1 \\[Fc] -. \} -. if '\\$1'SV' \{\ -. nr #ARGS_TO_SQ 1 -. ds $QUOTE0 \\[Fc] -. ds $QUOTE1 \\[Fc] -. \} -. if !r#ARGS_TO_SQ \{\ -. ds $QUOTE0 \\[dq] -. ds $QUOTE1 \\[dq] -. \} -. \} -.END -\# -.ds $QUOTE0 \[dq] -.ds $QUOTE1 \[dq] -\# -\# Strings for foot and inch marks -\# -.ds FOOT \(fm -.ds INCH \(fm\(fm -\# -\# ===================================================================== -\# -\# +++LINE BREAKS+++ -\# -\# NO-SPACE BREAK -\# -------------- -\# *Argument: -\# -\# *Function: -\# Breaks a line without advancing. -\# *Notes: -\# EL is the mnemonic used on older, dedicated typesetting machines -\# to indicate "process the line, without advancing the galley -\# medium." It stands for End Line. -\# -\# The \c inline must be appended to the end of input lines when in -\# nofill mode; in fill modes, the \c inline must not be used. -\# -.MAC EL END -. TRAP OFF -. if \\n[#PSEUDO_FILL]=1 \& -. br -. sp -1v -. TRAP -.END -\# -\# An inline escape to accomplish the same thing. Actually -\# preferable, since it works with filled and non-filled copy and -\# doesn't require the user to remember to use (or not use) the \c. -\# -.ds B \h'|0'\c -\# -\# ===================================================================== -\# -\# +++FILLING/QUADDING/JUSTIFYING+++ -\# -\# JUSTIFY -\# ------- -\# *Argument: -\# -\# *Function: -\# Turns fill on and sets .ad to b. -\# *Notes: -\# Justifies text left and right. -\# -.MAC JUSTIFY END -. if \\n[#TAB_ACTIVE]=0 \{\ -. nr #QUAD 1 -. ds $RESTORE_QUAD_VALUE \\*[$QUAD_VALUE] -. \} -' ce 0 -. QUAD J -. if \\n[#PRINT_STYLE]=1 \{ .QUAD L \} -. nr #PSEUDO_FILL 0 -.END -\# -\# -\# QUAD -\# ---- -\# *Arguments: -\# L | LEFT | R | RIGHT | C | CENTER/CENTRE -\# *Function: -\# Turns fill on and sets .ad to l, r, or c. -\# *Notes: -\# Terminology is a problem here. Some people call quad left -\# left justified, flush left, or flush left/rag right (and the -\# reverse for quad right). Quad center is sometimes called rag -\# both. For our purposes, all "quad" modes mean that groff fill -\# mode is enabled. -\# -.MAC QUAD END -. ds $QUAD_VALUE \\$1 -. if \\n[#TAB_ACTIVE]=0 \{\ -. nr #QUAD 1 -. ds $RESTORE_QUAD_VALUE \\*[$QUAD_VALUE] -. \} -' ce 0 -' fi -. if '\\*[$QUAD_VALUE]'L' \{\ -. nr #JUSTIFY 0 -. ad l -. \} -. if '\\*[$QUAD_VALUE]'LEFT' \{\ -. nr #JUSTIFY 0 -. ad l -. \} -. if '\\*[$QUAD_VALUE]'R' \{\ -. nr #JUSTIFY 0 -. ad r -. \} -. if '\\*[$QUAD_VALUE]'RIGHT' \{\ -. nr #JUSTIFY 0 -. ad r -. \} -. if '\\*[$QUAD_VALUE]'C' \{\ -. nr #JUSTIFY 0 -. ad c -. \} -. if '\\*[$QUAD_VALUE]'CENTER' \{\ -. nr #JUSTIFY 0 -. ad c -. \} -. if '\\*[$QUAD_VALUE]'CENTRE' \{\ -. nr #JUSTIFY 0 -. ad c -. \} -. if '\\*[$QUAD_VALUE]'J' \{\ -. nr #JUSTIFY 1 -. ad b -. \} -. if '\\*[$QUAD_VALUE]'JUSTIFY' \{\ -. nr #JUSTIFY 1 -. ad b -. \} -. nr #PSEUDO_FILL 0 -.END -\# -\# -\# LEFT, RIGHT, AND CENTER -\# ----------------------- -\# -.ig -The purpose of these macros is to allow the user to enter lines of -text that will be quadded LRC *without* the user having to enter .BR -or .br between lines. For the sake of consistency, all three appear -to behave similarly (from the point of view of the user), although -the underlying primitives don't. For this reason, LEFT, RIGHT, and -CENTER must be followed by .QUAD [L R C J] or .JUSTIFY to restore -text to groff fill mode. -.. -\# -\# LEFT -\# ---- -\# *Argument: -\# -\# *Function: -\# Turns fill mode off. Allows user to quad lines left without -\# requiring the .BR or .br macro. -\# *Notes: -\# LEFT simply turns fill off. Lines that exceed the current LL will -\# not be broken, just continued (indefinitely) until a return is -\# encountered. Note that this behaviour differs from the RIGHT and -\# CENTER macros. -\# -.MAC LEFT END -. if \\n[#TAB_ACTIVE]=0 \{\ -. rr #QUAD -. ds $RESTORE_QUAD_VALUE LEFT -. \} -. ce 0 -. nf -. nr #PSEUDO_FILL 1 -.\" Fix for a little conflict with DOCTYPE LETTER -. if '\\n(.z'LETTERHEAD1' \{ .rr #DATE_FIRST \} -.END -\# -\# -\# RIGHT -\# ----- -\# *Argument: -\# -\# *Function: -\# Turns fill on. Allows user to quad lines right without -\# requiring the .BR or .br macro. -\# *Notes: -\# Lines that exceed the current LL will be broken, with the excess -\# text quadded right. -\# -.MAC RIGHT END -. if \\n[#TAB_ACTIVE]=0 \{\ -. rr #QUAD -. ds $RESTORE_QUAD_VALUE RIGHT -. \} -. fi -. rj 100000 -. nr #PSEUDO_FILL 1 -.END -\# -\# -\# CENTER -\# ------ -\# *Argument: -\# -\# *Function: -\# Turns fill on. Allows user to center lines without -\# requiring the .BR or .br macro. -\# *Notes: -\# Lines that exceed the current LL will be broken, with the excess -\# text centered. -\# -.MAC CENTER END -. if \\n[#TAB_ACTIVE]=0 \{\ -. rr #QUAD -. ds $RESTORE_QUAD_VALUE CENTER -. \} -. fi -. ce 100000 -. nr #PSEUDO_FILL 1 -.END -\# -\# ===================================================================== -\# -\# +++TABS+++ -\# -.ig -There are two different kinds of tabs available: typesetting tabs -and string tabs. - -Typesetting tabs are set with TAB_SET, which requires a tab number, -an indent (offset) from the left margin and a length (optionally -with a quad direction and an instruction to fill lines). After tabs -are set with TAB_SET, they are called with .TAB n, where "n" -corresponds to the number passed to TAB_SET as a valid tab number. - -String tabs allow the user to mark off tab positions inline. Tab -indents and lengths are calculated from the beginning and end -positions of the marks. Up to 19 string tabs may be created, -numbered 1-19. Once created, they are called with .TAB n, -just like typesetting tabs. - -Setting up string tabs is a two-step procedure. First, the user -enters an input line in which s/he wants to mark off string tabs. -The beginning of a tab is marked with \*[STn], where "n" is -the desired number of the tab. The end of the the tab is marked -with \*[STnX]. All ST's must have a matching STX. String tabs -may be nested. - -Next, the user invokes .ST n for every string tab defined, and -optionally passes quad information to it. That done, string tabs -can be called just like typesetting tabs. - -String tabs don't preview properly with gxditview. Use gv instead. -.. -\# -\# Strings for string tab inlines -\# ------------------------------ -\# -\# Initialize string tab markers numbered 1 to 19. -\# -.nr #LOOP 0 1 -.while \n+[#LOOP]<20 \{\ -. ds ST\n[#LOOP] \Ek[#ST\n[#LOOP]_OFFSET] -.\} -\# -.nr #LOOP 0 1 -.while \n+[#LOOP]<20 \{\ -. ds ST\n[#LOOP]X \Ek[#ST\n[#LOOP]_MARK] -.\} -.rr #LOOP -\# -\# -\# These are reserved ST numbers for internal use -.ds ST100 \Ek[#ST100_OFFSET] -.ds ST100X \Ek[#ST100_MARK] -.ds ST101 \Ek[#ST101_OFFSET] -.ds ST101X \Ek[#ST101_MARK] -\# -\# -\# QUAD AND SET STRING TABS -\# ------------------------ -\# *Arguments: -\# L | R | C | J [QUAD] -\# *Function: -\# Creates strings $ST<#>_QUAD_DIR and $ST<#>_FILL, then sets up a -\# tab based on the collected information. -\# *Notes: -\# Like TAB_SET, ST invoked without a quad direction will default to LEFT. -\# If lines should be filled and quadded, use the optional argument QUAD. -\# N.B. -- indents *must* be turned off before setting string tabs -\# inside .PAD -\# -.MAC ST END -. ds $ST\\$1_QUAD_DIR \\$2 -. if \\n[#NUM_ARGS]=3 \{\ -. ds $ST\\$1_FILL QUAD -. \} -. nr #ST\\$1_LENGTH \\n[#ST\\$1_MARK]-\\n[#ST\\$1_OFFSET] -. ie \\n[#IN_TAB] \{\ -. TAB_SET \\$1 \\n[#ST\\$1_OFFSET]u+\\n[#ST_OFFSET]u \\n[#ST\\$1_LENGTH]u \\*[$ST\\$1_QUAD_DIR] \\*[$ST\\$1_FILL] -. \} -. el \{\ -. TAB_SET \\$1 \\n[#ST\\$1_OFFSET]u \\n[#ST\\$1_LENGTH]u \\*[$ST\\$1_QUAD_DIR] \\*[$ST\\$1_FILL] -. \} -.END -\# -\# -\# TAB SET -\# ------- -\# *Arguments: -\# ident(ipPcm) length(ipPcm) [L | R | C | J [QUAD]] -\# *Function: -\# Creates macros TABn and TAB n, where "n" is any arbitrary number. -\# TABn is a typesetting tab (i.e. a tab defined as an indent -\# from the page left offset plus a line length.) -\# *Notes: -\# n = arbitrary digit to identify the tab -\# indent = indent from left margin; unit of measure required -\# length = length of tab (unit of measure required; can be -\# \w''u--if more than one word in string, surround -\# with double quotes "\w''" -\# LRCJ = quad for tab (left, right, center, justified) -\# If option QUAD afterwards is not given, quad is line for line -\# (no fill mode), meaning that there's no need for .BR or .br -\# between lines. -\# QUAD = fill tab (so it behaves as if .QUAD LRC or .JUSTIFY -\# had been given). -\# -\# N.B. -- indents *must* be turned off before setting tabs -\# -.ig -Examples: --------- - -.TAB_SET 1 2P+6p 12P C - -means "create a tab numbered 1 that starts 2 picas and 6 points from -the left margin, is 12 picas long, and centre each input line." - -.TAB_SET 1 2P+6P 12P C QUAD - -means exactly the same thing, except that input lines are joined and -the area delimted by the tab filled with centered text. - -TAB n can be called at any time after being set. - -Tabs are NOT columnar in behaviour. If the text inside a -tab runs to several lines, when you call the next tab a break -occurs, meaning that the new tab starts one line below the last -line in the previous tab. For columnar behaviour, you must -use the multi-column macros in addition to tabs. - -If you want tabs to line up bottom-line to bottom-line (most likely -single line tabs), use .TN (provided the tabs are numbered sequentially). -Otherwise, you must use .EL then .TAB if you want them to align. - -If you want to reset tabs, you must use .TQ before .TAB_SET. - -Note that indents are turned off automatically whenever a new -tab is called with TAB . - -Tabs themselves are user-invoked using the TAB macro with a numeric -argument, e.g. TAB 1. - -Generally, in order not to get confused, it's a good idea -to make sure all indents are off before setting tabs. -.. -\# -.MAC TAB_SET END -. br -. nr #TAB_NUMBER \\$1 -. ds $CURRENT_TAB \\n[#TAB_NUMBER] -. nr #TAB_OFFSET (\\$2) -. nr #TAB_LENGTH (\\$3) -. MAC TAB\\n[#TAB_NUMBER] DONE \"Define TAB macro -. if !\\\\n[#TB+]=1 \{ .br \} -. if \\\\n[#TB+]=1 \{\ -. EL -. vpt 0 -. rr #TB+ -. \} -. in 0 -. nr #TAB_ACTIVE 1 -. nr #CURRENT_TAB \\n[#TAB_NUMBER] -. ds $CURRENT_TAB \\*[$CURRENT_TAB] -. nr #TAB_OFFSET\\*[$CURRENT_TAB] \\n[#TAB_OFFSET] -. nr #ST_OFFSET \\n[#TAB_OFFSET] -. po \\\\n[#L_MARGIN]u+\\\\n[#TAB_OFFSET\\\\*[$CURRENT_TAB]]u -. ll \\n[#TAB_LENGTH]u -. ta \En(.lu -. ie '\\$5'QUAD' \{\ -. if '\\$4'L' \{ .QUAD L \} -. if '\\$4'R' \{ .QUAD R \} -. if '\\$4'C' \{ .QUAD C \} -. if '\\$4'J' \{ .JUSTIFY \} -. \} -. el \{\ -. if '\\$4'' \{ .LEFT \} -. if '\\$4'L' \{ .LEFT \} -. if '\\$4'R' \{ .RIGHT \} -. if '\\$4'C' \{ .CENTER \} -. if '\\$4'J' \{ .JUSTIFY \} -. \} -. if \\\\n[#TN]=1 \{\ -. TRAP -. rr #TN -. \} -.DONE -. rr #TAB_ACTIVE -.END -\# -\# -\# TAB -\# --- -\# *Arguments: -\# -\# *Function: -\# Moves to tab number passed as an argument. -\# -.MAC TAB END -. ds $TAB_NUMBER \\$1 -. TAB\\*[$TAB_NUMBER] -. nr #IN_TAB 1 -.END -\# -\# -\# TAB NEXT -\# -------- -\# *Argument: -\# -\# *Function: -\# Automagically moves to TAB on the same line as the last -\# line of the previous tab. -\# *Notes: -\# The \c inline must be appended to the end of input lines when in -\# nofill mode; in fill modes, the \c inline must not be used. -\# -.MAC TN END -. nr #TN 1 -. TRAP OFF -. sp -1v -. nr #NEXT_TAB \\n[#CURRENT_TAB]+1 -. TAB\\n[#NEXT_TAB] -. TRAP -.END -\# -\# An inline escape to accomplish the same thing. Actually -\# preferable, since it works with filled and non-filled copy and -\# doesn't require the user to remember to use (or not use) the \c. -\# -.ds TB+ "\c\\R'#TB+ 1'\\R'#TN 1'\\R'#NEXT_TAB \\n[#CURRENT_TAB]+1'\\*[TAB\\n[#NEXT_TAB]]\c -\# -\# TAB QUIT -\# -------- -\# *Argument: -\# -\# *Function: -\# Sets #TAB_ACTIVE to "0" (off). -\# Resets left margin to value in effect prior to tabs. -\# Resets line length to value in effect prior to tabs. -\# Checks #QUAD to see if we were in flush or quad mode -\# prior to tabs (0=off, 1=on). -\# Resets QUAD [ L|R|C ], LEFT, RIGHT, CENTER, or JUSTIFY -\# in effect prior to tabs. -\# *Notes: -\# TQ *must* come before setting any new tabs if you want the -\# tabs' indents measured from page left. Otherwise, the tabs' -\# indents are measured from the left margin of the tab you're -\# currently in. -\# -.MAC TQ END -. br -. rr #TAB_ACTIVE -. rr #IN_TAB -. po \\n[#L_MARGIN]u -. ll \\n[#L_LENGTH]u -. ta \\n(.lu -. ie \\n[#QUAD] \{\ -. ie '\\*[$RESTORE_QUAD_VALUE]'J' \{ .JUSTIFY \} -. el \{ .QUAD \\*[$RESTORE_QUAD_VALUE] \} -. \} -. el \{\ -. if '\\*[$RESTORE_QUAD_VALUE]'LEFT' \{ .LEFT \} -. if '\\*[$RESTORE_QUAD_VALUE]'RIGHT' \{ .RIGHT \} -. if '\\*[$RESTORE_QUAD_VALUE]'CENTER' \{ .CENTER \} -. \} -.END -\# -\# ==================================================================== -\# -\# COLOR HANDLING -\# ============== -\# -\# COLOR -\# ----- -\# *Arguments: -\# -\# *Function: -\# Allows the inline escape for setting color to be called -\# as a macro. -\# -.MAC COLOR END -.ie \\n(.u=1 \{\ -\c -\\*[\\$1]\c -.\} -.el \{ \\*[\\$1] \} -.END -\# -\# -\# NEWCOLOR -\# -------- -\# *Arguments: -\# [] -\# *Function: -\# Based on .defcolor, allows users to name and define colors using -\# one of the four color schemes rgb, cmy, cmyk and grey. The new -\# color is then defined as a string so that it can be called inline -\# with \*[COLORNAME] or with .COLOR. -\# *Notes: -\# With only two args, the default color scheme is rgb. -\# -\# It is highly recommended that users define new colors as -\# all-cap strings, to differentiate them from x colors, which must -\# be in lower case. -\# -.MAC NEWCOLOR END -. if \\n[#NUM_ARGS]=2 \{\ -. defcolor \\$1 rgb \\$2 -. \} -. if \\n[#NUM_ARGS]=3 \{\ -. if '\\$2'RGB' .ds $COLOR_SCHEME rgb -. if '\\$2'CYM' .ds $COLOR_SCHEME cym -. if '\\$2'CMYK' .ds $COLOR_SCHEME cmyk -. if '\\$2'GRAY' .ds $COLOR_SCHEME gray -. if '\\$2'GREY' .ds $COLOR_SCHEME gray -. defcolor \\$1 \\*[$COLOR_SCHEME] \\$3 -. \} -. ds \\$1 \\m[\\$1] -.END -\# -\# -\# XCOLOR -\# ------ -\# *Arguments: -\# [] -\# *Function: -\# Defines a string of x color name (i.e. a predefined x -\# color). If is given, creates a string of -\# that references the x color name of the first argument. -\# *Notes: -\# The color name must be a legal color name from rgb.txt, and -\# must be given entirely in lower case, all one word. -\# -.MAC XCOLOR END -. ds \\$1 \m[\\$1] -. if \\n[#NUM_ARGS]=2 .ds \\$2 \m[\\$1] -.END -\# -\# Pre-define xcolors black and white -\# -.ds black \m[black] -.ds BLACK \m[black] -.ds white \m[white] -.ds WHITE \m[WHITE] -\# -\# ===================================================================== -\# -\# +++MISCELLANEOUS USEFUL MACROS AND STRINGS+++ -\# -\# UNDERLINE -\# --------- -\# *Arguments: -\# | -\# *Function: -\# When on, underlines all letters, words, and digits in a passage, -\# ignoring punctuation and spaces. -\# *Notes: -\# Only for use when the font family is COURIER, to simulate -\# typewriter-style underlining of italic passages. -\# -.MAC UNDERLINE END -. ie '\\$1'' \{\ -. nr #UNDERLINE_ON 1 -. char A _A -. char B _B -. char C _C -. char D _D -. char E _E -. char F _F -. char G _G -. char H _H -. char I _I -. char J _J -. char K _K -. char L _L -. char M _M -. char N _N -. char O _O -. char P _P -. char Q _Q -. char R _R -. char S _S -. char T _T -. char U _U -. char V _V -. char W _W -. char X _X -. char Y _Y -. char Z _Z -. char \[`A] _\[`A] -. char \[^A] _\[^A] -. char \['A] _\['A] -. char \[:A] _\[:A] -. char \[oA] _\[oA] -. char \[~A] _\[~A] -. char \[AE] _\[AE] -. char \[`E] _\[`E] -. char \[^E] _\[^E] -. char \['E] _\['E] -. char \[:E] _\[:E] -. char \[`I] _\[`I] -. char \[^I] _\[^I] -. char \['I] _\['I] -. char \[:I] _\[:I] -. char \[`O] _\[`O] -. char \[^O] _\[^O] -. char \['O] _\['O] -. char \[:O] _\[:O] -. char \[~O] _\[~O] -. char \[/O] _\[/O] -. char \[`U] _\[`U] -. char \[^U] _\[^U] -. char \['U] _\['U] -. char \[:U] _\[:U] -. char \[,C] _\[,C] -. char \[-D] _\[-D] -. char \[~N] _\[~N] -. char \[TP] _\[TP] -. char \['Y] _\['Y] -. char \[:Y] _\[:Y] -. char a _a -. char b _b -. char c _c -. char d _d -. char e _e -. char f _f -. char g _g -. char h _h -. char i _i -. char j _j -. char k _k -. char l _l -. char m _m -. char n _n -. char o _o -. char p _p -. char q _q -. char r _r -. char s _s -. char t _t -. char u _u -. char v _v -. char w _w -. char x _x -. char y _y -. char z _z -. char \[`a] _\[`a] -. char \[^a] _\[^a] -. char \['a] _\['a] -. char \[:a] _\[:a] -. char \[oa] _\[oa] -. char \[~a] _\[~a] -. char \[ae] _\[ae] -. char \[`e] _\[`e] -. char \[^e] _\[^e] -. char \['e] _\['e] -. char \[:e] _\[:e] -. char \[`i] _\[`i] -. char \[^i] _\[^i] -. char \['i] _\['i] -. char \[:i] _\[:i] -. char \[`o] _\[`o] -. char \[^o] _\[^o] -. char \['o] _\['o] -. char \[:o] _\[:o] -. char \[~o] _\[~o] -. char \[/o] _\[/o] -. char \[`u] _\[`u] -. char \[^u] _\[^u] -. char \['u] _\['u] -. char \[:u] _\[:u] -. char \[,c] _\[,c] -. char \[Sd] _\[Sd] -. char \[~n] _\[~n] -. char \[Tp] _\[Tp] -. char \['y] _\['y] -. char \[:y] _\[:y] -. char \[ss] _\[ss] -. char ' _' -. char 1 _1 -. char 2 _2 -. char 3 _3 -. char 4 _4 -. char 5 _5 -. char 6 _6 -. char 7 _7 -. char 8 _8 -. char 9 _9 -. char 0 _0 -. \} -. el \{\ -. nr #UNDERLINE_ON 0 -. rchar A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \ - a b c d e f g h i j k l m n o p q r s t u v w x y z \ - \[`A] \[^A] \['A] \[:A] \[oA] \[~A] \[AE] \[`E] \[^E] \['E] \[:E] \ - \[`I] \[^I] \['I] \[:I] \[`O] \[^O] \['O] \[:O] \[~O] \[/O] \[`U] \ - \[^U] \['U] \[:U] \[,C] \[-D] \[~N] \[TP] \['Y] \[:Y] \ - \[`a] \[^a] \['a] \[:a] \[oa] \[~a] \[ae] \[`e] \[^e] \['e] \[:e] \[`i] \ - \[^i] \['i] \[:i] \[`o] \[^o] \['o] \[:o] \[~o] \[/o] \[`u] \[^u] \['u] \ - \[:u] \[,c] \[Sd] \[~n] \[Tp] \['y] \[:y] \[ss] \ - ' 1 2 3 4 5 6 7 8 9 0 -. \} -.END -\# -\# -\# UL/ULX -\# ------ -\# *Arguments: -\# -\# *Function: -\# Underscores all letters, words, and digits in a passage, -\# ignoring punctuation and spaces. -\# *Notes: -\# Intended to be called with inline escapes \*[UL] (underline -\# on) and \*[ULX] (underline off). Only works when the font family -\# is COURIER, to simulate typewriter-style underlining of italic -\# passages. -\# -.MAC UL END -\c\R'#UNDERLINE_ON 1' -. char A _A -. char B _B -. char C _C -. char D _D -. char E _E -. char F _F -. char G _G -. char H _H -. char I _I -. char J _J -. char K _K -. char L _L -. char M _M -. char N _N -. char O _O -. char P _P -. char Q _Q -. char R _R -. char S _S -. char T _T -. char U _U -. char V _V -. char W _W -. char X _X -. char Y _Y -. char Z _Z -. char \[`A] _\[`A] -. char \[^A] _\[^A] -. char \['A] _\['A] -. char \[:A] _\[:A] -. char \[oA] _\[oA] -. char \[~A] _\[~A] -. char \[AE] _\[AE] -. char \[`E] _\[`E] -. char \[^E] _\[^E] -. char \['E] _\['E] -. char \[:E] _\[:E] -. char \[`I] _\[`I] -. char \[^I] _\[^I] -. char \['I] _\['I] -. char \[:I] _\[:I] -. char \[`O] _\[`O] -. char \[^O] _\[^O] -. char \['O] _\['O] -. char \[:O] _\[:O] -. char \[~O] _\[~O] -. char \[/O] _\[/O] -. char \[`U] _\[`U] -. char \[^U] _\[^U] -. char \['U] _\['U] -. char \[:U] _\[:U] -. char \[,C] _\[,C] -. char \[-D] _\[-D] -. char \[~N] _\[~N] -. char \[TP] _\[TP] -. char \['Y] _\['Y] -. char \[:Y] _\[:Y] -. char a _a -. char b _b -. char c _c -. char d _d -. char e _e -. char f _f -. char g _g -. char h _h -. char i _i -. char j _j -. char k _k -. char l _l -. char m _m -. char n _n -. char o _o -. char p _p -. char q _q -. char r _r -. char s _s -. char t _t -. char u _u -. char v _v -. char w _w -. char x _x -. char y _y -. char z _z -. char \[`a] _\[`a] -. char \[^a] _\[^a] -. char \['a] _\['a] -. char \[:a] _\[:a] -. char \[oa] _\[oa] -. char \[~a] _\[~a] -. char \[ae] _\[ae] -. char \[`e] _\[`e] -. char \[^e] _\[^e] -. char \['e] _\['e] -. char \[:e] _\[:e] -. char \[`i] _\[`i] -. char \[^i] _\[^i] -. char \['i] _\['i] -. char \[:i] _\[:i] -. char \[`o] _\[`o] -. char \[^o] _\[^o] -. char \['o] _\['o] -. char \[:o] _\[:o] -. char \[~o] _\[~o] -. char \[/o] _\[/o] -. char \[`u] _\[`u] -. char \[^u] _\[^u] -. char \['u] _\['u] -. char \[:u] _\[:u] -. char \[,c] _\[,c] -. char \[Sd] _\[Sd] -. char \[~n] _\[~n] -. char \[Tp] _\[Tp] -. char \['y] _\['y] -. char \[:y] _\[:y] -. char \[ss] _\[ss] -. char ' _' -. char 1 _1 -. char 2 _2 -. char 3 _3 -. char 4 _4 -. char 5 _5 -. char 6 _6 -. char 7 _7 -. char 8 _8 -. char 9 _9 -. char 0 _0 -.END -\# -\# -.MAC ULX END -\c\R'#UNDERLINE_ON 0' -. rchar A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \ - a b c d e f g h i j k l m n o p q r s t u v w x y z \ - \[`A] \[^A] \['A] \[:A] \[oA] \[~A] \[AE] \[`E] \[^E] \['E] \[:E] \ - \[`I] \[^I] \['I] \[:I] \[`O] \[^O] \['O] \[:O] \[~O] \[/O] \[`U] \ - \[^U] \['U] \[:U] \[,C] \[-D] \[~N] \[TP] \['Y] \[:Y] \ - \[`a] \[^a] \['a] \[:a] \[oa] \[~a] \[ae] \[`e] \[^e] \['e] \[:e] \[`i] \ - \[^i] \['i] \[:i] \[`o] \[^o] \['o] \[:o] \[~o] \[/o] \[`u] \[^u] \['u] \ - \[:u] \[,c] \[Sd] \[~n] \[Tp] \['y] \[:y] \[ss] \ - ' 1 2 3 4 5 6 7 8 9 0 -.END -\# -\# -\# UNDERSCORE -\# ---------- -\# *Arguments: -\# [points below baseline] "text" -\# *Function: -\# Places an underscore 2 points under the string if no lead given, -\# otherwise places underscore under string by user specified amount. -\# *Notes: -\# When using this macro, the string to be underscored must begin -\# with double-quotes ("), regardless of whether it's the sole -\# argument or the second. -\# E.g.: -\# .UNDERSCORE "Text to be underscored -\# or -\# .UNDERSCORE 2p "Text to be underscored -\# -\# All text is underscored (including punctuation and spaces). -\# This is the primary difference between UNDERLINE and UNDERSCORE, -\# aside from the fact the UNDERLINE only works with Courier. -\# -\# UNDERSCORE does not work across line breaks. Each line of -\# text must be entered separately with UNDERSCORE. If the -\# UNDERSCORE begins in the middle of a line and crosses over a -\# break, the portion before the break must be entered in its own -\# UNDERSCORE, as must the portion that comes after the break. -\# -.MAC UNDERSCORE END -. nr #RESTORE_PT_SIZE \\n[#PT_SIZE] -. ie \\n[#NUM_ARGS]=1 \{ \\$1\\s(12\\v'+2p'\\l'|0'\\v'-2p'\\s[\\n[#RESTORE_PT_SIZE]u] \} -. el \{ \\$2\\s(12\\v'+(\\$1)'\\l'|0'\\v'-(\\$1)'\\s[\\n[#RESTORE_PT_SIZE]u] \} -. rr #RESTORE_PT_SIZE -.END -\# -\# -\# DOUBLE UNDERSCORE -\# ----------------- -\# *Arguments: -\# [points below baseline] [points distance between rules] "text" -\# *Function: -\# Same as UNDERSCORE, except it produces a double underscore. The default -\# distance between the rules is 2 points. -\# *Notes: -\# The same double-quote requirement as UNDERSCORE. -\# -.MAC UNDERSCORE2 END -. nr #RESTORE_PT_SIZE \\n[#PT_SIZE] -. if \\n[#NUM_ARGS]=1 \{\ -. PRINT \\$1\\s(12\\v'+2p'\\l'|0'\\v'+2p'\\l'|0'\\v'-4p'\\s[\\n[#RESTORE_PT_SIZE]u] -. \} -. if \\n[#NUM_ARGS]=2 \{\ -. PRINT \\$2\\s(12\\v'+\\$1'\\l'|0'\\v'+2p'\\l'|0'\\v'-(2p+\\$1)'\\s[\\n[#RESTORE_PT_SIZE]u] -. \} -. if \\n[#NUM_ARGS]=3 \{\ -. PRINT \\$3\\s(12\\v'+\\$1'\\l'|0'\\v'+\\$2'\\l'|0'\\v'-(\\$2+\\$1)'\\s[\\n[#RESTORE_PT_SIZE]u] -. \} -. rr #RESTORE_PT_SIZE -.END -\# -\# -\# SUPERSCRIPT INLINES -\# ------------------- -\# *Function: -\# Prints everything after invocation as superscript. -\# *Notes: -\# \*[SUP] and \*[SUPX] turn superscript on and off respectively. -\# If running type is pseudo-condensed/expanded, invoke the superscript -\# strings as \*[CONDSUP] or \*[EXTSUP] and turn off with \*[CONDSUPX] -\# and \*[EXTSUPX] respectively. -\# -.ds SUP \ -\R'#PT_SIZE_IN_UNITS \En[.ps]'\ -\R'#SUP_PT_SIZE \En[#PT_SIZE_IN_UNITS]u*6u/10u'\ -\s[\En[#PT_SIZE_IN_UNITS]u]\v'-.26m'\s[\En[#SUP_PT_SIZE]u] -\# -.ds SUPX \s[\En[#PT_SIZE_IN_UNITS]u]\v'.26m' -\# -.ds CONDSUP \ -\R'#PT_SIZE_IN_UNITS \En[.ps]'\ -\R'#SUP_PT_SIZE \En[#PT_SIZE_IN_UNITS]u*6u/10u'\ -\s[\En[#PT_SIZE_IN_UNITS]u]\v'-.3m'\s[\En[#SUP_PT_SIZE]u]\E*[COND_FOR_SUP] -\# -.ds CONDSUPX \s[\En[#PT_SIZE_IN_UNITS]u]\v'.3m'\E*[COND] -\# -.ds EXTSUP \ -\R'#PT_SIZE_IN_UNITS \En[.ps]'\ -\R'#SUP_PT_SIZE \En[#PT_SIZE_IN_UNITS]u*6u/10u'\ -\s[\En[#PT_SIZE_IN_UNITS]u]\v'-.3m'\s[\En[#SUP_PT_SIZE]u]\E*[EXT_FOR_SUP] -\# -.ds EXTSUPX \s[\En[#PT_SIZE_IN_UNITS]u]\v'.3m'\E*[EXT] -\# -\# -\# SLANT -\# ----- -\# -\# SETSLANT -\# -------- -\# *Arguments: -\# | RESET -\# *Function: -\# Modifies register #DEGREES for use with \*[SLANT], or resets -\# it to the default. Defines string \*[SLANTX] -\# *Notes: -\# \*[SLANT] permits pseudo-italicizing of a font in cases where -\# no italic font exists in a particular family. -\# -\# Default # of degrees is 15. -\# -\# Do not use unit of measure with arg to SETSLANT. -\# -\# It may be necessary to adjust the spacing on either side of -\# [SLANT] and [SLANTX]. -\# -\# In docs, SLANT carries over from para to para. -\# -.nr #DEGREES 15 -.ds SLANT \ER'#SLANT_ON 1'\ES'\En[#DEGREES]' -.ds SLANTX \ER'#SLANT_ON 0'\ES'0' -\# -.MAC SETSLANT END -. ie '\\$1'RESET' \{\ -. nr #DEGREES 15 -. if \\n[#PRINT_STYLE]=1 \{\ -. if \\n[#UNDERLINE_SLANT] \{ .return \} -. \} -. ds SLANT \ER'#SLANT_ON 1'\ES'\En[#DEGREES]' -. \} -. el \{\ -. nr #DEGREES \\$1 -. if \\n[#PRINT_STYLE]=1 \{\ -. if \\n[#UNDERLINE_SLANT] \{ .return \} -. \} -. ds SLANT \ER'#SLANT_ON 1'\ES'\En[#DEGREES]' -. \} -. ds SLANTX \ER'#SLANT_ON 0'\ES'0' -.END -\# -\# -\# BOLDER -\# ------ -\# -\# SETBOLDER -\# --------- -\# *Arguments: -\# | RESET -\# *Function: -\# Modifies register #BOLDER_UNITS for use with \*[BOLDER], or resets -\# it to the default 700 units. -\# *Notes: -\# \*[BOLDER] allows pseudo-emboldening of a font where no bold -\# font exists in a particular family. -\# -\# Default for SETBOLDER is 700 units. Do not use unit of measure -\# with arg to SETBOLDER. -\# -.nr #BOLDER_UNITS 700 -\# -.MAC SETBOLDER END -. if \\n[#IGNORE]=1 \{ .return \} -. ie '\\$1'RESET' \{ .nr #BOLDER_UNITS 700 \} -. el \{ .nr #BOLDER_UNITS \\$1 \} -.END -\# -\# -.MAC BOLDER END -\c -.bd \\n(.f \\n[#BOLDER_UNITS] -.END -\# -\# -.MAC BOLDERX END -\c -.bd \\n(.f -.END -\# -\# +++CONDENSE/EXTEND+++ -\# -\# CONDENSE/EXTEND -\# --------------- -\# *Arguments: -\# -\# *Function: -\# Stores current point size in z's in #PT_SIZE_IN_UNITS, figures out -\# new point size (for character width) from arg, and defines string -\# COND or EXT, which set the type size to the new character width, -\# and sets the height of type to the value stored in CURRENT_PT_SIZE -\# *Notes: -\# CONDENSE_OR_EXTEND is invoked from the aliases -\# CONDENSE and EXTEND. CONDENSE implies <100, EXTEND -\# implies >100. Do not use a percent sign in the argument. -\# -\# There is no default setting for CONDENSE or EXTEND. -\# 80 is a good approximation of condensed type, 120 is okay -\# for extended. -\# -\# The value set by CONDENSE or EXTEND applies to all -\# subsequent \*[COND] or \*[EXT] escapes until a new value is set. -\# -\# \*[COND] or \*[EXT] must be turned off before all changes of point -\# size and reinvoked afterwards (if so desired). This refers to -\# changes of point size via control lines AND with via inlines. -\# -.MAC CONDENSE_OR_EXTEND END -. if '\\$0'CONDENSE' \{\ -. ds $COND_PERCENT \\$1 -. if \\n[#PRINT_STYLE]=1 \{\ -. rm $COND_PERCENT -. ds $COND_PERCENT 100 -. \} -. ds COND \ -\R'#PT_SIZE_IN_UNITS \En[.ps]'\ -\R'#CONDENSE 1'\ -\R'#COND_WIDTH (\En[#PT_SIZE_IN_UNITS]u*\E*[$COND_PERCENT]u)/100'\ -\Es[\En[#COND_WIDTH]u]\EH'\En[#PT_SIZE_IN_UNITS]u' -. ds COND_FOR_SUP \ -\R'#COND_WIDTH (\En[#SUP_PT_SIZE]u*\E*[$COND_PERCENT]u)/100'\ -\Es[\En[#COND_WIDTH]u]\H'\En[#SUP_PT_SIZE]u' -. \} -. if '\\$0'EXTEND' \{\ -. ds $EXT_PERCENT \\$1 -. if \\n[#PRINT_STYLE]=1 \{\ -. rm $EXT_PERCENT -. ds $EXT_PERCENT 100 -. \} -. ds EXT \ -\R'#PT_SIZE_IN_UNITS \En[.ps]'\ -\R'#EXTEND 1'\ -\R'#EXT_WIDTH (\En[#PT_SIZE_IN_UNITS]u*\E*[$EXT_PERCENT]u)/100'\ -\Es[\En[#EXT_WIDTH]u]\EH'\En[#PT_SIZE_IN_UNITS]u' -. ds EXT_FOR_SUP \ -\R'#EXT_WIDTH (\En[#SUP_PT_SIZE]u*\E*[$EXT_PERCENT]u)/100'\ -\Es[\En[#EXT_WIDTH]u]\H'\En[#EXT_PT_SIZE]u' -. \} -.END -\# -.ds CONDX \ER'#CONDENSE 0'\Es0\R'#PT_SIZE_IN_UNITS \En[.ps]'\H'\En[#PT_SIZE_IN_UNITS]u' -.ds EXTX \ER'#EXTEND 0'\Es0\R'#PT_SIZE_IN_UNITS \En[.ps]'\H'\En[#PT_SIZE_IN_UNITS]u' -\# -\# -\# +++PAD LINES+++ (insert space) -\# -\# PAD MARKER -\# ---------- -\# *Arguments: -\# -\# *Function: -\# Defines string $PAD_MARKER, used in PAD -\# *Notes: -\# $PAD_MARKER is normally # (the pound sign). -\# -.MAC PAD_MARKER END -. ds $PAD_MARKER \\$1 -.END -\# -\# -\# PAD -\# --- -\# *Argments: -\# "" -\# *Function: -\# Defines and redefines padding character (default=pound sign -\# unless padding character has been set with PAD_MARKER) -\# several times so that when the string is output at the end -\# of the macro, every # has been converted to an equal-sized -\# amount of padding (blank space) on a line. # is equivalent to -\# CompuGraphic's old . -\# *Notes: -\# String tabs may be marked off during PAD. -\# -.MAC PAD END -. if \\n(.u=1 \{ .nr #FILL_MODE 1 \} -. nf -. if !d$PAD_MARKER .ds $PAD_MARKER # -. char \\*[$PAD_MARKER] \R'#PAD_COUNT \En[#PAD_COUNT]+1' -. ds $FAMILY_FOR_PAD \\n[.fam] -\#. fp \\n[.fp] \\*[$FONT] -. fp \\n[.fp] \\n[.sty] -. ds $FONT_FOR_PAD \\*[$FONT] -. nr #SIZE_FOR_PAD \\n[.ps] -. ds $PAD_STRING \\$1 -. as $PAD_STRING \Ekp -. di PAD_STRING -. fam \\*[$FAMILY_FOR_PAD] -\\f[\\*[$FONT_FOR_PAD]]\\s[\\n[#SIZE_FOR_PAD]u]\\*[$PAD_STRING] -. br -. di -. char \\*[$PAD_MARKER] \R'#SPACE_TO_END \En(.l-\Enp'\R'#PAD_SPACE \En[#SPACE_TO_END]/\En[#PAD_COUNT]' -. di PAD_STRING -. fam \\*[$FAMILY_FOR_PAD] -\\f]\\*[$FONT_FOR_PAD]]\\s[\\n[#SIZE_FOR_PAD]u]\\*[$PAD_STRING] -. br -. di -. char \\*[$PAD_MARKER] \h'\En[#PAD_SPACE]u' -. ie \\n[#SILENT] \{\ -. SILENT -. fam \\*[$FAMILY_FOR_PAD] -\\f[\\*[$FONT_FOR_PAD]]\\s[\\n[#SIZE_FOR_PAD]u]\\*[$PAD_STRING] -. br -. SILENT OFF -. \} -. el \{\ -. fam \\*[$FAMILY_FOR_PAD] -\\f[\\*[$FONT_FOR_PAD]]\\s[\\n[#SIZE_FOR_PAD]u]\\*[$PAD_STRING] -. br -. \} -. if \\n[#FILL_MODE]=1 \{\ -. fi -. rr #FILL_MODE -. \} -. rr #PAD_COUNT -. rr #SPACE_TO_END -. rr #PAD_SPACE -. rm $PAD_STRING -. rm PAD_STRING -. rchar # -. if '\\$2'NOBREAK' \{\ -. TRAP OFF -. EOL -. TRAP -. \} -.END -\# -\# -\# +++LEADERS+++ -\# -.ig -The leader mechanism is primitive, but it works. Basically, every -macro in this set that includes a line length also sets a single -groff tab stop at the right hand end of the line. That way, -whenever Ctrl-A is invoked (always at the end of an input line), -leader of the correct length gets deposited. Ctrl-A is accessed by -the string LEADER (i.e. inline, as \*[LEADER]). Leaders within tabs -get their length from the tab line length. -.. -\# -\# SET LEADER CHARACTER -\# -------------------- -\# *Arguments: -\# -\# *Function: -\# Set leader character. -\# -.MAC LEADER_CHARACTER END -. lc \\$1 -.END -\# -.ds LEADER  -\# -\# +++DROP CAPS+++ -\# -\# DROP CAP FAMILY -\# --------------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies string $DC_FAM. -\# -.MAC DROPCAP_FAMILY END -. ds $DC_FAM \\$1 -.END -\# -\# -\# DROP CAP FONT -\# ------------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies string $DC_FT. -\# -.MAC DROPCAP_FONT END -. ds $DC_FT \\$1 -.END -\# -\# -\# DROPCAP COLOR -\# ------------- -\# *Arguments: -\# -\# *Function: -\# Defines string $DC_COLOR to argument. -\# *Notes: -\# User must define an XCOLOR or NEWCOLOR before using -\# DC_COLOR. -\# -.MAC DROPCAP_COLOR END -. if \\n[#PRINT_STYLE]=1 \{ .return \} -. nr #DC_COLOR 1 -. ds $DC_COLOR \\$1 -.END -\# -\# -\# DROP CAP GUTTER -\# --------------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies register #DC_GUT. -\# *Notes: -\# Requires unit of measure. Default is 3p. -\# -.MAC DROPCAP_GUTTER END -. nr #DC_GUT (\\$1) -.END -\# -\# -\# DROP CAP ADJUST -\# --------------- -\# *Argument: -\# <+|- # of points to in/decrease point size of drop cap letter> -\# *Function: -\# Creates or modifies string $DC_ADJUST. -\# *Notes: -\# Despite its best efforts, DROPCAP doesn't always get the point -\# size of the drop cap critically perfect. DROPCAP_ADJUST lets -\# the user add or subtract points (or fractions of points) to -\# get the size right. -\# -\# Requires the + or - sign. -\# -.MAC DROPCAP_ADJUST END -. ds $DC_ADJUST \\$1 -.END -\# -\# -\# DROP CAP -\# -------- -\# *Arguments: -\# <# of lines> [COND <% to condense> | EXT <% to extend>] -\# *Function: -\# Calculates point size of dropcap based on # of lines passed as -\# arg 2. Sets indent for text based on dropcap width+gutter. -\# Advances and prints dropcap; reverses and prints indented text -\# to bottom of dropcap, then resets indent to left margin (plus -\# any indent that was in effect prior to invoking DROPCAP). -\# *Notes: -\# Drop caps put a strain on on resource-challenged systems. -\# -\# Drop caps when using the doc processing macro PP only work with -\# initial paragraphs (i.e. at doc start, or after heads), only when -\# DROPCAPS comes immediately after PP, and only when the PRINTSTYLE -\# is TYPESET. If these conditions aren't met, DROPCAPS is silently -\# ignored. -\# -\# The COND or EXT argument are processed separately from all -\# other COND or EXT inlines or macros, hence passing COND or -\# EXT has no effect on running type. -\# -.MAC DROPCAP END -. if #IGNORE \{ .return \} -. br -. if \\n[#DOCS] \{\ -. if \\n[#PRINT_STYLE]=1 \{ .return \} -. if \\n[#PRINT_STYLE]=2 \{\ -. if \\n[#PP_STYLE]=2 \{ .return \} -. if \\n[#PP]>1 \{ .return \} -. ti 0 -. \} -. \} -. ds $DROPCAP \\$1 -. nr #DC_LINES \\$2-1 -. if \\n[#CONDENSE]=1 \{\ -. ds $RESTORE_COND \\*[$COND_PERCENT] -\\*[CONDX] -. nr #CONDENSE_WAS_ON 1 -. \} -. if \\n[#EXTEND]=1 \{\ -. ds $RESTORE_EXT \\*[$EXT_PERCENT] -\\*[EXTX] -. nr #EXTEND_WAS_ON 1 -. \} -. if '\\$3'COND' \{ .CONDENSE \\$4 \} -. if '\\$3'EXT' \{ .EXTEND \\$4 \} -. if !r#DC_GUT \{ .nr #DC_GUT (3p) \} -. ds $RESTORE_FAM \\n[.fam] -. ds $RESTORE_FT \\*[$FONT] -. nr #RESTORE_PT_SIZE \\n[#PT_SIZE] -. nr #RESTORE_INDENT \\n(.i -. SIZESPECS -. nr #DC_HEIGHT \\n[#DC_LINES]*\\n[#LEAD]+\\n[#CAP_HEIGHT] -. ie !d$DC_FAM \{ .FAM \\n[.fam] \} -. el \{ .FAM \\*[$DC_FAM] \} -. ie !d$DC_FT \{ .FT \\*[$FONT] \} -. el \{ .FT \\*[$DC_FT] \} -. while \\n[#GET_DC_HEIGHT]<\\n[#DC_HEIGHT] \{\ -. ps \\n[#PT_SIZE]u+100u -. SIZESPECS -. nr #GET_DC_HEIGHT \\n[#CAP_HEIGHT] -.\} -. if d$DC_ADJUST \{ .ps \\*[$DC_ADJUST]p \} -. mk x -. sp \\n[#DC_LINES]v -. ie \\n[#DC_COLOR]=1 \{\ -. ie !'\\$3'' \{\ -. ie '\\$3'COND' \{ .PRINT \m[\\*[$DC_COLOR]]\\*[COND]\\*[$DROPCAP]\\*[CONDX]\m[] \} -. el \{ .PRINT \m[\\*[$DC_COLOR]]\\*[EXT]\\*[$DROPCAP]\\*[EXTX]\m[] \} -. \} -. el \{ .PRINT \m[\\*[$DC_COLOR]]\\*[$DROPCAP]\m[] \} -. \} -. el \{\ -. ie !'\\$3'' \{\ -. ie '\\$3'COND' \{ .PRINT \\*[COND]\\*[$DROPCAP]\\*[CONDX] \} -. el \{ .PRINT \\*[EXT]\\*[$DROPCAP]\\*[EXTX] \} -. \} -. el \{ .PRINT \m[\\*[$DC_COLOR]]\\*[$DROPCAP]\m[] \} -. \} -. if '\\$3'COND' \{ \E*[COND] \} -. if '\\$3'EXT' \{ \E*[EXT] \} -. ie \\n(.i \{ .in +\w'\\*[$DROPCAP]'u+\\n[#DC_GUT]u \} -. el \{ .in \w'\\*[$DROPCAP]'u+\\n[#DC_GUT]u \} -. if '\\$3'COND' \{ \E*[CONDX]\c \} -. if '\\$3'EXT' \{ \E*[EXTX]\c \} -. rt \\nxu -. FAM \\*[$RESTORE_FAM] -. FT \\*[$RESTORE_FT] -. ps \\n[#RESTORE_PT_SIZE]u -. if \\n[#CONDENSE_WAS_ON] \{\ -. CONDENSE \\*[$RESTORE_COND] -\\*[COND]\c -. \} -. if \\n[#EXTEND_WAS_ON] \{\ -. EXTEND \\*[$RESTORE_EXT] -\\*[EXT]\c -. \} -. ie \\n(.u \{ .wh \\n(.du+\\n[#DC_HEIGHT]u-1v DROPCAP_OFF \} -. el \{ .wh \\n(.du+\\n[#DC_HEIGHT]u DROPCAP_OFF \} -. rr #CONDENSE_WAS_ON -. rr #EXTEND_WAS_ON -. rm $DROPCAP -. rr #DC_LINES -. rm $RESTORE_COND -. rm $RESTORE_EXT -. rm $RESTORE_FAM -. rm $RESTORE_FT -. rr #RESTORE_PT_SIZE -. rr #RESTORE_INDENT -. rr #DC_HEIGHT -. rr #GET_DC_HEIGHT -. rr x -.END -\# -.MAC DROPCAP_OFF END -' in \\n[#RESTORE_INDENT]u -.END -\# -\# -\# RULE -\# ---- -\# *Argument: -\# -\# *Function: -\# Draws a rule the length of the current measure. -\# *Notes: -\# -.MAC RULE END -\c -. EL -. if \\n(.u=1 \{\ -. nr #FILL_WAS_ON 1 -. ds $CURRENT_QUAD \\*[$QUAD_VALUE] -. nf -. \} -. ie \\n[#INDENT_ACTIVE] \{\ -. nr #RESTORE_L_LENGTH \\n(.l -. if \\n[#INDENT_BOTH_ACTIVE] \{ .ll \\n(.lu-\\n[#BL_INDENT]u \} -. if \\n[#INDENT_LEFT_ACTIVE] \{ .ll \\n(.lu-\\n[#L_INDENT]u \} -. PRINT \El'\En(.lu'\c -. ll \\n[#RESTORE_L_LENGTH]u -. rr #RESTORE_L_LENGTH -. \} -. el \{\ -. PRINT \El'\En(.lu'\c -. \} -. if r#FILL_WAS_ON \{\ -. fi -. rr #FILL_WAS_ON -. QUAD \\*[$CURRENT_QUAD] -. rm $CURRENT_QUAD -. \} -. EL -.END -\# -\# ===================================================================== -\# -\# +++WORD AND SENTENCE SPACING+++ -\# -\# WORD SPACE CONTROL -\# ------------------ -\# *Argument: -\# <+|->wordspace | DEFAULT -\# *Function: -\# Increases or decreases interword space by user supplied amount. -\# If DEFAULT, value is set to 12 (groff default). -\# *Notes: -\# $WS_CONSTANT is the groff default word space. -\# $WS_VAR is the user supplied amount by which to in/decrease word space. -\# $WS is a concatenation of WS_CONSTANT and WS_VAR. -\# -\# Because the user supplied value requires a literal + or - sign, -\# the macro argument is stored in a string. -\# -\# \n[.sss] holds the current sentence space value. -\# -.MAC WS END -. ds $WS_CONSTANT 12 -. ds $WS_VAR \\$1 -. ie '\\$1'DEFAULT' .ds $WS_VAR +0 -. el .ds $WS (\\*[$WS_CONSTANT]\\*[$WS_VAR]) -. ie \\n[.sss]=12 \{ .ss \\*[$WS] 12 \} -. el \{\ -. ss \\*[$WS] (\\*[$WS]\\*[$SS_VAR]) -. SS \\*[$SS_VAR] -. \} -.END -\# -\# -\# SENTENCE SPACE CONTROL -\# ---------------------- -\# *Argument: -\# <+-sentencespace> | 0 | DEFAULT -\# *Function: -\# Increases or decreases sentence space by user supplied amount. -\# If 0, sentence spaces are ignored. If DEFAULT, value is -\# set to 12 (groff default). -\# *Notes: -\# Because the user supplied value requires a literal + or - sign, -\# the macro argument is stored in a string. -\# -\# Sentence space applies only to input where sentences are separated -\# by two spaces (and/or, in fill mode [FLUSH L|R|C or JUSTIFY], an EOL). -\# Changing .SS when sentences are separated by only one space has -\# no effect on the space between sentences. -\# -\# \n[.ss] holds the current wordspace value. -\# \n[.sss] holds the current sentence space value. -\# -.MAC SS END -. ie '\\$1'0' \{ .ss \\n[.ss] (\\n[.ss]-\\n[.ss]) \} -. el \{\ -. ie '\\$1'DEFAULT' \{ .ss \\n[.ss] \} -. el \{\ -. ds $SS_VAR \\$1 -. ss \\n[.ss] (0\\*[$SS_VAR]) -. \} -. \} -.END -\# -\# -\# ===================================================================== -\# -\# +++INDENTS+++ -\# -.ig -There are five styles of indents: left, right, both, temporary, -and hanging. Each is set/invoked with a different macro. -Indent macros begin with the letter "I", hence .IL means "indent left," -.IR means "indent right," and so on. - -The first time any of the indent macros is used, it requires an -argument--the size of the indent (with a unit of measure). The -size may also be entered using the \w escape--very useful -for numbered lists using HI. The unit of measure is required. -Subsequent invocations don't require the argument; the indent -measure remains the same until it's changed by invoking the macro -with an argument again. - -If no indents are in effect, the arguments passed to indent macros are -measured from the left and right margins of the page. If a left indent -or a right indent is already in effect, the arguments passed to -the indent macros are calculated from the current values; in other words, -the arguments are additive. If you quit an indent and later return -to it, its value will be the value last in effect, unless you pass -it an argument. If you do pass an argument, it is added to the last -value in effect, unless you cleared the indent with one of -.IX/Q macros. - -Example -------- - -.IL 2P -...some text... -.IL 2P -...some text... -.IQ -...some text... -.IL -...some text... - -The first .IL 2P indents text 2P from the left margin. The second -.IL 2P indents text by an additional 2P, i.e. 4P from the left margin. -.IQ turns the indent off. The last .IL (which has no argument) -takes its value from the total of all arguments passed to .IL (in -this case, 2P and 2P), therefore it indents 2P+2P from the left -margin, i.e. 4P. If you wanted the last .IL to indent just 2P, -you'd either have to reset the .IL prior to .IQ (.IL -2P), or pass -the last .IL the argument 2P. - -To reverse the sense of an indent added to an indent, you may use -negative values. - -Indents can be turned off individually with ILX, IRX, and IBX. -LEFT and RIGHT indents may be combined and manipulated -separately, (e.g. you can have an IL of 2P and an IR of 4P -operative at the same time, and then change, say, the IL to -4P--thereby left indenting 6P--while the IR remains at 4P. - -IB automatically turns off IL and IR. They have to be reinvoked -again when needed. IL and IR automatically turn IB off; it, too, -has to be reinvoked with needed. - -All indents can be turned off at once with IQ. The ILX, IRX, IBX, -and IQ macros simply turn the indents off; the values stored in -the respective indent macros (IL, IR, IB) remain in effect. If -the user wishes to clear the values, the IX macros should be -invoked with the single argument CLEAR. IQ CLEAR clears out -the values stored for all indent styles. - -Indents *must* be turned off before settting string tabs -inside PAD. Generally, in order not to get confused, it's a -good idea to turn all indents off before setting any tabs. - -TI and HI are special cases. There's no need to turn them off, -since they affect only one line--the first after their -invocation. Like the other indent styles, the first time -they're invoked, they require a value in iPpcm; each subsequent -invocation without an argument will use the same value. To -change the value, simply pass a new value. Values for TI and HI -are *not* additive. - -HI presupposes that you already have a left or both indent on. -HI will never hang a line outside the left margin of a document -or column. In other words, you must have IL or IB on before you -can use HI. -.. -\# -\# INDENT LEFT -\# ----------- -\# -.MAC IL END -. if \\n[#INDENT_STYLE_BOTH] \{ .IBX \} -. nr #INDENT_STYLE_LEFT 1 -. nr #INDENT_ACTIVE 1 -. nr #INDENT_LEFT_ACTIVE 1 -. ie '\\$1'' \{\ -. br -. in \\n[#L_INDENT]u -. ta \\n(.lu-\\n[#L_INDENT]u -. \} -. el \{\ -. br -. nr #L_INDENT +(\\$1) -. in \\n[#L_INDENT]u -. ta \\n(.lu-\\n[#L_INDENT]u -. \} -.END -\# -\# -\# +++INDENT RIGHT+++ -\# -.MAC IR END -. if \\n[#INDENT_STYLE_BOTH] \{ .IBX \} -. nr #INDENT_STYLE_RIGHT 1 -. nr #INDENT_ACTIVE 1 -. nr #INDENT_RIGHT_ACTIVE 1 -. ie '\\$1'' \{\ -. br -. ie \\n[#TAB_ACTIVE] \{\ -. ll \\n(.lu-\\n[#R_INDENT]u -. ta \\n(.lu-\\n[#L_INDENT]u -. \} -. el \{\ -. ll \\n[#L_LENGTH]u-\\n[#R_INDENT]u -. ta \\n(.lu-\\n[#L_INDENT]u -. \} -. \} -. el \{\ -. br -. nr #R_INDENT +(\\$1) -. ie \\n[#TAB_ACTIVE] \{\ -. ll \\n(.lu-\\n[#R_INDENT]u -. ta \\n(.lu-\\n[#L_INDENT]u -. \} -. el \{\ -. ll \\n[#L_LENGTH]u-\\n[#R_INDENT]u -. ta \\n(.lu-\\n[#L_INDENT]u -. \} -. \} -.END -\# -\# -\# +++INDENT BOTH+++ -\# -.MAC IB END -. if \\n[#INDENT_STYLE_LEFT] \{ .ILX \} -. if \\n[#INDENT_STYLE_RIGHT] \{ .IRX \} -. nr #INDENT_STYLE_BOTH 1 -. nr #INDENT_ACTIVE 1 -. nr #INDENT_BOTH_ACTIVE 1 -. ie '\\$1'' \{\ -. br -. in \\n[#BL_INDENT]u -. ie \\n[#TAB_ACTIVE] \{\ -. ll \\n(.lu-\\n[#BR_INDENT]u -. ta \\n(.lu-\\n[#BR_INDENT]u -. \} -. el \{\ -. ll \\n[#L_LENGTH]u-\\n[#BR_INDENT]u -. ta \\n(.lu-\\n[#BR_INDENT]u -. \} -. \} -. el \{\ -. br -. nr #BL_INDENT (\\n[#INDENT]+\\$1) -. ie \\n[#NUM_ARGS]=2 \{ .nr #BR_INDENT +(\\$2) \} -. el \{ .nr #BR_INDENT \\n[#BL_INDENT] \} -. ie \\n[#TAB_ACTIVE] \{\ -. in \\n[#BL_INDENT]u -. ll \\n(.lu-\\n[#BR_INDENT]u -. ta \\n(.lu-\\n[#BL_INDENT]u -. \} -. el \{\ -. in \\n[#BL_INDENT]u -. ll \\n[#L_LENGTH]u-\\n[#BR_INDENT]u -. ta \\n(.lu-\\n[#BR_INDENT]u -. \} -. \} -.END -\# -\# -\# +++TEMPORARY INDENT+++ -\# -.MAC TI END -. br -. ie '\\$1'' \{\ -. ti \\n[#T_INDENT]u -. if \\n[#INDENT_LEFT_ACTIVE] \{\ -. ti \\n[#T_INDENT]u+\\n[#L_INDENT]u -. \} -. if \\n[#INDENT_BOTH_ACTIVE] \{\ -. ti \\n[#T_INDENT]u+\\n[#BL_INDENT]u -. \} -. \} -. el \{\ -. nr #T_INDENT (\\$1) -. ti \\n[#T_INDENT]u -. \} -.END -\# -\# -\# +++HANGING INDENT+++ -\# -.MAC HI END -. ie '\\$1'' \{ .ti -\\n[#HL_INDENT]u \} -. el \{\ -. nr #HL_INDENT (\\$1) -. ti -\\n[#HL_INDENT]u -. \} -.END -\# -\# -\# +++INDENTS OFF+++ -\# -.MAC ILX END -. br -. in 0 -. rr #INDENT_LEFT_ACTIVE -. if '\\$1'CLEAR' \{\ -. rr #L_INDENT -. rr #INDENT_STYLE_LEFT -. \} -.END -\# -\# -.MAC IRX END -. br -. rr #INDENT_RIGHT_ACTIVE -. ie \\n[#TAB_ACTIVE] \{ .TAB\\n[#CURRENT_TAB] \} -. el \{\ -. ie \\n[#COLUMNS] \{\ -. ll \\n[#COL_L_LENGTH]u -. ta \\n(.lu -. \} -. el \{\ -. ll \\n[#L_LENGTH]u -. ta \\n(.lu -. \} -. \} -. if '\\$1'CLEAR' \{\ -. rr #R_INDENT -. rr #INDENT_STYLE_RIGHT -. \} -.END -\# -\# -.MAC IBX END -. br -. in 0 -. rr #INDENT_BOTH_ACTIVE -. ie \\n[#TAB_ACTIVE] \{ .TAB\\n[#CURRENT_TAB] \} -. el \{\ -. ie \\n[#COLUMNS] \{\ -. ll \\n[#COL_L_LENGTH]u -. ta \\n(.lu -. \} -. el \{\ -. ll \\n[#L_LENGTH]u -. ta \\n(.lu -. \} -. \} -. if '\\$1'CLEAR' \{\ -. rr #BL_INDENT -. rr #BR_INDENT -. rr #INDENT_STYLE_BOTH -. \} -.END -\# -\# -.MAC IX END -. if '\\$0'IX' \{\ -. if !\\n[#IX_WARN] \{\ -. tm1 "[mom]: Use of .IX is now deprecated. Use .IQ instead. -. tm1 " .IX will continue to behave as before, but to -. tm1 " avoid this message, please update your document. -. nr #IX_WARN 1 -. \} -. \} -. br -. in 0 -. rr #INDENT_LEFT_ACTIVE -. rr #INDENT_RIGHT_ACTIVE -. rr #INDENT_BOTH_ACTIVE -. if \\n[#INDENT_STYLE_RIGHT] \{\ -. ie \\n[#TAB_ACTIVE] \{ .TAB\\n[#CURRENT_TAB] \} -. el \{\ -. ie \\n[#COLUMNS] \{\ -. ll \\n[#COL_L_LENGTH]u -. ta \\n(.lu -. \} -. el \{\ -. ll \\n[#L_LENGTH]u -. ta \\n(.lu -. \} -. \} -. \} -. if \\n[#INDENT_STYLE_BOTH] \{\ -. ie \\n[#TAB_ACTIVE] \{ .TAB\\n[#CURRENT_TAB] \} -. el \{\ -. ie \\n[#COLUMNS] \{\ -. ll \\n[#COL_L_LENGTH]u -. ta \\n(.lu -. \} -. el \{\ -. ll \\n[#L_LENGTH]u -. ta \\n(.lu -. \} -. \} -. \} -. if '\\$1'CLEAR' \{\ -. if \\n[#INDENT_STYLE_RIGHT] \{\ -. ie \\n[#TAB_ACTIVE] \{ .TAB\\n[#CURRENT_TAB] \} -. el \{\ -. ie \\n[#COLUMNS] \{\ -. ll \\n[#COL_L_LENGTH]u -. ta \\n(.lu -. \} -. el \{\ -. ll \\n[#L_LENGTH]u -. ta \\n(.lu -. \} -. \} -. \} -. if \\n[#INDENT_STYLE_BOTH] \{\ -. ie \\n[#TAB_ACTIVE] \{ .TAB\\n[#CURRENT_TAB] \} -. el \{\ -. ie \\n[#COLUMNS] \{\ -. ll \\n[#COL_L_LENGTH]u -. ta \\n(.lu -. \} -. el \{\ -. ll \\n[#L_LENGTH]u -. ta \\n(.lu -. \} -. \} -. \} -. rr #L_INDENT -. rr #R_INDENT -. rr #BL_INDENT -. rr #BR_INDENT -. rr #T_INDENT -. rr #H_INDENT -. rr #INDENT_STYLE_LEFT -. rr #INDENT_STYLE_RIGHT -. rr #INDENT_STYLE_BOTH -. \} -. rr #INDENT_ACTIVE -.END -\# -\# ===================================================================== -\# -\# +++MULTIPLE COLUMNS+++ -\# -\# MULTIPLE COLUMNS ON -\# ------------------- -\# *Arguments: -\# -\# *Function: -\# Marks the top of a column set -\# -.MAC MCO END -.mk c -.END -\# -\# MULTIPLE COLUMN RETURN -\# ---------------------- -\# *Arguments: -\# -\# *Function: -\# Returns to the top of a column set -\# -.MAC MCR END -. TRAP OFF -. sp |\\ncu -. TRAP -.END -\# -\# MULTIPLE COLUMNS OFF -\# -------------------- -\# *Arguments: -\# | -\# *Function: -\# Advances to the end of a column set -\# *Notes: -\# With no argument, advances to the next baseline (at the current -\# leading value) beneath the longest column. With an argument -\# (which requires a unit of measure), advances arg distance -\# beneath the baseline of the deepest column. If the argument -\# is zero, advances to the baseline of the deepest column. -\# -.MAC MCX END -. ie '\\$1'' \{\ -. TQ -. sp |\\n(.hu -. \} -. el \{\ -. nr #MCX_ALD (\\$1) -. TQ -. ie \\n[#MCX_ALD]=0 \{ .sp |\\n(.hu-1v \} -. el \{ .sp |\\n(.hu+\\n[#MCX_ALD]u \} -. rr #MCX_ALD -. \} -.END -\# -\# ===================================================================== -\# -\# +++TYPESETTING SUPPORT MACROS+++ -\# -\# TRAP -\# ---- -\# *Arguments: -\# toggle -\# *Function: -\# Enables/disables traps. -\# *Notes: -\# EL and TN don't function as advertised on the last line before -\# a trap (when they break the preceding line, they spring the -\# trap, and groff won't back up to the line preceding the trap). -\# TRAP is a kludge to get EL and TN work properly on last lines. -\# The user simply enloses the offending lines in TRAP OFF/TRAP. -\# -.MAC TRAP END -. ie '\\$1'' \{ .vpt 1 \} -. el \{ .vpt 0 \} -.END -\# -\# -\# SILENT -\# ------ -\# *Arguments: -\# | -\# *Function: -\# Diverts text so that it doesn't print, or turns the function off. -\# *Notes: -\# Useful for setting up autotabs where you don't want the line with -\# the tab marks to print. -\# -\# Also aliased as COMMENT, in case user wants to input a batch of -\# text that doesn't print. -\# -.MAC SILENT END -. nr #SILENT 1 -. if \\n[#QUAD] \{ .br \} -. ie '\\$1'' \{ .di NO_FLASH \} -. el \{\ -. br -. di -. rm NO_FLASH -. rr #SILENT -. \} -.END -\# -\# -\# PRINT -\# ----- -\# *Function: -\# Prints anything. A macro that helps keep my code nicely indented. -\# -.MAC PRINT END -. nop \\$* -.END -\# -\# -\# CAPS -\# ---- -\# *Arguments: -\# | -\# *Function: -\# Converts text to caps, or, if OFF, reverts to normal caps/lc. -\# -.MAC CAPS END -. ie '\\$1'' \{\ -. tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ -. tr à\[`A] -. tr â\[^A] -. tr á\['A] -. tr ä\[:A] -. tr Ã¥\[oA] -. tr ã\[~A] -. tr æ\[AE] -. tr è\[`E] -. tr ê\[^E] -. tr é\['E] -. tr ë\[:E] -. tr ì\[`I] -. tr î\[^I] -. tr í\['I] -. tr ï\[:I] -. tr ò\[`O] -. tr ô\[^O] -. tr ó\['O] -. tr ö\[:O] -. tr õ\[~O] -. tr ø\[/O] -. tr ù\[`U] -. tr û\[^U] -. tr ú\['U] -. tr ü\[:U] -. tr ç\[,C] -. tr ð\[-D] -. tr ñ\[~N] -. tr þ\[TP] -. tr ý\['Y] -. tr ÿ\[:Y] -. nr #CAPS_ON 1 -. \} -. el \{\ -. tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz -. tr à\[`a] -. tr â\[^a] -. tr á\['a] -. tr ä\[:a] -. tr Ã¥\[oa] -. tr ã\[~a] -. tr æ\[ae] -. tr è\[`e] -. tr ê\[^e] -. tr é\['e] -. tr ë\[:e] -. tr ì\[`i] -. tr î\[^i] -. tr í\['i] -. tr ï\[:i] -. tr ò\[`o] -. tr ô\[^o] -. tr ó\['o] -. tr ö\[:o] -. tr õ\[~o] -. tr ø\[/o] -. tr ù\[`u] -. tr û\[^u] -. tr ú\['u] -. tr ü\[:u] -. tr ç\[,c] -. tr ð\[Sd] -. tr ñ\[~n] -. tr þ\[Tp] -. tr ý\['y] -. tr ÿ\[:y] -. rr #CAPS_ON -. \} -.END -\# -\# SIZESPECS -\# --------- -\# Argument: -\# -\# Function: -\# Gets cap-height, x-height, and descender depth of the -\# current font at the current point size. -\# *Notes: -\# The routine is diverted so it remains invisible to output. -\# -.MAC SIZESPECS END -. di TYPESIZE -E\\R'#CAP_HEIGHT \\n[.cht]' -e\\R'#X_HEIGHT \\n[.cht]' -y\\R'#DESCENDER \\n[.cdp]' -. br -. di -.END -\# -\# ===================================================================== -\# -\# +++TYPESETTING ALIASES+++ -\# -.ALIAS ADD_SPACE ALD -.ALIAS CENTRE CENTER -.ALIAS COLOUR COLOR -.ALIAS COMMENT SILENT -.ALIAS CONDENSE CONDENSE_OR_EXTEND -.ALIAS EXTEND CONDENSE_OR_EXTEND -.ALIAS FAM FAMILY -.ALIAS HYPHENATE HY -.ALIAS HYPHENATION HY -.ALIAS HYSET HY_SET -.ALIAS IBQ IBX -.ALIAS ILQ ILX -.ALIAS IQ IX -.ALIAS IRQ IRX -.ALIAS LIG LIGATURES -.ALIAS NEWCOLOUR NEWCOLOR -.ALIAS PADMARKER PAD_MARKER -.ALIAS SP ALD -.ALIAS SPACE ALD -.ALIAS TABSET TAB_SET -.ALIAS TB TAB -.ALIAS UNDERSCORE_2 UNDERSCORE2 -.ALIAS XCOLOUR XCOLOR -\# -\# -\# ==================================================================== -\# -\# DOCUMENT PROCESSING MACROS, STRINGS AND ALIASES -\# =============================================== -\# -\# +++PAGE DIMENSIONS+++ -\# -\# PAPER SIZE -\# ---------- -\# *Arguments: -\# LETTER | LEGAL | STATEMENT | TABLOID | LEDGER | FOLIO | QUARTO | 10x14 | EXECUTIVE | A3 | A4 | A5 | B4 | B5 -\# *Function: -\# Sets up dimensions for different paper sizes. -\# -.MAC PAPER END -. ds $PAPER \\$1 -. if '\\*[$PAPER]'LETTER' \{\ -. PAGEWIDTH 8.5i -. PAGELENGTH 11i -. \} -. if '\\*[$PAPER]'LEGAL' \{\ -. PAGEWIDTH 8.5i -. PAGELENGTH 14i -. \} -. if '\\*[$PAPER]'STATEMENT' \{\ -. PAGEWIDTH 5.5i -. PAGELENGTH 8.5i -. \} -. if '\\*[$PAPER]'TABLOID' \{\ -. PAGEWIDTH 11i -. PAGELENGTH 17i -. \} -. if '\\*[$PAPER]'LEDGER' \{\ -. PAGEWIDTH 17i -. PAGELENGTH 11i -. \} -. if '\\*[$PAPER]'FOLIO' \{\ -. PAGEWIDTH 8.5i -. PAGELENGTH 13i -. \} -. if '\\*[$PAPER]'QUARTO' \{\ -. PAGEWIDTH 610p -. PAGELENGTH 780p -. \} -. if '\\*[$PAPER]'10x14' \{\ -. PAGEWIDTH 10i -. PAGELENGTH 14i -. \} -. if '\\*[$PAPER]'EXECUTIVE' \{\ -. PAGEWIDTH 7.25i -. PAGELENGTH 10.5i -. \} -. if '\\*[$PAPER]'A3' \{\ -. PAGEWIDTH 842p -. PAGELENGTH 1190p -. \} -. if '\\*[$PAPER]'A4' \{\ -. PAGEWIDTH 595p -. PAGELENGTH 842p -. \} -. if '\\*[$PAPER]'A5' \{\ -. PAGEWIDTH 421p -. PAGELENGTH 595p -. \} -. if '\\*[$PAPER]'B4' \{\ -. PAGEWIDTH 709p -. PAGELENGTH 1002p -. \} -. if '\\*[$PAPER]'B5' \{\ -. PAGEWIDTH 501p -. PAGELENGTH 709p -. \} -. if !r#L_MARGIN \{ .L_MARGIN \\n(.o \} -. if !r#R_MARGIN \{ .R_MARGIN 1i \} -.END -\# -\# -\# ==================================================================== -\# -\# +++PRINTSTYLE -- TYPEWRITE OR TYPESET+++ -\# -\# PRINTSTYLE -\# ---------- -\# *Arguments: -\# TYPESET | TYPEWRITE [SINGLESPACE] -\# *Function: -\# Sets type specs for typewriter-style or typeset output. -\# *Notes: -\# Number registers: TYPEWRITE=1, TYPESET=2. -\# -.MAC PRINTSTYLE END -. if !\\n[#COLLATE]=1 \{\ -. if !d$PAPER \{ .PAPER LETTER \} -. if '\\$1'TYPEWRITE' \{\ -. nr #PRINT_STYLE 1 -. if !\\n[#DOC_TYPE]=4 \{ .L_MARGIN 6P \} -. if !\\n[#DOC_TYPE]=4 \{ .R_MARGIN 6P \} -. TYPEWRITER -. color 0 -. ie '\\$2'SINGLESPACE' \{\ -. nr #SINGLE_SPACE 1 -. vs 12 -. nr #ORIGINAL_DOC_LEAD \\n(.v -. \} -. el \{\ -. vs 24 -. nr #ORIGINAL_DOC_LEAD \\n(.v -. \} -. QUAD L -. HY OFF -. SMARTQUOTES OFF -. if !\\n[#PP_INDENT] \{\ -. in 3P \"Set indent -. nr #PP_INDENT \\n(.i \"Read into #PP_INDENT -. in 0 \"Remove indent -. \} -. HDRFTR_RIGHT_CAPS -. nr #BOLDER_UNITS 0 -. nr #CONDENSE 0 -. nr #EXTEND 0 -. rm IT -. rm BD -. rm BDI -. rm PREV -. UNDERLINE_SLANT -. UNDERLINE_ITALIC -. UNDERLINE_QUOTES -. nr #IGNORE_COLUMNS 1 -. char \(em -- -. tr `' -. \} -. if '\\$1'TYPESET' \{\ -. nr #PRINT_STYLE 2 -. if !\\n[#DOC_TYPE]=4 \{ .L_MARGIN 6P \} -. if !\\n[#DOC_TYPE]=4 \{ .R_MARGIN 6P \} -. FAMILY T -. FT R -. if !\\n[#DOC_TYPE]=4 \{ .PT_SIZE 12.5 \} -. if !\\n[#DOC_TYPE]=4 \{ .LS 16 \} -. JUSTIFY -. HY -. HY_SET 2 36p 1p -. KERN -. LIG -. SS 0 -. SMARTQUOTES -. if !\\n[#PP_INDENT] \{\ -. in 2m \"Set indent -. nr #PP_INDENT \\n(.i \"Read into #PP_INDENT -. in 0 \"Remove indent -. \} -. HDRFTR_RIGHT_CAPS -. rr #IGNORE_COLUMNS -. \} -. \} -.END -\# -\# -\# Macros to control behaviour of PRINTSTYLE TYPEWRITE -\# -\# First, a little utility macro. -\# -.MAC TYPEWRITER END -. fam C -. ft R -. ps 12 -.END -\# -\# -\# ITALIC MEANS ITALIC -\# ------------------- -\# *Argument: -\# -\# *Function: -\# Instructs TYPEWRITE to treat italics as italics, whether -\# invoked via control lines or inline. -\# *Notes: -\# ITALIC_MEANS_ITALIC and UNDERLINE_ITALIC are mututally exclusive, -\# hence invoking the one automatically turns off the other. -\# -.MAC ITALIC_MEANS_ITALIC END -. if \\n[#PRINT_STYLE]=1 \{\ -. nr #ITALIC_MEANS_ITALIC 1 -. rr #UNDERLINE_ITALIC -. rm ROM -. rm IT -. rm PREV -. ds ROM \EfR -. ds IT \EfI -. ds PREV \EfR -. \} -.END -\# -\# -\# UNDERLINE ITALIC -\# ---------------- -\# *Argument: -\# -\# *Function: -\# Instructs TYPEWRITE to underline italics, whether invoked -\# via control lines or inline. -\# *Notes: -\# UNDERLINE_ITALIC and ITALIC_MEANS_ITALIC are mututally exclusive, -\# hence invoking the one automatically turns off the other. -\# -\# UNDERLINE_ITALIC is the default for TYPEWRITE. -\# -.MAC UNDERLINE_ITALIC END -. if \\n[#PRINT_STYLE]=1 \{\ -. nr #UNDERLINE_ITALIC 1 -. rr #ITALIC_MEANS_ITALIC -. rm ROM -. rm IT -. rm PREV -. ds ROM \E*[ULX] -. ds IT \E*[UL] -. ds PREV \E*[ULX] -. \} -.END -\# -\# -\# UNDERLINE SLANT -\# --------------- -\# *Arguments: -\# | -\# *Function: -\# Instructs TYPEWRITE to underline occurences of \*[SLANT], or -\# turns feature off. -\# *Notes: -\# Users may want \*[SLANT] to mean slant in TYPEWRITE, although -\# most of the time, \*[SLANT] most likely means the user wanted -\# italic but didn't have it, ergo the need to tell TYPEWRITE to -\# treat \*[SLANT] as italic (i.e. underlined). -\# -\# UNDERLINE_SLANT and SLANT_MEANS_SLANT are mututally exclusive, -\# hence invoking the one automatically turns off the other. -\# -\# UNDERLINE_SLANT is the default for TYPEWRITE. -\# -.MAC UNDERLINE_SLANT END -. if \\n[#PRINT_STYLE]=1 \{\ -. rr #SLANT_MEANS_SLANT -. nr #UNDERLINE_SLANT 1 -. rm SLANT -. rm SLANTX -. ds SLANT \ER'#SLANT_ON 1'\E*[UL] -. ds SLANTX \ER'#SLANT_ON 0'\E*[ULX] -. \} -.END -\# -\# -.MAC SLANT_MEANS_SLANT END -. if \\n[#PRINT_STYLE]=1 \{\ -. rr #UNDERLINE_SLANT -. nr #SLANT_MEANS_SLANT 1 -. rm SLANT -. rm SLANTX -. ds SLANT \ER'#SLANT_ON 1'\ES'\En[#DEGREES]' -. ds SLANTX \ER'#SLANT_ON 0'\ES'0' -. \} -.END -\# -\# -.MAC IGNORE_COLUMNS END -. if \\n[#PRINT_STYLE]=1 \{ .nr #NO_COLUMNS 1 \} -.END -\# -\# -\# ==================================================================== -\# -\# +++COPY STYLE -- DRAFT OR FINAL+++ -\# -\# COPY STYLE -\# ---------- -\# *Arguments: -\# DRAFT | FINAL -\# *Function: -\# Sets registers that are used to determine what to put -\# in the default header, and how to number pages. -\# *Notes: -\# DOCTYPE must come before COPYSTYLE. -\# -.MAC COPYSTYLE END -. ds $COPY_STYLE \\$1 -. if '\\*[$COPY_STYLE]'DRAFT' \{\ -. nr #COPY_STYLE 1 -. if !d$DRAFT \{ .DRAFT 1 \} -. \} -. if '\\*[$COPY_STYLE]'FINAL' \{ .nr #COPY_STYLE 2 \} -. if !d$CHAPTER_STRING \{ .CHAPTER_STRING "Chapter" \} -. if !d$DRAFT_STRING \{ .DRAFT_STRING "Draft" \} -. if !d$REVISION_STRING \{ .REVISION_STRING "Rev." \} -.\" Default -. if \\n[#DOC_TYPE]=1 \{\ -. ie \\n[#COPY_STYLE]=1 \{\ -. ie \\n[#PAGENUM_STYLE_SET] \{ .PAGENUM_STYLE \\*[$PAGENUM_STYLE] \} -. el \{ .PAGENUM_STYLE roman \} -. if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{\ -. ie \\n[#DRAFT_WITH_PAGENUM] \{\ -. ds $HDRFTR_CENTER -. \} -. el \{\ -. ie '\\*[$REVISION]'' \{\ -. ds $HDRFTR_CENTER \ - \\*[$DRAFT_STRING]\\*[$DRAFT] -. \} -. el \{\ -. ds $HDRFTR_CENTER \ - \\*[$DRAFT_STRING]\\*[$DRAFT], \ - \\*[$REVISION_STRING] \\*[$REVISION] -. \} -. \} -. \} -. \} -. el \{\ -. ie \\n[#PAGENUM_STYLE_SET] \{ .PAGENUM_STYLE \\*[$PAGENUM_STYLE] \} -. el \{ .PAGENUM_STYLE DIGIT \} -. if r#DRAFT_WITH_PAGENUM \{ .rr #DRAFT_WITH_PAGENUM \} -. if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{\ -. ds $HDRFTR_CENTER -. rr #USER_DEF_HDRFTR_CENTER -. \} -. \} -. \} -.\" Chapter -. if \\n[#DOC_TYPE]=2 \{\ -.\" Copystyle DRAFT -. ie \\n[#COPY_STYLE]=1 \{\ -. ie \\n[#PAGENUM_STYLE_SET] \{ .PAGENUM_STYLE \\*[$PAGENUM_STYLE] \} -. el \{ .PAGENUM_STYLE roman \} -. if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{\ -. ie \\n[#DRAFT_WITH_PAGENUM] \{\ -. ie '\\*[$CHAPTER]'' \{\ -. ie !'\\*[$CHAPTER_TITLE]'' \{\ -. ds $HDRFTR_CENTER \\*[$CHAPTER_TITLE] -. \} -. el .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] -. \} -. el \{\ -. ie !'\\*[$CHAPTER_TITLE]'' \{\ -. ds $HDRFTR_CENTER \\*[$CHAPTER_TITLE] -. \} -. el .ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \\*[$CHAPTER] -. \} -. \} -. el \{\ -. ie '\\*[$REVISION]'' \{\ -. ie '\\*[$CHAPTER]'' \{\ -. ie !'\\*[$CHAPTER_TITLE]'' \{\ -. ie '\\*[$DRAFT]'' \{\ -. ds $HDRFTR_CENTER \\*[$CHAPTER_TITLE] -. \} -. el \{\ -. ds $HDRFTR_CENTER \ - \\*[$CHAPTER_TITLE], \ - \\*[$DRAFT_STRING]\\*[$DRAFT] -. \} -. \} -. el \{\ -. ie '\\*[$DRAFT]'' \{\ -. ds $HDRFTR_CENTER \ - \\*[$CHAPTER_STRING] -. \} -. el \{\ -. ds $HDRFTR_CENTER \ - \\*[$CHAPTER_STRING], \ - \\*[$DRAFT_STRING]\\*[$DRAFT] -. \} -. \} -. \} -. el \{\ -. ie !'\\*[$CHAPTER_TITLE]'' \{\ -. ie '\\*[$DRAFT]'' \{\ -. ds $HDRFTR_CENTER \\*[$CHAPTER_TITLE] -. \} -. el \{\ -. ds $HDRFTR_CENTER \ - \\*[$CHAPTER_TITLE], \ - \\*[$DRAFT_STRING]\\*[$DRAFT] -. \} -. \} -. el \{\ -. ie '\\*[$DRAFT]'' \{\ -. ds $HDRFTR_CENTER \ - \\*[$CHAPTER_STRING] \\*[$CHAPTER] -. \} -. el \{\ -. ds $HDRFTR_CENTER \ - \\*[$CHAPTER_STRING] \\*[$CHAPTER], \ - \\*[$DRAFT_STRING]\\*[$DRAFT] -. \} -. \} -. \} -. \} -. el \{\ -. ie '\\*[$CHAPTER]'' \{\ -. ie !'\\*[$CHAPTER_TITLE]'' \{\ -. ie '\\*[$DRAFT]'' \{\ -. ds $HDRFTR_CENTER \ - \\*[$CHAPTER_TITLE], \ - \\*[$REVISION_STRING] \\*[$REVISION] -. \} -. el \{\ -. ds $HDRFTR_CENTER \ - \\*[$CHAPTER_TITLE], \ - \\*[$DRAFT_STRING]\\*[$DRAFT], \ - \\*[$REVISION_STRING] \\*[$REVISION] -. \} -. \} -. el \{\ -. ie '\\*[$DRAFT]'' \{\ -. ds $HDRFTR_CENTER \ - \\*[$CHAPTER_STRING], \ - \\*[$REVISION_STRING] \\*[$REVISION] -. \} -. el \{\ -. ds $HDRFTR_CENTER \ - \\*[$CHAPTER_STRING], \ - \\*[$DRAFT_STRING]\\*[$DRAFT], \ - \\*[$REVISION_STRING] \\*[$REVISION] -. \} -. \} -. \} -. el \{\ -. ie !'\\*[$CHAPTER_TITLE]'' \{\ -. ie '\\*[$DRAFT]'' \{\ -. ds $HDRFTR_CENTER \ - \\*[$CHAPTER_TITLE], \ - \\*[$REVISION_STRING] \\*[$REVISION] -. \} -. el \{\ -. ds $HDRFTR_CENTER \ - \\*[$CHAPTER_TITLE], \ - \\*[$DRAFT_STRING]\\*[$DRAFT], \ - \\*[$REVISION_STRING] \\*[$REVISION] -. \} -. \} -. el \{\ -. ie '\\*[$DRAFT]'' \{\ -. ds $HDRFTR_CENTER \ - \\*[$CHAPTER_STRING] \\*[$CHAPTER], \ - \\*[$REVISION_STRING] \\*[$REVISION] -. \} -. el \{\ -. ds $HDRFTR_CENTER \ - \\*[$CHAPTER_STRING] \\*[$CHAPTER], \ - \\*[$DRAFT_STRING]\\*[$DRAFT], \ - \\*[$REVISION_STRING] \\*[$REVISION] -. \} -. \} -. \} -. \} -. \} -. \} -. \} -.\" Copystyle FINAL -. el \{\ -. if r#DRAFT_WITH_PAGENUM \{ .rr #DRAFT_WITH_PAGENUM \} -. if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{\ -. ie \\n[#PAGENUM_STYLE_SET] \{ .PAGENUM_STYLE \\*[$PAGENUM_STYLE] \} -. el \{ .PAGENUM_STYLE DIGIT \} -. ie '\\*[$CHAPTER]'' \{\ -. ie !'\\*[$CHAPTER_TITLE]'' \{\ -. ds $HDRFTR_CENTER \\*[$CHAPTER_TITLE] -. \} -. el \{\ -. ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] -. \} -. \} -. el \{\ -. ie !'\\*[$CHAPTER_TITLE]'' \{\ -. ds $HDRFTR_CENTER \\*[$CHAPTER_TITLE] -. \} -. el \{\ -. ds $HDRFTR_CENTER \\*[$CHAPTER_STRING] \\*[$CHAPTER] -. \} -. \} -. \} -. \} -. \} -.\" Named -. if \\n[#DOC_TYPE]=3 \{\ -. ie \\n[#COPY_STYLE]=1 \{\ -. ie \\n[#PAGENUM_STYLE_SET] \{ .PAGENUM_STYLE \\*[$PAGENUM_STYLE] \} -. el \{ .PAGENUM_STYLE roman \} -. ie \\n[#DRAFT_WITH_PAGENUM] \{\ -. ds $HDRFTR_CENTER \\*[$DOC_TYPE] -. \} -. el \{\ -. if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{\ -. ie '\\*[$REVISION]'' \{\ -. ie '\\*[$DRAFT]'' \{\ -. ds $HDRFTR_CENTER \\*[$DOC_TYPE] -. \} -. el \{\ -. ds $HDRFTR_CENTER \ - \\*[$DOC_TYPE], \ - \\*[$DRAFT_STRING]\\*[$DRAFT] -. \} -. \} -. el \{\ -. ie '\\*[$DRAFT]'' \{\ -. ds $HDRFTR_CENTER \ - \\*[$DOC_TYPE], \ - \\*[$REVISION_STRING] \\*[$REVISION] -. \} -. el \{\ -. ds $HDRFTR_CENTER \ - \\*[$DOC_TYPE], \ - \\*[$DRAFT_STRING]\\*[$DRAFT], \ - \\*[$REVISION_STRING] \\*[$REVISION] -. \} -. \} -. \} -. \} -. \} -. el \{\ -. if r#DRAFT_WITH_PAGENUM \{ .rr #DRAFT_WITH_PAGENUM \} -. if \\n[#USER_DEF_HDRFTR_CENTER]=0 \{\ -. ie \\n[#PAGENUM_STYLE_SET] \{ .PAGENUM_STYLE \\*[$PAGENUM_STYLE] \} -. el \{ .PAGENUM_STYLE DIGIT \} -. ds $HDRFTR_CENTER \\*[$DOC_TYPE] -. \} -. \} -. \} -.END -\# -\# ==================================================================== -\# -\# +++COLLECT DOC INFO -- STRINGS AND REGISTERS FOR REFERENCE MACROS+++ -\# -\# *Arguments: -\# various string/register arguments -\# *Function: -\# Collect information about documents. -\# -\# -.MAC DOCTITLE END -. ds $DOC_TITLE \\$1 -.END -\# -.MAC TITLE END \"Document title -. ds $TITLE \\$1 -.END -\# -\# -.MAC SUBTITLE END \"Document sub-title -. ds $SUBTITLE \\$1 -.END -\# -\# -.MAC CHAPTER END \"If document is a chapter, the chapter number -. ds $CHAPTER \\$1 -.END -\# -\# -.MAC CHAPTER_TITLE END \" This defines what comes after Chapter # -. ds $CHAPTER_TITLE \\$1 -.END -\# -\# -.MAC DRAFT END \"Draft number -. ie '\\$1'' .ds $DRAFT -. el .ds $DRAFT " \\$1 -.END -\# -\# -.MAC REVISION END \"Revision number -. ds $REVISION \\$1 -.END -\# -\# -.MAC DRAFT_WITH_PAGENUMBER END \"Attach draft/revision strings to page number -. nr #DRAFT_WITH_PAGENUM 1 -.END -\# -\# -.MAC AUTHOR END \"Author. Enclose all args fully in double quotes. -. nr #AUTHOR_NUM -1 1 -. while \\n[#NUM_ARGS]>\\n[#AUTHOR_NUM] \{\ -. ds $AUTHOR_\\n+[#AUTHOR_NUM] \\$\\n[#AUTHOR_NUM] -.\} -. nr #NUM_AUTHORS \\n[#NUM_ARGS]%2 \"Use mod 2 to test if odd or even # of authors -. ie \\n[#NUM_AUTHORS]=1 \{ .nr #AUTHOR_LINES 0 \} -. el \{ .nr #AUTHOR_LINES 1 \} -.END -\# -\# -.MAC COPYRIGHT END \"For use on cover page only -. ds $COPYRIGHT \[co]\\$1 -.END -\# -\# -.MAC MISC END \"For use on cover page only; enclose all args in double quotes -. nr #MISC_NUM -1 1 -. while \\n[#NUM_ARGS]>\\n[#MISC_NUM] \{\ -. ds $MISC_\\n+[#MISC_NUM] \\$\\n[#MISC_NUM] -.\} -. nr #NUM_MISCS \\n[#NUM_ARGS] -.END -\# -\# -.MAC PAGENUMBER END \"Page # that appears on page one. -. nr #n%_AT_PAGENUM_SET \\n% -. nr #PAGE_NUM_ADJ \\$1-\\n[#n%_AT_PAGENUM_SET] -. rr #n%_AT_PAGENUM_SET -. nr #PAGE_NUM_SET 1 -.END -\# -\# ==================================================================== -\# -\# +++TYPE OF DOCUMENT+++ -\# -\# DOCUMENT TYPE -\# ------------- -\# *Argument: -\# DEFAULT | CHAPTER | NAMED " | LETTER -\# *Function: -\# Creates strings and sets registers for document types. -\# *Notes: -\# Number registers: DEFAULT=1, CHAPTER=2, NAMED=3, LETTER=4 -\# -.MAC DOCTYPE END -. if '\\$1'DEFAULT' \{\ -. nr #DOC_TYPE 1 -. \} -. if '\\$1'CHAPTER' \{\ -. nr #DOC_TYPE 2 -. \} -. if '\\$1'NAMED' \{\ -. ds $DOC_TYPE \\$2 -. nr #DOC_TYPE 3 -. \} -. if '\\$1'LETTER' \{\ -. nr #DOC_TYPE 4 -. L_MARGIN 1.125i -. R_MARGIN 1.125i -. PT_SIZE 12 -. LS 13.5 -. DOCHEADER OFF -. PARA_INDENT 3m -. INDENT_FIRST_PARAS -. PARA_SPACE -. ds $SUITE \En[#SUITE] -. HEADER_MARGIN 3P+6p -. HEADER_GAP 3P -. FOOTERS -. FOOTER_RULE OFF -. FOOTER_LEFT "" -. FOOTER_CENTER "" -. FOOTER_RIGHT_SIZE +0 -. FOOTER_RIGHT "\&.../\E*[$SUITE] -. FOOTER_ON_FIRST_PAGE -. em ALL_DONE -. \} -.END -\# -\# +++LETTER MACROS+++ -\# -\# First, create a register to hold incrementing numbers to be -\# appended to LETTERHEAD. -\# -.nr #FIELD 0 1 -\# -\# DATE -\# ---- -\# *Arguments: -\# -\# *Function: -\# Stores date (entered on the line after .DATE) in diversion -\# LETTERHEAD -\# -.MAC DATE END -. if !'\\n(.z'' \{ .di \} -. di LETTERHEAD\\n+[#FIELD] -. ie \\n[#FIELD]=1 \{\ -. nr #DATE_FIRST 1 -. RIGHT -. \} -. el \{\ -. LEFT -. \} -.END -\# -\# -\# TO -\# -- -\# *Arguments: -\# -\# *Function: -\# Stores addressee address (entered on the line after .TO) in -\# diversion LETTERHEAD -\# -.MAC TO END -. if !'\\n(.z'' \{ .di \} -. di LETTERHEAD\\n+[#FIELD] -. LEFT -.END -\# -\# -\# FROM -\# ---- -\# *Arguments: -\# -\# *Function: -\# Stores addresser address (entered on the line after .FROM) in -\# diversion LETTERHEAD -\# -.MAC FROM END -. if !'\\n(.z'' \{ .di \} -. di LETTERHEAD\\n+[#FIELD] -. LEFT -.END -\# -\# -\# GREETING -\# -------- -\# *Arguments: -\# -\# *Function: -\# Stores greeting (entered on the line after .GREETING) in -\# diversion LETTERHEAD -\# -.MAC GREETING END -. if !'\\n(.z'' \{ .di \} -. di LETTERHEAD\\n+[#FIELD] -. LEFT -.END -\# -\# -\# CLOSING -\# ------- -\# *Arguments: -\# -\# *Function: -\# Stores greeting in diversion CLOSING. -\# -.MAC CLOSING END -. br -. nr #CLOSING 1 -. di CLOSING -. LEFT -.END -\# -\# -\# NO SUITE -\# -------- -\# *Arguments: -\# -\# *Function: -\# Redefines $FOOTER_RIGHT to blank so that a suite number doesn't -\# appear at the bottom of letter pages. -\# -.MAC NO_SUITE END -. FOOTER_RIGHT "" -.END -\# -\# ==================================================================== -\# -\# +++DEFAULTS+++ -\# -\# TYPE-STYLE CONTROL MACROS -\# ------------------------- -\# -.ig -The control macros for family, font, size, quad and color are here -grouped together. Each (e.g. _FAMILY or _FONT) tests for a calling -alias before performing the action(s) appropriate to the calling -macro. Defaults for all these guys are set in DEFAULTS, and listed -in the "Control Macros" section of the documentation pertinent to -the macro whose style is to be changed. -.. -\# -.MAC _FAMILY END -. if '\\$0'AUTHOR_FAMILY' .ds $AUTHOR_FAM \\$1 -. if '\\$0'BIBLIOGRAPHY_FAMILY' .ds $BIB_FAM \\$1 -. if '\\$0'BIBLIOGRAPHY_STRING_FAMILY' .ds $BIB_STRING_FAM \\$1 -. if '\\$0'BLOCKQUOTE_FAMILY' .ds $BQUOTE_FAM \\$1 -. if '\\$0'CITATION_FAMILY' .ds $BQUOTE_FAM \\$1 -. if '\\$0'CITE_FAMILY' .ds $BQUOTE_FAM \\$1 -. if '\\$0'CHAPTER_TITLE_FAMILY' .ds $CHAPTER_TITLE_FAM \\$1 -. if '\\$0'COVER_AUTHOR_FAMILY' .ds $COVER_AUTHOR_FAM \\$1 -. if '\\$0'COVER_CHAPTER_TITLE_FAMILY' .ds $COVER_CHAPTER_TITLE_FAM \\$1 -. if '\\$0'COVER_COPYRIGHT_FAMILY' .ds $COVER_COPYRIGHT_FAM \\$1 -. if '\\$0'COVER_DOCTYPE_FAMILY' .ds $COVER_DOCTYPE_FAM \\$1 -. if '\\$0'COVER_FAMILY' .ds $COVER_FAM \\$1 -. if '\\$0'COVER_SUBTITLE_FAMILY' .ds $COVER_SUBTITLE_FAM \\$1 -. if '\\$0'COVER_TITLE_FAMILY' .ds $COVER_TITLE_FAM \\$1 -. if '\\$0'DOC_COVER_AUTHOR_FAMILY' .ds $DOC_COVER_AUTHOR_FAM \\$1 -. if '\\$0'DOC_COVER_CHAPTER_TITLE_FAMILY' .ds $DOC_COVER_CHAPTER_TITLE_FAM \\$1 -. if '\\$0'DOC_COVER_COPYRIGHT_FAMILY' .ds $DOC_COVER_COPYRIGHT_FAM \\$1 -. if '\\$0'DOC_COVER_DOCTYPE_FAMILY' .ds $DOC_COVER_DOCTYPE_FAM \\$1 -. if '\\$0'DOC_COVER_FAMILY' .ds $DOC_COVER_FAM \\$1 -. if '\\$0'DOC_COVER_SUBTITLE_FAMILY' .ds $DOC_COVER_SUBTITLE_FAM \\$1 -. if '\\$0'DOC_COVER_TITLE_FAMILY' .ds $DOC_COVER_TITLE_FAM \\$1 -. if '\\$0'DOCHEADER_FAMILY' .ds $DOCHEADER_FAM \\$1 -. if '\\$0'DOCTYPE_FAMILY' .ds $DOCTYPE_FAM \\$1 -. if '\\$0'ENDNOTE_FAMILY' .ds $EN_FAM \\$1 -. if '\\$0'ENDNOTE_NUMBER_FAMILY' .ds $EN_NUMBER_FAM \\$1 -. if '\\$0'ENDNOTE_LINENUMBER_FAMILY' .ds $EN_LN_FAM \\$1 -. if '\\$0'ENDNOTE_STRING_FAMILY' .ds $EN_STRING_FAM \\$1 -. if '\\$0'ENDNOTE_TITLE_FAMILY' .ds $EN_TITLE_FAM \\$1 -. if '\\$0'EPIGRAPH_FAMILY' .ds $EPI_FAM \\$1 -. if '\\$0'FOOTNOTE_FAMILY' .ds $FN_FAM \\$1 -. if '\\$0'HDRFTR_CENTER_FAMILY' .ds $HDRFTR_CENTER_FAM \\$1 -. if '\\$0'HDRFTR_FAMILY' \{\ -. ds $HDRFTR_FAM \\$1 -. ds $HDRFTR_LEFT_FAM \\$1 -. ds $HDRFTR_CENTER_FAM \\$1 -. ds $HDRFTR_RIGHT_FAM \\$1 -. \} -. if '\\$0'HDRFTR_LEFT_FAMILY' .ds $HDRFTR_LEFT_FAM \\$1 -. if '\\$0'HDRFTR_RIGHT_FAMILY' .ds $HDRFTR_RIGHT_FAM \\$1 -. if '\\$0'HEAD_FAMILY' .ds $HEAD_FAM \\$1 -. if '\\$0'PAGENUM_FAMILY' .ds $PAGE_NUM_FAM \\$1 -. if '\\$0'PARAHEAD_FAMILY' .ds $PH_FAM \\$1 -. if '\\$0'QUOTE_FAMILY' .ds $QUOTE_FAM \\$1 -. if '\\$0'SUBHEAD_FAMILY' .ds $SH_FAM \\$1 -. if '\\$0'SUBTITLE_FAMILY' .ds $SUBTITLE_FAM \\$1 -. if '\\$0'TITLE_FAMILY' .ds $TITLE_FAM \\$1 -. if '\\$0'TOC_FAMILY' .ds $TOC_FAM \\$1 -. if '\\$0'TOC_FAM' .ds $TOC_FAM \\$1 -. if '\\$0'TOC_HEADER_FAMILY' .ds $TOC_HEADER_FAM \\$1 -. if '\\$0'TOC_HEAD_FAMILY' .ds $TOC_HEAD_FAM \\$1 -. if '\\$0'TOC_PARAHEAD_FAMILY' .ds $TOC_PH_FAM \\$1 -. if '\\$0'TOC_PN_FAMILY' .ds $TOC_PN_FAM \\$1 -. if '\\$0'TOC_SUBHEAD_FAMILY' .ds $TOC_SH_FAM \\$1 -. if '\\$0'TOC_TITLE_FAMILY' .ds $TOC_TITLE_FAM \\$1 -.END -\# -\# -.MAC _FONT END -. if '\\$0'AUTHOR_FONT' .ds $AUTHOR_FT \\$1 -. if '\\$0'BIBLIOGRAPHY_FONT' .ds $BIB_FT \\$1 -. if '\\$0'BIBLIOGRAPHY_STRING_FONT' .ds $BIB_STRING_FT \\$1 -. if '\\$0'BLOCKQUOTE_FONT' .ds $BQUOTE_FT \\$1 -. if '\\$0'CITATION_FONT' .ds $BQUOTE_FT \\$1 -. if '\\$0'CITE_FONT' .ds $BQUOTE_FT \\$1 -. if '\\$0'CHAPTER_TITLE_FONT' .ds $CHAPTER_TITLE_FT \\$1 -. if '\\$0'COVER_AUTHOR_FONT' .ds $COVER_AUTHOR_FT \\$1 -. if '\\$0'COVER_CHAPTER_TITLE_FONT' .ds $COVER_CHAPTER_TITLE_FT \\$1 -. if '\\$0'COVER_COPYRIGHT_FONT' .ds $COVER_COPYRIGHT_FT \\$1 -. if '\\$0'COVER_DOCTYPE_FONT' .ds $COVER_DOCTYPE_FT \\$1 -. if '\\$0'COVER_SUBTITLE_FONT' .ds $COVER_SUBTITLE_FT \\$1 -. if '\\$0'COVER_TITLE_FONT' .ds $COVER_TITLE_FT \\$1 -. if '\\$0'DOC_COVER_AUTHOR_FONT' .ds $DOC_COVER_AUTHOR_FT \\$1 -. if '\\$0'DOC_COVER_CHAPTER_TITLE_FONT' .ds $DOC_COVER_CHAPTER_TITLE_FT \\$1 -. if '\\$0'DOC_COVER_COPYRIGHT_FONT' .ds $DOC_COVER_COPYRIGHT_FT \\$1 -. if '\\$0'DOC_COVER_DOCTYPE_FONT' .ds $DOC_COVER_DOCTYPE_FT \\$1 -. if '\\$0'DOC_COVER_SUBTITLE_FONT' .ds $DOC_COVER_SUBTITLE_FT \\$1 -. if '\\$0'DOC_COVER_TITLE_FONT' .ds $DOC_COVER_TITLE_FT \\$1 -. if '\\$0'DOCTYPE_FONT' .ds $DOCTYPE_FT \\$1 -. if '\\$0'ENDNOTE_FONT' .ds $EN_FT \\$1 -. if '\\$0'ENDNOTE_NUMBER_FONT' .ds $EN_NUMBER_FT \\$1 -. if '\\$0'ENDNOTE_LINENUMBER_FONT' .ds $EN_LN_FT \\$1 -. if '\\$0'ENDNOTE_STRING_FONT' .ds $EN_STRING_FT \\$1 -. if '\\$0'ENDNOTE_TITLE_FONT' .ds $EN_TITLE_FT \\$1 -. if '\\$0'EPIGRAPH_FONT' .ds $EPI_FT \\$1 -. if '\\$0'FOOTNOTE_FONT' .ds $FN_FT \\$1 -. if '\\$0'HDRFTR_CENTER_FONT' .ds $HDRFTR_CENTER_FT \\$1 -. if '\\$0'HDRFTR_LEFT_FONT' .ds $HDRFTR_LEFT_FT \\$1 -. if '\\$0'HDRFTR_RIGHT_FONT' .ds $HDRFTR_RIGHT_FT \\$1 -. if '\\$0'HEAD_FONT' .ds $HEAD_FT \\$1 -. if '\\$0'PAGENUM_FONT' .ds $PAGE_NUM_FT \\$1 -. if '\\$0'PARAHEAD_FONT' .ds $PH_FT \\$1 -. if '\\$0'QUOTE_FONT' .ds $QUOTE_FT \\$1 -. if '\\$0'SUBHEAD_FONT' .ds $SH_FT \\$1 -. if '\\$0'SUBTITLE_FONT' .ds $SUBTITLE_FT \\$1 -. if '\\$0'TITLE_FONT' .ds $TITLE_FT \\$1 -. if '\\$0'TOC_HEADER_FONT' .ds $TOC_HEADER_FT \\$1 -. if '\\$0'TOC_HEAD_FONT' .ds $TOC_HEAD_FT \\$1 -. if '\\$0'TOC_PARAHEAD_FONT' .ds $TOC_PH_FT \\$1 -. if '\\$0'TOC_PN_FONT' .ds $TOC_PN_FT \\$1 -. if '\\$0'TOC_SUBHEAD_FONT' .ds $TOC_SH_FT \\$1 -. if '\\$0'TOC_TITLE_FONT' .ds $TOC_TITLE_FT \\$1 -.END -\# -\# -.MAC _SIZE END -. if '\\$0'AUTHOR_SIZE' .ds $AUTHOR_SIZE_CHANGE \\$1 -. if '\\$0'BIBLIOGRAPHY_STRING_SIZE' .ds $BIB_STRING_SIZE_CHANGE \\$1 -. if '\\$0'BLOCKQUOTE_SIZE' .ds $BQUOTE_SIZE_CHANGE \\$1 -. if '\\$0'CITATION_SIZE' .ds $BQUOTE_SIZE_CHANGE \\$1 -. if '\\$0'CITE_SIZE' .ds $BQUOTE_SIZE_CHANGE \\$1 -. if '\\$0'CHAPTER_TITLE_SIZE' .ds $CHAPTER_TITLE_SIZE_CHANGE \\$1 -. if '\\$0'COVER_AUTHOR_SIZE' .ds $COVER_AUTHOR_SIZE_CHANGE \\$1 -. if '\\$0'COVER_CHAPTER_TITLE_SIZE' .ds $COVER_CHAPTER_TITLE_SIZE_CHANGE \\$1 -. if '\\$0'COVER_COPYRIGHT_SIZE' .ds $COVER_COPYRIGHT_SIZE_CHANGE \\$1 -. if '\\$0'COVER_DOCTYPE_SIZE' .ds $COVER_DOCTYPE_SIZE_CHANGE \\$1 -. if '\\$0'COVER_SUBTITLE_SIZE' .ds $COVER_SUBTITLE_SIZE_CHANGE \\$1 -. if '\\$0'COVER_TITLE_SIZE' .ds $COVER_TITLE_SIZE_CHANGE \\$1 -. if '\\$0'DOC_COVER_AUTHOR_SIZE' .ds $DOC_COVER_AUTHOR_SIZE_CHANGE \\$1 -. if '\\$0'DOC_COVER_CHAPTER_TITLE_SIZE' .ds $DOC_COVER_CHAPTER_TITLE_SIZE_CHANGE \\$1 -. if '\\$0'DOC_COVER_COPYRIGHT_SIZE' .ds $DOC_COVER_COPYRIGHT_SIZE_CHANGE \\$1 -. if '\\$0'DOC_COVER_DOCTYPE_SIZE' .ds $DOC_COVER_DOCTYPE_SIZE_CHANGE \\$1 -. if '\\$0'DOC_COVER_SUBTITLE_SIZE' .ds $DOC_COVER_SUBTITLE_SIZE_CHANGE \\$1 -. if '\\$0'DOC_COVER_TITLE_SIZE' .ds $DOC_COVER_TITLE_SIZE_CHANGE \\$1 -. if '\\$0'DOCTYPE_SIZE' .ds $DOCTYPE_SIZE_CHANGE \\$1 -. if '\\$0'ENDNOTE_NUMBER_SIZE' .ds $EN_NUMBER_SIZE_CHANGE \\$1 -. if '\\$0'ENDNOTE_LINENUMBER_SIZE' .ds $EN_LN_SIZE_CHANGE \\$1 -. if '\\$0'ENDNOTE_STRING_SIZE' .ds $EN_STRING_SIZE_CHANGE \\$1 -. if '\\$0'ENDNOTE_TITLE_SIZE' .ds $EN_TITLE_SIZE_CHANGE \\$1 -. if '\\$0'EPIGRAPH_SIZE' .ds $EPI_SIZE_CHANGE \\$1 -. if '\\$0'FOOTNOTE_SIZE' .ds $FN_SIZE_CHANGE \\$1 -. if '\\$0'HDRFTR_CENTER_SIZE' .ds $HDRFTR_CENTER_SIZE_CHANGE \\$1 -. if '\\$0'HDRFTR_LEFT_SIZE' .ds $HDRFTR_LEFT_SIZE_CHANGE \\$1 -. if '\\$0'HDRFTR_RIGHT_SIZE' .ds $HDRFTR_RIGHT_SIZE_CHANGE \\$1 -. if '\\$0'HDRFTR_SIZE' .ds $HDRFTR_SIZE_CHANGE \\$1 -. if '\\$0'HEAD_SIZE' .ds $HEAD_SIZE_CHANGE \\$1 -. if '\\$0'PAGENUM_SIZE' .ds $PAGE_NUM_SIZE_CHANGE \\$1 -. if '\\$0'PARAHEAD_SIZE' .ds $PH_SIZE_CHANGE \\$1 -. if '\\$0'QUOTE_SIZE' .ds $QUOTE_SIZE_CHANGE \\$1 -. if '\\$0'SUBHEAD_SIZE' .ds $SH_SIZE_CHANGE \\$1 -. if '\\$0'SUBTITLE_SIZE' .ds $SUBTITLE_SIZE_CHANGE \\$1 -. if '\\$0'TITLE_SIZE' .ds $TITLE_SIZE_CHANGE \\$1 -. if '\\$0'TOC_HEADER_SIZE' .ds $TOC_HEADER_SIZE_CHANGE \\$1 -. if '\\$0'TOC_HEAD_SIZE' .ds $TOC_HEAD_SIZE_CHANGE \\$1 -. if '\\$0'TOC_PARAHEAD_SIZE' .ds $TOC_PH_SIZE_CHANGE \\$1 -. if '\\$0'TOC_PN_SIZE' .ds $TOC_PN_SIZE_CHANGE \\$1 -. if '\\$0'TOC_SUBHEAD_SIZE' .ds $TOC_SH_SIZE_CHANGE \\$1 -. if '\\$0'TOC_TITLE_SIZE' .ds $TOC_TITLE_SIZE_CHANGE \\$1 -.END -\# -\# -.MAC _COLOR END -. if \\n[#PRINT_STYLE]=1 \{ .return \} -. if '\\$0'ATTRIBUTE_COLOR' \{\ -. nr #ATTRIBUTE_COLOR 1 -. ds $ATTRIBUTE_COLOR \\$1 -. \} -. if '\\$0'AUTHOR_COLOR' \{\ -. nr #AUTHOR_COLOR 1 -. ds $AUTHOR_COLOR \\$1 -. \} -. if '\\$0'BLOCKQUOTE_COLOR' \{\ -. nr #BQUOTE_COLOR 1 -. ds $BQUOTE_COLOR \\$1 -. \} -. if '\\$0'CITATION_COLOR' \{\ -. nr #BQUOTE_COLOR 1 -. ds $BQUOTE_COLOR \\$1 -. \} -. if '\\$0'CITE_COLOR' \{\ -. nr #BQUOTE_COLOR 1 -. ds $BQUOTE_COLOR \\$1 -. \} -. if '\\$0'CHAPTER_TITLE_COLOR' \{\ -. nr #CHAPTER_TITLE_COLOR 1 -. ds $CHAPTER_TITLE_COLOR \\$1 -. \} -. if '\\$0'COVER_ATTRIBUTE_COLOR' \{\ -. nr #COVER_ATTRIBUTE_COLOR 1 -. ds $COVER_ATTRIBUTE_COLOR \\$1 -. \} -. if '\\$0'COVER_AUTHOR_COLOR' \{\ -. nr #COVER_AUTHOR_COLOR 1 -. ds $COVER_AUTHOR_COLOR \\$1 -. \} -. if '\\$0'COVER_CHAPTER_TITLE_COLOR' \{\ -. nr #COVER_CHAPTER_TITLE_COLOR 1 -. ds $COVER_CHAPTER_TITLE_COLOR \\$1 -. \} -. if '\\$0'COVER_COLOR' \{\ -. nr #COVER_COLOR 1 -. ds $COVER_COLOR \\$1 -. \} -. if '\\$0'COVER_COPYRIGHT_COLOR' \{\ -. nr #COVER_COPYRIGHT_COLOR 1 -. ds $COVER_COPYRIGHT_COLOR \\$1 -. \} -. if '\\$0'COVER_MISC_COLOR' \{\ -. nr #COVER_MISC_COLOR 1 -. ds $COVER_MISC_COLOR \\$1 -. \} -. if '\\$0'COVER_TITLE_COLOR' \{\ -. nr #COVER_TITLE_COLOR 1 -. ds $COVER_TITLE_COLOR \\$1 -. \} -. if '\\$0'COVER_SUBTITLE_COLOR' \{\ -. nr #COVER_SUBTITLE_COLOR 1 -. ds $COVER_SUBTITLE_COLOR \\$1 -. \} -. if '\\$0'COVER_DOCTYPE_COLOR' \{\ -. nr #COVER_DOCTYPE_COLOR 1 -. ds $COVER_DOCTYPE_COLOR \\$1 -. \} -. if '\\$0'DOC_COVER_ATTRIBUTE_COLOR' \{\ -. nr #DOC_COVER_ATTRIBUTE_COLOR 1 -. ds $DOC_COVER_ATTRIBUTE_COLOR \\$1 -. \} -. if '\\$0'DOC_COVER_AUTHOR_COLOR' \{\ -. nr #DOC_COVER_AUTHOR_COLOR 1 -. ds $DOC_COVER_AUTHOR_COLOR \\$1 -. \} -. if '\\$0'DOC_COVER_CHAPTER_TITLE_COLOR' \{\ -. nr #DOC_COVER_CHAPTER_TITLE_COLOR 1 -. ds $DOC_COVER_CHAPTER_TITLE_COLOR \\$1 -. \} -. if '\\$0'DOC_COVER_COLOR' \{\ -. nr #DOC_COVER_COLOR 1 -. ds $DOC_COVER_COLOR \\$1 -. \} -. if '\\$0'DOC_COVER_COPYRIGHT_COLOR' \{\ -. nr #DOC_COVER_COPYRIGHT_COLOR 1 -. ds $DOC_COVER_COPYRIGHT_COLOR \\$1 -. \} -. if '\\$0'DOC_COVER_MISC_COLOR' \{\ -. nr #DOC_COVER_MISC_COLOR 1 -. ds $DOC_COVER_MISC_COLOR \\$1 -. \} -. if '\\$0'DOC_COVER_TITLE_COLOR' \{\ -. nr #DOC_COVER_TITLE_COLOR 1 -. ds $DOC_COVER_TITLE_COLOR \\$1 -. \} -. if '\\$0'DOC_COVER_SUBTITLE_COLOR' \{\ -. nr #DOC_COVER_SUBTITLE_COLOR 1 -. ds $DOC_COVER_SUBTITLE_COLOR \\$1 -. \} -. if '\\$0'DOC_COVER_DOCTYPE_COLOR' \{\ -. nr #DOC_COVER_DOCTYPE_COLOR 1 -. ds $DOC_COVER_DOCTYPE_COLOR \\$1 -. \} -. if '\\$0'DOCHEADER_COLOR' \{\ -. nr #DOCHEADER_COLOR 1 -. ds $DOCHEADER_COLOR \\$1 -. \} -. if '\\$0'DOCTYPE_COLOR' \{\ -. nr #DOCTYPE_COLOR 1 -. ds $DOCTYPE_COLOR \\$1 -. \} -. if '\\$0'EPIGRAPH_COLOR' \{\ -. nr #EPI_COLOR 1 -. ds $EPI_COLOR \\$1 -. \} -. if '\\$0'FINIS_COLOR' \{\ -. nr #FINIS_COLOR 1 -. ds $FINIS_COLOR \\$1 -. \} -. if '\\$0'FOOTNOTE_COLOR' \{\ -. nr #FOOTNOTE_COLOR 1 -. ds $FOOTNOTE_COLOR \\$1 -. \} -. if '\\$0'HDRFTR_CENTER_COLOR' \{\ -. nr #HDRFTR_CENTER_COLOR 1 -. ds $HDRFTR_CENTER_COLOR \\$1 -. \} -. if '\\$0'HDRFTR_COLOR' \{\ -. nr #HDRFTR_COLOR 1 -. ds $HDRFTR_COLOR \\$1 -. \} -. if '\\$0'HDRFTR_LEFT_COLOR' \{\ -. nr #HDRFTR_LEFT_COLOR 1 -. ds $HDRFTR_LEFT_COLOR \\$1 -. \} -. if '\\$0'HDRFTR_RIGHT_COLOR' \{\ -. nr #HDRFTR_RIGHT_COLOR 1 -. ds $HDRFTR_RIGHT_COLOR \\$1 -. \} -. if '\\$0'HDRFTR_RULE_COLOR' \{\ -. nr #HDRFTR_RULE_COLOR 1 -. ds $HDRFTR_RULE_COLOR \\$1 -. \} -. if '\\$0'HEAD_COLOR' \{\ -. nr #HEAD_COLOR 1 -. ds $HEAD_COLOR \\$1 -. \} -. if '\\$0'LINEBREAK_COLOR' \{\ -. nr #LINEBREAK_COLOR 1 -. ds $LINEBREAK_COLOR \\$1 -. \} -. if '\\$0'PAGENUM_COLOR' \{\ -. nr #PAGE_NUM_COLOR 1 -. ds $PAGENUM_COLOR \\$1 -. \} -. if '\\$0'PARAHEAD_COLOR' \{\ -. nr #PH_COLOR 1 -. ds $PH_COLOR \\$1 -. \} -. if '\\$0'QUOTE_COLOR' \{\ -. nr #QUOTE_COLOR 1 -. ds $QUOTE_COLOR \\$1 -. \} -. if '\\$0'SUBHEAD_COLOR' \{\ -. nr #SH_COLOR 1 -. ds $SH_COLOR \\$1 -. \} -. if '\\$0'SUBTITLE_COLOR' \{\ -. nr #SUBTITLE_COLOR 1 -. ds $SUBTITLE_COLOR \\$1 -. \} -. if '\\$0'TITLE_COLOR' \{\ -. nr #TITLE_COLOR 1 -. ds $TITLE_COLOR \\$1 -. \} -.END -\# -\# -.MAC _QUAD END -. if '\\$0'BIBLIOGRAPHY_QUAD' \{\ -. ds $BIB_QUAD \\$1 -. if '\\*[$BIB_QUAD]'R' .ab Fatal error: \\$0 must be set to either L or J -. if '\\*[$BIB_QUAD]'C' .ab Fatal error: \\$0 must be set to either L or J -. \} -. if '\\$0'BIBLIOGRAPHY_STRING_QUAD' .ds $BIB_STRING_QUAD \\$1 -. if '\\$0'BLOCKQUOTE_QUAD' .ds $BQUOTE_QUAD \\$1 -. if '\\$0'CITATION_QUAD' .ds $BQUOTE_QUAD \\$1 -. if '\\$0'CITE_QUAD' .ds $BQUOTE_QUAD \\$1 -. if '\\$0'COVER_COPYRIGHT_QUAD' .ds $COVER_COPYRIGHT_QUAD \\$1 -. if '\\$0'COVER_MISC_QUAD' .ds $COVER_MISC_QUAD \\$1 -. if '\\$0'DOC_COVER_COPYRIGHT_QUAD' .ds $DOC_COVER_COPYRIGHT_QUAD \\$1 -. if '\\$0'DOC_COVER_MISC_QUAD' .ds $DOC_COVER_MISC_QUAD \\$1 -. if '\\$0'DOC_QUAD' \{\ -. ds $DOC_QUAD \\$1 -. QUAD \\*[$DOC_QUAD] -. \} -. if '\\$0'ENDNOTE_QUAD' \{\ -. ds $EN_QUAD \\$1 -. if '\\*[$EN_QUAD]'R' .ab Fatal error: \\$0 must be set to either L or J -. if '\\*[$EN_QUAD]'C' .ab Fatal error: \\$0 must be set to either L or J -. \} -. if '\\$0'ENDNOTE_STRING_QUAD' .ds $EN_STRING_QUAD \\$1 -. if '\\$0'ENDNOTE_TITLE_QUAD' .ds $EN_TITLE_QUAD \\$1 -. if '\\$0'EPIGRAPH_QUAD' .ds $EPI_QUAD \\$1 -. if '\\$0'FOOTNOTE_QUAD' .ds $FN_QUAD \\$1 -. if '\\$0'HEAD_QUAD' .ds $HEAD_QUAD \\$1 -. if '\\$0'SUBHEAD_QUAD' .ds $SH_QUAD \\$1 -. if '\\$0'TOC_HEADER_QUAD' .ds $TOC_HEADER_QUAD \\$1 -.END -\# -\# -\# DEFAULTS -\# -------- -\# *Arguments: -\# -\# *Function: -\# Sets up defaults if no values are entered prior to START. -\# *Notes: -\# The defaults for $CHAPTER_STRING, $DRAFT_STRING, and -\# $REVISION_STRING are in the COPYSTYLE macro. -\# -.MAC DEFAULTS END -. if !d$PAPER \{ .PAPER LETTER \} -. if !\\n[#DOC_TYPE] \{ .DOCTYPE DEFAULT \} -. ie \\n[#PAGENUM_STYLE_SET] \{ .PAGENUM_STYLE \\*[$PAGENUM_STYLE] \} -. el \{\ -. if !\\n[#COPY_STYLE]=1 \{ .PAGENUM_STYLE DIGIT \} -. \} -. if !\\n[#COPY_STYLE] \{ .COPYSTYLE FINAL \} -. if \\n[#DRAFT_WITH_PAGENUM] \{ .COPYSTYLE \\*[$COPY_STYLE] \} -. if \\n[#DOC_TYPE]=4 \{\ -. if !\\n[#USER_SET_L_LENGTH] \{\ -. R_MARGIN \\n[#R_MARGIN]u -. rr #USER_SET_L_LENGTH -. \} -. if \\n[#PRINT_STYLE]=1 \{ .PRINTSTYLE TYPEWRITE SINGLESPACE \} -. \} -. if \\n[#COPY_STYLE]=1 \{\ -. COPYSTYLE DRAFT -. PAGENUMBER 1 -. \} -. if !r#DOC_HEADER \{ .DOCHEADER \} -. if !r#HEADERS_ON \{ .HEADERS \} -. if !r#PAGINATE \{ .PAGINATE \} -. if \\n[#FOOTERS_ON] \{\ -. HEADERS OFF -. if \\n[#PAGE_NUM_POS_SET]=0 \{ .PAGENUM_POS TOP CENTER \} -. \} -. if !r#HEADER_MARGIN \{ .HEADER_MARGIN 4P+6p \} -. if !r#HEADER_GAP \{ .HEADER_GAP 3P \} -. if \\n[#FOOTERS_ON] \{\ -. if \\n[#PAGINATE]=0 \{\ -. if !r#T_MARGIN \{ .T_MARGIN 6P \} -. \} -. \} -. if \\n[#HEADERS_ON]=0 \{\ -. if \\n[#FOOTERS_ON]=0 \{\ -. if !r#T_MARGIN \{ .T_MARGIN 6P \} -. \} -. \} -. if !r#T_MARGIN \{ .T_MARGIN \\n[#HEADER_MARGIN]+\\n[#HEADER_GAP] \} -. if !r#DOCHEADER_ADVANCE \{ .nr #DOCHEADER_ADVANCE \\n[#T_MARGIN] \} -. if !r#FOOTER_MARGIN \{ .FOOTER_MARGIN 3P \} -. if !r#FOOTER_GAP \{ .FOOTER_GAP 3P \} -. if !r#B_MARGIN \{ .B_MARGIN \\n[#FOOTER_MARGIN]u+\\n[#FOOTER_GAP]u \} -. if (\\n[#FOOTER_MARGIN]+\\n(.v)>\\n[#B_MARGIN] \{\ -. tm1 "[mom]: Your chosen bottom margin for running text is too close to the footer margin. -. tm1 " No footers or bottom-of-page page numbers will be printed. -. tm1 " Please reset B_MARGIN or FOOTER_MARGIN to allow enough space. -. tm1 " If no footers or bottom-of-page page numbers are required, -. tm1 " type in .FOOTER_MARGIN 0 before .START -. \} -. if !r#HDRFTR_RULE_GAP \{\ -. if \\n[#HEADERS_ON] \{ .HDRFTR_RULE_GAP 4p \} -. if \\n[#FOOTERS_ON] \{ .HDRFTR_RULE_GAP 4p \} -. \} -. if !r#HDRFTR_RULE \{ .HDRFTR_RULE \} -. if !r#PAGE_NUM_SET \{ .PAGENUMBER 1 \} -.\" Read in number registers and strings for type parameters -. nr #DOC_L_MARGIN \\n[#L_MARGIN] -. nr #DOC_L_LENGTH \\n[#L_LENGTH] -. nr #DOC_R_MARGIN \\n[#PAGE_WIDTH]-(\\n[#DOC_L_MARGIN]+\\n[#L_LENGTH]) -. ds $DOC_FAM \\*[$FAMILY] -. nr #DOC_PT_SIZE \\n[#PT_SIZE] -. nr #DOC_LEAD \\n[#LEAD] -.\" #SAVED_DOC_LEAD is set in COLLATE -. if r#SAVED_DOC_LEAD \{\ -. if !\\n[#DOC_LEAD]=\\n[#SAVED_DOC_LEAD] \{ .nr #RERUN_TRAPS 1 \} -. \} -. ie \\n[#ADJ_DOC_LEAD]=1 \{ . \} -. el \{\ -. if !\\n[#DOC_LEAD_ADJUST_OFF] \{\ -. DOC_LEAD_ADJUST -. \} -. \} -. ds $DOC_QUAD \\*[$QUAD_VALUE] -. ds $PP_FT \\*[$FONT] -.\" Counters -. nr #PP 0 -. nr #FN_NUMBER 0 1 -. nr #EN_NUMBER 0 1 -. nr #FN_COUNT_FOR_COLS 0 1 -. nr #DONE_ONCE 0 1 -. RESET_HEAD_NUMBER -. RESET_SUBHEAD_NUMBER -. RESET_PARAHEAD_NUMBER -.\" General style defaults for both PRINTSTYLEs -. nr #PP_STYLE 1 -. PARA_INDENT \\n[#PP_INDENT]u -. if !d$HDRFTR_FAM \{ .HDRFTR_FAMILY \\*[$DOC_FAM] \} -. if !d$HDRFTR_SIZE_CHANGE \{ .HDRFTR_SIZE +0 \} -. if !d$PAGE_NUM_FAM \{ .PAGENUM_FAMILY \\*[$DOC_FAM] \} -. if !d$PAGE_NUM_FT \{ .PAGENUM_FONT R \} -. if !d$PAGE_NUM_SIZE_CHANGE \{ .PAGENUM_SIZE +0 \} -. if !r#PAGE_NUM_POS_SET \{ .PAGENUM_POS BOTTOM CENTER \} -. ie \\n[#PAGE_NUM_HYPHENS_SET] \{\ -. if \\n[#PAGE_NUM_HYPHENS]=0 \{ .PAGENUM_HYPHENS OFF \} -. if \\n[#PAGE_NUM_HYPHENS]=1 \{ .PAGENUM_HYPHENS \} -. \} -. el \{ .PAGENUM_HYPHENS \} -. if !d$HEAD_QUAD \{ .HEAD_QUAD CENTER \} -. if !r#HEAD_CAPS \{ .HEAD_CAPS \} -. if !r#HEAD_UNDERLINE \{ .HEAD_UNDERLINE \} -. if !d$SH_QUAD \{ .SUBHEAD_QUAD LEFT \} -. if !r#HDRFTR_RIGHT_CAPS \{ .HDRFTR_RIGHT_CAPS \} -. if \\n[#HDRFTR_RIGHT_CAPS]=0 \{\ -. if !d$HDRFTR_RIGHT_SIZE_CHANGE \{ .HDRFTR_RIGHT_SIZE +0 \} -. \} -. if !d$FN_FAM \{ .FOOTNOTE_FAMILY \\*[$DOC_FAM] \} -. if !d$FN_FT \{ .FOOTNOTE_FONT R \} -. if !d$FN_QUAD \{ .FOOTNOTE_QUAD \\*[$DOC_QUAD] \} -. if !r#FN_RULE \{ .FOOTNOTE_RULE \} -. if !r#FN_MARKERS \{ .FOOTNOTE_MARKERS \} -. if !\\n[#FN_MARKER_STYLE] \{ .FOOTNOTE_MARKER_STYLE STAR \} -. if !\\n[#EN_MARKER_STYLE] \{ .ENDNOTE_MARKER_STYLE NUMBER \} -. if !d$EN_PN_STYLE \{ .ENDNOTES_PAGENUM_STYLE digit \} -. if !d$EN_FAM \{ .ENDNOTE_FAMILY \\*[$DOC_FAM] \} -. if !d$EN_FT \{ .ENDNOTE_FONT R \} -. if !d$EN_QUAD \{ .ENDNOTE_QUAD \\*[$DOC_QUAD] \} -. if !d$EN_STRING \{ .ENDNOTE_STRING "Endnotes" \} -. if !d$EN_STRING_FAM \{ .ENDNOTE_STRING_FAMILY \\*[$EN_FAM] \} -. if !d$EN_STRING_QUAD \{ .ENDNOTE_STRING_QUAD CENTER \} -. if !r#EN_STRING_UNDERSCORE \{ .ENDNOTE_STRING_UNDERSCORE 2 \} -. if !r#EN_STRING_CAPS \{ .ENDNOTE_STRING_CAPS \} -. if !d$EN_TITLE \{\ -. ie \\n[#DOC_TYPE]=2 \{\ -. ie '\\*[$CHAPTER]'' \{ .ENDNOTE_TITLE "\\*[$CHAPTER_STRING]" \} -. el \{ .ENDNOTE_TITLE "\\*[$CHAPTER_STRING] \\*[$CHAPTER]" \} -. \} -. el \{ .ENDNOTE_TITLE "\\*[$TITLE]" \} -. \} -. if !d$EN_TITLE_FAM \{ .ENDNOTE_TITLE_FAMILY \\*[$EN_FAM] \} -. if !d$EN_TITLE_QUAD \{ .ENDNOTE_TITLE_QUAD LEFT \} -. if !r#EN_TITLE_UNDERSCORE \{ .ENDNOTE_TITLE_UNDERSCORE \} -. if !d$EN_NUMBER_FAM \{ .ENDNOTE_NUMBER_FAMILY \\*[$EN_FAM] \} -. if !r#EN_NUMBERS_ALIGN_LEFT \{\ -. if !r#EN_NUMBERS_ALIGN_RIGHT \{ .ENDNOTE_NUMBERS_ALIGN_RIGHT 2 \} -. \} -. if !d$EN_LN_GAP \{ .ENDNOTE_LINENUMBER_GAP 1.5n \} -. if !d$BIB_PN_STYLE \{ .BIBLIOGRAPHY_PAGENUM_STYLE digit \} -. if !d$BIB_FAM \{ .BIBLIOGRAPHY_FAMILY \\*[$DOC_FAM] \} -. if !d$BIB_FT \{ .BIBLIOGRAPHY_FONT R \} -. if !d$BIB_QUAD \{ .BIBLIOGRAPHY_QUAD \\*[$DOC_QUAD] \} -. if !d$BIB_STRING \{ .BIBLIOGRAPHY_STRING "Bibliography" \} -. if !d$BIB_STRING_FAM \{ .BIBLIOGRAPHY_STRING_FAMILY \\*[$BIB_FAM] \} -. if !d$BIB_STRING_QUAD \{ .BIBLIOGRAPHY_STRING_QUAD CENTER \} -. if !r#BIB_STRING_UNDERSCORE \{ .BIBLIOGRAPHY_STRING_UNDERSCORE 2 \} -. if !r#BIB_STRING_CAPS \{ .BIBLIOGRAPHY_STRING_CAPS \} -. if !d$TOC_HEADER_STRING \{ .TOC_HEADER_STRING "Contents" \} -. if !d$TOC_HEADER_QUAD \{ .TOC_HEADER_QUAD LEFT \} -. if !d$TOC_PN_STYLE \{ .TOC_PAGENUM_STYLE roman \} -. if !r#TOC_PN_PADDING \{ .TOC_PADDING 3 \} -. if !r#TOC_TITLE_INDENT \{ .TOC_TITLE_INDENT 0 \} -. if !r#TOC_HEAD_INDENT \{ .TOC_HEAD_INDENT 18p \} -. if !r#TOC_SH_INDENT \{ .TOC_SUBHEAD_INDENT 30p \} -. if !r#TOC_PH_INDENT \{ .TOC_PARAHEAD_INDENT 42p \} -.\" String defaults for both PRINTSTYLEs -. ie \\n[#DOC_TYPE]=1 \{\ -. ie '\\*[$DOC_TITLE]'' \{\ -. if \\n[#USER_DEF_HDRFTR_LEFT]=0 .ds $HDRFTR_LEFT \\*[$AUTHOR_1] -. rr #USER_DEF_HDRFTR_LEFT -. if \\n[#USER_DEF_HDRFTR_RIGHT]=0 .ds $HDRFTR_RIGHT \\*[$TITLE] -. rr #USER_DEF_HDRFTR_RIGHT -. \} -. el \{\ -. if \\n[#COPY_STYLE]=1 \{ .DRAFT_WITH_PAGENUMBER \} -. if \\n[#USER_DEF_HDRFTR_LEFT]=0 .ds $HDRFTR_LEFT \\*[$AUTHOR_1] -. rr #USER_DEF_HDRFTR_LEFT -. if \\n[#USER_DEF_HDRFTR_CENTER]=0 .ds $HDRFTR_CENTER \\*[$TITLE] -. rr #USER_DEF_HDRFTR_CENTER -. if \\n[#USER_DEF_HDRFTR_RIGHT]=0 .ds $HDRFTR_RIGHT \\*[$DOC_TITLE] -. rr #USER_DEF_HDRFTR_RIGHT -. \} -. \} -. el \{\ -. if \\n[#USER_DEF_HDRFTR_LEFT]=0 .ds $HDRFTR_LEFT \\*[$AUTHOR_1] -. rr #USER_DEF_HDRFTR_LEFT -. if \\n[#USER_DEF_HDRFTR_RIGHT]=0 .ds $HDRFTR_RIGHT \\*[$TITLE] -. rr #USER_DEF_HDRFTR_RIGHT -. \} -. if !d$ATTRIBUTE_STRING \{ .ATTRIBUTE_STRING "by" \} -. if !d$FINIS_STRING \{ .FINIS_STRING "END" \} -.\" Covers -. if !r#DOC_COVERS_OFF \{ .nr #DOC_COVERS 1 \} -. if !r#COVERS_OFF \{ .nr #COVERS 1 \} -. if !d$COVER_COPYRIGHT_QUAD \{ .COVER_COPYRIGHT_QUAD R \} -. if !d$COVER_MISC_QUAD \{ .COVER_MISC_QUAD L \} -. if !d$DOC_COVER_COPYRIGHT_QUAD \{ .DOC_COVER_COPYRIGHT_QUAD R \} -. if !d$DOC_COVER_MISC_QUAD \{ .DOC_COVER_MISC_QUAD L \} -.\" Defaults for printstyle TYPEWRITE -. if \\n[#PRINT_STYLE]=1 \{\ -. if \\n[#UNDERLINE_QUOTES]=1 \{ .UNDERLINE_QUOTES \} -. if \\n[#UNDERLINE_QUOTES]=0 \{ .UNDERLINE_QUOTES OFF \} -.\" +Quotes and blockquotes -. if !r#Q_OFFSET_VALUE \{ .QUOTE_INDENT 2 \} -.\" +Epigraphs -. if !r#EPI_OFFSET_VALUE \{ .EPIGRAPH_INDENT 2 \} -.\" +Linebreaks -. if !d$LINEBREAK_CHAR \{ .LINEBREAK_CHAR * 3 2p \} -.\" +Footnotes -. if !d$FN_SIZE_CHANGE \{ .FOOTNOTE_SIZE +0 \} -. if !r#FN_RULE_LENGTH \{ .FOOTNOTE_RULE_LENGTH 2i \} -.\" +Paragraph heads -. if !r#PH_INDENT \{ .PARAHEAD_INDENT \\n[#PP_INDENT]u/2u \} -.\" +Endnotes -. if !r#EN_PP_INDENT \{ .ENDNOTE_PARA_INDENT \\n[#PP_INDENT] \} -.\" +Footnotes -. if !r#FN_RULE_ADJ \{ .FOOTNOTE_RULE_ADJ 6p \} -.\" +Slant stuff -. if !r#SLANT_MEANS_SLANT \{\ -. ie \\n[#UNDERLINE_SLANT]=1 \{ .UNDERLINE_SLANT \} -. el \{ .UNDERLINE_SLANT OFF \} -. \} -. \} -.\" Defaults for printstyle TYPESET -. if \\n[#PRINT_STYLE]=2 \{\ -. if !d$DOCHEADER_LEAD_ADJ \{\ -. ie !'\\*[$CHAPTER_TITLE]'' \{\ -. ie !'\\*[$CHAPTER_STRING]'' \{\ -. DOCHEADER_LEAD +4 -. \} -. el \{ .DOCHEADER_LEAD +0 \} -. \} -. el \{ .DOCHEADER_LEAD +0 \} -. \} -.\" +Cover -. if !d$COVER_LEAD_ADJ \{ .COVER_LEAD +0 \} -. if !d$COVER_FAM \{ .COVER_FAMILY \\*[$DOC_FAM] \} -.\" (title) -. if !d$COVER_TITLE_FAM \{\ -. ie !d$COVER_FAM \{ .COVER_TITLE_FAMILY \\*[$DOC_FAM] \} -. el \{ .COVER_TITLE_FAMILY \\*[$COVER_FAM] \} -. \} -. if !d$COVER_TITLE_FT \{ .COVER_TITLE_FONT B \} -. if !d$COVER_TITLE_SIZE_CHANGE \{ .COVER_TITLE_SIZE +3.5 \} -.\" (chapter title) -. if !d$COVER_CHAPTER_TITLE_FAM \{\ -. ie !d$COVER_FAM \{ .COVER_CHAPTER_TITLE_FAMILY \\*[$DOC_FAM] \} -. el \{ .COVER_CHAPTER_TITLE_FAMILY \\*[$COVER_FAM] \} -. \} -. if !d$COVER_CHAPTER_TITLE_FT \{ .COVER_CHAPTER_TITLE_FONT BI \} -. if !d$COVER_CHAPTER_TITLE_SIZE_CHANGE \{ .COVER_CHAPTER_TITLE_SIZE +4 \} -.\" (subtitle) -. if !d$COVER_SUBTITLE_FAM \{\ -. ie !d$COVER_FAM \{ .COVER_SUBTITLE_FAMILY \\*[$DOC_FAM] \} -. el \{ .COVER_SUBTITLE_FAMILY \\*[$COVER_FAM] \} -. \} -. if !d$COVER_SUBTITLE_FT \{ .COVER_SUBTITLE_FONT R \} -. if !d$COVER_SUBTITLE_SIZE_CHANGE \{ .COVER_SUBTITLE_SIZE +0 \} -.\" (attribution and author[s]) -. if !d$COVER_AUTHOR_FAM \{\ -. ie !d$COVER_FAM \{ .COVER_AUTHOR_FAMILY \\*[$DOC_FAM] \} -. el \{ .COVER_AUTHOR_FAMILY \\*[$COVER_FAM] \} -. \} -. if !d$COVER_AUTHOR_FT \{ .COVER_AUTHOR_FONT I \} -. if !d$COVER_AUTHOR_SIZE_CHANGE \{ .COVER_AUTHOR_SIZE +0 \} -.\" (doctype if "named") -. if !d$COVER_DOCTYPE_FAM \{\ -. ie !d$COVER_FAM \{ .COVER_DOCTYPE_FAMILY \\*[$DOC_FAM] \} -. el \{ .COVER_DOCTYPE_FAMILY \\*[$COVER_FAM] \} -. \} -. if !d$COVER_DOCTYPE_FT \{ .COVER_DOCTYPE_FONT BI \} -. if !d$COVER_DOCTYPE_SIZE_CHANGE \{ .COVER_DOCTYPE_SIZE +3 \} -.\" (copyright) -. if !d$COVER_COPYRIGHT_FAM \{\ -. ie !d$COVER_FAM \{ .COVER_COPYRIGHT_FAMILY \\*[$DOC_FAM] \} -. el \{ .COVER_COPYRIGHT_FAMILY \\*[$COVER_FAM] \} -. \} -. if !d$COVER_COPYRIGHT_FT \{ .COVER_COPYRIGHT_FONT R \} -. if !d$COVER_COPYRIGHT_SIZE_CHANGE \{ .COVER_COPYRIGHT_SIZE -2 \} -.\" +Doc cover -. if !d$DOC_COVER_LEAD_ADJ \{ .DOC_COVER_LEAD +0 \} -. if !d$DOC_COVER_FAM \{ .DOC_COVER_FAMILY \\*[$DOC_FAM] \} -.\" (title) -. if !d$DOC_COVER_TITLE_FAM \{\ -. ie !d$DOC_COVER_FAM \{ .DOC_COVER_TITLE_FAMILY \\*[$DOC_FAM] \} -. el \{ .DOC_COVER_TITLE_FAMILY \\*[$DOC_COVER_FAM] \} -. \} -. if !d$DOC_COVER_TITLE_FT \{ .DOC_COVER_TITLE_FONT B \} -. if !d$DOC_COVER_TITLE_SIZE_CHANGE \{ .DOC_COVER_TITLE_SIZE +3.5 \} -.\" (chapter title) -. if !d$DOC_COVER_CHAPTER_TITLE_FAM \{\ -. ie !d$DOC_COVER_FAM \{ .DOC_COVER_CHAPTER_TITLE_FAMILY \\*[$DOC_FAM] \} -. el \{ .DOC_COVER_CHAPTER_TITLE_FAMILY \\*[$DOC_COVER_FAM] \} -. \} -. if !d$DOC_COVER_CHAPTER_TITLE_FT \{ .DOC_COVER_CHAPTER_TITLE_FONT BI \} -. if !d$DOC_COVER_CHAPTER_TITLE_SIZE_CHANGE \{ .DOC_COVER_CHAPTER_TITLE_SIZE +4 \} -.\" (subtitle) -. if !d$DOC_COVER_SUBTITLE_FAM \{\ -. ie !d$DOC_COVER_FAM \{ .DOC_COVER_SUBTITLE_FAMILY \\*[$DOC_FAM] \} -. el \{ .DOC_COVER_SUBTITLE_FAMILY \\*[$DOC_COVER_FAM] \} -. \} -. if !d$DOC_COVER_SUBTITLE_FT \{ .DOC_COVER_SUBTITLE_FONT R \} -. if !d$DOC_COVER_SUBTITLE_SIZE_CHANGE \{ .DOC_COVER_SUBTITLE_SIZE +0 \} -.\" (attribution and author[s]) -. if !d$DOC_COVER_AUTHOR_FAM \{\ -. ie !d$DOC_COVER_FAM \{ .DOC_COVER_AUTHOR_FAMILY \\*[$DOC_FAM] \} -. el \{ .DOC_COVER_AUTHOR_FAMILY \\*[$DOC_COVER_FAM] \} -. \} -. if !d$DOC_COVER_AUTHOR_FT \{ .DOC_COVER_AUTHOR_FONT I \} -. if !d$DOC_COVER_AUTHOR_SIZE_CHANGE \{ .DOC_COVER_AUTHOR_SIZE +0 \} -.\" (doctype if "named") -. if !d$DOC_COVER_DOCTYPE_FAM \{\ -. ie !d$DOC_COVER_FAM \{ .DOC_COVER_DOCTYPE_FAMILY \\*[$DOC_FAM] \} -. el \{ .DOC_COVER_DOCTYPE_FAMILY \\*[$DOC_COVER_FAM] \} -. \} -. if !d$DOC_COVER_DOCTYPE_FT \{ .DOC_COVER_DOCTYPE_FONT BI \} -. if !d$DOC_COVER_DOCTYPE_SIZE_CHANGE \{ .DOC_COVER_DOCTYPE_SIZE +3 \} -.\" (copyright) -. if !d$DOC_COVER_COPYRIGHT_FAM \{\ -. ie !d$DOC_COVER_FAM \{ .DOC_COVER_COPYRIGHT_FAMILY \\*[$DOC_FAM] \} -. el \{ .DOC_COVER_COPYRIGHT_FAMILY \\*[$DOC_COVER_FAM] \} -. \} -. if !d$DOC_COVER_COPYRIGHT_FT \{ .DOC_COVER_COPYRIGHT_FONT R \} -. if !d$DOC_COVER_COPYRIGHT_SIZE_CHANGE \{ .DOC_COVER_COPYRIGHT_SIZE -2 \} -.\" +Docheader -. if !d$DOCHEADER_FAM \{ .DOCHEADER_FAMILY \\*[$DOC_FAM] \} -. if !d$TITLE_FAM \{\ -. ie !d$DOCHEADER_FAM \{ .TITLE_FAMILY \\*[$DOC_FAM] \} -. el \{ .TITLE_FAMILY \\*[$DOCHEADER_FAM] \} -. \} -. if !d$TITLE_FT \{ .TITLE_FONT B \} -. if !d$TITLE_SIZE_CHANGE \{\ -. ie \\n[#DOC_TYPE]=2 \{ .TITLE_SIZE +4 \} -. el \{ .TITLE_SIZE +3.5 \} -. \} -. if !d$CHAPTER_TITLE_FAM \{\ -. ie !d$DOCHEADER_FAM \{ .CHAPTER_TITLE_FAMILY \\*[$DOC_FAM] \} -. el \{ .CHAPTER_TITLE_FAMILY \\*[$DOCHEADER_FAM] \} -. \} -. if !d$CHAPTER_TITLE_FT \{ .CHAPTER_TITLE_FONT BI \} -. if !d$CHAPTER_TITLE_SIZE_CHANGE \{ .CHAPTER_TITLE_SIZE +4 \} -. if !d$SUBTITLE_FAM \{\ -. ie !d$DOCHEADER_FAM \{ .SUBTITLE_FAMILY \\*[$DOC_FAM] \} -. el \{ .SUBTITLE_FAMILY \\*[$DOCHEADER_FAM] \} -. \} -. if !d$SUBTITLE_FT \{ .SUBTITLE_FONT R \} -. if !d$SUBTITLE_SIZE_CHANGE \{ .SUBTITLE_SIZE +0 \} -. if !d$AUTHOR_FAM \{\ -. ie !d$DOCHEADER_FAM \{ .AUTHOR_FAMILY \\*[$DOC_FAM] \} -. el \{ .AUTHOR_FAMILY \\*[$DOCHEADER_FAM] \} -. \} -. if !d$AUTHOR_FT \{ .AUTHOR_FONT I \} -. if !d$AUTHOR_SIZE_CHANGE \{ .AUTHOR_SIZE +0 \} -. if !d$DOCTYPE_FAM \{\ -. ie !d$DOCHEADER_FAM \{ .DOCTYPE_FAMILY \\*[$DOC_FAM] \} -. el \{ .DOCTYPE_FAMILY \\*[$DOCHEADER_FAM] \} -. \} -. if !d$DOCTYPE_FT \{ .DOCTYPE_FONT BI \} -. if !d$DOCTYPE_SIZE_CHANGE \{ .DOCTYPE_SIZE +3 \} -.\" +Headers and footers -. if !d$HDRFTR_LEFT_FAM \{ .HDRFTR_LEFT_FAMILY \\*[$DOC_FAM] \} -. if !d$HDRFTR_LEFT_FT \{ .HDRFTR_LEFT_FONT R \} -. if \\n[#HDRFTR_LEFT_CAPS] \{\ -. if !d$HDRFTR_LEFT_SIZE_CHANGE \{ .HDRFTR_LEFT_SIZE -2 \} -. \} -. if !d$HDRFTR_LEFT_SIZE_CHANGE \{ .HDRFTR_LEFT_SIZE -.5 \} -. if !d$HDRFTR_CENTER_FAM \{ .HDRFTR_CENTER_FAMILY \\*[$DOC_FAM] \} -. if !d$HDRFTR_CENTER_FT \{ .HDRFTR_CENTER_FONT I \} -. if \\n[#HDRFTR_CENTER_CAPS] \{\ -. if !d$HDRFTR_CENTER_SIZE_CHANGE \{ .HDRFTR_CENTER_SIZE -2 \} -. \} -. if !d$HDRFTR_CENTER_SIZE_CHANGE \{ .HDRFTR_CENTER_SIZE -.5 \} -. if !d$HDRFTR_RIGHT_FAM \{ .HDRFTR_RIGHT_FAMILY \\*[$DOC_FAM] \} -. if !d$HDRFTR_RIGHT_FT \{ .HDRFTR_RIGHT_FONT R \} -. if \\n[#HDRFTR_RIGHT_CAPS] \{\ -. if !d$HDRFTR_RIGHT_SIZE_CHANGE \{ .HDRFTR_RIGHT_SIZE -2 \} -. \} -. if !d$HDRFTR_RIGHT_SIZE_CHANGE \{ .HDRFTR_RIGHT_SIZE -.5 \} -.\" +Heads -. if !d$HEAD_FAM \{ .HEAD_FAMILY \\*[$DOC_FAM] \} -. if !d$HEAD_FT \{ .HEAD_FONT B \} -. if !d$HEAD_SIZE_CHANGE \{ .HEAD_SIZE +1 \} -. if !r#HEAD_SPACE \{ .HEAD_SPACE \} -.\" +Subheads -. if !d$SH_FAM \{ .SUBHEAD_FAMILY \\*[$DOC_FAM] \} -. if !d$SH_FT \{ .SUBHEAD_FONT B \} -. if !d$SH_SIZE_CHANGE \{ .SUBHEAD_SIZE +.5 \} -.\" +Paragraph heads -. if !d$PH_FAM \{ .PARAHEAD_FAMILY \\*[$DOC_FAM] \} -. if !d$PH_FT \{ .PARAHEAD_FONT BI \} -. if !d$PH_SIZE_CHANGE \{ .PARAHEAD_SIZE -.25 \} -. if !r#PH_INDENT \{ .PARAHEAD_INDENT \\n[#PP_INDENT]u/2u \} -.\" +Quotes -. if !d$QUOTE_FAM \{ .QUOTE_FAMILY \\*[$DOC_FAM] \} -. if !d$QUOTE_FT \{ .QUOTE_FONT I \} -. if !d$QUOTE_SIZE_CHANGE \{ .QUOTE_SIZE +0 \} -. if !r#Q_OFFSET_VALUE \{ .QUOTE_INDENT 3 \} -.\" +Blockquotes -.\" Note: the leading for quotes and blockquotes is set after .DEFAULTS in START -. if !d$BQUOTE_FAM \{ .BLOCKQUOTE_FAMILY \\*[$DOC_FAM] \} -. if !d$BQUOTE_FT \{ .BLOCKQUOTE_FONT R \} -. if !d$BQUOTE_SIZE_CHANGE \{ .BLOCKQUOTE_SIZE -1 \} -. if !d$BQUOTE_QUAD \{ .BLOCKQUOTE_QUAD LEFT \} -.\" +Epigraphs -. if !d$EPI_FAM \{ .EPIGRAPH_FAMILY \\*[$DOC_FAM] \} -. if !d$EPI_FT \{ .EPIGRAPH_FONT R \} -. if !d$EPI_SIZE_CHANGE \{ .EPIGRAPH_SIZE -1.5 \} -. if !r#EPI_AUTOLEAD \{ .EPIGRAPH_AUTOLEAD 2 \} -. if !d$EPI_QUAD \{ .EPIGRAPH_QUAD \\*[$DOC_QUAD] \} -. if !r#EPI_OFFSET_VALUE \{ .EPIGRAPH_INDENT 3 \} -.\" +Linebreaks -. if !d$LINEBREAK_CHAR \{ .LINEBREAK_CHAR * 3 3p \} -.\" +Footnotes -. if !r#FN_RULE_LENGTH \{ .FOOTNOTE_RULE_LENGTH 4P \} -. if !r#FN_RULE_ADJ \{ .FOOTNOTE_RULE_ADJ 3p \} -. if !d$FN_SIZE_CHANGE \{ .FOOTNOTE_SIZE -2 \} -. if !r#FN_AUTOLEAD \{ .FOOTNOTE_AUTOLEAD 2 \} -.\" +Endnotes -. if !r#EN_PS \{ .ENDNOTE_PT_SIZE \\n[#DOC_PT_SIZE]u \} -. if !d$EN_STRING_FT \{ .ENDNOTE_STRING_FONT B \} -. if !d$EN_STRING_SIZE_CHANGE \{ .ENDNOTE_STRING_SIZE +1 \} -. if !d$EN_TITLE_FT \{ .ENDNOTE_TITLE_FONT B \} -. if !d$EN_TITLE_SIZE_CHANGE \{ .ENDNOTE_TITLE_SIZE +0 \} -. if !d$EN_NUMBER_FT \{ .ENDNOTE_NUMBER_FONT B \} -. if !d$EN_NUMBER_SIZE_CHANGE \{ .ENDNOTE_NUMBER_SIZE +0 \} -. if !r#EN_PP_INDENT \{ .ENDNOTE_PARA_INDENT 1.5m \} -.\" +Bibliography -. if !r#BIB_LIST \{ .BIBLIOGRAPHY_TYPE LIST . \} -. if !r#BIB_PS \{ .BIBLIOGRAPHY_PT_SIZE \\n[#DOC_PT_SIZE]u \} -. if !d$BIB_STRING_FT \{ .BIBLIOGRAPHY_STRING_FONT B \} -. if !d$BIB_STRING_SIZE_CHANGE \{ .BIBLIOGRAPHY_STRING_SIZE +1 \} -.\" +Table of contents -. if !d$TOC_FAM \{ .TOC_FAMILY \\*[$DOC_FAM] \} -. if !r#TOC_PS \{ .TOC_PT_SIZE \\n[#DOC_PT_SIZE]u \} -. if !r#TOC_LEAD \{ .TOC_LEAD \\n[#DOC_LEAD]u ADJUST \} -. if !d$TOC_HEADER_FAM \{ .TOC_HEADER_FAMILY \\*[$TOC_FAM] \} -. if !d$TOC_HEADER_SIZE_CHANGE \{ .TOC_HEADER_SIZE +4 \} -. if !d$TOC_HEADER_FT \{ .TOC_HEADER_FONT B \} -. if !d$TOC_TITLE_FAM \{ .TOC_TITLE_FAMILY \\*[$TOC_FAM] \} -. if !d$TOC_PN_FAM \{ .TOC_PN_FAMILY \\*[$TOC_FAM] \} -. if !d$TOC_HEAD_FAM \{ .TOC_HEAD_FAMILY \\*[$TOC_FAM] \} -. if !d$TOC_SH_FAM \{ .TOC_SUBHEAD_FAMILY \\*[$TOC_FAM] \} -. if !d$TOC_PH_FAM \{ .TOC_PARAHEAD_FAMILY \\*[$TOC_FAM] \} -. if !d$TOC_TITLE_FT \{ .TOC_TITLE_FONT BI \} -. if !d$TOC_PN_FT \{ .TOC_PN_FONT R \} -. if !d$TOC_HEAD_FT \{ .TOC_HEAD_FONT B \} -. if !d$TOC_SH_FT \{ .TOC_SUBHEAD_FONT R \} -. if !d$TOC_PH_FT \{ .TOC_PARAHEAD_FONT I \} -. if !d$TOC_TITLE_SIZE_CHANGE \{ .TOC_TITLE_SIZE +.5 \} -. if !d$TOC_PN_SIZE_CHANGE \{ .TOC_PN_SIZE +0 \} -. if !d$TOC_HEAD_SIZE_CHANGE \{ .TOC_HEAD_SIZE +.5 \} -. if !d$TOC_SH_SIZE_CHANGE \{ .TOC_SUBHEAD_SIZE +0 \} -. if !d$TOC_PH_SIZE_CHANGE \{ .TOC_PARAHEAD_SIZE +0 \} -. \} -.\" +Refer support -. if !r#ENDNOTE_REFS \{ .nr #FN_REFS 1 \} -. if '\\*[$REF_FN_INDENT]'' \{\ -. if \\n[#PRINT_STYLE]=1 \{ .INDENT_REFS FOOTNOTE 2m \} -. if \\n[#PRINT_STYLE]=2 \{ .INDENT_REFS FOOTNOTE 1.5m \} -. \} -. if '\\*[$REF_EN_INDENT]'' \{\ -. if \\n[#PRINT_STYLE]=1 \{ .INDENT_REFS ENDNOTE 2m \} -. if \\n[#PRINT_STYLE]=2 \{ .INDENT_REFS ENDNOTE 1.5m \} -. \} -. if '\\*[$REF_BIB_INDENT]'' \{\ -. if \\n[#PRINT_STYLE]=1 \{ .INDENT_REFS BIBLIO 2m \} -. if \\n[#PRINT_STYLE]=2 \{ .INDENT_REFS BIBLIO 1.5m :\} -. \} -.\" Adjust doc leading for PRINTSTYLE TYPESET -. if \\n[#PRINT_STYLE]=2 \{\ -. ie \\n[#ADJ_DOC_LEAD]=1 \{ .DOC_LEAD_ADJUST \} -. el \{ . \} -. \} -.\" This diversion is to get a value for #FN_AUTOLEAD -. di NULL -. ev NULL -. if \\n[#PRINT_STYLE]=1 \{\ -. ps 12 -. ie \\n[#SINGLE_SPACE]=1 \{ .vs \\n[#ORIGINAL_DOC_LEAD]u \} -. el \{ .vs \\n[#ORIGINAL_DOC_LEAD]u/2u \} -. \} -. if \\n[#PRINT_STYLE]=2 \{\ -. PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$FN_SIZE_CHANGE] -. AUTOLEAD \\n[#FN_AUTOLEAD] -. \} -. nr #FN_LEAD \\n[#LEAD] -. if \\n[#PRINT_STYLE]=2 \{ .LS \\n[#DOC_LEAD]u \} -. ev -. di -. ie !\\n[#COLLATE] \{\ -.\" DOC_LEAD adjusted (or not) here -. TRAPS -. rr #DOC_LEAD_ADJUST_OFF -.\" Endnote, bibliography and toc leading -. nr #OK_PROCESS_LEAD 1 -. nr #RESTORE_DOC_LEAD \\n(.v -. nr #RESTORE_B_MARGIN \\n[#B_MARGIN] -. if \\n[#PRINT_STYLE]=1 \{\ -. ie \\n[#SINGLE_SPACE] \{\ -. ENDNOTE_LEAD 12 ADJUST -. BIBLIOGRAPHY_LEAD 12 ADJUST -. \} -. el \{\ -. ie \\n[#EN_SINGLESPACE] \{ .ENDNOTE_LEAD 12 ADJUST \} -. el \{ .ENDNOTE_LEAD 24 ADJUST \} -. ie \\n[#BIB_SINGLESPACE] \{ .BIBLIOGRAPHY_LEAD 12 ADJUST \} -. el \{ .BIBLIOGRAPHY_LEAD 24 ADJUST \} -. \} -. \} -. if \\n[#PRINT_STYLE]=2 \{\ -. ie !d$EN_LEAD \{ .ENDNOTE_LEAD 14 ADJUST \} -. el \{ .ENDNOTE_LEAD \\*[$EN_LEAD] \\*[$ADJUST_EN_LEAD] \} -. ie !d$BIB_LEAD \{ .BIBLIOGRAPHY_LEAD 14 ADJUST \} -. el \{ .BIBLIOGRAPHY_LEAD \\*[$BIB_LEAD] \\*[$ADJUST_BIB_LEAD] \} -. ie !d$TOC_LEAD \{ .TOC_LEAD \\n[#RESTORE_DOC_LEAD]u \} -. el \{ .TOC_LEAD \\*[$TOC_LEAD] \\*[$ADJUST_TOC_LEAD] \} -. rm $ADJUST_EN_LEAD -. rm $ADJUST_BIB_LEAD -. rm $ADJUST_TOC_LEAD -. \} -. ie !d$BIB_SPACE \{ .BIBLIOGRAPHY_SPACING 1v \} -. el \{\ -. if \\n[#DEFER_BIB_SPACING]=1 \{\ -. BIBLIOGRAPHY_SPACING \\*[$BIB_SPACE] -. rr #DEFER_BIB_SPACING -. \} -. \} -. DOC_LEAD \\n[#RESTORE_DOC_LEAD]u -. nr #B_MARGIN \\n[#RESTORE_B_MARGIN] -. \} -. el \{\ -. if \\n[#COLLATE] \{\ -. if !\\n[#PRINT_STYLE]=1 \{\ -. if \\n[#RERUN_TRAPS] \{ .TRAPS \} -. \} -. \} -. \} -. if \\n[#PRINT_STYLE]=1 \{ .nr #IGNORE 1 \} -.END -\# -\# ==================================================================== -\# -\# +++START THE DOCUMENT+++ -\# -\# THE START MACRO -\# --------------- -\# *Arguments: -\# -\# *Function: -\# Reads in default document style parameters and any parameter -\# the user has changed before issuing START. -\# Using the information gathered in the opening macros, -\# prints appropriate title (or chapter #), subtitle, author -\# and document type (if appropriate). -\# *Notes: -\# The .PRINT \& (zero-width character) is required to get the -\# subsequent .sp request to work as advertised. -\# -\# The overall document line length, family, and point-size -\# are stored in #DOC_L_LENGTH, $DOC_FAM, and #DOC_PT_SIZE for -\# use in the HEADER and FOOTER macros. -\# -\# First, define some strings for point sizes -\# -\# Doc cover -.ds $DOC_COVER_AUTHOR_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$DOC_COVER_AUTHOR_SIZE_CHANGE] -.ds $DOC_COVER_CHAPTER_TITLE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$DOC_COVER_CHAPTER_TITLE_SIZE_CHANGE] -.ds $DOC_COVER_COPYRIGHT_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$DOC_COVER_COPYRIGHT_SIZE_CHANGE] -.ds $DOC_COVER_DOCTYPE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$DOC_COVER_DOCTYPE_SIZE_CHANGE] -.ds $DOC_COVER_SUBTITLE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$DOC_COVER_SUBTITLE_SIZE_CHANGE] -.ds $DOC_COVER_TITLE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$DOC_COVER_TITLE_SIZE_CHANGE] -\# Cover -.ds $COVER_AUTHOR_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$COVER_AUTHOR_SIZE_CHANGE] -.ds $COVER_CHAPTER_TITLE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$COVER_CHAPTER_TITLE_SIZE_CHANGE] -.ds $COVER_COPYRIGHT_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$COVER_COPYRIGHT_SIZE_CHANGE] -.ds $COVER_DOCTYPE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$COVER_DOCTYPE_SIZE_CHANGE] -.ds $COVER_SUBTITLE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$COVER_SUBTITLE_SIZE_CHANGE] -.ds $COVER_TITLE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$COVER_TITLE_SIZE_CHANGE] -\# Docheader -.ds $AUTHOR_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$AUTHOR_SIZE_CHANGE] -.ds $CHAPTER_TITLE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$CHAPTER_TITLE_SIZE_CHANGE] -.ds $COPYRIGHT_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$COPYRIGHT_SIZE_CHANGE] -.ds $DOCTYPE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$DOCTYPE_SIZE_CHANGE] -.ds $SUBTITLE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$SUBTITLE_SIZE_CHANGE] -.ds $TITLE_PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$TITLE_SIZE_CHANGE] -\# -\# Next, some utility macros for various routines to prevent repetition -\# -.MAC PRINT_AUTHORS END -. nr #AUTHORS \\n[#AUTHOR_NUM] -. nr #NEXT_AUTHOR 0 1 -. ie r#DOING_COVER \{\ -. if \\n[#COVER]=1 \{\ -. while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\ -. ie \\n[#COVER_AUTHOR_COLOR]=1 \{\ -. PRINT \m[\\*[$COVER_AUTHOR_COLOR]]\\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]\m[] -. \} -. el \{ .PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]] \} -.\} -. \} -. if \\n[#DOC_COVER]=1 \{\ -. while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\ -. ie \\n[#DOC_COVER_AUTHOR_COLOR]=1 \{\ -. PRINT \m[\\*[$DOC_COVER_AUTHOR_COLOR]]\\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]\m[] -. \} -. el \{ .PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]] \} -.\} -. \} -. \} -. el \{\ -. while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\ -. ie \\n[#AUTHOR_COLOR]=1 \{\ -. PRINT \m[\\*[$AUTHOR_COLOR]]\\*[$AUTHOR_\\n+[#NEXT_AUTHOR]]\m[] -. \} -. el \{ .PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]] \} -.\} -. \} -.END -\# -.MAC DEFAULT_DOCHEADER END -. CENTER -. FAMILY \\*[$TITLE_FAM] -. FT \\*[$TITLE_FT] -. PT_SIZE \\*[$TITLE_PT_SIZE] -. LS \\n[#DOCHEADER_LEAD]u -. ie \\n[#TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$TITLE_COLOR]]\\*[$TITLE]\m[] -. \} -. el \{ .PRINT \\*[$TITLE] \} -. if !'\\*[$SUBTITLE]'' \{\ -. FAMILY \\*[$SUBTITLE_FAM] -. FT \\*[$SUBTITLE_FT] -. PT_SIZE \\*[$SUBTITLE_PT_SIZE] -. ie \\n[#SUBTITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$SUBTITLE_COLOR]]\\*[$TITLE]\m[] -. \} -. el \{ .PRINT \\*[$SUBTITLE] \} -. \} -. if !'\\*[$AUTHOR_1]'' \{\ -. FAMILY \\*[$AUTHOR_FAM] -. FT \\*[$AUTHOR_FT] -. PT_SIZE \\*[$AUTHOR_PT_SIZE] -. if !'\\*[$ATTRIBUTE_STRING]'' \{\ -. ie \\n[#ATTRIBUTE_COLOR]=1 \{\ -. PRINT \m[\\*[$ATTRIBUTE_COLOR]]\\*[$ATTRIBUTE_STRING]\m[] -. \} -. el \{ .PRINT \\*[$ATTRIBUTE_STRING] \} -. \} -. PRINT_AUTHORS -. \} -.END -\# -\# -.MAC CHAPTER_DOCHEADER END -. CENTER -. FAMILY \\*[$TITLE_FAM] -. FT \\*[$TITLE_FT] -. PT_SIZE \\*[$TITLE_PT_SIZE] -. LS \\n[#DOCHEADER_LEAD]u -.\" Chapter title only -. ie '\\*[$CHAPTER]'' \{\ -. ie !'\\*[$CHAPTER_TITLE]'' \{\ -. if \\n[#PRINT_STYLE]=2 \{\ -. FAMILY \\*[$CHAPTER_TITLE_FAM] -. FT \\*[$CHAPTER_TITLE_FT] -. PT_SIZE \\*[$CHAPTER_TITLE_PT_SIZE] -. LS \\n[#DOCHEADER_LEAD]u -. \} -. ie \\n[#TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$TITLE_COLOR]]\\*[$CHAPTER_TITLE]\m[] -. \} -. el \{ .PRINT \\*[$CHAPTER_TITLE] \} -. \} -. el \{\ -. ie \\n[#TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$TITLE_COLOR]]\\*[$CHAPTER_STRING]\m[] -. \} -. el \{ .PRINT \\*[$CHAPTER_STRING] \} -. \} -. \} -.\" Chapter string, possibly with a chapter title -. el \{\ -. ie \\n[#TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$TITLE_COLOR]]\\*[$CHAPTER_STRING] \\*[$CHAPTER]\m[] -. \} -. el \{ .PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] \} -. if !'\\*[$CHAPTER_TITLE]'' \{\ -. if \\n[#PRINT_STYLE]=1 \{ .PRINT \\*[$CHAPTER_TITLE] \} -. if \\n[#PRINT_STYLE]=2 \{\ -. FAMILY \\*[$CHAPTER_TITLE_FAM] -. FT \\*[$CHAPTER_TITLE_FT] -. PT_SIZE \\*[$CHAPTER_TITLE_PT_SIZE] -. LS \\n[#DOCHEADER_LEAD]u -. ie \\n[#CHAPTER_TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$CHAPTER_TITLE_COLOR]]\\*[$CHAPTER_TITLE]\m[] -. \} -. el \{ .PRINT \\*[$CHAPTER_TITLE] \} -. RLD \\n[#DOC_LEAD]u \" Just looks better this way -. \} -. \} -. \} -.END -\# -\# -.MAC NAMED_DOCHEADER END -. CENTER -. FAMILY \\*[$TITLE_FAM] -. FT \\*[$TITLE_FT] -. PT_SIZE \\*[$TITLE_PT_SIZE] -. LS \\n[#DOCHEADER_LEAD]u -. ie \\n[#TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$TITLE_COLOR]]\\*[$TITLE]\m[] -. \} -. el \{ .PRINT \\*[$TITLE] \} -. if !'\\*[$SUBTITLE]'' \{\ -. FAMILY \\*[$SUBTITLE_FAM] -. FT \\*[$SUBTITLE_FT] -. PT_SIZE \\*[$SUBTITLE_PT_SIZE] -. ie \\n[#SUBTITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$SUBTITLE_COLOR]]\\*[$TITLE]\m[] -. \} -. el \{ .PRINT \\*[$SUBTITLE] \} -. \} -. if !'\\*[$AUTHOR_1]'' \{\ -. FAMILY \\*[$AUTHOR_FAM] -. FT \\*[$AUTHOR_FT] -. PT_SIZE \\*[$AUTHOR_PT_SIZE] -. if !'\\*[$ATTRIBUTE_STRING]'' \{\ -. ie \\n[#ATTRIBUTE_COLOR]=1 \{\ -. PRINT \m[\\*[$ATTRIBUTE_COLOR]]\\*[$ATTRIBUTE_STRING]\m[] -. \} -. el \{ .PRINT \\*[$ATTRIBUTE_STRING] \} -. \} -. PRINT_AUTHORS -. \} -. FAMILY \\*[$DOCTYPE_FAM] -. FT \\*[$DOCTYPE_FT] -. PT_SIZE \\*[$DOCTYPE_PT_SIZE] -. LS \\n[#DOCHEADER_LEAD]u -. ALD \\n[#DOCHEADER_LEAD]u -. ie \\n[#DOCTYPE_COLOR]=1 \{\ -. COLOR \\*[$DOCTYPE_COLOR] -. UNDERSCORE "\\*[$DOC_TYPE] -. \} -. el .UNDERSCORE "\\*[$DOC_TYPE] -.END -\# -\# -\# COVER PAGE -\# ---------- -\# *Arguments: -\# TITLE | DOCTITLE | CHAPTER | CHAPTER_TITLE | CHAPTER+TITLE | COVERTITLE ... -\# ... [ SUBTITLE AUTHOR DOCTYPE COPYRIGHT MISC ] -\# *Function: -\# Toggles the number register for each cover page element -\# passed as an argument. -\# *Notes: -\# TITLE, DOCTITLE, CHAPTER, CHAPTER_TITLE or CHAPTER+TITLE must -\# be supplied. After that, users may enter as many or as few of -\# the arguments as they like; however, the arguments must appear -\# in the order given above. -\# -\# If called as DOC_COVER, performs the same operations, but -\# applies everything to a doc cover. -\# -.MAC COVER END -. ie '\\$0'DOC_COVER' \{\ -. nr #DOC_COVER 1 -. if '\\$1'TITLE' \{ .nr #DOC_COVER_TITLE 1 \} -. if '\\$1'DOCTITLE' \{ .nr #DOC_COVER_TITLE 2 \} -. if '\\$1'CHAPTER' \{ .nr #DOC_COVER_TITLE 3 \} -. if '\\$1'CHAPTER_TITLE' \{ .nr #DOC_COVER_TITLE 4 \} -. if '\\$1'CHAPTER+TITLE' \{ .nr #DOC_COVER_TITLE 5 \} -. if '\\$1'COVERTITLE' \{ .nr #DOC_COVER_TITLE 6 \} -. if '\\$2'SUBTITLE' \{ .nr #DOC_COVER_SUBTITLE 1 \} -. if '\\$2'AUTHOR' \{ .nr #DOC_COVER_AUTHOR 1 \} -. if '\\$2'DOCTYPE' \{ .nr #DOC_COVER_DOCTYPE 1 \} -. if '\\$2'COPYRIGHT' \{ .nr #DOC_COVER_COPYRIGHT 1 \} -. if '\\$2'MISC' \{ .nr #DOC_COVER_MISC 1 \} -. if '\\$3'AUTHOR' \{ .nr #DOC_COVER_AUTHOR 1 \} -. if '\\$3'DOCTYPE' \{ .nr #DOC_COVER_DOCTYPE 1 \} -. if '\\$3'COPYRIGHT' \{ .nr #DOC_COVER_COPYRIGHT 1 \} -. if '\\$3'MISC' \{ .nr #DOC_COVER_MISC 1 \} -. if '\\$4'DOCTYPE' \{ .nr #DOC_COVER_DOCTYPE 1 \} -. if '\\$4'COPYRIGHT' \{ .nr #DOC_COVER_COPYRIGHT 1 \} -. if '\\$4'MISC' \{ .nr #DOC_COVER_MISC 1 \} -. if '\\$5'COPYRIGHT' \{ .nr #DOC_COVER_COPYRIGHT 1 \} -. if '\\$5'MISC' \{ .nr #DOC_COVER_MISC 1 \} -. if '\\$6'MISC' \{ .nr #DOC_COVER_MISC 1 \} -. \} -. el \{\ -. nr #COVER 1 -. if '\\$1'TITLE' \{ .nr #COVER_TITLE 1 \} -. if '\\$1'DOCTITLE' \{ .nr #COVER_TITLE 2 \} -. if '\\$1'CHAPTER' \{ .nr #COVER_TITLE 3 \} -. if '\\$1'CHAPTER_TITLE' \{ .nr #COVER_TITLE 4 \} -. if '\\$1'CHAPTER+TITLE' \{ .nr #COVER_TITLE 5 \} -. if '\\$1'COVERTITLE' \{ .nr #COVER_TITLE 6 \} -. if '\\$2'SUBTITLE' \{ .nr #COVER_SUBTITLE 1 \} -. if '\\$2'AUTHOR' \{ .nr #COVER_AUTHOR 1 \} -. if '\\$2'DOCTYPE' \{ .nr #COVER_DOCTYPE 1 \} -. if '\\$2'COPYRIGHT' \{ .nr #COVER_COPYRIGHT 1 \} -. if '\\$2'MISC' \{ .nr #COVER_MISC 1 \} -. if '\\$3'AUTHOR' \{ .nr #COVER_AUTHOR 1 \} -. if '\\$3'DOCTYPE' \{ .nr #COVER_DOCTYPE 1 \} -. if '\\$3'COPYRIGHT' \{ .nr #COVER_COPYRIGHT 1 \} -. if '\\$3'MISC' \{ .nr #COVER_MISC 1 \} -. if '\\$4'DOCTYPE' \{ .nr #COVER_DOCTYPE 1 \} -. if '\\$4'COPYRIGHT' \{ .nr #COVER_COPYRIGHT 1 \} -. if '\\$4'MISC' \{ .nr #COVER_MISC 1 \} -. if '\\$5'COPYRIGHT' \{ .nr #COVER_COPYRIGHT 1 \} -. if '\\$5'MISC' \{ .nr #COVER_MISC 1 \} -. if '\\$6'MISC' \{ .nr #COVER_MISC 1 \} -. \} -.END -\# -\# -.MAC COVERTITLE END -. ie '\\$0'DOC_COVERTITLE' .ds $DOC_COVER_TITLE \\$1 -. el .ds $COVER_TITLE \\$1 -.END -\# -\# -\# COVER PAGE LEADING -\# ------------------ -\# *Arguments: -\# <+|- amount by which to in/decrease leading of cover/doc cover> -\# *Function: -\# Stores user supplied lead in/decrease in string $COVER_LEAD_ADJ -\# or $DOC_COVER_LEAD_ADJ, depending on whether the macro was called -\# with an alias (DOC_COVER_LEAD). -\# *Notes: -\# A unit of measure must be supplied. Decimal fractions OK. -\# Default is +0, i.e. same as DOC_LEAD. -\# -.MAC COVER_LEAD END -. ie '\\$0'DOC_COVER_LEAD' \{\ -. ds $DOC_COVER_LEAD_ADJ \\$1 -. \} -. el \{\ -. ds $COVER_LEAD_ADJ \\$1 -. \} -.END -\# -\# -\# COVER PAGE START POSITION -\# ------------------------- -\# *Arguments: -\# -\# *Function: -\# Stores user supplied lead in/decrease in #COVER_START_POS -\# or #DOC_COVER_START_POS, depending on whether the macro was -\# called by an alias (DOC_COVER_ADVANCE). -\# *Notes: -\# A unit of measure must be supplied. Decimal fractions OK. -\# If user doesn't invoke this macro, the default starting -\# position for both covers and doc covers is 1/3 of the way -\# down the page (setup in DO_COVER). -\# -.MAC COVER_ADVANCE END -. ie '\\$0'DOC_COVER_ADVANCE' \{\ -. nr #DOC_COVER_START_POS (\\$1) -. \} -. el \{\ -. nr #COVER_START_POS (\\$1) -. \} -.END -\# -\# -\# COVERS - WHETHER TO PRINT -\# ------------------------- -\# *Arguments: -\# | -\# *Function: -\# Creates or removes registers #COVERS and #COVERS_OFF, checked for -\# in DEFAULTS (in START) prior to printing -\# -.MAC COVERS END -. ie '\\$0'DOC_COVERS' \{\ -. ie '\\$1'' \{\ -. rr #DOC_COVERS_OFF -. nr #DOC_COVERS 1 -. \} -. el \{\ -. rr #DOC_COVERS -. nr #DOC_COVERS_OFF 1 -. \} -. \} -. el \{\ -. ie '\\$1'' \{\ -. rr #COVERS_OFF -. nr #COVERS 1 -. \} -. el \{\ -. rr #COVERS -. nr #COVERS_OFF 1 -. \} -. \} -.END -\# -\# -.MAC DO_COVER END -. nr #DOING_COVER 1 -. ev COVER -. evc 0 -. TRAP OFF -. if \\n[#PAGINATE]=1 \{\ -. nr #PAGINATION_WAS_ON 1 -. rr #PAGINATE -. \} -. if \\n[#HEADERS_ON]=1 \{\ -. nr #HEADERS_WERE_ON 1 -. HEADERS OFF -. \} -. if \\n[#FOOTERS_ON]=1 \{\ -. nr #FOOTERS_WERE_ON 1 -. FOOTERS OFF -. \} -. if \\n[#COLUMNS]=1 \{\ -. nr #COLUMNS_WERE_ON 1 -. rr #COLUMNS -. \} -.\" Doc cover -. ie '\\$0'DO_DOC_COVER' \{\ -. if !r#DOC_COVER_START_POS \{\ -. nr #DOC_COVER_START_POS \\n[#PAGE_LENGTH]/3 -. \} -. if \\n[#PRINT_STYLE]=1 \{\ -. ie \\n[#SINGLE_SPACE]=1 \{ .vs \\n[#DOC_LEAD]u*2u \} -. el \{ .vs \\n[#DOC_LEAD]u \} -. \} -. if \\n[#PRINT_STYLE]=2 \{\ -. LS \\n[#DOC_LEAD]u\\*[$DOC_COVER_LEAD_ADJ] -. nr #DOC_COVER_LEAD \\n[#LEAD] -. \} -. PRINT \& -. sp |\\n[#DOC_COVER_START_POS]u-1v -. if \\n[#DOC_COVER_COLOR]=1 \{\ -. nf -\m[\\*[$DOC_COVER_COLOR]] -. EOL -. \} -. CENTER -. FAMILY \\*[$DOC_COVER_TITLE_FAM] -. FT \\*[$DOC_COVER_TITLE_FT] -. PT_SIZE \\*[$DOC_COVER_TITLE_PT_SIZE] -. LS \\n[#DOC_COVER_LEAD]u -. if \\n[#PRINT_STYLE]=1 \{ .TYPEWRITER \} -. if \\n[#DOC_COVER_TITLE]=1 \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. CAPS -. UNDERSCORE "\\*[$TITLE]" -. CAPS OFF -. \} -. el \{\ -. ie \\n[#DOC_COVER_TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$DOC_COVER_TITLE_COLOR]]\\*[$TITLE]\m[] -. \} -. el \{ .PRINT \\*[$TITLE] \} -. \} -. \} -. if \\n[#DOC_COVER_TITLE]=2 \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. CAPS -. UNDERSCORE "\\*[$DOC_TITLE]" -. CAPS OFF -. \} -. el \{\ -. ie \\n[#DOC_COVER_TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$DOC_COVER_TITLE_COLOR]]\\*[$DOC_TITLE]\m[] -. \} -. el \{ .PRINT \\*[$DOC_TITLE] \} -. \} -. \} -. if \\n[#DOC_COVER_TITLE]=3 \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. CAPS -. PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] -. CAPS OFF -. \} -. el \{\ -. ie \\n[#DOC_COVER_TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$DOC_COVER_TITLE_COLOR]]\\*[$CHAPTER_STRING] \\*[$CHAPTER]\m[] -. \} -. el \{ .PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] \} -. \} -. \} -. if \\n[#DOC_COVER_TITLE]=4 \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. CAPS -. UNDERSCORE "\\*[$CHAPTER_TITLE]" -. CAPS OFF -. \} -. el \{\ -. ie \\n[#DOC_COVER_TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$DOC_COVER_TITLE_COLOR]]\\*[$CHAPTER_TITLE]\m[] -. \} -. el \{ .PRINT \\*[$CHAPTER_TITLE] \} -. \} -. \} -. if \\n[#DOC_COVER_TITLE]=5 \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. CAPS -. PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] -. CAPS OFF -. \} -. el \{\ -. ie \\n[#DOC_COVER_TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$DOC_COVER_TITLE_COLOR]]\\*[$CHAPTER_STRING] \\*[$CHAPTER]\m[] -. \} -. el \{ .PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] \} -. \} -. if !'\\*[$CHAPTER_TITLE]'' \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. UNDERSCORE "\\*[$CHAPTER_TITLE]" -. \} -. el \{\ -. FAMILY \\*[$DOC_COVER_CHAPTER_TITLE_FAM] -. FT \\*[$DOC_COVER_CHAPTER_TITLE_FT] -. PT_SIZE \\*[$DOC_COVER_CHAPTER_TITLE_PT_SIZE] -. ie \\n[#DOC_COVER_CHAPTER_TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$DOC_COVER_CHAPTER_TITLE_COLOR]]\\*[$CHAPTER_TITLE]\m[] -. \} -. el \{ .PRINT \\*[$CHAPTER_TITLE] \} -. \} -. \} -. \} -. if \\n[#DOC_COVER_TITLE]=6 \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. CAPS -. UNDERSCORE "\\*[$DOC_COVER_TITLE]" -. CAPS OFF -. \} -. el \{\ -. ie \\n[#DOC_COVER_TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$DOC_COVER_TITLE_COLOR]]\\*[$DOC_COVER_TITLE]\m[] -. \} -. el \{ .PRINT \\*[$DOC_COVER_TITLE] \} -. \} -. \} -. if \\n[#DOC_COVER_SUBTITLE]=1 \{\ -. FAMILY \\*[$DOC_COVER_SUBTITLE_FAM] -. FT \\*[$DOC_COVER_SUBTITLE_FT] -. PT_SIZE \\*[$DOC_COVER_SUBTITLE_PT_SIZE] -. if \\n[#PRINT_STYLE]=1 \{ .TYPEWRITER \} -. ie \\n[#DOC_COVER_SUBTITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$DOC_COVER_SUBTITLE_COLOR]]\\*[$SUBTITLE]\m[] -. \} -. el \{ .PRINT \\*[$SUBTITLE] \} -. \} -. if \\n[#PRINT_STYLE]=1 \{\ -. if !r#DOC_COVER_SUBTITLE \{ .SP \} -. \} -. if \\n[#DOC_COVER_AUTHOR]=1 \{\ -. FAMILY \\*[$DOC_COVER_AUTHOR_FAM] -. FT \\*[$DOC_COVER_AUTHOR_FT] -. PT_SIZE \\*[$DOC_COVER_AUTHOR_PT_SIZE] -. if \\n[#PRINT_STYLE]=1 \{\ -. TYPEWRITER -. vs \\n[#DOC_LEAD]u/2u -. \} -. if !'\\*[$ATTRIBUTE_STRING]'' \{\ -. ie \\n[#DOC_COVER_ATTRIBUTE_COLOR]=1 \{\ -. PRINT \m[\\*[$DOC_COVER_ATTRIBUTE_COLOR]]\\*[$ATTRIBUTE_STRING]\m[] -. \} -. el \{ .PRINT \\*[$ATTRIBUTE_STRING] \} -. \} -. PRINT_AUTHORS -. \} -. FAMILY \\*[$DOC_COVER_DOCTYPE_FAM] -. FT \\*[$DOC_COVER_DOCTYPE_FT] -. PT_SIZE \\*[$DOC_COVER_DOCTYPE_PT_SIZE] -. SP -. if \\n[#DOC_COVER_DOCTYPE]=1 \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. TYPEWRITER -. vs \\n[#DOC_LEAD]u -. UNDERSCORE2 "\\*[$DOC_TYPE] -. \} -. el \{\ -. ie \\n[#DOC_COVER_DOCTYPE_COLOR]=1 \{\ -. COLOR \\*[$DOC_COVER_DOCTYPE_COLOR] -. UNDERSCORE "\\*[$DOC_TYPE] -. \} -. el .UNDERSCORE "\\*[$DOC_TYPE] -. \} -. \} -. sp |\\n[#VISUAL_B_MARGIN]u+\\n[#DOC_LEAD]u -. ie \\n[#PRINT_STYLE]=1 \{\ -. TYPEWRITER -. ie \\n[#SINGLE_SPACE]=1 \{ .vs \\n[#DOC_LEAD]u \} -. el \{ .vs \\n[#DOC_LEAD]u/2u \} -. \} -. el \{\ -. FAMILY \\*[$DOC_COVER_COPYRIGHT_FAM] -. FT \\*[$DOC_COVER_COPYRIGHT_FT] -. AUTOLEAD 2 -. PT_SIZE \\*[$DOC_COVER_COPYRIGHT_PT_SIZE] -. \} -. if \\n[#DOC_COVER_COPYRIGHT]=1 \{\ -. QUAD \\*[$DOC_COVER_COPYRIGHT_QUAD] -. ie \\n[#DOC_COVER_COPYRIGHT_COLOR]=1 \{\ -. PRINT \m[\\*[$DOC_COVER_COPYRIGHT_COLOR]]\\*[$COPYRIGHT]\m[] -. \} -. el \{ .PRINT \\*[$COPYRIGHT] \} -. \} -. sp |\\n[#VISUAL_B_MARGIN]u+\\n[#DOC_LEAD]u -. if \\n[#DOC_COVER_MISC]=1 \{\ -. QUAD \\*[$DOC_COVER_MISC_QUAD] -. nr #MISCS \\n[#MISC_NUM] -. sp -\\n[#MISCS]+1 -. nr #NEXT_MISC 0 1 -. while \\n[#MISCS]>\\n[#NEXT_MISC] \{\ -. ie \\n[#DOC_COVER_MISC_COLOR]=1 \{\ -. PRINT \m[\\*[$DOC_COVER_MISC_COLOR]]\\*[$MISC_\\n+[#NEXT_MISC]]\m[] -. br -. \} -. el \{\ -. PRINT \\*[$MISC_\\n+[#NEXT_MISC]] -. br -. \} -.\} -. \} -. \} -.\" Cover -. el \{\ -. if !r#COVER_START_POS \{\ -. nr #COVER_START_POS \\n[#PAGE_LENGTH]/3 -. \} -. if \\n[#PRINT_STYLE]=1 \{\ -. ie \\n[#SINGLE_SPACE]=1 \{ .vs \\n[#DOC_LEAD]u*2u \} -. el \{ .vs \\n[#DOC_LEAD]u \} -. \} -. if \\n[#PRINT_STYLE]=2 \{\ -. LS \\n[#DOC_LEAD]u\\*[$COVER_LEAD_ADJ] -. nr #COVER_LEAD \\n[#LEAD] -. \} -. PRINT \& -. sp |\\n[#COVER_START_POS]u-1v -. if \\n[#COVER_COLOR]=1 \{\ -. nf -\m[\\*[$COVER_COLOR]] -. EOL -. \} -. CENTER -. FAMILY \\*[$COVER_TITLE_FAM] -. FT \\*[$COVER_TITLE_FT] -. PT_SIZE \\*[$COVER_TITLE_PT_SIZE] -. LS \\n[#COVER_LEAD]u -. if \\n[#PRINT_STYLE]=1 \{ .TYPEWRITER \} -. if \\n[#COVER_TITLE]=1 \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. CAPS -. UNDERSCORE "\\*[$TITLE]" -. CAPS OFF -. \} -. el \{\ -. ie \\n[#COVER_TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$COVER_TITLE_COLOR]]\\*[$TITLE]\m[] -. \} -. el \{ .PRINT \\*[$TITLE] \} -. \} -. \} -. if \\n[#COVER_TITLE]=2 \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. CAPS -. UNDERSCORE "\\*[$DOC_TITLE]" -. CAPS OFF -. \} -. el \{\ -. ie \\n[#COVER_TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$COVER_TITLE_COLOR]]\\*[$DOC_TITLE]\m[] -. \} -. el \{ .PRINT \\*[$DOC_TITLE] \} -. \} -. \} -. if \\n[#COVER_TITLE]=3 \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. CAPS -. PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] -. CAPS OFF -. \} -. el \{\ -. ie \\n[#COVER_TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$COVER_TITLE_COLOR]]\\*[$CHAPTER_STRING] \\*[$CHAPTER]\m[] -. \} -. el \{ .PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] \} -. \} -. \} -. if \\n[#COVER_TITLE]=4 \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. CAPS -. UNDERSCORE "\\*[$CHAPTER_TITLE]" -. CAPS OFF -. \} -. el \{\ -. ie \\n[#COVER_TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$COVER_TITLE_COLOR]]\\*[$CHAPTER_TITLE]\m[] -. \} -. el \{ .PRINT \\*[$CHAPTER_TITLE] \} -. \} -. \} -. if \\n[#COVER_TITLE]=5 \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. CAPS -. PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] -. CAPS OFF -. \} -. el \{\ -. ie \\n[#COVER_TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$COVER_TITLE_COLOR]]\\*[$CHAPTER_STRING] \\*[$CHAPTER]\m[] -. \} -. el \{ .PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] \} -. \} -. if !'\\*[$CHAPTER_TITLE]'' \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. UNDERSCORE "\\*[$CHAPTER_TITLE]" -. \} -. el \{\ -. FAMILY \\*[$COVER_CHAPTER_TITLE_FAM] -. FT \\*[$COVER_CHAPTER_TITLE_FT] -. PT_SIZE \\*[$COVER_CHAPTER_TITLE_PT_SIZE] -. ie \\n[#COVER_CHAPTER_TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$COVER_CHAPTER_TITLE_COLOR]]\\*[$CHAPTER_TITLE]\m[] -. \} -. el \{ .PRINT \\*[$CHAPTER_TITLE] \} -. \} -. \} -. \} -. if \\n[#COVER_TITLE]=6 \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. CAPS -. UNDERSCORE "\\*[$COVER_TITLE]" -. CAPS OFF -. \} -. el \{\ -. ie \\n[#COVER_TITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$COVER_TITLE_COLOR]]\\*[$COVER_TITLE]\m[] -. \} -. el \{ .PRINT \\*[$COVER_TITLE] \} -. \} -. \} -. if \\n[#COVER_SUBTITLE]=1 \{\ -. FAMILY \\*[$COVER_SUBTITLE_FAM] -. FT \\*[$COVER_SUBTITLE_FT] -. PT_SIZE \\*[$COVER_SUBTITLE_PT_SIZE] -. if \\n[#PRINT_STYLE]=1 \{ .TYPEWRITER \} -. ie \\n[#COVER_SUBTITLE_COLOR]=1 \{\ -. PRINT \m[\\*[$COVER_SUBTITLE_COLOR]]\\*[$SUBTITLE]\m[] -. \} -. el \{ .PRINT \\*[$SUBTITLE] \} -. \} -. if \\n[#PRINT_STYLE]=1 \{\ -. if !r#COVER_SUBTITLE \{ .SP \} -. \} -. if \\n[#COVER_AUTHOR]=1 \{\ -. FAMILY \\*[$COVER_AUTHOR_FAM] -. FT \\*[$COVER_AUTHOR_FT] -. PT_SIZE \\*[$COVER_AUTHOR_PT_SIZE] -. if \\n[#PRINT_STYLE]=1 \{\ -. TYPEWRITER -. vs \\n[#DOC_LEAD]u/2u -. \} -. if !'\\*[$ATTRIBUTE_STRING]'' \{\ -. ie \\n[#COVER_ATTRIBUTE_COLOR]=1 \{\ -. PRINT \m[\\*[$COVER_ATTRIBUTE_COLOR]]\\*[$ATTRIBUTE_STRING]\m[] -. \} -. el \{ .PRINT \\*[$ATTRIBUTE_STRING] \} -. \} -. PRINT_AUTHORS -. \} -. FAMILY \\*[$COVER_DOCTYPE_FAM] -. FT \\*[$COVER_DOCTYPE_FT] -. PT_SIZE \\*[$COVER_DOCTYPE_PT_SIZE] -. SP -. if \\n[#COVER_DOCTYPE]=1 \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. TYPEWRITER -. vs \\n[#DOC_LEAD]u -. UNDERSCORE2 "\\*[$DOC_TYPE] -. \} -. el \{\ -. ie \\n[#COVER_DOCTYPE_COLOR]=1 \{\ -. COLOR \\*[$COVER_DOCTYPE_COLOR] -. UNDERSCORE "\\*[$DOC_TYPE] -. \} -. el .UNDERSCORE "\\*[$DOC_TYPE] -. \} -. \} -. sp |\\n[#VISUAL_B_MARGIN]u+\\n[#DOC_LEAD]u -. ie \\n[#PRINT_STYLE]=1 \{\ -. TYPEWRITER -. ie \\n[#SINGLE_SPACE]=1 \{ .vs \\n[#DOC_LEAD]u \} -. el \{ .vs \\n[#DOC_LEAD]u/2u \} -. \} -. el \{\ -. FAMILY \\*[$COVER_COPYRIGHT_FAM] -. FT \\*[$COVER_COPYRIGHT_FT] -. AUTOLEAD 2 -. PT_SIZE \\*[$COVER_COPYRIGHT_PT_SIZE] -. \} -. if \\n[#COVER_COPYRIGHT]=1 \{\ -. QUAD \\*[$COVER_COPYRIGHT_QUAD] -. ie \\n[#COVER_COPYRIGHT_COLOR]=1 \{\ -. PRINT \m[\\*[$COVER_COPYRIGHT_COLOR]]\\*[$COPYRIGHT]\m[] -. \} -. el \{ .PRINT \\*[$COPYRIGHT] \} -. \} -. sp |\\n[#VISUAL_B_MARGIN]u+\\n[#DOC_LEAD]u -. if \\n[#COVER_MISC]=1 \{\ -. QUAD \\*[$COVER_MISC_QUAD] -. nr #MISCS \\n[#MISC_NUM] -. sp -\\n[#MISCS]+1 -. nr #NEXT_MISC 0 1 -. while \\n[#MISCS]>\\n[#NEXT_MISC] \{\ -. ie \\n[#COVER_MISC_COLOR]=1 \{\ -. PRINT \m[\\*[$COVER_MISC_COLOR]]\\*[$MISC_\\n+[#NEXT_MISC]]\m[] -. br -. \} -. el \{\ -. PRINT \\*[$MISC_\\n+[#NEXT_MISC]] -. br -. \} -.\} -. \} -. \} -. EOL -. TRAP -. NEWPAGE -. ev -. if \\n[#PAGINATION_WAS_ON] \{\ -. rr #PAGINATION_WAS_ON -. PAGINATE -. PAGENUMBER \\n%+\\n[#PAGE_NUM_ADJ]-1 -. \} -. if \\n[#HEADERS_WERE_ON] \{\ -. rr #HEADERS_WERE_ON -. HEADERS -. \} -. if \\n[#FOOTERS_WERE_ON] \{\ -. rr #FOOTERS_WERE_ON -. FOOTERS -. \} -. if \\n[#COLUMNS_WERE_ON]=1 \{\ -. rr #COLUMNS_WERE_ON 1 -. nr #COLUMNS 1 -. \} -. rr #DOING_COVER -.END -\# -\# -.MAC START END -. if !\\n[#PRINT_STYLE] \{\ -. PRINTSTYLE TYPEWRITE -. PRINT \& -. po 6P -. ll 39P -. ta \\n(.lu -. sp |1i-1v -. CENTER -. PRINT "You neglected to enter a PRINTSTYLE" -. fl -. ab PRINTSTYLE missing -. \} -. nr #DOCS 1 -. if \\n[#LINENUMBERS]=1 \{\ -. NUMBER_LINES OFF -. nr #LINENUMBERS 2 -. \} -. if \\n[#COLLATE] \{\ -. COPYSTYLE \\*[$COPY_STYLE] -. nr #HEADERS_ON \\n[#HEADER_STATE] -. if \\n[#PAGE_NUM_V_POS]=1 \{ .nr #PAGINATE \\n[#PAGINATION_STATE] \} -. sp |\\n[#HEADER_MARGIN]u -. PRINT \& -. if !'\\*[$RESTORE_PAGENUM_STYLE]'' \{\ -. PAGENUM_STYLE \\*[$RESTORE_PAGENUM_STYLE] -. rm $RESTORE_PAGENUM_STYLE -. \} -. \} -. DEFAULTS -.\" Quote and blockquote default leads are the same as #DOC_LEAD, so -.\" they have to be set after DEFAULTS (where DOC_LEAD is finalized) -. if !r#Q_AUTOLEAD \{ .nr #Q_LEAD \\n[#DOC_LEAD] \} -. if !r#BQ_AUTOLEAD \{ .nr #BQ_LEAD \\n[#DOC_LEAD] \} -. if !r#EN_Q_AUTOLEAD \{ .nr #EN_Q_LEAD \\n[#EN_LEAD] \} -. if !r#EN_BQ_AUTOLEAD \{ .nr #EN_BQ_LEAD \\n[#EN_LEAD] \} -.\" Covers and doc covers -. if \\n[#DOC_COVERS]=1 \{\ -. if \\n[#DOC_COVER]=1 \{\ -. DO_DOC_COVER -. rr #DOC_COVER -. rr #DOC_COVER_TITLE -. rr #DOC_COVER_SUBTITLE -. rr #DOC_COVER_AUTHOR -. rr #DOC_COVER_DOCTYPE -. rr #DOC_COVER_COPYRIGHT -. rr #DOC_COVER_MISC -. \} -. \} -. if \\n[#COVERS]=1 \{\ -. if \\n[#COVER]=1 \{\ -. DO_COVER -. rr #COVER -. rr #COVER_TITLE -. rr #COVER_SUBTITLE -. rr #COVER_AUTHOR -. rr #COVER_DOCTYPE -. rr #COVER_COPYRIGHT -. rr #COVER_MISC -. \} -. \} -.\" Collate related stuff -. ie \\n[#COLLATED_DOC]=1 \{\ -.\" Collect TITLE for TOC. -. nr #TOC_ENTRY_PN \\n%+\\n[#PAGE_NUM_ADJ] -. af #TOC_ENTRY_PN \\g[#PAGENUMBER] -. ie \\n[#USER_SET_TITLE_ITEM] \{\ -. ds $TOC_TITLE_ITEM \\*[$USER_SET_TITLE_ITEM]\\| -. rr #USER_SET_TITLE_ITEM -. rm $USER_SET_TITLE_ITEM -. \} -. el \{\ -. ie \\n[#DOC_TYPE]=2 \{\ -. ie '\\*[$CHAPTER_TITLE]'' \{\ -. ds $TOC_TITLE_ITEM \\*[$CHAPTER_STRING] \\*[$CHAPTER]\\| -. \} -. el \{\ -. ie '\\*[$CHAPTER]'' \{\ -. ds $TOC_TITLE_ITEM \\*[$CHAPTER_TITLE]\\| -. \} -. el \{\ -. ds $TOC_TITLE_ITEM \\*[$CHAPTER_STRING] \\*[$CHAPTER]: \\*[$CHAPTER_TITLE]\\| -. \} -. \} -. \} -. el \{\ -. ds $TOC_TITLE_ITEM \\*[$TITLE]\\| -. \} -. \} -. if \\n[#TOC_AUTHORS]=1 \{\ -. ie '\\*[$TOC_AUTHORS]'' \{\ -. as $TOC_TITLE_ITEM /\\|\\*[$AUTHOR_1]\\| -. \} -. el \{\ -. as $TOC_TITLE_ITEM /\\|\\*[$TOC_AUTHORS]\\| -. rm $TOC_AUTHORS -. \} -. \} -.\" Note the use of \!, which transparently embeds the macros used -.\" in the TOC_ENTRIES diversion. The elements they control must be -.\" processed literally when the diversion is output. -. ev TOC_EV -. da TOC_ENTRIES -. if \\n[#PRINT_STYLE]=1 \{\ -\!. fam C -\!. ft R -\!. ps 12 -. \} -. if \\n[#PRINT_STYLE]=2 \{\ -\!. FAMILY \\*[$TOC_TITLE_FAM] -\!. FT \\*[$TOC_TITLE_FT] -\!. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_TITLE_SIZE_CHANGE] -. \} -\!. TRAP OFF -. ie \\n[#PRINT_STYLE]=1 \{\ -\!. PAD "\\*[$TOC_TITLE_ITEM]\\*[$TOC_PN_TYPEWRITE]" -. \} -. el \{\ -\!. PAD "\\h'\\n[#TOC_TITLE_INDENT]u'\\*[$TOC_TITLE_ITEM]\\*[$TOC_PN]" -. \} -\!. EOL -\!. ST 100 L -\!. ST 101 R -. if \\n[#PRINT_STYLE]=2 \{\ -\!. FAMILY \\*[$TOC_PN_FAM] -\!. FT \\*[$TOC_PN_FT] -\!. PT_SIZE \\n[#TOC_PS]u\\*[$TOC_PN_SIZE_CHANGE] -. \} -\!. TAB 100 -\!. PRINT \\*[LEADER] -\!. TN -\!. TRAP -\!. PRINT \\n[#TOC_ENTRY_PN] -\!. TQ -. di -. ev -. \} -. el \{\ -. nr #FIRST_DOC_TITLE_PN \\n%+\\n[#PAGE_NUM_ADJ] -. af #FIRST_DOC_TITLE_PN \\g[#PAGENUMBER] -. nr #FIRST_DOC_TOC_PN_PADDING \\n[#TOC_PN_PADDING] -. \} -.\" End TITLE collection -. if \\n[#PRINT_PAGENUM_ON_PAGE_1] \{\ -. sp |\\n[#HEADER_MARGIN]u -. PRINT_PAGE_NUMBER -. \} -. rr #COLLATE -. rr #PAGINATION_STATE -.\" End collate stuff -. ie \\n[#DOC_HEADER]=0 \{\ -. PRINT \& -. if \\n[#DOC_TYPE]=4 \{\ -. if !'\\n(.z'' \{ .di \} -. \} -. nr #STORED_PP_INDENT \\n[#PP_INDENT] -. PARA_INDENT 0 -. PP -. PARA_INDENT \\n[#STORED_PP_INDENT]u -. rr #STORED_PP_INDENT -. ie r#ADVANCE_FROM_TOP \{\ -. sp |\\n[#ADVANCE_FROM_TOP]u-1v -. if \\n[#ADJ_DOC_LEAD]=1 \{ .SHIM \} -. \} -. el \{ .sp |\\n[#T_MARGIN]u-1v \} -. if \\n[#COLUMNS] \{\ -. mk dc -. nr #COL_NUM 0 1 -. po \\n[#COL_\\n+[#COL_NUM]_L_MARGIN]u -. nr #L_MARGIN \\n(.o -. ll \\n[#COL_L_LENGTH]u -. \} -. nr #PP 0 -. rr #DOC_HEADER -. if r#ADVANCE_FROM_TOP \{ .rr #ADVANCE_FROM_TOP \} -. \} -. el \{\ -. if \\n[#PRINT_STYLE]=2 \{ .LS \\n[#DOC_LEAD]u\\*[$DOCHEADER_LEAD_ADJ] \} -. nr #DOCHEADER_LEAD \\n[#LEAD] -.\" Default -. if \\n[#DOC_TYPE]=1 \{\ -. PRINT \& -. sp |\\n[#DOCHEADER_ADVANCE]u-1v -. ev DOCHEADER -. if \\n[#DOCHEADER_COLOR]=1 \{\ -. nf -\m[\\*[$DOCHEADER_COLOR]] -. EOL -. \} -. L_MARGIN \\n[#DOC_L_MARGIN]u -. LL \\n[#DOC_L_LENGTH]u -. ta \\n(.lu -. if \\n[#PRINT_STYLE]=1 \{\ -. CENTER -. TYPEWRITER -. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u*2u \} -. el \{ .vs \\n[#DOC_LEAD]u \} -. CAPS -. if !'\\*[$TITLE]'' \{ .UNDERSCORE "\\*[$TITLE]\} -. CAPS OFF -. if !'\\*[$SUBTITLE]'' \{\ -. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u*2u \} -. el \{ .vs \\n[#DOC_LEAD]u \} -. PRINT \\*[$SUBTITLE] -. \} -. if '\\*[$SUBTITLE]'' \{\ -. ALD \\n[#DOC_LEAD]u -. \} -. ie !'\\*[$AUTHOR_1]'' \{\ -. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u \} -. el \{ .vs \\n[#DOC_LEAD]u/2u \} -. if !d$SUBTITLE \{\ -. ie \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u \} -. el \{ .ALD \\n[#DOC_LEAD]u*2u \} -. \} -. PRINT \\*[$ATTRIBUTE_STRING] -. nr #AUTHORS \\n[#AUTHOR_NUM] -. nr #NEXT_AUTHOR 0 1 -. while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\ -. PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]] -.\} -. if \\n[#AUTHOR_LINES]=1 \{\ -. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u \} -. el \{ .ALD \\n[#DOC_LEAD]u/2u \} -. \} -. \} -. el \{\ -. ie !d$SUBTITLE \{\ -. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u*2u \} -. el \{ .RLD \\n[#DOC_LEAD]u \} -. \} -. el \{\ -. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u*2u \} -. el \{ .ALD \\n[#DOC_LEAD]u \} -. \} -. \} -. \} -. if \\n[#PRINT_STYLE]=2 \{\ -. DEFAULT_DOCHEADER -. di DOCHEADER_DIVERSION \" This diversion is only -. br \" necessary to find the depth of the -. DEFAULT_DOCHEADER \" docheader -. br -. di -. nr #DOCHEADER_DEPTH \\n(dn-\\n[#DOCHEADER_LEAD] \"Storing the depth (height) of the diversion -. \"in #DOCHEADER_DEPTH -. rm DOCHEADER_DIVERSION \" Removing the diversion macro -. \} -. ev -. \} -.\" Chapter -. if \\n[#DOC_TYPE]=2 \{\ -. PRINT \& -. sp |\\n[#DOCHEADER_ADVANCE]u-1v -. ev DOCHEADER -. if \\n[#DOCHEADER_COLOR]=1 \{\ -. nf -\m[\\*[$DOCHEADER_COLOR]] -. EOL -. \} -. L_MARGIN \\n[#DOC_L_MARGIN]u -. LL \\n[#DOC_L_LENGTH]u -. ta \\n(.lu -. if \\n[#PRINT_STYLE]=1 \{\ -. CENTER -. TYPEWRITER -. vs \\n[#DOC_LEAD]u -. ie '\\*[$CHAPTER]'' \{\ -. CAPS -. ie !'\\*[$CHAPTER_TITLE]'' \{\ -. PRINT \\*[$CHAPTER_TITLE] -. \} -. el \{\ -. CAPS -. PRINT \\*[$CHAPTER_STRING] -. \} -. CAPS OFF -. \} -. el \{\ -. CAPS -. PRINT \\*[$CHAPTER_STRING] \\*[$CHAPTER] -. CAPS OFF -. if !'\\*[$CHAPTER_TITLE]'' \{\ -. if \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u \} -. UNDERSCORE "\\*[$CHAPTER_TITLE] -. \} -. \} -. if \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u \} -. \} -. if \\n[#PRINT_STYLE]=2 \{\ -. CHAPTER_DOCHEADER -. di DOCHEADER_DIVERSION \" This diversion is only -. br \" necessary to find the depth of the -. CHAPTER_DOCHEADER \" docheader -. br -. di -. nr #DOCHEADER_DEPTH \\n(dn-\\n[#DOCHEADER_LEAD] \" Storing the depth (height) of the diversion -. \" in #DOCHEADER_DEPTH -. rm DOCHEADER_DIVERSION \" Removing the diversion macro -. \} -. ev -. \} -.\" Named -. if \\n[#DOC_TYPE]=3 \{\ -. PRINT \& -. sp |\\n[#DOCHEADER_ADVANCE]u-1v -. ev DOCHEADER -. if \\n[#DOCHEADER_COLOR]=1 \{\ -. nf -\m[\\*[$DOCHEADER_COLOR]] -. EOL -. \} -. L_MARGIN \\n[#DOC_L_MARGIN]u -. LL \\n[#DOC_L_LENGTH]u -. ta \\n(.lu -. if \\n[#PRINT_STYLE]=1 \{\ -. CENTER -. TYPEWRITER -. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u*2u \} -. el \{ .vs \\n[#DOC_LEAD]u \} -. CAPS -. if !'\\*[$TITLE]'' \{ .UNDERSCORE "\\*[$TITLE]\} -. CAPS OFF -. if !'\\*[$SUBTITLE]'' \{\ -. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u*2u \} -. el \{ .vs \\n[#DOC_LEAD]u \} -. PRINT \\*[$SUBTITLE] -. \} -. if '\\*[$SUBTITLE]'' \{\ -. ALD \\n[#DOC_LEAD]u -. \} -. ie !'\\*[$AUTHOR_1]'' \{\ -. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u \} -. el \{ .vs \\n[#DOC_LEAD]u/2u \} -. if !d$SUBTITLE \{\ -. ie \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u \} -. el \{ .ALD \\n[#DOC_LEAD]u*2u \} -. \} -. PRINT \\*[$ATTRIBUTE_STRING] -. nr #AUTHORS \\n[#AUTHOR_NUM] -. nr #NEXT_AUTHOR 0 1 -. while \\n[#AUTHORS]>\\n[#NEXT_AUTHOR] \{\ -. PRINT \\*[$AUTHOR_\\n+[#NEXT_AUTHOR]] -.\} -. if \\n[#AUTHOR_LINES]=1 \{\ -. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u \} -. el \{ .ALD \\n[#DOC_LEAD]u/2u \} -. \} -. vs \\n[#DOC_LEAD]u -. \} -. el \{\ -. ie !d$SUBTITLE \{\ -. ie \\n[#SINGLE_SPACE] \{ .RLD \\n[#DOC_LEAD]u*2u \} -. el \{ .RLD \\n[#DOC_LEAD]u \} -. \} -. el \{\ -. ie \\n[#SINGLE_SPACE] \{ . \} -. el \{ .RLD \\n[#DOC_LEAD]u \} -. \} -. \} -. ie \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u*2u \} -. el \{ .ALD \\n[#DOC_LEAD]u \} -. UNDERSCORE2 "\\*[$DOC_TYPE] -. if \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u \} -. \} -. if \\n[#PRINT_STYLE]=2 \{\ -. NAMED_DOCHEADER -. di DOCHEADER_DIVERSION \" This diversion is only -. br \" necessary to find the depth of the -. NAMED_DOCHEADER \" docheader -. br -. di -. nr #DOCHEADER_DEPTH \\n(dn-\\n[#DOCHEADER_LEAD] \"Storing the depth (height) of the diversion -. \"in #DOCHEADER_DEPTH -. rm DOCHEADER_DIVERSION \" Removing the diversion macro -. \} -. ev -. \} -. if !\\n[#DOC_TYPE]=4 \{\ -. if \\n[#PRINT_STYLE]=1 \{ .ALD \\n[#DOC_LEAD]u \} -. nr #DOCHEADER_SPACE_ADJ \\n[#DOCHEADER_DEPTH]%\\n[#DOC_LEAD] -. ie !\\n[#DOCHEADER_SPACE_ADJ]=0 \{ .nr #DOCHEADER_EXTRA_SPACE \\n[#DOC_LEAD]-\\n[#DOCHEADER_SPACE_ADJ] \} -. el \{ .nr #DOCHEADER_EXTRA_SPACE 0 \} -. if \\n[#PRINT_STYLE]=2 \{ .ALD (\\n[#DOC_LEAD]u*2u)+\\n[#DOCHEADER_EXTRA_SPACE]u \} -. if \\n[#COLUMNS] \{\ -. nr #COL_NUM 0 1 -. nr #L_LENGTH_FOR_EPI \\n[#L_LENGTH] -. po \\n[#COL_\\n+[#COL_NUM]_L_MARGIN]u -. nr #L_MARGIN \\n(.o -. LL \\n[#COL_L_LENGTH]u -. ta \\n(.lu -. mk dc -. \} -. \} -. \} -. LS \\n[#DOC_LEAD]u -. if \\n[#ADJ_DOC_LEAD]=1 \{ .SHIM \} -. QUAD \\*[$DOC_QUAD] -. CLEANUP_DEFAULTS -. nr #START_FOR_FOOTERS 1 -. if \\n[#COLLATED_DOC]=1 \{\ -. if !\\n[MNinit_DEFERRED]=1 \{\ -. MN_INIT rerun -. \} -. \} -. if \\n[#MNinit_DEFERRED]=1 \{\ -. rr #MNinit_DEFERRED -. nr #START_FOR_MNinit 1 -. MN_INIT \\*[$MN-arg1] \\*[$MN-arg2] \\*[$MN-arg3] \\*[$MN-arg4] \\*[$MN-arg5] \\*[$MN-arg6] \\*[$MN-arg7] \\*[$MN-arg8] \\*[$MN-arg9] -. \} -. nr #START_FOR_MNinit 2 -. if !\\n[#DOC_TYPE]=4 \{ .em TERMINATE \} -. if \\n[#LINENUMBERS]=2 \{\ -. NUMBER_LINES RESUME -. nr #LINENUMBERS 1 -. \} -. if \\n[#RUN_ON]=1 \{\ -. if \\n[#FN_MARKER_STYLE]=1 \{ .RUNON_WARNING \} -. if \\n[#FN_MARKER_STYLE]=2 \{ .RUNON_WARNING \} -. \} -.END -\# -.MAC CLEANUP_DEFAULTS END -. nr #START 1 -.\" Family strings for docheader -. rm $AUTHOR_FAM -. rm $CHAPTER_TITLE_FAM -. rm $DOCTYPE_FAM -. rm $SUBTITLE_FAM -. rm $TITLE_FAM -.\" Family strings for cover -. rm $COVER_AUTHOR_FAM -. rm $COVER_CHAPTER_TITLE_FAM -. rm $COVER_COPYRIGHT_FAM -. rm $COVER_DOCTYPE_FAM -. rm $COVER_LEAD_ADJ -. rm $COVER_SUBTITLE_FAM -. rm $COVER_TITLE_FAM -.\" Family strings for doc cover -. rm $DOC_COVER_AUTHOR_FAM -. rm $DOC_COVER_CHAPTER_TITLE_FAM -. rm $DOC_COVER_COPYRIGHT_FAM -. rm $DOC_COVER_DOCTYPE_FAM -. rm $DOC_COVER_LEAD_ADJ -. rm $DOC_COVER_SUBTITLE_FAM -. rm $DOC_COVER_TITLE_FAM -.\" Quad args to copyright and misc -. rm $COVER_COPYRIGHT_QUAD -. rm $COVER_MISC_QUAD -. rm $DOC_COVER_COPYRIGHT_QUAD -. rm $DOC_COVER_MISC_QUAD -.\" Miscellaneous strings -. rm $TOC_TITLE_ITEM -. rm $DOCHEADER_LEAD_ADJ -.\" Various registers -. rr #ADJ_DOC_LEAD -. rr #ADVANCE_FROM_TOP -. rr #AUTHOR_NUM -. rr #AUTHORS -. rr #COVER_LEAD -. rr #DEPTH_1 -. rr #DEPTH_2 -. rr #DOC_COVER_LEAD -. rr #DOCHEADER_ADVANCE -. rr #DOCHEADER_EXTRA_SPACE -. rr #DOCHEADER_LEAD -. rr #DOCHEADER_SPACE_ADJ -. rr #MISC_NUM -. rr #MISCS -. rr #NEXT_AUTHOR -. rr #NEXT_MISC -. rr #NUM_AUTHORS -.END -\# -\# ==================================================================== -\# -\# +++MACROS TO CHANGE SOME DEFAULTS+++ -\# -\# DOCUMENT HEADER -\# --------------- -\# *Argument: -\# | [distance to advance from top of page] -\# *Function: -\# Turns printing of document header on or off. If a second argument -\# in units of measure is given, advances that distance from the -\# top of the page without printing the document header. -\# *Notes: -\# Default is on. If the 1st argument is (which turns -\# document headers off), the optional 2nd argument may be given -\# (with a unit of measure). -\# -.MAC DOCHEADER END -. ie '\\$1'' \{ .nr #DOC_HEADER 1 \} -. el \{\ -. if !'\\$2'' \{ .nr #ADVANCE_FROM_TOP (\\$2) \} -. nr #DOC_HEADER 0 -. \} -.END -\# -\# -\# DOCUMENT HEADER LEADING -\# ----------------------- -\# *Arguments: -\# <+|- amount by which to in/decrease leading of doc header> -\# *Function: -\# Stores user supplied lead in/decrease in string $DOCHEADER_LEAD_ADJ. -\# *Notes: -\# A unit of measure must be supplied. Decimal fractions OK. -\# Default is +0, i.e. same as DOC_LEAD. -\# -.MAC DOCHEADER_LEAD END -. ds $DOCHEADER_LEAD_ADJ \\$1 -.END -\# -\# -\# DOCHEADER ADVANCE -\# ----------------- -\# *Arguments: -\# -\# *Function: -\# Creates register #DOCHEADER_ADVANCE, used in START. -\# *Notes: -\# Unit of measure required. -\# Default is same as T_MARGIN. -\# -.MAC DOCHEADER_ADVANCE END -. nr #DOCHEADER_ADVANCE (\\$1) -.END -\# -\# -\# DOCUMENT LEFT MARGIN -\# -------------------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies register #DOC_L_MARGIN. -\# *Notes: -\# Affects EVERYTHING on the page. -\# -.MAC DOC_LEFT_MARGIN END -. br -. nr #DOC_L_MARGIN (\\$1) -. L_MARGIN \\n[#DOC_L_MARGIN]u -.END -\# -\# -\# DOCUMENT RIGHT MARGIN -\# --------------------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies register #DOC_R_MARGIN. -\# *Notes: -\# Affects EVERYTHING on the page. -\# -.MAC DOC_RIGHT_MARGIN END -. br -. nr #DOC_R_MARGIN (\\$1) -. R_MARGIN \\n[#DOC_R_MARGIN] -. nr #DOC_L_LENGTH \\n[#L_LENGTH] -.END -\# -\# -\# DOCUMENT LINE LENGTH -\# -------------------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies string $DOC_L_LENGTH. -\# *Notes: -\# Affects EVERYTHING on the page. -\# -.MAC DOC_LINE_LENGTH END -. br -. nr #DOC_L_LENGTH (\\$1) -. LL \\n[#DOC_L_LENGTH]u -. ta \\n(.lu -.END -\# -\# -\# DOCUMENT FAMILY -\# --------------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies string $DOC_FAM. -\# *Notes: -\# Affects everything EXCEPT headers and footers. -\# -.MAC DOC_FAMILY END -. br -. ds $DOC_FAM \\$1 -. ds $FAMILY \\*[$DOC_FAM] -. TITLE_FAMILY \\*[$DOC_FAM] -. SUBTITLE_FAMILY \\*[$DOC_FAM] -. AUTHOR_FAMILY \\*[$DOC_FAM] -. DOCTYPE_FAMILY \\*[$DOC_FAM] -. HEAD_FAMILY \\*[$DOC_FAM] -. SUBHEAD_FAMILY \\*[$DOC_FAM] -. QUOTE_FAMILY \\*[$DOC_FAM] -. BLOCKQUOTE_FAMILY \\*[$DOC_FAM] -. EPIGRAPH_FAMILY \\*[$DOC_FAM] -. HDRFTR_FAMILY \\*[$DOC_FAM] -. FOOTNOTE_FAMILY \\*[$DOC_FAM] -.END -\# -\# -\# DOCUMENT POINT SIZE -\# ------------------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies register #DOC_PT_SIZE. -\# *Notes: -\# DOC_PT_SIZE is the basis for calculating all type sizes in -\# a document. -\# -.MAC DOC_PT_SIZE END -. if \\n[#IGNORE] \{ .return \} -. br -. PT_SIZE \\$1 -. nr #DOC_PT_SIZE \\n[#PT_SIZE] -.END -\# -\# -\# DOCUMENT LEAD -\# ------------- -\# *Argument: -\# [ADJUST] -\# *Function: -\# Creates or modifies register #DOC_LEAD. If the optional -\# ADJUST argument is given, adjusts leading so that the last -\# line of text falls exactly on #B_MARGIN. -\# *Notes: -\# DOC_LEAD is the basis for calculating all leading changes in -\# a document. Default for TYPESET is 16; 24 for TYPEWRITE. -\# -\# Because the visible bottom or footer margin of a page depends -\# on the overall document lead supplied by the register #DOC_LEAD, -\# DOC_LEAD, in the body of a document, should always be associated -\# with the start of a new page (in other words, just before or -\# just after a manual NEWPAGE). -\# -.MAC DOC_LEAD END -. if \\n[#IGNORE] \{ .return \} -. br -. vs \\$1 -. nr #DOC_LEAD \\n[#LEAD] -. if '\\$2'ADJUST' \{ .TRAPS \} -.END -\# -\# -\# ADJUST DOCUMENT LEAD -\# -------------------- -\# *Arguments: -\# | -\# *Function: -\# Adjusts document lead so that the last line of text falls exactly -\# on #B_MARGIN. -\# -.MAC DOC_LEAD_ADJUST END -. ie '\\$1'' \{\ -. nr #ADJ_DOC_LEAD 1 -. \} -. el \{\ -. nr #ADJ_DOC_LEAD 0 -. nr #DOC_LEAD_ADJUST_OFF 1 -. \} -.END -\# -\# -\# SHIM -\# ---- -\# *Argument: -\# None -\# *Function: -\# Advances to the next "legal" baseline. -\# *Notes: -\# If a user plays around with spacing in a doc (say, with ALD), -\# it isn't easy to get mom back on track so she can achieve -\# perfectly flush bottom margins. Any time SHIM is used, it -\# ensures that the next output line falls on a legal baseline. -\# -\# First, a little convenience macro -\# -.MAC PROCESS_SHIM END -. while \\n+[#LEGAL_BASELINE]<\\n[#CURRENT_V_POS] \{\ -. -.\} -. nr #SHIM \\n[#LEGAL_BASELINE]-\\n[#CURRENT_V_POS] -.END -\# -\# -.MAC SHIM END -. nr #LEGAL_BASELINE \\n[#T_MARGIN]-1v \\n[#DOC_LEAD] -. if !r#CURRENT_V_POS \{ .nr #CURRENT_V_POS \\n(.d \} -. ie r#ADVANCE_FROM_TOP \{\ -. ie \\n[#CURRENT_V_POS]<(\\n[#T_MARGIN]-1v) \{\ -. while \\n-[#LEGAL_BASELINE]>\\n[#CURRENT_V_POS] \{\ -. -.\} -. nr #LEGAL_BASELINE +\\n[#DOC_LEAD] -. nr #SHIM \\n[#LEGAL_BASELINE]-\\n[#CURRENT_V_POS] -. \} -. el \{\ -. PROCESS_SHIM -. \} -. \} -. el \{\ -. PROCESS_SHIM -. \} -. ALD \\n[#SHIM]u -. rr #CURRENT_V_POS -.END -\# -\# -\# -\# ==================================================================== -\# -\# +++INTERNATIONALIZATION+++ -\# -\# ATTRIBUTE STRING -\# ---------------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies string $ATTRIBUTE_STRING. -\# *Notes: -\# Default is "by". A blank string ("") may be used if no -\# attribution is desired. -\# -.MAC ATTRIBUTE_STRING END -. ds $ATTRIBUTE_STRING \\$1 -.END -\# -\# -\# CHAPTER STRING -\# -------------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies string $CHAPTER_STRING. -\# *Notes: -\# Default is "chapter". -\# -.MAC CHAPTER_STRING END -. ds $CHAPTER_STRING \\$1 -.END -\# -\# -\# DRAFT STRING -\# ------------ -\# *Argument: -\# -\# *Function: -\# Creates or modifies string $DRAFT_STRING. -\# *Notes: -\# Default is "draft". -\# -.MAC DRAFT_STRING END -. ds $DRAFT_STRING \\$1 -.END -\# -\# -\# REVISION STRING -\# --------------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies string $REVISION_STRING. -\# *Notes: -\# Default is "revision". -\# -.MAC REVISION_STRING END -. ds $REVISION_STRING \\$1 -.END -\# -\# -\# FINIS STRING -\# ------------ -\# *Argument: -\# -\# *Function: -\# Creates or modifies string $FINIS_STRING. -\# *Notes: -\# Default is "END". -\# -.MAC FINIS_STRING END -. nr #FINIS 1 -. CAPS -. ds $FINIS_STRING \\$1 -. CAPS OFF -.END -\# -\# -\# ==================================================================== -\# -\# +++RECTO/VERSO+++ -\# -\# RECTO_VERSO -\# ----------- -\# *Arguments: -\# | -\# *Function: -\# Switches HDRFTR_LEFT and HDRFTR_RIGHT on alternate pages. Also -\# switches page numbers left and right if either is chosen rather -\# than the default centered page numbers. Switches left and right -\# margins if differing values have been entered. -\# *Notes: -\# Default is OFF. -\# -.MAC RECTO_VERSO END -. ie '\\$1'' \{ .nr #RECTO_VERSO 1 \} -. el \{ .nr #RECTO_VERSO 0 \} -.END -\# -\# ==================================================================== -\# -\# +++EPIGRAPHS+++ -\# -\# EPIGRAPH INDENT -\# --------------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies register #EPI_OFFSET_VALUE. -\# *Notes: -\# Default is 2 for TYPEWRITE, 3 for TYPESET. -\# -.MAC EPIGRAPH_INDENT END -. nr #EPI_OFFSET_VALUE \\$1 -.END -\# -\# -\# EPIGRAPH AUTOLEAD -\# ----------------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies register #EPI_AUTOLEAD. -\# *Notes: -\# Default is 2 (for TYPESET; TYPEWRITE doesn't require this). -\# -.MAC EPIGRAPH_AUTOLEAD END -. nr #EPI_AUTOLEAD \\$1 -.END -\# -\# -\# EPIGRAPH -\# -------- -\# *Arguments: -\# BLOCK | -\# *Function: -\# Places an epigraph before the document's text, after the -\# document header, or after a HEAD. -\# *Notes: -\# #EPIGRAPH 1 = centered; 2 = block -\# -\# By default, epigraphs are centered, allowing the user -\# to input them on a line per line basis. To change this -\# behaviour, the user can supply the argument BLOCK, which -\# will produce indented, filled text similar to BLOCKQUOTE. -\# -\# If a block epigraph contains more than one para, ALL paras of -\# the epigraph must be preceded by PP. Otherwise, PP is optional. -\# -.MAC EPIGRAPH END -. nr #PP_STYLE 2 -. nr #Q_PP 0 -. if \\n[#LINENUMBERS]=1 \{\ -. NUMBER_LINES OFF -. nr #LINENUMBERS 2 -. \} -. if \\n[#START] \{\ -. if \\n[#PRINT_STYLE]=1 \{\ -. if \\n[#AUTHOR_LINES]=1 \{ .ALD \\n[#DOC_LEAD]u \} -. \} -. \} -. ie '\\$1'' \{\ -. nr #EPIGRAPH 1 -. ev EPIGRAPH -. nr #IN_DIVER 1 -. ll \\n[#L_LENGTH]u -. ta \\n(.lu -. CHECK_INDENT -. if \\n[#COLUMNS] \{\ -. ie \\n[#START] \{\ -. ll \\n[#DOC_L_LENGTH]u -. ta \\n(.lu -. \} -. el \{\ -. ll \\n[#COL_L_LENGTH]u -. ta \\n(.lu -. \} -. \} -. CENTER -. if \\n[#PRINT_STYLE]=1 \{\ -. fam C -. ft R -. if '\\*[$EPI_FT]'I' \{\ -. FT I -. \} -. ps 12 -. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u \} -. el \{ .vs \\n[#DOC_LEAD]u/2u \} -. nr #EPI_LEAD \\n[#LEAD] -. nr #EPI_LEAD_DIFF \\n[#DOC_LEAD]-\\n[#EPI_LEAD] -. \} -. if \\n[#PRINT_STYLE]=2 \{\ -. FAMILY \\*[$EPI_FAM] -. FT \\*[$EPI_FT] -. PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$EPI_SIZE_CHANGE] -. if \\n[#EPI_COLOR]=1 \{\ -. nf -\m[\\*[$EPI_COLOR]] -. EOL -. \} -. AUTOLEAD \\n[#EPI_AUTOLEAD] -. nr #EPI_LEAD \\n[#LEAD] -. nr #EPI_LEAD_DIFF \\n[#DOC_LEAD]-\\n[#EPI_LEAD] -. \} -. di EPI_TEXT -. nr #DIVERSIONS_HY_MARGIN (p;\\n[.ps]u*2.75)/1000 -. HY_SET 1 \\n[#DIVERSIONS_HY_MARGIN]u (\\n[#PT_SIZE]u/1000u/8u)p -. hy 14 -. nr #EPI_ACTIVE 1 -. \} -. el \{\ -. ie '\\$1'BLOCK' \{\ -. nr #EPIGRAPH 2 -. ev EPIGRAPH -. ie \\n[#START] \{\ -. ie \\n[#COLUMNS] \{\ -. ll \\n[#L_LENGTH_FOR_EPI]u-(\\n[#PP_INDENT]u*(\\n[#EPI_OFFSET_VALUE]u*2u)) -. ta \\n(.lu -. \} -. el \{\ -. ll \\n[#L_LENGTH]u-(\\n[#PP_INDENT]u*(\\n[#EPI_OFFSET_VALUE]u*2u)) -. ta \\n(.lu -. \} -. \} -. el \{\ -. ll \\n[#L_LENGTH]u-(\\n[#PP_INDENT]u*(\\n[#EPI_OFFSET_VALUE]u*2u)) -. ta \\n(.lu -. if \\n[#COLUMNS] \{\ -. ll \\n[#COL_L_LENGTH]u-(\\n[#PP_INDENT]u*(\\n[#EPI_OFFSET_VALUE]u*2u)) -. ta \\n(.lu -. \} -. CHECK_INDENT -. \} -. if \\n[#PRINT_STYLE]=1 \{\ -. fam C -. ft R -. if '\\*[$EPI_FT]'I' \{\ -. FT I -. \} -. ps 12 -. ie \\n[#SINGLE_SPACE] \{ .vs \\n[#DOC_LEAD]u \} -. el \{ .vs \\n[#DOC_LEAD]u/2u \} -. QUAD LEFT -. HY OFF -. nr #EPI_LEAD \\n[#LEAD] -. nr #EPI_LEAD_DIFF \\n[#DOC_LEAD]-\\n[#EPI_LEAD] -. di EPI_TEXT -. nr #EPI_ACTIVE 1 -. \} -. if \\n[#PRINT_STYLE]=2 \{\ -. FAMILY \\*[$EPI_FAM] -. FT \\*[$EPI_FT] -. PT_SIZE \\n[#DOC_PT_SIZE]u\\*[$EPI_SIZE_CHANGE] -. if \\n[#EPI_COLOR]=1 \{\ -. nf -\m[\\*[$EPI_COLOR]] -. EOL -. \} -. AUTOLEAD \\n[#EPI_AUTOLEAD] -. QUAD \\*[$EPI_QUAD] -. nr #DIVERSIONS_HY_MARGIN (p;\\n[.ps]u*2.75)/1000 -. HY_SET 1 \\n[#DIVERSIONS_HY_MARGIN]u (\\n[#PT_SIZE]u/1000u/8u)p -. hy 14 -. nr #EPI_LEAD \\n[#LEAD] -. nr #EPI_LEAD_DIFF \\n[#DOC_LEAD]-\\n[#EPI_LEAD] -. di EPI_TEXT -. nr #EPI_ACTIVE 1 -. \} -. \} -. el \{\ -. DO_EPIGRAPH -. \} -. \} -.END -\# -\# -\# DO EPIGRAPH -\# ----------- -\# *Arguments: -\# -\# *Function: -\# Ends diversion started in EPIGRAPH. Makes spacing -\# adjustments to compensate for the difference between epigraph -\# leading and overall document leading, so that the bottom of -\# the pages remain flush. -\# *Notes: -\# In addition to its usual place at the beginning of a -\# document, EPIGRAPH may also be used after HEAD. -\# -.MAC DO_EPIGRAPH END -. br -. di -. rr #IN_DIVER -. if \\n[#RESET_FN_COUNTERS]=2 \{\ -. if !\\n[#FN_COUNT]=1 \{\ -. if ((\\n[#PAGE_LENGTH]+\\n[#VARIABLE_FOOTER_POS])+\\n[#DIVER_DEPTH])>(\\n[#PAGE_LENGTH]+\\n[#VARIABLE_FOOTER_POS]) \{\ -. DIVER_FN_2_POST -. rr #RESET_FN_COUNTERS -. \} -. \} -. \} -. nr #SAVED_FN_NUMBER \\n[#FN_NUMBER] -. nr #DONE_ONCE 0 1 -. REMOVE_INDENT -. ev -. nr #EPI_DEPTH \\n[#DIVER_DEPTH]-\\n[#EPI_LEAD] -. nr #EPI_LINES \\n[#EPI_DEPTH]/\\n[#EPI_LEAD] -. ie \\n[#START] \{\ -. RLD \\n[#SHIM]u -. nr #EPI_WHITESPACE (\\n[#DOC_LEAD]*\\n[#EPI_LINES])-\\n[#EPI_DEPTH] -. while \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{\ -. nr #EPI_WHITESPACE -\\n[#DOC_LEAD] -.\} -. if \\n[#PRINT_STYLE]=2 \{\ -. RLD \\n[#DOC_LEAD]u -. if \\n[#EPI_WHITESPACE]<\\n[#DOC_LEAD] \{\ -. ALD \\n[#EPI_LEAD_DIFF]u+(\\n[#EPI_WHITESPACE]u/2u) -. \} -. if \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{\ -. ALD \\n[#EPI_LEAD_DIFF]u+(\\n[#EPI_WHITESPACE]u/2u)-\\n[#DOC_LEAD]u -. \} -. \} -. \} -. el \{\ -. ie \\n[#EPI_DEPTH]<\\n[#TRAP_DISTANCE] \{\ -. nr #EPI_FITS 1 -. nr #EPI_WHITESPACE (\\n[#DOC_LEAD]*\\n[#EPI_LINES])-\\n[#EPI_DEPTH] -. while \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{\ -. nr #EPI_WHITESPACE -\\n[#DOC_LEAD] -.\} -. ie \\n[#PRINT_STYLE]=1 \{\ -. if \\n[#EPI_WHITESPACE]=\\n[#DOC_LEAD] \{ .ALD \\n[#EPI_WHITESPACE]u/2u \} -. \} -. el \{\ -. if \\n[#EPI_WHITESPACE]<\\n[#DOC_LEAD] \{\ -. ALD \\n[#EPI_LEAD_DIFF]u+(\\n[#EPI_WHITESPACE]u/2u) -. \} -. if \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{\ -. ALD \\n[#EPI_LEAD_DIFF]u+(\\n[#EPI_WHITESPACE]u/2u)-\\n[#DOC_LEAD]u -. \} -. \} -. if \\n[#DIVER_FN]=2 \{ .rr #DIVER_FN \} -. \} -. el \{\ -. nr #EPI_LINES_TO_TRAP 0 1 -. while \\n[#EPI_LEAD]*\\n+[#EPI_LINES_TO_TRAP]<\\n[#TRAP_DISTANCE] \{\ -. nr #LOOP 1 -.\} -. nr #EPI_LINES_TO_TRAP -1 -. nr #EPI_WHITESPACE (\\n[#EPI_LINES_TO_TRAP]*\\n[#DOC_LEAD])-(\\n[#EPI_LINES_TO_TRAP]*\\n[#EPI_LEAD]) -. while \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{\ -. nr #EPI_WHITESPACE -\\n[#DOC_LEAD] -.\} -. if \\n[#EPI_WHITESPACE]<\\n[#DOC_LEAD] \{ .ALD \\n[#EPI_WHITESPACE]u \} -. if \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{ .ALD \\n[#EPI_WHITESPACE]u-\\n[#DOC_LEAD]u \} -. \} -. \} -. if \\n[#EPIGRAPH]=1 \{\ -. po \\n[#L_MARGIN]u -. if \\n[#COLUMNS] \{\ -. po \\n[#COL_\\n[#COL_NUM]_L_MARGIN]u -. nr #L_MARGIN \\n(.o -. \} -. \} -. if \\n[#EPIGRAPH]=2 \{\ -. nr #EPI_OFFSET \\n[#L_MARGIN]+(\\n[#PP_INDENT]*\\n[#EPI_OFFSET_VALUE]) -. if \\n[#COLUMNS] \{\ -. nr #EPI_OFFSET \\n[#COL_\\n[#COL_NUM]_L_MARGIN]+(\\n[#PP_INDENT]*\\n[#EPI_OFFSET_VALUE]) -. \} -. po \\n[#EPI_OFFSET]u -. \} -. nf -. EPI_TEXT -. br -. ie \\n[#START] \{\ -. if \\n[#PRINT_STYLE]=1 \{\ -. ie \\n[#SINGLE_SPACE] \{ .ALD \\n[#DOC_LEAD]u \} -. el \{\ -. ie \\n[#EPI_LINES]%2=1 \{ .ALD \\n[#DOC_LEAD]u \} -. el \{ .ALD \\n[#DOC_LEAD]u/2u \} -. \} -. SHIM -. \} -. if \\n[#PRINT_STYLE]=2 \{\ -. if \\n[#EPI_WHITESPACE]<\\n[#DOC_LEAD] \{\ -. ALD \\n[#EPI_WHITESPACE]u/2u -. \} -. if \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{\ -. ALD (\\n[#EPI_WHITESPACE]u/2u)-\\n[#DOC_LEAD]u -. \} -. SHIM -. \} -. \} -. el \{\ -. rr #EPI_ACTIVE -. ie \\n[#EPI_FITS] \{\ -. ie \\n[#FN_FOR_EPI] \{\ -. nr #EPI_LINES_TO_END 1 -. nr #EPI_WHITESPACE (\\n[#EPI_LINES_TO_END]*\\n[#DOC_LEAD])-(\\n[#EPI_LINES_TO_END]*\\n[#EPI_LEAD]) -. while \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{\ -. nr #EPI_WHITESPACE -\\n[#DOC_LEAD] -.\} -. ALD \\n[#EPI_WHITESPACE]u-(\\n[#DOC_LEAD]u-\\n[#EPI_LEAD]u) -. \} -. el \{\ -. ie \\n[#PRINT_STYLE]=1 \{\ -. if \\n[#EPI_WHITESPACE]=\\n[#DOC_LEAD] \{ .ALD \\n[#EPI_WHITESPACE]u \} -. \} -. el \{\ -. if \\n[#EPI_WHITESPACE]<\\n[#DOC_LEAD] \{\ -. ALD \\n[#EPI_WHITESPACE]u/2u -. \} -. if \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{\ -. ALD (\\n[#EPI_WHITESPACE]u/2u)-\\n[#DOC_LEAD]u -. \} -. \} -. \} -. \} -. el \{\ -. nr #EPI_LINES_TO_END \\n[#EPI_LINES]-\\n[#EPI_LINES_TO_TRAP] -. if \\n[#LOOP] \{ .nr #EPI_LINES_TO_END +1 \} -. rr #LOOP -. nr #EPI_WHITESPACE (\\n[#EPI_LINES_TO_END]*\\n[#DOC_LEAD])-(\\n[#EPI_LINES_TO_END]*\\n[#EPI_LEAD]) -. while \\n[#EPI_WHITESPACE]>\\n[#DOC_LEAD] \{\ -. nr #EPI_WHITESPACE -\\n[#DOC_LEAD] -.\} -. ALD \\n[#EPI_WHITESPACE]u-(\\n[#DOC_LEAD]u-\\n[#EPI_LEAD]u) -. if \\n[#PRINT_STYLE]=1 \{\ -. if !\\n[#SINGLE_SPACE] \{\ -. nr #EPI_LINES_EVEN \\n[#EPI_LINES_TO_END]%2 -. ie \\n[#EPI_LINES_EVEN] \{ .ALD .5v \} -. el \{ .RLD .5v \} -. rr #EPI_LINES_EVEN -. \} -. \} -. \} -. \} -. nr #PP_STYLE 1 -. rr #EPI_FITS -. ALD \\n[#DOC_LEAD]u -. QUAD \\*[$DOC_QUAD] -. po \\n[#L_MARGIN]u -. if \\n[#COLUMNS] \{\ -. po \\n[#COL_\\n[#COL_NUM]_L_MARGIN]u -. nr #L_MARGIN \\n(.o -. \} -. if \\n[#START] \{\ -. if \\n[#COLUMNS] \{\ -. po \\n[#COL_\\n[#COL_NUM]_L_MARGIN]u -. nr #L_MARGIN \\n(.o -. mk dc -. \} -. \} -. if \\n[#LINENUMBERS]=2 \{\ -. NUMBER_LINES RESUME -. nr #LINENUMBERS 1 -. \} -.END -\# -\# ==================================================================== -\# -\# +++FINIS MACRO+++ -\# -\# FINIS -\# ----- -\# *Arguments: -\# -\# *Function: -\# Deposits --END-- at the end of a document. -\# -.MAC FINIS END -. br -. ev FINIS -. evc 0 -. if \\n[#TAB_ACTIVE] \{ .TQ \} -. if \\n[#INDENT_ACTIVE] \{ .IQ CLEAR \} -. nr #EM_ADJUST (1m/8) -. if \\n[#COLUMNS] \{\ -. po \\n[#COL_\\n[#COL_NUM]_L_MARGIN]u -. nr #L_MARGIN \\n(.o -. \} -. ALD \\n[#DOC_LEAD]u -. CENTER -. if \\n[#PRINT_STYLE]=1 \{ .PRINT "--\\*[$FINIS_STRING]--\} -. if \\n[#PRINT_STYLE]=2 \{\ -. ie \\n[#FINIS_COLOR] \{\ -. PRINT "\m[\\*[$FINIS_COLOR]]\v'-\\n[#EM_ADJUST]u'\(em\v'+\\n[#EM_ADJUST]u'\\*[$FINIS_STRING]\v'-\\n[#EM_ADJUST]u'\*[FU1]\(em\m[] -. \} -. el \{ .PRINT \v'-\\n[#EM_ADJUST]u'\(em\v'+\\n[#EM_ADJUST]u'\\*[$FINIS_STRING]\v'-\\n[#EM_ADJUST]u'\*[FU1]\(em\m[] \} -. \} -. ev -.END -\# -\# ==================================================================== -\# -\# +++HEADERS/FOOTERS+++ -\# -\# Define a string so that the current page number can be incorporated -\# into the strings for hdrftr left, right, and center. NOTE: This is -\# not the same thing as using the shortform # in hdrftr strings. -\# -.ds PAGE# \En[#PAGENUMBER] -\# -\# -\# HDRFTR RULE GAP -\# --------------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies register #HDRFTR_RULE_GAP to hold amount -\# of space between header/footer and header/footer rule. -\# *Notes: -\# Default is 4p. -\# -.MAC HDRFTR_RULE_GAP END -. nr #HDRFTR_RULE_GAP (\\$1) -.END -\# -\# -\# HDRFTR LEFT -\# ----------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies string $HDRFTR_LEFT. -\# Creates register #USER_DEF_HDRFTR_LEFT, which, if 1, -\# overrides the $HDRFTR_LEFT string created by default -\# in DEFAULTS. -\# *Notes: -\# Especially useful if doc has more than one author, and a list -\# of authors by last name is desired in header/footers. -\# Default is author. -\# -\# If the argument is the # character, simply prints the current -\# page number. -\# -\# If the user wants to *incorporate* the page number into the string, -\# \*[PAGE#] must be used. For example, if the user wants to put -\# an elipsis before the page number in the string, s/he should use -\# ...\*[PAGE#], not ...# -\# -.MAC HDRFTR_LEFT END -. nr #USER_DEF_HDRFTR_LEFT 1 -. ds $HDRFTR_LEFT \\$1 -.END -\# -\# -\# HDRFTR LEFT CAPS -\# ---------------- -\# *Argument: -\# | -\# *Function: -\# Turns capitalisation of $HDRFTR_LEFT (typically, the author of -\# the document) on or off. -\# *Notes: -\# Default is on. -\# -.MAC HDRFTR_LEFT_CAPS END -. ie '\\$1'' \{\ -. nr #HDRFTR_LEFT_CAPS 1 -. \} -. el \{\ -. nr #HDRFTR_LEFT_CAPS 0 -. ds $HDRFTR_LEFT_SIZE_CHANGE +0 -. \} -.END -\# -\# -\# HDRFTR CENTER -\# ------------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies string $HDRFTR_CENTER. -\# Creates register #USER_DEF_HDRFTR_CENTER, which, if 1, -\# overrides the $HDRFTR_CENTER string created by default -\# in COPYSTYLE. -\# *Notes: -\# Default is document type if DOCTYPE NAMED, Chapter # if DOCTYPE -\# CHAPTER, draft and revision number if COPYSTYLE DRAFT. -\# -\# If the argument is the # character, simply prints the current -\# page number. -\# -\# If the user wants to *incorporate* the page number into the string, -\# \*[PAGE#] must be used. For example, if the user wants to put -\# an elipsis before the page number in the string, s/he should use -\# ...\*[PAGE#], not ...# -\# -.MAC HDRFTR_CENTER END -. nr #USER_DEF_HDRFTR_CENTER 1 -. if '\\$0'FOOTER_CENTER' \{\ -. ds $HDRFTR_CENTER_OLD \\*[$HDRFTR_CENTER] -. ds $HDRFTR_CENTER_NEW \\$1 -. \} -. if '\\$0'FOOTER_CENTRE' \{\ -. ds $HDRFTR_CENTER_OLD \\*[$HDRFTR_CENTER] -. ds $HDRFTR_CENTER_NEW \\$1 -. \} -. ds $HDRFTR_CENTER \\$1 -.END -\# -\# -\# HDRFTR CENTER CAPS -\# ------------------ -\# *Argument: -\# | -\# *Function: -\# Turns capitalisation of $HDRFTR_CENTER (typically, doctype of -\# the document) on or off. -\# *Notes: -\# Default is on. -\# -.MAC HDRFTR_CENTER_CAPS END -. ie '\\$1'' \{\ -. nr #HDRFTR_CENTER_CAPS 1 -. \} -. el \{\ -. nr #HDRFTR_CENTER_CAPS 0 -. ds $HDRFTR_CENTER_SIZE_CHANGE +0 -. \} -.END -\# -\# -\# HDRFTR CENTER PADDING -\# --------------------- -\# *Argument: -\# LEFT | RIGHT -\# *Function: -\# Creates or modifies registers #HDRFTR_CTR_PAD_LEFT or -\# #HDRFTR_CTR_PAD_RIGHT. -\# *Notes: -\# By default, the HDRFTR_CENTER string is centered on the doc -\# line length. Long titles or long author names can screw up -\# visual centering, or create overprints. This macro allows the -\# user to pad the center string by the specified amount of space -\# to fix these problems. Use only one of LEFT or RIGHT. -\# -\# A unit of measure is required. -\# -.MAC HDRFTR_CENTER_PAD END -. if '\\$1'LEFT' \{\ -. nr #HDRFTR_CTR_PAD_LEFT (\\$2) -. \} -. if '\\$1'RIGHT' \{\ -. nr #HDRFTR_CTR_PAD_RIGHT (\\$2) -. \} -.END -\# -\# -\# SWITCH HDRFTR CENTER PADDING SIDE - support macro -\# -------------------------------- -\# *Argument: -\# -\# *Function: -\# Switches the padding side of hdrftr center padding. -\# *Notes: -\# Required to keep spacing around hdrftr string constant -\# in recto/verso documents. -\# -.MAC SWITCH_HDRFTR_CENTER_PAD END -. nr #HDRFTR_CTR_PAD_TMP \\n[#HDRFTR_CTR_PAD_LEFT] -. HDRFTR_CENTER_PAD LEFT \\n[#HDRFTR_CTR_PAD_RIGHT]u -. HDRFTR_CENTER_PAD RIGHT \\n[#HDRFTR_CTR_PAD_TMP]u -.END -\# -\# -\# HDRFTR RIGHT -\# ------------ -\# *Argument: -\# -\# *Function: -\# Creates or modifies string $HDRFTR_RIGHT. -\# Creates register #USER_DEF_HDRFTR_RIGHT, which, if 1, -\# overrides the $HDRFTR_RIGHT string created by default -\# in DEFAULTS. -\# *Notes: -\# Default is document title. -\# -\# If the argument is the # character, simply prints the current -\# page number. -\# -\# If the user wants to *incorporate* the page number into the string, -\# \*[PAGE#] must be used. For example, if the user wants to put -\# an elipsis before the page number in the string, s/he should use -\# ...\*[PAGE#], not ...# -\# -.MAC HDRFTR_RIGHT END -. nr #USER_DEF_HDRFTR_RIGHT 1 -. ds $HDRFTR_RIGHT \\$1 -.END -\# -\# -\# HDRFTR RIGHT CAPS -\# ----------------- -\# *Argument: -\# | -\# *Function: -\# Turns capitalisation of $HDRFTR_RIGHT (typically, the title of -\# the document) on or off. -\# *Notes: -\# Default is on. -\# -.MAC HDRFTR_RIGHT_CAPS END -. ie '\\$1'' \{\ -. nr #HDRFTR_RIGHT_CAPS 1 -. \} -. el \{\ -. nr #HDRFTR_RIGHT_CAPS 0 -. ds $HDRFTR_RIGHT_SIZE_CHANGE +0 -. \} -.END -\# -\# -\# HDRFTR RULE -\# ----------- -\# *Arguments: -\# | -\# *Function: -\# If invoked via the alias HDRFTR_RULE_INTERNAL in HDRFTR, prints a rule -\# under the header/over the footer. Otherwise, turns HDRFTR_RULE -\# on or off. -\# -.MAC HDRFTR_RULE END \"To print rule under header/over footer. -. ie '\\$0'HDRFTR_RULE_INTERNAL' \{\ -. ie \\n[#USERDEF_HDRFTR] \{\ -. nr #CAP_HEIGHT_ADJUST \\n[#HDRFTR_HEIGHT] -. ps 12 -. if \\n[#HEADERS_ON] \{\ -. rt \\nyu -. ALD \\n[#HDRFTR_RULE_GAP]u -. \} -. if \\n[#FOOTERS_ON] \{\ -. rt \\nyu -. RLD \\n[#HDRFTR_RULE_GAP]u+\\n[#CAP_HEIGHT_ADJUST]u+1p -. \} -. ie \\n[#HDRFTR_RULE_COLOR]=1 \{\ -. PRINT \m[\\*[$HDRFTR_RULE_COLOR]]\\l'\\n[#DOC_L_LENGTH]u'\m[] -. \} -. el \{\ -. PRINT \\l'\\n[#DOC_L_LENGTH]u' -. \} -. br -. \} -. el \{\ -. if \\n[#PRINT_STYLE]=1 \{\ -. nr #CAP_HEIGHT_ADJUST \\n[#CAP_HEIGHT] -. \} -. if \\n[#PRINT_STYLE]=2 \{\ -. ie \\n[#LEFT_CAP_HEIGHT]>\\n[#CENTER_CAP_HEIGHT] \{\ -. nr #CAP_HEIGHT_ADJUST \\n[#LEFT_CAP_HEIGHT] -. \} -. el \{ .nr #CAP_HEIGHT_ADJUST \\n[#CENTER_CAP_HEIGHT] \} -. ie \\n[#CAP_HEIGHT_ADJUST]>\\n[#RIGHT_CAP_HEIGHT] \{\ -. nr #CAP_HEIGHT_ADJUST \\n[#CAP_HEIGHT_ADJUST] -. \} -. el \{ .nr #CAP_HEIGHT_ADJUST \\n[#RIGHT_CAP_HEIGHT] \} -. \} -. ps 12 -. if \\n[#HEADERS_ON] \{\ -. rt \\nyu -. ALD \\n[#HDRFTR_RULE_GAP]u -. \} -. if \\n[#FOOTERS_ON] \{\ -. rt \\nyu -. RLD \\n[#HDRFTR_RULE_GAP]u+\\n[#CAP_HEIGHT_ADJUST]u+1p -. \} -. ie \\n[#HDRFTR_RULE_COLOR]=1 \{\ -. PRINT \m[\\*[$HDRFTR_RULE_COLOR]]\\l'\\n[#DOC_L_LENGTH]u'\m[] -. \} -. el \{\ -. PRINT \\l'\\n[#DOC_L_LENGTH]u' -. \} -. br -. \} -. \} -. el \{\ -. ie '\\$1'' \{ .nr #HDRFTR_RULE 1 \} -. el \{ .nr #HDRFTR_RULE 0 \} -. \} -.END -\# -\# -.ALIAS HDRFTR_RULE_INTERNAL HDRFTR_RULE -\# -\# -\# HDRFTR PLAIN -\# ------------ -\# *Arguments: -\# -\# *Function: -\# Sets the family, font, and point size of all strings in -\# header/footers to the same family and point size as running -\# text. Font for the header/footer becomes roman throughout. -\# -.MAC HDRFTR_PLAIN END -. HDRFTR_FAMILY \\*[$DOC_FAM] -. HDRFTR_PT_SIZE \\n[#DOC_PT_SIZE] -. HDRFTR_LEFT_FAMILY \\*[$DOC_FAM] -. HDRFTR_LEFT_FONT R -. HDRFTR_LEFT_SIZE +0 -. HDRFTR_LEFT_CAPS OFF -. HDRFTR_CENTER_FAMILY \\*[$DOC_FAM] -. HDRFTR_CENTER_FONT R -. HDRFTR_CENTER_SIZE +0 -. HDRFTR_CENTER_CAPS OFF -. HDRFTR_RIGHT_FAMILY \\*[$DOC_FAM] -. HDRFTR_RIGHT_FONT R -. HDRFTR_RIGHT_SIZE +0 -. HDRFTR_RIGHT_CAPS OFF -.END -\# -\# -\# SWITCH HDRFTR -\# ------------- -\# *Arguments: -\# | -\# *Function: -\# Creates or modifies register #SWITCH_HDRFTR, used to switch -\# default location of HDRFTR_LEFT and HDRFTR_RIGHT. -\# *Notes: -\# -.ig -Typically, the author string appears at the left of header/footers, -and the title string appears at the right. This switches the -location of the two. Useful in conjuction with RECTO_VERSO to tweak -switches on alternate pages to come out as the user wishes. The -assumption of RECTO_VERSO is that the first page of the document -(recto) is odd, and even though it has no header/footer, if it did -have one, it would print as AUTHOR...CENTER...TITLE (or whatever -strings the user has supplied for HDRFTR_LEFT/RIGHT), meaning that -the next page, which does have a header/footer, will come out as -TITLE...CENTER...AUTHOR (or whatever strings the user has supplied -for HDRFTR_LEFT/RIGHT). SWITCH_HDRFTRS allows the user to get the -desired string in the desired place on the desired recto/verso page. - -Default is OFF. -.. -\# -.MAC SWITCH_HDRFTR END -. ie '\\$1'' \{ .nr #SWITCH_HDRFTR 1 \} -. el \{ .nr #SWITCH_HDRFTR 0 \} -.END -\# -\# -\# USER DEFINED HDRFTR RECTO -\# ------------------------- -\# *Arguments: -\# L | LEFT | C | CENTER | CENTER | R | RIGHT -\# *Function: -\# Toggles #USERDEF_HDRFTR on, stores quad as #USERDEF_HDRFTR_RECTO_QUAD, -\# stores string in $USERDEF_HDRFTR_RECTO. -\# *Notes: -\# For use when users don't want 3-part headers/footers, but rather -\# want to design their own headers/footers and need different -\# headers/footers on recto and verso pages. Using just -\# HEADER_RECTO, even when recto/verso is not on, allows users to -\# design their own headers/footers for doc pages. -\# -.MAC HDRFTR_RECTO END -. nr #USERDEF_HDRFTR 1 -. if '\\$1'L' \{ .nr #USERDEF_HDRFTR_RECTO_QUAD 1 \} -. if '\\$1'LEFT' \{ .nr #USERDEF_HDRFTR_RECTO_QUAD 1 \} -. if '\\$1'C' \{ .nr #USERDEF_HDRFTR_RECTO_QUAD 2 \} -. if '\\$1'CENTER' \{ .nr #USERDEF_HDRFTR_RECTO_QUAD 2 \} -. if '\\$1'CENTRE' \{ .nr #USERDEF_HDRFTR_RECTO_QUAD 2 \} -. if '\\$1'R' \{ .nr #USERDEF_HDRFTR_RECTO_QUAD 3 \} -. if '\\$1'RIGHT' \{ .nr #USERDEF_HDRFTR_RECTO_QUAD 3 \} -. ds $USERDEF_HDRFTR_RECTO \\$2 -.END -\# -\# -\# USER DEFINED HDRFTR VERSO -\# ------------------------- -\# *Arguments: -\# L | LEFT | C | CENTER | CENTER | R | RIGHT -\# *Function: -\# Toggles #USERDEF_HDRFTR on, stores quad as #USERDEF_HDRFTR_VERSO_QUAD, -\# stores string in $USERDEF_HDRFTR_VERSO. -\# *Notes: -\# For use when users don't want 3-part headers/footers, but rather -\# want to design their own headers/footers and need different -\# headers/footers on recto and verso pages. -\# -.MAC HDRFTR_VERSO END -. nr #USERDEF_HDRFTR 1 -. if '\\$1'L' \{ .nr #USERDEF_HDRFTR_VERSO_QUAD 1 \} -. if '\\$1'LEFT' \{ .nr #USERDEF_HDRFTR_VERSO_QUAD 1 \} -. if '\\$1'C' \{ .nr #USERDEF_HDRFTR_VERSO_QUAD 2 \} -. if '\\$1'CENTER' \{ .nr #USERDEF_HDRFTR_VERSO_QUAD 2 \} -. if '\\$1'CENTRE' \{ .nr #USERDEF_HDRFTR_VERSO_QUAD 2 \} -. if '\\$1'R' \{ .nr #USERDEF_HDRFTR_VERSO_QUAD 3 \} -. if '\\$1'RIGHT' \{ .nr #USERDEF_HDRFTR_VERSO_QUAD 3 \} -. ds $USERDEF_HDRFTR_VERSO \\$2 -.END -\# -\# -\# PRINT FOOTER ON FIRST PAGE -\# -------------------------- -\# *Arguments: -\# | -\# *Function: -\# Toggles register #PRINT_FOOTER_ON_PAGE_1 -\# *Notes: -\# Lets user choose whether to print footer on first -\# page of doc. -\# -.MAC FOOTER_ON_FIRST_PAGE END -. ie '\\$1'' \{ .nr #PRINT_FOOTER_ON_PAGE_1 1 \} -. el \{ .rr #PRINT_FOOTER_ON_PAGE_1 \} -.END -\# -\# -\# PRINT PAGE NUMBER ON FIRST PAGE -\# ------------------------------- -\# *Arguments: -\# | -\# *Function: -\# Toggles register #PRINT_PAGENUM_ON_PAGE_1 -\# *Notes: -\# Lets user choose whether to print page number on first -\# page of doc and after collate when footers are on or page numbering -\# has been user set at top of page. -\# -.MAC PAGENUM_ON_FIRST_PAGE END -. ie '\\$1'' \{ .nr #PRINT_PAGENUM_ON_PAGE_1 1 \} -. el \{ .rr #PRINT_PAGENUM_ON_PAGE_1 \} -.END -\# -\# -\# PRINT HEADER/FOOTER -\# ------------------- -\# *Arguments: -\# -\# *Function: -\# Based on defaults or values entered by user, prints a -\# three-part title at either the top or the bottom of the page. -\# *Notes: -\# Called from within either HEADER or FOOTER. -\# -.MAC PRINT_HDRFTR END -. if \\n[#DOC_TYPE]=4 \{\ -. nr #SUITE \En[.pn] -. \} -. if \\n[#FOOTERS_ON] \{\ -. if \\n[#START_FOR_FOOTERS] \{\ -. rr #START_FOR_FOOTERS -. if !\\n[#PRINT_FOOTER_ON_PAGE_1] \{ .return \} -. \} -. \} -. if \\n[#USERDEF_HDRFTR] \{\ -. PRINT_USERDEF_HDRFTR -. return -. \} -. if \\n[#SWITCH_HDRFTR] \{\ -. ds $HDRFTR_TMP_SWITCH \\*[$HDRFTR_LEFT] -. ds $HDRFTR_LEFT \\*[$HDRFTR_RIGHT] -. ds $HDRFTR_RIGHT \\*[$HDRFTR_TMP_SWITCH] -. ds $HDRFTR_TMP_SIZE_CHANGE_SWITCH \\*[$HDRFTR_LEFT_SIZE_CHANGE] -. ds $HDRFTR_LEFT_SIZE_CHANGE \\*[$HDRFTR_RIGHT_SIZE_CHANGE] -. ds $HDRFTR_RIGHT_SIZE_CHANGE \\*[$HDRFTR_TMP_SIZE_CHANGE_SWITCH] -. nr #HDRFTR_TMP_CAPS_SWITCH \\n[#HDRFTR_LEFT_CAPS] -. nr #HDRFTR_LEFT_CAPS \\n[#HDRFTR_RIGHT_CAPS] -. nr #HDRFTR_RIGHT_CAPS \\n[#HDRFTR_TMP_CAPS_SWITCH] -. ds $HDRFTR_TMP_COLOR_SWITCH \\*[$HDRFTR_LEFT_COLOR] -. ds $HDRFTR_LEFT_COLOR \\*[$HDRFTR_RIGHT_COLOR] -. ds $HDRFTR_RIGHT_COLOR \\*[$HDRFTR_TMP_COLOR_SWITCH] -. rr #HDRFTR_TMP_CAPS_SWITCH -. rm $HDRFTR_TMP_SWITCH -. rm $HDRFTR_TMP_SIZE_CHANGE_SWITCH -. rm $HDRFTR_TMP_COLOR_SWITCH -. nr #SWITCH_HDRFTR 0 -. \} -. nr #PAGENUMBER \\n%+\\n[#PAGE_NUM_ADJ] -. if \\n[#ENDNOTES] \{ .PAGENUM_STYLE \\*[$EN_PN_STYLE] \} -. if \\n[#PRINT_STYLE]=1 \{\ -. if \\n[#FOOTERS_ON] \{\ -. di NULL -. SIZESPECS -. nr #LEFT_CAP_HEIGHT \\n[#CAP_HEIGHT] -. di -. \} -. if o \{ .RIGHT \} -. if e \{ .LEFT \} -. if \\n[#RECTO_VERSO]=0 \{ .LEFT \} -. if \\n[#HDRFTR_LEFT_CAPS] \{ .CAPS \} -. ie '\\*[$HDRFTR_LEFT]'#' \{\ -. PRINT \\n[#PAGENUMBER] -. \} -. el \{\ -. ie !'\\*[$HDRFTR_LEFT]'' \{ . PRINT \\*[$HDRFTR_LEFT] \} -. el \{ .PRINT \& \} -. \} -. if \\n[#HDRFTR_LEFT_CAPS] \{ .CAPS OFF \} -. CENTER -. if \\n[#HDRFTR_CENTER_CAPS] \{ .CAPS \} -. rt \\nyu -. ie '\\*[$HDRFTR_CENTER]'#' \{\ -. PRINT \\h'\\n[#HDRFTR_CTR_PAD_LEFT]u'\\n[#PAGENUMBER]\\h'\\n[#HDRFTR_CTR_PAD_RIGHT]u' -. \} -. el \{\ -. ie !'\\*[$HDRFTR_CENTER]'' \{ .PRINT \\h'\\n[#HDRFTR_CTR_PAD_LEFT]u'\\*[$HDRFTR_CENTER]\\h'\\n[#HDRFTR_CTR_PAD_RIGHT]u' \} -. el \{ .PRINT \& \} -. \} -. if \\n[#HDRFTR_CENTER_CAPS] \{ .CAPS OFF \} -. if o \{ .LEFT \} -. if e \{ .RIGHT \} -. if \\n[#RECTO_VERSO]=0 \{ .RIGHT \} -. if \\n[#HDRFTR_RIGHT_CAPS] \{ .CAPS \} -. rt \\nyu -. ie '\\*[$HDRFTR_RIGHT]'#' \{\ -. PRINT \\n[#PAGENUMBER] -. \} -. el \{\ -. ie !'\\*[$HDRFTR_RIGHT]'' \{ .PRINT \\*[$HDRFTR_RIGHT] \} -. el \{ .PRINT \& \} -. \} -. if \\n[#HDRFTR_RIGHT_CAPS] \{ .CAPS OFF \} -. \} -. if \\n[#PRINT_STYLE]=2 \{\ -. if \\n[#HDRFTR_COLOR]=1 \{\ -. nf -\m[\\*[$HDRFTR_COLOR]] -. EOL -. \} -. fam \\*[$HDRFTR_LEFT_FAM] -. ft \\*[$HDRFTR_LEFT_FT] -. ps \\n[#HDRFTR_PT_SIZE]u\\*[$HDRFTR_LEFT_SIZE_CHANGE] -. vs 12 -. if \\n[#FOOTERS_ON] \{\ -. di NULL -. SIZESPECS -. nr #LEFT_CAP_HEIGHT \\n[#CAP_HEIGHT] -. di -. \} -. if o \{ .LEFT \} -. if e \{ .RIGHT \} -. if \\n[#RECTO_VERSO]=0 \{ .LEFT \} -. if \\n[#HDRFTR_LEFT_CAPS] \{ .CAPS \} -. ie '\\*[$HDRFTR_LEFT]'#' \{\ -. ie \\n[#HDRFTR_LEFT_COLOR]=1 \{\ -. PRINT \m[\\*[$HDRFTR_LEFT_COLOR]]\\n[#PAGENUMBER]\m[] -. \} -. el \{\ -. PRINT \\n[#PAGENUMBER] -. \} -. \} -. el \{\ -. ie !'\\*[$HDRFTR_LEFT]'' \{\ -. ie \\n[#HDRFTR_LEFT_COLOR]=1 \{\ -. PRINT \m[\\*[$HDRFTR_LEFT_COLOR]]\\*[$HDRFTR_LEFT]\m[] -. \} -. el \{\ -. PRINT \\*[$HDRFTR_LEFT] -. \} -. \} -. el \{ .PRINT \& \} -. \} -. if \\n[#HDRFTR_LEFT_CAPS] \{ .CAPS OFF \} -. fam \\*[$HDRFTR_CENTER_FAM] -. ft \\*[$HDRFTR_CENTER_FT] -. ps \\n[#HDRFTR_PT_SIZE]u\\*[$HDRFTR_CENTER_SIZE_CHANGE] -. vs 12 -. if \\n[#FOOTERS_ON] \{\ -. di NULL -. SIZESPECS -. nr #CENTER_CAP_HEIGHT \\n[#CAP_HEIGHT] -. di -. \} -. CENTER -. if \\n[#HDRFTR_CENTER_CAPS] \{ .CAPS \} -. rt \\nyu -. ie '\\*[$HDRFTR_CENTER]'#' \{\ -. ie \\n[#HDRFTR_CENTER_COLOR]=1 \{\ -. PRINT \\h'\\n[#HDRFTR_CTR_PAD_LEFT]u'\m[\\*[$HDRFTR_CENTER_COLOR]]\\n[#PAGENUMBER]\\h'\\n[#HDRFTR_CTR_PAD_RIGHT]u'\m[] -. \} -. el \{\ -. PRINT \\h'\\n[#HDRFTR_CTR_PAD_LEFT]u'\\n[#PAGENUMBER]\\h'\\n[#HDRFTR_CTR_PAD_RIGHT]u' -. \} -. \} -. el \{\ -. ie !'\\*[$HDRFTR_CENTER]'' \{\ -. ie \\n[#HDRFTR_CENTER_COLOR]=1 \{\ -. PRINT \\h'\\n[#HDRFTR_CTR_PAD_LEFT]u'\m[\\*[$HDRFTR_CENTER_COLOR]]\\*[$HDRFTR_CENTER]\\h'\\n[#HDRFTR_CTR_PAD_RIGHT]u'\m[] -. \} -. el \{\ -. PRINT \\h'\\n[#HDRFTR_CTR_PAD_LEFT]u'\\*[$HDRFTR_CENTER]\\h'\\n[#HDRFTR_CTR_PAD_RIGHT]u' -. \} -. \} -. el \{ .PRINT \& \} -. \} -. if \\n[#HDRFTR_CENTER_CAPS] \{ .CAPS OFF \} -. fam \\*[$HDRFTR_RIGHT_FAM] -. ft \\*[$HDRFTR_RIGHT_FT] -. ps \\n[#HDRFTR_PT_SIZE]u\\*[$HDRFTR_RIGHT_SIZE_CHANGE] -. vs 12 -. if \\n[#FOOTERS_ON] \{\ -. di NULL -. SIZESPECS -. nr #RIGHT_CAP_HEIGHT \\n[#CAP_HEIGHT] -. di -. \} -. if o \{ .RIGHT \} -. if e \{ .LEFT \} -. if \\n[#RECTO_VERSO]=0 \{ .RIGHT \} -. if \\n[#HDRFTR_RIGHT_CAPS] \{ .CAPS \} -. rt \\nyu -. ie '\\*[$HDRFTR_RIGHT]'#' \{\ -. ie \\n[#HDRFTR_RIGHT_COLOR]=1 \{\ -. PRINT \m[\\*[$HDRFTR_RIGHT_COLOR]]\\n[#PAGENUMBER]\m[] -. \} -. el \{\ -. PRINT \\n[#PAGENUMBER] -. \} -. \} -. el \{\ -. ie !'\\*[$HDRFTR_RIGHT]'' \{\ -. ie \\n[#HDRFTR_RIGHT_COLOR]=1 \{\ -. PRINT \m[\\*[$HDRFTR_RIGHT_COLOR]]\\*[$HDRFTR_RIGHT]\m[] -. \} -. el \{\ -. PRINT \\*[$HDRFTR_RIGHT] -. \} -. \} -. el \{ .PRINT \& \} -. \} -. if \\n[#HDRFTR_RIGHT_CAPS] \{ .CAPS OFF \} -. \} -. if \\n[#HDRFTR_RULE] \{\ -. HDRFTR_RULE_INTERNAL -. \} -. br -.END -\# -\# -\# PRINT USER DEFINED HEADER/FOOTER -\# -------------------------------- -\# *Arguments: -\# -\# *Function: -\# Based on defaults or values entered by user, prints a single part -\# (i.e. not 3-part) title at either the top or the bottom of the page. -\# *Notes: -\# Called from within PRINT_HDRFTR. -\# -.MAC PRINT_USERDEF_HDRFTR END -. nr #PAGENUMBER \\n%+\\n[#PAGE_NUM_ADJ] -. fc ^ # -. if \\n[#PRINT_STYLE]=2 \{\ -. FAMILY \\*[$HDRFTR_FAM] -. FT R -. PT_SIZE \\n[#HDRFTR_PT_SIZE]u -. if \\n[#HDRFTR_COLOR]=1 \{\ -. nf -. COLOR \\*[$HDRFTR_COLOR] -. \} -. \} -. ie \\n[#RECTO_VERSO] \{\ -. if o \{\ -. if \\n[#USERDEF_HDRFTR_RECTO_QUAD]=1 \{ .LEFT \} -. if \\n[#USERDEF_HDRFTR_RECTO_QUAD]=2 \{ .CENTER \} -. if \\n[#USERDEF_HDRFTR_RECTO_QUAD]=3 \{ .RIGHT \} -. PRINT \\*[$USERDEF_HDRFTR_RECTO] -. EOL -. if \\n[#FOOTERS_ON] \{\ -. di NULL -. SIZESPECS -. nr #HDRFTR_HEIGHT \\n[#CAP_HEIGHT] -. di -. \} -. \} -. if e \{\ -. ie !'\\*[$USERDEF_HDRFTR_VERSO]'' \{\ -. if \\n[#USERDEF_HDRFTR_VERSO_QUAD]=1 \{ .LEFT \} -. if \\n[#USERDEF_HDRFTR_VERSO_QUAD]=2 \{ .CENTER \} -. if \\n[#USERDEF_HDRFTR_VERSO_QUAD]=3 \{ .RIGHT \} -. PRINT \\*[$USERDEF_HDRFTR_VERSO] -. EOL -. if \\n[#FOOTERS_ON] \{\ -. di NULL -. SIZESPECS -. nr #HDRFTR_HEIGHT \\n[#CAP_HEIGHT] -. di -. \} -. \} -. el \{\ -. if \\n[#USERDEF_HDRFTR_RECTO_QUAD]=1 \{ .LEFT \} -. if \\n[#USERDEF_HDRFTR_RECTO_QUAD]=2 \{ .CENTER \} -. if \\n[#USERDEF_HDRFTR_RECTO_QUAD]=3 \{ .RIGHT \} -. PRINT \\*[$USERDEF_HDRFTR_RECTO] -. EOL -. if \\n[#FOOTERS_ON] \{\ -. di NULL -. SIZESPECS -. nr #HDRFTR_HEIGHT \\n[#CAP_HEIGHT] -. di -. \} -. \} -. \} -. \} -. el \{\ -. if \\n[#USERDEF_HDRFTR_RECTO_QUAD]=1 \{ .LEFT \} -. if \\n[#USERDEF_HDRFTR_RECTO_QUAD]=2 \{ .CENTER \} -. if \\n[#USERDEF_HDRFTR_RECTO_QUAD]=3 \{ .RIGHT \} -. PRINT \\*[$USERDEF_HDRFTR_RECTO] -. EOL -. if \\n[#FOOTERS_ON] \{\ -. di NULL -. SIZESPECS -. nr #HDRFTR_HEIGHT \\n[#CAP_HEIGHT] -. di -. \} -. \} -. fc -. if \\n[#PRINT_STYLE]=2 \{\ -. ie \\n[#HDRFTR_COLOR]=1 \m[\\*[$HDRFTR_COLOR]] -. el \m[black] -. \} -. if \\n[#HDRFTR_RULE] \{\ -. HDRFTR_RULE_INTERNAL -. \} -.END -\# -\# -\# +++HEADERS+++ -\# -\# HEADERS (off or on) -\# ------------------- -\# *Arguments: -\# | -\# *Function: -\# Turns headers at the top of the page off or on. -\# *Notes: -\# Default is on. -\# -.MAC HEADERS END -. ie '\\$1'' \{ .nr #HEADERS_ON 1 \} -. el \{ .nr #HEADERS_ON 0 \} -.END -\# -\# -\# HEADER MARGIN -\# ------------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies register #HEADER_MARGIN to hold amount -\# of space between top of page and header. -\# *Notes: -\# Requires unit of measure. Default is 4P+6p, measured top-of-page -\# to baseline. -\# -.MAC HEADER_MARGIN END -. nr #HEADER_MARGIN (\\$1) -.END -\# -\# -\# HEADER GAP -\# ---------- -\# *Argument: -\# -\# *Function: -\# Creates or modifies register #HEADER_GAP to hold amount -\# of space between header and running text. -\# *Notes: -\# Default is 1P+6p. -\# -.MAC HEADER_GAP END -. nr #HEADER_GAP (\\$1) -.END -\# -\# -\# HEADER -\# ------ -\# *Arguments: -\# -\# *Function: -\# Prints header appropriate to DOC_TYPE, PRINTSTYLE, and COPYSTYLE. -\# *Notes: -\# In order to convert the title string to caps in the header (in the -\# event that the user enters .TITLE in caps/lc), I've used -\# quad left, quad centre, and quad right to arrange the three bits -\# of the header, rather than .tl. This allows the use of the CAPS macro. -\# The downside is that I have to add \\v'-(\\n[#LEAD]u*) in order -\# for -Tlatin1 output to align the header/footer strings on the baseline. -\# The console output still isn't brilliant, but at least it's -\# comprehensible. -\# -.MAC HEADER END -. MNtop -. rr #FROM_FOOTER -. nr #FROM_HEADER 1 -. nr #LAST_FN_COUNT_FOR_COLS \\n[#FN_COUNT_FOR_COLS] -. if \\n[#FN_DEPTH] \{ .PROCESS_FN_LEFTOVER \} -. rr #RULED -. if \\n[#RESET_FN_NUMBER] \{ .nr #FN_NUMBER 0 1 \} -. po \\n[#DOC_L_MARGIN]u -. if \\n[#RECTO_VERSO] \{\ -. if !\\n[#TOC_RV_SWITCH] \{\ -. nr #DOC_LR_MARGIN_TMP \\n[#DOC_L_MARGIN] -. DOC_LEFT_MARGIN \\n[#DOC_R_MARGIN]u -. DOC_RIGHT_MARGIN \\n[#DOC_LR_MARGIN_TMP]u -. SWITCH_HDRFTR_CENTER_PAD -. \} -. rr #TOC_RV_SWITCH -. \} -. ev HEADER -. if \\n[#PAGE_NUM_V_POS]=1 \{ .vs 0 \} -. sp |\\n[#HEADER_MARGIN]u-1v -. mk y -. ll \\n[#DOC_L_LENGTH]u -. ta \\n(.lu -. if \\n[#PRINT_STYLE]=1 \{\ -. fam C -. ft R -. ps 12\\*[$HDRFTR_SIZE_CHANGE] -. \} -. if \\n[#PRINT_STYLE]=2 \{\ -. fam \\*[$HDRFTR_FAM] -. ft R -. ps \\n[#DOC_PT_SIZE]u\\*[$HDRFTR_SIZE_CHANGE] -. vs 12 -. \} -. nr #HDRFTR_PT_SIZE \\n[#PT_SIZE] -. if \\n[#CAPS_ON] \{\ -. nr #CAPS_WAS_ON 1 -. CAPS OFF -. \} -. if \\n[#UNDERLINE_ON] \{\ -. nr #UNDERLINE_WAS_ON 1 -. UNDERLINE OFF -. \} -. if \\n[#PRINT_STYLE]=1 \{\ -. if \\n[#ENDNOTES]=1 \{\ -.\" Single-spaced endotes have a different lead -. if \\n[#EN_SINGLESPACE] \{\ -. nr #RESTORE_DOC_LEAD \\n[#DOC_LEAD] -. nr #DOC_LEAD \\n[#EN_LEAD]u -. \} -. \} -. \} -. ie \\n[#HEADERS_ON] \{\ -. PRINT_HDRFTR -. sp |\\n[#T_MARGIN]u-\\n[#DOC_LEAD]u -. \} -. el \{\ -. ie \\n[#PAGE_NUM_V_POS]=1 \{\ -. ie \\n[#PAGINATE] \{\ -. PRINT_PAGE_NUMBER -. sp |\\n[#T_MARGIN]u-\\n[#DOC_LEAD]u -. \} -. el \{ .sp |\\n[#T_MARGIN]u-\\n[#DOC_LEAD]u \} -. \} -. el \{ .sp |\\n[#T_MARGIN]u-\\n[#DOC_LEAD]u \} -. \} -. if \\n[#PRINT_STYLE]=1 \{\ -. if \\n[#ENDNOTES]=1 \{\ -. if \\n[#EN_SINGLESPACE] \{\ -. nr #DOC_LEAD \\n[#RESTORE_DOC_LEAD]u -. rr #RESTORE_DOC_LEAD -. \} -. \} -. \} -. nr #PAGE_TOP \\n(nl -. ev -. po \\n[#L_MARGIN]u -. if \\n[#RECTO_VERSO] \{\ -. nr #L_MARGIN +\\n[#L_MARGIN_DIFF] -. \} -. if \\n[#CAPS_WAS_ON] \{\ -. CAPS -. rr #CAPS_WAS_ON -. \} -. if \\n[#UNDERLINE_WAS_ON] \{\ -. UNDERLINE -. rr #UNDERLINE_WAS_ON -. \} -. if \\n[#TAB_ACTIVE] \{ .TAB \\n[#CURRENT_TAB] \} -. if \\n[#QUOTE] \{\ -. ie \\n[#TAB_ACTIVE] \{ .TAB \\n[#CURRENT_TAB] \} -. el \{\ -. nr #Q_OFFSET \\n[#L_MARGIN]+(\\n[#PP_INDENT]*\\n[#Q_OFFSET_VALUE]) -. po \\n[#Q_OFFSET]u -. \} -. ALD \\n[#Q_LEAD_DIFF]u -. \} -. if \\n[#EPIGRAPH] \{\ -. ie \\n[#TAB_ACTIVE] \{ .TAB \\n[#CURRENT_TAB] \} -. el \{\ -. nr #EPI_OFFSET \\n[#L_MARGIN]+(\\n[#PP_INDENT]*\\n[#EPI_OFFSET_VALUE]) -. po \\n[#EPI_OFFSET]u -. \} -. \} -. ie \\n[#EPIGRAPH] \{\ -. ie !\\n[#EPI_ACTIVE] \{\ -. ns -. rr #EPI_ACTIVE -. \} -. el \{\ -. ie \\n[#EPI_FITS] \{ .ns \} -. el \{ .ALD \\n[#DOC_LEAD]u-\\n[#EPI_LEAD]u \} -. \} -. \} -. el \{ .ns \} -. ns -. if \\n[#COLUMNS] \{\ -. nr #FN_COUNT_FOR_COLS 0 1 -. nr #L_MARGIN \\n[#DOC_L_MARGIN] -. if \\n[#RECTO_VERSO] \{ .COLUMNS \\n[#NUM_COLS] \\n[#GUTTER]u \} -. nr #COL_NUM 0 1 -. mk dc -. po \\n[#COL_\\n+[#COL_NUM]_L_MARGIN]u -. nr #L_MARGIN \\n(.o -. if \\n[#TAB_ACTIVE] \{ .TAB \\n[#CURRENT_TAB] \} -. ll \\n[#COL_L_LENGTH]u -. ta \\n(.lu -. if \\n[#QUOTE] \{\ -. po +(\\n[#PP_INDENT]u*\\n[#Q_OFFSET_VALUE]u) -. \} -. if \\n[#EPIGRAPH] \{\ -. if \\n[#EPI_ACTIVE] \{\ -. ie \\n[#EPI_FITS] \{ . \} -. el \{ .nr dc -\\n[#EPI_LEAD_DIFF] \} -. \} -. po \\n[#COL_\\n[#COL_NUM]_L_MARGIN]u+(\\n[#PP_INDENT]u*\\n[#EPI_OFFSET_VALUE]u) -. \} -. \} -. if \\n[#RESET_FN_COUNTERS]=1 \{\ -. rr #RESET_FN_COUNTERS -. PROCESS_FN_IN_DIVER -. nr #FN_COUNT \\n[#SAVED_FN_COUNT] 1 -. if \\n[#COLUMNS]=1 \{ .nr #FN_COUNT_FOR_COLS \\n[#SAVED_FN_COUNT_FOR_COLS] 1 \} -. ie \\n[#RESET_FN_NUMBER]=1 \{ .nr #FN_NUMBER \\n[#SAVED_FN_NUMBER] 1 \} -. el \{ .nr #FN_NUMBER \\n[#FN_NUMBER] 1 \} -. rm FN_IN_DIVER -. if dRUNON_FN_IN_DIVER \{ .rm RUNON_FN_IN_DIVER \} -. \} -. if \\n[#PRINT_STYLE]=1 \{\ -. if \\n[#SLANT_ON] \{\ -. if \\n[#UNDERLINE_SLANT] \{ .UNDERLINE \} -. \} -. \} -. rr #FROM_HEADER -. rr #DEFER_SPACE_ADDED -. if !\\n[#FN_DEPTH] \{\ -. if r#DIVERTED \{ .rr #DIVERTED \} -. \} -. if \\n[#MN_OVERFLOW_LEFT]=1 \{\ -. MN LEFT -. nf -. MN_OVERFLOW_LEFT -. MN -. \} -. if \\n[#MN_OVERFLOW_RIGHT]=1 \{\ -. MN RIGHT -. nf -. MN_OVERFLOW_RIGHT -. MN -. \} -. rm MN_OVERFLOW_LEFT -. rr #MN_OVERFLOW_LEFT -. rr #no-repeat-MN-left -. rm MN_OVERFLOW_RIGHT -. rr #MN_OVERFLOW_RIGHT -. rr #no-repeat-MN-right -.END -\# -\# ==================================================================== -\# -\# +++FOOTERS+++ -\# -\# FOOTERS (off or on) -\# ------------------- -\# *Arguments: -\# | -\# *Function: -\# Turns footers at the bottom of the page off or on. -\# *Notes: -\# Default is off. If on, page numbers automatically go at -\# the top, centered, unless pagination has been turned off, -\# or the pagenumber position has been changed to left or right. -\# -.MAC FOOTERS END -. ie '\\$1'' \{\ -. nr #FOOTERS_ON 1 -. PAGE_NUM_POS TOP CENTER -. \} -. el \{ .nr #FOOTERS_ON 0 \} -.END -\# -\# -\# FOOTER MARGIN -\# ------------- -\# *Argument: -\#