Já fiz uma pergunta relacionada sobre esse assunto há alguns meses. Porém, tenho um projeto com esta estrutura:
Project:
|- main.tex
|
|- pages
|- 20230101.tex
|- 20230102.tex
|- ...
Incluí todos os arquivos pages
ao main.tex
usar este for
loop (uma solução estática, mas os nomes dos arquivos têm um comprimento fixo, 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}
é um comando usado para armazenar e exibir a data no canto superior direito da página:
\newcommand{\getfiledate}[3]{\renewcommand{\getfiledate}{\dayofweekname{#1}{#2}{#3}\ #1/#2/#3}}
Como os nomes dos arquivos podem sugerir, a criação de um novo arquivo não implica o fim da seção/capítulo anterior, portanto, o uso include
causa uma quebra de página indesejada. Tentei substituí-lo, input
mas o compilador gera um erro se dois arquivos curtos acabarem na mesma página. Meu objetivo agora é mostrar um intervalo de datas (do primeiro e do último arquivo) quando dois ou mais arquivos são incorporados na mesma página. Por exemplo, se houver três arquivos, nomeadamente 20230103.tex
, 20230102.tex
e 20230103.tex
, todos contendo uma linha, a página resultante deverá ter este cabeçalho:
Sunday 01/01/2023 - Tuesday 03/02/2023
e as três linhas uma abaixo da outra. Se a proporção de arquivos por página for 1:1 (ou seja, arquivos com mais de uma página), o cabeçalho deverá permanecer como está agora (com apenas uma data).
Você acha que isso é possível? Deixo aqui um MWE se você quiser experimentar:
\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}
Agradecemos antecipadamente a todos.