1. 先搞清楚这套组合到底解决什么问题
如果你正在写论文,大概率经历过这种拉扯:Overleaf 打开一个上百页、带几十张图的文档,光标每动一下都要等半秒;换成本地 TeXstudio,编译是快了,但界面像上个时代的产物,补全、跳转、版本管理全靠手动。VS Code + LaTeX Workshop 这套组合,本质上是把「现代编辑器的交互体验」和「本地 TeX 发行版的编译速度」拼在一起,让你在离线状态下也能有接近 IDE 的写作手感。
但光有编辑器还不够。写论文过程中真正耗时间的往往不是敲公式,而是那些重复性的文字工作:摘要反复润色、审稿意见逐条回复、参考文献格式核对、中英文术语统一。这些环节如果能接上一个稳定的模型服务,效率提升会非常明显。问题在于,很多人在这一步卡住——要么在编辑器里到处找地方填 API Key,要么每个插件各配一套地址和密钥,改一次环境就要重新捋一遍。
这篇要做的,就是把模型服务的 Base URL 和 Key 统一收敛到 TaoToken 这一处,然后让 VS Code 里的写作链路(编译、补全、辅助润色)都指向同一个入口。你最终会得到一份可以直接粘贴的 settings.json,以及一套「编译成功 + 请求成功」的验证动作。适合的人群很明确:正在用或准备用 VS Code 写 LaTeX 论文、希望本地编译不卡顿、同时想把模型辅助能力接进写作流程的人。整条链路跑通之后,你换机器、换项目,只需要改一处配置。
先说清楚边界:TaoToken 在这里扮演的是模型服务统一入口的角色,它不替代你的编辑器,也不碰你的 LaTeX 编译过程。编译归 xelatex / latexmk,模型请求归 TaoToken,两者在 VS Code 里各走各的通道,互不干扰。理解这一点,后面的配置就不会乱。
2. 前置准备:TeX 发行版、插件与 TaoToken Key
动手之前,先把三样东西备齐,缺一样后面都会卡。
第一样是 LaTeX 发行版。Windows 上我建议直接用 TeX Live 完整版,虽然装完占 5 GB 左右、安装要等半小时,但胜在宏包齐全,写论文时不会因为缺某个 .sty 文件临时抓瞎。MiKTeX 按需下载确实省空间,可一旦网络波动,编译到一半停下来装宏包的感觉并不好受。Linux 和 macOS 用户同样推荐 TeX Live,跨平台行为一致,出问题好排查。安装时务必勾选「添加到系统 PATH」,这一步漏了,后面 VS Code 会直接报 spawn xelatex ENOENT。
装完在终端敲一句验证:
xelatex --version
能看到 XeTeX 3.141592653-... 这类输出就说明 PATH 生效了。如果提示找不到命令,先别急着往下走,回到环境变量里把 C:\texlive\2026\bin\windows(年份和路径按你的实际安装调整)加到 Path 顶部,重启终端再试。
第二样是 VS Code 插件。扩展商店里搜 LaTeX Workshop 装上,这是核心,负责编译、预览、语法高亮、正向反向搜索。LaTeX Utilities 可选,主要提供字数统计,但它依赖 texcount,后面排障章节会专门讲这个坑。
第三样是 TaoToken 的 API Key。打开 https://taotoken.net/api 对应的控制台入口,在 API Keys 页面创建一个新 Key,复制下来存好。同时记下两个东西:Base URL 统一用 https://taotoken.net/api,以及你打算用的 Model ID(比如某个通用对话模型或代码模型,具体以控制台模型列表为准)。这三件套——Base URL、Key、Model ID——后面在配置里会反复出现,先写在便签上。
注意:Key 只显示一次,创建后立刻保存。不要把它硬编码进会提交到 Git 的
.tex或项目级配置里,用户级settings.json相对安全,但更稳妥的做法是配合环境变量,后文会给写法。
到这里,前置条件就齐了。TeX Live 能编译、LaTeX Workshop 已安装、TaoToken 的 Key 在手,接下来进入真正的配置环节。
3. 可复制配置:settings.json 里的编译配方与模型入口
这一节是全文的核心,所有片段都可以直接粘贴。打开 VS Code,按 Ctrl+Shift+P,输入 Preferences: Open User Settings (JSON),进入用户级 settings.json。建议先备份原文件,再分段粘贴,避免括号不匹配导致整个文件失效。
先配编译工具和配方。这段决定 xelatex 怎么跑、latexmk 怎么串起多次编译:
{
"latex-workshop.latex.tools": [
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"%DOCFILE%"
]
},
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-xelatex",
"%DOCFILE%"
]
}
],
"latex-workshop.latex.recipes": [
{
"name": "XeLaTeX",
"tools": ["xelatex"]
},
{
"name": "latexmk (XeLaTeX)",
"tools": ["latexmk"]
}
],
"latex-workshop.latex.recipe.default": "latexmk (XeLaTeX)",
"latex-workshop.latex.autoBuild.run": "onSave",
"latex-workshop.view.pdf.viewer": "tab"
}
几个参数值得说明。-synctex=1 生成同步文件,正向反向搜索靠它;-interaction=nonstopmode 让编译遇到错误不停下来等输入,适合自动编译;-file-line-error 把报错定位到具体文件和行号,排错时非常省事。默认配方选 latexmk (XeLaTeX),是因为论文一旦带参考文献和交叉引用,需要 xelatex 跑多轮,latexmk 会自动判断轮次,省去手动按三次编译的麻烦。
接着配模型服务入口。这里的关键是把 Base URL 和 Key 统一到 TaoToken,而不是散落在各个插件里。如果你用的辅助插件支持自定义 OpenAI 兼容端点,配置形态大致如下(字段名以插件文档为准,核心是三件套齐全):
{
"your.aiAssistant.baseUrl": "https://taotoken.net/api",
"your.aiAssistant.apiKey": "${env:TAOTOKEN_API_KEY}",
"your.aiAssistant.model": "你的ModelID"
}
我更推荐用环境变量而不是明文写 Key。在系统环境变量里新建 TAOTOKEN_API_KEY,值填你复制的 Key,然后 settings.json 里用 ${env:TAOTOKEN_API_KEY} 引用。这样配置文件可以放心同步到别的机器,Key 不会跟着泄露。Base URL 固定写 https://taotoken.net/api,不要自己拼 /v1 之类的后缀,具体路径由插件或 SDK 决定。
如果你用的是 Claude Code 这类需要独立配置文件的工具,配置形态是 TOML 或 JSON,同样遵循三件套原则。以项目级配置为例:
# 示例:模型服务统一入口
base_url = "https://taotoken.net/api"
api_key = "从环境变量读取或本地填写"
model = "你的ModelID"
不管哪种形态,检查标准只有一条:Base URL、Key、Model ID 三个字段都在,且 Base URL 指向 TaoToken。配完保存,重启 VS Code 让设置生效。下一节用实际动作验证这条链路是不是真的通了。
4. 验证请求:从编译成功到模型返回 choices
配置写完不等于跑通,得用两个独立动作分别验证「编译链路」和「模型链路」。
先验证编译。新建 main.tex,内容用下面这段最小可编译示例,重点是中文和公式都能正常渲染:
%!TEX program = xelatex
\documentclass[UTF8]{ctexart}
\title{写作环境验证}
\author{你的名字}
\date{\today}
\begin{document}
\maketitle
\section{引言}
这是一段中文测试,确认字体与编码正常。
\subsection{公式}
行内公式 $E = mc^2$,独立公式如下:
\begin{equation}
\int_{0}^{1} x^2 \, dx = \frac{1}{3}
\end{equation}
\end{document}
保存文件,autoBuild.run 设为 onSave 后会自动触发编译;也可以按 Ctrl+Alt+B 手动编译。观察右下角状态栏,编译完成后右侧标签页会弹出 PDF 预览。如果中文正常显示、公式排版正确,说明 TeX Live + LaTeX Workshop + xelatex 这条链路通了。这一步和 TaoToken 无关,是纯本地能力,必须先过。
再验证模型请求。打开一个支持对话的插件面板,或者用命令行发一条最小请求。命令行方式最直观,用 curl 打一次:
curl -s https://taotoken.net/api/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TAOTOKEN_API_KEY" \
-d '{
"model": "你的ModelID",
"messages": [{"role": "user", "content": "用一句话说明什么是 LaTeX"}]
}'
成功时返回体里会有 choices 数组,第一项包含 message.content,内容是模型生成的回答。看到 choices 就说明 Base URL、Key、Model ID 三件套全部生效。如果返回 401,是 Key 问题;如果返回 404 或提示模型不存在,是 Model ID 写错;如果连接超时,检查 Base URL 是否多写了路径。
两个验证都通过后,写作链路就算一次跑通了:本地编译不依赖网络,模型辅助走 TaoToken 统一入口,互不阻塞。日常写作时,编译在保存瞬间完成,需要润色或解释报错时再调模型,节奏是顺的。
5. 常见报错排查:401、ENOENT 与 choices 缺失
配置阶段最容易撞上的就那么几类,逐个对照真实报错处理,比盲目重装高效得多。
spawn xelatex ENOENT:编译时提示找不到 xelatex。九成是 PATH 没配好,或者 VS Code 启动时没继承到系统环境变量。先在系统终端跑 xelatex --version 确认命令本身可用;如果终端能用而 VS Code 报错,说明是继承问题。解决办法有两个:一是把 TeX Live 的 bin 目录上移到 Path 顶部后重启 VS Code;二是在 settings.json 里给工具写绝对路径:
{
"name": "xelatex",
"command": "C:/texlive/2026/bin/windows/xelatex.exe",
"args": ["-synctex=1", "-interaction=nonstopmode", "-file-line-error", "-pdf", "%DOCFILE%"]
}
注意路径用正斜杠,Windows 下反斜杠在 JSON 里要转义,容易出错。
401 Unauthorized:模型请求被拒。按顺序查三处——Key 是否复制完整(首尾空格、换行都要去掉)、环境变量名是否和配置里的 ${env:...} 一致、请求头是否是 Authorization: Bearer <Key>。如果 Key 刚创建,确认没有在控制台被禁用或删除。还有一种情况是 Key 有效但请求打到了错误地址,检查 Base URL 是不是 https://taotoken.net/api,别自己加 /v1 之外的路径。
reading 'choices' 或返回体里没有 choices:这类报错通常意味着响应结构和你预期的不一样。先看完整返回体,如果是错误对象(含 error 字段),按错误信息处理;如果是空数组,检查 Model ID 是否拼错、请求体 messages 格式是否合法。有些插件会把非 200 响应也当成功解析,于是报 Cannot read properties of undefined (reading 'choices'),本质还是请求没成功,回到 401/404 的排查路径。
TeXCount failed:状态栏提示字数统计失败。LaTeX Utilities 依赖 texcount,TeX Live 完整版一般自带,MiKTeX 用户需要在包管理器里补装。装了还报错,多半是 Perl 环境问题,装个 Strawberry Perl 并设 PERL_BADLANG=0 能消掉区域设置警告。不想折腾就直接在设置里搜 countWord,关掉 LaTeX-Utilities › Count Word: Enable,字数统计用 texcount main.tex 手动跑。
中文乱码或 Undefined control sequence:确认文档类用 ctexart 或引入 ctex 宏包,编译器选 xelatex 而不是 pdflatex,文件编码保持 UTF-8(VS Code 右下角可查看)。三者缺一,中文就可能出问题。
排查时养成一个习惯:先看报错原文,再定位是编译层还是请求层。编译层的错误带 .tex 行号,请求层的错误带 HTTP 状态码,两者不会混在一起。
6. 把入口固定下来:后续换机与扩展的接入路径
链路跑通之后,真正省心的是「固定入口」带来的可迁移性。你换一台机器,装好 TeX Live 和 LaTeX Workshop,把 settings.json 同步过去,再在新机器上设一个同名环境变量 TAOTOKEN_API_KEY,整条写作链路就恢复了,不需要重新回忆每个插件在哪填 Key。
如果后面想扩展能力,比如接代码补全、接文档问答、接审稿意见整理,思路是一样的:新工具只认三件套,Base URL 指向 https://taotoken.net/api,Key 从环境变量读,Model ID 按任务选。需要看模型列表和用量,去模型对话页面;需要管理或轮换 Key,去 API Keys 页面;如果打算长期把模型辅助嵌进编码和写作流程,Coding Plan 更适合按周期使用。接入细节和字段说明以接入文档为准,遇到配置形态不确定时先查文档再动手,比反复试错快。
一个实用技巧:把 settings.json 里和模型相关的几行单独抽成一个片段文件放在 dotfiles 仓库里,换机时直接合并,编译配方和模型入口分开维护,改一处不影响另一处。论文写到后期,编译配置基本不动,模型入口可能随任务调整,这种分离能让你的环境始终保持可复现。



被折叠的 条评论
为什么被折叠?



