InDesign: Zahlensuche mit GREP
Hier im Blog gab es schon mal einen ersten Artikel zum Thema GREP. Das Suchen/Ersetzen mit Hilfe von regulären Ausdrücken ist nichts was man jetzt jeden Tag braucht, jedoch kann es für InDesigner die viel mit Texten arbeiten manchmal ungemein hilfreich sein.
Kleines Praxisbeispiel:
Diese Auflistung geht bis fast 1.400 Einträge. Die Aufgabe besteht jetzt darin, die Leerräume die nach der Zahl kommen, durch einen Tabulator zu ersetzen.
Ein Workaround?
Man könnte natürlich versuchen, durch Workarounds und Suchen/Ersetzen an die Zahl zu kommen. Z.B. indem man zuerst die Zahlen am Anfang des Absatzes durch ein verschachteltes Format Fett setzt und dann die Suche nur darauf beschränkt. Man könnte dann innerhalb des fetten Textes nach Punkten suchen lassen und durch Punkt und Tabulator ersetzen. Die Idee wäre auch gut, allerdings, wer das schon mal probiert hat, hat vielleicht gemerkt, dass Textteile, die durch verschachtelte Formate ausgezeichnet werden, nicht im Zeichenformat-Bedienfeld auftauchen. Sie werden indirekt durch das Absatzformat gesteuert. Das führt bei dem Trick zu Problemen.
Die GREP-Lösung
Es gibt also nur eine Lösung per GREP. Die Aufgabenstellung ist ganz typisch für eine Lösung mit GREP. Wir gehen also im Suchen/Ersetzen-Dialog auf den GREP-Reiter und suchen im Ausklappmenü erst mal die Wildcard für »Suche irgendeine Zahl«:
Da wir aber 1- bis 3-stellige Zahlen haben, müssen wir InDesign sagen, er soll alle suchen. Hierzu finden wir im Ausklappmenü ebenfalls was brauchbares und zwar bei »Repeat«, »One or more times«.
Bis jetzt haben wir also: \d+
Da sich im weiteren Text auch noch Jahreszahlen und ähnliches befinden, müssen wir die Suche nur auf den Anfang des Absatzes beschränken. Dazu findet sich auch was im Ausklappmenü, bei »Locations« – »Beginning of Paragraph«. Da die Zahl als Ganzes gesucht werden soll und diese auch unangetastet bleiben muß, setzen wir den ganzen Block in Klammern. Die Sucheingabe sieht dann so aus:
Wir suchen ja eine Zahl, gefolgt von einem Punkt. Wir können jedoch jetzt hier hintendran nicht einfach einen Punkt suchen, da ein Punkt in der GREP-Sprache eine andere Bedeutung hat. Wenn wir wirklich einen Punkt suchen möchten, müssen wir InDesign das mitteilen und das Zeichen soz. »escapen«. Das geht durch einen Backslash:
^(\d+)(\.) und dann einen Leerraum. Der Suchbegriff ist damit komplett.
Im Ersetzenfeld arbeitet man viel mit dem $-Zeichen. Was im Suchen-Feld zwischen Klammern steht, ist jeweils ein Block, d.h. $1 ist die erste Klammer, $2 die zweite u.s.w. Schreibe ich ins Ersetzenfeld gar nichts wird alles gelöscht. Schreibe ich nur $1, wird dieser Block übernommen und der zweite Block aber gelöscht. Wir wollen hier in unserem Beispiel ja, dass Zahl wie auch der Punkt bleiben und nur der Abstand durch ein Tabulator ersetzt wird. Wir müssen also folgendes ins Ersetzenfeld eingeben:
Ergebnis:
Ich hoffe das war jetzt nicht zu langweilig? Aber: wie lange würde man brauchen um ca. 1400 mal den Abstand manuell durch einen Tabulator zu ersetzen …? ;-)
Hallo. Könnte man nicht einfacher den ersten Abstand im Absatz suchen und ihn durch einen Tab ersetzen?
Hallo Sacha,
vielen Dank für diesen tollen Tipp!!! Sowas hab ich schon immer gesucht, um in größeren Dokumenten „Zahl-Zahl“ durch „Zahl – Zahl“ zu ersetzen. Habe es sofort eingesetzt und alles hat prima funktioniert!
Hallo Esther,
Also GREP geht eigentlich nur für Zeichen. Beim Tabulator handelt es sich dann aber um eine InDesign-Funktion. M.W. ginge sowas nur mit einem personalisierten Skript. Hiermit kann man auf alle InDesign Funktionen zurückgreifen. Wenn du das wirklich regelmäßig brauchst, könnte es sich lohnen einen Skripter kurz zu beauftragen.
Viele Grüße,
Sacha
Hallo du,
ich hab da mal eine Frage. Und zwar suche ich nach einen Befehl, wie ich einen Tabulator der auf 12 steht auf 13 bzw. 19 umbauen kann. Geht soetwas auch mit Grep??
Über eine schnelle Antwort würde ich mich freuen.
Lieben gruß Esther
Super … Danke für den Artikel!
Gesucht, Gefunden und umgesetzt :)
So muss das sein!!