
Existe uma maneira de controlar a quebra de URL biblatex
? estou usandoGuia ACSe diz:
Observação:Diferentes navegadores quebram o texto em diferentes locais de um URL. Em um trabalho impresso, caso a URL precise ser quebrada no final de uma linha, a quebra deverá ser feita após dois pontos ou uma barra dupla; antes de uma única barra, um til, um ponto final, uma vírgula, um hífen, um sublinhado, um ponto de interrogação, um sinal numérico ou um símbolo de porcentagem; ou antes ou depois de um sinal de igual ou um e comercial.
Também estou usando o url
pacote para digitar o URL com a mesma fonte do meu texto. Eu li a documentação do pacote e estou um pouco confuso com as macros \UrlBreaks
e \UrlBigBreaks
, mas pelo que entendi, elas só podem ser usadas para permitir uma pausa após os caracteres listados, mas não antes, pois alguns dos requisitos do guia de estilo (e eu pessoalmente não gostaria de quebras antes de um período, com certeza!). Existe uma maneira de fazer isso?
Responder1
Eu acho que isso deve fazer o que você quiser. Define um novo estilo \urlstyle{acs}
que redefine \UrlBreaks
e \UrlSpecials
de acordo com suas regras.
Há um pequeno problema. Ele preferirá fazer uma pausa entre :
e //
em vez de entre //
, mas se você tiver //
outro lugar, há potencial para fazer uma pausa entre eles. Tentei consertar isso, mas não consegui fazer funcionar. Não acho que isso ocorrerá em um exemplo 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}
Responder2
Você precisará de três pacotes diferentes, então inclua isso em seu código:
\usepackage{url}
\usepackage{breakurl}
\usepackage[breaklinks]{hyperref}
Agora, você só precisa adicionar \def\UrlBreaks{\do\/\do-}
se quiser quebrá-lo depois de a /
ou a -
.
Por exemplo, se a entrada fosse 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"
}
Isso parecerá assim:
Para outras opções, consulte a url
documentação do pacote.