小写字母“i”,粗体斜体,带有“newpxtext”

小写字母“i”,粗体斜体,带有“newpxtext”

newpxtext在 Unicode 引擎下使用。使用\scshape\bfseries\itshape,小写字母i变为

在此处输入图片描述

\scshape\itshape它只是

在此处输入图片描述

正如预期的那样。这是设计使然还是一个错误?有没有办法让无点““当其以粗体显示时?

下面是一个 MWE。要重现该问题,需要使用xelatex或进行编译lualatex。添加了一些替代方法以供比较,您可以取消注释它们以进行替换\usepackage{newpxtext}以查看效果。

\documentclass{article}

\usepackage{newpxtext}

% \usepackage[type1]{newpxtext}

% \usepackage{fontspec}
% \setmainfont{Palatino Linotype}

% \usepackage[T1]{fontenc}
% \usepackage{tgpagella}

\begin{document}

abcdefghijk

{\scshape\itshape i \i}

{\scshape\bfseries\itshape i \i}

{\scshape\bfseries i \i}

\end{document}

预期结果:

在此处输入图片描述

目前结果:

在此处输入图片描述

答案1

\showtokens\expandafter{\fontname\font}在产生可疑输出的行中的右括号之前执行了此操作。控制台上的答案是

> "[TeXGyrePagellaX-BoldItalic.otf]/OT:script=latn;language=dflt;-ss05;+tnum;+lnum;+smcp;+pcap;mapping=tex-text;" at 10.0pt.

所以我准备了一个普通 XeTeX 的测试文件

\font\testit="[TeXGyrePagellaX-Italic.otf]/OT:script=latn;language=dflt;-ss05;+tnum;+lnum;+smcp;+pcap;mapping=tex-text;" at 10.0pt
\font\testbf="[TeXGyrePagellaX-Bold.otf]/OT:script=latn;language=dflt;-ss05;+tnum;+lnum;+smcp;+pcap;mapping=tex-text;" at 10.0pt
\font\testbfit="[TeXGyrePagellaX-BoldItalic.otf]/OT:script=latn;language=dflt;-ss05;+tnum;+lnum;+smcp;+pcap;mapping=tex-text;" at 10.0pt

\testit
aiqRr

\testbf
aiqRr

\testbfit
aiqRr

\bye

输出为

在此处输入图片描述

抱歉,bug。如果我换language=dfltlanguage=TRK队列中\testbfit,我会得到

在此处输入图片描述

这表明字体维护者混淆了一些东西,因为language=TRK应该出现点。

答案2

可能对你有用的替代方案可能是:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{tgpagella}

\begin{document}

{\scshape\itshape i}

{\scshape\bfseries\itshape i}

\end{document}

或者

\usepackage{fontspec}

\setmainfont{TeX Gyre Pagella}

相关内容