In folgender Aufgabe brauche ich eine Dokumentenklasse 'self' zu programmieren. Sie soll die folgenden Eigenschaften und Parameter beinhalten. 1) Zwei Optionen, 'self_1' für die Kurse und 'self_2' für Prüfungen. In Abhängigkeit der gewählten Option soll ein eigenes Dokumentencover ausgegeben werden. 2) Zunächst sollen alle notwendigen und hinreichenden Pakete und Optionen, die für diese Dokumentenklasse notwendig sind, initialisiert werden. Kann jemand mir Tipps geben ? Danke für die Antwort. gefragt 08 Feb '22, 19:52 latex_rookie gast3
Ergebnis 5 von 6
show 1 more comments
|
Verstehe ich richtig, dass hier explizit nach Hilfe zu einer "Hausaufgabe" gesucht wird? Falls dem so ist, ist sicherlich eine richtige Antwort nicht förderlich, denn wir sollen ja wohl kaum deine Aufgaben für dich erledigen. Die ehemals Standardreferenz (ehemals weil mittlerweile ein wenig in die Jahre gekommen, aber eigentlich zumindest für grundlegendes immernoch aktuell) wäre da wohl der clsguide.
Für fortgeschrittenere Optionen für Klassen existieren verschiedene Lösungen. Beispiele für recht aktuelle Pakete und/oder stark verbreitete wären:
l3keys2e
,pgfopts
,kvoptions
,expkv-opt
(von mir, aber sicherlich nicht das komfortabelste aller Pakete), und Weitere. Einfache Optionen (ohne eine Schlüssel=Wert-Syntax) können mit\DeclareOption
und\ProcessOptions
durchgeführt werden (eine Suche im Internet dürfte hier ausreichend viele Ergebnisse liefern).Siehe auch: Wie erstelle ich eine eigene Dokumentenklasse?
@Skillmon Solange »LaTeX2ε for class and package writers« vom LaTeX Team selbst als Bestandteil von LaTeX gepflegt wird, dürfte es wohl eine relevante Grundlagen-Doku bleibe. Zwar gibt es in
expl3
einige Erweiterungen dazu, aber das ist eigentlich erst relevant, wenn man auchexpl3
-Syntax verwendet. Selbst diexparse
-Anleitung, so nützlich dessen (inzwischen im Kernel vorhandenen) Befehle inzwischen sind, ist für Anfänger eher schwer verständlich.@Ijon Tichy gemeint war, dass die angeführten Mechanismen zur Bereitstellung von Optionen im
clsguide
(\DeclareOption
und\ProcessOptions
) ein wenig in die Jahre gekommen sind. Mittlerweile gibt es durch diverse andere Pakete vielseitigere Möglichkeiten zur Optionsverwaltung. Außerdem arbeitet das Kernelteam derzeit (unter anderem) daran, die Möglichkeiten von LaTeX2e zur Paket- und Klassenoptionenverwaltung stark zu erweitern.@Skillmon: Alles richtig, wobei für die Anforderung aus der Frage mit zwei Optionen die Schnittstelle für klassische Optionen noch immer vollkommen ausreichend ist. Dafür etwas anderes zu verwenden, wäre mit Kanonen auf Spatzen geschossen. Vielleicht kommt ja aber als nächste Hausaufgabe, als Erweiterung stattdessen eine Option mit zwei verschiedenen Werten zu definieren. Dann wäre der quasi offizielle Weg das von dir sicher aus gutem Grund zuerst genannte
l3keys2e
. Wenn man als Basisklasse ohnehin bereits eine KOMA-Script-Klasse verwendet, bietet sich als weitere Möglichkeitscrbase
an.