如何安装Tex Live,这里就不做介绍了,搜索引擎搜索一下应该就能搜索到。
以下内容分为两部分,第一个部分就是VsCode配置Latex编译环境,第二个部分就是指定生成文件的输出目录。
VsCode配置Latex编译环境
在扩展超市中下载LatexWorkShop扩展
写扩展的配置
先打开全局的settings.json,打开方式如下
将以下代码复制到settings.json中
"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": true,
"latex-workshop.latex.tools": [
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOCFILE%",
"-outdir=%OUTDIR%"
]
},
{
"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": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
}
],
"latex-workshop.latex.recipes": [
{
"name": "XeLaTeX",
"tools": [
"xelatex"
]
},
{
"name": "PDFLaTeX",
"tools": [
"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"
],
"latex-workshop.latex.autoClean.run": "onFailed",
"latex-workshop.latex.recipe.default": "lastUsed",
"latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
想要了解配置中的每一个对象的含义,还是要去阅读这个扩展的手册。
此时,打开任意一个*.tex文件,左边都会出现一个TEX的图标,点开就是LaTexWorkShop的工具栏,点其中任意一个引擎就可以编译tex文件,点View Latex PDF就可以预览PDF
指定输出目录
直接进行编译,那么输出文件就会和源文件在同一个目录下,那么就会出现一大堆文件,很乱,就像这样
使用命令行编译指定输出目录
当在终端输入以下命令时,就会出现xelatex编译时的参数选项
xelatex -help
可以看到以下参数选项
其中有一个参数选项是
-output-directory=DIR use existing DIR as the directory to write files in
也即指定输出文件的路径,可以是相对路径
例子
这是编译前的文件结构
E:\CODING\SCRIPTS\LATEX\CHINESE-CLASSIC
│ books.bib
│ main.tex
│
└─figure
1.jpg
2.jpg
3.jpg
4.jpg
执行编译命令
# 这里创建Tmp文件夹来存放输出文件
# 注意,一定要在编译前创建好Tmp文件夹,xelatex在没有发现Tmp时会终止编译,不会帮你创建Tmp
mkdir Tmp
xelatex -output-directory=Tmp main
bibtex Tmp/main.aux
xelatex -output-directory=Tmp main
xelatex -output-directory=Tmp main
编译完成之后的文件结构如下,文件的结构得到改善
E:\CODING\SCRIPTS\LATEX\CHINESE-CLASSIC
│ books.bib
│ main.tex
│
├─figure
│ 1.jpg
│ 2.jpg
│ 3.jpg
│ 4.jpg
│
└─Tmp
main.aux
main.bbl
main.blg
main.log
main.pdf
在VsCode中修改LaTex WorkShop配置以指定输出目录
下面直接给出配置,当然,我会在与上面不同的地方做一下注释
"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": true,
"latex-workshop.latex.outDir": "%DIR%/Tmp",
"latex-workshop.latex.tools": [
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-output-directory=%OUTDIR%",
"%DOCFILE%",
]
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-output-directory=%OUTDIR%",
"%DOCFILE%"
]
},
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-outdir=%OUTDIR%",
"%DOCFILE%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%OUTDIR%/%DOCFILE%"
]
}
],
"latex-workshop.latex.recipes": [
{
"name": "XeLaTeX",
"tools": [
"xelatex"
]
},
{
"name": "PDFLaTeX",
"tools": [
"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"
],
"latex-workshop.latex.autoClean.run": "onFailed",
"latex-workshop.latex.recipe.default": "lastUsed",
"latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
来,我们看看效果
这是编译前
这是编译后