Scissor LaTeX 中的 caption 和 subcaption
caption 和 subcaption 宏包在 Scissor LaTeX 中部分可用:figure 和 table 中的 \caption 可用,\captionsetup 会被忽略,\captionof 输出不带编号的文本,\caption* 仍会带编号,subfigure/subtable 会被当作单独的图计数,导致编号出错;请改为把所有部分放在同一个图中,只用一个标题。
宏包的作用
caption 可以改变标题的外观(\captionsetup{font=small, labelfont=bf}),增加了用于无编号标题的 \caption*,以及用于浮动体之外标题的 \captionof{figure}{...}。subcaption 增加了 subfigure 和 subtable 环境,用来容纳同一个图的各个部分,每个部分都有自己的标题,标号为 (a)、(b) 等。
这里可用的功能
| 命令 | 在 Scissor LaTeX 中 | 说明 |
|---|---|---|
figure 和 table 中的 \caption{...} | 可用 | “Figure 1: ...”、“Table 1: ...”。表格标题始终放在表格上方。 |
\caption[short]{long} | 部分可用 | 显示长文本;短文本被忽略。 |
\caption 之后的 \label | 可用 | |
\captionsetup{...} | 忽略 | 被忽略,不显示提示。 |
\caption*{...} | 部分可用 | 标题会显示,但带有编号。 |
\captionof{type}{...} | 部分可用 | 文本会显示,但没有“Figure”字样和编号;其后的 \label 在引用中显示为 ??。 |
subfigure, subtable | 支持不佳 | 每个部分都被当作一个独立的图计数。后面的图编号会错位,\ref 与标题中显示的编号也不一致。 |
\subcaption{...} | 部分可用 | 文本单独输出为一行。 |
示例
带标题和引用的图和表:
图和表中的 \caption
\begin{figure}[h]
\centering
\fbox{A sketch of the setup}
\caption{The test setup of Erika Mustermann.}\label{fig:setup}
\end{figure}
\begin{table}[h]
\centering
\caption{Results of the 44 runs.}\label{tab:runs}
\begin{tabular}{lr} Mean & 12.5 \\ Best & 9.1 \\ \end{tabular}
\end{table}
Figure~\ref{fig:setup} shows the setup and Table~\ref{tab:runs} the results.不要使用 subfigure,而是把各部分放进同一个图中,并在标题中说明它们。这里每张图像各占一行,所以各部分上下排列。编号是正确的,代码在 TeX 发行版中也能用:
一个图中的两个部分
\begin{figure}[h]
\centering
\includegraphics[width=0.4\linewidth]{graphicx-photo.png}
\includegraphics[width=0.4\linewidth]{graphicx-diagram.svg}
\caption{Weekly orders: (a) first quarter, top; (b) second quarter, bottom.}
\label{fig:orders}
\end{figure}
Figure~\ref{fig:orders}(a) shows the first quarter.\captionsetup 会被接受,但不起任何作用,所以这里的标号不是粗体,字号也没有变小:
\captionsetup 被忽略
\documentclass{article}
\usepackage{caption}
\captionsetup{font=small, labelfont=bf}
\begin{document}
\begin{figure}[h]
\centering
\fbox{Plot}
\caption{The caption keeps the normal style.}
\end{figure}
\end{document}兼容性
- 从 TeX 发行版迁移到这里: 使用普通
\caption的图和表显示正确。含有subfigure的文档可以排版,但从第一个子图开始,图的编号就会出错;\captionsetup设置的标题样式不会生效。 - 从这里迁移到 TeX 发行版: 文档无需修改即可在那里编译。届时标题会按照你的
\captionsetup设置显示。
完整手册见 CTAN:ctan.org/pkg/caption 和 ctan.org/pkg/subcaption。另请参阅图和图像和浮动体:放置图和表。
常见问题
如何让两个图并排?
目前还不能直接实现:图像会各占一行。请把各部分合并成一个图像文件,或者把它们上下排列在同一个 figure 中,并在一个标题里用 (a) 和 (b) 加以说明。
为什么我的表格标题在表格上方?
在这里,无论你把 \caption 写在哪里,表格标题都始终放在表格上方。这也是表格的常见样式。
本页的每个示例都在构建网站时由 Scissor LaTeX 排版。 最后更新:2026-11-07