%% accents.mf %% Copyright 2005 Laurie Field % % This work is LFB, version 1.0. % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3 % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.3 or later is part of all distributions of LaTeX % version 2003/12/01 or later. % % This work has the LPPL maintenance status "maintained". % % This Current Maintainer of this work is Laurie Field. % % This work consists of the files: % % example.tex % lfbacc.tex % % accents.mf % alpha.mf % beta.mf % capitals.mf % charmap.mf % delta.mf % epsilon.mf % eta.mf % gamma.mf % iota.mf % kappa.mf % khi.mf % lambda.mf % lfb.mf % lfb5.mf % lfb6.mf % lfb7.mf % lfb8.mf % lfb9.mf % lfb10.mf % lfb11.mf % lfb12.mf % lfbb5.mf % lfbb6.mf % lfbb7.mf % lfbb8.mf % lfbb9.mf % lfbb10.mf % lfbb11.mf % lfbb12.mf % ligature.mf % mu.mf % nu.mf % omega.mf % omikron.mf % others.mf % phi.mf % pi.mf % psi.mf % rho.mf % serifs.mf % sigma.mf % sigmafin.mf % tau.mf % theta.mf % upsilon.mf % xi.mf % zeta.mf % % and the derived files: % % lfb5.tfm % lfb6.tfm % lfb7.tfm % lfb8.tfm % lfb9.tfm % lfb10.tfm % lfb11.tfm % lfb12.tfm % lfbb5.tfm % lfbb6.tfm % lfbb7.tfm % lfbb8.tfm % lfbb9.tfm % lfbb10.tfm % lfbb11.tfm % lfbb12.tfm % % lfb5.600pk % lfb6.600pk % lfb7.600pk % lfb8.600pk % lfb9.600pk % lfb10.600pk % lfb11.600pk % lfb12.600pk % lfbb5.600pk % lfbb6.600pk % lfbb7.600pk % lfbb8.600pk % lfbb9.600pk % lfbb10.600pk % lfbb11.600pk % lfbb12.600pk % % Every character that wishes to use these accents should % define accent_centre (numeric) to be the x coordinate % around which the accent should be centred. def acc_smooth = penpos101(thick, 90); penpos102(medthin, 0); penpos103(thin, -90); z100=z101+(4/3(z101l-z101) rotated -60); y103r=x_height+.85u; y102=y103l+.85u; y101l=y102+.7u; x100=accent_centre-1/2breathingwidth; x102r=x100+breathingwidth; x103=x100+1/3breathingwidth; fill z100..z101l..z102l..{dir -150}z103l --z103r{dir 30}..z102r..{left}z101r..cycle; enddef; def acc_rough = penpos111(thick, -90); penpos112(medthin, 0); penpos113(thin, 90); z110=z111+(4/3(z111l-z111) rotated -120); y113l=x_height+.85u; y112=y113r+.85u; y111r=y112+.7u; x110=x112l+breathingwidth; x112l=accent_centre-1/2breathingwidth; x113=x112l+2/3breathingwidth; fill z110..z111l..z112l..{dir -30}z113l --z113r{dir 150}..z112r..{right}z111r..cycle; enddef; def acc_acute = penpos121(thick, acuteangle-90); penpos122(thin, acuteangle-90); z120=z121+((z121l-z121) rotated -90); z123=z122+((z122l-z122) rotated 90); y123=x_height+.85u; y120=y123+1.55u+thick+thin; x122=accent_centre; z310=dir acuteangle; (x121-x122)/x310=(y121-y122)/y310; fill z120..z121l---z122l..z123..z122r---z121r..cycle; enddef; def acc_grave = penpos131(thick, graveangle-90); penpos132(thin, graveangle-90); z130=z131+((z131l-z131) rotated -90); z133=z132+((z132l-z132) rotated 90); y133=x_height+.85u; y130=y133+1.55u+thick+thin; x132=accent_centre; z310=dir graveangle; (x131-x132)/x310=(y131-y132)/y310; fill z130..z131l---z132l..z133..z132r---z131r..cycle; enddef; def acc_circ = penpos141(thin, 80); penpos142(medium, 90); penpos143(medium, 90); penpos144(thin, 80); y141l=x_height+thick; y143l=y141l+tiny; y142l=y141l+medium; y144r=y142r+tiny; x141=accent_centre-1/2circwidth; x144=accent_centre+1/2circwidth; x142=1/4[x141, x144]; x143=3/4[x141, x144]; penstroke z141e..z142e..z143e..z144e; enddef; def mini_circ = penpos141(thin, 80); penpos142(medium, 90); penpos143(medium, 90); penpos144(thin, 80); y141l=x_height+4u; y143l=y141l+tiny; y142l=y141l+medium; y144r=y142r+tiny; x141=accent_centre-1/2circwidth; x144=accent_centre+1/2circwidth; x142=1/4[x141, x144]; x143=3/4[x141, x144]; penstroke z141e..z142e..z143e..z144e; enddef; def acc_smoothacute = accent_centre:=accent_centre-breathingwidth/2-tiny; acc_smooth; accent_centre:=accent_centre+breathingwidth/2+medium; acc_acute; enddef; def acc_smoothgrave = accent_centre:=accent_centre-breathingwidth/2-tiny; acc_smooth; accent_centre:=accent_centre+breathingwidth/2+2u; penpos131(thick, graveangle-100); penpos132(thin, graveangle-100); z130=z131+((z131l-z131) rotated -90); z133=z132+((z132l-z132) rotated 90); y133=x_height+.85u; y130=y133+1.55u+thick+thin; x132=accent_centre; z310=dir (graveangle-10); (x131-x132)/x310=(y131-y132)/y310; fill z130..z131l---z132l..z133..z132r---z131r..cycle; enddef; def acc_smoothcirc = numeric rc; rc := 5/6; penpos101(rc*thick, 90); penpos102(rc*medthin, 0); penpos103(rc*thin, -90); z100=z101+(4/3(z101l-z101) rotated -60); y103r=x_height+.85u; y102=y103l+rc*.85u; y101l=y102+rc*.7u; x100=accent_centre-rc*1/2breathingwidth; x102r=x100+rc*breathingwidth; x103=x100+rc*1/3breathingwidth; fill z100..z101l..z102l..{dir -150}z103l --z103r{dir 30}..z102r..{left}z101r..cycle; mini_circ; enddef; def acc_roughacute = accent_centre:=accent_centre-breathingwidth/2-tiny; acc_rough; accent_centre:=accent_centre+breathingwidth/2+medium; acc_acute; enddef; def acc_roughgrave = accent_centre:=accent_centre-breathingwidth/2-tiny; acc_rough; accent_centre:=accent_centre+breathingwidth/2+2u; penpos131(thick, graveangle-100); penpos132(thin, graveangle-100); z130=z131+((z131l-z131) rotated -90); z133=z132+((z132l-z132) rotated 90); y133=x_height+.85u; y130=y133+1.55u+thick+thin; x132=accent_centre; z310=dir (graveangle-10); (x131-x132)/x310=(y131-y132)/y310; fill z130..z131l---z132l..z133..z132r---z131r..cycle; enddef; def acc_roughcirc = numeric rc; rc := 5/6; penpos111(rc*thick, -90); penpos112(rc*medthin, 0); penpos113(rc*thin, 90); z110=z111+(4/3(z111l-z111) rotated -120); y113l=x_height+.85u; y112=y113r+rc*.85u; y111r=y112+rc*.7u; x110=x112l+rc*breathingwidth; x112l=accent_centre-rc*1/2breathingwidth; x113=x112l+rc*2/3breathingwidth; fill z110..z111l..z112l..{dir -30}z113l --z113r{dir 150}..z112r..{right}z111r..cycle; mini_circ; enddef; def acc_diaer = numeric diameter; diameter=6/7quotewidth; x151 = x152+1/2diameter = x153 = x154-1/2diameter = accent_centre - 1.5u; x155 = x156+1/2diameter = x157 = x158-1/2diameter = accent_centre + 1.5u; y151-1/2diameter = y152 = y153+1/2diameter = y154 = y155-1/2diameter = y156 = y157+1/2diameter = y158 = x_height+2u; fill z151..z152..z153..z154..cycle; fill z155..z156..z157..z158..cycle; enddef; def acc_diaeracute = numeric diameter; diameter=6/7quotewidth; x151 = x152+1/2diameter = x153 = x154-1/2diameter = accent_centre - 2u; x155 = x156+1/2diameter = x157 = x158-1/2diameter = accent_centre + 2u; y151-1/2diameter = y152 = y153+1/2diameter = y154 = y155-1/2diameter = y156 = y157+1/2diameter = y158 = x_height+2u; fill z151..z152..z153..z154..cycle; fill z155..z156..z157..z158..cycle; penpos121(thick, acuteangle-90); penpos122(thin, acuteangle-90); z120=z121+((z121l-z121) rotated -90); z123=z122+((z122l-z122) rotated 90); y123=x_height+.85u; y120=y123+1.55u+thick+thin; x122=accent_centre-.5u; z310=dir acuteangle; (x121-x122)/x310=(y121-y122)/y310; fill z120..z121l---z122l..z123..z122r---z121r..cycle; enddef; def acc_diaergrave = numeric diameter; diameter=quotewidth; x151 = x152+1/2diameter = x153 = x154-1/2diameter = accent_centre - 2u; x155 = x156+1/2diameter = x157 = x158-1/2diameter = accent_centre + 2u; y151-1/2diameter = y152 = y153+1/2diameter = y154 = y155-1/2diameter = y156 = y157+1/2diameter = y158 = x_height+2u; fill z151..z152..z153..z154..cycle; fill z155..z156..z157..z158..cycle; penpos131(thick, graveangle-90); penpos132(thin, graveangle-90); z130=z131+((z131l-z131) rotated -90); z133=z132+((z132l-z132) rotated 90); y133=x_height+.85u; y130=y133+1.55u+thick+thin; x132=accent_centre+.5u; z310=dir graveangle; (x131-x132)/x310=(y131-y132)/y310; fill z130..z131l---z132l..z133..z132r---z131r..cycle; enddef; def acc_breve = penpos161(thin, 0); penpos162(medium, 90); penpos163(thin, 180); y161=y163=ascender; y162l=x_height+1u; x161l=x162-1/2circwidth; x163l=x162+1/2circwidth; x162=accent_centre; penstroke z161e{down}..z162e..{up}z163e; enddef; def acc_macron = penpos171(medium, 90); penpos172(medium, 90); y171l=y172l=x_height+1.2u; x171=accent_centre-1/2circwidth; x172=accent_centre+1/2circwidth; penstroke z171e--z172e; enddef; def acc_iotasub = penpos181(medium, 0); penpos182(medium, 0); penpos183(medthin, 90); x181=x182=accent_centre; x183=x182r+tiny; y181=0-medthin; y182=y183r+tiny; y183l=0-descender-thin; z184=z183+((z183l-z183) rotated 120); fill z181l---z182l..z183l..z184..z183r..z182r---z181r--cycle; enddef; width#:=breathingwidth#; extra#:=2letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width; acc_smooth; enddef; beginchar(smooth, width#+extra#, ascender#, 0); gen_letter; penlabels(100,101,102,103); endchar; width#:=breathingwidth#; extra#:=2letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width; acc_rough; enddef; beginchar(rough, width#+extra#, ascender#, 0); gen_letter; penlabels(110,111,112,113); endchar; width#:=3u#; extra#:=1letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width-1u; acc_acute; enddef; beginchar(acute, width#+extra#, ascender#, 0); gen_letter; penlabels(120,121,122,123); endchar; width#:=3u#; extra#:=1letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width; acc_grave; enddef; beginchar(grave, width#+extra#, ascender#, 0); gen_letter; penlabels(130,131,132,133); endchar; width#:=circwidth#; extra#:=1letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width; acc_circ; enddef; beginchar(circ, width#+extra#, ascender#, 0); gen_letter; penlabels(140,141,142,143,144); endchar; width#:=1.5u#+2thin#+breathingwidth#; extra#:=2letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width; acc_smoothacute; enddef; beginchar(smoothacute, width#+extra#, ascender#, 0); gen_letter; endchar; width#:=1.5u#+2thin#+breathingwidth#; extra#:=2letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width; acc_smoothgrave; enddef; beginchar(smoothgrave, width#+extra#, ascender#, 0); gen_letter; endchar; width#:=3/4circwidth#; extra#:=1letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width; acc_smoothcirc; enddef; beginchar(smoothcirc, width#+extra#, ascender#, 0); gen_letter; endchar; width#:=1.5u#+2thin#+breathingwidth#; extra#:=2letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width; acc_roughacute; enddef; beginchar(roughacute, width#+extra#, ascender#, 0); gen_letter; endchar; width#:=1.5u#+2thin#+breathingwidth#; extra#:=2letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width; acc_roughgrave; enddef; beginchar(roughgrave, width#+extra#, ascender#, 0); gen_letter; endchar; width#:=3/4circwidth#; extra#:=1letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width; acc_roughcirc; enddef; beginchar(roughcirc, width#+extra#, ascender#, 0); gen_letter; endchar; width#:=quotewidth#+3u#; extra#:=1letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width; acc_diaer; enddef; beginchar(diaer, width#+extra#, ascender#, 0); gen_letter; penlabels(151,152,153,154,155,156,157,158); endchar; width#:=quotewidth#+4u#; extra#:=1letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width; acc_diaeracute; enddef; beginchar(diaeracute, width#+extra#, ascender#, 0); gen_letter; endchar; width#:=quotewidth#+4u#; extra#:=1letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width; acc_diaergrave; enddef; beginchar(diaergrave, width#+extra#, ascender#, 0); gen_letter; endchar; width#:=circwidth#; extra#:=1letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width; acc_breve; enddef; beginchar(breve, width#+extra#, ascender#-macronbreveshorter#, 0); gen_letter; penlabels(161,162,163); endchar; width#:=circwidth#; extra#:=1letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width; acc_macron; enddef; beginchar(macron, width#+extra#, ascender#-macronbreveshorter#, 0); gen_letter; penlabels(171,172); endchar; width#:=2u#; extra#:=1letterspace#; define_pixels(width, extra); def gen_letter = numeric accent_centre; accent_centre=1/2width; acc_iotasub; enddef; beginchar(iotasub, width#+extra#, 0, descender#); gen_letter; penlabels(181,182,183,184); endchar;