summaryrefslogtreecommitdiff
path: root/info/digests/texhax/txh/labrec.txh
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /info/digests/texhax/txh/labrec.txh
Initial commit
Diffstat (limited to 'info/digests/texhax/txh/labrec.txh')
-rw-r--r--info/digests/texhax/txh/labrec.txh208
1 files changed, 208 insertions, 0 deletions
diff --git a/info/digests/texhax/txh/labrec.txh b/info/digests/texhax/txh/labrec.txh
new file mode 100644
index 0000000000..c4400f9022
--- /dev/null
+++ b/info/digests/texhax/txh/labrec.txh
@@ -0,0 +1,208 @@
+Date: Fri, 7 Aug 87 10:19:38 EST
+From: crl@maxwell.physics.purdue.edu (Charles R. LaBrec)
+To: TEXHAX@score.stanford.edu
+Subject: Mode definitions for LN03 and LN03+
+
+I have recently been playing with metafont for an LN03, and have come
+up with something that seem to produce acceptable output, but is by no
+means "completely" tested. The problem with the write-white LN03 is
+that you cannot use a one-pixel wide line ever, since it becomes far,
+far too light. This is why my previous version of the LN03 mode used
+a "blacker" parameter that was very big. From metafont 1.3, I started
+using the write-white cmbase, but even this didn't provide a wide
+enough line in various places. It was really obvious for things that
+used only the light_rule.nib pen. This fact made me notice that even
+though all sorts of parameters were set to a minimum of two, the pens
+that were saved could have widths of one. I thus decided to try to
+modify cmbase further, setting minimum pencircle widths of two. I
+enclose the decln mode I've used, along with a diff of the write-white
+version of cmbase.mf. I am VERY interested in comments/suggestions as
+to whether everyone thinks this solution is valid/produces good
+output. If so, then perhaps metafont should get a new mode parameter
+which is the minimum pen{circle/square} scaling, so that such things
+could be more easily handled in base files.
+
+Charles LaBrec
+crl @ maxwell.physics.purdue.edu
+
+% decln mode: for the DEC LN03 (Ricoh engine, a write-white device)
+mode_def decln = % decln mode
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=0; % no, don't show titles in the log
+ pixels_per_inch:=300;
+ blacker:=0.2; % make pens a bit blacker
+ fillin:=-0.2; % darken diagonals a bit
+ o_correction:=0.5; % don't overshoot as much
+ enddef;
+
+*** /tmp/,RCSt1007354 Fri Aug 7 09:53:44 1987
+--- cmbase.mf Fri Aug 7 09:52:44 1987
+***************
+*** 385,391
+ penlabels(1,2,3,4,5,6,7); enddef;
+
+ def left_angle(expr breadth) =
+! pickup pencircle scaled breadth;
+ x1=x3=good.x(w-u)+eps; lft x2=hround u-eps;
+ top y1=h+eps; .5[y1,y3]=y2=good.y .5[-d+eps,h];
+ draw z1--z2--z3; % diagonals
+
+--- 385,391 -----
+ penlabels(1,2,3,4,5,6,7); enddef;
+
+ def left_angle(expr breadth) =
+! pickup pencircle scaled max(breadth,2); % WRITE WHITE
+ x1=x3=good.x(w-u)+eps; lft x2=hround u-eps;
+ top y1=h+eps; .5[y1,y3]=y2=good.y .5[-d+eps,h];
+ draw z1--z2--z3; % diagonals
+***************
+*** 392,398
+ labels(1,2,3); enddef;
+
+ def right_angle(expr breadth) =
+! pickup pencircle scaled breadth;
+ x1=x3=good.x u-eps; rt x2=hround(w-u)+eps;
+ top y1=h+eps; .5[y1,y3]=y2=good.y .5[-d+eps,h];
+ draw z1--z2--z3; % diagonals
+
+--- 392,398 -----
+ labels(1,2,3); enddef;
+
+ def right_angle(expr breadth) =
+! pickup pencircle scaled max(breadth,2); % WRITE WHITE
+ x1=x3=good.x u-eps; rt x2=hround(w-u)+eps;
+ top y1=h+eps; .5[y1,y3]=y2=good.y .5[-d+eps,h];
+ draw z1--z2--z3; % diagonals
+***************
+*** 399,405
+ labels(1,2,3); enddef;
+
+ def big_slash(expr breadth) =
+! adjust_fit(-letter_fit#,-letter_fit#); pickup pencircle scaled breadth;
+ rt x1=hround(w-u); lft x2=hround u; top y1=h+eps; bot y2=1-d-eps;
+ draw z1--z2; % diagonal
+ labels(1,2); enddef;
+
+--- 399,405 -----
+ labels(1,2,3); enddef;
+
+ def big_slash(expr breadth) =
+! adjust_fit(-letter_fit#,-letter_fit#); pickup pencircle scaled max(breadth,2); % WRITE WHITE
+ rt x1=hround(w-u); lft x2=hround u; top y1=h+eps; bot y2=1-d-eps;
+ draw z1--z2; % diagonal
+ labels(1,2); enddef;
+***************
+*** 405,411
+ labels(1,2); enddef;
+
+ def big_blash(expr breadth) =
+! adjust_fit(-letter_fit#,-letter_fit#); pickup pencircle scaled breadth;
+ lft x1=hround u; rt x2=hround(w-u); top y1=h+eps; bot y2=1-d-eps;
+ draw z1--z2; % diagonal
+ labels(1,2); enddef;
+
+--- 405,411 -----
+ labels(1,2); enddef;
+
+ def big_blash(expr breadth) =
+! adjust_fit(-letter_fit#,-letter_fit#); pickup pencircle scaled max(breadth,2); % WRITE WHITE
+ lft x1=hround u; rt x2=hround(w-u); top y1=h+eps; bot y2=1-d-eps;
+ draw z1--z2; % diagonal
+ labels(1,2); enddef;
+***************
+*** 536,541
+ forsuffixes $=fine,crisp,tiny:
+ %%% fine $ %%%% temporary formatting convention for MFT
+ if $>fudged.hair: $:=fudged.hair; fi
+ $.breadth:=$;
+ pickup if $=0: nullpen else: pencircle scaled $; $:=$-eps fi;
+ $.nib:=savepen; breadth_[$.nib]:=$;
+
+--- 536,542 -----
+ forsuffixes $=fine,crisp,tiny:
+ %%% fine $ %%%% temporary formatting convention for MFT
+ if $>fudged.hair: $:=fudged.hair; fi
++ if $>0: $:=max($,2); fi % WRITE WHITE
+ $.breadth:=$;
+ pickup if $=0: nullpen else: pencircle scaled $; $:=$-eps fi;
+ $.nib:=savepen; breadth_[$.nib]:=$;
+***************
+*** 546,551
+ if flare<vround flare: flare:=vround flare; fi
+ forsuffixes $=vair,bar,slab,cap_bar,cap_band,vair',vstem,cap_vstem,bold:
+ if $<min_Vround: $:=min_Vround; fi endfor
+ pickup pencircle scaled rule_thickness; rule.nib:=savepen;
+ math_axis:=good.y(math_axis#*hppp);
+ pickup pencircle scaled if hefty:(.6[vair,fudged.hair]) else:fudged.hair fi;
+
+--- 547,559 -----
+ if flare<vround flare: flare:=vround flare; fi
+ forsuffixes $=vair,bar,slab,cap_bar,cap_band,vair',vstem,cap_vstem,bold:
+ if $<min_Vround: $:=min_Vround; fi endfor
++ pickup pencircle scaled max(if hefty:(.6[vair,fudged.hair]) else:fudged.hair fi,2); % WRITE WHITE
++ light_rule.nib:=savepen;
++ pickup pencircle xscaled max(cap_curve+dw,2) yscaled max(cap_hair,2) rotated 30; % WRITE WHITE
++ heavy_cal.nib:=savepen;
++ forsuffixes $=thin_join,hair,curve,flare,dot_size,cap_hair,cap_curve,cap_stem,
++ vair,bar,slab,cap_bar,cap_band,stem',cap_stem',vair',fudged.hair,
++ fudged.stem,fudged.cap_stem,rule_thickness: $:=max($,2); endfor % "WRITE WHITE" ONLY!
+ pickup pencircle scaled rule_thickness; rule.nib:=savepen;
+ math_axis:=good.y(math_axis#*hppp);
+ pickup pencircle xscaled cap_curve yscaled cap_hair rotated 30;
+***************
+*** 548,555
+ if $<min_Vround: $:=min_Vround; fi endfor
+ pickup pencircle scaled rule_thickness; rule.nib:=savepen;
+ math_axis:=good.y(math_axis#*hppp);
+- pickup pencircle scaled if hefty:(.6[vair,fudged.hair]) else:fudged.hair fi;
+- light_rule.nib:=savepen;
+ pickup pencircle xscaled cap_curve yscaled cap_hair rotated 30;
+ cal.nib:=savepen;
+ pair cal.extension; cal.extension:=(.75cap_curve,0) rotated 30;
+
+--- 556,561 -----
+ fudged.stem,fudged.cap_stem,rule_thickness: $:=max($,2); endfor % "WRITE WHITE" ONLY!
+ pickup pencircle scaled rule_thickness; rule.nib:=savepen;
+ math_axis:=good.y(math_axis#*hppp);
+ pickup pencircle xscaled cap_curve yscaled cap_hair rotated 30;
+ cal.nib:=savepen;
+ pair cal.extension; cal.extension:=(.75cap_curve,0) rotated 30;
+***************
+*** 561,568
+ med_cal.nib:=savepen;
+ pickup pencircle xscaled stem yscaled cap_hair rotated 30;
+ light_cal.nib:=savepen;
+- pickup pencircle xscaled(cap_curve+dw) yscaled cap_hair rotated 30;
+- heavy_cal.nib:=savepen;
+ bot_flourish_line:=-.5u-o;
+ pair bend; bend=(.5u,0);
+ pair flourish_change; flourish_change=(4u,.2asc_height);
+
+--- 567,572 -----
+ med_cal.nib:=savepen;
+ pickup pencircle xscaled stem yscaled cap_hair rotated 30;
+ light_cal.nib:=savepen;
+ bot_flourish_line:=-.5u-o;
+ pair bend; bend=(.5u,0);
+ pair flourish_change; flourish_change=(4u,.2asc_height);
+***************
+*** 576,584
+ body_depth:=desc_depth+body_height-asc_height;
+ shrink_fit:=1+hround(2letter_fit#*hppp)-2letter_fit;
+ if not string mode: if mode<=smoke: shrink_fit:=0; fi fi
+- forsuffixes $=thin_join,hair,curve,flare,dot_size,cap_hair,cap_curve,
+- vair,bar,slab,cap_bar,cap_band,stem',cap_stem',vair',fudged.hair,
+- fudged.stem,fudged.cap_stem: $:=max($,2); endfor % "WRITE WHITE" ONLY!
+ enddef;
+
+ def shiftdef(suffix $)(expr delta) =
+
+--- 580,585 -----
+ body_depth:=desc_depth+body_height-asc_height;
+ shrink_fit:=1+hround(2letter_fit#*hppp)-2letter_fit;
+ if not string mode: if mode<=smoke: shrink_fit:=0; fi fi
+ enddef;
+
+ def shiftdef(suffix $)(expr delta) =
+-------