
Я пытаюсь использовать VS Code на Windows 10 x64 для 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
, который находится в подпапке.vscode
папки, в которой находится мойmyfilename.tex
-файл, который я хочу скомпилировать, содержит строку"myfilename.tex"
. Я вижу в нескольких местах в Интернете (как принятый ответ здесь или здесь), что это, по-видимому, должно быть%DOC%.tex
или%DOC%
(хотя в первой ссылке они ссылаются на файлsettings.json
, который выглядит для меня как показано ниже, т.е. совершенно иначе. Когда я компилирую это%DOC%.tex
только с или%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
Я наконец создал issue на странице Github LaTeX-Workshop
.
Вы не должны использоватьзаданиядля компиляции. Я не помню сейчас, где я это взял, но это было нехорошо.
На одном компьютере сработало 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.
В частности, это сработало на новом ПК (также с 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
) представляют собой только вопросительные знаки.