我正在使用报告格式,并希望在每个部分的右侧标题上显示一个新日期(我可以手动输入这些日期)。我的知识非常基础,到目前为止,我已经设法在序言中设置了这一点,但我只知道如何在整个文档中生成一个日期(如下所示),而不是在每个部分中更新。
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[R]{\today}
作为概述,我的文档将按如下结构记录八次会议的笔记,每章分为两章,每章四次会议。
- 第 1 章
- 第 1.1 节(日期 1) -
第 1.2 节(日期 2)
- 第 1.3 节(日期 3) -
第 1.4 节(日期 4)
- 第 2 章
- 第 2.1 节(日期 5) -
第 2.2 节(日期 6)
- 第 2.3 节(日期 7) -
第 2.4 节(日期 8)
如果有人可以为我提供一些代码,让我可以在每个部分的开头输入日期,我将不胜感激。
答案1
我刚刚定义了一个新命令\datesection
,它最多需要 3 个参数:
\datesection[<short title>]{<section title>}[<date/right header content>]
- 前两个(可选和强制)是标准
\section
参数 - 最后一个可选参数设置正确的标题
它还有一个带星号的版本,其工作方式如下\section*
命令:
\documentclass[]{report}
\usepackage[T1]{fontenc}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\usepackage{blindtext}
\NewDocumentCommand{\datesection}{s O{#3} m O{\empty}}{
\IfBooleanTF{#1}{
\section*{#3}
\fancyhead[R]{#4}
}{
\section[#2]{#3}
\fancyhead[R]{#4}
}
}
\begin{document}
\datesection{title}[\today]
\blindtext
\clearpage
\datesection[short title]{longer title}[tomorrow]
\blindtext
\clearpage
\datesection*{title 2}[yesterday]
\blindtext
\end{document}
希望这对你有用!
答案2
您可以使用定义一个变量\def\<variablename>
,然后使用每个新部分更新该变量。
以下是 MWE:
\documentclass{article}
\begin{document}
\def\kdate{4}
\section{Section 1.1 - \kdate}
\def\kdate{5}
\section{Section 1.2 - \kdate}
\def\kdate{6}
\section{Section 1.3 - \kdate}
\end{document}
我使用了kdate
变量名。您可以使用任何您想要的名称,只要确保它不会与预先存在的变量或命令冲突即可。
编辑:
如果您使用该fancyhdr
包来构建标题,则可以将该变量添加到您的\fancyhead
命令中:
\pagestyle{fancy}
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[RE,LO]{\kdate}