Ya hice una pregunta relacionada sobre este tema hace algunos meses. Sin embargo, tengo un proyecto con esta estructura:
Project:
|- main.tex
|
|- pages
|- 20230101.tex
|- 20230102.tex
|- ...
Incluí todos los archivos a continuación pages
al main.tex
usar este for
bucle (una solución estática pero los nombres de archivos tienen una longitud fija, etc.):
\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}
es un comando utilizado para almacenar y mostrar la fecha en la esquina superior derecha de la página:
\newcommand{\getfiledate}[3]{\renewcommand{\getfiledate}{\dayofweekname{#1}{#2}{#3}\ #1/#2/#3}}
Como pueden sugerir los nombres de los archivos, la creación de un nuevo archivo no implica el final de la sección/capítulo anterior, por lo que su uso include
provoca un salto de página no deseado. Intenté reemplazarlo input
pero el compilador arroja un error si dos archivos cortos terminan en la misma página. Mi objetivo ahora es mostrar un rango de fechas (desde el primer archivo hasta el último) cuando dos o más archivos están incrustados en la misma página. Por ejemplo, si hay tres archivos, a saber 20230103.tex
, 20230102.tex
y 20230103.tex
, todos contienen una línea, la página resultante debe tener este encabezado:
Sunday 01/01/2023 - Tuesday 03/02/2023
y las tres líneas una debajo de la otra. Si la proporción de archivos por página es 1:1 (es decir, archivos de más de una página), entonces el encabezado debe permanecer como está ahora (con una sola fecha).
¿Crees que esto es posible? Os dejo aquí un MWE por si queréis darle una oportunidad:
\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}
Gracias de antemano a todos.