Thanks, Tadziu, for all the info and the demo file! A few followups below.
> I think this is because afmtodit assumes these ligatures will be > called "fi", "fl", "ff", "ffi", and "ffl", but in the new fonts > they are called "f_i", "f_l", "f_f", "f_f_i", and "f_f_l". I see. It looks like afmtodit looks for variants with spaces in the names, but not underscores: $ fgrep -A6 'default_ligatures =' `type -p afmtodit` my %default_ligatures = ( "fi", "f i", "fl", "f l", "ff", "f f", "ffi", "ff i", "ffl", "ff l", ); > (I believe other ligatures can't currently be used with groff. > As far as I know, this is hardwired.) Yes, according to "info groff gtroff fonts ligatures", those five are the only ones supported. A quick grep through the code shows that src/include/font.h defines five enum values in class font, for LIG_ff, LIG_fi, etc. And as the above code snippet shows, those are the only ones afmtodit looks for. It should be fairly straightforward to add new hard-coded ligatures to the groff source, and to afmtodit. (A better design, though harder to implement, would be to not hard-code ligatures at all, but have groff query the font for available ligatures. But it's not clear there's a reliable way to find them: a comment in afmtodit says many AFM files lack the correct demarcation for ligatures.) > You have to call afmtodit with the "-i" option when generating > the description file for the italic fonts (the manual page > says that "-i50" was used for the standard fonts). Thanks for the tip. Peter and I have been discussing how best to get install-font.sh to support this. > I've attached a demo PDF showing the results. Great! What version of Libertine did you use to generate this file? I have 5.3.0, the most recent one on http://sourceforge.net/projects/linuxlibertine/, but some of my ligatures look different from (and not nearly as good as) the ones in your demo.