我正在尝试将我的文档从 Bibtex 迁移到 Biblatex (biber),但更改后我无法再编译我的文档。在这个小文件中,我试图找到我的错误。我做错了什么?
我很感激你的帮助!!
(背景:我改用 biber 的原因是我想将我的文献分成几组。有人告诉我 biber 是最简单的选择。)
TLDR:我无法编译我的代码,并且收到以下错误消息(在 TEXmaker 中):
Package biblatex Info: Reference segment=0 on input line 34.
! Illegal parameter number in definition of \abx@list@location.
<to be read again>
1
l.35 ...l durch die Medien geht \cite{Brown.2017}
und auch der Beruf des gew...
You meant to type ## instead of #, right?
Or maybe a } was forgotten somewhere earlier, and things
are all screwed up? I'm going to assume that you meant ##.
我的参考书目:
@online{Brown.2017,
author = {Brown, Meta S.},
editor = {Forbes},
year = {2017},
title = {{Read This Before You Pay For That Masters In Data Science Program}},
url = {\url{https://www.forbes.com/sites/metabrown/2017/10/31/read-this-before-you-pay-for-that-masters-in-data-science-program/#1a20e13f78b2}},
urldate = {2018-10-19},
origdate = {2017-10-31},
abstract = {},
location = {\url{https://www.forbes.com/sites/metabrown/2017/10/31/read-this-before-you-pay-for-that-masters-in-data-science-program/#1a20e13f78b2}},
note = {Forbes. Zuletzt gepr{\"u}ft am 19.10.2018.}
}
我的文本文件:
\documentclass[
pdftex,
oneside,
12pt,
parskip=half,
headheight = 14pt,
headsepline,
footsepline,
footheight = 16pt,
abstracton,
DIV=calc,
BCOR=8mm,
headinclude=false,
footinclude=false,
listof=totoc,
toc=bibliography,
]{scrreprt}
\usepackage{xstring}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{epigraph}
\usepackage[
backend=biber,
bibwarn=true,
bibencoding=utf8,
sortlocale=nyt,
citestyle=authoryear,
]{biblatex}
\addbibresource{BiblatexLiteratur.bib}
\begin{document}
Dadurch, dass Data Science im Moment viel durch die Medien geht \cite{Brown.2017} und auch der Beruf des gewählt \cite{Glassdoor.2018}.
\clearpage
\printbibliography
\end{document}
答案1
问题在于 URL,特别是字段#
中的特殊字符location
。#
对于 LaTeX 来说非常特殊(请参阅LaTeX 中的转义字符(用于具有特殊含义的其他字符的列表)并且即使\url
该\url
命令是另一个命令的参数也会导致问题——而文件中恰好就是这种情况.bbl
。
由于location
不是提供条目 URL 的语义上正确的字段,因此您应该删除该字段。location
(及其 BibTeX 别名address
)用于保存作品的(物理)出版地点(通常是publisher
、organization
或institution
所在的地方)。
应在字段中提供作品的 URL url
。(像 DOI 这样的特殊 URI 可能有专门的字段:doi
, eprint
)url
字段中允许使用像 这样的特殊字符#
,并且不会导致错误。也没有必要用 来转义 URL \url
。
您的输入可能类似于以下 MWE
\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}
@online{Brown.2017,
author = {Brown, Meta S.},
editor = {Forbes},% or maybe even better: organization = {Forbes},
year = {2017},
title = {Read This Before You Pay For That Masters In Data Science Program},
url = {https://www.forbes.com/sites/metabrown/2017/10/31/read-this-before-you-pay-for-that-masters-in-data-science-program/},
urldate = {2018-10-19},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{Brown.2017}
\printbibliography
\end{document}
我#1a20e13f78b2
从 URL 中省略了 ,因为没有这个位,链接#
也可以正常工作(正如人们应该能够预料的那样:#
通常表示锚点在页面,但它没有将我带到页面顶部以外的任何地方)。