{newunicodechar} + \chapter{} 产生两个与字体相关的警告

{newunicodechar} + \chapter{} 产生两个与字体相关的警告

编译 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.

我的问题是:如何解决这些警告?

信息:

  1. 我正在使用{scrbook}文档类并使用 XeLaTeX 进行编译。

  2. 字符“ ”是“单词分隔符中间点”。其 Unicode 为 U+2E31。

  3. Everson Mono 字体可以从以下位置下载:http://www.evertype.com/emono/

它有常规的(Everson Mono),大胆的(埃弗森单色粗体),斜体(Everson Mono Oblique)和加粗斜体(埃弗森单色粗体斜体)。

  1. 妇女权利委员会:

    \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}
    
  2. 我使用它\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}将以textEverson Mono 排版。

相关内容