Zabawy z typografią, czyli co nowego w ,,Przewodniku po pakiecie R” wydanie trzecie.

W poprzednich dwóch wpisach przedstawiłem dwa nowe fragmenty trzeciego wydania ,,Przewodnika po pakiecie R” (pakiety plyr i shiny). Tak się jednak składa, że zmieniło się również dużo w zakresie typografi. I o tych zmianach napiszę dzisiaj.

Napiszę z pewną nieśmiałością. Typografia to dziedzina, w której nowicjusze (a za nowicjusza się uważam) nie powinni zdawać się na intuicję, bo ta łatwo wyprowadzi ich na manowce. Zbyt wiele możliwości by zawierzyć intuicji.

Skoro to taka niebezpieczna dziedzina, to po co pchać palce między drzwi i samodzielnie składać książkę? Czy nie lepiej zlecić to komuś kto na sprawie się zna? A jeżeli już składać to może pozostać przy domyślnych ustawieniach LaTeXa?

Dla składu książki może byłoby lepiej, może nie, nie wiadomo. Ale z pewnością gdybym ten skład zlecił komuś innemu, to nie miałbym okazji się go nauczyć. A w przyszłości, im bardziej niestandardowe pomysły, tym skład może odgrywać większą rolę.

Zresztą, może bym nie targnął się na dużą zmianę wyglądu, gdyby nie to, że w maju dotarło do mnie nowe wydanie ,,Elementarza stylu w typografii” Roberta Bringhursta. Zacząłem czytać. Na początku zdziwiło mnie, że tak przeszkadzają mi ogonki litery y w tej książce, która to niby ma być elementarzem stylu. A później się w nich zakochałem. [ok, przesada, ale bardzo mi się podobają]

Spędziłem więc kilka tygodni na różne eksperymentach, próbując dziesiątek różnych wersji ,,Przewodnika …”. Trwało to długo bo po każdej większej zmianie potrzebowałem czasu by nabrać do niej dystansu. A później pomyślałem, że byłoby miło zobaczyć jak wyglądała ścieżka ,,badanych” rozwiązań. Szczęśliwie Dropbox ma możliwość przeglądania historii zmian pliku, dzięki czemu mając już jedno wybrane rozwiązanie, można przyjrzeć się jak wglądały poprzednie wersje.

Zobaczmy więc jak zmieniało się oznaczenia kodu programu R w trzecim wydaniu.

Formatujemy kod R

Punktem wyjścia było szare tło z ramkami po bokach, takie jak w drugim wydaniu Przewodnika.

Pierwsza zmiana polegała na przejściu z kodowaniem na UTF8. To kodowanie było mi potrzebne by móc pracować z XeLaTeXem i korzystać z dodatkowych krojów pisma. Niestety otoczenie listings zupełnie nie radziło sobie z tym kodowaniem.

Naprawimy to później. W pierwszym kroku chciałem pozbyć się znaków ‘>’ i ‘+’ przed kodem R. Znaki te rozpraszają. Co więcej, im więcej pracuje się w edytorze a mniej w konsoli, tym rzadziej ogląda się te znaki.
Ale jeżeli usunąć ‘>’ i ‘+’ to trzeba jakoś inaczej oznaczyć który fragment kodu jest wejściowy a który jest wynikiem.
Może szarym tłem?

Nie wyglądało to najlepiej, może więc odwrotnie, niech wynik będzie na szarym tle.

To też wyglądało źle, gdy na stronie pojawia się tylko jedna linia wyniku. Pojedyncza szara linia nie wiadomo co znaczy. Może więc zmienimy grubość linii ramki wokół wyjścia.

Z cienkimi liniami jest jednak dużo problemów przy wydruku. Może więc je poszerzmy.

Potrzebowałem kilku dni by odkryć że wygląda to tragicznie. Najgorsze wrażenie robiła zebra fragmentów wejściowych i wyjściowych. Zrezygnujmy więc z niej. Niech tło będzie białe a to co jest wejściem lub wyjściem niech oznacza grubość linii ramki.

Cienka ramka wygląda źle, może więc ją pogrubimy?

Pogrubiona też wygląda źle. Te nieciągłości w grubości wyglądały jakby miały zranić czytelnika.
Zobaczmy jak wyglądać będzie stała szerokość.

Ale teraz nie wiadomo co jest wejściem a co wynikiem. Wynik oznaczymy więc znakiem ##, tak jak to robi pakiet knitr.

Wciąż za mało rzuca się w oczy co jest wejściem a co wynikiem. Dodajmy więc przerwę w ramce tam gdzie kończy się wynik a zaczyna kolejny fragment kodu R.

Dopiero w tym miejscu dotarło do mnie, że nadużywam komentarzy. Po co komentarze w kodzie R, skoro piszę książkę i mogę dowolnie komentować kod językiem naturalnym. Kiedyś uważałem, że wklejanie komentarzy w kodzie R to dobry pomysł, ale to było lata temu, i już nie pamiętam czemu tak uważałem.

Komentarze w języku naturalnym wyglądają lepiej. Ale usuńmy wcięcia, bo te wyglądają strasznie sztucznie.

W tym miejscu zaczęły mi przeszkadzać przerywane linie ramki. Na stronach gdzie było dużo kodu takie przerywane brzegi wyglądały jak serie z karabinu. Zastąpmy je szarym tłem.

Lepiej, ale na szarym tle szare komentarze są mało widoczne. Zróbmy je ciemniejszymi.

Ponieważ wokół kodu jest sporo pustej przestrzeni, mogę trochę ten kod pomniejszyć. Dzięki temu skrócę książkę o ponad 20 stron, nie wpłynie to na czytelność, a odrobinę mniejsza czcionka będzie dodatkowo pełniła rolę wyróżnika.

Zmniejszymy też marginesy.

Małe marginesy gorzej wyglądają, wrócimy do poprzednich,
I czas jeszcze dopracować te koślawe komentarze.

Ostatecznie zmieniłem czcionkę z Palantino na Minion Pro + Inconsolata. Po tych zmianach ramka wygląda następująco.

W tym miejscu uznałem, że ta forma gotowa jest do użycia.

Wybieramy krój pisma

Wspomniana książka ,,Elementarz stylu w typografii” została złożona krojem Minion Pro. Pięknym krojem. Przez kilkanaście dni próbowałem zmusić LaTeXa by zaczął go używać. Niestety na wszystkich frontach i w wersji na MacOS, i Windows, i Ubuntu zostałem pokonany.

Ale nie wszystko stracone, jest inny podobny i też ładny krój. Palantino… (i cała kolekcja różnych jego klonów) Zanim do niego jednak dojdziemy, zobaczmy jak wyglądało wydanie drugie, złożone domyślną czcionką LaTeXową, czyli Computer Modern, zaprojektowaną przez Donalda Knutha.

Używając XeLaTeXa (niestety związane to było z przejściem na UTF8) najłatwiej było mi zacząć z TeX Gyre Pagella. Czcionka wzorowana na Palantino URW.

Kolejnym krokiem było UTW Palantino. Zobaczmy jak zmieniły się ogonki.

Ale w powyższej wersji ligaturki są złe, co widać np. po cudzysłowach. Naprawiamy to.

I w między czasie nauczyłem się jak używać Minion Pro. Czas więc przejść na tę czcionkę [XeLaTex pozwala na wykorzystywanie czcionek zainstalowanych w systemie. Wystarczy wiec sciagnac/kupic kroj w formacie OT lub TT aby go używać w XeLaTeXu].

I tak już zostanie.