ms-word - 有没有一种健全的方法可以从 Asciidoc 或 Markdown 等轻量级标记格式生成 Word 或 OpenOffice 文档?
问题描述
我目前正在大学写论文。大学和我指定的导师都要求论文:
- 采用 MS Word 文档格式,即。
doc
或者docx
- 开头包含一些正式的样板文件,其模板只能以上述格式提供——标题页、论文原创性的正式声明等,并且在布局、字体等方面必须完全遵循这些模板
- 以特定大小使用特定字体(确切地说是 Times New Roman 12pt)
- 满足其他文体要求(段落必须在开头使用制表符缩进)
作为一名程序员,我被现代纯文本编辑器宠坏了,多年来一直在避免使用 WYSIWYG 编辑器,比如 Word 或 LibreOffice Writer,就像瘟疫一样——做任何比填写表格更复杂的事情都是对这种工具的折磨,就像我往常一样最终与编辑抗争,而不是专注于我正在写的内容。更改一个段落的样式可能会更改所有段落,添加一个字符或行太多可能会破坏整个复杂的布局并将文本散布在一个页面的两页上,这是一种非常不直观和令人沮丧的体验。像 ODT 或 DOC 这样的压缩格式也不是 VCS 友好的,这是一个缺点,因为我希望能够在 Git 存储库中保留一份副本并查看可读的差异。
由于我的论文将是关于软件的,我可能需要内联等宽部分、互联网资源链接和代码列表块,最好使用适合语言的语法突出显示。在 LO 或 Word 中手动执行这些操作将非常乏味、重复且容易出错。Asciidoc 似乎非常适合我的用例,但是既不支持 ODT 也不支持任何与 Word 兼容的格式作为 asciidoctor 输出目标。Markdown 也是可以接受的,尽管它缺乏手动标记分页符的能力。
有没有人将 Asciidoc 或 Markdown 转换为 DOCX、ODT 或兼容格式的经验?现在我正在认真考虑编写我自己的纯文本/浅色标记→ FODT(平面 XML ODT)转换器,然后手动将其输出转换为 DOCX,因为与学习如何使用所见即所得相比,我很可能花费更少的时间有效地编辑。
切线,有没有办法以编程方式合并两个 DOCX 或 ODT 文档?如果是这样,我可以手动填写样板模板,然后将它们正确地加入到文档中。
解决方案
听起来你喜欢pandoc:
Pandoc 是一个用于从一种标记格式转换为另一种标记格式的 Haskell 库,以及使用该库的命令行工具。
Pandoc 可以在多种标记和文字处理格式之间进行转换,包括但不限于各种风格的 Markdown、HTML、LaTeX 和 Word docx。有关输入和输出格式的完整列表,请参阅下面的 --from 和 --to 选项。Pandoc 还可以生成 PDF 输出:请参阅下面的创建 PDF。
Pandoc 的 Markdown 增强版包括表格语法、定义列表、元数据块、脚注、引文、数学等等。请参阅下文 Pandoc 的 Markdown。
推荐阅读
- python - 尝试修改全局变量时出现“名称错误:名称未定义”
- powerbi - Power Bi 中的行级安全性有多安全?
- ruby-on-rails - 为什么终端找不到我的 Ruby 文件?(初学者)
- php - Laravel - 如何更新包含文件输入类型的表单
- python - 如何检查这些是否没有使用 cvlib 检测到人脸
- node.js - 建议我使用 nodejs 中的 Web 套接字进行私人消息传递的资源
- python - 我如何从 sqlite3_table WHERE column_name IN 变量元组中选择?
- c# - MSBuild,我可以获取 UsingTask 输出并在复制任务中使用它吗?
- html - 如何使用静态字符串为分层有序列表项编号添加前缀
- java - 确认安装了 java 11 后,Ubuntu Java 应用程序找不到命令 javac