Archiv des LibreOffice- und OpenOffice.org-Wiki

[ÜberSicht] [TitelIndex] [WortIndex] [SeiteFinden

(./) OOO3.2, OOo3.3, OOo3.4

1. Konkordanzdatei

Statt Einträge für ein StichwortVerzeichnis im Text manuell als Stichwortverzeichniseinträge markieren zu müssen, kann man die Einträge auch in einer externen Datei verwalten. Beim Erstellen des Verzeichnisses nennt man dem Programm den Namen der Konkordanzdatei (Register:Verzeichnis), welche die Einträge enthält. Diese Einträge werden dann automatisch auf ihr Vorkommen im Text überprüft und jeder Treffer erhält eine Verzeichniseintrag mit Markierung, aus dem dann das Verzeichnis erstellt wird.

Das ist vor allem dann von Vorteil, wenn ein Projekt wie z.B. ein umfangreiches Handbuch oder ein Katalog auf mehrere Teildateien verteilt ist. Somit kann auf die Markierung von Verzeichniseinträgen verzichtet werden und ausserdem kann die gleiche Konkordanzdatei für mehrere Dokumente verwendet werden.

Vom Namen Konkordanzdatei muss man sich nicht einschüchtern lassen: es handelt sich einfach um eine Datei mit strukturiertem Text (Typ: csv, Name: dateiname.sdi) . Der Hilfetext liefert eine sehr brauchbare Einführung und editieren kann man die Datei direkt im Dialog für die Verzeichniserstellung (Register:Einträge —> Konkordanzdatei —> Datei —> Bearbeiten).

Bei einem umfangreichen Verzeichnis bietet es sich allerdings an, die Datei bequem mit sCalc zu bearbeiten, weil es so übersichtlicher ist als im o.g. Editierfenster und weil unter sCalc Sortierfunktionen zur Verfügung stehen, die das Prüfen der Einträge erleichtern. Hier ein Beispiel dazu:

Stichwortverz_1.png

Im Text kommen die Begriffe vor, die in der Konkordanzdatei als Suchbegriff erfaßt werden. Das Stichwortverzeichnis soll dann wie links im Beispiel aussehen, wobei ggf. der Alternativbegriff auftaucht.

Bei einem mehrstufigen Index macht eine Konkordanzdatei jedoch nur Sinn, wenn jeder Suchbegriff nur jeweils einem bestimmten Schlüssel(-Paar) zugeordnet werden kann.

Konkordanzdat_2.png

Dazu erstellt man eine sCalc-Datei und erfasst wie im folgenden Beispiel. In der ersten Zeile kann man für eine bessere Übersicht Spaltennamen erfassen, die wegen des # am Anfang nur als Kommentar gedeutet werden.

Die Tabelle wird mit diesen Parametern gespeichert:

Nun erstellt man sich eine zweite sCalc-Datei als Arbeitsdatei. Darin fügt man eine Verknüpfung zur Konkordanzdatei ein: Einfügen —> Tabelle —> aus Datei:verknüpfen und speichert diese Datei normal als sCalc-Datei.

Wenn man die Konkordanzdatei überarbeiten will, öffnet man die sCalc-Datei, bestätigt die Frage nach der Aktualisierung mit Ja und bearbeitet die Einträge. Die sCalc-Datei wird zum Schluss nicht direkt gespeichert, sondern wieder via Speichern unter und den obigen Parametern, womit die bisherige *.sdi überschrieben wird.

Leider werden nach dem Speichern des writer(odt)-Dokuments die Stichworteinträge festgeschrieben, so dass eine nachträgliche Änderung der Konkordanzdatei, egal ob aus dem Dokument heraus, mittels eines externen Editors oder mithilfe Calc sich trotz "aktualisieren" des Verzeichnisses sich nicht mehr auswirken kann, solange die bereits erzeugten Stichworteinträge im Dokument nicht getilgt werden. Dies kann auf zweierlei Art erfolgen, manuell oder mittels Makro:

I. manuell:

  1. Mit Strg+F8 die Einträge markiert angezeigen lassen
  2. Sollten sich gelöschte oder bearbeitete Stichwörter im Inhaltsverzeichnis befinden, dann dieses aufsuchen und mit Mausmenü "Verzeichnis löschen" löschen
  3. Aufsuchen des ersten Stichworts im Text (auf beliebige Weise)
  4. Mit Curser am Wortanfang das Mausmenü "Verzeichniseintrag" aufrufen: Es öffnet sich die Tafel "Verzeichniseintrag bearbeiten" (mit "Verzeichnis Stichwortverzeichnis" in erster Zeile).
  5. Mit Button "Löschen" werden nacheinander alle (!) Einträge gelöscht.

  6. Aufsuchen des Stichwortverzeichnisses, das mit Mausmenü "Verzeichnis löschen" getilgt wird.
  7. Gewünschte Verzeichnisse neu anlegen, wobei das Stichwortverzeichnis wieder auf die korrekte Konkordanzdatei zurückgreifen soll.

II. Makro (dank P. Eberlein):

Der Vorteil dieser Methode besteht darin, daß man weder Inhalts- noch Stichwortverzeichnis löschen muß. Im Gegenteil: Sollte das Makro nicht anspringen wollen, so füge man erst ein Stichwortverzeichnis auf Basis einer Konkordanzdatei ein. Dann kann man mittels Makro alle Einträge löschen. Man bindet das Makro als "AllStichwortTilgen" (oder "DeleteAllEntries") ein und geht nach Vollzug auf den Titel "Stichwortverzeichnis" (das Verzeichnis ist nun leer!) und stellt selbiges mit der aktuellen Konkordanzdatei mittels Mausmenü "Verzeichnis aktualisieren" wieder her. /!\ Die Wiederherstellung mittels Mausmenü geht unter LO 3.6.3.2. , 3.6.4.3 , 3.6.5.2 nicht, leider!

Sub AllStichwortTilgen
  indexes = ThisComponent.getDocumentIndexes()
  for i=0 to indexes.count-1
    index = indexes(i)
    if index.supportsService("com.sun.star.text.DocumentIndex") then
      marks = index.DocumentIndexMarks
      for j=lBound(marks()) to uBound(marks())
        marks(j).dispose()
      next
      index.update()
    End If
  next
End Sub


KategorieWriter KategorieMakro


LizenzBedingungen | AnbieterKennzeichnung | DatenschutzErklärung | Stand: 2013-04-28