我有以下带有嵌入 LaTeX 方程的 Markdown 片段:
# 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 并使用 xelatex 进行编译时,我得到了具有良好渲染数学效果的预期文本。当我使用 pandoc 将其转换为 MS Word 时
pandoc test.text -o test.docx
并在 MS Office Word 2007 中打开它,我得到以下内容:
只有方程中符号或直立文本的部分才能正确呈现,而斜体变量名称则被框中的问号替换。
我怎样才能做到这一点?
在 Word 2007 中,我看到的结果与您的类似,只是在这里,我没有看到“框中的问号”字符,而只是看到空格。
如果我然后采用其中一个表达式,并使用线性显示和返回的技巧,则该表达式的字符会重新出现。
如果我保存并重新打开,其他表达式仍然无法正确显示,但如果我保存并查看 XML,我注意到
- Math 字体已更改为 Cambria Math
- 附加运行参数 (w:rPr) XML 指定 Cambria Math
字体已插入到 oMath 内的许多运行 (w:r) 中
元素,即使在不显示的 oMath 表达式中
正确。但是,在现在显示的 oMath 表达式中
正确的是,这个额外的 XML 已应用于每次运行。在里面
其他人,它只应用于某些运行(我想我可以看到
模式,但我现在已经没有时间了......)
- 如果我手动将 XML 添加到其他运行并重新打开
文档中,表达式正确显示。或者至少,他们在
我试过的一个案例。
由于 Word 2010 可以正确显示结果,因此我只能假设它不依赖于这些显式字体设置,而 Word 2007 则依赖于这些显式字体设置。这还不能真正帮助您,因为更改所有这些 w:r 元素会比您已经在做的事情更加困难。但可能需要设置默认样式/字体,无论是在 XML 层次结构中较高的位置,还是 .zip 中的其他位置(可能在 fontTable.xml 或 styles.xml 中)。我对 Word 的 XML 结构不太熟悉,无法猜测可能缺少什么(如果有的话),但明天也许可以看看。
我想另一种可能性是,您只需要拥有所有这些额外的 rPr 元素即可在 Word 2007 中工作,这表明 pandoc 可能是为 Word 2010 而不是 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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)