Der Index-Manager ist angesiedelt zwischen Add-Ins und Stand-Alone-Programmen.
Einerseits befüttert der Index-Manager Word- oder InDesign-Dateien mit Indexmarken, was ein typisches Kennzeichen für ein Add-In ist, andrerseits arbeitet man während des Indexerstellungsprozesses vollständig außerhalb von Word und InDesign, also eigenständig, was wiederum das Hauptmerkmal von Separate-File-Indexing- und Stand-Alone-Programmen ist.
Im Unterschied zu Separate-File-Indexing-Programmen wie Excel konzentriert sich der Index-Manager auf das Indexing und stellt eine Reihe hilfreicher Funktionen zur Verfügung, die mit denen der klassischen Stand-Alone-Programme Cindex, Sky und Macrex vergleichbar sind, teilweise sogar darüber hinausreichen.
Verglichen mit den typischen Add-Ins, etwa für Word, wie beispielsweise DexEmbed oder WordEmbed, kann mit dem Index-Manager ein Index erstellt werden, ohne dass man dazu die jeweilige Word-Datei öffnen und Word-Funktionen oder VBA-Makros verwenden muss. Der Index-Manager „öffnet“ zwar auch die Ausgangsdateien (Word oder InDesign), allerdings indirekt, indem er die XML-Informationen im Hintergrund ausnutzt.
Man kann sagen, die üblichen Add-Ins sind VBA-basiert, der Index-Manager ist XML-basiert.
Das Prinzip besteht darin, dass der Index-Manager die XML-Daten eines Dokuments zu sich einlädt und über ein HTML-Stylesheet zur Ansicht anbietet. Der Index kann nun im Index-Manager erstellt und bearbeitet werden. Zum Schluss wird er exportiert, wobei „Export“ bedeutet, dass die XML-Daten des Word- oder InDesign-Dokuments aktualisiert werden; dadurch enthält das Dokument alle Einträge (in den programmeigenen Feldern), die mit dem Index-Manager kreiert wurden. Danach kann mit den Mitteln, die diese Programme zur Verfügung stellen, der Gesamtindex wie üblich erzeugt werden.
Zum Einladen der Daten muss ein Word- oder InDesign-Dokument nicht extra vorbereitet werden, sondern man gibt im Index-Manager an, welche Dateien verwendet werden sollen, das Programm holt sich dann selbsttätig die benötigten Informationen und stellt sie dar.
Zentrales Element der Oberfläche des Index-Managers ist das Dokumentfenster „Text“. „Rundherum“ um diese HTML-Ansicht auf den Dokumentinhalt stehen Werkzeug-Fenster zur Verfügung, in denen der entstehende Index formatiert angezeigt (Nester, Eintragsebenen) und komfortabel bearbeitet werden kann.
Die Anordnung der Fenster lässt sich durch einfaches Verschieben und Größer- oder Kleinerziehen den eigenen Vorstellungen anpassen.
Damit ein Begriff in den Index wandert, wird er einfach (analog zum Vorgehen in Word oder InDesign) im Dokumenttext markiert und durch den Befehl „Erstellen“ in den Index aufgenommen.
Double Posting ist auf zwei Weisen möglich:
Das Ausführen des Duplizieren-Befehls außerhalb der Index-Liste (also z. B. im Editieren-Fenster oder im Register-Fenster) ist in der aktuellen Version des Index-Managers nicht möglich.
zwei Fälle:
Enter
bestätigenABC defg | hijk |
Eingabe des Pipe-Symbols:
ABC|defg | hijk |
Abschluss mit Enter
führt zu:
ABC | defg | hijk |
Im Abschnitt „Spezielle Funktionen: Index-Aktionen“ (siehe unten) wird beschrieben, wie zwei Level zusammengeführt („merging“) werden können.
Löschen von Einträgen ist auf zwei Weisen möglich:
Das Ausführen des Löschen-Befehls außerhalb der Index-Liste (also z. B. im Editieren-Fenster oder im Register-Fenster) ist in der aktuellen Version des Index-Managers nicht möglich.
Ein Bereich wird gesetzt, indem man
Um einen Bereich zu ändern, muss der vorhandene zuerst gelöscht werden:
Hier kann auf die Funktionalität zurückgegriffen werden, die auch innerhalb von InDesign zur Verfügung steht. Das heißt, man kann wählen:
Vorgehen:
Im Unterschied zu Word muss nicht extra ein Wort im Text markiert werden, sondern man kann direkt nach Doppelklick auf einen vorhandenen Eintrag den Bereich wählen.
Vorgehen zum Löschen eines Bereichs:
Ein aus meiner Sicht wesentliches Element des Index-Managers ist die Möglichkeit, Untermengen des Registers selektieren zu können. Das geschieht im Index-Listen-Fenster, indem im Feld „Filter“ ein Textstring oder ein Muster eingegeben wird.
Wie in den XE-Feldern in Word bewirkt ein Semikolon, dass eine bestimmte Sortierung erzwungen werden kann. Sortiert wird so, wie der String nach dem Semikolon vorgibt. Der Ausgangsbegriff wird zunächst kopiert, dann wird ein Semikolon am Ende des Begriffs eingegeben und direkt danach wird der Ausgangsbegriff aus der Zwischenablage eingefügt. Der Textstring nach dem Semikolon kann nun beliebig verändert werden.
In der Index-Liste können Spezialfunktionen genutzt werden, die man sich selbst anlegen kann und die auf regular expressions beruhen. Definiert werden die Aktionen im Aktionen-Fenster, das im Menüpunkt „Extras“ aufgerufen werden kann:
Die nachfolgende Aktionen-Liste zeigt neben Default-Aktionen einige selbstangelegte Aktionen (wie die Sort-Funktionen):
Jeder Aktion lässt sich ein Tastenkürzel zuweisen. Anwenden lassen sich Aktionen entweder über das Tastenkürzel oder per Maus in einem Kontextmenü, das im Index-Listen-Fenster durch Klick auf einen Eintrag per rechter Maustaste geöffnet wird:
Mit Aktionen können so gut wie alle Funktionen, die Stand-Alone-Programme bieten, nachgebaut werden.
Einige Beispiele:
Basis der Muster, die sowohl im Filter als auch bei Index-Aktionen verwendet werden, ist die RegEx-Syntax der Programmiersprache Perl.
wörtlich übernommen von: http://jkorpela.fi/perl/regexp.html
>>
This document presents a tabular summary of the regular expression (regexp) syntax in Perl, then illustrates it with a collection of annotated examples.
char | meaning |
---|---|
^ | beginning of string |
$ | end of string |
. | any character except newline |
* | match 0 or more times |
+ | match 1 or more times |
? | match 0 or 1 times; or: shortest match |
| | alternative |
( ) | grouping; “storing” |
[ ] | set of characters |
{ } | repetition modifier |
\ | quote or special |
To present a metacharacter as a data character standing for itself, precede it with \ (e.g. \. matches the full stop character . only).
a* | zero or more a’s |
a+ | one or more a’s |
a? | zero or one a’s (i.e., optional a) |
a{m} | exactly m a’s |
a{m,} | at least m a’s |
a{m,n} | at least m but at most n a’s |
repetition? | same as repetition but the shortest match is taken |
Read the notation a’s as “occurrences of strings, each of which matches the pattern a”. Read repetition as any of the repetition expressions listed above it. Shortest match means that the shortest string matching the pattern is taken. The default is “greedy matching”, which finds the longest match. The repetition? construct was introduced in Perl version 5.
Single characters
\t | tab |
\n | newline |
\r | return (CR) |
\xhh | character with hex. code hh |
“Zero-width assertions”
\b | “word” boundary |
\B | not a “word” boundary |
Matching
\w | matches any single character classified as a “word” character (alphanumeric or “_”) |
\W | matches any non-“word” character |
\s | matches any whitespace character (space, tab, newline) |
\S | matches any non-whitespace character |
\d | matches any digit character, equiv. to [0-9] |
\D | matches any non-digit character |
Different meanings apply inside a character set (“character class”) denoted by […] so that, instead of the normal rules given here, the following apply:
[characters] | matches any of the characters in the sequence |
---|---|
[x-y] | matches any of the characters from x to y (inclusively) in the ASCII code |
[\-] | matches the hyphen character “-” |
[\n] | matches the newline; other single character denotations with \ apply normally, too |
[^something] | matches any character except those that [something] denotes; that is, immediately after the leading “[”, the circumflex “^” means “not” applied to all of the rest |
Examples
expression | matches… |
---|---|
abc | abc (that exact character sequence, but anywhere in the string) |
^abc | abc at the beginning of the string |
abc$ | abc at the end of the string |
a|b | either of a and b |
^abc|abc$ | the string abc at the beginning or at the end of the string |
ab{2,4}c | an a followed by two, three or four b’s followed by a c |
ab{2,}c | an a followed by at least two b’s followed by a c |
ab*c | an a followed by any number (zero or more) of b’s followed by a c |
ab+c | an a followed by one or more b’s followed by a c |
ab?c | an a followed by an optional b followed by a c; that is, either abc or ac |
a.c | an a followed by any single character (not newline) followed by a c |
a\.c | a.c exactly |
[abc] | any one of a, b and c |
[Aa]bc | either of Abc and abc |
[abc]+ | any (nonempty) string of a’s, b’s and c’s (such as a, abba, acbabcacaa) |
[^abc]+ | any (nonempty) string which does not contain any of a, b and c (such as defg) |
\d\d | any two decimal digits, such as 42; same as \d{2} |
\w+ | a “word”: a nonempty sequence of alphanumeric characters and low lines (underscores), such as foo and 12bar8 and foo_1 |
100\s*mk | the strings 100 and mk optionally separated by any amount of white space (spaces, tabs, newlines) |
abc\b | abc when followed by a word boundary (e.g. in abc! but not in abcd) |
<<
Word:
Dazu dienen die am oberen Rand des Textfensters angebotenen Formatierungsmöglichkeiten (F und/oder K). Vorgehen:
InDesign:
Hier können neben F und K auch Zeichenformate (Stile) ausgewählt werden, was eine viel höhere Flexibilität und Variabilität als in Word ergibt
Im Index-Manager können die HTML-Auszeichnungscodes für kursiv und fett verwendet werden:
Code | Formatierung |
---|---|
<b> und </b> | fett |
<i> und </i> | kursiv |
<b><i> und </b></i> | fett-kursiv |
Der zu formatierende Text wird einfach mit diesen Tags umgeben.
<CONTROL>c<i><CONTROL>v</i> für kursiv und |
<CONTROL>c<b><CONTROL>v</b> für fett |
Vor dem Anwenden der Makros muss das jeweilige Textstück markiert werden.
Der „Scope“ der Makros muss in MacroExpress auf „Global“ eingestellt sein.
Die Codes können verschachtelt werden. So führt z. B. die Kombination aus <b><i> und </i></b> zu fettkursivem Text
Weitere Formatierungen (z.B. <sup> und <sub> für Hoch- bzw. Tiefstellung) können zwar ebenfalls eingegeben werden und führen sogar zur formatierten Darstellung im Index-Manager, aber sie werden beim Export nicht in die Syntax von Word oder InDesign konvertiert. Die Entwickler arbeiten an einer Lösung.
Solange diese Lösung nicht existiert, kann man sich mit Codes behelfen, die den Index-Manager nicht stören und die im Word-Gesamtindex per Mustersuche in die richtige Formatierung konvertiert werden können.
Code | Formatierung |
---|---|
\d und \D | Tiefstellung |
\u und \U | Hochstellung |
Dazu wird die zu formatierende Textstelle markiert und dann mit den Codes versehen, also z. B. H\d2\DO für H2O.
<CONTROL>c\d<CONTROL>v\D für Tiefstellung und |
<CONTROL>c\u<CONTROL>v\U für Hochstellung |
Suche nach | Ersetze durch |
---|---|
(\\d)([A-zßäöü0-9]*)(\\D) | \2 tiefgestellt |
(\\u)([A-zßäöü0-9]*)(\\U) | \2 hochgestellt |
Vorbemerkungen:
Aktion | Code | mögl. Tastenkürzel | Erläuterung | Achtung |
---|---|---|---|---|
markierten Text ausschneiden und in rechtes Feld verschieben | <CONTROL>x<TAB><CONTROL>v | Shift-Alt-RightArrow | geeignet, um markierten Ebene-1-Text zu Ebene-2-Text zu machen | evtl. im Zielfeld vorhandener Text wird überschrieben |
markierten Text ausschneiden und in linkes Feld verschieben | <CONTROL>x<Shift><TAB><CONTROL>v | Shift-Alt-LeftArrow | geeignet, um markierten Ebene-2-Text zu Ebene-1-Text zu machen | evtl. im Zielfeld vorhandener Text wird überschrieben |
markierten Text ausschneiden und an Feldanfang verschieben | <CONTROL>x<HOME><CONTROL>v | Alt-Shift-l | geeignet, um innerhalb eines Feldes eine Verschiebung von beliebigem Text an den Feldanfang vorzunehmen | |
Sortieraufbereitung 1: in Ebenen-Feld (1, 2 oder 3) Begriff kopieren, ans Ende gehen, Semikolon einfügen, kopierten Text einfügen | <HOME><SHIFT><END><CONTROL>c<END>;<CONTROL>v | Ctrl-Alt-Keypad 1 | erster Schritt zur Sortieraufbereitung; danach kann Spezialsortierung eingegeben werden (→Sortieraufbereitung 2) | |
Sortieraufbereitung 2: markierten Teil des Texts nach Semikolon ausschneiden und ans Ende stellen | <CONTROL>x<END><CONTROL>v | Ctrl-Alt-Keypad 2 | hiermit wird die eigentliche Spezialsortierung eingestellt |
Soll z. B. von „abc“ per siehe auch auf „efg“ verwiesen werden, so lautet die Syntax für den Index-Manager:
abc|siehe auch efg;zzz \t ""
Erkenntnis: Der Siehe-auch-Verweis wird als Untereintrag behandelt; \ t und die Anführungszeichen werden ganz normal eingegeben (Doppel-Backslashes sind nicht nötig).
Das wird beim Export in Word zu
XE "abc:siehe auch efg;zzz \t \"\""
Erkenntnis: In Word kommen einige Anführungszeichen hinzu. Der gesamte Ausdruck abc:siehe auch efg;zzz \t \„\“ steht zwischen zwei Anführungszeichen (vor abc und hinter \„, also: „abc bzw. \““).
Wichtig: Die Export-Eignung ist automatisch gegeben, wenn der Eintrag im IM wie oben gezeigt als Unterthema angelegt wird. Ein korrekter Import von Word zu IM gelingt nur, wenn in Word die ebenfalls oben angegebene Syntax vorliegt. Das ist nach dem Export aus IM der Fall. Wenn aber ein Siehe-auch-Verweis direkt in Word erzeugt wird, muss er erst in diese Syntax gebracht werden. Entscheidend ist dabei die „Umfassung“ mit Anführungszeichen.
Achtung: Solange der Index nicht fertig ist, darf an der Syntax, die aus dem Index-Manager an Word übergeben wird, in Word nichts geändert werden. Erst ganz zum Schluss, wenn in Word der Index ausgegeben werden soll, muss ein Suchen/Ersetzen-Lauf ausgeführt werden:
suche nach _\t_\"\"", ersetze durch "_\t_"" dabei steht _ für ein Leerzeichen
Ergebnis:
XE "abc:siehe auch efg;zzz" \t ""
Das entspricht genau dem, was man wollte. Der Schalter \t „“ sorgt jetzt dafür, dass die Seitenzahl unterdrückt wird. Wird nun der Index erzeugt, steht der Siehe-auch-Verweis am Ende des Eintragsarrays und es wird keine Seitenzahl angezeigt.
Liegen mehrere Dokumentdateien vor, kann es sein, dass ein und derselbe Querverweis mehrere Instanzen (pro Dokumentdatei genau eine) hat (siehe auch vorstehenden Punkt zum Import); daher exportiert das Programm die Querverweise mehrfach. Es kann damit in Word z. B. zu folgenden Querverweiseinträgen kommen:
polychlorierte Biphenyle siehe PCB, siehe PCB, siehe PCB, siehe PCB
oder
TCDD siehe auch Dioxine, siehe auch Dibenzo-p-dioxine, siehe auch Dioxine, siehe auch Dibenzo-p-dioxine, siehe auch Dioxine, siehe auch Dibenzo-p-dioxine, siehe auch Dibenzo-p-dioxine, siehe auch Dioxine
Korrigiert werden kann das im fertigen Register.
Dabei kann eine Mustersuche helfen:
Suche nach: ([A-zß]), siehe ([A-z0-9ßäöü-]*)^013
Ersetze durch: \1^p
Der Index-Manager erzeugt die Syntax der XE-Felder korrekt in dem Sinne, dass in Word das Gesamtregister erzeugt werden kann.
Es gibt allerdings eine kleine Abweichung:
Das führt dazu, dass VBA-Makros in Word, die man sich auf Basis der Word-eigenen Syntax angelegt hat, nicht laufen.
^d XE
. Bei den XE-Feldern, wie sie aus dem Index-Manager kommen, müsste nach ^dXE
gesucht werden.Pragmatische Lösung: Zunächst in Word per Suchen/ersetzen die fehlenden Blanks, v.a. den Blank vor XE, hineinbringen. Dann die Makros anwenden.
Etwas aufwändigere Lösung: Alle Makros duplizieren und im jeweiligen Duplikat Änderungen vornehmen, sodass wieder alles richtig läuft.
Es scheint so zu sein, dass eine bestimmte Schriftgröße beim Hineinschreiben der XE-Felder in die Word-Datei nicht unterschritten wird. Mutmaßlich ist 11 pt die untere Grenze.
Es kann Dokumente geben, in denen man die Schrift sowohl des Textes als auch der darin eingebetteten XE-Felder kleiner halten möchte. Ich hatte z .B. den Fall, dass 5 pt gewünscht war. Nachdem alles in der Word-Datei formatiert worden war, wurde das Dokument mit Index-Manager bearbeitet; die Indexfelder wurden zum Schluss wie üblich exportiert. Nach dem Öffnen der Word-Datei hatten alle XE-Felder in der 5pt-Textumgebung eine Schriftgröße von 11 pt.
In den meisten Fällen spielt das keine Rolle (bis auf eine unschöne Optik, wenn die XE-Felder zu sehen sind). Doch es gibt eine Sondersituation: Bei sehr vielen XE-Feldern auf einer Seite zeigt Word im Index falsche Seitenzahlen an, wenn der Text bei sichtbaren XE-Feldern weit über diese Seite hinausläuft (ab welchem Wert der Effekt auftritt, müsste noch genauer untersucht werden), während er bei nicht-sichtbaren XE-Feldern gerade genau die Seite füllt. Enthält der Text auf der Seite Stellen mit kleiner Schrift (z.B. in 5 pt) und sind auch hier XE-Felder enthalten, so wird deren Schrift durch einen Index-Manager-Export auf 11 pt hochgesetzt, was sofort dazu führt, dass es einen kräftigen Überlauf auf die nächste Seite gibt. Alle nachfolgenden Textpassagen werden entsprechend verschoben.
Eine Möglichkeit, das Problem zu lösen, besteht darin, die Papiergröße der betreffenden Seite hochzusetzen. Dazu müsste vor und nach der Seite ein Abschnittsumbruch eingefügt werden.
Vielleicht lassen sich XE-Felder auch in Textfelder auslagern, die man über den Text der Seite legt. Dann könnte die Papiergröße beibehalten werden. Ob der Index-Manager mit Textfeldern etwas anfangen kann, muss noch untersucht werden.
verarbeitet wird.