В моей диссертации есть длинный 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}})