如果在 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}$
不是必需的;如果操作不当,添加括号甚至可能会很危险:最好将其移除。