这一系列最后一篇文章终于到要解决的问题上,如何将markdown转化为pdf幻灯片。主要将解决如下几个问题:

  1. 命令行默认参数的效果;
  2. 修改模板支持中文;
  3. 可控参数。

其中第一部分,仅仅简单论述一下默认产生幻灯片的问题。第二,三部分相对比较重要,这涉及到最终ppt的效果。需要注意的是,如果掌握beamer的用法,我们永远可以通过生成tex中间文件来解决大部分的问题,markdown仅仅是内容创造时的便利工具。

命令行默认参数的效果

将markdown文件直接转化为beamer的命令如下。

pandoc -t beamer test.txt -o test.pdf

这里假设我们将markdown保存为名字叫做 test.txt的文件中。命令行中-t参数说明要转化为幻灯片的种类。pandoc支持将markdown转化为多种格式的幻灯片,包括利用javascript的一些网页版幻灯片。在这里,我们指定生成latex中beamer格式的幻灯片。-o表示输出文件的类型,这里直接输出pdf格式。当然也可以用后缀说明产生其它格式的文件,比如生成tex,然后我们再手动编译。如下面的markdown,我们分别转化为pdf和tex格式。

% Example
% me
% 3010.3.1# level1 A
## level2 bxi'an## level2 c

下面是pdf格式的截图。

下面是tex源文件。大家会发现它少了tex文件的导言区,这部分在默认的模板当中。

section{level1 A}label{level1-a}begin{frame}{level2 b}xi'anend{frame}begin{frame}{level2 c}end{frame}

由于在默认的条件下,pandoc将markdown中的内容解释什么样的内容有一定的变数,因此输出的行为是不可控的,因此需要命令行提供一些支持,这是我们后面要讨论的内容。首先来看如何支持中文 。

修改模板支持中文

目前对于中文支持比较好的tex引擎为xelatex,因此如果需要支持中文需要选择xelatex引擎。除此之外,我们还要修改pandoc中,markdown转化为beamer的默认模板,加入中文包。具体操作过程以下面的例子说明。

下面是一份中文markdown文件。

% 标题
% 作者
% 时间

首先要导出pandoc中默认模板,命令如下。

pandoc -D beamer > bt.tex

其中-D表示导出默认模板,后面跟导出文件的类型,这里是beamer。由于内容较长我们就不在这里粘贴,在模本文件bt.tex中加入中文支持如下,即把下面这行插入bt.tex文件中。

usepackage[UTF8]{ctex}

最后,利用pandoc转化markdown文件,需要指定新的模板即bt.tex文件和新的引擎xelatex,命令行如下。(假设markdown文件叫做test.txt)

pandoc -t beamer --latex-engine=xelatex --template=bt.tex test.txt -o test.pdf

效果如下图。

可控参数

在命令行还有很多可控制的参数,用来修改生成beamer的结构和风格,现说明几个常用的参数。

1.修改层级

如果在markdown中,并没有强制换页,我们可以指定第级标题转化为一页ppt。如下面的例子。

# level1 A## level2 bhello world### level3xi'an#### level4## level2 c

那么参数行的命令如下,我们分别设定1,2,3来看一下不同的效果。

pandoc -t beamer  test.txt -o test.pdf --slide-level 1

pandoc -t beamer  test.txt -o test.pdf --slide-level 2

pandoc -t beamer  test.txt -o test.pdf --slide-level 3

通过上面的比较,我们可以发现。当第n级标题指定为单独一个frame后,那么高于这一级的标题全部转化为首页的风格,并且高于这一级的内容将被忽略,比如那个hello world的内容,在最后一幅图中就没有显示出来。

2.添加主题和颜色

在命令行,还可以指定形成ppt的风格,命令行如下。

pandoc -t beamer  test.md -o test.pdf --slide-level 1 -V theme=Warsaw -V colortheme=seahor
se

3. 支持在markdown中使用latex

在默认的情况下,在markdown文件中是可以直接使用tex语法的,如下面的例子。我们利用beamer中的column,对第二页进行分列,效果见下面截图。

# level1 A## level2 bbegin{columns}
column{0.5textwidth}
hei
column{0.5textwidth}
Oh
end{columns}

总结

这一系列的文章结束后,在这里总结一下。我认为利用markdown生成beamer的优势在于markdown的语法很简单,我们可以首先将焦点集中在内容的制作上,然后通过工具链生成ppt。并且由于pandoc的扩展和丰富的支持,原则上beamer可以实现的效果,都可以在一份md文件中完成。

这一系列的文章还缺少不少演示中所需要的其它元素,比如插入图片,参考文献和脚注等功能。这些都可以通过阅读手册掌握。如果需要一些高级的画图和标记功能,可能还要熟悉tik这个tex的扩展包。

总之在制作课堂幻灯片和学术演讲风格的场景下,利用这些工具可以方便快捷地实现需要的效果。

beamer插入图片_利用Pandoc将Markdown转化为beamer(七)Pandoc的命令行参数相关推荐

  1. python输入正方形边长值、计算其面积_尝试修改列6.2编写命令行参数解析的程序,解析命令行参数所输入边长的值,计算并输出正方形的周长和面积。_学小易找答案...

    [简答题] [单选题]ZigBee 中每个协调点最多可连接______个节点,一个ZigBee网络最多可容纳______个节点.( ) [资料题]DWord-Ans.pdf 索引和目录.pdf 完成效 ...

  2. 3gpp文件头文件解析_居于LLVM 的命令行参数解析

    在写命令行程序的时候经常需要解析各种命令行参数.打印help信息等,觉得非常的麻烦.今天介绍一种超级棒的命令参数解析的方法:居于LLVM 的命令行参数解析,有了它妈妈再也不用担心我不会解析命令行参数^ ...

  3. opencv 使用命令行参数法显示图片

    imread()函数 返回值,Mat 类型, 即返回读取的图像,读取图像失败时返回一个空的矩阵对象(Mat::data == NULL) 参数1 filename, 读取的图片文件名,可以使用相对路径 ...

  4. 安装rpm包命令_编程模板-R语言脚本写作:最简单的统计与绘图,包安装、命令行参数解析、文件读取、表格和矢量图输出...

    不常用R的朋友,可能并不能意识到好的编辑模板带来的长期效率提高和代码重用性,非计算机专业科研人员且需要使用R语言,此文会对您有帮助. 个人认为:是否能熟悉使用Shell(项目流程搭建)+R(数据统计与 ...

  5. 控制台发送get命令_.NET Core使用命令行参数库构建控制台应用程序

    前言 在我们开发中可能需要设计一次性应用程序,这些实用程序可以利用接近原始源代码的优势,但可以在与主Web应用程序完全独立的安全性上下文中启动.具体在 [管理过程](https://12factor. ...

  6. 命令行参数怎么输入_太好用了!谷歌开源的命令行接口工具fire

    大家使用最多的命令行工具应该是pip了,pip提供了很多的命令行参数和选项,我们在终端使用pip install --help命令可以查看install子命令的帮助文档. 可以看到,除了最常用的pip ...

  7. Go程序:利用命令行参数做四则运算

    1.编写源程序compute.go /* * 功能:利用命令参数进行加减乘除运算 * 日期:2015年6月18日  */ // compute.go package main import (     ...

  8. 终于要把魔爪伸向shell编程了_命令行参数数量预检测——莫韵乐的小脚印笔记

    终于要把魔爪伸向shell编程了_命令行参数数量预检测 有时候我们在时使用shell的时候都需要传入一些参数,但是有时候我们传入的命令行参数数量不正确就很容易发生错误,因此我们需要在需要传入参数的sh ...

  9. 命令行参数在VB中的利用

    分享到 一键分享 QQ空间 新浪微博 百度云收藏 人人网 腾讯微博 百度相册 开心网 腾讯朋友 百度贴吧 豆瓣网 搜狐微博 百度新首页 QQ好友 和讯微博 更多... 百度分享 相册 广场 游戏 kf ...

  10. java 读取excel 图片_利用Java+POI 读写Excel文档向Excel中插入图片

    一.POI简介 Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97- ...

最新文章

  1. 0x15.基本数据结构 — 字符串 (KMP算法(含详细证明)和最小表示法)
  2. idea整合 spring boot jsp mybatis
  3. TensorFlow(4)-TFRecord
  4. Brainstorm-the walkthrough example: Image Classification
  5. 计算机网络 —— 计算机网络的性能指标
  6. 【X264系列】之不同强度的printf
  7. flow使用_使用Microsoft Flow进行文本分析
  8. LeetCode解题思路—滑动窗口法
  9. 设计模式实现一个简单的缓存
  10. Rust:String::from()、 into()、to_string()哪个效率高?
  11. GPS经纬度转84坐标系
  12. cpu超线程优缺点_CPU超线程对游戏帧数有多大影响?
  13. LEARNING ACTIONABLE REPRESENTATIONS WITH GOAL-CONDITIONED POLICIES
  14. 制作U盘引导盘,安装Ubuntu18.04系统
  15. 计算机各键的名称和作用,space是什么键 键盘键位名称及功用详解
  16. 大规模MIMO的信道互易性,信道信息反馈
  17. Robot Toolbox (一):Puma机器人仿真
  18. 论文解读2019INFOCOM_Calibrate: Frequency Estimation and Heavy Hitter Identification with LDP
  19. 31个有点意思数据可视化作品!
  20. 斗鱼html5插件不可用,斗鱼html5插件

热门文章

  1. CentOS7+rsync+sersync实现数据实时同步
  2. bzoj 3514: Codechef MARCH14 GERALD07加强版
  3. 在Sql的where中使用case进行不同字段筛选|Case的2种使用方法和一种少为人知的用途...
  4. 【从C到C++学习笔记】内敛函数/内敛函数与带参数宏的区别/新的类型转换运算符
  5. 基于VS2015的C#的GDAl环境配置
  6. ENVI去除NDVI/EVI异常值、NAN(not a number,无效值)、无穷大(inf)
  7. 【劲峰论道时空分析技术-学习笔记】5 时空格局和异常探测
  8. 【劲峰论道时空分析技术-学习笔记】2 时空可视化
  9. Unable to allocate bufptr memory (errval = -1)(CRLF与LF格式转换)问题的解决
  10. 搭建rtmp推流服务器