百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Pandoc安装、使用、快速上手

moboyou 2025-05-12 13:44 33 浏览

Pandoc安装、使用、快速上手

Pandoc

如果你需要将文档从一种格式转换成另一种格式,那么Pandoc是你的一把瑞士军刀,Pandoc可以将下列格式文档进行相互转换。
Markdown、Microsoft Word、OpenOffice/LibreOffice、Jupyter notebook、HTML、EPUB、roff man、LaTeX、甚至是PDF。当然Pandoc还包括很多类型文档的转换,这里就不一一例举了,可以参考About pandoc。

安装

windows

下载地址:windows下载也可以通过Chocolatey来安装。

choco install pandoc
# 其他Pandoc软件安装
choco install rsvg-convert python miktex

macOS

brew install pandoc
# Pandoc解析器
brew install pandoc-citeproc
# 其他Pandoc软件安装
brew install librsvg python homebrew/cask/basictex

Linux

sudo yum install pandoc
# 如果想输出PDF,可以安装TeX Live
sudo yum install texlive

Ubuntu/Debian

sudo apt install pandoc
# 如果想输出PDF,可以安装TeX Live
sudo apt install texlive

使用

经过上面的安装,我们可以使用了。

验证

[frank@LAPTOP-0OCJTGJR ~]$ pandoc --version
pandoc 1.12.3.1
Compiled with texmath 0.6.6, highlighting-kate 0.5.6.
Syntax highlighting is supported for the following languages:
    actionscript, ada, apache, asn1, asp, awk, bash, bibtex, boo, c, changelog,
    clojure, cmake, coffee, coldfusion, commonlisp, cpp, cs, css, curry, d,
    diff, djangotemplate, doxygen, doxygenlua, dtd, eiffel, email, erlang,
    fortran, fsharp, gnuassembler, go, haskell, haxe, html, ini, java, javadoc,
    javascript, json, jsp, julia, latex, lex, literatecurry, literatehaskell,
    lua, makefile, mandoc, markdown, matlab, maxima, metafont, mips, modelines,
    modula2, modula3, monobasic, nasm, noweb, objectivec, objectivecpp, ocaml,
    octave, pascal, perl, php, pike, postscript, prolog, python, r,
    relaxngcompact, restructuredtext, rhtml, roff, ruby, rust, scala, scheme,
    sci, sed, sgml, sql, sqlmysql, sqlpostgresql, tcl, texinfo, verilog, vhdl,
    xml, xorg, xslt, xul, yacc, yaml
Default user data directory: /home/frank/.pandoc
Copyright (C) 2006-2013 John MacFarlane
Web:  http://johnmacfarlane.net/pandoc
This is free software; see the source for copying conditions.  There is no
warranty, not even for merchantability or fitness for a particular purpose.

小试牛刀

虽然下面的方法不怎么常用,我们先通过命令行的一个简单例子认识一下Pandoc

例子一:markdown 转 html

[frank@LAPTOP-0OCJTGJR pandoc]$ pandoc
# 标题一
## 标题二
> 摘要

这是按下Ctrl-D,看看会发生什么?

<h1 id="标题一">标题一</h1>
<h2 id="标题二">标题二</h2>
<blockquote>
<p>摘要</p>
</blockquote>

例子二:html 转 LaTeX

[frank@LAPTOP-0OCJTGJR pandoc]$ pandoc -f html -t markdown
<h1 id="标题一">标题一</h1>
<h2 id="标题二">标题二</h2>
<blockquote>
<p>摘要</p>
</blockquote>

这时再次按下Ctrl-D,看看会发生了什么?

标题一
======

标题二
------

> 摘要

我们是不是可以将markdown转换成LaTeX了?你会怎么使用命令组合呢?

文本转换

好了,玩够了,我们正式开始文本转换。

编辑文档

使用任意你喜欢的文本编辑器编辑如下文档并保持为.md文件。这里保持成test1.md

---
title: Test
...

# Test!

This is a test of *pandoc*.

- list one
- list two

markdown 转 html

[frank@LAPTOP-0OCJTGJR pandoc]$ pandoc test1.md -f markdown -t html -s -o test1.html
[frank@LAPTOP-0OCJTGJR pandoc]$ ll
total 4
-rw-rw-r-- 1 frank frank 629 Feb  4 22:06 test1.html
-rw-rw-r-- 1 frank frank  81 Feb  4 22:05 test1.md

介绍一下参数
-s选项表示创建一个“独立”文件,其中包含页眉和页脚,而不仅仅是片段
-o test1.html 将输出放入文件中test1.html
-f markdown和-t html 表示,from markdown格式 to html格式,Pandoc模式就是从markdown转成html。

markdown 转 LaTeX

[frank@LAPTOP-0OCJTGJR pandoc]$ pandoc test1.md -f markdown -t latex -s -o test1.tex
[frank@LAPTOP-0OCJTGJR pandoc]$ ll
total 8
-rw-rw-r-- 1 frank frank  629 Feb  4 22:06 test1.html
-rw-rw-r-- 1 frank frank   81 Feb  4 22:05 test1.md
-rw-rw-r-- 1 frank frank 1627 Feb  4 22:17 test1.tex

当然,你也可以直接用下面的命令

[frank@LAPTOP-0OCJTGJR pandoc]$ pandoc test1.md -s -o test2.tex
[frank@LAPTOP-0OCJTGJR pandoc]$ ll
total 12
-rw-rw-r-- 1 frank frank  629 Feb  4 22:06 test1.html
-rw-rw-r-- 1 frank frank   81 Feb  4 22:05 test1.md
-rw-rw-r-- 1 frank frank 1627 Feb  4 22:17 test1.tex
-rw-rw-r-- 1 frank frank 1627 Feb  4 22:18 test2.tex

以为你的文件后缀是.tex,那么Pandoc就会知道你是想生成LaTeX文档,够贴心。

markdown 转 pdf

如果想转成pdf那么我们需要安装texlive这个工具包,在安装一节中我们已经做过这件事儿了。那么我们就直接运行吧。

[frank@LAPTOP-0OCJTGJR pandoc]$ pandoc test1.md -s -o test1.pdf
[frank@LAPTOP-0OCJTGJR pandoc]$ ll
total 92
-rw-rw-r-- 1 frank frank   629 Feb  4 22:06 test1.html
-rw-rw-r-- 1 frank frank    81 Feb  4 22:05 test1.md
-rw-rw-r-- 1 frank frank 80599 Feb  4 22:20 test1.pdf
-rw-rw-r-- 1 frank frank  1627 Feb  4 22:17 test1.tex
-rw-rw-r-- 1 frank frank  1627 Feb  4 22:18 test2.tex

进阶

更高级的用法可以参考《Pandoc用户指南》

相关推荐

NodeJs(一)我对NodeJs的认知

欢迎来到我的NodeJs专题系列,更多精彩内容持续更新中,敬请关注!写在前面前面我已经分享了100+篇前端相关的技术文章,都是自己平时工作中遇到的一些问题的问题,还有是我平时自学的内容。但是那些前端文...

「Django框架」-Django初识

Django介绍Django是一个由Python编写的Web应用框架。它源自一个在线新闻Web站点。Django作为一个从新闻系统生成环境中诞生的框架,是直接面向企业级开发的。Django是一个全功能...

什么是PHP?APP开发可以选择PHP编程语言吗?

在开发一款APP的过程当中,一支专业的APP开发团队需要UI设计师、前端开发人员、后端开发人员以及测试等等。而熟练掌握PHP编程语言的人才就相当于APP开发团队中的后端开发人员。一般在APP开发中后端...

php可以做前端吗

php可以做前端吗?php不可以做前端,因为php是在服务器端执行的脚本语言,也就是后端语言,主要适用于Web后端开发领域。php简介:PHP(全称:PHP:HypertextPreprocesso...

PHP多久能学会?比java,python难还是简单呢?

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及PHP自创的语法。利于学习...

java哪有这细糠啊,PHP是世界上最好的语言!

要不说我们要多了解一下其他技术呢,java哪有这好玩应啊。今天分享个php开发的辅助工具:phpenv(当然,php是世界上最好的语言,毋庸置疑)phpenv就是一个开发者工具箱神器,只有拥有了他,你...

Java和Php的对比

(1)开发速度Java是一种面向对象和结构化的语言,开发速度较慢,比如代码更多,耗费较多时间。而PHP是一种解释型语言,开发速度快,代码量少,耗费的时间较少。(2)安全性Java基于字节码形式进行...

php宝塔搭建实战多端壁纸小程序源码一(wordpress后台安装篇)

大家好啊,我是测评君,欢迎来到web测评。本期给大家带来一套php开发的多端壁纸类型的小程序源码,后台是使用wordpress集成的,前端是使用uniapp开发的。今天先给大家分享后台怎么在宝塔里部署...

PHP中的IMAP扩展简单入门

对于邮件处理来说,大家比较熟悉的应该是POP3、SMTP这类的协议,而今天我们介绍的IMAP其实也是非常常用的一种邮件处理协议。它和POP3比较类似,都是以接收处理邮件为主。不过相对于...

【推荐】一款免费、全能型的数据库管理神器,效率提升利器

如果您对源码&技术感兴趣,请点赞+收藏+转发+关注,大家的支持是我分享最大的动力!!!项目介绍HeidiSQL是一款免费的数据库管理工具,适用于与数据库打交道的开发人员和数据库管理员。它支持多种数据...

Php+Vue.js实现的项目管理系统

一个基于Vue.js实现的项目管理系统目前已实现的主要功能项目管理任务管理账号管理文件管理团队管理权限管理多组织管理技术栈PHPVueMySQLRedis相关界面前端源码地址:https://git...

让PHP和Node.js同框共舞:解密php-node的革命性玩法!

你有没有想过,PHP和Node.js有朝一日能在一个进程里握手言和?不是“后端服务调用后端服务”,也不是“前端请求后端接口”,而是——直接共享内存、互传变量、同步执行逻辑。听起来像是幻想,但今天...

8个增强PHP程序安全的函数

安全是编程非常重要的一个方面。在任何一种编程语言中,都提供了许多的函数或者模块来确保程序的安全性。在现代网站应用中,经常要获取来自世界各地用户的输入,但是,我们都知道“永远不能相信那些用户输入的数据”...

Peachpie —— .NET 的 PHP 编译器

Peachpie是一款.NET平台的PHP编译器,主要特性:物联网:可以使用PHP开发WindowsIoT设备应用,至少节省30%的开发支出安全:可以在最安全的平台上运行PH...

PHP的垃圾回收机制-PHP高级面试题+详解

ps:本篇内容包括精选面试题与知识篇。PHP面试题关于PHP的垃圾回收机制,PHP的垃圾回收机制引用计数(referencecounting)GC机制,PHP可以自动进行内存管理,清除不需要的...