如果是为了方便简洁,实际使用Overleaf完全够了,之前也写过使用Obsidian写文章的教程. 这次主要介绍使用在本地vscode加上插件写论文.
需要工具
- vscode 官网即可
- texlive 通过镜像站即可,比如Index of /CTAN/systems/texlive/Images/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
选中箭头指向的其中一个即可,然后一步一步来即可.可以参考相关教程TeX Live 2022 安装指南【安装 LaTeX】. 安装TexLive目的就是为了有个解析引擎,类似与c++程序下载g++一样
- Sumatra PDF (sumatrapdfreader.org) 用于查看pdf,当然用其他的也可以.这是一个开源免费的pdf阅读器,用于查看tex编译后得到的pdf,并且设置反向搜索(即双击pdf的某个位置可以跳转到tex代码相应的位置)
配置步骤
下载texlive之后,进行测试是否安装成功. 在命令行输入1
tex
显示
表示安装成功.
这里区分一下可能混淆的名字。
一个完整的 TeX 需要最基本的 TeX 引擎、格式支持、各种辅助宏包、一些转换程序、GUI、编辑器、文档查看器等等。通过选择不同的组合就构成了不同的发行版。
- TeXLive:支持 Linux,Windows,macOS
- MiKTeX:支持 Windows,macOS (Intel)
可能有的人听过TexStudio,这是TexLive官方的写tex的编辑器
在vscode中下载插件Latex Workshop,用于有效地编译预览tex文件.
当然你也可以同时下载其他用于自动补全tex的插件.然后进行配置.
如果你还不了解tex相关的一类东西,可以在文章末尾参考资料中查看Tex家族.
简单实用
下载了插件后,你会注意到左部有这个插件标识,点击即可. 发现上面有相关命令.有编译,查看pdf,导向等等. 我们常用的就是构建,值得注意的是我们构建就是利用工具设置工具链进行一套编译流程.
现在你就可以写tex然后点击 pdflatex->bibtex->pdflatex*2
即可得到pdf
但是你会发现使用中文会报错,所以接下来我们会进行相关配置.
- TeX:1978年由Donald Erwin Knuth(高德纳)开发。是后来大部分TeX相关的基础。其生成dvi文件,然后经由其他程序转换为pdf文件。
- pdfTeX:Tex语言的又一个实现,将TeX代码直接编译成PDF文件。
- XeTeX:TeX 语言的新的实现,支持 Unicode 编码和直接访问操作系统字体。
- LuaTeX:TeX 语言的一个完整的有扩展的实现。LuaTeX支持Unicode、系统字体和内嵌语言扩展,能直接输出PDF格式文件,也可以仍然输出 DVI 格式。
我们需要增加xelatex工具.首先在设置中搜索tools
点击setting.json配置,增加xelatex,代码如下.即数组中的第一项.
1
2
3
4
5
6
7
8
9
10 {
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
]
}
以上相当于增加了一个tool.
现在需要增加一个recipe,相当于一套流程,这个流程需要用到xelatex.
设置中搜索recipe
点击setting.json,增加红框的代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
"name": "xelatex",
"tools": [
"xelatex"
],
},
{
"name": "xelatex ➞ bibtex ➞ xelatex × 2",
"tools": [
"xelatex",
"bibtex",
"xelatex",
"xelatex"
]
}
现在你可以看见增加的recipe了,如红箭头所示. 现在支持tex中有中文了.
注意需要使用ctex包1
\usepackage{ctex}
实现正反向搜索
这里使用sumatra作为external的pdf阅读器并实现双向搜索.
设置中搜索viewer.
设置external同时设置sumatra安装路径.
正向搜索
在设置中搜索 viewer,看到下图参数设置.
注意,这里可以先尝试随便添加项,然后在setting.json中查找这个配置.
将这个参数修改如下,注意其中的逆向搜索路径(这里是"D:/Microsoft VS Code/Code.exe\" \"D:/Microsoft VS Code/resources/app/out/cli.js\" -r -g \"%f:%l\"
)表示vscode相关下载位置,注意使用自己安装vscode的相关位置.1
2
3
4
5
6
7
8
9"latex-workshop.view.pdf.external.viewer.args": [
"-forward-search",
"%TEX%",
"%LINE%",
"-reuse-instance",
"-inverse-search",
"\"D:/Microsoft VS Code/Code.exe\" \"D:/Microsoft VS Code/resources/app/out/cli.js\" -r -g \"%f:%l\"",
"%PDF%",
],
然后就配置成功了(事实上并没有完全成功,具体可以看下面的注意).
正向搜索方法:平时选择其中之一即可
按下
Ctrl+Alt+J
,直接跳转至PDF对应的地方。点击View LaTeX PDF -> View in external viewer。
逆向搜索
设置中搜索Synctex,配置参数和命令. 跟上面的其实类似.
latex-workshop.view.pdf.external.synctex.args
参数配置如下1
2
3
4
5
6
7"-forward-search",
"%TEX%",
"%LINE%",
"-reuse-instance",
"-inverse-search",
"\"D:/Microsoft VS Code/Code.exe\" \"D:/Microsoft VS Code/resources/app/out/cli.js\" -r -g \"%f:%l\"",
"%PDF%",
上面的路径也是根据你下载vscode的路径配置.
使用Zotero导出bib参考文献
学术党必备:Zotero一键导出BibTex 参考文献_zotero bibtex-CSDN博客主要参考这篇教程,可以将需要引用的所有文献都放在一个目录下,然后导出.
注意
事实上要实现在sumatra中反向搜索,你还需要进行其他配置. 打开sumatra,点击左上角选择高级选项.
搜索InverseSearchCmdLine
可以发现这里的值应该已经被设置了.后面发现,按照上述设置在vscode中打开sumatra后会将这里的参数设置会vscode中配置的,但是现在需要更改一下.
在vscode配置中,逆向搜索增加--ms-enable-electron-run-as-node
参数.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19"latex-workshop.view.pdf.external.viewer.args": [
"-forward-search",
"%TEX%",
"%LINE%",
"-reuse-instance",
"-inverse-search",
"\"D:/Microsoft VS Code/Code.exe\" \"D:/Microsoft VS Code/resources/app/out/cli.js\" --ms-enable-electron-run-as-node -r -g \"%f:%l\"",
"%PDF%",
],
"latex-workshop.view.pdf.external.synctex.command": "D:\\SumatraPDF\\SumatraPDF.exe",
"latex-workshop.view.pdf.external.synctex.args": [
"-forward-search",
"%TEX%",
"%LINE%",
"-reuse-instance",
"-inverse-search",
"\"D:/Microsoft VS Code/Code.exe\" \"D:/Microsoft VS Code/resources/app/out/cli.js\" --ms-enable-electron-run-as-node -r -g \"%f:%l\"",
"%PDF%",
],
这样双击sumatra中的pdf即可跳转到vscode中的tex相应位置了.
常用的有xelatex,pdflatex,biblatex以及latexmk,biblatex可以用于生成引用文献,其他的都差别不大.
基础语法
源代码中,空格键和Tab 键输入的空白字符视为“空格”。连续的若干个空白字符视 为一个空格。一行开头的空格忽略不计。 行末的换行符视为一个空格;但连续两个换行符,也就是空行,会将文字分段。多个空行被 视为一个空行。也可以在行末使用\par命令分段。
% 字符作为注释。在这个字符之后直到行末,所有的字符都被忽略,行末的换行符 也不引入空格。