![章节标题中的字体形状未定义](https://linux22.com/image/444589/%E7%AB%A0%E8%8A%82%E6%A0%87%E9%A2%98%E4%B8%AD%E7%9A%84%E5%AD%97%E4%BD%93%E5%BD%A2%E7%8A%B6%E6%9C%AA%E5%AE%9A%E4%B9%89.png)
我得到了一个Font shape '...' undefined
一个非常具体设置,但我不知道为什么。这是 MWE。
下面的代码才不是会导致警告。但是,当您更改\lipsum[1-3]
为时\lipsum[1-4]
,第一页已满,不知何故这会触发它。
\documentclass{book}
\usepackage{LobsterTwo}
\renewcommand{\familydefault}{lmr}
\usepackage{lipsum}
\begin{document}
\chapter{\LobsterTwo Test}
\lipsum[1-3] % change this line to \lipsum[1-4]
\end{document}
这个想法是使用默认lmodern
字体,但也用字体突出显示章节标题中的某些特殊单词LobsterTwo
。完整警告是Font shape 'OT1/LBSTR-LF/m/sl' undefined(Font) using 'OT1/cmr/m/n' instead
。我正在使用pdflatex
。
请注意,我实际上没有在输出中看到问题,但我认为忽略警告不是一个好主意,所以我想了解为什么会发生这种情况以及如何解决它。
答案1
当生成第二页时会发出警告,因为该类book
使用倾斜类型和大写字母作为页眉。
由于\LobsterTwo
简单定义为
\def\LobsterTwofamily{Lbstr-LF}
\newcommand*\LobsterTwo{\fontfamily{\LobsterTwofamily}\selectfont}
宏\MakeUppercase
也会将Lbstr-LF
字符串大写。实际上,警告是关于
OT1/LBSTR-LF/m/sl
而姓氏是Lbstr-LF
。
我不会加载 LobsterTwo 包,提供更简单的强壮的自己定义。
\documentclass{book}
\usepackage{lipsum}
\DeclareRobustCommand*\LobsterTwo{\fontfamily{Lbstr-LF}\selectfont}
\DeclareTextFontCommand{\LTtext}{\LobsterTwo}
\begin{document}
\chapter{\LTtext{Test} and normal type}
\section{Test section}
\lipsum[1-20]
\end{document}
这样斜体字型就可以代替斜体字型了。\LobsterTwo
如果你愿意,你也可以使用,但我不会。