mcpField
M
manuscript-typography

manuscript-typography

github.com/mathews-tom文档处理33744 次安装2 天前更新
代码仓库

关于 manuscript-typography

该技能审计 LaTeX 学术手稿的排版与视觉规范,适用于希望提升论文可读性和专业呈现的作者。它覆盖表格、图形、LaTeX 字体排印及页面布局,并与内容审查和投稿合规检查区分。

主要功能

  1. 01检查表格线条、对齐与标题
  2. 02审查图注及子图标签格式
  3. 03检查破折号、引号和空格用法
  4. 04审查字体、微排版与特殊字符
  5. 05检查页面布局及占位内容

适用场景

  1. 01投稿前统一论文的图表样式
  2. 02查找 LaTeX 文本中的排版问题
  3. 03检查引用、单位和编号间距

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mathews-tom/armory --skill manuscript-typography

安装后在 Claude Code 中输入/manuscript-typography确认已加载。

附带文件evals/cases.yaml

详细介绍

手稿排版审查

流程位置: 第 2b 阶段(润色审查)。与 manuscript-provenance 并行运行。依赖项:第 1 阶段修复完成后,内容已定稿。请参阅 /manuscript-pipeline,了解完整执行顺序。

目的

审查 LaTeX 手稿是否遵循广受认可、直接影响可读性和专业外观的学术排版规范。这些不是特定投稿场所的格式要求,而是数十年来学术出版形成的跨场所规范,资深读者和审稿人都会留意。

内容扎实但排版欠佳的论文会显得缺乏经验。审稿人往往在阅读任何句子之前,就会根据视觉呈现形成印象。

与其他技能的关系

关注点manuscript-reviewmanuscript-typography(本技能)arxiv-preflight
表格内容数据质量、有效数字(§12)设计:booktabs、对齐、表头、标题位置格式合规性
图表内容色盲友好、坐标轴标签、图表垃圾(§12)设计:字体匹配、背景、子图样式格式/尺寸合规性
渲染输出可读性、浮动体位置、分页(§23)布局:孤行、分栏平衡、间距、浮动体定位符不适用
数学符号符号一致性、运算符格式(§15)间距、定界符尺寸、行间公式与行内公式的选择不适用
交叉引用引文规范(§11)引用样式一致性、不换行空格不适用
排版不适用短横线、引号、单位、微排版不适用
润色不适用TODO、占位符、元数据、书签不适用

规则: 本技能审查设计和排版。manuscript-review 审查内容和表达。arxiv-preflight 审查投稿合规性。三者互不重叠——分别从同一文档中读取不同信号。

工作流

1. 导入

读取所有 .tex 文件(主文件及 \input/\include 目标)。识别:

  • 文档类和已加载的包
  • 双栏还是单栏布局
  • 目标投稿场所(如果能从类/模板中判断)

如果有编译后的 PDF,请用它检查渲染效果。

2. 审查

针对每项检查:

  • FAIL — 违反规范(注明文档文件、行号及包含 LaTeX 代码的具体修复方法)
  • WARN — 存在争议,但值得考虑
  • PASS — 符合规范
  • N/A — 不适用

第 1 轮 — 表格设计

1.1 规则结构

  • 使用 booktabs 包:\toprule、\midrule、\bottomrule
  • 不使用 \hline(替换为 booktabs 对应命令)
  • 不使用竖线(列格式中的 |)——表格中的竖线是排版不专业的典型标志
  • 不使用双横线
  • 例外:如果文档类要求使用特定表格样式,请注明,但不要标记为问题
% 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 列对齐

  • 数值列:右对齐或按小数点对齐(使用 siunitx 的 S 列)
  • 文本列:左对齐
  • 居中对齐:仅用于单个字符或非常短的标签
  • 表头对齐:与列对齐方式一致,或居中对齐

1.3 表头格式

  • 表头在视觉上应与正文区分开(通常使用粗体:\textbf{})
  • 表头不要全部使用大写(使用粗体或小型大写)
  • 表头中的单位:用圆括号或方括号括起——使用 Latency (ms),而不是 Latency ms

1.4 最佳结果标示

  • 如果要突出最佳结果:所有表格中的方法必须一致(粗体、下划线或标记)
  • 在第一个表格的标题或脚注中说明标示规则
  • 不要在不同表格中混用“粗体表示最佳”和“下划线表示最佳”

1.5 表格注释

  • 脚注/注释放在表格下方,而不是标题中
  • 使用 \tablenotes(threeparttable)或带有统一标记的手动脚注

1.6 标题位置

  • 表格标题放在表格上方(通用规范)
  • \caption{} 放在 \begin{tabular} 之前
  • 不要放在下方——下方位置用于图

1.7 标题格式

  • 标题标签(“Table 1:”/“Table 1.”)使用 粗体或小型大写——在视觉上与描述文本区分开
  • 标题描述文本应小于正文文本——通常使用 \small(小一级);也可接受 \footnotesize
  • 使用 caption 包统一控制格式:
\usepackage[font=small, labelfont=bf]{caption}
% label ("Table 1:") = bold, description = \small
% applies uniformly to all figures AND tables
  • 标题文本不要使用与正文相同的字号——这会在视觉上与正文争抢注意力,让文档显得未经排版
  • 标题文本不要小于 \footnotesize——会变得难以阅读
  • 所有标题(表格和图使用相同的字号/字重方案)都应保持一致

1.8 标题风格

  • 前缀保持一致:“Table 1:”或“Table 1.”——不要混用(由 caption 包中的 labelsep 控制)
  • 第一句说明表格展示的内容
  • 标题应自成一体(无需正文也能理解)

1.9 间距

  • 使用 \addlinespace(booktabs)分隔逻辑行组,不要插入空行
  • 不要在表格中使用 \\[6pt] 手动调整间距
  • 列间距应足够——如果过于紧凑,使用 @{\hspace{...}} 或 \setlength{\tabcolsep}

1.10 长表格

  • 超过一页的表格:使用 longtable 或 supertabular
  • 在续页重复表头
  • 不要通过缩小字号强行将表格压缩到一页内(小于 \small 会难以阅读)

第 2 轮 — 图表设计

2.1 标题位置

  • 图注置于图下方(通用惯例)
  • \includegraphics 之后使用 \caption{}
  • 不要置于上方——上方是表格的惯例

2.2 标题格式

  • 与表格标题采用相同的字号/字重方案——caption 宏包会统一应用格式
  • 标题标签(“Figure 1:”)使用粗体或小型大写字母(与表格标签样式一致)
  • 标题描述文本使用 \small 或 \footnotesize(与表格标题字号一致)
  • 如果不使用 caption 宏包,请手动确认图注与表格标题格式一致

2.3 标题样式

  • 使用统一的前缀:“Figure 1:” 或 “Figure 1.” 或 “Fig. 1:”,所有图统一采用一种
  • 与表格标题样式一致(如果表格使用 “Table 1:”,图就使用 “Figure 1:”)
  • 标题内容应完整自足

2.4 子图标签

  • 使用统一样式:(a)、(b)、(c)——不要与 (i)、(ii)、(iii) 或 a)、b)、c) 混用
  • 使用 subcaption 或 subfigure 宏包——不要手动添加字母标签
  • 正文中引用子图时保持一致:“Figure 1(a)”,不要与 “Figure 1a” 或 “Figure 1 (a)” 混用

2.5 字体一致性

  • 图内文本(坐标轴标签、注释、图例)使用与正文协调的字体
  • 与正文衬线字体(Computer Modern、Times)一致,或采用简洁的无衬线字体(Helvetica、CMSans)都是常见做法
  • Matplotlib/R/MATLAB 的默认字体与 LaTeX 正文字体在视觉上差异明显——明显时请标出
  • 缩放后图中的字号应在最终呈现尺寸下清晰可读(参见 manuscript-review §23)
  • 图内文本字号应与标题文字相近——不大于正文,不小于脚注

2.6 背景

  • 使用白色或透明背景——不要使用灰色绘图背景(matplotlib 默认的 axes.facecolor)
  • 除非有特定用途,否则不要添加彩色边框

2.7 宽高比

  • 不要拉伸或压缩图表
  • 常用宽高比:4:3、16:9、黄金比例或正方形
  • 多面板图中的所有面板应采用相同的宽高比

2.8 边框一致性

  • 所有图使用相同的边框处理方式(全部带框或全部不带框)
  • 图中内容周围的留白/边距保持一致

第 3 轮 — LaTeX 排版

3.1 破折号

  • 连字符(-):用于复合词(well-known、state-of-the-art)
  • 短破折号(--):用于数字范围(10--20、页码 5--12、2020--2023)。常见错误:范围使用连字符(“10-20” → “10--20”)。
  • 长破折号(---):用于插入语和强调性停顿。学术文本中使用长破折号符合 CMOS 18、APA 7 和 MLA 9 的规范——请标出以下问题,不要一概禁止使用:
    • 空格使用不一致: CMOS/APA/MLA 使用无空格长破折号(text---text);新闻体 AP 风格使用两侧有空格的形式(text --- text)。选定一种并统一使用。混用 = FAIL。
    • 过度使用: 每段超过约 1 个长破折号,或每页超过约 3 个,会使文风显得口语化。集中出现时标记为 WARN;建议改用逗号、冒号或括号调整句子结构。
    • 用于范围时不当: 应使用短破折号时却使用长破折号(pages 5---12 应为 pages 5--12)= FAIL。
    • AI 文风判定启发式(仅供参考,MEDIUM): 密集使用长破折号,同时出现其他 AI 文风标记,可能表明 LLM 输出未经编辑。是否作此判断请参照 manuscript-review 第 7b 轮;不要仅因使用长破折号就将其标记为 AI 文风。

3.2 引号

  • 左引号: ``(反引号)
  • 右引号:''(直单引号)
  • 不要使用 "straight quotes"——在 TeX 中的呈现效果不正确
  • 嵌套引号:在 outer'' 内使用 `inner' ``

3.3 省略号

  • 使用 \ldots 或 \dots——不要使用三个句点(...)
  • \ldots 会生成间距恰当的省略号

3.4 不换行空格

  • 在 \ref 前使用:Figure~\ref{fig:x}、Table~\ref{tab:x}、Section~\ref{sec:x}
  • 在 \cite 前使用:previous work~\cite{smith2020}
  • 数字与单位之间使用:10~ms 或 10\,ms
  • 避免标签与其所指内容因换行而分开 3.5 连字符与细空格
  • 数字与单位之间使用细空格:10\,ms、5\,GB、100\,K(使用 siunitx 以保持一致)
  • 括号式引用内部不留空格:使用 \cite{x},而不是 \cite{ x }
  • 源文件中不要出现连续两个空格(虽无害,但不整洁)

3.6 语义标记

  • 使用 \emph{text},而不是 {\it text} 或 \textit{text}——\emph 可以正确嵌套
  • 使用 \textbf{} 表示粗体,不要使用 {\bf }
  • 使用新版字体命令(\textbf、\textit、\textsf),而不是旧版命令(\bf、\it、\sf)
  • 数学模式中的罗马体文本使用 \textrm{},不要手动切换字体

3.7 微排版

  • \usepackage{microtype}——启用字符突出和字体扩展
  • 无需额外操作即可大幅改善断行和页边距对齐
  • 如果尚未加载,建议添加

3.8 特殊字符

  • 正文中的 & 应写作 \&
  • 正文中的 % 应写作 \%
  • 正文中的 # 应写作 \#
  • 正文中的 _ 应写作 \_
  • 度数符号:使用 $^\circ$ 或 \textdegree,不要使用 °(Unicode)
  • 乘号:使用 $\times$,不要使用 x

3.9 连字

  • ff、fi、fl、ffi、ffl 必须排版为正确的连字(CM/Latin Modern 字体中的默认行为)
  • 如果全局设置了 \DisableLigatures 或 microtype 的 ligatures=false,且没有合理原因,请标记
  • 某些字体会破坏连字——如果文本中的 "find" 被排成类似 "f ind" 的形式,说明字体配置有误
  • 在某些复合词中,连字不应跨越语素边界(例如 "shelfful")——这是轻微问题,仅发出警告

3.10 斜体的三种不同用途

  • 强调: \emph{important}——用于句中的重读
  • 外来词: \textit{in vivo}、\textit{a priori}——用于尚未自然化的非英语术语
  • 待定义术语: \textit{A convolutional layer is...}——用于首次引入技术术语时
  • 在行文中使用粗体、全大写或彩色文字来强调 = 失败
  • 保持一致:如果第 3 页的 "in vitro" 使用斜体,那么全文都必须使用斜体(如果视为已自然化术语,则全文都不使用斜体)

3.11 不要使用颜色来强调

  • 在行文中使用彩色文字来强调(例如用红色表示重要内容、用蓝色表示术语)= 失败
  • 颜色应用于图、表和超链接,而不是正文
  • 例外:用于交叉引用和 URL 的 hyperref 链接颜色

3.12 句间距

  • LaTeX 默认会在句末句点后添加额外空格,这是传统的 TeX 行为。
  • \frenchspacing 会禁用此行为(统一间距)。两种方式都可以接受,但应有意选择。
  • 如果使用带句点的缩写(例如 "et al."、"Fig."、"vs."),且未使用 \frenchspacing,请在句点后添加 \ 或 ~,以免 LaTeX 将其视为句末:使用 et al.\ ,或在大写字母后的真正句末句点前使用 \@.
  • 常见错误:"...by Dr. Smith"——LaTeX 会误以为句子在 "Dr." 处结束,从而添加额外空格。修正为:Dr.\ Smith

3.13 行间公式与行内公式

  • 含有分数(\frac)、求和(\sum)、乘积(\prod)、积分或矩阵的表达式应使用行间公式,而不是行内公式——行内排版会压缩表达式并扰乱行距
  • 较短的表达式(单个变量、简单下标、如 $x = 5$ 这样的简短等式)应保持为行内公式
  • 经验法则:如果表达式会改变行高,就使用行间公式
  • 作为句子一部分的行间公式仍需使用正确的标点
  • 使用 \[ ... \] 或 equation 环境,不要使用 $$ ... $$(这是纯 TeX 而非 LaTeX,且间距不正确) 3.14 URL 处理
  • URL 应放在 \url{} 或 \href{} 中,不要使用裸文本或 \texttt{}
  • \url{} 会在适当的字符(/、.、- 等)处启用换行
  • \texttt{https://...} 不会跨行换行 → 产生溢出框
  • 加载 url 或 hyperref 宏包(hyperref 包含 url 的功能)
  • 如果加载了 hyperref:确认在 \hypersetup 中设置了 breaklinks=true
  • 参考文献条目中的长 URL 需要额外的换行点。检查是否有 \UrlBreaks:
\makeatletter
\g@addto@macro{\UrlBreaks}{\UrlOrds}
\makeatother
  • 如果没有此设置,即使使用 \url{} 包裹,包含较长路径段的 URL(博客文章和文档中常见)仍会在参考文献中溢出页边距

第 4 轮 — 单位和数字

4.1 数字与单位之间的空格

  • 数字与单位之间留空格:“10 ms”,而非“10ms”
  • 最佳做法:使用 siunitx 宏包 — \SI{10}{\milli\second} 或 \qty{10}{ms}
  • 整篇文档保持一致
  • 例外:百分号和度数可以紧跟数字(惯例不一,选定一种并保持一致)

4.2 单位排版

  • 单位使用正体/罗马字体,而非斜体:“10 ms”,而非“10 ms”
  • 在数学模式中:使用 $t = 10\,\mathrm{ms}$,而非 $t = 10\,ms$(斜体)
  • 复合单位:使用 m/s 或 m\,s$^{-1}$,并保持风格一致

4.3 数字格式

  • 小数分隔符保持一致(英语中使用句点)
  • 大数:千位分隔符保持一致(逗号、窄空格或不使用分隔符)
  • 范围:使用短破折号(10--20),而非连字符(10-20)
  • 负数:正文中使用规范的负号($-5$),而非连字符(-5)

4.4 有效数字

  • 同一指标在所有表格和正文中使用相同的小数位数
  • 与 manuscript-review §12(内容一致性)交叉核对
  • 精度不应超过测量精度

4.5 百分比

  • 保持一致:“14.3%”或“14.3 %”,选定一种
  • 比较百分比时,区分“百分点”和“百分比”

4.6 行内分数

  • 正文中使用 \nicefrac{1}{2} 或 \sfrac{1}{2}(来自 xfrac),而非 $\frac{1}{2}$
  • 行内使用 $\frac{}{}$ 会产生较高的元素,破坏行间距
  • 在陈列公式和方程中,使用陈列分数(\frac)是正确的
  • 另一种做法:在非正式场合可使用“1/2”,但整篇文档的风格应保持一致

第 5 轮 — 交叉引用与引文

5.1 引用缩写的一致性

  • 选定一种并在全文统一使用:
    • 完整形式:"Figure"、"Table"、"Section"、"Equation"
    • 缩写形式:"Fig."、"Tab."、"Sec."、"Eq."
    • 同一类别中混用形式即为不合格
  • 常见惯例:括号内使用缩写,行文中使用完整形式 ("As shown in Fig. 1" 与 "Figure 1 shows...")

5.2 不换行空格

  • Figure~\ref{fig:x} — 防止 "Figure" 位于行尾,而 "3" 位于下一行开头
  • Eq.~\eqref{eq:x} — 同理
  • 这是最常见的 LaTeX 排版错误

5.3 公式引用

  • 形式一致:使用带括号的 (\ref{eq:x}) 或 \eqref{eq:x},不要混用
  • 形式一致:使用 "Equation (1)"、"Eq. (1)" 或 "(1)",选定一种

5.4 引文样式

  • 全文采用一致的方括号样式(作者—年份制或数字制,由 \bibliographystyle 决定)
  • 不要手动设置引文格式(硬编码 [1])——始终使用 \cite
  • 一个方括号内有多条引文时,使用 \cite{a,b,c},而非 \cite{a}\cite{b}\cite{c}
  • 引文与正文的衔接方式保持一致:"Smith et al. \cite{smith}" 或 "\citet{smith}",不要混用两种样式

5.5 拉丁文缩写和常见简写

  • "e.g.," 和 "i.e.," 后始终加逗号(CMOS)。全文保持一致。
  • "et al." — "al" 后加句点(它是 "alia" 的缩写)。不使用斜体(已自然化)。
  • "vs." — 后加句点。正式行文中使用 "Versus",括号内和表格中使用 "vs."。
  • "cf." — 后加句点。表示“比较”,而非“参见”。
  • "etc." — 后加句点。避免在正式学术写作中使用(建议明确列举)。
  • 如果未使用 \frenchspacing:在句中缩写的句点后添加 \ ,以避免额外空格(见 3.12)

5.6 Hyperref 一致性

  • 如果使用 hyperref:链接颜色保持一致(全部为蓝色、黑色或方框样式)
  • 不要混用有颜色和无颜色的交叉引用
  • 链接目标应能正确解析(输出中不得出现 "??")

第 6 轮 — 页面布局与间距

6.1 浮动体位置参数

  • 优先使用 [htbp],而非 [H] — [H] 会强制放置,且在浮动体较大时经常造成糟糕的分页和大片空白
  • [t] 或 [tb] 可用于将浮动体放在页顶或页底
  • 单独使用 [h] 不可靠(LaTeX 经常会忽略它)
  • 除非有特定原因,否则不要使用 [h!] 或 [H]

6.2 孤行与寡行控制

  • 段落中不得有单独一行落在页面顶部(孤行)或页面底部(寡行)
  • 在导言区设置 \widowpenalty=10000 和 \clubpenalty=10000
  • 或按需使用 \needspace 命令

6.3 栏目平衡(双栏布局)

  • 最后一页:两栏应保持平衡(使用 \usepackage{balance} 或 \usepackage{flushend})
  • 最后一页不平衡(一栏排满,另一栏空白)会显得未完成

6.4 手动调整间距

  • 标记过度使用的 \vspace{}、\hspace{}、\\[Xpt]、\bigskip、\smallskip
  • 这些只是掩盖布局问题的权宜之计,应从结构上解决
  • 可接受:在特定浮动体或标题场景中少量使用

6.5 分页

  • 没有正当理由时,不要在章节中间使用 \newpage 或 \clearpage
  • 参考文献前使用 \clearpage 可以接受

6.6 段落间距与缩进

  • 标准 LaTeX:段落缩进,不额外增加间距(默认设置)
  • 另一种方案:不缩进,增加垂直间距(\usepackage{parskip})
  • 两种方式混用(既缩进又增加间距)即为不合格——选定一种

6.7 段落缩进大小

  • 标准范围:1em 至 1.5em(LaTeX 默认的 \parindent 约为 1.5em)
  • 过大(>2em):浪费空间且显得夸张
  • 过小(<0.5em):缩进不明显,无法发挥作用
  • 没有理由时,不要将 \parindent 手动设为不常见的值 6.8 标题后的首段
  • 章节/小节标题后的首段不应缩进(LaTeX 默认行为)
  • 如果有人在首段中添加 \indent 或 \hspace{\parindent}:FAIL
  • 如果某个宏包或手动设置让首段缩进(\usepackage{indentfirst}):WARN — 这不符合英语学术排版惯例。在法语及部分欧洲排版传统中很常见;如果是有意设置,则可以接受。

6.9 行距

  • 标准:单倍行距,行高由文档类设置(默认 \baselinestretch = 1.0)
  • 通过 \linespread{1.6} 或 \usepackage[doublespacing]{setspace} 设置双倍行距 = FAIL,不适用于投稿——这是审稿/草稿模式,并非可直接出版的终稿模式
  • 如果文档类为 article 且启用了双倍行距,请标记——很可能忘记移除草稿设置
  • 对某些字体而言,将 \linespread{1.05} 调整到 \linespread{1.1} 属于可接受的微调

6.10 行长/每行字符数

  • 最佳范围:每行 45--75 个字符(Bringhurst);66 个字符最理想。
  • 标准栏宽约为 3.3 英寸/84 毫米的双栏布局自然能达到这一范围
  • 窄边距的单栏布局每行可能超过 90 个字符 → 可读性降低
  • 解决方法:增大边距、改用双栏,或使用 \usepackage{geometry} 设置合适的文本宽度
  • 如果边距由文档类设置(大多数会议文档类都如此),不要覆盖这些设置

6.11 延迟浮动体堆积

  • 阅读编译后的 PDF。检查前面小节中的浮动体(表格、图形)是否落在后面小节的中间,打断段落连贯性。
  • 症状:一个句子开头后,出现 1 页或更多浮动体,随后句子才继续。 读者会失去思路。
  • 常见原因:内容密集的章节中有很多 [t] 浮动体。LaTeX 会延迟放置无法排版的浮动体,导致它们堆积在下一个可用位置。
  • 诊断:统计每个小节边界处待排的浮动体数量。如果第 N 个小节中的浮动体出现在第 N+2 个或更后的小节开头之后,请标记为 FAIL。
  • 解决方法:添加 \usepackage{placeins},并在需要以连贯正文开头的小节前插入 \FloatBarrier(尤其是数据密集、浮动体较多的章节之后的方法、统计和讨论章节)。
  • 替代方案:使用 \usepackage[section]{placeins} 可自动阻止浮动体跨越 \section 边界。若要控制 \subsection 级别,则需要手动添加 \FloatBarrier。
  • 不要通过将所有浮动体改为 [H] 来修复——这会造成更严重的版面问题(大块空白)。在适当位置添加 \FloatBarrier 才是正确的解决方案。
  • 类别:AUTO-FIX(添加 \usepackage{placeins},并在受影响的小节前添加 \FloatBarrier)

6.12 连续的连字符断行

  • 连续 2--3 行以上以连字符结尾 = 视觉缺陷(排版中称为“猪鬃”或“梯子”)
  • 解决方法:使用 \hyphenpenalty=50(默认值),增大该值以减少断词频率,或局部改写
  • \usepackage[none]{hyphenat} 会完全禁用断词——在学术文本中很少适用
  • 使用 \hyphenation{spe-ci-fic-word} 指定个别有问题的单词

第 7 轮 — 代码和算法

7.1 行内代码

  • 行内代码/标识符使用 \texttt{} 或 \verb||
  • 格式保持一致:所有行内代码都使用相同格式
  • 不应出现:有时使用打字机字体,有时使用斜体,有时不做任何格式处理

7.2 代码清单

  • 使用 listings 或 minted 宏包,不要手动创建 \texttt 代码块
  • 语法高亮风格保持一致
  • 如果正文中引用了代码行,则添加行号
  • 字号:使用 \small 或 \footnotesize,不要用正文大小(太大)或 \scriptsize(太小)

7.3 算法伪代码

  • 使用 algorithm2e、algorithmic 或 algorithmicx 宏包
  • 缩进保持一致
  • 如果有引用,则添加行号
  • 明确说明输入/输出
  • 标题置于上方(遵循表格惯例——算法是程序性表格)

第 8 轮 — 字体层级

文档的字号和字重必须构成清晰的视觉层级。 读者会不自觉地利用字号和字重差异来解析文档结构。 当不同元素的字号相同时,层级便会消失,页面看起来也会很平。

8.1 字号层级参考

标准学术 LaTeX 字号层级(相对于正文字体):

元素相对于正文字体的字号字重样式
章/部标题+4--6pt粗体罗马体
节标题+2--3pt粗体罗马体
小节标题+1--2pt粗体罗马体
子小节标题与正文相同粗体或斜体罗马体
正文基准(10pt、11pt 或 12pt)常规罗马体
图注标签(“Figure 1:”)比正文低 1 级(\small)粗体罗马体
图注说明比正文低 1 级(\small)常规罗马体
表格正文与正文相同或使用 \small常规罗马体
图内文字与图注字号相当常规无衬线体或正文所用字体
脚注比正文低 2 级(\footnotesize)常规罗马体
代码列表比正文低 1--2 级常规等宽字体
页眉/页脚比正文低 1--2 级常规或斜体罗马体

大多数文档类会自动设置这种层级。此项检查会确认作者没有错误地覆盖它。

8.2 图注字号必须小于正文

  • 图注使用正文字号(例如,图注和正文均为 12pt)= 不合格
  • 图注应小 1 级:\small(正文为 12pt 时为 10.95pt,11pt 时为 9.5pt,10pt 时为 9pt)
  • \footnotesize 也可以接受(字号略小)
  • 应使用 caption 宏包来正确设置:
% Standard professional setup
\usepackage[font=small, labelfont=bf]{caption}

% Alternative: slightly smaller
\usepackage[font=footnotesize, labelfont=bf]{caption}

% With label separator control
\usepackage[font=small, labelfont=bf, labelsep=period]{caption}
% produces "Figure 1. Description" with bold "Figure 1."

8.3 图注标签必须与说明文字在视觉上有所区别

  • 标签(“Table 1:”/“Figure 1.”)应使用粗体——这是最常见的规范
  • 其他选择:小型大写字母(labelfont=sc)或粗体小型大写字母
  • 标签与说明文字的字重相同 = 不合格——读者无法快速找到图号
  • 标签是引用锚点;说明文字是正文。它们的作用不同,外观也必须有所区别。

8.4 标题的字重和字号应随层级深入而递减

  • \section > \subsection > \subsubsection,字号和视觉字重均应依次递减
  • 如果文档类已提供此功能(大多数都提供),不要用手动字体命令覆盖
  • 用 {\Large\textbf{...}} 代替 \section{} = 不合格——会破坏编号、书签和目录

8.5 脚注字号

  • 脚注应小于正文字号(LaTeX 标准默认值:\footnotesize)
  • 脚注与正文同字号 = 不合格
  • 脚注引用标记:使用上标数字(默认样式)——保持样式一致

8.6 表格正文字号

  • 表格正文应与正文字号相同或小 1 级(\small)
  • 不要为了适应页面而将表格设置为 \footnotesize 或更小——应重新设计表格(减少列数、缩短表头或拆分为两个表格)
  • 例外:列数很多且空间确实受限的附录表格——最小字号为 \small

8.7 页眉/页脚文字

  • 页眉/页脚的文字应小于正文(大多数文档类的标准设置)
  • 手动设置的页眉与正文同字号 = 视觉干扰,会与内容争抢注意力

8.8 正文中不要手动覆盖字号

  • 标记正文行文(非标题)中的 {\large ...} 或 {\Large ...}
  • 标记为适应页面限制而用 {\small ...} 包裹整个章节的情况
  • 这些设置会覆盖层级并造成视觉不一致
  • 例外:在特定浮动体/环境中使用 \small 是可以接受的

第 9 轮 — 专业润色

9.1 占位符检测

  • 任何 .tex 文件中都不得出现 "TODO"、"FIXME"、"XXX"、"PLACEHOLDER"、"TBD"
  • 不得出现 "Lorem ipsum" 或填充文本
  • 不得出现明显残留的草稿段落注释(有意进行版本追踪的情况除外)

9.2 PDF 元数据(如果有 PDF)

  • 在 PDF 属性中设置标题(不能是 "main.tex" 或留空)
  • 在 PDF 属性中设置作者
  • 配置 \hypersetup{pdftitle={...}, pdfauthor={...}}

9.3 PDF 书签

  • 加载 hyperref 并启用书签(默认启用)
  • 可通过 PDF 阅读器侧边栏导航浏览章节结构
  • 书签文本与章节标题一致

9.4 软件包加载一致性

  • 不得对同一软件包重复调用 \usepackage
  • 不得使用冲突的软件包选项
  • 软件包加载顺序应遵循惯例(将 hyperref 放在最后或接近最后)

9.5 盒子溢出/不足警告(必须检查 — 不得跳过)

  • 阅读 .log 文件(与主 tex 文件同名,例如 main.log 或 yuj.log)
  • 搜索 Overfull \\hbox — 每个实例都表示文本超出页边距
  • 报告每个实例的行号和 badness 值
  • 常见原因:参考文献中的长 URL、无法断行的行内数学公式、过宽的 \resizebox 表格、过长的 \texttt{} 字符串
  • 根据原因修复:
    • URL:使用 breaklinks=true + \UrlBreaks{\UrlOrds}(参见 3.14)
    • 行内数学公式:使用 \allowbreak 断行,或改用陈列公式
    • 表格:检查 \resizebox 的缩放比例,考虑使用 \small 或重新设计
    • \texttt{}:URL 改用 \url{},路径中添加 \allowbreak
  • 另请检查 badness > 5000 的 Underfull \\hbox — 这会导致行间距明显过松

9.6 未解析的引用

  • 未解析的 \ref 或 \cite 不得在渲染结果中显示 ??
  • 缺失的参考文献条目不得显示 [?]
  • 检查 .log 中是否有 "Reference ... undefined" 和 "Citation ... undefined"

3. 生成报告
# Typography Audit Report

**Manuscript:** [main tex file]
**Document class:** [detected class]
**Layout:** [single/two-column]
**Date:** [date]
**Verdict:** [Professional | Needs Polish | Significant Issues]

## Summary

| Category | Pass | Fail | Warn |
|----------|------|------|------|
| Table Design | | | |
| Figure Design | | | |
| LaTeX Typography | | | |
| Units & Numbers | | | |
| Cross-References | | | |
| Page Layout | | | |
| Code & Algorithms | | | |
| Typographic Hierarchy | | | |
| Professional Polish | | | |

## Fixes (ordered by impact)

### High Impact (visual professionalism)

[Issues that experienced readers/reviewers will notice immediately]

### Medium Impact (readability)

[Issues that affect reading experience but may not be consciously noticed]

### Low Impact (polish)

[Micro-issues that matter for camera-ready / final versions]

## Quick Fixes

[One-line fixes: add microtype, add booktabs, fix non-breaking spaces —
 items that take <1 minute each and improve the document noticeably]
4. 输出

将报告保存为项目目录中的 [manuscript-name]-typography-report.md。

报告应包含:

  • 结论
  • 高/中/低优先级问题的数量
  • 优先级最高且耗时最少的前 5 项快速修复
  • 每项修复对应的 LaTeX 代码

LaTeX 快速修复参考

可解决多个问题的常见单行导言区添加项:

% Micro-typography: better line breaks, margin alignment
\usepackage{microtype}

% Professional tables: \toprule, \midrule, \bottomrule
\usepackage{booktabs}

% Proper SI units: \SI{10}{\milli\second}
\usepackage{siunitx}

% Subfigures with consistent labeling
\usepackage[labelformat=parens]{subcaption}

% Widow/orphan prevention
\widowpenalty=10000
\clubpenalty=10000

% Two-column balance on last page
\usepackage{balance}  % add \balance before \bibliography

% Caption formatting: bold label, small text
\usepackage[font=small, labelfont=bf]{caption}

% Inline fractions: \nicefrac{1}{2}
\usepackage{nicefrac}

% PDF metadata
\hypersetup{
  pdftitle={Your Paper Title},
  pdfauthor={Author Names},
}

核心原则

  • 遵循惯例,而非个人偏好。 本次审查中的每项检查都反映了各类学术会议和期刊中排版良好的论文普遍遵循的规范。对于确实存在不同惯例的情况(例如百分比间距),请标记为 WARN,列出两种选项并要求保持一致。

  • 考虑文档类。 某些文档类会覆盖默认惯例(例如,IEEEtran 有自己的表格样式)。如果文档类规定了样式,就应遵循,不要强加相冲突的惯例。

  • 修复根源,而非表象。 用 \vspace{-3mm} 修复间距属于治标不治本。真正的修复方法是调整导致间距异常的浮动体说明符或软件包配置。

  • 优先处理快速见效的改进。 报告会按照影响与投入之比对修复建议排序。添加 \usepackage{microtype} 只需 5 秒,却能改善每一页的排版效果。应优先于重新设计所有表格的建议。

  • 不强加风格。 此技能不会强制采用“我偏好的风格”,而是要求文档内部保持一致,并遵循广泛认可的惯例。尊重作者有意且始终如一的选择。

评论

支持 Markdown