smv-stimmzettel/stimmzettel.tex

171 lines
4 KiB
TeX
Raw Normal View History

2024-09-30 09:40:32 +00:00
\documentclass[a5paper]{article}
\usepackage[ngerman]{babel}
\usepackage{hyphenat}
\hyphenation{Mathe-matik wieder-gewinnen}
\usepackage{fontspec}
\setmainfont{Liberation Sans}
\usepackage[table]{xcolor}
\usepackage[portrait,margin=0cm]{geometry} % ,showframe
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{array}
\usepackage{tabularx}
\usepackage{csvsimple}
\usepackage{adjustbox}
\usepackage{booktabs}
\usepackage{intcalc}
\usepackage{pgffor}
\usepackage{hyperref}
%\usepackage{fancyhdr}
\usepackage{pgfpages}
\pgfpagesuselayout{2 on 1}[a4paper,landscape,border shrink=1cm]
\usepackage{atbegshi}
\AtBeginShipout{
\pgfpagesshipoutlogicalpage{1}\copy\AtBeginShipoutBox
\pgfpagesshipoutlogicalpage{2}\box\AtBeginShipoutBox
\pgfshipoutphysicalpage
}
\pagestyle{empty}
%\pagestyle{fancy}
%\fancyhf{}
%\renewcommand{\headrulewidth}{0pt}
%\fancyfoot[C]{Powered by \LaTeX}
\setlength{\parindent}{0pt}
\def\persiderowcount{22}
\newcommand{\stimmzettel}[2]{
\noindent
\begin{minipage}[t]{0.49\textwidth}
\vspace{-\fboxsep}
\includegraphics[width=\textwidth]{img/ohg.pdf}
\end{minipage}
\begin{minipage}[t]{0.49\textwidth}
\vspace{-\fboxsep}
\hspace*{0pt}\hfill
\includegraphics[width=0.3\textwidth]{img/smv_neu.pdf}
\end{minipage}
\medskip\medskip\medskip
\begin{center}
\textbf{\LARGE Stimmzettel} \\
{\large für die \underline{\textbf{#1:in}}-Wahl des Otto-Hahn-Gymnasiums} \\
\medskip\medskip
{\large Sie haben \textbf{\LARGE 1} Stimme}
\end{center}
\medskip
\csvreader{#2}{}{}
\edef\totalrows{\thecsvrow}
\edef\colcount{\intcalcDiv{\totalrows}{\persiderowcount}}
\edef\colcount{\intcalcAdd{\colcount}{\ifnum\intcalcMod{\totalrows}{\persiderowcount}>0 1 \else 0 \fi}}
\edef\colwidth{
\ifnum\colcount=0
0
\else\ifnum\colcount=1
1
\else\ifnum\colcount=2
0.49
\else
0
\fi\fi\fi
}
\ifnum\colcount>0
\foreach \n in {0,...,\intcalcSub{\colcount}{1}}{
\noindent
\begin{minipage}[t]{\colwidth\textwidth}
\vspace{-\fboxsep}
\def\arraystretch{2}
\ifnum\totalrows>2
\rowcolors{2}{gray!10}{white}
\fi
\edef\rowcountstart{\intcalcMul{\n}{\persiderowcount}}
\begin{tabularx}{\linewidth}{|r|X|l|>{\centering\arraybackslash}c|}
\rowcolor{white}
\toprule
\multicolumn{1}{r}{\large\textbf{\#}} &
\multicolumn{1}{l}{\large\textbf{Kandidaten}} &
\multicolumn{1}{l}{\large\textbf{Klasse}} &
\multicolumn{1}{c}{
\adjustbox{valign=t}{
\begin{tikzpicture}
\draw (0,0.4) circle(2mm);
\draw (-0.1,0.5) -- (0.1,0.3);
\draw (-0.1,0.3) -- (0.1,0.5);
\end{tikzpicture}}
}
\\
\rowcolor{white}
\bottomrule
\multicolumn{1}{r}{} &
\multicolumn{1}{l}{} &
\multicolumn{1}{l}{} &
\multicolumn{1}{l}{}
\\
\hline
\csvreader[
head to column names,
late after line={\\ \hline},
filter expr={
test{\ifnumgreater{\thecsvinputline-1}{\rowcountstart}}
and test{\ifnumless{\thecsvinputline-1}{\rowcountstart+\persiderowcount+1}}
}
]{#2}{}
{
\large\textbf{\the\numexpr\rowcountstart+\thecsvrow-\n\relax.} &
\large\ifthenelse{\equal{\name}{}}{\givenname}{\givenname~\name} &
\large\year~\class &
\adjustbox{valign=c}{
\begin{tikzpicture}[inner sep=0pt, outer sep=0pt]
\draw[black, fill=white] (0,0) circle(2mm);
\end{tikzpicture}
}
}
\end{tabularx}
\end{minipage}
\hfill
}
\fi
}
\begin{document}
\stimmzettel{Unterstufensprecher}{data/unterstufensprecher.csv}
\newpage
\stimmzettel{Mittelstufensprecher}{data/mittelstufensprecher.csv}
\newpage
\stimmzettel{Realschulsprecher}{data/realschulsprecher.csv}
\newpage
\stimmzettel{Schulsprecher}{data/schulsprecher.csv}
\newpage
\begin{center}
\topskip0pt
\vspace*{\fill}
\textbf{\Large\href{https://git.dergrimm.net/dergrimm/smv-stimmzettel.git}{https://git.dergrimm.net/dergrimm/smv-stimmzettel.git}}
\vspace*{\fill}
\end{center}
\end{document}