我正在写一篇很长的论文,但我并不完全确定“图片列表”部分的显示要求是什么。目前,我的所有图片都有一个长标题和一个短标题:
\caption[Short Caption]{Long Caption}
我希望能够切换全部\listoffigures
在我决定选择一种风格或另一种风格时,我会在两个选项之间选择标题。
答案1
此代码要么只启用长标题,LoF
要么启用常规短标题,如宏的可选参数所示\caption
(实际上是[...]
的分隔参数\@caption
)
我添加了一个开关来控制行为:
- 说
\addcaptionsshorttrue
只使用简短的字幕 - 说
\addcaptionsshortfalse
使用长条目
我已经使用、和类对此book
进行article
了memoir
测试scrbook
。
此外,重新定义的\caption
命令首先检查\@captype
宏是否扩展为figure
,即它是图形标题。否则,每个标题(使用该\@captype
机制)都会将长条目或短条目写入其相关目录。
\captionof
对于包没有进行任何更改caption
。
\documentclass{book}
\usepackage{caption}
\usepackage{xparse}
\usepackage{pgffor}
\makeatletter
\let\latex@@caption\caption
\newif\ifallcaptionsshort% toggle switch
\allcaptionsshorttrue% Use the short ones
\RenewDocumentCommand{\caption}{+o+m}{%
\def\@figcaptype{figure}
\ifx\@captype\@figcaptype
\ifallcaptionsshort
\IfValueTF{#1}{%
\latex@@caption[#1]{#2}%
}{%
\latex@@caption[#2]{#2}% No [#1] given, use the long caption then!
}
\else
\latex@@caption[#2]{#2}%
\fi
\else
\IfValueTF{#1}{%
\latex@@caption[#1]{#2}%
}{%
\latex@@caption[#2]{#2}% No [#1] given, use the long caption then!
}
\fi
}
\makeatother
\begin{document}
\allcaptionsshortfalse% Use the long ones
\listoffigures
\listoftables
\foreach \x in {1,...,10}{%
\begin{figure}
\caption[Short title \x]{Some long dummy figure caption \x}
\end{figure}
\begin{table}
\caption[Short table \x]{Some long dummy table caption \x}
\end{table}
}
\end{document}
答案2
(这个答案太长,无法放入评论中)
浮点数的含义
浮动环境的含义是,将一些内容(表格、图像等)合并到普通文本中,这些内容太大了。例如,想象一个表格,其中包含一个长期化学实验的结果。其中会有一行又一行的 pH 值,一周的每一分钟都是一行。
您不会将这些数据放入普通文本中,因为对于温和的读者来说,在能够阅读下一个结论之前挖掘所有数据会令人厌恶。
正常的做法是,在文章中描述你做了什么,环境如何适应,你使用了哪些起始值等等。然后你用一种总结的方式描述,实验在很长时间内发生了什么,你进行了什么,以及你最终得到了什么结果。然后,你就会得出结论。...
温和的读者可能会相信你的描述。在这种情况下,他不需要看你的表格数据。但他也可能不同意你的结论。在这种情况下,他必须查阅表格才能找到你没有注意到的细节……
因此,我们确实有同一个故事的两个部分:包含第一手数据的表格和包含结论的书面文本。
应该建立一个好的文档,以便您可以只查看表格数据或只查看文本,以获取所需的所有信息。
含义\caption
命令\caption
是一种工具,它使表格(在我们的例子中)浮动,成为单一的信息源。表格上方的标题应包含所有需要的信息,以便理解表格数据。如果您将表格从复制到\begin{table}\caption{...}
,\end{table}
将其粘贴在一张空白纸上,并将其呈现给未阅读其余文档的人,他必须能够准确地知道您做了什么,以获取该表格中的数据!
\caption
因此,命令中的花括号必须包含所有对生成表内容很重要的数据!这是\caption
-command 的基本功能!
当然,这会使\caption
内容变得冗长和笨拙。太长了,无法纳入表格列表,这会扰乱该列表的功能。
表格/图片列表的含义
表格列表或图片列表的意义在于,让读者能够快速可靠地找到他需要查阅的表格或图片。查看表格列表时,读者并不想知道负责数据生成的详细信息。他想知道 TNT 反应的表格位于哪一页。他希望确保不会意外查阅 NaCl 滴定表。
结论
在我看来,-command 的花括号\caption
必须包含尽可能多的信息,以便提供给特定浮点数,而方括号应该只包含所需的最少信息,以便毫无疑问地识别文档中所需浮点数的位置。
你不应该混淆这些目标。