LaTeX 极简入门:TexLive + TexStudio + VSCode 一站式配置指南
前言
在科研工作中,论文写作和排版是每个研究者必须面对的任务。然而,传统的文字处理工具(如 Word)在处理复杂公式、参考文献和多格式输出时,往往显得力不从心。LaTeX 凭借其强大的公式处理能力、灵活的参考文献管理和高质量的排版效果,成为学术界和科研领域的首选工具。
但对于初学者来说,LaTeX 的环境配置和工具选择可能会让人感到困惑。TexLive 是 LaTeX 的核心发行版,提供了完整的工具链和宏包支持;TexStudio 是一款专为 LaTeX 设计的集成开发环境,适合快速上手;而 VSCode 则凭借其强大的扩展性,成为越来越多科研工作者的选择。如何高效配置这些工具,并让它们协同工作,是提升科研效率的关键。
本文将以 TexLive + TexStudio + VSCode 为核心,详细介绍从环境搭建到高效使用的全流程。无论你是 LaTeX 新手,还是希望优化工作流的研究者,这篇指南都将帮助你快速掌握这些工具,让你的科研效率翻倍!
1、Texlive安装
1.1 Texlive 2023安装包下载
TexLive官网地址:https://tug.org/texlive/
官网下载太慢,可以使用下面的国内镜像站来加速下载。
清华大学开源镜像站:https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/
北京外国语大学开源镜像站:https://mirrors.bfsu.edu.cn/CTAN/systems/texlive/Images/
南方科技大学开源镜像站:https://mirrors.sustech.edu.cn/CTAN/systems/texlive/Images/
1.2 Texlive 2023 安装
Step1:解压下载的 iso 文件,右键 install-tl-windows.bat,以管理员身份打开;
Step2:出现如下界面,修改安装路径,并点击
Advanced
,然后选择Customize
,选择中英文语言包(节省空间),然后点击安装;
Step3:点击安装,出现下面界面则安装成功,点击关闭即可。
Tip:安装完环境配置会自动添加,若没有,可以手动添加。
1.3 测试安装是否成功
打开命令行,分别输入tex -v
, latex -v
, xelatex -v
, pdflatex - v
出现版本号证明安装成功!!!
2、TeXStudio安装与配置
2.1 TexStudio 简单介绍
TeXstudio 是一款功能强大的开源LaTeX编辑器,旨在简化LaTeX文档的编写和编辑。它提供了丰富的功能,包括语法高亮、自动补全、集成PDF查看器、拼写检查和多种编译选项,使用户能够高效地创建高质量的排版文档。
TeXstudio还支持多平台运行,适用于Windows、macOS和Linux系统。
TexStudio 官网:https://texstudio.sourceforge.net/
2.2 TeXstudio 配置
2.2.1 配置TeX Studio的三个路径
将 BibTeX、BibTeX 8-Bit、Biber 的路径设置为 TeXlive 安装路径下对应EXE文件。
2.2.2 添加行号和设置字体编码
2.2.3 设置编译器
点击构建选项,可以修改默认编译器、PDF查看器和默认文献工具等。
若写中文论文,则需修改默认编译器为XelaTeX
. 若为英文,则用PdfLaTex
。
2.3 测试是否成功
输入下述代码,运行,将会得到下述结果。 代码部分,参考博客【latex】TeXlive和TexStudio安装及使用
\documentclass[11pt]{ctexart}
\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
\usepackage{amsmath}
\floatname{algorithm}{算法}
\renewcommand{\algorithmicrequire}{\textbf{输入:}}
\renewcommand{\algorithmicensure}{\textbf{输出:}}
\begin{document}
\begin{algorithm}
\caption{用归并排序求逆序数}
\begin{algorithmic}[1] %每行显示行号
\Require $Array$数组,$n$数组大小
\Ensure 逆序数
\Function {MergerSort}{$Array, left, right$}
\State $result \gets 0$
\If {$left < right$}
\State $middle \gets (left + right) / 2$
\State $result \gets result +$ \Call{MergerSort}{$Array, left, middle$}
\State $result \gets result +$ \Call{MergerSort}{$Array, middle, right$}
\State $result \gets result +$ \Call{Merger}{$Array,left,middle,right$}
\EndIf
\State \Return{$result$}
\EndFunction
\State
\Function{Merger}{$Array, left, middle, right$}
\State $i\gets left$
\State $j\gets middle$
\State $k\gets 0$
\State $result \gets 0$
\While{$i<middle$ \textbf{and} $j<right$}
\If{$Array[i]<Array[j]$}
\State $B[k++]\gets Array[i++]$
\Else
\State $B[k++] \gets Array[j++]$
\State $result \gets result + (middle - i)$
\EndIf
\EndWhile
\While{$i<middle$}
\State $B[k++] \gets Array[i++]$
\EndWhile
\While{$j<right$}
\State $B[k++] \gets Array[j++]$
\EndWhile
\For{$i = 0 \to k-1$}
\State $Array[left + i] \gets B[i]$
\EndFor
\State \Return{$result$}
\EndFunction
\end{algorithmic}
\end{algorithm}
\end{document}
3、Vscode 安装与配置
3.1 Vscode 介绍与安装
Visual Studio Code(VSCode) 是一款由 Microsoft 开发的 免费、开源 的代码编辑器,支持 Windows、macOS 和 Linux。它具有 轻量级 的特点,同时提供 强大的扩展功能,支持多种编程语言(如 Python、C/C++、JavaScript、LaTeX 等)。VSCode 具备 智能代码补全、调试工具、Git 集成、远程开发 等功能,并可通过 插件 进一步扩展,适用于各种开发需求。
TexStudio 官网:https://code.visualstudio.com/download
推荐扩展:Chinese language、code spell checker、LaTeX Workshop (必须)
3.2 配置 json 文件
在 Vscode 设置中打开在 settings.json 进行编辑,酌情粘贴下面代码。
//------------------------------LaTeX 配置----------------------------------
"latex-workshop.latex.autoBuild.run": "never", //设置是否自动编译
"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.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": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"%DOCFILE%"
]
},
/*{
"name": "lualatex",
"command": "lualatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-shell-escape", //这个命令行在网上的Latex Workshop设置里一般没有,所以直接recipe会报错
"%DOCFILE%"
]
},*/
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
}
],
//用于配置编译链
"latex-workshop.latex.recipes": [
{
"name": "XeLaTeX",
"tools": [
"xelatex"
]
},
{
"name": "XeLaTeX*2",
"tools": [
"xelatex",
"xelatex"
]
},
{
"name": "PDFLaTeX",
"tools": [
"pdflatex"
]
},
{
"name": "PDFLaTeX*2",
"tools": [
"pdflatex",
"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"
],
//设置为onFaild 在构建失败后清除辅助文件
"latex-workshop.latex.autoClean.run": "onFailed",
//使用上次的recipe编译组合
"latex-workshop.latex.recipe.default": "lastUsed",
//用于反向同步的内部查看器的键绑定。ctrl/cmd +点击(默认)或双击
"latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
// 设置VScode内部查看生成的pdf文件
"latex-workshop.view.pdf.viewer": "tab",
//使用 SumatraPDF 预览编译好的PDF文件
/*"latex-workshop.view.pdf.viewer": "external",
//PDF查看器用于在\ref上的[View on PDF]链接
"latex-workshop.view.pdf.ref.viewer": "auto",
"latex-workshop.view.pdf.external.viewer.command": "C:/Users/Guoyi/AppData/Local/SumatraPDF/SumatraPDF.exe", //注意修改路径
"latex-workshop.view.pdf.external.viewer.args": [
"%PDF%"
],
"latex-workshop.view.pdf.external.synctex.command": "C:/Users/Guoyi/AppData/Local/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:/Vscode/Microsoft VS Code/resources/app/out/cli.js\" --ms-enable-electron-run-as-node -r -g \"%f:%l\"",
"%PDF%"
]*/
3.3 测试是否成功
新建 Tex 文件,输入下述代码,运行即可。
\documentclass[11pt]{ctexart}
\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage{algpseudocode}
\usepackage{amsmath}
\floatname{algorithm}{算法}
\renewcommand{\algorithmicrequire}{\textbf{输入:}}
\renewcommand{\algorithmicensure}{\textbf{输出:}}
\begin{document}
\begin{algorithm}
\caption{用归并排序求逆序数}
\begin{algorithmic}[1] %每行显示行号
\Require $Array$数组,$n$数组大小
\Ensure 逆序数
\Function {MergerSort}{$Array, left, right$}
\State $result \gets 0$
\If {$left < right$}
\State $middle \gets (left + right) / 2$
\State $result \gets result +$ \Call{MergerSort}{$Array, left, middle$}
\State $result \gets result +$ \Call{MergerSort}{$Array, middle, right$}
\State $result \gets result +$ \Call{Merger}{$Array,left,middle,right$}
\EndIf
\State \Return{$result$}
\EndFunction
\State
\Function{Merger}{$Array, left, middle, right$}
\State $i\gets left$
\State $j\gets middle$
\State $k\gets 0$
\State $result \gets 0$
\While{$i<middle$ \textbf{and} $j<right$}
\If{$Array[i]<Array[j]$}
\State $B[k++]\gets Array[i++]$
\Else
\State $B[k++] \gets Array[j++]$
\State $result \gets result + (middle - i)$
\EndIf
\EndWhile
\While{$i<middle$}
\State $B[k++] \gets Array[i++]$
\EndWhile
\While{$j<right$}
\State $B[k++] \gets Array[j++]$
\EndWhile
\For{$i = 0 \to k-1$}
\State $Array[left + i] \gets B[i]$
\EndFor
\State \Return{$result$}
\EndFunction
\end{algorithmic}
\end{algorithm}
\end{document}
当发现页面下方出现 √ 符号时,说明编译成功,相反,如果出现 × 符号,说明编译失败,就要找失败原因了。
预览PDF:选中 tex 文件中任意的代码,然后按Ctrl+Alt+V
,出现编译好的 pdf 页面。
3.4 latexmk 和 xelatex 编译
3.4.1 latexmk:自动化多轮编译
latexmk
是一个自动化编译工具,可智能处理多轮编译和依赖关系。
它可以自动检测是否需要运行 xelatex
、bibtex
、makeindex
等工具。默认调用 pdflatex
,但可通过配置指定 xelatex
引擎。
直接运行,自动检测当前目录下的
.tex
文件并编译(默认使用 LaTeX 引擎)
latexmk
指定输出为 PDF(默认调用
pdflatex
)
latexmk -pdf
显式指定要编译的
.tex
文件
latexmk myfile.tex
latexmk -pdf myfile.tex # 组合使用 -pdf 选项
编译后自动预览:生成结果后立即打开 PDF 预览:
latexmk -pv # 预览当前目录的主文件
latexmk -pv myfile.tex # 预览指定文件
保留必要文件:删除临时文件(保留 .tex
, .bib
, .pdf
, .bbl
, .synctex.gz
等)
latexmk -c # 清理当前目录
latexmk -c myfile.tex # 清理指定文件的临时文件
彻底清理:删除所有生成文件(包括.pdf
,只保留.tex
):
latexmk -C
编译 + 预览:生成 PDF 后直接打开预览窗口:
latexmk -pdf -pv myfile.tex
3.4.2 xelatex:单次编译、需手动多次运行
xelatex
是直接调用 XeLaTeX 引擎生成 PDF,适合手动控制编译流程。但一次编译可能无法解决交叉引用、目录和参考文献(如 BibTeX)问题。
1. 基础编译
命令 | 功能说明 |
---|---|
xelatex myfile.tex |
单次编译生成 PDF |
xelatex -synctex=1 myfile.tex |
生成同步文件(支持 PDF 反向搜索) |
xelatex -halt-on-error myfile.tex |
首次错误终止 |
2. 处理复杂文档
对于含交叉引用、参考文献的文档,需手动多次运行:
# 第一次编译
xelatex myfile.tex
# 生成参考文献(若用 BibTeX)
bibtex myfile
# 第二次编译(插入参考文献)
xelatex myfile.tex
# 第三次编译(解决交叉引用)
xelatex myfile.tex
3.4.3 总结
Latex Workshop 默认使用latexmk
编译,latexmk
是对 pdflatex
、xelatex
、lualatex
等编译命令的封装。
建议在 VSCode 中结合 LaTeX Workshop 扩展使用 latexmk
,并通过快捷键快速编译(如默认的 Ctrl+Alt+B)。对于需要深度调试的情况,临时切换到直接调用 xelatex 命令会更高效。
3.5 其他小技巧
3.5.1 正反向定位
1. 正向同步测试,即从代码定位到 pdf 页面相应位置。有以下三种方法:
使用侧边工具栏
使用右键菜单
使用快捷键
选中需要跳转的代码所在行,按Ctrl+Alt+J
,右侧就会跳转到相应行。这里的快捷键为默认设置,可自行通过上文方式设置为您想要的快捷键。
2. 反向同步测试,即从 pdf 页面定位到代码相应位置
在编译生成的 pdf 上,选中想要跳转行,鼠标左键双击或ctrl+鼠标左键单击,跳转到对应代码。
参考文章
[^1]: https://blog.csdn.net/Luan__Yu/article/details/143562703
- 感谢你赐予我前进的力量