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

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

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

需要工具

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

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

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

配置步骤

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

tex

显示

image-20230322163046678

表示安装成功.

这里区分一下可能混淆的名字。

一个完整的 TeX 需要最基本的 TeX 引擎、格式支持、各种辅助宏包、一些转换程序、GUI、编辑器、文档查看器等等。通过选择不同的组合就构成了不同的发行版。

  • TeXLive:支持 Linux,Windows,macOS
  • MiKTeX:支持 Windows,macOS (Intel)

可能有的人听过TexStudio,这是TexLive官方的写tex的编辑器

在vscode中下载插件Latex Workshop,用于有效地编译预览tex文件.

image-20230322162849810

当然你也可以同时下载其他用于自动补全tex的插件.然后进行配置.

如果你还不了解tex相关的一类东西,可以在文章末尾参考资料中查看Tex家族.

简单实用

image-20230322163519674

下载了插件后,你会注意到左部有这个插件标识,点击即可. 发现上面有相关命令.有编译,查看pdf,导向等等. 我们常用的就是构建,值得注意的是我们构建就是利用工具设置工具链进行一套编译流程.

现在你就可以写tex然后点击 pdflatex->bibtex->pdflatex*2即可得到pdf

image-20230322163846157

但是你会发现使用中文会报错,所以接下来我们会进行相关配置.

  • TeX:1978年由Donald Erwin Knuth(高德纳)开发。是后来大部分TeX相关的基础。其生成dvi文件,然后经由其他程序转换为pdf文件。
  • pdfTeX:Tex语言的又一个实现,将TeX代码直接编译成PDF文件。
  • XeTeX:TeX 语言的新的实现,支持 Unicode 编码和直接访问操作系统字体。
  • LuaTeX:TeX 语言的一个完整的有扩展的实现。LuaTeX支持Unicode、系统字体和内嵌语言扩展,能直接输出PDF格式文件,也可以仍然输出 DVI 格式。

我们需要增加xelatex工具.首先在设置中搜索tools

image-20230322164243143

点击setting.json配置,增加xelatex,代码如下.即数组中的第一项.

image-20230322164343493
    {
      "name": "xelatex",
      "command": "xelatex",
      "args": [
          "-synctex=1",
          "-interaction=nonstopmode",
          "-file-line-error",
          "%DOCFILE%"
      ]
  }

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

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

设置中搜索recipe

image-20230322164525817

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

image-20230322164546431
  {
      "name": "xelatex",
      "tools": [
          "xelatex"
      ],
  },
  {
      "name": "xelatex ➞ bibtex ➞ xelatex × 2",
      "tools": [
          "xelatex",
          "bibtex",
          "xelatex",
          "xelatex"
      ]
  }

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

注意需要使用ctex包

 \usepackage{ctex}

image-20230322164634064

实现正反向搜索

这里使用sumatra作为external的pdf阅读器并实现双向搜索.

设置中搜索viewer.

image-20230322165018028 image-20230322165036922

设置external同时设置sumatra安装路径.

正向搜索

在设置中搜索 viewer,看到下图参数设置.

image-20230322165147100

注意,这里可以先尝试随便添加项,然后在setting.json中查找这个配置.

将这个参数修改如下,注意其中的逆向搜索路径(这里是"D:/Microsoft VS Code/Code.exe\" \"D:/Microsoft VS Code/resources/app/out/cli.js\" -r -g \"%f:%l\")表示vscode相关下载位置,注意使用自己安装vscode的相关位置.

"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. image-20230322165523694

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

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

逆向搜索

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

image-20230322165659967

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\" -r -g \"%f:%l\"",
    "%PDF%",

上面的路径也是根据你下载vscode的路径配置.

使用Zotero导出bib参考文献

学术党必备:Zotero一键导出BibTex 参考文献_zotero bibtex-CSDN博客主要参考这篇教程,可以将需要引用的所有文献都放在一个目录下,然后导出.

注意

事实上要实现在sumatra中反向搜索,你还需要进行其他配置. 打开sumatra,点击左上角选择高级选项.

image-20230322170018604

搜索InverseSearchCmdLine 可以发现这里的值应该已经被设置了.后面发现,按照上述设置在vscode中打开sumatra后会将这里的参数设置会vscode中配置的,但是现在需要更改一下.

在vscode配置中,逆向搜索增加--ms-enable-electron-run-as-node参数.

"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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/269072.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

类和对象的创建和实例化

1. 类的概述 1.1 具体示例 类是描述一类事物的特征和行为的统称,抽象的不存在的,泛指的概念,例如:描述一个人,从外观上(特征)和言行举止(行为)上进行描述外观上&#xff…

智能安全配电装置在临时展会场所中的应用

贾丽丽 安科瑞电气股份有限公司 上海嘉定 201801 【摘要】简述了商场临时展会、展摊等场所中电气装置用电的特性,针对此类场所中隐含的电气安全隐患问题,结合智能安全配电装置的功能,从用电设备的接地、线路的安装与敷设、设备的维护和管理…

LaTex插入图片

一、插入图片 在.tex文件开头导入相应的宏包 \documentclass{article} \usepackage{graphicx} % 导入图像的宏包、单图 \usepackage{subfigure} % 导入图像的宏包、子图 \graphicspath{{./images/}} % 告诉 LaTeX 这篇文档中的图片所存储的位置是主文档所在目录下的 images 文…

【XR806开发板试用】系列之二:出现已经成功编译,但是无法生成镜像文件的问题

本文主要对于编译成功但是烧录出现问题进行解决,用Hello world 和LED点亮代码作为示范 文章仅为参考网络资料和自身理解,如有不正确之处请多指正 首先确定自己根目录在哪,我们都在根目录进行hb set和hb build -f,判断方法是寻找ohos_config.…

为什么要出现并发?并发的三要素

大家好,我是"java继父"伯约,假如这篇对大家有帮助的话求一个赞,另外文章末尾放了我从小白到架构师多年的学习资料。 1.为什么需要多线程 众所周知,CPU、内存、I/O 设备的速度是有极大差异的,为了合理利用 C…

CentOS环境下Nacos2.3集成PostgreSQL

title: CentOS环境下Nacos2.3集成PostgreSQL date: 2023-12-21 19:15:00 categories: Nacos description: CentOS环境下Nacos2.3集成PostgreSQL 1. 目录 1. 目录2. 简介3. 安装部署 3.1. 部署模式3.2. 环境准备3.3. 下载安装文件3.4. PostgreSQL插件 3.4.1. 下载地址3.4.2. 结…

圆中点算法

中心在原点,半径为 R 的圆的隐式函数方程为 F ( x , y ) x 2 y 2 − R 2 0 F(x, y) x^2 y^2 - R^2 0 F(x,y)x2y2−R20 把像素上的点的坐标代入上述隐式方程 八分法画圆算法 利用坐标轴和与坐标轴夹角 45 度的直线 原理 假设圆弧起点 x 0 x0 x0&#xff0…

经典文献阅读之--RenderOcc(使用2D标签训练多视图3D Occupancy模型)

0. 简介 3D占据预测在机器人感知和自动驾驶领域具有重要的潜力,它将3D场景量化为带有语义标签的网格单元。最近的研究主要利用3D体素空间中的完整占据标签进行监督。然而,昂贵的注释过程和有时模糊的标签严重限制了3D占据模型的可用性和可扩展性。为了解…

SQL Server的权限设置

实验环境(实验案例一) 某公司部署了 SQL Server 2016用来存储网站数据,由系统管理员进行维护.在bdon数据库中 已创建了class表。 需求描述 赋予用户zhangsan在bdqn数据库中创建表的权限和对class表查询和更新数据的权限。

ASP.NET Core 中的应用启动

ASP.NET Core 中的应用启动 | Microsoft Learnhttps://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/startup?viewaspnetcore-8.0 目录 使用 Startup 筛选器扩展 Startup 在启动时从外部程序集添加配置 Startup、ConfigureServices 和 Configure 作者:…

每日一题——LeetCode141.环形链表

个人主页:白日依山璟 专栏:Java|数据结构与算法|每日一题 文章目录 1. 题目描述示例1:示例2:示例3:提示: 2. 思路3. 代码 1. 题目描述 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某…

041、基于CNN的样式迁移

之——基于CNN的滤镜 目录 之——基于CNN的滤镜 杂谈 正文 1.基于CNN的样式迁移 2.实现 杂谈 通过CNN的特征提取,可以实现将一个图片的样式模式特征迁移到另一张图像上。 正文 1.基于CNN的样式迁移 就是在某些层的输出上用其他的图片进行监督。 2.实现 一般来…

国际会议口译,选择同传好还是交传好

在国际会议中,同传与交传是常见的两种翻译方式,它们各自承载着独特的使命与优势,为沟通世界发挥着不可替代的作用。那么,同传好还是交传好,如何选择合适的翻译方式? 首先,从费用角度来看&#x…

苹果怎么调字体大小?详细教程在这,赶快get起来!

在我们使用苹果手机时,可能会遇到需要调整字体大小的情况。合适的字体大小能够提高阅读体验和舒适度,使得手机使用更加便捷。然而,还有很多用户并不知道苹果怎么调字体大小。别着急!本文将为您详细介绍操作方法,帮助您…

云计算与大数据之间的羁绊(期末不挂科版):云计算 | 大数据 | Hadoop | HDFS | MapReduce | Hive | Spark

文章目录 前言:一、云计算1.1 云计算的基本思想1.2 云计算概述——什么是云计算?1.3 云计算的基本特征1.4 云计算的部署模式1.5 云服务1.6 云计算的关键技术——虚拟化技术1.6.1 虚拟化的好处1.6.2 虚拟化技术的应用——12306使用阿里云避免了高峰期的崩…

selenium模块有哪些用途?

Selenium模块是一个用于Web应用程序测试的模块,具有多种示例用法。以下是一些示例: 1.打开网页并执行一些基本操作,如点击按钮、输入文本等。 定位网页元素并执行操作,例如使用 find_element 方法查找单个元素,使用 f…

zabbix-邮件告警与钉钉机器人告警

zabbix-邮件告警 在部署邮件告警前需要先将zabbix部署成功 邮件告警需要得到邮箱的授权码,这里将以qq邮箱为例。 1.获取邮箱的授权码 2.编辑Email的相关信息 3.测试Email是否配置成功 测试成功。 4.为用户添加邮箱报警服务 5.创建主机群组、主机、监视项、触…

苹果ipad怎么录屏?让小白也能轻松上手

随着科技的发展,越来越多的用户使用苹果ipad进行工作、学习和娱乐。在使用过程中,难免会遇到需要录屏的情况,如录制游戏过程、教程讲解等。在本篇文章中,我们将详细介绍苹果ipad怎么录屏,帮助您轻松记录ipad屏幕上的精…

Unity程序向Web服务器发送数据

Unity程序向Web服务器发送数据 一、介绍二、HTTP协议三、新建Unity工程,创建脚本1.新建Unity工程,创建脚本WebManager.cs,将其指定给场景中的任意游戏体。2.在WebManager.cs中添加一个m_info属性和OnGUI函数显示UI: 四、GET请求在…

免费福利马上截止!深圳的户外小伙伴别错过!COSP2024体育展来了

COSP2024户外博览会 展会时间:2024年3月14-16日 展会地址:深圳福田会展中心 户外运动爱好者不可错过! COSP2024户外博览会不仅可以逛展 看各种露营装备、户外器材 还有各种沙龙、峰会活动 就在明年开年,阳春三月天&#xf…
最新文章