From 7f77b95ce2e11525c026e0095e36bcba363521fd Mon Sep 17 00:00:00 2001 From: Alexara Wu Date: Mon, 10 Jun 2019 19:30:54 +0800 Subject: [PATCH] Update (20190610) * 1.0.0rc preivew --- sjtuthesis-bachelor.ltx | 15 +++++--- sjtuthesis-graduate.ltx | 6 ++- sjtuthesis.cls | 66 ++++++++++++++++++++++---------- sjtuthesis.dtx | 85 ++++++++++++++++++++++++++++------------- sjtuthesis.sty | 42 ++++++++++---------- thesis.tex | 27 ++++++++----- 6 files changed, 154 insertions(+), 87 deletions(-) diff --git a/sjtuthesis-bachelor.ltx b/sjtuthesis-bachelor.ltx index 30f9ceeb..c742c49b 100644 --- a/sjtuthesis-bachelor.ltx +++ b/sjtuthesis-bachelor.ltx @@ -45,23 +45,23 @@ \fi \geometry{% paper = a4paper, - top = 78bp, + top = 84bp, bottom = 72bp, hmargin = 90bp, headheight = 60bp, - headsep = 6bp} + headsep = 12bp} \ifsjtu@english \def\sjtu@titlemark{\sjtu@value@englishtitle} \newcommand\sjtu@fancyhead{% \parbox[b]{0.75\textwidth}{% - \raggedleft\nouppercase{\footnotesize\kaishu\sjtu@titlemark}}} + \raggedleft\nouppercase{\footnotesize\heiti\sjtu@titlemark}}} \newcommand\sjtu@fancyfoot[2]{% \small --~~Page~~{\bfseries{#1}}~~of~~{\bfseries{#2}}~~--} \else \def\sjtu@titlemark{\sjtu@value@title} \newcommand\sjtu@fancyhead{% \parbox[b]{0.75\textwidth}{% - \raggedleft\nouppercase{\small\kaishu\sjtu@titlemark}}} + \raggedleft\nouppercase{\small\heiti\sjtu@titlemark}}} \newcommand\sjtu@fancyfoot[2]{% \small 第~{\bfseries{#1}}~页\,共~{\bfseries{#2}}~页} \fi @@ -98,6 +98,7 @@ subsection/format = \zihao{-4}\normalfont, } \renewcommand{\cftchapfont}{\normalfont} +\renewcommand{\cftchapleader}{\normalfont\cftdotfill{\cftdotsep}} \renewcommand{\cftchappagefont}{\normalfont} \NewDocumentEnvironment{abstract}{}% {\cleardoublepage @@ -106,7 +107,8 @@ \sjtu@value@title \vskip 2ex {\zihao{4}\sjtu@label@abstractChi} } - \markboth{\sjtu@label@abstractChi}{} + \markboth{\sjtu@label@abstractChi}% + {\sjtu@label@abstractChi} }{% \vspace{3ex}\noindent {\zihao{-4}\heiti\sjtu@label@keywordsChi}{\zihao{5}\sjtu@value@keywords} @@ -116,7 +118,8 @@ \chapter*{% \MakeUppercase\sjtu@value@englishtitle \vskip 2ex {\zihao{4}\MakeUppercase\sjtu@label@abstractEng}} - \markboth{\sjtu@label@abstractEng}{} + \markboth{\sjtu@label@abstractEng}% + {\sjtu@label@abstractEng} }{% \vspace{3ex}\noindent {\zihao{-4}\bfseries\sjtu@label@keywordsEng} diff --git a/sjtuthesis-graduate.ltx b/sjtuthesis-graduate.ltx index d1a22b25..cf1a6525 100644 --- a/sjtuthesis-graduate.ltx +++ b/sjtuthesis-graduate.ltx @@ -89,7 +89,8 @@ \sjtu@value@title \vskip 2ex \sjtu@label@abstractChi } - \markboth{\sjtu@label@abstractChi}{} + \markboth{\sjtu@label@abstractChi}% + {\sjtu@label@abstractChi} \zihao{4} }{% \vspace{3ex}\noindent @@ -100,7 +101,8 @@ \chapter*{% \MakeUppercase\sjtu@value@englishtitle \vskip 2ex \MakeUppercase\sjtu@label@abstractEng} - \markboth{\sjtu@label@abstractEng}{} + \markboth{\sjtu@label@abstractEng}% + {\sjtu@label@abstractEng} \zihao{4} }{% \vspace{3ex}\noindent diff --git a/sjtuthesis.cls b/sjtuthesis.cls index dd727743..0f157d22 100644 --- a/sjtuthesis.cls +++ b/sjtuthesis.cls @@ -30,6 +30,7 @@ setkeys=\kvsetkeys} \DeclareStringOption[doctor]{degree}[doctor] \DeclareStringOption[chinese]{language}[chinese] +\DeclareStringOption[gb7714-2015]{bibstyle}[gb7714-2015] \DeclareStringOption[5]{zihao}[5] \DeclareBoolOption{review} \DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{ctexbook}} @@ -75,7 +76,7 @@ \RequirePackage{caption} \RequirePackage[list=off]{bicaption} \RequirePackage{subcaption} -\RequirePackage[backend=biber,style=gb7714-2015]{biblatex} +\RequirePackage[backend=biber,style=\sjtu@bibstyle]{biblatex} \RequirePackage[titles]{tocloft} \RequirePackage[inline]{enumitem} \RequirePackage[perpage, bottom]{footmisc} @@ -225,12 +226,27 @@ \setlist[1]{labelindent=\parindent} \setcounter{secnumdepth}{3} \setcounter{tocdepth}{2} -\patchcmd\tableofcontents -{\chapter} -{\cleardoublepage% +\renewcommand{\tableofcontents}{% + \cleardoublepage% + \chapter*{\contentsname}% \pdfbookmark[0]{\contentsname}{toc}% - \chapter} -{}{} + \@mkboth{\contentsname}{\contentsname}% + \@starttoc{toc} +} +\renewcommand{\listoffigures}{% + \cleardoublepage% + \chapter*{\listfigurename}% + \pdfbookmark[0]{\listfigurename}{lof}% + \@mkboth{\listfigurename}{\listfigurename}% + \@starttoc{lof} +} +\renewcommand{\listoftables}{% + \cleardoublepage% + \chapter*{\listtablename}% + \pdfbookmark[0]{\listtablename}{lot}% + \@mkboth{\listtablename}{\listtablename}% + \@starttoc{lot} +} \renewcommand\cftfigpresnum{\sjtu@label@figure~} \newlength{\sjtu@cftfignumwidth@tmp} \settowidth{\sjtu@cftfignumwidth@tmp}{\cftfigpresnum} @@ -266,13 +282,13 @@ \captionsetup[sub]{font=footnotesize} \newcommand\sjtu@authconf{% \par\hspace{8em} - {\heiti 保 密} $\square$,在 \uline{\hspace{3em}} + {\heiti 保\quad 密} $\square$,在 \uline{\hspace{3em}} 年解密后适用本授权书。\par 本\sjtu@label@thesiscat 属于: \par\hspace{8em} {\heiti 不保密} $\square$。 \vskip 1ex - (请在以上方框内打钩“$\checkmark$”) + (请在以上方框内打“$\checkmark$”) } \newcommand\sjtu@signbox[1]{% \parbox{.45\textwidth}{% @@ -324,14 +340,17 @@ } \NewDocumentEnvironment{nomenclature}{m} {\cleardoublepage - \chapter{\sjtu@label@nomenclature} - \markboth{\sjtu@label@nomenclature}{} + \pdfbookmark[0]{\sjtu@label@nomenclature}{nomenclature} + \chapter*{\sjtu@label@nomenclature} + \markboth{\sjtu@label@nomenclature}% + {\sjtu@label@nomenclature} \begin{longtable}{#1}} {\end{longtable}} \NewDocumentEnvironment{summary}{}{% \cleardoublepage \chapter*{\sjtu@label@summary} - \markboth{\sjtu@label@summary}{} + \markboth{\sjtu@label@summary}% + {\sjtu@label@summary} \addcontentsline{toc}{chapter}{\sjtu@label@summary} }{} \newcommand\sjtu@acknowledgements[1]{\long\gdef\sjtu@acknowledgements@body{#1}} @@ -340,7 +359,8 @@ {\ifsjtu@review\relax\else% \cleardoublepage \chapter*{\sjtu@label@acknowledgements} - \markboth{\sjtu@label@acknowledgements}{} + \markboth{\sjtu@label@acknowledgements}% + {\sjtu@label@acknowledgements} \addcontentsline{toc}{chapter}{\sjtu@label@acknowledgements} \sjtu@acknowledgements@body \fi} @@ -351,7 +371,7 @@ \setlength{\labelsep}{\biblabelsep}% \setlength{\leftmargin}{\bibhang}% \addtolength{\leftmargin}{\labelwidth}% - \setlength{\itemindent}{\bibitemindent}% + \setlength{\itemindent}{0pt}% \setlength{\itemsep}{\bibitemsep}% \setlength{\parsep}{\bibparsep}}% \usecounter{enumiv}% @@ -363,19 +383,22 @@ \NewDocumentEnvironment{publications}{O{99}} {\cleardoublepage \chapter{\sjtu@label@publications} - \markboth{\sjtu@label@publications}{} + \markboth{\sjtu@label@publications}% + {\sjtu@label@publications} \begin{sjtu@bibliolist}[#1]} {\end{sjtu@bibliolist}} \NewDocumentEnvironment{patents}{O{99}} {\cleardoublepage \chapter{\sjtu@label@patents} - \markboth{\sjtu@label@patents}{} + \markboth{\sjtu@label@patents}% + {\sjtu@label@patents} \begin{sjtu@bibliolist}[#1]} {\end{sjtu@bibliolist}} \NewDocumentEnvironment{projects}{O{99}} {\cleardoublepage \chapter{\sjtu@label@projects} - \markboth{\sjtu@label@projects}{} + \markboth{\sjtu@label@projects}% + {\sjtu@label@projects} \begin{sjtu@bibliolist}[#1]} {\end{sjtu@bibliolist}} \newcommand\sjtu@resume[1]{\long\gdef\sjtu@resume@body{#1}} @@ -384,7 +407,8 @@ {\ifsjtu@review\relax\else% \cleardoublepage \chapter{\sjtu@label@resume} - \markboth{\sjtu@label@resume}{} + \markboth{\sjtu@label@resume}% + {\sjtu@label@resume} \sjtu@resume@body \fi} \AtBeginDocument{ @@ -400,10 +424,10 @@ } \fi \hypersetup{% - pdftitle = \sjtu@value@englishtitle, - pdfauthor = \sjtu@value@englishauthor, - pdfsubject = \sjtu@label@subjectEng, - pdfkeywords = \sjtu@value@englishkeywords, + pdftitle = \sjtu@value@title, + pdfauthor = \sjtu@value@author, + pdfsubject = \sjtu@label@subjectChi, + pdfkeywords = \sjtu@value@keywords, pdfcreator = {LaTeX with SJTUThesis \version} }% } diff --git a/sjtuthesis.dtx b/sjtuthesis.dtx index 680b9579..33fefd12 100644 --- a/sjtuthesis.dtx +++ b/sjtuthesis.dtx @@ -112,6 +112,11 @@ version 2005/12/01 or later. \DeclareStringOption[chinese]{language}[chinese] % \end{macrocode} % +% 参考文献样式。 +% \begin{macrocode} +\DeclareStringOption[gb7714-2015]{bibstyle}[gb7714-2015] +% \end{macrocode} +% % 字号大小。 % \begin{macrocode} \DeclareStringOption[5]{zihao}[5] @@ -227,7 +232,7 @@ version 2005/12/01 or later. % % 参考文献支持宏包。 % \begin{macrocode} -\RequirePackage[backend=biber,style=gb7714-2015]{biblatex} +\RequirePackage[backend=biber,style=\sjtu@bibstyle]{biblatex} % \end{macrocode} % % 使用 \pkg{tocloft} 设置目录格式。 @@ -473,11 +478,11 @@ version 2005/12/01 or later. \geometry{% paper = a4paper, %<*bachelor> - top = 78bp, + top = 84bp, bottom = 72bp, hmargin = 90bp, headheight = 60bp, - headsep = 6bp} + headsep = 12bp} % %<*graduate> top = 3.5cm, @@ -495,14 +500,14 @@ version 2005/12/01 or later. \def\sjtu@titlemark{\sjtu@value@englishtitle} \newcommand\sjtu@fancyhead{% \parbox[b]{0.75\textwidth}{% - \raggedleft\nouppercase{\footnotesize\kaishu\sjtu@titlemark}}} + \raggedleft\nouppercase{\footnotesize\heiti\sjtu@titlemark}}} \newcommand\sjtu@fancyfoot[2]{% \small --~~Page~~{\bfseries{#1}}~~of~~{\bfseries{#2}}~~--} \else \def\sjtu@titlemark{\sjtu@value@title} \newcommand\sjtu@fancyhead{% \parbox[b]{0.75\textwidth}{% - \raggedleft\nouppercase{\small\kaishu\sjtu@titlemark}}} + \raggedleft\nouppercase{\small\heiti\sjtu@titlemark}}} \newcommand\sjtu@fancyfoot[2]{% \small 第~{\bfseries{#1}}~页\,共~{\bfseries{#2}}~页} \fi @@ -670,12 +675,27 @@ version 2005/12/01 or later. % \begin{macro}{\tableofcontents} % 目录生成命令,添加 PDF 标签。 % \begin{macrocode} -\patchcmd\tableofcontents -{\chapter} -{\cleardoublepage% +\renewcommand{\tableofcontents}{% + \cleardoublepage% + \chapter*{\contentsname}% \pdfbookmark[0]{\contentsname}{toc}% - \chapter} -{}{} + \@mkboth{\contentsname}{\contentsname}% + \@starttoc{toc} +} +\renewcommand{\listoffigures}{% + \cleardoublepage% + \chapter*{\listfigurename}% + \pdfbookmark[0]{\listfigurename}{lof}% + \@mkboth{\listfigurename}{\listfigurename}% + \@starttoc{lof} +} +\renewcommand{\listoftables}{% + \cleardoublepage% + \chapter*{\listtablename}% + \pdfbookmark[0]{\listtablename}{lot}% + \@mkboth{\listtablename}{\listtablename}% + \@starttoc{lot} +} % % \end{macrocode} % \end{macro} @@ -684,6 +704,7 @@ version 2005/12/01 or later. % \begin{macrocode} %<*bachelor> \renewcommand{\cftchapfont}{\normalfont} +\renewcommand{\cftchapleader}{\normalfont\cftdotfill{\cftdotsep}} \renewcommand{\cftchappagefont}{\normalfont} % %<*graduate> @@ -754,13 +775,13 @@ version 2005/12/01 or later. %<*class> \newcommand\sjtu@authconf{% \par\hspace{8em} - {\heiti 保 密} $\square$,在 \uline{\hspace{3em}} + {\heiti 保\quad 密} $\square$,在 \uline{\hspace{3em}} 年解密后适用本授权书。\par 本\sjtu@label@thesiscat 属于: \par\hspace{8em} {\heiti 不保密} $\square$。 \vskip 1ex - (请在以上方框内打钩“$\checkmark$”) + (请在以上方框内打“$\checkmark$”) } \newcommand\sjtu@signbox[1]{% \parbox{.45\textwidth}{% @@ -830,7 +851,8 @@ version 2005/12/01 or later. \sjtu@label@abstractChi % } - \markboth{\sjtu@label@abstractChi}{} + \markboth{\sjtu@label@abstractChi}% + {\sjtu@label@abstractChi} %<*graduate> \zihao{4} % @@ -857,7 +879,8 @@ version 2005/12/01 or later. %<*graduate> \MakeUppercase\sjtu@label@abstractEng} % - \markboth{\sjtu@label@abstractEng}{} + \markboth{\sjtu@label@abstractEng}% + {\sjtu@label@abstractEng} %<*graduate> \zihao{4} % @@ -903,8 +926,10 @@ version 2005/12/01 or later. %<*class> \NewDocumentEnvironment{nomenclature}{m} {\cleardoublepage - \chapter{\sjtu@label@nomenclature} - \markboth{\sjtu@label@nomenclature}{} + \pdfbookmark[0]{\sjtu@label@nomenclature}{nomenclature} + \chapter*{\sjtu@label@nomenclature} + \markboth{\sjtu@label@nomenclature}% + {\sjtu@label@nomenclature} \begin{longtable}{#1}} {\end{longtable}} % \end{macrocode} @@ -915,7 +940,8 @@ version 2005/12/01 or later. \NewDocumentEnvironment{summary}{}{% \cleardoublepage \chapter*{\sjtu@label@summary} - \markboth{\sjtu@label@summary}{} + \markboth{\sjtu@label@summary}% + {\sjtu@label@summary} \addcontentsline{toc}{chapter}{\sjtu@label@summary} }{} % \end{macrocode} @@ -930,7 +956,8 @@ version 2005/12/01 or later. {\ifsjtu@review\relax\else% \cleardoublepage \chapter*{\sjtu@label@acknowledgements} - \markboth{\sjtu@label@acknowledgements}{} + \markboth{\sjtu@label@acknowledgements}% + {\sjtu@label@acknowledgements} \addcontentsline{toc}{chapter}{\sjtu@label@acknowledgements} \sjtu@acknowledgements@body \fi} @@ -947,7 +974,7 @@ version 2005/12/01 or later. \setlength{\labelsep}{\biblabelsep}% \setlength{\leftmargin}{\bibhang}% \addtolength{\leftmargin}{\labelwidth}% - \setlength{\itemindent}{\bibitemindent}% + \setlength{\itemindent}{0pt}% \setlength{\itemsep}{\bibitemsep}% \setlength{\parsep}{\bibparsep}}% \usecounter{enumiv}% @@ -963,19 +990,22 @@ version 2005/12/01 or later. \NewDocumentEnvironment{publications}{O{99}} {\cleardoublepage \chapter{\sjtu@label@publications} - \markboth{\sjtu@label@publications}{} + \markboth{\sjtu@label@publications}% + {\sjtu@label@publications} \begin{sjtu@bibliolist}[#1]} {\end{sjtu@bibliolist}} \NewDocumentEnvironment{patents}{O{99}} {\cleardoublepage \chapter{\sjtu@label@patents} - \markboth{\sjtu@label@patents}{} + \markboth{\sjtu@label@patents}% + {\sjtu@label@patents} \begin{sjtu@bibliolist}[#1]} {\end{sjtu@bibliolist}} \NewDocumentEnvironment{projects}{O{99}} {\cleardoublepage \chapter{\sjtu@label@projects} - \markboth{\sjtu@label@projects}{} + \markboth{\sjtu@label@projects}% + {\sjtu@label@projects} \begin{sjtu@bibliolist}[#1]} {\end{sjtu@bibliolist}} % \end{macrocode} @@ -988,7 +1018,8 @@ version 2005/12/01 or later. {\ifsjtu@review\relax\else% \cleardoublepage \chapter{\sjtu@label@resume} - \markboth{\sjtu@label@resume}{} + \markboth{\sjtu@label@resume}% + {\sjtu@label@resume} \sjtu@resume@body \fi} % \end{macrocode} @@ -1010,10 +1041,10 @@ version 2005/12/01 or later. } \fi \hypersetup{% - pdftitle = \sjtu@value@englishtitle, - pdfauthor = \sjtu@value@englishauthor, - pdfsubject = \sjtu@label@subjectEng, - pdfkeywords = \sjtu@value@englishkeywords, + pdftitle = \sjtu@value@title, + pdfauthor = \sjtu@value@author, + pdfsubject = \sjtu@label@subjectChi, + pdfkeywords = \sjtu@value@keywords, pdfcreator = {LaTeX with SJTUThesis \version} }% } diff --git a/sjtuthesis.sty b/sjtuthesis.sty index 00932fa1..e7333032 100644 --- a/sjtuthesis.sty +++ b/sjtuthesis.sty @@ -120,35 +120,33 @@ \settowidth{\sjtu@cftalgnumwidth@tmp}{\cftalgpresnum} \addtolength{\cftalgnumwidth}{\sjtu@cftalgnumwidth@tmp} \newcommand*{\l@algorithm}[2]{% - \ifnum \c@lofdepth >\z@ - \vskip \cftbeforefigskip - {\leftskip \cftfigindent\relax - \rightskip \@tocrmarg - \parfillskip -\rightskip - \parindent \cftfigindent\relax\@afterindenttrue - \interlinepenalty\@M - \leavevmode - \@tempdima \cftalgnumwidth\relax - \let\@cftbsnum \cftalgpresnum - \let\@cftasnum \cftfigaftersnum - \let\@cftasnumb \cftfigaftersnumb - \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip - {\cftfigfont #1}\nobreak - \cftfigfillnum{#2}}% - \fi - } + \vskip \cftbeforefigskip + {\leftskip \cftfigindent\relax + \rightskip \@tocrmarg + \parfillskip -\rightskip + \parindent \cftfigindent\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@tempdima \cftalgnumwidth\relax + \let\@cftbsnum \cftalgpresnum + \let\@cftasnum \cftfigaftersnum + \let\@cftasnumb \cftfigaftersnumb + \advance\leftskip \@tempdima \null\nobreak\hskip -\leftskip + {\cftfigfont #1}\nobreak + \cftfigfillnum{#2}}% +} \renewcommand{\listofalgorithms}{% - \@cfttocstart - \chapter*{\listalgorithmname} - \@mkboth{\listalgorithmname}{} + \cleardoublepage% + \chapter*{\listalgorithmname}% + \pdfbookmark[0]{\listalgorithmname}{loa}% + \@mkboth{\listalgorithmname}{\listalgorithmname}% \@starttoc{loa} - \@cfttocfinish } \patchcmd\@chapter {\if@twocolumn} - {\addtocontents{loa}{\protect\addvspace{10\p@}}% + {\addtocontents{loa}{\protect\addvspace{10.0pt}}% \if@twocolumn} {}{} diff --git a/thesis.tex b/thesis.tex index eb1619ff..c5556c70 100644 --- a/thesis.tex +++ b/thesis.tex @@ -1,20 +1,32 @@ +% 设置 biblatex 额外选项 +% \PassOptionsToPackage{gbpub=false, gbtype=false}{biblatex} + +% 载入 SJTUThesis 模版 % \documentclass[degree=doctor, zihao=-4, language=english, review]{sjtuthesis} \documentclass[degree=master, zihao=-4]{sjtuthesis} -% \documentclass[degree=bachelor, openany, oneside, fontset=windows]{sjtuthesis} +% \documentclass[degree=bachelor, openany, oneside]{sjtuthesis} % \documentclass[degree=course, language=english, openright, twoside]{sjtuthesis} % 选项 -% degree=[doctor|master|bachelor|course], % 必选,学位类型 -% language=[chinese|english], % 可选(默认:chinese),论文的主要语言 -% review, % 可选(默认:关闭),盲审模式 +% degree=[doctor|master|bachelor|course], % 必选,学位类型 +% language=[chinese|english], % 可选(默认:chinese),论文的主要语言 +% bibstyle=[gb7714-2015|gb7714-2015ay|ieee], % 可选(默认:gb7714-2015),参考文献样式 +% review, % 可选(默认:关闭),盲审模式 % 所有其它可能用到的包都统一放到这里了,可以根据自己的实际添加或者删除。 \usepackage{sjtuthesis} -% 逐个导入参考文献数据库 +% 导入参考文献数据库 \addbibresource{bib/thesis.bib} % \addbibresource{bib/chap2.bib} -\input{tex/id} % NOTE: the enclosed commands must be executed in preamble +% 信息录入,必须在导言区进行! +\input{tex/id} + +% 自定义项目标签名称 +% \sjtuSetLabel{ +% listfigure = {图\quad 录}, +% listtable = {表\quad 录} +% } \begin{document} @@ -32,11 +44,8 @@ % 目录、插图目录、表格目录 \tableofcontents \listoffigures -\addcontentsline{toc}{chapter}{\listfigurename} % 将插图目录加入全文目录 \listoftables -\addcontentsline{toc}{chapter}{\listtablename} % 将表格目录加入全文目录 \listofalgorithms -\addcontentsline{toc}{chapter}{\listalgorithmname} % 将算法目录加入全文目录 \include{tex/symbol} % 主要符号、缩略词对照表