关于如何@string
在文件中允许 UTF-8 宏有什么建议吗mwe.bib
?[第 537-539 行]
@string{ Uà = {Università} #. }
@string{ Uàdi = Uà#di }
@string{ UàdSdi = Uà#degli# {Studi} #di }
@PhdThesis{mwe,
author = {Some Guy},
title = {On something},
school = Uàdi# {Padova},
%school = UàdSdi# {Bologna},
year = 2010,
}
我有这样的设置:
\RequirePackage[T1]{fontenc}
\RequirePackage[utf8]{inputenc}
\RequirePackage{newunicodechar}
\RequirePackage[backend=biber%
,bibencoding=utf8,texencoding=utf8,style=numeric-comp%
,sorting=none,sortcites=true,block=none,indexing=false%
,citereset=none,isbn=true,url=true,doi=true]{biblatex}%
并在以下位置使用它mwe.tex
:
\addglobalbib[datatype=bibtex,type=file]{mwe.bib}
\begin{document}
\cite{mwe}
\printbibliography
\end{document}
然后运行:
biber mwe
并得到:
WARN - BibTeX subsystem: /tmp/I5WGNx_9Fe/mwe.bib_16327.utf8, line 537, warning: overriding existing definition of macro "u"
ERROR - BibTeX subsystem: /tmp/I5WGNx_9Fe/mwe.bib_16327.utf8, line 538, syntax error: found "di", expected "="
答案1
您给出的 MWE 有几个错误,所以我尝试纠正它。正如 @egreg 在他的评论中提到的那样,不要在字符串名称中使用特殊字符。如果您di
在字符串中使用类似的东西(请参阅您的 MWE),它将被解释为宏。因此,定义一个字符串di
或仅使用它{...}
来明确它应该作为普通文本插入。请参阅我的 MWE 中更改的字符串定义。
我不知道使用的语言,所以我只是猜测构建以下内容而不会出现错误或警告(如果您的文件存储为,则给出的mwe.bib
警告被覆盖是正确的,可以忽略)编译:\jobname.bib
mwe.bib
tex
mwe.tex
%http://tex.stackexchange.com/questions/74037/a-way-to-use-bibliography-utf8-string-entry-keys
\RequirePackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@string{ Ua = {Universit\`a } #. }
@string{ Uadi = Ua#{ di } }
@string{ UadSdi = Ua#{ degli }# { Studi } #{ di }}
@PhdThesis{mwe,
author = {Some Guy},
title = {On something},
school = Uadi# {Padova},
year = 2010,
}
@PhdThesis{mwe1,
author = {Some Guy},
title = {On something},
school = UadSdi# {Bologna},
year = 2010,
}
\end{filecontents*}
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{newunicodechar}
\usepackage[%
backend=biber
,bibencoding=utf8
,texencoding=utf8
,style=numeric-comp
,sorting=none
,sortcites=true
,block=none
,indexing=false
,citereset=none
,isbn=true
,url=true
,doi=true
]{biblatex}%
\addglobalbib[%
datatype=bibtex
,type=file
,backend=biber
]{\jobname.bib}
\begin{document}
\cite{mwe} \cite{mwe1}
\printbibliography
\end{document}
如果我误解了您,请随意更改我给出的 MWE。