長 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/ 之後,第二次在Interciplin__ 之後,儘管我更希望第二次中斷發生在an_之後。

編輯:天真地,對我來說,關鍵似乎是 LaTeX (以及所有涉及的包)如何選擇哪個底線打破網址!為什麼不在最後一個底線該行的末尾(邊距方面)?目前它在段落後的第一個底線中斷。

答案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}})

相關內容