让 MkDocs 输出为 Pdf 文件

发布于 2024-11-07 00:01:50 字数 1680 浏览 0 评论 0

合并 Markdown 并输出 pdf

安装 Texlive 的一些支持库

sudo apt install texlive-full

在 MkDocs 的虚拟环境里安装 Mkdocs-pandoc 的包

pip install pandoc
pip install mkdocs-pandoc

现在进入 MkDocs 的项目目录里,也就是 mkdocs.yml 所在的目录啦。

mkdocs2pandoc > mysite.pd
pandoc --latex-engine=xelatex --toc -f markdown+grid_tables+table_captions -o mysite.pdf mysite.pd

第一条命令就是将 MkDocs 网站生成 pandoc 能处理的单一文件,

第二条命令就是使用 pandoc 按指定格式进行转换。

让 Pdf 输出中文

上面输出后只能看到英文,看不到中文。

我们还需要做些配置来支持输出中文。

如果你还缺少一些中文字体,可以安装几个 gnome 中文字体

sudo apt install language-pack-gnome-zh*

你可以通过以下命令查看中文字体

fc-list :lang=zh

我们需要生成一个缺省模板来修改可以支持中文的模板

pandoc -D latex > mkdocs.tex

修改模板文件, gedit mkdocs.tex& 找到这一段

\else % if luatex or xelatex
\ifxetex
\usepackage{mathspec}
\else
\usepackage{fontspec}
\fi

修改为

\else % if luatex or xelatex
\ifxetex
\usepackage{mathspec}
% 添加 xeCJK 宏包
\usepackage{xeCJK}
\setCJKmainfont{Microsoft YaHei}
\setCJKsansfont{Microsoft YaHei}
\setCJKmonofont{Microsoft YaHei}
\else
\usepackage{fontspec}
\fi

这里用到的是 微软雅黑 字体,你需要使用上面的 fc-list :lang=zh 使用来查看可用的中文字体以替换上面的 Microsoft YaHei 字体。

然后再重新使用下面命令生成 Pdf

pandoc --toc -f markdown+grid_tables+table_captions --latex-engine=xelatex --template=mkdocs.tex -o mysite.pdf mysite.pd

打开生成的 pdf ,应该就能够看到中文的内容了。

还有一些小问题:各章节标题大小的问题。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

聽兲甴掵

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

月光色

文章 0 评论 0

咆哮

文章 0 评论 0

痞味浪人

文章 0 评论 0

宁涵

文章 0 评论 0

军弟

文章 0 评论 0

临走之时

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文