나는 이미 몇 달 전에 이 주제에 관해 관련된 질문을 했습니다. 그러나 다음과 같은 구조의 프로젝트가 있습니다.
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}
모든 분들께 미리 감사드립니다.