方程式中的非斜体文本

方程式中的非斜体文本

每次使用方程式时,我都希望方程式中的普通字母不为斜体。我试过\usepackage{mathastext}让方程式看起来很奇怪,括号变小等等。我试过\usepackage{eulervm}旋转\leq

希腊字母可以保持斜体,我还有另一个技巧可以让它们变为非斜体。有没有办法只让等式中的普通文本变为非斜体?

答案1

我不知道这样的方法是否能涵盖所有基础?

letters我告诉 LaTeX使用字体样式进行数学运算{cmr}{m}{n}。但是,这会弄乱希腊字母,所以我必须定义一个特殊的greeksymbols{cmm}{m}{it},然后为每个希腊符号指定greeksymbols字体样式。

已编辑,采纳 campa 的建议,添加其他符号,例如鱼叉、\imath(直立式)、\wp\vec(重音)。

添加此类符号的关键是查看 TeXbook 中的 cm 字体表(附录 F),以确定所需字形的插槽编号和字体系列。您还需要了解字形的功能类别,例如\mathrel\mathbin\mathchar\mathord等,并将所有这些信息添加到\DeclareMathSymbol声明中。

\mathord根据 egreg 的建议,编辑并制作希腊字母类别。

\documentclass{article}
\DeclareSymbolFont{letters}{OT1}{cmr}{m}{n}
\DeclareSymbolFont{greeksymbols}{OML}{cmm}{m}{it}

%GREEKS
\DeclareMathSymbol{\alpha}{\mathord}{greeksymbols}{"0B}
\DeclareMathSymbol{\beta}{\mathord}{greeksymbols}{"0C}
\DeclareMathSymbol{\gamma}{\mathord}{greeksymbols}{"0D}
\DeclareMathSymbol{\delta}{\mathord}{greeksymbols}{"0E}
\DeclareMathSymbol{\epsilon}{\mathord}{greeksymbols}{"0F}
\DeclareMathSymbol{\zeta}{\mathord}{greeksymbols}{"10}
\DeclareMathSymbol{\eta}{\mathord}{greeksymbols}{"11}
\DeclareMathSymbol{\theta}{\mathord}{greeksymbols}{"12}
\DeclareMathSymbol{\iota}{\mathord}{greeksymbols}{"13}
\DeclareMathSymbol{\kappa}{\mathord}{greeksymbols}{"14}
\DeclareMathSymbol{\lambda}{\mathord}{greeksymbols}{"15}
\DeclareMathSymbol{\mu}{\mathord}{greeksymbols}{"16}
\DeclareMathSymbol{\nu}{\mathord}{greeksymbols}{"17}
\DeclareMathSymbol{\xi}{\mathord}{greeksymbols}{"18}
\DeclareMathSymbol{\pi}{\mathord}{greeksymbols}{"19}
\DeclareMathSymbol{\rho}{\mathord}{greeksymbols}{"1A}
\DeclareMathSymbol{\sigma}{\mathord}{greeksymbols}{"1B}
\DeclareMathSymbol{\tau}{\mathord}{greeksymbols}{"1C}
\DeclareMathSymbol{\upsilon}{\mathord}{greeksymbols}{"1D}
\DeclareMathSymbol{\phi}{\mathord}{greeksymbols}{"1E}
\DeclareMathSymbol{\chi}{\mathord}{greeksymbols}{"1F}
\DeclareMathSymbol{\psi}{\mathord}{greeksymbols}{"20}
\DeclareMathSymbol{\omega}{\mathord}{greeksymbols}{"21}
\DeclareMathSymbol{\varepsilon}{\mathord}{greeksymbols}{"22}
\DeclareMathSymbol{\vartheta}{\mathord}{greeksymbols}{"23}
\DeclareMathSymbol{\varpi}{\mathord}{greeksymbols}{"24}
\DeclareMathSymbol{\rho}{\mathord}{greeksymbols}{"25}
\DeclareMathSymbol{\varsigma}{\mathord}{greeksymbols}{"26}
\DeclareMathSymbol{\varphi}{\mathord}{greeksymbols}{"27}
%SYMBOLS
\DeclareMathSymbol{\leftharpoonup}{\mathrel}{greeksymbols}{"28}
\DeclareMathSymbol{\leftharpoondown}{\mathrel}{greeksymbols}{"29}
\DeclareMathSymbol{\rightharpoonup}{\mathrel}{greeksymbols}{"2A}
\DeclareMathSymbol{\rightharpoondown}{\mathrel}{greeksymbols}{"2B}
\DeclareMathSymbol{\wp}{\mathord}{greeksymbols}{"7D}
%OTHERS
\DeclareMathSymbol{\imath}{\mathalpha}{letters}{"10}
\DeclareMathAccent{\vec}{\mathaccent}{greeksymbols}{"7E}
\begin{document}
\[
z = \alpha x + \beta y^2
\]
\[
x \leftharpoonup y \leftharpoondown z \rightharpoonup \imath \rightharpoondown i
\]
\[
A = \wp(\vec B)
\]
\end{document}

在此处输入图片描述

答案2

另一种方法是使用unicode-mathwithmath-style=upright选项。但这适用于 LuaLaTeX 和 XeLaTeX。

以下代码通过lualatex doc.tex或构建xelatex doc.tex

\documentclass{article}
\usepackage[math-style=upright]{unicode-math}
\begin{document}
\[
z = \alpha x + \beta y^2
\]
\[
x \leftharpoonup y \leftharpoondown z \rightharpoonup \imath \rightharpoondown i
\]
\[
A = \wp(\vec B)
\]
\end{document}

产生以下结果

带有 unicode-math 的直立字体

请注意,希腊字母也变得直立。

相关内容