Benutzer-Werkzeuge

Webseiten-Werkzeuge


indexing:cindex

Inhaltsverzeichnis

Cindex

Was Cindex fehlt: siehe Indexing Ideensammlung

Cindex hat verglichen mit Sky den großen Vorteil, dass

  • das Bearbeitungsfenster den Fokus auf einen bestimmten Datensatz setzt; dadurch können z.B. besser Daten per Makro aus anderen Programmen (wie Acrobat) übergeben werden
  • im Bearbeitungsfenster die „Wege“ zu bestimmten Aktionen sehr kurz sind (und damit schnell - per Maus - beschritten werden können): z.B. duplizieren, duplizieren+permutieren usw.
  • man sowohl direkt als auch über Codes nach Formatierungen suchen und die gefundenen Textstellen mit anderen Formaten belegen kann
  • Gruppen immer auf der Basis der per „Suchen“ selektierten Teilmenge gebildet und benannt werden können
  • nach allen Spalten/Feldern sortiert werden kann!

Allerdings gibt es auch Nachteile im Vergleich zu Sky:

  • der vielleicht wichtigste: Cindex fehlt der Befehl „Demote“, mit dessen Hilfe man einen Main Heading am Komma trennen und so einen Sub Heading erzeugen kann. Ist in Cindex nämlich einmal „Reconcile Headings“ gelaufen, ist alles zu spät (siehe unten)!

Cindex 4

Die Neuigkeiten in Cindex 4 werden auf der folgenden Seite genannt:

Erwähnenswert ist der Befehl „Demoting Headings“:

  • You can now easily gather a collection of disparate entries under a new common heading, without needing to edit entries individually.

Das heißt, einer markierten Gruppe von Einträgen kann auf einen Schlag ein neuer gemeinsamer Haupteintrag zugeordnet werden. Mit anderen Worten: Die Hauptthemen der markierten Einträge sind danach Unterthemen des neuen Eintrags. Das kann in bestimmten Situationen ein Vorteil sein, allerdings ließe sich der gleiche Effekt auch mit einem Makro erzielen. Schöner wäre es, wenn die markierten Einträge erhalten blieben und diese Einträge zunächst verdoppelt würden und dann die Unterordnung zum gemeinsamen neuen Haupteintrag nur bei den verdoppelten Einträgen greifen würde.

  • Anmerkung: „Demote Headings“ entspricht nicht dem Demote-Befehl, wie er in Sky eingebaut ist!

Zum neuen Split-Befehl siehe die Anmerkungen unten bei Reconcile Headings.

Es gibt Navigationsbefehle, die nur die Ansicht verändern, und andere, die gleichzeitig einen Record auswählen.

Ansicht verändernde Navigationsbefehle

  • Bild hoch/runter
  • Pos1/Ende

Wird einer dieser Befehle verwendet, so muss die Record-Auswahl separat geschehen: üblicherweise mit der Maus: Click auf Record.

Um einen Record per Tastatur auswählen zu können,

  • zunächst in die Draftview wechseln und dort die Record-Nummern anzeigen lassen (Menü <View - Show Numbers>)
  • dann einen Navigationsbefehl (z.B. Pos1/Ende) dadurch abschließen, dass per Strg-g (das ist der Go-to-Befehl) zur gewünschten und angezeigten Record-Nummer gegangen wird, also z.B. (Strg-g) - 1

Das Ganze funktioniert zwar auch in der Full-Format-View, aber dort sieht man die Record-Nummern nicht (man müsste sie sich also gemerkt haben).

Markierende Navigationsbefehle

  • Pfeil nach oben/unten (geht einen Record zurück/weiter)
  • Umsch-Pfeil nach oben/unten (erweitert die Selektion um einen Record nach oben/unten)
  • Tab (bringt markierten Record zur Ansicht, wenn man vorher die Ansicht per Bild hoch/runter oder Pos1/Ende oder von alphabetischer zu chronologischer Anordnung und umgekehrt gewechselt hat)
  • Umsch-Tab (markiert Record am oberen Rand des Bildschirms)
  • Esc (nimmt Markierung weg)
  • in alphabetischer Anordnung: Texteingabe (Cindex springt zum ersten Record, dessen Main-Feld mit dem eingetippten String beginnt und markiert den Record; also z.B. „b“ geht zum Anfang des B-Bereichs des Index und markiert den ersten B-Record)
  • Zahleneingabe (geht zur entsprechenden Record-Nummer und markiert den Record)
  • Strg-f (Suche), dann String eintippen und bestätigen (Cindex springt zum ersten Record, der in irgendeinem Feld [Main/Sub1/Sub2 … Page] den String enthält, und markiert den Record)
  • in numerischer/chronologischer Anordnung: per Strg-f die Suche aufrufen und Ziffer eintippen (Cindex springt zum ersten Record, der in irgendeinem Feld [Main/Sub1/Sub2 … Page] die Ziffer enthält und markiert den Record; Ziel: zum Record mit dem gewünschten Locator springen; klappt natürlich am besten, wenn nur im Page-Feld Zahlen vorkommen)

Cindex-Voreinstellungen (Preferences)

Damit Klammern um kursiv geschriebene Texte steil bleiben, muss unter Menü <Document-Style & Layout> das Häkchen bei „Adjust Punctuation - Around Styled Text“ weggenommen werden.

Ansonsten: siehe cindex_einstellungen.pdf

Zusammenführen mehrerer Cindex-Dateien

Das einfachste Verfahren besteht darin, in der zweiten Datei (also derjenigen, deren Inhalt übernommen werden soll) alles zu markieren (Select All), diese Auswahl zu kopieren (Copy) und in die erste Datei (in der alles zusammengeführt wird) einzufügen (Paste).

Der andere Weg ginge über Export (im dat-Format) und anschließenden Import.

Position von Querverweisen (für die Ausgabe als RTF-Datei)

Querverweise (Siehe- oder Siehe-auch-Verweise) können an verschiedenen Stellen stehen.

Während Siehe-Verweise normalerweise direkt auf einen Eintrag oder Untereintrag folgen (wie Seitenverweise), können Siehe-auch-Verweise an den folgenden Positionen stehen:

  • a) direkt hinter dem Array-Haupteintrag (also in derselben Zeile)
  • b) als erster Untereintrag hinter dem Array-Haupteintrag
  • c) als letzter Untereintrag (also am Ende des Arrays)

In deutschen Registern ist Position c (letzter Untereintrag) die übliche.

Wie bekommt man Position c in Cindex hin?

  1. „siehe auch“ für Cindex erkennbar machen: Im Befehl <Document - Reference Syntax> unter „Cross-References - Lead“ sämtliche englischen Ausdrücke löschen und „siehe auch“ eintragen
  2. Position bestimmen: Im Befehl <Document - Cross References> bei „See also..“ die Position auf „Last Subheading (always)“ stellen.

Textformatierungen wegnehmen oder hinzufügen

  • Auf Textformatierungen hat man direkt nur im Bearbeitungsfenster (also in der „Karteikarte“) Zugriff, indirekt über die Ersetzen-Funktion; was nicht geht: Man kann nicht einfach mehrere Einträge hintereinander markieren und ihnen dann eine Formatierung (Schrift, Schriftauszeichung) zuweisen.
  • Nach dem Einfügen von Inhalten aus einer PDF- oder Word-Datei tragen diese Textstrings die Formatierung des Quelldokuments (also z.B. h'fett oder kursiv). Um diese Formatierungen zu entfernen:
    • Text markieren, dann Strg-Shift-d (für „Default Font“) und Strg-t (für „Plain Text“)
    • Soll in vielen Einträgen eine bestimmte Formatierung (in immer demselben Feld oder überhaupt) entfernt werden, so geht das auf zweierlei Weise:
      • a) per „Replace“: Cindex hat mächtige Suche/Ersetze-Funktion; u.a. kann man im Suchen/Ersetzen-Fenster die Schaltfläche „Attributes“ aufklappen und bekommt alle in der Datei verwendeten Schriften angezeigt; eine davon im Suchen-Streifen wählen und im Ersetzen-Streifen bei Attributes die Schrift auf „Default“ einstellen
      • b) per Makro (kann aufgezeichnet werden) (s.u.)
  • Umgekehrt kann Text eine Formatierung zugewiesen werden, indem der Text markiert und dann im Bearbeitungsfenster „B“ (Fett) oder „I“ (kursiv) zugewiesen wird; geht auch per Tastenbefehle: Strg-b bzw. Strg-i.

Makros (bei Cindex 2)

Unter **Windows XP**

  • Über Menue <Tools - Record Events> und Auswahl eines der 10 möglichen Makro-Plätze wird die Aufzeichnung begonnen. Dabei am besten mit Tastenkürzeln arbeiten (also z.B. „Strg-Umschalt-Pfeil rechts“, um ein Wort zu markieren)
  • mit dem Befehl Strg-Untbr wird die Aufzeichnung beendet
  • Es erscheint ein Fenster, in dem der Makroname eingegeben werden kann. Unter diesem Namen steht das Makro dann in der Liste der 10 möglichen Makros.
  • Aufgerufen wird ein Makro
    • per Menue <Tools - Play Events> oder
    • indem die Kombination aus Alt-Taste und einer Nummer (von 1 bis 10) betätigt wird, also z.B. Alt-1

Unter **Windows 7**

Das Aufzeichnen scheint zwar zu funktionieren, aber die Events können nur aufgerufen werden, wenn man sich außerhalb des Eingabefensters befindet, also in der Listenansicht. D.h. aber, dass ein Eingabefenster-Makro nicht aufgerufen werden kann! Hier muss also komplett auf KeyboardExpress/MacroExpress zurückgegriffen werden.

Makros (bei Cindex 3)

mit dem Update auf Cindex 3.03 scheinen die Makroprobleme behoben zu sein! Zumindest klappt

  • die Vergabe von Makronamen und
  • das „Behalten“ von Makronamen über eine Sitzung hinaus.

Formatierung einer Seitenzahl per Makro (z.B. Fettauszeichnung)

  • Voraussetzung: man befindet sich im Bearbeiten-Fenster von Cindex (also in der Registerkarte)
  • nun Event aufzeichnen:
    • a)<Strg-Pfeiltaste nach unten> (dadurch gelangt man zum Page-Feld - unabhängig von der Anzahl der Felder darüber)
    • b)<Umsch-Ende> (dadurch wird das gesamte Page-Feld markiert)
    • c)<Strg-b> (für Fettmarkierung)
    • d)<Bild nach unten> (Datensatz wird gespeichert und es wird zum nächsten Datensatz gegangen; hier blinkt der Cursor am Anfang, d.h., man ist wieder in der Ausgangssituation angekommen)
    • e)<Strg-Unterbrechen> (Aufzeichnung des Events wird beendet) und Namen vergeben

Suchen aller Vorkommnisse eines markierten Textstrings

Matchen eines markierten Textstrings durch Aufzeichnen des folgenden Events:

<Strg-c>-esc-<Strg-f>-<Strg-v>-<Alt-a>

Danach <Strg-Untbr> und Makro-Namen vergeben.

Abkürzungen (Abbreviations)

Zwei Möglichkeiten, neue Abkürzungen zu erzeugen:

  1. ausgeschriebenes Wort im Index markieren und dann Menü <Edit - New Abbreviation>; es geht ein kleines Fenster auf, in dem die Abkürzung eingetragen werden kann, nach OK landet man im Abbreviations-File und sieht neben der Abkürzung die ausgeschriebene Variante; zusätzlich sieht man die dort evtl. schon vorhandenen anderen Abkürzungen
  2. gleich den abbreviations-File öffnen und dort an der Stelle, an der man die Abkürzung eingeben möchte, die CR-Taste drücken; daraufhin erscheint ein hervorgehobenes Feld mit dem hinterlegten Text „NEW“; dort einfach lostippen; per Tab-Taste in das danebenliegende Feld gehen und die ausgeschriebene Variante eintippen

Verwenden einer Abkürzung im Editierfenster: einfach Abkürzung eintippen, dann Leertaste, und schon erscheint der zur Abkürzung gehörende ausgeschriebene Begriff.

Feature-based Indexing

In Cindex gibt es zwei Möglichkeiten, Merkmale mitzuführen:

a) über Labels (von 1 bis 10), die am besten per Tastenkürzel (Ctrl-Shift-#) vergeben werden

b) mithilfe versteckter und nicht mitsortierter Text-Strings, am besten im Page-Feld (nicht im „special last subhead“-Feld oder einem anderen Feld!).
Codes in Cindex:

  • < > für Buchstaben, die zwar ausgegegen, aber nicht mitsortiert werden
  • { } für Buchstaben, die zwar mitsortiert, aber nicht ausgegeben werden


Index-Merkmale sollen nicht ausgegeben und (in der Regel) auch nicht sortiert werden, also müssen sie mit beiden Codes versehen werden. Das sollte in FileMaker oder Excel gleich beim Export geschehen. Bsp.: <{ü1}> oder <{t}>

Achtung: Labels lassen sich zwar suchen, und die gefundene Untermenge lässt sich in einer Gruppe festhalten, aber Labels können nicht als Tags ausgegeben werden. D.h. wenn die Information über die Labels in einem anderen Programm benötigt wird, so muss zuerst eine entsprechende Gruppe in Cindex gebildet werden, dann muss ein Feld (z.B. der Beginn des Page-Feldes oder das „special last subhead“-Feld) mit einem Code gefüllt werden, der anschließend ausgegeben werden kann (Füllen evtl. per Makro!). Genauso beim Import: Nach dem Import nach einem bestimmten Code suchen und der so entstandenen Gruppe das gewünschte Label zuweisen.

Achtung: Wenn mit versteckten und nicht mitsortierten Text-Strings im Notizen-Feld, also dem Vorlocator-Feld (s.u.) oder „special last subhead“-Feld, gearbeitet wird, dann dafür sorgen, dass dieses Feld in allen Datensätzen mit irgendetwas (z.B. auch Dummy-Text) gefüllt wird. Sonst kann es passieren, dass Cindex bei der Ausgabe des Registers die evtl. vorhandene Lücke (z.B. Sub 2 leer) schließt, indem es den Inhalt des über Lücke stehenden Sub-Feldes (z.B. Sub 1) in das Notizen-Feld schiebt. Denn dieses hat als Charakteristikum, immer vorhanden sein zu müssen. Der so verschobene Text wird mit ausgegeben, aber

  • nicht richtig sortiert (weil die Sortierung des Notizen-Feldes üblicherweise ausgeschaltet ist - s.o.)
  • erhält den falschen Einzug, nämlich den des Feldes auf der 3. oder 4. Ebene; es dürfte aber nur der Einzug für das Feld auf der ursprünglichen Ebene (z.B. 2. Ebene für Sub 1) sein!

Mit dem Page-Feld klappt das Feature-Based Indexing aber hervorragend. QuIndex ist inzwischen darauf eingestellt, die Merkmale im Page-Feld an Cindex zu übergeben.

Record Structure

minimale Zahl der Felder

Die minimale Zahl der Felder sollte immer auf 2 stehen (Standard). Ist Min: = 3 (oder höher), sind immer mindestens Main, Sub1 und Page vorhanden; wenn dann das Sub1-Feld wie üblich als Feld für Unterthemen verwendet wird, klappt weder das Zusammenführen von Sub1 und Main (beim Editieren eine der häufigen Aktionen) noch das Reconciling (weil dann Sub1 nicht mehr hochgezogen wird). Ein Minimum von 3 Feldern hat nur Sinn, wenn mit einem Vorlocator-Feld (Notizen-Feld; „special-last subhead“-Feld) gearbeitet wird.

Weitere Eigenschaften des Vorlocator-Feldes (Notizen-Felds; "special-last subhead"-Felds)

  • Das Vorlocator-Feld wird mit dem Punkt „Subhead Preceding Locator is Required“ eingestellt (bis zu Cindex 2 hieß das Feld „special-last subhead“-Feld). Das Häkchen lässt sich nur setzen, wenn die minimale Zahl der Felder auf 3 (oder höher) eingestellt ist. In das Vorlocator-Feld sollten keine begrifflichen Inhalte, sondern nur Metainhalte aufgenommen werden, also z. B. Kommentare oder Merkmale, denn auf dieses Feld können bestimme Editieraktionen nicht angewendet werden (s.o.). Man kann Cindex so einstellen, dass der Inhalt dieses Feldes weder mitsortiert noch mitausgegeben wird (Punkt „Ignore Lowest Subheading“ auf Registerkarte „Fields“ unter Menü <Tools - Sort> bzw. Punkt „Suppress“ unter Menü <Document – Headings>); allerdings kann es passieren, dass Cindex dann bei „Find All“ abstürzt! (Also unbedingt vor solchen Suchaktionen beide Häkchen, insbesondere das bei „Suppress“, wegnehmen.)
  • Achtung: Auf keinen Fall bei einem vorhandenen Register nachträglich das Vorlocator-Feld einstellen, denn dann wandern sämtliche vorhandenen Untereinträge in dieses Feld; sie können dann nicht mehr wie gewünscht bearbeitet werden (s.o.)! Sie aus diesem Feld herauszuholen und in die richtigen Felder hineinzubekommen, ist mühselig.
  • Allerdings wäre es möglich, nach Verschieben aller Inhalte des Vorlocator-Feldes um eine Ebene nach oben, in das nun leere Vorlocator-Feld z. B. Laufnummern der Einträge entsprechend der Reihenfolge ihres Auftretens auf der jeweiligen Seite einzutragen. Vor dem Verschieben der Inhalte sollte nach Seitenzahlen sortiert worden sein. Sind alle Laufnummern vergeben, wird im Sort-Befehl folgende Feld-Sortierreihenfolge eingestellt: Page – Vorlocator-Feld – Main. Das führt in der Tat zu einer fast perfekten chronologischen Sortierung.
  • Eine unschöne Eigenschaft des Vorlocator-Feldes ist, dass sein Platz von Record zu Record wechselt. Es bleibt zwar immer das Feld vor dem Locator, aber in einem Record kann es das Feld direkt nach Main sein, im nächsten das nach Sub1 usw. – je nachdem, wie viele Ebenen ein Eintrag hat.
  • Das Vorlacotor-Feld setzt voraus, dass die Zahl der Felder im Befehl Record Structure auf mindestens 3 eingestellt wird. Das heißt, in jedem Datensatz existiert dann ein Sub3-Feld, egal ob Sub1 und Sub2 belegt sind oder nicht. Als Konsequenz davon ist kein Reconcile Headings mehr möglich! Das wiederum bedeutet, dass die Metadaten-Information während der Bearbeitung des Index genutzt werden kann, man aber vor der Ausgabe des Index das Vorlocator-Feld löschen muss, um das übliche Reconciling durchführen zu können.
  • Dem Vorlocator-Feld sollte ein besonderer Name gegeben werden (z. B. K für „Kommentar“ oder M für „Merkmal“).

Aktionen auf einzelne Felder/Spalten beschränken

In Cindex geht alles über die Funktion „Find/Replace“ in Kombination mit der Muster-Suche und der Einschränkung auf das jeweilige Feld. Man kann direkt im Suchen/Ersetzen-Fenster angeben, auf welches Feld die Aktion wirken soll. Gut ist auch, dass nach Attributen (kursiv, fett usw.) gesucht werden kann und der gefundene Text (Pattern \&) mit anderen Attributen versehen werden kann.

Gruppieren/Filtern

Dies geht über die Funktion „Find/Replace“ in Kombination mit der Gruppierungsfunktion. Gruppen werden einfach gebildet, indem man nach bestimmten Textstrings (oder Mustern) sucht; die Suche findet standardmäßig überall („all“) statt, man kann sie aber auch bestimmte Felder einschränken. Wählt man „Find all“, wird in allen Datensätzen gesucht und die Teilmenge (=Gruppe) an Datensätzen, auf die die Suche zutrifft, wird präsentiert.

Anschließend kann dieser Teilmenge per

  • Menü <File - Save Group>

ein Gruppenname zugewiesen. Unter diesem Namen kann die Selektion jederzeit wieder aufgerufen werden.

Zum Anzeigen aller Datensätze: Menü <View - All records> (oder Strg-m)

Bitte beachten: Anders als im Handbuch beschrieben, befindet sich der Gruppierungsbefehl nicht im Menü <Edit>, sondern im Menü <File>!

Spezielle Gruppen

  • alle Einträge mit Subhead:

Mustersuche: nach [:l:]+; Beschränkung auf Sub1; [:l:] sucht nach allen Buchstaben aus dem Set „Letter“, also nach allen Wörtern

  • alle Einträge ohne Subhead:

Mustersuche: Not [:l:]+; Beschränkung auf Sub1; das „Not“ erreicht man einfach durch Setzen der Checkmarke vor dem Suchen-Feld

Aktionen auf bestimmte Datensätze beschränken

Zunächst Gruppieren/Filtern, dann Aktion wählen (z.b. Suchen/ersetzen) und dabei angeben, dass sie nur auf die gewählten Datensätze wirken soll.

Sortieren

Auch beim Sortieren können die Felder gewählt werden! Dazu in <Tools - Sort> gehen und im daraufhin sich öffnenden Fenster unter „Fields“ einstellen,

  • welches Feld wo in der Sortierordnung stehen soll
  • welches Feld überhaupt beim Sorieren berücksichtigt (bzw. welches ausgeschlossen) werden soll.

In Cindex kann auf diese Weise z.B. nach „Sub1“ sortiert werden! Das funktioniert in Sky nicht!

Einzelheiten sind im Handbuch nachzulesen.

Achtung: der Ausschluss vom Sortieren per <…> funktioniert nur, wenn bewusst eine bestimte Art der Sortierung gewählt wird, also z.B. letter-by-letter oder word-by-word; in der Einstellung „Standardsortierung“ greift das „Hiding“ nicht!

Außerdem beachten: sort hidden text per {…} geht nicht mit Zahlen! Eine manuelle Sondersortierung dieser Art lässt sich nur mit Buchstaben vornehmen.

Expand-Funktion

Damit können Seitenverweise, die durch Komma voneinander getrennt sind, auf separate Datensätze verteilt werden, sodass ein Sortieren nach Seitenzahl möglich wird. Cindex ergänzt in den neuen Datensätzen automatisch alle benötigten Daten (wie Hauptthema, Unterthema usw.). Wichtig: Dadurch erübrigt sich bei Konvertierungen über Excel das Auffüllen der Daten in Excel.

Dass die Zahl der Datensätze bei Ausführung dieses Befehls zunimmt, ist eigentlich klar. Man sollte davon also nicht überrascht sein.

Seitenzahlen nachführen

Gründe für das Nachführen:

  • während der Indexerstellung ändert sich der Umbruch
  • Einträge der Vorauflage bleiben erhalten, aber alle Seitenzahlen ändern sich, und zwar nicht systematisch um einen bestimmten Wert, sondern kreuz und quer

Sehr guter Lösungsvorschlag von Mary Sullivan (14.11.23):

„What a lot of users do is simply use the Alter tool to change all of their page numbers by a large round number (a factor of 1000 perhaps). Then you can easily see where the entry referenced in the original edition and edit as necessary. This also eliminates the chance of “hangers on” – those little seemingly obscure entries (when taken out of context) that would be left with no page numbers.

So, for example, if your original book only had 350 pages and you alter all of the page numbers by a value of 1000, you can easily still search for the page number. When you’re finished, you then search for any page numbers that have a value of more than 1000 to catch any that you didn’t change.

Or, you can simply Label all of the records in your index and remove the label as you address them.“

Reconcile Headings

Hierbei handelt es sich um einen der am wenigsten verständlichen Befehle überhaupt. Er wirkt sich nämlich in zwei auf den ersten Blick gegensätzlichen Richtungen aus:

  • Einerseits löst er „verwaiste“ Untereinträge („orphaned subheadings“) auf, indem diese zum Hauptthema hochgezogen und durch ein Komma von ihm getrennt werden, das heißt, Unterthemen werden zu Modifiern.
  • Andrerseits verschiebt er Modifier in das Sub1-Feld, falls es Datensätze mit demselben Hauptthema und einem anderen Unterthema gibt.

Beispiele:

Main: Aflatoxine
  Sub1: Herkunft und Wirkung 56

wird durch Reconciling zu

Main: Aflatoxine, Herkunft und Wirkung 56

Aus

Main: Aflatoxine
  Sub1: Charakterisierung 562
Main: Aflatoxine, Herkunft und Wirkung 56

oder

Main: Aflatoxine, Charakterisierung 562
Main: Aflatoxine, Herkunft und Wirkung 56

wird durch Reconciling

Main: Aflatoxine
  Sub1: Charakterisierung 562
Main: Aflatoxine
  Sub1: Herkunft und Wirkung 56

Während die Auflösung von verwaisten Untereinträgen sofort einsichtig ist, überrascht es, dass ein und derselbe Befehl auch das Gegenteil bewirken kann. Die Entwickler haben hier aber wohl ein Gesamtproblem gesehen und wollten es mit einem einzigen Befehl lösen: Weder verwaiste Untereinträge noch eine Kombination aus Modifier und separatem Untereintrag dürfen in einem Register auftreten und sollen daher per Reconciling korrigiert werden.

Man muss sich klar machen, welches Potenzial in diesem Befehl steckt. Man kann jederzeit neue Einträge aufnehmen und muss nicht von vornherein darauf achten, ob man mit separaten Unterthemen arbeitet oder mit Modifiern. Cindex erkennt bei Ausführung des Befehls Reconciling automatisch die Gleichheit der Hauptthemen und erzeugt ein sauberes Array, in dem alle Unterthemen in einem eigenen Sub1-Feld stehen. Es ist nicht nötig, Einträge mit Modifiern nachträglich von Hand zu ändern!

Zerschlagung der Feldstruktur und "Preserve Modified Headings"

Das Reconciling kann, wenn man nicht aufpasst, die Feldstruktur zerschlagen!

Es kann nämlich den Fall geben, bei dem im Main-Feld ein Modifier (durch Komma vom Hauptthmea getrenntes Unterthema) steht, und dieser Haupteintrag mehrere Untereinträge hat, also z. B.

Main: Verzehrsstudie, nationale 507
Main: Verzehrsstudie, nationale
  Sub1: Nahrungsergänzungsmittel 579
Main: Verzehrsstudie, nationale
  Sub1: Proteinaufnahme 18

Das kann bei großen Themen, die zu Gruppen angeordnet sind, wichtig sein. Durch diese Gruppierung wird eine Index-Stufe eingespart!

Passt man nicht auf, werden solche Arrays, die ein Hauptthema mit Modifier haben, so verändert, dass der Modifier als Unterthema im Sub1-Feld landet. Danach ist aber die Zuordnung der ursprünglich vorhanden UTs zum HT nicht mehr gegeben! Um das zu verhindern, sollte unbedingt die Checkmarke bei „Preserve Modified Headings“ gesetzt werden. Ist das Häkchen gesetzt, lässt Cindex beim Reconciling alle diejenigen Einträge unverändert, bei denen Unterthemen als Modifier im Mainheading-Feld auftreten. D.h., ein Komma im Mainheading-Feld bleibt erhalten.

Wie können bei allen Einträgen, die einen Modifier, aber keine Untereinträge haben, die Modifier in das Sub1-Feld verschoben werden?

Möchte man bei einem einzelnen Eintrag den Modifier in das Sub1-Feld bringen, geht man einfach in das Bearbeitungsfester, klickt vor das Komma, löscht es zusammen mit dem Leerzeichen und betätigt die Enter-Taste. Das entspricht dem Demote-Befehl in Sky.

Möchte man dieses Demoten in allen weiteren Einträgen ausführen, die einen Modifier, aber keine Untereinträge haben, so gibt es dafür in Cindex keinen direkten Befehl.

  • Der Wunsch liegt auf der Hand, einen „Field Break“ per Suchen/Ersetzen zu erzeugen: Suche nach Komma+Blank, ersetze durch Field Break. Doch das ist leider selbst in der aktuellen Version 4.2 (2023) nicht möglich! Nach Auskunft von Maria A. Sullivan steht dieser Wunsch auf der Liste der Punkte, die verbessert werden sollen.

Das Problem kann aber auf andere Weise relativ einfach gelöst werden (aus Mail von Maria A. Sullivan vom 6.12.23):

  1. Die betroffenen Datensätze werden selektiert und mit einem Label versehen.
  2. Nun werden sie alle markiert, kopiert und in eine neue Cindex-Datei eingefügt.
  3. Hier wird per Suchen/Ersetzen vor den Modifier (also hinter Komma+Leerzeichen) ein Dummy-String wie xxx eingefügt. Zum Beispiel wird dabei aus
    • Main: Cats, domestic
    • Main: Cats, xxxdomestic.
    • Das geschieht bei allen Datensätzen in der zweiten Cindex-Datei.
  4. Alle auf diese Weise veränderten Datensätze werden kopiert und in die Ausgangs-Cindex-Datei eingefügt.
  5. Nun gibt es hier zu jedem Hauptthema zwei Datensätze. Lässt man jetzt das Reconciling laufen, werden automatisch alle Modifier in das Sub1-Feld verschoben.
  6. Zum Schluss werden die Datensätze mit xxx im Sub1-Feld selektiert und gelöscht. Übrig bleiben die gelabelten Ausgangsdatensätze, bei denen jetzt aber kein Modifier im Main-Feld mehr vorliegt, sondern ein separates (wenn man so will „verwaistes“) Unterthema, im obigen Beispiel also:
    • Main: Cats
    • Sub1: domestic
  7. Das Ziel ist erreicht.

Export und Rückimport

Ein anderer Weg wäre der über den Export der selektierten Einträge im Tab-Delimited-Format (txt-datei). Die Einträge können dann in ein Textverabeitungsprogramm eingefügt und hier per Suchen/Ersetzen so aufbereitet werden, dass die Modifier zu Untereinträgen werden, und zwar einfach, indem die Kombination aus Komma+Leerzeichen durch einen Tabulator ersetzt wird. Danach wird diese txt-Datei wieder importiert. Eventuell ursprünglich vorhandene Formatierungen (die beim Export verloren gehen) müssen nachgepflegt werden.

Dieser Weg ist durchaus eine gute Alternative.

Wirkung von "Protect Names"

Im Fenster „Reconcile Headings“ ist standardmäßig „Protect Names“ vorgewählt. Das bewirkt, dass alle Datensaätzen, bei denen es um Namen geht, vom Reconciling ausgeschlossen werden. Das heißt, Modifier bleiben Modifier, es erfolgt keine Verschiebung in das Sub1-Feld. Beispiel:

Müller, Emil

wird nicht zu

Müller
  Emil

Man sollte sich also nicht wundern, wenn das Reconciling bei einigen Datensätzen (nämlich solchen, die keine Namen sind) funktioniert, bei anderen nicht. Möchte man, dass alle Datensätze gleich behandelt werden, muss das Häkchen bei „Protect Names“ weggenommen werden.

Grund für das Nichtfunktionieren von Reconcile Headings

Sollte Reconcile Headings nicht zum gewünschten Ergebnis führen, liegt das sehr wahrscheinlich daran, dass in der Record Structure (s.o.) die minimale Zahl der Felder auf 3 oder höher eingestellt ist. Denn z.B. bei 3 müssen immer Main, Sub 1 und Page vorhanden sein, was aber nichts anders bedeutet, als dass der Inhalt von Sub1 nicht zu Main hochgezogen werden kann, d.h., die orphanned Subheadings können nicht aufgelöst werden! M.a.W.: Damit das Reconciling funktioniert, muss die minimale Zahl der Felder 2 betragen.

Versuch, ein Demoten per Suchen/Ersetzen hinzubekommen

Eine Möglichkeit besteht in einem komplexen Suchen/Ersetzen-Lauf, der die Daten so aufbereitet, dass anschließend ein Makro aufgezeichnet werden kann, das genau am Komma einen Field Break erzeugt. Das Problem besteht darin, dass man im Bearbeitenfenster nicht nach einem Komma suchen kann; um trotzdem genau zum Komma zu kommen, müssen alle Blanks - außer dem Blank hinter dem Komma - durch andere Zeichen ersetzt werden. Ziel: aus eventuell mehreren im Main Heading vorhandenen Wörtern ein einziges Wort machen, so dass der Befehl <Strg><Pfeil nach rechts> genau zum Komma springt.

Welche Suchen-Ersetzen-Läufe braucht man?

  1. Suche nach „, “ (also Komma und Blank), ersetze durch „,#“ (also Komma und Gartenzaun)
  2. Suche nach „ “ (Blank), ersetze durch „zzz“ (wird ein sonderzeichen anstelle von „zzz“ genommen, so fasst Cindex dieses ebenfalls als Worttrenner auf, springt also bei <Strg><Pfeil nach rechts> nur bis zu diesem Zeichen, aber nicht bis zum Komma)
  3. Suche nach „,#“, ersetze durch „, “ (dieser Suchen/Ersetzen-Lauf könnte aber auch entfallen)

Ein Test zeigt: Tatsächlich springt der Cursor nun per <Strg><Pfeil nach rechts> genau zum Komma. Das „Event“, das aufgezeichnet wird, besteht aus folgenden Teilen:

  1. Suche nach „,“ (oder „, “ oder „,#“), danach <Esc> (der nächste passende Datensatz wird gefunden und das Suchen-Fenster wird verlassen)
  2. <Enter> (dadurch wird das Bearbeitenfenster aktiviert, der Cursor blinkt am Anfang des Main Headings)
  3. <Strg><Pfeil nach rechts> (danach steht der Cursor genau vor dem Komma)
  4. <CR> (dadurch wird der „Field Break“ eingeführt, d.h. das Komma und alles, was danach steht, wird in das neu erzeigte Subheading-Feld befördert)
  5. <Umschalt><Pfeil nach rechts><Pfeil nach rechts><del> (dadurch werden Komma und nachfolgender Blank entfernt
  6. <Bild nach unten> (die Änderung wird gesichert.

Unter Windows 7 muss anschließend noch ein MacroExpress-Makro erzeugt werden, dass den Event in Cindex aufruft.

Nachdem alles gelaufen ist, müsste per Suchen/Ersetzen aus dem „zzz“ wieder ein Blank erzeugt werden

Manage Cross References

Standardmäßig steht „Manage Cross References“ auf „Convert to Fully Qualified Entries…„.

Auch diesen Befehl nur mit Bedacht anwenden! Er macht aus Siehe-Verweisen Seitenverweise, und zwar immer dann, wenn das Verweisziel eine bestimmte (angebbare) Zahl von Untereinträgen unterschreitet. Die Idee ist zwar im Prinzip nicht schlecht, aber der Befehl läuft rein schematisch ab, und später sieht man u.U., dass in dem einen oder anderen Fall aus didaktischen Gründen besser der Siehe-Verweis stehen geblieben wäre. Da der Befehl nicht rückgängig gemacht werden kann, empfiehlt es sich, vor dem Auslösen eine Backup-Kopie der Datei anzulegen. Ansonsten muss der betreffende Siehe-Verweis halt von Hand wieder erzeugt werden (auch nicht so tragisch). Man sollte abwägen, was im jeweiligen Register aufwändiger ist: die automatische Umwandlung aller „überflüssigen“ Siehe-Verweise in Seitenzahlverweise und das manuelle Nachkorrigieren, oder umgekehrt: das Aufsuchen aller „überflüssigen“ Siehe-Verweise und einzelne Umwandeln in Einträge mit Seitenverweisen.

Zu „Generate from file“ siehe „Authority Files/kontrollierte Vokabulare“

Authority Files/kontrollierte Vokabulare

Mit „Generate from file“ im Menüpunkt <Tools - Manage Cross References> kann eine zweite Cindex-Datei, die entsprechend vorbereitet ist, als „Authority File“ verwendet werden in dem Sinne, dass deren Einträge als Verweise eingeladen werden.

Vorbereitung der Authority-Datei:

  • im Feld „Main“ den neuen Begriff eingeben
  • im ersten Feld, das danach angeboten wird (das kann „Sub1“ oder „Page“ sein) den Begriff eingeben, auf den verwiesen werden soll - aber ohne die Zusätze „see“ oder „see also“!; Dieser Begriff sollte mit einem im eigentlichen Index vorhandenen Haupteintrag identisch sein, damit Cindex beim Einladen erkennen kann, wie der Verweis zu setzen ist. Aufpassen, dass in allen Einträgen dasselbe Feld für die Aufnahme des Verweisziels verwendet wird!

Wenn man dann „Generate from File“ aufruft, gibt man diese Auhtority-Datei als Quelle an, Cindex importiert und baut automatisch die benötigten Zusätze „see“ und „see also“ ein.

Vorteile des Verfahrens:

  • man kann separat vom Hauptindex arbeiten
  • man muss die Zusätze „see“ und „see also“ nicht von Hand einbauen

Nachteil:

  • die Verweisziele müssen bekannt sein, sonst klappt es nicht; d.h., man muss eigentlich das komplette vorhandene Register haben, um die richtigen Verweisziele setzen zu können.

Immerhin kann man auf diese Weise ein bestehendes Register „aufmotzen“, indem man es mit Verweisen anreichert. Die Verweisquellen können dabei aus einem kontrollierten Vokabular stammen.

Allerdings lässt sich das nicht vergleichen mit einem Verfahren, bei dem Begriffe aus einem während des Indexerstellens zugänglichen kontrollierten Vokabular hinzugefügt werden. So sind wir teilweise beim Landolt-Börnstein-Index vorgegangen. Dort war das Hauptziel ebenfalls neue Verweise zu erzeugen, aber man konnte sich vom integriert zugänglichen Vokabular (z.B. PACS) inspirieren lassen. Das kontrollierte Vokabular lag außerdem in hierarchischer Anordnung, nicht in alphabetischer Anordnung, vor.

Cindex 3: Austausch mit anderen Programmen

1 Allgemeines

Bei Cindex 3 ist leider der Export von .dat-Dateien weggefallen, sodass es nicht mehr möglich ist, auf einfache Weise einen formatierten Austausch mit anderen Programmen vorzunehmen! Denn nur im .dat-Format sind a) alle Daten datenbanktauglich und b) die Formatierungscodes in einer Form vorhanden (vgl. Cindex 2), in der sie problemlos und schnell in RTF-Codes umgewandelt werden können.

2 Austausch zwischen Cindex 3 und Sky 7

  • geht am besten über das ixml-Format! Denn beide Programme können dieses Format erzeugen und lesen. Dabei werden auch alle Formatierungen übergeben

3 Formatierter Austausch mit QuIndex

Vorbemerkung

Ohne Formatierungen kann aus Cindex heraus einfach die Export-Methode a verwendet werden (siehe unten bei „4 Export“). Für den Import in Cindex muss in QuIndex lediglich dafür gesorgt werden, dass die Seitenzahlverweise sowie die Siehe- und Siehe-auch-Verweise in einem Feld zusammengefasst werden, das am besten wie in Cindex „Page“ genannt wird.

Offene Formatcodierungen

Wie unter „1 Allgemeines“ und „4 Export“ nachzulesen, ist es nicht mehr möglich, aus Cindex heraus direkt in einem datenbanktauglichen Format (Felder durch tab getrennt getrennt) zu exportieren, das neben dem Inhalt auch die Information zu den Formatierungen enthält. Der Export-Weg a (vgl. „4 Export“) kann aber so erweitert werden, dass auch Formatierungen mit übergeben werden.

Dazu ist lediglich eine kleine Vorbereitung in Cindex nötig: die Formatierungen müssen offengelegt werden. Das bedeutet, dass alle Formatierungen in Cindex durch offene Codes ersetzt werden. Dabei kommt die Mustersuche (siehe unten) zum Einsatz.

FormatierungSucheErsetze durchBemerkungen
fett (Buchstaben/Wörter) ([:l:]+) oder ([:ascii:]+), Attribute „Bold“ \\b\1\\B, Attribute Bold remove ([:l:]+) sucht nach Wörtern; Gruppenbildung: die runden Klammern bewirken, dass der gesuchte Text als Gruppe verstanden wird; beim Ersetzen wird die Gruppe 1 (mehr als eine Gruppe gibt es nicht) durch sich selbst ersetzt und dann noch ergänzt: links mit dem Code \b, rechts mit dem Code \B; wichtig: damit die Codes mit Backslash eingefügt werden, muss im Ersetzen-Streifen jeweils ein doppelter Backslash eingefügt werden, also \\b und \\B; nach Sonderzeichen muss getrennt gesucht wewrden (s.u.)
fett (Nummern) ([:n:][:n:][:n:]), dann ([:n:][:n:]), dann ([:n:]) bzw. für die zweite Zahl eines Bereichs: (-[:n:][:n:][:n:]), dann (-[:n:][:n:]), dann (-[:n:]), Attribute „Bold“ jeweils: \\b\1\\B, , Attribute Bold remove Test haben ergeben, dass besser nicht nach ([:n:]+) oder (-[:n:]+) gesucht wird, weil Cindex durcheinander gerät; die getrennte Suche nach 3-stelligen, 2-stelligen und 1-stelligen Nummern macht die Suche sicher; nach der zweiten Zahl einer Bereichsangabe muss getrennt gesucht werden: das ist der Ausdruck (-[:n:]) usw.; als Ersetze-Ausdruck kann immer derselbe genommen werden
Nummern 2\B\b- # Diese Ersetzung, die ohne RegEx vorgenommen wird, sorgt dafür, dass bei Bereichen nur ein Code am Anfang und Ende steht, weil der mittlere Code entfernt wird: außerdem wird der Bindestrich durch # ersetzt; das muss ein, damit man später in Excel die Möglichkeit zur Verteilung der Seitenzahlen auf zwei Spalten hat, wobei # als Feldtrenner dient; denn der Bindestrich kommt auch bei Querverweisen vor, würde deren Inhalt also ebenfalls auf mehrerer Spalten verteilen, wenn der Bindestrich als Feldtrenner genommen würde
kursiv ([:l:]+) oder ([:ascii:]+) oder ([:n:]+), Attribute „Italic“ \\i\1\\I, Attribute Italic remove
hochgestellt ([:l:]+) oder ([:ascii:]+) oder ([:n:]+), Attribute „Superscript“ \\u\1\\U, Attribute Superscript remove
tiefgestellt ([:l:]+) oder ([:ascii:]+) oder ([:n:]+), Attribute „Subscript“ \\d\1\\D, Attribute Subscript remove

Entsprechend kann mit den anderen möglichen Formatierungen verfahren werden.

Das Gute: Sonderzeichen werden automatisch richtig (also als Unicode-Zeichen) exportiert, weil beim Export „UTF-8“ gewählt werden kann. Falls das doch nicht klappt:

SonderzeichenSucheErsetze durchBemerkungen
Sonderzeichen (z.B. griechische Buchstaben) Sonderzeichen per Copy and Paste in Suche einfügen((als Wort geschriebenes Sonderzeichen))Bsp.: ((alpha))


<hi>Achtung: Beim Export aus Cindex als Delimited-Text (4 Felder) geht der Backslash veroren, daher besser anstelle des Backslash mit einem anderen Zeichen arbeiten, z.B. mit dem Paragraphenzeichen §.</hi>

Nach dem Import in QuIndex können die offenen Formatierungs-Codes einfach mitgeführt werden, d.h., sie brauchen nicht in RTF-Codes umgewandelt zu werden. Es ist in QuIndex im Prinzip egal, ob man mit offenen RTF-Codes oder mit offenen Cindex-Codes arbeitet.

Für den Export aus QuIndex mit dem Ziel, die Daten wieder in Cindex zu importieren, ist es sogar von Vorteil, wenn gleich Cindex-Codes mitübergeben werden können. Die aus QuIndex exportierte Datei hat die Endung .tab.

Für den Wiederimport in Cindex gibt es mehrere Optionen:

  • die Endung tab wird in txt umbenannt, und die Datei wird direkt importiert. Dabei landen die Formatierungs-Codes wieder offen in Cindex.
  • die Endung tab wird in dat umbenannt, und die Datei wird direkt importiert. Dabei werden die Codes direkt in die entsprechende Formatierung umgewandelt.

Solange man sich in der Erfassungs- und Bearbeitungsphase befindet, sollte man in Cindex am besten nur mit offen Formatierungscodes arbeiten. Denn dann ist jederzeit ohne zusätzlichen Aufwand ein Austausch mit QuIndex (oder mit Excel) möglich, ohne dass Formatierungsinformation verloren geht.

Um das Register zum Schluss aus Cindex formatiert als RTF-Datei ausgeben zu können, sind die offen Codes durch echte Formatierungen zu ersetzen. Dabei kommt wieder die Mustersuche zum Einsatz, nur jetzt in der umgekehrten Richtung.

FormatierungSucheErsetze durchBemerkungen
fett\b([:l:]+)\B \1, Attribute „Bold“

Die anderen Formatierungen gehen entsprechend.

Offene Spezialsortierungen

Ohne Mustersuche:

  • suche nach <, ersetze durch \<
  • suche nach >, ersetze durch \>
  • suche nach {, ersetze durch \{
  • suche nach }, ersetze durch \}

Sky 7 als "Vermittlungsprogramm"

Tests zeigen, dass folgende Wege beschritten werden können:
a)

  1. Export von Cindex 3 in das .arc-Format
  2. Import der .arc-Datei in Cindex 2
  3. Export von Cindex 2 in das .dat-Format
  4. Import der .dat-Datei in Sky 7

b)

  1. Export von Cindex 3 in das .ixml-Format
  2. Import der .ixml-Datei in Sky 7

Sowohl nach a als auch nach b:

  • Export von Sky 7 in „Delimited Text File“
    • delimiter: Tab
    • include field names: ja
    • enclose fields within quotes: nein
    • include formatting: ja

Es entsteht eine Tab-getrennte Textdatei (.txt), die direkt in QuIndex eingeladen werden kann! In QuIndex kann mit einem Script dafür gesorgt werden, dass

  • falls gewünscht die Formatierungscodes in RTF-Codes umgewandelt werden
  • die Seitenzahlen verteilt und die Querverweise in das siehe_siehe_auch-Feld geschrieben werden.

Besonderheiten von Sky:

  • Sky 7 hat gegenüber Cindex den Vorteil, dass beim Exportieren die Formatierung miteingeschlossen werden kann („include formatting“).
  • Aber Achtung: Sky scheint Probleme mit Unicode zu haben! Bei einem Test kamen alle griechischen Buchstaben nicht rüber!

4 Export

a) direkter Export in ein datenbanktaugliches Format: ohne Formatierungen, aber mit Unicode

Immerhin ist es möglich, aus Cindex direkt einen datenbanktauglichen Export hinzubekommen:

  • „Save As Delimited Records“, dabei unter „Options“ die Codierung (UTF-8) und die „Minimum Number of Fields“ wählen. Als Minimum Number bietet sich 4 an, weil dann Main, Sub1, Sub2 und Page exportiert werden; die Felder werden durch einen Tab voneinander getrennt.

b) direkter Export in ein datenbanktaugliches Format: mit allen Formatierungen, aber ohne Unicode

Hier bietet sich das Archiv-Format .arc an, das ebenfalls durch tab getrennte Felder erzeugt. Die Formatierungscodes heißen nun anders als beim alten dat-Format, und sie sollten, damit nichts schiefgeht, in einem Texteditor wie WordPad, NotePad oder dem Editor von SpeedCommander gesucht und ersetzt werden, denn nur dort sind sie als Codes zu erkennen; in Word sieht man nur noch Kästchen ohne Inhalt, die nicht gesucht werden können.

Bisher erkannte Codes:

CodeBedeutungErsetzen-Vorgang im Text-Editor
<SUB><STX>…<SUB>kursiv Eröffnungscode “<SUB><STX>“ durch „{\i “, Endcode „<SUB>“ durch „}“
<SUB><SOH>…<SUB>fett Eröffnungscode „<SUB><SOH>“ durch „{\b “, Endcode „<SUB>“ durch „}“
<DC3>…Kennzeichung des Datensatzendes; auf den Code folgt noch eine Nummer (z.B. 1330714764)„<DC3>“ durch „#„

In Word muss dann noch der Code am Ende eines Datensatzes entfernt werden, der nun aus dem Tag # und der nachfolgenden Zahl besteht. Suche nach “# ^#^#^#^#^#^#^#^#^#“, ersetze durch „“ (nichts).

Danach kann die Datei als txt-Datei abgespeichert werden. Da die einzelnen Felder durch tab getrennt sind, liegen in Excel gleich mehrere Spalten vor. Weitere Spalten können z.B. dadurch erzeugt werden, dass die Excel-Datenbankfunktion „Text in Spalten“ genutzt wird, mit der z.B. die Seitenzahlen von Von-bis-Angaben getrennt werden können.

Nachteil dieser Methode: u.U. kommen nicht alle Unicode-Zeichen rüber.

c) indirekter Export in ein datenbanktaugliches Format: mit Formatierungen und mit Unicode

Aus Cindex 3.0 heraus im Format „xml records“(.ixml)„ abspeichern.
Die dabei entstehende XML-Datei mit Word öffen, dann die folgenden Suchen/ersetzen-Läufe:

SucheErsetze durch
</field>^p^t^t
<field>((nichts))
<field class=“locator“>((nichts))
</field>((nichts))
</record>((nichts))

Dann Makro zum Entfernen der spitzen Klammern mit dem „record“-Tag:

Sub spitzeklammernweg()
'
' spitzeklammernweg Makro
'
Selection.Find.ClearFormatting
  With Selection.Find
      .Text = "<"
      .Replacement.Text = ""
      .Forward = True
      .Wrap = wdFindContinue
      .Format = False
      .MatchCase = False
      .MatchWholeWord = False
      .MatchWildcards = False
      .MatchSoundsLike = False
      .MatchAllWordForms = False
  End With
  While Selection.Find.Execute
      Selection.Extend
      Selection.Extend Character:=">"
      Selection.EscapeKey
      Selection.TypeBackspace
  Wend
  MsgBox "Alle Tags entfernt", vbOKOnly
End Sub

Jetzt noch folgende Suchen/Ersetzen-Läufe:

SucheErsetze durch
^p^p^p^p
^p^t^p

Nun ist die Datei in einem Zustand, der bei Cindex 2.0 durch einfaches Abspeichern im .dat-Format sofort erreicht wurde (bis auf den Unterschied, dass Cindex 3 Unicode kann und die Unicode-Zeichen auch in der obigen xml-Datei enthalten sind).

5 Import

Cindex 3 akzeptiert

  • .txt-Dateien (tab-getrennt)
  • .ixml-Dateien
  • .arc-Dateien und nach wie vor
  • .dat-Dateien

Alle diese Formate erlauben den Import von Formatierungen - vorausgesetzt, die Codes sind entsprechend eingerichtet.

Tests haben folgende Ergebnisse ergeben:

  • Die tab-getrennte txt-Datei (die man z.B. aus Excel heraus erzeugt hat) sollte nie direkt importiert werden, vielmehr sollte vorher immer die Dateiendung in .dat umgewandelt werden.
  • Falls die txt-Datei im Unicode-Format vorliegt, ist ein direkter Import in Cindex nicht möglich (es werden leere Datensätze erzeugt); das gilt auch, wenn die Dateiendung in .dat umgewandelt wird.
  • Am besten ist es, die txt-Datei mit Word zu öffnen und dann gleich wieder als .txt abzuspeichern; dabei kann die Codierung bewusst gewählt werden, und zwar sollte auf jeden Fall DOS gewählt werden!
    • Falls die Meldung kommt, einige Zeichen würden falsch konvertiert werden, so können diese Zeichen entweder im Vorfeld durch eine Codefolge ersetzt oder im Nachhinein mit Suchen/Ersetzen bereinigt werden; in der Regel sind das aber nur sehr wenige Zeichen.
    • Die entstandene DOS-txt-Datei sollte nicht direkt in Cindex importiert werden, sondern erst nachdem die Endung in .dat umgewandelt wurde.
      • Ergebnis:
        • geschweifte Klammern ok
        • Umlaute ok
        • Anführungszeichen ok
        • andere Sonderzeichen falsch; können aber per Suchen/ersetzen bereinigt werden
        • Formatierungen: ok

Von Excel nach Cindex3/4 geht es auch folgende Weise:

  1. Daten in Excel markieren und kopieren
  2. Inhalt der Zwischenablage unfomatiert in Word einfügen
  3. Word-Datei zunächst als .docx abspeichern
  4. Word-Datei als .txt abspeichern, dabei Codierung auf Unicode (UTF-8) einstellen
  5. diese Datei direkt in Cindex importieren
  6. Ergebnis: alle Umlaute und alle Sonderzeichen (z. B. griechische Buchstaben) kommen richtig herüber

6 Austausch mit Cindex 2

Cindex 2 kann Cindex-3-Dateien (.ucdx) nicht direkt öffnen. Zum Glück versteht Cindex 2 die Archivdateien von Cindex 3. Also: aus Cindex 3 im .arc-Format speichern und dann mit Cindex 2 öffnen. Umgekehrt ist es kein Problem: Cindex 3 kann Cindex-2-Dateien (.cdx) direkt öffnen und dabei konvertieren.

Sind die Daten erst einmal in Cindex 2, können sie wie gewohnt (siehe nächsten Punkt) mit QuIndex ausgetauscht werden!

Cindex 2: Datenaustausch

Austausch zwischen Cindex und QuIndex

Da Cindex auch mit Codes arbeitet, ist ein Austausch relativ einfach möglich: einfach aus Cindex heraus im dat-Format abspeichern (.dat), dann entsteht nämlich eine tab-getrennte Datei, die sämtliche Formatierungscodes enthält. Die Datei kann in Excel eingelesen werden, es mus beim Öffnen lediglich eine DOS-Zeichencodierung gewählt werden. Anhand der Formatierungscodes und durch mehrmaliges Sortieren nach verschiedenen Kriterien können die Daten auf mehrere Spalten verteilt werden (zur Not Suchen/ersetzen in Word).

Das Verteilen auf Spalten in Excel entfällt, wenn man die .dat-Datei kurz nach Sky 7 importiert und von dort im Delimited-Text-Format (vgl. oben Formatierter Austausch mit Sky 7 als "Vermittlungsprogramm") wieder exportiert.

Umgekehrt lässt sich aus QuIndex eine .tab-Datei erzeugen, die anschließend in eine .dat-Datei umbenannt werden sollte, damit Cindex beim Import die Formatierungscodes richtig umsetzen kann. Wichtig: Beim Export darauf achten, dass eine DOS-codierte Datei entsteht. Cindex hat Probleme mit Windows-Codierung und erst recht mit Unicode.
Siehe auch: Feature-based Indexing in Cindex

Austausch zwischen Cindex und Excel (Cindex 2)

Beim Export von Excel aus muss die Datei als Tab-getrennte txt-Datei gespeichert werden. Allerdings erzeugt Excel (zumindest in den neueren Versionen, ältere müssten noch getestet werden) kein DOS-ASCII, sondern irgendein Windows-ASCII (also ANSI), das aber von Cindex nicht korrekt umgesetzt wird: die Sonderzeichen (insbesondere die Umlaute) bereiten Probleme. Die Formatierungscodes werden (wenn sie denn als offene Zeichen erfasst wurden) ohne Probleme mit übergeben.

Es empfiehlt sich, die erzeugte txt-Datei kurz mit Word zu öffnen und wieder zu speichern. Beim Speichern aus Word heraus wird man gefragt, in welcher Codierung gespeichert werden soll. Wählt man hier DOS-ASCII, so konvertiert Word die ANSI-Codes in ASCII-Codes, und Cindex hat das, was es benötigt.

Möglicherweise würde das gleiche Ergebnis erzielt werden, wenn man die Excel-Datei in einem älteren Excel-Format (z.B. Excel 2003) speichert und dann auf einem Rechner mit einer alten Excel-Version die Tab-getrennte txt-Datei erzeugt.

Austausch zwischen Cindex und Sky

  • Das geht über das DOS-Format von Cindex: Abspeichern mit Endung .dat (in beiden Richtungen möglich); interessant: auch farbige Formatierungen in Sky (für „ignorieren“ und „verstecken“) werden als Cindex-Codes umgesetzt und umgekehrt!
  • Sky 7 kann sehr gut als „Vermittlungsprogramm“ zwischen Cindex und QuIndex genutzt werden (vgl. oben: Formatierter Austausch mit Sky 7 als "Vermittlungsprogramm")
  • Allerdings geht die Information über Sonderzeichen (wie griechische Buchstaben) verloren! Sie kommen in Standardschrift rüber.

Einfügen von Cindex-Einträgen als XE-Felder in Word

  • Dazu darf in Cindex nicht die Ansicht „Full Format“ gewählt sein, sonst kommen die Einträge als formatierter Text, aber nicht als XE-Feld rüber. Am besten die Ansicht auf „Draft Format“ einstellen (bei „Unformatted“ sind die Seitenzahlen nicht zu sehen!).
  • Wichtig: nach Seitenzahlen sortieren
  • nun einfach Eintrag in Cindex anklicken, rechte Maustaste gedrückt halten, nach Word rüberziehen und an der gewünschten Stelle loslassen.

Formatierungscodes/-tags (Cindex 2)

Von Sky und Cindex werden folgende Codes richtig umgesetzt, wenn die Import-Datei die Endung .dat hat:

  • \i kursiv ein
  • \I ((backslash großes i)) kursiv aus
  • \b fett ein
  • \B fett aus
  • \u hochstellen ein
  • \U hochstellen aus
  • \d tiefstellen ein
  • \D tiefstellen aus
  • \a Kapitälchen ein
  • \A Kapitälchen aus

griechische Buchstaben:

  • à alpha
  • á beta
  • ë delta

Sonderzeichen gehen auch mit ASCII-Nummern; davor muss ein Backslash gesetzt werden:

  • \224 alpha
  • \225 beta
  • \235 delta
  • \230 mü
  • \227 pi
  • \229 sigma
  • \231 tau
  • \232 Phi (wie DPG)
  • \237 Phi (varPhi)
  • \226 Gamma
  • \233 Theta
  • \228 Sigma
  • \234 Omega

Was die griechischen Buchstaben betrifft, sind genau die vorstehend angegebenen auf diese Weise erzeugbar, keine weiteren! Wie andere griechische Buchstaben erzeugt werden können, muss noch getestet werden.

Die Codes können in Cindex nicht direkt im Eintrag gesehen werden. Sie werden einer ausgezeichneten Textstelle in dem Augenblick im Hintergrund zugewiesen, in dem man die Auszeichnung vornimmt.

Für den Export (leider nicht für den Import) kann man voreinstellen, welche Codes (Tags) mit welcher Formatierung verbunden sind. Dazu in Menü <Tools - Markup Tags> gehen, dort auf „View“, dann kommen die entsprechenden Zuordnungstabellen zum Vorschein.

Die dort angegebenen Tags werden von Cindex beim Export entsprechend umgesetzt, wenn man die Datei in einem der tagged-Formate abspeichert. Das Gute: Man kann seinen eigenen Tag-Satz definieren!

Speichert man die Datei im .dat-Format ab, so erscheinen unabhängig von den Tags die Formatierungen in der oben beschriebenen Weise.

Eine Möglichkeit, Sonderzeichen zu importieren, konnte ich bisher nicht finden. Indirekte Lösung: Nachdem z.B. die RTF-Codes für die griechischen Buchstaben importiert wurden, können sie mit „Suchen“ innerhalb von Cindex gefunden werden. Ihre Umwandlung scheint allerdings dann nur per Hand zu gehen.

Anmerkung: in SkyIndex können die Codes auch direkt per „Reveal Codes“ gesehen werden.

Seitenzahlbereiche nachträglich in f und ff umwandeln

  • geht leider nur per Find/Replace bzw. Find/Change to!
  • es muss mit der Pattern-Suche (Achtung: entprechendes Häkchen setzen!) gearbeitet und mehrstufig vorgegangen werden:
    1. Suche nach dreistelligen Zahlen, von denen die Bis-Zahl eins größer ist als die Von-Zahl: Muster: <letzte Ziffer der von-Zahl>-[1-9][0-9]<letzte Ziffer der von-Zahl plus 1>, ersetze durch <letzte Ziffer der von-Zahl>f; Beispiel: Find 1-[1-9][0-9]2, Change to 1f; anschließend Find 2-[1-9][0-9]3, Change to 2f usw.
    2. Da jetzt nur noch dreistellige Seitenbereichsangaben existieren, bei denen die Bis-Zahl um mehr als eins größer ist als die Von-Zahl, kann das Muster vereinfacht werden: Muster: <letzte Ziffer der von-Zahl>-[1-9][0-9][1-9], ersetze durch <letzte Ziffer der von-Zahl>ff; Beispiel: Find 0-[1-9][0-9][0-9], Change to 0ff; anschließend Find 1-[1-9][0-9][0-9], Change to 1ff usw.
    3. Jetzt kommen die zweistelligen Zahlen dran: Muster: <letzte Ziffer der von-Zahl>-[1-9]<letzte Ziffer der von-Zahl plus 1>, ersetze durch <letzte Ziffer der von-Zahl>f; Beispiel: Find 0-[1-9]1, Change to 0f; anschließend Find 1-[1-9]2, Change to 1f usw.
    4. Da jetzt nur noch zweistellige Seitenbereichsangaben existieren, bei denen die Bis-Zahl um mehr als eins größer ist als die Von-Zahl, kann das Muster vereinfacht werden: Muster: <letzte Ziffer der von-Zahl>-[1-9][0-9], ersetze durch <letzte Ziffer der von-Zahl>ff; Beispiel: Find 0-[1-9][0-9], Change to 0ff; anschließend Find 1-[1-9][0-9], Change to 1ff usw.
    5. entsprechend bei den einstelligen Zahlen verfahren.

Muster / reguläre Ausdrücke / regular expressions (RegEx)

Cindex 3.0 und jünger

A pattern describes a set of characters that meets some general specification, such as “any numeral at the beginning of a line followed by the letter X,” or “any word beginning with an uppercase letter and ending in ‘ing’,” or “any four-digit number beginning with 19 and enclosed in parentheses.”
You can use patterns with Find… or Replace…to describes a class of characters, words or phrases that Cindex should look for (or replace) in the index. You can also use patterns to control what text is acceptable in record fields.
Cindex provides some ready-made patterns via the contextual menu displayed when you right-click the Find box.
For the most part patterns consist of ordinary characters for which Cindex searches. The power of patterns derives from their capacity to represent classes of characters:

Important note for users of earlier versions of Cindex: The syntax of patterns is changed and extended, 
and permits more powerful searches. Please review this section carefully.
  • . When you use . in a pattern Cindex will find a match to any character. For example c.t will find any sequence of 3 characters beginning with c and ending with t.
  • [: :] Within [: :] you specify a character from a set, e.g., [:letter:] (or its abbreviation [:l:]). Cindex can match characters from many sets, such as currency symbols, diacritical marks, and also those that represent scripts, e.g., greek, or hebrew. See Character sets.
  • [ ] If you enclose elements of a pattern in square brackets, Cindex will match a character that corresponds to any one of the elements in the brackets. For example, 198[567] will find 1985, 1986, or 1987.You may include character ranges, e.g., [0-9a-z], or class designators, e.g., [0-9[:l:]]. To match a character not in the group set ^ as the first character. To include a ] in a group, it must be the first character (after any ^).
  • ( ) You can group parts of patterns by enclosing them in parentheses ( ). Such groups are called subpatterns or a 'capture groups'. Subpatterns have two important properties:
    • When finding a match to the whole pattern Cindex keeps track of the text matched by any subpattern, and allows you to use that text as part of what must be matched by a later part of the pattern.
    • Cindex also allows the special operators * ? + to be applied to subpatterns (see below).

You can define and use up to nine subpatterns in a single pattern. Cindex numbers subpatterns implicitly from left to right, by their order of appearance in the pattern. To refer to a subpattern, use \ followed by a numeral in the range 1-9. For example, \1 denotes the text matched by the first subpattern.

You can nest subpatterns, i.e., you can include one subpattern inside another. When you do this the outer patterns have lower numbers. Parentheses have no special significance if they appear within [ ].

  • * The * stands for zero or more occurrences of the preceding matched element. This can be a character matched by a set enclosed in [ ], e.g., [0-9]*, or a character from a set, e.g., [:l:], or a subpattern, e.g. cat(s)*. You can refer to a previously defined subpattern with an expression of the form \N*, where N is a digit in the range 1–9. This means “any number of occurrences (including none) of what was matched by subpattern N.“
    • The * has no special significance if it is the first character in a pattern or if it appears in a set of characters contained within [ ].
  • ? The ? stands for zero or one occurrence of the preceding matched element. This element can be a character matched by a set enclosed in [ ], or one from a character set, such as [:l:], or a subpattern.
    • The ? has no special significance if it is the first character in a pattern or if it appears in a set of characters contained within [ ].
  • + The + stands for one or more occurrences of the preceding matched element. This element can be a character matched by a set enclosed in [ ], or one from a character set, such as [:l:], or a subpattern.
    • The + has no special significance if it is the first character in a pattern or if it appears in a set of characters contained within [ ].
  • {N} The number N in braces represents the number of occurrences of the preceding element to be matched. This can be a character matched by a set enclosed in [ ]. For example, to find any 5-digit number search for [0-9]{5}.
  • | The | separates alternative patterns to match. dog|cat will match „cat“ or „dog“. You can specify multiple alternative matches (e.g., cat|dog|canary|snake). The | causes everything to its left (as far as a preceding |) to be treated as one pattern to match, and eveyrthing to its right (as far as a succeeding |) as an alternative pattern to match.
    • The | has no special significance if it is the first character in a pattern or if it appears in a set of characters contained within [ ].
  • \ The backslash has four functions:
    • When \ is placed immediately before any of the special characters described in this table (e.g., \+), the pair of characters is equivalent to the special character alone. The \ simply causes the following character to lose any special significance it might otherwise have in a pattern. For example, to search for any sequence of characters enclosed in square brackets (that is, square brackets are a literal part of the sequence) use \[.*\].
    • To use a backslash as a literal character in a pattern, place another backslash immediately before it.
    • The \ functions quite differently in a pattern when it is placed immediately before a digit in the range 1 through 9. Here it refers to the text that matches an earlier-defined subpattern (see ( ) above).
    • The \ has no special significance when it appears as part of a set of characters contained within [ ].
  • ^ If the caret (circumflex) is the first character in a pattern, Cindex will find a match to the remainder of the pattern only if the match can be made at the start of a field.
    • If the caret is the first character of a set enclosed in brackets [ ] Cindex searches for characters that are not in the remainder of the set.
  • $ If $ is the last character in a pattern, Cindex will find a match to the rest of the pattern only if the match can be made at the end of a field.

Any characters other than those above are treated as ordinary characters when they are part of a pattern. The full syntax of pattern-matching conforms to that used for so-called Regular Expressions, and provides more capabilities than are summarized above. Many tutorials are available on using Regular Expressions to match patterns (e.g., http://www.regular-expressions.info/quickstart.html).

  • \& The characters \& (backslash, ampersand) in the replacement sequence denote the text that matched the pattern. When Cindex makes the substitution it incorporates this text in the replacement sequence. Thus Cindex replaces each text by itself.

Character sets in patterns

Cindex can match a character that is a member of a set. Sets can represent scripts, such as Hebrew, or Greek, or they can represent character properties, such as symbols, or numbers.
To specify a character that is a member of a set, type the set name between [: :], for example [:hebrew:], for a Hebrew character. To specify a character that is not a member of the set, place a ^ immediately after the opening [, thus: [^:hebrew:].
Cindex recognizes many script sets, such as [:arabic:], [:devanagari:], [:cyrillic:], [:greek:], [:han:], [:hangul:], [:hebrew:], [:katakana:], [:latin:]. Cindex recognizes additional Unicode scripts.
To specify a character that has a certain property (e.g., letter, or symbol) use a set from the following table.
You can form new sets by combining existing sets.

  • To make a set that is the union of other sets, just concatenate them: [:letter:][:symbol:] (or [:l:][:s:]) is the set of all letters and all symbols.
  • To make a set that is the difference of two sets, connect them with -: [:letter:]-[:latin:] is the set of all letters that come from scripts other than latin.
  • To make a set that is the intersection of two sets (the set of characters common to both), connect them with & : [:letter:]&[^:han:] is the set of all letters that are not Han.
Set Name Abbrev Description
[:ascii:] An ASCII character
[:letter:] [:l:] Any letter (any language)
[:lowercase letter:] [:ll:] A lowercase letter that has an uppercase counterpart
[:uppercase letter:] [:lu:] An uppercase letter that has a lowercase counterpart
[:mark:] [:m:] A diacritical mark or character that is combined with a letter
[:separator:] [:z:] A whitespace or invisible separator
[:symbol:] [:s:] Any symbol, including, math, currency, dingbats, etc.
[:math symbol:] [:sm:] Any math symbol
[:currency symbol:] [:sc:] Any currency symbol
[:other symbol:] [:so:] Other symbol (none of the above)
[:number:] [:n:] Any numeric character in any script
[:decimal digit number:] [:nd:] Digits 0 through 9
[:punctuation:] [:p:] Any punctuation character
[:dash punctuation:] [:pd:] Any kind of hyphen or dash
[:open punctuation:] [:ps:] Any kind of opening bracket
[:close punctuation:] [:pe:] Any kind of closing bracket
[:initial punctuation:] [:pi:] Any kind of opening quote
[:final punctuation:] [:pf:] Any kind of closing quote
[:connector punctuation:] [:pc:] Any character that connects words
[:other punctuation:] [:po:] Any punctuation not in the above sets
[:private use:] [:co:] Special characters (e.g., Apple logo)

Beispiele

Resolving beim SmartIndexing

  • Beim SmartIndex-Verfahren besteht die SmartID (auch ParaID genannt) aus den beiden Anteilen Laufnummer (Lnr) und konstante ID (KID). Beispiele: #317.04{sid9TuKTWFY} oder #328.12{sid8R79OotG}. Hier wird die Lnr durch den Anteil #Seitenzahl.Absatznr, also in den vorstehenden Beispielen durch #317.04 oder #328.12 gebildet, wo 04 der 4. Absatz auf Seite 317 bzw. 12 der 12. Absatz auf Seite 328 ist. Die KID steht immer in geschweiften Klammern und ist aus 11 alphanumerischen Zeichen aufgebaut.
  • Beim Resolven, also beim Ersetzen der ParaID durch die Seitenzahl müssen alle Bestandteile der ParaID, die nicht Seitenzahl sind, gelöscht werden. Zu löschen sind also
    • #,
    • der Punkt
    • und die Absatznummer sowie
    • die komplette KID.

Die Raute (#) wird ohne Mustersuche wie üblich gesucht und durch nichts ersetzt.

Der Rest, also alles, was nach der Seitenzahl kommt, muss per Mustersuche entfernt werden. Das Muster sieht wie folgt aus:

\.[:nd:]+\{[A-Za-z0-9]*\}

Die Backslashes müssen verwendet werden, damit . und { bzw. } als Zeichen und nicht als Musterfunktionen erkannt werden. [:nd:]+ sucht nach beliebigen Folgen von Ziffern, [A-Za-z0-9]* nach beliebigen Folgen von alphanumerischen Zeichen.

Alle Seitenzahlen der Selektion fett auszeichnen

Die Selektion wird vorher durch Setzen eines Labels getroffen.

Eine Suchen/Ersetzen-Aktion wirkt in der Standardeinstellung immer nur auf die angezeigten Records.

  • Suche nach: ([:nd:]+) ((auf PAGE-Feld beschränken))
  • Ersetze durch: \1 ((bold))

Flip von Text vor Klammer und Text in Klammer:

  • Suche nach: (([:l:]+[:z:])*)\((.*)\)
  • ersetze durch: \3 \(\1\)

([:l:]+[:z:]) findet beliebig geschriebene Wörter, und zwar beliebig viele Wörter; [:z:] steht für den Blank; Achtung: der Blank muss in die Gruppe mit hineingenommen werden; vor \( darf kein Blank stehen
.* findet beliebige Zeichen
Die erste Gruppe ist (([:l:]+[:z:])*), die zweite ist ([:l:]+[:z:]) und die dritte (.*); Cindex zählt bei verschachtelten Klammern von außen nach innen

Andere Variante:

  • Suche nach: ^(.*) \((.*)\)
  • ersetze durch: \2 \(\1\)

Die Backslashes vor den Klammern im Ersetzen-Feld sind nicht nötig, d.h.

  • ersetze durch: \2 (\1)

geht auch.

Suche nach Beginn eines Feldes und ersetze durch sich selbst plus ein Zeichen davor:

Dieser Fall ist von Bedeutung, wenn bei einem Run-in-Index mit 3 Levels gearbeitet wird; Cindex vergibt nämlich in der formatierten Anzeige nur das Semikolon als Trenner zwischen Unter- und Unteruntereinträgen, d.h. man hat den Eindruck, als stimme etwas mit der Sortierung nicht, wenn man den Index in Word oder als PDF anschaut. Wenn in Cindex der Beginn des Sub2-Feldes durch ein Sonderzeichen gekennzeichnet wird, kann man in Word die Kombination aus Semikolon und diesem Zeichen so ersetzen, dass die Hierarchie deutlich wird.

  • Suche nach: (^[:l:]+)
  • ersetze durch: #\1
  • Beschränkung auf Sub2

Suchenfeld: Das Dach ^ kennzeichnet den Feldbeginn, [:l:]+ steht für „ein Wort oder mehrere Wörter“, die Klammern kennzeichnen alles als Gruppe.
Ersetze-Feld: \1 bezeichnet die Gruppe (es gibt nur eine, aber sie muss durch die 1 benannt werden); das Zeichen # ist hier als Sonderzeichen genommen worden, es hätte auch ein beliebiges anderes Zeichen sein können.

Alternative:

  • Suche nach: ^[:l:]+
  • ersetze durch: #\&
  • Beschränkung auf Sub2

Suchenfeld: Hier wird keine Gruppe gebildet (d.h., die Klammern werden weggelassen)
Ersetze-Feld: \& bezeichnet den Suche-Nacht-Text.


In Word kann man dann die Kombination aus ; und # z.B. durch | ersetzen.

Leeres Feld mit Inhalt besetzen

„Kein Inhalt“ entspricht dem Muster ^$, man kann auch den Schalter „Not“ setzen und als Suchstring [:l:]+ verwenden.

Man kann also

  • (alle) Records suchen, die beliebige Felder ohne Inhalt haben
  • (alle) Records suchen, bei denen ein bestimmtes Feld keinen Inhalt hat
  • per Replace leere Felder mit einem bestimmten Inhalt (z.B. XYZ) belegen: Find ^$, Change to XYZ

Cindex 2.0 und älter

A pattern describes a set of characters that meets some general specification, such as any numeral at the beginning of a line followed by the letter X, or any word beginning with an uppercase letter and ending in ing, or any four-digit number beginning with 19 and enclosed in parentheses.
You can use patterns with Find or Replaceto describes a class of characters, words or phrases that Cindex should look for (or replace) in the index. You can also use patterns to control what text is acceptable in record fields.
For the most part patterns consist of ordinary characters for which Cindex searches. The power of patterns derives from their use of special characters:
Any characters other than those above are treated as ordinary characters when they are part of a pattern. Searches for patterns are always case-sensitive.

  • ? The ? stands for any character. If you use ? in a pattern Cindex will find a match to any character. For example c?t will find any sequence of 3 characters beginning with c and ending with t.
  • [ ] If you enclose a set of characters in square brackets, Cindex will find a match to any one of the characters in the brackets. For example, 198[567] will find 1985, 1986, or 1987. To find a match to characters not in the set, place a caret (^) as the first of the set.
  • * The * stands for any number of occurrences (including none) of the preceding character. This character can be one matched by a sequence enclosed in [ ]. For example, to find all sequences of numbers that ended in the digit 9 search for [0-9]*9. The * has no special significance if it is the first character in a pattern or if it appears in a set of characters contained within [ ].
  • \ The backslash has two functions:
    • When \ is placed immediately before any non-numeral that we will call x, the pair of characters \x is equivalent to x alone.
    • The \ simply causes the following character to lose any special significance it might otherwise have in a pattern. For example, to search for any sequence of characters enclosed in square brackets (that is, square brackets are a literal part of the sequence) use \[?*\].
    • To use a backslash as a literal character in a pattern, place another backslash immediately before it.
    • The \ functions quite differently in a pattern when it is placed immediately before a digit in the range 1 through 9. Here it refers to the text that matches an earlier component in a pattern (a subpattern see { }).
    • The \ has no special significance when it appears as part of a set of characters contained within [ ].
  • { } When you form a pattern you can group elements of it by enclosing them in braces { }. Such a group is called a subpattern. When finding a match to the whole pattern Cindex keeps track of the text matched by any subpattern, and allows you to use that text as part of what must be matched later in the pattern.
    • You can define and use up to nine subpatterns in a single pattern.
    • Cindex numbers subpatterns implicitly from left to right, by their order of appearance in the pattern. To refer to a subpattern, use \ followed by a numeral in the range 1-9. For example, \1 denotes the text matched by the first subpattern.
    • You can include in a pattern an expression of the form \N*, where N is a digit in the range 19. This means any number of occurrences (including none) of what was matched by subpattern N (the subpattern must have been defined earlier).
    • You can nest subpatterns, i.e., you can include one subpattern inside another. When you do this the outer patterns have lower numbers.
    • Braces have no special significance if they appear within [ ].
  • ^ If the caret (circumflex) is the first character in a pattern, Cindex will find a match to the remainder of the pattern only if the match can be made at the start of a field.
    • If the caret is the first character of a set enclosed in brackets [ ] Cindex searches for characters that are not in the remainder of the set.
  • $ If $ is the last character in a pattern, Cindex will find a match to the rest of the pattern only if the match can be made at the end of a field.

Installation von Cindex 2.0 unter Windows 7

Wichtig: das Setup-Programm muss im Kompatibilitätsmodus ausgeführt werden (nicht das installierte Programm selbst)!

Frances Lenni schreibt:
The installer for CINDEX is a file named „SETUP.EXE.“ If your system is not set to display filename extensions, then the file will only appear to be named SETUP. Right click on the installer file and choose Properties, then Compatibility tab, and under Compatibility mode select „Run this program in compatibility mode for Windows XP,“ click OK. Now double-click on setup.exe and go through the usual steps to install.

indexing/cindex.txt · Zuletzt geändert: 2023/12/10 10:11 von walter