在数学模式下,斜体希腊字母变为拉丁字母

在数学模式下,斜体希腊字母变为拉丁字母

我使用该mathastext包是为了避免数学公式中的任何地方都出现斜体,特别是函数名称或向量和矩阵字母。

但这会导致希腊字母出现奇怪的行为,如以下 MWE 所示:

\documentclass{report}
\usepackage{amsmath}
\usepackage[LGRgreek,defaultmathsizes]{mathastext}
\begin{document}

\begin{equation}
\mathit{y} = \mathit{X\beta} + \mathit{\epsilon}
\end{equation}

\begin{equation}
\mathit{y} = \mathit{X}{\beta} + \epsilon
\end{equation}

\end{document}

这使:
希腊字母是拉丁字母

我怎样才能在局部(即在任何特定方程式内)强制某些字母变为斜体,尤其是希腊字母?

答案1

原帖者在评论中指出,“99% 都是直立的?我不想把它们都单独标记出来。”因此,虽然有很多理由不这样做,但我还是使用了解决方案的逆直立希腊字体适合计算机现代,并引入了宏\slant,它(在 pdflatex 中)可以应用于任何特定参数。

\documentclass{report}
\usepackage{amsmath}
\usepackage[LGRgreek,defaultmathsizes]{mathastext}
\newsavebox{\foobox}
\newcommand{\slantbox}[2][0]{\mbox{%
        \sbox{\foobox}{#2}%
        \hskip\wd\foobox
        \pdfsave
        \pdfsetmatrix{1 0 #1 1}%
        \llap{\usebox{\foobox}}%
        \pdfrestore
}}
\newcommand\slant[2][.25]{\slantbox[#1]{$#2$}}
\begin{document}

\begin{equation}
\mathit{y} = \mathit{X\beta} + \slant\epsilon
\end{equation}

\begin{equation}
\mathit{y} = \mathit{X}{\beta} + \epsilon
\end{equation}

\centering
$\alpha\beta\gamma\delta\epsilon\eta\mu\phi\sigma\tau\omega\xi\psi\zeta$\par
\slant\alpha\slant\beta\slant\gamma\slant\delta\slant\epsilon%
\slant\eta\slant\mu\slant\phi\slant\sigma\slant\tau\slant\omega%
\slant\xi\slant\psi\slant\zeta

\end{document}

在此处输入图片描述

相关内容