个人最喜欢的Latex 解决方案

VSCode + Latex Workshop

VSCode支持中文

LaTeX Workshop 默认的编译工具是 latexmk,修改配置文件,使用xelatex编译,再在文中引入xeCJK, ctex等包,就可以支持中文

VS Code使用之基本设置与配置详解

知乎回答-如何让 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文件中。

bib文件样例

  • 5.在论文中引用,比如引用刚刚复制的这篇,写法如下:~\cite{DBLP:conf/emnlp/Kim14}。

至此,就全部完成了,以后引用新的文献只需要重复4-5步骤就行了。

latex模板插入中文字体导致模板中字体格式全变

这是一个神坑,很多会议或期刊都这样(比如IEEE和ACM),它们将所有的字体格式都在样式文件里写死了,一旦引入新的关于字体的包(比如\usepackage{xeCJK}),仅仅是引入,就会导致原来的英文字体全部失效,然后就会发现:我明明用了模板文件,怎么排版出来的论文和实际刊发出来的论文差距那么大?

iEEE latex模板文件中的警告,不要引入任何会修改字体的包

这样做虽然一般没什么问题,这对于一些搞中文自然语言处理的童鞋来说,因为不可避免的要插入一两个中文词语,简直太痛苦了。这没有什么很好的解决方法,幸好我目前的写作中需要插入中文的地方不算太多,我就在latex上把论文写完之后,用占位符表示一下中文,再把它转化为word,再在word上把中文插入,再转化为pdf。由于很多有公式的页面在转化为word时会出错,所以公式尽量不要和中文同时出现,然后再把这些pdf拼接起来……蛮繁琐的一个操作。

可能的解决方案:

  • 1.一开始就使用word排版,写作前先试下这个模板能不能插入中文,不能的话就用word。
  • 2.修改模板的样式文件,适合对latex非常熟悉的大佬们,反正我是不行。。。如果有大佬做好了的话,希望分享一下,造福人类。
  • 3.根据样式文件,手动指定所有区域的字体。以IEEE的latex模板为例,它的样式文件里对所有定义好的格式都指定了字体,比如标题、摘要、正文,在引入中文字体之后,这些虽然全变了,但是理论上是可以在tex中重新按照要求又制定好这些字体格式的,只是工作量过于庞大,并且不清楚到底是咋写的。
  • 4.给编辑发邮件,希望官方能改正(em…我表示害怕)

点击量:419


发表评论

电子邮件地址不会被公开。 必填项已用*标注