Как «действительно» решить проблему «незаполненного \hbox» при наборе URL-адреса в сноске

Как «действительно» решить проблему «незаполненного \hbox» при наборе URL-адреса в сноске

Я столкнулся с проблемой underfull \hbox, когда я хочу набрать длинный URL (достаточно длинный, чтобы заполнить две строки) в сноске. Вот мой 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} 

После поиска в Интернете,эта почтапредлагает использовать \RaggedRightиз ragged2eпакета. Но я думаю, что это \RaggedRightне решает "действительно" эту проблему, а просто скрывает предупреждение "underfull \hbox". Ниже приведена сноска вышеприведенного MWE: введите описание изображения здесь

После использования \RaggedRightкоманды, т.е. изменения с

\footnote{\url{http://archive.ics.uci.edu/ml/datasets/Parkinson+Speech+Dataset+with++Multiple+Types+of+Sound+Recordings\#}}

в MWE для

\footnote{\RaggedRight\url{http://archive.ics.uci.edu/ml/datasets/Parkinson+Speech+Dataset+with++Multiple+Types+of+Sound+Recordings\#}}

. Предупреждение исчезает. Но полученная сноска (по моему мнению) та же самая, что и раньше, см. изображение ниже: введите описание изображения здесь

Мой вопрос в том, как "действительно" решить эту проблему? По моему наивному мнению, почему бы LaTeX не переместить некоторые символы из второй строки, скажем, символы "+Multipl", на пустое место в конце первой строки. В конце концов, url - это просто ряд символов, почему бы не заполнить первую строку некоторыми символами из второй строки, чтобы полностью использовать первую строку? Или есть какие-то скрытые факты, которые очень сложны?

Любые ответы или ссылки на ответы приветствуются!

решение1

Вместо того, чтобы разрывать середину слова, вы можете снова ввести некоторое растягивающее пространство вокруг символов разрыва ( .и /здесь) Я использую

\Urlmuskip=0mu  plus 10mu

что обеспечивает более чем достаточную гибкость в данном случае.

введите описание изображения здесь

\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} 

решение2

\urlстарается нарушить URL только в "разумных" местах. Но если вам это не нравится, вы можете разрешить \url ломаться везде:

\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} 

введите описание изображения здесь

Имейте в виду, что поскольку растягиваемых пространств нет, линия все равно немного не заполнена.

решение3

Решение, которое сработало для меня, заключалось в замене \urlна \href. Однако, если ваш URL не содержит никаких разрываемых символов (например, -), вам придется помочь ему найти их, вставив некоторые \hspace{0pt}(пробелы нулевой ширины) в стратегических местах.

В вашем случае я добавил по единице после каждого «+».

\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\#}}

Связанный контент