Calendar.sty とループを使用して年間トレーニング ログを作成する

Calendar.sty とループを使用して年間トレーニング ログを作成する

私は LaTeX の初心者で、新しいことを学ぼうとしているところです。そこで、トレーニングの記録として本として印刷でき、ペンで何かを書き込める PDF を作成したいと考えています。次のような形式にしたいと考えています。トレーニングログすべての月だけを対象にして、その月内の週ごとに個別に対象とします。ループなしでも問題なく例を作成しましたが、calendar.sty はループ パッケージと何らかの相互作用があるようです。

これは動作しないコードです:

\documentclass[10pt]{article} 
\usepackage{calendar} 
\usepackage{parallel,enumitem}
\usepackage[landscape, a4paper, margin=1cm]{geometry} 
\usepackage{tikz}
\usepackage{pgffor} 
\usepackage{forloop} 
\usepackage{pgfmath}
%\usepackage{palatino} % Use the Palatino font

\begin{document}

\def\MonthArr{ % array for "index", "monthname", "blankdays" and "days of month"
{{"1","January","0","31"}},
{{"2","February","3","29"}},
%{{"3","March","4","31"}},
%{{"4","April","0","30"}},
%{{"5","May","2","31"}},
%{{"6","June","4","30"}},
%{{"7","July","0","31"}},
%{{"8","August","3","31"}},
%{{"9","September","1","30"}},
%{{"10","October","1","31"}},
%{{"11","November","3","30"}},
%{{"12","December","1","31"}}
}
\foreach \Month in \MonthArr {
  
    \StartingDayNumber=2 

    \begin{center}
       \textsc{\LARGE \pgfmathparse{\Month[2]}\pgfmathresult}\\ % Month
        \textsc{\large 2024} % Year
    \end{center}

    \begin{calendar}{\textwidth} 

    \newcounter{x} 
    \forloop{x}{0}{\value{x}<\pgfmathparse{\Month[2]}\pgfmathresult}{
        \BlankDay
    } 

    \setcounter{calendardate}{1} % Start the date counter at 1
    \newcounter{days}{0}
    \def\DayArr{
    {{"Level 8","easy non-crimp boulders of new set \eventskip chinups \eventskip stretching"}}, % day 1
    {{"Level 8","new set \dayheader{Notes:}{}"}}, % day 2
    {{"~","\vspace{2.5cm}"}},% day 3
    {{"Hangboard","\dayheader{Notes:}{}"}},% day 4
    {{"Strength","weighted Pullups \eventskip Deadlifts \eventskip Benchpulls \eventskip Flys \eventskip Muscleups"}},% day 5
    {{"~","\vspace{2.5cm}"}},% day 6
    {{"Kilterboard","Notes:"}},% day 7
    {{"~","\vspace{2.5cm}"}},% day 8
    {{"~","\vspace{2.5cm}"}},% day 9
    {{"~","\vspace{2.5cm}"}},% day 10
    {{"~","\vspace{2.5cm}"}},% day 11
    {{"~","\vspace{2.5cm}"}},% day 12
    {{"~","\vspace{2.5cm}"}},% day 13
    {{"~","\vspace{2.5cm}"}},% day 14
    {{"~","\vspace{2.5cm}"}},% day 15
    {{"~","\vspace{2.5cm}"}},% day 16
    {{"~","\vspace{2.5cm}"}},% day 17
    {{"~","\vspace{2.5cm}"}},% day 18
    {{"~","\vspace{2.5cm}"}},% day 19
    {{"~","\vspace{2.5cm}"}},% day 20
    {{"~","\vspace{2.5cm}"}},% day 21
    {{"~","\vspace{2.5cm}"}},% day 22
    {{"~","\vspace{2.5cm}"}},% day 23
    {{"~","\vspace{2.5cm}"}},% day 24
    {{"~","\vspace{2.5cm}"}},% day 25
    {{"~","\vspace{2.5cm}"}},% day 26
    {{"~","\vspace{2.5cm}"}},% day 27
    {{"~","\vspace{2.5cm}"}},% day 28
    {{"~","\vspace{2.5cm}"}},% day 29
    {{"~","\vspace{2.5cm}"}},% day 30
    %{{"~","\vspace{2.5cm}"}},% day 31
    %{{"~","\vspace{2.5cm}"}},% day 32
    %{{"~","\vspace{2.5cm}"}},% day 33
    %{{"~","\vspace{2.5cm}"}},% day 34
    %{{"~","\vspace{2.5cm}"}},% day 34
    %{{"~","\vspace{2.5cm}"}},% day 35
    %{{"~","\vspace{2.5cm}"}},% day 36
    %{{"~","\vspace{2.5cm}"}},% day 37
    }
    \foreach [count=\i] \dayarr in \DayArr { %body
            \day{\pgfmathparse{\dayarr[0]}\pgfmathresult}{\pgfmathparse{\dayarr[2]}\pgfmathresult}
            \ifnum \i=\pgfmathparse{\Month[3]}\pgfmathresult
                \breakforeach
            \fi    
            %\breakforeach
    }
    \finishCalendar
    \end{calendar}
    \newpage
} % closing bracket of the BIG foreach-loop
\end{document}

エラーは次のとおりです:

  1. 未定義の制御シーケンス。\pgfmath@catcodes ...`\|=12 \catcode `\&=12 \let " \pgfmath@char@quote
  2. 不完全です。131 行目以降のテキストはすべて無視されました。
                \fi 
<*> template.tex 

今のところ、Overleaf を使用して作成していますが、月初めの空白日の forloop をコメント アウトすると、次のエラー メッセージが表示されます。

  1. 余分な}、または忘れられた\endgroup。
  2. 欠落している \endgroup が挿入されました。
  3. } が挿入されていません。
  4. 欠落した数字はゼロとして扱われます。
  5. 挿入された \cr がありません。
  6. { が挿入されていません。
  7. 位置がずれています。
  8. 挿入された \cr がありません。

内部ループをコメント アウトすると PDF が作成されますが、calendar.sty では月間レイアウトを日数で埋めるために \day コマンドが必要であり、そのループは機能しません。また、何らかの理由で、発生するすべてのエラーが大きな for ループの閉じ括弧にプッシュされます。

これは、calendar.sty 内の制御構造に関係していると思います。残念ながら、なぜそうなるのかを理解するのに十分なドキュメントを見つけることができませんでした... どなたか助けていただければ幸いです :)

関連情報