用 Pandoc 写幻灯片
% 用 Pandoc 写幻灯片
% gongqijian
% 2012/11/09
# 准备工作
- 安装`pandoc`
$ wget http://pandoc.googlecode.com/files/pandoc-1.9.4.2.dmg
$ hdiutil attach pandoc-1.9.4.2.dmg
$ sudo installer -pkg /Volumes/pandoc\ 1.9.4.2/pandoc-1.9.4.2.pkg -target "/"
- 从网上下载一份`markdown`示例:
$ wget http://johnmacfarlane.net/pandoc/demo/SLIDES
或者自己用键盘敲一遍:
$ cat >SLIDES<<EOF
% Eating Habits
% John Doe
% March 22, 2005
# In the morning
- Eat eggs
- Drink coffee
# In the evening
- Eat spaghetti
- Drink wine
# Conclusion
- And the answer is...
- ![](image.png)
EOF
# 生成幻灯片文件
`pandoc`支持 `dzslides`、`slidy`、`s5`、`slideous` 几种,以 `slidy` 为例:
$ pandoc -s --webtex -i -t slidy SLIDES -o SLIDES.html
用浏览器打开`SLIDES.html`看,一共四页,按左右键可以翻页,效果不错:
![](f1.png)
但是生成的这个`.html`里使用了网上的资源:
<link rel="stylesheet" type="text/css" media="screen, projection, print"
href="http://www.w3.org/Talks/Tools/Slidy2/styles/slidy.css" />
<script src="http://www.w3.org/Talks/Tools/Slidy2/scripts/slidy.js.gz"
charset="utf-8" type="text/javascript"></script>
离线就没法展示了。
## 单文件形式
`pandoc`有个参数叫做`--self-contained`,它把所有在线、本地的资源都塞到`.html`里:
$ pandoc -s --webtex -i -t slidy SLIDES -o SLIDES-all-in-one.html --self-contained
这下即使没有网络也无忧了。不过,加了这个参数之后,生成的`.html`文件尺寸大增,要是图片多一些,岂不浪费磁盘空间?
## 使用本地css/js文件
`pandoc`还提供参数指定模板地址,如果模板是`slidy`,相应地使用`-V slidy-url`参数:
$ pandoc -s --webtex -i -t slidy -V slidy-url=/usr/local/share/pandoc-1.9.4.2/slidy SLIDES -o SLIDES.html
不过这样生成`.html`似乎有些错乱:
![](f2.png)
浏览器不支持本地`.gz`文件吗?只好手动了,把`js.gz`改成`js`:
$ sudo gzip -d /usr/local/share/pandoc-1.9.4.2/slidy/scripts/slidy.js.gz
$ sed -i "" -e '1,/js\.gz/s/js\.gz/js/' SLIDES.html
总算正常了,不过最好还是使用相对路径:
$ cp -r /usr/local/share/pandoc-1.9.4.2/slidy ./
$ pandoc -s --webtex -i -t slidy -V slidy-url=./slidy SLIDES -o SLIDES.html
$ sed -i "" -e '1,/js\.gz/s/js\.gz/js/' SLIDES.html
这样拷到别人电脑上也能正常播放了。
# **pandoc**的好处
- 有几种模板可选
- 无需额外的语法标识,如果使用`showoff`,必须像这样写:
!SLIDE bullets incremental
# 第一页
- 条目1
- 条目2
- 条目3
--------------------------------------------------------------------------
简单的问题复杂化,我赢了。
% gongqijian
% 2012/11/09
# 准备工作
- 安装`pandoc`
$ wget http://pandoc.googlecode.com/files/pandoc-1.9.4.2.dmg
$ hdiutil attach pandoc-1.9.4.2.dmg
$ sudo installer -pkg /Volumes/pandoc\ 1.9.4.2/pandoc-1.9.4.2.pkg -target "/"
- 从网上下载一份`markdown`示例:
$ wget http://johnmacfarlane.net/pandoc/demo/SLIDES
或者自己用键盘敲一遍:
$ cat >SLIDES<<EOF
% Eating Habits
% John Doe
% March 22, 2005
# In the morning
- Eat eggs
- Drink coffee
# In the evening
- Eat spaghetti
- Drink wine
# Conclusion
- And the answer is...
- ![](image.png)
EOF
# 生成幻灯片文件
`pandoc`支持 `dzslides`、`slidy`、`s5`、`slideous` 几种,以 `slidy` 为例:
$ pandoc -s --webtex -i -t slidy SLIDES -o SLIDES.html
用浏览器打开`SLIDES.html`看,一共四页,按左右键可以翻页,效果不错:
![](f1.png)
但是生成的这个`.html`里使用了网上的资源:
<link rel="stylesheet" type="text/css" media="screen, projection, print"
href="http://www.w3.org/Talks/Tools/Slidy2/styles/slidy.css" />
<script src="http://www.w3.org/Talks/Tools/Slidy2/scripts/slidy.js.gz"
charset="utf-8" type="text/javascript"></script>
离线就没法展示了。
## 单文件形式
`pandoc`有个参数叫做`--self-contained`,它把所有在线、本地的资源都塞到`.html`里:
$ pandoc -s --webtex -i -t slidy SLIDES -o SLIDES-all-in-one.html --self-contained
这下即使没有网络也无忧了。不过,加了这个参数之后,生成的`.html`文件尺寸大增,要是图片多一些,岂不浪费磁盘空间?
## 使用本地css/js文件
`pandoc`还提供参数指定模板地址,如果模板是`slidy`,相应地使用`-V slidy-url`参数:
$ pandoc -s --webtex -i -t slidy -V slidy-url=/usr/local/share/pandoc-1.9.4.2/slidy SLIDES -o SLIDES.html
不过这样生成`.html`似乎有些错乱:
![](f2.png)
浏览器不支持本地`.gz`文件吗?只好手动了,把`js.gz`改成`js`:
$ sudo gzip -d /usr/local/share/pandoc-1.9.4.2/slidy/scripts/slidy.js.gz
$ sed -i "" -e '1,/js\.gz/s/js\.gz/js/' SLIDES.html
总算正常了,不过最好还是使用相对路径:
$ cp -r /usr/local/share/pandoc-1.9.4.2/slidy ./
$ pandoc -s --webtex -i -t slidy -V slidy-url=./slidy SLIDES -o SLIDES.html
$ sed -i "" -e '1,/js\.gz/s/js\.gz/js/' SLIDES.html
这样拷到别人电脑上也能正常播放了。
# **pandoc**的好处
- 有几种模板可选
- 无需额外的语法标识,如果使用`showoff`,必须像这样写:
!SLIDE bullets incremental
# 第一页
- 条目1
- 条目2
- 条目3
--------------------------------------------------------------------------
简单的问题复杂化,我赢了。
热门话题 · · · · · · ( 去话题广场 )
- 维系精神生活的北京角落 867次浏览
- 身边的科普现场 新话题
- 我在网络上感受到的陌生人善意 361次浏览
- 现代人的“卡夫卡时刻” 1641次浏览
- 一人一杯一口入魂的夏日特饮 1.0万次浏览
- 少年时代的科普读物 新话题