Typography
Skill SeidSmatti/misc-CC-Plugins/plugins/academic-latex/skills/typography
Personal multi usage Claude Code plugins/skills marketplace
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 author says it does
Copied from the file, not written here
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.
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, 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.
Gives 0 of the 12 instructions most design systems skills give
Counted across 528 of the 534 authors here whose files we hold, read 2026-08-06
- create a custom theme if neededin 54 of 528, across 10 files
- read the corresponding theme filein 54 of 528, across 10 files
- ask which theme to applyin 53 of 528, across 9 files
- show the theme showcasein 53 of 528, across 9 files
- maintain visual identity across all slidesin 50 of 528, across 6 files
- apply the specified colors and fontsin 47 of 528, across 3 files
- get explicit confirmationin 45 of 528, across 1 file
- Generate a design system before codingin 19 of 528, across 6 files
- Maintain at least 4.5:1 color contrast ratioin 19 of 528, across 8 files
- Describe component shapes, colors, shadows, and interaction statesin 18 of 528, across 4 files
- Check Python installation and install if missingin 17 of 528, across 4 files
- Default to html-tailwind if stack is unspecifiedin 17 of 528, across 4 files
Said here and by no other author read
- load microtype after hyperref
- use amsmath for math displays
- prefer bracket delimiters over dollar signs
- place captions above tables and below figures
- load cleveref after hyperref
- set widow and club penalties to 10000
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once.