2 Star 11 Fork 1

frank.xin / usstthesis

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
USAGE.md 12.59 KB
一键复制 编辑 原始数据 按行查看 历史
Frank.Xin 提交于 2019-12-09 17:11 . 将辅助文件改为中文名称

目录

使用方法

​ 在文档(本项目中为 main.tex)的开头直接使用

\documentclass{usstthesis}

即可。使用 xelatex main 即可编译(为了正确生成交叉引用,可能需要编译 2~3 次),仅在 XeLaTeX 下测试通过。如果是 TeXworks 等编辑器,需要手动将编译引擎切换至 XeLaTeX

常用的环境(图片、表格、代码块)都已经设置好了,一般无需使用 \usepackage{} 载入。阅读以下的内容了解详细的使用方法。

文档类提供的额外功能

文档类提供了一些额外的宏和命令,可以有助于文档的写作,它们有:

概览

命令 功能
\autoref{ref} 汉化了 autoref 的文字,根据环境自动在引用中加入“表”、“图”等。常用的如 表 \ref{table:xx} 可以直接使用 \autoref{table:xx} 代替
\chapref{ref} 章引用,引用章时代替 \autoref{},可以生成形如"第 2 章"的文字,无需使用 第 \ref{chap:2} 章 这样的繁琐表达
\secref{ref} \subsecref{ref} 节引用、小节引用,用法与 \chapref{} 相同
\dif \difx \dify 公式环境中使用,分别用于生成直立的微分算子 $\mathrm{d}$、$\mathrm{d}x$、$\mathrm{d}y$(注意,微分算子不要直接使用 dx,否则其中的 d 会变成变量的斜体 $dx$,建议使用 \mathrm{d}x 或者 \dif x,可以得到 $\mathrm{d}x$,更加规范
\tableCapSet \figureCapSet \codeCapSet 分别用于调节表格、图、代码标题(caption)和其内容的距离,其中 \codeCapSet 已嵌入 code 环境,无需显式使用
\includefrontmatter 输出文档前序固定内容,下文有具体介绍

用法

autorefchaprefsecrefsubsecref

它们用于在文中引用其他段落、章节、图表,当我们需要写“见第 X 章第 1 节”这样的内容时,借助这几个命令可以方便实现,看例子:

\chapter{引言}\label{chap:intro} % \label{} 用于标记被引用的内容
\section{背景介绍}\label{intro:sec:back}
\subsection{\LaTeX{} 介绍}\label{intro:back:subsec:latex}
\LaTeX{} 是一个很好用的文档准备系统,它的功能如\autoref{figure:latex}所示。 % 这里 \autoref{} 引用了标记为 figure:latex 的图片
\begin{figure}[htb]
    \figureCapSet % 使用此命令调整 figure 的 caption 间距
    \centering
    \includegraphic{somegraph.png}
    \caption{\LaTeX{} 的功能}
    \label{figure:latex} % 这里将 somegraph.png 这张图标记为 figure:latex,在上面引用了
\end{figure}

与其他软件相比,它的优缺点如\autoref{table:compare}所示。
\begin{table}[htb]
    \tableCapSet    % 使用此命令调整 table 的 caption 间距
    \caption{排版软件的优缺点对比}
    \label{table:compare} % 将此表格标记为 table:compare,上面引用时使用
    \centering
    \zihao{5}
    \begin{tabular}{c|c|c}
        \hlineB{3}  % 线宽为3倍的横线
        软件      & 优点 & 缺点           \\
        \hlineB{2}  % 线宽为2倍的横线
        \LaTeX{} & 优美 & 无法直接看到结果 \\
        \hline
        MS Word     & 直观 & 不够专业 \\
        \hlineB{3}
    \end{tabular}
\end{table}

% ....
\chapter{实现}
\section{准备工作}
\chapref{chap:intro}\secref{intro:sec:back}\subsecref{intro:back:subsec:latex}介绍了 \LaTeX{}…… % 这里用引用了前面标记的各种内容,最后显示出来就是“第一章第1节第1.1小节”

上面的例子中,\label{chap:intro} 中的 chap:intro 是可以随意写的,只要引用的时候与之对应即可,不过使用 chap:figure:table: 可以防止太多的引用名称混淆。

其中也介绍了 tableCapSetfigureCapSet 的用法,插入图片、表格时使用类似上面的结构,复制粘贴即可。

difdifxdify

这三个命令仅用于数学环境中。微分算子 d 与普通变量不同,使用的是直立体,所以需要特殊对待,例:

\[
\int_c^d\difx\int_a^b e^{xy}\dify
\]
\[
\dif t = a\dif\alpha - \frac 1b \dif\beta
\]

效果:

公式 1

公式 2

文档结构

根据“上海理工大学本科毕业设计(论文)撰写规范及样本”设计了相应的 LaTeX 版本,文档结构与样本中给出的类似,包括:

文档前序固定内容

封面 承诺书 摘要 目录

正文以及后续内容

正文 参考文献 致谢 附录

更详细的格式要求参见 main.pdf。使用时,前序固定内容部分使用 \includefrontmatter 命令可以直接输出,无需另外编辑,后续内容像书写普通 LaTeX 文档一样,例如,一个完整的、包括各个内容的主文件 main.tex 如下所示:

\documentclass{usstthesis}	% 使用 usstthesis 文档类

\usstthesisset{	% 使用此命令设置文档封面等内容
    session=2015,          % 2015 届
    title=中文题目,请勿添加换行符,   % 论文中文题目
    longtitle=中文长标题,仅用于\\ 标题页,支持强制换行,  % 论文长标题,仅用于标题页
    titleen=Englist Title  % 论文英文标题
    institute=学院,         % 学院
    major=专业,             % 专业
    name=名字,              % 姓名
    number=1234567,        % 学号
    mentor=指导教师,         % 指导教师
    date=2019年1月1日       % 完成日期
}

\begin{document} % 开始文档
\includefrontmatter % 输出 1~5 的内容
% 注意,摘要和 ABSTRACT 的内容请在 ./element/abstract.tex 中
% 编辑

\mainmatter % 论文主体内容
\chapter{第一章}
\section{第一节}
\section{第一小节}

\backmatter % 论文附加部分
\begin{citelist}	% 参考文献
    % “机器学习”是在文中引用时使用的,例如 某某某使用了某某某方法\cite{机器学习}。代表引用此条目
    \bibitem{机器学习}刘琴.机器学习[J].武汉工程职业技术学院学报,2001,13(2):41-44.
\end{citelist}

\include{element/thanking} % 致谢

\end{document} % 文档结束

其中,citelist 环境是封装了的 thebibliography,使用方法与 thebibliography相同,并且可以自动将“参考文献”添加到目录中。另外,为了主体结构清晰,将摘要和 ABSTRACT 放在了 element/abstract.tex 中,abstract.tex的内容如下。请注意,不要在 \abstractcn\keywordscn\abstracten\keywordsen 之前回车添加空行(可以使用注释符号 % 将空行注释掉),否则编译时会报 “No lines here to end” 错误。

% 中文摘要
\abstractcn
\par 中文摘要内容。
% 中文摘要关键词
\keywordscn 关键词1\quad{}关键词2\quad{}关键词3

% 英文摘要
\abstracten
\par This is the abstract in English.
% 英文摘要关键词
\keywordsen Keywords 1\quad{}Keywords 2\quad{}Keywords 3

同时也建议,在文档主体中不直接写内容,而是使用 \include{<filename>}命令(注意,不需要添加文件后缀 .tex),将文档按照章节分开每个文件,如果以后有不需要输出某些章的需求,可以在导言区使用 \includeonly{<file1>,<file2>} 使其只编译 file1 和 file2。例如:

\include{chapter/chap1}
\include{chapter/chap2}

其中,chap*.tex 中不应该包含 \begin{document} \end{document},而应该直接写正文内容,例如:

% chapter/chap1.tex
\section{chap1}
\subsection{chap1-section1}
\par Paragraph.

另外,实际使用时建议不要将章节命名为 chapter1.tex 等,而是按照其内容命名。

图片、表格和代码块

本文档类提供了 \figureCapSet\tableCapSet,用于调节 caption 和图片、表格的间距,其使用方法如下。

图片

% 插图
\begin{figure}[htb]
    \figureCapSet	% 调节图片环境的 caption 间距
    \centering
    \includegraphics[width=.8\linewidth]{figure/egf.png}
    \caption{信息传播模型} % 将 caption 放在 \includegraphics 下方,表示 caption 在图片下方
    \label{figure:model}
\end{figure}

表格

% 表格
\begin{table}[htb]
    \tableCapSet    % 调节表格环境的 caption 间距
    \caption{TSP 问题的计算量(计算速度:$10^8/$s)}
    % 将 caption 放在 tabular 上方,表示 caption 在表格上方
    \label{table:tsp calc}
    \centering
    \zihao{5}
    \begin{tabular}{c|c|c}
        \hlineB{3}  % 线宽为3倍的横线
        城市数目 $n$ & 计算量               & 计算时间                \\
        \hlineB{2}  % 线宽为2倍的横线
        10           & $1.8 \times 10^5$    & $1.8 \times 10^{-3}$\\
        \hline
        15           & $4.4 \times 10^{10}$ & $7.3$ 小时              \\
        \hline
        20           & $6.0 \times 10^{16}$ & $19$\\
        \hline
        25           & $3.1 \times 10^{23}$ & $1.0 \times 10^7$ 世纪  \\
        \hlineB{3}
    \end{tabular}
\end{table}

代码

为了方便编译和视觉效果的统一,文档使用 listings 宏包插入代码。可以在导言区设置使用的语言,例如使用 C 语言:\lstset{language=C},使用时也可以进行设置,具体用法请参考 listings 宏包文档 listings.pdf。其基本使用方法如下:

  1. 行内代码,使用 \lstinline|内容|(注意在命令的前后插入空格,否则在中文环境中它会和文字连在一起),使用方法和 \verbatim|内容| 类似,两个竖线作为和普通文本的分界符,可以替换为其他字符,但是前后一定要相同,例如可以替换为 \lstinline[内容[

  2. 代码段,直接在文中插入时,使用 code 环境和 lstlisting 环境(code 环境可以避免 lstlisting 环境不闭合,而导致后面段落无首行缩进的问题),并且使用 \captionof{lstlisting}{标题内容} 插入标题,例如:

    \begin{code}
    \captionof{lstlisting}{main.h}
    \begin{lstlisting}
    int main(int argc, char* argv[]);
    \end{lstlisting}
    \end{code}

    会生成如下图所示的文档。

    main.h

  3. 插入代码文件中的内容,使用 \lstinputlisting[caption=标题名称]{文件名} 命令,建议将代码源文件放在 listing 文件夹中。

参考文献

文档使用默认的参考文献处理方式(使用了 cite 宏包),建议将参考文献的内容单独放在 element/citation.tex 中,在文中使用 \include{element/citation} 包含。参考文献的格式可以参考文件内容,主流的学术搜索网站可以直接生成参考文献内容,复制到 citation.tex 中的 \bibitem{} 条目中即可。

致谢

致谢的内容请在 element/thanking.tex 中编辑,并且在正文中使用 \include{element/thanking} 导入。

关于盲审和查重

盲审和查重时要求将正文以外的内容去掉,而且最好使用 docx 格式,所以你可以下载 pandoc,然后在主文件(此处是 main.tex )中搜索“盲审”,按要求将指定的行注释掉,然后在命令行中使用 pandoc

pandoc -o outputfilename.docx -f latex -t docx main.tex

即将 main.tex 转换为 outputfilename.docx 的 doc 文件,虽然转换之后格式没了,但是所有文字都可复制(使用 pdf 可能会出现查重时乱码的情况)。

使用模板转换为 docx

阅读 pandoc 的说明时发现,它可以指定一个 docx 文件作为模板,生成的文档将会使用指定文件的模板。因此可以将学校的模板作为模板直接生成,省去了很多调整格式的麻烦。本项目中已经包含了模板文件 ref.docx,在命令行中使用

pandoc --reference-doc ref.docx -o MyThesis.docx -f latex -t docx main.tex

就可以直接生成指定模板的文件了,但是有一些格式还需要手动调整。(其实盲审和查重时对格式的要求没有那么高,只需要看起来类似就可以了,这是我的经验)。

TeX/LaTeX
1
https://gitee.com/MkSwQi/usstthesis.git
git@gitee.com:MkSwQi/usstthesis.git
MkSwQi
usstthesis
usstthesis
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891