Markdown pandoc-crossref自定义图表前缀(解决figureTitle和tableTitle被XeLaTex忽略的问题 )

pandoc-crossref可以很方便地进行交叉引用,在Github下载对应pandoc的版本:

pandoc-crossref-release

找好下载exe就可以了。可能踩的一些坑可以看这个博客,我用它解决了找不到pandoc-crossref可执行文件的问题(你需要把pandoc-crossref放在Markdown文档的目录下):

Windows下用pandoc将LaTex转成Word——使用错误总结

Markdown pandoc-crossref自定义图表前缀(解决figureTitle和tableTitle被XeLaTex忽略的问题 )_第1张图片

我参考使用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 

Markdown pandoc-crossref自定义图表前缀(解决figureTitle和tableTitle被XeLaTex忽略的问题 )_第2张图片

这样设置其实解决的是引用的问题,但是很明显图和表的标题还是没有变化。于是上网查资料看怎么解决,其实还是官方的文档最靠谱,还有github的issue。

方法1

我用的这个帖子的方法:

figureTitle and tableTitle seemingly ignored in XeLaTeX builds #256

在yaml里设置:

Markdown pandoc-crossref自定义图表前缀(解决figureTitle和tableTitle被XeLaTex忽略的问题 )_第3张图片

直接到issue里figureTitle and tableTitle seemingly ignored in XeLaTeX builds #256复制命令修改一下吧,csdn不能显示`,会识别成代码块

Markdown pandoc-crossref自定义图表前缀(解决figureTitle和tableTitle被XeLaTex忽略的问题 )_第4张图片

按照官方文档的说法可以在根目录下建立一个.pandoc-crossref的文件夹,然后在里面创建一个yaml文件:

Markdown pandoc-crossref自定义图表前缀(解决figureTitle和tableTitle被XeLaTex忽略的问题 )_第5张图片
在里面把上面的东西copy进去,但不需要加---。官方文档说pandoc导出的时候自动添加---

Markdown pandoc-crossref自定义图表前缀(解决figureTitle和tableTitle被XeLaTex忽略的问题 )_第6张图片
Markdown pandoc-crossref自定义图表前缀(解决figureTitle和tableTitle被XeLaTex忽略的问题 )_第7张图片

使用的是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模板)

输出效果:

Markdown pandoc-crossref自定义图表前缀(解决figureTitle和tableTitle被XeLaTex忽略的问题 )_第8张图片

方法2

另外这个比较早的issue也可以用,在文档里也可以添加测试过了:

figureTitle doesn’t work with PDF output

bash \renewcommand{\figurename}{图} \renewcommand{\tablename}{表}

不过作者说要放在metadata(yaml)后面,正文前面。 Markdown pandoc-crossref自定义图表前缀(解决figureTitle和tableTitle被XeLaTex忽略的问题 )_第9张图片

不能设置在yaml里,每次就都要重新写一遍,比较麻烦,还是方法1比较好。

最后附上其他有用的资料:

[1] pandoc-crossref
[2] 用pandoc生成大型中文文档的痛点与解决方案

你可能感兴趣的:(其他,Markdown,pandoc,pandoc-crossref)