IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 【GitHub探索】ebook-boilerplate——批量转markdown为PDF和电子书 -> 正文阅读

[开发工具]【GitHub探索】ebook-boilerplate——批量转markdown为PDF和电子书

正值十一假期,近期准备把自己的python笔记精编整理,做一个pdf电子书。在调研如何把多个markdown文档转化为单个pdf的时候,试了很多种方法。最后找到了最佳方案,也就是本文的主角,由phodal前辈整理的电子书生成项目ebook-boilerplate。这个项目不仅支持批量转markdownpdf,而且还支持转成ebook等多种格式。

使用这个项目的时候,也踩了一些坑,需要做一些额外的配置。以笔者的场景为例,电子书生成环境是Ubuntu22,需要转化一堆中文的markdownclone了这个项目之后,除了ebook-boilerplate本身README.md里描述的内容之外,实际还需要留意以下环节:

第一块是pandoctexlive的环境,最好是官网下载最新的版本,apt里面的版本已经过时了。尤其是texliveapt拿到的版本很多宏库都没有,得要用官网最新的install脚本才会自动把各种package都装上。

然后是生成pdf的操作里,需要指定一种支持中文的tex-engine,笔者是选择了xelatex。需要在makefilepandoc生成pdf那块做修改:

pdf: markdown
	pandoc -s $(filename).md -o $(filename).pdf \
		--title-prefix $(title) \
		--listings -H listings-setup.tex \
		--template=template/template.tex \
		--pdf-engine=xelatex \  # 加这一行,声明pdf-engine
		--toc

之后,markdown生成pdf的步骤,实际是把所有markdown内容按文件名顺序(可以用数字标识组织一下)拼接在一起,然后用toc按照markdown的标题文本(h1h2之类)生成目录,最后再生成pdf。这里有一个问题,就是我们每一章都要分页,而在markdown里标识分页的html标签<div STYLE="page-break-after: always;"></div>tex-engine下面,是没法出分页的效果的。这种情况下的解决方案是:把这个标签换成\newpage,这样tex-engine就能识别了。也就是说,你的md文件的内容应该是:

# 1.1 xxx.md

# 上面忽略你的markdown正文

\newpage

再之后,我们可以修改listings-setup.tex以及template/template.tex里的内容,去修改代码高亮跟正文的排版参数。以笔者的观感为例,这里面的内容编辑了以下几个部分:

  • 代码高亮,即listings-setupbasicstyle设置字号为\small
  • template.tex里,取消对于中文刊物习惯的设置,正文字号为9pt,行距调整为1.1
  • xelatex下,中文字体为Noto Sans CJK SC,默认字体为Helvetica。当然,如果你喜欢衬线Serif字体,也都得调整成衬线的形式。

最后就是各种调试勘误,生成最后的文档了。

当然,一开始所说的,笔者精心整理的python笔记,现在也已出炉。各位读者可以阅读这篇文章以获取资源。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-10-08 21:02:36  更:2022-10-08 21:05:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:14:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码