etoc:在其他地方排版 locallistoffigures 或 locallistoftables

etoc:在其他地方排版 locallistoffigures 或 locallistoftables

正如在etoc 参考手册,第 34 页,可以\localtableofcontents在文档的任何地方排版。

只需遵循以下步骤:

  1. \invisiblelocaltableofcontents \label{foo} <-- 这是您需要目录的部分内部
  2. \tableofcontents \ref{foo} <-- 这是您需要排版目录的地方

问题是,如何对\locallistoftables或实现相同的效果\locallistoffigures

答案1

我正在慢慢变成埃托克感谢 2023 年 3 月最近阅读了其大量密集文档的专家。

我最初的反应是,这可能是不可能的,因为我在埃托克。我本来想建议给作者写一个功能请求,但令我惊讶的是,这似乎有效:

\documentclass{article}

\usepackage[lof,lot]{etoc}

\begin{document}

\section{foo}
\etocsetnexttocdepth{none}
\locallistoffigures\label{lof_of_foo}

\subsection{bar}
Some text

\begin{figure}[htbp]
  \centering
  put a graphic here
  \caption{some figure}
  \label{fig:1}
\end{figure}

\section{bar}

\renewcommand\listfigurename{This is LOF of section foo}
\locallistoffigures\ref{lof_of_foo}

\end{document}

因为它是在没有辅助文件的情况下经过两次编译后生成的:

在此处输入图片描述

如果您将此类内容添加到现有文档中,我猜可能需要 3 次传递。

\renewcommand\listfigurename{This is LOF of section foo}用于演示目的。实际上,如果要local lofs进行进一步的操作,它会迫使您使用另一个定义重新发布它。我看到有一个\locallistfigurename,但它无法解决每次执行新操作时都必须重新定义它的问题。


压力测试的一个稍微复杂的例子:

\documentclass{article}

\usepackage[lof,lot]{etoc}

\renewcommand\localcontentsname{Local table of contents}

\begin{document}

\section{foo}

\localtableofcontents\label{toc_of_foo}

\etocsetnexttocdepth{none}
\locallistoffigures\label{lof_of_foo}

\subsection{subfoo}
Some text

\begin{figure}[htbp]
  \centering
  put a graphic here
  \caption{some figure}
  \label{fig:1}
\end{figure}

\section{bar}

\renewcommand\listfigurename{This is local LOF of section foo}
\locallistoffigures\ref{lof_of_foo}

\renewcommand\localcontentsname{This is local TOC of section foo}
\tableofcontents\ref{toc_of_foo}

\renewcommand\listfigurename{This is local LOF of this section}
\locallistoffigures

\subsection{subbar}
Some text

\begin{figure}[htbp]
  \centering
  put another graphic here
  \caption{some other figure}
  \label{fig:2}
\end{figure}

\end{document}

本地图表和目录

相关内容