Markdown: 编译pdf
在网上发布博文的时候希望能顺便在本地保存一份记录,这样总结的东西很多的时候就可以写成一本给自己看的小书了。在linux下面有两个选择latex和markdown,虽然latex非常强大,但是很少有博客网站支持latex格式的源代码,而markdown受到的支持则很多。而在linux下面利用pandoc库也可以方便地把markdown源文件转化成pdf格式在本地保存。至此使用window的小白就可以不用往下看了。
安装pandoc
这里以linux fedora25为例说明pandoc库安装的方法
dnf search pandoc
sudo dnf install pandoc.x86_64
这样就完成了安装。
生成pdf[1]
对于写好的markdown源码文件,使用下面的命令即可
pandoc test.md -o test.pdf
哈哈,是不是很简单?
Wait a moment! About中文[2]
只是使用上面的步骤,可以保证你的pdf文件中只显示英文,中文哪去了呀?要解决这个问题,还是得借助万能的latex大哥,首先要在系统中安装Texlive的latex支持包,里面一般是默认包含了CJK中文库的,一般用xelatex中文都可以完美地解决。在这个前提下,把markdown源代码这样编译就行了。
pandoc --latex-engine=xelatex -V CJKmainfont='WenQuanYi Micro Hei' markdown_study.md -o markdown_study.pdf
其中添加的命令选择就是借助了万能的xelatex引擎,至于中文字体,文泉驿字库是一般linux随机自带的,如果喜欢其它字体,可能需要再折腾一下。
哈哈,关键时候还是得抱latex大腿!
至于怎么安装Texlive并支持中文,等有空时另写一篇博文总结吧!
在pdf中生成目录[3]
这个需要在编译前再加上一段命令
pandoc --toc
剩下的操作和第二节的相同,注意,要同时使用--toc --latex-engine才有效哟!完整的形式如下:
pandoc --toc --latex-engine=xelatex -V CJKmainfont='WenQuanYi Micro Hei' markdown_study.md -o markdown_study.pdf
这样就可以自动在pdf的开始位置生成目录了,还自带超连接到内容页哟,是不是很棒呀?这个在自己写成比较长的小书的时候特别有用。
插入图片[4]

控制图片的大小
<img src="http://images2015.cnblogs.com/blog/985636/201707/985636-20170713100847618-872361186.png" width = "500" height = "400" alt="1D fft spectrum" />
页面设置[5]
在转化成pdf前,还需要对页面和字廷等做进一步的限制,这个可以在.md的最开头加上这样一段设定:
---
fontsize: 14pt
gemetry: b5paper
---
# 最后的感觉
使用markdown生成pdf的话,知道可以这么干就行,真得要这么做的话,有些折腾费时。
要写pdf,王道还是latex,以后要整理的小书还是用latex吧!
参考:
[1]Stackoverflow
[2]知乎
[3]man pandoc
[4]https://rpubs.com/RatherBit/90926
[5]Stackoverflow
Markdown: 编译pdf的更多相关文章
- MarkDown to PDF
前面随便说说 之前在 windows 上一直习惯用 cmdmarkdown 把要写的东西写下来,再通过 typora 转成 pdf:现在很多时候在用 Ubuntu,需要把写完的作业转成 pdf 交上去 ...
- atom markdown转换PDF 解决AssertionError: html-pdf: Failed to load PhantomJS module
atom编辑器markdown转换PDF 解决AssertionError: html-pdf: Failed to load PhantomJS module. You have to set th ...
- Markdown转pdf
最近由于项目需要,要用到把markdown转换成pdf文件下载下来,最开始的时候想到的是先把markdown转成html,用到的是Parsedown:然后再将html转成pdf,用到了html2pdf ...
- markdown 转 pdf 方法
(1)Mou: (macosx 系统下的markdown编辑器,转pdf完美,推荐) http://25.io/mou/ (2)Chrome 打印 (打印得很好看,缺点是转好的pdf上的文字有时候不能 ...
- markdown转为pdf文件
要求: 把.md格式转为.pdf格式,并批量处理,最后将多个pdf文件合并为一个pdf并以文件名作为书签名 解决思路: 1.md格式的markdown文件转为html 为了将 md 格式转换成 htm ...
- 使用 VS Code + Markdown 编写 PDF 文档
背景介绍 作为一个技术人员,基本都需要编写技术相关文档,而且大部分技术人员都应该掌握 markdown 这个技能,使用 markdown 来编写并生成 PDF 文档将会是一个不错的体验,以下就介绍下如 ...
- windows使用Pandoc将Markdown转换为PDF文件
pandoc下载:https://github.com/jgm/pandoc/releases/tag/1.19.2.1 //windows下载msi文件 miktex下载:https://mikte ...
- DocNan博文目录
算法 时频分析:窗口傅立叶变换 数学误区:乘积的求和 MHD simulation with python Linux Linux: Bash基本命令 Linux: 安装和启用firefox浏览器的j ...
- R+markdown+LaTeX 中文编译解决方案
一丢丢前言 很久之前曾试图以Rmarkdown编译pdf文档,无奈怎么鼓捣都会error,搜索了很久都没能找到比较好的解决方案.在配置上将编译器调成了xeLaTeX后就不了了之.这两天心血来潮研究了一 ...
随机推荐
- JavaScript面向对象的理解
JavaScript面向对象的理解 笔记链接: http://pan.baidu.com/s/1c0hivuS 1:JavaScript 中分两种对象,函数对象和普通对象new Function() ...
- 学习MVC之租房网站(七)-房源管理和配图上传
在上一篇<学习MVC之租房网站(六)-用户登录和权限控制>完成了后台用户登录和权限控制功能的开发,接下来要完成的是房源的管理,用户在后台新增.编辑房源信息,供前台用户操作. 一 房源管理 ...
- LeetCode 题目总结/分类
LeetCode 题目总结/分类 利用堆栈: http://oj.leetcode.com/problems/evaluate-reverse-polish-notation/ http://oj.l ...
- Linux文件查看与查找命令
cat 查看一个文件 -E: 显示行结束符$ -n: 对显示出的每一行进行编号 -A:显示所有控制符 -b:非空行编号 -s:压缩连续的空行成一行 -T:显示制表符 常用:cat -An /etc/ ...
- 如何使用RSYNC搭建备份服务器
1. RSYNC介绍 RSYNC是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具.Rsync软件适用于unix/linux/windows等多种操作系统平台. 远程数 ...
- JDK的并发容器
除了提供诸如同步控制,线程池等基本工具外,为了提高开发人员的效率,JDK已经为我们准备了一大批好用的并发容器,这些容器都是线程安全的,可以大大减少开发工作量.你可以在里面找到链表.Hash ...
- C#特性:从自定义一个特性开始,谈谈什么是特性
作为C#新手中的一员,我刚开始接触特性时,那真是一脸冏逼啊,怎么想怎么查资料都没弄明白它到底是个什么东西,有的入门教程甚至都没讲特性和反射这些概念!相信很多人第一次接触到特性就是关于系列化的知识了. ...
- bootstrap学习笔记之基础导航条 http://www.imooc.com/code/3111
基础导航条 在Bootstrap框中,导航条和导航从外观上差别不是太多,但在实际使用中导航条要比导航复杂得多.我们先来看导航条中最基础的一个--基础导航条. 使用方法: 在制作一个基础导航条时,主要分 ...
- 为什么要使用addEventListener而不是on监听事件
昨天回答了一个关于vue的问题 vue 除了input 其他可以用keyup事件嘛? 在vue中没有提供除表单之外其它的keyup绑定方法,可以使用原生的监控键盘的事件,于是给出了代码: mounte ...
- MySql学习笔记(一) —— 数据的分组
前面介绍的聚集函数只是用来计算行数,平均数,最大值,最小值而不用检索所有数据.通过count()函数,我们可以计算生产商1003提供的产品数目,但如果我要查询所有生产商提供的商品数,这就需要进行分组查 ...