\documentclass[10pt]{amsart} \usepackage[margin=1in]{geometry} \usepackage[parfill]{parskip} %SetFonts % libertine text and newtxmath \usepackage{libertine} \usepackage[TS1,T1]{fontenc} \usepackage{textcomp} \usepackage[scaled=.85]{beramono} \usepackage{amsmath,amsthm} \usepackage[libertine]{newtxmath} %\usepackage[bb=boondox,frak=boondox,scr=boondoxo]{mathalfa} \usepackage{bm} \useosf %\renewcommand*{\rmdefault}{fxlj} %old-style figures in text, not math %\def\libertine{\fontfamily{fxlj}\selectfont} %SetFonts \usepackage{longtable,booktabs} %\usepackage[dvipsnames]{pstricks} %\usepackage{pstricks-add} \title{Implementation notes and manifest} \author{Michael Sharpe} \date{\today} \begin{document} \maketitle \section{Introduction} \subsection{Issues using \textsf{rtxmi} from the \textsf{txfonts} collection.} This font supplies all the non-alphabetic glyphs (ie, everything except A--Z and a--z) in the \textsf{OML} encoding, but, not using the same names as in {\tt oml.etx}. To get around this, we must base \textsf{fontinst} constructions not on its \textsf{afm}, but instead, use what may be thought of as an anonymous metric file constructed from its \textsf{tfm} via \begin{verbatim} tftopl -charcode-format=octal rtxmi rtxmi \end{verbatim} so that {\tt rtxmi.pl} identifies slots only by octal codes, not names, and identifies the encoding as \textsf{FONTSPECIFIC}, which usually means ``as specified in the header of {\tt rtxmi.pfb}.'') By including in the \textsf{fontinst} driver script a line \begin{verbatim} \declareencoding{FONTSPECIFIC}{oml} \end{verbatim} we force the slots in {\tt rtxmi} to be interpreted using the names in {\tt oml.etx} so that, at the end, we have no problems using {\tt oml} as the encoding for composite fonts built from {\tt rtxmi}. The original version of \textsf{txfonts} made use of whatever Times font was installed in \TeX\ Live, and as a non-free font, it was not available for modification. In this updated version, we use instead the alphabetic glyphs from TeXGyreTermes or LinLibertine, each of which presents no licensing issues. This allows us to make optical sizes of the math italic and symbol fonts, with a boost to the appearance and readability of subscripts, sub-subscripts and superscripts. (Unfortunately the STIX math italic letters are much heavier than Times, by nearly 15\% in stem thickness of uppercase letters, and do not make a good substitute.) \section{Making {\tt7pt} and {\tt5pt} versions} \begin{itemize} \item The strokes in 7{\tt pt} type are (mostly) relatively thicker than those in the 10{\tt pt} type; \item the side-bearings are a bit bigger in 7{\tt pt} type---about 30{\tt em} on the left and about 20{\tt em} on the right; \item the 7{\tt pt} glyphs are (relatively) wider than those in the 10{\tt pt} size. \end{itemize} What we seek is a way to transform 10{\tt pt} glyphs into 7{\tt pt} glyphs using some simple FontForge transformations. The following seems to work fairly well: \begin{itemize} \item Open the {\tt.pfb} in FontForge---you need to have the {\tt.afm} or the {\tt.pfm} in the same folder to get the correct metrics; \item select all glyphs (\textsc{Cntrl}-A) and select from the Element menu, Style/Change glyph---this brings up a window with 3 tabs, the first named Stems, where you should select \textsf{Separate ratios for horizontal and vertical stems} and check the box marked \textsf{Activate diagonal stem processing}, then enter 100\%+0 for Horizontal Stems and 108\%+0 for Vertical Stems; \item press \textsf{OK}, which should thicken all non-horizontal stems in the font, but most likely cause some validation issues which must be dealt with before proceeding; \item select the menu item Element/Validate/Validate to check for problems---there may be many, and the simplest way to proceed is to right click on one of them and choose the contextual menu items at the bottom of the list, one by one; \item some glyphs may require manual adjustments to smaller stems to make them more uniform---the glyphs M, W, V needed help in my case; \item assuming your font validates, the next step is the menu item Element/Style/Change Glyph, and in this round we choose the second tab, named Horizontal, selecting \textsf{Uniform scaling...}, entering 107\%+0 for the Counter Size, then press \textsf{OK}; \item validate the transformed font, just as described above, and, after it validates, select the menu item \textsf{File/Generate Fonts} to export the result to a new pfb/afm combination, say {\tt xxx7}, from which you may generate a tfm using \begin{verbatim} afm2tfm xxx7 -O xxx7 \end{verbatim} \end{itemize} Iterating the same sequence of operations starting from {\tt xxx7.sfd} will produce fonts and metric files suitable for 5{\tt pt}. \section{Converting Libertine} Making Libertine text italic and Greek glyphs into math italic and Greek glyphs requires some preparation. In a number of cases, we want to substitute (virtually) Greek glyphs from Libertine into a math italic (or mia) font. As the Greek glyphs are not encoded, we proceed as follows: \begin{verbatim} afm2tfm fxlri -T libertinealt.enc -v fxlri-alt rfxlri-alt \end{verbatim} which creates {\tt rfxlri-alt.tfm} and {\tt fxlri-alt.vpl} containing the Greek glyphs in the order they should be for \TeX, and which outputs, for the map file, the line \begin{verbatim} rfxlri-alt LinLibertineI " LibertineAltEncoding ReEncodeFont "