又逢一年毕业季。我作为万千毕业生的一员,也开始紧锣密鼓地着手毕业设计的工作。

大半夜的开始写这,我脑子也有点晕晕的,先挖个坑! 坑已填,请放心食用。

使用 latex 写论文

为了使得整体效果更清楚明了,我从 word 转移到了 latex,使用了我校学长制作的模版,刚上手有几个问题:

一每逢双页为空白页,作者说是双面打印设置的问题,在文件中添加 \setboolean{@twoside}{false} 即可解决。

二是文件夹用途,其中 figures 包含论文中的所有图片,作者应该配置过了,在 chapter 文件夹中的所有 tex 文件添加图片时只需要填写文件名即可,不需要考虑路径问题。chapter 的作用很明了,包含不同页面的渲染,值得一提的时里面的 conclusion.tex 需要将 \chapter*{Conclusions} 中的星号去掉,否则无法生成最后的目录,因为不知道总结在第几章节。最后 bib 文件夹,里面只包含了 tex.bib 文件,我只需要把谷歌学术里面的 bib 格式的引用复制下来就好了。

三是由于不明原因,在 mac 上采用 VScode 中的 Latex Workshop 插件,对于整体目录的渲染有时是存在问题的(抽风机),对于引用是一直存在的问题(ref编号会变成问号),而通过本地编译导出的 pdf 倒是没问题。

不过 Latex Workshop 功能还是非常强大呀!插件的渲染是实时更新的,并且在报告中引用的图片可以通过鼠标悬浮在图片名称上预览。

第一次遇到需要一堆 latex 文件联合起来渲染的情况,还挺多东西需要摸索。比如章节里面通过 \chapter{章节名}\section{小节名}\subsection{子小节名} 来梳理文章结构,正文部分 main.tex 采用 \include{} 按顺序来引入不同的章节。

目前我只是遇到啥问题去思考啥问题,没有去了解 latex 编译系统性项目的原理和语法格式,通过这个项目,我也了解到 latex 有不止一种的编译器,不同的编译器有不同的规则,我还对此挺好奇的,以后要是研究了写一篇文章整理整理。

题外话:前几天无意中看到一个图灵奖获得者 Donald Knuth(很多知名书籍的作者!),同时也是 TeX 排版系统的发明者。再一次受到了震撼,优秀的人,在生活上遇到了问题(Knuth 不喜欢新的排版系统),不是想着去回避或者留给别人解决,而是自己去研究和探索!我觉得这是每一个科研人员应该具备的精神!

学长制作的论文格式里,不允许目录有跳转行为,但我个人希望能跳转(没查到我校关于英文论文格式的规定,不知道符不符合要求😅),只需要设置两个地方:在 sustcthesis.cls 里面把 linkcolor=red 改为黑色;然后注视掉 main.tex 中的以下内容:

\makeatletter
\let\Hy@linktoc\Hy@linktoc@none
\makeatother

大功告成!

beamer 使用指南

前面是一堆冗长的关于我用 latex 写论文的一些心得,终于进入正题。初次接触用 latex 制作的 PPT 是在人工智能的 tutorial 课上,助教每次提供的幻灯片以蓝色为底,整整齐齐的,当时就觉得好漂亮!由于这次答辩我需要用到很多公式,所以用 latex 制作PPT再合适不过了!我最开始去 github 搜了搜模版,找到了敲定了这家,我很喜欢他们家的姨妈红。

beamer 介绍

Beamer 是一个用于创建演示文稿 LaTeX 的文档类。它同时支持 LaTeX + dvips、pdfLaTeX、LuaLaTeX 以及 XeLaTeX。

它由 Till Tantau 在2003年2月准备博士论文答辩时创建,并在一个月之后发布在 CTAN 上

Beamer 兼容LaTeX常见的命令,和其他宏包的兼容性良好。当然也有支持 Beamer 语法的图形界面,如 AUCTEX 和 LyX。Beamer也可以通过使用兼容包来支持其他LaTeX演示文稿宏包的语法,包括 Prosper 和 Foils。

Beamer 版本的hello, world

\documentclass{beamer}        %使用beamer文档类
\begin{document}              
\begin{frame}                 %frame:新建一个幻灯片
hello, world
\end{frame}
\end{document}

我们可以把 document 看作一份 PPT,frame 看作一份 PPT 中的每一页。

在 Beamer 文档中,可以用 \part\section\subsection 等结构命令,但是不能用 \chapter

使用中文字符

引入 ctex 或者是 ctexcap 宏包:

\usepackage[UTF8,noindent]{ctexcap}

其中 noindent 是为了阻止 ctex 宏包引入的段前缩进(默认设置)。像论文报告的撰写需要缩进,而 PPT 就没必要了。

PPT frame 的基本设置

第一页:

\title {设置标题}
\subtitle {设置小标题}
\author {设置作者}
\institute {设置学院机构} % 我在模版里写作 \institute[机构缩写]{邮箱}
\date {设置日期}

⚠️ 上述内容建议放在导言区,在相应的帧插入 \titlepage,但也可以直接插入相应的帧。

标题:

\begin{frame}{标题}{小标题}
% 内容
\end{frame}

\begin{frame}
	\frametitle{标题}
  \framesubtitle{小标题}
  % 内容
\end{frame}

插入目录帧

\begin{frame}
  \frametitle{Outline}
  \tableofcontents
\end{frame}

而放在目录的每一个小节可以用 \section 来划分,和写文档一样。目录最后显示的内容就是每一个 section 的标题。

可以通过设置 \tableofcontents[hideallsubsections] 选项表示不显示小节标题。

⚠️ 我编译出来的 pdf 总是存在目录消失的情况,不知道在 \tableofcontents 前面预先放好每小节的信息会不会 OK? 经测试,渲染依然不定期抽风,暂时无解。

2020/3/29, 22:21 update: 经查明,这是我自己的问题。原来的代码中有很多错误,把错误修正之后就没问题了。有一个错误是没有引入宏包,复杂的多项合并的表格需要使用 \usepackage{multirow},难怪我当时的表格怪怪的,还有数字…

插入列表元素

论文的总结部分总是避免不了1234…

\begin{enumerate}
  \item 
  \item 
  \item
\end{enumerate}

以上时带编号的元素,如果不需要编号,使用

\begin{itemize}
  \item 
  \item 
  \item
\end{itemize}

主题

我的毕设主题是这样的:

image.png

为了实现这样的风格,设置如下:

\usetheme{CambridgeUS}

主题多种多样,可以到这里或是这里预览各种主题的效果。

内部主题

内部主题主要控制的是标题页,列表项目、定理环境、图表环境、脚注在一帧内的内容格式。

预定义的内部主题格式有default、circles、rectangles、rounded、inmargin等。

命令:\useinnertheme

外部主题

外部主题主要控制的是幻灯片顶部尾部的信息栏、边栏、图标、帧标题等一帧之外的格式。

预定义的外部主题有default、infolines、miniframes、smoothbars、sidebar、split、shadow、tree、smoothtree等。

命令:\useoutertheme

色彩主题

色彩主题控制各个部分的色彩。

预定义的色彩主题包括default、albatross、beaver、beetle、crane、dolphine、dove、fly、lily、orchid、rose、seagull、seahorse、sidebartab、structure、whale、wolverine等。

命令:\usecolortheme

字体主题

字体主题则控制幻灯片的整体字体风格。

预定义的beamer字体主要包括default、professionalfonts、serif、structurebold、structureitalicserif、structuresmallcapsserif等。

其中默认字体主题default的效果是整个幻灯片使用无衬线字体,这是多数幻灯片的选择;

serif主题则是衬线字体,不过此时最好使用较大的字号和较粗的字体;

professionalfonts不对字体有特别的设置,需要使用另外的专门的宏包进行设置;

structure开头的几个主题则对beamer中的几个结构有特别设置。

例如:arev宏包,这个宏包是专门为制作幻灯片设计的无衬线字体包,对正文字体和数学字体都有详细的调整,因此不需要对beamer做额外的设置。

命令:\usefonttheme

插入图片

首先在开头引入 graphicx 宏宝,即:

\usepackage{graphicx}

在插图的地方引入以下代码即可:

\begin{figure}
\centering
\includegraphics[height=0.5\textheight]{picture.jpg}
\caption{图片名称}
\end{figure}

beamer还提供了一个\logo命令,把一个较小的图标放在幻灯片的角落里面,可以用它来放置校徽、公司商标等内容。

\logo命令一般放在导言区,如果有一张图片名为logo.pdf,那么可以引入 \logo{\includegraphics{logo.pdf}} 来插入它。

插入表格

在导言区插入 \documentclass[table]{beamer}

随后在需要插表的地方使用以下代码:

\rowcolors{2}{craneorange!25}{craneorange!50}
\begin{tabular}{r|r|r}
\rowcolor{craneorange}直角边 $a$ & 直角边 $b$ & 斜边 $c$\\
3 & 4 & 5 \\
5 & 12 & 13 \\
7 & 24 & 25 \\
8 & 15 & 17 \\
\end{tabular}

上述代码的解读:

首先表格的行是由两种颜色组成的。它的色彩主题是在crane下的。25表示的是颜色的浓度值,越小的话颜色越淡。表示是两行交错的颜色。

表格的基本结构 \begin{tabular}... \end{tabular} {r|r|r} 表示的意思是这个表格有三列,中间有两个竖线做划分。里面的内容是靠右的。当然,如果你需要表格的内容靠左,你就可以写为 {l l l}

& 可以看做是每个参数之间的一个划分

插入区块等元素

区块环境

\begin{block}{标题} 
区块中的内容 
\end{block} 

提醒环境

\begin{alertblock}{标题} 
提醒的内容 
\end{alertblock} 

例子环境

\begin{exampleblock}{标题} 
例子内容 
\end{exampleblock} 

定理环境

\begin{theorem}{标题} 
定理内容 
\end{theorem} 

各种可用的定理类环境有这些:theorem、corollary、definition、 definitions、fact、lemma、example 和 examples。

在 Beamer 中定理名默认是英文显示的,如果要改为中文显示,还需要其他的处理。

证明环境

\begin{proof}{标题} 
证明的内容 
\end{proof} 

内容位置摆放

在 Beamer 的每张幻灯片中,正文内容默认是竖直居中的。

如果你想要竖直居上,只要在文档类中加上 t 选项就可以了,即: \documentclass[t]{beamer}

如果你只需要让某张幻灯片的正文内容竖直居上、居中或者居下,可以在 frame 环境中分别加上 tc 或者 b 选项。

例如: \begin{frame}[b] Hello Beamer from the Bottom! \end{frame}

加入空行

使用以下代码:

\hspace*{\fill} 

总结

这篇文章介绍了有关 beamer 的简单使用,顺带穿插了使用 latex 写文稿的一些事儿。之后也许会深入有关 beamer 的制作问题,我有个设计我校毕业答辩模版的想法。同时有关 latex 的探索不会止步,毕竟它看起来还挺深奥的,之后预计会以“问题-解决方案”的思路来发相关文章。

参考资料

因为也不是什么深入学习 latex 语法,我就先参考参考博客,不是专业的资料,若有错误,请多指教!

  1. Beamer初次使用
  2. 维基百科词条:Beamer
  3. 用Beamer制作幻灯片(卷一 基本架构篇)
  4. 用Beamer制作幻灯片(卷二 色彩篇)