在目录中添加日期列

在目录中添加日期列

我要重新出版​​的书包含某一天的讲座记录。在目录中,我需要在讲座标题(章节标题)后添加一列,其中注明讲座日期。

我尝试使用这里的一些答案(在目录中添加额外的列),但这并没有回答我的问题。

我试图用这个tocloft包来解决这个问题,但不确定如何实现。我想将以下内容称为 MWE,但到目前为止它对我来说还不起作用...

\documentclass{book}
\usepackage[utf8]{inputenc}

\title{test}
\author{name}
\date{now}

\usepackage{tocloft}
\renewcommand{\cftchappresnum}{input?}
\begin{document}

\renewcommand\cftchapdotsep{\cftdotsep}

\tableofcontents

\chapter*{first lecture title}
\addcontentsline{toc}{chapter}{first lecture title}

\chapter*{second lecture title}
\addcontentsline{toc}{chapter}{second lecture title}

\chapter*{third lecture title}
\addcontentsline{toc}{chapter}{third lecture title}

\end{document}

我想要制作的是这样的目录:

目录将重新发布

我才刚刚开始这个项目,所以很高兴能够得到有关重新构建/文档类别使用/任何可以帮助我朝着正确方向前进的相关建议。

答案1

欢迎使用 TeX.SX!如果您不介意使用\addcontentsline手动将条目插入目录(如您的问题中所建议的那样),您可以自由地将换行符和对齐插入此宏中。例如像这样(tocloft实际上没有包):

\documentclass{book}
\usepackage[utf8]{inputenc}

\newcommand{\toclineinsert}[3][25mm]{%
    \dotfill\ #2\makebox[#1][l]{#3\dotfill}%
}

\title{test}
\author{name}
\date{now}

\begin{document}

\tableofcontents

\addcontentsline{toc}{chapter}{first lecture title \toclineinsert{4 }{January}}

\addcontentsline{toc}{chapter}{second lecture title \toclineinsert{2nd half }{January}}

\addcontentsline{toc}{chapter}{third lecture title \toclineinsert{February/}{March}}

\addcontentsline{toc}{chapter}{a pretty long fourth lecture title \newline that goes over two lines \toclineinsert{29 or 30 }{March}}

\end{document}

由于添加的列中的日期与月份名称对齐,我想出了一个解决方案,让您可以在贯穿目录的假想垂直线的左侧和右侧添加内容。

例如,\toclineinsert{4 }{January}将在此行左侧放置一个 4 和一个空格(空格是必需的),将单词 January 放置在右侧。4 之前和 January 之后的空格用点填充。

\dotfill通常会插入尽可能多的点,以移动当前行最右端的内容。它的功能与右对齐制表位非常相似。如果您在同一行中多次使用此宏,则这些宏之前、之后和之间的内容将以相等距离的方式分布。

\makebox会将指定宽度的框添加到输出中。默认情况下,此宽度在宏中设置为 25mm \toclineinsert,但您可以通过输入来覆盖此设置,例如\toclineinsert[30mm]{4 }{January}。这会将单词 January 稍微向左移动,但当然仅限于此条目。

当然,下图中的红线不是输出的一部分,仅说明对齐。

在此处输入图片描述

相关内容