|
|
%===============================================================
|
|
|
% npreport.cls
|
|
|
% npreport: Lab Report of Network Practice in NUDT
|
|
|
|
|
|
% version 1.0 (2022年10月)
|
|
|
|
|
|
% 国防科技大学网络相关实习实验报告LaTeX模板
|
|
|
% LaTeX Template for Lab Report of Network Practice in NUDT
|
|
|
|
|
|
% by Jing Xia
|
|
|
|
|
|
% 部分参考了“清华大学近代物理实验实验报告LaTeX模板(非官方)”
|
|
|
% https://thu.services/templates/
|
|
|
%===============================================================
|
|
|
|
|
|
\NeedsTeXFormat{LaTeX2e}
|
|
|
\ProvidesClass{npreport}
|
|
|
[2021/03/28 v1.0
|
|
|
The LaTeX Template for Lab Report of Network Practice in NUDT]
|
|
|
\typeout{Document Class `npreport' v1.0 by Jing Xia (2022/10)}
|
|
|
|
|
|
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{ctexart}}
|
|
|
\ProcessOptions\relax
|
|
|
|
|
|
\LoadClass[twocolumn,twoside,a4paper,UTF8]{ctexart}
|
|
|
|
|
|
%===============================================================
|
|
|
% packages
|
|
|
%===============================================================
|
|
|
|
|
|
\usepackage{fancyhdr}
|
|
|
\usepackage{amsmath,amsfonts,amssymb,graphicx} % EPS 图片支持
|
|
|
\usepackage{subfigure} % 使用子图形
|
|
|
% \usepackage{indentfirst} % 中文段落首行缩进
|
|
|
\usepackage{bm} % 公式中的粗体字符(用命令\boldsymbol)
|
|
|
\usepackage{amsthm} % 使用定理
|
|
|
\usepackage{booktabs} % 使用表格
|
|
|
\usepackage{titlesec}
|
|
|
% \usepackage{ccaption}
|
|
|
\usepackage{caption}
|
|
|
\usepackage{graphicx}
|
|
|
\usepackage{environ}
|
|
|
\usepackage{lmodern}
|
|
|
\usepackage{unicode-math}
|
|
|
\usepackage[sort&compress]{gbt7714}
|
|
|
\usepackage{anyfontsize}
|
|
|
\usepackage[colorlinks,bookmarksnumbered,urlcolor=blue,
|
|
|
linkcolor=black,citecolor=red,plainpages=false]{hyperref}
|
|
|
\usepackage{tabu}
|
|
|
\usepackage{longtable}
|
|
|
\usepackage{makecell}
|
|
|
|
|
|
\usepackage{tikz}
|
|
|
\usepackage{calc}
|
|
|
\usetikzlibrary{calc}
|
|
|
|
|
|
%===============================================================
|
|
|
% 基础格式
|
|
|
%===============================================================
|
|
|
|
|
|
% 字体
|
|
|
\setmainfont{Times New Roman}
|
|
|
|
|
|
% 字号设置
|
|
|
\newcommand{\erhao}{\fontsize{22pt}{\baselineskip}\selectfont}
|
|
|
\newcommand{\sihao}{\fontsize{14pt}{\baselineskip}\selectfont}
|
|
|
\newcommand{\xiaosihao}{\fontsize{12pt}{\baselineskip}\selectfont}
|
|
|
\newcommand{\wuhao}{\fontsize{10.5pt}{\baselineskip}\selectfont}
|
|
|
\newcommand{\xiaowuhao}{\fontsize{9pt}{\baselineskip}\selectfont}
|
|
|
\newcommand{\liuhao}{\fontsize{7.875pt}{\baselineskip}\selectfont}
|
|
|
\newcommand{\myxiaoliuhao}{\fontsize{6.5pt}{\baselineskip}\selectfont}
|
|
|
\newcommand{\qihao}{\fontsize{5.25pt}{\baselineskip}\selectfont}
|
|
|
|
|
|
\DeclareRobustCommand{\ttfamily}{\fontencoding{T1}\fontfamily{lmtt}\selectfont}
|
|
|
|
|
|
% 图表
|
|
|
\renewcommand{\tablename}{表}
|
|
|
\renewcommand{\figurename}{图}
|
|
|
% \captiondelim{123}
|
|
|
\setlength{\abovecaptionskip}{2pt}
|
|
|
\setlength{\belowcaptionskip}{2pt}
|
|
|
|
|
|
\DeclareCaptionFont{heiti}{\heiti}
|
|
|
\captionsetup{format=plain,labelformat=simple,
|
|
|
labelsep=space,justification=centering,
|
|
|
font={small,heiti}}
|
|
|
\captionsetup[sub]{font=footnotesize}
|
|
|
|
|
|
|
|
|
|
|
|
\DeclareMathSizes{10.5}{10}{6.8}{4.2}
|
|
|
\setlength{\abovedisplayskip}{2.5mm}
|
|
|
\setlength{\belowdisplayskip}{2.5mm}
|
|
|
|
|
|
% 页边距(符合中文刊物习惯)
|
|
|
\usepackage{lettrine}
|
|
|
\setlength{\parindent}{2em}
|
|
|
\setlength{\voffset}{-4mm}
|
|
|
\setlength{\parskip}{1pt}
|
|
|
\renewcommand{\baselinestretch}{1.15} %定义行间距1.15
|
|
|
|
|
|
\renewcommand\section{\@startsection {section}{1}{\z@}%
|
|
|
{1.5ex }%
|
|
|
{1.5ex}%
|
|
|
{\normalfont\bfseries\sihao}}
|
|
|
\renewcommand\subsection{\@startsection {subsection}{1}{\z@}%
|
|
|
{-1pt }%
|
|
|
{1pt}%
|
|
|
{\normalfont\bfseries\heiti\wuhao}}
|
|
|
\renewcommand\subsubsection{\@startsection {subsubsection}{1}{\z@}%
|
|
|
{-1pt }%
|
|
|
{1pt}%
|
|
|
{\normalfont\wuhao}}
|
|
|
|
|
|
|
|
|
\usepackage{geometry}
|
|
|
\newgeometry{
|
|
|
top=25.4mm, bottom=22.5mm, left=20mm, right=20mm,
|
|
|
headsep=5mm, headheight=10mm, footskip=10mm,
|
|
|
}
|
|
|
\savegeometry{mastergeometry}
|
|
|
\loadgeometry{mastergeometry}
|
|
|
|
|
|
\setlength{\columnsep}{10mm}
|
|
|
|
|
|
% 枚举
|
|
|
\newcommand*\bigcdot{\mathpalette\bigcdot@{1.2}}
|
|
|
\newcommand*\bigcdot@[2]{\mathbin{\vcenter{\hbox{\scalebox{#2}{$\m@th#1\bullet$}}}}}
|
|
|
\usepackage{enumitem}
|
|
|
\setenumerate[1]{itemsep=0pt,partopsep=0pt,parsep=\parskip,topsep=0pt}
|
|
|
\setitemize[1]{itemsep=0pt,partopsep=0pt,parsep=\parskip,topsep=0pt,label={$\bigcdot$}}
|
|
|
|
|
|
%===============================================================
|
|
|
% 文档风格
|
|
|
%===============================================================
|
|
|
|
|
|
% 停用CTex模板文档参数
|
|
|
\title{}
|
|
|
\author{}
|
|
|
\date{}
|
|
|
|
|
|
% 全局图片目录
|
|
|
\graphicspath{{./figures/}}
|
|
|
|
|
|
% npreport 内置文档参数
|
|
|
\newcommand{\coursename}[1]{ % 课程名称
|
|
|
\def\@coursename{#1}}
|
|
|
|
|
|
\newcommand{\studentname}[1]{ % 学生姓名
|
|
|
\def\@studentname{#1}}
|
|
|
\newcommand{\studentid}[1]{ % 学号
|
|
|
\def\@studentid{#1}}
|
|
|
\newcommand{\studenttype}[1]{ % 培养类型
|
|
|
\def\@studenttype{#1}}
|
|
|
\newcommand{\studentgrade}[1]{% 年级
|
|
|
\def\@studentgrade{#1}}
|
|
|
|
|
|
\newcommand{\major}[1]{ % 专业
|
|
|
\def\@major{#1}}
|
|
|
\newcommand{\school}[1]{ % 所属学院
|
|
|
\def\@school{#1}}
|
|
|
\newcommand{\teacher}[1]{ % 授课教员
|
|
|
\def\@teacher{#1}}
|
|
|
|
|
|
% 封面
|
|
|
\newcommand{\makecover}{
|
|
|
\thispagestyle{empty}
|
|
|
\begin{tikzpicture}[overlay,remember picture]
|
|
|
\node[anchor=center,scale=3] at
|
|
|
([yshift=8.5cm]current page.center) {\heiti 本\ 科\ 实\ 验\ 报\ 告};
|
|
|
\node[anchor=center,scale=1.6,inner sep=0pt] at
|
|
|
([yshift=5cm]current page.center) {课程名称:\underline{\quad\quad\@coursename\quad\quad}};
|
|
|
\node[anchor=center,scale=1.3,inner sep=0pt] at
|
|
|
([yshift=-1cm]current page.center) {
|
|
|
\renewcommand{\arraystretch}{0.8}
|
|
|
\begin{tabular}{b{1.7cm}b{2.5cm}<{\centering}b{2cm}p{2.5cm}<{\centering}}
|
|
|
学 员: & \@studentname & 学 号: & \@studentid \\
|
|
|
\cline{2-2} \cline{4-4}
|
|
|
\\
|
|
|
培养类型: & \@studenttype & 年 级: & \@studentgrade \\
|
|
|
\cline{2-2} \cline{4-4}
|
|
|
\\
|
|
|
专 业: & \multicolumn{3}{c}{\@major} \\
|
|
|
\cline{2-4}
|
|
|
\\
|
|
|
所属学院: & \@school & 授课教员: & \@teacher \\
|
|
|
\cline{2-2} \cline{4-4}
|
|
|
\end{tabular}
|
|
|
\renewcommand{\arraystretch}{1}
|
|
|
};
|
|
|
\node at ([xshift=0.5cm,yshift=-9.5cm]current page.center)
|
|
|
{\includegraphics[width=6cm]{logo-long}};
|
|
|
\end{tikzpicture}
|
|
|
\clearpage{\thispagestyle{empty}\cleardoublepage}
|
|
|
}
|
|
|
|
|
|
% 目录
|
|
|
\ctexset{contentsname=目~~~~录}
|
|
|
\renewcommand\tableofcontents{%
|
|
|
\onecolumn
|
|
|
\thispagestyle{empty}
|
|
|
\pdfbookmark[0]{\contentsname}{toc}
|
|
|
\centerline{\erhao\heiti\contentsname}
|
|
|
\vspace*{0.5em}
|
|
|
\@starttoc{toc}
|
|
|
\clearpage{\thispagestyle{empty}\cleardoublepage}
|
|
|
}
|
|
|
\addtocontents{toc}{\let\string\CTEX@spaceChar\relax}
|
|
|
|
|
|
% 页眉页脚
|
|
|
\pagestyle{fancy}
|
|
|
\fancyhf{}
|
|
|
\fancyhead[CO]{{\footnotesize \@coursename \quad 实验报告}}
|
|
|
\fancyhead[CE]{{\footnotesize \leftmark}}
|
|
|
\fancyhead[LE,RO]{~~~\footnotesize\thepage ~~~}
|
|
|
\lfoot{}
|
|
|
\cfoot{}
|
|
|
\rfoot{}
|
|
|
|
|
|
% 摘要 & 关键词
|
|
|
\NewEnviron{Abstract}{
|
|
|
\setcounter{page}{1}
|
|
|
\twocolumn[
|
|
|
\begin{@twocolumnfalse}
|
|
|
\begin{center}
|
|
|
\parbox{\textwidth}{
|
|
|
\wuhao\setlength{\parindent}{2em}
|
|
|
\newlength{\somelength}
|
|
|
|
|
|
{\heiti\wuhao \makebox[\widthof{【关键词】}][s]{【摘 要】}}
|
|
|
{\xiaowuhao
|
|
|
\BODY
|
|
|
}
|
|
|
|
|
|
{\heiti\wuhao \makebox[\widthof{【关键词】}][s]{【关键词】}}
|
|
|
\heiti \wuhao \@keyword
|
|
|
|
|
|
\vspace*{1.5em}}
|
|
|
\end{center}
|
|
|
\end{@twocolumnfalse}
|
|
|
]
|
|
|
}
|
|
|
|
|
|
\newcommand{\keyword}[1]{
|
|
|
\def\@keyword{#1}
|
|
|
}
|
|
|
|
|
|
%===============================================================
|
|
|
% 代码着色支持
|
|
|
%===============================================================
|
|
|
\usepackage[breakable,minted]{tcolorbox}
|
|
|
\newtcblisting{code}[1][]{
|
|
|
center,
|
|
|
width=\linewidth,
|
|
|
listing only,
|
|
|
breakable=true,
|
|
|
minted language=#1,
|
|
|
extras={frame empty},
|
|
|
fontupper=\linespread{1.3}\footnotesize,
|
|
|
% minted style=colorful,
|
|
|
minted options={ %自动移除前置空白、制表为4字符、mathhe和||内的不处理
|
|
|
fontfamily=tt,
|
|
|
autogobble,
|
|
|
tabsize=2,
|
|
|
startinline,
|
|
|
breaklines,
|
|
|
mathescape
|
|
|
}
|
|
|
}
|
|
|
|
|
|
%===============================================================
|
|
|
% 参考文献
|
|
|
%===============================================================
|
|
|
\renewcommand\refname{\heiti\wuhao\centerline{参考文献}\global\def\refname{参考文献}}
|
|
|
\vskip 12pt
|
|
|
|
|
|
\let\OLDthebibliography\thebibliography
|
|
|
\renewcommand\thebibliography[1]{
|
|
|
\OLDthebibliography{#1}
|
|
|
\setlength{\parskip}{0pt}
|
|
|
\setlength{\itemsep}{0pt plus 0.3ex}
|
|
|
}
|
|
|
|
|
|
\newcommand{\makebibliography}[1]{
|
|
|
{
|
|
|
\vspace*{1em}
|
|
|
\renewcommand{\baselinestretch}{0.9}
|
|
|
\liuhao
|
|
|
\bibliographystyle{gbt7714-numerical}
|
|
|
\bibliography{#1}
|
|
|
}
|
|
|
}
|