我读到了很多关于人们想要无衬线字体的数学模式并使用包和选项做一些疯狂的事情来实现这一点的文章,但我没有找到任何可以让我的数学模式字体变为非斜体的东西。
有没有一种(简单的)方法可以将数学模式字体设置为非斜体?
有没有办法对整个文档进行全局执行此操作?
答案1
根据具体情况,可以使用\textrm{...}
或在数学模式中排版文本\mathrm{...}
,后者主要用于排版单位或符号,而不是纯文本(因为它会占用未转义的空格)。\mbox{...}
是 的另一种替代方法\textrm{...}
,因为它默认将其内容重置为文本模式。以下是一些示例:
\documentclass{article}
\begin{document}
Here is a formula: $x=\exp(\log \mathrm{x})$
Here is another: $\sin^2 t+\cos^2 t = \textrm{famous identity}$
\end{document}
上述字体更改通常效果不佳,因为在使用下标和上标时切换到不同的字体并不总是按预期缩放。不过,有办法解决这个问题。例如,\text{...}
使用amstext
包裹(自动加载amsmath
- 参见AMS 包依赖项),通过以下方式切换到适当的字体大小\mathchoice
:
\documentclass{article}
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
% amsmath loads the amstext package by default
\begin{document}
Here is a formula: $x=y^{abc}$
Here it is again: $x=y^{\mbox{abc}}$
Compare that to: $x=y^{\text{abc}}$
\end{document}
答案2
结果并不总是完美的,但当mathastext
您想将数学字体全局设置为直立时(或使用另一种完全不同的字体,请查看文档),这就是您想要的:
\documentclass{article}
\usepackage[LGRgreek]{mathastext}
\begin{document}
Here is a formula: $x=\exp(\log x)$
Here is another: $\sin^2 t+\cos^2 t = 1$
What about Greek? $\alpha+\beta$
\end{document}
不要告诉任何人我推荐了它。:) 事实上我强烈建议不要做诸如将所有数学运算都打印出来之类的邪恶之事。:)
答案3
可能不是您想要的,但您可以使用欧拉数学字体,它是一种直立数学字体(非斜体)。
\documentclass{article}
\usepackage[osf,sc]{mathpazo}
\usepackage{eulervm}
\begin{document}
This is some text in Palatino with an inline equation $f(x)=\cos(x^2)$
followed by an equation:
\begin{equation}
\int_{0}^{1}\frac{1}{1 + x^2}\mathrm{d}{x}
\end{equation}
\end{document}
只是不要将它们与 Computer Modern 一起使用。(此处的示例使用 Palatino 作为文本字体。)
答案4
有些软件包(MinionPro
、、、)有一个选项“frenchmath”(具体名称取决于软件包),它将大写罗马字母和所有希腊字母排版为mathdesign
直立fourier
,kpfonts
和负责处理指标。