pandoc-crossref可以很方便地进行交叉引用,在Github下载对应pandoc的版本:
pandoc-crossref-release
找好下载exe就可以了。可能踩的一些坑可以看这个博客,我用它解决了找不到pandoc-crossref可执行文件的问题(你需要把pandoc-crossref放在Markdown文档的目录下):
Windows下用pandoc将LaTex转成Word——使用错误总结
我参考使用Markdown搭配Pandoc撰写学术论文的详细指南文章的设置,发现图和表的标题并不能正常替换,导出pdf显示还是默认的Figure和Table
c pandoc --filter pandoc-crossref --citeproc --bibliography=test.bib -M chapters -M figureTitle="图" -M figPrefix="图" -M tableTitle="表" -M tblPrefix="表" test.md -o test.docx
这样设置其实解决的是引用的问题,但是很明显图和表的标题还是没有变化。于是上网查资料看怎么解决,其实还是官方的文档最靠谱,还有github的issue。
方法1
我用的这个帖子的方法:
figureTitle and tableTitle seemingly ignored in XeLaTeX builds #256
在yaml里设置:
直接到issue里figureTitle and tableTitle seemingly ignored in XeLaTeX builds #256复制命令修改一下吧,csdn不能显示`,会识别成代码块
按照官方文档的说法可以在根目录下建立一个.pandoc-crossref的文件夹,然后在里面创建一个yaml文件:
在里面把上面的东西copy进去,但不需要加---
。官方文档说pandoc导出的时候自动添加---
。
使用的是windows系统,根目录是C:/User/Username/
。
pandoc输出的命令(每次都不用重新配置,比较方便):
-s --from markdown --template eisvogel --listings --pdf-engine=xelatex -V CJKmainfont="Microsoft YaHei" --filter pandoc-crossref -M "crossrefYaml=$HOME/pandoc-crossref-es.yaml"
使用eisvogel 模板输出看我以前的文章:
VSCode vscode-pandoc插件将中文Markdown转换为好看的pdf文档(使用eisvogel模板)
输出效果:
方法2
另外这个比较早的issue也可以用,在文档里也可以添加测试过了:
figureTitle doesn’t work with PDF output
bash \renewcommand{\figurename}{图} \renewcommand{\tablename}{表}
不过作者说要放在metadata(yaml)后面,正文前面。
不能设置在yaml里,每次就都要重新写一遍,比较麻烦,还是方法1比较好。
最后附上其他有用的资料:
[1] pandoc-crossref
[2] 用pandoc生成大型中文文档的痛点与解决方案