正如在etoc 参考手册,第 34 页,可以\localtableofcontents
在文档的任何地方排版。
只需遵循以下步骤:
\invisiblelocaltableofcontents \label{foo}
<-- 这是您需要目录的部分内部\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}