本文介绍了从obsidian中导出论文草稿。

发表论文离不开协作,目前来说绝大部分人使用的文档编辑工具是 word。包括绝大部分杂志社投稿的模板也是 word。所以 obsidian 作为个人知识库工具,必须要能够提供导出为 word文档的功能,不然就会给协作带来不便。

所以在我的设想中,内容和排版是分开的,而且仅有在最后要投稿的时候,整个工作流从内容转变到排版。在内容生产和组织上,obsidian能够产生累积效应,从长远看更加方便高效;而论文投稿排版这种事情,必须得用word或者 latex来完成。

所以当你的工作进入到投稿阶段。就需要不断地导出为word文档,发给你的合作伙伴,让他们在word文档上修改和批注。

我之前使用的是基于 pandoc 的技术方案来导出 word 文档,会按照模板文件(template.docx),引文格式文件(*.csl)还有文献条目 bib 文件来实现 markdown 到 docx 的转换,并且帮你插好引文列表。这个是类似 LaTex 的路数,但对于目前的工作流来说,存在大量多余的地方,因为最后还是要转到 word。

我的核心思想是,要足够简单。所以根据实际体会,自定义了一个word草稿模板样式:

  • 仅包含标题,段落,插图和引文列表四个部分
  • 中文字体为宋体,英文字体为 Times New Roman
  • 字号默认为小四(12号)
  • 默认行距为 1.5 倍,标题为 2.0 倍
  • 引文列表中必须包含标题,期刊名,发表年份和 DOI (方便重新插文献)

作为一份草稿,事实上包含了上述内容和基本样式,就成为了适合于不断迭代修改的文档了。

因为样式足够简单,我就不需要依赖那么多外部的工具和文件,直接通过后台 python 代码,基于 python-docx 模块就能实现(若无此模块可 pip 安装)。

代码部分,基于为本obsidian模板库封装好的对象来对页面内容和插图附件进行处理,并且利用缓存的 Crossref查询文献记录提取所需文献条目信息。最重要的是这里充分展示了对 python-docx 模块的单独使用,如果后面还有什么文档处理自动化的工作,也是不错的借鉴。

在obsidian模板库中,我统一使用 shell commands 插件来调用后台的 python脚本。并且为这个导出为docx的调用命令设置了快捷键。如果后面快捷键太多了,再利用 buttons 插件制作按钮。

好了,这些事情不是用户们该费心神的,如何写好一篇论文才是关键,这里推荐一篇不错的文章[[@gt676d]],学习大佬们的论文写作方法。

代码

具体代码如下:

该部分仅登录用户可见

效果

最后修改:2024 年 08 月 21 日
请大力赞赏以支持本站持续运行!