URL longo se estende até a margem - quebra no sublinhado, mas é tarde demais

URL longo se estende até a margem - quebra no sublinhado, mas é tarde demais

Na minha dissertação, tenho uma URL longa contendo muitos caracteres de sublinhado como separadores de palavras (o software Wiki fez isso). Esses URLs quebram com um sublinhado (bom!), mas tarde demais, fazendo com que a linha de texto se estenda até a margem. Há um sublinhado anterior, mas a quebra não acontece lá. Prefiro ter uma linha com texto mais curto do que uma linha que se estende até a margem.

Estou usando uma classe de documento específica da minha escola, derivada do amsbook, que usa hyperref. Eu li muitas postagens no fórum sobre problemas semelhantes, mas (a) não encontrei uma que correspondesse exatamente ao meu problema (sublinhados quebrados, mas não o melhor) e (b) as soluções sugeridas por outros não funcionaram para eu: tentei passar a opção [hífens], sem efeito (como esperado). Também tentei o pacote \breakurl, mas meu sistema usa pdflatex, que não é suportado pelo \breakurl.

Ficaria muito grato pelo seu conselho - a escola sinalizou minha dissertação porque esses URLs se projetam para a margem exigida e não tenho mais nada para tentar. O último recurso seria mostrar o URL como texto simples e forçar outra formatação - gostaria de evitar isso.

Minha tentativa de um 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}

Depois de compilar com pdflatex (na verdade, estou usando Sublime Text CTRL-B), a URL quebra duas vezes: primeiro depois de events/ e segundo depois de Interdisciplinary_ embora eu prefira que a segunda quebra ocorra depois de an_.

EDIT: Ingenuamente, para mim o ponto crucial parece ser como o LaTeX (e todos os pacotes envolvidos) escolhe emqualsublinhado para quebrar o URL! Por que não no último sublinhadoanteso fim da linha (em termos de margem)? Atualmente ele quebra no primeiro sublinhado após o parágrafo.

Responder1

insira a descrição da imagem aqui

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

Responder2

Coloque a URL em um parágrafo separado e use uma extensão \parbox. Também funciona dentro de uma lista:

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

insira a descrição da imagem aqui

Responder3

Você pode usar a função \href duas vezes (ou quantas vezes você vincular), ambas vinculando à mesma URL, mas a primeira com o texto que você deseja que apareça na primeira linha, e a segunda com o texto que você deseja que apareça na segunda linha. Em outras palavras, você decide onde ocorre a quebra de linha. Um pouco complicado, mas funciona bem para mim:

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

informação relacionada