2026-10-26 18:31:04 +08:00
%!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}
\usepackage { draftwatermark} % 所有页加水印
\usepackage { titletoc}
\usepackage { ctex}
\usepackage [subfigure] { tocloft}
\usepackage { subfigure}
\input { input/info.tex}
\input { input/setting.tex}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 正文开始
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin { document}
\sloppy % 解决中英文混排文字超出边界问题
\input { input/cover.tex}
\input { input/toc.tex}
\input { input/abstract.tex}
\newpage %开始新的一页,正文开始
\setcounter { page}{ 1} %页码编号,从1开始
\section { 准备工作}
在正式开始使用模板之前,需要你安装LiveTex,并安装任何可用的编辑器。
2026-10-27 00:43:14 +08:00
不需要再做其他配置。字体统一放在仓库根目录的 \texttt { fonts/} 文件夹中(全库共用同一套),编译时会自动调用,无须额外安装,也不依赖你电脑上装了什么字体。
2026-10-26 18:31:04 +08:00
\section { 字体}
2026-10-29 15:47:33 +08:00
在模板中,中文默认使用思源宋体,西文默认使用 Cochineal,标题统一使用鸿蒙字体。除此之外,还定义了一些其他的中文字体。
2026-10-26 18:31:04 +08:00
2026-10-29 15:47:33 +08:00
英文字体,正文默认使用的是 Cochineal(一款 Minion 风格的衬线体),代码等宽位使用的是 Latin Modern Mono。所以你现在看到的西文和阿拉伯数字都是衬线字体。这样安排是为了和中文的思源宋体保持相近的灰度——如果西文用无衬线,同一行里字母数字会明显比汉字细、像"陷进去",读起来割裂。这些设置,可以在 cls 中字体设定里面进行修改。
2026-10-26 18:31:04 +08:00
2026-10-27 00:43:14 +08:00
中文字体,使用的是鸿蒙字体、思源宋体、霞鹜文楷、朱雀仿宋、思源黑体等。全部为开源可商用字体,不使用任何方正、微软雅黑等商业字体。
2026-10-26 18:31:04 +08:00
2026-10-27 00:43:14 +08:00
中文的默认字体衬线字体是思源宋体,加粗字体是思源宋体的真粗体,就像这样:\textbf { 这里是加粗字体} 。斜体的字体是霞鹜文楷,就像这样:\textit { 这里是中文斜体} 。斜体粗体的字体是朱雀仿宋,就像这样:\textbf { \textit { 这里是粗体斜体}} 。中文的无衬线字体sans font使用的是鸿蒙字体,你应该可以在标题中看到它。中文等宽字体,使用的是思源黑体。
2026-10-26 18:31:04 +08:00
2026-10-29 15:47:33 +08:00
默认的无衬线字体是鸿蒙字体,你应该可以在各种标题中看到它的样子。注意标题里的中文和西文(包括编号 "1."、"3.1")现在统一都是鸿蒙——旧版因为编号是阿拉伯数字、被归到西文字体,会出现同一个标题里中文鸿蒙、编号衬线的情况,看着像"字体一会一个样",现已修正。
2026-10-26 18:31:04 +08:00
同样,上述的字体,在cls中,都可以进行设置。
2026-10-27 00:43:14 +08:00
另外,可以使用额外的命令,来临时改变某一段文字的字体设置。这些命令沿用了旧版的名字(fz开头,取自原先的方正系列),但实际用的都是随仓库分发的开源字体:fzss(宋体)、fzxbs(宋体粗,标题用)、fzkai(楷体)、fzfs(仿宋)、fzzdx(黑体)、hm(鸿蒙字体)。使用方法是使用斜线命令的方式,这样:{ \fzss 宋体} 、 { \fzxbs 宋体粗} 、{ \fzkai 楷体} 、{ \fzfs 仿宋} 、{ \fzzdx 黑体} 、{ \hm 鸿蒙字体} 。注意这里的楷体是霞鹜文楷、仿宋是朱雀仿宋、黑体是思源黑体,都是可免费商用的开源字体。
2026-10-26 18:31:04 +08:00
\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}