我尝试生成一个正确的blockquote
,foreignblockquote
以 开头«
并以 结尾»
我已经拥有的:
« 法语测试 » (引文)
«英文測試» (引文)
我想要的是 blockquote/foreignblockquote:
«
测试
(引文)«测试
» (引文)
这里是 mwe:
% !TEX encoding = UTF-8 Unicode
% -*- program: xelatex -*-
\documentclass[a4paper, 11pt,twoside, openright]{memoir}
\usepackage{polyglossia}
\setdefaultlanguage{french}
\setotherlanguage{english}
\setotherlanguage[variant=ancient]{greek}
\setotherlanguage{latin}
\usepackage[autostyle=true,french=guillemets,maxlevel=3]{csquotes}
%% QUOTE FRENCH ITALICS
\renewcommand{\mktextquote}[6]{%
#1%
\iflanguage{english}{\itshape}{}% ADDED
#2#4#3#6#5%
}
\renewcommand{\mkblockquote}[4]{%
\iflanguage{english}{\itshape}{}% ADDED
#1#2#3#4%
}
\DeclareQuoteStyle{english}
{\mkfrenchopenquote{\guillemotleft}\itshape}
{\itshape\mkfrenchclosequote{\guillemotright}}
{\textquotedblleft\itshape}
{\itshape\textquotedblright}
\begin{document}
\enquote{Test in french}
\blockquote{Test \\ in \\ french}
\foreignquote{english}{Test in english}
\foreignblockquote{english}{Test \\ in \\ english}
\end{document}
答案1
您的english
引文风格充斥着\itshape
s,除了开头的引号之外,其他都用到了。这很奇怪,而且也使您使用的条件变得多余。
我可能遗漏了您用例的一些要点。不过,这里有一些更精简的代码可以解决您的问题:
\usepackage[autostyle,maxlevel=3]{csquotes}
\renewcommand{\mkblockquote}[4]{%
\openautoquote#1\closeautoquote#2#3#4} % <--------- HERE IS THE FIX
\DeclareQuoteStyle{english}
{\itshape\mkfrenchopenquote{\guillemotleft}}
{\mkfrenchclosequote{\guillemotright}}
{\textquotedblleft}
{\textquotedblright}
\mkblockquote
关键部分是对我所介绍的地方\openautoquote
和\closeautoquote
周围的更新#1
。