我正在处理一个同时使用polyglossia
和csquotes
包的文档。但是,polyglossia
引用样式之间的自动切换(根据所选语言)不起作用。如果我们以这个答案并另外加载polyglossia
包,引用样式保持不变:
\documentclass{article}
\usepackage{csquotes}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguages{french, american, ngerman, spanish}
%\DeclareQuoteStyle{ngerman}%
% {\quotedblbase}
% {\textquotedblright}
% [0.05em]
% {\textquoteleft}
% {\textquoteright}
\begin{document}
\enquote{UK English}
\selectlanguage{american} \enquote{US English}
\selectlanguage{spanish} \enquote{Spanish}
\selectlanguage{french} \enquote{Français}
\selectlanguage{ngerman} \enquote{Deutsche}
\end{document}
请注意,与原始示例相比,我已经从命令中删除了语言选项\documentclass
,因为它们会干扰包\setotherlanguages
的命令polyglossia
,从而导致错误(“命令 \textspanish 已定义。“)。
我还删除了autostyle
该csquotes
包的选项,因为出于某种原因,该包最终不知道适当的样式(“没有适合语言的风格”。“,尽管根据这个答案,它应该能解决问题):
已报告类似问题这里,这就是为什么我尝试按照答案中的建议重新定义相应的引用样式,但却没有任何效果。
(编辑:我还从原始示例中删除了fontenc
、inputenc
和包。)babel
答案1
您可以使用autostyle
csquotes 选项。但您应该设置语言以便\babelname
具有正确的值:
\documentclass{article}
\usepackage[autostyle]{csquotes}
\usepackage{polyglossia}
\setdefaultlanguage[variant=british]{english}
\setotherlanguages{french,spanish}
\setotherlanguage[spelling=new]{german}
\begin{document}
\babelname: \enquote{UK English}
\selectlanguage[variant=american]{english}\babelname: \enquote{US English}
\selectlanguage{spanish}\babelname: \enquote{Spanish}
\selectlanguage{french}\babelname: \enquote{Français}
\selectlanguage{german}\babelname: \enquote{Deutsche}
\end{document}
答案2
经过多次尝试和错误,我发现唯一有效的方法是使用命令\setquotestyle
,如这个帖子:
\documentclass{article}
\usepackage{csquotes}
\usepackage{polyglossia}
\setdefaultlanguage{english}
\setotherlanguages{french, american, ngerman, spanish}
\begin{document}
\setquotestyle[british]{english} \enquote{UK English}
\setquotestyle[american]{english} \enquote{US English}
\selectlanguage{spanish} \setquotestyle[spanish]{spanish} \enquote{Spanish}
\selectlanguage{french} \setquotestyle[guillemets]{french} \enquote{Français}
\selectlanguage{ngerman} \setquotestyle[quotes]{german} \enquote{Deutsche}
\end{document}
但这是一个相当丑陋的解决方案,我不知道它为什么会起作用或者为什么有必要。