[Tex/LaTex] Old style number, bold small caps, and Palatino

boldfontsmathpazooldstylenumssmall-caps

I'd like to be able to have all three of the following in my document:

  1. the Palatino font
  2. bold and small caps
  3. old-style figures

I'm currently using mathpazo with the options [osf] to get 1 and 3, but not 2. According to Bold small caps with mathpazo, I'm able to get 1 and 2 (but not 3) if I don't specify the [osf] option.

It seems that the mathpazo package doesn't really support all of the above three features simultaneously. Does anyone know of a way or an alternative package that implements 1-3?

Best Answer

You could try using the recently-released newpxtext and newpxmath packages. In the MWE below, issuing the command \useosf after the math-related packages are loaded enables the use of regular- and bold-weight oldstyle numerals in text mode, while lining numerals will be used in math mode. Small caps are available in bold (as well as regular-weight, of course).

enter image description here

Update April 2018: The newpxtext and newpxmath packages have evolved quite a bit over the past five years. One can still enable oldstyle numerals and small-caps letters by running \useosf. According to the packages' user guide, though, the preferred way is to specify the option osf while loading the newpxtext package.

\documentclass{article}
\usepackage{newpxtext,newpxmath}
\useosf % old-style figures in text, not in math
\linespread{1.05} % Palatino needs a bit more leading than CM
\begin{document}
0123456789, {\bfseries 0123456789}, {\itshape 0123456789}, {\bfseries\itshape 0123456789}

\textsc{Once upon a time, \dots}
{\bfseries \scshape Once upon a time, \dots}

Some math expressions: $1+1=2$,  $\int_0^1 \mathrm{d}x = 1$
\end{document}