Add a bunch of stuff from Wayback Machine
To reduce git log noise, some of the less relevant files shown below have been omitted from this commit. In particular, the sources at unroff-1.0/ have been omitted. Also, the dist/ directory has been omitted. Those files will go into files.scheme.org. The misc/ directory is not linked from the front page so it has been omitted, too. Wayback Machine does not seem to have preserved any of the actual files in misc/, just the directory index. $ wayback_machine_downloader http://www-rn.informatik.uni-bremen.de/software/unroff/ Downloading http://www-rn.informatik.uni-bremen.de/software/unroff/ to websites/www-rn.informatik.uni-bremen.de/ from Wayback Machine archives. Getting snapshot pages.. found 335 snaphots to consider. 220 files to download: http://www-rn.informatik.uni-bremen.de/software/unroff/doc/unroff.1.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/unroff.1.html (1/220) http://www-rn.informatik.uni-bremen.de/software/unroff/doc/unroff-html-ms.1.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/unroff-html-ms.1.html (2/220) http://www-rn.informatik.uni-bremen.de/software/unroff/doc/manual.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/manual.html (3/220) http://www-rn.informatik.uni-bremen.de/software/unroff/examples/r.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/examples/r.html (4/220) http://www-rn.informatik.uni-bremen.de/software/unroff/doc/unroff-html.1.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/unroff-html.1.html (5/220) http://www-rn.informatik.uni-bremen.de/software/unroff/examples/rel.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/examples/rel.html (6/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/ -> websites/www-rn.informatik.uni-bremen.de/software/unroff/index.html (7/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/scm/ -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/index.html (8/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/patches/ -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/index.html (9/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/misc/ -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/index.html (10/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/elk/ -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/index.html (11/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/doc/ -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/index.html (12/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/?C=S;O=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?C=S;O=A/index.html (13/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/?C=N;O=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?C=N;O=D/index.html (14/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/?C=M;O=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?C=M;O=A/index.html (15/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/?C=D;O=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?C=D;O=A/index.html (16/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/src/?C=S;O=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?C=S;O=A/index.html (17/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/src/?C=N;O=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?C=N;O=D/index.html (18/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/src/?C=M;O=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?C=M;O=A/index.html (19/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/src/?C=D;O=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?C=D;O=A/index.html (20/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/src/ -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/index.html (21/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/ -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/index.html (22/220) http://www-rn.informatik.uni-bremen.de/software/unroff/misc/ -> websites/www-rn.informatik.uni-bremen.de/software/unroff/misc/index.html (23/220) http://www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-i486-unknown-linux1.2.8.tar.gz -> websites/www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-i486-unknown-linux1.2.8.tar.gz (24/220) http://www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-m68k-next-ns3.tar.gz -> websites/www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-m68k-next-ns3.tar.gz (25/220) http://www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-sparc-sun-sunos4.tar.gz -> websites/www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-sparc-sun-sunos4.tar.gz (26/220) http://www-rn.informatik.uni-bremen.de/software/unroff/contrib/me-misc-patch.gz -> websites/www-rn.informatik.uni-bremen.de/software/unroff/contrib/me-misc-patch.gz (27/220) http://www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-sparc-sun-solaris2.tar.gz -> websites/www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-sparc-sun-solaris2.tar.gz (28/220) http://www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-rs6000-ibm-aix3.2.tar.gz -> websites/www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-rs6000-ibm-aix3.2.tar.gz (29/220) http://www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-hppa1.1-hp-hpux9.tar.gz -> websites/www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-hppa1.1-hp-hpux9.tar.gz (30/220) http://www-rn.informatik.uni-bremen.de/software/unroff/contrib/misc-patch-2.gz -> websites/www-rn.informatik.uni-bremen.de/software/unroff/contrib/misc-patch-2.gz (31/220) http://www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0.tar.gz -> websites/www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0.tar.gz (32/220) http://www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-mips-sgi-irix5.3.tar.gz -> websites/www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-mips-sgi-irix5.3.tar.gz (33/220) http://www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-mips-dec-ultrix4.2.tar.gz -> websites/www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-mips-dec-ultrix4.2.tar.gz (34/220) http://www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-alpha-dec-osf3.0.tar.gz -> websites/www-rn.informatik.uni-bremen.de/software/unroff/dist/unroff-1.0-alpha-dec-osf3.0.tar.gz (35/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/?D=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/?D=D/index.html (36/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/?M=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/?M=D/index.html (37/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/?S=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/?S=D/index.html (38/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/?N=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/?N=A/index.html (39/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/?S=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/?S=D/index.html (40/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/?D=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/?D=D/index.html (41/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/?N=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/?N=A/index.html (42/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/?M=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/?M=D/index.html (43/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/?M=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/?M=D/index.html (44/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/?D=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/?D=D/index.html (45/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/?S=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/?S=D/index.html (46/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/?N=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/?N=A/index.html (47/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/?M=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/?M=D/index.html (48/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/?S=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/?S=D/index.html (49/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/?D=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/?D=A/index.html (50/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/debug.scm -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/debug.scm (51/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/pp.scm -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/pp.scm (52/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/toplevel.scm -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/toplevel.scm (53/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/?M=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/?M=A/index.html (54/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/?S=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/?S=A/index.html (55/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/?N=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/?N=D/index.html (56/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/initscheme.scm -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/initscheme.scm (57/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/?D=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/?D=D/index.html (58/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/?N=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/?N=A/index.html (59/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?D=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?D=D/index.html (60/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?M=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?M=D/index.html (61/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?S=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?S=D/index.html (62/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?N=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?N=A/index.html (63/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/?M=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/?M=D/index.html (64/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/?S=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/?S=A/index.html (65/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/?N=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/?N=D/index.html (66/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/hyper.scm -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/hyper.scm (67/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/?D=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/?D=A/index.html (68/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/?M=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/?M=A/index.html (69/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/?S=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/?S=D/index.html (70/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/?M=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/?M=A/index.html (71/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/man.scm -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/man.scm (72/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/ms.scm -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/ms.scm (73/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/?D=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/?D=A/index.html (74/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/?S=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/?S=A/index.html (75/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/common.scm -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/common.scm (76/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/m.scm -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/m.scm (77/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/?N=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/?N=D/index.html (78/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/?N=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/?N=A/index.html (79/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/?D=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/?D=D/index.html (80/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/?D=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/?D=D/index.html (81/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/?M=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/?M=D/index.html (82/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/?S=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/?S=D/index.html (83/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/?N=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/?N=A/index.html (84/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/?M=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/?M=D/index.html (85/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/?S=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/?S=D/index.html (86/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/?N=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/?N=A/index.html (87/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/?D=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/?D=D/index.html (88/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/?D=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/?D=D/index.html (89/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/?M=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/?M=D/index.html (90/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/?S=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/?S=D/index.html (91/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/?N=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/?N=A/index.html (92/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/?M=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/?M=A/index.html (93/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/?S=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/?S=A/index.html (94/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/ -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/scm/index.html (95/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/?N=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/?N=D/index.html (96/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/?D=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/elk/?D=A/index.html (97/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/subst.h -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/subst.h (98/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/error.h -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/error.h (99/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/insert.h -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/insert.h (100/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/table.c -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/table.c (101/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/scmtable.h -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/scmtable.h (102/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/gcroot.c -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/gcroot.c (103/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?N=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?N=D/index.html (104/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/gcroot.h -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/gcroot.h (105/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?D=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?D=A/index.html (106/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/test.scm -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/test.scm (107/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/table.h -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/table.h (108/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/prim.c -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/prim.c (109/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/parse.c -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/parse.c (110/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/prim.h -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/prim.h (111/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?M=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?M=A/index.html (112/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?S=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/?S=A/index.html (113/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/unroff.h -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/unroff.h (114/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/unroff.c -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/unroff.c (115/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/elk-2.2-patch -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/elk-2.2-patch (116/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/event.h -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/event.h (117/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/insert.c -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/insert.c (118/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/test.ms -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/test.ms (119/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/subst.c -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/subst.c (120/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/config.h -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/config.h (121/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/stream.c -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/stream.c (122/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/event.c -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/event.c (123/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/error.c -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/error.c (124/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/args.h -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/args.h (125/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/buffer.c -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/buffer.c (126/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/malloc.h -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/malloc.h (127/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/expr.h -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/expr.h (128/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/expr.c -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/expr.c (129/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/malloc.c -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/malloc.c (130/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/args.c -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/args.c (131/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/stream.h -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/stream.h (132/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/scmtable.c -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/scmtable.c (133/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/parse.h -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/parse.h (134/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/buffer.h -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/src/buffer.h (135/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/?M=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/?M=A/index.html (136/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/?N=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/?N=D/index.html (137/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/troff.scm -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/troff.scm (138/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/ -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/misc/index.html (139/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/?S=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/?S=A/index.html (140/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/ -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/html/index.html (141/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/?D=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/scm/?D=A/index.html (142/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?S=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?S=D/index.html (143/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/manual.ms -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/manual.ms (144/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/?D=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/?D=A/index.html (145/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/tmac.hyper -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/tmac.hyper (146/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/unroff-html-man.1 -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/unroff-html-man.1 (147/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/?M=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/?M=A/index.html (148/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/unroff.1 -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/unroff.1 (149/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/unroff-html.1 -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/unroff-html.1 (150/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/?N=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/?N=D/index.html (151/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/?S=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/?S=A/index.html (152/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/unroff-html-ms.1 -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/doc/unroff-html-ms.1 (153/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/?M=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/?M=A/index.html (154/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/?S=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/?S=A/index.html (155/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/?N=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/?N=D/index.html (156/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/?D=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/?D=A/index.html (157/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/sample.unroff -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/sample.unroff (158/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/?D=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/?D=A/index.html (159/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/?M=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/?M=A/index.html (160/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/?N=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/?N=D/index.html (161/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/?S=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/misc/?S=A/index.html (162/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?D=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?D=D/index.html (163/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?M=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?M=D/index.html (164/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?N=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?N=A/index.html (165/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/INSTALL -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/INSTALL/index.html (166/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?S=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?S=A/index.html (167/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?D=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?D=A/index.html (168/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?N=D -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?N=D/index.html (169/220) http://www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?M=A -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/?M=A/index.html (170/220) http://www-rn.informatik.uni-bremen.de/software/unroff/doc/unroff-html-man.1.ps -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/unroff-html-man.1.ps (171/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/unroff.1.ps -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/unroff.1.ps (172/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/unroff-html.1.ps -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/unroff-html.1.ps (173/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/manual.ps -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/manual.ps (174/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/unroff-html-ms.1.ps -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/unroff-html-ms.1.ps (175/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m-notes.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m-notes.html (176/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m-3.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m-3.html (177/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m-2.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m-2.html (178/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/COPYRIGHT -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/COPYRIGHT/index.html (179/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m-11.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m-11.html (180/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/fig3.gif -> websites/www-rn.informatik.uni-bremen.de/software/unroff/fig3.gif (181/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/fig2.gif -> websites/www-rn.informatik.uni-bremen.de/software/unroff/fig2.gif (182/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/fig1.gif -> websites/www-rn.informatik.uni-bremen.de/software/unroff/fig1.gif (183/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/manual.ms -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/manual.ms (184/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m-9.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m-9.html (185/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m-7.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m-7.html (186/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m-6.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m-6.html (187/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m-14.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m-14.html (188/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m-13.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m-13.html (189/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m-5.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m-5.html (190/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m-4.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m-4.html (191/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m-15.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m-15.html (192/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m-1.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m-1.html (193/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/examples/RELNOTES.ms -> websites/www-rn.informatik.uni-bremen.de/software/unroff/examples/RELNOTES.ms (194/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/examples/XtSetArg.3.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/examples/XtSetArg.3.html (195/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/patches/2 -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/2/index.html (196/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/PATCHLEVEL -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/PATCHLEVEL/index.html (197/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/examples/pathconf.2.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/examples/pathconf.2.html (198/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff-1.0/patches/1 -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff-1.0/patches/1/index.html (199/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/examples/pathconf.2 -> websites/www-rn.informatik.uni-bremen.de/software/unroff/examples/pathconf.2 (200/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/unroff-html.1 -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/unroff-html.1 (201/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/unroff.1 -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/unroff.1 (202/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/unroff-html-ms.1 -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/unroff-html-ms.1 (203/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/unroff-html-man.1.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/unroff-html-man.1.html (204/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/examples/XtSetArg.3 -> websites/www-rn.informatik.uni-bremen.de/software/unroff/examples/XtSetArg.3 (205/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m.html (206/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/contrib/misc-patch-2 -> websites/www-rn.informatik.uni-bremen.de/software/unroff/contrib/misc-patch-2/index.html (207/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/contrib/me-misc-patch -> websites/www-rn.informatik.uni-bremen.de/software/unroff/contrib/me-misc-patch/index.html (208/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/unroff-html-man.1 -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/unroff-html-man.1 (209/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/unroff.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/unroff.html (210/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/examples/r-7.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/examples/r-7.html (211/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/examples/r-6.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/examples/r-6.html (212/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/examples/r-5.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/examples/r-5.html (213/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/examples/r-4.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/examples/r-4.html (214/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/examples/r-3.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/examples/r-3.html (215/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/examples/r-2.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/examples/r-2.html (216/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/examples/r-1.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/examples/r-1.html (217/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m-12.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m-12.html (218/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m-10.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m-10.html (219/220) http://www-rn.informatik.uni-bremen.de:80/software/unroff/doc/m-8.html -> websites/www-rn.informatik.uni-bremen.de/software/unroff/doc/m-8.html (220/220) Download completed in 298.37s, saved in websites/www-rn.informatik.uni-bremen.de/ (220 files)
This commit is contained in:
commit
b9ca94c317
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,64 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:41. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual, section 1.</title>
|
||||
</head><body>
|
||||
<h2><a name="section1">1.</a> <tt> </tt>Additional Documentation
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>For a general overview of
|
||||
<i>unroff
|
||||
</i>and a description from the user's perspective, please read the
|
||||
<a href="./unroff.1.html">manual page</a>
|
||||
<i>unroff</i>(1)
|
||||
that accompanies the distribution.<tt> </tt>
|
||||
In addition, there exists one manual page for each output format
|
||||
for which a back-end is provided, and another one for each
|
||||
combination of output format and troff macro package explaining
|
||||
the translation rules associated with the individual macros.<tt> </tt>
|
||||
For example, the back-end for the Hypertext Markup Language (HTML)
|
||||
that is part of the distribution and that supports the
|
||||
<b>-man
|
||||
</b>and
|
||||
<b>-ms
|
||||
</b>macros comes with these manual pages:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
<a href="./unroff-html.1.html">unroff-html(1)</a>
|
||||
<a href="./unroff-html-man.1.html">unroff-html-man(1)</a>
|
||||
<a href="./unroff-html-ms.1.html">unroff-html-ms(1)</a>
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This text assumes familiarity with the basic troff and Scheme concepts.<tt> </tt>
|
||||
For a troff manual, refer to the documentation provided by
|
||||
your UNIX system's vendor.<tt> </tt>
|
||||
As
|
||||
<i>unroff
|
||||
</i>supports a number of troff extensions introduced by the free
|
||||
<i>groff
|
||||
</i>formatter (which is part of the GNU project), you may want to read the
|
||||
manual page
|
||||
<i>troff</i>(1)
|
||||
that is included in the groff distribution.<tt> </tt>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt><i>unroff
|
||||
</i>is centered around
|
||||
<i>Elk</i>,
|
||||
the Scheme-based Extension Language Kit.<tt> </tt>
|
||||
For a description of the Elk-specific Scheme language features
|
||||
please refer to the documentation included in the Elk distribution
|
||||
(which is freely available).<tt> </tt>
|
||||
An overview of Elk can be found in:
|
||||
Oliver Laumann and Carsten Bormann, Elk: The Extension Language Kit,
|
||||
<i>USENIX Computing Systems</i>,
|
||||
vol. 7, no. 4, pp. 419-449, 1994.<tt> </tt>
|
||||
The Scheme language is described in several textbooks; and the
|
||||
Revised^4 Report on the Algorithmic Language Scheme, on which
|
||||
the IEEE Standard for Scheme is based, can be downloaded from
|
||||
several major FTP sites.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,116 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:45. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual, section 10.</title>
|
||||
</head><body>
|
||||
<h2><a name="section10">10.</a> <tt> </tt>Input and Output Primitives
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt><i>unroff
|
||||
</i>provides one new input primitive and one new output primitive that
|
||||
work with the current input stream and current output stream (and a
|
||||
third primitive which is just an optimization of the latter, as
|
||||
well as a few auxiliary functions).<tt> </tt>
|
||||
<h2>
|
||||
(emit <i>.</i> <i>args</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt><i>emit
|
||||
</i>is the only stream-based output primitive.<tt> </tt>
|
||||
It receives any number of strings, symbols, and characters,
|
||||
concatenates its arguments, and sends the resulting string to
|
||||
the current output stream (to standard output if the the current
|
||||
output stream has been assigned #f).<tt> </tt>
|
||||
<i>emit
|
||||
</i>is primarily used in situations where text has to
|
||||
be output without rescanning it and without applying any
|
||||
character translations.<tt> </tt>
|
||||
It is also used from within the event procedures that are called
|
||||
for their side-effects, for example, by the
|
||||
<i>prolog
|
||||
</i>and
|
||||
<i>epilog
|
||||
</i>event procedures to generate a header and trailer for each
|
||||
output file.<tt> </tt>
|
||||
The primitive returns the empty symbol so that it can be called
|
||||
as the last form in an event procedure whose result is used.<tt> </tt>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Example:
|
||||
the new troff request for transparent output, as explained in the
|
||||
<a href="./unroff.1.html">manual page</a>
|
||||
<i>unroff</i>(1),
|
||||
can be implement like this:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
(defrequest '>>
|
||||
(lambda (>> code)
|
||||
(emit code #\newline)))
|
||||
</pre>
|
||||
</dl>
|
||||
<h2>
|
||||
(read-line)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive reads the next input line from the current input
|
||||
stream and returns it as a string.<tt> </tt>
|
||||
An error is signaled if the current input stream has been bound
|
||||
to #f, which is the case, for example, when
|
||||
<i>unroff
|
||||
</i>has been called with the option
|
||||
<b>-t
|
||||
</b>to start an interactive top level.<tt> </tt>
|
||||
If an incomplete last line (i.e. a line without a terminating
|
||||
newline) is returned by the target pointed to by the current
|
||||
input stream, a newline is appended.<tt> </tt>
|
||||
Thus,
|
||||
<i>read-line
|
||||
</i>always returns at least a string containing a newline character.<tt> </tt>
|
||||
<h2>
|
||||
(read-line-expand)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive is nothing more than an optimization for
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
(parse-expand (read-line))
|
||||
</pre>
|
||||
</dl>
|
||||
which has been provided to speed up frequently used functions like
|
||||
macro expansion.<tt> </tt>
|
||||
<h2>
|
||||
(unread-line <i>string</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive pushes back an input line to the current input
|
||||
stream, which will then be returned by the next call to
|
||||
<i>read-line
|
||||
</i>or
|
||||
<i>read-line-expand</i>,
|
||||
or it will be read by the parser in the normal way when processing
|
||||
the current input file.<tt> </tt>
|
||||
<i>string
|
||||
</i>need not have a terminating newline.<tt> </tt>
|
||||
Strings pushed back by multiple calls to
|
||||
<i>unread-line
|
||||
</i>are coalesced and returned as a whole by the next input operation.<tt> </tt>
|
||||
<h2>
|
||||
(error-port)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Returns a Scheme output port that is bound to the program's
|
||||
standard error output.<tt> </tt>
|
||||
This primitive is used by the default Scheme error handler provided
|
||||
by
|
||||
<i>unroff
|
||||
</i>and by the
|
||||
<i>warn
|
||||
</i>utility function<a href="m-notes.html#footnote4">[note 4]</a>
|
||||
.<tt> </tt>
|
||||
Note that
|
||||
<i>error-port
|
||||
</i>returns an ordinary Scheme port, not a stream.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,231 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:46. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual, section 11.</title>
|
||||
</head><body>
|
||||
<h2><a name="section11">11.</a> <tt> </tt>String Functions
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Most of the string handling primitives described in this section
|
||||
could as well have been implemented in Scheme based on the standard
|
||||
Scheme string primitives.<tt> </tt>
|
||||
They are provided as built-in primitives by
|
||||
<i>unroff
|
||||
</i>mainly as optimizations or because writing them as Scheme
|
||||
procedures would have been significantly more cumbersome.<tt> </tt>
|
||||
All the string functions return new strings, that is, they
|
||||
do not modify their arguments.<tt> </tt>
|
||||
<h2>
|
||||
(concat <i>.</i> <i>args</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt><i>concat
|
||||
</i>can be called with any number of Scheme strings, symbols, and
|
||||
characters.<tt> </tt>
|
||||
The primitive concatenates its arguments and returns the result
|
||||
as a string.<tt> </tt>
|
||||
<h2>
|
||||
(spread)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive is identical to
|
||||
<i>concat</i>,
|
||||
except that it delimits its arguments by a space character.<tt> </tt>
|
||||
For example, the event procedure for a macro that just
|
||||
returns a line consisting of its arguments could be define like this:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
(defmacro 'X
|
||||
(lambda (X . words)
|
||||
(parse (apply spread words) #\newline)))
|
||||
</pre>
|
||||
</dl>
|
||||
<h2>
|
||||
(repeat-string <i>num</i> <i>string</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Returns a string consisting of the string argument
|
||||
<i>string
|
||||
</i>repeated
|
||||
<i>num
|
||||
</i>times.<tt> </tt>
|
||||
<h2>
|
||||
(string-prune-left <i>string</i> <i>prefix</i> <i>fail</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive checks whether
|
||||
<i>string
|
||||
</i>starts with the given string prefix, and if so, returns the rest of
|
||||
<i>string
|
||||
</i>beginning at the first character position after the initial prefix.<tt> </tt>
|
||||
If the strings do not match,
|
||||
<i>fail
|
||||
</i>is returned (which may an arbitrary object).<tt> </tt>
|
||||
Example:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
(string-prune-left "+foo" "+" #f) => "foo"
|
||||
(string-prune-left "gulp" "+" #f) => #f
|
||||
</pre>
|
||||
</dl>
|
||||
<h2>
|
||||
(string-prune-right <i>string</i> <i>suffix</i> <i>fail</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive is identical to
|
||||
<i>string-prune-left</i>,
|
||||
except that it checks for a suffix rather than a prefix,
|
||||
that is, whether
|
||||
<i>string
|
||||
</i>ends with
|
||||
<i>suffix</i>.<tt> </tt>
|
||||
<h2>
|
||||
(string-compose <i>string1</i> <i>string2</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>If the argument
|
||||
<i>string2
|
||||
</i>begins with a plus sign,
|
||||
<i>string-compose
|
||||
</i>returns the concatenation of
|
||||
<i>string1
|
||||
</i>and
|
||||
<i>string2
|
||||
</i>with the initial plus sign stripped.<tt> </tt>
|
||||
If
|
||||
<i>string2
|
||||
</i>begins with a minus sign,
|
||||
it returns a string consisting of
|
||||
<i>string1
|
||||
</i>with all characters occurring in
|
||||
<i>string2
|
||||
</i>removed.<tt> </tt>
|
||||
Otherwise,
|
||||
<i>string-compose
|
||||
</i>just returns
|
||||
<i>string2</i>.<tt> </tt>
|
||||
This primitive is used for the implementation of the option type
|
||||
<i>dynstring</i>.<tt> </tt>
|
||||
<h2>
|
||||
(parse-pair <i>string</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>If
|
||||
<i>string
|
||||
</i>consists of two parts separated and enclosed by an arbitrary delimiter
|
||||
character,
|
||||
<i>parse-pair
|
||||
</i>returns a cons cell holding the two substrings.<tt> </tt>
|
||||
Otherwise, it returns #f.<tt> </tt>
|
||||
Example:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
(parse-pair "'foo'bar'") => ("foo" . "bar")
|
||||
(parse-pair "hello") => #f
|
||||
</pre>
|
||||
</dl>
|
||||
<h2>
|
||||
(parse-triple <i>string</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive is identical to
|
||||
<i>parse-pair</i>,
|
||||
except that it breaks up a three-part string rather than a
|
||||
two-part string and returns an improper list whose car, cadr,
|
||||
and cddr consist of the three substrings<a href="m-notes.html#footnote5">[note 5]</a>
|
||||
.<tt> </tt>
|
||||
<i>parse-pair
|
||||
</i>and
|
||||
<i>parse-triple
|
||||
</i>are useful mainly for parsing the arguments to troff requests such
|
||||
as ``.if'' and ``.tl''.<tt> </tt>
|
||||
<h2>
|
||||
<a name=".substitute">(substitute <i>string</i> <i>.</i> <i>args</i>)</a></h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive returns a copy of
|
||||
<i>string
|
||||
</i>in which each sequence of a percent sign, a
|
||||
<i>substitution specifier</i>,
|
||||
and another percent sign is replaced by another string according
|
||||
to the specifier.<tt> </tt>
|
||||
Two adjacent percent signs are replaced by a single percent sign.<tt> </tt>
|
||||
The following list describes all substitution specifiers together
|
||||
with their respective replacements.<tt> </tt>
|
||||
<dl>
|
||||
<dt><b>macros</b><dd>
|
||||
The name of the troff macro package whose macros are recognized,
|
||||
that is, the argument to the option
|
||||
<b>-m
|
||||
</b>(or the empty string if none was specified).<tt> </tt>
|
||||
<dt><b>format</b><dd>
|
||||
The output format, that is, the argument to the option
|
||||
<b>-f
|
||||
</b>(or the default output format if the option was omitted).<tt> </tt>
|
||||
<dt><b>directory</b><dd>
|
||||
The name of the library directory from which
|
||||
<i>unroff
|
||||
</i>loads its Scheme files.<tt> </tt>
|
||||
<dt><b>progname</b><dd>
|
||||
The name of the running program (this is used as a prefix in
|
||||
error messages and warning messages).<tt> </tt>
|
||||
<dt><b>filepos</b><dd>
|
||||
A space character followed by the target of the current input
|
||||
stream, a colon, the number of the last input line read from
|
||||
the stream, and another colon.<tt> </tt>
|
||||
If the current input stream is bound to #f, the empty string
|
||||
is substituted.<tt> </tt>
|
||||
This specifier is useful for displaying error messages or warning messages.<tt> </tt>
|
||||
<dt><b>tmpname</b><dd>
|
||||
A file name that can be used for a temporary file.<tt> </tt>
|
||||
Each use of this specifier creates a new, unique file name.<tt> </tt>
|
||||
<dt><b>version</b><dd>
|
||||
The program's major and minor version numbers separated by a period.<tt> </tt>
|
||||
<dt><b>weekday</b><dd>
|
||||
The abbreviated weekday name.<tt> </tt>
|
||||
<dt><b>weekday+</b><dd>
|
||||
The full weekday name.<tt> </tt>
|
||||
<dt><b>weekdaynum</b><dd>
|
||||
The weekday (0-6, Sunday is 0).<tt> </tt>
|
||||
<dt><b>monthname</b><dd>
|
||||
The abbreviated month name.<tt> </tt>
|
||||
<dt><b>monthname+</b><dd>
|
||||
The full monthname.<tt> </tt>
|
||||
<dt><b>day</b><dd>
|
||||
The day of the month (01-31).<tt> </tt>
|
||||
<dt><b>month</b><dd>
|
||||
The month (01-12).<tt> </tt>
|
||||
<dt><b>year</b><dd>
|
||||
The year.<tt> </tt>
|
||||
<dt><b>date</b><dd>
|
||||
The date (in the local environment's representation).<tt> </tt>
|
||||
<dt><b>time</b><dd>
|
||||
The time (in the local environment's representation).<tt> </tt>
|
||||
<dt>a positive number <i>n</i><dd>
|
||||
The
|
||||
<i>n</i>th
|
||||
additional argument in the call to the
|
||||
<i>substitute
|
||||
</i>primitive, which must be a string.<tt> </tt>
|
||||
<dt>a <i>string</i><dd>
|
||||
<i>string
|
||||
</i>is interpreted as the name of an environment variable,
|
||||
and the value of this variable is substituted (or the empty
|
||||
string if the environment variable is undefined).<tt> </tt>
|
||||
</dl>
|
||||
<p>
|
||||
Examples:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
(substitute "%date% %HOME%") => "04/09/95 /home/kbs/net"
|
||||
|
||||
(substitute "%progname%:%filepos% %1%" "hello")
|
||||
=> "unroff: manual.ms:21: hello"
|
||||
|
||||
(load (substitute "%directory%/scm/%format%/m%macros%.scm"))
|
||||
</pre>
|
||||
</dl>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:47. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual, section 12.</title>
|
||||
</head><body>
|
||||
<h2><a name="section12">12.</a> <tt> </tt>Tables
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt><i>unroff
|
||||
</i>provides simple hash tables as a new first class data type
|
||||
<i>table</i>.<tt> </tt>
|
||||
Each table entry associates an arbitrary Scheme object with
|
||||
a key (a Scheme string or symbol).<tt> </tt>
|
||||
Tables are useful for various purposes; for example, the Scheme code
|
||||
delivered with
|
||||
<i>unroff
|
||||
</i>maintains hash tables to store information about number registers,
|
||||
options, fonts, and for other bookkeeping tasks.<tt> </tt>
|
||||
<h2>
|
||||
(table? <i>obj</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>The type predicate for the new type; it returns #t if
|
||||
<i>obj
|
||||
</i>is a member of the type
|
||||
<i>table</i>,
|
||||
otherwise #f.<tt> </tt>
|
||||
<h2>
|
||||
(make-table <i>size</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Returns a new table of the specified size.<tt> </tt>
|
||||
<i>size
|
||||
</i>is a positive integer.<tt> </tt>
|
||||
The smaller the size, the more collisions occur as entries
|
||||
are added to the table.<tt> </tt>
|
||||
However, the hash function employed by the table primitives
|
||||
ensures that no collisions occur in tables of size
|
||||
256^<i>n
|
||||
</i>if all keys have a length less than or equal to
|
||||
<i>n</i>.<tt> </tt>
|
||||
<h2>
|
||||
(table-store! <i>table</i> <i>key</i> <i>obj</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive stores the Scheme object
|
||||
<i>obj
|
||||
</i>under the given
|
||||
<i>key
|
||||
</i>in the given
|
||||
<i>table</i>.<tt> </tt>
|
||||
The key argument must be a string or a symbol.<tt> </tt>
|
||||
<h2>
|
||||
(table-lookup <i>table</i> <i>key</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive checks whether an object is stored in the given
|
||||
<i>table
|
||||
</i>under the specified
|
||||
<i>key</i>,
|
||||
and if so, returns the object.<tt> </tt>
|
||||
If no object is stored under
|
||||
<i>key</i>,
|
||||
<i>table-lookup
|
||||
</i>returns #f.<tt> </tt>
|
||||
<h2>
|
||||
(table-remove! <i>table</i> <i>key</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Removes the entry selected by
|
||||
<i>key
|
||||
</i>from the specified table.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:47. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual, section 13.</title>
|
||||
</head><body>
|
||||
<h2><a name="section13">13.</a> <tt> </tt>Miscellaneous Primitives
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>The first two primitives described in this section are not essential,
|
||||
as the same function could be achieved with pipe streams,
|
||||
although with greater overhead.<tt> </tt>
|
||||
The remaining primitives perform a number of troff-specific operations
|
||||
and are only useful in a few specialized contexts.<tt> </tt>
|
||||
<h2>
|
||||
(shell-command <i>command</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Runs the specified
|
||||
<i>command
|
||||
</i>(which must be a string) as a shell command by passing it to a call to
|
||||
<i>system</i>(3).<tt> </tt>
|
||||
The return value is that of
|
||||
<i>system()
|
||||
</i>(an integer).<tt> </tt>
|
||||
<h2>
|
||||
(remove-file <i>filename</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Removes the specified file;
|
||||
<i>filename
|
||||
</i>must be a string or a symbol.<tt> </tt>
|
||||
<h2>
|
||||
(troff-compatible?)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This predicate returns #t if troff compatibility mode has been
|
||||
enabled (i.e. if the option
|
||||
<b>-C
|
||||
</b>has been given), otherwise #f.<tt> </tt>
|
||||
<h2>
|
||||
(set-escape! <i>char</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Sets the troff escape character (initially `\') to the specified
|
||||
character argument.<tt> </tt>
|
||||
This primitive is used to implement the ``.ec'' request.<tt> </tt>
|
||||
<h2>
|
||||
<a name=".filter-eqn-line">(filter-eqn-line <i>string</i>)</a></h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive scans the string argument (which is supposed to
|
||||
be passed to the
|
||||
<i>eqn
|
||||
</i>preprocessor afterwards) for occurrences of the ``delim'' directive.<tt> </tt>
|
||||
If a ``delim'' directive is found, the current inline equation
|
||||
delimiters maintained by the parser are changed or disabled as specified by
|
||||
the directive.<tt> </tt>
|
||||
The primitive returns #f if
|
||||
<i>string
|
||||
</i>is empty or consists just of white space, or if it contains
|
||||
a valid ``delim'' or ``define'' directive, otherwise #t.<tt> </tt>
|
||||
The inline equation delimiters are disabled initially.<tt> </tt>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>The primitive is supposed to be used by implementations of
|
||||
the request ``.EQ'' and inline equation event handlers to intercept the
|
||||
<i>eqn
|
||||
</i>input.<tt> </tt>
|
||||
In this case, the
|
||||
<i>eqn
|
||||
</i>preprocessor need only be invoked if
|
||||
<i>filter-eqn-line
|
||||
</i>returned #t at least once.<tt> </tt>
|
||||
<h2>
|
||||
(skip-group)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive reads input lines from the current input stream
|
||||
and scans them for the escape sequences `\{' and `\}' until
|
||||
the nesting level of conditional input is balanced (i.e. until
|
||||
a matching closing brace for an initial opening brace has been found).<tt> </tt>
|
||||
The primitive is only useful for the implementation of the
|
||||
troff requests for conditional input.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:47. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual, section 14.</title>
|
||||
</head><body>
|
||||
<h2><a name="section14">14.</a> <tt> </tt>File Insertions
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>The primitive
|
||||
<i>file-insertions
|
||||
</i>is a general-purpose utility for inserting strings into files
|
||||
at specified locations in a fast and robust way.<tt> </tt>
|
||||
One application is to resolve forward references of any kind among
|
||||
a group of files when all files have been processed.<tt> </tt>
|
||||
In this case, the insertions would be executed by an
|
||||
<i>exit
|
||||
</i>event handler.<tt> </tt>
|
||||
<h2>
|
||||
<a name=".file-insertions">(file-insertions <i>insertions</i>)</a></h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt><i>insertions
|
||||
</i>is a list specifying the parameters for the file insertions.<tt> </tt>
|
||||
Each element of the list is itself a list consisting
|
||||
of a file name (a string),
|
||||
a file offset (an integer between zero and the size of the file),
|
||||
and a string to be inserted in the given file at the given offset.<tt> </tt>
|
||||
<i>file-insertions
|
||||
</i>sorts the list to ensure that each file is only processed once
|
||||
and that the offsets for each file are in increasing order.<tt> </tt>
|
||||
Then each file is copied to a temporary file
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
<i>filename</i>.new
|
||||
</pre>
|
||||
</dl>
|
||||
(where
|
||||
<i>filename
|
||||
</i>is the original file name), and the specified insertions are
|
||||
carried out as the file is copied.<tt> </tt>
|
||||
When processing of a file is finished, the temporary file is
|
||||
renamed to its original name.<tt> </tt>
|
||||
If there exist links to a file, a warning is displayed and the
|
||||
insertion is skipped.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,192 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:48. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual, section 15.</title>
|
||||
</head><body>
|
||||
<h2><a name="section15">15.</a> <tt> </tt>Utilities for Back-Ends
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Writers of new back-ends (either for new output formats or for new
|
||||
troff macro packages) can benefit from a number of Scheme procedures
|
||||
and macros that are exported by the file ``scm/troff.scm'' which is
|
||||
loaded from the library directory on startup.<tt> </tt>
|
||||
The first two,
|
||||
<i>eval-if-mode
|
||||
</i>and
|
||||
<i>set-option!
|
||||
</i>are exceptions in that they are typically used by the user's
|
||||
initialization file ``~/.unroff'' to customize
|
||||
<i>unroff</i>,
|
||||
rather than by programmers of
|
||||
<i>unroff</i>.<tt> </tt>
|
||||
<h2>
|
||||
(set-option! <i>name</i> <i>value</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This procedure assigns
|
||||
<i>value
|
||||
</i>to the option
|
||||
<i>name</i>.<tt> </tt>
|
||||
The value must be appropriate for the option's type.<tt> </tt>
|
||||
<h2>
|
||||
(eval-if-mode <i>mode</i> <i>.</i> <i>forms</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This macro is typically used to evaluate a sequence of expressions,
|
||||
<i>forms</i>,
|
||||
depending on the output format and macro package specified in
|
||||
the command line.<tt> </tt>
|
||||
<i>mode
|
||||
</i>is a list of two symbols, an output format and a macro package
|
||||
name; the wildcard `*' can be used for both elements.<tt> </tt>
|
||||
The
|
||||
<i>forms
|
||||
</i>are evaluated if the first symbol matches the value of the option
|
||||
<b>-f
|
||||
</b>and the second symbol matches the value of the option
|
||||
<b>-m</b>;
|
||||
in this case the result of the last sub-expression is returned.<tt> </tt>
|
||||
Otherwise the forms are ignored and #f is returned.<tt> </tt>
|
||||
Example:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
(eval-if-mode (* html)
|
||||
(set-option! 'mail-address "net@cs.tu-berlin.de"))
|
||||
</pre>
|
||||
</dl>
|
||||
<h2>
|
||||
(quit <i>message</i> <i>.</i> <i>args</i>)
|
||||
<br>
|
||||
(warn <i>message</i> <i>.</i> <i>args</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>These procedures print
|
||||
<i>message
|
||||
</i>and the optional
|
||||
<i>args
|
||||
</i>on the port returned by
|
||||
<i>error-port
|
||||
</i>using the primitive
|
||||
<i>format</i>.<tt> </tt>
|
||||
The message is prefixed by the program name, current input file
|
||||
name and line number, and, in case of
|
||||
<i>warn</i>,
|
||||
the word ``warning''.<tt> </tt>
|
||||
A newline is appended.<tt> </tt>
|
||||
<i>quit
|
||||
</i>causes the program to exit with an exit code of 1, and
|
||||
<i>warn
|
||||
</i>returns the empty string (and can therefore be used as the last
|
||||
form in event procedures).<tt> </tt>
|
||||
<h2>
|
||||
<a name=".options">(option <i>name</i>)</a></h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Returns the value of the specified option.<tt> </tt>
|
||||
<h2>
|
||||
(define-option <i>name</i> <i>type</i> <i>initial</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Defines a new option with the specified name, type, and initial
|
||||
value.<tt> </tt>
|
||||
<i>name
|
||||
</i>and
|
||||
<i>type
|
||||
</i>are strings or symbols.<tt> </tt>
|
||||
There exist a number of predefined, basic option types as
|
||||
described in the
|
||||
<a href="./unroff.1.html">manual page</a>
|
||||
<i>unroff</i>(1).<tt> </tt>
|
||||
The initial value need not match the option's type; for example,
|
||||
the following expression is valid:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
(define-option 'author 'string #f)
|
||||
</pre>
|
||||
</dl>
|
||||
<h2>
|
||||
(define-option-type <i>name</i> <i>pre-check</i> <i>pre-msg</i> <i>converter</i> <i>post-check</i> <i>post-msg</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This procedure defines a new option type named
|
||||
<i>name
|
||||
</i>which can then be used in calls to
|
||||
<i>define-option</i>.<tt> </tt>
|
||||
If an option of this type is specified in the command line,
|
||||
the procedure
|
||||
<i>pre-check
|
||||
</i>is applied to the option's value (a string).<tt> </tt>
|
||||
In this case, if
|
||||
<i>pre-check
|
||||
</i>returns #f,
|
||||
<i>quit
|
||||
</i>is called with an error message including the string
|
||||
<i>pre-msg</i>,
|
||||
which should describe the expected option value format
|
||||
(e.g. ``a character'').<tt> </tt>
|
||||
If the check succeeds, the procedure
|
||||
<i>converter
|
||||
</i>is called with the option's current value and with the string as given
|
||||
in the command line.<tt> </tt>
|
||||
The job of the converter procedure is to convert the option value
|
||||
from a string representation to a Scheme object matching the option's
|
||||
actual Scheme type.<tt> </tt>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Finally, the predicate
|
||||
<i>post-check
|
||||
</i>is applied either to the result of
|
||||
<i>converter
|
||||
</i>or, if the option was set through a call to
|
||||
<i>set-option!</i>,
|
||||
to this procedure's argument.<tt> </tt>
|
||||
If the predicate returns #f, a error is signaled with an error
|
||||
message including
|
||||
<i>post-msg
|
||||
</i>as described in the previous paragraph.<tt> </tt>
|
||||
For example, the predefined option type ``boolean'' is defined as
|
||||
follows:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
(define-option-type 'boolean
|
||||
(lambda (x) (member x '("0" "1"))) "0 or 1"
|
||||
(lambda (old new) (string=? new "1"))
|
||||
boolean? "a boolean")
|
||||
</pre>
|
||||
</dl>
|
||||
<h2>
|
||||
(with-input-from-stream <i>target</i> <i>.</i> <i>forms</i>)
|
||||
<br>
|
||||
(with-output-to-stream <i>target</i> <i>.</i> <i>forms</i>)
|
||||
<br>
|
||||
(with-output-appended-to-stream <i>target</i> <i>.</i> <i>forms</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>These macros open an input stream (first macro) or output stream to the
|
||||
specified target and assign it to the current input stream (first
|
||||
macro) or current output stream.<tt> </tt>
|
||||
Then the specified
|
||||
<i>forms
|
||||
</i>are evaluated, the stream is reassigned its previous value, and
|
||||
the result of the last sub-expression in
|
||||
<i>forms
|
||||
</i>is returned.<tt> </tt>
|
||||
The macros recur on the primitives
|
||||
<i>open-input-stream</i>,
|
||||
<i>open-output-stream</i>,
|
||||
and
|
||||
<i>append-output-stream</i>,
|
||||
respectively.<tt> </tt>
|
||||
<h2>
|
||||
(skip-lines <i>stop</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Reads input lines using
|
||||
<i>read-line-expand
|
||||
</i>until either end-of-stream is reached (in this case a warning
|
||||
is displayed) or a line matching the string argument
|
||||
<i>stop
|
||||
</i>is encountered.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:41. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual, section 2.</title>
|
||||
</head><body>
|
||||
<h2><a name="section2">2.</a> <tt> </tt>Where to Place Scheme Code?
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt><i>unroff
|
||||
</i>accepts Scheme code in a number of places.<tt> </tt>
|
||||
First, several Scheme files are loaded on startup:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
scm/troff.scm
|
||||
scm/<i>format</i>/common.scm
|
||||
scm/<i>format</i>/<i>package</i>.scm
|
||||
~/.unroff
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>The first three path names are relative to a site-specific library
|
||||
directory where the files have been installed by the system
|
||||
administrator.<tt> </tt>
|
||||
``troff.scm'' contains definitions that are independent of the
|
||||
actual output format and troff macro-package; and the
|
||||
file ``.unroff'' (loaded from the caller's home directory) typically
|
||||
contains Scheme code to define user-preferences and to tailor
|
||||
and extend the translation rules implemented by the files loaded
|
||||
from a central location.<tt> </tt>
|
||||
See the
|
||||
<a href="./unroff.1.html">manual page</a>
|
||||
<i>unroff</i>(1)
|
||||
for more information.<tt> </tt>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Additional files with user-supplied Scheme definitions
|
||||
(e.g. translation rules for user-defined macros) can be passed to
|
||||
<i>unroff
|
||||
</i>by mentioning them in the command line.<tt> </tt>
|
||||
In general, troff input files and Scheme source files can be mixed
|
||||
arbitrarily when calling
|
||||
<i>unroff</i>.<tt> </tt>
|
||||
Finally, Scheme code can be embedded directly in the troff documents
|
||||
by means of the new ``.##'' troff request and the corresponding
|
||||
extension to the ``.ig'' request as explained in the
|
||||
<a href="./unroff.1.html">manual page</a>.<tt> </tt>
|
||||
Such inline Scheme code is executed on-the-fly when it is encountered
|
||||
by the parser while processing the document.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:41. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual, section 3.</title>
|
||||
</head><body>
|
||||
<h2><a name="section3">3.</a> <tt> </tt><a name=".events">Events and Event Handling</a>
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt><i>unroff
|
||||
</i>interprets a troff document as a sequence of chunks of normal
|
||||
text and interspersed ``events''.<tt> </tt>
|
||||
Plain text is usually just copied to the current output (a file or
|
||||
standard output).<tt> </tt>
|
||||
The output produced for an event is determined by an ``event
|
||||
handler'' (usually a Scheme procedure) that can be associated
|
||||
with each event.<tt> </tt>
|
||||
If no event handler can be found for an event encountered in the
|
||||
currently processed document (with a few exceptions), a warning message
|
||||
is displayed and the input that triggered the event is skipped
|
||||
(in case of requests and macros) or treated like normal text.<tt> </tt>
|
||||
For events such as troff requests, a separate Scheme procedure
|
||||
can be defined for each request, and the name of the request that
|
||||
triggered the event is then passed to the procedure as an argument.<tt> </tt>
|
||||
An event handling procedure can be defined for
|
||||
<ul>
|
||||
<li>
|
||||
each troff request, including requests that perform intrinsic troff
|
||||
functions, such as ``.de'' and ``.if''
|
||||
<li>
|
||||
each troff macro, whether user-defined or part of a macro
|
||||
package
|
||||
<li>
|
||||
each troff string
|
||||
<li>
|
||||
each number register
|
||||
<li>
|
||||
each special character
|
||||
<li>
|
||||
each escape sequence
|
||||
<li>
|
||||
each character (to provide character translations)
|
||||
<li>
|
||||
each inline equation enclosed by the current
|
||||
<i>eqn</i>(1)
|
||||
delimiter characters
|
||||
<li>
|
||||
each end of sentence (defined as a period, exclamation mark, or
|
||||
question mark, followed by a newline).<tt> </tt>
|
||||
</ul>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>When invoked, every Scheme procedure associated with one of
|
||||
the above events receives one or more arguments.<tt> </tt>
|
||||
For example, a procedure registered for the escape sequence `\h'
|
||||
(horizontal space) is passed the name of the escape sequence
|
||||
(the letter `h') as well as the argument to `\h' (i.e. the amount
|
||||
of space).<tt> </tt>
|
||||
Likewise, event handling procedures for requests and macros are
|
||||
called with the name of the request or macro as well as any
|
||||
arguments specified in the troff input.<tt> </tt>
|
||||
The exact arguments passed to each type of event handler will be
|
||||
explained below.<tt> </tt>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>A Scheme procedure associated with an event must return a string
|
||||
which is then output in place of whatever input triggered the
|
||||
event.<tt> </tt>
|
||||
Here, and in a number of other places, a Scheme symbol or a Scheme
|
||||
is accepted as an alternative to a string return value.<tt> </tt>
|
||||
Event handling procedures are free to directly produce output
|
||||
in addition to returning it as a result.<tt> </tt>
|
||||
As procedures associated with events frequently just return a
|
||||
fixed text, the text itself may be defined as the event handler
|
||||
in place of the procedure to save the overhead of the procedure
|
||||
call.<tt> </tt>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Predefined Scheme procedures are supplied for events such as the
|
||||
requests ``.de'', ``.nr'', ``.ds'', and the corresponding escape
|
||||
sequences `\n' and `\*' to support user-defined macros, strings,
|
||||
and number registers.<tt> </tt>
|
||||
In any case, specific event handlers registered for macros,
|
||||
strings, and number registers supersede any user-supplied
|
||||
definitions.<tt> </tt>
|
||||
Thus, the author of a document can attach a
|
||||
special translation rule to a macro, string, or number register
|
||||
defined in the document to take effect when the document is processed by
|
||||
<i>unroff</i>.<tt> </tt>
|
||||
This is particularly important for high-level, structure-oriented
|
||||
target languages like SGML, as the the micro-formatting
|
||||
used by typical, more complex troff macros and by many low-level requests
|
||||
may not be expressible in such languages.<tt> </tt>
|
||||
As a case in point, it would obviously be impossible to translate, for
|
||||
example, the ``.IP'' macro defined by the ``ms'' package to a
|
||||
language such as HTML just by looking at the definition of the macro.<tt> </tt>
|
||||
For this reason,
|
||||
<i>unroff
|
||||
</i>does not really load the actual macro definitions for a troff macro
|
||||
package selected via the ``-m'' option; instead, an event handler
|
||||
is defined for each macro exported by the package to generate
|
||||
whatever represents the corresponding macro's function in the
|
||||
target language.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,298 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:41. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual, section 4.</title>
|
||||
</head><body>
|
||||
<h2><a name="section4">4.</a> <tt> </tt>Defining Event Handlers
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>In the following list of Scheme primitives, the argument
|
||||
<i>name
|
||||
</i>denotes the name of a troff request, macro, escape sequence
|
||||
etc. (without any initial period or escape character) and can be
|
||||
supplied in form of a Scheme string, a Scheme symbol, or
|
||||
a Scheme character:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
(defrequest "ti" ...)
|
||||
|
||||
(defrequest 'sp ...)
|
||||
|
||||
(defescape #\h ...)
|
||||
</pre>
|
||||
</dl>
|
||||
(the primitives
|
||||
<i>defrequest
|
||||
</i>and
|
||||
<i>defescape
|
||||
</i>will be introduced in a moment).<tt> </tt>
|
||||
An argument named
|
||||
<i>handler
|
||||
</i>is either a procedure (usually a lambda expression) which returns
|
||||
a string, a symbol, or a character; or
|
||||
<i>handler
|
||||
</i>can itself be specified as a string, symbol, or character.<tt> </tt>
|
||||
In addition, the literal ``#f'' (false) can be supplied as a
|
||||
<i>handler
|
||||
</i>argument to remove any event handler that is currently associated with
|
||||
that event.<tt> </tt>
|
||||
Each of the ``def'' primitives listed below returns the handler
|
||||
that was previously associated with the corresponding event,
|
||||
or ``#f'' if the event was not handled.<tt> </tt>
|
||||
<h2>
|
||||
(defrequest <i>name</i> <i>handler</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Associates the given handler with the given troff request.<tt> </tt>
|
||||
If
|
||||
<i>handler
|
||||
</i>is a procedure, it is passed the request's name and arguments
|
||||
as strings when called later.<tt> </tt>
|
||||
Passing the name of the request as the first argument aids in
|
||||
associating the same procedure with several different requests.<tt> </tt>
|
||||
<i>unroff
|
||||
</i>does not limit the number of arguments to requests, thus,
|
||||
an event handling procedure for a requests that takes a variable
|
||||
number of arguments could be defined like this:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
(defrequest 'rm
|
||||
(lambda (rm . args) ...))
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
If the request is invoked with fewer arguments than the procedure
|
||||
has formal arguments, the remaining arguments are bound to
|
||||
the empty string.<tt> </tt>
|
||||
If the request is invoked with
|
||||
<i>more
|
||||
</i>arguments than the procedure has formal arguments, the last lambda
|
||||
variable is assigned a string consisting of the (space-delimited)
|
||||
arguments left over after the other formal arguments have been bound to
|
||||
the other actual arguments.<tt> </tt>
|
||||
However, if
|
||||
<i>handler
|
||||
</i>has only one formal argument, an error message is displayed when the
|
||||
request is called with any arguments at all and the event is skipped.<tt> </tt>
|
||||
For example, consider the following handler for the (non-existing)
|
||||
request ``xx'':
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
(defrequest 'xx
|
||||
(lambda (name a b) ...))
|
||||
</pre>
|
||||
</dl>
|
||||
The procedure's arguments
|
||||
<i>a
|
||||
</i>and
|
||||
<i>b
|
||||
</i>will be bound as follows when the request is invoked:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
.xx foo name="xx" a="foo" b=""
|
||||
|
||||
.xx foo bar baz name="xx" a="foo" b="bar baz"
|
||||
</pre>
|
||||
</dl>
|
||||
<h2>
|
||||
(defmacro <i>name</i> <i>handler</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Associates
|
||||
<i>handler
|
||||
</i>with the given troff macro, superseding
|
||||
any definition for this macro established by the ordinary ``.de''
|
||||
request.<tt> </tt>
|
||||
The only difference between
|
||||
<i>defrequest
|
||||
</i>and
|
||||
<i>defmacro
|
||||
</i>is the way arguments are bound in case
|
||||
<i>handler
|
||||
</i>is a procedure
|
||||
(troff employs slightly different rules when parsing the call
|
||||
to a request and a macro invocation).<tt> </tt>
|
||||
The quote character can be used in the latter case to surround
|
||||
arguments containing spaces, while quote characters are treated as
|
||||
normal characters in requests, which allows for the following
|
||||
remarkable troff idiom:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
.ds xy "hello
|
||||
</pre>
|
||||
</dl>
|
||||
In contrast to event handlers defined for requests, the formal
|
||||
arguments of a handler procedure associated with a macro must
|
||||
match the actual arguments in the normal way, that is, as if
|
||||
the procedure were invoked from within Scheme.<tt> </tt>
|
||||
A warning message is displayed if the number of macro arguments
|
||||
does not match the number of formal procedure arguments, and
|
||||
the event is skipped.<tt> </tt>
|
||||
<h2>
|
||||
(defspecial <i>name</i> <i>handler</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Associates
|
||||
<i>handler
|
||||
</i>with the special character whose name is
|
||||
<i>name</i>.<tt> </tt>
|
||||
The name must have a length of 2.<tt> </tt>
|
||||
In addition, an empty name can be specified to define a
|
||||
``fallback'' handler that is called for special characters
|
||||
for which no handler exists.<tt> </tt>
|
||||
Like all event handler procedures,
|
||||
<i>handler
|
||||
</i>can have arbitrary side-effects in addition to returning a
|
||||
result; for example, the procedure may display a warning message
|
||||
if the special character cannot be represented in the target
|
||||
language and an approximation must be rendered instead.<tt> </tt>
|
||||
<h2>
|
||||
(defstring <i>name</i> <i>handler</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Associates a handler with the specified troff string.<tt> </tt>
|
||||
As
|
||||
<i>unroff
|
||||
</i>provides a default handler for the request ``.ds'' to implement
|
||||
used-defined strings,
|
||||
<i>defstring
|
||||
</i>is primarily used to give definitions for strings exported by
|
||||
troff macro packages.<tt> </tt>
|
||||
<h2>
|
||||
(defnumreg <i>name</i> <i>handler</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This request behaves like
|
||||
<i>defstring</i>,
|
||||
except that it works on number registers.<tt> </tt>
|
||||
Note that the Scheme primitive
|
||||
<i>number->string
|
||||
</i>may have to be used by
|
||||
<i>handler
|
||||
</i>(if it is a procedure) to convert a numeric result into a string
|
||||
that can be returned from the handler.<tt> </tt>
|
||||
<p>
|
||||
In troff input, number registers as well as strings, special
|
||||
characters, and escape sequences can be denoted using the groff
|
||||
``long name'' syntax, unless troff compatibility has been enabled:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
\n[numreg] \n[string] \f[font] \[em] ...
|
||||
</pre>
|
||||
</dl>
|
||||
<h2>
|
||||
(defescape <i>name</i> <i>handler</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Associates an event handler with an escape sequence.<tt> </tt>
|
||||
<i>name
|
||||
</i>must have a length of 1, unless the empty string is
|
||||
given to define a ``fallback'' event handler (as with
|
||||
<i>defspecial</i>).<tt> </tt>
|
||||
Handlers defined for certain escape sequences are passed
|
||||
a second argument in addition to the name of the escape sequence.<tt> </tt>
|
||||
This is true for all escape sequences that have an argument
|
||||
according to the troff specification:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
\b \c \f \h \k \l \n \o \s \v \w \x \z
|
||||
\* \$ \"
|
||||
</pre>
|
||||
</dl>
|
||||
In addition, handlers for these groff escape sequences are passed an
|
||||
additional argument unless troff compatibility is enabled:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
\A \C \L \N \R \V \Y \Z
|
||||
</pre>
|
||||
</dl>
|
||||
The form of an escape sequence argument is determined by the
|
||||
troff specification and cannot be programmed; for example, the
|
||||
handler for `\z' is passed a character or a special character,
|
||||
and the handler for `\"' is invoked with the rest of the current
|
||||
input line sans the terminating newline.<tt> </tt>
|
||||
(The latter can be used to translate troff comments.)
|
||||
<p>
|
||||
Handlers registered for the escape sequences `\n' and '\s' are
|
||||
passed an optional third argument, one of the Scheme characters
|
||||
#\+ and #\-, if the escape sequence argument begins with a sign.<tt> </tt>
|
||||
The sign is then stripped from the actual argument.<tt> </tt>
|
||||
<p>
|
||||
As `\n' and `\*' are treated as ordinary escape sequences,
|
||||
handlers can be defined for them to achieve some form of fallback
|
||||
for number register and strings.<tt> </tt>
|
||||
<i>unroff
|
||||
</i>provides suitable default handlers for `\n', `\*', and '\$' as part
|
||||
of the implementation of user-defined number registers, strings,
|
||||
and macros.<tt> </tt>
|
||||
These handlers can be overridden if desired.<tt> </tt>
|
||||
<h2>
|
||||
(defchar <i>name</i> <i>handler</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Associates
|
||||
<i>handler
|
||||
</i>with a character.<tt> </tt>
|
||||
<i>name
|
||||
</i>must have a length of 1.<tt> </tt>
|
||||
Each time the specified character is encountered in the troff
|
||||
input, the result (or value) of
|
||||
<i>handler
|
||||
</i>is output in place of the character.<tt> </tt>
|
||||
Character translations are not applied to the result of event
|
||||
handlers; event procedures can use the Scheme primitive
|
||||
<a href="m-8.html#.translate"><i>translate</i></a>
|
||||
(as described below) to execute the character translations
|
||||
established by calls to
|
||||
<i>defchar
|
||||
</i>if desired.<tt> </tt>
|
||||
<p>
|
||||
<i>defchar
|
||||
</i>currently has a number of weaknesses.<tt> </tt>
|
||||
The argument cannot be a special character
|
||||
(that is,
|
||||
<i>name
|
||||
</i>must be a plain character), and the mechanism cannot be used
|
||||
to achieve true
|
||||
<i>output
|
||||
</i>translations as with the troff request ``.tr'' or the groff
|
||||
request ``.char''.<tt> </tt>
|
||||
<h2>
|
||||
(defsentence <i>handler</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Defines a handler to be consulted on end of sentence.<tt> </tt>
|
||||
If
|
||||
<i>handler
|
||||
</i>is a procedure, it is passed the punctuation mark ending the
|
||||
sentence as its argument (in form of a Scheme character).<tt> </tt>
|
||||
In any case, if an event handler has been specified, its result
|
||||
(or value) is output in place of the end-of-sentence mark and
|
||||
the newline character following it.<tt> </tt>
|
||||
<h2>
|
||||
(defequation <i>handler</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Defines a handler for
|
||||
<i>eqn
|
||||
</i>inline equations.<tt> </tt>
|
||||
If
|
||||
<i>handler
|
||||
</i>is a procedure, it is passed the contents of the inline equation
|
||||
(with the delimiters stripped) as an argument.<tt> </tt>
|
||||
When an inline equation is encountered in the troff input and a handler
|
||||
has been defined for inline equations, the handler's result (or value)
|
||||
is output in place of the equation.<tt> </tt>
|
||||
<p>
|
||||
For inline equations to be recognized, delimiters must be defined first
|
||||
by passing
|
||||
<i>eqn
|
||||
</i>input that includes a ``delim'' directive to the Scheme primitive
|
||||
<a href="m-13.html#.filter-eqn-line"><i>filter-eqn-line</i></a>
|
||||
(explained below), as is usually done
|
||||
by the event handler associated with the request ``.EQ''.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:43. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual, section 5.</title>
|
||||
</head><body>
|
||||
<h2><a name="section5">5.</a> <tt> </tt>Querying Event Handlers
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>In addition to associating event handlers with events by means
|
||||
of the ``def'' primitives, several primitives exist to query
|
||||
the currently defined handler for a given event:
|
||||
<h2>
|
||||
(requestdef <i>name</i>)
|
||||
<br>
|
||||
(macrodef <i>name</i>)
|
||||
<br>
|
||||
(specialdef <i>name</i>)
|
||||
<br>
|
||||
(stringdef <i>name</i>)
|
||||
<br>
|
||||
(numregdef <i>name</i>)
|
||||
<br>
|
||||
(escapedef <i>name</i>)
|
||||
<br>
|
||||
(chardef <i>name</i>)
|
||||
<br>
|
||||
(sentencedef)
|
||||
<br>
|
||||
(equationdef)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Observe that the name of each primitive is derived from the name
|
||||
of the corresponding ``def'' primitive by exchanging the word
|
||||
``def'' and the rest of the name.<tt> </tt>
|
||||
Each
|
||||
<i>name
|
||||
</i>argument is subject to the constraints described under the
|
||||
corresponding ``def'' primitive above.<tt> </tt>
|
||||
Each primitive returns whatever object has been registered as
|
||||
the event handler (procedure, string, symbol, character);
|
||||
or #f if no handler has been defined for the event.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,120 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:43. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual, section 6.</title>
|
||||
</head><body>
|
||||
<h2><a name="section6">6.</a> <tt> </tt>Event Procedures with Side-Effects
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Besides the basic events described in the
|
||||
<a href="m-3.html#.events">preceding sections</a>,
|
||||
another group of--slightly different--events exist and can
|
||||
be handled by user-defined Scheme procedures.<tt> </tt>
|
||||
These events are not related to troff functions, but to a number of
|
||||
other conditions that are encountered when processing documents:
|
||||
<ul>
|
||||
<li>
|
||||
the end of an input line
|
||||
<li>
|
||||
the beginning of a troff input file processed by
|
||||
<i>unroff
|
||||
</i><li>
|
||||
the end of a troff input file
|
||||
<li>
|
||||
startup of the program
|
||||
<li>
|
||||
termination of the program
|
||||
<li>
|
||||
a keyword/value option encountered in the command line.<tt> </tt>
|
||||
</ul>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Among other tasks, these events can be used to generate a prologue and
|
||||
epilogue for each input file.<tt> </tt>
|
||||
In contrast to the events described in the previous section, handlers for
|
||||
these events are called solely for their side-effects.<tt> </tt>
|
||||
Each event handler must be a Scheme procedure.<tt> </tt>
|
||||
Their results are ignored, thus the procedures must have side-effects
|
||||
to be useful.<tt> </tt>
|
||||
Another difference is that more than one event handler can be associated
|
||||
with each request.<tt> </tt>
|
||||
A numeric
|
||||
<i>level
|
||||
</i>(a small integer number) is specified together with each event handler,
|
||||
and when the corresponding event is triggered, all procedures
|
||||
defined for this event are executed in increasing order as indicated by
|
||||
their levels.<tt> </tt>
|
||||
<h2>
|
||||
(defevent <i>event</i> <i>level</i> <i>handler</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Associates the procedure
|
||||
<i>handler
|
||||
</i>with an event and returns the previous event handler registered
|
||||
for this combination of event and level.<tt> </tt>
|
||||
<i>level
|
||||
</i>is an integer between 0 and 99;
|
||||
<i>handler
|
||||
</i>is a procedure, or the literal #f to remove a previously defined handler.<tt> </tt>
|
||||
<i>event
|
||||
</i>indicates the type of event and is one of the following Scheme symbols:
|
||||
<i>line
|
||||
</i>(end of input line),
|
||||
<i>prolog
|
||||
</i>(beginning of input file),
|
||||
<i>epilog
|
||||
</i>(end of input file),
|
||||
<i>start
|
||||
</i>(program start),
|
||||
<i>exit
|
||||
</i>(program termination),
|
||||
<i>option
|
||||
</i>(keyword/value command line option).<tt> </tt>
|
||||
<p>
|
||||
Procedures defined for the events
|
||||
<i>prolog
|
||||
</i>and
|
||||
<i>epilog
|
||||
</i>are called with two string arguments:
|
||||
the path name (as specified by the user) and the file name component of
|
||||
the troff input file whose processing has just begun or finished,
|
||||
or the string ``stdin'' if
|
||||
<i>unroff
|
||||
</i>is taking its input from standard input.<tt> </tt>
|
||||
Procedures defined for the event
|
||||
<i>option
|
||||
</i>are passed the option's name and value as strings.<tt> </tt>
|
||||
All other event procedures are invoked without arguments.<tt> </tt>
|
||||
<i>unroff
|
||||
</i>provides a default handler for
|
||||
<i>option
|
||||
</i>(see the
|
||||
<a href="m-15.html#.options">primitives for options</a>
|
||||
below).<tt> </tt>
|
||||
<p>
|
||||
Example:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
(defevent 'exit 50 ; cleanup on exit
|
||||
(lambda ()
|
||||
...))
|
||||
</pre>
|
||||
</dl>
|
||||
The handler defined in this way will be executed on termination,
|
||||
after any handlers with levels 0-49.<tt> </tt>
|
||||
<h2>
|
||||
(eventdef <i>event</i> <i>level</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Returns the procedure defined as a handler for
|
||||
<i>event
|
||||
</i>and
|
||||
<i>level</i>,
|
||||
or #f if no such handler exists.<tt> </tt>
|
||||
See
|
||||
<i>defevent
|
||||
</i>above for a description of the arguments.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,116 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:44. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual, section 7.</title>
|
||||
</head><body>
|
||||
<h2><a name="section7">7.</a> <tt> </tt>How Troff Input is Processed
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>To be able to write non-trivial event handling procedures, it helps
|
||||
to have a look at how troff input is processed, especially since
|
||||
the parser of
|
||||
<i>unroff
|
||||
</i>works somewhat differently than ordinary troff.<tt> </tt>
|
||||
In particular, the parser cannot blindly rescan the result of
|
||||
handlers for escape sequences or special characters, as these
|
||||
handlers will probably generate text in the
|
||||
<i>target language
|
||||
</i>that cannot be interpreted as troff input any longer.<tt> </tt>
|
||||
Here is a brief overview of the parsing process.<tt> </tt>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Each input line is first scanned for references to troff strings and
|
||||
number registers (this scanning pass will later be referred to as the
|
||||
``expansion phase'').<tt> </tt>
|
||||
For each `\*' or `\n' sequence found in the input line,
|
||||
<i>unroff
|
||||
</i>checks whether a handler for the string or number register has
|
||||
been defined with
|
||||
<i>defstring
|
||||
</i>or
|
||||
<i>defnumreg</i>,
|
||||
and if this is the case, replaces the string or number register
|
||||
reference by the result (or value) of the handler.<tt> </tt>
|
||||
Otherwise, if a handler for the escape sequence `\*' or `\n'
|
||||
proper has been defined, that handler is called.<tt> </tt>
|
||||
Otherwise the reference is left untouched and scanning resumes
|
||||
behind it<a href="m-notes.html#footnote1">[note 1]</a>
|
||||
.<tt> </tt>
|
||||
Comments are recognized in this phase, too, by calling the handler
|
||||
for the `\"' escape sequence if there is one.<tt> </tt>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Next, the parser checks whether the result of the first phase
|
||||
is a request or macro invocation (that is, begins with a period
|
||||
or an apostrophe).<tt> </tt>
|
||||
If this is the case, the arguments are parsed mimicking the
|
||||
behavior of ordinary troff.<tt> </tt>
|
||||
The rules for macro arguments are employed if
|
||||
a handler has been defined
|
||||
for the token after the period with
|
||||
<i>defmacro</i>,
|
||||
else the rules for requests are used.<tt> </tt>
|
||||
The handler for the macro or request is then used, or applied
|
||||
to the arguments if it is a procedure.<tt> </tt>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>If the input line does not contain a request or macro invocation,
|
||||
it is scanned a second time to take care of escape sequences
|
||||
and special characters (for lack of a better term, we will call
|
||||
this phase ``escape parsing'').<tt> </tt>
|
||||
Every escape character reference, special character, and inline
|
||||
equation is replaced by the result (or value) of the event
|
||||
handler registered for it, or left in place if there is no handler.<tt> </tt>
|
||||
Character translations defined by means of
|
||||
<i>defchar
|
||||
</i>are also executed in this phase.<tt> </tt>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Finally, the result of the escape parsing phase or of the request or
|
||||
macro invocation is checked whether it constitutes the end of a
|
||||
sentence, and if so, the handler for this event is called
|
||||
(actually, in the former case, the check is applied before
|
||||
<i>and
|
||||
</i>after the escape parsing and must succeed both times).<tt> </tt>
|
||||
As the final step the line is output, and any handlers for the
|
||||
<i>line
|
||||
</i>event are invoked.<tt> </tt>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>An important thing to note is that the arguments passed to a handler
|
||||
defined for a request or macro are not scanned for escape sequences
|
||||
and special characters.<tt> </tt>
|
||||
Therefore event procedures must explicitly parse their arguments if
|
||||
desired by calling the Scheme primitive
|
||||
<a href="m-8.html#.parse"><i>parse</i></a>
|
||||
(which will be described in the next section).<tt> </tt>
|
||||
Consider, for example, an event procedure associated with a
|
||||
macro ``IP'':
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
(defmacro 'IP
|
||||
(lambda (IP tag . indent)
|
||||
...))
|
||||
</pre>
|
||||
</dl>
|
||||
and a call to the macro with an argument containing a
|
||||
special character:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
.IP \(bu
|
||||
</pre>
|
||||
</dl>
|
||||
As the argument to the event procedure is only scanned for
|
||||
strings and number registers, the variable
|
||||
<i>tag
|
||||
</i>will be bound to the string ``\(bu''.<tt> </tt>
|
||||
Applying
|
||||
<i>parse
|
||||
</i>to the argument will turn it into whatever is the target language
|
||||
representation for the special character ``\(bu'' (that is, the
|
||||
result of the event handler for the special character).<tt> </tt>
|
||||
Whether or not arguments will have to be parsed depends on the
|
||||
particular request or macro; the procedure implementing the request
|
||||
``.tm'', for instance, will print its ``raw'' argument (a sample
|
||||
event handler for the request ``.tm'' is supplied by
|
||||
<i>unroff</i>).<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,175 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:44. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual, section 8.</title>
|
||||
</head><body>
|
||||
<h2><a name="section8">8.</a> <tt> </tt>Calling the Parser
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>The following Scheme primitives are used by event procedures for
|
||||
requests, macros, and escape characters to parse their arguments
|
||||
or to parse lines of text that have been read from an input source.<tt> </tt>
|
||||
Each of the primitives can be invoked with zero or more arguments
|
||||
of type string, symbol, or character.<tt> </tt>
|
||||
The arguments are concatenated to form a Scheme string which is then
|
||||
passed to the parser, and the result is returned as a new string.<tt> </tt>
|
||||
<h2>
|
||||
<a name=".parse">(parse <i>.</i> <i>args</i>)</a></h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive feeds its arguments to the ``escape parsing''
|
||||
pass as described in the previous section.<tt> </tt>
|
||||
It scans its arguments for special characters and escape
|
||||
sequences and replaces them by the corresponding event values
|
||||
(or results), and it executes character translations.<tt> </tt>
|
||||
<h2>
|
||||
<a name=".translate">(translate <i>.</i> <i>args</i>)</a></h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Like
|
||||
<i>parse
|
||||
</i>above, except that only output character translations (defined by calls to
|
||||
<i>defchar</i>)
|
||||
are executed.<tt> </tt>
|
||||
<h2>
|
||||
(parse-expand <i>.</i> <i>args</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive applies the ``expansion parsing'' phase (as described in the
|
||||
previous section) to its arguments.<tt> </tt>
|
||||
Compared to
|
||||
<i>parse</i>,
|
||||
<i>parse-expand
|
||||
</i>is only used rarely, as input lines read in the normal way are
|
||||
scanned for string and number register references anyway.<tt> </tt>
|
||||
The sample implementation supplied by
|
||||
<i>unroff
|
||||
</i>for the requests ``.ds'', ``.as'', and '\*' makes use of this primitive
|
||||
to rescan the contents of user-defined strings upon interpolation.<tt> </tt>
|
||||
<h2>
|
||||
(parse-line <i>.</i> <i>args</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive parses an entire input line, which may contain a call
|
||||
to a request or macro, as described in the previous section.<tt> </tt>
|
||||
The line made up by the primitive's arguments is treated exactly as
|
||||
it if were read from an input file, although it need not have a
|
||||
terminating newline.<tt> </tt>
|
||||
Two places where this primitive is required are the handler for
|
||||
the request ``.so'' and the code that expands user-defined macros.<tt> </tt>
|
||||
<h2>
|
||||
(parse-copy-mode <i>.</i> <i>args</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>The primitive
|
||||
<i>parse-copy-mode
|
||||
</i>parses its arguments in a manner similar to troff ``copy mode''.<tt> </tt>
|
||||
In this mode, escape sequences beginning with '\$' are dealt
|
||||
with (by calling their event procedures), the sequence `\\'
|
||||
is replaced by a single `\', and each occurrence of `\.'
|
||||
is replaced by a period.<tt> </tt>
|
||||
Macro bodies are parsed in copy mode during macro definition and again
|
||||
when the macros are expanded.<tt> </tt>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>The sample implementation of user-defined macros supplied by
|
||||
<i>unroff
|
||||
</i>defines suitable event handlers for the usual
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
\$1 \$2 ...
|
||||
</pre>
|
||||
</dl>
|
||||
escape sequences (there is no limit to the number of arguments,
|
||||
and the groff long name convention may be used to denote an
|
||||
argument number), and in addition for the groff extensions
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
\$0 \$* \$@
|
||||
</pre>
|
||||
</dl>
|
||||
as explained in the
|
||||
<a href="./unroff.1.html">manual page</a>
|
||||
<i>unroff</i>(1).<tt> </tt>
|
||||
<h2>
|
||||
(parse-expression <i>expr</i> <i>fail</i> <i>scale</i>)
|
||||
<br>
|
||||
(parse-expression-rest <i>expr</i> <i>fail</i> <i>scale</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>These primitives evaluate the numeric expression specified by
|
||||
the string argument
|
||||
<i>expr
|
||||
</i>and return the result as an exact number.<tt> </tt>
|
||||
The usual troff expression syntax, operators, and scale
|
||||
indicators are supported.<tt> </tt>
|
||||
If an error occurs during evaluation (for instance, if
|
||||
<i>expr
|
||||
</i>is not a syntactically valid expression),
|
||||
a warning message is displayed and
|
||||
<i>fail
|
||||
</i>(which may be an arbitrary Scheme object) is returned.<tt> </tt>
|
||||
The character argument
|
||||
<i>scale
|
||||
</i>is the default scale indicator, for example `#\m', or `#\u'
|
||||
for basic units.<tt> </tt>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>The primitive
|
||||
<i>parse-expression-rest
|
||||
</i>is identical to
|
||||
<i>parse-expression</i>,
|
||||
except that its return value is a cons cell whose car consists
|
||||
of the result of the evaluation and whose cdr is the rest of
|
||||
<i>expr
|
||||
</i>starting at the character position where parsing of the
|
||||
expression stopped.<tt> </tt>
|
||||
In other words, the primitive evaluates the portion of
|
||||
<i>expr
|
||||
</i>that constitutes a valid expression, and it returns the result
|
||||
and whatever is left over.<tt> </tt>
|
||||
Warning messages are also suppressed, except if an overflow occurs
|
||||
during evaluation.<tt> </tt>
|
||||
<i>parse-expression-rest
|
||||
</i>is useful for tasks like parsing the argument of the escape
|
||||
sequences `\l' and `\L' where an expression is immediately
|
||||
followed by another character.<tt> </tt>
|
||||
Examples:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
(parse-expression "(2+8)/5" 0 #\u) => 2
|
||||
(parse-expression "foo" #f #\u) => #f; prints warning
|
||||
|
||||
(parse-expression-rest "1+1" #f #\u) => (2 . "")
|
||||
(parse-expression-rest "(2+8)/5foo" 0 #\u) => (2 . "foo")
|
||||
(parse-expression-rest "15\&-" 0 #\u) => (15 . "\&-")
|
||||
</pre>
|
||||
</dl>
|
||||
<h2>
|
||||
(char-expression-delimiter? <i>char</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Returns #t if the character argument
|
||||
<i>char
|
||||
</i>is valid as the first character of a numeric expression (e.g. a digit),
|
||||
otherwise #f.<tt> </tt>
|
||||
<h2>
|
||||
(set-scaling! <i>scale</i> <i>factor</i> <i>divisor</i>)
|
||||
<br>
|
||||
(get-scaling <i>scale</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>These primitives set and read the scale factor and divisor for
|
||||
the specified scale indicator.<tt> </tt>
|
||||
<i>scale
|
||||
</i>is the scale indicator (a character);
|
||||
<i>factor
|
||||
</i>and
|
||||
<i>divisor
|
||||
</i>are integers.<tt> </tt>
|
||||
<i>get-scaling
|
||||
</i>returns the scaling for the specified scale indicator as a pair
|
||||
of integers.<tt> </tt>
|
||||
The factors and divisors are initially set to 1 for all scale
|
||||
indicators; they must be assigned useful values by each back-end.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,193 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:45. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual, section 9.</title>
|
||||
</head><body>
|
||||
<h2><a name="section9">9.</a> <tt> </tt>Streams
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Input, output, and storage of text lines in
|
||||
<i>unroff
|
||||
</i>are centered around a new Scheme data type named
|
||||
<i>stream
|
||||
</i>and a set of primitives that work on streams.<tt> </tt>
|
||||
A stream can act as a source (input stream) or as a sink (output
|
||||
stream) for lines of text.<tt> </tt>
|
||||
Streams not only serve as the basis for input and output operations
|
||||
and for the exchange of text with shell commands, but can also be used
|
||||
to temporarily buffer lines of text (e.g. footnotes or tables of
|
||||
contents) and to implement user-defined macros in a simple way.<tt> </tt>
|
||||
Each input or output stream can be connected to one of the
|
||||
following three types of
|
||||
<i>targets</i>:
|
||||
<ul>
|
||||
<li>
|
||||
a file, or the program's standard input or standard output
|
||||
<li>
|
||||
a UNIX pipe connected to a shell running a shell command
|
||||
<li>
|
||||
an internal
|
||||
<i>buffer
|
||||
</i>whose lifetime is limited to that of the current invocation of
|
||||
<i>unroff</i>.<tt> </tt>
|
||||
</ul>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Buffers act similar to (initially empty) files, except that
|
||||
they are not visible from the outside and that they are destroyed
|
||||
automatically on exit of the program.<tt> </tt>
|
||||
Once a buffer has been filled with text through an output stream,
|
||||
it can be reopened and read through an input stream multiple times.<tt> </tt>
|
||||
However, if a buffer is currently written through an output stream,
|
||||
no more streams may refer to the same buffer.<tt> </tt>
|
||||
As the contents of buffers kept in memory, input and output operations
|
||||
on buffers are fast.<tt> </tt>
|
||||
The sample implementation of user-defined macros utilizes buffers
|
||||
to store the macro bodies; a macro can then be expanded simply
|
||||
by redirecting the current input source to the corresponding buffer
|
||||
temporarily.<tt> </tt>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Both the parser and all input and output primitives operate on a
|
||||
<i>current input stream
|
||||
</i>and a
|
||||
<i>current output stream</i>;
|
||||
input and output is always performed using these two streams.<tt> </tt>
|
||||
On startup,
|
||||
<i>unroff
|
||||
</i>initializes the current output stream to either point to
|
||||
standard output or to a newly created output file (usually depending on
|
||||
the value of the
|
||||
<b>document
|
||||
</b>option).<tt> </tt>
|
||||
If the current output stream is assigned the literal #f,
|
||||
output is sent to standard output<a href="m-notes.html#footnote2">[note 2]</a>
|
||||
.<tt> </tt>
|
||||
Likewise, for each input file mentioned in the command line,
|
||||
a stream pointing to that file is created and assigned to
|
||||
the current input stream before the parser starts processing
|
||||
the file.<tt> </tt>
|
||||
The rest of this section lists the Scheme primitives operating
|
||||
on streams.<tt> </tt>
|
||||
<h2>
|
||||
(stream? <i>obj</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>The type predicate for the new data type.<tt> </tt>
|
||||
It returns #t if
|
||||
<i>obj
|
||||
</i>is a member of the type
|
||||
<i>stream</i>,
|
||||
otherwise #f.<tt> </tt>
|
||||
<h2>
|
||||
(input-stream)
|
||||
<br>
|
||||
(output-stream)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Returns the current input stream, or output stream respectively.<tt> </tt>
|
||||
<h2>
|
||||
(open-input-stream <i>target</i>)
|
||||
<br>
|
||||
(open-output-stream <i>target</i>)
|
||||
<br>
|
||||
(append-output-stream <i>target</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>These primitives create a new input stream or output stream pointing
|
||||
to the specified target.<tt> </tt>
|
||||
The argument
|
||||
<i>target
|
||||
</i>is a string or a symbol.<tt> </tt>
|
||||
If the target is enclosed in square brackets, it names a buffer;
|
||||
if it begins with the pipe symbol `|', a pipe to a shell running
|
||||
the rest of the target as a shell command is established; otherwise
|
||||
<i>target
|
||||
</i>is interpreted as a file name.<tt> </tt>
|
||||
<i>append-output-stream
|
||||
</i>rewinds to the end of the specified output buffer or file before
|
||||
the first output operation; it acts like
|
||||
<i>open-output-stream
|
||||
</i>in case of a pipe.<tt> </tt>
|
||||
Examples:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
(let* ((buffer (open-output-stream '[temp]))
|
||||
(pipe (open-input-stream "|ls -l /usr/lib/tmac"))
|
||||
(file (open-input-stream "/etc/passwd")))
|
||||
...)
|
||||
</pre>
|
||||
</dl>
|
||||
<h2>
|
||||
(set-input-stream! <i>stream</i>)
|
||||
<br>
|
||||
(set-output-stream! <i>stream</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>These primitives make the specified stream the
|
||||
<i>current
|
||||
</i>input stream (or output stream respectively).<tt> </tt>
|
||||
<i>stream
|
||||
</i>must be the result of a call to one of the three primitives that
|
||||
open a stream, or #f.<tt> </tt>
|
||||
An error is signaled if
|
||||
<i>set-input-stream!
|
||||
</i>is applied to an output stream or vice versa, or if the stream
|
||||
has been closed in the meantime.<tt> </tt>
|
||||
<h2>
|
||||
(close-stream <i>stream</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Closes the specified stream.<tt> </tt>
|
||||
An error is signaled if the stream is still the current input
|
||||
stream or current output stream.<tt> </tt>
|
||||
Once an output stream pointing to a buffer has been closed, the
|
||||
buffer can be reopened for reading.<tt> </tt>
|
||||
A stream that is no longer reachable is closed automatically
|
||||
during the next run of the garbage collector.<tt> </tt>
|
||||
<h2>
|
||||
(stream-buffer? <i>stream</i>)
|
||||
<br>
|
||||
(stream-file? <i>stream</i>)
|
||||
<br>
|
||||
(stream-pipe? <i>stream</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>These predicates return #t if the specified stream points to a
|
||||
buffer, a file, or a pipe respectively, otherwise #f.<tt> </tt>
|
||||
<h2>
|
||||
(stream-target <i>stream</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive returns the target to which the specified stream
|
||||
points.<tt> </tt>
|
||||
The return value is a string.<tt> </tt>
|
||||
In case of a pipe, the target is truncated at the first space,
|
||||
that is, only the command name is included.<tt> </tt>
|
||||
The target of the current input stream (together with the current
|
||||
line number) is displayed as a prefix of error messages and
|
||||
can also be obtained through the primitive
|
||||
<a href="m-11.html#.substitute"><i>substitute</i></a>
|
||||
described below.<tt> </tt>
|
||||
<h2>
|
||||
(stream-position <i>stream</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Returns the current character position of the specified output stream,
|
||||
that is, the offset at which the next character will be written.<tt> </tt>
|
||||
The return value for input streams is currently always zero.<tt> </tt>
|
||||
This primitive is useful in conjunction with
|
||||
<a href="m-14.html#.file-insertions"><i>file-insertions</i></a>
|
||||
(described below).<tt> </tt>
|
||||
<h2>
|
||||
(stream-string <i>target</i>)
|
||||
</h2>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>This primitive opens an input string to the specified target,
|
||||
reads from the stream until end-of-stream is reached, closes
|
||||
the stream, and returns the concatenation of all the lines that
|
||||
have been read as a string<a href="m-notes.html#footnote3">[note 3]</a>
|
||||
.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:48. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual, footnotes</title>
|
||||
</head><body>
|
||||
<h2><a name="section0">Footnotes</a></h2>
|
||||
<p>
|
||||
<b><a name="footnote1">[1]</a></b> <tt> </tt>Although the result of specific event handlers defined for
|
||||
strings is not rescanned, the handler for `\*' that is supplied by
|
||||
<i>unroff
|
||||
</i>to implement user-defined strings does rescan the contents of
|
||||
a string when it is expanded.<tt> </tt>
|
||||
<p>
|
||||
<b><a name="footnote2">[2]</a></b> <tt> </tt>While #f indicates ``standard output'' when assigned to
|
||||
the current output stream, it is an error to call an input primitive
|
||||
after #f has been assigned to the current
|
||||
<i>input
|
||||
</i>stream.<tt> </tt>
|
||||
This may be considered a mis-feature; the current input and
|
||||
output streams should be treated similarly with respect to
|
||||
standard input and standard output.<tt> </tt>
|
||||
<p>
|
||||
<b><a name="footnote3">[3]</a></b> <tt> </tt><i>stream->string
|
||||
</i>is a misnomer, because the argument of the primitive is not
|
||||
a stream, nor does the primitive actually
|
||||
<i>convert
|
||||
</i>a stream to a string as suggested by the `->' sign.<tt> </tt>
|
||||
<p>
|
||||
<b><a name="footnote4">[4]</a></b> <tt> </tt>The primitive
|
||||
<i>error-port
|
||||
</i>should actually be provided by Elk proper to avoid having to
|
||||
reinvent it for each extensible application.<tt> </tt>
|
||||
<p>
|
||||
<b><a name="footnote5">[5]</a></b> <tt> </tt>The primitive
|
||||
<i>parse-triple
|
||||
</i>should probably return a proper list rather than an improper list.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:41. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff Programmer's Manual</title>
|
||||
</head><body>
|
||||
<!-- $Revision: 1.12 $ -->
|
||||
<h1>
|
||||
unroff 1.0 Programmer's Manual
|
||||
</h1>
|
||||
<p>
|
||||
<i>Oliver Laumann
|
||||
<br>
|
||||
</i><hr>
|
||||
<p>
|
||||
<i>unroff
|
||||
</i>is a programmable, extensible troff translator that is useful for
|
||||
converting documents with embedded troff markup into another
|
||||
format.<tt> </tt>
|
||||
Although
|
||||
<i>unroff
|
||||
</i>has been designed with higher-level, structure-oriented target
|
||||
languages (such as SGML) in mind, it fully supports all constructs
|
||||
and idiosyncrasies of ordinary troff, so that even low-level
|
||||
formatting requests can be handled correctly if desired.<tt> </tt>
|
||||
<p>
|
||||
 <tt> </tt> <tt> </tt> <tt> </tt>Translation rules for a specific output format and knowledge about
|
||||
existing troff macro packages are not hard-wired in
|
||||
<i>unroff</i>,
|
||||
instead, the translation is controlled by a user-supplied set
|
||||
of procedures written in the
|
||||
<a href="http://www-swiss.ai.mit.edu/scheme-home.html"><i>Scheme</i> programming language</a>.<tt> </tt>
|
||||
Interpretation of the procedures is facilitated by a full Scheme
|
||||
interpreted embedded in
|
||||
<i>unroff</i>.<tt> </tt>
|
||||
This manual describes the Scheme primitives provided by
|
||||
<i>unroff
|
||||
</i>that can be used to customize the translation rules implemented
|
||||
by existing back-ends and to write new ones for new output formats.<tt> </tt>
|
||||
<hr>
|
||||
<h2>Table of Contents</h2>
|
||||
<ul><li><a href="m-1.html#section1">1. </a>
|
||||
Additional Documentation
|
||||
<li><a href="m-2.html#section2">2. </a>
|
||||
Where to Place Scheme Code?
|
||||
<li><a href="m-3.html#section3">3. </a>
|
||||
<a name=".events">Events and Event Handling</a>
|
||||
<li><a href="m-4.html#section4">4. </a>
|
||||
Defining Event Handlers
|
||||
<li><a href="m-5.html#section5">5. </a>
|
||||
Querying Event Handlers
|
||||
<li><a href="m-6.html#section6">6. </a>
|
||||
Event Procedures with Side-Effects
|
||||
<li><a href="m-7.html#section7">7. </a>
|
||||
How Troff Input is Processed
|
||||
<li><a href="m-8.html#section8">8. </a>
|
||||
Calling the Parser
|
||||
<li><a href="m-9.html#section9">9. </a>
|
||||
Streams
|
||||
<li><a href="m-10.html#section10">10. </a>
|
||||
Input and Output Primitives
|
||||
<li><a href="m-11.html#section11">11. </a>
|
||||
String Functions
|
||||
<li><a href="m-12.html#section12">12. </a>
|
||||
Tables
|
||||
<li><a href="m-13.html#section13">13. </a>
|
||||
Miscellaneous Primitives
|
||||
<li><a href="m-14.html#section14">14. </a>
|
||||
File Insertions
|
||||
<li><a href="m-15.html#section15">15. </a>
|
||||
Utilities for Back-Ends
|
||||
<li><a href="m-notes.html#section0">Footnotes</a>
|
||||
</ul>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,218 @@
|
|||
.\" $Revision: 1.6 $
|
||||
.ds Ve 1.0
|
||||
.\"
|
||||
.de Ex
|
||||
.RS
|
||||
.nf
|
||||
.nr sf \\n(.f
|
||||
.if !\\n(.U \{\
|
||||
. ft B
|
||||
. if n .sp
|
||||
. if t .sp .5 \}
|
||||
..
|
||||
.de Ee
|
||||
.if !\\n(.U \{\
|
||||
. ft \\n(sf
|
||||
. if n .sp
|
||||
. if t .sp .5 \}
|
||||
.fi
|
||||
.RE
|
||||
..
|
||||
.\"
|
||||
.de Sd
|
||||
.ds Dt \\$2
|
||||
..
|
||||
.\"
|
||||
.Sd $Date: 1995/08/23 12:07:31 $
|
||||
.TH unroff-html-man 1 "\*(Dt"
|
||||
.SH NAME
|
||||
unroff-html-man \- back-end to translate manual pages to HTML 2.0
|
||||
.SH SYNOPSIS
|
||||
.B unroff
|
||||
[
|
||||
.B \-fhtml
|
||||
] [
|
||||
.B \-man
|
||||
] [
|
||||
.IR file " | " option...\&
|
||||
]
|
||||
.SH OVERVIEW
|
||||
When called with the
|
||||
.B \-fhtml
|
||||
and
|
||||
.B \-man
|
||||
options, the troff translator
|
||||
.I unroff
|
||||
loads the back-end for converting UNIX manual pages to the Hypertext
|
||||
Markup Language (HTML) version 2.0.
|
||||
.LP
|
||||
Please read
|
||||
.BR unroff (1)
|
||||
first for an overview of the Scheme-based, programmable troff translator
|
||||
and for a description of the generic options that exist in
|
||||
addition to
|
||||
.B \-f
|
||||
and
|
||||
.BR \-m .
|
||||
The translation of basic troff requests, special characters,
|
||||
escape sequences, etc. as well as the HTML-specific options
|
||||
are described in
|
||||
.BR unroff-html (1).
|
||||
For information about extending and programming
|
||||
.I unroff
|
||||
also refer to the
|
||||
.IR "Unroff Programmer's Manual" .
|
||||
.SH OPTIONS
|
||||
The
|
||||
.B \-man
|
||||
extension provides one new keyword/value option in addition to
|
||||
those listed in
|
||||
.BR unroff (1)
|
||||
and
|
||||
.BR unroff-html (1):
|
||||
.TP
|
||||
.BR do-signature " (boolean)"
|
||||
If set to 1, a signature is appended to each output file.
|
||||
The signature is composed of a horizontal rule and a one-line
|
||||
message consisting of version information and date and time.
|
||||
The default value of this option is 1.
|
||||
.SH DESCRIPTION
|
||||
.I unroff
|
||||
reads and parses its input files (each containing a UNIX manual
|
||||
page); the HTML output is written to a separate output file
|
||||
for each input file.
|
||||
The name of an output file is obtained by appending the
|
||||
suffix \*(lq.html\*(rq to the name of the corresponding input
|
||||
file.
|
||||
Any
|
||||
.B document
|
||||
option is ignored if input files are named in the command line.
|
||||
As usual, the special file name
|
||||
.RB ` \- '
|
||||
can be used to interpolate standard input.
|
||||
.LP
|
||||
If no file name is given in the command line, a manual page
|
||||
is read from standard input and sent to standard output,
|
||||
unless the
|
||||
.B document
|
||||
option is given, in which case the HTML output is written
|
||||
to the specified file (with \*(lq.html\*(rq appended).
|
||||
Example:
|
||||
this call to
|
||||
.I unroff
|
||||
translates two manual pages and creates two corresponding output files,
|
||||
.B cc.1.html
|
||||
and
|
||||
.BR send.2.html :
|
||||
.Ex
|
||||
unroff \-fhtml \-man /usr/man/man1/cc.1 /usr/man/man2/send.2
|
||||
.Ee
|
||||
.LP
|
||||
The following
|
||||
.B \-man
|
||||
macros are recognized and translated (in addition to any user-defined macros):
|
||||
.LP
|
||||
.nf
|
||||
.if !\n(.U .ta 8n 16n 24n 32n 40n 48n 56n
|
||||
.TH .SH .SS .I .B .SB .SM
|
||||
.BI .BR .IB .IR .RB .RI .TP
|
||||
.IP .HP .RS .RE .LP .PP .P
|
||||
.fi
|
||||
.LP
|
||||
In addition, the following Sun-specific macros are silently
|
||||
ignored (.TX generates an informational message containing
|
||||
its argument):
|
||||
.LP
|
||||
.nf
|
||||
.TX .IX .DT .PD .UC
|
||||
.fi
|
||||
.LP
|
||||
The following predefined troff strings are recognized
|
||||
(\e*S expands to the empty string):
|
||||
.LP
|
||||
.nf
|
||||
\e*R \e*S \e*(lq \e*(rq
|
||||
.fi
|
||||
.LP
|
||||
The title of each HTML document generated is obtained by calling
|
||||
the primitive
|
||||
.I substitute
|
||||
(as explained in the Programmer's Manual) with the value of the option
|
||||
.B title
|
||||
and the first and second arguments passed to the initial call to
|
||||
.BR .TH .
|
||||
Thus, the specifiers \*(lq%1%\*(rq and \*(lq%2%\*(rq can be used
|
||||
in the option to interpolate the command (or whatever is documented
|
||||
in the manual page) and the section number.
|
||||
If
|
||||
.B title
|
||||
has not been specified, the string \*(lqManual page for %1%(%2%)\*(rq
|
||||
is taken.
|
||||
As generating the HTML title element is deferred until the call to
|
||||
.BR .TH ,
|
||||
any macros or other troff requests that produce output must not be
|
||||
used before the initial
|
||||
.BR .TH .
|
||||
.LP
|
||||
HTML header elements <h2> and <h3> are created for
|
||||
.B .SH
|
||||
and
|
||||
.B .SS
|
||||
requests.
|
||||
The markup created for the initial NAME section differs in that the
|
||||
contents of the section (usually a single line) is itself placed
|
||||
inside a header element.
|
||||
.LP
|
||||
The font switching macros are based on changes to the fonts `R',
|
||||
`I', and `B', as explained under FONTS in
|
||||
.BR unroff-html (1).
|
||||
Of course, this fails if the fonts (which are mounted on startup)
|
||||
are unmounted by explicit
|
||||
.B .fp
|
||||
requests.
|
||||
As HTML is lacking the concept of text size, the macro
|
||||
.B .SB
|
||||
is just an alias for
|
||||
.BR .B ,
|
||||
and
|
||||
.B .SM
|
||||
simply echoes its arguments.
|
||||
.LP
|
||||
The translation rules for
|
||||
.B .TP
|
||||
and
|
||||
.B .IP
|
||||
employ a heuristic to determine whether to generate a definition
|
||||
list or an unordered list:
|
||||
if the first in a sequence of tagged/indented paragraph macros is
|
||||
called with a tag consisting of the special character \e(bu, a
|
||||
definition list is begun, otherwise an unordered list.
|
||||
Subsequent invocations cause the list style to change if appropriate.
|
||||
Use of tagged paragraphs inside non-filled (pre-formatted) text
|
||||
violates the HTML definition and should be avoided.
|
||||
A warning message is printed in this and other questionable situations.
|
||||
.LP
|
||||
As hanging tags cannot be realized with HTML 2.0,
|
||||
a kludge is used for the
|
||||
.B .HP
|
||||
(hanging paragraph) macro:
|
||||
the macro starts a definition list (as does the ordinary
|
||||
.BR .TP
|
||||
macro), and everything up to the next request that causes a break
|
||||
is placed inside the definition tag.
|
||||
This method obviously fails if no break occurs in subsequent lines,
|
||||
but it works for the common, idiomatic use of hanging paragraphs
|
||||
in manual pages.
|
||||
.SH "SEE ALSO"
|
||||
.BR unroff (1),
|
||||
.BR unroff-html (1),
|
||||
.BR troff (1),
|
||||
.BR man "(5 or 7)."
|
||||
.LP
|
||||
Unroff Programmer's Manual.
|
||||
.LP
|
||||
http://www.informatik.uni-bremen.de/~net/unroff
|
||||
.LP
|
||||
Berners-Lee, Connolly, et al.,
|
||||
HyperText Markup Language Specification\(em2.0,
|
||||
Internet Draft, Internet Engineering Task Force.
|
||||
|
|
@ -0,0 +1,208 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:25. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<!-- $Revision: 1.6 $ -->
|
||||
<title>Manual page for unroff-html-man(1)</title>
|
||||
</head>
|
||||
<body>
|
||||
<h2>
|
||||
unroff-html-man - back-end to translate manual pages to HTML 2.0
|
||||
<hr></h2>
|
||||
<h2>SYNOPSIS</h2>
|
||||
<b>unroff
|
||||
</b>[
|
||||
<b>-fhtml
|
||||
</b>] [
|
||||
<b>-man
|
||||
</b>] [
|
||||
<i>file</i> | <i>option...
|
||||
</i>]
|
||||
<h2>OVERVIEW</h2>
|
||||
When called with the
|
||||
<b>-fhtml
|
||||
</b>and
|
||||
<b>-man
|
||||
</b>options, the troff translator
|
||||
<i>unroff
|
||||
</i>loads the back-end for converting UNIX manual pages to the Hypertext
|
||||
Markup Language (HTML) version 2.0.<tt> </tt>
|
||||
<p>
|
||||
Please read
|
||||
<b>unroff</b>(1)
|
||||
first for an overview of the Scheme-based, programmable troff translator
|
||||
and for a description of the generic options that exist in
|
||||
addition to
|
||||
<b>-f
|
||||
</b>and
|
||||
<b>-m</b>.<tt> </tt>
|
||||
The translation of basic troff requests, special characters,
|
||||
escape sequences, etc. as well as the HTML-specific options
|
||||
are described in
|
||||
<b>unroff-html</b>(1).<tt> </tt>
|
||||
For information about extending and programming
|
||||
<i>unroff
|
||||
</i>also refer to the
|
||||
<i>Unroff Programmer's Manual</i>.<tt> </tt>
|
||||
<h2>OPTIONS</h2>
|
||||
The
|
||||
<b>-man
|
||||
</b>extension provides one new keyword/value option in addition to
|
||||
those listed in
|
||||
<b>unroff</b>(1)
|
||||
and
|
||||
<b>unroff-html</b>(1):
|
||||
<dl>
|
||||
<dt><b>do-signature</b> (boolean)
|
||||
<dd>
|
||||
If set to 1, a signature is appended to each output file.<tt> </tt>
|
||||
The signature is composed of a horizontal rule and a one-line
|
||||
message consisting of version information and date and time.<tt> </tt>
|
||||
The default value of this option is 1.<tt> </tt>
|
||||
</dl>
|
||||
<h2>DESCRIPTION</h2>
|
||||
<i>unroff
|
||||
</i>reads and parses its input files (each containing a UNIX manual
|
||||
page); the HTML output is written to a separate output file
|
||||
for each input file.<tt> </tt>
|
||||
The name of an output file is obtained by appending the
|
||||
suffix ``.html'' to the name of the corresponding input
|
||||
file.<tt> </tt>
|
||||
Any
|
||||
<b>document
|
||||
</b>option is ignored if input files are named in the command line.<tt> </tt>
|
||||
As usual, the special file name
|
||||
`<b>-</b>'
|
||||
can be used to interpolate standard input.<tt> </tt>
|
||||
<p>
|
||||
If no file name is given in the command line, a manual page
|
||||
is read from standard input and sent to standard output,
|
||||
unless the
|
||||
<b>document
|
||||
</b>option is given, in which case the HTML output is written
|
||||
to the specified file (with ``.html'' appended).<tt> </tt>
|
||||
Example:
|
||||
this call to
|
||||
<i>unroff
|
||||
</i>translates two manual pages and creates two corresponding output files,
|
||||
<b>cc.1.html
|
||||
</b>and
|
||||
<b>send.2.html</b>:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
unroff -fhtml -man /usr/man/man1/cc.1 /usr/man/man2/send.2
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
The following
|
||||
<b>-man
|
||||
</b>macros are recognized and translated (in addition to any user-defined macros):
|
||||
<p>
|
||||
<pre>
|
||||
.TH .SH .SS .I .B .SB .SM
|
||||
.BI .BR .IB .IR .RB .RI .TP
|
||||
.IP .HP .RS .RE .LP .PP .P
|
||||
</pre>
|
||||
<p>
|
||||
In addition, the following Sun-specific macros are silently
|
||||
ignored (.TX generates an informational message containing
|
||||
its argument):
|
||||
<p>
|
||||
<pre>
|
||||
.TX .IX .DT .PD .UC
|
||||
</pre>
|
||||
<p>
|
||||
The following predefined troff strings are recognized
|
||||
(\*S expands to the empty string):
|
||||
<p>
|
||||
<pre>
|
||||
\*R \*S \*(lq \*(rq
|
||||
</pre>
|
||||
<p>
|
||||
The title of each HTML document generated is obtained by calling
|
||||
the primitive
|
||||
<i>substitute
|
||||
</i>(as explained in the Programmer's Manual) with the value of the option
|
||||
<b>title
|
||||
</b>and the first and second arguments passed to the initial call to
|
||||
<b>.TH</b>.<tt> </tt>
|
||||
Thus, the specifiers ``%1%'' and ``%2%'' can be used
|
||||
in the option to interpolate the command (or whatever is documented
|
||||
in the manual page) and the section number.<tt> </tt>
|
||||
If
|
||||
<b>title
|
||||
</b>has not been specified, the string ``Manual page for %1%(%2%)''
|
||||
is taken.<tt> </tt>
|
||||
As generating the HTML title element is deferred until the call to
|
||||
<b>.TH</b>,
|
||||
any macros or other troff requests that produce output must not be
|
||||
used before the initial
|
||||
<b>.TH</b>.<tt> </tt>
|
||||
<p>
|
||||
HTML header elements <h2> and <h3> are created for
|
||||
<b>.SH
|
||||
</b>and
|
||||
<b>.SS
|
||||
</b>requests.<tt> </tt>
|
||||
The markup created for the initial NAME section differs in that the
|
||||
contents of the section (usually a single line) is itself placed
|
||||
inside a header element.<tt> </tt>
|
||||
<p>
|
||||
The font switching macros are based on changes to the fonts `R',
|
||||
`I', and `B', as explained under FONTS in
|
||||
<b>unroff-html</b>(1).<tt> </tt>
|
||||
Of course, this fails if the fonts (which are mounted on startup)
|
||||
are unmounted by explicit
|
||||
<b>.fp
|
||||
</b>requests.<tt> </tt>
|
||||
As HTML is lacking the concept of text size, the macro
|
||||
<b>.SB
|
||||
</b>is just an alias for
|
||||
<b>.B</b>,
|
||||
and
|
||||
<b>.SM
|
||||
</b>simply echoes its arguments.<tt> </tt>
|
||||
<p>
|
||||
The translation rules for
|
||||
<b>.TP
|
||||
</b>and
|
||||
<b>.IP
|
||||
</b>employ a heuristic to determine whether to generate a definition
|
||||
list or an unordered list:
|
||||
if the first in a sequence of tagged/indented paragraph macros is
|
||||
called with a tag consisting of the special character \(bu, a
|
||||
definition list is begun, otherwise an unordered list.<tt> </tt>
|
||||
Subsequent invocations cause the list style to change if appropriate.<tt> </tt>
|
||||
Use of tagged paragraphs inside non-filled (pre-formatted) text
|
||||
violates the HTML definition and should be avoided.<tt> </tt>
|
||||
A warning message is printed in this and other questionable situations.<tt> </tt>
|
||||
<p>
|
||||
As hanging tags cannot be realized with HTML 2.0,
|
||||
a kludge is used for the
|
||||
<b>.HP
|
||||
</b>(hanging paragraph) macro:
|
||||
the macro starts a definition list (as does the ordinary
|
||||
<b>.TP
|
||||
</b>macro), and everything up to the next request that causes a break
|
||||
is placed inside the definition tag.<tt> </tt>
|
||||
This method obviously fails if no break occurs in subsequent lines,
|
||||
but it works for the common, idiomatic use of hanging paragraphs
|
||||
in manual pages.<tt> </tt>
|
||||
<h2>SEE ALSO</h2>
|
||||
<b>unroff</b>(1),
|
||||
<b>unroff-html</b>(1),
|
||||
<b>troff</b>(1),
|
||||
<b>man</b>(5 or 7).<tt> </tt>
|
||||
<p>
|
||||
Unroff Programmer's Manual.<tt> </tt>
|
||||
<p>
|
||||
http://www.informatik.uni-bremen.de/~net/unroff
|
||||
<p>
|
||||
Berners-Lee, Connolly, et al.,
|
||||
HyperText Markup Language Specification--2.0,
|
||||
Internet Draft, Internet Engineering Task Force.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996.
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,355 @@
|
|||
%!PS-Adobe-3.0
|
||||
%%Creator: groff version 1.09
|
||||
%%CreationDate: Thu Mar 21 19:29:58 1996
|
||||
%%DocumentNeededResources: font Times-Roman
|
||||
%%+ font Times-Bold
|
||||
%%+ font Times-Italic
|
||||
%%DocumentSuppliedResources: procset grops 1.09 0
|
||||
%%Pages: 2
|
||||
%%PageOrder: Ascend
|
||||
%%Orientation: Portrait
|
||||
%%EndComments
|
||||
%%BeginProlog
|
||||
%%BeginResource: procset grops 1.09 0
|
||||
/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
|
||||
/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
|
||||
}bind 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
|
||||
/FL{
|
||||
currentgray exch setgray fill setgray
|
||||
}bind def
|
||||
/BL/fill load def
|
||||
/LW/setlinewidth 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
|
||||
}bind def
|
||||
/PEND{
|
||||
clear
|
||||
countdictstack CNT sub{end}repeat
|
||||
level1 restore
|
||||
}bind def
|
||||
end def
|
||||
/setpacking where{
|
||||
pop
|
||||
setpacking
|
||||
}if
|
||||
%%EndResource
|
||||
%%IncludeResource: font Times-Roman
|
||||
%%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 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron
|
||||
/Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.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
|
||||
/Times-Roman@0 ENC0/Times-Roman RE
|
||||
%%EndProlog
|
||||
%%Page: 1 1
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 308.26(f-html-man\(1\) unrof)-.25
|
||||
F(f-html-man\(1\))-.25 E/F1 9/Times-Bold@0 SF -.18(NA)72 84 S(ME).18 E
|
||||
F0(unrof)108 96 Q
|
||||
(f-html-man \255 back-end to translate manual pages to HTML 2.0)-.25 E
|
||||
F1(SYNOPSIS)72 112.8 Q/F2 10/Times-Bold@0 SF(unr)108 124.8 Q(off)-.18 E
|
||||
F0([)2.5 E F2(\255fhtml)2.5 E F0 2.5(][)2.5 G F2(\255man)A F0 2.5(][)2.5
|
||||
G/F3 10/Times-Italic@0 SF(\214le)A F0(|)2.68 E F3(option...)2.73 E F0(])
|
||||
2.5 E F1 -.45(OV)72 141.6 S(ER).45 E(VIEW)-.495 E F0 .531
|
||||
(When called with the)108 153.6 R F2(\255fhtml)3.031 E F0(and)3.031 E F2
|
||||
(\255man)3.031 E F0 .531(options, the trof)3.031 F 3.031(ft)-.25 G
|
||||
(ranslator)-3.031 E F3(unr)3.03 E(of)-.45 E(f)-.18 E F0 .53
|
||||
(loads the back-end for con)3.03 F -.15(ve)-.4 G(rt-).15 E
|
||||
(ing UNIX manual pages to the Hyperte)108 165.6 Q
|
||||
(xt Markup Language \(HTML\) v)-.15 E(ersion 2.0.)-.15 E .984
|
||||
(Please read)108 182.4 R F2(unr)3.484 E(off)-.18 E F0 .984
|
||||
(\(1\) \214rst for an o)B -.15(ve)-.15 G(rvie).15 E 3.484(wo)-.25 G
|
||||
3.484(ft)-3.484 G .984(he Scheme-based, programmable trof)-3.484 F 3.484
|
||||
(ft)-.25 G .984(ranslator and for a)-3.484 F 2.17
|
||||
(description of the generic options that e)108 194.4 R 2.169
|
||||
(xist in addition to)-.15 F F2<ad66>4.669 E F0(and)4.669 E F2<ad6d>4.669
|
||||
E F0 7.169(.T)C 2.169(he translation of basic trof)-7.169 F(f)-.25 E
|
||||
.786(requests, special characters, escape sequences, etc. as well as th\
|
||||
e HTML-speci\214c options are described in)108 206.4 R F2(unr)108 218.4
|
||||
Q(off-html)-.18 E F0 3.916(\(1\). F)B 1.416(or information about e)-.15
|
||||
F 1.416(xtending and programming)-.15 F F3(unr)3.915 E(of)-.45 E(f)-.18
|
||||
E F0 1.415(also refer to the)3.915 F F3(Unr)3.915 E(of)-.45 E 3.915(fP)
|
||||
-.18 G -.45(ro)-3.915 G(-).45 E(gr)108 230.4 Q(ammer')-.15 E 2.5(sM)-.4
|
||||
G(anual)-2.5 E F0(.).51 E F1(OPTIONS)72 247.2 Q F0(The)108 259.2 Q F2
|
||||
(\255man)3.474 E F0 -.15(ex)3.474 G .974(tension pro).15 F .974
|
||||
(vides one ne)-.15 F 3.474(wk)-.25 G -.15(ey)-3.574 G -.1(wo).15 G(rd/v)
|
||||
.1 E .974(alue option in addition to those listed in)-.25 F F2(unr)3.474
|
||||
E(off)-.18 E F0 .974(\(1\) and)B F2(unr)108 271.2 Q(off-html)-.18 E F0
|
||||
(\(1\):)A F2(do-signatur)108 288 Q(e)-.18 E F0(\(boolean\))2.5 E .537
|
||||
(If set to 1, a signature is appended to each output \214le.)144 300 R
|
||||
.537(The signature is composed of a horizontal)5.537 F 1.641
|
||||
(rule and a one-line message consisting of v)144 312 R 1.642
|
||||
(ersion information and date and time.)-.15 F 1.642(The def)6.642 F
|
||||
(ault)-.1 E -.25(va)144 324 S(lue of this option is 1.).25 E F1
|
||||
(DESCRIPTION)72 340.8 Q F3(unr)108 352.8 Q(of)-.45 E(f)-.18 E F0 .566(r\
|
||||
eads and parses its input \214les \(each containing a UNIX manual page\
|
||||
\); the HTML output is written)3.067 F .476
|
||||
(to a separate output \214le for each input \214le.)108 364.8 R .476
|
||||
(The name of an output \214le is obtained by appending the suf)5.476 F
|
||||
<8c78>-.25 E 1.436
|
||||
(\231.html\232 to the name of the corresponding input \214le.)108 376.8
|
||||
R(An)6.435 E(y)-.15 E F2(document)3.935 E F0 1.435
|
||||
(option is ignored if input \214les are)3.935 F
|
||||
(named in the command line.)108 388.8 Q
|
||||
(As usual, the special \214le name `)5 E F2<ad>A F0 2.5('c)C
|
||||
(an be used to interpolate standard input.)-2.5 E .011
|
||||
(If no \214le name is gi)108 405.6 R -.15(ve)-.25 G 2.511(ni).15 G 2.511
|
||||
(nt)-2.511 G .012(he command line, a manual page is read from standard \
|
||||
input and sent to standard)-2.511 F .227(output, unless the)108 417.6 R
|
||||
F2(document)2.727 E F0 .227(option is gi)2.727 F -.15(ve)-.25 G .227
|
||||
(n, in which case the HTML output is written to the speci\214ed \214le)
|
||||
.15 F .823(\(with \231.html\232 appended\).)108 429.6 R .823
|
||||
(Example: this call to)5.823 F F3(unr)3.323 E(of)-.45 E(f)-.18 E F0 .823
|
||||
(translates tw)3.323 F 3.323(om)-.1 G .824(anual pages and creates tw)
|
||||
-3.323 F 3.324(oc)-.1 G(orre-)-3.324 E(sponding output \214les,)108
|
||||
441.6 Q F2(cc.1.html)2.5 E F0(and)2.5 E F2(send.2.html)2.5 E F0(:)A F2
|
||||
(unr)154 459.6 Q
|
||||
(off \255fhtml \255man /usr/man/man1/cc.1 /usr/man/man2/send.2)-.18 E F0
|
||||
(The follo)108 482.4 Q(wing)-.25 E F2(\255man)2.5 E F0
|
||||
(macros are recognized and translated \(in addition to an)2.5 E 2.5(yu)
|
||||
-.15 G(ser)-2.5 E(-de\214ned macros\):)-.2 E 21.67(.TH .SH)148 499.2 R
|
||||
23.88(.SS .I)24.72 F 28.33(.B .SB)34.17 F(.SM)25.27 E 25(.BI .BR)148
|
||||
511.2 R 25(.IB .IR .RB)24.16 F 25(.RI .TP)24.16 F 26.11(.IP .HP)148
|
||||
523.2 R 22.77(.RS .RE)24.72 F 23.33(.LP .PP)24.72 F(.P)26.38 E 1.097
|
||||
(In addition, the follo)108 540 R 1.097(wing Sun-speci\214c macros are \
|
||||
silently ignored \(.TX generates an informational mes-)-.25 F
|
||||
(sage containing its ar)108 552 Q(gument\):)-.18 E 21.67(.TX .IX)148
|
||||
568.8 R 21.67(.DT .PD)26.95 F(.UC)24.72 E(The follo)108 585.6 Q
|
||||
(wing prede\214ned trof)-.25 E 2.5(fs)-.25 G
|
||||
(trings are recognized \(\\*S e)-2.5 E(xpands to the empty string\):)
|
||||
-.15 E 23.05(\\*R \\*S)148 602.4 R 18.61(\\*\(lq \\*\(rq)26.66 F .267(T\
|
||||
he title of each HTML document generated is obtained by calling the pri\
|
||||
miti)108 619.2 R -.15(ve)-.25 G F3(substitute)2.917 E F0 .267(\(as e)
|
||||
2.767 F .267(xplained in)-.15 F .719(the Programmer')108 631.2 R 3.219
|
||||
(sM)-.55 G .719(anual\) with the v)-3.219 F .718(alue of the option)-.25
|
||||
F F2(title)3.218 E F0 .718(and the \214rst and second ar)3.218 F .718
|
||||
(guments passed to)-.18 F .356(the initial call to)108 643.2 R F2(.TH)
|
||||
2.857 E F0 5.357(.T)C .357(hus, the speci\214ers \231%1%\232 and \231%2\
|
||||
%\232 can be used in the option to interpolate the)-5.357 F .98
|
||||
(command \(or whate)108 655.2 R -.15(ve)-.25 G 3.48(ri).15 G 3.48(sd)
|
||||
-3.48 G .979(ocumented in the manual page\) and the section number)-3.48
|
||||
F 5.979(.I)-.55 G(f)-5.979 E F2(title)3.479 E F0 .979(has not been)3.479
|
||||
F 1.367
|
||||
(speci\214ed, the string \231Manual page for %1%\(%2%\)\232 is tak)108
|
||||
667.2 R 3.867(en. As)-.1 F 1.368(generating the HTML title element is)
|
||||
3.867 F 1.464(deferred until the call to)108 679.2 R F2(.TH)3.964 E F0
|
||||
3.964(,a)C 1.764 -.15(ny m)-3.964 H 1.464(acros or other trof).15 F
|
||||
3.964(fr)-.25 G 1.464(equests that produce output must not be used)
|
||||
-3.964 F(before the initial)108 691.2 Q F2(.TH)2.5 E F0(.)A .512
|
||||
(HTML header elements <h2> and <h3> are created for)108 708 R F2(.SH)
|
||||
3.012 E F0(and)3.012 E F2(.SS)3.012 E F0 3.013(requests. The)3.013 F
|
||||
.513(markup created for the)3.013 F .037(initial N)108 720 R .037
|
||||
(AME section dif)-.35 F .037(fers in that the contents of the section \
|
||||
\(usually a single line\) is itself placed inside a)-.25 F 203.72
|
||||
(1995/08/23 1)283.22 768 R EP
|
||||
%%Page: 2 2
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 308.26(f-html-man\(1\) unrof)-.25
|
||||
F(f-html-man\(1\))-.25 E(header element.)108 84 Q(The font switching ma\
|
||||
cros are based on changes to the fonts `R', `I', and `B', as e)108 100.8
|
||||
Q .001(xplained under FONTS in)-.15 F/F1 10/Times-Bold@0 SF(unr)108
|
||||
112.8 Q(off-html)-.18 E F0 2.709(\(1\). Of)B .208(course, this f)2.709 F
|
||||
.208
|
||||
(ails if the fonts \(which are mounted on startup\) are unmounted by e)
|
||||
-.1 F(xplicit)-.15 E F1(.fp)108 124.8 Q F0 3.173(requests. As)3.173 F
|
||||
.673(HTML is lacking the concept of te)3.173 F .673(xt size, the macro)
|
||||
-.15 F F1(.SB)3.173 E F0 .674(is just an alias for)3.173 F F1(.B)3.174 E
|
||||
F0 3.174(,a)C(nd)-3.174 E F1(.SM)3.174 E F0(simply echoes its ar)108
|
||||
136.8 Q(guments.)-.18 E .12(The translation rules for)108 153.6 R F1
|
||||
(.TP)2.62 E F0(and)2.62 E F1(.IP)2.62 E F0(emplo)2.62 E 2.62(yah)-.1 G
|
||||
.12(euristic to determine whether to generate a de\214nition list or)
|
||||
-2.62 F .116(an unordered list: if the \214rst in a sequence of tagged/\
|
||||
indented paragraph macros is called with a tag consist-)108 165.6 R .362
|
||||
(ing of the special character \\\(b)108 177.6 R .362
|
||||
(u, a de\214nition list is be)-.2 F .362
|
||||
(gun, otherwise an unordered list.)-.15 F .361(Subsequent in)5.361 F -.2
|
||||
(vo)-.4 G(ca-).2 E 2.675
|
||||
(tions cause the list style to change if appropriate.)108 189.6 R 2.676
|
||||
(Use of tagged paragraphs inside non-\214lled \(pre-)7.675 F .446
|
||||
(formatted\) te)108 201.6 R .446
|
||||
(xt violates the HTML de\214nition and should be a)-.15 F -.2(vo)-.2 G
|
||||
2.946(ided. A).2 F -.1(wa)2.945 G .445(rning message is printed in this)
|
||||
.1 F(and other questionable situations.)108 213.6 Q 1.495(As hanging ta\
|
||||
gs cannot be realized with HTML 2.0, a kludge is used for the)108 230.4
|
||||
R F1(.HP)3.995 E F0 1.495(\(hanging paragraph\))3.995 F 1.102
|
||||
(macro: the macro starts a de\214nition list \(as does the ordinary)108
|
||||
242.4 R F1(.TP)3.602 E F0 1.101(macro\), and e)3.602 F -.15(ve)-.25 G
|
||||
1.101(rything up to the ne).15 F(xt)-.15 E 1.524
|
||||
(request that causes a break is placed inside the de\214nition tag.)108
|
||||
254.4 R 1.524(This method ob)6.524 F 1.524(viously f)-.15 F 1.525
|
||||
(ails if no break)-.1 F .98(occurs in subsequent lines, b)108 266.4 R
|
||||
.98(ut it w)-.2 F .98
|
||||
(orks for the common, idiomatic use of hanging paragraphs in manual)-.1
|
||||
F(pages.)108 278.4 Q/F2 9/Times-Bold@0 SF(SEE ALSO)72 295.2 Q F1(unr)108
|
||||
307.2 Q(off)-.18 E F0(\(1\),)A F1(unr)2.5 E(off-html)-.18 E F0(\(1\),)A
|
||||
F1(tr)2.5 E(off)-.18 E F0(\(1\),)A F1(man)2.5 E F0(\(5 or 7\).)A(Unrof)
|
||||
108 324 Q 2.5(fP)-.25 G(rogrammer')-2.5 E 2.5(sM)-.55 G(anual.)-2.5 E
|
||||
(http://www)108 340.8 Q(.informatik.uni-bremen.de/~net/unrof)-.65 E(f)
|
||||
-.25 E 1.998(Berners-Lee, Connolly)108 357.6 R 4.498(,e)-.65 G 4.498(ta)
|
||||
-4.498 G 1.998(l., HyperT)-4.498 F -.15(ex)-.7 G 4.498(tM).15 G 1.998
|
||||
(arkup Language Speci\214cation\2122.0, Internet Draft, Internet)-4.498
|
||||
F(Engineering T)108 369.6 Q(ask F)-.8 E(orce.)-.15 E 203.72
|
||||
(1995/08/23 2)283.22 768 R EP
|
||||
%%Trailer
|
||||
end
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,324 @@
|
|||
.\" $Revision: 1.8 $
|
||||
.ds Ve 1.0
|
||||
.\"
|
||||
.de Ex
|
||||
.RS
|
||||
.nf
|
||||
.nr sf \\n(.f
|
||||
.if !\\n(.U \{\
|
||||
. ft B
|
||||
. if n .sp
|
||||
. if t .sp .5 \}
|
||||
..
|
||||
.de Ee
|
||||
.if !\\n(.U \{\
|
||||
. ft \\n(sf
|
||||
. if n .sp
|
||||
. if t .sp .5 \}
|
||||
.fi
|
||||
.RE
|
||||
..
|
||||
.\"
|
||||
.de Sd
|
||||
.ds Dt \\$2
|
||||
..
|
||||
.\"
|
||||
.Sd $Date: 1995/08/23 12:07:31 $
|
||||
.TH unroff-html-ms 1 "\*(Dt"
|
||||
.SH NAME
|
||||
unroff-html-ms \- back-end to translate `ms' documents to HTML 2.0
|
||||
.SH SYNOPSIS
|
||||
.B unroff
|
||||
[
|
||||
.B \-fhtml
|
||||
] [
|
||||
.B \-ms
|
||||
] [
|
||||
.IR file " | " option...\&
|
||||
]
|
||||
.SH OVERVIEW
|
||||
When called with the
|
||||
.B \-fhtml
|
||||
and
|
||||
.B \-ms
|
||||
options, the troff translator
|
||||
.I unroff
|
||||
loads the back-end for converting \*(lqms\*(rq documents to the Hypertext
|
||||
Markup Language (HTML) version 2.0.
|
||||
.LP
|
||||
Please read
|
||||
.BR unroff (1)
|
||||
first for an overview of the Scheme-based, programmable troff translator
|
||||
and for a description of the generic options that exist in
|
||||
addition to
|
||||
.B \-f
|
||||
and
|
||||
.BR \-m .
|
||||
The translation of basic troff requests, special characters,
|
||||
escape sequences, etc. as well as the HTML-specific options
|
||||
are described in
|
||||
.BR unroff-html (1).
|
||||
For information about extending and programming
|
||||
.I unroff
|
||||
also refer to the
|
||||
.IR "Unroff Programmer's Manual" .
|
||||
.SH OPTIONS
|
||||
The
|
||||
.B \-ms
|
||||
extension provides a number of keyword/value options in addition to
|
||||
those listed in
|
||||
.BR unroff (1)
|
||||
and
|
||||
.BR unroff-html (1):
|
||||
.TP
|
||||
.BR signature " (string)"
|
||||
If non-empty, the value of this option together with a <hr> tag is
|
||||
appended to each HTML output file created.
|
||||
The
|
||||
.I substitute
|
||||
Scheme primitive (as described in the Programmer's Manual) is
|
||||
applied to the value of the option, so that date, time, environment
|
||||
variables, etc. can be interpolated.
|
||||
.TP
|
||||
.BR split " (integer)"
|
||||
This option specifies whether to split the output document into
|
||||
individual files for each major section.
|
||||
If a positive integer
|
||||
.I level
|
||||
is assigned to the option, a new output file is opened for each
|
||||
numbered header
|
||||
.RB ( .NH
|
||||
request) with a level equal to or numerically less than
|
||||
.IR level .
|
||||
Use of this feature requires that the
|
||||
.B document
|
||||
option has bee set, as otherwise the HTML document is sent
|
||||
to standard output.
|
||||
The default value is 0, i.\|e. all sections will be written to
|
||||
a single file.
|
||||
.TP
|
||||
.BR toc " (boolean)"
|
||||
If true, a table of contents with a hypertext link for each section
|
||||
is generated automatically and inserted after the front matter
|
||||
(title, author information, abstract) and before the first section.
|
||||
Use of this feature requires a non-zero value for the
|
||||
.B split
|
||||
option.
|
||||
The default is to produce a table of contents if
|
||||
.B split
|
||||
is non-zero.
|
||||
.TP
|
||||
.BR toc-header " (string)"
|
||||
This option defines the contents of the <h2> header element prepended to
|
||||
an automatically generated table of contents.
|
||||
Its value is subject to a call to
|
||||
.IR substitute .
|
||||
The default is the string \*(lqTable of Contents\*(rq.
|
||||
.TP
|
||||
.BR pp-indent " (integer)"
|
||||
The number of non-breakable spaces (as specified by the predefined
|
||||
Scheme variable
|
||||
.IR nbsp )
|
||||
to generate for a paragraph created by the
|
||||
.B .PP
|
||||
macro.
|
||||
The default is 3.
|
||||
This option, as well as
|
||||
.BR signature ,
|
||||
is typically set in the user-preferences file
|
||||
.BR ~/.unroff ,
|
||||
or in a document-specific Scheme file or at the beginning of
|
||||
the document proper.
|
||||
.TP
|
||||
.BR footnotes-header " (string)"
|
||||
The contents of the <h2> header element prepended to the footnotes
|
||||
section that is appended to the document if any footnotes were used,
|
||||
and that also appears in the automatically generated table of contents.
|
||||
As with all string option listed in this section, the
|
||||
.I substitute
|
||||
primitive is applied to the option's value.
|
||||
The default is the string \*(lqFootnotes\*(rq.
|
||||
.TP
|
||||
.BR footnote-reference " (string)"
|
||||
This option controls the text generated by each use of the variable
|
||||
\&`\e**', which produces a footnote (hypertext) reference.
|
||||
Its value is passed to a call to
|
||||
.I substitute
|
||||
with the current footnote number as another argument, so that the
|
||||
specifier \*(lq%1%\*(rq can be used to interpolate the footnote
|
||||
number.
|
||||
The default is the string \*(lq[note %1%]\*(rq.
|
||||
.TP
|
||||
.BR footnote-anchor " (string)"
|
||||
This options specifies the footnote reference that appears at the
|
||||
beginning of each footnote proper if
|
||||
.B .FS
|
||||
was called without an argument.
|
||||
The option's value is passed to a call to
|
||||
.I substitute
|
||||
with the footnote number generated by the last use of `\e**' as
|
||||
another argument.
|
||||
The default is \*(lq[%1%]\*(rq.
|
||||
.SH FILES
|
||||
.I unroff
|
||||
reads and parses an \*(rqms\*(lq document composed of one ore more
|
||||
input files.
|
||||
As usual, the special file name
|
||||
.RB ` \- '
|
||||
can be used to interpolate standard input.
|
||||
If no file name is given in the command line,
|
||||
.I unroff
|
||||
reads from standard input.
|
||||
.LP
|
||||
The resulting HTML document is sent to standard output, unless a
|
||||
file name prefix is assigned to the
|
||||
.B document
|
||||
option.
|
||||
In the latter case, the
|
||||
.B split
|
||||
option controls splitting of the output into separate files at
|
||||
section boundaries as described under OPTIONS above.
|
||||
A number of other features, such as footnotes, also require
|
||||
that the
|
||||
.B document
|
||||
option is supplied, as separate output files are created for them
|
||||
(regardless of the value of
|
||||
.BR split ).
|
||||
In any case, the name of each output file consists of the value of
|
||||
.BR document ,
|
||||
followed by an optional suffix, followed by the extension \*(lq.html\*(rq.
|
||||
.SH EXAMPLE
|
||||
To translate an \*(lqms\*(rq document composed of several
|
||||
input files,
|
||||
.I unroff
|
||||
could be invoked like this:
|
||||
.Ex
|
||||
.if n \{unroff \-fhtml \-ms document=thesis split=2\e
|
||||
intro.ms 1.ms 2.ms 3.ms app.ms\}
|
||||
.if !n unroff \-fhtml \-ms document=thesis split=2 intro.ms 1.ms 2.ms 3.ms app.ms
|
||||
.Ee
|
||||
The names of all output files will have the prefix \*(lqthesis\*(rq,
|
||||
and the resulting HTML document will be split into separate files
|
||||
at each level 1 section or level 2 section.
|
||||
.SH DESCRIPTION
|
||||
The following
|
||||
.B \-ms
|
||||
macros are translated (in addition to any user-defined macros):
|
||||
.LP
|
||||
.nf
|
||||
.if !\n(.U .ta 8n 16n 24n 32n 40n 48n 56n
|
||||
.AB .AE .AI .AU .B .B1 .B2
|
||||
.BD .BX .CD .DE .DS .FA .FE
|
||||
.FS .I .ID .IP .LD .LG .LP
|
||||
.NH .PP .PX .QP .R .RE .RS
|
||||
.RT .SH .SM .TL .UL .UX .XA
|
||||
.XE .XS
|
||||
.fi
|
||||
.LP
|
||||
These predefined strings and number registers are recognized:
|
||||
.LP
|
||||
.nf
|
||||
\e*- \e*(DY \e*(MO \e*Q \e*U \en(PN
|
||||
.fi
|
||||
.LP
|
||||
In addition, a number of macros are either silently ignored
|
||||
or cause a warning to be printed, because their function either
|
||||
cannot be mapped to HTML 2.0 elements or assumes a page
|
||||
structure:
|
||||
.LP
|
||||
.nf
|
||||
.AM .BT .CM .CT .DA .EF .EH
|
||||
.HD .KE .KF .KS .ND .NL .OF
|
||||
.OH .P1 .PT .TM .MC .1C .2C
|
||||
.fi
|
||||
.LP
|
||||
The font switching macros are based on changes to the fonts `R',
|
||||
`I', and `B', as explained under FONTS in
|
||||
.BR unroff-html (1).
|
||||
Of course, this fails if the fonts (which are mounted on startup)
|
||||
are unmounted by explicit
|
||||
.B .fp
|
||||
requests.
|
||||
.LP
|
||||
Upper or lower case letters are accepted as section numbers by
|
||||
.B .NH
|
||||
when the argument ``S'' is used to set new section numbers.
|
||||
This is useful for appendices and similar constructs.
|
||||
.LP
|
||||
The translation rule for
|
||||
.B .IP
|
||||
employs a heuristic to determine whether to generate a definition
|
||||
list or an unordered list:
|
||||
if the first in a sequence of indented paragraph macros is
|
||||
called with a tag consisting of one of the special character \e(bu
|
||||
or \e(sq, a definition list is begun, otherwise an unordered list.
|
||||
Since
|
||||
.RI exdented[ sic ]
|
||||
paragraphs cannot be expressed in HTML 2.0, a warning
|
||||
message is printed when a call to the macro
|
||||
.B .XP
|
||||
is encountered.
|
||||
.LP
|
||||
All footnotes are concatenated and placed in a separate output file,
|
||||
and a corresponding section (with a user-defined header) holding
|
||||
the footnotes is appended to the document automatically.
|
||||
Use of the string `\e**' generates a hypertext link to the beginning
|
||||
of the footnote created by the next call to
|
||||
.B .FS
|
||||
and
|
||||
.BR .FE .
|
||||
The actual text generated by using `\e**' as well as the footnote
|
||||
reference that appears in the footnote proper are controlled by
|
||||
two options as explained under OPTIONS above.
|
||||
A warning message is printed on termination if `\e**' has been
|
||||
used but a corresponding footnote was not seen.
|
||||
As an alternative to `\e**', the new request
|
||||
.B .FA
|
||||
can be used to produce a footnote anchor together with a hypertext
|
||||
link; the anchor is the argument to the macro
|
||||
(however, `\e**' itself must not be used in a call to
|
||||
.BR .FA ).
|
||||
.LP
|
||||
Likewise, a hypertext reference is created for each use of the
|
||||
table of contents macros
|
||||
.BR .XS
|
||||
and
|
||||
.BR .XE
|
||||
(optionally accompanied by calls to
|
||||
.BR .XA ).
|
||||
.SH "SEE ALSO"
|
||||
.BR unroff (1),
|
||||
.BR unroff-html (1),
|
||||
.BR troff (1),
|
||||
.BR ms "(5 or 7)."
|
||||
.LP
|
||||
Unroff Programmer's Manual.
|
||||
.LP
|
||||
http://www.informatik.uni-bremen.de/~net/unroff
|
||||
.LP
|
||||
Berners-Lee, Connolly, et al.,
|
||||
HyperText Markup Language Specification\(em2.0,
|
||||
Internet Draft, Internet Engineering Task Force.
|
||||
.SH BUGS
|
||||
The macro
|
||||
.B .UL
|
||||
is currently mapped to a call to
|
||||
.BR .I ,
|
||||
as underlining is not supported by the HTML back-end of
|
||||
.I unroff
|
||||
\*(Ve.
|
||||
.LP
|
||||
Footnote references and requests such as
|
||||
.B .sp
|
||||
that cause non-character-level markup to be generated must not
|
||||
be used inside a numbered header.
|
||||
.LP
|
||||
When creating a hypertext anchor for
|
||||
.B .XS
|
||||
and
|
||||
.BR .XE ,
|
||||
there is nothing to put inside the <a> element;
|
||||
therefore a non-breaking space is used.
|
||||
.LP
|
||||
Changing the number register format of `NH' to get roman or alphabetic
|
||||
section numbers does not work, obviously.
|
||||
|
|
@ -0,0 +1,312 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:27. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<!-- $Revision: 1.8 $ -->
|
||||
<title>Manual page for unroff-html-ms(1)</title>
|
||||
</head>
|
||||
<body>
|
||||
<h2>
|
||||
unroff-html-ms - back-end to translate `ms' documents to HTML 2.0
|
||||
<hr></h2>
|
||||
<h2>SYNOPSIS</h2>
|
||||
<b>unroff
|
||||
</b>[
|
||||
<b>-fhtml
|
||||
</b>] [
|
||||
<b>-ms
|
||||
</b>] [
|
||||
<i>file</i> | <i>option...
|
||||
</i>]
|
||||
<h2>OVERVIEW</h2>
|
||||
When called with the
|
||||
<b>-fhtml
|
||||
</b>and
|
||||
<b>-ms
|
||||
</b>options, the troff translator
|
||||
<i>unroff
|
||||
</i>loads the back-end for converting ``ms'' documents to the Hypertext
|
||||
Markup Language (HTML) version 2.0.<tt> </tt>
|
||||
<p>
|
||||
Please read
|
||||
<b>unroff</b>(1)
|
||||
first for an overview of the Scheme-based, programmable troff translator
|
||||
and for a description of the generic options that exist in
|
||||
addition to
|
||||
<b>-f
|
||||
</b>and
|
||||
<b>-m</b>.<tt> </tt>
|
||||
The translation of basic troff requests, special characters,
|
||||
escape sequences, etc. as well as the HTML-specific options
|
||||
are described in
|
||||
<b>unroff-html</b>(1).<tt> </tt>
|
||||
For information about extending and programming
|
||||
<i>unroff
|
||||
</i>also refer to the
|
||||
<i>Unroff Programmer's Manual</i>.<tt> </tt>
|
||||
<h2>OPTIONS</h2>
|
||||
The
|
||||
<b>-ms
|
||||
</b>extension provides a number of keyword/value options in addition to
|
||||
those listed in
|
||||
<b>unroff</b>(1)
|
||||
and
|
||||
<b>unroff-html</b>(1):
|
||||
<dl>
|
||||
<dt><b>signature</b> (string)
|
||||
<dd>
|
||||
If non-empty, the value of this option together with a <hr> tag is
|
||||
appended to each HTML output file created.<tt> </tt>
|
||||
The
|
||||
<i>substitute
|
||||
</i>Scheme primitive (as described in the Programmer's Manual) is
|
||||
applied to the value of the option, so that date, time, environment
|
||||
variables, etc. can be interpolated.<tt> </tt>
|
||||
<dt><b>split</b> (integer)
|
||||
<dd>
|
||||
This option specifies whether to split the output document into
|
||||
individual files for each major section.<tt> </tt>
|
||||
If a positive integer
|
||||
<i>level
|
||||
</i>is assigned to the option, a new output file is opened for each
|
||||
numbered header
|
||||
(<b>.NH
|
||||
</b>request) with a level equal to or numerically less than
|
||||
<i>level</i>.<tt> </tt>
|
||||
Use of this feature requires that the
|
||||
<b>document
|
||||
</b>option has bee set, as otherwise the HTML document is sent
|
||||
to standard output.<tt> </tt>
|
||||
The default value is 0, i.e. all sections will be written to
|
||||
a single file.<tt> </tt>
|
||||
<dt><b>toc</b> (boolean)
|
||||
<dd>
|
||||
If true, a table of contents with a hypertext link for each section
|
||||
is generated automatically and inserted after the front matter
|
||||
(title, author information, abstract) and before the first section.<tt> </tt>
|
||||
Use of this feature requires a non-zero value for the
|
||||
<b>split
|
||||
</b>option.<tt> </tt>
|
||||
The default is to produce a table of contents if
|
||||
<b>split
|
||||
</b>is non-zero.<tt> </tt>
|
||||
<dt><b>toc-header</b> (string)
|
||||
<dd>
|
||||
This option defines the contents of the <h2> header element prepended to
|
||||
an automatically generated table of contents.<tt> </tt>
|
||||
Its value is subject to a call to
|
||||
<i>substitute</i>.<tt> </tt>
|
||||
The default is the string ``Table of Contents''.<tt> </tt>
|
||||
<dt><b>pp-indent</b> (integer)
|
||||
<dd>
|
||||
The number of non-breakable spaces (as specified by the predefined
|
||||
Scheme variable
|
||||
<i>nbsp</i>)
|
||||
to generate for a paragraph created by the
|
||||
<b>.PP
|
||||
</b>macro.<tt> </tt>
|
||||
The default is 3.<tt> </tt>
|
||||
This option, as well as
|
||||
<b>signature</b>,
|
||||
is typically set in the user-preferences file
|
||||
<b>~/.unroff</b>,
|
||||
or in a document-specific Scheme file or at the beginning of
|
||||
the document proper.<tt> </tt>
|
||||
<dt><b>footnotes-header</b> (string)
|
||||
<dd>
|
||||
The contents of the <h2> header element prepended to the footnotes
|
||||
section that is appended to the document if any footnotes were used,
|
||||
and that also appears in the automatically generated table of contents.<tt> </tt>
|
||||
As with all string option listed in this section, the
|
||||
<i>substitute
|
||||
</i>primitive is applied to the option's value.<tt> </tt>
|
||||
The default is the string ``Footnotes''.<tt> </tt>
|
||||
<dt><b>footnote-reference</b> (string)
|
||||
<dd>
|
||||
This option controls the text generated by each use of the variable
|
||||
`\**', which produces a footnote (hypertext) reference.<tt> </tt>
|
||||
Its value is passed to a call to
|
||||
<i>substitute
|
||||
</i>with the current footnote number as another argument, so that the
|
||||
specifier ``%1%'' can be used to interpolate the footnote
|
||||
number.<tt> </tt>
|
||||
The default is the string ``[note %1%]''.<tt> </tt>
|
||||
<dt><b>footnote-anchor</b> (string)
|
||||
<dd>
|
||||
This options specifies the footnote reference that appears at the
|
||||
beginning of each footnote proper if
|
||||
<b>.FS
|
||||
</b>was called without an argument.<tt> </tt>
|
||||
The option's value is passed to a call to
|
||||
<i>substitute
|
||||
</i>with the footnote number generated by the last use of `\**' as
|
||||
another argument.<tt> </tt>
|
||||
The default is ``[%1%]''.<tt> </tt>
|
||||
</dl>
|
||||
<h2>FILES</h2>
|
||||
<i>unroff
|
||||
</i>reads and parses an ''ms`` document composed of one ore more
|
||||
input files.<tt> </tt>
|
||||
As usual, the special file name
|
||||
`<b>-</b>'
|
||||
can be used to interpolate standard input.<tt> </tt>
|
||||
If no file name is given in the command line,
|
||||
<i>unroff
|
||||
</i>reads from standard input.<tt> </tt>
|
||||
<p>
|
||||
The resulting HTML document is sent to standard output, unless a
|
||||
file name prefix is assigned to the
|
||||
<b>document
|
||||
</b>option.<tt> </tt>
|
||||
In the latter case, the
|
||||
<b>split
|
||||
</b>option controls splitting of the output into separate files at
|
||||
section boundaries as described under OPTIONS above.<tt> </tt>
|
||||
A number of other features, such as footnotes, also require
|
||||
that the
|
||||
<b>document
|
||||
</b>option is supplied, as separate output files are created for them
|
||||
(regardless of the value of
|
||||
<b>split</b>).<tt> </tt>
|
||||
In any case, the name of each output file consists of the value of
|
||||
<b>document</b>,
|
||||
followed by an optional suffix, followed by the extension ``.html''.<tt> </tt>
|
||||
<h2>EXAMPLE</h2>
|
||||
To translate an ``ms'' document composed of several
|
||||
input files,
|
||||
<i>unroff
|
||||
</i>could be invoked like this:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
unroff -fhtml -ms document=thesis split=2 intro.ms 1.ms 2.ms 3.ms app.ms
|
||||
</pre>
|
||||
</dl>
|
||||
The names of all output files will have the prefix ``thesis'',
|
||||
and the resulting HTML document will be split into separate files
|
||||
at each level 1 section or level 2 section.<tt> </tt>
|
||||
<h2>DESCRIPTION</h2>
|
||||
The following
|
||||
<b>-ms
|
||||
</b>macros are translated (in addition to any user-defined macros):
|
||||
<p>
|
||||
<pre>
|
||||
.AB .AE .AI .AU .B .B1 .B2
|
||||
.BD .BX .CD .DE .DS .FA .FE
|
||||
.FS .I .ID .IP .LD .LG .LP
|
||||
.NH .PP .PX .QP .R .RE .RS
|
||||
.RT .SH .SM .TL .UL .UX .XA
|
||||
.XE .XS
|
||||
</pre>
|
||||
<p>
|
||||
These predefined strings and number registers are recognized:
|
||||
<p>
|
||||
<pre>
|
||||
\*- \*(DY \*(MO \*Q \*U \n(PN
|
||||
</pre>
|
||||
<p>
|
||||
In addition, a number of macros are either silently ignored
|
||||
or cause a warning to be printed, because their function either
|
||||
cannot be mapped to HTML 2.0 elements or assumes a page
|
||||
structure:
|
||||
<p>
|
||||
<pre>
|
||||
.AM .BT .CM .CT .DA .EF .EH
|
||||
.HD .KE .KF .KS .ND .NL .OF
|
||||
.OH .P1 .PT .TM .MC .1C .2C
|
||||
</pre>
|
||||
<p>
|
||||
The font switching macros are based on changes to the fonts `R',
|
||||
`I', and `B', as explained under FONTS in
|
||||
<b>unroff-html</b>(1).<tt> </tt>
|
||||
Of course, this fails if the fonts (which are mounted on startup)
|
||||
are unmounted by explicit
|
||||
<b>.fp
|
||||
</b>requests.<tt> </tt>
|
||||
<p>
|
||||
Upper or lower case letters are accepted as section numbers by
|
||||
<b>.NH
|
||||
</b>when the argument ``S'' is used to set new section numbers.<tt> </tt>
|
||||
This is useful for appendices and similar constructs.<tt> </tt>
|
||||
<p>
|
||||
The translation rule for
|
||||
<b>.IP
|
||||
</b>employs a heuristic to determine whether to generate a definition
|
||||
list or an unordered list:
|
||||
if the first in a sequence of indented paragraph macros is
|
||||
called with a tag consisting of one of the special character \(bu
|
||||
or \(sq, a definition list is begun, otherwise an unordered list.<tt> </tt>
|
||||
Since
|
||||
exdented[<i>sic</i>]
|
||||
paragraphs cannot be expressed in HTML 2.0, a warning
|
||||
message is printed when a call to the macro
|
||||
<b>.XP
|
||||
</b>is encountered.<tt> </tt>
|
||||
<p>
|
||||
All footnotes are concatenated and placed in a separate output file,
|
||||
and a corresponding section (with a user-defined header) holding
|
||||
the footnotes is appended to the document automatically.<tt> </tt>
|
||||
Use of the string `\**' generates a hypertext link to the beginning
|
||||
of the footnote created by the next call to
|
||||
<b>.FS
|
||||
</b>and
|
||||
<b>.FE</b>.<tt> </tt>
|
||||
The actual text generated by using `\**' as well as the footnote
|
||||
reference that appears in the footnote proper are controlled by
|
||||
two options as explained under OPTIONS above.<tt> </tt>
|
||||
A warning message is printed on termination if `\**' has been
|
||||
used but a corresponding footnote was not seen.<tt> </tt>
|
||||
As an alternative to `\**', the new request
|
||||
<b>.FA
|
||||
</b>can be used to produce a footnote anchor together with a hypertext
|
||||
link; the anchor is the argument to the macro
|
||||
(however, `\**' itself must not be used in a call to
|
||||
<b>.FA</b>).<tt> </tt>
|
||||
<p>
|
||||
Likewise, a hypertext reference is created for each use of the
|
||||
table of contents macros
|
||||
<b>.XS
|
||||
</b>and
|
||||
<b>.XE
|
||||
</b>(optionally accompanied by calls to
|
||||
<b>.XA</b>).<tt> </tt>
|
||||
<h2>SEE ALSO</h2>
|
||||
<b>unroff</b>(1),
|
||||
<b>unroff-html</b>(1),
|
||||
<b>troff</b>(1),
|
||||
<b>ms</b>(5 or 7).<tt> </tt>
|
||||
<p>
|
||||
Unroff Programmer's Manual.<tt> </tt>
|
||||
<p>
|
||||
http://www.informatik.uni-bremen.de/~net/unroff
|
||||
<p>
|
||||
Berners-Lee, Connolly, et al.,
|
||||
HyperText Markup Language Specification--2.0,
|
||||
Internet Draft, Internet Engineering Task Force.<tt> </tt>
|
||||
<h2>BUGS</h2>
|
||||
The macro
|
||||
<b>.UL
|
||||
</b>is currently mapped to a call to
|
||||
<b>.I</b>,
|
||||
as underlining is not supported by the HTML back-end of
|
||||
<i>unroff
|
||||
</i>1.0.<tt> </tt>
|
||||
<p>
|
||||
Footnote references and requests such as
|
||||
<b>.sp
|
||||
</b>that cause non-character-level markup to be generated must not
|
||||
be used inside a numbered header.<tt> </tt>
|
||||
<p>
|
||||
When creating a hypertext anchor for
|
||||
<b>.XS
|
||||
</b>and
|
||||
<b>.XE</b>,
|
||||
there is nothing to put inside the <a> element;
|
||||
therefore a non-breaking space is used.<tt> </tt>
|
||||
<p>
|
||||
Changing the number register format of `NH' to get roman or alphabetic
|
||||
section numbers does not work, obviously.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996.
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,455 @@
|
|||
%!PS-Adobe-3.0
|
||||
%%Creator: groff version 1.09
|
||||
%%CreationDate: Thu Mar 21 19:30:00 1996
|
||||
%%DocumentNeededResources: font Times-Roman
|
||||
%%+ font Times-Bold
|
||||
%%+ font Times-Italic
|
||||
%%DocumentSuppliedResources: procset grops 1.09 0
|
||||
%%Pages: 3
|
||||
%%PageOrder: Ascend
|
||||
%%Orientation: Portrait
|
||||
%%EndComments
|
||||
%%BeginProlog
|
||||
%%BeginResource: procset grops 1.09 0
|
||||
/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
|
||||
/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
|
||||
}bind 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
|
||||
/FL{
|
||||
currentgray exch setgray fill setgray
|
||||
}bind def
|
||||
/BL/fill load def
|
||||
/LW/setlinewidth 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
|
||||
}bind def
|
||||
/PEND{
|
||||
clear
|
||||
countdictstack CNT sub{end}repeat
|
||||
level1 restore
|
||||
}bind def
|
||||
end def
|
||||
/setpacking where{
|
||||
pop
|
||||
setpacking
|
||||
}if
|
||||
%%EndResource
|
||||
%%IncludeResource: font Times-Roman
|
||||
%%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 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron
|
||||
/Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.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
|
||||
/Times-Roman@0 ENC0/Times-Roman RE
|
||||
%%EndProlog
|
||||
%%Page: 1 1
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 319.36(f-html-ms\(1\) unrof)-.25 F
|
||||
(f-html-ms\(1\))-.25 E/F1 9/Times-Bold@0 SF -.18(NA)72 84 S(ME).18 E F0
|
||||
(unrof)108 96 Q
|
||||
(f-html-ms \255 back-end to translate `ms' documents to HTML 2.0)-.25 E
|
||||
F1(SYNOPSIS)72 112.8 Q/F2 10/Times-Bold@0 SF(unr)108 124.8 Q(off)-.18 E
|
||||
F0([)2.5 E F2(\255fhtml)2.5 E F0 2.5(][)2.5 G F2(\255ms)A F0 2.5(][)2.5
|
||||
G/F3 10/Times-Italic@0 SF(\214le)A F0(|)2.68 E F3(option...)2.73 E F0(])
|
||||
2.5 E F1 -.45(OV)72 141.6 S(ER).45 E(VIEW)-.495 E F0 .357
|
||||
(When called with the)108 153.6 R F2(\255fhtml)2.857 E F0(and)2.857 E F2
|
||||
(\255ms)2.857 E F0 .357(options, the trof)2.857 F 2.857(ft)-.25 G
|
||||
(ranslator)-2.857 E F3(unr)2.857 E(of)-.45 E(f)-.18 E F0 .357
|
||||
(loads the back-end for con)2.857 F -.15(ve)-.4 G(rting).15 E
|
||||
(\231ms\232 documents to the Hyperte)108 165.6 Q
|
||||
(xt Markup Language \(HTML\) v)-.15 E(ersion 2.0.)-.15 E .984
|
||||
(Please read)108 182.4 R F2(unr)3.484 E(off)-.18 E F0 .984
|
||||
(\(1\) \214rst for an o)B -.15(ve)-.15 G(rvie).15 E 3.484(wo)-.25 G
|
||||
3.484(ft)-3.484 G .984(he Scheme-based, programmable trof)-3.484 F 3.484
|
||||
(ft)-.25 G .984(ranslator and for a)-3.484 F 2.17
|
||||
(description of the generic options that e)108 194.4 R 2.169
|
||||
(xist in addition to)-.15 F F2<ad66>4.669 E F0(and)4.669 E F2<ad6d>4.669
|
||||
E F0 7.169(.T)C 2.169(he translation of basic trof)-7.169 F(f)-.25 E
|
||||
.786(requests, special characters, escape sequences, etc. as well as th\
|
||||
e HTML-speci\214c options are described in)108 206.4 R F2(unr)108 218.4
|
||||
Q(off-html)-.18 E F0 3.916(\(1\). F)B 1.416(or information about e)-.15
|
||||
F 1.416(xtending and programming)-.15 F F3(unr)3.915 E(of)-.45 E(f)-.18
|
||||
E F0 1.415(also refer to the)3.915 F F3(Unr)3.915 E(of)-.45 E 3.915(fP)
|
||||
-.18 G -.45(ro)-3.915 G(-).45 E(gr)108 230.4 Q(ammer')-.15 E 2.5(sM)-.4
|
||||
G(anual)-2.5 E F0(.).51 E F1(OPTIONS)72 247.2 Q F0(The)108 259.2 Q F2
|
||||
(\255ms)2.651 E F0 -.15(ex)2.651 G .151(tension pro).15 F .151
|
||||
(vides a number of k)-.15 F -.15(ey)-.1 G -.1(wo).15 G(rd/v).1 E .151
|
||||
(alue options in addition to those listed in)-.25 F F2(unr)2.652 E(off)
|
||||
-.18 E F0 .152(\(1\) and)B F2(unr)108 271.2 Q(off-html)-.18 E F0(\(1\):)
|
||||
A F2(signatur)108 288 Q(e)-.18 E F0(\(string\))2.5 E .465(If non-empty)
|
||||
144 300 R 2.965(,t)-.65 G .464(he v)-2.965 F .464(alue of this option t\
|
||||
ogether with a <hr> tag is appended to each HTML output)-.25 F 2.528
|
||||
(\214le created.)144 312 R(The)7.528 E F3(substitute)5.028 E F0 2.528
|
||||
(Scheme primiti)5.028 F 2.828 -.15(ve \()-.25 H 2.528
|
||||
(as described in the Programmer').15 F 5.029(sM)-.55 G 2.529(anual\) is)
|
||||
-5.029 F .974(applied to the v)144 324 R .973
|
||||
(alue of the option, so that date, time, en)-.25 F .973(vironment v)-.4
|
||||
F .973(ariables, etc. can be interpo-)-.25 F(lated.)144 336 Q F2(split)
|
||||
108 352.8 Q F0(\(inte)2.5 E(ger\))-.15 E .288
|
||||
(This option speci\214es whether to split the output document into indi)
|
||||
144 364.8 R .289(vidual \214les for each major sec-)-.25 F 2.723
|
||||
(tion. If)144 376.8 R 2.722(ap)2.723 G(ositi)-2.722 E .522 -.15(ve i)
|
||||
-.25 H(nte).15 E(ger)-.15 E F3(le)2.722 E(vel)-.15 E F0 .222
|
||||
(is assigned to the option, a ne)2.722 F 2.722(wo)-.25 G .222
|
||||
(utput \214le is opened for each num-)-2.722 F .132(bered header \()144
|
||||
388.8 R F2(.NH)A F0 .132(request\) with a le)2.632 F -.15(ve)-.25 G
|
||||
2.632(le).15 G .132(qual to or numerically less than)-2.632 F F3(le)
|
||||
2.633 E(vel)-.15 E F0 5.133(.U).51 G .133(se of this feature)-5.133 F
|
||||
.674(requires that the)144 400.8 R F2(document)3.173 E F0 .673
|
||||
(option has bee set, as otherwise the HTML document is sent to stan-)
|
||||
3.173 F(dard output.)144 412.8 Q(The def)5 E(ault v)-.1 E(alue is 0, i.)
|
||||
-.25 E(e. all sections will be written to a single \214le.)1.666 E F2
|
||||
(toc)108 429.6 Q F0(\(boolean\))2.5 E 1.104
|
||||
(If true, a table of contents with a h)144 441.6 R(yperte)-.05 E 1.105
|
||||
(xt link for each section is generated automatically and)-.15 F .434(in\
|
||||
serted after the front matter \(title, author information, abstract\) a\
|
||||
nd before the \214rst section.)144 453.6 R(Use)5.434 E .666
|
||||
(of this feature requires a non-zero v)144 465.6 R .666(alue for the)
|
||||
-.25 F F2(split)3.166 E F0 3.166(option. The)3.166 F(def)3.166 E .666
|
||||
(ault is to produce a table of)-.1 F(contents if)144 477.6 Q F2(split)
|
||||
2.5 E F0(is non-zero.)2.5 E F2(toc-header)108 494.4 Q F0(\(string\))2.5
|
||||
E .356(This option de\214nes the contents of the <h2> header element pr\
|
||||
epended to an automatically gener)144 506.4 R(-)-.2 E .091
|
||||
(ated table of contents.)144 518.4 R .091(Its v)5.091 F .091
|
||||
(alue is subject to a call to)-.25 F F3(substitute)2.592 E F0 5.092(.T)
|
||||
.18 G .092(he def)-5.092 F .092(ault is the string \231T)-.1 F .092
|
||||
(able of)-.8 F(Contents\232.)144 530.4 Q F2(pp-indent)108 547.2 Q F0
|
||||
(\(inte)2.5 E(ger\))-.15 E .004(The number of non-breakable spaces \(as\
|
||||
speci\214ed by the prede\214ned Scheme v)144 559.2 R(ariable)-.25 E F3
|
||||
(nbsp)2.503 E F0 2.503(\)t).19 G 2.503(og)-2.503 G(en-)-2.503 E .806
|
||||
(erate for a paragraph created by the)144 571.2 R F2(.PP)3.307 E F0
|
||||
3.307(macro. The)3.307 F(def)3.307 E .807(ault is 3.)-.1 F .807
|
||||
(This option, as well as)5.807 F F2(signa-)3.307 E(tur)144 583.2 Q(e)
|
||||
-.18 E F0 2.646(,i)C 2.646(st)-2.646 G .146(ypically set in the user)
|
||||
-2.646 F .146(-preferences \214le)-.2 F F2(~/.unr)2.646 E(off)-.18 E F0
|
||||
2.646(,o)C 2.646(ri)-2.646 G 2.646(nad)-2.646 G .146
|
||||
(ocument-speci\214c Scheme \214le or)-2.646 F(at the be)144 595.2 Q
|
||||
(ginning of the document proper)-.15 E(.)-.55 E F2 -.25(fo)108 612 S
|
||||
(otnotes-header).25 E F0(\(string\))2.5 E .967(The contents of the <h2>\
|
||||
header element prepended to the footnotes section that is appended to)
|
||||
144 624 R .008(the document if an)144 636 R 2.508(yf)-.15 G .008(ootnot\
|
||||
es were used, and that also appears in the automatically generated tabl\
|
||||
e)-2.508 F .114(of contents.)144 648 R .114
|
||||
(As with all string option listed in this section, the)5.114 F F3
|
||||
(substitute)2.614 E F0(primiti)2.614 E .414 -.15(ve i)-.25 H 2.614(sa)
|
||||
.15 G .115(pplied to the)-2.614 F(option')144 660 Q 2.5(sv)-.55 G 2.5
|
||||
(alue. The)-2.75 F(def)2.5 E(ault is the string \231F)-.1 E
|
||||
(ootnotes\232.)-.15 E F2 -.25(fo)108 676.8 S(otnote-r).25 E(efer)-.18 E
|
||||
(ence)-.18 E F0(\(string\))2.5 E .006(This option controls the te)144
|
||||
688.8 R .006(xt generated by each use of the v)-.15 F .005
|
||||
(ariable `\\**', which produces a footnote)-.25 F(\(h)144 700.8 Q
|
||||
(yperte)-.05 E .095(xt\) reference.)-.15 F .095(Its v)5.095 F .095
|
||||
(alue is passed to a call to)-.25 F F3(substitute)2.596 E F0 .096
|
||||
(with the current footnote number as)2.596 F 1.439(another ar)144 712.8
|
||||
R 1.439(gument, so that the speci\214er \231%1%\232 can be used to inte\
|
||||
rpolate the footnote number)-.18 F(.)-.55 E(The def)144 724.8 Q
|
||||
(ault is the string \231[note %1%]\232.)-.1 E 203.72(1995/08/23 1)283.22
|
||||
768 R EP
|
||||
%%Page: 2 2
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 319.36(f-html-ms\(1\) unrof)-.25 F
|
||||
(f-html-ms\(1\))-.25 E/F1 10/Times-Bold@0 SF -.25(fo)108 84 S
|
||||
(otnote-anchor).25 E F0(\(string\))2.5 E .406
|
||||
(This options speci\214es the footnote reference that appears at the be)
|
||||
144 96 R .406(ginning of each footnote proper)-.15 F(if)144 108 Q F1
|
||||
(.FS)2.695 E F0 -.1(wa)2.695 G 2.695(sc).1 G .195(alled without an ar)
|
||||
-2.695 F 2.695(gument. The)-.18 F(option')2.695 E 2.694(sv)-.55 G .194
|
||||
(alue is passed to a call to)-2.944 F/F2 10/Times-Italic@0 SF
|
||||
(substitute)2.694 E F0 .194(with the)2.694 F
|
||||
(footnote number generated by the last use of `\\**' as another ar)144
|
||||
120 Q 2.5(gument. The)-.18 F(def)2.5 E(ault is \231[%1%]\232.)-.1 E/F3 9
|
||||
/Times-Bold@0 SF(FILES)72 136.8 Q F2(unr)108 148.8 Q(of)-.45 E(f)-.18 E
|
||||
F0 .381(reads and parses an \232ms\231 document composed of one ore mor\
|
||||
e input \214les.)2.881 F .381(As usual, the special \214le)5.381 F .974
|
||||
(name `)108 160.8 R F1<ad>A F0 3.474('c)C .973
|
||||
(an be used to interpolate standard input.)-3.474 F .973
|
||||
(If no \214le name is gi)5.973 F -.15(ve)-.25 G 3.473(ni).15 G 3.473(nt)
|
||||
-3.473 G .973(he command line,)-3.473 F F2(unr)3.473 E(of)-.45 E(f)-.18
|
||||
E F0(reads from standard input.)108 172.8 Q .221(The resulting HTML doc\
|
||||
ument is sent to standard output, unless a \214le name pre\214x is assi\
|
||||
gned to the)108 189.6 R F1(docu-)2.721 E(ment)108 201.6 Q F0 2.844
|
||||
(option. In)2.844 F .344(the latter case, the)2.844 F F1(split)2.844 E
|
||||
F0 .344(option controls splitting of the output into separate \214les a\
|
||||
t section)2.844 F 2.115(boundaries as described under OPTIONS abo)108
|
||||
213.6 R -.15(ve)-.15 G 7.115(.A).15 G 2.115
|
||||
(number of other features, such as footnotes, also)-2.5 F .168
|
||||
(require that the)108 225.6 R F1(document)2.667 E F0 .167(option is sup\
|
||||
plied, as separate output \214les are created for them \(re)2.667 F -.05
|
||||
(ga)-.15 G .167(rdless of the).05 F -.25(va)108 237.6 S .148(lue of).25
|
||||
F F1(split)2.648 E F0 2.648(\). In)B(an)2.648 E 2.648(yc)-.15 G .148
|
||||
(ase, the name of each output \214le consists of the v)-2.648 F .149
|
||||
(alue of)-.25 F F1(document)2.649 E F0 2.649(,f)C(ollo)-2.649 E .149
|
||||
(wed by an)-.25 F(optional suf)108 249.6 Q(\214x, follo)-.25 E
|
||||
(wed by the e)-.25 E(xtension \231.html\232.)-.15 E F3(EXAMPLE)72 266.4
|
||||
Q F0 1.6 -.8(To t)108 278.4 T
|
||||
(ranslate an \231ms\232 document composed of se).8 E -.15(ve)-.25 G
|
||||
(ral input \214les,).15 E F2(unr)2.5 E(of)-.45 E(f)-.18 E F0
|
||||
(could be in)2.5 E -.2(vo)-.4 G -.1(ke).2 G 2.5(dl).1 G(ik)-2.5 E 2.5
|
||||
(et)-.1 G(his:)-2.5 E F1(unr)144 296.4 Q
|
||||
(off \255fhtml \255ms document=thesis split=2 intr)-.18 E
|
||||
(o.ms 1.ms 2.ms 3.ms app.ms)-.18 E F0 .549
|
||||
(The names of all output \214les will ha)108 314.4 R .849 -.15(ve t)-.2
|
||||
H .549(he pre\214x \231thesis\232, and the resulting HTML document will\
|
||||
be split).15 F(into separate \214les at each le)108 326.4 Q -.15(ve)
|
||||
-.25 G 2.5(l1s).15 G(ection or le)-2.5 E -.15(ve)-.25 G 2.5(l2s).15 G
|
||||
(ection.)-2.5 E F3(DESCRIPTION)72 343.2 Q F0(The follo)108 355.2 Q(wing)
|
||||
-.25 E F1(\255ms)2.5 E F0(macros are translated \(in addition to an)2.5
|
||||
E 2.5(yu)-.15 G(ser)-2.5 E(-de\214ned macros\):)-.2 E 21.11(.AB .AE)148
|
||||
372 R 24.45(.AI .A)24.17 F 23.61(U.)-.55 G 30.83(B.)-23.61 G 23.33
|
||||
(B1 .B2)-30.83 F 21.11(.BD .BX .CD .DE)148 384 R 22.22(.DS .F)24.17 F
|
||||
25.46(A.)-.74 G(FE)-25.46 E 23.88(.FS .I)148 396 R 24.45(.ID .IP)34.17 F
|
||||
21.67(.LD .LG .LP)28.61 F 20.56(.NH .PP)148 408 R 22.22(.PX .QP .R)26.38
|
||||
F 22.22(.RE .RS)30.83 F(.R)148 420 Q 25.32(T.)-.6 G 22.22(SH .SM)-25.32
|
||||
F 22.78(.TL .UL)23.05 F 20.56(.UX .XA)24.17 F 21.67(.XE .XS)148 432 R
|
||||
(These prede\214ned strings and number re)108 448.8 Q
|
||||
(gisters are recognized:)-.15 E 26.39(\\*- \\*\(D)148 465.6 R 15(Y\\)
|
||||
-.55 G 10.28(*\(MO \\*Q)-15 F 22.5(\\*U \\n\(PN)25 F .585(In addition, \
|
||||
a number of macros are either silently ignored or cause a w)108 482.4 R
|
||||
.585(arning to be printed, because their)-.1 F(function either cannot b\
|
||||
e mapped to HTML 2.0 elements or assumes a page structure:)108 494.4 Q
|
||||
18.89(.AM .BT)148 511.2 R 19.44(.CM .CT)24.72 F(.D)24.72 E 23.46(A.)-.4
|
||||
G 23.33(EF .EH)-23.46 F 20.56(.HD .KE)148 523.2 R 22.22(.KF .KS .ND)
|
||||
24.17 F 21.67(.NL .OF)23.06 F 20.56(.OH .P1)148 535.2 R 23.33(.PT .TM)
|
||||
26.94 F 19.44(.MC .1C)22.5 F(.2C)25.83 E .001(The font switching macros\
|
||||
are based on changes to the fonts `R', `I', and `B', as e)108 552 R
|
||||
(xplained under FONTS in)-.15 E F1(unr)108 564 Q(off-html)-.18 E F0
|
||||
2.708(\(1\). Of)B .208(course, this f)2.708 F .208
|
||||
(ails if the fonts \(which are mounted on startup\) are unmounted by e)
|
||||
-.1 F(xplicit)-.15 E F1(.fp)108 576 Q F0(requests.)2.5 E .446
|
||||
(Upper or lo)108 592.8 R .445
|
||||
(wer case letters are accepted as section numbers by)-.25 F F1(.NH)2.945
|
||||
E F0 .445(when the ar)2.945 F .445(gument `)-.18 F(`S')-.74 E 2.945('i)
|
||||
-.74 G 2.945(su)-2.945 G .445(sed to set)-2.945 F(ne)108 604.8 Q 2.5(ws)
|
||||
-.25 G(ection numbers.)-2.5 E
|
||||
(This is useful for appendices and similar constructs.)5 E 1.467
|
||||
(The translation rule for)108 621.6 R F1(.IP)3.967 E F0(emplo)3.967 E
|
||||
1.467(ys a heuristic to determine whether to generate a de\214nition li\
|
||||
st or an)-.1 F .328(unordered list: if the \214rst in a sequence of ind\
|
||||
ented paragraph macros is called with a tag consisting of one)108 633.6
|
||||
R 3.032(of the special character \\\(b)108 645.6 R 5.532(uo)-.2 G 5.532
|
||||
(r\\)-5.532 G 3.033(\(sq, a de\214nition list is be)-5.532 F 3.033
|
||||
(gun, otherwise an unordered list.)-.15 F(Since)8.033 E -.15(ex)108
|
||||
657.6 S(dented[).15 E F2(sic).34 E F0 3.31(]p).31 G .81
|
||||
(aragraphs cannot be e)-3.31 F .81(xpressed in HTML 2.0, a w)-.15 F .81
|
||||
(arning message is printed when a call to)-.1 F(the macro)108 669.6 Q F1
|
||||
(.XP)2.5 E F0(is encountered.)2.5 E 1.329(All footnotes are concatenate\
|
||||
d and placed in a separate output \214le, and a corresponding section \
|
||||
\(with a)108 686.4 R(user)108 698.4 Q 1.121(-de\214ned header\) holding\
|
||||
the footnotes is appended to the document automatically)-.2 F 6.12(.U)
|
||||
-.65 G 1.12(se of the string)-6.12 F 1.012(`\\**' generates a h)108
|
||||
710.4 R(yperte)-.05 E 1.012(xt link to the be)-.15 F 1.012
|
||||
(ginning of the footnote created by the ne)-.15 F 1.012(xt call to)-.15
|
||||
F F1(.FS)3.512 E F0(and)3.513 E F1(.FE)3.513 E F0(.)A .064
|
||||
(The actual te)108 722.4 R .064(xt generated by using `\\**' as well as\
|
||||
the footnote reference that appears in the footnote proper)-.15 F
|
||||
203.72(1995/08/23 2)283.22 768 R EP
|
||||
%%Page: 3 3
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 319.36(f-html-ms\(1\) unrof)-.25 F
|
||||
(f-html-ms\(1\))-.25 E .065(are controlled by tw)108 84 R 2.565(oo)-.1 G
|
||||
.065(ptions as e)-2.565 F .066(xplained under OPTIONS abo)-.15 F -.15
|
||||
(ve)-.15 G 5.066(.A).15 G -.1(wa)-2.5 G .066
|
||||
(rning message is printed on termi-).1 F .218
|
||||
(nation if `\\**' has been used b)108 96 R .218
|
||||
(ut a corresponding footnote w)-.2 F .218(as not seen.)-.1 F .218
|
||||
(As an alternati)5.218 F .518 -.15(ve t)-.25 H 2.718(o`).15 G .217
|
||||
(\\**', the ne)-2.718 F(w)-.25 E(request)108 108 Q/F1 10/Times-Bold@0 SF
|
||||
(.F)2.706 E(A)-.9 E F0 .207
|
||||
(can be used to produce a footnote anchor together with a h)2.706 F
|
||||
(yperte)-.05 E .207(xt link; the anchor is the ar)-.15 F(gu-)-.18 E
|
||||
(ment to the macro \(ho)108 120 Q(we)-.25 E -.15(ve)-.25 G .8 -.4(r, `)
|
||||
.15 H(\\**' itself must not be used in a call to).4 E F1(.F)2.5 E(A)-.9
|
||||
E F0(\).)A(Lik)108 136.8 Q -.25(ew)-.1 G .072(ise, a h).25 F(yperte)-.05
|
||||
E .071
|
||||
(xt reference is created for each use of the table of contents macros)
|
||||
-.15 F F1(.XS)2.571 E F0(and)2.571 E F1(.XE)2.571 E F0(\(option-)2.571 E
|
||||
(ally accompanied by calls to)108 148.8 Q F1(.XA)2.5 E F0(\).)A/F2 9
|
||||
/Times-Bold@0 SF(SEE ALSO)72 165.6 Q F1(unr)108 177.6 Q(off)-.18 E F0
|
||||
(\(1\),)A F1(unr)2.5 E(off-html)-.18 E F0(\(1\),)A F1(tr)2.5 E(off)-.18
|
||||
E F0(\(1\),)A F1(ms)2.5 E F0(\(5 or 7\).)A(Unrof)108 194.4 Q 2.5(fP)-.25
|
||||
G(rogrammer')-2.5 E 2.5(sM)-.55 G(anual.)-2.5 E(http://www)108 211.2 Q
|
||||
(.informatik.uni-bremen.de/~net/unrof)-.65 E(f)-.25 E 1.998
|
||||
(Berners-Lee, Connolly)108 228 R 4.498(,e)-.65 G 4.498(ta)-4.498 G 1.998
|
||||
(l., HyperT)-4.498 F -.15(ex)-.7 G 4.498(tM).15 G 1.998
|
||||
(arkup Language Speci\214cation\2122.0, Internet Draft, Internet)-4.498
|
||||
F(Engineering T)108 240 Q(ask F)-.8 E(orce.)-.15 E F2 -.09(BU)72 256.8 S
|
||||
(GS).09 E F0 .489(The macro)108 268.8 R F1(.UL)2.989 E F0 .489
|
||||
(is currently mapped to a call to)2.989 F F1(.I)2.988 E F0 2.988(,a)C
|
||||
2.988(su)-2.988 G .488(nderlining is not supported by the HTML back-end)
|
||||
-2.988 F(of)108 280.8 Q/F3 10/Times-Italic@0 SF(unr)2.5 E(of)-.45 E(f)
|
||||
-.18 E F0(1.0.)2.5 E -.15(Fo)108 297.6 S 1.018
|
||||
(otnote references and requests such as).15 F F1(.sp)3.518 E F0 1.018
|
||||
(that cause non-character)3.518 F(-le)-.2 E -.15(ve)-.25 G 3.518(lm).15
|
||||
G 1.018(arkup to be generated must)-3.518 F
|
||||
(not be used inside a numbered header)108 309.6 Q(.)-.55 E .072
|
||||
(When creating a h)108 326.4 R(yperte)-.05 E .071(xt anchor for)-.15 F
|
||||
F1(.XS)2.571 E F0(and)2.571 E F1(.XE)2.571 E F0 2.571(,t)C .071
|
||||
(here is nothing to put inside the <a> element; therefore)-2.571 F 2.5
|
||||
(an)108 338.4 S(on-breaking space is used.)-2.5 E .787
|
||||
(Changing the number re)108 355.2 R .788(gister format of `NH' to get r\
|
||||
oman or alphabetic section numbers does not w)-.15 F(ork,)-.1 E(ob)108
|
||||
367.2 Q(viously)-.15 E(.)-.65 E 203.72(1995/08/23 3)283.22 768 R EP
|
||||
%%Trailer
|
||||
end
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,671 @@
|
|||
.\" $Revision: 1.12 $
|
||||
.ds Ve 1.0
|
||||
.\"
|
||||
.de Ex
|
||||
.RS
|
||||
.nf
|
||||
.nr sf \\n(.f
|
||||
.if !\\n(.U \{\
|
||||
. ft B
|
||||
. if n .sp
|
||||
. if t .sp .5 \}
|
||||
..
|
||||
.de Ee
|
||||
.if !\\n(.U \{\
|
||||
. ft \\n(sf
|
||||
. if n .sp
|
||||
. if t .sp .5 \}
|
||||
.fi
|
||||
.RE
|
||||
..
|
||||
.\"
|
||||
.de Sd
|
||||
.ds Dt \\$2
|
||||
..
|
||||
.\"
|
||||
.Sd $Date: 1995/08/23 12:07:31 $
|
||||
.TH unroff-html 1 "\*(Dt"
|
||||
.SH NAME
|
||||
unroff-html \- HTML 2.0 back-end for the programmable troff translator
|
||||
.SH SYNOPSIS
|
||||
.B unroff
|
||||
[
|
||||
.B \-fhtml
|
||||
] [
|
||||
.BI \-m package
|
||||
] [
|
||||
.IR file " | " option...\&
|
||||
]
|
||||
.SH OVERVIEW
|
||||
When called with the
|
||||
.B \-fhtml
|
||||
option,
|
||||
.I unroff
|
||||
loads the back-end for the Hypertext Markup Language (HTML) version 2.0.
|
||||
Please read
|
||||
.BR unroff (1)
|
||||
first for an overview of the Scheme-based, programmable troff translator
|
||||
and for a description of the generic options that exist in
|
||||
addition to
|
||||
.B \-f
|
||||
and
|
||||
.BR \-m .
|
||||
For information about extending and programming
|
||||
.I unroff
|
||||
also refer to the
|
||||
.IR "Unroff Programmer's Manual" .
|
||||
.LP
|
||||
.I unroff
|
||||
is usually invoked with an additional
|
||||
.BI \-m package
|
||||
option (such as
|
||||
.B \-ms
|
||||
or
|
||||
.BR \-man )
|
||||
to load the translation rules for the troff macros and other elements
|
||||
defined by the macro package that is used to typeset the document.
|
||||
If no
|
||||
.B \-m
|
||||
option is supplied, only the standard troff requests, special characters,
|
||||
escape sequences, etc. are recognized and translated to HTML by
|
||||
.I unroff
|
||||
as described in this manual.
|
||||
.SH OPTIONS
|
||||
The following HTML-specific options can be specified in the command
|
||||
line after the generic options.
|
||||
See
|
||||
.BR unroff (1)
|
||||
for a general description of keyword/value options and their types
|
||||
and for a list of options that are not specific to the target language.
|
||||
.TP
|
||||
.BR title " (string)"
|
||||
The value to be used for the <title> element in HTML output files.
|
||||
This option may be ignored by the code implementing a specific
|
||||
macro set, e.\|g. when special rules are employed to derive the title
|
||||
from the contents of the troff input files.
|
||||
Whether or not this option is required also depends on the specific
|
||||
.B \-m
|
||||
option used, but it may be omitted if no
|
||||
.B \-m
|
||||
option is given.
|
||||
.TP
|
||||
.BR document " (string)"
|
||||
The prefix used for the names of all output files.
|
||||
May be ignored depending on the macro package that has been selected.
|
||||
.TP
|
||||
.BR mail-address " (string)"
|
||||
The caller's mail address; may be used for \*(lqmailto:\*(rq URLs,
|
||||
in particular for the \*(lqhref\*(rq attribute of the <link>
|
||||
element that is usually generated.
|
||||
.TP
|
||||
.BR tt-preformat " (boolean)"
|
||||
If 1, font changes to a font that is mapped to the <tt> element
|
||||
are honored inside non-filled text (as described below).
|
||||
The default is 0, i.\|e. the font changes will be recorded, but no
|
||||
corresponding HTML tags will be emitted for them.
|
||||
.TP
|
||||
.BR handle-eqn " (string)"
|
||||
.TP
|
||||
.BR handle-tbl " (string)"
|
||||
.TP
|
||||
.BR handle-pic " (string)"
|
||||
These options specify how equations, tables, and pictures encountered
|
||||
in the troff input are processed.
|
||||
Possible values are \*(lqcopy\*(rq to include the raw eqn, tbl, or
|
||||
pic commands as pre-formatted text, \*(lqtext\*(rq to run the
|
||||
respective troff preprocessor (eqn, tbl, or pic) and include its output
|
||||
as pre-formatted text, or \*(lqgif\*(rq to convert the preprocessor
|
||||
output to a GIF image and include it in the HTML document as
|
||||
an inline image.
|
||||
The default is \*(lqtext\*(rq for
|
||||
.BR handle-tbl ,
|
||||
\*(lqgif\*(rq for the other options.
|
||||
See DESCRIPTION below for more information.
|
||||
.TP
|
||||
.BR eqn " (string)"
|
||||
.TP
|
||||
.BR tbl " (string)"
|
||||
.TP
|
||||
.BR pic " (string)"
|
||||
These options specify the programs to invoke as the eqn, tbl,
|
||||
and pic preprocessors.
|
||||
The defaults are site-dependent.
|
||||
.TP
|
||||
.BR troff-to-text " (string)"
|
||||
.TP
|
||||
.BR troff-to-gif " (string)"
|
||||
The programs to invoke for converting the output of a troff preprocessor
|
||||
to plain text or to a GIF image.
|
||||
The default values are site-dependent.
|
||||
See DESCRIPTION below for more information on these options.
|
||||
.SH FILES
|
||||
If no
|
||||
.B \-m
|
||||
option is supplied,
|
||||
.I unroff
|
||||
reads the specified input files and sends the HTML document to
|
||||
standard output, unless the
|
||||
.B document
|
||||
option is given, in which case its value together
|
||||
with the suffix \*(lq.html\*(rq is used as the name of an
|
||||
output file.
|
||||
If no input files are specified, input is taken from standard input.
|
||||
The output is enclosed by the usual HTML boiler-plate (<html>, <head>,
|
||||
and <body> elements), a <title> element with the specified title
|
||||
(or the value of
|
||||
.B document
|
||||
if no title has been given, or a default title if both are omitted),
|
||||
a <link> element with rev= and href= attributes if
|
||||
.B mail-address
|
||||
has been set, and any pending end tags are generated on end of input.
|
||||
.LP
|
||||
Note that this is the default action that is performed in the
|
||||
rare case when no macro package name has been specified, i.\|e. when
|
||||
processing \*(lqbare\*(rq troff input.
|
||||
Somewhat different rules may apply when processing, for
|
||||
example, a group of UNIX manual pages
|
||||
.RB ( \-man ).
|
||||
.LP
|
||||
See
|
||||
.BR unroff (1)
|
||||
for a list of Scheme files that are loaded on startup.
|
||||
.SH DESCRIPTION
|
||||
.SS "OUTPUT TRANSLATIONS"
|
||||
The characters `<', `>', and `&' are replaced by the entities
|
||||
`<', `>', and `&' on output.
|
||||
In addition, the quote character is mapped to `"' where
|
||||
appropriate.
|
||||
New mappings can be added by means of the
|
||||
.I defchar
|
||||
Scheme primitive as explained in the Programmer's Manual.
|
||||
.SS COMMENTS
|
||||
each troff comment is translated to a corresponding HTML tag
|
||||
followed by a newline; empty comments are ignored.
|
||||
Comments are also ignored when appearing inside a macro body.
|
||||
.SS "ESCAPE SEQUENCES"
|
||||
The following is a list of troff escape sequences that are recognized
|
||||
and the HTML output generated for them.
|
||||
Any escape sequence that does not appear in the list
|
||||
expands to the character after the escape character, and
|
||||
a warning is printed in this case.
|
||||
New definitions can be added and the predefined mappings can
|
||||
be replaced by calling the
|
||||
.I defescape
|
||||
Scheme primitive in the user's initialization file, in a user-supplied
|
||||
Scheme file, in a document, or on a site-wide basis by modifying
|
||||
the file
|
||||
.B scm/html/common.scm
|
||||
in the installation directory.
|
||||
.LP
|
||||
.nf
|
||||
.if !\n(.U .ta 8n 16n 24n 32n 40n 48n 56n
|
||||
\e& nothing
|
||||
\e- -
|
||||
\e| nothing
|
||||
\e^ nothing
|
||||
\e\e \e
|
||||
\e' '
|
||||
\e` `
|
||||
\e" rest of line as HTML comment tag
|
||||
\e% nothing
|
||||
\e{ conditional input begin
|
||||
\e} conditional input end
|
||||
\e* contents of string
|
||||
\espace space
|
||||
\e0 space
|
||||
\ec nothing; eats following newline
|
||||
\ee \e
|
||||
\es nothing
|
||||
\eu nothing, prints warning
|
||||
\ed nothing, prints warning
|
||||
\ev nothing, prints warning
|
||||
\eo its argument, prints warning
|
||||
\ez its argument, prints warning
|
||||
\ek sets specified register to zero
|
||||
\eh appropriate number of spaces for positive argument
|
||||
\ew length of argument in units
|
||||
\el repeats specified character, or <hr>
|
||||
\en contents of number register
|
||||
\ef see description of fonts below
|
||||
.fi
|
||||
.SS "SPECIAL CHARACTERS"
|
||||
The following special characters are mapped to their equivalent
|
||||
ISO-Latin 1 entities:
|
||||
.LP
|
||||
.nf
|
||||
\e(12 \e(14 \e(34 \e(*b \e(*m \e(+- \e(:A
|
||||
\e(:O \e(:U \e(:a \e(:o \e(:u \e(A: \e(Cs
|
||||
\e(O: \e(Po \e(S1 \e(S2 \e(S3 \e(U: \e(Ye
|
||||
\e(a: \e(bb \e(cd \e(co \e(ct \e(de \e(di
|
||||
\e(es \e(hy \e(mu \e(no \e(o: \e(r! \e(r?
|
||||
\e(rg \e(sc \e(ss \e(tm \e(u:
|
||||
.fi
|
||||
.LP
|
||||
Heuristics have to be used for the following special characters:
|
||||
.LP
|
||||
.nf
|
||||
\e(** *
|
||||
\e(-> ->
|
||||
\e(<- <-
|
||||
\e(<= <=
|
||||
\e(== ==
|
||||
\e(>= >=
|
||||
\e(Fi ffi
|
||||
\e(Fl ffl
|
||||
\e(aa '
|
||||
\e(ap ~
|
||||
\e(br |
|
||||
\e(bu + (prints a warning)
|
||||
\e(bv |
|
||||
\e(ci O
|
||||
\e(dd *** (prints a warning)
|
||||
\e(dg ** (prints a warning)
|
||||
\e(em --
|
||||
\e(en -
|
||||
\e(eq =
|
||||
\e(ff ff
|
||||
\e(fi fi
|
||||
\e(fl fl
|
||||
\e(fm '
|
||||
\e(ga `
|
||||
\e(lh <=
|
||||
\e(lq ``
|
||||
\e(mi -
|
||||
\e(or |
|
||||
\e(pl +
|
||||
\e(rh =>
|
||||
\e(rq ''
|
||||
\e(ru _
|
||||
\e(sl /
|
||||
\e(sq o (prints a warning)
|
||||
\e(ul _
|
||||
\e(~= ~
|
||||
.fi
|
||||
.LP
|
||||
A warning is printed to standard error output for any special
|
||||
character not mentioned in this section.
|
||||
To add new definitions, and to customize existing ones, the
|
||||
.I defspecial
|
||||
Scheme primitive can be used.
|
||||
.SS "NON-FILLED TEXT"
|
||||
The
|
||||
.B .nf
|
||||
and
|
||||
.B .fi
|
||||
troff requests generate pairs of <pre> and </pre> tags.
|
||||
Nested requests are treated correctly, and currently
|
||||
active character formatting elements such as <i> (resulting
|
||||
from troff font changes) are temporarily disabled while
|
||||
the <pre> or </pre> is emitted.
|
||||
A warning is printed if a \*(lqtab\*(rq character is encountered
|
||||
within filled text.
|
||||
.SS FONTS
|
||||
The `\ef' escape sequence and the requests
|
||||
.B .ft
|
||||
(change current font) and
|
||||
.B .fp
|
||||
(mount font at font position) are supported in the usual way,
|
||||
both with numeric font positions as well as font names and
|
||||
the special name `P' to denote the previous font.
|
||||
The font position of the currently active font is available
|
||||
through the read-only number register `.f'.
|
||||
Initially, the font `R' is mounted on font positions 1 and 4,
|
||||
font `I' on font position 2, and font `B' on position 3.
|
||||
.LP
|
||||
To map troff font names to HTML character formatting elements,
|
||||
the \f2define-font\fP Scheme procedure is called with the name
|
||||
of a troff font to be used in documents, and
|
||||
HTML start and end tags to be emitted when changing to this font,
|
||||
or when changing
|
||||
.I from
|
||||
this font to another font, respectively.
|
||||
Whether <tt> and </tt> is generated inside non-filled (pre-formatted)
|
||||
text for fixed-width fonts is controlled by the option
|
||||
.BR tt-preformat .
|
||||
The following calls to
|
||||
.I define-font
|
||||
are evaluated on startup:
|
||||
.LP
|
||||
.nf
|
||||
.if !\n(.U \{\
|
||||
. ft C
|
||||
. ps -1
|
||||
. vs -1 \}
|
||||
(define-font "R" "" "")
|
||||
(define-font "I" '<i> '</i>)
|
||||
(define-font "B" '<b> '</b>)
|
||||
(define-font "C" '<tt> '</tt>)
|
||||
(define-font "CW" '<tt> '</tt>)
|
||||
(define-font "CO" '<i> '</i>) ; kludge for Courier-Oblique
|
||||
.if !\n(.U \{\
|
||||
. ft
|
||||
. ps
|
||||
. vs \}
|
||||
.fi
|
||||
.LP
|
||||
Site administrators may add definitions here for fonts used
|
||||
at their site.
|
||||
Users can define mappings for new fonts by placing corresponding
|
||||
definitions in their documents or document-specific Scheme files.
|
||||
.SS "OTHER TROFF REQUESTS"
|
||||
The
|
||||
.B .br
|
||||
request generates a <br> tag.
|
||||
.LP
|
||||
.B .sp
|
||||
requires a positive argument and is mapped to the appropriate number
|
||||
of <p> tags (or newline characters inside non-filled/pre-formatted
|
||||
text).
|
||||
Likewise, the request
|
||||
.BR .ti ,
|
||||
when called with a positive indent, produces a <br> followed by the
|
||||
appropriate number of non-breakable spaces.
|
||||
.LP
|
||||
The
|
||||
.B .tl
|
||||
requests justs emits the title parts delimited by spaces.
|
||||
It is impossible to preserve the meaning of this request
|
||||
in HTML 2.0.
|
||||
.LP
|
||||
The horizontal line drawing escape sequence `\el' just repeats
|
||||
the specified character (or underline as default) to draw
|
||||
a line.
|
||||
If the given length looks like it could be the line length
|
||||
(that is, if it exceeds a certain value), a <hr> tag
|
||||
is produced instead.
|
||||
Example:
|
||||
.LP
|
||||
.nf
|
||||
\el'5c\e&-'
|
||||
\el'60'
|
||||
.fi
|
||||
.LP
|
||||
The first of these two requests
|
||||
would produce a line of 20 dashes, while the second
|
||||
request would generate a <hr> tag (the '\e&' is required
|
||||
because the dash could be interpreted as a continuation of
|
||||
the numeric expression).
|
||||
.LP
|
||||
Centering
|
||||
.RB ( .ce )
|
||||
is simulated by producing a <br> at the end of each line, as
|
||||
this functionality is not supported by HTML 2.0.
|
||||
.LP
|
||||
The following requests are silently ignored; as the corresponding
|
||||
functions cannot be expressed in HTML 2.0 or are controlled by
|
||||
the client.
|
||||
Ignoring these requests most likely does no harm.
|
||||
.LP
|
||||
.nf
|
||||
.ad .bp .ch .fl .hw .hy .lg
|
||||
.na .ne .nh .ns .pl .ps .rs
|
||||
.vs .wh
|
||||
.fi
|
||||
.LP
|
||||
All troff requests not mentioned in this section by default
|
||||
cause a warning message to be printed to standard error output,
|
||||
except for these basic requests which have their usual
|
||||
semantics:
|
||||
.LP
|
||||
.nf
|
||||
.am .as .de .ds .ec .el .ie
|
||||
.if .ig .nr .rm .rr .so .tm
|
||||
.fi
|
||||
.LP
|
||||
The
|
||||
.I defrequest
|
||||
Scheme primitive is used to associate an event handling procedure
|
||||
with a request as documented in the Programmer's Manual.
|
||||
.SS "END OF SENTENCE"
|
||||
The sequence \*(lq<tt>space</tt>\*(rq is produced at the end of
|
||||
each sentence to provide additional space, except inside non-filled text.
|
||||
A sentence is defined a sequence of characters followed by
|
||||
a period, a question mark, or an exclamation mark, followed
|
||||
by a newline.
|
||||
The usual convention to suppress end-of-sentence recognition
|
||||
by adding the escape sequence `\e&' is correctly implemented by
|
||||
.IR unroff .
|
||||
To change the end-of-sentence function, the
|
||||
.I sentence-event
|
||||
can be redefined from within Scheme code as described in
|
||||
the Programmer's Manual.
|
||||
.SS "SCALE INDICATORS"
|
||||
As the notions of vertical spacing, character width, device
|
||||
resolution, etc. do not exist in HTML, the scaling for the
|
||||
usual troff scale indicators is defined once on startup and
|
||||
then remains constant.
|
||||
For simplicity, the scaling usually employed by
|
||||
.BR nroff (1)
|
||||
is taken.
|
||||
.SS "EQUATIONS, TABLES, PICTURES"
|
||||
Interpretation of embedded eqn, tbl, and pic preprocessor input
|
||||
is controlled by the options
|
||||
.BR handle-eqn ,
|
||||
.BR handle-tbl ,
|
||||
and
|
||||
.B handle-pic
|
||||
(see OPTIONS above).
|
||||
These options affect the input lines from a starting
|
||||
.BR .EQ ,
|
||||
.BR .TS ,
|
||||
or
|
||||
.B .PS
|
||||
request up to and including the matching
|
||||
.BR .EN ,
|
||||
.BR .TE ,
|
||||
or
|
||||
.B .PE
|
||||
request, as well as text surrounded by the current eqn
|
||||
inline equation delimiters.
|
||||
Each of the options can have one the following values:
|
||||
.TP
|
||||
.B copy
|
||||
The preprocessor input (including the enclosing requests) is
|
||||
placed inside <pre> and </pre>.
|
||||
If assigned to the option
|
||||
.BR handle-eqn ,
|
||||
inline equations are rendered in the font currently mounted
|
||||
on font position 2.
|
||||
.TP
|
||||
.B text
|
||||
The input is sent to the respective preprocessor (as specified
|
||||
by the options
|
||||
.BR eqn ,
|
||||
.BR tbl ,
|
||||
or
|
||||
.BR pic ),
|
||||
and its result is piped to the shell command referred to by the
|
||||
option
|
||||
.BR troff-to-text ,
|
||||
which typically involves a call to
|
||||
.BR nroff (1)
|
||||
or an equivalent command.
|
||||
As with \*(lqcopy\*(rq, the result is then placed inside
|
||||
<pre> and </pre>, unless the source is an inline equation.
|
||||
.IP
|
||||
The value of
|
||||
.B troff-to-text
|
||||
is filtered through a call to the
|
||||
.I substitute
|
||||
Scheme primitive with the name of an output file as its argument;
|
||||
this file name can be referenced from within the option's value
|
||||
by the substitute specifier \*(lq%1%\*(rq (see the Programmer's
|
||||
Manual for a description of
|
||||
.I substitute
|
||||
and a list of substitute specifiers).
|
||||
Here is a typical value for the
|
||||
.B troff-to-text
|
||||
option:
|
||||
.Ex
|
||||
"groff \-Tascii | col \-b | sed '/^[ \et]*$/d' > %1%"
|
||||
.Ee
|
||||
.TP
|
||||
.B gif
|
||||
Input lines are preprocessed as described under \*(lqtext\*(rq, and
|
||||
the result is piped to the shell command named by the option
|
||||
.BR troff-to-gif .
|
||||
The latter is subject to a call to
|
||||
.I substitute
|
||||
with the name of a temporary file (which may be used to store intermediate
|
||||
PostScript output) and the name of the output file where the resulting
|
||||
GIF image must be stored.
|
||||
The entire preprocessor input is replaced by an <img> element with
|
||||
a reference to the GIF file and a suitable \*(lqalt=\*(rq attribute.
|
||||
Unless processing an inline equation, the <img> element is
|
||||
surrounded by <p> tags.
|
||||
.IP
|
||||
The names of the files containing the GIF images are generated
|
||||
from the value of the
|
||||
.B document
|
||||
option, a sequence number, and the suffix \*(lq.gif\*(rq.
|
||||
Therefore, the
|
||||
.B document
|
||||
option must have been set when using the \*(lqgif\*(rq method,
|
||||
otherwise a warning is printed and the preprocessor input
|
||||
is skipped.
|
||||
.LP
|
||||
In any case, the output of a call to eqn is ignored if the
|
||||
input consists of calls to \*(lqdelim\*(rq or \*(lqdefine\*(rq
|
||||
and empty lines exclusively.
|
||||
When processing eqn input, calls to \*(lqdelim\*(rq are intercepted by
|
||||
.I unroff
|
||||
to record changes of the inline equation delimiters.
|
||||
.SS "HYPERTEXT LINKS"
|
||||
The facilities for embedding arbitrary hypertext links in troff
|
||||
documents are still experimental in this version of
|
||||
.I unroff
|
||||
and thus are likely to change in future releases.
|
||||
To use them, mention the file name \*(lqhyper.scm\*(rq in the
|
||||
command line before any troff source files.
|
||||
At the beginning of the first troff file, source the file
|
||||
\*(lqtmac.hyper\*(rq from the directory \*(lqdoc\*(rq like this:
|
||||
.LP
|
||||
.nf
|
||||
.if !\en(.U .so tmac.hyper
|
||||
.fi
|
||||
.LP
|
||||
The request
|
||||
.B .Hr
|
||||
can then be used to create a hypertext link.
|
||||
Its usage is:
|
||||
.LP
|
||||
.nf
|
||||
.Hr -url URL anchor-text [suffix]
|
||||
.Hr -symbolic label anchor-text [suffix]
|
||||
.Hr troff-text
|
||||
.fi
|
||||
.LP
|
||||
The first two forms are recognized by
|
||||
.I unroff
|
||||
and the third form is recognized by troff.
|
||||
The first form is used for links pointing to external resources,
|
||||
and the second one is used for forward or backward links referencing
|
||||
anchors defined in a file belonging to the same document.
|
||||
An anchor is placed in the document by calling the request
|
||||
.BR .Ha :
|
||||
.LP
|
||||
.nf
|
||||
.Ha label anchor-text
|
||||
.fi
|
||||
.LP
|
||||
The label specified in a call to
|
||||
.B .Ha
|
||||
can then be used in calls to
|
||||
.BR ".Hr -symbolic" .
|
||||
All symbolic references must have been resolved at the end of the document.
|
||||
The \*(lqanchor-text\*(rq is placed between the tags <a> and </a>;
|
||||
\*(lqsuffix\*(rq is appended to the closing </a> if present.
|
||||
\*(lqtroff-text\*(rq is just formatted in the normal way.
|
||||
Quotes must be used if any of the arguments contains spaces.
|
||||
.LP
|
||||
Use of the hypertext facilities is demonstrated by the troff source
|
||||
of the Programmer's Manual that is included in the
|
||||
.I unroff
|
||||
distribution.
|
||||
.SH "SCHEME PROCEDURES"
|
||||
The following Scheme procedures, macros, and variables are defined
|
||||
by the HTML 2.0 back-end and can be used from within user-supplied
|
||||
Scheme code:
|
||||
.TP
|
||||
(\f2define-font name start-tag end-tag\fP)
|
||||
Associates a HTML start tag and end tag (symbols) with a troff
|
||||
font name (string) as explained under FONTS above.
|
||||
The font name can then be used in
|
||||
.BR .fp ,
|
||||
.BR .ft ,
|
||||
and `\ef' requests.
|
||||
.TP
|
||||
(\f2reset-font\fP)
|
||||
Resets both the current and previous font to the font mounted
|
||||
on position 1.
|
||||
.TP
|
||||
\f2current-font\fP
|
||||
.TP
|
||||
\f2previous-font\fP
|
||||
These variables hold the current and previous font as
|
||||
(integer) font positions.
|
||||
.TP
|
||||
(\f2with-font-preserved\fP . \f2body\fP)
|
||||
This macro can be used to temporarily change to font \*(lqR\*(rq,
|
||||
evaluate \f2body\fP, and revert to the font that has been
|
||||
active when the form was entered.
|
||||
The macro returns a string that can be output using the
|
||||
primitive \f2emit\fP or returned from an event procedure.
|
||||
.TP
|
||||
(\f2preform enable?\fP)
|
||||
If the argument is #t, pre-formatted text is enabled, otherwise disabled.
|
||||
.TP
|
||||
\f2preform?\fP
|
||||
This boolean variable holds #t if pre-formatted text is enabled,
|
||||
#f otherwise.
|
||||
.TP
|
||||
(\f2with-preform-preserved\fP . \f2body\fP)
|
||||
A macro that can be used to temporarily disable pre-formatted
|
||||
text, evaluate \f2body\fP, and then re-enable it if appropriate.
|
||||
The macro expands to a string that must be output or returned from
|
||||
an event procedure.
|
||||
.TP
|
||||
(\f2parse-unquote string\fP)
|
||||
Temporarily establishes an output translation to map the quote
|
||||
character to \*(lq"\*(rq, applies \f2parse\fP (explained
|
||||
in the Programmer's Manual) to its argument, and returns the result.
|
||||
.TP
|
||||
(\f2center n\fP)
|
||||
Centers the next \f2n\fP input lines (see description of
|
||||
.B .ce
|
||||
under TROFF REQUESTS above).
|
||||
If \f2n\fP is zero, centering is stopped.
|
||||
.TP
|
||||
\f2nbsp\fP
|
||||
A Scheme variable that holds a string interpreted as a non-breaking
|
||||
space by HTML clients.
|
||||
.SH "SEE ALSO"
|
||||
.BR unroff (1),
|
||||
.BR unroff-html-man (1),
|
||||
.BR unroff-html-ms (1);
|
||||
.br
|
||||
.BR troff (1),
|
||||
.BR nroff (1),
|
||||
.BR groff (1),
|
||||
.BR eqn (1),
|
||||
.BR tbl (1),
|
||||
.BR pic (1).
|
||||
.LP
|
||||
Unroff Programmer's Manual.
|
||||
.LP
|
||||
http://www.informatik.uni-bremen.de/~net/unroff
|
||||
.LP
|
||||
Berners-Lee, Connolly, et al.,
|
||||
HyperText Markup Language Specification\(em2.0,
|
||||
Internet Draft, Internet Engineering Task Force.
|
||||
.SH BUGS
|
||||
The `\espace' escape sequence should be mapped to the   entity
|
||||
(non-breaking space), but this entity is not supported by a number
|
||||
of HTML clients.
|
||||
.LP
|
||||
Only the font positions 1 to 9 can currently be used.
|
||||
There should be no limit.
|
||||
.LP
|
||||
The extra space generated for end of sentence should be configurable.
|
||||
.LP
|
||||
Underlining should be supported.
|
||||
|
|
@ -0,0 +1,659 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:21. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<!-- $Revision: 1.12 $ -->
|
||||
<title>Manual page for unroff-html(1)</title>
|
||||
</head>
|
||||
<body>
|
||||
<h2>
|
||||
unroff-html - HTML 2.0 back-end for the programmable troff translator
|
||||
<hr></h2>
|
||||
<h2>SYNOPSIS</h2>
|
||||
<b>unroff
|
||||
</b>[
|
||||
<b>-fhtml
|
||||
</b>] [
|
||||
<b>-m</b><i>package
|
||||
</i>] [
|
||||
<i>file</i> | <i>option...
|
||||
</i>]
|
||||
<h2>OVERVIEW</h2>
|
||||
When called with the
|
||||
<b>-fhtml
|
||||
</b>option,
|
||||
<i>unroff
|
||||
</i>loads the back-end for the Hypertext Markup Language (HTML) version 2.0.<tt> </tt>
|
||||
Please read
|
||||
<b>unroff</b>(1)
|
||||
first for an overview of the Scheme-based, programmable troff translator
|
||||
and for a description of the generic options that exist in
|
||||
addition to
|
||||
<b>-f
|
||||
</b>and
|
||||
<b>-m</b>.<tt> </tt>
|
||||
For information about extending and programming
|
||||
<i>unroff
|
||||
</i>also refer to the
|
||||
<i>Unroff Programmer's Manual</i>.<tt> </tt>
|
||||
<p>
|
||||
<i>unroff
|
||||
</i>is usually invoked with an additional
|
||||
<b>-m</b><i>package
|
||||
</i>option (such as
|
||||
<b>-ms
|
||||
</b>or
|
||||
<b>-man</b>)
|
||||
to load the translation rules for the troff macros and other elements
|
||||
defined by the macro package that is used to typeset the document.<tt> </tt>
|
||||
If no
|
||||
<b>-m
|
||||
</b>option is supplied, only the standard troff requests, special characters,
|
||||
escape sequences, etc. are recognized and translated to HTML by
|
||||
<i>unroff
|
||||
</i>as described in this manual.<tt> </tt>
|
||||
<h2>OPTIONS</h2>
|
||||
The following HTML-specific options can be specified in the command
|
||||
line after the generic options.<tt> </tt>
|
||||
See
|
||||
<b>unroff</b>(1)
|
||||
for a general description of keyword/value options and their types
|
||||
and for a list of options that are not specific to the target language.<tt> </tt>
|
||||
<dl>
|
||||
<dt><b>title</b> (string)
|
||||
<dd>
|
||||
The value to be used for the <title> element in HTML output files.<tt> </tt>
|
||||
This option may be ignored by the code implementing a specific
|
||||
macro set, e.g. when special rules are employed to derive the title
|
||||
from the contents of the troff input files.<tt> </tt>
|
||||
Whether or not this option is required also depends on the specific
|
||||
<b>-m
|
||||
</b>option used, but it may be omitted if no
|
||||
<b>-m
|
||||
</b>option is given.<tt> </tt>
|
||||
<dt><b>document</b> (string)
|
||||
<dd>
|
||||
The prefix used for the names of all output files.<tt> </tt>
|
||||
May be ignored depending on the macro package that has been selected.<tt> </tt>
|
||||
<dt><b>mail-address</b> (string)
|
||||
<dd>
|
||||
The caller's mail address; may be used for ``mailto:'' URLs,
|
||||
in particular for the ``href'' attribute of the <link>
|
||||
element that is usually generated.<tt> </tt>
|
||||
<dt><b>tt-preformat</b> (boolean)
|
||||
<dd>
|
||||
If 1, font changes to a font that is mapped to the <tt> element
|
||||
are honored inside non-filled text (as described below).<tt> </tt>
|
||||
The default is 0, i.e. the font changes will be recorded, but no
|
||||
corresponding HTML tags will be emitted for them.<tt> </tt>
|
||||
<dt><b>handle-eqn</b> (string)
|
||||
<dd>
|
||||
<dt><b>handle-tbl</b> (string)
|
||||
<dd>
|
||||
<dt><b>handle-pic</b> (string)
|
||||
<dd>
|
||||
These options specify how equations, tables, and pictures encountered
|
||||
in the troff input are processed.<tt> </tt>
|
||||
Possible values are ``copy'' to include the raw eqn, tbl, or
|
||||
pic commands as pre-formatted text, ``text'' to run the
|
||||
respective troff preprocessor (eqn, tbl, or pic) and include its output
|
||||
as pre-formatted text, or ``gif'' to convert the preprocessor
|
||||
output to a GIF image and include it in the HTML document as
|
||||
an inline image.<tt> </tt>
|
||||
The default is ``text'' for
|
||||
<b>handle-tbl</b>,
|
||||
``gif'' for the other options.<tt> </tt>
|
||||
See DESCRIPTION below for more information.<tt> </tt>
|
||||
<dt><b>eqn</b> (string)
|
||||
<dd>
|
||||
<dt><b>tbl</b> (string)
|
||||
<dd>
|
||||
<dt><b>pic</b> (string)
|
||||
<dd>
|
||||
These options specify the programs to invoke as the eqn, tbl,
|
||||
and pic preprocessors.<tt> </tt>
|
||||
The defaults are site-dependent.<tt> </tt>
|
||||
<dt><b>troff-to-text</b> (string)
|
||||
<dd>
|
||||
<dt><b>troff-to-gif</b> (string)
|
||||
<dd>
|
||||
The programs to invoke for converting the output of a troff preprocessor
|
||||
to plain text or to a GIF image.<tt> </tt>
|
||||
The default values are site-dependent.<tt> </tt>
|
||||
See DESCRIPTION below for more information on these options.<tt> </tt>
|
||||
</dl>
|
||||
<h2>FILES</h2>
|
||||
If no
|
||||
<b>-m
|
||||
</b>option is supplied,
|
||||
<i>unroff
|
||||
</i>reads the specified input files and sends the HTML document to
|
||||
standard output, unless the
|
||||
<b>document
|
||||
</b>option is given, in which case its value together
|
||||
with the suffix ``.html'' is used as the name of an
|
||||
output file.<tt> </tt>
|
||||
If no input files are specified, input is taken from standard input.<tt> </tt>
|
||||
The output is enclosed by the usual HTML boiler-plate (<html>, <head>,
|
||||
and <body> elements), a <title> element with the specified title
|
||||
(or the value of
|
||||
<b>document
|
||||
</b>if no title has been given, or a default title if both are omitted),
|
||||
a <link> element with rev= and href= attributes if
|
||||
<b>mail-address
|
||||
</b>has been set, and any pending end tags are generated on end of input.<tt> </tt>
|
||||
<p>
|
||||
Note that this is the default action that is performed in the
|
||||
rare case when no macro package name has been specified, i.e. when
|
||||
processing ``bare'' troff input.<tt> </tt>
|
||||
Somewhat different rules may apply when processing, for
|
||||
example, a group of UNIX manual pages
|
||||
(<b>-man</b>).<tt> </tt>
|
||||
<p>
|
||||
See
|
||||
<b>unroff</b>(1)
|
||||
for a list of Scheme files that are loaded on startup.<tt> </tt>
|
||||
<h2>DESCRIPTION</h2>
|
||||
<h3>OUTPUT TRANSLATIONS</h3>
|
||||
The characters `<', `>', and `&' are replaced by the entities
|
||||
`&lt;', `&gt;', and `&amp;' on output.<tt> </tt>
|
||||
In addition, the quote character is mapped to `&quot;' where
|
||||
appropriate.<tt> </tt>
|
||||
New mappings can be added by means of the
|
||||
<i>defchar
|
||||
</i>Scheme primitive as explained in the Programmer's Manual.<tt> </tt>
|
||||
<h3>COMMENTS</h3>
|
||||
each troff comment is translated to a corresponding HTML tag
|
||||
followed by a newline; empty comments are ignored.<tt> </tt>
|
||||
Comments are also ignored when appearing inside a macro body.<tt> </tt>
|
||||
<h3>ESCAPE SEQUENCES</h3>
|
||||
The following is a list of troff escape sequences that are recognized
|
||||
and the HTML output generated for them.<tt> </tt>
|
||||
Any escape sequence that does not appear in the list
|
||||
expands to the character after the escape character, and
|
||||
a warning is printed in this case.<tt> </tt>
|
||||
New definitions can be added and the predefined mappings can
|
||||
be replaced by calling the
|
||||
<i>defescape
|
||||
</i>Scheme primitive in the user's initialization file, in a user-supplied
|
||||
Scheme file, in a document, or on a site-wide basis by modifying
|
||||
the file
|
||||
<b>scm/html/common.scm
|
||||
</b>in the installation directory.<tt> </tt>
|
||||
<p>
|
||||
<pre>
|
||||
\& nothing
|
||||
\- -
|
||||
\| nothing
|
||||
\^ nothing
|
||||
\\ \
|
||||
\' '
|
||||
\` `
|
||||
\" rest of line as HTML comment tag
|
||||
\% nothing
|
||||
\{ conditional input begin
|
||||
\} conditional input end
|
||||
\* contents of string
|
||||
\space space
|
||||
\0 space
|
||||
\c nothing; eats following newline
|
||||
\e \
|
||||
\s nothing
|
||||
\u nothing, prints warning
|
||||
\d nothing, prints warning
|
||||
\v nothing, prints warning
|
||||
\o its argument, prints warning
|
||||
\z its argument, prints warning
|
||||
\k sets specified register to zero
|
||||
\h appropriate number of spaces for positive argument
|
||||
\w length of argument in units
|
||||
\l repeats specified character, or <hr>
|
||||
\n contents of number register
|
||||
\f see description of fonts below
|
||||
</pre>
|
||||
<h3>SPECIAL CHARACTERS</h3>
|
||||
The following special characters are mapped to their equivalent
|
||||
ISO-Latin 1 entities:
|
||||
<p>
|
||||
<pre>
|
||||
\(12 \(14 \(34 \(*b \(*m \(+- \(:A
|
||||
\(:O \(:U \(:a \(:o \(:u \(A: \(Cs
|
||||
\(O: \(Po \(S1 \(S2 \(S3 \(U: \(Ye
|
||||
\(a: \(bb \(cd \(co \(ct \(de \(di
|
||||
\(es \(hy \(mu \(no \(o: \(r! \(r?
|
||||
\(rg \(sc \(ss \(tm \(u:
|
||||
</pre>
|
||||
<p>
|
||||
Heuristics have to be used for the following special characters:
|
||||
<p>
|
||||
<pre>
|
||||
\(** *
|
||||
\(-> ->
|
||||
\(<- <-
|
||||
\(<= <=
|
||||
\(== ==
|
||||
\(>= >=
|
||||
\(Fi ffi
|
||||
\(Fl ffl
|
||||
\(aa '
|
||||
\(ap ~
|
||||
\(br |
|
||||
\(bu + (prints a warning)
|
||||
\(bv |
|
||||
\(ci O
|
||||
\(dd *** (prints a warning)
|
||||
\(dg ** (prints a warning)
|
||||
\(em --
|
||||
\(en -
|
||||
\(eq =
|
||||
\(ff ff
|
||||
\(fi fi
|
||||
\(fl fl
|
||||
\(fm '
|
||||
\(ga `
|
||||
\(lh <=
|
||||
\(lq ``
|
||||
\(mi -
|
||||
\(or |
|
||||
\(pl +
|
||||
\(rh =>
|
||||
\(rq ''
|
||||
\(ru _
|
||||
\(sl /
|
||||
\(sq o (prints a warning)
|
||||
\(ul _
|
||||
\(~= ~
|
||||
</pre>
|
||||
<p>
|
||||
A warning is printed to standard error output for any special
|
||||
character not mentioned in this section.<tt> </tt>
|
||||
To add new definitions, and to customize existing ones, the
|
||||
<i>defspecial
|
||||
</i>Scheme primitive can be used.<tt> </tt>
|
||||
<h3>NON-FILLED TEXT</h3>
|
||||
The
|
||||
<b>.nf
|
||||
</b>and
|
||||
<b>.fi
|
||||
</b>troff requests generate pairs of <pre> and </pre> tags.<tt> </tt>
|
||||
Nested requests are treated correctly, and currently
|
||||
active character formatting elements such as <i> (resulting
|
||||
from troff font changes) are temporarily disabled while
|
||||
the <pre> or </pre> is emitted.<tt> </tt>
|
||||
A warning is printed if a ``tab'' character is encountered
|
||||
within filled text.<tt> </tt>
|
||||
<h3>FONTS</h3>
|
||||
The `\f' escape sequence and the requests
|
||||
<b>.ft
|
||||
</b>(change current font) and
|
||||
<b>.fp
|
||||
</b>(mount font at font position) are supported in the usual way,
|
||||
both with numeric font positions as well as font names and
|
||||
the special name `P' to denote the previous font.<tt> </tt>
|
||||
The font position of the currently active font is available
|
||||
through the read-only number register `.f'.<tt> </tt>
|
||||
Initially, the font `R' is mounted on font positions 1 and 4,
|
||||
font `I' on font position 2, and font `B' on position 3.<tt> </tt>
|
||||
<p>
|
||||
To map troff font names to HTML character formatting elements,
|
||||
the <i>define-font</i> Scheme procedure is called with the name
|
||||
of a troff font to be used in documents, and
|
||||
HTML start and end tags to be emitted when changing to this font,
|
||||
or when changing
|
||||
<i>from
|
||||
</i>this font to another font, respectively.<tt> </tt>
|
||||
Whether <tt> and </tt> is generated inside non-filled (pre-formatted)
|
||||
text for fixed-width fonts is controlled by the option
|
||||
<b>tt-preformat</b>.<tt> </tt>
|
||||
The following calls to
|
||||
<i>define-font
|
||||
</i>are evaluated on startup:
|
||||
<p>
|
||||
<pre>
|
||||
(define-font "R" "" "")
|
||||
(define-font "I" '<i> '</i>)
|
||||
(define-font "B" '<b> '</b>)
|
||||
(define-font "C" '<tt> '</tt>)
|
||||
(define-font "CW" '<tt> '</tt>)
|
||||
(define-font "CO" '<i> '</i>) ; kludge for Courier-Oblique
|
||||
</pre>
|
||||
<p>
|
||||
Site administrators may add definitions here for fonts used
|
||||
at their site.<tt> </tt>
|
||||
Users can define mappings for new fonts by placing corresponding
|
||||
definitions in their documents or document-specific Scheme files.<tt> </tt>
|
||||
<h3>OTHER TROFF REQUESTS</h3>
|
||||
The
|
||||
<b>.br
|
||||
</b>request generates a <br> tag.<tt> </tt>
|
||||
<p>
|
||||
<b>.sp
|
||||
</b>requires a positive argument and is mapped to the appropriate number
|
||||
of <p> tags (or newline characters inside non-filled/pre-formatted
|
||||
text).<tt> </tt>
|
||||
Likewise, the request
|
||||
<b>.ti</b>,
|
||||
when called with a positive indent, produces a <br> followed by the
|
||||
appropriate number of non-breakable spaces.<tt> </tt>
|
||||
<p>
|
||||
The
|
||||
<b>.tl
|
||||
</b>requests justs emits the title parts delimited by spaces.<tt> </tt>
|
||||
It is impossible to preserve the meaning of this request
|
||||
in HTML 2.0.<tt> </tt>
|
||||
<p>
|
||||
The horizontal line drawing escape sequence `\l' just repeats
|
||||
the specified character (or underline as default) to draw
|
||||
a line.<tt> </tt>
|
||||
If the given length looks like it could be the line length
|
||||
(that is, if it exceeds a certain value), a <hr> tag
|
||||
is produced instead.<tt> </tt>
|
||||
Example:
|
||||
<p>
|
||||
<pre>
|
||||
\l'5c\&-'
|
||||
\l'60'
|
||||
</pre>
|
||||
<p>
|
||||
The first of these two requests
|
||||
would produce a line of 20 dashes, while the second
|
||||
request would generate a <hr> tag (the '\&' is required
|
||||
because the dash could be interpreted as a continuation of
|
||||
the numeric expression).<tt> </tt>
|
||||
<p>
|
||||
Centering
|
||||
(<b>.ce</b>)
|
||||
is simulated by producing a <br> at the end of each line, as
|
||||
this functionality is not supported by HTML 2.0.<tt> </tt>
|
||||
<p>
|
||||
The following requests are silently ignored; as the corresponding
|
||||
functions cannot be expressed in HTML 2.0 or are controlled by
|
||||
the client.<tt> </tt>
|
||||
Ignoring these requests most likely does no harm.<tt> </tt>
|
||||
<p>
|
||||
<pre>
|
||||
.ad .bp .ch .fl .hw .hy .lg
|
||||
.na .ne .nh .ns .pl .ps .rs
|
||||
.vs .wh
|
||||
</pre>
|
||||
<p>
|
||||
All troff requests not mentioned in this section by default
|
||||
cause a warning message to be printed to standard error output,
|
||||
except for these basic requests which have their usual
|
||||
semantics:
|
||||
<p>
|
||||
<pre>
|
||||
.am .as .de .ds .ec .el .ie
|
||||
.if .ig .nr .rm .rr .so .tm
|
||||
</pre>
|
||||
<p>
|
||||
The
|
||||
<i>defrequest
|
||||
</i>Scheme primitive is used to associate an event handling procedure
|
||||
with a request as documented in the Programmer's Manual.<tt> </tt>
|
||||
<h3>END OF SENTENCE</h3>
|
||||
The sequence ``<tt>space</tt>'' is produced at the end of
|
||||
each sentence to provide additional space, except inside non-filled text.<tt> </tt>
|
||||
A sentence is defined a sequence of characters followed by
|
||||
a period, a question mark, or an exclamation mark, followed
|
||||
by a newline.<tt> </tt>
|
||||
The usual convention to suppress end-of-sentence recognition
|
||||
by adding the escape sequence `\&' is correctly implemented by
|
||||
<i>unroff</i>.<tt> </tt>
|
||||
To change the end-of-sentence function, the
|
||||
<i>sentence-event
|
||||
</i>can be redefined from within Scheme code as described in
|
||||
the Programmer's Manual.<tt> </tt>
|
||||
<h3>SCALE INDICATORS</h3>
|
||||
As the notions of vertical spacing, character width, device
|
||||
resolution, etc. do not exist in HTML, the scaling for the
|
||||
usual troff scale indicators is defined once on startup and
|
||||
then remains constant.<tt> </tt>
|
||||
For simplicity, the scaling usually employed by
|
||||
<b>nroff</b>(1)
|
||||
is taken.<tt> </tt>
|
||||
<h3>EQUATIONS, TABLES, PICTURES</h3>
|
||||
Interpretation of embedded eqn, tbl, and pic preprocessor input
|
||||
is controlled by the options
|
||||
<b>handle-eqn</b>,
|
||||
<b>handle-tbl</b>,
|
||||
and
|
||||
<b>handle-pic
|
||||
</b>(see OPTIONS above).<tt> </tt>
|
||||
These options affect the input lines from a starting
|
||||
<b>.EQ</b>,
|
||||
<b>.TS</b>,
|
||||
or
|
||||
<b>.PS
|
||||
</b>request up to and including the matching
|
||||
<b>.EN</b>,
|
||||
<b>.TE</b>,
|
||||
or
|
||||
<b>.PE
|
||||
</b>request, as well as text surrounded by the current eqn
|
||||
inline equation delimiters.<tt> </tt>
|
||||
Each of the options can have one the following values:
|
||||
<dl>
|
||||
<dt><b>copy
|
||||
</b><dd>
|
||||
The preprocessor input (including the enclosing requests) is
|
||||
placed inside <pre> and </pre>.<tt> </tt>
|
||||
If assigned to the option
|
||||
<b>handle-eqn</b>,
|
||||
inline equations are rendered in the font currently mounted
|
||||
on font position 2.<tt> </tt>
|
||||
<dt><b>text
|
||||
</b><dd>
|
||||
The input is sent to the respective preprocessor (as specified
|
||||
by the options
|
||||
<b>eqn</b>,
|
||||
<b>tbl</b>,
|
||||
or
|
||||
<b>pic</b>),
|
||||
and its result is piped to the shell command referred to by the
|
||||
option
|
||||
<b>troff-to-text</b>,
|
||||
which typically involves a call to
|
||||
<b>nroff</b>(1)
|
||||
or an equivalent command.<tt> </tt>
|
||||
As with ``copy'', the result is then placed inside
|
||||
<pre> and </pre>, unless the source is an inline equation.<tt> </tt>
|
||||
<dt><dd><p>
|
||||
The value of
|
||||
<b>troff-to-text
|
||||
</b>is filtered through a call to the
|
||||
<i>substitute
|
||||
</i>Scheme primitive with the name of an output file as its argument;
|
||||
this file name can be referenced from within the option's value
|
||||
by the substitute specifier ``%1%'' (see the Programmer's
|
||||
Manual for a description of
|
||||
<i>substitute
|
||||
</i>and a list of substitute specifiers).<tt> </tt>
|
||||
Here is a typical value for the
|
||||
<b>troff-to-text
|
||||
</b>option:
|
||||
</dl>
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
"groff -Tascii | col -b | sed '/^[ \t]*$/d' > %1%"
|
||||
</pre>
|
||||
</dl>
|
||||
<dl>
|
||||
<dt><b>gif
|
||||
</b><dd>
|
||||
Input lines are preprocessed as described under ``text'', and
|
||||
the result is piped to the shell command named by the option
|
||||
<b>troff-to-gif</b>.<tt> </tt>
|
||||
The latter is subject to a call to
|
||||
<i>substitute
|
||||
</i>with the name of a temporary file (which may be used to store intermediate
|
||||
PostScript output) and the name of the output file where the resulting
|
||||
GIF image must be stored.<tt> </tt>
|
||||
The entire preprocessor input is replaced by an <img> element with
|
||||
a reference to the GIF file and a suitable ``alt='' attribute.<tt> </tt>
|
||||
Unless processing an inline equation, the <img> element is
|
||||
surrounded by <p> tags.<tt> </tt>
|
||||
<dt><dd><p>
|
||||
The names of the files containing the GIF images are generated
|
||||
from the value of the
|
||||
<b>document
|
||||
</b>option, a sequence number, and the suffix ``.gif''.<tt> </tt>
|
||||
Therefore, the
|
||||
<b>document
|
||||
</b>option must have been set when using the ``gif'' method,
|
||||
otherwise a warning is printed and the preprocessor input
|
||||
is skipped.<tt> </tt>
|
||||
</dl>
|
||||
<p>
|
||||
In any case, the output of a call to eqn is ignored if the
|
||||
input consists of calls to ``delim'' or ``define''
|
||||
and empty lines exclusively.<tt> </tt>
|
||||
When processing eqn input, calls to ``delim'' are intercepted by
|
||||
<i>unroff
|
||||
</i>to record changes of the inline equation delimiters.<tt> </tt>
|
||||
<h3>HYPERTEXT LINKS</h3>
|
||||
The facilities for embedding arbitrary hypertext links in troff
|
||||
documents are still experimental in this version of
|
||||
<i>unroff
|
||||
</i>and thus are likely to change in future releases.<tt> </tt>
|
||||
To use them, mention the file name ``hyper.scm'' in the
|
||||
command line before any troff source files.<tt> </tt>
|
||||
At the beginning of the first troff file, source the file
|
||||
``tmac.hyper'' from the directory ``doc'' like this:
|
||||
<p>
|
||||
<pre>
|
||||
.if !\n(.U .so tmac.hyper
|
||||
</pre>
|
||||
<p>
|
||||
The request
|
||||
<b>.Hr
|
||||
</b>can then be used to create a hypertext link.<tt> </tt>
|
||||
Its usage is:
|
||||
<p>
|
||||
<pre>
|
||||
.Hr -url URL anchor-text [suffix]
|
||||
.Hr -symbolic label anchor-text [suffix]
|
||||
.Hr troff-text
|
||||
</pre>
|
||||
<p>
|
||||
The first two forms are recognized by
|
||||
<i>unroff
|
||||
</i>and the third form is recognized by troff.<tt> </tt>
|
||||
The first form is used for links pointing to external resources,
|
||||
and the second one is used for forward or backward links referencing
|
||||
anchors defined in a file belonging to the same document.<tt> </tt>
|
||||
An anchor is placed in the document by calling the request
|
||||
<b>.Ha</b>:
|
||||
<p>
|
||||
<pre>
|
||||
.Ha label anchor-text
|
||||
</pre>
|
||||
<p>
|
||||
The label specified in a call to
|
||||
<b>.Ha
|
||||
</b>can then be used in calls to
|
||||
<b>.Hr -symbolic</b>.<tt> </tt>
|
||||
All symbolic references must have been resolved at the end of the document.<tt> </tt>
|
||||
The ``anchor-text'' is placed between the tags <a> and </a>;
|
||||
``suffix'' is appended to the closing </a> if present.<tt> </tt>
|
||||
``troff-text'' is just formatted in the normal way.<tt> </tt>
|
||||
Quotes must be used if any of the arguments contains spaces.<tt> </tt>
|
||||
<p>
|
||||
Use of the hypertext facilities is demonstrated by the troff source
|
||||
of the Programmer's Manual that is included in the
|
||||
<i>unroff
|
||||
</i>distribution.<tt> </tt>
|
||||
<h2>SCHEME PROCEDURES</h2>
|
||||
The following Scheme procedures, macros, and variables are defined
|
||||
by the HTML 2.0 back-end and can be used from within user-supplied
|
||||
Scheme code:
|
||||
<dl>
|
||||
<dt>(<i>define-font name start-tag end-tag</i>)
|
||||
<dd>
|
||||
Associates a HTML start tag and end tag (symbols) with a troff
|
||||
font name (string) as explained under FONTS above.<tt> </tt>
|
||||
The font name can then be used in
|
||||
<b>.fp</b>,
|
||||
<b>.ft</b>,
|
||||
and `\f' requests.<tt> </tt>
|
||||
<dt>(<i>reset-font</i>)
|
||||
<dd>
|
||||
Resets both the current and previous font to the font mounted
|
||||
on position 1.<tt> </tt>
|
||||
<dt><i>current-font</i>
|
||||
<dd>
|
||||
<dt><i>previous-font</i>
|
||||
<dd>
|
||||
These variables hold the current and previous font as
|
||||
(integer) font positions.<tt> </tt>
|
||||
<dt>(<i>with-font-preserved</i> . <i>body</i>)
|
||||
<dd>
|
||||
This macro can be used to temporarily change to font ``R'',
|
||||
evaluate <i>body</i>, and revert to the font that has been
|
||||
active when the form was entered.<tt> </tt>
|
||||
The macro returns a string that can be output using the
|
||||
primitive <i>emit</i> or returned from an event procedure.<tt> </tt>
|
||||
<dt>(<i>preform enable?</i>)
|
||||
<dd>
|
||||
If the argument is #t, pre-formatted text is enabled, otherwise disabled.<tt> </tt>
|
||||
<dt><i>preform?</i>
|
||||
<dd>
|
||||
This boolean variable holds #t if pre-formatted text is enabled,
|
||||
#f otherwise.<tt> </tt>
|
||||
<dt>(<i>with-preform-preserved</i> . <i>body</i>)
|
||||
<dd>
|
||||
A macro that can be used to temporarily disable pre-formatted
|
||||
text, evaluate <i>body</i>, and then re-enable it if appropriate.<tt> </tt>
|
||||
The macro expands to a string that must be output or returned from
|
||||
an event procedure.<tt> </tt>
|
||||
<dt>(<i>parse-unquote string</i>)
|
||||
<dd>
|
||||
Temporarily establishes an output translation to map the quote
|
||||
character to ``&quot;'', applies <i>parse</i> (explained
|
||||
in the Programmer's Manual) to its argument, and returns the result.<tt> </tt>
|
||||
<dt>(<i>center n</i>)
|
||||
<dd>
|
||||
Centers the next <i>n</i> input lines (see description of
|
||||
<b>.ce
|
||||
</b>under TROFF REQUESTS above).<tt> </tt>
|
||||
If <i>n</i> is zero, centering is stopped.<tt> </tt>
|
||||
<dt><i>nbsp</i>
|
||||
<dd>
|
||||
A Scheme variable that holds a string interpreted as a non-breaking
|
||||
space by HTML clients.<tt> </tt>
|
||||
</dl>
|
||||
<h2>SEE ALSO</h2>
|
||||
<b>unroff</b>(1),
|
||||
<b>unroff-html-man</b>(1),
|
||||
<b>unroff-html-ms</b>(1);
|
||||
<br>
|
||||
<b>troff</b>(1),
|
||||
<b>nroff</b>(1),
|
||||
<b>groff</b>(1),
|
||||
<b>eqn</b>(1),
|
||||
<b>tbl</b>(1),
|
||||
<b>pic</b>(1).<tt> </tt>
|
||||
<p>
|
||||
Unroff Programmer's Manual.<tt> </tt>
|
||||
<p>
|
||||
http://www.informatik.uni-bremen.de/~net/unroff
|
||||
<p>
|
||||
Berners-Lee, Connolly, et al.,
|
||||
HyperText Markup Language Specification--2.0,
|
||||
Internet Draft, Internet Engineering Task Force.<tt> </tt>
|
||||
<h2>BUGS</h2>
|
||||
The `\space' escape sequence should be mapped to the &#160; entity
|
||||
(non-breaking space), but this entity is not supported by a number
|
||||
of HTML clients.<tt> </tt>
|
||||
<p>
|
||||
Only the font positions 1 to 9 can currently be used.<tt> </tt>
|
||||
There should be no limit.<tt> </tt>
|
||||
<p>
|
||||
The extra space generated for end of sentence should be configurable.<tt> </tt>
|
||||
<p>
|
||||
Underlining should be supported.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996.
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,760 @@
|
|||
%!PS-Adobe-3.0
|
||||
%%Creator: groff version 1.09
|
||||
%%CreationDate: Thu Mar 21 19:29:56 1996
|
||||
%%DocumentNeededResources: font Times-Roman
|
||||
%%+ font Times-Bold
|
||||
%%+ font Times-Italic
|
||||
%%+ font Courier
|
||||
%%DocumentSuppliedResources: procset grops 1.09 0
|
||||
%%Pages: 7
|
||||
%%PageOrder: Ascend
|
||||
%%Orientation: Portrait
|
||||
%%EndComments
|
||||
%%BeginProlog
|
||||
%%BeginResource: procset grops 1.09 0
|
||||
/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
|
||||
/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
|
||||
}bind 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
|
||||
/FL{
|
||||
currentgray exch setgray fill setgray
|
||||
}bind def
|
||||
/BL/fill load def
|
||||
/LW/setlinewidth 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
|
||||
}bind def
|
||||
/PEND{
|
||||
clear
|
||||
countdictstack CNT sub{end}repeat
|
||||
level1 restore
|
||||
}bind def
|
||||
end def
|
||||
/setpacking where{
|
||||
pop
|
||||
setpacking
|
||||
}if
|
||||
%%EndResource
|
||||
%%IncludeResource: font Times-Roman
|
||||
%%IncludeResource: font Times-Bold
|
||||
%%IncludeResource: font Times-Italic
|
||||
%%IncludeResource: font Courier
|
||||
grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
|
||||
def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron
|
||||
/Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.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@0 ENC0/Courier RE/Times-Italic@0 ENC0/Times-Italic RE
|
||||
/Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0/Times-Roman RE
|
||||
%%EndProlog
|
||||
%%Page: 1 1
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 349.36(f-html\(1\) unrof)-.25 F
|
||||
(f-html\(1\))-.25 E/F1 9/Times-Bold@0 SF -.18(NA)72 84 S(ME).18 E F0
|
||||
(unrof)108 96 Q(f-html \255 HTML 2.0 back-end for the programmable trof)
|
||||
-.25 E 2.5(ft)-.25 G(ranslator)-2.5 E F1(SYNOPSIS)72 112.8 Q/F2 10
|
||||
/Times-Bold@0 SF(unr)108 124.8 Q(off)-.18 E F0([)2.5 E F2(\255fhtml)2.5
|
||||
E F0 2.5(][)2.5 G F2<ad6d>A/F3 10/Times-Italic@0 SF(pac)1.25 E(ka)-.2 E
|
||||
-.1(ge)-.1 G F0 2.5(][)2.6 G F3(\214le)A F0(|)2.68 E F3(option...)2.73 E
|
||||
F0(])2.5 E F1 -.45(OV)72 141.6 S(ER).45 E(VIEW)-.495 E F0 2.396
|
||||
(When called with the)108 153.6 R F2(\255fhtml)4.896 E F0(option,)4.896
|
||||
E F3(unr)4.896 E(of)-.45 E(f)-.18 E F0 2.396
|
||||
(loads the back-end for the Hyperte)4.896 F 2.395(xt Markup Language)
|
||||
-.15 F .27(\(HTML\) v)108 165.6 R .27(ersion 2.0.)-.15 F .27
|
||||
(Please read)5.27 F F2(unr)2.771 E(off)-.18 E F0 .271
|
||||
(\(1\) \214rst for an o)B -.15(ve)-.15 G(rvie).15 E 2.771(wo)-.25 G
|
||||
2.771(ft)-2.771 G .271(he Scheme-based, programmable trof)-2.771 F(f)
|
||||
-.25 E .516
|
||||
(translator and for a description of the generic options that e)108
|
||||
177.6 R .515(xist in addition to)-.15 F F2<ad66>3.015 E F0(and)3.015 E
|
||||
F2<ad6d>3.015 E F0 5.515(.F)C .515(or information)-5.665 F(about e)108
|
||||
189.6 Q(xtending and programming)-.15 E F3(unr)2.5 E(of)-.45 E(f)-.18 E
|
||||
F0(also refer to the)2.5 E F3(Unr)2.5 E(of)-.45 E 2.5(fP)-.18 G -1.7
|
||||
-.45(ro g)-2.5 H -.15(ra).45 G(mmer').15 E 2.5(sM)-.4 G(anual)-2.5 E F0
|
||||
(.).51 E F3(unr)108 206.4 Q(of)-.45 E(f)-.18 E F0 .367(is usually in)
|
||||
2.867 F -.2(vo)-.4 G -.1(ke).2 G 2.867(dw).1 G .367(ith an additional)
|
||||
-2.867 F F2<ad6d>2.868 E F3(pac)1.25 E(ka)-.2 E -.1(ge)-.1 G F0 .368
|
||||
(option \(such as)2.968 F F2(\255ms)2.868 E F0(or)2.868 E F2(\255man)
|
||||
2.868 E F0 2.868(\)t)C 2.868(ol)-2.868 G .368(oad the transla-)-2.868 F
|
||||
.576(tion rules for the trof)108 218.4 R 3.076(fm)-.25 G .576(acros and\
|
||||
other elements de\214ned by the macro package that is used to typeset \
|
||||
the)-3.076 F 5.295(document. If)108 230.4 R(no)5.295 E F2<ad6d>5.295 E
|
||||
F0 2.795(option is supplied, only the standard trof)5.295 F 5.295(fr)
|
||||
-.25 G 2.795(equests, special characters, escape)-5.295 F
|
||||
(sequences, etc. are recognized and translated to HTML by)108 242.4 Q F3
|
||||
(unr)2.5 E(of)-.45 E(f)-.18 E F0(as described in this manual.)2.5 E F1
|
||||
(OPTIONS)72 259.2 Q F0 .432(The follo)108 271.2 R .432(wing HTML-speci\
|
||||
\214c options can be speci\214ed in the command line after the generic \
|
||||
options.)-.25 F(See)5.432 E F2(unr)108 283.2 Q(off)-.18 E F0 .004
|
||||
(\(1\) for a general description of k)B -.15(ey)-.1 G -.1(wo).15 G(rd/v)
|
||||
.1 E .005
|
||||
(alue options and their types and for a list of options that are)-.25 F
|
||||
(not speci\214c to the tar)108 295.2 Q(get language.)-.18 E F2(title)108
|
||||
312 Q F0(\(string\))2.5 E .124(The v)144 324 R .123
|
||||
(alue to be used for the <title> element in HTML output \214les.)-.25 F
|
||||
.123(This option may be ignored by)5.123 F 1.142
|
||||
(the code implementing a speci\214c macro set, e.)144 336 R 1.142
|
||||
(g. when special rules are emplo)1.666 F 1.143(yed to deri)-.1 F 1.443
|
||||
-.15(ve t)-.25 H(he).15 E .484(title from the contents of the trof)144
|
||||
348 R 2.984(fi)-.25 G .484(nput \214les.)-2.984 F .484
|
||||
(Whether or not this option is required also depends)5.484 F
|
||||
(on the speci\214c)144 360 Q F2<ad6d>2.5 E F0(option used, b)2.5 E
|
||||
(ut it may be omitted if no)-.2 E F2<ad6d>2.5 E F0(option is gi)2.5 E
|
||||
-.15(ve)-.25 G(n.).15 E F2(document)108 376.8 Q F0(\(string\))2.5 E .079
|
||||
(The pre\214x used for the names of all output \214les.)144 388.8 R .08
|
||||
(May be ignored depending on the macro package)5.079 F
|
||||
(that has been selected.)144 400.8 Q F2(mail-addr)108 417.6 Q(ess)-.18 E
|
||||
F0(\(string\))2.5 E .272(The caller')144 429.6 R 2.772(sm)-.55 G .271(a\
|
||||
il address; may be used for \231mailto:\232 URLs, in particular for the\
|
||||
\231href\232 attrib)-2.772 F .271(ute of)-.2 F
|
||||
(the <link> element that is usually generated.)144 441.6 Q F2(tt-pr)108
|
||||
458.4 Q(ef)-.18 E(ormat)-.25 E F0(\(boolean\))2.5 E .084(If 1, font cha\
|
||||
nges to a font that is mapped to the <tt> element are honored inside no\
|
||||
n-\214lled te)144 470.4 R .084(xt \(as)-.15 F .905(described belo)144
|
||||
482.4 R 3.405(w\). The)-.25 F(def)3.405 E .905(ault is 0, i.)-.1 F .905
|
||||
(e. the font changes will be recorded, b)1.666 F .905
|
||||
(ut no corresponding)-.2 F(HTML tags will be emitted for them.)144 494.4
|
||||
Q F2(handle-eqn)108 511.2 Q F0(\(string\))2.5 E F2(handle-tbl)108 528 Q
|
||||
F0(\(string\))2.5 E F2(handle-pic)108 544.8 Q F0(\(string\))2.5 E .945
|
||||
(These options specify ho)144 556.8 R 3.445(we)-.25 G .946
|
||||
(quations, tables, and pictures encountered in the trof)-3.445 F 3.446
|
||||
(fi)-.25 G .946(nput are pro-)-3.446 F 2.958(cessed. Possible)144 568.8
|
||||
R -.25(va)2.958 G .458(lues are \231cop).25 F .457
|
||||
(y\232 to include the ra)-.1 F 2.957(we)-.15 G .457
|
||||
(qn, tbl, or pic commands as pre-formatted)-2.957 F(te)144 580.8 Q .577
|
||||
(xt, \231te)-.15 F .577(xt\232 to run the respecti)-.15 F .877 -.15
|
||||
(ve t)-.25 H(rof).15 E 3.077(fp)-.25 G .577
|
||||
(reprocessor \(eqn, tbl, or pic\) and include its output as pre-)-3.077
|
||||
F 1.215(formatted te)144 592.8 R 1.215(xt, or \231gif\232 to con)-.15 F
|
||||
-.15(ve)-.4 G 1.215
|
||||
(rt the preprocessor output to a GIF image and include it in the).15 F
|
||||
1.642(HTML document as an inline image.)144 604.8 R 1.643(The def)6.643
|
||||
F 1.643(ault is \231te)-.1 F 1.643(xt\232 for)-.15 F F2(handle-tbl)4.143
|
||||
E F0 4.143<2c99>C 1.643(gif\232 for the other)-4.143 F 2.5(options. See)
|
||||
144 616.8 R(DESCRIPTION belo)2.5 E 2.5(wf)-.25 G(or more information.)
|
||||
-2.5 E F2(eqn)108 633.6 Q F0(\(string\))2.5 E F2(tbl)108 650.4 Q F0
|
||||
(\(string\))2.5 E F2(pic)108 667.2 Q F0(\(string\))2.5 E .514
|
||||
(These options specify the programs to in)144 679.2 R -.2(vo)-.4 G .713
|
||||
-.1(ke a).2 H 3.013(st).1 G .513(he eqn, tbl, and pic preprocessors.)
|
||||
-3.013 F .513(The def)5.513 F(aults)-.1 E(are site-dependent.)144 691.2
|
||||
Q 203.72(1995/08/23 1)283.22 768 R EP
|
||||
%%Page: 2 2
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 349.36(f-html\(1\) unrof)-.25 F
|
||||
(f-html\(1\))-.25 E/F1 10/Times-Bold@0 SF(tr)108 84 Q(off-to-text)-.18 E
|
||||
F0(\(string\))2.5 E F1(tr)108 100.8 Q(off-to-gif)-.18 E F0(\(string\))
|
||||
2.5 E .613(The programs to in)144 112.8 R -.2(vo)-.4 G .814 -.1(ke f).2
|
||||
H .614(or con).1 F -.15(ve)-.4 G .614(rting the output of a trof).15 F
|
||||
3.114(fp)-.25 G .614(reprocessor to plain te)-3.114 F .614
|
||||
(xt or to a GIF)-.15 F 3.587(image. The)144 124.8 R(def)3.587 E 1.087
|
||||
(ault v)-.1 F 1.087(alues are site-dependent.)-.25 F 1.086
|
||||
(See DESCRIPTION belo)6.086 F 3.586(wf)-.25 G 1.086(or more information)
|
||||
-3.586 F(on these options.)144 136.8 Q/F2 9/Times-Bold@0 SF(FILES)72
|
||||
153.6 Q F0 .772(If no)108 165.6 R F1<ad6d>3.272 E F0 .772
|
||||
(option is supplied,)3.272 F/F3 10/Times-Italic@0 SF(unr)3.272 E(of)-.45
|
||||
E(f)-.18 E F0 .772(reads the speci\214ed input \214les and sends the HT\
|
||||
ML document to stan-)3.272 F .178(dard output, unless the)108 177.6 R F1
|
||||
(document)2.678 E F0 .178(option is gi)2.678 F -.15(ve)-.25 G .178
|
||||
(n, in which case its v).15 F .178(alue together with the suf)-.25 F
|
||||
.177(\214x \231.html\232 is)-.25 F .649
|
||||
(used as the name of an output \214le.)108 189.6 R .649
|
||||
(If no input \214les are speci\214ed, input is tak)5.649 F .649
|
||||
(en from standard input.)-.1 F(The)5.649 E .55
|
||||
(output is enclosed by the usual HTML boiler)108 201.6 R .549
|
||||
(-plate \(<html>, <head>, and <body> elements\), a <title> ele-)-.2 F
|
||||
.688(ment with the speci\214ed title \(or the v)108 213.6 R .688
|
||||
(alue of)-.25 F F1(document)3.188 E F0 .689(if no title has been gi)
|
||||
3.189 F -.15(ve)-.25 G .689(n, or a def).15 F .689(ault title if both)
|
||||
-.1 F .066(are omitted\), a <link> element with re)108 225.6 R .066
|
||||
(v= and href= attrib)-.25 F .066(utes if)-.2 F F1(mail-addr)2.566 E(ess)
|
||||
-.18 E F0 .066(has been set, and an)2.566 F 2.565(yp)-.15 G(ending)
|
||||
-2.565 E(end tags are generated on end of input.)108 237.6 Q .138
|
||||
(Note that this is the def)108 254.4 R .138(ault action that is perform\
|
||||
ed in the rare case when no macro package name has been)-.1 F .924
|
||||
(speci\214ed, i.)108 266.4 R .924(e. when processing \231bare\232 trof)
|
||||
1.666 F 3.423(fi)-.25 G 3.423(nput. Some)-3.423 F .923(what dif)-.25 F
|
||||
.923(ferent rules may apply when processing,)-.25 F(for e)108 278.4 Q
|
||||
(xample, a group of UNIX manual pages \()-.15 E F1(\255man)A F0(\).)A
|
||||
(See)108 295.2 Q F1(unr)2.5 E(off)-.18 E F0
|
||||
(\(1\) for a list of Scheme \214les that are loaded on startup.)A F2
|
||||
(DESCRIPTION)72 312 Q F1(OUTPUT TRANSLA)87 324 Q(TIONS)-.95 E F0 .23(Th\
|
||||
e characters `<', `>', and `&' are replaced by the entities `<', `&g\
|
||||
t;', and `&' on output.)108 336 R .231(In addi-)5.231 F .407
|
||||
(tion, the quote character is mapped to `"' where appropriate.)108
|
||||
348 R(Ne)5.407 E 2.907(wm)-.25 G .407(appings can be added by means)
|
||||
-2.907 F(of the)108 360 Q F3(defc)2.5 E(har)-.15 E F0(Scheme primiti)2.5
|
||||
E .3 -.15(ve a)-.25 H 2.5(se).15 G(xplained in the Programmer')-2.65 E
|
||||
2.5(sM)-.55 G(anual.)-2.5 E F1(COMMENTS)87 376.8 Q F0 .072(each trof)108
|
||||
388.8 R 2.572(fc)-.25 G .072
|
||||
(omment is translated to a corresponding HTML tag follo)-2.572 F .073
|
||||
(wed by a ne)-.25 F .073(wline; empty comments are)-.25 F 2.5
|
||||
(ignored. Comments)108 400.8 R
|
||||
(are also ignored when appearing inside a macro body)2.5 E(.)-.65 E F1
|
||||
(ESCAPE SEQ)87 417.6 Q(UENCES)-.1 E F0 .987(The follo)108 429.6 R .987
|
||||
(wing is a list of trof)-.25 F 3.487(fe)-.25 G .986
|
||||
(scape sequences that are recognized and the HTML output generated for)
|
||||
-3.487 F 2.542(them. An)108 441.6 R 2.542(ye)-.15 G .043
|
||||
(scape sequence that does not appear in the list e)-2.542 F .043
|
||||
(xpands to the character after the escape charac-)-.15 F(ter)108 453.6 Q
|
||||
2.591(,a)-.4 G .091(nd a w)-2.591 F .091
|
||||
(arning is printed in this case.)-.1 F(Ne)5.091 E 2.591(wd)-.25 G .09
|
||||
(e\214nitions can be added and the prede\214ned mappings can be)-2.591 F
|
||||
2.232(replaced by calling the)108 465.6 R F3(defescape)4.733 E F0 2.233
|
||||
(Scheme primiti)4.733 F 2.533 -.15(ve i)-.25 H 4.733(nt).15 G 2.233
|
||||
(he user')-4.733 F 4.733(si)-.55 G 2.233
|
||||
(nitialization \214le, in a user)-4.733 F(-supplied)-.2 E 1.048(Scheme \
|
||||
\214le, in a document, or on a site-wide basis by modifying the \214le)
|
||||
108 477.6 R F1(scm/html/common.scm)3.547 E F0 1.047(in the)3.547 F
|
||||
(installation directory)108 489.6 Q(.)-.65 E 26.94(\\& nothing)148 506.4
|
||||
R 31.39(\\- -)148 518.4 R 32.72(\\| nothing)148 530.4 R 31.39
|
||||
(\\^ nothing)148 542.4 R 31.94(\\\\ \\)148 554.4 R 31.39(\\' ')148 566.4
|
||||
R 31.39(\\` `)148 578.4 R 30.64(\\" rest)148 590.4 R
|
||||
(of line as HTML comment tag)2.5 E 26.39(\\% nothing)148 602.4 R 29.92
|
||||
(\\{ conditional)148 614.4 R(input be)2.5 E(gin)-.15 E 29.92
|
||||
(\\} conditional)148 626.4 R(input end)2.5 E 29.72(\\* contents)148
|
||||
638.4 R(of string)2.5 E 12.51(\\space space)148 650.4 R 29.72(\\0 space)
|
||||
148 662.4 R 30.28(\\c nothing;)148 674.4 R(eats follo)2.5 E(wing ne)-.25
|
||||
E(wline)-.25 E 30.28(\\e \\)148 686.4 R 30.83(\\s nothing)148 698.4 R
|
||||
29.72(\\u nothing,)148 710.4 R(prints w)2.5 E(arning)-.1 E 29.72
|
||||
(\\d nothing,)148 722.4 R(prints w)2.5 E(arning)-.1 E 203.72
|
||||
(1995/08/23 2)283.22 768 R EP
|
||||
%%Page: 3 3
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 349.36(f-html\(1\) unrof)-.25 F
|
||||
(f-html\(1\))-.25 E 29.72(\\v nothing,)148 84 R(prints w)2.5 E(arning)
|
||||
-.1 E 29.72(\\o its)148 96 R(ar)2.5 E(gument, prints w)-.18 E(arning)-.1
|
||||
E 30.28(\\z its)148 108 R(ar)2.5 E(gument, prints w)-.18 E(arning)-.1 E
|
||||
29.72(\\k sets)148 120 R(speci\214ed re)2.5 E(gister to zero)-.15 E
|
||||
29.72(\\h appropriate)148 132 R(number of spaces for positi)2.5 E .3
|
||||
-.15(ve a)-.25 H -.18(rg).15 G(ument).18 E 27.5(\\w length)148 144 R
|
||||
(of ar)2.5 E(gument in units)-.18 E 31.94(\\l repeats)148 156 R
|
||||
(speci\214ed character)2.5 E 2.5(,o)-.4 G 2.5(r<)-2.5 G(hr>)-2.5 E 29.72
|
||||
(\\n contents)148 168 R(of number re)2.5 E(gister)-.15 E 31.39(\\f see)
|
||||
148 180 R(description of fonts belo)2.5 E(w)-.25 E/F1 10/Times-Bold@0 SF
|
||||
(SPECIAL CHARA)87 196.8 Q(CTERS)-.55 E F0(The follo)108 208.8 Q
|
||||
(wing special characters are mapped to their equi)-.25 E -.25(va)-.25 G
|
||||
(lent ISO-Latin 1 entities:).25 E 21.39
|
||||
(\\\(12 \\\(14 \\\(34 \\\(*b \\\(*m)148 225.6 R 22.42(\\\(+- \\\(:A)
|
||||
21.11 F 21.39(\\\(:O \\\(:U \\\(:a)148 237.6 R 23.61
|
||||
(\\\(:o \\\(:u \\\(A:)26.67 F(\\\(Cs)23.89 E 21.39(\\\(O: \\\(Po)148
|
||||
249.6 R 20.83(\\\(S1 \\\(S2 \\\(S3 \\\(U:)23.33 F(\\\(Y)23.89 E(e)-1 E
|
||||
24.17(\\\(a: \\\(bb)148 261.6 R 21.95(\\\(cd \\\(co \\\(ct)23.89 F 21.95
|
||||
(\\\(de \\\(di)26.67 F 23.06(\\\(es \\\(h)148 273.6 R 23.94(y\\)-.05 G
|
||||
18.61(\(mu \\\(no)-23.94 F 23.61(\\\(o: \\\(r!)23.89 F(\\\(r?)27.23 E
|
||||
(\\\(r)148 285.6 Q 25.74(g\\)-.18 G 23.06(\(sc \\\(ss)-25.74 F 20.83
|
||||
(\\\(tm \\\(u:)26.11 F(Heuristics ha)108 302.4 Q .3 -.15(ve t)-.2 H 2.5
|
||||
(ob).15 G 2.5(eu)-2.5 G(sed for the follo)-2.5 E
|
||||
(wing special characters:)-.25 E 21.39(\\\(** *)148 319.2 R 22.42
|
||||
(\\\(-> ->)148 331.2 R 22.42(\\\(<- <-)148 343.2 R 20.11(\\\(<= <=)148
|
||||
355.2 R 20.11(\\\(== ==)148 367.2 R 20.11(\\\(>= >=)148 379.2 R 23.05
|
||||
(\\\(Fi f)148 391.2 R<8c>-.25 E 23.05(\\\(Fl f)148 403.2 R<8d>-.25 E
|
||||
22.51(\\\(aa ')148 415.2 R 21.95(\\\(ap ~)148 427.2 R 23.06(\\\(br |)148
|
||||
439.2 R(\\\(b)148 451.2 Q -16.32 24.09(u+ \()-.2 H(prints a w)-24.09 E
|
||||
(arning\))-.1 E(\\\(b)148 463.2 Q 24.04(v|)-.15 G 24.17(\\\(ci O)148
|
||||
475.2 R 21.39(\\\(dd ***)148 487.2 R(\(prints a w)25 E(arning\))-.1 E
|
||||
21.39(\\\(dg **)148 499.2 R(\(prints a w)30 E(arning\))-.1 E 19.17
|
||||
(\\\(em --)148 511.2 R 21.95(\\\(en -)148 523.2 R 21.95(\\\(eq =)148
|
||||
535.2 R(\\\(f)148 547.2 Q 27.48(ff)-.25 G(f)-27.73 E 25.83<5c288c208c>
|
||||
148 559.2 R 25.83<5c288d208d>148 571.2 R 20.28(\\\(fm ')148 583.2 R
|
||||
(\\\(g)148 595.2 Q 24.5(a`)-.05 G 23.61(\\\(lh <=)148 607.2 R 23.61
|
||||
(\\\(lq `)148 619.2 R(`)-.74 E 20.83(\\\(mi -)148 631.2 R 23.06
|
||||
(\\\(or |)148 643.2 R 23.61(\\\(pl +)148 655.2 R 23.06(\\\(rh =>)148
|
||||
667.2 R 23.06(\\\(rq ')148 679.2 R(')-.74 E 23.06(\\\(ru _)148 691.2 R
|
||||
24.72(\\\(sl /)148 703.2 R 22.5(\\\(sq o)148 715.2 R(\(prints a w)35 E
|
||||
(arning\))-.1 E 23.61(\\\(ul _)148 727.2 R 203.72(1995/08/23 3)283.22
|
||||
768 R EP
|
||||
%%Page: 4 4
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 349.36(f-html\(1\) unrof)-.25 F
|
||||
(f-html\(1\))-.25 E 22.42(\\\(~= ~)148 84 R 3.484(Aw)108 100.8 S .984
|
||||
(arning is printed to standard error output for an)-3.584 F 3.484(ys)
|
||||
-.15 G .984(pecial character not mentioned in this section.)-3.484 F -.8
|
||||
(To)5.985 G(add ne)108 112.8 Q 2.5(wd)-.25 G
|
||||
(e\214nitions, and to customize e)-2.5 E(xisting ones, the)-.15 E/F1 10
|
||||
/Times-Italic@0 SF(defspecial)2.5 E F0(Scheme primiti)2.5 E .3 -.15
|
||||
(ve c)-.25 H(an be used.).15 E/F2 10/Times-Bold@0 SF(NON-FILLED TEXT)87
|
||||
129.6 Q F0(The)108 141.6 Q F2(.nf)2.756 E F0(and)2.756 E F2<2e8c>2.756 E
|
||||
F0(trof)2.756 E 2.756(fr)-.25 G .256
|
||||
(equests generate pairs of <pre> and </pre> tags.)-2.756 F .256
|
||||
(Nested requests are treated correctly)5.256 F(,)-.65 E .524
|
||||
(and currently acti)108 153.6 R .824 -.15(ve c)-.25 H .525
|
||||
(haracter formatting elements such as <i> \(resulting from trof).15 F
|
||||
3.025(ff)-.25 G .525(ont changes\) are tem-)-3.025 F .258
|
||||
(porarily disabled while the <pre> or </pre> is emitted.)108 165.6 R
|
||||
2.757(Aw)5.257 G .257
|
||||
(arning is printed if a \231tab\232 character is encoun-)-2.857 F
|
||||
(tered within \214lled te)108 177.6 Q(xt.)-.15 E F2(FONTS)87 194.4 Q F0
|
||||
.272(The `\\f)108 206.4 R 2.772('e).55 G .272
|
||||
(scape sequence and the requests)-2.772 F F2(.ft)2.772 E F0 .272
|
||||
(\(change current font\) and)2.772 F F2(.fp)2.772 E F0 .273
|
||||
(\(mount font at font position\) are)2.772 F .06
|
||||
(supported in the usual w)108 218.4 R(ay)-.1 E 2.56(,b)-.65 G .059(oth \
|
||||
with numeric font positions as well as font names and the special name \
|
||||
`P')-2.56 F .202(to denote the pre)108 230.4 R .202(vious font.)-.25 F
|
||||
.202(The font position of the currently acti)5.202 F .503 -.15(ve f)-.25
|
||||
H .203(ont is a).15 F -.25(va)-.2 G .203(ilable through the read-only)
|
||||
.25 F .281(number re)108 242.4 R .281(gister `.f)-.15 F 2.781
|
||||
('. Initially).55 F 2.781(,t)-.65 G .28(he font `R' is mounted on font \
|
||||
positions 1 and 4, font `I' on font position 2,)-2.781 F
|
||||
(and font `B' on position 3.)108 254.4 Q 3.312 -.8(To m)108 271.2 T
|
||||
1.712(ap trof).8 F 4.212(ff)-.25 G 1.712
|
||||
(ont names to HTML character formatting elements, the)-4.212 F F1
|
||||
(de\214ne-font)4.212 E F0 1.713(Scheme procedure is)4.212 F .772
|
||||
(called with the name of a trof)108 283.2 R 3.272(ff)-.25 G .771
|
||||
(ont to be used in documents, and HTML start and end tags to be emitted)
|
||||
-3.272 F .019(when changing to this font, or when changing)108 295.2 R
|
||||
F1(fr)2.519 E(om)-.45 E F0 .02(this font to another font, respecti)2.519
|
||||
F -.15(ve)-.25 G(ly).15 E 5.02(.W)-.65 G .02(hether <tt> and)-5.02 F
|
||||
.498(</tt> is generated inside non-\214lled \(pre-formatted\) te)108
|
||||
307.2 R .497(xt for \214x)-.15 F .497
|
||||
(ed-width fonts is controlled by the option)-.15 F F2(tt-)2.997 E(pr)108
|
||||
319.2 Q(ef)-.18 E(ormat)-.25 E F0 5(.T)C(he follo)-5 E(wing calls to)
|
||||
-.25 E F1(de\214ne-font)2.5 E F0(are e)2.5 E -.25(va)-.25 G
|
||||
(luated on startup:).25 E/F3 9/Courier@0 SF 5.4(\(define-font "R")148
|
||||
335 R 16.2("" ""\))16.2 F 5.4(\(define-font "I")148 346 R 5.4
|
||||
('<i> '</i>\))16.2 F 5.4(\(define-font "B")148 357 R 5.4('<b> '</b>\))
|
||||
16.2 F 5.4(\(define-font "C")148 368 R('<tt> '</tt>\))16.2 E 5.4
|
||||
(\(define-font "CW" '<tt>)148 379 R('</tt>\))5.4 E 5.4
|
||||
(\(define-font "CO" '<i> '</i>\))148 390 R 5.4(;k)21.6 G
|
||||
(ludge for Courier-Oblique)-5.4 E F0 .185(Site administrators may add d\
|
||||
e\214nitions here for fonts used at their site.)108 406.8 R .185
|
||||
(Users can de\214ne mappings for ne)5.185 F(w)-.25 E(fonts by placing c\
|
||||
orresponding de\214nitions in their documents or document-speci\214c Sc\
|
||||
heme \214les.)108 418.8 Q F2 -.4(OT)87 435.6 S(HER TR).4 E(OFF REQ)-.3 E
|
||||
(UESTS)-.1 E F0(The)108 447.6 Q F2(.br)2.5 E F0
|
||||
(request generates a <br> tag.)2.5 E F2(.sp)108 464.4 Q F0 .587
|
||||
(requires a positi)3.087 F .887 -.15(ve a)-.25 H -.18(rg).15 G .586
|
||||
(ument and is mapped to the appropriate number of <p> tags \(or ne).18 F
|
||||
.586(wline charac-)-.25 F .33(ters inside non-\214lled/pre-formatted te)
|
||||
108 476.4 R 2.83(xt\). Lik)-.15 F -.25(ew)-.1 G .331(ise, the request)
|
||||
.25 F F2(.ti)2.831 E F0 2.831(,w)C .331(hen called with a positi)-2.831
|
||||
F .631 -.15(ve i)-.25 H .331(ndent, pro-).15 F(duces a <br> follo)108
|
||||
488.4 Q(wed by the appropriate number of non-breakable spaces.)-.25 E
|
||||
(The)108 505.2 Q F2(.tl)3.131 E F0 .631
|
||||
(requests justs emits the title parts delimited by spaces.)3.131 F .63
|
||||
(It is impossible to preserv)5.63 F 3.13(et)-.15 G .63(he meaning of)
|
||||
-3.13 F(this request in HTML 2.0.)108 517.2 Q 2.344
|
||||
(The horizontal line dra)108 534 R 2.344(wing escape sequence `\\l' jus\
|
||||
t repeats the speci\214ed character \(or underline as)-.15 F(def)108 546
|
||||
Q .404(ault\) to dra)-.1 F 2.904(wal)-.15 G 2.904(ine. If)-2.904 F .404
|
||||
(the gi)2.904 F -.15(ve)-.25 G 2.904(nl).15 G .404(ength looks lik)
|
||||
-2.904 F 2.904(ei)-.1 G 2.903(tc)-2.904 G .403
|
||||
(ould be the line length \(that is, if it e)-2.903 F .403(xceeds a cer)
|
||||
-.15 F(-)-.2 E(tain v)108 558 Q(alue\), a <hr> tag is produced instead.)
|
||||
-.25 E(Example:)5 E(\\l'5c\\&-')148 574.8 Q(\\l'60')148 586.8 Q .302
|
||||
(The \214rst of these tw)108 603.6 R 2.802(or)-.1 G .302(equests w)
|
||||
-2.802 F .302
|
||||
(ould produce a line of 20 dashes, while the second request w)-.1 F .303
|
||||
(ould generate)-.1 F 3.873(a<)108 615.6 S 1.372(hr> tag \(the '\\&' is \
|
||||
required because the dash could be interpreted as a continuation of the\
|
||||
numeric)-3.873 F -.15(ex)108 627.6 S(pression\).).15 E .961
|
||||
(Centering \()108 644.4 R F2(.ce)A F0 3.461(\)i)C 3.461(ss)-3.461 G .962
|
||||
(imulated by producing a <br> at the end of each line, as this function\
|
||||
ality is not sup-)-3.461 F(ported by HTML 2.0.)108 656.4 Q .613
|
||||
(The follo)108 673.2 R .613(wing requests are silently ignored; as the \
|
||||
corresponding functions cannot be e)-.25 F .612(xpressed in HTML)-.15 F
|
||||
(2.0 or are controlled by the client.)108 685.2 Q
|
||||
(Ignoring these requests most lik)5 E(ely does no harm.)-.1 E 25.56
|
||||
(.ad .bp)148 702 R 25.56(.ch .\215)27.5 F 22.78(.hw .h)31.94 F 27.55(y.)
|
||||
-.05 G(lg)-27.55 E 25.56(.na .ne .nh)148 714 R 26.11(.ns .pl)27.5 F
|
||||
26.11(.ps .rs)29.72 F 26.11(.vs .wh)148 726 R 203.72(1995/08/23 4)283.22
|
||||
768 R EP
|
||||
%%Page: 5 5
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 349.36(f-html\(1\) unrof)-.25 F
|
||||
(f-html\(1\))-.25 E .016(All trof)108 84 R 2.516(fr)-.25 G .016
|
||||
(equests not mentioned in this section by def)-2.516 F .016
|
||||
(ault cause a w)-.1 F .016(arning message to be printed to standard)-.1
|
||||
F(error output, e)108 96 Q(xcept for these basic requests which ha)-.15
|
||||
E .3 -.15(ve t)-.2 H(heir usual semantics:).15 E 22.78(.am .as)148 112.8
|
||||
R 25.56(.de .ds)29.17 F 26.12(.ec .el)28.61 F(.ie)30.28 E 28.89(.if .ig)
|
||||
148 124.8 R 26.67(.nr .rm)29.72 F 28.34(.rr .so)26.39 F(.tm)28.61 E(The)
|
||||
108 141.6 Q/F1 10/Times-Italic@0 SF(defr)3.155 E(equest)-.37 E F0 .655
|
||||
(Scheme primiti)3.155 F .955 -.15(ve i)-.25 H 3.155(su).15 G .654
|
||||
(sed to associate an e)-3.155 F -.15(ve)-.25 G .654
|
||||
(nt handling procedure with a request as docu-).15 F
|
||||
(mented in the Programmer')108 153.6 Q 2.5(sM)-.55 G(anual.)-2.5 E/F2 10
|
||||
/Times-Bold@0 SF(END OF SENTENCE)87 170.4 Q F0 .471(The sequence \231<t\
|
||||
t>space</tt>\232 is produced at the end of each sentence to pro)108
|
||||
182.4 R .472(vide additional space, e)-.15 F(xcept)-.15 E 1.597
|
||||
(inside non-\214lled te)108 194.4 R 4.097(xt. A)-.15 F 1.596
|
||||
(sentence is de\214ned a sequence of characters follo)4.097 F 1.596
|
||||
(wed by a period, a question)-.25 F .83(mark, or an e)108 206.4 R .83
|
||||
(xclamation mark, follo)-.15 F .83(wed by a ne)-.25 F 3.33(wline. The)
|
||||
-.25 F .83(usual con)3.33 F -.15(ve)-.4 G .83
|
||||
(ntion to suppress end-of-sentence).15 F .234(recognition by adding the\
|
||||
escape sequence `\\&' is correctly implemented by)108 218.4 R F1(unr)
|
||||
2.733 E(of)-.45 E(f)-.18 E F0 5.233(.T)1.96 G 2.733(oc)-6.033 G .233
|
||||
(hange the end-of-)-2.733 F .891(sentence function, the)108 230.4 R F1
|
||||
(sentence-e)3.391 E(vent)-.15 E F0 .891
|
||||
(can be rede\214ned from within Scheme code as described in the Pro-)
|
||||
3.391 F(grammer')108 242.4 Q 2.5(sM)-.55 G(anual.)-2.5 E F2
|
||||
(SCALE INDICA)87 259.2 Q -.18(TO)-.95 G(RS).18 E F0 .023
|
||||
(As the notions of v)108 271.2 R .023
|
||||
(ertical spacing, character width, de)-.15 F .023
|
||||
(vice resolution, etc. do not e)-.25 F .023(xist in HTML, the scaling)
|
||||
-.15 F .345(for the usual trof)108 283.2 R 2.846(fs)-.25 G .346(cale in\
|
||||
dicators is de\214ned once on startup and then remains constant.)-2.846
|
||||
F -.15(Fo)5.346 G 2.846(rs).15 G(implicity)-2.846 E 2.846(,t)-.65 G(he)
|
||||
-2.846 E(scaling usually emplo)108 295.2 Q(yed by)-.1 E F2(nr)2.5 E(off)
|
||||
-.18 E F0(\(1\) is tak)A(en.)-.1 E F2(EQ)87 312 Q -.6(UA)-.1 G(TIONS, T)
|
||||
-.35 E(ABLES, PICTURES)-.9 E F0 1.118(Interpretation of embedded eqn, t\
|
||||
bl, and pic preprocessor input is controlled by the options)108 324 R F2
|
||||
(handle-eqn)3.617 E F0(,)A F2(handle-tbl)108 336 Q F0 3.895(,a)C(nd)
|
||||
-3.895 E F2(handle-pic)3.895 E F0 1.395(\(see OPTIONS abo)3.895 F -.15
|
||||
(ve)-.15 G 3.895(\). These).15 F 1.395(options af)3.895 F 1.395
|
||||
(fect the input lines from a starting)-.25 F F2(.EQ)108 348 Q F0(,)A F2
|
||||
(.TS)3.41 E F0 3.41(,o)C(r)-3.41 E F2(.PS)3.41 E F0 .91
|
||||
(request up to and including the matching)3.41 F F2(.EN)3.41 E F0(,)A F2
|
||||
(.TE)3.41 E F0 3.41(,o)C(r)-3.41 E F2(.PE)3.41 E F0 .91
|
||||
(request, as well as te)3.41 F .91(xt sur)-.15 F(-)-.2 E .384
|
||||
(rounded by the current eqn inline equation delimiters.)108 360 R .384
|
||||
(Each of the options can ha)5.384 F .684 -.15(ve o)-.2 H .384
|
||||
(ne the follo).15 F .385(wing v)-.25 F(al-)-.25 E(ues:)108 372 Q F2
|
||||
(copy)108 388.8 Q F0 1.146(The preprocessor input \(including the enclo\
|
||||
sing requests\) is placed inside <pre> and </pre>.)16 F(If)6.146 E .371
|
||||
(assigned to the option)144 400.8 R F2(handle-eqn)2.871 E F0 2.871(,i)C
|
||||
.372(nline equations are rendered in the font currently mounted on)
|
||||
-2.871 F(font position 2.)144 412.8 Q F2(text)108 429.6 Q F0 .641
|
||||
(The input is sent to the respecti)19.9 F .941 -.15(ve p)-.25 H .641
|
||||
(reprocessor \(as speci\214ed by the options).15 F F2(eqn)3.14 E F0(,)A
|
||||
F2(tbl)3.14 E F0 3.14(,o)C(r)-3.14 E F2(pic)3.14 E F0 .64(\), and)B
|
||||
1.342
|
||||
(its result is piped to the shell command referred to by the option)144
|
||||
441.6 R F2(tr)3.842 E(off-to-text)-.18 E F0 3.842(,w)C 1.342
|
||||
(hich typically)-3.842 F(in)144 453.6 Q -.2(vo)-.4 G(lv).2 E .979
|
||||
(es a call to)-.15 F F2(nr)3.478 E(off)-.18 E F0 .978(\(1\) or an equi)B
|
||||
-.25(va)-.25 G .978(lent command.).25 F .978(As with \231cop)5.978 F
|
||||
.978(y\232, the result is then placed)-.1 F
|
||||
(inside <pre> and </pre>, unless the source is an inline equation.)144
|
||||
465.6 Q 1.44(The v)144 482.4 R 1.44(alue of)-.25 F F2(tr)3.94 E
|
||||
(off-to-text)-.18 E F0 1.441(is \214ltered through a call to the)3.94 F
|
||||
F1(substitute)3.941 E F0 1.441(Scheme primiti)3.941 F 1.741 -.15(ve w)
|
||||
-.25 H 1.441(ith the).15 F .808(name of an output \214le as its ar)144
|
||||
494.4 R .807
|
||||
(gument; this \214le name can be referenced from within the option')-.18
|
||||
F(s)-.55 E -.25(va)144 506.4 S .253
|
||||
(lue by the substitute speci\214er \231%1%\232 \(see the Programmer').25
|
||||
F 2.753(sM)-.55 G .253(anual for a description of)-2.753 F F1(substi-)
|
||||
2.753 E(tute)144 518.4 Q F0(and a list of substitute speci\214ers\).)2.5
|
||||
E(Here is a typical v)5 E(alue for the)-.25 E F2(tr)2.5 E(off-to-text)
|
||||
-.18 E F0(option:)2.5 E F2("gr)144 536.4 Q(off \255T)-.18 E
|
||||
(ascii | col \255b | sed '/^[ \\t]*$/d' > %1%")-.92 E(gif)108 559.2 Q F0
|
||||
1.171(Input lines are preprocessed as described under \231te)24.89 F
|
||||
1.17(xt\232, and the result is piped to the shell com-)-.15 F .006
|
||||
(mand named by the option)144 571.2 R F2(tr)2.506 E(off-to-gif)-.18 E F0
|
||||
5.006(.T)C .007(he latter is subject to a call to)-5.006 F F1
|
||||
(substitute)2.507 E F0 .007(with the name of)2.507 F 3.052(at)144 583.2
|
||||
S .552(emporary \214le \(which may be used to store intermediate PostSc\
|
||||
ript output\) and the name of the)-3.052 F 2.535
|
||||
(output \214le where the resulting GIF image must be stored.)144 595.2 R
|
||||
2.535(The entire preprocessor input is)7.535 F 1.609(replaced by an <im\
|
||||
g> element with a reference to the GIF \214le and a suitable \231alt=\
|
||||
\232 attrib)144 607.2 R(ute.)-.2 E(Unless processing an inline equation\
|
||||
, the <img> element is surrounded by <p> tags.)144 619.2 Q .742(The nam\
|
||||
es of the \214les containing the GIF images are generated from the v)144
|
||||
636 R .743(alue of the)-.25 F F2(document)3.243 E F0 .268
|
||||
(option, a sequence number)144 648 R 2.767(,a)-.4 G .267(nd the suf)
|
||||
-2.767 F .267(\214x \231.gif\232.)-.25 F .267(Therefore, the)5.267 F F2
|
||||
(document)2.767 E F0 .267(option must ha)2.767 F .567 -.15(ve b)-.2 H
|
||||
(een).15 E 1.558(set when using the \231gif\232 method, otherwise a w)
|
||||
144 660 R 1.559(arning is printed and the preprocessor input is)-.1 F
|
||||
(skipped.)144 672 Q .795(In an)108 688.8 R 3.295(yc)-.15 G .795(ase, th\
|
||||
e output of a call to eqn is ignored if the input consists of calls to \
|
||||
\231delim\232 or \231de\214ne\232 and)-3.295 F 1.037(empty lines e)108
|
||||
700.8 R(xclusi)-.15 E -.15(ve)-.25 G(ly).15 E 6.037(.W)-.65 G 1.037
|
||||
(hen processing eqn input, calls to \231delim\232 are intercepted by)
|
||||
-6.037 F F1(unr)3.538 E(of)-.45 E(f)-.18 E F0 1.038(to record)3.538 F
|
||||
(changes of the inline equation delimiters.)108 712.8 Q 203.72
|
||||
(1995/08/23 5)283.22 768 R EP
|
||||
%%Page: 6 6
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 349.36(f-html\(1\) unrof)-.25 F
|
||||
(f-html\(1\))-.25 E/F1 10/Times-Bold@0 SF(HYPER)87 84 Q(TEXT LINKS)-.4 E
|
||||
F0 .745(The f)108 96 R .745(acilities for embedding arbitrary h)-.1 F
|
||||
(yperte)-.05 E .745(xt links in trof)-.15 F 3.245(fd)-.25 G .744
|
||||
(ocuments are still e)-3.245 F .744(xperimental in this v)-.15 F(er)-.15
|
||||
E(-)-.2 E 2.343(sion of)108 108 R/F2 10/Times-Italic@0 SF(unr)4.843 E
|
||||
(of)-.45 E(f)-.18 E F0 2.344(and thus are lik)4.844 F 2.344
|
||||
(ely to change in future releases.)-.1 F 3.944 -.8(To u)7.344 H 2.344
|
||||
(se them, mention the \214le name).8 F<9968>108 120 Q(yper)-.05 E .039
|
||||
(.scm\232 in the command line before an)-.55 F 2.539(yt)-.15 G(rof)
|
||||
-2.539 E 2.539(fs)-.25 G .039(ource \214les.)-2.539 F .039(At the be)
|
||||
5.039 F .039(ginning of the \214rst trof)-.15 F 2.538<668c>-.25 G .038
|
||||
(le, source)-2.538 F(the \214le \231tmac.h)108 132 Q
|
||||
(yper\232 from the directory \231doc\232 lik)-.05 E 2.5(et)-.1 G(his:)
|
||||
-2.5 E(.if !\\n\(.U .so tmac.h)148 148.8 Q(yper)-.05 E(The request)108
|
||||
165.6 Q F1(.Hr)2.5 E F0(can then be used to create a h)2.5 E(yperte)-.05
|
||||
E(xt link.)-.15 E(Its usage is:)5 E 2.5(.Hr -url)148 182.4 R 7.5
|
||||
(URL anchor)17.5 F(-te)-.2 E 2.5(xt [suf)-.15 F(\214x])-.25 E 2.5
|
||||
(.Hr -symbolic label anchor)148 194.4 R(-te)-.2 E 2.5(xt [suf)-.15 F
|
||||
(\214x])-.25 E 2.5(.Hr trof)148 206.4 R(f-te)-.25 E(xt)-.15 E 1.052
|
||||
(The \214rst tw)108 223.2 R 3.552(of)-.1 G 1.052(orms are recognized by)
|
||||
-3.552 F F2(unr)3.552 E(of)-.45 E(f)-.18 E F0 1.052
|
||||
(and the third form is recognized by trof)3.552 F 3.552(f. The)-.25 F
|
||||
1.053(\214rst form is)3.552 F .337(used for links pointing to e)108
|
||||
235.2 R .337(xternal resources, and the second one is used for forw)-.15
|
||||
F .336(ard or backw)-.1 F .336(ard links ref-)-.1 F .022
|
||||
(erencing anchors de\214ned in a \214le belonging to the same document.)
|
||||
108 247.2 R .023(An anchor is placed in the document by)5.022 F
|
||||
(calling the request)108 259.2 Q F1(.Ha)2.5 E F0(:)A(.Ha label anchor)
|
||||
148 276 Q(-te)-.2 E(xt)-.15 E 1.059(The label speci\214ed in a call to)
|
||||
108 292.8 R F1(.Ha)3.559 E F0 1.059(can then be used in calls to)3.559 F
|
||||
F1 1.059(.Hr -symbolic)3.559 F F0 6.059(.A)C 1.059
|
||||
(ll symbolic references)-6.059 F .185(must ha)108 304.8 R .485 -.15
|
||||
(ve b)-.2 H .185(een resolv).15 F .185(ed at the end of the document.)
|
||||
-.15 F .186(The \231anchor)5.186 F(-te)-.2 E .186
|
||||
(xt\232 is placed between the tags <a> and)-.15 F .772(</a>; \231suf)108
|
||||
316.8 R .772(\214x\232 is appended to the closing </a> if present.)-.25
|
||||
F(\231trof)5.772 E(f-te)-.25 E .771
|
||||
(xt\232 is just formatted in the normal w)-.15 F(ay)-.1 E(.)-.65 E
|
||||
(Quotes must be used if an)108 328.8 Q 2.5(yo)-.15 G 2.5(ft)-2.5 G
|
||||
(he ar)-2.5 E(guments contains spaces.)-.18 E 1.76(Use of the h)108
|
||||
345.6 R(yperte)-.05 E 1.76(xt f)-.15 F 1.761
|
||||
(acilities is demonstrated by the trof)-.1 F 4.261(fs)-.25 G 1.761
|
||||
(ource of the Programmer')-4.261 F 4.261(sM)-.55 G 1.761(anual that is)
|
||||
-4.261 F(included in the)108 357.6 Q F2(unr)2.5 E(of)-.45 E(f)-.18 E F0
|
||||
(distrib)2.5 E(ution.)-.2 E/F3 9/Times-Bold@0 SF(SCHEME PR)72 374.4 Q
|
||||
(OCEDURES)-.27 E F0 .73(The follo)108 386.4 R .73
|
||||
(wing Scheme procedures, macros, and v)-.25 F .729
|
||||
(ariables are de\214ned by the HTML 2.0 back-end and can)-.25 F
|
||||
(be used from within user)108 398.4 Q(-supplied Scheme code:)-.2 E(\()
|
||||
108 415.2 Q F2(de\214ne-font name start-ta)A 2.5(ge)-.1 G(nd-ta)-2.5 E
|
||||
(g)-.1 E F0(\))A .994
|
||||
(Associates a HTML start tag and end tag \(symbols\) with a trof)144
|
||||
427.2 R 3.495(ff)-.25 G .995(ont name \(string\) as e)-3.495 F(xplained)
|
||||
-.15 E(under FONTS abo)144 439.2 Q -.15(ve)-.15 G 5(.T).15 G
|
||||
(he font name can then be used in)-5 E F1(.fp)2.5 E F0(,)A F1(.ft)2.5 E
|
||||
F0 2.5(,a)C(nd `\\f)-2.5 E 2.5('r).55 G(equests.)-2.5 E(\()108 456 Q F2
|
||||
-.37(re)C(set-font).37 E F0(\))A(Resets both the current and pre)144 468
|
||||
Q(vious font to the font mounted on position 1.)-.25 E F2(curr)108 484.8
|
||||
Q(ent-font)-.37 E(pr)108 501.6 Q -.15(ev)-.37 G(ious-font).15 E F0
|
||||
(These v)144 513.6 Q(ariables hold the current and pre)-.25 E
|
||||
(vious font as \(inte)-.25 E(ger\) font positions.)-.15 E(\()108 530.4 Q
|
||||
F2(with-font-pr)A(eserved)-.37 E F0(.)2.5 E F2(body)2.5 E F0(\))A .95
|
||||
(This macro can be used to temporarily change to font \231R\232, e)144
|
||||
542.4 R -.25(va)-.25 G(luate).25 E F2(body)3.45 E F0 3.45(,a)C .95
|
||||
(nd re)-3.45 F -.15(ve)-.25 G .95(rt to the font).15 F 1.188
|
||||
(that has been acti)144 554.4 R 1.488 -.15(ve w)-.25 H 1.188
|
||||
(hen the form w).15 F 1.188(as entered.)-.1 F 1.188
|
||||
(The macro returns a string that can be output)6.188 F
|
||||
(using the primiti)144 566.4 Q -.15(ve)-.25 G F2(emit)2.65 E F0
|
||||
(or returned from an e)2.5 E -.15(ve)-.25 G(nt procedure.).15 E(\()108
|
||||
583.2 Q F2(pr)A(eform enable?)-.37 E F0(\))A(If the ar)144 595.2 Q
|
||||
(gument is #t, pre-formatted te)-.18 E
|
||||
(xt is enabled, otherwise disabled.)-.15 E F2(pr)108 612 Q(eform?)-.37 E
|
||||
F0(This boolean v)144 624 Q(ariable holds #t if pre-formatted te)-.25 E
|
||||
(xt is enabled, #f otherwise.)-.15 E(\()108 640.8 Q F2(with-pr)A
|
||||
(eform-pr)-.37 E(eserved)-.37 E F0(.)2.5 E F2(body)2.5 E F0(\))A 3.635
|
||||
(Am)144 652.8 S 1.135
|
||||
(acro that can be used to temporarily disable pre-formatted te)-3.635 F
|
||||
1.134(xt, e)-.15 F -.25(va)-.25 G(luate).25 E F2(body)3.634 E F0 3.634
|
||||
(,a)C 1.134(nd then re-)-3.634 F 1.003(enable it if appropriate.)144
|
||||
664.8 R 1.003(The macro e)6.003 F 1.003
|
||||
(xpands to a string that must be output or returned from an)-.15 F -2.15
|
||||
-.25(ev e)144 676.8 T(nt procedure.).25 E(\()108 693.6 Q F2(par)A
|
||||
(se-unquote string)-.1 E F0(\))A -.7(Te)144 705.6 S 2.021(mporarily est\
|
||||
ablishes an output translation to map the quote character to \231"\
|
||||
\232, applies).7 F F2(par)144 717.6 Q(se)-.1 E F0(\(e)2.5 E
|
||||
(xplained in the Programmer')-.15 E 2.5(sM)-.55 G(anual\) to its ar)-2.5
|
||||
E(gument, and returns the result.)-.18 E 203.72(1995/08/23 6)283.22 768
|
||||
R EP
|
||||
%%Page: 7 7
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 349.36(f-html\(1\) unrof)-.25 F
|
||||
(f-html\(1\))-.25 E(\()108 84 Q/F1 10/Times-Italic@0 SF(center n)A F0
|
||||
(\))A 1.079(Centers the ne)144 96 R(xt)-.15 E F1(n)3.579 E F0 1.079
|
||||
(input lines \(see description of)3.579 F/F2 10/Times-Bold@0 SF(.ce)
|
||||
3.579 E F0 1.08(under TR)3.579 F 1.08(OFF REQ)-.4 F 1.08(UESTS abo)-.1 F
|
||||
-.15(ve)-.15 G 3.58(\). If).15 F F1(n)3.58 E F0(is)3.58 E
|
||||
(zero, centering is stopped.)144 108 Q F1(nbsp)108 124.8 Q F0 2.5(AS)
|
||||
17.11 G(cheme v)-2.5 E(ariable that holds a string interpreted as a non\
|
||||
-breaking space by HTML clients.)-.25 E/F3 9/Times-Bold@0 SF(SEE ALSO)72
|
||||
141.6 Q F2(unr)108 153.6 Q(off)-.18 E F0(\(1\),)A F2(unr)2.5 E
|
||||
(off-html-man)-.18 E F0(\(1\),)A F2(unr)2.5 E(off-html-ms)-.18 E F0
|
||||
(\(1\);)A F2(tr)108 165.6 Q(off)-.18 E F0(\(1\),)A F2(nr)2.5 E(off)-.18
|
||||
E F0(\(1\),)A F2(gr)2.5 E(off)-.18 E F0(\(1\),)A F2(eqn)2.5 E F0(\(1\),)
|
||||
A F2(tbl)2.5 E F0(\(1\),)A F2(pic)2.5 E F0(\(1\).)A(Unrof)108 182.4 Q
|
||||
2.5(fP)-.25 G(rogrammer')-2.5 E 2.5(sM)-.55 G(anual.)-2.5 E(http://www)
|
||||
108 199.2 Q(.informatik.uni-bremen.de/~net/unrof)-.65 E(f)-.25 E 1.998
|
||||
(Berners-Lee, Connolly)108 216 R 4.498(,e)-.65 G 4.498(ta)-4.498 G 1.998
|
||||
(l., HyperT)-4.498 F -.15(ex)-.7 G 4.498(tM).15 G 1.998
|
||||
(arkup Language Speci\214cation\2122.0, Internet Draft, Internet)-4.498
|
||||
F(Engineering T)108 228 Q(ask F)-.8 E(orce.)-.15 E F3 -.09(BU)72 244.8 S
|
||||
(GS).09 E F0 .559(The `\\space' escape sequence should be mapped to the\
|
||||
  entity \(non-breaking space\), b)108 256.8 R .56(ut this entity)
|
||||
-.2 F(is not supported by a number of HTML clients.)108 268.8 Q
|
||||
(Only the font positions 1 to 9 can currently be used.)108 285.6 Q
|
||||
(There should be no limit.)5 E(The e)108 302.4 Q
|
||||
(xtra space generated for end of sentence should be con\214gurable.)-.15
|
||||
E(Underlining should be supported.)108 319.2 Q 203.72(1995/08/23 7)
|
||||
283.22 768 R EP
|
||||
%%Trailer
|
||||
end
|
||||
%%EOF
|
||||
|
|
@ -0,0 +1,682 @@
|
|||
.\" $Revision: 1.16 $
|
||||
.ds Ve 1.0
|
||||
.\"
|
||||
.de Ex
|
||||
.RS
|
||||
.nf
|
||||
.nr sf \\n(.f
|
||||
.if !\\n(.U \{\
|
||||
. ft B
|
||||
. if n .sp
|
||||
. if t .sp .5 \}
|
||||
..
|
||||
.de Ee
|
||||
.if !\\n(.U \{\
|
||||
. ft \\n(sf
|
||||
. if n .sp
|
||||
. if t .sp .5 \}
|
||||
.fi
|
||||
.RE
|
||||
..
|
||||
.\"
|
||||
.de Sd
|
||||
.ds Dt \\$2
|
||||
..
|
||||
.\"
|
||||
.Sd $Date: 1995/08/23 12:07:31 $
|
||||
.TH unroff 1 "\*(Dt"
|
||||
.SH NAME
|
||||
unroff \- programmable, extensible troff translator
|
||||
.SH SYNOPSIS
|
||||
.B unroff
|
||||
[
|
||||
.BI \-f format
|
||||
] [
|
||||
.BI \-m package
|
||||
] [
|
||||
.BI \-h heapsize
|
||||
] [
|
||||
.B \-C
|
||||
]
|
||||
.if n .ti +0.5i
|
||||
[
|
||||
.B \-t
|
||||
] [
|
||||
.IR file " | " option...\&
|
||||
]
|
||||
.SH OVERVIEW
|
||||
.I unroff
|
||||
reads and parses documents with embedded troff markup
|
||||
and translates them to a different format\(emtypically
|
||||
to a different markup language such as SGML.
|
||||
The actual output format is not hard-wired into
|
||||
.IR unroff ;
|
||||
instead, the translation is performed by a set of user-supplied rules
|
||||
and functions written in the
|
||||
.I Scheme
|
||||
programming language.
|
||||
.I unroff
|
||||
employs the Extension Language Kit
|
||||
.I Elk
|
||||
to achieve programmability based on the Scheme language:
|
||||
a fully-functional Scheme interpreter is embedded in the translator.
|
||||
.LP
|
||||
The documents that can be processed by
|
||||
.I unroff
|
||||
are not restricted to a specific troff macro set.
|
||||
Translation rules for a new macro package can be added by supplying
|
||||
a set of corresponding Scheme procedures (a \*(lqback-end\*(rq).
|
||||
Predefined sets of such procedures exist for a number of combinations
|
||||
of target language and troff macro package:
|
||||
.I unroff
|
||||
\*(Ve supports translation to the \*(lqHypertext Markup Language\*(rq
|
||||
(HTML) version 2.0 for the
|
||||
.B \-man
|
||||
and
|
||||
.B \-ms
|
||||
macro packages as well as \*(lqbare\*(rq troff (see
|
||||
.BR unroff-html (1),
|
||||
.BR unroff-html-man (1),
|
||||
and
|
||||
.BR unroff-html-ms (1)
|
||||
for a description).
|
||||
.LP
|
||||
Unlike conventional troff conversion tools,
|
||||
.I unroff
|
||||
includes a full troff parser and can therefore handle user-defined
|
||||
macros, strings, and number registers, nested if-else requests
|
||||
(with text blocks enclosed by `\e{' and `\e}' escape sequences), arbitrary
|
||||
fonts and font positions, troff \*(lqcopy mode\*(rq, low-level formatting
|
||||
requests such as `\el' and '\eh', and the subtle
|
||||
differences between request and macro invocations that are inherent
|
||||
in the troff processing model.
|
||||
.I unroff
|
||||
has adopted a number of troff extensions introduced by
|
||||
.IR groff ,
|
||||
among them long names for macros, strings, number registers, and
|
||||
special characters, and the `\e$@' and `\e$*' escape sequences.
|
||||
.LP
|
||||
.I unroff
|
||||
interprets its input stream as a sequence of \*(lqevents\*(rq.
|
||||
Events include the invocation of a troff request or macro, the use of a
|
||||
troff escape sequence or special character, a troff string
|
||||
or number register reference, end of sentence, start
|
||||
of a new input file, and so on.
|
||||
For each event encountered
|
||||
.I unroff
|
||||
invokes a Scheme procedure associated with that event.
|
||||
Some types of events require a procedure that returns a string (or an
|
||||
object that can be coerced into a string),
|
||||
which is then interpolated into the input or output stream;
|
||||
for other types of events, the event procedures are just called
|
||||
for their side-effects.
|
||||
.LP
|
||||
The set of Scheme procedures to be used by
|
||||
.I unroff
|
||||
is determined by the output format and the name of the troff
|
||||
macro package.
|
||||
In addition, users can supply event procedures for their own macro
|
||||
definitions (or replace existing ones) in form of a simple Scheme
|
||||
program passed to
|
||||
.I unroff
|
||||
along with the troff input files; Scheme code can even be directly
|
||||
embedded in the troff input as described below.
|
||||
.LP
|
||||
The full capabilities of
|
||||
.IR unroff
|
||||
and the Scheme primitives required to write extensions or support
|
||||
for new output formats are described in the
|
||||
.IR "Unroff Programmer's Manual" .
|
||||
.SH "GENERIC OPTIONS"
|
||||
.TP
|
||||
.BI \-f format
|
||||
Specifies the output format into which the troff input files are
|
||||
translated.
|
||||
If no
|
||||
.B \-f
|
||||
option is given, a default output format is used (for
|
||||
.I unroff
|
||||
version \*(Ve the default is
|
||||
.B \-f\c
|
||||
.IR html ).
|
||||
This default can be overridden by setting the
|
||||
.SB UNROFF_FORMAT
|
||||
environment variable.
|
||||
.TP
|
||||
.BI \-m name
|
||||
Specifies the name of the macro package that would be used by ordinary
|
||||
troff to typeset the document.
|
||||
In contrast to troff
|
||||
.I unroff
|
||||
does not actually load the macro package.
|
||||
Instead, the specified name\-in combination with the specified output
|
||||
format\-selects a set of Scheme files providing the procedure definitions
|
||||
that control the translation process (see
|
||||
.B FILES
|
||||
below).
|
||||
Therefore a corresponding
|
||||
.B tmac
|
||||
file need not exist for a given
|
||||
.B \-m
|
||||
option.
|
||||
.TP
|
||||
.BI \-h heapsize
|
||||
This option can be used to specify a non-standard heap size (in Kbytes)
|
||||
for the Scheme interpreter included in
|
||||
.IR unroff ;
|
||||
see
|
||||
.BR elk (1).
|
||||
.TP
|
||||
.B \-C
|
||||
Enables troff compatibility mode.
|
||||
In compatibility mode certain
|
||||
.I groff
|
||||
extensions such as long names are not recognized.
|
||||
.TP
|
||||
.B \-t
|
||||
Enables test mode.
|
||||
Instead of processing troff input files,
|
||||
.I unroff
|
||||
enters an interactive Scheme top-level.
|
||||
This can be useful to interactively experiment with the Scheme
|
||||
primitives defined by
|
||||
.I unroff
|
||||
or to test or debug user-defined Scheme procedures.
|
||||
.SH "KEYWORD/VALUE OPTIONS"
|
||||
In addition to the generic options, a set of output-format-specific
|
||||
options can be set from the command line and from within troff and
|
||||
Scheme input files.
|
||||
When specified on the command line, these options have the form
|
||||
.Ex
|
||||
\f2option\fP=\f2value\fP
|
||||
.Ee
|
||||
where the format of
|
||||
.I value
|
||||
depends on the
|
||||
.I type
|
||||
of the option.
|
||||
For example, most output formats defines an option
|
||||
.B document
|
||||
whose value is used as a prefix for all output files created during
|
||||
the translation.
|
||||
The option is assigned a value by specifying a token such as
|
||||
.Ex
|
||||
document=thesis
|
||||
.Ee
|
||||
on the command line.
|
||||
This option's value is interpreted as a plain string, i.\|e.\&
|
||||
its type is
|
||||
.BR string .
|
||||
.LP
|
||||
The Scheme back-ends and user-supplied extensions can define their
|
||||
own option types, but at least the following types are recognized:
|
||||
.TP 10n
|
||||
.B integer
|
||||
the option value is composed of an optional sign and an (arbitrary)
|
||||
string of digits
|
||||
.TP 10n
|
||||
.B boolean
|
||||
the option value must either be the character 1 (true) or the
|
||||
character 0 (false)
|
||||
.TP 10n
|
||||
.B character
|
||||
a single character must be specified as the option value
|
||||
.TP 10n
|
||||
.B string
|
||||
an arbitrary string of characters can be specified
|
||||
.TP 10n
|
||||
.B dynstring
|
||||
\*(lqdynamic string\*(rq; the option value is either
|
||||
.RS
|
||||
.TP
|
||||
.I string
|
||||
to assign a string to the option in the normal way, or
|
||||
.TP
|
||||
.BI + string
|
||||
to append the characters after the plus sign
|
||||
to the option's current value, or
|
||||
.TP
|
||||
.BI \- string
|
||||
to remove the characters after the minus sign from the
|
||||
option's current value.
|
||||
.RE
|
||||
.LP
|
||||
These extension-specific options must appear after the generic
|
||||
.I unroff
|
||||
options and may be mixed with the file name arguments.
|
||||
As the option assignments and specified input files are processed in
|
||||
order, the value given for an option is in effect for all the input
|
||||
files that appear on the command line to the right of the option.
|
||||
.LP
|
||||
The exact set of keyword/value options is determined by the
|
||||
Scheme code loaded for a given combination of output format
|
||||
and macro package name and is described in the corresponding
|
||||
manuals.
|
||||
The following few options can always be set, regardless of the
|
||||
actual output format:
|
||||
.TP
|
||||
.BR include-files " (boolean)"
|
||||
If true,
|
||||
.B .so
|
||||
requests are executed by
|
||||
.I unroff
|
||||
in the normal way (that is, the named input file is read and
|
||||
parsed), otherwise
|
||||
.B .so
|
||||
requests are ignored.
|
||||
The default value is 1.
|
||||
.TP
|
||||
.BR if-true " (dynstring)"
|
||||
the specified characters are assigned to (appended to, removed from)
|
||||
the set of one-character conditions that are regarded as true
|
||||
by the
|
||||
.B .if
|
||||
and
|
||||
.B .ie
|
||||
requests.
|
||||
The default value is "to".
|
||||
.TP
|
||||
.BR if-false " (dynstring)"
|
||||
like
|
||||
.BR if-true ;
|
||||
specifies the one-character conditions regarded as false.
|
||||
The default value is "ne".
|
||||
.SH FILES
|
||||
.SS "INPUT FILES"
|
||||
On startup,
|
||||
.I unroff
|
||||
loads the Scheme source files that control the translation process.
|
||||
All these files are loaded from subdirectories of a site-specific
|
||||
\*(lqlibrary directory\*(rq, typically something like
|
||||
.BR /usr/local/lib/unroff .
|
||||
The directory is usually chosen by the system administrator when
|
||||
installing the software and can be overridden by setting the
|
||||
.SB UNROFF_DIR
|
||||
environment variable.
|
||||
The path names mentioned in the following are relative to this
|
||||
library directory.
|
||||
.LP
|
||||
The first Scheme file loaded is
|
||||
.B scm/troff.scm
|
||||
which contains basic definitions such as the built-in options
|
||||
and option types, implementations for troff requests that are
|
||||
not output-format specific, and utility functions to be used
|
||||
by the back-ends or by user-supplied extensions.
|
||||
Next, the file
|
||||
.BI scm/ format /common.scm
|
||||
is loaded, where
|
||||
.I format
|
||||
is the value of the option
|
||||
.B \-f
|
||||
as given on the command line (or its default value).
|
||||
The file implements the translation of the basic troff
|
||||
requests, escape sequences, and special characters, etc.
|
||||
The code dealing with macro invocations is loaded from
|
||||
.BI scm/ format / package .scm
|
||||
where
|
||||
.I package
|
||||
is the value of the option
|
||||
.B \-m
|
||||
with the letter `m' prepended.
|
||||
.LP
|
||||
Finally, the file
|
||||
.B .unroff
|
||||
is loaded from the caller's home directory if present.
|
||||
Arbitrary Scheme code can be placed in this initialization file.
|
||||
It is typically used to assign values to package-specific
|
||||
keyword/value options according to the user's preferences
|
||||
(by means of the
|
||||
.I set-option!
|
||||
Scheme primitive as explained in the Programmer's Manual).
|
||||
.LP
|
||||
When the initial files have been loaded, any troff input files specified
|
||||
in the command line are read and parsed.
|
||||
The special file name
|
||||
.RB ` \- '
|
||||
can be used to indicate standard input (usually in combination with
|
||||
ordinary file names).
|
||||
If no file name is given,
|
||||
.I unroff
|
||||
reads from standard input.
|
||||
.LP
|
||||
In addition to troff input files, file containing Scheme code can
|
||||
be mentioned in the command line.
|
||||
Scheme files (which by convention end in
|
||||
.BR .scm )
|
||||
are loaded into the Scheme interpreter and usually contain
|
||||
used-defined Scheme procedures to translate specific macros or
|
||||
to replace existing procedures, or other user-supplied extensions
|
||||
of any kind.
|
||||
Scheme files named in the command line (or loaded explicitly from
|
||||
within other files) are resolved against the directory
|
||||
.B scm/misc/
|
||||
which may hold site-specific extensions or other supplementary
|
||||
packages.
|
||||
troff files and Scheme files can be mixed freely in the command line.
|
||||
.SS "OUTPUT FILES"
|
||||
Whether
|
||||
.I unroff
|
||||
sends its output to standard output or produces one or more output
|
||||
files is not hard-wired but determined by the combination of output
|
||||
format and macro package.
|
||||
Generally, if no troff input files are specified, output is directed
|
||||
to standard output, but this rule is not mandatory and may
|
||||
be overridden by specific back-ends.
|
||||
The
|
||||
.B document
|
||||
option is usually honored, although other rules may be employed to
|
||||
determine the names of output files (for example, the extension
|
||||
that implements
|
||||
.B \-man
|
||||
for a given output format may derive the name of the output file
|
||||
for a manual page from the input file name; see
|
||||
.BR unroff-html-man (1)).
|
||||
.LP
|
||||
If
|
||||
.I unroff
|
||||
is interrupted or quits early, any output files produced so far may be
|
||||
incomplete or may contain wrong or inconsistent data, because
|
||||
several passes may be required to complete an output file (for example,
|
||||
to resolve cross references between a set of files), or because
|
||||
an output file is not necessarily produced as a whole, but
|
||||
.I unroff
|
||||
may work on several files simultaneously.
|
||||
.SH EXAMPLES
|
||||
.LP
|
||||
To translate a troff document composed of two files and written with the
|
||||
\*(lqms\*(rq macro package to HTML 2.0,
|
||||
.I unroff
|
||||
might be called like this:
|
||||
.Ex
|
||||
unroff \-fhtml \-ms doc.tr doc.tr
|
||||
.Ee
|
||||
Two options specific to the combination of
|
||||
.B \-fhtml
|
||||
and
|
||||
.B \-ms
|
||||
might be added to specify a prefix for output files and to have
|
||||
the resulting output split into separate files after each section
|
||||
(see
|
||||
.BR unroff-html-ms (1)):
|
||||
.Ex
|
||||
unroff \-fhtml \-ms document=out/ split=1 doc.tr doc.tr
|
||||
.Ee
|
||||
Additional features may be loaded from Scheme files specified in the
|
||||
command line, e.\|g.\&
|
||||
.B hyper.scm
|
||||
which implements general Hypertext requests (and gets loaded from
|
||||
.BR scm/misc/ )
|
||||
and a user-supplied file in the current directory providing translation
|
||||
rules for user-defined troff macros:
|
||||
.Ex
|
||||
.ne 2
|
||||
unroff \-fhtml \-ms document=out/ split=1 hyper.scm doc.scm\e
|
||||
doc.tr doc.tr
|
||||
.Ee
|
||||
.SH "TROFF SUPPORT AND EXTENSIONS"
|
||||
As
|
||||
.I unroff
|
||||
translates troff input into another language rather than typesetting
|
||||
the text in the usual way, its processing model necessarily differs
|
||||
from that of conventional troff.
|
||||
For a detailed description refer to the Programmer's Manual.
|
||||
.LP
|
||||
In brief,
|
||||
.I unroff
|
||||
copies characters from input to output, optionally performing
|
||||
target-language-specific character translations.
|
||||
For each request or macro invocation, string or number register
|
||||
reference, special character, escape sequence, sentence end, or
|
||||
.BR eqn (1)
|
||||
inline equation encountered in the input stream,
|
||||
.I unroff
|
||||
checks whether an \*(lqevent value\*(rq has been specified by
|
||||
the Scheme code (user-supplied or part of the back-end).
|
||||
An event value is either a plain string, which is then treated as
|
||||
if it had been part of the input stream, or a Scheme procedure,
|
||||
which is then invoked and must in turn return a string.
|
||||
The Scheme procedures are passed arguments, e.\|g. the macro
|
||||
or request arguments in case of a procedure attached to a macro
|
||||
or request, or an escape sequence argument for functions such as
|
||||
`\ef' or `\ew'.
|
||||
.LP
|
||||
If no event value has been associated with a particular macro,
|
||||
string, or number register,
|
||||
.I unroff
|
||||
checks whether a definition has been supplied in the normal way,
|
||||
i.\|e. by means of
|
||||
.BR .de ,
|
||||
.BR .ds ,
|
||||
or
|
||||
.BR .nr .
|
||||
In this case, the value of the macro, string, or register is
|
||||
interpolated as done by ordinary troff.
|
||||
If no definition can be found, a fallback definition is looked up
|
||||
as a last resort; and if everything fails, a warning is printed
|
||||
and the event is ignored.
|
||||
Similarly, event procedures are invoked at end of input line,
|
||||
when an input file is opened or closed, at program start and
|
||||
termination, and for each option specified in the command line;
|
||||
but these procedures are called solely for their side-effects
|
||||
(i.\|e. the return values are ignored).
|
||||
.LP
|
||||
Most Scheme procedures just emit the target language's representation
|
||||
of the event with which they are associated.
|
||||
Other procedures perform various kinds of bookkeeping; the procedure
|
||||
associated with the
|
||||
.B .de
|
||||
request, for example, puts the text following
|
||||
aside for later expansion, and the event procedures attached to
|
||||
the requests
|
||||
.B .ds
|
||||
and
|
||||
.B .nr
|
||||
and to the escape sequences `\e*' and `\en'
|
||||
implement troff strings and number registers.
|
||||
This way, even basic troff functions need not be hard-wired and can
|
||||
be altered or replaced freely without recompiling
|
||||
.IR unroff .
|
||||
.LP
|
||||
The rule that an event value associated with a macro has precedence
|
||||
over the actual macro definition accommodates higher-level,
|
||||
structure-oriented target languages (such as SGML).
|
||||
While the micro-formatting contained in a typical
|
||||
.B \-ms
|
||||
macro definition, for example, makes sense to an ordinary typesetting
|
||||
program, it is usually impossible to infer the macro's
|
||||
.I structural
|
||||
function from it (new paragraph, quotation, etc.).
|
||||
On the other hand, troff documents often define a few additional,
|
||||
simple macros that just serve as an abbreviation for a sequence
|
||||
of predefined macros; in this case event procedures need not
|
||||
specified, as
|
||||
.I unroff
|
||||
will then perform normal macro expansion.
|
||||
.LP
|
||||
.I unroff
|
||||
usually takes care to not rescan the characters returned by event
|
||||
procedures as if their results had been normal input, because
|
||||
most event procedures already return code in the target language rather
|
||||
than troff input that can be rescanned.
|
||||
This, however, cannot always be avoided; for example, if a troff string
|
||||
reference occurs at macro definition time (because `\e*' is used rather
|
||||
than `\e\e*'), the string value ends up in the macro body and will still
|
||||
be rescanned when the macro is invoked.
|
||||
A few other pitfalls caused by differences in the processing models of
|
||||
troff and
|
||||
.I unroff
|
||||
are listed in the BUGS section below.
|
||||
.LP
|
||||
The scaling performed for the usual troff scale indicators
|
||||
can be manipulated by a calling a Scheme primitive from within
|
||||
the Scheme code implementing a particular back-end.
|
||||
.SS "NEW TROFF REQUESTS"
|
||||
To aid transparent output of code in the target language and
|
||||
evaluation of inline Scheme code,
|
||||
.I unroff
|
||||
supports two new requests and two extensions to the
|
||||
.B .ig
|
||||
(ignore input lines) troff request.
|
||||
.LP
|
||||
If
|
||||
.B .ig
|
||||
is called with the symbol
|
||||
.B >>
|
||||
as its first argument, all input lines up to (but not including)
|
||||
the terminating
|
||||
.B .>>
|
||||
are sent to the current output file.
|
||||
Example:
|
||||
when translating to the Hypertext Markup Language, the construct
|
||||
could be used to emit literal HTML code like this:
|
||||
.Ex
|
||||
.ne 6
|
||||
\&.ig >>
|
||||
<address>
|
||||
Bart Simpson<br>
|
||||
Springfield
|
||||
</address>
|
||||
\&.>>
|
||||
.Ee
|
||||
.LP
|
||||
To produce a single line of output, the new request
|
||||
.B .>>
|
||||
can be used as in this HTML example:
|
||||
.Ex
|
||||
\&.>> "<code>result = i+1;</code>"
|
||||
.Ee
|
||||
.LP
|
||||
If the
|
||||
.B .ig
|
||||
request is called with the argument
|
||||
.BR ##,
|
||||
everything up to the terminating
|
||||
.B .##
|
||||
is passed to the Scheme interpreter for evaluation.
|
||||
This allows users to embed Scheme code in a troff document which
|
||||
is executed when the document is processed by
|
||||
.IR unroff .
|
||||
One use of this construct is to provide a Scheme event procedure
|
||||
for a user-defined macro by placing the corresponding Scheme
|
||||
definition in the same source file right below the troff macro definition.
|
||||
Similarly, the request
|
||||
.B .##
|
||||
can be used to evaluate a short S-expression; all arguments to
|
||||
the request are concatenated and then passed to the Scheme
|
||||
interpreter.
|
||||
.LP
|
||||
Note that inline Scheme code is a potentially dangerous feature,
|
||||
as a document received by someone else may contain embedded code
|
||||
that does something unexpected when the file is processed by
|
||||
.I unroff
|
||||
(but it is probably not more dangerous than the standard troff
|
||||
.B .pi
|
||||
request or the
|
||||
.B .sy
|
||||
request of
|
||||
.IR ditroff ).
|
||||
.LP
|
||||
.I unroff
|
||||
defines the following new read-only number registers:
|
||||
.TP
|
||||
.B .U
|
||||
This register always expand to 1.
|
||||
It can be used by macros to determine whether the document is
|
||||
being processed by
|
||||
.IR unroff .
|
||||
.TP
|
||||
.B .C
|
||||
Expands to 1 if troff compatibility mode has been enabled
|
||||
by using the option
|
||||
.BR \-C ,
|
||||
to 0 otherwise.
|
||||
.LP
|
||||
The following new escape sequences are available in a macro
|
||||
body during macro expansion:
|
||||
.TP
|
||||
.B $0
|
||||
The name of the current macro.
|
||||
.TP
|
||||
.B $*
|
||||
The concatenation of all arguments, separated by spaces.
|
||||
.TP
|
||||
.B $@
|
||||
The concatenation of all arguments, separated by spaces, and
|
||||
with each argument enclosed by double quotes.
|
||||
.LP
|
||||
The names of strings, macros, number registers, and fonts may be of
|
||||
any length.
|
||||
As in
|
||||
.IR groff ,
|
||||
square brackets can be used for names of arbitrary length:
|
||||
.Ex
|
||||
\ef[font] \e*[string] \en[numreg] ...
|
||||
.Ee
|
||||
.LP
|
||||
There is no limit on the number of macro arguments, and the following
|
||||
syntax can be used to reference the 10th, 11th, etc. macro argument:
|
||||
.Ex
|
||||
\e$(12 \e$[12] \e$[123]
|
||||
.Ee
|
||||
.LP
|
||||
Unless troff compatibility mode has been enabled, the arguments to the
|
||||
.IR groff -specific
|
||||
escape sequences `\eA', `\eC', '\eL', '\eN', '\eR', '\eV', '\eY',
|
||||
and '\eZ' are recognized and parsed, so that event procedures
|
||||
can be implemented correctly for these escape sequences.
|
||||
.SH "SEE ALSO"
|
||||
.BR unroff-html (1),
|
||||
.BR unroff-html-man (1),
|
||||
.BR unroff-html-ms (1);
|
||||
.br
|
||||
.BR troff (1),
|
||||
.BR groff (1);
|
||||
.BR elk (1).
|
||||
.LP
|
||||
Unroff Programmer's Manual.
|
||||
.LP
|
||||
http://www.informatik.uni-bremen.de/~net/unroff
|
||||
.SH AUTHOR
|
||||
Oliver Laumann, net@cs.tu-berlin.de
|
||||
.SH BUGS
|
||||
A number of low-level formatting features of troff (such as the
|
||||
absolute position indicator in numerical expressions)
|
||||
are not yet supported by
|
||||
.I unroff
|
||||
version \*(Ve, which is not critical for higher-level,
|
||||
structure-oriented target languages such as the Hypertext
|
||||
Markup Language.
|
||||
.LP
|
||||
Diversions are not supported, although specific back-ends are
|
||||
free to add this functionality.
|
||||
.LP
|
||||
Special characters are not treated right in certain contexts;
|
||||
in particular, special characters may not be used in place
|
||||
of plain characters where the characters act as some kind of
|
||||
delimiter as in
|
||||
.Ex
|
||||
\&.if \e(bsfoo\e(bsbar\e(bs ...
|
||||
.Ee
|
||||
.LP
|
||||
Spaces in an
|
||||
.B .if
|
||||
condition do not work; e.\|g. the following fails:
|
||||
.Ex
|
||||
\&.if ' ' ' ...
|
||||
.Ee
|
||||
.LP
|
||||
Conditional input is subject to string and number register
|
||||
expansion even if the corresponding if-condition evaluates to false.
|
||||
.LP
|
||||
There are no number register formats, i.\|e. the request
|
||||
.B .af
|
||||
does not work.
|
||||
.LP
|
||||
The set of punctuation marks that indicate end of sentence
|
||||
should be configurable.
|
||||
.LP
|
||||
Empty input lines and leading space should trigger a special
|
||||
event, so that their break semantics can be implemented correctly.
|
||||
.LP
|
||||
A comment in a line by itself currently does not generate a
|
||||
blank line.
|
||||
|
|
@ -0,0 +1,699 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:29:17. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<!-- $Revision: 1.16 $ -->
|
||||
<title>Manual page for unroff(1)</title>
|
||||
</head>
|
||||
<body>
|
||||
<h2>
|
||||
unroff - programmable, extensible troff translator
|
||||
<hr></h2>
|
||||
<h2>SYNOPSIS</h2>
|
||||
<b>unroff
|
||||
</b>[
|
||||
<b>-f</b><i>format
|
||||
</i>] [
|
||||
<b>-m</b><i>package
|
||||
</i>] [
|
||||
<b>-h</b><i>heapsize
|
||||
</i>] [
|
||||
<b>-C
|
||||
</b>]
|
||||
[
|
||||
<b>-t
|
||||
</b>] [
|
||||
<i>file</i> | <i>option...
|
||||
</i>]
|
||||
<h2>OVERVIEW</h2>
|
||||
<i>unroff
|
||||
</i>reads and parses documents with embedded troff markup
|
||||
and translates them to a different format--typically
|
||||
to a different markup language such as SGML.<tt> </tt>
|
||||
The actual output format is not hard-wired into
|
||||
<i>unroff</i>;
|
||||
instead, the translation is performed by a set of user-supplied rules
|
||||
and functions written in the
|
||||
<i>Scheme
|
||||
</i>programming language.<tt> </tt>
|
||||
<i>unroff
|
||||
</i>employs the Extension Language Kit
|
||||
<i>Elk
|
||||
</i>to achieve programmability based on the Scheme language:
|
||||
a fully-functional Scheme interpreter is embedded in the translator.<tt> </tt>
|
||||
<p>
|
||||
The documents that can be processed by
|
||||
<i>unroff
|
||||
</i>are not restricted to a specific troff macro set.<tt> </tt>
|
||||
Translation rules for a new macro package can be added by supplying
|
||||
a set of corresponding Scheme procedures (a ``back-end'').<tt> </tt>
|
||||
Predefined sets of such procedures exist for a number of combinations
|
||||
of target language and troff macro package:
|
||||
<i>unroff
|
||||
</i>1.0 supports translation to the ``Hypertext Markup Language''
|
||||
(HTML) version 2.0 for the
|
||||
<b>-man
|
||||
</b>and
|
||||
<b>-ms
|
||||
</b>macro packages as well as ``bare'' troff (see
|
||||
<b>unroff-html</b>(1),
|
||||
<b>unroff-html-man</b>(1),
|
||||
and
|
||||
<b>unroff-html-ms</b>(1)
|
||||
for a description).<tt> </tt>
|
||||
<p>
|
||||
Unlike conventional troff conversion tools,
|
||||
<i>unroff
|
||||
</i>includes a full troff parser and can therefore handle user-defined
|
||||
macros, strings, and number registers, nested if-else requests
|
||||
(with text blocks enclosed by `\{' and `\}' escape sequences), arbitrary
|
||||
fonts and font positions, troff ``copy mode'', low-level formatting
|
||||
requests such as `\l' and '\h', and the subtle
|
||||
differences between request and macro invocations that are inherent
|
||||
in the troff processing model.<tt> </tt>
|
||||
<i>unroff
|
||||
</i>has adopted a number of troff extensions introduced by
|
||||
<i>groff</i>,
|
||||
among them long names for macros, strings, number registers, and
|
||||
special characters, and the `\$@' and `\$*' escape sequences.<tt> </tt>
|
||||
<p>
|
||||
<i>unroff
|
||||
</i>interprets its input stream as a sequence of ``events''.<tt> </tt>
|
||||
Events include the invocation of a troff request or macro, the use of a
|
||||
troff escape sequence or special character, a troff string
|
||||
or number register reference, end of sentence, start
|
||||
of a new input file, and so on.<tt> </tt>
|
||||
For each event encountered
|
||||
<i>unroff
|
||||
</i>invokes a Scheme procedure associated with that event.<tt> </tt>
|
||||
Some types of events require a procedure that returns a string (or an
|
||||
object that can be coerced into a string),
|
||||
which is then interpolated into the input or output stream;
|
||||
for other types of events, the event procedures are just called
|
||||
for their side-effects.<tt> </tt>
|
||||
<p>
|
||||
The set of Scheme procedures to be used by
|
||||
<i>unroff
|
||||
</i>is determined by the output format and the name of the troff
|
||||
macro package.<tt> </tt>
|
||||
In addition, users can supply event procedures for their own macro
|
||||
definitions (or replace existing ones) in form of a simple Scheme
|
||||
program passed to
|
||||
<i>unroff
|
||||
</i>along with the troff input files; Scheme code can even be directly
|
||||
embedded in the troff input as described below.<tt> </tt>
|
||||
<p>
|
||||
The full capabilities of
|
||||
<i>unroff
|
||||
</i>and the Scheme primitives required to write extensions or support
|
||||
for new output formats are described in the
|
||||
<i>Unroff Programmer's Manual</i>.<tt> </tt>
|
||||
<h2>GENERIC OPTIONS</h2>
|
||||
<dl>
|
||||
<dt><b>-f</b><i>format
|
||||
</i><dd>
|
||||
Specifies the output format into which the troff input files are
|
||||
translated.<tt> </tt>
|
||||
If no
|
||||
<b>-f
|
||||
</b>option is given, a default output format is used (for
|
||||
<i>unroff
|
||||
</i>version 1.0 the default is
|
||||
<b>-f</b><i>html</i>).<tt> </tt>
|
||||
This default can be overridden by setting the
|
||||
<b>UNROFF_FORMAT
|
||||
</b>environment variable.<tt> </tt>
|
||||
<dt><b>-m</b><i>name
|
||||
</i><dd>
|
||||
Specifies the name of the macro package that would be used by ordinary
|
||||
troff to typeset the document.<tt> </tt>
|
||||
In contrast to troff
|
||||
<i>unroff
|
||||
</i>does not actually load the macro package.<tt> </tt>
|
||||
Instead, the specified name-in combination with the specified output
|
||||
format-selects a set of Scheme files providing the procedure definitions
|
||||
that control the translation process (see
|
||||
<b>FILES
|
||||
</b>below).<tt> </tt>
|
||||
Therefore a corresponding
|
||||
<b>tmac
|
||||
</b>file need not exist for a given
|
||||
<b>-m
|
||||
</b>option.<tt> </tt>
|
||||
<dt><b>-h</b><i>heapsize
|
||||
</i><dd>
|
||||
This option can be used to specify a non-standard heap size (in Kbytes)
|
||||
for the Scheme interpreter included in
|
||||
<i>unroff</i>;
|
||||
see
|
||||
<b>elk</b>(1).<tt> </tt>
|
||||
<dt><b>-C
|
||||
</b><dd>
|
||||
Enables troff compatibility mode.<tt> </tt>
|
||||
In compatibility mode certain
|
||||
<i>groff
|
||||
</i>extensions such as long names are not recognized.<tt> </tt>
|
||||
<dt><b>-t
|
||||
</b><dd>
|
||||
Enables test mode.<tt> </tt>
|
||||
Instead of processing troff input files,
|
||||
<i>unroff
|
||||
</i>enters an interactive Scheme top-level.<tt> </tt>
|
||||
This can be useful to interactively experiment with the Scheme
|
||||
primitives defined by
|
||||
<i>unroff
|
||||
</i>or to test or debug user-defined Scheme procedures.<tt> </tt>
|
||||
</dl>
|
||||
<h2>KEYWORD/VALUE OPTIONS</h2>
|
||||
In addition to the generic options, a set of output-format-specific
|
||||
options can be set from the command line and from within troff and
|
||||
Scheme input files.<tt> </tt>
|
||||
When specified on the command line, these options have the form
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
<i>option</i>=<i>value</i>
|
||||
</pre>
|
||||
</dl>
|
||||
where the format of
|
||||
<i>value
|
||||
</i>depends on the
|
||||
<i>type
|
||||
</i>of the option.<tt> </tt>
|
||||
For example, most output formats defines an option
|
||||
<b>document
|
||||
</b>whose value is used as a prefix for all output files created during
|
||||
the translation.<tt> </tt>
|
||||
The option is assigned a value by specifying a token such as
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
document=thesis
|
||||
</pre>
|
||||
</dl>
|
||||
on the command line.<tt> </tt>
|
||||
This option's value is interpreted as a plain string, i.e.
|
||||
its type is
|
||||
<b>string</b>.<tt> </tt>
|
||||
<p>
|
||||
The Scheme back-ends and user-supplied extensions can define their
|
||||
own option types, but at least the following types are recognized:
|
||||
<dl>
|
||||
<dt><b>integer
|
||||
</b><dd>
|
||||
the option value is composed of an optional sign and an (arbitrary)
|
||||
string of digits
|
||||
<dt><b>boolean
|
||||
</b><dd>
|
||||
the option value must either be the character 1 (true) or the
|
||||
character 0 (false)
|
||||
<dt><b>character
|
||||
</b><dd>
|
||||
a single character must be specified as the option value
|
||||
<dt><b>string
|
||||
</b><dd>
|
||||
an arbitrary string of characters can be specified
|
||||
<dt><b>dynstring
|
||||
</b><dd>
|
||||
``dynamic string''; the option value is either
|
||||
</dl>
|
||||
<dl><dt><dd>
|
||||
<dl>
|
||||
<dt><i>string
|
||||
</i><dd>
|
||||
to assign a string to the option in the normal way, or
|
||||
<dt><b>+</b><i>string
|
||||
</i><dd>
|
||||
to append the characters after the plus sign
|
||||
to the option's current value, or
|
||||
<dt><b>-</b><i>string
|
||||
</i><dd>
|
||||
to remove the characters after the minus sign from the
|
||||
option's current value.<tt> </tt>
|
||||
</dl>
|
||||
</dl>
|
||||
<p>
|
||||
These extension-specific options must appear after the generic
|
||||
<i>unroff
|
||||
</i>options and may be mixed with the file name arguments.<tt> </tt>
|
||||
As the option assignments and specified input files are processed in
|
||||
order, the value given for an option is in effect for all the input
|
||||
files that appear on the command line to the right of the option.<tt> </tt>
|
||||
<p>
|
||||
The exact set of keyword/value options is determined by the
|
||||
Scheme code loaded for a given combination of output format
|
||||
and macro package name and is described in the corresponding
|
||||
manuals.<tt> </tt>
|
||||
The following few options can always be set, regardless of the
|
||||
actual output format:
|
||||
<dl>
|
||||
<dt><b>include-files</b> (boolean)
|
||||
<dd>
|
||||
If true,
|
||||
<b>.so
|
||||
</b>requests are executed by
|
||||
<i>unroff
|
||||
</i>in the normal way (that is, the named input file is read and
|
||||
parsed), otherwise
|
||||
<b>.so
|
||||
</b>requests are ignored.<tt> </tt>
|
||||
The default value is 1.<tt> </tt>
|
||||
<dt><b>if-true</b> (dynstring)
|
||||
<dd>
|
||||
the specified characters are assigned to (appended to, removed from)
|
||||
the set of one-character conditions that are regarded as true
|
||||
by the
|
||||
<b>.if
|
||||
</b>and
|
||||
<b>.ie
|
||||
</b>requests.<tt> </tt>
|
||||
The default value is "to".<tt> </tt>
|
||||
<dt><b>if-false</b> (dynstring)
|
||||
<dd>
|
||||
like
|
||||
<b>if-true</b>;
|
||||
specifies the one-character conditions regarded as false.<tt> </tt>
|
||||
The default value is "ne".<tt> </tt>
|
||||
</dl>
|
||||
<h2>FILES</h2>
|
||||
<h3>INPUT FILES</h3>
|
||||
On startup,
|
||||
<i>unroff
|
||||
</i>loads the Scheme source files that control the translation process.<tt> </tt>
|
||||
All these files are loaded from subdirectories of a site-specific
|
||||
``library directory'', typically something like
|
||||
<b>/usr/local/lib/unroff</b>.<tt> </tt>
|
||||
The directory is usually chosen by the system administrator when
|
||||
installing the software and can be overridden by setting the
|
||||
<b>UNROFF_DIR
|
||||
</b>environment variable.<tt> </tt>
|
||||
The path names mentioned in the following are relative to this
|
||||
library directory.<tt> </tt>
|
||||
<p>
|
||||
The first Scheme file loaded is
|
||||
<b>scm/troff.scm
|
||||
</b>which contains basic definitions such as the built-in options
|
||||
and option types, implementations for troff requests that are
|
||||
not output-format specific, and utility functions to be used
|
||||
by the back-ends or by user-supplied extensions.<tt> </tt>
|
||||
Next, the file
|
||||
<b>scm/</b><i>format</i><b>/common.scm
|
||||
</b>is loaded, where
|
||||
<i>format
|
||||
</i>is the value of the option
|
||||
<b>-f
|
||||
</b>as given on the command line (or its default value).<tt> </tt>
|
||||
The file implements the translation of the basic troff
|
||||
requests, escape sequences, and special characters, etc.<tt> </tt>
|
||||
The code dealing with macro invocations is loaded from
|
||||
<b>scm/</b><i>format</i><b>/</b><i>package</i><b>.scm
|
||||
</b>where
|
||||
<i>package
|
||||
</i>is the value of the option
|
||||
<b>-m
|
||||
</b>with the letter `m' prepended.<tt> </tt>
|
||||
<p>
|
||||
Finally, the file
|
||||
<b>.unroff
|
||||
</b>is loaded from the caller's home directory if present.<tt> </tt>
|
||||
Arbitrary Scheme code can be placed in this initialization file.<tt> </tt>
|
||||
It is typically used to assign values to package-specific
|
||||
keyword/value options according to the user's preferences
|
||||
(by means of the
|
||||
<i>set-option!
|
||||
</i>Scheme primitive as explained in the Programmer's Manual).<tt> </tt>
|
||||
<p>
|
||||
When the initial files have been loaded, any troff input files specified
|
||||
in the command line are read and parsed.<tt> </tt>
|
||||
The special file name
|
||||
`<b>-</b>'
|
||||
can be used to indicate standard input (usually in combination with
|
||||
ordinary file names).<tt> </tt>
|
||||
If no file name is given,
|
||||
<i>unroff
|
||||
</i>reads from standard input.<tt> </tt>
|
||||
<p>
|
||||
In addition to troff input files, file containing Scheme code can
|
||||
be mentioned in the command line.<tt> </tt>
|
||||
Scheme files (which by convention end in
|
||||
<b>.scm</b>)
|
||||
are loaded into the Scheme interpreter and usually contain
|
||||
used-defined Scheme procedures to translate specific macros or
|
||||
to replace existing procedures, or other user-supplied extensions
|
||||
of any kind.<tt> </tt>
|
||||
Scheme files named in the command line (or loaded explicitly from
|
||||
within other files) are resolved against the directory
|
||||
<b>scm/misc/
|
||||
</b>which may hold site-specific extensions or other supplementary
|
||||
packages.<tt> </tt>
|
||||
troff files and Scheme files can be mixed freely in the command line.<tt> </tt>
|
||||
<h3>OUTPUT FILES</h3>
|
||||
Whether
|
||||
<i>unroff
|
||||
</i>sends its output to standard output or produces one or more output
|
||||
files is not hard-wired but determined by the combination of output
|
||||
format and macro package.<tt> </tt>
|
||||
Generally, if no troff input files are specified, output is directed
|
||||
to standard output, but this rule is not mandatory and may
|
||||
be overridden by specific back-ends.<tt> </tt>
|
||||
The
|
||||
<b>document
|
||||
</b>option is usually honored, although other rules may be employed to
|
||||
determine the names of output files (for example, the extension
|
||||
that implements
|
||||
<b>-man
|
||||
</b>for a given output format may derive the name of the output file
|
||||
for a manual page from the input file name; see
|
||||
<b>unroff-html-man</b>(1)).<tt> </tt>
|
||||
<p>
|
||||
If
|
||||
<i>unroff
|
||||
</i>is interrupted or quits early, any output files produced so far may be
|
||||
incomplete or may contain wrong or inconsistent data, because
|
||||
several passes may be required to complete an output file (for example,
|
||||
to resolve cross references between a set of files), or because
|
||||
an output file is not necessarily produced as a whole, but
|
||||
<i>unroff
|
||||
</i>may work on several files simultaneously.<tt> </tt>
|
||||
<h2>EXAMPLES</h2>
|
||||
<p>
|
||||
To translate a troff document composed of two files and written with the
|
||||
``ms'' macro package to HTML 2.0,
|
||||
<i>unroff
|
||||
</i>might be called like this:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
unroff -fhtml -ms doc.tr doc.tr
|
||||
</pre>
|
||||
</dl>
|
||||
Two options specific to the combination of
|
||||
<b>-fhtml
|
||||
</b>and
|
||||
<b>-ms
|
||||
</b>might be added to specify a prefix for output files and to have
|
||||
the resulting output split into separate files after each section
|
||||
(see
|
||||
<b>unroff-html-ms</b>(1)):
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
unroff -fhtml -ms document=out/ split=1 doc.tr doc.tr
|
||||
</pre>
|
||||
</dl>
|
||||
Additional features may be loaded from Scheme files specified in the
|
||||
command line, e.g.
|
||||
<b>hyper.scm
|
||||
</b>which implements general Hypertext requests (and gets loaded from
|
||||
<b>scm/misc/</b>)
|
||||
and a user-supplied file in the current directory providing translation
|
||||
rules for user-defined troff macros:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
unroff -fhtml -ms document=out/ split=1 hyper.scm doc.scm\
|
||||
doc.tr doc.tr
|
||||
</pre>
|
||||
</dl>
|
||||
<h2>TROFF SUPPORT AND EXTENSIONS</h2>
|
||||
As
|
||||
<i>unroff
|
||||
</i>translates troff input into another language rather than typesetting
|
||||
the text in the usual way, its processing model necessarily differs
|
||||
from that of conventional troff.<tt> </tt>
|
||||
For a detailed description refer to the Programmer's Manual.<tt> </tt>
|
||||
<p>
|
||||
In brief,
|
||||
<i>unroff
|
||||
</i>copies characters from input to output, optionally performing
|
||||
target-language-specific character translations.<tt> </tt>
|
||||
For each request or macro invocation, string or number register
|
||||
reference, special character, escape sequence, sentence end, or
|
||||
<b>eqn</b>(1)
|
||||
inline equation encountered in the input stream,
|
||||
<i>unroff
|
||||
</i>checks whether an ``event value'' has been specified by
|
||||
the Scheme code (user-supplied or part of the back-end).<tt> </tt>
|
||||
An event value is either a plain string, which is then treated as
|
||||
if it had been part of the input stream, or a Scheme procedure,
|
||||
which is then invoked and must in turn return a string.<tt> </tt>
|
||||
The Scheme procedures are passed arguments, e.g. the macro
|
||||
or request arguments in case of a procedure attached to a macro
|
||||
or request, or an escape sequence argument for functions such as
|
||||
`\f' or `\w'.<tt> </tt>
|
||||
<p>
|
||||
If no event value has been associated with a particular macro,
|
||||
string, or number register,
|
||||
<i>unroff
|
||||
</i>checks whether a definition has been supplied in the normal way,
|
||||
i.e. by means of
|
||||
<b>.de</b>,
|
||||
<b>.ds</b>,
|
||||
or
|
||||
<b>.nr</b>.<tt> </tt>
|
||||
In this case, the value of the macro, string, or register is
|
||||
interpolated as done by ordinary troff.<tt> </tt>
|
||||
If no definition can be found, a fallback definition is looked up
|
||||
as a last resort; and if everything fails, a warning is printed
|
||||
and the event is ignored.<tt> </tt>
|
||||
Similarly, event procedures are invoked at end of input line,
|
||||
when an input file is opened or closed, at program start and
|
||||
termination, and for each option specified in the command line;
|
||||
but these procedures are called solely for their side-effects
|
||||
(i.e. the return values are ignored).<tt> </tt>
|
||||
<p>
|
||||
Most Scheme procedures just emit the target language's representation
|
||||
of the event with which they are associated.<tt> </tt>
|
||||
Other procedures perform various kinds of bookkeeping; the procedure
|
||||
associated with the
|
||||
<b>.de
|
||||
</b>request, for example, puts the text following
|
||||
aside for later expansion, and the event procedures attached to
|
||||
the requests
|
||||
<b>.ds
|
||||
</b>and
|
||||
<b>.nr
|
||||
</b>and to the escape sequences `\*' and `\n'
|
||||
implement troff strings and number registers.<tt> </tt>
|
||||
This way, even basic troff functions need not be hard-wired and can
|
||||
be altered or replaced freely without recompiling
|
||||
<i>unroff</i>.<tt> </tt>
|
||||
<p>
|
||||
The rule that an event value associated with a macro has precedence
|
||||
over the actual macro definition accommodates higher-level,
|
||||
structure-oriented target languages (such as SGML).<tt> </tt>
|
||||
While the micro-formatting contained in a typical
|
||||
<b>-ms
|
||||
</b>macro definition, for example, makes sense to an ordinary typesetting
|
||||
program, it is usually impossible to infer the macro's
|
||||
<i>structural
|
||||
</i>function from it (new paragraph, quotation, etc.).<tt> </tt>
|
||||
On the other hand, troff documents often define a few additional,
|
||||
simple macros that just serve as an abbreviation for a sequence
|
||||
of predefined macros; in this case event procedures need not
|
||||
specified, as
|
||||
<i>unroff
|
||||
</i>will then perform normal macro expansion.<tt> </tt>
|
||||
<p>
|
||||
<i>unroff
|
||||
</i>usually takes care to not rescan the characters returned by event
|
||||
procedures as if their results had been normal input, because
|
||||
most event procedures already return code in the target language rather
|
||||
than troff input that can be rescanned.<tt> </tt>
|
||||
This, however, cannot always be avoided; for example, if a troff string
|
||||
reference occurs at macro definition time (because `\*' is used rather
|
||||
than `\\*'), the string value ends up in the macro body and will still
|
||||
be rescanned when the macro is invoked.<tt> </tt>
|
||||
A few other pitfalls caused by differences in the processing models of
|
||||
troff and
|
||||
<i>unroff
|
||||
</i>are listed in the BUGS section below.<tt> </tt>
|
||||
<p>
|
||||
The scaling performed for the usual troff scale indicators
|
||||
can be manipulated by a calling a Scheme primitive from within
|
||||
the Scheme code implementing a particular back-end.<tt> </tt>
|
||||
<h3>NEW TROFF REQUESTS</h3>
|
||||
To aid transparent output of code in the target language and
|
||||
evaluation of inline Scheme code,
|
||||
<i>unroff
|
||||
</i>supports two new requests and two extensions to the
|
||||
<b>.ig
|
||||
</b>(ignore input lines) troff request.<tt> </tt>
|
||||
<p>
|
||||
If
|
||||
<b>.ig
|
||||
</b>is called with the symbol
|
||||
<b>>>
|
||||
</b>as its first argument, all input lines up to (but not including)
|
||||
the terminating
|
||||
<b>.>>
|
||||
</b>are sent to the current output file.<tt> </tt>
|
||||
Example:
|
||||
when translating to the Hypertext Markup Language, the construct
|
||||
could be used to emit literal HTML code like this:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
.ig >>
|
||||
<address>
|
||||
Bart Simpson<br>
|
||||
Springfield
|
||||
</address>
|
||||
.>>
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
To produce a single line of output, the new request
|
||||
<b>.>>
|
||||
</b>can be used as in this HTML example:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
.>> "<code>result = i+1;</code>"
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
If the
|
||||
<b>.ig
|
||||
</b>request is called with the argument
|
||||
<b>##,
|
||||
</b>everything up to the terminating
|
||||
<b>.##
|
||||
</b>is passed to the Scheme interpreter for evaluation.<tt> </tt>
|
||||
This allows users to embed Scheme code in a troff document which
|
||||
is executed when the document is processed by
|
||||
<i>unroff</i>.<tt> </tt>
|
||||
One use of this construct is to provide a Scheme event procedure
|
||||
for a user-defined macro by placing the corresponding Scheme
|
||||
definition in the same source file right below the troff macro definition.<tt> </tt>
|
||||
Similarly, the request
|
||||
<b>.##
|
||||
</b>can be used to evaluate a short S-expression; all arguments to
|
||||
the request are concatenated and then passed to the Scheme
|
||||
interpreter.<tt> </tt>
|
||||
<p>
|
||||
Note that inline Scheme code is a potentially dangerous feature,
|
||||
as a document received by someone else may contain embedded code
|
||||
that does something unexpected when the file is processed by
|
||||
<i>unroff
|
||||
</i>(but it is probably not more dangerous than the standard troff
|
||||
<b>.pi
|
||||
</b>request or the
|
||||
<b>.sy
|
||||
</b>request of
|
||||
<i>ditroff</i>).<tt> </tt>
|
||||
<p>
|
||||
<i>unroff
|
||||
</i>defines the following new read-only number registers:
|
||||
<dl>
|
||||
<dt><b>.U
|
||||
</b><dd>
|
||||
This register always expand to 1.<tt> </tt>
|
||||
It can be used by macros to determine whether the document is
|
||||
being processed by
|
||||
<i>unroff</i>.<tt> </tt>
|
||||
<dt><b>.C
|
||||
</b><dd>
|
||||
Expands to 1 if troff compatibility mode has been enabled
|
||||
by using the option
|
||||
<b>-C</b>,
|
||||
to 0 otherwise.<tt> </tt>
|
||||
</dl>
|
||||
<p>
|
||||
The following new escape sequences are available in a macro
|
||||
body during macro expansion:
|
||||
<dl>
|
||||
<dt><b>$0
|
||||
</b><dd>
|
||||
The name of the current macro.<tt> </tt>
|
||||
<dt><b>$*
|
||||
</b><dd>
|
||||
The concatenation of all arguments, separated by spaces.<tt> </tt>
|
||||
<dt><b>$@
|
||||
</b><dd>
|
||||
The concatenation of all arguments, separated by spaces, and
|
||||
with each argument enclosed by double quotes.<tt> </tt>
|
||||
</dl>
|
||||
<p>
|
||||
The names of strings, macros, number registers, and fonts may be of
|
||||
any length.<tt> </tt>
|
||||
As in
|
||||
<i>groff</i>,
|
||||
square brackets can be used for names of arbitrary length:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
\f[font] \*[string] \n[numreg] ...
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
There is no limit on the number of macro arguments, and the following
|
||||
syntax can be used to reference the 10th, 11th, etc. macro argument:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
\$(12 \$[12] \$[123]
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
Unless troff compatibility mode has been enabled, the arguments to the
|
||||
<i>groff</i>-specific
|
||||
escape sequences `\A', `\C', '\L', '\N', '\R', '\V', '\Y',
|
||||
and '\Z' are recognized and parsed, so that event procedures
|
||||
can be implemented correctly for these escape sequences.<tt> </tt>
|
||||
<h2>SEE ALSO</h2>
|
||||
<b>unroff-html</b>(1),
|
||||
<b>unroff-html-man</b>(1),
|
||||
<b>unroff-html-ms</b>(1);
|
||||
<br>
|
||||
<b>troff</b>(1),
|
||||
<b>groff</b>(1);
|
||||
<b>elk</b>(1).<tt> </tt>
|
||||
<p>
|
||||
Unroff Programmer's Manual.<tt> </tt>
|
||||
<p>
|
||||
http://www.informatik.uni-bremen.de/~net/unroff
|
||||
<h2>AUTHOR</h2>
|
||||
Oliver Laumann, net@cs.tu-berlin.de
|
||||
<h2>BUGS</h2>
|
||||
A number of low-level formatting features of troff (such as the
|
||||
absolute position indicator in numerical expressions)
|
||||
are not yet supported by
|
||||
<i>unroff
|
||||
</i>version 1.0, which is not critical for higher-level,
|
||||
structure-oriented target languages such as the Hypertext
|
||||
Markup Language.<tt> </tt>
|
||||
<p>
|
||||
Diversions are not supported, although specific back-ends are
|
||||
free to add this functionality.<tt> </tt>
|
||||
<p>
|
||||
Special characters are not treated right in certain contexts;
|
||||
in particular, special characters may not be used in place
|
||||
of plain characters where the characters act as some kind of
|
||||
delimiter as in
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
.if \(bsfoo\(bsbar\(bs ...
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
Spaces in an
|
||||
<b>.if
|
||||
</b>condition do not work; e.g. the following fails:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
.if ' ' ' ...
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
Conditional input is subject to string and number register
|
||||
expansion even if the corresponding if-condition evaluates to false.<tt> </tt>
|
||||
<p>
|
||||
There are no number register formats, i.e. the request
|
||||
<b>.af
|
||||
</b>does not work.<tt> </tt>
|
||||
<p>
|
||||
The set of punctuation marks that indicate end of sentence
|
||||
should be configurable.<tt> </tt>
|
||||
<p>
|
||||
Empty input lines and leading space should trigger a special
|
||||
event, so that their break semantics can be implemented correctly.<tt> </tt>
|
||||
<p>
|
||||
A comment in a line by itself currently does not generate a
|
||||
blank line.<tt> </tt>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996.
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,800 @@
|
|||
%!PS-Adobe-3.0
|
||||
%%Creator: groff version 1.09
|
||||
%%CreationDate: Thu Mar 21 19:29:54 1996
|
||||
%%DocumentNeededResources: font Times-Roman
|
||||
%%+ font Times-Bold
|
||||
%%+ font Times-Italic
|
||||
%%DocumentSuppliedResources: procset grops 1.09 0
|
||||
%%Pages: 6
|
||||
%%PageOrder: Ascend
|
||||
%%Orientation: Portrait
|
||||
%%EndComments
|
||||
%%BeginProlog
|
||||
%%BeginResource: procset grops 1.09 0
|
||||
/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
|
||||
/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
|
||||
}bind 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
|
||||
/FL{
|
||||
currentgray exch setgray fill setgray
|
||||
}bind def
|
||||
/BL/fill load def
|
||||
/LW/setlinewidth 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
|
||||
}bind def
|
||||
/PEND{
|
||||
clear
|
||||
countdictstack CNT sub{end}repeat
|
||||
level1 restore
|
||||
}bind def
|
||||
end def
|
||||
/setpacking where{
|
||||
pop
|
||||
setpacking
|
||||
}if
|
||||
%%EndResource
|
||||
%%IncludeResource: font Times-Roman
|
||||
%%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 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron
|
||||
/Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.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
|
||||
/Times-Roman@0 ENC0/Times-Roman RE
|
||||
%%EndProlog
|
||||
%%Page: 1 1
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 392.7(f\(1\) unrof)-.25 F(f\(1\))
|
||||
-.25 E/F1 9/Times-Bold@0 SF -.18(NA)72 84 S(ME).18 E F0(unrof)108 96 Q
|
||||
2.5(f\255p)-.25 G(rogrammable, e)-2.5 E(xtensible trof)-.15 E 2.5(ft)
|
||||
-.25 G(ranslator)-2.5 E F1(SYNOPSIS)72 112.8 Q/F2 10/Times-Bold@0 SF
|
||||
(unr)108 124.8 Q(off)-.18 E F0([)2.5 E F2<ad66>2.5 E/F3 10
|
||||
/Times-Italic@0 SF(format)1.97 E F0 2.5(][)2.5 G F2<ad6d>A F3(pac)1.25 E
|
||||
(ka)-.2 E -.1(ge)-.1 G F0 2.5(][)2.6 G F2<ad68>A F3(heapsize).31 E F0
|
||||
2.5(][)2.5 G F2<ad43>A F0 2.5(][)2.5 G F2<ad74>A F0 2.5(][)2.5 G F3
|
||||
(\214le)A F0(|)2.68 E F3(option...)2.73 E F0(])2.5 E F1 -.45(OV)72 141.6
|
||||
S(ER).45 E(VIEW)-.495 E F3(unr)108 153.6 Q(of)-.45 E(f)-.18 E F0 .307
|
||||
(reads and parses documents with embedded trof)2.807 F 2.807(fm)-.25 G
|
||||
.306(arkup and translates them to a dif)-2.807 F .306(ferent format\212)
|
||||
-.25 F .873(typically to a dif)108 165.6 R .874
|
||||
(ferent markup language such as SGML.)-.25 F .874
|
||||
(The actual output format is not hard-wired into)5.874 F F3(unr)108
|
||||
177.6 Q(of)-.45 E(f)-.18 E F0 3.929(;i)1.96 G 1.429
|
||||
(nstead, the translation is performed by a set of user)-3.929 F 1.428
|
||||
(-supplied rules and functions written in the)-.2 F F3(Sc)108 189.6 Q
|
||||
(heme)-.15 E F0 .232(programming language.)2.732 F F3(unr)5.232 E(of)
|
||||
-.45 E(f)-.18 E F0(emplo)2.732 E .232(ys the Extension Language Kit)-.1
|
||||
F F3(Elk)2.733 E F0 .233(to achie)2.733 F .533 -.15(ve p)-.25 H
|
||||
(rogrammabil-).15 E(ity based on the Scheme language: a fully-functiona\
|
||||
l Scheme interpreter is embedded in the translator)108 201.6 Q(.)-.55 E
|
||||
.604(The documents that can be processed by)108 218.4 R F3(unr)3.104 E
|
||||
(of)-.45 E(f)-.18 E F0 .603(are not restricted to a speci\214c trof)
|
||||
3.104 F 3.103(fm)-.25 G .603(acro set.)-3.103 F -.35(Tr)5.603 G
|
||||
(anslation).35 E 1.103(rules for a ne)108 230.4 R 3.603(wm)-.25 G 1.104
|
||||
(acro package can be added by supplying a set of corresponding Scheme p\
|
||||
rocedures \(a)-3.603 F 2.718(\231back-end\232\). Prede\214ned)108 242.4
|
||||
R .218(sets of such procedures e)2.718 F .218
|
||||
(xist for a number of combinations of tar)-.15 F .218(get language and)
|
||||
-.18 F(trof)108 254.4 Q 2.879(fm)-.25 G .379(acro package:)-2.879 F F3
|
||||
(unr)2.879 E(of)-.45 E(f)-.18 E F0 .379
|
||||
(1.0 supports translation to the \231Hyperte)2.879 F .38
|
||||
(xt Markup Language\232 \(HTML\) v)-.15 F(ersion)-.15 E 1.848
|
||||
(2.0 for the)108 266.4 R F2(\255man)4.348 E F0(and)4.348 E F2(\255ms)
|
||||
4.348 E F0 1.847(macro packages as well as \231bare\232 trof)4.347 F
|
||||
4.347(f\()-.25 G(see)-4.347 E F2(unr)4.347 E(off-html)-.18 E F0(\(1\),)A
|
||||
F2(unr)4.347 E(off-html-)-.18 E(man)108 278.4 Q F0(\(1\), and)A F2(unr)
|
||||
2.5 E(off-html-ms)-.18 E F0(\(1\) for a description\).)A(Unlik)108 295.2
|
||||
Q 2.845(ec)-.1 G(on)-2.845 E -.15(ve)-.4 G .345(ntional trof).15 F 2.845
|
||||
(fc)-.25 G(on)-2.845 E -.15(ve)-.4 G .345(rsion tools,).15 F F3(unr)
|
||||
2.845 E(of)-.45 E(f)-.18 E F0 .345(includes a full trof)2.845 F 2.845
|
||||
(fp)-.25 G .346(arser and can therefore handle user)-2.845 F(-)-.2 E
|
||||
.283(de\214ned macros, strings, and number re)108 307.2 R .283
|
||||
(gisters, nested if-else requests \(with te)-.15 F .282
|
||||
(xt blocks enclosed by `\\{' and)-.15 F .467
|
||||
(`\\}' escape sequences\), arbitrary fonts and font positions, trof)108
|
||||
319.2 R 2.967<6699>-.25 G(cop)-2.967 E 2.967(ym)-.1 G .467(ode\232, lo)
|
||||
-2.967 F(w-le)-.25 E -.15(ve)-.25 G 2.967(lf).15 G .467
|
||||
(ormatting requests)-2.967 F .566
|
||||
(such as `\\l' and '\\h', and the subtle dif)108 331.2 R .566
|
||||
(ferences between request and macro in)-.25 F -.2(vo)-.4 G .566
|
||||
(cations that are inherent in).2 F 1.133(the trof)108 343.2 R 3.633(fp)
|
||||
-.25 G 1.133(rocessing model.)-3.633 F F3(unr)6.133 E(of)-.45 E(f)-.18 E
|
||||
F0 1.133(has adopted a number of trof)3.633 F 3.634(fe)-.25 G 1.134
|
||||
(xtensions introduced by)-3.784 F F3(gr)3.634 E(of)-.45 E(f)-.18 E F0
|
||||
3.634(,a)1.96 G(mong)-3.634 E 1.517
|
||||
(them long names for macros, strings, number re)108 355.2 R 1.516
|
||||
(gisters, and special characters, and the `\\$@' and `\\$*')-.15 F
|
||||
(escape sequences.)108 367.2 Q F3(unr)108 384 Q(of)-.45 E(f)-.18 E F0
|
||||
.29(interprets its input stream as a sequence of \231e)2.79 F -.15(ve)
|
||||
-.25 G 2.791(nts\232. Ev).15 F .291(ents include the in)-.15 F -.2(vo)
|
||||
-.4 G .291(cation of a trof).2 F 2.791(fr)-.25 G(equest)-2.791 E .225
|
||||
(or macro, the use of a trof)108 396 R 2.725(fe)-.25 G .225
|
||||
(scape sequence or special character)-2.725 F 2.725(,at)-.4 G(rof)-2.725
|
||||
E 2.725(fs)-.25 G .225(tring or number re)-2.725 F .225
|
||||
(gister reference,)-.15 F .616(end of sentence, start of a ne)108 408 R
|
||||
3.116(wi)-.25 G .616(nput \214le, and so on.)-3.116 F -.15(Fo)5.616 G
|
||||
3.116(re).15 G .617(ach e)-3.116 F -.15(ve)-.25 G .617(nt encountered)
|
||||
.15 F F3(unr)3.117 E(of)-.45 E(f)-.18 E F0(in)3.117 E -.2(vo)-.4 G -.1
|
||||
(ke).2 G 3.117(saS).1 G(cheme)-3.117 E .482
|
||||
(procedure associated with that e)108 420 R -.15(ve)-.25 G 2.981
|
||||
(nt. Some).15 F .481(types of e)2.981 F -.15(ve)-.25 G .481
|
||||
(nts require a procedure that returns a string \(or an).15 F .108(objec\
|
||||
t that can be coerced into a string\), which is then interpolated into \
|
||||
the input or output stream; for other)108 432 R(types of e)108 444 Q
|
||||
-.15(ve)-.25 G(nts, the e).15 E -.15(ve)-.25 G
|
||||
(nt procedures are just called for their side-ef).15 E(fects.)-.25 E
|
||||
.357(The set of Scheme procedures to be used by)108 460.8 R F3(unr)2.857
|
||||
E(of)-.45 E(f)-.18 E F0 .357
|
||||
(is determined by the output format and the name of the)2.857 F(trof)108
|
||||
472.8 Q 3.736(fm)-.25 G 1.236(acro package.)-3.736 F 1.237
|
||||
(In addition, users can supply e)6.236 F -.15(ve)-.25 G 1.237
|
||||
(nt procedures for their o).15 F 1.237(wn macro de\214nitions \(or)-.25
|
||||
F .264(replace e)108 484.8 R .264
|
||||
(xisting ones\) in form of a simple Scheme program passed to)-.15 F F3
|
||||
(unr)2.763 E(of)-.45 E(f)-.18 E F0 .263(along with the trof)2.763 F
|
||||
2.763(fi)-.25 G .263(nput \214les;)-2.763 F(Scheme code can e)108 496.8
|
||||
Q -.15(ve)-.25 G 2.5(nb).15 G 2.5(ed)-2.5 G
|
||||
(irectly embedded in the trof)-2.5 E 2.5(fi)-.25 G
|
||||
(nput as described belo)-2.5 E -.65(w.)-.25 G 1.016
|
||||
(The full capabilities of)108 513.6 R F3(unr)3.516 E(of)-.45 E(f)-.18 E
|
||||
F0 1.016(and the Scheme primiti)3.516 F -.15(ve)-.25 G 3.516(sr).15 G
|
||||
1.016(equired to write e)-3.516 F 1.017(xtensions or support for ne)-.15
|
||||
F(w)-.25 E(output formats are described in the)108 525.6 Q F3(Unr)2.5 E
|
||||
(of)-.45 E 2.5(fP)-.18 G -1.7 -.45(ro g)-2.5 H -.15(ra).45 G(mmer').15 E
|
||||
2.5(sM)-.4 G(anual)-2.5 E F0(.).51 E F1(GENERIC OPTIONS)72 542.4 Q F2
|
||||
<ad66>108 554.4 Q F3(format)1.97 E F0 .04
|
||||
(Speci\214es the output format into which the trof)144 566.4 R 2.54(fi)
|
||||
-.25 G .039(nput \214les are translated.)-2.54 F .039(If no)5.039 F F2
|
||||
<ad66>2.539 E F0 .039(option is gi)2.539 F -.15(ve)-.25 G .039(n, a).15
|
||||
F(def)144 578.4 Q 1.22(ault output format is used \(for)-.1 F F3(unr)
|
||||
3.72 E(of)-.45 E(f)-.18 E F0 -.15(ve)3.721 G 1.221(rsion 1.0 the def).15
|
||||
F 1.221(ault is)-.1 F F2<ad66>3.721 E F3(html)A F0 3.721(\). This).51 F
|
||||
(def)3.721 E 1.221(ault can be)-.1 F -.15(ove)144 590.4 S
|
||||
(rridden by setting the).15 E F1(UNR)2.5 E(OFF_FORMA)-.27 E(T)-.855 E F0
|
||||
(en)2.25 E(vironment v)-.4 E(ariable.)-.25 E F2<ad6d>108 607.2 Q F3
|
||||
(name).36 E F0 .297(Speci\214es the name of the macro package that w)144
|
||||
619.2 R .296(ould be used by ordinary trof)-.1 F 2.796(ft)-.25 G 2.796
|
||||
(ot)-2.796 G .296(ypeset the docu-)-2.796 F 3.185(ment. In)144 631.2 R
|
||||
.685(contrast to trof)3.185 F(f)-.25 E F3(unr)3.185 E(of)-.45 E(f)-.18 E
|
||||
F0 .685(does not actually load the macro package.)3.185 F .686
|
||||
(Instead, the speci\214ed)5.686 F .399(name\255in combination with the \
|
||||
speci\214ed output format\255selects a set of Scheme \214les pro)144
|
||||
643.2 R .398(viding the)-.15 F .898
|
||||
(procedure de\214nitions that control the translation process \(see)144
|
||||
655.2 R F2(FILES)3.398 E F0(belo)3.399 E 3.399(w\). Therefore)-.25 F
|
||||
3.399(ac)3.399 G(orre-)-3.399 E(sponding)144 667.2 Q F2(tmac)2.5 E F0
|
||||
(\214le need not e)2.5 E(xist for a gi)-.15 E -.15(ve)-.25 G(n).15 E F2
|
||||
<ad6d>2.5 E F0(option.)2.5 E F2<ad68>108 684 Q F3(heapsize).31 E F0 .207
|
||||
(This option can be used to specify a non-standard heap size \(in Kbyte\
|
||||
s\) for the Scheme interpreter)144 696 R(included in)144 708 Q F3(unr)
|
||||
2.5 E(of)-.45 E(f)-.18 E F0 2.5(;s)1.96 G(ee)-2.5 E F2(elk)2.5 E F0
|
||||
(\(1\).)A 203.72(1995/08/23 1)283.22 768 R EP
|
||||
%%Page: 2 2
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 392.7(f\(1\) unrof)-.25 F(f\(1\))
|
||||
-.25 E/F1 10/Times-Bold@0 SF<ad43>108 84 Q F0 1.652(Enables trof)23.08 F
|
||||
4.152(fc)-.25 G 1.652(ompatibility mode.)-4.152 F 1.652
|
||||
(In compatibility mode certain)6.652 F/F2 10/Times-Italic@0 SF(gr)4.153
|
||||
E(of)-.45 E(f)-.18 E F0 -.15(ex)4.153 G 1.653(tensions such as long).15
|
||||
F(names are not recognized.)144 96 Q F1<ad74>108 112.8 Q F0 .306
|
||||
(Enables test mode.)26.97 F .306(Instead of processing trof)5.306 F
|
||||
2.806(fi)-.25 G .306(nput \214les,)-2.806 F F2(unr)2.806 E(of)-.45 E(f)
|
||||
-.18 E F0 .305(enters an interacti)2.806 F .605 -.15(ve S)-.25 H .305
|
||||
(cheme top-).15 F(le)144 124.8 Q -.15(ve)-.25 G 2.795(l. This).15 F .295
|
||||
(can be useful to interacti)2.795 F -.15(ve)-.25 G .295(ly e).15 F .295
|
||||
(xperiment with the Scheme primiti)-.15 F -.15(ve)-.25 G 2.795(sd).15 G
|
||||
.295(e\214ned by)-2.795 F F2(unr)2.795 E(of)-.45 E(f)-.18 E F0
|
||||
(or to test or deb)144 136.8 Q(ug user)-.2 E
|
||||
(-de\214ned Scheme procedures.)-.2 E/F3 9/Times-Bold@0 SF(KEYW)72 153.6
|
||||
Q(ORD/V)-.09 E(ALUE OPTIONS)-1.215 E F0 .219(In addition to the generic\
|
||||
options, a set of output-format-speci\214c options can be set from the\
|
||||
command line)108 165.6 R .286(and from within trof)108 177.6 R 2.786
|
||||
(fa)-.25 G .286(nd Scheme input \214les.)-2.786 F .287
|
||||
(When speci\214ed on the command line, these options ha)5.286 F .587
|
||||
-.15(ve t)-.2 H(he).15 E(form)108 189.6 Q F2(option)144 207.6 Q F1(=)A
|
||||
F2(value)A F0 .425(where the format of)108 225.6 R F2(value)2.925 E F0
|
||||
.425(depends on the)2.925 F F2(type)2.925 E F0 .424(of the option.)2.924
|
||||
F -.15(Fo)5.424 G 2.924(re).15 G .424
|
||||
(xample, most output formats de\214nes an)-3.074 F(option)108 237.6 Q F1
|
||||
(document)3.664 E F0 1.164(whose v)3.664 F 1.165(alue is used as a pre\
|
||||
\214x for all output \214les created during the translation.)-.25 F(The)
|
||||
6.165 E(option is assigned a v)108 249.6 Q(alue by specifying a tok)-.25
|
||||
E(en such as)-.1 E F1(document=thesis)144 267.6 Q F0
|
||||
(on the command line.)108 285.6 Q(This option')5 E 2.5(sv)-.55 G
|
||||
(alue is interpreted as a plain string, i.)-2.75 E(e. its type is)1.666
|
||||
E F1(string)2.5 E F0(.)A .405(The Scheme back-ends and user)108 302.4 R
|
||||
.405(-supplied e)-.2 F .405(xtensions can de\214ne their o)-.15 F .405
|
||||
(wn option types, b)-.25 F .405(ut at least the fol-)-.2 F(lo)108 314.4
|
||||
Q(wing types are recognized:)-.25 E F1(integer)108 331.2 Q F0
|
||||
(the option v)20.01 E(alue is composed of an optional sign and an \(arb\
|
||||
itrary\) string of digits)-.25 E F1(boolean)108 348 Q F0(the option v)
|
||||
16.66 E
|
||||
(alue must either be the character 1 \(true\) or the character 0 \(f)
|
||||
-.25 E(alse\))-.1 E F1(character)108 364.8 Q F0 2.5(as)8.91 G
|
||||
(ingle character must be speci\214ed as the option v)-2.5 E(alue)-.25 E
|
||||
F1(string)108 381.6 Q F0
|
||||
(an arbitrary string of characters can be speci\214ed)25 E F1(dynstring)
|
||||
108 398.4 Q F0(\231dynamic string\232; the option v)8.88 E
|
||||
(alue is either)-.25 E F2(string)158 415.2 Q F0
|
||||
(to assign a string to the option in the normal w)12.66 E(ay)-.1 E 2.5
|
||||
(,o)-.65 G(r)-2.5 E F1(+)158 432 Q F2(string).34 E F0
|
||||
(to append the characters after the plus sign to the option')6.62 E 2.5
|
||||
(sc)-.55 G(urrent v)-2.5 E(alue, or)-.25 E F1<ad>158 448.8 Q F2(string)
|
||||
.34 E F0(to remo)6.62 E .3 -.15(ve t)-.15 H
|
||||
(he characters after the minus sign from the option').15 E 2.5(sc)-.55 G
|
||||
(urrent v)-2.5 E(alue.)-.25 E .921(These e)108 465.6 R .921
|
||||
(xtension-speci\214c options must appear after the generic)-.15 F F2
|
||||
(unr)3.421 E(of)-.45 E(f)-.18 E F0 .922(options and may be mix)3.421 F
|
||||
.922(ed with the)-.15 F .615(\214le name ar)108 477.6 R 3.115
|
||||
(guments. As)-.18 F .614(the option assignments and speci\214ed input \
|
||||
\214les are processed in order)3.115 F 3.114(,t)-.4 G .614(he v)-3.114 F
|
||||
(alue)-.25 E(gi)108 489.6 Q -.15(ve)-.25 G 3.531(nf).15 G 1.031
|
||||
(or an option is in ef)-3.531 F 1.032(fect for all the input \214les th\
|
||||
at appear on the command line to the right of the)-.25 F(option.)108
|
||||
501.6 Q .549(The e)108 518.4 R .549(xact set of k)-.15 F -.15(ey)-.1 G
|
||||
-.1(wo).15 G(rd/v).1 E .549
|
||||
(alue options is determined by the Scheme code loaded for a gi)-.25 F
|
||||
-.15(ve)-.25 G 3.048(nc).15 G(ombination)-3.048 E .729(of output format\
|
||||
and macro package name and is described in the corresponding manuals.)
|
||||
108 530.4 R .73(The follo)5.73 F(wing)-.25 E(fe)108 542.4 Q 2.5(wo)-.25
|
||||
G(ptions can al)-2.5 E -.1(wa)-.1 G(ys be set, re).1 E -.05(ga)-.15 G
|
||||
(rdless of the actual output format:).05 E F1(include-\214les)108 559.2
|
||||
Q F0(\(boolean\))2.5 E .52(If true,)144 571.2 R F1(.so)3.02 E F0 .52
|
||||
(requests are e)3.02 F -.15(xe)-.15 G .52(cuted by).15 F F2(unr)3.02 E
|
||||
(of)-.45 E(f)-.18 E F0 .519(in the normal w)3.02 F .519
|
||||
(ay \(that is, the named input \214le is read)-.1 F
|
||||
(and parsed\), otherwise)144 583.2 Q F1(.so)2.5 E F0
|
||||
(requests are ignored.)2.5 E(The def)5 E(ault v)-.1 E(alue is 1.)-.25 E
|
||||
F1(if-true)108 600 Q F0(\(dynstring\))2.5 E .36
|
||||
(the speci\214ed characters are assigned to \(appended to, remo)144 612
|
||||
R -.15(ve)-.15 G 2.86(df).15 G .36(rom\) the set of one-character con-)
|
||||
-2.86 F(ditions that are re)144 624 Q -.05(ga)-.15 G
|
||||
(rded as true by the).05 E F1(.if)2.5 E F0(and)2.5 E F1(.ie)2.5 E F0 2.5
|
||||
(requests. The)2.5 F(def)2.5 E(ault v)-.1 E(alue is "to".)-.25 E F1
|
||||
(if-false)108 640.8 Q F0(\(dynstring\))2.5 E(lik)144 652.8 Q(e)-.1 E F1
|
||||
(if-true)2.5 E F0 2.5(;s)C(peci\214es the one-character conditions re)
|
||||
-2.5 E -.05(ga)-.15 G(rded as f).05 E 2.5(alse. The)-.1 F(def)2.5 E
|
||||
(ault v)-.1 E(alue is "ne".)-.25 E F3(FILES)72 669.6 Q F1(INPUT FILES)87
|
||||
681.6 Q F0 1.47(On startup,)108 693.6 R F2(unr)3.97 E(of)-.45 E(f)-.18 E
|
||||
F0 1.469
|
||||
(loads the Scheme source \214les that control the translation process.)
|
||||
3.97 F 1.469(All these \214les are)6.469 F 7.855(loaded from subdirecto\
|
||||
ries of a site-speci\214c \231library directory\232, typically somethin\
|
||||
g lik)108 705.6 R(e)-.1 E F1(/usr/local/lib/unr)108 717.6 Q(off)-.18 E
|
||||
F0 5.276(.T)C .275(he directory is usually chosen by the system adminis\
|
||||
trator when installing the soft-)-5.276 F -.1(wa)108 729.6 S .17
|
||||
(re and can be o).1 F -.15(ve)-.15 G .17(rridden by setting the).15 F F3
|
||||
(UNR)2.67 E(OFF_DIR)-.27 E F0(en)2.42 E .17(vironment v)-.4 F 2.67
|
||||
(ariable. The)-.25 F .17(path names mentioned)2.67 F 203.72
|
||||
(1995/08/23 2)283.22 768 R EP
|
||||
%%Page: 3 3
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 392.7(f\(1\) unrof)-.25 F(f\(1\))
|
||||
-.25 E(in the follo)108 84 Q(wing are relati)-.25 E .3 -.15(ve t)-.25 H
|
||||
2.5(ot).15 G(his library directory)-2.5 E(.)-.65 E .653
|
||||
(The \214rst Scheme \214le loaded is)108 100.8 R/F1 10/Times-Bold@0 SF
|
||||
(scm/tr)3.153 E(off)-.18 E(.scm)-.15 E F0 .652
|
||||
(which contains basic de\214nitions such as the b)3.153 F .652
|
||||
(uilt-in options)-.2 F .044(and option types, implementations for trof)
|
||||
108 112.8 R 2.544(fr)-.25 G .044
|
||||
(equests that are not output-format speci\214c, and utility functions)
|
||||
-2.544 F 1.342(to be used by the back-ends or by user)108 124.8 R 1.342
|
||||
(-supplied e)-.2 F 3.842(xtensions. Ne)-.15 F 1.342(xt, the \214le)-.15
|
||||
F F1(scm/)3.842 E/F2 10/Times-Italic@0 SF(format)1.97 E F1(/common.scm)
|
||||
.68 E F0(is)3.842 E .271(loaded, where)108 136.8 R F2(format)2.771 E F0
|
||||
.271(is the v)2.771 F .271(alue of the option)-.25 F F1<ad66>2.771 E F0
|
||||
.271(as gi)2.771 F -.15(ve)-.25 G 2.771(no).15 G 2.771(nt)-2.771 G .271
|
||||
(he command line \(or its def)-2.771 F .271(ault v)-.1 F 2.771
|
||||
(alue\). The)-.25 F 1.438
|
||||
(\214le implements the translation of the basic trof)108 148.8 R 3.938
|
||||
(fr)-.25 G 1.438
|
||||
(equests, escape sequences, and special characters, etc.)-3.938 F 1.022
|
||||
(The code dealing with macro in)108 160.8 R -.2(vo)-.4 G 1.022
|
||||
(cations is loaded from).2 F F1(scm/)3.522 E F2(format)1.97 E F1(/).68 E
|
||||
F2(pac)1.25 E(ka)-.2 E -.1(ge)-.1 G F1(.scm).28 E F0(where)3.523 E F2
|
||||
(pac)3.523 E(ka)-.2 E -.1(ge)-.1 G F0 1.023(is the)3.623 F -.25(va)108
|
||||
172.8 S(lue of the option).25 E F1<ad6d>2.5 E F0
|
||||
(with the letter `m' prepended.)2.5 E(Finally)108 189.6 Q 2.59(,t)-.65 G
|
||||
.09(he \214le)-2.59 F F1(.unr)2.59 E(off)-.18 E F0 .09
|
||||
(is loaded from the caller')2.59 F 2.589(sh)-.55 G .089
|
||||
(ome directory if present.)-2.589 F .089(Arbitrary Scheme code can be)
|
||||
5.089 F 1.635(placed in this initialization \214le.)108 201.6 R 1.635
|
||||
(It is typically used to assign v)6.635 F 1.635
|
||||
(alues to package-speci\214c k)-.25 F -.15(ey)-.1 G -.1(wo).15 G(rd/v).1
|
||||
E(alue)-.25 E .546(options according to the user')108 213.6 R 3.046(sp)
|
||||
-.55 G .545(references \(by means of the)-3.046 F F2(set-option!)3.045 E
|
||||
F0 .545(Scheme primiti)5.545 F .845 -.15(ve a)-.25 H 3.045(se).15 G .545
|
||||
(xplained in)-3.195 F(the Programmer')108 225.6 Q 2.5(sM)-.55 G
|
||||
(anual\).)-2.5 E 1.19(When the initial \214les ha)108 242.4 R 1.49 -.15
|
||||
(ve b)-.2 H 1.19(een loaded, an).15 F 3.69(yt)-.15 G(rof)-3.69 E 3.691
|
||||
(fi)-.25 G 1.191
|
||||
(nput \214les speci\214ed in the command line are read and)-3.691 F
|
||||
2.826(parsed. The)108 254.4 R .326(special \214le name `)2.826 F F1<ad>A
|
||||
F0 2.825('c)C .325(an be used to indicate standard input \(usually in c\
|
||||
ombination with ordi-)-2.825 F(nary \214le names\).)108 266.4 Q
|
||||
(If no \214le name is gi)5 E -.15(ve)-.25 G(n,).15 E F2(unr)2.5 E(of)
|
||||
-.45 E(f)-.18 E F0(reads from standard input.)2.5 E .069
|
||||
(In addition to trof)108 283.2 R 2.569(fi)-.25 G .069(nput \214les, \
|
||||
\214le containing Scheme code can be mentioned in the command line.)
|
||||
-2.569 F(Scheme)5.07 E .911(\214les \(which by con)108 295.2 R -.15(ve)
|
||||
-.4 G .911(ntion end in).15 F F1(.scm)3.411 E F0 3.411(\)a)C .91
|
||||
(re loaded into the Scheme interpreter and usually contain used-)-3.411
|
||||
F 1.386(de\214ned Scheme procedures to translate speci\214c macros or t\
|
||||
o replace e)108 307.2 R 1.386(xisting procedures, or other user)-.15 F
|
||||
(-)-.2 E .017(supplied e)108 319.2 R .017(xtensions of an)-.15 F 2.517
|
||||
(yk)-.15 G 2.516(ind. Scheme)-2.517 F .016
|
||||
(\214les named in the command line \(or loaded e)2.516 F .016
|
||||
(xplicitly from within)-.15 F 1.006(other \214les\) are resolv)108 331.2
|
||||
R 1.006(ed ag)-.15 F 1.006(ainst the directory)-.05 F F1(scm/misc/)3.506
|
||||
E F0 1.007(which may hold site-speci\214c e)3.506 F 1.007
|
||||
(xtensions or other)-.15 F(supplementary packages.)108 343.2 Q(trof)5 E
|
||||
2.5<668c>-.25 G(les and Scheme \214les can be mix)-2.5 E
|
||||
(ed freely in the command line.)-.15 E F1(OUTPUT FILES)87 360 Q F0
|
||||
(Whether)108 372 Q F2(unr)3.295 E(of)-.45 E(f)-.18 E F0 .794(sends its \
|
||||
output to standard output or produces one or more output \214les is not\
|
||||
hard-wired)3.295 F -.2(bu)108 384 S 3.27(td).2 G .77
|
||||
(etermined by the combination of output format and macro package.)-3.27
|
||||
F(Generally)5.771 E 3.271(,i)-.65 G 3.271(fn)-3.271 G 3.271(ot)-3.271 G
|
||||
(rof)-3.271 E 3.271(fi)-.25 G .771(nput \214les)-3.271 F .204
|
||||
(are speci\214ed, output is directed to standard output, b)108 396 R
|
||||
.203(ut this rule is not mandatory and may be o)-.2 F -.15(ve)-.15 G
|
||||
.203(rridden by).15 F 1.284(speci\214c back-ends.)108 408 R(The)6.284 E
|
||||
F1(document)3.784 E F0 1.284
|
||||
(option is usually honored, although other rules may be emplo)3.784 F
|
||||
1.285(yed to)-.1 F .77(determine the names of output \214les \(for e)108
|
||||
420 R .77(xample, the e)-.15 F .77(xtension that implements)-.15 F F1
|
||||
(\255man)3.27 E F0 .77(for a gi)3.27 F -.15(ve)-.25 G 3.27(no).15 G
|
||||
(utput)-3.27 E .154(format may deri)108 432 R .454 -.15(ve t)-.25 H .154
|
||||
(he name of the output \214le for a manual page from the input \214le n\
|
||||
ame; see).15 F F1(unr)2.655 E(off-html-)-.18 E(man)108 444 Q F0
|
||||
(\(1\)\).)A(If)108 460.8 Q F2(unr)3.425 E(of)-.45 E(f)-.18 E F0 .925
|
||||
(is interrupted or quits early)3.425 F 3.425(,a)-.65 G 1.225 -.15(ny o)
|
||||
-3.425 H .924(utput \214les produced so f).15 F .924
|
||||
(ar may be incomplete or may contain)-.1 F .165
|
||||
(wrong or inconsistent data, because se)108 472.8 R -.15(ve)-.25 G .165
|
||||
(ral passes may be required to complete an output \214le \(for e).15 F
|
||||
(xample,)-.15 E .266(to resolv)108 484.8 R 2.766(ec)-.15 G .265(ross re\
|
||||
ferences between a set of \214les\), or because an output \214le is not\
|
||||
necessarily produced as a)-2.766 F(whole, b)108 496.8 Q(ut)-.2 E F2
|
||||
(unr)2.5 E(of)-.45 E(f)-.18 E F0(may w)2.5 E(ork on se)-.1 E -.15(ve)
|
||||
-.25 G(ral \214les simultaneously).15 E(.)-.65 E/F3 9/Times-Bold@0 SF
|
||||
(EXAMPLES)72 513.6 Q F0 2.557 -.8(To t)108 525.6 T .957(ranslate a trof)
|
||||
.8 F 3.457(fd)-.25 G .957(ocument composed of tw)-3.457 F 3.458<6f8c>-.1
|
||||
G .958(les and written with the \231ms\232 macro package to HTML)-3.458
|
||||
F(2.0,)108 537.6 Q F2(unr)2.5 E(of)-.45 E(f)-.18 E F0
|
||||
(might be called lik)2.5 E 2.5(et)-.1 G(his:)-2.5 E F1(unr)144 555.6 Q
|
||||
(off \255fhtml \255ms doc.tr doc.tr)-.18 E F0 -1 -.8(Tw o)108 573.6 T
|
||||
.641(options speci\214c to the combination of)3.942 F F1(\255fhtml)3.141
|
||||
E F0(and)3.141 E F1(\255ms)3.141 E F0 .641
|
||||
(might be added to specify a pre\214x for output)3.141 F
|
||||
(\214les and to ha)108 585.6 Q .3 -.15(ve t)-.2 H(he resulting output s\
|
||||
plit into separate \214les after each section \(see).15 E F1(unr)2.5 E
|
||||
(off-html-ms)-.18 E F0(\(1\)\):)A F1(unr)144 603.6 Q
|
||||
(off \255fhtml \255ms document=out/ split=1 doc.tr doc.tr)-.18 E F0 .196
|
||||
(Additional features may be loaded from Scheme \214les speci\214ed in t\
|
||||
he command line, e.)108 621.6 R(g.)1.666 E F1 -.15(hy)2.696 G(per).15 E
|
||||
(.scm)-1 E F0(which)2.696 E 1.285(implements general Hyperte)108 633.6 R
|
||||
1.284(xt requests \(and gets loaded from)-.15 F F1(scm/misc/)3.784 E F0
|
||||
3.784(\)a)C 1.284(nd a user)-3.784 F 1.284(-supplied \214le in the)-.2 F
|
||||
(current directory pro)108 645.6 Q(viding translation rules for user)
|
||||
-.15 E(-de\214ned trof)-.2 E 2.5(fm)-.25 G(acros:)-2.5 E F1(unr)144
|
||||
663.6 Q(off \255fhtml \255ms document=out/ split=1 h)-.18 E(yper)-.15 E
|
||||
(.scm doc.scm\\)-1 E(doc.tr doc.tr)161.5 675.6 Q F3(TR)72 698.4 Q
|
||||
(OFF SUPPOR)-.27 E 2.25(TA)-.36 G(ND EXTENSIONS)-2.25 E F0(As)108 710.4
|
||||
Q F2(unr)3.476 E(of)-.45 E(f)-.18 E F0 .976(translates trof)3.476 F
|
||||
3.476(fi)-.25 G .976
|
||||
(nput into another language rather than typesetting the te)-3.476 F .977
|
||||
(xt in the usual w)-.15 F(ay)-.1 E 3.477(,i)-.65 G(ts)-3.477 E .46
|
||||
(processing model necessarily dif)108 722.4 R .46(fers from that of con)
|
||||
-.25 F -.15(ve)-.4 G .46(ntional trof).15 F 2.96(f. F)-.25 F .46
|
||||
(or a detailed description refer to the)-.15 F 203.72(1995/08/23 3)
|
||||
283.22 768 R EP
|
||||
%%Page: 4 4
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 392.7(f\(1\) unrof)-.25 F(f\(1\))
|
||||
-.25 E(Programmer')108 84 Q 2.5(sM)-.55 G(anual.)-2.5 E .396(In brief,)
|
||||
108 100.8 R/F1 10/Times-Italic@0 SF(unr)2.896 E(of)-.45 E(f)-.18 E F0
|
||||
.397(copies characters from input to output, optionally performing tar)
|
||||
2.896 F .397(get-language-speci\214c char)-.18 F(-)-.2 E .628
|
||||
(acter translations.)108 112.8 R -.15(Fo)5.628 G 3.127(re).15 G .627
|
||||
(ach request or macro in)-3.127 F -.2(vo)-.4 G .627
|
||||
(cation, string or number re).2 F .627(gister reference, special char)
|
||||
-.15 F(-)-.2 E(acter)108 124.8 Q 4.151(,e)-.4 G 1.651
|
||||
(scape sequence, sentence end, or)-4.151 F/F2 10/Times-Bold@0 SF(eqn)
|
||||
4.151 E F0 1.652(\(1\) inline equation encountered in the input stream,)
|
||||
B F1(unr)4.152 E(of)-.45 E(f)-.18 E F0 .29(checks whether an \231e)108
|
||||
136.8 R -.15(ve)-.25 G .29(nt v).15 F .289
|
||||
(alue\232 has been speci\214ed by the Scheme code \(user)-.25 F .289
|
||||
(-supplied or part of the back-)-.2 F 2.75(end\). An)108 148.8 R -2.15
|
||||
-.25(ev e)2.75 H .25(nt v).25 F .25(alue is either a plain string, whic\
|
||||
h is then treated as if it had been part of the input stream,)-.25 F
|
||||
.171(or a Scheme procedure, which is then in)108 160.8 R -.2(vo)-.4 G
|
||||
-.1(ke).2 G 2.671(da).1 G .17(nd must in turn return a string.)-2.671 F
|
||||
.17(The Scheme procedures are)5.17 F 1.779(passed ar)108 172.8 R 1.779
|
||||
(guments, e.)-.18 F 1.779(g. the macro or request ar)1.666 F 1.78
|
||||
(guments in case of a procedure attached to a macro or)-.18 F
|
||||
(request, or an escape sequence ar)108 184.8 Q
|
||||
(gument for functions such as `\\f)-.18 E 2.5('o).55 G 2.5(r`)-2.5 G
|
||||
(\\w'.)-2.5 E 1.513(If no e)108 201.6 R -.15(ve)-.25 G 1.513(nt v).15 F
|
||||
1.512
|
||||
(alue has been associated with a particular macro, string, or number re)
|
||||
-.25 F(gister)-.15 E(,)-.4 E F1(unr)4.012 E(of)-.45 E(f)-.18 E F0
|
||||
(checks)4.012 E .186
|
||||
(whether a de\214nition has been supplied in the normal w)108 213.6 R
|
||||
(ay)-.1 E 2.686(,i)-.65 G 1.666(.e)-2.686 G 2.686(.b)-1.666 G 2.686(ym)
|
||||
-2.686 G .186(eans of)-2.686 F F2(.de)2.687 E F0(,)A F2(.ds)2.687 E F0
|
||||
2.687(,o)C(r)-2.687 E F2(.nr)2.687 E F0 5.187(.I)C 2.687(nt)-5.187 G
|
||||
.187(his case, the)-2.687 F -.25(va)108 225.6 S 1.51
|
||||
(lue of the macro, string, or re).25 F 1.509
|
||||
(gister is interpolated as done by ordinary trof)-.15 F 4.009(f. If)-.25
|
||||
F 1.509(no de\214nition can be)4.009 F .198(found, a f)108 237.6 R .198
|
||||
(allback de\214nition is look)-.1 F .198
|
||||
(ed up as a last resort; and if e)-.1 F -.15(ve)-.25 G .199(rything f)
|
||||
.15 F .199(ails, a w)-.1 F .199(arning is printed and the)-.1 F -2.15
|
||||
-.25(ev e)108 249.6 T .419(nt is ignored.).25 F(Similarly)5.419 E 2.919
|
||||
(,e)-.65 G -.15(ve)-3.169 G .419(nt procedures are in).15 F -.2(vo)-.4 G
|
||||
-.1(ke).2 G 2.919(da).1 G 2.919(te)-2.919 G .419
|
||||
(nd of input line, when an input \214le is opened)-2.919 F .933(or clos\
|
||||
ed, at program start and termination, and for each option speci\214ed i\
|
||||
n the command line; b)108 261.6 R .934(ut these)-.2 F
|
||||
(procedures are called solely for their side-ef)108 273.6 Q(fects \(i.)
|
||||
-.25 E(e. the return v)1.666 E(alues are ignored\).)-.25 E 1.243
|
||||
(Most Scheme procedures just emit the tar)108 290.4 R 1.243
|
||||
(get language')-.18 F 3.743(sr)-.55 G 1.243(epresentation of the e)
|
||||
-3.743 F -.15(ve)-.25 G 1.242(nt with which the).15 F 3.742(ya)-.15 G
|
||||
(re)-3.742 E 2.901(associated. Other)108 302.4 R .401
|
||||
(procedures perform v)2.901 F .401(arious kinds of bookk)-.25 F .402
|
||||
(eeping; the procedure associated with the)-.1 F F2(.de)2.902 E F0 .287
|
||||
(request, for e)108 314.4 R .287(xample, puts the te)-.15 F .286
|
||||
(xt follo)-.15 F .286(wing aside for later e)-.25 F .286
|
||||
(xpansion, and the e)-.15 F -.15(ve)-.25 G .286
|
||||
(nt procedures attached to).15 F .199(the requests)108 326.4 R F2(.ds)
|
||||
2.699 E F0(and)2.699 E F2(.nr)2.699 E F0 .199
|
||||
(and to the escape sequences `\\*' and `\\n' implement trof)2.699 F 2.7
|
||||
(fs)-.25 G .2(trings and number re)-2.7 F(gis-)-.15 E 2.558(ters. This)
|
||||
108 338.4 R -.1(wa)2.558 G 1.358 -.65(y, e).1 H -.15(ve).4 G 2.558(nb)
|
||||
.15 G .057(asic trof)-2.558 F 2.557(ff)-.25 G .057(unctions need not be\
|
||||
hard-wired and can be altered or replaced freely with-)-2.557 F
|
||||
(out recompiling)108 350.4 Q F1(unr)2.5 E(of)-.45 E(f)-.18 E F0(.)1.96 E
|
||||
1.892(The rule that an e)108 367.2 R -.15(ve)-.25 G 1.892(nt v).15 F
|
||||
1.893(alue associated with a macro has precedence o)-.25 F -.15(ve)-.15
|
||||
G 4.393(rt).15 G 1.893(he actual macro de\214nition)-4.393 F 3.426
|
||||
(accommodates higher)108 379.2 R(-le)-.2 E -.15(ve)-.25 G 3.426
|
||||
(l, structure-oriented tar).15 F 3.426(get languages \(such as SGML\).)
|
||||
-.18 F 3.426(While the micro-)8.426 F .014
|
||||
(formatting contained in a typical)108 391.2 R F2(\255ms)2.514 E F0 .015
|
||||
(macro de\214nition, for e)2.515 F .015(xample, mak)-.15 F .015
|
||||
(es sense to an ordinary typesetting)-.1 F .2
|
||||
(program, it is usually impossible to infer the macro')108 403.2 R(s)
|
||||
-.55 E F1(structur)2.699 E(al)-.15 E F0 .199(function from it \(ne)2.699
|
||||
F 2.699(wp)-.25 G .199(aragraph, quotation,)-2.699 F 2.852(etc.\). On)
|
||||
108 415.2 R .352(the other hand, trof)2.852 F 2.852(fd)-.25 G .352
|
||||
(ocuments often de\214ne a fe)-2.852 F 2.852(wa)-.25 G .352
|
||||
(dditional, simple macros that just serv)-2.852 F 2.853(ea)-.15 G 2.853
|
||||
(sa)-2.853 G(n)-2.853 E(abbre)108 427.2 Q .055
|
||||
(viation for a sequence of prede\214ned macros; in this case e)-.25 F
|
||||
-.15(ve)-.25 G .055(nt procedures need not speci\214ed, as).15 F F1(unr)
|
||||
2.555 E(of)-.45 E(f)-.18 E F0(will then perform normal macro e)108 439.2
|
||||
Q(xpansion.)-.15 E F1(unr)108 456 Q(of)-.45 E(f)-.18 E F0 1.121
|
||||
(usually tak)3.621 F 1.122
|
||||
(es care to not rescan the characters returned by e)-.1 F -.15(ve)-.25 G
|
||||
1.122(nt procedures as if their results had).15 F 1.106
|
||||
(been normal input, because most e)108 468 R -.15(ve)-.25 G 1.105
|
||||
(nt procedures already return code in the tar).15 F 1.105
|
||||
(get language rather than)-.18 F(trof)108 480 Q 3.412(fi)-.25 G .912
|
||||
(nput that can be rescanned.)-3.412 F .912(This, ho)5.912 F(we)-.25 E
|
||||
-.15(ve)-.25 G 1.712 -.4(r, c).15 H .912(annot al).4 F -.1(wa)-.1 G .912
|
||||
(ys be a).1 F -.2(vo)-.2 G .913(ided; for e).2 F .913(xample, if a trof)
|
||||
-.15 F 3.413(fs)-.25 G(tring)-3.413 E .27(reference occurs at macro de\
|
||||
\214nition time \(because `\\*' is used rather than `\\\\*'\), the stri\
|
||||
ng v)108 492 R .269(alue ends up in)-.25 F .471
|
||||
(the macro body and will still be rescanned when the macro is in)108 504
|
||||
R -.2(vo)-.4 G -.1(ke).2 G 2.972(d. A).1 F(fe)2.972 E 2.972(wo)-.25 G
|
||||
.472(ther pitf)-2.972 F .472(alls caused by dif-)-.1 F
|
||||
(ferences in the processing models of trof)108 516 Q 2.5(fa)-.25 G(nd)
|
||||
-2.5 E F1(unr)2.5 E(of)-.45 E(f)-.18 E F0(are listed in the B)2.5 E
|
||||
(UGS section belo)-.1 E -.65(w.)-.25 G .383
|
||||
(The scaling performed for the usual trof)108 532.8 R 2.883(fs)-.25 G
|
||||
.383(cale indicators can be manipulated by a calling a Scheme primi-)
|
||||
-2.883 F(ti)108 544.8 Q .3 -.15(ve f)-.25 H
|
||||
(rom within the Scheme code implementing a particular back-end.).15 E F2
|
||||
(NEW TR)87 561.6 Q(OFF REQ)-.3 E(UESTS)-.1 E F0 2.205 -.8(To a)108 573.6
|
||||
T .605(id transparent output of code in the tar).8 F .605
|
||||
(get language and e)-.18 F -.25(va)-.25 G .606
|
||||
(luation of inline Scheme code,).25 F F1(unr)3.106 E(of)-.45 E(f)-.18 E
|
||||
F0(sup-)3.106 E(ports tw)108 585.6 Q 2.5(on)-.1 G .5 -.25(ew r)-2.5 H
|
||||
(equests and tw).25 E 2.5(oe)-.1 G(xtensions to the)-2.65 E F2(.ig)2.5 E
|
||||
F0(\(ignore input lines\) trof)2.5 E 2.5(fr)-.25 G(equest.)-2.5 E(If)108
|
||||
602.4 Q F2(.ig)2.587 E F0 .087(is called with the symbol)2.587 F F2(>>)
|
||||
2.587 E F0 .087(as its \214rst ar)2.587 F .087
|
||||
(gument, all input lines up to \(b)-.18 F .086
|
||||
(ut not including\) the terminat-)-.2 F(ing)108 614.4 Q F2(.>>)3.106 E
|
||||
F0 .606(are sent to the current output \214le.)3.106 F .606
|
||||
(Example: when translating to the Hyperte)5.606 F .607
|
||||
(xt Markup Language,)-.15 F
|
||||
(the construct could be used to emit literal HTML code lik)108 626.4 Q
|
||||
2.5(et)-.1 G(his:)-2.5 E F2(.ig >>)144 644.4 Q(<addr)144 656.4 Q(ess>)
|
||||
-.18 E(Bart Simpson<br>)144 668.4 Q(Spring\214eld)144 680.4 Q(</addr)144
|
||||
692.4 Q(ess>)-.18 E(.>>)144 704.4 Q F0 1.6 -.8(To p)108 727.2 T
|
||||
(roduce a single line of output, the ne).8 E 2.5(wr)-.25 G(equest)-2.5 E
|
||||
F2(.>>)2.5 E F0(can be used as in this HTML e)2.5 E(xample:)-.15 E
|
||||
203.72(1995/08/23 4)283.22 768 R EP
|
||||
%%Page: 5 5
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 392.7(f\(1\) unrof)-.25 F(f\(1\))
|
||||
-.25 E/F1 10/Times-Bold@0 SF(.>> "<code>r)144 84 Q(esult = i+1;</code>")
|
||||
-.18 E F0 1.659(If the)108 106.8 R F1(.ig)4.159 E F0 1.659
|
||||
(request is called with the ar)4.159 F(gument)-.18 E F1(##,)4.158 E F0
|
||||
-2.15 -.25(ev e)4.158 H 1.658(rything up to the terminating).25 F F1
|
||||
(.##)4.158 E F0 1.658(is passed to the)4.158 F .713
|
||||
(Scheme interpreter for e)108 118.8 R -.25(va)-.25 G 3.213
|
||||
(luation. This).25 F(allo)3.213 E .713
|
||||
(ws users to embed Scheme code in a trof)-.25 F 3.213(fd)-.25 G .714
|
||||
(ocument which is)-3.213 F -.15(exe)108 130.8 S 1.393
|
||||
(cuted when the document is processed by).15 F/F2 10/Times-Italic@0 SF
|
||||
(unr)3.893 E(of)-.45 E(f)-.18 E F0 6.393(.O)1.96 G 1.393
|
||||
(ne use of this construct is to pro)-6.393 F 1.393(vide a Scheme)-.15 F
|
||||
-2.15 -.25(ev e)108 142.8 T 1.858(nt procedure for a user).25 F 1.859(-\
|
||||
de\214ned macro by placing the corresponding Scheme de\214nition in the\
|
||||
same)-.2 F .423(source \214le right belo)108 154.8 R 2.923(wt)-.25 G
|
||||
.422(he trof)-2.923 F 2.922(fm)-.25 G .422(acro de\214nition.)-2.922 F
|
||||
(Similarly)5.422 E 2.922(,t)-.65 G .422(he request)-2.922 F F1(.##)2.922
|
||||
E F0 .422(can be used to e)2.922 F -.25(va)-.25 G .422(luate a short).25
|
||||
F(S-e)108 166.8 Q(xpression; all ar)-.15 E(guments to the request are c\
|
||||
oncatenated and then passed to the Scheme interpreter)-.18 E(.)-.55 E
|
||||
.763(Note that inline Scheme code is a potentially dangerous feature, a\
|
||||
s a document recei)108 183.6 R -.15(ve)-.25 G 3.263(db).15 G 3.264(ys)
|
||||
-3.263 G .764(omeone else)-3.264 F .456
|
||||
(may contain embedded code that does something une)108 195.6 R .456
|
||||
(xpected when the \214le is processed by)-.15 F F2(unr)2.956 E(of)-.45 E
|
||||
(f)-.18 E F0(\(b)2.956 E .455(ut it is)-.2 F
|
||||
(probably not more dangerous than the standard trof)108 207.6 Q(f)-.25 E
|
||||
F1(.pi)2.5 E F0(request or the)2.5 E F1(.sy)2.5 E F0(request of)2.5 E F2
|
||||
(ditr)2.5 E(of)-.45 E(f)-.18 E F0(\).)1.96 E F2(unr)108 224.4 Q(of)-.45
|
||||
E(f)-.18 E F0(de\214nes the follo)2.5 E(wing ne)-.25 E 2.5(wr)-.25 G
|
||||
(ead-only number re)-2.5 E(gisters:)-.15 E F1(.U)108 241.2 Q F0 .402
|
||||
(This re)26.28 F .403(gister al)-.15 F -.1(wa)-.1 G .403(ys e).1 F .403
|
||||
(xpand to 1.)-.15 F .403
|
||||
(It can be used by macros to determine whether the document is)5.403 F
|
||||
(being processed by)144 253.2 Q F2(unr)2.5 E(of)-.45 E(f)-.18 E F0(.)
|
||||
1.96 E F1(.C)108 270 Q F0 .28(Expands to 1 if trof)26.28 F 2.78(fc)-.25
|
||||
G .279(ompatibility mode has been enabled by using the option)-2.78 F F1
|
||||
<ad43>2.779 E F0 2.779(,t)C 2.779(o0o)-2.779 G(therwise.)-2.779 E
|
||||
(The follo)108 286.8 Q(wing ne)-.25 E 2.5(we)-.25 G
|
||||
(scape sequences are a)-2.5 E -.25(va)-.2 G
|
||||
(ilable in a macro body during macro e).25 E(xpansion:)-.15 E F1($0)108
|
||||
303.6 Q F0(The name of the current macro.)26 E F1($*)108 320.4 Q F0
|
||||
(The concatenation of all ar)26 E(guments, separated by spaces.)-.18 E
|
||||
F1($@)108 337.2 Q F0 1.586(The concatenation of all ar)21.7 F 1.586
|
||||
(guments, separated by spaces, and with each ar)-.18 F 1.587
|
||||
(gument enclosed by)-.18 F(double quotes.)144 349.2 Q .151
|
||||
(The names of strings, macros, number re)108 366 R .151
|
||||
(gisters, and fonts may be of an)-.15 F 2.65(yl)-.15 G 2.65(ength. As)
|
||||
-2.65 F(in)2.65 E F2(gr)2.65 E(of)-.45 E(f)-.18 E F0 2.65(,s)1.96 G .15
|
||||
(quare brack-)-2.65 F(ets can be used for names of arbitrary length:)108
|
||||
378 Q F1(\\f[f)144 396 Q 5(ont] \\*[string] \\n[numr)-.25 F 5(eg] ...)
|
||||
-.18 F F0 .278(There is no limit on the number of macro ar)108 418.8 R
|
||||
.278(guments, and the follo)-.18 F .279
|
||||
(wing syntax can be used to reference the)-.25 F
|
||||
(10th, 11th, etc. macro ar)108 430.8 Q(gument:)-.18 E F1 5
|
||||
(\\$\(12 \\$[12] \\$[123])144 448.8 R F0 1.373(Unless trof)108 471.6 R
|
||||
3.873(fc)-.25 G 1.372(ompatibility mode has been enabled, the ar)-3.873
|
||||
F 1.372(guments to the)-.18 F F2(gr)3.872 E(of)-.45 E(f)-.18 E F0 1.372
|
||||
(-speci\214c escape sequences)1.96 F(`\\A)108 483.6 Q .87
|
||||
(', `\\C', '\\L)-1.11 F .871(', '\\N', '\\R', '\\V', '\\Y', and '\\Z' a\
|
||||
re recognized and parsed, so that e)-.92 F -.15(ve)-.25 G .871
|
||||
(nt procedures can be).15 F
|
||||
(implemented correctly for these escape sequences.)108 495.6 Q/F3 9
|
||||
/Times-Bold@0 SF(SEE ALSO)72 512.4 Q F1(unr)108 524.4 Q(off-html)-.18 E
|
||||
F0(\(1\),)A F1(unr)2.5 E(off-html-man)-.18 E F0(\(1\),)A F1(unr)2.5 E
|
||||
(off-html-ms)-.18 E F0(\(1\);)A F1(tr)108 536.4 Q(off)-.18 E F0(\(1\),)A
|
||||
F1(gr)2.5 E(off)-.18 E F0(\(1\);)A F1(elk)2.5 E F0(\(1\).)A(Unrof)108
|
||||
553.2 Q 2.5(fP)-.25 G(rogrammer')-2.5 E 2.5(sM)-.55 G(anual.)-2.5 E
|
||||
(http://www)108 570 Q(.informatik.uni-bremen.de/~net/unrof)-.65 E(f)-.25
|
||||
E F3 -.45(AU)72 586.8 S(THOR).45 E F0(Oli)108 598.8 Q -.15(ve)-.25 G 2.5
|
||||
(rL).15 G(aumann, net@cs.tu-berlin.de)-2.5 E F3 -.09(BU)72 615.6 S(GS)
|
||||
.09 E F0 3.865(An)108 627.6 S 1.365(umber of lo)-3.865 F(w-le)-.25 E
|
||||
-.15(ve)-.25 G 3.865(lf).15 G 1.365(ormatting features of trof)-3.865 F
|
||||
3.865(f\()-.25 G 1.364
|
||||
(such as the absolute position indicator in numerical)-3.865 F -.15(ex)
|
||||
108 639.6 S 1.202(pressions\) are not yet supported by).15 F F2(unr)
|
||||
3.703 E(of)-.45 E(f)-.18 E F0 -.15(ve)3.703 G 1.203
|
||||
(rsion 1.0, which is not critical for higher).15 F(-le)-.2 E -.15(ve)
|
||||
-.25 G 1.203(l, structure-).15 F(oriented tar)108 651.6 Q
|
||||
(get languages such as the Hyperte)-.18 E(xt Markup Language.)-.15 E(Di)
|
||||
108 668.4 Q -.15(ve)-.25 G(rsions are not supported, although speci\214\
|
||||
c back-ends are free to add this functionality).15 E(.)-.65 E .358
|
||||
(Special characters are not treated right in certain conte)108 685.2 R
|
||||
.357(xts; in particular)-.15 F 2.857(,s)-.4 G .357
|
||||
(pecial characters may not be used)-2.857 F(in place of plain character\
|
||||
s where the characters act as some kind of delimiter as in)108 697.2 Q
|
||||
F1(.if \\\(bsf)144 715.2 Q(oo\\\(bsbar\\\(bs ...)-.25 E F0 203.72
|
||||
(1995/08/23 5)283.22 768 R EP
|
||||
%%Page: 6 6
|
||||
%%BeginPageSetup
|
||||
BP
|
||||
%%EndPageSetup
|
||||
/F0 10/Times-Roman@0 SF(unrof)72 48 Q 392.7(f\(1\) unrof)-.25 F(f\(1\))
|
||||
-.25 E(Spaces in an)108 84 Q/F1 10/Times-Bold@0 SF(.if)2.5 E F0
|
||||
(condition do not w)2.5 E(ork; e.)-.1 E(g. the follo)1.666 E(wing f)-.25
|
||||
E(ails:)-.1 E F1(.if ' ' ' ...)144 102 Q F0 .513
|
||||
(Conditional input is subject to string and number re)108 124.8 R .513
|
||||
(gister e)-.15 F .513(xpansion e)-.15 F -.15(ve)-.25 G 3.013(ni).15 G
|
||||
3.013(ft)-3.013 G .513(he corresponding if-condition)-3.013 F -.25(eva)
|
||||
108 136.8 S(luates to f).25 E(alse.)-.1 E(There are no number re)108
|
||||
153.6 Q(gister formats, i.)-.15 E(e. the request)1.666 E F1(.af)2.5 E F0
|
||||
(does not w)2.5 E(ork.)-.1 E(The set of punctuation marks that indicate\
|
||||
end of sentence should be con\214gurable.)108 170.4 Q 1.224
|
||||
(Empty input lines and leading space should trigger a special e)108
|
||||
187.2 R -.15(ve)-.25 G 1.223(nt, so that their break semantics can be)
|
||||
.15 F(implemented correctly)108 199.2 Q(.)-.65 E 2.5(Ac)108 216 S
|
||||
(omment in a line by itself currently does not generate a blank line.)
|
||||
-2.5 E 203.72(1995/08/23 6)283.22 768 R EP
|
||||
%%Trailer
|
||||
end
|
||||
%%EOF
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,218 @@
|
|||
.\" Copyright 1993 X Consortium
|
||||
.\"
|
||||
.\" Permission is hereby granted, free of charge, to any person obtaining
|
||||
.\" a copy of this software and associated documentation files (the
|
||||
.\" "Software"), to deal in the Software without restriction, including
|
||||
.\" without limitation the rights to use, copy, modify, merge, publish,
|
||||
.\" distribute, sublicense, and/or sell copies of the Software, and to
|
||||
.\" permit persons to whom the Software is furnished to do so, subject to
|
||||
.\" the following conditions:
|
||||
.\"
|
||||
.\" The above copyright notice and this permission notice shall be
|
||||
.\" included in all copies or substantial portions of the Software.
|
||||
.\"
|
||||
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
.\" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
.\" IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
.\" OTHER DEALINGS IN THE SOFTWARE.
|
||||
.\"
|
||||
.\" Except as contained in this notice, the name of the X Consortium shall
|
||||
.\" not be used in advertising or otherwise to promote the sale, use or
|
||||
.\" other dealings in this Software without prior written authorization
|
||||
.\" from the X Consortium.
|
||||
.ds tk X Toolkit
|
||||
.ds xT X Toolkit Intrinsics \- C Language Interface
|
||||
.ds xI Intrinsics
|
||||
.ds xW X Toolkit Athena Widgets \- C Language Interface
|
||||
.ds xL Xlib \- C Language X Interface
|
||||
.ds xC Inter-Client Communication Conventions Manual
|
||||
.ds Rn 3
|
||||
.ds Vn 2.2
|
||||
.hw XtSet-Arg XtMerge-Arg-Lists wid-get
|
||||
.na
|
||||
.de Ds
|
||||
.nf
|
||||
.\\$1D \\$2 \\$1
|
||||
.ft 1
|
||||
.ps \\n(PS
|
||||
.\".if \\n(VS>=40 .vs \\n(VSu
|
||||
.\".if \\n(VS<=39 .vs \\n(VSp
|
||||
..
|
||||
.de De
|
||||
.ce 0
|
||||
.if \\n(BD .DF
|
||||
.nr BD 0
|
||||
.in \\n(OIu
|
||||
.if \\n(TM .ls 2
|
||||
.sp \\n(DDu
|
||||
.fi
|
||||
..
|
||||
.de FD
|
||||
.LP
|
||||
.KS
|
||||
.TA .5i 3i
|
||||
.ta .5i 3i
|
||||
.nf
|
||||
..
|
||||
.de FN
|
||||
.fi
|
||||
.KE
|
||||
.LP
|
||||
..
|
||||
.de IN \" send an index entry to the stderr
|
||||
..
|
||||
.de C{
|
||||
.KS
|
||||
.nf
|
||||
.D
|
||||
.\"
|
||||
.\" choose appropriate monospace font
|
||||
.\" the imagen conditional, 480,
|
||||
.\" may be changed to L if LB is too
|
||||
.\" heavy for your eyes...
|
||||
.\"
|
||||
.ie "\\*(.T"480" .ft L
|
||||
.el .ie "\\*(.T"300" .ft L
|
||||
.el .ie "\\*(.T"202" .ft PO
|
||||
.el .ie "\\*(.T"aps" .ft CW
|
||||
.el .ft R
|
||||
.ps \\n(PS
|
||||
.ie \\n(VS>40 .vs \\n(VSu
|
||||
.el .vs \\n(VSp
|
||||
..
|
||||
.de C}
|
||||
.DE
|
||||
.R
|
||||
..
|
||||
.de Pn
|
||||
.ie t \\$1\fB\^\\$2\^\fR\\$3
|
||||
.el \\$1\fI\^\\$2\^\fP\\$3
|
||||
..
|
||||
.de ZN
|
||||
.ie t \fB\^\\$1\^\fR\\$2
|
||||
.el \fI\^\\$1\^\fP\\$2
|
||||
..
|
||||
.de NT
|
||||
.ne 7
|
||||
.ds NO Note
|
||||
.if \\n(.$>$1 .if !'\\$2'C' .ds NO \\$2
|
||||
.if \\n(.$ .if !'\\$1'C' .ds NO \\$1
|
||||
.ie n .sp
|
||||
.el .sp 10p
|
||||
.TB
|
||||
.ce
|
||||
\\*(NO
|
||||
.ie n .sp
|
||||
.el .sp 5p
|
||||
.if '\\$1'C' .ce 99
|
||||
.if '\\$2'C' .ce 99
|
||||
.in +5n
|
||||
.ll -5n
|
||||
.R
|
||||
..
|
||||
. \" Note End -- doug kraft 3/85
|
||||
.de NE
|
||||
.ce 0
|
||||
.in -5n
|
||||
.ll +5n
|
||||
.ie n .sp
|
||||
.el .sp 10p
|
||||
..
|
||||
.ny0
|
||||
.TH XtSetArg 3Xt "Release 6" "X Version 11" "XT FUNCTIONS"
|
||||
.SH NAME
|
||||
XtSetArg, XtMergeArgLists \- set and merge ArgLists
|
||||
.SH SYNTAX
|
||||
XtSetArg(\fIarg\fP, \fIname\fP, \fIvalue\fP)
|
||||
.br
|
||||
Arg \fIarg\fP;
|
||||
.br
|
||||
String \fIname\fP;
|
||||
.br
|
||||
XtArgVal \fIvalue\fP;
|
||||
.LP
|
||||
ArgList XtMergeArgLists(\fIargs1\fP, \fInum_args1\fP, \fIargs2\fP, \
|
||||
\fInum_args2\fP)
|
||||
.br
|
||||
ArgList \fIargs1\fP;
|
||||
.br
|
||||
Cardinal \fInum_args1\fP;
|
||||
.br
|
||||
ArgList \fIargs2\fP;
|
||||
.br
|
||||
Cardinal \fInum_args2\fP;
|
||||
.SH ARGUMENTS
|
||||
.IP \fIarg\fP 1i
|
||||
Specifies the name-value pair to set.
|
||||
.IP \fIargs1\fP 1i
|
||||
Specifies the first
|
||||
.ZN ArgList .
|
||||
.IP \fIargs2\fP 1i
|
||||
Specifies the second
|
||||
.ZN ArgList .
|
||||
.IP \fInum_args1\fP 1i
|
||||
Specifies the number of arguments in the first argument list.
|
||||
.IP \fInum_args2\fP 1i
|
||||
Specifies the number of arguments in the second argument list.
|
||||
.IP \fIname\fP 1i
|
||||
Specifies the name of the resource.
|
||||
.IP \fIvalue\fP 1i
|
||||
Specifies the value of the resource if it will fit in an
|
||||
.ZN XtArgVal
|
||||
or the address.
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.ZN XtSetArg
|
||||
function is usually used in a highly stylized manner to
|
||||
minimize the probability of making a mistake; for example:
|
||||
.LP
|
||||
.Ds
|
||||
.TA .5i 3i
|
||||
.ta .5i 3i
|
||||
Arg args[20];
|
||||
int n;
|
||||
|
||||
n = 0;
|
||||
XtSetArg(args[n], XtNheight, 100); n++;
|
||||
XtSetArg(args[n], XtNwidth, 200); n++;
|
||||
XtSetValues(widget, args, n);
|
||||
.De
|
||||
.LP
|
||||
Alternatively, an application can statically declare the argument list
|
||||
and use
|
||||
.ZN XtNumber :
|
||||
.LP
|
||||
.Ds
|
||||
.TA .5i 3i
|
||||
.ta .5i 3i
|
||||
static Args args[] = {
|
||||
{XtNheight, (XtArgVal) 100},
|
||||
{XtNwidth, (XtArgVal) 200},
|
||||
};
|
||||
XtSetValues(Widget, args, XtNumber(args));
|
||||
.De
|
||||
.LP
|
||||
Note that you should not use auto-increment or auto-decrement
|
||||
within the first argument to
|
||||
.ZN XtSetArg .
|
||||
.ZN XtSetArg
|
||||
can be implemented as a macro that dereferences the first argument twice.
|
||||
.LP
|
||||
The
|
||||
.ZN XtMergeArgLists
|
||||
function allocates enough storage to hold the combined
|
||||
.ZN ArgList
|
||||
structures and copies them into it.
|
||||
Note that it does not check for duplicate entries.
|
||||
When it is no longer needed,
|
||||
free the returned storage by using
|
||||
.ZN XtFree .
|
||||
.SH "SEE ALSO"
|
||||
XtOffset(3Xt)
|
||||
.br
|
||||
\fI\*(xT\fP
|
||||
.br
|
||||
\fI\*(xL\fP
|
||||
|
|
@ -0,0 +1,126 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:25:31. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<!-- Copyright 1993 X Consortium -->
|
||||
<!-- Permission is hereby granted, free of charge, to any person obtaining -->
|
||||
<!-- a copy of this software and associated documentation files (the -->
|
||||
<!-- "Software"), to deal in the Software without restriction, including -->
|
||||
<!-- without limitation the rights to use, copy, modify, merge, publish, -->
|
||||
<!-- distribute, sublicense, and/or sell copies of the Software, and to -->
|
||||
<!-- permit persons to whom the Software is furnished to do so, subject to -->
|
||||
<!-- the following conditions: -->
|
||||
<!-- The above copyright notice and this permission notice shall be -->
|
||||
<!-- included in all copies or substantial portions of the Software. -->
|
||||
<!-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -->
|
||||
<!-- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -->
|
||||
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -->
|
||||
<!-- IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR -->
|
||||
<!-- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -->
|
||||
<!-- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -->
|
||||
<!-- OTHER DEALINGS IN THE SOFTWARE. -->
|
||||
<!-- Except as contained in this notice, the name of the X Consortium shall -->
|
||||
<!-- not be used in advertising or otherwise to promote the sale, use or -->
|
||||
<!-- other dealings in this Software without prior written authorization -->
|
||||
<!-- from the X Consortium. -->
|
||||
<!-- send an index entry to the stderr -->
|
||||
<!-- Note End -- doug kraft 3/85 -->
|
||||
<title>Manual page for XtSetArg(3Xt)</title>
|
||||
</head>
|
||||
<body>
|
||||
<h2>
|
||||
XtSetArg, XtMergeArgLists - set and merge ArgLists
|
||||
<hr></h2>
|
||||
<h2>SYNTAX</h2>
|
||||
XtSetArg(<i>arg</i>, <i>name</i>, <i>value</i>)
|
||||
<br>
|
||||
Arg <i>arg</i>;
|
||||
<br>
|
||||
String <i>name</i>;
|
||||
<br>
|
||||
XtArgVal <i>value</i>;
|
||||
<p>
|
||||
ArgList XtMergeArgLists(<i>args1</i>, <i>num_args1</i>, <i>args2</i>, <i>num_args2</i>)
|
||||
<br>
|
||||
ArgList <i>args1</i>;
|
||||
<br>
|
||||
Cardinal <i>num_args1</i>;
|
||||
<br>
|
||||
ArgList <i>args2</i>;
|
||||
<br>
|
||||
Cardinal <i>num_args2</i>;
|
||||
<h2>ARGUMENTS</h2>
|
||||
<dl>
|
||||
<dt><i>arg</i><dd>
|
||||
Specifies the name-value pair to set.<tt> </tt>
|
||||
<dt><i>args1</i><dd>
|
||||
Specifies the first
|
||||
<b>ArgList</b>.<tt> </tt>
|
||||
<dt><i>args2</i><dd>
|
||||
Specifies the second
|
||||
<b>ArgList</b>.<tt> </tt>
|
||||
<dt><i>num_args1</i><dd>
|
||||
Specifies the number of arguments in the first argument list.<tt> </tt>
|
||||
<dt><i>num_args2</i><dd>
|
||||
Specifies the number of arguments in the second argument list.<tt> </tt>
|
||||
<dt><i>name</i><dd>
|
||||
Specifies the name of the resource.<tt> </tt>
|
||||
<dt><i>value</i><dd>
|
||||
Specifies the value of the resource if it will fit in an
|
||||
<b>XtArgVal</b>
|
||||
or the address.<tt> </tt>
|
||||
</dl>
|
||||
<h2>DESCRIPTION</h2>
|
||||
The
|
||||
<b>XtSetArg</b>
|
||||
function is usually used in a highly stylized manner to
|
||||
minimize the probability of making a mistake; for example:
|
||||
<p>
|
||||
<pre>
|
||||
Arg args[20];
|
||||
int n;
|
||||
|
||||
n = 0;
|
||||
XtSetArg(args[n], XtNheight, 100); n++;
|
||||
XtSetArg(args[n], XtNwidth, 200); n++;
|
||||
XtSetValues(widget, args, n);
|
||||
</pre>
|
||||
<p>
|
||||
Alternatively, an application can statically declare the argument list
|
||||
and use
|
||||
<b>XtNumber</b>:
|
||||
<p>
|
||||
<pre>
|
||||
static Args args[] = {
|
||||
{XtNheight, (XtArgVal) 100},
|
||||
{XtNwidth, (XtArgVal) 200},
|
||||
};
|
||||
XtSetValues(Widget, args, XtNumber(args));
|
||||
</pre>
|
||||
<p>
|
||||
Note that you should not use auto-increment or auto-decrement
|
||||
within the first argument to
|
||||
<b>XtSetArg</b>.<tt> </tt>
|
||||
<b>XtSetArg</b>
|
||||
can be implemented as a macro that dereferences the first argument twice.<tt> </tt>
|
||||
<p>
|
||||
The
|
||||
<b>XtMergeArgLists</b>
|
||||
function allocates enough storage to hold the combined
|
||||
<b>ArgList</b>
|
||||
structures and copies them into it.<tt> </tt>
|
||||
Note that it does not check for duplicate entries.<tt> </tt>
|
||||
When it is no longer needed,
|
||||
free the returned storage by using
|
||||
<b>XtFree</b>.<tt> </tt>
|
||||
<h2>SEE ALSO</h2>
|
||||
XtOffset(3Xt)
|
||||
<br>
|
||||
<i>X Toolkit Intrinsics - C Language Interface</i>
|
||||
<br>
|
||||
<i>Xlib - C Language X Interface</i>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996.
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,278 @@
|
|||
'\" t
|
||||
.\" @(#)pathconf.2v 1.20 90/02/15 SMI; new for 4.1, POSIX
|
||||
.TH PATHCONF 2V "21 January 1990"
|
||||
.SH NAME
|
||||
pathconf, fpathconf \- query file system related limits and options
|
||||
.SH SYNOPSIS
|
||||
.nf
|
||||
.ft B
|
||||
#include <unistd.h>
|
||||
.ft R
|
||||
.fi
|
||||
.LP
|
||||
.nf
|
||||
.ft B
|
||||
long pathconf(path, name)
|
||||
char *path;
|
||||
int name;
|
||||
.ft R
|
||||
.fi
|
||||
.LP
|
||||
.nf
|
||||
.ft B
|
||||
long fpathconf(fd, name)
|
||||
int fd, name;
|
||||
.ft R
|
||||
.fi
|
||||
.SH DESCRIPTION
|
||||
.IX "pathconf get" "" "\fLpathconf()\fP \(em query file system related limits and options" ""
|
||||
.IX "fpathconf get" "" "\fLfpathconf()\fP \(em query file system related limits and options" ""
|
||||
.IX path "query file system related limits and options"
|
||||
.IX configure "query file system related limits and options"
|
||||
.LP
|
||||
.B pathconf(\|)
|
||||
and
|
||||
.B fpathconf(\|)
|
||||
provide a
|
||||
method for the application to determine the current value of a
|
||||
configurable limit or option that is associated with a file
|
||||
or directory,
|
||||
.LP
|
||||
For
|
||||
.BR pathconf(\|) ,
|
||||
.I path
|
||||
points to the pathname of a file or
|
||||
directory.
|
||||
For
|
||||
.BR fpathconf(\|) ,
|
||||
.I fd
|
||||
is an open file descriptor.
|
||||
.LP
|
||||
The convention used throughout sections 2 and 3
|
||||
is that
|
||||
.SM {LIMIT}
|
||||
means that
|
||||
.SM LIMIT
|
||||
is something that
|
||||
can change from file to file (due to multiple file systems on the same
|
||||
machine). The actual value for
|
||||
.SM LIMIT is typically
|
||||
not defined in any header file since
|
||||
it is not invariant. Instead, pathconf must be called to retrieve the value.
|
||||
.B pathconf(\|)
|
||||
understands a list of flags that are named similarly to the value
|
||||
being queried.
|
||||
.LP
|
||||
The following table lists the name and meaning of each conceptual limit.
|
||||
.LP
|
||||
.RS
|
||||
.TS
|
||||
lI lI
|
||||
l l .
|
||||
Limit Meaning Notes
|
||||
_
|
||||
\s-1{LINK_MAX}\s0 Max links to an object. 1
|
||||
\s-1{MAX_CANON}\s0 Max tty input line size. 2
|
||||
\s-1{MAX_INPUT}\s0 Max packet a tty can accept at once. 2
|
||||
\s-1{NAME_MAX}\s0 Max filename length. 3,4
|
||||
\s-1{PATH_MAX}\s0 Max pathname length. 4,5
|
||||
\s-1{PIPE_BUF}\s0 Pipe buffer size. 6
|
||||
\s-1{_POSIX_CHOWN_RESTRICTED}\s0 T{
|
||||
If true only root can chown() files,
|
||||
otherwise anyone may give away
|
||||
files.
|
||||
T} 7
|
||||
\s-1{_POSIX_NO_TRUNC}\s0 T{
|
||||
If false filenames > {NAME_MAX} are
|
||||
truncated, otherwise an error.
|
||||
T} 3,4
|
||||
\s-1{_POSIX_VDISABLE}\s0 A char to use to disable tty special chars. 2
|
||||
.TE
|
||||
.RE
|
||||
.LP
|
||||
The following table lists the name of each limit, the flag
|
||||
passed to
|
||||
.B pathconf(\|)
|
||||
to retrieve the value of each variable, and some notes about usage.
|
||||
.LP
|
||||
.RS
|
||||
.TS
|
||||
lI lI lI
|
||||
l lB l .
|
||||
Limit Pathconf Flag Notes
|
||||
_
|
||||
\s-1{LINK_MAX}\s0 \s-1_PC_LINK_MAX\s0 1
|
||||
\s-1{MAX_CANON}\s0 \s-1_PC_MAX_CANON\s0 2
|
||||
\s-1{MAX_INPUT}\s0 \s-1_PC_MAX_INPUT\s0 2
|
||||
\s-1{NAME_MAX}\s0 \s-1_PC_NAME_MAX\s0 3,4
|
||||
\s-1{PATH_MAX}\s0 \s-1_PC_PATH_MAX\s0 4,5
|
||||
\s-1{PIPE_BUF}\s0 \s-1_PC_PIPE_BUF\s0 6
|
||||
\s-1{_POSIX_CHOWN_RESTRICTED}\s0 \s-1_PC_CHOWN_RESTRICTED\s0 7,8
|
||||
\s-1{_POSIX_NO_TRUNC}\s0 \s-1_PC_NO_TRUNC\s0 3,4,8
|
||||
\s-1{_POSIX_VDISABLE}\s0 \s-1_PC_VDISABLE\s0 2,8
|
||||
.TE
|
||||
.RE
|
||||
.LP
|
||||
.LP
|
||||
The following notes apply to the entries in the preceding table.
|
||||
.LP
|
||||
.TP
|
||||
1
|
||||
If
|
||||
.I path
|
||||
or
|
||||
.I fd
|
||||
refers to a directory, the value returned applies to the
|
||||
directory itself.
|
||||
.TP
|
||||
2
|
||||
The behavior is undefined if
|
||||
.I path
|
||||
or
|
||||
.I fd
|
||||
does not refer to a terminal file.
|
||||
.TP
|
||||
3
|
||||
If
|
||||
.I path
|
||||
or
|
||||
.I fd
|
||||
refers to a directory, the value returned applies to the
|
||||
file names within the directory.
|
||||
.TP
|
||||
4
|
||||
The behavior is undefined if
|
||||
.I path
|
||||
or
|
||||
.I fd
|
||||
does not refer to a directory.
|
||||
.TP
|
||||
5
|
||||
If
|
||||
.I path
|
||||
or
|
||||
.I fd
|
||||
refers to a directory, the value returned is the maximum
|
||||
length of a relative pathname when the specified directory
|
||||
is the working directory.
|
||||
.TP
|
||||
6
|
||||
If
|
||||
.I path
|
||||
refers to a
|
||||
.SM FIFO\s0,
|
||||
or
|
||||
.I fd
|
||||
refers to a pipe of
|
||||
.SM FIFO\s-1,
|
||||
the value returned applies to the referenced object itself.
|
||||
If
|
||||
.I path
|
||||
or
|
||||
.I fd
|
||||
refers to a directory, the value returned applies to any
|
||||
.SM FIFO\s-1s
|
||||
that exist or can be created within the directory.
|
||||
If
|
||||
.I path
|
||||
or
|
||||
.I fd
|
||||
refer to any other type of file, the behavior is undefined.
|
||||
.TP
|
||||
7
|
||||
If
|
||||
.I path
|
||||
or
|
||||
.I fd
|
||||
refer to a directory, the value returned applies
|
||||
to any files, other than directories, that
|
||||
exist or can be created within the directory.
|
||||
.TP
|
||||
8
|
||||
The option in question is a boolean; the return value is 0 or 1.
|
||||
.SH RETURN VALUES
|
||||
.LP
|
||||
On success,
|
||||
.B pathconf(\|)
|
||||
and
|
||||
.B fpathconf(\|)
|
||||
return
|
||||
the current
|
||||
variable value for the file or directory.
|
||||
On failure,
|
||||
they return
|
||||
\-1
|
||||
and set
|
||||
.B errno
|
||||
to indicate the error.
|
||||
.LP
|
||||
If the variable corresponding to
|
||||
.I name
|
||||
has no limit for the path or file
|
||||
descriptor,
|
||||
.B pathconf(\|)
|
||||
and
|
||||
.B fpathconf(\|)
|
||||
return \-1 without changing
|
||||
.BR errno .
|
||||
.SH ERRORS
|
||||
.LP
|
||||
.B pathconf(\|)
|
||||
and
|
||||
.B fpathconf(\|)
|
||||
may set
|
||||
.B errno
|
||||
to:
|
||||
.TP 20
|
||||
.SM EINVAL
|
||||
The value of name is invalid.
|
||||
.LP
|
||||
For each of the following conditions,
|
||||
if the condition is detected,
|
||||
.B pathconf(\|)
|
||||
fails and sets
|
||||
.B errno
|
||||
to:
|
||||
.TP 20
|
||||
.SM EACCES
|
||||
Search permission is denied for a component of the path prefix.
|
||||
.TP
|
||||
.SM EINVAL
|
||||
The implementation does not support an association of the
|
||||
variable name with the specified file.
|
||||
.TP
|
||||
.SM ENAMETOOLONG
|
||||
The length of the path argument exceeds
|
||||
.SM {PATH_MAX}\s0.
|
||||
.IP
|
||||
A pathname component is longer than
|
||||
.SM {NAME_MAX}
|
||||
while
|
||||
.SM {POSIX_NO_TRUNC}
|
||||
is in effect.
|
||||
.TP
|
||||
.SM ENOENT
|
||||
The named file does not exist.
|
||||
.IP
|
||||
.I path
|
||||
points to an empty string.
|
||||
.TP
|
||||
.SM ENOTDIR
|
||||
A component of the path prefix is not a directory.
|
||||
.LP
|
||||
For each of the following conditions,
|
||||
if the condition is detected,
|
||||
.B fpathconf(\|)
|
||||
fails and sets
|
||||
.B errno
|
||||
to:
|
||||
.TP 20
|
||||
.SM EBADF
|
||||
The
|
||||
.I fd
|
||||
argument is not a valid file descriptor.
|
||||
.TP
|
||||
.SM EINVAL
|
||||
The implementation does not support an association of the
|
||||
variable name with the specified file.
|
||||
|
||||
|
|
@ -0,0 +1,279 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:25:27. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<!-- t -->
|
||||
<!-- @(#)pathconf.2v 1.20 90/02/15 SMI; new for 4.1, POSIX -->
|
||||
<title>Manual page for PATHCONF(2V)</title>
|
||||
</head>
|
||||
<body>
|
||||
<h2>
|
||||
pathconf, fpathconf - query file system related limits and options
|
||||
<hr></h2>
|
||||
<h2>SYNOPSIS</h2>
|
||||
<pre>
|
||||
<b>#include <unistd.h>
|
||||
</b></pre>
|
||||
<p>
|
||||
<pre>
|
||||
<b>long pathconf(path, name)
|
||||
char *path;
|
||||
int name;
|
||||
</b></pre>
|
||||
<p>
|
||||
<pre>
|
||||
<b>long fpathconf(fd, name)
|
||||
int fd, name;
|
||||
</b></pre>
|
||||
<h2>DESCRIPTION</h2>
|
||||
<p>
|
||||
<b>pathconf()
|
||||
</b>and
|
||||
<b>fpathconf()
|
||||
</b>provide a
|
||||
method for the application to determine the current value of a
|
||||
configurable limit or option that is associated with a file
|
||||
or directory,
|
||||
<p>
|
||||
For
|
||||
<b>pathconf()</b>,
|
||||
<i>path
|
||||
</i>points to the pathname of a file or
|
||||
directory.<tt> </tt>
|
||||
For
|
||||
<b>fpathconf()</b>,
|
||||
<i>fd
|
||||
</i>is an open file descriptor.<tt> </tt>
|
||||
<p>
|
||||
The convention used throughout sections 2 and 3
|
||||
is that
|
||||
{LIMIT}
|
||||
means that
|
||||
LIMIT
|
||||
is something that
|
||||
can change from file to file (due to multiple file systems on the same
|
||||
machine). The actual value for
|
||||
LIMIT is typically
|
||||
not defined in any header file since
|
||||
it is not invariant. Instead, pathconf must be called to retrieve the value.<tt> </tt>
|
||||
<b>pathconf()
|
||||
</b>understands a list of flags that are named similarly to the value
|
||||
being queried.
|
||||
<p>
|
||||
The following table lists the name and meaning of each conceptual limit.<tt> </tt>
|
||||
<p>
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
Limit Meaning
|
||||
------------------------------------------------------------------------
|
||||
{LINK_MAX} Max links to an object.
|
||||
{MAX_CANON} Max tty input line size.
|
||||
{MAX_INPUT} Max packet a tty can accept at once.
|
||||
{NAME_MAX} Max filename length.
|
||||
{PATH_MAX} Max pathname length.
|
||||
{PIPE_BUF} Pipe buffer size.
|
||||
{_POSIX_CHOWN_RESTRICTED} If true only root can chown() files, other
|
||||
wise anyone may give away files.
|
||||
{_POSIX_NO_TRUNC} If false filenames > {NAME_MAX} are trun
|
||||
cated, otherwise an error.
|
||||
{_POSIX_VDISABLE} A char to use to disable tty special chars.
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
The following table lists the name of each limit, the flag
|
||||
passed to
|
||||
<b>pathconf()
|
||||
</b>to retrieve the value of each variable, and some notes about usage.<tt> </tt>
|
||||
<p>
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
Limit Pathconf Flag Notes
|
||||
---------------------------------------------------------
|
||||
{LINK_MAX} _PC_LINK_MAX 1
|
||||
{MAX_CANON} _PC_MAX_CANON 2
|
||||
{MAX_INPUT} _PC_MAX_INPUT 2
|
||||
{NAME_MAX} _PC_NAME_MAX 3,4
|
||||
{PATH_MAX} _PC_PATH_MAX 4,5
|
||||
{PIPE_BUF} _PC_PIPE_BUF 6
|
||||
{_POSIX_CHOWN_RESTRICTED} _PC_CHOWN_RESTRICTED 7,8
|
||||
{_POSIX_NO_TRUNC} _PC_NO_TRUNC 3,4,8
|
||||
{_POSIX_VDISABLE} _PC_VDISABLE 2,8
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
<p>
|
||||
The following notes apply to the entries in the preceding table.<tt> </tt>
|
||||
<p>
|
||||
<dl>
|
||||
<dt>1
|
||||
<dd>
|
||||
If
|
||||
<i>path
|
||||
</i>or
|
||||
<i>fd
|
||||
</i>refers to a directory, the value returned applies to the
|
||||
directory itself.<tt> </tt>
|
||||
<dt>2
|
||||
<dd>
|
||||
The behavior is undefined if
|
||||
<i>path
|
||||
</i>or
|
||||
<i>fd
|
||||
</i>does not refer to a terminal file.<tt> </tt>
|
||||
<dt>3
|
||||
<dd>
|
||||
If
|
||||
<i>path
|
||||
</i>or
|
||||
<i>fd
|
||||
</i>refers to a directory, the value returned applies to the
|
||||
file names within the directory.<tt> </tt>
|
||||
<dt>4
|
||||
<dd>
|
||||
The behavior is undefined if
|
||||
<i>path
|
||||
</i>or
|
||||
<i>fd
|
||||
</i>does not refer to a directory.<tt> </tt>
|
||||
<dt>5
|
||||
<dd>
|
||||
If
|
||||
<i>path
|
||||
</i>or
|
||||
<i>fd
|
||||
</i>refers to a directory, the value returned is the maximum
|
||||
length of a relative pathname when the specified directory
|
||||
is the working directory.<tt> </tt>
|
||||
<dt>6
|
||||
<dd>
|
||||
If
|
||||
<i>path
|
||||
</i>refers to a
|
||||
FIFO,
|
||||
or
|
||||
<i>fd
|
||||
</i>refers to a pipe of
|
||||
FIFO,
|
||||
the value returned applies to the referenced object itself.<tt> </tt>
|
||||
If
|
||||
<i>path
|
||||
</i>or
|
||||
<i>fd
|
||||
</i>refers to a directory, the value returned applies to any
|
||||
FIFOs
|
||||
that exist or can be created within the directory.<tt> </tt>
|
||||
If
|
||||
<i>path
|
||||
</i>or
|
||||
<i>fd
|
||||
</i>refer to any other type of file, the behavior is undefined.<tt> </tt>
|
||||
<dt>7
|
||||
<dd>
|
||||
If
|
||||
<i>path
|
||||
</i>or
|
||||
<i>fd
|
||||
</i>refer to a directory, the value returned applies
|
||||
to any files, other than directories, that
|
||||
exist or can be created within the directory.<tt> </tt>
|
||||
<dt>8
|
||||
<dd>
|
||||
The option in question is a boolean; the return value is 0 or 1.<tt> </tt>
|
||||
</dl>
|
||||
<h2>RETURN VALUES</h2>
|
||||
<p>
|
||||
On success,
|
||||
<b>pathconf()
|
||||
</b>and
|
||||
<b>fpathconf()
|
||||
</b>return
|
||||
the current
|
||||
variable value for the file or directory.<tt> </tt>
|
||||
On failure,
|
||||
they return
|
||||
-1
|
||||
and set
|
||||
<b>errno
|
||||
</b>to indicate the error.<tt> </tt>
|
||||
<p>
|
||||
If the variable corresponding to
|
||||
<i>name
|
||||
</i>has no limit for the path or file
|
||||
descriptor,
|
||||
<b>pathconf()
|
||||
</b>and
|
||||
<b>fpathconf()
|
||||
</b>return -1 without changing
|
||||
<b>errno</b>.<tt> </tt>
|
||||
<h2>ERRORS</h2>
|
||||
<p>
|
||||
<b>pathconf()
|
||||
</b>and
|
||||
<b>fpathconf()
|
||||
</b>may set
|
||||
<b>errno
|
||||
</b>to:
|
||||
<dl>
|
||||
<dt>EINVAL
|
||||
<dd>
|
||||
The value of name is invalid.<tt> </tt>
|
||||
</dl>
|
||||
<p>
|
||||
For each of the following conditions,
|
||||
if the condition is detected,
|
||||
<b>pathconf()
|
||||
</b>fails and sets
|
||||
<b>errno
|
||||
</b>to:
|
||||
<dl>
|
||||
<dt>EACCES
|
||||
<dd>
|
||||
Search permission is denied for a component of the path prefix.<tt> </tt>
|
||||
<dt>EINVAL
|
||||
<dd>
|
||||
The implementation does not support an association of the
|
||||
variable name with the specified file.<tt> </tt>
|
||||
<dt>ENAMETOOLONG
|
||||
<dd>
|
||||
The length of the path argument exceeds
|
||||
{PATH_MAX}.<tt> </tt>
|
||||
<dt><dd><p>
|
||||
A pathname component is longer than
|
||||
{NAME_MAX}
|
||||
while
|
||||
{POSIX_NO_TRUNC}
|
||||
is in effect.<tt> </tt>
|
||||
<dt>ENOENT
|
||||
<dd>
|
||||
The named file does not exist.<tt> </tt>
|
||||
<dt><dd><p>
|
||||
<i>path
|
||||
</i>points to an empty string.<tt> </tt>
|
||||
<dt>ENOTDIR
|
||||
<dd>
|
||||
A component of the path prefix is not a directory.<tt> </tt>
|
||||
</dl>
|
||||
<p>
|
||||
For each of the following conditions,
|
||||
if the condition is detected,
|
||||
<b>fpathconf()
|
||||
</b>fails and sets
|
||||
<b>errno
|
||||
</b>to:
|
||||
<dl>
|
||||
<dt>EBADF
|
||||
<dd>
|
||||
The
|
||||
<i>fd
|
||||
</i>argument is not a valid file descriptor.<tt> </tt>
|
||||
<dt>EINVAL
|
||||
<dd>
|
||||
The implementation does not support an association of the
|
||||
variable name with the specified file.<tt> </tt>
|
||||
|
||||
</dl>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996.
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:25:18. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>X11R6 Release Notes, section 1.</title>
|
||||
</head><body>
|
||||
<h2><a name="section1">1.</a> <tt> </tt>Easy Build Instructions
|
||||
<a name="toc1"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
This quick summary is no substitute for reading the full build
|
||||
instructions later in this document.<tt> </tt>
|
||||
<p>
|
||||
Edit <b>xc/config/cf/site.def</b> for local preferences.<tt> </tt>
|
||||
If you want to build with <i>gcc</i>
|
||||
uncomment the <b>HasGcc2</b> line.<tt> </tt>
|
||||
If you want to install somewhere other than <b>/usr/X11R6</b>,
|
||||
change
|
||||
<b>ProjectRoot</b>. (Do <i>not</i> use <b>DESTDIR</b>.)
|
||||
<p>
|
||||
If any fixes have been released by the X Consortium,
|
||||
stop here and follow the instructions at the top of each patch,
|
||||
but don't do any of the <i>make</i>
|
||||
commands suggested in the patches. Then continue here.<tt> </tt>
|
||||
<p>
|
||||
Check the appropriate <b>xc/config/cf/</b><i>vendor</i><b>.cf</b> file to
|
||||
make sure that <b>OSMajorVersion</b> and <b>OSMinorVersion</b> are
|
||||
set correctly for your system (change them if necessary).<tt> </tt>
|
||||
<p>
|
||||
See if there is a <b>BootstrapCFlags</b> mentioned in the comments
|
||||
in the <i>vendor</i><b>.cf</b> file.<tt> </tt>
|
||||
If there isn't one, <i>cd</i> to the <b>xc</b> directory and type:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
make World >& world.log
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
If there is a <b>BootstrapCFlags</b>, take its value
|
||||
and type:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
make World BOOTSTRAPCFLAGS="<i>value</i>" >& world.log
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
Do not call the output file ``make.log''.<tt> </tt>
|
||||
If the build is successful, you can install most of it with:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
make install >& install.log
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
You can install manual pages with:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
make install.man >& man.log
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
While the system is building (or if things fail), read the rest of
|
||||
these Release Notes.<tt> </tt>
|
||||
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,279 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:25:18. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>X11R6 Release Notes, section 2.</title>
|
||||
</head><body>
|
||||
<h2><a name="section2">2.</a> <tt> </tt>What Is Release 6
|
||||
<a name="toc2"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
This is the 6th release of X Window System software from the X Consortium.<tt> </tt>
|
||||
X is a network-transparent window system which runs
|
||||
on a wide range of computing and graphics machines.<tt> </tt>
|
||||
<p>
|
||||
The X Consortium is an independent, not-for-profit corporation,
|
||||
the successor to the MIT X Consortium, which was part of the MIT
|
||||
Laboratory for Computer Science.<tt> </tt>
|
||||
See the <i>XConsortium</i> manual page for details.<tt> </tt>
|
||||
|
||||
<h2><a name="section3">2.1.</a> <tt> </tt>Overview of the X Consortium Release
|
||||
<a name="toc3"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
There are two parts to Release 6: X Consortium software and
|
||||
documentation, and user-contributed software and documentation.<tt> </tt>
|
||||
The X Consortium part contains the following:
|
||||
<dl>
|
||||
<dt><b>X Consortium Standards</b><dd>
|
||||
The X Consortium produces standards: documents which define
|
||||
network protocols, programming interfaces, and other aspects of
|
||||
the X environment. See the <i>XStandards</i> manual page for a
|
||||
list of standards.<tt> </tt>
|
||||
<dt><b>Sample Implementations</b><dd>
|
||||
For most of our standards, we provide <i>sample</i> implementations
|
||||
to demonstrate proof of concept. These are not <i>reference</i>
|
||||
implementations; the written specifications define the standards.<tt> </tt>
|
||||
<dt><b>Fonts</b><dd>
|
||||
<br>
|
||||
A collection of bitmap and outline fonts are included in the
|
||||
distribution, contributed by various individuals and companies.<tt> </tt>
|
||||
<dt><b>Utility Libraries</b><dd>
|
||||
A number of libraries, such as the <i>Athena Widget Set</i>, are
|
||||
included. These are not standards, but are used in building
|
||||
X Consortium applications and may be useful in building other applications.<tt> </tt>
|
||||
<dt><b>Sample Programs</b><dd>
|
||||
We also provide a number of application programs.<tt> </tt>
|
||||
A few of these programs, such as <i>xdm</i>,
|
||||
should be considered essential in almost all environments.<tt> </tt>
|
||||
The rest of the applications carry no special status; they
|
||||
are simply programs that have been developed and/or maintained
|
||||
by X Consortium staff.<tt> </tt>
|
||||
In some cases, you will find better substitutes for these
|
||||
programs in the user-contributed part.<tt> </tt>
|
||||
</dl>
|
||||
<p>
|
||||
The user-contributed part contains whatever people contribute.<tt> </tt>
|
||||
You'll find a variety of software and documentation here:
|
||||
programs, demos, games, libraries,
|
||||
X server extensions, etc.<tt> </tt>
|
||||
|
||||
<h2><a name="section4">2.2.</a> <tt> </tt>Supported Systems
|
||||
<a name="toc4"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
We built and tested this release on the following systems:
|
||||
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
A/UX 3.0.1
|
||||
AIX 3.2.5
|
||||
BSD/386 1.0
|
||||
HP-UX 9.1
|
||||
IRIX 5.2
|
||||
Mach 2.5 Vers 2.00.1
|
||||
Microsoft Windows NT 3.1
|
||||
NCR Unix System V Release 4/MP-RAS
|
||||
NEWS-OS 6.0
|
||||
OSF/1 1.3
|
||||
OSF/1 1.0
|
||||
SunOS 4.1.3
|
||||
SunOS 5.3
|
||||
UNICOS 8.0
|
||||
UNIX System V/386 Release 4.2 Version 1
|
||||
Unix System V/860 Release 4.0 Version 3
|
||||
Ultrix-32 4.3
|
||||
</pre>
|
||||
</dl>
|
||||
|
||||
On NT, most of the release builds with the Microsoft SDK. Missing are
|
||||
<i>Fresco</i>, <i>twm</i>, <i>xterm</i>, <i>xdm</i>, <i>xconsole</i>,
|
||||
<i>xinit</i>, <i>xhost</i>, <i>xsm</i>, and the X server. Xt, Xaw, and
|
||||
Xmu libraries are not built as DLLs. Imake works, albeit with some
|
||||
restrictions.<tt> </tt>
|
||||
|
||||
<h2><a name="section5">2.3.</a> <tt> </tt>The XC Tree
|
||||
<a name="toc5"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
The first thing you may notice is that you can't find anything.<tt> </tt>
|
||||
The source tree has undergone a major reorganization since R5.<tt> </tt>
|
||||
The top-level directory has been renamed from <b>mit/</b> to <b>xc/</b>.<tt> </tt>
|
||||
|
||||
The general layout under <b>xc/</b> is now as
|
||||
follows:
|
||||
|
||||
<pre>
|
||||
config/ config files, <i>imake</i>, <i>makedepend</i>, build utilities
|
||||
doc/ all documentation other than per-program manual pages
|
||||
fonts/ BDF, Speedo, Type1 fonts
|
||||
include/ include files shared by multiple directories
|
||||
lib/ all libraries
|
||||
nls/ localization files
|
||||
programs/ all programs, including the X server and <i>rgb</i>
|
||||
test/ X Test Suite and other test suites
|
||||
util/ <i>patch</i>, <i>compress</i>, other utilities
|
||||
workInProgress/ snapshots of work in progress
|
||||
bug-report bug reporting template
|
||||
registry X Registry
|
||||
</pre>
|
||||
|
||||
<h2><a name="section6">2.3.1.</a> <tt> </tt>config/
|
||||
<a name="toc6"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
The <b>xc/config</b> directory now has subdirectories:
|
||||
<pre>
|
||||
config/cf/ all the config files: Imake.tmpl, Project.tmpl, etc.
|
||||
config/imake/ the <i>imake</i> program
|
||||
config/makedepend/ the <i>makedepend</i> program
|
||||
config/util/ other configuration utility programs and scripts
|
||||
</pre>
|
||||
|
||||
<h2><a name="section7">2.3.2.</a> <tt> </tt>lib/
|
||||
<a name="toc7"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
Xlib sources are in <b>xc/lib/X11</b>; we've renamed directories to match the
|
||||
lib<i>name</i>.a names.<tt> </tt>
|
||||
|
||||
<h2><a name="section8">2.3.3.</a> <tt> </tt>doc/
|
||||
<a name="toc8"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
<pre>
|
||||
doc/specs/ X Consortium standards and other specifications
|
||||
doc/man/ manual pages for libraries and general manual pages
|
||||
doc/util/ macro packages and utilities for formatting
|
||||
doc/hardcopy/ PostScript versions of the documentation
|
||||
</pre>
|
||||
<p>
|
||||
The <b>xc/doc/hardcopy</b> directory contains compressed, pre-formatted
|
||||
PostScript versions of documentation elsewhere in the
|
||||
<b>doc</b> tree and the program manual pages, which are in each
|
||||
program's source directory. These files can be uncompressed with the
|
||||
<i>compress</i> program, which is included in <b>xc/util/compress</b>.<tt> </tt>
|
||||
|
||||
<h2><a name="section9">2.3.4.</a> <tt> </tt>extensions
|
||||
<a name="toc9"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
There is no longer a top-level extensions directory. Extension
|
||||
libraries are now under <b>xc/lib/</b>, server extension code is
|
||||
under <b>xc/programs/Xserver/Xext/</b>, and extension header files are
|
||||
under <b>xc/include/extensions/</b>.<tt> </tt>
|
||||
|
||||
<h2><a name="section10">2.4.</a> <tt> </tt>Extensions supported
|
||||
<a name="toc10"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
The core distribution includes the following extensions:
|
||||
BIG-REQUESTS,
|
||||
LBX,
|
||||
MIT-SHM,
|
||||
MIT-SUNDRY-NONSTANDARD,
|
||||
Multi-Buffering,
|
||||
RECORD,
|
||||
SHAPE,
|
||||
SYNC,
|
||||
X3D-PEX,
|
||||
XC-MISC,
|
||||
XIE,
|
||||
XInputExtension,
|
||||
XKEYBOARD,
|
||||
XTEST, and
|
||||
XTestExtension1.<tt> </tt>
|
||||
|
||||
<h2><a name="section11">2.5.</a> <tt> </tt>Implementation Parameters
|
||||
<a name="toc11"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
Some of the specifications define some behavior as
|
||||
implementation-dependent.<tt> </tt>
|
||||
Implementations of X Consortium standards need to document how those
|
||||
parameters are implemented; this section does so.<tt> </tt>
|
||||
<dl>
|
||||
<dt>XFILESEARCHPATH default<dd>
|
||||
This default can be set at build time by setting the <i>imake</i> variables
|
||||
XFileSearchPathDefault, XAppLoadDir, XFileSearchPathBase, and
|
||||
ProjectRoot in <b>site.def</b>. See <b>xc/config/cf/Project.tmpl</b>
|
||||
for how they are used.<tt> </tt>
|
||||
<dt><dd><p>
|
||||
By default, XFILESEARCHPATH has these components:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
/usr/X11R6/lib/X11/%L/%T/%N%C%S
|
||||
/usr/X11R6/lib/X11/%l/%T/%N%C%S
|
||||
/usr/X11R6/lib/X11/%T/%N%C%S
|
||||
/usr/X11R6/lib/X11/%L/%T/%N%S
|
||||
/usr/X11R6/lib/X11/%l/%T/%N%S
|
||||
/usr/X11R6/lib/X11/%T/%N%S
|
||||
</pre>
|
||||
</dl>
|
||||
<dt>XUSERFILESEARCHPATH default<dd>
|
||||
If the environment variable XAPPLRESDIR is defined, the default value
|
||||
of XUSERFILESEARCHPATH has the following components:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
$XAPPLRESDIR/%L/%N%C
|
||||
$XAPPLRESDIR/%l/%N%C
|
||||
$XAPPLRESDIR/%N%C
|
||||
$HOME/%N%C
|
||||
$XAPPLRESDIR/%L/%N
|
||||
$XAPPLRESDIR/%l/%N
|
||||
$XAPPLRESDIR/%N
|
||||
$HOME/%N
|
||||
</pre>
|
||||
</dl>
|
||||
Otherwise it has these components:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
$HOME/%L/%N%C
|
||||
$HOME/%l/%N%C
|
||||
$HOME/%N%C
|
||||
$HOME/%L/%N
|
||||
$HOME/%l/%N
|
||||
$HOME/%N
|
||||
</pre>
|
||||
</dl>
|
||||
<dt>XKEYSYMDB default<dd>
|
||||
Defaults to <b>/usr/X11R6/lib/X11/XKeysymDB</b>, assuming
|
||||
<b>ProjectRoot</b> is set to <b>/usr/X11R6</b>.<tt> </tt>
|
||||
<dt>XCMSDB default<dd>
|
||||
Defaults to <b>/usr/X11R6/lib/X11/Xcms.txt</b>, assuming
|
||||
<b>ProjectRoot</b> is set to <b>/usr/X11R6</b>.<tt> </tt>
|
||||
<dt>XLOCALEDIR default<dd>
|
||||
Defaults to the directory <b>/usr/X11R6/lib/X11/locale</b>, assuming
|
||||
<b>ProjectRoot</b> is set to <b>/usr/X11R6</b>.<tt> </tt>
|
||||
<dt>XErrorDB location<dd>
|
||||
The Xlib error database file is <b>/usr/X11R6/lib/X11/XErrorDB</b>, assuming
|
||||
<b>ProjectRoot</b> is set to <b>/usr/X11R6</b>.<tt> </tt>
|
||||
<dt>XtErrorDB location<dd>
|
||||
The Xt error database file is <b>/usr/X11R6/lib/X11/XtErrorDB</b>, assuming
|
||||
<b>ProjectRoot</b> is set to <b>/usr/X11R6</b>.<tt> </tt>
|
||||
<dt>Supported Locales<dd>
|
||||
For a list of locales supported, see the files <b>locale.dir</b> and
|
||||
<b>locale.alias</b> in the <b>xc/nls/X11/locale/</b> directory.<tt> </tt>
|
||||
<dt>Input Methods supported<dd>
|
||||
The core distribution does not include any input methods servers.<tt> </tt>
|
||||
However, in
|
||||
Latin-1 locales, a default method that supports European compose
|
||||
processing is enabled. See <b>xc/nls/X11/locale/Compose/iso8859-1</b>
|
||||
for the supported compositions.<tt> </tt>
|
||||
There are input method servers in contrib.<tt> </tt>
|
||||
|
||||
</dl>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,648 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:25:19. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>X11R6 Release Notes, section 3.</title>
|
||||
</head><body>
|
||||
<h2><a name="section12">3.</a> <tt> </tt>Building X
|
||||
<a name="toc12"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
This section gives detailed instructions for building Release 6:
|
||||
getting it off the
|
||||
distribution medium, configuring,
|
||||
compiling, installing, running, and updating.<tt> </tt>
|
||||
<p>
|
||||
More recent information about newly-discovered problems may be found
|
||||
in the <i>Frequently Asked Questions</i> posting appearing monthly on
|
||||
the comp.windows.x newsgroup and xpert mailing list. It is also
|
||||
available via anonymous FTP
|
||||
on <b>ftp.x.org</b> in the file <b>contrib/faqs/FAQ.Z</b>,
|
||||
or on your local X mirror site.<tt> </tt>
|
||||
|
||||
<h2><a name="section13">3.1.</a> <tt> </tt>Unpacking the Distribution
|
||||
<a name="toc13"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
The distribution normally comes as multiple tar files, either on
|
||||
tape or across a network, or as a CD-ROM.<tt> </tt>
|
||||
<p>
|
||||
If you are unpacking tar files, you will need about 150 megabytes to
|
||||
hold the <b>xc/</b> part.<tt> </tt>
|
||||
|
||||
<h2><a name="section14">3.1.1.</a> <tt> </tt>Unpacking a Compressed FTP Distribution
|
||||
<a name="toc14"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
If you have obtained compressed tar files over the network,
|
||||
create a directory to hold the sources and <i>cd</i> into it:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
mkdir <i>sourcedir</i>
|
||||
cd <i>sourcedir</i>
|
||||
</pre>
|
||||
</dl>
|
||||
Then for each tar file <b>xc-*.tar.Z</b>, execute this:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
zcat <i>ftp-dir</i>/xc-<i>N</i>.tar.Z | tar xpf -
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
For each tar file <b>contrib-*.tar.Z</b>, execute this:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
zcat <i>ftp-dir</i>/contrib-<i>N</i>.tar.Z | tar xpf -
|
||||
</pre>
|
||||
</dl>
|
||||
|
||||
<h2><a name="section15">3.1.2.</a> <tt> </tt>Unpacking a gzipped FTP Distribution
|
||||
<a name="toc15"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
If you have obtained gzipped tar files over the network,
|
||||
create a directory to hold the sources and <i>cd</i> into it:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
mkdir <i>sourcedir</i>
|
||||
cd <i>sourcedir</i>
|
||||
</pre>
|
||||
</dl>
|
||||
Then for each tar file <b>xc-*.tar.gz</b>, execute this:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
gunzip -c <i>ftp-dir</i>/xc-<i>N</i>.tar.gz | tar xpf -
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
For each tar file <b>contrib-*.tar.gz</b>, execute this:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
gunzip -c <i>ftp-dir</i>/contrib-<i>N</i>.tar.gz | tar xpf -
|
||||
</pre>
|
||||
</dl>
|
||||
|
||||
<h2><a name="section16">3.1.3.</a> <tt> </tt>Unpacking a Split Compressed FTP Distribution
|
||||
<a name="toc16"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
If you have obtained compressed and split tar files over the network,
|
||||
create a directory to hold the sources:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
mkdir <i>sourcedir</i>
|
||||
</pre>
|
||||
</dl>
|
||||
Then for each directory <b>xc-*</b>:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
cd <i>ftp-dir</i>/xc-<i>N</i>
|
||||
cat xc-<i>N</i>.?? | uncompress | (cd <i>sourcedir</i>; tar xpf -)
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
For each directory <b>contrib-*</b>, execute this:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
cd <i>ftp-dir</i>/contrib-<i>N</i>
|
||||
cat contrib-<i>N</i>.?? | uncompress | (cd <i>sourcedir</i>; tar xpf -)
|
||||
</pre>
|
||||
</dl>
|
||||
|
||||
<h2><a name="section17">3.1.4.</a> <tt> </tt>Unpacking the Tape Distribution
|
||||
<a name="toc17"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
If you have obtained a tape,
|
||||
create a directory to hold the sources and untar everything into that
|
||||
directory:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
mkdir <i>sourcedir</i>
|
||||
cd <i>sourcedir</i>
|
||||
tar xpf <i>tape-device</i>
|
||||
</pre>
|
||||
</dl>
|
||||
|
||||
<h2><a name="section18">3.1.5.</a> <tt> </tt>Using the CD-ROM
|
||||
<a name="toc18"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
If you have obtained a CD-ROM, you don't have to do anything to unpack
|
||||
it. However, you will have to create a symbolic link tree to build X.<tt> </tt>
|
||||
See the next section.<tt> </tt>
|
||||
|
||||
<h2><a name="section19">3.2.</a> <tt> </tt>Apply Patches
|
||||
<a name="toc19"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
If there are fixes released, apply them now.<tt> </tt>
|
||||
Follow the instructions at the top
|
||||
of each patch, but don't do any make commands. Then
|
||||
continue here.<tt> </tt>
|
||||
|
||||
<h2><a name="section20">3.3.</a> <tt> </tt>Symbolic Link Trees
|
||||
<a name="toc20"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
If you expect to build the distribution on more than one machine using
|
||||
a shared source tree,
|
||||
or you are building from CD-ROM,
|
||||
or you just want to keep the source tree pure,
|
||||
you may want to use the program <b>xc/config/util/lndir.c</b> to create
|
||||
a symbolic link tree on each build machine.<tt> </tt>
|
||||
The links may use an additional 10 megabytes, but it is cheaper
|
||||
than having multiple copies of the source tree.<tt> </tt>
|
||||
<p>
|
||||
It may be tricky to compile <i>lndir</i> before the distribution is
|
||||
built. If you have a copy from Release 5, use that.<tt> </tt>
|
||||
<b>Makefile.ini</b> can be used for building <i>lndir</i> the first time.<tt> </tt>
|
||||
You may have to specify <b>OSFLAGS=-D</b><i>something</i> to
|
||||
get it to compile.<tt> </tt>
|
||||
What you would pass as <b>BOOTSTRAPCFLAGS</b> might work.<tt> </tt>
|
||||
The command line looks something like this:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
make -f Makefile.ini OSFLAGS=-D<i>flag</i>
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
To use a symbolic link tree, create a directory for the build, <i>cd</i>
|
||||
to it, and type this:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
lndir <i>sourcedir</i>
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
where <i>sourcedir</i> is the pathname of the
|
||||
directory where you stored the sources. All of the build instructions
|
||||
given below should then be done in the build directory on each machine,
|
||||
rather than in the source directory.<tt> </tt>
|
||||
<p>
|
||||
<b>xc/config/util/mkshadow/</b> contains <i>mkshadow</i>, an alternative
|
||||
program to <i>lndir</i>.<tt> </tt>
|
||||
|
||||
<h2><a name="section21">3.4.</a> <tt> </tt>Configuration Parameters
|
||||
<a name="toc21"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
Build information for each source directory is in files called
|
||||
<b>Imakefile</b>. An <b>Imakefile</b>, along with local configuration
|
||||
information in <b>xc/config/cf/</b>, is used by the program <i>imake</i>
|
||||
to generate a <b>Makefile</b>.<tt> </tt>
|
||||
<p>
|
||||
Most of the configuration work prior to building the release is to
|
||||
set parameters so that <i>imake</i> will generate correct files.<tt> </tt>
|
||||
Most of those parameters are set in <b>xc/config/cf/site.def</b>.<tt> </tt>
|
||||
You will also need to check the appropriate
|
||||
<b>xc/config/cf/</b><i>vendor</i><b>.cf</b> file to make sure that
|
||||
OSMajorVersion, OSMinorVersion, and OsTeenyVersion are set correctly
|
||||
for your system (change them if necessary).<tt> </tt>
|
||||
<p>
|
||||
The <b>site.def</b> file has two parts, one protected with
|
||||
``#ifdef BeforeVendorCF'' and one with ``#ifdef AfterVendorCF''.<tt> </tt>
|
||||
The file is actually processed twice, once before the <b>.cf</b> file
|
||||
and once after. About the only thing you need to set in the ``before''
|
||||
section is <b>HasGcc2</b>; just about everything else can be set in the
|
||||
``after'' section.<tt> </tt>
|
||||
<p>
|
||||
The sample <b>site.def</b> also has commented out support to include another
|
||||
file, <b>host.def</b>. This scheme may be useful if you want to set most
|
||||
parameters site-wide, but some parameters vary from machine to machine.<tt> </tt>
|
||||
If you use a symbolic link tree, you can share <b>site.def</b> across
|
||||
all machines, and give each machine its own copy of <b>host.def</b>.<tt> </tt>
|
||||
<p>
|
||||
The config parameters are listed in <b>xc/config/cf/README</b>, but
|
||||
here are some of the more common parameters that you may wish to set in
|
||||
<b>site.def</b>.<tt> </tt>
|
||||
<dl>
|
||||
<dt><b>ProjectRoot</b><dd>
|
||||
The destination where X will be installed. This variable needs to be
|
||||
set before you build, as some programs that read files at run-time
|
||||
have the installation directory compiled in to them. Assuming you
|
||||
have set the variable to some value /<i>path</i>, files will be
|
||||
installed into /<i>path</i>/bin, /<i>path</i>/include/X11,
|
||||
/<i>path</i>/lib, and /<i>path</i>/man.<tt> </tt>
|
||||
<dt><b>HasGcc</b><dd>
|
||||
Set to <b>YES</b> to build with <i>gcc</i> version 1.<tt> </tt>
|
||||
<dt><b>HasGcc2</b><dd>
|
||||
Set to <b>YES</b> to build with <i>gcc</i> version 2.<tt> </tt>
|
||||
Both this option and <b>HasGcc</b> look for a compiler named <i>gcc</i>,
|
||||
but <b>HasGcc2</b> will cause the build to use more features of
|
||||
<i>gcc</i> 2, such as the ability to compile shared libraries.<tt> </tt>
|
||||
<dt><b>HasCplusplus</b><dd>
|
||||
Declares the system has a C++ compiler. C++ is necessary to build
|
||||
<i>Fresco</i>. On some systems, you may also have to set additional
|
||||
variables to say what C++ compiler you have.<tt> </tt>
|
||||
<dt><b>DefaultUsrBin</b><dd>
|
||||
This is a directory where programs will be found even if PATH
|
||||
is not set in the environment.<tt> </tt>
|
||||
It is independent of ProjectRoot and defaults to <b>/usr/bin</b>.<tt> </tt>
|
||||
It is used, for example, when connecting from a remote system via <i>rsh</i>.<tt> </tt>
|
||||
The <i>rstart</i> program installs its server in this directory.<tt> </tt>
|
||||
<dt><b>InstallServerSetUID</b><dd>
|
||||
Some systems require the X server to run as root to access the devices
|
||||
it needs. If you are on such a system and will not be using
|
||||
<i>xdm</i>, you can set this variable to <b>YES</b> to install the X
|
||||
server setuid to root. Note that the X server has not been analyzed
|
||||
by the X Consortium for security in such an installation;
|
||||
talk to your system manager before setting this variable.<tt> </tt>
|
||||
<dt><b>MotifBC</b><dd>
|
||||
Causes Xlib and Xt to work around some bugs in older versions of Motif.<tt> </tt>
|
||||
Set to <b>YES</b> only if you will be linking with Motif version 1.1.1,
|
||||
1.1.2, or 1.1.3.<tt> </tt>
|
||||
<dt><b>GetValuesBC</b><dd>
|
||||
Setting this variable to <b>YES</b> allows illegal XtGetValues requests
|
||||
with NULL ArgVal to usually succeed, as R5 did. Some applications
|
||||
erroneously rely on this behavior. Support for this will be removed
|
||||
in a future release.<tt> </tt>
|
||||
</dl>
|
||||
<p>
|
||||
The following <i>vendor</i><b>.cf</b> files are in the release but have
|
||||
not been tested recently and hence probably need changes to work:
|
||||
<b>DGUX.cf</b>, <b>Mips.cf</b>, <b>apollo.cf</b>, <b>bsd.cf</b>,
|
||||
<b>convex.cf</b>, <b>moto.cf</b>, <b>pegasus.cf</b>, <b>x386.cf</b>.<tt> </tt>
|
||||
<b>Amoeba.cf</b> is known to require additional patches.<tt> </tt>
|
||||
<p>
|
||||
The file <b>xc/lib/Xdmcp/Wraphelp.c</b>, for XDM-AUTHORIZATION-1, is not
|
||||
included in this release. The file is available within the US;
|
||||
for details get
|
||||
<b>/pub/R6/xdm-auth/README</b> from ftp.x.org via anonymous FTP.<tt> </tt>
|
||||
|
||||
<h2><a name="section22">3.5.</a> <tt> </tt>System Notes
|
||||
<a name="toc22"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
This section contains hints on building X with specific compilers and
|
||||
operating systems.<tt> </tt>
|
||||
|
||||
<h2><a name="section23">3.5.1.</a> <tt> </tt>gcc
|
||||
<a name="toc23"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
<i>gcc</i> version 2 is in regular use at the X Consortium.<tt> </tt>
|
||||
You should have no
|
||||
problems using it to build. Set the variable <b>HasGcc2</b>.<tt> </tt>
|
||||
X will not compile on some systems with <i>gcc</i> version 2.5, 2.5.1, or
|
||||
2.5.2 because of an incorrect declaration of memmove() in a gcc
|
||||
include file.<tt> </tt>
|
||||
|
||||
<h2><a name="section24">3.5.2.</a> <tt> </tt>SparcWorks 2.0
|
||||
<a name="toc24"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
If you have a non-threaded
|
||||
program and want to debug it with the old SparcWorks 2.0 dbx,
|
||||
you will need to use the thread stubs library in
|
||||
<b>xc/util/misc/thr_stubs.c</b>.<tt> </tt>
|
||||
Compile it as follows:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
cc -c thr_stubs.c
|
||||
ar cq libthr_stubs.a thr_stubs.o
|
||||
ranlib libthr_stubs.a
|
||||
</pre>
|
||||
</dl>
|
||||
Install libthr_stubs.a in the same directory with your X libraries
|
||||
(e.g., <b>/usr/X11R6/lib/libthr_stubs.a</b>).<tt> </tt>
|
||||
Add the following line to <b>site.def</b>:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
#define ExtraLibraries -lsocket -lnsl $(CDEBUGFLAGS:-g=-lthr_stubs)
|
||||
</pre>
|
||||
</dl>
|
||||
This example uses a <i>make</i> macro substitution; not all <i>make</i>
|
||||
implementations support this feature.<tt> </tt>
|
||||
|
||||
<h2><a name="section25">3.5.3.</a> <tt> </tt>CenterLine C under Solaris 2.3
|
||||
<a name="toc25"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
If you are using the CenterLine C compiler to compile the distribution
|
||||
under Solaris 2.3,
|
||||
place the following line in your <b>site.def</b>:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
#define HasCenterLineC YES
|
||||
</pre>
|
||||
</dl>
|
||||
If clcc is not in your default search path, add this line to <b>site.def</b>:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
#define CcCmd /path/to/your/clcc
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
If you are using CodeCenter 4.0.4 or earlier, the following files
|
||||
trigger bugs in the <i>clcc</i> optimizer:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
xc/programs/Xserver/cfb16/cfbgetsp.c
|
||||
xc/programs/Xserver/cfb16/cfbfillsp.c
|
||||
xc/programs/Xserver/cfb/cfbgetsp.c
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
Thus to build the server, you will have to compile these files by hand
|
||||
with the <b>-g</b> flag:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
% cd xc/programs/Xserver/cfb16
|
||||
% make CDEBUGFLAGS="-g" cfbgetsp.o cfbfillsp.o
|
||||
% cd ../cfb
|
||||
% make CDEBUGFLAGS="-g" cfbgetsp.o
|
||||
</pre>
|
||||
</dl>
|
||||
This optimizer bug appears to be fixed in CodeCenter 4.0.6.<tt> </tt>
|
||||
|
||||
<h2><a name="section26">3.5.4.</a> <tt> </tt>Microsoft Windows NT
|
||||
<a name="toc26"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
The set of operating systems that the client-side code will run on has been
|
||||
expanded to include Microsoft Windows NT. All of the base libraries are
|
||||
supported, including multi-threading in Xlib and Xt, but some of the more
|
||||
complicated applications, specifically <i>xterm</i> and <i>xdm</i>,
|
||||
are not supported.<tt> </tt>
|
||||
<p>
|
||||
There are also some other rough edges in the
|
||||
implementation, such as lack of support for non-socket file descriptors as Xt
|
||||
alternate inputs and not using the registry for configurable parameters like
|
||||
the system filenames and search paths.<tt> </tt>
|
||||
|
||||
<h2><a name="section27">3.6.</a> <tt> </tt>The Build
|
||||
<a name="toc27"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
On NT, type
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
nmake World.Win32 > world.log
|
||||
</pre>
|
||||
</dl>
|
||||
On other systems, find the BootstrapCFlags line, if any, in the
|
||||
<i>vendor</i><b>.cf</b> file. If there isn't one, type
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
make World >& world.log
|
||||
</pre>
|
||||
</dl>
|
||||
otherwise type
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
make World BOOTSTRAPCFLAGS="value" >& world.log
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
You can call the output file something other than ``world.log'', but
|
||||
do not call it ``make.log'' because files with this name are
|
||||
automatically deleted during the ``cleaning'' stage of the build.<tt> </tt>
|
||||
<p>
|
||||
Because the build can take several hours to complete, you will probably
|
||||
want to run it in the background and keep a watch on the output.<tt> </tt>
|
||||
For example:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
make World >& world.log &
|
||||
tail -f world.log
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
If something goes wrong, the easiest thing is to just start over
|
||||
(typing ``make World'' again) once you have corrected the problem.<tt> </tt>
|
||||
It is possible that a failure will corrupt the top-level <b>Makefile</b>.<tt> </tt>
|
||||
If that happens, simply delete the file and recreate a workable
|
||||
substitute:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
cp Makefile.ini Makefile
|
||||
</pre>
|
||||
</dl>
|
||||
|
||||
<h2><a name="section28">3.7.</a> <tt> </tt>Installing X
|
||||
<a name="toc28"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
If everything is built successfully, you can install the software
|
||||
by typing the following as root:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
make install >& install.log
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
Again, you might want to run this in the background and use <i>tail</i>
|
||||
to watch the progress.<tt> </tt>
|
||||
<p>
|
||||
You can install the manual pages by typing the following as root:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
make install.man >& man.log
|
||||
</pre>
|
||||
</dl>
|
||||
|
||||
<h2><a name="section29">3.8.</a> <tt> </tt>Shared Libraries
|
||||
<a name="toc29"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
Except on SunOS 4, the version number of all the shared libraries has
|
||||
changed to <b>6.0</b>. If you want programs linked against previous
|
||||
versions of the libraries to use the R6 libraries, create a link from
|
||||
the old name to the new name.<tt> </tt>
|
||||
|
||||
<h2><a name="section30">3.9.</a> <tt> </tt>Setting Up xterm
|
||||
<a name="toc30"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
If your <b>/etc/termcap</b> and <b>/usr/lib/terminfo</b> databases do
|
||||
not have correct entries for <i>xterm</i>, use the sample entries
|
||||
provided in the directory <b>xc/programs/xterm/</b>. System V users
|
||||
may need to compile and install the <b>terminfo</b> entry with the
|
||||
<i>tic</i> utility.<tt> </tt>
|
||||
<p>
|
||||
Since each <i>xterm</i> will need a separate pseudoterminal,
|
||||
you need a reasonable number of them for normal execution.<tt> </tt>
|
||||
You probably will want at least 32 on a small, multiuser system.<tt> </tt>
|
||||
On most systems, each pty has two devices, a master and a slave,
|
||||
which are usually named /dev/tty[pqrstu][0-f] and /dev/pty[pqrstu][0-f].<tt> </tt>
|
||||
If you don't have at least the ``p'' and ``q'' sets configured
|
||||
(try typing ``ls /dev/?ty??''), you should have your system administrator
|
||||
add them. This is commonly done by running the <i>MAKEDEV</i> script in
|
||||
the <b>/dev</b> directory with appropriate arguments.<tt> </tt>
|
||||
|
||||
<h2><a name="section31">3.10.</a> <tt> </tt>Starting Servers at System Boot
|
||||
<a name="toc31"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
The <i>xfs</i> and <i>xdm</i> programs are designed to be run
|
||||
automatically at system startup. Please read the manual pages for
|
||||
details on setting up configuration files; reasonable sample files are
|
||||
in <b>xc/programs/xdm/config/</b> and <b>xc/programs/xfs/</b>.<tt> </tt>
|
||||
<p>
|
||||
If your system uses an <b>/etc/rc</b> file at boot time, you can
|
||||
usually enable these programs by placing the following at or near the end
|
||||
of the file:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
if [ -f /usr/X11R6/bin/xfs ]; then
|
||||
/usr/X11R6/bin/xfs &; echo -n ' xfs'
|
||||
fi
|
||||
|
||||
if [ -f /usr/X11R6/bin/xdm ]; then
|
||||
/usr/X11R6/bin/xdm; echo -n ' xdm'
|
||||
fi
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
Since <i>xfs</i> can serve fonts over the network,
|
||||
you do not need to run a font server on every machine with
|
||||
an X display. You should start <i>xfs</i> before <i>xdm</i>, since
|
||||
<i>xdm</i> may start an X server which is a client of the font server.<tt> </tt>
|
||||
<p>
|
||||
The examples here use <b>/usr/X11R6/bin</b>, but if you have installed into
|
||||
a different directory by setting (or unsetting) <b>ProjectRoot</b> then you
|
||||
need to substitute the correct directory.<tt> </tt>
|
||||
<p>
|
||||
If you are unsure about how system boot works, or if your system does
|
||||
not use <b>/etc/rc</b>, consult your system administrator for help.<tt> </tt>
|
||||
|
||||
<h2><a name="section32">3.11.</a> <tt> </tt>Using OPEN LOOK applications
|
||||
<a name="toc32"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
You can use the X11R6 Xsun server with OPEN LOOK applications, but you
|
||||
must pass the new <b>-swapLkeys</b> flag to the server on startup, or the
|
||||
OPEN LOOK Undo, Copy, Paste, Find, and Cut keys may not work correctly.<tt> </tt>
|
||||
For example, to run Sun's OpenWindows 3.3 desktop environment with an
|
||||
X11R6 server, use the command:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
% openwin -server /usr/X11R6/bin/Xsun -swapLkeys
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
The keysyms reported by keys on the numeric keypad have also changed
|
||||
since X11R5; if you find that OpenWindows applications do not respond
|
||||
to keypad keys and cursor control keys when using the R6 server, you
|
||||
can remap the keypad to generate R5 style keysyms using the following
|
||||
<i>xmodmap</i> commands:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
keysym Pause = F21
|
||||
keysym Print = F22
|
||||
keysym Break = F23
|
||||
keysym KP_Equal = F24
|
||||
keysym KP_Divide = F25
|
||||
keysym KP_Multiply = F26
|
||||
keysym KP_Home = F27
|
||||
keysym KP_Up = Up
|
||||
keysym KP_Prior = F29
|
||||
keysym KP_Left = Left
|
||||
keycode 100 = F31
|
||||
keysym KP_Right = Right
|
||||
keysym KP_End = F33
|
||||
keysym KP_Down = Down
|
||||
keysym KP_Next = F35
|
||||
keysym KP_Insert = Insert
|
||||
keysym KP_Delete = Delete
|
||||
</pre>
|
||||
</dl>
|
||||
|
||||
<h2><a name="section33">3.12.</a> <tt> </tt>Rebuilding after Patches
|
||||
<a name="toc33"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
You shouldn't need this right away, but eventually you are probably
|
||||
going to make changes to the sources, for example by applying
|
||||
X Consortium public patches.<tt> </tt>
|
||||
<p>
|
||||
Each patch comes with explicit instructions at the top of it saying
|
||||
what to do. Thus the procedure here is only an overview of the types
|
||||
of commands that might be necessary to rebuild X after changing it.<tt> </tt>
|
||||
<p>
|
||||
If you are building from CD-ROM, apply the patches to the symbolic
|
||||
link tree. The links to changed files will be replaced with a local
|
||||
file containing the new contents.<tt> </tt>
|
||||
<p>
|
||||
If only source files are
|
||||
changed, you should be able to rebuild just by going to the <b>xc</b>
|
||||
directory in your build tree and typing:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
make >& make.log
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
If configuration files are changed, the safest thing to do is type:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
make Everything >& every.log
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
``Everything'' is similar to ``World'' in that it rebuilds every
|
||||
<b>Makefile</b>, but unlike ``World'' it does not delete the
|
||||
existing objects, libraries, and executables, and only rebuilds
|
||||
what is out of date.<tt> </tt>
|
||||
<p>
|
||||
Note that in both kinds of rebuilds you do not need to supply the
|
||||
<b>BootstrapCFlags</b> value any more; the information is already recorded.<tt> </tt>
|
||||
|
||||
<h2><a name="section34">3.13.</a> <tt> </tt>Building Contributed Software
|
||||
<a name="toc34"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
The software in <b>contrib</b> is not set up to have everything
|
||||
built automatically. It is assumed that you will build individual
|
||||
pieces as you find the desire, time, and/or disk space. You need
|
||||
to have the X Consortium part built and installed before building the
|
||||
contributed software. To build a program or library in <b>contrib</b>,
|
||||
look in its directory for any special build instructions (for example,
|
||||
a <b>README</b> file). If there are none, and there is an <b>Imakefile</b>,
|
||||
<i>cd</i> to the directory and type:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
xmkmf -a
|
||||
make >& make.log
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
This will build a <b>Makefile</b> in the directory and all subdirectories,
|
||||
and then build the software. If the build is successful, you should be
|
||||
able to install it using the same commands used for the <b>xc</b>
|
||||
software:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
make install >& install.log
|
||||
make install.man >& man.log
|
||||
</pre>
|
||||
</dl>
|
||||
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,35 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:25:24. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>X11R6 Release Notes, section 5.</title>
|
||||
</head><body>
|
||||
<h2><a name="section89">5.</a> <tt> </tt>Filing Bug Reports
|
||||
<a name="toc89"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
If you find a reproducible bug in software in the <b>xc</b> directory,
|
||||
or find bugs in the <b>xc</b> documentation, please send a bug report
|
||||
to the X Consortium using the form in the file <b>xc/bug-report</b> and
|
||||
this destination address:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
xbugs@x.org
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
Please try to provide all of the information requested on the form if it is
|
||||
applicable; the little extra time you spend on the report will make it
|
||||
much easier for us to reproduce, find, and fix the bug. Receipt of bug
|
||||
reports is generally acknowledged, but sometimes it can be delayed by a
|
||||
few weeks.<tt> </tt>
|
||||
<p>
|
||||
Bugs in <b>contrib</b> software should not be reported to the X
|
||||
Consortium. Consult the documentation for the individual software to
|
||||
see where (if anywhere) to report the bug.<tt> </tt>
|
||||
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:25:24. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>X11R6 Release Notes, section 6.</title>
|
||||
</head><body>
|
||||
<h2><a name="section90">6.</a> <tt> </tt>Public Fixes
|
||||
<a name="toc90"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
We occasionally put out patches to X Consortium software, to fix any
|
||||
serious problems that are discovered. Such fixes (if any) can be found
|
||||
on <b>ftp.x.org</b> in the directory <b>pub/R6/fixes</b>,
|
||||
or on your local X mirror site,
|
||||
using anonymous FTP.<tt> </tt>
|
||||
<p>
|
||||
For those without FTP access, individual fixes can be obtained by
|
||||
electronic mail by sending a message to
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
xstuff@x.org
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
In the usual case,
|
||||
the message should have a subject line and no body, or a single-line body and
|
||||
no subject, in either case the line looking like:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
send fixes <i>number</i>
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
where <i>number</i> is a decimal number, starting from one. To get a
|
||||
summary of available fixes, make the line:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
index fixes
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
If you need help, make the line:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
help
|
||||
</pre>
|
||||
</dl>
|
||||
<p>
|
||||
Some mailers produce mail headers that are unusable for extracting return
|
||||
addresses. If you use such a mailer, you won't get any response. If you
|
||||
happen to know an explicit return path, you can include include one in the
|
||||
body of your message, and the daemon will use it. For example:
|
||||
<dl><dt><dd>
|
||||
<pre>
|
||||
path <i>user</i>%<i>host</i>.bitnet@mitvma.mit.edu
|
||||
</pre>
|
||||
</dl>
|
||||
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,251 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:25:25. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>X11R6 Release Notes, section 7.</title>
|
||||
</head><body>
|
||||
<h2><a name="section91">7.</a> <tt> </tt>Acknowledgements
|
||||
<a name="toc91"> </a>
|
||||
</h2>
|
||||
<p>
|
||||
|
||||
Release 6 of X Version 11 is brought to you by X Consortium, Inc:
|
||||
Bob Scheifler,
|
||||
Janet O'Halloran,
|
||||
Ralph Swick,
|
||||
Matt Landau,
|
||||
Donna Converse,
|
||||
Stephen Gildea,
|
||||
Jay Hersh,
|
||||
Kaleb Keithley,
|
||||
Ralph Mor,
|
||||
Dave Wiggins,
|
||||
and Gary Cutbill.<tt> </tt>
|
||||
<p>
|
||||
Many companies and individuals have cooperated and worked extremely hard to
|
||||
make this release a reality, and our thanks go out to them. You will find
|
||||
many of them listed in the acknowledgements in the individual specifications.<tt> </tt>
|
||||
Major implementation contributions come from
|
||||
Data General, Digital, Fujitsu, HP, NCD, NCR, Omron, SGI, Sony, SunSoft,
|
||||
and XFree86.<tt> </tt>
|
||||
<p>
|
||||
Contributions were received from the follow people at various
|
||||
X Consortium member companies.<tt> </tt>
|
||||
Each X Window System release is the work of many, many people, and
|
||||
this list is surely incomplete.<tt> </tt>
|
||||
<dl>
|
||||
<dt>Fresco<dd>
|
||||
<br>
|
||||
Mark Linton (Silicon Graphics);
|
||||
Chuck Price (SunSoft);
|
||||
Charles Brauer (Fujitsu);
|
||||
Steve Churchill (Fujitsu);
|
||||
Steve Tang (Stanford University);
|
||||
Douglas Pan (Fujitsu);
|
||||
Jean-Daniel Fekete (2001 S.A.)
|
||||
<dt>Xlib<dd>
|
||||
<br>
|
||||
Courtney Loomis (Hewlett-Packard Company);
|
||||
Daniel Dardailler (Open Software Foundation)
|
||||
<dt>Xlib internationalization<dd>
|
||||
The manager of the internationalization project is
|
||||
Masahiko Narita (Fujitsu).<tt> </tt>
|
||||
The principal authors of Input Method Protocol document are
|
||||
Hideki Hiura (SunSoft) and Masahiko Narita (Fujitsu).<tt> </tt>
|
||||
The principal authors of Xlib specification Chapter 13 are
|
||||
Hideki Hiura (SunSoft) and Shigeru Yamada (Fujitsu OSSI).<tt> </tt>
|
||||
The principal producers of the sample implementation of the
|
||||
internationalization facilities are
|
||||
Jeffrey Bloomfield (Fujitsu OSSI), Takashi Fujiwara (Fujitsu),
|
||||
Hideki Hiura (SunSoft), Yoshio Horiuchi (IBM),
|
||||
Makoto Inada (Digital), Hiromu Inukai (Nihon SunSoft),
|
||||
Song JaeKyung (KAIST), Riki Kawaguchi (Fujitsu),
|
||||
Franky Ling (Digital), Hiroyuki Miyamoto (Digital),
|
||||
Hidetoshi Tajima (HP), Toshimitsu Terazono (Fujitsu),
|
||||
Makoto Wakamatsu (Sony), Masaki Wakao (IBM),
|
||||
Shigeru Yamada (Fujitsu OSSI) and Katsuhisa Yano (Toshiba).<tt> </tt>
|
||||
The coordinators of the integration, testing, and release of this
|
||||
implementation are
|
||||
Nobuyuki Tanaka (Sony) and Makoto Wakamatsu (Sony).<tt> </tt>
|
||||
Others who have contributed on the architectural design or
|
||||
the testing of sample implementation are
|
||||
Hector Chan (Digital), Michael Kung (IBM), Joseph Kwok (Digital),
|
||||
Hiroyuki Machida (Sony), Nelson Ng (SunSoft), Frank Rojas (IBM),
|
||||
Yoshiyuki Segawa (Fujitsu OSSI), Makiko Shimamura (Fujitsu),
|
||||
Shoji Sugiyama (IBM), Lining Sun (SGI), Masaki Takeuchi (Sony),
|
||||
Jinsoo Yoon (KAIST) and Akiyasu Zen (HP).<tt> </tt>
|
||||
<dt>Xt Intrinsics<dd>
|
||||
Douglas Rand (Open Software Foundation), parameterized selections;
|
||||
Paul Asente (Adobe Systems Incorporated), extension event handling;
|
||||
Ajay Vohra (SunSoft), support for multithreading;
|
||||
Sam Chang (Novell), widget caching research;
|
||||
Larry Cable (SunSoft), object allocation and change managed set;
|
||||
Vania Joloboff (Open Software Foundation);
|
||||
Courtney Loomis (Hewlett-Packard Company);
|
||||
Daniel Dardailler (Open Software Foundation);
|
||||
and Ellis Cohen (Open Software Foundation).<tt> </tt>
|
||||
The following people at Georgia Tech contributed the
|
||||
extensions for disability access:
|
||||
Keith Edwards,
|
||||
Susan Liebeskind,
|
||||
Beth Mynatt, and
|
||||
Tom Rodriguez.<tt> </tt>
|
||||
<dt>Athena Widget Set<dd>
|
||||
Frank Sheeran (Omron Data General)
|
||||
<dt>X Logical Font Description<dd>
|
||||
Paul Asente (Adobe Systems Incorporated);
|
||||
Nathan Meyers (Hewlett-Packard Company);
|
||||
Jim Graham (Sun);
|
||||
Perry A. Caro (Adobe Systems Incorporated)
|
||||
<dt>Font Support Enhancments<dd>
|
||||
Nathan Meyers (Hewlett-Packard Company), implementation of matrix
|
||||
enhancement, glyph caching, scalable aliases, sample
|
||||
authorization protocol
|
||||
<dt>X Transport Library<dd>
|
||||
Stuart R. Anderson (AT&T Global Information Solutions)
|
||||
<dt>X Keyboard Extension<dd>
|
||||
Erik Fortune (Silicon Graphics), design and sample implementation;
|
||||
Jordan Brown (Quarterdeck Office Systems);
|
||||
Will Walker (Digital Equipment Corporation), AccessX portion;
|
||||
Mark Novak (Trace Center), AccessX portion
|
||||
<dt>Low-Bandwidth X<dd>
|
||||
Jim Fulton (Network Computing Devices);
|
||||
Dave Lemke (Network Computing Devices);
|
||||
Dale Tonogai (Network Computing Devices);
|
||||
Keith Packard (Network Computing Devices);
|
||||
Chris Kantarjiev (Xerox PARC)
|
||||
<dt>X Image Extension<dd>
|
||||
Bob Shelley (AGE Logic), protocol architect, lead implementation architect;
|
||||
Larry Hare (AGE Logic), server implementation;
|
||||
Dean Verheiden (AGE Logic), server implementation;
|
||||
Syd Logan (AGE Logic), xieperf;
|
||||
Gary Rogers (AGE Logic), JPEG code, XIElib documentation;
|
||||
Ben Fahy (AGE Logic), client and server implementation
|
||||
<dt>ICCCM<dd>
|
||||
Stuart Marks (SunSoft);
|
||||
Gabe Beged-Dov (Hewlett-Packard Company);
|
||||
Chan Benson (Hewlett-Packard Company);
|
||||
Jordan Brown (Quarterdeck Office Systems);
|
||||
Larry Cable (SunSoft);
|
||||
Ellis Cohen (Open Software Foundation);
|
||||
Brian Cripe (Hewlett-Packard Company);
|
||||
Susan Dahlberg (Silicon Graphics);
|
||||
Peter Daifuku (Silicon Graphics);
|
||||
Andrew deBlois (Open Software Foundation);
|
||||
Clive Feather (IXI);
|
||||
Christian Jacobi (Xerox PARC);
|
||||
Bill Janssen (Xerox PARC);
|
||||
Vania Joloboff (Open Software Foundation);
|
||||
Phil Karlton (Silicon Graphics);
|
||||
Mark Manasse (Digital Equipment Corporation);
|
||||
Todd Newman (Silicon Graphics);
|
||||
Keith Taylor (Hewlett-Packard Company);
|
||||
Jim VanGilder (Digital Equipment Corporation);
|
||||
Mike Wexler (Kubota Pacific);
|
||||
Michael Yee (Apple Computer)
|
||||
<dt>ICE<dd>
|
||||
<br>
|
||||
Jordan Brown (Quarterdeck Office Systems);
|
||||
Vania Joloboff (Open Software Foundation);
|
||||
Stuart Marks (SunSoft)
|
||||
<dt>XSMP<dd>
|
||||
<br>
|
||||
Mike Wexler (Kubota Pacific);
|
||||
Jordan Brown (Quarterdeck Office Systems);
|
||||
Ellis Cohen (Open Software Foundation);
|
||||
Vania Joloboff (Open Software Foundation);
|
||||
Stuart Marks (SunSoft)
|
||||
<dt>SYNC Extension<dd>
|
||||
Tim Glauert (Olivetti Research Limited);
|
||||
Dave Carver (Digital Equipment Corporation);
|
||||
Jim Gettys (Digital Equipment Corporation);
|
||||
Pete Snider (Digital Equipment Corporation)
|
||||
<dt>RECORD<dd>
|
||||
Martha Zimet (Network Computing Devices);
|
||||
Robert Chesler (Absol-puter);
|
||||
Kieron Drake (UniSoft);
|
||||
Marc Evans (Synergytics);
|
||||
Jim Fulton (Network Computing Devices);
|
||||
Ken Miller (Digital Equipment Corporation)
|
||||
<dt>X Input Extension tests<dd>
|
||||
George Sachs (Hewlett-Packard Company)
|
||||
<dt>PEX<dd>
|
||||
Ken Garnett (Shographics);
|
||||
Cheryl Huntington (Sun Microsystems);
|
||||
Karl Schultz (IBM);
|
||||
Jeff Stevenson (Hewlett-Packard Company);
|
||||
Paula Womack (Digital Equipment Corporation)
|
||||
<dt>Multi-Buffering Extension<dd>
|
||||
Eng-Shien Wu (IBM);
|
||||
John Marks (Hewlett-Packard Company);
|
||||
Ian Elliott (Hewlett-Packard Company)
|
||||
<dt>X server<dd>
|
||||
Milind Pansare (SunSoft), pixmap privates;
|
||||
Peter Daifuku (SGI), layered window support;
|
||||
David Lister (Adobe Systems Incorporated), callback manager;
|
||||
Ken Whaley (Kubota Pacific), thin line pixelization;
|
||||
Joel McCormack (Digital Equipment Corporation), 64-bit mfb and cfb;
|
||||
Rob Lembree (Digital Equipment Corporation), 64-bit mfb and cfb;
|
||||
Davor Matic (MIT), xnest ddx;
|
||||
Nathan Meyers (Hewlett-Packard Company), font support;
|
||||
Jordan Brown (Quarterdeck Office Systems), -config option;
|
||||
Michael Brenner (Apple Computer), macII ddx;
|
||||
Thomas Roell, svga ddx
|
||||
<dt>Multi-Threaded X Server<dd>
|
||||
John A. Smith (while at Data General), team leader;
|
||||
H. Chiba (Omron), ddx;
|
||||
Akeio Harada (Omron), ddx;
|
||||
Mike Haynes (Data General), dix;
|
||||
Hidenobu Kanaoka (Omron), ddx;
|
||||
Paul Layne (Data General), dix and ddx;
|
||||
Takayuki Miyake (Omron), ddx;
|
||||
Keith Packard (Network Computing Devices), design;
|
||||
Richard Potts (Data General), dix;
|
||||
Sid Manning (IBM), integration with core server;
|
||||
Rob Chesler (Absol-puter), integration with core server
|
||||
<dt>xdm modular loadable greeter<dd>
|
||||
Peter Derr (Digital Equipment Corporation)
|
||||
<dt>x11perf<dd>
|
||||
Joel McCormack (Digital Equipment Corporation);
|
||||
Graeme Gill (Labtam Australia);
|
||||
Mark Martin (CETIA)
|
||||
<dt>config<dd>
|
||||
Stuart R. Anderson (AT&T Global Information Solutions);
|
||||
David Brooks (Open Software Foundation);
|
||||
Kendall Collett (Motorola);
|
||||
John Freeman (Cray);
|
||||
John Freitas (Digital Equipment Corporation);
|
||||
Patrick E. Kane (Motorola);
|
||||
Mark Kilgard (Silicon Graphics);
|
||||
Akira Kon (NEC);
|
||||
Masahiko Narita (Fujitsu);
|
||||
Paul Shearer (Sequent);
|
||||
Mark Snitily (SGCS)
|
||||
<dt>XFree86 port<dd>
|
||||
Stuart R. Anderson (AT&T Global Information Solutions);
|
||||
Doug Anson; Gertjan Akkerman; Mike Bernson; David Dawes; Marc Evans;
|
||||
Pascal Haible; Matthieu Herrb; Dirk Hohndel; David Holland; Alan Hourihane;
|
||||
Jeffrey Hsu; Glenn Lai; Ted Lemon; Rich Murphey; Hans Nasten; Mark Snitily;
|
||||
Randy Terbush; Jon Tombs; Kees Verstoep; Paul Vixie; Mark Weaver;
|
||||
David Wexelblat; Philip Wheatley; Thomas Wolfram; Orest Zborowski
|
||||
<dt>fonts<dd>
|
||||
<br>
|
||||
Under <b>xc/fonts/</b>, the <b>misc/</b> directory
|
||||
contains a family of fixed-width fonts from Dale Schumacher,
|
||||
several Kana fonts from Sony Corporation,
|
||||
two Hangul fonts from Daewoo Electronics,
|
||||
two Hebrew fonts from Joseph Friedman,
|
||||
two cursor fonts from
|
||||
Digital Equipment Corporation, and cursor and glyph fonts
|
||||
from Sun Microsystems.<tt> </tt>
|
||||
The <b>Speedo</b> directory contains outline fonts contributed by
|
||||
Bitstream, Inc.<tt> </tt>
|
||||
The <b>75dpi</b> and <b>100dpi</b> directories contain
|
||||
bitmap fonts contributed by Adobe Systems, Inc.,
|
||||
Digital Equipment Corporation, Bitstream, Inc.,
|
||||
Bigelow and Holmes, and Sun Microsystems, Inc.<tt> </tt>
|
||||
</dl>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,362 @@
|
|||
<html>
|
||||
<head>
|
||||
<!-- This file has been generated by unroff 1.0, 03/21/96 19:25:18. -->
|
||||
<!-- Do not edit! -->
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>X11R6 Release Notes</title>
|
||||
</head><body>
|
||||
<!-- $XConsortium: RELNOTES.ms,v 1.6 94/05/16 14:35:14 gildea Exp $ -->
|
||||
<!-- X11R6 Release Notes. Use troff -ms macros -->
|
||||
<!-- as nothing -->
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<h1>
|
||||
X Window System, Version 11, Release 6
|
||||
|
||||
Release Notes
|
||||
</h1>
|
||||
<p>
|
||||
<i></i><p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<i></i><i>Stephen Gildea</i><i>
|
||||
<br>
|
||||
<br>
|
||||
</i>
|
||||
<br>
|
||||
X Consortium
|
||||
<br>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<br>
|
||||
May 16, 1994
|
||||
<br>
|
||||
<hr>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
<p>
|
||||
Copyright © 1994 X Consortium
|
||||
<p>
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
``Software''), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
<p>
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.<tt> </tt>
|
||||
<p>
|
||||
THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.<tt> </tt>
|
||||
IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.<tt> </tt>
|
||||
<p>
|
||||
Except as contained in this notice, the name of the X Consortium shall
|
||||
not be used in advertising or otherwise to promote the sale, use or
|
||||
other dealings in this Software without prior written authorization
|
||||
from the X Consortium.<tt> </tt>
|
||||
<p>
|
||||
<i>X Window System</i> is a trademark of X Consortium, Inc.<tt> </tt>
|
||||
|
||||
<h2>Table of Contents</h2>
|
||||
<ul><li><a href="r-1.html#section1">1. </a>
|
||||
Easy Build Instructions
|
||||
<a name="toc1"> </a>
|
||||
<li><a href="r-2.html#section2">2. </a>
|
||||
What Is Release 6
|
||||
<a name="toc2"> </a>
|
||||
<ul><li><a href="r-2.html#section3">2.1. </a>
|
||||
Overview of the X Consortium Release
|
||||
<a name="toc3"> </a>
|
||||
<li><a href="r-2.html#section4">2.2. </a>
|
||||
Supported Systems
|
||||
<a name="toc4"> </a>
|
||||
<li><a href="r-2.html#section5">2.3. </a>
|
||||
The XC Tree
|
||||
<a name="toc5"> </a>
|
||||
<ul><li><a href="r-2.html#section6">2.3.1. </a>
|
||||
config/
|
||||
<a name="toc6"> </a>
|
||||
<li><a href="r-2.html#section7">2.3.2. </a>
|
||||
lib/
|
||||
<a name="toc7"> </a>
|
||||
<li><a href="r-2.html#section8">2.3.3. </a>
|
||||
doc/
|
||||
<a name="toc8"> </a>
|
||||
<li><a href="r-2.html#section9">2.3.4. </a>
|
||||
extensions
|
||||
<a name="toc9"> </a>
|
||||
</ul><li><a href="r-2.html#section10">2.4. </a>
|
||||
Extensions supported
|
||||
<a name="toc10"> </a>
|
||||
<li><a href="r-2.html#section11">2.5. </a>
|
||||
Implementation Parameters
|
||||
<a name="toc11"> </a>
|
||||
</ul><li><a href="r-3.html#section12">3. </a>
|
||||
Building X
|
||||
<a name="toc12"> </a>
|
||||
<ul><li><a href="r-3.html#section13">3.1. </a>
|
||||
Unpacking the Distribution
|
||||
<a name="toc13"> </a>
|
||||
<ul><li><a href="r-3.html#section14">3.1.1. </a>
|
||||
Unpacking a Compressed FTP Distribution
|
||||
<a name="toc14"> </a>
|
||||
<li><a href="r-3.html#section15">3.1.2. </a>
|
||||
Unpacking a gzipped FTP Distribution
|
||||
<a name="toc15"> </a>
|
||||
<li><a href="r-3.html#section16">3.1.3. </a>
|
||||
Unpacking a Split Compressed FTP Distribution
|
||||
<a name="toc16"> </a>
|
||||
<li><a href="r-3.html#section17">3.1.4. </a>
|
||||
Unpacking the Tape Distribution
|
||||
<a name="toc17"> </a>
|
||||
<li><a href="r-3.html#section18">3.1.5. </a>
|
||||
Using the CD-ROM
|
||||
<a name="toc18"> </a>
|
||||
</ul><li><a href="r-3.html#section19">3.2. </a>
|
||||
Apply Patches
|
||||
<a name="toc19"> </a>
|
||||
<li><a href="r-3.html#section20">3.3. </a>
|
||||
Symbolic Link Trees
|
||||
<a name="toc20"> </a>
|
||||
<li><a href="r-3.html#section21">3.4. </a>
|
||||
Configuration Parameters
|
||||
<a name="toc21"> </a>
|
||||
<li><a href="r-3.html#section22">3.5. </a>
|
||||
System Notes
|
||||
<a name="toc22"> </a>
|
||||
<ul><li><a href="r-3.html#section23">3.5.1. </a>
|
||||
gcc
|
||||
<a name="toc23"> </a>
|
||||
<li><a href="r-3.html#section24">3.5.2. </a>
|
||||
SparcWorks 2.0
|
||||
<a name="toc24"> </a>
|
||||
<li><a href="r-3.html#section25">3.5.3. </a>
|
||||
CenterLine C under Solaris 2.3
|
||||
<a name="toc25"> </a>
|
||||
<li><a href="r-3.html#section26">3.5.4. </a>
|
||||
Microsoft Windows NT
|
||||
<a name="toc26"> </a>
|
||||
</ul><li><a href="r-3.html#section27">3.6. </a>
|
||||
The Build
|
||||
<a name="toc27"> </a>
|
||||
<li><a href="r-3.html#section28">3.7. </a>
|
||||
Installing X
|
||||
<a name="toc28"> </a>
|
||||
<li><a href="r-3.html#section29">3.8. </a>
|
||||
Shared Libraries
|
||||
<a name="toc29"> </a>
|
||||
<li><a href="r-3.html#section30">3.9. </a>
|
||||
Setting Up xterm
|
||||
<a name="toc30"> </a>
|
||||
<li><a href="r-3.html#section31">3.10. </a>
|
||||
Starting Servers at System Boot
|
||||
<a name="toc31"> </a>
|
||||
<li><a href="r-3.html#section32">3.11. </a>
|
||||
Using OPEN LOOK applications
|
||||
<a name="toc32"> </a>
|
||||
<li><a href="r-3.html#section33">3.12. </a>
|
||||
Rebuilding after Patches
|
||||
<a name="toc33"> </a>
|
||||
<li><a href="r-3.html#section34">3.13. </a>
|
||||
Building Contributed Software
|
||||
<a name="toc34"> </a>
|
||||
</ul><li><a href="r-4.html#section35">4. </a>
|
||||
What Is New in Release 6
|
||||
<a name="toc35"> </a>
|
||||
<ul><li><a href="r-4.html#section36">4.1. </a>
|
||||
New Standards
|
||||
<a name="toc36"> </a>
|
||||
<li><a href="r-4.html#section37">4.2. </a>
|
||||
XIE (X Image Extension)
|
||||
<a name="toc37"> </a>
|
||||
<li><a href="r-4.html#section38">4.3. </a>
|
||||
Inter-Client Communications Conventions Manual
|
||||
<a name="toc38"> </a>
|
||||
<ul><li><a href="r-4.html#section39">4.3.1. </a>
|
||||
Window Management
|
||||
<a name="toc39"> </a>
|
||||
<li><a href="r-4.html#section40">4.3.2. </a>
|
||||
Selections
|
||||
<a name="toc40"> </a>
|
||||
<li><a href="r-4.html#section41">4.3.3. </a>
|
||||
Resource Sharing
|
||||
<a name="toc41"> </a>
|
||||
<li><a href="r-4.html#section42">4.3.4. </a>
|
||||
Session Management
|
||||
<a name="toc42"> </a>
|
||||
</ul><li><a href="r-4.html#section43">4.4. </a>
|
||||
ICE (Inter-Client Exchange)
|
||||
<a name="toc43"> </a>
|
||||
<li><a href="r-4.html#section44">4.5. </a>
|
||||
SM (Session Management)
|
||||
<a name="toc44"> </a>
|
||||
<li><a href="r-4.html#section45">4.6. </a>
|
||||
Input Method Protocol
|
||||
<a name="toc45"> </a>
|
||||
<li><a href="r-4.html#section46">4.7. </a>
|
||||
X Logical Font Description
|
||||
<a name="toc46"> </a>
|
||||
<li><a href="r-4.html#section47">4.8. </a>
|
||||
SYNC extension
|
||||
<a name="toc47"> </a>
|
||||
<li><a href="r-4.html#section48">4.9. </a>
|
||||
BIG-REQUESTS extension
|
||||
<a name="toc48"> </a>
|
||||
<li><a href="r-4.html#section49">4.10. </a>
|
||||
XC-MISC extension
|
||||
<a name="toc49"> </a>
|
||||
<li><a href="r-4.html#section50">4.11. </a>
|
||||
XTEST extension
|
||||
<a name="toc50"> </a>
|
||||
<li><a href="r-4.html#section51">4.12. </a>
|
||||
Tree Reorganization
|
||||
<a name="toc51"> </a>
|
||||
<li><a href="r-4.html#section52">4.13. </a>
|
||||
Configuration Files
|
||||
<a name="toc52"> </a>
|
||||
<li><a href="r-4.html#section53">4.14. </a>
|
||||
Kerberos
|
||||
<a name="toc53"> </a>
|
||||
<li><a href="r-4.html#section54">4.15. </a>
|
||||
X Transport Library (xtrans)
|
||||
<a name="toc54"> </a>
|
||||
<li><a href="r-4.html#section55">4.16. </a>
|
||||
Xlib
|
||||
<a name="toc55"> </a>
|
||||
<li><a href="r-4.html#section56">4.17. </a>
|
||||
Internationalization
|
||||
<a name="toc56"> </a>
|
||||
<li><a href="r-4.html#section57">4.18. </a>
|
||||
Xt
|
||||
<a name="toc57"> </a>
|
||||
<li><a href="r-4.html#section58">4.19. </a>
|
||||
Xaw
|
||||
<a name="toc58"> </a>
|
||||
<ul><li><a href="r-4.html#section59">4.19.1. </a>
|
||||
AsciiText
|
||||
<a name="toc59"> </a>
|
||||
<li><a href="r-4.html#section60">4.19.2. </a>
|
||||
Command, Label, List, MenuButton, Repeater, SmeBSB, and Toggle
|
||||
<a name="toc60"> </a>
|
||||
</ul><li><a href="r-4.html#section61">4.20. </a>
|
||||
PEX
|
||||
<a name="toc61"> </a>
|
||||
<ul><li><a href="r-4.html#section62">4.20.1. </a>
|
||||
PEX Standards and Functionality
|
||||
<a name="toc62"> </a>
|
||||
</ul><li><a href="r-4.html#section63">4.21. </a>
|
||||
Header Files
|
||||
<a name="toc63"> </a>
|
||||
<li><a href="r-4.html#section64">4.22. </a>
|
||||
Fonts
|
||||
<a name="toc64"> </a>
|
||||
<li><a href="r-4.html#section65">4.23. </a>
|
||||
Font library
|
||||
<a name="toc65"> </a>
|
||||
<li><a href="r-4.html#section66">4.24. </a>
|
||||
Font server
|
||||
<a name="toc66"> </a>
|
||||
<li><a href="r-4.html#section67">4.25. </a>
|
||||
X server
|
||||
<a name="toc67"> </a>
|
||||
<ul><li><a href="r-4.html#section68">4.25.1. </a>
|
||||
Xnest
|
||||
<a name="toc68"> </a>
|
||||
<li><a href="r-4.html#section69">4.25.2. </a>
|
||||
Xvfb
|
||||
<a name="toc69"> </a>
|
||||
<li><a href="r-4.html#section70">4.25.3. </a>
|
||||
ddx
|
||||
<a name="toc70"> </a>
|
||||
</ul><li><a href="r-4.html#section71">4.26. </a>
|
||||
New Programs
|
||||
<a name="toc71"> </a>
|
||||
<li><a href="r-4.html#section72">4.27. </a>
|
||||
Old Software
|
||||
<a name="toc72"> </a>
|
||||
<li><a href="r-4.html#section73">4.28. </a>
|
||||
xhost
|
||||
<a name="toc73"> </a>
|
||||
<li><a href="r-4.html#section74">4.29. </a>
|
||||
xrdb
|
||||
<a name="toc74"> </a>
|
||||
<li><a href="r-4.html#section75">4.30. </a>
|
||||
twm
|
||||
<a name="toc75"> </a>
|
||||
<li><a href="r-4.html#section76">4.31. </a>
|
||||
xdm
|
||||
<a name="toc76"> </a>
|
||||
<li><a href="r-4.html#section77">4.32. </a>
|
||||
xterm
|
||||
<a name="toc77"> </a>
|
||||
<li><a href="r-4.html#section78">4.33. </a>
|
||||
xset
|
||||
<a name="toc78"> </a>
|
||||
<li><a href="r-4.html#section79">4.34. </a>
|
||||
X Test Suite
|
||||
<a name="toc79"> </a>
|
||||
<li><a href="r-4.html#section80">4.35. </a>
|
||||
Work in Progress
|
||||
<a name="toc80"> </a>
|
||||
<ul><li><a href="r-4.html#section81">4.35.1. </a>
|
||||
Fresco
|
||||
<a name="toc81"> </a>
|
||||
<li><a href="r-4.html#section82">4.35.2. </a>
|
||||
XKB (X Keyboard Extension)
|
||||
<a name="toc82"> </a>
|
||||
<li><a href="r-4.html#section83">4.35.3. </a>
|
||||
LBX (Low Bandwidth X)
|
||||
<a name="toc83"> </a>
|
||||
<li><a href="r-4.html#section84">4.35.4. </a>
|
||||
RECORD extension
|
||||
<a name="toc84"> </a>
|
||||
<li><a href="r-4.html#section85">4.35.5. </a>
|
||||
Simple Session Manager
|
||||
<a name="toc85"> </a>
|
||||
<li><a href="r-4.html#section86">4.35.6. </a>
|
||||
Multi-Threaded X Server
|
||||
<a name="toc86"> </a>
|
||||
</ul><li><a href="r-4.html#section87">4.36. </a>
|
||||
ANSIfication
|
||||
<a name="toc87"> </a>
|
||||
<li><a href="r-4.html#section88">4.37. </a>
|
||||
Miscellaneous
|
||||
<a name="toc88"> </a>
|
||||
</ul><li><a href="r-5.html#section89">5. </a>
|
||||
Filing Bug Reports
|
||||
<a name="toc89"> </a>
|
||||
<li><a href="r-6.html#section90">6. </a>
|
||||
Public Fixes
|
||||
<a name="toc90"> </a>
|
||||
<li><a href="r-7.html#section91">7. </a>
|
||||
Acknowledgements
|
||||
<a name="toc91"> </a>
|
||||
</ul>
|
||||
<p><hr>
|
||||
Markup created by <em>unroff</em> 1.0, <tt> </tt> <tt> </tt>March 21, 1996, <tt> </tt> <tt> </tt>net@informatik.uni-bremen.de</body>
|
||||
</html>
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
After Width: | Height: | Size: 5.0 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.3 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 5.0 KiB |
|
|
@ -0,0 +1,326 @@
|
|||
<html>
|
||||
<head>
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff release 1.0 information</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Unroff</h1>
|
||||
<i>Unroff</i>
|
||||
is a Scheme-based, programmable, extensible troff translator
|
||||
with a back-end for the Hypertext Markup Language.<tt> </tt>
|
||||
Unroff is free software and is distributed both as source and
|
||||
as precompiled binaries.
|
||||
|
||||
<h2>Contents</h2>
|
||||
<ul>
|
||||
<li><a href="#overview">Overview</a>
|
||||
<li><a href="#troff">Unroff and Troff</a>
|
||||
<li><a href="#scheme">Unroff and Scheme</a>
|
||||
<li><a href="#hypertext">Unroff and Hypertext</a>
|
||||
<li><a href="#managing">Managing Hypertext Documents with Troff</a>
|
||||
<li><a href="#dist">Source and Binary Distributions</a>
|
||||
<li><a href="#browse">Browsing Source, Documentation, Examples</a>
|
||||
<li><a href="#patches">Patches</a>
|
||||
<li><a href="#news">What's New?</a>
|
||||
</ul>
|
||||
|
||||
<h2><a name=overview>Overview</a></h2>
|
||||
Unroff reads and parses UNIX troff documents and translates the embedded
|
||||
markup into a different format (see <b>Figure 1</b>).<tt> </tt>
|
||||
Neither the actual output format nor any knowledge about particular
|
||||
troff macro sets (-man, -ms, etc.) are hard-wired into unroff.<tt> </tt>
|
||||
Instead, the translation process is controlled by a set of
|
||||
user-supplied procedures written in the
|
||||
<a href="https://en.wikipedia.org/wiki/Scheme_%28programming_language%29"><i>Scheme</i></a>
|
||||
programming language.
|
||||
<p>
|
||||
Translation rules for new output formats and troff macro packages can
|
||||
be added easily by providing a corresponding set of Scheme procedures
|
||||
(a ``back-end'').<tt> </tt>
|
||||
Version 1.0 of unroff includes back-ends for translating
|
||||
documents using the ``man'' and ``ms'' macros into the Hypertext Markup
|
||||
Language (HTML) version 2.0.<tt> </tt>
|
||||
Additional requests facilitate use of arbitrary hypertext links in
|
||||
troff documents.
|
||||
<p>
|
||||
<hr>
|
||||
<img src=fig1.gif alt="[Overview of unroff functionality]">
|
||||
<hr>
|
||||
|
||||
<h2><a name=troff>Unroff and Troff</a></h2>
|
||||
<p>
|
||||
In contrast to conventional troff ``converters'' (usually Perl scripts
|
||||
some of which process nroff output) unroff includes a full troff parser
|
||||
and closely mimics the troff processing engine.<tt> </tt>
|
||||
This enables unroff to handle user-defined macros, strings, and
|
||||
number registers, nested if-else requests, arbitrary fonts and font
|
||||
positions, low-level formatting requests such as \l, \c, and \h, and
|
||||
idiosyncrasies such as troff <i>copy mode</i> and the subtle differences
|
||||
between request and macro invocations.<tt> </tt>
|
||||
Unroff has adopted a number of <i>groff</i> extensions, among them long names
|
||||
for macros, strings, number registers, and special characters, and the
|
||||
escape sequences \$@ and \$*.
|
||||
|
||||
<h2><a name=scheme>Unroff and Scheme</a></h2>
|
||||
Unroff uses
|
||||
<a href="http://www.informatik.uni-bremen.de/~net/elk"><i>Elk</i></a>,
|
||||
the Scheme-based Extension Language Kit, to achieve
|
||||
programmability (see <b>Figure 2</b>).<tt> </tt>
|
||||
It includes a full Scheme language implementation
|
||||
with the usual amenities such as garbage collection, interactive
|
||||
programming and testing, and dynamic loading.<tt> </tt>
|
||||
To help writing new unroff back-ends, unroff has augmented
|
||||
standard Scheme by a set of new Scheme data types
|
||||
and primitives.
|
||||
<p>
|
||||
<hr>
|
||||
<img src=fig2.gif alt="[unroff and Elk/Scheme-code relationship]">
|
||||
<hr>
|
||||
<p>
|
||||
A new troff request and an extension to the `.ig' request allow for
|
||||
Scheme code to be embedded in troff documents; the code is then
|
||||
evaluated on the fly as the documents are processed by unroff.
|
||||
<p>
|
||||
Unroff may be viewed as a prototype for hybrid applications that use
|
||||
Scheme (in particular Elk) as their extension language.<tt> </tt>
|
||||
Approximately half of its source consists of portable ANSI C code,
|
||||
and the other half is written in Scheme and can be configured and
|
||||
tailored easily without the need to recompile unroff.<tt> </tt>
|
||||
Authors of Elk-based applications are encouraged to look into the
|
||||
source code or reuse parts of it for their own projects.
|
||||
<p>
|
||||
As the time-critical Scheme primitives provided of unroff have been
|
||||
coded in (efficient) C, its performance comes close to that of nroff
|
||||
processing the same troff input.
|
||||
|
||||
<h2><a name=hypertext>Unroff and Hypertext</a></h2>
|
||||
troff documents that were originally written without intentions to
|
||||
make them available in the World Wide Web (such as UNIX manual pages)
|
||||
can easily be translated to the Hypertext Markup Language using the
|
||||
predefined HTML back-ends.
|
||||
<p>
|
||||
As unroff closely simulates ordinary troff, even large or complex
|
||||
documents (like technical reports or theses with many user-defined
|
||||
macros) can be translated to HTML automatically without having to
|
||||
add any structural cues to the documents.
|
||||
<p>
|
||||
The ``-man'' support has been tested with several hundred vendor- and
|
||||
user-supplied manual pages and has produced good results in all but
|
||||
less than a dozen cases (a few manual pages were found to make excessive
|
||||
use of low-level troff constructs or to include <i>tbl</i> output verbatim).
|
||||
|
||||
<h2><a name=managing>Managing Hypertext Documents with Troff</a></h2>
|
||||
Authors can benefit from unroff not only as a converter for existing
|
||||
documents, but also when writing new documents that must exist both
|
||||
in high-quality paper form and in the World Wide Web as hypertext.
|
||||
<p>
|
||||
Rather than writing hypertext documents directly in HTML (which is
|
||||
cumbersome for long or complex texts), authors can continue using
|
||||
ordinary troff together with the usual preprocessors and macro
|
||||
packages.<tt> </tt>
|
||||
Unroff is then employed to produce the WWW form, while troff is used
|
||||
in the normal way to typeset the same text, producing the printed
|
||||
version (or, using nroff, an ASCII version if desired).
|
||||
<p>
|
||||
In this way authors of hypertext documents can take full advantage of
|
||||
the usual troff facilities such as user-defined macros, conditional text,
|
||||
tables, equations, and drawings, automatic table of contents generation,
|
||||
footnotes/endnotes, indexes, etc., none of which are available when
|
||||
composing documents directly in plain HTML.
|
||||
<p>
|
||||
Two new troff requests for embedding hypertext links in troff documents
|
||||
are provided by the unroff HTML back-end.<tt> </tt>
|
||||
Arbitrary forward and backward references using symbolic labels
|
||||
(rather than actual file names) among
|
||||
groups of troff source files are supported (see <b>Figure 3</b>).<tt> </tt>
|
||||
Another new request and another extension to `.ig' allow for HTML code
|
||||
to be embedded directly in troff documents.<tt> </tt>
|
||||
The hypertext capabilities are demonstrated by the troff source of the
|
||||
Programmer's Manual that is part of the unroff distribution.
|
||||
<p>
|
||||
<hr>
|
||||
<img src=fig3.gif alt="[troff document with hypertext links]">
|
||||
<hr>
|
||||
|
||||
<h2><a name=dist>Source and Binary Distributions</a></h2>
|
||||
You need Elk 2.2 or
|
||||
<a href="http://www.informatik.uni-bremen.de/~net/elk">Elk 3.0</a>
|
||||
and an ANSI C compiler to compile and
|
||||
install unroff from the source distribution.
|
||||
<p>
|
||||
If you do not have Elk at your site and do not want
|
||||
to install it, or if you just wish to have a quick look at unroff,
|
||||
download the binary distribution for your system.<tt> </tt>
|
||||
Otherwise, use of the source distribution is recommended.
|
||||
<p>
|
||||
The unroff executable is linked dynamically in the binary distributions
|
||||
for systems with shared libraries.<tt> </tt>
|
||||
Please send a message to
|
||||
<a href="mailto:net@informatik.uni-bremen.de">net@informatik.uni-bremen.de</a>
|
||||
if you need a statically linked version, or if you think that statically
|
||||
linked executables should be offered in addition to or in place of
|
||||
the dynamically linked ones (or if you need an entirely different format).
|
||||
<p>
|
||||
<ul>
|
||||
<li><b>Source Distribution</b> (about 80 Kbytes)
|
||||
<ul>
|
||||
<li><a href="dist/unroff-1.0.tar.gz">unroff-1.0.tar.gz</a>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><b>Binary Distributions</b> (about 200 Kbytes each)
|
||||
<ul>
|
||||
<li><a href="dist/unroff-1.0-alpha-dec-osf3.0.tar.gz">
|
||||
unroff-1.0-alpha-dec-osf3.0.tar.gz</a>
|
||||
<li><a href="dist/unroff-1.0-hppa1.1-hp-hpux9.tar.gz">
|
||||
unroff-1.0-hppa1.1-hp-hpux9.tar.gz</a>
|
||||
<li><a href="dist/unroff-1.0-i486-unknown-linux1.2.8.tar.gz">
|
||||
unroff-1.0-i486-unknown-linux1.2.8.tar.gz</a>
|
||||
<li><a href="dist/unroff-1.0-m68k-next-ns3.tar.gz">
|
||||
unroff-1.0-m68k-next-ns3.tar.gz</a>
|
||||
<li><a href="dist/unroff-1.0-mips-dec-ultrix4.2.tar.gz">
|
||||
unroff-1.0-mips-dec-ultrix4.2.tar.gz</a>
|
||||
<li><a href="dist/unroff-1.0-mips-sgi-irix5.3.tar.gz">
|
||||
unroff-1.0-mips-sgi-irix5.2.tar.gz</a>
|
||||
<li><a href="dist/unroff-1.0-rs6000-ibm-aix3.2.tar.gz">
|
||||
unroff-1.0-rs6000-ibm-aix3.2.tar.gz</a>
|
||||
<li><a href="dist/unroff-1.0-sparc-sun-solaris2.tar.gz">
|
||||
unroff-1.0-sparc-sun-solaris2.tar.gz</a>
|
||||
<li><a href="dist/unroff-1.0-sparc-sun-sunos4.tar.gz">
|
||||
unroff-1.0-sparc-sun-sunos4.tar.gz</a>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>The <b>Elk 3.0 Distribution</b> is available here:
|
||||
<ul>
|
||||
<li><a href="ftp://ftp.x.org/contrib/devel_tools/elk-3.0.tar.gz">
|
||||
X Consortium Public FTP Server</a>
|
||||
<li><a href=
|
||||
"ftp://ftp.cs.indiana.edu/pub/scheme-repository/imp/elk-3.0.tar.gz">
|
||||
Scheme Repository at Indiana University</a>
|
||||
<li><a href=
|
||||
"ftp://ftp.tzi.uni-bremen.de/tzi/dmn/elk/elk-3.0.tar.gz">
|
||||
Universität Bremen, Germany</a>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<h2><a name=browse>Browsing Source, Documentation, Examples</a></h2>
|
||||
You can have a look at the unroff source code and documentation
|
||||
without having to download the distribution.<tt> </tt>
|
||||
All the HTML documents mentioned below have been
|
||||
produced with unroff from the corresponding troff source
|
||||
(observe the automatically created hypertext links in the
|
||||
Programmer's Manual).
|
||||
<p>
|
||||
<ul>
|
||||
<li><b>Source Code</b>
|
||||
<ul><li>Snoop around in the unroff 1.0 <a href="unroff-1.0">
|
||||
source tree</a>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><b>Documentation</b>
|
||||
<ul>
|
||||
<li>Manual page <b>unroff.1</b> as
|
||||
<a href="doc/unroff.1.html">HTML</a>,
|
||||
<a href="doc/unroff.1.ps">PostScript</a>,
|
||||
<a href="doc/unroff.1">source</a>
|
||||
<li>Manual page <b>unroff-html.1</b> as
|
||||
<a href="doc/unroff-html.1.html">HTML</a>,
|
||||
<a href="doc/unroff-html.1.ps">PostScript</a>,
|
||||
<a href="doc/unroff-html.1">source</a>
|
||||
<li>Manual page <b>unroff-html-man.1</b> as
|
||||
<a href="doc/unroff-html-man.1.html">HTML</a>,
|
||||
<a href="doc/unroff-html-man.1.ps">PostScript</a>,
|
||||
<a href="doc/unroff-html-man.1">source</a>
|
||||
<li>Manual page <b>unroff-html-ms.1</b> as
|
||||
<a href="doc/unroff-html-ms.1.html">HTML</a>,
|
||||
<a href="doc/unroff-html-ms.1.ps">PostScript</a>,
|
||||
<a href="doc/unroff-html-ms.1">source</a>
|
||||
<li><b>Programmer's Manual</b> as HTML
|
||||
<menu>
|
||||
<li><a href="doc/manual.html">single document</a>
|
||||
<li><a href="doc/m.html">split at level-1 headers</a>
|
||||
</menu>
|
||||
<li><b>Programmer's Manual</b> as
|
||||
<a href="doc/manual.ps">PostScript</a> or
|
||||
<a href="doc/manual.ms">source</a>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><b>More Examples</b>
|
||||
<ul>
|
||||
<li>X11R6 Release Notes in -ms format
|
||||
(<a href="examples/RELNOTES.ms">source</a>)
|
||||
<menu>
|
||||
<li><a href="examples/rel.html">
|
||||
single HTML document</a>
|
||||
<br>with user-defined TOC at end (-ms index macros)
|
||||
<li><a href="examples/r.html">
|
||||
split at level-1 headers</a>
|
||||
<br>with automatic TOC at first page
|
||||
</menu>
|
||||
<li>UNIX <a href="examples/pathconf.2.html">man page</a> with tables
|
||||
(<a href="examples/pathconf.2">pathconf.2</a>)
|
||||
<li>X11 <a href="examples/XtSetArg.3.html">man page</a> with
|
||||
user-defined macros
|
||||
(<a href="examples/XtSetArg.3">XtSetArg.3</a>)
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<h2><a name=patches>Official Patches</a></h2>
|
||||
To determine whether your source or binary unroff distribution
|
||||
needs any of the official patches,
|
||||
check out the file <a href="unroff-1.0/PATCHLEVEL">PATCHLEVEL</a>
|
||||
(a non-existent file indicates a patch level of zero).<tt> </tt>
|
||||
The distributions offered here always have the highest patchlevel.<tt> </tt>
|
||||
Patches marked with an asterisk (*) only affect the Scheme code can
|
||||
therefore be applied to the binary distribution; all other patches
|
||||
must be applied to the source distribution.
|
||||
<ul>
|
||||
<li>Currently available <b>Patches</b>
|
||||
<ul>
|
||||
<li><a href="unroff-1.0/patches/1">Patch #1</a>
|
||||
<li><a href="unroff-1.0/patches/2">Patch #2</a>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<h2><a name=news>What's New?</a></h2>
|
||||
<p>
|
||||
<i>January 28, 1996:</i> <tt> </tt><b>Unofficial Patch
|
||||
with -me support</b>
|
||||
<dl><dt><dd>
|
||||
George Helffrich (<a href="mailto:george@geology.bristol.ac.uk">
|
||||
george@geology.bristol.ac.uk</a>)
|
||||
has contributed a patch for unroff-1.0 that includes, among other things,
|
||||
an experimental implementation of a backend for the -me macros and several
|
||||
fixes for the code that deals with equations.<tt> </tt>
|
||||
A detailed table of contents of at the beginning of the
|
||||
patch kit:
|
||||
<p>
|
||||
<a href="contrib/me-misc-patch"><b>me-misc-patch</b></a>
|
||||
<i>(39 kbytes)</i> ·
|
||||
<a href="contrib/me-misc-patch.gz"><b>me-misc-patch.gz</b></a>
|
||||
<i>(11 kbytes)</i>
|
||||
</dl>
|
||||
|
||||
<p>
|
||||
<i>February 13, 1997:</i> <tt> </tt><b>Another Unofficial Patch</b>
|
||||
<dl><dt><dd>
|
||||
George Helffrich (<a href="mailto:george@geology.bristol.ac.uk">
|
||||
george@geology.bristol.ac.uk</a>)
|
||||
has contributed another large patch kit for unroff-1.0 that fixes
|
||||
several things in the -me support contributed earlier and in the -ms
|
||||
package and also adds some new functionality.
|
||||
<p>
|
||||
<a href="contrib/misc-patch-2"><b>misc-patch-2</b></a>
|
||||
<i>(79 kbytes)</i> ·
|
||||
<a href="contrib/misc-patch-2.gz"><b>misc-patch-2.gz</b></a>
|
||||
<i>(20 kbytes)</i>
|
||||
</dl>
|
||||
|
||||
<hr>
|
||||
<i>Oliver Laumann</i>  <tt> </tt> <tt> </tt> <tt> </tt>
|
||||
<a href="mailto:net@informatik.uni-bremen.de">net@informatik.uni-bremen.de</a>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,326 @@
|
|||
<html>
|
||||
<head>
|
||||
<link rev="made" href="mailto:net@informatik.uni-bremen.de">
|
||||
<title>unroff release 1.0 information</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Unroff</h1>
|
||||
<i>Unroff</i>
|
||||
is a Scheme-based, programmable, extensible troff translator
|
||||
with a back-end for the Hypertext Markup Language.<tt> </tt>
|
||||
Unroff is free software and is distributed both as source and
|
||||
as precompiled binaries.
|
||||
|
||||
<h2>Contents</h2>
|
||||
<ul>
|
||||
<li><a href="#overview">Overview</a>
|
||||
<li><a href="#troff">Unroff and Troff</a>
|
||||
<li><a href="#scheme">Unroff and Scheme</a>
|
||||
<li><a href="#hypertext">Unroff and Hypertext</a>
|
||||
<li><a href="#managing">Managing Hypertext Documents with Troff</a>
|
||||
<li><a href="#dist">Source and Binary Distributions</a>
|
||||
<li><a href="#browse">Browsing Source, Documentation, Examples</a>
|
||||
<li><a href="#patches">Patches</a>
|
||||
<li><a href="#news">What's New?</a>
|
||||
</ul>
|
||||
|
||||
<h2><a name=overview>Overview</a></h2>
|
||||
Unroff reads and parses UNIX troff documents and translates the embedded
|
||||
markup into a different format (see <b>Figure 1</b>).<tt> </tt>
|
||||
Neither the actual output format nor any knowledge about particular
|
||||
troff macro sets (-man, -ms, etc.) are hard-wired into unroff.<tt> </tt>
|
||||
Instead, the translation process is controlled by a set of
|
||||
user-supplied procedures written in the
|
||||
<a href="http://www-swiss.ai.mit.edu/scheme-home.html"><i>Scheme</i></a>
|
||||
programming language.
|
||||
<p>
|
||||
Translation rules for new output formats and troff macro packages can
|
||||
be added easily by providing a corresponding set of Scheme procedures
|
||||
(a ``back-end'').<tt> </tt>
|
||||
Version 1.0 of unroff includes back-ends for translating
|
||||
documents using the ``man'' and ``ms'' macros into the Hypertext Markup
|
||||
Language (HTML) version 2.0.<tt> </tt>
|
||||
Additional requests facilitate use of arbitrary hypertext links in
|
||||
troff documents.
|
||||
<p>
|
||||
<hr>
|
||||
<img src=fig1.gif alt="[Overview of unroff functionality]">
|
||||
<hr>
|
||||
|
||||
<h2><a name=troff>Unroff and Troff</a></h2>
|
||||
<p>
|
||||
In contrast to conventional troff ``converters'' (usually Perl scripts
|
||||
some of which process nroff output) unroff includes a full troff parser
|
||||
and closely mimics the troff processing engine.<tt> </tt>
|
||||
This enables unroff to handle user-defined macros, strings, and
|
||||
number registers, nested if-else requests, arbitrary fonts and font
|
||||
positions, low-level formatting requests such as \l, \c, and \h, and
|
||||
idiosyncrasies such as troff <i>copy mode</i> and the subtle differences
|
||||
between request and macro invocations.<tt> </tt>
|
||||
Unroff has adopted a number of <i>groff</i> extensions, among them long names
|
||||
for macros, strings, number registers, and special characters, and the
|
||||
escape sequences \$@ and \$*.
|
||||
|
||||
<h2><a name=scheme>Unroff and Scheme</a></h2>
|
||||
Unroff uses
|
||||
<a href="http://www.informatik.uni-bremen.de/~net/elk"><i>Elk</i></a>,
|
||||
the Scheme-based Extension Language Kit, to achieve
|
||||
programmability (see <b>Figure 2</b>).<tt> </tt>
|
||||
It includes a full Scheme language implementation
|
||||
with the usual amenities such as garbage collection, interactive
|
||||
programming and testing, and dynamic loading.<tt> </tt>
|
||||
To help writing new unroff back-ends, unroff has augmented
|
||||
standard Scheme by a set of new Scheme data types
|
||||
and primitives.
|
||||
<p>
|
||||
<hr>
|
||||
<img src=fig2.gif alt="[unroff and Elk/Scheme-code relationship]">
|
||||
<hr>
|
||||
<p>
|
||||
A new troff request and an extension to the `.ig' request allow for
|
||||
Scheme code to be embedded in troff documents; the code is then
|
||||
evaluated on the fly as the documents are processed by unroff.
|
||||
<p>
|
||||
Unroff may be viewed as a prototype for hybrid applications that use
|
||||
Scheme (in particular Elk) as their extension language.<tt> </tt>
|
||||
Approximately half of its source consists of portable ANSI C code,
|
||||
and the other half is written in Scheme and can be configured and
|
||||
tailored easily without the need to recompile unroff.<tt> </tt>
|
||||
Authors of Elk-based applications are encouraged to look into the
|
||||
source code or reuse parts of it for their own projects.
|
||||
<p>
|
||||
As the time-critical Scheme primitives provided of unroff have been
|
||||
coded in (efficient) C, its performance comes close to that of nroff
|
||||
processing the same troff input.
|
||||
|
||||
<h2><a name=hypertext>Unroff and Hypertext</a></h2>
|
||||
troff documents that were originally written without intentions to
|
||||
make them available in the World Wide Web (such as UNIX manual pages)
|
||||
can easily be translated to the Hypertext Markup Language using the
|
||||
predefined HTML back-ends.
|
||||
<p>
|
||||
As unroff closely simulates ordinary troff, even large or complex
|
||||
documents (like technical reports or theses with many user-defined
|
||||
macros) can be translated to HTML automatically without having to
|
||||
add any structural cues to the documents.
|
||||
<p>
|
||||
The ``-man'' support has been tested with several hundred vendor- and
|
||||
user-supplied manual pages and has produced good results in all but
|
||||
less than a dozen cases (a few manual pages were found to make excessive
|
||||
use of low-level troff constructs or to include <i>tbl</i> output verbatim).
|
||||
|
||||
<h2><a name=managing>Managing Hypertext Documents with Troff</a></h2>
|
||||
Authors can benefit from unroff not only as a converter for existing
|
||||
documents, but also when writing new documents that must exist both
|
||||
in high-quality paper form and in the World Wide Web as hypertext.
|
||||
<p>
|
||||
Rather than writing hypertext documents directly in HTML (which is
|
||||
cumbersome for long or complex texts), authors can continue using
|
||||
ordinary troff together with the usual preprocessors and macro
|
||||
packages.<tt> </tt>
|
||||
Unroff is then employed to produce the WWW form, while troff is used
|
||||
in the normal way to typeset the same text, producing the printed
|
||||
version (or, using nroff, an ASCII version if desired).
|
||||
<p>
|
||||
In this way authors of hypertext documents can take full advantage of
|
||||
the usual troff facilities such as user-defined macros, conditional text,
|
||||
tables, equations, and drawings, automatic table of contents generation,
|
||||
footnotes/endnotes, indexes, etc., none of which are available when
|
||||
composing documents directly in plain HTML.
|
||||
<p>
|
||||
Two new troff requests for embedding hypertext links in troff documents
|
||||
are provided by the unroff HTML back-end.<tt> </tt>
|
||||
Arbitrary forward and backward references using symbolic labels
|
||||
(rather than actual file names) among
|
||||
groups of troff source files are supported (see <b>Figure 3</b>).<tt> </tt>
|
||||
Another new request and another extension to `.ig' allow for HTML code
|
||||
to be embedded directly in troff documents.<tt> </tt>
|
||||
The hypertext capabilities are demonstrated by the troff source of the
|
||||
Programmer's Manual that is part of the unroff distribution.
|
||||
<p>
|
||||
<hr>
|
||||
<img src=fig3.gif alt="[troff document with hypertext links]">
|
||||
<hr>
|
||||
|
||||
<h2><a name=dist>Source and Binary Distributions</a></h2>
|
||||
You need Elk 2.2 or
|
||||
<a href="http://www.informatik.uni-bremen.de/~net/elk">Elk 3.0</a>
|
||||
and an ANSI C compiler to compile and
|
||||
install unroff from the source distribution.
|
||||
<p>
|
||||
If you do not have Elk at your site and do not want
|
||||
to install it, or if you just wish to have a quick look at unroff,
|
||||
download the binary distribution for your system.<tt> </tt>
|
||||
Otherwise, use of the source distribution is recommended.
|
||||
<p>
|
||||
The unroff executable is linked dynamically in the binary distributions
|
||||
for systems with shared libraries.<tt> </tt>
|
||||
Please send a message to
|
||||
<a href="mailto:net@informatik.uni-bremen.de">net@informatik.uni-bremen.de</a>
|
||||
if you need a statically linked version, or if you think that statically
|
||||
linked executables should be offered in addition to or in place of
|
||||
the dynamically linked ones (or if you need an entirely different format).
|
||||
<p>
|
||||
<ul>
|
||||
<li><b>Source Distribution</b> (about 80 Kbytes)
|
||||
<ul>
|
||||
<li><a href="dist/unroff-1.0.tar.gz">unroff-1.0.tar.gz</a>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><b>Binary Distributions</b> (about 200 Kbytes each)
|
||||
<ul>
|
||||
<li><a href="dist/unroff-1.0-alpha-dec-osf3.0.tar.gz">
|
||||
unroff-1.0-alpha-dec-osf3.0.tar.gz</a>
|
||||
<li><a href="dist/unroff-1.0-hppa1.1-hp-hpux9.tar.gz">
|
||||
unroff-1.0-hppa1.1-hp-hpux9.tar.gz</a>
|
||||
<li><a href="dist/unroff-1.0-i486-unknown-linux1.2.8.tar.gz">
|
||||
unroff-1.0-i486-unknown-linux1.2.8.tar.gz</a>
|
||||
<li><a href="dist/unroff-1.0-m68k-next-ns3.tar.gz">
|
||||
unroff-1.0-m68k-next-ns3.tar.gz</a>
|
||||
<li><a href="dist/unroff-1.0-mips-dec-ultrix4.2.tar.gz">
|
||||
unroff-1.0-mips-dec-ultrix4.2.tar.gz</a>
|
||||
<li><a href="dist/unroff-1.0-mips-sgi-irix5.3.tar.gz">
|
||||
unroff-1.0-mips-sgi-irix5.2.tar.gz</a>
|
||||
<li><a href="dist/unroff-1.0-rs6000-ibm-aix3.2.tar.gz">
|
||||
unroff-1.0-rs6000-ibm-aix3.2.tar.gz</a>
|
||||
<li><a href="dist/unroff-1.0-sparc-sun-solaris2.tar.gz">
|
||||
unroff-1.0-sparc-sun-solaris2.tar.gz</a>
|
||||
<li><a href="dist/unroff-1.0-sparc-sun-sunos4.tar.gz">
|
||||
unroff-1.0-sparc-sun-sunos4.tar.gz</a>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>The <b>Elk 3.0 Distribution</b> is available here:
|
||||
<ul>
|
||||
<li><a href="ftp://ftp.x.org/contrib/devel_tools/elk-3.0.tar.gz">
|
||||
X Consortium Public FTP Server</a>
|
||||
<li><a href=
|
||||
"ftp://ftp.cs.indiana.edu/pub/scheme-repository/imp/elk-3.0.tar.gz">
|
||||
Scheme Repository at Indiana University</a>
|
||||
<li><a href=
|
||||
"ftp://ftp.tzi.uni-bremen.de/tzi/dmn/elk/elk-3.0.tar.gz">
|
||||
Universität Bremen, Germany</a>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<h2><a name=browse>Browsing Source, Documentation, Examples</a></h2>
|
||||
You can have a look at the unroff source code and documentation
|
||||
without having to download the distribution.<tt> </tt>
|
||||
All the HTML documents mentioned below have been
|
||||
produced with unroff from the corresponding troff source
|
||||
(observe the automatically created hypertext links in the
|
||||
Programmer's Manual).
|
||||
<p>
|
||||
<ul>
|
||||
<li><b>Source Code</b>
|
||||
<ul><li>Snoop around in the unroff 1.0 <a href="unroff-1.0">
|
||||
source tree</a>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><b>Documentation</b>
|
||||
<ul>
|
||||
<li>Manual page <b>unroff.1</b> as
|
||||
<a href="doc/unroff.1.html">HTML</a>,
|
||||
<a href="doc/unroff.1.ps">PostScript</a>,
|
||||
<a href="doc/unroff.1">source</a>
|
||||
<li>Manual page <b>unroff-html.1</b> as
|
||||
<a href="doc/unroff-html.1.html">HTML</a>,
|
||||
<a href="doc/unroff-html.1.ps">PostScript</a>,
|
||||
<a href="doc/unroff-html.1">source</a>
|
||||
<li>Manual page <b>unroff-html-man.1</b> as
|
||||
<a href="doc/unroff-html-man.1.html">HTML</a>,
|
||||
<a href="doc/unroff-html-man.1.ps">PostScript</a>,
|
||||
<a href="doc/unroff-html-man.1">source</a>
|
||||
<li>Manual page <b>unroff-html-ms.1</b> as
|
||||
<a href="doc/unroff-html-ms.1.html">HTML</a>,
|
||||
<a href="doc/unroff-html-ms.1.ps">PostScript</a>,
|
||||
<a href="doc/unroff-html-ms.1">source</a>
|
||||
<li><b>Programmer's Manual</b> as HTML
|
||||
<menu>
|
||||
<li><a href="doc/manual.html">single document</a>
|
||||
<li><a href="doc/m.html">split at level-1 headers</a>
|
||||
</menu>
|
||||
<li><b>Programmer's Manual</b> as
|
||||
<a href="doc/manual.ps">PostScript</a> or
|
||||
<a href="doc/manual.ms">source</a>
|
||||
</ul>
|
||||
</ul>
|
||||
<ul>
|
||||
<li><b>More Examples</b>
|
||||
<ul>
|
||||
<li>X11R6 Release Notes in -ms format
|
||||
(<a href="examples/RELNOTES.ms">source</a>)
|
||||
<menu>
|
||||
<li><a href="examples/rel.html">
|
||||
single HTML document</a>
|
||||
<br>with user-defined TOC at end (-ms index macros)
|
||||
<li><a href="examples/r.html">
|
||||
split at level-1 headers</a>
|
||||
<br>with automatic TOC at first page
|
||||
</menu>
|
||||
<li>UNIX <a href="examples/pathconf.2.html">man page</a> with tables
|
||||
(<a href="examples/pathconf.2">pathconf.2</a>)
|
||||
<li>X11 <a href="examples/XtSetArg.3.html">man page</a> with
|
||||
user-defined macros
|
||||
(<a href="examples/XtSetArg.3">XtSetArg.3</a>)
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<h2><a name=patches>Official Patches</a></h2>
|
||||
To determine whether your source or binary unroff distribution
|
||||
needs any of the official patches,
|
||||
check out the file <a href="unroff-1.0/PATCHLEVEL">PATCHLEVEL</a>
|
||||
(a non-existent file indicates a patch level of zero).<tt> </tt>
|
||||
The distributions offered here always have the highest patchlevel.<tt> </tt>
|
||||
Patches marked with an asterisk (*) only affect the Scheme code can
|
||||
therefore be applied to the binary distribution; all other patches
|
||||
must be applied to the source distribution.
|
||||
<ul>
|
||||
<li>Currently available <b>Patches</b>
|
||||
<ul>
|
||||
<li><a href="unroff-1.0/patches/1">Patch #1</a>
|
||||
<li><a href="unroff-1.0/patches/2">Patch #2</a>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<h2><a name=news>What's New?</a></h2>
|
||||
<p>
|
||||
<i>January 28, 1996:</i> <tt> </tt><b>Unofficial Patch
|
||||
with -me support</b>
|
||||
<dl><dt><dd>
|
||||
George Helffrich (<a href="mailto:george@geology.bristol.ac.uk">
|
||||
george@geology.bristol.ac.uk</a>)
|
||||
has contributed a patch for unroff-1.0 that includes, among other things,
|
||||
an experimental implementation of a backend for the -me macros and several
|
||||
fixes for the code that deals with equations.<tt> </tt>
|
||||
A detailed table of contents of at the beginning of the
|
||||
patch kit:
|
||||
<p>
|
||||
<a href="contrib/me-misc-patch"><b>me-misc-patch</b></a>
|
||||
<i>(39 kbytes)</i> ·
|
||||
<a href="contrib/me-misc-patch.gz"><b>me-misc-patch.gz</b></a>
|
||||
<i>(11 kbytes)</i>
|
||||
</dl>
|
||||
|
||||
<p>
|
||||
<i>February 13, 1997:</i> <tt> </tt><b>Another Unofficial Patch</b>
|
||||
<dl><dt><dd>
|
||||
George Helffrich (<a href="mailto:george@geology.bristol.ac.uk">
|
||||
george@geology.bristol.ac.uk</a>)
|
||||
has contributed another large patch kit for unroff-1.0 that fixes
|
||||
several things in the -me support contributed earlier and in the -ms
|
||||
package and also adds some new functionality.
|
||||
<p>
|
||||
<a href="contrib/misc-patch-2"><b>misc-patch-2</b></a>
|
||||
<i>(79 kbytes)</i> ·
|
||||
<a href="contrib/misc-patch-2.gz"><b>misc-patch-2.gz</b></a>
|
||||
<i>(20 kbytes)</i>
|
||||
</dl>
|
||||
|
||||
<hr>
|
||||
<i>Oliver Laumann</i>  <tt> </tt> <tt> </tt> <tt> </tt>
|
||||
<a href="mailto:net@informatik.uni-bremen.de">net@informatik.uni-bremen.de</a>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Reference in New Issue