diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..51d8bc5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +report.aux +report.log +report.synctex.gz diff --git a/README.md b/README.md index bb60183..8006065 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,16 @@ -# 中国海洋大学科技报告Latex模板 +# progartcn +简洁大方的科技类或IT类文章、教程模板 + +**特性** + +- 方便科技类或IT类文章、教程的编写,简洁大方,去繁从简; +- 英文使用 `Minion Pro`, `Myriad Pro` 和 `Courier Std` 字体,中文,使用方正系列字体; +- 定制摘要、各级节标题、表格、页眉页脚等样式; +- 定义 JavaScript/ES6, TypeScript, golang 等`listings`未定议的语言样式; +- 定义 shell 命令及输出展示环境:`shellbox` 和 `invertedshellbox`; +- 使用`tcolorbox`新建 notebox, importantbox 本文框,用于展示“注意”和“重要”信息。 + +具体效果见样例输出的 PDF。 + +字体下载及模板更新请移步 GitHub仓库:https://github.com/WisdomFusion/latex-templates。 \ No newline at end of file diff --git a/figs/1.jpg b/figs/1.jpg new file mode 100644 index 0000000..568d852 Binary files /dev/null and b/figs/1.jpg differ diff --git a/font/CourierStd.otf b/font/CourierStd.otf new file mode 100644 index 0000000..3088dc5 Binary files /dev/null and b/font/CourierStd.otf differ diff --git a/font/FZFSK.TTF b/font/FZFSK.TTF new file mode 100644 index 0000000..7fef4d6 Binary files /dev/null and b/font/FZFSK.TTF differ diff --git a/font/FZHTK.TTF b/font/FZHTK.TTF new file mode 100644 index 0000000..8a7bf04 Binary files /dev/null and b/font/FZHTK.TTF differ diff --git a/font/FZKTK.TTF b/font/FZKTK.TTF new file mode 100644 index 0000000..29978fb Binary files /dev/null and b/font/FZKTK.TTF differ diff --git a/font/FZSSK.TTF b/font/FZSSK.TTF new file mode 100644 index 0000000..5812315 Binary files /dev/null and b/font/FZSSK.TTF differ diff --git a/font/FZXBSK.TTF b/font/FZXBSK.TTF new file mode 100644 index 0000000..77af56a Binary files /dev/null and b/font/FZXBSK.TTF differ diff --git a/font/FZZDXK.TTF b/font/FZZDXK.TTF new file mode 100644 index 0000000..69fbc7a Binary files /dev/null and b/font/FZZDXK.TTF differ diff --git a/font/Myriad-Pro.otf b/font/Myriad-Pro.otf new file mode 100644 index 0000000..762d12b Binary files /dev/null and b/font/Myriad-Pro.otf differ diff --git a/font/MyriadPro Regular.otf b/font/MyriadPro Regular.otf new file mode 100644 index 0000000..57a953b Binary files /dev/null and b/font/MyriadPro Regular.otf differ diff --git a/font/MyriadPro-Black.otf b/font/MyriadPro-Black.otf new file mode 100644 index 0000000..10033c3 Binary files /dev/null and b/font/MyriadPro-Black.otf differ diff --git a/font/MyriadPro-BlackCond.otf b/font/MyriadPro-BlackCond.otf new file mode 100644 index 0000000..de5bc23 Binary files /dev/null and b/font/MyriadPro-BlackCond.otf differ diff --git a/font/MyriadPro-BlackCondIt.otf b/font/MyriadPro-BlackCondIt.otf new file mode 100644 index 0000000..2e25035 Binary files /dev/null and b/font/MyriadPro-BlackCondIt.otf differ diff --git a/font/MyriadPro-BlackIt.otf b/font/MyriadPro-BlackIt.otf new file mode 100644 index 0000000..a21318d Binary files /dev/null and b/font/MyriadPro-BlackIt.otf differ diff --git a/font/MyriadPro-BlackSemiCn.otf b/font/MyriadPro-BlackSemiCn.otf new file mode 100644 index 0000000..7086f34 Binary files /dev/null and b/font/MyriadPro-BlackSemiCn.otf differ diff --git a/font/MyriadPro-BlackSemiCnIt.otf b/font/MyriadPro-BlackSemiCnIt.otf new file mode 100644 index 0000000..bc44152 Binary files /dev/null and b/font/MyriadPro-BlackSemiCnIt.otf differ diff --git a/font/MyriadPro-BlackSemiExt.otf b/font/MyriadPro-BlackSemiExt.otf new file mode 100644 index 0000000..47c2bf6 Binary files /dev/null and b/font/MyriadPro-BlackSemiExt.otf differ diff --git a/font/MyriadPro-BlackSemiExtIt.otf b/font/MyriadPro-BlackSemiExtIt.otf new file mode 100644 index 0000000..9db89ce Binary files /dev/null and b/font/MyriadPro-BlackSemiExtIt.otf differ diff --git a/font/MyriadPro-Bold.otf b/font/MyriadPro-Bold.otf new file mode 100644 index 0000000..a2003dd Binary files /dev/null and b/font/MyriadPro-Bold.otf differ diff --git a/font/MyriadPro-BoldCond.otf b/font/MyriadPro-BoldCond.otf new file mode 100644 index 0000000..5e8d75f Binary files /dev/null and b/font/MyriadPro-BoldCond.otf differ diff --git a/font/MyriadPro-BoldCondIt.otf b/font/MyriadPro-BoldCondIt.otf new file mode 100644 index 0000000..8599462 Binary files /dev/null and b/font/MyriadPro-BoldCondIt.otf differ diff --git a/font/MyriadPro-BoldIt.otf b/font/MyriadPro-BoldIt.otf new file mode 100644 index 0000000..4ae209f Binary files /dev/null and b/font/MyriadPro-BoldIt.otf differ diff --git a/font/MyriadPro-BoldSemiCn.otf b/font/MyriadPro-BoldSemiCn.otf new file mode 100644 index 0000000..400f1b5 Binary files /dev/null and b/font/MyriadPro-BoldSemiCn.otf differ diff --git a/font/MyriadPro-BoldSemiCnIt.otf b/font/MyriadPro-BoldSemiCnIt.otf new file mode 100644 index 0000000..e8b167a Binary files /dev/null and b/font/MyriadPro-BoldSemiCnIt.otf differ diff --git a/font/MyriadPro-BoldSemiExt.otf b/font/MyriadPro-BoldSemiExt.otf new file mode 100644 index 0000000..0c72262 Binary files /dev/null and b/font/MyriadPro-BoldSemiExt.otf differ diff --git a/font/MyriadPro-BoldSemiExtIt.otf b/font/MyriadPro-BoldSemiExtIt.otf new file mode 100644 index 0000000..4cb785c Binary files /dev/null and b/font/MyriadPro-BoldSemiExtIt.otf differ diff --git a/font/MyriadPro-Cond.otf b/font/MyriadPro-Cond.otf new file mode 100644 index 0000000..426d548 Binary files /dev/null and b/font/MyriadPro-Cond.otf differ diff --git a/font/MyriadPro-CondIt.otf b/font/MyriadPro-CondIt.otf new file mode 100644 index 0000000..79a228e Binary files /dev/null and b/font/MyriadPro-CondIt.otf differ diff --git a/font/MyriadPro-It.otf b/font/MyriadPro-It.otf new file mode 100644 index 0000000..762d12b Binary files /dev/null and b/font/MyriadPro-It.otf differ diff --git a/font/MyriadPro-Light.otf b/font/MyriadPro-Light.otf new file mode 100644 index 0000000..629b7cf Binary files /dev/null and b/font/MyriadPro-Light.otf differ diff --git a/font/MyriadPro-LightCond.otf b/font/MyriadPro-LightCond.otf new file mode 100644 index 0000000..998637a Binary files /dev/null and b/font/MyriadPro-LightCond.otf differ diff --git a/font/MyriadPro-LightCondIt.otf b/font/MyriadPro-LightCondIt.otf new file mode 100644 index 0000000..7d7d317 Binary files /dev/null and b/font/MyriadPro-LightCondIt.otf differ diff --git a/font/MyriadPro-LightIt.otf b/font/MyriadPro-LightIt.otf new file mode 100644 index 0000000..9853fae Binary files /dev/null and b/font/MyriadPro-LightIt.otf differ diff --git a/font/MyriadPro-LightSemiCn.otf b/font/MyriadPro-LightSemiCn.otf new file mode 100644 index 0000000..583a4c9 Binary files /dev/null and b/font/MyriadPro-LightSemiCn.otf differ diff --git a/font/MyriadPro-LightSemiCnIt.otf b/font/MyriadPro-LightSemiCnIt.otf new file mode 100644 index 0000000..b3204aa Binary files /dev/null and b/font/MyriadPro-LightSemiCnIt.otf differ diff --git a/font/MyriadPro-LightSemiExt.otf b/font/MyriadPro-LightSemiExt.otf new file mode 100644 index 0000000..7dfc1cf Binary files /dev/null and b/font/MyriadPro-LightSemiExt.otf differ diff --git a/font/MyriadPro-LightSemiExtIt.otf b/font/MyriadPro-LightSemiExtIt.otf new file mode 100644 index 0000000..579e9ce Binary files /dev/null and b/font/MyriadPro-LightSemiExtIt.otf differ diff --git a/font/MyriadPro-Regular.otf b/font/MyriadPro-Regular.otf new file mode 100644 index 0000000..c9454bb Binary files /dev/null and b/font/MyriadPro-Regular.otf differ diff --git a/font/MyriadPro-SemiCn.otf b/font/MyriadPro-SemiCn.otf new file mode 100644 index 0000000..f517975 Binary files /dev/null and b/font/MyriadPro-SemiCn.otf differ diff --git a/font/MyriadPro-SemiCnIt.otf b/font/MyriadPro-SemiCnIt.otf new file mode 100644 index 0000000..af10b89 Binary files /dev/null and b/font/MyriadPro-SemiCnIt.otf differ diff --git a/font/MyriadPro-SemiExt.otf b/font/MyriadPro-SemiExt.otf new file mode 100644 index 0000000..dccf6de Binary files /dev/null and b/font/MyriadPro-SemiExt.otf differ diff --git a/font/MyriadPro-SemiExtIt.otf b/font/MyriadPro-SemiExtIt.otf new file mode 100644 index 0000000..91b1ee3 Binary files /dev/null and b/font/MyriadPro-SemiExtIt.otf differ diff --git a/font/MyriadPro-Semibold.otf b/font/MyriadPro-Semibold.otf new file mode 100644 index 0000000..319b7ec Binary files /dev/null and b/font/MyriadPro-Semibold.otf differ diff --git a/font/MyriadPro-SemiboldCond.otf b/font/MyriadPro-SemiboldCond.otf new file mode 100644 index 0000000..528924a Binary files /dev/null and b/font/MyriadPro-SemiboldCond.otf differ diff --git a/font/MyriadPro-SemiboldCondIt.otf b/font/MyriadPro-SemiboldCondIt.otf new file mode 100644 index 0000000..eafdfb5 Binary files /dev/null and b/font/MyriadPro-SemiboldCondIt.otf differ diff --git a/font/MyriadPro-SemiboldIt.otf b/font/MyriadPro-SemiboldIt.otf new file mode 100644 index 0000000..895ae39 Binary files /dev/null and b/font/MyriadPro-SemiboldIt.otf differ diff --git a/font/MyriadPro-SemiboldSemiCn.otf b/font/MyriadPro-SemiboldSemiCn.otf new file mode 100644 index 0000000..3e81be9 Binary files /dev/null and b/font/MyriadPro-SemiboldSemiCn.otf differ diff --git a/font/MyriadPro-SemiboldSemiCnIt.otf b/font/MyriadPro-SemiboldSemiCnIt.otf new file mode 100644 index 0000000..3e60024 Binary files /dev/null and b/font/MyriadPro-SemiboldSemiCnIt.otf differ diff --git a/font/MyriadPro-SemiboldSemiExt.otf b/font/MyriadPro-SemiboldSemiExt.otf new file mode 100644 index 0000000..4aa7382 Binary files /dev/null and b/font/MyriadPro-SemiboldSemiExt.otf differ diff --git a/font/MyriadPro-SemiboldSemiExtIt.otf b/font/MyriadPro-SemiboldSemiExtIt.otf new file mode 100644 index 0000000..7d1844d Binary files /dev/null and b/font/MyriadPro-SemiboldSemiExtIt.otf differ diff --git a/font/bb2194.ttf b/font/bb2194.ttf new file mode 100644 index 0000000..6cbc0c3 Binary files /dev/null and b/font/bb2194.ttf differ diff --git a/font/font402.ttf b/font/font402.ttf new file mode 100644 index 0000000..99deedc Binary files /dev/null and b/font/font402.ttf differ diff --git a/font/minion_pro.ttf b/font/minion_pro.ttf new file mode 100644 index 0000000..382416a Binary files /dev/null and b/font/minion_pro.ttf differ diff --git a/fontawesome.pdf b/fontawesome.pdf new file mode 100644 index 0000000..3a3eca2 Binary files /dev/null and b/fontawesome.pdf differ diff --git a/report.cls b/report.cls new file mode 100644 index 0000000..a84d07b --- /dev/null +++ b/report.cls @@ -0,0 +1,427 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% DrYang - A Report LaTeX Template for OUC +%% yangyq@ouc.edu.cn +%% 2022-03-01 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{report}[A Report LaTeX Template for OUC] +\LoadClass[a4paper]{ctexart} + +\RequirePackage{xunicode} +\RequirePackage[dvipsnames]{xcolor} +\RequirePackage[open,openlevel=0,atend]{bookmark} +\RequirePackage{fontspec} +\RequirePackage{titlesec} +\RequirePackage{zhnumber} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% hyperref settings +%% 超链接设定 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{hyperref} +\hypersetup{ + bookmarksnumbered, + colorlinks, + linkcolor={black}, + citecolor={black}, + urlcolor={black} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% graphicx settings +%% 图片设定 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{graphicx} +\RequirePackage{graphbox} +\RequirePackage{wrapfig} +\graphicspath{{./figs/}{./figure/}{./figures/}{./image/}{./images/}{./graphics/}{./graphic/}{./pictures/}{./picture/}} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% geometry settings +%% 页面设定 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{geometry} +\geometry{ + textwidth=138mm, + textheight=215mm, + left=27mm, + %% or + %% inner=23mm, + right=27mm, + %% or + %% outer=18mm, + top=25.4mm, bottom=25.4mm, + headheight=2.17cm, + headsep=4mm, + footskip=12mm, + heightrounded, +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% fonts settings +%% 字体设定 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% \usepackage{ebgaramond} + +%% 开明式:句末点号用占一个汉字宽度,标号和句内点号占半个汉字宽度 +%\punctstyle{kaiming} + +%\setmainfont{Minion Pro} +\setmainfont{Myriad Pro} +\setsansfont{Myriad Pro} +\setmonofont{Courier Std} + +\setCJKmainfont[BoldFont={方正小标宋_GBK}, ItalicFont={方正楷体_GBK}, BoldItalicFont={方正仿宋_GBK}]{方正书宋_GBK} +\setCJKsansfont{方正黑体_GBK} +\setCJKmonofont{方正中等线_GBK} + +\XeTeXlinebreaklocale "zh" +\XeTeXlinebreakskip = 0pt plus 1pt + +\setCJKfamilyfont{fzss}{方正书宋_GBK} +\newcommand{\fzss}{\CJKfamily{fzss}} + +\setCJKfamilyfont{fzxbs}{方正小标宋_GBK} +\newcommand{\fzxbs}{\CJKfamily{fzxbs}} + +\setCJKfamilyfont{fzhei}{方正黑体_GBK} +\newcommand{\fzhei}{\CJKfamily{fzhei}} + +\setCJKfamilyfont{fzkai}{方正楷体_GBK} +\newcommand{\fzkai}{\CJKfamily{fzkai}} + +\setCJKfamilyfont{fzfs}{方正仿宋_GBK} +\newcommand{\fzfs}{\CJKfamily{fzfs}} + +\setCJKfamilyfont{fzzdx}{方正中等线_GBK} +\newcommand{\fzzdx}{\CJKfamily{fzzdx}} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% titlesec +%% 标题设定 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% \renewcommand\abstractname{Summary} +%%\renewenvironment{abstract}{\noindent\rule{\textwidth}{.5pt}\\[2ex] \centering\begin{minipage}{.97\textwidth}{\zihao{-4}\sffamily\bfseries \centering{\abstractname}}\\} +%%{\par\noindent\end{minipage}\\[2ex] \rule{\textwidth}{.5pt}} + +\renewenvironment{abstract}{\noindent\rule{\textwidth}{.5pt}\\[2ex] \centering\begin{minipage}{.97\textwidth}\begin{center}{\zihao{-4}\sffamily\bfseries \abstractname} \\ \end{center}} + {\par\end{minipage}\\[2ex] \noindent\rule{\textwidth}{.5pt}} + +%% section +\titleformat{\section} +[hang] +{\sffamily} +{\centering\zihao{-3}\bfseries\thesection\enspace} +{1pt} +{\zihao{-3}\bfseries} + +%% subsection +\titleformat{\subsection} +[hang] +{\sffamily} +{\zihao{4}\bfseries\thesubsection\enspace} +{1pt} +{\zihao{4}\bfseries\filright} + +%% subsubsection +\titleformat{\subsubsection} +[hang] +{\sffamily} +{\zihao{-4}\bfseries\thesubsubsection\enspace} +{1pt} +{\zihao{-4}\bfseries\filright} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% boxes +%% 信息框 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage[many]{tcolorbox} +\RequirePackage{fontawesome} + +%% 带标题的文本框 +\newtcolorbox{titledbox}[1]{% + tikznode boxed title, + enhanced, + arc=3pt, + interior style={white}, + attach boxed title to top center = {yshift=-\tcboxedtitleheight/2}, + fonttitle=\normalfont, + colbacktitle=white,coltitle=black, + boxed title style={size=normal,colframe=white,boxrule=0pt}, + boxrule=.5pt, + left=5pt, right=5pt, top=5pt, bottom=0pt, + boxsep=5pt, + title={#1}, + halign=left, + fontupper=\fzkai +} + +%% Note +\newtcolorbox{notebox}{% + enhanced, + arc=2pt, + boxrule=.5pt, + left=5pt, right=5pt, top=0pt, bottom=0pt, + boxsep=5pt, + colframe=NavyBlue, + colback=NavyBlue!5!White, + colbacktitle=NavyBlue!5!White, + coltext=NavyBlue, + title={\textcolor{NavyBlue}{\faStickyNoteO\hspace{.5em}\bfseries{\textbf{笔记}}}}, + halign=left, + fontupper=\fzkai +} + +%% Important +\newtcolorbox{importantbox}{% + enhanced, + arc=2pt, + boxrule=.5pt, + left=5pt, right=5pt, top=0pt, bottom=0pt, + boxsep=5pt, + colframe=Orange, + colback=Orange!5!White, + colbacktitle=Orange!5!White, + coltext=Orange, + title={\textcolor{Orange}{\faExclamationCircle\hspace{.5em}\bfseries{\textbf{重要}}}}, + halign=left, + fontupper=\fzkai +} + +%% verbatim 环境无法直接在新环境中使用 +%% 换用 \VerbatimEnvironment \begin{Verbatim} +\RequirePackage{fancyvrb} + +%% 命令行 +\newenvironment{shellbox} +{% + \VerbatimEnvironment + \begin{tcolorbox}[ + enhanced, + arc=2pt, + boxrule=.5pt, + left=5pt, right=5pt, top=0pt, bottom=0pt, + boxsep=5pt, + colframe=black, + colback=white, + coltext=black, + title={}, + fontupper=\linespread{1.2} + ]% + \begin{Verbatim} +} +{% + \end{Verbatim} + \end{tcolorbox} +} + +%% 命令行 +\newenvironment{invertedshellbox} +{% + \VerbatimEnvironment + \begin{tcolorbox}[ + enhanced, + arc=2pt, + boxrule=.5pt, + left=5pt, right=5pt, top=0pt, bottom=0pt, + boxsep=5pt, + colframe=black!70!white, + colback=black!70!white, + coltext=white, + title={}, + fontupper=\linespread{1.2} + ]% + \begin{Verbatim} +} +{% + \end{Verbatim} + \end{tcolorbox} +} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% head and foot +%% 页眉页脚 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{fancyhdr} +\RequirePackage{zhnumber} + +\pagestyle{fancy} +\fancyhf{} +\renewcommand\headrulewidth{.5pt} +\renewcommand\footrulewidth{0pt} +%\futurelet\TMPheadrule\def\headrule{{\color{violet}\TMPheadrule}} + +\renewcommand{\sectionmark}[1]{\markright{#1}} + +\fancyhead[C]{\fzkai{\rightmark}} +%\fancyhead[R]{\thepage} + +\fancyfoot[L]{\fzkai{\author}} +\fancyfoot[R]{\thepage} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% code listings +%% 代码块设定 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{listings,verbatim} + +\definecolor{codecolorkeywords}{rgb}{0,0,1} +\definecolor{codecolorcomments}{rgb}{0,0.5,0} +\definecolor{codecolorxmlcomments}{rgb}{0.5,0.5,0.5} +\definecolor{codecolorstrings}{rgb}{0.64,0.08,0.08} +\definecolor{codecolortypes}{rgb}{0.17,0.57,0.68} + +\lstdefinelanguage{JavaScript}{ + keywords={do, if, in, for, let, new, try, var, case, else, enum, eval, null, this, true, void, with, await, break, catch, class, const, false, super, throw, while, yield, delete, export, import, public, return, static, switch, typeof, default, extends, finally, package, private, continue, debugger, function, arguments, interface, protected, implements, instanceof}, + sensitive=true, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + morestring=[b]', + morestring=[b]" +} + +\lstdefinelanguage{TypeScript}{ + keywords={abstract, break, case, catch, class, const, continue, debugger, default, delete, do, else, enum, export, extends, false, finally, for, function, if, import, in, instanceof, new, null, return, super, switch, this, throw, true, try, typeof, var, void, while, with, as, implements, interface, let, package, private, protected, public, static, yield, any, boolean, constructor, declare, get, module, require, number, set, string, symbol, type, from, of}, + sensitive=true, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + morestring=[b]', + morestring=[b]" +} + +\lstdefinelanguage{golang}{ + keywords={break, default, func, interface, select, case, defer, go, map, struct, chan, else, goto, package, switch, const, fallthrough, if, range, type, continue, for, import, return, var}, + sensitive=true, + comment=[l]{//}, + morecomment=[s]{/*}{*/}, + morestring=[b]', + morestring=[b]" +} + +\lstdefinestyle{mystyle}{ + % Basic design + basicstyle=\linespread{1.2}\ttfamily, + frame=tb, + framesep=5pt, + framerule=.5pt, + framexleftmargin=10pt, + rulecolor=\color{black}, + abovecaptionskip=0pt, + belowcaptionskip=5pt, + aboveskip=5pt, + backgroundcolor=\color{black!5!white}, + % Code design + keywordstyle=\color{codecolorkeywords}, + commentstyle=\color{codecolorcomments}, + stringstyle=\color{codecolorstrings}, + numberstyle=\small\color{gray}, + breakatwhitespace=false, + breaklines=true, + captionpos=t, + keepspaces=true, + % Line numbers + numbers=none, + numbersep=15pt, + xleftmargin=10pt, + stepnumber=1, + firstnumber=1, + numberfirstline=true, + % Code + tabsize=4, + showspaces=false, + showstringspaces=false, + showtabs=false, + breaklines=true, +} +\lstset{style=mystyle} + +%% 命令行 +\lstdefinestyle{bashstyle}{ + backgroundcolor=\color{NavyBlue!10!white}, + basicstyle=\linespread{1.2}\ttfamily, + keepspaces=true, + numbers=none, + numbersep=10pt, + frame=l, + framerule=2pt, + framesep=5pt, + framexleftmargin=3pt, + framextopmargin=-5pt, + xleftmargin=10pt, + rulecolor=\color{NavyBlue}, + % Code + tabsize=4, + showspaces=false, + showstringspaces=false, + showtabs=false, + breaklines=true, +} + +%% 命令行输出 +\lstdefinestyle{bashoutputstyle}{ + backgroundcolor=\color{black!10!white}, + basicstyle=\linespread{1.2}\ttfamily, + keepspaces=true, + numbers=none, + numbersep=10pt, + frame=l, + framerule=2pt, + framesep=5pt, + framexleftmargin=3pt, + framextopmargin=-5pt, + xleftmargin=10pt, + rulecolor=\color{black!70!white}, + % Code + tabsize=4, + showspaces=false, + showstringspaces=false, + showtabs=false, + breaklines=true, +} + +%% 代码列表标题 +\RequirePackage{caption} +\DeclareCaptionFormat{codecaptionformat}{% + %%\colorbox{black!20}{ + %% \parbox{\textwidth}{#1#2\ttfamily#3} + %%} + \parbox{\textwidth}{\textcolor{violet}\faCode~\textcolor{violet}{#1#2}\hspace{.5em}\fzkai#3} +} +\captionsetup[lstlisting]{format=codecaptionformat} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Chinese names +%% 中文名称 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand{\figurename}{图} +\renewcommand{\tablename}{表} +\renewcommand{\lstlistingname}{代码} +\renewcommand{\abstractname}{摘要} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% global settings +%% 以下是全局格式设定 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% 添加首行缩进,两个字符 +\RequirePackage{indentfirst} +\setlength{\parindent}{2em} + +%% 行距 +\linespread{1.5} + +%% 表格 +\RequirePackage[singlelinecheck=false]{caption} +\captionsetup[table]{belowskip=0pt,aboveskip=5pt} diff --git a/report.pdf b/report.pdf new file mode 100644 index 0000000..a20ef69 Binary files /dev/null and b/report.pdf differ diff --git a/report.tex b/report.tex new file mode 100644 index 0000000..ad10fef --- /dev/null +++ b/report.tex @@ -0,0 +1,340 @@ +%!TEX program = xelatex + +\documentclass{report} +\usepackage{graphicx} +\usepackage[dvipsnames]{xcolor} +\usepackage{wrapfig} +\usepackage{enumerate} +\usepackage{amsmath,mathrsfs,amsfonts} +\usepackage{booktabs} +\usepackage{tabularx} +\usepackage{colortbl} +\usepackage{multirow,makecell} +\usepackage{multicol} +\usepackage{ulem} % \uline +\usepackage{listings} +\usepackage{tikz} +\usepackage{tcolorbox} +\usepackage{fontawesome} +\usepackage[justification=centering]{caption} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% title and author +%% 标题和作者 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\title{\bfseries\sffamily + 这是一个Latex模板\\ + \normalfont\zihao{-3} + Subtitle Here +} +%%作者这里,可以加入自己的网站,图标,可以使用fontawesome +\author{作者名字 \\ \faGithubAlt~ https://github.com/} +%%可以加入日期 +\date{} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% head and foot +%% 页眉页脚 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\RequirePackage{fancyhdr} +\RequirePackage{zhnumber} +\RequirePackage{lastpage} +\pagestyle{fancy} +\fancyhf{} +\renewcommand\headrulewidth{.5pt} +\renewcommand\footrulewidth{0pt} +%\futurelet\TMPheadrule\def\headrule{{\color{violet}\TMPheadrule}} +%\renewcommand{\sectionmark}[1]{\markright{#1}} +\fancyhead[C]{\fzkai{这是一个Latex模板}} +%\fancyhead[C]{\@title} +%\fancyhead[R]{\thepage} +%\fancyfoot[L]{\fzkai{\@author}} +\fancyfoot[C]{\thepage / \pageref{LastPage}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + % 设置页面水印 +% \usepackage[firstpage]{draftwatermark} % 只有第一页加水印 +\usepackage{draftwatermark} % 所有页加水印 +\SetWatermarkText{中国海洋大学计算机科学与技术学院} % 设置水印文字内容 +% \SetWatermarkText{\includegraphics{fig/ZJDX-WaterMark.eps}} % 设置水印LOGO +\SetWatermarkLightness{0.95} % 设置水印透明度 0-1 +\SetWatermarkScale{0.2} % 设置水印大小 0-1 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% 正文开始 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{document} + +\sloppy % 解决中英文混排文字超出边界问题 +%首页封面开始 + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% 封面页面开始 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{titlepage} % Suppresses headers and footers on the title page + + \centering % Centre everything on the title page + \scshape % Use small caps for all text on the title page + \vspace*{\baselineskip} % White space at the top of the page + %------------------------------------------------ + % 标题 + %------------------------------------------------ + + \rule{\textwidth}{1.6pt}\vspace*{-\baselineskip}\vspace*{2pt} % Thick horizontal rule + \rule{\textwidth}{0.4pt} % Thin horizontal rule + + \vspace{0.75\baselineskip} % Whitespace above the title + + {\heiti\zihao{2} 这是一个\\ 很好用的Latex模板\\} % Title + + \vspace{0.75\baselineskip} % Whitespace below the title + + \rule{\textwidth}{0.4pt}\vspace*{-\baselineskip}\vspace{3.2pt} % Thin horizontal rule + \rule{\textwidth}{1.6pt} % Thick horizontal rule + + \vspace{2\baselineskip} % Whitespace after the title block + + %------------------------------------------------ + % Subtitle + %------------------------------------------------ + + 这里是副标题 % Subtitle or further description + + \vspace*{3\baselineskip} % Whitespace under the subtitle + + %------------------------------------------------ + % Editor(s) + %------------------------------------------------ + + 作者 + + \vspace{0.5\baselineskip} % Whitespace before the editors + + {\scshape\Large 作者名字 } % Editor list + + \vspace{0.5\baselineskip} % Whitespace below the editor list + + \textit{一级单位 \\ 二级单位 \\ 三级单位} % Editor affiliation + + \vfill % Whitespace between editor names and publisher logo + + %------------------------------------------------ + % Publisher + %------------------------------------------------ + + %\plogo % Publisher logo + + \vspace{0.3\baselineskip} % Whitespace under the publisher logo + + %2017 % Publication year + + {\large 2022年3月} % 日期 + +\end{titlepage} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% 封面页面结束 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% 正文开始 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\maketitle +\thispagestyle{empty} + +\begin{abstract} +这是一个很好用的Latex模板,经过不断的修改和迭代进化。这里,就介绍一下这个模板的使用方法,希望对你有所帮助。 + +\vspace{2ex} +\textbf{关键字:}Latex,\hspace{.5em}模板,\hspace{.5em}学习 +\end{abstract} + +\section{准备工作} +在正式开始使用模板之前,需要你安装LiveTex,并安装任何可用的编辑器。 + +然后安装字体,字体文件,都在font文件夹中。 + +\section{字体} + +在模板中,可以使用多种字体。包括英文字体和中文字体。 + +英文字体,默认使用的是Myriad Pro,现在你看到的应该就是这个字体的效果。等宽英文字体使用的是Courier Std。这些设置,可以在cls中,字体设定里面进行修改。 + +中文字体,使用的是方正黑体、方正小标宋、方正楷体、方正仿宋、方正黑体、方正中等线等。 + +中文的默认字体是方正书宋,加粗字体是方正小标宋,就像这样:\textbf{这里是加粗字体}。斜体的字体是方正楷体,就像这样:\textit{这里是中文斜体}。斜体粗体的字体是方正仿宋,就像这样:\textbf{\textit{这里是粗体斜体}}。中文的无衬线字体sans font使用的是方正黑体,你应该可以在标题中看到它。中文等宽字体,使用的是方正中等线字体。 + +同样,上述的字体,在cls中,都可以进行设置。 + +另外,可以使用额外的命令,来临时改变某一段文字的字体设置,这些命令包括:fzss(方正书宋)、 fzxbs(方正小标宋)、fzhei(方正黑体)、fzkai(方正楷体)、fzfs(方正仿宋)、fzzdx(方正中等线)。使用方法是使用斜线命令的方式,这样:{\fzss 方正书宋}、 {\fzxbs 方正小标宋}、{\fzhei 方正黑体}、{\fzkai 方正楷体}、{\fzfs 方正仿宋}、{\fzzdx 方正中等线}。 + +\section{标题} + +文档模板支持三级标题,并且自动编号。上面就是一级标题的样子。 +\subsection{这里是二级标题} + +\subsubsection{这里是三级标题} + +\section{列表} +列表分为有序列表和无序列表。 +\subsection{无序列表} +无序列表使用itemize。 + +\begin{itemize} + \item \textbf{第一个有序列表}。可以在这里写列表的内容。 + + \item \textbf{第二条列表}。这里继续显示列表内容。 +\end{itemize} + +默认的前缀是实心的 黑色原点, 但是我们可以在 \textbackslash item[] 中进行自定义符号, 一般来说, 想要的符号都能够进行显示。 + +\begin{itemize} + \item[-] 条目1 + \item[+] 条目2 + \item[x] 条目3 + \item[/] 条目4 + \item[*] 条目5 + \item[a] 条目6 + \item[$\circ$] 条目7 + \item[$\bigotimes$] 条目8 + \item ..... +\end{itemize} + + +\subsection{有序列表} +有序列表使用enumerate。 + +\begin{enumerate} + \item 方括号中写的是列表的样式。可以是()、[]等。如果要改变编号样式,可使用begin\{enumerate\}[(1)]等。 + \item 如果使用了特殊的样式导致没有了缩进,可以使用begin\{enumerate\}[itemindent=2em]设置缩进。 +\end{enumerate} + +\section{图表信息} + +可以插入表格,如表\ref{table1}所示\footnote{更复杂的表格,可以使用在线工具生成 https://www.tablesgenerator.com/}。 + +\noindent +\begin{table}[h!] + \caption{一个表格的实例}\label{table1} + \begin{tabularx}{\textwidth}{>{\hsize=.6\hsize\raggedright\arraybackslash}X>{\raggedright\arraybackslash}X}\toprule + \bfseries{食物} & \bfseries{菜谱}\\ \midrule + 热狗 & 面包、香肠 \\ + 包子 & 面粉、馅料 \\ \bottomrule + \end{tabularx} +\end{table} + +可以插入图片,如图\ref{fig1}所示。 +\begin{figure}[!h] + \centering + \includegraphics[width=12cm]{figs/1.jpg} + \caption{这是一个示例图片} + \label{fig1} +\end{figure} + +在其他的地方,通过输入图片的label来引用图片,就像这样:如图\ref{fig1}所示。 + +\section{代码} + +模板中支持插入代码片段。 + +就像下面这些例子一样: + +\begin{lstlisting}[language=TypeScript,caption={src/app/app.module.ts}] +import { NgModule } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +@NgModule({ + imports: [ BrowserModule ], + providers: [ Logger ], + declarations: [ AppComponent ], + exports: [ AppComponent ], + bootstrap: [ AppComponent ] +}) +export class AppModule { } +\end{lstlisting} + +\begin{lstlisting}[language=Java,caption={src/app/app.module.ts}] + import org.sun.com; + + public class helloworld{ + public static void main() + { + System.out.println("hello world!"); + } + } + \end{lstlisting} + +\begin{lstlisting}[style=bashstyle] +cd my-app +ng serve --open +\end{lstlisting} + +\begin{lstlisting}[style=bashoutputstyle] +blablabla +\end{lstlisting} + +还可以展示linux shell命令: + +\begin{invertedshellbox} + npm install -g @angular/cli +\end{invertedshellbox} + +也可以使用shell box。 + +\begin{shellbox} + cd my-app + ng serve --open +\end{shellbox} + +还可以展示shell执行结果: + +\begin{lstlisting}[style=bashoutputstyle] + src + app + app.component.css + app.component.html + app.component.spec.ts + app.component.ts + app.module.ts + assets + .gitkeep + environments + environment.prod.ts + environment.ts + browserslist + favicon.ico + index.html + ... +\end{lstlisting} + + +\section{文本框} + +模板支持三中文本框,分别是titledbox、notebox和importantbox。 + +\begin{titledbox}{HTTP/Console 内核} + HTTP 内核继承自 \verb|Illuminate\Foundation\Http\Kernel| 类,该类定义了一个 \verb|bootstrappers| 数组,这个数组中的类在请求被执行前运行,这些 \verb|bootstrappers| 配置了错误处理、日志、检测应用环境以及其它在请求被处理前需要执行的任务。 +\end{titledbox} + + + +\begin{notebox} + HTTP 内核继承自 \verb|Illuminate\Foundation\Http\Kernel| 类,该类定义了一个 \verb|bootstrappers| 数组,这个数组中的类在请求被执行前运行,这些 \verb|bootstrappers| 配置了错误处理、日志、检测应用环境以及其它在请求被处理前需要执行的任务。 +\end{notebox} + + + +\begin{importantbox} + HTTP 内核继承自 \verb|Illuminate\Foundation\Http\Kernel| 类,该类定义了一个 \verb|bootstrappers| 数组,这个数组中的类在请求被执行前运行,这些 \verb|bootstrappers| 配置了错误处理、日志、检测应用环境以及其它在请求被处理前需要执行的任务。 +\end{importantbox} + +\section{图标} + +模板还支持使用图标,图标主要来自于fontawesome。其使用说明,可以参考文件夹中的fontawesome.pdf。 + +\faHeart + +\end{document}