Auf Kommentar antworten

Textanker pflegen

In der Expertenschulung letzte Woche kam die Frage auf, ob es einen vernünftigen Weg gebe, all die Textanker zu organisieren, die sich im Laufe eines Dokumentenlebens so ansammeln.

In der Expertenschulung letzte Woche kam die Frage auf, ob es einen vernünftigen Weg gebe, all die Textanker zu organisieren, die sich im Laufe eines Dokumentenlebens so ansammeln.

Es gibt zwar im Menü der Hyperlink/Querverweise Palette den Punkt Hyperlinkzieloptionen, der mir immerhin eine Liste alle Ziele anzeigt.

Ich kann hiermit einzelne oder alle Ziele löschen, bzw. Ziele an andere Stellen im Text verlegen. Und dann noch relativ unübersichtlich.

Als Fingerübung habe ich daher mal das Script "show all textanchors.jsx" geschrieben. Es stellt alle Anker in einer interaktiven Liste dar.

Der wichtigste Unterschied zum eingebauten Dialog ist wohl, dass man hiermit einzelne Anker anspringen kann. So kann ich sehen, auf welche Stellen im Text sich ein Anker bezieht, bevor ich ihn lösche.

Es sind noch mehrere Ausbaustufen für das Script denkbar, zum Beispiel die Liste zu sortieren (derzeit übernimmt die Liste die interne Sortierung und das ist "Zeitpunkt der Erstellung") oder auch hier den Namen eines Ankers zu ändern. Das aber höchstens auf Anfrage. Mal schauen, ob das überhaupt jemand benutzt ;)

Unter der Motorhaube

Für die Scripter unter meinen Lesern: die Liste erscheint in einem ScriptUI-Fenster vom Typ "palette". Paletten im Gegensatz zu Dialogen sind nicht-modal. Das heißt, man kann im Dokument arbeiten, während das Fenster offen ist. Meines Wissens ist dies die einzige Möglichkeit für ein Script, etwas im Dokument zu ändern, während die UI offen ist.

Mit anderen Worten: wenn ein Script einen Dialog anzeigt, muss dieser geschlossen werden, bevor das Script im Dokument weiterarbeiten kann. Eine Palette muss in einer targetengine laufen, um nicht sofort wieder geschlossen zu werden.

So sehen Sie an diesem Beispiel...

  • wie man eine Palette einrichtet
  • wie man den OK-Knopf baut (das passiert bei der ScriptUI nicht automatisch)
  • wie eine Liste auf Markierung/Änderung reagieren kann (die Knöpfe unten werden aktiviert/deaktiviert)
  • wie man eine Liste mit mehreren Spalten erstellt

Das Script läuft nur ab CS4. Eine Liste mit mehreren Spalten ging in CS3 noch nicht.

Antworten

Aktualisieren Type the characters you see in this picture. Type the characters you see in the picture; if you can't read them, submit the form and a new image will be generated. Not case sensitive.  Switch to audio verification.