Mainmenu
Search
   
Scripts : RegExpSearch    

Skrypt umożliwia wyszukiwanie w dokumentach InDesign fraz spełniających warunki podane w wyrażeniu regularnym i/lub zwrotów zawartych we wstępnie zdefiniowanej liście.

Script allows you to search InDesign file for phrases matching criteria in regular expression or predefined list.


Znalezione zwroty spełniające kryteria można zapisać i ponownie załadować w późniejszym terminie, po uzupełnieniu lub edycji.

Składnia wyrażeń regularnych dostępna jest m.in. pod adresem Microsoft Beefs Up VBScript with Regular Expressions

Dla wyszukanych tekstów można zastosować wybrany styl znakowy (na razie tylko to) albo całą listę (wraz z numerami stron) zapisać jako nowy wątek tekstowy, a tym samym utworzyć indeks.
Działanie i zastosowanie skryptu najłatwiej pokazać na przykładzie.
Found items may be saved and used again later after edition.

Regular expressions syntax is available at Microsoft Beefs Up VBScript with Regular Expressions

Found item may be styled with selected character style. Whole list (altogether with according page numbers) may be written as new story within a publication (index-like list).


PROBLEM


W składanej książce (instrukcji do programu) występują nazwy poleceń lub funkcji, które czytelnik ma wybrać lub kliknąć. Nazwy te mają być wyróżnione. Ponieważ program dostępny jest zarówno w angielskiej, jak i polskiej wersji językowej, redakcja postanowiła, że wyróżnione mają być nazwy angielskie, a po nich ma nastąpić polski odpowiednik umieszczony w nawiasie, ale już bez wyróżnienia.
Niestety, tłumacz wyróżnił oba człony. Nadmiarowe wyróżnienie trzeba zatem usunąć. Miejsc takich w całej książce jest kilkanaście tysięcy...

I work on book (program manual), containing plenty of command names, which should be clicked or typed by user. These names should be emphasized. Because program is available both in English and Polish version, editor decided, that emphasized would be only English names, followed by Polish equivalent in parentheses.
Unfortunately, translator put the emphasis to both parts. I have to remove it from Polish versions of commands. There are more the ten thousands items in the whole book...




ROZWIĄZANIE / SOLUTION


Uruchamiamy skryptStart script




i wpisujemy wyrażenie regularne, które zlokalizuje każdy tekst ograniczony nawiasami:and type regular expression, matching every text in parentheses:


\((\w|[ąćęłńóśźż]| )*\)[ąćęłńóśźż] part is necessary, because \w meta does not match polish diacritics.


po czym klikamy „Pre-Find”.Click „Pre-Find”.




Lista po lewej stronie to wszystkie istniejące w danym tekście wyrażenia zawarte w nawiasach. Łatwo zauważyć, że jest ona zbyt obszerna (zawiera nie tylko te elementy, które chcemy poprawić). Dla tych nadmiarowych trzeba po prostu usunąć znaczniki obok znalezionego tekstu.

Kolejny krok to kliknięcie przycisku „Find” – w prawym okienku pojawi się „drzewiasta” lista zaznaczonych haseł. Ta operacja może trochę potrwać – w opisywanym przypadku (106 stron) zajęła około minuty.

Rezultat przedstawia kolejny ekran:
List on left shows all matching strings in text. As you see, it contains also phrases, which should not be touched. You have to clear checkboxes for such items.

Now click „Find”. Right panel will show tree with matching items. This operation may take a while – in my example (106 pages) about minute.

The result is shown on next picture:




Jak widać, rozwinięcie każdego wpisu pokazuje strony, na których występuje dany zwrot. Kliknięcie takiego odnośnika powoduje przeskoczenie do wskazanej strony.

Naszym celem jest jednak usunięcie stylu. Skrypt nie umożliwia usuwania styli – ale pozwala je nadawać. Tworzymy zatem „pusty” styl (ja mój nazwałem _blank) znakowy, wybieramy go na liście „Assign CharStyle” i ... klikamy „Assign”. Gotowe! (*)
As you see, there are page numbers for every item found. Clicking each entry jumps to proper page.

Our goal is to remove character style. There is no possibility to remove style, but it is possible to set it. I have created „empty” character style (called _blank), selected it on list „Assign CharStyle” and click „Assign”. All done!*




Całość zajęła około 5 minut, z czego większość poświęciłem na „odznaczanie” tych nawiasów, których nie chcę zmieniać (i robienie screenshotów). Ręczne nanoszenie poprawek zajęłoby zapewne kilka godzin.

Nie wątpię, że znajdą się inne zastosowania.

(*) W rzeczywistości styl ten trzeba utworzyć zawczasu – skrypt odczytuje listę styli podczas uruchamiania.
Whole job took about 5 minutes, most of that to unmarking items, which should not be changed (and create screenshots). Doing it manually would probably take more than work day...

* In fact that style must be created before running script – list of available styles is created on startup.



Ściągnij / Download RegExpSearch CS1 - TimeTrial


Ściągnij / Download RegExpSearch CS2 - TimeTrial

Posted by dtp on 2005/8/29 18:33:48 (7200 reads)
Printer Friendly Page Send this Story to a Friend
-->