LaTeX/Oznake i referenciranje

LaTeX

Početak
  1. Uvod100% završen  Dec 13, 2015
  2. Instalacija100% završen  Dec 13, 2015
  3. Instalacija dodatnih paketa 100% završen  Dec 13, 2015
  4. Osnove 100% završen  Dec 13, 2015
  5. Kako pronaći pomoć 100% završen  Dec 13, 2015

Zajednički elementi

  1. Struktura dokumenta 100% završen  Dec 28, 2015
  2. Formatiranje teksta 100% završen  Dec 27, 2015
  3. Formatiranje paragrafa 100% završen  Jan 02, 2016
  4. Boje 100% završen  Jan 10, 2016
  5. Slova100% završen  Jan 10, 2016
  6. Struktura listi 100% završen  Jan 10, 2016
  7. Posebni znakovi 100% završen  Jan 10, 2016
  8. Internacionalizacija 100% završen  Jan 10, 2016
  9. Rotacija 100% završen  Jan 10, 2016
  10. Tabele 100% završen  Jan 10, 2016
  11. Stvaranje naslova 100% završen  Jan 10, 2016
  12. Raspored strane 100% završen  Jan 10, 2016
  13. Uvoz grafike 100% završen  Jan 10, 2016
  14. Figure i natpisi100% završen  Jan 10, 2016
  15. Fusnote i Margine100% završen  Jan 10, 2016
  16. Hiperlinkovi 100% završen  Jan 10, 2016
  17. Oznake i referenciranje100% završen  Jan 10, 2016

Mehanika

  1. Greške i upozorenja 75% završen  Jan 02, 2016
  2. Dužine 100% završen  Jan 02, 2016
  3. Brojači 100% završen  Jan 02, 2016
  4. Kutije 100% završen  Jan 02, 2016
  5. Pravila i nosači 100% završen  Jan 02, 2016

Tehnički tekstovi

  1. Matematika100% završen  Jan 10, 2016
  2. Naprednija matematika 75% završen  Jan 10, 2016
  3. Teoreme
  4. Hemijska grafika 75% završen  Jan 02, 2016
  5. Algoritmi 75% završen  Jan 02, 2016
  6. Listiranje izvornog koda 100% završen  Jan 02, 2016
  7. Lingvistika 75% završen  Jan 02, 2016

Posebne strane

  1. Indeksiranje 75% završen  Jan 02, 2016
  2. Rečnik 75% završen  Jan 02, 2016
  3. Upravljanje bibliografijom‎ 75% završen  Jan 10, 2016
  4. Više bibliografije

Posebni dokumenti

  1. Pisma 50% završen  Jan 02, 2016
  2. Prezentacije 75% završen  Jan 02, 2016
  3. Učiteljski deo 75% završen  Jan 10, 2016
  4. Kratka biografija 50% završen  Jan 02, 2016

Kreiranje grafika

  1. Predstavljanje proceduralnih grafika 100% završen  Jan 02, 2016
  2. MetaPostovi 0% završen  Jan 02, 2016
  3. Slika 50% završen  Jan 02, 2016
  4. PGF/TikZ 25% završen  Jan 02, 2016
  5. PSTricks 50% završen  Jan 02, 2016
  6. Xy-pic 25% završen  Jan 02, 2016
  7. Pravljenje 3D grafika 75% završen  Jan 02, 2016

Programiranje

  1. Makroi 100% završen  Jan 10, 2016
  2. Običan TeH‎ 100% završen  Jan 10, 2016
  3. Kreiranje paketa 100% završen  Jan 10, 2016
  4. Teme 75% završen  Jan 10, 2016

Razno

  1. Modularni Dokumenti 100% završen  Jan 10, 2016
  2. Zajedničko pisanje LaTeX dokumenata 75% završen  Jan 10, 2016
  3. Otpremanje u druge formate 100% završen  Jan 10, 2016

Pomoć i preporuke

  1. Najčešće postavljana pitanja 100% završen  Jan 10, 2016
  2. Saveti i trikovi 75% završen  Jan 10, 2016

Dodaci

  1. Autori 0% završen  Jan 10, 2016
  2. Linkovi 0% završen  Jan 10, 2016
  3. Oznake paketa 0% završen  Jan 10, 2016
  4. Primeri LaTeX dokumenata 0% završen  Jan 10, 2016
  5. Indeks 0% završen  Jan 10, 2016
  6. Rečnik naredbi 0% završen  Jan 10, 2016

U LaTeX-u možete lako referencirati gotovo sve što je numerisano (naslove, simbole, formule), a LaTeX će se pobrinuti oko numerisanja, tako što će da ažurira kad god to bude potrebno. Komande koje se koriste za lakše referenciranje su:

\label{marker}
dajete objektu koji želite da referencirate marker, tako da ga možete videti kao ime.
\ref{marker}
pozivate se na objekat koji ste prethodno označili. Ovo štampa broj koji je dodeljen objektu.
\pageref{marker}
Ovo će ispisati broj stranice na kojoj se objekat nalazi.

LaTeX će obaviti precizno numerisanje objekata u dokumentu; marker koji ste koristili za obeležavanje objekta, neće biti nigde prikazan u dokumentu. Potom će LaTeX zameniti "\ref{marker}" sa tačnim brojem koji je dodeljen objektu. Ako referencirate marker koji ne postoji, kompilacija dokumenta će biti uspešna, ali će LaTeX izbaciti upozorenje:

LaTeX Warning: There were undefined references.

i zameniće "\ref{unknown-marker}" sa "??" (tako da će biti lako pronaći ga u dokumentu).

Kao što ste možda primetili kako radi čitanje, to je proces koji se sastoji iz dva koraka: prvo kompaljer mora da čuva oznake koje se koriste za referenciranje, a potom ih menja the \ref sa odgovarajućim brojem. To je razlog zašto kada referencirate, morate dvaput kompajlovati dokument da biste videli željenu izlaznu vrednost. Ako samo jednom kompajlujete, LaTeX će iskoristiti starije podatke koje je prikupio u prethodnim kompajlovanjima (što je možda zastarelo), ali kompajler će vas obavestiti na kraju kompilacije sa svojim obaveštenjem:

LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.

Koristeći komandu \pageref{} možete pomići čitaču da pronađe referencirani objekat pružajući broj stranice gde se može naći. Možete napisati nešto slično ovom:

Погледајте фигуру~\ref{fig:test} на страни~\pageref{fig:test}.

Pošto možete koristiti potpuno iste komande za referenciranje gotovo ničeg, možete biti malo zbunjeni nakon što ste uveli puno referenci. To je uobičajena praksa među LaTeX korisnicima, da dodaju neko uputstvo na oznaci kako bi opisali šta referenciraju. Neki paketi, kao što je fancyref, se oslanjaju na ove informacije. Evo jedan primer:

ch: poglavlje
sec: naslov
subsec: podnaslov
fig: figure
tab: tabela
eq: jednačina
lst: lista kodova
itm: numerisana lista
alg: algoritam
app: dodatak podglavlja

Nakon ovog rapsporeda, oznaka figure će izgledati \label{fig:моја_фигура}, itd. Niste u obavezi da koriste ove prefikse. Možete koristiti bilo koji string kao argument \label{...}, ali kako vaš dokument postaje veći, ovi prefiksi postaju sve više korisni.

Još jedna sugestija: pokušajte da izbegnete korišćenje brojeva u oznakama. Možete bolje opisati šta je vaš objekat. Na ovaj način, ako promenite redosled objekata, nećete morati da menjate nazive svih svojih oznaka i njihovih referenci.

Ako želite da vidite markere kojnj koristite u izlaznom dokumentu, možete koristiti showkeys paket; ovo može biti veoma korisno za izradu dokumenta. Za više informacija pogledajte Oznake paketa poglavlje.

Primeri

uredi

Evo nekoliko praktičnih primera, ali ćete primetiti da su svi isti, jer svi koriste iste komande.

Naslovi

uredi
\section{Поздрав}
\label{sec:greetings}

Здраво!

\section{Референце}

Поздрав у поглављу~\ref{sec:greetings}.

 

Možete da postavite oznaku bilo gde u naslovu; kako god, kako bi se izbegla zabuna, bolje je da se odmah stavi na početku sekcije. Primetite da marker počinje sa sec:, kao što je sugerisano. Oznaka se zatim referencira u drugom odeljku. Tilda (~) služi za označavanje bez razmaka.

Slike

uredi

Možete referencirati sliku ubacivanjem u figure okruženje.

\begin{figure}
  \centering
    \includegraphics[width=0.5\textwidth]{галеб}
  \caption{Слика галеба}
  \label{fig:галеб}
\end{figure}
Фигура \ref{fig:галеб} приказује слику галеба.
 

Kada je oznaka postavljena unutar ovog okruženja, \ref{...} vraća respektivno fig/table broj, ali se mora pojaviti nakon natpisa. Kada se pojavi izlazni dokument, to će dati broj sekcije. Da biste bili potpuno sigurni, oznaka za bilo koju sliku ili tabelu može ići uz \caption{} komandu, kao ovo:

\caption{Close-up of a gull\label{fig:gull}}

Pogledajte poglavlje Figure i natpisi za ostale figure i srodna okruženja.

Popravka loših oznaka

uredi

Komanda \label mora se pojaviti posle (ili unutar) \caption. Inače će pokupiti trenutni broj sekcije ili liste umesto onog što ste nameravali.

\begin{figure}
  \centering
  \includegraphics[width=0.5\textwidth]{галеб}
  \caption{Слика галеба} \label{fig:галеб} 
\end{figure}

Problemi sa linkovima i tabelama i figura obrađnih uz pomoć hyperref

uredi

U slučaju da koristite paket hyperref za pravljenje PDF-a, linkovi za tabele ili figure će ukazati na natpis tabele ili figure, koji je uvek ispod same tabele ili figure[1]. Zato tabela ili figura neće biti vidljiva, ako je iznad pokazivača i mora da se skrola da bi se videlo. Ako želite link tačku na vrhu slike možete koristiti opciju hypcap u caption paketu:

\usepackage[hypcap]{caption}

Formule

uredi

Evo primera koji pokazuje kako se referenciraju formule:

\begin{equation} \label{eq:solve}
x^2 - 5 x + 6 = 0
\end{equation}

\begin{equation}
x_1 = \frac{5 + \sqrt{25 - 4 \times 6}}{2} = 3
\end{equation}

\begin{equation}
x_2 = \frac{5 - \sqrt{25 - 4 \times 6}}{2} = 2
\end{equation}

И решили смо једначину~\ref{eq:solve}
 

Kao što možete videti, oznaka je postavljena nakon početka moda matematike. U cilju referenciranja formula, morate da koristite okruženje koje dodaje brojeve. Uglavnom ćete koristiti equation okruženje; to je najbolji izbor za jedno-linijske jednačine, bez obzira da li koristite amsmath ili ne. Primetite da je eq: prefiks u oznaci.

eqref

uredi

Paket amsmath ima novu komandu za referenciranje formula; To je \eqref{}. Radi isto kao \ref{}, ali dodaje zagrade tako da umesto štampanja običnog broja kao što je 5, odštampaće (5). Ovo može da pomogne čitaocu da razlikuje formulu od drugih stvari, bez potrebe da se ponavlja reč "formula" pre svake reference. Njegova izlazna vrednost se može menjati po želji; za više informacija pogledatje amsmath dokument.

Komanda \tag{eqnno} se koristi za ručno postavljanje brojeva jednačina gde je eqnno proizvoljan tekst koji želite da se pojavi u dokumentu. Bolje je koristiti oznake, ali ponekad teško kodirane brojevi jednačina mogu ponuditi lakšu opciju. Ovo može biti kosirno, na primer ako želite da ponovite jednačinu koja već bila korišćena, npr. \tag{\ref{eqn:before}}.

numberwithin

uredi

Paket amsmath dodaje \numberwithin{countera}{counterb} komandu koji zamenjuje jednostavan countera sa sofisticiranijiim counterb.countera. Na primer \numberwithin{equation}{section} u preambuli će se broj sektora odositi na sve brojeve jednačina.

cases

uredi

Paket cases dodaje \numcases i \subnumcases komande, koje proizvode više slučajeva sa posebnom brojem jednačina i jednačina sa oznakama, respektivno, za svaki slučaj.

Paket varioref

uredi

Ovaj varioref paket uvodi novu komandu pod nazivom \vref{}. Ova komanda se upravo koristi kao osnovna \ref, ali ima drugačiju izlaz u zavisnosti od konteksta. ako je objekat koji treba da se referencira na istoj strani, onda radi isto kao \ref; ako je objekat udaljen, onda će ispisati nešto poput "5 on page 25", odnosno automatski će dodati broj stranice. Ako je objekat u blizini, može da koristi neke prefinjene rečenice poput "on the next page" ili "on the facing page" automatski, prema okolnostima i klasi dokumenta.

Ova komanda se mora koristiti veoma pažljivo. Ona štampa više od jedne reči, tako da se može desiti da greškom odštampa na dve različite strane. U tom slučaju, algoritam može zbuniti i dovesti do petlje. Evo jedan primer. Vi označite objekat na strani 23 i desi se da \vref izlaz ostane između stranica 23 i 24. Ako bi bio na strani 23, onda bi štampao kao osnovni ref, a ako bi ostao na strani 24, štampao bi "on the previous page", ali u oba slučaja to može izazvati neke čudne greške koje bi zahtevale dosta vremena za popravku. Pomislili biste da se to dešava veoma retko; nažalost, ako ste napisali dug dokument nije neuobičajeno da imate na stotine referenci, tako da je ovakva situacija veoma moguća. Jedan od načina da se izbegne problem tokom rada je da se koristi standardni ref sve vreme i da se konvertuje u vref kada je dokument u fazi finalne verzije, a zatim popravka eventualnih problema.

Paket hyperref

uredi

autoref

uredi

Paket hyperref uvodi još jednu korisnu komandu; \autoref{}. Ova komanda kreira referencu sa dodatnim tekstovima koja odgovara potrebnom tipu, što će biti hiperlink. Na primer, komanda \autoref{sec:intro} bi stvorila link do \label{sec:intro} komande, gde god da je. Pod pretpostavkom da je ova oznaka pokazuje na sekciju, hiperlink će sadržati tekst "section 3.4", ili nešto slično (kompletan spisak standardnih imena može se naći ovde). Imajte na umu da, dok je \autoref* komanda, stvaraće nelinkovane prefikse (korisno ako je oznaka na istoj strani kao i referenca), bez alternativne \Autoref komande koja je definisana za proizvodnju verzije koja se plaća (korisni, na primer, kada se počinje rečenice); ali od kapitalizacije autoref imena su izabrana od strane autora paketa, možete prilagoditi redefinisanjem tekst prefiksa \typeautorefname u prefiks koji želite, kao što je:

\def\sectionautorefname{Section}

Ovaj trik preimenovanja se može sasvim dobro koristi i u druge svrhe.

  • Ako biste želeli da hiperlinkujete referencu, ali ne želite unapred definisani tekst koji \autoref{} pruža, to možete da uradite sa komandom, kao što je \hyperref[sec:intro]{Appendix~\ref*{sec:intro}}. Imajte na umu da možete onemogućiti stvaranje hiperlinka u hyperref i samo koristiti ove komande za automatski tekst.
  • Imajte na umu da \label mora biti postavljen unutar okruženja sa brojačem, kao što je tabela ili fiura. U suprotnom, ne samo broj će se odnositi na trenutni odeljak, kao što je pomenuto gore, ali ime će se odnositi na prethodno okruženje sa brojačem. Na primer, ako stavite oznaku nakon zatvaranja figure, u oznaci će i dalje pisati "figure n", gde je n trenutni broj sekcije.

nameref

uredi

Paket hyperref takođe automatski uključuje nameref paket i komandu sa sličnim nazivom. Slično je \autoref{}, ali inserti tekst odgovara nazivu odeljka, na primer.

Unos:

\section{MyFirstSection} \label{sec:marker}
\section{MySecondSection}
In section~\nameref{sec:marker} we defined...

Izlaz:

In section MyFirstSection we defined...

Ručno pozicioniranje

uredi

Kada definišete \label van figure, tabela ili neki drugi objekat, štampa oznaku u trenutnoj sekciji. U nekim slučajevima, ovo ponašanje nije ono što želite i radije bi generisani link iskoristili za ukazivanje na liniju gde je \label definisana. Ovo se može postići komandom \phantomsection kao u ovom primeru:

%Локација линка ће бити постављена на линији испод.
\phantomsection
\label{the_label}

Paket cleveref

uredi

Paket cleveref uvodi novu komandu \cref{} koji obuhvata tip referenciranog objekta kao što \autoref{} radi. Alternativna \labelcref{} komanda radi više kao standardna \ref{}. Reference na stranicama se obrađuju od strane \cpageref{} komande.

Komande \crefrange{}{} i \cpagerefrange{} očekuju početnu i krajnju oznaku u bilo kom redosledu kao i obezbeđivanje širokog spektra (babel je omogućen) jezika. Ako su oznake navedene kao lista razdvojena zarezima sa uobičajenom \cref{} komandom, onda će ih sortirati i grupisati automatski.

Format može biti naveden u preambuli.

Vidi još

uredi

Reference

uredi


Prethodno: Hiperlinkovi Indeks Sledeće: Greške i upozorenja