数か月前にこのトピックに関する関連する質問をすでにしました。ただし、次のような構造のプロジェクトがあります。
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
2 つの短いファイルが同じページに表示されるとコンパイラーがエラーをスローします。 私の目標は、2 つ以上のファイルが同じページに埋め込まれている場合に、日付の範囲 (最初のファイルから最後のファイルまで) を表示することです。 たとえば、 、 という 3 つのファイルがあり、すべて 1 行のみが含まれている場合20230103.tex
、20230102.tex
結果20230103.tex
のページには次のヘッダーが表示されます。
Sunday 01/01/2023 - Tuesday 03/02/2023
3 行は上下に並んでいます。ページあたりのファイル数の比率が 1:1 (つまり、ファイルが 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}
皆様、よろしくお願いします。