如何在 LaTeX 的目录中嵌入图形简短描述(如在图形列表中显示的那样)?

如何在 LaTeX 的目录中嵌入图形简短描述(如在图形列表中显示的那样)?

我正在编写的文档的所有图表都包含在附录 A 中(由于后面的附录中包含大量源代码,因此将图表作为文档的最后部分是没有意义的)。我知道我可以有一个单独的图表列表,列出标题的简短描述,但我希望将其包含在目录本身中。例如,而不是:

Table of Contents
1 Section 1 ......... 1
  1.1 subsection .... 1
A Figures ........... 3
B Source Code ....... 5
  B.1 more code ..... 6

List of Figures
Desc. 1 ............. 3
Desc. 2 ............. 4

我想:

Table of Contents
1 Section 1 ......... 1
  1.1 subsection .... 1
A Figures ........... 3
  Desc. 1 ........... 3
  Desc. 2 ........... 4
B Source Code ....... 5
  B.1 more code ..... 6

我一直在搜索互联网,但只能找到有关如何使用 在目录中包含图表列表页码的信息\addcontentsline{toc}。我是否必须手动为\addcontentsline{toc}每个图表添加标题简短描述,或者有没有什么方法可以自动完成此操作?

任何帮助都非常感谢

答案1

这是一个重新定义\ext@figure为的简单解决方案toc

\documentclass{article}

\makeatletter
\renewcommand\ext@figure{toc}
\makeatother

\begin{document}

\tableofcontents

\section{Test Section}

\appendix

\section{Figures}
\begin{figure}[!ht]\caption{Description 1}\end{figure}
\begin{figure}[!ht]\caption{Description 2}\end{figure}
\section{Souce Codes}

\end{document}

在此处输入图片描述

我只是[!ht]为了举例子而使用了修饰符;我不建议强制使用它。

答案2

在 之后写入您的文档\appendix,例如:

[...]
\appendix
\makeatletter
\long\def\@caption#1[#2]#3{%
  \par
  \addcontentsline{\csname ext@#1\endcsname}{#1}%
    {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
  \addcontentsline{toc}{#1}%
    {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}%
  \begingroup
    \@parboxrestore
    \if@minipage
      \@setminipage
    \fi
    \normalsize
    \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
  \endgroup}
\makeatother
[...]

相关内容