xjtuthesis-x 模板问题更新及部分 LaTeX 常见问题解答
本文最后更新于 664 天前,其中的信息可能已经有所发展或是发生改变。
本文作者为西安交通大学2018 级本科生,因此文中「问题更新」部分的内容是根据《2022届本科毕业设计(论文)工作手册》中给出的格式说明进行更改,可能并不适用于最新年级,请各位学弟学妹酌情参考。
在该文章「问题更新」部分中,需要修改的部分已使用蓝色背景高亮标出,需要添加的部分以及修改后的部分已使用黄色背景高亮标出。
对于 LaTeX 完全不了解的新人,推荐先去阅读一下这一篇教程:网页链接

1 前言

在整个毕设工作中,一个非常重要的工作就是撰写毕业设计论文。作为毕设工作的总结和说明材料,要想写好毕业论文,甚至说是写的舒服,除了有一个完整和详尽的毕设工作外,一个良好的排版工具也是必不可少的。

经历过大学四年中的那些日常般的实验报告以及汇报工作后,本人已经深深的感受到了 Word 排版的难用与不便之处。虽其具有极高的自由度,且能够所见即所得;但是其繁琐的操作方式、对公式和对图表的垃圾处理、复杂的交叉引用、处理大文档时奇慢无比的速度以及无法保证每次打开时的格式稳定性,使本人每每在使用之时都甚觉不便。四年中,本人也曾多次听说过 LaTeX 排版的便捷之处。为此,本人曾早已配置好了 LaTeX 的相关环境,但由于时间原因一直未曾正式使用过。

在开始毕业设计论文写工作的前夕,本人在 Github 上找到了 xjtuthesis-x 这一个模板。编译过后发现,它的效果与学校给出的 Word 论文模板几乎一致。这时,本人一个从未正式学习并使用过 LaTeX 的小白毅然决然的决定——这次毕设论文就用 LaTeX 来写了。

天临四年,卢雷失辩。西电的两位神仙以其一通无敌的操作,成功的开启了全国毕设论文审查的新纪元。在两位神仙的这通神操作的影响下,学校对毕设论文的审查愈发严格,因而本人的论文也被迫经历了一轮又一轮的蹂躏。在这一轮轮的审查下,原本这个模板存在的,那些在往年可能根本就不会有人注意到的细小的格式问题,都被一一的暴露出来。幸而在本人和那些同样选择了 LaTeX 的室友以及同学们的共同努力下,这个模板上的某些细小的问题也被一一的修正。而这,就是这篇文章出现的原因。

(注:本人使用的环境为 TeXLive 2022 + VSCode(使用 LaTeX Workshop 扩展),室友 Mr.July 则采取 TeXstudio 来作为 LaTeX 的编辑器。大家可以自主决定,平常习惯调试 VScode 的同学可以直接选用 VScode 进行扩展,而在当前比较普及的 LaTeX 编辑器 WinEdt 和 TeXstudio 中,Mr.July 更偏向 TeXstudio,认为它的交互和操作更简单快捷。)

2 模板问题更新

该 LaTeX 模板建立之日,距本人开始撰写毕设论文之时已有六年之久。这六年来,LaTeX 的各大宏包都进行了一定的更新;同时学校对本科毕设论文格式的规定,也发生了一些细微的变化。因此,如果各位学弟学妹希望继续使用该模板,则需要对其进行一定的更改。

拜卢雷两位神仙所赐,近年来对本科毕业设计的审查工作盲猜也会愈发严格。因此,各位学弟学妹们在进行毕业设计论文写作之时,一定要注意一些格式上的细节,以免造成过多的没必要的返工。本文也列举了模板中一些常见的错误与警告,以供大家参考。

2.1 Error&Warning错误与警告

当大家第一次拿到这个模板,并使用 XeLaTeX -> BibTeX -> XeLaTeX -> XeLaTeX 编译时,可能会报出如下 error 和 warning,顺带着还有一些警告,如下图所示:

首次编译出现的错误和警告。

本人作为一个严重的强迫症,怎么可能会容忍这些 error 和 warning 的存在。因此,接下来本人将依次的描述一下解决这些问题的方法。

2.1.1 错误「I found no \citation commands」

产生这个错误的原因是由于:在使用 BibTeX 编译时,BibTeX 并没有在文章中找到任何 \cite 引用。解决的方法是在文章正文中任意的某一处添加一个引用,并在 bibliography.bib 文件中加入这篇论文,重新编译即可。例如,可将 into.tex 文件更改为:

% multiple1902 <multiple1902@gmail.com>
% intro.tex
% Copyright 2011~2012, multiple1902 (Weisi Dai)
% https://code.google.com/p/xjtuthesis/
% 
% It is strongly recommended that you read documentations located at
%   http://code.google.com/p/xjtuthesis/wiki/Landing?tm=6
% in advance of your compilation if you have not read them before.
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
%   http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
%
% This work has the LPPL maintenance status `maintained'.
% 
% The Current Maintainer of this work is Weisi Dai.
%

\chapter{绪论}
\echapter{Preface}

\section{第一个二级标题}
\esection{The first section in the Preface}

\subsection{三级标题}
\esubsection{Subsection in the Preface}

\subsubsection{四级标题}

测试文字\cite{niubi-paper}。 % 随意引用一篇参考文献。

\section{第二个二级标题}
\esection{Another section in the Preface}

此时对应的 bibliography.bib 文件内容为:

@Article{ niubi-paper,
	title = "既发散又收敛的无穷级数",
	author = "张慧",
	journal = "陕西师范大学学报",
	year = "2004"
}

重新编译后,发现这个 error 报错解决,但是此时却出现了一些新的 warning,如图:

字体大小报错。

这是由于 LaTeX 找不到这个大小字号的字体造成的。解决的方法就是在 xjtuthesis.cls 文件中导入宏包的位置上引入 fix-cm 宏包既可[1]

% CJK character support
\RequirePackage[no-math]{fontspec}
\RequirePackage{xltxtra,xunicode}
\RequirePackage[slantfont,boldfont,CJKnumber]{xeCJK}
\RequirePackage{fix-cm} % 引入的用于解决该问题的宏包
\punctstyle{hangmobanjiao}

修改完成后,重新编译该文档,即可发现问题解决。

2.1.2 警告「The `CJKnumber’ option is deprecated.」

该报错出现的原因是较新版本的 xeCJK 已经不支持 CJKnumber 这个 option,\CJKnumber 这个命令被放到了 CJKnumb 这个包中。

因此,我们只要在 xjtuthesis.cls 文件中导入宏包 CJKnumb 即可[2]

% CJK character support
\RequirePackage[no-math]{fontspec}
\RequirePackage{xltxtra,xunicode}
\RequirePackage[slantfont,boldfont]{xeCJK} % 需要修改的一行
\RequirePackage{CJKnumb} % 需要添加的一行
\RequirePackage{fix-cm} % 该行已在 2.2.1 节中被添加
\punctstyle{hangmobanjiao}

加入这个宏包后,重新编译,发现报错消除。

2.1.3 提示 「Underfull \hbox (badness 10000)」

产生这个提示的原因可能是因为 LaTeX 编译器觉得这个地方的排版太稀疏了[3],这个提示可以先不修改,待解决了本章的其他问题后再来看,该提示会自然消除。

2.2 模板格式更新1:删除摘要前的「论文题目」、「学生姓名」与「指导教师」三行

该模板编译后,会在文章的中英文摘要前面显示「论文题目」、「学生姓名」与「指导教师」三行,如下图:

摘要前的「论文题目」、「学生姓名」与「指导教师」

在 2022 年的最新格式规定中,是没有这三行的,因此我们需要将这三行删除掉。在 xjtuthesis.cls 文件中找到如下内容:

    \type{本科}
    \renewcommand\xjtucinfopage{
        \chaptermark{摘\quad 要}
        \noindent {\bf
        论文题目: \xjtu@ctitle\\
        学生姓名: \xjtu@cauthor\\
        指导教师: \xjtu@csupervisor\\
        }

        \begin{center}
          \sanhao
          摘\quad 要
        \end{center}

        \xjtu@cabstract

        \mbox{}

        {\wuhao \noindent
            {\bf 关键词}:
        \xjtu@ckeywords}
        \clearpage
    }
    \renewcommand\xjtueinfopage{
        \chaptermark{ABSTRACT}
        \noindent {\bf
        Title: \xjtu@etitle\\
        Name: \xjtu@eauthor\\
        Supervisor: \xjtu@esupervisor\\
        }

        \begin{center}
          \sanhao
          ABSTRACT
        \end{center}


        {
        \setlength{\parindent}{0em}
        \setlength{\parskip}{1em}
        \xjtu@eabstract
        }

        \mbox{ }

        {\wuhao\noindent
            {\bf KEY WORDS: }
            \xjtu@ekeywords
        }

        \clearpage
    }

并将其修改为:

    \type{本科}
    \renewcommand\xjtucinfopage{
        \chaptermark{摘\quad 要}
        \noindent {\bf
        \hspace*{\fill}                  % 需修改处
        % 论文题目: \xjtu@ctitle\\       % 需修改处
        % 学生姓名: \xjtu@cauthor\\      % 需修改处
        % 指导教师: \xjtu@csupervisor\\  % 需修改处
        }

        \begin{center}
            \sanhao 
            摘\quad 要
        \end{center}

        \xjtu@cabstract

        \mbox{}

        {\wuhao \noindent
            {\bf 关键词}:
        \xjtu@ckeywords}
        \clearpage
    }
    \renewcommand\xjtueinfopage{
        \chaptermark{ABSTRACT}
        \noindent {\bf
        \hspace*{\fill}                   % 需修改处
        % Title: \xjtu@etitle\\           % 需修改处
        % Name: \xjtu@eauthor\\           % 需修改处
        % Supervisor: \xjtu@esupervisor\\ % 需修改处
        }

        \begin{center}
          \sanhao
          ABSTRACT
        \end{center}


        {
        \setlength{\parindent}{0em}
        \setlength{\parskip}{1em}
        \xjtu@eabstract
        }

        \mbox{ }

        {\wuhao \noindent
            {\bf KEY WORDS: }
            \xjtu@ekeywords
        }

        \clearpage
    }

修改完成后,重新编译,即可发现原有的三行文字消失了,同时 2.1.3 小节的提示也消失了,如下图:

删除摘要前的「论文题目」、「学生姓名」与「指导教师」三行

2.3 模板格式更新2:中英文关键词字号大小问题

在 2022 年的最新格式规定中,「关键词」这三个字及其对应的内容都应为「小四」号字,而这个模板里使用的却是「五号」字。相比于小四号字而言,五号字小上一圈,因此需要对其进行一定的更改。

修改的方法同样是在 xjtuthesis.cls 文件中,找到 2.2 节中修改好的内容,并对以下两处进行进一步的修改:

    \type{本科}
    \renewcommand\xjtucinfopage{
        \chaptermark{摘\quad 要}
        \noindent {\bf
        \hspace*{\fill}
        % 论文题目: \xjtu@ctitle\\ 
        % 学生姓名: \xjtu@cauthor\\
        % 指导教师: \xjtu@csupervisor\\
        }

        \begin{center}
            \sanhao 
            摘\quad 要
        \end{center}

        \xjtu@cabstract

        \mbox{}

        {\xiaosi \noindent %需修改处
            {\bf 关键词}:
        \xjtu@ckeywords}
        \clearpage
    }
    \renewcommand\xjtueinfopage{
        \chaptermark{ABSTRACT}
        \noindent {\bf
        \hspace*{\fill}
        % Title: \xjtu@etitle\\
        % Name: \xjtu@eauthor\\
        % Supervisor: \xjtu@esupervisor\\
        }

        \begin{center}
          \sanhao
          ABSTRACT
        \end{center}


        {
        \setlength{\parindent}{0em}
        \setlength{\parskip}{1em}
        \xjtu@eabstract
        }

        \mbox{ }

        {\xiaosi \noindent %需修改处
            {\bf KEY WORDS: }
            \xjtu@ekeywords
        }

        \clearpage
    }

重新编译即可发现关键字的大小变得正常了,问题解决。

2.4 模板格式更新3:致谢部分与参考文献部分的顺序问题

原模板中,三者的顺序为「参考文献」、「附录」和「致谢」,但是 2022 年最新的模板规定,三者的顺序应为「致谢」、「参考文献」和「附录」。而修改这个问题的方式也十分简单,只需要找到原模板bachelor.tex 文件中「\xjtuendcontent」 这一行下面的一段代码:

% 将你要引用的文献的 BibTeX 放入 bibliography.bib
\xjtubib{bibliography}

\xjtuappendix

\input{pages/appendice.tex}

\xjtuendappendix

\xjtuspchapter{致谢}{致\qquad 谢}

\input{pages/acknowledgements.tex}

\end{document}

并将其中各行的顺序更改为以下内容即可:

\xjtuspchapter{致谢}{致\qquad 谢}

\input{pages/acknowledgements.tex}

% 将你要引用的文献的 BibTeX 放入 bibliography.bib
\xjtubib{bibliography}

\xjtuappendix

\input{pages/appendice.tex}

\xjtuendappendix

\end{document}

重新编译该文档,观察目录即可发现顺序已经换为正确的了,如下图:

致谢、参考文献与附录的争取的顺序

2.5 模板格式更新4:附录的编号方式问题

该模板中,附录使用的编号方式为 1, 2, 3, ……,同时还包含二级标题和三级标题。在 2022 年的最新模板规定中,附录的编号方式应为 A, B, C, ……,同时并不应该包含二级标题。因此,需要对模板中附录的编号方式进行更改。

同样是需要在 xjtuthesis.cls 文件中对其进行更改,更改的方式为找到下面这样的一段代码:

\newcommand{\xjtuappendix}{
    \begin{appendix}
    \renewcommand{\thechapter}{附录\arabic{chapter}}
    \chaptermark{附录}
}
\newcommand{\xjtuendappendix}{\end{appendix}}
\newcommand{\xjtuappendixchapter}[1]{
    \stepcounter{chapter}
    \chapter*{\thechapter\quad#1}
    \addcontentsline{toc}{chapter}{\thechapter\quad #1}
}

并将其更改为如下内容[4]

\newcommand{\xjtuappendix}{
    \begin{appendix}
    \renewcommand{\thechapter}{附录\Alph{chapter}}  %需更改处
    \chaptermark{附录}
}
\newcommand{\xjtuendappendix}{\end{appendix}}
\newcommand{\xjtuappendixchapter}[1]{
    \stepcounter{chapter}
    \chapter*{\thechapter #1}                      %需更改处
    \addcontentsline{toc}{chapter}{\thechapter #1} %需更改处
}

重新编译,即可发现附录的编号方式已经成功的变为 A, B, C, ……,如下图:

正确的附录编号方式

2.6 模板格式更新5:四级标题前的中英文括号问题

该模板中的三级标题的编号中使用的括号为英文括号,但是 2022 年的学校模板中使用的为中文括号,因此需要对其进行一定的更改。

需要修改的地方同样是在 xjtuthesis.cls 文件中[5],在文件中找到该行代码:

\titleformat{\subsubsection}{}{\arabic{subsubsection})~}{1em}{}

并将其修改为:

\titleformat{\subsubsection}{}{\arabic{subsubsection})}{0em}{}

至此,问题解决。(PS:虽然代码中的这个中文括号真的很丑,但是没办法,谁让学校规定的模板就是这样呢。)

3 LaTeX 常见问题解答

本人作为一个第一次正式使用 LaTeX 的新手,在毕设写作工作中自然也出现了许多关于一些方法上的问题。奈何网络上有关 LaTeX 解答的文章大多讲解不深,还有很多词不达意,导致我与 Mr.July 同学深受折磨。本章将总结本人与舍友在使用 LaTeX 时遇到的部分疑难杂症,来为大家写作时提供一定的参考。

3.1 一种可行的插入单位的方法

在插入单位时,按照规范,单位一般应使用罗马字体,并须为正体,且数字和单位之间应该有一个空格[6],例如:0.9 V(正确),0.9V(错误)。同时,对于一些很难直接输入的特殊单位,例如 $\mathrm{\mu m}$,或者一些组合单位,在 LaTeX 中也是需要使用特殊的方法来输入的。

虽然在 LaTeX 中大家可以使用 $ xxx $ 来产生一些特殊的字符,但是其产生的字符默认为数学字体而非罗马字体,同时如果想要将其变为正体还需要使用 \mathrm 命令,因此这个方法并不好用。这里本人推荐大家使用 siunitx 宏包(推荐使用 3.0 以上的版本)来完成单位的输入。

通过该宏包中的 \unit 命令可以非常便捷的完成单位的输入,该命令具体的使用方式大家可以自行去网上搜索或者查看它的文档。这里本人仅说明一点:大家如果想要输出一个规范单位样式,则应在数字和 \unit 命令之间加上一个空格,例如:

1.2 \unit{\uA}

大家在将这个单位插入方法与加粗命令 \textbf{ } 同时使用时(例如:\textbf {a standard 0.35 \unit{\um} CMOS process}),可能会遇到一些问题。编译好后大家会发现,\unit{ } 命令中的公式并没有被一起加粗。

这里本人提供一种方法,就是将 \unit{ } 命令填加上 text-series-to-math 参数,如:\textbf {a standard 0.35 \unit[text-series-to-math]{\um} CMOS process}。这时单位就也能够正常的随文本被加粗了。

3.2 论文公式中的正斜体、分行与对齐问题

LaTeX 中,如果不使用特殊的命令,则默认输出的数学公式中的所有符号将都为斜体,但是在学位论文中,对于公式中的符号的正斜体是有要求的,具体可以见这篇文档

在需要用到正体时,推荐大家使用 \mathrm 命令来产生正体[7],例如:

\begin{equation} \label{equ:V_PTAT}
    V_\mathrm{PTAT} = V_\mathrm{REF} + I_\mathrm{PATA} \cdot n_2R
\end{equation}

输出的结果为:

$$ V_\mathrm{PTAT} = V_\mathrm{REF} + I_\mathrm{PATA} \cdot n_2R $$

如果想让输出的公式能够分两行或者多行,并且在某一个符号出对齐,可以使用 aligned 环境,并在需要分行处使用 \\ 分行,在要对其的符号前使用 & 符号来对齐,例如:

\begin{equation}
	\begin{aligned}
		V_{\mathrm{out}1}&=+V_{\mathrm{Hall}}+V_{\mathrm{off}}
		\\
		V_{\mathrm{out}2}&=-V_{\mathrm{Hall}}+V_{\mathrm{off}}
	\end{aligned}
\end{equation}

该表达式的输出结果为:

$$ \begin{aligned} V_{\mathrm{out}1}&=+V_{\mathrm{Hall}}+V_{\mathrm{off}} \\ V_{\mathrm{out}2}&=-V_{\mathrm{Hall}}+V_{\mathrm{off}} \end{aligned} $$

3.3 在一行中插入多个分图并使用 (a), (b), …… 编号

在进行论文写作时,有些图片可能会有分图。很多时候我们会希望这些分图都处在同一行中,并使用(a), (b), …… 来进行编号。如下图[8]

分图都处在同一行中并正确编号

LaTeX 中有多种办法可以实现这种需求。这里仅列举出一种本人认为比较简洁好用的方法:使用 \subfloat 命令生成子图[9]。使用该命令需要导入 subfiggraphicx 宏包,具体的使用方法为:

\begin{figure}[ht]
    \centering
    \subfloat[第一个子图图注]{\label{fig:fig_1}\includegraphics[width=.4\textwidth]{fig_1.png}}
    \hfill % 自动调整水平间距
    \subfloat[第二个子图图注]{\label{fig:fig_2}\includegraphics[width=.4\textwidth]{fig_2.png}}
    \caption{总的图注}
    \label{fig:fig}
\end{figure}

其中 \hfill 命令是为了在两个图中间产生一段空白,如果没有这个命令这两个图会挨在一起,有时候观感会不是很好。此外,如果两个图原始的大小不一致,则可以在插入时对其的宽度(即 [width=.4\textwidth] 这部分)进行微调,以保证两幅图高度一致。

3.4 插入组图

对于计算机相关专业的人,可能会涉及到插入规则的几行几列的组图的问题。这种情况下除了可以继续使用 subfloat 外,本人室友 Mr.July 同学提供了一种使用 minipage 环境的方式[10],具体的实现代码如下:

\begin{figure}[htbp]
	\centering
	\begin{minipage}[b]{1\linewidth} % 开启一个 minipage 版块并设定宽度为行宽
		\centering
		\includegraphics[width = 10.5em]{image/F1.jpg}\label{1}\hfill
		\includegraphics[width = 10.5em]{image/F2.jpg}\label{2}\hfill
		\includegraphics[width = 10.5em]{image/F3.jpg}\label{3}\hfill
		\includegraphics[width = 10.5em]{image/F4.jpg}\label{4}\vspace{1em}    % 最后添加一行回车使前后两个 minipage 产生上下间隔
	\end{minipage}
	\begin{minipage}[b]{1\linewidth}
		\centering
		\includegraphics[width = 10.5em]{image/U1.png}\label{5}\hfill
		\includegraphics[width = 10.5em]{image/U2.png}\label{6}\hfill 
		\includegraphics[width = 10.5em]{image/U3.png}\label{7}\hfill
		\includegraphics[width = 10.5em]{image/U4.png}\label{8}\vspace{1em}
	\end{minipage}
	\begin{minipage}[b]{1\linewidth}
		\centering
		\includegraphics[width = 10.5em]{image/M1.jpg}\label{9}\hfill
		\includegraphics[width = 10.5em]{image/M2.jpg}\label{10}\hfill 
		\includegraphics[width = 10.5em]{image/M3.jpg}\label{11}\hfill
		\includegraphics[width = 10.5em]{image/M4.jpg}\label{12}
	\end{minipage}
	\caption{*** 数据集。图示中第一排为 *** 内的 *** 图片,第二排为 *** 内的 *** 图片,第三排为 *** 内的 *** 图片。}
\end{figure}

其中,minipage 环境的使用方法为:

\begin{minipage}[ctb 参数]{宽度}
% 在此处输入内容
\end{minipage}

其中,ctb 参数中 c 为居中、t 为 top、b 为 bottom。使用 minipage 的好处是:可以连续插入一整列或者一整行的组图,对于需要连续多组对比的实验结果来说非常好用。

3.5 将图片旋转并设置图片独占一页

本人之前的一篇文章已经说明过这个问题,解决方法为使用 rotating 宏包,这里不在赘述。

3.6 设置三线表通栏并设置各列列宽

学校提供的 2022 年模板中规定,插入的表格应为三线表,且必须通栏。对于通栏,网上可以搜索到一种方式:通过使用 tabular*\hzise\textwidth 以及一些奇怪的符号就可以完成通栏[11],具体的代码如下:

\begin{table}[!ht]
\caption{Parameter values}\label{tab:parametervalues}
\begin{\makebox*}{\hsize}{@{}@{\extracolsep{\fill}}lllllllllllll@{}}
\toprule
$p_{t}$  &21  &22  &20  &15  &10  &8   &5   &10  &18  &10  &14  &18\\
\midrule
$c_{t}$  &5   &13  &10  &10  &10  &10  &10  &10  &10  &10  &10  &10\\
$h_{t}$  &10  &5   &5   &5   &5   &5   &5   &5   &5   &5   &5   &5 \\
$s_{t}$  &100 &100 &100 &100 &100 &100 &100 &100 &100 &100 &100 &100\\
$d_{t}$  &30  &45  &50  &55  &45  &55  &90  &80  &90  &65  &80  &70 \\
\bottomrule
\end{tabular*}
\end{table}

但是,这样设置出来的表格的第一列和最后一列是固定在文章的左右边缘的,如果表格内内容或者列数较少的时候会显得非常丑。因此需要一个更好的方式,在设置表格通栏的同时还可以设置表格的列宽。

这里 Mr.July 同学提供了一种方式:通过使用 tabularx\makebox,即可以做到自由的调整每一个列的列宽,从而实现一个较好的显示效果[12]。实现该方法的一段示例代码如下:

\begin{table}[ht]
    \centering
    \caption{逸一时,误一世,逸久逸久罢已龄。}
    \label{tab:A_114514_table}
    \begin{threeparttable} % 使用 \begin 和 \end 建立一个名为 threeparttable 环境,用以令一些效果在局部生效,或是生成特定的文档元素。(此处该语句及其对应的 \end{tablenotes} 语句可以删除)
        \begin{tabularx}{\textwidth}{c c c}
            \toprule % 三线表中第一根线
            \makebox[0.25\textwidth][c]{哼} & \makebox[0.25\textwidth][c]{哼} & \makebox[0.4\textwidth][c]{啊啊啊} \\
            \midrule % 三线表中第二根线
            114                             & 514                             & 1919810                            \\
            压                              & 力                              & 马斯内                             \\
            8                               & 10                              & 9                                  \\
            \bottomrule % 三线表中第三根线
        \end{tabularx}
        \begin{tablenotes} % 插入表注
            \small
            \item[*] 24 岁,是学生。身高是 170 公分,体重是 74 公斤。
        \end{tablenotes}
    \end{threeparttable} % 与前面的 \begin{threeparttable} 对应。
\end{table}

编译出来的效果如下图所示:

设置表格通栏并更改列宽

是不是视觉效果一下子就好了很多?同时大家可以通过调整 \makebox 命令的第一个 [ ] 中的参数来调整表格各列的列宽,\makebox 只需要在第一行定义即可。

3.7 插入封面和任务书、审核评议书、答辩结果

该模板自带的 guide.pdf 文件中有提到该如何在毕业论文中插入这四个部分,这里本人将会以一种更加详细的方式描述。

在「西安交通大学毕业设计(论文)智能管理系统」中的「表格导出」中,大家可以找到一个叫做「毕设材料打印的选项」(2022 级是这样,以后不敢保证会完全一致,但是估计一定会有一个类似的地方),在这里大家可以导出自己毕设的任务书、审核评议书以及答辩结果的 Word 文件的压缩包。同时大家在毕设系统中也可以下载到封面文件。友情提示:直接在最终界面导出的任务书与审核评议书可能与一开始提交的格式有所差别,建议自己先对照修改一下格式。

下载到封面文件后,大家将封面文件中的信息填好,并使用软件将其转为 PDF(Acrobat 等),封面部分的准备工作就完成了。

接下来就是任务书、审核评议书以及答辩结果文件的准备工作。大家在系统中下载好这三个文件后,接下来要做的事情有三个:

  1. 调整好三个文件的格式。打开「段落」设置,可能会发现这两个文件中的段落两边的间距不相等,这里需要将其调节为相等且都为最小;同时还需要将任务书中的参考文献等地方调整好。
  2. 压缩文件的内容。有时这几个文件中的文字内容可能会过多,超过了其期望所占的页数。对此大家可以尝试一下通过删除空行、修改行距以及修改段间距等方式来对其进行压缩。(如果实在压缩不了就不要压缩了,保持原格式即可)
  3. 正确的设置页码。修改和压缩完成后,大家需要正确的对其设置页码,以保证其转成 PDF 并导入到 LaTeX 中后仍然是没有问题的。

这些都完成后,就可以将其转为 PDF,并将其导入到 LaTeX 中去了。具体用来导入的 LaTeX 代码如下,大家自行在 bachelor.tex 中找到相应的部分并添加进去就好:

\begin{document}

% 停止论文编号
\pagenumbering{gobble}

% 论文封面
\includepdf[pages=-,scale=1,frame=false,offset=0em 4em]{appendice/covers.pdf}

% 开始论文编号,并使用罗马字符
\pagenumbering{Roman}

% 任务书
\includepdf[pages=-,scale=1,frame=false,offset=0em 4em]{appendice/assignment.pdf}

% 考核评议书与评审意见书
\includepdf[pages=-,scale=1,frame=false,offset=0em 4em]{appendice/review.pdf}

% 答辩结果
\includepdf[pages=-,scale=1,frame=false,offset=0em 4em]{appendice/result.pdf}

% 请修改 meta.tex 中的论文元信息
\input{meta.tex}

(PS:这部分建议放到打印论文前在进行,以保证大家能够一次获取到尽可能多的各种评议结果,减少反复。)

3.8 插入文献翻译附录

文献翻译附录的插入是一个比较难搞的东西。一般的大家的文献翻译工作都进行的较早,且大家拿到的文献翻译原文一般为 PDF,译文一般也是用 PDF形式提交的。同时,插入文献翻译时还涉及到一个保证继续编排页码的问题。如果大家仍然使用上一节的方式来插入文献翻译的原文及附录,可能会出现大片空白页的问题,非常的不美观,同时页码编排也是错误的;同时由于附录第一页上方存在一个大标题(附录A/B)占用了部分页面,因此插入的文献翻译第一页高度需要削减。

这里同样是采用 Mr.July 同学的方法:单独将文献翻译的原文和译文的第一页导出为图片,并将其的白边(主要是上下的白边)裁剪掉,然后作为图片插入;其余的页就按照正常的 PDF 格式插入,并将其设置一个缩放系数即可。

一种可参考的附录代码形式为:

\xjtuappendixchapter{文献翻译原文}

{\centering \includegraphics[width=\textwidth]{appendice/english_paper_page1.png}} % 第一页的图片

{\centering \includepdf[pages=-, scale=0.86, pagecommand={\pagestyle{plain}}, frame=false, offset=0em 4em]{appendice/english_paper.pdf}} % 后面的其他内容

\xjtuappendixchapter{文献翻译译文}

{\centering \includegraphics[width=\textwidth]{appendice/chinese_paper_page1.png}} % 第一页的图片

{\centering \includepdf[pages=-, scale=0.88, pagecommand={\pagestyle{plain}}, offset=0em 4em, frame=false]{appendice/chinese_paper.pdf}} % 后面的其他内容

3.9 导入参考文献时的注意事项

在 LaTeX 中,参考文献一般是要放在 .bib 文件中去的。该模板中使用的 .bib 文件名为 bibliography.bib。通过将参考文献的 BibTeX 放在该文件中,并使用 /cite 在文档中引用,即可使用参考文献。

获取参考文献的 BibTeX 的方式也有很多种,这里建议大家:对于英文参考文献,建议统一使用 Google Scholar 来获取参考文献的 BibTeX(PS:谷歌学术与百度学术对于英文文献产生的 BibTeX 不同,且百度学术产生的 BibTeX 缺斤少两,Mr.July 同学深受其害);对于中文的参考文献,可以考虑使用百度学术或者某些文献管理软件(例如 Zotero)来获取文献的 BibTeX。

但是,这些地方导出的 BibTeX 可能会有一些问题,如果直接使用则可能会编译出来的参考文献中可能会出现一些我们并不想要的符号。特别是对于一些国内论文,如果直接使用导出的 BibTeX,可能会产生一些例如 [S.I.] 以及英文中的「et al」等等符号,这是我们不希望看到的。下面本人将分别说一下这几种情况的解决方法[13]

3.9.1 [S.I.] 符号的消除

产生该符号的原因是因为该文献相应的 BibTeX 条目中并不包含出版地(address)信息,被模板认为是「出版地不详」,从而被添加上了 [S.I.]。例如,这是一个 Zotero 中导出的 BibTeX:

@phdthesis{huanghaiyun2016cmosdanpian,
  type         = {博士},
  title        = {CMOS单片集成3D霍尔磁传感器研究与设计},
  author       = {黄海云},
  year         = {2016},
  collaborator = {王德君},
  school       = {大连理工大学},
  annotation   = {CNKI citations: 13[12-22-2021]}
}

使用该 BibTeX 条目进行编译,最终得到的结果为:

[1] 黄海云. CMOS 单片集成 3D 霍尔磁传感器研究与设计 [D]. [S.I.] : 大连理工大学, 2016.

可以看出,这里面产生了一个我们不想要的 [S.I.]。解决的方法为,大家人工的在这个 BibTeX 中加入一个 address 信息就好了(这个信息意为出版地,大家可以根据学位论文的学校或者出版社的名称自行判断),例如:

@phdthesis{huanghaiyun2016cmosdanpian,
  type         = {博士},
  title        = {CMOS单片集成3D霍尔磁传感器研究与设计},
  author       = {黄海云},
  year         = {2016},
  collaborator = {王德君},
  school       = {大连理工大学},
  annotation   = {CNKI citations: 13[12-22-2021]},
  address      = {大连}
}

这时再编译之后,引用部分的内容就恢复正常了:

[1] 黄海云. CMOS 单片集成 3D 霍尔磁传感器研究与设计 [D]. 大连 : 大连理工大学, 2016.

3.9.2 中文文献中英文 et al 的消除

产生英文 et al 的原因是因为没有在 BibTeX 中设置语言为中文,此时这套模板将默认按照英文来处理。例如:

@book{neamen2003semiconductor,
  title     = {半导体物理学},
  author    = {刘恩科 and 朱秉升 and 罗晋生 and others},
  year      = {2008},
  publisher = {电子工业出版社},
  address   = {北京}
}

这条 BibTeX 编译出来的结果是这个样子的:

[2] 刘恩科, 朱秉升, 罗晋生, et al. 半导体物理学 [M]. 北京 : 电子工业出版社, 2008.

解决的办法即为在 BibTeX 中加入 language 信息,并将其设置为 zh

@book{neamen2003semiconductor,
  title     = {半导体物理学},
  author    = {刘恩科 and 朱秉升 and 罗晋生 and others},
  language  = {zh},
  year      = {2008},
  publisher = {电子工业出版社},
  address   = {北京}
}

重新编译后,问题解决:

[2] 刘恩科, 朱秉升, 罗晋生, 等. 半导体物理学 [M]. 北京 : 电子工业出版社, 2008.

这里本人推荐将所有的中文参考文献的 BibTeX 条目中都加入 language 信息。

3.9.3 一些 BibTeX 参考

这里主要放上一些本人已经亲测没问题的 BibTeX 参考,遇到同类型的参考文献大家可以来此自行比对。

@book{neamen2003semiconductor,
  title     = {半导体物理学},
  author    = {刘恩科 and 朱秉升 and 罗晋生 and others},
  language  = {zh},
  year      = {2008},
  publisher = {电子工业出版社},
  address   = {北京}
}

@article{sander2014ultralow,
  title     = {Ultra-low offset vertical Hall sensor in CMOS technology},
  author    = {Sander, C and Vecchi, MC and Cornils, M and Paul, O},
  journal   = {Procedia Engineering},
  volume    = {87},
  pages     = {732--735},
  year      = {2014},
  publisher = {Elsevier}
}

@phdthesis{huanghaiyun2016cmosdanpian,
  type         = {博士},
  title        = {CMOS单片集成3D霍尔磁传感器研究与设计},
  author       = {黄海云},
  year         = {2016},
  collaborator = {王德君},
  language     = {zh},
  school       = {大连理工大学},
  annotation   = {CNKI citations: 13[12-22-2021]},
  address      = {大连}
}

@inproceedings{sander2013fully,
  title        = {Fully symmetric vertical hall devices in CMOS technology},
  author       = {Sander, C and Raz, R and Ruther, P and Paul, O and Kaufmann, T and Cornils, M and Vecchi, MC},
  booktitle    = {SENSORS, 2013 IEEE},
  pages        = {1--4},
  year         = {2013},
  organization = {IEEE}
}

@patent{xuyue2020yizhongyongyu,
  title    = {一种用于霍尔传感器的八相旋转电流电路},
  author   = {徐跃 and 李鼎 and 赵庭晨},
  language = {zh},
  year     = {2020},
  country  = {中国},
  patentid = {CN107317576B},
  date     = {2020-07-03}
}

4 后记

相对于 Word 而言,LaTeX 的入门更加的困难一些。但熟悉 LaTeX 后,大家大概率就会感觉到它是一个非常好用的排版工具。因此,一旦大家有了使用 LaTeX 写作的想法,那么请不要被它的困难所吓倒,一定要勇于去使用它、熟悉它并了解它。本人在进行毕业设计论文写作前,从未真正使用过 LaTeX,但是在开始毕业论文写作时勇敢的迈出了这一步,并最终为我的毕业论文写作工作带来了极大的舒适。因此,无论大家是否是交大学子,也无论大家以前是否接触过 LaTeX,只要大家能找到一个较为健壮的 LaTeX 模板,我还是推荐大家尝试一下使用 LaTeX 写作的。

本人毕业设计论文写作的顺利,离不开前人的贡献和大家的帮助。这里,本人首先要感谢制作 xjtuthesis 模板的 Weisi Dai 前辈以及改进这个模板并维护 xjtuthesis-x 模板的 Zheng Xie 前辈。前人栽树,后人乘凉,感谢两位前辈的工作。此外,我也要感谢那些和我一起使用 LaTeX 写作并讨论 LaTeX 的 Mr.July、绫依 01 以及 takagi1123 等同学们,感谢你们对本人修改这个模板过程中的帮助;同时也感谢 Mr.July 对本文提供的素材、建议以及校正。

此外,本人近期和几位同学一起整理了一个被我们修改好的 xjtuthesis-x 模板的压缩包,并且已经把它上传到了整个网站上,各位西安交大的同学可以在这里下载使用:下载链接

最后,自本人正式接触 LaTeX 之日起,至本文写成之时尚不足两个月。因此,本人目前对 LaTeX 仍了解甚少,尚才疏学浅,如果大家发现文章中有不妥之处,亦或是有一些更方便的方法来实现文中提到的功能,也欢迎大家批评指正。

本文采用知识共享 署名 - 非商业性使用 4.0 许可,转载请注明出处;如果有某些问题想和本人讨论,可以发送邮件至:absolutezero@stu.xjtu.edu.cn
暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇