diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/njuthesis/profile')
7 files changed, 972 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/njuthesis/profile/abstract.sty b/Master/texmf-dist/doc/latex/njuthesis/profile/abstract.sty new file mode 100644 index 00000000000..37814cef131 --- /dev/null +++ b/Master/texmf-dist/doc/latex/njuthesis/profile/abstract.sty @@ -0,0 +1,136 @@ +\ProvidesExplPackage{profile/abstract}{2021-09-11}{0.7.0}{NJU Thesis abstract design} + +% 判断学位 +\str_if_eq:eeTF {\nju_degree} { 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 + 题目: \nju_title \\ + 院系: \nju_department \\ + 专业: \nju_major \\ + 本科生姓名: \nju_student_name \\ + 指导教师(姓名、职称):\nju_mentor_full \\ + 摘要: + \egroup + } + \kaishu\zihao{-4}\par% + }{% + \newpage + } + + % 中文关键词 + \NewDocumentCommand \keywords {m} {% + \par\vspace{2ex}\noindent% + {\kaishu\zihao{-4}\makebox[4em][s]{关键词{:}}}~{#1}% + } + + % 英文摘要 + \NewDocumentEnvironment{englishabstract} {} + {% + \pagestyle{plain} + % \phantomsection\addcontentsline{toc}{chapter}{英文摘要} % 将摘要插入目录和pdf书签 + \pdfbookmark[0]{英文摘要}{英文摘要} % 将摘要插入pdf书签,与上一行不可共存 + \begin{center} + \kaishu\zihao{-2}{\textbf{\uuline{南京大学本科生毕业论文(设计、作品)英文摘要}}} + \end{center} + { + \bgroup + THESIS: ~~\nju_title_en \\ + DEPARTMENT: ~~\nju_department_en \\ + SPECIALIZATION: ~~\nju_major_en \\ + UNDERGRADUATE:~~\nju_student_name_en \\ + MENTOR:~~\nju_mentor_full_en \\ + ABSTRACT: + \egroup + } + \zihao{-4}\par% + }{% + \cleardoublepage + \newpage + } + + % 英文关键词 + \NewDocumentCommand \englishkeywords {m} {% + \par\vspace{2ex}\noindent% + {KEYWORDS{:}}~~{#1}% + } +} +{ + % 摘要环境 + \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 + % 毕业论文题目:\ \uline{\nju_title} \\ % 下划线有问题 + 毕业论文题目:\ \nju_title \\ + \uline{\makebox[9em]{\nju_major}}专业\uline{\makebox[3em]{\nju_grade}}级 + \str_if_eq:eeTF {\nju_degree} { d } {博}{硕} + 士生姓名:\uline{\hfill\nju_student_name\hfill} \\ + 指导教师(姓名、职称):\uline{\hfill\nju_mentor_full\hfill}\par + \egroup + + \kaishu\zihao{4}\par% + }{% + \newpage + } + + % 中文关键词 + \NewDocumentCommand \keywords {m} {% + \par\vspace{2ex}\noindent% + {\kaishu\zihao{4}\makebox[4em][s]{关键词{:}}}~{#1}% + } + + % 英文摘要 + \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: ~~\nju_title_en \\ + SPECIALIZATION: ~~\nju_major_en \\ + POSTGRADUATE:~~\nju_student_name_en \\ + MENTOR:~~\nju_mentor_full_en\par + \egroup + } + \zihao{4}\par% + }{% + \cleardoublepage + \newpage + } + + % 英文关键词 + \NewDocumentCommand \englishkeywords {m} {% + \par\vspace{2ex}\noindent% + {KEYWORDS{:}}~~{#1}% + } +} diff --git a/Master/texmf-dist/doc/latex/njuthesis/profile/components.sty b/Master/texmf-dist/doc/latex/njuthesis/profile/components.sty new file mode 100644 index 00000000000..4a24fe4f59b --- /dev/null +++ b/Master/texmf-dist/doc/latex/njuthesis/profile/components.sty @@ -0,0 +1,173 @@ +\ProvidesExplPackage{profile/components}{2021-09-11}{0.6.0}{NJU Thesis components configuration} + +% 图表位置调整 +\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 + % frame=lrtb,% show all four sides of the frame + % linewidth=.8\textwidth, + % breakatwhitespace=true, + 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 + % indention=0pt, % Suppress indentation + % % parindent=0pt, % Suppress space between paragraphs + aboveskip=6pt, % Increase the space between the figure and the caption + belowskip=6pt, % Increase the space between the caption and the table +} + +% list configuration +\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={算法,算法}, + % numberwithin=section, +]{algorithm} +\declaretheorem[ + name=假设, + style=njuthm, + refname={假设,假设}, + Refname={假设,假设}, + % numberwithin=section, +]{assumption} +\declaretheorem[ + name=公理, + style=njuthm, + refname={公理,公理}, + Refname={公理,公理}, + % numberwithin=section, +]{axiom} +\declaretheorem[ + name=结论, + style=njuthm, + refname={结论,结论}, + Refname={结论,结论}, + % numberwithin=section, +]{conclusion} +\declaretheorem[ + name=条件, + style=njuthm, + refname={条件,条件}, + Refname={条件,条件}, + % numberwithin=section, +]{condition} +\declaretheorem[ + name=推论, + style=njuthm, + refname={推论,推论}, + Refname={推论,推论}, + % numberwithin=section, +]{corollary} +\declaretheorem[ + name=定义, + style=njuthm, + refname={定义,定义}, + Refname={定义,定义}, + % numberwithin=section, +]{definition} +\declaretheorem[ + name=例, + style=njuthm, + refname={例,例}, + Refname={例,例}, + % numberwithin=section, +]{example} +\declaretheorem[ + name=引理, + style=njuthm, + refname={引理,引理}, + Refname={引理,引理}, + % numberwithin=section, +]{lemma} +\declaretheorem[ + name=性质, + style=njuthm, + refname={性质,性质}, + Refname={性质,性质}, + % numberwithin=section, +]{property} +\declaretheorem[ + name=命题, + style=njuthm, + refname={命题,命题}, + Refname={命题,命题}, + % numberwithin=section, +]{proposition} +\declaretheorem[ + name=注解, + style=njuthm, + refname={注解,注解}, + Refname={注解,注解}, + % numberwithin=section, +]{remark} +\declaretheorem[ + name=定理, + style=njuthm, + refname={定理,定理}, + Refname={定理,定理}, + numberwithin=section, +]{theorem} diff --git a/Master/texmf-dist/doc/latex/njuthesis/profile/cover.sty b/Master/texmf-dist/doc/latex/njuthesis/profile/cover.sty new file mode 100644 index 00000000000..8293e64780b --- /dev/null +++ b/Master/texmf-dist/doc/latex/njuthesis/profile/cover.sty @@ -0,0 +1,251 @@ +\ProvidesExplPackage{profile/cover}{2021-09-11}{0.7.0}{NJU Thesis cover design} + +% 拼合标题 +\tl_const:Nn \nju_title {\nju_title_a \nju_title_b \nju_title_c} + +% 拼合导师 +\bool_if:NTF \nju_second_mentor +{ + \tl_const:Nn \nju_mentor_full + { + \nju_mentor_a\ \nju_mentor_a_title + \ \ \nju_mentor_b\ \nju_mentor_b_title + } + \tl_const:Nn \nju_mentor_full_en + { + \nju_mentor_a_en\ \nju_mentor_a_title_en + \ \ \nju_mentor_b_en\ \nju_mentor_b_title_en + } +} +{ + \tl_const:Nn \nju_mentor_full + { + \nju_mentor_a\ \nju_mentor_a_title + } + \tl_const:Nn \nju_mentor_full_en + { + \nju_mentor_a_en\ \nju_mentor_a_title_en + } +} + +% 封面下划线 +\cs_new:Npn \nju_cover_underline_ug:nn #1 #2 { + \uline{\makebox[#1]{\rm\songti#2}} +} +\cs_new:Npn \nju_cover_underline_g:n #1 { + \uline{\makebox[215pt]{\rm\kaishu#1}} +} + +% 封面表格边框 +\cs_new:Npn \nju_coverbox_ug:n #1 { + \makebox[4.2em][s]{#1} +} +\cs_new:Npn \nju_coverbox_g:n #1 { + \makebox[6em][s]{#1\hspace{1em}} +} + +% 判断学位 +\str_if_eq:eeTF {\nju_degree} { ug } +{ \tl_const:Nn \nju_degree_name {本\hfill 科\hfill } } % 本科 +{ + % 本科以外都是研究生 + \tl_const:Nn \nju_degree_name {研\hfill 究\hfill 生\hfill } + + % 研究生类别 + \str_case_e:nn { \nju_degree } + { + { mg } { \tl_const:Nn \nju_degree_title {硕士} } + { mf } { \tl_const:Nn \nju_degree_title {硕士专业} } + { d } { \tl_const:Nn \nju_degree_title {博士} } + } +} + +% 判断类型 +\str_if_eq:eeTF {\nju_type} {thesis} +{\tl_const:Nn \nju_type_name {\nju_degree_name 毕\hfill 业\hfill 论\hfill 文}} +{\tl_const:Nn \nju_type_name {\nju_degree_name 毕\hfill 业\hfill 设\hfill 计}} + +% 封面信息栏 本科 +\tl_new:N \nju_printcoverinfo_ug +\tl_set:Nn \nju_printcoverinfo_ug { + \begin{tabular}{p{4.2em}c} + \nju_coverbox_ug:n {院\hfill 系} + & \nju_cover_underline_ug:nn {250pt}{\nju_department}\\ + \nju_coverbox_ug:n {专\hfill 业} + & \nju_cover_underline_ug:nn {250pt}{\nju_major}\\ + + % 标题换行 + \int_case:nn {\nju_titlelength} + { + { 1 } { + \nju_coverbox_ug:n {题\hfill 目} + & \nju_cover_underline_ug:nn {250pt}{\bf{\nju_title_a}} \\ } + { 2 } { + \nju_coverbox_ug:n {题\hfill 目} + & \nju_cover_underline_ug:nn {250pt}{\bf{\nju_title_a}} \\ + & \nju_cover_underline_ug:nn {250pt}{\bf{\nju_title_b}} \\ } + { 3 } { + \nju_coverbox_ug:n {题\hfill 目} + & \nju_cover_underline_ug:nn {250pt}{\bf{\nju_title_a}} \\ + & \nju_cover_underline_ug:nn {250pt}{\bf{\nju_title_b}} \\ + & \nju_cover_underline_ug:nn {250pt}{\bf{\nju_title_c}} \\} + } + \end{tabular}\\ + + \begin{tabular}{p{4.2em}cp{4.2em}c} + \nju_coverbox_ug:n {年\hfill 级} + & \nju_cover_underline_ug:nn {90pt}{\nju_grade} + & \nju_coverbox_ug:n {学\hfill 号} + & \nju_cover_underline_ug:nn {90pt}{\nju_student_id}\\ + \end{tabular}\\ + + \begin{tabular}{p{4.2em}c} + \nju_coverbox_ug:n {学\hfill 生\hfill 姓\hfill 名} + & \nju_cover_underline_ug:nn {250pt}{\nju_student_name} + \end{tabular}\\ + \begin{tabular}{p{4.2em}cp{4.2em}c} + \nju_coverbox_ug:n {导\hfill 师} + & \nju_cover_underline_ug:nn {90pt}{\nju_mentor_a} + & \nju_coverbox_ug:n {职\hfill 称} + & \nju_cover_underline_ug:nn {90pt}{\nju_mentor_a_title}\\ + + % 第二导师 + \bool_if:NTF \nju_second_mentor + { + \nju_coverbox_ug:n {第\hfill 二\hfill 导\hfill 师} + & \nju_cover_underline_ug:nn {90pt}{\nju_mentor_b} + & \nju_coverbox_ug:n {职\hfill 称} + & \nju_cover_underline_ug:nn {90pt}{\nju_mentor_b_title}\\ + } + {} + \end{tabular}\\ + + \begin{tabular}{p{4.2em}c} + \nju_coverbox_ug:n {提\hfill 交\hfill 日\hfill 期} + & \nju_cover_underline_ug:nn {250pt}{\nju_submit_date}\\ + \end{tabular} +} + +% 封面信息栏 研究生 +\tl_new:N \nju_printcoverinfo_g +\tl_set:Nn \nju_printcoverinfo_g { + \begin{tabular}{p{6em}c} + % 标题换行 + \int_case:nn {\nju_titlelength} + { + { 1 } { + \nju_coverbox_g:n {论\hfill 文\hfill 题\hfill 目} + & \nju_cover_underline_g:n {\nju_title_a} \\ } + { 2 } { + \nju_coverbox_g:n {论\hfill 文\hfill 题\hfill 目} + & \nju_cover_underline_g:n {\nju_title_a} \\ + & \nju_cover_underline_g:n {\nju_title_b} \\ } + { 3 } { + \nju_coverbox_g:n {论\hfill 文\hfill 题\hfill 目} + & \nju_cover_underline_g:n {\nju_title_a} \\ + & \nju_cover_underline_g:n {\nju_title_b} \\ + & \nju_cover_underline_g:n {\nju_title_c} \\} + } + + \nju_coverbox_g:n {作\hfill 者\hfill 姓\hfill 名} + & \nju_cover_underline_g:n {\nju_student_name}\\ + \nju_coverbox_g:n {专\hfill 业\hfill 名\hfill 称} + & \nju_cover_underline_g:n {\nju_major}\\ + \nju_coverbox_g:n {研\hfill 究\hfill 方\hfill 向} + & \nju_cover_underline_g:n {\nju_field}\\ + \nju_coverbox_g:n {指\hfill 导\hfill 教\hfill 师} + & \nju_cover_underline_g:n {\nju_mentor_full}\\ + \end{tabular} +} + +% 绘制封面命令 +\tl_new:N \nju_printcover_ug % 本科封面 +\tl_new:N \nju_printcover_g % 研究生封面 + +% 本科封面 +\tl_set:Nn \nju_printcover_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\nju_type_name}}} + \vfill + \vskip\stretch{0} + {\bgroup + \kaishu\zihao{3} + \def\tabcolsep{1pt} + \def\arraystretch{1.5} + \nju_printcoverinfo_ug % 绘制信息框 + \egroup} + \vfill + \end{center} + \end{spacing} + \cleardoublepage + \vfill + % \newpage +} + +% 研究生封面 +\tl_set:Nn \nju_printcover_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=1.9cm]{njuname-large} + \vskip 15mm + {\zihao{1}\makebox[10em][s]{\bf{\kaishu\nju_type_name}}} + \vskip 5mm + {\zihao{1}\bf{\kaishu{(申请\nju_degree_title 学位)}}} + \par\vfill + \vskip\stretch{0} + {\bgroup + \bf\kaishu\zihao{3} + \def\tabcolsep{1pt} + \def\arraystretch{1.5} + \vskip 10mm + \nju_printcoverinfo_g % 绘制信息框 + \egroup} + \vfill + \vskip 10mm + \bf\kaishu\zihao{4}\nju_submit_date + \vskip 15mm + \end{center} + \end{spacing} + + \newpage % 封面背面 + \thispagestyle{empty} + \begin{spacing}{1.625} + % TODO: 等待调整格式 + \hspace{0pt} \vfill + {\bgroup + \bf\kaishu\zihao{3} + \makebox[6em][s]{学\hfill 号}:\nju_student_id + \par + \makebox[6em][s]{论文答辩日期}:\nju_defense_date + \par + \makebox[6em][s]{指\hfill 导\hfill 教\hfill 师}:\hspace{50mm}(签字) + \par + \egroup} + \vskip 15mm + \end{spacing} + \cleardoublepage +} + +% 重定义maketitle生成封面 +\RenewDocumentCommand \maketitle {} {% + \str_if_eq:eeTF {\nju_degree} { ug } + { \nju_printcover_ug } % 本科封面 + { \nju_printcover_g } % 研究生封面 +} diff --git a/Master/texmf-dist/doc/latex/njuthesis/profile/font.sty b/Master/texmf-dist/doc/latex/njuthesis/profile/font.sty new file mode 100644 index 00000000000..d939fb4842f --- /dev/null +++ b/Master/texmf-dist/doc/latex/njuthesis/profile/font.sty @@ -0,0 +1,219 @@ +\ProvidesExplPackage{profile/font}{2021-09-11}{0.7.0}{NJU Thesis font configuration} + +% \RequireXeTeX +% \RequireLuaTeX + +% 设置西文字体 +\NewDocumentCommand\set_latin_fontset_windows{}{ + \setmainfont{Times~New~Roman} + \setsansfont{Arial} + \setmonofont{Courier~New}[Scale=MatchLowercase] +} + +\NewDocumentCommand\set_latin_fontset_macos{}{ + \setmainfont{Times~New~Roman} + \setsansfont{Arial} + \setmonofont{Menlo}[Scale=MatchLowercase] +} + +\NewDocumentCommand\set_latin_fontset_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] +} + +% 设置中文字体 +\NewDocumentCommand\set_chinese_fontset_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] +} + +\NewDocumentCommand\set_chinese_fontset_macos{}{ + \msg_redirect_name:nnn {fontspec} {no-script} {info} % 移除 does not contain script "CJK" 警告 + \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] + \setCJKfamilyfont{zhnewhei}{PingFang~SC} +} + +\NewDocumentCommand\set_chinese_fontset_fandol{}{ + \msg_redirect_name:nnn {fontspec} {no-script} {info} % 移除 does not contain script "CJK" 警告 + \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] +} + +% 方正字符集 +\NewDocumentCommand\set_chinese_fontset_founder{}{ + % FZSSK 方正书宋(简繁扩展) http://www.foundertype.com/index.php/FontInfo/index/id/151 免费商用 + % FZXBSK 方正小标宋(简繁扩展) http://www.foundertype.com/index.php/FontInfo/index/id/164 设计师非商免费 + % FZKTK 方正楷体(简繁扩展) http://www.foundertype.com/index.php/FontInfo/index/id/137 免费商用 + \setCJKmainfont{FZSSK}[ + Extension=.ttf, + BoldFont=FZXBSK, + ItalicFont=FZKTK] + % FZXH1K 方正细黑一(简繁扩展) http://www.foundertype.com/index.php/FontInfo/index/id/161 设计师非商免费 + % FZHTK 方正黑体(简繁扩展) http://www.foundertype.com/index.php/FontInfo/index/id/131 免费商用 + \setCJKsansfont{FZXH1K}[ + Extension=.ttf, + BoldFont=FZHTK] + % FZFSK 方正仿宋(简繁扩展) http://www.foundertype.com/index.php/FontInfo/index/id/128 + \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] + % FZYouHK_508R 方正悠黑508R(简繁扩展) http://www.foundertype.com/index.php/FontInfo/index/id/244 设计师非商免费 + % FZYouHK_511M 方正悠黑511M(简繁扩展) http://www.foundertype.com/index.php/FontInfo/index/id/244 设计师非商免费 + \setCJKfamilyfont{zhnewhei}{FZYouHK_508R}[ + Extension=.ttf, + BoldFont=FZYouHK_511M] +} + +\NewDocumentCommand\set_chinese_fontset_noto{}{ + % 思源宋体 https://www.google.com/get/noto/#serif-hans + \setCJKmainfont[ + UprightFont=NotoSerifCJKsc-Regular, + BoldFont=NotoSerifCJKsc-Bold, + ItalicFont=NotoSerifCJKsc-Regular, + BoldItalicFont=NotoSerifCJKsc-Bold, + ItalicFeatures=FakeSlant, + BoldItalicFeatures=FakeSlant]{Noto~Serif~CJK~SC} + + % 思源黑体 https://www.google.com/get/noto/#sans-hans + \setCJKsansfont[ + UprightFont=NotoSansCJKsc-Regular, + BoldFont=NotoSansCJKsc-Bold, + ItalicFont=NotoSansCJKsc-Regular, + BoldItalicFont=NotoSansCJKsc-Bold, + ItalicFeatures=FakeSlant, + BoldItalicFeatures=FakeSlant]{Noto~Sans~CJK~SC} + + % 包含于上述思源黑体 + \setCJKmonofont[ + UprightFont=NotoSansMonoCJKsc-Regular, + BoldFont=NotoSansMonoCJKsc-Bold, + ItalicFont=NotoSansMonoCJKsc-Regular, + BoldItalicFont=NotoSansMonoCJKsc-Bold, + ItalicFeatures=FakeSlant, + BoldItalicFeatures=FakeSlant]{Noto~Sans~Mono~SC} + + \setCJKfamilyfont{zhsong}{Noto~Serif~CJK~SC} + \setCJKfamilyfont{zhhei}{Noto~Sans~CJK~SC} + + % 方正楷体、方正仿宋为免费商用字体,且支持CJK字符集 + % 方正仿宋 http://www.foundertype.com/index.php/FontInfo/index/id/128.html + % 方正楷体 http://www.foundertype.com/index.php/FontInfo/index/id/137.html + \setCJKfamilyfont{zhfs}{方正仿宋简体}[AutoFakeBold=2.17] + \setCJKfamilyfont{zhkai}{方正楷体简体}[AutoFakeBold=2.17] +} + +% 字体判断 +\bool_if:NTF \nju_systemfont +% 根据操作系统自动选择相应字体 +{ + % 检测是否是 Windows + \sys_if_platform_windows:TF + { + \set_latin_fontset_windows + \set_chinese_fontset_windows + } + { + % 检测是否是 macOS + \ctex_if_platform_macos:TF + { + \set_latin_fontset_macos + \set_chinese_fontset_macos + } + % 其余系统一律使用自由字体 + { + \set_latin_fontset_gyre + \set_chinese_fontset_fandol + } + } +} +{ + % 如果用户需要自定义字体 + % 此处需要使用\str_case_e而不是\str_case使宏展开为字符串 + \str_case_e:nn { \nju_customlatinfont } + { + { windows } { \set_latin_fontset_windows } + { macos } { \set_latin_fontset_macos } + { gyre } { \set_latin_fontset_gyre } + { null } {} + } + \str_case_e:nn { \nju_customchinesefont } + { + { windows } { \set_chinese_fontset_windows } + { macos } { \set_chinese_fontset_macos } + { gyre } { \set_chinese_fontset_gyre } + { founder } { \set_chinese_fontset_founder } + { noto } { \set_chinese_fontset_noto } + { null } {} + } +} +% 选择其他字体,请确保相应字体已安装 + +% 设置数学字体 (XITS, 或者 STIX, 与 Times New Roman 最为相近) +% \setmathfont{STIXTwoMath-Regular}[Extension = .otf] +\setmathfont{XITSMath-Regular}[ + BoldFont = XITSMath-Bold, + Extension = .otf] + +\NewDocumentCommand\songti{}{\CJKfamily{zhsong}} +\NewDocumentCommand\heiti{}{\CJKfamily{zhhei}} +\NewDocumentCommand\fangsong{}{\CJKfamily{zhfs}} +\NewDocumentCommand\kaishu{}{\CJKfamily{zhkai}} +% \NewDocumentCommand\lishu{}{\CJKfamily{zhli}} diff --git a/Master/texmf-dist/doc/latex/njuthesis/profile/packages.sty b/Master/texmf-dist/doc/latex/njuthesis/profile/packages.sty new file mode 100644 index 00000000000..029488b7870 --- /dev/null +++ b/Master/texmf-dist/doc/latex/njuthesis/profile/packages.sty @@ -0,0 +1,71 @@ +\ProvidesExplPackage{profile/packages}{2021-09-11}{0.6.0}{NJU Thesis packages used} + +\RequirePackage{expl3} +\RequirePackage{ifxetex} +\RequirePackage{fontspec} +\RequirePackage[ + top=2.5cm, + bottom=2.5cm, + left=3.2cm, + right=3.2cm +]{geometry} +\RequirePackage{ifthen} +\RequirePackage{xparse} +% \RequirePackage{etoolbox} +\RequirePackage{titlesec} % 修改章节标题功能由CTeX提供 +\RequirePackage{titletoc} +% \RequirePackage{appendix} % 定义附录样式 +\RequirePackage{fancyhdr} % 调整页眉页脚 +\RequirePackage[hyphens]{url} % generate better linebreaks in the url +% \RequirePackage[normalem]{ulem} % 绘制下划线 +% \RequirePackage{soul} % 用不起来 +% \RequirePackage{soulutf8} +\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} % 用于生成可以被插入书签的LaTeX logo +% \RequirePackage{needspace} % Required to prevent page break right after a sectioning command +% \RequirePackage{xspace} % Better print trailing whitespace +\sys_if_engine_xetex:T{ + \RequirePackage{microtype}} +% \sys_if_engine_luatex:T{ +% \RequirePackage{emoji} +% \setemojifont{Segoe UI Emoji} % For windows. +% % Shipped with the best `grinning-face-with-sweat' support. +% % Use `Apple Color Emoji' for macos +% % or `Noto Color Emoji' if you prefer. +% } + +\RequirePackage{blindtext} % 生成用于测试的大段无意义英文文字 +\RequirePackage{zhlipsum} % 生成用于测试的大段无意义中文文字 +% \RequirePackage{showframe} % 加载以后展示内容边界 + +\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{varioref} +\RequirePackage[hidelinks,bookmarksnumbered=true]{hyperref} +\RequirePackage[capitalise,nameinlink,noabbrev]{cleveref} diff --git a/Master/texmf-dist/doc/latex/njuthesis/profile/page.sty b/Master/texmf-dist/doc/latex/njuthesis/profile/page.sty new file mode 100644 index 00000000000..e926fa73ea4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/njuthesis/profile/page.sty @@ -0,0 +1,54 @@ +\ProvidesExplPackage{profile/page}{2021-09-11}{0.6.0}{NJU Thesis page layout} + +% 论文页码 页脚居中、五号阿拉伯数字(新罗马体)连续编码 +\fancypagestyle{njuplain}{% + \fancyhead{} + \fancyfoot[C]{\zihao{5}\thepage} +} +% the header line +\tl_set:Nn \headrulewidth {0pt} +% the footer line +\tl_set:Nn \footrulewidth {0pt} + +\AtBeginDocument{\pagestyle{njuplain}} % 无页眉页脚 + +% ctex格式设置 +% 目录标题 三号宋体加粗 +% 各部分标题 四号黑体 +\ctexset{ + contentsname = \songti\bfseries\zihao{3}目\hspace{2em} 录, + chapter/format = \zihao{4}\heiti\centering, + section/format = \zihao{4}\heiti\raggedright, + subsection/format = \zihao{4}\heiti\raggedright, + subsubsection/format = \zihao{4}\heiti\raggedright +} + +% 重定义目录中章节标题样式 +% 目录内容中章的标题 四号黑体 +% 目录中其他内容 小四号宋体 +\titlecontents{chapter}% 标题级别 + [5em]% 标题左间距 + {\heiti\zihao{4}\vspace{10pt}}% 标题格式 + {\contentslabel{4em}}% 标题标志 + {\hspace*{-4em}}% 无序号标题 + {~\titlerule*[0.6pc]{$.$}~\contentspage}% 指引线与页码 + +\titlecontents{section} + [5em] + {\zihao{-4}\vspace{0pt}} + {\contentslabel{2.5em}} + {\hspace*{-4em}} + {~\titlerule*[0.6pc]{$.$}~\contentspage} + +\titlecontents{subsection} + [8em] + {\zihao{-4}\vspace{0pt}} + {\contentslabel{3em}} + {\hspace*{-4em}} + {~\titlerule*[0.6pc]{$.$}~\contentspage} + +% 将目录页插入pdf书签 +\let\savedtableofcontents\tableofcontents +\renewcommand{\tableofcontents}{% + \pdfbookmark{目录}{目录} + \savedtableofcontents} diff --git a/Master/texmf-dist/doc/latex/njuthesis/profile/reference.sty b/Master/texmf-dist/doc/latex/njuthesis/profile/reference.sty new file mode 100644 index 00000000000..4087f9f5616 --- /dev/null +++ b/Master/texmf-dist/doc/latex/njuthesis/profile/reference.sty @@ -0,0 +1,68 @@ +\ProvidesExplPackage{profile/reference}{2021-09-11}{0.6.0}{NJU Thesis bibliography and reference} + +% biblatex设置 +\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} + +% Remove some unwanted entries from the bibliography +\AtEveryBibitem{ + \clearfield{abstract} + \clearfield{issn} + \clearfield{isbn} + \clearfield{archivePrefix} + \clearfield{arxivId} + \clearfield{pmid} + \clearfield{eprint} + \ifentrytype{online}{}{\ifentrytype{misc}{}{\clearfield{url}}} + % \ifentrytype{book}{\clearfield{doi}}{} +} + +% 修改标签名称 +\crefdefaultlabelformat{#2#1#3\,} % 默认在名称后面添加空格 + +\crefname{figure}{图}{图} +\crefname{table}{表}{表} +% \crefname{equation}{公式}{公式} +\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{chapter}{§}{§} +% \crefname{section}{§}{§} +% \crefname{subsection}{§}{§} +% \crefname{subsubsection}{§}{§} +\crefname{appendix}{附录}{附录} + +% \crefname{definition}{定义}{定义} +% \crefname{axiom}{公理}{公理} +% \crefname{property}{性质}{性质} +% \crefname{proposition}{命题}{命题} +% \crefname{lemma}{引理}{引理} +% \crefname{corollary}{推论}{推论} +% \crefname{remark}{注解}{注解} +% \crefname{condition}{条件}{条件} +% \crefname{conclusion}{结论}{结论} +% \crefname{assumption}{假设}{假设} |