Grundlegende Frage zum effizienten und fehlerfreien Aufbau einer Präambel: 1. Dokumentklasse 2. Schriftkodierung 3. und dann?

Ist es wichtig z.B. erst die Sprachfamilie oder erst die Mathematik-, Grafikpakete zu laden und wo gehören am sinnvollsten Dinge wie epstopdf plaziert?

gefragt 03 Mai '15, 11:36

die_da's gravatar image

die_da
1335914
Akzeptiert-Rate: 0%


Ursprünglich war vom LaTeX-Team wohl gedacht, dass die Reihenfolge von Pakete keine Rolle spielen soll. Leider hat sich das aber im Laufe der Jahre als Wunschdenken herausgestellt. Zwar gäbe es beispielsweise mit dem Paket scrlfile durchaus die Möglichkeit, dass Paketautoren auch auf das spätere Laden von anderen Paketen noch reagieren könnten, in der Realität machen davon aber nur sehr wenige Paketautoren Gebrauch. Stattdessen schreiben sie abhängigen Code so, dass er nur dann ausgeführt wird, wenn das Paket, auf das sie reagieren möchten, bereits geladen ist. Dadurch entstehen Abhängigkeiten, die der Anwender tatsächlich nicht selbst erkennen kann. Solche Abhängigkeiten sollten aber in der Anleitung vermerkt sein.

Noch komplizierter wird es, wenn Abhängigkeiten existieren, von denen nicht einmal die Paketautoren etwas wissen und die deshalb auch nicht in den Paketanleitungen vermerkt sind. Diese findet man eigentlich nur beim Auftreten konkreter Probleme. Dazu genügt es auch nicht, ein einfaches Minimalbeispiel zu erstellen, man muss dann als weiteren Schritt auch noch die Paketreihenfolgen vertauschen. Es kann übrigens sinnvoll sein, solche Abhängigkeiten dann an die zuständigen Paketautoren zu melden, damit diese in der Anleitung ggf. darauf hinweisen können.

Es gibt auch Abhängigkeiten, die dadurch entstehen, dass Pakete von Paketen mit bestimmten Optionen geladen werden. Diese erkennt man einfach an option clash-Meldungen. Bei solchen Meldungen ist die erste Idee immer, das Paket nicht selbst zu laden. Fehlen dann Optionen kann man sie entweder als globale Optionen setzen (funktioniert nicht für alle Optionen) oder per \PassOptionsToPackage bevor das Paket indirekt geladen wird, also beispielsweise noch vor \documentclass.

Allgemeine Faustregeln sind schwierig, weil es immer Ausnahmen gibt. So sollte beispielsweise hyperref immer so spät wie möglich geladen werden. Allerdings sind im README zu hyperref auch Ausnahmen vermerkt, für die das nicht genügt bzw. nicht zutrifft.

Lediglich für ein Paket kann man eine definitive Aussage treffen: Das Paket latexrelease sollte immer als allererstes noch vor \documentclass geladen werden, wenn man es denn verwendet. Das liegt daran, dass man über das Paket, Einstellungen des LaTeX-Kerns vornimmt, die für alle Klassen und Pakete einheitlich gelten sollten.

Abhängigkeiten der Art, wie Du sie genannt hast, also Sprache für Mathematik vor Grafik sind mir allerdings nicht bekannt.

Da epstopdf die Arbeitsweise von graphics bzw. graphicx modifiziert, würde ich es persönlich unmittelbar danach laden.

Permanenter link

beantwortet 03 Mai '15, 12:47

saputello's gravatar image

saputello
11.1k154365
Akzeptiert-Rate: 51%

bearbeitet 03 Mai '15, 14:41

Deine Antwort
Vorschau umschalten

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:

×48
×4

gestellte Frage: 03 Mai '15, 11:36

Frage wurde gesehen: 7,537 Mal

zuletzt geändert: 03 Mai '15, 14:41