我正在尝试让 APA 处理特殊字符。我做了一些尝试,但它在渲染引文时给出了未定义的控制序列。
我的最小来源是:
\documentclass[british]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{csquotes}
\usepackage[czech,british]{babel}
\usepackage[backend=biber,date=short,maxcitenames=2,style=apa]{biblatex}
\addbibresource{sample.bib}
\DeclareLanguageMapping{british}{british-apa}
\begin{document}
\cite{test}
\nocite{*}
\printbibliography
\end{document}
我的sample.bib
现在看起来像。它肯定是用 UTF8 编码的
@book{test,
Author = {šýř čžá and íéě č},
Title = {šýř},
}
错误是Undefined control sequence \datecircaprint \mkbibdateapalongextra
。我认为编码不是这里的问题。
答案1
fddd.bib
在 LaTeX 环境中编写的filecontents
会在 之后中断\usepackage[utf8]{inputenc}
。解决方法:
移至:
\begin{filecontents}{fddd.bib} @book{test, Author = {ě+íéíáý řščžčřý}, Title = {ščřž}, } \end{filecontents} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc}
或者使用 package
filecontents
,但要小心,它总是覆盖要生成的文件:\usepackage{filecontents}% or \RequirePackage{filecontents} before `\documentclass` \begin{filecontents}{fddd.bib} @book{test, Author = {ě+íéíáý řščžčřý}, Title = {ščřž}, } \end{filecontents}
LaTeXfilecontents
仅通过 来使用逐字模式\dospecials
。反斜杠、井号等特殊字符会逐字写入,但不会触及 8 位字符。在问题的示例中,它们在 之前\usepackage[utf8]{inputenc}
和之后处于活动状态\usepackage[T1]{fontenc}
,它们被写为具有编码的字符T1
。
但是,包filecontents
还会清理 8 位字符。因此,在写入文件时,UTF-8 中的条目不会更改.bib
。
仍有一个问题,我由于 而收到未定义的错误\mkbibdateapalongextra
,但我还没有检查我是否正在使用最新版本。