Ms word pandoc生成的docx未命中等式中的斜体变量

Ms word pandoc生成的docx未命中等式中的斜体变量,ms-word,latex,pandoc,Ms Word,Latex,Pandoc,我有以下带有嵌入乳胶方程式的降价部分: # Fisher's linear discriminant \newcommand{\cov}{\mathrm{cov}} \newcommand{\A}{\mathrm{A}} \renewcommand{\B}{\mathrm{B}} \renewcommand{\T}{^\top} The first method to find an optimal linear discriminant was proposed by Fisher (19

我有以下带有嵌入乳胶方程式的降价部分:

# Fisher's linear discriminant

\newcommand{\cov}{\mathrm{cov}}
\newcommand{\A}{\mathrm{A}}
\renewcommand{\B}{\mathrm{B}}
\renewcommand{\T}{^\top}

The first method to find an optimal linear discriminant was proposed by Fisher
(1936), using the ratio of the between-class variance to the within-class variance
of the projected data, $d(\vec x)$, as a criterion. Expressed in terms of the
sample properties, the $p$-dimensional centroids $\bar {\vec x}_\A$ and
$\bar {\vec x}_\B$ and the $p \times p$ covariance matrices
$S_A = \cov_i ( \vec x_{\A i} )$ and $S_B = \cov_i ( \vec x_{\B i} )$, the
optimal direction is given by 
$$
\vec w = \left ( \frac{ S_A + S_B }{2} \right ) ^{-1}
~ ( \bar {\vec x}_\B - \bar {\vec x}_\A ).
$$
当我用pandoc将其转换为LaTeX并用Xeletex编译它时,我会用漂亮的数学渲染得到预期的文本。当我使用pandoc将其转换为MS Word时

pandoc test.text -o test.docx
在MS Office Word 2007中打开它,我会得到以下信息:

只有方程中的符号或竖直文本部分才能正确呈现,而斜体的变量名将替换为方框中的问号


我怎样才能做到这一点呢?

如上所述,Windows没有Lucida Grande字体,因此用Cambria Math替换Math字体应该可以

  • test.docx
    重命名为
    test.zip
  • vim test.zip
    并选择
    test/word/settings.xml
  • 查找并将
    Lucida Grande
    更改为
    Cambria Math
  • 将zip保存并重命名为docx。这会导致类似的结果

  • 然后,您还可以将该文件作为一种docx模板提供给pandoc。

    在Word 2007中,我看到的结果与您的类似,只是在这里,我没有看到“框中的问号”字符,只有空格

    然后,如果我使用其中一个表达式,并使用您的“线性显示”和“返回”技巧,则该表达式的字符将重新出现

    如果保存并重新打开,其他表达式仍然无法正确显示,但是如果保存并查看XML,我会注意到

  • 数学字体已更改为Cambria Math
  • 指定Cambria数学的附加运行参数(w:rPr)XML 字体已插入oMath内的许多运行(w:r) 元素,即使在oMath表达式中也不显示 正确地但是,在现在显示的oMath表达式中 正确地说,此额外的XML已应用于每次运行。在 其他的,它只适用于一些跑步(我想我可以看到 但我现在没时间了……)
  • 如果我手动将XML添加到其他运行并重新打开 文档中,表达式将正确显示。或者至少,他们是这样做的 我试过的一个案子
  • 由于Word 2010正确显示结果,我只能假设它不依赖于这些显式字体设置,而Word 2007依赖于这些显式字体设置。这还不能真正帮助您,因为更改所有那些w:r元素将比您已经在做的事情更加困难。但也有可能需要设置默认样式/字体,可能是在XML层次结构中较高的位置,也可能是在.zip中的其他位置(可能是在fontTable.XML或styles.XML中)。我对Word的XML结构不够熟悉,猜不出可能缺少什么,但明天可以看一看

    我想另一种可能性是,你只需要有所有这些额外的rPr元素就可以在Word2007中工作,这意味着pandoc可能是为Word2010编写的,而不是2007。(我对工具一无所知)

    举个例子,你有

    <m:r>
      <m:t>(</m:t>
    </m:r>
    
    
    (
    
    你需要的是

    <m:r>
      <w:rPr>
        <w:rFonts w:ascii="Cambria Math" w:hAnsi="Cambria Math" />
      </w:rPr>
      <m:t>(</m:t>
    </m:r>
    
    
    (
    
    为了解决字体问题,我采取了以下措施:

  • 创建一个新的空word文档
  • 将所有内容复制到新文档中
  • 选择匹配源格式

  • 你的输入在Mac OS X上的pandoc 1.12.2上对我有效。你能发布一个指向你得到的word文件的链接吗?这是我的:@mb21谢谢回复!如果我用word打开你的docx,它看起来和我的完全一样。所以可能是我复制/安装word的问题,而不是文件的问题。顺便说一句。我找到了一个解决方法:我可以将word中的公式显示切换到“线性”然后回到“专业”,所有的符号都出现了。-这是我的:哦,好吧,这就是你的医生在我的Word on Mac上的样子:我想它可能有助于使用最新版本的pandoc…@mb21啊,不,这只是犯了一个错误;我省略了最后一个”$$"。我已经更新了文件,请再试一次。啊,现在看起来和我的一样。这些问号通常在所选字体没有该字符时出现。您是否安装了字体
    Cambria Math
    ?我仍然看不清楚所有内容,特别是因为Word生成的XML很难阅读,但您肯定是正确的t跟踪。我将尝试看看对pandoc使用的reference.docx的更改是否会在没有技巧的情况下使其消失。也许我会提交一份错误报告。如果您碰巧发现更多信息,请更新答案。无论如何:非常感谢!我已经进行了广泛的查看,但目前我找不到任何其他方法来避免所有这些单独的w:rPr sett我希望更改settings.xml中mathPr下的元素dispDef可能会有效果,但事实并非如此。我尝试过的其他事情都没有(以防万一!)例如,将Cambria Math添加到fontTable.xml中会产生任何效果。这不起作用。我的问题与OP相同,但pandoc生成的文件中定义的数学字体是Cambria Math。