diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/fetamont/ffmbase.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/public/fetamont/ffmbase.mf | 315 |
1 files changed, 38 insertions, 277 deletions
diff --git a/Master/texmf-dist/fonts/source/public/fetamont/ffmbase.mf b/Master/texmf-dist/fonts/source/public/fetamont/ffmbase.mf index 8eb2e809376..d4a74796d3a 100644 --- a/Master/texmf-dist/fonts/source/public/fetamont/ffmbase.mf +++ b/Master/texmf-dist/fonts/source/public/fetamont/ffmbase.mf @@ -629,17 +629,31 @@ enddef; % chain two chars like "f" and "l" to "fl" def ffmchainedchar(expr namea,nameb,namec) = beginchar( + enc(namea)+code_offset, + charwidths_[enc(nameb)+code_offset] + +charwidths_[enc(namec)+code_offset], + max(charheights_[enc(nameb)+code_offset], + +charheights_[enc(namec)+code_offset]), + max(chardepths_[enc(nameb)+code_offset], + +chardepths_[enc(namec)]+code_offset) + ); + charic:=charitalcorrs_[enc(nameb)+code_offset]; + addto currentpicture also charpictures_[enc(nameb)+code_offset]; + addto currentpicture also charpictures_[enc(namec)+code_offset] + shifted (charwidths_[enc(nameb)+code_offset]*hppp,0); + endchar; +enddef; + +% copy a letter nameb to namea +def ffmcopiedchar(expr namea,nameb) = + beginchar( enc(namea), - charwidths_[enc(nameb)] - +charwidths_[enc(namec)], - max(charheights_[enc(nameb)], - +charheights_[enc(namec)]), - max(chardepths_[enc(nameb)], - +chardepths_[enc(namec)]) + charwidths_[enc(nameb)], + charheights_[enc(nameb)], + chardepths_[enc(nameb)] ); charic:=charitalcorrs_[enc(nameb)]; addto currentpicture also charpictures_[enc(nameb)]; - addto currentpicture also charpictures_[enc(namec)] shifted (charwidths_[enc(nameb)]*hppp,0); endchar; enddef; @@ -675,173 +689,12 @@ def dotcircle(expr zi,zj) = zi..zj..cycle & zi enddef; -% accents -input ffmchar_acute -input ffmchar_grave -input ffmchar_dieresis -input ffmchar_circumflex -input ffmchar_tilde -input ffmchar_hungarumlaut -input ffmchar_ring -input ffmchar_caron -input ffmchar_breve -input ffmchar_macron -input ffmchar_dotaccent -input ffmchar_cedilla -input ffmchar_ogonek -% punctation -input ffmchar_visiblespace -input ffmchar_period -input ffmchar_colon -input ffmchar_comma -input ffmchar_semicolon -input ffmchar_exclam -input ffmchar_question -input ffmchar_parenleft -input ffmchar_parenright -input ffmchar_hyphen -input ffmchar_emdash -input ffmchar_endash -input ffmchar_cwm -input ffmchar_quotedbl -input ffmchar_quoteleft -input ffmchar_quoteright -input ffmchar_quotedblleft -input ffmchar_quotedblright -input ffmchar_quotesinglbase -input ffmchar_quotedblbase -input ffmchar_guilsinglleft -input ffmchar_guilsinglright -input ffmchar_guillemotleft -input ffmchar_guillemotright -input ffmchar_percent -input ffmchar_perthousandzero -input ffmchar_slash -input ffmchar_plus -input ffmchar_equal -input ffmchar_numbersign -input ffmchar_dollar -input ffmchar_ampersand -input ffmchar_asterisk -input ffmchar_less -input ffmchar_greater -input ffmchar_at -input ffmchar_bracketleft -input ffmchar_backslash -input ffmchar_bracketright -input ffmchar_asciicircum -input ffmchar_underscore -input ffmchar_braceleft -input ffmchar_bar -input ffmchar_braceright -input ffmchar_asciitilde -input ffmchar_dash -input ffmchar_section -input ffmchar_exclamdown -input ffmchar_questiondown -input ffmchar_sterling -% uppercase letters -input ffmchar_A -input ffmchar_AE -input ffmchar_B -input ffmchar_C -input ffmchar_D -input ffmchar_Eth -input ffmchar_E -input ffmchar_F -input ffmchar_G -input ffmchar_H -input ffmchar_I -input ffmchar_J -input ffmchar_K -input ffmchar_L -input ffmchar_Lslash -input ffmchar_M -input ffmchar_N -input ffmchar_Eng -input ffmchar_O -input ffmchar_OE -input ffmchar_P -input ffmchar_Thorn -input ffmchar_Q -input ffmchar_R -input ffmchar_S -input ffmchar_Germandbls -input ffmchar_T -input ffmchar_U -input ffmchar_V -input ffmchar_W -input ffmchar_X -input ffmchar_Y -input ffmchar_Z -% chained uppercase letters -input ffmchar_IJ -% combined uppercase letters -input ffmchar_Aacute -input ffmchar_Agrave -input ffmchar_Adieresis -input ffmchar_Acircumflex -input ffmchar_Atilde -input ffmchar_Aring -input ffmchar_Abreve -input ffmchar_Aogonek -input ffmchar_Cacute -input ffmchar_Ccaron -input ffmchar_Ccedilla -input ffmchar_Dcaron -input ffmchar_Eacute -input ffmchar_Egrave -input ffmchar_Edieresis -input ffmchar_Ecircumflex -input ffmchar_Ecaron -input ffmchar_Eogonek -input ffmchar_Gbreve -input ffmchar_Iacute -input ffmchar_Igrave -input ffmchar_Idieresis -input ffmchar_Icircumflex -input ffmchar_Idotaccent -input ffmchar_Lacute -input ffmchar_Lcaron -input ffmchar_Nacute -input ffmchar_Ntilde -input ffmchar_Ncaron -input ffmchar_Oacute -input ffmchar_Ograve -input ffmchar_Odieresis -input ffmchar_Ocircumflex -input ffmchar_Otilde -input ffmchar_Ohungarumlaut -input ffmchar_Oslash -input ffmchar_Racute -input ffmchar_Rcaron -input ffmchar_Sacute -input ffmchar_Scaron -input ffmchar_Scedilla -input ffmchar_Tcaron -input ffmchar_Tcedilla -input ffmchar_Uacute -input ffmchar_Ugrave -input ffmchar_Udieresis -input ffmchar_Ucircumflex -input ffmchar_Uhungarumlaut -input ffmchar_Uring -input ffmchar_Yacute -input ffmchar_Ydieresis -input ffmchar_Zacute -input ffmchar_Zcaron -input ffmchar_Zdotaccent -% digits -input ffmchar_zero -input ffmchar_one -input ffmchar_two -input ffmchar_three -input ffmchar_four -input ffmchar_five -input ffmchar_six -input ffmchar_seven -input ffmchar_eight -input ffmchar_nine +% general letters with no lowercase counterpart +input ffmchars_nonscalable +% uppercase with lowercase counterpart +input ffmchars_scalable +% uppercase with no lowercase counterpart +ffmcombinedchar("Idotaccent","I","dotaccent","top",ht#+acc_ht#,0); % now try again with lowercase settings ht#:=x_ht#; % new characters height (for lowercase) @@ -849,116 +702,24 @@ u#:=.9u#; % new unit width barheight#:=.5x_ht#; % new height of bar lines (for lowercase) define_pixels(u); define_good_y_pixels(barheight); - code_offset:=ASCII"a" - ASCII"A"; -% majuscules (in lowercase positions) -input ffmchar_A -input ffmchar_AE -input ffmchar_B -input ffmchar_C -input ffmchar_D -input ffmchar_Eth -input ffmchar_E -input ffmchar_F -input ffmchar_G -input ffmchar_H -input ffmchar_I -input ffmchar_J -input ffmchar_K -input ffmchar_L -input ffmchar_Lslash -input ffmchar_M -input ffmchar_N -input ffmchar_Eng -input ffmchar_O -input ffmchar_OE -input ffmchar_P -input ffmchar_Thorn -input ffmchar_Q -input ffmchar_R -input ffmchar_S -input ffmchar_Germandbls -input ffmchar_T -input ffmchar_U -input ffmchar_V -input ffmchar_W -input ffmchar_X -input ffmchar_Y -input ffmchar_Z -% chained lowercase letters -input ffmchar_ff -input ffmchar_fi -input ffmchar_fl -input ffmchar_ffi -input ffmchar_ffl -input ffmchar_ijlower -% combined lowercase letters -input ffmchar_Aacute -input ffmchar_Agrave -input ffmchar_Adieresis -input ffmchar_Acircumflex -input ffmchar_Atilde -input ffmchar_Aring -input ffmchar_Abreve -input ffmchar_Aogonek -input ffmchar_Cacute -input ffmchar_Ccaron -input ffmchar_Ccedilla -input ffmchar_Dcaron -input ffmchar_Eacute -input ffmchar_Egrave -input ffmchar_Edieresis -input ffmchar_Ecircumflex -input ffmchar_Ecaron -input ffmchar_Eogonek -input ffmchar_Gbreve -input ffmchar_Iacute -input ffmchar_Igrave -input ffmchar_Idieresis -input ffmchar_Icircumflex -input ffmchar_Lacute -input ffmchar_Lcaron -input ffmchar_Nacute -input ffmchar_Ntilde -input ffmchar_Ncaron -input ffmchar_Oacute -input ffmchar_Ograve -input ffmchar_Odieresis -input ffmchar_Ocircumflex -input ffmchar_Otilde -input ffmchar_Ohungarumlaut -input ffmchar_Oslash -input ffmchar_Racute -input ffmchar_Rcaron -input ffmchar_Sacute -input ffmchar_Scaron -input ffmchar_Scedilla -input ffmchar_Tcaron -input ffmchar_Tcedilla -input ffmchar_Uacute -input ffmchar_Ugrave -input ffmchar_Udieresis -input ffmchar_Ucircumflex -input ffmchar_Uhungarumlaut -input ffmchar_Uring -input ffmchar_Yacute -input ffmchar_Ydieresis -input ffmchar_Zacute -input ffmchar_Zcaron -input ffmchar_Zdotaccent -% the dotless section (dotlessi, dotlessj) -code_offset:=-48; -input ffmchar_I -input ffmchar_J -% dstroke is here a smaller variant of Eth -code_offset:=-50; -input ffmchar_Eth +input ffmchars_scalable % restore the most important things code_offset:=0; u#:=u#/.9; define_pixels(u); + +ffmcopiedchar("dotlessi","i"); +ffmcopiedchar("dotlessj","j"); +ffmcopiedchar("dcroat","eth"); +ffmchainedchar("ff","f","f"); +ffmchainedchar("fi","f","i"); +ffmchainedchar("fl","f","l"); +ffmchainedchar("ffi","ff","i"); +ffmchainedchar("ffl","ff","l"); + % kernings numeric kernclassesf_[][], % list of kerning classes (first position) kernclassess_[][], % list of kerning classes (second position) |