我使用该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}