Plain TeX

This is a help file for Plain TeX. It was derived from Anthony Starks Plain TeX Reference.

This page was edited-in-place on 18 January 2023 to add a CSS stylesheet and correct some missing glyphs. In the end I regenerated the glyphs at a slightly larger size. Some of the markup was improved along the way.

Table of Contents

Computer Modern Font Family

The standard Computer Modern family includes the following fonts:
cmr
Roman (5--10pt)
cmmi
Math Italic (5--10pt)
cmsy
Math Symbols (5--10pt)
cmex
Math Extension (10pt)
cmss
Sans serif (10pt)
cmssqi
Sans serif quote italic (8pt)
cmssi
Sans serif Italic (10pt)
cmbx
Bold Extended (10pt)
cmtt
Typewriter (8--10pt)
cmsltt
Slanted typewriter (10pt)
cmsl
Slanted roman (8--10pt)
cmti
Text italic (7--10pt)
cmu
Unslanted text italic (10pt)
cmmib
Bold math italic (10pt)
cmbsy
Bold math symbols (10pt)
cmcsc
Caps and Small caps (10pt)
cmssbx
Sans serif bold extended (10pt)
cmdunh
Dunhill style (10pt)

Standard Font Definitions

Plain TeX defines the following control sequences for font selection:
\rm
Roman
\sl
Slanted
\it
Italic
\bf
Bold
\tt
Typewriter
$\oldstyle ...$
Old Style numerals
$\cal ...$
Caligraphic capitals

Magnifications

Plain TeX defines the following magnifications:
\magstep0: 1000 (normal size)
\magstephalf: 1095 (1.095 times normal size)
\magstep1: 1200 (1.2 times normal size)
\magstep2: 1440 (1.44 times normal size, etc.)
\magstep3: 1440
\magstep4: 1728
\magstep5: 2074
\magstep6: 2488

Dimensions

pt: Point
pc: pica (12 pt)
in: inch (72.27 pt)
bp: Big point (72 bp = 1 in)
cm: Centimeter
mm: Millimeter
dd: Didot point
cc: cicero (12 dd)
sp: Scaled point (65,536 sp = 1 pt)
ex: Nomimal x-height
em: Nominal m-width

Accents

\'o Grave
\`o Acute
\^o Circumflex
\"o Umlaut
\~o Tilde
\=o Macron (“bar”)
\.o Dot
\v o Hacek (“check”)
\u o Breve
\H o Long Hungarian umlaut
\t oo Tie-after accent
\c o Cedilla
\d o Dot-under
\b o Bar-under

Special Letters

\oe, \OE French ligature OE ,
\ae, \AE Latin/Scandanavian AE ,
\aa, \AA Scandanavian A-with-circle ,
\o, \O Scandanavian slashed O ,
\l, \L Polish suppressed-L ,
\ss German sharp S
\dag Dagger
\ddag Double-dagger
\S Section mark
\P Paragraph mark
\copyright Copyright symbol

Paging and Insertions

\headline={stuff}
Define header
\footline={stuff}
Define footer
\raggedbottom
Variable bottom margin
\folio
Current page number
\nopagenumbers
Blank footer
\footnote{mark}{text}
Define footnote
\topinsert{stuff}\endinsert
Floating insertion
\midinsert{stuff}\endinsert
Insert mid-page
\pageinsert{stuff}\endinsert
Full page insertion

Category Codes

0 Escape character (\)
1 Beginning of group ({)
2 End of group (})
3 Math shift ($)
4 Alignment tab (&)
5 End of line (^M)
6 Parameter (#)
7 Superscript (^)
8 Subscript (_)
9 Ignored character (NUL)
10 Space ( )
11 Letter (A..Z and a..z)
12 Other
13 Active character (~)
14 Comment character (%)
15 Invalid character (DEL)

Ligatures

ff
fi
fl
ffi
ffl
--
---
``
''
?`
!`

Math Characters

\aleph
\alpha
\amalg
\angle
\approx
\ast
\asymp
\beta
\bigcap
\bigcirc
\bigcup
\bigodot
\bigoplus
\bigotimes
\bigsqcup
\bigtriangledown
\bigtriangleup
\biguplus
\bigvee
\bigwedge
\bot
\bowtie
\bullet
\cap
\cdot
\cdotp
\cdots
\chi
\circ
\clubsuit
\colon
\coprod
\cup
\dagger
\dashv
\ddagger
\ddots
\delta
\Delta
\diamond
\diamondsuit
\div
\ell
\emptyset
\epsilon
\equiv
\eta
\exists
\flat
\forall
\frown
\gamma
\Gamma
\geq
\gg
\hbar
\heartsuit
\iff
\Im
\imath
\in
\infty
\intop
\iota
\jmath
\joinrel
\kappa
\lambda
\Lambda
\ldotp
\ldots
\leftarrow
\Leftarrow
\leftharpoondown
\leftharpoonup
\leftrightarrow
\Leftrightarrow
\leq
\lhook
\ll
\longleftarrow
\Longleftarrow
\longleftrightarrow
\Longleftrightarrow
\longmapsto
\longrightarrow
\Longrightarrow
\mapstochar
\mid
\models
\mp
\mu
\nabla
\natural
\nearrow
\neg
\neq
\ni
\not
\nu
\nwarrow
\odot
\ointop
\omega
\Omega
\ominus
\oplus
\oslash
\otimes
\parallel
\partial
\perp
\phi
\Phi
\pi
\Pi
\pm
\prec
\preceq
\prime
\prod
\propto
\psi
\Psi
\Re
\relbar
\Relbar
\rho
\rhook
\rightarrow
\Rightarrow
\rightharpoondown
\rightharpoonup
\searrow
\setminus
\sharp
\sigma
\Sigma
\sim
\simeq
\smallint
\smile
\spadesuit
\sqcap
\sqcup
\sqsubseteq
\sqsupseteq
\star
\subset
\subseteq
\succ
\succeq
\sum
\supset
\supseteq
\surd
\swarrow
\tau
\theta
\Theta
\times
\top
\triangleleft
\triangleright
\uplus
\Upsilon
\upsilon
\varepsilon
\varphi
\varpi
\varrho
\varsigma
\vartheta
\vdash
\vdots
\vee
\wedge
\wp
\wr
\Xi
\xi
\zeta

Parameters

\maxdimen16383.99999pt
\pretolerance100
\tolerance200
\hbadness1000
\vbadness1000
\linepenalty10
\hyphenpenalty50
\exhyphenpenalty50
\binoppenalty700
\relpenalty500
\clubpenalty150
\widowpenalty150
\displaywidowpenalty50
\brokenpenalty100
\predisplaypenalty10000
\doublehyphendemerits10000
\finalhyphendemerits5000
\adjdemerits10000
\looseness0
\pausing0
\holdinginserts0
\tracingonline0
\tracingmacros0
\tracingstats0
\tracingparagraphs0
\tracingpages0
\tracingoutput0
\tracinglostchars1
\tracingcommands0
\tracingrestores0
\language0
\uchyph1
\lefthyphenmin2
\righthyphenmin3
\globaldefs0
\maxdeadcycles25
\hangafter1
\fam0
\mag1000
\escapechar\
\defaulthyphenchar-
\defaultskewchar-1
\endlinechar^^M
\newlinechar-1
\delimiterfactor901
\timeminute of the day
\dayday of the month
\monthmonth of the year
\yearyear
\showboxbreadth5
\showboxdepth3
\errorcontextlines5
\hfuzz0.1pt
\vfuzz0.1pt
\overfullrule5pt
\hsize6.5in
\vsize8.9in
\maxdepth4pt
\lineskiplimit0pt
\delimitershortfall5pt
\nulldelimiterspace1.2pt
\scriptspace0.5pt
\mathsurround0pt
\predisplaysize0pt
\displaywidth0pt
\displayindent0pt
\parindent20pt
\hangindent0pt
\hoffset0pt
\voffset0pt
\baselineskip0pt
\lineskip0pt
\parskip0pt plus 1pt
\abovedisplayskip12pt plus 3pt minus 9pt
\abovedisplayshortskip0pt plus 3pt
\belowdisplayskip12pt plus 3pt minus 9pt
\belowdisplayshortskip7pt plus 3pt minus 4pt
\leftskip0pt
\rightskip0pt
\topskip10pt
\splittopskip10pt
\tabskip0pt
\spaceskip0pt
\xspaceskip0pt
\parfillskip0pt plus 1fil
\thinmuskip3mu
\medmuskip4mu plus 2mu minus 4mu
\thickmuskip5mu plus 5mu
\hideskip-1000pt plus 1fill
\centering0pt plus 1000pt minus 1000pt
\smallskipamount3pt plus 1pt minus 1pt
\medskipamount6pt plus 2pt minus 2pt
\bigskipamount12pt plus 4pt minus 4pt
\normalbaselineskip12pt
\normallineskip1pt
\normallineskiplimit0pt
\jot3pt
\interdisplaylinepenalty100
\interfootnotelinepenalty100