首先,context 没有你给的那些命令行参数。
其次,TeXLive 2025 的 ConTeXt 默认用的是 LuaMetaTeX,它不带 kpathsea 库,所有的第三方模块都必须手动安装(包括 tikz、pgfplots 等),否则就会找不到相关文件,用 LuaTeX 的版本才行。因为我没有 TeX Studio,不知道你是如何成功编译的。不过你可以查看输出的 PDF 文件,看看究竟是哪个版本。
最后,LaTeX Workshop 需要找到主文件(即 root file,见 https://github.com/James-Yu/LaTeX-Workshop/wiki/Compile#the-root-file),主要是找到 \documentclass
这个命令,这在 ConTeXt 中是没有的。
只要解决上面这三个问题就行了。
修改 setting.json
:
{
"latex-workshop.latex.tools": [
{
"name": "context-luatex",
"command": "context",
"args": [
"--synctex",
"--nonstopmode",
"--luatex",
"%DOC%"
],
"env": {}
},
],
"latex-workshop.latex.recipes": [
{
"name": "context (luatex)",
"tools": [
"context-luatex"
]
},
]
}
然后用 magic comment 设置主文件(注意第一行):
% !TEX root = main.tex
%命令行编译: context --luatex main
\usemodule[tikz]
\startTEXpage[offset=2pt]
\def\mygrid#1{
\fill [gray!60] (0,0) rectangle (#1,#1);
\draw [white,thick] (0,0) grid (#1,#1);
\foreach \x in {1,...,#1}
{
\node at (0,\x) [left] {$\x$};
\node at (\x,0) [below] {$\x$};
}
\node at (0,0) [below left] {$0$};
}
\starttikzpicture[every node/.append style={scale=.5}]
\mygrid{3}
\stoptikzpicture
\CONTEXT{} -- \LUATEX
\stopTEXpage
然后点击 context (luatex)
即可。
问 如何为VSC的LaTeX WorkShop插件添加ConTeXt编译工具?