mathews-tom/armory/manuscript-typography
Claude Code and agent skill by mathews-tom/armory
- community
Checking that the SKILL.md file is still in the repository.
Audit academic manuscripts for typographic design conventions: booktabs table style, caption placement, dashes/quotes, units and numbers, cross-reference style, page layout, typographic hierarchy, professional polish. Triggers on: "check typography", "fix formatting", "polish my paper", "check my LaTeX", "typographic review", "make it look professional", "check tables", "fix captions". Companion to manuscript-review (content) and arxiv-preflight (compliance).
Install
npx vskill@latest install mathews-tom/armory/manuscript-typographySKILL.md
Manuscript Typography Audit
Pipeline position: Phase 2b (polish audit). Runs in parallel with manuscript-provenance. Depends on: content settled after Phase 1 fixes. See /manuscript-pipeline for full execution order.
Purpose
Audit a LaTeX manuscript for widely-accepted academic typographic conventions that directly affect readability and professional appearance. These are not venue-specific formatting rules — they are cross-venue norms from decades of academic publishing that experienced readers and reviewers notice.
A paper with solid content but poor typography signals inexperience. Reviewers form impressions from visual presentation before reading a single sentence.
Relationship to Other Skills
| Concern | manuscript-review | manuscript-typography (this) | arxiv-preflight | |
|---|---|---|---|---|
| Table content | Data quality, significant figures (§12) | Design: booktabs, alignment, headers, caption placement | Format compliance | |
| Figure content | Colorblind, axis labels, chartjunk (§12) | Design: font matching, backgrounds, subfigure style | Format/size compliance | |
| Rendered output | Legibility, float proximity, page breaks (§23) | Layout: widows, column balance, spacing, float specifiers | N/A | |
| Math notation | Notation consistency, operator formatting (§15) | Spacing, delimiter sizing, display vs inline choices | N/A | |
| Cross-refs | Citation hygiene (§11) | Reference style consistency, non-breaking spaces | N/A | |
| Typography | N/A | Dashes, quotes, units, micro-typography | N/A | |
| Polish | N/A | TODOs, placeholders, metadata, bookmarks | N/A |
Rule: This skill audits design and typography. manuscript-review audits content and communication. arxiv-preflight audits submission compliance. No overlap — each reads different signals from the same document.
Workflow
1. Ingest
Read all .tex files (main + \input/\include targets). Identify:
- Document class and loaded packages
- Two-column vs single-column layout
- Target venue (if identifiable from class/template)
If compiled PDF is available, use it for rendered inspection checks.
2. Audit Passes
For each check:
- FAIL — convention violated (document file, line, specific fix with LaTeX code)
- WARN — debatable but worth considering
- PASS — convention followed
- N/A — not applicable
Pass 1 — Table Design
1.1 Rule structure
- Use
booktabspackage:\toprule,\midrule,\bottomrule - No
\hline(replace with booktabs equivalents) - No vertical rules (
|in column spec) — vertical lines in tables are a hallmark of amateur typesetting - No double horizontal rules
- Exception: if the document class mandates a specific table style, note but don't flag
1.2 Column alignment
- Numeric columns: right-aligned or decimal-aligned (
Scolumn fromsiunitx) - Text columns: left-aligned
- Center alignment: only for single characters or very short labels
- Header alignment: matches column alignment or centered
1.3 Header formatting
- Headers visually distinct from body (bold is standard:
\textbf{}) - No ALL CAPS headers (use bold or small caps)
- Units in headers: parenthesized or bracketed —
Latency (ms)notLatency ms
1.4 Best-result indication
- If highlighting best results: consistent method across all tables (bold, underline, or marker)
- Define the convention in the first table's caption or a footnote
- Do not mix bold-for-best and underline-for-best across tables
1.5 Table notes
- Footnotes/notes below the table, not in the caption
- Use
\tablenotes(threeparttable) or manual footnotes with consistent markers
1.6 Caption placement
- Table captions ABOVE the table (universal convention)
\caption{}before\begin{tabular}- Not below — below is for figures
1.7 Caption formatting
- Caption label ("Table 1:" / "Table 1.") in bold or small caps — visually distinct from the description text
- Caption description text smaller than body text —
\small(one step down) is standard;\footnotesizeacceptable - Use the
captionpackage to control this consistently:
- Never caption text at full body size — it visually competes with the main text and makes the document look untypeset
- Never caption text below
\footnotesize— becomes unreadable - Consistent across ALL captions (tables and figures use the same size/weight scheme)
1.8 Caption style
- Consistent prefix: "Table 1:" or "Table 1." — not mixed (controlled by
labelsepincaptionpackage) - First sentence describes what the table shows
- Caption is self-contained (interpretable without body text)
1.9 Spacing
\addlinespace(booktabs) for logical row groups, not empty rows- No
\\[6pt]manual spacing hacks inside tables - Column separation adequate — use
@{\hspace{...}}or\setlength{\tabcolsep}if too compressed
1.10 Long tables
- Tables exceeding one page: use
longtableorsupertabular - Repeated headers on continuation pages
- No font-size reduction to force a table onto one page (below
\smallis unreadable)
Pass 2 — Figure Design
2.1 Caption placement
- Figure captions BELOW the figure (universal convention)
\caption{}after\includegraphics- Not above — above is for tables
2.2 Caption formatting
- Same size/weight scheme as table captions — the
captionpackage applies uniformly - Caption label ("Figure 1:") bold or small caps (matches table label style)
- Caption description text at
\smallor\footnotesize(matches table caption size) - If not using
captionpackage: verify manually that figure and table captions use identical formatting
2.3 Caption style
- Consistent prefix: "Figure 1:" or "Figure 1." or "Fig. 1:" — pick one for all figures
- Matches table caption style (if tables use "Table 1:", figures use "Figure 1:")
- Caption self-contained
2.4 Subfigure labeling
- Consistent style: (a), (b), (c) — not mixed with (i), (ii), (iii) or a), b), c)
- Use
subcaptionorsubfigurepackage — not manual lettering - Subfigure labels referenced consistently in text: "Figure 1(a)" not "Figure 1a" or "Figure 1 (a)" mixed
2.5 Font consistency
- Text within figures (axis labels, annotations, legends) uses a font that complements the body text
- Matching the body serif (Computer Modern, Times) or a clean sans-serif (Helvetica, CMSans) is standard
- Matplotlib/R/MATLAB default fonts are visually distinct from LaTeX body text — flag when obvious
- Font size in figures after scaling: readable at rendered size (cross-reference with manuscript-review §23)
- Figure-internal text should be comparable to caption text size — not larger than body text, not smaller than footnotes
2.6 Background
- White or transparent background — no gray plot backgrounds (matplotlib default
axes.facecolor) - No colored frame/border unless it serves a purpose
2.7 Aspect ratio
- Plots not stretched or compressed
- Standard aspect ratios: 4:3, 16:9, golden ratio, or square
- All panels in a multi-panel figure use the same aspect ratio
2.8 Consistent framing
- All figures use the same border/frame approach (all framed or all unframed)
- Consistent padding/margins around figure content
Pass 3 — LaTeX Typography
3.1 Dashes
- Hyphen (
-): compound words (well-known, state-of-the-art) - En-dash (
--): number ranges (10--20, pages 5--12, 2020--2023). Common error: hyphen used for ranges ("10-20" → "10--20"). - Em-dash (
---): parenthetical asides and emphatic breaks. Em-dashes are accepted by CMOS 18, APA 7, and MLA 9 in academic prose — flag the following instead of banning the character: - Spacing inconsistency: CMOS/APA/MLA use closed em-dashes (
text---text); journalistic AP style uses spaced (text --- text). Pick one and apply uniformly. Mixed usage = FAIL. - Overuse: more than ~1 em-dash per paragraph or ~3 per page tips into conversational register. Flag clusters as WARN; suggest restructuring to commas/colons/parentheses.
- Misuse for ranges: em-dash where en-dash belongs (
pages 5---12should bepages 5--12) = FAIL. - AI-tell heuristic (advisory only, MEDIUM): dense em-dash usage combined with other AI-pattern markers can indicate unedited LLM output. Defer to
manuscript-reviewPass 7b for that judgment, do not flag em-dashes alone as AI tells.
3.2 Quotation marks
- Opening:
(backticks) - Closing:
''(straight single quotes) - Not
"straight quotes"— renders incorrectly in TeX - Nested: `
inner' `insideouter''`
3.3 Ellipsis
\ldotsor\dots— not three periods (...)\ldotsproduces properly spaced ellipsis
3.4 Non-breaking spaces
- Before
\ref:Figure~\ref{fig:x},Table~\ref{tab:x},Section~\ref{sec:x} - Before
\cite:previous work~\cite{smith2020} - Between number and unit:
10~msor10\,ms - Prevents line breaks that separate a label from its referent
3.5 Ties and thin spaces
- Thin space between number and unit:
10\,ms,5\,GB,100\,K(usesiunitxfor consistency) - No space inside parenthetical citations:
\cite{x}not\cite{ x } - No double spaces in source (harmless but untidy)
3.6 Semantic markup
\emph{text}over{\it text}or\textit{text}—\emphnests correctly\textbf{}for bold, not{\bf }- New-style font commands (
\textbf,\textit,\textsf) over old-style (\bf,\it,\sf) \textrm{}for roman text inside math mode, not manual font switches
3.7 Micro-typography
\usepackage{microtype}— enables character protrusion and font expansion- Dramatically improves line breaking and margin alignment with zero effort
- If not loaded, recommend adding it
3.8 Special characters
\¬&in text\%not%in text\#not#in text\_not_in text- Degree symbol:
$^\circ$or\textdegree— not°(Unicode) - Multiplication:
$\times$— notx
3.9 Ligatures
- ff, fi, fl, ffi, ffl must render as proper ligatures (default in CM/Latin Modern fonts)
- Flag if
\DisableLigaturesormicrotypeligatures=falseis set globally without reason - Some fonts break ligatures — if text renders "find" as "f ind" or similar, the font config is wrong
- Ligatures should NOT cross morpheme boundaries in some compound words (e.g., "shelfful") — minor, WARN only
3.10 Italic usage — three distinct purposes
- Emphasis:
\emph{important}— for stress within a sentence - Foreign words:
\textit{in vivo},\textit{a priori}— for non-English terms not yet naturalized - Terms being defined:
\textit{A convolutional layer is...}— for the first occurrence of a technical term being introduced - Using bold, ALL CAPS, or colored text for emphasis in running prose = FAIL
- Consistent: if "in vitro" is italicized on page 3, it must be italicized everywhere (or nowhere if treated as naturalized)
3.11 No color for emphasis
- Colored text in running prose for emphasis (red for important, blue for terms) = FAIL
- Color belongs in figures, tables, and hyperlinks — not in body text
- Exception:
hyperreflink colors for cross-references and URLs
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/manuscript-typography/SKILL.md
Popularity
- Repository stars
- 251
- Repository forks
- 37
- 7-day trend score
- 28
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/mathews-tom/armory/manuscript-typography)