Typography
Skill SeidSmatti/misc-CC-Plugins/plugins/academic-latex/skills/typography
Knowledge reference for academic LaTeX typography — microtype, math layout, headings, captions, line/page breaking, hyphenation, widows/orphans, fonts, and engine-specific gotchas. Use when authoring or reviewing a .tex and deciding which package/option to apply for visual quality, when a paper's typography looks "off", or when a sibling skill needs the canonical answer for a typographic choice.From its SKILL.md
npx -y skills add SeidSmatti/misc-CC-Plugins --skill typographyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.5 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it
typography — academic LaTeX style reference
A single-page reference. Each rule cites the package or canonical source.
microtype (core typographic polish)
Always load it. Even when its features are partly disabled by the engine.
\usepackage{microtype}
| Engine | Features active | Source |
|---|---|---|
| pdflatex | protrusion, expansion, ligature toggling, kerning, interword spacing — all of them | https://www.tug.org/docs/latex/microtype/microtype.pdf |
| lualatex | protrusion, expansion, ligature toggling | same |
| xelatex | protrusion only (≥ v0.9997) | same |
Rule: load microtype after hyperref (older guidance to load before is outdated). Source: microtype PDF §10 (Loading order).
For thesis-grade tuning:
\usepackage[
protrusion=true, expansion=true, factor=1100,
stretch=10, shrink=10, final
]{microtype}
final overrides class draft mode (otherwise microtype turns off).
Math display
- Use
amsmath.align/align*for multi-line equations.equation/equation*for single. Nevereqnarray— its column spacing is wrong. - Inline:
\(...\)over$...$(catches more errors). - Display:
\[...\]over$$...$$(plain TeX$$skips\everydisplay, breaking amsmath features). - Operators:
\sin,\log,\max,\arg\max— never roman text in math (\text{arg max}is wrong; use\operatorname{arg\,max}or load\DeclareMathOperator{\argmax}{arg\,max}once). - Spacing:
\,(thin),\:(medium),\;(thick),\!(negative). For "d" in differentials:\mathrm{d}x. For unit spacing: usesiunitx(\SI{3.5}{\meter\per\second}). - Numbering: prefer
equationnumbering; for sub-equations:subequationsenv fromamsmath.
Source: https://ctan.org/pkg/amsmath and amsldoc PDF.
Headings and sectioning
- Default classes (
article,report,book) sectioning is fine for most journals. Don't redefine\sectionformatting unless the journal requires it — most journals provide their own class. - Use
\paragraph{}and\subparagraph{}sparingly. They are unnumbered runs-in. - For unconventional formatting, use
titlesec— but check the journal class first. tocloftfor fine-grained ToC formatting; usually overkill.
Captions
\usepackage{caption} % core caption control
\usepackage{subcaption} % for subfigures (newer than subfig)
\captionsetup{font=small, labelfont=bf, format=plain}
Convention: caption above tables, below figures. Most journal classes already enforce this.
For long captions in floats, separate the short version (in ToC/listoftables) from the full caption: \caption[short]{long full description.}.
Source: https://ctan.org/pkg/caption.
Cross-references — cleveref
cleveref produces "Figure 3" / "Figures 3, 4 and 5" automatically based on label-prefix conventions:
\usepackage[capitalize, noabbrev]{cleveref}
Load cleveref AFTER hyperref. Use \Cref{label} (capitalized for sentence start) and \cref{label} (lowercase mid-sentence). Multiple: \Cref{a,b,c}.
Line and page breaking
- Widows and orphans: set
\widowpenalty=10000and\clubpenalty=10000in the preamble for journal-grade output. (Default: 150 — too tolerant.) - Bad lines:
\sloppyand\fussy. Default is fussy. Use\begin{sloppypar}...\end{sloppypar}for one bad paragraph instead of global\sloppy. - Hyphenation hints:
hy\-phen\-ateto allow specific breaks;\hyphenation{long-word an-other-word}in preamble for global. - Microtype protrusion alone fixes ~80% of overfull boxes.
Floats placement
- Use
[t](top of page) and[b](bottom) explicitly.[h]("here") is a hint, often ignored.[!]overrides float-counter limits. - Don't use
\begin{figure}[H](Hfromfloatpackage) unless absolutely necessary — it hurts page balance. - For float-heavy documents, increase
\topfraction,\bottomfraction,\textfractioncautiously.
Fonts (modern engines)
% LuaLaTeX/XeLaTeX:
\usepackage{fontspec}
\setmainfont{TeX Gyre Pagella} % free, widely available, Palatino-like
\setsansfont{TeX Gyre Heros} % Helvetica-like
\setmonofont{TeX Gyre Cursor} % Courier-like
% Or for Computer Modern in Unicode:
\setmainfont{Latin Modern Roman}
For pdflatex (T1 8-bit world):
\usepackage{lmodern} % Latin Modern as default
% or
\usepackage{newtxtext, newtxmath} % Times-like, with proper math
% or
\usepackage{mathpazo} % Palatino + matching math
Stick with one consistent family per document. Source: https://tug.org/FontCatalogue/.
SI units
\usepackage{siunitx}
\sisetup{detect-all} % match surrounding font
% Use:
\SI{3.5}{\meter\per\second\squared}
\num{1.234e-5}
\ang{30}
Source: https://ctan.org/pkg/siunitx.
Lists
\usepackage{enumitem}
\begin{itemize}[leftmargin=*, itemsep=2pt, topsep=4pt]
\item ...
\end{itemize}
Source: https://ctan.org/pkg/enumitem.
hyperref hygiene
\usepackage[hidelinks, breaklinks=true, bookmarksnumbered=true, pdfusetitle]{hyperref}
hidelinks: no colored boxes/underlines (most journal classes set this).breaklinks: long URLs break across lines.pdfusetitle: sets PDF metadata from\title/\author.
Load after most packages, before cleveref. See https://ctan.org/pkg/hyperref for the famously long option list.
When in doubt
Defer to the journal's official class file. If it sets \captionsetup or redefines \section, do not override. The class is the authority for that publication.
For package-specific fine points not covered here, invoke /academic-latex:docs-lookup.
Last verified
2026-05-09 — TUG, CTAN, microtype PDF, amsldoc.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.