目的:
用自己中意的 Markdown 编辑器来写论文初稿,使用 Zotero 来管理大量参考文献,然后论文转换成 Office Word 文档让老师们查看。当 Markdown 内容并转换成 Word 格式后,所有引用都需要被 Zotero 插件正确识别且可以随时在 Word 中进行修改更新。
步骤:
-
安装Typora(0版本免费,1版本付费。下载太慢,可以使用镜像)、Zotero
-
Zotero 安装 Better BibTeX 插件 (为参考文献的引用和管理提供了一站式解决方案)
-
安装 Pandoc (把 Markdown 格式的文本用高度可定制的方法转换为 PDF 或者 Word 格式文档)
-
引用文献
🍆 Zotero 设置 citation key 的格式:通用的 Citekey 格式为[auth:lower][year]
,前半部分表示文章第一作者的小写姓氏,后半部分为文献年份,如果出现了重复,就会在后面添加a b c
或者数字进行区分。
🍎 修改 better bibtex 的 citation key 后,Zotero并不能自动刷新。需要手动刷新:
进主目录 "我的文库
",全选右侧的全部文献,右键选择Better Bibtex
->Refresh Bibtex Key
。
🍋 文献引用格式为:“这里需要引用文献[@CitationKey]
。”,需要引用多篇文献的话,使用英文分号隔开不同文献,例如, “这里需要引用多篇文献[@CitationKey1;CitationKey2]
。” -
脚注
在需要进行脚注的位置输入:[^脚注名字]
,另起一行,输入脚注的内容:[^脚注名字]:脚注内容
-
实现 markdown 转换 Word 时,对参考文献的支持:
下载 zotero.lua ,Better BibTeX 的作者写了一个 lua 脚本 zotero.lua,用来实现从 Markdown 到 Word 实时引用的格式转换。我们可以在 Markdown 文本中写入相关 元 数 据 \href{#metadata}{元数据} 元数据 ,或者在 pandoc 命令行中进行相关参数设置。
🍑 如果是 Zotero 个人 library , 没有什么特殊情况使用默认参数即可,直接在 cmd 中运行如下命令:pandoc input.md -s --lua-filter=zotero.lua -o output.docx
-
在生成的 word 文档中
refresh
,会让选择参考文献格式,之后再refresh
即可。 -
在 markdown 中插入分页符:
{=openxml}<w:p><w:r><w:br w:type= "page"/></w:r></w:p>
-
图、表、公式、章节的交叉引用(需要借助 pandoc-crossref.exe,提取码: go45 )
{#fig:id}
和[@fig:id]
、{#tbl:id}
和[@tbl:id]
、{#eq:id}
和[@eq:id]
、{#sec:id}
和[@sec:id]
🍈 Image labels:This only works on implicit figures, i.e. an image occurring by itself in a paragraph (which will be rendered as a figure with caption by pandoc)图在单独成段时才可用
🍓表格的引用方式为:在表的下方添加一行 ": 表名 {#tbl:表的标签}
"(冒号和表名之间以及表名和花括号之间一定要有空格) ,引用方式为:"吧啦吧啦吧啦,见[@tbl:表的标签]
"🥕此时文献转换使用到的命令为:
pandoc --filter D:/pandoc-crossref input.md -s --lua-filter C:/zotero.lua -o output.docx --reference-doc=thesis_ref.docx
-
参照模板格式生成 Word 文档,使用参数
--toc
可以在 Word 中自动生成目录。# 获取参考模板,命名为 custom-reference.docx pandoc -o template.docx --print-default-data-file reference.docx # 使用参数 \--reference-doc=FILE 指定格式参考文件,作为命令行的最后一个参数。
不能直接选中格式模板中的文字在开始工具栏修改,这种修改方式不会生效!
🍊 注意在修改 reference.docx 格式时,格式的修改方式为:
① 在标题处右键单击选择样式→最下方的 "应用样式
"(可拖拽至侧边栏)→点击修改
。
② 通过开始→多级列表(在段落配置框内)进行修改。
多级列表里修改的是前缀(如第一章)样式;应用样式里修改的是文本样式(如字体颜色)
🍍可供参考的 markdown 中 YAML metadata:
元文件内容需要在整个文件的首行开始输入
figureTitle: "图"
figPrefix: "图"
tableTitle: "表"
tblPrefix: "表"
autoEqnLabels: true
chapters: true
linkReferences: true
figLabels: roman
eqnPrefixTemplate: "公式 ($$i$$)"
name: ["章",""] # 索引越界时,表示最后一个元素
secHeaderTemplate: $$secHeaderPrefix[n]$$$$i$$$$name[n]$$ $$t$$
secHeaderPrefix:
- "第"
- ""
sectionsDepth: -1
numberSections: true
🥝主要参考:
使用 Zotero 在 Markdown 中优雅地处理参考文献
交叉引用: https://zhuanlan.zhihu.com/p/412302404
输出模板: https://www.cnblogs.com/kofyou/p/14932700.html
官网教程: http://lierdakil.github.io/pandoc-crossref/
pandoc手册: https://pandoc.org/MANUAL.html
问题浅谈
分享一下个人在使用过程中遇到的问题:
-
学习成本高
不熟悉 markdown、pandoc 等基本用法的话,需要花费较多功夫上手。
-
由 pandoc 生成的论文公式是 Word 自带的,无论是编辑修改,还是复制都比较麻烦,不如 Axmath 用的顺手。
-
给老师审阅,经常进行 markdown 和 Word 格式的转换,每次转换都需要在 Word 里更新参看文献,修改部分 pandoc 无法顾及到的格式,等等。
-
复制操作
源码模式下复制没有大纲,不好定位;公式不能渲染,阅读很不方便。即视模式下复制,对于包含图片、公式较多的段落,不好调控选中的范围。
-
没能探索出来如何在转换得到的 Word 中自动生成表录、图录。
-
Typora 编辑器目前的局限性(2022年04月13日)
① 随着字数的增多(2万+字),Typora 的编辑速度会明显变慢,源码模式下不会有影响,两种模式下编辑速度差异明显。
② 源码模式下复制时,光标位置容易莫名其妙的向上移动多行。