Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Versionierung von Packeten und Klassen

  1. #1
    Registrierter Benutzer Avatar von AureusPhoenix
    Registriert seit
    20.02.2010
    Beiträge
    91

    Versionierung von Packeten und Klassen

    Hi Leute,
    ich stehe gerade vor einem kleinen Problemchen. Und zwar habe ich vor einigen Jahren eine Klasse geschrieben die JenThesis heißt. Nun brauche ich die Klasse wieder, möchte sie aber noch etwas verbessern. Am liebsten würde ich sie aber nicht kopieren und umbenennen sondern mit Versionen arbeiten. Ziel soll es sein, das der Nutzer beim Laden der alten Version, dies mit einer Klassenoption tun kann, standardmäßig aber die neue geladen wird. Kann mir jemand sagen, wie das geht?

    Vielen Dank im Voraus!
    Grüße

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Zitat Zitat von AureusPhoenix Beitrag anzeigen
    Und zwar habe ich vor einigen Jahren eine Klasse geschrieben die JenThesis heißt. Nun brauche ich die Klasse wieder, möchte sie aber noch etwas verbessern. Am liebsten würde ich sie aber nicht kopieren und umbenennen sondern mit Versionen arbeiten. Ziel soll es sein, das der Nutzer beim Laden der alten Version, dies mit einer Klassenoption tun kann, standardmäßig aber die neue geladen wird.
    vllt lässt sich Deine Klasse ja so umschreiben, daß die alte Funktionalität erhalten bleibt, dann würde sich für dessen Verwendung in alten Dokumenten auch nix ändern.
    Alternativ kannst Du Dir natürlich eine Option`compat' o.ä. basteln, mit der Du dann in Deiner Klasse entscheidest, was alles kompatibel zum alten Aufbau gehalten werden soll.
    Und je nachdem, wie aufwändig Du das treiben willst, lohnt sich vllt ein Blick in eine der Koma-Script-Klassen, bei denen bei Verwendung alter Optionen auf eine ältere Koma-Script-Version umgeschaltet wird.

    VG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.327
    Im einfachsten Fall geht das beispielsweise, indem Du irgendwo im Optionen-Teil der Klasse etwas wie:
    Code:
    \newif\if@oldJenThesis
    \DeclareOption{oldJenThesis}{\oldJenThesistrue}
    verwendest und dann überall dort, wo sich die neue Version von der alten unterscheiden soll:
    Code:
    \if@oldJenThesis
      % Hier der Code aus der alten Version der Klasse.
    \else
      % Hier der Code für die neue Version der Klasse.
    \fi
    Solche Verzweigungen kannst Du mehrfach verwenden. Es muss nur sichergestellt sein, dass alle \if…, die in den beiden Varianten verwendet werden, vor der Fallunterscheidung definiert sind und innerhalb der Varianten auch wieder sauber beendet werden. Aber einem Klassenautor muss ich das eigentlich nicht erzählen. Der Umgang mit \if… \else … \fi gehört da eigentlich zum normalen Handwerkszeug, beispielsweise auch für \if@twoside … \else … \fi.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •