LaTeX/Indeksiranje
Posebno korisno kod štampanih knjiga, indeks je azbučna lista reči i izraza sa stranama knjige na kojima se one mogu naći. LaTeX podržava stvaranje indeksa sa njegovim paketom makeidx, i njegovim programom podrške makeindex
, koji se na nekim sistemima nazivaju makeidx
.
Upotreba makeidx
urediDa biste osposobili funkciju indeksiranja LaTeX-a, makeidx paket mora biti učitan u preambuli sa:
\usepackage{makeidx}
|
i posebne konande za indeksiranje se moraju osposobiti tako što će se staviti
\makeindex
|
komanda u preambulu ulazne datoteke. Ovo bi trebalo uraditi unutar preambule, pošto ona govori LaTeX da napravi datoteke potrebne za indeksiranje. DA bi rekli LaTeX šta da indeksira, koristite
\index{кључ}
|
gde je ključ unos indeksa i on se ne pojavljuje u konačnom izgledu. Unesete konade indeksiranja na mestima u tekstu na koje vi želite da se indeks referiše, verovatno blizu razloga za ključ. Na primer, tekst
Да бисте решили разне проблеме у физици, може бити од користи
да изразите било коју произвољну функцију која је глатка по сви деловима као
Фуријову серију која се састоји од више синусних и косинусних функција.
|
može se ponovno napisati kao
Да бисте решили разне проблеме у физици, може бити од користи
да изразите било коју произвољну функцију која је глатка по сви деловима као Фуријову серију
\index{Фуријова серија}
која се састоји од више синусних и косинусних функција.
|
da biste napravili bilo koji unos koji se zove 'Furijova srija' sa referencom na ciljanu stranu. Više upotreba \index sa istim ključem na različitim stranama će dodati te ciljane strane na taj isti pristup indeksu.
DA biste pokazali indeks unutar dokumenta, samo koristite komandu
\printindex
|
Uobičajeno je da se stavi na kraju dokumenta. Uobičajeni format indeksa je dve kolone.
Showidx paket koji dolazi sa LaTeX-om štampa sve pristupe indeksa u desnu marginu teksta. Ovo je poprilično korisno za korekciju dokumenta i verifikaciju indeksa.
Kompilacija indeksa
urediKada je ulazna datoteka procesuirana sa LaTeX-om, svaka \index
komanda piše odgovarajući indeks pristup, zajedno sa trenutnim brojem strane, na specijalnu datoteku. Ova datoteka ima isto ime kao i LaTeX ulazna datoteka, ali različit nastavak (.idx
). Ova .idx
datoteka se može obraditi unutar makeindex
programa. Ukucajte u komandnoj liniji:
makeindex имедатотеке
Primetite da je imedatoteke bez nastavka: program će tražiti imedatoteke.idx da bi koristio komandu. Opciono možete dodati imedatoeteke.idx direktno programu kao argument. Program makeindex
generiše sortirani indeks sa istim osnovnim imenom datoteke, ali ovaj put s nastavkom .ind
. Ako je sada LaTeX ulazna datoteka obrađena ponovo, ovaj sortirani indeks se uključuje u dokument na mestu gde LaTeX pronađe \printindex
.
Indeks napravljen od strane latex-a sa uobičajenim opcijama tako dobro ili ili tako odgovarajuće kako bi vi želeli. DA biste poboljšali izgled indeksa makeindex
dolazi sa kompletom stilova datoteka, obično lociranih negde u tex strukturi direktorijuma, obično ispod makeindex
poddirektorijuma. Da biste rekli makeindex da koristi određeni stila datoteka, pokrenite ga sa opcijom komandne linije:
makeindex -s [style file] имедатотеке
Ako koristite GUI za kompilaciju latex i indeks datoteka, možda ćete morati da podesite ovo u opcijama. Evo nekoliko saveta oko konfiguracije za tišične alate:
MakeIndex opcija u WinEdt
urediAko vi recimo želite dadodate stil indeksiranja datoteka imenovan простдекс.ist
- Texify/PDFTexify: Options→Execution Modes→Accessories→PDFTeXify, dodaj u Switches:
--mkidx-option="-s simpleidx.ist"
- MakeIndex sama: Options→Execution Modes→Accessories→MakeIndex, dodaj u komandnoj liniji:
-s simpleidx.ist
Sofisticirano indeksiranje
urediIspod su primeri \index
pristupa:
Primer | Unos indeksa | Komentar |
---|---|---|
\index{hello}
|
hello, 1 | Običan unos |
\index{hello!Peter}
|
Peter, 3 | Podunos posle 'hello' |
\index{hello!Sam@\textsl{Sam}}
|
Sam, 2 | Podunos formatiran i sortiran |
\index{Sam@\textsl{Sam}}
|
Sam, 2 | Formiran unos |
\index{Lin@\textbf{Lin}}
|
Lin, 7 | Isto kao i iznad |
\index{Jenny|textbf}
|
Jenny, 3 | Formatirani broj strane |
\index{Joe|textit}
|
Joe, 5 | Isto kao i iznad |
\index{ecole@\'ecole}
|
école, 4 | Rukovanje akcentima |
\index{Peter|see {hello}}
|
Peter, see hello | Upućivanje |
\index{Jen|seealso{Jenny}}
|
Jen, see also Jenny | Isto kao i iznad |
Podunosi
urediAko neki unos ima podsekcije, one mogu biti obelenjene sa !
. Na primer,
\index{encodings!input!cp850}
|
bi kreiralo unos indeksa sa 'cp850' kategorizano pod 'ulaz' (koji je i sam kategorizovan u 'kodiranja'). Oni se nazivaju podpodunosi i podunosi u makeidx terminologiji.
Kontrola sortiranja
urediU cilju određivanja kako je ključ indeksiranja sortiran, postavite vrednost da sortira po vrednosti pre ključa sa @
kao separatorom. Ovo je korisno ako postoji bilo koje formatiranje ili matematički režim, tako da bi jedan primer mogao biti
\index{F@$\vec{F}$}
|
tako da će se unos u indeksu pokazati kao ' ' ali će biti sortiran kao 'F'.
Da biste kombinolai sa funkcijom iznad sa podunosima, trebate stilizovati odgovarajuće komponenete:
\index{bug reports!In re code@\emph{In re} code}
\index{LaTeX@\LaTeX!Typesetting engine}
|
Promena stila broja strane
urediDa se promeni formatiranje broja strane, dodelite |
i ime neke komande koja vrši formatiranje. Ova komanda bi trebalo da prihvata samo jedan argument.
Na primer, ako na strani 3 knjige uvedete buldoge i uključite komandu
\index{булдог}
|
i na strani 10 iste knjige poželite da pokažete glavni deo o buldozima sa podebljanim brojem strane, upotrebite
\index{булдог|textbf}
|
Ovo će se pojaviti u indeksu kao buldog, 3, 10
Ako koristite texindy
umesto makeindex
, svrstani unosi će biti takođe sortirani, tako da će svi podebljani unosi biti postavljeni pre svih ostalih po normali.
Više stranica
urediDa biste izvršili indeksiranje više stranica, dodajte |(
i |)
na kraju \index
komande, kao u
\index{Квантан механика!Историја|(}
У 1901 години, Max Planck објавио своју теорију зрачења која зависи од квантизиране енергије.
Док је ово објаснило ултраљубичасту катастрофу у спектру
црног зрачења, ово је имало далеко веће последице као почетак квантне механике.
...
\index{Квантан механика!Историја|)}
|
Unos u indeksu za podunos 'History' će biti u rasponu strana između \index
komandi.
Upotreba specijalnih znakova
urediDA bi stavili vrednosti sa !
, @
, ili |
, koji su inače znakovi prekida, u indeksu, morate citirati oce znakove u \index
komandi tako što ćete staviti duple navodnike ("
) ispred njih, samo možete staviti "
unutar indeksa tako što ćete ga citirati (t.j., ključ za " bi bio \index{""}
).
Ovo pravilo ne važi za \", zato stavite slova ä u indeks, možete i dalje koristiti \index{a@\"{a}}
.
Lista skraćenica
urediMožete da napravite listu skraćenica sa paketom nomencl [1]. Možda ćete takođe biti zainteresovani za upotrebu glossaries paketa opisanog u Rečnik poglavlju. Druga opcija je paket acronym [2].
Da biste osposobili funkciju nomenkalture LaTeX-a, nomencl paket mora biti učitan u preambuli sa:
\usepackage[⟨options ⟩]{nomencl}
\makenomenclature
|
Izdajte \nomenclature[⟨prefix⟩]{⟨simbol⟩}{⟨opis⟩}
komandu za svaki simbol koji želite da bude uključen u listu nomenklature. Najbolje mesto za ovu komandu je odmah pošto uvedete simpol po prvi put. Stavite \printnomenclature
na mesto gde želite da imate vašu listu nemenklature.
Zatim pokrenite LaTeX dva puta
makeindex имедатотеке.nlo -s nomencl.ist -o имедатотеке.nls
posle čega ćete pokrenuti LaTeX još jednom.
DA bi dodali listu skraćenica u sadržaj, intoc opciaj se može koristiti kada se dekalriše nomencl paket, t.j.
\usepackage[intoc]{nomencl}
|
umesto upotrebe koda u Adding Index to Table Of Contents sekciji.
Naslov liste se može promeniti korišćenjem sledeće komande:
\renewcommand{\nomname}{Листа скараћеница}
|
Više indeksa
urediAko vam je potrebno više indeksa možete da koristite paket multind [3].
Ovaj paket obezbeđuje iste komande kao makeidx, ali sada takođe morate propustiti ime kao prvi argument svake komande.
\usepackage{multind}
\makeindex{књиге}
\makeindex{аутори}
...
\index{књиге}{књига за индексирање}
\index{аутори}{Стави овог аутора у индекс}
...
\printindex{књиге}{Индекс књига}
\printindex{аутори}{Индекс аутора}
|
Dodavanje indeksa sadržaju
urediPo normali, indeks se neće pojavljivati u sadržaju, tako da ga morate dodati ručno.
Da biste dodali indeks poglavlju, upotrebite ove komande:
\clearpage
\addcontentsline{toc}{поглавље}{Индекс}
\printindex
|
Ako koristite klasu knjiga, možda ćete želeti da ga startujete na neparnoj stranici korišćenjem \cleardoublepage
.
Internacionalni indeksi
urediAko želite da sortirate unose koje imaju internacionalne znakove (kao što su ő, ą, ó, ç, itd.) možete otkriti da sortiranje "nije baš dobro". U većini slučajeva ovi znakovi se tretiraju kao posebni znakovi i završe u istoj grupi kao i @, ¶ ili µ. U većini jezika koje koriste latinično pismo to nije tačno.
Generisanje indeksa
urediNa žalost, trenutna verzija xindy
i hyperref su nespojivi. Kada koristite textbf ili textit modifikatore, texindy
će štampati poruku greške:unknown cross-reference-class `hyperindexformat'! (ignored)
i neće dodati te stranice u indeks. Rešenje za ovu grešku opisanu na razgovoru.
Da biste generisali datoteku internacionalnog indeksa morate da koristite texindy
umesto makeindex
.
xindy je mnogo proširivi i i razvijeni sistem indeksiranja nego makeindex
sistem.
Na primer, nije potrebno napisati:
\index{Lin@\textbf{Lin}}
|
da biste dobili Lin unos posle LAN i pre LZA, dovoljno je napisati
\index{\textbf{Lin}}
|
Ali što je mnogo važnije, ona može pravilno sortirati datoteke indeksa na mnogim jezicima, ne samo na engelskom.
Na žalost, generisanje indeksa koji su spremni za upotrebu od strane LaTeX upotrebom xindy
je malo komplikovanije nego sa makeindex
.
Prvo, moramo da znamo u kom kodiranju .tex je projektna datoteka sačuvana. U većini slučajeva biće sačuvana kao UTF-8 ili ISO-8859-1, mada ako živite, na primer u Poljskoj može biti ISO-8859-2 ili CP-1250. Proverite parametar inputenc
paketa.
Drugo, moramo da zanmo koji jezik je uglavnom korišćen u našem dokumentu. xindy može prirodno sortirati indekse na albanskom, beloruskom, bugarskom, hrvatskom, češškom, danskom, hoalndskom, engleskom, ,estonskom, finskom, francuskom, gruzijskom, nemačkom, grčkom, ciganskom, hausa, hebrejskom, mađarskom, islandskom, italijanskom, klingon, kurdijskom, latinskom, letonijskom, litvanskom, makedonskom, mongolskom, norveškom, poljskom, potugalskom, rumunskom, ruskom, srpskom, slovačkom, slovenskom, lužičnosrpskom, španskom, švedkom, turskom, ukrajinskom i vijetnamskom jeziku,
Ja ne znam da li drugi jezici imaju slične probleme, ali sa poljskim, ako je vaša .tex
sačuvana korišćenjem UTF-8, .ind
proizveden od strane texindy će biti kodiran u ISO-8859-2 ako koristite samo -L polish
.
Dok nije problem sa unosima koji sadrže poljska slova, kako LaTeX namerno kodira sva slova u običan ASCII, jeste za akcentovana slova na početku reči, one stvaraju nove grupe unosa indeksa, ako imate, na primer "średnia" unos, dobićete "Ś" kodiranu u ISO-8859-2 .ind
datoteci.
LaTeX ne voli ako je deo datoteke u UTF-8 a drugi deo u IS-8859-2.
Očigledno rešenje (dodavanje -C utf8
) ne radi, texindy
prestaje sa rado sa
ERROR: Could not find file "tex/inputenc/utf8.xdy"
greškom.
Da bi se vo popravilo, morate da učitate stil definicija za naslove koristeći -M switch
:
-M lang/polish/utf8
Na kraju mi moramo da pokrenemo takvu komandu:
texindy -L polish -M lang/polish/utf8 имедатотеке.idx
Još jedan način da sereši ovaj porblem je da koristite "iconv" da napravite utf8.xdy od latin2.xdy
iconv -f latin2 -t utf8 latin2.xdy >utf8.xdy
u fascikli
/usr/share/xindy/tex/inputenc
(Morate imati rut privilegije)
Xindy u kile
urediDa biste koristili texindy
umesto makeindex
u kile, morate ili da redefinišete MakeIndex alatku u Settings → Configure Kile... → Tools → Build, ili da definišete novu altku i redefinišete ostale alatke da biste je koritili (na primer tako što ćete je dodati u QuickBuild).
xindy
definicija bi trebalo da izgleda nalik na ovo:
General: Command: texindy Options: -L polish -M lang/polish/utf8 -I latex '%S.idx' Advanced: Type: Run Outside of Kile Class: Compile Source extension: idx Target extension: ind Target file: <empty> Relative dir: <empty> State: Editor Menu: Add tool to Build menu: Compile Icon: the one you like