将“传统”字体包(例如 Type 1)与 fontspec 结合起来

将“传统”字体包(例如 Type 1)与 fontspec 结合起来

我在尝试将“传统”字体包 ( berasans) 与 fontspec(使用 TeX Gyre Pagella)结合起来时遇到了问题。只需使用两者,就可以正确地将文本字体更改为 TeX Gyre Pagella,但文本设置\sffamily使用的是 Latin Modern(Sans 或 Roman,取决于包的加载顺序)而不是 Bera Sans。

寻找解决方案时,我发现这个答案建议(尽管是在不同的上下文中)必须手动设置字体编码。这让我得到了以下最小示例:

\documentclass{scrartcl}

\usepackage{fontspec}
\setmainfont{TeX Gyre Pagella}
\usepackage{berasans}
\let\sffamilyold\sffamily
\def\sffamily{\fontencoding{T1}\sffamilyold}

\begin{document}
TeX Gyre Pagella

\sffamily Bera Sans
\end{document}

它可以工作,但我对重新定义感到有点不安\sffamily。对于这种 Type 1 字体和 的组合,有没有更简单/更好的解决方案fontspec?或者更好的是,有没有好的无衬线 OTF/TTF 字体可以与 TeX Gyre Pagella 一起使用?

答案1

我建议你使用由开发的 opentype 版本Arkandis 数字铸造厂以 为名Verana Sans,甚至使用受 Bitstream Vera 启发的字体Switzera。以下是演示:

\documentclass{scrartcl}

\usepackage{fontspec}
\setmainfont{TeX Gyre Pagella}
\usepackage{berasans}
\let\sffamilyold\sffamily
\def\sffamily{\fontencoding{T1}\sffamilyold}
%\setsansfont{Verana Sans}
%\setsansfont{Switzera ADF}

\begin{document}
TeX Gyre Pagella

\sffamily Bera Sans

\fontspec{Verana Sans}Verana Sans. Baffling, isn’t it?

\fontspec{Switzera ADF}
Switzera ADF

\end{document} 

在此处输入图片描述

相关内容