概述
為什么使用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完成制作幻燈片的任務了。