数学字体和 LuaLaTeX 的问题

数学字体和 LuaLaTeX 的问题

如果在 pdflatex 中编译,则以下代码可以正常工作:

\documentclass{beamer}
\usepackage{quattrocento}
\begin{document}
\begin{frame}
Quattrocento $30\cdot40$
\end{frame}
\end{document}

正如 egreg 在我之前的问题中所解释的那样(在文章类中获取 Quattrocento 作为数学字体) beamer 自动使用 mathmode 中的字母和数字的文本字体。

现在我需要用 LuaLaTeX 编译我的演示文稿,所以我将代码改为:

\documentclass{beamer}
\usepackage{fontspec}
\usepackage{unicode-math}
\setsansfont{Quattrocento}
\setmathfont{Quattrocento}
\begin{document}
\begin{frame}
Quattrocento ${30\cdot40}$
\end{frame}
\end{document}

但是这样就\cdot无法打印了(我假设是因为该符号不在 Quattrocento 字体中,而且现在该字体用于所有数学符号,而不仅仅是字母数字)。

使用 lualatex 时,如何使用 pdflatex 恢复 beamer 行为?

答案1

Quattrocento 不符合数学字体的条件\setmathfont;用于此用途的字体应专门针对数学定制,包含数百个符号和一些内部表格。

出于有限的目的,您可以使用mathastext,但您还必须fontspec使用以下no-math选项加载:

\documentclass{beamer}
\usefonttheme{professionalfonts}

\usepackage[no-math]{fontspec}
\usepackage[sfdefault]{quattrocento}
\usepackage[italic]{mathastext}

\begin{document}
\begin{frame}
Quattrocento $30\cdot40+ab-c$           
\end{frame}
\end{document}

在此处输入图片描述

请注意,这${30\cdot 40}$不是必需的;如果操作不当,添加括号甚至可能会很危险:最好将其移除。

相关内容