对于我的论文,我需要创建一个表格列表,其中包含主要章节的表格和每个章节的相应附录。对于每个附录表格,在章节和节号前设置大写字母 A,以将其与正文中的表格区分开来。不幸的是,这种设置导致表格列表中的表格编号错位,此外还与附录表格 10+ 的表格标题重叠(如下所示)。
理想情况下,我会让所有表格沿着表格列表中的点对齐。我查看了 tocloft 包,但无法弄清楚如何仅减少附录表格的左缩进。我还尝试遵循类似于这允许表格列表中的 A 具有零宽度,但我从未成功让它运行。
任何帮助都将不胜感激。以下是生成上述图像的代码。
\documentclass[11pt,oneside,english,doublespacing,liststotoc,toctotoc]{MastersDoctoralThesis}%
\begin{document}
\listoftables
\chapter{1}
\section{1}
\begin{table}
\caption{Table}%
\label{table1}
\end{table}
\section*{Appendix}
\setcounter{table}{0}
\renewcommand{\thetable}{A\thechapter.\arabic{table}}
\begin{table}
\caption{Table in appendix}%
\label{tablea1}
\end{table}
\setcounter{table}{9}
\begin{table}
\caption{Another table in appendix}%
\label{tablea10}
\end{table}
\end{document}
更新:
好的,我可以重新利用上面提到的方法用于表格列表内的表格编号对齐(参见下图和代码)。
\documentclass[11pt,oneside,english,doublespacing,liststotoc,toctotoc]{MastersDoctoralThesis}%
\usepackage{xparse}
\usepackage{kantlipsum}
\NewDocumentCommand{\optionaltable}{O{#3}om}{%
\renewcommand{\thetable}{\opta\standardthetable}%
\optzerotrue
\IfNoValueTF{#2}{\table[#1]{#3}}{\table[#1][#2]{#3}}%
\optzerofalse
\renewcommand{\thetable}{\standardthetable}%
}
\AtBeginDocument{\let\standardthetable\thetable}
\NewDocumentCommand{\opta}{}{%
\ifoptzero\makebox[0pt][r]{A}\else A\fi
}
\newif\ifoptzero
\begin{document}
\optzerotrue
\listoftables
\optzerofalse
\chapter{1}
\section{1}
\begin{table}
\caption{Table}%
\label{table1}
\end{table}
\section*{Appendix}
\setcounter{table}{0}
\renewcommand{\thetable}{\opta\standardthetable}
\begin{table}
\caption{Table in appendix}%
\label{tablea1}
\end{table}
\setcounter{table}{9}
\begin{table}
\caption{Another table in appendix}%
\label{tablea10}
\end{table}
\end{document}
我仍然不太确定代码到底在做什么,尤其是以下部分:
\NewDocumentCommand{\optionaltable}{O{#3}om}{%
\renewcommand{\thetable}{\opta\standardthetable}%
\optzerotrue
\IfNoValueTF{#2}{\table[#1]{#3}}{\table[#1][#2]{#3}}%
\optzerofalse
\renewcommand{\thetable}{\standardthetable}%
}
尽管如此,现在这已经可以达到我的目的了。
答案1
我认为这tocloft
对解决您的对齐问题没有帮助,但请尝试下面的 MWE(将 documentclass 更改为book
因为我无权访问您使用的类)。
% apptocprob.tex SE 546892
%\documentclass[11pt,oneside,english,doublespacing,liststotoc,toctotoc]{MastersDoctoralThesis}%
\documentclass{book}
\usepackage{tocloft}
\setlength{\cfttabnumwidth}{3em} % choose this to suit
\begin{document}
\listoftables
\renewcommand{\thetable}{\phantom{A}\thechapter.\arabic{table}}
\chapter{1}
\section{1}
\begin{table}
\caption{Table}%
\label{table1}
\end{table}
\section*{Appendix}
\setcounter{table}{0}
\renewcommand{\thetable}{A\thechapter.\arabic{table}}
\begin{table}
\caption{Table in appendix}%
\label{tablea1}
\end{table}
\setcounter{table}{9}
\begin{table}
\caption{Another table in appendix}%
\label{tablea10}
\end{table}
\end{document}
我曾经tocloft
为长表格编号留出额外的空间。在文档正文中,我已将常规表格编号更改为在数字前添加一个相当于 A 的空格。这一切都有效,至少在 LoT 中是这样。