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 遗漏了方程中的斜体变量 的相关文章

  • 从 C# Windows 窗体在 MS Word 中打开 MS Word 文档

    我希望能够通过单击表单上的按钮 从 C 表单中打开 MS Word 中已制作的 Word 文档 但不知道如何操作 请帮忙 Thanks 上次我使用 Excel 时 我使用以下代码打开它 Process Start FileLocation
  • includepdf 将文档堆栈覆盖在一页上

    我正在尝试使用以下方法在文档中包含 PDF includepdf 问题是 Latex 将 pdf 的所有站点放在文档的一页上 彼此重叠 我对此有点迷失 没有找到任何解决方案 begin figure H includepdf landsca
  • 如何从java/或命令行使用/m“宏参数”打开word文档而不指定winword.exe路径

    我想做接下来的事情 String cmd cmd c c Program Files x86 Microsoft Office Office12 WINWORD exe mOpenPage c Navodilo doc Process pr
  • 使用python向docx文件添加标头

    我有数百个 Word 文档 需要为其添加特定页眉 如典型的 MS Word 页眉 页脚 并不是说需要修改标题 只是这些文档不包含标题 有没有办法使用 Python docx 模块来做到这一点 我最近发现了它 它看起来很有希望 如果用户没有
  • LaTeX:从第二行缩进

    我想从第二行缩进 我想用 LaTeX 写这样的东西 Lorem ipsum dolor sit amet consectetur adipiscing elit Proin eu tempor velit Fusce accumsan ul
  • 如何使用 apache poi 将 .docx 转换为 .doc

    我需要知道如何转换 docx to doc using apache poi 也许使用XWPFDocument HWPFDocument课程 如果无法实现 请提供替代解决方案 使用 LibreOffice 通过 JODConverter 驱
  • 是否可以从C语言函数写入word文件?

    我有一个用 C 语言编写的图书馆管理系统 其中有 I O 文件 dat 如何从该函数中获取word文件的输出 void viewbooks void show the list of book persists in library int
  • Sympy - 分数操作

    我基本上希望 Sympy 生成乳胶代码 frac x 1 3 y 但每当我要求它生成事物的 Tex 组件时 Sympy 总是返回 frac x 3 frac 1 3 如何避免分解方程 并将等于运算符分配给另一个变量 我还没有尝试将 y 部分
  • rmarkdown:pandoc:找不到 pdflatex

    当我在 Mac 上使用 render rmarkdown 从 Rmd 文件生成 pdf 文件时 出现错误消息 pandoc pdflatex not found pdflatex is needed for pdf output Error
  • 设置rgl设备的大小

    我的 rgl 设备的全屏 非全屏有问题 目前我使用R 3 00 我将 persp3d 图 库 rgl 绘制到我的设备中 它在一个非常小的窗口中打开 R代码 persp3d x y z theta 50 phi 25 expand 0 75
  • 在 Ruby 中创建 Microsoft Word (.docx) 文档

    有没有一种简单的方法可以在 Ruby 应用程序中创建 Word 文档 docx 实际上 就我而言 它是一个由 Linux 服务器提供服务的 Rails 应用程序 类似的宝石Prawn http prawn majesticseacreatu
  • 在 Word 2010 中复制形状而不使用 .Select?

    是否可以在 Word 2010 中复制形状而无需借助 Select 根据开发中心 http msdn microsoft com en us library office ff835500 aspx the Anchor属性返回形状的锚定范
  • iPython 笔记本上的内联数学模式

    在 iPython 笔记本中 我如何编写数学公式 例如r 2在一行中 乳胶词汇中的内联数学模式 IE 打印公式的时候可以不换行吗 如果像在 LaTeX 中一样 它应该是 r 2 但它不起作用 感谢您的帮助 在 Markdown 单元格中 您
  • 如何在 Matplotlib 中编写自己的 LaTeX 序言?

    我正在尝试创建一个数字matplotlib插入我的LaTeX文档 我需要粗体 i and j 没有圆点和帽子的符号 我一直在使用代码 mathbf hat textnormal bfseries i 在我的文档中 但由于这使用了amsmat
  • Office JavaScript API:突出显示文档中的文本

    我正在使用 Microsoft Office JavaScript API 开展一个业余项目 我一直依赖着文档 https learn microsoft com en us office dev add ins reference jav
  • pdflatex: \includegraphics{} -> 找不到文件

    首先 我知道这个问题已经存在了成百上千次 但我在过去四个小时内找到的给出的答案都没有解决我的具体问题 我在这里变得疯狂 我将非常感谢任何帮助和建议 尝试编译一个非常简单的 tex 文件 其中包括 包括图形命令 我最终收到 文件未找到 错误
  • 在 Java 中生成 LaTeX 输出 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有用于从 Java 生成 LaTeX 输出的 Java 库 渲染乳胶 JLatex数学 https
  • 将表行从 Word 文档复制到现有文档表特定单元格

    我正在寻找一个宏 它将内容从一个 Word 文档中的表格复制到另一个现有 Word 文档中的表格到特定单元格中 从第 5 行开始 复制后面的所有行并将其粘贴到现有文档中的第 5 行 这可能吗 在此输入图像描述 https i stack i
  • 使用 JavaScript 进行 HTML 到 MS Word 的页眉和页脚转换

    Am rendering my whole HTML page into MS word Here I tried by referring this link below https phppot com javascript how t
  • Matplotlib mathtext:刻度标签中的字形错误

    当使用默认值时 我在 matplotlib 2 0 2 中渲染数学时观察到错误mathtext https matplotlib org 1 5 1 users mathtext html mathtext tutorial与LaTeX h

随机推荐