5 bnuthesis毕业论文模板无法编译的问题

发布于 2024-12-10 21:58:02

在VSCode中尝试编译附件(bnuthesis-latex-template)中的main.tex报错:
8de828436d564b4ba6596ac0f1755fe7.png

经过检查, 环境变量没有问题. 原始的模板文件(研究生学位论文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",
}

bnuthesis-latex-template.zip

研究生学位论文Latex参考模板.zip

查看更多

关注者
0
被浏览
168
2 个回答
UN
UN 2024-12-10
这家伙很懒,什么也没写!

经过技术交流群内大佬检查已解决问题, 下面进行自答.

该问题的主要原因在于研究生学位论文Latex参考模板文件中.vscode文件夹内的settings.json文件: 在使用VSCode打开该模板文件后, 当前路径下的.vscode中的setting.json会覆盖user workspace的设置, 因此此时TEX panel里面的编译链路不是用户自己配的, 而是开发者的.

6e20424dda559f75650c93c1c56c3919.png

用户点击绿色按钮的latexmk (xelatex), 实际上是先执行的unpack thuthesis, 再执行latexmk -xelatex; 看下面的unpack, 需要当前路径下有thuthesis.ins才能通过xetex编译释放出thuthesis.cls还是sty, 但模板的压缩包中并没有thuthesis.ins, 于是报错.

这种情况大概率是因为bnu的作者基于thu开发, 但是在上传文件的时候.gitignore没配置, 导致本来不应该被同步的.vscode文件夹被上传了, 这导致了懵懂的vscode用户的TEX panel的样子像这样.

bd2c7b91d326acacef8ae27e92d8a67e.png

依照上图将.vscode中settings.json中的对应部分全部注释掉后, 绿色按钮即可正常使用. 用户也可以把.vscode文件直接删掉, 这样一来TEX panel的编译链路就回到了用户自己的vscode配置了.

(两图来自大佬, 再次万分感谢大佬相助!)

Sagittarius Rover
Sagittarius Rover 2024-12-11
我要成为TikZ糕手/(ㄒoㄒ)/~~

应该是图书馆提供的【研究生学位论文Latex参考模板.zip】配置上有一些问题

更建议使用这个开源仓库 但使用的时候必须仔细研究其文档和学校有关规范

改正 xetex thuthesis.ins 编译得到的是thuthesis.cls文件

image.png

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览