文档中所有日期的列表

文档中所有日期的列表

我有一个命令\date{}{},只需获取日期和事件并打印“日期--事件”

我想要做的是创建另一个命令,列出我在整个文档中创建的所有事件。

有人能推荐一种方法来做到这一点吗?谢谢。

答案1

在此处输入图片描述

这里有一个快速的方法,\addcontentsline将日期添加到.dates文件中并用显示它\listofdates,这是一个劫持 - 宏,即它\tableofcontents在 TeX 组内发生变化,这样它在外面是安全的,即原来\@starttoc仍然\tableofcontents可以正常工作,并且可以在任何文档中毫无问题地使用。

\dateevent然而,为了保留原始名称,我使用了宏名称\date并引入了一个名为的格式辅助宏\dateformatter,可以随意重新定义它,这里只需用粗体字母输入日期并用斜体输入事件标题。

\documentclass{article}


\usepackage{blindtext}

\makeatletter

\newcommand{\dateformatter}[2]{%
  \textbf{#1} -- \textit{#2}%
}

\newcommand{\dateevent}[2]{%
  \addcontentsline{dates}{section}{#1 -- #2}%
  \dateformatter{#1}{#2}%
}

\newcommand{\listofdates}{%
  \begingroup
  \renewcommand{\contentsname}{List of Dates}
  \let\old@starttoc\@starttoc
  \def\@starttoc##1{%
    \old@starttoc{dates}%
  }
  \tableofcontents%
  \endgroup
}

\makeatother

\begin{document}

\listofdates


\blindtext

\dateevent{2019/01/01}{Upvote answers}

\blindtext

\dateevent{2019/01/02}{Accept answers}

\blindtext[2]

\dateevent{2019/01/03}{Upvote more answers}



\end{document}

相关内容