我需要在文档开头显示整个文档中使用的项目/关键字/截止日期列表,并将它们设为超链接。为了能够在文档开头使用此信息,我(滥用)使用了类似 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
内部会为您完成这项工作,所以我认为您的方法是完全有效的。