Apache License 2.0

技术解读

以下内容由 GitRead 中文社区 编辑团队基于项目 README 与官方资料整理, 结合中文开发者的常见使用场景补充技术选型建议。具体以项目官方文档为准。

SJTUG/SJTUBeamer 深度技术分析

项目背景与痛点

SJTUG/SJTUBeamer 是为上海交通大学设计的 Beamer 模板。这套模板的设计初衷在于为上交的学术报告提供一套符合校徽规范、美观且易用的设计方案。对于上交师生而言,学术报告的质量直接影响到听众理解信息的效果,而报告的视觉设计是这一过程中的关键环节。这套模板解决了校内Beamer模版不统一、美观度欠佳以及缺少学校特色的问题,提升了学术报告的整体水准。

核心技术揭秘

SJTUG/SJTUBeamer 的底层设计紧跟 LaTeX 的强大布局和图形处理能力,优化了 Beamer 类库的实现。这一设计的神髓在于充分利用 LaTeX 的模板机制,并进行少量定制化开发,以确保其在美观性和功能性的平衡上发挥极致。

在模板细节上,不同页面的风格通过自定义的颜色、字体及标签设计实现,以不同主题涵盖多种汇报场景。例如,模板文件中定义了多种颜色,且均指向学校的正式视觉标识。此外,模板对于徽标图片的大小、位置及透明度都进行了适当的定义,使其在符合使用规范的同时也具备美观度。

以下是一个简化的数据流框架图,展示了该模板对 Beamer 类库的定制化设计和实现过程。

graph TD A[用户加载模板] --> B[自定义颜色与字体] B --> C[设定徽标] C --> D[定义幻灯片结构] D --> E[应用页面样式] E --> F[输出渲染结果]

该模板的设计者充分理解 Beamer 提供的各种主题命令,充分利用了多个 LaTeX 包以增强设计的可控性和美观性。通过大量的注释,不仅保障了代码的可读性,还方便未来的维护和扩展。

功能亮点与差异

相比之下,其他的 Beamer 模板更多强调通用性和广泛的主题选择,但 SJTUG/SJTUBeamer 更注重视觉规范和特色展示。独到的设计在于它不仅满足了校系标识的视觉需求,还巧妙地兼容了 Beamer 的基础功能,如幻灯片切换效果和主题变换。

同时,SJTUG/SJTUBeamer 提供了大量的示例及配置选项,帮助用户快速入手,只需要少量的配置修改即可适应大部分的报告需求,提高了使用效率。

应用场景与落地建议

在生产环境中使用 SJTUG/SJTUBeamer 时,要注意是否已部署必要的 LaTeX 包和字体。推荐在自建的 LaTeX 环境或容器中运行,这也使模板能够在多种环境下保持一致的渲染效果。这样的模板特别适用于需严格遵守校系标识规范的学术报告和课程展示,确保每位师生作品的一致性和专业性。

综合评价

优点

  • 统一的视觉风格:符合校徽的规范,统一了内部的视觉标准。
  • 易于定制:通过简单的配置调整,适用于多种不同的汇报场景。
  • 文档及示例丰富:详细的使用文档和多样化使用范例,大大降低了使用者的上手成本。

缺点

  • 定制需求高:如果报告需求包含较多的非标准内容,可能还需进一步的定制开发。
  • 依赖 LaTeX:对于不熟悉 LaTeX 的用户来说,学习成本较高。

总体而言,SJTUG/SJTUBeamer 是一个优秀的 Beamer 模板,尤其在学术报告的规范性和美观度上表现突出。适用于需要高度一致视觉风格的学术及教育场合,对于使用者而言,在使用前了解并调整 LaTeX 环境可能将极大提升报告质量。

关于

GitHub 原始描述(英文)

上海交通大学 Beamer 模版 | Beamer template for Shanghai Jiao Tong University

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
987
价值分
522
活跃状态
活跃

语言占比

Lua
Makefile
Perl
Shell
TeX

Release

README

SJTUBeamer 🤓

TeXPage Overleaf discussions Build

欢迎使用 SJTUBeamer! 🥳

SJTUBeamer 是上海交通大学的非官方 Beamer 模版。您可以使用 SJTUBeamer 制作幻灯片,展示您的成果。

这个仓库中包含 SJTUBeamer 所使用的宏包 sjtubeamer,以及一个示例文档。

快速上手 👋

目前的 main.tex 是一个示例文档《如何使用 LaTeX 排版论文》。您可以将里面的内容替换掉。下面是一个最简示例:

点击展开代码片段

Prism 需要首行的魔术注释来变更编译程序,使用 beamer 文档类不编写中文的情况下可以省略该行以使用默认的 pdfLaTeX 编译程序。

% !TeX program = xelatex

\documentclass[
    % draft,          % 草稿模式
    aspectratio=169,  % 使用 16:9 比例
    % fontset=ubuntu, % 在 Prism 平台需要添加该字体选项
]{ctexbeamer}
\mode<presentation>

\usetheme[min]{sjtubeamer}
% 使用 maxplus/max/min 切换标题页样式
% 使用 red/blue 切换主色调
% 使用 light/dark 切换亮/暗色模式
% 使用外样式关键词以获得不同的边栏样式
%   miniframes infolines  sidebar 
%   default    smoothbars split	 
%   shadow     tree       smoothtree
% 使用 topright/bottomright 切换徽标位置
% 使用逗号分隔列表以同时使用多种选项

% \tikzexternalize[prefix=build/]
% 如果您需要缓存 tikz 图像,请取消注释上一行,并在编译选项中添加 -shell-escape。

\usepackage[backend=biber,style=gb7714-2015]{biblatex}
\addbibresource{thesis.bib}

\institute[SJTUG]{上海交通大学 Linux 用户组} % 组织

\title{SJTUBeamer 幻灯片模板}         % 标题
\subtitle{SJTUBeamer Template}       % 副标题
\author{SJTUG}                       % 作者
\date{\today}                        % 日期  

\begin{document}

\maketitle                           % 创建标题页

\part{第一部分}

% 使用节目录
\AtBeginSection[]{
  \begin{frame}
    % \tableofcontents[currentsection,hideallsubsections]  % 传统节目录             
    \sectionpage                        % 节页
  \end{frame}
}

\section{第 1 节}

\begin{frame}
  \frametitle{标题}
  \paragraph{列表} 这个\alert{幻灯片}有下面几项:
  \begin{itemize}
    \item 第 1 项
    \item 第 2 项
    \item 第 3 项
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{标题}
  \framesubtitle{子标题}
  \begin{equation}
    x^2+2x+1=(x+1)^2
  \end{equation}
\end{frame}

\section{第 2 节}
\begin{frame}
  \frametitle{一些盒子}
  \begin{block}{盒子}
    这是一个盒子\cite{thelegendofjiang}
  \end{block}
  \begin{alertblock}{注意}
    注意内容
  \end{alertblock}
  \begin{exampleblock}{示例}
    示例内容
  \end{exampleblock}
\end{frame}

\begin{frame}[fragile]          % 注意添加 fragile 标记
  \frametitle{代码块}
  % 代码块参数:语言,标题
  % 请减少代码初始的缩进
  \begin{codeblock}[language=c++]{C++代码}
#include<iostream>

int main(){
  // Console Output
  std::cout << "Hello, SJTU!" << std::endl;
  return 0;
}
  \end{codeblock}
\end{frame}

\part{参考文献}
\begin{frame}[allowframebreaks]
  \printbibliography[heading=none]
\end{frame}

\makebottom       % 创建结束页

\end{document}

使用方法 🧰

普通用户只需编辑 main.tex 即可开始使用。

模版下载与编译

  • Prism/TeXPage/Overleaf
    • 直接使用 TeXPage 模板库链接/Overleaf 模板库链接。
    • 或者手动上传至 Prism/TeXPage/Overleaf 使用:
      • 下载开发版压缩包。页面右上角 Code - Download Zip 即可。
      • 或下载 最新版 压缩包,点击 “Source Code (zip)” 即可下载。
      • 或下载 最新版 最小依赖压缩包,点击 sjtubeamer-online.zip 下载。
      • 上传至 Prism/TeXPage/Overleaf。
      • TeXPage/Overleaf 的设置中需要选择“XeLaTeX”编译器编译;Prism 平台需要使用 fontset=ubuntu 字体选项。
  • 本地使用
    • 安装 TeXLive 套件。
    • 下载模板至本地:
      • 使用 git 克隆仓库 git clone https://github.com/sjtug/SJTUBeamer/ 或 git clone https://mirror.sjtu.edu.cn/git/SJTUBeamer.git/。
      • 或下载开发版压缩包。页面右上角 Code - Download Zip 即可。
      • 或下载 最新版 压缩包。点击 “Source Code (zip)” 即可下载。
    • 之后通过 latexmk -xelatex main.tex 命令进行编译即可。
    • VSCode 用户可以使用 LaTeX Workshop 中的 “Recipe: latexmk (latexmkrc)” 进行编译。

目前模版最新的稳定版是 v3.2.0。您可以在 发布页 查看修改日志和更多资料。通常来说,SJTUBeamer 的一个稳定版本包括如下内容:

  • sjtubeamerquickstart.pdf:SJTUBeamer 快速入门,另见对应 源代码。
  • sjtubeamer.pdf: 强烈推荐在使用前阅读一遍 👍👍👍 SJTUBeamer 用户文档。
  • sjtubeamerdevguide.pdf: SJTUBeamer 开发指南。
  • sjtulib-talk-max-red.pdf: 示例文档《如何使用 LaTeX 排版论文》的 max,red 主题版本。
  • sjtulib-talk-maxplus-blue.pdf: 示例文档《如何使用 LaTeX 排版论文》的 maxplus,blue 主题版本。
  • sjtulib-talk-maxplus-red.pdf: 示例文档《如何使用 LaTeX 排版论文》的 maxplus,red 主题版本。
  • sjtulib-talk-min-red.pdf: 示例文档《如何使用 LaTeX 排版论文》的 min,red 主题版本。
  • sample-all-covers.pdf: 所有配色主题的封面封底。
  • sjtubeamer-ctan.zip: 包含所有文档和样式的压缩包。
  • sjtubeamer-online.zip:包含插件与最小依赖,适合于在线平台使用。
  • SJTUBeamer 源代码。

请使用 Chrome 浏览器或 Adobe Acrobat 打开 SJTUBeamer 用户文档,以避免 PDF 兼容性导致的显示问题。

使用反馈与贡献代码 👷

  • 文件清单详见 MANIFEST。
  • 在使用过程中,您可以在 GitHub Discussions 讨论区提问任何使用上的问题、交流想法。
  • 在开发过程中,您可以通过 GitHub Issues 提供 SJTUBeamer 的 Bug 反馈和新功能提案。同时,也欢迎您直接提交 Pull Request 代码修改帮助我们改进。
  • 所有对模版的修改应该在 .dtx 文件中进行,而后用 l3build 生成 sty 文件。
  • 您可以阅读发布页面中的《SJTUBeamer 开发指南》sjtubeamerdevguide.pdf 了解模版的实现细节与编译方法。

整个开发流程如下:

  • 修改 .dtx 文件。
  • 运行 make generate 将生成的 sty 文件拷贝到根目录下。
  • 更新 main.tex,运行 make build 查看模版修改后的效果。
  • 更新开发文档,运行 make build-dev 编译所有开发文档,运行单元测试。
  • (可选)运行 make format-dev 格式化所有文件。
  • 发 PR。

新贡献者可以将自己的信息加入 src/doc/sjtubeamerdevguide.tex 的 Developer 章节。

展示 🧐

详细展示见 样式一览。

Red Cover Blue Cover

许可证

SJTUBeamer 仓库同时包含 SJTUBeamer 包和一个示例文档。其中内容的许可证各不相同。您可以阅读各个文件的开头部分,了解该文件所使用的许可证。

  • SJTUBeamer 包使用的许可证为 Apache-2.0。
  • SJTUBeamer 示例文档使用 CC-BY-SA 4.0 许可。
  • sjtuvi 和 sjtucover 库及其附属徽标、图片由上海交通大学持有版权。校属各单位及个人以经营为目的使用视觉形象识别系统,须向学校申请使用许可。校外单位及个人未经许可,不得制作或使用载有视觉形象识别系统的物品。您可以在 vi.sjtu.edu.cn 阅读许可协议。

评论

暂无评论