在网上发布博文的时候希望能顺便在本地保存一份记录,这样总结的东西很多的时候就可以写成一本给自己看的小书了。在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]

![captions](.../fig.png)

控制图片的大小

<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的更多相关文章

  1. MarkDown to PDF

    前面随便说说 之前在 windows 上一直习惯用 cmdmarkdown 把要写的东西写下来,再通过 typora 转成 pdf:现在很多时候在用 Ubuntu,需要把写完的作业转成 pdf 交上去 ...

  2. 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 ...

  3. Markdown转pdf

    最近由于项目需要,要用到把markdown转换成pdf文件下载下来,最开始的时候想到的是先把markdown转成html,用到的是Parsedown:然后再将html转成pdf,用到了html2pdf ...

  4. markdown 转 pdf 方法

    (1)Mou: (macosx 系统下的markdown编辑器,转pdf完美,推荐) http://25.io/mou/ (2)Chrome 打印 (打印得很好看,缺点是转好的pdf上的文字有时候不能 ...

  5. markdown转为pdf文件

    要求: 把.md格式转为.pdf格式,并批量处理,最后将多个pdf文件合并为一个pdf并以文件名作为书签名 解决思路: 1.md格式的markdown文件转为html 为了将 md 格式转换成 htm ...

  6. 使用 VS Code + Markdown 编写 PDF 文档

    背景介绍 作为一个技术人员,基本都需要编写技术相关文档,而且大部分技术人员都应该掌握 markdown 这个技能,使用 markdown 来编写并生成 PDF 文档将会是一个不错的体验,以下就介绍下如 ...

  7. windows使用Pandoc将Markdown转换为PDF文件

    pandoc下载:https://github.com/jgm/pandoc/releases/tag/1.19.2.1 //windows下载msi文件 miktex下载:https://mikte ...

  8. DocNan博文目录

    算法 时频分析:窗口傅立叶变换 数学误区:乘积的求和 MHD simulation with python Linux Linux: Bash基本命令 Linux: 安装和启用firefox浏览器的j ...

  9. R+markdown+LaTeX 中文编译解决方案

    一丢丢前言 很久之前曾试图以Rmarkdown编译pdf文档,无奈怎么鼓捣都会error,搜索了很久都没能找到比较好的解决方案.在配置上将编译器调成了xeLaTeX后就不了了之.这两天心血来潮研究了一 ...

随机推荐

  1. python3 selenium 随机选择同一类型下的某一个元素

    使用场景: 如上图所示,有时候,我们测试的时候,不会每个方向都选择一遍,也不能每次都选择一个方向,这个时候就需要每次运行用例的时候,随机选择一个方向来测试 使用方法: random.randint() ...

  2. mysql5.6源码自动安装脚本

    将脚本与源码安装包放在同一目录下,执行脚本即可(执行脚本会使用yum安装依赖包) 安装完成之后,既可以使用mysql -uroot -p登录   脚本内容如下: [root@mysql src]# c ...

  3. C返回函数指针的函数

    如下函数 char (*retCharWithInt(char, char))(int); 申明了函数指针retCharWithInt,该指针指向一个形参是(char,char),返回值是char(* ...

  4. 面向切面编程(Aop)

    AOP中的概念 AOP(Aspect Orient Programming),也就是面向切面编程.可以这样理解,面向对象编程(OOP)是从静态角度考虑程序结构,面向切面编程(AOP)是从动态角度考虑程 ...

  5. CI集成phpunit Error: No code coverage driver is available 的解决

    CI集成phpunit时,运行报No code coverage driver is available的错误,如下图: yanglingdeMacBook-Pro:tests yangling$ p ...

  6. DevCloud让代码检查更科学

    代码检查是软件开发工作中不可或缺的一部分,众所周知,规范化的编码是一个优质项目的保证.华为软件开发云(DevCloud)便提供了专业科学的自动化代码检查工作. 一.华为软件开发云(DevCloud)目 ...

  7. Java迭代器Iterator

    之前我们实现了迭代器模式,很多编程语言实际上已经内置了迭代器类,比如Java就为我们实现了迭代器Iterator.我们首先来看Iterator中的源码. 通过JDK源码我们发现Iterator是一个接 ...

  8. 当一个JavaScripter初次进入PHP的世界,他将看到这样的风景

     本文将从以下11点介绍javascript和PHP在基础语法和基本操作上的异同: 1.数据类型的异同 2.常量和变量的定义的不同,字符串连接运算符不同 3.对象的创建方法的不同 4.PHP与JS在变 ...

  9. 【Python 函数对象 命名空间与作用域 闭包函数 装饰器 迭代器 内置函数】

    一.函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(Firs ...

  10. struts2.1.6教程三、在Action获取Scope对象

    引言:在前面的Action操作中,关键就是Action中的exectue方法,但是此方法并没有request.session.application等对象作为参数,自然就不能利用这些对象来操作.下面我 ...