ЛаТеX/Хиперлинкови

LaTeX омогућује припрему за хиперлинкова, што је корисно када је коначан формат ПДФ и хипервезе које се могу пратити. То ради помоћу пакетa hyperref.

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

Hyperref

уреди

Пакет hyperref[1] даје LaTeX-у способност да се креира хиперлинк у документу. То ради са командом pdflatex и такође са стандардним "latex" користи са dvips и ghostscript или dvipdfm да направи PDF фајл. Ако га учитате, имаћете могућност да укључите интерактивне екстерне линкове и све своје интерне референце ћете претворити у хиперлинкове. Компајлер pdflatex чини могућим стварање PDF фајлова директно из LaTeX извора и PDF подржава више функција него DVI. Нарочито PDF подржава хиперлинкове и једини начин да их уведе у LaTeX је коришћењем hyperref. Штавише, PDF може садржати и друге податке о документу као што је наслов, аутор, итд., који се могу мењати користећи овај исти пакет.

Употреба

уреди

Основна употреба са стандардним подешавањима је једноставна. Само треба учитати пакет у преамбули:

\usepackage{hyperref}

Ово ће аутоматски претворити све ваше унутрашње референце у хиперлинкове. То неће утицати на писање ваших докумената: само наставите да користите стандардни \label-\ref систем (расправљаном у поглављу о Ознакама и референцирању); са hyperref "конекцијама" ће постати линк и моћи ћете да кликнете на њих и да вас преусмере на праву страницу. Штавише садржај, систа облика/табела и индекса ће бити хиперлинкови такође. Хиперлинкови се неће показати ако радите у драфт режиму рада.

Команде

уреди

Пакет садржи неке корисне команде за уметање линкова који показују ван документа.

\hyperref

уреди

Употреба:

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

То ће имати исти ефекат као \ref{label_name} али ће текст линка бити линк. Ове се може комбиновати. Ако је лема означена као mainlemma број 4.1.1 следећи пример би резултирао у

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

Користимо лему 4.1.1.

са линком као што је очекивано. Приметите да "*" након \ref служи за избегавање гранања линкова.

Употреба:

\url{<my_url>}

То ће показати УРЛ користећи једноширински фонт и ако кликнете на то, ваш претраживач ће бити отворен на тој страни.

Употреба:

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

То ће показати стринг description користећи стандардни документ фонт, али ако кликнете на то, ваш претраживач ће отворити my_url. Ево примера:

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

У оба случаја отвориће се иста страна, али у првом случају ће бити приказан УРЛ, док је у другом случају УРЛ ће бити сакривен. Имајте на уму да, ако одштампате документ, линк чува користећи \href и неће нигде бити приказан у документу.

Друге могућности

уреди

Осим повезивање са сајтовима о којима смо говорили, hyperref се може користити за обезбеђивања mailto линкова, линкове ка локалним датотекама и везе са било којим PDF излазним фајлом.

E-mail адресе

уреди

Могуће начин да се унесу емаил линкови је

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

То само показује своју е-маил адресу (тако да људи могу да знају, чак и ако је документ штампан на папир) али, ако читалац кликне на њега, он(а) лако може да вам пошаље е-маил. Или, да обухвати url форматирање и разбијање линија приказаних у тексту, користити [2]

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

Када користите ову форму, имајте на уму да је \nolinkurl команда крхка и ако су хиперлинкови унутар покретног аргумент, онда мора претходити \protect команда.

Локална датотека

уреди

Фајлови се такође могу линковати уз помоћ url или href команди. Једноставно треба да додате стринг run: на почетку линка:

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

Ово http://tex.stackexchange.com/questions/46488/link-to-local-pdf-file url не ради увек, али href ради стално.

Могуће је користити релативне путање за повезивање докумената у близини локације вашег тренутног документа; да би то урадили, користите стандардну Unix-like нотацију (./ тренутни директоријум, ../ је претходни директоријум, итд.)

Хиперлинк и Хипертаргет

уреди

Такође је могуће да се створи "сидро" било где у документу (са натписом или без) и да се линкује. Да бисте креирали "сидро", користите:

\hypertarget{label}{target caption}

и да га линкујете, користите:

\hyperlink{label}{link caption}

где су target caption и link caption текст који респективно приказује циљну локацију и "мету".

Прилагођавање

уреди

Стандардне поставке би требало да буде у реду за већину корисника, али можете и да промените нешто ако желите. Постоји неколико променљивих и две методе за њих у паковању. Опције могу бити донете као аргумент пакета када је напуњен (стандардни рад пакета) или \hypersetup команда се може користити на следећи начин:

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

можете проћи кроз многе опције ако желите; одвојите их зарезом. Опције морају бити у облику:

variable_name=new_value

исти формат има да се користи ако се прођу те опције у пакету, док се учитава, овако:

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

Овде је листа могућих променљивих које можете мењати (за комплетну листу, погледајте официјалну документацију). Стандардне вредности су записане у усправном фонту:

Погледајте 3.8 Велику листу на hyperref-manual на tug.org

променљиве вредности коментар
bookmarks =true,false прикажи или сакри траку са обележивачима када приказује документ
unicode =false,true омогућава коришћење знакова језика non-Latin са базом у Acrobat’s bookmarks
pdfborder ={RadiusH RadiusV Width [Dash-Pattern]} подесите стил ивица око линка. Прва два параметра (RadiusH, RadiusV) немају ефекта у већини pdf читачима. Width дефинише дебљину ивице. Dash-Pattern је низ бројева одвојен простор и окружен бокс-заградама. То је опциони параметар за одређивање дужине сваке линије и празнине у обрасцу. На пример, {0 0 0.5 [3 3]} треба да нацрта квадрат (са оштрим ћошковима) ширине 0.5 и образац са цртицом дужине 3 и празнине 3. Не постоји једноликост у томе да ли/како различити pdf читачи приказују образац.
pdftoolbar =true,false прикажи или сакри Acrobat’s toolbar
pdfmenubar =true,false прикажи или сакри Acrobat’s menu
pdffitwindow =true,false мења величину прозора документа на величину документа
pdfstartview ={FitH},{FitV},etc[3]. поставља одговарајућу ширину странице у односу на прозор
pdftitle ={text} дефинисати наслов који треба буде приказан у "Document Info" прозору Acrobat
pdfauthor ={text} назив PDF аутора, ради као ово изнад изнад
pdfsubject ={text} тема документа, ради као ово изнад изнад
pdfcreator ={text} аутор документа, ради као ово изнад изнад
pdfproducer ={text} продуцент документа, ради као ово изнад изнад
pdfkeywords ={text} листа кључних речи, одвојених зарезима, пример изнад
pdfnewwindow (=true,false) дефинише да ли нови PDF прозор треба да се отвори када линк води из тренутног документа. Пример: Ова опција се игнорише ако линк води до http/https address.
pagebackref (=false,true) активира назад референце унутар библиографије. Мора бити наведен као део \usepackage{} .
colorlinks (=false,true) окружују линк са обојеним рамовима (false) или боје текст линкова (true). Боја ових линкова може се подесити помоћу следеће опције (подразумеване боје су приказане):
hidelinks сакрива линкове (уклањање боје и ивице)
linkcolor =red боја интерних линкова (поглавља, страница, итд.)
linktoc =none,section,page,all дефинише који део унесеног текста у садржају је стављен у линк
citecolor =green боја цитатних линкова (библиографија)
filecolor =cyan боја линкова датотека
urlcolor =magenta боја URL линкова (mail, web)
linkbordercolor ={1 0 0} боја оквира око интерних линкова (if colorlinks=false)
citebordercolor ={0 1 0} боја оквира око цитата
urlbordercolor ={0 1 1} боја оквира око URL линкова

Напомињемо, да је експлицитна RGB спецификација дозвољена само на граничним боја (као linkbordercolor итд.), док остали могу једноставним стављањем назива боја (које можете дефинисати сами, видети Боје). Да би се убрзао процес прилагођавања, овде је списак варијабли са својим подразумеваним вредностима. Копирајте га у документ ако желите. Поред варијабли, постоји кратка објашњења њиховог значења:

\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           % боја спољних линкова
}

Ако вам не треба тако високо прилагођавање, овде су неки мали али корисни примери. Када правите PDF за штампање, линкови у боји нису добра ствар јер они се штапмају сиво, што отежава читање. Можете користити боје оквира, који нису штампане:

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

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

\usepackage[hidelinks]{hyperref}

Када желите само да пружи информације за Document Info секцију PDF фајла, као и омогућавање враћање референце унутар библиографије:

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

По подразумеваним поставкама, URL се штампају помоћу једноличних фонтова. Ако вам се то не допада и желите да буду одштампани у истом стилу попут остатка текста, можете користити ово:

\urlstyle{same}

Решавање проблема

уреди

Проблеми са Линковима и Једначинама 1

уреди

Поруке попут следећих

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

појављују се када сте направили нешто слично овом:

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

Грешка нестаје, ако користите овај образац:

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

Пазите да је број показне линије често потпуно различит од погрешне линије.

Могуће решење: Поставите amsmath пакет пре hyperref пакета.

Проблеми са Линковима и Једначинама 2

уреди

Поруке попут следећих

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

појављују се када користите \label унутар align окружења.

Могуће решење: Додајте следеће у преамбули:

\AtBeginDocument{\let\textlabel\label}

Проблеми са Линковима и Страницама

уреди

Поруке као што су следеће:

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

се појављују када се бројач буде реиницијализован, на пример коришћењем команде \mainmatter обезбеђује класу књига докуменату. То ресетује бројач странице на 1 пре првог поглавља књиге. Али како предговор књиге такође има страницу број 1 сви линкови за "page 1" нису више уникатни, отуда обавештење "duplicate has been ignored." Контра мера се састоји од стављањаplainpages=false у hyperref опције. Ово, нажалост, само помаже бројачу странице. Чак радикалније решење за коришћење опције hypertexnames=false, ће изазвати прекид линка странице у индексу.

Најбоље решење је да свака страна има јединствено име помоћу \pagenumbering команде:

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

Још једно решење је коришћење \pagenumbering{alph} пре команде \maketitle, који ће дати насловној страни етикету- page.a. Пошто је број страница потиснут, неће направити разлику у излазу.

Променом нумерација сваки пут пре него што се бројач ресетује, свака страна добија јединствено име. У овом случају, странице ће бити нумерисане a, b, c, i, ii, iii, iv, v, 1, 2, 3, 4, 5, ...

Ако не желите да бројеви страница буду видљиви (на пример, на почетку материје), користите \pagestyle{empty} ... \pagestyle{plain}. Важно је да, иако бројеви нису видљиви, свака страна има јединствено име.

Други, флексибилнији приступ је да подесите бројач на нешто негативно:

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

што ће дати на првим страницама јединствени негативан број.

Проблем се такође може јавити са algorithms пакетом: јер сваки алгоритам користи исту шему нумерације, ресорни идентификатори за други и остале алгоритме ће бити дупликати првог.

Проблем се јавља код идентификатора једначина ако користите \nonumber на свакој линији "eqnarray" окружења. У овом случају, користите *'ed форму уместо нпр. \begin{eqnarray*} ... \end{eqnarray*} (што је ненумерисан низ једначина) и уклоните сада непотребне \nonumber команде.

Ако је ваш URL превише дуг и прелази на следећу страну, пробајте са breakurl пакетом да поделите URL на више линија. Ово је посебно важно у мултиколумн окружењу, где је ширина линија знатно мања.

Проблем са ознакама

уреди

Текст не приказује ознаке увек онако као што ми очекујемо. Јер ознаке су "само текст", са много мање доступних симбола него обичан текст у LaTeX-у. Hyperref ће приметити тај проблем и избацити упозорење:

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

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

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

Математички изрази су главни кандидат за ову врсту проблема:

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

што претвара \section{$E=mc^2$} у E=mc2 у зони маркера. Промене боја не делују добро на ознаке:

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

производи стринг "redRed!". Команда \textcolor игнорише то али се њен аргумент (red) штампа. Ако користите:

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

резултат ће бити читљивији.

Ако сте написали документ у unicode и користили unicode опцију за hyperref пакет, можете користити unicode симболе у ознакама. Ово ће вам дати много већи избор знакова када се користи \texorpdfstring.

Проблеми са табелама и облицима

уреди

Линкови који су направљени уз помоћ hyperref указују на етикету створену у float окружењу, која као што је претходно описано, мора увек бити постављена након наслова. Пошто је наслов је обично испод фигуре или табеле, оне саме по себи неће бити видљиве након клика на линк[4]. Привремено решење постоји помоћу пакета hypcap [1] са:

\usepackage[all]{hypcap}

Обавезно позовете овај пакет тек након учитавања hyperref.

Ако користите wrapfig пакет[5] који је споменут у "преламању текста" у поглављу "Фигуре и натписи", или друге сличне пакете који дефинишу своје окружење, мораћете ручно да укључите \capstart у овим окружењима. На пример:

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

Проблеми са дугом насловом и \listoffigures или дугачки натписи

уреди

Постоји проблем када се користи \listoffigures са hyperref за дуге наслове или дуге натписе. То се дешава када су натписи (или наслови) дужи од ширине странице (око 7-9 речи у зависности од подешавања). Да бисте то исправили, морате да користите опцију breaklinks када први пут стављате:

\usepackage[breaklinks]{hyperref}

То ће онда поставити речи за све линкове са \listoffigures исправно.

Проблеми са већ постојећим .toc, .lof и сличним фајловима

уреди

Формат неких од помоћних датотека које генеришу latex, се промене када се укључи hyperref пакет. Стога се може наићи на грешке као што су

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

када се у документ ставља hyperref по први пут за фајлове који већ постоје. Решење проблема је да обришете све датотеке које latex користи за референце и да их унесете поново.

Проблем са фуснотама и специјалним симболима

уреди

Погледајте овај део.

Проблеми са Beamer

уреди

Користећи команду

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

долази до грешке када се кликне на ознаку. Уместо слања корисника на жељену ознаку након клика, корисник ће бити послат на први слајд. Постоји једноставна заобилазница овог проблема ; уместо коришћења:

\phantomsection\label{some_label}

да означите ваше слајдове, користите

\hypertarget{some_label}{}

и референцирајте их са

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

Проблеми са draft модом

уреди

УПОЗОРЕЊЕ! Имајте на уму да ако сте активирали "draft"-опцију у \documentclass декларацији, хиперлинкови се неће појављивати у садржају!!!

Референце

уреди


Претходно: Фусноте и Маргине Индекс Следеће: Ознаке и референцирање