Beamer:使用 Libertine 和 Computer Modern 等宽屏幕(pdflatex 与 lualatex)

Beamer:使用 Libertine 和 Computer Modern 等宽屏幕(pdflatex 与 lualatex)

我用它beamer来写一份演示文稿。我包含了该libertine软件包来更改默认字体,并且我正在使用该professionalfonts主题来避免与 beamer 的字体设置发生冲突。

然而,我不喜欢 Libertine 的等宽字体系列,所以我想将\tt文本恢复为 Computer Modern。因此,我\renewcommand{\ttdefault}{cmtt}在序言中提到了这一点。

问题是使用pdflatex可以得到预期的效果,而使用 会中断lualatex。有人能告诉我出了什么问题以及如何修复它吗?

这是 MWE

\documentclass{beamer}
\usefonttheme{professionalfonts}

\usepackage[T1]{fontenc}
\usepackage{libertine}

\renewcommand{\ttdefault}{cmtt}

\begin{document}

\begin{frame}
\begin{center}
\Huge\sc
Thanks!

{\Large\tt http://www.nice.website}
\end{center}
\end{frame}

\end{document}

lualatex

路拉泰克斯

pdflatex

pdflatex

答案1

Seb 指出,该fontspec软件包通常用于处理 LuaLaTeX 中的 (OpenType) 字体。不过,加载该软件包并非强制性要求(但使用 OpenType 字体有好处)。

根据浪荡手册,有一个软件包选项type1(或nofontspec)用于恢复为 所使用的 Type 1 字体。使用或pdflatex进行编译时,此选项才有用。使用 时,它不会执行任何操作。lualatexxelatexpdflatex

修改后的文档(lualatex和 的字体相同pdflatex):

\documentclass{beamer}
\usefonttheme{professionalfonts}
\usepackage[T1]{fontenc}
\usepackage[type1]{libertine}
\renewcommand{\ttdefault}{cmtt}
\begin{document}
\begin{frame}
\begin{center}
\Huge\sc
Thanks!

{\Large\tt http://www.nice.website}
\end{center}
\end{frame}
\end{document}

如果没有该type1选项,则在使用 Lua(La)TeX 或 Xe(La)TeX 时libertine会自动加载。因此,字体编码将分别为 EU2 或 EU1。当使用( ) 编译 MWE 时,会出现警告,提示字体在 EU2 (EU1) 编码中不可用,而是使用替代字体。fontspeclualatexxelatexcmtt

答案2

这是因为 LuaLaTeX 以不同的方式处理字体。
与你的 PDFLaTeX 选项等效的选项是

\usepackage{fontspec} % Font handling
\setmainfont[]{Linux Libertine O} % Main font is Linux Libertine
\setmonofont[]{CMU Typewriter Text} % Monospace font is Computer Modern Typewriter

为了更深入地了解 LuaLaTeX 中字体的情况,你可以看看Fontspec 包文档

相关内容