前置条件
Note
PaperBell 的导出工作流使用:
40 - Obsidian/脚本/pandoc/defaults/pdf.yaml
的 pandoc 参数40 - Obsidian/脚本/pandoc/templates/eisvogel.latex
的 pandoc 模板40 - Obsidian/脚本/pandoc/filters
路径下的 pandoc 过滤器
因此,订制自己的导出模板可以从以下三个方面入手:修改 Pandoc 参数、修改 LaTeX 模板、修改过滤器。
修改 Pandoc 参数
Pandoc 文档转化的瑞士军刀,可以说是最流行的文档转化方案。不仅可以转化 .pdf
,还可以处理很多其它格式,如 .docx
。而它在转化为 PDF
的时候核心也是用了 LaTeX
做中转,所以爱折腾的话也能弄出漂亮格式。而且你可以自由选择编译模板、编译方式等等,所以 PaperBell
这里使用 Pandoc 作为输出工具。
这里介绍一下相关参数,以便用户做定制:
--defaults
参数:使用什么参数,PaperBell
提供了一个参数文件40 - Obsidian/脚本/pandoc/defaults/pdf.yaml
,你也可以使用你自己的参数文件,存放在40 - Obsidian/脚本/pandoc/defaults
文件夹中,然后使用--defaults=<参数文件名>
命令来调用。--data-dir
参数:从哪里读取Pandoc的数据文件(如模板),PaperBell提供了一个文件夹供参考,你也可以使用你自己的文件夹路径,或删掉该参数,以使用默认值。--resource-path
参数:资源路径,可以设置多个。${currentDir} 指的是当前文件夹,PaperBell 默认从以下位置找你的附件:(1) 当前文件夹 (2) Obsidian Vault 的附件文件夹 (3) 当前文件夹下的 “img” 或 “imgs” 文件夹--template
参数:使用什么模板,PaperBell
提供了一个模板eisvogel
,你也可以使用你自己的模板,存放在40 - Obsidian/脚本/pandoc/templates
文件夹中,然后使用--template=<模板名>
命令来调用。--reference-section-title
参数:参考文献小节的标题,默认是References
。--listings
参数:允许处理代码块格式。--number-sections
参数:小节标题是否带序号。
修改 LaTeX 模板
PaperBell
提供的导出模板是基于流行的 pandoc-to-latex 模板 eisvogel 改编的中文适配版。
建议用户在 40 - Obsidian/脚本/pandoc/templates
文件夹中,创建一个 eisvogel.latex
文件,然后复制 eisvogel.latex
文件中的内容到 eisvogel.latex
文件中,然后根据需要修改。
编辑完成后,在 Enhancing Export
插件中,添加新的默认命令,调整命令行参数以使用你自己的模板。
参数建议基于 PaperBell
的模板修改。
--defaults="${vaultDir}/40 - Obsidian/脚本/pandoc/defaults/pdf.yaml" --resource-path="${currentDir}" --resource-path="${currentDir}/imgs" --resource-path="${attachmentFolderPath}" -o "${outputPath}"
上述命令中,最重要的参数是 --defaults
它指定了 Pandoc 的参数文件,默认是 40 - Obsidian/脚本/pandoc/defaults/pdf.yaml
。你应该复制这个文件,设定为你的参数文件,然后修改其中的参数,其中最重要的参数是 --template
,它指定了 Pandoc 的模板文件,默认是 eisvogel
,你应该修改它为你的模板文件路径。
其它参数里:
${vaultDir}
指的是 Obsidian Vault 的目录${currentDir}
指的是当前文件夹${attachmentFolderPath}
指的是附件文件夹${outputPath}
指的是输出文件夹
Tip
更多的可用变量可以参考 Enhancing Export 插件的相关文档。
修改过滤器
在 40 - Obsidian/脚本/pandoc/filters
文件夹中,我们提供了一些过滤器,可以用来修改导出文档的格式。你可以根据自己的需要修改这些过滤器。大多数过滤器都是来自 obsidian-pandoc-filters
库 的,但 link
和 mute
过滤器是我们修改和新增的实现。
过滤器的应用顺序也很重要,PaperBell
应用过滤器的应用顺序在 pandoc 参数文件中指定:
filters:
- PATH/mute.lua
- PATH/image.lua
... # 其它过滤器
Tip
通常意味着你要引用参考文献,那么
pandoc-crossref
和citeproc
过滤器通常是必须的,它们可能需要额外配置。参考文献的路径也应该在40 - Obsidian/
目录下,命名为mybib.bib
。
上述命令中,PATH
指的是过滤器文件夹的路径,PaperBell 的过滤器文件夹路径是 40 - Obsidian/脚本/pandoc/filters
。
Warning
如果要修改
mybib.bib
的路径或者文件名,可以在 pandoc 参数文件中修改,但PaperBell
的其它功能也可能需要修改。
相关链接
- 可以导出 Mermaid 图表的过滤器:Mermaid Filter
- Obsidian 导出论文的配置教程:Obsidian Tutorial for Academic Writing