LaTeX/Indeksy
Bardzo użyteczną funkcją w książkach drukowanych są indeksy, czyli alfabetyczne spisy słów kluczowych. Pozwalają one odnaleźć konkretne fragmenty książki w krótkim czasie. Aby stworzyć indeks w LaTeX należy posłużyć się pakietem makeidx.
Używanie makeidx
edytujAby uaktywnić funkcję tworzenia indeksów należy w preambule załadować pakiet:
\usepackage{makeidx}
Dodatkowo należy uaktywnić specjalne komendy związane z tworzeniem indeksów. W tym celu należy także w preambule dodać komendę:
\makeindex
Aby wskazać LaTeXowi jaki wyraz ma indeksować należy użyć komendy:
\index{klucz}
gdzie "klucz" to słowo, które pojawi się w indeksie. Komendę tą wstawia się w miejscy, do którego ma kierować odnośnik w indeksie. Przykładowe zastosowanie przedstawiono poniżej:
Do celów przemysłowych kapsaicynę\index{kapsaicyna} ekstrahuje się z papryki rocznej
Wpis taki stworzy pozycję o nazwie "kapsaicyna" z odnośnikiem do strony, na której znajduje się odwoływany ftagment. Wielokrotne użycie tego samego "klucza" spowoduje pojawienie się jednej pozycji w indeksie, której przypisane będzie kilka stron, na których występuje dane odwołanie.
Aby wstawić indeks do dokumentu należy użyć komendy:
\printindex
Zazwyczaj umieszcza się go na końcu książki. Domyślnie indeks jest drukowany w dwóch kolumnach.
Pakiet showidx drukuje wpisy z indeksu na prawym marginesie tekstu. Pozwala to na łatwe wprowadzanie korekt i sprawdzania poprawności indeksu.
Kompilacja indeksów
edytujKiedy plik wsadowy jest przetwarzany przez LaTeX, każda komenda \index zostaje zmieniona w wpis indeksowy, który zawiera także numer strony. Wszystko to zostaje zapisane do osobnego pliku. Plik posiada taką samą nazwę jak plik wsadowy, jednak jego rozszerzenie to .idx
. Plik ten jest generowany przez komendę:
makeindex nazwa_pliku
Zauważ, że nazwę pliku piszemy bez rozszerzenia. Komenda ta wygeneruje nowy plik o rozszerzeniu .idn
. Po kolejnej kompilacji LaTeX wprowadzi indeks wyrazów do pliku wynikowego w miejscu, w którym znajduje się komenda \printindex.
Indeks stworzony przez LaTeX może być dostosowywany do potrzeb na wszystkie możliwe sposoby. Pakiet zawiera wiele rodzajów stylów, które można zastosować.
Wprowadzanie słów indeksujących
edytujPoniżej przedstawiono sposoby wprowadzania danych do indeksów przy użyciu komendy \index:
Przykład | Wynik | Komentarz |
---|---|---|
\index{Kowalski}
|
Kowalski, 1 | Zwykły wpis |
\index{Kowalski!Jan}
|
Jan, 3 | Indeks Jan wewnątrz indeksu "Kowalski" |
\index{Sam@\textsl{Sam}
|
Sam, 2 | Sformatowany krój pisma |
\index{Lin@\textbf{Lin}
|
Lin, 7 | Sformatowany krój pisma |
\index{Jenny{{!}}textbf}
|
Jenny, 3 | Sformatowany numer strony |
\index{Joe{{!}}textit}
|
Joe, 5 | Sformatowany numer strony |
\index{ecole@\'ecole}
|
école, 4 | Akcenty |
\index{Peter{{!}}see{hello}
|
Peter, see hello | Zobacz |
\index{Jen{{!}}seealso{Jenny}
|
Jen, see also Jenny | Zobacz także |
Poziomy indeksów
edytujJeśli chcemy wprowadzić więcej poziomów indeksowania, należy między kolejne indeksy wprowadzić znak !
. Dla przykładu:
\index{encodings!input!cp850}
utworzy indeks o nazwie "cp850", który znajdować się będzie wewnątrz indeksu "input", który będzie znajdować się wewnątrz indeksu "encodings". Poziomy te w terminologii makeidx mają nazwy subsubindex oraz subindex.
Kontrola nad sortowaniem
edytujAby określić jak słowo indeksowane ma być sortowane, należy na początku wprowadzić wartość po jaką ma się znajdować w indeksie dana pozycja. Następnie po znaku @
wprowadzić sposób w jaki dana wartość ma być wyświetlana. Przykład takiego zastosowania przedstawiono poniżej.
\index{F@$\vec{F}$}
Taki wpis spowoduje wyświetlenie w indeksie znaku " ", jednak znajdować się on będzie pod literą "F".
Zmiana wyglądu numeru strony
edytujAby zmienić formatowanie numeru strony w indeksie, należy po indeksowanym słowie wstawić znak |
, a następnie prowadzić komendę zmieniającą format.
Przykładowo, jeśli na stronie 3 książki wprowadzi się słowo bulldog do indeksu poniższą komendą:
\index{bulldog}
a na stronie 10 tej samej książki ponownie wstawiono odniesienie do tego słowa, jednak używając poniższej komendy:
\index{bulldog|textbf}
Indeks będzie miał następującą formę: bulldog, 3, 10
Jeśli zamiast komendy makeindex
użyje się komendy texindy
wszystki wpisy zostaną posegregowanie tak, iż pogrubione strony będą zawsze przed pozostałymi.
Wiele stron
edytujAby wprowadzić do indeksu zakres stron należy użyć dwóch komend \index
. Pierwszy z nich poninien znajdować się na początku tekstu, do którego indeks wprowadzamy. Po słowie kluczowym komenda powinna zawierać następujące znaki |(
, określające początek zakresu. Po indeksowanym tekście należy wstawić ponownie komendę \index
z identycznym słowem kluczowym jednak po nim powinny znajdować się następujące znaki |)
. Poniżej przykład:
\index{Mechanika kwantowa!Historia|(}
In 1901, Max Planck released his theory of radiation dependant on quantized energy.
While this explained the ultraviolet catastrophe in the spectrum of
blackbody radiation, this had far larger consequences as the beginnings of quantum mechanics.
...
\index{Mechanika kwantowa!Historia|)}
Wstawianie znaków specjalnych
edytujJeśli chcemy, aby wpis w indeksie zawierał znaki specjalne, takie jak: !
, @
, or |
, które są stosowane do wprowadzania konkretnych danych należy umieścić je wewnątrz cudzysłowach.
Lista skrótów
edytujListę skrótów można stworzyć dzięki użyciu pakietu nomencl
[1].
Można także użyć pakietu glossaries
opisanego w rozdziale Słowniki.
Aby włączyć możliwość tworzenia listy skrótów należy w preambule załadować pakiet:
\usepackage[⟨opcje⟩]{nomencl}
\makenomenclature
Pojedyncze wpisy do listy uzyskuje się poprzez wstawienie komendy
\nomenclature[⟨prefix⟩]{⟨symbol⟩}{⟨opis⟩}
Dla każdego symbolu, który chcemy umieścić w wpisie. Najlepiej komendy te umieścić zaraz za miejscem, w którym umieszczono dany symbol po raz pierwszy.
Aby wstawić spis do dokumentu należy w żądanym miejscy wstawić komendę
\printnomenclature
Aby wszystko zadziałało jak należy należy wykonać następujące kompilacje:
- LaTeX
- LaTeX
- makeindex
- LaTeX
W przypadku, gdy plikiem wynikowym ma być .pdf należy zamiast kompilacji LaTeX
użyć pdflatex
.
Aby dodać spis skrótów do spisu treści można posłużyć się opcją intoc dodana do ładowania pakietu nomencl
. Przykład:
\usepackage[intoc]{nomencl}
Tytuł listy może być zmieniony poprzez następującą komendę:
\renewcommand{\nomname}{Lista skrótów}
Wiele indeksów
edytujJeśli potrzebujesz kilku indeksów w jednym dokumencie należy posłużyć się pakietem multind
[2].
Pakiet ten posiada takie same komendy jak powyżej opisany pakiet makeidx
, jednak w tym przypadku trzeba także zdefiniować, do którego indeksu dane słowo ma być wstawione.
\usepackage{multind}
\makeindex{Ksiazki}
\makeindex{Autorzy}
...
\index{Ksiazki}{Tytuł książki} % Dodaje książkę do indeksu Książek
\index{Autorzy}{Nazwisko autora} % Dodaje autora do indeksu Autorów
...
\printindex{Ksiazki}{Indeks książek}
\printindex{Autorzy}{Indeks autorów}
Dodawanie indeksu do spisu treści
edytujDomyślnie indeksy nie są dodawane do spisu treści. Aby to zmienić, należy przed komendą wstawiającą indeks do dokumentu wprowadzić następujące komendy:
\clearpage
\addcontentsline{toc}{chapter}{Index}
\printindex
Jeśli używasz klasy book, możesz zastosować komendę \cleardoublepage
, aby indeks pojawił się na nieparzystej stronie.