几个月前我已经问过一个关于这个主题的相关问题。但是,我有一个具有以下结构的项目:
Project:
|- main.tex
|
|- pages
|- 20230101.tex
|- 20230102.tex
|- ...
pages
我使用main.tex
此循环包含了下面的所有文件for
(静态解决方案,但文件名具有固定长度等):
\foreach \year in {2023, 2024} {
\foreach \month in {01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12} {
\foreach \day in {01, 02, 03, 04, 05, 06, 07, 08, 09, 10, ..., 31} {
\edef\fileName{pages/\year\month\day}
\IfFileExists{\fileName}{
\getfiledate{\day}{\month}{\year}
\include{\fileName}
}
}
}
}
\getfiledate{\day}{\month}{\year}
是用于存储并显示页面右上角日期的命令:
\newcommand{\getfiledate}[3]{\renewcommand{\getfiledate}{\dayofweekname{#1}{#2}{#3}\ #1/#2/#3}}
正如文件名所暗示的那样,新文件的创建并不意味着上一节/章节的结束,因此使用include
会导致不必要的分页符。我尝试用 替换它,input
但如果两个短文件最终出现在同一页上,编译器会抛出错误。我现在的目标是当两个或多个文件嵌入在同一页时显示一系列日期(从第一个文件到最后一个文件)。例如,如果有三个文件,即20230103.tex
和,都包含一行,20230102.tex
则20230103.tex
生成的页面应该有这个标题:
Sunday 01/01/2023 - Tuesday 03/02/2023
并且三行一行接一行。如果每页文件数比例为 1:1(即文件长度超过一页),则页眉应保持现在的样子(只有一个日期)。
你认为这是可能的吗?如果你想尝试一下,我在这里给你留一个 MWE:
\documentclass{article}
\usepackage{pgffor, fancyhdr, datetime}
\pagestyle{fancy}
\fancyhead[R]{\getfiledate}
\newcommand{\getfiledate}[3]{\renewcommand{\getfiledate}{\dayofweekname{#1}{#2}{#3}\ #1/#2/#3}}
\begin{document}
\foreach \year in {2023, 2024} {
\foreach \month in {01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12} {
\foreach \day in {01, 02, 03, 04, 05, 06, 07, 08, 09, 10, ..., 31} {
\edef\fileName{pages/\year\month\day}
\IfFileExists{\fileName}{
\getfiledate{\day}{\month}{\year}
\include{\fileName}
}
}
}
}
\end{document}
提前感谢大家。