Beamer
介绍
Beamer是一个生成演示稿的 LaTeX 环境. 它包括了以下特性:
- 在演示稿中自动生成结构化的元素(例如 Marburg 主题)。 在演示稿中,这个特性可以为观众提供了视觉参考。
- 对组织演示稿有很大的帮助。
- 主题
- 完全支持 LaTeX
优点
在 Org 模式中用 Beamer 有很多好处,Beamer的优点,很多都继承自org:
- 写作效率高,用org模型写beamer,熟悉之后,发现效率会明显提高很多,不 用费心思去安排格式排版。
- 和org模式兼容,用org模式写的论文等文章,可以方便的copy出来,写幻灯片。
- Org 模式很简单,语法通常更容易使用,可以不关注排版,更关注写作内容。排版出来的效果又很惊 艳。Beamer的各种模版制作出来的幻灯片也有很好的效果。
- 与 org-babel 绑定在一起,实时语法高亮源码和内嵌结果。
- 对代码段的支持很好
安装配置
安装latex
我的环境是macos,在mac上,安装的时候,先到latex的网站下载镜像, MacTex官网下载地址是,http://www.tug.org/mactex/mactex-download.html 下载后直接点击安装即可。
安装代码支持
代码高亮支持,建议使用minted。使用minted需要安装python环境,以及 Pygments模块,因为minted依赖于该模块提供超过300种语言的语法高亮。 Pygments建议直接到官网下载whl包,直接用以下命令安装
brew install Pygments-2.15.1-py3-none-any.whl
minted支持很多代码显示效果,可以到网上查看效果,常见的有以下几种
- manni
- vs
- pastie
- autumn
- emacs
- tango
- rrt
- manni
配置
emacs配置
emacs中的配置如下,注意要引入ox-beamer包。
(require 'ox-beamer)
;;--------------------------begin latex---------------------------
(with-eval-after-load 'ox-latex
(add-to-list 'org-latex-classes
'("ctexart"
"\\documentclass[UTF8,a4paper,12pt]{ctexart}
\\setcounter{secnumdepth}{4}
\\usepackage[linkcolor=blue,citecolor=blue,backref=page]{hyperref}
\\hypersetup{hidelinks}
\\usepackage{xeCJK}
\\usepackage{color}
\\usepackage{xcolor}
\\usepackage{fontspec}
\\usepackage{geometry}
\\geometry{top=2cm,bottom=2cm,right=2cm,left=2.5cm}
\\geometry{headsep=0.5cm}
\\usepackage{setspace}
\\setlength{\\baselineskip}{22pt}
\\setlength{\\parskip}{0pt}
\\usepackage{enumerate}
\\usepackage{enumitem}
\\newcommand{\\xiaosan}{\\fontsize{15.1pt}{\\baselineskip}\\selectfont}
\\newcommand{\\sihao}{\\fontsize{14.1pt}{\\baselineskip}\\selectfont}
\\newcommand{\\xiaosi}{\\fontsize{12.1pt}{\\baselineskip}\\selectfont}
\\newcommand{\\wuhao}{\\fontsize{10.5pt}{\\baselineskip}\\selectfont}
\\setenumerate[1]{itemsep=0pt,partopsep=0pt,parsep=\\parskip,topsep=5pt}
\\setitemize[1]{itemsep=0pt,partopsep=0pt,parsep=\\parskip,topsep=5pt}
\\setdescription{itemsep=0pt,partopsep=0pt,parsep=\\parskip,topsep=5pt}
\\usepackage[super,square,numbers,sort&compress]{natbib}
\\usepackage{minted}
\\usemintedstyle{manni}%{vs}%{pastie}%{autumn}%{emacs}%{tango}%{rrt}%{manni}
\\usepackage{fancyhdr}
\\pagestyle{plain}
\\usepackage{titlesec}
\\titleformat{\\section}[block]{\\normalfont\\xiaosan\\bfseries\\heiti}{\\thesection}{10pt}{\\xiaosan}
\\titleformat{\\subsection}[block]{\\normalfont\\sihao\\bfseries\\heiti}{\\thesubsection}{10pt}{\\sihao}
\\titleformat{\\subsubsection}[block]{\\normalfont\\sihao\\bfseries\\heiti}{\\thesubsubsection}{10pt}{\\sihao}
\\titlespacing{\\chapter} {0pt}{-22pt}{0pt}{}
\\titlespacing{\\section} {0pt}{0pt}{0pt}
\\titlespacing{\\subsection} {0pt}{0pt}{0pt}
\\titlespacing{\\subsubsection} {0pt}{0pt}{0pt}"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}")))
(add-to-list 'org-latex-classes
;; beamer class, for presentations
'("beamer"
"\\documentclass[11pt,professionalfonts]{beamer}
\\mode
\\beamertemplateballitem
\\setbeameroption{show notes}
\\usepackage{graphicx}
\\usepackage{tikz}
\\usepackage{xcolor}
\\usepackage{titletoc}
\\usepackage{ctex}
\\usepackage{xeCJK}
\\usepackage{amsmath}
\\usepackage{lmodern}
\\usepackage{polyglossia}
\\usepackage{verbatim}
\\usepackage{minted}
\\usepackage{soul}
\\usepackage{textcomp}
\\usepackage{marvosym}
\\usepackage{wasysym}
\\usepackage{latexsym}
\\usepackage{amssymb}
\\usepackage{/Users/lhl/org/styles/zyuebeamer}
\\subject{{{{beamersubject}}}}"
("\\section{%s}" . "\\section*{%s}")
("\\begin{frame}[fragile]\\frametitle{%s}"
"\\end{frame}"
"\\begin{frame}[fragile]\\frametitle{%s}"
"\\end{frame}")))
(add-to-list 'org-latex-packages-alist
'("UTF8,fontset=macnew" "ctex" t ))
(setq org-latex-default-class "ctexart")
;; (setq org-latex-logfiles-extensions
;; (quote ("lof" "lot" "tex~" "tex" "aux"
;; "idx" "log" "out" "toc" "nav"
;; "snm" "vrb" "dvi" "fdb_latexmk"
;; "blg" "brf" "fls" "entoc" "ps"
;; "spl" "bbl" "xdv")))
(setq org-latex-listings 'minted)
(setq org-latex-minted-options
'(("framesep" "2mm")
("baselinestretch" "1.2")
("linenos=true")
("fontsize" "\\footnotesize") ;
;; ("bgcolor" "LightGray")
("breaklines" "true")
("breakanywhere" "true")
))
(setq org-latex-pdf-process '("xelatex -shell-escape -interaction nonstopmode %f"
"xelatex -shell-escape -interaction nonstopmode %f"))
)
;;\\ctexset{section={format=\\raggedright \\sihao \\heiti}} ;标题靠左
;;\\usepackage[super,square,numbers,sort&compress]{natbib} ;引用标号
;; \\usepackage{amssymb} ;数学公式包
;; \\usepackage{mathrsfs} ;数学公式包
;; \\usepackage[namelimits]{amsmath} ;数学公式包
;; \\usepackage{tikz} ;绘图包,流程图,脑图
;; \\setmainfont{Times New Roman} ;全局设置字体
;; \\usepackage{ulem} ;下划线等标记
;; \\usepackage{fancyhdr} ;设置页眉页脚
;; \\pagestyle{fancy}
;; \\fancyhead{}
;; \\fancyhead[CO,CE]{\\leftmark}
;; \\institute{{{{beamerinstitute}}}} 指定学校
snippet配置
snippet中,可以定义一个beamer模版,方便创建beamer文件头,如下:
# -*- mode: snippet -*-
# name: beamer
# key: <beamer
# --
#+TITLE: $1
#+SUBTITLE: sub name of the slide
#+AUTHOR: name
#+EMAIL: name@xxx.com
#+DESCRIPTION:
#+KEYWORDS:
#+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t
#+OPTIONS: TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
#+startup: beamer
#+LaTeX_CLASS: beamer
#+LaTeX_CLASS_OPTIONS: [bigger,aspectratio=169]
#+columns: %45ITEM %10BEAMER_env(Env) %10BEAMER_act(Act) %4BEAMER_col(Col) %8BEAMER_opt(Opt)
基础用法
列表,表格,链接,标签
列表、表格、链接、标签等等所有的编辑功能,都跟org模式完全一样,区别是每个三级标题下的内容,注意 不要写的过多,否则显示效果不好。
二级标题构成一个幻灯片,一级标题构成大纲。三级标题可以构成colum,block 等。
属性设置
属性设置都以PROPERTIES开始,以END结尾,中间可以填入不同的设置项,
具体参数见下图。
-
BEAMER_col 控制列宽度,0.5表示一半宽度。
-
BEAMER_env 控制列外观,值可以是 ignoreheading 、 block 等等。
-
BEAMER_envargs 可以控制列对齐,默认是中间对齐,改成顶部对齐的值为 C[t] ;设置为 <2-> 之类的值,可以控制停顿。
根据官方文档的描述,其他属性的用处如下:
分列布局
分列布局,在beamer中有个熟悉设置方式,如下
:PROPERTIES:
:BEAMER_env: column
:BEAMER_col: 0.3
:END:
通过以上参数设置,可以指定列宽为0.3页面宽度。在org中,可以使用快捷建 C-c C-n 选择需要的属性,文档中会自动插入以上代码。
注意,有时候快捷键不起作用,原因未知。 可以参考网上的说法,试试效果
有一点小小的不爽,在扩展beamer snippet之后,要在第一行 startup: beamer 上做 C-c C-c ,才能使 C-c C-b 组合键起作用。
建议以上各种属性都实验一下。
block布局
block布局是beamer中一个很有用的功能。可以在幻灯片中写出不同显示效 果的块,块同样可以指定宽度,如下
:PROPERTIES:
:BEAMER_env: block
:BEAMER_col: 0.6
:END:
BEAMER_ACT
beamer_act可以控制这一帧的显示顺序。pdf中,是通过生成多张页面,显示的 时候重叠起来。
BEAMER_act: [<+->]
如果需要三个block按先后顺序显示,可以用以下方式
:PROPERTIES:
:beamer_act: <1>
:BEAMER_col: 0.3
:BEAMER_ENV: block
:END:
a picture link
:PROPERTIES:
:beamer_act: <2->
:BEAMER_col: 0.3
:BEAMER_ENV: block
:END:
b picture link
:PROPERTIES:
:beamer_act: <3->
:BEAMER_col: 0.3
:BEAMER_ENV: block
:END:
c picture link
其中,a图片显示后,在后续b图显示出来时会消失,但b,c一直存在。
shrink 幻灯片
如果代码比较多,需要缩小显示,可以用shrink参数,如下:
:PROPERTIES:
:BEAMER_env: fullframe
:BEAMER_opt: [shrink=5]
:END:
可以在一个幻灯片中缩小显示,效果如下:
colorbox
#+LaTeX: \setbeamercolor{myblockcolor}{bg=magenta,fg=white}
* myblockcolor :B_beamercolorbox:
:PROPERTIES:
:BEAMER_env: beamercolorbox
:BEAMER_opt: wd=6cm,rounded=ture,center
:END:
可以指定特殊的颜色。
进阶功能
安装beamer模版
beamer 有很多默认的模版,各模版的显示效果可以从这个网站查看。 https://hartwork.org/beamer-theme-matrix/
大部分情况下,使用默认的模版,效果就已经足够满意了。如果自己有定制效果, 可以自己修改模版,或者从网上查找模版。
下载的模版大都是sty文件类型,可以下载这个sty文件和相关的依赖文件,放到 写beamer文档的目录下,写的时候引入包即可。可以在.emacs配置文件中引用这个模版。具体 配置方式参考下一节。