Sie sind hier

Experiment: Variablen-Blöcke

Bild von Markus Kohm

Bisher beherrscht scrlttr2 mit der Geschäftszeile genau einen Block von zusammengehörigen Variablen. Dieser Block wird als Zeile – eben die Geschäftszeile – gesetzt. Bereits mit dem (derzeit nicht funktionierenden) Beispiel des Infoblocks wurde der Bedarf für eine andere Darstellung eines solchen Blocks deutlich. Darüber hinaus liegt es nahe, weitere solche Blöcke an unterschiedlicher Position und in unterschiedlicher Darstellung zu erlauben. So könnte an beispielsweise einen variablen Block mit Pflichtinformationen erstellen, einen Block für Mitarbeiterinformationen etc.

Dieses Experiment definiert zum einen neue Befehle für scrlttr2 mit denen einerseits weitere Informationen über Variablen abgerufen werden können. Diese Befehle sind im Einzelnen:

\ifkomavarwidth{Variablenname}{Operator Wert}{Dann-Teil}{Sonst-Teil}
Die Breite der Ausgabe der Variable mit \usekomavar in der aktuellen Schrift wird mit Hilfe des Operators mit dem angegebenen Wert verglichen. Ist das Ergebnis zutreffend, so wird der Dann-Teil ausgeführt. Anderenfalls wird der Sonst-Teil ausgeführt. Zulässige Operatoren sind: <, > oder =.
\ifkomavarheight{Variablenname}{Operator Wert}{Dann-Teil}{Sonst-Teil}
Die Höhe (über der Grundlinie) der Ausgabe der Variable mit \usekomavar in der aktuellen Schrift wird mit Hilfe des Operators mit dem angegebenen Wert verglichen. Ist das Ergebnis zutreffend, so wird der Dann-Teil ausgeführt. Anderenfalls wird der Sonst-Teil ausgeführt. Zulässige Operatoren sind: <, > oder =.
\ifkomavardepth{Variablenname}{Operator Wert}{Dann-Teil}{Sonst-Teil}
Die Tief (unter der Grundlinie) der Ausgabe der Variable mit \usekomavar in der aktuellen Schrift wird mit Hilfe des Operators mit dem angegebenen Wert verglichen. Ist das Ergebnis zutreffend, so wird der Dann-Teil ausgeführt. Anderenfalls wird der Sonst-Teil ausgeführt. Zulässige Operatoren sind: <, > oder =.
\ifkomavartotalheight{Variablenname}{Operator Wert}{Dann-Teil}{Sonst-Teil}
Die Gesamthöhe (=Höhe+Tiefe) der Ausgabe der Variable mit \usekomavar in der aktuellen Schrift wird mit Hilfe des Operators mit dem angegebenen Wert verglichen. Ist das Ergebnis zutreffend, so wird der Dann-Teil ausgeführt. Anderenfalls wird der Sonst-Teil ausgeführt. Zulässige Operatoren sind: <, > oder =.

Desweiteren werden neue Befehle für Blöcke definiert und einige bisherige Anweisungen wie \addtoreffields und \removereffields auf diese neuen Befehle umgestellt. Auch interne Anweisungen von scrlttr2 werden verändert. Daher ist es es unbedingt erforderlich, dass das Paket ggf. möglichst unmittelbar nach der Klasse geladen wird! Die neuen Blockbefehle sind: \declarekomavarblock, \resetkomavarblock, \addtokomavarblock, \printkomavarblock und als Ausgabebeispiel \printkomavaratrefline. Nähere Informationen zu diesen Befehlen können den Kommentaren im Code von screxperimental entnommen werden.

Status des Experiments:

  • in screxperimental enthalten
  • erst teilweise implementiert
  • für Experimentierfreudige Anwender zum Test freigegeben
  • Kommentare erwünscht

Kommentare

Hallo Markus,

ich bin ja immer an Experimenten mit scrlttr2 interessiert. Gerade die Geschäftszeile würde ich gerne ergänzen.

Hättest Du ein Beispiel für diese neuen Befehle?

Gruß,
Alexander

Bild von Markus Kohm

Als Beispiel stellt screxperimental.sty am Ende die normale Geschäftszeile auf den neuen Code um. Das ist recht ausführlich dokumentiert. Dazu gehört auch ein minimales Briefdokument als Kommentar ganz am Ende von screxperimental.sty.

Genauso könnte man einen Info-Block per \printkomavarblock beispielsweise als Inhalt von Variable locfield einstellen. Oder aber man definiert mehrere solche Blöcke in einer lco-Datei im Stil von asymTypB. Ein Vorteil dabei ist, dass man sich die ganzen Tests, ob eine Variable wirklich Inhalt besitzt, bevor man sie samt Bezeichnung ausgibt, schenken kann. Das erledigt \printkomavarblock optional selbst.

In der Implementierung sind auch diverse TODO-Einträge zu finden, die darauf hinweisen, was noch alles zu erfolgen hat, bevor das Ganze Teil von scrlttr2 werden kann. Ein weiteres wären praxisnahe Beispiele (zumindest eines davon). Ich rechne nicht unmittelbar mit einer Umsetzung.

Ein Hindernis ist auch, dass ich selbst nur noch extrem selten Briefe schreibe, also selbst das Experiment kaum testen kann. Es könnte also durchaus ähnlich lange dauern, wie beim letzten Experiment, das eigentlich nur Dank Rolfs Testarbeit in die KOMA-Script-Klassen gelangt ist.

Comments for "Experiment: Variablen-Blöcke" abonnieren