Install
$ agentstack add skill-mathews-tom-armory-manuscript-typography ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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
% BAD
\begin{tabular}{|l|c|r|}
\hline
Method & Accuracy & F1 \\
\hline\hline
Ours & 0.94 & 0.91 \\
\hline
\end{tabular}
% GOOD
\begin{tabular}{lcr}
\toprule
Method & Accuracy & F1 \\
\midrule
Ours & 0.94 & 0.91 \\
\bottomrule
\end{tabular}
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:
\usepackage[font=small, labelfont=bf]{caption}
% label ("Table 1:") = bold, description = \small
% applies uniformly to all figures AND tables
- 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
3.12 Sentence spacing
- LaTeX default: extra space after periods (end-of-sentence). This is traditional TeX behavior.
\frenchspacingdisables it (uniform spacing). Both are acceptable — but be deliberate.- If using abbreviations with periods (e.g., "et al.", "Fig.", "vs.") without
\frenchspacing, add\or~after the period to prevent LaTeX from treating it as end-of-sentence:et al.\or use\@.before a true sentence-ending period after a capital letter. - Common bug: "...by Dr. Smith" — LaTeX adds extra space after "Dr." thinking it's end-of-sentence. Fix:
Dr.\ Smith
3.13 Display vs inline math
- Expressions with fractions (
\frac), sums (\sum), products (\prod), integrals, or matrices should be displayed, not inline — inline rendering compresses them and disrupts line spacing - Short expressions (single variables, simple subscripts, brief equalities like
$x = 5$) stay inline - Rule of thumb: if the expression changes the line height, display it
- Display equations that are part of a sentence still need proper punctuation
\[ ... \]orequationenvironment — not$$ ... $$(which is plain TeX, not LaTeX, and has incorrect spacing)
3.14 URL handling
- URLs in
\url{}or\href{}— never bare text or\texttt{} \url{}enables line breaking at appropriate characters (/, ., -, etc.)\texttt{https://...}does NOT break across lines → overfull boxes- Load
urlorhyperrefpackage (hyperref includes url functionality) - If
hyperrefis loaded: verifybreaklinks=trueis set in\hypersetup - Long URLs in bibliography entries need additional break points. Check for
\UrlBreaks:
\makeatletter
\g@addto@macro{\UrlBreaks}{\UrlOrds}
\makeatother
- Without this, URLs with long path segments (common in blog posts and documentation) will overflow margins in the bibliography even when wrapped in
\url{}
Pass 4 — Units and Numbers
4.1 Number-unit spacing
- Space between number and unit: "10 ms" not "10ms"
- Best:
siunitxpackage —\SI{10}{\milli\second}or\qty{10}{ms} - Consistent across the entire document
- Exception: percentages and degrees can touch the number (convention varies — pick one and stick to it)
4.2 Unit typography
- Units in upright/roman font, not italic: "10 ms" not "10 ms"
- In math mode:
$t = 10\,\mathrm{ms}$not$t = 10\,ms$(italic) - Compound units:
m/sorm\,s$^{-1}$— consistent style
4.3 Number formatting
- Consistent decimal separator (period in English)
- Large numbers: consistent thousands separator (comma, thin space, or none)
- Ranges: en-dash (
10--20) not hyphen (10-20) - Negative numbers: proper minus (
$-5$) not hyphen (-5) in running text
4.4 Significant figures
- Same metric → same number of decimal places across all tables and text
- Cross-reference with manuscript-review §12 (content consistency)
- Precision should not exceed measurement precision
4.5 Percentages
- Consistent: "14.3%" or "14.3 %" — pick one
- "Percentage points" vs "percent" distinction when comparing percentages
4.6 Inline fractions
- In running text:
\nicefrac{1}{2}or\sfrac{1}{2}(fromxfrac) — not$\frac{1}{2}$ $\frac{}{}$inline disrupts line spacing by creating a tall element- Display fractions (
\frac) are correct in display math and equations - Alternative: "1/2" is acceptable in informal contexts — consistent style across document
Pass 5 — Cross-References and Citations
5.1 Reference abbreviation consistency
- Pick one and use it everywhere:
- Full: "Figure", "Table", "Section", "Equation"
- Abbreviated: "Fig.", "Tab.", "Sec.", "Eq."
- Mixed within the same category is a FAIL
- Common convention: abbreviated in parentheticals, full in running prose
("As shown in Fig. 1" but "Figure 1 shows...")
5.2 Non-breaking spaces
Figure~\ref{fig:x}— prevents "Figure" at end of line, "3" at start of nextEq.~\eqref{eq:x}— same- This is the single most common LaTeX typography mistake
…
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Mathews-Tom
- Source: Mathews-Tom/armory
- License: MIT
- Homepage: https://mathews-tom.github.io/armory/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.