Beautiful typesetting

Two people write the same words, and somehow the one set in LaTeX looks like a real book. Most of that comes down to a single number: a \textwidth of 345pt. The standard article class stops the text block there whether the paper is A4 or US Letter, and turns everything left over into margin. Measured, that works out to about 75 characters per line — a little past the 66 that typographers call ideal, but past it for a reason. This page measures the numbers that decide how a LaTeX document looks, so you can see exactly why yours reads as amateur and what to change.

How many characters per line? Measuring what article really gives you

Pour \lipsum[1-12] into \documentclass[a4paper]{article} on TeX Live 2024, extract the text from the resulting PDF and count, and you get an average of 75.1 characters per line (99 lines; longest 85). Robert Bringhurst's The Elements of Typographic Style (1992) records the received wisdom: 45 to 75 characters is a satisfactory line for a single-column page, and 66 is regarded as ideal. So the default article sits right at the top edge of the acceptable range. It is not unreadable — but this is where the first improvement is hiding.

MeasureMeasured characters per lineVerdict
250pt54.5narrow; the width of a footnote, a side note, or one column of two
280pt61.3comfortable; a little short of the ideal 66
305ptabout 66the classic ideal; suits long-form reading
320pt69.9still inside the range; a common width for papers
345pt74.5the article default; the top edge of the range
400pt85.8the eye starts losing the start of the next line
450pt93.7the usual failure of a document whose margins were squeezed with geometry

Bringhurst also passes on a way to measure without any tools. Set the lowercase alphabet, a through z, in your text face; the width of that string is the alphabet length, and a line should run two to three alphabets. Measure it with \settowidth and Computer Modern at 10pt gives a–z as 127.58pt. A 345pt measure is 2.70 alphabets, so this test agrees with the character count: near the limit, but inside it. The pleasant part is that the same reasoning transfers. The Japanese rule of thumb that a line of full-width characters reads best at roughly 35 to 45 characters is the same two-to-three-alphabets idea in another script.

latex
% narrow the measure toward the classic 66 characters per line
\usepackage[a4paper,textwidth=305pt]{geometry}

% or keep A4 and state the margins instead
\usepackage[a4paper,margin=45mm]{geometry}

What is striking is that raising the type size barely changes the character count. Repeat the same measurement at 11pt and 12pt and \textwidth widens to 360pt and 390pt, while the line comes to 70.1 and 70.0 characters. The standard classes widen the measure in step with the size, holding the line length in characters almost constant — and at a value closer to the ideal 66 than 10pt manages. If readability is what is bothering you, trying [11pt] is the cheapest move available, and it comes before reaching for geometry.

Why article's margins look so wide

The answer is not that the margins were made generous; it is that the measure is fixed first and everything left over becomes margin. size10.clo, which sets the dimensions of the standard classes, compares the paper width minus one inch on each side against 345pt and takes the smaller of the two as \textwidth. On A4 (597.51pt) and on US Letter (614.30pt) alike, that subtraction comes out above 345pt, so on both papers the measure is exactly 345pt. Give it a bigger sheet and only the margins grow — that is all "A4 has huge margins" ever meant.

latex
% size10.clo (LaTeX 2024): the measure is a hard cap, not a fraction of the page
\setlength\@tempdima{\paperwidth}
\addtolength\@tempdima{-2in}
\setlength\@tempdimb{345\p@}
\ifdim\@tempdima>\@tempdimb\relax
  \setlength\textwidth{\@tempdimb}   % A4 and US Letter both land here
\else
  \setlength\textwidth{\@tempdima}
\fi

One widespread belief is worth correcting here. You will see it said that 345pt is a Letter-sized choice that does not suit A4 — but the code never looks at the paper. The cap itself is paper-independent, so A4 and Letter get the same measure. In proportion it is in fact Letter that has the wider margins: they take 42.3% of the sheet width on A4 and 43.8% on Letter. And if 345pt feels cramped, the comparison is wrong. Knuth's plain TeX defaults to \hsize=6.5in, that is 469.75pt — over 90 characters a line by the same measurement. LaTeX cut more than a quarter off that to reach 345pt. The wide margins are not neglect; they are the by-product of a decision that pulled the line length back toward readability.

A telling fossil survives in the file. size10.clo has a branch for compatibility with the old LaTeX 2.09, and there the width is written out with no arithmetic at all: \setlength\textwidth{345\p@}. The number 345 began life as a plain constant; the machinery that treats it as a paper-aware cap was fitted around it later. Which gives the practical rule: do not widen \textwidth by hand when you want to reclaim margin. Widen it and the measure becomes the line length directly, and you drop into the 400pt and 450pt rows of the table above. Reclaim space with geometry by stating the margins instead, keeping the line inside the 66-to-75 band and taking the space off the top and bottom.

One line in the preamble that changes the look: microtype

The single line \usepackage{microtype} has the best return of anything on this page. Measured on an 11pt article with T1 encoding, a 180pt measure and one hundred \lipsum paragraphs, overfull boxes fall from 128 to 15, while the page count drops only from 43 to 42. So it is not squeezing the document. By letting punctuation hang a hair past the edge (protrusion) and stretching glyph widths by well under one percent (font expansion), it flattens out the variation in interword space, and the places you would have had to fix by hand simply stop appearing. The mechanism belongs to its own page; the point here is that there is almost no reason not to load it.

latex
\documentclass[11pt,a4paper]{article}
\usepackage[T1]{fontenc}   % load this before microtype
\usepackage{microtype}
\usepackage[textwidth=320pt]{geometry}

How many typefaces may you use? Restraint does the most work

The practical answer is at most three: one for the body, one for headings that either matches it or is deliberately paired with it, and one monospace for code. Documents that read as amateur usually fail on one of two counts — the line is too long, or there are too many typefaces — and the second is the easier to spot: body in one face, headings in another, emphasis in a third, figure captions in a fourth. LaTeX's default, Computer Modern, is a typeface Knuth designed himself, with thin strokes and high contrast. It looks refined, but those thin strokes can go anaemic in coarse printing or on a small screen. If you replace it, lmodern (a cleaned-up successor to Computer Modern's outlines), libertinus and newtx are dependable choices, and each supplies body, headings and mathematics as a set. Change the maths font along with the text font — leaving the equations in Computer Modern while the prose moves on is the single most common accident.

Indent or blank line? Doing both is the amateur tell

There are two ways to mark the break between paragraphs, and the convention is to pick one. The standard classes default to indent with no space: measured, \parindent is 15pt at 10pt, 17pt at 11pt and 17.62pt at 12pt, while \parskip is 0pt plus 1pt — no space at all, with a sliver of stretch reserved for page-breaking. Someone who finds the paragraphs cramped then adds \setlength{\parskip}{1em} on its own, and now indent and space are both in force: the break announces itself twice and snags the reader's eye. If you want to separate with space, always write \setlength{\parindent}{0pt} alongside it, or load the parskip package, which handles both ends.

latex
% pick ONE of these two, never both by accident
% (a) indent, no vertical space -- the standard-class default, nothing to write
% (b) vertical space, no indent:
\usepackage{parskip}

One more dimension: leading. The standard classes set \baselineskip to 12pt at 10pt, 13.6pt at 11pt and 14.5pt at 12pt — roughly 1.2 times the type size. Widen the measure but leave the leading alone and the eye stops finding the start of the next line. Treat them as a pair: lengthen the line and you must open up the leading, and tighten the leading only if you also tighten the line. (When a submission rule demands something like one-and-a-half spacing, the mechanics live on the line-spacing page.) Where a paragraph looks amateur rather than professional, the difference almost always comes down to these three together: line length, leading, and how the paragraph break is marked.

What not to touch: stop fixing things with \vspace and \\

Every adjustment so far was made once, in the preamble. The counterpart rule is to avoid patching the body: dropping in a \vspace{1cm} to nudge a figure, breaking a line with \\ to make a heading sit better. The reason is mechanical rather than aesthetic — LaTeX chooses line and page breaks by looking at the whole document and finding the best set of folds, so pinning one place by hand shifts everything downstream. That deadline-eve grind where every fix breaks something else starts here. Write structure in the body and decide appearance in the preamble; keep that division and a fix always stays a single edit.

To put it in order: get the line into the 66-to-75 band first (via [11pt] or geometry's textwidth); then add the one line of microtype; if you change the typeface, change the text and the maths together; and settle on either indent or space for paragraphs, not both. Those four turn most documents from something that was merely set in LaTeX into something that was set to be read. Whatever fine-tuning remains belongs in the preamble rather than the body, and belongs last.