[Tex/LaTex] Small digits for small caps

fontssmall-caps

I want to typeset "FP6" as small caps. Putting {\sc fp6} does the right thing on the letters, but the digit 6 is much taller, and the result looks ugly.

What is the best workaround to make digits an appropriate height to go with small caps?

(In case it's relevant, I'm using the iopart class, which I think uses Computer Modern.)

Best Answer

All things being equal, you're probably using Computer Modern Roman, not because iopart has loaded it, but because it's the default used if you don't explicitly specify any other. (Your pdf reader can confirm this for you. Usually all you need do is open the document then, depending on the reader, looking in Properties / Fonts. Look for fontnames like 'CMR10' (CM 10pt roman) and 'CMCSC10' (CM 10pt small caps).)

There are many solutions to your problem. Apart from explicitly rescaling your lining figures as Niel points out (tho take care that 'faking' small caps doesn't run you into, say, untoward kerning issues), two of the easiest are these:

  1. If you wish to stay with computer modern, use \oldstylenums to convert normal "lining" (uppercase) figures to "oldstyle" ("text" or lowercase) figures. E.g., \textsc{fp}\oldstylenums{6}. Note, however, that some CMR oldstyle figures look less like osf than you might want (the digit '6' happens to be one of these).

  2. Alternatively, you might prefer the look and feel of the oldstyle figures offered by different fonts. However, not every font offers these natively (i.e., you might need to apply the \oldstylenums command when using most other non-CMR fonts).

Here's some code that might help to check out many of the rather few fonts that open up text figures. Assuming each font is actually loaded on your system, one by one just uncomment and recomment each of the commented lines below, compiling each to see which look and feel you most prefer. Note, however, that this technique typesets all figures in your document in oldstyle. Nevertheless, it means you won't need to apply the \oldstylenums command at any time.

\documentclass{article}

\usepackage[T1]{fontenc}

%\usepackage[sc,osf]{mathpazo}   % Palatino with pazo math fonts
%\renewcommand*\rmdefault{pplx}  % Palatino with lining (uppercase) nums
%\renewcommand*\rmdefault{pplj}  % Palatino with text (lowercase or oldstyle) nums

%\usepackage[osf]{venturis}
%\usepackage[osf]{libertine}
%\usepackage[osf]{MinionPro}
%\usepackage[fulloldstylenums]{kpfonts}

\begin{document}
\textsc{fp9876543210}
9876543210
\end{document}