General regular expression print neboli GREP je funkce InDesignu, která umí vyhledávat řetězce pomocí regulárních výrazů. V programování často používaný způsob, jak ověřit, jestli zadaný text uživatelem odpovídá určitému zadání. Např. jestli emailová adresa je ve správném tvaru.
Dejme tomu, že v textu o retuši produktové fotografie, chceme tučně vyznačit všechna slova 'fotografie' (pochopitelně ve všech pádech). K tomu mi pomůže styl grep.
Jako první vytvořím příslušný odstavcový styl, kterým bude naformátován celý text. Pak si vytvořím znakový styl, který bude měnit styl hledaného textu; v našem případě všech slov 'fotografie'.
Zbývá ještě nadefinovat styl grep. Otevřu si nastavení stylu chlebového textu. A kliknu na záložku Styl GREP.
Kliknu na Nový styl GREP.
Vytvoří se mi nový styl GREP. V menu aplikovat styl si vyberu znakový styl, který už mám vytvořený.
V poli Na text:
se mi objevil zápis \d+
. Co to znamená? Že styl se má aplikovat na jakoukoliv číslici (\d), která se opakuje jednou nebo vícekrát(+). Takže teď budou tučně všechna čísla.
Ale my chceme mít tučně slovo fotografie ve všech pádech. Začnu tím, že napíšu část slova, která se neohýbá, tedy fotografi
. Všechny výskyty se nám vyznačily tučně, koncovky ale jsou stále regularem. Co s tím?
Použijeme metaznak 'nebo' |
, který umožňuje vyhledávání variant slova stejného základu. Regulární výraz pro náš případ bude vypadat takto fotografi(i|í|e)
.
Ještě nemáme odladěnou situaci, kdy hledané slovo bude na začátku věty a bude mít tedy velké první písmeno. Na to nám pomůže rozšíření výrazu na (f|F)otografi(i|í|e)
.
Ale co když bude text psaný verzálkami? Na to bude nejlepší použít 'nerozlišovat velká a malá písmena'. Náš výraz bude vypadat takto: (?i)fotografi(i|í|e)
.
Potřebnou dokumentaci o GREPu v InDesignu naleznete na stránkách Adobe zde. Doporučuji si projít praktické příklady najít a nahradit, u kterých je použit GREP na pochopení principu. Odladění výrazu GREP může chvíli trvat, ale pokud máte v textu hodně výskytů na úpravu, tak se vyplatí trochu úsilí vynaložit. Navíc lze plno výrazů vygooglit na internetu. Třeba na úpravu mezer u jednoznakovek. Pomocí (nejen) javascriptu by měl jít vyřešit problém s jednoznakovkami v textech na webu. Teoretické řešení jsem našel, ale nepodařilo se mi to rozpohybovat v praxi. Přece jenom jsem détépák a ne programátor. Proto berte s rezervou i návod viz. výše, určitě nepoužívám správnou terminologii. Ale i základy práce s regulárními výrazy vám může ušetřit hodně času.