我使用 XeLaTex 和 Biblatex 撰写英语论文。当我引用两位作者时,我得到的结果是“X 和 Y”,这没问题。但是,我的论文中有一部分是德文摘要,而我只希望在那部分得到“X 和 Y”。我该怎么做?
答案1
这问题(#359)已经被biblatex
开发人员解决了(在提交 0513325)。更新版本尚未进入 CTAN,但可以在sourceforge 上的开发文件夹。
下面几行现在重现了官方修复
\makeatletter
\protected\def\blx@citeinit{%
\iftoggle{blx@bibliography}
{}
{\toggletrue{blx@citation}}%
\blx@blxinit
\blx@langstrings
\citesetup
\blx@setsfcodes
\blx@postpunct@agroup
\blx@resetdata
\blx@leavevmode
\csuse{blx@hook@cite}%
\csuse{blx@hook@cite@next}%
\let\blx@citeinit\blx@resetdata}
\makeatother
并且可以放入你的序言中以暂时获得所需的行为。
我在下面保留我原来的答案以供参考
biblatex
的polyglossia
界面仍处于初步阶段,使用 完成的一些精心设计的技巧babel
无法一对一地映射到polyglossia
,有一件事是polyglossia
需要轻推才能加载biblatex
的本地化。biblatex
已经有一个命令来确保这一点,但它不适用于通过 的polyglossia
命令切换语言时。
您可以使用
\makeatletter
\apptocmd\select@@language{\blx@langstrings}
\makeatother
平均能量损失
\documentclass{article}
\usepackage{polyglossia}
\setdefaultlanguage[variant=british]{english}
\setotherlanguage{german}
\usepackage{csquotes}
\usepackage[style=authoryear]{biblatex}
\addbibresource{biblatex-examples.bib}
\makeatletter
\apptocmd\select@@language{\blx@langstrings}
\makeatother
\begin{document}
\cite{sigfridsson}
\begin{german}
\cite{sigfridsson}
\end{german}
\cite{sigfridsson}
\end{document}