Arthorius
22-09-2012, 04:56
Ein freundliches Hallo an die mrunix.de-Community,
ich habe mir ein kleines Projekt gemacht, die Anwesenheitsliste, die zurzeit in Word geschrieben ist nach LaTeX zu portieren. (keine strikte Bindung an die Vorlage erforderlich)
Ich hab nach längerem hin und her eine recht akzeptable Lösung, allerdings ist diese nicht sehr flexibel (siehe unten; bitte nicht mit YAGNI kommen ;) ) und für ein simples Thema recht kompliziert geworden. Und somit zu meiner Frage, ob jemand von euch mal drüberschaut und mir eventuell Verbesserungsvorschläge unterbreitet.
\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[margin=1cm,top=1.5cm]{geometry}
\usepackage{forloop}
\usepackage{multicol}
\usepackage{xtab}
\usepackage{booktabs}
\usepackage{numprint}
\nplpadding{2}
\usepackage{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot
\chead{Wohnheimsversammlung - \today}
\newcounter{zimmerct}
\newcommand{\floor}[2]{%
\tablehead{\toprule \large\bfseries Nr. \hspace{2cm} Unterschrift \\ \midrule }%
\tabletail{\midrule}%
\tablelasttail{\bottomrule}%
\begin{xtabular}{p{.47\textwidth}}%
\forloop{zimmerct}{1}{\not{\value{zimmerct}>#2}}{%
\mbox{#1$\cntprint{zimmerct}$ \hspace{-.6cm} \raisebox{-2em}{\parbox{.46\textwidth}{\dotfill}}} \tabularnewline%
} \\
\end{xtabular}
}
\makeatletter
\let\mcnewpage\pagebreak
\newcommand{\changenewpage}{%
\renewcommand\newpage{%
\if@firstcolumn
\hrule width\linewidth height0pt
\columnbreak
\else
\mcnewpage
\fi
}}
\makeatother
\newenvironment{dormitory}{\begin{multicols*}{2}\c hangenewpage}{\end{multicols*}}
\begin{document}
\begin{dormitory}
\floor{0}{20}
\floor{1}{20}
\floor{2}{20}
\floor{3}{8}
\end{dormitory}
\end{document}
Eine konkrete Macke ist das unschöne setzen bei mehr als zwanzig Zimmer pro Stockwerk =>
\floor{Stockwerknummer}{Zimmeranzahl}
Und sehe das richtig, dass multicolumn nicht zusammen mit "longtables" (supertabular, xtab) und forloops funktioniert, bekomme da immer ein
Misplaced \omit.
Vielen Dank schonmal für eure Mühen.
Arthorius
ich habe mir ein kleines Projekt gemacht, die Anwesenheitsliste, die zurzeit in Word geschrieben ist nach LaTeX zu portieren. (keine strikte Bindung an die Vorlage erforderlich)
Ich hab nach längerem hin und her eine recht akzeptable Lösung, allerdings ist diese nicht sehr flexibel (siehe unten; bitte nicht mit YAGNI kommen ;) ) und für ein simples Thema recht kompliziert geworden. Und somit zu meiner Frage, ob jemand von euch mal drüberschaut und mir eventuell Verbesserungsvorschläge unterbreitet.
\documentclass{article}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[margin=1cm,top=1.5cm]{geometry}
\usepackage{forloop}
\usepackage{multicol}
\usepackage{xtab}
\usepackage{booktabs}
\usepackage{numprint}
\nplpadding{2}
\usepackage{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot
\chead{Wohnheimsversammlung - \today}
\newcounter{zimmerct}
\newcommand{\floor}[2]{%
\tablehead{\toprule \large\bfseries Nr. \hspace{2cm} Unterschrift \\ \midrule }%
\tabletail{\midrule}%
\tablelasttail{\bottomrule}%
\begin{xtabular}{p{.47\textwidth}}%
\forloop{zimmerct}{1}{\not{\value{zimmerct}>#2}}{%
\mbox{#1$\cntprint{zimmerct}$ \hspace{-.6cm} \raisebox{-2em}{\parbox{.46\textwidth}{\dotfill}}} \tabularnewline%
} \\
\end{xtabular}
}
\makeatletter
\let\mcnewpage\pagebreak
\newcommand{\changenewpage}{%
\renewcommand\newpage{%
\if@firstcolumn
\hrule width\linewidth height0pt
\columnbreak
\else
\mcnewpage
\fi
}}
\makeatother
\newenvironment{dormitory}{\begin{multicols*}{2}\c hangenewpage}{\end{multicols*}}
\begin{document}
\begin{dormitory}
\floor{0}{20}
\floor{1}{20}
\floor{2}{20}
\floor{3}{8}
\end{dormitory}
\end{document}
Eine konkrete Macke ist das unschöne setzen bei mehr als zwanzig Zimmer pro Stockwerk =>
\floor{Stockwerknummer}{Zimmeranzahl}
Und sehe das richtig, dass multicolumn nicht zusammen mit "longtables" (supertabular, xtab) und forloops funktioniert, bekomme da immer ein
Misplaced \omit.
Vielen Dank schonmal für eure Mühen.
Arthorius