Giter Site home page Giter Site logo

szu-thesis-master's Introduction

szu-thesis-master

此仓库为深圳大学硕士学位论文的latex模板,适用于理工科类的学位论文撰写。

此模板是在HNUthesis_master的基础上进行修改得到的。

目录

1. 说明

1.1 目录结构说明

  • data目录:存放封面、原创性声明、中英文摘要、正文、附录、致谢等内容的tex文件
  • figures目录:存放图片数据
  • setup/format.tex:定义了 字体、目录、章节标题、表格/图表/公式、页眉等的格式
  • setup/package.tex:用于引入依赖包
  • clean.batclean.sh:用于清除临时或辅助文件
  • main.tex:论文主tex文件
  • references.bib:用于存放参考文献
  • myTexcount.sh:用于统计正文的字数,运行方式sh myTexcount.sh

1.2 免责声明

  • 此模板仅用于学习研究,不保证其准确性、有效性,请根据情况自行判断,本人对此不承担任何保证责任。
  • 本人对模板引发的问题概不负责,包括但不限于由模板错误引起的任何损失和损害。
  • 所有直接或间接使用、查看此模板的人均应该仔细阅读此声明。本人保留随时更改或补充此声明的权利。一旦您使用或复制了此模板,即视为您已接受此免责声明。

1.3 其他说明

  • 本人的latex编写环境配置:使用texlive-2019(编译环境)+TeXstudio(编辑器)。

  • 目前使用pdflatex进行编译,所以无法配合xeCJK宏包使用。pdflatex的使用设置于main.tex中:

    % !TEX program = pdflatex
  • GitHub上看到的深大本科毕业论文模板——szuthesis

2. 格式设置

2.1 设置页眉、页脚格式

2.1.1 移除页眉页脚

  • 使用\thispagestyle{empty},设置当前页面(某一页)的样式为empty,可以移除页眉与页眉。
  • 使用\pagestyle{empty},设置全局页面的样式为empty,从\pagestyle{empty}后的页面的样式为empty

2.1.2 页码从1重新计数

使用\setcounter{page}{1},页码重置为1开始计数。

2.1.3 自定义页眉页脚格式

  • 使用fancy可以自定义页眉页脚格式。下面的代码定义了名为englishAbstract的页面样式,作为英文摘要的页眉页脚格式:

    % `setup/format.tex`中
    \fancypagestyle{englishAbstract}{
        \fancyhead[C]{\wuhao \@etitle} 	% 页眉,C表示居中,五号,使用\@etitle的字符串作为页眉
        \fancyfoot[C]{\song\wuhao ~\thepage~} % 页脚,宋体五号
    }

    使用\thispagestyle{englishAbstract}englishAbstract格式应用于当前页面;

    使用\pagestyle{englishAbstract}englishAbstract格式应用于全局页面。

  • setup/format.tex文件中存在以下代码,修改了默认的页眉页脚格式——plain

    \fancypagestyle{plain}{% 设置页页眉页脚的字体
        \fancyhf{}%
        \fancyhead[CO]{\song\wuhao \@ctitle}		% C表示居中,O表示奇数页
        \fancyhead[CE]{\song\wuhao \@ctitle}		% E表示偶数页
        \fancyfoot[C]{\song\wuhao ~\thepage~} 		% 首页页脚格式
    }

2.1.4 设置页眉下划线

setup/format.tex文件中存在以下代码,设置了默认的页眉格式:

% 此处是单线页眉,线条粗细为0.5pt
\def\headrule{{\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi%
		\hrule\@height 0.5pt \@width\headwidth\vskip1pt %线条粗0.5pt
	}
	\vspace{7mm} %双线与下面正文之间的垂直间距
}

若需要设置成双线页眉,可以参考以下代码:

% 双线页眉
\def\headrule{{\if@fancyplain\let\headrulewidth\plainheadrulewidth\fi%
    \hrule\@height 1.0pt \@width\headwidth\vskip1pt %上面线为1pt粗
    \hrule\@height 0.5pt\@width\headwidth  %下面0.5pt粗
    \vskip-2\headrulewidth\vskip-1pt}      %两条线的距离1pt
    \vspace{7mm}
}     %双线与下面正文之间的垂直间距

2.2 调整字体格式

2.2.1 自定义的字体格式命令

setup/format.tex文件中定义了字体格式相关的命令:

\newcommand{\song}{\CJKfamily{song}}    % 宋体
\newcommand{\fs}{\CJKfamily{fs}}        % 仿宋体
\newcommand{\kai}{\CJKfamily{kai}}      % 楷体
\newcommand{\hei}{\CJKfamily{hei}}      % 黑体
\newcommand{\li}{\CJKfamily{li}}        % 隶书
\newcommand{\yihao}{\fontsize{26pt}{26pt}\selectfont}       % 一号, 1.倍行距
\newcommand{\xiaoyi}{\fontsize{24pt}{24pt}\selectfont}      % 小一, 1.倍行距
\newcommand{\erhao}{\fontsize{22pt}{22pt}\selectfont}       % 二号, 1.倍行距
\newcommand{\xiaoer}{\fontsize{18pt}{18pt}\selectfont}      % 小二, 单倍行距
\newcommand{\sanhao}{\fontsize{16pt}{16pt}\selectfont}      % 三号, 1.倍行距
\newcommand{\xiaosan}{\fontsize{15pt}{15pt}\selectfont}     % 小三, 1.倍行距
\newcommand{\sihao}{\fontsize{14pt}{14pt}\selectfont}       % 四号, 1.0倍行距
\newcommand{\xiaosi}{\fontsize{12pt}{12pt}\selectfont}  	% 小四, 1.倍行距
\newcommand{\wuhao}{\fontsize{10.5pt}{10.5pt}\selectfont}   % 五号, 单倍行距
\newcommand{\xiaowu}{\fontsize{9pt}{9pt}\selectfont}        % 小五, 单倍行距

使用示例,这里设置了摘要的标题格式:

\chapter*{\centering\erhao\song\bfseries\ \qquad}        % 摘要标题,居中宋体加粗二号

其中\bfseries表示加粗,\quad\qquad表示空格(宽度不同)。

2.2.2 调整正文字体

setup/format.tex文件中存在以下代码,设置了正文默认的字体格式

% 小四号字体对应12pt
\makeatletter
\renewcommand\normalsize{
  \@setfontsize\normalsize{12pt}{12pt} % 第一个{}表示正文字体大小,第二个{}表示行距,字体大小12pt,行距12pt(即单倍行距)

上面的代码将行距设置成了12pt,下面的代码重新设置行距为23pt

% 设置行距和段落间垂直距离
\setlength{\baselineskip}{23pt}		% 行距为23pt

2.2.3 调整章节标题字体

setup/format.tex文件中存在以下代码,定义了章节标题的格式

% 一级标题(章):小三号黑体
\titleformat{\chapter}{\centering\xiaosan\hei}{\chaptername}{1em}{}
\titlespacing{\chapter}{0pt}{0pt}{18pt}

% 二级标题(节):四号宋体(加粗),\bfseries表示加粗
\titleformat{\section}{\sihao\song\bfseries}{\thesection}{1em}{}        
\titlespacing{\section}{0pt}{12pt}{12pt}

% 三级标题(节内小节):小四号宋体(加粗) 
\titleformat{\subsection}{\xiaosi\song\bfseries}{\thesubsection}{0.5em}{}
\titlespacing{\subsection}{0pt}{6pt}{6pt}

% 四级标题
\titleformat{\subsubsection}{\xiaosi\song}{\thesubsubsection}{0.5em}{}
\titlespacing{\subsubsection}{0pt}{6pt}{6pt}

2.2.4 单独设置某一章/节的默认字体格式

以“致谢”部分的字体设置为例,进行说明。

在文件acknowledgements.tex文件中,新建一个环境,名为theacknowledgements,设置默认的字体为五号宋体

% 默认字体为五号宋体
\newenvironment{theacknowledgements}{\wuhao\song}

使用下面的方式应用环境theacknowledgements

\begin{theacknowledgements}

此处是致谢的正文

\end{theacknowledgements}

对“致谢”二字的格式进行设置:

\addcontentsline{toc}{chapter}{致谢} %添加到目录中
\chapter*{\centering\xiaosan\hei\bfseries\quad} % 设置“致谢”二字的格式为,居中、小三、黑体、加粗

2.2.5 调整参考文献字体

setup/format.tex文件中,使用\renewenvironment{thebibliography}对参考文献的环境进行重新调整,对其字体格式进行设置。

\renewenvironment{thebibliography}[1]{%
\chapter*{\centering\xiaosan\hei\bfseries \bibname}  % “参考文献”几个字:小三黑体加粗
   \wuhao		% 参考文献正文使用5号字体
   \list{\@biblabel{\@arabic\c@enumiv}}%
        {\renewcommand{\makelabel}[1]{##1\hfill}
         \setlength{\baselineskip}{21pt}

2.2.6 图片与表格的标题格式

setup/format.tex文件中,下面的代码对应于图片与表格的标题样式进行调整。

%% 定制浮动图形和表格标题样式
\makeatletter
\long\def\@makecaption#1#2{%
   \vskip\abovecaptionskip
   \sbox\@tempboxa{\centering\wuhao\hei{#1~~#2} } % 五号黑体
   \ifdim \wd\@tempboxa >\hsize
     \centering\wuhao\hei{#1~~#2} \par % 五号黑体
   \else
     \global \@minipagefalse
     \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
   \fi
   \vskip\belowcaptionskip}
\makeatother

2.2.7 设置目录字体格式

setup/format.tex文件,下面的代码对应于目录样式进行调整。

\renewcommand{\contentsname}{目\quad录}
\setcounter{tocdepth}{2}
\titlecontents{chapter}[0em]{\sihao\song} % 目录项需要使用四号宋体
             {\prechaptername~~\thecontentslabel~~\postchaptername~~~}{} %
             {\titlerule*[5pt]{$\cdot$}\sihao\contentspage}
\titlecontents{section}[2.5em]{\sihao\song} %
            {\thecontentslabel\quad}{} %
            {\hspace{.25em}\titlerule*[5pt]{$\cdot$}\sihao\contentspage}
\titlecontents{subsection}[3.25em]{\sihao\song} %
            {\thecontentslabel\quad}{} %
            {\hspace{.25em}\titlerule*[5pt]{$\cdot$}\sihao\contentspage}

3. 使用

3.1 将“某一章节”加入目录/移除

3.1.1 加入目录

  • 使用\addcontentsline将章节加入目录中

    \addcontentsline{toc}{层级}{章节名称}

    示例:

    \addcontentsline{toc}{chapter}{第一章}
  • 或使用\chapter{标题}命令,在声明一个章节的同时,会自动将该章节加入目录中。\section{标题}\subsection{标题}等的使用也是类似。

3.1.2 从目录中移除

若只想要在页面中显示章节标题,但是不想将其加入目录中可以使用\chapter*{标题}。(多了*号)。\section*{标题}\subsection*{标题}等的使用也是类似。

3.2 编辑封面、原创性声明、中英文摘要

  • 封面:data/cover.tex
  • 原创性声明:data/copyright.tex
  • 中文摘要:data/cnabstract.tex
  • 英文摘要:data/enabstract.tex

以编辑封面为例进行说明,原创性声明、中英文摘要的编写类似。

3.2.1 数据填写

data/cover.tex中存在以下代码,对应于学校、论文、作者等信息,只需要根据自己的情况进行修改即可。

%%% 此处是数据填写部分 

\classnumber{TP37}
\schoolcode{10590}
\UDCnumber{UDCnumber}
\security{公开}

\cheading{深圳大学硕士学位论文}
\thesisTitle{论文名称} %封面用论文标题,自己可手动断行
\ctitle{中文页眉标题}  %页眉标题无需断行
\cdegree{学位类别}
\college{计算机科学与软件学院} %学院名称
\majorName{计算机科学与技术}   %专业
\authorName{张~~三}   %学生姓名
\supervisor{李四教授} %导师姓名

若不需要对封面等的格式进行修改,则只要关注数据填写部分即可,下面对格式设置作进一步说明。

3.2.2 格式设置代码

setup/format.tex中存在以下代码。其中,使用/def定义了宏,这些宏定义与数据填写部分相对应。

%\def\命令名称#参数个数{格式设置}
\def\thesisTitle#1{\def\@thesisTitle{#1}}\def\@thesisTitle{}
\def\ctitle#1{\def\@ctitle{#1}}\def\@ctitle{}
\def\cdegree#1{\def\@cdegree{#1}}\def\@cdegree{}
\def\majorName#1{\def\@majorName{#1}}\def\@majorName{}
\def\authorName#1{\def\@authorName{#1}}\def\@authorName{}
\def\supervisor#1{\def\@supervisor{#1}}\def\@supervisor{}
......

接下来,使用\def定义了\makecover函数,在\makecover函数中对封面格式设置,并使用\@命令格式获取定义好的数据(个人信息)。

\def\makecover{
	
	\clearpage
	
	\begin{titlepage}
		\begin{center}
			
			......
		\end{center}
     \end{titlepage}
}

上述代码中需要使用到\@命令格式获取数据,使用到了@符号,需要配合\makeatletter\makeatother进行使用:

  • \makeatletter :@ is now a normal "letter" for TeX
  • \makeatother:@ is restored as a "non-letter" character for TeX

在使用\@命令之前,使用\makeatletter命令,结束之后,使用\makeatother命令。

3.2.3 生成页面

cover.tex的最后一行中,使用\makecover运行生成封面的代码,并在main.tex中使用input{data/cover}引入封面。

3.2.4 替换原创性声明

除了使用latex代码生成页面,还可以使用加载pdf文件的形式,在论文中插入pdf页面。

以原创性声明为例,使用自己的准备的pdf文件替换原创性声明。

setup/format.tex中的\def\makecopyright中存在以下代码,引入指定的pdf文件作为原创性声明。

% 如果需要上传稿包含版权页,取消这部分内容注释
%\includepdf{data/Copyright.pdf}

3.3 编辑正文、附录、致谢、研究成果

  • 正文:data/intros.texdata/chapter2data/chapter3data/conclusion
  • 附录:data/appendix
  • 致谢:data/acknowledgements
  • 研究成果:data/publications

当章节内容较多时,编译速度较慢。可以将不同章节放在不同tex文件中,注释掉其他章节,只编译正在撰写的章节,以提升编译速度。

以编辑绪论为例进行说明。

\chapter{绪论} % 第一章的标题

\section{引言} % 1.1节

这是第一段。这是引用测试\cite{barnes2009patchmatch}。每一段会自动首行缩进,首行缩进测试,首行缩进测试,首行缩进测试,首行缩进测试,首行缩进测试,首行缩进测试,首行缩进测试,首行缩进测试。

这是第二段。两段之间空一行,自动分段。

\subsection{引言} % 1.1.1 节

\section{引言} % 1.2节

编辑好内容之后,在main.tex中使用include{data/appendix}引入。

注意这里是\include,而引入封面、原创性声明的时候,使用的是\input,因为封面等使用了宏定义生成对应的内容。

4. 一些经验

4.1 移除目录页的页脚页眉格式

该代码(建议)的来源:这里

目录之前的其他页面(摘要)使用到了特定的页脚页眉格式,在编写文档的过程中发现,当目录多余1页时,使用\thispagestyle{empty}\pagestyle{empty},都无法完全清除目录的页眉页脚格式。

后来在网上找到了解决方案,需要配合\AtBeginDocument{}对目录的页面样式进行调整:

% \AtBeginDocument代码需要放到\begin{document}之前

\AtBeginDocument{
	\addtocontents{toc}{\protect\thispagestyle{empty}}%
	\addtocontents{lof}{\protect\thispagestyle{empty}}%
}

4.2 当main.pdf打开时,编译时出现无法写入的错误

当使用pdf阅读器(如Adobe Acrobat Reader)打开main.pdf的同时,编译main.tex文件,会出现无法写入的错误:

I can't write on file `main.pdf`. ...

此时需要关闭pdf文件之后,才可以正常编译。若使用TeXstudio等编辑器,则可以做到同时编译与查看pdf文件。

4.3 插图格式选择

  • latex中可选择的插图格式为epspdfjpgpng等格式,epspdf格式支持矢量图(即可无限放大,而不会模糊)。

  • 本人推荐的插图格式为pdf

    • 当插图格式为eps时,latex会将eps转化为pdf格式后,再嵌入文章中,多了一步;且在PCpdf文件可以直接查看,而eps需安装特定软件后才可查看
    • 当插图格式为jpgpng时,文章中的图片信息可能会变得模糊,在一些低版本pdf阅读器中可能无法正常显示(如Adobe Reader XI 11.0)。
  • 如需为文章制作示例图,可使用Visio软件制图,再将图片另存为pdf文件。需要注意的是,另存为pdf文件时,建议visio文件中仅保留一个示意图,否则多个示例图都将存在于同一个pdf文件中,即使是使用Adobe Acrobat DC裁剪pdf后,其他示意图只是被隐藏,仍存在于pdf文件中,导致论文pdf的大小剧增。另外,裁剪pdf文件的方式比较麻烦,可使用 <去除Visio画图(PDF)的多余边框> 中的方法。

  • 可使用latex自带的命令将jpgpng转换为pdf格式:

    sam2p example.png example.eps

    使用sam2pjpg格式图片转换为pdf时,转换后的文件大小较大,此时可使用jpg2pdf.com/来替代。

4.4 去除Visio画图(PDF)的多余边框

参考解决LaTex中插入Visio画图有多余边框的问题

  • 文件(选项卡)- 选项 - 自定义功能区 - 打勾右侧“主选项卡”的“开发工具”保存

  • 开发工具(选项卡)- 显示ShapeSheet

    找到Print Properties表格,将PageLeftMarginPageRightMarginPageTopMarginPageBottomMargin 均修改为0或其他数值(双击单元格以编辑,回车以保存)

  • 使用Visio制图

  • 设计(选项卡)- 大小 - A4 - 适应绘图

    注意在这里是先制图,再选择适应绘图。如果移动了图像,或者更新了图像内容之后,需要再次选择适应绘图

  • 另存为 - PDF - 下方的“选项” - 在弹出的对话框中将“辅助功能文档结构标记”前的勾去掉

    去除“辅助功能文档结构标记”之后,PDF文件就没有了边框,每次保存文件都需要重新去除勾选

4.5 图片引用跳转到caption的解决方案

在当前的论文模板中,当点击编译后PDF的图片引用时,会跳转到图片下方的标题处,而非图片内容处,这种跳转方式会给阅读者造成障碍,可以使用下文方法解决。

  • setup\format.tex中注释掉:

    %\captiondelim{~~~~} %用来控制longtable表头分隔符
  • setup\package.tex中注释掉:

    %\usepackage[subfigure]{ccaption}            % 支持子图的中文标题

    setup\package.tex中添加:

    \usepackage[all]{hypcap}
  • 插入图片时,将\label{}写在图片数据后,而不是\caption{}

    这种做法仅适用于本模板,正常来说,应将\label{}写在\caption{}

    \begin{figure}
    \includegraphics[width=0.5\textwidth]{example.pdf}
    \label{fig:my_lable}
    \caption{my_caption}
    \end{figure}

szu-thesis-master's People

Contributors

jonzhaocn avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.