I have been working based on this answer but I can't get the background to change for each month. The moon feature from this answer is also not working for this tikz. There are also some minor changes, so in summary:
- A PNG tiled background should be different for each month.
- Whole month border.
- Include moon phases before the day number (if possible).
- No vertical lines at the days of the week.
- Horizontal lines for hand writing.
- Rounded corner border around month - year.
Also, how do I change language?
MWE:
\documentclass[a2paper,landscape]{article}
\usepackage[margin={1cm}, top= 6cm]{geometry}
\renewcommand*\thepage{}
\usepackage{mathabx}
%
\usepackage{etoolbox}
%
\usepackage{graphicx}
\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}
\usepackage{tikz}
\usetikzlibrary{calendar}
\tikzset{
every weekday/.style={
anchor=south west,
black,
fill=white,
font=\scshape\bfseries,
name=weekday-\pgfcalendarcurrentmonth-\pgfcalendarcurrentweekday,
node contents=%wt
},
weekday above/.style={
draw=none,
if = {(day of month=1) [days={append after command={
node [at={(\tikzlastnode.north west)}, alias=@firstweekday, every weekday]}}]},
if = {(day of month=2, day of month=3, day of month=4, day of month=5, day of month=6, day of month=7) [
days={append after command={
node [at={(@firstweekday.south west-|\tikzlastnode.south west)}, every weekday]}}]}
},
wall calendar/.style={
week list,
weekday above,
day text=,
day and weekday/.style={
draw,
outer sep=+0pt,
fill=white,
line width=.12em,
minimum width=\linewidth/7,
minimum height=\textheight/7
},
day xshift=\linewidth/7,
day yshift=\textheight/7, %altura da celula
every day label/.style={
anchor=north east,
font=\Huge,
node contents={%d=},
inner sep=.7em
},
every day/.append style={
day and weekday,
label={[every day label]north east:}
},
every weekday/.append style={
day and weekday,
inner xsep=0pt,
minimum height=1.5em
},
moon code/.code={
\edef\listmoons{#1}%
\def\moons{}%
\foreach \l in \listmoons {%
\xappto\moons{if (equals = \pgfcalendarcurrentyear-\pgfcalendarcurrentmonth-\l) [day text=\noexpand\moon%d-]}
}%
\tikzset{every day/.append style={\moons}}
}
}
}
\newcount\mooncounter
\def\moonreset{\global\mooncounter=-1\relax}
\moonreset
\def\moon{%
\global\advance\mooncounter by 1\relax%
\ifcase\mooncounter $\newmoon$%
\or $\rightmoon$%
\or $\fullmoon$%
\or $\leftmoon$\global\mooncounter=-1\relax%
\fi%
}
\newcommand*{\listofmoons}[1]{%
\edef\listmoons{#1}%
\def\moons{}%
\foreach \l in \listmoons {%
\xappto\moons{if (equals = 2023-12-\l) [day text=\noexpand\moon%d-]}
}%
}
\begin{document}
\sffamily\LARGE
\centering
\newcommand*\Year{2023}
\moonreset
\foreach \mon in {6,...,12}{% 1,...,12
\listofmoons{2,6,7,8,9,12,27}
{\par \fontsize{40}{50}\selectfont\bfseries {\pgfcalendarmonthname{\mon}} - \Year \par}
\vspace{2em}
\tikz\calendar[
dates=\Year-0\mon-01 to \Year-0\mon-last,
wall calendar,
moon code={2,6,7,8,9,12,27}
];
\pagebreak
}
\end{document}



day textas it's supposed to be. Language needs babel, translate and calendar in this order, I believe, with the language as an option to the class. I would output the whole page as one TikZ picture which makes it much easier to control the vertical and horizontal spacing instead of usinggeometry. Do you have the dates for the moon phase in a different dataset? You will need to have a list of days per month (or a formula). – Qrrbrbirlbel Jun 07 '23 at 20:34