带有外部语言引文的外国引文

带有外部语言引文的外国引文

csquote命令\foreignquote{<inner lang>}{<quote>}切换到<inner lang> 引用,因此,封闭的引号是为配置的引号<inner lang>。例如,在英文文档中,\foreignquote{french}{bonjour \enquote{salut}}给出“bonjour“salut””。

有没有办法做相反的事情,即使用外部语言引号,但仍切换内部语言以获得“bonjour « salut »”?我尝试定义

\NewDocumentCommand\quoteforeign{m m}{\enquote{\textlang{#1}{#2}}}

(使用polyglossia语言切换)但它会在开头的引号和文本之间插入一个不必要的空格。我想有一种方法可以简单地修复命令以消除空格,但我宁愿使用更符合语言习惯的修复方法。

麦考林

\documentclass[a4paper, 12pt]{article}
\usepackage{xparse}

\usepackage{polyglossia}
    \setmainlanguage{english}
    \setotherlanguage{french}

\usepackage[autostyle=true]{csquotes}

\NewDocumentCommand\quoteforeign{m m}{\enquote{\textlang{#1}{#2}}}


\begin{document}
    This \enquote{is} a test or as they say in french an \foreignquote{french}{essai or \enquote{preuve de concept}}.

    This \enquote{is} a test or as they say in french an \quoteforeign{french}{essai or \enquote{preuve de concept}}.
\end{document}

MCE 结果

答案1

额外的空格是由于 gloss-french 中的一个错误,其中包含一个虚假空格。除此之外,我认为没有什么比您的 \quoteforeign 命令更好的了。

\documentclass[a4paper, 12pt]{article}
\usepackage{xparse}

\usepackage{polyglossia-test}
    \setmainlanguage{english}
    \setotherlanguage{french}

\usepackage[autostyle=true]{csquotes}

\NewDocumentCommand\quoteforeign{m m}{\enquote{\textlang{#1}{#2}}}
\makeatletter
\def\french@language{%
   \polyglossia@setup@language@patterns{\french@variant}%<-- missing
}%
\makeatother


\begin{document}
    This \enquote{is} a test or as they say in french an \foreignquote{french}{essai or \enquote{preuve de concept}}.

    This \enquote{is} a test or as they say in french an \quoteforeign{french}{essai or \enquote{preuve de concept}}.
\end{document}

相关内容