From b294ff3daaee221255dcc13dfa243ce4e6bb5ed2 Mon Sep 17 00:00:00 2001 From: DapengFeng Date: Wed, 18 Oct 2023 09:57:56 +0800 Subject: [PATCH] dump to v1.1.1 --- .gitignore | 10 +- CHANGELOG.md | 11 +- Makefile | 2 +- spine.tex | 19 ++ sysusetup.tex | 23 +- sysuthesis-example.pdf | Bin 1481309 -> 1481414 bytes sysuthesis.cls | 564 +++++++++++++++++++++++++------- sysuthesis.dtx | 709 +++++++++++++++++++++++++++++++---------- sysuthesis.pdf | Bin 1019735 -> 1123492 bytes 9 files changed, 1033 insertions(+), 305 deletions(-) create mode 100644 spine.tex diff --git a/.gitignore b/.gitignore index 17d48fb..9c12575 100644 --- a/.gitignore +++ b/.gitignore @@ -3,14 +3,14 @@ package-lock.json node_modules/ dist/ -thuthesis*.zip -thuthesis-ctan/ +sysuthesis*.zip +sysuthesis-ctan/ ## generated files: dtx-style.sty -thuthesis.cls -thuthesis.pdf -thuthesis-example.pdf +# sysuthesis.cls +# sysuthesis.pdf +# sysuthesis-example.pdf spine.pdf *.hd diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ad74b5..a88e14f 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,9 +6,15 @@ ## [Unreleased] +## [v1.1.1] - 2023-10-18 +### Add + - 添加封面和封底扫描版 +### Merge + - 合并ThuThesis v7.4.0 + ## [v1.1.0] - 2022-11-16 ### Merge -- 合并Thu-Thesis v7.3.1 +- 合并ThuThesis v7.3.1 ## [v1.0.1] - 2021-10-09 ### Added @@ -27,7 +33,8 @@ - 改变研究生的titlepage和copyrightpage -[Unreleased]: https://github.com/DapengFeng/sysuthesis/compare/v1.1.0...HEAD +[Unreleased]: https://github.com/DapengFeng/sysuthesis/compare/v1.1.1...HEAD +[v1.1.1]: https://github.com/DapengFeng/sysuthesis/releases/tag/v1.1.1 [v1.1.0]: https://github.com/DapengFeng/sysuthesis/releases/tag/v1.1.0 [v1.0.1]: https://github.com/DapengFeng/sysuthesis/releases/tag/v1.0.1 [v1.0.0]: https://github.com/DapengFeng/sysuthesis/releases/tag/v1.0.0 \ No newline at end of file diff --git a/Makefile b/Makefile index 3013a29..7b0cc19 100755 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ SOURCES = $(PACKAGE).ins $(PACKAGE).dtx CLSFILE = dtx-style.sty $(PACKAGE).cls LATEXMK = latexmk -SHELL := /bin/bash +SHELL := /usr/bin/env bash NPM ?= npm # make deletion work on Windows diff --git a/spine.tex b/spine.tex new file mode 100644 index 0000000..993370b --- /dev/null +++ b/spine.tex @@ -0,0 +1,19 @@ +% !TeX encoding = UTF-8 +% !TeX program = xelatex +% !TeX spellcheck = en_US + +\documentclass[degree=master]{sysuthesis} + +\input{sysusetup.tex} + +% \sysusetup{ +% spine-font = {\zihao{3}}, +% spine-title = {书脊的标题}, +% spine-author = {书脊的作者姓名}, +% } + +\begin{document} + +\spine + +\end{document} diff --git a/sysusetup.tex b/sysusetup.tex index 4cace21..1818d73 100644 --- a/sysusetup.tex +++ b/sysusetup.tex @@ -22,7 +22,7 @@ title* = {An Introduction to \LaTeX{} Thesis Template of Sun Yat-sen University v\version}, % - % 学位 + % 学科门类 % 1. 学术型 % - 中文 % 需注明所属的学科门类,例如: @@ -39,8 +39,8 @@ % Doctor of Education, Master of Engineering % 3. 本科生不需要填写 % - degree-name = {工学博士}, - degree-name* = {Doctor of Philosophy}, + degree-category = {工学博士}, + degree-category* = {Doctor of Philosophy}, % % 培养单位 % 填写所属院系的全名 @@ -48,17 +48,20 @@ department = {计算机科学与技术系}, % % 学科 - % 1. 学术型学位 - % 获得一级学科授权的学科填写一级学科名称,其他填写二级学科名称 - % 2. 工程硕士 - % 工程领域名称 - % 3. 其他专业型学位 - % 不填写此项 - % 4. 本科生填写专业名称,第二学位论文需标注“(第二学位)” + % 1. 研究生学术型学位,获得一级学科授权的学科填写一级学科名称,其他填写二级学科名称 + % 2. 本科生填写专业名称,第二学位论文需标注“(第二学位)” % discipline = {计算机科学与技术}, discipline* = {Computer Science and Technology}, % + % 专业领域 + % 1. 设置专业领域的专业学位类别,填写相应专业领域名称 + % 2. 2019 级及之前工程硕士学位论文,在 `engineering-field` 填写相应工程领域名称 + % 3. 其他专业学位类别的学位论文无需此信息 + % + % professional-field = {计算机技术}, + % professional-field* = {Computer Technology}, + % % 姓名 % author = {[姓名]}, diff --git a/sysuthesis-example.pdf b/sysuthesis-example.pdf index 1a2845bec24855ebaf038b6da1084321ee00f094..7da8614245720618acf4b2b433ee5997cc7e7efa 100644 GIT binary patch delta 28296 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 delta 28154 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 diff --git a/sysuthesis.cls b/sysuthesis.cls index fca1ae6..592f51a 100644 --- a/sysuthesis.cls +++ b/sysuthesis.cls @@ -8,7 +8,7 @@ %% %% This is a generated file. %% -%% Copyright (C) 2022 by Dapeng Feng +%% Copyright (C) 2023 by Dapeng Feng %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3c @@ -21,10 +21,10 @@ %% To produce the documentation run the original source files ending with `.dtx' %% through LaTeX. %% -\newcommand\sysuthesisversion{1.1.0} +\newcommand\sysuthesisversion{1.1.1} \NeedsTeXFormat{LaTeX2e}[2017/04/15] \ProvidesClass{sysuthesis} -[2022/11/16 {\sysuthesisversion} Sun Yat-sen University Thesis Template] +[2023/10/18 {\sysuthesisversion} Sun Yat-sen University Thesis Template] \newcommand\sysu@error[1]{% \ClassError{sysuthesis}{#1}{}% } @@ -360,11 +360,9 @@ } } \AtEndOfPackageFile*{natbib}{ - \ifsysu@degree@bachelor - \@ifpackageloaded{apacite}{}{ - \RequirePackage{bibunits} - } - \fi + \@ifpackageloaded{apacite}{}{ + \RequirePackage{bibunits} + } } \newcommand\sysu@package@conflict[2]{% \AtEndOfPackageFile*{#1}{% @@ -712,7 +710,7 @@ \newcommand\sysu@set@font@times{% \setmainfont{Times New Roman}% \setsansfont{Arial}% - \ifsysu@system@mac + \ifsysu@fontset@mac \setmonofont{Menlo}[Scale = MatchLowercase]% \else \setmonofont{Courier New}[Scale = MatchLowercase]% @@ -1218,7 +1216,7 @@ \newcommand\square{\mdlgwhtsquare}% \newcommand\blacksquare{\mdlgblksquare}% \AtBeginDocument{% - \renewcommand\checkmark{\ensuremath{✓}}% + \renewcommand\checkmark{\ensuremath{\symbol{"2713}}}% }% \renewcommand\sysu@qed{\ensuremath{\QED}}% }% @@ -2090,14 +2088,29 @@ committee* = { name = committee@en, }, - degree-name = { + degree-category = { default = {工学博士}, - name = degree@name, + name = degree@category, }, - degree-name* = { + degree-category* = { default = {Doctor of Philosophy}, - name = degree@name@en, + name = degree@category@en, + }, + % 为了向后兼容 + degree-name = { + name = degree@category, + }, + degree-name* = { + name = degree@category@en, }, +} +\sysu@option@hook{degree-name}{% + \sysu@warning{`degree-name' is deprecated. Use `degree-category' instead.} +} +\sysu@option@hook{degree-name*}{% + \sysu@warning{`degree-name*' is deprecated. Use `degree-category*' instead.} +} +\sysu@define@key{ department = { default = {计算机科学与技术系}, }, @@ -2108,6 +2121,34 @@ % default = {Computer Science and Technology}, name = discipline@en, }, +} +\sysu@option@hook{discipline}{% + \ifsysu@degree@type@professional + \sysu@warning{`discipline' for professional degree is deprecated. Use `professional-field' instead.} + \let\sysu@professional@field\sysu@discipline + \let\sysu@discipline\@empty + \fi +} +\sysu@option@hook{discipline*}{% + \ifsysu@degree@type@professional + \sysu@warning{`discipline*' for professional degree is deprecated. Use `professional-field*' instead.} + \let\sysu@professional@field@en\sysu@discipline@en + \let\sysu@discipline@en\@empty + \fi +} +\sysu@define@key{ + professional-field = { + name = professional@field, + }, + professional-field* = { + name = professional@field@en, + }, + engineering-field = { + name = engineering@field, + }, + engineering-field* = { + name = engineering@field@en, + }, date = { default = {\the\year-\two@digits{\month}-\two@digits{\day}}, }, @@ -2203,8 +2244,19 @@ \stepcounter{sysu@csl@count}% } \newcommand\sysu@name@title@format[2]{% - \sysu@pad{3cm}{\sysu@stretch{4em}{#1}}% - \sysu@stretch{3em}{#2}% + \ifsysu@degree@type@professional + % 字距 9.8bp,共 16bp * 3 + 9.8bp * 2 = 67.5bp + \sysu@stretch{67.6bp}{#1}% + \hspace{9.8bp}% + % 字距 6bp + \begingroup + \renewcommand\CJKglue{\hspace{9.8bp}}% + #2% + \endgroup + \else + \sysu@pad{3cm}{\sysu@stretch{4em}{#1}}% + \sysu@stretch{3em}{#2}% + \fi } \newcommand\sysu@name@title[1]{% \setcounter{sysu@csl@count}{0}% @@ -2268,12 +2320,24 @@ \ifsysu@degree@graduate \ifsysu@thesis@type@thesis \ifsysu@degree@type@academic - \sysu@titlepage@graduate@academic + \ifsysu@degree@doctor + \sysu@titlepage@doctor@academic + \else + \sysu@titlepage@master@academic + \fi \else - \ifx\sysu@discipline\@empty - \sysu@titlepage@graduate@professional + \ifsysu@degree@doctor + \sysu@titlepage@doctor@professional \else - \sysu@titlepage@graduate@academic + \ifx\sysu@professional@field\@empty + \ifx\sysu@engineering@field\@empty + \sysu@titlepage@master@professional@without@field + \else + \sysu@titlepage@master@professional@with@field + \fi + \else + \sysu@titlepage@master@professional@with@field + \fi \fi \fi \else @@ -2298,7 +2362,7 @@ \fi \sysu@reset@main@language } -\newcommand\sysu@titlepage@graduate@academic{% +\newcommand\sysu@titlepage@doctor@academic{% \newgeometry{ top = 2cm, bottom = 3.25cm, @@ -2324,10 +2388,10 @@ \endgroup \vskip -9.2pt% \vskip 24.1pt% - \sysu@titlepage@degree + \sysu@titlepage@degree\par \vfill \parbox[t][7.25cm][t]{\textwidth}{% - \centering\fangsong\fontsize{16bp}{31.2bp}\selectfont + \fangsong\fontsize{16bp}{31.2bp}\selectfont \sysu@titlepage@info }\par \vfill @@ -2336,7 +2400,7 @@ \clearpage \restoregeometry } -\newcommand\sysu@titlepage@graduate@professional{% +\newcommand\sysu@titlepage@doctor@professional{% \newgeometry{ top = 2cm, bottom = 3.25cm, @@ -2365,12 +2429,160 @@ \vskip 25.5pt% \sysu@titlepage@degree \vfill - \parbox[t][5.24cm][t]{\textwidth}{% - \centering\fangsong\fontsize{16bp}{1cm}\selectfont + \parbox[b][5.24cm][b]{\textwidth}{% + \fangsong\fontsize{16bp}{1cm}\selectfont \sysu@titlepage@info }\par + \vskip 2.22cm% + \parbox[t][1.0cm][t]{\textwidth}{\centering\sysu@titlepage@date}\par + \endgroup + \clearpage + \restoregeometry +} +\newcommand\sysu@titlepage@master@academic{% + \newgeometry{ + top = 2cm, + bottom = 6cm, + hmargin = 3.5cm, + }% + \thispagestyle{empty}% + \null\vskip 10bp% + \begingroup + \centering + \parbox[t][55bp][t]{\textwidth}{% + \hskip -23bp% + \sysu@titlepage@secret + }\par + \vskip 34pt% + \begingroup + % 1.21 倍行距 + \sffamily\fontsize{26bp}{40.898bp}\selectfont + \sysu@title\par + \endgroup + \ifsysu@main@language@english + \vskip 5.4pt% + \begingroup + \sffamily\bfseries\fontsize{20bp}{31.2bp}\selectfont + \sysu@title@en\par + \endgroup + \vskip -9.2pt% + \fi + \vskip 18pt% + \sysu@titlepage@degree\par + \vfill + \parbox[t][7.05cm][t]{\textwidth}{% + % 表格行高 1cm = 28.35bp + \fangsong\fontsize{16bp}{28.35bp}\selectfont + \sysu@titlepage@info + }\par + \parbox[t][37bp][t]{\textwidth}{\centering\sysu@titlepage@date}\par + \endgroup + \clearpage + \restoregeometry +} +\newcommand\sysu@titlepage@master@professional@without@field{% + \newgeometry{ + top = 2cm, + bottom = 6cm, + hmargin = 3.5cm, + }% + \thispagestyle{empty}% + \null\vskip 15bp% + \begingroup + \centering + \parbox[t][41bp][t]{\textwidth}{% + \hskip -23bp% + \sysu@titlepage@secret + }\par + \vskip 1.5cm% + \begingroup + % 1.21 倍行距,无网格 + \sffamily\fontsize{26bp}{40.9bp}\selectfont + \sysu@title\par + \endgroup + \ifsysu@main@language@english + \vskip 5.4pt% + \begingroup + \sffamily\bfseries\fontsize{20bp}{31.2bp}\selectfont + \sysu@title@en\par + \endgroup + \vskip -9.2pt% + \fi + \vskip 25.5pt% + \sysu@titlepage@degree \vfill - \parbox[t][1.25cm][t]{\textwidth}{\centering\sysu@titlepage@date}\par + \parbox[b][5.24cm][b]{\textwidth}{% + \fangsong\fontsize{16bp}{1cm}\selectfont + \sysu@titlepage@info + }\par + \vskip 2.22cm% + \parbox[t][35.5bp][t]{\textwidth}{\centering\sysu@titlepage@date}\par + \endgroup + \clearpage + \restoregeometry +} +\newcommand\sysu@titlepage@master@professional@with@field{% + \newgeometry{ + top = 2cm, + bottom = 6cm, + hmargin = 3.5cm, + }% + \thispagestyle{empty}% + \null\vskip 10bp% + \begingroup + \centering + \parbox[t][46bp][t]{\textwidth}{% + \hskip -23bp% + \sysu@titlepage@secret + }\par + \vskip 1.5cm% + \begingroup + % 1.21 倍行距,无网格 + \sffamily\fontsize{26bp}{40.9bp}\selectfont + \sysu@title\par + \endgroup + \ifsysu@main@language@english + \vskip 5.4pt% + \begingroup + \sffamily\bfseries\fontsize{20bp}{31.2bp}\selectfont + \sysu@title@en\par + \endgroup + \vskip -9.2pt% + \fi + \vskip 25.5pt% + \sysu@titlepage@degree + \vskip 119bp% + \parbox[b][5.24cm][b]{\textwidth}{% + \fangsong\fontsize{16bp}{31bp}\selectfont + \renewcommand\sysu@info@item@format[2]{% + \begingroup + \renewcommand\CJKglue{\hspace{##1}}% + ##2% + \endgroup + }% + \renewcommand\sysu@name@title@format[2]{% + % 字距 9bp,共 16bp * 3 + 9bp * 2 = 66bp + \sysu@stretch{66bp}{##1}% + \hspace{22bp}% + % 字距 6bp + \begingroup + \renewcommand\CJKglue{\hspace{16bp}}% + ##2% + \endgroup + }% + \sysu@titlepage@info@tabular{65bp}{86.5bp}{81bp}{30.5bp}{% + \sysu@info@item{培养单位}{\sysu@info@item@format{1bp}}{\sysu@department}% + \sysu@info@item{专业领域}{\sysu@info@item@format{2bp}}{\sysu@professional@field}% + \sysu@info@item{工程领域}{\sysu@info@item@format{2bp}}{\sysu@engineering@field}% + \sysu@info@item{申请人}{\sysu@name@title}{\sysu@author}% + \sysu@info@item{学号}{}{\sysu@student@id}% + \sysu@info@item{指导教师}{\sysu@name@title}{\sysu@supervisor}% + \sysu@info@item{副指导教师}{\sysu@name@title}{\sysu@associate@supervisor}% + \sysu@info@item{联合指导教师}{\sysu@name@title}{\sysu@co@supervisor}% + }\par + }\par + \vfill + \parbox[t][33.5bp][t]{\textwidth}{\centering\sysu@titlepage@date}\par \endgroup \clearpage \restoregeometry @@ -2425,7 +2637,7 @@ \ifx\sysu@secret@level\@empty \phantom{秘密}% \else - \sysu@secret@level★\makebox[3em][c]{\sysu@secret@year}年% + \sysu@secret@level\symbol{"2605}\makebox[3em][c]{\sysu@secret@year}年% \fi\par } \newcommand\sysu@titlepage@degree{% @@ -2439,7 +2651,7 @@ \renewcommand\CJKglue{\hspace{1bp}}% \fi \ifsysu@thesis@type@thesis - (申请中山大学\sysu@degree@name + (申请中山大学\sysu@degree@category \ifsysu@degree@type@professional 专业% \fi @@ -2475,29 +2687,35 @@ \ifsysu@degree@type@academic \sysu@titlepage@info@master@academic \else - \ifx\sysu@discipline\@empty - \sysu@titlepage@info@master@other + \ifx\sysu@professional@field\@empty + \ifx\sysu@engineering@field\@empty + \sysu@titlepage@info@master@professional@without@field + \else + \sysu@titlepage@info@master@professional@with@field + \fi \else - \sysu@titlepage@info@master@engineer + \sysu@titlepage@info@master@professional@with@field \fi \fi \fi } -\newcommand\sysu@titlepage@info@tabular[4]{% +\newcommand\sysu@titlepage@info@tabular[5]{% \def\sysu@info@item##1##2##3{% \ifx##3\@empty\else - \sysu@pad{#1}{\sysu@fixed@box{#2}{##1}}% - \sysu@pad{#3}{:}% + \sysu@pad{#2}{\sysu@fixed@box{#3}{##1}}% + \sysu@pad{#4}{:}% ##2{##3}\\ \fi }% + \hspace{#1}% \begin{tabular}{l}% \renewcommand\arraystretch{1}% - #4% + #5% \end{tabular}% } +\newcommand\sysu@info@item@format[1]{#1} \newcommand\sysu@titlepage@info@doctor@academic{% - \sysu@titlepage@info@tabular{2.8cm}{2.8cm}{0.82cm}{% + \sysu@titlepage@info@tabular{2.3cm}{2.85cm}{2.75cm}{0.77cm}{% \sysu@info@item{培养单位}{}{\sysu@department}% \sysu@info@item{学科}{}{\sysu@discipline}% \sysu@info@item{研究生}{\sysu@name@title}{\sysu@author}% @@ -2509,20 +2727,36 @@ }\par } \newcommand\sysu@titlepage@info@doctor@professional{% - \sysu@titlepage@info@tabular{3.03cm}{5em}{1.52cm}{% - \sysu@info@item{培养单位}{}{\sysu@department}% + \sysu@titlepage@info@tabular{2.3cm}{3.1cm}{5em}{1.42cm}{% + \sysu@info@item{培养单位}{}{{\sysu@department}}% \sysu@info@item{申请人}{\sysu@name@title}{\sysu@author}% \sysu@info@item{学号}{}{\sysu@student@id}% \sysu@info@item{指导教师}{\sysu@name@title}{\sysu@supervisor}% \sysu@info@item{副指导教师}{\sysu@name@title}{\sysu@associate@supervisor}% - \sysu@info@item{联合导师}{\sysu@name@title}{\sysu@co@supervisor}% + \sysu@info@item{联合指导教师}{\sysu@name@title}{\sysu@co@supervisor}% \sysu@info@item{答辩委员会}{\sysu@name@title}{\sysu@committee}% }\par } \newcommand\sysu@titlepage@info@master@academic{% - \sysu@titlepage@info@tabular{3.59cm}{5.5em}{0.82cm}{% - \sysu@info@item{培养单位}{}{\sysu@department}% - \sysu@info@item{学科}{}{\sysu@discipline}% + \renewcommand\sysu@info@item@format[2]{% + \begingroup + \renewcommand\CJKglue{\hspace{##1}}% + ##2% + \endgroup + } + \renewcommand\sysu@name@title@format[2]{% + % 字距 9.8bp,共 16bp * 3 + 9.8bp * 2 = 67.5bp + \sysu@stretch{67.6bp}{##1}% + \hspace{9.8bp}% + % 字距 6bp + \begingroup + \renewcommand\CJKglue{\hspace{6bp}}% + ##2% + \endgroup + }% + \sysu@titlepage@info@tabular{58bp}{3.59cm}{5.5em}{0.82cm}{% + \sysu@info@item{培养单位}{\sysu@info@item@format{1bp}}{\sysu@department}% + \sysu@info@item{学科}{\sysu@info@item@format{2bp}}{\sysu@discipline}% \sysu@info@item{研究生}{\sysu@name@title}{\sysu@author}% \sysu@info@item{学号}{}{\sysu@student@id}% \sysu@info@item{指导教师}{\sysu@name@title}{\sysu@supervisor}% @@ -2531,10 +2765,25 @@ \sysu@info@item{答辩委员会}{\sysu@name@title}{\sysu@committee}% }\par } -\newcommand\sysu@titlepage@info@master@engineer{% - \sysu@titlepage@info@tabular{2.8cm}{2.8cm}{1.34cm}{% - \sysu@info@item{培养单位}{}{\sysu@department}% - \sysu@info@item{工程领域}{}{\sysu@discipline}% +\newcommand\sysu@titlepage@info@master@professional@without@field{% + \renewcommand\sysu@info@item@format[2]{% + \begingroup + \renewcommand\CJKglue{\hspace{##1}}% + ##2% + \endgroup + } + \renewcommand\sysu@name@title@format[2]{% + % 字距 9.8bp,共 16bp * 3 + 9.8bp * 2 = 67.5bp + \sysu@stretch{67.6bp}{##1}% + \hspace{9.8bp}% + % 字距 6bp + \begingroup + \renewcommand\CJKglue{\hspace{6bp}}% + ##2% + \endgroup + }% + \sysu@titlepage@info@tabular{58bp}{3.28cm}{5em}{1.52cm}{% + \sysu@info@item{培养单位}{\sysu@info@item@format{1bp}}{\sysu@department}% \sysu@info@item{申请人}{\sysu@name@title}{\sysu@author}% \sysu@info@item{学号}{}{\sysu@student@id}% \sysu@info@item{指导教师}{\sysu@name@title}{\sysu@supervisor}% @@ -2543,16 +2792,7 @@ \sysu@info@item{答辩委员会}{\sysu@name@title}{\sysu@committee}% }\par } -\newcommand\sysu@titlepage@info@master@other{% - \sysu@titlepage@info@tabular{3.28cm}{5em}{1.52cm}{% - \sysu@info@item{培养单位}{}{\sysu@department}% - \sysu@info@item{申请人}{\sysu@name@title}{\sysu@author}% - \sysu@info@item{学号}{}{\sysu@student@id}% - \sysu@info@item{指导教师}{\sysu@name@title}{\sysu@supervisor}% - \sysu@info@item{副指导教师}{\sysu@name@title}{\sysu@associate@supervisor}% - \sysu@info@item{联合指导教师}{\sysu@name@title}{\sysu@co@supervisor}% - \sysu@info@item{答辩委员会}{\sysu@name@title}{\sysu@committee}% - }\par +\newcommand\sysu@titlepage@info@master@professional@with@field{% } \newcommand\sysu@titlepage@date{% \begingroup @@ -2569,7 +2809,7 @@ \newgeometry{ top = 5.5cm, bottom = 5cm, - hmargin = 3.6cm, + hmargin = 3.4cm, }% \thispagestyle{empty}% \sysusetup{language = english}% @@ -2585,49 +2825,51 @@ \newcommand\sysu@titlepage@en@graduate@academic{% \begingroup \centering - \null\vskip -0.7cm% - \sysu@titlepage@en@title - \vfill + \null\vskip -0.31cm% + \parbox[t][143bp][t]{\textwidth}{% + \centering\sysu@titlepage@en@title + }\par \sanhao[1.725]% \sysu@titlepage@en@degree - \vskip 0.13cm% + \vskip 3bp% in\par - \vskip 0.1cm% + \vskip 3.5bp% {\bfseries\sffamily\sysu@discipline@en\par} - \vskip 0.7cm% + \vfill {\sffamily by\par} \vskip 0.24cm% {\sffamily\bfseries\sysu@author@en\par}% - \vskip 0.14cm% - \parbox[t][3.07cm][t]{\textwidth}{% - \centering\xiaosan[2.1]% + \vskip 0.18cm% + \parbox[t][3.0cm][t]{\textwidth}{% + \xiaosan[2.1]% \sysu@titlepage@en@supervisor }\par \sysu@titlepage@en@date - \vskip 0.65cm% + \vskip 0.7cm% \endgroup } \newcommand\sysu@titlepage@en@graduate@professional{% \begingroup \centering - \null\vskip -0.7cm% - \sysu@titlepage@en@title - \vfill + \null\vskip -0.31cm% + \parbox[t][143bp][t]{\textwidth}{% + \centering\sysu@titlepage@en@title + }\par \sanhao[1.725]% \sysu@titlepage@en@degree - \vskip 1.1cm% + \vfill {\sffamily by\par} \vskip 0.24cm% {\sffamily\bfseries\sysu@author@en\par}% - \ifx\sysu@discipline@en\empty + \ifx\sysu@professional@field@en\empty \vskip 1.95cm% \else \vskip -0.1cm% - {\sffamily\bfseries(\sysu@discipline@en)\par}% + {\sffamily\bfseries(\sysu@professional@field@en)\par}% \vskip 1.1cm% \fi \parbox[t][3.37cm][t]{\textwidth}{% - \centering\xiaosan[1.82]% + \xiaosan[1.82]% \sysu@titlepage@en@supervisor }\par \sysu@titlepage@en@date @@ -2636,7 +2878,8 @@ } \newcommand\sysu@titlepage@en@title{% \begingroup - \sffamily\bfseries\fontsize{20bp}{31bp}\selectfont + % 对齐到网格,每行 15.6bp + \sffamily\bfseries\fontsize{20bp}{31.2bp}\selectfont \sysu@title@en\par \endgroup } @@ -2656,10 +2899,11 @@ professional \fi degree of\par - {\sffamily\bfseries\sysu@degree@name@en\par}% + {\sffamily\bfseries\sysu@degree@category@en\par}% } \newcommand\sysu@titlepage@en@supervisor{% - \begin{tabular}{r@{\makebox[0.71cm][l]{:}}l}% + \hspace{1.27cm}% + \begin{tabular}{r@{\makebox[20.5bp][l]{\hspace{2bp}:}}l}% \renewcommand\arraystretch{1}% \sysu@thesis@name@en{} Supervisor & \sysu@supervisor@en \\ \ifx\sysu@associate@supervisor@en\@empty\else @@ -3019,6 +3263,7 @@ \textbf{关键词:}% \fi \sysu@clist@use{\sysu@keywords}{;}% + \gdef\sysu@keywords{}% \ifsysu@degree@bachelor \cleardoublepage \fi @@ -3082,6 +3327,7 @@ \newcommand{\sysu@backdate}{日\hspace{1em}期:} \newenvironment{acknowledgements}{% \@mainmatterfalse + \sysu@end@appendix@ref@section \ifsysu@degree@bachelor \cleardoublepage \fi @@ -3124,6 +3370,7 @@ \newif\ifsysu@statement@exists \newcommand\statement[1][]{% \@mainmatterfalse + \sysu@end@appendix@ref@section \sysu@statement@existstrue \ifsysu@degree@bachelor \cleardoublepage @@ -3246,16 +3493,33 @@ {\sysu@equation@name~\thecontentslabel}{} {\nobreak\sysu@leaders\nobreak\thecontentspage} \contentsuse{equation}{loe} - \sysu@define@key{ - cite-style = { - name = cite@style, - choices = { - super, - inline, - author-year, - } +\sysu@define@key{ + cite-style = { + name = cite@style, + choices = { + super, + inline, + author-year, } } +} +\def\bibliographystyle#1{% + \gdef\bu@bibstyle{#1}% + \ifx\@begindocumenthook\@undefined\else + \expandafter\AtBeginDocument + \fi + {\if@filesw + \immediate\write\@auxout{\string\bibstyle{#1}}% + \immediate\write\@auxout{\string\gdef\string\bu@bibstyle{#1}}% + \fi}% +} +\def\bibliography#1{% + \if@filesw + \immediate\write\@auxout{\string\bibdata{\zap@space#1 \@empty}}% + \immediate\write\@auxout{\string\gdef\string\bu@bibdata{#1}}% + \fi + \gdef\bu@bibdata{#1}% + \@input@{\jobname.bbl}} \PassOptionsToPackage{compress}{natbib} \AtEndOfPackageFile*{natbib}{ \DeclareRobustCommand\inlinecite{\@inlinecite} @@ -3643,6 +3907,56 @@ appendix-figure-in-lof = false, }% } +\newcommand\sysu@end@appendix@ref@section{} +\AtEndOfPackageFile*{bibunits}{ + \ifsysu@degree@graduate + \newcommand\sysu@appendix@bib@num@format[1]{[\@Alph\c@chapter.#1]\hfill} + \g@addto@macro\appendix{% + \renewcommand\@bibunitname{\jobname-appendix-\@alph\c@chapter}% + \bibliographyunit[\chapter]% + \renewcommand\citenumfont{\@Alph\c@chapter.}% + \renewcommand\bibsection{% + \ctexset{section/numbering = false}% + \section{\bibname}% + \ctexset{section/numbering = true}% + }% + \renewcommand\@extra@binfo{@-\@alph\c@chapter}% + \renewcommand\@extra@b@citeb{@-\@alph\c@chapter}% + \let\bibnumfmt\sysu@appendix@bib@num@format + \let\bibliographystyle\defaultbibliographystyle + \let\bibliography\sysu@appendix@bibliography + } + \renewcommand\sysu@end@appendix@ref@section{% + \bibliographyunit\relax + } + \providecommand\printbibliography{\putbib\relax}% + \AtEndDocument{\sysu@end@appendix@ref@section} + % \let\@xtestdef\@gobbletwo % This doesn't work + \def\bibunits@rerun@warning{\relax} + \fi +} +\PassOptionsToPackage{defernumbers = true}{biblatex} +\AtEndOfPackageFile*{biblatex}{ + \ifsysu@degree@graduate + \DeclareRefcontext{appendix}{} + \g@addto@macro\appendix{% + \pretocmd\chapter{% + \newrefsection + \@tempcnta=\c@chapter + \advance\@tempcnta\@ne + \newrefcontext[labelprefix = {\@Alph\@tempcnta.}]{appendix}% + }{}{\sysu@patch@error{\chapter}}% + \defbibheading{bibliography}[\bibname]{% + \ctexset{section/numbering = false}% + \section{#1}% + \ctexset{section/numbering = true}% + }% + } + % \renewcommand\sysu@end@appendix@ref@section{% + % \endrefsection + % } + \fi +} \@ifpackagelater{titletoc}{2019/07/14}{ \newcommand\sysu@print@contents[5]{% \printcontents[#1]{#2}{#3}[#4]{}% @@ -3690,9 +4004,10 @@ }, }% \section{摘要}% - \quotation - }{% - \endquotation + \par + \ifx\sysu@keywords\@empty\else + \textbf{关键词:}\sysu@clist@use{\sysu@keywords}{;}\par + \fi }% \sysu@set@partial@toc@format \renewcommand\tableofcontents{% @@ -3767,6 +4082,7 @@ \newcommand\sysu@appendix@bibliography[1]{\putbib[#1]} \newenvironment{resume}{% \@mainmatterfalse + \sysu@end@appendix@ref@section \sysu@chapter*{\sysu@resume@name}% \ctexset{ section = { @@ -3782,17 +4098,20 @@ aftertitle = :, }, }% - \ifsysu@degree@graduate - \fontsize{12bp}{16bp}\selectfont - \fi \setlist[achievements]{ - topsep = 6bp, - itemsep = 6bp, - leftmargin = 1cm, - labelwidth = 1cm, - labelsep = 0pt, - align = left, - label = [\arabic*], + topsep = 6bp, + itemsep = 6bp, + leftmargin = 1cm, + labelwidth = 1cm, + labelsep = 0pt, + first = { + \ifsysu@degree@graduate + \fontsize{12bp}{16bp}\selectfont + \fi + }, + align = left, + label = [\arabic*], + resume = achievements, }% \else \ctexset{ @@ -3809,12 +4128,13 @@ \sffamily\fontsize{15bp}{20bp}\selectfont \fi \setlist[achievements]{ - topsep = 0bp, - itemsep = 0bp, - leftmargin = 1.75cm, - labelsep = 0.5cm, - align = right, - label = [\arabic*], + topsep = 0bp, + itemsep = 0bp, + leftmargin = 1.75cm, + labelsep = 0.5cm, + align = right, + label = [\arabic*], + resume = achievements, }% \fi }{} @@ -3846,6 +4166,7 @@ \sysu@error{The "\protect\publicationskip" is obsolete. Do not use it}% } \NewEnviron{comments}[1][]{% + \sysu@end@appendix@ref@section \ifsysu@degree@graduate \@mainmatterfalse \kv@define@key{sysu@comments}{name}{\let\sysu@comments@name\kv@value}% @@ -3862,6 +4183,7 @@ \fi } \NewEnviron{resolution}{% + \sysu@end@appendix@ref@section \ifsysu@degree@graduate \@mainmatterfalse \chapter{\sysu@resolution@name}% @@ -3886,21 +4208,21 @@ \sysu@pdfbookmark{0}{综合论文训练记录表}% \includepdf[pages=-]{\sysu@record@file}% } +\PassOptionsToPackage{ + linktoc = all, + bookmarksdepth = 2, + bookmarksnumbered = true, + bookmarksopen = true, + bookmarksopenlevel = 1, + bookmarksdepth = 3, + unicode = true, + psdextra = true, + breaklinks = true, + plainpages = false, + pdfdisplaydoctitle = true, + hidelinks, +}{hyperref} \AtEndOfPackageFile*{hyperref}{ - \hypersetup{ - linktoc = all, - bookmarksdepth = 2, - bookmarksnumbered = true, - bookmarksopen = true, - bookmarksopenlevel = 1, - bookmarksdepth = 3, - unicode = true, - psdextra = true, - breaklinks = true, - plainpages = false, - pdfdisplaydoctitle = true, - hidelinks, - }% \newcounter{sysu@bookmark} \renewcommand\sysu@pdfbookmark[2]{% \phantomsection @@ -3933,14 +4255,14 @@ \hypersetup{ pdftitle = \sysu@title, pdfauthor = \sysu@author, - pdfsubject = \sysu@degree@name, + pdfsubject = \sysu@degree@category, pdfkeywords = \sysu@keywords, }% \else \hypersetup{ pdftitle = \sysu@title@en, pdfauthor = \sysu@author@en, - pdfsubject = \sysu@degree@name@en, + pdfsubject = \sysu@degree@category@en, pdfkeywords = \sysu@keywords@en, }% \fi diff --git a/sysuthesis.dtx b/sysuthesis.dtx index a75a580..1239488 100644 --- a/sysuthesis.dtx +++ b/sysuthesis.dtx @@ -1,6 +1,6 @@ % \iffalse meta-comment % -% Copyright (C) 2021-2022 by Dapeng Feng +% Copyright (C) 2021-2023 by Dapeng Feng % % This work may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c @@ -14,8 +14,8 @@ % % \iffalse %<*driver> -\newcommand\sysuthesisversion{1.1.0} -\ProvidesFile{sysuthesis.dtx}[2022/11/16 {\sysuthesisversion} Sun Yat-sen University Thesis Template] +\newcommand\sysuthesisversion{1.1.1} +\ProvidesFile{sysuthesis.dtx}[2023/10/18 {\sysuthesisversion} Sun Yat-sen University Thesis Template] \documentclass{ltxdoc} \usepackage{dtx-style} @@ -99,7 +99,7 @@ % \textbf{Thesis} Template)是为了帮助中山大学毕业生撰写毕业论文而编写 % 的 \LaTeX{} 论文模板。 % -% 本文档将尽量完整的介绍模板的使用方法,如有不清楚之处,或者想提出改进建议, +% 本文档将尽量完整地介绍模板的使用方法,如有不清楚之处,或者想提出改进建议, % 可以在 \href{https://github.com/DapengFeng/sysuthesis/issues/}{GitHub Issues} % 参与讨论或提问。 % 有兴趣者都可以参与完善此手册,也非常欢迎对代码的贡献。 @@ -437,15 +437,15 @@ % \end{latex} % % \subsubsection{申请学位名称} -% \label{sec:degree-name} -% 学位名称的设置比较复杂,见表~\ref{tab:degree-name}。 +% \label{sec:degree-category} +% 学位名称的设置比较复杂,见表~\ref{tab:degree-category}。 % % \begin{table}[h] % \caption{学位名称的要求} -% \label{tab:degree-name} +% \label{tab:degree-category} % \begin{tabular}{p{2cm}p{6cm}p{6cm}} % \toprule -% 学位类型 & degree-name & degree-name* \\ +% 学位类型 & degree-category & degree-category* \\ % \midrule % 学术型博士 & 需注明所属的学科门类,例如: % 哲学、经济学、法学、教育学、文学、历史学、理学、工学、农学、医学、 @@ -453,7 +453,7 @@ % & Doctor of Philosophy \\ % \midrule % 学术型硕士 & 同上 -% & 哲学、文学、历史学、法学、教育学、艺术学门类,公共管理学科 +% & 哲学、文学、历史学、法学、教育学、艺术学门类 % 填写“Master of Arts“,其它填写“Master of Science” \\ % \midrule % 专业型研究生学位 & 专业学位的名称,例如:教育博士、工程硕士 @@ -466,8 +466,8 @@ % % \begin{latex} % \sysusetup{ -% degree-name = {您要申请什么学位}, -% degree-name* = {Degree in English}, +% degree-category = {您要申请什么学位}, +% degree-category* = {Degree in English}, % } % \end{latex} % @@ -482,10 +482,8 @@ % \subsubsection{学科名称} % % \begin{itemize} -% \item 学术型学位:获得一级学科授权的学科填写一级学科名称,其他填写二级学科名称; -% \item 工程硕士:工程领域名称; -% \item 其他专业型学位:- -% \item 本科生:专业名称,第二学位论文需标注“(第二学位)” +% \item 研究生学术型学位:获得一级学科授权的学科填写一级学科名称,其他填写二级学科名称; +% \item 本科生:专业名称,第二学位论文需标注“(第二学位)”。 % \end{itemize} % % \begin{latex} @@ -495,6 +493,24 @@ % } % \end{latex} % +% \subsubsection{专业领域} +% +% 仅用于研究生专业型学位。 +% +% \begin{itemize} +% \item 设置专业领域的专业学位类别,填写相应专业领域名称; +% \item 2019 级及之前工程硕士学位论文,在 \option{engineering-field} 填写相应工程领域名称; +% \item 其他专业学位类别的学位论文无需此信息。 +% \end{itemize} +% +% \begin{latex} +% \sysusetup{ +% professional-field = {专业领域}, +% professional-field* = {Professional field}, +% } +% \end{latex} +% +% % \subsubsection{作者姓名} % 作者姓名。 % \begin{latex} @@ -1248,10 +1264,10 @@ % % \subsection{基本信息} % \begin{macrocode} -%\newcommand\sysuthesisversion{1.1.0} +%\newcommand\sysuthesisversion{1.1.1} %\NeedsTeXFormat{LaTeX2e}[2017/04/15] %\ProvidesClass{sysuthesis} -%[2022/11/16 {\sysuthesisversion} Sun Yat-sen University Thesis Template] +%[2023/10/18 {\sysuthesisversion} Sun Yat-sen University Thesis Template] % \end{macrocode} % % 报错 @@ -1803,11 +1819,9 @@ } } \AtEndOfPackageFile*{natbib}{ - \ifsysu@degree@bachelor - \@ifpackageloaded{apacite}{}{ - \RequirePackage{bibunits} - } - \fi + \@ifpackageloaded{apacite}{}{ + \RequirePackage{bibunits} + } } % \end{macrocode} % @@ -2304,7 +2318,7 @@ \newcommand\sysu@set@font@times{% \setmainfont{Times New Roman}% \setsansfont{Arial}% - \ifsysu@system@mac + \ifsysu@fontset@mac \setmonofont{Menlo}[Scale = MatchLowercase]% \else \setmonofont{Courier New}[Scale = MatchLowercase]% @@ -2897,7 +2911,7 @@ \newcommand\square{\mdlgwhtsquare}% \newcommand\blacksquare{\mdlgblksquare}% \AtBeginDocument{% - \renewcommand\checkmark{\ensuremath{✓}}% + \renewcommand\checkmark{\ensuremath{\symbol{"2713}}}% }% % \end{macrocode} % @@ -4128,24 +4142,39 @@ % % 学位中英文。 % \begin{macrocode} - degree-name = { + degree-category = { default = {工学博士}, - name = degree@name, + name = degree@category, }, - degree-name* = { + degree-category* = { default = {Doctor of Philosophy}, - name = degree@name@en, + name = degree@category@en, + }, + % 为了向后兼容 + degree-name = { + name = degree@category, + }, + degree-name* = { + name = degree@category@en, }, +} +\sysu@option@hook{degree-name}{% + \sysu@warning{`degree-name' is deprecated. Use `degree-category' instead.} +} +\sysu@option@hook{degree-name*}{% + \sysu@warning{`degree-name*' is deprecated. Use `degree-category*' instead.} +} % \end{macrocode} % % 院系中英文名称。 % \begin{macrocode} +\sysu@define@key{ department = { default = {计算机科学与技术系}, }, % \end{macrocode} % -% 专业中英文名称。 +% 学科中英文名称。 % \begin{macrocode} discipline = { % default = {计算机科学与技术}, @@ -4154,6 +4183,42 @@ % default = {Computer Science and Technology}, name = discipline@en, }, +} +\sysu@option@hook{discipline}{% + \ifsysu@degree@type@professional + \sysu@warning{`discipline' for professional degree is deprecated. Use `professional-field' instead.} + \let\sysu@professional@field\sysu@discipline + \let\sysu@discipline\@empty + \fi +} +\sysu@option@hook{discipline*}{% + \ifsysu@degree@type@professional + \sysu@warning{`discipline*' for professional degree is deprecated. Use `professional-field*' instead.} + \let\sysu@professional@field@en\sysu@discipline@en + \let\sysu@discipline@en\@empty + \fi +} +% \end{macrocode} +% +% 专业领域。 +% \begin{macrocode} +\sysu@define@key{ + professional-field = { + name = professional@field, + }, + professional-field* = { + name = professional@field@en, + }, +% \end{macrocode} +% +% 工程领域。 +% \begin{macrocode} + engineering-field = { + name = engineering@field, + }, + engineering-field* = { + name = engineering@field@en, + }, % \end{macrocode} % % 论文成文日期。 @@ -4288,8 +4353,19 @@ \stepcounter{sysu@csl@count}% } \newcommand\sysu@name@title@format[2]{% - \sysu@pad{3cm}{\sysu@stretch{4em}{#1}}% - \sysu@stretch{3em}{#2}% + \ifsysu@degree@type@professional + % 字距 9.8bp,共 16bp * 3 + 9.8bp * 2 = 67.5bp + \sysu@stretch{67.6bp}{#1}% + \hspace{9.8bp}% + % 字距 6bp + \begingroup + \renewcommand\CJKglue{\hspace{9.8bp}}% + #2% + \endgroup + \else + \sysu@pad{3cm}{\sysu@stretch{4em}{#1}}% + \sysu@stretch{3em}{#2}% + \fi } \newcommand\sysu@name@title[1]{% \setcounter{sysu@csl@count}{0}% @@ -4382,12 +4458,24 @@ \ifsysu@degree@graduate \ifsysu@thesis@type@thesis \ifsysu@degree@type@academic - \sysu@titlepage@graduate@academic + \ifsysu@degree@doctor + \sysu@titlepage@doctor@academic + \else + \sysu@titlepage@master@academic + \fi \else - \ifx\sysu@discipline\@empty - \sysu@titlepage@graduate@professional + \ifsysu@degree@doctor + \sysu@titlepage@doctor@professional \else - \sysu@titlepage@graduate@academic + \ifx\sysu@professional@field\@empty + \ifx\sysu@engineering@field\@empty + \sysu@titlepage@master@professional@without@field + \else + \sysu@titlepage@master@professional@with@field + \fi + \else + \sysu@titlepage@master@professional@with@field + \fi \fi \fi \else @@ -4421,7 +4509,7 @@ % 然而作为事实标准的 Word 模板的页边距是上下 6.0 厘米,左右 4.0 厘米。 % 这里缩小上边距以方便排版保密信息。 % \begin{macrocode} -\newcommand\sysu@titlepage@graduate@academic{% +\newcommand\sysu@titlepage@doctor@academic{% \newgeometry{ top = 2cm, bottom = 3.25cm, @@ -4447,10 +4535,10 @@ \endgroup \vskip -9.2pt% \vskip 24.1pt% - \sysu@titlepage@degree + \sysu@titlepage@degree\par \vfill \parbox[t][7.25cm][t]{\textwidth}{% - \centering\fangsong\fontsize{16bp}{31.2bp}\selectfont + \fangsong\fontsize{16bp}{31.2bp}\selectfont \sysu@titlepage@info }\par \vfill @@ -4463,7 +4551,7 @@ % % 专业型学位论文中文封面 % \begin{macrocode} -\newcommand\sysu@titlepage@graduate@professional{% +\newcommand\sysu@titlepage@doctor@professional{% \newgeometry{ top = 2cm, bottom = 3.25cm, @@ -4492,12 +4580,172 @@ \vskip 25.5pt% \sysu@titlepage@degree \vfill - \parbox[t][5.24cm][t]{\textwidth}{% - \centering\fangsong\fontsize{16bp}{1cm}\selectfont + \parbox[b][5.24cm][b]{\textwidth}{% + \fangsong\fontsize{16bp}{1cm}\selectfont \sysu@titlepage@info }\par + \vskip 2.22cm% + \parbox[t][1.0cm][t]{\textwidth}{\centering\sysu@titlepage@date}\par + \endgroup + \clearpage + \restoregeometry +} +% \end{macrocode} +% +% 学术型硕士 +% \begin{macrocode} +\newcommand\sysu@titlepage@master@academic{% + \newgeometry{ + top = 2cm, + bottom = 6cm, + hmargin = 3.5cm, + }% + \thispagestyle{empty}% + \null\vskip 10bp% + \begingroup + \centering + \parbox[t][55bp][t]{\textwidth}{% + \hskip -23bp% + \sysu@titlepage@secret + }\par + \vskip 34pt% + \begingroup + % 1.21 倍行距 + \sffamily\fontsize{26bp}{40.898bp}\selectfont + \sysu@title\par + \endgroup + \ifsysu@main@language@english + \vskip 5.4pt% + \begingroup + \sffamily\bfseries\fontsize{20bp}{31.2bp}\selectfont + \sysu@title@en\par + \endgroup + \vskip -9.2pt% + \fi + \vskip 18pt% + \sysu@titlepage@degree\par + \vfill + \parbox[t][7.05cm][t]{\textwidth}{% + % 表格行高 1cm = 28.35bp + \fangsong\fontsize{16bp}{28.35bp}\selectfont + \sysu@titlepage@info + }\par + \parbox[t][37bp][t]{\textwidth}{\centering\sysu@titlepage@date}\par + \endgroup + \clearpage + \restoregeometry +} +% \end{macrocode} +% +% 专业型硕士 +% \begin{macrocode} +\newcommand\sysu@titlepage@master@professional@without@field{% + \newgeometry{ + top = 2cm, + bottom = 6cm, + hmargin = 3.5cm, + }% + \thispagestyle{empty}% + \null\vskip 15bp% + \begingroup + \centering + \parbox[t][41bp][t]{\textwidth}{% + \hskip -23bp% + \sysu@titlepage@secret + }\par + \vskip 1.5cm% + \begingroup + % 1.21 倍行距,无网格 + \sffamily\fontsize{26bp}{40.9bp}\selectfont + \sysu@title\par + \endgroup + \ifsysu@main@language@english + \vskip 5.4pt% + \begingroup + \sffamily\bfseries\fontsize{20bp}{31.2bp}\selectfont + \sysu@title@en\par + \endgroup + \vskip -9.2pt% + \fi + \vskip 25.5pt% + \sysu@titlepage@degree + \vfill + \parbox[b][5.24cm][b]{\textwidth}{% + \fangsong\fontsize{16bp}{1cm}\selectfont + \sysu@titlepage@info + }\par + \vskip 2.22cm% + \parbox[t][35.5bp][t]{\textwidth}{\centering\sysu@titlepage@date}\par + \endgroup + \clearpage + \restoregeometry +} +% \end{macrocode} +% +% 专业型硕士(有专业领域) +% \begin{macrocode} +\newcommand\sysu@titlepage@master@professional@with@field{% + \newgeometry{ + top = 2cm, + bottom = 6cm, + hmargin = 3.5cm, + }% + \thispagestyle{empty}% + \null\vskip 10bp% + \begingroup + \centering + \parbox[t][46bp][t]{\textwidth}{% + \hskip -23bp% + \sysu@titlepage@secret + }\par + \vskip 1.5cm% + \begingroup + % 1.21 倍行距,无网格 + \sffamily\fontsize{26bp}{40.9bp}\selectfont + \sysu@title\par + \endgroup + \ifsysu@main@language@english + \vskip 5.4pt% + \begingroup + \sffamily\bfseries\fontsize{20bp}{31.2bp}\selectfont + \sysu@title@en\par + \endgroup + \vskip -9.2pt% + \fi + \vskip 25.5pt% + \sysu@titlepage@degree + \vskip 119bp% + \parbox[b][5.24cm][b]{\textwidth}{% + \fangsong\fontsize{16bp}{31bp}\selectfont + \renewcommand\sysu@info@item@format[2]{% + \begingroup + \renewcommand\CJKglue{\hspace{##1}}% + ##2% + \endgroup + }% + \renewcommand\sysu@name@title@format[2]{% + % 字距 9bp,共 16bp * 3 + 9bp * 2 = 66bp + \sysu@stretch{66bp}{##1}% + \hspace{22bp}% + % 字距 6bp + \begingroup + \renewcommand\CJKglue{\hspace{16bp}}% + ##2% + \endgroup + }% + \sysu@titlepage@info@tabular{65bp}{86.5bp}{81bp}{30.5bp}{% + \sysu@info@item{培养单位}{\sysu@info@item@format{1bp}}{\sysu@department}% + \sysu@info@item{专业领域}{\sysu@info@item@format{2bp}}{\sysu@professional@field}% + \sysu@info@item{工程领域}{\sysu@info@item@format{2bp}}{\sysu@engineering@field}% + \sysu@info@item{申请人}{\sysu@name@title}{\sysu@author}% + \sysu@info@item{学号}{}{\sysu@student@id}% + \sysu@info@item{指导教师}{\sysu@name@title}{\sysu@supervisor}% + \sysu@info@item{副指导教师}{\sysu@name@title}{\sysu@associate@supervisor}% + \sysu@info@item{联合指导教师}{\sysu@name@title}{\sysu@co@supervisor}% + }\par + }\par \vfill - \parbox[t][1.25cm][t]{\textwidth}{\centering\sysu@titlepage@date}\par + \parbox[t][33.5bp][t]{\textwidth}{\centering\sysu@titlepage@date}\par \endgroup \clearpage \restoregeometry @@ -4559,7 +4807,7 @@ \ifx\sysu@secret@level\@empty \phantom{秘密}% \else - \sysu@secret@level★\makebox[3em][c]{\sysu@secret@year}年% + \sysu@secret@level\symbol{"2605}\makebox[3em][c]{\sysu@secret@year}年% \fi\par } % \end{macrocode} @@ -4578,7 +4826,7 @@ \renewcommand\CJKglue{\hspace{1bp}}% \fi \ifsysu@thesis@type@thesis - (申请中山大学\sysu@degree@name + (申请中山大学\sysu@degree@category \ifsysu@degree@type@professional 专业% \fi @@ -4618,10 +4866,14 @@ \ifsysu@degree@type@academic \sysu@titlepage@info@master@academic \else - \ifx\sysu@discipline\@empty - \sysu@titlepage@info@master@other + \ifx\sysu@professional@field\@empty + \ifx\sysu@engineering@field\@empty + \sysu@titlepage@info@master@professional@without@field + \else + \sysu@titlepage@info@master@professional@with@field + \fi \else - \sysu@titlepage@info@master@engineer + \sysu@titlepage@info@master@professional@with@field \fi \fi \fi @@ -4629,22 +4881,29 @@ % \end{macrocode} % % 标题页作者信息表 +% \texttt{\#1}: 表格左侧至版心的距离;\\ +% \texttt{\#2}: “培养方案”的边框宽度;\\ +% \texttt{\#3}: “培养方案”的文字宽度;\\ +% \texttt{\#4}: 冒号的边框;\\ +% \texttt{\#5}: 表格内容。 % \begin{macrocode} -\newcommand\sysu@titlepage@info@tabular[4]{% +\newcommand\sysu@titlepage@info@tabular[5]{% \def\sysu@info@item##1##2##3{% \ifx##3\@empty\else - \sysu@pad{#1}{\sysu@fixed@box{#2}{##1}}% - \sysu@pad{#3}{:}% + \sysu@pad{#2}{\sysu@fixed@box{#3}{##1}}% + \sysu@pad{#4}{:}% ##2{##3}\\ \fi }% + \hspace{#1}% \begin{tabular}{l}% \renewcommand\arraystretch{1}% - #4% + #5% \end{tabular}% } +\newcommand\sysu@info@item@format[1]{#1} \newcommand\sysu@titlepage@info@doctor@academic{% - \sysu@titlepage@info@tabular{2.8cm}{2.8cm}{0.82cm}{% + \sysu@titlepage@info@tabular{2.3cm}{2.85cm}{2.75cm}{0.77cm}{% \sysu@info@item{培养单位}{}{\sysu@department}% \sysu@info@item{学科}{}{\sysu@discipline}% \sysu@info@item{研究生}{\sysu@name@title}{\sysu@author}% @@ -4656,20 +4915,36 @@ }\par } \newcommand\sysu@titlepage@info@doctor@professional{% - \sysu@titlepage@info@tabular{3.03cm}{5em}{1.52cm}{% - \sysu@info@item{培养单位}{}{\sysu@department}% + \sysu@titlepage@info@tabular{2.3cm}{3.1cm}{5em}{1.42cm}{% + \sysu@info@item{培养单位}{}{{\sysu@department}}% \sysu@info@item{申请人}{\sysu@name@title}{\sysu@author}% \sysu@info@item{学号}{}{\sysu@student@id}% \sysu@info@item{指导教师}{\sysu@name@title}{\sysu@supervisor}% \sysu@info@item{副指导教师}{\sysu@name@title}{\sysu@associate@supervisor}% - \sysu@info@item{联合导师}{\sysu@name@title}{\sysu@co@supervisor}% + \sysu@info@item{联合指导教师}{\sysu@name@title}{\sysu@co@supervisor}% \sysu@info@item{答辩委员会}{\sysu@name@title}{\sysu@committee}% }\par } \newcommand\sysu@titlepage@info@master@academic{% - \sysu@titlepage@info@tabular{3.59cm}{5.5em}{0.82cm}{% - \sysu@info@item{培养单位}{}{\sysu@department}% - \sysu@info@item{学科}{}{\sysu@discipline}% + \renewcommand\sysu@info@item@format[2]{% + \begingroup + \renewcommand\CJKglue{\hspace{##1}}% + ##2% + \endgroup + } + \renewcommand\sysu@name@title@format[2]{% + % 字距 9.8bp,共 16bp * 3 + 9.8bp * 2 = 67.5bp + \sysu@stretch{67.6bp}{##1}% + \hspace{9.8bp}% + % 字距 6bp + \begingroup + \renewcommand\CJKglue{\hspace{6bp}}% + ##2% + \endgroup + }% + \sysu@titlepage@info@tabular{58bp}{3.59cm}{5.5em}{0.82cm}{% + \sysu@info@item{培养单位}{\sysu@info@item@format{1bp}}{\sysu@department}% + \sysu@info@item{学科}{\sysu@info@item@format{2bp}}{\sysu@discipline}% \sysu@info@item{研究生}{\sysu@name@title}{\sysu@author}% \sysu@info@item{学号}{}{\sysu@student@id}% \sysu@info@item{指导教师}{\sysu@name@title}{\sysu@supervisor}% @@ -4678,10 +4953,26 @@ \sysu@info@item{答辩委员会}{\sysu@name@title}{\sysu@committee}% }\par } -\newcommand\sysu@titlepage@info@master@engineer{% - \sysu@titlepage@info@tabular{2.8cm}{2.8cm}{1.34cm}{% - \sysu@info@item{培养单位}{}{\sysu@department}% - \sysu@info@item{工程领域}{}{\sysu@discipline}% +% 无专业领域 +\newcommand\sysu@titlepage@info@master@professional@without@field{% + \renewcommand\sysu@info@item@format[2]{% + \begingroup + \renewcommand\CJKglue{\hspace{##1}}% + ##2% + \endgroup + } + \renewcommand\sysu@name@title@format[2]{% + % 字距 9.8bp,共 16bp * 3 + 9.8bp * 2 = 67.5bp + \sysu@stretch{67.6bp}{##1}% + \hspace{9.8bp}% + % 字距 6bp + \begingroup + \renewcommand\CJKglue{\hspace{6bp}}% + ##2% + \endgroup + }% + \sysu@titlepage@info@tabular{58bp}{3.28cm}{5em}{1.52cm}{% + \sysu@info@item{培养单位}{\sysu@info@item@format{1bp}}{\sysu@department}% \sysu@info@item{申请人}{\sysu@name@title}{\sysu@author}% \sysu@info@item{学号}{}{\sysu@student@id}% \sysu@info@item{指导教师}{\sysu@name@title}{\sysu@supervisor}% @@ -4690,16 +4981,8 @@ \sysu@info@item{答辩委员会}{\sysu@name@title}{\sysu@committee}% }\par } -\newcommand\sysu@titlepage@info@master@other{% - \sysu@titlepage@info@tabular{3.28cm}{5em}{1.52cm}{% - \sysu@info@item{培养单位}{}{\sysu@department}% - \sysu@info@item{申请人}{\sysu@name@title}{\sysu@author}% - \sysu@info@item{学号}{}{\sysu@student@id}% - \sysu@info@item{指导教师}{\sysu@name@title}{\sysu@supervisor}% - \sysu@info@item{副指导教师}{\sysu@name@title}{\sysu@associate@supervisor}% - \sysu@info@item{联合指导教师}{\sysu@name@title}{\sysu@co@supervisor}% - \sysu@info@item{答辩委员会}{\sysu@name@title}{\sysu@committee}% - }\par +% 有专业领域 +\newcommand\sysu@titlepage@info@master@professional@with@field{% } % \end{macrocode} % @@ -4726,7 +5009,7 @@ \newgeometry{ top = 5.5cm, bottom = 5cm, - hmargin = 3.6cm, + hmargin = 3.4cm, }% \thispagestyle{empty}% \sysusetup{language = english}% @@ -4742,49 +5025,51 @@ \newcommand\sysu@titlepage@en@graduate@academic{% \begingroup \centering - \null\vskip -0.7cm% - \sysu@titlepage@en@title - \vfill + \null\vskip -0.31cm% + \parbox[t][143bp][t]{\textwidth}{% + \centering\sysu@titlepage@en@title + }\par \sanhao[1.725]% \sysu@titlepage@en@degree - \vskip 0.13cm% + \vskip 3bp% in\par - \vskip 0.1cm% + \vskip 3.5bp% {\bfseries\sffamily\sysu@discipline@en\par} - \vskip 0.7cm% + \vfill {\sffamily by\par} \vskip 0.24cm% {\sffamily\bfseries\sysu@author@en\par}% - \vskip 0.14cm% - \parbox[t][3.07cm][t]{\textwidth}{% - \centering\xiaosan[2.1]% + \vskip 0.18cm% + \parbox[t][3.0cm][t]{\textwidth}{% + \xiaosan[2.1]% \sysu@titlepage@en@supervisor }\par \sysu@titlepage@en@date - \vskip 0.65cm% + \vskip 0.7cm% \endgroup } \newcommand\sysu@titlepage@en@graduate@professional{% \begingroup \centering - \null\vskip -0.7cm% - \sysu@titlepage@en@title - \vfill + \null\vskip -0.31cm% + \parbox[t][143bp][t]{\textwidth}{% + \centering\sysu@titlepage@en@title + }\par \sanhao[1.725]% \sysu@titlepage@en@degree - \vskip 1.1cm% + \vfill {\sffamily by\par} \vskip 0.24cm% {\sffamily\bfseries\sysu@author@en\par}% - \ifx\sysu@discipline@en\empty + \ifx\sysu@professional@field@en\empty \vskip 1.95cm% \else \vskip -0.1cm% - {\sffamily\bfseries(\sysu@discipline@en)\par}% + {\sffamily\bfseries(\sysu@professional@field@en)\par}% \vskip 1.1cm% \fi \parbox[t][3.37cm][t]{\textwidth}{% - \centering\xiaosan[1.82]% + \xiaosan[1.82]% \sysu@titlepage@en@supervisor }\par \sysu@titlepage@en@date @@ -4793,7 +5078,8 @@ } \newcommand\sysu@titlepage@en@title{% \begingroup - \sffamily\bfseries\fontsize{20bp}{31bp}\selectfont + % 对齐到网格,每行 15.6bp + \sffamily\bfseries\fontsize{20bp}{31.2bp}\selectfont \sysu@title@en\par \endgroup } @@ -4813,10 +5099,11 @@ professional \fi degree of\par - {\sffamily\bfseries\sysu@degree@name@en\par}% + {\sffamily\bfseries\sysu@degree@category@en\par}% } \newcommand\sysu@titlepage@en@supervisor{% - \begin{tabular}{r@{\makebox[0.71cm][l]{:}}l}% + \hspace{1.27cm}% + \begin{tabular}{r@{\makebox[20.5bp][l]{\hspace{2bp}:}}l}% \renewcommand\arraystretch{1}% \sysu@thesis@name@en{} Supervisor & \sysu@supervisor@en \\ \ifx\sysu@associate@supervisor@en\@empty\else @@ -5238,6 +5525,7 @@ \textbf{关键词:}% \fi \sysu@clist@use{\sysu@keywords}{;}% + \gdef\sysu@keywords{}% \ifsysu@degree@bachelor \cleardoublepage \fi @@ -5330,6 +5618,7 @@ % \begin{macrocode} \newenvironment{acknowledgements}{% \@mainmatterfalse + \sysu@end@appendix@ref@section \ifsysu@degree@bachelor \cleardoublepage \fi @@ -5378,6 +5667,7 @@ \newif\ifsysu@statement@exists \newcommand\statement[1][]{% \@mainmatterfalse + \sysu@end@appendix@ref@section \sysu@statement@existstrue \ifsysu@degree@bachelor \cleardoublepage @@ -5568,20 +5858,40 @@ % % 设置 \option{cite-style} 的接口,只对 \BibTeX{} 的编译方式有效。 % \begin{macrocode} - \sysu@define@key{ - cite-style = { - name = cite@style, - choices = { - super, - inline, - author-year, - } +\sysu@define@key{ + cite-style = { + name = cite@style, + choices = { + super, + inline, + author-year, } } +} % \end{macrocode} % % \subsubsection{BibTeX + \pkg{natbib} 宏包} % +% \begin{macrocode} +\def\bibliographystyle#1{% + \gdef\bu@bibstyle{#1}% + \ifx\@begindocumenthook\@undefined\else + \expandafter\AtBeginDocument + \fi + {\if@filesw + \immediate\write\@auxout{\string\bibstyle{#1}}% + \immediate\write\@auxout{\string\gdef\string\bu@bibstyle{#1}}% + \fi}% +} +\def\bibliography#1{% + \if@filesw + \immediate\write\@auxout{\string\bibdata{\zap@space#1 \@empty}}% + \immediate\write\@auxout{\string\gdef\string\bu@bibdata{#1}}% + \fi + \gdef\bu@bibdata{#1}% + \@input@{\jobname.bbl}} +% \end{macrocode} +% % \BibTeX{} 和 \pkg{natbib} 宏包的配置。 % \begin{macrocode} \PassOptionsToPackage{compress}{natbib} @@ -6085,6 +6395,68 @@ } % \end{macrocode} % +% 附录中的参考文献等另行编序号。 +% \begin{macrocode} +\newcommand\sysu@end@appendix@ref@section{} +% \end{macrocode} +% +% 如果正文和附录引用了同一文献,\pkg{bibunits} 会给出无意义的警告,这里消除警告。 +% \begin{macrocode} +\AtEndOfPackageFile*{bibunits}{ + \ifsysu@degree@graduate + \newcommand\sysu@appendix@bib@num@format[1]{[\@Alph\c@chapter.#1]\hfill} + \g@addto@macro\appendix{% + \renewcommand\@bibunitname{\jobname-appendix-\@alph\c@chapter}% + \bibliographyunit[\chapter]% + \renewcommand\citenumfont{\@Alph\c@chapter.}% + \renewcommand\bibsection{% + \ctexset{section/numbering = false}% + \section{\bibname}% + \ctexset{section/numbering = true}% + }% + \renewcommand\@extra@binfo{@-\@alph\c@chapter}% + \renewcommand\@extra@b@citeb{@-\@alph\c@chapter}% + \let\bibnumfmt\sysu@appendix@bib@num@format + \let\bibliographystyle\defaultbibliographystyle + \let\bibliography\sysu@appendix@bibliography + } + \renewcommand\sysu@end@appendix@ref@section{% + \bibliographyunit\relax + } + \providecommand\printbibliography{\putbib\relax}% + \AtEndDocument{\sysu@end@appendix@ref@section} +% \end{macrocode} +% +% 如果正文和附录引用了同一文献,\pkg{bibunits} 会给出无意义的警告,这里消除警告。 +% \begin{macrocode} + % \let\@xtestdef\@gobbletwo % This doesn't work + \def\bibunits@rerun@warning{\relax} + \fi +} +\PassOptionsToPackage{defernumbers = true}{biblatex} +\AtEndOfPackageFile*{biblatex}{ + \ifsysu@degree@graduate + \DeclareRefcontext{appendix}{} + \g@addto@macro\appendix{% + \pretocmd\chapter{% + \newrefsection + \@tempcnta=\c@chapter + \advance\@tempcnta\@ne + \newrefcontext[labelprefix = {\@Alph\@tempcnta.}]{appendix}% + }{}{\sysu@patch@error{\chapter}}% + \defbibheading{bibliography}[\bibname]{% + \ctexset{section/numbering = false}% + \section{#1}% + \ctexset{section/numbering = true}% + }% + } + % \renewcommand\sysu@end@appendix@ref@section{% + % \endrefsection + % } + \fi +} +% \end{macrocode} +% % 本科生《写作指南》有独特的要求:附录 A 为外文资料的调研阅读报告或书面翻译, % 并且要分别附上独立的参考文献和外文资料的原文索引。 % 所以这里定义 \env{survey} 和 \env{translation} 专门处理这两种情况, @@ -6151,9 +6523,10 @@ }, }% \section{摘要}% - \quotation - }{% - \endquotation + \par + \ifx\sysu@keywords\@empty\else + \textbf{关键词:}\sysu@clist@use{\sysu@keywords}{;}\par + \fi }% \sysu@set@partial@toc@format \renewcommand\tableofcontents{% @@ -6258,6 +6631,7 @@ % \begin{macrocode} \newenvironment{resume}{% \@mainmatterfalse + \sysu@end@appendix@ref@section \sysu@chapter*{\sysu@resume@name}% \ctexset{ section = { @@ -6273,17 +6647,20 @@ aftertitle = :, }, }% - \ifsysu@degree@graduate - \fontsize{12bp}{16bp}\selectfont - \fi \setlist[achievements]{ - topsep = 6bp, - itemsep = 6bp, - leftmargin = 1cm, - labelwidth = 1cm, - labelsep = 0pt, - align = left, - label = [\arabic*], + topsep = 6bp, + itemsep = 6bp, + leftmargin = 1cm, + labelwidth = 1cm, + labelsep = 0pt, + first = { + \ifsysu@degree@graduate + \fontsize{12bp}{16bp}\selectfont + \fi + }, + align = left, + label = [\arabic*], + resume = achievements, }% \else \ctexset{ @@ -6300,12 +6677,13 @@ \sffamily\fontsize{15bp}{20bp}\selectfont \fi \setlist[achievements]{ - topsep = 0bp, - itemsep = 0bp, - leftmargin = 1.75cm, - labelsep = 0.5cm, - align = right, - label = [\arabic*], + topsep = 0bp, + itemsep = 0bp, + leftmargin = 1.75cm, + labelsep = 0.5cm, + align = right, + label = [\arabic*], + resume = achievements, }% \fi }{} @@ -6356,6 +6734,7 @@ % \begin{environment}{comments} % \begin{macrocode} \NewEnviron{comments}[1][]{% + \sysu@end@appendix@ref@section \ifsysu@degree@graduate \@mainmatterfalse \kv@define@key{sysu@comments}{name}{\let\sysu@comments@name\kv@value}% @@ -6378,6 +6757,7 @@ % \begin{environment}{resolution} % \begin{macrocode} \NewEnviron{resolution}{% + \sysu@end@appendix@ref@section \ifsysu@degree@graduate \@mainmatterfalse \chapter{\sysu@resolution@name}% @@ -6421,22 +6801,25 @@ % % \subsubsection{\pkg{hyperref} 宏包} % -% \begin{macrocode} +% 使用 \cs{PassOptionsToPackage} 的方式进行配置,允许用户在 \cs{usepackage} +% 覆盖配置(\href{https://github.com/tuna/thuthesis/issues/863}{tuna/thuthesis\#863})。 +% +% \begin{macrocode} +\PassOptionsToPackage{ + linktoc = all, + bookmarksdepth = 2, + bookmarksnumbered = true, + bookmarksopen = true, + bookmarksopenlevel = 1, + bookmarksdepth = 3, + unicode = true, + psdextra = true, + breaklinks = true, + plainpages = false, + pdfdisplaydoctitle = true, + hidelinks, +}{hyperref} \AtEndOfPackageFile*{hyperref}{ - \hypersetup{ - linktoc = all, - bookmarksdepth = 2, - bookmarksnumbered = true, - bookmarksopen = true, - bookmarksopenlevel = 1, - bookmarksdepth = 3, - unicode = true, - psdextra = true, - breaklinks = true, - plainpages = false, - pdfdisplaydoctitle = true, - hidelinks, - }% \newcounter{sysu@bookmark} \renewcommand\sysu@pdfbookmark[2]{% \phantomsection @@ -6478,14 +6861,14 @@ \hypersetup{ pdftitle = \sysu@title, pdfauthor = \sysu@author, - pdfsubject = \sysu@degree@name, + pdfsubject = \sysu@degree@category, pdfkeywords = \sysu@keywords, }% \else \hypersetup{ pdftitle = \sysu@title@en, pdfauthor = \sysu@author@en, - pdfsubject = \sysu@degree@name@en, + pdfsubject = \sysu@degree@category@en, pdfkeywords = \sysu@keywords@en, }% \fi @@ -6857,35 +7240,29 @@ pdfdisplaydoctitle = true }% -\ifthenelse{\equal{\@nameuse{g__ctex_fontset_tl}}{mac}}{ - \setmainfont{Palatino} - \setsansfont[Scale=MatchLowercase]{Helvetica} - \setmonofont[Scale=MatchLowercase]{Menlo} -}{ - \setmainfont[ - Extension = .otf, - UprightFont = *-regular, - BoldFont = *-bold, - ItalicFont = *-italic, - BoldItalicFont = *-bolditalic, - ]{texgyrepagella} - \setsansfont[ - Extension = .otf, - UprightFont = *-regular, - BoldFont = *-bold, - ItalicFont = *-italic, - BoldItalicFont = *-bolditalic, - ]{texgyreheros} - \setmonofont[ - Extension = .otf, - UprightFont = *-regular, - BoldFont = *-bold, - ItalicFont = *-italic, - BoldItalicFont = *-bolditalic, - Scale = MatchLowercase, - Ligatures = CommonOff, - ]{texgyrecursor} -} +\setmainfont[ + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic, +]{texgyrepagella} +\setsansfont[ + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic, +]{texgyreheros} +\setmonofont[ + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic, + Scale = MatchLowercase, + Ligatures = CommonOff, +]{texgyrecursor} \unimathsetup{ math-style=ISO, bold-style=ISO, diff --git a/sysuthesis.pdf b/sysuthesis.pdf index a37e6e56e82191720a967b317951c3382c8f54c0..2d344c06684c46ddb2addbd245df40be8f1526fd 100644 GIT binary patch delta 1047722 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