个人最喜欢的Latex 解决方案
VSCode + Latex Workshop
VSCode支持中文
LaTeX Workshop 默认的编译工具是 latexmk,修改配置文件,使用xelatex编译,再在文中引入xeCJK, ctex等包,就可以支持中文
知乎回答-如何让 VS Code 下的 LaTeX 支持中文
VSCode支持bibtex(自动排版引用)
修改配置文件,增加bibtex,具体修改如下:
- 1.在 “latex-workshop.latex.tools”中添加配置:
{ "name": "bibtex", "command": "bibtex", "args": [ "%DOCFILE%" ] }
解释:定义一个工具的名称和执行的命令、参数,这里定义的就是使用bibtex这个编译器
- 2.在 “latex-workshop.latex.recipes”中修改配置:
{ "name": "xelatex", "tools": [ "xelatex", "bibtex", "xelatex", "xelatex" ] }
解释:根据1中定义的工具名称进行调用,“tools”字段中就是在执行编译命令时调用的编译工具及顺序。这里使用了四个工具,就是每一次编译都会依次调用这四个工具进行编译(必须四次,缺一次就会出错,顺序也必须一致)
- 注意:VSCode在编辑latex时,按下ctrl + s保存就会自动调用recipes中第一种编译方案,所以最好把最常用的一个方案放在第一位,如图:
我这里一共定义了4种方案,其中第一种是最常用的。
Bibtex的使用流程
- 1.下载要排版的目标期刊或会议的样式文件,文件后缀为.bst,将该文件和该文件通常会随latex模板文件一起给出,但是有的也需要自己去官网下。但是像IEEE就比较坑,下载的latex模板里没有bst文件,官网也没有,而是在latex模板里的指导手册里的引用里,给出了下载链接:IEEE Latex 模板(含BST文件)下载地址这个网站访问不是很友好,我直接下载下来扔百度云上了,有需要的可以直接取:链接: https://pan.baidu.com/s/1ZMS-FjqjT9G6E0W56nm4NA
密码: etmr - 2.在本地新建*.bib文件。这个时候,一般文件目录是这样的:
*.bst就是bibtex的样式文件, *.bib就是我们用来放要引用的论文的文件, *.tex当然就是写latex的地方
- 3.在*.tex中的文件末尾,在\end{document}之前,添加如下代码:
\bibliographystyle{acl_natbib} \bibliography{acl2019}
其中acl_natbib表示引用的样式文件,所有的引用都会按照该文件进行排版,acl2019表示*.bib的文件名。
如果tex文件里没有引用cite包,记得引用:\usepackage{cite}
- 4.找到要引用的论文的bib格式文件,很多文献网站都会提供下载bibtex的选项,比如在dblp上,它通常是这样的:
复制全部内容,放到*.bib文件中。
- 5.在论文中引用,比如引用刚刚复制的这篇,写法如下:~\cite{DBLP:conf/emnlp/Kim14}。
至此,就全部完成了,以后引用新的文献只需要重复4-5步骤就行了。
latex模板插入中文字体导致模板中字体格式全变
这是一个神坑,很多会议或期刊都这样(比如IEEE和ACM),它们将所有的字体格式都在样式文件里写死了,一旦引入新的关于字体的包(比如\usepackage{xeCJK}),仅仅是引入,就会导致原来的英文字体全部失效,然后就会发现:我明明用了模板文件,怎么排版出来的论文和实际刊发出来的论文差距那么大?
这样做虽然一般没什么问题,这对于一些搞中文自然语言处理的童鞋来说,因为不可避免的要插入一两个中文词语,简直太痛苦了。这没有什么很好的解决方法,幸好我目前的写作中需要插入中文的地方不算太多,我就在latex上把论文写完之后,用占位符表示一下中文,再把它转化为word,再在word上把中文插入,再转化为pdf。由于很多有公式的页面在转化为word时会出错,所以公式尽量不要和中文同时出现,然后再把这些pdf拼接起来……蛮繁琐的一个操作。
可能的解决方案:
- 1.一开始就使用word排版,写作前先试下这个模板能不能插入中文,不能的话就用word。
- 2.修改模板的样式文件,适合对latex非常熟悉的大佬们,反正我是不行。。。如果有大佬做好了的话,希望分享一下,造福人类。
- 3.根据样式文件,手动指定所有区域的字体。以IEEE的latex模板为例,它的样式文件里对所有定义好的格式都指定了字体,比如标题、摘要、正文,在引入中文字体之后,这些虽然全变了,但是理论上是可以在tex中重新按照要求又制定好这些字体格式的,只是工作量过于庞大,并且不清楚到底是咋写的。
- 4.给编辑发邮件,希望官方能改正(em…我表示害怕)
latex模板未插入中文但是格式字体变化
主要原因是因为使用了中文的编译器,比如xelatex,导致编译出来的文件与pdflatex编译出来的文件出现较大差别,会导致行距、字体、粗细都出现较大的差异。所以在用latex模板写英文论文的时候,要注意使用pdflatex进行编译。
点击量:10217
1 条评论
JC.GGbond · 2021年12月28日 下午9:12
非常感谢!