将表格从 excel 转换为 latex,格式为 $10^{-n}$

将表格从 excel 转换为 latex,格式为 $10^{-n}$

我想将 Microsoft Excel 中的表格转换为基于 Microsoft Windows 操作系统的 latex(在 Winedt 上)。例如,excel 中的数字是


1 2

1.00E-02 1.05E-03


我希望在乳胶表中直接有 1.00 $\times 10^{-2}$ 和 1.05$\times 10^{-3}$。

我试过 excel2latex.xla,它可以转换表格,但不会将格式更改为 $\times 10^{-2}$。有没有简单的方法可以做到这一点?虽然我对此有点怀疑...

答案1

包裹siunitx可能对您来说是一个解决方案,但它需要对excel2latex输出进行一些调整,我将在下面进行解释。siunitx定义一种特殊的列类型,S用来代替通常的lcr规范。

然后将每个单元格条目作为命令siunitx的参数\num{},该命令接受科学计数法输入为 1.00E-02。

此解决方案的一个行为是siunitx将列围绕小数点分隔符居中。siunitx尝试巧妙区分什么是文本/标题,什么是数字数据。但任何可能被误认为是数字数据的内容(在您的示例中,第一行,我假设其中包含标题)都应该用花括号保护起来。

因此,要将此解决方案应用于excel2latex输出,您必须:

  1. siunitx在文档前言中加载包,
  2. 对于环境开头包含数值数据的列,将列说明符从c(或lr)更改为stabular
  3. 使用花括号保护任何不应在小数点分隔符处对齐的非数字数据{}

一个例子:

前:

\begin{tabular}{cc}
1 & 2 \\
1.00E-02 & 1.05E-03 \\
\end{tabular}

后:

\begin{tabular}{SS}
{1} & {2} \\
1.00E-02 & 1.05E-03 \\
\end{tabular}

完整代码和输出:

\documentclass{article}
\usepackage{siunitx}

\begin{document}
\begin{tabular}{SS}
{1} & {2} \\
1.00E-02 & 1.05E-03 \\
\end{tabular}
\end{document}

在此处输入图片描述

可以对S列的对齐和间距进行许多调整。如果您认为此解决方案对您可行,您可以咨询包装手册(第 4.6 节)了解详情。

答案2

字面答案可能需要在 Excel 中编写一些公式。假设单元格 B2 中的数值为 1.05E-3,您可以使用以下公式提取尾数和指数(通过在 Excel 中以科学格式获取指数和尾数):

  • 指数(单元格 F2):=INT(LOG(B2))
  • 尾数(单元格 E2):=B2/10^F2
  • 格式化文本版本(单元格I2):="$"&TEXT(E2,"0.00")&"\times 10^{"&F2&"}$"

但这里有一个更简单的替代答案,使用siunitx封装及其 S 列类型(第 4.6 节):

\documentclass{article}
\usepackage{siunitx}
\begin{document}
\begin{tabular}{SS}
1.00E-02 & 1.05E-03
\end{tabular}
\end{document}

在此处输入图片描述

相关内容