Terminy i tematyka

info grafika Kolejne spotkanie ACSUG

Kolejne, spotkanie grupy ACSUG planolwane jest na czwartek 15 grudnia 2011.

 

Najnowsze artykuły i testy

 

Nasi Partnerzy

acsug pratner

acsug pratner

acsug pratner

acsug pratner

acsug pratner

acsug pratner

acsug pratner

acsug pratner

acsug pratner

acsug pratner

acsug pratner

acsug pratner

acsug pratner

acsug pratner

Wiszące spójniki w Adobe InDesign CS3

Maciej Przepióra

Czasy ręcznego składu chyba już przeminęły. Czy to znaczy, że zecera zastąpił komputer? To oznaczałoby prawdziwy horror. tyle bezrobotnych. Całe szczęście typografia to także kwestia gustu, a tego nauczyć komputera (jeszcze?) się nie da.

Z drugiej strony trudno dyskutować z ustalonymi regułami, które wypływają z kilkusetletniego doświadczenia adeptów sztuki drukarskiej. Dochodzą do tego także zwyczaje narodowe. Jeden z polskich dobrych zwyczajów zakazuje pozostawiania na końcu wiersza między innymi krótkich, jednoliterowych wyrazów. Ale skąd mają o tym wiedzieć programiści Adobe którzy pracują w USA? Zarówno InDesign CS2 jak i CS3 nie przenoszą automatycznie do następnego wiersza zawieszonych spójników. Po za tym nawet tak rygorystyczny zakaz nie zawsze obowiązuje (np. przy bardzo wąskim składzie). Ułatwienie którego potrzebujemy nie powinno być automatyczne, ale za to szybkie i łatwe do uruchomienia.

Jak zmusić ID do niełamania wiersza w określonych miejscach? Można użyć twardej spacji (zły pomysł - w CS2 ma stałą szerokość) albo nadać tekstowi atrybut No Break. Ale robić to ręcznie dla spójników? Przecież to coś powtarzalnego, coś co da się zdefiniować w regułę; komputery są stworzone do tego rodzaju zadań. Pewnie dlatego istnieją przynajmniej trzy polskie skrypty, rozwiązujące tego rodzaju problemy.

Nowa wersja ID przyniosła wiele zmian - między innymi znaną z innego oprogramowania justowalną twardą spację a także zupełnie nowy system wyszukiwania.[Rys. 1]. Niestety, przy okazji, ulepszenia popsuły obsługę skryptów przeznaczonych dla wcześniejszych wersji. Stare, dobre rozwiązania mogą przestać działać.

indesign

Rys. 1

Jak widać nowe okienko wyszukiwania ma teraz kilka zakładek. Dla nas najważniejsza jest zakładka GREP, pod którą kryje się wyszukiwanie oparte na wyrażeniach regularnych. Wyrażenia regularne (ang. regular expression, w skrócie regex) to bardzo silne narzędzie służące do przeszukiwania tekstu oraz ewentualnych zmian z wykorzystaniem odnalezionych fragmentów. Bardziej zainteresowanym polecam artykuł na wikipedii (http://pl.wikipedia.org/wiki/Wyrażenie_regularne). Zawarte tam informacje powinny pomóc w zrozumieniu podanego tu rozwiązania. Co dość ważne, Adobe na całe szczęście nie stworzył nowego standardu regexów i przyjął składnię stosowaną przez unixowe narzędzie nazywające się. grep (zaskakujące, nieprawdaż?)

Chcemy, by po każdym jednoliterowym spójniku znalazła się taka spacja, która nie będzie się dzieliła na końcu wiersza. W ID CS3 możemy osiągnąć ten cel na dwa sposoby: albo stosując zwykłą spację z atrybutem NoBreak, albo używając nowej twardej justyfikowalnej spacji. Najpierw ustalmy gdzie chcemy mieć taką spację: po spójnikach 'a', 'i', 'o', 'u', 'w', 'z'.

Zapisując to za pomocą wyrażenia regularnego (nawiasy tworzą tzw. grupy, które za chwilę nam się przydadzą):

(\b)(a|i|o|u|w|z)(\b\s)

Wyrażenie to mówi dokładnie: znajdź wszystkie takie miejsca gdzie zaczyna się nowy wyraz (pierwszy nawias), a dokładniej gdzie jest któraś z liter 'a', 'i', 'o', 'u', 'w', 'z' (to w drugim nawiasie) a po niej koniec wyrazu i spacja (trzeci nawias).

W ten sposób znajdziemy wszystkie potencjalne wiszące spójniki. To jednak dopiero połowa sukcesu - przecież zamianę też chcemy zautomatyzować! Tutaj przydają się nam grupy. Grupa to każdy nawias; są one numerowane wg kolejności otwierania. Tak więc tutaj potrzebujemy grupy drugiej (wyszukany spójnik) a następnie spacji (czyli trzeciej grupy).

indesign

Rys. 2

Wybieramy więc [Rys 2.] menu specjalnych znaków (1), a następnie 'Found' -> 'Found 2' (2) i 'Found 3'. Ustawiamy dla tekstu podmieniającego atrybut 'no break' i odpalamy "Change all" [Rys 3.].

indesign

Rys. 3

Czy to wszystko? Oczywiście nie! Możemy przecież użyć twardej justyfikowalnej spacji zamiast spacji z atrybutem NoBreak. Wtedy w polu 'Change to' należałoby umieścić taki napis: '$2~S', a formatowanie wyczyścilibyśmy.

No tak, ale wklepać za każdym razem całe wyrażenie jest dość trudno, za to łatwo się pomylić. Adobe pomyślało i o tym. Możemy zapisać nasze wyszukiwanie klikając na ikonie dyskietki [Rys. 4], a potem nawet podzielić się nim z innymi, co i ja robię ;)

indesign

Rys. 4


panbocian

Maciej Przepióra (panbocian)

powrót do góry strony