pandoc转pdf文件使用latex模板介绍(Linux环境)

逄俊力
2023-12-01

pandoc转pdf文件用的latex模板介绍(Linux环境)

  • 关于pandoc工具使用latex模板将md文件转pdf文件还是有很长路要走的,如果执着于用它来做精美排版啥的那就是长路漫漫!
  • 本篇主要讲pandoc使用的latex模板以及使用模板过程中遇到的一些问题
  • 我也是不断学习摸索将此过程中遇到的问题进行总结,便于后续查看,如有不足,还请不吝赐教。

latex模板

pandoc用户指南template介绍
pandoc使用模板文件来设置文档所需的各种标题,引用,代码块,页眉和页脚等的样式设定。
要查看使用的默认模板,只需输入pandoc -D latex
其中latex是输出格式的名称。这样查看的默认模板是default.latex模板文件。

您还可以将自定义的模板文件放在(linux环境下:/usr/share/pandoc/date/templates/)这个模板文件夹下
可以在pandoc转换指令中加入--template=mytemplate.latex选项指定自定义模板。

常见的问题

相信使用过pandoc转pdf的人应该多少都遇到过一些头大的问题,不多说直接上问题
(先卖个关子,大多问题都可以通过设定latex模板来解决)

  1. 中文字体不显示
    这个不是模板问题啊,这锅模板可不背,是编译引擎的事,因为默认的pdflatex引擎不支持中文,所以指定支持中文的xelatex作为编辑引擎就好:--latex-engine=xelatex
    (如果模板中没有设定中文字体,通过pandoc指令选项指定使用中文字体:-V CJKmainfont="KaiTi"
  2. 中文不换行,设定中英文字体,页面尺寸的设定
    这些在下面介绍的pm-template.latex这个模板中已经做了设定了,设用这个模板就能解决了
  3. 表格不显示
    这个在下面介绍的eisvogel.tex这个模板大概在650行的位置做了设定,我使用编译后也只是三线表。
  4. 引用不显示
    同样的在eisvogel.tex这个模板大概在575的位置做了设定,使用也只会显示一级引用

我是根据自己的需求从各个模板中取自己要的部分进行组合使用。模板的链接在下面都有介绍。

收集的各种latex模板

pandoc默认模板:

  1. default.latex模板
    这是pandoc本身自带的默认模板,你可以在这个默认模板上加想要设定的内容,当然也可以自己重新自定义一个模板文件

pandoc自定义模板:

  1. template.tex模板,
    电子书模板,内部对电子书的常规样式进行设定
  1. pm-template.latex模板
    该模板好像使用的人蛮多的,使用改模板编译如遇到如下报错信息:
! Underfined control sequence   #编译报错信息
102 \tightlist                  #编译报错信息

解决办法:
将以下代码加入到模板的导言区
\newcommand{\tightlist}{
  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
! Underfined control sequence   #编译报错信息
135 \toprule                    #编译报错信息

解释:
我测试了下是因为markdown的表格语法开始的上一行是一个空行,就会报这个错。  
但是markdownlint语法规则中,表格的上下要有空行分隔,而此模板表格上方出现空行就报错了。  
因此要对模板中表格进行设定,可以借鉴eisvogel.tex模板中650行的表格设定来解决问题。
  1. eisvogel.tex模板
    这是我见到写的非常全的一个模板了,里面对很多样式进行了设定,太菜了我没吃懂,也就i是借鉴里面的一些东西。
**使用该模板遇到问题**
用pandoc编译时会报错,报错信息是找不到 xxx.sty 文件,  
将那个文件名复制到这个网站(https://ctan.org/pkg/sourcecodepro)   
找到相应文件下载,将解压后的文件放到/usr/share/texlive/texmf-dis/tex/latex/路径下  
(以上路径是linux环境下的texlive路径)

点击里去搜索需要的文件

  1. yellowpaper的eisvogel.tex模板
    yellowpaper这个里对eisvogel.tex这个模板进行了一些调整,也可以做为参考看看

latex模板怎么使用

在linux环境下使用指令安装的pandoc其模板的默认路径为:/usr/share/pandoc/date/templates/
有的可能没有date这个文件夹其路径为:/usr/share/pandoc/templates/
将模板文件放到这个路径下,把后缀名改为 .latex 使用pandoc指令转换文件时,指定模板编译
指令例如:pandoc --latex-engine=xelatex --template=pm-template.latex test.md -o test.pdf

latex模板如何写

  1. 参考pandoc官网用户指南的Template syntax
  2. 也可以参见这里看看pandoc-latex-template的自述文件
  3. 可参考pandoc官网的template语法pandoc用户指南template syntax介绍

这个问题其实还挺难的,我也想有个大佬指点一二,我也是模仿其他人的latex模板增增改改。 都
是看看大佬的模板是怎么写的借鉴模仿。

用markdown写用文档可能需要用到的

  1. markdown基本语法:markdown语法介绍
  2. latex的公式及矩阵的书写语法:点击查看语法介绍
  3. 表格可以通过复制word或者excel的表格然后放到这个网站可以将表格的信息转换为html语法的表格可以参考这篇文档
  • 用markdown语法写的表格,使用latex模板转换可以显示
  • 而html的语法写的表格,使用latex模板转换则无法显示

以下是扩展,想要用latex排版漂亮简历可以看下

 类似资料: