ref:
- 新版本的troff(因为是device independent troff被称为ditroff)具有了几项扩展,其中包含了绘图函数。该版在贝尔实验室的一篇题为《一个与排版机无关的troff》的计算机科学技术报告中得到描述,该报告经gzip压缩的PostScript版可在计算机科学技术网这里获得。该文章定义了ditroff的输出格式,该格式被像GNUgroff这样的许多现代troff的克隆版本所使用。
- ...
%!PS | |
%%Version: 3.3.1 | |
%%DocumentFonts: (atend) | |
%%Pages: (atend) | |
%%EndComments | |
% | |
% Version 3.3.1 prologue for troff files. | |
% | |
/#copies 1 store | |
/aspectratio 1 def | |
/formsperpage 1 def | |
/landscape false def | |
/linewidth .3 def | |
/magnification 1 def | |
/margin 0 def | |
/orientation 0 def | |
/resolution 720 def | |
/rotation 1 def | |
/xoffset 0 def | |
/yoffset 0 def | |
/roundpage true def | |
/useclippath true def | |
/pagebbox [0 0 612 792] def | |
/R /Times-Roman def | |
/I /Times-Italic def | |
/B /Times-Bold def | |
/BI /Times-BoldItalic def | |
/H /Helvetica def | |
/HI /Helvetica-Oblique def | |
/HB /Helvetica-Bold def | |
/HX /Helvetica-BoldOblique def | |
/CW /Courier def | |
/CO /Courier def | |
/CI /Courier-Oblique def | |
/CB /Courier-Bold def | |
/CX /Courier-BoldOblique def | |
/PA /Palatino-Roman def | |
/PI /Palatino-Italic def | |
/PB /Palatino-Bold def | |
/PX /Palatino-BoldItalic def | |
/Hr /Helvetica-Narrow def | |
/Hi /Helvetica-Narrow-Oblique def | |
/Hb /Helvetica-Narrow-Bold def | |
/Hx /Helvetica-Narrow-BoldOblique def | |
/KR /Bookman-Light def | |
/KI /Bookman-LightItalic def | |
/KB /Bookman-Demi def | |
/KX /Bookman-DemiItalic def | |
/AR /AvantGarde-Book def | |
/AI /AvantGarde-BookOblique def | |
/AB /AvantGarde-Demi def | |
/AX /AvantGarde-DemiOblique def | |
/NR /NewCenturySchlbk-Roman def | |
/NI /NewCenturySchlbk-Italic def | |
/NB /NewCenturySchlbk-Bold def | |
/NX /NewCenturySchlbk-BoldItalic def | |
/ZD /ZapfDingbats def | |
/ZI /ZapfChancery-MediumItalic def | |
/S /S def | |
/S1 /S1 def | |
/GR /Symbol def | |
/inch {72 mul} bind def | |
/min {2 copy gt {exch} if pop} bind def | |
/setup { | |
counttomark 2 idiv {def} repeat pop | |
landscape {/orientation 90 orientation add def} if | |
/scaling 72 resolution div def | |
linewidth setlinewidth | |
1 setlinecap | |
pagedimensions | |
xcenter ycenter translate | |
orientation rotation mul rotate | |
width 2 div neg height 2 div translate | |
xoffset inch yoffset inch neg translate | |
margin 2 div dup neg translate | |
magnification dup aspectratio mul scale | |
scaling scaling scale | |
addmetrics | |
0 0 moveto | |
} def | |
/pagedimensions { | |
useclippath userdict /gotpagebbox known not and { | |
/pagebbox [clippath pathbbox newpath] def | |
roundpage currentdict /roundpagebbox known and {roundpagebbox} if | |
} if | |
pagebbox aload pop | |
4 -1 roll exch 4 1 roll 4 copy | |
landscape {4 2 roll} if | |
sub /width exch def | |
sub /height exch def | |
add 2 div /xcenter exch def | |
add 2 div /ycenter exch def | |
userdict /gotpagebbox true put | |
} def | |
/addmetrics { | |
/Symbol /S null Sdefs cf | |
/Times-Roman /S1 StandardEncoding dup length array copy S1defs cf | |
} def | |
/pagesetup { | |
/page exch def | |
currentdict /pagedict known currentdict page known and { | |
page load pagedict exch get cvx exec | |
} if | |
} def | |
/decodingdefs [ | |
{counttomark 2 idiv {y moveto show} repeat} | |
{neg /y exch def counttomark 2 idiv {y moveto show} repeat} | |
{neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat} | |
{neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat} | |
{counttomark 2 idiv {y moveto show} repeat} | |
{neg setfunnytext} | |
] def | |
/setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def | |
/w {neg moveto show} bind def | |
/m {neg dup /y exch def moveto} bind def | |
/done {/lastpage where {pop lastpage} if} def | |
/f { | |
dup /font exch def findfont exch | |
dup /ptsize exch def scaling div dup /size exch def scalefont setfont | |
linewidth ptsize mul scaling 10 mul div setlinewidth | |
/spacewidth ( ) stringwidth pop def | |
} bind def | |
/changefont { | |
/fontheight exch def | |
/fontslant exch def | |
currentfont [ | |
1 0 | |
fontheight ptsize div fontslant sin mul fontslant cos div | |
fontheight ptsize div | |
0 0 | |
] makefont setfont | |
} bind def | |
/sf {f} bind def | |
/cf { | |
dup length 2 idiv | |
/entries exch def | |
/chtab exch def | |
/newencoding exch def | |
/newfont exch def | |
findfont dup length 1 add dict | |
/newdict exch def | |
{1 index /FID ne {newdict 3 1 roll put}{pop pop} ifelse} forall | |
newencoding type /arraytype eq {newdict /Encoding newencoding put} if | |
newdict /Metrics entries dict put | |
newdict /Metrics get | |
begin | |
chtab aload pop | |
1 1 entries {pop def} for | |
newfont newdict definefont pop | |
end | |
} bind def | |
% | |
% A few arrays used to adjust reference points and character widths in some | |
% of the printer resident fonts. If square roots are too high try changing | |
% the lines describing /radical and /radicalex to, | |
% | |
% /radical [0 -75 550 0] | |
% /radicalex [-50 -75 500 0] | |
% | |
% Move braceleftbt a bit - default PostScript character is off a bit. | |
% | |
/Sdefs [ | |
/bracketlefttp [201 500] | |
/bracketleftbt [201 500] | |
/bracketrighttp [-81 380] | |
/bracketrightbt [-83 380] | |
/braceleftbt [203 490] | |
/bracketrightex [220 -125 500 0] | |
/radical [0 0 550 0] | |
/radicalex [-50 0 500 0] | |
/parenleftex [-20 -170 0 0] | |
/integral [100 -50 500 0] | |
/infinity [10 -75 730 0] | |
] def | |
/S1defs [ | |
/underscore [0 80 500 0] | |
/endash [7 90 650 0] | |
] def | |
% | |
% Tries to round clipping path dimensions, as stored in array pagebbox, so they | |
% match one of the known sizes in the papersizes array. Lower left coordinates | |
% are always set to 0. | |
% | |
/roundpagebbox { | |
7 dict begin | |
/papersizes [8.5 inch 11 inch 14 inch 17 inch] def | |
/mappapersize { | |
/val exch def | |
/slop .5 inch def | |
/diff slop def | |
/j 0 def | |
0 1 papersizes length 1 sub { | |
/i exch def | |
papersizes i get val sub abs | |
dup diff le {/diff exch def /j i def} {pop} ifelse | |
} for | |
diff slop lt {papersizes j get} {val} ifelse | |
} def | |
pagebbox 0 0 put | |
pagebbox 1 0 put | |
pagebbox dup 2 get mappapersize 2 exch put | |
pagebbox dup 3 get mappapersize 3 exch put | |
end | |
} bind def | |
%%EndProlog | |
%%BeginSetup | |
mark | |
/resolution 720 def | |
setup | |
2 setdecoding | |
%%EndSetup | |
%%Page: 0 1 | |
/saveobj save def | |
mark | |
1 pagesetup | |
10 PA f | |
(AT&T Bell Laboratories)2 1053 1 2353 1740 t | |
(Murray Hill, New Jersey 07974)4 1367 1 2196 1860 t | |
(Computing Science Technical Report No. 97)5 1946 1 1907 3180 t | |
12 PB f | |
(A Typesetter-independent TROFF)2 1872 1 1944 3450 t | |
10 PI f | |
(Brian W. Kernighan)2 826 1 2467 3690 t | |
10 PA f | |
(Revised, March, 1982)2 938 1 720 6240 t | |
cleartomark | |
showpage | |
saveobj restore | |
%%EndPage: 0 1 | |
%%Page: 0 2 | |
/saveobj save def | |
mark | |
2 pagesetup | |
12 PB f | |
(A Typesetter-independent TROFF)2 1872 1 1944 1230 t | |
10 PI f | |
(Brian W. Kernighan)2 826 1 2467 1470 t | |
10 PA f | |
(AT&T Bell Laboratories)2 1053 1 2353 1650 t | |
(Murray Hill, New Jersey 07974)4 1367 1 2196 1770 t | |
10 PI f | |
(ABSTRACT)2621 2270 w | |
10 PA f | |
(Although)1330 2566 w | |
8 PA f | |
(TROFF)1802 2566 w | |
10 PA f | |
( of document preparation at Bell)5 1538(has been the mainstay)3 1039 2 2103 2566 t | |
( very dependent on one particular)5 1559(Labs for several years, it has heretofore been)7 2041 2 1080 2686 t | |
(typesetter, the Graphic Systems CAT.)4 1659 1 1080 2806 t | |
( describes conversion of)3 1072(This paper)1 477 2 1330 2962 t | |
8 PA f | |
(TROFF)2909 2962 w | |
10 PA f | |
(to deal with a wide class of type-)7 1485 1 3195 2962 t | |
(setters.)1080 3082 w | |
( these typesetters provide many more facilities than the CAT does.)10 2989(Some of)1 361 2 1330 3238 t | |
( more sizes and fonts, larger alphabets, and the)8 2230(Typical extra features include)3 1370 2 1080 3358 t | |
( paper)1 317( The)1 251( create new characters and to draw graphical objects.)8 2605(ability to)1 427 4 1080 3478 t | |
(describes the enhancements that permit)4 1761 1 1080 3598 t | |
8 PA f | |
(TROFF)2867 3598 w | |
10 PA f | |
(to take advantage of some of these)6 1531 1 3149 3598 t | |
(capabilities as well.)2 854 1 1080 3718 t | |
(Revised, March, 1982)2 938 1 720 4198 t | |
cleartomark | |
showpage | |
saveobj restore | |
%%EndPage: 0 2 | |
%%Page: 1 3 | |
/saveobj save def | |
mark | |
3 pagesetup | |
12 PB f | |
(A Typesetter-independent TROFF)2 1872 1 1944 1230 t | |
10 PI f | |
(Brian W. Kernighan)2 826 1 2467 1470 t | |
10 PA f | |
(AT&T Bell Laboratories)2 1053 1 2353 1650 t | |
(Murray Hill, New Jersey 07974)4 1367 1 2196 1770 t | |
10 PB f | |
( Bit of History)3 647(1. A)1 203 2 720 2130 t | |
10 PA f | |
( be speaking today about work in progress, instead of completed research; this)12 3531(``I will)1 289 2 970 2322 t | |
( fact is I)3 352(was not my original intention when I chose the subject of this lecture, but the)14 3468 2 970 2442 t | |
(couldn't get my computer programs working in time.'')7 2426 1 970 2562 t | |
(Donald E. Knuth)2 748 1 3850 2742 t | |
8 PA f | |
(1)4598 2710 w | |
10 PA f | |
(The)970 2934 w | |
8 PA f | |
(TROFF)1171 2934 w | |
10 PA f | |
(text formatter)1 620 1 1461 2934 t | |
8 PA f | |
(2)2081 2902 w | |
10 PA f | |
( in about 1973, in)4 792(was originally written by the late Joe Ossanna)7 2093 2 2155 2934 t | |
( \()1 102(assembly language for the PDP-11.)4 1615 2 720 3054 t | |
8 PA f | |
(NROFF)2437 3054 w | |
10 PA f | |
(, which drives terminals instead of a typesetter, is)8 2330 1 2710 3054 t | |
(essentially identical to)2 985 1 720 3174 t | |
8 PA f | |
(TROFF)1731 3174 w | |
10 PA f | |
( will use ``)3 457(; we)1 182 2 1987 3174 t | |
8 PA f | |
(TROFF)2626 3174 w | |
10 PA f | |
( was rewritten)2 641( It)1 119('' as a generic term henceforth.\))5 1398 3 2882 3174 t | |
(in C around 1975, and underwent slow but steady evolution until Ossanna's death late in 1977.)15 4190 1 720 3294 t | |
( of some obvious deficiencies \320 a rebarbative input syntax, mysterious and undocu-)12 3741(In spite)1 329 2 970 3450 t | |
( for computer resources \(especially)4 1607(mented properties in some areas, and a voracious appetite)8 2713 2 720 3570 t | |
( macro packages and preprocessors like)5 1765(when used with)2 713 2 720 3690 t | |
8 PA f | |
(EQN)3225 3690 w | |
10 PA f | |
(and)3430 3690 w | |
8 PA f | |
(TBL)3626 3690 w | |
10 PA f | |
(\) \320)1 160 1 3773 3690 t | |
8 PA f | |
(TROFF)3960 3690 w | |
10 PA f | |
(has been the basis)3 797 1 4243 3690 t | |
(of document preparation at Bell Labs for some years, and is likely to remain so for years to come.)18 4285 1 720 3810 t | |
( to acquire a new typesetter,)5 1270(Early in 1979, the Computing Science Research Center decided)8 2800 2 970 3966 t | |
( Hill)1 210( the same time, the Murray)5 1275( At)1 177(primarily because of our interests in typesetting graphics.)7 2658 4 720 4086 t | |
(Computer Center began to investigate the possibility of replacing their family of aging CAT's)13 4320 1 720 4206 t | |
(with a new, high-performance typesetter, simply to keep up with their rapidly expanding load.)13 4208 1 720 4326 t | |
( would be a glorious)4 987(My first thought \(a thought shared by many others\) was that this)11 3083 2 970 4482 t | |
(opportunity to replace)2 1024 1 720 4602 t | |
8 PA f | |
(TROFF)1783 4602 w | |
10 PA f | |
( to work)2 398(with a new formatting language: better designed, easier)7 2564 2 2078 4602 t | |
( remains a desirable goal, but, after quite a bit of thought)11 2607( This)1 249( of course much faster.)4 1034(with, and)1 430 4 720 4722 t | |
( really much closer to a better design, let alone an imple-)11 2549(spread over several years, I am still not)7 1771 2 720 4842 t | |
( a great deal of software depends on)7 1708(mentation. Furthermore,)1 1133 2 720 4962 t | |
8 PA f | |
(TROFF)3601 4962 w | |
10 PA f | |
(\320 the preprocessors, the)3 1142 1 3898 4962 t | |
( Toss-)1 290(macro packages, and of course all of their documentation and our accumulated expertise.)12 4030 2 720 5082 t | |
(ing this aside is not something to be done lightly.)9 2172 1 720 5202 t | |
(Accordingly, in the spring of 1979, I set about to modify)10 2529 1 970 5358 t | |
8 PA f | |
(TROFF)3530 5358 w | |
10 PA f | |
(so that it would run hence-)5 1223 1 3817 5358 t | |
( ground rule was that)4 988( The)1 225( a variety of typesetters.)4 1090(forth without change on)3 1099 4 720 5478 t | |
8 PA f | |
(TROFF)4155 5478 w | |
10 PA f | |
(should retain)1 596 1 4444 5478 t | |
(its current specifications, so that existing software like)7 2450 1 720 5598 t | |
8 PA f | |
(EQN)3204 5598 w | |
10 PA f | |
(,)3382 5598 w | |
8 PA f | |
(TBL)3441 5598 w | |
10 PA f | |
( macro packages would)3 1076(and the)1 342 2 3622 5598 t | |
(continue to work with it.)4 1097 1 720 5718 t | |
( main-)1 284(Since much of the rest of this paper is encrusted with details that could appeal only to)16 3786 2 970 5874 t | |
( Non-specialists)1 737( a brief summary of what has been done.)8 1877(tainers or masochists, I will give here)6 1706 3 720 5994 t | |
(can stop reading at the end of the section.)8 1834 1 720 6114 t | |
8 PA f | |
(TROFF)970 6270 w | |
10 PA f | |
( just in details of)4 789(is highly dependent on the Graphic Systems CAT typesetter, not)9 2985 2 1266 6270 t | |
( largely)1 356( language design issues have been)5 1630( The)1 241(code but also in many aspects of its design.)8 2093 4 720 6390 t | |
( that dependencies are)3 1010(ignored \(few are truly fundamental\), while the code has been modified so)11 3310 2 720 6510 t | |
(either eliminated or at least parameterized.)5 1904 1 720 6630 t | |
8 PA f | |
(TROFF)970 6786 w | |
10 PA f | |
( the typesetter compiled into the code, often in non-)9 2455(originally had parameters of)3 1316 2 1269 6786 t | |
( invoked, to set values for)5 1177( new version reads a parameter file each time it is)10 2275( The)1 226(obvious ways.)1 642 4 720 6906 t | |
(machine resolution, legal sizes, fonts and characters, character widths and the like.)11 3644 1 720 7026 t | |
8 PA f | |
(TROFF)970 7182 w | |
10 PA f | |
( beyond)1 386(output used to be binary device codes specific to the CAT and arcane)12 3376 2 1278 7182 t | |
( output of the new version is)6 1302(description. The)1 747 2 720 7302 t | |
8 PA f | |
(ASCII)2800 7302 w | |
10 PA f | |
(characters in a simple and \(I hope\) universal)7 1994 1 3046 7302 t | |
cleartomark | |
showpage | |
saveobj restore | |
%%EndPage: 1 3 | |
%%Page: 2 4 | |
/saveobj save def | |
mark | |
4 pagesetup | |
10 PA f | |
(- 2 -)2 166 1 2797 480 t | |
( post-)1 255( A)1 135(language that describes where each character is to be placed and in what size and font.)15 3930 3 720 840 t | |
( this typesetter-independent language)3 1725(processor must be written for each typesetter to convert)8 2595 2 720 960 t | |
( currently exist for the CAT, the Mergen-)7 1876( Post-processors)1 751( typesetter.)1 501(into specific codes for that)4 1192 4 720 1080 t | |
( Tektronix 4014 terminal, The Imagen Canon laser)7 2272(thaler Linotron 202, the Autologic APS-5, the)6 2048 2 720 1200 t | |
( ones can generally be written in less than)8 1851( New)1 265( bit-map terminal.)2 800(printer, Versatec printers, and a)4 1404 4 720 1320 t | |
(a day; they share much of their code with previous ones.)10 2500 1 720 1440 t | |
( the older)2 442(The new output language contains information that is not readily identifiable in)11 3628 2 970 1596 t | |
( the beginning of each page and line is marked, so post-processors can do)13 3319( notably,)1 393(output. Most)1 608 3 720 1716 t | |
( it boustrophedo-)2 815(device-specific optimizations such as sorting the data vertically or printing)9 3505 2 720 1836 t | |
(nically, independently of)2 1105 1 720 1956 t | |
8 PA f | |
(TROFF)1850 1956 w | |
10 PA f | |
(.)2106 1956 w | |
(Since actual output is done by a post-processor, not)8 2393 1 970 2112 t | |
8 PA f | |
(TROFF)3403 2112 w | |
10 PA f | |
( for graphics)2 589(, new capabilities)2 792 2 3659 2112 t | |
( easy to add.)3 610(have been)1 465 2 720 2232 t | |
8 PA f | |
(TROFF)1863 2232 w | |
10 PA f | |
(now recognizes commands for drawing diagonal lines, circles,)7 2878 1 2162 2232 t | |
(ellipses, circular arcs, and quadratic B-splines; these are used in the PIC)11 3152 1 720 2352 t | |
8 PA f | |
(3)3872 2320 w | |
10 PA f | |
(and IDEAL)1 505 1 3937 2352 t | |
8 PA f | |
(4)4442 2320 w | |
10 PA f | |
(languages.)4507 2352 w | |
( document may have an arbitrary)5 1484( A)1 129( been eased or eliminated.)4 1155(A number of limitations have)4 1302 4 970 2508 t | |
( accessed)1 410( may be)2 361( Fonts)1 301(number of fonts on any page \(if the output device permits it, of course\).)13 3248 4 720 2628 t | |
( Character)1 489( them; ``mounting'' is no longer necessary.)6 1904(merely by naming)2 817 3 720 2748 t | |
10 PA f | |
0 8 changefont | |
(height)3960 2748 w | |
10 PA f | |
(and)4272 2748 w | |
10 PA f | |
-10 10 changefont | |
(sl)4471 2748 w | |
10 PA f | |
(a)4542 2748 w | |
10 PA f | |
10 10 changefont | |
(nt)4592 2748 w | |
10 PA f | |
(may be)1 327 1 4713 2748 t | |
(set independently of width.)3 1222 1 720 2868 t | |
(The new)1 382 1 970 3024 t | |
8 PA f | |
(TROFF)1378 3024 w | |
10 PA f | |
( 1000 bytes larger in instruction space and 13000 bytes larger in data)12 3030(is about)1 350 2 1660 3024 t | |
( runs about as fast)4 819( It)1 121( PDP-11/40 style machines\).)3 1261(space \(thus guaranteeing that it will not run on)8 2119 4 720 3144 t | |
( I made could be retrofitted into the)7 1659(as the original version, though a simple improvement that)8 2661 2 720 3264 t | |
( in these time)3 625( post-processors are not included)4 1517( The)1 230(earlier version to keep it about 20% faster.)7 1948 4 720 3384 t | |
(comparisons; they typically take 10-20% of the)6 2050 1 720 3504 t | |
8 PA f | |
(TROFF)2795 3504 w | |
10 PA f | |
(time.)3076 3504 w | |
10 PB f | |
( Dependencies)1 673(2. Typesetter)1 608 2 720 3744 t | |
8 PA f | |
(TROFF)970 3900 w | |
10 PA f | |
( dependent on the Graphic Systems CAT, not just in the)10 2541(turns out to be surprisingly)4 1241 2 1258 3900 t | |
(code but in its design.)4 966 1 720 4020 t | |
( example, the CAT provides four)5 1488( For)1 208( pretty obvious.)2 711(Some of the design dependencies are)5 1663 4 970 4176 t | |
( specific sizes are wired into the syntax of the lan-)10 2221( The)1 220( and 15 sizes.)3 589(fonts \(of 102 characters each\))4 1290 4 720 4296 t | |
( than 36 points,)3 706(guage: since the CAT has no sizes larger)7 1840 2 720 4416 t | |
10 CW f | |
(\\s46)3301 4416 w | |
10 PA f | |
(can be uniquely decoded as a 4-)6 1464 1 3576 4416 t | |
(point)720 4536 w | |
10 CW f | |
(6)980 4536 w | |
10 PA f | |
(, while)1 297 1 1040 4536 t | |
10 CW f | |
(\\s36)1362 4536 w | |
10 PA f | |
(is simply a switch into size 36.)6 1333 1 1627 4536 t | |
8 PA f | |
(TROFF)970 4692 w | |
10 PA f | |
( are physically isomor-)3 1017(makes the assumption that there are four fonts, three of which)10 2770 2 1253 4692 t | |
( each\) and one ``special'' font that)6 1492(phic \(that is, the same characters appear in the same position in)11 2828 2 720 4812 t | |
( font name)2 481( reserved)1 411( The)1 220(is logically a part of each of the others.)8 1721 4 720 4932 t | |
10 CW f | |
(S)3582 4932 w | |
10 PA f | |
(finds its way into several com-)5 1369 1 3671 4932 t | |
(mands and receives special treatment in a variety of contexts.)9 2708 1 720 5052 t | |
( their definition; for exam-)4 1177(Some commands have the basic resolution of the CAT wired into)10 2893 2 970 5208 t | |
(ple, the units of the)4 862 1 720 5328 t | |
10 CW f | |
(.ss)1610 5328 w | |
10 PA f | |
( the size of the inter-word spacing\) are 36th's of an)10 2252(command \(which sets)2 970 2 1818 5328 t | |
(em, because the CAT typesetter itself works in those units.)9 2583 1 720 5448 t | |
( example, the option)3 922( For)1 207( idiosyncrasies of the CAT.)4 1211(Some command line options reflect)4 1579 4 970 5604 t | |
10 CW f | |
(-p)4920 5604 w | |
10 PA f | |
( output all be printed in one size; since the CAT is excruciatingly slow at chang-)15 3578(requests that the)2 742 2 720 5724 t | |
( The)1 240( this prints an approximation to final output comparatively quickly.)9 3204(ing point sizes,)2 708 3 720 5844 t | |
10 CW f | |
(-g)4920 5844 w | |
10 PA f | |
( file for the benefit of the operations staff at)9 1906(option causes font information to appear in the output)8 2414 2 720 5964 t | |
(the Murray Hill Computer Center.)4 1528 1 720 6084 t | |
( inte-)1 232(At the same time, there are myriad places where the characteristics of the CAT are an)15 3838 2 970 6240 t | |
(gral part of the code for)5 1046 1 720 6360 t | |
8 PA f | |
(TROFF)1791 6360 w | |
10 PA f | |
( of these are quite evident; others are subtle indeed.)9 2275(. Some)1 319 2 2047 6360 t | |
( Within)1 360( encoding of a character.)4 1091(The most obvious instance is the internal)6 1816 3 970 6516 t | |
8 PA f | |
(TROFF)4265 6516 w | |
10 PA f | |
(, objects are)2 519 1 4521 6516 t | |
( are two fundamental objects \320 printable characters)7 2401( There)1 320(passed around as 16 bit quantities.)5 1599 3 720 6636 t | |
( object looks like this:)4 944( An)1 186(and motions.)1 579 3 720 6756 t | |
( 8)1 450( 1)1 150( 2)1 300(1 4)1 300 4 2130 6936 t | |
10 S f | |
(_________________________________)2055 6956 w | |
10 CW f | |
( c)1 450( z)1 150( f)1 300(m s)1 310 4 2125 7076 t | |
10 S f | |
(_________________________________ \347)1 0 1 2055 7096 t | |
(\347)2055 7056 w | |
(\347)2205 7096 w | |
(\347)2205 7056 w | |
(\347)2605 7096 w | |
(\347)2605 7056 w | |
(\347)2805 7096 w | |
(\347)2805 7056 w | |
(\347)2905 7096 w | |
(\347)2905 7056 w | |
(\347)3705 7096 w | |
(\347)3705 7056 w | |
10 PA f | |
(If the)1 233 1 720 7276 t | |
10 CW f | |
(m)980 7276 w | |
10 PA f | |
( is something to be printed.)5 1223(bit is a 1, the object represents a motion; if it is zero, the object)14 2750 2 1067 7276 t | |
cleartomark | |
showpage | |
saveobj restore | |
%%EndPage: 2 4 | |
%%Page: 3 5 | |
/saveobj save def | |
mark | |
5 pagesetup | |
10 PA f | |
(- 3 -)2 166 1 2797 480 t | |
(In that case,)2 535 1 720 840 t | |
10 CW f | |
(s)1285 840 w | |
10 PA f | |
(is the size \(actually an index into a table of legal sizes\),)11 2458 1 1375 840 t | |
10 CW f | |
(f)3863 840 w | |
10 PA f | |
(is the font,)2 474 1 3953 840 t | |
10 CW f | |
(z)4457 840 w | |
10 PA f | |
(is the zero-)2 494 1 4546 840 t | |
(motion bit \(i.e., no space after printing\), and)7 1953 1 720 960 t | |
10 CW f | |
(c)2699 960 w | |
10 PA f | |
( the high order bit of)5 919( If)1 118(is the character.)2 694 3 2785 960 t | |
10 CW f | |
(c)4542 960 w | |
10 PA f | |
(is set, the)2 412 1 4628 960 t | |
( example,)1 430(character is to be looked up in a table of special names \(for)12 2654 2 720 1080 t | |
10 CW f | |
(0200)3834 1080 w | |
10 PA f | |
(is the hyphen)2 608 1 4104 1080 t | |
10 CW f | |
(\\\(hy)4742 1080 w | |
10 PA f | |
(\);)4982 1080 w | |
(otherwise it is)2 623 1 720 1200 t | |
8 PA f | |
(ASCII)1370 1200 w | |
10 PA f | |
( if)1 89(. Furthermore,)1 668 2 1585 1200 t | |
10 CW f | |
(c)2369 1200 w | |
10 PA f | |
( octal 370, the character)4 1044(is less than octal 40 or greater than)7 1540 2 2456 1200 t | |
(is actually some encoded control function or very special character such as)11 3289 1 720 1320 t | |
10 CW f | |
(\\e)4034 1320 w | |
10 PA f | |
(or)4179 1320 w | |
10 CW f | |
(\\{)4299 1320 w | |
10 PA f | |
(.)4419 1320 w | |
( packing makes it utterly impossible to add another size or font \320 there are)14 3349(Clearly the tight)2 721 2 970 1476 t | |
( limits on the number of characters in a font and on the number of)14 2926( also implies)2 555( It)1 119(no bits left over.)3 720 4 720 1596 t | |
(special names \(names of the form)5 1475 1 720 1716 t | |
10 CW f | |
(\\\(xx)2220 1716 w | |
10 PA f | |
(\).)2460 1716 w | |
(Motions are encoded as)3 1047 1 970 1872 t | |
( 13)1 725(1 1 1)2 250 2 2130 2052 t | |
10 S f | |
(_________________________________)2055 2072 w | |
10 CW f | |
( mag)1 760(m v n)2 260 2 2125 2192 t | |
10 S f | |
(_________________________________ \347)1 0 1 2055 2212 t | |
(\347)2055 2172 w | |
(\347)2205 2212 w | |
(\347)2205 2172 w | |
(\347)2305 2212 w | |
(\347)2305 2172 w | |
(\347)2405 2212 w | |
(\347)2405 2172 w | |
(\347)3705 2212 w | |
(\347)3705 2172 w | |
10 CW f | |
(m)720 2392 w | |
10 PA f | |
(is the ``motion bit'', which is 1 for a motion,)9 1930 1 806 2392 t | |
10 CW f | |
(v)2762 2392 w | |
10 PA f | |
(is 1 for a vertical motion, and)6 1296 1 2848 2392 t | |
10 CW f | |
(n)4170 2392 w | |
10 PA f | |
( for a negative)3 637(is 1)1 147 2 4256 2392 t | |
( 13 bits, the maximum)4 1018( there are only)3 671( Since)1 293( remaining 13 bits give the magnitude.)6 1767(motion. The)1 571 5 720 2512 t | |
( resolution of 432 units per inch, this is a)9 1788( the CAT's)2 469( With)1 270(amount of motion is 8191 machine units.)6 1793 4 720 2632 t | |
( for the Linotron 202 \(resolution 972/inch\), it is only 8.5 inches.)11 2781( But)1 204(generous 19 inches.)2 861 3 720 2752 t | |
( in tests and assignments without identifi-)6 1866(Within the code, certain character values are used)7 2204 2 970 2908 t | |
( instance the octal value)4 1115(cation. For)1 510 2 720 3028 t | |
10 CW f | |
(0200)2385 3028 w | |
10 PA f | |
( of)1 127( But)1 218( as a hyphen.)3 622(is used \(without identification\))3 1408 4 2665 3028 t | |
(course the mask)2 740 1 720 3148 t | |
10 CW f | |
(0200)1498 3148 w | |
10 PA f | |
( might be imagined, it takes some study to)8 1987( As)1 184( times.)1 304(also occurs many)2 789 4 1776 3148 t | |
(determine whether any particular)3 1495 1 720 3268 t | |
10 CW f | |
(0200)2240 3268 w | |
10 PA f | |
(is a hyphen or a mask.)5 990 1 2505 3268 t | |
( Char-)1 307( horizontally and 144 vertically.)4 1420(The basic resolution of the CAT is 432 units per inch)10 2343 3 970 3424 t | |
( are 72 points in an inch.)6 1146( There)1 318(acter widths are given as the number of units at size 6 points.)12 2856 3 720 3544 t | |
(Thus the program contains as magic numbers every factor of 432, and)11 3078 1 720 3664 t | |
10 S f | |
(\261)3823 3664 w | |
10 PA f | |
(1 from each factor as well.)5 1152 1 3878 3664 t | |
(Finally,)970 3820 w | |
8 PA f | |
(TROFF)1330 3820 w | |
10 PA f | |
( 7000 lines of vir-)4 768(is simply a big program \(at least by my standards\) \320 about)11 2658 2 1614 3820 t | |
( am indebted to Lorinda Cherry for a new version of the C beautifier)13 3133( \(I)1 125(tually uncommented C.)2 1062 3 720 3940 t | |
( was implemented before the recent addi-)6 1898( It)1 127( not comprehensible.\))2 976(that made the code legible, if)5 1319 4 720 4060 t | |
( so there are no)4 719(tions to C,)2 475 2 720 4180 t | |
10 CW f | |
(typedef)1950 4180 w | |
10 PA f | |
('s to distinguish among the various kinds of integers, rela-)9 2670 1 2370 4180 t | |
(tively few macros with arguments, no internal)6 2081 1 720 4300 t | |
10 CW f | |
(static)2833 4300 w | |
10 PA f | |
(variables, and a startling number of glo-)6 1815 1 3225 4300 t | |
(bal variables with two-character names.)4 1758 1 720 4420 t | |
( remarks should be taken as denigrating Ossanna's accomplishment with)9 3419(None of these)2 651 2 970 4576 t | |
8 PA f | |
(TROFF)720 4696 w | |
10 PA f | |
( taking unbelievable abuse from a variety of pre-)8 2205( has proven a remarkably robust tool,)6 1709(. It)1 150 3 976 4696 t | |
( into uses that were never conceived of in the original design, all with)13 3081(processors and being forced)3 1239 2 720 4816 t | |
(considerable grace under fire.)3 1314 1 720 4936 t | |
10 PB f | |
( TROFF)1 359(3. Modifying)1 620 2 720 5176 t | |
10 PA f | |
( widen the 16-bit internal representation of a character to 32 bits, to)12 3128(The first step was to)4 942 2 970 5332 t | |
( current representation is)3 1111( The)1 217(accommodate more sizes and fonts.)4 1573 3 720 5452 t | |
( 15)1 825( 1)1 450( 8)1 750(1 7)1 450 4 1330 5632 t | |
10 S f | |
(_________________________________________________________________)1255 5652 w | |
10 CW f | |
( c)1 800( m)1 450( f)1 750(z s)1 460 4 1325 5772 t | |
10 S f | |
(_________________________________________________________________ \347)1 0 1 1255 5792 t | |
(\347)1255 5752 w | |
(\347)1405 5792 w | |
(\347)1405 5752 w | |
(\347)2105 5792 w | |
(\347)2105 5752 w | |
(\347)2905 5792 w | |
(\347)2905 5752 w | |
(\347)3005 5792 w | |
(\347)3005 5752 w | |
(\347)4505 5792 w | |
(\347)4505 5752 w | |
10 PA f | |
(If)720 5972 w | |
10 CW f | |
(m)817 5972 w | |
10 PA f | |
(is 1, bits 16 and 17 are)6 992 1 907 5972 t | |
10 CW f | |
(v)1929 5972 w | |
10 PA f | |
(and)2019 5972 w | |
10 CW f | |
(n)2218 5972 w | |
10 PA f | |
( to this representation is entirely through macros; for)8 2384(. Access)1 378 2 2278 5972 t | |
( called)1 288(example, a macro)2 783 2 720 6092 t | |
10 CW f | |
(cbits)1818 6092 w | |
10 PA f | |
(fetches the character bits, another called)5 1774 1 2145 6092 t | |
10 CW f | |
(setsfbits)3946 6092 w | |
10 PA f | |
(sets the size)2 527 1 4513 6092 t | |
(and font bits, and so on.)5 1061 1 720 6212 t | |
( examine)1 414(This stage took several weeks of meticulous checking, since it was necessary to)12 3656 2 970 6368 t | |
( in the program to decide whether it was being used)10 2326(every integer constant, variable and function)5 1994 2 720 6488 t | |
( are now all identified and)5 1165( These)1 307(to store an internal character.)4 1291 3 720 6608 t | |
10 CW f | |
(typedef)3508 6608 w | |
10 PA f | |
('d for future reference.)3 998 1 3928 6608 t | |
( since the program must)4 1104(Widening 16 bits to 32 turns out to be quite costly on the PDP-11,)13 2966 2 970 6764 t | |
(process)720 6884 w | |
10 CW f | |
(long)1085 6884 w | |
10 PA f | |
( result is approximately a 25% increase in pro-)8 2105( The)1 225(integers instead of short ones.)4 1351 3 1359 6884 t | |
( temporary file in which)4 1084( the)1 167( Furthermore)1 619(gram size and perhaps 25% increase in run time.)8 2165 4 720 7004 t | |
8 PA f | |
(TROFF)4784 7004 w | |
10 PA f | |
(keeps its macro and string definitions doubles in size \(to 256k bytes\).)11 3037 1 720 7124 t | |
( way \320 it still)4 625(Note that at this stage the program has not been changed in any fundamental)13 3445 2 970 7280 t | |
cleartomark | |
showpage | |
saveobj restore | |
%%EndPage: 3 5 | |
%%Page: 4 6 | |
/saveobj save def | |
mark | |
6 pagesetup | |
10 PA f | |
(- 4 -)2 166 1 2797 480 t | |
( a bit-for-bit regression test against the original version can be per-)11 3132(generates CAT output, so)3 1188 2 720 840 t | |
( maintaining sanity in both pro-)5 1442( proved to be very important for)6 1471( This)1 246(formed after each change.)3 1161 4 720 960 t | |
(gram and programmer.)2 1043 1 720 1080 t | |
10 PB f | |
( Machine Parameters)2 954(4. Dynamic)1 541 2 720 1320 t | |
10 PA f | |
( the the numbers in the program that depend on the CAT and)12 2797(The next step was to find all)6 1273 2 970 1476 t | |
( contributed marginally to slower execution, since many val-)8 2703( also)1 205( This)1 244(replace them by variables.)3 1168 4 720 1596 t | |
(ues and expressions that were constants now became variables.)8 2796 1 720 1716 t | |
( make it possible to load a descrip-)7 1564(With parameters identified as such, the next step was to)9 2506 2 970 1872 t | |
(tion of the typesetter each time)5 1436 1 720 1992 t | |
8 PA f | |
(TROFF)2195 1992 w | |
10 PA f | |
( each)1 238(is run, rather than creating a compiled version for)8 2312 2 2490 1992 t | |
( and created for each typesetter)5 1447( a set of description files was designed)7 1771(typesetter. Accordingly,)1 1102 3 720 2112 t | |
( parameters of the)3 807( description really comes in two pieces \320 a table describing)10 2664( The)1 220(and each font.)2 629 4 720 2232 t | |
( illustrate, here is the parameter file for the CAT:)9 2145( To)1 166(machine, and a table of widths for each font.)8 1960 3 720 2352 t | |
9 CW f | |
(# Graphic Systems CAT-4)3 1242 1 864 2522 t | |
(res 432)1 378 1 864 2632 t | |
(hor 1)1 270 1 864 2742 t | |
(vert 3)1 324 1 864 2852 t | |
(unitwidth 6)1 594 1 864 2962 t | |
(sizes 6 7 8 9 10 11 12 14 16 18 20 22 24 28 36 0)16 2592 1 864 3072 t | |
(fonts 4 R I B S)5 810 1 864 3182 t | |
(charset)864 3292 w | |
(\\| \\\303 \\- \\_)3 756 1 864 3402 t | |
(hy bu sq em ru 14 12 34 mi fi fl ff Fi Fl de dg sc fm aa ga)19 4212 1 864 3512 t | |
(ul sl *a *b *g *d *e *z *y *h *i *k *l *m *n *c *o *p *r *s)19 4212 1 864 3622 t | |
(*t *u *f *x *q *w *A *B *G *D *E *Z *Y *H *I *K *L *M *N *C)19 4212 1 864 3732 t | |
(*O *P *R *S *T *U *F *X *Q *W sr ts rn >= <= == \304= ap != ->)19 4212 1 864 3842 t | |
(<- ua da eq mu di +- cu ca sb sp ib ip if pd gr no is pt es)19 4212 1 864 3952 t | |
(mo pl rg co br ct dd rh lh ** bs or ci lt lb rt rb lk rk bv)19 4212 1 864 4062 t | |
(lf rf lc rc)3 756 1 864 4172 t | |
10 PA f | |
(A)720 4352 w | |
10 CW f | |
(#)828 4352 w | |
10 PA f | |
(introduces a comment.)2 1019 1 918 4352 t | |
10 CW f | |
(res)1992 4352 w | |
10 PA f | |
(is the machine resolution in units per inch.)7 1915 1 2202 4352 t | |
10 CW f | |
(hor)4172 4352 w | |
10 PA f | |
(and)4382 4352 w | |
10 CW f | |
(vert)4581 4352 w | |
10 PA f | |
(give)4851 4352 w | |
( it is possible to move in the corresponding direction.)9 2365(the minimum number of machine units that)6 1955 2 720 4472 t | |
10 CW f | |
(unitwidth)720 4592 w | |
10 PA f | |
( which the character widths map directly into machine)8 2564(specifies the point size at)4 1173 2 1303 4592 t | |
(units.)720 4712 w | |
10 CW f | |
(sizes)1021 4712 w | |
10 PA f | |
( legal point sizes, terminated by a zero.)7 1746(lists the set of)3 612 2 1350 4712 t | |
10 CW f | |
(fonts)3761 4712 w | |
10 PA f | |
(lists the default set of)4 951 1 4089 4712 t | |
( can be overridden by subsequent)5 1534(fonts \(which)1 559 2 720 4832 t | |
10 CW f | |
(.fp)2847 4832 w | |
10 PA f | |
(commands\).)3061 4832 w | |
10 CW f | |
(charset)3664 4832 w | |
10 PA f | |
(introduces the set of)3 922 1 4118 4832 t | |
(legitimate special names \(names of the form)6 1943 1 720 4952 t | |
10 CW f | |
(\\\(xx)2688 4952 w | |
10 PA f | |
(, including some special cases like)5 1497 1 2928 4952 t | |
10 CW f | |
(\\|)4450 4952 w | |
10 PA f | |
(\).)4570 4952 w | |
( 202 has)2 358( The)1 221( here is the description file for the Mergenthaler Linotron 202.)10 2766(For comparison,)1 725 4 970 5108 t | |
( 202 actu-)2 422( \(The)1 251( the CAT, and quite a few more characters as well.)10 2229(many more sizes and fonts than)5 1418 4 720 5228 t | |
(ally permits nearly 250 sizes; no use has yet been found for most of them.\))14 3266 1 720 5348 t | |
cleartomark | |
showpage | |
saveobj restore | |
%%EndPage: 4 6 | |
%%Page: 5 7 | |
/saveobj save def | |
mark | |
7 pagesetup | |
10 PA f | |
(- 5 -)2 166 1 2797 480 t | |
9 CW f | |
(# Mergenthaler Linotron 202)3 1458 1 1008 830 t | |
(fonts 10 R I B BI H HB HK PO CH S)11 1782 1 1008 940 t | |
(sizes 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20)16 2592 1 1008 1050 t | |
(21 22 23 24 25 26 27 28 29 30 32 34 36 38 40)14 2376 1 1170 1160 t | |
(45 50 55 60 66 72 78 84 90 96 102 108 0)12 2106 1 1170 1270 t | |
(res 972)1 378 1 1008 1380 t | |
(hor 1)1 270 1 1008 1490 t | |
(vert 2)1 324 1 1008 1600 t | |
(unitwidth 4)1 594 1 1008 1710 t | |
(paperwidth 7500)1 810 1 1008 1820 t | |
(charset)1008 1930 w | |
(\\| \\\303 \\- \\_)3 756 1 1008 2040 t | |
(** *C *D *F *G *H *L *P *Q *S *W *a *b *c *d *e *f *g *h)18 3996 1 1008 2150 t | |
(*i *k *l *m *n *p *q *r *s *t *w *x *y *z +- -> <- <=)17 3780 1 1008 2260 t | |
(== >= L. Sl al aa ap b0 br bs bu bv ca)12 2700 1 1008 2370 t | |
(cd ci co ct cu dd de dg di em eq es fe fm ga gr hy)16 3564 1 1008 2480 t | |
(ib if ip is l. lh ma mi mo mu no or pd pl pp pt rg rh ru)18 3996 1 1008 2590 t | |
(sb sc sl sp sq sr tm tp ts \304= \304\304 ul rn en)13 2916 1 1008 2700 t | |
(lf rf lc rc lt rt lb rb lk rk != ua da 12 fa te ma fe)17 3780 1 1008 2810 t | |
(hc .. ob bx *o *u b9 14 34 ss vr)10 2268 1 1008 2920 t | |
10 CW f | |
(paperwidth)720 3100 w | |
10 PA f | |
(specifies the maximum width of paper in units, overriding the default 7)11 3163 1 1345 3100 t | |
10 S1 f | |
()4508 3100 w | |
cleartomark | |
saveobj restore | |
%%BeginGlobal | |
/build_34 { | |
pop | |
/optsize ptsize def | |
/osize size def | |
/ofont font def | |
optsize 2 div dup R exch R f | |
0 size 2 mul 3 div dup neg exch 0 exch rmoveto | |
(3) show | |
rmoveto | |
optsize R f | |
(\244) show | |
f | |
(4) show | |
optsize ofont f | |
} def | |
%%EndGlobal | |
/saveobj save def | |
mark | |
10 S1 f | |
4508 3100 m | |
75 build_34 | |
4583 3100 m | |
10 PA f | |
(".)4583 3100 w | |
( is one file per font that lists)7 1313(In addition to this description file \(one per typesetter\), there)9 2757 2 970 3256 t | |
( is part of the description of Times Roman for the CAT:)11 2431( Here)1 269(properties of that font.)3 996 3 720 3376 t | |
9 CW f | |
(# Times Roman for CAT-4)4 1242 1 1008 3546 t | |
(name R)1 324 1 1008 3656 t | |
(internalname 1)1 756 1 1008 3766 t | |
(ligatures ff fi fl ffi ffl 0)6 1512 1 1008 3876 t | |
(charset)1008 3986 w | |
( 0 0)2 864(\\| 6)1 486 2 1008 4096 t | |
( 0 0)2 864(\\\303 3)1 486 2 1008 4206 t | |
( 025)1 540( 0)1 378(a 17)1 540 3 1008 4316 t | |
( 012)1 540( 2)1 378(b 20)1 540 3 1008 4426 t | |
( 027)1 540( 0)1 378(c 16)1 540 3 1008 4536 t | |
( 011)1 540( 2)1 378(d 20)1 540 3 1008 4646 t | |
( 031)1 540( 0)1 378(e 18)1 540 3 1008 4756 t | |
( 014)1 540( 2)1 378(f 13)1 540 3 1008 4866 t | |
(...)1008 4976 w | |
( 0145)1 594( 2)1 378(! 12)1 540 3 1008 5086 t | |
( 050)1 540( 2)1 378(& 28)1 540 3 1008 5196 t | |
( 0132)1 594( 2)1 378(\( 16)1 540 3 1008 5306 t | |
( 0133)1 594( 2)1 378(\) 16)1 540 3 1008 5416 t | |
( 0122)1 594( 0)1 378(* 16)1 540 3 1008 5526 t | |
( 0143)1 594( 0)1 378(+ 36)1 540 3 1008 5636 t | |
( 047)1 540( 0)1 378(, 12)1 540 3 1008 5746 t | |
( hyphen)1 594( 040)1 540(hy 13 0)2 918 3 1008 5856 t | |
(- " =hy)2 1026 1 1008 5966 t | |
( 0123)1 594(\\- 36 0)2 918 2 1008 6076 t | |
( 044)1 540( 0)1 378(. 10)1 540 3 1008 6186 t | |
( degree)1 540( 0136)1 594(de 15 0)2 918 3 1008 6296 t | |
( dagger)1 540( 0137)1 594(dg 20 0)2 918 3 1008 6406 t | |
( 0 0150)2 1026(fm 8)1 486 2 1008 6516 t | |
( 0141)1 594(rg 20 0)2 918 2 1008 6626 t | |
( 0153)1 594(co 20 0)2 918 2 1008 6736 t | |
( 0127)1 594(ct 19 0)2 918 2 1008 6846 t | |
(...)1008 6956 w | |
10 PA f | |
(The)970 7172 w | |
10 CW f | |
(name)1171 7172 w | |
10 PA f | |
(is the external)2 636 1 1445 7172 t | |
8 PA f | |
(TROFF)2115 7172 w | |
10 PA f | |
(name, one or two characters, as used in)7 1805 1 2406 7172 t | |
10 CW f | |
(.ft)4246 7172 w | |
10 PA f | |
(and)4461 7172 w | |
10 CW f | |
(\\f)4665 7172 w | |
10 PA f | |
(com-)4820 7172 w | |
( internal name is not used by)6 1314(mands. The)1 547 2 720 7292 t | |
8 PA f | |
(TROFF)2612 7292 w | |
10 PA f | |
( If)1 122( for the postprocessors.)3 1040(itself, but is necessary)3 979 3 2899 7292 t | |
cleartomark | |
showpage | |
saveobj restore | |
%%EndPage: 5 7 | |
%%Page: 6 8 | |
/saveobj save def | |
mark | |
8 pagesetup | |
10 PA f | |
(- 6 -)2 166 1 2797 480 t | |
( font sep-)2 418( is possible to set the width of the space for each)11 2141( It)1 119(the font has ligatures, they are listed.)6 1642 4 720 840 t | |
(arately with the)2 708 1 720 960 t | |
10 CW f | |
(spacewidth)1458 960 w | |
10 PA f | |
( keyword)1 428( is also a)3 387( There)1 310(command, not illustrated here.)3 1378 4 2088 960 t | |
10 CW f | |
(special)4620 960 w | |
10 PA f | |
( if the regular font does not)6 1211(to indicate that the font is a ``special'' font \320 one that is to be searched)15 3109 2 720 1080 t | |
( but they should)3 726( is no limit on the number of special fonts,)9 1872( There)1 307(contain the character requested.)3 1415 4 720 1200 t | |
(be listed last in the)4 825 1 720 1320 t | |
10 CW f | |
(fonts)1570 1320 w | |
10 PA f | |
(part of the description file.)4 1173 1 1895 1320 t | |
( ascender/descender infor-)2 1222(The four columns of data are the character name, its width, its)11 2848 2 970 1476 t | |
(mation \(1)1 424 1 720 1596 t | |
10 S f | |
(\256)1172 1596 w | |
10 PA f | |
(descender, 2)1 553 1 1299 1596 t | |
10 S f | |
(\256)1880 1596 w | |
10 PA f | |
(ascender, 3)1 493 1 2006 1596 t | |
10 S f | |
(\256)2526 1596 w | |
10 PA f | |
(both\), and the actual typesetter code required to print)8 2388 1 2652 1596 t | |
( size is)2 304( the point)2 436(it. When)1 407 3 720 1716 t | |
10 CW f | |
(unitwidth)1899 1716 w | |
10 PA f | |
( the)1 171( If)1 124(, the width is the character width in machine units.)9 2306 3 2439 1716 t | |
(name is a single character, it is taken simply as a normal)11 2511 1 720 1836 t | |
8 PA f | |
(ASCII)3259 1836 w | |
10 PA f | |
( or more characters)3 856(character. Two)1 683 2 3501 1836 t | |
(indicate a name of the form)5 1219 1 720 1956 t | |
10 CW f | |
(\\\(xx)1965 1956 w | |
10 PA f | |
( exceptions like)2 685(; there are a handful of historical)6 1442 2 2205 1956 t | |
10 CW f | |
(\\-)4359 1956 w | |
10 PA f | |
( width of)2 406(. A)1 155 2 4479 1956 t | |
(""")720 2076 w | |
10 CW f | |
(" " ")2 302 1 857 2076 t | |
10 PA f | |
( the character is a synonym for the immediately preceding character, as in)12 3261(indicates that)1 594 2 1185 2076 t | |
10 CW f | |
(-)720 2196 w | |
10 PA f | |
(and)805 2196 w | |
10 CW f | |
(hy)999 2196 w | |
10 PA f | |
( may follow the four data fields.)6 1416(above. Comments)1 822 2 1144 2196 t | |
( text)1 198(There are significant advantages to having the font and typesetter descriptions merely)11 3872 2 970 2352 t | |
(files that can be edited easily, but it is too time-consuming to load all this)14 3287 1 720 2472 t | |
8 PA f | |
(ASCII)4037 2472 w | |
10 PA f | |
(information each)1 758 1 4282 2472 t | |
(time)720 2592 w | |
8 PA f | |
(TROFF)959 2592 w | |
10 PA f | |
( a separate program called)4 1235( Thus)1 287(is invoked.)1 500 3 1256 2592 t | |
10 CW f | |
(makedev)3319 2592 w | |
10 PA f | |
( compile it into a)4 808(is used to)2 452 2 3780 2592 t | |
(binary file that can be read by)6 1328 1 720 2712 t | |
8 PA f | |
(TROFF)2075 2712 w | |
10 PA f | |
( When)1 315( single read.)2 538(in a)1 164 3 2358 2712 t | |
8 PA f | |
(TROFF)3401 2712 w | |
10 PA f | |
(is invoked, an argument of the)5 1357 1 3683 2712 t | |
(form)720 2832 w | |
10 CW f | |
(-Txxx)961 2832 w | |
10 PA f | |
(tells it to load the description file for typesetter)8 2072 1 1286 2832 t | |
10 CW f | |
(xxx)3383 2832 w | |
10 PA f | |
(from a standard directory.)3 1167 1 3588 2832 t | |
( is)1 114(Descriptions for the default fonts are compiled into the description file; if a new font)14 3956 2 970 2988 t | |
(requested by a)2 673 1 720 3108 t | |
10 CW f | |
(.fp)1431 3108 w | |
10 PA f | |
( The)1 229(command, its description data replaces the original values.)7 2688 2 1649 3108 t | |
10 CW f | |
(.ft)4603 3108 w | |
10 PA f | |
(com-)4820 3108 w | |
( if the requested font is not currently ``mounted'', its description)10 2884(mand has been modified so that)5 1436 2 720 3228 t | |
( there is only one such position, each new)8 1860( Since)1 285( 0.)1 103(data will be placed in the hidden font position)8 2072 4 720 3348 t | |
( make occasional use)3 926( mechanism is intended to)4 1160( This)1 240(non-standard font overlays the previous one.)5 1994 4 720 3468 t | |
(of non-standard fonts easy; the)4 1368 1 720 3588 t | |
10 CW f | |
(.fp)2113 3588 w | |
10 PA f | |
(mechanism remains necessary for other purposes.)5 2207 1 2318 3588 t | |
( of special fonts has been generalized somewhat \320 rather than a single special)13 3581(The notion)1 489 2 970 3744 t | |
( algorithm currently used is to search for each character on the cur-)12 2974( The)1 218(font, there can be several.)4 1128 3 720 3864 t | |
(rent font; if it is not found there, then the special fonts are searched in order \(as given in the)19 4320 1 720 3984 t | |
( than that, the treatment of special fonts is essentially unchanged.)10 2882( Other)1 308(description file\).)1 721 3 720 4104 t | |
( stage in the modifications to)5 1279(At this)1 298 2 970 4260 t | |
8 PA f | |
(TROFF)2573 4260 w | |
10 PA f | |
(, all internal arithmetic is done in terms of the res-)10 2211 1 2829 4260 t | |
( defined by the val-)4 864( character set and character widths are)6 1718( The)1 220(olution of the specified typesetter.)4 1518 4 720 4380 t | |
( name to what gets)4 895( the mapping from character)4 1319( Indeed,)1 399(ues loaded from the font description.)5 1707 4 720 4500 t | |
(printed is determined by this table \320 fonts are no longer all isomorphic.)12 3193 1 720 4620 t | |
( clear)1 244(Although it is certainly convenient for testing during program development, it is not)12 3826 2 970 4776 t | |
( for the typesetter each time)5 1241(that loading the font information)4 1470 2 720 4896 t | |
8 PA f | |
(TROFF)3458 4896 w | |
10 PA f | |
(is invoked is the right way to)6 1299 1 3741 4896 t | |
( a production mode it)4 963( In)1 143( a single kind of typesetter.)5 1200(operate in an environment that supports only)6 2014 4 720 5016 t | |
(might be desirable to compile in the default information for the standard typesetter.)12 3706 1 720 5136 t | |
10 PB f | |
( Language)1 470(5. Output)1 457 2 720 5376 t | |
10 PA f | |
( output of)2 441(The final step is to modify the)6 1319 2 970 5532 t | |
8 PA f | |
(TROFF)2756 5532 w | |
10 PA f | |
( new)1 215( The)1 218(so that it is typesetter-independent.)4 1569 3 3038 5532 t | |
(version of)1 448 1 720 5652 t | |
8 PA f | |
(TROFF)1199 5652 w | |
10 PA f | |
( it is)2 195( Rather,)1 377(produces output that is not intended to go directly to a typesetter.)11 2982 3 1486 5652 t | |
(more or less independent of any typesetter, except that the numbers in it have been computed on)16 4320 1 720 5772 t | |
(the basis of the resolution specified in the description file for the intended typesetter.)13 3745 1 720 5892 t | |
(The output language is simple:)4 1367 1 970 6048 t | |
cleartomark | |
showpage | |
saveobj restore | |
%%EndPage: 6 8 | |
%%Page: 7 9 | |
/saveobj save def | |
mark | |
9 pagesetup | |
10 PA f | |
(- 7 -)2 166 1 2797 480 t | |
9 CW f | |
(s)1008 830 w | |
9 PI f | |
(n)1062 830 w | |
9 CW f | |
(size in points)2 756 1 1512 830 t | |
(f)1008 940 w | |
9 PI f | |
(n)1062 940 w | |
9 CW f | |
(font as number from 1 to)5 1296 1 1512 940 t | |
9 PI f | |
(n)2862 940 w | |
9 CW f | |
(c)1008 1050 w | |
9 PI f | |
(x)1062 1050 w | |
9 CW f | |
(ASCII character)1 810 1 1512 1050 t | |
9 PI f | |
(x)2376 1050 w | |
9 CW f | |
(C)1008 1160 w | |
9 PI f | |
(xy)1062 1160 w | |
9 CW f | |
(character \\\()1 648 1 1512 1160 t | |
9 PI f | |
(xy)2160 1160 w | |
9 CW f | |
(; terminate)1 594 1 2250 1160 t | |
9 PI f | |
(xy)2898 1160 w | |
9 CW f | |
(by white space)2 756 1 3042 1160 t | |
(H)1008 1270 w | |
9 PI f | |
(n)1062 1270 w | |
9 CW f | |
(go to absolute horizontal position)4 1836 1 1512 1270 t | |
9 PI f | |
(n)3402 1270 w | |
9 CW f | |
(. \()1 162 1 3452 1270 t | |
9 PI f | |
(n)3614 1270 w | |
9 CW f | |
(> 0\))1 216 1 3718 1270 t | |
(V)1008 1380 w | |
9 PI f | |
(n)1062 1380 w | |
9 CW f | |
(go to absolute vertical position)4 1728 1 1512 1380 t | |
9 PI f | |
(n)3294 1380 w | |
9 CW f | |
(\(down is positive\))2 972 1 3398 1380 t | |
(h)1008 1490 w | |
9 PI f | |
(n)1062 1490 w | |
9 CW f | |
(go)1512 1490 w | |
9 PI f | |
(n)1674 1490 w | |
9 CW f | |
(units horizontally \(to the right;)4 1782 1 1778 1490 t | |
9 PI f | |
(n)3614 1490 w | |
9 CW f | |
(> 0\))1 216 1 3718 1490 t | |
(v)1008 1600 w | |
9 PI f | |
(n)1062 1600 w | |
9 CW f | |
(go)1512 1600 w | |
9 PI f | |
(n)1674 1600 w | |
9 CW f | |
(units vertically \(down;)2 1242 1 1778 1600 t | |
9 PI f | |
(n)3074 1600 w | |
9 CW f | |
(> 0\))1 216 1 3178 1600 t | |
9 PI f | |
(nnc)1008 1710 w | |
9 CW f | |
(move right)1 540 1 1512 1710 t | |
9 PI f | |
(nn)2106 1710 w | |
9 CW f | |
(, then print)2 648 1 2206 1710 t | |
9 PI f | |
(c)2908 1710 w | |
9 CW f | |
(\()2999 1710 w | |
9 PI f | |
(nn)3053 1710 w | |
9 CW f | |
(is exactly 2 digits!\))3 1134 1 3207 1710 t | |
(n)1008 1820 w | |
9 PI f | |
(b a)1 104 1 1062 1820 t | |
9 CW f | |
(end of line \(information only -- no action needed\))8 2700 1 1512 1820 t | |
9 PI f | |
(b)1512 1930 w | |
9 CW f | |
(= space before line,)3 1080 1 1607 1930 t | |
9 PI f | |
(a)2741 1930 w | |
9 CW f | |
(= after)1 378 1 2835 1930 t | |
( word space \(information only -- no action needed\))8 2700(w paddable)1 936 2 1008 2040 t | |
(p)1008 2150 w | |
9 PI f | |
(n)1062 2150 w | |
9 CW f | |
(new page)1 432 1 1512 2150 t | |
9 PI f | |
(n)1998 2150 w | |
9 CW f | |
(begins -- set V to 0)5 1080 1 2102 2150 t | |
( control functions)2 972( device)1 450(x ...\\n)1 378 3 1008 2260 t | |
( functions \(graphics\))2 1134( drawing)1 504(D ...\\n)1 378 3 1008 2370 t | |
10 PA f | |
(Encoding small horizontal motions followed by a character as)8 2770 1 720 2550 t | |
10 PI f | |
(nnc)3520 2550 w | |
10 PA f | |
( file size by)3 512(shrinks the output)2 825 2 3703 2550 t | |
(about 35% and run-time by about 15%.)6 1718 1 720 2670 t | |
( graphics commands are intended as open-ended families, to be)9 2999(The device control and)3 1071 2 970 2826 t | |
(expanded as needed.)2 929 1 720 2946 t | |
9 CW f | |
( init)1 558(x i)1 162 2 1008 3116 t | |
(x T)1 162 1 1008 3226 t | |
9 PI f | |
(s)1224 3226 w | |
9 CW f | |
(name of typesetter is)3 1134 1 1512 3226 t | |
9 PI f | |
(s)2700 3226 w | |
9 CW f | |
(x r)1 162 1 1008 3336 t | |
9 PI f | |
(n h v)2 186 1 1224 3336 t | |
9 CW f | |
(resolution is)1 702 1 1512 3336 t | |
9 PI f | |
(n)2268 3336 w | |
9 CW f | |
(/inch,)2318 3336 w | |
9 PI f | |
(h)2696 3336 w | |
9 CW f | |
(= minimum horizontal motion,)3 1512 1 2795 3336 t | |
9 PI f | |
(v)4361 3336 w | |
9 CW f | |
(= min vert)2 540 1 4460 3336 t | |
( \(can restart\))2 756( pause)1 612(x p)1 162 3 1008 3446 t | |
( -- done forever)3 864( stop)1 558(x s)1 162 3 1008 3556 t | |
( trailer)1 432( generate)1 774(x t)1 162 3 1008 3666 t | |
(x f)1 162 1 1008 3776 t | |
9 PI f | |
(n s)1 108 1 1224 3776 t | |
9 CW f | |
(font position)1 702 1 1512 3776 t | |
9 PI f | |
(n)2268 3776 w | |
9 CW f | |
(contains font)1 702 1 2372 3776 t | |
9 PI f | |
(s)3128 3776 w | |
9 CW f | |
(x H)1 162 1 1008 3886 t | |
9 PI f | |
(n)1224 3886 w | |
9 CW f | |
(set character height to)3 1242 1 1512 3886 t | |
9 PI f | |
(n)2808 3886 w | |
9 CW f | |
(x S)1 162 1 1008 3996 t | |
9 PI f | |
(n)1224 3996 w | |
9 CW f | |
(set slant to)2 648 1 1512 3996 t | |
9 PI f | |
(n)2214 3996 w | |
10 PA f | |
(Subcommands like ``)2 922 1 720 4176 t | |
10 CW f | |
(i)1642 4176 w | |
10 PA f | |
('' are often spelled out like ``)6 1254 1 1702 4176 t | |
10 CW f | |
(init)2956 4176 w | |
10 PA f | |
(''.)3196 4176 w | |
(The drawing functions are)3 1169 1 970 4332 t | |
9 CW f | |
(Dl)1008 4502 w | |
9 PI f | |
(dh dv)1 203 1 1170 4502 t | |
9 CW f | |
(draw line from current position by)5 1836 1 1728 4502 t | |
9 PI f | |
(dh dv)1 203 1 3618 4502 t | |
9 CW f | |
(Dc)1008 4612 w | |
9 PI f | |
(d)1170 4612 w | |
9 CW f | |
(draw circle of diameter)3 1242 1 1728 4612 t | |
9 PI f | |
(d)3024 4612 w | |
9 CW f | |
(with left side here)3 1026 1 3123 4612 t | |
(De)1008 4722 w | |
9 PI f | |
(d1 d2)1 203 1 1170 4722 t | |
9 CW f | |
(draw ellipse of diameters)3 1350 1 1728 4722 t | |
9 PI f | |
(d1 d2)1 203 1 3132 4722 t | |
9 CW f | |
(Da)1008 4832 w | |
9 PI f | |
(dh1 dv1 dh2 dv2)3 609 1 1170 4832 t | |
9 CW f | |
(draw arc from current position to)5 1782 1 1728 4942 t | |
9 PI f | |
(dh1+dh2 dv1+dv2)1 673 1 3564 4942 t | |
9 CW f | |
(,)4237 4942 w | |
(center at)1 486 1 1728 5052 t | |
9 PI f | |
(dh1 dv1)1 293 1 2268 5052 t | |
9 CW f | |
(from current position)2 1134 1 2615 5052 t | |
(D\304)1008 5162 w | |
9 PI f | |
(dh1 dv1 dh2 dv2 ...)4 701 1 1170 5162 t | |
9 CW f | |
(draw B-spline from current position to)5 2052 1 1728 5272 t | |
9 PI f | |
(dh1 dv1)1 293 1 3834 5272 t | |
9 CW f | |
(,)4127 5272 w | |
(then to)1 378 1 1728 5382 t | |
9 PI f | |
(dh2 dv2)1 293 1 2160 5382 t | |
9 CW f | |
(, then to ...)3 702 1 2453 5382 t | |
10 PA f | |
( of these,)2 410(In all)1 233 2 720 5562 t | |
10 PI f | |
(dh dv)1 234 1 1397 5562 t | |
10 PA f | |
(is an increment on the current horizontal and vertical position, with down)11 3375 1 1665 5562 t | |
(and right positive.)2 812 1 720 5682 t | |
( sepa-)1 261(Blanks, tabs and newlines may occur as separators in the input, and are mandatory to)14 3809 2 970 5838 t | |
(rate constructions that would otherwise be confused.)6 2341 1 720 5958 t | |
(To illustrate, the following is the output from the input)9 2431 1 970 6114 t | |
9 CW f | |
(hello)1008 6284 w | |
(.br)1008 6394 w | |
(.ps 20)1 324 1 1008 6504 t | |
(.ft H)1 270 1 1008 6614 t | |
(goodbye)1008 6724 w | |
10 PA f | |
(using)720 6904 w | |
10 CW f | |
(-Tcat)990 6904 w | |
10 PA f | |
(:)1290 6904 w | |
cleartomark | |
showpage | |
saveobj restore | |
%%EndPage: 7 9 | |
%%Page: 8 10 | |
/saveobj save def | |
mark | |
10 pagesetup | |
10 PA f | |
(- 8 -)2 166 1 2797 480 t | |
9 CW f | |
(x T cat)2 378 1 1008 830 t | |
(x res 432 1 3)4 702 1 1008 940 t | |
(x init)1 324 1 1008 1050 t | |
(x font 1 R)3 540 1 1008 1160 t | |
(x font 2 I)3 540 1 1008 1270 t | |
(x font 3 B)3 540 1 1008 1380 t | |
(x font 4 S)3 540 1 1008 1490 t | |
(V0)1008 1600 w | |
(p1)1008 1710 w | |
(s10)1008 1820 w | |
(f1)1008 1930 w | |
(H416)1008 2040 w | |
(V72)1008 2150 w | |
(ch)1008 2260 w | |
(35e30l17l17on72 0)1 918 1 1008 2370 t | |
(x font 0 H)3 540 1 1008 2480 t | |
(f1)1008 2590 w | |
(H416)1008 2700 w | |
(f0)1008 2810 w | |
(s20)1008 2920 w | |
(V144)1008 3030 w | |
(cg)1008 3140 w | |
(70o70o70d73b73y67en72 0)1 1242 1 1008 3250 t | |
(x trailer)1 486 1 1008 3360 t | |
(V4752)1008 3470 w | |
(x stop)1 324 1 1008 3580 t | |
10 PA f | |
( how the numbers are more than twice as big,)9 2175( Notice)1 360( from the 202.)3 659(Here is the same output)4 1126 4 720 3760 t | |
( notice that the font)4 859( Also)1 254( of the 202.)3 477(reflecting the higher resolution)3 1373 4 720 3880 t | |
10 CW f | |
(H)3708 3880 w | |
10 PA f | |
(is a standard font on the 202)6 1247 1 3793 3880 t | |
(so no special loading is needed to switch to it.)9 2022 1 720 4000 t | |
cleartomark | |
showpage | |
saveobj restore | |
%%EndPage: 8 10 | |
%%Page: 9 11 | |
/saveobj save def | |
mark | |
11 pagesetup | |
10 PA f | |
(- 9 -)2 166 1 2797 480 t | |
9 CW f | |
(x T 202)2 378 1 1008 830 t | |
(x res 972 1 2)4 702 1 1008 940 t | |
(x init)1 324 1 1008 1050 t | |
(x font 1 R)3 540 1 1008 1160 t | |
(x font 2 I)3 540 1 1008 1270 t | |
(x font 3 B)3 540 1 1008 1380 t | |
(x font 4 BI)3 594 1 1008 1490 t | |
(x font 5 H)3 540 1 1008 1600 t | |
(x font 6 HB)3 594 1 1008 1710 t | |
(x font 7 HK)3 594 1 1008 1820 t | |
(x font 8 PO)3 594 1 1008 1930 t | |
(x font 9 CH)3 594 1 1008 2040 t | |
(x font 10 S)3 594 1 1008 2150 t | |
(V0)1008 2260 w | |
(p1)1008 2370 w | |
(s10)1008 2480 w | |
(f1)1008 2590 w | |
(H936)1008 2700 w | |
(V156)1008 2810 w | |
(ch)1008 2920 w | |
(73e63l35l35on156 0)1 972 1 1008 3030 t | |
(H936)1008 3140 w | |
(f5)1008 3250 w | |
(s20)1008 3360 w | |
(V312)1008 3470 w | |
(cg)1008 3580 w | |
(h150co)1008 3690 w | |
(h150co)1008 3800 w | |
(h150cd)1008 3910 w | |
(h150cb)1008 4020 w | |
(h150cy)1008 4130 w | |
(h135ce)1008 4240 w | |
(n156 0)1 324 1 1008 4350 t | |
(x trailer)1 486 1 1008 4460 t | |
(V10692)1008 4570 w | |
(x stop)1 324 1 1008 4680 t | |
10 PA f | |
( guaranteed to be)3 809(The output is)2 613 2 970 4896 t | |
8 PA f | |
(ASCII)2430 4896 w | |
10 PA f | |
(, and thus amenable to processing by all the normal)9 2395 1 2645 4896 t | |
( it is straightforward to write a prototype driver for a par-)11 2612( language is simple \320)4 998( The)1 223(Unix tools.)1 487 4 720 5016 t | |
( may take)2 441(ticular typesetter, especially when one can steal an existing one as a model, although it)14 3879 2 720 5136 t | |
( form also demystifies)3 1027( This)1 257( one of production quality.)4 1250(some effort to make)3 934 4 720 5256 t | |
8 PA f | |
(TROFF)4230 5256 w | |
10 PA f | |
(output and)1 512 1 4528 5256 t | |
(makes it possible for anyone to write other programs to process or generate it.)13 3452 1 720 5376 t | |
( as the output intended for the CAT.)7 1710(On the other hand, it is about twice as voluminous)9 2360 2 970 5532 t | |
(Cleverness \(or sacrificing)2 1140 1 720 5652 t | |
8 PA f | |
(ASCII)1898 5652 w | |
10 PA f | |
( much more than one byte per)6 1403(-ness\) could bring it down to not)6 1524 2 2113 5652 t | |
(character printed, but so far I have not felt this to be very important.)13 3013 1 720 5772 t | |
( not really much to say about the post-processors.)8 2232(There is)1 355 2 970 5928 t | |
8 PA f | |
(D202)3612 5928 w | |
10 PA f | |
(drives the 202,)2 650 1 3824 5928 t | |
8 PA f | |
(DCAT)4504 5928 w | |
10 PA f | |
(drives)4764 5928 w | |
( the vital boustrophedon and size-sorting features are)7 2437(the CAT \(although not very efficiently \320)6 1883 2 720 6048 t | |
(not there\),)1 458 1 720 6168 t | |
8 PA f | |
(DAPS)1205 6168 w | |
10 PA f | |
(drives the APS-5,)2 768 1 1446 6168 t | |
8 PA f | |
(DCAN)2241 6168 w | |
10 PA f | |
(drives the Canon, and)3 982 1 2515 6168 t | |
8 PA f | |
(TC)3524 6168 w | |
10 PA f | |
(\(notice the parallel name struc-)4 1382 1 3658 6168 t | |
( also rough and ready drivers for other display termi-)9 2424( are)1 170( There)1 312(ture\) drives the Tektronix 4014.)4 1414 4 720 6288 t | |
(nals.)720 6408 w | |
( drivers are able to offer useful)6 1421(Since it is easy to identify page and line boundaries, some)10 2649 2 970 6564 t | |
(features that were not feasible with the older)7 2019 1 720 6684 t | |
8 PA f | |
(TROFF)2770 6684 w | |
10 PA f | |
( example,)1 431(. For)1 232 2 3026 6684 t | |
8 PA f | |
(TC)3720 6684 w | |
10 PA f | |
(permits the user to ask for)5 1183 1 3857 6684 t | |
(specific pages by number, and to skip back and forth in the document.)12 3177 1 720 6804 t | |
8 PA f | |
(D202)3953 6804 w | |
10 PA f | |
(displays the output)2 873 1 4167 6804 t | |
( stop at specified pages if requested.)6 1656(page number on the operator's control panel and will also)9 2664 2 720 6924 t | |
(An experimental postprocessor called)3 1677 1 720 7044 t | |
8 PA f | |
(DSORT)2425 7044 w | |
10 PA f | |
(sorts the intermediate language by vertical position,)6 2317 1 2723 7044 t | |
( complicated)1 573(to minimize vertical motion; it is intended for printing)8 2463 2 720 7164 t | |
8 PA f | |
(PIC)3788 7164 w | |
10 PA f | |
(diagrams and for circuit)3 1088 1 3952 7164 t | |
(diagrams produced by)2 1028 1 720 7284 t | |
8 PA f | |
(PLTROFF)1784 7284 w | |
10 PA f | |
(. \()1 119 1 2137 7284 t | |
8 PA f | |
(PLTROFF)2256 7284 w | |
10 PA f | |
(converts the standard Unix plot language into)6 2102 1 2645 7284 t | |
8 PA f | |
(TROFF)4784 7284 w | |
cleartomark | |
showpage | |
saveobj restore | |
%%EndPage: 9 11 | |
%%Page: 10 12 | |
/saveobj save def | |
mark | |
12 pagesetup | |
10 PA f | |
(- 10 -)2 216 1 2772 480 t | |
( only)1 247( of the post-processors can scan their input relatively quickly to print)11 3318(commands.\) All)1 755 3 720 840 t | |
(selected pages.)1 659 1 720 960 t | |
10 PB f | |
( Things)1 347(6. New)1 341 2 720 1200 t | |
10 PA f | |
(During the process of making these changes to)7 2063 1 970 1356 t | |
8 PA f | |
(TROFF)3058 1356 w | |
10 PA f | |
( changes to the pro-)4 875(, I have made some)4 851 2 3314 1356 t | |
(gram that are visible to users \(thus violating the avowed goal of keeping it compatible\).)14 3861 1 720 1476 t | |
( no longer any)3 686( example, there is)3 818( For)1 216(Some changes are simply the easing of restrictions.)7 2350 4 970 1632 t | |
( fonts that can occur on a page \(if one's typesetter is up to it\), nor does the)17 3307(limit on the number of)4 1013 2 720 1752 t | |
10 CW f | |
(.fp)720 1872 w | |
10 PA f | |
( Fur-)1 250( ``mounting'' a new font have to occur only at the beginning.)11 2798(command that requests)2 1057 3 935 1872 t | |
(thermore, a font may be accessed merely by naming it \320 the command)12 3144 1 720 1992 t | |
9 CW f | |
(\\f\(ARBell Laboratories\\fP)1 1350 1 1008 2162 t | |
10 PA f | |
(will produce)1 563 1 720 2342 t | |
9 AR f | |
(Bell Laboratories)1 710 1 1008 2512 t | |
10 PA f | |
(\(The font)1 404 1 720 2692 t | |
10 CW f | |
(AR)1149 2692 w | |
10 PA f | |
(is Avant-Garde Book. Obviously two-letter font names will have to go.\))10 3156 1 1294 2692 t | |
( Thus,)1 298( longer have to all be isomorphic.)6 1484(Character sets can be sensibly defined since they no)8 2288 3 970 2848 t | |
(for example, on the 202 the ``printout'' font)7 1903 1 720 2968 t | |
9 CW f | |
(This one)1 432 1 1008 3138 t | |
10 PA f | |
(includes a complete)2 902 1 720 3318 t | |
8 PA f | |
(ASCII)1660 3318 w | |
10 PA f | |
( characters have the same width, even the word)8 2217( of the)2 303(alphabet. All)1 607 3 1913 3318 t | |
(space \(defined by the)3 970 1 720 3438 t | |
10 CW f | |
(spacewidth)1725 3438 w | |
10 PA f | |
( this font is suit-)4 745( Thus)1 280( description file\).)2 764(attribute in the font)3 891 4 2360 3438 t | |
( the other hand, some)4 1030( On)1 205(able for printing program listings without any special precautions.)8 3085 3 720 3558 t | |
(fonts are rather small, containing only a handful of characters.)9 2745 1 720 3678 t | |
( For)1 210( point sizes are available, although there are still some limitations.)10 3004(Larger and smaller)2 856 3 970 3834 t | |
(example,)720 3954 w | |
10 CW f | |
(\\s72)1158 3954 w | |
10 PA f | |
(is still parsed as a 7 point)6 1189 1 1436 3954 t | |
10 CW f | |
(2)2663 3954 w | |
10 PA f | |
( least)1 239(, since changing this would affect at)6 1657 2 2723 3954 t | |
8 PA f | |
(EQN)4656 3954 w | |
10 PA f | |
(and)4871 3954 w | |
( \(Sadly,)1 368(probably other programs as well.)4 1515 2 720 4074 t | |
8 PA f | |
(EQN)2639 4074 w | |
10 PA f | |
( be changed anyway \320 it also accepts an)8 1894(had to)1 293 2 2853 4074 t | |
(option of the form)3 841 1 720 4194 t | |
10 CW f | |
(-Txxx)1597 4194 w | |
10 PA f | |
(.\) But)1 273 1 1897 4194 t | |
10 CW f | |
(.ps 72)1 360 1 2206 4194 t | |
10 PA f | |
(works fine: each input size is mapped into the closest)9 2438 1 2602 4194 t | |
( point sizes are not allowed and may never be.)9 2051( Fractional)1 494(legal size for the current typesetter.)5 1562 3 720 4314 t | |
( those typeset-)2 653(Character height and slant may be set independently of character width, for)11 3417 2 970 4470 t | |
( allow these operations.)3 1051(ters that)1 365 2 720 4590 t | |
10 CW f | |
(\\H'n')2188 4590 w | |
10 PA f | |
(sets the character height to)4 1189 1 2515 4590 t | |
10 CW f | |
(n)3731 4590 w | |
10 PA f | |
(points,)3818 4590 w | |
10 CW f | |
(\\H')4147 4590 w | |
10 S f | |
(\261)4327 4590 w | |
10 CW f | |
(n')4382 4590 w | |
10 PA f | |
(sets it to)2 369 1 4529 4590 t | |
10 S f | |
(\261)4925 4590 w | |
10 CW f | |
(n)4980 4590 w | |
10 PA f | |
(from the current point size, and)5 1461 1 720 4710 t | |
10 CW f | |
(\\H'0')2218 4710 w | |
10 PA f | |
(restores it to normal height.)4 1273 1 2555 4710 t | |
10 CW f | |
(\\S'n')3890 4710 w | |
10 PA f | |
(sets the slant to)3 715 1 4227 4710 t | |
10 CW f | |
(n)4980 4710 w | |
10 PA f | |
(degrees positive or negative; if)4 1355 1 720 4830 t | |
10 CW f | |
(n)2100 4830 w | |
10 PA f | |
(is zero, slanting is turned off.)5 1286 1 2185 4830 t | |
( eliminated \(e.g.,)2 749(Some obsolete commands have been)4 1640 2 970 4986 t | |
10 CW f | |
(.fz)3391 4986 w | |
10 PA f | |
(,)3571 4986 w | |
10 CW f | |
(.li)3628 4986 w | |
10 PA f | |
(; the command line options)4 1232 1 3808 4986 t | |
(for constant-size printing and suppressing boustrophedon; all code related to)9 3415 1 720 5106 t | |
8 PA f | |
(GCOS)4160 5106 w | |
10 PA f | |
(\).)4383 5106 w | |
(A new command)2 805 1 970 5262 t | |
10 CW f | |
(.sy)1822 5262 w | |
10 PA f | |
(has been added to permit calling another program from within)9 2990 1 2050 5262 t | |
8 PA f | |
(TROFF)720 5382 w | |
10 PA f | |
(:)976 5382 w | |
9 CW f | |
(.sy)1008 5552 w | |
9 PI f | |
(command line)1 510 1 1224 5552 t | |
10 PA f | |
(causes)720 5732 w | |
10 PI f | |
(command line)1 573 1 1037 5732 t | |
10 PA f | |
( output is)2 434( The)1 223(to be executed.)2 672 3 1641 5732 t | |
10 PI f | |
(not)3001 5732 w | |
10 PA f | |
( the)1 171(automatically collected anywhere, but)3 1704 2 3165 5732 t | |
(new number register)2 926 1 720 5852 t | |
10 CW f | |
(\\n\($$)1672 5852 w | |
10 PA f | |
(\(the process id of the)4 924 1 1998 5852 t | |
8 PA f | |
(TROFF)2948 5852 w | |
10 PA f | |
( create unique file)3 788(process\) can be used to)4 1022 2 3230 5852 t | |
( up with subsequent)3 921(names to be picked)3 868 2 720 5972 t | |
10 CW f | |
(.so)2541 5972 w | |
10 PA f | |
( built-in string)2 648(commands. The)1 735 2 2753 5972 t | |
10 CW f | |
(\\*\(.T)4168 5972 w | |
10 PA f | |
(contains the)1 540 1 4500 5972 t | |
(name of the current typesetter obtained from the)7 2154 1 720 6092 t | |
10 CW f | |
(-T)2899 6092 w | |
10 PA f | |
(argument or its default.)3 1046 1 3044 6092 t | |
10 PB f | |
( Commands)1 547(7. Graphics)1 540 2 720 6332 t | |
10 PA f | |
( significant new facility is the ability to draw simple graphical objects \320 diagonal)13 3656(The most)1 414 2 970 6488 t | |
(lines, circles, ellipses, arcs, and splines \320 in)7 1924 1 720 6608 t | |
8 PA f | |
(TROFF)2669 6608 w | |
10 PA f | |
(.)2925 6608 w | |
(The new graphical commands are)4 1496 1 970 6764 t | |
cleartomark | |
showpage | |
saveobj restore | |
%%EndPage: 10 12 | |
%%Page: 11 13 | |
/saveobj save def | |
mark | |
13 pagesetup | |
10 PA f | |
(- 11 -)2 216 1 2772 480 t | |
9 CW f | |
(\\D'l)1008 830 w | |
9 PI f | |
(dh dv)1 203 1 1247 830 t | |
9 CW f | |
( line from current position by)5 1620(' draw)1 494 2 1450 830 t | |
9 PI f | |
(dh, dv)1 226 1 3618 830 t | |
9 CW f | |
(\\D'c)1008 940 w | |
9 PI f | |
(d)1247 940 w | |
9 CW f | |
( circle of diameter)3 1026(' draw)1 652 2 1292 940 t | |
9 PI f | |
(d)3024 940 w | |
9 CW f | |
(with left side at current position)5 1836 1 3123 940 t | |
(\\D'e)1008 1050 w | |
9 PI f | |
(d1 d2)1 203 1 1247 1050 t | |
9 CW f | |
( ellipse of diameters)3 1134(' draw)1 494 2 1450 1050 t | |
9 PI f | |
(d1 d2)1 203 1 3132 1050 t | |
9 CW f | |
(\\D'a)1008 1160 w | |
9 PI f | |
(dh1 dv1 dh2 dv2)3 609 1 1247 1160 t | |
9 CW f | |
(')1856 1160 w | |
(draw arc from current position to)5 1782 1 1728 1270 t | |
9 PI f | |
(dh1+dh2 dv1+dv2)1 673 1 3564 1270 t | |
9 CW f | |
(,)4237 1270 w | |
(with center at)2 756 1 1728 1380 t | |
9 PI f | |
(dh1 dv1)1 293 1 2538 1380 t | |
9 CW f | |
(from current position)2 1134 1 2885 1380 t | |
(\\D'\304)1008 1490 w | |
9 PI f | |
(dh1 dv1 dh2 dv2 ...)4 701 1 1247 1490 t | |
9 CW f | |
(')1948 1490 w | |
(draw B-spline from current position by)5 2052 1 1728 1600 t | |
9 PI f | |
(dh1 dv1)1 293 1 3834 1600 t | |
9 CW f | |
(then by)1 378 1 1728 1710 t | |
9 PI f | |
(dh2 dv2)1 293 1 2160 1710 t | |
9 CW f | |
(, then by)2 486 1 2453 1710 t | |
9 PI f | |
(dh2, dv2)1 316 1 2993 1710 t | |
9 CW f | |
(, then ...)2 540 1 3309 1710 t | |
10 PA f | |
(For example, the input)3 1095 1 720 1890 t | |
10 CW f | |
(\\D'e0.2i 0.1i')1 870 1 1870 1890 t | |
10 PA f | |
(draws the ellipse)2 812 1 2795 1890 t | |
cleartomark | |
saveobj restore | |
%%BeginGlobal | |
% | |
% Version 3.3.1 drawing procedures for dpost. Automatically pulled in when | |
% needed. | |
% | |
/inpath false def | |
/savematrix matrix def | |
/Dl { | |
inpath | |
{pop pop neg lineto} | |
{newpath neg moveto neg lineto stroke} | |
ifelse | |
} bind def | |
/De { | |
/y1 exch 2 div def | |
/x1 exch 2 div def | |
/savematrix savematrix currentmatrix def | |
neg exch x1 add exch translate | |
x1 y1 scale | |
0 0 1 0 360 | |
inpath | |
{1 0 moveto arc savematrix setmatrix} | |
{newpath arc savematrix setmatrix stroke} | |
ifelse | |
} bind def | |
/Da { | |
/dy2 exch def | |
/dx2 exch def | |
/dy1 exch def | |
/dx1 exch def | |
dy1 add neg exch dx1 add exch | |
dx1 dx1 mul dy1 dy1 mul add sqrt | |
dy1 dx1 neg atan | |
dy2 neg dx2 atan | |
inpath | |
{arc} | |
{newpath arc stroke} | |
ifelse | |
} bind def | |
/DA { | |
/dy2 exch def | |
/dx2 exch def | |
/dy1 exch def | |
/dx1 exch def | |
dy1 add neg exch dx1 add exch | |
dx1 dx1 mul dy1 dy1 mul add sqrt | |
dy1 dx1 neg atan | |
dy2 neg dx2 atan | |
inpath | |
{arcn} | |
{newpath arcn stroke} | |
ifelse | |
} bind def | |
/Ds { | |
/y2 exch def | |
/x2 exch def | |
/y1 exch def | |
/x1 exch def | |
/y0 exch def | |
/x0 exch def | |
x0 5 x1 mul add 6 div | |
y0 5 y1 mul add -6 div | |
x2 5 x1 mul add 6 div | |
y2 5 y1 mul add -6 div | |
x1 x2 add 2 div | |
y1 y2 add -2 div | |
inpath | |
{curveto} | |
{newpath x0 x1 add 2 div y0 y1 add -2 div moveto curveto stroke} | |
ifelse | |
} bind def | |
%%EndGlobal | |
/saveobj save def | |
mark | |
10 PA f | |
3663 1890 144 72 De | |
(, and the input)3 741 1 3823 1890 t | |
10 CW f | |
(\\D'l.2i)4620 1890 w | |
(-.1i'\\D'l.1i .1i')1 1033 1 720 2010 t | |
10 PA f | |
( the line)2 377(will draw)1 442 2 1791 2010 t | |
2791 1938 2647 2010 Dl | |
2863 2010 2791 1938 Dl | |
( position after a graphical object has been)7 1907(. The)1 254 2 2879 2010 t | |
( with other)2 507( As)1 180( ``end'', where for circles and ellipses, the end is at the right side.)13 2981(drawn is at its)3 652 4 720 2130 t | |
(commands, default units are ems horizontally and line spaces vertically.)9 3188 1 720 2250 t | |
( direct use, but for preprocessors like)6 1658(Realistically, these commands are not intended for)6 2251 2 970 2406 t | |
8 PA f | |
(PIC)4908 2406 w | |
10 PA f | |
(and)720 2526 w | |
8 PA f | |
(IDEAL)914 2526 w | |
10 PA f | |
(.)1163 2526 w | |
( discussion of the)3 797(The output generated by these commands is shown in the)9 2644 2 970 2682 t | |
8 PA f | |
(TROFF)4447 2682 w | |
10 PA f | |
(output)4739 2682 w | |
( than drawing the shape in)5 1260( Rather)1 361( earlier section.)2 698(language in an)2 684 4 720 2802 t | |
8 PA f | |
(TROFF)3763 2802 w | |
10 PA f | |
(, a command with the)4 1021 1 4019 2802 t | |
( the device post-processor, which does whatever it can)8 2511(proper parameters is passed through to)5 1809 2 720 2922 t | |
(with the request.)2 744 1 720 3042 t | |
10 PB f | |
( Ends)1 252(8. Loose)1 392 2 720 3282 t | |
10 PA f | |
(This version of)2 660 1 970 3438 t | |
8 PA f | |
(TROFF)1657 3438 w | |
10 PA f | |
( experience with)2 734( of our)2 297( Most)1 277(has been in use since September of 1979.)7 1792 4 1940 3438 t | |
( been exercised)2 677(it has been on the 202 and Tektronix scopes, but the CAT and APS-5 drivers have)15 3643 2 720 3558 t | |
(to some degree.)2 697 1 720 3678 t | |
( or that remain to be)5 938(As mentioned, there are some obvious things that could be improved)10 3132 2 970 3834 t | |
( instance,)1 428(added. For)1 524 2 720 3954 t | |
8 PA f | |
(TROFF)1713 3954 w | |
10 PA f | |
('s bracket-building function)2 1258 1 1969 3954 t | |
10 CW f | |
(\\b)3268 3954 w | |
10 PA f | |
(really ought to be implemented by)5 1611 1 3429 3954 t | |
(postprocessor, so that typesetters like the 202 can draw a character like)11 3192 1 720 4074 t | |
10 PA f | |
0 48 changefont | |
({)3943 4194 w | |
10 PA f | |
( of syn-)2 341(directly instead)1 692 2 4007 4074 t | |
( necessary to add ``modes'' to permit graphical)7 2190( also appears to be)4 889( It)1 135(thesizing it from pieces.)3 1106 4 720 4194 t | |
(objects to be dotted, dashed, etc.)5 1427 1 720 4314 t | |
( is likely to be so forever, especially with the prolifera-)10 2475(Efficiency is always a problem, and)5 1595 2 970 4470 t | |
( improvements \(perhaps 10)3 1223( Small)1 303(tion of preprocessors generating ever more complicated input.)7 2794 3 720 4590 t | |
( the temporary file upon)4 1141( Placing)1 391( searching.)1 490(percent\) can be had from artifices like better table)8 2298 4 720 4710 t | |
(which)720 4830 w | |
8 PA f | |
(TROFF)1025 4830 w | |
10 PA f | |
( for another 10-20 percent on machines)6 1756(stores macro definitions in memory is good)6 1970 2 1314 4830 t | |
(like the)1 333 1 720 4950 t | |
8 PA f | |
(VAX)1085 4950 w | |
10 PA f | |
( speedup is likely without a)5 1263( no order-of-magnitude)2 1058( But)1 211(that have enough memory.)3 1217 4 1291 4950 t | |
(gross revision of the basic design.)5 1483 1 720 5070 t | |
(It is clear that)3 613 1 970 5226 t | |
8 PA f | |
(TROFF)1613 5226 w | |
10 PA f | |
( is far)2 256(ought to be replaced by something better, but, as I said above, it)12 2885 2 1899 5226 t | |
( for better or worse,)4 881( So)1 160(from clear how to do the job a lot better.)9 1791 3 720 5346 t | |
8 PA f | |
(TROFF)3579 5346 w | |
10 PA f | |
( us for a)3 358(is likely to be with)4 820 2 3862 5346 t | |
(long time.)1 446 1 720 5466 t | |
10 PB f | |
(Acknowledgements)720 5706 w | |
10 PA f | |
( taming)1 347(I am deeply indebted to Ken Thompson and Joe Condon, without whose efforts in)13 3723 2 970 5862 t | |
(the Mergenthaler Linotron 202 the)4 1628 1 720 5982 t | |
8 PA f | |
(TROFF)2400 5982 w | |
10 PA f | |
( here would be irrelevant.)4 1245(modifications discussed)1 1087 2 2708 5982 t | |
( am also grateful to Chris)5 1161( I)1 93( character-generating software.)2 1393(Thompson also provided most of the)5 1673 4 720 6102 t | |
( algorithm)1 464(Van Wyk for the line and circle drawing algorithms and to Theo Pavlidis for the spline)15 3856 2 720 6222 t | |
(used by all the postprocessors.)4 1352 1 720 6342 t | |
( typography,'')1 639( E. Knuth, ``Mathematical)3 1155(1. Donald)1 580 3 720 6534 t | |
10 PI f | |
(Bulletin \(New Series\) of the American Mathe-)6 1912 1 3128 6534 t | |
(matical Society)1 612 1 970 6654 t | |
10 PB f | |
(1)1607 6654 w | |
10 PA f | |
(\(2\) \(1979\).)1 432 1 1657 6654 t | |
( Laborato-)1 467( Bell)1 227( Sci. Tech. Rep. 54,)4 852( F. Ossanna, ``NROFF/TROFF User's Manual,'' Comp.)6 2466(2. J.)1 308 5 720 6810 t | |
( Hill, NJ \(October 1976\).)4 1056(ries, Murray)1 575 2 970 6930 t | |
( A Crude Graphics Language for Typesetting,'' Comp. Sci.)8 2723( W. Kernighan, ``PIC \320)4 1109(3. Brian)1 488 3 720 7086 t | |
( in SIGPLAN Symposium on Text)5 1535( Also)1 262( Hill, NJ.)2 402( Murray)1 399( Laboratories,)1 617( Bell)1 226(Tech. Rep. 85,)2 629 7 970 7206 t | |
cleartomark | |
showpage | |
saveobj restore | |
%%EndPage: 11 13 | |
%%Page: 12 14 | |
/saveobj save def | |
mark | |
14 pagesetup | |
10 PA f | |
(- 12 -)2 216 1 2772 480 t | |
(Manipulation, Portland, June 1981.)3 1541 1 970 840 t | |
( Typesetting Language,'' SIGPLAN Symposium on)5 2333( J. Van Wyk, ``A Graphics)5 1203(4. Christopher)1 784 3 720 996 t | |
(Text Manipulation, Portland \(June, 1981\).)4 1826 1 970 1116 t | |
cleartomark | |
showpage | |
saveobj restore | |
%%EndPage: 12 14 | |
%%Page: 13 15 | |
/saveobj save def | |
mark | |
15 pagesetup | |
10 PA f | |
(- 13 -)2 216 1 2772 480 t | |
10 PB f | |
( of Language Changes)3 1009(Appendix: Summary)1 975 2 720 840 t | |
10 PA f | |
( to the)2 293(This appendix enumerates the changes)4 1746 2 970 996 t | |
8 PA f | |
(TROFF)3042 996 w | |
10 PA f | |
(language since the last printing of the)6 1709 1 3331 996 t | |
(manual.)720 1116 w | |
10 PB f | |
(Command line arguments)2 1188 1 720 1356 t | |
10 PA f | |
(The argument)1 630 1 970 1512 t | |
10 CW f | |
(-Txxx)1630 1512 w | |
10 PA f | |
( and character definitions for typesetter)5 1775(loads parameters)1 766 2 1960 1512 t | |
10 CW f | |
(xxx)4532 1512 w | |
10 PA f | |
(, which)1 328 1 4712 1512 t | |
(at the moment is typically one of)6 1448 1 720 1632 t | |
10 CW f | |
(202)2193 1632 w | |
10 PA f | |
(,)2373 1632 w | |
10 CW f | |
(aps)2423 1632 w | |
10 PA f | |
(or)2628 1632 w | |
10 CW f | |
(cat)2748 1632 w | |
10 PA f | |
(.)2928 1632 w | |
10 CW f | |
(-Fxxx)970 1788 w | |
10 PA f | |
( from directory)2 718(causes font information to be loaded)5 1723 2 1317 1788 t | |
10 CW f | |
(xxx)3806 1788 w | |
10 PA f | |
(instead of the default)3 1006 1 4034 1788 t | |
10 CW f | |
(/usr/lib/font/dev202)720 1908 w | |
10 PA f | |
(.)1920 1908 w | |
10 PB f | |
(Graphics commands)1 934 1 720 2148 t | |
10 PA f | |
(As described in section 7.)4 1119 1 970 2304 t | |
10 PB f | |
(Other new commands)2 1004 1 720 2544 t | |
10 CW f | |
(.sy)970 2700 w | |
10 PI f | |
(commandline)1175 2700 w | |
10 PA f | |
( is not captured anyplace.)4 1133( Output)1 375(executes the command, then returns.)4 1626 3 1742 2700 t | |
10 CW f | |
(.cf)970 2856 w | |
10 PI f | |
(file)1192 2856 w | |
10 PA f | |
(copies)1357 2856 w | |
10 PI f | |
(file)1677 2856 w | |
10 PA f | |
(into the)1 357 1 1843 2856 t | |
8 PA f | |
(TROFF)2243 2856 w | |
10 PA f | |
( ensues)1 341( Havoc)1 356(output file at this point, uninterpreted.)5 1801 3 2542 2856 t | |
( command)1 486( This)1 257( in the file restore current horizontal and vertical position.)9 2713(unless the motions)2 864 4 720 2976 t | |
(hasn't been used much, and is probably a bad idea anyway.)10 2636 1 720 3096 t | |
10 CW f | |
(.pi)970 3252 w | |
10 PI f | |
(program)1184 3252 w | |
10 PA f | |
(\(pipe the output into)3 947 1 1562 3252 t | |
10 PI f | |
(program)2544 3252 w | |
10 PA f | |
(\) now works in)3 697 1 2888 3252 t | |
8 PA f | |
(TROFF)3620 3252 w | |
10 PA f | |
(as well as)2 443 1 3911 3252 t | |
8 PA f | |
(NROFF)4389 3252 w | |
10 PA f | |
(, since it)2 378 1 4662 3252 t | |
(makes somewhat more sense to allow it.)6 1781 1 720 3372 t | |
10 CW f | |
(\\H'n')970 3528 w | |
10 PA f | |
(sets the character height to)4 1193 1 1298 3528 t | |
10 CW f | |
(n)2519 3528 w | |
10 PA f | |
( form)1 245( height of the)3 593(points. A)1 433 3 2607 3528 t | |
10 S f | |
(\261)3907 3528 w | |
10 PI f | |
(n)3962 3528 w | |
10 PA f | |
(is an increment on the)4 993 1 4047 3528 t | |
(current point size; a height of zero restores the height to the point size.)13 3115 1 720 3648 t | |
10 CW f | |
(\\S'n')970 3804 w | |
10 PA f | |
(sets the slant to)3 679 1 1295 3804 t | |
10 CW f | |
(n)1999 3804 w | |
10 PA f | |
(degrees.)2084 3804 w | |
10 PI f | |
(n)2502 3804 w | |
10 PA f | |
(may be negative.)2 750 1 2583 3804 t | |
(The number register)2 902 1 970 3960 t | |
10 CW f | |
($$)1897 3960 w | |
10 PA f | |
(contains the process id of the)5 1281 1 2042 3960 t | |
8 PA f | |
(TROFF)3348 3960 w | |
10 PA f | |
(process.)3629 3960 w | |
(The string)1 450 1 970 4116 t | |
10 CW f | |
(.T)1445 4116 w | |
10 PA f | |
(contains the name of the current typesetter \(e.g.,)7 2130 1 1590 4116 t | |
10 CW f | |
(202)3745 4116 w | |
10 PA f | |
(,)3925 4116 w | |
10 CW f | |
(aps)3975 4116 w | |
10 PA f | |
(,)4155 4116 w | |
10 CW f | |
(cat)4205 4116 w | |
10 PA f | |
(\).)4385 4116 w | |
(The)970 4272 w | |
10 CW f | |
(.fp)1169 4272 w | |
10 PA f | |
( the data for the font to be loaded)8 1538(command accepts a third argument that causes)6 2121 2 1381 4272 t | |
( allowing dynamic character defini-)4 1625( has been added as a first step to)8 1542( This)1 254(from that directory.)2 899 4 720 4392 t | |
(tions.)720 4512 w | |
(The)970 4668 w | |
10 CW f | |
(.ft)1172 4668 w | |
10 PA f | |
( position 0 \(which is in all)6 1198(command causes the named font to be loaded on font)9 2455 2 1387 4668 t | |
( not currently mounted by default or by a)8 1926(other ways inaccessible\) if the font exists and is)8 2178 2 720 4788 t | |
10 CW f | |
(.fp)4860 4788 w | |
10 PA f | |
( font must be still or again in position 0 when the line is printed.)14 2828(command. The)1 686 2 720 4908 t | |
(Transparent mode \()2 897 1 970 5064 t | |
10 CW f | |
(\\!)1867 5064 w | |
10 PA f | |
( transparent output actually appears in the)6 1962( been fixed so that)4 847(\) has)1 244 3 1987 5064 t | |
(output; thus special commands can be passed through to postprocessors by witchcraft like)12 3991 1 720 5184 t | |
9 CW f | |
(.if "\\*\(.T"202" \\!x ...)3 1242 1 1008 5354 t | |
10 PA f | |
(\(If this makes no sense to you, you shouldn't be using it anyway.\))12 2897 1 720 5534 t | |
10 PB f | |
(Deletions)720 5774 w | |
10 PA f | |
(The)970 5930 w | |
10 CW f | |
(.fz)1173 5930 w | |
10 PA f | |
(and)1389 5930 w | |
10 CW f | |
(.li)1594 5930 w | |
10 PA f | |
( The)1 229(commands are no more.)3 1104 2 1811 5930 t | |
10 CW f | |
(-p)3181 5930 w | |
10 PA f | |
(,)3301 5930 w | |
10 CW f | |
(-g)3363 5930 w | |
10 PA f | |
(and)3520 5930 w | |
10 CW f | |
(+n)3726 5930 w | |
10 PA f | |
(command line arguments)2 1157 1 3883 5930 t | |
(have also been eliminated, as has the)6 1626 1 720 6050 t | |
10 CW f | |
(hp)2371 6050 w | |
10 PA f | |
(number register.)1 735 1 2516 6050 t | |
cleartomark | |
showpage | |
saveobj restore | |
%%EndPage: 13 15 | |
%%Trailer | |
done | |
%%Pages: 15 | |
%%DocumentFonts: AvantGarde-Book Courier Palatino-Roman Palatino-Bold Palatino-Italic Times-Roman Symbol |
ref: