LaTeX (carte)/Indexare: Diferență între versiuni

De la testwiki
Sari la navigare Sari la căutare
imported>Strainu
m Robot: Înlocuiesc diacritice pentru corectarea diacriticelor
 
(Nicio diferență)

Versiunea curentă din 12 decembrie 2015 21:26

Format:LaTeX/Top

O trăsătură utilă în multe cărți, indexul este o listă alfabetică de cuvinte și expresii cu numerele paginilor din carte unde se găsesc. LaTeX suportă crearea de indici cu ajutorul pachetului Format:LaTeX/Pachet și programul makeindex, denumit în unele sisteme makeidx.

Utilizarea makeidx

Pentru a activa indexarea în LaTeX, trebuie mai întâi să încărcați pachetul Format:LaTeX/Pachet în preambul: Format:LaTeX/Utilizare

și să activați comenzile speciale de indexare punând comanda Format:LaTeX/Utilizare

în preambulul fișierului de intrare. Aceste lucruri trebuie făcute în preambul, întrucât în felul acesta permit sistemului LaTeX să creeze fișierele necesare pentru indexare. Pentru a spune LaTeX ce să indexeze, utilizați comanda Format:LaTeX/Utilizare

unde cheie este intrarea din index, care nu apare în documentul final. Introduceți comenzile de indexare în locul din text către care vreți să se facă trimitere în index, identificat prin cheie. Spre exemplu, textul Format:LaTeX/Utilizare poate fi rescris sub forma Format:LaTeX/Utilizare pentru a crea o intrare numită 'serie Fourier' cu o referință la pagina țintă. Mai multe utilizări ale comenzii \index cu aceeași cheie pe pagini diferite vor adăuga aceste pagini țintă la aceeași intrare în index.

Pentru a afișa indexul în document, folosiți comanda Format:LaTeX/Utilizare Se obișnuiește ca aceasta să se plaseze la sfârșitul documentului. Formatul implicit al indexului este cu două coloane.

Pachetul Format:LaTeX/Pachet care face parte din sistemul LaTeX afișează toate intrările din index în partea stângă a textului. Acest lucru este foarte util pentru corectarea unui document și verificarea indexului.

Compilarea indexului

Când fișierul de intrare este procesat de LaTeX, fiecare comandă Format:LaTeX/LaTeX scrie o intrare corespunzătoare în index, împreună cu numărul paginii curente, într-un fișier special. Fișierul are același nume ca și fișierul de intrare LaTeX, însă cu altă extensie (.idx). Acest fișier .idx poate fi apoi procesat cu programul makeindex. Scrieți în linia de comandă:

makeindex nume_fișier

Notați că nume_fișier se scrie fără extensie: programul va căuta fișierul nume_fișier.idx. Puteți pasa direct fișierul nume_fișier.idx programului ca argument. Programul makeindex generează un index sortat cu același nume de bază, însă de data aceasta cu extensia .ind. Dacă fișierul de intrare LaTeX este procesat din nou, acest index sortat este inclus în document în punctul unde LaTeX întâlnește comanda Format:LaTeX/LaTeX.

Indexul creat de LaTeX cu opțiunile implicite poate să nu arate așa cum doriți. Puteți personaliza aspectul indexului cu un set de fișiere de stil ce însoțesc programul makeindex, aflate de obicei undeva în structura de directoare a sistemului TeX, în general în subdirectorul makeindex. Pentru a transmite makeindex să folosească un anumit fișier de stil, rulați programul cu opțiunea:

 makeindex -s <fișier de stil> nume_fișier

Dacă folosiți un program cu grafică pentru a compila fișierele sursă LaTeX și cu indexul, s-ar putea să trebuiască să setați opțiunile acestuia. Iată câteva sfaturi legate de configurație pentru programele tipice:

Setările MakeIndex în WinEdit

Să zicem că vreți să adaugați un fișier de stil pentru index numit simplu_idx.ist

  • Texify/PDFTexify: Options→Execution Modes→Accessories→PDFTeXify, adăugați la Switches: --mkidx-option="-s simplu_idx.ist"
  • Doar MakeIndex: Options->Execution Modes→Accessories→MakeIndex, adăugați în linia de comandă: -s simplu_idx.ist

Indexare complexă

Iată câteva exemple de intrări Format:LaTeX/LaTeX:

Exemplu Intrare în index Comentariu
Format:LaTeX/LaTeX Salut, 1 Intrare simplă
Format:LaTeX/LaTeX   Petre, 3 Subelement al intrării 'Salut'
Format:LaTeX/LaTeX Sam, 2 Intrare formatată
Format:LaTeX/LaTeX Lin, 7 La fel ca mai sus
Format:LaTeX/LaTeX Jenny, 3 Număr formatat al paginii
Format:LaTeX/LaTeX Joe, 5 Tot ca mai sus
Format:LaTeX/LaTeX école, 4 Accente
Format:LaTeX/LaTeX Petre, see Salut Trimiteri
Format:LaTeX/LaTeX Jen, see also Jenny Ca mai sus

Subelemente ale intrărilor

Dacă o anumită intrare are subsecțiuni, acestea pot fi marcate cu !. Spre exemplu, Format:LaTeX/Utilizare creează o intrare în index, unde 'cp850' face parte din categoria 'input' (care face parte la rândul ei din categoria 'codificări'). Acestea sunt denumite subsubintrări și subintrări în terminologia makeidx.

Controlul sortării

Pentru a determina cum urmează să se sorteze indexul după o cheie, plasați o valoare ce va fi folosită pentru sortare înaintea cheii, cu @ ca separator. Acest lucru este util dacă există un mod de formatare sau matematic, așa că un exemplu ar putea fi Format:LaTeX/Utilizare astfel încât intrarea din index va arăta în felul următor: 'F', dar va fi sortată ca 'F'.

Schimbarea stilului pentru numărul paginii

Pentru a schimba formatarea numărului unei pagini, adăugați un | și numele unei comenzi ce realizează formatarea. Această comandă ar trebui să accepte doar un argument.

Spre exemplu, dacă la pagina 3 a unei cărți scrieți 'buldogi' și comanda Format:LaTeX/Utilizare iar la pagina 10 din aceeași carte vreți să afișați secțiunea principală despre buldogi cu un număr aldin al numărului paginii, dați comanda Format:LaTeX/Utilizare Asta va apare în index sub forma

buldog, 3, 10

Dacă utilizați programul texindy în loc de makeindex, intrările clasificate vor fi și ele sortate, astfel încât toate intrările aldine vor fi așezate înaintea tuturor celorlalte în mod implicit.

Pagini multiple

Pentru a face o indexare pe mai multe pagini, adăugați |( și |) la sfârșitul comenzii Format:LaTeX/LaTeX, ca în Format:LaTeX/Utilizare Intrarea din index pentru subelementul 'Istorie' va fi intervalul paginilor dintre cele două comenzi Format:LaTeX/LaTeX.

Utilizarea unor caractere speciale

Pentru a plasa valori cu !, @, sau | în comanda Format:LaTeX/LaTeX, trebuie să citați aceste caractere folosind ghilimele (") și puteți afișa " doar citând ghilimelele: o cheie pentru " ar fi Format:LaTeX/LaTeX.

Această regulă nu merge pentru \", astfel că pentru a pune ä în index, încă mai puteți folosi Format:LaTeX/LaTeX.

Avertismente

Comanda Format:LaTeX/LaTeX poate afecta aranjarea în pagină dacă nu este folosită cu atenție. Iată un exemplu:

Un cuvânt \index{cuvânt}. Spre deosebire de cuvânt\index{cuvânt}. Notați poziția punctului ce marchează sfârșitul frazei.

Un cuvânt . Spre deosebire de cuvânt. Notați poziția punctului ce marchează sfârșitul frazei.

Listă de abrevieri

Puteți face o listă de abrevieri cu ajutorul pachetului nomencl. Ar putea să vă intereseze și pachetul Format:LaTeX/Pachet descris în capitolul Glosar.

Pentru a activa trăsătura de clasificare (nomenclature) din LaTeX, scrieți în preambul: Format:LaTeX/Utilizare

Dați comanda Format:LaTeX/LaTeX pentru fiecare simbol pe care vreți să-l includeți în lista de clasificări. Locul cel mai bun pentru această comandă este imediat după ce introduceți simbolul prima dată. Scrieți Format:LaTeX/LaTeX în locul în care vreți să apară lista de clasificări.

Rulați comanda de compilare LaTeX de două ori, apoi

makeindex nume_fișier.nlo -s nomencl.ist -o nume_fișier.nls

iar apoi rulați comanda LaTeX încă o dată.

Indecși multipli

Dacă vă trebuie mai mulți indecși, puteți utiliza pachetul multind.

Acest pachet oferă aceleași comenzi ca și Format:LaTeX/Pachet, însă acum trebuie de asemenea să pasați un nume ca prim argument al fiecărei comenzi. Format:LaTeX/Utilizare

Adăugarea indexului la Cuprins

Implicit, indexul nu este afișat la Cuprins, așadar trebuie să-l adăugați manual.

Pentru a adăuga indexul sub forma unui capitol, folosiți această comandă: Format:LaTeX/Utilizare

Dacă utilizați clasa carte (book), probabil veți dori ca indexul să înceapă pe o pagină impară. Pentru a obține acest efect, folosiți comanda Format:LaTeX/LaTeX.

Indecși internaționali

Dacă vreți să sortați intrările ce au caractere internaționale (cum sunt ő, ą, ó, ç, etc.), veți observa că sortarea "nu este tocmai potrivită". În cele mai multe cazuri, caracterele sunt tratate ca niște caractere speciale și sfârșesc prin a fi în același grup cu @, ¶ sau µ. În cele mai multe limbi ce folosesc alfabetul Latin, acest comportament nu este cel corect.

Generarea indexului

Din păcate, versiunile curente ale xindy și Format:LaTeX/Pachet sunt incompatibile. Când utilizați modificatorii Format:LaTeX/Parametru sau Format:LaTeX/Parametru, texindy va tipări un mesaj de eroare:unknown cross-reference-class `hyperindexformat'! (ignored) și va adăuga paginile la index. O soluție posibilă este descrisă pe pagina de discuție.

Pentru a genera un fișier cu un index internațional, trebuie să folosiți texindy în locul makeindex.

xindy este un sistem de indexare mult mai extensibil și mai robust decât makeindex.

Spre exemplu, nu trebuie să scrieți: Format:LaTeX/Utilizare pentru a obține intrarea Lin după LAN și înainte de LZA, în schimb, e suficient să scrieți Format:LaTeX/Utilizare

Însă ce e mult mai important, poate sorta în mod corespunzător fișierele de indexare în numeroase limbi, nu doar engleză.

Din păcate, generarea de indecși gata de utilizat de către sistemul LaTeX cu ajutorul xindy este ceva mai complicat decât cu makeindex.

Mai întâi, trebuie să știm în ce tip de codificare (encoding) a fost salvat fișierul .tex. În cele mai multe cazuri, acesta va fi UTF-8 sau ISO-8859-1, deși dacă locuiți, spre exemplu, în Polonia, ar putea fi ISO-8859-2 sau CP-1250. Verificați parametrul pachetului Format:LaTeX/Pachet.

Apoi, trebuie să știm care limbă este predominant utilizată în document. xindy poate sorta nativ indecși în albaneză, olandeză, ebraică, latină, norvegiană, slovacă, bielorusă, engleză, georgiană, maghiară, letonă, poloneză, slovenă, vietnameză, bulgară, esperanto, germană, islandeză, lituaniană, portugheză, spaniolă, croată, estonă, greacă, italiană, română, sorabă, suedeză, cehă, finlandeză, romă, klingoniană, macedoneană, rusă, turcă, daneză, franceză, hausă, curdă, mongolă, sârbă și ucraineană.

Nu știu dacă alte limbi au probleme similare, însă cu limba poloneză, facă fișierul .tex este salvat în formatul UTF-8, fișierul .ind produs de texindy va fi codificat cu ISO-8859-2 dacă utilizați doar opțiunea -L polish. Deși nu este o problemă pentru intrări ce conțin litere poloneze, de vreme ce LaTeX codifică intern toate literele în plain ASCII, constituie o problemă pentru literele cu accente de la începutul cuvintelor. La crearea de noi grupuri de intrări în index, dacă aveți, spre exemplu, o intrare "średnia", veți obține un "Ś" codificat în ISO-8859-2 în fișierul de ieșire .ind. LaTeX nu agreează ca o parte a fișierului să fie scrisă în UTF-8 și altă parte în IS-8859-2. Soluția evidentă (adăugarea -C utf8) nu merge, texindy se oprește cu eroarea

ERROR: Could not find file "tex/inputenc/utf8.xdy"

Pentru a rezolva această problemă, trebuie să încărcați stilul de definiție pentru antete cu -M switch:

-M lang/polish/utf8

La sfârșit trebuie să rulăm o comandă de genul:

texindy -L polish -M lang/polish/utf8 nume_fișier.idx

xindy în Kile

Pentru a utiliza programul texindy în locul makeindex în Kile, trebuie fie să redefiniți programul ajutător MakeIndex în Settings → Configure Kile... → Tools → Build, fie să definiți noul program și să redefiniți alte programe auxiliare să-l folosească.

Definiția xindy ar trebui să arate cam așa:

General:
 Comandă: texindy
 Opțiuni: -L polish -M lang/polish/utf8 -I latex '%S.idx'
Avansat:
 Tip: Run Outside of Kile
 Clasă: Compile
 Extensia sursei: idx
 Extensia fișierului de ieșire: ind
 Fișierul de ieșire: <empty>
 Director relativ: <empty>
 Stare: Editor
Menu:
 Adaugă program auxiliar la meniul Build: Compile
 Icoană: imaginea preferată


Format:LaTeX/Bottom