尝试获取 APA 工作时出现未定义的控制序列

尝试获取 APA 工作时出现未定义的控制序列

我正在尝试让 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,但我还没有检查我是否正在使用最新版本。

相关内容