From 55f297117debec60e90044391e6f486e95147602 Mon Sep 17 00:00:00 2001 From: bubifengyun Date: Tue, 11 Jun 2019 20:13:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0SJTU=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 1 + README.md | 2 +- bib/packages.bib | 28 ++-- index.Rmd | 2 +- sjtuthesis.cfg | 120 ++++++++++----- sjtuthesis.cls | 372 ++++++++++++++++++++++++++++++++++++----------- 6 files changed, 388 insertions(+), 137 deletions(-) mode change 100755 => 100644 sjtuthesis.cls diff --git a/Makefile b/Makefile index c538a97..93dc7cc 100644 --- a/Makefile +++ b/Makefile @@ -3,4 +3,5 @@ pdf: wordcount: @texcount _book/sjtu-thesis-rmd.tex -inc -ch-only | awk '/total/ {getline; print "纯中文字数\t\t\t:",$$4}' + @texcount _book/sjtu-thesis-rmd.tex -inc -char-only | awk '/total/ {getline; print "英文字符数\t\t\t:",$$4}' @texcount _book/sjtu-thesis-rmd.tex -inc -chinese | awk '/total/ {getline; print "总字数(英文单词 + 中文字)\t:",$$4}' diff --git a/README.md b/README.md index e1572f6..ef11f4e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 上海交通大学学位论文 Bookdown 模板 -这是为撰写上海交通大学学士、硕士或博士论文而准备的 Bookdown 模板,非官方出品。详细使用说明参见本模板内容。据最新[2018-11-17]的[上海交通大学学位论文Latex模板](https://github.com/sjtug/SJTUThesis), 参考[谢益辉Bookdown中文模板](https://github.com/yihui/bookdown-chinese)改写而成。在完全兼容[原交大论文LaTeX模板](https://github.com/sjtug/SJTUThesis)的基础上,通过使用 Markdown,大幅度降低撰写论文的难度,引入 R 语言,提高论文作图、数据处理的能力,真正做到让论文能够随着数据变化而变化,而不是数据错误了,要逐个手动改变。对于无法使用 Rmarkdown 实现的内容,完全复制粘贴 LaTeX 代码也能够运行,可能会多一些括号之类的,请删除。 +这是为撰写上海交通大学学士、硕士或博士论文而准备的 Bookdown 模板,非官方出品。详细使用说明参见本模板内容。据最新[2019-06-11]的[上海交通大学学位论文Latex模板](https://github.com/sjtug/SJTUThesis), 参考[谢益辉Bookdown中文模板](https://github.com/yihui/bookdown-chinese)改写而成。在完全兼容[原交大论文LaTeX模板](https://github.com/sjtug/SJTUThesis)的基础上,通过使用 Markdown,大幅度降低撰写论文的难度,引入 R 语言,提高论文作图、数据处理的能力,真正做到让论文能够随着数据变化而变化,而不是数据错误了,要逐个手动改变。对于无法使用 Rmarkdown 实现的内容,完全复制粘贴 LaTeX 代码也能够运行,可能会多一些括号之类的,请删除。 **本模板会保持sjtuthesis.cls和sjtuthesis.cfg两个文件跟原论文模板一致。** diff --git a/bib/packages.bib b/bib/packages.bib index 90e7158..91241c5 100644 --- a/bib/packages.bib +++ b/bib/packages.bib @@ -9,36 +9,36 @@ @Manual{R-base @Manual{R-bookdown, title = {bookdown: Authoring Books and Technical Documents with R Markdown}, author = {Yihui Xie}, - note = {R package version 0.7.13}, - url = {https://github.com/rstudio/bookdown}, - year = {2018}, + year = {2019}, + note = {R package version 0.11}, + url = {https://CRAN.R-project.org/package=bookdown}, } @Manual{R-citr, title = {citr: RStudio Add-in to Insert Markdown Citations}, author = {Frederik Aust}, - year = {2016}, - note = {R package version 0.2.0}, + year = {2018}, + note = {R package version 0.3.0}, url = {https://CRAN.R-project.org/package=citr}, } @Manual{R-DT, title = {DT: A Wrapper of the JavaScript Library 'DataTables'}, - author = {Yihui Xie}, - year = {2018}, - note = {R package version 0.4}, + author = {Yihui Xie and Joe Cheng and Xianying Tan}, + year = {2019}, + note = {R package version 0.6}, url = {https://CRAN.R-project.org/package=DT}, } @Manual{R-htmlwidgets, title = {htmlwidgets: HTML Widgets for R}, author = {Ramnath Vaidyanathan and Yihui Xie and JJ Allaire and Joe Cheng and Kenton Russell}, year = {2018}, - note = {R package version 1.2}, + note = {R package version 1.3}, url = {https://CRAN.R-project.org/package=htmlwidgets}, } @Manual{R-knitr, title = {knitr: A General-Purpose Package for Dynamic Report Generation in R}, author = {Yihui Xie}, - year = {2018}, - note = {R package version 1.20}, + year = {2019}, + note = {R package version 1.23}, url = {https://CRAN.R-project.org/package=knitr}, } @Manual{R-miniUI, @@ -50,9 +50,9 @@ @Manual{R-miniUI } @Manual{R-rmarkdown, title = {rmarkdown: Dynamic Documents for R}, - author = {JJ Allaire and Yihui Xie and Jonathan McPherson and Javier Luraschi and Kevin Ushey and Aron Atkins and Hadley Wickham and Joe Cheng and Winston Chang}, - year = {2018}, - note = {R package version 1.10}, + author = {JJ Allaire and Yihui Xie and Jonathan McPherson and Javier Luraschi and Kevin Ushey and Aron Atkins and Hadley Wickham and Joe Cheng and Winston Chang and Richard Iannone}, + year = {2019}, + note = {R package version 1.13}, url = {https://CRAN.R-project.org/package=rmarkdown}, } @Manual{R-webshot, diff --git a/index.Rmd b/index.Rmd index 32957db..eacbe2e 100644 --- a/index.Rmd +++ b/index.Rmd @@ -9,7 +9,7 @@ options( ) # 填上你需要用到的包 -lapply(c('DT', 'citr', 'formatR', 'svglite', 'webshot', 'devtools'), function(pkg) { +lapply(c('diagram','DT', 'citr', 'formatR', 'svglite', 'webshot', 'devtools', 'shape'), function(pkg) { if (system.file(package = pkg) == '') install.packages(pkg) }) diff --git a/sjtuthesis.cfg b/sjtuthesis.cfg index 37fa5a9..831dfc1 100644 --- a/sjtuthesis.cfg +++ b/sjtuthesis.cfg @@ -6,20 +6,41 @@ \ProvidesFile{sjtuthesis.cfg}[2016/04/06 v0.9 sjtuthesis configuration file] %% labels in the title page -\def\sjtu@label@major{专业} -\def\sjtu@label@title{论文题目} -\def\sjtu@label@thesis{学位论文} -\def\sjtu@label@coadvisor{副导师} -\def\sjtu@label@defenddate{答辩日期} -\def\sjtu@label@institute{学院(系)} -\ifsjtu@bachelor - \def\sjtu@label@author{学生姓名} - \def\sjtu@label@studentnumber{学生学号} - \def\sjtu@label@advisor{指导教师} +\ifsjtu@master + \def\sjtu@label@major{学科:} + \def\sjtu@label@title{论文题目} + \def\sjtu@label@thesis{学位论文} + \def\sjtu@label@coadvisor{副导师:} + \def\sjtu@label@defenddate{答辩日期:} + \def\sjtu@label@institute{所在单位:} + \def\sjtu@label@cnacademicdegree{申请学位:} + \def\sjtu@label@school{授予学位单位:} + \def\sjtu@label@author{硕士研究生:} + \def\sjtu@label@studentnumber{学号:} + \def\sjtu@label@advisor{导师:} \else - \def\sjtu@label@author{论文作者} - \def\sjtu@label@studentnumber{学号} - \def\sjtu@label@advisor{导师} + \def\sjtu@label@major{专业} + \def\sjtu@label@title{论文题目} + \def\sjtu@label@thesis{学位论文} + \def\sjtu@label@coadvisor{副导师} + \def\sjtu@label@defenddate{答辩日期} + \def\sjtu@label@institute{学院(系)} + \def\sjtu@label@coursepaper{课程论文} + \ifsjtu@bachelor + \def\sjtu@label@author{学生姓名} + \def\sjtu@label@studentnumber{学生学号} + \def\sjtu@label@advisor{指导教师} + \else + \ifsjtu@coursepaper + \def\sjtu@label@author{姓名} + \def\sjtu@label@studentnumber{学号} + \def\sjtu@label@coursename{课程} + \else + \def\sjtu@label@author{论文作者} + \def\sjtu@label@studentnumber{学号} + \def\sjtu@label@advisor{导师} + \fi + \fi \fi %% string values filled in the title page @@ -27,46 +48,68 @@ \def\sjtu@value@confidential{} \def\sjtu@value@serialnumber{} \def\sjtu@value@school{} -\ifsjtu@bachelor - \def\sjtu@value@chinesedegree{学士} - \def\sjtu@value@englishdegree{Bachelor} +\ifsjtu@coursepaper + \def\sjtu@value@chinesedegree{} + \def\sjtu@value@englishdegree{} \else - \ifsjtu@master - \def\sjtu@value@chinesedegree{硕士} - \def\sjtu@value@englishdegree{Master} + \ifsjtu@bachelor + \def\sjtu@value@chinesedegree{学士} + \def\sjtu@value@englishdegree{Bachelor} \else - \ifsjtu@doctor - \def\sjtu@value@chinesedegree{博士} - \def\sjtu@value@englishdegree{Doctor} + \ifsjtu@master + \def\sjtu@value@chinesedegree{硕士} + \def\sjtu@value@englishdegree{Master} \else - \ClassError{sjtuthesis}% - {Unknown value for degree.}{} - \fi + \ifsjtu@doctor + \def\sjtu@value@chinesedegree{博士} + \def\sjtu@value@englishdegree{Doctor} + \else + \ClassError{sjtuthesis}% + {Unknown value for degree.}{} + \fi + \fi + \fi + \ifsjtu@master + \def\sjtu@label@statement{\sjtu@value@school\sjtu@value@chinesedegree\sjtu@label@thesis} + \else + \def\sjtu@label@statement{申请\sjtu@value@school\sjtu@value@chinesedegree\sjtu@label@thesis} \fi \fi -\def\sjtu@label@statement{申请\sjtu@value@school\sjtu@value@chinesedegree\sjtu@label@thesis} %% 论文原创性声明 \def\sjtu@label@original{学位论文原创性声明} \def\sjtu@label@authorization{学位论文版权使用授权书} \def\sjtu@label@authorsign{学位论文作者签名:} \def\sjtu@label@Supervisorsign{指导教师签名:} -\def\sjtu@label@originalDate{日\hspace{1em}期:\hrulefill\hrulefill 年 \hrulefill 月 \hrulefill 日} -\def\sjtu@label@originalcontent{本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 +\def\sjtu@label@originalDate{日期:\hrulefill\hrulefill 年 \hrulefill 月 \hrulefill 日} +\def\sjtu@label@originalcontent{是本人在导师的指导下, 独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 } \def\sjtu@label@authorizationcontent{本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权上海交通大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。\par 本学位论文属于\\ \hspace*{9em}\textbf{保\hspace{1em}密} $\square$,在~\hrulefill~年解密后适用本授权书。\\ \hspace*{9em}\textbf{不保密} $\square$。\\ - (请在以上方框内打$\checked$) + (请在以上方框内打“$\checked$”) } %% labels in the english title page -\def\sjtu@label@englishadvisor{Advisor} -\def\sjtu@label@englishcoadvisor{Co-advisor} -\def\sjtu@label@englishstatement{Submitted in total fulfillment - of the requirements for the degree of \sjtu@value@englishdegree \\ - in \sjtu@value@englishmajor} +\ifsjtu@master + \def\sjtu@label@englishadvisor{Supervisor:} + \def\sjtu@label@englishcoadvisor{Co-supervisor:} + \def\sjtu@label@englishauthor{Candidate:} + \def\sjtu@label@englishstudentid{Student ID:} + \def\sjtu@label@enacademicdegree{Academic Degree Applied for:} + \def\sjtu@label@englishmajor{Speciality:} + \def\sjtu@label@englishinstitutemaster{Affiliation:} + \def\sjtu@label@englishdate{Date of Defence:} + \def\sjtu@label@englishschool{Degree-Conferring-Institution:} + \def\sjtu@label@englishstatement{Dissertation Submitted to Shanghai Jiao Tong University \\[8pt] for the Degree of \sjtu@value@englishdegree} +\else + \def\sjtu@label@englishadvisor{Advisor} + \def\sjtu@label@englishcoadvisor{Co-advisor} + \def\sjtu@label@englishstatement{Submitted in total fulfillment + of the requirements for the degree of \sjtu@value@englishdegree \\ + in \sjtu@value@englishmajor} +\fi %% labels in the abstracts \def\sjtu@label@chineseabstract{摘~~~~要} @@ -125,9 +168,14 @@ \def\sjtu@label@abstract{\sjtu@label@chineseabstract} \def\sjtu@contentsname{目~~~~录} \def\sjtu@figurename{图} -\def\sjtu@listfigurename{插图索引} +\ifsjtu@master + \def\sjtu@listfigurename{图~~录} + \def\sjtu@listtablename{表~~录} +\else + \def\sjtu@listfigurename{插图索引} + \def\sjtu@listtablename{表格索引} +\fi \def\sjtu@tablename{表} -\def\sjtu@listtablename{表格索引} \def\sjtu@algorithmicrequire{输入:} \def\sjtu@algorithmicensure{输出:} \def\sjtu@listalgorithmname{算法索引} diff --git a/sjtuthesis.cls b/sjtuthesis.cls old mode 100755 new mode 100644 index 7e10cdc..42c45e0 --- a/sjtuthesis.cls +++ b/sjtuthesis.cls @@ -6,12 +6,14 @@ \NeedsTeXFormat{LaTeX2e}[1995/12/01] \ProvidesClass{sjtuthesis}[2018/01/09 v0.10 Shanghai Jiao Tong University Template] \def\version{v0.10} +\newif\ifsjtu@coursepaper\sjtu@coursepaperfalse \newif\ifsjtu@bachelor\sjtu@bachelorfalse \newif\ifsjtu@master\sjtu@masterfalse \newif\ifsjtu@doctor\sjtu@doctorfalse \newif\ifsjtu@english\sjtu@englishfalse \newif\ifsjtu@review\sjtu@reviewfalse \newif\ifsjtu@submit\sjtu@submitfalse +\DeclareOption{coursepaper}{\sjtu@coursepapertrue} \DeclareOption{bachelor}{\sjtu@bachelortrue} \DeclareOption{master}{\sjtu@mastertrue} \DeclareOption{doctor}{\sjtu@doctortrue} @@ -25,14 +27,18 @@ \else \PassOptionsToClass{scheme=chinese}{ctexbook} \fi -\ifsjtu@bachelor - \PassOptionsToClass{zihao=5}{ctexbook} -\else +\ifsjtu@coursepaper \PassOptionsToClass{zihao=-4}{ctexbook} - \ifsjtu@master\relax\else - \ifsjtu@doctor\relax\else - \ClassError{sjtuthesis}% - {You have to specify one of thesis options: bachelor, master or doctor.}{} +\else + \ifsjtu@bachelor + \PassOptionsToClass{zihao=5}{ctexbook} + \else + \PassOptionsToClass{zihao=-4}{ctexbook} + \ifsjtu@master\relax\else + \ifsjtu@doctor\relax\else + \ClassError{sjtuthesis}% + {You have to specify one of thesis options: coursepaper, bachelor, master or doctor.}{} + \fi \fi \fi \fi @@ -65,11 +71,13 @@ \newcommand\advisor[1]{\def\sjtu@value@advisor{#1}} \newcommand\coadvisor[1]{\def\sjtu@value@coadvisor{#1}} \newcommand\major[1]{\def\sjtu@value@major{#1}} +\newcommand\coursename[1]{\def\sjtu@value@coursename{#1}} \newcommand\submitdate[1]{\def\sjtu@value@submitdate{#1}} \newcommand\defenddate[1]{\def\sjtu@value@defenddate{#1}} \newcommand\institute[1]{\def\sjtu@value@institute{#1}} \newcommand\chairman[1]{\def\sjtu@value@chairman{#1}} \newcommand\keywords[1]{\def\sjtu@value@keywords{#1}} +\newcommand\cnacademicdegree[1]{\def\sjtu@value@cnacademicdegree{#1}} % English variables \newcommand\englishtitle[1]{\def\sjtu@value@englishtitle{#1}} @@ -78,10 +86,13 @@ \newcommand\englishcoadvisor[1]{\def\sjtu@value@englishcoadvisor{#1}} \newcommand\englishschool[1]{\def\sjtu@value@englishschool{#1}} \newcommand\englishinstitute[1]{\def\sjtu@value@englishinstitute{#1}} +\newcommand\englishinstitutemaster[1]{\def\sjtu@value@englishinstitutemaster{#1}} \newcommand\englishdate[1]{\def\sjtu@value@englishdate{#1}} \newcommand\englishdegree[1]{\def\sjtu@value@englishdegree{#1}} \newcommand\englishmajor[1]{\def\sjtu@value@englishmajor{#1}} +\newcommand\englishstudentid[1]{\def\sjtu@value@englishstudentid{#1}} \newcommand\englishkeywords[1]{\def\sjtu@value@englishkeywords{#1}} +\newcommand\enacademicdegree[1]{\def\sjtu@value@enacademicdegree{#1}} %========== % Segment 1. Import LaTeX packages. @@ -122,6 +133,7 @@ \RequirePackage{siunitx} \RequirePackage{xparse} \RequirePackage{tikz} +\RequirePackage{makecell} \usetikzlibrary{shapes.geometric, arrows} % Make hyperref to set PDF metadata (author, title, subject, keywords) @@ -169,7 +181,7 @@ \newcommand{\email}[1]{\href{mailto:#1}{\texttt{#1}}} % upper math letter -\newcommand{\me}{\mathrm{e}} +\newcommand{\me}{\mathrm{e}} \newcommand{\mi}{\mathrm{i}} \newcommand{\mj}{\mathrm{j}} \newcommand{\dif}{\mathrm{d}} @@ -195,7 +207,7 @@ {}{} % CJK-LaTeX Logo \CJKLaTeX -\newcommand{\CJKLaTeX}{CJK--\LaTeX} +\newcommand{\CJKLaTeX}{CJK--\LaTeX} % cndash \newcommand{\cndash}{\rule{0.0em}{0pt}\rule[0.35em]{1.4em}{0.05em}\rule{0.2em}{0pt}} @@ -229,7 +241,7 @@ afterskip = {1.0ex \@plus .2ex}, }, subsection={% - format = \zihao{-4}\normalfont, + format = \zihao{-4}\bfseries\heiti, afterindent = true, afterskip = {1.0ex \@plus .2ex}, }, @@ -243,7 +255,7 @@ } \floatname{algorithm}{\sjtu@label@algo} -\renewcommand{\algorithmicrequire}{\textbf{\sjtu@algorithmicrequire}} +\renewcommand{\algorithmicrequire}{\textbf{\sjtu@algorithmicrequire}} \renewcommand{\algorithmicensure}{\textbf{\sjtu@algorithmicensure}} \renewcommand{\listalgorithmname}{\sjtu@listalgorithmname} \renewcommand{\lstlistingname}{\sjtu@value@listingname} @@ -293,6 +305,19 @@ \renewcommand{\thelstlisting}{\thechapter--\arabic{lstlisting}} } +% 图表索引前加下“图”,“表”关键词 +\ifsjtu@master + \renewcommand*\cftfigpresnum{\sjtu@figurename~} + % \newlength{\sjtu@cftfignumwidth@tmp} + % \settowidth{\sjtu@cftfignumwidth@tmp}{\cftfigpresnum} + % \addtolength{\cftfignumwidth}{\sjtu@cftfignumwidth@tmp} + \renewcommand{\cftfigaftersnumb}{\enspace~} + \renewcommand*\cfttabpresnum{\sjtu@tablename~} + % \newlength{\sjtu@cfttabnumwidth@tmp} + % \settowidth{\sjtu@cfttabnumwidth@tmp}{\cfttabpresnum} + % \addtolength{\cfttabnumwidth}{\sjtu@cfttabnumwidth@tmp} + \renewcommand{\cfttabaftersnumb}{\enspace~} +\fi % 使用enumitem宏包配制列表环境 % 紧凑间距 \setlist{nosep} @@ -376,7 +401,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % The following definitions add Switch statement to LaTeX algorithmicx package % It's based on Werner's answer on stackoverflow -% http://tex.stackexchange.com/questions/53357/switch-cases-in-algorithmic +% http://tex.stackexchange.com/questions/53357/switch-cases-in-algorithmic % New definitions \algnewcommand\algorithmicswitch{\textbf{switch}} @@ -407,11 +432,20 @@ \renewcommand\maketitle{% \pdfbookmark[0]{\sjtu@titlepage}{titlepage} - \ifsjtu@bachelor - \makechinesetitle@bachelor + \ifsjtu@coursepaper + \makechinesetitle@coursepaper \else - \makechinesetitle - \makeenglishtitle + \ifsjtu@bachelor + \makechinesetitle@bachelor + \else + \ifsjtu@master + \makechinesetitle@master + \makeenglishtitle@master + \else + \makechinesetitle + \makeenglishtitle + \fi + \fi \fi } @@ -432,6 +466,85 @@ } \ExplSyntaxOff +% “绘制”硕士论文模板中文标题页 +\newcommand\makechinesetitle@master{% + \cleardoublepage + \thispagestyle{empty} + \begin{center} + {\songti\zihao{-2} ~\\[35pt] \sjtu@label@statement} + \vskip\stretch{1} + {\heiti\zihao{2}\sjtu@value@chinesetitle} + \vskip\stretch{1.2} + {\fangsong\zihao{4}} + \zihao{4} + \def\tabcolsep{1pt} + \def\arraystretch{1.25} + \begin{tabular}{>{\begin{CJKfilltwosides}[t]{7\ccwd}\heiti }r<{\end{CJKfilltwosides}}l} + \ifsjtu@review + \sjtu@label@author & \enspace ~ \\ + \sjtu@label@studentnumber & \enspace ~ \\ + \sjtu@label@advisor & \enspace ~ \\ + \ifx\sjtu@value@coadvisor\undefined\else + \sjtu@label@coadvisor & \enspace ~ \\ + \fi + \else + \sjtu@label@author & \enspace {\sjtu@value@author} \\ + \sjtu@label@studentnumber & \enspace {\sjtu@value@studentnumber} \\ + \sjtu@label@advisor & \enspace {\sjtu@value@advisor} \\ + \ifx\sjtu@value@coadvisor\undefined\else + \sjtu@label@coadvisor & \enspace {\sjtu@value@coadvisor} \\ + \fi + \fi + \sjtu@label@cnacademicdegree & \enspace {\sjtu@value@cnacademicdegree } \\ + \sjtu@label@major & \enspace {\sjtu@value@major} \\ + \sjtu@label@institute & \enspace {\sjtu@value@institute} \\ + \sjtu@label@defenddate & \enspace {\sjtu@value@defenddate} \\ + \sjtu@label@school & \enspace {\sjtu@value@school} + \end{tabular} + \end{center} + \vskip \stretch{0.25} + \cleardoublepage +} +% “绘制”硕士论文模板英文标题页 +\newcommand\makeenglishtitle@master{% + \cleardoublepage + \thispagestyle{empty} + \begin{center} + {\normalfont\zihao{-2} ~\\[35pt] \sjtu@label@englishstatement} + \vskip\stretch{1} + {\zihao{2} \textbf{\MakeUppercase{\sjtu@value@englishtitle}} \vskip 1pt} + \vskip \stretch{1} + {\normalfont\zihao{4}} + \zihao{4} + \def\tabcolsep{1pt} + \def\arraystretch{1.3} + \begin{tabular}{ll} + \ifsjtu@review + \textbf{\sjtu@label@englishauthor} & \enspace ~ \\ + \textbf{\sjtu@label@englishstudentid} & \enspace ~ \\ + \textbf{\sjtu@label@englishadvisor} & \enspace ~ \\ + \ifx\sjtu@value@englishcoadvisor\undefined\else + \textbf{\sjtu@label@englishcoadvisor} & \enspace ~ \\ + \fi + \else + \textbf{\sjtu@label@englishauthor} & \enspace \sjtu@value@englishauthor \\ + \textbf{\sjtu@label@englishstudentid} & \enspace \sjtu@value@englishstudentid \\ + \textbf{\sjtu@label@englishadvisor} & \enspace \sjtu@value@englishadvisor \\ + \ifx\sjtu@value@englishcoadvisor\undefined\else + \textbf{\sjtu@label@englishcoadvisor} & \enspace \sjtu@value@englishcoadvisor \\ + \fi + \fi + \textbf{\sjtu@label@enacademicdegree} & \enspace \sjtu@value@enacademicdegree \\ + \textbf{\sjtu@label@englishmajor} & \enspace \sjtu@value@englishmajor \\ + \textbf{\sjtu@label@englishinstitutemaster} & \enspace \makecell[l]{\sjtu@value@englishinstitutemaster} \\ + \textbf{\sjtu@label@englishdate} & \enspace \sjtu@value@englishdate \\ + \textbf{\sjtu@label@englishschool} & \enspace \sjtu@value@englishschool + \end{tabular} + \end{center} + \vskip \stretch{0.4} + \cleardoublepage +} + % “绘制”中文标题页 \newcommand\makechinesetitle{% \cleardoublepage @@ -472,7 +585,7 @@ \cleardoublepage \thispagestyle{empty} \begin{center} - {\normalfont\zihao{4} \sjtu@label@englishstatement} + {\normalfont\zihao{4} \sjtu@label@englishstatement} \vspace{20pt} \vskip\stretch{1} {\huge\sjtu@value@englishtitle \vskip 1pt} \vskip \stretch{1} @@ -481,19 +594,19 @@ \vskip 3pt \vskip \stretch{2} \else - {\normalfont\zihao{4}\sjtu@value@englishauthor} + {\normalfont\zihao{4}\sjtu@value@englishauthor} \vskip \stretch{1} - {\normalfont\zihao{4}\sjtu@label@englishadvisor} + {\normalfont\zihao{4}\sjtu@label@englishadvisor} \vskip 2pt - {\normalfont\zihao{4}\sjtu@value@englishadvisor} + {\normalfont\zihao{4}\sjtu@value@englishadvisor} \vskip 5pt \ifx\sjtu@value@englishcoadvisor\undefined\else - {\normalfont\zihao{4}\sjtu@label@englishcoadvisor} + {\normalfont\zihao{4}\sjtu@label@englishcoadvisor} \vskip 2pt - {\normalfont\zihao{4}\sjtu@value@englishcoadvisor} + {\normalfont\zihao{4}\sjtu@value@englishcoadvisor} \vskip \stretch{2} \fi - \fi + \fi \normalfont\sjtu@value@englishinstitute \vskip 30pt \normalfont\sjtu@value@englishdate \vskip 20pt \end{center} @@ -546,20 +659,57 @@ \cleardoublepage } +% “绘制”课程论文标题页 +\newcommand\makechinesetitle@coursepaper{% + \cleardoublepage + \thispagestyle{empty} + \begin{center} + \kaishu + \vspace*{20pt} \vskip 7pt + \includegraphics{sjtulogo} + \vskip 30pt + {\fontsize{32}{32}\sjtu@label@coursepaper} + \vskip 15pt + \includegraphics{sjtubadge} + \vskip \stretch{2} + { + \zihao{2} + \begin{tabular}{r@{:}l} + \sjtu@label@title & {\zihao{-2}\parbox[t]{320pt}{\sjtu@value@chinesecovertitle}} + \end{tabular} + } + \vskip \stretch{1} + { + \zihao{3} + \def\arraystretch{1.1} + \begin{tabular}{>{\begin{CJKfilltwosides}{4\ccwd}}r<{\end{CJKfilltwosides}}@{:}c} + \sjtu@label@coursename & \sjtu@value@coursename \\ \cline{2-2} + \sjtu@label@author & \sjtu@value@author \\ \cline{2-2} + \sjtu@label@studentnumber & \makebox[180pt]{\sjtu@value@studentnumber} \\ \cline{2-2} + \sjtu@label@institute & \sjtu@value@institute \\ \cline{2-2} + \sjtu@label@major & \sjtu@value@major \\ \cline{2-2} + \end{tabular} + } + \end{center} + \cleardoublepage +} + % 原创性声明 \newcommand\makeDeclareOriginal{% \cleardoublepage \thispagestyle{empty} \begin{center} - {\zihao{3}\bfseries\heiti \sjtu@value@school} \\ - {\zihao{3}\bfseries\heiti \sjtu@label@original} + ~\\[70pt] + % \linespread{1.5} + {\zihao{-2}\heiti \textbf{\sjtu@value@school}} \\[12pt] + {\zihao{-2}\heiti \textbf{\sjtu@label@original}} \\[12pt] \end{center} \vskip 10pt - {\par\zihao{-4}\sjtu@label@originalcontent\par} - \vskip 60pt - \hspace{13em}\sjtu@label@authorsign\hrulefill\hspace{1.5em} - \vskip 15pt - \hspace{16em}\sjtu@label@originalDate\hspace{1em} + {\par\linespread{2}\zihao{4}本人郑重声明:所呈交的学位论文《\sjtu@value@chinesetitle》,\sjtu@label@originalcontent\par} + \vskip 80pt + {\zihao{4}\hspace{13em}\sjtu@label@authorsign\hrulefill\hspace{1.5em}} + \vskip 40pt + {\zihao{4}\hspace{11em}\sjtu@label@originalDate\hspace{1em}} \cleardoublepage } @@ -568,15 +718,16 @@ \cleardoublepage \thispagestyle{empty} \begin{center} - {\zihao{3}\bfseries\heiti \sjtu@value@school} \\ - {\zihao{3}\bfseries\heiti \sjtu@label@authorization} + ~\\[30pt] + {\zihao{-2}\bfseries\heiti \sjtu@value@school} \\[12pt] + {\zihao{-2}\bfseries\heiti \sjtu@label@authorization} \\[12pt] \end{center} \vskip 10pt - {\par\zihao{-4}\sjtu@label@authorizationcontent\par} - \vskip 60pt - \sjtu@label@authorsign\hrulefill\hspace{3em}\sjtu@label@Supervisorsign\hrulefill - \vskip 15pt - \sjtu@label@originalDate\hfill\hspace{3em}\sjtu@label@originalDate + {\par\linespread{1.5}\zihao{4}\sjtu@label@authorizationcontent\par} + \vskip 150pt + {\zihao{4} \sjtu@label@authorsign\hrulefill\hspace{3em}\sjtu@label@Supervisorsign\hrulefill} + \vskip 40pt + {\zihao{4} \sjtu@label@originalDate\hfill\hspace{3em}\sjtu@label@originalDate} \cleardoublepage } @@ -592,8 +743,9 @@ \fi \def\markboxwidth{0.75\textwidth} \AtBeginDocument{\pagenumbering{Alph}} -\ifsjtu@bachelor -%% 本科学位论文页眉页脚设置 + +\ifsjtu@coursepaper + %% 本科学位论文页眉页脚设置 %% 前言页眉页脚 \fancypagestyle{front}{% \fancyhf{} @@ -610,58 +762,82 @@ \fancyfoot[C]{\sjtu@fancyfoot{\thepage}{\lastpageref{pagesLTS.arabic}}} \renewcommand{\headheight}{32pt} } - %% 英文大摘要 - \fancypagestyle{biglast}{% - \fancyhf{} - \fancyhead[L]{\includegraphics{figure/sjtubanner}} - \fancyhead[R]{\parbox[b]{\markboxwidth}{\raggedleft\nouppercase{\sjtu@fancyhead\sjtu@value@titlemark}}} - \fancyfoot[C]{\sjtu@fancyfoot{\theCurrentPageLocal}{\lastpageref{pagesLTS.roman.local}}} - \renewcommand{\headheight}{32pt} - } \else -%% 研究生学位论文页眉页脚设置 - \if@twoside - %% 双面打印页眉页脚 + \ifsjtu@bachelor + %% 本科学位论文页眉页脚设置 + %% 前言页眉页脚 \fancypagestyle{front}{% \fancyhf{} - \fancyhead[LO,RE]{\small\kaishu\sjtu@value@school\sjtu@value@chinesedegree\sjtu@label@thesis} - \fancyhead[LE,RO]{\nouppercase{\sjtu@fancyhead\leftmark}} - \fancyfoot[C]{\small ---~{\bfseries\thepage}~---} + \fancyhead[L]{\includegraphics{figure/sjtubanner}} + \fancyhead[R]{\parbox[b]{\markboxwidth}{\raggedleft\nouppercase{\sjtu@fancyhead\sjtu@value@titlemark}}} + \fancyfoot[C]{\sjtu@fancyfoot{\thepage}{\lastpageref{pagesLTS.Roman}}} \renewcommand{\headheight}{32pt} } + %% 正文页眉页脚 \fancypagestyle{main}{% \fancyhf{} - \fancyhead[LO,RE]{\small\kaishu\sjtu@value@school\sjtu@value@chinesedegree\sjtu@label@thesis} - \fancyhead[LE,RO]{\nouppercase{\sjtu@fancyhead\leftmark}} - \fancyfoot[C]{\small ---~{\bfseries\thepage}~---} + \fancyhead[L]{\includegraphics{figure/sjtubanner}} + \fancyhead[R]{\parbox[b]{\markboxwidth}{\raggedleft\nouppercase{\sjtu@fancyhead\sjtu@value@titlemark}}} + \fancyfoot[C]{\sjtu@fancyfoot{\thepage}{\lastpageref{pagesLTS.arabic}}} \renewcommand{\headheight}{32pt} } - \else - %% 单面打印页眉页脚 - \fancypagestyle{front}{% + %% 英文大摘要 + \fancypagestyle{biglast}{% \fancyhf{} - \fancyhead[L]{\small\kaishu\sjtu@value@school\sjtu@value@chinesedegree\sjtu@label@thesis} - \fancyhead[R]{\nouppercase{\sjtu@fancyhead\leftmark}} - \fancyfoot[C]{\small ---~{\bfseries\thepage}~---} - \renewcommand{\headheight}{32pt} - } - \fancypagestyle{main}{% - \fancyhf{} - \fancyhead[L]{\small\kaishu\sjtu@value@school\sjtu@value@chinesedegree\sjtu@label@thesis} - \fancyhead[R]{\nouppercase{\sjtu@fancyhead\leftmark}} - \fancyfoot[C]{\small ---~{\bfseries\thepage}~---} + \fancyhead[L]{\includegraphics{figure/sjtubanner}} + \fancyhead[R]{\parbox[b]{\markboxwidth}{\raggedleft\nouppercase{\sjtu@fancyhead\sjtu@value@titlemark}}} + \fancyfoot[C]{\sjtu@fancyfoot{\theCurrentPageLocal}{\lastpageref{pagesLTS.roman.local}}} \renewcommand{\headheight}{32pt} } + \else + %% 研究生学位论文页眉页脚设置 + \if@twoside + %% 双面打印页眉页脚 + \fancypagestyle{front}{% + \fancyhf{} + \fancyhead[LO,RE]{\small\kaishu\sjtu@value@school\sjtu@value@chinesedegree\sjtu@label@thesis} + \fancyhead[LE,RO]{\nouppercase{\sjtu@fancyhead\leftmark}} + \fancyfoot[C]{\small ---~{\bfseries\thepage}~---} + \renewcommand{\headheight}{32pt} + } + \fancypagestyle{main}{% + \fancyhf{} + \fancyhead[LO,RE]{\small\kaishu\sjtu@value@school\sjtu@value@chinesedegree\sjtu@label@thesis} + \fancyhead[LE,RO]{\nouppercase{\sjtu@fancyhead\leftmark}} + \fancyfoot[C]{\small ---~{\bfseries\thepage}~---} + \renewcommand{\headheight}{32pt} + } + \else + %% 单面打印页眉页脚 + \fancypagestyle{front}{% + \fancyhf{} + \fancyhead[L]{\small\kaishu\sjtu@value@school\sjtu@value@chinesedegree\sjtu@label@thesis} + \fancyhead[R]{\nouppercase{\sjtu@fancyhead\leftmark}} + \fancyfoot[C]{\small ---~{\bfseries\thepage}~---} + \renewcommand{\headheight}{32pt} + } + \fancypagestyle{main}{% + \fancyhf{} + \fancyhead[L]{\small\kaishu\sjtu@value@school\sjtu@value@chinesedegree\sjtu@label@thesis} + \fancyhead[R]{\nouppercase{\sjtu@fancyhead\leftmark}} + \fancyfoot[C]{\small ---~{\bfseries\thepage}~---} + \renewcommand{\headheight}{32pt} + } + \fi \fi \fi \renewcommand\frontmatter{% \cleardoublepage \@mainmatterfalse - \ifsjtu@bachelor + \ifsjtu@coursepaper \pagestyle{front} \else - \pagestyle{main} + \ifsjtu@bachelor + \pagestyle{front} + \else + \pagestyle{main} + \fi \fi \pagenumbering{Roman} } @@ -676,27 +852,53 @@ \newenvironment{abstract}{% \cleardoublepage \pdfbookmark[0]{\sjtu@label@abstract}{abstract} - \chapter*{% - \sjtu@value@chinesetitle - \vskip 20pt - \sjtu@label@chineseabstract - } - \markboth{\sjtu@label@chineseabstract}{} + \ifsjtu@bachelor + \chapter*{% + {\zihao{3} \sjtu@value@chinesetitle} + \vskip 20pt + {\zihao{4} \sjtu@label@chineseabstract} + } + \zihao{5} \markboth{\sjtu@label@chineseabstract}{} + \else + \chapter*{% + \sjtu@value@chinesetitle + \vskip 20pt + \sjtu@label@chineseabstract + } + \zihao{4} \markboth{\sjtu@label@chineseabstract}{} + \fi }{ \vspace{2ex}\noindent - {\zihao{4} \textbf{\sjtu@label@keywords}{\sjtu@value@keywords}} + \ifsjtu@bachelor + {\zihao{-4} \textbf{\sjtu@label@keywords}}{\zihao{5}{\sjtu@value@keywords}} + \else + {\zihao{4} \textbf{\sjtu@label@keywords}{\sjtu@value@keywords}} + \fi } \newenvironment{englishabstract}{% \cleardoublepage - \chapter*{% - \MakeUppercase\sjtu@value@englishtitle - \vskip 20pt - \MakeUppercase\sjtu@label@englishabstract - } - \markboth{\sjtu@label@englishabstract}{} + \ifsjtu@bachelor + \chapter*{% + {\zihao{3} \MakeUppercase\sjtu@value@englishtitle} + \vskip 20pt + {\zihao{4} \MakeUppercase\sjtu@label@englishabstract} + } + \zihao{5} \markboth{\sjtu@label@englishabstract}{} + \else + \chapter*{% + \MakeUppercase\sjtu@value@englishtitle + \vskip 20pt + \MakeUppercase\sjtu@label@englishabstract + } + \zihao{4} \markboth{\sjtu@label@englishabstract}{} + \fi }{ \vspace{2ex}\noindent - {\zihao{4} \textbf{\sjtu@label@englishkeywords}{\sjtu@value@englishkeywords}} + \ifsjtu@bachelor + {\zihao{-4} \textbf{\sjtu@label@englishkeywords}}{\zihao{5} \sjtu@value@englishkeywords} + \else + {\zihao{4} \textbf{\sjtu@label@englishkeywords}{\sjtu@value@englishkeywords}} + \fi } % 主要符号对照表