\setmainfont{CMU Concrete}[
    BoldFont = CMU Concrete Bold

\textsc{Small Caps.} \textsc{\textbf{Bold Small Caps.}

How can I use small caps (both roman and bold) with CMU Concrete? It works on the word processor Pages.

The example above works fine if I don't try to use small caps. I tried both of the suggestions given in section 4.1.1 of the fontspec documentation, but neither worked.

  • 2
    Pages just fakes small caps, using scaled down capitals: it's clearly visible in this picture. Don't use small caps when the font hasn't them properly designed.
    – egreg
    Dec 25, 2019 at 9:36
  • @egreg What about the cm-super package or another fix? Dec 25, 2019 at 16:23

1 Answer 1


The beton package provides an easy way to use CM Concrete for all engines (pdflatex/xelatex/lualatex) and the package allows to use small caps for roman regular weight. It does not have bold small caps (CM Concrete does not have bold at all, lower case or otherwise). You can fake that with the xfakebold package, which inserts special pdf rendering commands in the document (pdflatex and lualatex only) that make the text appear bold - but it does not look very clean, as always with fake bold.

For xelatex and lualatex T1 font encoding is required to use CM Concrete. For pdflatex default encoding also works, however the fake bold result is much better with T1 encoding. Obligatory disclaimer not to use fake bold still applies.


\usepackage[T1]{fontenc} % required for xelatex/lualatex, improves fake bold result for pdflatex
\usepackage{beton} % package to load CM Concrete
\usepackage[bold=0.2]{xfakebold} % pdflatex/lualatex only
Normal Text

\textsc{Small Caps.} \textscbf{Bold Small Caps.}


enter image description here

You must log in to answer this question.

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