mirror of
https://github.com/congyu711/BeamerTheme.git
synced 2025-07-12 00:13:00 +08:00
284 lines
9.6 KiB
TeX
284 lines
9.6 KiB
TeX
% !TEX program = xelatex
|
||
% !TEX TS-program = xelatex
|
||
% fonts
|
||
\RequirePackage{fontspec}
|
||
% \usefonttheme{professionalfonts}
|
||
% \RequirePackage[sfdefault]{FiraSans}
|
||
\RequirePackage{FiraMono}
|
||
\renewcommand{\rmfamily}{\sffamily}
|
||
% \RequirePackage[fakebold]{firamath-otf}
|
||
\RequirePackage{unicode-math}
|
||
\RequirePackage{amsmath}
|
||
\RequirePackage{amsthm}
|
||
\RequirePackage{amssymb}
|
||
\RequirePackage{inputenc}
|
||
\unimathsetup{math-style=ISO, bold-style=ISO, mathrm=sym}
|
||
\setsansfont{FiraGO}[BoldFont=* SemiBold, Numbers=Monospaced]
|
||
\setmathfont{Fira Math}[BoldFont=*-SemiBold]
|
||
% \setmathfont[range=bb]{XITS Math Bold}
|
||
\RequirePackage{xeCJK}
|
||
\setCJKmainfont{Source Han Sans SC}
|
||
\setCJKsansfont{Source Han Sans SC}
|
||
\setCJKmonofont{Source Han Sans SC}
|
||
|
||
\RequirePackage[english]{babel}
|
||
\RequirePackage{fancyhdr} % header footer
|
||
\RequirePackage[dvipsnames]{xcolor}
|
||
\RequirePackage{bookmark}
|
||
\RequirePackage{hyperref}[colorlinks=true,urlcolor=Blue,citecolor=Green,linkcolor=BrickRed,unicode]
|
||
\RequirePackage{natbib}
|
||
\RequirePackage{graphicx} % Allows including images
|
||
\RequirePackage{booktabs} % Allows the use of \toprule, \midrule and \bottomrule in tables
|
||
% \RequirePackage{tikz}
|
||
% \usetikzlibrary{backgrounds}
|
||
% \usetikzlibrary{arrows,shapes}
|
||
% \usetikzlibrary{tikzmark} % for \tikzmarknode
|
||
% \usetikzlibrary{calc} % for computing the midpoint between two nodes, e.g. at ($(p1.north)!0.5!(p2.north)$)
|
||
% \RequirePackage[ruled,linesnumbered]{algorithm2e}
|
||
% \RequirePackage{adjustbox}
|
||
\RequirePackage{subcaption}
|
||
% \RequirePackage{CJKutf8}
|
||
% \def\zh#1{\begin{CJK}{UTF8}{gbsn}#1\end{CJK}}
|
||
\RequirePackage{aliascnt}
|
||
|
||
% a color box
|
||
\RequirePackage[breakable, theorems, skins]{tcolorbox}
|
||
\tcbset{enhanced}
|
||
\DeclareRobustCommand{\boxfill}[2][oliver!20]{%
|
||
\begin{tcolorbox}[ %% Adjust the following parameters at will.
|
||
breakable,
|
||
left=0pt,
|
||
right=0pt,
|
||
top=0pt,
|
||
bottom=0pt,
|
||
colback=#1,
|
||
colframe=#1,
|
||
width=\dimexpr\textwidth\relax,
|
||
enlarge left by=0mm,
|
||
boxsep=5pt,
|
||
arc=0pt,outer arc=0pt,
|
||
]
|
||
#2
|
||
\end{tcolorbox}
|
||
}
|
||
|
||
|
||
\definecolor{beamer@simple@color}{RGB}{12 72 66} % bluegreen
|
||
\DeclareOptionBeamer{gray}{\definecolor{beamer@simple@color}{gray}{#1}}
|
||
\DeclareOptionBeamer{rgb}{\definecolor{beamer@simple@color}{rgb}{#1}}
|
||
\DeclareOptionBeamer{RGB}[{12 72 0}]{\definecolor{beamer@simple@color}{RGB}{#1}}
|
||
\DeclareOptionBeamer{HTML}{\definecolor{beamer@simple@color}{HTML}{#1}}
|
||
\DeclareOptionBeamer{cmyk}{\definecolor{beamer@simple@color}{cmyk}{#1}}
|
||
\DeclareOptionBeamer{cmy}{\definecolor{beamer@simple@color}{cmy}{#1}}
|
||
\DeclareOptionBeamer{named}{\definecolor{beamer@simple@color}{named}{#1}}
|
||
\DeclareOptionBeamer{hsb}{\definecolor{beamer@simple@color}{hsb}{#1}}
|
||
\ProcessOptionsBeamer
|
||
\definecolor{oliver}{rgb}{0.33, 0.42, 0.18}
|
||
|
||
% footline
|
||
% delete navigation below
|
||
\setbeamertemplate{navigation symbols}{}
|
||
|
||
\useoutertheme{tree}
|
||
\makeatletter
|
||
\setbeamertemplate{headline}
|
||
{%
|
||
\begin{beamercolorbox}[wd=\paperwidth,colsep=1.5pt]{upper separation line head}
|
||
\end{beamercolorbox}
|
||
\begin{beamercolorbox}[wd=\paperwidth,ht=2.5ex,dp=1.125ex,%
|
||
leftskip=.3cm,rightskip=.3cm plus1fil]{title in head/foot}
|
||
\usebeamerfont{title in head/foot}\insertshorttitle
|
||
\usebeamerfont{section in head/foot}%
|
||
\ifbeamer@tree@showhooks
|
||
\setbox\beamer@tempbox=\hbox{\insertsectionhead}%
|
||
\ifdim\wd\beamer@tempbox>1pt%
|
||
\hskip2pt\raise1.9pt\hbox{\vrule width 5pt height0.4pt}%
|
||
\hskip1pt%
|
||
\fi%
|
||
\else%
|
||
\hskip6pt%
|
||
\fi%
|
||
\insertsectionhead
|
||
\usebeamerfont{subsection in head/foot}%
|
||
\ifbeamer@tree@showhooks
|
||
\setbox\beamer@tempbox=\hbox{\insertsubsectionhead}%
|
||
\ifdim\wd\beamer@tempbox>1pt%
|
||
\hskip2pt\raise1.9pt\hbox{\vrule width 5pt height0.4pt}%
|
||
\hskip1pt%
|
||
\fi%
|
||
\else%
|
||
\hskip12pt%
|
||
\fi%
|
||
\insertsubsectionhead\hfill\insertshortauthor\hskip12pt\insertframenumber/\inserttotalframenumber\hspace{0.5em}
|
||
\end{beamercolorbox}
|
||
\begin{beamercolorbox}[wd=\paperwidth,colsep=1.5pt]{lower separation line head}
|
||
\end{beamercolorbox}
|
||
}
|
||
\makeatother
|
||
|
||
% footline color
|
||
\setbeamercolor{author in head/foot}{fg=black, bg=mygrey!5!white}
|
||
\setbeamercolor{title in head/foot}{fg=black, bg=mygrey!5!white}
|
||
\setbeamercolor*{title}{fg=beamer@simple@color, bg=white}
|
||
% item settings
|
||
\setbeamertemplate{itemize item}{$\color{beamer@simple@color}\bullet$}
|
||
\setbeamertemplate{itemize subitem}{$\color{beamer@simple@color}\bullet$}
|
||
\setbeamertemplate{enumerate items}[square]
|
||
\setbeamertemplate{section in toc}[sections numbered]
|
||
\setbeamertemplate{subsection in toc}[square]
|
||
|
||
|
||
|
||
% color definition
|
||
\definecolor{mygrey}{rgb}{0.52, 0.52, 0.51}
|
||
|
||
\setbeamercolor{structure}{fg=beamer@simple@color, bg=mygrey!10!white}
|
||
\setbeamercolor{frametitle}{fg=beamer@simple@color, bg=white}
|
||
\setbeamercolor{block title}{fg=beamer@simple@color,bg=white}
|
||
\setbeamercolor{block body}{fg=black,bg=white}
|
||
\setbeamercolor{block body alerted}{bg=white}
|
||
\setbeamercolor{block title alerted}{fg=beamer@simple@color,bg=white}
|
||
\setbeamercolor{alerted text}{fg=beamer@simple@color}
|
||
\setbeamerfont{block title alerted}{series=\mdseries}
|
||
\setbeamerfont{alerted text}{series=\bfseries\boldmath}
|
||
\hypersetup{colorlinks=true,linkcolor=,citecolor=Green,urlcolor=oliver}
|
||
% \usefonttheme[onlymath]{serif}
|
||
\setbeamerfont{frametitle}{series=\bfseries\boldmath}
|
||
\setbeamerfont{block title}{series=\bfseries\boldmath}
|
||
\setbeamerfont{title}{series=\bfseries\boldmath}
|
||
\setbeamertemplate{frametitle}{\vskip2pt\hskip-6pt\underbar{\insertframetitle}} % add line under frametitle
|
||
|
||
% theorem env
|
||
\setbeamertemplate{theorem begin}{%
|
||
{
|
||
\vspace{5pt}%
|
||
\usebeamerfont*{block title}%
|
||
\selectfont%
|
||
\usebeamercolor[fg]{block title}%
|
||
\textbf{%
|
||
\inserttheoremname
|
||
\inserttheoremnumber
|
||
\ifx \inserttheoremaddition \empty \else\ [\inserttheoremaddition]\fi
|
||
}
|
||
}
|
||
}
|
||
\setbeamertemplate{theorem end}{\vspace{5pt}}
|
||
% proof env
|
||
\setbeamertemplate{proof begin}{%
|
||
{\vspace{5pt}
|
||
\usebeamercolor[fg]{block title}
|
||
\textit{\textbf{Proof:}}}
|
||
}
|
||
\setbeamertemplate{proof end}{
|
||
\qedhere
|
||
\vspace{5pt}
|
||
}
|
||
|
||
% more theorem env
|
||
\newtheorem{conjecture}[theorem]{Conjecture}
|
||
\newtheorem{observation}[theorem]{Observation}
|
||
\newtheorem{question}[theorem]{Question}
|
||
|
||
|
||
% ----------------------------------------------------------------------
|
||
% Simple math stuff
|
||
% ----------------------------------------------------------------------
|
||
\renewcommand{\subset}{\subseteq}
|
||
% ---- SYMBOLS ----
|
||
\let\e\varepsilon % a ``real'' epsilon — better yet, just use Unicode ε.
|
||
%
|
||
% I give up. These are in the wrong font, but my kludged versions
|
||
% LOOK like kludges, especially \Z, \Q, and \C.
|
||
%
|
||
\def\Real{ℝ}
|
||
\def\Proj{ℙ}
|
||
\def\Hyper{ℍ}
|
||
\def\Integer{ℤ}
|
||
\def\Natural{ℕ}
|
||
\def\Complex{ℂ}
|
||
\def\Rational{ℚ}
|
||
|
||
\let\N\Natural
|
||
\let\Q\Rational
|
||
\let\R\Real
|
||
\let\Z\Integer
|
||
\def\Rd{\Real^d}
|
||
\def\RP{\Real\Proj}
|
||
\def\CP{\Complex\Proj}
|
||
|
||
|
||
|
||
% ---- OPERATORS (requires amsmath) ----
|
||
\def\aff{\operatorname{aff}}
|
||
\def\area{\operatorname{area}}
|
||
\def\argmax{\operatornamewithlimits{arg\,max}}
|
||
\def\argmin{\operatornamewithlimits{arg\,min}}
|
||
\def\Aut{\operatorname{Aut}} % Automorphism group
|
||
\def\card{\operatorname{card}} % cardinality, deprecated for \abs
|
||
\def\conv{\operatorname{conv}}
|
||
\def\E{\operatorname{E}} % Expectation: $\E[X]$ (like \Pr)
|
||
\def\EE{\operatornamewithlimits{E}}
|
||
\def\Hom{\operatorname{Hom}} % Homomorphism group
|
||
\def\id{\operatorname{id}} % identity
|
||
\def\im{\operatorname{im}} % image
|
||
\def\lcm{\operatorname{lcm}}
|
||
\def\lfs{\operatorname{lfs}} % local feature size
|
||
\def\poly{\operatorname{poly}}
|
||
\def\polylog{\operatorname{polylog}}
|
||
\def\rank{\operatorname{rank}}
|
||
\def\rel{\operatorname{rel\,}} % relative (interior, boundary, etc.)
|
||
\def\sgn{\operatorname{sgn}}
|
||
\def\vol{\operatorname{vol}} % volume
|
||
|
||
\def\fp#1{^{\underline{#1}}} % falling powers: $n\fp{d}$
|
||
\def\rp#1{^{\overline{#1}}} % rising powers: $n\rp{d}$
|
||
|
||
\def\setsymdiff{\operatorname{\triangle}}
|
||
% % --- Darts and fences ---
|
||
% % less nice replacements for stmaryrd characters
|
||
% \@ifundefined{shortrightarrow}{\let\shortrightarrow\rightarrow}{}
|
||
% \@ifundefined{shortleftarrow}{\let\shortleftarrow\leftarrow}{}
|
||
% \@ifundefined{shortuparrow}{\let\shortuparrow\uparrow}{}
|
||
% \@ifundefined{shortdownarrow}{\let\shortdownarrow\downarrow}{}
|
||
|
||
\def\arcto{\mathord\shortrightarrow}
|
||
\def\arcfrom{\mathord\shortleftarrow}
|
||
\def\arc#1#2{#1\arcto#2}
|
||
\def\cra#1#2{#1\mathord\shortleftarrow#2}
|
||
\def\fence#1#2{#1\mathord\shortuparrow#2}
|
||
\def\ecnef#1#2{#1\mathord\shortdownarrow#2}
|
||
|
||
% --- Cheap displaystyle operators ---
|
||
\def\Frac#1#2{{\displaystyle\frac{#1}{#2}}}
|
||
\def\Sum{\sum\limits}
|
||
\def\Prod{\prod\limits}
|
||
\def\Union{\bigcup\limits}
|
||
\def\Inter{\bigcap\limits}
|
||
\def\Lor{\bigvee\limits}
|
||
\def\Land{\bigwedge\limits}
|
||
\def\Lim{\lim\limits}
|
||
\def\Max{\max\limits}
|
||
\def\Min{\min\limits}
|
||
|
||
% ---- RELATORS ----
|
||
\def\deq{\stackrel{\scriptscriptstyle\triangle}{=}} % Use := instead.
|
||
\def\into{\DOTSB\hookrightarrow} % = one-to-one
|
||
\def\onto{\DOTSB\twoheadrightarrow}
|
||
\def\inonto{\DOTSB\lhook\joinrel\twoheadrightarrow}
|
||
\def\from{\leftarrow}
|
||
\def\tofrom{\leftrightarrow}
|
||
\def\mapsfrom{\mathrel{\reflectbox{$\mapsto$}}}
|
||
\def\longmapsfrom{\mathrel{\reflectbox{$\longmapsto$}}}
|
||
|
||
% ---- DELIMITER PAIRS ----
|
||
% --- always self-scaling delmiter pairs ---
|
||
\def\set#1{\left\{ #1 \right\}}
|
||
\def\floor#1{\left\lfloor #1 \right\rfloor}
|
||
\def\ceil#1{\left\lceil #1 \right\rceil}
|
||
\def\seq#1{\left\langle #1 \right\rangle}
|
||
\def\abs#1{\left| #1 \right|}
|
||
\def\norm#1{\left\| #1 \right\|}
|
||
\def\paren#1{\left( #1 \right)} % need better macro name!
|
||
\def\brack#1{\left[ #1 \right]} % need better macro name!
|
||
\def\indic#1{\left[ #1 \right]} % indicator variable; Iverson notation
|