laoyang a38134aa5a 目录页改为自适应方框样式,并在 TeX Live 2022 下编译验证
把每一个一级标题放进独立的方框,方框高度与字号随章节数目自动计算,
方框自动均分铺满整页;文字左对齐,左侧只留少量缩进。

新增 \settocstyle{box|solid|bar} 三种方框样式(未知值告警并回退 box),
新增 \toctheme{red|blue} 两种配色(默认海大红,与各章节标题页同色)。

本分支已用 TeX Live 2022 亲自编译验证:0 错误、0 溢出、23 页,
目录页 4 个跳转链接正常,且与本仓库其他分支渲染一致。
2026-10-12 11:29:04 +08:00
2022-05-12 12:58:31 +08:00
2022-05-12 12:58:31 +08:00
2022-05-12 13:26:05 +08:00

中国海洋大学幻灯片LaTex模板

中国海洋大学幻灯片LaTex非官方模板。

本模板修改自HelmholtzAI模板。在原有模板基础上进行了大量修改。

模板主要使用海大公布的标准色,包括海大蓝、海大天蓝、海大红、樱缤粉、文脉棕、专金、专银。

此外,使用了大量的信息框来增加模板的活力。

文件结构

模板中的文件主要包括:

  1. slide.tex:主文件,编写的演示文稿内容主要存放在该文件当中。
  2. oucslide.sty:模板的样式文件。
  3. font:字体文件夹,所有编译需要用到的字体。默认字体使用的是华为鸿蒙字体。
  4. theme:主题文件夹。
    1. beamercolorthemeOUCSlide.sty:颜色定义文件。
    2. beamerfontthemeOUCSlide.sty:字体定义文件。
    3. beamerinnerthemeOUCSlide.sty:内部元素定义文件。
    4. beamerouterthemeOUCSlide.sty:整体布局定义文件。
    5. beamerthemeOUCSlide.sty:主题定义文件。
  5. logos:模板中使用的Logo存放文件夹。
  6. figs:插入的图片文件夹。
  7. fontawesome.pdf:图标使用说明文件。

使用方法

  1. 从git上clone项目到本地。目前,共有多个git库供选择,分别是:Github、Gitee、Gitlab、阿里云Code。这些库都和源库保持一致和同步,从理论上来讲,使用任何一个库都可以。
  2. 安装Tex编译器,推荐使用TexLive,安装成功后,可以使用自带的TeXworks打开目录下的tex文件进行编译。
  3. 可以安装其他的IDE工具进行Tex文件的编写和修改,推荐使用Visual Studio Code。
  4. 编译时,请选择XeLaTex,有时候,可能需要连续编译两次,以得到正确的页码和图表编号。

分支与编译器版本

本仓库按 TeX Live 年份组织分支,规则很简单:分支名是哪一年,就说明该分支可以用那一年的 TeX Live 直接编译通过。

分支 对应 TeX Live beamer 版本 说明
main 最新版 最新 始终指向最新的年份分支(当前等于 2026)
2026 TeX Live 2026 3.77 无需改动源码即可编译通过
2025 TeX Live 2025 3.72 无需改动源码即可编译通过
2024 TeX Live 2024 3.71 无需改动源码即可编译通过(PDF 体积说明见下)
2023 TeX Live 2023 3.69 适配 beamer 3.69 的 frametitle 变更,并修复 allcaps 选项
2022 TeX Live 2022 3.66 保留早期 beamer 的写法(旧版 frametitle 补丁)

两点说明

一、各分支的 PDF 都是用对应年份的 TeX Live 编译出来的。 也就是说,2023 分支里的 slides.pdf 出自 TeX Live 2023, 2026 分支里的出自 TeX Live 2026,以此类推。功能上各分支内容一致, 差别只在于适配各自 beamer 版本的源码写法。

二、2024 分支的 PDF 体积明显偏大(约 9.7 MB,其他年份约 2.4 MB)。 这是 TeX Live 2024 的 xdvipdfmx 一度不做跨页图像去重导致的, 从 TeX Live 2025 起恢复正常。页面渲染内容与其他年份完全一致,不影响使用。

我该用哪个分支

  • 想用最新版本:直接用 main 分支,并配合最新版 TeX Live。
  • 本机已经装了某个特定年份的 TeX Live:切到同名的那个分支即可。
# 例如本机是 TeX Live 2023,就用 2023 分支
git clone -b 2023 https://code.yangyq.net/laoyang/ouc-slide-latex-template.git

# 已经克隆过的仓库,可以这样切换
git checkout 2023

简单说:编译器是哪一年的,就用哪一年的分支,不需要自己去改模板代码。

为什么要这样分

beamer 的内部实现会随 TeX Live 版本变化,而模板中对内部宏的补丁(\patchcmd)会因此失效。最典型的一次是:

  • beamer 3.69(TeX Live 2023) 起,\beamer@@frametitle 改用 \beamer@insertframetitlecontinuation,使得面向旧版写法的补丁匹配失败,报 Patching original frame title failed。
  • 模板现已加入版本自动判别(依据 \beamer@insertframetitlecontinuation 是否存在,判断逻辑写在文件顶层),因此 2023 及之后的各年份分支不需要再改动源码。
  • 2022 分支保留原始写法,只保证在 TeX Live 2022(beamer 3.66)下编译通过。

维护约定

每当有新的 TeX Live 年份发布时:

  1. 在新版本的 TeX Live 下,用 XeLaTeX 编译当前的 main;
  2. 如果编译不通过,进行修复,注意保持向后兼容,不要破坏旧年份分支;
  3. 修复通过后,新建一个以该年份命名的分支并提交;
  4. 把该年份分支快进合并到 main,让 main 始终是最新版本。

附注:不同年份的 TeX Live 生成的 PDF 在体积上可能略有差异(例如 TeX Live 2024 的 xdvipdfmx 曾一度不做跨页图像去重,导致成品偏大约 4 倍),但页面渲染内容是一致的,不影响使用。

元素介绍

基本信息

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}

几点说明

  1. 目录页需要连续编译两次:章节数目是从上一次编译生成的 .toc 文件里读出来的。第一次编译时 .toc 还是空的,目录页会是空白,再编译一次即可正常。
  2. 方框的序号和标题是超链接,在 PDF 里点击会直接跳到对应章节。
  3. 一级标题太多时(大约 9 个以上),方框和字号会变得偏小,编译日志里会有 oucslide Warning 提示。这种情况下建议合并章节,或者把目录页改回普通的列表样式。
  4. 如果确实想换回旧版那种简洁的列表目录,把 \makeoutline 里的 \ouc@toc@body 换回 \tableofcontents[hideallsubsections] 即可(旧的模板定义仍保留在 beamerouterthemeOUCSlide.sty 中)。

使用分节

本模板使用分节进行整体规划,章节共三级,对应的关键字分别是:

\section
\subsection
\subsubsection

其中,\section 会有单独的页面进行显示。如下图所示。而且,section还将会出现在目录页面中。 section \subsection 和 \subsubsection都没有单独的页面相对应,他们会出现在对应章节的frame中,作为标题进行呈现,并且加入了自动编号的效果。需要说明的是,\subsection是必须的,而 \subsubsection 却可有可无。他们呈现出的最终的效果,如下图所示。 subsection 需要注意的是,虽然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文件夹,并在beamerfontthemeOUCSlide.sty文件中修改。

推荐的字体包括:思源黑体、阿里普惠字体、OPPO字体、小米字体。这些字体基本上都可以免费商用,并且效果都很不错。关于他们是否能够继续免费商用的政策,请查阅其官方网站以得到最准确的信息。

颜色

根据海大公布的标准颜色,定义了相关颜色,主要包括海大蓝、海大天蓝、海大红、樱缤粉、文脉棕、专金、专银。其中文名称和代码如下表所示。

当然,也可以使用LaTex自带的颜色,例如white、black等。

名称 中文名
oucblue 海大蓝
ouclightblue 海大天蓝
oucred 海大红
ouccherry 樱缤粉
oucbrown 文脉棕
oucgolden 专金
oucsilver 专银

颜色等级

为了显示更丰富的色彩,定义的海大标准色,每一种颜色,都有十个等级,等级越低,颜色越浅。例如:对于海大蓝,其等级颜色从oucblue90-oucblue10不等,分成10个等级。

信息框

信息框使用边框的形式,提升幻灯片的表现力。

主要的信息框包括:列表框(vcolorbox)、提示框(notebox、importantbox)、信息框(titlebox)、要点框(pointbox)、块(block、exampleblock、alertblock)、标题框(headbox)和文本框(textbox)。它们的效果,如下图所示。

列表框 提示框 信息框 要点框 块 标题框和文本框

代码

模板可以插入代码块,使用lstlisting即可。

公式

模板中可以直接插入公式,和LaTex中没有什么区别。

脚注

可以在任何地方使用脚注。即便是在各种信息框中也可以。

S
Description
中国海洋大学幻灯片LaTex模板
Readme BSD-3-Clause
80 MiB
Languages
TeX 100%