对于同一种字体,为什么字距调整适用于 LuaLaTex,而不能用于 XeLaTex?

对于同一种字体,为什么字距调整适用于 LuaLaTex,而不能用于 XeLaTex?

考虑以下 MWE:

\documentclass[varwidth]{standalone}
\usepackage{ifluatex}
\usepackage{ifxetex}
\usepackage{metalogo}
\usepackage{fontspec}

\setmainfont{Bembo}[BoldFont = Bembo Bold]
\newfontface\bembo{Bembo}
\newfontface\bembobold{Bembo Bold}
\newfontface\bemboboldos{Bembo Bold Oldstyle Figures}

\makeatletter
\newcommand{\showfont}{\f@family{}}

\makeatother

\begin{document}
\ifxetex
\XeLaTeX
\fi
\ifluatex
\LuaLaTeX
\fi


\textbf{AVATAR 48} \showfont{}\\
\bembo       AVATAR 48 \showfont{}\\
\bembobold   AVATAR 48 \showfont{}\\
\bemboboldos AVATAR 48 \showfont{}

\end{document}

分别使用 XeLaTeX 和 LuaLaTeX 生成的输出如下:

XeLaTex 渲染的“AVATATR”字距混乱。 LuaLaTex 使用相同字体以正确的字距渲染“AVATAR”。

\setmainfont请注意,XeLaTeX 在第二行(使用 选择字体并使用 选择字体样式)中设置“Bembo Bold”字体时不使用字距调整\textbf,但在第四行(使用 加载字体)中设置字距调整\newfontface。此外,LuaLaTeX 始终可以正确调整字距。

这是为什么?

相关内容