Sie sind hier

scrlttr2 Anpassung; Reihenfolge von lco-Dateien; scrlttr2 in Klasse verwenden?

Hallo,

ich versuche einen Briefstil mit scrlttr2 (Document Class: scrlttr2 2010/09/17 v3.07 KOMA-Script document class (letter)) mit den folgenden Eigenschaften hinzukriegen:

*Benutzer tut seine Adressdaten in eine lco-Datei; z.B:

%trouble_b.lco
\setkomavar{plainfromname}{Rechtsanwalt Mustermann}
\setkomavar{plainfromaddress}{12345 Musterhausen}

*spaeter gibt er Anweisung, dass er sich heute fuerstlich fuehlt und benutzt:

%trouble_c.lco
\setkomavar{fromname}{Seine Durchlaucht \usekomavar{plainfromname}}
\setkomavar{fromaddress}{D-\usekomavar{plainfromaddress}}

*und damit das ganze funktioniert musser er zuvor:

%trouble_a.lco
\newkomavar{plainfromname}
\newkomavar{plainfromaddress}

gesagt haben. Seine Briefdatei koennte dann so aussehen:

%trouble.tex
\documentclass[trouble_a,trouble_b,trouble_c]{scrlttr2}
\begin{document}
\begin{letter}{Irgendwer}
\opening{Sehr geehrte Damen und Herren}
geht dieser Brief?
\closing{Mit freundlichen Gruessen}
\end{letter}
\end{document}

warum die Trennung von b und c? an manchen Tagen fühlt er sich vielleicht fürstlich, an andere schlecht und will statt trouble_c vielleicht trouble_c2 verwenden:

%trouble_c2.lco
\setkomavar{fromname}{Seine Boshaftigkeit \usekomavar{plainfromname}}
\setkomavar{fromaddress}{D-\usekomavar{plainfromaddress}}

*in diesem Sinne scheint die Faktorisierung in trouble_b und trouble_c zweckmaessig.

ABER, von Nachteil ist jetzt, dass zwingend vor dem Aufruf von trouble_b
die Datei trouble_a aufgerufen werden muss; wenn die Reihenfolge falsch ist, geht es nicht. Dabei kommt es bei Optionen in LaTeX eigentlich fast nie (Ausnahme: includegraphics) auf die Reihenfolge an.

Die \newkomavars¹ in trouble_b dem Benutzer aufzuzwingen finde ich eingentlich falsch (und Fehlerträchtig).

Das default-verhalten und die Abhängigkeit von trouble_c.lco laesst sich noch verbessern, wenn man in trouble_a.lco ergaenzt zu:

%trouble_a2.lco
\newkomavar{plainfromname}
\newkomavar{plainfromaddress}
\setkomavar{fromname}{\usekomavar{plainfromname}}
\setkomavar{fromaddress}{\usekomavar{plainfromaddress}}

was ich eigentlich moechte, ist einen Aufruf der Art¹

\documentclass[trouble_b]{meinbrief}

und dann je nach lage:¹

\documentclass[trouble_b,trouble_c]{meinbrief}

o.ae.

Eine potentielle Loesung, waere scrlttr2 zu kopieren, und dann denn Inhalt von trouble_a.lco an passender Stelle einzufügen; Grosser Nachteil dieser Kopierlösung; spätestens wenn es die nächste, bessere Version von scrltrr2 gibt, werde ich es bereuen, oder muss wieder kopieren.

Eine bessere Lösung wäre es wahrscheinlich, eine eigene Klasse meinbrief.cls zu schreiben, die \usepacked{scrlttr2}¹.

Und jetzt komme ich (leider erst) zu meiner Frage:
¨Wie bekomme ich vernünftiges options-handling für meinbrief hin?¨

*Es wäre wünschenswert, dass die normalen Optionen von scrlttr2 von meinbrief an scrlttr2 ¨durchgereicht¨ werden (aber hoffentlich, ohne dass man meinbrief alle Optionen von scrlttr2 beibringen muss).
*Weiterhin möchte ich natürlich gerne, dass die lco-Dateien, die meinbrief als Optionen übergeben werden, auch von scrlttr2 geladen werden (das von meinbrief ge-usepackaged wird, nachdem ich in meinbrief die entsprechenden \newkomavar's machen konnte.)

Gibt es Ideen oder Beispiele hierzu? Wäre dankbar für jeden Vorschlage.

Mit freundlichen Grüßen
Sven
de Vries

ps: Natürlich geht es bei trouble_c nicht um 'Seine Durchlaucht' ; Idee ist es eher, je nach Adressaten mehr oder weniger andere Informationen einzufügen.
Bei internationalen Briefen, sollte das D vor die PLZ oder ein Germany eingefügt werden; den Fon-/Fax-nummern sollte jeweils eine +49 vorangestellt werden, etc...;
bei internen Briefen, muss noch nichtmal die externe nummer der Firma draufstehen

[Admin-Edit:]

  1. <code></code> Tags eingefügt (siehe Formatierungshinweise)

Bild von Markus Kohm

Schau Dir mal in der Anleitung die Anweisungen \ifkomavar und \LoadLetterOption an. Damit kannst Du in jeder beliebigen lco-Datei prüfen, ob bestimmte Variablen bereits definiert sind und ggf. eine andere lco-Datei laden.

Wie man Wrapper-Klassen schreibt, ist wieder eine ganz andere Frage. Hierzu sei auf den clsguide und die dort angegebenen Befehle \LoadClassWithOptions, \PassOptionsToClass etc. verwiesen. Das ist kein KOMA-Script-Problem. Eine Besonderheit ist allenfalls, dass man bei einer Wrapper-Klasse um eine KOMA-Script-Klasse auch nach dem Laden der KOMA-Script-Klasse natürlich noch \KOMAoptions verwenden kann, beispielsweise um sich über die Optionen des Anwenders hinweg zu setzen.

für die Pointer (sorry, dass ich nicht selber auf clsguide gekommen war)!

Comments for "scrlttr2 Anpassung; Reihenfolge von lco-Dateien;  scrlttr2 in Klasse verwenden?" abonnieren