avatar


基于LaTeX的同济大学毕业论文排版实践

基于开源项目:TongjiThesis
GitHub地址:https://github.com/marquistj13/TongjiThesis

准备

至少需要准备如下四款:

  1. Windows 10 中文版
  2. TexLive 2019
  3. TongjiThesis
  4. TexStudio

建议再准备一个文本编辑器VS Code

Windows 10 中文版

强烈建议Windows 10 中文版

其他系统(例如:MacOS 英文版Windows 10 英文版Windows Server 2019 数据中心版 中文版)都存在中文字体缺失的问题,虽然可以通过额外安装字体的方式的解决,但是都较为繁琐。而且可能因为字体名称的原因,需要更多的修改设置。

TexLive 2019

强烈建议TexLive 2019

虽然现在最新版的TexLive不是2019,但是TongjiThesis,在更高版本的TexLive、或者更低版本的TexLive上,都有各种各样的问题。

可以通过如下的地址,下载TexLive 2019
地址:http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/2019/

运行install-tl-windows.bat,即可进行安装。

TongjiThesis

可以通过Git工具Clone TongjiThesis,也可以直接下载。

(如果是Mac,通过ParallelDesktop安装的Windows 10 中文版,需要将LaTeX文件放在虚拟机的磁盘中,不能放在Mac的磁盘中。)

TeXstudio

通过如下的地址,下载TeXstudio,进行安装。
地址:http://texstudio.sourceforge.net/

安装完成之后,需要进行如下的设置。
依次点击选项(Options)设置TeXstudio(Configure TeXstudio)构建(Build)

  • 修改默认编译器(Default Compiler)XeLaTeX
  • 修改默认文献工具(Default Bibliography Tool)Biber

还可以依次点击选项(Options)设置TeXstudio(Configure TeXstudio)常规(General),修改语言(Language)为"中文"。

配置

字体

对于Windows 10 中文版的系统,需要修改文件tongjithesis.cls
\IfFileExists{/dev/null}{}{\PassOptionsToClass{fontset=windowsold}{ctexbook}}中的fontset=windowsold,修改为fontset=windowsnew

对于非Windows 10 中文版的系统,需要自行安装缺失的字体。
部分缺失的字体可以在如下的issue中找到。
issue地址;https://github.com/marquistj13/TongjiThesis/issues/18

算法

修改tongjiutils.sty,在\endinput之前,添加如下内容。

1
2
3
4
5
6
7
% 两个和算法排版相关的包
\usepackage{algorithm}
\usepackage{algorithmic}
% 改为中文
\floatname{algorithm}{算法}
\renewcommand{\algorithmicrequire}{\textbf{输入:}}
\renewcommand{\algorithmicensure}{\textbf{输出:}}

示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
\begin{breakablealgorithm}
\caption{价值迭代算法}
\label{alg3}
\begin{algorithmic}
\REQUIRE
\STATE 环境
\STATE 最大迭代次数 $K_{\max}$
\STATE 最小更新值 $\theta$
\ENSURE 最佳策略$\pi_{\star}$
\STATE 初始化所有状态的价值$V(s) \leftarrow 0, s \in \mathcal{S}$
\WHILE{$k < k_{\max}$}
\STATE $\Delta \leftarrow 0$
\FOR {$s \in \mathcal{S}$}
\STATE 把上一轮迭代的价值赋给$V$,$V\leftarrow V_k(s_t)$
\STATE 计算新状态的价值$V_k(s_t)\leftarrow\max_{a_t}\{r(s_t,a_t)+\gamma\sum_{s_{t+1}}p(s_{t+1}|s_t,a_t)V_{k-1}(s_{t+1})\}$
\STATE $\Delta\leftarrow\max(\Delta,|V_{k}(s_t)|)$
\ENDFOR
\IF{如果$\Delta$几乎不更新($\Delta<\theta$)}
\STATE 结束迭代
\ENDIF
\ENDWHILE
\STATE 根据最优价值函数,输出策略:
$$
\pi_{\star}(s_t)=\arg\max_{a_t}\big[r(s_t,a_t)+\gamma\sum_{s_{t+1}}p(s_{t+1}|s_t,a_t)V(s_{t+1})\big]
$$
\end{algorithmic}
\end{breakablealgorithm}

运行结果:
算法

  • 该算法会自动跨页

更多功能可以参考TongjiThesis中的例子。

编译

编译步骤是texbibertextex

对应的过程是依次点击工具(Tools)中的:

  1. 编译(Compile)
  2. 参考文献(Bibliography)
  3. 编译(Compile)
  4. 编译(Compile)
  5. 构建并查看(Build & View)



为什么不直接用Word?
因为论文中有较多的数学公式,而且我厌恶Word中繁杂的排版,还因为Word排版,我不太熟练。

如果想获得更好的书写体验,可以利用VSCODE,并安装插件LaTeX Workshop

文章作者: Kaka Wan Yifan
文章链接: https://kakawanyifan.com/19901
版权声明: 本博客所有文章版权为文章作者所有,未经书面许可,任何机构和个人不得以任何形式转载、摘编或复制。

评论区