-
Notifications
You must be signed in to change notification settings - Fork 3
/
example.tex
281 lines (224 loc) · 7.92 KB
/
example.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
% !TEX TS-program = xelatex
% !TEX encoding = UTF-8
\documentclass[aspectratio=169]{beamer}
% 默认使用hfut-sx主题,可以自由更换
\usetheme{hfut-sx}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage{layout}
\usepackage{minted}
\usepackage[natbib=true]{biblatex}
% biblatex 数据库
\addbibresource{example.bib}
% 幻灯片分页时从第二页开始打印“(续)”
\setbeamertemplate{frametitle continuation}[from second]
% 每一节开始的时候打印目录
\AtBeginSection[]
{
\begin{frame}{目录}
\tableofcontents[currentsection]
\end{frame}
}
\newcommand{\BibTeX}{\textsc{Bib}\TeX{}}
\newcommand{\BibLaTeX}{\textsc{Bib}\LaTeX{}}
\newcommand{\Beamer}{\textsc{Beamer}}
\newcommand{\enableindent}{\setlength{\parskip}{6pt}\setlength{\parindent}{2em}}
% algorithm
\usepackage{algorithm}
\usepackage{algorithmicx,algpseudocode}
\floatname{algorithm}{算法}
\title{HFUT-Beamer使用指南}
\subtitle{以及个人的一些废话}
\author{Fw[a]rd}
\institute{HFUT \TeX{} User Group}
\date{\today}
\begin{document}
\begin{frame}
\maketitle
\end{frame}
\begin{frame}{目录}
\tableofcontents
\end{frame}
\section{\Beamer{}简单入门}
\begin{frame}[fragile]{标题}{和副标题}
一帧幻灯片的标题可以用如下方式指定:
\begin{itemize}
\item \mintinline{tex}{\begin{frame}{标题}{副标题}}
\item \mintinline{tex}{\frametitle{标题}}
\item \mintinline{tex}{\framesubtitle{副标题}}
\end{itemize}
\end{frame}
\begin{frame}[fragile,allowframebreaks]{主题}
\enableindent
\Beamer 的主题有很多,我们提供了三套完整的主题。
\begin{itemize}
\item \texttt{hfut-CambridgeUS}
\item \texttt{hfut-sx}
\item \texttt{hfut-BinChen}
\end{itemize}
这种完整的主题使用\mintinline{tex}{\usetheme}命令指定。
\framebreak
同时,\Beamer 还有很多模块化的颜色(color)、内部(inner)、外部(outer)和字体(font)主题。一般来说完整的主题由这些模块化的子主题构成。我们可以通过以下指令指定这些主题:
\begin{itemize}
\item[color] \mintinline{tex}{\usecolortheme}
\item[inner] \mintinline{tex}{\useinnertheme}
\item[outer] \mintinline{tex}{\useoutertheme}
\item[font] \mintinline{tex}{\usefonttheme}
\end{itemize}
由于维护者的精力有限,本repo提供的主题并未进行这样的模块化,欢迎提交PR进行修正。
\end{frame}
\begin{frame}{Block环境}
Block环境是\Beamer{}的一个特色功能,可以用来引导读者视线,突出幻灯片中的重点内容。
\begin{block}{这是Block的标题}
这是Block的内容
\end{block}
\begin{theorem}<1->
There exists an infinite set.
\end{theorem}
\begin{proof}<2->
This follows from the axiom of infinity.
\end{proof}
\begin{example}<3->[Natural Numbers]
The set of natural numbers is infinite.
\end{example}
\end{frame}
\begin{frame}[fragile]{排版}
\enableindent
很多MS Powerpoint文档拥有复杂的排版,\Beamer{}其实也可以做到类似的效果。
\begin{columns}
\begin{column}{0.45\textwidth}
比如说,\texttt{columns}环境就可以提供多栏的排版格式,这允许你进行左右对照。
\end{column}
\begin{column}{0.45\textwidth}
\begin{minted}{tex}
\begin{columns}
\begin{column}{0.45\textwidth}
% ...
\end{column}
\begin{column}{0.45\textwidth}
% ...
\end{column}
\end{columns}
\end{minted}
\end{column}
\end{columns}
\end{frame}
\begin{frame}[fragile]{幻灯片脚注}
\setbeamerfont{footnote}{size=\tiny}
\begin{itemize}
\item 脚注用\mintinline{tex}{\footnote}命令\footnote{这是一个脚注}。
\item 脚注引用用\mintinline{tex}{\footcite}命令\footcite[需要\BibLaTeX{},下同]{biblatex}。
\item 脚注完整引用用\mintinline{tex}{\footfullcite}命令\footfullcite{biblatex}。
\end{itemize}
\end{frame}
\begin{frame}{图片、表格、算法}
\enableindent
这些浮动体环境在\Beamer{}下并无什么不同,我们可以通过正常的方法放置这些环境。但是有时候(特别是算法环境)放置策略需要采用\texttt{[H]}。
\only<1>{
\begin{figure}[htb]
\centering
\includegraphics[width=0.2\textwidth]{images/HFUT_badge.pdf}
\caption{合肥工业大学校徽}
\end{figure}
}
\only<2>{
\begin{table}
\caption{Table caption}
\begin{tabular}{l l l}
\toprule
\textbf{Treatments} & \textbf{Response 1} & \textbf{Response 2}\\
\midrule
Treatment 1 & 0.0003262 & 0.562 \\
Treatment 2 & 0.0015681 & 0.910 \\
Treatment 3 & 0.0009271 & 0.296 \\
\bottomrule
\end{tabular}
\end{table}
}
\only<3>{
\begin{algorithm}[H]
\caption{神经网络训练过程}
\begin{algorithmic}[1]
\State 初始化网络权值 $\mathcal{W}$
\For{$t=0 \to max\_train\_steps$}
\State {\bfseries 输入}一批次$x$以计算$L(t)$
\State 计算梯度$\nabla_{\mathcal{W}} L(t)$
\State 使用梯度$\nabla_{\mathcal{W}} L(t)$更新$\mathcal{W}(t) \mapsto \mathcal{W}(t+1)$
\EndFor
\end{algorithmic}
\end{algorithm}
}
\end{frame}
\section{动画}
\begin{frame}[fragile]{简单动画}
\Beamer{}比较方便的是实现一些简单的动画效果。
比方说:
\begin{itemize}
\pause
\item 单击显示/隐藏:\mintinline{tex}{\pause}命令
\pause
\item \alert<4>{单击变色}:\mintinline{tex}{\alert}命令
\end{itemize}
\end{frame}
\begin{frame}[fragile]{简单动画}
同样的事情也可以用\mintinline{tex}{\uncover}命令做到
\begin{semiverbatim}
\uncover<1->{\alert<0>{int main (void)}}
\uncover<1->{\alert<0>{\{}}
\uncover<1->{\alert<1>{ \alert<4>{std::}vector<bool> is_prime (100, true);}}
\uncover<1->{\alert<1>{ for (int i = 2; i < 100; i++)}}
\uncover<2->{\alert<2>{ if (is_prime[i])}}
\uncover<2->{\alert<0>{ \{}}
\uncover<3->{\alert<3>{ \alert<4>{std::}cout << i << " ";}}
\uncover<3->{\alert<3>{ for (int j = i; j < 100;}}
\uncover<3->{\alert<3>{ is_prime [j] = false, j+=i);}}
\uncover<2->{\alert<0>{ \}}}
\uncover<1->{\alert<0>{ return 0;}}
\uncover<1->{\alert<0>{\}}}
\end{semiverbatim}
\visible<4->{Note the use of \alert{\texttt{std::}}.}
\end{frame}
\section{引用}
\begin{frame}{引用最好用\BibLaTeX{}}
其实\BibTeX{}不一定不可以在\Beamer{}中使用,但是它在\Beamer{}下很可能不如\BibLaTeX{}方便。
\end{frame}
\section{\Beamer{}的一些坑}
\begin{frame}{\texttt{[fragile]}选项}
\enableindent
如果帧包含脆性文本(fragile text),在排版帧时将使用不同的内部机制(mechanisms)以确保在帧
内重置字符代码(reset character codes)。此时需要给\texttt{frame}添加\texttt{[fragile]}选项。
所谓的脆性文本通常包括:
\begin{itemize}
\item \texttt{verbatim}环境
\item \texttt{lstlisting}环境
\item \texttt{minted}环境
\item ……
\end{itemize}
怎么判断呢?一般来说,需要在编译时加入\texttt{-shell-escape}的命令或者环境就很可能需要添加\texttt{[fragile]}选项。
\end{frame}
\begin{frame}{不兼容\texttt{enumitem}宏包}
\enableindent
\Beamer 不兼容\texttt{enumitem}宏包。原因很简单,因为\Beamer 本身定义了很多和\texttt{enumerate}和\texttt{itemize}环境相关的宏,所以是不兼容的。
\end{frame}
\begin{frame}{最好提前准备好便携的PDF阅览器}
\enableindent
\Beamer 和其他\LaTeX 文档一样生成的是PDF,不要等到需要展示的时候才想起来需要准备支持某种特性的PDF阅读器。
\end{frame}
\begin{frame}{打印参考文献列表需要特殊处理}
参考文献列表通常比较长,一帧幻灯片通常无法满足其空间需求。这时候需要给\texttt{frame}环境添加\texttt{[allowframebreaks]}选项。
\end{frame}
\begin{frame}[allowframebreaks]
\frametitle{参考书目}
{
\tiny
\nocite{*}
\printbibliography[heading=none]
}
\end{frame}
\begin{frame}{HFUTTUG需要你!}
\centering
我们在:\url{https://github.com/HFUTTUG},欢迎进行贡献!
向\href{mailto:[email protected]}{[email protected]}发邮件以加入我们
\end{frame}
\end{document}