2025-04-03 Latex学习1——本地配置Latex + VScode环境

news2025/5/11 20:30:48

文章目录

  • 1 安装 Latex
  • 2 安装 VScode
  • 3 配置环境
    • 3.1 汉化 VScode
    • 3.2 安装 latex 插件
    • 3.3 配置解释
  • 4 编译示例
  • 5 加快你的编译
    • 5.1 取消压缩
    • 5.2 使用 PDF 代替图片
  • 6 参考文章

1 安装 Latex

本文配置环境:

  • Windows11
  1. 打开清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/,下载 texlive.iso 文件。
image-20250403014514681
  1. 使用资源管理器打开。
image-20250403014807757
  1. 右键“install-tl-windows.bat”文件,选择以管理员身份运行(进行安装),需等待一会儿。
image-20250403015801578
  1. 进行如下配置:

    • installation root:修改安装路径。
    • 安装 TeXworks 前端:取消勾选(使用 VScode 就不用这个)。

    设置完成后点击安装。

image-20250403020125123
  1. 点击键盘上的菜单按键,输入“pow”,打开 Windows PoeweShell。

    输入命令 “latex”,检查是否安装成功。

image-20250403020436968 image-20250403020534047

2 安装 VScode

  1. 打开 VScode 官网:https://code.visualstudio.com/,下载安装包。
image-20250403020642486
  1. 运行安装包,勾选“创建桌面快捷方式”和“添加到系统 PATH”。

    安装路径自行修改(严禁路径含中文或空格)。

image-20250403021117253 image-20250403021132885

3 配置环境

3.1 汉化 VScode

  1. 打开 VScode,点击左侧插件图标,搜索“chinese”,安装汉化插件。
image-20250403021348922
  1. 安装完成后,点击重启,启用汉化。
image-20250403021502864

3.2 安装 latex 插件

  1. 点击左侧插件图标,搜索“latex”,安装“LaTeX Workshop”插件。
image-20250403021609172
  1. 点击左下角设置按钮,选择设置,打开设置面板。
image-20250403021858105
  1. 点击右上角文件按钮,打开设置的 json 配置文件。
image-20250403021952462
  1. 将以下代码拷贝到 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 配置解释

  1. 编译输出路径

    这里设置为当前目录下的 “./build” 文件夹。设置为空则是同目录。

    // 输出路径
    "latex-workshop.latex.outDir": "./build",
    
  2. 编译工具命令

    定义了单个工具,具体内容看注释。参考文档: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%",
            ]
        }
    ],
    
  3. 编译工具链

    定义编译工具链,由一个或多个工具组成。在插件中显示如下

    image-20250403023341603
    "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):交叉引用可能不正确。
  4. 文件清理

    编译过程中,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",
    
  5. 自动编译

    可以选择在文件内容更改时或保存文件时自动编译。

    文件较大时,编译时间会很长,个人不习惯自动编译,因此选择 never。

    // 使用上一个编译组合
    "latex-workshop.latex.recipe.default": "lastUsed",
    
    // 设置是否自动编译
    "latex-workshop.latex.autoBuild.run": "never",
    
  6. 反向定位

    设置从 pdf 到 tex 文件的反向定位方式,个人习惯鼠标双击定位。

    // 用于反向同步的内部查看器的键绑定。ctrl/cmd +点击(默认)或双击
    "latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
    

​ 上述所有内容可直接在用户设置中搜索对应内容配置,并查看相关介绍。以反向定位为例:

image-20250403030453482

4 编译示例

  1. 创建文件夹 test,使用 VScode 打开该文件夹。
  2. 新建 “new.tex” 文件,输入如下内容。
image-20250403030740399
\documentclass{article} 

\begin{document}

hello world!

\end{document}
  1. 进入 TEX 插件页面,选择编译方式,点击编译。这里选择 LaTeXmk。选择 XeLaTeX 或 PDFLaTeX 也可。

    若左侧没有 TEX 插件栏,新建 tex 文件即可显示。

image-20250403030949064
  1. 回到文件页面,可看到当前目录下新建了 ./build 文件夹,编译的 pdf 放在该目录中。右上角点击双栏按钮可在右侧查看编译后的 pdf。

    说明:“new.synctex.gz” 存放反向编译内容,删除后不可以双击 pdf 定位到对应 tex 位置。

image-20250403031151463
  1. 编译一次后,可点击左上角编译按钮进行快速编译,选择的编译方式由如下设置决定:

    // 使用上一个编译组合
    "latex-workshop.latex.recipe.default": "lastUsed",
    
image-20250403031742616

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博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【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) &#xff…

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 安装目…

Linux C++编译及g++使用操作

编译的步骤 编译选项参数 编译生成库文件 静态库 动态库 运行可执行文件 静态库由于已经包含了链接的文件所以可以直接执行;动态库方式由于是运行时链接,所以需要指定链接的路径;

【Android】界面布局-线性布局LinearLayout-例子

线性布局(LinearLayout)是一种重要的界面布局中,也是经常使用到的一种界面布局 • 在线性布局中,所有的子元素都按照垂直或水平的顺序在界面上排列 ➢如果垂直排列,则每行仅包含一个界面元素 ➢如果水平排列&…

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实现头像图片裁剪(上)

序言 嘿,打工人混迹职场这么久,图片处理肯定都没少碰。不过咱说实话,大部分时候都是直接 “抄近道”,用现成的三方组件😏。就像我,主打一个会用工具,毕竟善用工具可是咱人类的 “超能力”&…

基于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 四、运行效果 五、参考文献 前言 本文将重点介绍如何使用…

无限滚动(Infinite Scroll)页面谷歌不收录!必须改回分页吗?

近三年,全球超过58%的网站采用无限滚动设计(数据来源:PageTraffic 2023) 谷歌官方数据显示,动态加载内容的索引失败率高达73%(Google Webmaster Report 2022),而采用纯无限滚动的页…

Git相关笔记1 - 本地文件上传远程仓库

Git相关笔记 目录 Git相关笔记Git上传相关文件第一步创建一个仓库:第二步本地创建空文件夹:第三步开始在gitbush上传文件:解决外网网络连接的问题:中文文件的编码问题:参考资料 Git上传相关文件 第一步创建一个仓库&a…

如何计算财富自由所需要的价格?

写在前面:​【财富自由计算器】已上线,快算算财富自由要多少​ 多少钱,才能实现你的财富梦想? 需要多少,才能实现财务安全、财务独立,甚至财务自由? 看到结尾,你会很清楚地看到&…