浅尝在 Rocky 9 下自助生成 PDF 格式的 TiDB 文档
TL;DR
Asktug.com 论坛里偶有小伙伴询问如何自助生成 PDF 格式的 TiDB 文档,或是 PDF 太长,经常查阅的只是其中一部分,如何只生成那一部分的 TiDB 文档。本文将介绍如何在 Rocky Linux 9 上自助生成 PDF 格式的 TiDB 文档。
没听过十年二手玫瑰,是不会轻易做这种尝试的,对于 LaTaX 新手来说,积累本文素材的过程极为痛苦。不建议各位看官实操本文的第二种方法,还是推荐使用第一种方法,基本按照官方推荐的、经过测试的方法来,便捷、有效、易用。
环境准备
- 操作系统:Rocky Linux 9.3
1 | [shawnyan@rocky9 ~]$ cat /etc/redhat-release |
- 前置安装:git, podman
1 | [shawnyan@rocky9 ~]$ git --version |
注:OS 和相关软件不是本文重点,遂一笔带过。
- 拉取
pandoc/latex
镜像
使用 podman 拉取 pandoc 镜像:
1 | podman pull pandoc/latex |
1 | [shawnyan@rocky9 ~]# podman pull pandoc/latex |
查看镜像信息:
1 | [shawnyan@rocky9 ~]# podman images | grep pandoc |
- 克隆 TiDB 文档库代码
这里以 TiDB 中文文档为例,克隆文档:
(为加速下载,也避免网路问题,这里选择从 gitee 克隆代码)
1 | git clone https://gitee.com/shawnyan/docs-cn.git --depth=1 |
1 | [shawnyan@rocky9 ~]$ git clone https://gitee.com/shawnyan/docs-cn.git --depth=1 |
克隆完成后,查看版本,确认当前文档源码为最新版。
1 | [shawnyan@rocky9 docs-cn]$ git lg |
方法一:使用 pandoc/latex
镜像生成 PDF 文档
在 TiDB 中文文档代码库的 README 中有这样一段介绍,并给出了相关教程。
如果你想在本地定制输出符合特定场景需求的 PDF 格式的 TiDB 文档,例如对 TiDB 文档目录进行自由排序和删减,请参考自助生成 TiDB 文档 PDF 教程。
只是教程中介绍的是 Windows 和 macOS 环境,下面将介绍在 Linux 环境下的相关操作流程,推荐有需求的同学使用这种方法。
TiDB 文档目录在 TOC.md
文件中,编辑此文件按需进行调整、删减。
例如,在本例中,为便于演示,只保留部分内容。
1 | <!-- markdownlint-disable MD007 --> |
将所有 Markdown 文档文件按照 TOC.md
整合到一个 doc.md
文件中。
1 | cd docs-cn |
运行 andelf/doc-build
容器,在本例中,文档源码目录为 /root/docs-cn
。
1 | podman run -it -v /root/docs-cn:/opt/data:rw --privileged=true andelf/doc-build:0.1.9 |
在容器中运行生产 PDF 的脚本。
1 | cd /opt/data |
预期输出:将在宿主机上的文档源码目录下生成一个 output.pdf
文件。
1 | [root@rocky9 docs-cn]# ls output.pdf |
//img
到此,演示结束,只是在 PDF 文档属性中还发现一处小问题,PDF 文件文档属性中的标题和作者在生成过程中未填充,需要在 generate_pdf.sh
文件中补充两行内容。
1 | -V title-meta="TiDB 中文手册" \ |
//img
补充后,效果如图:
//img
方法二:直接安装 pandoc,texlive 软件并生成 PDF 文档
这种方法过程极为复杂繁琐,好处是可以使用最新版本的 pandoc 和 texlive。
- 安装一些依赖包。
1 | dnf install curl wget git bzr mercurial openssl-client subversion procps |
- 安装 pandoc。
1 | dnf install pandoc |
1 | [root@rocky9 ~]# pandoc --version |
- 安装 texlive。
1 | wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz |
- 安装中文字体,官方使用的是 文泉驛(WenQuanYi),或是其他中文字体。
1 | fc-list :lang-zh | grep -i wenq |
- 生成 PDF 文档。
由于 pandoc 版本升级更新,原有的参数发生变化,比如 --latex-engine
不再支持,需要替换为 --pdf-engine
。
1 | MAINFONT="Microsoft YaHei" |
对于模板文件,直接用新版 pandoc 调用会报错,需要做些调整,如下图。
小结
方法一足够简单、实用,推荐有需求的同学使用,方法二只是其他途径探索,不做推荐。
- Title: 浅尝在 Rocky 9 下自助生成 PDF 格式的 TiDB 文档
- Author: ShawnYan
- Created at: 2024-01-07 12:00:00
- Updated at: 2024-01-07 12:00:00
- Link: https://shawnyan.cn/2024/tidb/tidb-docs-gen-pdf/
- License: This work is licensed under CC BY-NC-SA 4.0.