[Fontinst] Problem generating OT2 Minion Cyrillic

Vladimir Volovich vvv at vsu.ru
Tue Sep 2 21:18:48 CEST 2003

"UD" == Ulrich Dirr writes:

 >> please revert definitions of xheight, etc in cyrillic.mtx to
 >> original definitions, and add the line "\unfakable{cedilla}"

 UD> Ok. In which case should cyrillic.mtx contain the latin def's and
 UD> in which case the cyr ones?

normally you shouldn't change cyrillic.mtx; the default definitions
for xheight and a few other parameters refer to latin glyphs which are
normally present in cyrillic fonts.

 UD> What is the reason why I should include \unfakable{cedilla}?

that's because cedilla is used to fake some glyphs, and in case it's
absent in your font you'll get an error if there's no that command.

 UD> Ok. But there are still some questions.  (1) Is it correct that I
 UD> still need the map entry reencoding to ot2?  (I presume this;
 UD> otherwise pdftex will complain about reencoding some chars to
 UD> .notdef)

in the file i suggested there's no intermediate font used which is
reencoded to OT2, so in this case you don't need the entry in the map
file which reencodes to OT2 (reencoding will be done in the VPL font).

 UD> (2) There does not exist any ligature except (LIG D 39 D 34)
 UD> (COMMENT quoteright quotedblright) (LIG D 45 D 124) (COMMENT
 UD> hyphen cyrdash) Thus I have to write an extra mtx file by hand so
 UD> that the ot2 ligatures 'dj', 'e0', 'e1', 'e2', 'zh', 'i0', 'i1',
 UD> 'lj', 'nj', 'c1', 'kh', 'ts', 'ch', 'd2', 'd3', 'sh', 'shch',
 UD> 'p1', 'p2', 'yu', and finally 'ya' will be included, haven't I?

ths is fixed if you change \ifx\wnlig\undefined\let\wnlig\ligature\fi
to \ifx\wnlig\undefined\let\wnlig\Ligature\fi in ot2.etx. then you'll
get all ligatures.

 UD> (3) I'm wondering why emdash (cyrdash) is encoded but not endash
 UD> (rangedash)?  AFM has both: C 150 ; WX 500 ; N endash ; B 50 200
 UD> 450 253 ; C 151 ; WX 1000 ; N emdash ; B 50 200 950 253 ;

that was because i was not defining these glyphs in cyrillic.mtx
relying on loading latin.mtx first (when installing fonts in T2A font
encoding you usually load latin.mtx anyway); i've now fixed that and
you can download the changed files (cyrillic.mtx and ot2.etx) from

 UD> (4) char dec38 (acute) is missing in the vpl and subsequently in
 UD> the tfm, but it's in the font files.

that's because acute is not in the default encoding in the AFM file.
to make it present in the font, you'll then need to use an
intermediate font which encoding contains this glyph...

 UD> (5) the vpl says (SPECIAL Warning: missing glyph `cyryat')
 UD> etc. but it's in the font (as afii10146 and afii10194) and it's
 UD> even in the char table I've TeXed. The same is true for
 UD> 'dotlessi' (dec61 but it's missing completely).  From the log
 UD> file: (u:/uli/texmf/tex/latex/t2/cyrfinst/ot2.etx Warning:
 UD> missing glyph `CYRIZH'.  Warning: missing glyph `CYRFITA'.
 UD> Warning: missing glyph `cyrizh'.  Warning: missing glyph
 UD> `cyrfita'.  Warning: missing glyph `CYRYAT'.  Warning: missing
 UD> glyph `cyrbreve'.  Warning: missing glyph `cyryat'.  ) Why? All
 UD> are there.

the same reason: these glyphs are "not encoded" in the AFM file. to
make them present in the generated font, you'll need to use some
intermediate encoding which contains all these glyphs...

the following file produces the font with only one missing glyph
"breve" (which is absent in the AFM file):

\input fontinst.sty
% the next two files and cyrillic.mtx are from the t2 package
\input fnstcorr
\input cyralias

       #1\csname g-#2\expandafter\endcsname
      #1\csname g-#2-not\expandafter\endcsname
%  \else
% error: glyph not set



More information about the fontinst mailing list