latex写中文毕业论文(北交大博士毕业论文模版)

欢迎来我博客看看呀 https://blog.wyue.site/2019/03/01/1/

转载前请联系我,联系方式请见我博客 https://blog.wyue.site/

最近疫情在家写毕业论文,前期折腾了一下latex模版的相关事情,算是搞的比较清楚了,所以后期论文写起来也比较顺利,遇到问题也可以随时解决。现在论文也搞得差不多了,准备记录一下。

主要分成下面几个部分来总结一下latex写中文毕业论文的相关问题

  1. latex安装与编辑器的使用
  2. 模版与编译器
  3. 论文中会遇到的一些问题及解决办法

latex安装与编辑器的使用

下载与安装

肯定有很多人 ~~(包括我自己)~~还在使用甚至还在推荐别人使用CTeX套装,注意我的用词不要引起歧义哈。我说的这个ctex套装指的是那个下载下来安装好就又有latex可以用,又帮你按了一个winedit的那个套装,一般是在下面这个网址下载的

http://www.ctex.org/HomePage

但是我想说的是,除非有什么上古代码必须要这个,尽量还是别安装这个了
原因有两点

  1. 太旧了,很久都没人维护了
  2. 安装有风险,很多人报告有某种位置情况下会覆盖系统的Path变量

那么去哪里下载什么呢,我建议下载最新的texlive,原因是:

我看网上说还挺好用,然后我自己试了一下确实没出啥问题

下载地址在这里:https://www.tug.org/texlive/

嫌弃官网慢的话,清华大学镜像也是挺不错的, 这里下载 https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/texlive2019.iso

下载下来,挂载好镜像文件(这个就不写了哈,大家可以自己搜啥叫挂载镜像文件,或者来这里看),就可以安装了。
没记错的话里面有一个 install-tl-windows.bat 文件,双击就可以安装了。

安装大约需要1个小时(都不一定够)安装好以后,可以把安装的路径加入系统变量Path里面,以便后面说的编辑器调用。安装路径指的是类似下面这样的路径,最后一定是bin\win32,因为这个文件夹里面才有各种exe程序。

C:\texlive\2019\bin\win32

写论文用到的编辑器

这个话题有点引战。。我就说我咋写的吧,我本人主要用texstudio,偶尔用vscode+latex workshop插件。

texstudio官网下载就好,http://www.texstudio.org/ , 简单易用,几乎0配置,界面也友好。

模版与编译器

我是北京交通大学的,我们学校没有官方latex模版,但是有大佬们做了一个非官方的,还是与word版本有些不同,我自己又改了改,终于算是几乎一模一样了。

开源在这里,有需要的可以自取

https://github.com/xfdywy/bjtu-thesis-templete

如果发现问题可以提issue,或者评论。

模版基本就是一个.cls文件,在里面定义了论文的各个章节模块的格式。

这个模版需要用xelatex进行编译,别忘了在编辑器里面把编译工具换成xelatex,texstudio默认的话好像是pdflatex。

.

遇到的问题

xelatex在windows 10系统上(至少在win10上)太慢了

解决方法:在安装目录下找到xelatex.exe,就刚刚添加到Path里面的那个文件夹下面,然后

  1. 右击
  2. 属性
  3. 兼容性
  4. 以兼容模式运行这个程序
  5. windows7

知乎上这个问题下面的回答大家也可以试试 https://www.zhihu.com/question/53981204 。

反正我做完了以后速度就还能接受了。不编译很多图片的情况下,100页左右的论文也就不到一分钟。

推荐大家分章节写,平时都把别的章节注释掉,这样可以极大加快编译速度。

图标标题如何中英文两行,中文在上,英文在下

使用 \usepackage{bicaption} 这个包

然后在论文开始之前设置如下

\captionsetup[figure][bi-first]{name=图}
\captionsetup[figure][bi-second]{name=Figure}

\captionsetup[table][bi-first]{name=表}
\captionsetup[table][bi-second]{name=Table}

如何在公式环境中单独标号一行

一般我们如果给align或者equation环境中,公式会默认加标号,但是如果我们加上星号*,就会没有标号。

奇怪的需求来了,我们想在align* 环境中给某一行加标号怎么办呢?在论文最开始的地方

\newcommand\numberthis{\addtocounter{equation}{1}\tag{\theequation}}

如果在align* 这样的环境中,想给某一行单独标号,可以在那一行最后用这个命令 \numberthis

算法框中文

\usepackage[ruled,linesnumbered]{algorithm2e}
\renewcommand{\algorithmcfname}{算法}
\SetKwInput{KwIn}{输入}
\SetKwInput{KwOut}{输出}

插入图片

建议使用如下两个包

\usepackage{graphicx}
\usepackage{subfig}

之后在正文中用

 
\begin{figure}[h]
 	\centering 
 	\subfloat[a ]{
 		\label{fig}
 		\includegraphics[width=1.8in,height=1.5in]{a.png}}
 	\bicaption{你好,世界}{Hello world } 
 	\label{fig1}
\end{figure}	

这样的代码,可以插入子图。

定理,定义,引理等

如下, 语法解释大概是这样

\newtheorem{正文要用的环境名}{pdf上显示的名称}[按照谁编号]

\newtheorem{theorem}{定理}[section]
\newtheorem{lemma}{引理}[theorem]
\newtheorem{corollary}{推论} [theorem]
\newtheorem{assumption}{假设}[chapter]

模版中的黑科技 (ugly trick)

\usepackage{fontspec}
\newfontfamily\myfont{times.ttf}

这个是为了调整因为字体到Times New Roman的

第二行是说我们以后可以用{\myfont ABC}这样的语法把ABC强行设成Times New Roman字体

需要电脑中有times.ttf这个文件,并且在系统路径中了。如果没有这个文件需要先下载,如果不在系统路径中,这可以把times.ttf文件复制一份放到latex项目的文件夹下。不然会提示找不到,报错。

windows电脑应该都有这个文件吧, C:\Windows\Fonts 这个文件夹下。如果没有, git里面我放了一份,可以自取。

以后想到了再补充

docker编译(可以尝试,不是必须)

如果知道我说的是啥可以往下看,不然可以算了。

有兴趣的同学可以尝试用docker来编译tex文件,linux上xelatex的速度比windows上快很多, 而且不用安装和配latex编译器的环境了比如texlive啥的。

win10 上的docker有hyper-v支持,性能也是杠杠的, 安装一个docker for win10, 启动之后用这条命令就可以啦

docker run -i --rm -w /data -v "%cd%:/data" tianon/latex xelatex  -synctex=1 -interaction=nonstopmode  RL.tex

解释一下

  • tianon/latex是某大佬的docker,里面有了新的textlive。对应的dockerfile 在这里

https://github.com/tianon/dockerfiles/blob/master/latex/Dockerfile

  • i 保持交互
  • –rm 表示运行完就把这个docker container删掉
  • -w 表示后面执行的命令在docker中的工作路径
  • -v 是文件夹映射,%cd% 表示当前文件夹
  • ‘xelatex -synctex=1 -interaction=nonstopmode RL.tex’ 这一段就是在docker container里面执行的命令啦,应该很容易看懂,在调用xelatex 去编译 RL.tex

懒得麻烦的话,可以用我写好的bat文件,直接在windows上的cmd里面执行 xelatex.bat RL.tex 就ok了

速度100页的论文能快10多秒,从接近30秒,变成了18秒。

当然问题在于正向反向跳转的时候会出问题。。。。原因出在编译的时候生成的synctex文件里面记录的文件路径是docker里面的路径,因此在我们这个例子里面就是/data, 所以在windows上没法进行跳转。如果有大佬会操作,请一定告诉我。

现在有一个邪门的办法。如果你用vscode,你可以用synctex.bat作为你synctex的应用程序,vscode支持自定义。这个时候就可以跳转了,虽然效率上稍微有所折扣,看起来应该是run一个docker,然后在docker里面synctex,之后再怎么把信号传回来(我不懂,瞎说的,反正能用)

当然了,你如果你本来就是linux系统,想用docker,也完全ok,你把我bat文件改成shell的语法就行,没啥区别,主要是%cd%这里改成 ”$(pwd)“ 就行。

docker 也可以用我push到阿里云的镜像, 直接pull这个也行
就是把tianon/latex 换成下面这个

registry.cn-hangzhou.aliyuncs.com/yuewang/xfdywy:latex
.

  • 8
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值