在 biblatex 中将 url 更改为普通文本

在 biblatex 中将 url 更改为普通文本

是否可以使用 biblatex 将 URL 条目更改为普通文本模式?(希望这不需要 MWE,如果需要,将提供)

答案1

biblatex将其 URL 排版委托给url包。因此,您可以使用

\urlstyle{same}

使用url文档字体排版所有 URL。

请注意,这也会改变“类似 URL”的内容,例如 DOI 和许多eprint格式。

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear, backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}

\urlstyle{same}

\begin{document}
\cite{sigfridsson,ctan}
\printbibliography
\end{document}

条目中的 URL 和 DOI 采用的是计算机现代罗马字体,而不是打字机字体。


这里有一个将 URL 视为普通文本的解决方案。这很复杂,原因有二

  1. Biber 将百分比/URL 编码应用于url,请参阅如何禁用 URL 中的百分比编码?Biblatex URL 中的斯堪的纳维亚字母。这意味着如果您希望反斜杠保留,则必须打印特殊字段urlraw而不是url

  2. URL 是逐字解释的,这意味着所有特殊字符都没有其通常的特殊含义。~只是~而不是空格,同样_只是下划线而不是让您进入数学模式的下标标记。但然后\只是一个反斜杠而不是启动控制序列名称的特殊字符。所以我们需要“重新激活” \,在 MWE 中我用 做到了这一点\scantokens,但这意味着所有其他特殊字符也会恢复其特殊含义。实际上,这意味着您的 URL 中不能再有#_~了。

所有这些都表明,虽然理论上可行,但这种方法实际上并不应该使用。

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear, backend=biber]{biblatex}

\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{appleby,
  author  = {Humphrey Appleby},
  title   = {On the Importance of the Civil Service},
  date    = {1980},
  url     = {http://example.com/\break sir-humphrey/imp.html},
}
\end{filecontents}

\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\DeclareFieldFormat{url}{%
  \mkbibacro{URL}\addcolon\space
  \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter
  \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter
  \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter
  \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter
  \expandafter\expandafter\expandafter
  \scantokens
  \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter
  \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter
  \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter
  \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter
  \expandafter\expandafter\expandafter
  {\thefield{urlraw}}}

\begin{document}
\cite{sigfridsson,appleby}
\printbibliography
\end{document}

如果你对参考书目中的 URL 损坏方式感到困惑,请查看biblatex 书目中的长 URL 的换行符?强制在 \url 中换行了解 TeX 中 URL 中断的规范解决方案。您可能还对以下内容感兴趣如何调整参考书目的断行?

相关内容