我第一次使用 subcaption 包,不知道如何修改子表标题的格式。我希望我的子表标题为 1a、1b、1c 等等。字母 (a、b、c...) 不能大写,并且标题中不需要任何括号/标点符号。
由于这是我第一次使用该包,我从这个网站复制了其他人的代码,但它并没有创建我想要的输出类型。问题是我不知道如何更改它。以下是我复制的内容:
\usepackage{subcaption}
\DeclareCaptionSubType*[Alph]{table}
\DeclareCaptionLabelFormat{mystyle}{Table~\bothIfFirst{#1}{ ̃}#2}
\captionsetup[subtable]{labelformat=mystyle}
但是,这会创建 1.A、1.B、1.C 等格式的输出,这不是我想要的。
如果我删除最后三行代码,那么在用于\ref
引用表格的文本中,我确实会看到我想要的内容 - 1a、1b 等等,但表格本身的标题仅包含标题的描述性文本部分,而不包含标签。所以我想知道如何以我想要的方式格式化它?
答案1
此代码将1a, 1b,...
根据要求生成标签:
labelformat=simple
会压制父母;并且
\renewcommand{\thesubtable}{\thetable\alph{subtable}}
将构建子表标签为<table number><subtable number>
,第一个采用阿拉伯格式,第二个采用字母格式。
\documentclass{article}
\usepackage{subcaption}
\DeclareCaptionSubType*{table}
\captionsetup[subtable]{labelformat=simple}% no parens
\renewcommand{\thesubtable}{\thetable\alph{subtable}} % added <<<<<<<<
\begin{document}
\begin{table}[ht!]
\centering
\begin{subtable}{0.3\textwidth}
\centering
\begin{tabular}{cc}
a&b\\
c&d
\end{tabular}
\caption{sub one}
\end{subtable}
\begin{subtable}{0.3\textwidth}
\centering
\begin{tabular}{cc}
a&b\\
c&d
\end{tabular}
\caption{sub two}
\end{subtable}
\caption{Two sub--tables caption}
\end{table}
\begin{table}[ht!]
\centering
\begin{subtable}{0.3\textwidth}
\centering
\begin{tabular}{cc}
w&x\\
y&z
\end{tabular}
\caption{}\label{subt:t2a}
\end{subtable}
\begin{subtable}{0.3\textwidth}
\centering
\begin{tabular}{cc}
w&x\\
y&z
\end{tabular}
\caption{}\label{subt:t2b}
\end{subtable}
\caption{ As shown in \ref{subt:t2a} and in \ref{subt:t2b}...}
\end{table}
\end{document}