LaTeX 中的计算器样式十进制表示法

LaTeX 中的计算器样式十进制表示法

鉴于我不希望数字为 \tt,我希望 E 很小,并且我可能希望指数为负数(没有巨大的 LaTeX 减号),那么在 LaTeX 中编写类似 6.22E-21 的最佳方法是什么?

我确信这与另一个我找不到的问题重复。

例如:在此处输入图片描述

答案1

对于一次性实现排版需求,你可以尝试

6.22\mbox{\sc{e}-}21

这在文本和数学模式下都有效。如果你使用该amsmath包,你应该输入

6.22\text{\sc{e}-}21

因为这比第一个解决方案稍微更通用一些。具体来说,如果表达式出现在 scriptstyle(第一级子标和上标)或 scriptscriptstyle(第二级子标和上标)材料中,它会更好地发挥作用。

相反,如果您有很多数字需要以这种方式排版,则应按照@AlfC 的回答提供的方法实施解决方案。否则,迟早会出现一些排版这些数字的方式不一致的情况。

答案2

迄今为止最优雅的方法是使用包siunitx

\documentclass{article}
\usepackage{siunitx}
\sisetup{output-exponent-marker=\textsc{e}}
\begin{document}
\num{6.02e23}
\end{document}

计算器样式

编辑1:如果您想要一个短的减号,一个不太优雅的解决方案(但仍在范围内siunitx)是用以下更复杂的sisetup行替换:

\sisetup{output-exponent-marker=\textsc{e}, bracket-negative-numbers, open-bracket={\text{-}}, close-bracket={}}

短减

这通常也会影响在 中使用的负数(即使没有指数)\num。有关减号的其他技巧,请查看此问题制作一个更短的减法或者负片与减片的排版?,对此没有一个答案真正令我满意。

编辑2(2014年):如果你让 XeLaTeX 使用Écran 字体(例如)和一些 TikZ 阴影,你可以给它一个完整的外观

计算

(请注意 unicode 字符“ᴇ”的使用,我需要使用这种特殊的字体,因为它是唯一具有这个字符的字体)

\documentclass{article}
\usepackage{xcolor}
\usepackage{siunitx}
\usepackage{fontspec}
\setmainfont[ExternalLocation={./}]{ecran-monochrome---monochrome-display.ttf} % Écran Monochrome
\usepackage{tikz}
\newcommand\calcshadow[1]{
\tikz[baseline]{
    \node[black!50!white] at (0.02,-0.02) {\num[output-exponent-marker=\text{ᴇ}, output-decimal-marker=\text{.}, bracket-negative-numbers, open-bracket={\text{-}}, close-bracket={}]{#1}};
    \node[] at (0.,0.) {\num[output-exponent-marker=\text{ᴇ}, output-decimal-marker=\text{.}, bracket-negative-numbers, open-bracket={\text{-}}, close-bracket={}]{#1}};
}
}
\begin{document}
\colorbox{gray!70}{
\calcshadow{6.02e-23}
}
\end{document}

编辑3:使用 Unicode 块字符“█”的替代样式:

区块计算

...
\newcommand\calcshadow[1]{
\tikz[baseline]{
    \node[black!20!white] at (0.,0.) {████████};
    \node[black!80!white,opacity=0.5] at (0.02,-0.02) {\num[output-exponent-marker=\text{ᴇ}, output-decimal-marker=\text{.}, bracket-negative-numbers, open-bracket={\text{-}}, close-bracket={}]{#1}};
    \node[] at (0.,0.) {\num[output-exponent-marker=\text{ᴇ}, output-decimal-marker=\text{.}, bracket-negative-numbers, open-bracket={\text{-}}, close-bracket={}]{#1}};
}
}
...

答案3

它在 LaTeX 中工作,http://www.ctan.org/pkg/lcd

在此处输入图片描述

对于 10,

\DefineLCDchar{10}{00000000000000010111101011010110111}

对于小写字母形状 {E},

\DefineLCDchar{12}{00000000000111101000011100100001111}

也许有必要,http://latexcolor.com/

非常感谢,迈克·考夫曼。

答案4

你可以尝试这个代码:

% this has to go in the preamble of the document.
\DeclareMathSymbol{\minus}{\mathord}{operators}{"2D} % unary minus
\newcommand{\scinot}[2]{#1\,\textrm{\scriptsize E}{#2}} % scientific notation
$\scinot{10}{\minus2}$

相关内容