\LaTeX 宏:“字体形状‘OT1/LatinModernSans(0)/m/n’未定义”

\LaTeX 宏:“字体形状‘OT1/LatinModernSans(0)/m/n’未定义”

我尝试使用 LuaLaTeX (LuaTeX v0.76/TeX Live 2013) 编译以下示例:

\documentclass{beamer}

\usepackage{fontspec}
\usepackage[ngerman]{babel}

\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Latin Modern Roman}
\setsansfont{Latin Modern Sans}
\setmonofont{Latin Modern Mono}

\usetheme{Boadilla}

\title{\LaTeX}

\begin{document}

\frame{Test}

\end{document}

但是,我在控制台/日志文件中收到有关 Latin Modern Sans 的字体警告:

LaTeX Font Info:    Try loading font information for OT1+LatinModernSans(0) on input line 15.
LaTeX Font Info:    No file OT1LatinModernSans(0).fd. on input line 15.

LaTeX Font Warning: Font shape `OT1/LatinModernSans(0)/m/n' undefined
(Font)              using `OT1/cmr/m/n' instead on input line 15.

我不明白为什么会收到此警告。如果我执行以下操作之一,它就会消失:

  • 停止\LaTeX使用\title
  • 删除该\usetheme行(大概是因为当时没有使用该标题)
  • 删除该行\setsansfont{Latin Modern Sans};我不明白这一点,LuaTeX 不是默认加载 Latin Modern 吗?还是 Computer Modern?

我发现问题似乎出在\LaTeX宏上。如果我将 hologo 包与 一起使用\hologo{LaTeX},也不会出现任何警告,但我想了解为什么这会导致问题,以及是否存在更深层次的问题。

控制台输出:

$ lualatex test.tex
This is LuaTeX, Version beta-0.76.0-2013121407 (rev 4627) 
 restricted \write18 enabled.
(./test.tex
LaTeX2e <2011/06/27>
Babel <3.9h> and hyphenation patterns for 33 languages loaded.
(/usr/share/texmf/tex/latex/beamer/base/beamer.cls
(/usr/share/texmf/tex/latex/beamer/base/beamerbasercs.sty)
Document Class: beamer 2012/10/15 development version 3.24 A class for typesetting presentations (rcs-revision 24853e6b98cf)

...

LaTeX Font Warning: Font shape `OT1/LatinModernSans(0)/m/n' undefined
(Font)              using `OT1/cmr/m/n' instead on input line 15.

...

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

...

答案1

事实上,如果您从某个标题中删除,警告就会消失\LaTeX,这意味着主题是使用该命令的旧定义创建的,或者该定义与之不兼容LuaLaTeX

事实上“某人”指定某些文本必须使用标准旧 TeX 编码 OT!进行排版;通常,使用的开放类型字体的默认编码Luatex是 EU2;由于您没有指定任何编码,因此旧编码由主题指定,并且应该需要更正主题(或其beamer本身?我对此表示怀疑,但谁知道呢......)

xpatch可以使用包来本地修补一些现有命令,而无需真正进入包中。

相关内容