![结合 cleveref、subcaption 和 subtable 字前缀](https://linux22.com/image/339661/%E7%BB%93%E5%90%88%20cleveref%E3%80%81subcaption%20%E5%92%8C%20subtable%20%E5%AD%97%E5%89%8D%E7%BC%80.png)
我想使用subcaption
包将子表称为“面板”。表 1 的子表将是“面板 A”和“面板 B”。我可以很好地做到这一点,但是当我\cref{tab:01a}
对表 1 使用面板 AI 时,会得到类似“表 1 面板 A”的内容。我想找回“表 1”和“面板 A”之间的空格。将“面板”设置为区分大小写也很好,但这并不重要——我可以将所有内容都设置为标题大小写。
\documentclass{article}
% tables and captions
\usepackage[font=small]{caption}
\usepackage{subcaption}
% fix table captions
\renewcommand{\thesubtable}{Panel \Alph{subtable}}
\captionsetup[sub]{labelformat=simple, labelsep=colon, belowskip=12pt}
\usepackage{cleveref}
\begin{document}
I want to refer to \cref{tab:01}, \cref{tab:01a}, and \cref{tab:01b}.
\begin{table}
\caption{Outer.}
\label{tab:01}
\begin{subtable}{\hsize}
\caption{Inner a.}
\label{tab:01a}
\begin{tabular}{c}
1 \\
\end{tabular}
\end{subtable}
\begin{subtable}{\hsize}
\caption{Inner b.}
\label{tab:01b}
\begin{tabular}{c}
2 \\
\end{tabular}
\end{subtable}
\end{table}
\end{document}
这样就得到了没有空格的“表 1”和“面板 A”。
答案1
我会这样做:
\documentclass{article}
% tables and captions
\usepackage[font=small]{caption}
\usepackage{subcaption}
% fix table captions
\renewcommand\subtablename{Panel}
\renewcommand{\thesubtable}{\Alph{subtable}}
\captionsetup[sub]{labelformat=simple, labelsep=colon, belowskip=12pt}
\usepackage{cleveref}
\crefname{subtable}{panel}{panels}%
\Crefname{subtable}{Panel}{Panels}%
\begin{document}
I want to refer to \cref{tab:01}, \cref{tab:01a}, and \cref{tab:01b}.
\begin{table}
\caption{Outer.}
\label{tab:01}
\begin{subtable}{\hsize}
\caption{Inner a.}
\label{tab:01a}
\begin{tabular}{c}
1 \\
\end{tabular}
\end{subtable}
\begin{subtable}{\hsize}
\caption{Inner b.}
\label{tab:01b}
\begin{tabular}{c}
2 \\
\end{tabular}
\end{subtable}
\end{table}
\end{document}
答案2
你可以改变
\renewcommand{\thesubtable}{Panel \Alph{subtable}}
到
\renewcommand{\thesubtable}{ Panel \Alph{subtable}}
请注意“Panel”之前的额外空格。