summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/njustthesis/njustthesis.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/njustthesis/njustthesis.dtx')
-rw-r--r--macros/latex/contrib/njustthesis/njustthesis.dtx635
1 files changed, 635 insertions, 0 deletions
diff --git a/macros/latex/contrib/njustthesis/njustthesis.dtx b/macros/latex/contrib/njustthesis/njustthesis.dtx
new file mode 100644
index 0000000000..1a7180ec0f
--- /dev/null
+++ b/macros/latex/contrib/njustthesis/njustthesis.dtx
@@ -0,0 +1,635 @@
+% \iffalse
+%<*driver>
+\ProvidesFile{njustthesis.dtx}[2022-03-04 0.0.1]
+\documentclass{ltxdoc}
+\usepackage{hypdoc}
+\usepackage[scheme=plain]{ctex}
+\usepackage[citations, definitionLists, fencedCode, footnotes, hashEnumerators,
+html, inlineFootnotes, pipeTables, tableCaptions]{markdown}
+\EnableCrossrefs%
+\CodelineIndex%
+\begin{document}
+ \DocInput{\jobname.dtx}
+\end{document}
+%</driver>
+% \fi
+% \title{njustthesis 0.0.1}
+% \author{wzy}
+% \maketitle
+% \tableofcontents
+% \IfFileExists{./README.md}{\markdownInput{README.md}}{}
+% \IndexPrologue{\section{\indexname}}
+% \StopEventually{\PrintIndex}
+% \appendix
+% \section{Implement}%
+% \label{sec:Implement}
+% \begin{macrocode}
+%<*cls|sty>
+% Fakechapter information
+\@ifundefined{NeedsTeXFormat}{% 2.09 version
+%<cls> \def\filename{njustthesis.cls}
+%<sty> \def\filename{njustthesis.sty}
+ \def\filedate{2022-03-04}
+ \def\fileversion{0.0.1}
+ \typeout{Package: `\filename' \fileversion<\filedate>}
+}{% 2e version
+ \NeedsTeXFormat{LaTeX2e}[1994/12/01]
+ \ProvidesClass{njustthesis}[2022-03-04 0.0.1]
+}
+
+% Fakechapter kvset
+\RequirePackage{kvdefinekeys}
+\RequirePackage{kvsetkeys}
+\RequirePackage{kvoptions}
+\SetupKeyvalOptions{%
+ family = njust,
+ prefix = njust@,
+ setkeys = \kvsetkeys,
+}
+\newcommand\njustsetup{%
+ \kvsetkeys{njust}
+}
+\newcommand\njust@define@key[1]{%
+ \kvsetkeys{njust@key}{#1}
+}
+\newcommand\njust@error[1]{%
+%<cls> \ClassError{njustthesis}{#1}{}
+}
+\kv@set@family@handler{njust@key}{%
+ \@namedef{njust@#1@@name}{#1}
+ \def\njust@@default{}
+ \def\njust@@choices{}
+ \kv@define@key{njust@value}{name}{%
+ \@namedef{njust@#1@@name}{##1}
+ }
+ \kv@define@key{njust@value}{code}{%
+ \@namedef{njust@#1@@code}{##1}
+ }
+ \@namedef{njust@#1@@check}{}
+ \@namedef{njust@#1@@code}{}
+ \@namedef{njust@#1@@hook}{%
+ \expandafter
+ \ifx\csname\@currname.\@currext-h@@k\endcsname\relax
+ \@nameuse{njust@#1@@code}
+ \else
+ \AtEndOfClass{%
+ \@nameuse{njust@#1@@code}
+ }
+ \fi
+ }
+ \kv@define@key{njust@value}{choices}{%
+ \def\njust@@choices{##1}
+ \@namedef{njust@#1@@reset}{}
+ \@namedef{njust@#1@@check}{%
+ \@ifundefined{%
+ ifnjust@\@nameuse{njust@#1@@name}@\@nameuse{njust@\@nameuse{njust@#1@@name}}
+ }{%
+ \njust@error{Invalid value ``#1 = \@nameuse{njust@\@nameuse{njust@#1@@name}}''}
+ }
+ \@nameuse{njust@#1@@reset}
+ \@nameuse{njust@\@nameuse{njust@#1@@name}@\@nameuse{njust@\@nameuse{njust@#1@@name}}true}
+ }
+ }
+ \kv@define@key{njust@value}{default}{%
+ \def\njust@@default{##1}
+ }
+ \kvsetkeys{njust@value}{#2}
+ \@namedef{njust@\@nameuse{njust@#1@@name}}{}
+ \kv@set@family@handler{njust@choice}{%
+ \ifx\njust@@default\@empty
+ \def\njust@@default{##1}
+ \fi
+ \expandafter\newif\csname ifnjust@\@nameuse{njust@#1@@name}@##1\endcsname
+ \expandafter\g@addto@macro\csname njust@#1@@reset\endcsname{%
+ \@nameuse{njust@\@nameuse{njust@#1@@name}@##1false}
+ }
+ }
+ \kvsetkeys@expandafter{njust@choice}{\njust@@choices}
+ \expandafter\let\csname njust@\@nameuse{njust@#1@@name}\endcsname\njust@@default
+ \expandafter
+ \ifx\csname njust@\@nameuse{njust@#1@@name}\endcsname\@empty
+ \else
+ \@nameuse{njust@#1@@check}
+ \@nameuse{njust@#1@@hook}
+ \fi
+ \kv@define@key{njust}{#1}{%
+ \@namedef{njust@\@nameuse{njust@#1@@name}}{##1}
+ \@nameuse{njust@#1@@check}
+ \@nameuse{njust@#1@@hook}
+ }
+}
+\newcommand\njust@addto[2]{%
+ \expandafter\g@addto@macro\csname njust@#1@@code\endcsname{#2}
+}
+
+% Fakechapter default
+\njust@define@key{%
+ logo = {%
+ default = \njustwhole[njust][0.5],
+ },
+ cover-title = {%
+ name = cover@title,
+ default = {毕业设计说明书},
+ },
+ author = {%
+ default = {佚名},
+ },
+ id = {%
+ default = {916101630000},
+ },
+ department = {%
+ default = {电子工程与光电技术学院},
+ },
+ discipline = {%
+ default = {电子工程与光电技术},
+ },
+ title = {%
+ },
+ subtitle = {%
+ },
+ supervisor = {%
+ default = {张三},
+ },
+ associate-supervisor = {%
+ name = associate@supervisor,
+ },
+ judge = {%
+ default = {王五},
+ },
+ supervisor-title = {%
+ name = supervisor@title,
+ default = {教授},
+ },
+ associate-supervisor-title = {%
+ name = associate@supervisor@title,
+ },
+ judge-title = {%
+ name = judge@title,
+ default = {教授},
+ },
+ year = {%
+ default = \the\year,
+ },
+ month = {%
+ default = \the\month,
+ },
+ day = {%
+ default = \the\day,
+ },
+ signature = {%
+ default = \makebox[4em]{},
+ },
+ signature* = {%
+ name = signature@teacher,
+ default = \makebox[4em]{},
+ },
+ abstract-prefix = {%
+ name = abstract@prefix,
+ default = {毕业论文},
+ },
+ title* = {%
+ name = title@en,
+ },
+ subtitle* = {%
+ name = subtitle@en,
+ },
+ header-title = {%
+ name = header@title,
+ default = {本科毕业设计说明书},
+ },
+}
+%</cls|sty>
+
+%<*cls>
+% Fakechapter class
+\ProcessKeyvalOptions*
+\LoadClass[
+ twoside,
+ openright,
+ UTF8,
+ heading = true,
+ scheme = plain,
+ zihao = -4,
+ sub4section,
+]{ctexbook}
+\ctexset{%
+ today = small,
+ chapter = {%
+ name = {},
+ number = \arabic{chapter},
+ aftername = \hspace{1\ccwd},
+ format = \ifthenelse{\value{chapter}=0}{\centering}{}
+ \zihao{3}\heiti\bfseries,
+ beforeskip = 0.5\ccwd,
+ afterskip = 0.5\ccwd,
+ },
+ section = {%
+ aftername = \hspace{1\ccwd},
+ format = \ifthenelse{\value{chapter}=0}{\centering}{}
+ \zihao{-3}\heiti\bfseries,
+ beforeskip = 0.5\ccwd,
+ afterskip = 0.5\ccwd,
+ },
+ subsection = {%
+ format = \zihao{4}\heiti\bfseries,
+ },
+ appendixname = 附录,
+ contentsname = {目\hspace{\ccwd}次},
+ listfigurename = 插图索引,
+ listtablename = 表格索引,
+ figurename = 图,
+ tablename = 表,
+ bibname = 参考文献,
+ indexname = 索引,
+}
+\counterwithout{figure}{chapter}
+\counterwithout{table}{chapter}
+\counterwithout{equation}{chapter}
+
+% Fakechapter package
+% Fakesection text
+% Fakesubsection punctuation
+\RequirePackage{csquotes}
+% Fakesubsubsection 中文引号
+\DeclareQuoteStyle{zh}
+{\symbol{"201C}}%“
+{\symbol{"201D}}%”
+{\symbol{"2018}}%‘
+{\symbol{"2019}}%’
+\setquotestyle{zh}
+% Fakesubsubsection 日文引号
+\DeclareQuoteStyle{ja}
+{\symbol{"300E}}%『
+{\symbol{"300F}}%』
+{\symbol{"300C}}%「
+{\symbol{"300D}}%」
+% Fakesubsubsection 书名号
+\DeclareQuoteStyle{book}
+{\symbol{"300A}}%《
+{\symbol{"300B}}%》
+{\symbol{"3008}}%〈
+{\symbol{"3009}}%〉
+% Fakesubsection indent
+\RequirePackage{indentfirst}
+% Fakesubsection space
+\RequirePackage{setspace}
+
+% Fakesection style
+% Fakesubsection toc
+\RequirePackage{titletoc}
+\titlecontents{chapter}[0pt]{\filright}{\contentspush{\thecontentslabel}}{}
+{\titlerule*{.}\contentspage}
+\RequirePackage[nottoc]{tocbibind}
+% Fakesubsection header
+\RequirePackage{fancyhdr}
+\fancypagestyle{njust@fancy}{%
+ \renewcommand{\headrulewidth}{0.4pt}
+ \fancyhead[OC, EC]{\zihao{-2}\njust@header@title}
+ \fancyhead[EL, OR]{\zihao{5}第\thepage~页}
+ \fancyhead[ER, OL]{}
+ \fancyfoot[EC, OC]{}
+}
+\fancypagestyle{plain}{%
+ \pagestyle{njust@fancy}
+}
+\pagestyle{njust@fancy}
+
+% Fakesubsection footnote
+\RequirePackage{pifont}
+\RequirePackage[
+ perpage,
+ symbol*
+]{footmisc}
+\DefineFNsymbols{circled}{%
+ {\ding{192}}
+ {\ding{193}}
+ {\ding{194}}
+ {\ding{195}}
+ {\ding{196}}
+ {\ding{197}}
+ {\ding{198}}
+ {\ding{199}}
+ {\ding{200}}
+ {\ding{201}}
+}
+\setfnsymbol{circled}
+% Fakesubsection reference
+\RequirePackage[
+ square, comma, numbers, super, sort&compress, longnamesfirst, sectionbib,
+ nonamebreak
+]{natbib}
+\bibliographystyle{gbt7714-plain}
+
+% Fakesection figure
+\RequirePackage{graphicx}
+\graphicspath{%
+ {fig/}
+ {fig/\arabic{chapter}/}
+ {figures/}
+ {figures/\arabic{chapter}/}
+ {images/}
+}
+\RequirePackage[njust]{cnlogo}
+
+% Fakesection formula
+
+% Fakesection table
+\RequirePackage{tabu}
+\RequirePackage{multicol}
+
+% Fakesubsection math
+\RequirePackage{newtxmath}
+\setlength{\abovedisplayskip}{0.5em}
+\setlength{\belowdisplayskip}{0.5em}
+% Fakesubsection exercise
+\RequirePackage{exercise}
+\renewcommand{\ExerciseName}{问题}
+\renewcommand{\AnswerName}{回答}
+\renewcommand{\listexercisename}{问题}
+
+% Fakesection item
+\RequirePackage{enumitem}
+\setlist[enumerate, 1]{%
+ fullwidth,
+ label = (\arabic*),
+ font = \textup,
+ itemindent = 2em,
+}
+\setlist[enumerate, 2]{%
+ fullwidth,
+ label = (\alph*),
+ font = \textup,
+ itemindent = 4em,
+}
+
+% Fakesection other
+\RequirePackage{boxedminipage}
+
+\title{\njust@title}
+\author{\njust@author}
+
+% Fakechapter command
+\renewcommand\maketitle{%
+ \thispagestyle{empty}
+ \begin{titlepage}
+ \centering
+ \begin{spacing}{1}
+ \zihao{4}
+ \vspace{0.5\ccwd}
+
+ \vspace{1\ccwd}
+
+ \fontsize{30pt}{30pt}\selectfont\kaishu%
+ \njust@logo
+
+ \vspace{0.2\ccwd}
+
+ \fontsize{45pt}{45pt}\selectfont\heiti%
+ \njust@cover@title
+
+ \zihao{-1}
+ \vspace{1\ccwd}
+ \end{spacing}
+
+ \begin{spacing}{1.5}
+ \zihao{3}
+ \begin{tabu}
+ {@{}X[r, 5cm]@{}X[l, 3cm]
+ X[r, 4cm]@{}X[l, 4cm]@{}}
+ \textbf{作   者:} &
+ \underline{\makebox[3cm][c]{\kaishu\njust@author}} &
+ \textbf{学  号:} &
+ \underline{\makebox[4cm][c]{\kaishu\njust@id}} \\
+ \textbf{学   院:} &
+ \multicolumn{3}{c}{\underline{\makebox[11cm][c]
+ {\kaishu\njust@department}}} \\
+ \textbf{专业(方向):} &
+ \multicolumn{3}{c}{
+ \underline{\makebox[11cm][c]{\kaishu\njust@discipline}}} \\
+ \textbf{题   目:} &
+ \multicolumn{3}{c}{
+ \underline{\makebox[11cm][c]{\kaishu\njust@title}}} \\
+ \textbf{} &
+ \multicolumn{3}{c}{
+ \underline{\makebox[11cm][c]{\kaishu\njust@subtitle}}}
+ \end{tabu}
+ \vspace{0em}
+ \end{spacing}
+
+ \begin{spacing}{1}
+ \zihao{3}
+ \vspace{1\ccwd}
+
+ \zihao{-3}
+ \textbf{指导者:}\underline{\makebox[15.5\ccwd][c]{\njust@supervisor\hspace{1em}\njust@supervisor@title}}
+
+ \hspace{5em}
+
+ \phantom{指导者:}\underline{\makebox[15.5\ccwd][c]{\njust@associate@supervisor\hspace{1em}\njust@associate@supervisor@title}}
+
+ \hspace{5em}
+
+ \textbf{评阅者:}\underline{\makebox[15.5\ccwd][c]{\njust@judge\hspace{1em}\njust@judge@title}}
+
+ \hspace{5em}
+
+ \zihao{-2}
+ \njust@year 年\njust@month 月
+ \end{spacing}
+ \vspace{0em}
+ \end{titlepage}
+}
+
+\newcommand\copyrightpage{%
+ \newpage
+ \thispagestyle{empty}
+ \begin{center}
+ \heiti\zihao{3}声\hspace{2\ccwd}明
+ \end{center}
+
+ \begin{spacing}{1.5}
+ \zihao{4}
+
+ 我声明,本\njust@abstract@prefix 及其研究工作和所取得的成果是本人在导师的指导
+ 下独立完成的。研究过程中利用的所有资料均已在参考文献中列出,其他人员或机
+ 构对本\njust@abstract@prefix 工作做出的贡献也已在致谢部分说明。
+
+ 本\njust@abstract@prefix 不涉及任何秘密,南京理工大学有权保存其电子和纸质文档
+ ,可以借阅或网上公布其部分或全部内容,可以向有关部门或机构送交并授权保存
+ 、借阅或网上公布其部分或全部内容。
+
+ \vspace{2\ccwd}
+
+ \begin{flushright}
+ 学生签名:\njust@signature
+
+ \vspace{1\ccwd}
+
+ \njust@year 年\njust@month 月\njust@day 日
+
+ \vspace{2\ccwd}
+
+ 指导教师签名:\njust@signature@teacher
+
+ \vspace{1\ccwd}
+
+ \njust@year 年\njust@month 月\njust@day 日
+ \end{flushright}
+ \end{spacing}
+ \clearpage
+}
+
+\newcommand\reviewpage{%
+ \begin{tabu}to.75\linewidth{@{}|X[l]|X[l]|@{}}
+ \hline
+ 论文选题符合课程考核要求,具有一定的理论意义和实用价值,作者阅读较广泛,参考文献较充足。
+&
+\begin{tabu}{@{}X[l]@{}}
+ 很好$ \square $ 较好$ \square $
+
+ 一般$ \square $ 尚可$ \square $
+
+ 差$ \square $
+\end{tabu}
+
+\hline
+论文观点正确,结构较合理,层次较清晰,逻辑性强,论述较全面,工作量较充实,结论具有一定的现实指导意义。
+&
+\begin{tabu}{@{}X[l]@{}}
+ 很好$ \square $ 较好$ \square $
+
+ 一般$ \square $ 尚可$ \square $
+
+ 差$ \square $
+\end{tabu}
+
+\hline
+该生平时学习较认真,善于思考,到课率高,不迟到早退。文章语言表达较好,格
+式符合规范要求,体现了较好的学风。
+&
+\begin{tabu}{@{}X[l]@{}}
+ 很好$ \square $ 较好$ \square $
+
+ 一般$ \square $ 尚可$ \square $
+
+ 差$ \square $
+\end{tabu}
+
+\hline
+\begin{tabu}{@{}X[l]@{}}
+ 教师签名:
+
+ 年~月~日
+\end{tabu}
+&
+
+\hline
+ \end{tabu}
+
+ \begin{flushleft}
+ \makebox[5\ccwd][c]{}注:请将该封面与论文装订成册(论文双面打印)。
+ \end{flushleft}$0
+
+ \begin{boxedminipage}{\linewidth}
+ \zihao{4}
+
+ 任课老师评语:
+
+ \vspace{40mm}
+
+ \begin{flushright}
+ 签名: \underline{\makebox[6\ccwd][c]{}}
+
+ 年\makebox[2\ccwd][c]{}月\makebox[2\ccwd][c]{}日
+ \end{flushright}
+
+ \vspace{20mm}
+
+ \end{boxedminipage}
+ \clearpage
+}
+
+% Fakechapter environment
+\newenvironment{abstract}{%
+ \newpage
+ \thispagestyle{empty}
+ \centering
+ \zihao{3}{\ziju{0.5}\heiti\njust@abstract@prefix
+ 中文摘要}
+
+ \vspace{0.3em}
+
+ \begin{boxedminipage}[][18cm]{\linewidth}
+ \begin{spacing}{1.5}
+ \zihao{-4}
+
+ \vspace{1\ccwd}
+
+}{%
+ \end{spacing}
+ \end{boxedminipage}
+}
+
+\newenvironment{abstract*}{%
+ \newpage
+ \thispagestyle{empty}
+ \centering
+ \zihao{3}\ziju{0.5}\heiti\njust@abstract@prefix
+ 英文摘要
+
+ \vspace{0.3em}
+
+ \begin{boxedminipage}[][18cm]{\linewidth}
+ \begin{spacing}{1}
+ \zihao{4}
+
+ \vspace{1em}
+
+ \begin{tabu} to \linewidth{@{}X[l]@{}X[l, 8]@{}}
+ \textbf{Title} &
+ \hspace{2em}\underline{
+ \makebox[15em][c]{\zihao{4}\njust@title@en}} \\
+ \phantom{Title} &
+ \hspace{2em}\underline{
+ \makebox[15em][c]{\zihao{4}\njust@subtitle@en}} \\
+ \end{tabu}
+
+ \textbf{Abstract}
+
+ \zihao{-4}
+
+ \vspace{2em}
+
+}{%
+ \end{spacing}
+ \end{boxedminipage}
+}
+
+\newenvironment{keyword}{%
+ \vspace{1em}
+ \noindent\textbf{关键词}\hspace{1\ccwd}
+}{%
+}
+
+\newenvironment{keyword*}{%
+ \vspace{1em}
+ \noindent\textbf{Keywords}\hspace{1em}
+}{%
+}
+
+\newenvironment{acknowledgement}{%
+ \newpage
+ \begin{center}
+ \zihao{3}致谢
+ \end{center}
+
+}{%
+}
+%</cls>
+
+%<*cls|sty>
+\endinput
+%</cls|sty>
+% \end{macrocode}
+% \IfFileExists{./CHANGELOG.md}{\markdownInput{CHANGELOG.md}}{}
+% \Finale