W tym artykule chciałbym podzielić się z wami sprawdzonymi rozwiązaniami, które stosuję przy przygotowywaniu dokumentów w LaTeX-ie.Piszę go z myślą o osobach, które mają już pierwsze kroki za sobą i szukają sprawdzonych ustawień, które poprawią wygląd ich dokumentów. Tych, którzy są bardziej doświadczeni w LaTeX-ie również zachęcam do przeczytania, może znajdziecie tutaj coś nowego, co was zainteresuje.
Pakiet klas dla dokumentów po polsku
Zacznę od przedstawienia klas dokumentów, z których korzystam na co dzień – jest to pakiet cwcls, a więcej o tym pakiecie możecie poczytać tutaj.
W skrócie jest to zestaw klas przygotowany z myślą o formatowaniu dokumentów według polskich standardów i wytycznych. Do dyspozycji macie trzy klasy mwart, mwrep, i mwbk, które zastępują kolejno article, report i book.
Osobiście najczęściej stosuję mwart i mwbk. Pierwszej klasy używam do pisania artykułów i dokumentów strukturalnie przypominających artykuł oraz do krótkich opowiadań. Natomiast drugiej klasy używam do dłuższych książek, głównie fabularnych.
Drobna uwaga, pakiet ten nie ustawia domyślnie języka na polski, więc mimo wszystko musicie dodatkowo użyć np. pakietu babel. Autor pakietu opisuje w dokumentacji przyczyny, dlaczego domyślnie nie ustawia języka polskiego, jeśli jesteście ciekawi, zachęcam do przeczytania.
Oto mały przykład:
\documentclass[11pt]{mwart}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[polish]{babel}
Code language: TeX (tex)
Jak widzicie, użyłem klasy mwart z rozmiarem tekstu 11pt, a pozostałe ustawienia pozostawiłem domyślne. Dodatkowo ustawiłem kodowanie na utf8 i użyłem pakietu babel z parametrem polish, co rozwiązuje kwestię formatowania dat i nazewnictwa (spis treści, rozdziały itp.).
Krój czcionki
Przejdźmy teraz do kroju czcionki, pewnie większość z was używa domyślnej lub swojej ulubionej. Zachęcam jednak do wypróbowania pakietu kpfonts, więcej możecie przeczytać tutaj.
Mała uwaga, pamiętajcie, że krój ten został pomyślany do wydruków, a nie ekranów, na których może się źle czytać.
Pakiet ma wiele ciekawych możliwości konfiguracji i zachęcam do zapoznania się z dokumentacją. Sam używam wersji light, na ekranach może wydawać cię nieco ciężka do czytania, ale na wydruku prezentuje się bardzo dobrze.
Oczywiście, to czy dany krój czcionki się komuś podoba, czy nie jest subiektywnym odczuciem, dlatego nie będę was przekonywał, że ten pakiet jest jedynym słusznym wyborem. Zachęcam jednak do sprawdzenia, może wam również się spodoba tak jak mi.
Łamanie wyrazów i przenoszenie jednoliterowych słów
Nie wiem, czy zauważyliście, ale domyślne ustawienia łamania wyrazów mają tendencję do rozciągania wierszy – efektem są szerokie przerwy między wyrazami. W przypadku stron formatu A4 problem może być praktycznie nie zauważalny, ale dla mniejszych formatów lub wąskich kolumn staje się on dość uciążliwy.
Dlatego chciałbym się z wami podzielić moimi ustawieniami, które sprawiają, że łamanie wyrazów wygląda znacznie lepiej.
\tolerance=2000
\emergencystretch=20pt
Code language: TeX (tex)
W dużym uproszczeniu: \tolerance określa, jak bardzo LaTeX może „naginać” odstępy między wyrazami, zanim uzna dany wiersz za zbyt źle złożony, natomiast \emergencystretch pozwala mu awaryjnie zwiększyć te odstępy w trudnych miejscach. Dzięki temu tekst jest bardziej równy wizualnie, kosztem minimalnie mniej restrykcyjnych zasad składu.
Kolejną ważną kwestią jest przenoszenie jednoliterowych wyrazów na końcu linii do owego wiersza. Tutaj sprawa jest dość prosta i wystarczy tylko jedna linia:
\babelprovide[transforms = oneletter.nobreak]{polish}
Code language: TeX (tex)
Marginesy i bindowanie
O ile w przypadku klasy mwart i mwrep lub po prostu article i report domyślne marginesy są całkiem poprawne, to w przypadku książek wprowadziłem kilka poprawek.
Domyślnie dla książki i parametru twoside LaTeX dodaje szeroki margines na notatki margin notes, w moim przypadku się on nie sprawdza. Dlatego ustawiłem mniejsze wartości i dodałem nieco miejsca na bindowanie.
\usepackage[a5paper,twoside,inner=25mm,outer=20mm,top=20mm,bottom=25mm,bindingoffset=5mm]{geometry}
Code language: TeX (tex)
Jak widzicie, użyłem pakietu geometry i tak, dla książek używam formatu A5. Natomiast twoside sprawia, że każdy rozdział rozpoczyna się na nieparzystej / prawej stronie.
Jak widzicie, ustawiłem 25 mm dla marginesu wewnętrznego i dolnego, oraz 20 mm dla zewnętrznego i górnego. Dodatkowo dodałem 5 mm zapasu na bindowanie. Dzięki temu po wydrukowaniu i zbindowaniu dokumentu marginesy wyglądają estetycznie i symetrycznie.
Formatowanie stron dla książek
Ostatnim i chyba najbardziej skomplikowanym elementem, który dodaje do moich dokumentów, głównie klasy mwbk lub book, jest formatowanie nagłówków. Nie wpływa on na sam sposób czytania, ale moim zdaniem poprawia wizualny aspekt książki i jej odbiór przez czytelnika.
Wzorując się na książkach, które czytam, postanowiłem ustawić nagłówki w taki sposób, aby na parzystych stronach widniało moje imię i nazwisko, a na nieparzystych tytuł rozdziału.
W tym celu użyłem dwóch pakietów: titling i fancyhdr, a konfiguracja wygląda tak:
\usepackage{titling}
\usepackage{fancyhdr}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\pretitle{\begin{center}\Huge\bfseries}
\posttitle{\par\end{center}\vskip 1.5em}
\preauthor{\begin{center}\large}
\postauthor{\par\end{center}\vskip 1.5em}
\predate{\vfill\begin{center}\large}
\postdate{\par\end{center}\vfill}
\fancyhf{}
\fancyhead[LE]{\footnotesize \thepage\quad\theauthor}
\fancyhead[RO]{\footnotesize \leftmark\quad\thepage}
\title{Lorem ipsum}
\author{John Doe}
\date{2026}
\pagestyle{fancy}
Code language: TeX (tex)
Omówię teraz pokrótce, co właściwie robią kolejne sekcje.
- Pierwsza sekcja to dodanie pakietów do dokumentu, ale to już pewnie wiecie.
- Druga sekcja sprawia, że z nagłówka zniknie fragment rozdział 1, rozdział 2 itd., a zostanie jedynie tytuł rozdziału. Dzięki temu nie zaśmiecamy nagłówka zbędnymi informacjami.
- Sekcja trzecia odpowiada za formatowanie strony tytułowej. Niestety, użycie pakietu
fancyhdrniszczy jej formatowanie zdefiniowane przez klasęmwbk. W skrócie ustawiamy tytuł na górze strony, pod nim imię i nazwisko autora, a na dole strony rok publikacji. - Sekcja czwarta to formatowanie nagłówka. Na stronach parzystych mamy numer strony oraz imię i nazwisko autora, a na stronach nieparzystych tytuł rozdziału i numer strony. Jeśli chcecie poczytać więcej o pakiecie
fancyhdr, tutaj znajdziecie dokumentację. - Sekcja piąta to ustawienie tytułu, autora, daty oraz stylu strony.
Jeśli zastanawiacie się, w jakim celu używamy pakietu titling, to służy on do wielokrotnego użycia informacji ze strony tytułowej. Dzięki temu mogliśmy użyć \theauthor, podczas formatowania nagłówka, zamiast na sztywno wpisywać imię i nazwisko.
Moje przykładowe dokumenty
Dla krótkich artykułów lub opowiadań stosuję następujący szablon:
\documentclass[11pt,oneside,a4paper]{mwart}
\usepackage[light]{kpfonts}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[polish]{babel}
\babelprovide[transforms = oneletter.nobreak]{polish}
\tolerance=2000
\emergencystretch=20pt
\pagestyle{plain}
\title{Lorem ipsum}
\author{John Doe}
\date{2026}
\begin{document}
\maketitle
% Treść dokumentu
\end{document}
Code language: TeX (tex)
Natomiast w przypadku książek stosuję bardziej rozbudowany szablon:
\documentclass[11pt,twoside,a5paper]{mwbk}
\usepackage[light]{kpfonts}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[polish]{babel}
\usepackage[a5paper,twoside,inner=25mm,outer=20mm,top=20mm,bottom=25mm,bindingoffset=5mm]{geometry}
\usepackage[dinkus]{froufrou}
\usepackage{titling}
\usepackage{fancyhdr}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\babelprovide[transforms = oneletter.nobreak]{polish}
\tolerance=2000
\emergencystretch=20pt
\pretitle{\begin{center}\Huge\bfseries}
\posttitle{\par\end{center}\vskip 1.5em}
\preauthor{\begin{center}\large}
\postauthor{\par\end{center}\vskip 1.5em}
\predate{\vfill\begin{center}\large}
\postdate{\par\end{center}\vfill}
\fancyhf{}
\fancyhead[LE]{\footnotesize \thepage\quad\theauthor}
\fancyhead[RO]{\footnotesize \leftmark\quad\thepage}
\title{Lorem ipsum}
\author{John Doe}
\date{2026}
\pagestyle{fancy}
\begin{document}
\maketitle
% Treść dokumentu
\tableofcontents
\end{document}
Code language: TeX (tex)
Tak jak pisałem wcześniej, dla książek używam formatu A5, jest to chyba najbardziej zbliżony format papieru do standardowych książek, który można dostać w sklepie.
Jeśli kiedyś postanowię samemu wydrukować, dociąć, skleić i przygotować okładkę książki – podzielę się z wami tym doświadczeniem. Na razie jednak pozostanę przy formacie A5 i zwykłym bindowaniu.
Podsumowanie
Miło mi, że mogłem się z wami podzielić swoimi doświadczeniami z LaTeX-em, a jeśli komuś pomogły moje porady, bardzo mnie to cieszy. Zachęcam do eksperymentowania z LaTeX-em, to naprawdę świetne narzędzie, choć próg wejścia może być nieco wysoki, ale warto spróbować dla efektów, które można uzyskać.
