|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T v
Length: 24882 (0x6132) Types: TextFile Names: »volume2-6.ps«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦1d3a99260⟧ »EurOpenD22/pp5.0/pp-5-ps-a4.tar.Z« └─⟦8e071bc08⟧ └─⟦this⟧ »pp-5.0/doc/manual/ps/volume2-6.ps«
%! for use by dvi2ps Version 2.00 % a start (Ha!) at a TeX mode for PostScript. % The following defines procedures assumed and used by program "dvi2ps" % and must be downloaded or sent as a header file for all TeX jobs. % By: Neal Holtz, Carleton University, Ottawa, Canada % <holtz@cascade.carleton.cdn> % <holtz%cascade.carleton.cdn@ubc.csnet> % June, 1985 % Last Modified: Aug 25/85 % oystr 12-Feb-1986 % Changed @dc macro to check for a badly formed bits in character % definitions. Can get a <> bit map if a character is not actually % in the font file. This is absolutely guaranteed to drive the % printer nuts - it will appear that you can no longer define a % new font, although the built-ins will still be there. % To convert this file into a downloaded file instead of a header % file, uncomment all of the lines beginning with %-% %-%0000000 % Server loop exit password %-%serverdict begin exitserver %-% systemdict /statusdict known %-% {statusdict begin 9 0 3 setsccinteractive /waittimeout 300 def end} %-% if /TeXDict 200 dict def % define a working dictionary TeXDict begin % start using it. % units are in "dots" (300/inch) /Resolution 300 def /Inch {Resolution mul} def % converts inches to internal units /Mtrx 6 array def %%%%%%%%%%%%%%%%%%%%% Page setup (user) options %%%%%%%%%%%%%%%%%%%%%%%% % dvi2ps will output coordinates in the TeX system ([0,0] 1" down and in % from top left, with y +ive downward). The default PostScript system % is [0,0] at bottom left, y +ive up. The Many Matrix Machinations in % the following code are an attempt to reconcile that. The intent is to % specify the scaling as 1 and have only translations in the matrix to % properly position the text. Caution: the default device matrices are % *not* the same in all PostScript devices; that should not matter in most % of the code below (except for lanscape mode -- in that, rotations of % -90 degrees resulted in the the rotation matrix [ e 1 ] % [ 1 e ] % where the "e"s were almost exactly but not quite unlike zeros. % NOTE: We use A4 size paper. For letter size paper the constants '340' in the % following code should be changed to '310'. /@a4 { 72 Resolution div dup neg scale 270 -3215 translate Mtrx currentmatrix pop }def /@letter { letter initmatrix 72 Resolution div dup neg scale % set scaling to 1. 310 -3005 translate % move origin to top (these are not exactly 1" Mtrx currentmatrix pop % and -10" because margins aren't set exactly right) } def % note mode is like letter, except it uses less VM /@note { note initmatrix 72 Resolution div dup neg scale % set scaling to 1. 310 -3005 translate % move origin to top Mtrx currentmatrix pop } def % A3 modes courtesy of Francis Pintos, UCL /@a3landscape {a3 initmatrix 72 Resolution div dup neg scale -90 rotate 300 310 translate Mtrx currentmatrix pop statusdict begin 1 setpapertray end }def /@a3portrait {a3 initmatrix 72 Resolution div dup neg scale 300 310 translate Mtrx currentmatrix pop statusdict begin 1 setpapertray end }def /@landscape { letter initmatrix 72 Resolution div dup neg scale % set scaling to 1. -90 rotate % it would be nice to be able to do this % Mtrx currentmatrix 0 0.0 put % but instead we have to do things like this because what % Mtrx 1 -1.0 put % should be zero terms aren't (and text comes out wobbly) % Mtrx 2 1.0 put % Fie! This likely will not work on QMS printers % Mtrx 3 0.0 put % (nor on others where the device matrix is not like % Mtrx setmatrix % like it is on the LaserWriter). 300 310 translate % move origin to top Mtrx currentmatrix pop } def /@legal { legal initmatrix 72 Resolution div dup neg scale % set scaling to 1. 295 -3880 translate % move origin to top Mtrx currentmatrix pop } def /@manualfeed { statusdict /manualfeed true put } def % n @copies - set number of copies /@copies { /#copies exch def } def /@restore /restore load def /restore {vmstatus pop dup @VMused lt{pop @VMused}if % calculate virtual memory used exch pop exch @restore /@VMused exch def }def /@pri { ( ) print ( ) cvs print }def /@FontMatrix [1 0 0 -1 0 0] def /@FontBBox [0 0 1 1] def %%%%%%%%%%%%%%%%%%%% Procedure Defintions %%%%%%%%%%%%%%%%%%%%%%%%%% /@newfont % id @newfont - -- initialize a new font dictionary { /newname exch def newname 7 dict def % allocate new font dictionary newname load begin /FontType 3 def /FontMatrix @FontMatrix def /FontBBox @FontBBox def /BitMaps 128 array def /BuildChar {CharBuilder} def /Encoding 128 array def 0 1 127 {Encoding exch /.undef put} for end newname newname load definefont pop } def % the following is the only character builder we need. it looks up the % char data in the BitMaps array, and paints the character if possible. % char data -- a bitmap descriptor -- is an array of length 6, of % which the various slots are: /ch-image {ch-data 0 get} def % the hex string image /ch-width {ch-data 1 get} def % the number of pixels across /ch-height {ch-data 2 get} def % the number of pixels tall /ch-xoff {ch-data 3 get} def % number of pixels below origin /ch-yoff {ch-data 4 get} def % number of pixels to left of origin /ch-tfmw {ch-data 5 get} def % spacing to next character /CharBuilder % fontdict ch Charbuilder - -- image one character {save 3 1 roll exch /BitMaps get exch get /ch-data exch def ch-data null ne {ch-tfmw 0 ch-xoff neg ch-yoff neg ch-width ch-xoff sub ch-height ch-yoff sub setcachedevice ch-width ch-height true [1 0 0 1 ch-xoff ch-yoff] {ch-image} imagemask }if restore } def /@sf % fontdict @sf - -- make that the current font { dup % All smallcaps fonts must have the string SmallCaps in their name /FontName known { dup /FontName get tempstring cvs (SmallCaps) search {/smallcaps true def pop pop pop} {/smallcaps false def pop} ifelse } {/smallcaps false def} ifelse setfont } def % in the following, the font-cacheing mechanism requires that % a name unique in the particular font be generated /@dc % char-data ch @dc - -- define a new character bitmap in current font { /ch-code exch def % ++oystr 12-Feb-86++ dup 0 get length 2 lt { pop [ <00> 1 1 0 0 8.00 ] } % replace <> with null if % --oystr 12-Feb-86-- /ch-data exch def currentfont /BitMaps get ch-code ch-data put currentfont /Encoding get ch-code dup ( ) cvs cvn % generate a unique name simply from the character code put } def /@pc % char-data ch @pc - -- print a character bitmap not downloaded {pop /ch-data exch def currentpoint translate ch-width ch-height true [1 0 0 -1 ch-xoff ch-yoff] {ch-image}imagemask }def /@bop0 % n @bop0 - -- begin the char def section of a new page { pop } def /@bop1 % n @bop1 - -- begin a brand new page { pop erasepage initgraphics Mtrx setmatrix /SaveImage save def % % RLW: % The following is a fix necessary since a /@beginspecial immediately % following a /@bop1 failed. This was due to a lack of definition of the % current point, something which can only happen in the one situation. % Suffer the extra code for all other case as new pages don't happen too often. % 0 0 moveto % } def /@eop % - @eop - -- end a page { showpage SaveImage restore } def /@start % - @start - -- start everything { @a4 % (there is not much to do) vmstatus pop /@VMused exch def pop } def /@end % - @end - -- done the whole shebang {(VM used: ) print @VMused @pri (. Unused: ) print vmstatus @VMused sub @pri pop pop (\n) print flush end } def /p % x y p - -- move to position { moveto } def /r % x r - -- move right { 0 rmoveto } def /s % string s - -- show the string { smallcaps {SmallCapShow} {show} ifelse } def /c % ch c - -- show the character (code given) { c-string exch 0 exch put c-string s } def /c-string ( ) def /ru % dx dy ru - -- set a rule (rectangle) { /dy exch neg def % because dy is height up from bottom /dx exch def /x currentpoint /y exch def def % remember current point newpath x y moveto dx 0 rlineto 0 dy rlineto dx neg 0 rlineto closepath fill x y moveto } def /l % x y l - -- draw line to { lineto } def /rl % dx dy rl - -- draw relative line { rlineto } def /rc % x0 y0 x1 y1 y2 y2 rc -- draw bezier curve { rcurveto } def /np % np - -- start a new path and save currenpoint { /SaveX currentpoint /SaveY exch def def % remember current point newpath } def /st % st - -- draw the last path and restore currentpoint { stroke SaveX SaveY moveto % restore the current point } def /f % f -- fill the last path and restore currentpoint { fill SaveX SaveY moveto % restore the current point } def /ellipse % xc yc xrad yrad startAngle endAngle ellipse { /endangle exch def /startangle exch def /yrad exch def /xrad exch def /y exch def /x exch def /savematrix matrix currentmatrix def x y translate xrad yrad scale 0 0 1 startangle endangle arc savematrix setmatrix } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% the \special command junk %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % The structure of the PostScript produced by dvi2ps for \special is: % @beginspecial % - any number of @hsize, @hoffset, @hscale, etc., commands % @setspecial % - the users file of PostScript commands % @endspecial % The @beginspecial command recognizes whether the Macintosh Laserprep % has been loaded or not, and redfines some Mac commands if so. %%% NOTE: This has been disabled as we don't use it !! % The @setspecial handles the users shifting, scaling, clipping commands % The following are user settable options from the \special command. /@SpecialDefaults { /hs 8.5 Inch def /vs 11.68 Inch def /ho 0 def /vo 0 def /hsc 1 def /vsc 1 def /CLIP false def } def % d @hsize - specify a horizontal clipping dimension % these 2 are executed before the MacDraw initializations /@hsize {/hs exch def /CLIP true def} def /@vsize {/vs exch def /CLIP true def} def % d @hoffset - specify a shift for the drwgs /@hoffset {/ho exch def} def /@voffset {/vo exch def} def % s @hscale - set scale factor /@hscale {/hsc exch def} def /@vscale {/vsc exch def} def /@setclipper { hsc vsc scale CLIP { newpath 0 0 moveto hs 0 rlineto 0 vs rlineto hs neg 0 rlineto closepath clip } if } def % this will be invoked as the result of a \special command (for the % inclusion of PostScript graphics). The basic idea is to change all % scaling and graphics back to defaults, but to shift the origin % to the current position on the page. Due to TeXnical difficulties, % we only set the y-origin. The x-origin is set at the left edge of % the page. /@beginspecial % - @beginspecial - -- enter special mode { gsave /SpecialSave save def % the following magic incantation establishes the current point as % the users origin, and reverts back to default scalings, rotations currentpoint transform initgraphics itransform translate @SpecialDefaults % setup default offsets, scales, sizes %%% @MacSetUp % fix up Mac stuff -- DISABLED /showpage {} def %%% Ignore showpage commands } def /@setspecial % to setup user specified offsets, scales, sizes (for clipping) { MacDrwgs {md begin /pxt ho def /pyt vo neg def end} {ho vo translate @setclipper} ifelse } def /@endspecial % - @endspecial - -- leave special mode { SpecialSave restore grestore } def %! % All software, documentation, and related files in this distribution of % psfig/tex are Copyright (c) 1987 Trevor J. Darrell % % Permission is granted for use and non-profit distribution of psfig/tex % providing that this notice be clearly maintained, but the right to % distribute any portion of psfig/tex for profit or as part of any commercial % product is specifically reserved for the author. % % % psfigTeX PostScript Prolog % $Header: tex.ps,v 1.13 87/12/14 00:57:00 van Exp $ % /psf$TeXscale { 65536 div } def /DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecap currentlinejoin currentdash currentgray currentmiterlimit ] cvx def % x y bb-llx bb-lly bb-urx bb-ury startFig - /startTexFig { /psf$SavedState save def userdict maxlength dict begin currentpoint transform DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix itransform moveto /psf$ury exch psf$TeXscale def /psf$urx exch psf$TeXscale def /psf$lly exch psf$TeXscale def /psf$llx exch psf$TeXscale def /psf$y exch psf$TeXscale def /psf$x exch psf$TeXscale def currentpoint /psf$cy exch def /psf$cx exch def /psf$sx psf$x psf$urx psf$llx sub div def % scaling for x /psf$sy psf$y psf$ury psf$lly sub div def % scaling for y psf$sx psf$sy scale % scale by (sx,sy) psf$cx psf$sx div psf$llx sub psf$cy psf$sy div psf$ury sub translate /DefFigCTM matrix currentmatrix def /initmatrix { DefFigCTM setmatrix } def /defaultmatrix { DefFigCTM exch copy } def /initgraphics { DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix DefFigCTM setmatrix } def /showpage { initgraphics } def @MacSetUp } def % llx lly urx ury doclip - (args in figure coordinates) /doclip { currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto exch lineto exch lineto closepath clip newpath moveto } def % - endTexFig - /endTexFig { end psf$SavedState restore } def %%%% Additions by LA Carr to reencode Adobe fonts as TeX fonts (almost) %%%% Based on routine in LaserWriter Cookbook /ReEncodeForTeX { /newfontname exch def /basefontname exch def /TeXstr 30 string def /basefontdict basefontname findfont def /newfont basefontdict maxlength dict def basefontdict { exch dup /FID ne { dup /Encoding eq { exch dup length array copy newfont 3 1 roll put } { exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall %% newfont /FontName newfontname put %% basefontname TeXstr cvs (Dingbat) search { pop pop pop } { pop /TeXvec basefontname TeXstr cvs (Courier) search { pop pop pop TeXcourvec } { pop TeXnormalvec } ifelse def TeXvec aload pop TeXvec length 2 idiv { newfont /Encoding get 3 1 roll put } repeat } ifelse newfontname newfont definefont pop } def /TeXnormalvec [ 8#014 /fi 8#015 /fl 8#020 /dotlessi 8#022 /grave 8#023 /acute 8#024 /caron 8#025 /breve 8#026 /macron 8#027 /ring 8#030 /cedilla 8#031 /germandbls 8#032 /ae 8#033 /oe 8#034 /oslash 8#035 /AE 8#036 /OE 8#037 /Oslash 8#042 /quotedblright 8#074 /exclamdown 8#076 /questiondown 8#134 /quotedblleft 8#136 /circumflex 8#137 /dotaccent 8#173 /endash 8#174 /emdash 8#175 /quotedbl 8#177 /dieresis ] def /TeXcourvec [ 8#016 /exclamdown 8#017 /questiondown 8#020 /dotlessi 8#022 /grave 8#023 /acute 8#024 /caron 8#025 /breve 8#026 /macron 8#027 /ring 8#030 /cedilla 8#031 /germandbls 8#032 /ae 8#033 /oe 8#034 /oslash 8#035 /AE 8#036 /OE 8#037 /Oslash 8#074 /less 8#076 /greater 8#134 /backslash 8#136 /circumflex 8#137 /underscore 8#173 /braceleft 8#174 /bar 8#175 /braceright 8#177 /dieresis ] def /TeXPSmakefont { % defines a routine for generating PS fonts, fudged! /TeXsize exch def findfont [ TeXsize 0 0 TeXsize neg 0 0 ] makefont } def %Create a General Oblique font /ObliqueFont { /ObliqueAngle exch def /ObliqueBaseName exch def /ObliqueFontName exch def /ObliqueTransform [1 0 ObliqueAngle sin ObliqueAngle cos div 1 0 0] def /basefontdict ObliqueBaseName findfont ObliqueTransform makefont def /newfont basefontdict maxlength dict def basefontdict { exch dup /FID ne { dup /Encoding eq { exch dup length array copy newfont 3 1 roll put } { exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall newfont /FontName ObliqueFontName put ObliqueFontName newfont definefont pop } def /Times-Oblique /Times-Roman 15.5 ObliqueFont /Times-BoldOblique /Times-Bold 15 ObliqueFont %/Palatino-Oblique /Palatino-Roman 10 ObliqueFont %/Palatino-BoldOblique /Palatino-Bold 10 ObliqueFont /Times-ItalicUnslanted /Times-Italic -15.15 ObliqueFont %Create a Palatino-ItalicUnslanted font? You must be joking! %Create a General SmallCaps font /SmallCapsFont { /SmallCapsBaseName exch def /SmallCapsFontName exch def /basefontdict SmallCapsBaseName findfont def /newfont basefontdict maxlength dict def basefontdict { exch dup /FID ne { dup /Encoding eq { exch dup length array copy newfont 3 1 roll put } { exch newfont 3 1 roll put } ifelse } { pop pop } ifelse } forall newfont /FontName SmallCapsFontName put SmallCapsFontName newfont definefont pop } def /Times-SmallCaps /Times-Roman SmallCapsFont %/Palatino-SmallCaps /Palatino-Roman SmallCapsFont /SmallCapShow { % string smallcaps show /achar (A) def /xfac 0.8 def /yfac 0.8 def /xrec 1 xfac div def /yrec 1 yfac div def { dup dup 8#141 ge exch 8#172 le and { 8#40 sub achar exch 0 exch put achar xfac yfac scale show xrec yrec scale } { achar exch 0 exch put achar show } ifelse } forall } def /tempstring 100 string def % used for string conversions %%%% Additions by LA Carr to reencode Adobe fonts as TeX fonts (almost) %%%% Based on routine in LaserWriter Cookbook /MacDrwgs false def % will get set if we think the Mac LaserPrep file has been loaded % - @MacSetUp - turn-off/fix-up all the MacDraw stuff that might hurt us % we depend on 'psu' being the first procedure executed % by a Mac document. We redefine 'psu' to adjust page % translations, and to do all other the fixups required. % This stuff will not harm other included PS files /@MacSetUp { userdict /md known % if md is defined { userdict /md get type /dicttype eq % and if it is a dictionary { /MacDrwgs true def md begin % then redefine some stuff /psu % redfine psu to set origins, etc. /psu load % this procedure contains almost all the fixup code { /letter {} def % it is bad manners to execute the real /note {} def % versions of these (clears page image, etc.) /legal {} def statusdict /waittimeout 300 put /page {pop} def % no printing of pages /pyt vo neg def % x & y pixel translations /pxt ho def } concatprocs def /od % redefine od to set clipping region /od load { @setclipper } concatprocs def end } if } if } def % p1 p2 concatprocs p - concatenate procedures /concatprocs { /p2 exch cvlit def /p1 exch cvlit def /p p1 length p2 length add array def p 0 p1 putinterval p p1 length p2 putinterval p cvx } def end % revert to previous dictionary statusdict /waittimeout 300 put % Creator: Soren-Aksel Sorensen, Dept Computer Science, UCL % Title: University College London Logo % EndComments /UCL_line { 3 1 roll lineto { rlineto } repeat } def /UCL_mline { 3 1 roll moveto { rlineto } repeat } def /UCL_mcline { 3 1 roll moveto { rlineto } repeat closepath } def /UCL_box { 2 index exch 2 index exch dup 6 index exch moveto 3 { lineto } repeat closepath stroke newpath } def /UCL_leftdome { 216 355 85 180 130 arcn 196 446 175 528 10 arcto 4 { pop } repeat 202 456 8 191 110 arcn 17 20 -6 0 0 30 202 466 3 UCL_line 7 0 0 9 211 518 2 UCL_line stroke newpath } def /UCL_rightdome { 216 355 85 0 50 arc 236 446 257 528 10 arcto 4 { pop } repeat 230 456 8 349 70 arc -17 20 6 0 0 30 230 466 3 UCL_line -7 0 0 9 221 518 2 UCL_line stroke newpath } def /UCL_support { 0 0 432 28 UCL_box 16 42 416 68 UCL_box 2 26 378 0 2 -26 23 261 3 UCL_mline -2 -10 197 -42 197 42 -2 10 19 261 4 UCL_mcline 0 -18 4 -4 0 -26 10 -16 184 0 10 16 0 26 4 4 0 18 110 289 9 UCL_mline 204 0 114 333 1 UCL_mline stroke newpath } def /UCL_domebars { 88 0 172 428 1 UCL_mline 0 75 216 353 1 UCL_mline stroke newpath 301 347 144 177 146 arcn stroke newpath 386 353 200 180 158 arcn stroke newpath 46 353 200 22 0 arcn stroke newpath 131 347 144 34 3 arcn stroke newpath } def /UCL_LargeU { newpath 6 setlinewidth 0 setgray 58 213 moveto 63 213 63 150 9 arcto 4 { pop } repeat 63 123 lineto 63 80 150 80 150 123 curveto 150 209 167 211 9 arcto 4 { pop } repeat 165 211 lineto 165 212 1 270 90 arc 127 213 lineto 127 212 1 90 270 arc 145 209 145 150 9 arcto 4 { pop } repeat 145 128 lineto 145 85 75 85 75 128 curveto 75 209 93 211 9 arcto 4 { pop } repeat 91 211 lineto 91 212 1 270 90 arc closepath gsave fill grestore stroke newpath 58 213 moveto 31 213 lineto 31 212 1 90 270 arc 47 209 47 150 9 arcto 4 { pop } repeat 47 128 lineto 47 80 150 80 150 123 curveto stroke } def /UCL_LargeC { newpath 251 216 moveto 213 216 187 190 187 150 curveto 187 121 209 92 250 92 curveto 271 92 277 98 283 102 curveto 284 108 288 113 288 124 curveto 287 124 1 0 170 arc 281 110 266 96 250 96 curveto 218 96 201 115 201 155 curveto 201 190 218 211 254 211 curveto 266 211 275 205 285 191 curveto 286 191 1 200 0 arc 286 196 285 205 282 210 curveto 268 216 258 216 251 216 curveto closepath gsave fill grestore stroke newpath 251 216 moveto 198 216 172 190 171 150 curveto 171 125 183 92 250 92 curveto stroke newpath } def /UCL_LargeL { 318 213 moveto 339 213 339 150 11 arcto 4 { pop } repeat 339 94 318 94 14 arcto 4 { pop } repeat 401 94 lineto 403 100 404 110 405 121 curveto 404 121 1 0 170 arc 390 98 308 98 42 arcto 4 { pop } repeat 350 98 350 210 12 arcto 4 { pop } repeat 350 209 366 211 11 arcto 4 { pop } repeat 366 211 lineto 366 212 1 270 90 arc closepath gsave fill grestore stroke newpath 318 213 moveto 307 213 lineto 307 212 1 90 270 arc 323 209 323 150 9 arcto 4 { pop } repeat 323 98 307 96 10 arcto 4 { pop } repeat 307 96 lineto 307 95 1 90 270 arc 404 94 lineto stroke newpath } def /UCL_logo { 4 setlinewidth UCL_leftdome UCL_rightdome UCL_domebars UCL_support UCL_LargeU UCL_LargeC UCL_LargeL } def TeXDict begin @start %%Title: volume2.dvi %%Creator: dvi2ps %%EndProlog 48 @bop0 /cmr10.329 @newfont cmr10.329 @sf [<01FFE001FFE0001E00001E00001E00001E00001E00001E00FFFFF0FFFFF0E01E00601E00301E00381E00181E000C1E000E1E 00061E00031E00039E00019E0000DE0000FE00007E00003E00003E00001E00000E00000E00> 20 29 -1 0 23] 52 @dc [<07F0001FFC003E1F00780780700380F001C0E001C0E001C0E003C0E007C0F00FC0781FC03C7F801FFF000FFF000FFC001FF8 003FFE003FCF007F07007C0780780380700380700380700780380F001E1F000FFE0003F800> 18 29 -2 0 23] 56 @dc 48 @bop1 cmr10.329 @sf 1032 2916 p (48) s @eop @end