! \abx@list@location 定义中的参数数量非法

! \abx@list@location 定义中的参数数量非法

我正在尝试将我的文档从 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)用于保存作品的(物理)出版地点(通常是publisherorganizationinstitution所在的地方)。

应在字段中提供作品的 URL url。(像 DOI 这样的特殊 URI 可能有专门的字段:doi, eprinturl字段中允许使用像 这样的特殊字符#,并且不会导致错误。也没有必要用 来转义 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}

Brown, Meta S. (2017)。在支付数据科学硕士课程费用之前,请先阅读本文。由福布斯编辑。网址:https://www.forbes.com/sites/metabrown/2017/10/31/read-this-before-you-pay-for-that-masters-in-data-science-program/(访问日期:2018 年 10 月 19 日)。

#1a20e13f78b2从 URL 中省略了 ,因为没有这个位,链接#也可以正常工作(正如人们应该能够预料的那样:#通常表示锚点页面,但它没有将我带到页面顶部以外的任何地方)。

相关内容