Problem

Die Quellenverweise in den MAS-Arbeiten folgen der IEEE-Zitierweise: Im Text stehen Nummern in eckigen Klammern, beispielsweise [3]. Jede Nummer verweist auf den gleich nummerierten Eintrag im Literaturverzeichnis.

Wird dort eine Quelle zwischen bestehenden Einträgen eingefügt, passt Help+Manual die nachfolgenden Nummern der Liste automatisch an. Die Listennummern lassen sich jedoch nicht unmittelbar als dynamische Quellenverweise in den Topics verwenden. Fest eingetragene Nummern müssten deshalb an allen betroffenen Textstellen manuell geändert werden.

Kontext

Als Lösung wird jede Quellenreferenz über eine eigene Snippetdatei eingebunden. Diese enthält die anzuzeigende Nummer mit eckigen Klammern sowie einen Link zum zugehörigen Eintrag im Literaturverzeichnis. Die Snippets liegen als XML-Dateien in einem eigenen Verzeichnis vor.

Literatureintrag mit einem Anker kennzeichnen

Im Topic mit dem Literaturverzeichnis erhält jeder Eintrag einen eigenen Anker. Dieser markiert die Sprungstelle, die beim Anklicken eines Quellenverweises geöffnet wird. Der erste Eintrag erhält beispielsweise den Ankernamen EL-LVZ-0100.

Der Ankername bleibt bestehen, auch wenn sich die Listennummer des Eintrags später ändert. Dadurch bleibt der Eintrag über dieselbe Sprungstelle erreichbar.

Snippet mit dem Literatureintrag verknüpfen

Die zugehörige Snippetdatei EL-SNIP-LVZ-0100.xml enthält die Darstellung des Quellenverweises als [1]. Die Nummer ist mit einem Link hinterlegt. Dieser verweist auf das Topic mit dem Literaturverzeichnis und dort auf den Anker EL-LVZ-0100.

Im XML-Code bezeichnet href das Zieltopic und anchor die Sprungstelle innerhalb dieses Topics. Zwischen dem öffnenden und schliessenden link-Element steht die angezeigte Nummer.

Snippet im Text einbinden

An der gewünschten Textstelle wird die Snippetdatei verlinkt eingebunden. Dort erscheint der Quellenverweis [1], was dem Snippetinhalt entspricht. Beim Anklicken führt er zum verknüpften Eintrag im Literaturverzeichnis. Dasselbe Snippet kann an mehreren Textstellen verwendet werden.

Referenznummern aktualisieren

Die Snippetdateien liegen als XML-Dateien in einem eigenen Verzeichnis vor. Der Dateiname identifiziert das Snippet und bestimmt seine Position innerhalb der nach Dateinamen sortierten Dateien. Die darin enthaltene Nummer entspricht dagegen der aktuellen Position der Quelle im Literaturverzeichnis.

Beispielsweise enthält EL-SNIP-LVZ-0300.xml zunächst die Nummer 3. Wird davor eine Quelle eingefügt, muss diese Nummer auf 4 geändert werden. Der Dateiname und das Linkziel bleiben bestehen. Alle Textstellen, die dieses Snippet verlinkt einbinden, übernehmen dadurch die aktualisierte Nummer.

Damit die betroffenen Snippets nicht einzeln bearbeitet werden müssen, wurden mit Unterstützung künstlicher Intelligenz zwei kleine Hilfsprogramme in Rust entwickelt:

•lvz-info liest die Snippetdateien nach Dateinamen sortiert ein und zeigt die jeweiligen Linkanker und internen Referenznummern an. So lässt sich kontrollieren, ob die Nummerierung zur Dateireihenfolge passt. Die Dateien werden nicht verändert.

•lvz-update sortiert die Snippetdateien ebenfalls nach Dateinamen und ersetzt ihre internen Referenznummern durch fortlaufende Nummern ab 1. Das Programm speichert die Dateien und zeigt die zugewiesenen Nummern unmittelbar an.

Beide Programme werden über die Befehlszeile gestartet und fragen nach dem Pfad zum Snippetverzeichnis. Der folgende Ablauf zeigt ihre Anwendung beim Einfügen einer neuen Quelle.

Vorgehen

1. Ausgangszustand festlegen

Für jede Quelle wird eine Snippetdatei angelegt. Die Dateinamen erhalten zunächst Nummern in Hunderterschritten, beispielsweise 0100, 0200 und 0300. Die Abstände ermöglichen es, später weitere Dateien dazwischen einzusortieren.

Die Reihenfolge der Dateien muss der Reihenfolge der Quellen im Literaturverzeichnis entsprechen. Die Nummer im Dateinamen ist eine Sortierkennung und muss deshalb nicht mit der angezeigten Quellenreferenz übereinstimmen.

2. Vorhandene Nummerierung prüfen

Nach dem Start von lvz-info.exe auf der Befehlszweile wird der Pfad zum Snippetverzeichnis eingegeben. Das Programm liest die Dateien in sortierter Reihenfolge und zeigt pro Datei die enthaltene Referenznummer an.

Im Ausgangszustand ergeben sich die fortlaufenden Nummern 1 bis 19.

3. Neue Quelle und Snippet einfügen

Die neue Quelle wird an der gewünschten Stelle im Literaturverzeichnis ergänzt. Im Beispiel erhält sie Position 3. Die bisherige Quelle 3 rückt dadurch auf Position 4, alle weiteren Einträge verschieben sich entsprechend.

Das zugehörige Snippet erhält den Dateinamen EL-SNIP-LVZ-0250.xml. Damit wird es zwischen EL-SNIP-LVZ-0200.xml und EL-SNIP-LVZ-0300.xml einsortiert. Die bestehenden Dateinamen und die darauf gerichteten Snippeteinbindungen bleiben unverändert.

Der neue Literatureintrag erhält einen eigenen Anker, im Beispiel EL-LVZ-0250. Wird das neue Snippet durch Kopieren einer vorhandenen Datei erstellt, muss dessen Linkziel auf diesen Anker geändert werden. Die bestehenden Literatureinträge behalten ihre Ankernamen. Das Hilfsprogramm aktualisiert anschliessend die angezeigten Nummern.

4. Abweichung sichtbar machen

Ein erneuter Aufruf von lvz-info.exe zeigt, dass die internen Nummern noch nicht zur neuen Reihenfolge passen. Im gezeigten Beispiel enthält das kopierte Snippet noch die Nummer 2. Die nachfolgenden Dateien tragen ebenfalls weiterhin ihre bisherigen Nummern.

Das Einfügen und Benennen der Datei allein aktualisiert somit noch keine Quellenreferenzen.

5. Nummerierung aktualisieren

Vor der Änderung werden die Projektänderungen gespeichert, das Projekt geschlossen und die Snippetdateien gesichert.

Anschliessend wird lvz-update.exe gestartet und der Pfad zum Snippetverzeichnis eingegeben. Das Programm sortiert die Dateien nach ihrem Namen und ersetzt die internen Referenznummern durch fortlaufende Nummern ab 1.

Das neue Snippet erhält dadurch die Nummer 3. Das bisherige Snippet für Quelle 3 erhält die Nummer 4, die weiteren Nummern werden entsprechend angepasst. Das Programm zeigt die gespeicherten Nummern unmittelbar an.

6. Ergebnis kontrollieren

Nach dem erneuten Öffnen des Projekts werden die Quellenverweise und ihre Linkziele kontrolliert. Vor der Veröffentlichung ist zusätzlich zu prüfen, ob die angezeigten Nummern mit den Einträgen im Literaturverzeichnis übereinstimmen.

Einsichten

Die Trennung zwischen stabiler Snippetdatei und veränderlicher Referenznummer ermöglicht es, Quellenverweise zentral zu aktualisieren. Nach dem Einfügen einer Quelle müssen die betroffenen Textstellen nicht einzeln bearbeitet werden. Die verlinkten Snippets übernehmen die angepassten Nummern.

Die XML-Dateien bieten damit einen Ansatzpunkt, um Funktionen des Autorensystems durch eigene Hilfsprogramme zu ergänzen. Die mit KI-Unterstützung entwickelten Programme setzen eine klar definierte Regel um: Die Position einer Datei in der sortierten Dateiliste bestimmt ihre interne Referenznummer.

Die automatische Nummerierung gewährleistet jedoch noch keine korrekte Quellenzuordnung. Die Reihenfolge im Literaturverzeichnis und die Linkziele der Snippets müssen weiterhin stimmen.

Folgerungen

Für den zuverlässigen Einsatz ist ein geregelter Ablauf erforderlich: Neue Quellen und Snippets werden an übereinstimmender Position eingefügt, die Linkziele geprüft und die Referenznummern anschliessend aktualisiert. Vor der Veröffentlichung werden die Quellenverweise in der Ausgabe kontrolliert.

Die Lösung ist weniger komfortabel als automatisch aktualisierte Querverweise in Word, bietet für die vorliegende Dokumentation jedoch einen brauchbaren Workaround. Der Ablauf lässt sich bei weiteren Ergänzungen wiederholen.

Das Beispiel zeigt, dass sich eine konkrete Einschränkung mit einer nachvollziehbaren Verarbeitungsregel und einem kleinen Hilfsprogramm ausgleichen lässt. KI kann die Entwicklung unterstützen, die Anforderungen festzulegen und das Ergebnis zu prüfen bleibt Aufgabe der verantwortlichen Person.

Anschlussfragen

Keine.

Hinweis: Im Anhang sind die Sourcecodes der Hilfsprogramme abgebildet.