我希望一些表格和图形有两个标题,其中第一个标题描述一般内容,第二个标题提供一些附加信息。
这个想法是让第二个标题与第一个标题的标题文本左对齐,而不是与标题标签左对齐,即与表格(图)内容的描述左对齐,而不是与表格(图)一词左对齐。
我以为 caption 包中的选项 [format=hang,indention=0cm] 可以实现这一点,但第二个标题却居中显示。我原本以为第二个标题会被视为标题中的第二个段落,但显然我错了(见表 1)。
我在这个网站上找到了类似的查询(看这里),因此我修改了建议答案中的代码。对于短标题,它运行良好(见表 2),但对于长标题,第二个标题与第一个标题不对齐(见表 3)。我意识到我的代码可能效率不高,因此引入了一些错误,所以任何帮助都将不胜感激。
\documentclass{article}
\usepackage[format=hang,indention=0cm]{caption}
% some auxiliary lengths for aligning the captions
\newlength\mylena
\newlength\mylenb
\newlength\mylenc
% new command: \MyCaption{First numbered caption}{Second unnumbered caption}
\newcommand\MyCaption[2]{%
\captionsetup{belowskip=-\baselineskip}
\settowidth\mylena{\tablename~\thetable:~ #1}
\settowidth\mylenb{\small{#2}}
\settowidth\mylenc{\tablename~\thetable:~}
\caption{#1}
\caption*{\hspace*{\dimexpr%
\mylenb - \mylena + \mylenc + \mylenc \relax}
\small{#2}}
\setlength\belowcaptionskip{\baselineskip}
}
\begin{document}
\begin{table}[ht]
\caption[LoT entry]{The first caption
(The second caption)}
\centerline{
\begin{tabular}{lrr}
\hline
& C1 & C2 \\
\hline
R1 & & \\
R2 & & \\
\hline
\end{tabular}
}
\end{table}
\begin{table}[ht]
\MyCaption{The first caption}{(The second caption)}
\centerline{
\begin{tabular}{lrr}
\hline
& C1 & C2 \\
\hline
R1 & & \\
R2 & & \\
\hline
\end{tabular}
}
\end{table}
\begin{table}[ht]
\MyCaption{A long first caption A long first caption A long first caption A long first caption A long first caption }{(A long second caption A long second caption A long second caption A long second caption A long second caption )}
\centerline{
\begin{tabular}{lrr}
\hline
& C1 & C2 \\
\hline
R1 & & \\
R2 & & \\
\hline
\end{tabular}
}
\end{table}
\end{document}
答案1
如果省略测试短标题并将其居中并强制其始终使用段落设置的代码,则会更容易。nooneline
选项。
\documentclass{article}
\usepackage[format=hang,indention=0cm,nooneline]{caption}
% some auxiliary lengths for aligning the captions
\newlength\mylena
\newlength\mylenb
\newlength\mylenc
\makeatletter
% new command: \MyCaption{First numbered caption}{Second unnumbered caption}
\newcommand\MyCaption[2]{%
\caption[#1]{#1\par\small#2\par}%
}
\begin{document}
\begin{table}[htp]
\MyCaption{The first caption}{(The second caption)}
\centerline{
\begin{tabular}{lrr}
\hline
& C1 & C2 \\
\hline
R1 & & \\
R2 & & \\
\hline
\end{tabular}
}
\end{table}
\begin{table}[htp]
\MyCaption{A long first caption A long first caption A long first caption A long first caption A long first caption }{(A long second caption A long second caption A long second caption A long second caption A long second caption )}
\centerline{
\begin{tabular}{lrr}
\hline
& C1 & C2 \\
\hline
R1 & & \\
R2 & & \\
\hline
\end{tabular}
}
\end{table}
\end{document}