我注意到 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
答案3
这是一个非常简单的解决方案,不使用任何额外的包,而且在我看来看起来不错:
$9.54\text{e-}7$
也就是说,您正在以普通文本形式书写“e-”部分。