Typora是一个非常好用的markdown编辑器,有很多很漂亮的主题,写笔记的时候看起来赏心悦目,功能也非常强大,所以我一直用它来进行日常的写东西。但是markdown毕竟普及范围有限,有的时候还是需要把md文件转成pdf,我希望转成pdf之后的文章还能保持在Typora中看到的样子,但是事与愿违,转成pdf之后文章的背景色无法覆盖整个文档,导致文档的中间部分是Typora中看到的颜色,而页面边缘却是纯白色的,通过查看主题的css文件,略作修改解决了这个问题。

大部分主题导出的第一页都是正常的,到第二页才会出现问题,我用的主题是Solarized,第一页也有一点问题:

bug示意图
bug示意图

Typora的主题都是由css定义的,偏好设置->通用->打开主题文件夹就可以看到所有主题文件。通过Typora本身自带的调试功能发现,应该是某个元素的背景色设置的问题。打开主题的css文件后,有如下代码:

1
2
3
4
5
6
7
8
9
10
html {
font-size: 16px;
}
body {
font-family: Consolas, Mononoki, "Roboto Sans", "Liberation Mono", monospace;
color: #586e75;
line-height: 1.6;
background-color: #fdf6e3;
}

body有设置背景颜色#fdf6e3body无法覆盖整个文档页面,整个文档页面的设置应该是由html定义,也就是说在html里面添加背景颜色之后应该就可以解决这个问题,把上面的代码修改之后:

1
2
3
4
5
6
7
8
9
10
11
html {
font-size: 16px;
background-color: #fdf6e3;
}
body {
font-family: Consolas, Mononoki, "Roboto Sans", "Liberation Mono", monospace;
color: #586e75;
line-height: 1.6;
background-color: #fdf6e3;
}

保存之后,重启Typora,再试下导出pdf:

修改后的示意图
修改后的示意图

搞定,收工。

要说明下的是,我自己最常用的主题是Solarized,以上的解决方法我只在这个主题下测试了,其他主题并没有测试,但是我觉得应该也是可行的。