5 oktober 2008

Een GREP (en een CS4 tip!)


Niet zelf verzonnen, maar tegengekomen: een nieuwe handige GREP.
Stel, in de tekst staan (zoals in mijn boek) voor software de te kiezen menuopties tussen haakjes als volgt weergegeven:

(Bestand > Exporteren > PDF)

en ik wil achteraf dit soort menu's in mijn boek volledig cursief zetten. 
Maar soms bevat een menu twee items, soms vier. Gebruik GREP!

Zoek naar:

(<=\().+?(?=\))

Dit vindt tekst tussen ronde teksthaakjes dat tenminste 1 keer het > teken bevat


Dit is als volgt opgebouwd:

.+? elk teken, 1 of meer keer

Gevolgd door groter dan teken .+?>

Gevolgd door elk teken 1 of meer keer .+?>.+?

Maar enkel als er begin haakje staat (?<=\()
('positive lookbehind', met een slash en haakjes om aan te geven dat het geen code is maar echt het teken ( dat je wilt vinden \(

Idem maar dan enkel als ook achter haakje staat (?= )
('positive lookahead')

dus (?<=\().+?>.+?(?=\))

Vervang dit door de gevonden tekst en geef bij opmaak op dat je de gevonden tekst in cursief wilt hebben. Dit geef je op als:

$1

Maar... om in het zoeken naar aan te geven dat het geheel een String is ($1) moet om de gehele zoekstring nog eens haakjes komen te staan! Zodat de eigenlijke zoekstring dus wordt:

((?<=\().+?>.+?(?=\)))

kortom: een hoop haakjes!

Maar nu CS4: in InDesign CS4 kun je deze hele string onderdeel maken van je alineastijl! Je legt in een alineastijl vast dat elke tekst die voldoet in je alinea aan de criteria zoals hierboven beschreven, uitgedrukt in GREP, voorzien moet worden van een bepaalde tekenstijl (in dit voorbeeld: cursief).

LET OP: nu hoeven de extra haakjes er niet omheen aangezien je geen vervang string hoeft op te geven!




En als resultaat:

(Bestand > Exporteren > PDF)


1 opmerking:

Anoniem zei

Dank! Dit ga ik graag uittesten. Ik heb een hele rij met GREP's aangemaakt voor het stijlen van gecodeerd aangeleverde tekst, die ik dan zelf moet gaan toekennen. Niet het meest dramatische werk, wat het werkt. Maar als een alineastijl het werk voor mij zou kunnen doen dan is dat ideaal. Grrr, toch een echt goede reden gevonden om geld uit te geven aan CS4...