From 215012a8d684889983ec2c0629e1c704e6853d9c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 9 Jan 2006 23:38:21 +0000 Subject: trunk/Master/texmf-dist/fonts/source git-svn-id: svn://tug.org/texlive/trunk@101 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/fonts/source/vntex/vnr/vnaccent.mf | 505 +++++++++++ .../texmf-dist/fonts/source/vntex/vnr/vnacomp.mf | 58 ++ Master/texmf-dist/fonts/source/vntex/vnr/vnb10.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnbase.mf | 954 +++++++++++++++++++++ Master/texmf-dist/fonts/source/vntex/vnr/vnbx10.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnbx12.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnbx5.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnbx6.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnbx7.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnbx8.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnbx9.mf | 8 + .../texmf-dist/fonts/source/vntex/vnr/vnbxsl10.mf | 8 + .../texmf-dist/fonts/source/vntex/vnr/vnbxti10.mf | 8 + .../texmf-dist/fonts/source/vntex/vnr/vncligtb.mf | 159 ++++ Master/texmf-dist/fonts/source/vntex/vnr/vncode.mf | 339 ++++++++ .../texmf-dist/fonts/source/vntex/vnr/vncombac.mf | 28 + Master/texmf-dist/fonts/source/vntex/vnr/vncsc.mf | 164 ++++ .../texmf-dist/fonts/source/vntex/vnr/vncsc10.mf | 8 + .../texmf-dist/fonts/source/vntex/vnr/vndothook.mf | 19 + .../texmf-dist/fonts/source/vntex/vnr/vndunh10.mf | 8 + .../texmf-dist/fonts/source/vntex/vnr/vnecomp.mf | 40 + Master/texmf-dist/fonts/source/vntex/vnr/vnff10.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnfi10.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnfib8.mf | 8 + .../texmf-dist/fonts/source/vntex/vnr/vnicomp.mf | 22 + .../texmf-dist/fonts/source/vntex/vnr/vniligtb.mf | 135 +++ .../texmf-dist/fonts/source/vntex/vnr/vnitt10.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnlacc.mf | 28 + Master/texmf-dist/fonts/source/vntex/vnr/vnlai.mf | 45 + Master/texmf-dist/fonts/source/vntex/vnr/vnlar.mf | 112 +++ Master/texmf-dist/fonts/source/vntex/vnr/vnldi.mf | 55 ++ Master/texmf-dist/fonts/source/vntex/vnr/vnldr.mf | 70 ++ Master/texmf-dist/fonts/source/vntex/vnr/vnlei.mf | 48 ++ Master/texmf-dist/fonts/source/vntex/vnr/vnler.mf | 73 ++ Master/texmf-dist/fonts/source/vntex/vnr/vnlii.mf | 62 ++ Master/texmf-dist/fonts/source/vntex/vnr/vnlir.mf | 74 ++ Master/texmf-dist/fonts/source/vntex/vnr/vnloi.mf | 38 + Master/texmf-dist/fonts/source/vntex/vnr/vnlor.mf | 38 + Master/texmf-dist/fonts/source/vntex/vnr/vnlui.mf | 50 ++ Master/texmf-dist/fonts/source/vntex/vnr/vnlur.mf | 70 ++ Master/texmf-dist/fonts/source/vntex/vnr/vnlyi.mf | 57 ++ Master/texmf-dist/fonts/source/vntex/vnr/vnlyr.mf | 101 +++ .../texmf-dist/fonts/source/vntex/vnr/vnminus.mf | 39 + .../texmf-dist/fonts/source/vntex/vnr/vnmligtb.mf | 16 + .../texmf-dist/fonts/source/vntex/vnr/vnocomp.mf | 65 ++ Master/texmf-dist/fonts/source/vntex/vnr/vnr10.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnr12.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnr17.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnr5.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnr6.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnr7.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnr8.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnr9.mf | 8 + .../texmf-dist/fonts/source/vntex/vnr/vnrligtb.mf | 211 +++++ Master/texmf-dist/fonts/source/vntex/vnr/vnrm.mf | 97 +++ .../texmf-dist/fonts/source/vntex/vnr/vnroman.mf | 119 +++ Master/texmf-dist/fonts/source/vntex/vnr/vnsl10.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnsl12.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnsl8.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnsl9.mf | 8 + .../texmf-dist/fonts/source/vntex/vnr/vnsltt10.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnss10.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnss12.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnss17.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnss8.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnss9.mf | 8 + .../texmf-dist/fonts/source/vntex/vnr/vnssbx10.mf | 8 + .../texmf-dist/fonts/source/vntex/vnr/vnssdc10.mf | 7 + .../texmf-dist/fonts/source/vntex/vnr/vnssi10.mf | 8 + .../texmf-dist/fonts/source/vntex/vnr/vnssi12.mf | 8 + .../texmf-dist/fonts/source/vntex/vnr/vnssi17.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnssi8.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnssi9.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnssq8.mf | 7 + .../texmf-dist/fonts/source/vntex/vnr/vnssqi8.mf | 7 + .../texmf-dist/fonts/source/vntex/vnr/vntcsc10.mf | 8 + .../texmf-dist/fonts/source/vntex/vnr/vntextit.mf | 120 +++ Master/texmf-dist/fonts/source/vntex/vnr/vnti10.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnti12.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnti7.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnti8.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnti9.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vntt10.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vntt12.mf | 9 + Master/texmf-dist/fonts/source/vntex/vnr/vntt8.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vntt9.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnu10.mf | 8 + Master/texmf-dist/fonts/source/vntex/vnr/vnuacc.mf | 28 + Master/texmf-dist/fonts/source/vntex/vnr/vnuar.mf | 65 ++ .../texmf-dist/fonts/source/vntex/vnr/vnucomp.mf | 47 + Master/texmf-dist/fonts/source/vntex/vnr/vnudr.mf | 58 ++ Master/texmf-dist/fonts/source/vntex/vnr/vnuer.mf | 72 ++ Master/texmf-dist/fonts/source/vntex/vnr/vnuir.mf | 32 + Master/texmf-dist/fonts/source/vntex/vnr/vnuor.mf | 44 + Master/texmf-dist/fonts/source/vntex/vnr/vnuur.mf | 94 ++ Master/texmf-dist/fonts/source/vntex/vnr/vnuyr.mf | 63 ++ .../texmf-dist/fonts/source/vntex/vnr/vnvtt10.mf | 8 + .../texmf-dist/fonts/source/vntex/vnr/vnycomp.mf | 22 + 98 files changed, 4974 insertions(+) create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnaccent.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnacomp.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnb10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnbase.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnbx10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnbx12.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnbx5.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnbx6.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnbx7.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnbx8.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnbx9.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnbxsl10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnbxti10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vncligtb.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vncode.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vncombac.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vncsc.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vncsc10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vndothook.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vndunh10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnecomp.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnff10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnfi10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnfib8.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnicomp.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vniligtb.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnitt10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnlacc.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnlai.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnlar.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnldi.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnldr.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnlei.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnler.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnlii.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnlir.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnloi.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnlor.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnlui.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnlur.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnlyi.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnlyr.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnminus.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnmligtb.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnocomp.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnr10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnr12.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnr17.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnr5.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnr6.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnr7.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnr8.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnr9.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnrligtb.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnrm.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnroman.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnsl10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnsl12.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnsl8.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnsl9.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnsltt10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnss10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnss12.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnss17.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnss8.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnss9.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnssbx10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnssdc10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnssi10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnssi12.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnssi17.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnssi8.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnssi9.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnssq8.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnssqi8.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vntcsc10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vntextit.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnti10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnti12.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnti7.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnti8.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnti9.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vntt10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vntt12.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vntt8.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vntt9.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnu10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnuacc.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnuar.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnucomp.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnudr.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnuer.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnuir.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnuor.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnuur.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnuyr.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnvtt10.mf create mode 100644 Master/texmf-dist/fonts/source/vntex/vnr/vnycomp.mf (limited to 'Master/texmf-dist/fonts/source/vntex') diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnaccent.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnaccent.mf new file mode 100644 index 00000000000..1aa76f8db04 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnaccent.mf @@ -0,0 +1,505 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% define accents for vietnamese letters + +vn_accent_gap# := max(.15x_height#, .5stem#); +vn_letter_height# := if case_ = small: x_height# else: cap_height# fi; +vn_max_ac_top# := 0; + +vn_tt_corr# := if low_asterisk: crisp# else: 0 fi; +define_pixels(vn_tt_corr); + +if serifs: + vn_acute_stem# := .8stem#; + vn_acute_hair# := min(hair#, .4vn_acute_stem#); +else: + vn_acute_stem# := .7[vair#, stem#]; + vn_acute_hair# := .9vair#; +fi + +vn_acute_side_thickness# := .6vn_acute_stem#; +vn_acute_corner# := .5vn_acute_hair#; +vn_tt_corner_corr# := .25vn_tt_corr#; +vn_corner_corr# := vn_acute_corner# + vn_tt_corner_corr#; +vn_acute_width# := 4u#; +ds# := vn_acute_corner# + vn_acute_side_thickness#; +vn_acute_height# := max(.4x_height#, (vn_acute_width# - ds#)*tand(30) + ds#); +vn_slant_width_corr# := slant*(vn_acute_height# - ds#); +vn_slant_weight_corr := if slant > 0: + if crisp > 0: .2 else: .3 fi slant + else: 0 fi; +define_blacker_pixels(vn_acute_stem, vn_acute_hair, vn_acute_side_thickness); + +define_accent_dimens( + acute_, + vn_acute_width# - vn_slant_width_corr#, + vn_acute_height# +); + +begin_accent(acute_); + if serifs: + pickup crisp.nib; + x1 = w - vn_acute_side_thickness; + y1 = h - vn_acute_side_thickness; + x2 = hp(vn_corner_corr#); + y2 = vp(vn_corner_corr#); + vn_acute_theta := angle(charwd - vn_corner_corr# - vn_acute_side_thickness#, + charht - vn_corner_corr# - vn_acute_side_thickness#); + pos1(vn_acute_stem*(1 + vn_slant_weight_corr), vn_acute_theta + 90); + pos2(vn_acute_hair*(1 + vn_slant_weight_corr), vn_acute_theta + 90); + filldraw circ_stroke z1e -- z2e; % diagonal + vn_set_ac_join(acute_, .4w, .4w#, h# - vn_acute_side_thickness#); + else: + pickup fine.nib; + % the following magic lines are to calculate the slope angle according + % to vn_acute_stem and vn_acute_hair by solving the equation + % tand(theta)*(w - .5(vn_acute_stem + vn_acute_hair)/sind(theta)) = h; + A := charwd/charht; + B := .5(vn_acute_stem# + vn_acute_hair#)/charht; + vn_acute_theta := angle(A*sqrt(A*A + 1 - B*B) - B, A*A + 1); + pos1(vn_acute_stem/sind(vn_acute_theta), 0); + pos2(vn_acute_hair/sind(vn_acute_theta), 0); + rt x1r = w; + lft x2l = 0; + top y1 = h; + bot y2 = 0; + filldraw stroke z1e -- z2e; + vn_set_ac_join(acute_, .3w, .3w#, h#); + fi % diagonal + penlabels(1, 2); +end_accent; + +define_accent_dimens( + grave_, + vn_acute_width# + vn_slant_width_corr#, + vn_acute_height# +); + +begin_accent(grave_); + if serifs: + pickup crisp.nib; + x1 = vn_acute_side_thickness; + y1 = h - vn_acute_side_thickness; + x2 = w - hp(vn_corner_corr#); + y2 = vp(vn_corner_corr#); + vn_grave_theta := 180 - angle(z1 - z2); + pos1(vn_acute_stem*(1 - vn_slant_weight_corr), 90 - vn_grave_theta); + pos2(vn_acute_hair*(1 - vn_slant_weight_corr), 90 - vn_grave_theta); + filldraw circ_stroke z1e -- z2e; + vn_set_ac_join(grave_, .7w, .7w#, vn_corner_corr#); + else: + pickup fine.nib; + pos1(vn_acute_stem/sind(vn_acute_theta), 0); + pos2(vn_acute_hair/sind(vn_acute_theta), 0); + lft x1l = 0; + rt x2r = w; + top y1 = h; + bot y2 = 0; + filldraw stroke z1e -- z2e; + vn_set_ac_join(grave_, .7w, .7w#, 0); + fi % diagonal + penlabels(1, 2); +end_accent; + +define_accent_dimens( + dotless_question_, + 4.5u#, + if serifs: .6min(asc_height#, 1.5x_height#) + else: .6min(asc_height#, 1.3x_height#) fi +); + +hook_scale_stem := .65; + +begin_accent(dotless_question_); % based on roman question mark + numeric bot_width; + bot_width = hook_scale_stem * + if hefty: max(hround .8dot_size, fine.breadth) else: hair fi; + pickup fine.nib; + pos2(hook_scale_stem*vair, 90); + pos3(hook_scale_stem*curve, 0); + pos4(hook_scale_stem*vair, -90); + pos5(hook_scale_stem*bot_width, 0); + pos6(hook_scale_stem*bot_width, 0); + x2 = x4 = x5 = x6 = .5w - .125u; + rt x3r = hround(w - .5u); + bot_hook# := .15[dot_size#, x_height#] + if serifs: + .2x_height# - .5dot_size# - .75vn_tt_corr# + else: + .1x_height# - .5dot_size# fi; + define_pixels(bot_hook); + bot y6 = 1 + bot_hook; + top y2r = h + oo; +% y3 = .75[y6, y2]; + y3 = .7[y6, y2]; + if serifs: +% y4 = .5[y6, y2]; + y4 = .45[y6, y2]; + else: + y4 = .45[y6, y2]; + fi + y5 = .1[y6, y2]; + {{interim superness := more_super; + filldraw stroke pulled_super_arc.e(2, 3)(superpull) + & subpath (0, 1) of super_arc.e(3, 4) .. z5e --- z6e\\}}; % arc and stem + if serifs: + pos1(hook_scale_stem*hair, 180); + pos0(hook_scale_stem*flare, 180); + lft x1r = hround .5u; + y1 = y3; + bulb(2, 1, 0); % bulb + else: + pos1(Vround 5/7[hook_scale_stem*vair, hook_scale_stem*flare], 110); + lft x1r = hround .5u; + top y1r = vround .8[y6, top y2r]; + filldraw stroke term.e(2, 1, left, 1, 4); + fi % terminal + penlabels(0, 1, 2, 3, 4, 5, 6); +% now we need to calculate the accent dimens: +% lft x1r = hround .5u; +% rt x3r = hround(w - .5u); + vn_hook_width# := w# - u#; +% bot y6 = 1 + bot_hook; +% top y2r = h + oo; +% oo:=vround(.5o#*hppp*o_correction)+eps; + vn_hook_height# := h# + .5o#*o_correction - bot_hook#; + vn_hook_shift_y := bot_hook; + vn_hook_shift_x := .5u + vn_hook_shift_y*slant; +% x2 = x4 = x5 = x6 = .5w - .125u; + vn_hook_join_x := .5w - .125u - .5u; + vn_hook_join_x# := .5w# - .25u# - .5u#; +end_accent; + +define_accent_dimens( + hook_, + vn_hook_width#, + vn_hook_height# +); + +def bboxcolor = blue enddef; +begin_accent(hook_); + currentpicture := vn_pic(dotless_question_) + shifted -(vn_hook_shift_x, vn_hook_shift_y); + vn_set_ac_join(hook_, vn_hook_join_x, vn_hook_join_x#, .75h#); +end_accent; +def bboxcolor = red enddef; + +vn_circumflex_width# := 1.5vn_acute_width#; +if serifs: +vn_left_theta := .8vn_acute_theta; +vn_right_theta := .8vn_grave_theta; +vn_circumflex_height# := vn_corner_corr# + .5vn_acute_stem# + + (.5vn_circumflex_width# - vn_corner_corr#)*tand(vn_left_theta); +else: +vn_circumflex_height# := vn_acute_height#; +fi +define_accent_dimens( + circumflex_, + vn_circumflex_width#, + vn_circumflex_height# +); + +begin_accent(circumflex_); + if serifs: + pickup crisp.nib; + x1 = w - x3 = hp(vn_corner_corr#); + if vn_tt_corr = 0: + y1 = y3 + .3vp(vn_slant_width_corr#) + else: + y1 = y3 + fi + = vp(vn_corner_corr#); + pos1(vn_acute_hair*(1 + vn_slant_weight_corr), vn_left_theta + 90); + pos3(vn_acute_hair*(1 - vn_slant_weight_corr), 90 - vn_right_theta); + pos2(.9vn_acute_stem, 90); + x2 = .5w - .3hp(vn_slant_width_corr#); + z1 - z2 = whatever * dir vn_left_theta; + filldraw stroke z1e -- z2e -- z3e; % diagonals + penlabels(0, 1, 2, 3, 4); + vn_set_ac_join(circumflex_, .5w, .5w#, 0); + else: + pickup fine.nib; + % similiarly to acute + A := .5(charwd + vn_acute_stem#)/charht; + B := .5(vn_acute_stem# + vn_acute_hair#)/charht; + theta := angle(A*sqrt(A*A + 1 - B*B) - B, A*A + 1); + pos1(vn_acute_hair/sind(theta), 0); + pos2(min(stem/sind(theta), .6h), 0); + pos3(vn_acute_hair/sind(theta), 0); + lft x1l = w - rt x3r = 0; + bot y1 = bot y3 = 0; + x2 = 1/2w; + top y2 = h; + z0 = whatever[z1r, z2r] = whatever[z2l, z3l]; + y4l = y4r = y2; + x4l = good.x 1/5[x2l, x2]; + x4r = w - x4l; + filldraw z4l -- z1l -- z1r -- z0 -- z3l -- z3r -- z4r -- cycle; + penlabels(0, 1, 2, 3, 4); + vn_set_ac_join(circumflex_, .5w, .5w#, 0); + fi % diagonals +end_accent; + +vn_breve_width# := .9vn_circumflex_width#; +vn_breve_height# := min(if not serifs: .8 fi vn_circumflex_height#, .5vn_breve_width#); + +define_accent_dimens( + breve_, + vn_breve_width#, + vn_breve_height# +); + +begin_accent(breve_); + if serifs: + pickup crisp.nib; + vn_breve_stem := .8vn_acute_stem; + vn_breve_vair := vn_acute_hair; + else: + pickup fine.nib; + vn_breve_stem := .9vair; + vn_breve_vair := .9vair; + fi + pos1(vn_breve_vair, -180); + pos3(vn_breve_vair, 0); + top y1 = top y3 = h; + lft x1r = w - rt x3r = 0; + pos2(vn_breve_stem, -90); + x2 = .5w; + bot y2r = 0; + filldraw stroke z1e{down} ... z2e{right} ... {up}z3e; + penlabels(1, 2, 3); + vn_set_ac_join(breve_, .5w, .5w#, 0); +end_accent; + +vn_tilde_h# := min(asc_height# - x_height#, 3/7x_height# + .5dot_size#); +if serifs: + vn_tilde_width# := vn_breve_width#; + vn_tilde_height# := .4vn_tilde_h# + .5vn_tt_corr# + .2stem# + if beak_jut < 0: + .4vn_tilde_h# fi; +else: + vn_tilde_width# := vn_circumflex_width#; + vn_tilde_height# := .7vn_breve_height# + .2stem#; +fi +vn_tilde_h := vp(vn_tilde_h#); + +define_accent_dimens( + tilde_, + vn_tilde_width#, + vn_tilde_height# +); + +vn_gap(tilde_) := .1x_height#; + +begin_accent(tilde_); + if serifs: + vn_tilde_stem := min(vn_acute_stem, .2w); + vn_tilde_vair := max(vair, .5vn_tilde_stem); + theta := angle(1/4(4u - vn_tilde_vair), 1/4vn_tilde_h); + pickup crisp.nib; + numeric vn_mid_width; +% vn_mid_width = .4[vn_tilde_vair, vn_tilde_stem]; + vn_mid_width = .4[vn_tilde_vair, stem]; + pos1(vn_tilde_vair, theta + 90); + pos2(vn_tilde_vair, theta + 90); + pos3(vn_tilde_vair, theta + 90); + pos4(vn_tilde_vair, theta + 90); + z2 - z1 = z4 - z3 = min(vn_mid_width - .8crisp - .2vn_tt_corr, .3w)*dir theta; + lft x1r = w - rt x4l = 0; + bot y1l = 0; + top y4r = vround(top y4r + max(.3vn_tilde_h, y2r + .25vn_tilde_vair) - bot y4l); + pair delta; + ypart delta = min(3*(y3l - y1l), 1.6h); + delta = whatever*dir theta; + filldraw z1l .. controls(z1l + delta) and (z3l - delta) + .. z3l .. z4l -- z4r .. controls(z4r - delta) and (z2r + delta) + .. z2r .. z1r -- cycle; % stroke + else: + pickup fine.nib; + vn_tilde_vair := min(vair, .5vn_tilde_h); + pos1(vn_tilde_vair, 180); + pos2(vn_tilde_vair, 90); + pos3(.5[vn_tilde_vair, slab], 90); + pos4(vn_tilde_vair, 90); + pos5(vn_tilde_vair, 180); + lft x1r = w - rt x5l = 0; + x2 - x1 = x3 - x2 = x4 - x3 = x5 - x4; + bot y1 = bot y4l = 0; + top y2r = top y5 = h; + y3 = .5[y2, y4]; + filldraw stroke z1e{up} ... z2e{right} .. z3e .. {right}z4e ... {up}z5e; + fi % stroke + vn_set_ac_join(tilde_, .5w, .5w#, 0); + penlabels(1, 2, 3, 4, 5); +end_accent; + +vn_dot_diam# := max(.8max(dot_size#, cap_curve#), flare#); +define_whole_blacker_pixels(vn_dot_diam); +vn_bot(dot_) := max(vn_accent_gap#, .7vn_dot_diam#) + vn_dot_diam#; + +define_accent_dimens( + dot_, + vn_dot_diam#, + vn_dot_diam# +); + +begin_accent(dot_); + pickup tiny.nib; + pos1(h, 0); + pos2(h, 90); + lft x1l = 0; + x1 = x2; + top y2r = h; + y1 = 1/2[y2l, y2r]; + dot(1, 2); % dot + vn_set_ac_join(dot_, .5w, .5w#, .5h#); + penlabels(1, 2); +end_accent; + + +if not square_dots: + vn_horn_dot_size# := min(dot_size#, .3x_height#); +% vn_horn_dot_size# := 1.2stem# + .1vn_tt_corr#; + vn_horn_stem# := if vn_tt_corr# = 0: 1.3 fi vair#; + vn_ohorn_width# := vn_horn_dot_size# + .1stem# + .2vn_tt_corr#; + vn_ohorn_height# := 1.6vn_horn_dot_size# + .2vn_tt_corr#; + vn_uhorn_width# := vn_horn_dot_size# + .2u# + + if case_ = small: .1u# + .4stem# - .2vn_slant_width_corr# + else: .4cap_hair# fi; + vn_uhorn_height# := 1.7vn_horn_dot_size#; +else: + vn_horn_dot_size# := max(dot_size#, .8cap_curve#); + vn_horn_stem# := .7vn_horn_dot_size#; + vn_ohorn_width# := vn_horn_dot_size# + .3stem# + .3u#; + vn_ohorn_height# := 1.7vn_horn_dot_size#; + vn_uhorn_width# := vn_horn_dot_size# + .5stem# + .3u#; + vn_uhorn_height# := 1.8vn_horn_dot_size#; +fi + +vn_horn_top# := vn_letter_height# + vn_horn_dot_size#; + +define_accent_dimens( + ohorn_, + vn_ohorn_width#, + vn_ohorn_height# +); + +begin_accent(ohorn_); + vn_draw_horn(ohorn_, vn_horn_dot_size#, vn_horn_stem#, 45); + vn_bot(ohorn_) := vn_horn_top# - vn_height(ohorn_); +end_accent; + +define_accent_dimens( + uhorn_, + vn_uhorn_width#, + vn_uhorn_height# +); + +begin_accent(uhorn_); + vn_draw_horn(uhorn_, vn_horn_dot_size#, + if case_ <> small: min(vn_horn_stem#, hair#) else: vn_horn_stem# fi, 0); + vn_bot(uhorn_) := vn_horn_top# - vn_height(uhorn_); +end_accent; + +vn_ac_top := vn_max_ac_top#; + +if serifs: + vn_breve_acute_gap# := -.02x_height# + .3stem# + .1vn_tt_corr#; +else: + vn_breve_acute_gap# := .15x_height# - .4stem#; + vn_acute_botwidth# := vn_acute_hair#/sind(vn_acute_theta); % arcording to ss acute +fi + +define_double_accent( + breve_, acute_, + if serifs: + .8vn_left_side(breve_) + .2vn_tt_corr# + else: + vn_left_side(breve_) - .5vn_acute_botwidth# - .5u# + fi, + vn_breve_acute_gap# +); + +define_double_accent( + breve_, grave_, + vn_align_right(breve_, grave_) + if serifs: + - .7vn_right_side(breve_) + - vn_sl_shift(breve_) + - .2vn_tt_corr# + else: + - vn_right_side(breve_) + + .7vn_acute_botwidth# + - vn_sl_shift(breve_) + fi, + vn_breve_acute_gap# +); + +define_double_accent( + breve_, hook_, + vn_align_join(breve_, hook_), + vn_breve_acute_gap# +); + +vn_breve_tilde_gap# := .04x_height# + .3stem# + .1vn_tt_corr#; + +define_double_accent( + breve_, tilde_, + vn_align_join(breve_, tilde_), + vn_breve_tilde_gap# +); + +if not serifs: +vn_acute_botshift# := .5vn_acute_hair#/sind(vn_acute_theta) + + .7vn_acute_stem#/sind(vn_acute_theta) + u#; % arcording to ss acute +fi + +define_double_accent( + circumflex_, acute_, + if serifs: + .3vn_left_side(circumflex_) + + .2vn_tt_corr# + else: + vn_left_side(circumflex_) + - vn_acute_botshift# + fi, + vn_breve_acute_gap# +); + +define_double_accent( + circumflex_, grave_, + vn_align_right(circumflex_, grave_) + if serifs: + - .3vn_right_side(circumflex_) + - vn_sl_shift(circumflex_) + - .2vn_tt_corr# + else: + - vn_right_side(circumflex_) + + vn_acute_botshift# + - vn_sl_shift(circumflex_) + fi, + vn_breve_acute_gap# +); + +define_double_accent( + circumflex_, hook_, + vn_align_join(circumflex_, hook_) + if serifs: + + .3vn_right_side(circumflex_) + - vn_sl_shift(circumflex_) + - .2vn_tt_corr# + else: + + .7vn_right_side(circumflex_) + - vn_sl_shift(circumflex_) + fi, + vn_breve_acute_gap# +); + +define_double_accent( + circumflex_, tilde_, + vn_align_join(circumflex_, tilde_), + vn_breve_tilde_gap# +); + +vn_double_ac_top := vn_max_ac_top#; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnacomp.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnacomp.mf new file mode 100644 index 00000000000..27a172ea5e2 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnacomp.mf @@ -0,0 +1,58 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% define [aA]-based accented letters + +vnchar casename "a with acute"; +define_vnchar(a, acute_); + +vnchar casename "a with grave"; +define_vnchar(a, grave_); + +vnchar casename "a with hook"; +define_vnchar(a, hook_); + +vnchar casename "a with tilde"; +define_vnchar(a, tilde_); + +vnchar casename "a with dot"; +define_vnchar_dot(a); + +vnchar casename "a with breve "; +define_vnchar(a, breve_); + +vnchar casename "a with breve and acute"; +define_vnchar(a, breve_.acute_); + +vnchar casename "a with breve and grave"; +define_vnchar(a, breve_.grave_); + +vnchar casename "a with breve and hook"; +define_vnchar(a, breve_.hook_); + +vnchar casename "a with breve and tilde"; +define_vnchar(a, breve_.tilde_); + +vnchar casename "a with breve and dot"; +define_vnchar_dot_ac(a, breve_); + +vnchar casename "a with circumflex "; +define_vnchar(a, circumflex_); + +vnchar casename "a with circumflex and acute"; +define_vnchar(a, circumflex_.acute_); + +vnchar casename "a with circumflex and grave"; +define_vnchar(a, circumflex_.grave_); + +vnchar casename "a with circumflex and hook"; +define_vnchar(a, circumflex_.hook_); + +vnchar casename "a with circumflex and tilde"; +define_vnchar(a, circumflex_.tilde_); + +vnchar casename "a with circumflex and dot"; +define_vnchar_dot_ac(a, circumflex_); + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnb10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnb10.mf new file mode 100644 index 00000000000..ddee29dcf6d --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnb10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecrb; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbase.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbase.mf new file mode 100644 index 00000000000..a87e32ce6c8 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbase.mf @@ -0,0 +1,954 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% basic macros for all vnr fonts + +% get_acc_pos := 1; +% gen_t5_supp := 1; + +if known get_acc_pos or known gen_t5_supp: + mag := 100.375; +fi + +% define which letters should be generated when testing > 0 +def testchars = +% a.acute_, +% a.dot_, +% a.grave_, +% a.hook_, +% a.tilde_, +% a.breve_, +% a.breve_.acute_, +% a.breve_.dot_, +% a.breve_.grave_, +% a.breve_.hook_, +% a.breve_.tilde_, +% a.circumflex_, +% a.circumflex_.acute_, +% a.circumflex_.dot_, +% a.circumflex_.grave_, +% a.circumflex_.hook_, +% a.circumflex_.tilde_, +% d.bar_, +% e.acute_, +% e.dot_, +% e.grave_, +% e.hook_, +% e.tilde_, +% e.circumflex_, +% e.circumflex_.acute_, +% e.circumflex_.dot_, +% e.circumflex_.grave_, +% e.circumflex_.hook_, +% e.circumflex_.tilde_, +% i.acute_, +% i.dot_, +% i.grave_, +% i.hook_, +% i.tilde_, +% o.acute_, +% o.dot_, +% o.grave_, +% o.hook_, +% o.tilde_, +% o.circumflex_, +% o.circumflex_.acute_, +% o.circumflex_.dot_, +% o.circumflex_.grave_, +% o.circumflex_.hook_, +% o.circumflex_.tilde_, +o.horn_, +o.horn_.acute_, +o.horn_.dot_, +o.horn_.grave_, +o.horn_.hook_, +o.horn_.tilde_, +% u.acute_, +% u.dot_, +% u.grave_, +% u.hook_, +% u.tilde_, +u.horn_, +u.horn_.acute_, +u.horn_.dot_, +u.horn_.grave_, +u.horn_.hook_, +u.horn_.tilde_, +% y.acute_, +% y.dot_, +% y.grave_, +% y.hook_, +% y.tilde_, +last +enddef; + +C.l.last := 256; +C.u.last := 256; + +% copied from plain.mf to make metapost run with ec sources, as mfplain.mp is not +% up-to-date with plain.mf +vardef whatever = save ?; ? enddef; +def killtext text t = enddef; + + +if known testing: % turn testing on +% proofcolor := .4[white, black]; + defaultfont := "Times-Roman"; + defaultscale := 1; + prologues := 1; + show_labels := 1; + if known gensize: + mag := 20/gensize; + else: + mag := 2; + fi +fi + +if unknown exbase: + input exbase; +fi + +if unknown displaying: + displaying := 0; +fi + +let vnchar = ecchar; +let cmchar = ecchar; + +input vncode; % character encoding + +if known testing: +string inputstr; +forsuffixes _u = + A_fam_used, D_fam_used, E_fam_used, I_fam_used, O_fam_used, U_fam_used, Y_fam_used, + a_fam_used, d_fam_used, e_fam_used, i_fam_used, o_fam_used, u_fam_used, y_fam_used: + boolean _u; + _u := false; +endfor; + +def test_fam(text _f, _u, _c) = + n_ := 0; + if not _u: + forsuffixes $ = _f(,) 257: + n_ := n_ + 1; + if (($ < 32) or ($ > 127)) % check for vn chars only + and ($ = C.u._c) or ($ = C.l._c): + _u := true; + fi + endfor + fi +enddef; + +forsuffixes _c = testchars: + test_fam(A_fam)(A_fam_used)(_c); + test_fam(D_fam)(D_fam_used)(_c); + test_fam(E_fam)(E_fam_used)(_c); + test_fam(I_fam)(I_fam_used)(_c); + test_fam(O_fam)(O_fam_used)(_c); + test_fam(U_fam)(U_fam_used)(_c); + test_fam(Y_fam)(Y_fam_used)(_c); + + test_fam(a_fam)(a_fam_used)(_c); + test_fam(d_fam)(d_fam_used)(_c); + test_fam(e_fam)(e_fam_used)(_c); + test_fam(i_fam)(i_fam_used)(_c); + test_fam(o_fam)(o_fam_used)(_c); + test_fam(u_fam)(u_fam_used)(_c); + test_fam(y_fam)(y_fam_used)(_c); + + test_fam(U_horn_fam)(U_fam_used)(_c); + test_fam(u_horn_fam)(u_fam_used)(_c); +endfor + +def input_ur_fam = + inputstr := ""; + if A_fam_used: inputstr := inputstr & "input vnuar; "; fi + if D_fam_used: inputstr := inputstr & "input vnudr; "; fi + if E_fam_used: inputstr := inputstr & "input vnuer; "; fi + if I_fam_used: inputstr := inputstr & "input vnuir; "; fi + if O_fam_used: inputstr := inputstr & "input vnuor; "; fi + if U_fam_used: inputstr := inputstr & "input vnuur; "; fi + if Y_fam_used: inputstr := inputstr & "input vnuyr; "; fi + scantokens(inputstr); +enddef; + +def input_lr_fam = + inputstr := ""; + if a_fam_used: inputstr := inputstr & "input vnlar; "; fi + if d_fam_used: inputstr := inputstr & "input vnldr; "; fi + if e_fam_used: inputstr := inputstr & "input vnler; "; fi + if i_fam_used: inputstr := inputstr & "input vnlir; "; fi + if o_fam_used: inputstr := inputstr & "input vnlor; "; fi + if u_fam_used: inputstr := inputstr & "input vnlur; "; fi + if y_fam_used: inputstr := inputstr & "input vnlyr; "; fi + scantokens(inputstr); +enddef; + +def input_sc_fam = + inputstr := ""; + if a_fam_used: inputstr := inputstr & "input vnuar; "; fi + if d_fam_used: inputstr := inputstr & "input vnudr; "; fi + if e_fam_used: inputstr := inputstr & "input vnuer; "; fi + if i_fam_used: inputstr := inputstr & "input vnuir; "; fi + if o_fam_used: inputstr := inputstr & "input vnuor; "; fi + if u_fam_used: inputstr := inputstr & "input vnuur; "; fi + if y_fam_used: inputstr := inputstr & "input vnuyr; "; fi + scantokens(inputstr); +enddef; + +def input_li_fam = + inputstr := ""; + if a_fam_used: inputstr := inputstr & "input vnlai; "; fi + if d_fam_used: inputstr := inputstr & "input vnldi; "; fi + if e_fam_used: inputstr := inputstr & "input vnlei; "; fi + if i_fam_used: inputstr := inputstr & "input vnlii; "; fi + if o_fam_used: inputstr := inputstr & "input vnloi; "; fi + if u_fam_used: inputstr := inputstr & "input vnlui; "; fi + if y_fam_used: inputstr := inputstr & "input vnlyi; "; fi + scantokens(inputstr); +enddef; + +% def endchar = +% scantokens extra_endchar; +% if proofing>0: makebox(proofrule); fi +% chardx:=w; % desired width of the character in pixels +% shipit; +% endgroup enddef; + +% def makebox(text rule) = +% for y=0,asc_height,body_height,x_height,bar_height,-desc_depth,-body_depth: +% rule((l,y)t_,(r,y)t_); endfor % horizontals +% for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals +% for x=u*(1+floor(l/u)) step u until r-1: +% rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals +% if charic<>0: +% rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction +% enddef; + +def bboxcolor = red enddef; +def bboxrule(expr w,z) = + begingroup interim linecap:=squared; + draw w..z withpen pencircle scaled (.4/bp_per_pixel) withcolor bboxcolor; + endgroup +enddef; + +def makebox(text rule) = + for y=0,(cap_height+acc_height), + asc_height,body_height,x_height,bar_height,-desc_depth,-body_depth: + rule((l,y),(r,y)); endfor % horizontals + + for y=-3.5pt,8.5pt,(x_height+acc_height): + rule((l-4pt,y),(l-2pt,y)); endfor + for x=l,r: rule((x,-body_depth),(x,body_height)); endfor % verticals + for x=u*(1+floor(l/u)) step u until r-1: + rule((x,-body_depth),(x,body_height)); endfor % more verticals + + for x=0.5w: + rule((x,-body_depth-1pt),(x,-body_depth-1.5pt)); + rule((x,cap_height+acc_height+1pt),(x,cap_height+acc_height+1.5pt)); + endfor + if charic<>0: + rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction + enddef; + +def makebbox(text rule) = + for x=0,w: bboxrule((x,-d),(x,h)); endfor % verticals + for y = 0,h,-d: bboxrule((0, y), (w, y)); endfor +enddef; + +def endchar = + scantokens extra_endchar; + if proofing>0: +% makebox(proofrule); + makebbox(proofrule); + fi + shipit; +endgroup +enddef; + +fi % known testing + +% if (known show_labels) and (known testing): +% if (known show_labels): +% def makebox(text r) = +% for y = 0, h, -d: +% r((0, y), (w, y)); +% endfor % horizontals +% for x = 0, w: +% r((x, -d), (x, h)); +% endfor % verticals +% enddef; +% def draw_box(expr x, y, w, h, p) = +% pickup pencircle scaled p; +% draw (x, y) -- (x, y + h) -- (x + w, y + h) -- (x + w, y) -- (x, y); +% enddef; +% else: +% def makebox(text r) = enddef; +% def draw_box(expr x, y, w, h) = enddef; +% def penlabels(text r) = enddef; +% proofcolor := black; +% fi; + +numeric case_; +small := 0; +capital := 1; +smallcap := 2; + +def set_lowercase = + case_ := small; + def vncase = l enddef; +enddef; + +def set_uppercase = + case_ := capital; + def vncase = u enddef; +enddef; + +def set_smallcap = + case_ := smallcap; + def vncase = l enddef; +enddef; + +def casename expr _name = +if not known testing: + "The " & + if case_ = capital: + "capital" + elseif case_ = small: + "small" + else: + "smallcap" + fi & + " letter " & _name +fi +enddef; + +def ifknown(suffix _a)(expr _b) = + if known _a: _a + else: _b + fi +enddef; + +def tand(expr _d) = + (sind(_d)/cosd(_d)) +enddef; + +def vn_code(suffix _n) = + C.vncase._n +enddef; + +def vn_pic(suffix _n) = + vn.vncase._n.pic +enddef; + +def vn_width(suffix _n) = + vn.vncase._n.w# +enddef; + +def vn_height(suffix _n) = + vn.vncase._n.h# +enddef; + +def vn_top(suffix _n) = + vn.vncase._n.top# +enddef; + +def vn_depth(suffix _n) = + vn.vncase._n.d# +enddef; + +def vn_bot(suffix _n) = + vn.vncase._n.bot# +enddef; + +def vn_ic(suffix _n) = + vn.vncase._n.ic# +enddef; + +def vn_left_adj(suffix _n) = + vn.vncase._n.left_adj# +enddef; + +def vn_right_adj(suffix _n) = + vn.vncase._n.right_adj# +enddef; + +def vn_gap(suffix _n) = + vn.vncase._n.gap# +enddef; + +def vn_join_xp(suffix _n) = + vn.vncase._n.join.x +enddef; + +def vn_join_x(suffix _n) = + vn.vncase._n.join.x# +enddef; + +def vn_rt(suffix _n) = + vn.vncase._n.rt# +enddef; + +def vn_dot_shift_y(suffix _n) = + vn.vncase._n.dot_shift.y# +enddef; + +def vn_ac_top = + vn.vncase.accent_top# +enddef; + +def vn_double_ac_top = + vn.vncase.double_accent_top# +enddef; + +let vn_left_side = vn_join_x; + +def vn_right_side(suffix _a) = + (vn_width(_a) - vn_left_side(_a)) +enddef; + +def align_left(suffix _a, _b) = + 0 +enddef; + +def vn_align_join(suffix _a, _b) = + (vn_join_x(_a) - vn_join_x(_b)) +enddef; + +def vn_align_right(suffix _a, _b) = + (vn_width(_a) - vn_width(_b)) +enddef; + +def define_accent_dimens(suffix _a)(expr _w, _h) = + vn_width(_a) := _w; + vn_height(_a) := _h; + vn_top(_a) := vn_height(_a) + vn_letter_height# + vn_accent_gap#; + vn_max_ac_top# := max(vn_max_ac_top#, vn_top(_a)); +enddef; + +def vn_set_ac_join(suffix _a)(expr _xp, _x, _rt) = + vn_join_xp(_a) := _xp; + vn_join_x(_a) := _x; + vn_rt(_a) := _rt; + if known show_labels: + makelabel("j", (vn_join_xp(_a), 0)); + makelabel("J", (hp(vn_join_x(_a)), 0)); + makelabel("r", (hp(vn_width(_a)), vp(vn_rt(_a)))); + makelabel("o", (0,0)); + fi +enddef; + +def set_letter_join(suffix _l)(expr _xp, _x) = + vn_join_xp(_l) := _xp; + vn_join_x(_l) := _x; + if known show_labels: + makelabel("j", (vn_join_xp(_l), vp(vn_height(_l)))); + makelabel("J", (hp(vn_join_x(_l)), vp(vn_height(_l)))); + fi +enddef; + +def set_adj_gap(suffix _l, _a) = + adj_gap# := ifknown(vn_gap(_l._a), ifknown(vn_gap(_a), 0)); +enddef; + +def get_join_xp(suffix _l, _a) = + ifknown(vn_join_xp(_l._a), vn_join_xp(_l)) +enddef; + +def get_join_x(suffix _l, _a) = + ifknown(vn_join_x(_l._a), vn_join_x(_l)) +enddef; + +def get_top(suffix _a) = + max(vn_top(_a) + adj_gap#, + if vn_top(_a) <= vn_ac_top: + vn_ac_top + else: + vn_double_ac_top + fi) +enddef; + +def set_shift(suffix _l, _a) = + shift.y := vp(vn_top(_a) - vn_height(_a)); + shift.x := get_join_xp(_l, _a) - vn_join_xp(_a) + slant*shift.y; + shift.y# := vn_top(_a) - vn_height(_a); + shift.x# := get_join_x(_l, _a) - vn_join_x(_a) + slant*shift.y#; +enddef; + +def set_ic(suffix _l, _a) = + italcorr max(vn_ic(_l), + vn_width(_a) + shift.x# + + slant*(vn_rt(_a) + shift.y#) + - w# + .5u#); +enddef; + +def set_lic(suffix _l) = + italcorr vn_ic(_l); +enddef; + +def set_fit(suffix _l) = + adjust_fit(vn_left_adj(_l), vn_right_adj(_l)); +enddef; + +C.l.idot.dot_ = 256; +C.u.idot.dot_ = 256; % to avoid error when calling set_dot_shift(idot) + +def set_dot_shift(suffix _l) = + shift.y := - vp(ifknown(vn_dot_shift_y(_l), vn_bot(dot_))); + shift.x := get_join_xp(_l, dot_) - vn_join_xp(dot_) + slant*shift.y; +enddef; + +% vardef xpos@#(expr b ,d) = +% pos@#(max(currentbreadth + eps, b), d) +% enddef; +vardef pos@#(expr b,d) = + if known b: if b<=currentbreadth: + (x@#r-x@#l,y@#r-y@#l)=(eps,0) rotated d; + else: (x@#r-x@#l,y@#r-y@#l)=(b-currentbreadth,0) rotated d; fi + else: (x@#r-x@#l,y@#r-y@#l)=(b-currentbreadth,0) rotated d; fi + x@#=.5(x@#l+x@#r); y@#=.5(y@#l+y@#r) +enddef; + +def hp(expr _x) = + hround(_x*hppp) +enddef; + +def vp(expr _y) = + vround(_y*vppp) +enddef; + +def begin_pic(suffix _n) = + begingroup + clearxy; + clearit; + clearpen; + picture vn.vncase._n.pic; + vn.vncase._n.pic := + begingroup +enddef; + +def end_pic = + if known testing: +% makebox(proofrule); + makebbox(proofrule); + fi + currentpicture % continuation of `vn_pic(_n) :=' + endgroup; + endgroup +enddef; + +def set_letter_dimens(suffix _l)(expr _w, _h, _d, _ic, _lft, _rt) = + set_char_dimens(_w, _h, _d); + vn_width(_l) := _w; + vn_height(_l) := _h; + vn_depth(_l) := _d; + vn_ic(_l) := _ic; + vn_left_adj(_l) := _lft; + vn_right_adj(_l) := _rt; + adjust_fit(_lft, _rt); +enddef; + +def begin_accent(suffix _a) = + begin_pic(_a); + set_char_dimens(vn_width(_a), vn_height(_a), 0) +enddef; +let end_accent = end_pic; + +let begin_letter = begin_pic; +let end_letter = end_pic; + +def vn_sl_shift(suffix _a) = +% .5slant*(adj_y# + vn_height(_a)) + 0 +enddef; + +def set_char_dimens(expr _w, _h, _d) = + charwd := _w; + charht := _h; + chardp := _d; + w := hp(charwd); + h := vp(charht); + d := vp(chardp); + charic := 0; +enddef; + +def abs_round(expr _e) = + if _e < 0: + ceiling(_e - .5) + else: + floor(_e + .5) + fi +enddef; + +def write_shift_xy(suffix _l, _a)(expr _sx, _sy) = + if known get_acc_pos and known bp_per_pixel: + message "CC " & + if case_ = capital: + "capital" + elseif case_ = small: + "small" + else: + "smallcap" + fi & " " & + str _l & " " & + str _a & " " & + decimal(abs_round(_sx*bp_per_pixel*10/designsize)) & " " & + decimal(abs_round(_sy*bp_per_pixel*10/designsize)); + fi +enddef; + + +def define_double_accent(suffix _a, _b)(expr _adj_x, _adj_y) = + shift.y# := _adj_y + vn_height(_a); + shift.x# := _adj_x + slant*shift.y#; + define_accent_dimens(_a._b, vn_width(_a), vn_height(_b) + shift.y#); + begin_accent(_a._b); + currentpicture := vn_pic(_a); + addto currentpicture also vn_pic(_b) + shifted (hp(shift.x#), vp(shift.y#)); + write_shift_xy(_a, _b)(hp(shift.x#), vp(shift.y#)); + vn_set_ac_join(_a._b, vn_join_xp(_a), vn_join_x(_a), + if vn_width(_a) + slant*vn_rt(_a) > + vn_width(_b) + shift.x# + slant*(vn_rt(_b) + shift.y#): + vn_rt(_a) + else: + vn_rt(_b) + shift.y# + fi); + end_accent; +enddef; + +if not known testing: +vardef used_char(expr _code) = true enddef; +else: +vardef used_char(expr _code) = + boolean _is_used; + _is_used := false; + forsuffixes $ = testchars: + if _code = vn_code($): + _is_used := true; + fi; + endfor; + _is_used +enddef; +fi + +def define_vnaccent(expr _c)(suffix _a) = + beginchar(_c, vn_width(_a), vn_height(_a), 0); + currentpicture := vn_pic(_a); + endchar +enddef; + +def define_vnchar(suffix _l, _a) = +if used_char(vn_code(_l._a)): + set_adj_gap(_l, _a); % set adj_gap# + beginchar(vn_code(_l._a), + vn_width(_l), + get_top(_a), + vn_depth(_l)); + set_shift(_l, _a); % set shift.x, shift.y, shift.x# and shift.y# + set_ic(_l, _a); % call italcorr + set_fit(_l); % call adjust_fit + currentpicture := vn_pic(_l); + addto currentpicture also vn_pic(_a) + shifted (shift.x, shift.y + vp(adj_gap#)); + write_shift_xy(_l, _a) + (shift.x + hp(vn_left_adj(_l)) + letter_fit, shift.y + vp(adj_gap#)); +% message "vn_left_adj: " & decimal hp(vn_left_adj(_l)); +% message "letter_fit: " & decimal letter_fit; + endchar +fi +enddef; + +def define_vnchar_dot(suffix _l) = +if used_char(vn_code(_l.dot_)): + % test for the small i letter with dot + if (case_ = small) and (vn_code(_l.dot_) = vn_code(i.dot_)): + beginchar(vn_code(i.dot_), + vn_width(idot), + vn_height(idot), + vn_bot(dot_)); + set_dot_shift(idot); % set shift.x and shift.y + set_lic(idot); % call italcorr + set_fit(idot); % call adjust_fit + currentpicture := vn_pic(idot); + else: + beginchar(vn_code(_l.dot_), + vn_width(_l), + vn_height(_l), + ifknown(vn_depth(_l.dot_), max(vn_bot(dot_), vn_depth(_l)))); + set_dot_shift(_l); + set_lic(_l); + set_fit(_l); + currentpicture := vn_pic(_l); + fi + addto currentpicture also vn_pic(dot_) + shifted (shift.x, shift.y); + write_shift_xy(_l, dot_) + (shift.x + hp(vn_left_adj(_l)) + letter_fit, shift.y); + endchar +fi +enddef; + +def define_vnchar_dot_ac(suffix _l, _a) = +if used_char(vn_code(_l._a.dot_)): + set_adj_gap(_l, _a); + beginchar(vn_code(_l._a.dot_), + vn_width(_l), + get_top(_a), + max(vn_bot(dot_), vn_depth(_l))); + set_shift(_l, _a); + set_ic(_l, _a); + set_fit(_l); + currentpicture := vn_pic(_l); + addto currentpicture also vn_pic(_a) + shifted (shift.x, shift.y + vp(adj_gap#)); + set_dot_shift(_l); + addto currentpicture also vn_pic(dot_) + shifted (shift.x, shift.y); + write_shift_xy(_l._a, dot_) + (shift.x + hp(vn_left_adj(_l)) + letter_fit, shift.y); + endchar +fi +enddef; + +def define_vnchar_horn(suffix _l) = +if used_char(vn_code(_l.horn_)): + select_horn(_l); + set_shift_horn(_l); + update_horn_width(_l); + beginchar(vn_code(_l.horn_), + updated_width#, + vn_top(cur_horn_), + vn_depth(_l)); + set_ic(_l, cur_horn_); + set_fit(_l); + select_letter_u(_l); + addto currentpicture also vn_pic(cur_horn_) + shifted (shift.x, shift.y); + endchar +fi +enddef; + +def select_horn(suffix _l) = % set cur_horn_ to uhorn_ or ohorn_ according to _l + if vn_code(_l.horn_) = vn_code(u.horn_): + def cur_horn_ = uhorn_ enddef; + else: + def cur_horn_ = ohorn_ enddef; + fi +enddef; + +def update_horn_width(suffix _l) = + _du := (shift.x + hp(vn_width(cur_horn_))) - + (hp(vn_width(_l) + vn_left_adj(_l) + vn_right_adj(_l)) + 2letter_fit) - + slant*(shift.y + vp(vn_height(cur_horn_))); + updated_width# := vn_width(_l) + if _du > .5u: + + .5u#*floor(_du/.5u) + fi +enddef; + +def set_shift_horn(suffix _l) = + shift.y := vp(vn_bot(cur_horn_)); + shift.x := vn_join_xp(_l.horn_join) - vn_join_xp(cur_horn_) + + slant*(shift.y); +enddef; + +def select_letter_u(suffix _l) = + % test for the serif capital u letter with horn + if serifs and (case_ <> small) and (vn_code(_l.horn_) = vn_code(u.horn_)): + % use the modified "U" (without right part of the right serif) + currentpicture := vn_pic(Uhorn) + else: + currentpicture := vn_pic(_l) + fi +enddef; + +def define_vnchar_horn_ac(suffix _l, _a) = +if used_char(vn_code(_l.horn_._a)): + select_horn(_l); % set cur_horn_ to uhorn_ or ohorn_ according to _l + set_adj_gap(_l, _a); + set_shift_horn(_l); + update_horn_width(_l); + beginchar(vn_code(_l.horn_._a), + updated_width#, + get_top(_a), + vn_depth(_l)); + set_ic(_l, cur_horn_); + set_fit(_l); + select_letter_u(_l); + addto currentpicture also vn_pic(cur_horn_) + shifted (shift.x, shift.y); + set_shift(_l.horn_, _a); +% if serifs and (vn_code(_l.horn_._a) = vn_code(o.horn_.grave_)): +% shift.x := shift.x + max(0, u - .3stem); +% fi + set_ic(_l, _a); + addto currentpicture also vn_pic(_a) + shifted (shift.x, shift.y + vp(adj_gap#)); + write_shift_xy(_l.horn_, _a) + (shift.x + hp(vn_left_adj(_l)) + letter_fit, shift.y + vp(adj_gap#)); + endchar +fi +enddef; + +def define_vnchar_horn_dot(suffix _l) = +if used_char(vn_code(_l.horn_.dot_)): + select_horn(_l); % set cur_horn_ to uhorn_ or ohorn_ according to _l + set_shift_horn(_l); + update_horn_width(_l); + beginchar(vn_code(_l.horn_.dot_), + updated_width#, + vn_top(cur_horn_), + max(vn_bot(dot_), vn_depth(_l))); + set_ic(_l, cur_horn_); + set_fit(_l); + select_letter_u(_l); + addto currentpicture also vn_pic(cur_horn_) + shifted (shift.x, shift.y); + set_dot_shift(_l); +% if serifs and (vn_tt_corr = 0) and (vn_code(_l.horn_) = vn_code(o.horn_)): +% shift.x := shift.x + .1dot_size; +% fi + addto currentpicture also vn_pic(dot_) + shifted (shift.x, shift.y); + write_shift_xy(_l.horn_, dot_) + (shift.x + hp(vn_left_adj(_l)) + letter_fit, shift.y); + endchar +fi +enddef; + +% hook_arc is based on super_arc from exbase.mf +vardef hook_arc.r(suffix $, $$)(expr _superness, _swap) = + pair center, corner; + if (y$ = y$r) or _swap: + center = (x$$r, y$r); + corner = (x$r, y$$r); + else: + center = (x$r, y$$r); + corner = (x$$r, y$r); + fi + z$.r{corner - z$.r} ... _superness[center, corner]{z$$.r - z$.r} ... + {z$$.r - corner}z$$.r +enddef; + +vardef hook_arc.l(suffix $, $$)(expr _superness, _swap) = + pair center, corner; + if (y$ = y$r) or _swap: + center = (x$$l, y$l); + corner = (x$l, y$$l); + else: + center = (x$l, y$$l); + corner = (x$$l, y$l); + fi + z$l{corner - z$l} ... _superness[center, corner]{z$$l - z$l} ... + {z$$l - corner}z$$l +enddef; + +% vn_hook_bulb is based on bulb from exbase.mf +def vn_hook_bulb(suffix $, $$, $$$) = + z$$$r = z$$r; + path_.l := z$l{x$$r - x$r, 0} ... {0, y$$r - y$r}z$$l; + filldraw path_.l -- z$$r{0, y$r - y$$r} ... {x$r - x$$r, 0}z$r -- cycle; % link + path_.r := z$$$l{0, y$r - y$$r} .. z$$$r{0, y$$r - y$r}; % near - circle + filldraw subpath(0, xpart(path_.r intersectiontimes path_.l)) of path_.r + -- z$$r{0, y$$r - y$r} .. cycle; % bulb +enddef; + +def vn_draw_horn(suffix _a)(expr _dotsize, _horn_stem, _horn_bot_theta) = + cur_dotsize# := _dotsize; + cur_stem# := _horn_stem; + define_blacker_pixels(cur_dotsize, cur_stem); + if not square_dots: + pickup crisp.nib; + pos4(cur_dotsize, 90); + top y4r = h; + x4 = w - .5cur_dotsize; + pos1(cur_stem, 90); + pos2(cur_stem, 0); + pos3(cur_stem, _horn_bot_theta - 90); + z1r = z4r; + rt x2r = hround(x4 + .5cur_dotsize) + 2eps; + lft x3l = 0; + bot y3r = 0; + y2 = 1/3[y1, y3]; + y_ := ypart((z1{right} ... z2{down} ... z3) + intersectiontimes (z4l{right} .. {left}z4r)); + if y_ < 0: + y_ := 1; + fi + filldraw z4r{left} .. subpath (0, y_) of (z4l{right} .. {left}z4r) + -- cycle; % dot + filldraw stroke z1e{right} ... z2e{down} ... {left}z3e; + filldraw z1r--z2r--z4l--cycle; + penlabels(0, 1, 2, 3, 4); + vn_set_ac_join(_a, x3, .5cur_stem*sind(_horn_bot_theta), + h# - .5cur_dotsize#); + else: + pickup fine.nib; + pos4(cur_dotsize, 90); + top y4r = h; + x4 = w - .5cur_dotsize; + pos4'(cur_dotsize, 0); + z4' = z4; + dot(4', 4); % squarish dot + horn_join := max(fine.breadth, floor cur_stem); + horn_bot := max(fine.breadth, floor .8cur_stem); + pos0(horn_join, 0); + pos1(horn_join, 0); + pos2(horn_bot, 0); + y0 = y4; + y1 = y4l; + x0r = x1r = x4'r; + lft x2l = 0; + bot y2r = 0; + z2' = whatever[z1, z2]; + numeric _vn_bot_width; + pos2'(_vn_bot_width, -90 + _horn_bot_theta); + z2l = z2'l; + filldraw stroke z0e -- z1e .. z2'e; % tail + penlabels(0, 1, 2', 3, 4); + vn_set_ac_join(_a, x2', 0, h#); + fi + vn_bot(_a) := vn_top(_a) - vn_height(_a); +enddef; + +def set_horn_join(suffix _l)(expr _pl, _pr) = + select_horn(_l); % set cur_horn_ to uhorn_ or ohorn_ according to _l + path bot_line; + pair L, R; + bot_line := (.5w, vp(vn_bot(cur_horn_))) -- (w, vp(vn_bot(cur_horn_))); + L := point xpart(bot_line intersectiontimes _pl) of bot_line; + R := point xpart(bot_line intersectiontimes _pr) of bot_line; + vn_set_ac_join(_l.horn_join, xpart .5[L, R], 0, 0); +enddef; + +def lig_CGQ_table(expr k) = + "C" kern k, "G" kern k, "Q" kern k +enddef; + +def end_ligtable = 0 kern 0 enddef; + +% define input_lig to generate only char oct"031" from excspl.mf +def input_lig suffix @# = + let save_endchar = endchar; + let endchar = lig_endchar; + scantokens("input " & str @#); + relax; + let endchar = save_endchar; +enddef; + +def lig_endchar = + if charcode = oct"031": + save_endchar + else: + endgroup + fi +enddef; + +def generate suffix @# = + scantokens("input null"); % can't figure out why it's needed + scantokens("input vn" & substring(2, length(str @#)) of str @#); +enddef; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbx10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx10.mf new file mode 100644 index 00000000000..f93910b82b1 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecbx; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbx12.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx12.mf new file mode 100644 index 00000000000..5a7d6884bc9 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx12.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=12; +input vnbase; +input ecbx; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbx5.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx5.mf new file mode 100644 index 00000000000..63079ae073f --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx5.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=5; +input vnbase; +input ecbx; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbx6.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx6.mf new file mode 100644 index 00000000000..ca194c2945b --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx6.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=6; +input vnbase; +input ecbx; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbx7.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx7.mf new file mode 100644 index 00000000000..4144d6d1e20 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx7.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=7; +input vnbase; +input ecbx; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbx8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx8.mf new file mode 100644 index 00000000000..a4870a73e7b --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx8.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=8; +input vnbase; +input ecbx; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbx9.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx9.mf new file mode 100644 index 00000000000..2cdaeea5da1 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx9.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=9; +input vnbase; +input ecbx; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbxsl10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbxsl10.mf new file mode 100644 index 00000000000..4766ea9b3bd --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbxsl10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecbl; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbxti10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbxti10.mf new file mode 100644 index 00000000000..869f08b8322 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbxti10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecbi; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vncligtb.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vncligtb.mf new file mode 100644 index 00000000000..8e5b35e2af4 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vncligtb.mf @@ -0,0 +1,159 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% ligatures and kerns for smallcap fonts + +ligtable + "-": "-" =: oct"025", + oct"177" =: oct"177"; % => +ligtable + oct"025": "-"=:oct"026"; % "---" => emdash + +ligtable "<": "<" =: oct"023"; % "<<" +ligtable ">": ">" =: oct"024"; % ">>" +ligtable ",": "," =: oct"022"; % ",," + +ligtable + "`": "`"=:oct"020", + oct"020" kern 2u#, + "?" kern 2u#, + "!" kern 2u#; + +ligtable + "'": "'"=:oct"021", + oct"021" kern 2u#, + "?" kern 2u#, + "!" kern 2u#; + + k#:=-.5u#; ku#:=-1.0u#; kk#:=-1.5u#; kkk#:=-2u#; % four degrees of kerning + +ligtable boundarychar: + oct"020" kern -kk#, oct"021" kern -kk#, oct"022" kern -kk#, + oct"055" kern -kk#, oct"140" kern -kk#, oct"047" kern -kk#; + +ligtable oct"022": + oct"015" kern 2u#, "," kern 2u#, + oct"015": + oct"022" kern 2u#, + y_fam(kern ku#,) + "v" kern ku#, "w" kern k#, "V" kern kkk#, "W" kern kk#, Y_fam(kern kk#,) + + O_fam(kern k#,) lig_CGQ_table(k#), + boundarychar kern -kk#; + +ligtable oct"020": + oct"140" kern 2u#, oct"020" kern 2u#, boundarychar kern -kk#; + +ligtable oct"021": + oct"047" kern 2u#, oct"021" kern 2u#, boundarychar kern -kk#; + +ligtable oct"024": % ">>" + "." kern kk#, "," kern kk#; + + ligtable + "P": + "T": + Y_fam(:) a_fam(kern kk#,) + A_fam(kern kk#,) + end_ligtable; + ligtable + "F": + "V": + "W": + if serifs: + a_fam(kern kkk#,) + A_fam(kern kkk#,) + else: + a_fam(kern kk#,) + A_fam(kern kk#,) + fi + "K": + "X": o_fam(kern k#,) + O_fam(kern k#,) + "c" kern k#, + lig_CGQ_table(k#), + "g" kern k#, + "q" kern k#; + ligtable + O_fam(:) + D_fam(:) "x" kern k#, + "X" kern k#, + "w" kern k#, + "W" kern k#, + a_fam(kern k#,) + A_fam(kern k#,) + y_fam(kern k#,) + Y_fam(kern k#,) + "v" kern k#, + "V" kern k#; + ligtable + A_fam(:) + if serifs: + "R": + fi + "c" kern k#, + lig_CGQ_table(k#), + o_fam(kern k#,) + O_fam(kern k#,) + "g" kern k#, + u_fam(kern k#,) + U_fam(kern k#,) + "q" kern k#, + "L": + "T" kern kk#, + "t" kern kk#, + Y_fam(kern kk#,) + y_fam(kern kk#,) + "V" kern kkk#, + "v" kern kkk#, + "W" kern kkk#, + "w" kern kkk#; + ligtable + "I": "I" kern -k#; % Richard III + + k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning + + ligtable + "p": + "t": + y_fam(:) a_fam(kern kk#,) + end_ligtable; + ligtable + "f": + "v": + "w": + if serifs: + a_fam(kern kkk#,) + else: + a_fam(kern kk#,) + fi + "k": + "x": o_fam(kern k#,) + "c" kern k#, + "g" kern k#, + "q" kern k#; + ligtable + o_fam(:) + d_fam(:) "x" kern k#, + "w" kern k#, + a_fam(kern k#,) + y_fam(kern k#,) + "v" kern k#; + ligtable + a_fam(:) + if serifs: "r": fi + "c" kern k#, + o_fam(kern k#,) + "g" kern k#, + u_fam(kern k#,) + "q" kern k#, + "l": "'" kern kk#, + "t" kern kk#, + y_fam(kern kk#,) + "v" kern kkk#, + "w" kern kkk#; + ligtable + "i": "i" kern -k#; % skiing + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vncode.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vncode.mf new file mode 100644 index 00000000000..b83d2257291 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vncode.mf @@ -0,0 +1,339 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% T5 encoding -- Vietnamese font encoding for TeX + +C.u.y.hook_ := 26; +C.l.y.hook_ := 27; +C.u.y.dot_ := 28; +C.l.y.dot_ := 29; +C.u.d.bar_ := 30; +C.l.d.bar_ := 31; +C.u.a.grave_ := 128; +C.u.a.acute_ := 129; +C.u.a.tilde_ := 130; +C.u.a.hook_ := 131; +C.u.a.dot_ := 132; +C.u.a.circumflex_ := 133; +C.u.a.circumflex_.grave_ := 134; +C.u.a.circumflex_.acute_ := 135; +C.u.a.circumflex_.tilde_ := 136; +C.u.a.circumflex_.hook_ := 137; +C.u.a.circumflex_.dot_ := 138; +C.u.a.breve_ := 139; +C.u.a.breve_.grave_ := 140; +C.u.a.breve_.acute_ := 141; +C.u.a.breve_.tilde_ := 142; +C.u.a.breve_.hook_ := 143; +C.u.a.breve_.dot_ := 144; +C.u.e.grave_ := 145; +C.u.e.acute_ := 146; +C.u.e.tilde_ := 147; +C.u.e.hook_ := 148; +C.u.e.dot_ := 149; +C.u.e.circumflex_ := 150; +C.u.e.circumflex_.grave_ := 151; +C.u.e.circumflex_.acute_ := 152; +C.u.e.circumflex_.tilde_ := 153; +C.u.e.circumflex_.hook_ := 154; +C.u.e.circumflex_.dot_ := 155; +C.u.i.grave_ := 156; +C.u.i.acute_ := 157; +C.u.i.tilde_ := 158; +C.u.i.hook_ := 159; +C.l.a.grave_ := 160; +C.l.a.acute_ := 161; +C.l.a.tilde_ := 162; +C.l.a.hook_ := 163; +C.l.a.dot_ := 164; +C.l.a.circumflex_ := 165; +C.l.a.circumflex_.grave_ := 166; +C.l.a.circumflex_.acute_ := 167; +C.l.a.circumflex_.tilde_ := 168; +C.l.a.circumflex_.hook_ := 169; +C.l.a.circumflex_.dot_ := 170; +C.l.a.breve_ := 171; +C.l.a.breve_.grave_ := 172; +C.l.a.breve_.acute_ := 173; +C.l.a.breve_.tilde_ := 174; +C.l.a.breve_.hook_ := 175; +C.l.a.breve_.dot_ := 176; +C.l.e.grave_ := 177; +C.l.e.acute_ := 178; +C.l.e.tilde_ := 179; +C.l.e.hook_ := 180; +C.l.e.dot_ := 181; +C.l.e.circumflex_ := 182; +C.l.e.circumflex_.grave_ := 183; +C.l.e.circumflex_.acute_ := 184; +C.l.e.circumflex_.tilde_ := 185; +C.l.e.circumflex_.hook_ := 186; +C.l.e.circumflex_.dot_ := 187; +C.l.i.grave_ := 188; +C.l.i.acute_ := 189; +C.l.i.tilde_ := 190; +C.l.i.hook_ := 191; +C.u.i.dot_ := 192; +C.u.o.grave_ := 193; +C.u.o.acute_ := 194; +C.u.o.tilde_ := 195; +C.u.o.hook_ := 196; +C.u.o.dot_ := 197; +C.u.o.circumflex_ := 198; +C.u.o.circumflex_.grave_ := 199; +C.u.o.circumflex_.acute_ := 200; +C.u.o.circumflex_.tilde_ := 201; +C.u.o.circumflex_.hook_ := 202; +C.u.o.circumflex_.dot_ := 203; +C.u.o.horn_ := 204; +C.u.o.horn_.grave_ := 205; +C.u.o.horn_.acute_ := 206; +C.u.o.horn_.tilde_ := 207; +C.u.o.horn_.hook_ := 208; +C.u.o.horn_.dot_ := 209; +C.u.u.grave_ := 210; +C.u.u.acute_ := 211; +C.u.u.tilde_ := 212; +C.u.u.hook_ := 213; +C.u.u.dot_ := 214; +C.u.u.horn_ := 215; +C.u.u.horn_.grave_ := 216; +C.u.u.horn_.acute_ := 217; +C.u.u.horn_.tilde_ := 218; +C.u.u.horn_.hook_ := 219; +C.u.u.horn_.dot_ := 220; +C.u.y.grave_ := 221; +C.u.y.acute_ := 222; +C.u.y.tilde_ := 223; +C.l.i.dot_ := 224; +C.l.o.grave_ := 225; +C.l.o.acute_ := 226; +C.l.o.tilde_ := 227; +C.l.o.hook_ := 228; +C.l.o.dot_ := 229; +C.l.o.circumflex_ := 230; +C.l.o.circumflex_.grave_ := 231; +C.l.o.circumflex_.acute_ := 232; +C.l.o.circumflex_.tilde_ := 233; +C.l.o.circumflex_.hook_ := 234; +C.l.o.circumflex_.dot_ := 235; +C.l.o.horn_ := 236; +C.l.o.horn_.grave_ := 237; +C.l.o.horn_.acute_ := 238; +C.l.o.horn_.tilde_ := 239; +C.l.o.horn_.hook_ := 240; +C.l.o.horn_.dot_ := 241; +C.l.u.grave_ := 242; +C.l.u.acute_ := 243; +C.l.u.tilde_ := 244; +C.l.u.hook_ := 245; +C.l.u.dot_ := 246; +C.l.u.horn_ := 247; +C.l.u.horn_.grave_ := 248; +C.l.u.horn_.acute_ := 249; +C.l.u.horn_.tilde_ := 250; +C.l.u.horn_.hook_ := 251; +C.l.u.horn_.dot_ := 252; +C.l.y.grave_ := 253; +C.l.y.acute_ := 254; +C.l.y.tilde_ := 255; + +def A_fam(text _t) = + 65 _t % "A" + C.u.a.acute_ _t + C.u.a.dot_ _t + C.u.a.grave_ _t + C.u.a.hook_ _t + C.u.a.tilde_ _t + C.u.a.breve_ _t + C.u.a.breve_.acute_ _t + C.u.a.breve_.dot_ _t + C.u.a.breve_.grave_ _t + C.u.a.breve_.hook_ _t + C.u.a.breve_.tilde_ _t + C.u.a.circumflex_ _t + C.u.a.circumflex_.acute_ _t + C.u.a.circumflex_.dot_ _t + C.u.a.circumflex_.grave_ _t + C.u.a.circumflex_.hook_ _t + C.u.a.circumflex_.tilde_ _t +enddef; + +def D_fam(text _t) = + 68 _t % "D" + C.u.d.bar_ _t +enddef; + +def E_fam(text _t) = + 69 _t % "E" + C.u.e.acute_ _t + C.u.e.dot_ _t + C.u.e.grave_ _t + C.u.e.hook_ _t + C.u.e.tilde_ _t + C.u.e.circumflex_ _t + C.u.e.circumflex_.acute_ _t + C.u.e.circumflex_.dot_ _t + C.u.e.circumflex_.grave_ _t + C.u.e.circumflex_.hook_ _t + C.u.e.circumflex_.tilde_ _t +enddef; + +def I_fam(text _t) = + 73 _t % "I" + C.u.i.acute_ _t + C.u.i.dot_ _t + C.u.i.grave_ _t + C.u.i.hook_ _t + C.u.i.tilde_ _t +enddef; + +def O_fam(text _t) = + 79 _t % "O" + C.u.o.acute_ _t + C.u.o.dot_ _t + C.u.o.grave_ _t + C.u.o.hook_ _t + C.u.o.tilde_ _t + C.u.o.circumflex_ _t + C.u.o.circumflex_.acute_ _t + C.u.o.circumflex_.dot_ _t + C.u.o.circumflex_.grave_ _t + C.u.o.circumflex_.hook_ _t + C.u.o.circumflex_.tilde_ _t + C.u.o.horn_ _t + C.u.o.horn_.acute_ _t + C.u.o.horn_.dot_ _t + C.u.o.horn_.grave_ _t + C.u.o.horn_.hook_ _t + C.u.o.horn_.tilde_ _t +enddef; + +def U_fam(text _t) = + 85 _t % "U" + C.u.u.acute_ _t + C.u.u.dot_ _t + C.u.u.grave_ _t + C.u.u.hook_ _t + C.u.u.tilde_ _t +enddef; + +def U_horn_fam(text _t) = + C.u.u.horn_ _t + C.u.u.horn_.acute_ _t + C.u.u.horn_.dot_ _t + C.u.u.horn_.grave_ _t + C.u.u.horn_.hook_ _t + C.u.u.horn_.tilde_ _t +enddef; + +def Y_fam(text _t) = + 89 _t % "Y" + C.u.y.acute_ _t + C.u.y.dot_ _t + C.u.y.grave_ _t + C.u.y.hook_ _t + C.u.y.tilde_ _t +enddef; + + +def a_fam(text _t) = + 97 _t % "a" + C.l.a.acute_ _t + C.l.a.dot_ _t + C.l.a.grave_ _t + C.l.a.hook_ _t + C.l.a.tilde_ _t + C.l.a.breve_ _t + C.l.a.breve_.acute_ _t + C.l.a.breve_.dot_ _t + C.l.a.breve_.grave_ _t + C.l.a.breve_.hook_ _t + C.l.a.breve_.tilde_ _t + C.l.a.circumflex_ _t + C.l.a.circumflex_.acute_ _t + C.l.a.circumflex_.dot_ _t + C.l.a.circumflex_.grave_ _t + C.l.a.circumflex_.hook_ _t + C.l.a.circumflex_.tilde_ _t +enddef; + +def d_fam(text _t) = + 100 _t % "d" + C.l.d.bar_ _t +enddef; + +def e_fam(text _t) = + 101 _t % "e" + C.l.e.acute_ _t + C.l.e.dot_ _t + C.l.e.grave_ _t + C.l.e.hook_ _t + C.l.e.tilde_ _t + C.l.e.circumflex_ _t + C.l.e.circumflex_.acute_ _t + C.l.e.circumflex_.dot_ _t + C.l.e.circumflex_.grave_ _t + C.l.e.circumflex_.hook_ _t + C.l.e.circumflex_.tilde_ _t +enddef; + +def i_fam(text _t) = + 105 _t % "i" + C.l.i.acute_ _t + C.l.i.dot_ _t + C.l.i.grave_ _t + C.l.i.hook_ _t + C.l.i.tilde_ _t +enddef; + +def o_fam(text _t) = + 111 _t % "o" + C.l.o.acute_ _t + C.l.o.dot_ _t + C.l.o.grave_ _t + C.l.o.hook_ _t + C.l.o.tilde_ _t + C.l.o.circumflex_ _t + C.l.o.circumflex_.acute_ _t + C.l.o.circumflex_.dot_ _t + C.l.o.circumflex_.grave_ _t + C.l.o.circumflex_.hook_ _t + C.l.o.circumflex_.tilde_ _t + C.l.o.horn_ _t + C.l.o.horn_.acute_ _t + C.l.o.horn_.dot_ _t + C.l.o.horn_.grave_ _t + C.l.o.horn_.hook_ _t + C.l.o.horn_.tilde_ _t +enddef; + +def u_fam(text _t) = + 117 _t % "u" + C.l.u.acute_ _t + C.l.u.dot_ _t + C.l.u.grave_ _t + C.l.u.hook_ _t + C.l.u.tilde_ _t +enddef; + +def u_horn_fam(text _t) = + C.l.u.horn_ _t + C.l.u.horn_.acute_ _t + C.l.u.horn_.dot_ _t + C.l.u.horn_.grave_ _t + C.l.u.horn_.hook_ _t + C.l.u.horn_.tilde_ _t +enddef; + +def y_fam(text _t) = + 121 _t % "y" + C.l.y.acute_ _t + C.l.y.dot_ _t + C.l.y.grave_ _t + C.l.y.hook_ _t + C.l.y.tilde_ _t +enddef; + +% endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vncombac.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vncombac.mf new file mode 100644 index 00000000000..8dd2fa230c5 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vncombac.mf @@ -0,0 +1,28 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% define combining accents + +vnchar "Vietnamese grave accent"; +define_vnaccent(oct"000", grave_); + +vnchar "Vietnamese acute accent"; +define_vnaccent(oct"001", acute_); + +vnchar "Vietnamese circumflex accent"; +define_vnaccent(oct"002", circumflex_); + +vnchar "Vietnamese tilde accent"; +define_vnaccent(oct"003", tilde_); + +vnchar "Vietnamese dot accent"; +define_vnaccent(oct"005", dot_); + +vnchar "Vietnamese breve accent"; +define_vnaccent(oct"010", breve_); + +vnchar "Vietnamese hook accent"; +define_vnaccent(oct"014", hook_); + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vncsc.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vncsc.mf new file mode 100644 index 00000000000..ceff20fa1fa --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vncsc.mf @@ -0,0 +1,164 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% driver for cap and smallcap fonts (based on eccsc.mf) + +version_check(1,0); % |version_check| was introduced in dc1.3 + +input exaccess; % accessories for polish special letters +input expseudo; % pseudoparameters + +mode_setup; +font_setup; +pseudo_setup; + +if known testing: + set_uppercase; + input vnaccent; + input_ur_fam; +elseif known gen_t5_supp: + input exbraces; % ^ ~ cwm ( ) < | > [ ] \ { } _ - (177) space (040) + input expunct; % < << > >> ! ` ' * + , . / = ; : (spanish !) + input exsign; % zero for mille, " # $ % @ pound sign + set_uppercase; + input vnaccent; + input vnuacc; + input vnuor; % Ohorn + input vnuur; % Uhorn + input vnudr; % D-bar +else: + input exrulett; % upper case (majuscules) + input exbraces; % ^ ~ cwm ( ) < | > [ ] \ { } _ - (177) space (040) + input expunct; % < << > >> ! ` ' * + , . / = ; : (spanish !) + input exsign; % zero for mille, " # $ % @ pound sign + input exromp; % (roman punctuation) & ? (spanish ?) + input exrdigit; % roman digits + + set_uppercase; + input vnaccent; + input vnuar; % modified/accented "A" + input vnuer; % modified/accented "E" + input vnuir; % accented "I" + input vnuor; % modified/accented "O" + input vnuur; % modified/accented "U" + input vnuyr; % accented "Y" + input vnudr; % D-bar +fi % known testing/gen_t5_supp + +boolean is_small_cap; is_small_cap:=true; +%%% fine higher +% the `higher' values are used while putting accents and attaching ogoneks +forsuffixes $=u,o,letter_fit,x_height,bar_height,body_height,stem: + higher.$.#:=$.#; higher.$:=$; +endfor + +%%% fine lower +begingroup +forsuffixes $= u, width_adj, cap_serif_fit, letter_fit, + body_height, cap_height, x_height, bar_height, comma_depth, + flare, dot_size, cap_hair, stem, cap_stem, cap_curve, cap_ess, + cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut, + o, apex_o: save $; $.#:=lower.$.#; endfor +fudge:=lower.fudge; + +% optional part: +forsuffixes $ = depth_corr, left_corr, top_breadth_corr, tip_breadth_corr, + tip_xcorr, tip_ycorr, pre_angle, post_angle, pre_limit, post_limit, + pre_lightness, post_lightness, pre_deflexion, post_deflexion, cap_flat, + ogonek_pen#: if known lower.$: $:=lower.$; fi +endfor + +input expseudo; % Recalculate pseudoparameters + +font_setup; +pseudo_setup; % now try again with |lower| settings + +if unknown testing and unknown gen_t5_supp: + input_lig excspl; % dotless i,j; letter ligatures FF FI FL FFI FFL D- +fi + +if known testing: + set_smallcap; + input vnaccent; + input_sc_fam; + def next= endgroup endinput enddef; +elseif known gen_t5_supp: + set_smallcap; + input vnaccent; + input vnlacc; + input vnuor; % Ohorn + input vnuur; % Uhorn + input vnudr; % D-bar + input txpseudo; % Recalculate pseudoparameters for capital accents + font_setup; + pseudo_setup; + input txaccent; % Accents for capital letters with small cap parameters + input vndothook;% dotbelow and hookabove + input vnminus; % minus iff monospace: + def next= endgroup endinput enddef; +else: + let next=relax; +fi % known testing/gen_t5_supp +next; + +extra_endchar:=extra_endchar&"charcode:=charcode+code_offset"; +code_offset:=ASCII"a" - ASCII"A"; + +input exrulett; % upper case (majuscules) + +suppress_i_dot := true; + +code_offset:=0; + +set_smallcap; +input vnaccent; +input vnuar; % modified/accented "A" +input vnuer; % modified/accented "E" +input vnuir; % accented "I" +input vnuor; % modified/accented "O" +input vnuur; % modified/accented "U" +input vnuyr; % accented "Y" +input vnudr; % D-bar + +input txpseudo; % Recalculate pseudoparameters for capital accents +font_setup; +pseudo_setup; +input txaccent; % Accents for capital letters with small cap parameters +input vndothook;% dotbelow and hookabove +input vnminus; % minus iff monospace: + +endgroup; + + +% Fontparameter +% +font_coding_scheme := "Vietnamese TeX Font Encoding"; +boundarychar := oct"027"; +font_slant slant; +font_x_height x_height#; +font_cap_height cap_height#; +font_asc_height asc_height#; +font_acc_cap_height (cap_height#+acc_height#); +font_desc_depth desc_depth#; +font_max_height (max(asc_height#,body_height#, cap_height#+acc_height#)); +font_max_depth (max(desc_depth#,paren_depth#,the_ogonek_depth#)); +% font_digit_width % set inside the digits file +% font_cap_stem % set after the programme of the capital I +font_baselineskip max(1.2*designsize,body_height#+paren_depth#); + +if monospace: + font_normal_space 9u#; % no stretching or shrinking + font_quad 18u#; + font_extra_space 9u#; + input vnmligtb; % do the monospace ligature programs +else: + font_normal_space 6u# + 2letter_fit#; + font_normal_stretch 3u#; + font_normal_shrink 2u#; + font_quad 18u# + 4letter_fit#; + font_extra_space 2u#; + input vncligtb; % do the ligature programs, not for monospaced fonts +fi + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vncsc10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vncsc10.mf new file mode 100644 index 00000000000..94931d21c76 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vncsc10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input eccc; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vndothook.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vndothook.mf new file mode 100644 index 00000000000..e2a25ccb6dd --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vndothook.mf @@ -0,0 +1,19 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +vnchar "Vietnamese dotbelow accent"; +beginchar(oct"005", 5u#, 0, desc_depth#); + adjust_fit(0,0); + currentpicture := vn_pic(dot_) shifted (.5w - .5hp(vn_width(dot_)), + -vn_bot(dot_)); +endchar; + +vnchar "Vietnamese hookabove accent"; +beginchar(oct"014",9u#,x_height#+acc_height#,0); + adjust_fit(0,0); + currentpicture := vn_pic(hook_) shifted (.5w - .5hp(vn_width(hook_)), + vp(vn_top(hook_) - vn_height(hook_))); +endchar; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vndunh10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vndunh10.mf new file mode 100644 index 00000000000..fb287b695f4 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vndunh10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecdh; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnecomp.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnecomp.mf new file mode 100644 index 00000000000..109d809f9fb --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnecomp.mf @@ -0,0 +1,40 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% define [eE]-based accented letters + +vnchar casename "e with acute"; +define_vnchar(e, acute_); + +vnchar casename "e with grave"; +define_vnchar(e, grave_); + +vnchar casename "e with hook"; +define_vnchar(e, hook_); + +vnchar casename "e with tilde"; +define_vnchar(e, tilde_); + +vnchar casename "e with dot"; +define_vnchar_dot(e); + +vnchar casename "e with circumflex "; +define_vnchar(e, circumflex_); + +vnchar casename "e with circumflex and acute"; +define_vnchar(e, circumflex_.acute_); + +vnchar casename "e with circumflex and grave"; +define_vnchar(e, circumflex_.grave_); + +vnchar casename "e with circumflex and hook"; +define_vnchar(e, circumflex_.hook_); + +vnchar casename "e with circumflex and tilde"; +define_vnchar(e, circumflex_.tilde_); + +vnchar casename "e with circumflex and dot"; +define_vnchar_dot_ac(e, circumflex_); + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnff10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnff10.mf new file mode 100644 index 00000000000..2e73500b760 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnff10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecff; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnfi10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnfi10.mf new file mode 100644 index 00000000000..0270375f248 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnfi10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecfi; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnfib8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnfib8.mf new file mode 100644 index 00000000000..83a2714a75a --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnfib8.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=8; +input vnbase; +input ecfb; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnicomp.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnicomp.mf new file mode 100644 index 00000000000..9bd32d45f96 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnicomp.mf @@ -0,0 +1,22 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% define [iI]-based accented letters + +vnchar casename "i with acute"; +define_vnchar(i, acute_); + +vnchar casename "i with grave"; +define_vnchar(i, grave_); + +vnchar casename "i with hook"; +define_vnchar(i, hook_); + +vnchar casename "i with tilde"; +define_vnchar(i, tilde_); + +vnchar casename "i with dot"; +define_vnchar_dot(i); + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vniligtb.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vniligtb.mf new file mode 100644 index 00000000000..7bc8e90b0ca --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vniligtb.mf @@ -0,0 +1,135 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% ligatures and kerns for italic fonts + +ligtable + "`": "`"=:oct"020", + oct"020" kern 2u#, + "?" kern 2u#, + "!" kern 2u#; + +ligtable + "'": "'"=:oct"021", + oct"021" kern 2u#, + "?" kern 2u#, + "!" kern 2u#; + +ligtable + "-": "-" =: oct"025", + oct"177" =: oct"177"; % => + +ligtable + oct"025": "-"=:oct"026"; % "---" => emdash + +ligtable "<": "<" =: oct"023"; % "<<" +ligtable ">": ">" =: oct"024"; % ">>" +ligtable ",": "," =: oct"022"; % ",," + +k#:=-.5u#; ku#:=-1u#; kk#:=-1.5u#; kkk#:=-2u#; % four degrees of kerning + +ligtable boundarychar: + oct"020" kern -kk#, oct"021" kern -kk#, oct"022" kern -kk#, + oct"055" kern -kk#, oct"140" kern -kk#, oct"047" kern -kk#; + +ligtable oct"022": + oct"015" kern 2u#, "," kern 2u#, + oct"015": + oct"022" kern 2u#, + "v" kern kk#, "w" kern kk#, + "T" kern kk#, "V" kern kkk#, "W" kern kkk#, + Y_fam(kern kk#,) + O_fam(kern k#,) lig_CGQ_table(k#), + boundarychar kern -kk#; + +ligtable oct"020": + oct"140" kern 2u#, oct"020" kern 2u#, boundarychar kern -kk#; + +ligtable oct"021": + oct"047" kern 2u#, oct"021" kern 2u#, boundarychar kern -kk#; + +ligtable oct"024": % ">>" + "." kern kk#, "," kern kk#; + +ligtable + d_fam(:) "w": "l": + "l" kern +u#; +ligtable + "F": "W": "V": + o_fam(kern kk#,) + e_fam(kern kk#,) + u_fam(kern kk#,) + "r" kern kk#, "n" kern kk#, "v" kern kk#, + a_fam(kern kk#,) + A_fam(kern kkk#,) + "X": O_fam(kern k#,) + lig_CGQ_table(k#); + +ligtable + "K": "v" kern k#, + "w" kern k#, + O_fam(kern k#,) + lig_CGQ_table(k#); + +ligtable + "T": + y_fam(kern kk#,) + Y_fam(:) + e_fam(kern kk#,) + o_fam(kern kk#,) + "r" kern kk#, + a_fam(kern kk#,) + u_fam(kern kk#,) + "P": + A_fam(kern kk#,) + end_ligtable; +ligtable + O_fam(:) + D_fam(:) + "X" kern k#, + "W" kern k#, + A_fam(kern k#,) + Y_fam(kern k#,) + "V" kern k#; +ligtable + A_fam(:) + y_fam(kern k#,) + "R": + "n" kern k#, + "l" kern k#, + "r" kern k#, + u_fam(kern k#,) + "m" kern k#, + "t" kern k#, + i_fam(kern k#,) + "h" kern k#, + "b" kern k#, + "k" kern k#, + "v" kern k#, + "w" kern k#, + lig_CGQ_table(k#), + O_fam(kern k#,) + U_fam(kern k#,) + "L": + "T" kern kk#, + Y_fam(kern kk#,) + "V" kern kkk#, + "W" kern kkk#, + "b": + "c": + e_fam(:) + o_fam(:) + "p": + "r": e_fam(kern -u#,) + a_fam(kern -u#,) + o_fam(kern -u#,) + d_fam(kern -u#,) + "c" kern -u#, + "g" kern -u#, + "q" kern -u#; +ligtable + "n": "'" kern kkk#; + + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnitt10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnitt10.mf new file mode 100644 index 00000000000..d051804bbc3 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnitt10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecit; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlacc.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlacc.mf new file mode 100644 index 00000000000..347a3b8515f --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlacc.mf @@ -0,0 +1,28 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% define lowercase accents + +vnchar casename "grave accent"; +define_vnaccent(128, grave_); + +vnchar casename "acute accent"; +define_vnaccent(129, acute_); + +vnchar casename "circumflex accent"; +define_vnaccent(130, circumflex_); + +vnchar casename "tilde accent"; +define_vnaccent(131, tilde_); + +vnchar casename "dot accent"; +define_vnaccent(132, dot_); + +vnchar casename "breve accent"; +define_vnaccent(133, breve_); + +vnchar casename "hook accent"; +define_vnaccent(134, hook_); + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlai.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlai.mf new file mode 100644 index 00000000000..bd5649715e6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlai.mf @@ -0,0 +1,45 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman Italic lower case "a" precomposed glyphs: +% Inclusion: +% a' a` a? a~ a. +% a( a(' a(` a(? a(~ a(. +% a^ a^' a^` a^? a^~ a^. + +begin_letter(a); + set_letter_dimens(a)( + 9u#, x_height#, 0, + 1/3x_height#*slant + .5hair# + .5u#, + 0, 0 + ); + pickup fine.nib; + pos0(hair, 0); + pos1(vair, 90); + pos2(curve, 180); + pos3(vair, 270); + pos4(stem, 0); + x4 = x0; + y4 + .5stem = vround .98h; + x1 = x3 = .5[x0, x2]; + lft x2r = hround(1.5u - .5curve); + rt x4r = hround(w - 2.5u + .5stem); + top y1r = h+oo; + bot y3r=-oo; + y0 = y2 = .5[y1, y3]; + filldraw stroke super_arc.e(0, 1) & pulled_arc.e(1, 2) + & pulled_arc.e(2, 3) & super_arc.e(3, 0); % bowl + x5 = x4; + x7 = w; + hook_out(5, 6, 7); % closing hook + filldraw circ_stroke z4e -- z5e; % stem + math_fit( - .3x_height#*slant + .5curve# - u#, ic#); + penlabels(0, 1, 2, 3, 4, 5, 6, 7); + set_letter_join(a, x1 + .25u, 4.5u#); + set_letter_join(a.dot_, x1 + .5u, .5w# + .5u#); +end_letter; + +input vnacomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlar.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlar.mf new file mode 100644 index 00000000000..7f547ba4163 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlar.mf @@ -0,0 +1,112 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman lower case "a" precomposed glyphs: +% Inclusion: +% a' a` a? a~ a. +% a( a(' a(` a(? a(~ a(. +% a^ a^' a^` a^? a^~ a^. + +begin_letter(a); + bh# := min(bar_height#, 1.14x_height# - bar_height#); + define_pixels(bh); + set_letter_dimens(a)( + 9u#, x_height#, 0, + 1/3[bh#, x_height#] * slant + .5stem# - serif_fit# - 2u#, + 0, serif_fit# if serifs: if hair# + .5stem# > 1.5u#: -.25u# fi\\fi + ); + pickup fine.nib; + top y3r = h+vround 1.5oo; + if serifs: pos1(flare, 180); + pos2(hair, 180); + pos3(vair, 90); + lft x1r = hround max(u, 2.1u - .5flare); + x3 = .5w - .5u; + y1 = min(bh + .5flare + 2vair + 2, .9[bh, h] - .5flare); + bulb(3, 2, 1); % bulb + else: pos1(5/7[vair, flare], 95); + x1l = good.x 1.5u; + x1r := good.x x1r; + pos3(1/8[vair, thin_join], 90); + x3 = .5w - .2u; + top y1r = vround .82[bh, top y3r]; + filldraw stroke term.e(3, 1, left, .9, 4); + fi % terminal + pos4(stem, 0); + rt x4r = hround(w - 2.5u + .5stem); + y4 = 1/3[bh, h]; + pos5(stem, 0); + x5 = x4; + y5 = max(.55bh, 2vair); + filldraw stroke super_arc.e(3, 4)&z4e .. z5e; % arc and stem + pos6(.3[thin_join, vair], 90); + x6 = x4; + bot y6 = bh; + pos7(hround(curve - 2stem_corr), 180); + lft x7r = hround max(.5u, 1.5u - .5curve); + y7 = 1/3[top y8l, top y6r]; + pos8(vair, 270); + x8l = .5w - .75u; + bot y8r=-oo; + pos9(thin_join, 360); + z9l = z5l; + (x, y8r) = whatever[z8l, z9l]; + x8r := max(x, x8 - u); + {{interim superness := more_super; + filldraw stroke z9e{down} ... z8e{left} ... {up}z7e&super_arc.e(7, 6)}}; % bowl + if serifs: numeric shaved_stem; + shaved_stem = hround(stem - 3stem_corr); + if hair# + .5stem# > 1.5u#: pickup tiny.nib; + pos5'(shaved_stem, 0); + rt x5'r = fine.rt x5r; + y5' = y5; + pos10(shaved_stem, 0); + x10 = x5'; + y10 = .2[.5tiny, bh]; + pos11(shaved_stem, 0); + rt x11r = hround(w - .25u); + bot y11 = 0; + pos12(shaved_stem, 0); + x11 = x12; + top y12 = slab + eps; + filldraw z5'l --- z10l ... z11l{right} -- z11r + -- z12r{left} ... z10r + .75(z12 - z11) --- z5'r -- cycle; % foot + else: pickup crisp.nib; + pos5'(shaved_stem, 0); + rt x5'r = fine.rt x5r; + y5' = y5; + pos10(shaved_stem, 0); + x10 = x5'; + y10 = 1/3bh; + pos11(.2[vair, stem], 90); + x11r = .5[x10r, x12r]; + bot y11l=-vround .5oo; + pos12(hair, 180); + rt x12l = hround(w - .1u); + y12 = max(y10, y11 + vair); + pos13(hair, 180); + x13 = x12; + top y13 = max(vround .6bh, top y12); + (x', y11l) = whatever[z11r, z12r]; + x11l := max(x', x10); + filldraw stroke z5'e --- z10e ... z11e{right} ... z12e --- z13e; + fi % hook + else: numeric shaved_stem; + shaved_stem = hround(stem - stem_corr); + pickup tiny.nib; + pos5'(shaved_stem, 0); + rt x5'r = fine.rt x5r; + y5' = y5; + pos10(shaved_stem, 0); + x10 = x5'; + bot y10 = 0; + filldraw stroke z5'e -- z10e; + fi % base of stem + set_letter_join(a, x3 if serifs: + .25u fi, .5w#); + penlabels(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13); +end_letter; + +input vnacomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnldi.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnldi.mf new file mode 100644 index 00000000000..d9b6536db77 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnldi.mf @@ -0,0 +1,55 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman Italic "d-bar" precomposed glyph: +% Inclusion: +% dd + +vnchar casename "dd"; +beginchar(vn_code(d.bar_), 9u#, max(asc_height#, 1.45x_height#), 0); + italcorr max(1/3x_height#*slant + .5hair# + .5u#, + h#*slant + .5stem# - 2u#) if math_fitting: -.5u# fi; + adjust_fit(0, 0); + pickup fine.nib; + pos0(hair, 0); + pos1(vair, 90); + pos2(curve, 180); + pos3(vair, 270); + x0 = x4; + x1 = x3 = .5[x0, x2]; + lft x2r = hround(1.5u - .5curve); + x4 + .5stem = hround(w - 2.5u + .5stem); + top y1r = x_height + oo; + bot y3r=-oo; + y0 = y2 = .5[y1, y3]; + filldraw stroke super_arc.e(0, 1) & pulled_arc.e(1, 2) + & pulled_arc.e(2, 3) & super_arc.e(3, 0); % bowl + x5 = x0; + x7 = w; + hook_out(5, 6, 7); % closing hook + pickup tiny.nib; + pos5'(stem, 0); + pos4(stem, 0); + z5' = z5; + top y4 = h; + filldraw stroke z4e -- z5'e; % stem + sloped_serif.l(4, 5', a, 1/3, jut, serif_drop); % serif + bar_thickness := .3[vair, stem]; + pos8(bar_thickness, 90); + pos9(bar_thickness, 90); + if serifs: + top y8r = top y9r = .6[y1, h - (serif_drop + slab)] + .5bar_thickness; + lft x8 = hround(tiny.lft x0l - 1.5max(jut, u)) - eps; + rt x9 = hround(tiny.rt x0r + max(jut, u)) + eps; + else: + top y8r = top y9r = .6[y1, y4] + .5bar_thickness; + lft x8 = hround(tiny.lft x0l - 1.5vair) - eps; + rt x9 = hround(tiny.rt x0r + vair) + eps; + fi + filldraw stroke z8e -- z9e; % bar + math_fit( - .3x_height#*slant + .5curve# - u#, ic#); + penlabels(0, 1, 2, 3, 4, 5, 6, 7); +endchar; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnldr.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnldr.mf new file mode 100644 index 00000000000..d06cf787252 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnldr.mf @@ -0,0 +1,70 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman "d-bar" precomposed glyph: +% Inclusion: +% dd + +vnchar casename "d with bar"; +beginchar(vn_code(d.bar_), 10u# + serif_fit#, max(asc_height#, 1.45x_height#), 0); + italcorr asc_height#*slant - serif_fit# + .5stem# - 2u#; + adjust_fit(0, serif_fit#); + pickup tiny.nib; + pos1(stem', 0); + pos2(stem, 0); + pos0'(stem', 0); + pos0(stem, 0); + z0r = z0'r; + x0' = x1; + x0 = x2; + rt x1r = hround(w - 2.5u + .5stem'); + top y1 = h; + numeric edge; + edge = lft x2l; + pickup fine.nib; + pos3(if hefty: thin_join else: hair fi, 0); + pos4(vair, 90); + pos5(curve, 180); + pos6(vair, 270); + penpos7(x3r - x3l, 360); + lft x3l = min(lft x3l - (rt x3r - tiny.rt x2r), 1/3[lft x2, edge]); + y3 = 1/8[bar_height, x_height]; + x4l = .5(w - serif_fit) - .3u; + top y4r = x_height + oo; + lft x5r = hround max(1.35u - .5curve, .6u); + y5 = .5x_height; + x6l = x4l - .2u; + bot y6r=-oo; + x7 = x3; + y7 = min(y3, y6 + y4 - y3 + .6vair); + (x, y4r) = whatever[z3l, z4l]; + x4r := max(x, .5[x5r, x4]); + (x', y6r) = whatever[z7l, z6l]; + x6r := max(x', .5[x5r, x6]); + filldraw stroke z3e{up} ... pulled_arc.e(4, 5) + & pulled_arc.e(5, 6) ... {up}z7e; % bowl + y0 = ypart(((edge, h) -- (edge, 0))intersectionpoint(z3l{up} ... {left}z4l)); + pickup tiny.nib; + bot y2 = if serifs: -min(oo, serif_drop) else: 0 fi; + filldraw stroke z1e -- z0'e -- z0e -- z2e; % stem + if serifs: sloped_serif.l(1, 0', a, 1/3, jut, serif_drop); % upper serif + sloped_serif.r(2, 0, b, 1/3, jut, min(oo, serif_drop)); + fi % lower serif + bar_thickness := .3[vair, stem]; + pos8(bar_thickness, 90); + pos9(bar_thickness, 90); + if serifs: + top y8r = top y9r = .6[y4, h - (serif_drop + slab)] + .5bar_thickness; + lft x8 = hround(tiny.lft x0l - 1.5max(jut, u)) - eps; + rt x9 = hround(tiny.rt x0r + max(jut, u)) + eps; + else: + top y8r = top y9r = .6[y4, y1] + .5bar_thickness; + lft x8 = hround(tiny.lft x0l - 1.5vair) - eps; + rt x9 = hround(tiny.rt x0r + vair) + eps; + fi + filldraw stroke z8e -- z9e; % bar + penlabels(0, 1, 2, 3, 4, 5, 6, 7, 8, 9); +endchar; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlei.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlei.mf new file mode 100644 index 00000000000..724faa620c5 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlei.mf @@ -0,0 +1,48 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman Italic lower case "e" precomposed glyphs: +% Inclusion: +% e' e` e? e~ e. +% e^ e^' e^` e^? e^~ e^. + +begin_letter(e); + set_letter_dimens(e)( + 8u#, x_height#, 0, + max(1/3x_height#*slant, x_height#*slant + .5(.2[hair#, stem#]) - u#), + 0, 0 + ); + pickup fine.nib; + numeric heavy_hair; + heavy_hair = hround .2[hair, stem]; + pos0(vair, -90); + pos1(heavy_hair, 0); + pos2(vair, 90); + pos3(curve, 180); + pos4(vair, 270); + pos5(hair, 320); + x0 = rt x3l; + rt x1r = hround(w - 1.5u + .5heavy_hair); + x2 = x4 = .5(w + u); + lft x3r = hround(1.5u - .5curve); + x5r = good.x(w - eps); + x6 = x5; + y0 = y3 = y6 = bar_height; + y1 = .5[y0, y2]; + top y2r = h+oo; + bot y4r = -oo; + top y5l = vround .5bar_height; + path p; + p = z4{right} .. z5 .. z6; + filldraw stroke z0e{right} ... z1e{up} ... pulled_arc.e(2, 3) + & pulled_arc.e(3, 4) ... {direction 1 of p}z5e; % arc + math_fit( - .3x_height#*slant + .5curve# - u#, ic#); + penlabels(0, 1, 2, 3, 4, 5, 6); + set_letter_join(e, x2, .5w#); +% set_letter_join(e.dot_, .5w + .5u, .5w# + .5u#); +end_letter; + +input vnecomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnler.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnler.mf new file mode 100644 index 00000000000..acfa7d71648 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnler.mf @@ -0,0 +1,73 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman lower case "e" precomposed glyphs: +% Inclusion: +% e' e` e? e~ e. +% e^ e^' e^` e^? e^~ e^. + +begin_letter(e); + set_letter_dimens(e)( + 7.25u# + max(.75u#, .5curve#), x_height#, 0, + .5[bar_height#, x_height#]*slant + .5min(curve# - 1.5u#, 0), + if monospace: .25u#, .5u# else: 0, 0 fi + ); + numeric left_curve, right_curve; + left_curve = right_curve + 6stem_corr = curve if not serifs: -3stem_corr fi; + if right_curve < tiny.breadth: right_curve := tiny.breadth; + fi + if left_curve < tiny.breadth: left_curve := tiny.breadth; + fi + pickup tiny.nib; + pos1(right_curve, 0); + pos2(vair, 90); + pos3(left_curve, 180); + y1 = good.y bar_height; + top y2r = h+vround 1.5oo; + y0l = bot y1; + rt x1r = hround min(w - .5u, w - u+.5right_curve); + lft x3r = hround max(.5u, 1.25u - .5left_curve); + x2 = .5w + .25u; + {{interim superness := more_super; + filldraw stroke super_arc.e(1, 2)}}; % right bowl + y3 = .5[y2, y4]; + bot y4r=-oo; + x4 = x2 + .25u; + if serifs: pos4(vair', 270); + pos5(hair, 360); + y5 = max(good.y(.5bar_height - .9), y4l + vair); + x5r = x1r; + (x, y4l) = whatever[z4r, z5]; + x4l := min(x, x4l + .5u); + filldraw stroke pulled_arc.e(2, 3) & pulled_arc.e(3, 4) + ... {x5 - x4, 5(y5 - y4)}z5e; % left bowl, arc, and terminal + else: pos4(vair, 270); + filldraw stroke super_arc.e(2, 3) & super_arc.e(3, 4); % left bowl and arc + pickup fine.nib; + pos4'(vair, 270); + z4 = z4'; + pos5(.5[vair, flare], 275); + rt x5r = hround(w - .6u); + y5r = good.y(y5r + 1/3bar_height - y5); + y5l := good.y y5l; + x5l := good.x x5l; + filldraw stroke term.e(4', 5, right, 1, 4); + fi % terminal + path testpath; + testpath = super_arc.r(2, 3) & super_arc.r(3, 4); + y1'r = y0r = y0l + .6[thin_join, vair]; + y1'l = y0l; + x1'l = x1'r = x1; + forsuffixes $ = l, r: + x0$ = xpart(((0, y0$) -- (x1, y0$)) intersectionpoint testpath); + endfor + fill stroke z0e -- z1'e; % crossbar + penlabels(0, 1, 2, 3, 4, 5); + set_letter_join(e, x2, .5w#); +% set_letter_join(e.dot_, .5w + .5u, .5w# + .5u#); +end_letter; + +input vnecomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlii.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlii.mf new file mode 100644 index 00000000000..6c80e1d5ddd --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlii.mf @@ -0,0 +1,62 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman Italic lower case "i" precomposed glyphs: +% Inclusion: +% i' i` i? i~ i. + +begin_letter(i); + set_letter_dimens(i)( + 5u#, x_height#, 0, + 1/3x_height#*slant + .5hair# + .5u#, + if monospace: u#, u# else: 0, 0 fi + ); + pickup fine.nib; + x0 = 0; + x5 = w; + x2 = .5w + .25u; + x3 = .5w - .25u; + hook_in(0, 1, 2)(skewed); + hook_out(3, 4, 5)(skewed); % hooks + filldraw stroke z2e -- z3e; % stem + math_fit( - 2/3x_height#*slant + .5hair# + .5u#, ic#); + penlabels(0, 1, 2, 3, 4, 5); + set_letter_join(i, x1, .25w# + .15u#); + set_letter_join(i.dot_, x4, .75w# + .1u#); +end_letter; + +begin_letter(idot); + idot_h# := min(asc_height#, 10/7x_height# + .5flare#); + set_letter_dimens(idot)( + 5u#, idot_h#, 0, + max(1/3x_height#*slant + .5hair# + .5u#, idot_h#*slant + .5flare# - 2u#), + if monospace: u#, u# else: 0, 0 fi + ); + pickup fine.nib; + x0 = 0; + x5 = w; + x2 = .5w + .25u; + x3 = .5w - .25u; + hook_in(0, 1, 2)(skewed); + hook_out(3, 4, 5)(skewed); % hooks + filldraw stroke z2e -- z3e; % stem + pos8(flare, 0); + pos9(flare, 90); + x8 = .5w if not monospace: -.4(h - x_height)*slant fi; + top y9r = h + 1; + if bot y9l - top y1 < slab: + y9l := min(y9r - eps, y1 + fine + slab); + fi + x8 = x9; + y8 = .5[y9l, y9r]; + dot(8, 9); % dot + math_fit( - 2/3x_height#*slant + .5hair# + .5u#, ic#); + penlabels(0, 1, 2, 3, 4, 5, 8, 9); + set_letter_join(idot, x1, .25w# + .15u#); + set_letter_join(idot.dot_, x4, .75w# + .1u#); +end_letter; + +input vnicomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlir.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlir.mf new file mode 100644 index 00000000000..e626565502f --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlir.mf @@ -0,0 +1,74 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman lower case "i" precomposed glyphs: +% Inclusion: +% i' i` i? i~ i. + +begin_letter(i); + set_letter_dimens(i)( + 5u#, x_height#, 0, + x_height#*slant - serif_fit# + .5stem# - 2u#, + serif_fit# + stem_shift# if monospace: +.25u#fi, serif_fit# - stem_shift# + ); + pickup tiny.nib; + pos1(stem', 0); + pos2(stem', 0); + lft x1l = hround(.5w - .5stem'); + x1 = x2; + top y1 = x_height if serifs: + min(oo, serif_drop) fi; + bot y2 = 0; + filldraw stroke z1e -- z2e; + % stem + if serifs: + sloped_serif.l(1, 2, a, 1/3, .95jut, serif_drop); % upper serif + dish_serif(2, 1, b, 1/3, jut, c, 1/3, .9jut); % lower serif + fi + penlabels(1, 2); + set_letter_join(i, x1, .5w#); +end_letter; + +begin_letter(idot); + idot_h# := min(asc_height#, 10/7x_height# + .5vn_dot_diam#); + set_letter_dimens(idot)( + 5u#, idot_h#, 0, + idot_h#*slant - serif_fit# + .5vn_dot_diam# -2u#, + serif_fit# + stem_shift# if monospace: +.25u# fi, + serif_fit# - stem_shift# + ); + pickup tiny.nib; + pos1(stem', 0); + pos2(stem', 0); + if odd(w - stem'): + change_width; + fi + lft x1l = hround(.5w - .5stem'); + x1 = x2; + top y1 = x_height if serifs: +min(oo, serif_drop) fi; + bot y2 = 0; + filldraw stroke z1e -- z2e; % stem + pos3(vn_dot_diam, 0); + pos4(vn_dot_diam, 90); + if serifs: + x3r = max(x1r, hround(x1 + .5vn_dot_diam - .2jut) - .5tiny) + else: + x3 = x1 - .5 + fi; + top y4r = h + 1; + if bot y4l - top y1 < slab: y4l := min(y4r - eps, y1 + tiny + slab); + fi + x3 = x4; + y3 = .5[y4l, y4r]; + dot(3, 4); % dot + if serifs: + sloped_serif.l(1, 2, a, 1/3, .95jut, serif_drop); % upper serif + dish_serif(2, 1, b, 1/3, jut, c, 1/3, .9jut); + fi % lower serif + penlabels(1, 2, 3, 4); + set_letter_join(idot, x1, .5w#); +end_letter; + +input vnicomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnloi.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnloi.mf new file mode 100644 index 00000000000..191e1c31227 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnloi.mf @@ -0,0 +1,38 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman Italic lower case "o" precomposed glyphs: +% Inclusion: +% o' o` o? o~ o. +% o+ o+' o+` o+? o+~ o+. + +begin_letter(o); + set_letter_dimens(o)( + 9u#, x_height#, 0, + .7x_height#*slant + .5curve# - u# if math_fitting: -.5u# fi, + 0, 0 + ); + pickup fine.nib; + pos1(vair, 90); + pos2(curve, 180); + pos3(vair, 270); + pos4(curve, 360); + x1 = x3 = .5w; + lft x2r = hround(1.5u - .5curve); + x4 = w-x2; + top y1r = h+oo; + y2 = y4 = .5[y1, y3]; + bot y3r = -oo; + filldraw stroke pulled_arc.e(1, 2) & pulled_arc.e(2, 3) + & pulled_arc.e(3, 4) & pulled_arc.e(4, 1); % bowl + math_fit( - .3x_height#*slant + .5curve# - u#, ic#); + penlabels(1, 2, 3, 4); + set_letter_join(o, x1, .5w#); + set_letter_join(o.horn_, x1, .5w#); + set_horn_join(o, pulled_arc.l(4, 1), pulled_arc.r(4, 1)); +end_letter; + +input vnocomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlor.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlor.mf new file mode 100644 index 00000000000..8f5a34d320b --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlor.mf @@ -0,0 +1,38 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman lower case "o" precomposed glyphs: +% Inclusion: +% o' o` o? o~ o. +% o^ o^' o^` o^? o^~ o^. +% o+ o+' o+` o+? o+~ o+. + +begin_letter(o); + set_letter_dimens(o)( + 9u#, x_height#, 0, + .7x_height#*slant, + if monospace: .5u#, .5u# else: 0, 0 fi + ); + penpos1(vair, 90); + penpos3(vair', -90); + penpos2(curve, 180); + penpos4(curve, 0); + x2r = hround max(.5u, 1.25u - .5curve); + x4r = w-x2r; + x1 = x3 = .5w; + y1r = h + vround 1.5oo; + y3r = -oo; + y2 = y4 = .5h - vair_corr; + y2l := y4l := .52h; + penstroke pulled_arc.e(1, 2) & pulled_arc.e(2, 3) + & pulled_arc.e(3, 4) & pulled_arc.e(4, 1) & cycle; % bowl + penlabels(1, 2, 3, 4); + set_letter_join(o, x1, .5w#); + set_letter_join(o.horn_, x1 + .1dot_size, .5w# + .1dot_size#); + set_horn_join(o, pulled_arc.l(4, 1), pulled_arc.r(4, 1)); +end_letter; + +input vnocomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlui.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlui.mf new file mode 100644 index 00000000000..91d07df2e95 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlui.mf @@ -0,0 +1,50 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman Italic lower case "u" precomposed glyphs: +% Inclusion: +% u' u` u? u~ u. +% u+ u+' u+` u+? u+~ u+. + +begin_letter(u); + set_letter_dimens(u)( + 9.5u#, x_height#, 0, + 1/3x_height#*slant + .5hair# + .5u#, + 0, 0 + ); + pickup fine.nib; + interim superness := more_super; + x0 = 0; + x2 = x3 + .25u; + pos3(stem, -180); + lft x3r = hround(2.5u - .5stem); + hook_in(0, 1, 2)(skewed); % opening hook + pos2'(stem, -180); + z2' = z2; + pos4(vair, -90); + pos5(hair, 0); + x4 = .5[x3, x5]; + pos6(stem, 0); + rt x6r = hround(w - 2.5u + .5stem); + x5 = x6 = x7; + x9 = w; + hook_out(7, 8, 9); % closing hook + y3 = .7[y4, y5]; + bot y4r=-oo; + y5 = .57h; + y6 + .5stem = h; + filldraw stroke z2'e{ - u, -x_height} + ... super_arc.e(3, 4) ... {up}z5e; % left stem and arc + filldraw circ_stroke z6e -- z7e; % right stem + math_fit( - 2/3x_height#*slant + .5hair# + .5u#, ic#); + penlabels(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); + set_letter_join(u, x4, .5w#); + set_letter_join(u.horn_, x4, .5w#); + set_letter_join(u.dot_, x4 + .5u, .5w# + .5u#); + set_horn_join(u, z5 -- z6, z5 -- z6); +end_letter; + +input vnucomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlur.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlur.mf new file mode 100644 index 00000000000..10b02f81e95 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlur.mf @@ -0,0 +1,70 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman lower case "u" precomposed glyphs: +% Inclusion: +% u' u` u? u~ u. +% u+ u+' u+` u+? u+~ u+. + +begin_letter(u); + set_letter_dimens(u)( + 10u#, x_height#, 0, + x_height#*slant - serif_fit# + .5stem# - 2u#, + serif_fit# + stem_shift#, serif_fit# - stem_shift# + ); + numeric light_vair; + light_vair = vair if hefty: -vround 2vair_corr fi; + if light_vair < fine.breadth: light_vair := fine.breadth; + fi + pickup tiny.nib; + pos1(stem, 0); + pos2(stem, 0); + pos3(stem, 0); + pos4(stem', 0); + lft x1l = hround(2.5u - .5stem); + x1 = x2; + x3 = w - x1; + x3r = x4r; + if serifs: top y1 = h+min(oo, serif_drop); + bot y4 = -min(oo, serif_drop); + else: top y1 = h; + bot y4 = 0; + fi + pos0(stem, 0); + pos0'(stem', 0); + x0 = x3; + x0' = x4; + y0 = y0'; + penpos2'(stem - fine, -180); + z2' = z2; + y3 = y1; + y2 = .5bar_height; + penpos5(max(eps, light_vair - fine), -90); + penpos6(thin_join - fine, 0); + y6 = y0 = 2/3bar_height; + filldraw stroke z1e -- z2e; % left stem + filldraw stroke z3e .. z0e -- z0'e .. z4e; % right stem + pickup fine.nib; + bot y5r=-oo; + x5l = .5w - .25u; + lft x6l = tiny.lft x0l; + (x, y5r) = whatever[z5l, z6l]; + x5r := max(x, .5[x5, x2'r]); + filldraw stroke {{interim superness := hein_super; + pulled_arc.e(2', 5)}} & z5e{right} ... {up}z6e; % arc + if serifs: sloped_serif.l(1, 2, a, 1/3, jut, serif_drop); % upper left serif + sloped_serif.l(3, 0, b, 1/3, jut, serif_drop); % upper right serif + sloped_serif.r(4, 0', c, 1/3, jut, min(oo, serif_drop)); + fi % lower right serif + penlabels(1, 2, 3, 4, 5, 7); + labels(6); + set_letter_join(u, x5, .5w#); + set_letter_join(u.horn_, x5 + .3dot_size, .5w# + .3dot_size#); + set_letter_join(u.dot_, x5 + .5u, .5w# + .5u#); + set_horn_join(u, z3 -- z4, z3 -- z4); +end_letter; + +input vnucomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlyi.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlyi.mf new file mode 100644 index 00000000000..d0c6717298f --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlyi.mf @@ -0,0 +1,57 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman Italic lower case "y" precomposed glyphs: +% Inclusion: +% y' y` y? y~ y. + +begin_letter(y); + set_letter_dimens(y)( + 8.5u#, x_height#, desc_depth#, + x_height#*slant + .5stem# - u#, + 0, 0 + ); + pickup fine.nib; + interim superness := more_super; + x0 = 0; + x2 = x3 + .25u; + pos3(stem, -180); + lft x3r = hround(2.5u - .5stem); + hook_in(0, 1, 2)(skewed); % opening hook + pos2'(stem, -180); + z2' = z2; + pos4(vair, -90); + pos5(hair, 0); + x4 = .5[x3, x5]; + pos6(stem, 0); + rt x6r = hround(w - 1.5u + .5stem); + pos7(stem, 0); + pos8(vair, -90); + y3 = .7[y4, y5]; + bot y4r=-oo; + y5 = .57h; + y6 + .5stem = h; + y7 = 0; + bot y8r=-d - oo; + x5 = x6 = x7; + x8 = .5w; + pos9(hair, -180); + pos10(flare, -180); + y9=-.5d; + lft x9r = hround(2.75u - .5flare); + bulb(8, 9, 10); % bulb + filldraw stroke z2'e{ - u, -x_height} + ... super_arc.e(3, 4) ... {up}z5e; % left stem and arc + filldraw circ_stroke z6e --- z7e ... {left}z8e; % right stem and link + math_fit( - 2/3x_height#*slant + .5hair# + .5u#, ic# - 1/3x_height#*slant); + penlabels(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10); + set_letter_join(y, x4, .5w#); + set_letter_join(y.dot_, x5, .5w#); + vn_dot_shift_y(y) := vn_depth(y) + vn_height(dot_); + vn_depth(y) := vn_dot_shift_y(y); +end_letter; + +input vnycomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlyr.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlyr.mf new file mode 100644 index 00000000000..39edb6b398b --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlyr.mf @@ -0,0 +1,101 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman lower case "y" precomposed glyphs: +% Inclusion: +% y' y` y? y~ y. + +begin_letter(y); + set_letter_dimens(y)( + if serifs: 9.5u# else: 9u# fi, x_height#, desc_depth#, + x_height#*slant + .25u#, + serif_fit# if monospace: +\\.5u#, .5u#+ else: ,fi\\ serif_fit# + ); + numeric left_stem, right_stem, bot_stem, bot_vair, outer_jut; + left_stem = fudged.stem - stem_corr; + right_stem = fudged.hair if hefty: -2stem_corr fi; + bot_stem = fudged.hair if hefty: -8stem_corr fi; + bot_vair = Vround(if serifs: vair else: .5[vair, bot_stem] fi); + outer_jut = .75jut; + x1l = w-x4r = l+letter_fit + outer_jut + .25u; + y1 = y4r = h; + y2 = y3 = 0; + x2l = x3l; + numeric alpha, alpha[]; + x9 = 3u; + y9 = bot_vair - d-oo; + alpha1 = diag_ratio(2, bot_stem, y1 - y3, x4r - x1l - apex_corr); + alpha2 = diag_ratio(1, bot_stem, y1 - y9, x4r - x9); + if alpha1 < alpha2: x2l - x1l = x4r - x3r + apex_corr; + alpha = alpha1; + else: alpha = alpha2; + z3l = whatever[z9, z4r - (alpha*bot_stem, 0)]; + fi + penpos3(alpha*bot_stem, 0); + penpos4(alpha*right_stem, 0); + alpha3 = (y1 ++ (x2l - x1l))/y1; + penpos1(alpha3*left_stem, 0); + penpos2(alpha3*left_stem, 0); + z0 = whatever[z1r, z2r] = z4l + whatever*(z3r - z4r); + if y0 > notch_cut: y0 := notch_cut; + fill z0 + .5right{up} ... {z4r - z3r}diag_end(0, 4l, 1, 1, 4r, 3r) + -- z3r -- z2l -- diag_end(2l, 1l, 1, 1, 1r, 2r){z2 - z1} + ... {down}z0 + .5left -- cycle; % left and right diagonals + else: fill z0 -- diag_end(0, 4l, 1, 1, 4r, 3r) -- z3r -- z2l + -- diag_end(2l, 1l, 1, 1, 1r, 0) -- cycle; + fi % left and right diagonals + penpos5(alpha*bot_stem, 0); + z5r = whatever[z3r, z4r]; + y5 - .5vair=-.5d; + if serifs: numeric light_bulb; + light_bulb = hround 7/8[hair, flare]; + clearpen; + penpos6(vair, -90); + penpos7(hair, -180); + penpos8(light_bulb, -180); + x6 = 2u; + y6r=-d - oo; + y8 - .5light_bulb=-.85d; + x8r = hround .35u; + fill stroke z3e --- z5e ... {left}z6e; + bulb(6, 7, 8); % arc and bulb + numeric inner_jut; + pickup tiny.nib; + prime_points_inside(1, 2); + prime_points_inside(4, 3); + if rt x1'r + jut + .5u + 1<=lft x4'l - jut: inner_jut = jut; + else: rt x1'r + inner_jut + .5u + 1=lft x4'l - inner_jut; + fi + dish_serif(1', 2, a, 1/3, outer_jut, b, 1/2, inner_jut); % left serif + dish_serif(4', 3, c, .6, inner_jut, d, 1/2, outer_jut)(dark); % right serif + else: penpos6(bot_vair, -90); + x6 = 2.5u; + y6r=-d - oo; + fill stroke z3e --- z5e ... {left}z6e; % arc + pickup fine.nib; + pos6'(bot_vair, -90); + z6' = z6; + pos7(2/3[bot_vair, flare], -85); + lft x7l = hround u; + bot y7r = vround - .96d - oo; + y7l := good.y y7l; + filldraw stroke term.e(6', 7, left, 1, 4); + fi % arc and terminal + penlabels(0, 1, 2, 3, 4, 5, 6, 7, 8, 9); + set_letter_join(y, x3, .5w#); + path dot_join_line; + dot_join_y := vp(max(vn_depth(y), vn_bot(dot_)) - .5vn_height(dot_)); + dot_join_line := (0, -dot_join_y) -- (w, -dot_join_y); + z2' = whatever[z1, z2]; + y2' = -dot_join_y; + set_letter_join(y.dot_, xpart point xpart(dot_join_line intersectiontimes + (z2 -- z2')) of dot_join_line, + .5w#); + vn_dot_shift_y(y) := max(vn_depth(y), vn_bot(dot_)); + vn_depth(y.dot_) := vn_dot_shift_y(y); +end_letter; + +input vnycomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnminus.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnminus.mf new file mode 100644 index 00000000000..6bcce5038d6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnminus.mf @@ -0,0 +1,39 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +iff monospace: +cmchar "Hyphen"; +beginchar("-",6u#,x_height#,0); +italcorr .5x_height#*slant-.5u#; +adjust_fit(0,0); +numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi; +pickup crisp.nib; pos1(thickness,90); pos2(thickness,90); +top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps; +if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi; +filldraw stroke z1e--z2e; % bar +penlabels(1,2); endchar; + +% ecchar "Less than sign"; +% compute_spread(5/4x_height#,3/2x_height#); +% beginchar("<",14u#,v_center(spread#+rule_thickness#)); +% italcorr h#*slant-u#; +% adjust_fit(0,0); pickup extra_rule.nib; +% lft x2=hround 1.5u-eps; x1=x3=w-x2; +% y1-y3=spread; y2=.5[y1,y3]=math_axis; +% x2' = x2; y2' = y2 if known gen_t5_supp: - .1 fi; +% draw z1--z2...z2'--z3; % diagonals +% labels(1,2,2',3); endchar; +% +% ecchar "Greater than sign"; +% compute_spread(5/4x_height#,3/2x_height#); +% beginchar(">",14u#,v_center(spread#+rule_thickness#)); +% italcorr math_axis#*slant-u#; +% adjust_fit(0,0); pickup extra_rule.nib; +% rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; +% y1-y3=spread; y2=.5[y1,y3]=math_axis; +% x2' = x2; y2' = y2 if known gen_t5_supp: - .1 fi; +% draw z1--z2..z2'--z3; % diagonals +% labels(1,2,3); endchar; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnmligtb.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnmligtb.mf new file mode 100644 index 00000000000..58fed0c99df --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnmligtb.mf @@ -0,0 +1,16 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% ligatures and kerns for monospace fonts + +ligtable "`": "`" =: oct"020"; +ligtable "'": "'" =: oct"021"; +ligtable "-": "-" =: oct"025", % number range dash equals "-" + oct"177" =: oct"177"; % => +ligtable "<": "<" =: oct"023"; % "<<" +ligtable ">": ">" =: oct"024"; % ">>" +ligtable ",": "," =: oct"022"; % ",," +% ligtable "!": "`" =: oct"275"; % spanish shriek +% ligtable "?": "`" =: oct"276"; % spanish query +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnocomp.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnocomp.mf new file mode 100644 index 00000000000..eb6fa8f3eb6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnocomp.mf @@ -0,0 +1,65 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% define [oO]-based accented letters + +vnchar casename "o with horn "; +define_vnchar_horn(o); + +if known gen_t5_supp: + let next = endinput; +else: + let next = relax; +fi % known gen_t5_supp +next; + +vnchar casename "o with acute"; +define_vnchar(o, acute_); + +vnchar casename "o with grave"; +define_vnchar(o, grave_); + +vnchar casename "o with hook"; +define_vnchar(o, hook_); + +vnchar casename "o with tilde"; +define_vnchar(o, tilde_); + +vnchar casename "o with dot"; +define_vnchar_dot(o); + +vnchar casename "o with circumflex "; +define_vnchar(o, circumflex_); + +vnchar casename "o with circumflex and acute"; +define_vnchar(o, circumflex_.acute_); + +vnchar casename "o with circumflex and grave"; +define_vnchar(o, circumflex_.grave_); + +vnchar casename "o with circumflex and hook"; +define_vnchar(o, circumflex_.hook_); + +vnchar casename "o with circumflex and tilde"; +define_vnchar(o, circumflex_.tilde_); + +vnchar casename "o with circumflex and dot"; +define_vnchar_dot_ac(o, circumflex_); + +vnchar casename "o with horn and acute"; +define_vnchar_horn_ac(o, acute_); + +vnchar casename "o with horn and grave"; +define_vnchar_horn_ac(o, grave_); + +vnchar casename "o with horn and hook"; +define_vnchar_horn_ac(o, hook_); + +vnchar casename "o with horn and tilde"; +define_vnchar_horn_ac(o, tilde_); + +vnchar casename "o with horn and dot"; +define_vnchar_horn_dot(o); + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnr10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnr10.mf new file mode 100644 index 00000000000..ab2b6a1eced --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnr10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecrm; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnr12.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnr12.mf new file mode 100644 index 00000000000..75f768d8bc9 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnr12.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=12; +input vnbase; +input ecrm; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnr17.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnr17.mf new file mode 100644 index 00000000000..ce039f402b6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnr17.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=17; +input vnbase; +input ecrm; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnr5.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnr5.mf new file mode 100644 index 00000000000..34081c7eea6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnr5.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=5; +input vnbase; +input ecrm; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnr6.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnr6.mf new file mode 100644 index 00000000000..51aa1512ca8 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnr6.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=6; +input vnbase; +input ecrm; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnr7.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnr7.mf new file mode 100644 index 00000000000..ac5e9c4c212 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnr7.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=7; +input vnbase; +input ecrm; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnr8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnr8.mf new file mode 100644 index 00000000000..55696dc0787 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnr8.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=8; +input vnbase; +input ecrm; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnr9.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnr9.mf new file mode 100644 index 00000000000..4eed29ea529 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnr9.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=9; +input vnbase; +input ecrm; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnrligtb.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnrligtb.mf new file mode 100644 index 00000000000..ab01c05540b --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnrligtb.mf @@ -0,0 +1,211 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% ligatures and kerns for roman fonts + +ligtable + "`": "`"=:oct"020", + oct"020" kern 2u#, + "?" kern 2u#, + "!" kern 2u#; + +ligtable + "'": "'"=:oct"021", + oct"021" kern 2u#, + "?" kern 2u#, + "!" kern 2u#; + +ligtable + "-": "-" =: oct"025", + oct"177" =: oct"177"; % => + +ligtable + oct"025": "-"=:oct"026"; % "---" => emdash + +ligtable "<": "<" =: oct"023"; % "<<" +ligtable ">": ">" =: oct"024"; % ">>" +ligtable ",": "," =: oct"022"; % ",," + +k#:=-.5u#; ku#:=-1u#; kk#:=-1.5u#; kkk#:=-2u#; % four degrees of kerning + +ligtable boundarychar: + oct"020" kern -kk#, oct"021" kern -kk#, oct"022" kern -kk#, + oct"055" kern -kk#, oct"140" kern -kk#, oct"047" kern -kk#; + +ligtable oct"022": + oct"015" kern 2u#, "," kern 2u#, + oct"015": + oct"022" kern 2u#, + "j" kern -kkk#, oct"032" kern -kkk#, "g" kern -ku#, + y_fam(kern -ku#,) + "v" kern kk#, "w" kern ku#, "V" kern kkk#, "W" kern kk#, + Y_fam(kern kk#,) + O_fam(kern k#,) + lig_CGQ_table(k#), + boundarychar kern -kk#; + +ligtable oct"020": + oct"140" kern 2u#, oct"020" kern 2u#, boundarychar kern -kk#; + +ligtable oct"021": + oct"047" kern 2u#, oct"021" kern 2u#, boundarychar kern -kk#; + +ligtable oct"024": % ">>" + "." kern kk#, "," kern kk#; + +ligtable + "k": "W" kern kk#, "V" kern kk#, + if serifs: "v": a_fam(kern -u#,) fi + "w": e_fam(kern k#,) + a_fam(kern k#,) + o_fam(kern k#,) + "c" kern k#; + +ligtable + "P": A_fam(kern kk#,) + y_fam(:) + o_fam(kern k#,) + e_fam(kern k#,) + a_fam(kern k#,) + "." kern kk#, + "," kern kk#; +ligtable + "F":"V": "W": + if serifs: + o_fam(kern kk#,) + a_fam(kern kk#,) + e_fam(kern kk#,) + y_fam(kern kk#,) + u_fam(kern kk#,) + "r" kern kk#, + "v" kern kk#, + "s" kern kk#, + "c" kern kk#, + d_fam(kern kk#,) + "g" kern kk#, + "m" kern kk#, + "n" kern kk#, + "p" kern kk#, + "w" kern kk#, + "z" kern kk#, + A_fam(kern kkk#,) + else: + o_fam(kern k#,) + a_fam(kern k#,) + e_fam(kern k#,) + y_fam(kern k#,) + u_fam(kern k#,) + "r" kern k#, + "v" kern k#, + "s" kern k#, + "c" kern k#, + d_fam(kern k#,) + "g" kern k#, + "m" kern k#, + "n" kern k#, + "p" kern k#, + "w" kern k#, + "z" kern k#, + A_fam(kern kk#,) + fi + "X": O_fam(kern k#,) + lig_CGQ_table(k#); + +ligtable "K": if serifs: + "v" kern kk#, + "w" kern k#, + else: + "v" kern k#, + fi + o_fam(kern k#,) + lig_CGQ_table(k#); + +ligtable + "T": + y_fam(kern if serifs: k# else: kk# fi,) + Y_fam(:) + A_fam(kern kk#,) + e_fam(kern kk#,) + o_fam(kern kk#,) + "r" kern kk#, + a_fam(kern kk#,) + u_fam(kern kk#,) + "n" kern kk#, + oct"031" kern kk#, % \i + "c" kern kk#, + d_fam(kern kk#,) + "g" kern kk#, + "p" kern kk#, + "s" kern kk#, + "v" kern kk#, + "w" kern kk#, + "x" kern kk#, + "z" kern kk#; +ligtable + O_fam(:) + D_fam(:) + "X" kern k#, + "W" kern k#, + A_fam(kern k#,) + Y_fam(kern k#,) + "V" kern k#; +if serifs: +ligtable + "m": "n": "h": + "W" kern kk#, "V" kern kk#, + "t" kern k#, + u_fam(kern k#,) + "b" kern k#, + y_fam(kern k#,) + "v" kern k#, + "w" kern k#; +ligtable + "c": + "h" kern k#, + "k" kern k#; +fi +ligtable + o_fam(:) + "b": "p": e_fam(kern -k#,) + o_fam(kern -k#,) + "x" kern k#, + d_fam(kern -k#,) + "c" kern -k#, + "q" kern -k#, + a_fam(:) + if serifs: + "v" kern k#, + "j" kern u#, + else: + "r" kern k#, + fi + "t": + y_fam(kern k#,) + u_fam(:) + "w" kern k#; +ligtable + A_fam(:) + y_fam(kern if serifs: kk# else: k# fi,) + "v" kern if serifs: kkk# else: k# fi, + "w" kern if serifs: kk# else: k# fi, + "c" kern k#, + d_fam(kern k#,) + e_fam(kern k#,) + o_fam(kern k#,) + "q" kern k#, + if serifs: "R": fi + "t" kern k#, + lig_CGQ_table(k#), + O_fam(kern k#,) + U_fam(kern k#,) + "L": + "T" kern kk#, + Y_fam(kern kk#,) + "V" kern kkk#, + "W" kern kkk#; +ligtable "g": "j" kern -k#; % logjam +ligtable "I": "I" kern -k#; % Richard III +ligtable e_fam(:) "V" kern kk#; % eV + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnrm.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnrm.mf new file mode 100644 index 00000000000..f0d74ef59dd --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnrm.mf @@ -0,0 +1,97 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% ecrm.mf +% +% (c) Copyright 1995, 1996, 1997 J"org Knappen +% (c) Copyright 1990, 1992 Norbert Schwarz +% +% This file is part of ecfonts version 1.0 +% +% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and +% copyrite.txt for further information +% +% You find some documentation in ecdoc.tex (needs LaTeX2e) +% +% Content: +% +% Parameter for +% +% European Computer Modern Roman Medium +% +% +font_identifier:="ECRM"; +font_size gensize*pt#; +basedef ( 5, 6, 7, 8, 9, 10, 12, 17.28); +gendef [1/36pt#]( u# )( 12.5, 14, 15.5, 17, 18.5, 20, 23.5, 32.5); +gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0, 0, 0); +gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0, 0); +gendef [1/36pt#]( cap_serif_fit# )( 2, 2.8, 3.5, 4.1, 4.6, 5, 5.8, 8); +gendef [1/36pt#]( letter_fit# )( 5, 3, 2, 0, 0, 0, 0, [-.1]); +gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324, 466); +gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300, 432); +gendef [1/36pt#]( cap_height# )( 123, 147.6, 172.2, 196.8, 221.4, 246, 295.2, 425); +gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4, 401); +gendef [1/36pt#]( x_height# )( 77.5, 93, 108.5, 124, 139.5, 155, 186, 267.8); +gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108, 155.5); +gendef [1/36pt#]( bar_height# )( 43.5, 52.2, 60.9, 69.6, 78.3, 87, 104.4, 150); +gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84, 121); +gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84, 121); +gendef [1/36pt#]( acc_height# )( 42.5, 49, 55.5, 62, 68.5, 75, 90, 127.5); +%gendef [1/36pt#]( dot_height# )( 32, 36.6, 41.2, 46, 50.4, 56, 67.2, 90); +gendef [1/36pt#]( dot_height# )( 42, 46.6, 51.2, 56, 60.4, 66, 77.2, 100); +gendef [1/36pt#]( udot_height# )( 33.5, 38.5, 43.3, 48.4, 53.1, 59, 70.8, 95); +gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0, 0); +gendef [1/36pt#]( tiny# )( 6, 7, 7, 8, 8, 8, 8, 8); +gendef [1/36pt#]( fine# )( 5, 6, 6, 7, 7, 7, 7, 7); +gendef [1/36pt#]( thin_join# )( 5, 6, 6, 7, 7, 7, 7.5, 9); +gendef [1/36pt#]( hair# )( 7.5, 8, 8.5, 9, 9, 9, 9.5, 11); +gendef [1/36pt#]( stem# )( 16, 18, 20, 22, 24, 25, 28, 33); +gendef [1/36pt#]( curve# )( 18, 20.5, 23, 25.5, 28, 30, 33, 40); +gendef [1/36pt#]( ess# )( 12, 17, 21, 23, 25, 27, 30, 35); +gendef [1/36pt#]( flare# )( 19, 21, 24, 27, 30, 33, 36, 45); +gendef [1/36pt#]( dot_size# )( 22, 26, 29, 32, 35, 38, 42, 51); +gendef [1/36pt#]( cap_hair# )( 8, 8.5, 9, 9.5, 10, 11, 11.5, 13); +gendef [1/36pt#]( cap_stem# )( 19, 21.5, 24, 26.5, 29, 32, 35, 41); +gendef [1/36pt#]( cap_curve# )( 21, 24, 27, 30, 33, 37, 40, 47); +gendef [1/36pt#]( cap_ess# )( 14, 19, 23, 27, 31, 35, 38, 43); +gendef [pt#]( rule_thickness#)( .28, .31, .34, .36, .38, .4, .44, .6); +gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1, 1); +gendef [1/36pt#]( bracket# )( 10, 12, 14, 16, 18, 20, 24, 34); +gendef [1/36pt#]( jut# )( 15, 17, 19, 22, 25, 28, 33, 42); +gendef [1/36pt#]( cap_jut# )( 20, 23, 26, 29, 33, 37, 41, 50); +gendef [1/36pt#]( beak_jut# )( 6, 6.8, 7.6, 8.4, 9.2, 10, 11.4, 15); +gendef [1/36pt#]( beak# )( 35, 42, 49, 56, 63, 70, 84, 121); +gendef [1/36pt#]( vair# )( 6, 7, 7, 8, 8, 8, 8.5, 10); +gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17); +gendef [1/36pt#]( bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16); +gendef [1/36pt#]( slab# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16); +gendef [1/36pt#]( cap_bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16); +gendef [1/36pt#]( cap_band# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16); +gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17); +gendef [1/36pt#]( serif_drop# )( 2, 2.4, 2.8, 3.2, 3.6, 4, 4.8, 7); +gendef [1/36pt#]( stem_corr# )( .7, .8, .9, 1, 1, 1, 1, 1); +gendef [1/36pt#]( vair_corr# )( .5, .7, .9, 1, 1, 1, 1, 1); +gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0, 0, 0); +gendef [1/36pt#]( o# )( 4, 4.5, 5, 6, 7, 8, 9, 10); +gendef [1/36pt#]( apex_o# )( 4, 4.5, 5, 6, 7, 8, 9, 10); +slant:=0; +gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1, 1); +gendef ( math_spread )( 1, .8, .6, .4, .2, 0, [-.2], [-.2]); +superness:=1/sqrt 2; +superpull:=1/6; +beak_darkness:=11/30; +square_dots:=false; +hefty:=false; +serifs:=true; +monospace:=false; +variant_g:=false; +low_asterisk:=false; +math_fitting:=false; + +clear_extra_memory; + +generate vnroman + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnroman.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnroman.mf new file mode 100644 index 00000000000..daab6e21e78 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnroman.mf @@ -0,0 +1,119 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% driver for roman fonts (based on exroman.mf) + +version_check(1,0); % |version_check| was introduced in dc1.3 + +input exaccess; % accessories for polish special letters +input expseudo; % pseudoparameters + +mode_setup; +font_setup; +pseudo_setup; + +if known testing: + set_lowercase; + input vnaccent; + input_lr_fam; + set_uppercase; + input vnaccent; + input_ur_fam; + let next = endinput; +else: + let next = relax; +fi % known testing +next; + +if known gen_t5_supp: + input exbraces; % ^ ~ cwm ( ) < | > [ ] \ { } _ - (177) space (040) + input expunct; % < << > >> ! ` ' * + , . / = ; : (spanish !) + input exaccent; % + input exsign; % zero for mille, " # $ % @ pound sign + set_lowercase; + input vnaccent; + input vndothook;% dotbelow and hookabove + input vnminus; % minus iff monospace: + input vnlacc; % lowercase accents + input vnlor; % ohorn + input vnlur; % uhorn + input vnldr; % dcroat + set_uppercase; + input vnaccent; + input vnuacc; % lowercase accents + input vnuor; % Ohorn + input vnuur; % Uhorn + input vnudr; % Dcroat + let next = endinput; +else: + let next = relax; +fi % known gen_t5_supp +next; + + +input exbraces; % ^ ~ cwm ( ) < | > [ ] \ { } _ - (177) space (040) +input expunct; % < << > >> ! ` ' * + , . / = ; : (spanish !) +input exaccent; % +input exsign; % zero for mille, " # $ % @ pound sign +input exrlig; % dotless i,j; letter ligatures ff fi fl ffi ffl +input exromp; % (roman punctuation) & ? (spanish ?) +input exrulett; % upper case (majuscules) +input exrllett; % lower case (minuscules) +input exrdigit; % roman digits + +set_lowercase; % set `case_' and `vncase' for lowercase letters +input vnaccent; % define the accents for lowercase letters +input vnlar; % modified/accented "a" +input vnler; % modified/accented "e" +input vnlir; % accented "i" +input vnlor; % modified/accented "o" +input vnlur; % modified/accented "u" +input vnlyr; % accented "y" +input vnldr; % d-bar + +input vndothook;% dotbelow and hookabove +input vnminus; % minus for monospace font + +set_uppercase; % set `case_' and `vncase' for uppercase letters +input vnaccent; % define the accents for uppercase letters +input vnuar; % modified/accented "A" +input vnuer; % modified/accented "E" +input vnuir; % accented "I" +input vnuor; % modified/accented "O" +input vnuur; % modified/accented "U" +input vnuyr; % accented "Y" +input vnudr; % D-bar + +% +% Fontparameter +% +font_coding_scheme := "Vietnamese TeX Font Encoding"; +boundarychar := oct"027"; +font_slant slant; +font_x_height x_height#; + font_cap_height cap_height#; + font_asc_height asc_height#; + font_acc_cap_height (cap_height#+acc_height#); + font_desc_depth desc_depth#; + font_max_height (max(asc_height#,body_height#, cap_height#+acc_height#)); + font_max_depth (max(desc_depth#,paren_depth#,the_ogonek_depth#)); + font_baselineskip max(1.2*designsize,body_height#+paren_depth#); +% font_digit_width % set inside the digits file +% font_cap_stem % set after the programme of the capital I + +if monospace: + font_normal_space 9u#; % no stretching or shrinking + font_quad 18u#; + font_extra_space 9u#; + input vnmligtb; % do the ligature programs for monospaced fonts +else: + font_normal_space 6u# + 2letter_fit#; + font_normal_stretch 3u#; + font_normal_shrink 2u#; + font_quad 18u# + 4letter_fit#; + font_extra_space 2u#; + input vnrligtb; % do the ligature programs, not for monospaced fonts +fi + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnsl10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnsl10.mf new file mode 100644 index 00000000000..2ec52bdfdf4 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnsl10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecsl; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnsl12.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnsl12.mf new file mode 100644 index 00000000000..399da5a8a2e --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnsl12.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=12; +input vnbase; +input ecsl; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnsl8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnsl8.mf new file mode 100644 index 00000000000..393b97e72e6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnsl8.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=8; +input vnbase; +input ecsl; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnsl9.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnsl9.mf new file mode 100644 index 00000000000..1bed44e8e12 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnsl9.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=9; +input vnbase; +input ecsl; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnsltt10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnsltt10.mf new file mode 100644 index 00000000000..27cdc63c594 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnsltt10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecst; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnss10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnss10.mf new file mode 100644 index 00000000000..e083af4645b --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnss10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecss; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnss12.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnss12.mf new file mode 100644 index 00000000000..6d8b182ac3a --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnss12.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=12; +input vnbase; +input ecss; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnss17.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnss17.mf new file mode 100644 index 00000000000..49d097d2205 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnss17.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=17; +input vnbase; +input ecss; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnss8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnss8.mf new file mode 100644 index 00000000000..3e69c28b94c --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnss8.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=8; +input vnbase; +input ecss; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnss9.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnss9.mf new file mode 100644 index 00000000000..a4b646a0e8b --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnss9.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=9; +input vnbase; +input ecss; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssbx10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssbx10.mf new file mode 100644 index 00000000000..cc8d79408a0 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssbx10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecsx; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssdc10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssdc10.mf new file mode 100644 index 00000000000..36be405eb9c --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssdc10.mf @@ -0,0 +1,7 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +input vnbase; +input ecssdc10; +end. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssi10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi10.mf new file mode 100644 index 00000000000..5802b1bbb44 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecsi; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssi12.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi12.mf new file mode 100644 index 00000000000..c523e8c979d --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi12.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=12; +input vnbase; +input ecsi; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssi17.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi17.mf new file mode 100644 index 00000000000..72aa1da2a6c --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi17.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=17; +input vnbase; +input ecsi; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssi8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi8.mf new file mode 100644 index 00000000000..6f00ec6ccf4 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi8.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=8; +input vnbase; +input ecsi; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssi9.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi9.mf new file mode 100644 index 00000000000..3a91300a3ce --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi9.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=9; +input vnbase; +input ecsi; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssq8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssq8.mf new file mode 100644 index 00000000000..87cbe040bef --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssq8.mf @@ -0,0 +1,7 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +input vnbase; +input ecsq8; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssqi8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssqi8.mf new file mode 100644 index 00000000000..1d407b8e03f --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssqi8.mf @@ -0,0 +1,7 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +input vnbase; +input ecqi8; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vntcsc10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vntcsc10.mf new file mode 100644 index 00000000000..02eb8d63e89 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vntcsc10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ectc; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vntextit.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vntextit.mf new file mode 100644 index 00000000000..391925d8d31 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vntextit.mf @@ -0,0 +1,120 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% driver for italic fonts (based on extextit.mf) + +version_check(1,0); % |version_check| was introduced in dc1.3 + +input exaccess; % accessories for polish special letters +input expseudo; % pseudoparameters + +mode_setup; +font_setup; +pseudo_setup; + +if known testing: + set_lowercase; + input vnaccent; + input_li_fam; + set_uppercase; + input vnaccent; + input_ur_fam; + let next = endinput; +else: + let next = relax; +fi % known testing +next; + +if known gen_t5_supp: + input exbraces; % ^ ~ cwm ( ) < | > [ ] \ { } _ - (177) space (040) + input expunct; % < << > >> ! ` ' * + , . / = ; : (spanish !) + input exaccent; % + input exsign; % zero for mille, " # $ % @ pound sign + set_lowercase; + input vnaccent; + input vndothook;% dotbelow and hookabove + input vnminus; % minus iff monospace: + input vnlacc; % lowercase accents + input vnloi; % ohorn + input vnlui; % uhorn + input vnldi; % dcroat + set_uppercase; + input vnaccent; + input vnuacc; % lowercase accents + input vnuor; % Ohorn + input vnuur; % Uhorn + input vnudr; % Dcroat + let next = endinput; +else: + let next = relax; +fi % known gen_t5_supp +next; + +input exbraces; % ^ ~ cwm ( ) < | > [ ] \ { } _ - (177) space (040) +input expunct; % < << > >> ! ` ' * + , . / = ; : (spanish !) +input exaccent; % +input exsign; % zero for mille, " # $ % @ pound sign +input exilig; % dotless i,j; letter ligatures ff fi fl ffi ffl +input exitalp; % $ ? # & +input exrulett; % upper case (majuscules) +input exillett; % lower case (minuscules) +input exidigit; % digits + +set_lowercase; % set `case_' and `vncase' for lowercase letters +input vnaccent; % define the accents for lowercase letters +input vnlai; % modified/accented "a" +input vnlei; % modified/accented "e" +input vnlii; % accented "i" +input vnloi; % modified/accented "o" +input vnlui; % modified/accented "u" +input vnlyi; % accented "y" +input vnldi; % d-bar + +input vndothook;% dotbelow and hookabove +input vnminus; % minus iff monospace: + +set_uppercase; % set `case_' and `vncase' for uppercase letters +input vnaccent; % define the accents for uppercase letters +input vnuar; % modified/accented "A" +input vnuer; % modified/accented "E" +input vnuir; % accented "I" +input vnuor; % modified/accented "O" +input vnuur; % modified/accented "U" +input vnuyr; % accented "Y" +input vnudr; % D-bar + +% +% Fontparameter +% +font_coding_scheme := "Vietnamese TeX Font Encoding"; +boundarychar := oct"027"; +font_slant slant; +font_x_height x_height#; +font_cap_height cap_height#; +font_asc_height asc_height#; +font_acc_cap_height (cap_height#+acc_height#); +font_desc_depth desc_depth#; +font_max_height (max(asc_height#,body_height#, + cap_height#+acc_height#)); +font_max_depth (max(desc_depth#,paren_depth#,the_ogonek_depth#)); +% font_digit_width % set inside the digits file +% font_cap_stem % set after the programme of the capital I +font_baselineskip max(1.2*designsize,body_height#+paren_depth#); + +if monospace: + font_normal_space 9u#; % no stretching or shrinking + font_quad 18u#; + font_extra_space 9u#; + letter_fit#:=letter_fit:=0; + input vnmligtb; % do the ligature programmes for monospaced fonts +else: + font_normal_space 6u#+2letter_fit#; + font_normal_stretch 3u#; + font_normal_shrink 2u#; + font_quad 18u#+4letter_fit#; + font_extra_space 2u#; + input vniligtb; % do the ligature programmes for proportionally spaced fonts +fi + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnti10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnti10.mf new file mode 100644 index 00000000000..358f976f363 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnti10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecti; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnti12.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnti12.mf new file mode 100644 index 00000000000..f240fd61d3d --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnti12.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=12; +input vnbase; +input ecti; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnti7.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnti7.mf new file mode 100644 index 00000000000..73adbda21f6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnti7.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=7; +input vnbase; +input ecti; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnti8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnti8.mf new file mode 100644 index 00000000000..61b918fd7eb --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnti8.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=8; +input vnbase; +input ecti; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnti9.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnti9.mf new file mode 100644 index 00000000000..2cd6b5ad561 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnti9.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=9; +input vnbase; +input ecti; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vntt10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vntt10.mf new file mode 100644 index 00000000000..ae989a1cf16 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vntt10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ectt; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vntt12.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vntt12.mf new file mode 100644 index 00000000000..d22c26d62e3 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vntt12.mf @@ -0,0 +1,9 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=12; +input vnbase; +input ectt; +bye. +relax; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vntt8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vntt8.mf new file mode 100644 index 00000000000..54336b533a2 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vntt8.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=8; +input vnbase; +input ectt; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vntt9.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vntt9.mf new file mode 100644 index 00000000000..03052a34f72 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vntt9.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=9; +input vnbase; +input ectt; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnu10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnu10.mf new file mode 100644 index 00000000000..49e45f08c49 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnu10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecui; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnuacc.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnuacc.mf new file mode 100644 index 00000000000..aa4616c9be7 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnuacc.mf @@ -0,0 +1,28 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% define uppercase accents + +vnchar casename "grave accent"; +define_vnaccent(135, grave_); + +vnchar casename "acute accent"; +define_vnaccent(136, acute_); + +vnchar casename "circumflex accent"; +define_vnaccent(137, circumflex_); + +vnchar casename "tilde accent"; +define_vnaccent(138, tilde_); + +vnchar casename "dot accent"; +define_vnaccent(139, dot_); + +vnchar casename "breve accent"; +define_vnaccent(140, breve_); + +vnchar casename "hook accent"; +define_vnaccent(141, hook_); + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnuar.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnuar.mf new file mode 100644 index 00000000000..8f7aa111941 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnuar.mf @@ -0,0 +1,65 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman upper case "A" precomposed glyphs: +% Inclusion: +% A' A` A? A~ A. +% A( A(' A(` A(? A(~ A(. +% A^ A^' A^` A^? A^~ A^. + +begin_letter(a); + set_letter_dimens(a)( + 13u#, cap_height#, 0, + 0, + cap_serif_fit#, cap_serif_fit# + ); + numeric left_stem, right_stem, outer_jut, alpha; + right_stem = cap_stem - stem_corr; + left_stem = min(cap_hair if hefty: -3stem_corr fi, right_stem); + outer_jut = .8cap_jut; + x1l = w - x4r = l + letter_fit + outer_jut + .5u; + y1 = y4 = 0; + x2 - x1 = x4 - x3; + x3r = x2r + apex_corr; + y2 = y3 = h+apex_o + apex_oo; + alpha = diag_ratio(2, left_stem, y2 - y1, x4r - x1l - apex_corr); + penpos1(alpha*left_stem, 0); + penpos2(alpha*left_stem, 0); + penpos3(alpha*right_stem, 0); + penpos4(alpha*right_stem, 0); + z0 = whatever[z1r, z2r] = whatever[z3l, z4l]; + if y0 < h-cap_notch_cut: y0 := h - cap_notch_cut; + fill z0 + .5right{down} ... {z4 - z3}diag_end(3l, 4l, 1, 1, 4r, 3r) + -- diag_end(4r, 3r, 1, 1, 2l, 1l) -- diag_end(2l, 1l, 1, 1, 1r, 2r){z2 - z1} + ... {up}z0 + .5left -- cycle; % left and right diagonals + else: fill z0 -- diag_end(0, 4l, 1, 1, 4r, 3r) -- diag_end(4r, 3r, 1, 1, 2l, 1l) + -- diag_end(2l, 1l, 1, 1, 1r, 0) -- cycle; + fi % left and right diagonals + penpos5(whatever, angle(z2 - z1)); + z5 = whatever[z1, z2]; + penpos6(whatever, angle(z3 - z4)); + z6 = whatever[z3, z4]; + y6 = y5; + if hefty: y5r else: y5 fi =5/12y0; + y5r - y5l = y6r - y6l = cap_band; + penstroke z5e -- z6e; % bar line + if serifs: numeric inner_jut; + pickup tiny.nib; + prime_points_inside(1, 2); + prime_points_inside(4, 3); + if rt x1'r + cap_jut + .5u + 1<=lft x4'l - cap_jut: inner_jut = cap_jut; + else: rt x1'r + inner_jut + .5u + 1=lft x4'l - inner_jut; + fi + dish_serif(1', 2, a, 1/2, outer_jut, b, .6, inner_jut)(dark); % left serif + dish_serif(4', 3, c, 1/2, inner_jut, d, 1/3, outer_jut); + set_letter_join(a, max(x2, x3), 6.5u#); + else: + set_letter_join(a, x0, 6.5u#); + fi % right serif + penlabels(0, 1, 2, 3, 4, 5, 6); +end_pic; + +input vnacomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnucomp.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnucomp.mf new file mode 100644 index 00000000000..e2088689bde --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnucomp.mf @@ -0,0 +1,47 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% define [uU]-based accented letters + +vnchar casename "u with horn "; +define_vnchar_horn(u); + +if known gen_t5_supp: + let next = endinput; +else: + let next = relax; +fi % known gen_t5_supp +next; + +vnchar casename "u with acute"; +define_vnchar(u, acute_); + +vnchar casename "u with grave"; +define_vnchar(u, grave_); + +vnchar casename "u with hook"; +define_vnchar(u, hook_); + +vnchar casename "u with tilde"; +define_vnchar(u, tilde_); + +vnchar casename "u with dot"; +define_vnchar_dot(u); + +vnchar casename "u with horn and acute"; +define_vnchar_horn_ac(u, acute_); + +vnchar casename "u with horn and grave"; +define_vnchar_horn_ac(u, grave_); + +vnchar casename "u with horn and hook"; +define_vnchar_horn_ac(u, hook_); + +vnchar casename "u with horn and tilde"; +define_vnchar_horn_ac(u, tilde_); + +vnchar casename "u with horn and dot"; +define_vnchar_horn_dot(u); + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnudr.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnudr.mf new file mode 100644 index 00000000000..f1567638b3c --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnudr.mf @@ -0,0 +1,58 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman "D-bar" precomposed glyph: +% Inclusion: +% DD + +numeric bar_thickness#; +bar_thickness# := vair#; +define_whole_pixels(bar_thickness); + +vnchar casename "d with bar"; +beginchar(vn_code(d.bar_), 13.5u#, cap_height#, 0); + italcorr .7cap_height# * slant - .5u#; + adjust_fit(cap_serif_fit#, 0); + pickup tiny.nib; + pos1(cap_stem', 0); + pos2(cap_stem', 0); + lft x1l = lft x2l = hround max(2u, 3u - .5cap_stem'); + top y1 = h; + bot y2 = 0; + filldraw stroke z1e -- z2e; % stem + penpos3(cap_band, 90); + penpos4(cap_band, 90); + penpos5(cap_curve - stem_corr, 0); + penpos6(cap_band, -90); + penpos7(cap_band, -90); + z3r = top z1; + y4 = y3; + y5 = .51[y4, y6]; + y6 = y7; + z7r = bot z2; + x4 = x6 = .5w + .25u; + x5r = hround(w - u); + x4l := x6l := x4 - .25cap_curve; + fill stroke z3e .. pulled_arc.e(4, 5) & pulled_arc.e(5, 6) .. z7e;% lobe + if serifs: + nodish_serif(1, 2 ,a ,1/3, cap_jut, b, 1/3, .5cap_jut); % upper serif + nodish_serif(2, 1, c, 1/3, cap_jut, d, 1/3, .5cap_jut); % lower serif + fi + pos8(bar_thickness, 90); + pos9(bar_thickness, 90); + top y8r = top y9r = vround(y5 + .8bar_thickness) + eps; + if serifs: + lft x8 = hround(tiny.lft x2l - max(cap_jut, cap_hair)) - eps; + rt x9 = hround(tiny.rt x2r + max(cap_jut, cap_hair)) + eps; + else: + lft x8 = hround(tiny.lft x2l - .8vair) - eps; + rt x9 = hround(tiny.rt x2r + .8vair) + eps; + fi + filldraw stroke z8e -- z9e; % bar + penlabels(1, 2, 3, 4, 5, 6, 7, 8, 9); +endchar; + +endinput; + +% eof diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnuer.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnuer.mf new file mode 100644 index 00000000000..bda37a19646 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnuer.mf @@ -0,0 +1,72 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman upper case "E" precomposed glyphs: +% Inclusion: +% E' E` E? E~ E. +% E^ E^' E^` E^? E^~ E^. + +begin_letter(e); + set_letter_dimens(e)( + 12u# - width_adj#, cap_height#, 0, + cap_height#*slant - beak_jut# - .5u#, + cap_serif_fit#, 0 + ); + h := vround(h - stem_corr); + pickup tiny.nib; + pos1(cap_stem, 0); + pos2(cap_stem, 0); + lft x1l = lft x2l = hround max(2u, 3u - .5cap_stem); + top y1 = h; + bot y2 = 0; + filldraw stroke z1e -- z2e; % stem + pickup crisp.nib; + pos3(slab, 90); + pos4(hair, 0); + top y3r = h; + x3 = x1; + rt x4r = hround(w - u); + y4 = good.y(y3l - beak) - eps; + arm(3, 4, e, beak_darkness, beak_jut); % upper arm and beak + pos5(cap_bar, -90); + pos6(hair, 0); + top y5l = vround(.52[y2, y1] + .5cap_bar); + x5 = x1; + pos0(cap_bar, 90); + pos7(hair, 0); + z0 = z5; + x6 = x7; + y6 - y5l = y0l - y7; + if serifs: rt x6r = hround(w - 4.4u + .5hair); + y6 = good.y(y5l + .6beak) + eps; + rt x9r = hround(w - .5u); + else: rt x6r = hround(w - 1.5u); + y6 = y5l + eps; + rt x9r = hround(w - .75u); + fi + arm(5, 6, f, beak_darkness, 0); + arm(0, 7, g, beak_darkness, 0); % middle arm and serif + pos8(slab if not serifs: +2stem_corr fi, -90); + pos9(hair, 0); + bot y8r = 0; + x8 = x2; + y9 = good.y(y8l + 7/6beak) + eps; + arm(8, 9, h, beak_darkness, 1.5beak_jut); % lower arm and beak + if serifs: nodish_serif(1, 2, a, 1/3, cap_jut, b, 1/3, .5cap_jut); % upper serif + nodish_serif(2, 1, c, 1/3, cap_jut, d, 1/3, .5cap_jut); + fi % lower serif + math_fit(0, .5ic#); + if serifs: + set_letter_join(e, .5[x.a1, max(x4r, x9r)], .5w#); +% set_letter_join(e, x.f2, .5w#); +% set_letter_join(e.grave_, x.e2, .5w#); + else: + set_letter_join(e, .5[x3, x4], .5w#); + fi + penlabels(0, 1, 2, 3, 4, 5, 6, 7, 8, 9); +end_letter; + +input vnecomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnuir.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnuir.mf new file mode 100644 index 00000000000..443f3d87d12 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnuir.mf @@ -0,0 +1,32 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman upper case "I" precomposed glyphs: +% Inclusion: +% I' I` I? I~ I. + +begin_letter(i); + set_letter_dimens(i)( + max(6u#, 4u# + cap_stem#), cap_height#, 0, + cap_height#*slant - .25u#, + cap_serif_fit#, cap_serif_fit# + ); + pickup tiny.nib; + pos1(cap_stem, 0); + pos2(cap_stem, 0); + lft x1l = lft x2l = hround(.5w - .5cap_stem); + top y1 = h; + bot y2 = 0; + filldraw stroke z1e -- z2e; % stem + if serifs: dish_serif(1, 2, a, 1/3, 1.05cap_jut, b, 1/3, 1.05cap_jut); % upper serif + dish_serif(2, 1, c, 1/3, 1.05cap_jut, d, 1/3, 1.05cap_jut); + fi % lower serif + math_fit(0, .5ic#); + set_letter_join(i, x1, .5w#); + penlabels(1, 2); +end_letter; + +input vnicomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnuor.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnuor.mf new file mode 100644 index 00000000000..be36887ae3d --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnuor.mf @@ -0,0 +1,44 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman upper case "O" precomposed glyphs: +% Inclusion: +% O' O` O? O~ O. +% O+ O+' O+` O+? O+~ O+. + +begin_letter(o); + set_letter_dimens(o)( + 14u# - width_adj#, cap_height#, 0, + .7cap_height#*slant - .5u#, + 0, 0 + ); + penpos1(vair', 90); + penpos3(vround(vair + 1.5vair_corr), -90); + penpos2(cap_curve, 180); + penpos4(cap_curve, 0); + if monospace: x2r = hround 1.5u; + interim superness := sqrt superness; % make |"O"|, not |"0"| + else: x2r = hround u; + fi + x4r = w-x2r; + x1 = x3 = .5w; + y1r = h+o; + y3r=-o; + y2 = y4 = .5h - vair_corr; + y2l := y4l := .52h; + penstroke pulled_super_arc.e(1, 2)(.5superpull) + & pulled_super_arc.e(2, 3)(.5superpull) + & pulled_super_arc.e(3, 4)(.5superpull) + & pulled_super_arc.e(4, 1)(.5superpull) & cycle; % bowl + math_fit( - .3cap_height#*slant - .5u#, ic# - .5u#); + penlabels(1, 2, 3, 4); + set_letter_join(o, x1, .5w#); + set_letter_join(o.horn_, x1 + .1dot_size, .5w# + .1dot_size#); + set_horn_join(o, pulled_super_arc.l(4, 1)(.5superpull), + pulled_super_arc.r(4, 1)(.5superpull)); +end_letter; + +input vnocomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnuur.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnuur.mf new file mode 100644 index 00000000000..072afda9898 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnuur.mf @@ -0,0 +1,94 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman upper case "U" precomposed glyphs: +% Inclusion: +% U' U` U? U~ U. +% U+ U+' U+` U+? U+~ U+. + +begin_letter(u); + set_letter_dimens(u)( + 13u# + .5width_adj#, cap_height#, 0, + cap_height#*slant - cap_serif_fit# + cap_jut# - 2.5u# + min(.5cap_stem#, u#), + if monospace: + cap_serif_fit# - .5u#, cap_serif_fit# - .5u# + else: + cap_serif_fit#, cap_serif_fit# + fi + ); + pickup tiny.nib; + pos1(cap_stem, 0); + pos2(cap_stem, 0); + pos2'(cap_stem, 180); + z2' = z2; + pos3(cap_band, -90); + pos4(cap_hair, 0); + pos5(cap_hair, 0); + x1 = x2; + x3 = .5[x1, x5]; + x4 = x5; + x1l = w-x5r; + top y1 = top y5 = h; + y2 = y4 = 1/3h; + bot y3r=-o; + lft x1l = hround max(2u, 3u - .5cap_stem); + filldraw stroke z1e -- z2e; % left stem + filldraw stroke pulled_arc.e(2', 3) + & pulled_arc.e(3, 4)&z4e -- z5e; % arc and right stem + if serifs: dish_serif(1, 2, a, 1/3, cap_jut, b, 1/3, cap_jut); % left serif + dish_serif(5, 4, c, 1/2, cap_jut, d, 1/2, cap_jut)(dark); + fi % right serif + math_fit( - cap_serif_fit# - .3cap_height#*slant - min(cap_height#*slant, u#), + max(.5ic# - .5u#, 0)); + set_letter_join(u, x3, .5w#); + set_letter_join(u.dot_, x3 + .5u, .5w# + .5u#); + set_horn_join(u, z4 -- z5, z4 -- z5); + penlabels(1, 2, 3, 4, 5); +end_letter; + +% for accented capital u with horn we need another letter "U" without right +% part of the right serif, however all calculations are done via dimensions of +% the above letter to make the macros simply + +begin_letter(Uhorn); + set_letter_dimens(Uhorn)( + 13u# + .5width_adj#, cap_height#, 0, + cap_height#*slant - cap_serif_fit# + cap_jut# - 2.5u# + min(.5cap_stem#, u#), + if monospace: + cap_serif_fit# - .5u#, cap_serif_fit# - .5u# + else: + cap_serif_fit#, cap_serif_fit# + fi + ); + pickup tiny.nib; + pos1(cap_stem, 0); + pos2(cap_stem, 0); + pos2'(cap_stem, 180); + z2' = z2; + pos3(cap_band, -90); + pos4(cap_hair, 0); + pos5(cap_hair, 0); + x1 = x2; + x3 = .5[x1, x5]; + x4 = x5; + x1l = w - x5r; + top y1 = top y5 = h; + y2 = y4 = 1/3h; + bot y3r = -o; + lft x1l = hround max(2u, 3u - .5cap_stem); + filldraw stroke z1e -- z2e; % left stem + filldraw stroke pulled_arc.e(2', 3) + & pulled_arc.e(3, 4)&z4e -- z5e; % arc and right stem + if serifs: dish_serif(1, 2, a, 1/3, cap_jut, b, 1/3, cap_jut); % left serif + dish_serif(5, 4, c, 1/2, cap_jut, d, 1/2, 0)(dark); + fi % right serif + math_fit( - cap_serif_fit# - .3cap_height#*slant - min(cap_height#*slant, u#), + max(.5ic# - .5u#, 0)); + set_letter_join(u.horn_, x3 + .2dot_size, .5w# + .2dot_size#); + penlabels(1, 2, 3, 4, 5); +end_letter; + +input vnucomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnuyr.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnuyr.mf new file mode 100644 index 00000000000..9e95ab33773 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnuyr.mf @@ -0,0 +1,63 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% Computer Modern Roman upper case "Y" precomposed glyphs: +% Inclusion: +% Y' Y` Y? Y~ Y. + +begin_letter(y); + set_letter_dimens(y)( + 13u#, cap_height#, 0, + cap_height#*slant + .45u#, + cap_serif_fit#, cap_serif_fit# + ); + numeric left_stem, right_stem, outer_jut, dy, alpha; + left_stem = cap_stem - stem_corr; + right_stem = min(cap_hair if hefty: -2stem_corr fi, left_stem); + outer_jut = .75cap_jut; + x1l = w - x4r = l + letter_fit + outer_jut + .05u; + x2l = x5l = hround(.5w - .5left_stem); + x3r = x5r; + y1 = y4 = h; + y2 = y3 = y5 = .4h; + dy = y1 - y2; + alpha = ((x2l - x1l) ++ dy)/dy; + penpos1(alpha*left_stem, 0); + penpos2(alpha*left_stem, 0); + penpos3(alpha*right_stem, 0); + penpos4(alpha*right_stem, 0); + penpos5(left_stem, 0); + penpos6(left_stem, 0); + x5 = x6; + y6 = 0; + z0 = whatever[z1r, z2r] = whatever[z3l, z4l]; + if y0 > y2 + cap_notch_cut: y0 := y2 + cap_notch_cut; + fill z0 + .5right{up} ... {z4 - z3}diag_end(3l, 4l, 1, 1, 4r, 3r) -- z5r + -- diag_end(5r, 6r, 1, 1, 6l, 5l) -- z5l -- diag_end(2l, 1l, 1, 1, 1r, 2r){z2 - z1} + ... {down}z0 + .5left -- cycle; % diagonals and stem + else: fill z0 -- diag_end(0, 4l, 1, 1, 4r, 3r) -- z5r + -- diag_end(5r, 6r, 1, 1, 6l, 5l) -- z5l + -- diag_end(2l, 1l, 1, 1, 1r, 0) -- cycle; + fi % diagonals and stem + if serifs: numeric inner_jut; + pickup tiny.nib; + prime_points_inside(1, 2); + prime_points_inside(4, 3); + prime_points_inside(6, 5); + if rt x1'r + cap_jut + .5u + 1<=lft x4'l - cap_jut: inner_jut = cap_jut; + else: rt x1'r + inner_jut + .5u + 1=lft x4'l - inner_jut; + fi + dish_serif(1', 2, a, 1/3, outer_jut, b, 1/2, inner_jut); % upper left serif + dish_serif(4', 3, c, .6, inner_jut, d, 1/2, outer_jut)(dark); % upper right serif + dish_serif(6', 5, e, 1/3, cap_jut, f, 1/3, cap_jut); + fi % lower serif + math_fit(.5u# - cap_height#*slant, ic# - 4u#); + set_letter_join(y, x6 if serifs: + .3max(0, left_stem - right_stem) fi, + .5w#); + penlabels(0, 1, 2, 3, 4, 5, 6); +end_letter; + +input vnycomp; + +endinput; diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnvtt10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnvtt10.mf new file mode 100644 index 00000000000..3b70f64df25 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnvtt10.mf @@ -0,0 +1,8 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +gensize:=10; +input vnbase; +input ecvt; +bye. diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnycomp.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnycomp.mf new file mode 100644 index 00000000000..98ca2558fc2 --- /dev/null +++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnycomp.mf @@ -0,0 +1,22 @@ +% Copyright 2003-2005 Han The Thanh . +% This file is part of vntex. License: LPPL, version 1.3 or newer, +% according to http://www.latex-project.org/lppl.txt + +% define [yY]-based accented letters + +vnchar casename "y with acute"; +define_vnchar(y, acute_); + +vnchar casename "y with grave"; +define_vnchar(y, grave_); + +vnchar casename "y with hook"; +define_vnchar(y, hook_); + +vnchar casename "y with tilde"; +define_vnchar(y, tilde_); + +vnchar casename "y with dot"; +define_vnchar_dot(y); + +endinput; -- cgit v1.2.3