尝试了解 XeLaTeX 和 PdfLaTeX 的“视觉”输出之间的差异。MWE 如下:
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\usepackage{csquotes}
\usepackage{microtype}
\usepackage{ifxetex}
\ifxetex
% XeLaTeX
\usepackage{polyglossia}
\setmainlanguage{russian}
\usepackage{fontspec}
\usepackage[]{unicode-math}
\setmainfont{CMU Serif}
\else
% default: pdfLaTeX
\usepackage[russian]{babel}
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\fi
\begin{document}
\enquote{Текст. \enquote{Другой текст.}}
\end{document}
这是 PdfLaTeX 的输出
这个来自XeLaTeX:
从第二张图片可以看出,引号(左内)相对于下一个字母 Д 的位置是错误的(非常接近)。原因是什么?Polyglossia 与 Babel,还是 CM 与 CM Unicode?
答案1
我担心这是 CMU Serif 字距调整不当的问题;如果您尝试使用“真实”字符代替\enquote
,您会得到相同的结果。
您可以手动添加所需的字距调整:
\documentclass[a4paper,12pt]{article}
\usepackage{amsmath}
\usepackage{ifxetex}
\ifxetex
% XeLaTeX
\usepackage{polyglossia}
\setmainlanguage{russian}
\usepackage{fontspec}
\usepackage[]{unicode-math}
\setmainfont{CMU Serif}
\else
% default: pdfLaTeX
\usepackage[T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}
\fi
\usepackage{csquotes}
\usepackage{microtype}
\ifxetex
\DeclareQuoteStyle{russian}% verified
{\guillemotleft\kern0.05em }
{\kern0.05em \guillemotright}
{\quotedblbase\kern0.1em }
{\kern0.05em\textquotedblleft}
\fi
\begin{document}
\enquote{Текст. \enquote{Другой текст.}}
\guillemotleft Текст. \quotedblbase Другой текст.\textquotedblleft\guillemotright
\end{document}
进行调整以满足您的需要。