Duplikat zu: Wie erstelle ich eine eigene Dokumentenklasse?


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's gravatar image

latex_rookie
1
Akzeptiert-Rate: 0%

geschlossen 19 Feb '22, 13:05

gast3's gravatar image

gast3
(ausgesetzt)

1

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.

(08 Feb '22, 23:39) Skillmon

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).

(08 Feb '22, 23:43) Skillmon
1
(09 Feb '22, 07:50) huibub

@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 auch expl3-Syntax verwendet. Selbst die xparse-Anleitung, so nützlich dessen (inzwischen im Kernel vorhandenen) Befehle inzwischen sind, ist für Anfänger eher schwer verständlich.

(19 Feb '22, 13:11) gast3

@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.

(19 Feb '22, 14:41) Skillmon

@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öglichkeit scrbase an.

(19 Feb '22, 15:51) gast3
Ergebnis 5 von 6 show 1 more comments

Die Frage wurde aus folgenden Grund "Duplikat einer anderen Frage" geschlossen gast3 19 Feb '22, 13:05

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×73
×13

gestellte Frage: 08 Feb '22, 19:52

Frage wurde gesehen: 880 Mal

zuletzt geändert: 19 Feb '22, 15:51