= ÄndGgner -- Programmbibliothek zur Konsolidierung von Änderungsgesetzen des Bundes und der Länder Matthias Andreas Benkard // Meta :experimental: :data-uri: :sectnums: :toc: :stem: :toclevels: 2 :description: ÄndGgner Manual :keywords: mulk // Settings :icons: font :source-highlighter: pygments == Resources |=== |Resource |Links |Public Artifact |https://bintray.com/mulk/maven/aendggner[Bintray] |Bug Tracker |MantisBT |=== [[building]] == Building a JAR To build an executable JAR at `target/aendggner-${REVISION}.jar`: [source,shell script] ---- ./mvnw package ---- `${REVISION}` defaults to `0.1.0-SNAPSHOT` unless you override it by passing the `-Drevision` flag to `mvnw`. == Running the Command Line Application To run the command line application after <> it: [source,shell script] ---- ./mvnw exec:java ---- [[usage]] == Usage ÄndGgner erzeugt aus einem Stammgesetz und einem Änderungsgesetz eine zweispaltige HTML-Synopse (alte Fassung links, neue rechts, Änderungen wortweise hervorgehoben). Eingaben: * Stammgesetz: XML im gii-norm-Format von https://www.gesetze-im-internet.de/[gesetze-im-internet.de] * Änderungsgesetz: BGBl-PDF oder Klartext [source,shell script] ---- java -jar target/aendggner-0.1.0-SNAPSHOT.jar \ stammgesetz.xml aenderungsgesetz.pdf -o synopse.html ---- Wichtige Optionen: `-o, --output `:: Ausgabedatei (Default `synopse.html`; `-` = Standardausgabe). `--vollstaendig`:: Auch unveränderte Normen in die Synopse aufnehmen. `--artikel `:: Nur diesen Artikel des Änderungsgesetzes anwenden (Default: alle Artikel, deren Einleitung das Stammgesetz nennt). `--extract-only`:: Nur den bereinigten Lineartext des Änderungsgesetzes ausgeben. Nützlich, wenn die PDF-Extraktion fehlerhaft ist: Text prüfen, von Hand korrigieren und als Klartextdatei wieder einspeisen. Erkannt werden die gebräuchlichsten Änderungsbefehle des Handbuchs der Rechtsförmlichkeit (Ersetzen, Neufassung, Einfügen, Anfügen, Aufheben, Streichen, Umnummerierung) einschließlich zahlreicher Sonderformen: Bereichs- und Koordinationsziele („Die Absätze 8 und 9 werden durch die folgenden Absätze 8 bis 10 ersetzt“), strukturelle Streichungen ganzer Einheiten („§ 9 wird gestrichen“), §- und Gliederungs-Umnummerierungen („§ 9a wird zu § 9“, „Der bisherige Abschnitt 2 wird zu Abschnitt 3“), das Einfügen/Ersetzen ganzer §-Blöcke, Chapeau-Lokatoren („Im Satzteil vor Nummer 1 …“), Änderungen an Anhängen und Anlagen („Der Anhang wird wie folgt geändert: … Nach Nummer 2 wird die folgende Nummer 2a eingefügt“), Angabe-Befehle auf die Inhaltsübersicht (gefasst, ersetzt, eingefügt, gestrichen — sie werden auf die Inhaltsübersichts-Norm angewandt), das Einfügen und Ersetzen von Gliederungs-Überschriften („Nach § 33 werden die folgenden Überschriften zu Teil 3 … eingefügt“), Voranstellungen, Mehrfach-Ersetzungs- und -Einfügepaare, Verbünde aus Umnummerierung und Folgeänderung („§ 50 wird zu § 38 und wird wie folgt geändert“) sowie die Neufassung der Gesetzesüberschrift. Die PDF-Aufbereitung toleriert dabei Drucksachen-Artefakte (Seitenköpfe und -füße, Vorabfassungs-Wasserzeichen, vertauschte oder gerade Anführungszeichen, verklebte Wortgrenzen) und bestimmt die Brotschrift seitenweise, sodass auch Ministeriumsentwürfe mit gemischten Layouts vollständig extrahiert werden. Auf den Beispieldaten werden damit alle Befehle der BGBl-Fassungen und der aktuellen Entwürfe angewandt (UWG/AGG/ProdHaftG: 0 manuell); was unsicher bleibt — etwa Befehle gegen eine ältere Gesetzesfassung, deren Zieltext nicht mehr existiert — landet mit Begründung im Abschnitt *Manuell prüfen* der Synopse und wird niemals stillschweigend verworfen. == Running the Tests To build and run the tests: [source,shell script] ---- ./mvnw verify ----