% Date: 2019/04/05 widewd# = 16.3pt#; % This is as wide as a cell can be without causing problems with 5-cell-wide symbols if known wd#: else: wd# = 12 pt#; fi ht# + dp# = 12 pt#; ht#-dp# = 6.44444pt#; symbolwidth#=0.7pt#; purl_symbolwidth#=0.7pt#; finesymbolwidth# = 0.4pt#; dotwidth# = 1pt#; gridwidth# = if gridfont: 0.3pt# else: 0pt# fi; overlinewd# = if gridfont: 1.5pt# else: 0.8pt# fi; eraserwidth# = 3pt#; wrapturngap# = 2pt#; o#:=0.4pt#; %Vertical overshoot ho#:=o#; %Horizontal overshoot % Vertical gaps standardgap# = if gridfont: 3pt# else: 2.5pt# fi; smallgap# = if gridfont: 2.5pt# else: 2pt# fi; mingap# = if gridfont: 1.2pt# else: 1pt# fi; botcableheight# - symbolwidth#/2 = (-dp# + smallgap#); topcableheight# + symbolwidth#/2 = (ht# - smallgap#); cablevertgap# = 3symbolwidth#; cablebargap# = 4pt#; cableslant# = 4pt#; if known topgap#: else: topgap# = standardgap#; fi if known bottomgap#: else: bottomgap# = standardgap#; fi cableextend# := 0pt#; % If your software is prone to leaving little gaps between the nogrid % cable connectors, or in wide increases and decreases, you might want % to make this nonzero. if known gridcables: else: boolean gridcables; gridcables = gridfont; fi nogrid_purlextend# := 0.2pt#; if gridcables: purlextend# := 0pt#; else: purlextend# := nogrid_purlextend#; fi % Purlextend affects how far outside their box the purl background goes. % % This is largely irrelevant when printing, % but it makes the PDFs look much better. % % If you do a Knuth-esque bitmap-font customization to your % particular printer, this is one parameter you *have* to fiddle with. define_pixels(wd,ht,dp); define_blacker_pixels(cableextend,purlextend,nogrid_purlextend,gridwidth,symbolwidth, purl_symbolwidth, finesymbolwidth, overlinewidth, dotwidth); define_pixels(eraserwidth,wrapturngap); define_corrected_pixels(o,ho); define_pixels(standardgap,smallgap,mingap,topgap,bottomgap, cablevertgap,cablebargap,cableslant, botcableheight,topcableheight); pickup pencircle scaled symbolwidth; symbol_pen := savepen; pickup pencircle scaled dotwidth; dot_pen := savepen; pickup pencircle scaled finesymbolwidth; fine_pen := savepen; pickup pencircle scaled purl_symbolwidth; purl_symbol_pen := savepen; pickup pencircle scaled eraserwidth; eraser_pen := savepen; offset = (topgap-bottomgap)/2; small_topgap = topgap + smallgap-standardgap; small_bottomgap = bottomgap + smallgap-standardgap; min_topgap = topgap + mingap-standardgap; min_bottomgap = bottomgap + mingap-standardgap; standardheight := ht+dp-topgap-bottomgap; biggerheight := ht+dp-small_topgap-small_bottomgap; font_size 10pt#; font_slant := 0pt#; % fontdimen 1 font_normal_space := 0pt#; % fontdimen 2 font_normal_stretch := 0pt#; % fontdimen 3 font_normal_shrink := 0pt#; % fontdimen 4 font_x_height := ht#; % fontdimen 5 font_quad := wd#; % fontdimen 6 font_extra_space := 0pt#; % fontdimen 7 fontdimen 8: % Font dimensions 8+ listed here dp#, % dimen 8: depth % width is not needed because it is quad (dimen 6) % height is not needed because it is xheight (dimen 5) ht#+dp#, % dimen 9: height+depth (LaTeX height) gridwidth#, % dimen 10: grid width overlinewd#, % dimen 11: overline/bar width (ht#+dp#)/8, % dimen 12: raise/lower symbols in narrow increases (topgap#-bottomgap#), % dimen 13: vertical offset purlextend#; % dimen 14: purl box outlap if known incrwidthdefined: else: def incrwidth (expr stsin, stsout) = 1*wd# enddef; def decrwidth (expr stsin, stsout) = 1*wd# enddef; fi Vwidth := standardheight; % Used twice: v and y Wwidth := biggerheight; % Used for make 3 from 1 wideincline := 2symbolwidth; wideinctip := 0.3symbolwidth; symbolmaxwd# = 82.244pt# - max(2purlextend#,gridwidth#);