[Tex/LaTex] Improved fake small caps

small-caps

Fonts that do not have real small caps simply scale down capital letters when you use \textsc. This looks unbalanced, as the letters are too thin. Can this be improved?

Best Answer

One idea is to simply scale down capitals and then "fatten" them, which in my opinion looks much better than simple scaling. The fattening can be implemented by copying and shifting by a small amount several times. This example uses the fourier font, which doesn't include real small caps.

\documentclass[a4paper, 11pt, pdftex]{scrartcl}

\usepackage{microtype}
\usepackage{fourier}
\usepackage{graphicx}

\newcommand{\fakesc}[1]{\textls[100]{\rlap{\scalebox{0.8}[0.75]{#1}}\hskip0.02ex\rlap{\scalebox{0.8}[0.75]{#1}}\hskip0.02ex\scalebox{0.8}[0.75]{#1}}}

\begin{document}
\noindent
Lorem Ipsum \textsc{Lorem Ipsum} Lorem Ipsum \\
Lorem Ipsum L\fakesc{OREM} I\fakesc{PSUM} Lorem Ipsum
\end{document}

Here is a pictorial view:

Improved small caps

This solution is not perfect. Vertical serifs (like in the E above) tend to become too thick, and diagonal strokes that were the same thickness as vertical strokes are no longer of the same thickness (like in the M above). However, I think these objections are minor, and the final result is better than the standard fake small caps.

Related Question