Discussion:
hyperref, \autoref und silbentrennung
(zu alt für eine Antwort)
Sven Köhler
2010-03-03 12:46:49 UTC
Permalink
Hi,

in untenstehendem Dokument geht der \autoref-link über die Zeile hinaus,
sofern man latex+dvips statt pdflatex benutzt. Warum findet die
Silbentrennung nicht statt? In einem anderen Dokument trennt er
"Observation~1" makellos zu "Ob-\\ servation~1". Der Rahmen, der
eigentlich um den Link sein sollte, der sah dann sehr komisch aus. Aber
das ist für mich das kleinere Übel.

Gibt es vielleicht eine hyperref Option, die mir erlaubt das
\autoref{fig:test1} quasi wie Fahrtrichtungsanzeiger~\ref{fig:test1}
dargestellt wird? Ich hab da Bedenken, dass Springer mein Dokument mit
latex+dvips übersetzen wird, und ich möchte dem vorbeugen indem ich
diese Option einschalte, wenn via \ifpdf kein pdflatex gefunden wird.

Das Paket breakurl scheint nur für http://* urls zu sein. Hier hilft es
jedenfalls nicht.


Grüße,
Sven


\documentclass[a4paper,ngerman]{article}

\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{lmodern}
\usepackage{babel}

\usepackage[breaklinks=true]{hyperref}

\hyphenation{Fahrt-rich-tungs-an-zei-ger}

\begin{document}

\renewcommand{\figureautorefname}{Fahrtrichtungsanzeiger}

\begin{figure}
\caption{Test Figure \label{fig:test1}}
\end{figure}

Dies ist ein Test des Umbrechens von Links, wie diesem
\autoref{fig:test1},
welcher viel zu lang ist und über die Zeile
hinausschießt, wie man hier ganz toll sieht.

\end{document}
Heiko Oberdiek
2010-03-03 13:35:55 UTC
Permalink
Post by Sven Köhler
in untenstehendem Dokument geht der \autoref-link über die Zeile hinaus,
sofern man latex+dvips statt pdflatex benutzt. Warum findet die
Silbentrennung nicht statt?
Weil mit dem Treiber dvips umbrochene Links nicht unterstützt werden.
Post by Sven Köhler
In einem anderen Dokument trennt er
"Observation~1" makellos zu "Ob-\\ servation~1". Der Rahmen, der
eigentlich um den Link sein sollte, der sah dann sehr komisch aus. Aber
das ist für mich das kleinere Übel.
Du kannst hyperref bezüglich der Treiberfähigkeiten anlügen und
`breaklinks' angeben. Aber wie du gesehen hast, stimmen die
Linkbereiche dann nicht mehr.
--
Heiko Oberdiek
Sven Köhler
2010-03-03 15:14:03 UTC
Permalink
Post by Heiko Oberdiek
Post by Sven Köhler
in untenstehendem Dokument geht der \autoref-link über die Zeile hinaus,
sofern man latex+dvips statt pdflatex benutzt. Warum findet die
Silbentrennung nicht statt?
Weil mit dem Treiber dvips umbrochene Links nicht unterstützt werden.
Post by Sven Köhler
In einem anderen Dokument trennt er
"Observation~1" makellos zu "Ob-\\ servation~1". Der Rahmen, der
eigentlich um den Link sein sollte, der sah dann sehr komisch aus. Aber
das ist für mich das kleinere Übel.
Du kannst hyperref bezüglich der Treiberfähigkeiten anlügen und
`breaklinks' angeben. Aber wie du gesehen hast, stimmen die
Linkbereiche dann nicht mehr.
Das weiss ich alles, aber es funktioniert in dem beispiel Dokument
nicht. Wie du siehst, hab ich breaklinks ja auf true gesetzt.

Was hälst du von so einer Option, bei der hyperref ein
\autoref{fig:test1} wie ein \*autorefname~\ref{fig:test1} ausgeben
würde? (Der Link würde sich wieder nur auf die Zahl beschränken) Das
wäre IMHO eine sehr gute Ergänzung zu den Fähigkeiten von hyperref, da
sie ermöglicht das gewünschte Layout auch mit Treibern hinzukriegen, die
Fähigkeit mit dem Umbrechen von Links nicht haben.


Grüße,
Sven
Heiko Oberdiek
2010-03-03 17:34:59 UTC
Permalink
Post by Sven Köhler
[...]
Post by Heiko Oberdiek
Du kannst hyperref bezüglich der Treiberfähigkeiten anlügen und
`breaklinks' angeben. Aber wie du gesehen hast, stimmen die
Linkbereiche dann nicht mehr.
Das weiss ich alles, aber es funktioniert in dem beispiel Dokument
nicht. Wie du siehst, hab ich breaklinks ja auf true gesetzt.
Sorry, das hatte ich übersehen. Nun korrigiert in hyperref 6.80j
(TUG-Server, morgen CTAN).
Post by Sven Köhler
Was hälst du von so einer Option, bei der hyperref ein
\autoref{fig:test1} wie ein \*autorefname~\ref{fig:test1} ausgeben
würde? (Der Link würde sich wieder nur auf die Zahl beschränken) Das
wäre IMHO eine sehr gute Ergänzung zu den Fähigkeiten von hyperref, da
sie ermöglicht das gewünschte Layout auch mit Treibern hinzukriegen, die
Fähigkeit mit dem Umbrechen von Links nicht haben.
Hm, dann will jemand statt "~" ein " " oder einen separaten Link
um \autorefname, ... Viele Optionen für kleine Dinge vorzusehen,
macht hyperref nicht übersichtlicher.
--
Heiko Oberdiek
Sven Köhler
2010-03-03 18:33:50 UTC
Permalink
Post by Heiko Oberdiek
Post by Sven Köhler
[...]
Post by Heiko Oberdiek
Du kannst hyperref bezüglich der Treiberfähigkeiten anlügen und
`breaklinks' angeben. Aber wie du gesehen hast, stimmen die
Linkbereiche dann nicht mehr.
Das weiss ich alles, aber es funktioniert in dem beispiel Dokument
nicht. Wie du siehst, hab ich breaklinks ja auf true gesetzt.
Sorry, das hatte ich übersehen. Nun korrigiert in hyperref 6.80j
(TUG-Server, morgen CTAN).
Danke.
Post by Heiko Oberdiek
Post by Sven Köhler
Was hälst du von so einer Option, bei der hyperref ein
\autoref{fig:test1} wie ein \*autorefname~\ref{fig:test1} ausgeben
würde? (Der Link würde sich wieder nur auf die Zahl beschränken) Das
wäre IMHO eine sehr gute Ergänzung zu den Fähigkeiten von hyperref, da
sie ermöglicht das gewünschte Layout auch mit Treibern hinzukriegen, die
Fähigkeit mit dem Umbrechen von Links nicht haben.
Hm, dann will jemand statt "~" ein " " oder einen separaten Link
um \autorefname, ... Viele Optionen für kleine Dinge vorzusehen,
macht hyperref nicht übersichtlicher.
Hmm. Da hast du natürlich recht.

Aber mir geht es in erster Linie um das Layout. Gut, ab Version 6.80j
wird man das Layout mit breaklinks=true wohl gradeziehen können.
Allerdings um den Preis seltsam anmutender Linkboxen.

Nun gut, Vielen Dank für den Bugfix!


Grüße,
Sven

Claas Hemig
2010-03-03 13:34:24 UTC
Permalink
Hallo Sven,

Das Problem habe ich auch, allerdings ist mit nichts besseres als
Post by Sven Köhler
\renewcommand{\figureautorefname}{Fahrtrichtungsanzeiger}
\renewcommand{\figureautorefname}{Fahrt\-rich\-tungs\-an\-zeiger}

eingefallen. LaTeX ignoriert wohl sämtliche nicht explizit angegebene
Trennungsregeln bei autoref.

Gruß, Claas
Loading...