NFSS:LaTeX3 中关于字体方案还有什么进一步的计划吗?

NFSS:LaTeX3 中关于字体方案还有什么进一步的计划吗?

新字体选择方案(NFSS)在 LaTeX3 中的地位如何?

NFSS 既不新颖也不迎合现代趋势(我指的是 True 和 Open Type 字体)。LaTeX3 团队已经做了大量工作,但如果我们想在 LaTeX3 中保留所有 LaTeX2e 的内容,他们面临的工作量将更大。我们是否真的想在 LaTeX3 中保留 Metafont 字体,这难道不值得讨论吗?

更新:让我按照@Leo Liu 和@Mark S. Everitt 的要求重新表述这个问题:LaTeX3 中关于字体方案还有什么进一步的计划吗?已经做了什么?

答案1

(这个答案部分基于我的博客文章同一主题。

背景

TeX 的字体机制非常简单。一种文本字体与另一种文本字体之间没有任何关系:它们都只是使用\font原始字体进行设置。对于普通的 TeX 也是如此,因此

{\bf Some {\it text}}

将以粗体显示“某些”,而以中等粗细的斜体显示“文本”。无论您是在查看传统.tfm字体还是使用 XeTeX 或 LuaTeX 加载系统字体,情况都是如此。字体大小也是如此:在 TeX 级别,不同字体的大小之间没有联系。

LaTeX2e 引入了“新字体选择方案”(NFSS),它提供了一种对用户来说更合乎逻辑的字体管理方法。因此

{\bfseries Some {\itshape text}}

将使内部文本同时变为粗体和斜体。同时,NFSS 还提供了一个系统,用于以有组织的方式加载字体文件,并在特定形状/大小组合不可用时替换字体。(ConTeXt 还在 TeX 的原始系统之上提供了一种字体管理机制。)

将 NFSS 移植到 LaTeX3

总体而言,与 LaTeX2.09 相比,NFSS 是 LaTeX2e 的一个关键成功之处。.fd关于在 LaTeX2e 中使用字体的现有文件也很多,支持这些文件很重要。因此,NFSS 之类的东西绝对是必要的:如今,“新”这个词已经过时了,所以暂定名称为 FSS。

NFSS 并不完美,因此 LaTeX3 的 FSS 不能简单地克隆 NFSS。关于 NFSS 最常见的抱怨可能是它\textsc被视为一种形状,这使得它无法与\textit斜体小写字母相结合。其他需要解决的领域包括表格的灵活大小和比例/固定宽度数字。这都是进化的,因此计划是首先移植现有的 NFSS,整理它以更好地适应 LaTeX3 编码方法,然后添加新功能。CTAN 上的软件包解决了其中一些缺点,它们将成为寻找变化灵感的地方之一。ConTeXt 的方法可能也值得一看,尽管我预计 LaTeX 用户级别不会有任何重大变化。

字体加载

NFSS 目前不仅处理字体形状等问题,还处理字体文件的编码和底层名称。使用 XeTeX 和 LuaTeX,可以加载 Unicode 字体(从而有效地绕过编码)和通过显示名称加载系统字体。这里的问题是,目前针对不同情况有不同的接口。

传统的 LaTeX2e 方法是设置一个小的包来选择字体系列,例如lmodernmathptmx,然后使用 NFSS 加载适当的 TeX 字体文件。对于 XeTeX 或 LuaTeX 的用户,标准方法是使用fontspec\font包,它提供了这些引擎中的扩展原语和 NFSS之间的接口。

这里有几点需要考虑。首先,虽然 XeTeX 和 LuaTeX 可以直接加载系统字体,但 pdfTeX 不能。其次,即使您使用 XeTeX 或 LuaTeX,也不能忽略对传统 TeX 字体的访问。CTAN 上有很多 MetaFont 材料,其他格式都没有,因此简单地放弃对这些材料的支持并不是一个选择。

此处设计的界面需要保持一致,同时满足出版商的需求,因为系统字体可能是一个重大问题,并且按名称加载是理想的选择。有多种方法可以解决这个问题,但目前还没有编写代码。此处的很多界面仍需要讨论。

数学模式

还有数学模式字体需要担心。OpenType 数学字体正在开发中,但这对 pdfTeX 没有帮助,而且也不能覆盖所有情况。所以我们需要继续支持 TeX 的传统数学模式字体。这可能是这个拼图中要解决的最后一部分,因为它是目前路径最不明确的部分。值得注意的是,目前类似的东西在mathptmx某种程度上解决了数学和文本字体的问题,保持某种形式的一致字体外观非常重要。

相关内容