在VSCode中尝试编译附件(bnuthesis-latex-template)中的main.tex报错:
经过检查, 环境变量没有问题. 原始的模板文件(研究生学位论文Latex参考模板)建议的改动是把bnuthesis-example.tex的文件名改为main.tex, 并把bnusetup.tex与data文件夹中各tex文件开头的!TeX root作对应改动, 附件中已经完成了这一改动.
下面是我的VSCode配置, 附件与原始文件已经提供在了文末:
{
"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": "xe->bib->xe->xe",
"tools": [
"xelatex",
"bibtex",
"xelatex",
"xelatex"
]
},
{
"name": "pdf->bib->pdf->pdf",
"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"
],
//tex文件浏览器,可选项为"none" "browser" "tab" "external"
"latex-workshop.view.pdf.viewer": "external",
// PDF查看器用于在\ref上的[View on PDF]链接
"latex-workshop.view.pdf.ref.viewer":"auto",
// 使用外部查看器时要执行的命令。此功能不受官方支持。
"latex-workshop.view.pdf.external.viewer.command": "D:/SumatraPDF/SumatraPDF.exe", // 注意修改路径
// 使用外部查看器时,latex-workshop.view.pdf.external.view .command的参数。此功能不受官方支持。%PDF%是用于生成PDF文件的绝对路径的占位符。
"latex-workshop.view.pdf.external.viewer.args": [
"%PDF%"
],
// 将synctex转发到外部查看器时要执行的命令。此功能不受官方支持。
"latex-workshop.view.pdf.external.synctex.command": "D:/SumatraPDF/SumatraPDF.exe", // 注意修改路径
// latex-workshop.view.pdf.external.synctex的参数。当同步到外部查看器时。%LINE%是行号,%PDF%是生成PDF文件的绝对路径的占位符,%TEX%是触发syncTeX的扩展名为.tex的LaTeX文件路径。
"latex-workshop.view.pdf.external.synctex.args": [
"-forward-search",
"%TEX%",
"%LINE%",
"-reuse-instance",
"-inverse-search",
"\"D:/Microsoft VS Code/Code.exe\" \"D:/Microsoft VS Code/resources/app/out/cli.js\" -r -g \"%f:%l\"", // 注意修改路径
"%PDF%"
],
"explorer.confirmDelete": false,
"security.workspace.trust.untrustedFiles": "open",
//自动编译tex文件
"latex-workshop.latex.autoBuild.run": "onSave",
//显示内容菜单:(1)编译文件;(2)定位游标
"latex-workshop.showContextMenu": true,
//显示错误
"latex-workshop.message.error.show": false,
//显示警告
"latex-workshop.message.warning.show": false,
//从使用的包中自动补全命令和环境
"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.intellisense.biblatexJSON.replace": {
},
"latex-workshop.intellisense.bibtexJSON.replace": {},
"search.followSymlinks": false,
"editor.autoSurround": "never",
"editor.codeActionWidget.showHeaders": false,
"editor.suggest.shareSuggestSelections": true,
"typescript.tsserver.watchOptions": {
},
"disable-hardware-acceleration": true,
"settingsSync.ignoredExtensions": [
],
"telemetry.enableTelemetry": false,
"explorer.confirmDelete": false,
"json.schemas": [],
"editor.minimap.enabled": false,
"workbench.editorAssociations": {
"*.pdf": "default"
},
"editor.suggestSelection": "recentlyUsed",
"extensions.autoUpdate": false,
"editor.unicodeHighlight.nonBasicASCII": false,
"editor.autoClosingBrackets": "always",
}
经过技术交流群内大佬检查已解决问题, 下面进行自答.
该问题的主要原因在于研究生学位论文Latex参考模板文件中.vscode文件夹内的settings.json文件: 在使用VSCode打开该模板文件后, 当前路径下的.vscode中的setting.json会覆盖user workspace的设置, 因此此时TEX panel里面的编译链路不是用户自己配的, 而是开发者的.
用户点击绿色按钮的latexmk (xelatex), 实际上是先执行的unpack thuthesis, 再执行latexmk -xelatex; 看下面的unpack, 需要当前路径下有thuthesis.ins才能通过xetex编译释放出thuthesis.cls还是sty, 但模板的压缩包中并没有thuthesis.ins, 于是报错.
这种情况大概率是因为bnu的作者基于thu开发, 但是在上传文件的时候.gitignore没配置, 导致本来不应该被同步的.vscode文件夹被上传了, 这导致了懵懂的vscode用户的TEX panel的样子像这样.
依照上图将.vscode中settings.json中的对应部分全部注释掉后, 绿色按钮即可正常使用. 用户也可以把.vscode文件直接删掉, 这样一来TEX panel的编译链路就回到了用户自己的vscode配置了.
(两图来自大佬, 再次万分感谢大佬相助!)
应该是图书馆提供的【研究生学位论文Latex参考模板.zip】配置上有一些问题
更建议使用这个开源仓库 但使用的时候必须仔细研究其文档和学校有关规范。
改正xetex thuthesis.ins
编译得到的是thuthesis.cls
文件