18

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.)

1
  • In cases where you have control over the font of the final version, what you want is a font with small cap figures. There aren’t many: Augustin is one that I know of; Verdigris is another (it has full cap, mid-cap, and small cap figures).
    – Thérèse
    Nov 2, 2013 at 2:25

2 Answers 2

20

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}
2
  • Indeed, I assumed it was CM because a quick scan iopart.cls and friends didn't reveal any other fonts being loaded. I tried the \oldstylenums{} as you suggested, but it produced no siginificant difference. Indeed, doing \oldstylenums{6} 6 it seems that the old style is slightly taller! I will experiment with the other fonts, but since this is for a journal I won't have control over the font of the final version Nov 10, 2010 at 14:32
  • This would work for all numerals other than the 6 and the 8; for these, the other answer below would be the easiest way to accomplish this.
    – Alex
    Jun 27, 2015 at 20:32
8

You can use a method other than small caps, by just rescaling all of the text, like so:

\documentclass{article}
\usepackage{scalefnt}

\newcommand\smaller[2][0.85]{{\scalefont{#1}#2}}
\begin{document}

\textsc{small caps} and \smaller[0.76]{ALLCAPS TEXT RESCALED BY 0.76}
are slightly different in the Roman family of Computer Modern, but not
by very much.

I like using this technique (with the default scaling above) for writing
proper names of problems and complexity classes in theoretical computer
science, such as \smaller{3-SAT} and \smaller{\sffamily NP} (compare with
3-SAT and \textsf{NP}, which attract disproportionate attention due to
their size).

\end{document}
2
  • 2
    Hi Niel, thanks for the answer. I accepted Geoffrey's answer because it's clearly The Right Thing, but this is what I'm actually going to do, since it works for the digit 6 in Computer Modern and the old style nums don't. Hope you're well. Nov 10, 2010 at 14:56
  • Hi Ross, wasn't sure if it was you (the fellow researcher in quantum informatics whom I met at Oxford, I presume). No sweat, glad to be helpful. :-) Nov 10, 2010 at 15:53

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .