平均能量损失

平均能量损失

有没有办法控制 url 中断biblatex?我正在使用ACS 指南上面写着:

笔记:不同的 Web 浏览器会在 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-}是否能够在 a/或 a之后中断它-

例如,如果条目是这样的:

@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包文档。

相关内容