Vor- und Nachteile der Paketverwendung in einer Klasse/einem Paket

Vor- und Nachteile der Paketverwendung in einer Klasse/einem Paket

Betrachten Sie einePaket(oderKlasse), das Makros mit zwei optionalen Argumenten bereitstellt. Man könnte

(i) verwenden twoopt. Der Code in der .styDatei ist leicht zu lesen und daher zu verstehen.

(ii) Codieren Sie das Makro von Hand. Der Code sieht schrecklich aus, bindet den Benutzer jedoch nicht an ein zusätzliches Paket.

Außerdem gibt es manchmal mehrere Pakete, um dasselbe zu erreichen: ifthen, xifthenund ifthenx.

Wie wähle ich das zu verwendende Paket aus? In welchen Fällen muss ich Dinge von Hand codieren? Gibt es bewährte Methoden? Bitte beachten Sie, dass die Beispiele die allgemeine Frage veranschaulichen.

Antwort1

Im Zweifelsfall entscheiden Sie sich für den Standard.

Auch wenn ifthendie Programmierschicht des aufstrebenden LaTeX3-Kernels noch nicht fest etabliert ist, expl3ist sie leistungsstark und sehr stabil. Selbst in dertexlive-corePaket des Paket-Repositorys von Arch Linux (denken Sie an das Minimalste vom Minimalisten), der gesamte L3-Kernel ist enthalten. Es wird Ihren Benutzern immer zur Verfügung stehen.

Aus Erfahrung mit ähnlichen Problemen,nichtcodieren Sie Dinge von Hand, es sei denn, es ist unbedingt nötig – es wird nahezu unmöglich, sie zu pflegen und, wie Sie sagen, auf den ersten Blick unmöglich zu verstehen.

Hier mangelt es vielleicht an der Konvention, aber die beste Konvention ist in jedem Fall, das offizielle Material zu verwenden.


Von hier aus: Suchen Sie Folgendes mit texdoc:

  • expl3erklärt die Gründe dafürexpexperimentellMaTeX3Syntax und führt die Komponente 'Pakete' ein (in der Praxis braucht man nur\usepackage{expl3}
  • interface3dient als Referenz für die gesamte expl3Bibliothek und Schnittstelle
  • xparseunschätzbare Ressource bei der Definition von Befehlen mit einer komplexeren Syntax

Antwort2

Wenn das twooptPaket Ihren Anforderungen entspricht, ist die Verwendung völlig in Ordnung.

Generell ist LaTeX ein sich ständig weiterentwickelndes System. Pakete sind der Motor dieses Prozesses. Wenn Sie deren universelle Verwendung vernachlässigen oder sich für Hard-Code entscheiden, wenn es ein geeignetes Paket gegeben hätte, würden Sie eine wichtige Eigenschaft des LaTeX-Systems aufgeben.

Obwohl die letzte Aussage ein wenig dramatisch klingt, steckt doch Wahrheit darin. Abgesehen davon bleibt es oft eine Frage der Wahl und der Gewohnheiten (wir sind alle Menschen!). Wenn Sie jedoch die Möglichkeit haben, durch die Verwendung von Paketen einen besser lesbaren Code zu erhalten,fortfahren. Dieses Kriterium ist übrigens ein Hauptproblem des LaTeX3-Projektes.

Die Bindung an ein Paket in einer .styoder .clseiner Datei schränkt Sie in keiner Weise ein. Selbst wenn ein Paket, das Sie in Ihrem eigenen Paketcode verwendet haben, in Zukunft veraltet sein wird, weil ein neueres Paket besser ist oder was auch immer, bedeutet das nicht, dass die von Ihnen verwendete Funktion nicht mehr brauchbar ist. Darüber hinaus können Sie als Paketautor Ihr Paket je nach aktuellem Stand pflegen/aktualisieren. Abgesehen davon möchte ich daran erinnern, dass LaTeX2e derzeit sehr stabil ist. Aus dieser Sicht ist also „[die Verwendung] des offiziellen Materials“ (@Sean Allred, siehe oben) völlig vernünftig.

Und schließlich: Wenn drei Pakete für ein bestimmtes Problem genau die gleiche Aufgabe erfüllen, verweise ich auf die obige Aussage „Wir sind alle nur Menschen!“: Verwenden Sie das Paket, das Ihnen am besten gefällt oder an das Sie gewöhnt sind.

verwandte Informationen