2008-08-25 Korekta italikowa

Dawno, dawno temu, gdy pisało się w plain TeXu, korektę italikową wstawiało się ręcznie. (Jeśli nie wiesz, co to korekta italikowa, porównaj to: $ \text{\emph{d}b} $ z tym: $ \text{\emph{d\nocorr}b} $. W pierwszym przypadku, po literze d wstawiono korektę italikową, czyli mały odstęp – różny dla różnych liter – który winno się wstawiać na końcu tekstu pisanego kursywą, a przed ciągiem dalszym, pisanym pismem prostym. Oczywiście, zwykle po drodze jest jeszcze spacja, więc problem nie jest aż tak jaskrawo widoczny – ale jednak jest. Na przykład: $ \text{tu \emph{jest\nocorr} źle} $, $ \text{a tu \emph{jest} dobrze} $.)

Korektę italikową w plain TeXu wprowadza się ręcznie, pisząc np. {\it d\/}b. LaTeX robi to super-fantastycznie-automatycznie-i-nie-za-bardzo-wiadomo-jak sam, zwalniając użytkownika od myślenia, żeby mu się mózg nie przegrzał. Brrr.

Może ktoś zapytać, dlaczego to jest złe? W końcu po to są komputery, żeby sobie ułatwiać życie i automatyzować pracę, prawda?

Popatrzmy zatem dokładniej na problem.

Otóż korekty italikowej nie powinno się wstawiać zawsze. Spójrzmy na poprawne $ \text{\emph{d},} $ (bez korekty) oraz błędne $ \text{\emph{d\/},} $ (z korektą). Widać, w czym rzecz – znaki takie, jak kropka czy przecinek są na tyle niskie, że korekty italikowej nie wymagają.

Cóż więc robi LaTeX? Czy jest aż tak głupi, żeby wstawiać \/ gdzie popadnie? Oczywiście nie. Ma on swój tajemniczy algorytm, który decyduje, kiedy wstawić korektę, a kiedy nie. (“Tajemniczość” polega na tym, że jedynym miejscem, w którym udało mi się o nim czegokolwiek dowiedzieć, były źródła LaTeXa… (Źródła te można znaleźć np. pytając wyszukiwarkę o plik source2e.pdf.) Polecam stronę 213 i następne tychże źródeł – jest tam więcej tekstu niż kodu, i jest on bardzo pouczający. W szczególności, jest tam napisane, jak spowodować, żeby LaTeX nie wstawiał korekty przed innymi znakami niż tylko domyślne przecinek i kropka, a także, jak kazać nie wstawiać korekty doraźnie w jednym miejscu. Jest tam też piękne zdanie: In addition to global customization of when to insert the italic correction, it is of course sometimes necessary to explicitly insert one with \/. Niestety, autorzy nie podają żadnego przykładu owego sometimes.)

Czemu więc jest źle, skoro w sumie jest dobrze?

Ano temu, że to wszystko jest słabo udokumentowane. Tzn. w źródłach jest dobrze – autorzy piszą (z grubsza), co LaTeX robi i jak kazać mu robić co innego. Sęk w tym, że ta informacja nie przedostała się chyba za bardzo do podręczników LaTeXa. A założenie, że każdy użytkownik, który chce składać ładne dokumenty, prędzej czy później będzie czytał źródła LaTeXa (ponad 500 stron A4!) jest cokolwiek ryzykowne. Prawda?

Jak widać, problem leży na styku: program / dokumentacja. LaTeX nie jest tutaj zły sam w sobie; złe jest to, że istotna jego funkcjonalność jest słabo udokumentowana. Tak, jest o tym mowa w The LaTeX companion – ale ta książka nie jest dostępna za darmo. Na pewno nie ma o tym wzmianki ani w Nie za krótkim wprowadzeniu…, ani w An essential guide…; nie przypominam sobie też, żebym gdziekolwiek indziej o tym czytał.

Może LaTeX team, zamiast od ok. 10 lat zapowiadać LaTeXa3, powinien napisać kompetentny, darmowy podręcznik LaTeXa, większy i poważniejszy niż (skądinąd świetne – ale tylko na początek) Nie za krótkie wprowadzenie (zresztą pisane przez kogoś innego)? Ja rozumiem, że oni muszą z czegoś żyć, ale z drugiej strony, darmowy system z komercyjnym podręcznikiem to troszkę głupio, prawda? Nie wiem, może to bez sensu, co piszę, może właściwą odpowiedzią jest “to napisz sam, jak jesteś taki mądry” – kto wie, może i napiszę…

To na koniec podam jeszcze przykład sytuacji, gdy LaTeX sam z siebie nie wstawia korekty italikowej (choć powinna ona być wstawiona), a na którą całkiem często się trafia (przynajmniej, jeśli jest się matematykiem;)): gdy składamy np. tekst twierdzenia (kursywą), a po drodze mamy jakieś symbole matematyczne (niekiedy pisane pismem prostym). Czyli np. $ \text{\emph{Niech \(X\) będzie przestrzenią Banacha nad \(\mathbb{R}\)}} $. Wystarczy się nieco przyjrzeć, żeby zobaczyć, że tak jest dużo lepiej: $ \text{\emph{Niech \(X\) będzie przestrzenią Banacha nad\/ \(\mathbb{R}\)}} $. (Zamiast $ \mathbb{R} $ mogłaby tu być np. dowolna liczba, której pierwszą cyfrą jest 1; liczby składa się w trybie matematycznym, czyli pismem prostym!)

A, i jeszcze jedno. Dawno temu, chyba w którymś biuletynie GUSTu czytałem, jak rozwiązać problem automatycznego wstawiania korekty italikowej. Wyobraźmy sobie jeden wieeelki font, w którym będą zaszyte i pismo proste, i kursywa, i znaki matematyczne… Wtedy można całą sprawę załatwić kerningiem.

KategoriaTeX, KategoriaPlainTeX, KategoriaLaTeX