Hallo Rübi,
ich habe Deinen Seufzer als Anlaß genommen, ein lange Zeit aufgeschobenes Vorhaben mal anzugehen. Oft muß ich mich bei Inhaltsverzeichnissen durch Einzüge und Tabulatordefinitionen für römische Ziffern durchkämpfen. Bislang erledigte ich dies immer jeweils neu von Hand.
Nun habe ich eine kleine Skriptstudie entwickelt, die eine Berechnung für die Einzüge und die Tabposition für eine Liste mit römischen Ziffern vornimmt. Es ist noch sehr holperig und eigentlich nur ein Entwurf bzw. ein Rohbau, um mal zu sehen, wo der Hase entlang laufen könnte.
Das Skript, das in dieser Fassung voraussetzt, daß der Cursor als Einfügemarke in einem Absatz platziert ist, macht folgendes:
1. Es fordert zunächst auf, die breiteste römische Ziffer anzugeben (z.B. "III"; ohne Punkt);
2. es löscht vorhandene Tabulatoren und setzt den Einzug links und dem Erstzeileneinzug auf 0;
3. es fügt die oben angegebene breiteste römische Ziffer mit Punkt ein,
4. bestimmt die Position für den rechtsbündigen Tab,
5. fügt temporär einen geschützten Wortzwischenraum nach dem Punkt ein,
6. bestimmt anhand der Position des Einfügepunkts nach dem geschützten Wortzwischenraum die Position für den hängenden Einzug,
7. löscht den geschützten Wortzwischenraum,
8. setzt die Einzüge (hängender Einzug: Einzug links mit Erstzeilen = minus Einzug links),
9. setzt den rechtsbündigen Tabulator,
10. fügt Tabulatoren am Anfang der Zeile und nach dem Aufzählungspunkt ein.
Am Ende steht also die breiteste römische Ziffer mit Punkt und den notwendigen Einzügen und der Postition des ersten Tabulators (rechtsbündig, genau auf den Punkt ausgerichtet). Auf der Basis dieses Absatzes kann ein Absatzformat für die römische Liste definiert werden.
Betrachte dieses Skript als eine Studie zur Berechnung der Einzüge und der Position des ersten Tabulators bei einer Liste mit römischen Ziffern. Es ist ein Anfang.
Ich sehe Erweiterungsmöglichkeiten in zwei Richtungen:
1. Innerhalb einer Auswahl von Absätzen werden die römischen Ziffern vom Skript erkannt und deren Breiten verglichen. Dann werden für die Absätzen mit römischen Ziffern aus der breitesten Ziffer als Bezugspunkt die Einzüge und Tabulatorpositionen nach dem obigen Algorithmus berechnet. Das Ergebnis dieser Berechnungen wird in ein Absatzformat geschrieben, welches den Absätzen mit römischer Numerierung zugewiesen wird.
2. Die Berechnung der Einzüge wird auf weitere Stufen der Liste ausgedehnt:
Letzteres würde mir selber viel händisches Ausprobieren und Einrichten von Einzügen bei Inhaltsverzeichnissen ersparen. Mir fehlt allerdings im Moment noch eine Idee, eine Hierarchie der Liste in verallgemeinerter Form ohne Hinzuziehen von speziellen Absatzformaten nur anhand der Numerierungszeichen aus den ausgewählten Absätzen auszuwerten.
Für meine eigenen Zwecke werde ich wohl als nächstes erst mal ein weiteres Skript schreiben, das mir auf der Basis des Absatzes vor dem aktuellen Absatz (also "III.") den erweiterten Einzug für die Numerierungshierarchie des aktuellen Abstzes ("1.") berechnet. Und zwar möglichst so verallgemeinert, daß es später auch für "a)" oder "a." oder "(a)" verwendet werden kann.
Alternativ "1.1", "1.1.1" ...
Dieses Projekt verschiebe ich allerdings auf nächstes Jahr.