Festlegen und Anzeigen von aus Dateinamen extrahierten Datumsbereichen im Header

Festlegen und Anzeigen von aus Dateinamen extrahierten Datumsbereichen im Header

Ich habe bereits vor einigen Monaten eine verwandte Frage zu diesem Thema gestellt. Allerdings habe ich ein Projekt mit dieser Struktur:

Project:
 |- main.tex
 |
 |- pages
     |- 20230101.tex
     |- 20230102.tex
     |- ...

Ich habe alle Dateien mithilfe dieser Schleife eingeschlossen pages( main.texeine forstatische Lösung, aber die Dateinamen haben eine feste Länge usw.):

\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}ist ein Befehl zum Speichern und Anzeigen des Datums in der oberen rechten Ecke der Seite:

\newcommand{\getfiledate}[3]{\renewcommand{\getfiledate}{\dayofweekname{#1}{#2}{#3}\ #1/#2/#3}}

Wie Dateinamen vermuten lassen, bedeutet die Erstellung einer neuen Datei nicht das Ende des vorherigen Abschnitts/Kapitels. Daher includeverursacht die Verwendung von einen unerwünschten Seitenumbruch. Ich habe versucht, es durch zu ersetzen, inputaber der Compiler gibt einen Fehler aus, wenn zwei kurze Dateien auf derselben Seite enden. Mein Ziel ist es nun, einen Datumsbereich (von der ersten und der letzten Datei) anzuzeigen, wenn zwei oder mehr Dateien auf derselben Seite eingebettet sind. Wenn beispielsweise drei Dateien vorhanden sind, nämlich 20230103.tex, 20230102.texund 20230103.tex, die alle eine Zeile enthalten, sollte die resultierende Seite diese Kopfzeile haben:

Sunday 01/01/2023 - Tuesday 03/02/2023

und die drei Zeilen untereinander. Wenn das Verhältnis Dateien pro Seite 1:1 ist (also Dateien länger als eine Seite sind), dann sollte die Kopfzeile so bleiben wie sie jetzt ist (mit nur einem Datum).

Denkst du, das ist möglich? Ich hinterlasse dir hier ein MWE, falls du es versuchen möchtest:

\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}

Vielen Dank im Voraus an alle.

verwandte Informationen