diff options
author | Karl Berry <karl@freefriends.org> | 2023-06-08 21:05:37 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-06-08 21:05:37 +0000 |
commit | 3a24c707696a3f879e08e45b1cdf35d2e706a0b8 (patch) | |
tree | 91ab2d78daa664199b95768d7aee5f6e634747cc /Master/texmf-dist/tex/latex/njuthesis/njuthesis-doc.cls | |
parent | 8510fe5ce01fa20bea5d331938c24ae94009b8e0 (diff) |
njuthesis (8jun23)
git-svn-id: svn://tug.org/texlive/trunk@67309 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/njuthesis/njuthesis-doc.cls')
-rw-r--r-- | Master/texmf-dist/tex/latex/njuthesis/njuthesis-doc.cls | 301 |
1 files changed, 301 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/njuthesis/njuthesis-doc.cls b/Master/texmf-dist/tex/latex/njuthesis/njuthesis-doc.cls new file mode 100644 index 00000000000..d5f9ff816f0 --- /dev/null +++ b/Master/texmf-dist/tex/latex/njuthesis/njuthesis-doc.cls @@ -0,0 +1,301 @@ +%% +%% This is file `njuthesis-doc.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% njuthesis.dtx (with options: `doc-cls') +%% +%% Copyright (C) 2021 - 2023 +%% by Nanjing University Linux User Group +%% <git+nju-lug-email-3104-issue-@yaoge123.cn> +%% +%% This file may be distributed and/or modified under the conditions of +%% the LaTeX Project Public License, either version 1.3c 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. +%% +\GetIdInfo $Id: njuthesis.dtx 1.3.0 2023-06-06 11:30:00 + +0800 NJU LUG <git+nju-lug-email-3104-issue-@yaoge123.cn>$ + {Documentation style for njuthesis} +\ProvidesExplFile{njuthesis-doc.cls} + {\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription} + +\RequirePackage { l3keys2e } +\keys_define:nn { njudoc } + { + codehigh .bool_set:N = \g__njudoc_codehigh_bool, + codehigh .initial:n = false + } +\ProcessKeysOptions { njudoc } +\PassOptionsToPackage { fontset = fandol } { ctex } +\PassOptionsToPackage { firstpage = true } { background } +\LoadClass { ctxdoc } +\RequirePackage + { + background, + codehigh, + listings, + njuvisual, + tabularray, + unicode-math, + zhlineskip + } +\sys_if_engine_xetex:TF + { + \RequirePackage { xeCJKfntef } + \renewcommand\emph[1]{\CJKunderdot[textformat=\itshape]{#1}} + } + { + \RequirePackage { lua-ul } + \NewDocumentCommand \CJKunderline { o m } { \underLine {#1} } + \NewDocumentCommand \CJKunderdot { o m } { \underLine {#1} } + \NewDocumentCommand \CJKsout { o m } + { \textcolor { black!50 } {#1} } + } +\backgroundsetup{ + contents={\njuemblem[white!85!gray]{22cm}{!}}, + scale=1, angle=0, hshift=-4cm +} +\definecolor{tpblue}{HTML}{495A80} +\newcommand\tpbutton[1]{\textcolor{tpblue}{\bfseries #1}} +\newcommand\tikzlogo{Ti\emph{k}Z} +\newcommand\OPT[1]{\textcolor{njuyellow}{\bfseries#1}} +\hypersetup{ + pdftitle = { + The~ njuthesis~ class~ -~ + LaTeX~ thesis~ template~ for~ Nanjing~ University}, + citecolor = njublue, + linkcolor = njuviolet, + urlcolor = njumagenta} +\UseTblrLibrary{booktabs,siunitx} +\DefTblrTemplate{caption-tag}{default}{่กจ\hspace{0.25em}\thetable} +\SetTblrStyle{caption-tag}{font=\bfseries} +\SetTblrInner{row{1}={font=\bfseries}} +\SetTblrInner[talltblr]{row{1}={font=\bfseries}} +\DefTblrTemplate{caption-sep}{default}{\quad} +\def\TA{\TblrNote{a}} +\def\TB{\TblrNote{b}} +\def\TC{\TblrNote{c}} +\def\TD{\TblrNote{d}} +\def\TE{\TblrNote{e}} +\def\TL{\TeX~Live} +\def\MacTeX{Mac\TeX} +\def\biber{\hologo{biber}} +\def\LaTeXe{\hologo{LaTeX2e}} +\SetTextEnvironmentSinglespace{1.112} +\SetMathEnvironmentSinglespace{1.112} +\setmainfont { texgyretermes } + [ + Extension = .otf, + UprightFont = *-regular, + BoldFont = *-bold, + ItalicFont = *-italic, + BoldItalicFont = *-bolditalic + ] +\setsansfont{LexendDeca} +\fontspec_font_if_exist:nT { Iosevka } + { + \setmonofont { Iosevka } + [ + UprightFont = *~Light, + ItalicFont = *~Light~Italic, + BoldFont = *~Semibold + ] + } +\fontspec_font_if_exist:nT { Source~ Han~ Serif~ SC } + { + \setCJKmainfont{ Source~ Han~ Serif~ SC } + [ + UprightFont = *~SemiBold, + ItalicFont = *~Bold, + BoldFont = *~Heavy, + Language = Chinese~Simplified + ] + } +\setCJKsansfont { FandolHei-Regular } + [ + Extension = .otf, + BoldFont = FandolHei-Bold + ] +\setCJKmonofont { FandolFang-Regular } + [ Extension = .otf ] +\setmathfont{XITSMath-Regular}[ + BoldFont = XITSMath-Bold, + Extension = .otf] +\lstdefinestyle{style@base} + { + basewidth = 0.5 em, + gobble = 3, + lineskip = 3 pt, + frame = l, + framerule = 1 pt, + framesep = 0 pt, + xleftmargin = 2 em, + xrightmargin = 3 em, + escapeinside = {(*}{*)}, + breaklines = true, + basicstyle = \small\ttfamily, + keywordstyle = \bfseries\color{njuviolet}, + commentstyle = \itshape\color{white!50!gray}, + stringstyle = \color{nju-chem-red}, + backgroundcolor = \color{white!95!gray} + } +\lstdefinestyle{style@shell} + { + style = style@base, + rulecolor = \color{njumagenta}, + language = bash, + alsoletter = {-}, + emphstyle = \color{nju-cs-green} + } +\lstdefinestyle{style@latex} + { + style = style@base, + rulecolor = \color{njublue}, + language = [LaTeX]TeX, + alsoletter = {*, -, .}, + texcsstyle = *\color{njuviolet}, + emphstyle = [1]\color{nju-ai-orange}, + emphstyle = [2]\color{nju-cs-green}, + emphstyle = [3]\bfseries\color{njuyellow} + } +\lstnewenvironment{shellexample}[1][]{% + \lstset{style=style@shell, #1}}{} +\lstnewenvironment{latexexample}[1][]{% + \lstset{style=style@latex, #1}}{} +\colorlet { at@guard } { njuviolet } +\definecolor { angle@guard } { gray } { 0.7 } +\definecolor { star@guard } { rgb } { 0.8 , 0 , 0 } +\definecolor { u@guard } { HTML } { 5463FF } +\definecolor { g@guard } { HTML } { 2B7A0B } +\definecolor { p@guard } { HTML } { FF1818 } +\definecolor { c@guard } { HTML } { FFC300 } +\prop_const_from_keyval:Nn \c__njudoc_module_color_prop + { + def-u = u@guard, + def-g = g@guard, + def-p = p@guard + } +\cs_new:Npn \__njudoc_set_module_color:Nn #1#2 + { + \prop_get:NnNF \c__njudoc_module_color_prop {#2} #1 + { \tl_set:Nn #1 { c@guard } } + \exp_args:NV \color #1 #2 + } +\cs_new:Npn \__njudoc_set_module_color:n + { \__njudoc_set_module_color:Nn \l_tmpa_tl } +\cs_new_protected:Npn \__njudoc_module_angle:Nn #1#2 + { + \group_begin: \color { angle@guard } \ttfamily \textlangle \group_end: + \group_begin: \sffamily #2 \group_end: + \group_begin: \color { angle@guard } #1 \ttfamily \textrangle \group_end: + } +\cs_set:Npn \__ctxdoc_module_angle:n + { \__njudoc_module_angle:Nn \c_empty_tl } +\cs_new_protected:Npn \__njudoc_colored_module_angle:NN #1#2 + { + \seq_clear:N #2 + \seq_map_inline:Nn #1 + { + \seq_gput_right:Nn #2 + { \__njudoc_set_module_color:n {##1} } + } + } +\cs_new_protected:Npn \__njudoc_print_module:n #1 + { + \__njudoc_colored_module_angle:NN \l_tmpa_seq \l_tmpb_seq + \bool_lazy_or:nnTF + { \str_if_empty_p:n {#1} } + { \int_compare_p:n { \seq_count:N \l_tmpb_seq = 1 } } + { + \str_clear:N \l_tmpa_str + \str_clear:N \l_tmpb_str + } + { + \str_set:Nn \l_tmpa_str { ( } + \str_set:Nn \l_tmpb_str { ) } + } + \__njudoc_module_angle:Nn \l_tmpb_str + { + \color { star@guard } #1 + \color { angle@guard } \l_tmpa_str + \seq_use:Nn \l_tmpb_seq + { \color { angle@guard } \orbar } + } + } +\cs_new:Npn \__njudoc_split_pm:n + { \seq_set_split:Nnn \l_tmpa_seq { | } } +\cs_generate_variant:Nn \__njudoc_split_pm:n { V } +\cs_new_protected_nopar:Npn \__njudoc_split_m:n #1 + { + \tl_set:Nn \l_tmpa_str {#1} + \clist_map_inline:nn { *, /, (, ) } + { \str_remove_all:Nn \l_tmpa_str {##1} } + \__njudoc_split_pm:V \l_tmpa_str + } +\group_begin: + \char_set_catcode_active:N \> + \cs_gset_protected:Npn \__ctxdoc_module_star:w #1 > #2 \q_stop + { + \__ctxdoc_output_module:nn + { \__njudoc_split_m:n {#1} } + { \__ctxdoc_module_push:n { \__njudoc_print_module:n { * } } } + \__ctxdoc_output_line:n {#2} + \__ctxdoc_star_format: + } + \cs_gset_protected:Npn \__ctxdoc_module_slash:w #1 > #2 \q_stop + { + \__ctxdoc_output_module:nn + { \__njudoc_split_m:n {#1} } + { \__ctxdoc_module_pop:n { \__njudoc_print_module:n { / } } } + \__ctxdoc_output_line:n {#2} + \__ctxdoc_slash_format: + } + \cs_gset_protected:Npn \__ctxdoc_module_pm:w #1 > #2 \q_stop + { + \tex_noindent:D + \hbox_overlap_left:n + { + \__ctxdoc_output_module:nn + { \__njudoc_split_pm:n {#1} } + { \__njudoc_print_module:n { } } + \skip_horizontal:n { \leftskip + \smallskipamount } + } + \group_begin: + \__ctxdoc_pm_format: + \__ctxdoc_output_line:n {#2} + \group_end: + } +\group_end: +\NewDocumentCommand \grd { m } + { \__ctxdoc_module_angle:n { \color { njuviolet } #1 } } +\NewDocumentCommand \sgrd { m } + { \__ctxdoc_module_angle:n { \color { star@guard } * \color{ c@guard } #1 } } +\NewDocumentCommand \pgrd { m } + { \__ctxdoc_module_angle:n { \color { #1 @guard } def- #1 } } +\cs_generate_variant:Nn \tl_remove_once:Nn { NV } +\cs_set_protected_nopar:Npn \__njudoc_output_line:N #1 + { + \tex_noindent:D + \__ctxdoc_replace_at_at:N #1 + \tl_remove_once:NV #1 \c__ctxdoc_active_cr_tl + \__codehigh_parse_code:nN { latex / latex3 } #1 + \tex_par:D + } +\bool_if:NT \g__njudoc_codehigh_bool + { + \cs_set:Npn \__ctxdoc_output_line: + { \__njudoc_output_line:N \l__ctxdoc_verbatim_line_tl } + } +\endinput +%% +%% End of file `njuthesis-doc.cls'. |