根据文档后面的内容在文档开头包含信息

根据文档后面的内容在文档开头包含信息

我需要在文档开头显示整个文档中使用的项目/关键字/截止日期列表,并将它们设为超链接。为了能够在文档开头使用此信息,我(滥用)使用了类似 ToC 的结构:

\documentclass{article}
\usepackage{hyperref}

\makeatletter
    \newcommand\listofduereviews{\textbf{Due Dates:}~\@starttoc{due}}
\makeatother

\newcommand{\duedate}[1]{%
    \hypertarget{link.#1}{#1}%
    \addtocontents{due}{\protect\hyperlink{link.#1}{(#1)}\quad}%
    }

\begin{document}
\listofduereviews
\bigskip

The first due date is \duedate{01-May-2012}, and the second due date is \duedate{02-May-2012}.
\end{document}

这就是我想要的:

在此处输入图片描述

但我觉得我在滥用 ToC,而它们并不适合于此(或者也许不是,我只是没有足够的 LaTeX 知识来判断自己)。有什么更优雅的方法可以实现这一点?也许直接写入(非 listof)文件?

答案1

我认为使用 ; 没有什么不雅之处\@starttoc,毕竟这个 LaTeX 命令在内部将信息写入外部文件(这似乎是您在最后一条评论中所要求的)。

当然,\@starttoc您也可以不使用,而是自己设置这些东西(使用\@input,,\newwrite... \openout),但\@starttoc内部会为您完成这项工作,所以我认为您的方法是完全有效的。

相关内容