Длинный URL-адрес выходит за пределы поля — он прерывается на подчеркивании, но слишком поздно

Длинный URL-адрес выходит за пределы поля — он прерывается на подчеркивании, но слишком поздно

В моей диссертации есть длинный URL, содержащий много символов подчеркивания в качестве разделителей слов (программное обеспечение Wiki сделало это). Эти URL прерываются на подчеркивании (хорошо!), но слишком поздно, из-за чего строка текста выходит на поля. Есть более раннее подчеркивание, но разрыва там не происходит. Я бы предпочел одну строку с более коротким текстом, чем одну строку, выходящую на поля.

Я использую класс документа, специфичный для моей школы, полученный из amsbook, который использует hyperref. Я прочитал много сообщений на форуме по похожим проблемам, но (a) не нашел ни одного, который бы точно соответствовал моей проблеме (подчеркивания ломаются, но не в лучшем случае), и (b) решения, предложенные другими, не сработали для меня: я попробовал передать параметр [дефисы], но безрезультатно (как и ожидалось). Я также попробовал пакет \breakurl, но моя система использует pdflatex, который не поддерживается \breakurl.

Я был бы очень благодарен за ваш совет - школа пометила мою диссертацию, потому что эти URL-адреса выступают за требуемые поля, и у меня закончились варианты, которые можно попробовать. Последним средством было бы показать URL-адрес как обычный текст и принудительно применить другое форматирование - я бы хотел этого избежать.

Моя попытка MWE:

\documentclass[hidelinks,12pt]{amsbook}
\RequirePackage[bookmarks, bookmarksopen=true, plainpages=false, pdfpagelabels, pdfpagelayout=SinglePage, breaklinks = true]{hyperref}

\begin{document}
\chapter{Troubleshooting long URLs}

\section{Test 1}    
A complete list of participants and presentations can be found on the conference web site: \url{http://ruraro.rintint.edu/events/shipshops/index.php/Perplexity_and_Action_-_an_Interdisciplinary_Approach_to_Rationale_Synchro_Theory}

\end{document}

После компиляции с помощью pdflatex (на самом деле я использую Sublime Text CTRL-B) URL-адрес разрывается дважды: первый раз после events/ и второй раз после Interdisciplinary_, хотя я бы предпочел, чтобы второй разрыв произошел после an_.

EDIT: Наивно, но мне кажется, что суть в том, как LaTeX (и все задействованные пакеты) выбираюткоторыйподчеркивание, чтобы разбить URL! Почему не на последнем подчеркиваниидоконец строки (по краям)? В настоящее время разрыв происходит на первом подчеркивании после абзаца.

решение1

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

\documentclass[hidelinks,12pt]{amsbook}
\RequirePackage[bookmarks, bookmarksopen=true, plainpages=false, pdfpagelabels, pdfpagelayout=SinglePage, breaklinks = true]{hyperref}

\begin{document}
\chapter{Troubleshooting long URLs}

\section{Test 1}    
A complete list of participants and presentations can be found on the conference web site: \href
{http://ruraro.rintint.edu/events/shipshops/index.php/Perplexity_and_Action_-_an_Interdisciplinary_Approach_to_Rationale_Synchro_Theory}%
{\texttt{http://ruraro.rintint.edu/events/ship\linebreak shops/index.php/Perplexity\string_and\string_Action\string_-\string_an\string_Interdisciplina\linebreak ry\string_Approach\string_to\string_Rationale\string_Synchro\string_Theory}}

\end{document}

решение2

Поместите URL в отдельный абзац и используйте \parbox. Это также работает внутри списка:

\documentclass[hidelinks,12pt]{amsbook}
\RequirePackage[bookmarks, bookmarksopen=true, plainpages=false, pdfpagelabels, pdfpagelayout=SinglePage, breaklinks = true]{hyperref}

\usepackage{enumitem} 

\begin{document}
\chapter{Troubleshooting long URLs}

\section{Test 1}
A complete list of participants and presentations can be found on the conference web site: \medskip

\noindent%
\parbox{\linewidth}{\url{http://ruraro.rintint.edu/events/shipshops/index.php/Perplexity_and_Action_-_an_Interdisciplinary_Approach_to_Rationale_Synchro_Theory}}

\begin{itemize}[leftmargin = 1.6\parindent, before = \bigskip]
  \item\parbox[t]{\dimexpr\linewidth-\leftmargin\relax}{\url{http://ruraro.rintint.edu/events/shipshops/index.php/Perplexity_and_Action_-_an_Interdisciplinary_Approach_to_Rationale_Synchro_Theory}}

\end{itemize}

\end{document} 

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

решение3

Вы можете использовать функцию \href дважды (или столько раз, сколько у вас ссылок), обе ссылки будут ссылаться на один и тот же URL, но первая с текстом, который вы хотите отобразить в первой строке, а вторая с текстом, который вы хотите отобразить во второй строке. Другими словами, вы решаете, где будет разрыв строки. Немного неловко, но для меня это работает хорошо:

(\href{Full URL}{\underline{Text up to the end of line 1}} \href{Full URL}{\underline{Text for the start of line 2}})

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