summaryrefslogtreecommitdiffstatshomepage
path: root/pa2cal.tex
blob: 1f37e8979af13381836a59d540b3e391792d1237 (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
125
126
127
128
129
130
\documentclass{article}
\usepackage[hidelinks]{hyperref}
\usepackage[letterpaper,margin=0.3in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usepackage{verbatim}
\usetikzlibrary{calendar}
\usetikzlibrary{shapes}
\usetikzlibrary{shapes.geometric}

\renewcommand{\rmdefault}{cmss}

\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,
      if={(Sunday) [blue!70]},
      week list sunday,
    },
    every day/.style={anchor=base},
    day text={\%d=},rounded corners=0,anchor=base,text height=1ex,text depth=-0.5ex
    ]\small
    \matrix[column sep=0em, row sep=0em] {
      \calendar[dates=2019-01-01 to 2019-12-last]
      if (Monday) {\node [fill=red!50,circle] {};}%
      ; \\
    };
  \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}