12 december 2008

Een CO2 en een H2O GREP


Een klant vroeg het volgende:
"In onze tekst komt vaak CO2 voor. Nu willen we de 2 subscript zetten en met basislijn vershuiven iets omhoog zetten. Kan dit met GREP?"

Maar natuurlijk! In CS4 kun je de GREP uitdrukking deel laten uitmaken van een alineastijl, helemaal makkelijk. In CS3 kun je zoeken en wijzigen in een tekststijl met subscript en aangepaste basislijn verschuiving.

Zoek (of geef dit als GREP stijl op in CS4) dit:

(?<=CO)2

Dit betekent: vind een 2 als deze vooraf wordt gegaan (?<=CO) door CO.

Je geeft dan bij wijzigen in eventueel op:
$0
Gecombineerd met de gewenste tekenstijl.
(Noot: eigenlijk hoeft $0 hier niet eens aangezien je het wijzigen in combineert met een stijl!)

Maar wat nu met H2O?

Je kunt zoeken naar:
(?<=H)2
maar dit vindt ook H2 als woord of H2C etc.

Daarom zoeken we naar de 2 alleen als deze wordt voorafgegaan door een H:
(?<=H)
en alleen als deze wordt gevolgd door een O:
(?=O)

dus dan wordt de zoekstring (of de GREP stijl in CS4) voor H2O:

(?<=H)2(?=O)

Nu wil je in CS4 in deze tekst natuurlijk ook automatische acroniemen hebben, zie de vorige blogs hierover van mij:
\u\u+

Dat werkt MAAR ziet ook CO in CO2 als een acroniem!
Om dit op te lossen heb ik de acroniem GREP stijl in CS4 verandert in:
\u\u+\s
Dit betekent dat er na karakters een spatie moet volgen (dus geen cijfer) dit laat CO2 ongemoeid. Dit gaat echter fout met interpunctie achter een acroniem! Daarom gebruiken we een 'negative lookbehind' voor eventuele cijfers achter acroniemen:

\u\u+(?!\d)

?! is een nagatieve instructie aan het eind, dat wil zeggen: overslaan, en dat moet gebeuren bij cijfers: \d
Het geheel moet tussen haakjes en wordt dan dus (?!\d)

Maak ik dus een alineastijl aan in CS4 en voeg daar de drie GREP stijlen aan toe voor CO2, H2O en acroniemen, dan wordt mijn wetenschappelijke tekst in één klik juist opgemaakt.

(uiteraard is dit alles (H2O en CO2 en acroniemen) ook te vinden in mijn nieuwe boek over InDesign CS4)



Geen opmerkingen: