我知道关于此网站的问题与我的标题完全相同,但我追求的却截然不同。
我写过一些课程笔记,其内容可以按两种方式组织:第一种是文档的逻辑内容(主题的自然结构方式),另一种是按讲座(即讲座 1、讲座 2 等)组织。后者对学生很有用,特别是当他们错过讲座并想确切知道他们错过了什么时。
我喜欢在目录中同时标明这两者,我当前的解决方案是使用我创建的名为的命令\newlecture{day}{month}{year}
,这会在文本中添加一个漂亮的标题并在目录中添加一行:
以下是 MWE 的代码:
\documentclass{article}
% Packages
\usepackage{lipsum,parskip}
\usepackage[hidelinks]{hyperref}
\usepackage[british]{datetime2}
% Date format
\DTMlangsetup[en-GB]{monthyearsep={,\space}}
% Lecture counter
\newcounter{lecture}
\newcommand\newlecture[3]{%
\stepcounter{lecture}
\phantomsection\textbf{LECTURE \thelecture}\hfill{\itshape \DTMdisplaydate{#3}{#2}{#1}{-1}}%
\addcontentsline{toc}{section}{\normalfont\itshape Lecture \thelecture~(\DTMdisplaydate{#3}{#2}{#1}{-1})}}
\begin{document}
% Contents
\tableofcontents
\pagebreak
\newlecture{14}{10}{2021}
\section{Introduction}
\lipsum[1-5]
\subsection{What this course is about}
\lipsum[6-10]
\subsection{The Exam}
\lipsum[11-15]
\section{Some Basic Techniques}
\lipsum[16-20]
\subsection{Arithmetic Functions}
\lipsum[21-25]
\subsection{M\"obius Inversion and Dirichlet Convolution}
\lipsum[26-30]
\subsection{Partial Summation}
\lipsum[31-35]
\newlecture{21}{10}{2021}
\lipsum[36-40]
\subsection{The Euler--Maclaurin Formula}
\lipsum[41-45]
\section{Proof of the Prime Number Theorem}
\lipsum[46-50]
\subsection{Some Initial Bounds}
\lipsum[51-55]
\end{document}
现在我认为,如果我有一个边注,而不是新的讲座行,那么目录看起来会更干净,如下所示:
我如何使用类似的命令将这些添加到我的内容中?我知道我可以做类似的事情,\section{Title\marginnote{...}}
但这会在部分出现的地方创建一个边注。我宁愿保留边注只是对于目录(另外,有时我必须在中间部分停止,因此命令\newlecture
可以出现在任何阶段,不一定出现在某个部分或小节的开头)。
答案1
不幸的是,\addcontentsline
我们必须在目录中的项目之间添加新行。
我的解决方案包括重新定义\newlecture
以下内容:
\newcommand{\newlecture}[3]{
\stepcounter{lecture}
\addcontentsline{toc}{section}{\protect\marginpar{
\fbox{\parbox[-2]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}{\centering
\scriptsize{\scshape Lecture \thelecture}\\
\DTMdisplaydate{#3}{#2}{#1}{-1}}}}}}
其中,特定命令前面\addcontentstoline
需要加上\protect
。您可以根据需要随意修改此 MWE。
\documentclass{article}
% Packages
\usepackage{lipsum,parskip}
\usepackage[hidelinks]{hyperref}
\usepackage{datetime2}
% Counter declaration
\newcounter{lecture}
% Date format
\DTMlangsetup[en-GB]{monthyearsep={,\space}}
\reversemarginpar
\newcommand{\newlecture}[3]{
\stepcounter{lecture}
\addcontentsline{toc}{section}{\protect\marginpar{
\fbox{\parbox[-2]{\dimexpr\linewidth-2\fboxsep-2\fboxrule\relax}{\centering
\scriptsize{\scshape Lecture \thelecture}\\
\DTMdisplaydate{#3}{#2}{#1}{-1}}}}}}
\begin{document}
% Contents
\tableofcontents
\pagebreak
\newlecture{14}{10}{2021}
\section{Introduction}
\lipsum[1-5]
\subsection{What this course is about}
\lipsum[6-10]
\subsection{The Exam}
\lipsum[11-15]
\section{Some Basic Techniques}
\lipsum[16-20]
\subsection{Arithmetic Functions}
\lipsum[21-25]
\subsection{M\"obius Inversion and Dirichlet Convolution}
\lipsum[26-30]
\subsection{Partial Summation}
\lipsum[31-35]
\newlecture{14}{10}{2021}
\lipsum[36-40]
\subsection{The Euler--Maclaurin Formula}
\lipsum[41-45]
\newlecture{14}{10}{2021}
\section{Proof of the Prime Number Theorem}
\lipsum[46-50]
\subsection{Some Initial Bounds}
\lipsum[51-55]
\end{document}
答案2
这是基于 Georgio 的解决方案,但使用了。marginpar 与前一个或TOC 条目\addtocontents
对齐。添加了一个空白行以显示两个讲座之间的间隔。\section
\subsection
\documentclass{article}
% Packages
\usepackage{lipsum,parskip}
\usepackage[hidelinks]{hyperref}
\usepackage{datetime2}
% Counter declaration
\newcounter{lecture}
% Date format
\DTMlangsetup[en-GB]{monthyearsep={,\space}}
\newcommand{\newlecture}[3]{% see \DTMdisplaydate
\stepcounter{lecture}\label{lecture\thelecture}%
\addtocontents{toc}{\protect\marginpar{%
\protect\hyperlink{\protect\getrefbykeydefault{lecture\thelecture}{anchor}{Doc-Start}}{%
\protect\fbox{\protect\parbox[t]{\the\dimexpr\marginparwidth-2\fboxsep-2\fboxrule}{\protect\centering
\protect\scriptsize{\protect\scshape Lecture \thelecture}\\
\DTMdisplaydate{#3}{#2}{#1}{-1}}}}}}}%
\begin{document}
% Contents
\reversemarginpar
\tableofcontents
\pagebreak
\section{Introduction}\newlecture{14}{10}{2021}
\lipsum[1-5]
\subsection{What this course is about}
\lipsum[6-10]
\subsection{The Exam}
\lipsum[11-15]
\section{Some Basic Techniques}
\lipsum[16-20]
\subsection{Arithmetic Functions}
\lipsum[21-25]
\subsection{M\"obius Inversion and Dirichlet Convolution}
\lipsum[26-30]
\subsection{Partial Summation}
\lipsum[31-35]
\addtocontents{toc}{\protect\vskip 10pt}%
\phantomsection\newlecture{14}{10}{2021}
\lipsum[36-40]
\subsection{The Euler--Maclaurin Formula}
\lipsum[41-45]
\section{Proof of the Prime Number Theorem}\newlecture{14}{10}{2021}
\lipsum[46-50]
\subsection{Some Initial Bounds}
\lipsum[51-55]
\end{document}