Hallo InDesign-Fans,
kommt immer wieder vor: Ein paar Absätze mit tabellarischer Darstellung. Und man möchte die Abstände zwischen den Spalten gleichmässig aufteilen. Manuell ist das gar nicht so rasch gemacht. Aber per Script geht das sehr fix.
Das JavaScript
TabStopVerteiler ist hier erhältlich:
http://www.fachhefte.ch / Links "JavaScripts", "Mac OS X deutsch" (oder "Windows deutsch"), "InDesign CS2" bis "InDesign CS5". Letzteres funktioniert auch mit CS6 und CC.
Der ausgewählte Text (oder der/die Textrahmen) muss Tabulator-Zeichen enthalten. Dann werden die Abstände zwischen den Spalten vereinheitlicht.
Wenn keine Tabstops definiert sind, werden linksbündige erzeugt und zugewiesen. Per Vorgabe mit einem Abstand von 4 mm zwischen den Spalten. Dieser Wert kann im Script geändert werden.
Sind aber Tabstops vorhanden, dann wird nur deren Position geändert. Die Ausrichtung und andere Optionen werden beibehalten. Die letzte Spalte wird nicht bewegt.
Im Script kann bestimmt werden, ab welchem Tabstop die Positions-Anpassungen erfolgen sollen. Das wäre eine Lösung für das Problem, welches hier gepostet wurde:
http://www.hilfdirselbst.ch/..._P496971.html#496971 Eine dritte Option: die Rundungs-"Feinheit" der neuen Positionswerte kann definiert werden.
– nicht runden; – Zehntelsmillimeter; – halbe Millimeter; – ganze Millimeter
*****
Die Vorgeschichte des Scripts: Vor vielen Jahren hatte ich ein AppleScript für QuarkXPress entwickelt, welches das regelmässige Ausrichten besorgt. Kürzlich erhielt ich eine Anfrage eines begeisterten Benutzers, welcher nun diese Aktionen mit InDesign ausführen möchte.
Es war nicht möglich, das AppleScript nach JavaScript zu portieren. Zu gross sind die Unterschiede zwischen QuarkXPress und InDesign. Also: Von Grund auf neu schreiben, inspiriert von den Ideen des XPress-Scripts.
Doch nicht ganz von Grund auf. Denn ich erinnerte mich an eine Studie von Gerald Singelmann, welche ähnliches vollbringt. Gesucht, gefunden: Sein Script "spaltenbreite_nach_längster_spalte.jsx". Daraus übernahm ich einige Zeilen und wandelte sie ab, um schon mal Tabellarisches ohne Tabstops zu behandeln.
Für die zweite Version – welche bei bestehenden Tabstop-Definitionen nur die Position ändert –, war es schwieriger: Jetzt mussten sowohl die minimale als auch die maximale Position der Spaltenabstände ermittelt werden. Zudem noch die Ausrichtung der nächsten Spalte einbeziehen. Und die Einzüge. Und auch einen eventuellen Zeilenspalter ...
Die Tabellen des Kunden sind ziemlich speziell aufgebaut. Allen ist ein Absatzformat zugewiesen. Und bei allen dürfen die erste und die zweite Spalte nicht verschoben werden. Und es sollten alle Tabellen im ganzen Dokument behandelt werden.
Das hier angekündigte Script ist eine Variante des ursprünglichen Scripts. Die Texte oder Textrahmen müssen ausgewählt werden. Ein Absatzformat wird nicht berücksichtigt. Aber eine Option für die obenerwähnte Problemlösung ist eingebaut.
*****
Gruss, Hans