XeLaTeX 和 PdfLaTeX 中引号的字距不同

XeLaTeX 和 PdfLaTeX 中引号的字距不同

尝试了解 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}

进行调整以满足您的需要。

在此处输入图片描述

相关内容