Pandoc 实用教程

2023-10-29

Pandoc 是一种将各类文件互相转换的工具,例如 docx、html、markdown、epub、pdf 等,在一些 markdown 写作工具中,它常被用作导出工具的一种。

Pandoc 的安装

安装方法有很多种。

方案一:直接通过 Pandoc 提供的安装包

下载链接在 github

方案二:包管理应用

  1. Mac 用户可以通过 Homebrew 来安装,brew install pandoc
  2. Ubuntu / Debian 用户可以通过 sudo apt install pandoc 来安装
  3. CentOS 可以通过 yum install pandoc 来安装
  4. 也可以安装科学包管理工具 Anaconda ,过程中会自动安装 Pandoc

基础使用

请打开命令行工具。

# 读取文件
pandoc -f 输入格式 -t 输出格式 -o 输出文件名 输入文件
# 读取网页
pandoc -f html -t 输出格式 -o 输出文件名 --request-header User-Agent:"Mozilla/5.0" \
  https://www.fsf.org

可以通过以下命令查看更多选项帮助

pandoc --help
# 或
man pandoc

常见的输入 / 输出格式

格式 参数
CSV 表格 csv
Word 文档 docx
EPUB 电子书 epub
HTML 网页 html
Markdown 文档 markdown
PDF 文档(仅支持输出) pdf
PPt 文档(仅支持输出) pptx
JSON 数据 json

可以通过指令查看支持的格式

pandoc --list-input-formats
pandoc --list-output-formats

导出 Word 文档设置

--toc # 生成目录
--toc-depth=NUMBER # 生成的目录深度
--wrap=auto|none|preserve # 文字换行方式
--reference-doc=FILE # 指定模板

默认的 word 模板可以通过命令来查看

pandoc --print-default-data-file reference.docx > custom-reference.docx

默认的模板出现将在当前目录下的 custom-reference.docx 下,你可以对各个文字样式、默认表格样式进行修改。
Mac 的用户需要注意,使用 Pages 对模板文件进行修改会导致模板失效,需要使用 Office 进行编辑,并使用兼容模式进行保存。

文字样式可以在开始菜单中,找到对应的样式,进行修改
在这里插入图片描述
表格样式需要选中文档中的表格部分,选择 表格工具 > 设计 > 修改表格样式 来修改
在这里插入图片描述

修改完成后,可以通过 --reference-doc=custom-reference.docx 来指定模板。
也可以将模板文件放置到 Pandoc 的数据文件夹下,并命名为 reference.docx,后续 Pandoc 将把这个文件作为默认模板进行使用。
这里的数据文件夹,可以在 pandoc -v 指令的打印信息中,通过 data-dir 字段来获取。

导出 HTML 网页设置

-s 或 --standalone # 在生成的 html 文件中包含 head、body 等 html 文件的必要组成部分
--self-contained # 内嵌资源,不产生任何外部依赖
--data-dir=DIRECTORY # 读取资源的目录
# 模板设置
--template=FILE|URL # 使用模板进行渲染
-V KEY[=VAL], --variable=KEY[:VAL] # 将模板中的变量设置为对应的值

我们可以定制模板

pandoc --print-default-template=html > template.html # 查看默认的模板,并输出到 template.html

导出 EPUB 文档设置

--epub-cover-image=FILE # 设置封面
--epub-metadata=FILE # 设置媒体信息
--epub-embed-font=FILE # 设置字体

设置 metadata

metadata 是导出格式中的一些信息,例如作者、日期、简介等等,在 EPUB、PDF、Word 等格式中有一定作用。
可以在命令行中指定 metadata

-M KEY[=VAL], --metadata=KEY[:VAL] # 将 KEY 的内容设置为 VAL
--metadata-file=FILE # 读取 FILE 中的内容作为 metadata

也可以在文件中顶部对 metadata 进行声明,使用 YAML 语法

---
# 该部分必须在文档的顶部
# 顶部和底部的 三个横线必须保留
title: 标题
author:
- 作者 1
- 作者 2
date: 日期
keywords: [关键词 1, 关键词 2]
abstract: |
  第一段

  第二段
---
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandoc 实用教程 的相关文章

随机推荐

  • 数据可视化python,绘制饼图,代码和解析

    饼图样式 使用matplotlib pyplot pie绘制 代码描述 import matplotlib pyplot as plt import pandas as pd 定义饼状图的标签 标签是列表 timeData pd read
  • Leetcode刷题(14. 最长公共前缀)

    Leetcode刷题 14 最长公共前缀 一 题目 二 代码 C 三 提交记录 四 备注 一 题目 编写一个函数来查找字符串数组中的最长公共前缀 如果不存在公共前缀 返回空字符串 示例 1 输入 flower flow flight 输出
  • 延长线段ab到c的画法有几种_垂直与平行的画法

    点击蓝字关注我们 垂直与平行的画法 现在中考对作图要求越来越高 作图是对我们应用数学基本定理 性质以及动手能力的一种考察 问题的关键在于学生平时忽视了定理 性质的重要性 甚至初三念完了书还是新的 通过作图 对定理和性质进行理解记忆 问题1
  • 使用Python爬取不同类别的豆瓣电影简介

    使用Python爬取不同类别的豆瓣电影简介 之前做过一点文本分类的工作 从豆瓣上爬取了不同类别的数千条电影的简介 爬取目标 我们爬取的目标是 豆瓣影视 打开豆瓣网 随便点击一部电影 即可看到电影的介绍 评论等信息 我们需要爬取的是电影的简介
  • sed与awk读书笔记[sed篇]

    简介 个人基础及笔记重点 sed基础 常用参数包括 寻址包括 常用命令包括 标志flags 正则表达式 sed高级这一章要详细讲解要不迷惑性太大举例 N命令 D命令 跳转命令aba 跳转命令ata hHgGx利用保持空间的命令 熟悉例子 最
  • Idea工具的使用

    文章目录 一 IDEA的使用 二 IDEA工具的快捷键以及一些简单的设置 1 字体设置 2 快速生成main方法 psvm 3 快速生成System out println sout 4 注意 IEDA是自动保存 不需要ctrl s 5 删
  • Python+Opencv 提取图片中某种颜色组成的图形

    主要目标识别图中红色的裂缝 尝试了几种不同的方法 最后发现比较每一点的RGB差值可以很好的解决这个问题 也就是提取图片中的红色相关信息 处理结果如下 实现的代码如下 注意opencv读入的图片通道顺序是bgr import cv2 impo
  • AWG线规对照表

    AWG American Wire Gauge 是美国电线标准的简称 AWG值是导线直径 以英寸计 的单位 其中 4 0表示0000 3 0表示000 2 0表示00 1 0表示0 例如 常用的电话线直径为26AWG 约为0 4mm 下表是
  • 停更一次博客

    明天微机原理复习 下周补两次博客
  • scala 的模式匹配与类型系统

    主要内容 1 scala模式匹配 2 scala类型系统 scala模式匹配 scala中的模式匹配与java中的switch case很类似 但是不同的是java中switch case只能匹配值 而scala模式匹配更强大 还可以对类型
  • execjs._exceptions.ProcessExitedWithNonZeroStatus

    报错如下图 提示我292的换行符有问题 刚开始我以为是我服务器的nodejs环境没有配好 就忽略了换行错误 后面发现nodejs已经配置好了 才转过来正视这个问题 在gitlab的textview里发现了端倪 在pycharm里面根本发现不
  • 三路红外arduino循迹小车(两驱-----黑线循迹)

    原理 红外传感器检测到黑线 红外光被吸收 其对于的led将不亮 反之无黑线 红外光被反射接收 点亮led 源代码是我借鉴他人加以修改的 代码也很简单 缺点就是跑不快 一旦快了容易冲出巡线轨迹 define STOP 0 define FOR
  • SpringBoot+Netty+WebSocket 实现消息推送

    关于Netty Netty 是一个利用 Java 的高级网络的能力 隐藏其背后的复杂性而提供一个易于使用的 API 的客户端 服务器框架 Maven依赖
  • Zotero使用分享(一)——导入文献、管理文献、引用文献

    Zotero使用分享 一 导入文献 管理文献 引用文献 0 为什么要用文献管理工具 1 Zotero是什么 2 安装 3 添加资源到Zotero 3 1 通过文献DOI导入 3 2 从剪贴板中导入 3 3 利用EndNote导入 3 4 用
  • BindingException: Invalid bound statement (not found)

    org apache ibatis binding BindingException Invalid bound statement not found com UserInfoMapper listByRole 报错描述 程序一直可以正常
  • NTSC、PAL、SECAM三大制式简介

    NTSC PAL SECAM三大制式简介 NTSC PAL和SECAM是全球三大主要的电视广播制式 这三种制式是不能互相兼容的 例如在PAL制式的电视上播放NTSC的视频 则影像画面将不能正常显示 下面分别对这三种制式进行简要介绍 NTSC
  • Deeplabcut----(1)新建自己的训练(单只动物)

    Deeplabcut新建自己的训练 本教程最后使用Autodl云平台跑代码 本地电脑上只是进行数据标注 建议直接新建多动物训练 比单动物的项目能干的事多 也能对单动物进行预测 个人使用感觉还是mmpose预测新视频和图片的正确率更高 整个文
  • 阿里云服务器安装及部署canal

    阿里云服务器安装及部署canal 1 环境部署 1 1 mysql开启binlog模式 1 查看当前mysql是否开启binlog模式 SHOW VARIABLES LIKE log bin 如果log bin的值为OFF是未开启 为ON是
  • 多线程学习十九:生产者消费者

    异步模式之生产者 消费者 定义 与前面的保护性暂停中的 GuardObject 不同 不需要产生结果和消费结果的线程一一对应 消费队列可以用来平衡生产和消费的线程资源 生产者仅负责产生结果数据 不关心数据该如何处理 而消费者专心处理结果数据
  • Pandoc 实用教程

    Pandoc 是一种将各类文件互相转换的工具 例如 docx html markdown epub pdf 等 在一些 markdown 写作工具中 它常被用作导出工具的一种 Pandoc 的安装 安装方法有很多种 方案一 直接通过 Pan