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后就不了了之.这两天心血来潮研究了一 ...
随机推荐
- RabbitMQ4--发后即忘和RPC
在项目中引入RabbitMQ通常会考虑它会带来的好处:解耦应用程序,实现不同编程语言之间的互通,解除对特定通信协议的依赖,解除应用程序在时序上执行的依赖(异步).落实到代码层面就是两种常用应用模式:& ...
- 为Android内核添加新驱动
转载地址:http://blog.chinaunix.net/uid-16759545-id-4892379.html 1. 在drives目录下添加hello目录,内含hello.c Kconfig ...
- 【安装Python环境】之“安装 setuptools ”时出现的问题以及解决办法
安装Python环境时,还需要安装"setuptools 与 pip",但是安装setuptools时出现了几个问题,如下: setuptools 与 pip 下载地址如下:htt ...
- 华为ensp模拟某公司网络架构及配置详解
1.先晒下架构图,二层设备省略..... 2.下面开始具体配置详解 2.1.从路由器开始配置,先用远程工具远程AR1220F-S路由,secureCRT ,putty,xshell任选其中一个均可,功 ...
- c# 对加密的MP4文件进行解密
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- Error:No such property: GROUP for class: org.gradle.api.publication.maven.internal.deployer.DefaultGroovyMavenDeployer
注:参考:http://stackoverflow.com/questions/28450549/errorno-such-property-group-for-class-org-gradle-ap ...
- android组团开发站立会议第三周第一次会议
会议时间:组队开发第三周 星期一 开始时间晚上9:30-10:00 会议地点:学一食堂 二楼 到会人员:李志岩 王亚蕊 安帅 薛禄坤 张新宇 孙存良 会议概要: 1. ...
- Session Cookie的HttpOnly和secure属性
Session Cookie的HttpOnly和secure属性 一.属性说明: 1 secure属性 当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTT ...
- 016 多对多关联映射 单向(many-to-many)
一般的设计中,多对多关联映射,需要一个中间表 Hibernate会自动生成中间表 Hibernate使用many-to-many标签来表示多对多的关联 多对多的关联映射,在实体类中,跟一对多一样,也是 ...
- Android框架式编程之BufferKnife
配置 compile 'com.jakewharton:butterknife:(insert latest version)' annotationProcessor 'com.jakewharto ...