Benutzer-Werkzeuge

Webseiten-Werkzeuge


indexing:cindex

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
indexing:cindex [2023/12/09 21:20]
walter [Zerschlagung der Feldstruktur und "Preserve Modified Headings"]
indexing:cindex [2024/09/11 11:30] (aktuell)
walter [Inhalt in Klammern mit Text davor vertauschen]
Zeile 13: Zeile 13:
    *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)! ​    *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.3 und höher (OpenCindex) =====
 +
 +Cindex ist seit 1. April 2024 ein Open-Source-Programm. Die Firma Scribendi, die bisheriger Eigner war, hat damit das Programm an den freien Entwicklermarkt übergeben. Der Quellcode kann kostenfrei von der GitHub-Plattform,​ auf die er von Scribendi übertragen wurde, heruntergeladen werden:
 +
 +Windows-Repository:​ https://​github.com/​scribendi/​cindex-win
 +
 +Mac-Repository:​ https://​github.com/​scribendi/​cindex-mac
 +
 +Die rohen Programmdaten sind allerdings nicht zum sofortigen Installieren geeignet. Daher hat sich eine kleine Gruppe von Cindex-Nutzenden unter Leitung von Maria A. Sullivan darum bemüht, eine installierfähige Version zu erstellen. Sie wurde dabei unterstützt von Peter Lennie, dem ursprünglichen Entwickler von Cindex. Seit 12. April liegt das Ergebnis vor: Es gibt eine voll funktionsfähige neue Cindex Version sowohl für Windows als auch für den Mac! Sie tragen die Versionsnummer 4.3.
 +
 +Die neue installationsfähige Cindex-Version (als .exe-Datei) kann heruntergeladen werden von:
 +
 +Cindex-Website:​ https://​www.opencindex.com/​
 +
 +Die Website enthält Anweisungen,​ was die User erwartet, wenn sie ihre neue Kopie von Cindex herunterladen und installieren;​ und es gibt viele hilfreiche Hintergrundinformationen.
 +
 +Nicht nur der Quellcode, sondern auch das installationsfähige Cindex-Paket ist kostenfrei. Eine Testversion mit eingeschränkten Fähigkeiten ist daher nicht mehr nötig. Für Windows gibt es neben der Einzelnutzer-Version sogar eine Publisher’s Edition, die netzwerkfähig ist, also von mehreren Personen gleichzeitig genutzt werden kann.
 +
 +==== Neuerungen in Cindex 4.4 ====
 +  ***Flip Headings:** vertausacht bei einer ausgewählten Gruppe von Einträgen die Inhalte von Main Heading und Sub-Heading
 +  ***Compare Index:** vergleicht die Inhalte zweier Cindex-Dateien
  
 ===== Cindex 4 ===== ===== Cindex 4 =====
Zeile 90: Zeile 112:
       *b) per **Makro** (kann aufgezeichnet werden) (s.u.)       *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**.   *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**.
 +
 +===== Inhalt in Klammern mit Text davor vertauschen =====
 +  *Innerhalb eines einzelnen Datensatzes (Eintrags) gibt es dafür den Schalter "Swap Text in Parens"​. ​
 +  *Man könnte auch mit der Ersetzen-Funktion arbeiten:
 +    * suche nach <​nowiki>​^(.+) \((.+)\)$</​nowiki>​
 +    * ersetze durch  <​nowiki>​\2 (\1)</​nowiki>​
 +  *Möchte man das bei mehreren Einträgen auf einmal machen, muss aus den betroffenen Einträgen zuerst eine Gruppe gebildet werden (z. B. durch Suchen nach "​("​ im Feld Main).
 +    * nun werden alle Einträge markiert (Strg-a)
 +    * dann wird der Befehl "​Duplicate"​ aus dem Edit-Menü aufgerufen; dabei verschwinden die ursprünglich gruppierten Einträge in den Hintergrund,​ und die duplizierten Einträge bilden eine neue temporäre Gruppe, die angezeigt wird; das heißt, alle weiteren Aktionen wirken nur auf diese Gruppe. ​
 +    * zum Schluss wird der oben angegebene Suchen-Ersetzen-Lauf ausgeführt,​ und zwar mit "​Replace All".
  
 ===== Makros (bei Cindex 2) ===== ===== Makros (bei Cindex 2) =====
Zeile 255: Zeile 287:
 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. ​ 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! ​+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"​ ==== ==== Zerschlagung der Feldstruktur und "​Preserve Modified Headings"​ ====
Zeile 279: Zeile 311:
 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. ​ 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. Das würde nämlich das Problem lösen: 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.+  *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): Das Problem kann aber auf andere Weise relativ einfach gelöst werden (aus Mail von Maria A. Sullivan vom 6.12.23):
Zeile 285: Zeile 317:
   - Die betroffenen Datensätze werden selektiert und mit einem Label versehen.   - Die betroffenen Datensätze werden selektiert und mit einem Label versehen.
   - Nun werden sie alle markiert, kopiert und in eine neue Cindex-Datei eingefügt.   - Nun werden sie alle markiert, kopiert und in eine neue Cindex-Datei eingefügt.
-  - Hier wird per Suchen/​Ersetzen vor den Modifier (also hinter Komma+Leerzeichen) ein Dummy-String wie xxx eingefügt. Zum beipeil ​wird dabai aus  ​+  - 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, domestic
       * Main: Cats, xxxdomestic.       * Main: Cats, xxxdomestic.
-      * Das geschieht bei allen Datensätzen in der zweiten Cindex-Datei +      * Das geschieht bei allen Datensätzen in der zweiten Cindex-Datei. 
-  - Alle auf diese Weise veränderten Datensätze werden kopiert und in die Ausgangs-Cindex-Datei eingefügt. ​+  - Alle auf diese Weise veränderten Datensätze werden kopiert und in die Ausgangs-Cindex-Datei eingefügt.
   - 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.   - 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.
-  - Zum Schluss werden die Datensätze mit xxx im Sub1-Feld selektiert und gelöscht. Übrig bleiben die gelabelten ​Ausgamngsdatensä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:+  - 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     * Main: Cats
     * Sub1: domestic     * Sub1: domestic
-  -  Das Ziel ist erreicht ​    ​+  -  Das Ziel ist erreicht
 +=== Export und Rückimport ===
  
-  *Die Fage lautet: Gibt es einen Befehl, ​der den **Reconciling-Vorgang genau in der anderen Richtung** ausführt: Unterthemen, die als "Modifier" ​zu Haupthmen im Mainheading-Feld enthalten sinddort ausschneiden ​und in das Subheading-Feld einfügenAntwortNein! Cindex hat weder einen Demote-Befehl,​ wie er in Sky zur Verfügung stehtdass man also in jedem Record bei Bedarf die Umkehrung des Reconciling ​vornehmen kannnoch gibt es eine Möglichkeit ​die Rückumwandlung über die gesamte Datei hinweg vorzunehmen (z.B. durch ein erneutes Laufenlassen des Reconciling).+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 werdendass 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üllerEmil 
 +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 sindfunktioniert,​ bei anderen nicht. Möchte man, dass alle Datensätze gleich behandelt werden, muss das Häkchen bei "​Protect Names" weggenommen werden
  
  
Zeile 303: Zeile 345:
 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. 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.
  
-==== Rückgängig machen von Reconcile Headings ​====+==== 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. ​ 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. ​
  
Zeile 311: Zeile 353:
   -Suche nach ",#",​ ersetze durch ", " (dieser Suchen/​Ersetzen-Lauf könnte aber auch entfallen)   -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 aufgenzeichnet ​wird, besteht aus folgenden Teilen:+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:
   -Suche nach ","​ (oder ", " oder ",#"​),​ danach <Esc> (der nächste passende Datensatz wird gefunden und das Suchen-Fenster wird verlassen)   -Suche nach ","​ (oder ", " oder ",#"​),​ danach <Esc> (der nächste passende Datensatz wird gefunden und das Suchen-Fenster wird verlassen)
   -<​Enter>​ (dadurch wird das Bearbeitenfenster aktiviert, der Cursor blinkt am Anfang des Main Headings) ​   -<​Enter>​ (dadurch wird das Bearbeitenfenster aktiviert, der Cursor blinkt am Anfang des Main Headings) ​
Zeile 323: Zeile 365:
 Nachdem alles gelaufen ist, müsste per Suchen/​Ersetzen aus dem "​zzz"​ wieder ein Blank erzeugt werden Nachdem alles gelaufen ist, müsste per Suchen/​Ersetzen aus dem "​zzz"​ wieder ein Blank erzeugt werden
  
-  *Anmerkung: auch in Cindex 4 muss so vorgegangen werden. Das neue "​Split-Kommando"​ greift zwar am Komma an, erzeugt aber aus dem Unterthema einen Haupteintrag! 
- 
-In Sky läuft das besser,und zwar mit den Befehlen "​Promote"​ und "​Demote",​ die jederzeit für einen einzelnen Datensatz ausgelöst werden können: Promote führt Main und Sub zusammen und fügt ein Komma als Trenner ein; Demote schneidet den Inhalt des Main-Feldes am Trennzeichen auseinander und fügt den Inhalt rechts vom Trennzeichen in das Sub-Feld ein. 
  
 ===== Manage Cross References ===== ===== Manage Cross References =====
indexing/cindex.1702153201.txt.gz · Zuletzt geändert: 2023/12/09 21:20 von walter