1

I'd like to use in a same document the Bitstream Charter serif font (as default) and some sans serif font that has small caps. I tried to use \usepackage[charter]{mathdesign} in combination with \usepackage[notmath]{sansmathfonts}, but it does not work:

\documentclass{article}
\usepackage[charter]{mathdesign}
\usepackage[notmath]{sansmathfonts}
\begin{document}
This is \textsc{small caps}. And {\sffamily\textsc{sans serif small caps}}.
\end{document}
  1. With the example above, I get no sans serif small caps and the following in the log:

    LaTeX Font Warning: Font shape `T1/xcmss/m/fsc' undefined
    (Font)              using `T1/xcmss/m/n' instead on input line 8.
    
  2. If I comment the sansmathfonts package, I still get no sans serif small caps and the following in the log:

    LaTeX Font Warning: Font shape `T1/cmss/m/fsc' undefined
    (Font)              using `T1/cmss/m/n' instead on input line 8.
    
  3. Finally, if I comment the mathdesign package, I get sans serif small caps.

How may I achieve my goal? There's probably a lot that I do not understand about LaTeX font managements. I add that I would prefer a solution that uses pdfTeX rather than {Xe|Lua|...}TeX.

1 Answer 1

3

The mathdesign package with the charter option will turn on the expert option, which is a too-clever-by-half workaround for some non-standard font naming schemes from the ’90s. It is no longer needed: both free versions of Charter that ship with CTAN use standard LaTeX font-naming conventions. The authors did not, unfortunately, provide any way to turn this option off. It redefines small caps to use the NFSS shape fsc instead of sc. Every LaTeX font calls small caps sc, not fsc, so small caps break.

The easiest fix is to load the free XCharter as your main font over mathdesign. This will load fontaxes and replace the broken definitions of \scshape and \textsc with ones that work. You can then load your sans-serif font of choice. Here, I used Linux Biolinum.

\documentclass{article}
\usepackage[charter]{mathdesign}
\usepackage{XCharter}
\usepackage[type1]{biolinum}

\begin{document}
This is \textsc{small caps}.
And {\sffamily\textsc{sans serif small caps}}.
\[x = -b \pm \frac{\sqrt{b^2 - 4ac}}{2a} \]
\end{document}

XCharter/Biolinum/MathDesign sample

Similarly, you can load erewhon after \usepackage[utopia]{mathdesign} or garamondx after \usepackage[garamond]{mathdesign}, all of which provide working small-caps and oldstyle numbers.

You can also enable small-caps for other font families with

\renewcommand\scdefault{sc}
1
  • Thanks for your detailed answer!
    – Bruno
    Jun 8, 2020 at 9:27

You must log in to answer this question.

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