Giter Club home page Giter Club logo

scu_beamer_slide-demo's Introduction

四川大学Beamer模板

本项目参考了Beamer, Tcolorbox等官方文档, 参考了stackoverflow中的诸多问题;

主要参考了**科学技术大学Beamer模板 USTCBeamerSX, 少量参考了清华大学Beamer模板 THU-Beamer-Theme 及其衍生的各大学的Beamer模板, 还参考了**科学技术大学Beamer模板 ustcbeamer.

项目地址

-GitHub: https://github.com/FvNCCR228/SCU_Beamer_Slide-demo

-Gitee: https://gitee.com/NCCR/SCU_Beamer_Slide-demo

image image

使用说明

!! 请使用 UTF-8 格式, 设置 XeLaTeXBiber 进行编译( main.texmanual.tex );

!! 使用前请阅读用户手册;

在线编辑请上传整个工作文件夹, 否则会出现严重错误(Bug遍地飞);

!! 对 LaTeX 不熟悉的情况下, 请勿轻易改动 .sty 文件(宏包文件)中代码, 也可按照文件中注释进行实验性修改(注意保留备份);

目前本模板仅在编者的 Windows 11 系统上编译通过, Overleaf 编译失败(不是完全失败, 我很伤心);

使用 LaTeX 时一定要善用搜索引擎, 要积极搜索国外论坛.

模板设计

背景

封面与正文板块采用不同背景, 正文背景采用低透明度淡色, 增强正文文本等辨识性.

页眉

采用双行设计;

首行为节标题导航栏, 显示幻灯整体思路, 还附带四川大学校名;

次行为标题栏, 左侧显示小节标题与迷你帧(圆点)形式的当前小节帧进度}, 右侧显示当前幻灯标题. (编者认为小节迷你帧能在较清晰呈现进度的同时, 节约大量空间, 也能避免某节中幻灯页数过多, 导致标题导航挤压溢出)

页脚

采用双行设计;

首行为导航栏, 左侧显示报告标题, 右侧为导航模块; 次行为信息行, 左中右分别为作者、机构、日期与页码.

环境

模板定义了定理, 代码等多种环境演示.

关于修改

若有修改意见欢迎邮件联系编者, 当然, 编者不一定有时间, 请谅解.

若本校的 LaTeX 大佬百忙之中能对本模板提出批评指正, 鄙人在此万分感谢各位的支持.

感谢模板中所使用部分代码的原作者, 也感谢模板所调用宏包的诸位作者前辈.

欢迎友校的朋友们对此模板进行修改, 不过这个模板可能有点点难改, 希望能看懂我的注释, 但愿吧.

更新记录

v1.0a - 初始版本

scu_beamer_slide-demo's People

Contributors

fvnccr228 avatar xkwxdyy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

scu_beamer_slide-demo's Issues

main文件编译不通过

下载该repo后,第一次编译main文件无法成功编译:

No file main.toc.
! Undefined control sequence.
\insertsubsectionendframe ...r@subsectionendframe 
                                                  
l.88 \subsection{研究现状}

增加

\def\beamer@subsectionendframe{2}

后即可成功编译。

猜测是 beamerthemescu.sty 第388行写错了?

% 定义小节结束页命令. (实际此处设置为后续小节起始帧, document 结束时设置为结束帧)
\def\beamer@endframeofsubsection{2}
\def\beamer@subsectionframes#1#2{%
\ifnum\c@framenumber<#1%
\else%
\ifnum\c@framenumber>#2%
\else%
\gdef\beamer@subsectionendframe{#2}%
\fi%
\fi%
}
% 按照 beamer 方式储存命令.
\newcommand\insertsubsectionendframe{\beamer@subsectionendframe}

\beamer@endframeofsubsection 改为 \beamer@subsectionendframe 后可正常编译。

v1.2a 发行版相关问题

beamerthemescu.sty 文件中,取消注释第 303 行代码

beamerthemescu.sty 文件中,第23行修改为

\ProvidesPackage{beamerthemescu}[2022/03/10, v1.2a]

beamercolorthemescu.sty 文件中,第16行修改为

\ProvidesPackage{beamercolorthemescu}[2022/03/10, v1.2a]

上方导航栏进度条的问题

上方导航栏进度条(即 subsecframe 的数量与进程)当 frame 数量多的时候不会自动换行
image

不知道这个能否优化,我记得这个是可以变成双行的那种,能否判断长度,碰到旁边深色区域就变成两行。

Code reconstruction of theorem block on v1.1a.

This issue presents the complete code of the v1.1a of the theorem block that will be released in the future.

\documentclass{article}

\usepackage{ctex}
\usepackage{xcolor}
\usepackage{tcolorbox}
\usepackage{xparse}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{cleveref}
\tcbuselibrary{most,xparse}

\definecolor{JXred}{cmyk}{0.12,0.92,0.95,0.20}
\definecolor{YYgrey}{cmyk}{0.47,0.37,0.37,0.00}
\definecolor{BSblue}{cmyk}{1.00,0.60,0.00,0.15}
\definecolor{HYgreen}{cmyk}{1.00,0.00,0.90,0.15}
\definecolor{YXyellow}{cmyk}{0.00,0.40,1.00,0.15}

\makeatletter
% 定理盒子主题颜色定义.
\def\beamer@scu@tcbcolortheo@theo{JXred}
\def\beamer@scu@tcbcolortheo@exa{YYgrey}
\def\beamer@scu@tcbcolortheo@def{BSblue}
\def\beamer@scu@tcbcolortheo@lem{HYgreen}
\def\beamer@scu@tcbcolortheo@cond{YXyellow}

% 定理盒子基础样式定义.
\def\beamer@scu@tcbstyletheo#1{%
	\tcbset{tcb#1style/.style=%
		{enhanced jigsaw,%
		drop fuzzy shadow southeast,%
		toprule=3mm,leftrule=1mm,%
		boxsep=-.5mm,arc=1.5mm,%
		left=1.8mm,right=2mm,top=2.5mm,%
		colback=\csname beamer@scu@tcbcolortheo@#1\endcsname!2!white,%
		colframe=\csname beamer@scu@tcbcolortheo@#1\endcsname,%
		opacityback=0.95,%
		attach boxed title to top left={%
			yshift=-4mm,xshift=2mm},%
		boxed title style={%
			arc=2.5mm,top=-.5mm,bottom=-.5mm,%
			leftrule=1.5mm,rightrule=1.5mm,%
			colback=\csname beamer@scu@tcbcolortheo@#1\endcsname!5!white,%
			colframe=\csname beamer@scu@tcbcolortheo@#1\endcsname},%
		fonttitle=\normalsize\bfseries,%
		coltitle=black}%
	}%
}

% 基础样式应用.
\beamer@scu@tcbstyletheo{theo}
\beamer@scu@tcbstyletheo{exa}
\beamer@scu@tcbstyletheo{def}
\beamer@scu@tcbstyletheo{lem}
\beamer@scu@tcbstyletheo{cond}

% 定理区块名称设置.
\def\beamer@scu@theonametheorem{定理}
\def\beamer@scu@theonameexample{例}
\def\beamer@scu@theonamealgorithm{算法}
\def\beamer@scu@theonamedefinition{定义}
\def\beamer@scu@theonameaxiom{公理}
\def\beamer@scu@theonameproperty{性质}
\def\beamer@scu@theonameproposition{命题}
\def\beamer@scu@theonamelemma{引理}
\def\beamer@scu@theonamecorollary{推论}
\def\beamer@scu@theonamecondition{条件}
\def\beamer@scu@theonameconclusion{结论}
\def\beamer@scu@theonameassumption{假设}
\def\beamer@scu@theonameremark{注}
\def\beamer@scu@theonameproof{证明}

% theorem, example, algorithm, definition, axiom, property, proposition, lemma, corollary, condition, conclusion, assumption 设置.
% 计数器定义.
\newcounter{beamer@scu@theorem@count}
\newcounter{beamer@scu@example@count}
\newcounter{beamer@scu@algorithm@count}
\newcounter{beamer@scu@definition@count}
\newcounter{beamer@scu@axiom@count}
\newcounter{beamer@scu@property@count}
\newcounter{beamer@scu@proposition@count}
\newcounter{beamer@scu@lemma@count}
\newcounter{beamer@scu@corollary@count}
\newcounter{beamer@scu@condition@count}
\newcounter{beamer@scu@conclusion@count}
\newcounter{beamer@scu@assumption@count}
% 智能引用名称定义.
\Crefname{beamer@scu@theorem@count}%
	{\beamer@scu@theonametheorem}%
	{\beamer@scu@theonametheorem}
\Crefname{beamer@scu@example@count}%
	{\beamer@scu@theonameexample}%
	{\beamer@scu@theonameexample}
\Crefname{beamer@scu@algorithm@count}%
	{\beamer@scu@theonamealgorithm}%
	{\beamer@scu@theonamealgorithm}
\Crefname{beamer@scu@definition@count}%
	{\beamer@scu@theonamedefinition}%
	{\beamer@scu@theonamedefinition}
\Crefname{beamer@scu@axiom@count}%
	{\beamer@scu@theonameaxiom}%
	{\beamer@scu@theonameaxiom}
\Crefname{beamer@scu@property@count}%
	{\beamer@scu@theonameproperty}%
	{\beamer@scu@theonameproperty}
\Crefname{beamer@scu@proposition@count}%
	{\beamer@scu@theonameproposition}%
	{\beamer@scu@theonameproposition}
\Crefname{beamer@scu@lemma@count}%
	{\beamer@scu@theonamelemma}%
	{\beamer@scu@theonamelemma}
\Crefname{beamer@scu@corollary@count}%
	{\beamer@scu@theonamecorollary}%
	{\beamer@scu@theonamecorollary}
\Crefname{beamer@scu@condition@count}%
	{\beamer@scu@theonamecondition}%
	{\beamer@scu@theonamecondition}
\Crefname{beamer@scu@conclusion@count}%
	{\beamer@scu@theonameconclusion}%
	{\beamer@scu@theonameconclusion}
\Crefname{beamer@scu@assumption@count}%
	{\beamer@scu@theonameassumption}%
	{\beamer@scu@theonameassumption}
% 定理区块参数设置.
% #1: 后缀 - 环境名称.
% #2: 前缀 - 样式类型.
% #3: 前缀 - 标签.
% ##1: <可选>附加参数.
% ##2: 标题.
% ##3: 后缀 - 标签.
\def\beamer@scu@theo#1#2#3{%
	\newtcolorbox[use counter=beamer@scu@#1@count,%
	number within=section]{scu#1}[3][]{%
		title={\csname beamer@scu@theoname#1\endcsname~%
			\thetcbcounter\ifstrempty{##2}{}{:~##2}},%
		IfValueT={##3}{label={#3:##3}},#2style,##1}%
}
\beamer@scu@theo{theorem}			{tcbtheo}	{theo}
\beamer@scu@theo{example}			{tcbexa}	{exam}
\beamer@scu@theo{algorithm}		{tcbexa}	{algo}
\beamer@scu@theo{definition}	{tcbdef}	{def}
\beamer@scu@theo{axiom}				{tcbtheo}	{axio}
\beamer@scu@theo{property}		{tcbdef}	{prope}
\beamer@scu@theo{proposition}	{tcbdef}	{propo}
\beamer@scu@theo{lemma}				{tcblem}	{lemm}
\beamer@scu@theo{corollary}		{tcblem}	{coro}
\beamer@scu@theo{condition}		{tcbcond}	{cond}
\beamer@scu@theo{conclusion}	{tcblem}	{conc}
\beamer@scu@theo{assumption}	{tcbcond}	{assu}

% scuremark 设置.
% 计数器定义.
\newcounter{beamer@scu@remark@count}
% 智能引用名称定义.
\Crefname{beamer@scu@remark@count}%
	{\beamer@scu@theonameremark}%
	{\beamer@scu@theonameremark}
% 定理区块参数设置.
\newtcolorbox[use counter=beamer@scu@remark@count,%
	no counter]{scuremark}[3][]{%
		title={\beamer@scu@theonameremark%
			\ifstrempty{#2}{}{:~#2}},%
		IfValueT={#3}{label={rema:#3}},%
		tcbexastyle,#1}

% scuproof 设置.
% 计数器定义.
\newcounter{beamer@scu@proof@count}
% 智能引用名称定义.
\Crefname{beamer@scu@proof@count}%
	{\beamer@scu@theonameproof}%
	{\beamer@scu@theonameproof}
% 定理区块参数设置.
\newtcolorbox[use counter=beamer@scu@proof@count,%
	no counter]{scuproof}[3][]{%
		title={% \@addpunct: Be intelligently omitted when punctuation is already present.
			\ifblank{#2}{\beamer@scu@theonameproof}{#2}\@addpunct{.}},%
		after upper={\par\hfill\qed},%
		IfValueT={#3}{label={proo:#3}},%
		tcbexastyle,#1}
\makeatother

\begin{document}

\section{定理区块示例}
\begin{scutheorem}{定理示例}{theorem}
	这是定理.
\end{scutheorem}
\begin{scuproof}{}{}
	这是证明.
\end{scuproof}
\begin{scuexample}{例子示例}{example}
	这是例子.
\end{scuexample}
\begin{scualgorithm}{算法示例}{algorithm}
	这是算法.
\end{scualgorithm}
\begin{scudefinition}{定义示例}{definition}
	这是定义.
\end{scudefinition}
\begin{scuaxiom}{公理示例}{axiom}
	这是公理.
\end{scuaxiom}
\begin{scuproperty}{性质示例}{property}
	这是性质.
\end{scuproperty}
\begin{scuproposition}{命题示例}{proposition}
	这是命题.
\end{scuproposition}
\begin{sculemma}{引理示例}{lemma}
	这是引理.
\end{sculemma}
\begin{scucorollary}{推论示例}{corollary}
	这是推论.
\end{scucorollary}
\begin{scuremark}{}{}
	这是注解.
\end{scuremark}
\begin{scucondition}{条件示例}{condition}
	这是条件.
\end{scucondition}
\begin{scuconclusion}{结论示例}{conclusion}
	这是结论.
\end{scuconclusion}
\begin{scuassumption}{假设示例}{assumption}
	这是假设.
\end{scuassumption}

\end{document}

allowframebreaks 造成页脚排版错误

排版参考文献时,页脚会出现错位,有些页脚会消失。我感觉是由于使用了allowframebreaks造成的,不知道有没有什么好的解决办法?
image
image

theorem环境的复数

作者好,很漂亮的模板!
请问自定义的scu@theorem中的@pl参数要怎么用呢,在同时有多个examples想要加个s,又不想额外定义新的环境

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.