diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-09 23:38:21 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-09 23:38:21 +0000 |
commit | 215012a8d684889983ec2c0629e1c704e6853d9c (patch) | |
tree | ebf1271bd71869069824935ae8a5678745bf8bce /Master/texmf-dist/fonts/source/public/cs/csaccent.mf | |
parent | 1af3d19d6dbcbf309667d9cb4aa3cdda914914a9 (diff) |
trunk/Master/texmf-dist/fonts/source
git-svn-id: svn://tug.org/texlive/trunk@101 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/cs/csaccent.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/public/cs/csaccent.mf | 413 |
1 files changed, 413 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/cs/csaccent.mf b/Master/texmf-dist/fonts/source/public/cs/csaccent.mf new file mode 100644 index 00000000000..d234626ab79 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/cs/csaccent.mf @@ -0,0 +1,413 @@ +% This is csaccent.mf in text format, as of 89/05/08 +% written by P. Novak, Prague +% Czech and Slovak letters with accents +% Changed paths for acute and hachek accent added 26/04/92, 11/08/92 +% Accent definitions %% lc_circle_accent modified + %% uc_Circle_accent added for Duerer font +% Czech accented letters +if unknown acute_sharp: boolean acute_sharp; acute_sharp:=false; fi +if unknown hach_sharp: boolean hach_sharp; hach_sharp:=false; fi + +def init_accents = +numeric uc_acc_height, uc_acc_height#, + lc_acute_height, lc_acute_height#, + lc_hachek_height, lc_hachek_height#, + lc_circle_height, lc_circle_height#, + lc_trema_height, lc_trema_height#, + accent_u, accent_u#, + accent_thin, + uc_acc_shift, asc_acc_shift; +if unknown circ_weight: circ_weight:=1; fi + +uc_acc_height# = cap_height# + 0.35x_height#; % changed 12.xii.93 + % changed 10.ix.96 by P.O. +lc_acute_height# = asc_height#; +lc_hachek_height# = lc_acute_height#; +lc_circle_height# = lc_acute_height#; +lc_trema_height# = min(cap_height#,9/7x_height#+ + .5max(dot_size#,cap_curve#)); +accent_u# = u#; % unexpanded dimension unit + +accent_thin = if thin_join > crisp: thin_join else: crisp+eps fi; + +define_whole_vertical_pixels(uc_acc_height,lc_acute_height, + lc_hachek_height,lc_circle_height,lc_trema_height); +define_pixels(accent_u); + +uc_acc_shift = cap_height - x_height; +asc_acc_shift = asc_height - x_height; +enddef; + +init_accents; + + +def lc_acute_accent(expr ref) = + if serifs : pickup crisp.nib; + 1/2[x51,x52]=good.x ref; + x51 + .5 stem = x52+3accent_u; + y51 + .5 stem = lc_acute_height+eps; + if acute_sharp: top y52' = top y51; y52=.25[x_height,y52']; + else: + y52 = max(2/3[lc_acute_height,x_height],x_height+o+hair); + fi + numeric cstheta; + cstheta = angle(z52-z51) + 90; + if acute_sharp: pos51(1.5stem,0); pos52(accent_thin,0); %% 1->.5 + filldraw stroke z51e -- z52e; + else: + pos51(stem,cstheta); + pos52(accent_thin,cstheta); + filldraw circ_stroke z51e -- z52e; + fi + else: pickup fine.nib; + pos51(stem,0); + pos52(vair,0); + 0.7[x51,x52] = good.x ref; + rt x51r = x52 + 3accent_u; + top y51 = lc_acute_height; + bot y52 = vround (2/3 [lc_acute_height,x_height]); + filldraw stroke z51e -- z52e; + fi + corrital z51; + penlabels(51,52); +enddef; + +def lc_grave_accent(expr ref) = + if serifs : pickup crisp.nib; + 1/2[x51,x52]=good.x ref; + x51 - .5 stem = x52-3accent_u; + y51 + .5 stem = lc_acute_height+eps; + if acute_sharp: top y52' = top y51; y52=.25[x_height,y52']; + else: + y52 = max(2/3[lc_acute_height,x_height],x_height+o+hair); + fi + numeric cstheta; + cstheta = angle(z52-z51) + 90; + if acute_sharp: pos51(1.5stem,0); pos52(accent_thin,0); %% 1->.5 + filldraw stroke z51e -- z52e; + else: + pos51(stem,cstheta); + pos52(accent_thin,cstheta); + filldraw circ_stroke z51e -- z52e; + fi + else: pickup fine.nib; + pos51(stem,0); + pos52(vair,0); + 1/2[x51,x52] = good.x ref; + lft x51l = x52 - 3accent_u; + top y51 = lc_acute_height; + bot y52 = vround (2/3 [lc_acute_height,x_height]); + filldraw stroke z51e -- z52e; + fi + penlabels(51,52); +enddef; + +def lc_hachek_accent(expr ref) = + if serifs: + pickup crisp.nib; + pos52'(0.75[vair,curve],90); + pos52(0.75[vair,curve],90); + x52=good.x ref; + x52-x51=x53-x52=good.x if hach_sharp:2.5 else:3 fi + accent_u-accent_thin; + top y52' = top y51 = top y53 = 0.9[x_height,lc_hachek_height]; + if hach_sharp: y52=.25[x_height,y52']; % lower point + pos51(1.5stem,0); pos53(accent_thin,180); else: + 0.5[y52,y52r] = 0.5[x_height,y52']; + pos51(accent_thin,angle(z52-z51)+90); + pos53(accent_thin,angle(z53-z52)+90); + fi + filldraw stroke z51e -- z52e -- z53e; + else: + pickup fine.nib; + pos51(vair,0); + pos53(vair,0); + x52=good.x ref; + x52-lft x51=rt x53-x52= 1.75accent_u +.5vair; % lft, rt added + pos52(stem,0); + bot y52=vround(0.3[x_height,lc_hachek_height]); + top y51 = top y53 = lc_hachek_height; + z50 = whatever[z51r,z52r] = whatever[z52l,z53l]; + y54l=y54r=y52; + x54l=good.x .2[x52l,x52]; + x54r-x52 = x52-x54l; + filldraw z54l -- z51l-- z51r -- z50 -- z53l -- z53r -- z54r -- cycle; + fi + corrital z53; + penlabels(50,51,52,52',53,54); +enddef; + + +def lc_circumflex(expr ref) = +if serifs: +% pickup crisp.nib; pos52(stem,90); top y52r=lc_hachek_height; +%% Corrected by P.O. 06.97 + pickup crisp.nib; pos52(stem,90); top y52r=0.95lc_hachek_height; + x52=ref; + x52-x51=x53-x52=good.x 2.75accent_u; +% y51=y53=.5[x_height,y52]; %% Corrected by P.O. 06.97 + y51=y53=.4[x_height,y52]; + pos51(accent_thin,angle(z52-z51)+90); pos53(accent_thin,angle(z53-z52)+90); + filldraw stroke z51e--z52e--z53e; % diagonals +else: + pickup fine.nib; pos51(vair,0); pos53(vair,0); + x52=ref; + x52-lft x51=rt x53-x52= 1.75accent_u + .5vair; % 2.75->1.75, lft, rt added + pos52(stem,0); top y52=lc_acute_height; + bot y51=bot y53=vround (2/3[lc_acute_height,x_height])-eps; + z50=whatever[z51r,z52r]=whatever[z52l,z53l]; + y54l=y54r=y52; x54l=good.x .2[x52l,x52]; x54r-x52=x52-x54l; + filldraw z54l--z51l--z51r--z50--z53l--z53r--z54r--cycle; fi % diagonals +penlabels(50,51,52,53,54); +enddef; + +def lc_trema_accent(expr ref_l,ref_r) = + numeric dot_diam; + dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr)); + pickup tiny.nib; pos51(dot_diam,0); pos52(dot_diam,90); + x51=x52=good.x ref_l; top y52r= lc_trema_height+1; + y51=.5[y52l,y52r]; + dot(51,52); % left dot + pos53(dot_diam,0); penpos54(y52r-y52l,90); y53=y54=y51; + x53=x54=good.x ref_r; + dot(53,54); % right dot + corrital z53; + penlabels(51,52,53,54); +enddef; + +def lc_circle_accent(expr ref) = + x60 = ref; + numeric cs_circle_thickness,font_quotion; + font_quotion=155/90(asc_height-x_height)/x_height; %% added + cs_circle_thickness = circ_weight*min(slab,0.9u); + x54r-x52r = hround(max(5accent_u-1.2stem,accent_u+2cs_circle_thickness)); + pickup crisp.nib; + penpos51(cs_circle_thickness,90); penpos55(cs_circle_thickness,90+45); + penpos52(cs_circle_thickness,180); penpos56(cs_circle_thickness,180+45); + penpos53(cs_circle_thickness,-90); penpos57(cs_circle_thickness,-90+45); + penpos54(cs_circle_thickness,0); penpos58(cs_circle_thickness,0+45); + + 0.5[x52,x54] = x51 = x53 = x60; y51r=lc_circle_height; + y52-y53 = (x54-x60); +% y52-y53 = x54-x60; % precise circle (not ellipse) + y52=y54=.5[y51,y53]; + + x55 = x56 = superness[x51,x52]; x57 = x58 = superness[x53,x54]; + y55 = y58 = superness[y52,y51]; y56 = y57 = superness[y52,y53]; + + fill z51r{right} ... z58r{z54r-z51r} ... z54r{down} ... z57r{z53r-z54r} + ... z53r{left} ... z56r{z52r-z53r} ... z52r{up} ... z55r{z51r-z52r} + ... cycle; + unfill z51l{right} ... z58l{z54l-z51l} ... z54l{down} ... z57l{z53l-z54l} + ... z53l{left} ... z56l{z52l-z53l} ... z52l{up} ... z55l{z51l-z52l} + ... cycle; + % bowl + corrital z54; + penlabels(51,52,53,54,55,56,57,58); +enddef; + +def dtl_hachek(text x_ref,y_ref) = +pickup fine.nib; +numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#); + define_whole_blacker_pixels(dot_diam); + pickup fine.nib; + x51=hround(x_ref); y51=vround(y_ref); + comma(51,q,dot_diam,.25accent_u,2/3comma_depth); + corrital z51; + penlabels(51); +enddef; + +def uc_acute_accent(expr ref) = + if serifs : pickup crisp.nib; + 1/2[x51,x52]=good.x ref; + x51 + .5 stem = x52+4accent_u; + y51 + .5 stem =0.67[x_height,lc_acute_height] %lc_acute_height + +eps+uc_acc_shift; %% changed 1->.8->.65->.67 + if acute_sharp: top y52' = top y51; y52=.1[x_height,y52']+uc_acc_shift; +% else: y52+ =max(.8[lc_acute_height,x_height],x_height+o+hair) + else: y52+.5 stem =max(.8[lc_acute_height,x_height],x_height+o+hair) + +uc_acc_shift; fi %2/3->3/4 + numeric cstheta; + cstheta = angle(z52-z51) + 90; + if acute_sharp: pos51(1.5stem,0); pos52(.5accent_thin,0); + filldraw stroke z51e -- z52e; else: + pos51(stem/max(1,3/4stem_corr),cstheta); + pos52(accent_thin,cstheta); + filldraw circ_stroke z51e -- z52e; fi + else: pickup fine.nib; + pos51(stem,0); + pos52(vair,0); + 0.7[x51,x52] = good.x ref; + rt x51r = x52 + 3accent_u; + top y51 = lc_acute_height+uc_acc_shift; + bot y52 = vround 2/3[lc_acute_height,x_height]+uc_acc_shift; + filldraw stroke z51e -- z52e; + fi + corrital z51; + penlabels(51,52); +enddef; + +def uc_grave_accent(expr ref) = + if serifs : pickup crisp.nib; + 1/2[x51,x52]=good.x ref; + x51 - .5 stem = x52-3accent_u; + y51 + .5 stem = 0.67[x_height,lc_acute_height] %lc_acute_height + +eps+uc_acc_shift; + if acute_sharp: top y52' = top y51; y52=.1[x_height,y52']+uc_acc_shift; + else: y52 = max(.8[lc_acute_height,x_height],x_height+o+hair) + +uc_acc_shift; fi % 2/3->3/4 + numeric cstheta; + cstheta = angle(z52-z51) -150; + if acute_sharp: pos51(1.5stem,0); pos52(.5accent_thin,0); + filldraw stroke z51e -- z52e; + else: pickup fine.nib; +% pos51(stem/max(1,stem_corr),cstheta); %% Corrected by P.O, 6.97 + pos51(stem,cstheta); + pos52(accent_thin,cstheta); + filldraw circ_stroke z51e -- z52e; fi + else: pickup fine.nib; + pos51(stem,0); + pos52(vair,0); + .7[x51,x52] = good.x ref; + lft x51l = x52 - 3accent_u; + top y51 = lc_acute_height+uc_acc_shift; + bot y52 = vround (.7 [lc_acute_height,x_height])+uc_acc_shift; + filldraw stroke z51e -- z52e; + fi + penlabels(51,52); +enddef; + +def uc_hachek_accent(expr ref) = + if serifs: + pickup crisp.nib; + pos52'(0.75[vair,curve],90); + pos52(0.75[vair,curve],90); + x52=good.x ref; + x52-x51=x53-x52=good.x 3accent_u-accent_thin; + top y52' = top y51 = top y53 = + 0.57[x_height,lc_hachek_height]+uc_acc_shift; + %% changed .55->.57; + if hach_sharp: y52=.1[x_height,y52']+uc_acc_shift; + pos51(1.5stem,0); pos53(2accent_thin,180); + else: + 0.5[y52,y52r] = 0.5[x_height,y52'-uc_acc_shift]+uc_acc_shift; + pos51(accent_thin,angle(z52-z51)+90); + pos53(accent_thin,angle(z53-z52)+90); + fi + filldraw stroke z51e -- z52e -- z53e; + else: + pickup fine.nib; + pos51(vair,0); + pos53(vair,0); + x52=good.x ref; + x52-x51=x53-x52= 1.75accent_u + .5vair; + pos52(stem,0); + bot y52=vround(0.2[x_height,lc_hachek_height])+uc_acc_shift; + %% .3 -> .25 24.10.92 + top y51 = top y53 = 0.75[x_height,lc_hachek_height]+uc_acc_shift; + z50 = whatever[z51r,z52r] = whatever[z52l,z53l]; + y54l=y54r=y52; + x54l=good.x .2[x52l,x52]; + x54r-x52 = x52-x54l; + filldraw z54l -- z51l-- z51r -- z50 -- z53l -- z53r -- z54r -- cycle; + fi + corrital z53; + penlabels(50,51,52,52',53,54); +enddef; + +def uc_circumflex(expr ref) = +if serifs: + pickup crisp.nib; pos52(stem,90); + top y52=0.57[x_height,lc_acute_height]+uc_acc_shift; + %lc_acute_height + uc_acc_shift; + x52=good.x ref; + x52-x51=x53-x52=good.x 3accent_u; + y51=y53=.5[x_height,y52-uc_acc_shift]+uc_acc_shift; + pos51(accent_thin,angle(z52-z51)+90); pos53(accent_thin,angle(z53-z52)+90); + filldraw stroke z51e--z52e--z53e; % diagonals +else: + pickup fine.nib; pos51(vair,0); pos53(vair,0); + x52=ref; + x52-x51=x53-x52= 1.75accent_u + .5vair; + pos52(stem,0); top y52=lc_acute_height+uc_acc_shift; + bot y51=bot y53=vround (2/3[lc_acute_height,x_height]) + uc_acc_shift-eps; + z50=whatever[z51r,z52r]=whatever[z52l,z53l]; + y54l=y54r=y52; x54l=good.x .2[x52l,x52]; x54r-x52=x52-x54l; + filldraw z54l--z51l--z51r--z50--z53l--z53r--z54r--cycle; fi % diagonals +penlabels(50,51,52,53,54); +enddef; + +def uc_trema_accent(expr ref_l,ref_r) = + numeric dot_diam; + dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr)); + pickup tiny.nib; pos51(dot_diam,0); pos52(dot_diam,90); + x51=x52=good.x ref_l; top y52r= lc_trema_height+1+uc_acc_shift; + y51=.5[y52l,y52r]; + dot(51,52); % left dot + pos53(dot_diam,0); penpos54(y52r-y52l,90); y53=y54=y51; + x53=x54=good.x ref_r; + dot(53,54); % right dot + corrital z54; + penlabels(51,52,53,54); +enddef; + +def uc_circle_accent(expr ref) = + x60 = ref; + numeric cs_circle_thickness,font_quotion; + font_quotion=155/90(asc_height-x_height)/x_height; + cs_circle_thickness = min(slab,0.9u); + x54r-x52r = hround(max(5accent_u-1.2stem,accent_u+2cs_circle_thickness)); + pickup crisp.nib; + penpos51(cs_circle_thickness,90); penpos55(cs_circle_thickness,90+45); + penpos52(cs_circle_thickness,180); penpos56(cs_circle_thickness,180+45); + penpos53(cs_circle_thickness,-90); penpos57(cs_circle_thickness,-90+45); + penpos54(cs_circle_thickness,0); penpos58(cs_circle_thickness,0+45); + + 0.5[x52,x54] = x51 = x53 = x60; + y51=0.55[x_height,lc_circle_height]+uc_acc_shift; + %lc_circle_height+uc_acc_shift; + y52-y53 = (x54-x60); + y52=y54=.5[y51,y53]; + + x55 = x56 = superness[x51,x52]; x57 = x58 = superness[x53,x54]; + y55 = y58 = superness[y52,y51]; y56 = y57 = superness[y52,y53]; + + fill z51r{right} ... z58r{z54r-z51r} ... z54r{down} ... z57r{z53r-z54r} + ... z53r{left} ... z56r{z52r-z53r} ... z52r{up} ... z55r{z51r-z52r} + ... cycle; + unfill z51l{right} ... z58l{z54l-z51l} ... z54l{down} ... z57l{z53l-z54l} + ... z53l{left} ... z56l{z52l-z53l} ... z52l{up} ... z55l{z51l-z52l} + ... cycle; + % bowl + penlabels(51,52,53,54,55,56,57,58); +enddef; + +def uc_Circle_accent(expr ref) = + x60 = ref; + numeric cs_circle_thickness,font_quotion; + font_quotion=155/90(asc_height-x_height)/x_height; + cs_circle_thickness = thin; %min(slab,0.9u); + x54r-x52r = hround(max(5accent_u-1.2stem,accent_u+2cs_circle_thickness)); + pickup crisp.nib; + penpos51(cs_circle_thickness,90); penpos55(cs_circle_thickness,90+45); + penpos52(cs_circle_thickness,180); penpos56(cs_circle_thickness,180+45); + penpos53(cs_circle_thickness,-90); penpos57(cs_circle_thickness,-90+45); + penpos54(cs_circle_thickness,0); penpos58(cs_circle_thickness,0+45); + + 0.5[x52,x54] = x51 = x53 = x60; y51r=lc_circle_height+uc_acc_shift; + y52-y53 = (x54-x60); + y52=y54=.5[y51,y53]; + + x55 = x56 = superness[x51,x52]; x57 = x58 = superness[x53,x54]; + y55 = y58 = superness[y52,y51]; y56 = y57 = superness[y52,y53]; + + fill z51r{right} ... z58r{z54r-z51r} ... z54r{down} ... z57r{z53r-z54r} + ... z53r{left} ... z56r{z52r-z53r} ... z52r{up} ... z55r{z51r-z52r} + ... cycle; + unfill z51l{right} ... z58l{z54l-z51l} ... z54l{down} ... z57l{z53l-z54l} + ... z53l{left} ... z56l{z52l-z53l} ... z52l{up} ... z55l{z51l-z52l} + ... cycle; + % bowl + penlabels(51,52,53,54,55,56,57,58); +enddef; + |