Artykuł poświęcony wybranym zagadnieniom optymalizacji składu tekstów ciągłych i trzem zasłużonym na tym polu twórcom. Wyjaśnia, dlaczego na wyraźny postęp w tym zakresie trzeba było czekać ponad pięćset lat.
Jan Gutenberg ukończył 42-wierszową Biblię w roku 1455. Jak to możliwe, że jedno z pierwszych drukowanych dzieł po ponad pięciu wiekach nadal uchodzi za niedościgniony wzór estetycznie złożonego tekstu ciągłego?
Pierwszorzędne znaczenie przy składzie ma zachowanie jednolitej szarości łamu. Przerwy między wyrazami nie powinny być ani za duże, ani za małe – w obrazie łamu nie mogą pojawić się białe wyrwy. Oczywiście im krótszy wiersz, tym trudniej to osiągnąć, a wiersze w Biblii Gutenberga są wyjątkowo krótkie – mają po około 30 znaków, czyli co najmniej dwa razy mniej niż współczesne książki. Jakich zabiegów użył Gutenberg, aby w tak krótkich wierszach utrzymać jednakowe i zbliżone do optymalnych (szerokość litery „I”) odległości międzywyrazowe? Podstawową techniką jaką w tym celu zastosował, było użycie wielu wariantów: a to pojedynczych znaków, a to kombinacji znaków (na przykład ligatur [1]) a to całych wyrazów (na przykład skrótów). Garnitur wersji znaków użytych do złożenia Biblii liczył 290 pozycji. Dzięki temu mistrz mógł podczas składania wybierać z materiału literniczego różnej szerokości. Oczywiście dopasowywanie go tak, aby osiągnąć właściwe odstępy międzywyrazowe i dodatkowo równy rytm pionowych elementów, było bardzo czasochłonne – trwało całe lata – ale efekt jest do dzisiaj oszałamiający.
Drugim wykorzystanym przez Gutenberga zabiegiem było optyczne wyrównanie prawego marginesu, co oznacza, że prawa krawędź łamu w rzeczywistości nie jest linią prostą. Niektóre drobne znaki – dywizy, przecinki czy kropki – są nieco wysunięte w prawo i właśnie dzięki temu łam wydaje się równy. Różnica jest wyraźna – faktyczne wyrównanie wszystkich znaków do przyjętej linii wcale nie daje wrażenia prostej krawędzi, bo przy tych najdrobniejszych powstaje efekt niewielkich wcięć.
Czy techniki zastosowane przez Gutenberga można dziś wykorzystać przy składaniu tekstów ciągłych? Jest kilka uwarunkowań, które nieco komplikują jednoznaczną odpowiedź na to pytanie. Po pierwsze, zmieniają się przyzwyczajenia czytelników. Większość ligatur i skrótów stosowanych w czasach Gutenberga dawno wyszła z użycia, więc współcześnie wyglądałyby nieco dziwnie. Druga przeszkoda ma charakter technologiczny. O ile zabiegi Gutenberga są do powtórzenia w technologii przez niego stosowanej – przy druku ruchomymi czcionkami, o tyle w późniejszych technologiach – druku monotypowego, linotypowego czy fotoskładu – były raczej trudne do wykorzystania. Wreszcie, po trzecie, Gutenberg tworzył Biblię kilka lat, nie był to więc proces szczególnie szybki. Dziś trudno sobie wyobrazić, aby można było poświęcać tyle czasu każdej przygotowywanej publikacji.
Czy sprawa jest więc przegrana i jesteśmy skazani na niską jakość typograficzną tekstów ciągłych? Okazuje się, że trzeba było czekać setki lat, aby rozwój technologii pozwolił sięgnąć po rozwiązania genialnego niemieckiego drukarza i wdrożyć je tak, żeby piękne dzieła mogły powstawać w rozsądnym czasie. Umożliwiły to oczywiście komputery.
W 1993 roku hamburska firma URW zaprezentowała program HZ (hz-program). HZ to inicjały Hermanna Zapfa, niemieckiego projektanta i typografa, który miał największy udział w jego powstaniu. Program HZ składa się z kilku modułów, które miały wprowadzić techniki Gutenberga do składu komputerowego ery desktop publishing. Zapf otwarcie stwierdził, że bezpośrednią inspiracją jego prac była analiza 42-wierszowej Biblii.
Pierwszy z modułów, kf-program, odpowiada za kerning [2]. Większość programów desktop publishing czerpie informacje o kerningu z fontów – są tam umieszczane na stałe przez projektanta. Takie podejście ma jedną zasadniczą wadę. Otóż niezależnie od stopnia pisma jakim składany jest tekst, kerning jest zawsze taki sam, a powinien być od tej zmiennej zależny: im mniejszy stopień pisma, tym większe powinny być odległości międzyliterowe. W większości fontów kerning jest optymalizowany dla pisma wielkości 12 punktów. Są też dalsze niedogodności takiego rozwiązania: jakość kerningu zależy od umiejętności i pracowitości projektanta fontu: liczba par kerningowych (par liter, dla których został określony) jest ograniczona, może to być kilka tysięcy par, ale zdarza się, że jest ich zaledwie kilkadziesiąt.
Moduł kf oblicza kerning dla każdej pary liter w czasie rzeczywistym, zależnie od kształtu znaków. Bierze przy tym poprawkę na stopień pisma, jakim składany jest dany tekst. W ten sposób wyeliminowane zostają wszystkie wymienione powyżej wady systemu czerpania danych o kerningu z fontu. A dzięki temu, że moduł kf potrafi analizować rzeczywiste kształty znaków, możliwe jest odpowiednie wysunięcie ich za krawędź łamu dla osiągnięcia efektu optycznego wyrównana marginesów.
Drugi moduł – Εk – w razie potrzeby wybiera i nieznacznie modyfikuje szerokość tych znaków, których zniekształcenie nie będzie zbyt widoczne. Korekta dotyczy np. wewnętrznego światła znaków, a nie ich kresek. Rezultatem działania modułu jest większa swoboda przy podziale akapitu na wiersze, bo można je dodatkowo skracać lub wydłużać.
Za znajdowanie optymalnych miejsc podziału akapitu na wiersze i dzielenie wyrazów odpowiada trzeci moduł: jp-program. W odróżnieniu od większości programów desktop publishing, które wyznaczają miejsce podziału po analizie kolejnych, pojedynczych wierszy i nie weryfikują decyzji po zbadaniu sytuacji w następnym fragmencie tekstu, jp-program robi to po analizie całego akapitu i wybieraja rozwiązanie, w którym odległości między wyrazami są optymalne dla całości i nie różnią się zbytnio w sąsiadujących wierszach.
Program HZ pozostałby prawdopodobnie teoretyczną wprawką z zakresu optymalizacji składu i bezpowrotnie trafił do archiwów, gdyby firma Adobe nie postanowiła wyprodukować programu konkurencyjnego dla QuarkXPress, dominującego na przełomie wieków na rynku programów dtp. Tak powstał InDesign, w którym wdrożono filozofię większości modułów opracowanych przez Hermanna Zapfa. Nie są to wprawdzie te same algorytmy, a procedury napisano od nowa, ale przyjęto przy tym tę samą zasadę działania. Przyjrzyjmy się zatem bliżej możliwościom programu.
Ilustracja 4. pozwala porównać składy tego samego fragmentu, podzielonego obiema metodami: po lewej – drogą analizy całego akapitu (Adobe Paragraph Composer), a po prawej – na podstawie analizy pojedynczych wierszy (Adobe Single-Line Composer). Różnice są szczególnie widoczne w wierszach: siódmym od góry i trzecim od dołu. Nie ma wątpliwości, który z akapitów ma lepiej zrównoważone odległości międzywyrazowe.
Ilustracja 5. przedstawia rezultat optycznego wyrównania marginesów (Optical Margin Aligment). Tekst z wyrównanymi optycznie marginesami – po lewej – jest niewątpliwie bardziej estetyczny.
Dolny wyraz na ilustracji 6. został złożony przy wykorzystaniu kerningu zaczerpniętego z fontu (Metrics Kerning), skład górnego to efekt działania opcji kerningu obliczanego w czasie rzeczywistym (Optical Kerning). Wydaje się, że odległości międzyliterowe są lepsze przy kerningu dobieranym "w locie”. Dużo lepsze jest choćby zestawienie „Pet”.
Na ilustracji 7. przedstawiono po lewej stronie wersję składu z modyfikacją kształtu glifów [3] (Glyph Scaling), a po prawej – bez takiej modyfikacji. Nie jest do końca jasne, czy regulacji szerokości glifów poddawane są tylko niektóre znaki, dobierane pod kątem zmniejszenia widoczności takich zabiegów, czy jest to po prostu proporcjonalna zmiana ich szerokości w całym wierszu. Jednak nawet w tym drugim przypadku osiągnięty efekt wart jest ryzyka, tym bardziej, że granice tej zmiany zostały określone zaledwie na 3 procent – takie różnice można wykryć chyba tylko metodą mikroskopowej analizy porównawczej.
Ilustracja 8. przedstawia różnicę między tekstem po wprowadzeniu wszystkich modyfikacji (z illustracji 7.) a pierwotnym tekstem (z ilustracji 4.) Obraz akapitu po lewej jest nieporównanie lepszy. I pomyśleć, że tak znaczne polepszenie wyglądu tekstu nie byłoby możliwe, gdyby pewien niemiecki typograf nie zaczął analizować dzieła pewnego niemieckiego drukarza, a pewna amerykańska firma nie postanowiła wyprzeć z rynku innej amerykańskiej firmy…
Czy gdyby nie opisany powyżej ciąg zdarzeń, nie moglibyśmy dzisiaj dobrze składać tekstów? Niekoniecznie, istnieje bowiem rozwiązanie alternatywne. Przyjrzyjmy się, jak do tego doszło.
Kiedy w 1977 roku profesor Donald E. Knuth z Uniwersytetu Stanforda dostał od wydawcy próbne wydruki wznawianej Sztuki programowania (The Art of Computer Programming), swojego dzieła życia, widok książki przeraził go. Poprzednie edycje składano na monotypie, który w 1977 roku wyszedł już z użycia, zastąpiony przez fotoskład. Knuth stwierdził, że skoro tak paskudnie mają wyglądać książki, którym poświęcił 15 lat życia, to woli nie napisać już ani słowa, i że jako naukowiec, powinien spróbować coś z tym zrobić. Postanowił napisać program, przy pomocy którego będzie mógł złożyć własną książkę w sposób, który go zadowoli. Szacował, że nie powinno to zająć więcej, niż 6 miesięcy… Zajęło prawie 10 lat, ale powstał program, który składa teksty o najwyższej jakości typograficznej. Nazywa się TeX (wym. tech) i jest rozpowszechniany całkowicie bezpłatnie. TeX jest bowiem przykładem sztuki programowania najwyższych lotów. Co więcej, autor złożył deklarację, że zapłaci za każdy znaleziony w programie błąd. Ostatnia wypłata – za błąd numer 933 – miała miejsce 20 marca 1995 roku. Przypuszczalnie jest to już bezbłędny i najbardziej stabilny program na świecie.
TeX szczególnie dobrze nadaje się do składania wyjątkowo trudnych dokumentów o specyficznej strukturze, na przykład słowników czy encyklopedii. Znakomicie składa się w nim nawet najbardziej skomplikowane i złożone wzory matematyczne.
W ramach projektu powstał algorytm podziału akapitów na wiersze, zwany total-fit, który robi to na podstawie analizy całego dzielonego fragmentu. Istnieje też rozszerzenie pdfTeX, umożliwiające optyczne wyrównywanie marginesów. Programem Knutha jest tak otwarty i uniwersalny, że z góry można darować sobie pytanie: Czy da się to zrobić w TeX-u? Właściwie postawione pytanie brzmi: Jak to zrobić w TeX-u?
Skoro TeX jest tak doskonały i do tego jest za darmo, to dlaczego jest tak mało popularny? Przyczyną jest trudna obsługa – składanie tekstów w TeX-u przypomina pracę programisty. Nie jest to system wizualny (ang. WYSIWYG – what you see is what you get), program obsługuje się komendami. Nie każdemu to odpowiada, ale jak stwierdził sam Knuth: TeX nie jest dla każdego, tylko dla tych, którym zależy na typografii najwyższej jakości.
Artykuł został napisany dla magazynu 2+3D i ukazał się w numerze IV–2002.
Robert Chwałowski
[wersja 2021-01-11]