forked from Tiphereth-A/CP-lib
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathICPCnotebook.cls
123 lines (101 loc) · 3.31 KB
/
ICPCnotebook.cls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
%-*- coding: utf-8 -*-
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ICPCnotebook}[2022/05/15 v0.1 Template class of Tifa's ICPC Notebook]
\LoadClass[a4paper, twoside]{report}
\RequirePackage{algorithm}
\RequirePackage{algpseudocode}
\RequirePackage{amsfonts, amsmath, amssymb, amsthm}
\RequirePackage{bm}
\RequirePackage{bigdelim}
\RequirePackage{bigstrut}
\RequirePackage{bookmark}
\RequirePackage{booktabs}
\RequirePackage{color, xcolor}
\RequirePackage{cprotect}
\RequirePackage[UTF8]{ctex}
\RequirePackage{extpfeil}
\RequirePackage{hyperref}
\RequirePackage{ifthen}
\RequirePackage{longtable}
\RequirePackage{mathtools}
\RequirePackage{multirow, multicol}
\RequirePackage{pgfplots}
\RequirePackage{pdflscape}
\RequirePackage{pdfpages}
\RequirePackage{seqsplit}
\RequirePackage{subcaption}
\RequirePackage{svg}
\RequirePackage{tabularx,diagbox}
\RequirePackage{tikz}
\RequirePackage{tocloft}
\RequirePackage{xspace}
\RequirePackage{xurl}
\usepgfplotslibrary{dateplot}
% Font setting
\RequirePackage{fontspec,unicode-math}
\RequirePackage[CJK,Latin]{ucharclasses}
\setmainfont{Noto Sans}
\setsansfont{Fira Sans}
\setmonofont[Contextuals=Alternate]{Fira Code}
\setmathfont{CMU Serif}
\setmathrm{CMU Serif}
\setmathsf{CMU Sans Serif}
\newfontfamily\cnfont{Noto Sans CJK SC}
\setTransitionsForChinese{\begingroup\cnfont}{\endgroup}
% User defined command
\newcommand{\lcm}{\operatorname{lcm}}
\newcommand{\subjectto}{~s.t.~}
\DeclareMathOperator*{\argmin}{arg\,min}
\DeclareMathOperator*{\argmax}{arg\,max}
\newcommand{\geneulerian}[3]{\genfrac<>{0pt}{#1}{#2}{#3}}
\newcommand{\eulerian}[2]{\geneulerian{}{#1}{#2}}
\newcommand{\deulerian}[2]{\geneulerian{0}{#1}{#2}}
\newcommand{\teulerian}[2]{\geneulerian{1}{#1}{#2}}
\newcommand{\geneulerianII}[3]{\left\langle\mathchoice{\!\!\!}{\!}{\!}{\!}\genfrac<>{0pt}{#1}{#2}{#3}\mathchoice{\!\!\!}{\!}{\!}{\!}\right\rangle}
\newcommand{\eulerianII}[2]{\geneulerianII{}{#1}{#2}}
\newcommand{\deulerianII}[2]{\geneulerianII{0}{#1}{#2}}
\newcommand{\teulerianII}[2]{\geneulerianII{1}{#1}{#2}}
\newcommand{\genstirlingI}[3]{\genfrac{[}{]}{0pt}{#1}{#2}{#3}}
\newcommand{\stirlingI}[2]{\genstirlingI{}{#1}{#2}}
\newcommand{\dstirlingI}[2]{\genstirlingI{0}{#1}{#2}}
\newcommand{\tstirlingI}[2]{\genstirlingI{1}{#1}{#2}}
\newcommand{\genstirlingII}[3]{\genfrac{\{}{\}}{0pt}{#1}{#2}{#3}}
\newcommand{\stirlingII}[2]{\genstirlingII{}{#1}{#2}}
\newcommand{\dstirlingII}[2]{\genstirlingII{0}{#1}{#2}}
\newcommand{\tstirlingII}[2]{\genstirlingII{1}{#1}{#2}}
\newcommand{\fullref}[1]{\ref{#1}.\nameref{#1} (\pageref{#1} 页)}
% Page style
% \XeTeXlinebreaklocale "zh"
% \XeTeXlinebreakskip = 0pt plus 1pt
\setlength{\itemindent}{0em}
\setlength{\parindent}{0em}
\setlength{\columnsep}{13pt}
\setlength{\cftsecnumwidth}{3em}
\RequirePackage{fancyhdr}
\RequirePackage[inner=2cm, outer=1cm, top=1.7cm, bottom=0.5cm]{geometry}
\setlength{\headsep}{0.1cm}
\setlength{\footskip}{0.7cm}
\fancypagestyle{fancy} {
\fancyhead[L]{\nouppercase\leftmark}
\fancyhead[R]{\nouppercase\rightmark}
\fancyfoot[C]{\thepage}
}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0.5pt}
% Code style
\RequirePackage{minted}
\setminted{
style=default,
mathescape,
linenos,
autogobble,
breakanywhere,
baselinestretch=0.9,
tabsize=2,
fontsize=\normalsize,
frame=single,
framesep=0.8mm,
framerule=0.3pt,
numbersep=0.8mm,
breaklines=true,
}