我正在用德语写一篇文章,我想在文中使用 APA 样式的参考书目,并在文中使用数字引文。(我知道 biblatex-apa 是不能乱用的,但作业明确要求 APA 和数字。)使用 babel 的英语选项,效果完全符合预期。但是,一旦我更改为 ngerman,就会出现已知的“\apashortdash undefined”错误,并且 TexMaker 拒绝编译。我该怎么做才能将 APA、数字引文和德语结合起来?
这是我的 MWE:
@Inbook{redei2008fish,
title="FISH (fluorescence in situ hybridization)",
bookTitle="Encyclopedia of Genetics, Genomics, Proteomics and Informatics",
year="2008",
publisher="Springer Netherlands",
address="Dordrecht",
pages="689--689",
doi="10.1007/978-1-4020-6754-9_6006"
}
@article{volpi2008fish,
title={FISH glossary: an overview of the fluorescence in situ hybridization technique},
author={Volpi, Emanuela V and Bridger, Joanna M},
journal={Biotechniques},
volume={45},
number={4},
pages={385--409},
year={2008},
publisher={Future Science}
}
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[
bibstyle=apa,
citestyle=numeric-comp,
backend=biber
]{biblatex}
\makeatletter
\RequireBibliographyStyle{numeric}
\makeatother
\addbibresource{fishbib.bib}
\usepackage[german=guillemets]{csquotes}
\usepackage[breaklinks=true]{hyperref}
\begin{document}
Beispieltext mit Bezug auf Text 1 \cite{redei2008fish}.
Beispieltext mit Bezug auf Text 2 \cite{volpi2008fish}.
\printbibliography
\end{document}
答案1
biblatex-apa
应该同时用作引文和参考书目样式(即style=apa,
)。没有考虑到允许您单独或独立地使用引文和参考书目样式。这意味着参考书目和引文样式可能会以假定其他文件也已加载的方式定义或重新定义宏。
具体来说,您的示例从不加载引用样式,它定义了由本地化文件重新定义的apa.cbx
命令。您可以通过提供来避免此错误。\apashortdash
\apashortdash
绝对不能保证一切都如您所愿,但是对于我来说,该示例编译时没有错误。
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[german=guillemets]{csquotes}
\usepackage[
backend=biber,
bibstyle=apa,
citestyle=numeric-comp,
]{biblatex}
\usepackage[breaklinks=true]{hyperref}
\makeatletter
\RequireBibliographyStyle{numeric}
\makeatother
\providecommand{\apashortdash}{-}
\addbibresource{biblatex-examples.bib}
\begin{document}
Beispieltext mit Bezug auf Text 1 \cite{sigfridsson}.
Beispieltext mit Bezug auf Text 2 \cite{worman}.
\printbibliography
\end{document}