summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/lh/base/lgcyrsym.mf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/fonts/source/lh/base/lgcyrsym.mf')
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgcyrsym.mf71
1 files changed, 46 insertions, 25 deletions
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgcyrsym.mf b/Master/texmf-dist/fonts/source/lh/base/lgcyrsym.mf
index c832b975264..3f3e37f8fb9 100644
--- a/Master/texmf-dist/fonts/source/lh/base/lgcyrsym.mf
+++ b/Master/texmf-dist/fonts/source/lh/base/lgcyrsym.mf
@@ -4,13 +4,13 @@
%% Cyrillic font container with T2 encoding beta-support
%
% This file is future part of lxfonts package
-% Version 3.4 // Patchlevel=0
+% Version 3.5 // Patchlevel=0
% (c) O.Lapko
%
-% This package belongs to the public domain under conditions similar to
+% This package is freeware product under conditions similar to
% those of D. E. Knuth specified for the Computer Modern family of fonts.
% In particular, only the authors are entitled to modify this file
-% and to save it under the same name.
+% (and all this package as well) and to save it under the same name.
%
% Content:
%
@@ -40,13 +40,14 @@
% baseqq "bd "bd German Opening quotes (looks like ,,) (ec: "12)
% flqq "be "be Cyrillic Opening Quotes (looks like <<) (ec: "13)
% frqq "bf "bf Cyrillic Closing Quotes (looks like >>) (ec: "14)
+% grqq - - German Closing quotes (looks like ``)
%
% T1/T2-outsiders:
%
% pound ("bf) Sterling sign
%
-LHver_check(3,4); % like |version_check| in ec
+LHver_check(3,5); % like |version_check| in ec
lhchar "Cyrillic sign palochka (as latin I)";
cyrchar(palochka,max(6u#,4u#+cap_stem#),cap_height#,0);
@@ -225,7 +226,7 @@ cyrchar(No,14.5u#+width_adj#,cap_height#,0);
italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
adjust_fit(if monospace: 0,0 else: cap_serif_fit#
if serifs: +.5(flare#+(cap_stem#-stem#))-.25u#,cap_serif_fit# else:,0 fi fi);
-full_w:=w; w:=if serifs: 10u else: 11.5u fi;
+full_w:=w; w:=if serifs: 9.5u+.5flare-.5fudged.hair else: 11.5u fi;
numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
pos3(thin_stem,0); pos4(thin_stem,0);
@@ -233,19 +234,21 @@ pickup tiny.nib; top y1=h;
if serifs: top y3=.79h; bot y2=.21h; else: top y3=h; bot y2=0; fi
bot y4=0;
x1=x2; x3=x4; x1l=w-x3r;
-rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
if serifs: numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+ rt x3r=hround min(w-max(2u,bulb_diam-2thin_stem-letter_fit),w-3u+.5fudged.cap_stem)+eps;
pos21(thin_stem,-90); pos22(cap_hair,-180); pos23(bulb_diam,-180);
pos31(thin_stem,-90); z31'=z31;
pos31'(thin_stem,90); pos32(cap_hair,0); pos33(bulb_diam,0);
- y23=vround max(.05fig_height+.5bulb_diam,.1fig_height-.5flare)-o;%
- lft x23r=l+letter_fit+.15u; x33=w-x23; y33=h-y22;
+ y23=vround max(.05fig_height+.5bulb_diam,.1fig_height-.5bulb_diam)-o;%
+ lft x23r=min(l+letter_fit+.15u,rt x2r-bulb_diam-1)-eps; x33=w-x23; y33=h-y22;
x21=max(lft x23r+.5bulb_diam,.45[lft x23r,rt x2r]);
x31=w-x21; bot y21r=-oo; top y31l=h+oo;
bulb(21,22,23); bulb(31',32,33);
- filldraw stroke z1e--z2e & pulled_arc.e(2,21); % left stem
- filldraw stroke z4e--z3e & pulled_arc.e(3,31); % right stem
-else: filldraw stroke z1e--z2e; filldraw stroke z4e--z3e; fi
+ filldraw stroke z1e--z2e &{{interim superness:=more_super; super_arc.e(2,21)}}; % left stem
+ filldraw stroke z4e--z3e &{{interim superness:=more_super; super_arc.e(3,31)}}; % right stem
+else:
+ rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+ filldraw stroke z1e--z2e; filldraw stroke z4e--z3e; fi
if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
x5l=x1; x6r=x4; y5=h; y6=0;
numeric upper_notch,lower_notch;
@@ -266,18 +269,19 @@ if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
fi
w:=full_w;
penpos71(vair,90); penpos73(vair',-90);
-if serifs: x72r=x33+hround max(.25u,u-.4curve); x74r=hround(w-.5u);
+if serifs: x72r=x33+hround max(.1u,u-.75flare); x74r=hround(w-.5u);
else: x72r=x3+1.25u+hround max(0,.75u-.4curve); x74r=hround(w-u); fi
penpos72(min(1/3(x74r-x72r),.8curve),180);
penpos74(min(1/3(x74r-x72r),.8curve),0);
-x71=x73=.5[x72r,x74r]; y71r=h-3u+vround 1.5oo; y73r=x_height-3u-oo;
-y72=y74=.5[h,x_height]-3u-vair_corr; y72l:=y74l:=.52[h,x_height]-3u;
+x71=x73=.5[x72r,x74r]; y71r=h-max(3u,flare+(cap_stem-stem)+1.5oo)+vround 1.5oo;
+y73r=x_height-3u-oo;
+y72=y74=.5[y71r,y73r]-vair_corr; y72l:=y74l:=.52[h,x_height]-3u;
penstroke pulled_arc.e(71,72) & pulled_arc.e(72,73)
& pulled_arc.e(73,74) & pulled_arc.e(74,71) & cycle; % bowl
pickup fine.nib; pos81(bar,90); pos82(bar,90);
lft x81=x72r-.25fine; rt x82=x74r+.25fine; y81=y82=.8x_height-3u;
filldraw stroke z81e--z82e;
-penlabels(1,1',2,3,4,4',5,6,7); endchar;
+penlabels(1,1',2,3,4,4',5,6,7, 21,22,23, 31',32,33); endchar;
lhchar "Cyrillic Currency sign"; % from ec ... from rsym (wasy)
cyrchar(currency,1.13 min(asc_height#,9/7x_height#)+2u#,
@@ -356,8 +360,8 @@ numeric the_shift,shift_corr;
the_shift=hround(max(3u,1.7stem)); shift_corr=the_shift-3u;
pos1(max(fine.breadth,
if serifs: qvair else: 7/8[vair,fudged.hair]-3stem_corr fi),0);
-pos2(max(fine.breadth,if serifs:
- if monospace: qvair else: stem fi else:7/8[vair,fudged.hair] fi),0);
+pos2(max(fine.breadth,if serifs:
+ if hefty: qvair else: stem fi else:7/8[vair,fudged.hair] fi),0);
pos3(max(fine.breadth,
if serifs: qvair else: 7/8[vair,fudged.hair]-3stem_corr fi),0);
rt x1r=rt x3r=
@@ -372,9 +376,12 @@ if hefty:
filldraw stroke z1e--z2e--z3e; % outer <
filldraw stroke z1'e--z2'e--z3'e; % inner <
else:
- pos1'(qvair,0);
- pos2'(7/8 [hair,stem],0);
- pos3'(qvair,0);
+ pos1'(max(fine.breadth,
+ if serifs: qvair else: 7/8[vair,fudged.hair]-3stem_corr fi),0);
+ pos2'(max(fine.breadth,if serifs:
+ 2/3[vair,fudged.stem] else: 7/8[vair,fudged.hair] fi),0);
+ pos3'(max(fine.breadth,
+ if serifs: qvair else: 7/8[vair,fudged.hair]-3stem_corr fi),0);
z2'=z2+the_shift*right;
y1'-y2'=y2'-y3'=.8(y1-y2);
z1'=z2'+whatever*(z1r-z2r); z3'=z2'+whatever*(z2r-z3r);
@@ -401,8 +408,8 @@ numeric the_shift,shift_corr;
the_shift=hround(max(3u,1.7stem)); shift_corr=the_shift-3u;
pos1(max(fine.breadth,
if serifs: qvair else: 7/8[vair,fudged.hair]-3stem_corr fi),0);
-pos2(max(fine.breadth,if serifs:
- if monospace: qvair else: stem fi else:7/8[vair,fudged.hair] fi),0);
+pos2(max(fine.breadth,if serifs:
+ if hefty: qvair else: stem fi else:7/8[vair,fudged.hair] fi),0);
pos3(max(fine.breadth,
if serifs: qvair else: 7/8[vair,fudged.hair]-3stem_corr fi),0);
lft x1l=lft x3l=w-
@@ -417,9 +424,12 @@ if hefty:
filldraw stroke z1e--z2e--z3e; % outer <
filldraw stroke z1'e--z2'e--z3'e; % inner <
else:
- pos1'(qvair,0);
- pos2'(7/8 [hair,stem],0);
- pos3'(qvair,0);
+ pos1'(max(fine.breadth,
+ if serifs: qvair else: 7/8[vair,fudged.hair]-3stem_corr fi),0);
+ pos2'(max(fine.breadth,if serifs:
+ 2/3[vair,fudged.stem] else: 7/8[vair,fudged.hair] fi),0);
+ pos3'(max(fine.breadth,
+ if serifs: qvair else: 7/8[vair,fudged.hair]-3stem_corr fi),0);
z2'=z2+the_shift*left;
y1'-y2'=y2'-y3'=.8(y1-y2);
z1'=z2'+whatever*(z1l-z2l); z3'=z2'+whatever*(z2l-z3l);
@@ -455,5 +465,16 @@ pos10(bar,90); pos11(bar,90); x10=3u; x11=w-4.5u;
top y10r=top y11r=vround(.5h+.5bar); filldraw stroke z10e--z11e; % bar
penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+iff (altcoding and (ligs <> 0)): % for CM
+lhchar "Cyrillic `German close quotes' (like English opening quotes)";
+cyrchar(grqq,7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant+dot_size#-4.1u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround .6u; y2+.5dot_size=h;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
endinput;
%end of file