使用Markdown+Pandoc+LaTex+Beamer制作幻灯片
概述
为什么使用markdown?
mardown是一种轻量级的标记语言,语法简单,可读性好,并且容易转化成其他格式的文档, 在技术文档撰写中得到越来越广泛的应用。相信大家对markdown都有一定了解,如果不了解搜一下网上有大量结果, 语法可以参考Markdown 语法说明 (简体中文版)。 笔者现在写文档和ppt逐渐的从office转移到了markdown上,它的好处是
纯文本
- 便于编辑
- 可以用版本管理工具进行管理
- 可移植性好
内容和格式分离
- 写作的时候可以专注于内容
- 修改格式时,一处修改,各处生效
本文简单介绍一下用markdown制作幻灯片的过程。
基本过程和工具
mardown制作幻灯片的流程一般是:先用markdown写文本文件,然后使用工具转化为html或pdf等格式。 这个过程如有必要,可修改css或tex模板。 用到的工具有:
- 任何文本编辑器:用于编辑markdown源文件
- pandoc:将markdown转换成其他格式(本文主要介绍pdf)的工具
- latex:pandoc将markdown转换成pdf时,需要用到latex引擎。如果要支持中文,可以装xelatex
- beamer:latex下制作幻灯片的工具包
当然,直接用latex+beamer就可以制作幻灯片,但是需要写tex源文件,比较麻烦而且可读性不如markdown。 所以我采用markdown写内容,tex做模板的方式。
一个基本的幻灯片
编辑markdown源文件
pandoc将markdown的一级标题视为幻灯片组,将二级标题视为幻灯片标题,二级标题下的内容放在一张幻灯片里。 不过,如果某个一级标题下没有二级标题,那么pandoc将把一级标题视为幻灯片标题,将这个一级标题下的内容放在一张幻灯片里, 二级标题显示为子框。
在任何时候,用‘---------’都可以产生一张新幻灯片。
pandoc对markdown有个扩展,在前面加上三行以%开头的内容,分别是标题、作者和日期。
例子如下
% Title
% auther
% date
# This is a group
## This is title 1
This is first slide
- item 1
- item 2
## This is tile 2
This is second slide
-------------
This is third slide
转换为pdf
将上述代码保存为exam1.md,运行
pandoc -t beamer -o exam1.pdf exam1.md
即可生成pdf。
pandoc对markdown的扩展
pandoc出了支持标准的markdown语法,还作了一些很实用的扩展,上面的标题、作者和日期就是。 此外比较实用的还有表格、公式等。详见pandoc的文档。
表格
pandoc支持用文本标识的表格,如
A B C
-- -- --
a b c
或者
| A | B | C |
|---|---|---|
| a | b | c |
公式
pandoc支持latex的公式语法,在$ ... $之间即可插入行内公式。如果要使公式单独占一行, 使用两个$即可,即$$ ... $$。
中文支持
要正常显示中文,需要注意两点:
- 使用xelatex引擎
- 在模板文件中正确配置
首先导出pandoc的beamer默认配置
pandoc -D beamer > beamer-template.tex
在\ifxetex后面加入对中文的支持
\usepackage{xeCJK} % 设置中英文字体
\setCJKmainfont{WenQuanYi Micro Hei} % 中文字体
\setmainfont{Arial} % 英文字体
\setromanfont{Courier New}
\setmonofont{Courier New}
\linespread{1.2}\selectfont % 行距
\XeTeXlinebreaklocale "zh" % 中文自动换行
\XeTeXlinebreakskip = 0pt plus 1pt % 字之间加0pt至1pt间距
\parindent 0em % 段缩进
\setlength{\parskip}{20pt} % 段间距
编译时使用命令
pandoc -t beamer --latex-engine=xelatex --template=beamer-template.tex xx.md -o xx.pdf
实用技巧
设置页面比例
在模板文件的documentclass中加入参数aspectratio=169,即
\documentclass[..., aspectratio=169]{$documentclass$}
即可设置页面比例为16:9(默认为4:3)。
设置背景图片
笔者在工作中,需要使用公司的ppt模板,因此需要设置幻灯片的背景。最终采用的解决方法是这样的:
在模板文件中加入命令
\usebackgroundtemplate{\includegraphics[width=\paperwidth, height=\paperheight]{background.png}}
如果要对标题页单独设置背景,笔者用的是这篇文章里的方法:
\RequirePackage{tikz}
\addtobeamertemplate{title page}{%
\begin{tikzpicture}[remember picture,overlay]
\node [xshift=0cm,yshift=0cm] at (current page.center)
{\includegraphics[width=\paperwidth, height=\paperheight]{background_title.png}};
\end{tikzpicture}%
}{}
结论
有了这些,基本上就可以用markdown完成制作幻灯片的任务了。
使用Markdown+Pandoc+LaTex+Beamer制作幻灯片的更多相关文章
- 使用pandoc制作幻灯片
示例Md % Habits % John Doe % March 22, 2005 # In the morning ## Getting up - Turn off alarm - Get out ...
- Markdown+Pandoc 最佳写作拍档 (mailp.in)
Markdown+Pandoc 最佳写作拍档 我们为什么写作? 自从人们开始写作,写作便是记录.抒发.批判.反省的好工具.从石板上的刻印到笔墨纸砚,再到如今的信息时代.从静态的个人主页到托管博客,从个 ...
- Linux 桌面玩家指南:12. 优秀的文本化编辑思想大碰撞(Markdown、LaTeX、MathJax)
特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...
- Wiz写Blog? 不会再爱了,全面拥抱Markdown+Pandoc
Wiz写Blog? 不会再爱了,全面拥抱Markdown+Pandoc 文章转载自 http://iout.in/archives/454.html 我们为什么写作? 自从人们开始写作,写作便是记录. ...
- Linux 中优秀的文本化编辑思想大碰撞(Markdown、LaTeX、MathJax)
这样一个标题可能不太准确,因为确实无法准确地解释什么叫"文本化编辑思想".其实我这篇随笔主要是想探讨 Markdown.LaTeX.MathJax,有兴趣的朋友可以继续往下看,同时 ...
- Atom支持Markdown和Latex
本篇博客主要用于记录Atom编辑器同时支持markdown和latex: 1.安装 安装方法1: (Windows系统)File->Settings->Install中搜索markdown ...
- Markdown中Latex 数学公式基本语法
原文地址:http://blog.csdn.net/u014630987/article/details/70156489 Markdown中Latex 数学公式基本语法 公式排版 分为两种排版: - ...
- markdown 插入latex公式练习
markdown 插入latex公式 $$公式$$表示行间公式,本来Tex中使用\(公式\)表示行内公式,但因为Markdown中\是转义字符,所以在Markdown中输入行内公式使用\\(公式\\) ...
- Latex表格制作记录
Latex表格制作记录 主要功能 合并表格的行列 长表格的使用 makecell例程借鉴 效果图 参考代码 \documentclass{ctexart} \usepackage{indentfirs ...
随机推荐
- iOS逆传值的三种方式
1.代理 2.block 2.通知中心
- Hibernate Validator验证标签说明
Hibernate Validator是JSR-303的一个实现. 在FormBean里添加Hibernate Validator的注解,与定义一个校验类的做法相比.注解更加简洁.灵活. Bean V ...
- transform原点
Safari 4 Firefox3.5 Opera10.5 Chrome Internet Explorer 目前这两个属性得到了除去ie以外各个主流浏览器webkit,firefox,opera的支 ...
- Android--再探MVP模式
1,上一篇我们已经了解了大致的MVP模式,下面再通过这个登录功能的例子 ,我们能过更加容易的掌握MVP模式,再来补充一些闲外话:MVP 是 MVC 的变种,其实是一种升级.要说 MVP 就要说说 MV ...
- 日常开发使用SVN命令
现在把我日常开发中用到的svn命令总结出来,做个备忘,其实真正用到也就那几个. 如果遇到参数不知道使用或其它困难请使用:svn --help 得到帮助 1)检出: svn co svn地址 本地路径 ...
- cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element ‘dubbo:application’. – schema_reference.4: Failed to read schema document
解决办法: 1.直接百度下载一个dubbo.xsd文件 2.myeclispe-->window-->preferences-->xml catalog-->add 完美解决!
- VS2013 密钥
MXS&Vincene ─╄OvЁ &0000017─╄OvЁ MXS&Vincene MXS&Vincene ─╄OvЁ:今天很残酷,明天更残酷,后天很美好, ...
- s3c2440 移值u-boot-2016.03 第3篇 支持Nor flash 识别
当选择,NOR flash 启用时,才可以访问 NOR FLASH ./common/board_r.c 364 line:initr_flash()flash_size = flash_init() ...
- 芯航线FPGA学习套件之多通道串行ADDA(TLV1544,TLC5620)模块测试手册
芯航线FPGA学习套件之多通道串行ADDA模块测试手册 本手册以简明扼要的方式介绍芯航线FPGA学习套件提供的ADDA模块的测试方法: 连接开发板,如下所示: 2.将ADDA V1.1模块与开 ...
- Rmarkdown用法与R语言动态报告
Rmarkdown用法与R语言动态报告数据分析用R语言非常便捷,因为R语言的社区强大,并且在不断更新和完善,提供了各种分析利器.Knitr和Rmarkdown包则是数据分析中的动态报告利器. 下面是一 ...