LuaLaTeX/beamer:像 PDFLaTeX 一样打印数学方程式

LuaLaTeX/beamer:像 PDFLaTeX 一样打印数学方程式

以下 MWE 已由 pdflatex 和 lualatex 编译。对于 pdflatex,它非常好,但对于 lualatex,方程式的打印不如 pdflatex 正确。

\documentclass{beamer}
\usetheme{metropolis}
\usepackage{amsmath,mathtools,bm}
\newcommand\vm[1]{\bm{\mathrm{#1}}}
\newcommand\pbm[1]{\left(\mathbf{#1}\right)}

\begin{document}

\begin{frame}

\begin{align}
    \vm{\Phi}_{,\gamma}^T & = \vm{P}_{,\gamma}^T\pbm{x}\,\vm{A}^{-1}\,\vm{B} = \left\{ \begin{array}{c c c c}
    \phi_1 & \phi_2 & \cdots & \phi_n 
    \end{array} \right\}_{\left(1 \times n\right)},\\
    %
    \mathbf{\tilde{T}_s} & =%
    \left\{%
    \begin{array}{ccccc}
    T_1 & T_2 & \cdots & T_n & \bm{0}_{\left( 1 \times m \right)} 
    \end{array}%
    \right\}^T
\end{align}

\end{frame}

\end{document}

使用 pdflatex

在此处输入图片描述

使用 lualatex

在此处输入图片描述

答案1

用于数学的罗马字体显然没有经典 tex 数学编码中所使用的控制字符槽中的希腊字母。只需使用 bm 而不是(看起来相当奇怪的)\bm{\mathrm{#1}}似乎就可以了:

在此处输入图片描述

\RequirePackage{luatex85}
\documentclass[professionalfonts]{beamer}
\usetheme{metropolis}
\usepackage{amsmath,mathtools,bm}
\newcommand\vm[1]{\bm{#1}}
\newcommand\pbm[1]{\left(\mathbf{#1}\right)}

\begin{document}

\begin{frame}

\begin{align}
    \vm{\Phi}_{,\gamma}^T & = \vm{P}_{,\gamma}^T\pbm{x}\,\vm{A}^{-1}\,\vm{B} = \left\{ \begin{array}{c c c c}
    \phi_1 & \phi_2 & \cdots & \phi_n 
    \end{array} \right\}_{\left(1 \times n\right)},\\
    %
    \mathbf{\tilde{T}_s} & =%
    \left\{%
    \begin{array}{ccccc}
    T_1 & T_2 & \cdots & T_n & \bm{0}_{\left( 1 \times m \right)} 
    \end{array}%
    \right\}^T
\end{align}

\end{frame}

\end{document}

答案2

看起来像是数学字体问题(metropolis主题使用 Fira Sans Light 来表示 LuaLaTeX/XeLaTeX)。以下内容适用于 XeLaTeX;请注意,加载某些包的顺序很重要:

\usepackage{mathtools}  %% needs to be loaded before mathspec. already includes amsmath
\usepackage{mathspec}
\setmathsfont(Digits,Latin,Greek)[BoldFont=Fira Sans Bold]{Fira Sans Light}
\newcommand\hmmax{0} %% These two lines needed
\newcommand\bmmax{0} %% to avoid "Too many  symbol fonts" error
\usepackage{bm}
\newcommand\vm[1]{\bm{\mathrm{#1}}}
\newcommand\pbm[1]{\left(\mathbf{#1}\right)}

至于\tilde{T}:使用\widehat{T}似乎效果更好,但我无法使波浪号本身变为粗体。

相关内容