你好。

你好。

你好。

我试图引用一个使用字母“ø”的网页,但我的参考书目没有在 URL 中显示“ø”,这看起来好像不正确。我搜索了这个问题,但只能找到“在 bib(la)tex 中使用 æ/ø/å”或“在超链接中使用 æ/ø/å”的解决方案。

我正在使用 Overleaf 和 BibLatex。

URL 包含字母 ø,在我的参考书目中最终显示如下(超链接有效,但我希望它能正确显示): https://www.matematikksenteret.no/eksamen-pr%C3%B8ver-og-kartlegging/alle-teller

它应该是: https://www.matematikksenteret.no/eksamen-prøver-og-kartlegging/alle-teller

免责声明: 我对 Latex 一点经验都没有,所以这里可能还有其他一些问题。请随时帮助我清理文件的其他部分。

我的 biblatex 条目如下所示:

@online{AlleTellerWeb,
author  = "NTNU",
title   = "Alle Teller",
url     = "https://www.matematikksenteret.no/eksamen-prøver-og-kartlegging/alle-teller",
year    = {2012},
urldate = {2018-09-16},
keywords = "NTNU, AlleTeller",
}

下面是一个代码示例:

\documentclass[a4paper,12pt]{article}
\usepackage[margin=24mm]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[colorlinks,urlcolor=blue,citecolor=blue,linkcolor=blue]{hyperref}
\usepackage{parskip}
\usepackage[norsk]{babel}
\usepackage{csquotes}
\usepackage[style=apa]{biblatex}
\DeclareLanguageMapping{norsk}{norsk-apa}
\addbibresource{Matematikk2.bib}

\begin{document}
\textit{Alle teller} er utviklet av professor Alistair McIntosh fra \textit{University of Tasmania} for å kartlegge barn sin talloppfatning og tallforståelse \parencite{AlleTellerWeb}.

\printbibliography

\end{document}

答案1

有两个问题导致了这一情况。

首先,Biber 总是将 URL 编码为百分比编码。特别是像这样的非 ASCII 字符ø被转换成百分号代码。在 Biber 2.7 版中,曾经有一个名为的选项--nouri-encode可以关闭此功能。在 Biber 2.8 中,它被一个更复杂的方案所取代,该方案有两个字段(url包含编码字符串,urlraw包含未处理的字符串),如下所示https://github.com/plk/biber/issues/159如何禁用 URL 中的百分比编码?biblatex,在 url 中使用空格不起作用演示如何使用urlrawurl生成一个显示非 ASCII 字符但链接到百分比编码的 URL 的链接

\DeclareFieldFormat{url}{%
  \mkbibacro{URL}\addcolon\space
  \ifhyperref
    {\href{#1}{\nolinkurl{\thefield{urlraw}}}}
    {\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
     \nolinkurl
     \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}}}}

作为吉富布 评论

\DeclareFieldFormat{url}{%
  \mkbibacro{URL}\addcolon\space
  \ifhyperref
    {\href{#1}{\nolinkurl{\thefield{urlraw}}}}
    {\expandafter\nolinkurl\expandafter{\romannumeral-`0\thefield{urlraw}}}}

在这里做同样的事情,并且更容易被看到。

Overleaf 运行的是 Biber 2.5,因此恐怕没有办法使用短暂的、现已删除的--nouri-encodeurlraw

然后还有第二个更紧迫的问题。pdfLaTeX 无法真正处理 或 中的非 ASCII 网址\url\nolinkurl看看输出

\url{https://www.matematikksenteret.no/eksamen-prøver-og-kartlegging/alle-teller}

在您的文档中。Ulrike 也在她的一个回答中提到并解释了这一点。如果您使用 XeLaTeX 或 LuaLaTeX,输出是可以的,但使用 pdfLaTeX 时,您必须自己从低级命令构建 URL。通常的临时解决方案对于自动工具(例如和 Biber)来说非常不切实际,您可以通过定义一个新字段并使用它来代替 来biblatex解决这个问题。urlmanualurl

考虑到所有这些困难,如果我是你,我就会顺其自然并接受百分比编码的 URL。

相关内容