在VSCode中使用LaTeX Workshop + TexLive可以很舒畅地写作。但对于习惯使用Overleaf的朋友来说,在长篇写作时,会涉及到双向搜索的需求。即根据源码搜pdf的位置,和根据pdf的位置搜索源码的位置。尤其改论文时用的很多。
根据其他教程中,在安装LaTeX Workshop时,需要在setting.json中进行一些配置工作,这里面有两项配置叫
"latex-workshop.latex.autoClean.run": "onBuilt",
"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",
"*.gz"
],
这个配置是每次编译后,会将中间生成的临时文件删除掉,以保持项目文件夹的整洁。
但是!这里会删除掉一个重要的文件,叫xxx.synctex.gz。这个文件负责的就是刚才说的双向搜索的锚点。如果删除掉它,那么整个双向搜索的功能就失效了。想要不删除它,也很简单,只要注释掉上面的配置文件中的.gz就可以了。
使用双向搜索的方法也很简单
正向搜索:先固定源码中的光标,然后Ctrl + Alt + J
反向搜索:Ctrl + 鼠标左键点击pdf中某个位置
最后附上关于LaTeX Workshop的全部配置设置:
其中为了写论文方便,这里把pdflatex - bibtex - pdflatex*2放到了最前面。
// Latex workshop
"editor.wordWrap": "on",
"workbench.startupEditor": "newUntitledFile",
"latex-workshop.latex.autoClean.run": "onBuilt",
"latex-workshop.hover.command.enabled": true,
"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",
// "*.gz"
],
"latex-workshop.view.pdf.viewer": "tab",
"latex-workshop.latex.recipes": [
{
"name": "pdflatex ➞ bibtex ➞ pdflatex*2",
"tools": [
"pdflatex",
"bibtex",
"pdflatex",
"pdflatex"
]
},
{
"name": "XeLaTex 🔃",
"tools": [
"xelatex"
]
},
{
"name": "pdfLaTex 🔃",
"tools": [
"pdflatex"
]
},
{
"name": "texify 🔃",
"tools": [
"texify"
]
},
{
"name": "xelatex ➞ bibtex ➞ xelatex*2",
"tools": [
"xelatex",
"bibtex",
"xelatex",
"xelatex"
]
},
{
"name": "xelatex ➞ biber ➞ xelatex*2",
"tools": [
"xelatex",
"biber",
"xelatex",
"xelatex"
]
},
{
"name": "latexmk 🔃",
"tools": [
"latexmk"
]
},
{
"name": "BibTeX 🔃",
"tools": [
"bibtex"
]
},
{
"name": "Biber 🔃",
"tools": [
"biber"
]
}
],
"latex-workshop.latex.tools": [
{
"name": "xelatex",
"command": "xelatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"%DOC%"
]
},
{
"name": "texify",
"command": "texify",
"args": [
"--synctex",
"--pdf",
"--tex-option=\"-interaction=nonstopmode\"",
"--tex-option=\"-file-line-error\"",
"%DOC%.tex"
],
"env": {}
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
]
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
]
},
{
"name": "biber",
"command": "biber",
"args": [
"%DOCFILE%"
]
}
],
"extensions.autoUpdate": true,
"tabnine.experimentalAutoImports": true