[Latex写作] vscode搭建latex写作环境

个人博客 :Sekyoro的博客小屋
个人网站 :Proanimer的个人网站

如果是为了方便简洁,实际使用Overleaf完全够了,之前也写过使用Obsidian写文章的教程. 这次主要介绍使用在本地vscode加上插件写论文.

需要工具

  1. vscode 官网即可
  2. texlive 通过镜像站即可,比如Index of /CTAN/systems/texlive/Images/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

选中箭头指向的其中一个即可,然后一步一步来即可.可以参考相关教程TeX Live 2022 安装指南【安装 LaTeX】. 安装TexLive目的就是为了有个解析引擎,类似与c++程序下载g++一样

  1. Sumatra PDF (sumatrapdfreader.org) 用于查看pdf,当然用其他的也可以.这是一个开源免费的pdf阅读器,用于查看tex编译后得到的pdf,并且设置反向搜索(即双击pdf的某个位置可以跳转到tex代码相应的位置)

配置步骤

下载texlive之后,进行测试是否安装成功. 在命令行输入

sh 复制代码
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,代码如下.即数组中的第一项.

json 复制代码
    {
      "name": "xelatex",
      "command": "xelatex",
      "args": [
          "-synctex=1",
          "-interaction=nonstopmode",
          "-file-line-error",
          "%DOCFILE%"
      ]
  }

以上相当于增加了一个tool.

现在需要增加一个recipe,相当于一套流程,这个流程需要用到xelatex.

设置中搜索recipe

点击setting.json,增加红框的代码

json 复制代码
  {
      "name": "xelatex",
      "tools": [
          "xelatex"
      ],
  },
  {
      "name": "xelatex ➞ bibtex ➞ xelatex × 2",
      "tools": [
          "xelatex",
          "bibtex",
          "xelatex",
          "xelatex"
      ]
  }

现在你可以看见增加的recipe了,如红箭头所示. 现在支持tex中有中文了.

注意需要使用ctex包

tex 复制代码
 \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的相关位置.

json 复制代码
"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%",
  ],

然后就配置成功了(事实上并没有完全成功,具体可以看下面的注意).

正向搜索方法:平时选择其中之一即可

  1. 按下Ctrl+Alt+J,直接跳转至PDF对应的地方。

  2. 点击View LaTeX PDF -> View in external viewer

逆向搜索

设置中搜索Synctex,配置参数和命令. 跟上面的其实类似.

latex-workshop.view.pdf.external.synctex.args参数配置如下

json 复制代码
 "-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参数.

json 复制代码
"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命令分段。

​ % 字符作为注释。在这个字符之后直到行末,所有的字符都被忽略,行末的换行符 也不引入空格。

参考资料

  1. 在vscode中使用latex高效书写论文教程 - 知乎 (zhihu.com)
  2. 学术论文写作利器------ VS Code + LaTeX - 知乎 (zhihu.com)
  3. VS Code下配置LaTeX编译环境 - 知乎 (zhihu.com)
  4. VScode+Latex+SumatraPDF反向搜索失败解决办法(Version 1.63) - 知乎 (zhihu.com)
  5. TeX 家族(TeX, XeTeX, LuaTeX,XeLaTeX ...看完这篇就懂了) - 知乎 (zhihu.com)

如有疑问,欢迎各位交流!

服务器配置

宝塔:宝塔服务器面板,一键全能部署及管理

云服务器:阿里云服务器
Vultr服务器

GPU服务器:Vast.ai

相关推荐
infiniteWei6 小时前
【VIM 入门到精通】快速查找与替换:定位和修改文本的利器
linux·编辑器·vim
七元权6 小时前
VSCode连接远程容器失败(Missing GLIBC >=2.28!)
ide·vscode·编辑器·连接容器
infiniteWei6 小时前
【VIM 入门到精通】视觉模式与剪贴板:高效选择、复制与粘贴
linux·编辑器·vim
infiniteWei6 小时前
【VIM 入门到精通】精准光标移动与文本对象:Vim思维的进阶
linux·编辑器·vim
信奥胡老师16 小时前
苹果电脑(mac系统)安装vscode与配置c++环境,并可以使用万能头文件全流程
c++·ide·vscode·macos·编辑器
妖灵翎幺16 小时前
C++ 中的 :: 操作符详解(一切情况)
开发语言·c++·ide
奔跑吧 android16 小时前
【vscode】【远程 ssh 开发】【环境搭建】
ide·vscode·ssh
森明帮大于黑虎帮20 小时前
Visual Studio 2008 自述文件
ide·visual studio
欧恩意20 小时前
【Visual Studio】调试时 memcpy 拷贝错误,擅自修改内存
ide·visual studio
vortex51 天前
Visual Studio 编译选项详解
ide·visual studio