
我正在嘗試在 Windows 10 x64 上使用 VS Code 來LaTeX Workshop 8.7.2
編譯 LaTeX 中的文件。
我面臨三個問題:
當我打開 PDF 檢視器後再次編譯文件時,VS Code 中的選項卡中顯示的 PDF 檢視器不再更新。使用另一個程式開啟 PDF 檔案顯示它已更新,因此只是 VS Code 中的檢視器在編譯時不會更新。我必須關閉該選項卡並再次打開它 (
LaTeX Workshop: View LaTeX PDF file in VSCode tab
) 以顯示 PDF 文件的最新版本,即當前版本。tasks.json
我要編譯的 my 文件所在.vscode
資料夾的子資料夾中的文件myfilename.tex
包含行"myfilename.tex"
.我在網路上的多個地方看到(就像這裡接受的答案一樣 或這裡)這看起來應該是%DOC%.tex
or%DOC%
(儘管在第一個鏈接中,它們指的是該settings.json
文件,對我來說如下所示,即完全不同。當我用%DOC%.tex
or 只是編譯它時%DOC%
,我得到:
This is pdfTeX, Version 3.14159265-2.6-1.40.20 (MiKTeX 2.9.7250 64-bit)
entering extended mode
! Emergency stop.
<*> %DOC%
! ==> Fatal error occurred, no output PDF file produced!
Transcript written on texput.log.
The terminal process terminated with exit code: 1
這個問題意味著如果我想在同一個資料夾中編譯兩個文件,我每次都.tex
需要手動替換文件中的文件名稱。tasks.json
我也嘗試過,但無濟於事,是(以下https://github.com/James-Yu/LaTeX-Workshop/issues/384)"%DOCFILE%.tex"
和"%DOCFILE%"
)。
- 我還想在 PDF 文件中建立索引。在我之前使用的TeXWorks中,我是
MakeIndex
這樣使用的:
或(最好與 結合pdfLaTeX
)像這樣
我需要做什麼才能MakeIndex
使用 VS Code 運行?
這是我的文件: 任務.json:
{
"version": "2.0.0",
"tasks": [
{
"label": "Run pdflatex",
"type": "shell",
"group": {
"kind": "build"
},
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"myfilename.tex"
]
},
{
"label": "Run bibtex",
"type": "shell",
"group": {
"kind": "test",
"isDefault": true
},
"command": "bibtex",
"args": [
"-terse",
"*.aux"
]
},
// {
// "label": "Run makeindex",
// "command": "makeindex",
// "args": [
// "myfilename.tex.nlo",
// "-s nomencl.ist",
// "-o myfilename.tex.nls%"
// ]
// },
{
"label": "update pdf",
"command": "${command:latex-workshop.refresh-viewer}",
"problemMatcher": []
},
{
"label": "Compile and update",
"group": {
"kind": "build",
"isDefault": true
},
"dependsOrder": "sequence",
"dependsOn": [
// "Run makeindex",
"Run pdflatex",
"update pdf"
],
"problemMatcher": []
}
]
}
設定.json
{
"latex-workshop.message.update.show": false,
"latex-workshop.latex.autoClean.run": "onBuilt",
"latex-workshop.latex.clean.fileTypes": [
"*.aux",
"*.toc",
// "*.blg",
// "*.lof",
// "*.lot",
// "*.out",
// "*.acn",
// "*.acr",
// "*.alg",
// "*.glg",
// "*.glo",
// "*.gls",
// "*.fls",
// "*.log",
// "*.fdb_latexmk",
// "*.snm",
"*.synctex(busy)",
"*.synctex.gz(busy)",
"*.nav"
],
"latex-workshop.view.pdf.ref.viewer": "tabOrBrowser",
"latex-workshop.view.pdf.viewer": "tab",
"latex-workshop.view.pdf.zoom": "page-fit",
"window.zoomLevel": 1,
"latex-workshop.latex.recipes": [
{
"name": "pdflatex ➞ bibtex ➞ pdflatex × 2",
"tools": [
"pdflatex",
"bibtex",
"pdflatex",
"pdflatex"
]
},
]
}
答案1
我最終在 的 Github 頁面上創建了一個問題LaTeX-Workshop
。
你不應該使用任務用於編譯。我現在不記得我從哪裡得到的,但這不是一件好事。
現在在一台電腦上有效的方法是更改 -file,settings.json
如下所示:
{
"cSpell.enabled": true,
"editor.cursorBlinking": "solid",
"editor.wordWrap": "on",
"editor.wordWrapColumn": 80,
"editor.wrappingIndent": "same",
"latex-workshop.view.pdf.viewer": "tab",
"latex-workshop.view.pdf.zoom": "page-fit",
"latex-workshop.latex.autoBuild.cleanAndRetry.enabled": true,
"latex-workshop.latex.autoClean.run": "onFailed",
"latex-workshop.latex.clean.subfolder.enabled": true,
"latex-workshop.latex.clean.fileTypes": [ "*.aux"
//, "*.toc",
// "*.ilg",
// "*.blg",
// "*.lof",
// "*.lot",
// "*.out",
// "*.acn",
// "*.acr",
// "*.alg",
// "*.glg",
// "*.glo",
// "*.gls",
// "*.fls",
// "*.log",
// "*.fdb_latexmk",
// "*.snm"
],
"latex-workshop.message.log.show": true,
"latex-workshop.latex.recipes": [
{
"name": "latexmk",
"tools": [
"latexmk"
]
},
{
"name": "pdflatex",
"tools": [
"pdflatex",
// "bibtex",
"makeindex",
// "pdflatex",
"pdflatex"
]
}
],
"latex-workshop.latex.tools":[
{
"name": "latexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-pdf",
"-f",
"-outdir=%OUTDIR%",
"%DOC%"
],
"env": {}
},
{
"name": "lualatexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-lualatex",
"-outdir=%OUTDIR%",
"%DOC%"
],
"env": {}
},
{
"name": "latexmk_rconly",
"command": "latexmk",
"args": [
"%DOC%"
],
"env": {}
},
{
"name": "pdflatex",
"command": "pdflatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"%DOC%"
],
"env": {}
},
{
"name": "bibtex",
"command": "bibtex",
"args": [
"%DOCFILE%"
],
"env": {}
},
{
"name": "makeindex",
"command": "makeindex",
"args": [
"%DOCFILE%.nlo",
"-s",
"nomencl.ist",
"-o",
"%DOCFILE%.nls"
],
"env": {}
},
{
"name": "rnw2pdf",
"command": "Rscript",
"args": [
"-e",
"knitr::knit2pdf('%DOCFILE%')"
],
"env": {}
}
],
"latex-workshop.message.update.show": false
}
並執行與ctrl + alt + b.
特別是,這在一台新 PC 上運行(也安裝了我以前使用過的 Windows 10、MikTeX 和 TeXWorks),我只需下載並安裝 VS Code (1.44.0) 和 LaTeX Workshop 擴充功能 (8.8.0) 。然後我按照settings.json
上面的方法進行調整,所有問題都得到了解決(除了 PDF 檢視器在編譯時不會自動更新,至少不會定期更新;我仍在嘗試找出問題所在,但這很小)。
然而,在另一台電腦上,我沒有perl
安裝,並且使用上面的方法settings.json
,我收到錯誤:
latexmk: The script engine could not be found
latexmk: Data: scriptEngine="perl.exe", scriptName="latexmk"
latexmk
當我取消註釋設定文件中的配方時,會導致:
- 文檔編譯沒有錯誤
- PDF 未在選項卡中更新,需要再次按一下圖示才能查看更改
- 多次編譯後目錄仍為空
- 引用
label
的章節及其頁碼 (ref
,pageref
) 僅是問號。