使用 csquotes 和外语显示斜体

使用 csquotes 和外语显示斜体

使用该csquotes包和polyglossia法语,我只想转换\foreignquote{english}{my text is write in english italics with « » typography}为斜体。

\documentclass[a4paper, 12pt,twoside, openright]{memoir}
\usepackage{polyglossia}
\setdefaultlanguage{french}
\usepackage{fontspec}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage[autostyle=true,french=guillemets,maxlevel=3]{csquotes}
\usepackage{xparse}
\usepackage{graphicx}
\usepackage[protrusion=true]{microtype}
\sidecapmargin{outer}
\setsidecappos{t}

\usepackage[backend=biber,backref=true, natbib=true, isbn=false, doi=false, url=false, style=authoryear,maxcitenames=1, maxbibnames=999, sorting=nyt, refsection=chapter, hyperref]{biblatex}

\addbibresource[datatype=bibtex]{library.bib}

\begin{document}

\chapterstyle{bringhurst}

\foreignquote{english}{my text is write in english italics with « » typography}

\printbibliography

\end{document}

例如在维基百科上,法语引文页面显示“仅使用«»”:Voici«une citation en français»,mais«以下是英文引文»。

更新1:

egreg 给出的示例目前仅适用于一层嵌套引用,并且通常您会得到如下引用:

\foreignquote{english}{my text is write in english italics with « » typography, and a \foreignquote{english}{ nested level of citation like this }  }

给出类似这样的内容:“我的文字用英文斜体书写,字体为« »,并且有像这样的“嵌套引用级别”»

答案1

我们可以利用这个事实\em

\documentclass[a4paper, 12pt,twoside, openright]{memoir}
\usepackage{polyglossia}
\setdefaultlanguage{french}
\setotherlanguage{english}
\usepackage{fontspec}
\usepackage[autostyle=true,french=guillemets,maxlevel=3]{csquotes}

\DeclareQuoteStyle{english}
  {\mkfrenchopenquote{\guillemotleft}\em}
  {\em\mkfrenchclosequote{\guillemotright}}
  {\textquotedblleft\em}
  {\em\textquotedblright}


\begin{document}

Des mots français \foreignquote{english}{with an English quote} suivi
par mots français.

\end{document}

在此处输入图片描述

答案2

这个怎么样?它创建了一个名为 的新 (cs-)quote 样式fquotes和一个名为 的相应命令\myfquote。(不过,我不知道是否可以立即定义 csquote 命令。)

\documentclass{article}
\usepackage{csquotes}

\DeclareQuoteStyle{fquotes}
  {\em}{}{\em}{}

\newcommand*{\myfquote}[1]{%
  \begingroup%
    \setquotestyle{fquotes}%
    \enquote{#1}%
  \endgroup%
}

\begin{document}
  bla bla bla \enquote{testing \myfquote{foreign quote}} bla bla bla 
\end{document}

输出

答案3

我最近偶然发现了同样的问题,但找到了一个更简单、(我认为)更干净的解决方案,因为它只使用已加载包的功能。

\documentclass[a4paper, 12pt,twoside, openright]{memoir}
\usepackage{polyglossia}
\setdefaultlanguage{french}
\setotherlanguage{english}
\newfontfamily{\englishfont}{Linux Libertine O Italic}
\usepackage{fontspec}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage[autopunct,french=guillemets]{csquotes}
%\usepackage[autostyle=true,french=guillemets,maxlevel=3]{csquotes}
\usepackage{xparse}
\usepackage{graphicx}
\usepackage[protrusion=true]{microtype}
\sidecapmargin{outer}
\setsidecappos{t}

\usepackage[backend=biber,backref=true, natbib=true, isbn=false, doi=false, url=false, style=authoryear,maxcitenames=1, maxbibnames=999, sorting=nyt, refsection=chapter, hyperref]{biblatex}

\addbibresource[datatype=bibtex]{library.bib}

\begin{document}

\chapterstyle{bringhurst}

Essai de texte en français \foreignquote{english}{my text is write in english italics with « » typography \textquote[][]{still quoted in english}}.

\printbibliography

\end{document}

基本上,您声明\setotherlanguage{english}然后为该语言创建一个新的字体系列,并选择斜体字体:\newfontfamily{\englishfont}{Linux Libertine O Italic}

autostyle=true然后,在加载 csquotes 包时至少删除该选项。这样,它将恢复为默认设置autostyle=tryonce,这意味着即使您在文档中的某处切换到另一种语言,它也会使用主要语言引号(在您的情况下为法语)。

我还建议你离开french=guillemets后面的部分留下,因为你显然误解了你所引用的维基百科页面然后因为一旦你输入外语你必须使用该语言的印刷惯例(你不会在英文引文中的问号前放置不间断空格,对吧?),所以英文引号必须使用英文引号。因此,使用包默认值 ( french=quotes) 无论是法文还是英文内引号都是正确的。

相关内容