将 org 文件转换为带引用的 docx 文件

发布于 2024-03-17 21:10:31 字数 2844 浏览 16 评论 0

去年这个时候,我正在写一篇论文,有人要求我把论文以 .docx 格式交给的教授,以便进行注释。我当时并没有真正地把这个过程构建到我的工作流中(我总是先写 .org.tex 然后转换成 .pdf ),为此,我决定弄清楚如何实现这一转换。

现在导出成 .docx 对于 Org 模式来说并不是什么大问题,因为你可以导出成 LibreOffice 的 .odt 格式化并通过 LibreOffice 转换成 .docx

Org .odt 导出的问题在于它没有处理我的文献引用。它们只会以引用命令或类似的形式出现。我找到的解决方案是使用 pandoc 进行转换而且效果很好。但是它的设置选项非常繁琐,因此我在 bash 配置文件中创建了一个函数,这样我就可以使用 org2docx 命令轻松地完成这项工作。

注意:您也可以将其用于其他类型的文件(如 markdown)。我这里只关心 org 文件。

以下是我使用的步骤:

  • 首先,您需要安装 pandoc 。用 homebrew 安装很容易: brew install pandoc .
  • 你还需要安装 pandoc-citeproc : brew install pandoc-citeproc
  • 你需要 从 github 上下载.csl 文件 并将它们放在一个易于访问的目录中。
  • 我认为我 .docx 文件创建一个客户样式模板 reference.docx 是一个好主意。 此处有一篇相关的短文 。然后,你需要按照自己的喜好处理文件中的样式,并将其放在一个容易引用的位置。
  • 之后,用你喜欢的文本编辑器打开 ~/.bash_profile ,并添加以下函数(可能要修改有关选项,关于参数的讨论请参见下面):
  org2docx() {
      pandoc --bibliography`/path/to/your/bibliographyfile.bib --csl`/path/to/your/csl/chicago-fullnote-bibliography.csl --reference-docx=/path/to/your/reference.docx -i $1 -o $1-pandoc.docx
  }
  • 你需要运行 source ~/.bash_profile 来加载更改。

现在,您只需要运行: org2docx MyPaper.org 就能转换文档了,相当容易,不必再为那些选项费心了。以下是各种选项的作用:

  • --bibliography=/path/to/your/bibliographyfile.bib 指定文献文件的路径。因为我为所有的参考文献维护同一个 .bib 文件,因此不同的论文无需修改。
  • --csl=/path/to/your/csl/chicago-fullnote-bibliography.csl 指定 .csl 文件的路径。你可以从 Github 的 csl 文件中任何选择一个。
  • 你可以为 .docx 文件选择 chicago-fullnote-bibliograp-no-ibid.csl
  • --reference-docx=/path/to/your/reference.docx 是可选项, 但 pandoc 允许你自定义 .docx 风格. 比如,你可以让它看起来跟你的 LaTeX 风格很接近.
  • -i $1 -o $1-pandoc.docx-i $1 的意思是使用第一个参数作为输入文件, -o $1-pandoc.docx 的意思是它会输出一个文件名一致但添加了 -pandoc.docx 后缀的文件。
  • 如果你想在转换后自动打开 .docx ,只需要包含一个 open $1-pandoc.docx 文件即可。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

洋洋洒洒

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

我们的影子

文章 0 评论 0

素年丶

文章 0 评论 0

南笙

文章 0 评论 0

18215568913

文章 0 评论 0

qq_xk7Ean

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文