diff options
author | Karl Berry <karl@freefriends.org> | 2021-09-17 22:10:41 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-09-17 22:10:41 +0000 |
commit | 7210b839ac193714ca7af5b9ec8390955092109a (patch) | |
tree | dcc8563268a4a4fca8a4dc91ef97fa1ff3646e16 /Master/texmf-dist/tex/latex/njuthesis/njuthesis.cls | |
parent | 66b849234d54e78bbcce21445db4c6a26d72efac (diff) |
njuthesis (17sep21)
git-svn-id: svn://tug.org/texlive/trunk@60529 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/njuthesis/njuthesis.cls')
-rw-r--r-- | Master/texmf-dist/tex/latex/njuthesis/njuthesis.cls | 1239 |
1 files changed, 1166 insertions, 73 deletions
diff --git a/Master/texmf-dist/tex/latex/njuthesis/njuthesis.cls b/Master/texmf-dist/tex/latex/njuthesis/njuthesis.cls index d8d8f57f3a8..ff26bf84b14 100644 --- a/Master/texmf-dist/tex/latex/njuthesis/njuthesis.cls +++ b/Master/texmf-dist/tex/latex/njuthesis/njuthesis.cls @@ -1,96 +1,1189 @@ +%% +%% This is file `njuthesis.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% njuthesis.dtx (with options: `class') +%% +%% Copyright (C) 2021 +%% by Nanjing University Linux User Group <nju.lug@yaoge123.cn> +%% +%% This file may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.3 of this license +%% or (at your option) any later version. The latest version of this +%% license is in: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.3 or later is part of all distributions of LaTeX version +%% 2005/12/01 or later. +%% +%% To produce the documentation run the original source files ending with `.dtx' +%% through XeTeX. +%% \NeedsTeXFormat{LaTeX2e} -\ProvidesExplClass{njuthesis}{2021-09-11}{0.7.3}{NJU Thesis LaTeX Template} - -% 通过类传递参数 -\RequirePackage{l3keys2e} - +\RequirePackage{expl3} + \GetIdInfo $Id: njuthesis.dtx 0.9.2 2021-09-17 22:00:00 +0800 NJU LUG <nju.lug@yaoge123.cn> $ + {Thesis template for Nanjing University} +\ProvidesExplClass{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} \LoadClass[ a4paper, twoside, UTF8, scheme=chinese, - linespread=1.625,% laTex默认1.2行距,word默认行距是1.3,要求1.5倍word行距,故1.5/1.2*1.3 = 1.625 + linespread=1.625, fontset=none, zihao=-4 ]{ctexbook}[2018/04/01] +\RequirePackage{l3keys2e} +\tl_new:N \l__nju_info_degree_tl +\tl_new:N \l__nju_info_type_tl +\keys_define:nn { nju } +{ + nlcover .bool_set:N = \g__nju_nlcover_bool, + nlcover .initial:n = false, +} +\keys_define:nn { nju } +{ + degree .choices:nn = + { ug, mg, mg, phd } + { \tl_set_eq:NN \l__nju_info_degree_tl \l_keys_choice_tl }, + degree .initial:n = ug, + type .choices:nn = + { thesis, design } + { \tl_set_eq:NN \l__nju_info_type_tl \l_keys_choice_tl }, + type .initial:n = thesis, +} +\keys_define:nn { nju } +{ + info.meta:nn = { nju / info } { #1 } +} +\keys_define:nn { nju / info } +{ + TitleA .tl_set:N = \l__nju_info_title_a_tl, + TitleB .tl_set:N = \l__nju_info_title_b_tl, + TitleC .tl_set:N = \l__nju_info_title_c_tl, + Title* .tl_set:N = \l__nju_info_title_en_tl, +} +\keys_define:nn { nju / info } +{ + Grade .tl_set:N = \l__nju_info_grade_tl, + StudentID .tl_set:N = \l__nju_info_id_tl, + StudentName .tl_set:N = \l__nju_info_author_tl, + StudentName* .tl_set:N = \l__nju_info_author_en_tl, +} +\keys_define:nn { nju / info } +{ + Department .tl_set:N = \l__nju_info_dept_tl, + Department* .tl_set:N = \l__nju_info_dept_en_tl, + Major .tl_set:N = \l__nju_major_tl, + Major* .tl_set:N = \l__nju_major_en_tl, + Field .tl_set:N = \l__nju_field_tl, + Field* .tl_set:N = \l__nju_field_en_tl, +} +\keys_define:nn { nju / info } +{ + SupervisorA .tl_set:N = \l__nju_info_supv_a_tl, + SupervisorA* .tl_set:N = \l__nju_info_supv_a_en_tl, + SupervisorATitle .tl_set:N = \l__nju_info_supv_a_title_tl, + SupervisorATitle* .tl_set:N = \l__nju_info_supv_a_title_en_tl, +} +\keys_define:nn { nju / info } +{ + SupervisorB .tl_set:N = \l__nju_info_supv_b_tl, + SupervisorB* .tl_set:N = \l__nju_info_supv_b_en_tl, + SupervisorBTitle .tl_set:N = \l__nju_info_supv_b_title_tl, + SupervisorBTitle* .tl_set:N = \l__nju_info_supv_b_title_en_tl, +} +\keys_define:nn { nju / info } +{ + SubmitDate .tl_set:N = \l__nju_submit_date_tl, + SubmitDate* .tl_set:N = \l__nju_submit_date_en_tl, +} +\keys_define:nn { nju / info } +{ + DefendDate .tl_set:N = \l__nju_defend_date_tl, + ReviewerChairman .tl_set:N = \l__nju_info_chairman_tl, + ReviewerA .tl_set:N = \l__nju_info_reviewer_a_tl, + ReviewerB .tl_set:N = \l__nju_info_reviewer_b_tl, + ReviewerC .tl_set:N = \l__nju_info_reviewer_c_tl, + ReviewerD .tl_set:N = \l__nju_info_reviewer_d_tl, +} +\keys_define:nn { nju / info } +{ + Classification .tl_set:N = \l__nju_info_classif_tl, + SecurityLevel .tl_set:N = \l__nju_info_seclv_tl, + UDC .tl_set:N = \l__nju_info_udc_tl, + SupervisorContact .tl_set:N = \l__nju_info_supv_cont_tl, +} +\NewDocumentCommand \njusetup { m } +{ \keys_set:nn { nju } { #1 } } +\RequirePackage[ + top=2.5cm, + bottom=2.5cm, + left=3.2cm, + right=3.2cm +]{geometry} +\RequirePackage{xparse} +\RequirePackage{titletoc} % 修改目录内标题格式 +\RequirePackage[hyphens]{url} % generate better linebreaks in the url +\RequirePackage{dashundergaps} +\RequirePackage{setspace} +\RequirePackage{lastpage} +\RequirePackage{emptypage} % 清除空白页的页码 +\RequirePackage{listings} % 代码环境 +\RequirePackage{enumitem} % 用于修改列表环境 +\RequirePackage{caption} +\RequirePackage{floatrow} % 用于图表等页面元素的定位 +\RequirePackage{booktabs} % 用于绘制三线表 +\RequirePackage{multirow} % Cells occupying multiple rows in tables +\RequirePackage{multicol} % Multiple columns in dictionary +\RequirePackage{siunitx} % 用于书写单位符号 +\RequirePackage[version=4]{mhchem} % 用于绘制分子式 +\RequirePackage{hologo} -% 定义模板键值 -% 用于格式控制的键值 +\sys_if_engine_xetex:T +{ + \RequirePackage{microtype} + + % 加中文下划线,不能用于lualatex + \RequirePackage{xeCJKfntef} + \cs_new:Npn \nju_underline:n #1 {\CJKunderline{#1}} +} +\sys_if_engine_luatex:T{ + % 加中文下划线 + \RequirePackage{lua-ul} + \cs_new:Npn \nju_underline:n #1 {\underLine{#1}} + + % emoji支持 + % \RequirePackage{emoji} + % \setemojifont{Segoe~UI~Emoji} % windows + % \setemojifont{Apple~Color~Emoji} % macos + % \setemojifont{Noto~Color~Emoji} + % For windows. + % Shipped with the best `grinning-face-with-sweat' support. +} +\RequirePackage{blindtext} +\RequirePackage{zhlipsum} +\RequirePackage{amsmath} % Must be loaded before unicode-math +\RequirePackage{amsthm} % Mathematical environments +\RequirePackage{mathtools} % Mathematical tools to use with amsmath +\RequirePackage{thmtools} % Theorem styles +\RequirePackage[ + warnings-off={% 消除与mathtools合用产生的警告 + mathtools-colon, + mathtools-overbracket} + ]{unicode-math} % Math fonts in xetex or luatex +\RequirePackage{graphicx} +\DeclareGraphicsExtensions{.pdf,.eps,.jpg,.png} +\graphicspath{{figure/}} % 图片路径 +\RequirePackage{wrapfig} % Wrap text around figures +\RequirePackage[hidelinks,bookmarksnumbered=true]{hyperref} +\RequirePackage[capitalise,nameinlink,noabbrev]{cleveref} +\RequirePackage{fontspec} +\tl_new:N \g__nju_latin_fontset_tl +\tl_new:N \g__nju_cjk_fontset_tl \keys_define:nn { nju } { - titlelength .int_set:N = \nju_titlelength, - titlelength .initial:n = 1, + customlatinfont .choices:nn = + { gyre, macos, windows, null } + { \tl_set_eq:NN \g__nju_latin_fontset_tl \l_keys_choice_tl }, + customchinesefont .choices:nn = + { fandol, founder, macos, noto, windows, null } + { \tl_set_eq:NN \g__nju_cjk_fontset_tl \l_keys_choice_tl }, +} +\ProcessKeysOptions { nju } +\bool_new:N \g__nju_load_system_fontset_bool +\tl_if_empty:NTF \g__nju_latin_fontset_tl + { \bool_gset_true:N \g__nju_load_system_fontset_bool } +{ + \tl_if_empty:NT \g__nju_cjk_fontset_tl + { \bool_gset_true:N \g__nju_load_system_fontset_bool } +} +\bool_if:NT \g__nju_load_system_fontset_bool +{ + % 检测是否是 Windows + \sys_if_platform_windows:TF + { + \tl_set:Nn \g__nju_latin_fontset_tl { windows } + \tl_set:Nn \g__nju_cjk_fontset_tl { windows } + } + { + % 检测是否是 macOS + \ctex_if_platform_macos:TF + { + \tl_set:Nn \g__nju_latin_fontset_tl { macos } + \tl_set:Nn \g__nju_cjk_fontset_tl { macos } + } + % 其余系统一律使用自由字体 + { + \tl_set:Nn \g__nju_latin_fontset_tl { gyre } + \tl_set:Nn \g__nju_cjk_fontset_tl { fandol } + } + } +} +\cs_new_protected:Npn \__nju_load_latin_font_windows: +{ + \setmainfont{Times~New~Roman} + \setsansfont{Arial} + \setmonofont{Courier~New}[Scale=MatchLowercase] +} +\cs_new_protected:Npn \__nju_load_latin_font_macos: +{ +\setmainfont{Times~New~Roman} +\setsansfont{Arial} +\setmonofont{Menlo}[Scale=MatchLowercase] +} +\cs_new_protected:Npn \__nju_load_latin_font_gyre: +{ +\setmainfont{texgyretermes}[ + Extension=.otf, + UprightFont=*-regular, + BoldFont=*-bold, + ItalicFont=*-italic, + BoldItalicFont=*-bolditalic] +\setsansfont{texgyreheros}[ + Extension=.otf, + UprightFont=*-regular, + BoldFont=*-bold, + ItalicFont=*-italic, + BoldItalicFont=*-bolditalic] +\setmonofont{texgyrecursor}[ + Extension=.otf, + UprightFont=*-regular, + BoldFont=*-bold, + ItalicFont=*-italic, + BoldItalicFont=*-bolditalic, + Scale=MatchLowercase, + Ligatures=CommonOff] +} +\cs_new_protected:Npn \__nju_load_cjk_font_windows: +{ + \setCJKmainfont{SimSun}[ + AutoFakeBold=2.17, + ItalicFont=KaiTi] + \setCJKsansfont{SimHei} + \setCJKmonofont{FangSong} + \setCJKfamilyfont{zhsong}{SimSun}[AutoFakeBold=2.17] + \setCJKfamilyfont{zhhei}{SimHei} + \setCJKfamilyfont{zhfs}{FangSong} + \setCJKfamilyfont{zhkai}{KaiTi}[AutoFakeBold=2.17] + \setCJKfamilyfont{zhnewhei}{Microsoft~YaHei}[ + BoldFont=Microsoft~YaHei~Bold] +} +\cs_new_protected:Npn \__nju_load_cjk_font_macos: +{ + % 移除 does not contain script "CJK" 警告 + \msg_redirect_name:nnn {fontspec} {no-script} {info} + \setCJKmainfont{Songti~SC~Light}[ + BoldFont=Songti~SC~Bold, + ItalicFont=Kaiti~SC, + BoldItalicFont=Kaiti~SC~Bold] + \setCJKsansfont{Heiti~SC~Light}[BoldFont=Heiti~SC~Medium] + \setCJKmonofont{STFangsong} + \setCJKfamilyfont{zhsong}{Songti~SC~Light}[BoldFont=Songti~SC~Bold] + \setCJKfamilyfont{zhhei}{Heiti~SC~Light}[BoldFont=Heiti~SC~Medium] + \setCJKfamilyfont{zhfs}{STFangsong} + \setCJKfamilyfont{zhkai}{Kaiti~SC} + [ + BoldFont=Kaiti~SC~Bold, + % AlternateFont = + % { + % {character range1} {alternate font name1} + % {alternate font features2} , + % ...... + % } + ] + \setCJKfamilyfont{zhnewhei}{PingFang~SC} +} +\cs_new_protected:Npn \__nju_load_cjk_font_fandol: +{ + % 移除 does not contain script "CJK" 警告 + \msg_redirect_name:nnn {fontspec} {no-script} {info} + \setCJKmainfont{FandolSong-Regular}[ + Extension=.otf, + BoldFont=FandolSong-Bold, + ItalicFont=FandolKai-Regular] + \setCJKsansfont{FandolHei-Regular}[ + Extension=.otf, + BoldFont=FandolHei-Bold] + \setCJKmonofont{FandolFang-Regular}[Extension=.otf] + \setCJKfamilyfont{zhsong}{FandolSong-Regular}[ + Extension=.otf, + BoldFont=FandolSong-Bold] + \setCJKfamilyfont{zhhei}{FandolHei-Regular}[ + Extension=.otf, + BoldFont=FandolHei-Bold] + \setCJKfamilyfont{zhfs}{FandolFang-Regular}[Extension=.otf] + \setCJKfamilyfont{zhkai}{FandolKai-Regular}[ + Extension=.otf, + AutoFakeBold=2.17] +} +\cs_new_protected:Npn \__nju_load_cjk_font_founder: +{ + \setCJKmainfont{FZSSK}[% 方正书宋 + Extension=.ttf, + BoldFont=FZXBSK,% 方正小标宋 + ItalicFont=FZKTK]% 方正楷体 + \setCJKsansfont{FZXH1K}[% 方正细黑一 + Extension=.ttf, + BoldFont=FZHTK]% FZHTK 方正黑体 + \setCJKmonofont{FZFSK}[Extension=.ttf]% 方正仿宋 + \setCJKfamilyfont{zhsong} + {FZSSK}[ + Extension=.ttf, + BoldFont=FZXBSK] + \setCJKfamilyfont{zhhei} + {FZHTK}[ + Extension=.ttf, + AutoFakeBold=2.17] + \setCJKfamilyfont{zhfs} + {FZFSK}[Extension=.ttf] + \setCJKfamilyfont{zhkai} + {FZKTK}[Extension=.ttf] + \setCJKfamilyfont{zhnewhei} + {FZYouHK_508R}[% 方正悠黑508R + Extension=.ttf, + BoldFont=FZYouHK_511M]% 方正悠黑511M +} +\cs_new_protected:Npn \__nju_load_cjk_font_noto: +{ + % 思源宋体 + \setCJKmainfont[ + UprightFont=NotoSerifCJKsc-Regular, + BoldFont=NotoSerifCJKsc-Bold, + ItalicFont=NotoSerifCJKsc-Regular, + BoldItalicFont=NotoSerifCJKsc-Bold, + ItalicFeatures=FakeSlant, + BoldItalicFeatures=FakeSlant]{Noto~Serif~CJK~SC} - secondmentor .bool_set:N = \nju_second_mentor, - secondmentor .initial:n = false, + % 思源黑体 + \setCJKsansfont[ + UprightFont=NotoSansCJKsc-Regular, + BoldFont=NotoSansCJKsc-Bold, + ItalicFont=NotoSansCJKsc-Regular, + BoldItalicFont=NotoSansCJKsc-Bold, + ItalicFeatures=FakeSlant, + BoldItalicFeatures=FakeSlant]{Noto~Sans~CJK~SC} - degree .tl_set:N = \nju_degree, - degree .initial:n = UG, + % 包含于思源黑体 + \setCJKmonofont[ + UprightFont=NotoSansMonoCJKsc-Regular, + BoldFont=NotoSansMonoCJKsc-Bold, + ItalicFont=NotoSansMonoCJKsc-Regular, + BoldItalicFont=NotoSansMonoCJKsc-Bold, + ItalicFeatures=FakeSlant, + BoldItalicFeatures=FakeSlant]{Noto~Sans~Mono~SC} - type .tl_set:N = \nju_type, - type .initial:n = thesis, + \setCJKfamilyfont{zhsong}{Noto~Serif~CJK~SC} + \setCJKfamilyfont{zhhei}{Noto~Sans~CJK~SC} + \setCJKfamilyfont{zhfs}{方正仿宋简体}[AutoFakeBold=2.17] + \setCJKfamilyfont{zhkai}{方正楷体简体}[AutoFakeBold=2.17] +} +\cs_new_protected:Npn \__nju_load_font: +{ + \use:c { __nju_load_latin_font_ \g__nju_latin_fontset_tl : } + \use:c { __nju_load_cjk_font_ \g__nju_cjk_fontset_tl : } + + \NewDocumentCommand\songti{}{\CJKfamily{zhsong}} + \NewDocumentCommand\heiti{}{\CJKfamily{zhhei}} + \NewDocumentCommand\fangsong{}{\CJKfamily{zhfs}} + \NewDocumentCommand\kaishu{}{\CJKfamily{zhkai}} +} +\__nju_load_font: +\setmathfont{XITSMath-Regular}[ + BoldFont = XITSMath-Bold, + Extension = .otf] +\RequirePackage{fancyhdr} % 调整页眉页脚 +\fancypagestyle{njuplain}{% + \fancyhead{} + \fancyfoot[C]{\zihao{5}\thepage} % 页脚居中 五号新罗马体数字 +} +\fancypagestyle{njuheadings}{% + \fancyhead{} + \fancyfoot[C]{\zihao{5}\thepage} +} +\str_if_eq:NNTF {\l__nju_info_degree_tl} { ug } +{ + % the header line + \tl_set:Nn \headrulewidth {0pt} + % the footer line + \tl_set:Nn \footrulewidth {0pt} + + \AtBeginDocument{\pagestyle{njuplain}} % 本科无页眉页脚 +} +{ + % the header line + \tl_set:Nn \headrulewidth {1pt} + % the footer line + \tl_set:Nn \footrulewidth {0pt} - systemfont .bool_set:N = \nju_systemfont, - systemfont .initial:n = true, + % \AtBeginDocument{\pagestyle{njuplain}} % 无页眉页脚 + \AtBeginDocument{\pagestyle{headings}} % 研究生有页眉页脚 +} +\ctexset{ + contentsname = 目录, + listfigurename = 插图清单, + listtablename = 表格清单, + chapter/format = \zihao{4}\heiti\centering, + chapter/beforeskip = 10pt, + chapter/afterskip = 60pt, + section/format = \zihao{4}\heiti\raggedright, + subsection/format = \zihao{4}\heiti\raggedright, + subsubsection/format = \zihao{4}\heiti\raggedright +} - customlatinfont .tl_set:N = \nju_customlatinfont, - customlatinfont .initial:n = windows, +\titlecontents{chapter}% 标题级别 + [5em]% 标题左间距 + {\heiti\zihao{4}\vspace{10pt}}% 标题格式 + {\contentslabel{4em}}% 标题标志 + {\hspace*{-4em}}% 无序号标题 + {~\titlerule*[0.6pc]{$.$}~\contentspage}% 指引线与页码 - customchinesefont .tl_set:N = \nju_customchinesefont, - customchinesefont .initial:n = windows, + \titlecontents{section} + [5em] + {\zihao{-4}\vspace{0pt}} + {\contentslabel{2.5em}} + {\hspace*{-4em}} + {~\titlerule*[0.6pc]{$.$}~\contentspage} - info .meta:nn = { nju / info } { #1 } +\titlecontents{subsection} + [8em] + {\zihao{-4}\vspace{0pt}} + {\contentslabel{3em}} + {\hspace*{-4em}} + {~\titlerule*[0.6pc]{$.$}~\contentspage} +\cs_set:Npn \CTEX@addtocline #1#2 +{ + \addcontentsline { toc } {#1} + { \use:c { CTEX@#1@tocline } {#1} {#2} } } +\cs_new:Npn \nju_tocpagestyle:nnn #1 #2 #3 +{ + \newpage + \hspace{0pt} + \vskip 10pt + \begin{center} + \mbox{\songti\bf\zihao{3}{#1}} % 目录页面标题 + \phantomsection + \addcontentsline{toc}{chapter}{#2} % 插入目录 + \end{center} + \vskip 40pt + \@starttoc{#3}% + \cleardoublepage +} +\tl_set:Nn \tableofcontents +{ + \nju_tocpagestyle:nnn {目\hspace{2em}录}{\contentsname}{toc} +} +\tl_set:Nn \listoffigures +{ + \nju_tocpagestyle:nnn {\listfigurename}{\listfigurename}{lof} +} +\tl_set:Nn \listoftables +{ + \nju_tocpagestyle:nnn {\listtablename}{\listtablename}{lot} +} +\NewDocumentEnvironment{preface}{} +{% + \chapter*{前言} + \addcontentsline{toc}{chapter}{前言} +}{} +\NewDocumentEnvironment{acknowledgement}{} +{% + \chapter*{致谢} + \addcontentsline{toc}{chapter}{致谢} +}{} +\RequirePackage[ + style=gb7714-2015, + %style=numeric-comp, + %citestyle=authortitle-icomp, + % citestyle=numeric-comp, + %bibstyle=authoryear, + % bibstyle=numeric, + sorting=none, + %sorting=nyt, + %sortcites=true, + %autocite=footnote, + backend=biber, % Compile the bibliography with biber + hyperref=true, + backref=false, + citecounter=true, + pagetracker=true, + citetracker=true, + ibidtracker=context, + autopunct=true, + autocite=plain, + % gbpub=false, % Uncomment if you do NOT want '[S.l. : s.n.]' + % in reference entries, GitHub Issue (#47) + % gbnamefmt=lowercase, % Uncomment if you do NOT want uppercase author + % names in reference entries, GitHub Issue (#23) +]{biblatex} +\AtEveryBibitem{ +\clearfield{abstract} +\clearfield{issn} +\clearfield{isbn} +\clearfield{archivePrefix} +\clearfield{arxivId} +\clearfield{pmid} +\clearfield{eprint} +\ifentrytype{online}{}{\ifentrytype{misc}{}{\clearfield{url}}} +} +\crefdefaultlabelformat{#2#1#3\,} % 默认在名称后面添加空格 -\keys_define:nn { nju / info } +\crefname{figure}{图}{图} +\crefname{table}{表}{表} +\crefformat{equation}{公式~#2#1#3~} % 删除公式编号的括号 + +\crefformat{chapter}{第#2#1#3章} +\crefformat{section}{第~#2#1#3~节} +\crefformat{subsection}{第~#2#1#3~小节} +\crefformat{subsubsection}{第~#2#1#3~小节} +\crefname{appendix}{附录}{附录} + +\floatsetup[lstlisting]{ % Captions for lstlistings +capposition=above,% +margins=centering,% +floatwidth=\textwidth% +} +\floatsetup[figure]{ % Captions for figures +capposition=bottom,% +margins=centering,% +floatwidth=\textwidth% +} +\floatsetup[table]{ % Captions for tables +capposition=above,% +margins=centering,% +floatwidth=\textwidth% +} +\lstset{ +basicstyle=\ttfamily\linespread{1}\small\selectfont, + keywordstyle=\bfseries,% use bold style for keywords + commentstyle=\rmfamily\itshape,% use italic style for comments + stringstyle=\ttfamily,% 字符串风格 + flexiblecolumns,% ? + numbers=left,% left-aligned numbering + showspaces=false,% hide markers for spaces + showstringspaces=false, + captionpos=t,% place the caption at the top +breaklines=true, +xleftmargin=2em,xrightmargin=2em,% set the width of the code environment +} +\lstdefinestyle{LaTeX}{ + language=TeX, + morekeywords={ + begin, caption, label, mathrm, frac, + toprule, midrule, bottomrule, includegraphics} +} +\DeclareCaptionFont{songticap}{\zihao{5}\bf\songti} +\captionsetup{ + font=small,% + labelfont=songticap, +textfont=songticap, +strut=no,% +hypcap=true, % Links point to the top of the figure +aboveskip=6pt, % Increase the space between the figure and the caption +belowskip=6pt, % Increase the space between the caption and the table +} +\renewcommand{\labelitemi}{\tiny$\blacktriangleright$} +\renewcommand{\labelitemii}{\textbullet} + +\setlist[itemize]{noitemsep} +\setlist[enumerate]{noitemsep} +\setlist[description]{noitemsep} +\declaretheoremstyle[ + %spaceabove=.5\thm@preskip, + %spacebelow=.5\thm@postskip, + headfont=\bf\songti,%\scshape, + notefont=\songti,% notebraces={ (}{)}, + bodyfont=\songti, + %headformat={\NAME\space\NUMBER\space\NOTE}, + headpunct={}, + %postheadspace={.5em plus .1em minus .1em}, + %prefoothook={\hfill\qedsymbol} + ]{njuthm} + +\theoremstyle{njuthm} +\let\oldproofname=\proofname +\renewcommand*{\proofname}{\rm\bf\songti{\oldproofname}} % 修改证明环境标题 +\declaretheorem[ +name=算法, +style=njuthm, +refname={算法,算法}, +Refname={算法,算法}, +]{algorithm} +\declaretheorem[ +name=假设, +style=njuthm, +refname={假设,假设}, +Refname={假设,假设}, +]{assumption} +\declaretheorem[ +name=公理, +style=njuthm, +refname={公理,公理}, +Refname={公理,公理}, +]{axiom} +\declaretheorem[ +name=结论, +style=njuthm, +refname={结论,结论}, +Refname={结论,结论}, +]{conclusion} +\declaretheorem[ +name=条件, +style=njuthm, +refname={条件,条件}, +Refname={条件,条件}, +]{condition} +\declaretheorem[ +name=推论, +style=njuthm, +refname={推论,推论}, +Refname={推论,推论}, +]{corollary} +\declaretheorem[ +name=定义, +style=njuthm, +refname={定义,定义}, +Refname={定义,定义}, +]{definition} +\declaretheorem[ + name=例, + style=njuthm, + refname={例,例}, + Refname={例,例}, + % numberwithin=section, +]{example} +\declaretheorem[ +name=引理, +style=njuthm, +refname={引理,引理}, +Refname={引理,引理}, +]{lemma} +\declaretheorem[ +name=性质, +style=njuthm, +refname={性质,性质}, +Refname={性质,性质}, +]{property} +\declaretheorem[ +name=命题, +style=njuthm, +refname={命题,命题}, +Refname={命题,命题}, +]{proposition} +\declaretheorem[ +name=注解, +style=njuthm, +refname={注解,注解}, +Refname={注解,注解}, +]{remark} +\declaretheorem[ +name=定理, +style=njuthm, +refname={定理,定理}, +Refname={定理,定理}, +numberwithin=section, +]{theorem} +\tl_const:Nn \l__nju_info_title_tl { - % 题目 - TitleA .tl_set:N = \nju_title_a, - TitleB .tl_set:N = \nju_title_b, - TitleC .tl_set:N = \nju_title_c, - TitleEN .tl_set:N = \nju_title_en, - - % 年级学号姓名 - Grade .tl_set:N = \nju_grade, - StudentID .tl_set:N = \nju_student_id, - StudentName .tl_set:N = \nju_student_name, - StudentNameEN .tl_set:N = \nju_student_name_en, - - % 院系专业方向 - Department .tl_set:N = \nju_department, - DepartmentEN .tl_set:N = \nju_department_en, - Major .tl_set:N = \nju_major, - MajorEN .tl_set:N = \nju_major_en, - Field .tl_set:N = \nju_field, - FieldEN .tl_set:N = \nju_field_en, - - % 导师 - MentorA .tl_set:N = \nju_mentor_a, - MentorAEN .tl_set:N = \nju_mentor_a_en, - MentorATitle .tl_set:N = \nju_mentor_a_title, - MentorATitleEN .tl_set:N = \nju_mentor_a_title_en, - - % 第二导师 - MentorB .tl_set:N = \nju_mentor_b, - MentorBEN .tl_set:N = \nju_mentor_b_en, - MentorBTitle .tl_set:N = \nju_mentor_b_title, - MentorBTitleEN .tl_set:N = \nju_mentor_b_title_en, - - % 日期 - SubmitDate .tl_set:N = \nju_submit_date, - DefenseDate .tl_set:N = \nju_defense_date, -} - -\NewDocumentCommand \njusetup { m } -{ \keys_set:nn { nju } { #1 } } - -\ProcessKeysOptions { nju } + \l__nju_info_title_a_tl + \l__nju_info_title_b_tl + \l__nju_info_title_c_tl +} +%% \begin{variable}{\l_@@_info_supv_full_tl,\l_@@_info_supv_full_en_tl} +\tl_new:N \l__nju_info_supv_full_tl +\tl_new:N \l__nju_info_supv_full_en_tl +\tl_set:Nn \l__nju_info_supv_full_tl +{ + \l__nju_info_supv_a_tl\ + \l__nju_info_supv_a_title_tl\ \ + \l__nju_info_supv_b_tl\ + \l__nju_info_supv_b_title_tl +} +\tl_set:Nn \l__nju_info_supv_full_en_tl +{ + \l__nju_info_supv_a_en_tl\ + \l__nju_info_supv_a_title_en_tl\ \ + \l__nju_info_supv_b_en_tl\ + \l__nju_info_supv_b_title_en_tl +} +\tl_new:N \c__nju_name_degree_tl +\tl_new:N \c__nju_name_degree_en_tl +\str_if_eq:NNTF {\l__nju_info_degree_tl} { ug } +{ + % 本科 + \tl_const:Nn \l__nju_name_diploma_tl { 本\hfill 科\hfill } + \tl_const:Nn \c__nju_name_title_tl { 题\hfill 目 } + + \tl_const:Nn \c__nju_cover_uline_len_a_tl { 250pt } + \tl_const:Nn \c__nju_cover_uline_len_b_tl { 90pt } + \tl_const:Nn \c__nju_cover_uline_font_tl { \songti } + \tl_const:Nn \c__nju_cover_uline_style_tl { \bf } + \tl_const:Nn \c__nju_cover_uline_bskip_tl {} -% 输入配置文件 -\RequirePackage{profile/packages} -\RequirePackage{profile/font} -\RequirePackage{profile/page} -\RequirePackage{profile/reference} -\RequirePackage{profile/components} -\RequirePackage{profile/cover} -\RequirePackage{profile/abstract} + \tl_const:Nn \c__nju_cover_box_len_tl { 4.2em } + + % 本科强制不打印国家图书馆封面 + \bool_set_false:N \g__nju_nlcover_bool +} +{ + % 本科以外都是研究生 + \tl_const:Nn \l__nju_name_diploma_tl { 研\hfill 究\hfill 生\hfill } + \tl_const:Nn \c__nju_name_title_tl { 论\hfill 文\hfill 题\hfill 目 } + + \tl_const:Nn \c__nju_cover_uline_len_a_tl { 250pt } + \tl_const:Nn \c__nju_cover_uline_len_b_tl { 14em } + \tl_const:Nn \c__nju_cover_uline_font_tl { \kaishu } + \tl_const:Nn \c__nju_cover_uline_style_tl {} + \tl_const:Nn \c__nju_cover_uline_bskip_tl { \hspace{1em} } + + \tl_const:Nn \c__nju_cover_box_len_tl { 6em } + + % 研究生学位名称 + \str_if_eq:NNTF { \l__nju_info_degree_tl } { phd } + { + \tl_set:Nn \c__nju_name_degree_tl { 博士 } + \tl_set:Nn \c__nju_name_degree_en_tl { Doctor~of~Philosophy } + } + { + \tl_set:Nn \c__nju_name_degree_en_tl { Master } + \str_if_eq:NNTF { \l__nju_info_degree_tl } { mg } + { \tl_set:Nn \c__nju_name_degree_tl { 硕士 } } + { \tl_set:Nn \c__nju_name_degree_tl { 硕士专业 } } + } +} +\cs_new:Npn \__nju_cover_uline_a:n #1 +{ + \uline{\makebox[\c__nju_cover_uline_len_a_tl] + {\rm\c__nju_cover_uline_font_tl #1 }} +} +\cs_new:Npn \__nju_cover_uline_b:n #1 +{ + \uline{\makebox[\c__nju_cover_uline_len_b_tl] + {\rm\c__nju_cover_uline_font_tl #1 }} +} +\cs_new:Npn \__nju_cover_uline_nl:nn #1 #2 +{ + \uline{\makebox[#1] + {\rm\c__nju_cover_uline_font_tl #2 }} +} +\cs_new:Npn \__nju_cover_box:n #1 +{ + \makebox[\c__nju_cover_box_len_tl][s]{ + #1\c__nju_cover_uline_bskip_tl} +} +\str_if_eq:NNTF { \l__nju_info_type_tl } { thesis } +{ + \tl_const:Nn \l__nju_info_type_tl_name + { \l__nju_name_diploma_tl 毕\hfill 业\hfill 论\hfill 文 } +} +{ + \tl_const:Nn \l__nju_info_type_tl_name + { \l__nju_name_diploma_tl 毕\hfill 业\hfill 设\hfill 计 } +} +\cs_new_protected:Npn \__nju_cover_title_breakline: +{ + \__nju_cover_box:n {\c__nju_name_title_tl} + & \__nju_cover_uline_a:n + { \c__nju_cover_uline_style_tl \l__nju_info_title_a_tl } \\ + % 如果某行标题空则不输出接下来的若干行 + \tl_if_empty:NF \l__nju_info_title_b_tl + { + \tl_if_empty:NTF \l__nju_info_title_c_tl + { + & \__nju_cover_uline_a:n + {\c__nju_cover_uline_style_tl \l__nju_info_title_b_tl } \\ + } + { + & \__nju_cover_uline_a:n + { \c__nju_cover_uline_style_tl \l__nju_info_title_b_tl } \\ + & \__nju_cover_uline_a:n + { \c__nju_cover_uline_style_tl \l__nju_info_title_c_tl } \\ + } + } +} +\cs_new_protected:Npn \__nju_print_covertab: +{% + \str_if_eq:NNTF { \l__nju_info_degree_tl } { ug } + { + \begin{tabular}{p{4.2em}c} + \__nju_cover_box:n {院\hfill 系} + & \__nju_cover_uline_a:n {\l__nju_info_dept_tl} \\ + \__nju_cover_box:n {专\hfill 业} + & \__nju_cover_uline_a:n {\l__nju_major_tl} \\ + \__nju_cover_title_breakline: + \end{tabular}\\ + + \begin{tabular}{p{4.2em}cp{4.2em}c} + \__nju_cover_box:n {年\hfill 级} + & \__nju_cover_uline_b:n {\l__nju_info_grade_tl} + & \__nju_cover_box:n {学\hfill 号} + & \__nju_cover_uline_b:n {\l__nju_info_id_tl}\\ + \end{tabular}\\ + + \begin{tabular}{p{4.2em}c} + \__nju_cover_box:n {学\hfill 生\hfill 姓\hfill 名} + & \__nju_cover_uline_a:n {\l__nju_info_author_tl} + \end{tabular}\\ + \begin{tabular}{p{4.2em}cp{4.2em}c} + \__nju_cover_box:n {导\hfill 师} + & \__nju_cover_uline_b:n {\l__nju_info_supv_a_tl} + & \__nju_cover_box:n {职\hfill 称} + & \__nju_cover_uline_b:n {\l__nju_info_supv_a_title_tl}\\ + + % 第二导师 + \tl_if_empty:NF \l__nju_info_supv_b_tl + { + \__nju_cover_box:n {第\hfill 二\hfill 导\hfill 师} + & \__nju_cover_uline_b:n {\l__nju_info_supv_b_tl} + & \__nju_cover_box:n {职\hfill 称} + & \__nju_cover_uline_b:n {\l__nju_info_supv_b_title_tl}\\ + } + \end{tabular}\\ + + \begin{tabular}{p{4.2em}c} + \__nju_cover_box:n {提\hfill 交\hfill 日\hfill 期} + & \__nju_cover_uline_a:n {\l__nju_submit_date_tl}\\ + \end{tabular} + } + { + \begin{tabular}{p{6em}c} + \__nju_cover_title_breakline: + \__nju_cover_box:n {作\hfill 者\hfill 姓\hfill 名} + & \__nju_cover_uline_a:n {\l__nju_info_author_tl}\\ + \__nju_cover_box:n {专\hfill 业\hfill 名\hfill 称} + & \__nju_cover_uline_a:n {\l__nju_major_tl}\\ + \__nju_cover_box:n {研\hfill 究\hfill 方\hfill 向} + & \__nju_cover_uline_a:n {\l__nju_field_tl}\\ + \__nju_cover_box:n {指\hfill 导\hfill 教\hfill 师} + & \__nju_cover_uline_a:n {\l__nju_info_supv_full_tl}\\ + \end{tabular} + } +} +\cs_new_protected:Npn \__nju_print_cover_nl: +{ + \thispagestyle{empty} + \pdfbookmark[0]{国家图书馆封面}{nl} + { + % 顶端 + \hspace{0mm} + \vskip -20mm \hskip -15mm + \songti\zihao{-4} + \makebox[40pt][l]{分类号} + \__nju_cover_uline_b:n {\l__nju_info_classif_tl} + \hfill + \makebox[40pt][l]{密级} + \__nju_cover_uline_b:n {\l__nju_info_seclv_tl} + \vskip 10pt \hskip -15mm + \makebox[40pt][l]{UDC} + \__nju_cover_uline_b:n {\l__nju_info_udc_tl} + } + + % 中部 + \vskip\stretch{2} + \begin{center} + \def\ULthickness{1pt} + {\kaishu\zihao{-0} 学\hspace{0.5em}位\hspace{0.5em}论\hspace{0.5em}文} + { + \kaishu\zihao{1} + \vskip \stretch{1} + \__nju_cover_uline_b:n {\l__nju_info_title_a_tl}\\ + \__nju_cover_uline_b:n {\l__nju_info_title_b_tl}\\ + \__nju_cover_uline_b:n {\l__nju_info_title_c_tl}\\ + } + \vskip \stretch{1} + {\kaishu\zihao{4}(题名和副题名)} + \vskip \stretch{1} \vskip 5mm + {\kaishu\zihao{1}\uline{\makebox{\l__nju_info_author_tl}}} + \vskip \stretch{1} + {\kaishu\zihao{4}(作者姓名)} + \end{center} + + % 底部 + \vskip\stretch{1} + { + \kaishu\zihao{4} + \noindent 指导教师姓名、职务、职称、学位、单位名称及地址% + \__nju_cover_uline_nl:nn {94pt}{\l__nju_info_supv_a_tl}\par + \noindent\__nju_cover_uline_nl:nn {\textwidth}{% + \l__nju_info_supv_cont_tl}\par + \noindent 申请学位级别% + \__nju_cover_uline_nl:nn {9em}{\c__nju_name_degree_tl}% + \noindent 专业名称% + \uline{\hfill\l__nju_major_tl\hfill}\par% 需要调整下划线长度 + \noindent 论文提交日期% + \__nju_cover_uline_nl:nn {9em}{\l__nju_submit_date_tl}% + 论文答辩日期% + \uline{\hfill\l__nju_defend_date_tl\hfill}\par% 需要调整下划线长度 + \noindent 学位授予单位和日期\uline{\hfill}\par + \noindent\hfill 答辩委员会主席:% + \__nju_cover_uline_nl:nn {9em}{\l__nju_info_chairman_tl}\par + \noindent\hfill 评阅人:% + \__nju_cover_uline_nl:nn {9em}{\l__nju_info_reviewer_a_tl}\par + \noindent\hfill\__nju_cover_uline_nl:nn {9em}{\l__nju_info_reviewer_b_tl}\par + \noindent\hfill\__nju_cover_uline_nl:nn {9em}{\l__nju_info_reviewer_c_tl}\par + \noindent\hfill\__nju_cover_uline_nl:nn {9em}{\l__nju_info_reviewer_d_tl}\par + + \begin{center} + \kaishu\zihao{3}\hspace{2em} 年\hspace{1em} 月\hspace{1em} 日 + \end{center} + \vskip -10mm + } + \cleardoublepage +} +\cs_new_protected:Npn \__nju_print_cover_ug: +{ + \thispagestyle{empty} + \pagenumbering{Roman} + % Start + \pdfbookmark{封面}{封面} % 将封面插入pdf书签 + \begin{spacing}{1.25} + \vskip 0mm + \hspace{-10mm} + \includegraphics[height=3cm]{njulogo}\smallskip + \begin{center} + \includegraphics[height=3.35cm]{njuname} + \vskip 10mm + {\zihao{1}\makebox[9em][s]{\bf{\songti\l__nju_info_type_tl_name}}} + \vfill + \vskip\stretch{0} + {\bgroup + \kaishu\zihao{3} + \def\tabcolsep{1pt} + \def\arraystretch{1.5} + % 绘制信息框 + \__nju_print_covertab: + \egroup} + \vfill + \end{center} + \end{spacing} + \cleardoublepage + % \vfill + % \newpage +} +\cs_new_protected:Npn \__nju_print_cover_g: +{ + \thispagestyle{empty} + \pagenumbering{Roman} + % Start + \pdfbookmark{封面}{封面} % 将封面插入pdf书签 + \begin{spacing}{1.25} + \begin{center} + \hspace{0pt} \vskip 5mm + \includegraphics[height=1.9cm]{njulogo} + \vskip 10mm + \includegraphics[height=2cm]{njuname-large} + \vskip 15mm + {\zihao{1}\makebox[10em][s]{\bf{\kaishu\l__nju_info_type_tl_name}}} + \vskip 5mm + {\zihao{1}\bf{\kaishu{(申请\c__nju_name_degree_tl 学位)}}} + \par\vfill + \vskip\stretch{0} + {\bgroup + \bf\kaishu\zihao{3} + \def\tabcolsep{1pt} + \def\arraystretch{1.5} + \vskip 10mm + % 绘制信息框 + \__nju_print_covertab: + \egroup} + \vfill + \vskip 10mm + \bf\kaishu\zihao{4}\l__nju_submit_date_tl + \vskip 15mm + \end{center} + \end{spacing} + + \newpage % 封面背面 + \thispagestyle{empty} + \begin{spacing}{1.625} + % TODO: 等待调整格式 + \hspace{0pt} \vfill + {\bgroup + \kaishu\zihao{3} + \makebox[6em][s]{\bf\kaishu 学\hfill 号}:\MakeUppercase{\l__nju_info_id_tl} + \par + \makebox[6em][s]{\bf\kaishu 论文答辩日期}:\l__nju_defend_date_tl + \par + \makebox[6em][s]{\bf\kaishu 指\hfill 导\hfill 教\hfill 师}:\hspace{50mm}(签字) + \par + \egroup} + \vskip 15mm + \end{spacing} + \cleardoublepage +} +\cs_new_protected:Npn \__nju_print_cover_en: +{ + \thispagestyle{empty} + \pdfbookmark{英文封面}{English~cover} % 将封面插入pdf书签 + \begin{center} + \vspace*{20pt} + \bf\sffamily\zihao{2}\l__nju_info_title_en_tl + \vskip \stretch{1} + \normalfont\rmfamily\zihao{4}{by} + \vskip 3pt + \bf\sffamily\zihao{4}\l__nju_info_author_en_tl + \vskip\stretch{1} + \normalfont\rmfamily\zihao{4}{Supervised~by} + \vskip 3pt + \normalfont\sffamily\zihao{4}\l__nju_info_supv_a_title_en_tl + \hspace{.5em}\l__nju_info_supv_a_en_tl + \vskip\stretch{1} + \normalsize\rmfamily{% + A~dissertation~submitted~to\\ + the~graduate~school~of~Nanjing~University\\ + in~partial~fulfilment~of~the~requirements~for~the~degree~of\\ + {\textsc{\c__nju_name_degree_en_tl}}\\ + in\\ + {\l__nju_major_en_tl} + } + \vskip\stretch{2} + \includegraphics[width=2.5cm]{njulogo} \\ + \vskip 3mm + \normalfont\l__nju_info_dept_en_tl\\ + {Nanjing~University} + \vskip 30pt + \normalfont\normalsize\l__nju_submit_date_en_tl + \end{center} + \normalfont + \cleardoublepage +} +\tl_set:Nn \maketitle +{% + \str_if_eq:NNTF { \l__nju_info_degree_tl } { ug } + { + \__nju_print_cover_ug: % 本科封面 + } + { + \bool_if:NT \g__nju_nlcover_bool { \__nju_print_cover_nl: } % 国家图书馆封面 + \__nju_print_cover_g: % 研究生封面 + \__nju_print_cover_en: % 英文封面 + } +} +\NewDocumentCommand \keywords {m} {% + \par\vspace{2ex}\noindent% + {\kaishu\zihao{-4}\makebox[4em][s]{关键词{:}}}~{#1}% +} +\NewDocumentCommand \englishkeywords {m} {% + \par\vspace{2ex}\noindent% + {KEYWORDS{:}}~~{#1}% +} +\str_if_eq:NNTF {\l__nju_info_degree_tl} { ug } +{ + % 本科摘要环境 + \NewDocumentEnvironment{abstract} {} + {% + % \pagestyle{plain} + % \pagenumbering{Roman} + % \phantomsection\addcontentsline{toc}{chapter}{中文摘要} % 将摘要插入目录和pdf书签 + \pdfbookmark[0]{中文摘要}{中文摘要} % 将摘要插入pdf书签,与上一行不可共存 + \begin{center} + \kaishu\zihao{-2}{\textbf{ + \uuline{南京大学本科生毕业论文(设计、作品)中文摘要}}} + \end{center} + {\bgroup + \kaishu\zihao{-4} + \tl_set:Nn \tabcolsep {0pt} + \tl_set:Nn \arraystretch {0.8} + \noindent + 题目: \l__nju_info_title_tl \\ + 院系: \l__nju_info_dept_tl \\ + 专业: \l__nju_major_tl \\ + 本科生姓名: \l__nju_info_author_tl \\ + 指导教师(姓名、职称):\l__nju_info_supv_full_tl \\ + 摘要: + \egroup + } + \kaishu\zihao{-4}\par% + }{% + \newpage + } + + % 英文摘要 + \NewDocumentEnvironment{englishabstract} {} + {% + \pagestyle{plain} + % \phantomsection\addcontentsline{toc}{chapter}{英文摘要} % 将摘要插入目录和pdf书签 + \pdfbookmark[0]{英文摘要}{英文摘要} % 将摘要插入pdf书签,与上一行不可共存 + \begin{center} + \kaishu\zihao{-2}{\textbf{\uuline{ + 南京大学本科生毕业论文(设计、作品)英文摘要}}} + \end{center} + { + \bgroup + THESIS: ~~\l__nju_info_title_en_tl \\ + DEPARTMENT: ~~\l__nju_info_dept_en_tl \\ + SPECIALIZATION: ~~\l__nju_major_en_tl \\ + UNDERGRADUATE:~~\l__nju_info_author_en_tl \\ + MENTOR:~~\l__nju_info_supv_full_en_tl \\ + ABSTRACT: + \egroup + } + \zihao{-4}\par% + }{% + \cleardoublepage + \newpage + } +} +{ + % 研究生摘要环境 + \NewDocumentEnvironment{abstract} {} + {% + \pagestyle{plain} + \pagenumbering{Roman} + % \phantomsection\addcontentsline{toc}{chapter}{中文摘要} % 将摘要插入目录和pdf书签 + \pdfbookmark[0]{中文摘要}{中文摘要} % 将摘要插入pdf书签,与上一行不可共存 + \begin{center} + \kaishu\zihao{-2}{\textbf{\uuline{ + 南京大学研究生毕业论文中文摘要首页用纸}}} + \end{center} + + \bgroup + \kaishu\zihao{4} + \tl_set:Nn \tabcolsep {0pt} + \tl_set:Nn \arraystretch {0.8} + \noindent + 毕业论文题目:\hspace{0.5em}\nju_underline:n {\l__nju_info_title_tl\hfill}\\ + \uline{\makebox[9em]{\l__nju_major_tl}}专业 + \uline{\makebox[4em]{\l__nju_info_grade_tl}}级 + \str_if_eq:NNTF {\l__nju_info_degree_tl} { phd } {博}{硕} + 士生姓名:\uline{\hfill\l__nju_info_author_tl\hfill} \\ + 指导教师(姓名、职称):\uline{\hfill\l__nju_info_supv_full_tl\hfill}\par + \egroup + + \kaishu\zihao{4}\par% + }{% + \newpage + } + + % 英文摘要 + \NewDocumentEnvironment{englishabstract} {} + {% + \pagestyle{plain} + % \phantomsection\addcontentsline{toc}{chapter}{英文摘要} % 将摘要插入目录和pdf书签 + \pdfbookmark[0]{英文摘要}{英文摘要} % 将摘要插入pdf书签,与上一行不可共存 + \begin{center} + \kaishu\zihao{-2}{\textbf{\uuline{ + 南京大学研究生毕业论文英文摘要首页用纸}}} + \end{center} + { + \bgroup + \zihao{4} + THESIS: ~~\l__nju_info_title_en_tl \\ + SPECIALIZATION: ~~\l__nju_major_en_tl \\ + POSTGRADUATE:~~\l__nju_info_author_en_tl \\ + MENTOR:~~\l__nju_info_supv_full_en_tl\par + \egroup + } + \zihao{4}\par% + }{% + \cleardoublepage + \newpage + } +} +\endinput +%% +%% End of file `njuthesis.cls'. |