以下代码是什么意思?它的零看起来很奇怪。
\DeclareFontShape{T1}{FiraSans-OsF}{m}{n}{
<-0> \FiraSans@@scale FiraSans-Book-osf-t1
<0-> \FiraSans@@scale FiraSans-Regular-osf-t1
}{}
代码位于T1FiraSans-OsF.fd。
答案1
似乎有时autoinst
会出现奇怪的情况。可能是在构建字体系列基础结构时传递了一个错误的参数。不,Book 变体永远不会被使用。
一般而言,语法如下
<x-y> s*[<mag>] fontfile
表示当请求大于和小于或等于 的字体组合时, LaTeX 应该使用fontfile
(放大) 。TeX 的工作是查看字体的设计大小并按比例加载它。<mag>
x
y
如果x
缺少 ,则所有小于或等于 的尺寸都y
将使用fontfile
;如果y
缺少 ,则fontfile
大于 的尺寸将使用x
。
该宏\FiraSans@@scale
将扩展为无或为s*[<mag>]
,因此它无关紧要。
该声明完全等同于
\DeclareFontShape{T1}{FiraSans-OsF}{m}{n}{
<-> \FiraSans@@scale FiraSans-Regular-osf-t1
}{}
因为不能加载小于或等于 0 大小的字体。
这是理论,实践似乎有所不同。:-(
显然,这些字体声明具有选择的效果第一的行。事实上,文档
\documentclass{article}
\usepackage[default]{FiraSans}
\begin{document}
Normal: \fontname\font
Bold: \textbf{\fontname\font}
Italic: \textit{\fontname\font}
BoldItalic: \textbf{\textit{\fontname\font}}
\end{document}
生产
这并不是我们所期望的。
我想说,这个软件包中有一个明显的错误。如果我复制该.fd
文件并删除这些<-0>
行,上面的文档将产生
此外,该book
选项没有任何意义,因为文件k
中没有定义权重.fd
。
更新 2018-01-10
该软件包FiraSans
已更新并且错误已修复。
现在错误的条目是
\DeclareFontShape{T1}{FiraSans-OsF}{m}{n}{
<-> \FiraSans@@scale FiraSans-Regular-osf-t1
}{}
正如它应该。
现在上面的示例排版
如果我们将book
选项添加到调用中FiraSans
,则输出为
正如文档中宣传的那样。