====== Index-Manager ====== 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. ===== Startseite ===== 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. |{{:indexing:ind_man_startseite.png?600|}}| |**Bild 1:** Auf der Willkommen-Seite des Programms können die Dateien, die eingeladen werden sollen, angegeben werden. Sie bilden dann ein "Projekt". Man startet also immer ein bestimmtes Projekt, wenn man an einem Index arbeiten möchte.| \\ ===== Oberfläche ===== 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. |{{:indexing:ind_man_oberflaeche.png?1000|}}| |**Bild 2:** Oberfläche des Index-Managers.| |Oben (quer): das **Editieren-Fenster**. Es ist zweigeteilt; links stehen die Begriffe, die man zum Editieren ausgewählt hat, rechts ist die Vorschau auf die Änderungen zu sehen, die man per Suchen/Ersetzen herbeiführen kann; ersetzt wird erst, wenn die Schaltfläche "Setzen" (rechts oben) gewählt wird.| |Links Mitte: das **Register-Fenster**. Es zeigt eine Vorschau auf das formatierte Register mit Nestern und Einzügen für die Untereinträge. Hier werden die Einträge standardmäßig in alphabetischer Reihenfolge gezeigt. Einfluss auf die Reihenfolge lässt sich nur über eine Bearbeitung im Index-Fenster oder im Editier-Fenster nehmen. Kleine Veränderungen an den Einträgen können im Register-Fenster ebenfalls vorgenommen werden.| |Links unten: das **Index-Fenster** oder genauer: die **Index-Liste** oder die **Index-Tabelle**. Angezeigt wird entweder die gesamte Liste aller Einträge oder man trifft eine Auswahl über die Filterfunktion (hier: Acetamid). Welche Spalten angezeigt werden, kann ausgewählt werden. Die Anzeige lässt sich darüber hinaus auf einfache Weise (durch Klick auf einen Spaltentitel) umsortieren. Das Fenster dient in erster Linie zum Bearbeiten einzelner Einträge, wobei auch Scripts zum Einsatz kommen können.| |Rechts: das **Dokumenttext-Fenster ("Text")**. Es zeigt den Inhalt des Dokuments. Zu sehen sind auch die eingebetteten **Indexmarken**: grün hinterlegter Text in spitzen Klammern.| \\ Die Anordnung der Fenster lässt sich durch einfaches Verschieben und Größer- oder Kleinerziehen den eigenen Vorstellungen anpassen. ===== Erstellen eines Indexeintrags ===== 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. |{{:indexing:ind_man_eintrag_erstellen.png?500|}}| |**Bild 3:** Erstellung eines Eintrags. Das Wort wird per Doppelklick ausgewählt und ist sofort im Eintragsfeld der Erstellen-Zeile (oben) zu sehen. Die 1 davor (im Kästchen auf blauem Grund) gibt an, dass es sich um ein Hauptthema handelt. Hätte man vor dem Auswählen des Wortes in das Feld mit der 2 davor geklickt gehabt, würde es im Unterthema-Feld landen. Entsprechendes gilt für das Unterunterthema-Feld (3). Alle drei Felder lassen sich editieren.| |Betätigen von "Erstellen" führt dazu, dass der komplette Eintrag ins Register aufgenommen wird.| \\ ===== Verschieben eines Indexeintrags ===== |{{:indexing:ind_man_eintrag_verschieben.png?1000|}}| |**Bild 4:** Ein Eintrag wird verschoben, indem man ihn im Textfenster doppelklickt, womit er im Eintragsfeld der Erstellen-Zeiel zu sehen ist. Nun wird das Ankersymbol (rechts) ausgewählt, anschließend wird die Ziel-Textstelle markiert und der Button "Aktualisiere" gedrückt.| ===== Double Posting ===== Double Posting ist auf zwei Weisen möglich: *Wenn der Eintrag in der **Index-Liste** enthalten ist: **rechtsklicken auf Eintrag** und **"Duplizieren" wählen**; anschließend kann der duplizierte Eintrag wie gewünscht bearbeitet werden *Während des **Erstellungsprozesses** ist der Eintrag noch kein Teil der Index-Liste; dann einfach den Eintrag zweimal erstellen: *Text per Doppelklick markieren und "Erstellen" wählen -> führt zur ersten Variante des Eintrags *Text erneut per Doppelklick markieren, wie gewünscht bearbeiten und erst dann "Erstellen" wählen -> führt zur zweiten Variante des Eintrags. 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. ===== Verschieben von Teil eines Feldinhalts in nächste Ebene ===== zwei Fälle: *a) in nächster Ebene ist kein Inhalt vorhanden. * Inhalt der ersten Ebene kann z. B. markiert, ausgeschnitten und in nächster Ebene eingefügt werden (siehe auch unten: MakroExpress-Makros) * zweite Möglichkeit: einfach zwischen den beiden Teilen des Inhalts der ersten Ebene das **Pipe-Symbol |** einfügen und mit ''Enter'' bestätigen *b) in nächster Ebene ist bereits Inhalts vorhanden, der erhalten werden soll, das heißt, es geht darum, diesen Inhalt gleichzeitig in die übernächste Ebene zu verschieben * mit Markieren und Ausschneiden kommt man nicht weiter, weil es nicht möglich ist, in der nächsten Ebene zunächst Platz zu machen, also deren Inhalt in die übernächste Ebene zu verschieben; Index-Manager lässt keine leeren Felder zu! Das heißt, die "Lücke" würde sofort wieder geschlossen werden. * Es bleibt nur das Einfügen des Pipe-Symbols. Hier zeigt sich die Stärke von Index-Manager: Die Verschiebung in **beide** nächsten Ebenen findet sofort statt, es geht kein Inhalt verloren. |ABC 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 ===== Löschen von Einträgen ist auf zwei Weisen möglich: *Wenn der Eintrag in der **Index-Liste** enthalten ist: Eintrag markieren (es könne auch mehrere gleichzeitig markiert werden) und **"Entfernen"-Taste** drücken *Während des **Erstellungsprozesses** ist der Eintrag noch kein Teil der Index-Liste; dann **Eintrag im Dokumenttext doppelklicken**, sodass er in der "Erstellen"-Zeile (mit den drei Teilfeldern für 1., 2. und 3. Ebene) erscheint; jetzt alle **Teilfelder leeren** und **"Aktualisieren" wählen**. Im Dokumenttext sind jetzt spitze Klammern ohne Inhalt zu sehen, was nichts anderes bedeutet, als dass ein leerer Eintrag vorliegt; zu bedenken: es //liegt// ein Eintrag vor! Mit anderen Worten: Der Eintrag ist noch nicht wirklich gelöscht. Um die Löschung zu komplettieren, muss der leere Eintrag irgendwann (muss nicht sofort geschehen) in der Index-Liste entfernt werden. Dazu einfach im Filter-Feld der Liste //nichts// eingeben (bzw. vorhandenen Filtertext wegnehmen) und nach der Spalte "Eintrag" sortieren; möglicherweise muss zweimal auf den Titel der Spalte geklickt werden, damit alle leeren Einträge am Anfang der Liste stehen; nun gemeinsam markieren und löschen. 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. ===== Setzen/Ändern/Löschen einer Bereichsmarkierung in Word ===== {{:indexing:ind_man_bereichsfunktion.png?800|}} Ein Bereich wird gesetzt, indem man -einen vorhandenen Eintrag doppelklickt, -dann die Schaltfläche für den Bereichsanfang wählt, -dann das erste Wort des Bereichs markiert (es muss ein Wort im Text sein, nicht der Indexeintrag selbst!), -dann ans Ende des Bereichs geht, das letzte Wort markiert (Doppelklick) und die Schaltfläche für das Bereichsende wählt, -und dann auf die Schaltfläche "Aktualisieren" drückt. Um einen Bereich zu ändern, muss der vorhandene zuerst gelöscht werden: *Eintrag, zu dem eine Bereichsangabe gehört, auswählen. *Neben den Bereichswerkzeugen [, ] und [] wird das **Bereich-leeren-Werkzeug** hervorgehoben (Pinsel) und einige Informationen zum Bereich werden angezeigt *Nun das Bereich-leeren-Werkzeug anklicken: der Bereich ist entfernt, die Bereichsinformation ist ebenfalls verschwunden. *Jetzt kann ein neuer Bereich gesetzt werden (vgl. oben). ===== Setzen/Ändern/Löschen einer Bereichsangabe in InDesign ===== 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: *Aktuelle Seite *Bis nächsten Formatwechsel *Bis nächste Verwendung von Format *Bis zum Ende des Textabschnitts *Bis Dokumentende *Bis Abschnittsende *Für folgende Absatzanzahl *Für folgende Seitenanzahl Vorgehen: - vorhandenen Eintrag markieren - den gewünschten Bereich wählen (Pull-Dowm-Menü neben "Bereiche:") - auf Schaltfläche "Aktualisieren" klicken 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: - Eintrag markieren - im Pull-Down-Menü den Punkt "Seitenbereich unterdrücken" wählen - auf Schaltfläche "Aktualisieren" klicken. ===== Querverweise ===== *Querverweise werden in einem separaten Fenster, dem **Querverweise-Fenster** erfasst und verwaltet. *Es lassen sich Siehe- und Siehe-auch-Verweise bilden. *Nach dem "Hinzufügen" ist ein neuer Querverweis im Querverweise-Fenster zu sehen. *Blaue Textfarbe des Quellbegriffs bedeutet: Es liegen mehrere Untereinträge vor, daher sollte der Verweis zu einem Siehe-auch-Querverweis gemacht werden. *Rote Textfarbe des Zielbegriffs bedeutet: Dieser Eintrag existiert nicht. Oft hat man sich einfach nur vertippt. Falls der Fehler nicht korrigiert wird, kann es sein, dass der Querverweis beim Schließen des Programms gelöscht wird. Daher ist es ratsam, einen fehlenden Zieleintrag vor dem Schließen des Programms zu erstellen. *Um einen Querverweis bewusst zu löschen: Auf den Begriff in der Eintragsspalte klicken, dann **Entfernen-Taste**.\\ \\ ===== Filter ===== 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. |{{:indexing:ind_man_filter1.png?400|}}| |**Bild 5:** einfacher Suchstring | \\ |{{:indexing:ind_man_filter2.png?400|}}| |**Bild 6:** Mustersuche. Hier wird nach allen Einträgen gesucht, die mit einer Zahl beginnen (^ steht für "am Anfang" des Textes, also der Datenzeile; \d steht für: "digit"); damit das Programm weiß, dass nach einem Muster, also einer "regular expression" gesucht wird, ist per Maus das kleine "rx" am rechten Ende des Filterfeldes anzulicken.| \\ ===== Spezialsortierung ===== 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. \\ \\ ===== Spezielle Funktionen: Index-Aktionen ===== 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: |{{:indexing:ind_man_aufruf_aktionen-fenster.png?300|}}| |**Bild 7:** Auf des Index-Aktionen-Fensters| \\ Die nachfolgende Aktionen-Liste zeigt neben Default-Aktionen einige selbstangelegte Aktionen (wie die Sort-Funktionen): |{{:indexing:ind_man_index_aktionen.png?500|}}| |**Bild 8:** Liste von Aktionen| \\ 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: |{{:indexing:ind_man_aktionen-kontextmenue.png?400|}}| |**Bild 9:** Kontextmenü zu Aktionen| \\ Mit Aktionen können so gut wie alle Funktionen, die Stand-Alone-Programme bieten, nachgebaut werden. Einige Beispiele: ***Merge Levels Blank:** holt das Adjektiv des Unterthemas und fügt es vor dem Hauptthema ein (mit Blank dazwischen). ***Merge Levels Komma**: holt das Adjektiv des Unterthemas und fügt es hinter dem Hauptthema ein (mit Komma und Blank dazwischen). ***Split:** schneidet das Unterthema, das durch Komma getrennt nach einem Hauptthema steht, aus und fügt es als Unterthema ein, sodass nun ein Eintrag vorliegt, der aus zwei Ebenen besteht. ***Swap level:** vertauscht Haupt- und Unterthema ***Swap name:** vertauscht bei einem Eintrag aus zwei Wörtern erstes und zweites Wort und setzt ein Komma dazwischen (besonders sinnvoll bei Namen) ***Swap parenthesis:** vertauscht Text vor einer Klammer mit dem Text in Klammer (besonders sinnvoll, wenn man bei der Kombination aus ausgeschriebenem Begriff und Abkürzung in Klammern ein Double Posting vornimmt, bei dem die Reihenfolge umgekehrt sein soll, also erst Abkürzung und dann ausgeschriebener Begriff in Klammern). ***Sort2_zahl_zu_beginn:** bei Begriffen, die mit Zahlen-Strings beginnen (wie 2,4-Diaminoanisol) wird der Gesamtbegriff kopiert, dann wird wird ein Semikolon am Ende des Begriffs eingefügt und direkt danach kommt der Begriff //ohne// Zahlenstring davor, der Zahlenstring wird dahinter gesetzt (im Beispiel liegt dann also vor: 2,4-Diaminoanisol;Diaminoanisol2,4-). Siehe auch oben: Spezialsortierung. \\ Basis der Muster, die sowohl im Filter als auch bei Index-Aktionen verwendet werden, ist die RegEx-Syntax der Programmiersprache **Perl**. \\ ==== Regular expressions in 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. === Metacharacters === ^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). === Repetition === |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. === Special notations with \ === 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| === Character sets: specialities inside [...] === 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)| << ===== Formatierungen ===== ==== Seitenzahlen ==== **Word:** Dazu dienen die am oberen Rand des Textfensters angebotenen Formatierungsmöglichkeiten (F und/oder K). Vorgehen: - Eintrag auswählen (per Doppelklick), - Format fett, kursiv oder fett-kursiv auswählen. **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 ==== Formatierungscodes für Eintragstexte ==== === Kursiv und fett === Im Index-Manager können die **HTML-Auszeichnungscodes** für kursiv und fett verwendet werden: ^Code^Formatierung^ | und |**fett**| | und |//kursiv//| | und |**//fett-kursiv//**| Der zu formatierende Text wird einfach mit diesen Tags umgeben. *Um sich die Sache zu vereinfachen, können **MacroExpress-Makros** eingesetzt werden, z. B. |cv für kursiv und| |cv 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 und zu **//fettkursivem//** Text === Hoch und tief === Weitere Formatierungen (z.B. und 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. *Es bieten sich die Codierungen an, die auch von Cindex verwendet werden : ^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. *Auch hier können wieder **MacroExpress-Makros** eingesetzt werden: |c\dv\D für Tiefstellung und| |c\uv\U für Hochstellung| *Suchen/Ersetzen in Word: ^Suche nach^Ersetze durch^ |(\\d)([A-zßäöü0-9]*)(\\D)|\2 tiefgestellt| |(\\u)([A-zßäöü0-9]*)(\\U)|\2 hochgestellt| \\ ===== Weitere hilfreiche MacroExpress-Editier-Makros ===== Vorbemerkungen: *Alle MakroExpress-Makros müssen den **Scope "Global"** haben. *Tastenkürzel sind die, die innerhalb MacroExpress vergeben werden; aufpassen: sie dürfen nicht mit den Tastenkürzeln innerhalb des IndexManagers interferieren. \\ ^Aktion^Code^mögl. Tastenkürzel^Erläuterung^Achtung^ |markierten Text ausschneiden und in rechtes Feld verschieben |xv |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 |xv |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 |xv |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 |c;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|xv |Ctrl-Alt-Keypad 2 | hiermit wird die eigentliche Spezialsortierung eingestellt | | \\ ===== Querverweise: Anordnung am Ende eines Eintragsarrays ===== 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. ===== Querverweise: Besonderheiten beim Verwalten ===== ==== Import ==== *Eine separate Querverweisdatei wird anscheinend automatisch geleert, und die Einträge werden auf die Dokumentdateien verteilt. *Für **jede** Datei, in der der Ausgangsbegriff als Indexbegriff vorkommt, wird **eine Querverweisinstanz** erzeugt. *Auch wenn ein Querverweis nur einmal im Querverweise-Fenster zu sehen ist, existiert er also u. U. mehrmals. ==== Export ==== 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 ===== Export ===== ==== Syntax der XE-Felder ==== 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: *Zwischen Feldklammer und "XE" sowie dem zweiten Anführungszeichen und der abschließenden Feldklammer stehen //keine// Blanks, also {XE "abcd"} *Wird dagegen ein XE-Feld direkt in Word erzeugt so sind die Blanks vorhanden, also { XE "abcd" } Das führt dazu, dass VBA-Makros in Word, die man sich auf Basis der Word-eigenen Syntax angelegt hat, //nicht// laufen. *Davon betroffen sind beispielsweise alle Makros, in denen nach dem nächsten XE-Feld **gesucht** wird. Die Suche baut darauf auf, dass man nach einem Feld sucht (^d) und zusätzlich den Feldnamen in die Suche einschließt, also "XE". Das funktioniert aber nur, wenn vor dem XE ein Leerzeichen steht: Suche nach ''^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. ==== Schriftgröße der XE-Felder ==== 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. ===== Allgemeine Punkte im Zusammenhang mit dem Datenaustausch zwischen Index-Manager und Word ===== *Der Index-Manager kann XE-Felder, die in Word-Formel-Containern enthalten sind, nicht verarbeiten, also weder einladen noch schreiben. *Untersucht werden muss noch, wie der Inhalt von *Textfeldern *Positionsrahmen und *Steuerelementen verarbeitet wird.