Tekst archiwalny, opublikowany także na stronie
polskiej Adobe User GroupJak 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ć.

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).

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.].

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ę ;)

Rys. 4