删除 lof 和 lot 中的浮点编号,但仅限于此

删除 lof 和 lot 中的浮点编号,但仅限于此

我遇到的情况是,通常使用 来给表格和图形分配一个数字\caption。由于我的文章必须符合 APA 样式规则,这与人们希望在文章布局中看到的任何内容基本上相反,但尤其与 LaTeX 自动执行的任何操作相反,所以我必须在文本中频繁重置浮点数,这使得 lof 和 lot 看起来非常尴尬。

有没有办法从 lof 和 lot 中删除浮点数,只留下简短的标题,但不使用,\caption*以便将数字和引用保留在文本中?或者我唯一的机会是通过对每个浮点数分别执行\caption*和来实现这一点\addcontentsline(希望您发现我不喜欢这个想法)?

答案1

不幸的是,该tocloft软件包没有针对此目的的特定宏。但是,标题/图/表号由宏排版\numberline。更改此项将更改 Toc/Lof/Lot 输出,但更改时请务必小心。

下面给出了目录中的章节/部分等编号,但没有给出 Lof/Lots 中的图表或表格编号。

% tocloftprob.tex  Getting Tocs, Lofs and Lot samples

\documentclass{book}
\begin{document}
\let\oldnumberline\numberline % save original definition of \numberline
\tableofcontents
\renewcommand{\numberline}[1]{} % ignore any numbers
\listoffigures
\listoftables
\let\numberline\oldnumberline % restore original definition

\chapter{One}
\section{Initial}
\begin{figure}
\caption{A figure}
\end{figure}
\begin{table}
\caption{A table}
\end{table}

\chapter{Two}
\section{Initial}
\begin{figure}
\caption{A figure}
\end{figure}
\begin{table}
\caption{A table}
\end{table}

\end{document}

答案2

如果你查看.lot.lof文件,你会看到如下条目:

\contentsline {figure}{\numberline {3}Picture of a tiger}{2}

去掉这个数字只不过是在和命令\numberline内改变一些定义。\listoffigures\listoftables

类似下面的方法应该可以工作:

\NewCommandCopy{\originallistoffigures}{\listoffigures} % ❶
\RenewDocumentCommand{\listoffigures}{} % ❷
   {{ % ❸
      \RenewDocumentCommand{\numberline}{m}{} % ❷ ❹
      \originallistoffigures
   }} 

我们首先保存❶的定义listoffigures

我正在尽我所能推动人们使用\NewDocumentCommandet al. 代替\newcommandet al.,如果您使用的是内核中没有的旧版本 LaTeX xparse,则需要加载\usepackage{xparse}或重写\RenewDocumentCommand实例❷ 以使用\renewcommand*

我们将定义括在一组额外的括号中 ❸,这样重新定义就不会影响我们不希望它影响的任何内容(例如,如果你的目录位于图表列表之后)。然后我们重新定义\numberline❹ 以接受其参数并将其丢弃。

为什么我没有%在每行后面立即加上 s?在 ❶ 处,这应该在序言中,空格无关紧要。在 ❷ 处,在\RenewDocumentCommand查找第三个参数时,任何空格都将被忽略。而在 ❸ 和 ❹ 处,\originallistoffigures当它打印图片列表标题位于图形列表的顶部,因此其周围的所有空格也将被忽略。

相关内容