pandoc 生成的 docx 遗漏了方程中的斜体变量

2023-12-08

我有以下带有嵌入 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 screenshot

只有方程中符号或直立文本的部分才能正确呈现,而斜体变量名称则被框中的问号替换。

我怎样才能做到这一点?


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

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

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

  1. Math 字体已更改为 Cambria Math
  2. 附加运行参数 (w:rPr) XML 指定 Cambria Math 字体已插入到 oMath 内的许多运行 (w:r) 中 元素,即使在不显示的 oMath 表达式中 正确。但是,在现在显示的 oMath 表达式中 正确的是,这个额外的 XML 已应用于每次运行。在里面 其他人,它只应用于某些运行(我想我可以看到 模式,但我现在已经没有时间了......)
  3. 如果我手动将 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(使用前将#替换为@)

pandoc 生成的 docx 遗漏了方程中的斜体变量 的相关文章

  • 将表行从 Word 文档复制到现有文档表特定单元格

    我正在寻找一个宏 它将内容从一个 Word 文档中的表格复制到另一个现有 Word 文档中的表格到特定单元格中 从第 5 行开始 复制后面的所有行并将其粘贴到现有文档中的第 5 行 这可能吗 在此输入图像描述 https i stack i
  • LaTeX Beamer:改变子弹缩进的方法?

    我已经检查了Beamer Class手册 PDF文件 我不知道如何更改分配给 itemize 的缩进项目符号 这很重要 因为我使用 2 列幻灯片 并且我不希望投影仪占用太多的水平空间 Beamer 只是委托管理布局的责任itemize环境回
  • Word通过vba宏删除tabe列出现错误

    我想将excel中的数据复制到word表中 然后从表中删除一些列 我可以将数据复制到表中 但是当我删除列时会出现错误 无法访问此集合中的各个列 因为该表具有混合的单元格宽度 我的代码 Public Tbl1 As Table Sub cal
  • 从 markdown 转换为 pandoc 时的 \newcommand 环境

    我使用 ipython 笔记本输入数学 然后转换为乳胶 让 mathjax 理解 newcommand 我必须把它放进去 例如 newcommand cl operatorname cl 与 mathjax 配合良好 问题是 当我使用 pa
  • 如何在Word 2010中从SQL数据库检索数据?

    我想用 MS SQL 数据库中的数据填充 Word 文档 这可能吗 如果可能的话 如何实现 我过去曾通过多种方式做到这一点 这取决于用户是从 Microsoft Word 外部还是从 Microsoft Word 内部启动操作 From I
  • 是否可以使用 MS Visual Studio 作为 LaTeX 用户的 IDE?

    我是 Microsoft Visual Studio 的忠实粉丝 我喜欢代码折叠 自动完成 自动格式化等等 我想如果我能将 MS Visual Studio 用作 LaTeX 用户的 IDE 就好了 简而言之 可能吗 对于第一步 我认为让我
  • pandoc 文档转换失败,错误 67

    我使用的是 R 3 3 2 和 Rstudio 版本 1 0 44 这是我的 RMarkdown 文件的格式 title Sentiment Analysis output rmdformats material highlight kat
  • 如何在 Windows 8.1 上使用 Python 过滤器和 Pandoc 将带 tikz 的 md 转换为 html

    我正在尝试使用 Pandoc 过滤器将带有 tikz 图片的 markdown 文件转换为 html 我使用的是 Win 8 1 并且我拥有所有依赖项 pdflatex Python 2 7 ImageMagick 和 pandocfilt
  • 如何使用 C# 将表格粘贴到 Ms-Word 文档的末尾

    我有一个预制的 Word 模板 其中有一个表格 我想打开它 然后在文档末尾添加 粘贴 另一个表格 问题是它不会转到文档的末尾 而是将新表格粘贴到原始表格的第一个单元格中 任何帮助将不胜感激 previous code copied a ta
  • lua 和 walk_block 中的 pandoc 过滤器

    我正在尝试应用一个 LUA 过滤器 该过滤器只会更改文档的正文 而不影响元数据 而且比我想象的要难 过滤器应将文本添加到内联元素和块元素的前面和后面 如果它适用于内联元素 这里Code 对于块元素失败CodeBlock function P
  • 在 Linux 服务器上创建和编辑 MS-Word 文档?

    希望开发处理文档的服务器端应用程序 源文档大多是MS Word 2003 2007 即MS版本的Docx 希望服务器应用程序能够在linux或windows上运行 想知道在linux下读写MS Word文件最好的工具或库是什么 兼容性是最重
  • 如何通过VBA宏遍历Word文档中的文本

    我想通过宏来计算 Word 文档中的字符 我不知道如何获取 Visual Basic 宏中文本的两个参考并浏览它 我想计算文档中每个字符的数量 例如文档中 ABZBB A x 1 B x 3 Z x 1 Sub Macro1 Dim Box
  • VBA MS-Word:是否可以用通配符替换文本?

    是否可以替换使用通配符找到的文本并将其也替换为通配符 例如FindText 13 2 13 Forward True MatchWildcards True 然后用这样的通配符替换它replacewith 13 2 11 是否可以 评论中的
  • VBA Word - 更改小数点分隔符

    我周围的一些人在 Windows Office 中使用国家本地化 不幸的是 这导致我的宏无法执行简单的数学运算 因为它们使用逗号表示小数位置 而我编辑的 pov ray 文件仅使用逗号作为列表分隔符 使用点表示小数点 1 我知道在 Exce
  • 将 RMarkdown 文档编织为 Word 时方程式和引用丢失

    我不确定这个问题是否更适合LaTeX论坛 我将其发布在这里是因为我怀疑问题更多是关于knitr和 RMarkdown 相比于 LaTeX 我在 RStudio 中有以下 RMarkdown 文档 title Capricious Behav
  • 使用 OpenXML 在 Word 中插入换行符

    我正在使用 openxml WordProcessingDocument 打开 Word 模板并将占位符 x1 替换为字符串 除非我需要字符串包含换行符 否则这工作正常 如何将 x1 替换为可能包含 word 可以识别的换行符的文本 我已经
  • 如何更改 R Markdown HTML 文档中目录的颜色和属性?

    我花了很多时间谷歌搜索这个 但似乎无法弄清楚 我正在使用 R Markdown 制作 HTML 文档 文档在这里 http rmarkdown rstudio com html document format html http rmark
  • Office.js:插入行后表中的 ContentControl 损坏

    I m using Microsoft Word for Microsoft 365 MSO Version 2307 Build 16 0 16626 20170 64 bit which means that Word API is v
  • Word 2016 插件:检测文档保存

    我正在开发一个 Word 2016 插件 Word API Office js 我想知道是否可以在用户即将保存文档时收到通知 该文档作为 LOB 存储在应用程序的数据库中 在临时路径上提取并在 Word 中作为普通文件打开 我需要为 保存
  • 使用 VB.NET 检查 Word 文档中的字体样式

    我想使用vb net检查一个word文件 并检查文档中的样式是否正确 我必须在word文档中检查这些表达式 a Verdana 16 pt Bold Red b Verdana 12 pt Bold Italic Blue c Verdan

随机推荐