trpl-zh-cn
trpl-zh-cn copied to clipboard
pdf样式好,如何生成?
从gitbook网站上下载到的教程样式非常好,就是在markdown基础上,适当加了出版物特性比如有分页。 那么这个文档的pdf文件是如何生成的呢? 我尝试了一些gitbook2pdf工具,都没有找到办法生成类似的pdf文件。
以前 gitbook 是开源的 😂 https://github.com/GitbookIO/gitbook
我试了几种gitbook2pdf的工具,生成效果都不好,开源的gitbook工具的效果不好。比如这样的。
没有代码高亮。抓取gitbook站点很容易失败
我自己总结了几种可以将文档生成pdf的办法:
探索markdown2pdf最佳实践 · 语雀
目前我能尝试出的是看云。
看到这个文档是
这样的,烦请赐教这个文件的生成的流程。
如果是LaTex的话,凡是pdf文件,必然有tex源码,可以复现出。但是LaTeX写这种文档成本太高了。
我疏忽了,各种方法试了一大堆,这个仓库本身开始构建却没有尝试,身在林中看不见树。(¬_¬)智商三岁。
一次失败的尝试
在这个前提下:制作pdf · GitBook
同时左面的目录是不支持跳转的,所有都跳转到第1页,是比较失败的。
踩坑如下:
左侧导航栏超链接无法跳转->生成的pdf书签不能跳转,未解决。
左侧导航栏超链接无法跳转
gitbook生成的静态网页很像wiki,左侧有电子书的导航栏,很方便。但是,点击链接居然不会跳转。不会跳转的超链接能叫超链接吗?此时,在_book文件夹内,找到gitbook文件夹,在里面找到theme.js打开,用文本搜索工具搜索查找
if(m)for(n.handler&&
注意,文本时压缩过的,不要搜索if(m),那样找不到。
找到后,将
if(m)
改成if(false)
再次打开_book下的网页,左侧导航栏超级链接就可以正常跳转了。
Error converting .svg into .png
在后来尝试使用gitbook生成pdf时,又遇到一个问题
error: error while generating page "chapter1/14.md":
Error: Error converting C:\Users\Administrator\AppData\Local\Temp\tmp-47768poGb4f1fkPK_mathjax_46d8639.svg into C:\Users\Administrator\AppData\Local\Temp\tmp-47768poGb4f1fkPK\c6231af5.png
看样子是在生成pdf时,需要把mathjax公式svg图转换为png。刚开始以为是mathjax的问题,换了很多歌mathjax插件版本,后来发现把插件换成katex也有一样的错误提示。
于是想到了可能是svg转png的过程出现问题,于是找到了svgexport 。
svgexport 是一个svg转png的工具,现在版本是0.4.0
搜了一下,发现有一些人遇到同样的问题(不仅限于在gitbook),但是大家都有一个个特点:那就是windows
于是我用svgexport 测试了一下单独的svg图片,发现也是报错。
后来在svgexport 的github的issue里发现问题,svgfile在读取windows下的文件时会有文件地址错误的问题,具体就是window和Linux中文件路径的表示方法是不一样造成的。
该问题目前暂时无解,工具的作者已经提交issue,准备修复这个bug了。
但是,在此之前,可以使用0.3.2版本的svgexport,就可以完美滴解决这个问题。
npm使用淘宝镜像加速安装
解决方案:
cnpm install [email protected] -g
NPM镜像-NPM下载地址-NPM安装教程-阿里巴巴开源镜像站 https://developer.aliyun.com/mirror/NPM?from=tnpm
Gitbook踩坑记录II - 知乎 https://zhuanlan.zhihu.com/p/123870902
Regression 0.4.0: "Error converting __.svg into ___.png" with GitBook · Issue #71 · shakiba/svgexport https://github.com/shakiba/svgexport/issues/71
我也曾经像楼主这样折腾过,分享一点经验。gitbook由于商业策略的变更,开源的gitbook软件已经不再维护,在legacy.gitbook.com上下载的pdf显示还不错,但是如果自己生成pdf,会遇到许多兼容性问题。比如:
- 字体问题。我使用微软雅黑字体时,遇到粗体被显示为normal的情况。
- 页边距问题。我使用最新版本calibre时,修改页边距无效,我的解决办法是回滚到2.12.0版本。
pandoc+LaTeX我也使用过,学习成本过高,需要解决的显示问题过多,我最后选择了放弃。
现在是 0202 年,根据我的经验,最简单的做法就是用浏览器打开mdbook的生成结果,在mdbook的页面上点击这个按钮
然后你会获得一个所有内容都在一页上的网页。接下来关掉左边侧边栏,然后用浏览器自带的打印工具打印即可。
现在是 0202 年,根据我的经验,最简单的做法就是用浏览器打开mdbook的生成结果,在mdbook的页面上点击这个按钮
然后你会获得一个所有内容都在一页上的网页。接下来关掉左边侧边栏,然后用浏览器自带的打印工具打印即可。
这是我经过了若干次尝试,这种是最好的生成pdf方法.除了没有目录其他都完美
现在是 0202 年,根据我的经验,最简单的做法就是用浏览器打开mdbook的生成结果,在mdbook的页面上点击这个按钮
然后你会获得一个所有内容都在一页上的网页。接下来关掉左边侧边栏,然后用浏览器自带的打印工具打印即可。
这是我经过了若干次尝试,这种是最好的生成pdf方法.除了没有目录其他都完美
@aoslee 你说【用浏览器打开mdbook的生成结果】,我从_book里打开index.html或者其他html页面都是只有一页,没有你说的【会获得一个所有内容都在一页上的网页】,还是我打开的地方不对?请教