Lange URLs reichen bis in den Rand – sie werden beim Unterstrich umgebrochen, aber zu spät

Lange URLs reichen bis in den Rand – sie werden beim Unterstrich umgebrochen, aber zu spät

In meiner Dissertation habe ich eine lange URL mit vielen Unterstrichen als Worttrenner (das hat die Wiki-Software gemacht). Diese URLs werden bei einem Unterstrich umgebrochen (gut!), aber zu spät, wodurch die Textzeile bis in den Rand reicht. Es gibt zwar einen früheren Unterstrich, aber dort wird der Text nicht umgebrochen. Ich hätte lieber eine Zeile mit kürzerem Text als eine Zeile, die bis in den Rand reicht.

Ich verwende eine für meine Schule spezifische Dokumentklasse, die von amsbook abgeleitet ist und Hyperref verwendet. Ich habe viele Forenbeiträge zu ähnlichen Problemen gelesen, aber (a) keinen gefunden, der genau zu meinem Problem passte (Unterstriche werden unterbrochen, aber nicht der beste), und (b) die von anderen vorgeschlagenen Lösungen haben bei mir nicht funktioniert: Ich habe versucht, die Option [Bindestriche] zu übergeben, ohne Erfolg (wie erwartet). Ich habe auch das \breakurl-Paket ausprobiert, aber mein System verwendet pdflatex, was von \breakurl nicht unterstützt wird.

Ich wäre sehr dankbar für Ihren Rat – die Schule hat meine Dissertation markiert, weil diese URLs in den erforderlichen Rand hineinragen, und ich habe keine Möglichkeiten mehr, es zu versuchen. Der letzte Ausweg wäre, die URL als einfachen Text anzuzeigen und eine andere Formatierung zu erzwingen – das möchte ich vermeiden.

Mein Versuch eines 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}

Nach dem Kompilieren mit pdflatex (eigentlich verwende ich Sublime Text STRG-B) wird die URL zweimal umgebrochen: zuerst nach events/ und zweitens nach Interdisciplinary_, obwohl ich es vorziehen würde, wenn der zweite Umbruch stattdessen nach an_ erfolgen würde.

EDIT: Naiv betrachtet scheint mir die Crux darin zu liegen, wie LaTeX (und alle beteiligten Pakete)welcheUnterstrich, um die URL zu unterbrechen! Warum nicht beim letzten UnterstrichVordas Zeilenende (randmäßig)? Derzeit erfolgt der Umbruch beim ersten Unterstrich nach dem Absatz.

Antwort1

Bildbeschreibung hier eingeben

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

Antwort2

Setzen Sie die URL in einen separaten Absatz und verwenden Sie ein \parbox. Dies funktioniert auch innerhalb einer Liste:

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

Bildbeschreibung hier eingeben

Antwort3

Sie können die \href-Funktion zweimal verwenden (oder so oft, wie Sie verlinken), wobei beide auf dieselbe URL verweisen, aber das erste Mal mit dem Text, der in der ersten Zeile erscheinen soll, und das zweite Mal mit dem Text, der in der zweiten Zeile erscheinen soll. Mit anderen Worten, Sie entscheiden, wo der Zeilenumbruch erfolgt. Ein bisschen Pfusch, aber für mich funktioniert es gut:

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

verwandte Informationen