文章目录
一、LaTeX 简介
LaTeX(读作"Lay-tech"或"Lah-tech")是一种专业的排版系统,特别适用于生成高质量的科技和数学文档。它广泛用于学术界,特别是在撰写论文、报告、书籍以及数学公式较多的文档时。
LaTeX 的特点包括:
- 内容与格式分离:用户可以专注于文档的内容,而不必过多考虑格式和排版。
- 高质量输出:生成的文档通常具有专业的印刷品质。
- 数学公式支持:对数学符号和公式的支持非常好,能够生成复杂的数学表达式。
- 跨平台性:可以在不同的操作系统上运行,并且有丰富的扩展包(packages)可供使用,满足各种需求。
1.1 编译环境
1.1.1 TeX Live:
- TeX Live 是一个跨平台的完整的 LaTeX 发行版,支持主流的操作系统(如Windows、macOS、Linux)。
- 包含了 LaTeX 的核心程序及各种扩展包,是大多数用户选择的首选。
1.1.2 Overleaf:
- Overleaf 是一个基于 Web 的 LaTeX 编辑器,不需要在本地安装 LaTeX 发行版。
- 用户可以直接在浏览器中编辑 LaTeX 文档,并实时预览效果,非常适合团队协作和快速起步。
- https://www.overleaf.com/
1.2 TeX Live + VSCode
1.2.1 TeX Live
TeX Live 是一个跨平台的 TeX 排版系统的发行版,提供了完整的 TeX 处理工具、宏包和文档。它由 TeX Users Group (TUG) 维护,是目前最广泛使用的 TeX 发行版之一,适用于各种操作系统,包括 Windows、Mac OS 和各种 Unix/Linux 发行版。
TeX Live 的官网是:https://www.tug.org/texlive/
在中国,有多个 TeX Live 镜像网站,可以更快地下载和更新 TeX Live。以下是一些常用的国内镜像:
- 清华大学镜像站:https://mirrors.tuna.tsinghua.edu.cn/CTAN/systems/texlive/Images/
- 中国科学技术大学镜像站:https://mirrors.ustc.edu.cn/CTAN/systems/texlive/Images/
这些镜像站点提供了 TeX Live 的 ISO 文件和网络安装包,用户可以根据需要选择合适的安装方式。
以清华大学镜像站为例:
- 下载
texlive.iso
,如下图所示:
- 安装
texlive
,具体步骤如下:
(1)双击打开 texlive.iso
,运行 install-tl-windows.bat
(2)修改 Installation root
到合适安装位置,点击 Advanced
, 其中也可以修改安装地址,我们需要在 Customize
,将语言选为 Chinese、US and UK English
,可以减少内存空间占用。
(3)点击 安装
,时间可能较长请耐心等待。
1.2.2 VSCode
Visual Studio Code(简称 VSCode)是一款由微软开发的免费、开源的代码编辑器。它支持多种编程语言,提供了丰富的扩展和插件,具有调试、智能代码补全、代码重构、集成终端和版本控制等功能。VSCode 由于其轻量级、快速和强大的功能,成为了开发者中非常受欢迎的编辑器。
VSCode 的主要特点包括:
- 跨平台支持:可在 Windows、macOS 和 Linux 上运行。
- 丰富的扩展市场:可以安装各种插件和扩展来增强编辑器功能。
- 集成 Git:内置了 Git 支持,方便进行版本控制。
- 调试功能:支持多种语言的调试。
VSCode 的官方网站和下载地址是:https://code.visualstudio.com/
用户可以访问官网,根据自己的操作系统下载相应的安装包并进行安装。
1.2.3 LaTex Workshop
LaTeX Workshop 是一个 Visual Studio Code 的扩展插件,用于提供 LaTeX 编辑和编译支持。它使得在 VSCode 中使用 LaTeX 变得更加高效和便捷。LaTeX Workshop 提供了强大的功能,如实时预览、代码片段、语法高亮、自动补全、错误提示等,帮助用户更好地撰写和管理 LaTeX 文档。
LaTeX Workshop 的主要功能包括:
- 实时预览:可以在编辑 LaTeX 文档时实时查看编译后的 PDF 预览。
- 自动补全:提供 LaTeX 命令和环境的自动补全,提升编辑效率。
- 语法高亮:对 LaTeX 语法进行高亮显示,方便阅读和编辑。
- 错误提示:在编译过程中,如果出现错误,会在编辑器中进行标记,方便排查和修正。
- 代码片段:内置常用的 LaTeX 代码片段,可以快速插入常用结构。
- 多语言支持:支持多种语言的 LaTeX 文档编写。
要安装 LaTeX Workshop,可以按照以下步骤操作:
- 打开 Visual Studio Code。
- 点击左侧活动栏中的扩展图标(或者按
Ctrl+Shift+X
)。 - 在搜索框中输入 “LaTeX Workshop”。
- 找到 “LaTeX Workshop” 插件,点击 “安装”。
安装完成后,LaTeX Workshop 将自动启用,并为 LaTeX 文档提供上述功能支持。
配置 LaTeX Workshop
在 设置->配置文件->显示配置文件内容
,找到 settings.json
文件,配置下述代码即可:
"latex-workshop.latex.tools": [
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
]
},
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
}
],
"latex-workshop.latex.recipes": [
{
"name": "xelatex",
"tools": [
"xelatex"
],
},
{
"name": "pdflatex",
"tools": [
"pdflatex"
]
},
{
"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"
],
//pdf浏览器,如果用外部浏览器则用 "external"
"latex-workshop.view.pdf.viewer": "tab",
//设置 latex-workshop 的 PDF 预览程序,external 指的是外部程序,如果需要用外部程序,把上面那句注释掉,下面这段注释解除
// "latex-workshop.view.pdf.viewer": "external",
// "latex-workshop.view.pdf.ref.viewer": "external",
// "latex-workshop.view.pdf.external.viewer.command": "C:/Users/49163/AppData/Local/SumatraPDF/SumatraPDF.exe", // 注意修改SumatraPDF路径 如果复制过来路径是\记得改成/
// "latex-workshop.view.pdf.external.viewer.args": [
// "-forward-search",
// "%TEX%",
// "%LINE%",
// "-reuse-instance",
// "-inverse-search",
// "code.cmd -r -g \"%f\":%l",
// "%PDF%"
// ],
// // 配置正向、反向搜索:.tex -> .pdf
// "latex-workshop.view.pdf.external.synctex.command": "C:/Users/49163/AppData/Local/SumatraPDF/SumatraPDF.exe", // 注意修改SumatraPDF路径
// "latex-workshop.view.pdf.external.synctex.args": [
// // 正向搜索
// "-forward-search",
// "%TEX%",
// "%LINE%",
// "-reuse-instance",
// // 反向搜索
// "-inverse-search",
// "\"D:/Program Files/Microsoft VS Code/Code.exe\" \"D:/Program Files/Microsoft VS Code/resources/app/out/cli.js\" -gr %f:%l", //注意修改VSCode路径
// "%PDF%"
// ],
//自动编译tex
"latex-workshop.latex.autoBuild.run": "onSave",
//显示内容菜单:(1)编译文件;(2)定位游标
"latex-workshop.showContextMenu": true,
//显示错误
"latex-workshop.message.error.show": true,
//显示警告
"latex-workshop.message.warning.show": true,
//从使用的包中自动补全命令和环境
"latex-workshop.intellisense.package.enabled": true,
//设置为never,为不清除辅助文件
"latex-workshop.latex.autoClean.run": "never",
//设置vscode编译tex文档时的默认编译链
"latex-workshop.latex.recipe.default": "lastUsed",
// 用于反向同步的内部查看器的键绑定。ctrl/cmd +点击(默认)或双击
"latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
这个配置文件是用于 LaTeX Workshop 插件在 VSCode 中的配置,包含了工具链、编译链、文件清理、PDF 预览器和一些其他设置。以下是详细解释:
工具链配置
"latex-workshop.latex.tools": [
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
]
},
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
}
]
- 定义了三个工具:
pdflatex
、xelatex
和bibtex
。 - 每个工具都有名称 (
name
)、命令 (command
) 和参数 (args
)。 -synctex=1
用于同步 TeX 源文件和 PDF 文件。-interaction=nonstopmode
确保编译过程中遇到错误时不中断。-file-line-error
显示文件和行号的错误信息。%DOCFILE%
是一个占位符,表示要编译的文档文件。
编译链配置
"latex-workshop.latex.recipes": [
{
"name": "xelatex",
"tools": [
"xelatex"
]
},
{
"name": "pdflatex",
"tools": [
"pdflatex"
]
},
{
"name": "xelatex->bibtex->xelatex*2",
"tools": [
"xelatex",
"bibtex",
"xelatex",
"xelatex"
]
},
{
"name": "pdflatex->bibtex->pdflatex*2",
"tools": [
"pdflatex",
"bibtex",
"pdflatex",
"pdflatex"
]
}
]
- 定义了四个编译链 (
recipes
):xelatex
:只使用xelatex
编译。pdflatex
:只使用pdflatex
编译。xelatex->bibtex->xelatex*2
:先用xelatex
编译,然后用bibtex
处理参考文献,再用xelatex
编译两次。pdflatex->bibtex->pdflatex*2
:先用pdflatex
编译,然后用bibtex
处理参考文献,再用pdflatex
编译两次。
定义四条编译链是为了满足不同的编译需求,适应各种文档结构和要求。以下是对每条编译链的详细解释:
1. xelatex
{
"name": "xelatex",
"tools": ["xelatex"]
}
作用:
- 只使用
xelatex
编译 LaTeX 文档。适用于不包含参考文献或索引的简单文档。 xelatex
支持 Unicode 和 OpenType 字体,非常适合需要使用多种语言和复杂字体的文档。
2. pdflatex
{
"name": "pdflatex",
"tools": ["pdflatex"]
}
作用:
- 只使用
pdflatex
编译 LaTeX 文档。适用于不包含参考文献或索引的简单文档。 pdflatex
是传统的 LaTeX 编译器,广泛应用于各种文档中。
3. xelatex->bibtex->xelatex*2
{
"name": "xelatex->bibtex->xelatex*2",
"tools": ["xelatex", "bibtex", "xelatex", "xelatex"]
}
作用:
- 适用于包含参考文献的文档。
- 步骤:
- 使用
xelatex
编译文档,生成辅助文件。 - 使用
bibtex
处理文献引用,生成参考文献表。 - 再次使用
xelatex
编译,以更新参考文献信息。 - 再次使用
xelatex
编译,以确保所有引用和链接都正确。
- 使用
4. pdflatex->bibtex->pdflatex*2
{
"name": "pdflatex->bibtex->pdflatex*2",
"tools": ["pdflatex", "bibtex", "pdflatex", "pdflatex"]
}
作用:
- 适用于包含参考文献的文档。
- 步骤:
- 使用
pdflatex
编译文档,生成辅助文件。 - 使用
bibtex
处理文献引用,生成参考文献表。 - 再次使用
pdflatex
编译,以更新参考文献信息。 - 再次使用
pdflatex
编译,以确保所有引用和链接都正确。
- 使用
编译链的必要性
- 简单文档:对于不包含参考文献、索引或其他复杂结构的文档,单次编译 (
xelatex
或pdflatex
) 就足够了。 - 包含参考文献的文档:包含参考文献的文档需要多次编译才能正确生成引用和参考文献表。需要先生成辅助文件,再处理引用,最后更新引用信息。
- 多语言支持:
xelatex
支持 Unicode 和多语言,适用于需要多语言和复杂字体的文档。
通过定义不同的编译链,可以灵活地处理各种文档需求,确保生成的 PDF 文件内容准确无误。
文件清理配置
"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"
]
- 指定了在清理过程中要删除的辅助文件类型,例如
.aux
、.log
等。
PDF 预览器配置
"latex-workshop.view.pdf.viewer": "tab"
//"latex-workshop.view.pdf.viewer": "external",
//"latex-workshop.view.pdf.ref.viewer": "external",
//"latex-workshop.view.pdf.external.viewer.command": "C:/Users/49163/AppData/Local/SumatraPDF/SumatraPDF.exe",
//"latex-workshop.view.pdf.external.viewer.args": [
// "-forward-search",
// "%TEX%",
// "%LINE%",
// "-reuse-instance",
// "-inverse-search",
// "code.cmd -r -g \"%f\":%l",
// "%PDF%"
//]
- 设置了 PDF 预览器为 VSCode 内部标签页 (
tab
)。 - 注释掉的部分配置了外部 PDF 预览器(例如 SumatraPDF),可以根据需要启用。
其他设置
"latex-workshop.latex.autoBuild.run": "onSave",
"latex-workshop.showContextMenu": true,
"latex-workshop.message.error.show": true,
"latex-workshop.message.warning.show": true,
"latex-workshop.intellisense.package.enabled": true,
"latex-workshop.latex.autoClean.run": "never",
"latex-workshop.latex.recipe.default": "lastUsed",
"latex-workshop.view.pdf.internal.synctex.keybinding": "double-click"
latex-workshop.latex.autoBuild.run
:设置为保存时自动编译 (onSave
)。latex-workshop.showContextMenu
:显示上下文菜单。latex-workshop.message.error.show
和latex-workshop.message.warning.show
:显示错误和警告信息。latex-workshop.intellisense.package.enabled
:启用自动补全命令和环境。latex-workshop.latex.autoClean.run
:设置为从不清理辅助文件 (never
)。latex-workshop.latex.recipe.default
:默认使用最后一次使用的编译链 (lastUsed
)。latex-workshop.view.pdf.internal.synctex.keybinding
:设置内部 PDF 查看器的键绑定为双击 (double-click
)。