上一轮脱敏时把 clone 地址一并换成了 example.org 占位,属过度处理。 code.yangyq.net/laoyang/ouc_latex_template.git 是当前项目的真实地址, 是「用户从哪 clone」的功能信息,不是隐私,改回。 真名「杨永全」与个人账号「dryangyq」的清除不回退。 slides.tex 脚注里的 URL 需转义下划线(ouc\_latex\_template),否则 报 Missing $ inserted;README 是 markdown 不用转义。 验证:slides 重编 0 error / 30 页,PDF 脚注为真实地址、无 example.org 残留。
18 KiB
中国海洋大学幻灯片LaTex模板
中国海洋大学幻灯片LaTex非官方模板。
本模板修改自HelmholtzAI模板。在原有模板基础上进行了大量修改。
模板主要使用海大公布的标准色,包括海大蓝、海大天蓝、海大红、樱缤粉、文脉棕、专金、专银,以及后加的苍松绿、暮山紫、琥珀橙。
此外,使用了大量的信息框来增加模板的活力。
本目录原为独立仓库
ouc-slide-latex-template,2026-10 起并入ouc_latex_template统一维护,旧仓库不再更新。
文件结构
模板中的文件主要包括:
- slides.tex:主文件,编写的演示文稿内容主要存放在该文件当中。
- oucslide.sty:模板的样式文件。
- (字体不在本目录) 全部字体已统一到仓库根
../fonts/,由../fonts.tex统一加载。默认字体仍是华为鸿蒙字体。 - theme:主题文件夹。
- beamercolorthemeOUCSlide.sty:颜色定义文件。
- beamerfontthemeOUCSlide.sty:字体定义文件。
- beamerinnerthemeOUCSlide.sty:内部元素定义文件。
- beamerouterthemeOUCSlide.sty:整体布局定义文件。
- beamerthemeOUCSlide.sty:主题定义文件。
- logos:模板中使用的Logo存放文件夹。
- figs:插入的图片文件夹。
- fontawesome.pdf:图标使用说明文件。
使用方法
- 本模板现为
ouc_latex_template仓库的幻灯片/子目录,克隆主仓库即可:子目录内自包含(git clone https://code.yangyq.net/laoyang/ouc_latex_template.git cd ouc_latex_template/幻灯片theme/、logos/、figs/都在本目录),只有字体是共享的上层目录../fonts/,不需要额外的宏包搜索路径。 - 安装Tex编译器,推荐使用TexLive,安装成功后,可以使用自带的TeXworks打开目录下的tex文件进行编译。
- 可以安装其他的IDE工具进行Tex文件的编写和修改,推荐使用Visual Studio Code。
- 编译时,请选择XeLaTex,有时候,可能需要连续编译两次,以得到正确的页码和图表编号。
编译器版本兼容性
模板已内置版本自动判别,同一份源码在 TeX Live 2022 及以后各年份均可直接编译,不需要改代码、也不需要切分支。
| TeX Live | beamer 版本 | 状态 |
|---|---|---|
| 2022 | 3.66 | 已验证通过(本机实测,30 页) |
| 2023 | 3.69 | 已验证通过 |
| 2024 | 3.71 | 已验证通过 |
| 2025 | 3.72 | 已验证通过 |
| 2026 | 3.77 | 已验证通过 |
低于 TeX Live 2022 的版本未做验证,不保证可用。
为什么需要版本判别
beamer 的内部实现会随 TeX Live 版本变化,而模板中对内部宏的补丁(\patchcmd)会因此失效。最典型的一次是:
- beamer 3.69(TeX Live 2023) 起,
\beamer@@frametitle改用\beamer@insertframetitlecontinuation,使得面向旧版写法的补丁匹配失败,报Patching original frame title failed。 - 模板现已加入版本自动判别(依据
\beamer@insertframetitlecontinuation是否存在,判断逻辑写在文件顶层theme/beamerfontthemeOUCSlide.sty),因此各年份不需要再改动源码。 - 若将来 beamer 再次改动内部实现,按同样思路在该文件顶层加判别分支即可。
关于 slides.pdf
仓库内的 slides.pdf 是成品样张,用于预览效果。它由较新版本的 TeX Live 编译;用本机较旧版本重新编译时,个别页面的装饰层定位可能有细微差别(例如结尾页右下角的网址位置),正文内容与版式一致性不受影响。
维护约定
每当有新的 TeX Live 年份发布时:
- 在新版本的 TeX Live 下,用 XeLaTeX 编译本目录的
slides.tex; - 如果编译不通过,修改
theme/beamerfontthemeOUCSlide.sty顶层的版本判别分支,注意保持向后兼容(不要让新年份的改动破坏旧年份); - 在兼容性表格里补一行,注明已验证通过的版本。
元素介绍
基本信息
Tex文件的开头,是基本信息部分,可以根据需要添加\title{标题}、\subtitle{子标题}、\author{作者}、\date{\today}、\institute{所属机构}。
\newcommand{\last}{敬请批评指正!} 的作用是为了制作最后一页致谢页面而单独设置的,可以修改为任何致谢语句。
特殊页面
模板中有三个特殊的页面,分别是:标题页(首页)、目录页和结尾页。这三个页面由于其特殊性,不能使用frame的常规模板,因此,为它们创建了三个命令进行生成:
\maketitle
\makeoutline
\makelast
使用者三个命令后,将会自动创建首页、目录页和结尾页。
首页和结尾页,使用的是基本信息中的数据,而目录页的内容,将根据\section进行填充。
目录页样式(自适应方框)
目录页默认使用自适应方框样式:每一个一级标题(\section)被放进一个独立的方框里,方框的高度、以及方框内文字的字号,都会根据一级标题的数目自动计算,并且方框会自动均分、铺满整个目录页。章节少时方框又高又大、字号醒目;章节多时方框自动变矮、字号自动缩小,不需要手工调任何一个数字。
方框内的文字左对齐,左侧只留一点点缩进,读起来更像一份正常的目录。
配色:默认海大红,蓝色可选
目录页默认使用海大红(oucred)——和各章节标题页的颜色保持一致。
这是因为目录页上「目录」二字本身是海大蓝的,如果目录项再用蓝色,整页就分不出层次。用海大红正好和章节标题页呼应。
如果就喜欢蓝色,改一行即可切回海大蓝:
\toctheme{red} % 默认:海大红,与各章节标题页同色
\toctheme{blue} % 海大蓝,与目录页标题「目录」同色
三种方框样式
在导言区用一行命令即可切换,样式与配色可以自由组合:
\settocstyle{box} % 默认:浅色底 + 圆角框 + 圆形序号
\settocstyle{solid} % 实心色底 + 白色文字
\settocstyle{bar} % 白底 + 左侧粗色条
章节较多时(下面这张是 9 个一级标题),方框和字号会自动压缩:
可调参数
所有参数都可以在导言区用 \setlength 覆盖,一般不需要改:
| 参数 | 默认值 | 含义 |
|---|---|---|
\tocareamargin |
52pt |
目录区上下预留的高度(自动模式下从 \textheight 中扣除) |
\tocareaheight |
0pt |
直接指定目录区高度;0pt 表示自动 |
\tocboxgap |
10pt |
方框之间的理想间距(空间紧张时会自动压缩) |
\tocboxgapmin |
2pt |
方框之间允许的最小间距 |
\tocboxmaxheight |
110pt |
单个方框的最大高度 |
\tocboxleftpad |
2.5pt |
方框内文字距左边框的距离(只留一点点) |
\tocfontmax |
26pt |
方框内文字的最大字号 |
\tocfontwarn |
8pt |
字号低于该值时会给出警告 |
例如,希望方框之间更紧凑一些:
\setlength{\tocboxgap}{6pt}
几点说明
- 目录页需要连续编译两次:章节数目是从上一次编译生成的
.toc文件里读出来的。第一次编译时.toc还是空的,目录页会是空白,再编译一次即可正常。 - 方框的序号和标题是超链接,在 PDF 里点击会直接跳到对应章节。
- 一级标题太多时(大约 9 个以上),方框和字号会变得偏小,编译日志里会有
oucslide Warning提示。这种情况下建议合并章节,或者把目录页改回普通的列表样式。 - 如果确实想换回旧版那种简洁的列表目录,把
\makeoutline里的\ouc@toc@body换回\tableofcontents[hideallsubsections]即可(旧的模板定义仍保留在beamerouterthemeOUCSlide.sty中)。
使用分节
本模板使用分节进行整体规划,章节共三级,对应的关键字分别是:
\section
\subsection
\subsubsection
其中,\section 会有单独的页面进行显示。如下图所示。而且,section还将会出现在目录页面中。
\subsection 和 \subsubsection都没有单独的页面相对应,他们会出现在对应章节的frame中,作为标题进行呈现,并且加入了自动编号的效果。需要说明的是,\subsection是必须的,而 \subsubsection 却可有可无。他们呈现出的最终的效果,如下图所示。
需要注意的是,虽然frame的标题,是由subsection和subsubsection自动生成的,但是frame中的frametitle仍然是必须的,否则没有frametitle这个元素,标题无法自动填充。
使用Frame
章节确定好后,就可以增加Frame来编写幻灯片。使用代码:
\begin{frame}
\frametitle{测试}
\end{frame}
就可以插入一张幻灯片。
需要注意的是:如果幻灯片中使用了代码块,则需要加入关键字fragile。这样,引入的代码才能保持它们原有的样子,如下所示:
\begin{frame}[fragile]
\frametitle{测试}
\end{frame}
当然,也可以使用定义的特殊的frame模板来达到这种效果。
\begin{fragileframe}
\frametitle{测试}
\end{fragileframe}
他们的效果是一样的。
字体
模板使用的默认字体是华为鸿蒙字体 (HarmonyOS Sans)。该字体可以免费商用。
如果对字体不满意,可把字体放进仓库根的 fonts/ 目录,并在 theme/beamerfontthemeOUCSlide.sty 中修改。注意:Path= 是相对编译时工作目录(= 幻灯片/)的,所以写 ../fonts/xxx/,不是 fonts/。
只保留实际用到的 6 个鸿蒙文件(Regular/Bold 及其 Italic,加 SC Regular/Bold)——原先 幻灯片/fonts/ 里的 Black / Light / Medium / Thin 等 12 个字重全库无人引用,已随目录一并删除,省下 49 MB。
推荐的字体包括:思源黑体、阿里普惠字体、OPPO字体、小米字体。这些字体基本上都可以免费商用,并且效果都很不错。关于他们是否能够继续免费商用的政策,请查阅其官方网站以得到最准确的信息。
颜色
根据海大公布的标准颜色,定义了相关颜色。其中文名称和代码如下表所示。
当然,也可以使用LaTex自带的颜色,例如white、black等。
| 名称 | 中文名 | 说明 |
|---|---|---|
| oucblue | 海大蓝 | 海大标准色 |
| ouclightblue | 海大天蓝 | 海大标准色 |
| oucred | 海大红 | 海大标准色 |
| ouccherry | 樱缤粉 | 海大标准色 |
| oucbrown | 文脉棕 | 海大标准色 |
| oucgolden | 专金 | 海大标准色 |
| oucsilver | 专银 | 海大标准色 |
| oucpine | 苍松绿 | 新增,深绿 |
| oucdusk | 暮山紫 | 新增,深紫 |
| oucamber | 琥珀橙 | 新增,深橘 |
新增的三个颜色
已有的浅色(樱缤粉、专金、专银)在内容多的时候不太够用,因此补充了三个较深的颜色——
深色的好处是和白色文字有足够的对比度,可以直接当作色块底色(pointbox、titlebox、
block 等)使用,不必再担心白字看不清。
| 名称 | 色值 | 白字对比度 | 命名与定位 |
|---|---|---|---|
oucpine |
RGB 30, 86, 64 | 8.54 | 苍松绿——取自传统色「苍松」,色相偏青的深绿,沉静稳重 |
oucdusk |
RGB 92, 58, 118 | 9.04 | 暮山紫——取自传统色「暮山紫」(暮色中的远山),深紫而不艳 |
oucamber |
RGB 196, 82, 16 | 4.60 | 琥珀橙——取自传统色「琥珀」,高饱和的深橘 |
三点说明:
- 琥珀橙和文脉棕不会混淆:文脉棕是「低饱和的暗褐」,琥珀橙是「高饱和的深橘」, 两者在饱和度上拉开了明显差距(色相接近,但饱和度 0.61 vs 0.98)。
- 三个新颜色同样带十个色阶(
oucpine10~oucpine90等),浅色等级可以当背景底。 - 对比度按 WCAG 计算,≥ 4.5 即白字清晰可读。三个新颜色都在 4.5 以上 (对比度越高,白字越清晰)。
颜色等级
为了显示更丰富的色彩,定义的海大标准色,每一种颜色,都有十个等级,等级越低,颜色越浅。例如:对于海大蓝,其等级颜色从oucblue90-oucblue10不等,分成10个等级。
信息框
信息框使用边框的形式,提升幻灯片的表现力。
主要的信息框包括:列表框(vcolorbox)、提示框(notebox、importantbox)、信息框(titlebox)、要点框(pointbox)、块(block、exampleblock、alertblock)、标题框(headbox)和文本框(textbox)。它们的效果,如下图所示。
要点框自动排布(pointboxgrid)
要点框数量多的时候,不需要自己摆 columns——用 pointboxgrid 环境会自动排成网格:
\begin{pointboxgrid}{高度}
\pointitem{标题}{颜色}{内容}
\pointitem{标题}{颜色}{内容}
...
\end{pointboxgrid}
排布规则:每行最多 4 个;超过 4 个自动分成多行,并尽量均匀(上行不少于下行)。
| 个数 | 排布 | 个数 | 排布 |
|---|---|---|---|
| 1~4 | 一行 | 9 | 3 + 3 + 3 |
| 5 | 3 + 2 | 10 | 4 + 3 + 3 |
| 6 | 3 + 3 | 11 | 4 + 4 + 3 |
| 7 | 4 + 3 | 12 | 4 + 4 + 4 |
| 8 | 4 + 4 | N | 行数 = ⌈N/4⌉,前 N mod 行数 行每行多放一个 |
几点说明:
- 高度参数的含义和
pointbox的height一样,是固定高度——内容别写超,超了会画到框外(见下)。数量多时记得把高度调小。 - 行数多了会超出页面底部。经验值:正文区高约 243pt,总高 ≈
69 + 行数×高度 + (行数−1)×25(pt)。 所以 4 行时高度不要超过 24pt。超过时编译日志里会有oucslide Warning提醒。 - 想让每行放更多/更少,可改
\l_ouc_pbg_max(默认 4);间距可改\l_ouc_pbg_gap(横向,默认 8pt)与\l_ouc_pbg_vgap(纵向,默认 6pt)。 - 单个要点框仍然可以像以前那样手写
columns+pointbox,两种用法并存。
图示组件(扁平风格)
模板自带 9 个扁平简约图示组件:圆角色块 + 实心纯色 + 白字 + 细箭头, 无渐变、无阴影、无立体。全部用纯 TikZ 绘制,不依赖任何外部绘图宏包。
颜色:一个或多个都可以
所有组件的颜色列表写在方括号里(可选参数)。写一个就是全部同色, 写多个就按顺序取色、不够时自动循环:
\flatflow[oucblue]{数据采集, 数据清洗, 模型训练, 结果评估} % 全部海大蓝
\flatflow[oucblue,oucred,oucpine,oucamber]{数据采集, 数据清洗, 模型训练, 结果评估}
% ← 4 个块 4 种颜色
\flatflow[oucred,oucblue]{块一, 块二, 块三, 块四, 块五, 块六}
% ← 2 色循环:红蓝红蓝红蓝
⚠️ 颜色必须写成方括号
[ ]。若误写成花括号{ },颜色会被当成第一个条目, 编译时会报图示组件的颜色要写在方括号里的明确错误(不会静默出错)。
九个组件速查
| 命令 | 说明 |
|---|---|
\flatflow[颜色]{条目1, 条目2, ...} |
横向箭头流程,自动等分满宽 |
\flatstack[颜色]{条目1, 条目2, ...} |
纵向流程 |
\flatcycle[颜色]{条目1, ...} |
循环图(弧线箭头首尾相接) |
\flathub[颜色]{中心文字}{环绕1, 环绕2, ...} |
中心辐射(中心圆 + 环绕卡片) |
\flatsteps[颜色]{条目1, ...} |
阶梯递进 |
\flattime[颜色]{年份列表}{事件列表} |
时间轴(节点上下交替) |
\flatquad[颜色]{左上}{右上}{左下}{右下} |
四象限 |
\flatpyramid[颜色]{顶层, ..., 底层} |
金字塔(上窄下宽) |
\flatcompare[左色][右色]{左标题}{左内容}{右标题}{右内容} |
左右对比 |
示例(slides.tex 里有完整的 5 页演示):
\flatflow[oucblue,oucred,oucpine,oucamber]{数据采集, 数据清洗, 模型训练, 结果评估}
\flathub[oucblue,oucred,oucpine,oucamber,oucdusk]{核心}{可行性, 必要性, 创新性, 实用性}
\flattime[oucblue,oucred,oucpine,oucdusk]{2020, 2021, 2023, 2025}{立项, 方案设计, 中期检查, 结题验收}
\flatcompare[oucpine][oucred]{优势}{响应快、成本低、易于维护}{不足}{精度受限、依赖数据质量}
\flatquad 与 \flatcompare 的颜色是独立的固定参数(分别 1 个和 2 个),
不参与循环取色。
几点说明
- 颜色可以直接用模板的 10 个颜色(
oucblue、oucred、oucpine、oucdusk、oucamber等)。 - 横向流程会自动把 N 个块加间隙摊满整行,不需要手算宽度。
- 纵向对比、四象限这类元素较宽,建议用
\begin{center}...\end{center}居中。 - 这套组件已用 TeX Live 2022~2026 逐一编译验证:0 错误、0 溢出,且跨版本渲染逐像素一致。
代码
模板可以插入代码块,使用lstlisting即可。
公式
模板中可以直接插入公式,和LaTex中没有什么区别。
脚注
可以在任何地方使用脚注。即便是在各种信息框中也可以。













