#!/usr/bin/perl
# Druckt Namensschilder fuer Tagungen mithilfe von Perl
# und LaTeX.
# Name und Abteilung werden zeilenweise von der Standardeingabe gelesen,
# wobei Name und Abteilung durch ein Semikolon getrennt sind.
# Z.B.: Jürgen Plate;FH München
# Das Programm erzeugt automatisch eine PDF-Datei mit den Badges.

use strict;
my $datei = "namensschilder.tex";

open DAT,">$datei" || die "Kann $datei nicht oeffen: $!\n";
# 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}
~;

while (<stdin>)
  {
  chomp;
  my($name, $abteilung) = split(/\s*;\s*/);
  print DAT '\Karte{', $name, '}{', $abteilung, '}', "\n";
  }
print DAT '\end{document}',"\n";
close DAT;

system("pdflatex $datei");
$datei =~ s/tex$/log/;
unlink($datei);
$datei =~ s/log$/aux/;
unlink($datei);

