Spis treści

Tytuły w dokumencie

Użycie standardowych poleceń prezentujących tytuły
    Tytuły, a spis treści
    Tytuły, a pagina
Numerowanie tytułów
Definiowanie tytułu
Przykłady

Tytuły w dokumencie

W LaTeX-u mamy do dyspozycji szereg poleceń służących do tytułowania części dokumentu na różnych poziomach hierarchii:

dla klasy article
poziom nazwa
0 part
1 section
2 subsection
3 subsubsection
4 paragraph
5 subparagraph
   
dla klasy report i book
poziom nazwa
-1 part
0 chapter
1 section
2 subsection
3 subsubsection
4 paragraph
5 subparagraph

wszystkie polecenia wywołujemy w jednakowy sposób, ale polecenia \part i \chapter są definiowane inaczej niż pozostałe. Do definiowania poleceń \section, \subsection, \subsubsection, \paragraph, \subparagraph służy jedna uniwersalna konstrukcja (\startsection). Wszelkie zmiany w tej konstrukcji mają oczywiście wpływ na wygląd wszystkich definiowanych w ten sposób tytułów.

Definicja makroinstrukcji ,,tytułowej'' przy pomocy konstrukcji \startsection jest sparametryzowana, tak więc w momencie jej definiowania mamy duży wpływ na jej działanie.

Użycie standardowych poleceń prezentujących tytuły

Wywołanie poleceń pokazane jest na przykładzie polecenia \section
\section{tytuł }
wstawienie tytułu; zostanie również zdefiniowana pagina o tej samej treści oraz tytuł  zostanie wstawiony do spisu treści
\section[skrót ]{tytuł }
tytuł  zostanie umieszczony w tekście, a skrót  określi treść paginy i zawartość spisu treści1,
\section*{tytuł }
tytuł  zostanie umieszczony w tekście. Nie zostanie zdefiniowana nowa pagina, i tytuł nie zostanie wprowadzony do spisu treści.
Konstrukcja makropoleceń gwarantuje, aby tekst następujący po tytule nie znalazł sie na następnej stronie (będzie on zawsze do niego ,,przyklejony''), nie może również nastąpić przełamanie strony wewnątrz tytułu.

Tytuły, a spis treści

O tym czy tytuł znajdzie się w spisie treści decyduje parametr
tocdepth
Wszystkie tytuły o numerze poziomu mniejszym lub równym tocdepth (stojące wyżej w hierarchii) będą wprowadzane do spisu treści (oczywiście o tym czy spis treści będzie dołączony do dokumentu decyduje inny parametr p. budowa zestawień) Wartość parametru tocdepth możemy zmienić w następujący sposób:
\setcounter{tocdepth }{3 }

Tytuły, a pagina

W przypadku klasy article polecenia \section i \subsection definiują również paginę odpowienio: \section na stronie lewej (parzystej), kasując paginę na stronie prawej i \subsection na stronie prawej (nieparzystej). W przypadku klas report i book polecenie \chapter definiuje paginę na stronie lewej (parzystej), kasując paginę na stronie prawej, a \section na prawej (nieparzystej). Pagina na stronie lewej jest definiowana przez pierwsze wystąpienie odpowiedniego tytułu na stronie (lub wynika ona tytuu wcześniejszego), natomiast pagina na stronie prawej -- przez ostatnie wystąpienie odpowiedniego tytułu.

Definiowanie paginy odbywa się przez wywołanie wewnątrz makroinstrukcji:

\chaptermark{tytuł }
\sectionmark{tytuł }
\subsectionmark{tytuł }
zmieniając definicję tych makropoleceń możemy mieć wpływ na postać paginy (o zasadach tworzenia paginy, nagłówka i stopki możesz przeczyta? w artykule o paginie).

Numerowanie tytułów

Zwykle tytuły w tekście są numerowane. Standardowo numer danego poziomu zawiera w sobie numer wyższego poziomu.

O tym czy tytuł będzie opatrzony numerem decyduje jego poziom oraz wartość parametru:

secnumdepth
Wszystkie tytuły o numerze poziomu mniejszym lub równym (stojące wyżej w hierarchii) będą opatrzone numerem. Wartość parametru secnumdepth możemy zmienić w następujący sposób:
\setcounter{secnumdepth }{3 }

Każdemu poziomowi odpowiada licznik numerujący kolejne wystąpienia tytułów. Są one zdefiniowane tak, że zmiana numeru na wyższym poziomie inicjuje wszystkie liczniki niższych poziomów.

Uwaga:
Polecenie \part nie powoduje inicjowania liczników podrzędnych. Polecenia \part i \chapter są definiowane inaczej niż wszystkie pozostałe tytuły.

Numery tytułów są prezentowane za pomocą następujących makroinstrukcji:

\thepart
\thechapter
\thesection
\thesubsection
\thesubsubsection
\theparagraph
\thesubparagraph
Np. polecenie:
\renewcommand\thesection{\thechapter.\@arabic\c@section }
definiuje makroinstrukcję \thesection jako złożenie:
polecenia \thechapter. i prezentacji licznika podrozdziałów (section) jako liczby w notacji arabskiej2.

Tak zdefiniowany numer jest wprowadzany do spisu treści, paginy i jako wartość ew. etykiety zaznaczającej tytuł (pojawi się w odwołaniu zamiast \ref{etykieta }).

W poleceniach tych określamy jedynie z czego ma się składać numer oraz w jaki sposób ma być prezentowana wartość licznika.

W LaTeX2e przewidziano możliwość zmiany wyglądu numeru (inna czcionka, kropka po numerze, efekty dodatkowe); wewnątrz konstrukcji definiującej wywoływana jest makroinstrukcja \@seccntformat, której parametrem jest nazwa tytułu (section, subsection ...):

Standardowo jej definicja wygląda następująco:

\makeatletter
\renewcommand{\@seccntformat }[1]{\csname the#1\endcsname\quad }
\makeatother
wstawia ona dodatkowe światło między numerem, a samym tytułem (\quad).

Przykład:

\renewcommand{\thesection }{\fbox{\thechapter.\arabic{section }}}
\section{Definicja błędna }\label{blad }

Powołanie się na numer podrozdziału~\ref{blad }, daje właśnie taki efekt.
\makeatletter
\renewcommand{\@seccntformat }[1]{\fbox{\csname the#1\endcsname }\quad}
\makeatother

\section{Definicja poprawna }\label{dobrze }

W tym przypadku powołanie się na podrozdział~\ref{dobrze } daje
poprawny efekt.

Polecenie \@seccntformat ma wpływ na prezentację numeru tytułów poleceń: \section, \subsection, \subsubsection, \paragraph i \subparagraph.

Przy pomocy tej makroinstrukcji możemy zaspokoić wymagania polskich wydawców, czyli umieścić kropkę po ostatniej cyfrze numeru; poniższa konstrukcja załatwia ten problem.

\makeatletter
\renewcommand{\@seccntformat }[1]{\fbox{\csname the#1\endcsname }.\quad }
\makeatother

Definiowane tytułu

Makropolecenia prezentujące tytuły: \section, \subsection, \subsubsection, \paragraph i \subparagraph są definiowane poleceniem
 \@startsection{nazwa }{poziom }{wcięcie }{odległość przed }{odległość po }{jak prezentować }
nazwa
nazwa polecenia np: section (nie może to być part ani chapter)
poziom
określa poziom tytułu; jest porównywany z parametrami \secnumdepth i \tocdepth -- wpływa na umieszczenie w spisie treści i numerowanie tytułów
wcięcie
określa odległość pierwszego znaku tytułu od lewego marginesu, jeżeli jest to wartość ujemna tytuł zacznie się na lewo od normalnej granicy tekstu (marginesu), następne linie tytułu będą zaczynały się od lewego marginesu
odległość przed
określa odległość przed tytułem; może mieć zdefiniowany skurcz (shrink) i rozciąg (strech). Jeżeli wartość parametru jest ujemna to brana jest wartość bezwzględna, ale pierwszy akapit po tytule nie będzie wcięty (zacznie się od lewego marginesu). Jest to standardowy sposób definiowania -- właściwy dla publikacji anglojęzycznych. Jeżeli wartość jest dodatnia to pierwszy akapit po tytule będzie wcięty na odległość \parindent.
odległość po
określa odległość do najbliższego akapitu po tytule; jeżeli wartość jest ujemna to tekst po tytule traktowany jest jako dalszy ciąg akapitu zawierającego tytuł, a wartość bezwzględna parametru określa odległość w poziomie między końcem tytułu, a dalszą częścią tekstu, powodując jednocześnie, że tekst tytułu nie będzie łamany z dodatkowym lewym marginesem uwzględniającym naturalną szerokość numeru tytułu (tak naprawdę szerokość obiektu określonego poleceniem \@seccntformat).
jak prezentować
zestaw poleceń zmieniających krój pisma, wielkość czcionki sposób formatowania itp.
np.
\normalfont\Large\sffamily\bfseries\itshape

Przykłady

  1. tytuł centrowany
  2. tytuł dosunięty do lewego marginesu
  3. tytuł dosunięty do lewego marginesu bez efektu ,,etykiety''
  4. tytuł dosunięty do prawego marginesu
  5. tytuł z numerem na lewym marginesie


1 Z taką strategią można by polemizować, moim zdaniem do spisu treści powinno być wstawione pełne brzmienie tytułu. Natomiast tekst zawarty w nawiasach [], jeżeli wystąpi, powinien definiować paginę -- często zdarza się, że tytuł w pełnym brzmieniu jest zbyt długi.
2 polecenie \@arabic jest poleceniem niższej warstwy i operuje na TeX-owej nazwie licznika; polecenie LaTeX2e \newcounter{licznik } definiuje TeX-ową nazwę licznika jako \c@licznik

Włodzimierz Macewicz