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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM