编译 MWE 时,我收到 2 条警告。警告如下:
警告1:
./cuba.tex:13: Font shape `EU1/EversonMono(0)/bx/n' undefined(Font) using `EU1/EversonMono(0)/m/n' instead on input line 13.Font shape `EU1/EversonMono(0)/bx/n' undefined(Font) using `EU1/EversonMono(0)/m/n' instead
警告2:
./cuba.tex:0: Some font shapes were not available, defaults substituted.
我的问题是:如何解决这些警告?
信息:
我正在使用
{scrbook}
文档类并使用 XeLaTeX 进行编译。字符“
⸱
”是“单词分隔符中间点”。其 Unicode 为 U+2E31。Everson Mono 字体可以从以下位置下载:http://www.evertype.com/emono/
它有常规的(Everson Mono),大胆的(埃弗森单色粗体),斜体(Everson Mono Oblique)和加粗斜体(埃弗森单色粗体斜体)。
妇女权利委员会:
\documentclass{scrbook} \usepackage{fontspec} \usepackage{newunicodechar} \newfontface{\emr}{Everson Mono}% emr -- Everson Mono (regular) \newunicodechar{⸱}{\emr{⸱}} \newcommand{\titik}{\emr{⸱}} \begin{document} \chapter{Manusia (ma{\titik}nu{\titik}sia)} Manusia (ma{\titik}nu{\titik}sia). \end{document}
我使用它
\newcommand
来使 MWE 更易于阅读(至少对我来说),并且我也将在原始文档中经常使用这个 Unicode。
答案1
如果\newfontface
你没有定义根据当前条件更改字体的命令。你可能希望\titik
符号不遵守粗体条件,但主要问题是如何定义它。它应该是
\newfontface{\emr}{Everson Mono}% emr -- Everson Mono (regular)
\newunicodechar{⸱}{{\normalfont\emr ⸱}}
\newcommand{\titik}{⸱}
您所做的是选择\emr
其余部分标题的字体(或直到当前组结束)。
如果您希望\titik
尊重粗体或斜体声明,请使用
\newfontfamily{\emr}{Everson Mono}% emr -- Everson Mono (regular)
\newunicodechar{⸱}{{\emr ⸱}}
\newcommand{\titik}{⸱}
\newfontfamily
和有什么区别\newfontface
?前者命令将设置完整的字体系列(基于字体名称和可用形状或基于用户手动添加的指令)。后者定义“固定”字体,只能改变大小。
因此,\newfontface{\emr}{Everson Mono}
您只需定义\emr
选择字体的常规版本,而不受上下文的影响,但您会收到有关未定义字体形状的警告(您所经历的)。相反,如果您在粗体处于活动状态的上下文中使用\newfontfamily
并发出警告\emr
,您将获得 Everson Mono Bold。
在这两种情况下,\emr
都是宣言这会告诉 TeX 使用该字体直到当前组结束。因此,如果您想要使用\titik
您的定义,则需要在其周围添加括号以限制范围。
定义的命令类似于\itshape
或\bfseries
,它们不是带有参数的命令。
如果要定义带参数的命令,在定义名为的字体系列或字体后\emr
,您可以执行
\DeclareTextFontCommand{\textemr}{\emr}
然后\textemr{text}
将以text
Everson Mono 排版。