1.5e-10 样式的科学记数法在 LaTeX 数学模式中看起来很丑陋。我该如何更好地格式化它(字距调整等)?

1.5e-10 样式的科学记数法在 LaTeX 数学模式中看起来很丑陋。我该如何更好地格式化它(字距调整等)?

我注意到 e 样式(例如 1.5e-10)的科学符号在 Latex 数学模式中看起来不是特别好看:

在此处输入图片描述

(生成上图所用的代码$1.5e-10$:)

特别是,负号的宽度和字距完全不对。有什么方法可以专门修复负号的问题吗?

我的 LaTeX 代码:

以下是上图的完整代码(包括包):

\documentclass[11pt,notitlepage]{article}
\usepackage{amsfonts, amsmath, amsthm, amssymb}
\begin{document}
$1.5e-10$
\end{document}

我在使用 MathJax 时也遇到了完全相同的字距调整问题(通过 IPython Notebook 中的 markdown 编辑器。Notebook 会自动设置 MathJax,因此不知道它们使用了哪些包)。

上下文:浮点数和数值编程

就上下文而言,当我最初问这个问题时,我正在写一篇关于随机模拟数学的教程,目的是教人们如何用 Python 实现自己的模拟。这个特殊的符号 ( <significand>e[<sign>]<exponent>) 是相关的,因为它是你写浮点文字的方式(即 Python 解释器理解为表示特定浮点数的符号)。这个<signficand>*<base>^<exponent>符号及其更漂亮的变体不太合适,因为 Python(和许多其他语言)无法识别它。

答案1

它并不丑陋,但正是预期的结果。如果你输入

$2x-10$

那么你会期望减号周围有一些空格,因为它表示操作。当你输入 时$1e-10$,TeX 会以完全相同的方式解释它,因为它无法读懂你的想法:这两个表达式在形式上是相同的,只有两个符号不同。

如果您希望以不同的方式处理通常解释为多项式的表达式,那么您必须正确标记它。

一个解决方案可能是

$1\mathrm{e}{-10}$

因为在这种情况下,括号-10告诉 TeX 输入一个子公式,所以减号是初始的,所以不解释为二元运算,而是解释为一元运算符。

你可以做出一个定义,例如

\newcommand{\expnumber}[2]{{#1}\mathrm{e}{#2}}

并输入数字

$\expnumber{1}{-10}$

但还有一个更好的选择,那就是包裹siunitx

\documentclass{article}

\usepackage{siunitx}
\sisetup{output-exponent-marker=\ensuremath{\mathrm{e}}}

\begin{document}

\num{1e-10}

\end{document}

此套餐提供许多除了以所需格式打印数字之外还有更多功能;请参阅其文档来找到它们。

在此处输入图片描述


注意siunitx注意不是MathJax 无法理解,因此你必须坚持“手工”解决方案。你仍然可以说,

$\def\num#1{\numx#1}\def\numx#1e#2{{#1}\mathrm{e}{#2}}$ 

$\num{1e-10}$以及将以您想要的方式打印的公式。

答案2

看一下这个siunitx包。这对于排版单位和无单位数字(以及许多其他东西)很有帮助。这在文本模式和数学模式下都有效。

\documentclass{article}
\usepackage{siunitx}
\begin{document}
Number only: \num{1e-10}

Number with units: \SI{1e-10}{\meter\per\second}
\end{document}

在此处输入图片描述

答案3

这是一个非常简单的解决方案,不使用任何额外的包,而且在我看来看起来不错:

$9.54\text{e-}7$

也就是说,您正在以普通文本形式书写“e-”部分。

答案4

我使用$5.67\times 10^{-8}$,并且我不需要导入任何东西。

在此处输入图片描述

相关内容