MWE

MWE

¿Hay alguna manera de controlar la URL que se rompe biblatex? estoy usandoGuía SCAy dice:

Nota:Diferentes navegadores web dividen el texto en diferentes lugares de una URL. En un trabajo impreso, si es necesario dividir la URL al final de una línea, la ruptura debe realizarse después de dos puntos o una doble barra; antes de una sola barra, tilde, punto, coma, guión, subrayado, signo de interrogación, signo numérico o símbolo de porcentaje; o antes o después de un signo igual o un signo comercial.

También estoy usando el urlpaquete para componer la URL con la misma fuente que mi texto. Leí la documentación del paquete y estoy un poco confundido por las macros \UrlBreaksy \UrlBigBreaks, pero por lo que deduje, estas solo se pueden usar para permitir un descanso después de los caracteres enumerados, pero no antes, como algunos de los requisitos de la guía de estilo (y yo personalmente ¡Seguro que no me gustaría que se rompieran antes de un período!). ¿Hay alguna forma de hacer esto?

Respuesta1

Creo que esto debería hacer lo que quieres. Define un nuevo estilo \urlstyle{acs}que redefine \UrlBreaksy \UrlSpecialssegún tus reglas.

Hay un problema menor. Preferirá romper entre :y //en lugar de entre //, pero si tiene //otro lugar, existe la posibilidad de romper entre ellos. Intenté solucionar este problema, pero no pude hacerlo funcionar. Sin embargo, no creo que esto ocurra en un ejemplo real.

MWE

\documentclass{article}
\usepackage{url}

\makeatletter
\def\url@acsstyle{%
  \def\UrlBreaks{\do\/}%
  \def\UrlSpecials{%
    \do\~{\penalty\UrlBreakPenalty\mathchar`~}%
    \do\.{\penalty\UrlBreakPenalty\mathchar`.}%
    \do\,{\penalty\UrlBreakPenalty\mathchar`,}%
    \do\-{\penalty\UrlBreakPenalty\mathchar`-}%
    \do\_{\penalty\UrlBreakPenalty\mathchar`_}%
    \do\?{\penalty\UrlBreakPenalty\mathchar`?}%
    \do\#{\penalty\UrlBreakPenalty\mathchar"23}%
    \do\%{\Url@percent}%
    \do\={\penalty\UrlBreakPenalty\mathchar`=\penalty\UrlBreakPenalty}%
    \do\&{\penalty\UrlBreakPenalty\mathchar`&\penalty\UrlBreakPenalty}%
    \do\ {\Url@space}\do\^^M{\Url@space}%
    \Url@force@Tilde}%
}
\makeatother

\raggedright

\begin{document}

\hsize 5cm

\section*{Default Style}

\url{https://tex.stackexchange.com/questions/477945/control-url-breaking}

\section*{ACS Style}

\urlstyle{acs}

\url{https://tex.stackexchange.com/questions/477945/control-url-breaking}

\end{document}

producción

Respuesta2

Necesitará tres paquetes diferentes, así que incluya esto en su código:

\usepackage{url}
\usepackage{breakurl}
\usepackage[breaklinks]{hyperref}

Ahora, solo necesitarás agregar \def\UrlBreaks{\do\/\do-}si quieres poder dividirlo después de a /o a -.

Por ejemplo, si la entrada fuera esta:

@misc{GartnerNFC,
author = "Clark, Sarah",
howpublished = "nfcworld.com",
month = aug,
note = "Cited July 3rd 2012",
title = "{Gartner’s Hype Cycle places NFC at ‘Peak of Inflated Expectations’}",
url = "http://www.nfcworld.com/2011/08/11/39008/gartner-hype-cycle-places-nfc-at-peak-of-inflated-expectations",
year = "2011"
}

Se verá así:

Para otras opciones, consulte la urldocumentación del paquete.

información relacionada