
Ich bin auf das Problem gestoßen, dass \hbox nicht ausgefüllt ist, wenn ich eine lange URL (lang genug, um zwei Zeilen zu füllen) in die Fußnote setzen möchte. Hier ist mein MWE:
\documentclass{article}
\usepackage{hyperref}
\usepackage{ragged2e}
\begin{document}
We use this dataset
\footnote{\url{http://archive.ics.uci.edu/ml/datasets/Parkinson+Speech+Dataset+with++Multiple+Types+of+Sound+Recordings\#}}
for experimentation.
\end{document}
Nach einer Suche im Internet,dieser Beitragschlägt vor, es \RaggedRight
aus dem ragged2e
Paket zu verwenden. Aber ich denke, das \RaggedRight
löst dieses Problem nicht „wirklich“, es verbirgt nur die Warnung „underfull \hbox“. Unten ist die erzeugte Fußnote des obigen MWE:
Nach der Verwendung des \RaggedRight
Befehls, also dem Wechsel von
\footnote{\url{http://archive.ics.uci.edu/ml/datasets/Parkinson+Speech+Dataset+with++Multiple+Types+of+Sound+Recordings\#}}
im MWE zu
\footnote{\RaggedRight\url{http://archive.ics.uci.edu/ml/datasets/Parkinson+Speech+Dataset+with++Multiple+Types+of+Sound+Recordings\#}}
. Die Warnung verschwindet. Aber die erzeugte Fußnote ist (meiner Meinung nach) die gleiche wie vorher, siehe das Bild unten:
Meine Frage ist, wie man dieses Problem „wirklich“ lösen kann. Mein naiver Gedanke: Warum verschiebt LaTeX nicht einige Zeichen aus der zweiten Zeile, beispielsweise die Zeichen „+Multipl“, in den leeren Bereich am Ende der ersten Zeile? Schließlich sind URLs nur eine Reihe von Zeichen. Warum füllt man die erste Zeile nicht mit einigen Zeichen aus der zweiten Zeile, um die erste Zeile voll auszunutzen? Oder gibt es einige versteckte Fakten, die sehr kompliziert sind?
Alle Antworten oder Hinweise auf Antworten sind willkommen!
Antwort1
Anstatt mitten im Wort zu brechen, können Sie um die Trennzeichen herum wieder etwas Leerzeichen einfügen ( .
und /
hier verwende ich
\Urlmuskip=0mu plus 10mu
was in diesem Fall mehr als genug Flexibilität ermöglicht.
\documentclass{article}
\usepackage{hyperref}
\Urlmuskip=0mu plus 10mu
\begin{document}
We use this dataset
\footnote{\url{http://archive.ics.uci.edu/ml/datasets/Parkinson+Speech+Dataset+with++Multiple+Types+of+Sound+Recordings\#}}
for experimentation.
\vfill
\noindent X\dotfill X
\end{document}
Antwort2
\url
versucht, die URL nur an "sinnvollen" Stellen zu unterbrechen. Wenn Ihnen das aber nicht gefällt, können Sie \url überall unterbrechen lassen:
\documentclass{article}
\usepackage{hyperref}
\makeatletter
\g@addto@macro{\UrlBreaks}{%
\do\/\do\a\do\b\do\c\do\d\do\e\do\f%
\do\g\do\h\do\i\do\j\do\k\do\l\do\m%
\do\n\do\o\do\p\do\q\do\r\do\s\do\t%
\do\u\do\v\do\w\do\x\do\y\do\z%
\do\A\do\B\do\C\do\D\do\E\do\F\do\G%
\do\H\do\I\do\J\do\K\do\L\do\M\do\N%
\do\O\do\P\do\Q\do\R\do\S\do\T\do\U%
\do\V\do\W\do\X\do\Y\do\Z}
\makeatother
\begin{document}
We use this dataset
\footnote{\url{http://archive.ics.uci.edu/ml/datasets/Parkinson+Speech+Dataset+with++Multiple+Types+of+Sound+Recordings\#}}
for experimentation.
\end{document}
Beachten Sie, dass die Linie immer noch etwas zu wenig gefüllt ist, da keine dehnbaren Bereiche vorhanden sind.
Antwort3
Eine Lösung, die bei mir funktioniert hat, war das Ersetzen \url
durch \href
. Wenn Ihre URL jedoch keine umbrechbaren Zeichen enthält (z. B. -
), müssen Sie die Suche erleichtern, indem Sie \hspace{0pt}
an strategischen Stellen einige (Leerzeichen mit der Breite Null) einfügen.
In Ihrem Fall habe ich nach jedem „+“ eines hinzugefügt.
\footnote{\href{http://archive.ics.uci.edu/ml/datasets/Parkinson+Speech+Dataset+with+Multiple+Types+of+Sound+Recordings\#}{http://archive.ics.uci.edu/ml/datasets/Parkinson+\hspace{0pt}Speech+\hspace{0pt}Dataset+\hspace{0pt}with+\hspace{0pt}Multiple+\hspace{0pt}Types+\hspace{0pt}of+\hspace{0pt}Sound+\hspace{0pt}Recordings\#}}