结合 cleveref、subcaption 和 subtable 字前缀

结合 cleveref、subcaption 和 subtable 字前缀

我想使用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”之前的额外空格。

相关内容