跳到正文

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

LaTeX导言区: \usepackage{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.
由 Scissor LaTeX 排版: 图和表中的 \caption

不要使用 subfigure,而是把各部分放进同一个图中,并在标题中说明它们。这里每张图像各占一行,所以各部分上下排列。编号是正确的,代码在 TeX 发行版中也能用:

一个图中的两个部分

LaTeX导言区: \usepackage{graphicx}在编辑器中打开 (在新标签页中打开)
\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.
由 Scissor LaTeX 排版: 一个图中的两个部分

\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