2025-04-03 Latex学习1——本地配置Latex + VScode环境
文章目录
- 1 安装 Latex
- 2 安装 VScode
- 3 配置环境
- 3.1 汉化 VScode
- 3.2 安装 latex 插件
- 3.3 配置解释
- 4 编译示例
- 5 加快你的编译
- 5.1 取消压缩
- 5.2 使用 PDF 代替图片
- 6 参考文章
1 安装 Latex
本文配置环境:
- Windows11
- 打开清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/,下载 texlive.iso 文件。
- 使用资源管理器打开。
- 右键“install-tl-windows.bat”文件,选择以管理员身份运行(进行安装),需等待一会儿。
-
进行如下配置:
- installation root:修改安装路径。
- 安装 TeXworks 前端:取消勾选(使用 VScode 就不用这个)。
设置完成后点击安装。
-
点击键盘上的菜单按键,输入“pow”,打开 Windows PoeweShell。
输入命令 “latex”,检查是否安装成功。
2 安装 VScode
- 打开 VScode 官网:https://code.visualstudio.com/,下载安装包。
-
运行安装包,勾选“创建桌面快捷方式”和“添加到系统 PATH”。
安装路径自行修改(严禁路径含中文或空格)。
3 配置环境
3.1 汉化 VScode
- 打开 VScode,点击左侧插件图标,搜索“chinese”,安装汉化插件。
- 安装完成后,点击重启,启用汉化。
3.2 安装 latex 插件
- 点击左侧插件图标,搜索“latex”,安装“LaTeX Workshop”插件。
- 点击左下角设置按钮,选择设置,打开设置面板。
- 点击右上角文件按钮,打开设置的 json 配置文件。
- 将以下代码拷贝到 json 文件中。
{"workbench.colorTheme": "Default Light Modern","editor.wordWrap": "on",//------------------------------LaTeX 配置----------------------------------// 右键菜单"latex-workshop.showContextMenu": true,// 从使用的包中自动补全命令和环境"latex-workshop.intellisense.package.enabled": true,// 编译出错时设置是否弹出气泡设置"latex-workshop.message.error.show": false,"latex-workshop.message.warning.show": false,// 输出路径"latex-workshop.latex.outDir": "./build",// 编译工具和命令"latex-workshop.latex.tools": [{"name": "xelatex","command": "xelatex","args": ["-synctex=1","-interaction=nonstopmode","-file-line-error","--output-directory=%OUTDIR%","%DOCFILE%"]},{"name": "pdflatex","command": "pdflatex","args": ["-synctex=1","-interaction=nonstopmode","-file-line-error","--output-directory=%OUTDIR%","%DOCFILE%"]},{"name": "latexmk","command": "latexmk","args": ["-synctex=1","-interaction=nonstopmode","-file-line-error","-pdf","--output-directory=%OUTDIR%","%DOCFILE%"]},{"name": "bibtex","command": "bibtex","args": ["%OUTDIR%/%DOCFILE%",// "--output-directory=%OUTDIR%",]}],"latex-workshop.latex.recipes": [{"name": "XeLaTeX","tools": ["xelatex"]},{"name": "PDFLaTeX","tools": ["pdflatex"]},{"name": "BibTeX","tools": ["bibtex"]},{"name": "LaTeXmk","tools": ["latexmk"]},{"name": "xelatex -> bibtex -> xelatex*2","tools": ["xelatex","bibtex","xelatex","xelatex"]},{"name": "pdflatex -> bibtex -> pdflatex*2","tools": ["pdflatex","bibtex","pdflatex","pdflatex"]},],// 文件清理。此属性必须是字符串数组"latex-workshop.latex.clean.fileTypes": ["*.aux","*.bbl","*.blg","*.idx","*.ind","*.lof","*.lot","*.out","*.toc","*.acn","*.acr","*.alg","*.glg","*.glo","*.gls","*.ist","*.fls","*.log","*.fdb_latexmk",// "*.synctex.gz"],// 设置为 onBuilt 在构建成功后清除辅助文件"latex-workshop.latex.autoClean.run": "onBuilt",// 使用第一个编译组合"latex-workshop.latex.recipe.default": "lastUsed",// 设置是否自动编译"latex-workshop.latex.autoBuild.run": "never",// 用于反向同步的内部查看器的键绑定。ctrl/cmd +点击(默认)或双击"latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
}
到此配置环境完成。
3.3 配置解释
-
编译输出路径
这里设置为当前目录下的 “./build” 文件夹。设置为空则是同目录。
// 输出路径 "latex-workshop.latex.outDir": "./build", -
编译工具命令
定义了单个工具,具体内容看注释。参考文档:Compile · James-Yu/LaTeX-Workshop Wiki。
// 编译工具和命令 "latex-workshop.latex.tools": [{"name": "xelatex","command": "xelatex","args": ["-synctex=1","-interaction=nonstopmode","-file-line-error","--output-directory=%OUTDIR%","%DOCFILE%"]},{"name": "pdflatex","command": "pdflatex","args": ["-synctex=1","-interaction=nonstopmode","-file-line-error","--output-directory=%OUTDIR%","%DOCFILE%"]},{"name": "latexmk","command": "latexmk","args": ["-synctex=1","-interaction=nonstopmode","-file-line-error","-pdf","--output-directory=%OUTDIR%","%DOCFILE%"]},{"name": "bibtex","command": "bibtex","args": ["%OUTDIR%/%DOCFILE%",// "--output-directory=%OUTDIR%",]} ], -
编译工具链
定义编译工具链,由一个或多个工具组成。在插件中显示如下
"latex-workshop.latex.recipes": [{"name": "XeLaTeX","tools": ["xelatex"]},{"name": "PDFLaTeX","tools": ["pdflatex"]},{"name": "BibTeX","tools": ["bibtex"]},{"name": "LaTeXmk","tools": ["latexmk"]},{"name": "xelatex -> bibtex -> xelatex*2","tools": ["xelatex","bibtex","xelatex","xelatex"]},{"name": "pdflatex -> bibtex -> pdflatex*2","tools": ["pdflatex","bibtex","pdflatex","pdflatex"]}, ],对于最后两个编译链,解释如下(以 xeletax 为例):
- xeletax * 1:生成辅助文件,为后续处理做准备。具体过程包括
- 解析主 .tex 文件。
- 生成 .aux 文件(包含引用和参考文献信息)。
- 生成 .log 文件(日志信息)。
- 生成 .synctex.gz 文件(用于反向搜索)。
- 生成初步的 PDF(此时引用和参考文献标记为问号 [?])。
- bibtex:处理参考文献。具体过程包括
- 读取 .aux 文件中的引用信息。
- 从 .bib 文献数据库中提取相关条目。
- 生成 .bbl 文件(格式化后的参考文献列表)。
- 生成 .blg 文件(bibtex 日志)。
- xeletax * 2:将参考文献信息整合到文档中。具体过程包括
- 读取 .bbl 文件内容。
- 更新文档中的引用标记。
- 重新生成 .aux 文件(现在包含正确的参考文献信息)。
- 生成中间 PDF(此时参考文献已正确显示,但交叉引用可能仍不正确)。
- xeletax * 3:解决所有交叉引用。具体过程包括
- 读取更新后的 .aux 文件。
- 解析所有交叉引用(章节、图表、公式编号等)。
- 确保所有引用编号最终正确。
- 生成最终 PDF(所有引用和参考文献都正确显示)。
如果跳过某些步骤:
- 只编译一次(xelatex):引用显示为 [?]。
- 编译两次,无 bibtex(xelatex -> xelatex):参考文献缺失。
- 编译两次,有 bibtex(xelatex -> bibtex -> xelatex):交叉引用可能不正确。
- xeletax * 1:生成辅助文件,为后续处理做准备。具体过程包括
-
文件清理
编译过程中,latex 会生成许多中间文件。
clean.fileTypes:定义编译完成后清理的文件后缀名。autoClean.run:决定编译完成后是否清理文件。
// 文件清理。此属性必须是字符串数组 "latex-workshop.latex.clean.fileTypes": ["*.aux","*.bbl","*.blg","*.idx","*.ind","*.lof","*.lot","*.out","*.toc","*.acn","*.acr","*.alg","*.glg","*.glo","*.gls","*.ist","*.fls","*.log","*.fdb_latexmk",// "*.synctex.gz" ],// 设置为 onBuilt 在构建成功后清除辅助文件 "latex-workshop.latex.autoClean.run": "onBuilt", -
自动编译
可以选择在文件内容更改时或保存文件时自动编译。
文件较大时,编译时间会很长,个人不习惯自动编译,因此选择 never。
// 使用上一个编译组合 "latex-workshop.latex.recipe.default": "lastUsed",// 设置是否自动编译 "latex-workshop.latex.autoBuild.run": "never", -
反向定位
设置从 pdf 到 tex 文件的反向定位方式,个人习惯鼠标双击定位。
// 用于反向同步的内部查看器的键绑定。ctrl/cmd +点击(默认)或双击 "latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
上述所有内容可直接在用户设置中搜索对应内容配置,并查看相关介绍。以反向定位为例:
4 编译示例
- 创建文件夹 test,使用 VScode 打开该文件夹。
- 新建 “new.tex” 文件,输入如下内容。
\documentclass{article} \begin{document}hello world!\end{document}
-
进入 TEX 插件页面,选择编译方式,点击编译。这里选择 LaTeXmk。选择 XeLaTeX 或 PDFLaTeX 也可。
若左侧没有 TEX 插件栏,新建 tex 文件即可显示。
-
回到文件页面,可看到当前目录下新建了 ./build 文件夹,编译的 pdf 放在该目录中。右上角点击双栏按钮可在右侧查看编译后的 pdf。
说明:“new.synctex.gz” 存放反向编译内容,删除后不可以双击 pdf 定位到对应 tex 位置。
-
编译一次后,可点击左上角编译按钮进行快速编译,选择的编译方式由如下设置决定:
// 使用上一个编译组合 "latex-workshop.latex.recipe.default": "lastUsed",
5 加快你的编译
5.1 取消压缩
最立竿见影的方法是取消 LaTeX 编译器对 PDF 的压缩。方法是在 tex 文档开头加入如下代码:
\documentclass{article} \usepackage{...}\special{dvipdfmx:config z 0} % 取消 PDF 压缩,加快速度,最终版本生成时注释该行\begin{document}hello world!\end{document}
该方法可以将速度加快 3~5 倍(60s -> 15s),但代价是 PDF 大小会成倍增加(60MB -> 700MB)。
5.2 使用 PDF 代替图片
对于图像文件,建议保存为 .pdf 。
因为 .pdf 图像的编译速度比 .png 文件快,其编译过程不需要调用 libpng 库。
- 参考链接:https://cn.overleaf.com/learn/how-to/Optimising_very_large_image_files。
6 参考文章
- Latex和Vscode安装和配置_vscode latex-CSDN博客
- LaTeX编译速度优化_latex自动编译-CSDN博客
相关文章:
2025-04-03 Latex学习1——本地配置Latex + VScode环境
文章目录 1 安装 Latex2 安装 VScode3 配置环境3.1 汉化 VScode3.2 安装 latex 插件3.3 配置解释 4 编译示例5 加快你的编译5.1 取消压缩5.2 使用 PDF 代替图片 6 参考文章 1 安装 Latex 本文配置环境: Windows11 打开清华大学开源软件镜像站:https://mi…...
【CF】Day24——Codeforces Round 994 (Div. 2) D
D. Shift Esc 题目: 思路: 典DP的变种 如果这一题没有这个变换操作,那么是一个很典型的二维dp,每一个格子我们都选择上面和左边中的最小值即可 而这题由于可以变换,那我们就要考虑变换操作,首先一个显然…...
【Java集合】LinkedList源码深度分析
参考笔记:java LinkedList 源码分析(通俗易懂)_linkedlist源码分析-CSDN博客 目录 1.前言 2.LinkedList简介 3.LinkedList的底层实现 4.LinkedList 与 ArrayList 的对比 4.1 如何选择 4.2 对比图 5.LinkedList 源码Debug 5.1 add(E e) ÿ…...
第十五届蓝桥杯大赛软件赛省赛Python 大学 C 组:5.回文数组
题目1 回文数组 小蓝在无聊时随机生成了一个长度为 n 的整数数组,数组中的第 i 个数为 ai,他觉得随机生成的数组不太美观,想把它变成回文数组,也是就对于任意 i∈[1,n] 满足 a i a n − i 1 a_ia_{n−i}1 aian−i1。 小蓝…...
高并发系统架构设计的深度解析与实施指南【大模型总结】
以下是对高并发系统架构设计的深度解析与实施指南,通过技术分层拆解和场景化案例说明,呈现完整的系统设计方法论: 一、容错优先思维的系统级实现 1. 混沌工程落地框架 # 混沌实验设计模板 class ChaosExperiment:def __init__(self, scope,…...
Python办公自动化(2)对wordpdf的操作
一、操作word文档 终端下载操作word文件的工具库: pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple python-docx 1.遍历文档中内容 paragraphs:段落属性,返回列表类型的段落地址,遍历每一个段落地址,通过…...
pip安装第三方库,但PyCharm中却无法识别
点击菜单栏File,选择Settings 系统默认的是PyCharm安装目录下的python.exe 解释器,不要用。 选择你的PYTHON的安装目录下的python.exe 解释器。如果不存在的话,增加进去 如果文件》设置打不开,需移除法化包。 打开 pycharm 安装目…...
新浪财经股票每天10点自动爬取
老规矩还是先分好三步,获取数据,解析数据,存储数据 因为股票是实时的,所以要加个cookie值,最好分线程或者爬取数据时等待爬取,不然会封ip 废话不多数,直接上代码 import matplotlib import r…...
Vue2 父子组件数据传递与调用:从 ref 到 $emit
提示:https://github.com/jeecgboot/jeecgboot-vue2 文章目录 案例父组件向子组件传递数据的方式父组件调用子组件方法的方式子组件向父组件传递数据的方式流程示意图 案例 提示:以下是本篇文章正文内容,下面案例可供参考 以下是 整合后的关…...
Linux C++编译及g++使用操作
编译的步骤 编译选项参数 编译生成库文件 静态库 动态库 运行可执行文件 静态库由于已经包含了链接的文件所以可以直接执行;动态库方式由于是运行时链接,所以需要指定链接的路径;...
antvX6自定义 HTML 节点创建与更新教程
自定义 HTML 节点创建与更新教程 本文详细介绍如何利用 HTML、CSS 和 JavaScript 创建自定义节点,并通过动态更新节点数据来改变节点显示效果。无论你是否有前端基础,都能轻松跟着本教程一步步实现。 1. 基础样式设置 首先,使用 CSS 定义基…...
【Android】界面布局-线性布局LinearLayout-例子
线性布局(LinearLayout)是一种重要的界面布局中,也是经常使用到的一种界面布局 • 在线性布局中,所有的子元素都按照垂直或水平的顺序在界面上排列 ➢如果垂直排列,则每行仅包含一个界面元素 ➢如果水平排列&…...
Cortex-M 上编写汇编函数
在 ARM Cortex-M 系列单片机中使用汇编语言编写函数时,需要特别注意寄存器的使用、栈管理、调用约定以及与 C 语言的兼容性。以下是关键注意事项和示例说明: 1. 遵循 AAPCS 调用约定 ARM 定义了 AAPCS(ARM Architecture Procedure Call Standard),规定了函数调用时寄存器…...
windows技术基础知识
NT架构 NT 就是new techonology 的英文单词缩写,是微软1993年推出操作系统的重大升级,如内存管理,安全机制,多任务,多线程支持。在此之前操作系统都是基于MS-DOS上面的图形化界面,只有有限的内存管理和多任…...
在 Windows 环境下使用 VSCode 和 TinyGo 开发 ESP8266(NodeMcu) or STM32
支持的型号 https://tinygo.org/docs/reference/microcontrollers/ 1. 安装Go 2. 安装TinyGo,并添加环境变量 https://github.com/tinygo-org/tinygo/releases 3. VSCode配置,安装插件,选择设备 package mainimport ("machine"&q…...
计算机视觉算法实战——基于YOLOv8的汽车试验场积水路段识别系统
✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ 引言:汽车试验场智能化管理的迫切需求 在现代汽车研发流程中,试验场作为验证车辆性…...
One API:LLM API 管理 分发系统,github 24.2K Star!
随着人工智能领域的不断发展,国内外各大厂商纷纷推出了自己的 AI 大模型。面对 DeepSeek、OpenAI、Claude、腾讯元宝等众多平台的 API 接口差异,开发者常常需要花费大量时间调整代码、处理密钥管理与流量调控。One API 正是在这种背景下诞生,…...
Android Settings 有线网设置界面优化
Android Settings 有线网设置界面优化 文章目录 Android Settings 有线网设置界面优化一、前言二、简单修改1、修改的EthernetSettings代码:2、有线网ip获取代码:3、AndroidManifest.xml定义有线网的Activity4、修改后界面: 三、其他1、有线网…...
正则入门到精通
一、正则表达式入门 正则表达式本质上是一串字符序列,用于定义一个文本模式。通过这个模式,我们可以指定要匹配的文本特征。例如,如果你想匹配一个以 “abc” 开头的字符串,正则表达式可以写作 “^abc”,其中 …...
微信小程序基于Canvas实现头像图片裁剪(上)
序言 嘿,打工人混迹职场这么久,图片处理肯定都没少碰。不过咱说实话,大部分时候都是直接 “抄近道”,用现成的三方组件😏。就像我,主打一个会用工具,毕竟善用工具可是咱人类的 “超能力”&…...
Spring Boot 自定义日志打印(日志级别、logback-spring.xml 文件、自定义日志打印解读)
一、Logback 在 Spring Boot 中,日志框架默认使用的是 Logback,Spring Boot 提供了对日志配置的简化 Spring Boot 默认会将日志输出到控制台,并且日志级别为 INFO 可以在 application.yaml 或 application.properties 文件中进行日志配置 …...
基于VMware的Cent OS Stream 8安装与配置及远程连接软件的介绍
1.VMware Workstation 简介: VMware Workstation(中文名“威睿工作站”)是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。…...
Ubuntu环境基于Ollama部署DeepSeek+Open-Webui实现本地部署大模型-无脑部署
Ollama介绍 Ollama是一款简单好用的模型部署工具,不仅可以部署DeepSeek,市面上开源模型大部分都可以一键部署,这里以DeepSeek为例 官网 DeepSeek 版本硬件要求 安装Ollama 环境 sudo apt update sudo apt install curl sudo apt install lsof1.命令一键安装 在官网点击…...
goto在Java中的用法
说明:goto 在一些编程语言(如C语言)中,是用来表示跳转的,即代码执行到此处跳转到对应位置继续执行。 举例 举个例子,如下,是一个双层嵌套循环。现在我需要代码在内层循环符合某条件时跳出双层…...
Vue3+Vite+TypeScript+Element Plus开发-03.主页设计与router配置
系列文档目录 Vue3ViteTypeScript安装 Element Plus安装与配置 主页设计与router配置 静态菜单设计 Pinia引入 文章目录 目录 系列文档目录 文章目录 前言 一、主页设计 二、配置代替别名 三、配置router 四、运行效果 五、参考文献 前言 本文将重点介绍如何使用…...
linux gcc
一、常用编译选项 基本编译 gcc [input].c -o [output] 示例: gcc hello.c -o hello # 将 hello.c 编译为可执行文件 hello ./hello # 运行程序 分步编译 预处理:-E(生成 .i 文件) gcc -E hello.c -o hello…...
无限滚动(Infinite Scroll)页面谷歌不收录!必须改回分页吗?
近三年,全球超过58%的网站采用无限滚动设计(数据来源:PageTraffic 2023) 谷歌官方数据显示,动态加载内容的索引失败率高达73%(Google Webmaster Report 2022),而采用纯无限滚动的页…...
出现次数超过一半的数(信息学奥赛一本通-1186)
【题目描述】 给出一个含有n(0 < n < 1000)个整数的数组,请找出其中出现次数超过一半的数。数组中的数大于-50且小于50。 【输入】 第一行包含一个整数n,表示数组大小; 第二行包含n个整数,分别是数组…...
Git相关笔记1 - 本地文件上传远程仓库
Git相关笔记 目录 Git相关笔记Git上传相关文件第一步创建一个仓库:第二步本地创建空文件夹:第三步开始在gitbush上传文件:解决外网网络连接的问题:中文文件的编码问题:参考资料 Git上传相关文件 第一步创建一个仓库&a…...
Linux_4
开始学习ssh工具 在做开发的时候,肯定不止一台服务器,那么假设每台服务器都是Linux服务器,要在服务器上操作就需要登入终端,即Terminal。ssh的作用就是可以通过一个服务器登陆上其他的服务器。 登陆到哪个服务器看到的就是哪个服务器的终端terminal。 ssh登陆 ssh user@…...
