zoukankan      html  css  js  c++  java
  • 使用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}{%
        egin{tikzpicture}[remember picture,overlay]
            
    ode [xshift=0cm,yshift=0cm] at (current page.center)
                {includegraphics[width=paperwidth, height=paperheight]{background_title.png}};
        end{tikzpicture}%
    }{}

    结论

    有了这些,基本上就可以用markdown完成制作幻灯片的任务了。

  • 相关阅读:
    前后端微服务联调
    Rancher搭建ES容器集群
    Rancher解决磁盘占满异常
    Rancher搭建Redis主从集群
    Rancher搭建NFS持久存储
    Linux普通用户管理
    Rancher部署mysql8
    Delegate背后的秘密
    Java——反射
    redis 操作命令
  • 原文地址:https://www.cnblogs.com/aquastone/p/markdown_slide.html
Copyright © 2011-2022 走看看