Przejdź do treści
Ef Ef » Znajdź/zamień – przydatne kody GREP

Znajdź/zamień – przydatne kody GREP

Grep znajdź zamień w indesign

Czym są kody GREP? Jak usprawnić pracę, korzystając z opcji ZNAJDŹ-ZASTĄP i zakładki GREP? Jeśli interesuje Cię tematyka składu – zapraszam do lektury artykułu.

GREP – co to jest?

Nazwa GREP pochodzi od angielskiego wyrażenia global regular expression parser (globalny analizator wyrażeń regularnych). To wyrażenia regularne, które możemy łączyć w różnorakie formuły, usprawniając pracę z tekstem. Warto wiedzieć, że chociaż o kodach GREP i wyrażeniach regularnych mówi się głównie w kontekście programu InDesign i składu, również podczas prac w edytorach tekstu z tych części tych kodów można korzystać. 

Znajdź/Zastąp w pracy redaktora

Warto bardzo ostrożnie korzystać z funkcji Zamień wszystko. Niech pierwszy rzuci kamień ten, komu nigdy nie zdarzyła się pomyłka przy zmianie, dajmy na to,  skrótu „r.” na „rok/roku”… Tak, pamiętam teksty z kwiatkami w stylu „repertuaroku.” czy „wieczóroku.”. Umiejętne korzystanie z wyrażeń regularnych pozwala uniknąć takich sytuacji.

Niestety – nie może być za łatwo. O ile większość wyrażeń regularnych stosowanych w InDesignie działa w programie Libre Office… To z Wordem już tak różowo nie jest. W okienku „Zaawansowane znajdowanie i zamienianie” możemy, owszem, skorzystać z symboli wieloznacznych. Są one jednak inne i w oficjalnym supporcie trudno doszukać się nawet wzmianki o tej funkcjonalności. Dlatego też skomplikowane operacje na tekście i globalne zamiany wolę wykonywać w InDesignie. W Wordzie ograniczam się do zmian zwielokrotnionych spacji, dywizów na półpauzy itp. czy np. zamiany skrótów na rozwinięte formy (i na odwrót).

W redakcji narzędzie Znajdź/Zamień znajduje zastosowanie zwłaszcza w przypadku ujednoliceń. Bardziej zaawansowane zamiany z reguły wykonuję już w programie InDesign podczas składu lub w ramach czyszczenia tekstu, jeśli jest taka potrzeba.

Podstawowe symbole w GREP i ich wyjaśnienie

O podstawowych, najczęściej używanych przeze mnie znacznikach mówię w darmowej lekcji z kursu Skład dla redaktora. Film Wprowadzenie do GREP znajduje się na YouTube .

Zamiany w InDesign – GREP

Aby budować podstawowe komendy w InDesign – nie potrzebujemy znać metaznaków na pamięć. Możemy wybrać interesujące nas znaki z listy rozwijanej:

 VPe1i65mUPXrZJtoy0GeCIRitn3eHxyEPXmo FWyCJCyrAFKHIit8qMchHgUqfpZydFyqPRnutxiS6Yx1Rh0iErj6cbMazGBossfFZsCHSplncm7 Lzln9DBZEoObq5Za1aiGJNNGADCLpbLozuGbg\

Jest kilka ciekawych możliwości, które niekoniecznie są widoczne na pierwszy rzut oka. Jeśli zrozumiemy, jak metajęzyk działa, będziemy w stanie odszukać w tekście bardzo wiele specyficznych, powtarzalnych miejsc i sytuacji. Warto wyjaśnić sobie kilka wzorców, które ilustruje poniższa tabela.

Kryteria wyszukiwaniaWyrażenie GREPPrzykład
Klasa znaków[]Wpisz następujące polecenie, aby znaleźć a, b lub c: [abc]
Ujemne wybieganie naprzód
(?!wzór)
Za pomocą tej wartości można uniknąć określonego wzorca wyszukiwania. Na przykład, aby uniknąć wyszukiwania wersji InDesign CS z listy wersji InDesign, wpisz: InDesign (?!CS.*?)
Dodatnie wybieganie naprzód
(?=wzór)
Za pomocą tej wartości można znaleźć określony wzór. Na przykład, aby znaleźć TYLKO wersje InDesign CS z listy wersji InDesign, wpisz: InDesign (?!CS.*?)
[Mój przykład – poniżej]
Wł. nieuwzględnianie wielkości liter
(?i)
Służy do wyszukiwania tekstu niezależnie od wielkości liter. Na przykład, jeśli chcesz znaleźć Apple w dowolnym zapisie wielkości liter (apple, APPLE itd.), wpisz następujące polecenie: (?i)jabłko
[Ja używam tego kodu np. przy wyszukiwaniu zawieszek].
Wył. nieuwzględnianie wielkości liter
(?-i)
Służy do znajdowania tekstu z rozróżnianiem wielkości liter. Na przykład, jeśli chcesz wyszukać tylko firmę Apple (nie apple, APPLE itd.), wpisz następujące polecenie: (?-i)jabłko
Znajdź znak lub słowo określoną liczbę razy
{ }
Wpisz dowolną z poniższych opcji, aby wyszukać powtarzający się numer znaku lub wyrazu: 
b{3} — dokładnie 3 razy
b(3,} — przynajmniej 3 razy
b{3,}? — dopasowanie TYLKO 3 razy
b{2,3} — przynajmniej 2 razy i nie więcej niż 3 razy

Tym, co będzie nas interesować, i jest bardzo przydatne podczas wyszukiwania specyficznych sytuacji np. aby ostylować dany akapit, jest wybieganie naprzód. Korzystam z tych funkcjonalności wtedy, gdy chcę np. zaznaczyć spację tylko jeśli ZA NIĄ znajduje się, przykładowo, skrót, którego nie chcę oddzielać od jednostki. Mielibyśmy zatem taki zapis:

\x{20}(?=cm|mm|m)

\x{20} – spacja, równie dobrze możemy wpisać z palca z klawiatury. \x sygnalizuje, że będziemy odwoływać się do szesnastkowego zapisu znaków (tabelę z kodami znajdziemy m.in. na stronie algorytm.edu.pl).

Jak zaznaczymy już te spacje, możemy nadać im atrybut „bez dzielenia”:

Image

Lub wpisać taki kod w styl akapitowy (w sekcji Styl GREP) ze stylem znakowym z atrybutem bez dzielenia.

Innym przydatnym znacznikiem do takich kombinacji jest “\K”. Dzięki niemu program zaznaczy dopiero to, co znajdzie się za tym metaznakiem. Bardzo często z niego korzystam. Dla przykładu: wyobraźmy sobie, że mamy wiele znaczników końca akapitu pod sobą (puste entery). Chcemy, aby po takiej przerwie, zawsze pierwszy akapit był bez wcięcia. Jak można to zrobić? Na przykład – właśnie korzystając ze znacznika \K.

W polu znajdź: \r{2,}\K. (enter powtórzony raz lub więcej razy i występujący po tych enterach dowolny znak)

W polu zamień: [pusto]

Zmień format: *wybieramy właściwy dla akapitu bez wcięcia styl akapitowy*

Kilka innych przykładów zamian przy pomocy GREP:

  1. Wiele spacji na jedną spację

Podstawowa zamiana. Jak to często bywa – wszystkie drogi prowadzą do Rzymu, bo jest kilka sposobów na osiągnięcie tego celu. Najprostszy: wystarczy w polu Znajdź wstawić z klawiatury dwie spacje, w Zamień jedną i klikać “Zamień wszystko” – do skutku, aż liczba znalezionych elementów będzie równa 0. 

Jeżeli chcemy zamienić wszystkie powielone spacje na jedną za jednym kliknięciem, możemy skorzystać w InDesignie z wyrażeń regularnych.

Opcja ta działa również w LibreOffice

Znajdź: \x{20}{2,}

Zamień:  *wpisujemy spację z klawiatury*

Co oznacza ten tajemniczy zapis? \x{20} to, jak już pisałam, po prostu spacja. {2,} to – zgodnie z powyższą tabelą – ‘powtórzone dwa lub więcej razy’. 

  1. Zamiana wieku na w.

Jako inny przykład zmiany z wykorzystaniem wyrażeń regularnych weźmy następującą sytuację: musimy zamienić wszystkie występujące w tekście po cyfrach rzymskich wyrazy “wieku” na skrót “w.”. Jak możemy to zrobić, by zmieniły się tylko te miejsca, które chcemy? Sposobów będzie kilka. Sprawdziłam, że zarówno w InDesignie, jak i Libre Office zadziała następujący, składający się z dwóch kroków:

  1. Znajdź: (\b[IVXLM]{2,}\b) \wieku\.
    Zamień: $1~Sw.
  2. Znajdź: (\b[IVXLM]{2,}\b) \wieku
    Zamień: $1~Sw.

Co te kody oznaczają? Najpierw szukamy:  \b – początek wyrazu [IVXLM]{2,} – składającego się ze znaków IVXLM powtórzonych 1 lub więcej razy \b – koniec wyrazu i całość w nawiasie, czyli traktowane jako jedno wyrażenie. Następnie mamy spację – wpisaną z klawiatury i – \wieku\. czyli nasz wyraz zakończony \. – kropką. (sama kropka w metajęzyku oznacza dowolny znak, dlatego musimy poprzedzić ją znakiem “\” – by było wiadomo, że chodzi faktycznie o kropkę).

Pole zamień to $1 – znaleziono 1 – ten fragment znalezionego tekstu, który odpowiada metaznakom ujętym w nawiasie okrągłym. Następnie ~S – twarda spacja i nasze “w.”.

Wprowadzenie do GREP

Lista używanych przeze mnie kodów i propozycje, które kody warto wpisać w style akapitowe, znajduje się w materiałach Skład dla redaktora. Zapraszam również do obejrzenia filmu, w którym pokazuję kilka wyrażeń i wyjaśniam ich działanie.

Skład dla redaktora – Materiały

Dodaj komentarz

VOUCHER NA WYDANIE KSIĄŻKI