
金洪伟
安全科学与工程学院
请使用最新版本浏览器访问此演示文稿以获得更好体验。
无法扫描,请访问:https://zimo.net/help/
安全工程专业在 2022 年下学期将开设一门新课程《安全仿真与模拟基础》。该课程主要讲解计算机技术在安全工程中的应用,其中要展示大量的 Python、MATLAB 代码和数学公式,这些内容适宜用最新的 Web 技术展示。因此我们开发了 Web 教学课件,以方便该课程的教学。
  
          基于现有的开源软件进行深度集成和定制,立足于西安科技大学教学软硬件环境,开发一套在线的演示文稿系统,使之能替代传统的 Microsoft PowerPoint 或 WPS 演示文稿,并起到更好的展示、分享效果。
主要用到的开源项目:
要制作这种在线的演示文稿需要掌握较多的计算机应用知识,不过一旦熟悉该制作流程,其开发效率反而会更快。
❸ 安装必要的软件:
❹ 打开你刚刚下载的模板。
想必你已经把刚才下载的的 help.zip 文件解压了,并发现其内部包含一个 help 文件夹,其内部又包含了一个 index.html 文件,我们的编辑工作就从这个文件开始,通过如下两种方式打开它:
一切已经就绪了!
现在,假设我们要编写一个名称为Python 程序设计入门的演示文稿,让我们动手吧!
❶ 先将 index.html 文件中的 title 元素内容修改为我们文档标题,再根据文稿属性更改 <meta name="description"> 和 <meta name="author"> 元素的 content 属性值。刷新页面,看看浏览器标题栏的题目是不是已经变成我们新设的题目了(后面设置的两项元素不会显示出来)。
❷ 现在已经可以新建幻灯片了。往下翻翻 index.html 文件,你将会发现一些 <section>...</section> 元素,全部处于 <div class="slides">...<div> 元素的内部。每个 section 元素对应一页幻灯片。接下来你可以选择两种行动来填充你的文稿:
section 元素,一切从零开始;section 元素基础上进行修改。如果你是新手,且为了快速建立一个演示文稿,建议选后者。但现在,为了便于讲解,我们选择前者。就请行动起来,删除所有的 section 元素吧!
❸ 请输入我们的第一页幻灯片的内容:
				
					第 1 节 Python 介绍(示例)
					Python 是一种广泛使用的解释型、高级和通用的编程语言。它由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于 1990 年代初设计,作为一门叫作 ABC 语言的替代品。
					Python 的设计哲学是优雅、明确、简单。它的重要准则被称为“Python 之禅”,其中就包括以下格言:
					
						
							- 优美优于丑陋。
 
							- 明了优于隐晦。
 
							- 简单优于复杂。
 
							- 复杂优于凌乱。
 
						
					
				 
			
			下面的一整页给出了以上代码的显示效果。
Python 是一种广泛使用的解释型、高级和通用的编程语言。它由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于 1990 年代初设计,作为一门叫作 ABC 语言的替代品。
Python 的设计哲学是优雅、明确、简单。它的重要准则被称为“Python 之禅”,其中就包括以下格言:
- 优美优于丑陋。
 - 明了优于隐晦。
 - 简单优于复杂。
 - 复杂优于凌乱。
 
❹ 是不是有点被页面内乱乱的内容吓到了?别着急,我们下一节就带你入门。不过在这里,还需要先知道水平幻灯片和垂直幻灯片的概念。这里不介绍概念了,请对照下边代码和右图就够了:
					SLIDE 1 
					
						SLIDE 2.1 
						SLIDE 2.2 
						SLIDE 2.3 
					 
					SLIDE 3 
					SLIDE 4 
				
			以上 1、3、4 是水平幻灯片,
2.1、2.2、2.3 是垂直幻灯片。
通过嵌套 section,可以把文稿分成好多小节,每小节包括多个垂直幻灯片。
你可以按下 o 键,看看本文稿的结构。
让我们简要复习以下一些常用的 HTML 元素,如果你在学习 HTML 时已经学过了,那快速浏览一下就好了。以下直接列出这些常用元素:
| 元素 | 名称 | 说明 | 示例 | 显示效果 | 
|---|---|---|---|---|
p | 
					段落 | 一块和相邻文本分离的文本。 | 
						
					 | 
					这是一个段落。  | 
				
h1 | 
					一级标题 | 一般用作封面标题。 | 
						
					 | 
					一级标题 | 
				
h2 | 
					二级标题 | 一般用作节标题。 | 
						
					 | 
					二级标题 | 
				
h3 | 
					三级标题 | 一般用作小节标题。 | 
						
					 | 
					三级标题 | 
				
h4 | 
					四级标题 | 较少用。 | 
						
					 | 
					四级标题 | 
				
| 元素 | 名称 | 说明 | 示例 | 显示效果 | 
|---|---|---|---|---|
ul | 
					无序列表 | 无序列表,或称符号列表,内部包含多个 li 列表项。 | 
					
						
					 | 
					
						
  | 
				
ol | 
					有序列表 | 有序列表,或称编号列表,内部包含多个 li 列表项。 | 
					
						
					 | 
					
						
  | 
				
dl | 
					定义列表 | 包含术语定义 dt 及其描述 dd。 | 
					
						
					 | 
					
						
  | 
				
| 元素 | 名称 | 说明 | 示例 | 显示效果 | 
|---|---|---|---|---|
blockquote | 
					块级引用 | 引用他人内容。 | 
						
					 | 
					学而时习之,不亦说乎?  | 
				
figure | 
					图文框 | 包含独立的一段内容,常包含图像及其标题。 | 
						
					 | 
					
						 
							 | 
				
hr | 
					水平线 | 一条水平分割线。 | 
						
					 | 
					|
div | 
					内容划分 | 通用容器,使用时一般同时给定其 class 或 id 属性。 | 
					
						
					 | 
					
						 第 1 列 
							第 2 列 
						 | 
				
| 元素 | 名称 | 说明 | 示例 | 显示效果 | 
|---|---|---|---|---|
a | 
					链接 | 指向其他网页、文件等 URL 的链接。 | 
						
					 | 
					西安科技大学 | 
img | 
					图像 | 在文档中嵌入图片。 | 
						
					 | 
					|
strong | 
					着重强调 | 显示为粗体。 | 
						
					 | 
					着重强调的文本 | 
em | 
					强调 | 显示为斜体。 | 
						
					 | 
					强调的文本 | 
ins | 
					插入 | 插入的文本,显示为带下划线。 | 
						
					 | 
					插入的文本 | 
del | 
					删除 | 删除的文本,显示为带删除线。 | 
						
					 | 
					
| 元素 | 名称 | 说明 | 示例 | 显示效果 | 
|---|---|---|---|---|
sup | 
					上标 | 上标文本。 | 
						
					 | 
					x2 | 
sub | 
					下标 | 下标文本。 | 
						
					 | 
					x2 | 
var | 
					变量 | 变量通常用拉丁字母表示,以斜体显示。 | 
						
					 | 
					ax2 | 
code | 
					代码 | 代码文本,一般用等宽字体显示。 | 
						
					 | 
					len("Hello") | 
				
cite | 
					引用 | 表示引用他人作品的标题。 | 
						
					 | 
					呼啸山庄 | 
mark | 
					标记文本 | 标记或突出显示的文本。 | 
						
					 | 
					标记文本 | 
| 元素 | 名称 | 说明 | 示例 | 显示效果 | 
|---|---|---|---|---|
dfn | 
					定义 | 表示术语的一个定义。 | 
						
					 | 
					Python是一种广泛使用的解释型、高级和通用的编程语言。 | 
abbr | 
					缩写 | 经常为首字母缩写,并通过 title 属性提供完整的描述。 | 
					
						
					 | 
					超文本标记语言的缩写为 HTML | 
br | 
					换行符 | 强制在元素出换行,该元素没有内容。 | 
						
					 | 
					包含一个换行符  | 
				
span | 
					通用的行内元素,使用时一般同时给定其 class 或 id 属性。 | 
					
						
					 | 
					风的声音 | 
简单总结:
p 来标记;h1~h4;ul 和有序 ol,内部有多项 li;figure 小世界,内部包万象;a 锚(anchor)他物,href 赋 URL;strong),斜体较重要(emphasize » em);sup 与下标 sub,区分 p 与 b;var 用斜体,该用就得用。除了向演示文稿中插入文字,还可以插入其他媒介,如图像、表格、公式、代码、视频以及更复杂的网页。
注:不像 Microsoft PowerPoint 可以直接用鼠标拖动操作,许多时候,向网页中插入多媒体并不容易,需要查阅或记住各种元素的结构。但借助互联网上各种强大的 JavaScript 库,我们可以把我们的演示文稿变得无比强大。比如,向演示文稿中插入一个实时变化的股价走势图。
前面已经说过怎么插入图像了,img 元素的格式如下:
			
		
		另外还可以为其指定 width、height 等属性。一般将图像文件放在 images 子目录中,如下:
			西科徽标:
		
		其显示效果为:
西科徽标:
另外,在 img 元素中,我们常用 data-src 属性代替其 src 属性,data-src 具有延迟加载的功效:即当显示到包含图片的这页幻灯片时,才开始从网上下载并加载此图像,从而避免在仅查看少数几页时加载所有页的图片。
以下代码使用 data-src 属性代替 src 属性:
			西科徽标:![]()
		
	前面插入的图像属于行内元素,即其完全处于文本流中。有时需要插入相对独立的图文框,其中往往包含图像、图像标题以及其他说明文本。这种功能可用 figure 元素实现。示例如下:
					
						
						雏菊 
						雏菊是菊科雏菊属的一种,别名长命菊、延命菊,原产于欧洲,原种被视为丛生的杂草,开花期在春季。
					 
				
			雏菊是菊科雏菊属的一种,别名长命菊、延命菊,原产于欧洲,原种被视为丛生的杂草,开花期在春季。
表格的编辑比较复杂,对于以下表格,其要求的最简代码见右图。大多数时候,我们还是建议在其他 HTML 编辑器中编辑表格,然后将源代码复制过来;或者在其他软件中编辑表格,然后将其存储为图片显示。
| 第 1 行第 1 列 | 第 1 行第 2 列 | 第 1 行第 3 列 | 
|---|---|---|
| 第 2 行第 1 列 | 第 2 行第 2 列 | 第 2 行第 3 列 | 
| 第 3 行第 1 列 | 第 3 行第 2 列 | 第 3 行第 3 列 | 
				
					表格标题 
					
						第 1 行第 1 列 
						第 1 行第 2 列 
						第 1 行第 3 列 
					 
					
						第 2 行第 1 列 
						第 2 行第 2 列 
						第 2 行第 3 列 
					 
					
						第 3 行第 1 列 
						第 3 行第 2 列 
						第 3 行第 3 列 
					 
				
			
		以前在网页中显示公式一直是一个老大难问题,不过现在借助 MathJax、KaTeX 等开源公式渲染引擎,已经能够做到在网页中显示精美的公式了。本演示文稿模板自带了 KaTeX 库(对应 katex 目录),因此能够向网页中插入 LaTeX 文本格式的公式了。以下是一个一元二次方程的求根公式:
要插入该公式,需要在单独的一行中输入如下代码:
			$$x_{1,2}=\frac{-b\pm \sqrt{b^2-4ac}}{2a}$$
		
	公式也分为行内公式和块级公式。要插入行内公式需要用一对 $ ... $ 或 \( ... \) 符号将公式包括起来。如下所示:
			令 $\Delta =b^2-4ac$,当 $\Delta >0$ 时,方程有两个不同的实数根。
		
		其显示效果如下:
令 $\Delta =b^2-4ac$,当 $\Delta >0$ 时,方程有两个不同的实数根。
要插入块级公式,需要用一对 $$ ... $$ 或 \[ ... \] 符号将公式包括起来,且在单独的一行中输入公式,如上一页幻灯片所示。
需要以写作学术论文常用的 LaTeX 格式的文本表示公式,该格式学起来可并不容易。所幸的是,你也可以不必学习这些枯燥的东西,而仅仅使用公式编辑器就可以可视化地编辑公式,并将他们导出为 LaTeX 格式。这里推荐几个公式编辑器:
当然,若你致力于高端学术创作,也推荐以硬核的方式学习 LaTeX,那么建议先查看这个英文维基百科页面,它详细列出了各种 LaTeX 公式元素的表示法。
有些时候,我们的公式非常简单,完全可以使用 HTML 格式表达,这时可以通过为公式添加 formula 和 blockformula 类来以合适的样式显示公式。如下为一个包含行内公式的段落:
			在公式 y = a x2 + b x + c 中。
		
		其显示效果为:
在公式 y = a x2 + b x + c 中。
这里将公式用通用的行内标记 span 包括起来,并为其添加 formula 类。在公式中,将各个变量分别用 var 标记(不用此标记也行,但变量将不会显示为斜体),而上下标分别用 sup 和 sub 标记。
同样,若要以 HTML 格式显示行内公式,也可以通过为元素添加 blockformula 类来实现。如下所示:
			
				y = a x2 + b x + c
			
		
		其显示效果为:
y = a x2 + b x + c
另外,如果公式很复杂,无法用 HTML 格式表示,但又不想用 LaTeX 格式,也可以将公式保存为图片格式,从而用 img 元素显示,不过要仔细地设置好图片的高度属性 height,避免其过高或过低。
若要为公式添加编号,可以在公式后面添加一个 <span class="number"> 标签项,如下所示:
			
				y = a x2 + b x + c
				(1)
			
		
		其显示效果为:
y = a x2 + b x + c (1)
其中 <span class="formula"> 标签内的公式也可以是 LaTeX 公式。
我们经常需要在演示文稿中插入各种编程语言的代码片段,这些代码也分两种:行内代码和代码块。其中行内代码直接用 code 标记,如 <code>bytes</code> 将显示为 bytes。我们改变了代码的文字颜色和背景色,并用等宽字体显示,从而使行内代码更容易被辨识。
代码块的表示要复杂一点,通常会设置代码块的背景色,用等宽字体显示文字,禁用自动换行,同时根据语法用不同的颜色高亮显示各类代码元素。
本演示文稿使用开源的语法高亮库 highlight.js 实现代码块的语法高亮显示。它支持近 200 种语言,并有很多预设的显示样式。
通常要插入代码块,可以使用如下方式:
			<pre><code class="language-<name>" data-trim>
    <!-- 多行代码 -->
</code></pre>
		
		在具体使用时,应将 <name> 替换为具体的语言名称。以下片段插入了一段 Python 代码:
			<pre><code class="language-python" data-trim>
    # add list items
    thislist = ["apple", "banana", "cherry"]
    thislist.append("orange")
    print(thislist)
</code></pre>
		
	上页代码的显示效果为:
			# add list items
			thislist = ["apple", "banana", "cherry"]
			thislist.append("orange")
			print(thislist)
		
		以上 data-trim 表示要删除 code 元素开头和结尾的所有空白
还可以为 code 元素添加 data-line-numbers 属性而在左侧显示行号,甚至可以突出显示部分行。另外,也可添加 data-noescape 属性设定是否对 HTML 标记进行自动转义。详见 此页。
有两个方法可以插入视频:
❶ 使用 video 元素:
			<video controls data-autoplay data-src="path/to/the/video.mp4">你的浏览器不支持播放此视频。</video>
		
		其中 data-src 是指向视频文件位置的 URL。同 img 一样,这里用 data-src 而不是 src 以达到延迟加载的目的。controls 用于添加视频播放控制的相关控件,data-autoplay 表示自动播放此视频。还可以使用 width 和 height 设定视频框的宽度或高度,一般两者只设置一个即可。
所插入的视频格式应该是浏览器支持能直接播放的,一般使用 MPEG-4 (.mp4) 或 WebM (.webm) 格式。
对于 videos/flower.webm 视频文件,插入方式为:
			<video controls data-autoplay data-src="videos/flower.webm" height="400px"></video>
		
		
	❷ 使用内联框架元素 iframe:
许多视频网站出于版权保护需求,会隐藏视频文件 URL 以防止被下载,但会提供另外的方法在网页中嵌入视频播放页。如哔哩哔哩网站每个视频播放器下方的分享按钮下就提供了各种分享方式,点击其中的嵌入代码就能得到嵌入代码了。如下所示:
			
		
		上面把从 B 站复制的代码稍作修改:将 src 改为 data-src 以实现延迟加载,又添加了 width 和 height 属性以控制播放器的大小。同时在 data-src 指向的 URL 开头添加了具体的协议名称 https:,否则,由于浏览器的同源策略,当只通过本地文件方式打开演示文稿,而没有将其部署到一个网站服务器时,用 iframe 插入的内容有时是不会显示的。下页为以上视频的显示结果。
除了用 iframe 插入视频,也可以插入其他媒体。如以下代码可以嵌入百度地图的搜索结果:
			
		
		
	在制作演示文稿时,通常需要尽可能保证同类元素样式的统一,但有时会出于各种各样的原因,需要对默认样式进行调整。我们定义了许多辅助性的类(class),以实现对默认样式的调整。这样调整包括:字体大小、字体颜色、文本对齐方式、幻灯片背景、各种提醒框,等等。
可以通过给容纳字体的元素添加如下类来改变字体大小:
| 类名称 | .xxxs | 
					.xxs | 
					.xs | 
					.sm | 
					.lg | 
					.xl | 
					.xxl | 
					.xxxl | 
				
|---|---|---|---|---|---|---|---|---|
| 缩放倍数 | 0.5 | 0.625 | 0.75 | 0.875 | 1.125 | 1.25 | 1.5 | 2.0 | 
示例:
			这是一段大号显示的文字。
		
		显示效果:
这是一段大号显示的文字。
可以将上页给出的类添加到任何元素上,但一般添加到块级元素上。如可以用 <section class="sm"> 将整个幻灯片页面的字体按比例缩小。又如,如果要同时调整多个段落的字体大小,可以将这些段落用一个通用的块级元素 div 包括,并给给元素添加适当的类,如下所示:
			
				第一个段落。
				第二个段落。
				第三个段落。
			
		
	通常不推荐直接设置文字的颜色,但若在某些特殊情况下确有必要设置,则可以通过为元素添加颜色名称的 class 来设置颜色,如 <span class="red">红色文字</span> 将显示为红色文字。
另外,也可以通过在颜色名称前加 bg- 前缀来为元素设置浅淡的背景色。如 <span class="bg-green">绿色背景文字</span> 将显示为绿色背景文字。
除了上面在 span 元素上设置颜色,也可以对其他各种元素如段落 p、表格 table、表格单元格 td 等设置颜色。
下页列出了本演示文稿支持的颜色名称及显示效果。
默认情况下,文稿中的常用块级元素如 p、blockquote、li 等都采用分散对齐的方式,这使段落文字的排列显得很整齐。若要改变块级元素的文字对齐方式,请为这些元素分别添加 .left、center、right 和 justify 类,他们分别表示左、中、右及分散对齐。如下所示:
			一段文字。
		
		其显示效果为:
一段文字。
有时候,对于一些不太重要的段落文字,希望将其颜色设置得暗淡一点,这时可以通过为元素 p 添加 .dim 类实现。如下所示:
			函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
		
		其显示效果为:
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
可以看出,不光段落中常规文字的颜色变淡了,其内部包含的其他带颜色的行内元素的颜色也变淡了。
通常情况下,幻灯片的标题是比较醒目的。但当标题反复出现时,我们更希望强调其下一级标题,或幻灯片中的内容,这时可以通过为标题添加 muted 类来淡化显示标题。如下是各级标题淡化前后的对比:
可以为某页幻灯片指定背景,该背景可以是单一的颜色,或者是图片、视频甚至某个网页。
可以通过为 section 添加 data-background-color 属性来指定颜色值。如本页幻灯片的背景色是通过如下方式指定的:
			
				
			 
		
		一旦为幻灯片指定了深色背景,则其前景色会自动变为浅色,从而能更清晰的呈现文字内容。
不知道怎么选择颜色?这里有一个颜色表可供参考。
可以通过为 section 添加 data-background-image 属性来为其设置背景图片。如本页幻灯片的背景图片是通过如下方式设定的:
			<section data-background-image="images/bg2.jpg"
    data-background-color="#1565c0">
    <!-- 幻灯片内容 -->
</section>
		
		若图片整体较暗淡,则会导致幻灯片的文字不清晰,这时可同时为幻灯片设置一个深色的 data-background-color 值来使前景色反向。
可以通过为 section 添加 data-background-video 属性来为其设置背景视频。如本页幻灯片的背景视频是通过如下方式设定的:
			<section data-background-video="videos/flower.webm"
    data-background-video-loop="true"
    data-background-color="#1565c0">
    <!-- 幻灯片内容 -->
</section>
		
		有关幻灯片背景的更多设置细节,请见此页面。
如果由于某种原因需要暂时隐藏某页幻灯片,可以简单地向 section 添加 data-visibility="hidden" 属性名称-值对来实现此功能。如下所示:
			
				
			 
		
	借助于现代的 Web 技术,可以向演示文稿添加多种动画功能,包括分段动画、幻灯片切换效果、幻灯片自动放映、自动动画。
注意:虽然为幻灯片设置一些动画会显得很炫酷,但请尽量只在必要的时候使用。他们会分散读者的注意力,并且当设备性能不强时,一些动画效果甚至会出现卡顿,反而使体验下降。
分段动画和 Microsoft PowerPoint 的动画一样,可以按次序并以不同的效果呈现各个元素,它用于强调某些元素,或展示事物间的逻辑关系。
要给幻灯片中的元素设置分段动画,需要为该元素添加 fragment 类,并设置其出现时的动画效果。若不设置动画效果,元素只是简单地出现。
			这段文字在下一步将会消失。
		
		这段文字在下一步将会消失。
			问:Python 语言的发明者是谁?
			答:Guido van Rossum
			问:为什么 Python 被称为胶水语言?
			答:Python 是一种高端动态语言,常像“胶水”一样被用来连接软件组件。
		
		问:Python 语言的发明者是谁?
答:Guido van Rossum
问:为什么 Python 被称为胶水语言?
答:Python 是一种高端动态语言,常像“胶水”一样被用来连接软件组件。
下表列出所有支持的动画效果。
| 名称 | 效果 | 
|---|---|
| fade-out | 淡出:开始时可见,然后淡出。 | 
| fade-up | 向上滑入:从下向上滑入并逐渐显现。 | 
| fade-down | 向下滑入:从上向下滑入并逐渐显现。 | 
| fade-left | 向左滑入:从右向左滑入并逐渐显现 | 
| fade-right | 向右滑入:从左向右滑入并逐渐显现。 | 
| fade-in-then-out | 淡入淡出:先淡出,在下一步时淡入。 | 
| fade-in-then-semi-out | 淡入后半淡出:先淡入,在下一步颜色变为原来的 50%。 | 
| grow | 生长:放大。 | 
| 名称 | 效果 | 
|---|---|
| semi-fade-out | 半淡出:颜色变为原来的 50%。 | 
| shrink | 收缩:缩小。 | 
| strike | 删除线:文字出现删除线。 | 
| highlight-red | 红色强调:文字变为红色。 | 
| highlight-green | 绿色强调:文字变为绿色。 | 
| highlight-blue | 蓝色强调:文字变为蓝色。 | 
| highlight-current-red | 当前红色强调:文字先变为红色,在下一步时恢复颜色。 | 
| highlight-current-green | 当前绿色强调:文字先变为绿色,在下一步时恢复颜色。 | 
| highlight-current-blue | 当前蓝色强调:文字先变为蓝色,在下一步时恢复颜色。 | 
当分段动画嵌套出现时,将先执行外层动画,再执行内层动画。
示例:
			
				
					
						淡入 > 红色强调 > 淡出
					
				
			
		
		淡入 > 红色强调 > 淡出
可以通过 data-fragment-index 属性为元素指定动画顺序。如果多个元素的索引值相同,这些元素的动画将同时执行。如下所示:
			
				- 最后出现
 
				- 第二个出现
 
				- 最先出现
 
				- 第二个出现
 
			
		
		本演示文稿还可以定义每页幻灯片的切换方式,这通过给 section 元素指定不同的 data-transition 属性来实现,其可取的属性值见下表,这些属性值同时对幻灯片内容及其背景起作用。
| 名称 | 效果 | 
|---|---|
| none | 无:立刻切换背景。 | 
| fade | 叠变:淡入淡出,这是幻灯片背景的默认切换方式。 | 
| slide | 滑动:滑入滑出,这是幻灯片内容的默认切换方式。 | 
| convex | 凸起:以一个凸起角度滑动。 | 
| concave | 凹面:以一个凹陷角度滑动。 | 
| zoom | 缩放:将下一页幻灯片向上缩放,使其从屏幕中心向内扩展。 | 
本页幻灯片的切换效果为 concave。
可以为 section 添加 data-transition-speed="fast" 使其更快速地完成切换。
也可以同时为一个幻灯片分别指定切入和切出属性,这需要分别在上页表格的属性值后面加上 -in 和 -out 后缀。以下是本页幻灯片的切换方式:
			<section data-transition="zoom-in concave-out"
    data-transition-speed="fast"
    data-background-image="images/bg2.jpg"
    data-background-color="#455a64">
</section>
		
	可以设置自动放映演示文稿,只需要在文件末尾的 Reveal.initialize({ ... }); 中加入如下两行即可:
			Reveal.initialize({
				autoSlide: 5000,
				loop: true
			});
		
		这样将每 5000ms 切换一次幻灯片,一旦用户对幻灯片有操作,将停止自动放映,这时可单击左下角的播放按钮或按 a 键继续自动放映。
还可以在像上页那样全局设置所有幻灯片的自动切换时间的前提下,单独设置具体某页幻灯片的切换时间,如下所示:
			
				
			 
		
	当两个紧邻的幻灯片的 section 标签上都有 data-auto-animate 属性,则将自动为幻灯片中匹配的元素生成过渡动画。自动动画是一项高级功能,更多细节请查看此页。下面代码的显示效果见下页。
			
				8.4 自动动画
				这是一个段落。
			 
			
				8.4 自动动画
				这是一个段落。
			 
			
				8.4 自动动画
				这是一个段落。
				这是又一个段落。
			 
			
				8.4 自动动画
				这是一个段落。
				这是又一个段落。
				这是最后一个段落。
			 
		
	这是一个段落。
这是一个段落。
这是一个段落。
这是又一个段落。
这是一个段落。
这是又一个段落。
这是最后一个段落。
为了满足常见的内容排布需要,我们额外定义了许多幻灯片版式。
分栏是将一个幻灯片沿水平方向分为多列。最常见的分栏代码如下:
			
				第 1 栏
				第 2 栏
				第 3 栏
			
		
		其显示效果为:
上页代码中的 .row 类表示开启一行分栏,而三个 .col 类表示将一行均分为三列。如果有更少或更多的 .col,将仍然进行均分。
如果不想均分,则可以使用 .col-1, .col-2, ..., .col-6 这样的列,分别表示该列占总宽度的 1/6, 2/6, ..., 6/6。并且每行所有列的后缀数字加起来不能大于 6(最好是等于 6,这样才能将一行的空间占满)。
			
				第 1 栏
				第 2 栏
				第 2 栏
			
		
		其显示效果为:
有时希望栏目的宽度根据其内部内容的宽度进行缩放,这时可使用 .col-auto 这样的列。若各列全部为 .col-auto 时,各列的宽度在本身宽度的基础上缩放。
			
				
					第 1 栏
				
				
					第 2 栏
				
			
		
		以上两栏的总宽度为 300px,远小于页面宽度,但实际仍占满页宽:
另外还可以使用 .col-none,它与 .col-auto 相反,即当空间不足时,各列不会自动增加而占满页宽。
			
				
					第 1 栏
				
				
					第 2 栏
				
			
		
		最后,还可以组合使用 .col、.col-n、.col-auto 和 .col-none,其情况较复杂,请多尝试。
			当图文混排时,常使图文框浮动到页面的右侧或左侧。这可以通过为图文框 figure 添加 .push-right 或 .push-left 类来实现。
另外,还应把图文框放在混排文字而最上方,这样在浮动显示后,他们的顶部正好平齐。
右侧图文框的代码如下:
			
				
				美丽的花儿 
			 
		
	
			当不指定图文框及其内部图片的宽度时,图文框的最大宽度不超过幻灯片宽度的 45%。有时,我们想使图文框更大或更小,这时可以通过分别为 figure 添加 .wide 或 .narrow 类来实现。这两种情况下,图文框宽度分别占幻灯片页面宽度的 2/3 和 1/3。
左侧图文框的代码如下:
			
				
				美丽的花儿 
			 
		
	幻灯片标题用 h1、h2、h3 和 h4 标签来表示,他们分别表示一到四级标题。幻灯片的标题不仅标明了本页幻灯片的内容主题,同时其标题等级也说明了演示文稿的大纲。
除了标题幻灯片可能要用到一级标题(h1),其他类型的幻灯片的最高标题等级一般小于等于二级。例如,本页幻灯片的标题为:
			9.3 标题幻灯片
		
	有时,一个标题可能在多个页面反复出现,当不再是第一次出现时,我们更希望突出幻灯片内容而非标题,这时可以为该标题添加 .muted 类而使其减淡。被减淡的标题字号更小,颜色更淡。例如,本页的幻灯片标题为:
			9.3 标题幻灯片
		
	想必你早就注意到屏幕左下角的涂写按钮了。点击它,将会弹出一系列按钮,其意义不讲自明。它使我们能在屏幕上画出平滑且有一点点书法效果的标记,尤其对可以随意用手指涂写的大屏幕特别有用。
该功能通过集成 Signature Pad 这一开源的 JavaScript 库实现。
可能对你来说,手写 HTML 确实挺难的,那就来试试用 Markdown 吧,它真的是简单又好用。或许它能给你打开一扇新的文档写作之门。
Markdown 是一种轻量级标记语言,它可以使我们用简单格式的纯文本编写文档,并转换为 HTML 或其他格式的文档。
这里有一些 Markdown 的中文教程,你可能很快就能学会,不过要达到熟练应用,还需要多多练习。
通常需要以如下方式在文档中插入 Markdown 页面:
			<section data-markdown>
    <textarea data-template>
        ## 幻灯片 1
        一个包含一些文字及一个[链接](https://chingli.com/)的段落。
        ---
        ## 幻灯片 2
        ---
        ## 幻灯片 3
    </textarea>
</section>
		
		其中单独占一行的水平线 --- 将上下的 Markdown 文本分割为多个水平幻灯片。
有关在文档中使用 Markdown 的更多介绍,请参见这里。
了解了 Markdown 之后,或许你已欢呼雀跃,决定只使用 Markdown 而不再用 HTML 了。不过这里还是需要给你泼点冷水:当你的文档格式比较简单时,用 Markdown 是没问题的;但一旦你的格式比较复杂,或使用本文档自定义的许多功能(需要为元素添加类),用 Markdown 就无能为力了。毕竟 Markdown 连上下标都无法标记。因此,多数时候,还是老老实实地使用 HTML 吧。
另外,如果你不怕精神分裂,混合使用 HTML 和 Markdown 也是可行的。
所开发的在线课件系统能够满足《安全仿真与模拟基础》的教学要求,为该课程的教学创新打下了基础。
下一步工作:为课件中的 Python 代码添加在线解释执行功能。
谢谢!