尝试理解 baskervillef 和 fontspec 之间的交互

尝试理解 baskervillef 和 fontspec 之间的交互

我的高层次目标是获得一个支持小型大写字母和“稀有”连字的优质免费 Baskerville 字体。除了稀有连字外,我还使用软件包实现了这个目标baskervillef。baskervillef 的文档似乎表明我应该能够使用该fontspec软件包获得稀有连字,但这似乎不起作用,调试过程表明我并不真正了解 fontspec 应该如何与我的其他代码交互。我应该如何使用 fontspec 来设置 baskervillef 字体的选项?

下面是成功加载并使用 baskervillef 字体的最小工作示例:

\documentclass{article}
\usepackage{lipsum}
\usepackage{baskervillef}

\begin{document}
\section*{This Is a Section Header With a Number (1995)}
\lipsum[1][1-7]

\textfrac[3]{7}{8}

\textfrac{54}{71}

\normalfont gravestone inscription (test rare ligatures)

\itshape gravestone inscription (test rare ligatures)

\normalfont \scshape Put the Queen back in the drawer

\end{document}

我使用它来编译它xelatex,得到以下输出:

在此处输入图片描述

官方文档在第 2 页中包含以下示例代码,它看起来像是一种获取罕见连字符的方法:

\usepackage{fontspec}
\defaultfontfeatures[\rmfamily,\sffamily]{Ligatures=TeX}\setmainfont{baskervillef}
You could add the feature Ligatures=Rare to turn on all available ligatures for the entire document

但是,无论何时加载该fontspec包,无论是在加载 baskervillef 包之前还是之后,字体都会停止工作(输出恢复为默认的 latex 字体而不是 baskervillef)。即使我只是加载该包,以及如果我从文档中fontspec包含完整代码(带有defaultfontfeatures和),也会发生这种情况。setmainfont

这样做会在日志文件中产生如下错误:

LaTeX Font Warning: Font shape `TU/BaskervilleF-TLF/b/n' undefined
(Font)              using `TU/BaskervilleF-TLF/m/n' instead on input line 7.


LaTeX Font Warning: Font shape `TU/BaskervilleF-LF/m/n' undefined
(Font)              using `TU/lmr/m/n' instead on input line 10.

No file TUBaskervilleF-Sup.fd.
No file TUBaskervilleF-Dnom.fd.

...

LaTeX Font Warning: Some font shapes were not available, defaults substituted.

...

输出结果如下:

在此处输入图片描述

顺便说一下,swash文档中提到的选项似乎不受支持。这可能只是因为文档过时了,但我提到它是因为该swash选项也与连字有关。

以下是有关版本和我的 TeX 设置的一些信息,希望有用:

$ xelatex --version
XeTeX 3.14159265-2.6-0.999992 (TeX Live 2020)
kpathsea version 6.3.2
Copyright 2020 SIL International, Jonathan Kew and Khaled Hosny.
There is NO warranty.  Redistribution of this software is
covered by the terms of both the XeTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the XeTeX source.
Primary author of XeTeX: Jonathan Kew.
Compiled with ICU version 65.1; using 65.1
Compiled with zlib version 1.2.11; using 1.2.11
Compiled with FreeType2 version 2.10.1; using 2.10.1
Compiled with Graphite2 version 1.3.13; using 1.3.13
Compiled with HarfBuzz version 2.6.4; using 2.6.4
Compiled with libpng version 1.6.37; using 1.6.37
Compiled with poppler version 0.68.0
Using Mac OS X Core Text and Cocoa frameworks

baskervillef.sty我认为这包括我的 baskervillef 包的版本(这是我在中找到的文件的前几行/usr/local/texlive/2020):

%%
\NeedsTeXFormat{LaTeX2e}
\def\fileversion{1.043}
\def\filedate{2017/03/10}
\ProvidesPackage{baskervillef}
    [\filedate\space v\fileversion.  Style file for BaskervilleF.]

答案1

在该软件包的用户指南第 2 页上,可以找到运行

\usepackage{fontspec}
\defaultfontfeatures[\rmfamily,\sffamily]{Ligatures={TeX,Common,Rare}}
\setmainfont{baskervillef}

为了fontspec在 XeLaTeX 和 LuaLaTeX 下使用该包中的字体,同时激活“Rare”连字。

在此处输入图片描述

\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures[\rmfamily,\sffamily]{Ligatures={TeX,Common,Rare}}
\setmainfont{baskervillef}

\begin{document}
off fit fly office baffle often, fj ffj fb ffb fh ffh fk ffk fft

stop act spy

\itshape
off fit fly office baffle often, fj ffj fb ffb fh ffh fk ffk fft

stop act spy
\end{document}

相关内容