Menu

HowTo_LetterNewVariables

Markus Kohm
Attachments
uniexample.png (113771 bytes)
uniexample.tex (7284 bytes)
There is a newer version of this page. You can find it here.

Wie LCO-Dateien zur Umsetzung eine komplexen Corporate Identity erstellt werden

In Firmen oder an Universitäten gibt es häufig sehr konkrete Vorstellungen, wie ein Brief auszusehen hat. Früher wurde dergleichen dann ausschließlich mit gedrucktem Briefpapier umgesetzt. Heutzutage wird erwartet, dass dies über die Textverarbeitung mit gelöst wird, damit auch als PDF verschickte Briefe das gewünschte Aussehen erhalten.

Eine der Stärken der KOMA-Script-Briefklasse besteht darin, das Briefpapier, also die Form, und auch dessen Individualisierung, also die Anpassung des Inhalts an einzelne Personen, vom Briefinhalt einfach trennen zu können. Für beides werden LCO-Dateien verwendet, wobei typischerweise die LCO-Datei des Individuums direkt die LCO-Datei mit der generellen Form lädt.

Das Beispiel hier zeigt deshalb nicht nur, wie man ein recht komplexes Briefpapier mit vielen neuen Variablen mit Hilfe einer LCO für die Form festlegt. Es wird auch gezeigt, wie ein man eine LCO-Datei für persönliche Angaben und Einstellungen darauf aufbauend so erstellt, dass Anpassungen an der Form automatisch angewendet werden. Lediglich bei Definition neuer Variablen oder dem Löschen vorhandener Variablen in der LCO-Datei für die Form sind ggf. Anpassungen an der individuellen LCO-Datei notwendig.

Corporate Identity

Die Vorgaben für die Form, also die Corporate Identity orientieren sich an denen, die einst an der Universität Koblenz galten. Das hier gezeigte Beispiel geht deshalb auch auf einen Vorschlag von Uwe Jochum zurück. Inzwischen werden die Vorlagen der Universität Koblenz eigenständig verwaltet. Mitarbeiter der Universität sollten daher die offiziellen Vorlage aus dem Intranet verwenden.

Ein zentrales Element der CI ist ein Logo in der Mitte des Briefkopfs. Rechts neben diesem Logo sollen einige Angaben zur Universität, zum Institut oder der Abteilung und zur Person enthalten. Da die Universität über mehrere Standorte innerhalb der Stadt verteilt ist, finden sich im Fuß Angaben zur Erreichbarkeit mit einer Buslinie. Zusätzlich gibt es dort die Bankverbindung und eine Postanschrift für Pakete.

Für die Rücksendeadresse gibt es die Vorgabe, dass die einzelnen Elemente mit einem vertikal zentrierten Punkt statt einem Komma voneinander getrennt werden soll. Außerdem ist die Schrift der Rücksendeadresse fest vorgegeben.

Einige Elemente kommen ggf. häufiger vor, beispielsweise der Name der Universität und der Ort. Die Telefonnummer unterscheidet sich hingegen bei einzelnen Personen nur um eine Teilnehmerkennung. Es gibt zwei leicht unterschiedliche Nummern für Faxe und für das Telefon, aber nicht einheitlicher Teilnehmerkennung. Neben dem Namen der Universität wird außerdem ein Name für das Institut oder die Abteilung benötigt. All dies resultiert in verschiedenen neuen Variablen. Einige davon haben eine Standardvorbelegung. So existiert beispielsweise für die Abteilung die Vorbelegung »Zentralverwaltung«. Als Teilnehmerkennung kann auch die Nummer der Telefonzentrale verwendet werden.

Zwar existiert ein Logo, das als Datei unilogo.pdf vorliegt. Sollte die Datei aus irgendwelchen Gründen nicht vorhanden sein, soll jedoch ein einfaches Ersatzlogo verwendet werden. Die kann einfach mit Hilfe von \IfFileExists umgesetzt werden. Für das Laden von unilogo.pdf in der gewünschten Größe von 3cm auf 3cm wird das Paket graphicx benötigt. Allerdings ist es erlaubt LCO-Dateien auch noch im Dokument zu laden. Damit das Laden von graphicx zu keiner Fehlermeldung führt, wird das Paket nur in der Dokumentpräambel geladen. Anderenfalls verlässt sich die LCO-Datei darauf, dass der Anwender graphicx selbst geladen hat.

Die Signatur soll komplett linksbündig gesetzt werden, was über \raggedsignature einfach z u lösen ist.

All dies kann in einer LCO-Datei wie folgt verpackt werden:

% uniexample.lco
% Copyright (c) Markus Kohm, 2021
% All rights reserved.
%
% https://sourceforge.net/p/koma-script/wiki-de/HowTo_LetterNewVariables
% https://sourceforge.net/p/koma-script/wiki-en/HowTo_LetterNewVariables

\ProvidesFile{uniexample.lco}[%
  2021/08/06 v0.1 
  LaTeX2e unsupported letter configuration option%
]

% Change of font of the back-address, because of
% corporated identity
\setkomafont{backaddress}{\rmfamily}

% Load package graphicx if possible
\if@atdocument\else\RequirePackage{graphicx}\fi

% Define some new variables and define some variable defaults:
\newkomavar{universityname}
\newkomavar{zipcode}
\newkomavar{department}% e.g. ``Institute of \LaTeX''
\newkomavar[\busroutename]{bus}% how to arrive with bus
\newkomavar{userphone}% the phone number part of the single user

\providecaptionname{british,UKenglish}{\busroutename}{bus route}
\providecaptionname{english,USenglish,american}{\busroutename}{bus line}
\providecaptionname{german,ngerman,swiss,nswiss,austrian,naustrian}{\busroutename}{Busverbindung}

% Set some variable, which are always the same
\setkomavar{universityname}{Universit\"at Exampulum}
\setkomavar{department}{Zentralverwaltung}% Default
\setkomavar{zipcode}{98765}
\setkomavar{place}{Urbaexampula}
\setkomavar{backaddress}{\usekomavar{universityname}\\
  \usekomavar{department}\\\usekomavar{zipcode} \usekomavar{place}}
\setkomavar{backaddressseparator}{ \textperiodcentered\ }
\setkomavar{fromlogo}{%
  \IfFileExists{signet.pdf}{%
    \includegraphics[width=3cmm,height=3cm]{unilogo.pdf}% use unilogo.pdf if available
  }{%
    \begingroup
      \setlength{\unitlength}{1mm}%
      \begin{picture}(30,30)
        \thicklines
        \put(0,0){\line(1,0){30}}%
        \put(30,0){\line(0,1){30}}%
        \put(30,30){\line(-1,0){30}}%
        \put(0,30){\line(0,-1){30}}%
        \put(0,0){\line(1,1){30}}%
        \put(0,30){\line(1,-1){30}}%
      \end{picture}
    \endgroup
  }%
}
\setkomavar{fromphone}{+428\,815\,77\,\usekomavar{userphone}}
\setkomavar{fromfax}{+428\,815\,78\,\usekomavar{userphone}}
\setkomavar{userphone}{00}% default: switchboard

% Define a new letter head
% (with tricky use of \makebox to center the logo):
\setkomavar{firsthead}{%
  \hspace*{\fill}%
  \usekomavar{fromlogo}%
  \makebox[0pt][l]{\quad
    \parbox[b]{\hsize}{\raggedright\small
      \textbf{\usekomavar{universityname}\\
        \usekomavar{department}\\
        \usekomavar{fromname}}\\
      \footnotesize{\usekomavar{fromaddress}%
        \if@phone\\
          \usekomavar*{fromphone}\usekomavar{fromphone}\fi
        \if@fax\\
          \usekomavar*{fromfax}\usekomavar{fromfax}\fi
        \if@email\\\usekomavar*{fromemail}\usekomavar{fromemail}\fi
        \if@www\\\usekomavar*{fromurl}\usekomavar{fromurl}\fi
      }}}%
  \hspace*{\fill}%
}

% Define a new letter foot
\setkomavar{firstfoot}{\scriptsize
  \begin{tabular}{@{}l@{}}
    \usekomavar*{bus}\\
    \usekomavar{bus}\\
  \end{tabular}%
  \hfill
  \begin{tabular}{@{}l@{}}
    Paketanschrift\\
    \usekomavar{fromaddress}\\
  \end{tabular}%
  \hfill
  \begin{tabular}{@{}l@{}}
    \usekomavar*{frombank}\\
    \usekomavar{frombank}\\
  \end{tabular}
}

\let\raggedsignature\raggedright
\endinput

Für die Busverbindung wurde übrigens nicht nur eine neue Variable bus definiert. Der Bezeichner wurde darüber hinaus mit Hilfe von \providecaptionname sprachabhängig als \busroutename definiert. Vordefiniert sind unerschiedliche Begriffe für Deutsch, amerikanisches Englisch und britisches Englisch. Diese werden durch die Sprachauswahl mit babel autmatisch aktiviert.

Individualisierung

Zur Individualisierung wird für jede Person eine weitere LCO-Datei angelegt. Darin sind die individuellen Einstellungen abgelegt. Da die Datei auf uniexample.lco basiert, wird diese gleich zu Anfang per \LoadLetterOption geladen.

Für John Doe von der Universitätsbibliothek kann diese Datei beispielsweise so aussehen:

% johndoe.lco
% Copyright (c) Markus Kohm, 2021
% All rights reserved.
%
% https://sourceforge.net/p/koma-script/wiki-de/HowTo_LetterNewVariables
% https://sourceforge.net/p/koma-script/wiki-en/HowTo_LetterNewVariables

\ProvidesFile{johndoe.lco}[%
  2021/08/06 v0.1
  LaTeX2e unsupported letter configuration option%
]

% We need LCO uniexample:
\LoadLetterOption{uniexample}

% Personalization
\KOMAoptions{fromphone,fromemail,symbolicnames}
\setkomavar{fromname}{Dr.\,John Doe}
\setkomavar{fromaddress}{Universit\"atsstra\ss e 10\\\usekomavar{zipcode} \usekomavar{place}}
\setkomavar{userphone}{12}
\setkomavar{fromemail}{john.doe@uniexample.invalid}
\setkomavar{signature}{Dr.\,John Doe\\(Fachreferent)}
\setkomavar{department}{Bibliothek}
\setkomavar{frombank}{Landeszentralbank Urbaexampula\\
  IBAN: DE01\,2345\,5678\,0123\,4567\,89}
\setkomavar{bus}{ab Hauptbahnhof: Linie 9A oder 9B\\
    ab Bahnhof Urbanea: Linie 11}

\endinput

Da dieser Anwender Faxe als veraltet betrachtet, hat er per \KOMAoptions für den Briefkopf nur Telefonnummer und E-Mail aktiviert. Außerdem zieht er es vor, wenn dort »Telefon« und »E-Mail« nicht ausgeschrieben werden, sondern hübsche Symbole dafür verwendet werden.

Wie am Beispiel von department und userphone gezeigt, ist es auch kein Problem, bereits in uniexample.lco gesetzt Variablen noch einmal abzuändern. Hätte die Bibliothek ein eigenes Logo, könnte man auch dieses, beispielsweise per

\setkomavar{logo}{\includegraphics[width=3cm,height=3cm]{biblogo}}

an Stelle des voreingestellten Logos laden.

Beispielbrief

Ein kurzer Beispielbrief unter Verwendung der Datei könnte beispielsweise so lauten:

\documentclass{scrletter}% Note: The shown example also works with class scrlttr2.

\usepackage[ngerman]{babel}
\usepackage{blindtext}

\LoadLetterOption{johndoe}
\setkomavar{yourmail}{30. Februar}
\setkomavar{yourref}{AcXb}
\setkomavar{customer}{007}
\setkomavar{invoice}{\usekomavar{customer}-002}
\setkomavar{date}{1. April 2021}

\begin{document}
\setkomavar{subject}{Beispiel Briefpapierentwurf mit vielen neuen Variablen}
\begin{letter}{Dr.\,Achim XBox\\Medienwissenschaft\\~\\im Haus}
  \opening{Lieber Herr XBox,}
  \blindtext
  \closing{Schöne Grüße}
\end{letter}
\end{document}

Es muss also nicht sowohl uniexample.lco als auch johndoe.lco geladen werden. Da johndoe.lco selbst uniexample.lco lädt, wäre ein explizites Laden von uniexample.lco in dem Brief zwar möglich, ist aber überflüssig.

Im Ergebnis erhält man:

Ergebnisabbildung

Natürlich kann man sämtliche Angaben in einem Brief auch per \setkomavar selbst setzen oder auch nach dem Laden von johndoe.lco noch einmal abändern.


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.