Bierbook and Seshbook tex files recreated from scratch to work directly with pdflatex rather than a roundabout route.

Procedurally generate tables from an external list of names.
This commit is contained in:
Michael at Desktop
2016-04-27 13:07:21 +01:00
parent ceb2bce011
commit 300a173145
11 changed files with 655 additions and 1583 deletions

View File

@@ -1 +0,0 @@
Options +Indexes

View File

@@ -1,42 +1,25 @@
all: bierbook.pdf seshbook.pdf
bierbook.pdf: bierbook.ps
ps2pdf14 bierbook.ps
bierbook.ps: bierbook.dvi
dvips bierbook.dvi
bierbook.dvi: bierbook.tex names.txt grid.sty bb.cls
latex --shell-escape bierbook.tex
latex --shell-escape bierbook.tex
seshbook.pdf: seshbook.ps
ps2pdf14 seshbook.ps
seshbook.ps: seshbook.dvi
dvips seshbook.dvi
seshbook.dvi: seshbook.tex bb.cls
latex --shell-escape seshbook.tex
cleanbier:
rm -f bierbook.pdf
rm -f bierbook.ps
rm -f bierbook.log
rm -f bierbook.dvi
rm -f bierbook.toc
rm -f bierbook.toc
rm -f bierbook.aux
rm -f missfont.log
cleansesh:
rm -f seshbook.pdf
rm -f seshbook.ps
rm -f seshbook.log
rm -f seshbook.dvi
rm -f seshbook.toc
rm -f seshbook.aux
rm -f missfont.log
clean: cleanbier cleansesh
all: bierbook.pdf seshbook.pdf
bierbook.pdf: bierbook.tex names.txt dates.txt bierbook-style.sty
pdflatex.exe -synctex=1 -interaction=nonstopmode -shell-escape bierbook.tex
pdflatex.exe -synctex=1 -interaction=nonstopmode -shell-escape bierbook.tex
pdflatex.exe -synctex=1 -interaction=nonstopmode -shell-escape bierbook.tex
seshbook.pdf: seshbook.tex names.txt bierbook-style.sty
pdflatex.exe -synctex=1 -interaction=nonstopmode -shell-escape seshbook.tex
pdflatex.exe -synctex=1 -interaction=nonstopmode -shell-escape seshbook.tex
cleanbier:
rm -f bierbook.aux
rm -f bierbook.log
rm -f bierbook.pdf
rm -f bierbook.synctex.gz
rm -f bierbook.toc
cleansesh:
rm -f seshbook.aux
rm -f seshbook.log
rm -f seshbook.pdf
rm -f seshbook.synctex.gz
clean: cleanbier cleansesh

View File

@@ -1,733 +0,0 @@
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{bb}
[2001/08/02 v1.0
Bier Book class]
\DeclareFixedFont{\titlefont}{OT1}{phv}{b}{n}{36pt}
\DeclareFixedFont{\aftertitlefont}{OT1}{phv}{m}{n}{10pt}
\DeclareFixedFont{\titlepagefont}{OT1}{phv}{b}{n}{19pt}
\DeclareFixedFont{\titlepagefontm}{OT1}{phv}{m}{n}{15pt}
\DeclareFixedFont{\titlepagefontms}{OT1}{phv}{m}{n}{13pt}
\DeclareFixedFont{\titlepagefonts}{OT1}{phv}{m}{n}{12pt}
\DeclareFixedFont{\chapterfont}{OT1}{phv}{b}{n}{16pt}
\DeclareFixedFont{\chapterfontnonbold}{OT1}{phv}{m}{n}{16pt}
\DeclareFixedFont{\sectionfont}{OT1}{phv}{b}{n}{14pt}
\DeclareFixedFont{\subsectionfont}{OT1}{phv}{m}{n}{12pt}
\DeclareFixedFont{\subsubsectionfont}{OT1}{phv}{m}{n}{11pt}
\newcommand\@ptsize{}
\newif\if@restonecol
\newif\if@titlepage
\@titlepagetrue
\newif\if@openright
\if@compatibility\else
\DeclareOption{a4paper}
{\setlength\paperheight {297mm}%
\setlength\paperwidth {210mm}}
\DeclareOption{a5paper}
{\setlength\paperheight {210mm}%
\setlength\paperwidth {148mm}}
\DeclareOption{b5paper}
{\setlength\paperheight {250mm}%
\setlength\paperwidth {176mm}}
\DeclareOption{letterpaper}
{\setlength\paperheight {11in}%
\setlength\paperwidth {8.5in}}
\DeclareOption{legalpaper}
{\setlength\paperheight {14in}%
\setlength\paperwidth {8.5in}}
\DeclareOption{executivepaper}
{\setlength\paperheight {10.5in}%
\setlength\paperwidth {7.25in}}
\DeclareOption{landscape}
{\setlength\@tempdima {\paperheight}%
\setlength\paperheight {\paperwidth}%
\setlength\paperwidth {\@tempdima}}
\fi
\if@compatibility
\renewcommand\@ptsize{0}
\else
\DeclareOption{10pt}{\renewcommand\@ptsize{0}}
\fi
\DeclareOption{11pt}{\renewcommand\@ptsize{1}}
\DeclareOption{12pt}{\renewcommand\@ptsize{2}}
\if@compatibility\else
\DeclareOption{oneside}{\@twosidefalse \@mparswitchfalse}
\fi
\DeclareOption{twoside}{\@twosidetrue \@mparswitchtrue}
\DeclareOption{draft}{\setlength\overfullrule{5pt}}
\if@compatibility\else
\DeclareOption{final}{\setlength\overfullrule{0pt}}
\fi
\DeclareOption{titlepage}{\@titlepagetrue}
\if@compatibility\else
\DeclareOption{notitlepage}{\@titlepagefalse}
\fi
\if@compatibility
\else
\DeclareOption{openright}{\@openrighttrue}
\DeclareOption{openany}{\@openrightfalse}
\fi
\if@compatibility\else
\DeclareOption{onecolumn}{\@twocolumnfalse}
\fi
\DeclareOption{twocolumn}{\@twocolumntrue}
\DeclareOption{leqno}{\input{leqno.clo}}
\DeclareOption{fleqn}{\input{fleqn.clo}}
\DeclareOption{openbib}{%
\AtEndOfPackage{%
\renewcommand\@openbib@code{%
\advance\leftmargin\bibindent
\itemindent -\bibindent
\listparindent \itemindent
\parsep \z@
}%
\renewcommand\newblock{\par}}%
}
\ExecuteOptions{letterpaper,10pt,oneside,onecolumn,final,openany}
\ProcessOptions
\input{size1\@ptsize.clo}
\setlength\lineskip{1\p@}
\setlength\normallineskip{1\p@}
\renewcommand\baselinestretch{}
\setlength\parskip{0\p@ \@plus \p@}
\@lowpenalty 51
\@medpenalty 151
\@highpenalty 301
\setcounter{topnumber}{2}
\renewcommand\topfraction{.7}
\setcounter{bottomnumber}{1}
\renewcommand\bottomfraction{.3}
\setcounter{totalnumber}{3}
\renewcommand\textfraction{.2}
\renewcommand\floatpagefraction{.5}
\setcounter{dbltopnumber}{2}
\renewcommand\dbltopfraction{.7}
\renewcommand\dblfloatpagefraction{.5}
\if@twoside
\def\ps@headings{%
\let\@oddfoot\@empty\let\@evenfoot\@empty
\def\@evenhead{\thepage\hfil\slshape\leftmark}%
\def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
\let\@mkboth\markboth
\def\chaptermark##1{%
\markboth {\MakeUppercase{%
\ifnum \c@secnumdepth >\m@ne
\@chapapp\ \thechapter. \ %
\fi
##1}}{}}%
\def\sectionmark##1{%
\markright {\MakeUppercase{%
\ifnum \c@secnumdepth >\z@
\thesection. \ %
\fi
##1}}}}
\else
\def\ps@headings{%
\let\@oddfoot\@empty
\def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
\let\@mkboth\markboth
\def\chaptermark##1{%
\markright {\MakeUppercase{%
\ifnum \c@secnumdepth >\m@ne
\@chapapp\ \thechapter. \ %
\fi
##1}}}}
\fi
\def\ps@myheadings{%
\let\@oddfoot\@empty\let\@evenfoot\@empty
\def\@evenhead{\thepage\hfil\slshape\leftmark}%
\def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
\let\@mkboth\@gobbletwo
\let\chaptermark\@gobble
\let\sectionmark\@gobble
}
\if@titlepage
\newcommand\maketitle{\begin{titlepage}%
\let\footnotesize\small
\let\footnoterule\relax
\let \footnote \thanks
\null\vfil
\vskip 60\p@
\begin{center}%
{\LARGE \@title \par}%
\vskip 3em%
{\large
\lineskip .75em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1.5em%
{\large \@date \par}% % Set date in \large size.
\end{center}\par
\@thanks
\vfil\null
\end{titlepage}%
\setcounter{footnote}{0}%
\global\let\thanks\relax
\global\let\maketitle\relax
\global\let\@thanks\@empty
\global\let\@author\@empty
\global\let\@date\@empty
\global\let\@title\@empty
\global\let\title\relax
\global\let\author\relax
\global\let\date\relax
\global\let\and\relax
}
\else
\newcommand\maketitle{\par
\begingroup
\renewcommand\thefootnote{\@fnsymbol\c@footnote}%
\def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}%
\long\def\@makefntext##1{\parindent 1em\noindent
\hb@xt@1.8em{%
\hss\@textsuperscript{\normalfont\@thefnmark}}##1}%
\if@twocolumn
\ifnum \col@number=\@ne
\@maketitle
\else
\twocolumn[\@maketitle]%
\fi
\else
\newpage
\global\@topnum\z@ % Prevents figures from going at top of page.
\@maketitle
\fi
\thispagestyle{plain}\@thanks
\endgroup
\setcounter{footnote}{0}%
\global\let\thanks\relax
\global\let\maketitle\relax
\global\let\@maketitle\relax
\global\let\@thanks\@empty
\global\let\@author\@empty
\global\let\@date\@empty
\global\let\@title\@empty
\global\let\title\relax
\global\let\author\relax
\global\let\date\relax
\global\let\and\relax
}
\def\@maketitle{%
\newpage
\null
\vskip 2em%
\begin{center}%
\let \footnote \thanks
{\LARGE \@title \par}%
\vskip 1.5em%
{\large
\lineskip .5em%
\begin{tabular}[t]{c}%
\@author
\end{tabular}\par}%
\vskip 1em%
{\large \@date}%
\end{center}%
\par
\vskip 1.5em}
\fi
\newcommand*\chaptermark[1]{}
\setcounter{secnumdepth}{2}
\newcounter {part}
\newcounter {chapter}
\newcounter {section}[chapter]
\newcounter {subsection}[section]
\newcounter {subsubsection}[subsection]
\newcounter {paragraph}[subsubsection]
\newcounter {subparagraph}[paragraph]
\renewcommand \thepart {\@Roman\c@part}
\renewcommand \thechapter {\@arabic\c@chapter}
\renewcommand \thesection {\thechapter.\@arabic\c@section}
\renewcommand\thesubsection {\thesection.\@arabic\c@subsection}
\renewcommand\thesubsubsection{\thesubsection .\@arabic\c@subsubsection}
\renewcommand\theparagraph {\thesubsubsection.\@arabic\c@paragraph}
\renewcommand\thesubparagraph {\theparagraph.\@arabic\c@subparagraph}
\newcommand\@chapapp{\chaptername}
\newcommand\part{%
\if@openright
\cleardoublepage
\else
\clearpage
\fi
\thispagestyle{plain}%
\if@twocolumn
\onecolumn
\@tempswatrue
\else
\@tempswafalse
\fi
\null\vfil
\secdef\@part\@spart}
\def\@part[#1]#2{%
\ifnum \c@secnumdepth >-2\relax
\refstepcounter{part}%
\addcontentsline{toc}{part}{\thepart\hspace{1em}#1}%
\else
\addcontentsline{toc}{part}{#1}%
\fi
\markboth{}{}%
{\centering
\interlinepenalty \@M
\normalfont
\ifnum \c@secnumdepth >-2\relax
\huge\bfseries \partname~\thepart
\par
\vskip 20\p@
\fi
\Huge \bfseries #2\par}%
\@endpart}
\def\@spart#1{%
{\centering
\interlinepenalty \@M
\normalfont
\Huge \bfseries #1\par}%
\@endpart}
\def\@endpart{\vfil\newpage
\if@twoside
\null
\thispagestyle{empty}%
\newpage
\fi
\if@tempswa
\twocolumn
\fi}
\newcommand\chapter{\if@openright\cleardoublepage\else\clearpage\fi
\thispagestyle{plain}%
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapter\@schapter}
\newcommand\chapternotoc{\if@openright\cleardoublepage\else\clearpage\fi
\thispagestyle{plain}%
\global\@topnum\z@
\@afterindentfalse
\secdef\@chapternotoc\@schapter}
\def\@chapter[#1]#2{\ifnum \c@secnumdepth >\m@ne
\refstepcounter{chapter}%
\typeout{\@chapapp\space\thechapter.}%
\addcontentsline{toc}{chapter}%
{\protect\numberline{\thechapter}#1}%
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\chaptermark{#1}%
\addtocontents{lof}{\protect\addvspace{10\p@}}%
\addtocontents{lot}{\protect\addvspace{10\p@}}%
\if@twocolumn
\@topnewpage[\@makechapterhead{#2}]%
\else
\@makechapterhead{#2}%
\@afterheading
\fi}
\def\@chapternotoc[#1]#2{\ifnum \c@secnumdepth >\m@ne
\refstepcounter{chapter}%
\typeout{\@chapapp\space\thechapter.}%
%% \addcontentsline{toc}{chapter}%
%% {\protect\numberline{\thechapter}#1}%
\else
\addcontentsline{toc}{chapter}{#1}%
\fi
\chaptermark{#1}%
\addtocontents{lof}{\protect\addvspace{10\p@}}%
\addtocontents{lot}{\protect\addvspace{10\p@}}%
\if@twocolumn
\@topnewpage[\@makechapterhead{#2}]%
\else
\@makechapterhead{#2}%
\@afterheading
\fi}
\def\@makechapterhead#1{%
%% \vspace*{2\p@}%
{\parindent \z@ \raggedright \normalfont
\ifnum \c@secnumdepth >\m@ne
%% \hrulefill
%% \vskip 2\p@
%% \chapterfontnonbold \@chapapp\space \psshadowbox[linecolor=white]{\parbox{2.5cm}{\thechapter}}\ --\ %
%% \chapterfontnonbold\psshadowbox{\parbox[t][1.2cm][c]{1.2cm}{\begin{center}\thechapter\end{center}}} \space\space
%% \par\nobreak
%% \vskip 20\p@
\fi
%% \interlinepenalty\@M
\parbox[t][1.2cm][c]{\textwidth}{\vfill\chapterfont #1 \vfill}
\vskip 12\p@
%% \hrulefill\\
%% \vskip 40\p@
}}
\def\@schapter#1{\if@twocolumn
\@topnewpage[\@makeschapterhead{#1}]%
\else
\@makeschapterhead{#1}%
\@afterheading
\fi}
\def\@makeschapterhead#1{%
\vspace*{50\p@}%
{\parindent \z@ \raggedright
\normalfont
\interlinepenalty\@M
\chapterfont #1\par\nobreak
\vskip 40\p@
}}
\newcommand\section{\@startsection{section}{1}{0pt}{-3.5ex plus -1ex minus -.2ex}{2.3ex plus.2ex}{\sectionfont}}
\newcommand\subsection{\@startsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\subsectionfont}}
\newcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\subsubsectionfont}}
\newcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{3.25ex \@plus1ex \@minus.2ex}%
{-1em}%
{\normalfont\normalsize\bfseries}}
\newcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
{3.25ex \@plus1ex \@minus .2ex}%
{-1em}%
{\normalfont\normalsize\bfseries}}
\if@twocolumn
\setlength\leftmargini {2em}
\else
\setlength\leftmargini {2.5em}
\fi
\leftmargin \leftmargini
\setlength\leftmarginii {2.2em}
\setlength\leftmarginiii {1.87em}
\setlength\leftmarginiv {1.7em}
\if@twocolumn
\setlength\leftmarginv {.5em}
\setlength\leftmarginvi {.5em}
\else
\setlength\leftmarginv {1em}
\setlength\leftmarginvi {1em}
\fi
\setlength \labelsep {.5em}
\setlength \labelwidth{\leftmargini}
\addtolength\labelwidth{-\labelsep}
\@beginparpenalty -\@lowpenalty
\@endparpenalty -\@lowpenalty
\@itempenalty -\@lowpenalty
\renewcommand\theenumi{\@arabic\c@enumi}
\renewcommand\theenumii{\@alph\c@enumii}
\renewcommand\theenumiii{\@roman\c@enumiii}
\renewcommand\theenumiv{\@Alph\c@enumiv}
\newcommand\labelenumi{\theenumi.}
\newcommand\labelenumii{(\theenumii)}
\newcommand\labelenumiii{\theenumiii.}
\newcommand\labelenumiv{\theenumiv.}
\renewcommand\p@enumii{\theenumi}
\renewcommand\p@enumiii{\theenumi(\theenumii)}
\renewcommand\p@enumiv{\p@enumiii\theenumiii}
\newcommand\labelitemi{\textbullet}
\newcommand\labelitemii{\normalfont\bfseries \textendash}
\newcommand\labelitemiii{\textasteriskcentered}
\newcommand\labelitemiv{\textperiodcentered}
\newenvironment{description}
{\list{}{\labelwidth\z@ \itemindent-\leftmargin
\let\makelabel\descriptionlabel}}
{\endlist}
\newcommand*\descriptionlabel[1]{\hspace\labelsep
\normalfont\bfseries #1}
\if@titlepage
\newenvironment{abstract}{%
\titlepage
\null\vfil
\@beginparpenalty\@lowpenalty
\begin{center}%
\bfseries \abstractname
\@endparpenalty\@M
\end{center}}%
{\par\vfil\null\endtitlepage}
\else
\newenvironment{abstract}{%
\if@twocolumn
\section*{\abstractname}%
\else
\small
\begin{center}%
{\bfseries \abstractname\vspace{-.5em}\vspace{\z@}}%
\end{center}%
\quotation
\fi}
{\if@twocolumn\else\endquotation\fi}
\fi
\newenvironment{verse}
{\let\\\@centercr
\list{}{\itemsep \z@
\itemindent -1.5em%
\listparindent\itemindent
\rightmargin \leftmargin
\advance\leftmargin 1.5em}%
\item\relax}
{\endlist}
\newenvironment{quotation}
{\list{}{\listparindent 1.5em%
\itemindent \listparindent
\rightmargin \leftmargin
\parsep \z@ \@plus\p@}%
\item\relax}
{\endlist}
\newenvironment{quote}
{\list{}{\rightmargin\leftmargin}%
\item\relax}
{\endlist}
\if@compatibility
\newenvironment{titlepage}
{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse\newpage
\fi
\thispagestyle{empty}%
\setcounter{page}\z@
}%
{\if@restonecol\twocolumn \else \newpage \fi
}
\else
\newenvironment{titlepage}
{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse\newpage
\fi
\thispagestyle{empty}%
\setcounter{page}\@ne
}%
{\if@restonecol\twocolumn \else \newpage \fi
\if@twoside\else
\setcounter{page}\@ne
\fi
}
\fi
\newcommand\appendix{\par
\setcounter{chapter}{0}%
\setcounter{section}{0}%
\gdef\@chapapp{\appendixname}%
\gdef\thechapter{\@Alph\c@chapter}}
\newcommand\afterappendix{\par
\setcounter{chapter}{0}%
\setcounter{section}{0}%
\gdef\@chapapp{\chaptername}%
\gdef\thechapter{\@arabic\c@chapter}}
\setlength\arraycolsep{5\p@}
\setlength\tabcolsep{6\p@}
\setlength\arrayrulewidth{.4\p@}
\setlength\doublerulesep{2\p@}
\setlength\tabbingsep{\labelsep}
\skip\@mpfootins = \skip\footins
\setlength\fboxsep{3\p@}
\setlength\fboxrule{.4\p@}
\@addtoreset {equation}{chapter}
\renewcommand\theequation
{\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@equation}
\newcounter{figure}[chapter]
\renewcommand \thefigure
{\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@figure}
\def\fps@figure{tbp}
\def\ftype@figure{1}
\def\ext@figure{lof}
\def\fnum@figure{\figurename~\thefigure}
\newenvironment{figure}
{\@float{figure}}
{\end@float}
\newenvironment{figure*}
{\@dblfloat{figure}}
{\end@dblfloat}
\newcounter{table}[chapter]
\renewcommand \thetable
{\ifnum \c@chapter>\z@ \thechapter.\fi \@arabic\c@table}
\def\fps@table{tbp}
\def\ftype@table{2}
\def\ext@table{lot}
\def\fnum@table{\tablename~\thetable}
\newenvironment{table}
{\@float{table}}
{\end@float}
\newenvironment{table*}
{\@dblfloat{table}}
{\end@dblfloat}
\newlength\abovecaptionskip
\newlength\belowcaptionskip
\setlength\abovecaptionskip{10\p@}
\setlength\belowcaptionskip{0\p@}
\long\def\@makecaption#1#2{%
\vskip\abovecaptionskip
\sbox\@tempboxa{#1: #2}%
\ifdim \wd\@tempboxa >\hsize
#1: #2\par
\else
\global \@minipagefalse
\hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
\fi
\vskip\belowcaptionskip}
\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm}
\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf}
\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt}
\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}
\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit}
\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl}
\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc}
\DeclareRobustCommand*\cal{\@fontswitch\relax\mathcal}
\DeclareRobustCommand*\mit{\@fontswitch\relax\mathnormal}
\newcommand\@pnumwidth{1.55em}
\newcommand\@tocrmarg{2.55em}
\newcommand\@dotsep{4.5}
\setcounter{tocdepth}{2}
\newcommand\tableofcontents{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter*{\contentsname
\@mkboth{%
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}%
\@starttoc{toc}%
\if@restonecol\twocolumn\fi
}
\newcommand*\l@part[2]{%
\ifnum \c@tocdepth >-2\relax
\addpenalty{-\@highpenalty}%
\addvspace{2.25em \@plus\p@}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
{\leavevmode
\large \bfseries #1\hfil \hb@xt@\@pnumwidth{\hss #2}}\par
\nobreak
\global\@nobreaktrue
\everypar{\global\@nobreakfalse\everypar{}}%
\endgroup
\fi}
\newcommand*\l@chapter[2]{%
\ifnum \c@tocdepth >\m@ne
\addpenalty{-\@highpenalty}%
\vskip 1.0em \@plus\p@
\setlength\@tempdima{1.5em}%
\begingroup
\parindent \z@ \rightskip \@pnumwidth
\parfillskip -\@pnumwidth
\leavevmode \bfseries
\advance\leftskip\@tempdima
\hskip -\leftskip
#1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
\penalty\@highpenalty
\endgroup
\fi}
\newcommand*\l@section{\@dottedtocline{1}{1.5em}{2.3em}}
\newcommand*\l@subsection{\@dottedtocline{2}{3.8em}{3.2em}}
\newcommand*\l@subsubsection{\@dottedtocline{3}{7.0em}{4.1em}}
\newcommand*\l@paragraph{\@dottedtocline{4}{10em}{5em}}
\newcommand*\l@subparagraph{\@dottedtocline{5}{12em}{6em}}
\newcommand\listoffigures{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter*{\listfigurename
\@mkboth{\MakeUppercase\listfigurename}%
{\MakeUppercase\listfigurename}}%
\@starttoc{lof}%
\if@restonecol\twocolumn\fi
}
\newcommand*\l@figure{\@dottedtocline{1}{1.5em}{2.3em}}
\newcommand\listoftables{%
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter*{\listtablename
\@mkboth{%
\MakeUppercase\listtablename}{\MakeUppercase\listtablename}}%
\@starttoc{lot}%
\if@restonecol\twocolumn\fi
}
\let\l@table\l@figure
\newdimen\bibindent
\setlength\bibindent{1.5em}
\newenvironment{thebibliography}[1]
{\chapter*{\bibname
\@mkboth{\MakeUppercase\bibname}{\MakeUppercase\bibname}}%
\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist}
\newcommand\newblock{\hskip .11em\@plus.33em\@minus.07em}
\let\@openbib@code\@empty
\newenvironment{theindex}
{\if@twocolumn
\@restonecolfalse
\else
\@restonecoltrue
\fi
\columnseprule \z@
\columnsep 35\p@
\twocolumn[\@makeschapterhead{\indexname}]%
\@mkboth{\MakeUppercase\indexname}%
{\MakeUppercase\indexname}%
\thispagestyle{plain}\parindent\z@
\parskip\z@ \@plus .3\p@\relax
\let\item\@idxitem}
{\if@restonecol\onecolumn\else\clearpage\fi}
\newcommand\@idxitem{\par\hangindent 40\p@}
\newcommand\subitem{\@idxitem \hspace*{20\p@}}
\newcommand\subsubitem{\@idxitem \hspace*{30\p@}}
\newcommand\indexspace{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax}
\renewcommand\footnoterule{%
\kern-3\p@
\hrule\@width.4\columnwidth
\kern2.6\p@}
\@addtoreset{footnote}{chapter}
\newcommand\@makefntext[1]{%
\parindent 1em%
\noindent
\hb@xt@1.8em{\hss\@makefnmark}#1}
\newcommand\contentsname{Contents}
\newcommand\listfigurename{List of Figures}
\newcommand\listtablename{List of Tables}
\newcommand\bibname{Bibliography}
\newcommand\indexname{Index}
\newcommand\figurename{Figure}
\newcommand\tablename{Table}
\newcommand\partname{Part}
\newcommand\chaptername{Chapter}
\newcommand\appendixname{Appendix}
\newcommand\abstractname{Abstract}
\def\today{\ifcase\month\or
January\or February\or March\or April\or May\or June\or
July\or August\or September\or October\or November\or December\fi
\space\number\day, \number\year}
\setlength\columnsep{10\p@}
\setlength\columnseprule{0\p@}
\pagestyle{plain}
\pagenumbering{arabic}
\if@twoside
\else
\raggedbottom
\fi
\if@twocolumn
\twocolumn
\sloppy
\flushbottom
\else
\onecolumn
\fi
\endinput

View File

@@ -0,0 +1,82 @@
\ProvidesPackage{bierbook-style}
% Contains generic style information such as font, size, margins, and include{} for the various packages used in the documents
% Increase the margins of the document. J.S. Wilson & sons recommend 20 mm (57 pt) margins on all edges, except 30mm (86 pt) on the binding edges. The vertical margins here are increased to accommodate the header and footer.
\usepackage[top=92pt,
bottom=92pt,
left=86pt,
right=57pt,
headheight=15pt,
headsep=20pt,
footskip=35pt,
marginparsep=5pt,
marginparwidth=47pt]{geometry}
% The 'fancyhdr' package is used to typset both headers and footers, and requires that the page style is set to 'fancy'.
\usepackage{fancyhdr}
\pagestyle{fancy}
% Make the header tall enough for the text
% Set line widths for the header and footer.
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
% Clear the headers and footers, then add page numbers to the header. These are on the left on even numbered pages, and on the right on odd numbered pages. This is because of the two sided layout.
\fancyhead{}
\fancyfoot{}
\fancyhead[LE,RO]{\small\thepage}
% Tikz is a powerful tool for creating diagrams and annotating images. It can be extended to draw 3D images. The spy library allows parts of an image to enlarged in an inset.
\usepackage{tikz}
% The booktabs package is the main source of table formatting commands.
\usepackage{booktabs}
% The longtable environment is similar in most ways to tabular, but is allowed to be broken by LaTeX's standard page-breaking algorithm. It still uses the table counter, so does not interfere with cross-referencing.
\usepackage{longtable}
% Set the default thinknesses of the rules (lines) used in tables. Heavy lines are used for \toprule and \bottomrule, whereas light lines are used for \midrule and \cmidrule, which is the variant for partial horizontal lines.
\setlength{\heavyrulewidth}{2pt}
\setlength{\lightrulewidth}{1pt}
% Required for cells spanning multiple rows in a table.
\usepackage{multirow}
% The 'tocloft' package is used to typeset the ToC, LoF, LoT, and allows creation of new lists which follow the same format.
\usepackage{tocloft}
% Counter level 0 is chapter, level 1 is section, and level 2 is subsections.
\setcounter{tocdepth}{2}
% Option to change the title of the ToC, and reduces the size of the spaces surrounding the title.
\renewcommand{\contentsname}{Contents}
\setlength{\cftbeforetoctitleskip}{10pt}
\setlength{\cftaftertoctitleskip}{20pt}
% Sets the line space above a each type of entry, only put extra space above new chapters.
\setlength{\cftbeforechapskip}{10pt}
\setlength{\cftbeforesecskip}{0pt}
\setlength{\cftbeforesubsecskip}{0pt}
% Spacing of the dots that link the entry name to the page number, for all three levels of entry.
\renewcommand{\cftchapdotsep}{\cftnodots}
\renewcommand{\cftsecdotsep}{2}
\renewcommand{\cftsubsecdotsep}{2}
% Create a single command to print the ToC on a new page, and include it in itself
\newcommand{\printtoc}{
\addcontentsline{toc}{chapter}{\contentsname}
\tableofcontents
\clearpage
}
% for the gothic font
\usepackage{yfonts}
\usepackage{anyfontsize}
% for iteration
\usepackage{ifthen}

View File

@@ -1,578 +1,367 @@
%% ----------------------------------------------------------------------------
%%
%% CUCC Expo Bier Book
%%
%% ----------------------------------------------------------------------------
\documentclass[a4paper,12pt,twoside]{book}
\documentclass[a5paper,10pt,openany]{bb}
\usepackage{bierbook-style}
% All required packages should be included in bierbook-style
\usepackage{pstricks}
\usepackage{tabularx}
\usepackage{color}
\usepackage{calc}
\usepackage[left=15mm,right=15mm,top=8mm,bottom=20mm]{geometry}
\usepackage{palatino}
\usepackage{grid}
\usepackage{auto-pst-pdf}
\setlength{\parskip}{1.5ex}
\setlength{\parindent}{0pt}
\newcommand{\boxes}[1][35]{%
\psgrid[gridlabels=0pt,gridlabelcolor=white,subgriddiv=1,xunit=12pt,yunit=14pt](0,0)(0,0)(#1,1)}
\setlength{\unitlength}{9.5pt}
\newlength\boxheight
\setlength{\boxheight}{\textheight-4cm}
\newcommand{\tallyA}{%
\medskip
\parbox[c][\boxheight]{1.5cm}{
\small
\setlength{\bigskipamount}{8.25pt}
Adam\bigskip\\
Aled\bigskip\\
Andrea\bigskip\\
Andrew\bigskip\\
Becka\bigskip\\
Chris\bigskip\\
David M\bigskip\\
David W\bigskip\\
Dour\bigskip\\
Elaine\bigskip\\
Fleur\bigskip\\
Gina\bigskip\\
Holly\bigskip\\
Jess\bigskip\\
Joe\bigskip\\
Julia\bigskip\\
Julian\bigskip\\
Juliet
}
\parbox[c][\boxheight]{\textwidth-5cm}{\graphpaper[1](0,0)(25,36)}
\newcommand{\expotitle}{
% makes the title page
\thispagestyle{empty}
\centering
\ \vspace{3cm}\\
{\Large Cambridge University Caving Club}
\bigskip
\vspace{5mm}
{\Huge \bf Expo \the\year}
\vspace{2cm}
\textgoth{\fontsize{100}{120}\selectfont Bier Book}
\vspace{6 cm}\\
{[}Stick obligatory G{\"o}sser label here{]}
\vfill
\clearpage
}
\newcommand{\tallyB}{%
\medskip
\parbox[c][\boxheight]{1.5cm}{
\small
\setlength{\bigskipamount}{8.25pt}
Katey\bigskip\\
Martin\bigskip\\
Matt\bigskip\\
Michael\bigskip\\
Mike\bigskip\\
Nathanael\bigskip\\
Neil\bigskip\\
Noel\bigskip\\
Pete\bigskip\\
Rob A\bigskip\\
Rob W\bigskip\\
Sam\bigskip\\
Sophie D\bigskip\\
Sophie H\bigskip\\
Wookey \bigskip\\
\ldots\ldots\ldots\bigskip\\
\ldots\ldots\ldots\bigskip\\
\ldots\ldots\ldots
}
\parbox[c][\boxheight]{\textwidth-5cm}{\graphpaper[1](0,0)(25,36)}
\newcommand{\expoheading}[1]{
% provides the formatting for a title of a section
\vspace{10pt}
{\LARGE #1}
\vspace{20pt}
}
\newcommand{\datetallyfirst}{%
\renewcommand{\arraystretch}{1.25}
\begin{tabularx}{\textwidth}{lp{2.5cm}lp{2.5cm}lp{2.5cm}}
& {\bf 19-25 Jul} && {\bf 26 Jul - 1 Aug} && {\bf 2-8 Aug}\smallskip\\
{\bf Adam} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Aled} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Andrea} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Andrew} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Becka} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Chris} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf David M} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf David W} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Dour} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Elaine} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Fleur} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Gina} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Holly} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Jess} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Joe} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Julia} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Julian} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Juliet} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
\newcommand{\drinkstally}[2]{
% argument is the title, second is the starting number for the tally
% longtable, generated from the list of names
% uses drinkstallyline for each line
\addcontentsline{toc}{section}{#1}
\openin\namesread=names.txt
\setcounter{linecount}{0}
\begin{longtable}{rc}
\multicolumn{2}{l}{\expoheading{#1}} \\
&
\drinkstallynumbers{#2}
\\
\endfirsthead
&
\drinkstallynumbers{#2}
\\
\endhead
&
\drinkstallynumbers{#2}
\\
\endfoot
\end{tabularx}
\newpage
\begin{tabularx}{\textwidth}{lp{2.5cm}lp{2.5cm}lp{2.5cm}}
& {\bf 19-25 Jul} && {\bf 26 Jul - 1 Aug} && {\bf 2-8 Aug}\smallskip\\
{\bf Katey} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Martin} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Matt} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Michael} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Mike} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Nathanael} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Neil} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Noel} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Pete} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Rob A} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Rob W} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Sam} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Sophie D} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Sophie H} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf Wookey } & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf \ldots\ldots\ldots} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf \ldots\ldots\ldots} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
{\bf \ldots\ldots\ldots} & \boxes[7] && \boxes[7] && \boxes[7]\medskip\\
\end{tabularx}
\renewcommand{\arraystretch}{1}
\whiledo{\value{linecount}<\value{maxlines}}{
\stepcounter{linecount}
\read\namesread to \currentname
\drinkstallyline{\currentname}
}
\newcommand{\datetallysecond}{%
\renewcommand{\arraystretch}{1.25}
\begin{tabularx}{\textwidth}{lp{2.5cm}lp{2.5cm}lp{2.5cm}}
& {\bf 9-15 Aug} && {\bf 16-22 Aug} && {\bf 23-24 Aug} \smallskip\\
{\bf Adam} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Aled} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Andrea} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Andrew} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Becka} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Chris} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf David M} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf David W} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Dour} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Elaine} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Fleur} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Gina} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Holly} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Jess} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Joe} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Julia} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Julian} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Juliet} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
\end{tabularx}
\newpage
\begin{tabularx}{\textwidth}{lp{2.5cm}lp{2.5cm}lp{2.5cm}}
& {\bf 9-15 Aug} && {\bf 16-22 Aug} && {\bf 23-24 Aug}\smallskip\\
{\bf Katey} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Martin} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Matt} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Michael} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Mike} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Nathanael} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Neil} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Noel} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Pete} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Rob A} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Rob W} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Sam} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Sophie D} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Sophie H} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf Wookey } & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf \ldots\ldots\ldots} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf \ldots\ldots\ldots} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
{\bf \ldots\ldots\ldots} & \boxes[7] && \boxes[7] && \boxes[2]\medskip\\
\end{tabularx}
\renewcommand{\arraystretch}{1}
\end{longtable}
\clearpage
}
\newcommand{\transporttable}{%
\begin{tabularx}{\textwidth}{l|l|l|X}
{\bf Method}&{\bf Left UK}&{\bf Arrived}
&{\bf Notes}\\\hline
\rule{0pt}{13cm} &&&
\end{tabularx}}
\newcommand{\drinkstallyline}[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] {#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{drinksnumber}
\newcommand{\drinkstallynumbers}[1]{
% argument is the starting number
\setcounter{drinksnumber}{#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{drinksnumber}};
\node at (\xvar*\wvar,0.4) {};
\addtocounter{drinksnumber}{10}
}
\end{tikzpicture}
}
\newcommand{\nightstally}[5]{
% 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}
\begin{longtable}{rccc}
\multicolumn{4}{l}{\expoheading{#1}} \\
\multicolumn{4}{p{14cm}}{#2} \\
\tikz{\node at (0,0.5) {}; \node at (0,0) {};} & #3 & #4 & #5 \\
\tikz{\node at (0,0.5) {}; \node at (0,0) {};} & \weekdays & \weekdays & \weekdays \\
\endfirsthead
\tikz{\node at (0,0.5) {}; \node at (0,0) {};} & #3 & #4 & #5 \\
\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
\newcommand{\transporttablelong}{%
\begin{tabularx}{\textwidth}{l|l|l|X}
{\bf Method}&{\bf Left UK}&{\bf Arrived}
&{\bf Notes}\\\hline
\rule{0pt}{16cm} &&&
\end{tabularx}}
\whiledo{\value{linecount}<\value{maxlines}}{
\stepcounter{linecount}
\read\namesread to \currentname
\nightstallyline{\currentname}
}
\end{longtable}
\clearpage
}
\newcommand{\karintable}{%
\begin{tabularx}{\textwidth}{l|X|X}
{\bf Creditor}&{\bf Date}&{\bf Amount}
\\\hline
\rule{0pt}{13cm} &&
\end{tabularx}}
\newcommand{\nightstallyline}[1]{
% argument is the name on the line
% boxes are a tikz grid
\begin{tikzpicture}
\pgfmathsetmacro{\wvar}{0.5}
\node at (0,0.3*\wvar) [anchor=east] {#1};
\node at (0,0) {};
\node at (0,\wvar) {};
\end{tikzpicture}
\and
\begin{tikzpicture}
\pgfmathsetmacro{\wvar}{0.5}
\foreach \yvar in {0,1,2,3,4,5,6}
{
\draw (\yvar*\wvar,0) -- ++ (0,\wvar) -- ++ (\wvar,0) -- ++ (0,-\wvar) -- cycle;
}
\end{tikzpicture}
\and
\begin{tikzpicture}
\pgfmathsetmacro{\wvar}{0.5}
\foreach \yvar in {0,1,2,3,4,5,6}
{
\draw (\yvar*\wvar,0) -- ++ (0,\wvar) -- ++ (\wvar,0) -- ++ (0,-\wvar) -- cycle;
}
\end{tikzpicture}
\and
\begin{tikzpicture}
\pgfmathsetmacro{\wvar}{0.5}
\foreach \yvar in {0,1,2,3,4,5,6}
{
\draw (\yvar*\wvar,0) -- ++ (0,\wvar) -- ++ (\wvar,0) -- ++ (0,-\wvar) -- cycle;
}
\end{tikzpicture}
\\
}
\newcommand{\seshtable}{%
\begin{tabularx}{\textwidth}{l|l|X|l}
{\bf Debtor(s)}&{\bf Creditor}&{\bf Description}&{\bf Cost}
\\\hline
\rule{0pt}{13cm} &&&
\end{tabularx}}
\newcommand{\weekdays}{
\begin{tikzpicture}
\pgfmathsetmacro{\wvar}{0.5}
\foreach \yvar/\zvar in {0/S,1/M,2/T,3/W,4/T,5/F,6/S}
{
\node at (\yvar*\wvar,0) [anchor=center] {\zvar};
}
\end{tikzpicture}
}
\newcommand{\seshtabletwo}{%
\begin{tabularx}{\textwidth}{l|l|X|l}
{\bf Debtor(s)}&{\bf Creditor}&{\bf Description}&{\bf Cost}
\\\hline
\rule{0pt}{16cm} &&&
\end{tabularx}}
\newcommand{\nightssubtitle}{
Please record where you spent each night. / = basecamp, S = stonebridge bivvy, B = bivvying elsewhere.
}
\newcommand{\inaustriatranstable}{%
\begin{tabularx}{\textwidth}{l|l|X|l}
{\bf Driver}&{\bf Passengers}&{\bf Description}&{\bf Approx Dist}
\\\hline
\rule{0pt}{13cm} &&&
\end{tabularx}}
\newcommand{\timesubtitle}{
For boasting purposes only.
}
\newcommand{\inaustriatranstabletwo}{%
\begin{tabularx}{\textwidth}{l|l|X|l}
{\bf Driver}&{\bf Passengers}&{\bf Description}&{\bf Approx Dist}
\\\hline
\rule{0pt}{16cm} &&&
\end{tabularx}}
\newcommand{\expoweather}[1]{
% argument is the start date of the expo
% longtable generated from incremeting the date for 6 weeks
% simple box in which to write what happened
\begin{longtable}{|l|p{10cm}|}
\multicolumn{4}{l}{\expoheading{Expo Transport}} \\
\endfirsthead
\expoweatherweek{}
\expoweatherweek{}
\expoweatherweek{}
\expoweatherweek{}
\expoweatherweek{}
\expoweatherweek{}
\end{longtable}
}
\newcommand{\expoweatherline}[1]{
% argument is the day text
\begin{tikzpicture}
\pgfmathsetmacro{\wvar}{1.5}
\node at (0,0.3*\wvar) [anchor=east] {#1};
\node at (0,0) {};
\node at (0,\wvar) {};
\end{tikzpicture}
& \\
\midrule
}
\newcommand{\moneytable}{%
\begin{tabularx}{\textwidth}{l|l|X|l}
{\bf Date}&{\bf Owed by}&{\bf Description}
&{\bf Amount}\\\hline
&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\
&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\
&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\
&&&\\&&&
\end{tabularx}}
\newcommand{\expoweatherweek}[1]{
% argument is the start of the week
\midrule
\expoweatherline{Monday}
\expoweatherline{Tuesday}
\expoweatherline{Wednesday}
\expoweatherline{Thursday}
\expoweatherline{Friday}
\expoweatherline{Saturday}
\expoweatherline{Sunday}
}
\newcommand{\moneytabletwo}{%
\begin{tabularx}{\textwidth}{l|l|X|l}
{\bf Date}&{\bf Owed by}&{\bf Description}
&{\bf Amount}\\\hline
&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\
&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\
&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\
&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&\\&&&
\end{tabularx}}
\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{\money}[1]{\chapter{Money to be paid to #1} {\small Please enter
each transaction only once in this book; either a positive credit to one
account, or a negative debit to another. Record the currency for each
entry.}\bigskip\\
\moneytable\newpage\moneytabletwo}
\newcommand{\moneypaid}{
% creates a series of pages for the money paid to individuals
% each person gets a page as made by moneypaidperson
% generated from the names list
\addcontentsline{toc}{chapter}{Money paid to ...}
\openin\namesread=names.txt
\setcounter{linecount}{0}
\whiledo{\value{linecount}<\value{maxlines}}{
\stepcounter{linecount}
\read\namesread to \currentname
\moneypaidperson{\currentname}
}
}
\newcommand{\moneypaidperson}[1]{
% argument is who the money is to be paid to
% longtable to spread over multiple pages
% date / owed by / description
\addcontentsline{toc}{section}{#1}
\begin{longtable}{p{2cm}|p{2cm}|p{10cm}}
\multicolumn{3}{l}{\expoheading{Money paid to #1}} \\
\multicolumn{3}{p{\textwidth}}{Please include each transaction only once, either as positive credit or a negative debit. \vspace{1cm}} \\
Date & Creditor & Notes \\
\midrule
\endfirsthead
Date & Creditor & Notes \\
\midrule
\endhead
\vspace{18.3cm} & & \\
\vspace{22cm} & & \\
\end{longtable}
\clearpage
}
\newcommand{\moneypaidgasthof}{
% argument is who the money is to be paid to
% longtable to spread over multiple pages
% date / owed by / description
\addcontentsline{toc}{chapter}{Money paid to Karin}
\begin{longtable}{p{2cm}|p{2cm}|p{10cm}}
\multicolumn{3}{l}{\expoheading{Money paid to Karin}} \\
Date & Creditor & Notes \\
\midrule
\endfirsthead
Date & Creditor & Notes \\
\midrule
\endhead
\vspace{18.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}
\newfont{\gothic}{ygoth scaled \magstep5}
\thispagestyle{empty}
\begin{center}
\ \vspace{3cm}\\
{\Large Cambridge University Caving Club}\bigskip\\
\vspace{5mm}
{\Huge \bf Expo 2014}\\
\vspace{2cm}
{\Huge \sc \gothic Bier Book}\\
\vfill
\end{center}
\newread\namesread
\newcounter{maxlines}
\newcounter{linecount}
\def\and{&}
\newpage
\openin\namesread=names.txt
\loop\unless\ifeof\namesread
\read\namesread to \currentname
\stepcounter{maxlines}
\repeat
\addtocounter{maxlines}{-1}
\ \vspace{12cm}\\
Revision 1, 10 July 2014.
\newread\datesread
\openin\datesread=dates.txt
\read\datesread to \firstweek
\read\datesread to \secondweek
\read\datesread to \thirdweek
\read\datesread to \fourthweek
\read\datesread to \fifthweek
\read\datesread to \sixthweek
\newpage
\tableofcontents
\clearpage
\thispagestyle{empty}
\hfill
\expotitle
\printtoc
\cleardoublepage
this page intentionally left blank
\clearpage
\chapter{Bier Tally (1-50)}
\tallyA
\newpage
{\chapterfont Bier Tally (1-50) cont'd}
\addcontentsline{toc}{chapter}{Drinks}
\drinkstally{Bier 1-50}{0}
\drinkstally{Bier 51-100}{50}
\drinkstally{Limo 1-50}{0}
\drinkstally{Limo 51-100}{50}
\drinkstally{Other Drinks (specify)}{0}
\drinkstally{Noteable farts}{0}
\tallyB
\addcontentsline{toc}{chapter}{Nights}
\nightstally{Nights Weeks 1-3}{\nightssubtitle}{\firstweek}{\secondweek}{\thirdweek}
\nightstally{Nights Weeks 4-6}{\nightssubtitle}{\fourthweek}{\fifthweek}{\sixthweek}
\nightstally{Time underground Weeks 1-3}{\timesubtitle}{\firstweek}{\secondweek}{\thirdweek}
\nightstally{Time underground Weeks 4-6}{\timesubtitle}{\fourthweek}{\fifthweek}{\sixthweek}
\moneypaid
\moneypaidgasthof
\expotransport
%\expoweather{arg1}
\blankpage{Squashed Flies}
\blankpage{Toll road info}
\blankpage{In Austria Jollies}
\blankpage{Suggestions for next year}
\blankpage{Gear left up the hill}
\blankpage{Quotes}
\chapter{More Bier (51-100)}
\setcounter{gridstart}{50}
\tallyA
\newpage
{\chapterfont More Bier (51-100) cont'd}
\setcounter{gridstart}{50}
\tallyB
\chapter{Even More Bier (101-150)}
\setcounter{gridstart}{100}
\tallyA
\newpage
{\chapterfont Even More Bier (101-150) cont'd}
\setcounter{gridstart}{100}
\tallyB
\chapter{Dunkel Bier (1-50)}
\setcounter{gridstart}{150}
\tallyA
\newpage
{\chapterfont Dunkel Bier (1-50) cont'd}
\setcounter{gridstart}{150}
\tallyB
\chapter{Limo Tally (1-50)}
\setcounter{gridstart}{0}
\tallyA
\newpage
{\chapterfont Limo Tally (1-50) cont'd}
\setcounter{gridstart}{0}
\tallyB
\chapter{More Limo (51-100)}
\setcounter{gridstart}{50}
\tallyA
\newpage
{\chapterfont More Limo (51-100) cont'd}
\setcounter{gridstart}{50}
\tallyB
\chapter{Notable Farts}
\setcounter{gridstart}{0}
\tallyA
\newpage
{\chapterfont Notable Farts cont'd}
\setcounter{gridstart}{0}
\tallyB
\chapter{Number of Showers}
\setcounter{gridstart}{0}
\tallyA
\newpage
{\chapterfont Number of Showers cont'd}
\setcounter{gridstart}{0}
\tallyB
\chapter{Expo Transport}
\transporttable
\newpage\transporttablelong
\newpage\transporttablelong
\chapter{Money paid to Karin}
\karintable
\chapter{Nights Tally (weeks 1 to 3)}
{\small {\bf /} = Base Camp; {\bf S} = stone bridge; {\bf B} = bivvying elsewhere.}
\datetallyfirst
\chapter{Nights Tally (weeks 4 and 5)}
{\small {\bf /} = Base Camp; {\bf S} = stone bridge; {\bf B} = bivvying elsewhere.}
\datetallysecond
\chapter{Time Underground Tally (weeks 1 to 3)}
\datetallyfirst
\chapter{Time Underground Tally (weeks 4 and 5)}
\datetallysecond
\chapter{Expo Weather}
\begin{tabularx}{\textwidth}{|l|X|}
\hline
Sat 19\textsuperscript{th} July & \\&\\\hline
Sun 20\textsuperscript{th} July & \\&\\\hline
Mon 21\textsuperscript{th} July & \\&\\\hline
Tue 22\textsuperscript{th} July & \\&\\\hline
Wed 23\textsuperscript{th} July & \\&\\\hline
Thu 24\textsuperscript{st} July & \\&\\\hline
Fri 25\textsuperscript{nd} July & \\&\\\hline\hline
Sat 26\textsuperscript{rd} July & \\&\\\hline
Sun 27\textsuperscript{th} July & \\&\\\hline
Mon 28\textsuperscript{th} July & \\&\\\hline
Tue 29\textsuperscript{th} July & \\&\\\hline
Wed 30\textsuperscript{th} July & \\&\\\hline
Thu 31\textsuperscript{th} July & \\&\\\hline
Fri 1\textsuperscript{th} August & \\&\\\hline\hline
Sat 2\textsuperscript{th} August & \\&\\\hline
Sun 3\textsuperscript{th} August & \\&\\\hline
Mon 4\textsuperscript{th} August & \\&\\\hline
\end{tabularx}
\newpage
\begin{tabularx}{\textwidth}{|l|X|}
\hline
Tue 5\textsuperscript{th} August & \\&\\\hline
Wed 6\textsuperscript{th} August & \\&\\\hline
Thu 7\textsuperscript{th} August & \\&\\\hline
Fri 8\textsuperscript{th} August & \\&\\\hline\hline
Sat 9\textsuperscript{th} August & \\&\\\hline
Sun 10\textsuperscript{th} August & \\&\\\hline
Mon 11\textsuperscript{th} August & \\&\\\hline
Tue 12\textsuperscript{th} August & \\&\\\hline
Wed 13\textsuperscript{st} August & \\&\\\hline
Thu 14\textsuperscript{nd} August & \\&\\\hline
Fri 15\textsuperscript{rd} August & \\&\\\hline\hline
Sat 16\textsuperscript{th} August & \\&\\\hline
Sun 17\textsuperscript{th} August & \\&\\\hline
Mon 18\textsuperscript{th} August & \\&\\\hline
Tue 19\textsuperscript{th} August & \\&\\\hline
Wed 20\textsuperscript{th} August & \\&\\\hline
Thu 21\textsuperscript{th} August & \\&\\\hline
Fri 22\textsuperscript{th} August & \\&\\\hline\hline
Sat 23\textsuperscript{st} August & \\&\\\hline
Sun 24\textsuperscript{st} August & \\&\\\hline
\end{tabularx}
\chapter{Toll Road Info}
\chapter{In Austria Jollies}
Please record details of all excursions over 10km.\\
\inaustriatranstable
\inaustriatranstabletwo
\inaustriatranstabletwo
\clearpage
\thispagestyle{empty}
\hfill
\clearpage
\chapter{Squashed Flies Page}
\money{Adam}
\money{Aled}
\money{Andrea}
\money{Andrew}
\money{Becka}
\money{Chris}
\money{David M}
\money{David W}
\money{Dour}
\money{Elaine}
\money{Fleur}
\money{Gina}
\money{Holly}
\money{Jess}
\money{Joe}
\money{Julia}
\money{Julian}
\money{Juliet}
\money{Katey}
\money{Martin}
\money{Matt}
\money{Michael}
\money{Mike}
\money{Nathanael}
\money{Neil}
\money{Noel}
\money{Pete}
\money{Rob A}
\money{Rob W}
\money{Sam}
\money{Sophie D}
\money{Sophie H}
\money{Wookey }
\money{\ldots\ldots\ldots}
\money{\ldots\ldots\ldots}
\money{\ldots\ldots\ldots}
\chapter{Dinner Choices}
\renewcommand{\arraystretch}{1.5}
\begin{tabularx}{\textwidth}{|l||X|X|X|c|}
\hline
{\bf Attendee}&{\bf Starter}&{\bf Main Course}&{\bf Dessert}&{\bf Cost} \\ \hline\hline
Adam &&&& \\ \hline
Aled &&&& \\ \hline
Andrea &&&& \\ \hline
Andrew &&&& \\ \hline
Becka &&&& \\ \hline
Chris &&&& \\ \hline
David M &&&& \\ \hline
David W &&&& \\ \hline
Dour &&&& \\ \hline
Elaine &&&& \\ \hline
Fleur &&&& \\ \hline
Gina &&&& \\ \hline
Holly &&&& \\ \hline
Jess &&&& \\ \hline
Joe &&&& \\ \hline
Julia &&&& \\ \hline
Julian &&&& \\ \hline
Juliet &&&& \\ \hline
\end{tabularx}
\newpage
\vspace{1cm}
\begin{tabularx}{\textwidth}{|l||X|X|X|c|}
\hline
{\bf Attendee}&{\bf Starter}&{\bf Main Course}&{\bf Dessert}&{\bf Cost} \\ \hline\hline
Katey &&&& \\ \hline
Martin &&&& \\ \hline
Matt &&&& \\ \hline
Michael &&&& \\ \hline
Mike &&&& \\ \hline
Nathanael &&&& \\ \hline
Neil &&&& \\ \hline
Noel &&&& \\ \hline
Pete &&&& \\ \hline
Rob A &&&& \\ \hline
Rob W &&&& \\ \hline
Sam &&&& \\ \hline
Sophie D &&&& \\ \hline
Sophie H &&&& \\ \hline
Wookey &&&& \\ \hline
&&&& \\ \hline
&&&& \\ \hline
&&&& \\ \hline
\end{tabularx}
\renewcommand{\arraystretch}{1}
\chapter{Gear taken up the hill}
\newpage\
\chapter{Stuff left in Austria}
\newpage\ \newpage\ \newpage\
\chapter{Expo Suggestions}
\newpage\ \newpage\
\chapter{Quotes}
\newpage\ \newpage
\newpage\ \newpage
\newpage\ \newpage
\newpage\ \newpage
\newpage\ \newpage
\newpage\ \newpage
\newpage\ \newpage
\newpage\ \newpage
\newpage\ \newpage
\newpage\ \newpage
\newpage\ \newpage
\newpage\ \newpage
\newpage\ \newpage
\end{document}
\end{document}

View File

@@ -1,7 +0,0 @@
latex --shell-escape bierbook.tex
dvips bierbook.dvi
ps2pdf14 bierbook.ps
latex --shell-escape seshbook.tex
dvips seshbook.dvi
ps2pdf14 seshbook.ps

View File

@@ -0,0 +1,6 @@
19 Jun - 25 Jun
26 Jun - 2 Jul
3 Jul - 9 Jul
10 Jul - 16 Jul
17 Jul - 23 Jul
24 Jul - 31 Jul

View File

@@ -1,94 +0,0 @@
%%
%% This is file `graphpap.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% graphpap.dtx (with options: `package')
%%
%% This is a generated file.
%%
%% Copyright 1993 1994 1995 1996 1997 1998 1999
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
%% This file was generated from file(s) of the LaTeX base system.
%% --------------------------------------------------------------
%%
%% It may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.2
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.2 or later is part of all distributions of LaTeX
%% version 1999/12/01 or later.
%%
%% This file may only be distributed together with a copy of the LaTeX
%% base system. You may however distribute the LaTeX base system without
%% such generated files.
%%
%% The list of all files belonging to the LaTeX base distribution is
%% given in the file `manifest.txt'. See also `legal.txt' for additional
%% information.
%%
%%
%% File `graphpap.dtx'.
%% Copyright (C) 1994 by Leslie Lamport
%% all rights reserved.
%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{grid}
[1994/08/09 v1.0c Hacked LaTeX graphpap package (LL)]
\let\c@@grid\count@
\newcounter{gridstart}
\def\@vgrid(#1,#2)#3#4#5{%
\setcounter{@grid}{#1}%
\addtocounter{@grid}{\c@gridstart}%
\multiput(#1,#2)(#3,0){#4}{\line(0,1){#5}}%
\multiput(#1,#2)(#3,0){#4}{\@vgridnumber{#3}}}
\def\@vgridnumber#1{%
\makebox(0,0)[t]{%
\shortstack{\rule{0pt}{10pt}\\\arabic{@grid}}}%
\addtocounter{@grid}{2*#1}}
\def\@nonumvgrid(#1,#2)#3#4#5{%
\multiput(#1,#2)(#3,0){#4}{\line(0,1){#5}}}
\def\@hgrid(#1,#2)#3#4#5{%
\setcounter{@grid}{#2}%
\multiput(#1,#2)(0,#3){#4}{\line(1,0){#5}}%
\multiput(#1,#2)(0,#3){#4}{\@hgridnumber{#3}}}
%%\def\@hgridnumber#1{%
%% \makebox(0,0)[r]{\arabic{@grid}\hspace{10pt}}%
%% \addtocounter{@grid}{#1}}
\def\@hgridnumber#1{}
\def\@nonumhgrid(#1,#2)#3#4#5{%
\multiput(#1,#2)(0,#3){#4}{\line(1,0){#5}}}
\newcommand\graphpaper[1][10]{\leavevmode\@grid{#1}}
\def\@grid#1(#2,#3)#4{\@grid@i{#1}{#2}{#3}(}
\def\@grid@i#1#2#3(#4,#5){%
\@tempcnta=#4\relax
\divide\@tempcnta#1\relax
\advance\@tempcnta1\relax
{\thinlines\@nonumvgrid(#2,#3){#1}{\@tempcnta}{#5}
\@tempcnta#4\relax
\divide\@tempcnta5\relax
\divide\@tempcnta#1\relax
\advance\@tempcnta1\relax
\@tempcntb5\relax
\multiply\@tempcntb#1\relax
\thicklines\@vgrid(#2,#3){\@tempcntb}{\@tempcnta}{#5}
\@tempcnta#5\relax
\divide\@tempcnta #1\relax
\advance\@tempcnta1\relax
\thinlines\@nonumhgrid(#2,#3){#1}{\@tempcnta}{#4}
\@tempcnta#5\relax
\divide\@tempcnta2\relax
%% \divide\@tempcnta#1\relax
\advance\@tempcnta1\relax
%% \thicklines\@hgrid(#2,#3){\@tempcntb}{\@tempcnta}{#4}}%
\setlength{\linethickness}{0.8mm}
\@hgrid(#2,#3){2}{\@tempcnta}{#4}}%
\ignorespaces}
\endinput
%%
%% End of file `graphpap.sty'.

View File

@@ -1,36 +1,40 @@
Adam\bigskip\\
Aled\bigskip\\
Andrea\bigskip\\
Andrew\bigskip\\
Becka\bigskip\\
Chris\bigskip\\
David M\bigskip\\
David W\bigskip\\
Dour\bigskip\\
Elaine\bigskip\\
Fleur\bigskip\\
Gina\bigskip\\
Holly\bigskip\\
Jess\bigskip\\
Joe\bigskip\\
Julia\bigskip\\
Julian\bigskip\\
Juliet\bigskip\\
Katey\bigskip\\
Martin\bigskip\\
Matt\bigskip\\
Michael\bigskip\\
Mike\bigskip\\
Nathanael\bigskip\\
Neil\bigskip\\
Noel\bigskip\\
Pete\bigskip\\
Rob A\bigskip\\
Rob W\bigskip\\
Sam\bigskip\\
Sophie D\bigskip\\
Sophie H\bigskip\\
Wookey \bigskip\\
\ldots\ldots\ldots\bigskip\\
\ldots\ldots\ldots\bigskip\\
\ldots\ldots\ldots\bigskip\\
Adam Henry
Alice Smith
Andrew Atkinson
Anthony Day
Ashley Gregg
Becka Lawson
Carl S-J
Catherin Hulse
Chris Densham
Christopher Smith
David Walker
Elaine Oliver
Elliott Smith
Fleur Loveridge
Frank Tully
George Breley
Jenny Black
Joe Bache
Joe Bache's mate
Julian Todd
Katey Bender
Luke Stangroom
Mark Dougherty
Mark S
Martin Green
Matthew Watson
Melissa Potts
Michael Sargent
Nat Dalton
Nathan Walker
Olly Betts
Pete Talling
Philip Withnall
Rob Watson
Roshni Gohil
Sioned Haughton
Wookey
\ldots\ldots\ldots
\ldots\ldots\ldots
\ldots\ldots\ldots

View File

@@ -1,20 +1,29 @@
Last made using MikTeX2.9 on Win7.
Build profile should be tex -> dvi -> ps -> pdf (because pstricks package is used).
Build profile should be tex -> pdf (because pstricks package is no longer used).
To build 'manually,' execute
latex --shell-escape bierbook.tex
dvips bierbook.dvi
ps2pdf14 bierbook.ps
pdflatex.exe -synctex=1 -interaction=nonstopmode -shell-escape bierbook.tex
latex --shell-scape seshbook.tex
dvips seshbook.dvi
ps2pdf14 seshbook.ps
pdflatex.exe -synctex=1 -interaction=nonstopmode -shell-escape seshbook.tex
Due to the way LaTeX works out table column witdths, these commands may need to be run several times until a stable output is produced.
The design of these files is intended to confine all changes year to year to the names.txt and dates.txt files, thanks to LaTeX's capability to read an external file and iterate through line by line performing the same action for each name.
packages needed (LaTeX) are:
geometry
fancyhdr
tikz
booktabs
tongtable
multirow
tocloft
yfonts
anyfontsize
ifthen
packages needed (Debian) are:
pstricks
ghostscript
texlive-bin
texlive-fonts-extra (for ygoth)

View File

@@ -1,125 +1,159 @@
%%
%% CUCC Expo Sesh Book
%%
\documentclass[a4paper,12pt,twoside]{book}
\documentclass[a5paper,10pt]{bb}
\usepackage{bierbook-style}
% All required packages should be included in bierbook-style
%\usepackage{pstricks}
\usepackage{tabularx}
%\usepackage{color}
%\usepackage{calc}
\usepackage[left=15mm,right=15mm,top=8mm,bottom=20mm]{geometry}
%\usepackage{palatino}
%\usepackage{grid}
%\usepackage{graphpap}
%\usepackage{auto-pst-pdf}
\setlength{\parskip}{1.5ex}
\setlength{\parindent}{0pt}
%\setlength{\unitlength}{9.5pt}
\usepackage{color}
\definecolor{hrulecol}{gray}{0.5}
\definecolor{textcol}{gray}{0}
\usepackage{colortbl}
\arrayrulecolor{hrulecol}
\newcommand{\seshattendees}{%
\renewcommand{\arraystretch}{1.5}
\begin{tabularx}{\textwidth}{X|l|l}
{\bf Attendee}&{\bf Amount owed}&{\bf Amount paid}\\\hline\hline
&&\\\hline&&\\\hline&&\\\hline&&\\\hline&&\\\hline&&\\\hline&&\\\hline
&&\\\hline&&\\\hline&&\\\hline&&\\\hline&&\\\hline&&\\\hline&&\\\hline
&&\\\hline&&\\\hline&&\\\hline&&\\\hline&&\\\hline&&\\\hline&&\\\hline
&&\\\hline\hline\raggedleft{\bf Totals}&&
\end{tabularx}}
\color{textcol}
\newcommand{\seshdetails}{%
Please record details of who consumed what, and costs, below.
\color{hrulecol}
\vspace{7.8ex} \hrule \vspace{6ex} \hrule \vspace{6ex} \hrule \vspace{6ex} \hrule
\vspace{6ex} \hrule \vspace{6ex} \hrule \vspace{6ex} \hrule \vspace{6ex} \hrule
\vspace{6ex} \hrule \vspace{6ex} \hrule \vspace{6ex} \hrule \vspace{6ex} \hrule
\vspace{6ex} \hrule \vspace{6ex} \hrule \vspace{6ex} \hrule \vspace{6ex} \hrule
\vspace{6ex} \hrule \vspace{6ex} \hrule
\color{textcol}
\newcommand{\expotitle}{
% makes the title page
\thispagestyle{empty}
\centering
\ \vspace{3cm}
{\Large Cambridge University Caving Club}
\bigskip
\vspace{5mm}\\
{\Huge \bf Expo \the\year}
\vspace{2cm}\\
\textgoth{\fontsize{100}{120}\selectfont Sesh Book}
\vspace{6 cm}\\
The Sesh Book is intended to be taken to every sesh at the Gasthof, so the Bier Book can
remain in the Potato Hut.
For each sesh, the table recording attendees, amount owed and amount paid is the primary reference for the treasurer and should be completed accurately. The totals give a quick check that everything has been accounted for.
The space on the opposite page can be used for recording the details of what each person had, and
for tallies etc. Any other details that might make it easier for the treasurer to decipher the receipt
should also be noted.
\vfill
\clearpage
}
\newcommand{\expoheading}[1]{
% provides the formatting for a title of a section
\vspace{10pt}
{\LARGE #1}
\vspace{20pt}
}
\newcommand{\sesh}[1]{
% argument is the number of the sesh
% longtable
\begin{longtable}{p{10cm}|p{2cm}|p{2cm}}
\multicolumn{3}{l}{\expoheading{Sesh #1 - \ldots/\ldots/\the\year}} \\
Attendee \and Amount Owed \and Amount Paid \\
\toprule
\endhead
%
\bottomrule
Totals \and \and \\
\endfoot
%
\setcounter{seshlines}{0}
\whiledo{\value{seshlines}<26}{
\and \and \\
\midrule
\stepcounter{seshlines}
}
%
\and \and \\
%
\end{longtable}
\clearpage
\begin{longtable}{p{14cm}}
\expoheading{Sesh #1 - Notes} \\
Please use this page to record details of the sesh, who ordered what, how much individual items cost, to avoid clutter on the opposite table.\\
\end{longtable}
\clearpage
}
\newcommand{\dinnerlist}{
% no arguments required
% longtable, generated from the list of names
% uses dinnerline for each line
\openin\namesread=names.txt
\setcounter{linecount}{0}
\begin{longtable}{l|p{3cm}|p{3cm}|p{3cm}|l}
\multicolumn{5}{l}{\expoheading{Expo Dinner}} \\
\multicolumn{5}{p{\textwidth}}{Please record people's dinner choices here in advance of the expo dinner.}
\vspace{1cm}\\
Name \and Starter \and Main \and Desert \and Notes \\
\toprule
\endfirsthead
Name \and Starter \and Main \and Desert \and Notes \\
\toprule
\endhead
\bottomrule
\endfoot
%
\stepcounter{linecount}
\whiledo{\value{linecount}<\value{maxlines}}{
\stepcounter{linecount}
\read\namesread to \currentname
\dinnerline{\currentname}
\midrule
}
%
\read\namesread to \currentname
\dinnerline{\currentname}
%
\end{longtable}
\clearpage
}
\newcommand{\dinnerline}[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] {#1};
\node at (0,0) {};
\node at (0,2*\wvar) {};
\end{tikzpicture}
\and
\and
\and
\and
\\
}
\newcommand{\blankpage}[1]{
% for creating a double page with nothing but a title
% longtable to consistent formatting
\begin{longtable}{p{\textwidth}}
\expoheading{#1} \\
\vspace{\textheight} \\
\end{longtable}
}
% \begin{tabularx}{\textwidth}{p{2.5cm}|X|l}
% {\bf Who}&{\bf What}&{\bf Cost}\\\hline
% &&\\&&\\&&\\&&\\&&\\&&\\&&\\&&\\&&\\
% &&\\&&\\&&\\&&\\&&\\&&\\&&\\&&\\&&\\
% &&\\&&\\&&\\&&\\&&\\&&\\&&\\&&\\&&
% \end{tabularx}}
\newcommand{\sesh}[1]{\chapter{Sesh #1 ~ --- ~ ~.~.~/~.~.~.~/2014}
\seshattendees\newpage\seshdetails}
\begin{document}
\newfont{\gothic}{ygoth scaled \magstep5}
\thispagestyle{empty}
\begin{center}
\ \vspace{3cm}\\
{\Large Cambridge University Caving Club}\bigskip\\
\vspace{5mm}
{\Huge \bf Expo 2014}\\
\vspace{2cm}
{\Huge Sesh Book}\\
\vspace{4cm}
\vfill
\end{center}
\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}
\expotitle
\newpage
\ \vspace{12cm}\\
Revision 1, 10 July 2014.
\newpage
\newcounter{seshcount}
\newcounter{seshlines}
\stepcounter{seshcount}
\def\and{&}
\whiledo{\value{seshcount}<21}{
\sesh{\theseshcount}
\stepcounter{seshcount}
}
\ \vspace{6 cm}\\
The Sesh Book is intended to be taken to every sesh at the Gasthof, so the Bier Book can
remain in the Potato Hut.
\blankpage{Sesh Quotes}
\blankpage{}
\blankpage{}
For each sesh, the table recording attendees, amount owed and amount paid is the primary reference
for the treasurer and should be completed accurately. The totals give a quick check that everything
has been accounted for.
\dinnerlist
The space on the opposite page can be used for recording the details of what each person had, and
for tallies etc. Any other details that might make it easier for the treasurer to decipher the receipt
should also be noted.
\sesh{1}
\sesh{2}
\sesh{3}
\sesh{4}
\sesh{5}
\sesh{6}
\sesh{7}
\sesh{8}
\sesh{9}
\sesh{10}
\sesh{11}
\sesh{12}
\sesh{13}
\sesh{14}
\sesh{15}
\sesh{16}
\sesh{17}
\sesh{18}
\sesh{19}
\sesh{20}
\chapter{Sesh Quotes}
\newpage\ \newpage
\newpage\ \newpage
\newpage\ \newpage
\newpage\ \newpage
\newpage\ \newpage
\newpage\ \newpage
\newpage\ \newpage
\end{document}
\end{document}