如何替换字母?

如何替换字母?

当我使用字体包时费拉桑斯

我输入“g”,得到

在此处输入图片描述

但实际上我想得到

在此处输入图片描述

我不太明白为什么 FiraSans 字体有两种 g 形式,但它们确实存在于“*.otf”中

我检查了该包的描述和“.sty”文件,只发现了控制数字样式的命令。

如果不能影响意大利字体的话就更好了。

答案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}

Fira Sans 字体集 5

如果软件包维护者更新了 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}

Ziggy 吃鸡蛋吗?

答案2

如果你正在使用 LuaLaTeX 和 OTF 版本的字体,你可以尝试

\documentclass[a4paper]{article}
\usepackage{fontspec}
\directlua{
  fonts.handlers.otf.addfeature {
    name = "galt",
    type = "substitution",
    data = {["g"] = 0x210A,}
  }}
\setmainfont[RawFeature={+galt}]{FiraSans}

\begin{document}
gg

\emph{gg}
\end{document}

FiraSans 中的四个 g

答案3

fontspec如果你使用and 的话这很容易xelatex

\documentclass{article}
\usepackage{fontspec}
\setmainfont[StylisticSet=4]{FiraSans-Medium.otf}

\begin{document}
Ziggy eats eggs.
\end{document}

在此处输入图片描述

更新:

特蕾莎的笔记提出了一个很好的观点:如果你这样做,你就会改变“a”和“g”的外观。仅供参考。

相关内容