diff --git a/.gitignore b/.gitignore index 169ad123776861c42ea621bc71a553eff0cff9fb..c27a11422772c48343046462d239f2d5a5388337 100644 --- a/.gitignore +++ b/.gitignore @@ -12,11 +12,16 @@ *.cb2 .*.lb +## LaTeX class and package +*.cls +*.sty + ## Intermediate documents: *.hd *.dvi *.xdv *-converted-to.* + # these rules might exclude image files for figures etc. # *.ps # *.eps @@ -24,6 +29,7 @@ ## Generated if empty string is given at "Please type another file name for output:" njuthesis.pdf +njuthesis-sample.pdf ## Bibliography auxiliary files (bibtex/biblatex/biber): *.bbl diff --git a/README.md b/README.md index 8cdb717b35c33e0ac6b9ae3697c1a3aa5d0409b6..0b010bf1db4e713bd2ae0371e2356df05b958f6f 100644 --- a/README.md +++ b/README.md @@ -12,22 +12,22 @@ ## 蹇€熷紑濮� -浠�0.9.0鐗堜互鍚庯紝鏈ā鏉夸互`.dtx`鏍煎紡鍙戝竷锛屽悓鏃跺湪release鍖烘彁渚沜ls鏂囦欢銆� +浠�0.9.0鐗堜互鍚庯紝鏈ā鏉夸互DocStrip(`.dtx`)鏍煎紡鍙戝竷锛屽悓鏃跺湪release鍖烘彁渚沜ls鏂囦欢銆� -### 浣跨敤`.dtx`鏂囦欢 +### 浣跨敤DocStrip鏂囦欢 -`.dtx`鍚堝苟浜哃aTeX婧愪唬鐮佸拰鏂囨。锛屾洿鏈夊埄浜庡畯鍖呯殑鍙戝竷銆傝浣跨敤璇ユ枃浠讹紝璇峰湪褰撳墠宸ヤ綔鐩綍涓嬫墦寮€缁堢锛� +DocStrip鍚堝苟浜哃aTeX婧愪唬鐮佸拰鏂囨。锛屾洿鏈夊埄浜庡畯鍖呯殑鍙戝竷銆傝浣跨敤璇ユ枃浠讹紝璇峰湪褰撳墠宸ヤ綔鐩綍涓嬫墦寮€缁堢锛� - 杈撳叆`xetex njuthesis.ins`浠ヨВ鍑哄父瑙勪娇鐢ㄧ殑`.cls`鏂囦欢 - 杈撳叆`latexmk -pv njuthesis.dtx`浠ョ敓鎴愬苟鏌ョ湅鍐呯疆鐨勬枃妗� -璇锋敞鎰忥紝鐩墠鐢变簬鏂囦欢閲嶅悕鍘熷洜锛岀紪璇戣鏂囨ā鏉夸笌鐢熸垚璇存槑鏂囨。寰楀埌鐨凱DF鏂囦欢浼氬啿绐侊紝鍙兘淇濈暀涓€涓€� +璇锋敞鎰忥紝鐢变簬鏂囦欢閲嶅悕鍘熷洜锛岄」鐩腑鐨勭ず渚嬭鏂囨ā鏉垮凡琚噸鍛藉悕涓篳njuthesis-sample.tex`銆� ### 鏈湴缂栬瘧 1. 鎺ㄨ崘[浠庡崡澶ч暅鍍忕珯涓嬭浇](https://mirror.nju.edu.cn/download/app/TeX%20%E6%8E%92%E7%89%88%E7%B3%BB%E7%BB%9F)骞跺畨瑁匱eXLive鎴栬€匨iKTeX鏈€鏂扮増 2. 浠巖elease涓嬭浇鍖呭惈[妯℃澘鍏ㄩ儴鏂囦欢](https://github.com/nju-lug/NJUThesis/releases/latest)鐨勫帇缂╁寘 -3. 鏍规嵁闇€瑕佹洿鏀筦njuthesis.tex`鏂囦欢涓殑鍐呭 +3. 鏍规嵁闇€瑕佹洿鏀筦njuthesis-sample.tex`鏂囦欢涓殑鍐呭 4. 鍦ㄦā鏉挎牴鐩綍涓嬭繍琛宍latexmk -xelatex`缂栬瘧鏂囦欢锛屽緱鍒板搴旂殑PDF #### **鍏充簬鏈湴缂栬瘧** @@ -40,7 +40,7 @@ ### [鍗楀ぇTeX](https://tex.nju.edu.cn)缂栬瘧 1. 浠巖elease涓嬭浇鍖呭惈[妯℃澘鍏ㄩ儴鏂囦欢](https://github.com/nju-lug/NJUThesis/releases/latest)鐨勫帇缂╁寘 -2. 鐧诲綍[鍗楀ぇTeX](https://tex.nju.edu.cn)锛岀偣鍑籒ew Project -> Upload Project涓婁紶鍒氬垰寰楀埌鐨剒ip鏂囦欢锛屼笂浼犲悗`njuthesis.tex`銆乣njuthesis.cls`绛夋枃浠跺簲鍦ㄦ牴鐩綍锛�0.9.0浠ュ悗鐨勭洰褰曠粨鏋勫涓嬫墍绀猴細 +2. 鐧诲綍[鍗楀ぇTeX](https://tex.nju.edu.cn)锛岀偣鍑籒ew Project -> Upload Project涓婁紶鍒氬垰寰楀埌鐨剒ip鏂囦欢锛屼笂浼犲悗`njuthesis-sample.tex`銆乣njuthesis.cls`绛夋枃浠跺簲鍦ㄦ牴鐩綍锛�0.9.0浠ュ悗鐨勭洰褰曠粨鏋勫涓嬫墍绀猴細 ```shell NJUThesis-master/ @@ -51,7 +51,7 @@ 鈹� 鈹� njuthesis.bib 鈹� njuthesis.cls - 鈹� njuthesis.tex + 鈹� njuthesis-sample.tex ``` 3. 鍦ㄥ崡澶eX椤圭洰鍐呴〉闈㈠乏涓婅鐨刞Menu`涓紝灏嗙紪璇戝櫒鏀逛负`XeLaTeX` diff --git a/latexmkrc b/latexmkrc deleted file mode 100644 index 17e9557a5e60632607059fd57821ea68b75df78f..0000000000000000000000000000000000000000 --- a/latexmkrc +++ /dev/null @@ -1,18 +0,0 @@ -# vim: set ft=perl: - -$pdf_mode = 5; - -$xelatex = "xelatex -shell-escape -file-line-error -halt-on-error -interaction=nonstopmode -no-pdf -synctex=1 %O %S"; -$xdvipdfmx = "xdvipdfmx -q -E -o %D %O %S"; - -$bibtex_use = 1.5; - -$clean_ext = "hd loe ptc run.xml synctex.gz thm xdv"; - -$makeindex = "makeindex -s gind.ist %O -o %D %S"; - -add_cus_dep('nlo', 'nls', 0, 'nlo2nls'); -sub nlo2nls { - system("makeindex -s nomencl.ist -o \"$_[0].nls\" \"$_[0].nlo\""); -} -push @generated_exts, 'nlo', 'nls'; diff --git a/njuthesis-l3.dtx b/njuthesis-l3.dtx new file mode 100644 index 0000000000000000000000000000000000000000..b38cb6504e7a0991fb51a73664e9b712d0528d9d --- /dev/null +++ b/njuthesis-l3.dtx @@ -0,0 +1,1672 @@ +% \iffalse meta-comment +% +%% File njuthesis.dtx +% +% Copyright (C) 2005-2021 by Nanjing University Linux User Group <my@yaoge123.com> +% +% It may be distributed and/or modified under the conditions of the +% LaTeX Project Public License (LPPL), either version 1.3c of this +% license or (at your option) any later version. The latest version +% of this license is in the file +% +% https://www.latex-project.org/lppl.txt +% +% ----------------------------------------------------------------------- +% +% The development version of the template can be found at +% +% https://github.com/nju-lug/NJUThesis +% +% for those people who are interested. +% +%<*driver|program> +\ProvidesFile{njuthesis.dtx}[2021/09/12 0.8.3 Nanjing University Thesis Template] +%</driver|program> +%<class>\NeedsTeXFormat{LaTeX2e} +%<class>\ProvidesExplClass{njuthesis}{2021-09-12}{0.8.3}{NJU Thesis LaTeX Template} +%<*driver> +% The same approach as used in \textsf{DocStrip}: if \cs{documentclass} +% is undefined then skip the driver, allowing the file to be used to extract +% \texttt{l3docstrip.tex} from \texttt{l3docstrip.dtx} directly. This works +% as the \cs{fi} is only seen if \LaTeX{} is not in use. The odd \cs{jobname} +% business allows the extraction to work with \LaTeX{} provided an appropriate +% \texttt{.ins} file is set up. +%<*gobble> +\ifx\jobname\relax\let\documentclass\undefined\fi +\ifx\documentclass\undefined +\else \csname fi\endcsname +%</gobble> + \def\filename{njuthesis.dtx} + \documentclass[full,cm-default]{l3doc} + \usepackage{hologo} + \usepackage{xeCJK} + \ExplSyntaxOn + \cs_set_eq:NN \__codedoc_replace_at_at:N \use_none:n + \ExplSyntaxOff + \begin{document} + \DocInput{\jobname.dtx} + \end{document} +%<*gobble> +\fi +%</gobble> +%</driver> +% \fi +% +% \title{^^A +% The \pkg{njuthesis} package\\ 鍗椾含澶у瀛︿綅璁烘枃妯℃澘^^A +% } +% +% \author{^^A +% Nanjing University Linux User Group\thanks +% {^^A +% E-mail: +% \href{mailto:my@yaoge123.com} +% {my@yaoge123.com}^^A +% }^^A +% } +% +% \date{Released 2021-09-13} +% +% \maketitle +% +% +% \tableofcontents +% +% +% \section{妯℃澘浠嬬粛} +% +% \section{璐$尞鑰厎 +% \label{sec:contributors} +% +% Put text here. +% +% \section{閰嶇疆鐜} +% \label{sec:setup} +% +% 涓嬭〃鏄洰鍓嶇粡杩囨祴璇曠殑鐜銆傚鏋滄湁鍏朵粬鍙敤涓嶅彲鐢ㄧ殑鐜锛屾杩庤ˉ鍏呫€� +% +% \begin{table}[ht] +% \caption{缁忚繃娴嬭瘯鐨勭幆澧儅 +% % \label{tab:1} +% \begin{tabular}{ccc} +% \toprule +% OS & TeX & 娴嬭瘯鎯呭喌 \\ +% \midrule +% Windows 10 & \hologo{TeX}\,Live 2021 & 閫氳繃 \\ +% Windows 10 & \hologo{MiKTeX} & 閫氳繃 \\ +% Windows 10 & \hologo{TeX}\,Live 2020 & cref瀛樺湪鏍煎紡闂 \\ +% macOS 10.15 & \hologo{TeX}\,Live 2021 & 閫氳繃 \\ +% Ubuntu 20.04 & \hologo{TeX}\,Live 2021 & 閫氳繃 \\ +% 鍗楀ぇ\hologo{TeX} & \hologo{TeX}\,Live 2021 & 閫氳繃 \\ +% Overleaf & \hologo{TeX}\,Live 2020 & cref瀛樺湪鏍煎紡闂 \\ +% \bottomrule +% \end{tabular} +% \end{table} +% +% \section{鏈湴缂栬瘧} +% +% \subsubsection{瀹夎\hologo{TeX}鍙戣鐗坿 +% +% 棣栧厛闇€瑕佷笅杞絓hologo{TeX}杞欢鍙戣鐗堬紝鏍″洯缃戠幆澧冧腑浣跨敤\href{https://mirror.nju.edu.cn/download/app/TeX%20%E6%8E%92%E7%89%88%E7%B3%BB%E7%BB%9F}{鍗楀ぇ闀滃儚绔檥鍙互鑾峰緱鏈€濂界殑浣撻獙銆俓textbf{鎺ㄨ崘浣跨敤鏈€鏂扮殑\hologo{TeX}\,Live 2021鎴栬€匼hologo{MiKTeX} 21浠ラ伩鍏嶆綔鍦ㄧ殑鍏煎鎬ч棶棰樸€倉 +% +% \begin{itemize} +% \item 涓轰簡閬垮厤涓嶅繀瑕佺殑楹荤儲锛岃灏藉彲鑳戒笅杞� full 鐗堟湰锛屽 texlive-full銆傜畝鑰岃█涔嬶紝涓嬭浇澶х殑閭d釜銆� +% \item 骞朵笖锛屽敖鍙兘浣跨敤鏈€鏂扮増锛堟埅鑷崇洰鍓嶆槸 2021锛夈€�2020 鍙婁箣鍓嶇増鏈娇鐢� PDF 鏍煎紡鐨勫浘鐗囧彲鑳戒細鍑虹幇鍔犵矖闂銆� +% \end{itemize} +% +% \subsubsection{閫夋嫨缂栬緫鍣▆ +% +% 閰嶇疆瀹岀紪璇戝櫒鍚庯紝杩橀渶瑕佷竴涓猏textbf{鏂囨湰缂栬緫鍣▆浣滀负鍓嶇鏉ュ畬鎴怽texttt{.tex}鏂囦欢鍐呭鐨勫啓浣溿€� +% +% 鑷充粖浠嶆湁鐩稿綋涓€閮ㄥ垎浜鸿涓篧indows鑷甫鐨刓textit{璁颁簨鏈瑌鏄渶濂界殑鏂囨湰缂栬緫鍣紝浣嗗浜庢湰椤圭洰鑰岃█锛屽湪姝よ瘹蹇冭瘹鎰忓湴鎺ㄨ崘浣犱娇鐢╘textbf{鏇寸幇浠f洿缇庤鏇村鍔熻兘}鐨勭紪杈戝櫒锛岃濡俓emph{瀹夎浜� LaTeX Workshop 鎻掍欢 鐨� \href{https://code.visualstudio.com/}{Visual Studio Code}}锛屾潵瀹屾垚璁烘枃缂栧啓銆備綘涔熷彲浠ユ牴鎹釜浜虹殑鍠滃ソ闅忎究浣跨敤鍏朵粬缂栬緫鍣紝濡� TeXworks銆乀eX Studio 绛夛紝椤烘墜灏辫銆� +% +% 鑻ヤ娇鐢� LaTeX Workshop 鎻掍欢锛屾湰椤圭洰鍦▅.vscode/|涓彁渚涗竴浠界畝鏄撻厤缃紝鍙互鐪佺暐鍒濆閰嶇疆姝ラ鐩存帴浣跨敤銆� +% +% \subsubsection{缂栬瘧椤哄簭} +% 搴旈噰鐢ㄤ互涓嬪懡浠ら『搴忚繘琛岀紪璇戯紝浠ョ敓鎴愭纭殑鐩綍銆佺紪鍙峰拰鍙傝€冩枃鐚潯鐩€� +% \begin{enumerate} +% \item |xelatex| / |lualatex| +% \item |biber| +% \item |xelatex| / |lualatex| +% \item |xelatex| / |lualatex| +% \end{enumerate} +% +% 缂栬瘧浜х墿\footnote{浣滀负鍖栧瀛︾敓锛屼亢璁や负鐢ㄢ€滀骇鐗┾€濅唬鏇库€滅紪璇戠敓鎴愮殑鏂囦欢鈥濇槸涓€涓€氫織鏄撴噦鐨勮娉晑涓簗njuthesis.pdf|锛屼綅浜庝富鐩綍涓嬨€傛澶栬繕浼氱敓鎴愪竴绯诲垪涓棿鏂囦欢锛屽彲浠ラ€夋嫨浣跨敤|latexmk -c|杩涜娓呯悊銆� +% +% \subsection{鍦ㄧ嚎缂栬瘧} +% +% 鐩镐俊浣犲湪鎺ヨЕ浜嗘湰鍦扮紪璇戜互鍚庯紝寰堝揩灏变細鎰忚瘑鍒颁竴浜涘崄鍒嗘樉鐒剁殑浜嬪疄锛岃濡俓hologo{TeX}缂栬瘧鍣ㄥ畨瑁呰繃绋嬭緝涓烘极闀匡紝鍗犵敤绌洪棿杩囧ぇ锛岃€屼笖鍦ㄤ竴閮ㄥ垎澶勭悊鍣ㄦ€ц兘涓嶄匠鐨勭數鑴戜笂闇€瑕佽緝闀跨紪璇戞椂闂碶footnote{鍏跺疄杩欎笁鐐归兘鏄骞垮ぇ鐨刉indows鐢ㄦ埛璇寸殑锛屽悓涓€涓ā鏉垮湪Linux缂栬瘧鍙互鑺傜渷涓€鍗婅€楁椂}銆傛嫆缁濇帴鍙楄繖浜涢夯鐑︾殑鍚屽涓嶅Θ灏濊瘯鏈妭浠嬬粛鐨勫湪绾跨紪璇戞柟娉曘€� +% +% \subsubsection{鍗楀ぇ\hologo{TeX}骞冲彴绠€浠媫 +% +% \href{https://tex.nju.edu.cn}{鍗楀ぇ\hologo{TeX}}鍩轰簬寮€婧愮殑ShareLaTeX骞冲彴\footnote{鐞嗚涓婂湪\href{https://doc.nju.edu.cn/books/latex}{杩欎釜缃戠珯}鑳芥壘鍒颁竴娈靛钩鍙扮畝浠嬶紝瀹為檯涓婂ぇ瀹堕兘鏈夋剰鏃犳剰鍦伴附浜嗭紝涓嬫涓€瀹氳ˉ涓娿€倉锛屼簬2021骞�3鏈�4鏃ユ寮忎笂绾匡紝闈㈠悜鍗椾含澶у鍏ㄤ綋甯堢敓寮€鏀撅紝棣栨浣跨敤闇€鍑鏍¢偖绠辫嚜鍔╂敞鍐岃处鍙枫€� +% +% \subsubsection{鎿嶄綔姝ラ} +% +% \begin{enumerate} +% \item 涓嬭浇\href{https://github.com/nju-lug/NJUThesisUndergraduate/archive/refs/heads/master.zip}{妯℃澘鍏ㄩ儴鏂囦欢} +% \item 璁块棶\href{https://tex.nju.edu.cn}{鍗楀ぇ\hologo{TeX}}锛岀偣鍑荤晫闈㈠彸涓婃柟Register锛屼娇鐢╘emph{鍗椾含澶у閭}娉ㄥ唽璐﹀彿骞剁櫥褰� +% \item 鐐瑰嚮New Project -> Upload Project涓婁紶鍒氬垰寰楀埌鐨剒ip鏂囦欢锛屼笂浼犲悗njuthesis.tex銆乶juthesis.cls绛夋枃浠跺簲鍦ㄦ牴鐩綍锛岀洰褰曠粨鏋勫{{sec:directory}}鎵€绀� +% \item 鍦ㄩ」鐩〉闈㈠乏涓婅鐨凪enu涓紝灏嗙紪璇戝櫒鏀逛负\hologo{XeLaTeX}鎴栬€匼hologo{LuaLaTeX} +% \item 缂栧啓璁烘枃 +% \item 鐐瑰嚮Compile鎸夐挳杩涜缂栬瘧鍜岄瑙� +% \item 鐐瑰嚮缂栬瘧鎸夐挳鍙充晶绗笁涓寜閽笅杞戒骇鐗� +% \end{enumerate} +% +% \subsubsection{鍏充簬Overleaf骞冲彴} +% +% 鐢变簬\href{https://www.overleaf.com/}{Overleaf骞冲彴}鐨刓hologo{TeX}\,Live鐗堟湰鍋滅暀鍦�2020锛孿texttt{cleveref}鍖呭湪寮曠敤绔犺妭鏃朵細鐢熸垚閿欒鐨勬爣绛撅紝寮曞彂鏍煎紡閿欒锛涜€屽崡澶hologo{TeX}閫氳繃鍙婃椂鏇存柊瑙勯伩浜嗚繖涓€闂銆傚洜姝emph{璇峰姟蹇呬笉瑕佷娇鐢∣verleaf瀹樼綉杩涜缂栬瘧}銆� +% +% \subsection{瀛椾綋} +% +% 瀛︽牎璁烘枃鏍煎紡瑕佹眰浣跨敤鐨勫瓧浣撲竴鑸凡缁忛瑁呭湪鍚勪釜鎿嶄綔绯荤粺锛屾湰妯℃澘閽堝涓嶅悓骞冲彴杩涜浜嗚嚜鍔ㄦ娴嬮€傞厤锛屽彲浠ュ紑绠卞嵆鐢ㄣ€� +% +% 鍚勪釜绯荤粺鐨勯粯璁ゅ瓧浣撹鍙傝€儃tab:defaultfontset}銆傚彲浠ョ湅鍒帮紝涓嶅悓绯荤粺涓婁娇鐢ㄧ殑瀛椾綋鏈夋墍宸埆锛屽疄闄呰緭鍑虹粨鏋滃彲鑳藉瓨鍦ㄧ粏寰笉鍚�, 浣跨敤鏃惰娉ㄦ剰銆備緥濡傦紝鍦↙inux骞冲彴鎴栬€呬娇鐢ㄤ簡Ubuntu鍚庣鐨勫崡澶hologo{TeX}涓婏紝瀹嬩綋鍔犵矖鏁堟灉鏇存槑鏄撅紱鍙︿竴鏂归潰锛屽湪Windows骞冲彴杩涜缂栬瘧鐨勬晥鏋滄洿鎺ヨ繎Word鍔犵矖\footnote{鍥犱负SimSun娌℃湁鍘熺敓绮椾綋锛岄€氳繃AutoFakeBold=2.17杩涜妯′豢}銆� +% +% +% \section{Usage} +% +% Put text here. +% \begin{documentation} +% +% \subsection{瀛︿綅} +% \DescribeOption{degree} +% 閫夋嫨瀛︿綅锛屽彲閫夛細 +% -option{ug}锛堥粯璁わ級锛�-option{mg}锛�-option{mf}锛�-option{phd}銆� +% +% \subsection{绫诲瀷} +% \DescribeOption{type} +% 閫夋嫨瀛︿綅锛屽彲閫夛細 +% -option{thesis}锛堥粯璁わ級锛�-option{design}銆� +% +% \DescribeOption{systemfont} +% 鏄惁浣跨敤绯荤粺棰勮鐨勫瓧浣擄紝鍙€夛細 +% -option{true}锛堥粯璁わ級锛�-option{false}銆� +% +% This is a stub file to allow extraction of \texttt{l3docstrip}: all +% functionality has been moved to the main DocStrip program. +% +% \end{documentation} +% +% \begin{implementation} +% +% \section{\pkg{njuthesis} implementation} +% +% \begin{macrocode} +\LoadClass[ + a4paper, + twoside, + UTF8, + scheme=chinese, + linespread=1.625,% laTex榛樿1.2琛岃窛锛寃ord榛樿琛岃窛鏄�1.3锛岃姹�1.5鍊峸ord琛岃窛锛屾晠1.5/1.2*1.3 = 1.625 + fontset=none, + zihao=-4 + ]{ctexbook}[2018/04/01] +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +\RequirePackage{l3keys2e} +% \end{macrocode} +% +% \DescribeMacro{\dummyMacro} +% This macro does nothing.\index{doing nothing|usage} It is merely an +% example. If this were a real macro, you would put a paragraph here +% describing what the macro is supposed to do, what its mandatory and +% optional arguments are, and so forth. +% \begin{macrocode} +\keys_define:nn { nju } +{ + titlelength .int_set:N = \nju_titlelength, + titlelength .initial:n = 1, +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} + secondmentor .bool_set:N = \nju_second_mentor, + secondmentor .initial:n = false, +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} + nlcover .bool_set:N = \nju_nl_cover, + nlcover .initial:n = false, +% \end{macrocode} +% +% \begin{macrocode} + degree .tl_set:N = \nju_degree, + degree .initial:n = ug, +% \end{macrocode} +% +% \begin{macrocode} + type .tl_set:N = \nju_type, + type .initial:n = thesis, +% \end{macrocode} +% +% \begin{macrocode} + systemfont .bool_set:N = \nju_systemfont, + systemfont .initial:n = true, +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} + customlatinfont .tl_set:N = \nju_customlatinfont, + customlatinfont .initial:n = windows, +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} + customchinesefont .tl_set:N = \nju_customchinesefont, + customchinesefont .initial:n = windows, +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} + info .meta:nn = { nju / info } { #1 } +} +% \end{macrocode} +% +% Put text here. +% +% \begin{macrocode} +\keys_define:nn { nju / info } +{ +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} + % 棰樼洰 + 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, +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} + % 骞寸骇瀛﹀彿濮撳悕 + 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, +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} + % 闄㈢郴涓撲笟鏂瑰悜 + 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, +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} + % 瀵煎笀 + 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, +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} + % 绗簩瀵煎笀 + 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, +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} + % 鎻愪氦鏃ユ湡 + SubmitDate .tl_set:N = \nju_submit_date, +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} + % 绛旇京 + DefendDate .tl_set:N = \nju_defend_date, + ReviewerChairman .tl_set:N = \nju_reviewer_chairman, + ReviewerA .tl_set:N = \nju_reviewer_a, + ReviewerB .tl_set:N = \nju_reviewer_b, + ReviewerC .tl_set:N = \nju_reviewer_c, + ReviewerD .tl_set:N = \nju_reviewer_d, +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} + % 鍥藉鍥句功棣嗗皝闈㈢浉鍏� + Classification .tl_set:N = \nju_classification, + SecurityLevel .tl_set:N = \nju_securitylevel, + UDC .tl_set:N = \nju_udc, + MentorInfo .tl_set:N = \nju_mentor_info, +} +% \end{macrocode} +% +% This environment does nothing. It is merely an example. +% If this were a real environment, you would put a paragraph here +% describing what the environment is supposed to do, what its +% mandatory and optional arguments are, and so forth. +% \begin{macrocode} +\NewDocumentCommand \njusetup { m } +{ \keys_set:nn { nju } { #1 } } +% \end{macrocode} +% mandatory and optional arguments are, and so forth. +% \begin{macrocode} +\ProcessKeysOptions { nju } +% \end{macrocode} +% +% mandatory and optional arguments are, and so forth. +% \begin{macrocode} +\RequirePackage{expl3} +\RequirePackage{fontspec} +\RequirePackage[ + top=2.5cm, + bottom=2.5cm, + left=3.2cm, + right=3.2cm +]{geometry} +% \RequirePackage{ifthen} +\RequirePackage{xparse} +% \RequirePackage{etoolbox} +% \RequirePackage{titlesec} % 淇敼绔犺妭鏍囬鍔熻兘鐢盋TeX鎻愪緵 +\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} % 娓呴櫎绌虹櫧椤电殑椤电爜 +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +\RequirePackage{listings} % 浠g爜鐜 +\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 +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +\sys_if_engine_xetex:T +{ + \RequirePackage{microtype} + + % 鍔犱腑鏂囦笅鍒掔嚎锛屼笉鑳界敤浜巐ualatex + \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. +} +% \end{macrocode} +% +% 鍑犱釜鐢ㄦ潵杩涜寮€鍙戞祴璇曠殑鍖� +% \begin{macrocode} +\RequirePackage{blindtext} % 鐢熸垚鐢ㄤ簬娴嬭瘯鐨勫ぇ娈垫棤鎰忎箟鑻辨枃鏂囧瓧 +\RequirePackage{zhlipsum} % 鐢熸垚鐢ㄤ簬娴嬭瘯鐨勫ぇ娈垫棤鎰忎箟涓枃鏂囧瓧 +% \RequirePackage{showframe} % 鍔犺浇浠ュ悗灞曠ず鍐呭杈圭晫 +% \end{macrocode} +% +% 鏁板 +% \begin{macrocode} +\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={% 娑堥櫎涓巑athtools鍚堢敤浜х敓鐨勮鍛� + mathtools-colon, + mathtools-overbracket} + ]{unicode-math} % Math fonts in xetex or luatex +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +\RequirePackage{graphicx} +\DeclareGraphicsExtensions{.pdf,.eps,.jpg,.png} +\graphicspath{{figure/}} % 鍥剧墖璺緞 +\RequirePackage{wrapfig} % Wrap text around figures +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 蹇呴』浠ヨ椤哄簭鍔犺浇浠ヤ笅涓変釜鍖� +% \RequirePackage{varioref} +\RequirePackage[hidelinks,bookmarksnumbered=true]{hyperref} +\RequirePackage[capitalise,nameinlink,noabbrev]{cleveref} +% \end{macrocode} +% +% and so forth. +% \begin{macrocode} +% 璁剧疆瑗挎枃瀛椾綋 +\NewDocumentCommand\set_latin_fontset_windows{}{ + \setmainfont{Times~New~Roman} + \setsansfont{Arial} + \setmonofont{Courier~New}[Scale=MatchLowercase] +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +\NewDocumentCommand\set_latin_fontset_macos{}{ + \setmainfont{Times~New~Roman} + \setsansfont{Arial} + \setmonofont{Menlo}[Scale=MatchLowercase] +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +\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] +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 璁剧疆涓枃瀛椾綋 +\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] +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +\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, + % 鍙傝€僀TeX鎵嬪唽绗�9鑺� LuaLATEX 涓嬬殑涓枃鏀寔鏂瑰紡 + % AlternateFont = + % { + % {鉄╟haracter range1鉄﹠ {鉄╝lternate font name1鉄﹠ + % {鉄╝lternate font features2鉄﹠ , + % ...... + % } + ] + \setCJKfamilyfont{zhnewhei}{PingFang~SC} +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +\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] +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 鏂规瀛楃闆� +\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] +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +\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} + + % 鏂规妤蜂綋銆佹柟姝d豢瀹嬩负鍏嶈垂鍟嗙敤瀛椾綋锛屼笖鏀寔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] +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 瀛椾綋鍒ゆ柇 +\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 } {} + } +} +% 閫夋嫨鍏朵粬瀛椾綋锛岃纭繚鐩稿簲瀛椾綋宸插畨瑁� +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 璁剧疆鏁板瀛椾綋 (XITS, 鎴栬€� STIX, 涓� Times New Roman 鏈€涓虹浉杩�) +% \setmathfont{STIXTwoMath-Regular}[Extension = .otf] +\setmathfont{XITSMath-Regular}[ + BoldFont = XITSMath-Bold, + Extension = .otf] +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +\NewDocumentCommand\songti{}{\CJKfamily{zhsong}} +\NewDocumentCommand\heiti{}{\CJKfamily{zhhei}} +\NewDocumentCommand\fangsong{}{\CJKfamily{zhfs}} +\NewDocumentCommand\kaishu{}{\CJKfamily{zhkai}} +% \NewDocumentCommand\lishu{}{\CJKfamily{zhli}} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 鏈鐢熼〉鐪夐〉鑴� +\fancypagestyle{njuplain}{% + \fancyhead{} + \fancyfoot[C]{\zihao{5}\thepage} % 椤佃剼灞呬腑 浜斿彿鏂扮綏椹綋鏁板瓧 +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% TODO: 鐮旂┒鐢熼〉鐪夐〉鑴� +\fancypagestyle{njuheadings}{% + \fancyhead{} + \fancyfoot[C]{\zihao{5}\thepage} +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +\str_if_eq:NNTF {\nju_degree} { 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} + + % \AtBeginDocument{\pagestyle{njuplain}} % 鏃犻〉鐪夐〉鑴� + \AtBeginDocument{\pagestyle{headings}} % 鐮旂┒鐢熸湁椤电湁椤佃剼 +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% ctex鏍煎紡璁剧疆 +% 鐩綍鏍囬 涓夊彿瀹嬩綋鍔犵矖 +% 鍚勯儴鍒嗘爣棰� 鍥涘彿榛戜綋 +\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 +} + +% 閲嶅畾涔夌洰褰曚腑绔犺妭鏍囬鏍峰紡 +% 鐩綍鍐呭涓珷鐨勬爣棰� 鍥涘彿榛戜綋 +% 鐩綍涓叾浠栧唴瀹� 灏忓洓鍙峰畫浣� +\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} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +\cs_set:Npn \CTEX@addtocline #1#2 +{ + \addcontentsline { toc } {#1} + { \use:c { CTEX@#1@tocline } {#1} {#2} } +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 鐩綍椤甸潰鏍煎紡淇敼 +\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 +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +\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} +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 瀹氬埗鍓嶈█銆佽嚧璋㈢幆澧� +\newenvironment{preface} +{% + \chapter*{鍓嶈█} + \addcontentsline{toc}{chapter}{鍓嶈█} +}{} +% \end{macrocode} +% +% \DescribeEnv{acknowledgements} +% 鍗曠嫭鍒朵綔鐨勮嚧璋㈤〉銆� +% \begin{macrocode} +\newenvironment{acknowledgement} +{% + \chapter*{鑷磋阿} + \addcontentsline{toc}{chapter}{鑷磋阿} +}{} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 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} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 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}}{} +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 淇敼鏍囩鍚嶇О +\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}{鍋囪}{鍋囪} +% \end{macrocode} +% +% soifjsojfosjfos +% \begin{macrocode} +% 鍥捐〃浣嶇疆璋冩暣 +\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% +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 浠g爜鏍峰紡 +\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 +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +\lstdefinestyle{LaTeX}{ + language=TeX, + morekeywords={begin, caption, label, mathrm, frac, toprule, midrule, bottomrule, includegraphics} +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 鍥捐〃鏍囬鏍峰紡 +\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 +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% list configuration +\renewcommand{\labelitemi}{\tiny$\blacktriangleright$} +\renewcommand{\labelitemii}{\textbullet} + +\setlist[itemize]{noitemsep} +\setlist[enumerate]{noitemsep} +\setlist[description]{noitemsep} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 鏁板鐜 +\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} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +\let\oldproofname=\proofname +\renewcommand*{\proofname}{\rm\bf\songti{\oldproofname}} % 淇敼璇佹槑鐜鏍囬 +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +\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} +% \end{macrocode} +% +% \section{灏侀潰璁捐} +% \begin{macrocode} +% 鎷煎悎鏍囬 +\tl_const:Nn \nju_title {\nju_title_a \nju_title_b \nju_title_c} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 鎷煎悎瀵煎笀 +\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 + } +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 鍒ゆ柇瀛︿綅杩涜鍛戒护瀹氫箟 +\str_if_eq:NNTF {\nju_degree} { ug } +{ + % 鏈 + \tl_const:Nn \nju_degree_name {鏈琝hfill 绉慭hfill } + + % 鏈寮哄埗涓嶆墦鍗板浗瀹跺浘涔﹂灏侀潰 + \bool_set_false:N \nju_nl_cover + + % 灏侀潰涓嬪垝绾� + \cs_new:Npn \nju_cover_underline_ug:nn #1 #2 + { + \uline{\makebox[#1]{\rm\songti#2}} + } + + % 灏侀潰琛ㄦ牸杈规 + \cs_new:Npn \nju_coverbox_ug:n #1 + { + \makebox[4.2em][s]{#1} + } +} +{ + % 鏈浠ュ閮芥槸鐮旂┒鐢� + \tl_const:Nn \nju_degree_name {鐮擻hfill 绌禱hfill 鐢焅hfill } + + % 灏侀潰涓嬪垝绾� + \cs_new:Npn \nju_cover_underline_g:n #1 + { + \uline{\makebox[250pt]{\rm\kaishu#1}} + } + + % 鍥藉鍥句功棣嗗皝闈笅鍒掔嚎 + \cs_new:Npn \nju_cover_underline_nl:nn #1 #2 + { + \uline{\makebox[#1]{#2}} + } + + % 灏侀潰琛ㄦ牸杈规 + \cs_new:Npn \nju_coverbox_g:n #1 + { + \makebox[6em][s]{#1\hspace{1em}} + } + + % 鐮旂┒鐢熷浣嶅垎绫� + \str_case:Nn { \nju_degree } + { + { mg } { \tl_const:Nn \nju_degree_title {纭曞+} } + { mf } { \tl_const:Nn \nju_degree_title {纭曞+涓撲笟} } + { phd } { \tl_const:Nn \nju_degree_title {鍗氬+} } + } +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 鍒ゆ柇绫诲瀷 +\str_if_eq:NNTF {\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 璁� } +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 灏侀潰淇℃伅鏍� 鏈 +\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:NT \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} +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 灏侀潰淇℃伅鏍� 鐮旂┒鐢� +\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} +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 缁樺埗灏侀潰鍛戒护 +\tl_new:N \nju_printcover_nl % 鍥藉鍥句功棣嗗皝闈� +\tl_new:N \nju_printcover_ug % 鏈灏侀潰 +\tl_new:N \nju_printcover_g % 鐮旂┒鐢熷皝闈� +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 鎸夐渶缁樺埗鍥藉鍥句功棣嗗皝闈紝淇敼鑷棫妯℃澘 +\bool_if:NT \nju_nl_cover +{ + \tl_set:Nn \nju_printcover_nl + { + \thispagestyle{empty} + \pdfbookmark[0]{鍥藉鍥句功棣嗗皝闈{nl} + { + % 椤剁 + \hspace{0mm} + \vskip -20mm \hskip -15mm + \songti\zihao{-4} + \makebox[40pt][l]{鍒嗙被鍙穧 + \nju_cover_underline_nl:nn {150pt}{\nju_classification} + \hfill + \makebox[40pt][l]{瀵嗙骇} + \nju_cover_underline_nl:nn {150pt}{\nju_securitylevel} + \vskip 10pt \hskip -15mm + \makebox[40pt][l]{UDC} + \nju_cover_underline_nl:nn {150pt}{\nju_udc} + } + + % 涓儴 + \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_underline_nl:nn {14em}{\nju_title_a}\\ + \nju_cover_underline_nl:nn {14em}{\nju_title_b}\\ + \nju_cover_underline_nl:nn {14em}{\nju_title_c}\\ + } + \vskip \stretch{1} + {\kaishu\zihao{4}锛堥鍚嶅拰鍓鍚嶏級} + \vskip \stretch{1} \vskip 5mm + {\kaishu\zihao{1}\uline{\makebox{\nju_student_name}}} + \vskip \stretch{1} + {\kaishu\zihao{4}锛堜綔鑰呭鍚嶏級} + \end{center} + + % 搴曢儴 + \vskip\stretch{1} + { + \kaishu\zihao{4} + \noindent 鎸囧鏁欏笀濮撳悕銆佽亴鍔°€佽亴绉般€佸浣嶃€佸崟浣嶅悕绉板強鍦板潃% + \nju_cover_underline_nl:nn {94pt}{\nju_mentor_a}\par + \noindent\nju_cover_underline_nl:nn {\textwidth}{% + \nju_mentor_info}\par + \noindent 鐢宠瀛︿綅绾у埆% + \nju_cover_underline_nl:nn {9em}{\nju_degree_title}% + \noindent 涓撲笟鍚嶇О% + \uline{\hfill\nju_major\hfill}\par% 闇€瑕佽皟鏁翠笅鍒掔嚎闀垮害 + \noindent 璁烘枃鎻愪氦鏃ユ湡% + \nju_cover_underline_nl:nn {9em}{\nju_submit_date}% + 璁烘枃绛旇京鏃ユ湡% + \uline{\hfill\nju_defend_date\hfill}\par% 闇€瑕佽皟鏁翠笅鍒掔嚎闀垮害 + \noindent 瀛︿綅鎺堜簣鍗曚綅鍜屾棩鏈焅uline{\hfill}\par + \noindent\hfill 绛旇京濮斿憳浼氫富甯細% + \nju_cover_underline_nl:nn {9em}{\nju_reviewer_chairman}\par + \noindent\hfill 璇勯槄浜猴細% + \nju_cover_underline_nl:nn {9em}{\nju_reviewer_a}\par + \noindent\hfill\nju_cover_underline_nl:nn {9em}{\nju_reviewer_b}\par + \noindent\hfill\nju_cover_underline_nl:nn {9em}{\nju_reviewer_c}\par + \noindent\hfill\nju_cover_underline_nl:nn {9em}{\nju_reviewer_d}\par + + \begin{center} + \kaishu\zihao{3}\hspace{2em} 骞碶hspace{1em} 鏈圽hspace{1em} 鏃� + \end{center} + \vskip -10mm + } + \cleardoublepage + } +} + +% 鏈灏侀潰 +\tl_set:Nn \nju_printcover_ug +{ + \thispagestyle{empty} + \pagenumbering{Roman} + % Start + \pdfbookmark{灏侀潰}{灏侀潰} % 灏嗗皝闈㈡彃鍏df涔︾ + \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{灏侀潰}{灏侀潰} % 灏嗗皝闈㈡彃鍏df涔︾ + \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\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 + \kaishu\zihao{3} + \makebox[6em][s]{\bf\kaishu 瀛hfill 鍙穧锛歕MakeUppercase{\nju_student_id} + \par + \makebox[6em][s]{\bf\kaishu 璁烘枃绛旇京鏃ユ湡}锛歕nju_defend_date + \par + \makebox[6em][s]{\bf\kaishu 鎸嘰hfill 瀵糪hfill 鏁橽hfill 甯坿锛歕hspace{50mm}锛堢瀛楋級 + \par + \egroup} + \vskip 15mm + \end{spacing} + \cleardoublepage +} + +% 閲嶅畾涔塵aketitle鐢熸垚灏侀潰 +\tl_set:Nn \maketitle +{% + \str_if_eq:NNTF { \nju_degree } { ug } + { + \nju_printcover_nl % 鍥藉鍥句功棣嗗皝闈� + \nju_printcover_ug % 鏈灏侀潰 + } + { + \nju_printcover_nl % 鍥藉鍥句功棣嗗皝闈� + \nju_printcover_g % 鐮旂┒鐢熷皝闈� + } +} +% \end{macrocode} +% +% Put text here. +% \begin{macrocode} +% 鍒ゆ柇瀛︿綅 +\str_if_eq:NNTF {\nju_degree} { ug } +{ + % 鏈鎽樿鐜 + \NewDocumentEnvironment{abstract} {} + {% + % \pagestyle{plain} + % \pagenumbering{Roman} + % \phantomsection\addcontentsline{toc}{chapter}{涓枃鎽樿} % 灏嗘憳瑕佹彃鍏ョ洰褰曞拰pdf涔︾ + \pdfbookmark[0]{涓枃鎽樿}{涓枃鎽樿} % 灏嗘憳瑕佹彃鍏df涔︾锛屼笌涓婁竴琛屼笉鍙叡瀛� + \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]{鑻辨枃鎽樿}{鑻辨枃鎽樿} % 灏嗘憳瑕佹彃鍏df涔︾锛屼笌涓婁竴琛屼笉鍙叡瀛� + \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]{涓枃鎽樿}{涓枃鎽樿} % 灏嗘憳瑕佹彃鍏df涔︾锛屼笌涓婁竴琛屼笉鍙叡瀛� + \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 {\nju_title\hfill}\\ + \uline{\makebox[9em]{\nju_major}}涓撲笟\uline{\makebox[4em]{\nju_grade}}绾� + \str_if_eq:NNTF {\nju_degree} { phd } {鍗殅{纭晑 + 澹敓濮撳悕锛歕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]{鑻辨枃鎽樿}{鑻辨枃鎽樿} % 灏嗘憳瑕佹彃鍏df涔︾锛屼笌涓婁竴琛屼笉鍙叡瀛� + \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}% + } +} +% \end{macrocode} +% +% +% +% +% \end{implementation} +% +% \PrintIndex diff --git a/njuthesis.tex b/njuthesis-sample.tex old mode 100755 new mode 100644 similarity index 100% rename from njuthesis.tex rename to njuthesis-sample.tex diff --git a/njuthesis.cls b/njuthesis.cls index 27e42ab674791a45d67131fcc7619a2d2dd51c23..b784396763a61e8d9f531299f83c3542a0a95f40 100644 --- a/njuthesis.cls +++ b/njuthesis.cls @@ -23,6 +23,7 @@ %% To produce the documentation run the original source files ending with `.dtx' %% through LaTeX. %% +%% File njuthesis.dtx \NeedsTeXFormat{LaTeX2e} \ProvidesExplClass{njuthesis}{2021-09-12}{0.8.3}{NJU Thesis LaTeX Template} \LoadClass[ diff --git a/njuthesis.dtx b/njuthesis.dtx index 3677cc7b4481ff62eacab3f5c280c0fb088276e0..bd9a8fc823fe4da92a658188508c450b839f1f39 100644 --- a/njuthesis.dtx +++ b/njuthesis.dtx @@ -94,6 +94,17 @@ % 鍗椾含澶у瀛︿綅璁烘枃\hologo{LaTeX}妯℃澘鍩轰簬鏈鐢熼櫌鐨勮鏂囨挵鍐欒鑼冨埗浣滐紝鍚屾椂鍙傝€冪爺绌剁敓闄㈡彁渚涚殑纭曞+銆佸崥澹浣嶆潗鏂欏寘锛岀敤浜庣敓鎴愮鍚堝崡浜ぇ瀛﹀浣嶈鏂囨帓鐗堣姹傚拰鐩稿簲鐨勫浗瀹惰鑼冦€佽涓氭爣鍑嗙殑瀛︿綅璁烘枃锛屾棬鍦ㄤ负鍚屽鎻愪緵姣曚笟璁烘枃涔﹀啓鐨勬柟渚裤€� % \end{abstract} % +% +% \clearpage +% \pagestyle{fancy} +% \begin{multicols}{2}[ +% \setlength{\columnseprule}{.4pt} +% \setlength{\columnsep}{18pt}] +% \tableofcontents +% \end{multicols} +% \clearpage +% +% % \section{妯℃澘浠嬬粛} % % \section{璐$尞鑰厎 diff --git a/njuthesis.ins b/njuthesis.ins index 236bb442d6086a50a1586a93280f6c1992a886f7..40e4b3050918b879a16dc718211157fa14177758 100644 --- a/njuthesis.ins +++ b/njuthesis.ins @@ -53,7 +53,7 @@ through LaTeX. \Msg{* njuthesis.cls *} \Msg{* *} \Msg{* To produce the documentation run the file njuthesis.dtx *} -\Msg{* through LaTeX. *} +\Msg{* through XeTeX. *} \Msg{* *} \Msg{* Happy TeXing! *} \Msg{* *}