use strict;
use warnings;

die  "Usage: $0 <input>\n" unless(@ARGV);

my $input = $ARGV[0];
# Falls vorhanden, die Endung der Eingabedatei abzwicken
my $dotpos = rindex($input,'.');  # gibts einen Punkt im Namen
my $base = ($dotpos > 1)? substr($input,0,$dotpos) : $input;
my $output = $base . '.tex';

open SRC,'<',$input || die "Kann $input nicht oeffen: $!\n";
open DAT,'>',$output || die "Kann $output nicht oeffen: $!\n";

my ($line, $name, $abteilung);

# LaTeX-Vorspann
print DAT q~
\documentclass{article}
\usepackage[a4paper,nohead,nofoot,margin=0mm]{geometry}
\usepackage{color}
\usepackage[latin1]{inputenc}
\definecolor{Hintergrund}{rgb}{0.9,0.9,0.9}
\pagecolor{Hintergrund}
\newcommand*{\FirstFont}{\fontsize{18}{20pt}\sffamily}
\newcommand*{\SecondFont}{\fontsize{12}{14.4pt}\sffamily}
\newcounter{Spalte}\setcounter{Spalte}{0}
\newcommand*{\Spalten}{3}

\newcommand*{\Karte}[2]{%
  \parbox[c][3cm][c]{6cm}{\centering%
    {\FirstFont #1\par}%
    {\SecondFont #2\par}%
  }%
  \stepcounter{Spalte}
  \ifnum\value{Spalte}=\Spalten\relax
    \par
    \setcounter{Spalte}{0}%
  \fi%
  \ignorespaces
}
\setlength{\parindent}{0pt}

\begin{document}
~;

# nun werden die Texte eingetragen
while (defined($line = <SRC>))
  {
  print $line;
  chomp($line);
  ($name, $abteilung) = split(/\s*;\s*/, $line);
  print DAT '\Karte{', $name, '}{', $abteilung, '}', "\n";
  }
print DAT '\end{document}',"\n";
close DAT;

# LaTeX-quelle uebersetzen, erzeugt $base . '.pdf'
# das kommt etwas Output von LaTeX
system("pdflatex $output");

# Hilfdateien wegputzen
unlink($output);
unlink($base . '.log');
unlink($base . '.aux');
