mirror of
https://expo.survex.com/repositories/expoweb/.git/
synced 2024-11-22 23:31:56 +00:00
429 lines
11 KiB
TeX
429 lines
11 KiB
TeX
\documentclass[a4paper,12pt,twoside]{book}
|
|
|
|
\usepackage{bierbook-style}
|
|
% All required packages should be included in bierbook-style
|
|
|
|
\newcommand{\expotitle}{
|
|
% makes the title page
|
|
\thispagestyle{empty}
|
|
\begin{center}
|
|
{\Large Cambridge University Caving Club}
|
|
\vskip80pt
|
|
{\Huge \bf Expo \the\year}
|
|
\vskip40pt
|
|
{\fontsize{100}{120}\selectfont\sc Bier}
|
|
\vskip24pt
|
|
{\fontsize{100}{120}\selectfont\sc Book}
|
|
\vskip190pt
|
|
{[}Stick obligatory G{\"o}sser label here{]}
|
|
\end{center}
|
|
\vfill
|
|
\clearpage
|
|
}
|
|
|
|
\newcommand{\expoheading}[1]{
|
|
% provides the formatting for a title of a section
|
|
\vspace{10pt}
|
|
{\LARGE\bf #1}
|
|
\vspace{20pt}
|
|
}
|
|
|
|
\newcommand{\tallyeveryone}[3]{
|
|
% argument is the title, second is the subtitle, third is starting number for the tally
|
|
% longtable, generated from the list of names
|
|
% uses tallyline for each line
|
|
\addcontentsline{toc}{section}{#1}
|
|
\openin\namesread=names.txt
|
|
\setcounter{linecount}{0}
|
|
\begin{longtable}{rc}
|
|
\multicolumn{2}{l}{\expoheading{#1}} \\
|
|
\multicolumn{2}{p{\textwidth}}{#2} \\
|
|
&
|
|
\tallynumbers{#3}
|
|
\\
|
|
\endfirsthead
|
|
\multicolumn{2}{p{\textwidth}}{#2} \\
|
|
&
|
|
\tallynumbers{#3}
|
|
\\
|
|
\endhead
|
|
&
|
|
\tallynumbers{#3}
|
|
\\
|
|
\endfoot
|
|
|
|
\whiledo{\value{linecount}<\value{maxlines}}{
|
|
\stepcounter{linecount}
|
|
\read\namesread to \currentname
|
|
\tallyline{\currentname}
|
|
}
|
|
|
|
\end{longtable}
|
|
\clearpage
|
|
}
|
|
|
|
\newcounter{maxspares}
|
|
|
|
\newcommand{\tallyspares}[4]{
|
|
% argument is the title, second is the subtitle, third is starting number for the tally, fourth is the number of lines
|
|
% longtable, generated from the list of names
|
|
% uses tallyline for each line
|
|
\addcontentsline{toc}{section}{#1}
|
|
\openin\namesread=names.txt
|
|
\setcounter{linecount}{0}
|
|
\setcounter{maxspares}{#4}
|
|
\begin{longtable}{rc}
|
|
\multicolumn{2}{l}{\expoheading{#1}} \\
|
|
\multicolumn{2}{p{\textwidth}}{#2} \\
|
|
&
|
|
\tallynumbers{#3}
|
|
\\
|
|
\endfirsthead
|
|
\multicolumn{2}{p{\textwidth}}{#2} \\
|
|
&
|
|
\tallynumbers{#3}
|
|
\\
|
|
\endhead
|
|
&
|
|
\tallynumbers{#3}
|
|
\\
|
|
\endfoot
|
|
|
|
\whiledo{\value{linecount}<\value{maxspares}}{
|
|
\tallyline{\ldots\ldots\ldots}
|
|
\stepcounter{linecount}
|
|
}
|
|
|
|
\end{longtable}
|
|
\clearpage
|
|
}
|
|
|
|
\newcommand{\tallyline}[1]{
|
|
% argument is the name on the line
|
|
% boxes are a tikz grid
|
|
\begin{tikzpicture}
|
|
\pgfmathsetmacro{\wvar}{0.4}
|
|
\node at (0,0.6*\wvar) [anchor=east] {\textbf{#1}};
|
|
\node at (0,0) {};
|
|
\node at (0,2*\wvar) {};
|
|
\end{tikzpicture}
|
|
\and
|
|
\begin{tikzpicture}
|
|
\pgfmathsetmacro{\wvar}{0.4}
|
|
\foreach \xvar in {0,1,2,3,4}
|
|
{
|
|
\foreach \yvar in {0,1}
|
|
{
|
|
\foreach \zvar in {0,5.5,11,16.5,22}
|
|
{
|
|
\draw (\xvar*\wvar+\zvar*\wvar,\yvar*\wvar) -- ++ (0,\wvar) -- ++ (\wvar,0) -- ++ (0,-\wvar) -- cycle;
|
|
}
|
|
}
|
|
}
|
|
\end{tikzpicture}
|
|
\\
|
|
}
|
|
|
|
\newcounter{tallynumber}
|
|
|
|
\newcommand{\tallynumbers}[1]{
|
|
% argument is the starting number
|
|
\setcounter{tallynumber}{#1}
|
|
\begin{tikzpicture}
|
|
\pgfmathsetmacro{\wvar}{0.4}
|
|
\foreach \xvar in {0,5.5,11,16.5,22,27.5}
|
|
{
|
|
\node at (\xvar*\wvar,0) [anchor=center] {\arabic{tallynumber}};
|
|
\node at (\xvar*\wvar,0.4) {};
|
|
\addtocounter{tallynumber}{10}
|
|
}
|
|
\end{tikzpicture}
|
|
}
|
|
|
|
\newcommand{\drinksssubtitle}{
|
|
/ = G{\"o}sser, X = Limo, R = Radler, W = Weissbier, D = Dunkelbier, L = Loserbier
|
|
}
|
|
|
|
\newcommand{\nightstallyoneweek}[2]{
|
|
\addcontentsline{toc}{section}{#1}
|
|
\openin\namesread=names.txt
|
|
\setcounter{linecount}{0}
|
|
\begin{minipage}[l]{\textwidth}
|
|
{\LARGE\bf #1}\\
|
|
\vskip12pt
|
|
\textbf{This is for people arriving prior to Sunday 2nd July.}
|
|
\vskip12pt
|
|
\textbf{Where you spent the night:}
|
|
/ = basecamp, - = away from Expo.
|
|
\vskip12pt
|
|
\end{minipage}
|
|
\begin{longtable}{rc}
|
|
\tikz{\node at (0,0.5) {}; \node at (0,0) {};} & #2 \\
|
|
\tikz{\node at (0,0.5) {}; \node at (0,0) {};} & \weekdays \\
|
|
\endfirsthead
|
|
\tikz{\node at (0,0.5) {}; \node at (0,0) {};} & #2 \\
|
|
\tikz{\node at (0,0.5) {}; \node at (0,0) {};} & \weekdays \\
|
|
\endhead
|
|
\tikz{\node at (0,0.5) {}; \node at (0,0) {};} & \weekdays \\
|
|
\endfoot
|
|
|
|
\whiledo{\value{linecount}<\value{maxlines}}{
|
|
\stepcounter{linecount}
|
|
\read\namesread to \currentname
|
|
\nightstallyoneweekline{\currentname}
|
|
}
|
|
|
|
\end{longtable}
|
|
\clearpage
|
|
}
|
|
|
|
\newcommand{\nightstally}[4]{
|
|
% arguments are the title, subheading information, and dates for the three weeks
|
|
% longtable, generated from the list of names
|
|
% uses nightstallyline for each line
|
|
% footer of day of the week, possibly also as a second header under the dates
|
|
\addcontentsline{toc}{section}{#1}
|
|
\openin\namesread=names.txt
|
|
\setcounter{linecount}{0}
|
|
{\LARGE\bf #1}\\
|
|
\vskip12pt
|
|
\textbf{Top line} for where you spent the night:
|
|
/ = basecamp, S = stonebridge bivvy, B = bivvying elsewhere, - = away from Expo.
|
|
\vskip12pt
|
|
\textbf{Bottom line} for time spent underground.\\\vspace*{12pt}
|
|
|
|
\begin{longtable}{rccc}
|
|
\tikz{\node at (0,0.5) {}; \node at (0,0) {};} & #2 & #3 & #4 \\
|
|
\tikz{\node at (0,0.5) {}; \node at (0,0) {};} & \weekdays & \weekdays & \weekdays \\
|
|
\endfirsthead
|
|
\tikz{\node at (0,0.5) {}; \node at (0,0) {};} & #2 & #3 & #4 \\
|
|
\tikz{\node at (0,0.5) {}; \node at (0,0) {};} & \weekdays & \weekdays & \weekdays \\
|
|
\endhead
|
|
\tikz{\node at (0,0.5) {}; \node at (0,0) {};} & \weekdays & \weekdays & \weekdays \\
|
|
\endfoot
|
|
|
|
\whiledo{\value{linecount}<\value{maxlines}}{
|
|
\stepcounter{linecount}
|
|
\read\namesread to \currentname
|
|
\nightstallyline{\currentname}
|
|
}
|
|
|
|
\end{longtable}
|
|
\clearpage
|
|
}
|
|
|
|
\newcommand{\nightstallyoneweekline}[1]{
|
|
% argument is the name on the line
|
|
% boxes are a tikz grid
|
|
\begin{tikzpicture}
|
|
\pgfmathsetmacro{\wvar}{0.4}
|
|
\node at (0,0.6*\wvar) [anchor=east] {\textbf{#1}};
|
|
\node at (0,0) {};
|
|
\node at (0,\wvar) {};
|
|
\end{tikzpicture}
|
|
\and
|
|
\begin{tikzpicture}
|
|
\pgfmathsetmacro{\wvar}{0.4}
|
|
\foreach \xvar in {0,1}
|
|
{
|
|
\foreach \yvar in {0,1,2,3,4,5,6}
|
|
{
|
|
\draw (\yvar*\wvar,\xvar*\wvar) -- ++ (0,\wvar) -- ++ (\wvar,0) -- ++ (0,-\wvar) -- cycle;
|
|
}
|
|
}
|
|
\end{tikzpicture}
|
|
\\
|
|
}
|
|
|
|
\newcommand{\nightstallyline}[1]{
|
|
% argument is the name on the line
|
|
% boxes are a tikz grid
|
|
\begin{tikzpicture}
|
|
\pgfmathsetmacro{\wvar}{0.4}
|
|
\node at (0,0.6*\wvar) [anchor=east] {\textbf{#1}};
|
|
\node at (0,0) {};
|
|
\node at (0,\wvar) {};
|
|
\end{tikzpicture}
|
|
\and
|
|
\begin{tikzpicture}
|
|
\pgfmathsetmacro{\wvar}{0.4}
|
|
\foreach \xvar in {0,1}
|
|
{
|
|
\foreach \yvar in {0,1,2,3,4,5,6}
|
|
{
|
|
\draw (\yvar*\wvar,\xvar*\wvar) -- ++ (0,\wvar) -- ++ (\wvar,0) -- ++ (0,-\wvar) -- cycle;
|
|
}
|
|
}
|
|
\end{tikzpicture}
|
|
\and
|
|
\begin{tikzpicture}
|
|
\pgfmathsetmacro{\wvar}{0.4}
|
|
\foreach \xvar in {0,1}
|
|
{
|
|
\foreach \yvar in {0,1,2,3,4,5,6}
|
|
{
|
|
\draw (\yvar*\wvar,\xvar*\wvar) -- ++ (0,\wvar) -- ++ (\wvar,0) -- ++ (0,-\wvar) -- cycle;
|
|
}
|
|
}
|
|
\end{tikzpicture}
|
|
\and
|
|
\begin{tikzpicture}
|
|
\pgfmathsetmacro{\wvar}{0.4}
|
|
\foreach \xvar in {0,1}
|
|
{
|
|
\foreach \yvar in {0,1,2,3,4,5,6}
|
|
{
|
|
\draw (\yvar*\wvar,\xvar*\wvar) -- ++ (0,\wvar) -- ++ (\wvar,0) -- ++ (0,-\wvar) -- cycle;
|
|
}
|
|
}
|
|
\end{tikzpicture}
|
|
\\
|
|
}
|
|
|
|
\newcommand{\weekdays}{
|
|
\begin{tikzpicture}
|
|
\pgfmathsetmacro{\wvar}{0.4}
|
|
\foreach \yvar/\zvar in {0/S{\tiny u},1/M,2/T,3/W,4/T,5/F,6/S}
|
|
{
|
|
\node at (\yvar*\wvar,0) [anchor=center] {\zvar};
|
|
}
|
|
\end{tikzpicture}
|
|
}
|
|
|
|
\newcommand{\expotransport}{
|
|
% longtable to spread over multiple pages
|
|
% method / departed / arrived / notes
|
|
\addcontentsline{toc}{chapter}{Expo Transport}
|
|
\begin{longtable}{p{2cm}|p{2cm}|p{2cm}|p{8cm}}
|
|
\multicolumn{4}{l}{\expoheading{Expo Transport}} \\
|
|
Method & Departed & Arrived & Notes \\
|
|
\midrule
|
|
\endfirsthead
|
|
Method & Departed & Arrived & Notes \\
|
|
\midrule
|
|
\endhead
|
|
\vspace{20.3cm} & & & \\
|
|
\vspace{22cm} & & & \\
|
|
\end{longtable}
|
|
}
|
|
|
|
\newcommand{\moneyowed}{
|
|
% creates a series of pages for the money owed to individuals
|
|
% each person gets a page as made by moneyowedperson
|
|
% generated from the names list
|
|
\addcontentsline{toc}{chapter}{Money owed to ...}
|
|
|
|
\openin\namesread=names.txt
|
|
\setcounter{linecount}{0}
|
|
|
|
\whiledo{\value{linecount}<\value{maxlines}}{
|
|
\stepcounter{linecount}
|
|
\read\namesread to \currentname
|
|
\moneyowedperson{\currentname}
|
|
}
|
|
}
|
|
|
|
\newcommand{\moneyowedperson}[1]{
|
|
% argument is who the money is owed to
|
|
% longtable to spread over multiple pages
|
|
% date / owed by / description
|
|
\addcontentsline{toc}{section}{#1}
|
|
{\LARGE\bf Money owed to #1}\vspace*{12pt}
|
|
\begin{longtable}{p{2cm}|p{4cm}|p{3cm}|p{6cm}}
|
|
\multicolumn{4}{p{\textwidth}}{Write a \textbf{positive} sign if #1~\hspace*{-3pt}\textbf{spent money}} \\
|
|
\multicolumn{4}{p{\textwidth}}{Write a \textbf{negative} sign if #1~\hspace*{-3pt}\textbf{owes money}} \\
|
|
\multicolumn{4}{p{\textwidth}}{Only write on \textbf{one person's page} for a transaction. \textbf{Give currency if not Euros.}} \\
|
|
\multicolumn{4}{p{\textwidth}}{}\\
|
|
\textbf{Date} & \textbf{Who} & \textbf{Amount} & \textbf{Item} \\
|
|
\midrule
|
|
\endfirsthead
|
|
\textbf{Date} & \textbf{Who} & \textbf{Amount} & \textbf{Item} \\
|
|
\midrule
|
|
\endhead
|
|
\vspace{18.8cm} & & & \\
|
|
\vspace{22cm} & & & \\
|
|
\end{longtable}
|
|
\clearpage
|
|
}
|
|
|
|
\newcommand{\moneyowedgasthof}{
|
|
% longtable to spread over multiple pages
|
|
% date / owed by / description
|
|
\addcontentsline{toc}{chapter}{Money owed to Gasthof Staud'nwirt}
|
|
\begin{longtable}{p{2cm}|p{4cm}|p{3cm}|p{6cm}}
|
|
\multicolumn{4}{l}{\expoheading{Money owed to Gasthof Staud'nwirt}} \\
|
|
\textbf{Date} & \textbf{Who} & \textbf{Amount} & \textbf{Item} \\
|
|
\midrule
|
|
\endfirsthead
|
|
\textbf{Date} & \textbf{Who} & \textbf{Amount} & \textbf{Item} \\
|
|
\midrule
|
|
\endhead
|
|
\vspace{20.3cm} & & & \\
|
|
\vspace{22cm} & & & \\
|
|
\end{longtable}
|
|
\clearpage
|
|
}
|
|
|
|
\newcommand{\blankpage}[1]{
|
|
% for creating a double page with nothing but a title
|
|
% longtable to consistent formatting
|
|
\addcontentsline{toc}{chapter}{#1}
|
|
\begin{longtable}{p{\textwidth}}
|
|
\expoheading{#1} \\
|
|
\vspace{\textheight} \\
|
|
\end{longtable}
|
|
}
|
|
|
|
\begin{document}
|
|
|
|
\newread\namesread
|
|
\newcounter{maxlines}
|
|
\newcounter{linecount}
|
|
\def\and{&}
|
|
|
|
\openin\namesread=names.txt
|
|
\loop\unless\ifeof\namesread
|
|
\read\namesread to \currentname
|
|
\stepcounter{maxlines}
|
|
\repeat
|
|
\addtocounter{maxlines}{-1}
|
|
|
|
\newread\datesread
|
|
\openin\datesread=dates.txt
|
|
\read\datesread to \zeroweek
|
|
\read\datesread to \firstweek
|
|
\read\datesread to \secondweek
|
|
\read\datesread to \thirdweek
|
|
\read\datesread to \fourthweek
|
|
\read\datesread to \fifthweek
|
|
\read\datesread to \sixthweek
|
|
|
|
\expotitle
|
|
\printtoc
|
|
|
|
\addcontentsline{toc}{chapter}{Drinks}
|
|
\tallyeveryone{Drinks 1--50}{\drinksssubtitle}{0}
|
|
\tallyspares{More drinks 51--100}{\drinksssubtitle}{50}{15}
|
|
|
|
\addcontentsline{toc}{chapter}{Nights}
|
|
\nightstallyoneweek{Nights, week zero}{\zeroweek}
|
|
\nightstally{Nights and time underground, weeks 1-3}{\firstweek}{\secondweek}{\thirdweek}
|
|
\nightstally{Nights and time underground, weeks 4-6}{\fourthweek}{\fifthweek}{\sixthweek}
|
|
|
|
\moneyowed
|
|
\moneyowedgasthof
|
|
|
|
\expotransport
|
|
|
|
\blankpage{Toll road info}
|
|
\blankpage{Gear left up the hill}
|
|
\blankpage{Gear taken back to Cambridge}
|
|
\blankpage{Top camp food bought}
|
|
\blankpage{First Aid}
|
|
\blankpage{In-Austria jollies}
|
|
\blankpage{Suggestions for next year}
|
|
\blankpage{Quotes}
|
|
|
|
|
|
\end{document}
|