
Encontrei o problema de \hbox insuficiente quando desejo digitar um URL longo (longo o suficiente para preencher duas linhas) na nota de rodapé. Aqui está meu 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}
Depois de pesquisar na web,esta postagemsugere usar \RaggedRight
do ragged2e
pacote. Mas acho que isso \RaggedRight
"realmente" não resolve esse problema, apenas oculta o aviso "underfull \hbox". Abaixo está a nota de rodapé produzida do MWE acima:
Depois de usar o \RaggedRight
comando, ou seja, mudar de
\footnote{\url{http://archive.ics.uci.edu/ml/datasets/Parkinson+Speech+Dataset+with++Multiple+Types+of+Sound+Recordings\#}}
no MWE para
\footnote{\RaggedRight\url{http://archive.ics.uci.edu/ml/datasets/Parkinson+Speech+Dataset+with++Multiple+Types+of+Sound+Recordings\#}}
. O aviso desaparece. Mas a nota de rodapé produzida é (na minha opinião) a mesma de antes, veja a imagem abaixo:
Minha pergunta é: como "realmente" resolver esse problema? No meu pensamento ingênuo, por que o LaTeX não move alguns caracteres da segunda linha, digamos os caracteres "+Multipl", para o espaço vazio no final da primeira linha. Afinal, url é apenas uma série de caracteres, por que não preencher a primeira linha com alguns caracteres da segunda linha para aproveitar ao máximo a primeira linha? Ou existem alguns fatos ocultos que são muito complicados?
Qualquer resposta ou indicação de respostas será apreciada!
Responder1
Em vez de quebrar o meio da palavra, você pode reintroduzir algum espaço de extensão ao redor dos caracteres de quebra ( .
e /
aqui) que eu uso
\Urlmuskip=0mu plus 10mu
o que permite flexibilidade mais que suficiente neste 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}
Responder2
\url
se esforça para quebrar o URL apenas em locais "sensatos". Mas se você não gostar disso, você pode permitir que \url seja quebrado em todos os lugares:
\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}
Esteja ciente de que, como não há espaços extensíveis, a linha ainda está um pouco cheia.
Responder3
Uma solução que funcionou para mim foi substituir \url
por \href
. Porém, se a sua URL não contiver nenhum caractere quebrável (por exemplo, -
), você terá que ajudá-la a encontrar inserindo alguns \hspace{0pt}
(espaço de largura zero) em locais estratégicos.
No seu caso, adicionei um após 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\#}}