使用 Pandoc 将文档转换为 PDF 格式

Avatar
不若风吹尘
2024-09-09T17:14:38
40
0

Pandoc 是一个强大的文档转换工具,可以将文档在多种格式之间进行转换。需要注意的是,Pandoc 只能将 PDF 作为输出目标格式,而不能从 PDF 转换为其他格式。如果要将 PDF 转换成其他格式,需要使用其他的工具或服务。

安装 TeX Live

为了使 Pandoc 能够生成 PDF 文件,你需要安装一个 TeX 引擎,如 TeX Live,它提供了必要的后端程序,例如 xelatexpdflatex

TeX Live 官网:https://www.tug.org/texlive/

LaTeX 是一种基于 TeX 的排版系统,广泛用于科学、数学和技术文档的编写和排版。它由 Leslie Lamport 在 20 世纪 80 年代开发,并且基于 Donald Knuth 开发的基础系统 TeXLaTeX 的设计目的是为了简化 TeX 的使用,同时提供一个更加结构化的方法来创建高质量的文档。

xelatex 相对于其他 LaTeX 引擎(如 pdfLaTeX)具有一些显著的优点,特别是对于那些需要高级字体支持和国际化文档的用户。(中文用户推荐使用 xelatex 引擎)

下载 iso 镜像

从可靠的镜像站点下载 TeX LiveISO 镜像文件。推荐从吉林大学开源镜像站 下载 ISO 镜像

安装

对于 Windows 用户,解压下载好的文件 texlive2024-20240312.iso,然后进入解压后的目录,并运行批处理文件 install-tl-windows.bat 来开始安装流程。

测试 TeX Live 的安装

验证 TeX Live 是否已成功安装,可以通过运行以下命令来检查:

tex -v
latex -v
xelatex -v
pdflatex -v

下载 LaTeX 模板

一个干净的 Pandoc LaTeX 模板,用于将您的 Markdown 文件转换为 PDF 或 LaTeX。它专为讲义和练习而设计,重点在于计算机科学。该模板兼容 Pandoc 3 版本,可以从以下 GitHub 仓库获得:

地址:https://github.com/Wandmalfarbe/pandoc-latex-template

解压下载的模板,并将 eisvogel.tex 文件移动到以下目录:

C:\Users\{用户名}\AppData\Roaming\pandoc\templates\

可以通过运行 pandoc -v 命令来查看模板所在的目录位置。

测试转换

生成 PDF 文件

使用 Pandoc 转换 Markdown 文件到 PDF 格式时,可以使用以下命令:

pandoc --pdf-engine=xelatex -V CJKmainfont="Microsoft YaHei" -V colorlinks -V urlcolor=NavyBlue --template=eisvogel --listings D:\input.md -o D:\output.pdf

参数解释:

  • --pdf-engine=xelatex: 指定使用 XeLaTeX 引擎(需要安装 TeX Live)。
  • --highlight-style=tango: 指定代码块高亮风格。
  • -V CJKmainfont="Microsoft YaHei": 设置中文字体为微软雅黑。
  • -V mainfont="Consolas": 设置英文字体为 Consolas
  • -V monofont="Consolas": 设置等宽字体为 Consolas
  • -V lang=zh: 指定文档语言为中文。
  • -V colorlinks: 启用链接颜色。
  • -V urlcolor=NavyBlue: 设置 URL 链接的颜色为海军蓝。
  • --template=eisvogel: 指定使用预定义的模板(Windows 系统中位于 C:\Users\{用户名}\AppData\Roaming\pandoc\templates 目录)。
  • --listings: 使用列表格式化代码块。

警告

[WARNING] [makePDF] LaTeX Warning: Hyper reference `creating-list-t-using-spread-elements' on page 1 undefined on input line 396.

超链接错误原因:解析器不支持 # title{#header-id} 这样的语法。{#header-id} 是一种扩展语法,指定标题的 id 属性

Last Modification : 9/18/2024 11:36:34 PM


In This Document