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模板来解决)

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

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

收集的各种latex模板

1、pandoc默认模板 default.latex

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

2、pandoc自定义模板 template.tex

template.tex 是电子书模板,内部对电子书的常规样式进行设定

3、pandoc自定义模板 pm-template.latex

pm-template.latex 这个模板好像使用的人蛮多的,使用该模板编译如遇到如下报错信息和解决方法:

# 错误信息
! Underfined control sequence #编译报错信息
102 \tightlist #编译报错信息

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

# 对应解决办法是将以下代码加入到模板中 \else % if luatex or xelatex 的下一行
\usepackage{booktabs}

4、pandoc自定义模板 eisvogel.tex

eisvogel.tex 这是一个写的非常全的一个模板了,里面对很多样式进行了设定,里面有不少可以借鉴的内容。

使用eisvogel.latex模板遇到问题

用pandoc编译时会报错,报错信息是找不到 xxx.sty 文件   
将那个文件名复制到这个网站(https://ctan.org/pkg/sourcecodepro)
找到相应文件下载后将解压后的文件放到/usr/share/texlive/texmf-dis/tex/latex/路径下(以上路径是linux环境下的texlive路径)

点击里去搜索需要的文件(https://ctan.org/pkg/sourcecodepro)

5、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

  • 讲解使用pandodc指令给代码块,引用等设置高亮背景色
  • 官网上许多pandoc指令的列子

latex模板如何写

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

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

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

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

以下是扩展,想要用latex排版漂亮简历可以参考这个网站下在latex的简历排版(http://www.latextemplates.com/cat/curricula-vitae)


(END)