从零开始在 VS Code 中集成 LaTex 环境
废话-写在前面
半年多,作者经历了从LaTex->markdown->typst->markdown
的过程,最终又选择了投入LaTex的怀抱
起初作者觉得 LaTex 在各大论文投刊时十分重要(其实是觉得很有b格),所以尝试使用
但作者这种fw也写不出什么有营养的论文,又嫌弃其语法复杂,故润md
后来总感觉md单调极了,一点不好看,又润typst
在typst好看的模板下坚持了两个月,又感觉排版太粗糙,自由度不高
一番思考之下,总觉得未来能发顶刊(x,故回LaTex😎!
为什么选择LaTex
- *** 实在用不明白 Word *** (我恨
- *** 显得专业(bushi ***
- LaTex排版基本上可以为所欲为(你行你来
- 很多期刊都有LaTex的模板,方便您投😘!(IEEE、ACM、Nature等)
具体流程
壹 ~ 下载并安装textlive
编译器
作者选择清华镜像源安装,实测速度很快(至少比贵校施工速度快得多👌
打开链接 https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/
下载下图红色箭头指的即可
下载后打开,右键"以管理员身份运行"下图红色箭头所指
按下图操作即可
按下图修改高级设置后安装,它会自动配置环境变量
安装时间约半小时,趁它在安装,我们偷偷进行下一步即可。
希望你待会回来的时候是这样的,不要报错hh
贰 ~ 下载并安装 VS Code
去官网 https://code.visualstudio.com/ 下载后安装就行了,记得改安装路径,默认在C盘
叁 ~ 在 VS Code上配置LaTex环境
在扩展里下载 "LaTex Workshop"
如果是新安装VS Code的英文小白用户,建议先安装 "Chinese (Simplified)" 扩展重启后更改语言
下载完成后Ctrl + Shift + P 后,搜索关键词打开"settings.json"即可
修改下面的一些路径并粘贴代码添加到"settings.json"
"latex-workshop.latex.autoBuild.run": "onSave",//保存后自动编译
"latex-workshop.showContextMenu": true, //右键菜单显示LaTex相关的
"latex-workshop.intellisense.package.enabled": true,//启动智能感知,如包和命令补全
"latex-workshop.message.error.show": false,//禁用编译过程中显示的错误和警告消息。
"latex-workshop.message.warning.show": false,
"latex-workshop.latex.recipes": [
{
"name": "XeLaTeX",
"tools": [
"xelatex"
]
},
{
"name": "PDFLaTeX",
"tools": [
"pdflatex"
]
},
{
"name": "BibTeX",
"tools": [
"bibtex"
]
},
{
"name": "LaTeXmk",
"tools": [
"latexmk"
]
},
{
"name": "pdflatex->bibtex->pdflatex*2",
"tools": [
"pdflatex",
"bibtex",
"pdflatex",
"pdflatex"
]
},
{
"name": "xelatex->bibtex->xelatex*2",
"tools": [
"xelatex",
"bibtex",
"xelatex",
"xelatex"
]
}
],
"latex-workshop.latex.tools": [
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
]
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
]
},
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-xelatex",
"-synctex=1",
"-shell-escape",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
}
],
"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"
],
"latex-workshop.latex.autoClean.run": "onBuilt",//每次成功编译后自动清理临时文件。
"latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
"latex-workshop.intellisense.biblatexJSON.replace": {
},
"latex-workshop.view.pdf.viewer": "tab", //内部预览pdf,舒服极了
"latex-workshop.view.pdf.external.viewer.command": "D:SumatraPDF\\SumatraPDF.exe",//外部查看器,改成你自己的路径
"latex-workshop.view.pdf.external.viewer.args": [
"--unique",
"%PDF%"
],
"latex-workshop.view.pdf.external.synctex.command": "D:SumatraPDF\\SumatraPDF.exe",//外部查看器,改成你自己的路径
"latex-workshop.view.pdf.external.synctex.args": [
"-forward-search",
"%TEX%",
"%LINE%",
"-reuse-instance",
"-inverse-search",
"\"D:\\VScode\\Microsoft VS Code\\Code.exe\" \"D:\\Program Files\\Microsoft VS Code\\resources\\app\\out\\cli.js\" --ms-enable-electron-run-as-node -r -g \"%f:%l\"",
"%PDF%"
],//注意修改路径即可
"latex-workshop.view.autoFocus.enabled": true,//编译后自动将焦点转移到 PDF 预览窗口
"latex-workshop.latex.recipe.default": "lastUsed",//使用上一次使用的编译链作为默认编译方法
补充:最后一行"latex-workshop.latex.recipe.default"的可选参数可以修改为你希望的上述六个编译链中的一个
即"latex-workshop.latex.recipes"中的"XeLaTeX","PDFLaTeX"……
你也可以定义自己的编译链,不过一般这几个常用的就能满足绝大部分需求了。
测试一下吧!
创建一个"test.tex"文件,写入下面内容
\documentclass{article}
\title{Simple LaTeX Test}
\author{Your Name}
\date{\today}
\begin{document}
\maketitle
\section{Introduction}
This is a simple LaTeX test document.
\section{Math Example}
Here is an example of a mathematical equation:
\[
E = mc^2
\]
\section{Itemized List}
\begin{itemize}
\item First item
\item Second item
\item Third item
\end{itemize}
\end{document}
编译后,打开内部pdf预览,你会得到如图所示
写在后面
如果你希望实时预览,即一边写tex文件,一边看到pdf文件的更改
还记得上面配置的保存文件后自动编译嘛?
你只需要在"settings.json"里再加入这三行代码
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 3000,//ms,可以自己更改
"files.autoSaveWhenNoErrors": true,//没报错才能保存
这样即会几秒自动编译一次,更新一次pdf文件,也就能实现实时预览
(不过如果文件过长,编译一次的速度就很慢……嗯……你懂的)
更多关于LaTex Workshop的内容在https://github.com/James-Yu/LaTeX-Workshop
如果你有更好的办法实现,欢迎留言!谢谢!