LaTeX/Rečnik
Mnogi tehnički dokumenti koriste termine ili akronime koji su nepoznati opštoj javnosti. Česta je praksa da se doda rečnik da se takva dokumenta načine pristupačnijim.
glossaries paket so može korisitti za pravljenje rečnika. On podržava više rečnika, akronima, i simbola. Ovaj paket zamenjuje glossary paket i on se može koristiti umesto nomencl paketa.[1] Korisnici kojima je potrebno lakše rešenje trebalo bi da razmisle o tome da ručno kodiraju unose korišćenjem opisnog okruženja, ili longtabu okruženja omogućenog od strane tabu paketa.
Početak
urediStavite \usepackage{glossaries}
i \makeglossaries
u vašu preambulu (posle \usepackage{hyperref}
ako postoji).
Onda definišite bilo koji broj \newglossaryentry
i \newacronym
unosa rečnika i akronima u vašu preambulu (preporučeno) ili pre prve prave upotreba uvašem dokument.
Konačno dodajte \printglossaries
poziv da pronađete listu rečnika unutar vaše strukture dokumenata.
Onda ispravite vaše pisanje sa \gls{mylabel}
makroima (i sličnim stvarima) da biste istovremeno uneli vaš predefinisan tekst i napravili asocioni rečnik.
Procesuiranje datoteke sada mora uključivati poziv za makeglossaries
za kojim sledi najmanje jedno dalje pozivanje latex
-a ili pdflatex-
-a.
Upotreba glossaries
urediDa biste koristili glossaries paket, morate ga posebno učitati:
\usepackage{glossaries}
|
ako želite da koristite xindy (preporučeno) za indeksiranje fraze, nasuprot makeindex (po normali), morate da precizirate xindy opciju:
\usepackage[xindy]{glossaries}
|
Da bi vam se rečnik pojavio u vašem sadržaju, morate da precizirate toc opciju:
\usepackage[toc]{glossaries}
|
Pogledajte još i prilagođeno ime na dnu ove strane.
Konačno, unesite sledeću komandu u preambuli vašeg dokumenta da biste generisali rečnik:
\makeglossaries
|
Bilo koje veze u rezultujućem rečniku neće biti "reaktivne" ako ne učitate glossaries paket posle hyperref paketa.
Dodatno, korisnici koji žele da iskoriste makeglossaries će morati da imaju Perl instaliran — ovo obično po normali nije prisutno na majkrosoft vindous platformama. Ovo rečeno, makeglossaries prosto obezbeđuje pogodan interfejs da makeindex i xindy i nije od ključne važnosti.
Definisanje unosa u rečnik
urediDa biste koristili unos iz rečnika prvo morate da ga definišete. Postoje nekoliko načina za definisanje unosa, u zavisnosti od toga šta definišete i kako će to što definišete biti upotrebljeno.
Primetite da definisan unos neće neće biti uključen u štampani rečnik ako nije korišćen u dokumentu.
Ovo vam omogućuje da napravite rečnik opštih pojmova samo stavite \include
u svim vašim dokumentima.
Definisanje termina
urediDa biste definisali pojam u rečniku koristite \newglossaryentry
makro:
\newglossaryentry{<ознака>}{<settings>}
|
<oznaka> je posebna oznaka koja se koristi za identifikaciju unosa u rečniku, <settings> su parovi razdvojeni zarezom key=value koji se koriste za definiciju unosa.
Na primer, da biste definisali računarski unos:
\newglossaryentry{computer}
{
name=рачунар,
description={је програмирана машина која прихвата улазне информације,
чува и манипулише подацима, обезбеђује
излазне информације у корисном формату}
}
|
Primer iznad definiše unos koji ima istu oznaku kao i ime unosa. Ovo nije uvek slučaj što će i sledeći unos pokazati:
\newglossaryentry{naiive}
{
name=na\"{\i}ve,
description={је француска позајмица (придев, од naïf)
који указује на немањље или показује недостатак искуства,
разумевања и софистицираности}
}
|
Kada definišete termine, morate da zapamtite da će njih sačuvati ili makeindex ili xindy.
Dok je xindy malo više svestan LaTeX-a, on radi tako što izostavlja latex makroe (\"{\i}
) i samim tim netačno sortira primer iznad kao nave.
makeindex se neće pokazati mnogo bolje, zato što ne razume TeX makroe, on će interpretirati reč onako kako je definisana, stavljajući je unutar klase simbola, pre reči koje počinnju sa naa.
Zato je potrebno proširiti naš primer i precizirati kako će se reči sortirati:
\newglossaryentry{naiive}
{
name=na\"{\i}ve,
description={is a French loanword (adjective, form of naïf)
indicating having or showing a lack of experience,
understanding or sophistication},
sort=naive
}
|
Takođe možete precizirati forme množine, ako se one ne promiraju dodavanjem lsova “s” (naučićemo kako da ih koristimo u sledećem delu):
\newglossaryentry{Linux}
{
name=Linux,
description={is a generic term referring to the family of Unix-like
computer operating systems that use the Linux kernel},
plural=Linuces
}
|
Ili, za akronime:
\newacronym[longplural={Frames per Second}]{fpsLabel}{FPS}{Frame per Second}
|
Ovo će izbegavati pogrešne dugačke množine: Frame per Seconds.
Do sada, unosi u rečnik su bili definisani kao liste ključnih-vrednosti. Ponekad, je opis mnogo kompleksniji od samo jednog paragrafa. Na primer, možda ćete poželeti da iamte više paragrafa, detaljne liste, figure, tabele, itd. Za talve rečničke unose koristite komandu longnewglossaryentry u kojoj opis prati listu ključnih-vrednosti. RAčunarski unos onda izgleda ovako:
\longnewglossaryentry{рачунар}
{
name=рачунар
description={је програмирана машина која прима улазне информације,
чува и манипулише подацима, и обезбеђује
излазне информације у корисном формату}
|
Definisanje simbola
urediDefinisani unosi takođe mogu biti simboli:
\newglossaryentry{pi}
{
name={\ensuremath{\pi}},
description={однос обима круга и његовог
пречника},
sort=pi
}
|
Takođe ,možete definisati i ime i simbol:
\newglossaryentry{реалан број}
{
name={реалан број},
description={укључује и рационалне бројеве, као што су $42$ и
$\frac{-23}{129}$, и иарционалне бројеве,
као што су $\pi$ и квадратни корен од два; или,
реалан број може иамти бескрајно децимално
представљање, као што је $2.4871773339\ldots$ где
где бројеви настављају на неки начин; или,на реални
бројеви се може мислити као тачке на бесконачно
дугачкој бројевној линији},
symbol={\ensuremath{\mathbb{R}}}
}
|
Primetite da ne svi stilovi rečnika prikazuju definisane simbole.
Definisanje akronima
urediDa biste definisali novi akronim možete da koristite \newacronym
makro:
\newacronym{<ознака>}{<abbrv>}{<full>}
|
gde je <oznaka> posebna oznaka koja definiše akronim, <abbrv> je skraćeni oblik akronima i <full> proširen tekst. Na primer:
\newacronym{lvm}{LVM}{Logical Volume Manager}
|
Definisanje akronima se može staviti u posebnu listu ako koristite acronym opciju paketa:
\usepackage[acronym]{glossaries}
|
Upotreba definisanih termina
urediKada ste definisali termin, možete ga koristite u dokumentu. Postoje mnoge različite komande koje se koriste za referenciranje termina iz rečnika.
Opšte reference
urediOpšta referenca se koristi sa \gls
komandom.
Ako, na primer, ako imate unose u rečnik definisane kao ovi iznad, možete ih koristiti na ovaj način:
\Gls{naiive} people don't know about
alternative \gls{computer} operating systems:
\glspl{Linux}, BSDs and GNU/Hurd.
|
Naïve people don't know about alternative computer opera- |
Opis komande upotrebljene u primeru iznad:
\gls{<ознака>}
|
Ova komanda štampa termin koji je u asocijaciji sa <oznakom> koja je prošla kao argument. Ako je hyperref paket očitan pre glossaries on će automatski biti hiperlinkovan u unos iz rečnika.
\glspl{<ознака>}
|
Ova komanda štampa množinu opisanog termina, osim toga ona se ponaša isto kao i gls
.
\Gls{<ознака>}
|
Ova komanda štampa formu jednine termina sa prvim slovom promenjenim u veliko slovo.
\Glspl{<ознака>}
|
Ova komanda štampa formu množine sa prvim slovom termina promenjenim u veliko slovo.
\glslink{<ознака>}{<алтернативни текст>}
|
Ova komanda kao po običaju pravi vezu, ali postavlja tim teksta kao alternativni tekst. Ona može da primi nekoliko opcija koje menjaju njeno uobičajeno ponašanje (pogledajte dokumentaciju).
\glssymbol{<ознака>}
|
Ova komanda štampa šta god je definisano u \newglossaryentry{<oznaka>}{simbol={Izlaz od glssymbol}, ...}
\glsdesc{<ознака>}
|
Ova komanda štampa šta god je definisano u \newglossaryentry{<oznaka>}{opis={Izlaz od glsdesc}, ...}
Pozivajući akronime
urediAkronimi se ponašaju malo drugačije od običnih rečničkih termina.
Pri prvoj upotrebi \gls
komanda će pokazati "<full> (<abbrv>)".
Na kasnijim upotrebama samo će skraćenica biti prikazana.
Za resetovanje prve upotrebe akronima koristite:
\glsreset{<ознака>}
|
ili, ili ako želite da resetujete upotrebni status svih akronima koristite:
\glsresetall
|
Ako samo želite da odštampate dugačku verziju akronima bez skraćenice "<full>", koristite :
\acrlong{<ознака>}
|
Ako samo želite da odštampate dugačku verziju akronima sa skraćenicom "<full> (<abbrv>)", koristite :
\acrfull{<ознака>}
|
Ako samo želite da štampate skraćenicu "<abbrv>", koristite :
\acrshort{<ознака>}
|
Prikazivanje rečnika
urediDA biste prikazali sortiranu listu termina morate da dodate:
\printglossaries
|
na mesto gde želite da se rečnik i lista akronima pojave.
Ako svi unosi treba da seodštampaju komanda
\glsaddall
|
se može ubaciti pre \printglossaries
.
Možda ćete takođe poželeti da upotrebite \usepackage[nonumberlist]{glossaries
} da ugušite listu lokacija unutar rečnika.
Odvojen rečnik i lista akronima
uredi\printglossaries
će prikazati sve rečnike u redu po kojem su bili definisani.[2] Ako nijedan prolagođen rečnik nije definisan, uobičajen rečnik i lista akronima će biti prikazani.
Rečnik i lista akronima mogu biti prikazani odvojeno na različitim mestima[3]:
\usepackage[acronym]{glossaries}
\printglossary[type=\acronymtype] % штампа само листу акронима
Неки текст између листе акронима и речника.
\printglossary % ако није уведена никаква друга опција уобичајени речник ће бити одштампан.
|
Dupli unosi sa referencom ka unosom u rečniku iz akronima
urediMože biti korisno da imate i akronim i unos u rečnik za isti termin. Da biste povezali ova dva, definišie akronim sa referencom ka unosu u rečniku na ovaj način:
\newglossaryentry{gls-OWD} {
name={One-Way Delay},
description={Време које пакет користи да прође кроз мрежу од једног домаћина до другог},
}
\newacronym[see={[Glossary:]{gls-OWD}}]{OWD}{OWD}{One-Way Delay\glsadd{gls-OWD}}
|
Реферисање до акронима се врши са \gls{OWD} а до речника са \gls{gls-OWD}
Da bismo ovo načinili lakšim, možemo da koristimo ovu komandu (modifikovanu od primera u zvaničnim dokumentima):
Синтакса: \newdualentry[glossary options][acronym options]{label}{abbrv}{long}{description}
\usepackage{xparse}
\DeclareDocumentCommand{\newdualentry}{ O{} O{} m m m m } {
\newglossaryentry{gls-#3}{name={#5},text={#5\glsadd{#3}},
description={#6},#1
}
\makeglossaries
\newacronym[see={[Glossary:]{gls-#3}},#2]{#3}{#4}{#5\glsadd{gls-#3}}
}
|
onda, definišite nove (duple) unose za rečnik i liste akronima na ovaj način:
\newdualentry{OWD} % ознака
{OWD} % скраћеница
{One-Way Delay} % дужи облик
{Време које пакет користи да прође кроз мрежу од једног домаћина до другог} % опис
|
Prilagođeno ime
urediIme rečničkog dela se može zameniti sa prilagođenim imenom ili prevesti na različit jezik. Dodajte opciju title u \printglossary
da bi precizirali naslov rečnika. Dodajte opciju toctitle da biste precizirali naslov korišćen u sadržaju (ako nije iskorišćen, title se koristi po normali). [4]
\printglossary[title=Листа термина,toctitle=Термини и скраћенице]
|
Uklanjanje tačke
urediDa izostavite tačku na kraju svakog opisa, koristite ovaj kod:
\usepackage[nopostdot]{glossaries}
|
Menjanje prezentacije unosa rečnika upotrebom stilova rečnika
urediVeliki broj već napravljenih stilova je dostupan, i mogu se lapo promeniti korišćenjem
% Мора се написати пре \printglossaries
\glossarystyle{<newstyle>}
|
Često korišćeni stilovi uključuju listu
Мој термин има веома дугачак опис 7, 9
altlist (ubacuje nov red posle termina i uvučenog opisa)
Мој термин има веома дугачак опис 7, 9
altlistgroup ili listgroup (grupa dodaje grupisanje bazirano na prvim slovima termina)
M мој први термин Има веома дугачак опис 7, 9 Мој други термин Има дугачак опис 7, 9
altlisthypergroup ili listhypergroup (hyper dodaje hiperlinkovan 'indeks' na vrhu svakog rečnika da se prebaci na grupu)
A|B|C|D|F|G|I|M|O|R|S|C|D|G|M|P A A First term Has some long description 7, 9 B Barely missed first Has some long description 7, 9
Stvaranje vašeg dokumenta
urediStvaranje vašeg dokumenta i njegovog rečnika sahteva tri koraka:
- napravite vaš LaTeX dokument — ovo će takođe generisati datoteke potrebne za makeglossaries
- prizovite makeglossaries — skriptu koja bira tačno kodiranje znakova i jezičke opcije i koja će takođe pokrenuti xindy ili makeindex ako su one precizirane u vašoj dokumentnoj datoteci
- napravite vaš LaTeX dokument ponovo — da biste proizveli dokument sa rečničkim unosima
Prema tome:
latex doc makeglossaries doc latex doc
gde je latex vaš uobičajeni poziv za pravljenje (možda pdflatex) i doc je ime vaše LaTeX glavne datoteke.
Ako su vaši unosi međusobno povezani (unosi su međusobno povezani sa drugim unosima koje \gls
poziva), moraćete da odradite korake 1 i 2 dva puta, to jest, po sledećem redosledu: 1, 2, 1, 2, 3.
Ako se susretnete sa problemima, pogledajte doc.log i doc.glg datoteke u tekstualnom editoru za tragove.
Primer za upotrebu u vindousu sa Texmaker-om
urediKompajlirajte rečnik sa xindy - U vindousu sa Texmaker
urediU TeX Live i od juna 2015 u MikTeX xindy je već uključen.
Postoji samo jedan problem sa putem direktorijuma instalacije za MikTeX sadržajne prostore. Može se rešiti preko sledeće izmene: http://tex.stackexchange.com/questions/251221/miktex-and-xindy-problems/251801#251801
Morate da ponovo pokrenete Texmaker posle instalcije xindy, da biste ažurirali PATH reference ka xindy i perl binarima.
Onda, u Texmaker-u, idite na User -> User Commands -> Edit User Commands.
Izaberite komandu 1
- Stavkaizmenija = makeglossaries
- Komanda = makeglossaries %
Sada pritisnite Alt+Shift+F1a zatim ->F1
Primetite, za upotrebu sa "koristite napravljen direktorijum" opcijom Texmaker-a: makeglossaries mora da pronađe aux datoteku. Srećom, dok Texmaker ovde ne pomaže, opcija -d <dir> od strane makeglossaries obezbeđuje za poddirektorijumski slučaj. Zato bi komanda u ovom slučaju trebala biti:
Komanda = makeglossaries -d build % umesto toga.
Preambula dokumenta
urediU preambuli treba biti uključeno (primetite, hyperref treba biti učitano pre rečnika):
\usepackage[nomain,acronym,xindy,toc]{glossaries} % nomain, ако дефинишете речнике у датотеци, и употребите \include{INP-00-glossary} \makeglossaries \usepackage[xindy]{imakeidx} \makeindex
Definicije rečnika
urediNapišite sve vaše rečnike/akronime u datoteku: Npr: INP-00-glossary.tex
\newacronym{ddye}{D$_{\text{dye}}$}{donor dye, ex. Alexa 488} \newacronym[description={\glslink{r0}{F\"{o}rster distance}}]{R0}{$R_{0}$}{F\"{o}rster distance} \newglossaryentry{r0}{name=\glslink{R0}{\ensuremath{R_{0}}},text=F\"{o}rster distance,description={F\"{o}rster distance, where 50\% ...}, sort=R} \newglossaryentry{kdeac}{name=\glslink{R0}{\ensuremath{k_{DEAC}}},text=$k_{DEAC}$, description={is the rate of deactivation from ... and emission)}, sort=k}
Uključite definicije rečnika i štampajte rečnik
urediUključite definicije rečnika u preambuli (Pre "\begin{document}")
\loadglsentries[main]{INP-00-glossary} % или коришћењем \input: %\input{INP-00-glossary} \begin{document}
Štampaj rečnike, blizu smo kraja
\appendix \bibliographystyle{plainnat} \bibliography{bibtex} \printindex \printglossaries \end{document}
Reference
uredi- ↑ http://www.ctan.org/pkg/nomencl
- ↑ http://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/glossaries/glossaries-user.html#dx1-35001
- ↑ http://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/glossaries/glossaries-user.html#dx1-43001
- ↑ Uputstvo za rečnike.sty v4.02 as of 2014.01.13 http://mirror.ox.ac.uk/sites/ctan.org/macros/latex/contrib/glossaries/glossaries-user.html#sec:printglossary
- glossaries dokumentacija, http://tug.ctan.org/tex-archive/macros/latex/contrib/glossaries/
- Korišćenje LaTeX-a za pisanje doktorskih dizertacija, Nicola L.C. Talbot, [1]
- Rečnici FAQ, Nicola L. C. Talbot, rečnici FAQ
- Glossaries, Nomenclature, Lists of Symbols and Acronyms, Nicola L. C. Talbot, link