ЛаТеX/Индексирање

Посебно корисно код штампаних књига, индекс је азбучна листа речи и израза са странама књиге на којима се оне могу наћи. LaTeX подржава стварање индекса са његовим пакетом makeidx, и његовим програмом подршке makeindex, који се на неким системима називају makeidx.

LaTeX

Почетак
  1. Увод100% завршен  Dec 13, 2015
  2. Инсталација100% завршен  Dec 13, 2015
  3. Инсталација додатних пакета 100% завршен  Dec 13, 2015
  4. Основе 100% завршен  Dec 13, 2015
  5. Како пронаћи помоћ 100% завршен  Dec 13, 2015

Заједнички елементи

  1. Структура документа 100% завршен  Dec 28, 2015
  2. Форматирање текста 100% завршен  Dec 27, 2015
  3. Форматирање параграфа 100% завршен  Јан 02, 2016
  4. Боје 100% завршен  Jan 10, 2016
  5. Слова100% завршен  Jan 10, 2016
  6. Структура листи 100% завршен  Jan 10, 2016
  7. Посебни знакови 100% завршен  Jan 10, 2016
  8. Интернационализација 100% завршен  Jan 10, 2016
  9. Ротација 100% завршен  Jan 10, 2016
  10. Табеле 100% завршен  Jan 10, 2016
  11. Стварање наслова 100% завршен  Jan 10, 2016
  12. Распоред стране 100% завршен  Jan 10, 2016
  13. Увоз графике 100% завршен  Jan 10, 2016
  14. Фигуре и натписи100% завршен  Jan 10, 2016
  15. Фусноте и Маргине100% завршен  Jan 10, 2016
  16. Хиперлинкови 100% завршен  Jan 10, 2016
  17. Ознаке и референцирање100% завршен  Jan 10, 2016

Механика

  1. Грешке и упозорења 75% завршен  Јан 02, 2016
  2. Дужине 100% завршен  Јан 02, 2016
  3. Бројачи 100% завршен  Јан 02, 2016
  4. Кутије 100% завршен  Јан 02, 2016
  5. Правила и носачи 100% завршен  Јан 02, 2016

Технички текстови

  1. Математика100% завршен  Jan 10, 2016
  2. Напреднија математика 75% завршен  Jan 10, 2016
  3. Теореме
  4. Хемијска графика 75% завршен  Јан 02, 2016
  5. Алгоритми 75% завршен  Јан 02, 2016
  6. Листирање изворног кода 100% завршен  Јан 02, 2016
  7. Лингвистика 75% завршен  Јан 02, 2016

Посебне стране

  1. Индексирање 75% завршен  Јан 02, 2016
  2. Речник 75% завршен  Јан 02, 2016
  3. Управљање библиографијом‎ 75% завршен  Jan 10, 2016
  4. Више библиографије

Посебни документи

  1. Писма 50% завршен  Јан 02, 2016
  2. Презентације 75% завршен  Јан 02, 2016
  3. Учитељски део 75% завршен  Jan 10, 2016
  4. Кратка биографија 50% завршен  Јан 02, 2016

Креирање графика

  1. Представљање процедуралних графика 100% завршен  Јан 02, 2016
  2. МетаПостови 0% завршен  Јан 02, 2016
  3. Слика 50% завршен  Јан 02, 2016
  4. PGF/TikZ 25% завршен  Јан 02, 2016
  5. PSTricks 50% завршен  Јан 02, 2016
  6. Xy-pic 25% завршен  Јан 02, 2016
  7. Прављење 3D графикa 75% завршен  Јан 02, 2016

Програмирање

  1. Макрои 100% завршен  Jan 10, 2016
  2. Обичан ТеХ‎ 100% завршен  Jan 10, 2016
  3. Креирање пакета 100% завршен  Jan 10, 2016
  4. Теме 75% завршен  Jan 10, 2016

Разно

  1. Модуларни Документи 100% завршен  Jan 10, 2016
  2. Заједничко писање LaTeX докумената 75% завршен  Jan 10, 2016
  3. Отпремање у друге формате 100% завршен  Jan 10, 2016

Помоћ и препоруке

  1. Најчешће постављана питања 100% завршен  Jan 10, 2016
  2. Савети и трикови 75% завршен  Jan 10, 2016

Додаци

  1. Аутори 0% завршен  Jan 10, 2016
  2. Линкови 0% завршен  Jan 10, 2016
  3. Ознаке пакета 0% завршен  Jan 10, 2016
  4. Примери LaTeX докумената 0% завршен  Jan 10, 2016
  5. Индекс 0% завршен  Jan 10, 2016
  6. Речник наредби 0% завршен  Jan 10, 2016

Употреба makeidx

уреди

Да бисте оспособили функцију индексирања LaTeX-а, makeidx пакет мора бити учитан у преамбули са:

\usepackage{makeidx}

и посебне конанде за индексирање се морају оспособити тако што ће се ставити

\makeindex

команда у преамбулу улазне датотеке. Ово би требало урадити унутар преамбуле, пошто она говори LaTeX да направи датотеке потребне за индексирање. ДА би рекли LaTeX шта да индексира, користите

\index{кључ}

где је кључ унос индекса и он се не појављује у коначном изгледу. Унесете конаде индексирања на местима у тексту на које ви желите да се индекс реферише, вероватно близу разлога за кључ. На пример, текст

Да бисте решили разне проблеме у физици, може бити од користи 
да изразите било коју произвољну функцију која је глатка по сви деловима као
Фуријову серију која се састоји од више синусних и косинусних функција.

може се поновно написати као

Да бисте решили разне проблеме у физици, може бити од користи 
да изразите било коју произвољну функцију која је глатка по сви деловима као Фуријову серију
\index{Фуријова серија}
која се састоји од више синусних и косинусних функција.

да бисте направили било који унос који се зове 'Фуријова срија' са референцом на циљану страну. Више употреба \index са истим кључем на различитим странама ће додати те циљане стране на тај исти приступ индексу.


ДА бисте показали индекс унутар документа, само користите команду

\printindex

Уобичајено је да се стави на крају документа. Уобичајени формат индекса је две колоне.


Showidx пакет који долази са LaTeX-ом штампа све приступе индекса у десну маргину текста. Ово је поприлично корисно за корекцију документа и верификацију индекса.

Компилација индекса

уреди

Када је улазна датотека процесуирана са LaTeX-ом, свака \index команда пише одговарајући индекс приступ, заједно са тренутним бројем стране, на специјалну датотеку. Ова датотека има исто име као и LaTeX улазна датотека, али различит наставак (.idx). Ова .idx датотека се може обрадити унутар makeindex програма. Укуцајте у командној линији:

makeindex имедатотеке

Приметите да је имедатотеке без наставка: програм ће тражити имедатотеке.idx да би користио команду. Опционо можете додати имедатоетеке.idx директно програму као аргумент. Програм makeindex генерише сортирани индекс са истим основним именом датотеке, али овај пут с наставком .ind. Ако је сада LaTeX улазна датотека обрађена поново, овај сортирани индекс се укључује у документ на месту где LaTeX пронађе \printindex.

Индекс направљен од стране latex-а са уобичајеним опцијама тако добро или или тако одговарајуће како би ви желели. ДА бисте побољшали изглед индекса makeindex долази са комплетом стилова датотека, обично лоцираних негде у tex структури директоријума, обично испод makeindex поддиректоријума. Да бисте рекли makeindex да користи одређени стила датотека, покрените га са опцијом командне линије:

 makeindex -s [style file] имедатотеке

Ако користите GUI за компилацију latex и индекс датотека, можда ћете морати да подесите ово у опцијама. Ево неколико савета око конфигурације за тишичне алате:

MakeIndex опција у WinEdt

уреди

Ако ви рецимо желите дадодате стил индексирања датотека именован простдекс.ist

  • Texify/PDFTexify: Options→Execution Modes→Accessories→PDFTeXify, додај у Switches: --mkidx-option="-s simpleidx.ist"
  • MakeIndex сама: Options→Execution Modes→Accessories→MakeIndex, додај у командној линији: -s simpleidx.ist

Софистицирано индексирање

уреди

Испод су примери \index приступа:

Пример Унос индекса Коментар
\index{hello} hello, 1 Обичан унос
\index{hello!Peter}   Peter, 3 Подунос после 'hello'
\index{hello!Sam@\textsl{Sam}}   Sam, 2 Подунос форматиран и сортиран
\index{Sam@\textsl{Sam}} Sam, 2 Формиран унос
\index{Lin@\textbf{Lin}} Lin, 7 Исто као и изнад
\index{Jenny|textbf} Jenny, 3 Форматирани број стране
\index{Joe|textit} Joe, 5 Исто као и изнад
\index{ecole@\'ecole} école, 4 Руковање акцентима
\index{Peter|see {hello}} Peter, see hello Упућивање
\index{Jen|seealso{Jenny}} Jen, see also Jenny Исто као и изнад

Подуноси

уреди

Ако неки унос има подсекције, оне могу бити обелењене са !. На пример,

\index{encodings!input!cp850}

би креирало унос индекса са 'cp850' категоризано под 'улаз' (који је и сам категоризован у 'кодирања'). Они се називају подподуноси и подуноси у makeidx терминологији.

Контрола сортирања

уреди

У циљу одређивања како је кључ индексирања сортиран, поставите вредност да сортира по вредности пре кључа са @ као сепаратором. Ово је корисно ако постоји било које форматирање или математички режим, тако да би један пример могао бити

\index{F@$\vec{F}$}

тако да ће се унос у индексу показати као ' ' али ће бити сортиран као 'F'.

Да бисте комбинолаи са функцијом изнад са подуносима, требате стилизовати одговарајуће компоненете:

\index{bug reports!In re code@\emph{In re} code}

\index{LaTeX@\LaTeX!Typesetting engine}

Промена стила броја стране

уреди

Да се промени форматирање броја стране, доделите | и име неке команде која врши форматирање. Ова команда би требало да прихвата само један аргумент.

На пример, ако на страни 3 књиге уведете булдоге и укључите команду

\index{булдог}

и на страни 10 исте књиге пожелите да покажете главни део о булдозима са подебљаним бројем стране, употребите

\index{булдог|textbf}

Ово ће се појавити у индексу као булдог, 3, 10

Ако користите texindy уместо makeindex, сврстани уноси ће бити такође сортирани, тако да ће сви подебљани уноси бити постављени пре свих осталих по нормали.

Више страница

уреди

Да бисте извршили индексирање више страница, додајте |( и |) на крају \index команде, као у

\index{Квантан механика!Историја|(}
У 1901 години, Max Planck објавио своју теорију зрачења која зависи од квантизиране енергије.
Док је ово објаснило ултраљубичасту катастрофу у спектру
црног зрачења, ово је имало далеко веће последице као почетак квантне механике.
...
\index{Квантан механика!Историја|)}

Унос у индексу за подунос 'History' ће бити у распону страна између \index команди.

Употреба специјалних знакова

уреди

ДА би ставили вредности са !, @, или |, који су иначе знакови прекида, у индексу, морате цитирати оце знакове у \index команди тако што ћете ставити дупле наводнике (") испред њих, само можете ставити " унутар индекса тако што ћете га цитирати (т.ј., кључ за " би био \index{""}).

Ово правило не важи за \", зато ставите слова ä у индекс, можете и даље користити \index{a@\"{a}}.

Листа скраћеница

уреди

Можете да направите листу скраћеница са пакетом nomencl [1]. Можда ћете такође бити заинтересовани за употребу glossaries пакета описаног у Речник поглављу. Друга опција је пакет acronym [2].

Да бисте оспособили функцију номенкалтуре LaTeX-а, nomencl пакет мора бити учитан у преамбули са:

\usepackage[⟨options ⟩]{nomencl}
\makenomenclature

Издајте \nomenclature[⟨prefix⟩]{⟨симбол⟩}{⟨опис⟩} команду за сваки симбол који желите да буде укључен у листу номенклатуре. Најбоље место за ову команду је одмах пошто уведете симпол по први пут. Ставите \printnomenclature на место где желите да имате вашу листу неменклатуре.

Затим покрените LaTeX два пута

makeindex имедатотеке.nlo  -s nomencl.ist -o имедатотеке.nls

после чега ћете покренути LaTeX још једном.

ДА би додали листу скраћеница у садржај, intoc опциај се може користити када се декалрише nomencl пакет, т.ј.

\usepackage[intoc]{nomencl}

уместо употребе кода у Adding Index to Table Of Contents секцији.

Наслов листе се може променити коришћењем следеће команде:

\renewcommand{\nomname}{Листа скараћеница}

Више индекса

уреди

Ако вам је потребно више индекса можете да користите пакет multind [3].

Овај пакет обезбеђује исте команде као makeidx, али сада такође морате пропустити име као први аргумент сваке команде.

\usepackage{multind}
\makeindex{књиге}
\makeindex{аутори}
...
\index{књиге}{књига за индексирање}
\index{аутори}{Стави овог аутора у индекс}
...
\printindex{књиге}{Индекс књига}
\printindex{аутори}{Индекс аутора}

Додавање индекса садржају

уреди

По нормали, индекс се неће појављивати у садржају, тако да га морате додати ручно.

Да бисте додали индекс поглављу, употребите ове команде:

\clearpage
\addcontentsline{toc}{поглавље}{Индекс}
\printindex

Ако користите класу књига, можда ћете желети да га стартујете на непарној страници коришћењем \cleardoublepage.

Интернационални индекси

уреди

Ако желите да сортирате уносе које имају интернационалне знакове (као што су ő, ą, ó, ç, итд.) можете открити да сортирање "није баш добро". У већини случајева ови знакови се третирају као посебни знакови и заврше у истој групи као и @, ¶ или µ. У већини језика које користе латинично писмо то није тачно.

Генерисање индекса

уреди

На жалост, тренутна верзија xindy и hyperref су неспојиви. Када користите textbf или textit модификаторе, texindy ће штампати поруку грешке:unknown cross-reference-class `hyperindexformat'! (ignored) и неће додати те странице у индекс. Решење за ову грешку описану на разговору.

Да бисте генерисали датотеку интернационалног индекса морате да користите texindy уместо makeindex.

xindy је много прошириви и и развијени систем индексирања него makeindex систем.

На пример, није потребно написати:

\index{Lin@\textbf{Lin}}

да бисте добили Lin унос после LAN и пре LZA, довољно је написати

\index{\textbf{Lin}}

Али што је много важније, она може правилно сортирати датотеке индекса на многим језицима, не само на енгелском.

На жалост, генерисање индекса који су спремни за употребу од стране LaTeX употребом xindy је мало компликованије него са makeindex.

Прво, морамо да знамо у ком кодирању .tex је пројектна датотека сачувана. У већини случајева биће сачувана као UTF-8 или ISO-8859-1, мада ако живите, на пример у Пољској може бити ISO-8859-2 или CP-1250. Проверите параметар inputenc пакета.

Друго, морамо да занмо који језик је углавном коришћен у нашем документу. xindy може природно сортирати индексе на албанском, белоруском, бугарском, хрватском, чешшком, данском, хоалндском, енглеском, ,естонском, финском, француском, грузијском, немачком, грчком, циганском, хауса, хебрејском, мађарском, исландском, италијанском, клингон, курдијском, латинском, летонијском, литванском, македонском, монголском, норвешком, пољском, потугалском, румунском, руском, српском, словачком, словенском, лужичносрпском, шпанском, шведком, турском, украјинском и вијетнамском језику,

Ја не знам да ли други језици имају сличне проблеме, али са пољским, ако је ваша .tex сачувана коришћењем UTF-8, .ind произведен од стране texindy ће бити кодиран у ISO-8859-2 ако користите само -L polish. Док није проблем са уносима који садрже пољска слова, како LaTeX намерно кодира сва слова у обичан ASCII, јесте за акцентована слова на почетку речи, оне стварају нове групе уноса индекса, ако имате, на пример "średnia" унос, добићете "Ś" кодирану у ISO-8859-2 .ind датотеци. LaTeX не воли ако је део датотеке у UTF-8 а други део у IS-8859-2. Очигледно решење (додавање -C utf8) не ради, texindy престаје са радо са

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

грешком. Да би се во поправило, морате да учитате стил дефиниција за наслове користећи -M switch:

-M lang/polish/utf8

На крају ми морамо да покренемо такву команду:

texindy -L polish -M lang/polish/utf8 имедатотеке.idx

Још један начин да сереши овај порблем је да користите "iconv" да направите utf8.xdy од latin2.xdy

 iconv -f latin2 -t utf8 latin2.xdy >utf8.xdy 

у фасцикли

  /usr/share/xindy/tex/inputenc 

(Морате имати рут привилегије)


Xindy у kile

уреди

Дa бисте користили texindy уместо makeindex у kile, морате или да редефинишете MakeIndex алатку у Settings → Configure Kile... → Tools → Build, или да дефинишете нову алтку и редефинишете остале алатке да бисте је коритили (на пример тако што ћете је додати у QuickBuild).

xindy дефиниција би требало да изгледа налик на ово:

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


Претходно: Лингвистика Индекс Следеће: Речник