Direkt zum Hauptbereich

mass merge bilinugal invitations with latex or xetex

After some hours of typesetting and programming this I feel that I should share it with you. One old version is here, german: Serieneinladung.

Goal was:
  • address singles, couples
  • have a landspace page with different languages left and right
  • sort some addressing out, e.g. the german "Euch" und "Dich"
  • have two different global groups for different invitations
  • have this all done by reading in a CSV file
The csv file looked like this (2nd field is the group, 3rd the addressing):

 english names;a;Euch
 english name;b;Dich
 german name;c;Dich
 german names;d;Euch

  • Group a are more than one, resulting in "Euch" as the formal addressing; also the english text is on the right, german left;
    and is invited full.
  • Group b is also english, but just one person: "Dich";
    and invited just for the party.
  • Group c is a german single with the addressing "Dich";
    and the german invitation text on the right, english on the left;
    and invited full.
  • Group d is e.g. a german family, addressed with "Euch";
    and invited just to the party.

And here the code, just play around with it.
It will create a pdf with as many pages as lines in the csv file.


 \documentclass[12pt,a4]{scrartcl}   
 \pagestyle{empty}  
 \usepackage[landscape]{geometry}  
 \geometry{a4paper,left=30mm,right=30mm, top=1.5cm, bottom=1.5cm}  
 \usepackage{fontspec}  
 \usepackage{xunicode}  
 \usepackage{xltxtra}  
 %\setmainfont[Mapping=tex-text]{TeX Gyre Chorus}  
 \setmainfont[Mapping=tex-text]{URW Chancery L}  
  \usepackage{ifthen}  
  \newcommand{\inviteA}[1]{ % english/townhall  
                      \begin{minipage}{0.5\textwidth}  
                  \begin{center}  
                  \fontsize{18pt}{18pt}\selectfont  
                  Wir möchten \Dich\\  
                  #1\\  
                  recht herzlich ...  
                  \end{center}  
                  \end{minipage}  
                      \begin{minipage}{0.5\textwidth}  
                     \begin{center}  
                     \fontsize{18pt}{18pt}\selectfont  
                     We request the pleasure of\\  
                     #1\\  
                  Townhall at ...
                     \end{center}  
                  \end{minipage}  
  }  
  \newcommand{\inviteB}[1]{ % english/church  
                      \begin{minipage}{0.5\textwidth}  
                      \begin{center}  
                      \fontsize{18pt}{18pt}\selectfont  
                      Wir möchten \Dich\\  
                      #1\\  
                   recht herzlich ...
                      \end{center}  
                   \end{minipage}  
                      \begin{minipage}{0.5\textwidth}  
                     \begin{center}  
                     \fontsize{18pt}{18pt}\selectfont  
                   We request the pleasure of\\  
                   #1\\  
                   Church at ...
                     \end{center}  
                   \end{minipage}  
  }  
   \newcommand{\inviteC}[1]{ % german/townhall  
                       \begin{minipage}{0.5\textwidth}  
                       \begin{center}  
                       \fontsize{18pt}{18pt}\selectfont  
                       We request the pleasure of\\  
                       #1\\  
                       Townhall at ...  
                       \end{center}                    
                   \end{minipage}  
                       \begin{minipage}{0.5\textwidth}\begin{center}  
                       \fontsize{18pt}{18pt}\selectfont  
                       Wir möchten \Dich\\  
                       #1\\  
                       recht herzlich ... 
                       \end{center}  
                   \end{minipage}  
   }  
   \newcommand{\inviteD}[1]{ % german/church  
                       \begin{minipage}{0.5\textwidth}  
                       \begin{center}  
                       \fontsize{18pt}{18pt}\selectfont  
                       We request the pleasure of\\  
                       #1\\  
                       Townhall at ...
                       \end{center}  
                    \end{minipage}  
                  \begin{minipage}{0.5\textwidth}  
                  \begin{center}  
                  \fontsize{18pt}{18pt}\selectfont  
                  Wir möchten \Dich\\  
                  #1\\  
                     recht herzlich ...  
                  \end{center}  
                    \end{minipage}  
   }  
  \newif\ifmore \moretrue  
  \def\chopline#1;#2;#3;#4 \\{  
  \def\names{#1}  
  \def\langplace{#2}  
  \def\Dich{#3}  
  \def\count{#4}  
  }  
  \begin{document}  
  \newread\quelle  
  \openin\quelle=GuestList.csv  
  \loop  
  \read\quelle to \zeile  
  \ifeof\quelle  
   \global\morefalse  
  \else  
   \expandafter\chopline\zeile\\  
   \ifthenelse{\equal{\langplace}{a}}  
                  {  
                  \inviteA{\names}  
                  \pagebreak  
                  }{}  
   \ifthenelse{\equal{\langplace}{b}}  
                   {  
                   \inviteB{\names}  
                   \pagebreak  
                   }{}  
   \ifthenelse{\equal{\langplace}{c}}  
                   {  
                   \inviteC{\names}  
                   \pagebreak  
                   }{}  
   \ifthenelse{\equal{\langplace}{d}}  
                   {  
                   \inviteD{\names}  
                   \pagebreak  
                   }{}  
  \fi  
 \ifmore\repeat  
 \closein\quelle  
  \end{document}  

The csv file was done in LibreOffice and with the sumif() function we calculated the headcount, having a number in each line for each party.

Hope I could help.




Kommentare

Beliebte Posts aus diesem Blog

Virtuelles Wasser?!

In den letzten Tagen habe ich immer mal wieder etwas mit Rails programmiert und werde mich ebenso heute dem neuen Auftrag "multiple file upload" kümmern. Und weil vieles "Versuch-Irrtum" ist, gucke ich auf dem zweiten Monitor immer Reportagen.

Letztens kam mir "Der große Haushaltscheck" unter die Finger:
ARD Mediathek "Der große Haushaltscheck"

In der Sendung vom 11.3.2013 ging es um unser Trinkwasser.

Jedem sollte klar sein, dass Plastikflaschen nicht die erste Wahl sind, weil man nicht darauf vertrauen kann, dass der Hersteller wirklich "gutes" Plastik nahm (BPA, Phtalate, Benzol, Xylol usw.),
aber das interessante waren die genannten Zahlen in puncto virtuellem Wasser bzw. Wassersparen.

Wasser sparen an und für sich ist ja gut, nur heisst das nicht, dass wir weniger die Klospühlung benutzen sollten, sondern dass wir uns Gedanken machen über das "virtuelle Wasser".

Unsere Kanalisation ist eine Schwemm-Kanalisation, und ohne …

Pflanzsack aus Jute

Nachdem ich die Bücher vom Arche Noah Verein schon vorstellte, möchte ich hier eine Topfalternative zeigen, die obendrein noch dekorativ ist.

Pflanzsäcke Oder "grow bags", wenn man etwas moderner daher komme möchte bzw. mehr Suchergenisse will.

Dabei wollte ich wenig Geld ausgeben, und auch nicht ganz spartan bleiben und den Blumenerdesack dafür nutzen; und bestellte mir 50 kg Jutesäcke für ca. 1,20 EUR/Stück.

Nimmt man den ganzen Sack, wird der Topf schon recht groß, auch wenn man etwas des Materials nach innen oder außen faltet.

Also nahm ich mir die Freiheit und nähte aus einem großen vier kleine und verbrauchte den letzten Rest unserer Erde fürs Umtopfen der Habanero.
Die machte nämlich nun Platz für die sibirische Hauschili und die restlichen von beiden Sorten mischte ich zusammen und stellte sie auf die Fensterbank.

Der Vorteil dieser Art von Töpfen liegt auf der Hand:

sie sind billig im Vergleich zum Volumensie sind dekorativ - wirken rustikalbieten der Pflanze nicht nu…

Kochmesser aus Korea - 11 EUR sehr gut investiert

Schon seit einiger Zeit bin ich bei Messern in Richtung robusterer bzw. einfacherer Stähle am Gucken. Dies Ganze geschah aufgrund eines Zufalls auf Ebay, dass ich ein Windmühlenmesser von Herder erstand, dazu aber später vielleicht mehr.

Hier soll es nun um ein Kochmesser aus Korea gehen, genauer gesagt Südkorea, also nichts vom Bum-Bum Kim ;)

Hier könnt Ihr Bilder einsehen sowie Diskussionen auf englisch:
http://www.kitchenknifeforums.com/showthread.php/9016-Korean-kitchen-knives?p=169860&viewfull=1#post169860

Und hier das Abgebot: http://www.ebay.de/itm/330839166898

Die Stichwörter dabei sind "Cast Iron Forged".

Das Kochmesser selber ist sehr robust bzw. sieht aus als wäre es gerade frisch "ausgeschnitten", denn ich glaube nicht wirklich, dass es geschmiedet wurde als denn geschnitten/herausgeschweißt aus irgendwelchem Müll.

So muss man es eben pflegen, da es sonst rostet, dies verleiht dem Messer aber auch eine umgeheure Schärfe.

Wenn ich nun ein kohlenstoffr…