Я уже задавал связанный вопрос по этой теме несколько месяцев назад. Однако у меня есть проект с такой структурой:
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}
Заранее спасибо всем.