МВЭ

МВЭ

Есть ли способ контролировать разрыв URL с помощью biblatex? Я используюРуководство по АСЦи там говорится:

Примечание:Разные веб-браузеры разрывают текст в разных местах URL. В печатной работе, если URL-адрес необходимо разорвать в конце строки, разрыв следует делать после двоеточия или двойной косой черты; перед одинарной косой чертой, тильдой, точкой, запятой, дефисом, подчеркиванием, вопросительным знаком, знаком числа или символом процента; или до или после знака равенства или амперсанда.

Я также использую urlпакет для набора URL тем же шрифтом, что и мой текст. Я прочитал документацию пакета и немного сбит с толку макросами \UrlBreaksи \UrlBigBreaks, но, насколько я понял, их можно использовать только для разрешения разрыва после перечисленных символов, но не до них, как того требуют некоторые требования руководства по стилю (и лично мне точно не понравились бы разрывы перед точкой!). Есть ли способ сделать это?

решение1

Я думаю, это должно делать то, что вы хотите. Это определяет новый стиль \urlstyle{acs}, который переопределяет \UrlBreaksи \UrlSpecialsсоответствует вашим правилам.

Есть одна небольшая проблема. Он предпочтет разрыв между :и , //а не между //, но если у вас есть //где-то еще, есть потенциал разрыва между. Я пытался это исправить, но не смог заставить это работать. Я не думаю, что это произойдет в реальном примере.

МВЭ

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

выход

решение2

Вам понадобятся три разных пакета, поэтому включите это в свой код:

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

Теперь вам просто нужно будет добавить, \def\UrlBreaks{\do\/\do-}хотите ли вы иметь возможность разбить его после /или -.

Например, если запись была такой:

@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"
}

Это будет выглядеть так:

Информацию о других вариантах можно найти в urlдокументации к пакету.

Связанный контент