在 Microsoft Word 中,有两种显示公式的方法;内联和显示。内联方程与文本一致(顾名思义),因此方程和文本可以混合使用。一个显示方程出现在它自己的行上并自动居中,如下所示:
这是三个独立的等式,但由于它们被设置为显示模式,它们都显示为居中并在自己的行上。如果它们的模式更改为内联,它们都出现在同一行而不是居中:
我的问题是 LibreOffice 使用内联模式显示所有方程,即使它们在 docx 文件中设置为显示模式。如果我使用显示模式方程 Word 创建第一个示例,保存它,然后在 LibreOffice 中打开它,这些方程看起来就像是内联模式:
是否可以更改设置以使显示模式方程式在自己的行上并居中,就像在 Word 中一样?由于我拥有大量的 Word 文档,我宁愿不单独修改这些文档。
如果没有,是否有替代文字处理器可以正确显示方程式?
在 LibreOffice 中插入公式时
As Character
,默认情况下会锚定。这意味着它的行为与角色相同。因此,我们将其视为具有三个字符的相同方式,例如“abc”而不是三个方程。
现在,所有三个方程都集中在不同的行上。
这是“abc”示例的这些说明的结果,显示公式的行为与字符相同。(按Enter自动更正为大写“A”)。
要使其在 MS Word 和 LibreOffice 中都能正常工作,或许只能使用Inline设置。但是,我没有 MS Word 的副本来验证这一点,并且 Word Online 无法编辑公式(但如果您需要的话,可以显示它们)。
有没有像 MS Word 那样使用显示公式设置的替代文字处理器?很有可能;有许多选择,无论是付费的还是免费的。但是,无论您选择什么替代方案,都会存在某种不兼容。
我已经接受不太可能有用于 Linux 的具有此功能的文字处理器,因此我决定通过创建 Ruby 脚本来自动化 Jim K 的回答。
问题的根源在于 LibreOffice 忽略了
m:oMathPara
XML 元素,这也是 Word 将显示模式方程式包装在其中以使其居中并将其放在自己的段落中的原因。下面的 Ruby 脚本使用 Nokogiri XML 解析库来替换所有出现的
m:oMathPara
标准w:p
段落,这些段落也被格式化为居中对齐。它执行以下操作:/tmp
、解压缩并打开document.xml
m:oMathPara
元素w:p
用格式化的元素替换它们/tmp
这还没有经过太多测试,因此您应该备份您使用它的所有文件以防万一。请注意,它仅适用于 Linux,并且需要
unzip
安装该工具。(如果你没有它,它就在宇宙中:sudo apt install unzip
。)你可能也需要gem install nokogiri
。