Pređi na sadržaj

LaTeX/Hiperlinkovi

Izvor: Викикњиге

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

LaTeX omogućuje pripremu za hiperlinkova, što je korisno kada je konačan format PDF i hiperveze koje se mogu pratiti. To radi pomoću paketa hyperref.

Hyperref

[uredi]

Paket hyperref[1] daje LaTeX-u sposobnost da se kreira hiperlink u dokumentu. To radi sa komandom pdflatex i takođe sa standardnim "latex" koristi sa dvips i ghostscript ili dvipdfm da napravi PDF fajl. Ako ga učitate, imaćete mogućnost da uključite interaktivne eksterne linkove i sve svoje interne reference ćete pretvoriti u hiperlinkove. Kompajler pdflatex čini mogućim stvaranje PDF fajlova direktno iz LaTeX izvora i PDF podržava više funkcija nego DVI. Naročito PDF podržava hiperlinkove i jedini način da ih uvede u LaTeX je korišćenjem hyperref. Štaviše, PDF može sadržati i druge podatke o dokumentu kao što je naslov, autor, itd., koji se mogu menjati koristeći ovaj isti paket.

Upotreba

[uredi]

Osnovna upotreba sa standardnim podešavanjima je jednostavna. Samo treba učitati paket u preambuli:

\usepackage{hyperref}

Ovo će automatski pretvoriti sve vaše unutrašnje reference u hiperlinkove. To neće uticati na pisanje vaših dokumenata: samo nastavite da koristite standardni \label-\ref sistem (raspravljanom u poglavlju o Oznakama i referenciranju); sa hyperref "konekcijama" će postati link i moći ćete da kliknete na njih i da vas preusmere na pravu stranicu. Štaviše sadržaj, sista oblika/tabela i indeksa će biti hiperlinkovi takođe. Hiperlinkovi se neće pokazati ako radite u draft režimu rada.

Komande

[uredi]

Paket sadrži neke korisne komande za umetanje linkova koji pokazuju van dokumenta.

\hyperref

[uredi]

Upotreba:

\hyperref[ознака]{''текст линка''}

To će imati isti efekat kao \ref{label_name} ali će tekst linka biti link. Ove se može kombinovati. Ako je lema označena kao mainlemma broj 4.1.1 sledeći primer bi rezultirao u

Користимо \hyperref[mainlemma]{лему \ref*{mainlemma} }.

Koristimo lemu 4.1.1.

sa linkom kao što je očekivano. Primetite da "*" nakon \ref služi za izbegavanje grananja linkova.

\url

[uredi]

Upotreba:

\url{<my_url>}

To će pokazati URL koristeći jednoširinski font i ako kliknete na to, vaš pretraživač će biti otvoren na toj strani.

\href

[uredi]

Upotreba:

\href{<my_url>}{<description>}

To će pokazati string description koristeći standardni dokument font, ali ako kliknete na to, vaš pretraživač će otvoriti my_url. Evo primera:

\url{http://www.wikibooks.org}
\href{http://www.wikibooks.org}{Wikibooks home}

U oba slučaja otvoriće se ista strana, ali u prvom slučaju će biti prikazan URL, dok je u drugom slučaju URL će biti sakriven. Imajte na umu da, ako odštampate dokument, link čuva koristeći \href i neće nigde biti prikazan u dokumentu.

Druge mogućnosti

[uredi]

Osim povezivanje sa sajtovima o kojima smo govorili, hyperref se može koristiti za obezbeđivanja mailto linkova, linkove ka lokalnim datotekama i veze sa bilo kojim PDF izlaznim fajlom.

E-mail adrese

[uredi]

Moguće način da se unesu email linkovi je

\href{mailto:my_address@wikibooks.org}{my\_address@wikibooks.org}

To samo pokazuje svoju e-mail adresu (tako da ljudi mogu da znaju, čak i ako je dokument štampan na papir) ali, ako čitalac klikne na njega, on(a) lako može da vam pošalje e-mail. Ili, da obuhvati url formatiranje i razbijanje linija prikazanih u tekstu, koristiti [2]

\href{mailto:my_address@wikibooks.org}{\nolinkurl{my_address@wikibooks.org} }

Kada koristite ovu formu, imajte na umu da je \nolinkurl komanda krhka i ako su hiperlinkovi unutar pokretnog argument, onda mora prethoditi \protect komanda.

Lokalna datoteka

[uredi]

Fajlovi se takođe mogu linkovati uz pomoć url ili href komandi. Jednostavno treba da dodate string run: na početku linka:

\url{run:/path/to/my/file.ext}
\href{run:/path/to/my/file.ext}{text displayed}

Ovo http://tex.stackexchange.com/questions/46488/link-to-local-pdf-file url ne radi uvek, ali href radi stalno.

Moguće je koristiti relativne putanje za povezivanje dokumenata u blizini lokacije vašeg trenutnog dokumenta; da bi to uradili, koristite standardnu Unix-like notaciju (./ trenutni direktorijum, ../ je prethodni direktorijum, itd.)

Hiperlink i Hipertarget

[uredi]

Takođe je moguće da se stvori "sidro" bilo gde u dokumentu (sa natpisom ili bez) i da se linkuje. Da biste kreirali "sidro", koristite:

\hypertarget{label}{target caption}

i da ga linkujete, koristite:

\hyperlink{label}{link caption}

gde su target caption i link caption tekst koji respektivno prikazuje ciljnu lokaciju i "metu".

Prilagođavanje

[uredi]

Standardne postavke bi trebalo da bude u redu za većinu korisnika, ali možete i da promenite nešto ako želite. Postoji nekoliko promenljivih i dve metode za njih u pakovanju. Opcije mogu biti donete kao argument paketa kada je napunjen (standardni rad paketa) ili \hypersetup komanda se može koristiti na sledeći način:

\hypersetup{<option1> [, ...]}

možete proći kroz mnoge opcije ako želite; odvojite ih zarezom. Opcije moraju biti u obliku:

variable_name=new_value

isti format ima da se koristi ako se prođu te opcije u paketu, dok se učitava, ovako:

\usepackage[<option1, option2>]{hyperref}

Ovde je lista mogućih promenljivih koje možete menjati (za kompletnu listu, pogledajte oficijalnu dokumentaciju). Standardne vrednosti su zapisane u uspravnom fontu:

Pogledajte 3.8 Veliku listu na hyperref-manual na tug.org

promenljive vrednosti komentar
bookmarks =true,false prikaži ili sakri traku sa obeleživačima kada prikazuje dokument
unicode =false,true omogućava korišćenje znakova jezika non-Latin sa bazom u Acrobat’s bookmarks
pdfborder ={RadiusH RadiusV Width [Dash-Pattern]} podesite stil ivica oko linka. Prva dva parametra (RadiusH, RadiusV) nemaju efekta u većini pdf čitačima. Width definiše debljinu ivice. Dash-Pattern je niz brojeva odvojen prostor i okružen boks-zagradama. To je opcioni parametar za određivanje dužine svake linije i praznine u obrascu. Na primer, {0 0 0.5 [3 3]} treba da nacrta kvadrat (sa oštrim ćoškovima) širine 0.5 i obrazac sa crticom dužine 3 i praznine 3. Ne postoji jednolikost u tome da li/kako različiti pdf čitači prikazuju obrazac.
pdftoolbar =true,false prikaži ili sakri Acrobat’s toolbar
pdfmenubar =true,false prikaži ili sakri Acrobat’s menu
pdffitwindow =true,false menja veličinu prozora dokumenta na veličinu dokumenta
pdfstartview ={FitH},{FitV},etc[3]. postavlja odgovarajuću širinu stranice u odnosu na prozor
pdftitle ={text} definisati naslov koji treba bude prikazan u "Document Info" prozoru Acrobat
pdfauthor ={text} naziv PDF autora, radi kao ovo iznad iznad
pdfsubject ={text} tema dokumenta, radi kao ovo iznad iznad
pdfcreator ={text} autor dokumenta, radi kao ovo iznad iznad
pdfproducer ={text} producent dokumenta, radi kao ovo iznad iznad
pdfkeywords ={text} lista ključnih reči, odvojenih zarezima, primer iznad
pdfnewwindow (=true,false) definiše da li novi PDF prozor treba da se otvori kada link vodi iz trenutnog dokumenta. Primer: Ova opcija se ignoriše ako link vodi do http/https address.
pagebackref (=false,true) aktivira nazad reference unutar bibliografije. Mora biti naveden kao deo \usepackage{} .
colorlinks (=false,true) okružuju link sa obojenim ramovima (false) ili boje tekst linkova (true). Boja ovih linkova može se podesiti pomoću sledeće opcije (podrazumevane boje su prikazane):
hidelinks sakriva linkove (uklanjanje boje i ivice)
linkcolor =red boja internih linkova (poglavlja, stranica, itd.)
linktoc =none,section,page,all definiše koji deo unesenog teksta u sadržaju je stavljen u link
citecolor =green boja citatnih linkova (bibliografija)
filecolor =cyan boja linkova datoteka
urlcolor =magenta boja URL linkova (mail, web)
linkbordercolor ={1 0 0} boja okvira oko internih linkova (if colorlinks=false)
citebordercolor ={0 1 0} boja okvira oko citata
urlbordercolor ={0 1 1} boja okvira oko URL linkova

Napominjemo, da je eksplicitna RGB specifikacija dozvoljena samo na graničnim boja (kao linkbordercolor itd.), dok ostali mogu jednostavnim stavljanjem naziva boja (koje možete definisati sami, videti Boje). Da bi se ubrzao proces prilagođavanja, ovde je spisak varijabli sa svojim podrazumevanim vrednostima. Kopirajte ga u dokument ako želite. Pored varijabli, postoji kratka objašnjenja njihovog značenja:

\hypersetup{
    bookmarks=true,         % приказује bookmarks бар?
    unicode=false,          % не-Латинске карактери у Acrobat bookmarks-има
    pdftoolbar=true,        % приказује Acrobat-ову преграду са алаткама?
    pdfmenubar=true,        % приказује Acrobat-ов мени?
    pdffitwindow=false,     % погодан прозор када се отвори страница
    pdfstartview={FitH},    % уклапа ширину странице према отвореном прозору
    pdftitle={My title},    % наслов
    pdfauthor={Author},     % аутор
    pdfsubject={Subject},   % тема документа
    pdfcreator={Creator},   % креатор документа
    pdfproducer={Producer}, % продуцент документа
    pdfkeywords={keyword1, key2, key3}, % листа кључних речи
    pdfnewwindow=true,      % линкује у нов PDF прозор
    colorlinks=false,       % false: уоквири линкове; true: обоји линкове
    linkcolor=red,          % боја интерних линкова (мења боју оквира са linkbordercolor)
    citecolor=green,        % боја линкова за библиографију
    filecolor=magenta,      % боја линкова датотека 
    urlcolor=cyan           % боја спољних линкова
}

Ako vam ne treba tako visoko prilagođavanje, ovde su neki mali ali korisni primeri. Kada pravite PDF za štampanje, linkovi u boji nisu dobra stvar jer oni se štapmaju sivo, što otežava čitanje. Možete koristiti boje okvira, koji nisu štampane:

\usepackage{hyperref}
\hypersetup{colorlinks=false}

ili da stavite crne linkove:

\usepackage[hidelinks]{hyperref}

Kada želite samo da pruži informacije za Document Info sekciju PDF fajla, kao i omogućavanje vraćanje reference unutar bibliografije:

\usepackage[pdfauthor={Име аутора},%
pdftitle={Наслов документа},%
pagebackref=true,%
pdftex]{hyperref}

Po podrazumevanim postavkama, URL se štampaju pomoću jednoličnih fontova. Ako vam se to ne dopada i želite da budu odštampani u istom stilu poput ostatka teksta, možete koristiti ovo:

\urlstyle{same}

Rešavanje problema

[uredi]

Problemi sa Linkovima i Jednačinama 1

[uredi]

Poruke poput sledećih

! pdfTeX warning (ext4): destination with the same identifier (name{
equation.1.7.7.30}) has been already used, duplicate ignored

pojavljuju se kada ste napravili nešto slično ovom:

\begin{eqnarray}a=b\nonumber\end{eqnarray}

Greška nestaje, ako koristite ovaj obrazac:

\begin{eqnarray*}a=b\end{eqnarray*}

Pazite da je broj pokazne linije često potpuno različit od pogrešne linije.

Moguće rešenje: Postavite amsmath paket pre hyperref paketa.

Problemi sa Linkovima i Jednačinama 2

[uredi]

Poruke poput sledećih

! Runaway argument?
{\@firstoffive }\fi ), Some text from your document here (\ref {re\ETC.
Latex Error: Paragraph ended before \Hy@setref@link was complete.

pojavljuju se kada koristite \label unutar align okruženja.

Moguće rešenje: Dodajte sledeće u preambuli:

\AtBeginDocument{\let\textlabel\label}

Problemi sa Linkovima i Stranicama

[uredi]

Poruke kao što su sledeće:

! pdfTeX warning (ext4): destination with the same
identifier (name{page.1}) has been already used,
duplicate ignored

se pojavljuju kada se brojač bude reinicijalizovan, na primer korišćenjem komande \mainmatter obezbeđuje klasu knjiga dokumenatu. To resetuje brojač stranice na 1 pre prvog poglavlja knjige. Ali kako predgovor knjige takođe ima stranicu broj 1 svi linkovi za "page 1" nisu više unikatni, otuda obaveštenje "duplicate has been ignored." Kontra mera se sastoji od stavljanjaplainpages=false u hyperref opcije. Ovo, nažalost, samo pomaže brojaču stranice. Čak radikalnije rešenje za korišćenje opcije hypertexnames=false, će izazvati prekid linka stranice u indeksu.

Najbolje rešenje je da svaka strana ima jedinstveno ime pomoću \pagenumbering komande:

\pagenumbering{alph}    % a, b, c, ...
... насловна страна, остале ствари ...
\pagenumbering{roman}   % i, ii, iii, iv, ...
... садржај, табела фигура, ...
\pagenumbering{arabic}  % 1, 2, 3, 4, ...
... почетак главне стране (поглавље 1) ...

Još jedno rešenje je korišćenje \pagenumbering{alph} pre komande \maketitle, koji će dati naslovnoj strani etiketu- page.a. Pošto je broj stranica potisnut, neće napraviti razliku u izlazu.

Promenom numeracija svaki put pre nego što se brojač resetuje, svaka strana dobija jedinstveno ime. U ovom slučaju, stranice će biti numerisane a, b, c, i, ii, iii, iv, v, 1, 2, 3, 4, 5, ...

Ako ne želite da brojevi stranica budu vidljivi (na primer, na početku materije), koristite \pagestyle{empty} ... \pagestyle{plain}. Važno je da, iako brojevi nisu vidljivi, svaka strana ima jedinstveno ime.

Drugi, fleksibilniji pristup je da podesite brojač na nešto negativno:

\setcounter{page}{-100}
... насловна страна, остале ствари ...
\pagenumbering{roman}   % i, ii, iii, iv, ...
... садржај, табела фигура,, ...
\pagenumbering{arabic}  % 1, 2, 3, 4, ...
... почетак главне стране (поглавље 1) ...

što će dati na prvim stranicama jedinstveni negativan broj.

Problem se takođe može javiti sa algorithms paketom: jer svaki algoritam koristi istu šemu numeracije, resorni identifikatori za drugi i ostale algoritme će biti duplikati prvog.

Problem se javlja kod identifikatora jednačina ako koristite \nonumber na svakoj liniji "eqnarray" okruženja. U ovom slučaju, koristite *'ed formu umesto npr. \begin{eqnarray*} ... \end{eqnarray*} (što je nenumerisan niz jednačina) i uklonite sada nepotrebne \nonumber komande.

Ako je vaš URL previše dug i prelazi na sledeću stranu, probajte sa breakurl paketom da podelite URL na više linija. Ovo je posebno važno u multikolumn okruženju, gde je širina linija znatno manja.

Problem sa oznakama

[uredi]

Tekst ne prikazuje oznake uvek onako kao što mi očekujemo. Jer oznake su "samo tekst", sa mnogo manje dostupnih simbola nego običan tekst u LaTeX-u. Hyperref će primetiti taj problem i izbaciti upozorenje:

Package hyperref Warning:
Token not allowed in a PDFDocEncoded string:

Sada možete da rešite ovaj problem, tako što ćete dodati tekst za oznake, koji zamenjuje sporni tekst:

\texorpdfstring{''TEX text''}{''Bookmark Text''}

Matematički izrazi su glavni kandidat za ovu vrstu problema:

\section{ \texorpdfstring{$E=mc^2$}{E=mc2} }

što pretvara \section{$E=mc^2$} u E=mc2 u zoni markera. Promene boja ne deluju dobro na oznake:

\section{ \textcolor{red}{Red !} }

proizvodi string "redRed!". Komanda \textcolor ignoriše to ali se njen argument (red) štampa. Ako koristite:

\section{ \texorpdfstring{\textcolor{red}{Red !}}{Red\ !} }

rezultat će biti čitljiviji.

Ako ste napisali dokument u unicode i koristili unicode opciju za hyperref paket, možete koristiti unicode simbole u oznakama. Ovo će vam dati mnogo veći izbor znakova kada se koristi \texorpdfstring.

Problemi sa tabelama i oblicima

[uredi]

Linkovi koji su napravljeni uz pomoć hyperref ukazuju na etiketu stvorenu u float okruženju, koja kao što je prethodno opisano, mora uvek biti postavljena nakon naslova. Pošto je naslov je obično ispod figure ili tabele, one same po sebi neće biti vidljive nakon klika na link[4]. Privremeno rešenje postoji pomoću paketa hypcap [1] sa:

\usepackage[all]{hypcap}

Obavezno pozovete ovaj paket tek nakon učitavanja hyperref.

Ako koristite wrapfig paket[5] koji je spomenut u "prelamanju teksta" u poglavlju "Figure i natpisi", ili druge slične pakete koji definišu svoje okruženje, moraćete ručno da uključite \capstart u ovim okruženjima. Na primer:

\begin{wrapfigure}{R}{0.5\textwidth}
  \capstart
  \begin{center}
    \includegraphics[width=0.48\textwidth]{filename}
  \end{center}  
  \caption{\label{labelname}a figure}
\end{wrapfigure}

Problemi sa dugom naslovom i \listoffigures ili dugački natpisi

[uredi]

Postoji problem kada se koristi \listoffigures sa hyperref za duge naslove ili duge natpise. To se dešava kada su natpisi (ili naslovi) duži od širine stranice (oko 7-9 reči u zavisnosti od podešavanja). Da biste to ispravili, morate da koristite opciju breaklinks kada prvi put stavljate:

\usepackage[breaklinks]{hyperref}

To će onda postaviti reči za sve linkove sa \listoffigures ispravno.

Problemi sa već postojećim .toc, .lof i sličnim fajlovima

[uredi]

Format nekih od pomoćnih datoteka koje generišu latex, se promene kada se uključi hyperref paket. Stoga se može naići na greške kao što su

! Аргумент \Hy@setref@link већ постоји }.

kada se u dokument stavlja hyperref po prvi put za fajlove koji već postoje. Rešenje problema je da obrišete sve datoteke koje latex koristi za reference i da ih unesete ponovo.

Problem sa fusnotama i specijalnim simbolima

[uredi]

Pogledajte ovaj deo.

Problemi sa Beamer

[uredi]

Koristeći komandu

\hyperref[some_label]{неки текст}

dolazi do greške kada se klikne na oznaku. Umesto slanja korisnika na željenu oznaku nakon klika, korisnik će biti poslat na prvi slajd. Postoji jednostavna zaobilaznica ovog problema ; umesto korišćenja:

\phantomsection\label{some_label}

da označite vaše slajdove, koristite

\hypertarget{some_label}{}

i referencirajte ih sa

\hyperlink{some_label}{неки текст}

Problemi sa draft modom

[uredi]

UPOZORENjE! Imajte na umu da ako ste aktivirali "draft"-opciju u \documentclass deklaraciji, hiperlinkovi se neće pojavljivati u sadržaju!!!

Reference

[uredi]


Prethodno: Fusnote i Margine Indeks Sledeće: Oznake i referenciranje