偶尔,我会尝试一些非常规的字体选择。我偶尔才这么做,这意味着我对这些机制非常不了解。今天我想起我对此不了解的另一个原因:主要资源提供的文档不太一致。
在查找书法字体时LaTeX 字体目录,我很高兴地发现龙虾二,它是 TeXLive 发行版的一部分,看起来是一款非常适合少量使用的字体。以下是 LaTeX 字体目录对其用法的说明:
用法
\usepackage{LobsterTwo} \usepackage[T1]{fontenc}
样式示例
\LobsterTwo
这强烈暗示我 LobsterTwo 不会将自己设为主要字体选择,并且\LobsterTwo
可以使用宏(\sffamily
我想是的)。但是,当我在一个简单的文档中尝试它时,行为并不像我所期望的那样:
\documentclass{article}
\usepackage{LobsterTwo}
\usepackage[T1]{fontenc}
\begin{document}
{\LobsterTwo Yay, a new font!}
Hey, wait, \underline{this} isn't Computer Modern \ldots
\end{document}
我不总是在尝试新字体时会出现这种行为,事实上,我怀疑当我过去遇到这种行为时,我干脆放弃尝试使用有问题的字体。所以这可能是一个问题,即了解使用已包含在 TeX 发行版中的字体的正确工作流程是什么。
当然,我可以立即添加一些代码,\begin{document}
强制将字体选择为 Computer Modern。但是,这必须在我选择使用的文档中进行修改,例如 Palatino 或 Times。(当然,这些字体的软件包的行为方式与 LobsterTwo 相同,因此在这些情况下,我可以在 LobsterTwo 之后简单地加载软件包 — 但在这种情况下,我还必须删除代码以恢复 CM,这使得这些更改不那么本地化。)
简而言之,我知道如果我想使用 LobsterTwo(或类似的字体),我可以恢复 CM有时,但希望 CM 成为默认字体。但当我想使用不同的默认字体时,这有点麻烦,而且需要非本地维护。如果我能从一开始就阻止 LobsterTwo 成为默认字体,或者在之后立即撤消它,那就更好了。
当然现在有一个工作流程可以优雅地完成此操作。但它是什么呢?
答案1
这完全取决于包,与任何包一样,无论是否与字体相关,它定义的命令都具有很大的灵活性。
看看LobsterTwo.sty
最后几行
\def\LobsterTwofamily{Lbstr-LF}
\renewcommand*\rmdefault{\LobsterTwofamily}
\newcommand*\LobsterTwo{\fontfamily{\LobsterTwofamily}\selectfont}
因此它定义了一个 NFSS 家族Lbstr-LF
,可以像cmr
表示 Computer Modern Roman 的家族一样使用。
然后它还将该字体系列设为默认的罗马字体并定义\LobsterTwo
切换回该字体系列的命令。
\let\oldrmdefault\rmdefault
\usepackage{LobsterTwo}
\let\rmdefault\oldrmdefault
可能是您想要的,因为该包似乎没有不重新定义默认值的选项。
答案2
我个人建议您在可以的情况下在 LuaTeX 中使用现代字体,在必须的情况下在 PDFTeX 中使用传统的 8 位字体。 Lobster Two 是 OpenType 字体的转换。
如果你下载并运行
\usepackage{fontspec}
\newfontfamily{LobsterTwo}[
Scale = MatchUppercase ,
Ligatures = Common ,
UprightFont = *-Regular ,
ItalicFont = *-Italic ,
BoldFont = *-Bold ,
BoldItalicFont = *-BoldItalic ,
Extension = .otf ]
您不会遇到这个问题,并且还会获得它的所有连字符。
您还可以在该字体包之后加载另一个字体包,并覆盖其字体设置。