博士毕业论文/CTEX/LATEX+vscode配置/xelatex+biber编译链

LATEX环境安装

CTEX 安装 (垃圾,不要装)

运行

  • clean.bat
  • comp.bat

缺少字体

  • Couldn’t find `Adobe Heiti S.cfg’
    miktex-maketfm: No creation rule for font “Adobe Heiti Std”.
  • 解决方法:其实就是下载这四个字体之后,右键 ”为所有用户安装“ 即可,推荐一个下载地址:https://bigfontsite.com/fonts

2024/5/27

由于学校更新模板, 采用宇航的版本
安装 tex live2024+ win edt,pdflatex一键编译,完美成功
用overleaf则会报错

最新的版本和这个版本只有两个区别,一个是授权页,换一个pdf,一个是页眉,换成了居中

  • 授权页/诚信说明: 需要替换/直接pdf替换;data/copyright.tex 该版本和新版szu说明不一致;可以修改format.tex实现一致;我懒得改,直接用word填好转pdf再插进来

  • 页眉,直接 \cnpageheader{博士学位论文\hfill\leftmark}换成\cnpageheader{\leftmark}等操作即可(包括致谢这些)

  • 目录,Abstract改为大写ABSTRACT (在format \addcontentsline{toc}{chapter}{ABSTRACT}中设置)

  • 附录部分不太一样。反映在目录上也不一样。也可能是我没有用对命令。无所谓了,反正我没有附录.

  • Publication.tex 标题 改为3号 \chapter*{\centering\sanhao\hei\bfseries 攻读博士学位期间的研究成果}

  • 与要求还是有很多不同;页眉高度、章节起始高度这些

  • 难搞的是字体,这个模板 textbf对中文没用;而\bf 实际上是将宋体换成了黑体;然后想要 word版的加粗黑体 加粗宋体 没有;可能是要换字体库换package什么的;稍微试了一下,编译不通过,有点烦


以上都有问题,改用https://github.com/Jev0987/SZUThesis-2024

  • 编译:
    先点击B+,会生成main.bbl参考文献;再XeLaTex编译
    在这里插入图片描述

  • szuthesis.cls

    • 把\newcommand → \renewcommand: \renewcommand*{\heiti}{\CJKfamily{heiti}}
    • (部,研究院)(部、研究院); 硕士博士
    • 关键词改成黑体加粗;目录摘要中间 加空格;abstract标题,改成arial字体
%---------------------------------------------------------------------------%
	%->> abstract environments
	%---------------------------------------------------------------------------%
	\newfontfamily\sectionef{Arial}
	%- define chinese keywords
	\newcommand{\keywords}[1]{%
	    \vspace*{2\baselineskip}
	    \noindent {\heiti\bfseries \szu@label@ch@keywords} #1}
	%- define engish keywords
	\newcommand{\KEYWORDS}[1]{%
	    \vspace*{2\baselineskip}
	    \noindent {\bfseries \szu@label@en@keywords} #1}
	\newenvironment{abstract}{
	    \ctexset{chapter = {
	        format = \linespread{1.0}\zihao{3}\heiti\bfseries\centering,
	        beforeskip = {5pt},
	        afterskip = {18pt},
	    }}%
	    \chapter[摘\ \ 要]{摘\ \ 要}% 
	    \pagestyle{mainmatterstyle}%
	}{\szu@clearpage}
  • 修改标题

    • word 1磅值=Latex 1bp=Latex1.00375 pt;
    • 根据深大要求将标题前后段落gap改为bp单位,修改大小;
    • 目录段后改为18bp;段前可能是考虑了页眉之类的和word要求不一样?所以不改段前了; 最后添加 答辩委员/评议书;建议直接拼接pdf上去即可,否则得去掉页眉页脚;
    \providecommand{\tableofcontents}{}
    \let\tableofcontentsORIG\tableofcontents
    \renewcommand{\tableofcontents}{
        \begingroup%
        \ctexset{chapter = {
            format = \linespread{1.0}\zihao{3}\bfseries\heiti\centering,
            beforeskip = {10pt}, %这里不改了,改完怪怪的,可能是考虑了页眉的高度
            afterskip = {18bp}, %改这里
        }}%
        \szu@clearpage\newgeometry{hmargin=1.23in,vmargin=1in}%
        \pagestyle{empty}\linespread{1.3}\tableofcontentsORIG%
        %\vspace{10pt}% Adjust vertical space as needed
        %\noindent\textbf{line 1}% Add the desired line here
        {\noindent \szu@song \zihao{-4} 附:指导教师对研究生学位论文的学术评语}
        
        答辩委员会决议书
        \szu@clearpage\restoregeometry%
        \endgroup%
    }
    
    • 目录修改字体大小
     \renewcommand*{\@dottedtocline}[5]{% [<level>,<indent>,<numwidth>,<title>,<page>]
        \ifnum #1>\c@tocdepth \else
            \vskip \z@ \@plus.2\p@
            {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip
            \parindent #2\relax\@afterindenttrue
            \interlinepenalty\@M
            %\leavevmode \zihao{4}\rmfamily % 目录中小节,改为宋体小四
            \leavevmode \zihao{-4}\songti % 这里,目录中小节,改为宋体小四
            \@tempdima #3\relax
            \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip
            {#4}\nobreak
            \leaders\hbox{$\m@th\mkern \@dotsep \cdot\mkern \@dotsep$}\hfill
            \nobreak
            \hb@xt@\@pnumwidth{\hfil\normalfont \normalcolor #5}%
            \par\penalty\@highpenalty}%
        \fi
    }
    %- redefine l@part from book.cls to add dotted toc line
    \renewcommand*{\l@part}[2]{% [<title>,<page>]
        \ifnum \c@tocdepth >-2\relax
            \addpenalty{-\@highpenalty}%
            \addvspace{2.25em \@plus\p@}%
            \setlength\@tempdima{3em}%
            \begingroup
                \parindent \z@ \rightskip \@pnumwidth
                \parfillskip -\@pnumwidth
                {\leavevmode
                \zihao{4}\rmfamily #1
                \leaders\hbox{$\m@th\mkern \@dotsep \cdot\mkern \@dotsep$}% add dotted toc line
                \hfil \hb@xt@\@pnumwidth{\hss #2}}\par
                \nobreak
                \global\@nobreaktrue
                \everypar{\global\@nobreakfalse\everypar{}}%
            \endgroup
        \fi
    }
    %- redefine l@chapter from book.cls to add dotted toc line
    \renewcommand*{\l@chapter}[2]{% [<title>,<page>]
        \ifnum \c@tocdepth >\m@ne
            \addpenalty{-\@highpenalty}%
            \vskip \z@ \@plus.2\p@ % \vskip \@chaptervspace \@plus\p@
            \setlength\@tempdima{1.5em}%
            \begingroup
                \parindent \z@ \rightskip \@pnumwidth
                \parfillskip -\@pnumwidth
                %\leavevmode \zihao{4}\bfseries\rmfamily 
                \leavevmode \zihao{-4}\bfseries\rmfamily  % 这里,修改目录,chapter 加粗宋体小四
                \advance\leftskip\@tempdima
                \hskip -\leftskip
                #1\nobreak
                % \hspace{0.1em}%向右移动起始位置
                % \leaders\hbox{$\m@th\mkern \@dotsep \pmb{\cdot} \mkern \@dotsep$}% add dotted toc line
                \myboldcftdotfill % 使用自定义的加粗点线
                % \hspace{-0.5em}%向右移动终点位置
                \hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par
                \penalty\@highpenalty
            \endgroup
        \fi
    }
    
    • 三级节标题由宋改为宋加粗;skip单位改为bp;chapter段前可能是考虑了页眉之类的和word要求不一样?所以不改段前了; 由于深大要求目录只出现到1.1.1,所以不建议用1.1.1.1了,否则会显示在目录上
      \ctexset {
          chapter = {
              format = \linespread{1.0}\zihao{3}\heiti\bfseries\centering,
              number = \chinese{chapter},
              aftername = \quad,
              beforeskip = {7bp},
              afterskip = {18bp},
              pagestyle = plain,
          },
          section = {
              format = \linespread{1.0}\zihao{-3}\heiti\bfseries\raggedright,
              aftername = \quad,
              beforeskip = {24bp},
              afterskip = {6bp},
          },
          subsection = {
              format = \linespread{1.0}\zihao{4}\szu@song\bfseries\raggedright,
              aftername = \quad,
              beforeskip = {12bp},
              afterskip = {6bp},
          },
          subsubsection = {
              format = \linespread{1.0}\zihao{-4}\szu@song\bfseries\raggedright,
              aftername = \quad,
              beforeskip = {12bp},
              afterskip = {6bp},
          },
          appendix = {
              %numbering = true|false,
              %number = \rmfamily\Alph{chapter},
          }
      }
      
  • 修改时间

% 全文打印时间
  \multicolumn{2}{c}{二〇二四年十一月}
  • config.tex
    • 得切换学硕专硕
     \DEGREE{MasterXS}% 学术硕士
    %\DEGREE{MasterZY}% 专业硕士
    

VSCODE 配置

{
    "workbench.colorTheme": "Default Dark Modern",
    "editor.accessibilityPageSize": 15,
    "editor.fontSize": 18,
    "python.defaultInterpreterPath": "C:\\Users\\SteveLaptop\\.conda\\envs\\torch\\python.exe",
    "files.autoSave": "afterDelay",
    "chatgpt.lang": "en",
    "chatgpt.model": "gpt-3.5-turbo",
    "security.workspace.trust.untrustedFiles": "open",

//------------------------------LaTeX 配置----------------------------------
    //输出文件目录; 输出pdf在这里
    "latex-workshop.latex.outDir": "./build",
    // 设置是否自动编译
    "latex-workshop.latex.autoBuild.run":"never",
    //右键菜单
    "latex-workshop.showContextMenu":true,
    //从使用的包中自动补全命令和环境
    "latex-workshop.intellisense.package.enabled": true,
    //编译出错时设置是否弹出气泡设置
    "latex-workshop.message.error.show": true,
    "latex-workshop.message.warning.show": true,
    // 编译工具和命令
    "latex-workshop.latex.tools": [
        {
            "name": "xelatex",
            //这里修改临时文件输出在build文件夹
            "command": "xelatex -output-directory=build",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                //含有中文路径时用这个;%DOC则是全路径,则路径最好不含中文
                "%DOCFILE%"
            ]
        },
        {
            "name": "pdflatex",
            "command": "pdflatex -output-directory=build",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "%DOCFILE%"
            ]
        },
        {
            "name": "latexmk -output-directory=build",
            "command": "latexmk",
            "args": [
                "-synctex=1",
                "-interaction=nonstopmode",
                "-file-line-error",
                "-pdf",
                "-outdir=%OUTDIR%",
                "%DOCFILE%"
            ]
        },
        {   
            "name": "bibtex",
            "command": "bibtex",
            "args": [
                "build/%DOCFILE%"
            ]
        },
        {
            // 增加一个biber,搭配xelatex使用;临时文件在build文件夹
            "name": "biber",
            "command": "biber",
            "args": [
                "build/%DOCFILE%"
            ]
        }

    ],
    // 用于配置编译链
    "latex-workshop.latex.recipes": [
        // 实测work;xelatex需要搭配biber
        {
            "name": "xelatex -> biber -> xelatex*2",
            "tools": [
                "xelatex",
                "biber",
                "xelatex",
                "xelatex"
            ]
        },
        //实测不work; xelatex需要用biber
        // {
        //     "name": "xelatex -> bibtex -> xelatex*2",
        //     "tools": [
        //         "xelatex",
        //         "bibtex",
        //         "xelatex",
        //         "xelatex"
        //     ]
        // },
        {
            "name": "pdflatex -> bibtex -> pdflatex*2",
            "tools": [
                "pdflatex",
                "bibtex",
                "pdflatex",
                "pdflatex"
            ]
        },
        {
            "name": "XeLaTeX",
            "tools": [
                "xelatex"
            ]
        },
        {
            "name": "PDFLaTeX",
            "tools": [
                "pdflatex"
            ]
        },
        {
            "name": "BibTeX",
            "tools": [
                "bibtex"
            ]
        },
        {
            "name": "Biber",
            "tools": [
                "biber"
            ]
        },
        {
            "name": "LaTeXmk",
            "tools": [
                "latexmk"
            ]
        }
    ],
    //文件清理。此属性必须是字符串数组
    "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"
    ],
    //设置为onFaild 在构建失败后清除辅助文件
    // "latex-workshop.latex.autoClean.run": "onFailed",
    "latex-workshop.latex.autoClean.run": "never",
    // 使用上次的recipe编译组合
    "latex-workshop.latex.recipe.default": "lastUsed",
    // 用于反向同步的内部查看器的键绑定。ctrl/cmd +点击(默认)或双击
    "latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
    "editor.wordWrap": "on",
    "extensions.ignoreRecommendations": true,
    "workbench.editor.enablePreview": false,
    "editor.minimap.enabled": false
}
  • bug
Recipe terminated with fatal error: spawn xelatex -output-directory=./build ENOENT.

经过实践,这是因为latex文件内存在bug;并不是xelatex找不到路径。
用winedt跑一下找到bug修正,vscode即可运行

  • 快捷方式改为:
    • alt+q 正向跳转
    • alt+e 编译
    • 双击 反向跳转
  • 23
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值