summaryrefslogtreecommitdiffstatshomepage
path: root/pa2cal.tex
blob: 81a0720497dbc004c61f5d27c1674784b24400ce (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calendar}
\usepackage[utf8]{inputenc}
\usepackage[hidelinks]{hyperref}
\usepackage[letterpaper,margin=0.3in]{geometry}
\usepackage{verbatim}

\begin{document}
  \title{\vspace{-1cm}Palo Alto 2nd Ward Year-at-a-Glance\vspace{-1cm}}
  \date{}
  \author{}

  \maketitle
  \thispagestyle{empty} % Remove page numbers and headers
  \makeatletter

  % This way you can define your own conditions, for example, you
  % could make something as `full moon', `even week', `odd week',
  % et cetera. In principle. The math in TeX could be hard.
  \pgfkeys{/pgf/calendar/start of year/.code={%
      \ifnum\pgfcalendarifdateday=1\relax%
          \ifnum\pgfcalendarifdatemonth=1\relax\pgfcalendarmatchestrue\fi%
      \fi%
  }}%

  % Define our own style
  \tikzstyle{week list sunday}=[
      % Note that we cannot extend from week list,
      % the execute before day scope is cumulative
      execute before day scope={%
             \ifdate{day of month=1}{\ifdate{equals=\pgfcalendarbeginiso}{}{
             % On first of month, except when first date in calendar.
                 \pgfmathsetlength{\pgf@y}{\tikz@lib@cal@month@yshift}%
                 \pgftransformyshift{-\pgf@y}
             }}{}%
      },
      execute at begin day scope={%
          % Because for TikZ Monday is 0 and Sunday is 6,
          % we can't directly use \pgfcalendercurrentweekday,
          % but instead we define \c@pgf@counta (basically) as:
          % (\pgfcalendercurrentweekday + 1) % 7
          \pgfmathsetlength\pgf@x{\tikz@lib@cal@xshift}%
          \ifnum\pgfcalendarcurrentweekday=6
              \c@pgf@counta=0
          \else
              \c@pgf@counta=\pgfcalendarcurrentweekday
              \advance\c@pgf@counta by 1
          \fi
          \pgf@x=\c@pgf@counta\pgf@x
          % Shift to the right position for the day.
          \pgftransformxshift{\pgf@x}
      },
      execute after day scope={
          % Week is done, shift to the next line.
          \ifdate{Saturday}{
              \pgfmathsetlength{\pgf@y}{\tikz@lib@cal@yshift}%
              \pgftransformyshift{-\pgf@y}
          }{}%
      },
      % This should be defined, glancing from the source code.
      tikz@lib@cal@width=7
  ]

  % New style for drawing the year, it is always drawn
  % for January
  \tikzstyle{year label left}=[
      execute before day scope={
          \ifdate{start of year}{
              \drawyear
          }{}
      },
      % Right align
      every year/.append style={
          anchor=east,
      }
  ]

  % Style to force giving a month a year label.
  \tikzset{draw year/.style={
      execute before day scope={
          \ifdate{day of month=1}{\drawyear}{}
      }
  }}

  % This actually draws the year.
  \newcommand{\drawyear}{
      \pgfmathsetlength{\pgf@x}{\tikz@lib@cal@xshift}%
      \pgftransformxshift{-\pgf@x}
      % \tikzyearcode is defined by default
      \tikzyearcode
      \pgfmathsetlength{\pgf@x}{\tikz@lib@cal@xshift}%
      \pgftransformxshift{\pgf@x}
  }

  \makeatother

\begin{minipage}{0.28\linewidth}
  % The actual calendar is now rather easy:
  \begin{tikzpicture}[every calendar/.style={
      month label left,
      month text={\textit{\%m. \%y0}},
      month yshift=0pt,
      % year label left,
      % every year/.append style={font=\Large\sffamily\bfseries,
      %     green!50!black},
      if={(Sunday) [blue!70]},
      week list sunday,
    }]\small
    \matrix[column sep=0em, row sep=0em] {
      \calendar[dates=2019-01-01 to 2019-12-last]; \\
    };
  \end{tikzpicture}

\end{minipage}
\begin{minipage}[t]{0.65\linewidth}
\subsection*{Key Dates}
what about stuff?
\end{minipage}

  \begin{center}
    Find the full calendar at \url{https://www.lds.org/church-calendar/}
  \end{center}
\end{document}