表格:从 Word 到 LaTeX

表格:从 Word 到 LaTeX

这个问题可能以前有人问过,但答案并不能让我满意。事情是这样的。我在 Word 中准备了一个统计表,其中星号表示显著性水平,标准误差在括号中的系数下。

我调用了宏excel2latex,我知道如何让它工作,这样我就可以获得 TeX 表。问题是,当我将表格(已准备好)从 Word 复制并粘贴到 excel 中时,括号消失了。我不希望发生这种情况,因为我必须再次完成这项工作。

是否有任何 Word 宏可以生成像 Excel 中的 TeX 表?

简单来说,问题在于:

\documentclass[12pt,a4paper]{article}
\usepackage[utf8x]{inputenc}
\usepackage{ucs}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{makeidx}
\usepackage{graphicx}


\begin{document}
From Word something like this 

\begin{tabular}{|c|c|}
\hline var & 0.045*** \\ 
\hline  & (0.005) \\ 
\hline 
\end{tabular} 

when copied in Excel becomes this monstrosity where the standard error appears to be negative:

\begin{tabular}{|c|c|}
\hline var & 0.045*** \\ 
\hline  & -0.005 \\ 
\hline 
\end{tabular} 

\end{document}

答案1

看来您的 Excel 设置为将括号中的数字视为负数。可能有一个设置可以禁用此功能。但这是另一个网站的问题。

但是,你可以在 LaTeX 中通过使用以下方法修复此问题包裹collcell以自动将负数转换为使用括号,如第二张表所示。如果内容以 a 开头-并以 a 结尾,*我们不放括号,但在数学模式下插入负号。

在此处输入图片描述

笔记:

  • 我用了包裹xstring查看字符串是否以 开头-,如果是,则-删除 ,然后全部的数量用括号括起来。如果需要,没有这个包可能也可以。
  • -对于文本以 开头并以 结尾的情况*,我使用了$-$\StrBehind{#1}{-}而不是 ,$#1$因为后者会导致 内出现额外的间距*

代码:

\documentclass{article}

\usepackage{collcell}
\usepackage{xstring}
\newcommand{\MyNumberFormatter}[1]{%
    \IfBeginWith{#1}{-}{%    This begins with a negative sign
        \IfEndWith{#1}{*}{%  Ends with a * so it is a coefficient.
            $-$\StrBehind{#1}{-}%
        }{%
            (\StrBehind{#1}{-})%
        }%
    }{%
        #1%
    }%
}
\newcolumntype{C}{>{\collectcell\MyNumberFormatter}{l}<{\endcollectcell}}

\begin{document}
From Word something like this 

\begin{tabular}{|c|c|}
\hline var & 0.045*** \\ 
\hline  & (0.005) \\ 
\hline 
\end{tabular} 

when copied in Excel becomes this monstrosity where the standard error appears to be negative:

\begin{tabular}{|c|C|}
\hline var & 0.045*** \\ 
\hline  & -0.005 \\ 
\hline   & -0.045*** \\ 
\hline 
\end{tabular} 

\end{document}

相关内容