Gregor Fellenz

InDesign automatisieren

Keine Angst vor Skripting, GREP & Co
2., aktualisierte und erweiterte Auflage

dpunkt.verlag

Buchnavigation

Inhaltsverzeichnis

Über Gregor Fellenz

 

Gregor Fellenz studierte nach seiner Ausbildung zum Mediengestalter an der Hochschule der Medien in Stuttgart Druck- und Medientechnik. Während des Studiums konzentrierte er sich auf die Themen XML und Cross-Media-Publishing.

Seit 2004 beschäftigt er sich beruflich mit Publishing-Workflows für Print und digitale Medien. Sein Schwerpunkt liegt auf der automatisierten Erstellung von Publikationen mit InDesign und XML. Neben der Implementierung von Publishing-Workflows ist er als Berater, Trainer und Projektleiter tätig. Unter @grefel twittert er über die aktuellen Entwicklungen im Bereich InDesign-Skripting.

Impressum

Lektorat: Barbara Lauer, Bonn

Copy-Editing: Alexander Reischert (Redaktion Aluan, Köln)

Erstellung EPUB: Gregor Fellenz, Tobias Fischer

Herstellung: Susanne Bröckelmann

Umschlaggestaltung: Helmut Kraus, www.exclam.de

Bildnachweis: Nora Klein: Foto; Teresa Wurtz: Foto; Gregor Fellenz: alle weiteren.

 

Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

 

2. Auflage 2015

Copyright © 2015 dpunkt.verlag GmbH

Wieblinger Weg 17

69123 Heidelberg

 

Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.

Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen.

Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autor noch Verlag können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.

 

ISBN 978-3-86491-6847

Fußnoten

Die genaue Bedeutung von GREP ist umstritten, ich finde General Regular Expression Parser passend. Wer es genau wissen will, kann unter 122 nachsehen.

Dahinter stehen oft der Open-Source-Gedanke und die Idee, der Community etwas zurückzugeben. Softwareentwicklung basiert auf einem offenen Austausch von Ideen. Jeder Programmierer freut sich über ein Danke. Wenn Sie die Skripte produktiv einsetzen, denken Sie doch mal über eine Würdigung der Arbeit nach.

Der Begriff Liste ist eigentlich falsch, die genaue Übersetzung des englischen Begriffs ist Reihe oder Aufreihung. Ich halte den Begriff Liste allerdings für zutreffender, da eine nummerierte Liste die Datenstruktur gut veranschaulicht.

Ecma International ist eine Organisation zur Normung von Informations- und Kommunikationssystemen sowie Unterhaltungselektronik.

POSIX steht für Portable Operating System Interface. Dieses System soll sicherstellen, dass sich Programme auf verschiedenen Systemen gleich verhalten.

In InDesign CC 2014.2 gibt es einen Fehler beim Auflösen von Gruppen, verwenden Sie app.generalPreferences.ungroupRemembersLayers = false; als Workaround.

Es gibt den Vorschlag RFC 4180 115 für einen Standard, aber verlassen Sie sich besser nicht darauf 116.

ExtendScript ist eine erweiterte Version von ECMAScript 3. In Webbrowsern ist ECMAScript 5 weit verbreitet.

Das IDPF ist ein Zusammenschluss von verschiedenen Unternehmen. Es betreut die Weiterentwicklung der Standards, aus denen sich EPUB zusammensetzt. 38

Eine deutsche Übersetzung der Spezifikation finden Sie unter 58.

ODBC ist eine standardisierte Datenbankschnittstelle. Sofern ein ODBC-Treiber existiert, können über diese Schnittstelle verschiedene Datenbanktypen angesprochen werden.

Eine deutsche kommentierte Übersetzung des Standards finden Sie unter 72.

Einleitung

Vorwort zur 2. Auflage

Nachdem sich Anfang 2014 abzeichnete, dass die erste Auflage bald ausverkauft sein würde, sagte ich zu meiner Lektorin Barbara Lauer, dass ein Update schnell gemacht wäre. Knapp ein Jahr später weiß ich, dass diese Einschätzung falsch war. Auch wenn der bewährte Aufbau des Buches grundlegend gleich geblieben ist, sind nur wenige Seiten von einer Überarbeitung gänzlich verschont worden.

Das hat verschiedene Gründe: Zunächst natürlich viele Neuigkeiten und Erleichterungen in InDesign CS6 und CC – alle Referenzen auf ältere Versionen habe ich entfernt, damit das Buch übersichtlich bleibt. Aber auch Erfahrungen aus Schulungen, Gesprächen und Feedback zur ersten Auflage wollten eingearbeitet werden.

Besonders zu erwähnen ist das aus meinem Schulungskonzept übernommene Beispielskript, das die Einführung in JavaScript in Kapitel 6 begleitet. Einige Kochrezepte sind entfallen, dafür neue Beispiele aus meiner täglichen Praxis hinzugekommen – erwähnenswert ist der Umgang mit CSV, die Realisierung von Stapelverarbeitungen sowie das Verketten von GREP-Abfragen. Außerdem wurde das Buch mit Beispielen zum Skripting der interaktiven Funktionen erweitert.

Im Bereich E-Book hat sich so viel verändert, dass das komplette Kapitel ausgetauscht werden musste. Hier habe ich den Fokus auf das Skripting des Exports gelegt, die eigentliche Erstellung von E-Books musste entfallen – hier gibt es inzwischen viele andere gute Quellen.

Mehr aus InDesign herausholen

Adobe InDesign hat sich zu einem der wichtigsten Desktop-Publishing-Programme entwickelt und ist aus der professionellen Gestaltung und Produktion von Druckerzeugnissen kaum mehr wegzudenken. Die meisten Anwender verwenden allerdings nur die offensichtlichen und gebräuchlichsten Funktionen und Features. Viele Möglichkeiten gehen in der Fülle der Funktionen unter oder es bleibt schlicht keine Zeit, sich während des Tagesgeschäfts damit auseinanderzusetzen. Selbst gestandene InDesign-Profis lernen immer wieder neue Arbeitsweisen hinzu.

 

Die Produkte, die mit InDesign erstellt werden, sind außerordentlich vielfältig. Die Bereiche der professionellen Anwendung gehen von der klassischen Druckvorstufe über die Erstellung von digitalen Medien bis zu serverbasierten Web2Print-Lösungen. Entsprechend vielseitig sind auch die Szenarien und Workflows, in denen InDesign eingesetzt wird.

Wer sollte InDesign automatisieren?Eine Automatisierung lohnt sich meist nur, wenn wiederkehrende Aufgaben zu lösen oder große Datenmengen zu verarbeiten sind. Klassische Beispiele sind die Katalogproduktion, technische Dokumentationen oder die Buchherstellung. Aber auch die Erstellung von Zeitschriften, Magazinen, Broschüren sowie ganz allgemein von Periodika lässt sich durch Automatisierung gut unterstützen. Im Bereich der digitalen Medien können sowohl E-Books als auch digitale Magazine mit Hilfe von Skripting effizienter erstellt werden.

Es liegt in der Natur der Sache, dass sich das kreative Gestalten eines neuen Corporate Designs, einer Werbeanzeige oder Ähnlichem kaum automatisieren lässt. Doch selbst in diesem Bereich lassen sich mit Skripting-Kenntnissen Variationen einer Gestaltung erstellen, beispielsweise kann man generell alle Schriftgrößen um einen bestimmten Prozentwert verringern. Denn auch hier gilt: Statt ständig zehnmal klicken, lieber einmal programmieren.

Unabhängig davon kann eine Automatisierung auch die regelbasierte Gestaltung unterstützen, da Ausnahmen einen höheren Aufwand bedeuten und dadurch neu hinterfragt werden. Es muss auch nicht immer eine ausgefeilte Layoutautomatisierung sein – manchmal helfen schon kleine Skripte oder das Wissen über die beeindruckenden Möglichkeiten der Suchen/Ersetzen-Funktion mit GREP weiter.

 

Suchen und ersetzen mit GREPGREP bietet unabhängig vom Skripting eine oft übersehene Möglichkeit, Anforderungen, die an Dokumente gestellt werden, schnell und effizient zu lösen. Mit GREP können komplexe Suchanfragen und Ersetzungsanweisungen definiert werden, die den Arbeitsalltag ganz erheblich erleichtern. Dazu werden Reguläre Ausdrücke verwendet, die auch in anderen Programmen zum Einsatz kommen.

 

SkriptingEine weitere Möglichkeit ist die Programmierung von InDesign mit selbst erstellten Skripten. Wer »langweilige« oder sich immer wiederholende Arbeiten automatisieren kann, spart viel Zeit, um sich auf die wesentlichen Aufgaben zu konzentrieren. Ich würde sogar sagen, dass die Möglichkeit der Programmierung oder besser gesagt des Skriptings das beste und produktivste Feature von InDesign ist.

Fast alles, was Sie mit der normalen Benutzeroberfläche realisieren können, kann auch über ein Skript erreicht werden. Ob Sie eine neue Seite anlegen, einen Textrahmen aufziehen oder einen Absatz formatieren wollen – per Skript ist das alles kein Problem. Skripte erlauben sogar noch mehr: Mit ihnen kann man eigene Menüs definieren oder auf Benutzeraktionen reagieren.

 

E-Books und XMLNeben GREP und Skripting wird die Zweitverwertung von gedruckten Inhalten in digitaler Form immer wichtiger. Die hier verwendeten Technologien EPUB für E-Books und XML als Schnittstelle zu strukturierten Datenbeständen oder sogar Datenbanken werden meist mit Hilfe von Skripten optimiert oder überhaupt erst möglich gemacht.

Gerade in diesem Bereich zeigt sich auch die Entwicklung hin zu schnelleren Produktionszyklen und dem damit einhergehenden Zeit- und Kostendruck. Oft müssen die elektronischen Publikationen zeitgleich mit dem Printwerk erhältlich sein. Mit Kenntnissen im Bereich Automatisierung kann man diesen Entwicklungen entspannt entgegensehen.

 

Welche Versionen werden beschrieben?Das Skripting von InDesign ist in den Versionen CS6 bis CC 2014 weitgehend identisch. Das hier vorgestellte JavaScript kann plattformunabhängig auf Windows und Mac OS eingesetzt werden.

Wenn sich Unterschiede in der Programmierung ergeben, sind diese im Buch durchgehend gekennzeichnet. Beispieldaten wurden gegebenenfalls für alle notwendigen Versionen erstellt.

 

An wen richtet sich das Buch?Jeder kann InDesign automatisieren! Das Buch setzt lediglich solide InDesign-Grundkenntnisse voraus. Erfahrungen in einer Skript- oder Programmiersprache sind von Vorteil, werden aber nicht vorausgesetzt. Ich habe den Anspruch, auch Anfänger auf dem Weg zur InDesign-Automatisierung zu begleiten!

Die Einführung in die Automatisierung kann jedem gelingen. Die Beispiele sind aus dem Arbeitsalltag von Mediengestaltern, Grafikern und Verlagsherstellern entnommen. Aber auch Medieninformatiker oder Webdesigner werden viele praxisorientierte Hinweise für die Produktion von Printmedien finden.

 

Wer kann skripten?Viele Anwender schrecken vor der Hürde der Programmierung zurück. Doch liegen gerade darin unermessliche Möglichkeiten, sich das Arbeitsleben einfacher zu machen. Etwas überspitzt könnte man sagen: »Nur ein fauler Mensch macht produktive Skripte.« Denn wer kein Problem damit hat, hundertmal denselben Arbeitsschritt auszuführen, anstatt einen Kaffee zu trinken, der braucht auch keine Automatisierung.

Zugegeben, das erste Mal sind die nackten Codezeilen eher abschreckend und man weiß oft nicht, wo man anfangen soll. Wer sich allerdings auf die Reise begibt, wird bald feststellen, dass das Themengebiet logisch aufgebaut ist und sich mit dem richtigen Einstieg meistern lässt.

Außerdem macht Programmieren Spaß. Das glauben Sie nicht? Sobald Sie Ihren eigenen Skripten bei der Arbeit zuschauen, werden Sie Ihre Meinung ändern. Lassen Sie sich nicht vom ersten Fehler entmutigen – das Verständnis fürs Programmieren entwickelt man leider nicht über Nacht.

 

JavaScriptIn diesem Buch wird das Skripting anhand der Skriptsprache JavaScript erläutert, die sowohl auf Windows- als auch Mac OS-Systemen eingesetzt werden kann. Genauer gesagt wird die erweiterte JavaScript-Implementierung von Adobe mit dem Namen ExtendScript verwendet.

JavaScript wird auch für die Programmierung von Webseiten benutzt. Leider ist nur der Sprachkern identisch, der Umgang mit dem Browser bzw. InDesign aber völlig verschieden.

Danksagung

Ich möchte mich bei allen, die an der Entstehung dieses Buches beteiligt waren, bedanken. Dazu zählt vor allem Rebecca, die das Projekt von der ersten Idee bis zur Endkorrektur unterstützt hat.

Besonders hervorheben möchte ich auch meine Lektorin Barbara Lauer, die mir stets motivierend und konstruktiv zur Seite stand, die Gutachter der ersten Auflage Sarah Schäfer, Nadine Thiele, Marco Morgenthaler, Marko Hedler, Martin Fischer, Gerald Singelmann und Tobias Fischer, die mir viele wichtige Anregungen und Hinweise gegeben haben. Ein Dank gilt auch meinen Eltern, die das komplette Manuskript Korrektur gelesen haben. Für die zweite Auflage kamen wichtige Inspirationen von Yves Apel, Klaas Posselt, Kai Rübsamen, Uwe Laubender und Stefan Göbel.

Viele weitere Personen, die Anregungen für einzelne Skripte geliefert haben, werden im Verlauf des Buches genannt.

Verwendung dieses Buchs

Das Buch ist als Praxis- und Lernbuch aufgebaut, das didaktische Konzept beruht auf den Erfahrungen verschiedener Schulungen und meiner Lehrveranstaltung an der Hochschule der Medien in Stuttgart. Alle Skripte werden besprochen und, wann immer möglich, durch Beispieldokumente erläutert. Unabhängig davon kann vor allem der zweite Teil auch als Nachschlagewerk verwendet werden.

Das Buch ist in drei Teile gegliedert. Der erste Teil bietet einen sanften Einstieg in die Programmierung und Automatisierung von InDesign. Der zweite Teil ist eine systematische Einführung in die InDesign-Programmierung mit JavaScript. Der dritte Teil enthält praxisorientierte Kochrezepte für konkrete Problemstellungen.

I. Teil

Der Einstieg über die Suche und Ersetzung mit GREP in Kapitel 1 bietet eine in sich geschlossene Heranführung an die abstrakte Formulierung von Lösungen, wie sie auch beim Skripting üblich ist. Kapitel 2 zeigt, wie Skripte in InDesign installiert werden und wie Sie diese produktiv einsetzen können. In Kapitel 3 wird das ExtendScript Toolkit, das Werkzeug für die Erstellung von Skripten, vorgestellt. In Kapitel 4 werden einfache Skripte für alltägliche Praxisprobleme im Detail besprochen. Alle Skripte werden zeilenweise diskutiert und können anhand von Beispieldokumenten ausprobiert werden. Dieses Kapitel enthält alle wichtigen Programmiermethoden, behält aber den Fokus auf einem möglichst sanften Einstieg. An vielen Stellen verweist es auf den systematischen Einstieg im zweiten Teil des Buchs. Kapitel 5 enthält nützliche Tipps zur Fehlersuche und verrät, wo man Hilfe bekommen kann.

II. Teil

Der zweite Teil beginnt in Kapitel 6 mit einer systematischen Einführung in die Programmiersprache JavaScript. Hier werden alle wichtigen Programmiermethoden und -konzepte für die InDesign-Automatisierung vorgestellt. Das Kapitel schließt mit einem Exkurs zum Thema Unicode, dem Standard für die Kodierung von Zeichen in Schriften und Dateien. Kapitel 7 dreht sich um das InDesign-Objektmodell. Dieses Kapitel enthält den Schlüssel zur InDesign-Programmierung, es ist als praxisorientierte Referenz aufgebaut. Zu allen Themen finden Sie wieder dokumentierte Beispielskripte.

In Kapitel 8 wird das Debugging, das »Fehlerfinden«, mit dem ExtendScript Toolkit besprochen. Kapitel 9 stellt Programmierkonzepte für die Automatisierung von Printprodukten vor und zeigt Best-Practice-Beispiele für gute Skripte.

III. Teil

Der dritte Teil ist thematisch in fünf Bereiche aufgeteilt. Zunächst wird das Thema GREP in Kapitel 10 vertieft und mit Praxisbeispielen abgerundet. Hier sei auch auf die GREP-Referenz Anhang A1 verwiesen, die alle Metazeichen für die Suche mit GREP enthält.

Kapitel 11 enthält Rezepte für konkrete Aufgabenstellungen. Sie können die einzelnen Unterkapitel losgelöst voneinander bearbeiten. Für alle Skripte gibt es Beispieldokumente.

In Kapitel 12 wird ein umfassender Automatisierungs-Workflow mit Word-Dateien vorgestellt. Hier wird eine Word-Datei per Skript in ein nahezu fertig gestaltetes InDesign-Dokument überführt.

Kapitel 13 stellt den Export für E-Books im Format EPUB vor. Der Schwerpunkt liegt auf Skripten für die Optimierung des Exports.

In Kapitel 14 wird der Umgang von InDesign mit XML vorgestellt. Neben den normalen Programmfunktionen werden auch die Möglichkeiten per Skripting erörtert.

Wegweiser durch das Buch

Für einen umfassenden Einstieg können Sie Teil I und II durchgehend lesen. Alternativ können Sie das Buch auch mit dem Schwerpunkt GREP bzw. Skripting durcharbeiten.

 

Schwerpunkt GREPFalls Sie sich zunächst nur für die Suche und Ersetzung mit Regulären Ausdrücken interessieren, ist Kapitel 1 der richtige Einstieg für Sie. Im Unterkapitel 10.1 wird gezeigt, wie man mehrere GREP-Abfragen hintereinander ablaufen lassen kann. Weitergehende GREP-Techniken finden Sie in Kapitel 10, das sich in einen Theorie- (→ Unterkapitel 10.2 bis 10.10) und Praxisteil aufteilt (→ Unterkapitel 10.11 bis 10.16). Eine vollständige GREP-Referenz finden Sie hier.

 

Schnelleinstieg SkriptingWenn Sie bereits Programmiererfahrung haben und direkt mit dem Skripting beginnen wollen, ist der folgende Fahrplan empfehlenswert: Informieren Sie sich in Unterkapitel 2.1 über Installation und Ausführung von Skripten. Springen Sie dann zu Kapitel 3 und erlernen Sie die Verwendung der Entwicklungsumgebung ExtendScript Toolkit. Nach einem kurzen Abstecher zum Skript Hallo Welt im Unterkapitel 4.2 können Sie sich in Teil II systematisch in die Programmierung mit JavaScript einarbeiten. Auf wichtige Techniken, die im ersten Teil vorgestellt wurden, wird im Text verwiesen. Bei Ihrem ersten Skriptfehler springen Sie zurück zu Kapitel 5, das sich mit häufigen Fehlern beschäftigt.

 

Schnelleinstieg JavaScript-ProfiWenn Sie schon Erfahrung in JavaScript gesammelt haben, empfehle ich die folgenden Kapitel: Nach der Übersicht über die Installation von Skripten in Unterkapitel 2.1 informieren Sie sich in Kapitel 3 über die IDE ExtendScript Toolkit. Nun können Sie direkt in die Beschreibung des InDesign-Objektmodells in Kapitel 7 einsteigen. Bei Ihrem ersten Skriptfehler springen Sie nochmal zurück zu Kapitel 5, das sich mit häufigen Fehlern beschäftigt. Werfen Sie auch ein Blick auf die Best-Practice-Konzepte in Kapitel 9.

Webseite zum Buch

Für dieses Buch habe ich die Webseite http://www.indesignjs.de eingerichtet. Hier finden Sie alle digitalen Informationen zum Buch sowie aktuelle Neuigkeiten. Über meinen Twitter-Account @grefel veröffentliche ich außerdem aktuelle Informationen zum Buch und zur InDesign-Automatisierung

LinkverkürzerDa niemand zeilenlange Internetadressen aus einem Buch abtippen möchte, habe ich für die meisten Adressen einen Linkverkürzer eingerichtet. Sie erkennen diese Links an dem Symbol. Die darauffolgende Zahl müssen Sie mit der Adresse indesignjs.de kombinieren. Für  18 müssen Sie also http://www.indesignjs.de/18 in die Adresszeile des Browsers eingeben.

Skripte und Beispieldaten

Mit alle Daten als ZIP-Archiv herunterladenIch habe alle Skripte und die Beispieldaten, die im Buch erwähnt werden, auf GitHub zur Verfügung gestellt. Sie können die Daten unter https://github.com/grefel/indesignjs  2 herunterladen.

Schriften

In allen Beispieldokumenten werden die Schriften Alegreya und Alegreya Sans von Juan Pablo del Peral verwendet  139. Sie können bei www.fontsquirrel.com  140 kostenfrei heruntergeladen werden.

InDesign-Skripting-Kurzreferenz

Zum Buch gehört eine InDesign-Skripting-Kurzreferenz mit einer Übersicht der wichtigsten Objekte, Eigenschaften und Methoden des InDesign-Objektmodells. Sie können ein PDF unter http://www.indesignjs.de/idskurzreferenz.pdf  1 herunterladen.

... und außerdem

HinweisDie notwendige Reduktion der Komplexität führt leider manchmal dazu, dass die Skripte nur in den beschriebenen Situationen funktionieren. Um unerwünschte Nebeneffekte auszuschließen, sollten Sie die Skripte nur dann in einem produktiven Umfeld einsetzen, wenn Sie verstanden haben, wie diese genau funktionieren. Spätestens am Ende des ersten Teils sollten Sie die Fähigkeit erlangt haben, die Wirkungen und Nebenwirkungen von Skripten zu verstehen, aber vor allem können Sie dann die Skripte an Ihre eigenen Anforderungen anpassen!

 

ExkurseIn vielen Fällen kommt man bei der Automatisierung mit Technologien in Berührung, über die man ein eigenes Buch schreiben könnte. Damit das Buch auch für Leser ohne Vorkenntnisse lesbar bleibt, habe ich an diesen Stellen kurze Exkurse eingefügt. Diese bieten nur einen minimalen Einstieg und ersetzen nicht das Studium der Technologie. Im Anhang finden Sie Internetressourcen und Buchempfehlungen.

++ ExpertenEinige Themen und Konzepte richten sich an fortgeschrittene Anwender. Diese Bereiche sind wie dieser Absatz hervorgehoben und in der Marginalspalte gekennzeichnet.

ErrataDas Buch ist sicher nicht umfassend und trotz vieler Tests nicht fehlerfrei. Eventuelle Fehler werden auf http://www.indesignjs.de im Bereich Errata veröffentlicht.

Zu den vorgeschlagenen Lösungen gibt es sicher auch Alternativen, die im Rahmen dieses Buches nicht alle dargestellt werden können. Gerne veröffentliche ich interessante Lösungsalternativen auf der Webseite zum Buch. Schicken Sie Ihre Ideen mit einem Hinweis, dass diese zur Veröffentlichung gedacht sind, an gregor.fellenz@publishingx.de. Sie werden zusammen mit weiteren Themen im Bereich Neuigkeiten veröffentlicht.

Tastenkombinationen

Die geläufigen Tastenkombinationen von InDesign setze ich voraus, besonders wichtige oder praktische erwähne ich im Text. Die meisten Tastenkombinationen von InDesign sind unter Windows und Mac identisch. Für die Taste STRG unter Windows wird unter Mac OS cmd bzw. ⌘ verwendet. Im Buch fasse ich die beiden Tasten mit Befehl zusammen.

Formatierungen und deren Bedeutung

Hervorhebungen, wichtige Begriffe, Konzepte oder Techniken sowie Dateinamen und Pfade

Kursiv

Navigation zu Befehlen über InDesign-Menüs und Shortcuts sowie Bezeichnungen von InDesign-Dialogen, Bedienfeldern und Menüs

DateiNeu

Suchanfragen und Ersetzungsanweisungen für die Arbeit mit GREP

Such- oder Ersetzungstext

Code oder Codebestandteile, die im Text erwähnt werden

Code

Hervorhebungen im Code

Fett

Hinweise auf wichtige Themen in der Marginalspalte

Hinweis auf fortgeschrittene Themen in der Marginalspalte

++

Linkverkürzer, die Zahl in Kombination mit der Adresse http://www.indesignjs.de führt Sie zur Webseite.

 18

Feedback

Ich freue mich über jedes Feedback, Kritik oder Verbesserungsvorschläge und natürlich auch über Fehlermeldungen. Sie können mich unter gregor.fellenz@publishingx.de erreichen.

Teil I   Einstieg in die
InDesign-Automatisierung

In diesem Teil möchte ich Sie bei Ihren ersten Schritten begleiten. Der Einstieg ist in drei Bereiche aufgeteilt. Zunächst wird das Suchen und die Ersetzung mit GREP vorgestellt (→ Kapitel 1). Im zweiten Bereich liegt der Fokus auf dem Einsatz von Skripten und wie diese verändert werden können (→ Kapitel 2 bis Kapitel 4). Den Abschluss bildet eine Übersicht zur Fehlersuche in Skripten (→ Kapitel 5).

Der Einstig über die GREP-Funktion bringt Ihnen die »Programmiererlogik« anhand von konkreten Beispielen in einem überschaubaren Themengebiet näher. Die dann folgenden Kapitel zum Thema Skripting sind einfach und übersichtlich gehalten. Sie werden in den Beschreibungen viele Verweise auf den zweiten Teil finden, in dem der Fokus auf einer detaillierten und systematischen Einführung in die Sprache JavaScript und das InDesign-Objektmodell liegt.

Wenn Sie Kapitel 4 durchgehen und dabei das erste Mal programmieren, sollten Sie diese Verweise ignorieren und sich zunächst darauf konzentrieren, ein Gefühl für den Programmablauf und die Zusammenhänge zu bekommen. Zeit für Details bleibt danach immer noch.

Wer schon andere Programme geskriptet oder in anderen Zusammenhängen programmiert hat, dem wird vieles bekannt vorkommen. Für die Leser mit Hintergrundwissen sind auch die Verweise in den zweiten Teil des Buches gedacht. Die Einführung kann in diesem Fall trotzdem hilfreich sein, da sie zeigt, wie Sie Ihre Programmiererfahrung in InDesign einsetzen können. Außerdem erhalten Sie einen guten Überblick, was und wie mit Skripting sinnvoll automatisiert werden kann.

1   Schöner suchen und ersetzen mit GREP

Bei der Arbeit in InDesign kommt man oft mit der Suchen/Ersetzen-Funktion in Berührung. Viele Anwender beschränken sich auf die Suche nach bestimmten Texten, die gegebenenfalls durch andere Texte ersetzt werden. Dies ist allerdings nur das kleinste und einfachste Werkzeug aus dem großen Suchen/Ersetzen-Werkzeugkasten.

Reguläre AusdrückeInDesign bietet ab der Version CS3 neben der normalen Suchfunktion die Suche mit Regulären Ausdrücken bzw. GREP [1]. Hier haben Sie die Möglichkeit, nach Textmustern (z.B. Zahlen, Leerräumen, Großbuchstaben etc.) zu suchen. Ein Beispiel ist die Suche nach allen Zahlen von 0 bis 9 mit einem einzigen Suchbefehl. Die gefundenen Zeichen können dann bei der Ersetzung wiederverwendet werden. Stellen Sie sich vor, Sie müssten alle Seitenverweise in einem Dokument von der Form (S. 100) in die Form → Seite 100 bringen. Mit GREP brauchen Sie dafür nur eine Ersetzungsanweisung, weil die unterschiedlichen Seitenzahlen in der Ersetzung wieder eingesetzt werden.

Seit InDesign CS4 gibt es zusätzlich die Möglichkeit, in Absatzformaten so genannte GREP-Stile festzulegen. Hier werden bestimmte Zeichenfolgen definiert, die besonders formatiert werden sollen. Typisch wäre die Kleinerschaltung von Ziffern im Buchsatz oder die Hervorhebung von Namen. In InDesign CS6 wurden zwei Befehle hinzugefügt, die bei der Suche nach Leerräumen und Absätzen hilfreich sind.

 

Auf den ersten Blick sehen die Suchanfragen unübersichtlich und kompliziert aus. Dies ist der Abstraktion geschuldet, die gleichzeitig erst die Mächtigkeit der Suchausdrücke ermöglicht. Solange die Anfragen präzise und logisch formulierbar sind, kann man praktisch alles finden.

Reguläre Ausdrücke sind mit einigen Grundlagen schnell zu erlernen. Für den produktiven Einsatz ist es auch gar nicht notwendig, die letzten Details und Kniffe zu kennen. Statt theoretisch Möglichkeiten zu diskutieren, ist es oft hilfreicher, das grundsätzliche Prinzip zu verstehen und bei schwierigen Anfragen zu wissen, wie man weiterkommt.

 

Im Folgenden stelle ich typische Suchanfragen vor, die man am besten mit GREP lösen kann. Im weiteren Verlauf des Buches werden noch komplexere Such- bzw. Ersetzungsanweisungen (→ Kapitel 10) und Möglichkeiten zum Skripten von GREP-Anfragen besprochen (→ Unterkapitel 4.8).

1.1   Der Suchen/Ersetzen-Dialog

Wenn Sie mit Befehl + F den Suchen/Ersetzen-Dialog aufrufen, sehen Sie die vier Registerkarten für die verschiedenen Suchtypen und die Bedienelemente für die Ausführung der Anweisungen. Der Dialog ist übrigens nicht modal, d.h., Sie können zwischen Dokument und Dialog hin und her wechseln und z.B. per Copy & Paste Text, Leerräume und Sonderzeichen aus dem Dokument übernehmen.

Abbildung 1   Suchen/Ersetzen-Dialog

Abbildung 1 Suchen/Ersetzen-Dialog

Mit den Registerkarten Text und GREP können Texte durchsucht und Ersetzungen vorgenommen werden. Der Aufbau und die Such-Optionen der beiden sind nahezu gleich. In der Registerkarte GREP hat man die Möglichkeit, mit Regulären Ausdrücken zu arbeiten.

Mit der Registerkarte Glyphe können bestimmte Zeichen anhand ihrer ID, mit der Registerkarte Objekt Rahmen anhand von Attributen gesucht werden. Diese Registerkarten werden in diesem Buch nicht vorgestellt, weil man sie in der Praxis nur selten benötigt.

 

Die Registerkarte GREPDie Registerkarte GREP enthält die Texteingabefelder Suchen nach und Ändern in, die Buttons zur Einstellung der Such-Optionen und die Felder für die Formateinstellungen.

Im Suchen- bzw. Ändern-Feld werden die Regulären Ausdrücke für Suchanfragen bzw. Ersetzungsanweisungen eingetragen. Für die Arbeit mit Regulären Ausdrücken werden einige Platzhalter und Zeichen mit einer speziellen Bedeutung benötigt. Diese finden Sie neben den Feldern im Flyout-Menü des -Buttons.

Unter den Texteingabefeldern kann mit einer Dropdown-Liste der Bereich, der durchsucht werden soll, festgelegt werden. Im Normalfall finden Sie hier die Auswahl zwischen allen Dokumenten und dem aktiven Dokument. Wenn sich die Einfügemarke beim Aufruf des Dialogs in einem Text befindet, finden Sie zusätzlich die Möglichkeiten, den aktuellen Textabschnitt oder den Textabschnitt von der Einfügemarke bis zum Ende zu durchsuchen. Der Textabschnitt beinhaltet den Text des Textrahmens oder den Text der miteinander verketteten Rahmen. Falls Sie einen Text ausgewählt haben, gibt es noch die Möglichkeit, die Auswahl zu durchsuchen.

Such-OptionenUnterhalb der Dropdown-Liste können die Such-Optionen eingestellt werden. Mit ihnen kann festgelegt werden, welche Bereiche durchsucht werden sollen. Im Normalfall ist nur die Suche innerhalb von Fußnoten eingeschaltet. Weiterhin kann man für die Suche und Ersetzung auch die Musterseiten und ausgeblendete Ebenen miteinbeziehen. Gesperrte Ebenen bzw. Objekte und gesperrte Textabschnitte können nur bei der Suche berücksichtigt werden. Zu den Such-Optionen zählt auch die ab InDesign CC vorhandene Möglichkeit, Vorwärts bzw. Rückwärts zu suchen.

Im Gegensatz zu der Textsuche sind in der Registerkarte GREP keine Buttons für die Suche nach einem ganzen Wort und für die Beachtung der Groß-/Kleinschreibung vorhanden. Diese Einstellungen werden bei Regulären Ausdrücken im Suchausdruck festgelegt.

Die Suchen/Ersetzen-Funktion von InDesign geht weit über das Suchen und Ersetzen von Buchstaben, Wörtern oder Satzteilen hinaus. InDesign bietet die Möglichkeit, die Suche mit der Angabe von Textformatierungen und Absatzattributen weiter zu verfeinern. Bei der Ersetzung können alle diese Formateinstellungen dann geändert bzw. gesetzt werden. Diese Einstellungen werden in den Feldern Format suchen bzw. Format ersetzen angezeigt. Mit der Lupe gelangen Sie zur Formatauswahl, mit dem Mülleimer können Sie die Formateinschränkungen wieder entfernen.

Abbildung 2   Fette Textstellen kursiv formatieren

Abbildung 2 Fette Textstellen kursiv formatieren

Vermutlich ist Ihnen auch schon aufgefallen, dass der Dialog alle Einstellungen nach dem Schließen beibehält. InDesign vergisst die Einstellungen erst beim Neustart des Programms.

 

Suchen/Ersetzen-Abfragen abspeichernEs können auch komplette Suchen/Ersetzen-Abfragen abgespeichert werden. Dazu finden Sie im Dialog eine Dropdown-Liste und den Button zum Speichern bzw. Löschen der aktuellen Abfrage. Interessante Abfragen kann man so für die spätere Verwendung speichern. Beim Skripting kann man auf die so gespeicherten Abfragen wieder zugreifen. Mit Hilfe des Skripts ChainGREP.jsx können diese Abfragen verkettet und gesammelt ausgeführt werden (→ Unterkapitel 10.1).