你好。
我试图引用一个使用字母“ø”的网页,但我的参考书目没有在 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 中使用空格不起作用演示如何使用urlraw
和url
生成一个显示非 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-encode
或urlraw
。
然后还有第二个更紧迫的问题。pdfLaTeX 无法真正处理 或 中的非 ASCII 网址\url
。\nolinkurl
看看输出
\url{https://www.matematikksenteret.no/eksamen-prøver-og-kartlegging/alle-teller}
在您的文档中。Ulrike 也在她的一个回答中提到并解释了这一点。如果您使用 XeLaTeX 或 LuaLaTeX,输出是可以的,但使用 pdfLaTeX 时,您必须自己从低级命令构建 URL。通常的临时解决方案对于自动工具(例如和 Biber)来说非常不切实际,您可以通过定义一个新字段并使用它来代替 来biblatex
解决这个问题。urlmanual
url
考虑到所有这些困难,如果我是你,我就会顺其自然并接受百分比编码的 URL。