
Me encontré con el problema de \hbox insuficiente cuando quiero escribir una URL larga (lo suficientemente larga como para llenar dos líneas) en la nota al pie. Aquí está mi 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}
Después de buscar en la web,esta publicaciónsugiere usar \RaggedRight
del ragged2e
paquete. Pero creo que \RaggedRight
"realmente" no resuelve este problema, simplemente oculta la advertencia "underfull \hbox". A continuación se muestra la nota a pie de página del MWE anterior:
Después de usar el \RaggedRight
comando, es decir, cambiar de
\footnote{\url{http://archive.ics.uci.edu/ml/datasets/Parkinson+Speech+Dataset+with++Multiple+Types+of+Sound+Recordings\#}}
en el MWE para
\footnote{\RaggedRight\url{http://archive.ics.uci.edu/ml/datasets/Parkinson+Speech+Dataset+with++Multiple+Types+of+Sound+Recordings\#}}
. La advertencia desaparece. Pero la nota al pie producida es (en mi opinión) la misma que antes, vea la imagen a continuación:
Mi pregunta es, ¿cómo resolver "realmente" este problema? En mi ingenuo pensamiento, ¿por qué LaTeX no mueve algunos caracteres de la segunda línea, digamos los caracteres "+Multipl", al espacio vacío al final de la primera línea? Después de todo, las URL son solo una serie de caracteres, ¿por qué no rellenar la primera línea con algunos caracteres de la segunda línea para aprovechar al máximo la primera línea? ¿O hay algunos hechos ocultos que son muy complicados?
¡Se agradece cualquier respuesta o indicación de respuestas!
Respuesta1
En lugar de dividirse a mitad de palabra, puede volver a introducir algo de espacio alrededor de los caracteres de interrupción ( .
y /
aquí) que uso
\Urlmuskip=0mu plus 10mu
lo que permite flexibilidad más que suficiente en este caso.
\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}
Respuesta2
\url
se esfuerza por romper la URL sólo en lugares "sensibles". Pero si no te gusta esto, puedes permitir que \url se rompa en todas partes:
\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}
Tenga en cuenta que, como no hay espacios estirables, la línea todavía está un poco insuficiente.
Respuesta3
Una solución que funcionó para mí fue reemplazar \url
con \href
. Sin embargo, si su URL no contiene ningún carácter separable (p. ej. -
), tendrá que ayudarla a encontrarlo insertando algunos \hspace{0pt}
(espacio de ancho cero) en ubicaciones estratégicas.
En tu caso, agregué uno después de cada '+'.
\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\#}}