Frequently Asked Question List for TeX


Using the “Concrete” fonts

The Concrete Roman fonts were designed by Don Knuth for a book called “Concrete Mathematics”, which he wrote with Graham and Patashnik (the Patashnik, of BibTeX fame). Knuth only designed text fonts, since the book used the Euler fonts for mathematics. The book was typeset using Plain TeX, of course, with additional macros that may be viewed in a file gkpmac.tex, which is available on CTAN.

The packages beton, concmath, and ccfonts are LaTeX packages that change the default text fonts from Computer Modern to Concrete. Packages beton and ccfonts also slightly increase the default value of \baselineskip to account for the rather heavier weight of the Concrete fonts. If you wish to use the Euler fonts for mathematics, as Knuth did, there’s the euler package which has been developed from Knuth’s own Plain TeX-based set: these macros are currently deprecated (they clash with many things, including amsmath). The independently-developed eulervm bundle is therefore preferred to the euler package. (Note that installing the eulervm bundle involves installing a series of virtual fonts. While most modern distributions seem to have the requisite files installed by default, you may find you have to install them. If so, see the file readme in the eulervm distribution.)

A few years after Knuth’s original design, Ulrik Vieth designed the Concrete Math fonts. Packages concmath, and ccfonts also change the default math fonts from Computer Modern to Concrete and use the Concrete versions of the AMS fonts (this last behaviour is optional in the case of the concmath package).

There are no bold Concrete fonts, but it is generally accepted that the Computer Modern Sans Serif demibold condensed fonts are a possible substitute. If you are using concmath or ccfonts and you want to follow this suggestion, then use the package with boldsans class option (in spite of the fact that the concmath documentation calls it sansbold class option). If you are using beton, add \DeclareFontSeriesDefault[rm]{bf}{sbc} to the preamble of your document if your LaTeX is from 2020, in older LaTeX versions you can use \renewcommand{\bfdefault}{sbc} instead.

Type 1 versions of the fonts are available. For OT1 encoding, they are available from MicroPress. The CM-Super fonts contain Type 1 versions of the Concrete fonts in T1 encoding.

FAQ ID: Q-concrete