Barrierefreies Briefe schreiben: Briefvorlage und Adressetikett in LaTeX erstellen

Geschrieben von Eric Scheibler am 07.03.2013

In diesem Artikel schildere ich die Erstellung und Adressierung eines standard Briefes. Die Anleitung dürfte vor allem für blinde Leser interessant sein.

An einem Beispiel wird zunächst die Erstellung eines einfachen DIN Briefes erläutert. Im zweiten Schritt werden die Etiketten zur Adressierung des Briefes erzeugt. Beides Mal kommt dabei LaTeX zum Einsatz.

Der aus der Vorlage erstellte Brief kann für jegliche Anliegen verwendet werden, beispielsweise für Anträge oder Kündigungen.

Zu Beginn werden die notwendigen Pakete installiert:

sudo aptitude install texlive texlive-doc-de texlive-latex-extra         texlive-lang-german imagemagick poppler-utils

Die Briefvorlage

Ich verwende die LaTeX Dokumentenklasse DINBrief. Im folgenden ein Minimalbeispiel für einen Brief:

\documentclass[12pt,a4paper]{dinbrief}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{ngerman}
\usepackage{graphicx}

%% better readability of the pdf document
\usepackage{lmodern}
\usepackage{textcomp}

\begin{document}
%% define my address and date
\address{Name des Absenders\\Nebenstraße 1a\\87654 Irgendwo}
\Datum{\today}
\subject{Ein kurzer Betreff}

%% other options
%% Faltmarkierung abschalten
\nowindowtics
%% Adressfensterrahmen abschalten
\nowindowrules

\begin{letter}
{ Name des Empfängers \\
Hauptstraße 123 \\
45678 Beispielstadt }

\opening{Sehr geehrter Herr Empfänger,}

Ein Absatz ...

Noch ein weiterer Absatz ohne Inhalt.

\closing{Mit freundlichen Grüßen\\\includegraphics{mysign.png}\\Der Absender}
\end{letter}
\end{document}

Die Vorlage sollte weitestgehend selbsterklärend sein. Zum Schluss wird ein PNG mit der Unterschrift des Absenders eingebunden. Dazu habe ich einmalig auf einem leeren Blatt unterschrieben, selbiges eingescannt und anschließend die Unterschrift ausgeschnitten und in der Datei mysign.png abgespeichert. Das Bild ist etwa 3x1.5cm groß. Sollte man keine Unterschrift zur Hand haben, so Kommentiert man die “includeGraphics” Zeile einfach aus.

Hat man die Vorlage schließlich an seine Wünsche angepasst kann ein PDF erzeugt werden:

pdflatex brief_vorlage.tex

Wurden keine Fehler gemacht, so kann das entstandene PDF Dokument mit dem, im System eingerichteten Standarddrucker gedruckt werden, z.B.:

lp brief_vorlage.pdf

Die Adressetiketten

Nachdem das Dokument erstellt, gedruckt und in einem geeigneten Briefumschlag verstaut wurde folgt nun die Adressetikettenerstellung. Dazu wird zunächst wieder ein PDF Dokument in den fixen Maßen 5x3cm angelegt und anschließend in ein PNG umgewandelt. Das Bild drucke ich dann auf einem speziellen Barcode Drucker, welcher auf selbstklebende Etiketten druckt. Mein Drucker verwendet eine 10cm breite Rolle EndlosPapier, welche automatisch zugeschnitten wird. So erspare ich mir das ausschneiden des Adresslabels.

Hier folgt die LaTeX Vorlage für das Adressetikett:

\documentclass[11pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{ngerman}
\parindent=0pt      %% disables indentation

%% set paper dimension to 5 x 3 cm, no margin
\usepackage{geometry}
\geometry{papersize={5cm,3cm}}
\geometry{margin=0cm}

\begin{document}
TO \\
Name des Empfängers\\
Hauptstraße 123 \\
45678 Beispielstadt
\end{document}

Prinzipiell kann das Dokument nach der Anpassung genau wie oben übersetzt werden aber da hier noch ein Arbeitsschritt dazukommt, habe ich ein kurzes Bash Skript geschrieben, das zusätzlich zur Bilderstellung auch gleich noch aufräumt und druckt:

#!/bin/bash

# With this script you can create an address label from a LaTeX document
# you must install the following packages:
# sudo aptitude install texlive texlive-doc-de texlive-latex-extra \
#       texlive-lang-german imagemagick poppler-utils

if [ -z "$1" ]; then
    echo "No tex file"
    exit 1
elif [ ! -f "$1" ]; then
    echo "Invalid file"
    exit 1
else
    tex_file="$1"
fi

# if your printer is connected via a print server, check if it's reachable
# else leave it commented out
#if [[ $(ping -c 2 192.168.2.3 2>&1) != *64*bytes*from* ]]; then
#    echo "The printer is not accessible"
#    exit 2
#fi

# create pdf file
pdflatex "$tex_file"
pdf_file="${tex_file:0:${#tex_file}-4}.pdf"
if [ ! -f "$pdf_file" ]; then
    echo "LaTeX compile error, $pdf_file does not exist"
    exit 3
fi
rm "${pdf_file:0:${#pdf_file}-4}.aux" "${pdf_file:0:${#pdf_file}-4}.log"

# give me the chance to view the latex output
# press ctrl + c if you want to cancel
read -p "press ENTER to proceed, ctrl+c to cancel" -e input
# view the pdf file contents in vim
pdftotext -layout "$pdf_file" - | vim -
# press ctrl + c if you want to cancel now
read -p "press ENTER to proceed, ctrl+c to cancel" -e input

png_file="${tex_file:0:${#tex_file}-4}.png"
convert -density 200 "$pdf_file" "$png_file"
rm "$pdf_file"
if [ ! -f "$png_file" ]; then
    echo "The image could not be created"
    exit 4
fi

# now, you must add a method to print the created image
# if you use your printer with CUPS the print command could look like
# lp "$png_file"
# works only, if the barcode printer is the standard one
echo "printed successfully"
exit 0

Aufruf mittels:

./make_address_label.sh adressetikett.tex

Noch kurz zur Positionierung der Etiketten: Ich verwende Briefumschläge ohne Fenster da es mir nicht gelingt, die auf den Brief aufgedruckte Empfängeradresse genau in das Sichtfenster des Umschlages zu positionieren. Daher brauche ich Etiketten sowohl für Absender wie auch Empfänger. Alles muss auf die Vorderseite des Briefes geklebt werden, also nicht die Seite, die zum Schluss zugeklebt wird.

Der Absender kommt in die linke obere Ecke, der Empfänger in die rechte untere Ecke. Man sollte jeweils etwa 1cm Platz zum Rand lassen. Die Briefmarke, derzeit 58 Ct für einen Standardbrief, wird in der rechten oberen Ecke angebracht. Damit ist der Brief fertig adressiert. Ich lege die Vorderseite zumeist noch einmal in den Scanner, um zu verifizieren, ob die Adresslabels auch korrekt gedruckt wurden.

Alle Teile zum Download: brief_und_adresslabel.zip