This post on a german typography board provides a possible solution for this problem. The OP also gives a snippet of Knuth's 'Digital Typography' to show that the CM was never meant to look that thin in print (as it does with modern laser printers; see third snippet).
Another workaround – although kludgy – would be to use a different optical size for standard text. If you set the text in 11pt, the default optical size is 10pt. Choosing 9pt instead will result in slightly thicker strokes but also a slightly wider letter shape.
Some options include these (see examples below):
Use "Latin Modern" (\usepackage{lmodern}
), the updated version of Computer Modern. It looks a bit less spindly on screen and print than the original, in my opinion. (Example below)
Scale "Computer Modern" as demonstrated below (thanks to this answer)
Use the font "Computer Concrete" (\usepackage{concmath}
), which Knuth designed as a thicker version of Computer Modern using METAFONT.
Use a similar but thicker font. For example gfsbodoni
(\usepackage[default]{gfsbodoni}
) is in the same family of "modern" typefaces but perhaps has a more desirable weight.
Use METAFONT directly and adjust it to your liking. This kind of thing was the original purpose of that program.
(EDIT)
Demonstration of font scaling (#2 above):
Here is a way that you can scale the font. You ask for a smaller font size to be magnified to a larger one; since the smaller sizes have thicker strokes, you get a thicker-looking, but also wider font. You can experiment with the proportions. This example scales cmr7
up to the default 10pt.
(I didn't get the italic working yet, and I don't think the bold is scaled, but hopefully someone else can add to this.)
\documentclass{article}
\usepackage[T1]{fontenc}
\DeclareFontShape{T1}{cmr}{mx}{n}%
{<->cmr7}{}
\DeclareFontShape{T1}{cmr}{mx}{it}%
{<->cmr7}{}
\AtBeginDocument{%
\fontseries{mx}\selectfont%
}
% to create dummy text for testing
\newcommand{\quickfox}{The quick brown fox jumps over the lazy dog}
\newcommand{\Fox}{The Quick Brown Fox}
\newcommand{\Dog}{The Lazy Dog}
\newcommand{\Jumps}{Jumps Over}
\usepackage{lipsum}
\begin{document}
\section{\Fox}
\quickfox?
\subsection{\Dog}
\emph{\quickfox.}
\paragraph{\Jumps}
\lipsum[1]
\end{document}
Thus, cmr7 scaled to 10pt:
For comparison, here is the example with lmodern
and no scaling:
This is gfsbodoni
:
And this is concmath
(Computer Concrete) (as noted in the comments it really is in a different font family despite being derived from Computer Modern):
(EDIT)
Here is a very basic demonstration of how to get started modifying a Metafont. (It's my first time doing it so take this with a grain of salt.)
- Find the Metafont source for Computer Modern 10pt,
TEXMF-DIST/fonts/source/public/cm/crm10.mf
.
- COPY this file to a separate working directory where you won't mess up your TeXLive installation.
- Go in and change the "thickness" and "breadth" parameters to larger values. Save the file under a new name, e.g.,
cmthick.mf
- e.g., line 25:
thin_join#:=10/36pt#; % width of extrafine details
- Compile the font with METAFONT (see
texdoc metafont
):
mf '\mode=localfont; input cmthick'
gftopk cmthick.600gf
Use the new font. Since this was just for demonstration and I don't know what I'm doing, I just did this in Plain TeX. File cmthicktest.tex
:
The quick brown fox jumps over the lazy dog.
\font\cmthick=cmthick
\cmthick
The quick brown fox jumps over the lazy dog.
\bye
Compiled with tex cmthicktest && dvips cmthicktest && ps2pdf cmthicktest.ps
I get the following:
This is just to show that it can be done. I don't know if this is the right way.
Best Answer
By default, LuaLaTeX uses a clone of Computer Modern, by the name of Latin Modern Roman. Either your document class or some package you are using changes the font, but you do not give us enough information to tell which. If it is one of the Koma-script classes, you will likely want to turn off sans-serif titles.
The simplest way to change the main font to a clone of Computer Modern is
This loads a slightly-heavier weight, and both text and math fonts. To get the original weight, you can use
Other alternatives include loading
fontsetup
, and changing the main font with\usepackage{fontspec}
. There are four OpenType versions of Computer Modern that ship with TeX distributions:For any font in your TeX tree, you want to search for a
.sty
or.fontspec
file that sets everything up properly, and load that. For example,\usepackage{newcomputermodern}
loadsnewcomputermodern.sty
, and\setmainfont{NewCM10-Regular}
loads the commands inNewCM10-Regular.fontspec
.If you are not sure which to use, New Computer Modern has the most symbols and bug fixes, Computer Modern Unicode has the most typefaces, and Latin Modern has the best set of optical sizes.