答案1
以下解决方法可让您更改直立字体中的字母 g,而无需更改字母 a。首先,下载字体文件的更新版本 (4.301)(或至少下载到TEXMF/fonts/opentype/public/fira
项目目录的子目录中,名为 )fonts
。
此版本包含您想要的风格集 5 的替代。您可以告诉fontspec
它在项目fonts
目录中查找 Fira Sans,并将此风格集添加到它将来将加载的系列中的每个直立字体上。
这将完全消除您想要加载硬盘上的哪个版本的 Fira Sans 的任何歧义。
然后,加载firasans
包并获取其所有接口。或者按照您选择的方法自行加载。
\documentclass[varwidth, preview]{standalone}
\usepackage{fontspec}
% Requires version 4.301 of the font files to be stored in a subdirectory
% named fonts
\defaultfontfeatures[FiraSans]{
UprightFeatures = { StylisticSet=5 },
BoldFeatures = { StylisticSet=5 },
Path = ./fonts/ }
\usepackage[sfdefault]{firasans}
\begin{document}
Ziggy eats eggs.
\end{document}
如果软件包维护者更新了 TeX Live 发行版中的字体版本,则此 hack 将不再必要。从 TeX Live 2018 开始,它就不再需要了。
另一种方法
该firasans
软件包就是您之前使用的,它有许多选项,并支持不同的字体粗细。由于一些评论者要求只使用fontspec
,因此这里提供了解决方案。这定义了事实上的标准 LaTeX2e 系列名称,如第二版中定义的LaTeX 伴侣和LaTeX 字体安装指南。
此版本不支持字体系列的所有粗细,但支持与常用 LaTeX 命令相对应的所有粗细,例如\textlf
和\sbseries
。对于普通用途,您可能更喜欢按照软件包的操作,创建一个选择相对较浅或较深粗细作为常规和粗体的字体系列。
它确实定义了\firafamily
与的兼容性firasans
,但并未声明包中的所有变体。
firasans
如果软件包发生变化(例如,加载 Fira Go),它也更具未来性。
\documentclass[varwidth, preview]{standalone}
\usepackage{fontspec}
% Requires version 4.301 of the font files to be stored in a subdirectory
% named fonts
\setsansfont{FiraSans}[
Ligatures = { Common, Discretionary, TeX },
Numbers = { Lining, OldStyle },
Scale = 1.0 ,
FontFace = {ul}{n}{ StylisticSet=5, Font = *-UltraLight},
FontFace = {ul}{it}{*-UltraLightItalic},
FontFace = {el}{n}{ StylisticSet=5, Font = *-ExtraLight},
FontFace = {el}{it}{*-ExtraLightItalic},
FontFace = {l}{n}{ StylisticSet=5, Font = *-Light},
FontFace = {l}{it}{*-LightItalic},
UprightFont = *-Regular ,
UprightFeatures = { StylisticSet=5 },
ItalicFont = *-Italic ,
FontFace = {mb}{n}{ StylisticSet=5, Font = *-Book},
FontFace = {mb}{it}{*-BookItalic},
FontFace = {sb}{n}{ StylisticSet=5, Font = *-Medium},
FontFace = {sb}{it}{*-MediumItalic},
FontFace = {db}{n}{ StylisticSet=5, Font = *-Semibold},
FontFace = {db}{it}{*-SemiboldItalic},
BoldFont = *-Bold ,
BoldFeatures = { StylisticSet=5 },
BoldItalicFont = *-BoldItalic ,
FontFace = {eb}{n}{ StylisticSet=5, Font = *-ExtraBold},
FontFace = {eb}{it}{*-ExtraBoldItalic},
FontFace = {ub}{n}{ StylisticSet=5, Font = *-Heavy},
FontFace = {ub}{it}{*-HeavyItalic},
Extension = .otf ,
Path = ./fonts/
]
\let\firafamily\sfdefault
\renewcommand*\familydefault{\firafamily}
% Load other fonts here.
\DeclareRobustCommand\ulseries{\fontseries{ul}\selectfont}
\DeclareTextFontCommand\textul{\ulseries}
\DeclareRobustCommand\elseries{\fontseries{el}\selectfont}
\DeclareTextFontCommand\textel{\elseries}
\DeclareRobustCommand\lfseries{\fontseries{l}\selectfont}
\DeclareTextFontCommand\textlf{\lfseries}
\DeclareRobustCommand\mbseries{\fontseries{mb}\selectfont}
\DeclareTextFontCommand\textmb{\mbseries}
\DeclareRobustCommand\sbseries{\fontseries{sb}\selectfont}
\DeclareTextFontCommand\textsb{\sbseries}
\DeclareRobustCommand\dbseries{\fontseries{db}\selectfont}
\DeclareTextFontCommand\textdb{\dbseries}
\DeclareRobustCommand\ebseries{\fontseries{eb}\selectfont}
\DeclareTextFontCommand\texteb{\ebseries}
\DeclareRobustCommand\ubseries{\fontseries{ub}\selectfont}
\DeclareTextFontCommand\textub{\ubseries}
\newcommand\eggs{Ziggy eats eggs.}
\begin{document}
\parbox{160pt}{
\textul{\eggs} \textel{\eggs} \textlf{\eggs} \textmd{\eggs} \textmb{\eggs}
\textsb{\eggs} \textdb{\eggs} \textbf{\eggs} \texteb{\eggs} \textub{\eggs}
\textit{\textul{\eggs} \textel{\eggs} \textlf{\eggs} \textmd{\eggs}
\textmb{\eggs} \textsb{\eggs} \textdb{\eggs} \textbf{\eggs} \texteb{\eggs}
\textub{\eggs}}}
\end{document}
答案2
答案3
fontspec
如果你使用and 的话这很容易xelatex
:
\documentclass{article}
\usepackage{fontspec}
\setmainfont[StylisticSet=4]{FiraSans-Medium.otf}
\begin{document}
Ziggy eats eggs.
\end{document}
更新:
特蕾莎的笔记提出了一个很好的观点:如果你这样做,你就会改变“a”和“g”的外观。仅供参考。