我正在使用 pdfLaTeX 作为后端编写 Beamer 演示文稿。我想使用 Lato 作为文本和eulervm
数学字体。但是我的运算符 Re 未在方程式中以数学字体显示:
我不认为这是重复的那个问题因为我没有使用 XeTeX。无论如何,这是意料之中的事,因为我没有选择与文本字体完美融合的数学字体?否则,我该如何解决这个问题?我尝试使用,\usefonttheme{professionalfonts}
但没有效果。
梅威瑟:
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage[UKenglish]{babel}
\usepackage[default]{lato}
\usepackage{eulervm}
\usefonttheme[onlymath]{serif}
\DeclareMathOperator{\Rey}{Re}
\begin{document}
\begin{frame}
\begin{block}{In block}
\begin{equation*}
x + y = z
\end{equation*}
\begin{equation*}
\Rey = 1
\end{equation*}
In text \(\Rey = 1\)
\end{block}
\end{frame}
\end{document}
答案1
因为\Rey
应该表示雷诺数,那么 这样的数字怎么样\mathinner{\mathnormal{R\mkern -1mu e}}
?\mkern -1mu
确保这看起来不像R
和之间的乘积e
。也许有更好的方法来实现这一点,但由于这些字形来自数学字体,我不确定。 确保\mathinner
整体周围有一些空间,就像使用\left
和时一样\right
。
\documentclass{beamer}
\usepackage[default]{lato}
\usepackage{eulervm}
\usefonttheme[onlymath]{serif}
\newcommand*{\Rey}{\mathinner{\mathnormal{R\mkern -1mu e}}}
\begin{document}
\begin{frame}
\begin{block}{In block}
\begin{equation*}
x + y = z
\end{equation*}
\begin{equation*}
\Rey = 1
\end{equation*}
\begin{equation*}
x\Rey y = 2
\end{equation*}
In text: \(\Rey = 1\), $x\Rey y = 2$.
\end{block}
\end{frame}
\end{document}
答案2
虽然@frougon 的解决方案解决了这个问题,但似乎还有另一篇文章提到了这个问题那里,报告了一种“更一致”的解决方案,避免与字距调整混淆\DeclareSymbolFont
:
\documentclass{beamer}
\usepackage[utf8]{inputenc}
\usepackage[UKenglish]{babel}
\usepackage[default]{lato}
\usepackage{eulervm}
\usefonttheme[onlymath]{serif}
\DeclareMathOperator{\Rey}{Re}
\DeclareSymbolFont{sfoperators}{U}{zeur}{m}{n}
\makeatletter
\renewcommand{\operator@font}{\mathgroup\symsfoperators}
\makeatother
\begin{document}
\begin{frame}
\begin{block}{In block}
\begin{equation*}
x + y = z R e
\end{equation*}
\begin{equation*}
\Rey = 1
\end{equation*}
In text \(\Rey = 1\)
\end{block}
\end{frame}
\end{document}