TeX Live 下载与安装
方法一:下载安装包
访问 TeX Live 官网。各平台对应的安装程序如下:
- Windows:
install-tl-windows.exe(网络安装器) - Linux:
install-tl-unx.tar.gz(解压后运行install-tl脚本) - macOS:
MacTeX-年份.pkg(完整的 MacTeX 发行版)
方法二:下载iso镜像
官方下载页(ISO):https://tug.org/texlive/acquire-iso.html → 点击downloadfromanearbyCTANmirror → 下载 texlive.iso。
镜像源
下列是一些国内镜像源,点开后点击 systems → TeX Live 进行下载,Source/ 对应方法一,Images/ 对应方法二:
国内 CTAN 镜像站点列表:
- 阿里云 (Aliyun)
- 北京外国语大学 (BFSU)
- 清华大学 (TUNA)
- 中国科学技术大学 (USTC)
- 上海交通大学 (SJTUG)
- 南京大学 (NJU)
- 北京大学 (PKU)
- 腾讯云 (Tencent Cloud)
- 哈尔滨工业大学 (HIT)
- 重庆大学 (CQU)
- 吉林大学 (JLU)
- 南方科技大学 (SUSTech)
- 浙江大学 (ZJU)
(2) 运行安装程序(Windows)
无论你通过方法一(网络安装包)还是方法二(ISO 镜像)获取了安装程序,Windows 上的安装步骤是相似的。
启动安装器:
- ISO/镜像: 下载完成后,双击 ISO 或右键装载为虚拟光驱。在根目录找到
install-tl-windows.bat。 - 网络安装包: 直接运行下载的
install-tl-windows.exe。 - 重要:请右键点击安装程序,选择“以管理员身份运行”,以确保其有权限修改系统 PATH 环境变量。
- ISO/镜像: 下载完成后,双击 ISO 或右键装载为虚拟光驱。在根目录找到
更换镜像源(可选,但推荐):
- 如果你运行的是
.bat启动的完整安装器(Perl/Tk 界面),首次启动会弹出一个临时命令窗口和加载 UI,稍候片刻进入主界面。 - 若是
.exe的界面,可以在下图界面更换镜像源,点击具体镜像 Asia → China 然后选一个离你近的;如果不知道哪个好,可以选清华tuna镜像。
- 如果你运行的是

配置安装选项:
进入主安装界面后,你需要关注几个基本更改:
- 安装路径:默认路径为
C:\texlive\2025。如果 C 盘空间紧张,可以修改到其他盘符,例如D:\texlive\2025。路径中避免使用中文或空格。

- 前端组件:默认会安装 TeXworks 编辑器。如果你计划使用 VS Code,可以在组件页中取消勾选 TeXworks front end。
- PATH:新版本的 Windows 安装器默认会将 TeX Live 的
bin目录添加到系统 PATH。请确保此项已勾选。如果安装时忘记勾选,后续也可以手动运行tlmgr path add命令来修复(详见下文“验证与回滚”)。
- 安装路径:默认路径为
个性化安装(高级):
- 不熟悉时不要随意更改“目录 (Directories)”和“选项 (Options)”中的高级设置。
- 如果你想节省磁盘空间,可以点击“选择 (Selections)”下的“定制 (Customize)”,在“语言 (Languages)”标签页中,只保留“中文 (Chinese)”和“英美英文 (US and UK English)”这两个语言集合。

开始安装:
点击 安装(Install) 按钮开始安装。这个过程会从镜像源下载大量宏包,根据你的网络速度和磁盘性能,耗时可能较长(30分钟到数小时不等)。
(3) 验证是否安装成功
Windows(PowerShell)
# 1) 验证 XeLaTeX 引擎版本
xelatex -v
# 2) 验证 TeX Live 管理器版本
tlmgr --version
# 3) 确认 PATH 指向当前年份的 bin 目录
where xelatex
- 更换/修复 PATH(如未写入或曾取消)
TeX Live 官方提供tlmgr path子命令用于添加/移除系统可执行路径映射(Windows 会创建合适的“前端链接”)。示例:
tlmgr path add
# 如需撤销:
tlmgr path remove该子命令行为以《tlmgr 手册》为准。
- 回滚包版本(出现包更新问题时)
tlmgr默认保留一次备份。可用:
# 回滚所有包到最近备份
tlmgr restore --all
# 或针对单包:
tlmgr restore <pkg> <revision>macOS / Linux(bash)
# 1) 引擎版本
xelatex -v
# 2) 管理器版本
tlmgr --version
# 3) 确认 PATH(找不到命令时)
which xelatex
# 如 PATH 有误,可用:
tlmgr path addVS Codecode 中使用 LaTeX
安装 TeX Live 只是提供了底层的编译引擎和宏包,我们还需要一个现代化的编辑器来编写 .tex 文稿。VS Code 配合 LaTeX Workshop 扩展是目前最高效的组合之一。
安装 VS Code 与 LaTeX Workshop
下载 VS Code:
安装 LaTeX Workshop 扩展:
打开 VS Code,在左侧菜单栏中打开“扩展”视图,搜索并安装 LaTeX Workshop。
提示:安装完成后,只有当你打开或新建一个.tex文件时,左侧菜单栏才会出现TEX图标(LaTeX Workshop 的专属面板)。

关键配置 (settings.json)
为了获得最佳体验(尤其是中文支持和整洁的项目目录),我们需要对 LaTeX Workshop 进行配置。
打开 settings.json:
你有两种方式打开用户设置文件:
- UI 界面:通过
File → Preferences → Settings打开设置界面,然后点击右上角的“打开 settings.json”图标。 - 命令面板:使用
Ctrl+Shift+P(Windows/Linux) 或Cmd+Shift+P(macOS) 打开命令面板,输入并选择Preferences: Open User Settings (JSON)。

推荐配置 (基于 XeLaTeX):
在 settings.json 追加(或合并):
{
// ===================================================================
// 一、 预览、同步与界面
// ===================================================================
// 本区域设置VS Code中PDF预览窗口的行为、反向同步(PDF→源码)以及与编辑器的集成方式。
// 【预览】: 在哪个窗口打开编译好的 PDF
// "tab": 推荐。在 VS Code 编辑器区域内新开一个标签页显示 PDF,体验最流畅。
// "browser": 使用默认的系统浏览器打开 PDF(会脱离 VS Code 窗口)。
// "external": 使用您设置的外部 PDF 阅读器(如 SumatraPDF, Skim)。
// "external" 方式可以配合 "latex-workshop.view.pdf.external.viewer.command" 来指定具体程序。
"latex-workshop.view.pdf.viewer": "tab",
// 【同步】: PDF → 源码 (SyncTeX 反向同步)
// 设置如何从预览的 PDF 跳转回 .tex 源码的对应位置。
// "double-click": 推荐。在 PDF 预览上双击,即可跳回源码。
// "ctrl-click": 按住 Ctrl (Cmd) 并单击。如果您希望双击用于放大等其他功能,可选此项。
"latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
// 【同步】: 源码 → PDF (SyncTeX 正向同步)
// `true`: 编译完成后,PDF 预览窗口会自动滚动到当前 .tex 光标所在的源码位置。
// 这对于大型文档,只想查看刚修改部分的效果时非常有用。
"latex-workshop.synctex.afterBuild.enabled": true,
// 【预览】: PDF 默认缩放级别
// "page-width": 推荐。PDF 宽度贴合预览窗口宽度,上下滚动查看。
// "page-fit": 页面整体缩放以适应窗口大小(可能留有左右白边)。
// "auto": 自动缩放。
// 数值: 如 1.5 (代表 150%) 或 150 (也代表 150%)。
"latex-workshop.view.pdf.zoom": "page-width",
// 【预览】: PDF 滚动方式
// 0: 垂直滚动(标准,推荐)。
// 1: 水平滚动。
// 2: 环绕滚动(像 Word 一样页面并排,但垂直滚动)。
// 3: 逐页滚动(翻页,而不是平滑滚动)。
"latex-workshop.view.pdf.scrollMode": 0,
// 【预览】: PDF 页面排版
// 0: 不并排(单页显示,推荐)。
// 1: 奇数开本(从奇数页开始,模拟书本打开,右侧是第1页)。
// 2: 偶数开本(从偶数页开始,模拟书本打开,左侧是第1页)。
"latex-workshop.view.pdf.spreadMode": 0,
// 【界面】: PDF 预览标签页的位置
// "right": 推荐。自动在编辑器的右侧分栏打开 PDF,实现左源码、右PDF的经典布局。
// "active": 在当前活动的分栏打开(可能会覆盖你的 .tex 文件)。
// "primary": 强制在最左侧(主)分栏打开。
"latex-workshop.view.pdf.tab.editorGroup": "right",
// 【预览】: PDF 拖拽
// `false`: 推荐。关闭“手形工具”拖拽 PDF,使用鼠标滚轮或触控板滚动。
// `true`: 启用手形工具,按住鼠标左键拖动页面。
"latex-workshop.view.pdf.hand": false,
// 【预览】: PDF 页面裁切
// `0`: 不裁切。
// 设置一个正整数(像素)可以裁切 PDF 四周的空白边缘,使内容区域更大。
"latex-workshop.view.pdf.trim": 0,
// 【预览】: PDF 刷新过渡效果
// "fade": 推荐。重新加载 PDF 时使用淡入淡出,视觉上更平滑,减少白屏闪烁。
// "none": 立即切换,可能会闪烁。
"latex-workshop.view.pdf.reload.transition": "fade",
// 【预览】: 暗色模式反色(按需开启)
// 启用此功能可在暗色主题下将 PDF(黑字白底)反色为(白字黑底),以保护眼睛。
// "auto": 仅在 VS Code 为暗色主题时启用反色。
// "always": 总是反色。
// "compat": 尝试一种兼容性反色算法。
// "never": 从不反色。
// "latex-workshop.view.pdf.invertMode.enabled": "auto",
// 反色强度(0到1)。0.9 是一个比较柔和的设置,不会黑得刺眼。
// "latex-workshop.view.pdf.invert": 0.9,
// 【界面】: 在 .tex 文件右键菜单中显示 LaTeX Workshop 命令(如构建、查看等)
"latex-workshop.showContextMenu": true,
// 【界面】: 智能感知(IntelliSense)
// `true`: 启用包感知。插件会读取你的 `\usepackage{...}`,并仅为你已加载的包提供命令补全。
"latex-workshop.intellisense.package.enabled": true,
// 【界面】: 减少弹窗打扰
// `false`: 推荐。编译出错或警告时,不要弹出右下角的通知窗口。
// 错误和警告信息依然会在“问题(Problems)”面板和“输出(Output)”面板中详细显示,
// 这种方式干扰更小,更利于专注。
"latex-workshop.message.error.show": false,
"latex-workshop.message.warning.show": false,
"latex-workshop.message.information.show": false,
// ===================================================================
// 二、 输出与构建策略
// ===================================================================
// 本区域定义编译产物(.log, .aux, .pdf)的存放位置和自动编译的触发时机。
// 【输出】: 统一输出目录
// `%DIR%/out`: 强烈推荐!
// %DIR% 是指你主 .tex 文件(Root File)所在的目录。
// 此设置将所有编译生成的中间文件 (.aux, .log, .bcf, .toc ...) 和最终的 .pdf
// 全部放入主 .tex 文件同级的 `out` 目录中。
// 这能让你的项目根目录保持极度整洁。
"latex-workshop.latex.outDir": "%DIR%/out",
// 【构建】: 构建策略优先级
// `true`: 强制使用下面的 "配方(Recipes)"。
// 即使你的 .tex 文件中写了 "Magic Comments" (如 `%!TEX program = pdflatex`),
// 也会被忽略,从而确保始终使用你在 VS Code 中选定的构建配方,保持一致性。
"latex-workshop.latex.build.forceRecipeUsage": true,
// 【构建】: 自动构建触发时机
// "onFileChange": 推荐。只要你修改了任何依赖文件(.tex, .bib, .cls, .sty 等)并稍作停顿,
// 就会自动触发编译。预览刷新最及时,真正实现“所见即所得”。
// "onSave": 仅在保存文件时才触发编译。相对稳妥,资源占用较低。
// "never": 从不自动编译,必须手动点击“Build”按钮或使用快捷键。
"latex-workshop.latex.autoBuild.run": "onFileChange",
// 【构建】: PDF 监视延迟
// 当 PDF 文件发生变化时(例如编译生成了新 PDF),等待 400 毫秒后再通知 VS Code 刷新。
// 这可以防止因 PDF 写入尚未完成而导致的预览错误。
// 如果你的项目非常大,或者放在同步网盘(如 OneDrive, Dropbox)上,导致写入延迟,
// 可以适当调高此数值,例如 800 或 1000。
"latex-workshop.latex.watch.pdf.delay": 400,
// 【构建】: 文件监视轮询(按需开启)
// `false`: 默认。使用系统提供的文件事件监听。
// `true`: 启用轮询。即插件会每隔一段时间主动检查文件是否变化。
// 仅在特定环境(如 WSL2 早期版本、网络驱动器、某些 Docker 容器)下,
// 默认的文件监听(onFileChange)失效时,才需要开启此项。开启后 CPU 占用会略高。
// "latex-workshop.latex.watch.usePolling": true,
// ===================================================================
// 三、 Root 识别(多文件工程)
// ===================================================================
// 本区域帮助插件在大型项目中(如书籍、论文)正确找到“主” .tex 文件。
// 【Root】: `subfiles` 包支持
// `true`: 启用。如果你使用了 `subfiles` 包来管理子文档(如 `chapter1.tex`),
// 当你打开 `chapter1.tex` 并点击编译时,插件能智能地将其作为独立文档编译,
// 而不是去编译整个项目的主文件。
"latex-workshop.latex.rootFile.useSubFile": true,
// 【Root】: 自动查找 Root 文件
// `true`: 推荐。当打开一个 .tex 文件时,插件会根据下面的 `include` 和 `exclude` 规则
// 自动向上查找主文件(Root File),而不会弹窗询问“请选择主文档”。
"latex-workshop.latex.rootFile.doNotPrompt": true,
// 【Root】: 搜索 Root 文件的包含规则
// 告诉插件,只有匹配 `**/*.tex` (任意目录下的 .tex 文件) 才可能是主文件。
"latex-workshop.latex.search.rootFiles.include": [
"**/*.tex"
],
// 【Root】: 搜索 Root 文件的排除规则
// 告诉插件在查找主文件时,忽略这些目录。
// `out/**`: 必须排除!防止插件误把 `out` 目录中的 .tex 文件(如果有)当成主文件。
// 其他的是常见的版本控制、依赖和历史记录目录。
"latex-workshop.latex.search.rootFiles.exclude": [
"**/.git/**",
"**/node_modules/**",
"**/.history/**",
"**/.vscode/**",
"out/**"
],
// ===================================================================
// 四、 工具链(Tools)定义
// ===================================================================
// 本区域定义了可以调用的 *单个* 命令行工具。
// 它们是构成第五部分“配方(Recipes)”的基础模块。
//
// 占位符说明:
// %DIR%:主 .tex 所在目录 (绝对路径)
// %DOC%:主 .tex 的完整路径 (不含 .tex 扩展名)
// %DOCFILE%:主 .tex 的文件名 (不含 .tex 扩展名)
// %OUTDIR%:上面 "latex-workshop.latex.outDir" 定义的输出目录 (例如 %DIR%/out)
"latex-workshop.latex.tools": [
// ---- 1. latexmk (推荐的构建方式) ----
// latexmk 是一个 Perl 脚本,它能自动处理编译所需的一切:
// 1. 自动检测是否需要多次编译(以确保引用、目录正确)。
// 2. 自动检测是否需要调用 bibtex/biber (处理文献)。
// 3. 自动检测是否需要调用 makeindex/makeglossaries (处理索引/术语)。
{
"name": "latexmk (xelatex)", // xelatex:对中文(CJK)和现代字体(OTF/TTF)支持最好
"command": "latexmk",
"args": [
"-synctex=1", // 生成 SyncTeX 文件,用于正反向同步
"-interaction=nonstopmode", // 编译出错时不要停下(而是继续尝试编译),这在自动构建时(onFileChange)尤其重要
"-file-line-error", // 在日志中输出 "file:line:error" 格式,方便 VS Code 解析并跳转到错误
"-xelatex", // 指定后端引擎为 xelatex
"-outdir=%OUTDIR%", // 【关键】告诉 latexmk 将 *所有* 输出文件(.pdf, .log, .aux...)都放入 out 目录
"%DOC%" // 要编译的主文档(无扩展名)
]
},
{
"name": "latexmk (pdflatex)", // pdflatex:传统引擎,编译速度快,但对中文和新字体支持不佳
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf", // 指定后端引擎为 pdflatex
"-outdir=%OUTDIR%",
"%DOC%"
]
},
{
"name": "latexmk (lualatex)", // lualatex:现代引擎,Unicode支持好,并集成了 Lua 脚本能力
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-lualatex", // 指定后端引擎为 lualatex
"-outdir=%OUTDIR%",
"%DOC%"
]
},
{
// 【特殊】: 当你需要使用 minted (代码高亮) 或 gnuplottex 等需要调用外部程序的包时,
// 必须开启 -shell-escape 选项。
// 警告:这允许 .tex 文件执行任意 shell 命令,请确保你的文档来源可靠。
"name": "latexmk (xelatex + shell-escape)",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-xelatex",
"-shell-escape", // 【关键】允许执行外部命令 (如 pygmentize)
"-outdir=%OUTDIR%",
"%DOC%"
]
},
// ---- 2. 单发引擎 (用于调试) ----
// 这些工具 *只编译一次*。它们无法自动处理文献或复杂的交叉引用。
// 主要用于快速检查单次编译的日志,或者作为“配方”中的一个步骤。
// 注意:它们的输出目录参数是 -output-directory=... (与 latexmk 的 -outdir=... 不同)
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-output-directory=%OUTDIR%", // 【关键】注意参数名不同
"%DOC%"
]
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-output-directory=%OUTDIR%",
"%DOC%"
]
},
{
"name": "lualatex",
"command": "lualatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-output-directory=%OUTDIR%",
"%DOC%"
]
},
// ---- 3. 辅助工具 (文献/索引/术语) ----
// 这是使用 `outDir` 时 *必须* 的设置!
// 因为 xelatex/pdflatex 把 .aux, .glo, .idx 等辅助文件生成在了 %OUTDIR% (即 out 目录) 中。
// 我们必须在 "args" 中明确告诉 biber/bibtex/makeglossaries
// 去 out 目录中查找辅助文件,否则它们在根目录将找不到。
{
"name": "biber", // 用于 BibLaTeX
"command": "biber",
"args": [
// 【关键】Biber 需要读取 %OUTDIR% 中的 .bcf 文件
// 参数 %OUTDIR%/%DOCFILE% 会被 Biber 自动识别为 %OUTDIR%/%DOCFILE%.bcf
"%OUTDIR%/%DOCFILE%"
]
},
{
"name": "bibtex", // 用于 BibTeX (较老)
"command": "bibtex",
"args": [
// 【关键】BibTeX 需要读取 %OUTDIR% 中的 .aux 文件
"%OUTDIR%/%DOCFILE%"
]
},
{
"name": "makeglossaries", // 用于 glossaries 包(术语表)
"command": "makeglossaries",
"args": [
// 【关键】makeglossaries 需要读取 %OUTDIR% 中的 .glo 或 .acn 文件
"%OUTDIR%/%DOCFILE%"
]
},
{
"name": "makeindex", // 用于 makeidx 包(索引)
"command": "makeindex",
"args": [
// 【关键】makeindex 需要读取 %OUTDIR% 中的 .idx 文件
"%OUTDIR%/%DOCFILE%"
]
},
// ---- 4. 备选方案:tectonic (现代引擎) ----
// Tectonic 是一个集成的、现代的 TeX 引擎,它会自动下载缺失的包(类似 Cargo/NPM)。
// 它不依赖 latexmk,自己就能处理多轮编译和 BibTeX。
// 适合用于需要“零配置、快速出 PDF”的场景。
{
"name": "tectonic (basic)",
"command": "tectonic",
"args": [
"--synctex",
"--keep-logs",
"--keep-intermediates",
"--outdir", // Tectonic 的输出目录参数
"%OUTDIR%",
"%DOC%.tex" // Tectonic 需要带 .tex 扩展名
]
},
// ---- 5. 备选方案:arara ----
// arara 是一个声明式的构建工具。你需要在 .tex 文件的头部
// 用 "magic comments" 来指定构建规则 (e.g., % arara: xelatex)。
// arara 会读取这些指令并执行。
{
"name": "arara",
"command": "arara",
"args": [
"--verbose",
"--log",
"--working-directory", // 告诉 arara 在哪个目录执行
"%DIR%",
"%DOC%.tex" // 告诉 arara 要处理哪个文件
]
}
],
// ===================================================================
// 五、 配方(Recipes)组合
// ===================================================================
// 本区域将上面定义的“工具(Tools)”组合成可执行的“配方(Recipes)”。
// 这才是我们日常在 VS Code 左侧 LaTeX 面板中点击“Build”时真正选择的东西。
"latex-workshop.latex.recipes": [
// ---- 推荐:使用 latexmk 的配方 (最省心) ----
// 它们都只包含一个工具,因为 latexmk 已经“全自动”处理了所有事情。
{
"name": "latexmk: xelatex(推荐)",
"tools": [
"latexmk (xelatex)" // 对应上面 Tools 定义的 name
]
},
{
"name": "latexmk: pdflatex",
"tools": [
"latexmk (pdflatex)"
]
},
{
"name": "latexmk: lualatex",
"tools": [
"latexmk (lualatex)"
]
},
// ---- 特殊场景:需要 shell-escape (例如 minted) ----
{
"name": "latexmk: xelatex(shell-escape)",
"tools": [
"latexmk (xelatex + shell-escape)"
]
},
// ---- 多步配方示例:术语表 (当 latexmk 无法自动处理时) ----
// 这是一个多步骤配方,它演示了“工具”的组合:
// 1. 运行 latexmk (xelatex) 第一次,生成 .glo 等文件。
// 2. 运行 makeglossaries 处理 .glo 文件。
// 3. 再次运行 latexmk (xelatex) 以包含术语表。
// 注意:如果你的 latexmk 配置正确(有 .latexmkrc),这一步通常不是必需的,
// 因为 "latexmk (xelatex)" 配方自己就能处理。这只是一个示例。
{
"name": "latexmk → makeglossaries → latexmk",
"tools": [
"latexmk (xelatex)",
"makeglossaries",
"latexmk (xelatex)"
]
},
// ---- 多步配方示例:索引 (当 latexmk 无法自动处理时) ----
{
"name": "latexmk → makeindex → latexmk",
"tools": [
"latexmk (xelatex)",
"makeindex",
"latexmk (xelatex)"
]
},
// ---- 手动配方 (用于演示或调试) ----
// 模拟不使用 latexmk 时的“手动四步法”:
// 1. xelatex (生成 .aux)
// 2. biber (读取 .aux,生成 .bbl)
// 3. xelatex (读取 .bbl,插入文献引用)
// 4. xelatex (再次运行,确保页码和引用跳转正确)
{
"name": "手动:xelatex → biber → xelatex×2",
"tools": [
"xelatex",
"biber",
"xelatex",
"xelatex"
]
},
{
"name": "手动:pdflatex → bibtex → pdflatex×2",
"tools": [
"pdflatex",
"bibtex",
"pdflatex",
"pdflatex"
]
},
// ---- 单次编译配方 (用于极速调试) ----
// 仅运行一次引擎,用于查看日志、定位语法错误。
{
"name": "单次:xelatex",
"tools": [
"xelatex"
]
},
{
"name": "单次:pdflatex",
"tools": [
"pdflatex"
]
},
{
"name": "单次:lualatex",
"tools": [
"lualatex"
]
},
// ---- 备选引擎配方 ----
{
"name": "tectonic(快速出活)",
"tools": [
"tectonic (basic)"
]
},
{
"name": "arara(按文档头部规则)",
"tools": [
"arara"
]
}
],
// 【构建】: 默认配方
// "lastUsed": 推荐。VS Code 会自动记住你上次用于这个项目的配方。
// "first": 使用上面 `recipes` 列表中的第一个(即 "latexmk: xelatex(推荐)")。
// 你也可以强制指定一个 name,例如: "latexmk: xelatex(推荐)"
"latex-workshop.latex.recipe.default": "lastUsed",
// ===================================================================
// 六、 自动清理(Clean)
// ===================================================================
// 本区域设置如何清理因 `outDir` 而产生在 `out` 目录中的编译中间文件。
// 【清理】: 自动清理时机
// "onBuilt": 推荐。每次 *成功* 编译后,自动清理中间文件(.log, .aux 等)。
// 这能确保 `out` 目录始终只包含最新的 .pdf 和 .synctex.gz。
// "onFailed": 编译失败时才清理。
// "never": 从不自动清理,需要手动执行 "Clean up auxiliary files" 命令。
"latex-workshop.latex.autoClean.run": "onBuilt",
// 【清理】: 清理方法
// "glob": 使用下面的 `fileTypes` 列表来匹配要删除的文件。
// "latexmk": 使用 `latexmk -c` 命令来清理(如果使用 latexmk,这也是个好选择)。
"latex-workshop.latex.clean.method": "glob",
// 【清理】: 要清理的文件类型(Glob 模式)
// 这是一个非常全面的清理列表,覆盖了 LaTeX、BibTeX/Biber、MakeIndex、
// Glossaries、Beamer 等生成的几乎所有中间文件。
// 注意:这里的文件路径是相对于 `outDir` (即 `out` 目录) 的。
"latex-workshop.latex.clean.fileTypes": [
// LaTeX 基础
"*.aux", // 辅助文件(交叉引用)
"*.log", // 日志文件
"*.toc", // 目录
"*.lof", // 图表目录
"*.lot", // 表格目录
"*.out", // 大纲 (hyperrref)
"*.fls", // (latexmk) 使用的文件列表
"*.fdb_latexmk", // (latexmk) 数据库
"*.synctex(busy)", // SyncTeX 锁定文件
"*.synctex.gz(busy)",
// --- 关于 *.synctex.gz 的说明 ---
"*.synctex.gz", // SyncTeX 文件(保留它才能进行正反向同步)
// 注意:此列表包含了 .synctex.gz,但不用担心。
// 因为 `autoClean.run` 设为 `onBuilt`(成功后清理),
// 插件会智能地保留最新生成的 .pdf 和 .synctex.gz 文件(因为它们是“构建产物”),
// 只清理旧的或无关的辅助文件。
// 结论:保持此设置是安全的,且能实现同步。
// 参考文献 (BibTeX/Biber)
"*.bbl", // 编译后的文献列表
"*.bcf", // (biber) 控制文件
"*.blg", // 文献编译日志
"*.run.xml", // (biber)
// 索引 (MakeIndex)
"*.idx", // 索引原始数据
"*.ind", // 编译后的索引
"*.ilg", // 索引编译日志
"*.ist", // 索引样式
// 术语表 (Glossaries)
"*.acn",
"*.acr",
"*.alg",
"*.glg",
"*.glo",
"*.gls",
// 幻灯片/演示 (Beamer)
"*.snm", // (beamer)
"*.nav", // (beamer)
"*.vrb", // (beamer)
// 其他引擎中间件
"*.xdv", // (xelatex)
// minted 临时目录
"_minted-*/**", // 匹配 _minted-XXX 目录下的所有文件
"_minted-*/", // 匹配 _minted-XXX 目录本身
// 额外常见
"*.auxlock" // 锁定文件
],
// ===================================================================
// 七、 语法检查(Linting)
// ===================================================================
// 本区域使用 ChkTeX 工具实时检查你的 .tex 源码,发现潜在的排版问题。
// 【检查】: 启用 ChkTeX
// `true`: 启用。你必须已通过 TeX Live (tlmgr install chktex) 或 MiKTeX
// 或包管理器 (brew install chktex) 安装了 chktex 可执行程序。
"latex-workshop.linting.chktex.enabled": true,
// 【检查】: 启用 lacheck(另一个较老的检查工具,一般不需要)
"latex-workshop.linting.lacheck.enabled": false,
// 【检查】: 触发时机
// "onType": 推荐。在你输入时实时检查,问题会立刻出现在“问题”面板。
// "onSave": 保存时才检查。
"latex-workshop.linting.run": "onType",
// 【检查】: ChkTeX 参数
// (可选)你可以在项目根目录放一个 `.chktexrc` 文件来定义检查规则。
// 下面的参数是示例,例如 `-q` (安静模式), `-I0` (不显示欢迎信息)。
// "latex-workshop.linting.chktex.exec.args": ["-q", "-I0"],
// ===================================================================
// 八、 格式化(Formatting)
// ===================================================================
// 本区域设置如何使用 `latexindent` 工具来自动格式化(排版)你的 .tex 源码。
// 【格式化】: 使用 latexindent
// 必须安装 `latexindent`。它是一个 Perl 脚本,通常随 TeX Live 完整版附带。
// Windows 用户可能需要单独安装 Perl (如 Strawberry Perl)。
"latex-workshop.formatting.latex": "latexindent",
// 【格式化】: latexindent 路径
// "latexindent": 默认,假设它在你的系统 PATH 中。
// 如果 VS Code 找不到,请改为绝对路径,例如:
// "C:/texlive/2024/bin/windows/latexindent.exe"
"latex-workshop.formatting.latexindent.path": "latexindent",
// 【格式化】: latexindent 参数
// 这是最关键的设置:
"latex-workshop.formatting.latexindent.args": [
"-c", // 告诉 latexindent 加载配置文件
"%DIR%/", // 【关键】指定查找配置文件的目录为项目根目录 (%DIR%)。
// 这样 latexindent 就会自动加载你项目中的 `.latexindent.yaml`
// 或 `latexindent.yaml` 来实现项目级自定义格式。
"%TMPFILE%", // 这是 VS Code 传递给格式化器的标准占位符,代表当前文件
"-y=defaultIndent: '%INDENT%'" // 【关键】覆盖 latexindent 的默认缩进设置,
// 强制它使用 VS Code 编辑器当前的缩进设置(如:2个空格或4个空格的Tab)
// 保持团队和个人配置一致。
],
// ===================================================================
// 九、 词数统计(Word Count)
// ===================================================================
// 本区域使用 `texcount` 工具来统计论文字数。
// 【统计】: 触发时机
// "onSave": 推荐。每次保存时自动统计,并在 VS Code 状态栏显示总字数。
// "off": 关闭自动统计(你仍可右键菜单或命令面板手动运行)。
"latex-workshop.texcount.autorun": "onSave",
// 【统计】: texcount 路径(如果不在 PATH 中,请指定绝对路径)
// "latex-workshop.texcount.path": "texcount",
// 【统计】: texcount 参数
"latex-workshop.texcount.args": [
"-merge", // 合并所有被 `\include` 或 `\input` 的子文件
"-inc", // 允许 `\include` 和 `\input`
"-total", // 仅显示总数(否则会显示详细分类)
// **处理中文文档时,强烈建议添加以下参数:**
"-ch", // 启用中文字符统计 (texcount v3.0+),这对中文用户至关重要
"-utf8" // 明确指定 UTF-8 编码,确保中文字符正确计数
],
// ===================================================================
// 十、 智能感知与大纲
// ===================================================================
// 本区域增强 .tex 文件的编辑体验,如自动补全、悬浮提示和大纲视图。
// 【感知】: 智能感知刷新策略
// `true`: 推荐。更积极地监视文件变化(如 `\input` 的文件),并更新补全索引。
// 这使得在多文件项目中,你在 `chapter1.tex` 中定义的新 `\label`
// 能更快地在 `main.tex` 中被补全。
"latex-workshop.intellisense.update.aggressive.enabled": true,
// 积极刷新的延迟(毫秒)。
"latex-workshop.intellisense.update.delay": 800,
// 【感知】: 悬浮预览
// `true`: 鼠标悬浮在数学公式(如 $...$)上时,显示渲染后的公式预览图。
"latex-workshop.hover.preview.enabled": true,
// `true`: 鼠标悬浮在引用(如 `\ref{fig:1}`)上时,显示被引用的图/表/章节的预览。
"latex-workshop.hover.ref.enabled": true,
// `true`: 鼠标悬浮在文献(如 `\cite{knuth}`)上时,显示该文献的 BibTeX 条目信息。
"latex-workshop.hover.citation.enabled": true,
// 【感知】: 回车键绑定
// `true`: 推荐。增强回车键的功能。
// 例如,在 `itemize` 环境中输入 `\item` 后按回车,会自动补全下一个 `\item`。
// 如果这与你的输入法或其它插件(如 Vim)冲突,可以设为 `false`。
"latex-workshop.bind.enter.key": true,
// 【大纲】: 启用 VS Code 侧边栏的大纲视图
"latex-workshop.view.outline.enabled": true,
// 【大纲】: 在大纲中显示这些层级的章节
"latex-workshop.view.outline.sections": [
"part",
"chapter",
"section",
"subsection",
"subsubsection",
"paragraph"
],
// 【大纲】: 在大纲中显示浮动体(图、表)和标签
"latex-workshop.view.outline.floats.enabled": true,
// ===================================================================
// 十一、 外部依赖查找
// ===================================================================
// 本区域帮助插件找到 *不在* 你当前项目文件夹中的文件(例如系统字体、全局 .bib 库)。
// 【依赖】: 使用 kpsewhich 查找 .bib
// `true`: 允许插件使用 `kpsewhich` (TeX 发行版自带的搜索工具)
// 来查找那些在 TeX 系统路径中(但不在项目里)的 .bib 文件。
"latex-workshop.kpsewhich.bibtex.enabled": true,
// 【依赖】: 使用 kpsewhich 查找 .cls/.sty
// `true`: 允许插件使用 `kpsewhich` 查找系统路径中的类文件和样式文件。
"latex-workshop.kpsewhich.class.enabled": true,
// 【依赖】: 手动指定 .bib 目录
// 如果你有一个全局的、私人的 .bib 数据库(例如放在 `/Users/Me/MyBibs`),
// 但它又不在 TeX 系统路径中,你可以在这里手动添加它。
// "latex-workshop.latex.bibDirs": ["/绝对路径/到/你的/bib目录"],
// ===================================================================
// 十二、 VS Code 编辑器配合(可选)
// ===================================================================
// 本区域确保 VS Code 正确识别 LaTeX 相关文件类型。
// 【识别】: 文件关联
// 确保 VS Code 知道 .tex, .cls, .sty 文件应使用 "latex" 语法高亮
// (并激活 LaTeX Workshop 插件),.bib 文件应使用 "bibtex" 语法高亮。
// 尽管 VS Code 通常能自动识别,但这里显式声明可以作为兜底。
"files.associations": {
"*.tex": "latex",
"*.cls": "latex",
"*.sty": "latex",
"*.bib": "bibtex"
}
}快速自测
Hello, XeLaTeX(新建 main.tex):
\documentclass{ctexart} % 中文友好
\begin{document}
你好,\LaTeX!这是 XeLaTeX 自测。我是泪花花。
\end{document}
在 VS Code 命令面板(Ctrl+Shift+P)中运行 Build LaTeX project(或点击状态栏的 TeX 徽章选择默认的 latexmk: xelatex(推荐) 配方)执行构建。
如果一切配置正确,VS Code 应该会自动在右侧标签页打开 main.pdf 预览,并正确显示中文字符和数学公式。
如果构建失败,请首先查看 VS Code 底部的“问题 (Problems)”和“输出 (OUTPUT)”面板,并检查 LaTeX Workshop 提供的编译日志(可在 TeX 侧边栏中找到 View LaTeX compiler log)。
1 条评论
言简意赅