Portál AbcLinuxu, 10. května 2025 05:30

Dotaz: latex: hyperref - nefungují odkazy

8.10.2008 16:06 Pev | skóre: 28
latex: hyperref - nefungují odkazy
Přečteno: 1808×
Odpovědět | Admin
Zdravím,

v pdflatexu mi nefungují některé odkazy, pdflatex píše:
pdfTeX warning (dest): name{obr020301} has been referenced but does not exist, 
replaced by a fixed one
Chyba se projeví tak, že odkaz ukazuje na první stránku.

Kód latexu:
{{\caption[{Roztřídění čekajících operací}]{{{Roztřídění čekajících operací}}}\label{obr020301}}}
\end{center}
\end{figure}
...
... obrázek \hyperlink{obr020301}{{\ref{obr020301}}}...
Hledal jsem na usenet konferencích (comp.text.tex), řeší to tam několikrát, ale kloudná rada nikde.

Můj problém se vyskytuje jen u obrázku, odkazy na kapitoly fungují správně.

Zde radí použít \phantomsection, ale to mi nějak nepomohlo (zkoušel jsem to dát na různá místa).

Zde zase radí:

You can overload \hyperlink and \hypertarget and log the targets in the .aux file. Then at the next run, the targets are known.

Nechápu moc jak to chtějí načíst (pouštím pdflatex víckrát, aby se načetly soubory s obsahy a jiné...).

Díky za tipy.
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

8.10.2008 16:14 robertK | skóre: 26 | blog: Klokanuv_blog | Brno
Rozbalit Rozbalit vše Re: latex: hyperref - nefungují odkazy
Odpovědět | | Sbalit | Link | Blokovat | Admin
\documentclass{article}
\usepackage{hyperref}
\begin{document}

\begin{figure}
  \centering
  Obrazek

 \caption{Popisek}\label{obr}
\end{figure}

\newpage
Koukni na Obrazek \ref{obr}.
\end{document}
>
8.10.2008 18:45 Pev | skóre: 28
Rozbalit Rozbalit vše Re: latex: hyperref - nefungují odkazy
Díky za snahu. Já nevložil celý kód - vypadá nějak takhle:

\label{sec_operace_s_klici}\hypertarget{sec_operace_s_klici}{}%

% figure ------------------------------------------------------ \begin{figure} \begin{center}

{{\includegraphics[scale=0.7]{data_pro_pcli}}\hypertarget{id2674030}{}% \label{id2674030} } {{\caption[{Roztřídění čekajících operací podle serverů a klíčů}]{{{Roztřídění čekajících operací podle serverů a klíčů}}}\label{obr020301}}} \end{center} \end{figure}

obrázek tady \hyperlink{obr020301}{{\ref{obr020301}}}.

S latexem a odkazy mám nějaké zkušenosti, s odkazy jsem již dělal. Tentokrát generuju latex docbookem (xsl: db2latex) - to jen na vysvětlenou, proč je kód takový, jaký je, sám bych psal latex trochu jinak.

Každopádně ikdyž je generovaný kód složitější, v zásadě dělá to samé (když kód zjednoduším, ničemu to nepomůže). Problém bude v něčem jiném.
8.10.2008 19:27 robertK | skóre: 26 | blog: Klokanuv_blog | Brno
Rozbalit Rozbalit vše Re: latex: hyperref - nefungují odkazy
Nedela to same, makro hyperlink ocekava v druhem parametru text a v prvnim parametru nazev linku, coz obecne nesouvisi s argumentem prikazu label, ale jde to zjistit treba v souboru jmeno_souboru.aux - v tom mem souboru to bylo treba figure.1

Vetsinou uzivatel tohle nevidi a proto se hyperlink pouziva po vlozeni kotvy pro odkaz prikazem hypertarget. Trvate -li na makru hyperlink, zkuste za \label{obr020301} pridat \hypertarget{obr020301}{}

ref uz sam o sobe dela cely odkaz, pokud chcete mit jiny text odkazu, pouzijte makro hyperref

9.10.2008 09:45 robertK | skóre: 26 | blog: Klokanuv_blog | Brno
Rozbalit Rozbalit vše Re: latex: hyperref - nefungují odkazy
predchozi odpoved jsem psal naslepo, az ted jsem u TeXu tak jeste posilam jiny funkcni kod, ktery Vas snad presvedci, ze to delate spatne
\documentclass{article}
\usepackage{hyperref}
\begin{document}

\begin{figure}
  \centering
  Obrazek

 \caption{Popisek}\label{obr}\hypertarget{obr}{}
\end{figure}


aaa
\newpage

Koukni na Obrazek \ref{obr}.

Koukni na Obrazek \hyperlink{figure.1}{\ref{obr}}.

Koukni na Obrazek \hyperlink{obr}{\ref{obr}}.


\end{document}
Mezi temi tremi variantami nevidim rozdil, neni tedy duvod nepouzit klasicke \label a \ref
8.11.2008 17:41 Pev | skóre: 28
Rozbalit Rozbalit vše Re: latex: hyperref - nefungují odkazy
Tak tohle opravdu pomohlo, díky moc :-).

Zjevně další bug v db2latexu...
8.10.2008 19:30 robertK | skóre: 26 | blog: Klokanuv_blog | Brno
Rozbalit Rozbalit vše Re: latex: hyperref - nefungují odkazy
Ted koukam ze u jinych labelu ten hypertarget mate, tak se teprve divim, proc u toho obrazku chybi ....
8.11.2008 17:30 Pev | skóre: 28
Rozbalit Rozbalit vše Re: latex: hyperref - nefungují odkazy
Díky za tipy. Snažím se to pochopit a zprovoznit.

Já sám na ničem netrvám, jde spíš o to, že kód generuji pomocí softu xslt2. Ten sám používa db2latex k transofrmaci z docbooku do latexu...

Když vytáhnu kód, který jsem uvedl, do samostatného souboru, tak to funguje. Ve velké diplomce už ne. Zkusím tedy Váš kód.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.