I'm attempting to make a calendar which shows one month per column and each month is a day list downward
. I could only do this so far by creating one calendar for each month and using xshift
to manually position them as I'd like. Perhaps there's a better way to achieve this by using execute before day scope
but I don't know how to do that.
Any hints?
Here's my current implementation:
\documentclass[margin=2mm, crop]{standalone}
\usepackage{tikz}
\usetikzlibrary{calendar}
\begin{document}
\begin{tikzpicture}
\calendar
[
dates=2022-10-01 to 2022-10-31,
name=oct,
day list downward,
month label above left,
]
if (weekend) [gray];
\calendar
[
dates=2022-11-01 to 2022-11-30,
name=nov,
day list downward,
month yshift=1em,
month label above left,
xshift=5cm,
]
if (weekend) [gray];
\calendar
[
dates=2022-12-01 to 2022-12-31,
name=dec,
day list downward,
month label above left,
xshift=10cm,
]
if (weekend) [gray];
\calendar
[
dates=2023-01-01 to 2023-01-31,
name=jan,
day list downward,
month label above left,
xshift=15cm,
]
if (weekend) [gray];
\end{tikzpicture}
\end{document}
And what it looks like:
PS: the long xshift
is because I will add annotations to the days by referencing the specific nodes in the calendar. Something like:
\node [anchor=base west] at (cal-2022-01-01.base east) {Foo};
\matrix
column. Has its own advantages and disadvantages.