我正在尝试在使用 XeLaTeX 创建的文档中使用 Helvetica 克隆,并且我需要能够在我的文档中使用各种相当基本的 Unicode 字符(特别是“粗俗”的分数字形,如 ¼、½ 和 ¾)。这是一个 MWE:
\documentclass{article}
\usepackage{fontspec}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[scaled]{helvet}
\renewcommand\familydefault{\sfdefault}
\begin{document}
\textsf{Touché 3¼}
\end{document}
所选字体是 Nimbus Sans L,它与 Helvetica 非常接近,可以满足我的需求。但是,当我处理它时,PDF 输出显示“Touché 3ij”——“é”可以正常工作,但“¼”不行。我尝试删除 and fontspec
/orinputenc
行,但没有效果;删除该fontenc
行会导致文档恢复为 Computer Modern。
我并不执着于使用该helvet
软件包,如果我手动加载字体,我会得到我想要的所有字形,所以问题似乎不在我的 Nimbus Sans L 字体上。但是,字体不再像软件包那样缩放 95%。helvet
这意味着它明显比文档中的其他文本大。这是一个 MWE:
\documentclass{article}
\usepackage{fontspec}
\setsansfont{Nimbus Sans L}
\renewcommand\familydefault{\sfdefault}
\begin{document}
\textsf{Touché 3¼}
\end{document}
我并不介意修复第一个 MWE 以包含我想要的所有字形,或者修复第二个 MWE 以缩放字体。我尝试将其添加到第二个 MWE,但完全没有效果:
\usepackage{relsize}
\relscale{0.95}
有人可以帮忙吗?
答案1
您可以使用声明缩放字体fontspec
,例如,这可确保小写字母匹配:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{TeX Gyre Termes}
\setsansfont[Scale=MatchLowercase]{Nimbus Sans L}
%\renewcommand\familydefault{\sfdefault}
\begin{document}
Abc \textsf{Touché 3¼}
\end{document}
切勿将 T1 编码与 xelatex 一起使用,因为它会完全破坏连字,因为 xelatex 仅为 TU 编码加载连字模式。
(我注释掉了重置默认系列,以便更容易比较小写字母的大小)