% \iffalse meta-comment % % Copyright (C) 2005-2025 by Tsinghua University TUNA Association <tuna@tsinghua.edu.cn> % % This work 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 % https://www.latex-project.org/lppl.txt % and version 1.3c or later is part of all distributions of LaTeX % version 2008 or later. % % \fi % % \iffalse %<*driver> \ProvidesFile{thuthesis.dtx}[2025/03/28 7.6.0 Tsinghua University Thesis Template] \documentclass{ltxdoc} \usepackage{dtx-style} \EnableCrossrefs \CodelineIndex \begin{document} \DocInput{\jobname.dtx} \end{document} %</driver> % \fi % % \DoNotIndex{\newenvironment,\@bsphack,\@empty,\@esphack,\sfcode} % \DoNotIndex{\addtocounter,\label,\let,\linewidth,\newcounter} % \DoNotIndex{\noindent,\normalfont,\par,\parskip,\phantomsection} % \DoNotIndex{\providecommand,\ProvidesPackage,\refstepcounter} % \DoNotIndex{\RequirePackage,\setcounter,\setlength,\string,\strut} % \DoNotIndex{\textbackslash,\texttt,\ttfamily,\usepackage} % \DoNotIndex{\begin,\end,\begingroup,\endgroup,\par,\\} % \DoNotIndex{\if,\ifx,\ifdim,\ifnum,\ifcase,\else,\or,\fi} % \DoNotIndex{\let,\def,\xdef,\edef,\newcommand,\renewcommand} % \DoNotIndex{\expandafter,\csname,\endcsname,\relax,\protect} % \DoNotIndex{\Huge,\huge,\LARGE,\Large,\large,\normalsize} % \DoNotIndex{\small,\footnotesize,\scriptsize,\tiny} % \DoNotIndex{\normalfont,\bfseries,\slshape,\sffamily,\interlinepenalty} % \DoNotIndex{\textbf,\textit,\textsf,\textsc} % \DoNotIndex{\hfil,\par,\hskip,\vskip,\vspace,\quad} % \DoNotIndex{\centering,\raggedright,\ref} % \DoNotIndex{\c@secnumdepth,\@startsection,\@setfontsize} % \DoNotIndex{\ ,\@plus,\@minus,\p@,\z@,\@m,\@M,\@ne,\m@ne} % \DoNotIndex{\@@par,\DeclareOperation,\RequirePackage,\LoadClass} % \DoNotIndex{\AtBeginDocument,\AtEndDocument} % % \GetFileInfo{\jobname.dtx} % % \def\indexname{索引} % \IndexPrologue{\section{\indexname}} % % \title{\bfseries\color{violet}\thuthesis:清åŽå¤§å¦å¦ä½è®ºæ–‡æ¨¡æ¿} % \author{{\fangsong 清åŽå¤§å¦ TUNA å会}\\[5pt]\texttt{tuna@tsinghua.edu.cn}} % \date{v\fileversion\ (\filedate)} % \maketitle\thispagestyle{empty} % % % \begin{abstract}\noindent % æ¤å®åŒ…æ—¨åœ¨å»ºç«‹ä¸€ä¸ªç®€å•æ˜“用的清åŽå¤§å¦å¦ä½è®ºæ–‡æ¨¡æ¿ï¼ŒåŒ…括本科综åˆè®ºæ–‡è®ç»ƒã€ç¡•士 % 论文ã€åšå£«è®ºæ–‡ä»¥åŠåšå£«åŽå‡ºç«™æŠ¥å‘Šã€‚ % \end{abstract} % % \vskip2cm % \def\abstractname{å…责声明} % \begin{abstract} % \noindent % \begin{enumerate} % \item 本模æ¿çš„å‘布éµå®ˆ \href{https://www.latex-project.org/lppl/lppl-1-3c.txt}{\LaTeX{} Project Public License (1.3.c)},使用å‰è¯·è®¤çœŸé˜…读å议内 % 容。 % \item 本模æ¿ä¸ºä½œè€…æ ¹æ® % 清åŽå¤§å¦ç ”究生院é¢å‘的《 % \href{https://info2021.tsinghua.edu.cn/f/info/xxfb_fg/xnzx/template/detail?xxid=fa880bdf60102a29fbe3c31f36b76c7e}{% % ç ”ç©¶ç”Ÿå¦ä½è®ºæ–‡å†™ä½œæŒ‡å—}》(更新到 2025 å¹´ 3 æœˆç‰ˆæœ¬ï¼Œé™æ ¡å†…网络访问)〠% 英文版 \emph{Guide to Thesis Writing for Graduate Students}〠% 清åŽå¤§å¦æ•™åС处é¢å‘的《 % \href{https://info2021.tsinghua.edu.cn/f/info/xxfb_fg/xnzx/template/detail?xxid=b2d1a49d7e48c8e9b0f7e82f033dbb2b}{% % 清åŽå¤§å¦ç»¼åˆè®ºæ–‡è®ç»ƒå†™ä½œè§„范(试行)}》〠% 外文系的《英è¯ä¸“业本科生综åˆè®ºæ–‡è®ç»ƒã€‹å’Œ % 清åŽå¤§å¦ã€Š % \href{http://postdoctor.tsinghua.edu.cn/info/czxz/1283}{% % 编写“清åŽå¤§å¦åšå£«åŽç ”究报告â€å‚考æ„è§}》 % 编写而æˆï¼Œæ—¨åœ¨ä¾›æ¸…åŽå¤§å¦æ¯•业生撰写å¦ä½è®ºæ–‡ä½¿ç”¨ã€‚ % \item 任何个人或组织以本模æ¿ä¸ºåŸºç¡€è¿›è¡Œä¿®æ”¹ã€æ‰©å±•而生æˆçš„æ–°çš„专用模æ¿ï¼Œè¯·ä¸¥æ ¼éµ % 守 \LaTeX{} Project Public License å议。由于è¿çНåè®®è€Œå¼•èµ·çš„ä»»ä½•çº çº·äº‰ç«¯å‡ä¸Ž % 本模æ¿ä½œè€…æ— å…³ã€‚ % \end{enumerate} % \end{abstract} % % % \clearpage % \pagestyle{fancy} % \begin{multicols}{2}[ % \setlength{\columnseprule}{.4pt} % \setlength{\columnsep}{18pt}] % \tableofcontents % \end{multicols} % \clearpage % % \section{模æ¿ä»‹ç»} % \thuthesis{}(\textbf{T}sing\textbf{h}ua \textbf{U}niversity \LaTeX{} % \textbf{Thesis} Template)是为了帮助清åŽå¤§å¦æ¯•业生撰写毕业论文而编写 % çš„ \LaTeX{} 论文模æ¿ã€‚ % % 本文档将尽é‡å®Œæ•´åœ°ä»‹ç»æ¨¡æ¿çš„ä½¿ç”¨æ–¹æ³•ï¼Œå¦‚æœ‰ä¸æ¸…楚之处,或者想æå‡ºæ”¹è¿›å»ºè®®ï¼Œ % å¯ä»¥åœ¨ \href{https://github.com/tuna/thuthesis/issues/}{GitHub Issues} % å‚与讨论或æé—®ã€‚ % 有兴趣者都å¯ä»¥å‚ä¸Žå®Œå–„æ¤æ‰‹å†Œï¼Œä¹Ÿéžå¸¸æ¬¢è¿Žå¯¹ä»£ç 的贡献。 % % \note[注æ„:]{模æ¿çš„作用在于å‡å°‘è®ºæ–‡å†™ä½œè¿‡ç¨‹ä¸æ ¼å¼è°ƒæ•´çš„æ—¶é—´ã€‚å‰ææ˜¯éµå®ˆæ¨¡æ¿çš„ % 用法,å¦åˆ™å³ä¾¿ç”¨äº† \thuthesis{} 也难以ä¿è¯è¾“出的论文符åˆå¦æ ¡è§„范。} % % 用户如果é‡åˆ° bug,或者å‘çŽ°ä¸Žå¦æ ¡ã€Šå†™ä½œæŒ‡å—》 çš„è¦æ±‚ä¸ä¸€è‡´ï¼Œå¯ä»¥å°è¯•以下办法: % \begin{enumerate} % \item 将模æ¿å‡çº§åˆ°æœ€æ–°ï¼Œè§ç¬¬~\ref{sec:upgrade} 节; % \item 阅读 \href{https://github.com/tuna/thuthesis/wiki/FAQ}{FAQ}ï¼› % \item 在 GitHub Issues 䏿Œ‰ç…§è¯´æ˜Ž % \href{https://github.com/tuna/thuthesis/issues/new?template=bug_report.md}{报告 bug}。 % \end{enumerate} % % \section{贡献者} % \label{sec:contributors} % % \thuthesis{} 的开å‘过程ä¸ï¼Œä¸»è¦çš„维护者包括: % % \begin{itemize} % \item 薛瑞尼(\githubuser{xueruini}):最早的开å‘者,2005 年创建 \thuthesis{} 并长期进行维护工作。 % \item 赵涛(\githubuser{alick}):2011-2015 年活跃,较早期阶段的开å‘者。 % \item æŽæ³½å¹³ï¼ˆ\githubuser{zepinglee}):2016 年至今活跃,为目å‰ä¸»è¦ç»´æŠ¤è€…。 % \item 陈晟祺(\githubuser{Harry-Chen}):2020 年至今活跃,主è¦è´Ÿè´£éžå¼€å‘性事宜。 % \end{itemize} % % åŒæ—¶ï¼Œä¹Ÿè¦æ„Ÿè°¢æ‰€æœ‰åœ¨ GitHub 上æå‡ºé—®é¢˜ä¸Žè´¡çŒ®ä»£ç çš„åŒå¦ã€è€å¸ˆä»¬ã€‚ % \thuthesis{} çš„æŒç»å‘展,离ä¸å¼€ä½ 们的帮助与支æŒã€‚ % % \section{安装} % \label{sec:installation} % % \thuthesis{} å·²ç»åŒ…å«åœ¨ä¸»è¦çš„ \TeX{} å‘行版ä¸ï¼Œä½†æ˜¯é€šå¸¸ç‰ˆæœ¬è¾ƒæ—§ï¼Œè€Œä¸”䏿–¹ä¾¿æ›´æ–°ã€‚ % 建议从下列途径下载最新版: % \begin{description} % \item[GitHub] \url{https://github.com/tuna/thuthesis},从 Release ä¸ä¸‹è½½ zip 文件。 % \item[TUNA 镜åƒç«™] \url{https://mirrors.tuna.tsinghua.edu.cn/github-release/tuna/thuthesis/},也å¯åœ¨é¦–页选择“获å–下载链接——应用软件——\thuthesis{}论文模æ¿â€ã€‚ % \end{description} % % % æ¨¡æ¿æ”¯æŒåœ¨ TeX Liveã€MacTeX å’Œ MiKTeX å¹³å°ä¸‹è¿›è¡Œç¼–è¯‘ï¼Œä½†è¦æ±‚ 2017 年或更新的å‘行版。 % 当然,尽å¯èƒ½ä½¿ç”¨æœ€æ–°çš„版本å¯ä»¥é¿å… bug。 % % \subsection{模æ¿çš„组æˆ} % 下表列出了 \thuthesis{} çš„ä¸»è¦æ–‡ä»¶åŠå…¶åŠŸèƒ½ä»‹ç»ï¼š % % \begin{longtable}{l|p{8cm}} % \toprule % {\heiti 文件(夹)} & {\heiti 功能æè¿°}\\\midrule % \endfirsthead % \midrule % {\heiti 文件(夹)} & {\heiti 功能æè¿°}\\\midrule % \endhead % \endfoot % \endlastfoot % thuthesis.ins & \textsc{DocStrip} 驱动文件(开å‘用) \\ % thuthesis.dtx & \textsc{DocStrip} æºæ–‡ä»¶ï¼ˆå¼€å‘用)\\\midrule % thuthesis.cls & 模æ¿ç±»æ–‡ä»¶\\ % thuthesis-*.bst & \hologo{BibTeX} å‚è€ƒæ–‡çŒ®è¡¨æ ·å¼æ–‡ä»¶\\ % thuthesis-*.bbx & BibLaTeX å‚è€ƒæ–‡çŒ®è¡¨æ ·å¼æ–‡ä»¶\\ % thuthesis-*.cbx & BibLaTeX å‚è€ƒæ–‡çŒ®å¼•ç”¨æ ·å¼æ–‡ä»¶\\ % tsinghua-name-bachelor.pdf & æ ¡å logo,本科生å°é¢ä½¿ç”¨ \\\midrule % thuthesis-example.tex & 示例文档主文件\\ % ref/ & 示例文档å‚考文献目录\\ % data/ & ç¤ºä¾‹æ–‡æ¡£ç« èŠ‚å…·ä½“å†…å®¹\\ % figures/ & 示例文档图片路径\\ % thusetup.tex & 示例文档基本é…ç½®\\\midrule % Makefile & Makefile\\ % latexmkrc & latexmk é…置文件 \\ % README.md & Readme\\ % \textbf{thuthesis.pdf} & 用户手册(本文档)\\\bottomrule % \end{longtable} % % å‡ ç‚¹è¯´æ˜Žï¼š % \begin{itemize} % \item \file{thuthesis.cls} å¯ç”± \file{thuthesis.ins} % å’Œ \file{thuthesis.dtx} 生æˆï¼Œä½†ä¸ºäº†é™ä½Žæ–°æ‰‹ç”¨æˆ·çš„使用难度,故 % å°† \file{thuthesis.cls} 文件一起å‘布。 % \item 使用å‰é˜…读文档:\file{thuthesis.pdf}。 % \end{itemize} % % \subsection{ç”Ÿæˆæ¨¡æ¿} % \label{sec:generate-cls} % 模æ¿çš„æºæ–‡ä»¶ï¼ˆ\file{thuthesis.dtx})ä¸åŒ…å«äº†å¤§é‡çš„æ³¨é‡Šï¼Œéœ€è¦å°†æ³¨é‡ŠåŽ»æŽ‰ç”Ÿæˆè½»é‡ % 级的 \file{.cls} 文件供 \cs{documentclass} 调用。 % % \begin{shell} % $ xetex thuthesis.ins % \end{shell} % % \note[注æ„:]{如果没有生æˆçš„æ¨¡æ¿ \file{thuthesis.cls} 文件 % (跟 \file{thuthesis-example.tex} åŒä¸€ç›®å½•下), % \LaTeX{} 在编译时å¯èƒ½æ‰¾åˆ°å‘行版ä¸è¾ƒæ—§ç‰ˆæœ¬çš„ \file{.cls}ï¼Œä»Žè€Œé€ æˆå†²çªã€‚} % % \subsection{编译论文} % \label{sec:generate-thesis} % 本节介ç»å‡ ç§å¸¸è§çš„生æˆè®ºæ–‡çš„æ–¹æ³•ã€‚ç”¨æˆ·å¯æ ¹æ®è‡ªå·±çš„æƒ…况选择。 % % 在撰写论文时,我们\textbf{䏿ލè}使用原有的 \file{thuthesis-example.tex} 这一å称。 % 建议将其å¤åˆ¶ä¸€ä»½ï¼Œæ”¹ä¸ºå…¶ä»–çš„åå—(如 \file{thesis.tex} 或者 \file{main.tex})。 % éœ€è¦æ³¨æ„,如果使用了æ¥è‡ª \file{data} 目录ä¸çš„ \file{tex} 文件, % 则é‡å‘½å主文件åŽï¼Œå…¶é¡¶ç«¯çš„ \texttt{!TeX root} 选项也需è¦ç›¸åº”修改。 % % \subsubsection{GNU make} % \label{sec:make} % 如果用户å¯ä»¥ä½¿ç”¨ GNU make 工具,这是最方便的办法。 % 所以 \thuthesis{} æä¾›äº† \file{Makefile}: % \begin{shell} % $ make thesis # 生æˆè®ºæ–‡ç¤ºä¾‹ thuthesis-example.pdf % $ make spine # 生æˆä¹¦è„Š spine.pdf % $ make doc # 生æˆè¯´æ˜Žæ–‡æ¡£ thuthesis.pdf % $ make clean # 清ç†ç¼–译生æˆçš„辅助文件 % \end{shell} % % éœ€è¦æ³¨æ„,如果更改了主文件的å称,则需è¦ä¿®æ”¹ \file{Makefile} 顶端的 \texttt{THESIS} å˜é‡å®šä¹‰ã€‚ % % \subsubsection{latexmk} % \label{sec:latexmk} % \texttt{latexmk} 命令支æŒå…¨è‡ªåŠ¨ç”Ÿæˆ \LaTeX{} 编写的文档,并且支æŒä½¿ç”¨ä¸åŒçš„工具 % 链æ¥è¿›è¡Œç”Ÿæˆï¼Œå®ƒä¼šè‡ªåЍè¿è¡Œå¤šæ¬¡å·¥å…·ç›´åˆ°äº¤å‰å¼•用都被解决。 % \begin{shell} % $ latexmk thuthesis-example.tex # 生æˆç¤ºä¾‹è®ºæ–‡ thuthesis-example.pdf % $ latexmk spine.tex # 生æˆä¹¦è„Š spine.pdf % $ latexmk thuthesis.dtx # 生æˆè¯´æ˜Žæ–‡æ¡£ thuthesis.pdf % $ latexmk -c # 清ç†ç¼–译生æˆçš„辅助文件 % \end{shell} % \texttt{latexmk} 的编译过程是通过 \file{latexmkrc} 文件æ¥é…置的,如果è¦è¿›ä¸€æ¥äº†è§£ï¼Œ % å¯ä»¥å‚考 \pkg{latexmk} 文档。 % % \subsubsection{\XeLaTeX} % \label{sec:xelatex} % å¦‚æžœç”¨æˆ·æ— æ³•ä½¿ç”¨ä»¥ä¸Šä¸¤ç§è¾ƒä¸ºæ–¹ä¾¿çš„编译方法,就åªèƒ½æŒ‰ç…§ä»¥ä¸‹å¤æ‚的办法手动编译。 % % 首先,更新模æ¿ï¼š % \begin{shell} % $ xetex thuthesis.ins # ç”Ÿæˆ thuthesis.cls % \end{shell} % % ç„¶åŽï¼Œç”Ÿæˆè®ºæ–‡ä»¥åŠä¹¦è„Šï¼š % \begin{shell} % $ xelatex thuthesis-example.tex % $ bibtex thuthesis-example.aux # ç”Ÿæˆ bbl 文件 % $ bibtex thuthesis-example-appendix-a.aux # 附录 A 的的å‚考文献 % $ bibtex thuthesis-example-appendix-b.aux # 附录 B 的的å‚考文献…… % $ bibtex thuthesis-example-index-1.aux # 本科生的书é¢ç¿»è¯‘对应的原文索引 % $ xelatex thuthesis-example.tex # 解决引用 % $ xelatex thuthesis-example.tex # 生æˆè®ºæ–‡ PDF % % $ xelatex spine.tex # 生æˆä¹¦è„Š PDF % \end{shell} % % 下é¢çš„命令用æ¥ç”Ÿæˆç”¨æˆ·æ‰‹å†Œï¼š % \begin{shell} % $ xelatex -shell-escape thuthesis.dtx % $ makeindex -s gind.ist -o thuthesis.ind thuthesis.idx % $ xelatex -shell-escape thuthesis.dtx % $ xelatex -shell-escape thuthesis.dtx # 生æˆè¯´æ˜Žæ–‡æ¡£ thuthesis.pdf % \end{shell} % % \subsection{å‡çº§} % \label{sec:upgrade} % 如果需è¦å‡çº§ \thuthesis{},应当从 GitHub 下载最新的版本, % å°† \file{thuthesis.dtx},\file{thuthesis.ins},\file{tsinghua-name-bachelor.pdf} å’Œ % \file{thuthesis-*.bst} æ‹·è´è‡³å·¥ä½œç›®å½•è¦†ç›–ç›¸åº”çš„æ–‡ä»¶ï¼Œç„¶åŽæŒ‰ç…§ % 第~\ref{sec:generate-cls} èŠ‚çš„å†…å®¹ç”Ÿæˆæ–°çš„æ¨¡æ¿å’Œä½¿ç”¨è¯´æ˜Žã€‚ % % 有时模æ¿å¯èƒ½è¿›è¡Œäº†é‡è¦çš„修改,ä¸å…¼å®¹å·²å†™å¥½çš„æ£æ–‡å†…å®¹ï¼Œç”¨æˆ·åº”æŒ‰ç…§ç¤ºä¾‹ % æ–‡æ¡£é‡æ–°è°ƒæ•´ã€‚ % % \section{使用说明} % \label{sec:usage} % 本手册å‡å®šç”¨æˆ·å·²ç»èƒ½å¤„ç†ä¸€èˆ¬çš„ \LaTeX{} 文档,并对 \hologo{BibTeX} 有一定了解。如果 % 从未接触过 \TeX{} å’Œ \LaTeX,建议先å¦ä¹ 相关的基础知识。 % % \subsection{示例文件} % \label{sec:userguide} % % æ¨¡æ¿æ ¸å¿ƒæ–‡ä»¶æœ‰ï¼š\file{thuthesis.cls},\file{tsinghua-name-bachelor.pdf}, % \file{thuthesis-*.bst}(\hologo{BibTeX}), % \file{thuthesis-*.bbx} å’Œ \file{thuthesis-*.cbx}(BibLaTeX), % 但如果没有示例文档会较难下手,所以推è从模æ¿è‡ªå¸¦çš„示例文档入手。其ä¸åŒ…括了论文 % 写作用到的所有命令åŠå…¶ä½¿ç”¨æ–¹æ³•,åªéœ€ç”¨è‡ªå·±çš„内容进行相应替æ¢å°±å¯ä»¥ã€‚å¯¹äºŽä¸æ¸… % 楚的命令å¯ä»¥æŸ¥é˜…本手册。下é¢çš„例åæè¿°äº†æ¨¡æ¿ä¸ç« 节的组织形å¼ï¼Œæ¥è‡ªäºŽç¤ºä¾‹æ–‡æ¡£ï¼Œ % 具体内容å¯ä»¥å‚考模æ¿é™„带的 \file{thuthesis-example.tex} å’Œ \file{data/}。 % % \subsection{论文选项} % \label{sec:option} % % \subsubsection{å¦ä½} % \DescribeOption{degree} % 选择å¦ä½ï¼Œå¯é€‰ï¼š % \option{bachelor},\option{master},\option{doctor}(默认),\option{postdoc}。 % 本节ä¸çš„ \emph{key-value} 选项åªèƒ½åœ¨æ–‡æ¡£ç±»çš„选项ä¸è¿›è¡Œè®¾ç½®ï¼Œ % ä¸èƒ½ç”¨äºŽ \cs{thusetup} 命令。 % \begin{latex} % % åšå£«è®ºæ–‡ % \documentclass[degree=doctor]{thuthesis} % \end{latex} % % \subsubsection{å¦ä½ç±»åž‹} % \label{sec:degree-type} % \DescribeOption{degree-type} % å®šä¹‰ç ”ç©¶ç”Ÿå¦ä½çš„类型,å¯é€‰ï¼š\option{academic}(默认)ã€\option{professional}, % 本科生ä¸å—å½±å“。 % \begin{latex} % \documentclass[degree=master, degree-type=professional]{thuthesis} % \end{latex} % % \subsubsection{å—体é…ç½®} % \label{sec:font-config} % \DescribeOption{fontset} % 模æ¿é»˜è®¤ä¼šè‡ªåŠ¨æ ¹æ®æ“作系统é…ç½®åˆé€‚çš„å—体, % 用户也å¯ä»¥é€šè¿‡ \option{fontset} 时指定使用预设的å—库,如: % \begin{latex} % \documentclass[fontset=windows]{thuthesis} % \end{latex} % å…许的选项有 \option{windows}ã€\option{mac}ã€\option{ubuntu} å’Œ \option{fandol}, % 具体使用的å—体è§è¡¨~\ref{tab:fontset}。 % 用户也å¯ä»¥è®¾ç½®ä¸º \option{none} 并自行é…ç½®å—体。 % % \begin{table}[htb] % \centering % \caption{\thuthesis{} 预设的å—体} % \label{tab:fontset} % \begin{tabular}{cccc} % \toprule % \option{windows} & \option{mac} & \option{ubuntu} & \option{fandol} \\ % \midrule % Times New Roman & Times New Roman & TeX Gyre Termes & TeX Gyre Termes \\ % Arial & Arial & TeX Gyre Heros & TeX Gyre Heros \\ % Courier & Menlo & TeX Gyre Cursor & TeX Gyre Cursor \\ % 䏿˜“宋体 & åŽæ–‡å®‹ä½“ & æ€æºå®‹ä½“ & Fandol 宋体 \\ % 䏿˜“黑体 & åŽæ–‡é»‘体 & æ€æºé»‘体 & Fandol 黑体 \\ % 䏿˜“仿宋 & åŽæ–‡ä»¿å®‹ & Fandol 仿宋 & Fandol 仿宋 \\ % 䏿˜“楷体 & åŽæ–‡æ¥·ä½“ & Fandol 楷体 & Fandol 楷体 \\ % \bottomrule % \end{tabular} % \end{table} % % éœ€è¦æ³¨æ„,建议用户在æäº¤ç»ˆç‰ˆå‰ä½¿ç”¨ Windows å¹³å°çš„å—体进行编译。 % è¿™æ ·ä¸æ–‡å—ä½“åŒ Word 模æ¿ä¸€è‡´ã€‚ % % 关于å—体的é…置, % è¯¦è§ \pkg{fontspec}ã€\pkg{xeCJK}ã€\pkg{ctex} ç‰å®åŒ…的使用说明和代ç 。 % % \DescribeOption{font} % é…置全文使用的西文å—体。所有å¯é€‰é¡¹ç›®ä¸º \option{auto}(默认)ã€\option{times}ã€\option{termes}〠% \option{stix}ã€\option{xits}ã€\option{libertinus}ã€\option{newcm}ã€\option{lm}〠% \option{newtx}ã€\option{none}。 % 通常æ¥è¯´ï¼Œç”¨æˆ·\textbf{ä¸éœ€è¦}调整æ¤é€‰é¡¹ã€‚ % % \DescribeOption{cjk-font} % é…ç½®å…¨æ–‡ä½¿ç”¨çš„ä¸æ–‡å—体。所有å¯é€‰é¡¹ä¸º \option{auto}(默认)ã€\option{windows}ã€\option{windows-local}〠% \option{mac}ã€\option{mac-word}ã€\option{noto}ã€\option{fandol} å’Œ \option{none}。 % 通常æ¥è¯´ï¼Œç”¨æˆ·\textbf{ä¸éœ€è¦}调整æ¤é€‰é¡¹ï¼Œæ¨¡æ¿ä¼šè‡ªåŠ¨é€šè¿‡ \option{fontset} 选项选择åˆé€‚çš„å—体。 % % \DescribeOption{windows-font-dir} % é…ç½®æœç´¢ Windows å—体的路径,仅适用于 Overleaf ç‰ä¸æ–¹ä¾¿å…¨å±€å®‰è£…å—体的环境。如果æ¤ç›®å½•ä¸‹èƒ½æ‰¾åˆ°ä¸æ˜“宋体, % 则将自动使用这些å—体编译。如有å¯èƒ½ï¼Œå§‹ç»ˆå»ºè®®å…¨å±€å®‰è£…相应å—体,模æ¿èƒ½å¤Ÿè‡ªåŠ¨æ£€æµ‹ã€‚ % % \subsection{论文设置} % 论文的设置å¯ä»¥é€šè¿‡ç»Ÿä¸€å‘½ä»¤ \cs{thusetup} 设置 \emph{key=value} å½¢å¼å®Œæˆã€‚ % % \DescribeMacro{\thusetup} % \cs{thusetup} ç”¨æ³•ä¸Žå¸¸è§ \emph{key=value} 命令相åŒï¼Œå¦‚下: % \begin{latex} % \thusetup{ % key1 = value1, % key2 = {a value, with comma}, % } % % å¯ä»¥å¤šæ¬¡è°ƒç”¨ % \thusetup{ % key3 = value3, % key1 = value11, % 覆盖 value1 % } % \end{latex} % % \note[注æ„:]{\cs{thusetup} 使用 \pkg{kvsetkeys} 机制,所以é…置项之间ä¸èƒ½æœ‰ç©ºè¡Œï¼Œå¦åˆ™ % 会报错。} % % \subsubsection{è¾“å‡ºæ ¼å¼} % \DescribeOption{output} % é€‰æ‹©è¾“å‡ºçš„æ ¼å¼æ˜¯æ‰“å°ç‰ˆè¿˜æ˜¯ç”µå版(用于æäº¤ï¼‰ï¼Œå¯é€‰ï¼š\option{print}(默认)ã€\option{electronic}。 % 打å°ç‰ˆ \option{print} 自动在å•颿‰“å°çš„部分æ’入空白页(比如å°é¢ï¼‰ï¼Œå¹¶ä¸”ä¿è¯æ£æ–‡ç¬¬ 1 页在å³ä¾§ã€‚ % 电å版 \option{electronic} é€‰é¡¹ä¼šåŽ»æŽ‰ç©ºç™½é¡µï¼Œè¿™æ˜¯å› ä¸ºä¸€äº›é™¢ç³»è¦æ±‚æäº¤çš„电å版ä¸å«ç©ºç™½é¡µã€‚ % % \begin{latex} % \thusetup{ % output = electronic, % } % \end{latex} % % å¦å¤–æœ¬ç§‘ç”Ÿè¦æ±‚有 0.2cm ç•™ç»™è£…è®¢çº¿çš„å®½åº¦ï¼Œè¿™åªæœ‰åœ¨æ‰“å°ç‰ˆä¸æ‰ä¼šç”Ÿæ•ˆã€‚ % % % \subsubsection{书写è¯è¨€} % \DescribeOption{language} % 在导言区设置 \option{language} 会修改论文的主è¦è¯è¨€ï¼Œå¦‚ç« èŠ‚æ ‡é¢˜ç‰ã€‚ % åœ¨æ£æ–‡ä¸è®¾ç½® \option{language} åªä¿®æ”¹æŽ¥ä¸‹æ¥éƒ¨åˆ†çš„书写è¯è¨€ï¼Œ % å¦‚æ ‡ç‚¹æ ¼å¼ã€å›¾è¡¨å称,但ä¸å½±å“ç« èŠ‚æ ‡é¢˜ç‰ã€‚ % % \begin{latex} % \thusetup{ % language = english, % } % \end{latex} % % 论文的一些部分(如英文摘è¦ã€æœ¬ç§‘ç”Ÿçš„å¤–æ–‡è°ƒç ”æŠ¥å‘Šï¼‰è¦æ±‚使用特定的è¯è¨€ï¼Œ % 模æ¿å·²ç»è¿›è¡Œé…置,并在这些部分结æŸåŽè‡ªåЍæ¢å¤ä¸ºä¸»è¦è¯è¨€ã€‚ % % 注æ„ï¼Œæœ¬ç§‘ç”Ÿã€Šå†™ä½œè§„èŒƒã€‹è¦æ±‚“本科生(å«å›½å¤–æ¥åŽç•™å¦æœ¬ç§‘生)éžå¤–è¯ä¸“ä¸šè®ºæ–‡ç»Ÿä¸€è¦æ±‚ % ç”¨ä¸æ–‡ä¹¦å†™ã€‚â€ç ”究生《写作指å—ã€‹è¦æ±‚“外国人æ¥åŽç•™å¦ç”Ÿå¯ä»¥ç”¨è‹±æ–‡æ’°å†™å¦ä½è®ºæ–‡ï¼Œä½† % é¡»é‡‡ç”¨ä¸æ–‡å°é¢â€ï¼Œâ€œé™¤ç•™å¦ç”Ÿå¤–,å¦ä½è®ºæ–‡ä¸€å¾‹é¡»ç”¨æ±‰è¯ä¹¦å†™â€ï¼Œç”¨æˆ·é¡»æå‰ä¸Žå¯¼å¸ˆå’Œé™¢ç³» % 的审查教师å商使用何ç§è¯è¨€ä¹¦å†™è®ºæ–‡ã€‚ % % \subsubsection{开题报告} % \DescribeOption{thesis-type} % 模æ¿è¿˜æ”¯æŒæœ¬ç§‘生ã€ç ”ç©¶ç”Ÿè®ºæ–‡å¼€é¢˜æŠ¥å‘Šçš„æ ¼å¼ï¼Œå¯ä»¥é€šè¿‡è®¾ç½® \option{thesis-type=proposal} 得到。 % % 开题报告与å¦ä½è®ºæ–‡æœ‰ä¸¤ç‚¹ä¸åŒï¼š % \begin{enumerate} % \item å°é¢çš„ä¿¡æ¯å’Œæ ¼å¼æœ‰åŒºåˆ«ï¼Œå°¤å…¶æ˜¯å¢žåŠ äº†ä¸€è¡Œâ€œå¦å·â€ä¿¡æ¯ï¼Œéœ€è¦é€šè¿‡ \option{student-id} 填写; % \item 开题报告ä¸å«è‹±æ–‡æ ‡é¢˜é¡µã€‚ % \end{enumerate} % \begin{latex} % \thusetup{ % thesis-type = proposal, % student-id = {2000310000}, % } % \end{latex} % % \subsection{å°é¢ä¿¡æ¯} % \label{sec:titlepage} % å°é¢ä¿¡æ¯å¯ä»¥é€šè¿‡ç»Ÿä¸€è®¾ç½®å‘½ä»¤ \cs{thusetup} 设置 \emph{key=value} å½¢å¼å®Œæˆï¼› % 带 * å·çš„键通常是对应的英文。 % % \subsubsection{è®ºæ–‡æ ‡é¢˜} % ä¸è‹±æ–‡æ ‡é¢˜ã€‚å¯ä»¥åœ¨æ ‡é¢˜å†…部使用æ¢è¡Œ|\\|。 % \begin{latex} % \thusetup{ % title = {è®ºæ–‡ä¸æ–‡é¢˜ç›®}, % title* = {Thesis English Title}, % } % \end{latex} % % \subsubsection{申请å¦ä½åç§°} % \label{sec:degree-category} % å¦ä½åç§°çš„è®¾ç½®æ¯”è¾ƒå¤æ‚,è§è¡¨~\ref{tab:degree-category}。 % % \begin{table}[h] % \caption{å¦ä½åç§°çš„è¦æ±‚} % \label{tab:degree-category} % \begin{tabular}{p{2cm}p{6cm}p{6cm}} % \toprule % å¦ä½ç±»åž‹ & degree-category & degree-category* \\ % \midrule % 妿œ¯åž‹åšå£« & 需注明所属的å¦ç§‘门类,例如: % 哲å¦ã€ç»æµŽå¦ã€æ³•å¦ã€æ•™è‚²å¦ã€æ–‡å¦ã€åކå²å¦ã€ç†å¦ã€å·¥å¦ã€å†œå¦ã€åŒ»å¦ã€ % 军事å¦ã€ç®¡ç†å¦ã€è‰ºæœ¯å¦ % & Doctor of Philosophy \\ % \midrule % 妿œ¯åž‹ç¡•士 & åŒä¸Š % & 哲å¦ã€æ–‡å¦ã€åކå²å¦ã€æ³•å¦ã€æ•™è‚²å¦ã€è‰ºæœ¯å¦é—¨ç±» % 填写“Master of Arts“,其它填写“Master of Science†\\ % \midrule % ä¸“ä¸šåž‹ç ”ç©¶ç”Ÿå¦ä½ & 专业å¦ä½çš„å称,例如:教育åšå£«ã€å·¥ç¨‹ç¡•士 % & 专业å¦ä½çš„å称,例如:Doctor of Education, Master of Engineering \\ % \midrule % 本科生 & - & - \\ % \bottomrule % \end{tabular} % \end{table} % % \begin{latex} % \thusetup{ % degree-category = {å·¥å¦ç¡•士}, % degree-category* = {Master of Science}, % } % \end{latex} % % \subsubsection{院系åç§°} % 院系å称。 % \begin{latex} % \thusetup{ % department = {计算机科å¦ä¸ŽæŠ€æœ¯ç³»}, % } % \end{latex} % % \subsubsection{å¦ç§‘åç§°} % % \begin{itemize} % \item ç ”ç©¶ç”Ÿå¦æœ¯åž‹å¦ä½ï¼šèŽ·å¾—ä¸€çº§å¦ç§‘授æƒçš„å¦ç§‘填写一级å¦ç§‘å称,其他填写二级å¦ç§‘åç§°ï¼› % \item 本科生:专业å称,第二å¦ä½è®ºæ–‡éœ€æ ‡æ³¨â€œï¼ˆç¬¬äºŒå¦ä½ï¼‰â€ã€‚ % \end{itemize} % % \begin{latex} % \thusetup{ % discipline = {å¦ç§‘åç§°}, % discipline* = {Discipline in English}, % } % \end{latex} % % \subsubsection{专业领域} % % ä»…ç”¨äºŽç ”ç©¶ç”Ÿä¸“ä¸šåž‹å¦ä½ã€‚ % % \begin{itemize} % \item 设置专业领域的专业å¦ä½ç±»åˆ«ï¼Œå¡«å†™ç›¸åº”专业领域åç§°ï¼› % \item 2019 级åŠä¹‹å‰å·¥ç¨‹ç¡•士å¦ä½è®ºæ–‡ï¼Œåœ¨ \option{engineering-field} 填写相应工程领域åç§°ï¼› % \item 其他专业å¦ä½ç±»åˆ«çš„å¦ä½è®ºæ–‡æ— 需æ¤ä¿¡æ¯ã€‚ % \end{itemize} % % \begin{latex} % \thusetup{ % professional-field = {计算机技术}, % professional-field* = {Computer Technology}, % } % \end{latex} % % % \subsubsection{作者姓å} % 作者姓å。 % \begin{latex} % \thusetup{ % author = {䏿–‡å§“å}, % author* = {Name in Pinyin}, % } % \end{latex} % % \subsubsection{å¦å·} % å¦å·ï¼Œä»…用于本ã€ç ”论文开题报告。 % \begin{latex} % \thusetup{ % student-id = {20000310000}, % } % \end{latex} % % \subsubsection{导师} % \myentry{导师} % 导师的姓å与èŒç§°ä¹‹é—´ä»¥â€œ,â€ï¼ˆè¥¿æ–‡é€—å·ï¼ŒU+002C)隔开,下åŒã€‚ % \begin{latex} % \thusetup{ % supervisor = {导师姓å, 教授}, % supervisor* = {Professor Supervisor Name}, % } % \end{latex} % % \myentry{副导师} % 本科生的辅导教师,硕士的副指导教师。 % \begin{latex} % \thusetup{ % associate-supervisor = {副导师姓å, 副教授}, % associate-supervisor* = {Professor Assoc-Supervisor Name}, % } % \end{latex} % % \myentry{è”åˆæŒ‡å¯¼æ•™å¸ˆ} % \begin{latex} % \thusetup{ % co-supervisor = {è”åˆæŒ‡å¯¼æ•™å¸ˆå§“å, 教授}, % co-supervisor* = {Professor Join-Supervisor Name}, % } % \end{latex} % % \subsubsection{æˆæ–‡æ—¥æœŸ} % é»˜è®¤ä¸ºå½“å‰æ—¥æœŸï¼Œä¹Ÿå¯ä»¥è‡ªå·±æŒ‡å®šï¼Œè¦æ±‚使用 ISO æ ¼å¼ã€‚ % \begin{latex} % \thusetup{ % date = {2011-07-01}, % } % \end{latex} % % \subsubsection{密级} % \label{sec:setup-secret} % 定义秘密级别和年é™ã€‚如果定义了 \option{secret-level}, % 则会在å°é¢ä¸Šæ˜¾ç¤ºå¯¹åº”密级,并且从声明页ä¸å°†ç§»é™¤â€œä¸åŒ…嫿¶‰åŠå›½å®¶ç§˜å¯†çš„内容â€å—æ ·ï¼ˆ2025å¹´3æœˆå†™ä½œæŒ‡å—æ›´æ–°æœ‰æ¤è¦æ±‚)。 % \begin{latex} % \thusetup{ % secret-year = 10, % secret-level = {秘密}, % } % \end{latex} % % \subsubsection{åšå£«åŽä¸“ç”¨å‚æ•°} % \begin{latex} % \thusetup{ % clc = {分类å·}, % udc = {udc}, % id = {id}, % discipline-level-1 = {æµåŠ¨ç«™ï¼ˆä¸€çº§å¦ç§‘)åç§°}, % discipline-level-2 = {专业(二级å¦ç§‘)åç§°}, % start-date = {2011-07-01}, % ç ”ç©¶å·¥ä½œèµ·å§‹æ—¶é—´ % } % \end{latex} % % \myentry{生æˆå°é¢} % \DescribeMacro{\maketitle} % 生æˆå°é¢ï¼Œä¸å«æŽˆæƒè¯´æ˜Žï¼Œæ‘˜è¦ç‰ã€‚ % \begin{latex} % % 直接生æˆå°é¢ % \maketitle % \end{latex} % % \subsection{å‰è¨€éƒ¨åˆ†} % % \subsubsection{指导å°ç»„ã€å…¬å¼€è¯„阅人和ç”辩委员会åå•} % \myentry{ç”辩委员会åå•} % \DescribeEnv{committee} % å¦ä½è®ºæ–‡æŒ‡å¯¼å°ç»„ã€å…¬å¼€è¯„阅人和ç”辩委员会åå•å¯ä»¥ç”± \env{committee} 环境生æˆï¼Œ % å…¶ä¸çš„å¯é€‰å‚æ•°å¯ä»¥ä½¿ç”¨ \option{name} æ ¹æ®æ˜¯æœ‰æ— 指导å°ç»„设置åˆé€‚çš„æ ‡é¢˜ï¼Œæ¯”å¦‚ % \begin{latex} % \begin{committee}[name={å¦ä½è®ºæ–‡å…¬å¼€è¯„阅人和ç”辩委员会åå•}] % ... % \end{committee} % \end{latex} % % ç”辩委员会åå•ä¸çš„è¡¨æ ¼ä½¿ç”¨ LaTeX 生æˆå¯èƒ½ç•¥éº»çƒ¦ï¼Œä¹Ÿå¯ä»¥å¯¼å…¥ Word 版转æˆçš„ PDF 文件, % \begin{latex} % \begin{committee}[file=figures/committee.pdf] % \end{committee} % \end{latex} % % \subsubsection{授æƒè¯´æ˜Ž} % \myentry{授æƒè¯´æ˜Ž} % \DescribeMacro{\copyrightpage} % å¯é€‰å‚数为扫æå¾—到的 PDF 文件å,例如: % \begin{latex} % % å°†ç¾å—扫æåŽæŽˆæƒæ–‡ä»¶ scan-copyright.pdf 替æ¢åŽŸå§‹é¡µé¢ % \copyrightpage[file=scan-copyright.pdf] % \end{latex} % % \subsubsection{摘è¦} % \myentry{æ‘˜è¦æ£æ–‡} % \DescribeEnv{abstract} % \DescribeEnv{abstract*} % % 摘è¦ç›´æŽ¥åœ¨æ£æ–‡ä¸ä½¿ç”¨ \env{abstract}ã€\env{abstract*} 环境生æˆã€‚ % % \begin{latex} % \begin{abstract} % 摘è¦è¯·å†™åœ¨è¿™é‡Œ... % \end{abstract} % % \begin{abstract*} % Here comes the abstract in English... % \end{abstract*} % \end{latex} % % \myentry{关键è¯} % 关键è¯éœ€è¦ä½¿ç”¨ \cs{thusetup} 进行设置。关键è¯ä¹‹é—´ä»¥\emph{西文逗å·}隔开,模æ¿ä¼š % è‡ªåŠ¨è°ƒæ•´ä¸ºè¦æ±‚çš„æ ¼å¼ã€‚关键è¯çš„设置åªè¦åœ¨æ‘˜è¦çŽ¯å¢ƒç»“æŸå‰å³å¯ã€‚ % \begin{latex} % \thusetup{ % keywords = {å…³é”®è¯ 1, å…³é”®è¯ 2}, % keywords* = {keyword 1, keyword 2}, % } % \end{latex} % % \subsubsection{目录和索引表} % ç›®å½•ã€æ’图ã€è¡¨æ ¼ã€å…¬å¼å’Œç®—法ç‰ç´¢å¼•命令分别如下,将其æ’入到期望的ä½ç½®å³å¯ï¼ˆå¸¦*的命令表 % 示对应的索引表ä¸ä¼šå‡ºçŽ°åœ¨ç›®å½•ä¸ï¼‰ï¼š % % \DescribeMacro{\tableofcontents} % \DescribeMacro{\listoffigures} % \DescribeMacro{\listoftables} % \DescribeMacro{\listoffiguresandtables} % \DescribeMacro{\listofalgorithms} % \begin{longtable}{ll} % \toprule % {\heiti 用途} & {\heiti 命令} \\\midrule % 目录 & \cs{tableofcontents} \\ % æ’å›¾æ¸…å• & \cs{listoffigures} \\ % é™„è¡¨æ¸…å• & \cs{listoftables} \\ % æ’å›¾å’Œé™„è¡¨æ¸…å• & \cs{listoffiguresandtables} \\ % ç®—æ³•æ¸…å• & \cs{listofalgorithms} \\ % \bottomrule % \end{longtable} % % \LaTeX{} é»˜è®¤æ”¯æŒæ’å›¾å’Œè¡¨æ ¼ç´¢å¼•ï¼Œæ˜¯é€šè¿‡ \cs{caption} 命令完æˆçš„ï¼Œå› æ¤å®ƒä»¬å¿…须出 % 现在浮动环境ä¸ï¼Œå¦åˆ™ä¸è¢«è®¡æ•°ã€‚ % % å¦‚æžœä¸æƒ³è®©æŸä¸ªè¡¨æ ¼æˆ–者图片出现在索引里é¢ï¼Œé‚£ä¹ˆè¯·ä½¿ç”¨å‘½ä»¤ \cs{caption*},这 % 个命令ä¸ä¼šç»™è¡¨æ ¼ç¼–å·ï¼Œä¹Ÿå°±æ˜¯å‡ºæ¥çš„åªæœ‰æ ‡é¢˜æ–‡å—而没有“表~xxâ€ï¼Œâ€œå›¾~xxâ€ï¼Œå¦åˆ™ % 索引里é¢åºå·ä¸è¿žç»å°±æ˜¾å¾—ä¸ä¼¦ä¸ç±»ï¼Œè¿™ä¹Ÿæ˜¯ \LaTeX{} 里星å·å‘½ä»¤é»˜è®¤çš„规则。 % % 如果的确想让其编å·ï¼Œä½†åˆä¸æƒ³å‡ºçŽ°åœ¨ç´¢å¼•ä¸çš„è¯ï¼Œç›®å‰æ¨¡æ¿æš‚䏿”¯æŒã€‚ % % \subsubsection{符å·å¯¹ç…§è¡¨} % \DescribeEnv{denotation} % 主è¦ç¬¦å·è¡¨çŽ¯å¢ƒï¼Œè·Ÿ \env{description} 类似,使用方法å‚è§ç¤ºä¾‹æ–‡ä»¶ã€‚带一个å¯é€‰å‚数, % ç”¨æ¥æŒ‡å®šç¬¦å·åˆ—的宽度(默认为 2.5cm)。 % \begin{latex} % \begin{denotation} % \item[E] èƒ½é‡ % \item[m] è´¨é‡ % \item[c] 光速 % \end{denotation} % \end{latex} % % 如果默认符å·åˆ—çš„å®½åº¦ä¸æ»¡æ„,å¯ä»¥é€šè¿‡å‚æ•°æ¥è°ƒæ•´ï¼š % \begin{latex} % \begin{denotation}[1.5cm] % 设置为 1.5cm % \item[E] èƒ½é‡ % \item[m] è´¨é‡ % \item[c] 光速 % \end{denotation} % \end{latex} % % 符å·å¯¹ç…§è¡¨çš„å¦å¤–ä¸€ç§æ–¹æ³•是调用 \pkg{nomencl} å®åŒ…,需è¦åœ¨å¯¼è¨€åŒºè®¾ç½®ï¼š % % \begin{latex} % \usepackage{nomencl} % \makenomenclature % \end{latex} % % ç„¶åŽåœ¨æ£æ–‡ä¸ä»»æ„ä½ç½®ä½¿ç”¨ \cs{nomenclature} å£°æ˜Žéœ€è¦æ·»åŠ åˆ°ä¸»è¦ç¬¦å·è¡¨çš„符å·ï¼š % % \begin{latex} % \nomenclature{$m$}{The mass of one angel} % \end{latex} % % 最åŽä½¿ç”¨ \cs{printnomenclature} 命令生æˆç¬¦å·è¡¨ã€‚æ›´è¯¦ç»†çš„ä½¿ç”¨æ–¹æ³•å‚ % è§ \pkg{nomencl} å®åŒ…的文档。 % % \subsection{æ£æ–‡éƒ¨åˆ†} % \subsubsection{图表编å·} % \DescribeOption{figure-number-separator} % \DescribeOption{table-number-separator} % \DescribeOption{equation-number-separator} % ç ”ç©¶ç”Ÿè¦æ±‚图表和公å¼çš„ç¼–å·ä½¿ç”¨â€œ.â€æˆ–“-â€è¿žæŽ¥ï¼Œæ¨¡æ¿é»˜è®¤ä½¿ç”¨å¥ç‚¹â€œ.â€ã€‚ % 用户也å¯ä»¥é€šè¿‡ \option{figure-number-separator}ã€\option{table-number-separator} % ç‰é€‰é¡¹åˆ†åˆ«è®¾ç½®ï¼š % \begin{latex} % \thusetup{ % figure-number-separator = {-}, % table-number-separator = {-}, % equation-number-separator = {-}, % } % \end{latex} % \DescribeOption{number-separator} % 也å¯ä»¥ä½¿ç”¨ \option{number-separator} åŒæ—¶è®¾ç½®å›¾ã€è¡¨ã€å…¬å¼ä¸‰é¡¹çš„ç¼–å·è¿žæŽ¥ç¬¦ï¼Œ % 比如 |\thusetup{number-separator = -}|。 % % æœ¬ç§‘ç”Ÿè¦æ±‚“附录ä¸å›¾ã€è¡¨ã€å…¬å¼çš„ç¼–å·ï¼Œåº”ä¸Žæ£æ–‡ä¸çš„ç¼–å·åŒºåˆ†å¼€â€ï¼Œ % 应ç†è§£ä¸ºå°†ç« å·æ”¹å˜ä¸ºé™„å½•å¯¹åº”çš„å¤§å†™å—æ¯ç¼–å·ï¼Œè¿žæŽ¥ç¬¦ä¸å®œæ”¹å˜ã€‚ % % \subsubsection{æ•°å¦ç¬¦å·} % \label{sec:math} % 䏿–‡è®ºæ–‡çš„æ•°å¦ç¬¦å·é»˜è®¤éµå¾ª GB/T 3102.11—1993《物ç†ç§‘å¦å’ŒæŠ€æœ¯ä¸ä½¿ç”¨çš„æ•°å¦ç¬¦å·ã€‹ % \footnote{原 GB 3102.11—1993,自 2017 å¹´ 3 月 23 æ—¥èµ·ï¼Œè¯¥æ ‡å‡†è½¬ä¸ºæŽ¨èæ€§æ ‡å‡†ã€‚}。 % è¯¥æ ‡å‡†å‚照采纳 ISO 31-11:1992 \footnote{ç›®å‰å·²æ›´æ–°ä¸º ISO 80000-2:2019。}, % 但是与 \TeX{} 默认的美国数å¦å¦ä¼šï¼ˆAMSï¼‰çš„ä¹ æƒ¯æœ‰è®¸å¤šå·®å¼‚ã€‚ % 这将在下文详细论述。 % % \DescribeOption{math-style} % 用户å¯ä»¥é€šè¿‡è®¾ç½® \option{math-style} 选择数å¦ç¬¦å·æ ·å¼ï¼ˆå¯é€‰ï¼š % \option{GB}ï¼ˆä¸æ–‡é»˜è®¤ï¼‰ï¼Œ\option{TeX}(英文默认)和 \option{ISO}),比如: % \begin{latex} % \thusetup{ % math-style = TeX, % } % \end{latex} % % 用户也å¯ä»¥é€é¡¹ä¿®æ”¹æ•°å¦æ ·å¼ï¼ŒåŒ…括: % \newcommand\dif{\mathop{}\!\mathrm{d}} % \begin{enumerate} % \item \DescribeOption{uppercase-greek} % å¤§å†™å¸Œè…Šå—æ¯çš„æ£/斜体,å¯é€‰ï¼š\option{italic}ã€\option{upright}。 % 有é™å¢žé‡ç¬¦å· $\increment x$ 固定使用æ£ä½“,推è使用 \cs{increment} 表示。 % \item \DescribeOption{less-than-or-equal} % å°äºŽç‰äºŽå·å’Œå¤§äºŽç‰äºŽå·çš„å—形,å¯é€‰ï¼š\option{slanted}ã€\option{horizontal}。 % 这将控制 \cs{le}ã€\cs{ge}ã€\cs{leq} å’Œ \cs{geq} çš„ç¬¦å· % 是“$\leqslant$ã€$\geqslant$â€è¿˜æ˜¯â€œ$\leq$ã€$\geq$â€ã€‚ % \item \DescribeOption{integral} % 积分å·çš„æ£/斜体,å¯é€‰ï¼š\option{upright}ã€\option{slanted}。 % 该选项需è¦å—体的支æŒï¼Œç›®å‰ä»…é™ \option{xits}ã€\option{stix}〠% \option{libertinus} å’Œ \option{newcm}。å‚考下文关于数å¦å—体的选择。 % \item \DescribeOption{integral-limits} % 积分å·ä¸Šä¸‹é™çš„ä½ç½®ï¼Œå¯é€‰ï¼š\option{true}(在上下)ã€\option{false}(在å³ä¾§ï¼‰ã€‚ % 这个设置åªå½±å“行间公å¼ï¼Œè¡Œå†…å…¬å¼ç»Ÿä¸€å±…å³ä¾§ï¼Œä¸å—å½±å“。 % \item \DescribeOption{partial} % å微分符å·çš„æ£/斜体,å¯é€‰ï¼š\option{upright}ã€\option{italic}。 % \item \DescribeOption{math-ellipsis} % çœç•¥å· \cs{dots} çš„æ ·å¼ï¼Œå¯é€‰ï¼š\option{centered}ï¼ˆæŒ‰ç…§ä¸æ–‡çš„ä¹ æƒ¯å›ºå®šå±…ä¸ï¼‰ã€ % \option{lower} å’Œ \option{AMS}(å–决于å‰åŽç¬¦å·çš„ä½ç½®ï¼‰ã€‚ % å…¶ä»–çš„çœç•¥å·å‘½ä»¤å¦‚ \cs{ldots}ã€\cs{cdots} 则ä¸å—å½±å“。 % \item \DescribeOption{real-part} % 实部 \cs{Re} 和虚部 \cs{Im} çš„å—体,å¯é€‰ï¼š\option{roman} å’Œ \option{fraktur}。 % \end{enumerate} % % 如果数å¦ç¬¦å·é€‰æ‹©å›½æ ‡æ ·å¼ |math-style = GB|,相当于设置了 % \begin{latex} % \thusetup{ % uppercase-greek = italic, % less-than-or-equal = slanted, % integral = upright, % integral-limits = false, % partial = upright, % math-ellipsis = centered, % real-part = roman, % } % \end{latex} % % å¦å¤–ï¼Œå›½æ ‡çš„æ•°å¦æ ·å¼ä¸Ž AMS è¿˜æœ‰ä¸€äº›å·®å¼‚æ— æ³•ç»Ÿä¸€è®¾ç½®ï¼Œéœ€è¦ç”¨æˆ·åœ¨å†™ä½œæ—¶è¿›è¡Œå¤„ç†ã€‚ % \begin{enumerate} % \item æ•°å¦å¸¸æ•°å’Œç‰¹æ®Šå‡½æ•°å用æ£ä½“,如 $\uppi = 3.14\dots$ï¼›$\symup{i}^2 = -1$ï¼› % $\symup{e} = \lim_{n \to \infty} \left( 1 + \frac{1}{n} \right)^n$。 % \item 微分å·ä½¿ç”¨æ£ä½“,比如 $\dif y / \dif x$。 % \item å‘é‡ã€çŸ©é˜µå’Œå¼ é‡ç”¨ç²—斜体(\cs{symbf}),如 $\symbf{x}$ã€$\symbf{\Sigma}$ã€$\symbfsf{T}$。 % \end{enumerate} % % éœ€è¦æ³¨æ„,上述关于数å¦ç¬¦å·é£Žæ ¼çš„设置在设置数å¦å—体(\option{math-font})时æ‰ä¼šç”Ÿæ•ˆã€‚ % % \DescribeOption{math-font} % 模æ¿ä½¿ç”¨é»˜è®¤ä½¿ç”¨ XITS Math 作为数å¦å—体。 % 用户也å¯ä»¥ä½¿ç”¨ \option{math-font} 选项切æ¢å…¶ä»–æ•°å¦å—体,å¯é€‰ï¼š % \option{stix}(STIX Two Math)〠% \option{libertinus}(Libertinus Math)〠% \option{newcm}(New Computer Modern Math)〠% \option{lm}(Latin Modern Math)。 % % å…¶ä¸ \option{lm} å’Œ \option{newcm} çš„å—形比较æé… TeX 原生的 Computer Modern å—体, % 但与《指å—ã€‹è¦æ±‚的西文å—体 Times New Roman 并䏿é…。 % å¯èƒ½ä¼šé€ æˆæ£æ–‡å’Œå…¬å¼ä¸çš„æ•°å—å—体ä¸ä¸€è‡´ï¼Œéœ€è¦è°¨æ…Žä½¿ç”¨ã€‚ % % 以上å—体都是 OpenType æ ¼å¼çš„å—体,需è¦é…åˆ % \href{http://mirrors.ctan.org/macros/unicodetex/latex/unicode-math/unicode-math.pdf}{\pkg{unicode-math}} % å®åŒ…使用。 % 全部数å¦ç¬¦å·çš„命令å‚考 % \href{http://mirrors.ctan.org/macros/unicodetex/latex/unicode-math/unimath-symbols.pdf}{\pkg{unimath-symbols}}。 % 注æ„,\pkg{unicode-math} å®åŒ…与 \pkg{amsfonts}ã€\pkg{amssymb}ã€\pkg{bm}〠% \pkg{mathrsfs}ã€\pkg{upgreek} ç‰å®åŒ…\emph{ä¸}兼容。 % 模æ¿ä½œäº†å¤„ç†ï¼Œç”¨æˆ·å¯ä»¥ç›´æŽ¥ä½¿ç”¨è¿™äº›å®åŒ…的命令,如 \cs{bm}ã€\cs{mathscr}〠% \cs{uppi}。 % % å¦å¤–,模æ¿è¿˜ä¸º |math-font| æä¾›äº†ä¼ 统的 Type 1 å—体 \option{newtx}。 % 该选项会调用 \pkg{newtxmath} å®åŒ…。 % 但是,如果西文å—体已ç»ä½¿ç”¨äº† OpenType çš„ Times New Roman, % 混用 Type 1 å—体å¯èƒ½ä¼šå¯¼è‡´é—®é¢˜ï¼Œå°¤å…¶æ˜¯ä½¿ç”¨ \pkg{siunitx} å®åŒ…时。 % 该选项还处于测试阶段,需è¦è°¨æ…Žä½¿ç”¨ã€‚ % % \DescribeOption{eqn-paren-style} % æŽ§åˆ¶ä¸æ–‡è®ºæ–‡ä¸ï¼Œæ•°å¦å…¬å¼ç¼–å·ä¸¤è¾¹çš„æ‹¬å·æ ·å¼ã€‚å¯é€‰é¡¹åŒ…括:\option{full}(全角,默认) / \option{half}(åŠè§’)。 % 在è¯è¨€ä¸ºè‹±è¯ï¼ˆ|language = english|)时,æ¤é€‰é¡¹æ— 效,仅使用åŠè§’括å·ã€‚ % % \subsubsection{定ç†çŽ¯å¢ƒ} % \label{sec:theorem} % \thuthesis{} 定义了常用的数å¦çŽ¯å¢ƒï¼š % % \begin{center} % \begin{tabular}{*{7}{l}}\toprule % axiom & theorem & definition & proposition & lemma & conjecture &\\ % å…¬ç† & å®šç† & 定义 & 命题 & å¼•ç† & 猜想 &\\\midrule % proof & corollary & example & exercise & assumption & remark & problem \\ % è¯æ˜Ž & 推论 & 例å& ç»ƒä¹ & å‡è®¾ & 注释 & 问题\\\bottomrule % \end{tabular} % \end{center} % % 比如: % \begin{latex} % \begin{definition} % é“åƒä¹˜ä¹‹å›½ï¼Œæ•¬äº‹è€Œä¿¡ï¼ŒèŠ‚ç”¨è€Œçˆ±äººï¼Œä½¿æ°‘ä»¥æ—¶ã€‚ % \end{definition} % \end{latex} % 产生(自动编å·ï¼‰ï¼š % \medskip % % \noindent\framebox[\linewidth][l]{{\heiti 定义~1.1~~~} % {é“åƒä¹˜ä¹‹å›½ï¼Œæ•¬äº‹è€Œä¿¡ï¼ŒèŠ‚ç”¨è€Œçˆ±äººï¼Œä½¿æ°‘ä»¥æ—¶ã€‚}} % % \smallskip % 列举出æ¥çš„æ•°å¦çŽ¯å¢ƒæ¯•ç«Ÿæ˜¯æœ‰é™çš„,如果想用\emph{胡说}è¿™æ ·çš„æ•°å¦çŽ¯å¢ƒï¼Œé‚£ä¹ˆå¯ä»¥å®šä¹‰ï¼š % \begin{latex} % \newtheorem{nonsense}{胡说}[chapter] % \end{latex} % % ç„¶åŽè¿™æ ·ä½¿ç”¨ï¼š % \begin{latex} % \begin{nonsense} % 契丹æ¦å£«è¦æ¥ä¸åŽŸå¤ºæ¦æž—秘笈。—— æ…•å®¹åš % \end{nonsense} % \end{latex} % % 产生(自动编å·ï¼‰ï¼š % % \medskip % \noindent\framebox[\linewidth][l]{{\heiti 胡说~1.1~~~} % {契丹æ¦å£«è¦æ¥ä¸åŽŸå¤ºæ¦æž—秘笈。—— 慕容åš}} % % \subsubsection{列表环境} % \DescribeEnv{itemize} % \DescribeEnv{enumerate} % \DescribeEnv{description} % 为了适åˆä¸æ–‡ä¹ 惯,模æ¿å°†è¿™ä¸‰ä¸ªå¸¸ç”¨çš„列表环境用 \pkg{enumitem} 进行了纵å‘é—´è·åŽ‹ % ç¼©ã€‚ä¸€æ–¹é¢æ¸…除了多余空间,å¦ä¸€æ–¹é¢ç”¨æˆ·å¯ä»¥è‡ªå·±æŒ‡å®šåˆ—è¡¨çŽ¯å¢ƒçš„æ ·å¼ï¼ˆå¦‚æ ‡ç¾ç¬¦å·ï¼Œ % 缩进ç‰ï¼‰ã€‚细节请å‚看 \pkg{enumitem} 文档,æ¤å¤„ä¸å†èµ˜è¿°ã€‚ % % \subsubsection{引用方å¼} % \label{sec:citestyle} % æ¨¡æ¿æ”¯æŒä¸¤ç§å¼•用方å¼ï¼Œåˆ†åˆ«ä¸ºç†å·¥ç§‘常用的“顺åºç¼–ç 制â€å’Œæ–‡ç§‘常用 % 的“著者-出版年制â€ã€‚ % 使用者在设置å‚è€ƒæ–‡çŒ®è¡¨çš„æ ¼å¼ % (\cs{bibliographystyle},è§ç¬¬~\ref{sec:bibliography} 节)时, % æ£æ–‡ä¸å¼•ç”¨æ–‡çŒ®çš„æ ‡æ³¨ä¼šè‡ªåŠ¨è°ƒæ•´ä¸ºå¯¹åº”çš„æ ¼å¼ã€‚ % % å¦‚æžœéœ€è¦æ ‡å‡ºå¼•文的页ç ,å¯ä»¥å†™åœ¨ \cs{cite} çš„å¯é€‰å‚æ•°ä¸ï¼Œå¦‚ % |\cite[42]{knuth84}|。 % % \paragraph{顺åºç¼–ç 制} % \DescribeMacro{\inlinecite} % 顺åºç¼–ç 制的å‚è€ƒæ–‡çŒ®å¼•ç”¨åˆ†ä¸ºä¸¤ç§æ¨¡å¼ï¼š % \begin{enumerate} % \item ä¸Šæ ‡æ¨¡å¼ï¼Œæ¯”å¦‚â€œåŒæ ·çš„工作有很多\textsuperscript{[1-2]}……â€ï¼› % \item æ£æ–‡æ¨¡å¼ï¼Œæ¯”如“文 [3] ä¸è¯¦ç»†è¯´æ˜Žäº†â€¦â€¦â€ã€‚ % \end{enumerate} % % \DescribeOption{cite-style} % 用户å¯ä»¥å°†å¼•ç”¨æ ‡æ³¨çš„æ ¼å¼è®¾ä¸ºæ£æ–‡æ¨¡å¼ï¼š % \begin{latex} % \thusetup{ % cite-style = inline, % } % \end{latex} % 也å¯ä»¥ä½¿ç”¨ \cs{inlinecite}\marg{key} ä¸´æ—¶ä½¿ç”¨æ£æ–‡æ¨¡å¼çš„å¼•ç”¨æ ‡æ³¨ã€‚ % % \paragraph{著者-出版年制} % 著者-出版年制的å‚è€ƒæ–‡çŒ®å¼•ç”¨æœ‰ä¸¤ç§æ¨¡å¼ï¼š % \begin{enumerate} % \item \cs{citep}:著者与年份å‡åœ¨æ‹¬å·ä¸ï¼Œæ¯”如“(Zhang, 2008)â€ï¼Œ % åŒé»˜è®¤çš„ \cs{cite} 命令; % \item \cs{citet}:著者姓åä½œä¸ºæ£æ–‡çš„一部分,比如“Zhang (2008)â€ï¼› % \end{enumerate} % % å¦å¤–,\pkg{natbib} 还æä¾›äº†å…¶ä»–方便引用的命令, % 比如 \cs{citeauthor}ã€\cs{citeyear} ç‰ï¼Œ % 更多细节å‚考 \pkg{natbib} 的文档。 % % \subsection{其他部分} % % \subsubsection{å‚考文献} % \label{sec:bibliography} % % å‚考文献通常å¯ä»¥ä½¿ç”¨ \hologo{BibTeX} 或 biblatex 生æˆã€‚ % \hologo{BibTeX} 是 LaTeX 处ç†å‚è€ƒæ–‡çŒ®çš„ä¼ ç»Ÿçš„æ–¹å¼ï¼Œ % 需è¦åœ¨ä½¿ç”¨ \cs{bibliographystyle}\marg{style} é€‰æ‹©æ ·å¼ % 并用 \cs{bibliography} 设置 \file{.bib} 的路径。 % ç„¶åŽä½¿ç”¨ \texttt{bibtex} 对 \file{.aux} 文件进行编译得到 \file{.bbl} 文件。 % å…¶ä¸çš„å‚考文献表内容会在åŽç»ç¼–译时替æ¢åˆ° \cs{bibliography} çš„ä½ç½®ã€‚ % Biblatex 是较新的方å¼ï¼Œéœ€è¦åœ¨è½½å…¥å®åŒ…时通过 \option{style} é€‰æ‹©æ ·å¼ï¼Œ % 在导言区使用 \cs{addbibresource} 声明数æ®åº“的路径, % 并在输出å‚考文献表的ä½ç½®ä½¿ç”¨ \cs{printbibliography} 命令, % 而且编译å‚è€ƒæ–‡çŒ®çš„å‘½ä»¤éœ€è¦æ¢ä¸º biber。 % è¿™ä¸¤ç§æ–¹å¼å„有优缺点,比如 BibTeX æ— æ³•å¯¹ä¸æ–‡æŒ‰ç…§æ‹¼éŸ³æŽ’åºï¼Œä¸€äº›æ ·å¼æ›´æ–°ä¸å¤ŸåŠæ—¶ï¼› % Biblatex è¿è¡Œè¾ƒç¼“æ…¢ï¼Œæ— æ³•å¯¹å¤šä¸ªå‚考文献表使用ä¸åŒæ ·å¼ã€‚ % ç”¨æˆ·éœ€è¦æ ¹æ®å®žé™…选择åˆé€‚的方å¼ã€‚ % % ç ”ç©¶ç”Ÿè¦æ±‚çš„å‚è€ƒæ–‡çŒ®æ ¼å¼åŸºäºŽã€Šä¿¡æ¯ä¸Žæ–‡çŒ® å‚考文献著录规则》(GB/T 7714—2015) % è¿›è¡Œäº†å°‘é‡æ”¹ç¼–(如英文姓åä¸ä½¿ç”¨å…¨å¤§å†™ï¼‰ï¼Œ % å¯ä»¥é€‰æ‹©â€œé¡ºåºç¼–ç 制â€å’Œâ€œè‘—者-出版年制â€ã€‚ % 如果使用 BibTeX 的方å¼ï¼Œéœ€è¦åœ¨å¯¼è¨€åŒºè½½å…¥ \pkg{natbib} å®åŒ…å¹¶é€‰æ‹©æ ·å¼ï¼Œå¦‚: % \begin{latex} % % 顺åºç¼–ç 制 % \usepackage[sort]{natbib} % \bibliographystyle{thuthesis-numeric} % \end{latex} % 或 % \begin{latex} % % 著者-出版年制 % \usepackage{natbib} % \bibliographystyle{thuthesis-author-year} % \end{latex} % å…¶ä¸çš„ \option{sort} 选项会将åŒä¸€å¤„引用的多个文献编å·ä¸¥æ ¼æŒ‰ç…§é¡ºåºæŽ’åºï¼Œ % 这并éžã€Šå†™ä½œæŒ‡å—ã€‹è¦æ±‚,但是推è使用。 % è¿™é‡Œè°ƒç”¨çš„æ ·å¼ç”± \href{http://ctan.org/pkg/gbt7714}{\pkg{gbt7714}} çš„ \file{.bst} 进行了少é‡ä¿®æ”¹ã€‚ % % å‚考文献表采用“著者-出版年â€åˆ¶ç»„织时,å„篇文献首先按文ç§é›†ä¸ï¼Œç„¶åŽæŒ‰è‘—è€…å— % é¡ºå’Œå‡ºç‰ˆå¹´æŽ’åˆ—ï¼›ä¸æ–‡æ–‡çŒ®å¯ä»¥æŒ‰è‘—è€…æ±‰è¯æ‹¼éŸ³å—顺排列,也å¯ä»¥æŒ‰è‘—者的笔画笔顺排列。 % 但由于 \hologo{BibTeX} åŠŸèƒ½çš„å±€é™æ€§ï¼Œæ— 法自动获å–著者姓å的拼音或笔画笔顺进行æ£ç¡®æŽ’åºã€‚ % 一ç§è§£å†³æ–¹æ³•是在 \file{.bib} æ•°æ®åº“çš„ä¸æ–‡æ–‡çŒ®çš„ |key| 域手动录入著者姓å的拼音, % 这比较适åˆä¸æ–‡æ–‡çŒ®æ•°é‡è¾ƒå°‘的情况,如: % \begin{latex} % @book{capital, % author = {é©¬å…‹æ€ and æ©æ ¼æ–¯}, % key = {ma3 ke4 si1 & en1 ge2 si1}, % ... % } % \end{latex} % å¦ä¸€ç§æ–¹å¼æ˜¯ä½¿ç”¨ biblatex,应在导言区设置 % \begin{latex} % \usepackage[style=thuthesis-author-year]{biblatex} % \addbibresource{ref/refs.bib} % \end{latex} % è¿™é‡Œçš„æ ·å¼ç”± \href{https://ctan.org/pkg/biblatex-gb7714-2015}{biblatex-gb7714-2015} è¿›è¡Œäº†å°‘é‡æ”¹ç¼–, % 一些é¢å¤–用法å¯ä»¥å‚考该å®åŒ…的文档。 % æ³¨æ„ \pkg{biblatex} è·Ÿ \pkg{natbib} ä¸å…¼å®¹ï¼Œ % 而且 \cs{addbibresource} 必须在导言区设置。 % 输出å‚考文献表应使用 \cs{printbibliography} 命令。 % % æœ¬ç§‘ç”Ÿè¦æ±‚çš„ä¸æ–‡å‚è€ƒæ–‡çŒ®æ ¼å¼ä¸¥æ ¼éµä»Ž GB/T 7714—2015, % 附录ä¸è°ƒç ”报告的英文å‚考文献å¯ä»¥è‡ªè¡Œé€‰æ‹©åˆé€‚çš„é£Žæ ¼ã€‚ % 但是 biblatex 䏿”¯æŒåŒä¸€æ–‡æ¡£ä¸ä½¿ç”¨ä¸åŒçš„æ ¼å¼ï¼Œ % 所以åªèƒ½ä½¿ç”¨ \hologo{BibTeX}: % \begin{latex} % % 本科生å‚è€ƒæ–‡çŒ®çš„è‘—å½•æ ¼å¼ % \usepackage[sort]{natbib} % \bibliographystyle{thuthesis-bachelor} % \end{latex} % è°ƒç ”æŠ¥å‘Šçš„å‚考文献需è¦é€‰æ‹©ä¸Ž \pkg{natbib} å…¼å®¹çš„æ ·å¼ã€‚ % % æœ¬ç§‘ç”Ÿå¤–æ–‡ç³»è¦æ±‚使用 APA 或 MLA。 % APA çš„ BibTeX æ ·å¼ç”± \pkg{apacite} å®åŒ…æä¾›ï¼Œéœ€è¦åœ¨å¯¼è¨€åŒºè°ƒç”¨ï¼š % \begin{latex} % \usepackage[natbibapa]{apacite} % \bibliographystyle{apacite} % \end{latex} % å…¶ä¸ \option{natbibapa} 会调用 \pkg{natbib} æ¥å¤„ç†å¼•用, % 这也是å®åŒ…推è的用法。 % 注æ„ç›®å‰çš„ \pkg{apacite} åªæ”¯æŒåˆ° APA 第 6 版。 % 更推èä½¿ç”¨å·²ç»æ›´æ–°åˆ° APA 第 7 版的 \pkg{biblatex-apa}: % \begin{latex} % \usepackage[style=apa]{biblatex} % \addbibresource{refs-apa.bib} % \end{latex} % 注æ„,如果å‚考文献ä¸å¼•ç”¨äº†ä¸æ–‡æ–‡çŒ®çš„è¯ï¼Œè¿™ä¸¤ç§æ–¹æ³•都ä¸èƒ½æ£ç¡®è°ƒæ•´æ ¼å¼ï¼Œ % éœ€è¦æ‰‹åŠ¨è¿›è¡Œä¿®æ”¹ \file{.bbl} 文件的内容, % 这时 BibTeX 比 biblatex 更简å•些。 % % BibTeX 没有用于 MLA çš„æ ·å¼ï¼Œæ‰€ä»¥å¯¹äºŽ MLA åªèƒ½ä½¿ç”¨ biblatex: % \begin{latex} % \usepackage[style=mla-new]{biblatex} % \addbibresource{refs-apa.bib} % \end{latex} % 注æ„这里 \option{mla-new} 对应于 MLA 第 8 ç‰ˆçš„æ ¼å¼ï¼Œ % \option{mla} 是第 7 版的。 % % \subsubsection{致谢} % % \DescribeEnv{acknowledgements} % æŠŠè‡´è°¢åšæˆä¸€ä¸ªçŽ¯å¢ƒæ›´å¥½ä¸€äº›ï¼Œç›´æŽ¥å¾€é‡Œé¢å†™æ„Ÿè°¢çš„è¯å°±å¯ä»¥å•¦ã€‚ % % \begin{latex} % \begin{acknowledgements} % … % 还è¦ç‰¹åˆ«æ„Ÿè°¢ \thuthesis{} 节çœäº†è®ºæ–‡æŽ’ç‰ˆæ—¶é—´ï¼ % \end{acknowledgements} % \end{latex} % % \subsubsection{声明} % \DescribeMacro{\statement} % 直接使用 \cs{statement} 命令å¯ä»¥ç¼–译生æˆå£°æ˜Žé¡µã€‚ % 在打å°ã€ç¾å—ã€æ‰«æåŽå¦‚æžœè¦æ’入扫æé¡µï¼Œå°†å¯é€‰å‚æ•° \option{file} 指定为 PDF 文件å,例如: % \begin{latex} % \statement[file=scan-statement.pdf] % \end{latex} % % ç”±äºŽæ£æ–‡ç¯‡å¹…å¯èƒ½æœ‰å˜åŒ–,以åŠç”µå版和打å°ç‰ˆå’Œæœ‰ç©ºç™½é¡µçš„差别,声明的页ç å¯èƒ½ä¸åŒã€‚ % 所以为了é¿å…é‡å¤æ‰“å°æ‰«æï¼Œç¼–译生æˆå£°æ˜Žé¡µæ—¶é»˜è®¤\textsf{ä¸å«}页眉页脚, % æ’入扫æé¡µæ—¶é»˜è®¤åŠ ä¸Šé¡µçœ‰é¡µè„šã€‚ % % 用户也å¯ä»¥é€šè¿‡ \option{page-style} 傿•°æ‰‹åŠ¨æŽ§åˆ¶å£°æ˜Žé¡µæ˜¯å¦å«é¡µçœ‰é¡µè„šã€‚ % 例如编译生æˆå£°æ˜Žé¡µæ—¶è¦æ±‚包å«é¡µçœ‰é¡µè„šï¼š % \begin{latex} % \statement[page-style=plain] % \end{latex} % æ’入扫æé¡µæ—¶ä¸åŠ é¡µçœ‰é¡µè„šï¼š % \begin{latex} % \statement[file=scan-statement.pdf, page-style=plain] % \end{latex} % % \subsubsection{附录} % % 附录由 \cs{appendix} 命令开å¯ï¼Œç„¶åŽåƒæ£æ–‡ä¸€æ ·ä¹¦å†™ã€‚ % \begin{latex} % \appendix % \chapter{...} % ... % \end{latex} % % \DescribeOption{toc-depth} % ä¸€äº›é™¢ç³»è¦æ±‚目录ä¸åªå‡ºçŽ°é™„å½•çš„ç« æ ‡é¢˜ï¼Œä¸å‡ºçް附录ä¸çš„一级ã€äºŒçº§èŠ‚æ ‡é¢˜ã€‚æ¨¡æ¿é»˜è®¤ % 如æ¤è®¾ç½®ï¼Œç”¨æˆ·ä¹Ÿå¯ä»¥åœ¨ \cs{appendix} å‘½ä»¤åŽæ‰‹åŠ¨æŽ§åˆ¶åŠ å…¥ç›®å½•çš„æ ‡é¢˜å±‚çº§ï¼Œå…¶ % ä¸ |0| è¡¨ç¤ºç« æ ‡é¢˜ï¼Œ|1| è¡¨ç¤ºä¸€çº§èŠ‚æ ‡é¢˜ï¼Œä»¥æ¤ç±»æŽ¨ã€‚ % % \begin{latex} % \appendix % \thusetup{toc-depth=0} % 目录åªå‡ºçŽ°ç« æ ‡é¢˜ % \end{latex} % % \DescribeEnv{survey} % \DescribeEnv{translation} % æœ¬ç§‘ç”Ÿã€Šå†™ä½œè§„èŒƒã€‹è¦æ±‚附录 A ä¸ºå¤–æ–‡èµ„æ–™çš„è°ƒç ”é˜…è¯»æŠ¥å‘Šæˆ–ä¹¦é¢ç¿»è¯‘,二者择一。 % è°ƒç ”æŠ¥å‘Šï¼ˆæˆ–ä¹¦é¢ç¿»è¯‘)的题目和å‚è€ƒæ–‡çŒ®æ˜¯ç‹¬ç«‹äºŽè®ºæ–‡çš„ï¼Œç›¸å½“ä¸€ç¯‡ç‹¬ç«‹çš„å°æ–‡ç« , % 所以模æ¿ç›¸åº”定义了 \env{survey} å’Œ \env{translation}。在这两个环境内部å¯ä»¥ % åƒè®ºæ–‡æ£æ–‡ä¸€æ ·ä½¿ç”¨æ ‡é¢˜å’Œå‚考文献的命令,但ä¸ä¼šå½±å“外部。 % 但是需è¦ä½¿ç”¨ \hologo{BibTeX} 对 \file{*-survey.aux} 或者 % \file{*-translation.aux} 进行编译,æ‰èƒ½ç”Ÿæˆå‚è€ƒæ–‡çŒ®ï¼ˆè§ \ref{sec:xelatex} 节)。 % 如果使用 \texttt{latexmk}ï¼Œåˆ™æ— éœ€é¢å¤–处ç†ã€‚ % % åŒæ—¶ï¼Œé˜…读报告默认切æ¢ä¹¦å†™è¯è¨€ä¸ºè‹±è¯ï¼Œä¹¦é¢ç¿»è¯‘默认切æ¢ä¸ºä¸æ–‡ã€‚ % 如有需è¦ï¼Œå¯ä»¥é€šè¿‡ \cs{thusetup} çš„ \option{language} 傿•°å†æ¬¡æ›´æ”¹ã€‚ % % \begin{latex} % \begin{survey} % \title{...} % \maketitle % \tableofcontents % ... \cite{...} % 报告内容åŠå…¶å¼•用 % \bibliographystyle{...} % \bibliography{...} % 报告的å‚考文献 % \end{survey} % \end{latex} % % “书é¢ç¿»è¯‘对应的原文索引â€åŒºåˆ«äºŽè¯‘文的å‚考文献,需è¦ä½¿ç”¨ \env{translation-index} % 环境,å¦å¤–需è¦ä½¿ç”¨ \hologo{BibTeX} 编译 \file{*-index.aux},\texttt{latexmk} åŒæ ·ä¼šè‡ªåЍ处ç†ã€‚ % % \begin{latex} % \begin{translation} % ... \cite{...} % 书é¢ç¿»è¯‘内容åŠå…¶å¼•用 % \bibliographystyle{...} % \bibliography{...} % 书é¢ç¿»è¯‘çš„å‚考文献 % \begin{translation-index} % \nocite{...} % \bibliographystyle{...} % \bibliography{...} % 书é¢ç¿»è¯‘对应的原文索引 % \end{translation-index} % \end{translation} % \end{latex} % % \subsubsection{个人简历ã€åœ¨å¦æœŸé—´å®Œæˆçš„ç›¸å…³å¦æœ¯æˆæžœ} % \DescribeEnv{resume} % ç ”ç©¶ç”Ÿçš„æ ‡é¢˜ä¸ºâ€œä¸ªäººç®€åŽ†ã€åœ¨å¦æœŸé—´å®Œæˆçš„ç›¸å…³å¦æœ¯æˆæžœâ€ï¼Œ % æœ¬ç§‘ç”Ÿçš„æ ‡é¢˜ä¸ºâ€œåœ¨å¦æœŸé—´å‚åŠ è¯¾é¢˜çš„ç ”ç©¶æˆæžœâ€æˆ–“PUBLICATIONSâ€ã€‚ % % \DescribeEnv{achievements} % æœ¬ç« çš„å…¶ä»–æ ‡é¢˜åŒæ ·ä½¿ç”¨ \cs{section*},\cs{subsection*} ç‰å‘½ä»¤ç”Ÿæˆï¼Œ % ç ”ç©¶æˆæžœç”¨ \env{achievements} 环境罗列。 % % \begin{latex} % \begin{resume} % \section*{个人简历} % …… % % \section*{åœ¨å¦æœŸé—´å®Œæˆçš„ç›¸å…³å¦æœ¯æˆæžœ} % % \subsection*{妿œ¯è®ºæ–‡} % \begin{achievements} % \item …… % \item …… % \end{achievements} % % \subsection*{专利} % \begin{achievements} % \item …… % \item …… % \end{achievements} % \end{resume} % \end{latex} % % \subsubsection{综åˆè®ºæ–‡è®ç»ƒè®°å½•表} % \DescribeMacro{\record} % 本科生需è¦åœ¨æœ€åŽé™„上综åˆè®ºæ–‡è®ç»ƒè®°å½•表,å¯ä»¥ç”¨å¦‚下命令: % % \begin{latex} % \record{file=scan-record.pdf} % \end{latex} % % % \subsection{书脊} % \DescribeMacro{\spine} % \DescribeOption{spine-font} % \DescribeOption{spine-title} % \DescribeOption{spine-author} % 生æˆè£…è®¢çš„ä¹¦è„Šï¼Œä¸ºç«–æŽ’æ ¼å¼ã€‚å†…å®¹é»˜è®¤ä½¿ç”¨è®ºæ–‡çš„æ ‡é¢˜å’Œä½œè€…ã€‚ % å¯ä»¥è®¾ç½® \option{spine-title} å’Œ \option{spine-author} æ¥ä¿®æ”¹ã€‚ % % åšå£«è®ºæ–‡çš„书脊å—体默认为三å·å—,硕士的为å°ä¸‰å·ã€‚ % æœ¬ç§‘ç”Ÿè¦æ±‚å—体大尿 ¹æ®è®ºæ–‡çš„薄厚而定,å¯ä»¥ä½¿ç”¨ \option{spine-font} 设置å—å·ã€‚ % \begin{latex} % \thusetup{ % spine-font = {\zihao{3}}, % spine-title = {ä¹¦è„Šçš„æ ‡é¢˜}, % spine-author = {书脊的作者姓å}, % } % \end{latex} % % 由于 Fandol å—体在 \XeTeX ä¸çš„竖排å˜åœ¨ä¸€äº›é—®é¢˜ï¼Œå¦‚果书脊使用的å—体是 Fandol 仿宋 %(\option{fontset} 为 \texttt{fandol} 或者 \texttt{ubuntu} 时),则它\textbf{必须作为独立文件生æˆ}, % å¦åˆ™å¯èƒ½å¯¼è‡´åŽç»å†…å®¹æ–‡å—æ–¹å‘错乱的问题。 % % \DescribeOption{include-spine} % ä¸€äº›é™¢ç³»è¦æ±‚把书脊æ’进论文里,需è¦åœ¨ \cs{maketitle} å‰è®¾ç½®ã€‚ % \begin{latex} % \thusetup{ % include-spine = true, % } % \end{latex} % 打开æ¤é€‰é¡¹åŽï¼Œä¹¦è„Šä¼šå‡ºçŽ°åœ¨ä¸æ–‡å°é¢åŽé¢çš„第一个空白页。如果有英文å°é¢ï¼Œåˆ™åœ¨è‹±æ–‡å°é¢ä¹‹å‰ã€‚ % 如果需è¦ä¹¦è„Šå‡ºçŽ°åœ¨å…¶ä»–ä½ç½®ï¼Œè¯·æ‰‹å·¥ä½¿ç”¨ \cs{spine} 生æˆï¼Œä¸è¦ä½¿ç”¨æ¤é€‰é¡¹ã€‚ % % \section{致谢} % \label{sec:thanks} % 感谢这些年æ¥ä¸€ç›´é™ªä¼´ \thuthesis{} æˆé•¿çš„æ–°è€åŒå¦ï¼ % % 欢迎å„ä½åˆ° \href{http://github.com/tuna/thuthesis/}{\thuthesis{} GitHub 主页}è´¡çŒ®ï¼ % % % ^^A redefine some commands in markdown package to remove annoying section numbering % \renewcommand{\markdownRendererHeadingTwo}[1]{\subsection*{#1}} % \renewcommand{\markdownRendererHeadingThree}[1]{\subsubsection*{#1}} % ^^A render changelog from markdown % \markdownInput{CHANGELOG.md} % % % \StopEventually{\PrintIndex} % \clearpage % % \section{实现细节} % % \subsection{基本信æ¯} % \begin{macrocode} %<cls>\NeedsTeXFormat{LaTeX2e}[2017/04/15] %<cls>\ProvidesClass{thuthesis} %<cls>[2025/03/28 7.6.0 Tsinghua University Thesis Template] % \end{macrocode} % % 报错 % \begin{macrocode} \newcommand\thu@error[1]{% \ClassError{thuthesis}{#1}{}% } \newcommand\thu@warning[1]{% \ClassWarning{thuthesis}{#1}% } \newcommand\thu@debug[1]{% \typeout{Package thuthesis Info: #1}% } \newcommand\thu@patch@error[1]{% \thu@error{Failed to patch command \protect#1}% } \newcommand\thu@deprecate[2]{% \def\thu@@tmp{#2}% \thu@warning{% The #1 is deprecated% \ifx\thu@@tmp\@empty\else . Use #2 instead% \fi }% } % \end{macrocode} % % 检查 \LaTeXe{} kernel 版本 % \begin{macrocode} \@ifl@t@r\fmtversion{2017/04/15}{}{ \thu@error{% TeX Live 2017 or later version is required to compile this document% } } % \end{macrocode} % % æ£€æŸ¥ç¼–è¯‘å¼•æ“Žï¼Œè¦æ±‚使用 \XeLaTeX。 % \begin{macrocode} \RequirePackage{iftex} \ifXeTeX\else \ifLuaTeX\else \thu@error{XeLaTeX or LuaLaTeX is required to compile this document} \fi \fi % \end{macrocode} % % 载入用于测试的é…置。 % \begin{macrocode} \InputIfFileExists{thuthesis-pdf-test-config.tex}{}{ \InputIfFileExists{thuthesis-log-test-config.tex}{}{} } % \end{macrocode} % % \subsection{定义选项} % \label{sec:defoption} % å®šä¹‰è®ºæ–‡ç±»åž‹ä»¥åŠæ˜¯å¦æ¶‰å¯† % \begin{macrocode} %<*cls> \hyphenation{Thu-Thesis} \def\thuthesis{ThuThesis} \def\version{7.6.0} \RequirePackage{kvdefinekeys} \RequirePackage{kvsetkeys} \RequirePackage{kvoptions} \SetupKeyvalOptions{ family=thu, prefix=thu@, setkeys=\kvsetkeys} % \end{macrocode} % % \begin{macro}{\thusetup} % æä¾›ä¸€ä¸ª \cs{thusetup} å‘½ä»¤æ”¯æŒ \emph{key-value} çš„æ–¹å¼æ¥è®¾ç½®ã€‚ % \begin{macrocode} \let\thu@setup@hook\@empty \newcommand\thusetup[1]{% \let\thu@setup@hook\@empty \kvsetkeys{thu}{#1}% \thu@setup@hook } % \end{macrocode} % \end{macro} % % åŒæ—¶ç”¨ \emph{key-value} çš„æ–¹å¼æ¥å®šä¹‰è¿™äº›æŽ¥å£ï¼š % \begin{latex} % \thu@define@key{ % <key> = { % name = <name>, % choices = { % <choice1>, % <choice2>, % }, % default = <default>, % }, % } % \end{latex} % % å…¶ä¸ |choices| 设置å…许使用的值,默认为第一个(或者 \meta{default}); % \meta{code} 是相应的内容被设置时执行的代ç 。 % % \begin{macrocode} \newcommand\thu@define@key[1]{% \kvsetkeys{thu@key}{#1}% } \kv@set@family@handler{thu@key}{% % \end{macrocode} % % \cs{thusetup} 会将 \meta{value} å˜åˆ° \cs{thu@\meta{key}}, % 但是å®çš„åå—åŒ…å« â€œ-â€ è¿™æ ·çš„ç‰¹æ®Šå—ç¬¦æ—¶ä¸æ–¹ä¾¿ç›´æŽ¥è°ƒç”¨ï¼Œæ¯”如 |key = math-style|, % 这时å¯ä»¥ç”¨ |name| 设置 \meta{key} 的别称,比如 |key = math@style|, % è¿™æ ·å°±å¯ä»¥é€šè¿‡ \cs{thu@math@style} æ¥å¼•用。 % |default| 是定义该 \meta{key} 时默认的值,缺çœä¸ºç©ºã€‚ % % \begin{macrocode} \@namedef{thu@#1@@name}{#1}% \def\thu@@default{}% \def\thu@@choices{}% \kv@define@key{thu@value}{name}{% \@namedef{thu@#1@@name}{##1}% }% % \end{macrocode} % % ç”±äºŽåœ¨å®šä¹‰æŽ¥å£æ—¶ï¼Œ\cs{thu@\meta{key}@@code} ä¸ä¸€å®šæœ‰å®šä¹‰ï¼Œ % 而且在文档类/å®åŒ…ä¸è¿˜æœ‰å¯èƒ½å¯¹è¯¥ |key| çš„ |code| è¿›è¡Œæ·»åŠ ã€‚ % 所以 \cs{thu@\meta{key}@@code} 会检查如果在定义文档类/å®åŒ…时则推迟执行,å¦åˆ™ç«‹å³æ‰§è¡Œã€‚ % % \begin{macrocode} \@namedef{thu@#1@@check}{}% \@namedef{thu@#1@@code}{}% % \end{macrocode} % % ä¿å˜ä¸‹ |choices = {}| 定义的内容,在定义 \cs{thu@\meta{name}} åŽå†æ‰§è¡Œã€‚ % % \begin{macrocode} \kv@define@key{thu@value}{choices}{% \def\thu@@choices{##1}% \@namedef{thu@#1@@reset}{}% % \end{macrocode} % % \cs{thu@\meta{key}@check} 检查 |value| æ˜¯å¦æœ‰æ•ˆï¼Œ % 并设置 \cs{ifthu@\meta{name}@\meta{value}}。 % % \begin{macrocode} \@namedef{thu@#1@@check}{% \@ifundefined{% ifthu@\@nameuse{thu@#1@@name}@\@nameuse{thu@\@nameuse{thu@#1@@name}}% }{% \thu@error{Invalid value "#1 = \@nameuse{thu@\@nameuse{thu@#1@@name}}"}% }% \@nameuse{thu@#1@@reset}% \@nameuse{thu@\@nameuse{thu@#1@@name}@\@nameuse{thu@\@nameuse{thu@#1@@name}}true}% }% }% \kv@define@key{thu@value}{default}{% \def\thu@@default{##1}% }% \kvsetkeys{thu@value}{#2}% \@namedef{thu@\@nameuse{thu@#1@@name}}{}% % \end{macrocode} % % 第一个 \meta{choice} 设为 \meta{default}, % 并且对æ¯ä¸ª \meta{choice} 定义 \cs{ifthu@\meta{name}@\meta{choice}}。 % % \begin{macrocode} \kv@set@family@handler{thu@choice}{% \ifx\thu@@default\@empty \def\thu@@default{##1}% \fi \expandafter\newif\csname ifthu@\@nameuse{thu@#1@@name}@##1\endcsname \expandafter\g@addto@macro\csname thu@#1@@reset\endcsname{% \@nameuse{thu@\@nameuse{thu@#1@@name}@##1false}% }% }% \kvsetkeys@expandafter{thu@choice}{\thu@@choices}% % \end{macrocode} % % å°† \meta{default} 赋值到 \cs{thu@\meta{name}},如果éžç©ºåˆ™æ‰§è¡Œç›¸åº”的代ç 。 % % \begin{macrocode} \expandafter\let\csname thu@\@nameuse{thu@#1@@name}\endcsname\thu@@default \expandafter\ifx\csname thu@\@nameuse{thu@#1@@name}\endcsname\@empty\else \@nameuse{thu@#1@@check}% \fi % \end{macrocode} % % 定义 \cs{thusetup} 接å£ã€‚ % % \begin{macrocode} \kv@define@key{thu}{#1}{% \@namedef{thu@\@nameuse{thu@#1@@name}}{##1}% \@nameuse{thu@#1@@check}% \@nameuse{thu@#1@@code}% }% } % \end{macrocode} % % 定义接å£å‘ |key| æ·»åŠ |code|: % % \begin{macrocode} \newcommand\thu@option@hook[2]{% \expandafter\g@addto@macro\csname thu@#1@@code\endcsname{#2}% } % \end{macrocode} % % \begin{macrocode} \thu@define@key{ thesis-type = { name = thesis@type, choices = { thesis, proposal, }, default = thesis, }, degree = { choices = { bachelor, master, doctor, postdoc, }, default = doctor, }, degree-type = { choices = { academic, professional, }, name = degree@type, }, % \end{macrocode} % % 论文的主è¦è¯è¨€ã€‚ % \begin{macrocode} main-language = { name = main@language, choices = { chinese, english, }, }, % \end{macrocode} % % 用于设置局部è¯è¨€ã€‚ % \begin{macrocode} language = { choices = { chinese, english, }, }, % \end{macrocode} % % å—体 % \begin{macrocode} system = { choices = { auto, mac, unix, windows, }, default = auto, }, fontset = { choices = { auto, windows, mac, ubuntu, fandol, none, }, default = auto, }, font = { choices = { auto, times, termes, stix, xits, libertinus, newcm, lm, newtx, none, }, default = auto, }, cjk-font = { name = cjk@font, choices = { auto, windows, windows-local, mac, mac-word, noto, fandol, none, }, default = auto, }, windows-font-dir = { name = windows@font@dir, default = {.}, }, math-font = { name = math@font, choices = { auto, stix, xits, libertinus, newcm, lm, newtx, none, }, default = auto, }, math-style = { name = math@style, choices = { GB, ISO, TeX, }, }, uppercase-greek = { name = uppercase@greek, choices = { italic, upright, }, }, less-than-or-equal = { name = leq, choices = { slanted, horizontal, }, }, integral = { choices = { upright, slanted, }, }, integral-limits = { name = integral@limits, choices = { true, false, }, }, partial = { choices = { upright, italic, }, }, math-ellipsis = { name = math@ellipsis, choices = { centered, lower, AMS, }, }, real-part = { name = real@part, choices = { roman, fraktur, }, }, % \end{macrocode} % % 选择打å°ç‰ˆè¿˜æ˜¯ç”¨äºŽä¸Šä¼ 的电å版。 % \begin{macrocode} output = { choices = { print, electronic, }, default = print, }, % \end{macrocode} % % æ•°å¦å…¬å¼ç¼–å·çš„æ‹¬å·ä½¿ç”¨å…¨è§’还是åŠè§’。 % \begin{macrocode} eqn-paren-style = { name = eqn@paren@style, choices = { full, half, } }, } \newif\ifthu@degree@graduate \newcommand\thu@set@graduate{% \thu@degree@graduatefalse \ifthu@degree@doctor \thu@degree@graduatetrue \fi \ifthu@degree@master \thu@degree@graduatetrue \fi } \thu@set@graduate \thu@option@hook{degree}{% \thu@set@graduate } % \end{macrocode} % % 设置默认 \option{openany}。 % \begin{macrocode} \DeclareBoolOption[false]{openright} \DeclareComplementaryOption{openany}{openright} % \end{macrocode} % % \option{raggedbottom} 选项(默认打开) % \begin{macrocode} \DeclareBoolOption[true]{raggedbottom} % \end{macrocode} % % å°†é€‰é¡¹ä¼ é€’ç»™ \pkg{ctexbook}。 % \begin{macrocode} \DeclareDefaultOption{\PassOptionsToClass{\CurrentOption}{ctexbook}} % \end{macrocode} % % è§£æžç”¨æˆ·ä¼ 递过æ¥çš„é€‰é¡¹ï¼Œå¹¶åŠ è½½ \pkg{ctexbook}。 % \begin{macrocode} \ProcessKeyvalOptions* % \end{macrocode} % % 设置默认 \option{openany}。 % \begin{macrocode} \ifthu@openright \PassOptionsToClass{openright}{book} \else \PassOptionsToClass{openany}{book} \fi % \end{macrocode} % % \pkg{unicode-math} å’Œ \pkg{newtx} 都ä¸éœ€è¦ \pkg{fontspec} 设置数å¦å—体。 % \begin{macrocode} \PassOptionsToPackage{no-math}{fontspec} % \end{macrocode} % % 使用 \pkg{ctexbook} 类,优于调用 \pkg{ctex} å®åŒ…。 % \begin{macrocode} \LoadClass[a4paper,UTF8,zihao=-4,scheme=plain,fontset=none]{ctexbook}[2017/04/01] % \end{macrocode} % % % \subsection{装载å®åŒ…} % \label{sec:loadpackage} % % 引用的å®åŒ…和相应的定义。 % \begin{macrocode} \RequirePackage{etoolbox} \RequirePackage{filehook} \RequirePackage{xparse} % \end{macrocode} % % \begin{macrocode} \RequirePackage{geometry}% % \end{macrocode} % % 利用 \pkg{fancyhdr} 设置页眉页脚。 % \begin{macrocode} \RequirePackage{fancyhdr} % \end{macrocode} % % \begin{macrocode} \RequirePackage{titletoc} % \end{macrocode} % % 利用 \pkg{notoccite} é¿å…目录ä¸å¼•ç”¨ç¼–å·æ··ä¹±ã€‚ % \begin{macrocode} \RequirePackage{notoccite} % \end{macrocode} % % \AmSTeX\ å®åŒ…ï¼Œç”¨æ¥æŽ’å‡ºæ›´åŠ æ¼‚äº®çš„å…¬å¼ã€‚ % \begin{macrocode} \RequirePackage{amsmath} % \end{macrocode} % % 图形支æŒå®åŒ…。 % \begin{macrocode} \RequirePackage{graphicx} % \end{macrocode} % % 并排图形。\pkg{subfigure}ã€\pkg{subfig} å·²ç»ä¸å†æŽ¨è,用新的 \pkg{subcaption}。 % æµ®åŠ¨å›¾å½¢å’Œè¡¨æ ¼æ ‡é¢˜æ ·å¼ã€‚\pkg{caption2} å·²ç»ä¸æŽ¨è使用,采用新的 \pkg{caption}。 % \begin{macrocode} \RequirePackage[labelformat=simple]{subcaption} % \end{macrocode} % % \pkg{pdfpages} å®åŒ…便于我们æ’入扫æåŽçš„æŽˆæƒè¯´æ˜Žå’Œå£°æ˜Žé¡µ PDF 文档。 % % 由于 \pkg{pdfpages} è·Ÿ \pkg{TikZ} çš„ \pkg{external} 库冲çªï¼Œ % 需è¦åœ¨å¯¼è¨€åŒºçš„结尾进行处ç†ï¼Œè§ % \href{https://github.com/tuna/thuthesis/issues/693}{\#693}。 % \begin{macrocode} \RequirePackage{pdfpages} \includepdfset{fitpaper=true} \AtEndPreamble{ \ifx\tikzifexternalizing\@undefined\else \tikzifexternalizing{ \renewcommand*\includepdf[2][]{} }{} \fi } % \end{macrocode} % % 更好的列表环境。 % \begin{macrocode} \RequirePackage[shortlabels]{enumitem} \RequirePackage{environ} % \end{macrocode} % % ç¦æ¢ \LaTeX{} 自动调整多余的页é¢åº•éƒ¨ç©ºç™½ï¼Œå¹¶ä¿æŒè„𿳍ä»ç„¶åœ¨åº•部。 % 脚注按页编å·ã€‚ % \begin{macrocode} \ifthu@raggedbottom \RequirePackage[bottom,perpage,hang]{footmisc} \raggedbottom \else \RequirePackage[perpage,hang]{footmisc} \fi % \end{macrocode} % % 利用 \pkg{xeCJKfntef} 实现汉å—的下划线和盒å内两段对é½ï¼Œå¹¶å¯ä»¥é¿å… % \cs{makebox}\oarg{width}\oarg{s} å¯èƒ½äº§ç”Ÿçš„ underful boxes。 % \begin{macrocode} \ifXeTeX \RequirePackage{xeCJKfntef} \else \RequirePackage{ulem} \fi % \end{macrocode} % % è¡¨æ ¼æŽ§åˆ¶ % \begin{macrocode} \RequirePackage{array} % \end{macrocode} % % 使用三线表:\cs{toprule},\cs{midrule},\cs{bottomrule}。 % \begin{macrocode} \RequirePackage{booktabs} % \end{macrocode} % % \begin{macrocode} \RequirePackage{url} % \end{macrocode} % % 如果用户在导言区未调用 \pkg{biblatex},则自动调用 \pkg{natbib}。 % \begin{macrocode} \AtEndPreamble{ \@ifpackageloaded{biblatex}{}{ \@ifpackageloaded{apacite}{}{ \RequirePackage{natbib} } } } \AtEndOfPackageFile*{natbib}{ \@ifpackageloaded{apacite}{}{ \RequirePackage{bibunits} } } % \end{macrocode} % % 对冲çªçš„å®åŒ…报错。 % \begin{macrocode} \newcommand\thu@package@conflict[2]{% \AtEndOfPackageFile*{#1}{% \AtBeginOfPackageFile*{#2}{% \thu@error{The "#2" package is incompatible with "#1"}% }% }% } \thu@package@conflict{biblatex}{bibunits} \thu@package@conflict{biblatex}{chapterbib} \thu@package@conflict{biblatex}{cite} \thu@package@conflict{biblatex}{multibib} \thu@package@conflict{biblatex}{natbib} \thu@package@conflict{bibunits}{biblatex} \thu@package@conflict{bibunits}{chapterbib} \thu@package@conflict{bibunits}{multibib} \thu@package@conflict{unicode-math}{amscd} \thu@package@conflict{unicode-math}{amsfonts} \thu@package@conflict{unicode-math}{amssymb} \thu@package@conflict{unicode-math}{bbm} \thu@package@conflict{unicode-math}{bm} \thu@package@conflict{unicode-math}{eucal} \thu@package@conflict{unicode-math}{eufrak} \thu@package@conflict{unicode-math}{mathrsfs} \thu@package@conflict{unicode-math}{newtxmath} \thu@package@conflict{unicode-math}{upgreek} \thu@package@conflict{natbib}{biblatex} \thu@package@conflict{natbib}{cite} \thu@package@conflict{newtxmath}{amsfonts} \thu@package@conflict{newtxmath}{amssymb} \thu@package@conflict{newtxmath}{unicode-math} \thu@package@conflict{newtxmath}{upgreek} % \end{macrocode} % % \pkg{amsthm} 需è¦åœ¨ \pkg{newtx} å‰è½½å…¥ï¼Œå‚考 \pkg{newtx} 的文档。 % \begin{macrocode} \AtBeginOfPackageFile*{amsthm}{ \@ifpackageloaded{newtxmath}{ \thu@error{The "amsthm" package should be loaded before setting "newtxmath"} }{} }% % \end{macrocode} % % \subsection{页é¢è®¾ç½®} % \label{sec:layout} % % ç ”ç©¶ç”Ÿã€Šå†™ä½œæŒ‡å—》: % 页边è·ï¼šä¸Šä¸‹å·¦å³å‡ä¸º 3.0 厘米,装订线 0 厘米; % 页眉è·è¾¹ç•Œï¼š2.2 厘米,页脚è·è¾¹ç•Œï¼š2.2 厘米。 % % 本科生《写作规范》: % 页边è·ï¼š3 厘米,装订线:0 厘米。 % 本科生 Word 模æ¿ï¼š % æ— é¡µçœ‰ï¼Œé¡µè„šè·è¾¹ç•Œï¼š1.5 厘米。 % % \pkg{fancyhdr} 的页眉是沿底部对é½çš„,所以åªéœ€è®¾ç½® \cs{headsep}, % \cs{headheight} å¯ä»¥é€‚å½“å¢žåŠ é«˜åº¦å…许多行页眉。 % ç ”ç©¶ç”Ÿï¼š\cs{headsep} = $\SI{3}{cm} - \SI{2.2}{cm} - \SI{10.5}{bp} \times 1.3 % \approx \SI{0.3}{cm}$。 % % \begin{macrocode} \geometry{ paper = a4paper, % 210 * 297mm marginparwidth = 2cm, marginparsep = 0.5cm, } \newcommand\thu@set@geometry{% \ifthu@degree@bachelor \geometry{ margin = 3cm, footskip = 1.5cm, }% \else \geometry{ margin = 3cm, headheight = 2.7cm, headsep = 0.3cm, footskip = 0.8cm, }% \fi } \thu@set@geometry \thu@option@hook{degree}{\thu@set@geometry} \thu@option@hook{output}{\thu@set@geometry} % \end{macrocode} % % % \subsection{è¯è¨€è®¾ç½®} % % 定义 \cs{thu@main@language},当在导言区修改 \option{language} 时, % ä¿å˜ä¸ºè®ºæ–‡çš„主è¦è¯è¨€ï¼› % \cs{thu@reset@main@language} åˆ™ç”¨äºŽæ£æ–‡ä¸æ¢å¤ä¸ºä¸»è¦è¯è¨€ã€‚ % \begin{macrocode} \thusetup{main-language=\thu@language}% \let\thu@main@language\thu@language \thu@option@hook{language}{% \ifx\@begindocumenthook\@undefined\else \thusetup{main-language=\thu@language}% \let\thu@main@language\thu@language \fi } \newcommand\thu@reset@main@language{% \thusetup{language = \thu@main@language}% \let\thu@language\thu@main@language } % \end{macrocode} % % æ ¹æ®è¯è¨€è®¾ç½®å„ç« èŠ‚çš„åç§°ï¼Œåªæœ‰åœ¨å¯¼è¨€åŒºè®¾ç½® \option{degree} å’Œ % \option{language} æ—¶ä¼šä¿®æ”¹ï¼Œè€Œåœ¨æ£æ–‡å±€éƒ¨åˆ‡æ¢è¯è¨€æ—¶åˆ™ä¸å˜ã€‚ % \begin{macrocode} \newcommand\thu@set@chapter@names{% \ifthu@degree@bachelor \def\thu@statement@name{声明}% \else \def\thu@statement@name{声\hspace{1em}明}% \fi \ifthu@main@language@chinese \def\listfigurename{æ’图清å•}% \def\listtablename{附表清å•}% \def\thu@list@figure@table@name{æ’图和附表清å•}% \def\thu@list@algorithm@name{算法清å•}% \def\thu@denotation@name{符å·å’Œç¼©ç•¥è¯è¯´æ˜Ž}% \def\thu@comments@name{指导教师评è¯}% \def\bibname{å‚考文献}% \def\appendixname{附录}% \def\indexname{索引}% \def\thu@resolution@name{ç”辩委员会决议书}% \ifthu@degree@bachelor \def\contentsname{目录}% \def\thu@acknowledgements@name{致谢}% \def\listequationname{å…¬å¼ç´¢å¼•}% \def\thu@resume@name{åœ¨å¦æœŸé—´å‚åŠ è¯¾é¢˜çš„ç ”ç©¶æˆæžœ}% \else \def\listequationname{公弿¸…å•}% \def\thu@acknowledgements@name{致\quad è°¢}% \ifthu@degree@graduate \def\contentsname{ç›®\quad 录}% \def\thu@resume@name{个人简历ã€åœ¨å¦æœŸé—´å®Œæˆçš„ç›¸å…³å¦æœ¯æˆæžœ}% \else % degree = postdoc \def\contentsname{ç›®\qquad 次}% \def\thu@denotation@name{符å·è¡¨}% \def\thu@resume@name{个人简历ã€å‘è¡¨çš„å¦æœ¯è®ºæ–‡ä¸Žç§‘ç ”æˆæžœ}% \fi \fi \else \ifthu@main@language@english \def\thu@comments@name{Comments from Thesis Supervisor}% \def\thu@resolution@name{Resolution of Thesis Defense Committee}% \def\indexname{Index}% \ifthu@degree@bachelor \def\contentsname{CONTENTS}% \def\listfigurename{FIGURES}% \def\listtablename{TABLES}% \def\thu@list@figure@table@name{FIGURES AND TABLES}% \def\thu@list@algorithm@name{ALGORITHMS}% \def\listequationname{EQUATIONS}% \def\thu@denotation@name{ABBREVIATIONS}% \def\bibname{REFERENCES}% \def\appendixname{APPENDIX}% \def\thu@acknowledgements@name{ACKNOWLEDGEMENTS}% \def\thu@resume@name{PUBLICATIONS}% \else \def\contentsname{Table of Contents}% \def\listfigurename{List of Figures}% \def\listtablename{List of Tables}% \def\thu@list@figure@table@name{List of Figures and Tables}% \def\thu@list@algorithm@name{List of Algorithms}% \def\listequationname{List of Equations}% \def\thu@denotation@name{List of Symbols and Acronyms}% \def\bibname{References}% \def\appendixname{Appendix}% \def\thu@acknowledgements@name{Acknowledgements}% \def\thu@resume@name{Resume}% \fi \fi \fi } \thu@set@chapter@names \thu@option@hook{degree}{\thu@set@chapter@names} \thu@option@hook{main-language}{\thu@set@chapter@names} % \end{macrocode} % % 这部分åç§°åœ¨æ£æ–‡ä¸å±€éƒ¨åœ°ä¿®æ”¹è¯è¨€æ—¶ä¼šå‘生å˜åŒ–,比如英文摘è¦ã€ % 本科生附录的阅读报告。 % \begin{macrocode} \newcommand\thu@set@names{% \ifthu@language@chinese \ctexset{ figurename = 图, tablename = 表, }% \def\thu@algorithm@name{算法}% \def\thu@equation@name{å…¬å¼}% \def\thu@assumption@name{å‡è®¾}% \def\thu@definition@name{定义}% \def\thu@proposition@name{命题}% \def\thu@lemma@name{引ç†}% \def\thu@theorem@name{定ç†}% \def\thu@axiom@name{å…¬ç†}% \def\thu@corollary@name{推论}% \def\thu@exercise@name{ç»ƒä¹ }% \def\thu@example@name{例}% \def\thu@remark@name{注释}% \def\thu@problem@name{问题}% \def\thu@conjecture@name{猜想}% \def\thu@proof@name{è¯æ˜Ž}% \def\thu@theorem@separator{:}% \else \ifthu@language@english \ctexset{ figurename = {Figure}, tablename = {Table}, }% \def\thu@algorithm@name{Algorithm}% \def\thu@equation@name{Equation}% \def\thu@assumption@name{Assumption}% \def\thu@definition@name{Definition}% \def\thu@proposition@name{Proposition}% \def\thu@lemma@name{Lemma}% \def\thu@theorem@name{Theorem}% \def\thu@axiom@name{Axiom}% \def\thu@corollary@name{Corollary}% \def\thu@exercise@name{Exercise}% \def\thu@example@name{Example}% \def\thu@remark@name{Remark}% \def\thu@problem@name{Problem}% \def\thu@conjecture@name{Conjecture}% \def\thu@proof@name{Proof}% \def\thu@theorem@separator{: }% \fi \fi } \thu@set@names \thu@option@hook{language}{\thu@set@names} % \end{macrocode} % % 带圈数å—和星å·ä½¿ç”¨ä¸æ–‡å—体。 % \begin{macrocode} \ifLuaTeX % ctex å°†å¸¦åœˆæ•°å— U+2460–U+24FF å½’å…¥å—符范围 3(ALchar),这里改回范围 6(JAchar) \ltjdefcharrange{3}{% "2000-"243F, "2500-"27BF, "2900-"29FF, "2B00-"2BFF} \ltjdefcharrange{6}{% "2460-"24FF, "2E80-"2EFF, "3000-"30FF, "3190-"319F, "31F0-"4DBF, "4E00-"9FFF, "F900-"FAFF, "FE10-"FE1F, "FE30-"FE6F, "FF00-"FFEF, "1B000-"1B16F, "1F100-"1F2FF, "20000-"3FFFF, "E0100-"E01EF} \else \ifXeTeX \xeCJKDeclareCharClass{CJK}{"2460 -> "2473} \xeCJKDeclareCharClass{CJK}{"2605} \fi \fi % \end{macrocode} % % \newcommand\unicodechar[1]{U+#1(\symbol{"#1})} % 由于 Unicode çš„ä¸€äº›æ ‡ç‚¹ç¬¦å·æ˜¯ä¸è¥¿æ–‡æ··ç”¨çš„: % \unicodechar{00B7}〠% \unicodechar{2013}〠% \unicodechar{2014}〠% \unicodechar{2018}〠% \unicodechar{2019}〠% \unicodechar{201C}〠% \unicodechar{201D}〠% \unicodechar{2025}〠% \unicodechar{2026}〠% \unicodechar{2E3A}, % æ‰€ä»¥è¦æ ¹æ®è¯è¨€è®¾ç½®æ£ç¡®çš„å—体。 % \footnote{\url{https://github.com/CTeX-org/ctex-kit/issues/389}} % æ¤å¤–切æ¢è¯è¨€æ—¶ï¼Œæœ‰ä¸€éƒ¨åˆ†å称是需è¦è¢«é‡æ–°å®šä¹‰çš„。 % \begin{macrocode} \newcommand\thu@set@punctuations{% \ifthu@language@chinese \ifLuaTeX \ltjsetparameter{jacharrange={+9}} \else \ifXeTeX \xeCJKDeclareCharClass{FullLeft}{"2018, "201C}% \xeCJKDeclareCharClass{FullRight}{ "00B7, "2019, "201D, "2013, "2014, "2025, "2026, "2E3A, }% \fi \fi \else \ifthu@language@english \ifLuaTeX \ltjsetparameter{jacharrange={-9}} \else \ifXeTeX \xeCJKDeclareCharClass{HalfLeft}{"2018, "201C}% \xeCJKDeclareCharClass{HalfRight}{ "00B7, "2019, "201D, "2013, "2014, "2025, "2026, "2E3A, }% \fi \fi \fi \fi } \thu@set@punctuations \thu@option@hook{language}{\thu@set@punctuations} % \end{macrocode} % % \subsection{å—体} % \label{sec:font} % % \subsubsection{å—å·} % % \begin{macro}{\normalsize} % æ£æ–‡å°å››å·ï¼ˆ12bp)å—,行è·ä¸ºå›ºå®šå€¼ 20 bp。 % å…¶ä»–å—å·çš„è¡Œè·æŒ‰ç…§ç›¸åŒçš„æ¯”例设置。 % % 注æ„é‡å®šä¹‰ \cs{normalsize} 应在 \pkg{unicode-math} çš„ \cs{setmathfont} å‰ã€‚ % % 表达å¼è¡Œçš„行è·ä¸ºå•å€è¡Œè·ï¼Œæ®µå‰ç©º 6 磅,段åŽç©º 6 磅。 % % \cs{small} ç‰å…¶ä»–å‘½ä»¤é€šå¸¸ç”¨äºŽè¡¨æ ¼ç‰çŽ¯å¢ƒä¸ï¼Œè¿™éƒ¨åˆ†è¦æ±‚å•å€è¡Œè·ï¼Œä¸Žæ£æ–‡çš„å—å·-è¡Œè·æ¯”例ä¸åŒï¼Œ % 所以ä¿ç•™é»˜è®¤çš„ 1.2 å€å—å·çš„行è·ï¼Œä½œä¸ºå•å€è¡Œè·åœ¨è‹±æ–‡ï¼ˆ1.15 å€å—å·ï¼‰å’Œä¸æ–‡ï¼ˆ1.3å€å—å·ï¼‰ % ä¸¤ç§æƒ…况的折衷。 % \begin{macrocode} \renewcommand\normalsize{% \@setfontsize\normalsize{12bp}{20bp}% \abovedisplayskip 6bp% \abovedisplayshortskip 6bp% \belowdisplayshortskip 6bp% \belowdisplayskip \abovedisplayskip } \normalsize \ifx\MakeRobust\@undefined \else \MakeRobust\normalsize \fi % \end{macrocode} % \end{macro} % % WORD ä¸çš„å—å·å¯¹åº”该关系如下(1bp = 72.27/72 pt): % \begin{center} % \begin{longtable}{llll} % \toprule % åˆå· & 42bp & 14.82mm & 42.1575pt \\ % å°åˆ & 36bp & 12.70mm & 36.135 pt \\ % ä¸€å· & 26bp & 9.17mm & 26.0975pt \\ % å°ä¸€ & 24bp & 8.47mm & 24.09pt \\ % äºŒå· & 22bp & 7.76mm & 22.0825pt \\ % å°äºŒ & 18bp & 6.35mm & 18.0675pt \\ % ä¸‰å· & 16bp & 5.64mm & 16.06pt \\ % å°ä¸‰ & 15bp & 5.29mm & 15.05625pt \\ % å››å· & 14bp & 4.94mm & 14.0525pt \\ % å°å›› & 12bp & 4.23mm & 12.045pt \\ % äº”å· & 10.5bp & 3.70mm & 10.59375pt \\ % å°äº” & 9bp & 3.18mm & 9.03375pt \\ % å…å· & 7.5bp & 2.56mm & \\ % å°å… & 6.5bp & 2.29mm & \\ % ä¸ƒå· & 5.5bp & 1.94mm & \\ % å…«å· & 5bp & 1.76mm & \\\bottomrule % \end{longtable} % \end{center} % % \begin{macro}{\thu@def@fontsize} % æ ¹æ®ä¹ 惯定义å—å·ã€‚用法: % % \cs{thu@def@fontsize}\marg{å—å·åç§°}\marg{磅数} % % é¿å…了å—å·é€‰æ‹©å’Œè¡Œè·çš„紧耦åˆã€‚所有å—å·å®šä¹‰æ—¶ä¸ºå•å€è¡Œè·ï¼Œå¹¶æä¾›é€‰é¡¹æŒ‡å®šè¡Œè·å€æ•°ã€‚ % \begin{macrocode} \def\thu@def@fontsize#1#2{% \expandafter\newcommand\csname #1\endcsname[1][1.3]{% \fontsize{#2}{##1\dimexpr #2}\selectfont}} % \end{macrocode} % \end{macro} % % 一组å—å·å®šä¹‰ã€‚ % \begin{macrocode} \thu@def@fontsize{chuhao}{42bp} \thu@def@fontsize{xiaochu}{36bp} \thu@def@fontsize{yihao}{26bp} \thu@def@fontsize{xiaoyi}{24bp} \thu@def@fontsize{erhao}{22bp} \thu@def@fontsize{xiaoer}{18bp} \thu@def@fontsize{sanhao}{16bp} \thu@def@fontsize{xiaosan}{15bp} \thu@def@fontsize{sihao}{14bp} \thu@def@fontsize{xiaosi}{12bp} \thu@def@fontsize{wuhao}{10.5bp} \thu@def@fontsize{xiaowu}{9bp} \thu@def@fontsize{liuhao}{7.5bp} \thu@def@fontsize{xiaoliu}{6.5bp} \thu@def@fontsize{qihao}{5.5bp} \thu@def@fontsize{bahao}{5bp} % \end{macrocode} % % 检测系统。 % \begin{macrocode} \ifthu@system@auto \IfFileExists{/System/Library/Fonts/Menlo.ttc}{ \thusetup{system = mac} }{ \IfFileExists{/dev/null}{ \IfFileExists{null:}{ \thusetup{system = windows} }{ \thusetup{system = unix} } }{ \thusetup{system = windows} } } \thu@debug{Detected system: \thu@system} \fi % \end{macrocode} % % 使用 \pkg{fontspec} é…ç½®å—体。 % \begin{macrocode} \newcommand\thu@mac@word@font@dir{% /Applications/Microsoft Word.app/Contents/Resources/DFonts% } \ifthu@fontset@auto \ifthu@system@windows \thusetup{fontset = windows} \else \IfFontExistsTF{SimSun}{ \thusetup{fontset = windows} }{ \IfFileExists{\thu@windows@font@dir/Simsun.ttc}{ \thusetup{fontset = windows, cjk-font = windows-local} }{ \IfFileExists{\thu@mac@word@font@dir/Simsun.ttc}{ \thusetup{fontset = windows, cjk-font = mac-word} }{ \ifthu@system@mac \thusetup{fontset = mac} \else \IfFontExistsTF{Noto Serif CJK SC}{ \thusetup{fontset = ubuntu} }{ \thusetup{fontset = fandol} } \fi } } } \fi \thu@debug{Detected fontset: \thu@fontset} \fi % \end{macrocode} % % \subsubsection{西文å—体} % % 《指å—ã€‹è¦æ±‚西文å—体使用 Times New Roman å’Œ Arial, % 但是在 Linux 下没有这两个å—体,所以使用它们的克隆版 TeX Gyre Termes å’Œ % TeX Gyre Heros。 % \begin{macrocode} \newcommand\thu@set@font{% \@nameuse{thu@set@font@\thu@font}% } \thu@option@hook{font}{\thu@set@font} % \end{macrocode} % % \begin{macrocode} \newcommand\thu@set@font@auto{% \ifthu@font@auto \ifthu@fontset@windows \thusetup{font=times}% \else \ifthu@fontset@mac \thusetup{font=times}% \else \thusetup{font=termes}% \fi \fi \fi } \thu@option@hook{math-font}{\g@addto@macro\thu@setup@hook{\thu@set@font@auto}} \AtBeginOfPackageFile*{siunitx}{\thu@set@font@auto} \AtEndPreamble{\thu@set@font@auto} % \end{macrocode} % % Times New Roman + Arial % \begin{macrocode} \newcommand\thu@set@font@times{% \setmainfont{Times New Roman}% \setsansfont{Arial}% \ifthu@fontset@mac \setmonofont{Menlo}[Scale = MatchLowercase]% \else \setmonofont{Courier New}[Scale = MatchLowercase]% \fi } % \end{macrocode} % % TeX Gyre Termes % \begin{macrocode} \newcommand\thu@set@font@termes{% \setmainfont{texgyretermes}[ Extension = .otf, UprightFont = *-regular, BoldFont = *-bold, ItalicFont = *-italic, BoldItalicFont = *-bolditalic, ]% \thu@set@texgyre@sans@mono } \newcommand\thu@set@texgyre@sans@mono{% \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} % % STIX Two å—体。 % STIX 文件å在 v2.10 2020-12-19 从 % \file{STIX2Text-Regular.otf}ã€\file{STIX2Math.otf} 分别改为 % \file{STIXTwoText-Regular.otf}ã€\file{STIXTwoMath-Regular.otf}。 % \begin{macrocode} \let\thu@font@family@stix\@empty \newcommand\thu@set@stix@names{% \ifx\thu@font@family@stix\@empty \IfFontExistsTF{STIXTwoText-Regular.otf}{% \gdef\thu@font@family@stix{STIXTwoText}% \gdef\thu@font@name@stix@math{STIXTwoMath-Regular}% }{% \gdef\thu@font@family@stix{STIX2Text}% \gdef\thu@font@name@stix@math{STIX2Math}% }% \fi } \newcommand\thu@set@font@stix{% \thu@set@stix@names \setmainfont{\thu@font@family@stix}[ Extension = .otf, UprightFont = *-Regular, BoldFont = *-Bold, ItalicFont = *-Italic, BoldItalicFont = *-BoldItalic, ]% \thu@set@texgyre@sans@mono } % \end{macrocode} % % XITS å—体。 % XITS 的文件å在 v1.109 2018-09-30 % 从 \file{xits-regular.otf}ã€\file{xits-math.otf} 分别改为 % \file{XITS-Regular.otf}ã€\file{XITSMath-Regular.otf}。 % \begin{macrocode} \let\thu@font@family@xits\@empty \newcommand\thu@set@xits@names{% \ifx\thu@font@family@xits\@empty \IfFontExistsTF{XITSMath-Regular.otf}{% \gdef\thu@font@family@xits{XITS}% \gdef\thu@font@style@xits@rm{Regular}% \gdef\thu@font@style@xits@bf{Bold}% \gdef\thu@font@style@xits@it{Italic}% \gdef\thu@font@style@xits@bfit{BoldItalic}% \gdef\thu@font@name@xits@math{XITSMath-Regular}% }{% \gdef\thu@font@family@xits{xits}% \gdef\thu@font@style@xits@rm{regular}% \gdef\thu@font@style@xits@bf{bold}% \gdef\thu@font@style@xits@it{italic}% \gdef\thu@font@style@xits@bfit{bolditalic}% \gdef\thu@font@name@xits@math{xits-math}% }% \fi } \newcommand\thu@set@font@xits{% \thu@set@xits@names \setmainfont{\thu@font@family@xits}[ Extension = .otf, UprightFont = *-\thu@font@style@xits@rm, BoldFont = *-\thu@font@style@xits@bf, ItalicFont = *-\thu@font@style@xits@it, BoldItalicFont = *-\thu@font@style@xits@bfit, ]% \thu@set@texgyre@sans@mono } % \end{macrocode} % % Libertinus å—体。 % Libertinus 的文件å在 v6.7 2019-04-03 从å°å†™æ”¹ä¸ºé©¼å³°å¼ï¼Œ % 在大å°å†™æ•感的平å°ä¸Šéœ€è¦è¿›è¡Œåˆ¤æ–。 % \begin{macrocode} \let\thu@font@family@libertinus\@empty \newcommand\thu@set@libertinus@names{% \ifx\thu@font@family@libertinus\@empty \IfFontExistsTF{LibertinusSerif-Regular.otf}{% \gdef\thu@font@family@libertinus@serif{LibertinusSerif}% \gdef\thu@font@family@libertinus@sans{LibertinusSans}% \gdef\thu@font@name@libertinus@math{LibertinusMath-Regular}% \gdef\thu@font@style@libertinus@rm{Regular}% \gdef\thu@font@style@libertinus@bf{Bold}% \gdef\thu@font@style@libertinus@it{Italic}% \gdef\thu@font@style@libertinus@bfit{BoldItalic}% }{% \gdef\thu@font@family@libertinus@serif{libertinusserif}% \gdef\thu@font@family@libertinus@sans{libertinussans}% \gdef\thu@font@name@libertinus@math{libertinusmath-regular}% \gdef\thu@font@style@libertinus@rm{regular}% \gdef\thu@font@style@libertinus@bf{bold}% \gdef\thu@font@style@libertinus@it{italic}% \gdef\thu@font@style@libertinus@bfit{bolditalic}% }% \fi } \newcommand\thu@set@font@libertinus{% \thu@set@libertinus@names \setmainfont{\thu@font@family@libertinus@serif}[ Extension = .otf, UprightFont = *-\thu@font@style@libertinus@rm, BoldFont = *-\thu@font@style@libertinus@bf, ItalicFont = *-\thu@font@style@libertinus@it, BoldItalicFont = *-\thu@font@style@libertinus@bfit, ]% \setsansfont{\thu@font@family@libertinus@sans}[ Extension = .otf, UprightFont = *-\thu@font@style@libertinus@rm, BoldFont = *-\thu@font@style@libertinus@bf, ItalicFont = *-\thu@font@style@libertinus@it, ]% \setmonofont{lmmonolt10}[ Extension = .otf, UprightFont = *-regular, BoldFont = *-bold, ItalicFont = *-oblique, BoldItalicFont = *-boldoblique, ]% } % \end{macrocode} % % New Computer Modern % \begin{macrocode} \newcommand\thu@set@font@newcm{% \setmainfont{NewCM10}[ Extension = .otf, UprightFont = *-Book, BoldFont = *-Bold, ItalicFont = *-BookItalic, BoldItalicFont = *-BoldItalic, ]% \setsansfont{NewCMSans10}[ Extension = .otf, UprightFont = *-Book, BoldFont = *-Bold, ItalicFont = *-BookOblique, BoldItalicFont = *-BoldOblique, ]% \setmonofont{NewCMMono10}[ Extension = .otf, UprightFont = *-Book, ItalicFont = *-BookItalic, BoldFont = *-Bold, BoldItalicFont = *-BoldOblique, ]% } % \end{macrocode} % % Latin Modern % \begin{macrocode} \newcommand\thu@set@font@lm{% \setmainfont{lmroman10}[ Extension = .otf, UprightFont = *-regular, BoldFont = *-bold, ItalicFont = *-italic, BoldItalicFont = *-bolditalic, ]% \setsansfont{lmsans10}[ Extension = .otf, UprightFont = *-regular, BoldFont = *-bold, ItalicFont = *-oblique, BoldItalicFont = *-boldoblique, ]% \setmonofont{lmmonolt10}[ Extension = .otf, UprightFont = *-regular, BoldFont = *-bold, ItalicFont = *-oblique, BoldItalicFont = *-boldoblique, ]% } % \end{macrocode} % % NewTX % \begin{macrocode} \newcommand\thu@set@font@newtx{% \RequirePackage{newtxtext}% } % \end{macrocode} % % \subsubsection{䏿–‡å—体} % % \begin{macrocode} \ifthu@cjk@font@auto \ifthu@fontset@mac \thusetup{cjk-font = mac} \else \ifthu@fontset@windows \IfFontExistsTF{SimSun}{ \thusetup{cjk-font = windows} }{ \IfFileExists{\thu@windows@font@dir/Simsun.ttc}{ \thusetup{cjk-font = windows-local} }{ \IfFileExists{\thu@mac@word@font@dir/Simsun.ttc}{ \thusetup{cjk-font = mac-word} }{ \thu@error{Cannot find "SimSun" font} } } } \else \ifthu@fontset@ubuntu \thusetup{cjk-font = noto} \else \thusetup{cjk-font = fandol} \fi \fi \fi \thu@debug{Detected CJK font: \thu@cjk@font} \fi % \end{macrocode} % % Windows çš„ä¸æ˜“å—体。 % \begin{macrocode} \newcommand\thu@set@cjk@font@windows{% \setCJKmainfont{SimSun}[ AutoFakeBold = 3, ItalicFont = KaiTi, ]% \setCJKsansfont{SimHei}[AutoFakeBold = 3]% \setCJKmonofont{FangSong}% \setCJKfamilyfont{zhsong}{SimSun}[AutoFakeBold = 3]% \setCJKfamilyfont{zhhei}{SimHei}[AutoFakeBold = 3]% \setCJKfamilyfont{zhkai}{KaiTi}% \setCJKfamilyfont{zhfs}{FangSong}% } % \end{macrocode} % % 使用本地的 Windows å—体文件。 % % Windows çš„ä¸æ˜“楷体和仿宋å—体文件å分别为 \file{Simkai.ttf} å’Œ % \file{Simfang.ttf}ï¼ˆè§ % \url{https://learn.microsoft.com/en-us/typography/fonts/windows_11_font_list}), % 而 macOS 版 Word 对应的å—体å为 \file{Kaiti.ttf} å’Œ \file{Fangsong.ttf}。 % 所以需è¦è¿›è¡Œåˆ¤æ–。 % \begin{macrocode} \@namedef{thu@set@cjk@font@windows-local}{% \IfFileExists{\thu@windows@font@dir/Kaiti.ttf}{ \setCJKmainfont{SimSun}[% Path = \thu@windows@font@dir/, Extension = .ttc, AutoFakeBold = 3, ItalicFont = Kaiti, ItalicFeatures = {Extension = .ttf}, ]% \setCJKmonofont{Fangsong}[ Path = \thu@windows@font@dir/, Extension = .ttf, ]% \setCJKfamilyfont{zhkai}{Kaiti}[ Path = \thu@windows@font@dir/, Extension = .ttf, ]% \setCJKfamilyfont{zhfs}{Fangsong}[ Path = \thu@windows@font@dir/, Extension = .ttf, ]% }{ \setCJKmainfont{SimSun}[% Path = \thu@windows@font@dir/, Extension = .ttc, AutoFakeBold = 3, ItalicFont = Simkai, ItalicFeatures = {Extension = .ttf}, ]% \setCJKmonofont{Simfang}[ Path = \thu@windows@font@dir/, Extension = .ttf, ]% \setCJKfamilyfont{zhkai}{Simkai}[ Path = \thu@windows@font@dir/, Extension = .ttf, ]% \setCJKfamilyfont{zhfs}{Simfang}[ Path = \thu@windows@font@dir/, Extension = .ttf, ]% } \setCJKsansfont{SimHei}[% Path = \thu@windows@font@dir/, Extension = .ttf, AutoFakeBold = 3, ]% \setCJKfamilyfont{zhsong}{SimSun}[% Path = \thu@windows@font@dir/, Extension = .ttc, AutoFakeBold = 3, ]% \setCJKfamilyfont{zhhei}{SimHei}[% Path = \thu@windows@font@dir/, Extension = .ttf, AutoFakeBold = 3, ]% } % \end{macrocode} % % macOS çš„ Microsoft Word å—体。 % \begin{macrocode} \@namedef{thu@set@cjk@font@mac-word}{% \let\thu@windows@font@dir\thu@mac@word@font@dir \@nameuse{thu@set@cjk@font@windows-local}% } % \end{macrocode} % % macOS çš„åŽæ–‡å—体。 % \begin{macrocode} \newcommand\thu@set@cjk@font@mac{% \defaultCJKfontfeatures{}% \setCJKmainfont{Songti SC}[ UprightFont = * Light, BoldFont = * Bold, ItalicFont = Kaiti SC Regular, BoldItalicFont = Kaiti SC Bold, ]% \setCJKsansfont{Heiti SC}[ UprightFont = * Light, BoldFont = * Medium, ]% \setCJKmonofont{STFangsong} \setCJKfamilyfont{zhsong}{Songti SC}[ UprightFont = * Light, BoldFont = * Bold, ]% \setCJKfamilyfont{zhhei}{Heiti SC}[ UprightFont = * Light, BoldFont = * Medium, ]% \setCJKfamilyfont{zhfs}{STFangsong}% \setCJKfamilyfont{zhkai}{Kaiti SC}[ UprightFont = * Regular, BoldFont = * Bold, ]% \setCJKfamilyfont{zhli}{Baoli SC}% \setCJKfamilyfont{zhyuan}{Yuanyi SC}[ UprightFont = * Light, BoldFont = * Bold, ]% } % \end{macrocode} % % æ€æºå—体。 % æ³¨æ„ Noto CJK çš„ regular å—é‡åå—ä¸å¸¦â€œRegularâ€ã€‚ % \begin{macrocode} \newcommand\thu@set@cjk@font@noto{% \defaultCJKfontfeatures{}% \setCJKmainfont{Noto Serif CJK SC}[ UprightFont = * Light, BoldFont = * Bold, ItalicFont = FandolKai-Regular, ItalicFeatures = {Extension = .otf}, Script = CJK, ]% \setCJKsansfont{Noto Sans CJK SC}[ BoldFont = * Medium, Script = CJK, ]% \setCJKmonofont{Noto Sans Mono CJK SC}[ Script = CJK, ]% \setCJKfamilyfont{zhsong}{Noto Serif CJK SC}[ UprightFont = * Light, UprightFont = * Bold, Script = CJK, ]% \setCJKfamilyfont{zhhei}{Noto Sans CJK SC}[ BoldFont = * Medium, Script = CJK, ]% \setCJKfamilyfont{zhfs}{FandolFang}[ Extension = .otf, UprightFont = *-Regular, ]% \setCJKfamilyfont{zhkai}{FandolKai}[ Extension = .otf, UprightFont = *-Regular, ]% } % \end{macrocode} % % Fandol å—体。 % \begin{macrocode} \newcommand\thu@set@cjk@font@fandol{% \defaultCJKfontfeatures{}% \setCJKmainfont{FandolSong}[ Extension = .otf, UprightFont = *-Regular, BoldFont = *-Bold, ItalicFont = FandolKai-Regular, ItalicFeatures = {Extension = .otf}, ]% \setCJKsansfont{FandolHei}[ Extension = .otf, UprightFont = *-Regular, BoldFont = *-Bold, ]% \setCJKmonofont{FandolFang}[ Extension = .otf, UprightFont = *-Regular, ]% \setCJKfamilyfont{zhsong}{FandolSong}[ Extension = .otf, UprightFont = *-Regular, BoldFont = *-Bold, ]% \setCJKfamilyfont{zhhei}{FandolHei}[ Extension = .otf, UprightFont = *-Regular, BoldFont = *-Bold, ]% \setCJKfamilyfont{zhfs}{FandolFang}[ Extension = .otf, UprightFont = *-Regular, ]% \setCJKfamilyfont{zhkai}{FandolKai}[ Extension = .otf, UprightFont = *-Regular, ]% } \ifthu@cjk@font@none\else \providecommand\songti{\CJKfamily{zhsong}} \providecommand\heiti{\CJKfamily{zhhei}} \providecommand\fangsong{\CJKfamily{zhfs}} \providecommand\kaishu{\CJKfamily{zhkai}} \fi \newcommand\thu@set@cjk@font{% \@nameuse{thu@set@cjk@font@\thu@cjk@font}% } \thu@set@cjk@font \thu@option@hook{cjk-font}{\thu@set@cjk@font} % \end{macrocode} % % \subsubsection{æ•°å¦å—体} % % 使用 \pkg{unicode-math} é…置数å¦ç¬¦å·æ ¼å¼ã€‚ % \begin{macrocode} \newcommand\thu@set@math@style{% \ifthu@math@style@TeX \thusetup{ uppercase-greek = upright, less-than-or-equal = horizontal, integral = slanted, integral-limits = false, partial = italic, math-ellipsis = AMS, real-part = fraktur, }% \else \thusetup{ uppercase-greek = italic, integral = upright, partial = upright, real-part = roman, }% \ifthu@math@style@ISO \thusetup{ less-than-or-equal = horizontal, integral-limits = true, math-ellipsis = lower, }% \else \ifthu@math@style@GB \thusetup{ less-than-or-equal = slanted, integral-limits = false, math-ellipsis = centered, }% \fi \fi \fi } \ifthu@main@language@chinese \thusetup{math-style=GB}% \else \thusetup{math-style=TeX}% \fi \thu@set@math@style \thu@option@hook{math-style}{\thu@set@math@style} \thu@option@hook{main-language}{% \ifthu@main@language@chinese \thusetup{math-style=GB}% \else \thusetup{math-style=TeX}% \fi } % \end{macrocode} % % 针对 \pkg{unicode-math} é€é¡¹é…置数å¦ç¬¦å·ã€‚ % \begin{macrocode} \newcommand\thu@set@unimath@leq{% \ifthu@leq@horizontal \ifx\@begindocumenthook\@undefined \let\le\thu@save@leq \let\ge\thu@save@geq \let\leq\thu@save@leq \let\geq\thu@save@geq \else \AtBeginDocument{% \let\le\thu@save@leq \let\ge\thu@save@geq \let\leq\thu@save@leq \let\geq\thu@save@geq }% \fi \else \ifthu@leq@slanted \ifx\@begindocumenthook\@undefined \let\le\leqslant \let\ge\geqslant \let\leq\leqslant \let\geq\geqslant \else \AtBeginDocument{% \let\le\leqslant \let\ge\geqslant \let\leq\leqslant \let\geq\geqslant }% \fi \fi \fi } \newcommand\thu@set@unimath@integral@limits{% \ifthu@integral@limits@true \removenolimits{% \int\iint\iiint\iiiint\oint\oiint\oiiint \intclockwise\varointclockwise\ointctrclockwise\sumint \intbar\intBar\fint\cirfnint\awint\rppolint \scpolint\npolint\pointint\sqint\intlarhk\intx \intcap\intcup\upint\lowint }% \else \addnolimits{% \int\iint\iiint\iiiint\oint\oiint\oiiint \intclockwise\varointclockwise\ointctrclockwise\sumint \intbar\intBar\fint\cirfnint\awint\rppolint \scpolint\npolint\pointint\sqint\intlarhk\intx \intcap\intcup\upint\lowint }% \fi } \newcommand\thu@set@unimath@ellipsis{% \ifthu@math@ellipsis@centered \DeclareRobustCommand\mathellipsis{\mathinner{\unicodecdots}}% \else \DeclareRobustCommand\mathellipsis{\mathinner{\unicodeellipsis}}% \fi } \newcommand\thu@set@unimath@real@part{% \ifthu@real@part@roman \AtBeginDocument{% \def\Re{\operatorname{Re}}% \def\Im{\operatorname{Im}}% }% \else \AtBeginDocument{% \let\Re\thu@save@Re \let\Im\thu@save@Im }% \fi } \newcommand\thu@set@unimath@style{% \ifthu@uppercase@greek@upright \unimathsetup{math-style = TeX}% \else \ifthu@uppercase@greek@italic \unimathsetup{math-style = ISO}% \fi \fi \ifthu@math@style@TeX \unimathsetup{bold-style = TeX}% \else \unimathsetup{bold-style = ISO}% \fi \thu@set@unimath@leq \thu@set@unimath@integral@limits \ifthu@partial@upright \unimathsetup{partial = upright}% \else \ifthu@partial@italic \unimathsetup{partial = italic}% \fi \fi \thu@set@unimath@ellipsis \thu@set@unimath@real@part } % \end{macrocode} % % \begin{macrocode} \newcommand\thu@qed{\rule{1ex}{1ex}} \newcommand\thu@load@unimath{% \@ifpackageloaded{unicode-math}{}{% \RequirePackage{unicode-math}% \AtBeginDocument{% \let\thu@save@leq\leq \let\thu@save@geq\geq \let\thu@save@Re\Re \let\thu@save@Im\Im }% % \end{macrocode} % % 兼容旧的粗体命令:\pkg{bm} çš„ \cs{bm} å’Œ \pkg{amsmath} çš„ \cs{boldsymbol}。 % \begin{macrocode} \DeclareRobustCommand\bm[1]{{\symbfit{##1}}}% \DeclareRobustCommand\boldsymbol[1]{{\symbfit{##1}}}% % \end{macrocode} % % 兼容 \pkg{amsfonts} å’Œ \pkg{amssymb} ä¸çš„一些命令。 % \begin{macrocode} \newcommand\square{\mdlgwhtsquare}% \newcommand\blacksquare{\mdlgblksquare}% \AtBeginDocument{% \renewcommand\checkmark{\ensuremath{\symbol{"2713}}}% }% % \end{macrocode} % % 兼容 \pkg{amsthm} çš„ \cs{qedsymbol}。 % \begin{macrocode} \renewcommand\thu@qed{\ensuremath{\QED}}% }% } % \end{macrocode} % % STIX Two Math % \begin{macrocode} \newcommand\thu@set@math@font@stix{% \thu@set@stix@names \setmathfont{\thu@font@name@stix@math}[ Extension = .otf, Scale = MatchLowercase, StylisticSet = \thu@xits@integral@stylistic@set, ]% \setmathfont{\thu@font@name@stix@math}[ Extension = .otf, Scale = MatchLowercase, StylisticSet = 1, range = {scr,bfscr}, ]% } % \end{macrocode} % % XITS Math % \begin{macrocode} \newcommand\thu@xits@integral@stylistic@set{% \ifthu@integral@upright 8% \fi } \newcommand\thu@set@math@font@xits{% \thu@set@xits@names \setmathfont{\thu@font@name@xits@math}[ Extension = .otf, StylisticSet = \thu@xits@integral@stylistic@set, ]% \setmathfont{\thu@font@name@xits@math}[ Extension = .otf, StylisticSet = 1, range = {cal,bfcal}, ]% } % \end{macrocode} % % Libertinus Math % \begin{macrocode} \newcommand\thu@libertinus@integral@stylistic@set{% \ifthu@integral@slanted 8% \fi } \newcommand\thu@set@math@font@libertinus{% \thu@set@libertinus@names \setmathfont{\thu@font@name@libertinus@math}[ Extension = .otf, StylisticSet = \thu@libertinus@integral@stylistic@set, ]% } % \end{macrocode} % % New Computer Modern Math % \begin{macrocode} \newcommand\thu@newcm@integral@stylistic@set{% \ifthu@integral@upright 2% \fi } \newcommand\thu@set@math@font@newcm{% \setmathfont{NewCMMath-Book}[ Extension = .otf, StylisticSet = \thu@newcm@integral@stylistic@set, ]% \setmathfont{NewCMMath-Book}[ Extension = .otf, StylisticSet = 1, range = {scr,bfscr}, ]% \setmathrm{NewCM10}[ Extension = .otf, UprightFont = *-Book, BoldFont = *-Bold, ItalicFont = *-BookItalic, BoldItalicFont = *-BoldItalic, ]% \setmathsf{NewCMSans10}[ Extension = .otf, UprightFont = *-Book, BoldFont = *-Bold, ItalicFont = *-BookOblique, BoldItalicFont = *-BoldOblique, ]% \setmathtt{NewCMMono10}[ Extension = .otf, UprightFont = *-Book, ItalicFont = *-BookItalic, BoldFont = *-Bold, BoldItalicFont = *-BoldOblique, ]% } % \end{macrocode} % % Latin Modern Math % \begin{macrocode} \newcommand\thu@set@math@font@lm{% \setmathfont{latinmodern-math}[Extension=.otf]% \setmathrm{lmroman10}[ Extension = .otf, UprightFont = *-regular, BoldFont = *-bold, ItalicFont = *-italic, BoldItalicFont = *-bolditalic, ]% \setmathsf{lmsans10}[ Extension = .otf, UprightFont = *-regular, BoldFont = *-bold, ItalicFont = *-oblique, BoldItalicFont = *-boldoblique, ]% \setmathtt{lmmonolt10}[ Extension = .otf, UprightFont = *-regular, BoldFont = *-bold, ItalicFont = *-oblique, BoldItalicFont = *-boldoblique, ]% } % \end{macrocode} % % NewTX Math % \begin{macrocode} \newcommand\thu@set@math@font@newtx{% \ifthu@font@newtx\else \let\thu@save@encodingdefault\encodingdefault \let\thu@save@rmdefault\rmdefault \let\thu@save@sfdefault\sfdefault \let\thu@save@ttdefault\ttdefault \RequirePackage[T1]{fontenc}% \renewcommand{\rmdefault}{ntxtlf}% \renewcommand{\sfdefault}{qhv}% \renewcommand{\ttdefault}{ntxtt}% \fi \ifthu@uppercase@greek@italic \PassOptionsToPackage{slantedGreek}{newtxmath}% \fi \ifthu@integral@upright \PassOptionsToPackage{upint}{newtxmath}% \fi \RequirePackage{newtxmath} \let\thu@save@leq\leq \let\thu@save@geq\geq \ifthu@leq@slanted \let\le\leqslant \let\ge\geqslant \let\leq\leqslant \let\geq\geqslant \fi \ifthu@integral@limits@true \let\ilimits@\displaylimits \fi \let\thu@save@partial\partial \ifthu@partial@upright \let\partial\uppartial \fi \ifthu@math@ellipsis@centered \DeclareRobustCommand\mathellipsis{\mathinner{\cdotp\cdotp\cdotp}}% \else \DeclareRobustCommand\mathellipsis{\mathinner{\ldotp\ldotp\ldotp}}% \fi \let\thu@save@Re\Re \let\thu@save@Im\Im \ifthu@real@part@roman \def\Re{\operatorname{Re}}% \def\Im{\operatorname{Im}}% \fi \RequirePackage{bm}% \ifthu@font@newtx\else \let\encodingdefault\thu@save@encodingdefault \let\rmdefault\thu@save@rmdefault \let\sfdefault\thu@save@sfdefault \let\ttdefault\thu@save@ttdefault \fi \DeclareRobustCommand\symup[1]{{\mathrm{##1}}}% \DeclareRobustCommand\symbf[1]{{\bm{##1}}}% \DeclareRobustCommand\symbfsf[1]{{\bm{\mathsf{##1}}}}% \let\increment\upDelta% \renewcommand\thu@qed{\openbox}% } % \end{macrocode} % % \begin{macrocode} \newcommand\thu@set@math@font{% \ifthu@math@font@none\else \ifthu@math@font@newtx \thu@set@math@font@newtx \else \thu@load@unimath \thu@set@unimath@style \@nameuse{thu@set@math@font@\thu@math@font}% \fi \fi } \thu@option@hook{math-font}{\g@addto@macro\thu@setup@hook{\thu@set@math@font}} \newcommand\thu@set@math@font@auto{% \ifthu@math@font@auto \thusetup{math-font=xits}% \fi } \AtBeginOfPackageFile*{siunitx}{\thu@set@math@font@auto} \AtEndPreamble{\thu@set@math@font@auto} % \end{macrocode} % % % \subsection{ä¸»æ–‡æ¡£æ ¼å¼} % \label{sec:mainbody} % % \subsubsection{Three matters} % \begin{macro}{\cleardoublepage} % 对于 \textsl{openright} 选项,必须ä¿è¯ç« 首页å³å¼€ï¼Œä¸”如果å‰ç« æœ«é¡µæ— å†…å®¹é¡» % 清空其页眉页脚。 % \begin{macrocode} \def\cleardoublepage{% \clearpage \if@twoside \ifthu@output@print \ifodd\c@page \else \thispagestyle{empty}% \hbox{}% \newpage \if@twocolumn \hbox{}\newpage \fi \fi \fi \fi } % \end{macrocode} % \end{macro} % % \begin{macro}{\frontmatter} % \begin{macro}{\mainmatter} % \begin{macro}{\backmatter} % 我们的å•é¢å’ŒåŒé¢æ¨¡å¼ä¸Žå¸¸è§„çš„ä¸å¤ªä¸€æ ·ã€‚ % \begin{macrocode} \renewcommand\frontmatter{% \cleardoublepage \@mainmatterfalse \pagenumbering{Roman}% } \renewcommand\mainmatter{% \cleardoublepage \@mainmattertrue \pagenumbering{arabic}% } \renewcommand\backmatter{% \clearpage \@mainmatterfalse \thusetup{toc-depth = 0}% } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % \subsubsection{页眉页脚} % \label{sec:headerfooter} % % \pkg{fancyhdr} 定义页眉页脚很方便,但是有一个éžå¸¸éšè”½çš„å‘。 % 第一次调用 \pkg{fancyhdr} å®šä¹‰çš„æ ·å¼æ—¶ä¼šä¿®æ”¹ \cs{chaptermark}, % 这会导致页眉信æ¯é”™è¯¯ï¼ˆå¤šä½™ç« å·å¹¶ä¸”英文大写)。 % è¿™æ˜¯å› ä¸ºåœ¨ \cs{ps@fancy} ä¸å¯¹ \cs{chaptermark} 进行é‡å®šä¹‰ï¼Œ % 所以我们先调用 \cs{ps@fancy},å†ä¿®æ”¹ \cs{chaptermark}。 % \begin{macrocode} \pagestyle{fancy} % \end{macrocode} % % 定义页眉和页脚。 % ç ”ç©¶ç”Ÿè¦æ±‚: % 页眉宋体五å·å—,宋体五å·å—å±…ä¸ä¹¦å†™ï¼› % 页ç äº”å· Times New Roman 体。 % % æœ¬ç§‘ç”Ÿè¦æ±‚: % é¡µçœ‰ï¼šæ— ï¼› % 页ç :ä½äºŽé¡µé¢åº•端,居ä¸ä¹¦å†™ã€‚ % % æœ¬ç§‘å¤–æ–‡ä¸“ä¸šè¦æ±‚页ç å—å· 12pt。 % \begin{macrocode} \fancypagestyle{plain}{% \fancyhf{}% \renewcommand\footrulewidth{0pt}% \ifthu@degree@bachelor \renewcommand\headrulewidth{0pt}% \fancyfoot[C]{ \ifthu@main@language@chinese \fontsize{10.5bp}{12.075bp}\selectfont \else \normalsize \fi \thepage }% \let\@mkboth\@gobbletwo \let\chaptermark\@gobble \else \renewcommand\headrulewidth{0.75bp}% \fancyhead[C]{% \wuhao \ifthu@main@language@chinese \leftmark \else \MakeUppercase{\leftmark}% \fi }% \fancyfoot[C]{\wuhao\thepage}% \let\@mkboth\markboth \def\chaptermark##1{% \markboth{% \CTEXifname{% \CTEXthechapter \ifthu@main@language@chinese \quad \else \space \fi }{}##1% }{}% }% \fi \let\sectionmark\@gobble } \pagestyle{plain} % \end{macrocode} % % \cs{chapter} 会调用特殊的 page style。 % \begin{macrocode} \def\ps@chapter{} \ctexset{chapter/pagestyle = chapter} % \end{macrocode} % % % \subsubsection{段è½} % \label{sec:paragraph} % % 全文首行缩进 2 å—ç¬¦ï¼Œæ ‡ç‚¹ç¬¦å·ç”¨å…¨è§’ % \begin{macrocode} \ctexset{% punct=quanjiao, } \newcommand\thu@set@indent{% \ifthu@main@language@chinese \ctexset{autoindent=2}% \else \ifthu@degree@bachelor \ctexset{autoindent=0.8cm}% \else \ctexset{autoindent=0.74cm}% \fi \fi } \thu@set@indent \thu@option@hook{degree}{\thu@set@indent} \thu@option@hook{main-language}{\thu@set@indent} % \end{macrocode} % % 设置 url æ ·å¼ï¼Œä¸Žä¸Šä¸‹æ–‡ä¸€è‡´ % \begin{macrocode} \urlstyle{same} % \end{macrocode} % % 使用 \pkg{xurl} çš„æ–¹æ³•ï¼Œå¢žåŠ URL 坿–行的ä½ç½®ã€‚ % \begin{macrocode} \g@addto@macro\UrlBreaks{% \do0\do1\do2\do3\do4\do5\do6\do7\do8\do9% \do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L\do\M \do\N\do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X\do\Y\do\Z \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j\do\k\do\l\do\m \do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v\do\w\do\x\do\y\do\z } \Urlmuskip=0mu plus 0.1mu % \end{macrocode} % % å–æ¶ˆåˆ—表的间è·ï¼Œä»¥ç¬¦åˆä¸æ–‡ä¹ 惯。 % \begin{macrocode} \partopsep=\z@skip \def\@listi{\leftmargin\leftmargini \parsep \z@skip \topsep \z@skip \itemsep\z@skip} \let\@listI\@listi \@listi \def\@listii {\leftmargin\leftmarginii \labelwidth\leftmarginii \advance\labelwidth-\labelsep \topsep \z@skip \parsep \z@skip \itemsep \z@skip} \def\@listiii{\leftmargin\leftmarginiii \labelwidth\leftmarginiii \advance\labelwidth-\labelsep \topsep \z@skip \parsep \z@skip \partopsep \z@skip \itemsep \z@skip} % \end{macrocode} % % 使用 \pkg{enumitem} 命令调整默认列表环境间的è·ç¦»ï¼Œ % \begin{macrocode} \setlist{nosep} % \end{macrocode} % % % \subsubsection{脚注} % \label{sec:footnote} % % ä¸¥æ ¼ç¦æ¢è„šæ³¨è·¨é¡µï¼Œå‚考 \href{https://github.com/tuna/thuthesis/issues/778}{\#778} % å’Œ \url{https://texfaq.org/FAQ-splitfoot}。 % \begin{macrocode} \interfootnotelinepenalty=10000 % \end{macrocode} % % 脚注内容采用å°äº”å·å—ï¼Œä¸æ–‡ç”¨å®‹ä½“,英文和数å—用 Times New Roman ä½“æŒ‰ä¸¤ç«¯å¯¹é½æ ¼å¼ä¹¦å†™ï¼Œ % å•å€è¡Œè·ï¼Œæ®µå‰æ®µåŽå‡ç©º 0 磅。 % 脚注的åºå·æŒ‰é¡µç¼–排,ä¸åŒé¡µçš„脚注åºå·ä¸éœ€è¦è¿žç»ã€‚ % % 脚注处åºå·â€œ1,……,10â€çš„å—ä½“æ˜¯â€œæ£æ–‡â€ï¼Œä¸æ˜¯â€œä¸Šæ ‡â€ï¼Œåºå·ä¸Žè„šæ³¨å†…å®¹æ–‡å—之间空åŠä¸ªæ±‰å—符, % è„šæ³¨çš„æ®µè½æ ¼å¼ä¸ºï¼šå•å€è¡Œè·ï¼Œæ®µå‰ç©º 0 磅,段åŽç©º 0 磅,悬挂缩进 1.5 å—符; % å—å·ä¸ºå°äº”å·å—,汉å—用宋体,外文用 Times New Roman 体。 % % 脚注åºå·ä½¿ç”¨å¸¦åœˆæ•°å—。 % \begin{macro}{\thu@circled} % 生æˆå¸¦åœˆçš„脚注数å—,最多处ç†åˆ° 10。 % \begin{macrocode} \newcommand\thu@circled[1]{% \ifnum#1 >10\relax \thu@warning{% Too many footnotes in this page. Keep footnote less than 10% }% \fi {\symbol{\the\numexpr#1+"245F\relax}}% } \renewcommand{\thefootnote}{\thu@circled{\c@footnote}} \renewcommand{\thempfootnote}{\thu@circled{\c@mpfootnote}} % \end{macrocode} % \end{macro} % % 定义脚注分割线,å—å·ï¼ˆå®‹ä½“å°äº”ï¼‰ï¼Œä»¥åŠæ‚¬æŒ‚缩进(1.5å—符)。 % \begin{macrocode} \def\footnoterule{\vskip-3\p@\hrule\@width0.3\textwidth\@height0.4\p@\vskip2.6\p@} \footnotemargin=13.5bp % \end{macrocode} % % 修改 \pkg{footmisc} å®šä¹‰çš„è„šæ³¨æ ¼å¼ã€‚ % \begin{macrocode} \long\def\@makefntext#1{% \begingroup % åºå·å–æ¶ˆä¸Šæ ‡ \def\@makefnmark{\hbox{\normalfont\@thefnmark}}% \xiaowu \ifFN@hangfoot \bgroup \setbox\@tempboxa\hbox{% \ifdim\footnotemargin>\z@ \hb@xt@\footnotemargin{\@makefnmark\hss}% \else \@makefnmark \fi }% \leftmargin\wd\@tempboxa \rightmargin\z@ \linewidth \columnwidth \advance \linewidth -\leftmargin \parshape \@ne \leftmargin \linewidth % \footnotesize \xiaowu \@setpar{{\@@par}}% \leavevmode \llap{\box\@tempboxa}% \parskip\hangfootparskip\relax \parindent\hangfootparindent\relax \else \parindent1em% \noindent \ifdim\footnotemargin>\z@ \hb@xt@ \footnotemargin{\hss\@makefnmark}% \else \ifdim\footnotemargin=\z@ \llap{\@makefnmark}% \else \llap{\hb@xt@ -\footnotemargin{\@makefnmark\hss}}% \fi \fi \fi \footnotelayout#1% \ifFN@hangfoot \par\egroup \fi \endgroup } % \end{macrocode} % % % \subsubsection{æ•°å¦ç›¸å…³} % \label{sec:equation} % å…è®¸å¤ªé•¿çš„å…¬å¼æ–行ã€åˆ†é¡µç‰ã€‚ % \begin{macrocode} \allowdisplaybreaks[4] % \end{macrocode} % % å…¬å¼è·å‰åŽæ–‡çš„è·ç¦»ç”± 4 ä¸ªå‚æ•°æŽ§åˆ¶ï¼Œå‚è§ \cs{normalsize} 的定义。 % % 䏿–‡æ¨¡æ¿çš„å…¬å¼ç¼–å·ä½¿ç”¨ä¸æ–‡æ‹¬å·ã€‚需è¦ä¿®æ”¹ \pkg{amsmath} çš„ \cs{tagform@}。 % è¿™é‡Œä¸æ–‡çš„ \cs{unskip} 是为了“|å¼~\eqref|â€è¿™æ ·çš„写法ä¸äº§ç”Ÿé¢å¤–çš„ç©ºæ ¼ã€‚ % \begin{macrocode} \newcommand\thu@eqn@left@paren{(} \newcommand\thu@eqn@right@paren{)} \newcommand\thu@set@eqn@paren@style{% \ifthu@eqn@paren@style@full \renewcommand\thu@eqn@left@paren{(}% \renewcommand\thu@eqn@right@paren{)}% \else \renewcommand\thu@eqn@left@paren{(}% \renewcommand\thu@eqn@right@paren{)}% \fi } \thu@set@eqn@paren@style \thu@option@hook{eqn-paren-style}{\thu@set@eqn@paren@style} \newcommand\thu@put@parentheses[1]{% \ifthu@language@chinese \unskip \thu@eqn@left@paren#1\thu@eqn@right@paren \else (#1)% \fi } % \def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}} \def\tagform@#1{\maketag@@@{\thu@put@parentheses{\ignorespaces#1\unskip\@@italiccorr}}} % \end{macrocode} % % é‡å®šä¹‰ \cs{eqref},去掉原æ¥çš„çš„ \cs{tagform@} ä¸ \cs{maketag@@@} çš„ \cs{hbox} å’Œ % \cs{m@th},防æ¢ä¸æ–‡å·¦æ‹¬å·ä¸Žå‰é¢æ–‡å—çš„è·ç¦»è¿‡çª„。 % \begin{macrocode} % \newcommand{\eqref}[1]{\textup{\tagform@{\ref{#1}}}} \renewcommand{\eqref}[1]{% \textup{% \normalfont\thu@put@parentheses{% \ignorespaces\ref{#1}\unskip\@@italiccorr }% }% } % \end{macrocode} % % \subsubsection{浮动对象:æ’å›¾å’Œè¡¨æ ¼} % \label{sec:float} % % 图表浮动体的默认ä½ç½®è®¾ä¸º |h|。 % \begin{macrocode} \def\fps@figure{htbp} \def\fps@table{htbp} % \end{macrocode} % % 设置浮动对象和文å—之间的è·ç¦» % \begin{macrocode} \setlength{\floatsep}{12\p@ \@plus 2\p@ \@minus 2\p@} \setlength{\textfloatsep}{12\p@ \@plus 2\p@ \@minus 2\p@} \setlength{\intextsep}{12\p@ \@plus 2\p@ \@minus 2\p@} \setlength{\@fptop}{0bp \@plus1.0fil} \setlength{\@fpsep}{12bp \@plus2.0fil} \setlength{\@fpbot}{0bp \@plus1.0fil} % \end{macrocode} % % 由于 LaTeX2e kernel çš„é—®é¢˜ï¼Œå›¾è¡¨ç‰æµ®åŠ¨ä½“ä¸Žæ–‡å—å‰åŽçš„è·ç¦»ä¸ä¸€è‡´ï¼Œéœ€è¦è¿›è¡Œ patch。 % å‚考 \href{https://github.com/tuna/thuthesis/issues/614}{tuna/thuthesis/issues\#614}〠% \url{https://www.zhihu.com/question/46618031} å’Œ % \url{https://tex.stackexchange.com/a/40363/82731}。 % \begin{macrocode} \patchcmd{\@addtocurcol}% {\vskip \intextsep}% {\edef\save@first@penalty{\the\lastpenalty}\unpenalty \ifnum \lastpenalty = \@M % hopefully the OR penalty \unpenalty \else \penalty \save@first@penalty \relax % put it back \fi \ifnum\outputpenalty <-\@Mii \addvspace\intextsep \vskip\parskip \else \addvspace\intextsep \fi}% {}{\thu@patch@error{\@addtocurcol}} \patchcmd{\@addtocurcol}% {\vskip\intextsep \ifnum\outputpenalty <-\@Mii \vskip -\parskip\fi}% {\ifnum\outputpenalty <-\@Mii \aftergroup\vskip\aftergroup\intextsep \aftergroup\nointerlineskip \else \vskip\intextsep \fi}% {}{\thu@patch@error{\@addtocurcol}} \patchcmd{\@getpen}{\@M}{\@Mi} {}{\thu@patch@error{\@getpen}} % \end{macrocode} % % å°†æµ®åŠ¨å‚æ•°è®¾ä¸ºè¾ƒå®½æ¾çš„值。 % \begin{macrocode} \renewcommand{\textfraction}{0.15} \renewcommand{\topfraction}{0.85} \renewcommand{\bottomfraction}{0.65} \renewcommand{\floatpagefraction}{0.60} % \end{macrocode} % % å…许用户设置图表编å·çš„连接符。 % \begin{macrocode} \thu@define@key{ figure-number-separator = { name = figure@number@separator, default = {.}, }, table-number-separator = { name = table@number@separator, default = {.}, }, equation-number-separator = { name = equation@number@separator, default = {.}, }, number-separator = { name = number@separator, default = {.}, }, } \renewcommand\thefigure{% \ifnum\c@chapter>\z@ \thechapter \thu@figure@number@separator \fi \@arabic\c@figure } \renewcommand\thetable{% \ifnum\c@chapter>\z@ \thechapter \thu@table@number@separator \fi \@arabic\c@table } \renewcommand\theequation{% \ifnum\c@chapter>\z@ \thechapter \thu@equation@number@separator \fi \@arabic\c@equation } \newcommand\thu@set@number@separator{% \let\thu@figure@number@separator\thu@number@separator \let\thu@table@number@separator\thu@number@separator \let\thu@equation@number@separator\thu@number@separator } \thu@option@hook{number-separator}{\thu@set@number@separator} % \end{macrocode} % % å®šåˆ¶æµ®åŠ¨å›¾å½¢å’Œè¡¨æ ¼æ ‡é¢˜æ ·å¼ï¼š % \begin{itemize} % \item å›¾è¡¨æ ‡é¢˜å—体为 11pt % \item 去掉图表å·åŽé¢çš„冒å·ï¼Œå›¾åºä¸Žå›¾åæ–‡å—之间空一个汉å—符宽度 % \item 图:caption 在下,段å‰ç©º 6 磅,段åŽç©º 12 磅 % \item 表:caption 在上,段å‰ç©º 12 磅,段åŽç©º 6 磅 % \end{itemize} % \begin{macrocode} \DeclareCaptionFont{thu}{% \ifthu@degree@bachelor \fontsize{11bp}{15bp}\selectfont \else \ifthu@language@chinese \fontsize{11bp}{14.3bp}\selectfont \else \fontsize{11bp}{12.65bp}\selectfont \fi \fi } \captionsetup{ font = thu, labelsep = quad, skip = 6bp, figureposition = bottom, tableposition = top, } \captionsetup[sub]{font=thu} \renewcommand{\thesubfigure}{(\alph{subfigure})} \renewcommand{\thesubtable}{(\alph{subtable})} % \renewcommand{\p@subfigure}{:} % \end{macrocode} % % ç ”ç©¶ç”Ÿè¦æ±‚表å•å…ƒæ ¼ä¸çš„æ–‡å—采用 11pt 宋体å—,å•å€è¡Œè·ã€‚段å‰ç©º 3 磅,段åŽç©º 3 磅。 % å¯¹äºŽä¸æ–‡ï¼Œ\cs{arraystretch} 需è¦è°ƒæ•´ä¸º $1 + 6 / (11 \times 1.3) \approx 1.42$。 % 对于英文,\cs{arraystretch} 需è¦è°ƒæ•´ä¸º $1 + 6 / (11 \times 1.15) \approx 1.47$。 % % 注æ„ä¸èƒ½ç®€å•地把行è·è®¾ä¸º $\SI{11}{pt} \times 1.3 + \SI{6}{pt} = \SI{20.3}{pt}$, % è¿™ä¼šå¯¼è‡´å«æœ‰å¤šè¡Œæ–‡å—çš„å•å…ƒæ ¼ä¸è¡Œè·æœ‰è¯¯ã€‚ % % 其他浮动体ä¸ï¼ˆæ¯”如 \env{algorithm})的å—å·é»˜è®¤åŒè¡¨æ ¼ä¸€è‡´ã€‚ % \begin{macrocode} \newcommand\thu@set@table@font{ \ifthu@language@chinese \def\thu@table@font{% \fontsize{11bp}{14.3bp}\selectfont \renewcommand\arraystretch{1.42}% }% \else \def\thu@table@font{% \fontsize{11bp}{12.65bp}\selectfont \renewcommand\arraystretch{1.47}% }% \fi } \thu@set@table@font \thu@option@hook{language}{\thu@set@table@font} \patchcmd\@floatboxreset{% \normalsize }{% \thu@table@font }{}{\thu@patch@error{\@floatboxreset}} % \end{macrocode} % % 对 \pkg{longtable} è·¨é¡µè¡¨æ ¼è¿›è¡Œç›¸åŒçš„设置。 % % 在 Word 模æ¿ä¸æŒ‰ç…§æ£ç¡®çš„设置(需è¦åŽ»æŽ‰æ–‡æ¡£ç½‘æ ¼ï¼‰ï¼Œ % 䏿–‡æ¨¡æ¿æ¯é¡µèƒ½è£…下 1 è¡Œæ ‡é¢˜ã€1 行表头ã€30 行表身, % è‹±æ–‡æ¨¡æ¿æ¯é¡µèƒ½è£…下 1 è¡Œæ ‡é¢˜ã€1 行表头ã€33 行表身。 % \begin{macrocode} \AtEndOfPackageFile*{longtable}{ \AtBeginEnvironment{longtable}{% \thu@table@font } } % \end{macrocode} % % ç ”ç©¶ç”Ÿå’Œæœ¬ç§‘ç”Ÿéƒ½æŽ¨èä½¿ç”¨ä¸‰çº¿è¡¨ï¼Œå¹¶ä¸”è¦æ±‚表的上ã€ä¸‹è¾¹çº¿ä¸ºå•直线,线粗为 1.5 磅; % 第三æ¡çº¿ä¸ºå•直线,线粗为 1 磅。 % 这里设置 \pkg{booktabs} 线粗的默认值。 % \begin{macrocode} \heavyrulewidth=1.5bp \lightrulewidth=1bp % \end{macrocode} % % \begin{macrocode} \AtEndOfPackageFile*{threeparttable}{ \g@addto@macro\TPT@defaults{\wuhao} } % \end{macrocode} % % \subsubsection{ç« èŠ‚æ ‡é¢˜} % \label{sec:theor} % \begin{macrocode} \newcommand{\thu@abstract@name}{摘\quad è¦} \newcommand{\thu@abstract@name@en}{Abstract} % \end{macrocode} % % å„çº§æ ‡é¢˜æ ¼å¼è®¾ç½®ã€‚ % \begin{macrocode} \ctexset{% chapter = { nameformat = {}, numberformat = {}, titleformat = {}, fixskip = true, afterindent = true, lofskip = 0pt, lotskip = 0pt, }, section = { afterindent = true, }, subsection = { afterindent = true, }, subsubsection = { afterindent = true, }, paragraph/afterindent = true, subparagraph/afterindent = true, } % \end{macrocode} % % æœ¬ç§‘ç”Ÿè¦æ±‚: % \begin{center} % \begin{tabular}{lclll} % \toprule % æ ‡é¢˜ & 䏿–‡ & 英文 & 段å‰/åŽé—´è· & è¡Œè· \\ % \midrule % ç« æ ‡é¢˜ & é»‘ä½“ä¸‰å· & Arial 16pt & 24/18 pt & å•å€ \\ % ä¸€çº§èŠ‚æ ‡é¢˜ & é»‘ä½“å››å· & Arial 14pt & 24/6 pt & 20pt \\ % äºŒçº§èŠ‚æ ‡é¢˜ & 黑体 13pt & Arial 13pt & 12/6 pt & 20pt \\ % ä¸‰çº§èŠ‚æ ‡é¢˜ & 黑体å°å››å· & Arial 12pt & 12/6 pt & 20pt \\ % \bottomrule % \end{tabular} % \end{center} % % è¿™é‡Œä¸‰çº§èŠ‚æ ‡é¢˜çš„â€œä¸æ–‡é»‘体å°å››å·â€å’Œâ€œè‹±æ–‡ Arial 13ptâ€ä¸ä¸€è‡´ï¼Œå– 13pt。 % \begin{macrocode} \newcommand\thu@set@section@format{% \ifthu@degree@bachelor \ctexset{% chapter = { format = \centering\sffamily\fontsize{16bp}{20.8bp}\selectfont, titleformat = \thu@stretch{3em}, aftername = \quad, beforeskip = 27bp, afterskip = 27bp, }, section = { format = \sffamily\fontsize{14bp}{20bp}\selectfont, aftername = \quad, beforeskip = 24bp, afterskip = 6bp, }, subsection = { format = \sffamily\fontsize{13bp}{20bp}\selectfont, aftername = \quad, beforeskip = 12bp, afterskip = 6bp, }, subsubsection = { format = \sffamily\fontsize{12bp}{20bp}\selectfont, aftername = \quad, beforeskip = 12bp, afterskip = 6bp, }, }% \ifthu@main@language@chinese \ctexset{ chapter = { name = {第,ç« }, number = \thechapter, }, }% \else \ctexset{ chapter = { name = \chaptername\space, number = \thu@english@number{chapter}, }, }% \fi % \end{macrocode} % % ç ”ç©¶ç”Ÿè¦æ±‚: % \begin{itemize} % \item å„ç« æ ‡é¢˜ï¼Œä¾‹å¦‚ï¼šâ€œ\textsf{第 1 ç« å¼•è¨€}â€ã€‚ % % ç« åºå·ä¸Žç« å之间空一个汉å—符。 % 采用黑体三å·å—,居ä¸ä¹¦å†™ï¼Œå•å€è¡Œè·ï¼Œ % 段å‰ç©º 24 磅,段åŽç©º 18 磅。 % % \item ä¸€çº§èŠ‚æ ‡é¢˜ï¼Œä¾‹å¦‚ï¼šâ€œ\textsf{2.1 实验装置与实验方法}â€ã€‚ % % èŠ‚æ ‡é¢˜åºå·ä¸Žæ ‡é¢˜å之间空一个汉å—符(下åŒï¼‰ã€‚ % 采用黑体四å·ï¼ˆ14pt)å—居左书写,行è·ä¸ºå›ºå®šå€¼ 20 磅, % 段å‰ç©º 24 磅,段åŽç©º 6 磅。 % % \item äºŒçº§èŠ‚æ ‡é¢˜ï¼Œä¾‹å¦‚ï¼šâ€œ\textsf{2.1.1 实验装置}â€ã€‚ % % 采用黑体 13pt å—居左书写,行è·ä¸ºå›ºå®šå€¼ 20 磅, % 段å‰ç©º 12 磅,段åŽç©º 6 磅。 % % \item ä¸‰çº§èŠ‚æ ‡é¢˜ï¼Œä¾‹å¦‚ï¼šâ€œ\textsf{2.1.2.1 归纳法}â€ã€‚ % % 采用黑体å°å››å·ï¼ˆ12pt)å—居左书写,行è·ä¸ºå›ºå®šå€¼ 20 磅, % 段å‰ç©º 12 磅,段åŽç©º 6 磅。 % \end{itemize} % % 由于 Word 的行è·ç®—法ä¸åŒï¼Œè¿™é‡Œè¿›è¡Œäº†ä¸€äº›è°ƒæ•´ä½¿å¾—视觉上更接近。 % \begin{macrocode} \else \ctexset{% chapter = { titleformat = {}, beforeskip = 27bp, afterskip = 27bp, number = \thechapter, }, section = { beforeskip = 24bp, afterskip = 6bp, }, subsection = { beforeskip = 12bp, afterskip = 6bp, }, subsubsection = { beforeskip = 12bp, afterskip = 6bp, }, }% \ifthu@main@language@chinese \ctexset{% chapter = { format = \centering\sffamily\sanhao, nameformat = {}, titleformat = {}, name = {第,ç« }, aftername = \quad, }, section = { format = \sffamily\fontsize{14bp}{20bp}\selectfont, aftername = \quad, }, subsection = { format = \sffamily\fontsize{13bp}{20bp}\selectfont, aftername = \quad, }, subsubsection = { format = \sffamily\fontsize{12bp}{20bp}\selectfont, aftername = \quad, }, }% \else \ctexset{% chapter = { format = \centering\sffamily\bfseries\fontsize{16bp}{20bp}\selectfont, nameformat = \MakeUppercase, titleformat = \MakeUppercase, name = \chaptername\space, aftername = \space, }, section = { format = \sffamily\bfseries\fontsize{14bp}{20bp}\selectfont, aftername = \space, }, subsection = { format = \sffamily\bfseries\fontsize{13bp}{20bp}\selectfont, aftername = \space, }, subsubsection = { format = \sffamily\bfseries\fontsize{12bp}{20bp}\selectfont, aftername = \space, }, }% \fi \fi } \thu@set@section@format \thu@option@hook{degree}{\thu@set@section@format} \thu@option@hook{main-language}{\thu@set@section@format} % \end{macrocode} % % \begin{macrocode} \newcommand\thu@english@number[1]{% \expandafter\ifcase\csname c@#1\endcsname Zero\or One\or Two\or Three\or Four\or Five\or Six\or Seven\or Eight\or Nine\or Ten\or Eleven\or Twelve\or Thirteen\or Fourteen\or Fifteen\or Sixteen\or Seventeen\or Eighteen\or Nineteen\or Twenty\or \thu@error{You are genius}% \fi } % \end{macrocode} % % \begin{macro}{\thu@chapter*} % 默认的 \cs{chapter*} å¾ˆéš¾åŒæ—¶æ»¡è¶³ç ”ç©¶ç”Ÿé™¢å’Œæœ¬ç§‘ç”Ÿçš„è®ºæ–‡è¦æ±‚ã€‚æœ¬ç§‘è®ºæ–‡è¦æ±‚所有的 % ç« éƒ½å‡ºçŽ°åœ¨ç›®å½•é‡Œï¼Œæ¯”å¦‚æ‘˜è¦ã€Abstractã€ä¸»è¦ç¬¦å·è¡¨ç‰ï¼Œæ‰€ä»¥å¯ä»¥ç®€å•的扩展默 % 认\cs{chapter*} å®žçŽ°è¿™ä¸ªç›®çš„ã€‚ä½†æ˜¯ç ”ç©¶ç”Ÿåˆä¸è¦è¿™äº›å‡ºçŽ°åœ¨ç›®å½•ä¸ï¼Œè€Œä¸”致谢和声明 % éƒ¨åˆ†çš„ç« åã€é¡µçœ‰å’Œç›®å½•都ä¸åŒï¼Œæ‰€ä»¥å®šä¹‰ä¸€ä¸ªçµæ´»çš„ \cs{thu@chapter*} 专门处ç†è¿™äº› % è¦æ±‚。 % % \cs{thu@chapter*}\oarg{tocline}\marg{title}\oarg{header}: tocline 是出现在目录 % ä¸çš„æ¡ç›®ï¼Œå¦‚æžœä¸ºç©ºåˆ™æ¤ chapter ä¸å‡ºçŽ°åœ¨ç›®å½•ä¸ï¼Œå¦‚æžœçœç•¥è¡¨ç¤ºç›®å½•出现 titleï¼› % title æ˜¯ç« æ ‡é¢˜ï¼›header æ˜¯é¡µçœ‰å‡ºçŽ°çš„æ ‡é¢˜ï¼Œå¦‚æžœå¿½ç•¥åˆ™å– titleã€‚é€šè¿‡è¿™ä¸ªå®æˆ‘æ‰çœŸ % æ£ä½“会到 \TeX{} macro 的力é‡ï¼ % \begin{macrocode} \newcommand\thu@pdfbookmark[2]{} \newcommand\thu@phantomsection{} \NewDocumentCommand\thu@chapter{s o m o}{% \IfBooleanF{#1}{% \thu@error{You have to use the star form: \string\thu@chapter*}% }% \if@openright\cleardoublepage\else\clearpage\fi% \IfValueTF{#2}{% \ifthenelse{\equal{#2}{}}{% \thu@pdfbookmark{0}{#3}% }{% \thu@phantomsection \addcontentsline{toc}{chapter}{#2}% }% }{% \thu@phantomsection \addcontentsline{toc}{chapter}{#3}% }% \chapter*{#3}% \IfValueTF{#4}{% \ifthenelse{\equal{#4}{}}{% \@mkboth{}{}% }{% \@mkboth{#4}{#4}% }% }{% \@mkboth{#3}{#3}% }% } % \end{macrocode} % \end{macro} % % % \subsubsection{目录} % \label{sec:toc} % 最多 4 层,å³: x.x.x.x,对应的命令和层åºå·åˆ†åˆ«æ˜¯ï¼š % \cs{chapter}(0), \cs{section}(1), \cs{subsection}(2), \cs{subsubsection}(3)。 % \begin{macrocode} \setcounter{secnumdepth}{3} \setcounter{tocdepth}{2} % \end{macrocode} % % \begin{macro}{\tableofcontents} % 目录生æˆå‘½ä»¤ã€‚ % \begin{macrocode} \renewcommand\tableofcontents{% \ifthu@degree@graduate \thu@chapter*{\contentsname}% \else \ifthu@degree@bachelor \ctexset{chapter/titleformat = \thu@stretch{2.5em}}% \thu@chapter*[]{\contentsname}% \ctexset{chapter/titleformat = \thu@stretch{3em}}% \else \thu@chapter*[]{\contentsname}% \fi \fi \@starttoc{toc}% } \thu@define@key{ toc-chapter-style = { name = toc@chapter@style, choices = { arial, times, }, default = arial, }, } \thu@option@hook{toc-chapter-style}{\thu@deprecate{"toc-chapter-style" option}{}} \newcommand\thu@contents@label@delimiter{% \ifthu@degree@bachelor \ifthu@main@language@chinese \space \else \quad \fi \else \quad \fi } \newcommand\thu@leaders{\nobreak\titlerule*[4bp]{.}\nobreak} \newcommand\thu@set@toc@format{% \contentsmargin{\z@}% % \end{macrocode} % % 本科生: % 目录从第 1 ç« å¼€å§‹ï¼Œæ¯ç« æ ‡é¢˜ç”¨é»‘ä½“å°å››å·å—,行间è·ä¸º 20pt, % 行å‰ç©º 6pt,行åŽç©º 0pt。 % å…¶å®ƒçº§èŠ‚æ ‡é¢˜ç”¨å®‹ä½“å°å››å—,行间è·ä¸º 20pt。 % % 注æ„示例ä¸ç« æ ‡é¢˜çš„å—æ¯å’Œæ•°å—是衬线体,所以这里用 \cs{heiti}。 % 示例ä¸çš„ä¸€çº§å’ŒäºŒçº§èŠ‚æ ‡é¢˜åˆ†åˆ«ç¼©è¿› 1 å’Œ 1.5 个汉å—符。 % \begin{macrocode} \ifthu@degree@bachelor \ifthu@main@language@chinese \titlecontents{chapter} [0pt]{\sffamily} {\contentspush{\thecontentslabel\space}\thu@stretch{3em}}{\thu@stretch{3em}} {\rmfamily\thu@leaders\thecontentspage}% \titlecontents{section} [1em]{} {\contentspush{\thecontentslabel\space}}{} {\thu@leaders\thecontentspage}% \titlecontents{subsection} [2em]{} {\contentspush{\thecontentslabel\space}}{} {\thu@leaders\thecontentspage}% \else % \end{macrocode} % % æœ¬ç§‘ç”Ÿè‹±æ–‡ä¸“ä¸šè¦æ±‚â€œå·¦ä¾§æŒ‰çº§ä¾æ¬¡ç¼©è¿› 0.5cmâ€ã€‚ % \begin{macrocode} \ifthu@main@language@english \titlecontents{chapter} [\z@]{\addvspace{6bp}\sffamily} {\contentspush{\thecontentslabel\quad}}{} {\rmfamily\thu@leaders\thecontentspage}% \titlecontents{section} [0.5cm]{} {\contentspush{\thecontentslabel\quad}}{} {\thu@leaders\thecontentspage}% \titlecontents{subsection} [1cm]{} {\contentspush{\thecontentslabel\quad}}{} {\thu@leaders\thecontentspage}% \fi \fi % \end{macrocode} % % ç ”ç©¶ç”Ÿï¼š % \begin{enumerate} % \item 目录ä¸çš„ç« æ ‡é¢˜è¡Œé‡‡ç”¨é»‘ä½“å°å››å·å—ï¼Œå›ºå®šè¡Œè· 20 ç£…ï¼Œæ®µå‰æ®µåŽ 0 磅; % 其他内容采用宋体å°å››å·å—,行è·ä¸ºå›ºå®šå€¼ 20 磅, % 段å‰ã€æ®µåŽå‡ä¸º 0 磅。 % \item 目录ä¸çš„ç« æ ‡é¢˜è¡Œå±…å·¦ä¹¦å†™ï¼Œä¸€çº§èŠ‚æ ‡é¢˜è¡Œç¼©è¿› 1 个汉å—符, % äºŒçº§èŠ‚æ ‡é¢˜è¡Œç¼©è¿› 2 个汉å—符。 % \end{enumerate} % % 注æ„示例ä¸ç« æ ‡é¢˜çš„å—æ¯å’Œæ•°å—æ˜¯æ— è¡¬çº¿ä½“ï¼Œæ‰€ä»¥ç”¨è¿™é‡Œç”¨ \cs{sffamily}, % 但是页ç ä»ç„¶ç”¨ \cs{rmfamily}。 % \begin{macrocode} \else \ifthu@main@language@chinese \titlecontents{chapter} [\z@]{\sffamily} {\contentspush{\thecontentslabel\quad}}{} {\rmfamily\thu@leaders\thecontentspage}% \titlecontents{section} [1em]{} {\contentspush{\thecontentslabel\quad}}{} {\thu@leaders\thecontentspage}% \titlecontents{subsection} [2em]{} {\contentspush{\thecontentslabel\quad}}{} {\thu@leaders\thecontentspage}% \else \titlecontents{chapter} [\z@]{\heiti} {\contentspush{\MakeUppercase{\thecontentslabel}\space}\MakeUppercase}{\MakeUppercase} {\rmfamily\thu@leaders\thecontentspage}% \titlecontents{section} [1em]{} {\contentspush{\thecontentslabel\space}}{} {\thu@leaders\thecontentspage}% \titlecontents{subsection} [2em]{} {\contentspush{\thecontentslabel\space}}{} {\thu@leaders\thecontentspage}% \fi \fi } \thu@set@toc@format \thu@option@hook{degree}{\thu@set@toc@format} \thu@option@hook{main-language}{\thu@set@toc@format} % \end{macrocode} % \end{macro} % % % \subsubsection{å°é¢å’Œå°åº•} % \label{sec:cover} % å®šä¹‰å¯†çº§å‚æ•°ã€‚ % \begin{macrocode} \thu@define@key{ secret-level = { name = secret@level, }, secret-year = { name = secret@year, }, % \end{macrocode} % % 论文ä¸è‹±æ–‡é¢˜ç›®ã€‚ % \begin{macrocode} title = { default = {æ ‡é¢˜}, }, title* = { default = {Title}, name = title@en, }, % \end{macrocode} % % 作者ã€å¯¼å¸ˆã€å‰¯å¯¼å¸ˆã€è”åˆæŒ‡å¯¼è€å¸ˆã€‚ % \begin{macrocode} author = { default = {å§“å}, }, author* = { default = {Name of author}, name = author@en, }, student-id = { name = student@id, }, supervisor = { default = {导师姓å}, }, supervisor* = { default = {Name of supervisor}, name = supervisor@en, }, associate-supervisor = { name = associate@supervisor, }, associate-supervisor* = { name = associate@supervisor@en, }, co-supervisor = { name = co@supervisor, }, co-supervisor* = { name = co@supervisor@en, }, % Reserved for compatibility joint-supervisor = { name = co@supervisor, }, joint-supervisor* = { name = co@supervisor@en, }, % \end{macrocode} % % å¦ä½ä¸è‹±æ–‡ã€‚ % \begin{macrocode} degree-category = { default = {å·¥å¦åšå£«}, name = degree@category, }, degree-category* = { default = {Doctor of Philosophy}, name = degree@category@en, }, } % \end{macrocode} % % 院系ä¸è‹±æ–‡å称。 % \begin{macrocode} \thu@define@key{ department = { default = {计算机科å¦ä¸ŽæŠ€æœ¯ç³»}, }, % \end{macrocode} % % å¦ç§‘ä¸è‹±æ–‡å称。 % \begin{macrocode} discipline = { % default = {计算机科å¦ä¸ŽæŠ€æœ¯}, }, discipline* = { % default = {Computer Science and Technology}, name = discipline@en, }, } \thu@option@hook{discipline}{% \ifthu@degree@type@professional \thu@warning{`discipline' for professional degree is deprecated. Use `professional-field' instead.} \let\thu@professional@field\thu@discipline \let\thu@discipline\@empty \fi } \thu@option@hook{discipline*}{% \ifthu@degree@type@professional \thu@warning{`discipline*' for professional degree is deprecated. Use `professional-field*' instead.} \let\thu@professional@field@en\thu@discipline@en \let\thu@discipline@en\@empty \fi } % \end{macrocode} % % 专业领域。 % \begin{macrocode} \thu@define@key{ professional-field = { name = professional@field, }, professional-field* = { name = professional@field@en, }, % \end{macrocode} % % 工程领域。 % \begin{macrocode} engineering-field = { name = engineering@field, }, engineering-field* = { name = engineering@field@en, }, % \end{macrocode} % % è®ºæ–‡æˆæ–‡æ—¥æœŸã€‚ % \begin{macrocode} date = { default = {\the\year-\two@digits{\month}-\two@digits{\day}}, }, % \end{macrocode} % % åšå£«åŽä¸“用å°é¢å‚数。 % \begin{macrocode} clc, udc, id, discipline-level-1 = { default = {一级å¦ç§‘åç§°}, name = discipline@level@i, }, discipline-level-2 = { default = {二级å¦ç§‘åç§°}, name = discipline@level@ii, }, start-date = { name = start@date, default = {\the\year-\two@digits{\month}-\two@digits{\day}}, }, end-date = { name = end@date, default = {\the\year-\two@digits{\month}-\two@digits{\day}}, }, % \end{macrocode} % % 䏿–‡å°é¢åŽæ˜¯å¦ç”Ÿæˆä¹¦è„Šé¡µã€‚ % \begin{macrocode} include-spine = { name = include@spine, choices = { false, true, }, default = false, }, } % \end{macrocode} % % è¾“å‡ºæ—¥æœŸçš„ç»™å®šæ ¼å¼ï¼š\cs{thu@format@date}\marg{format}\marg{date}, % 其䏿 ¼å¼ \meta{format} 接å—ä¸‰ä¸ªå‚æ•°åˆ†åˆ«å¯¹åº”å¹´ã€æœˆã€æ—¥ï¼Œ % \meta{date} 是 ISO æ ¼å¼çš„æ—¥æœŸï¼ˆyyyy-mm-dd)。 % \begin{macrocode} \newcommand\thu@format@date[2]{% \edef\thu@@date{#2}% \def\thu@@process@date##1-##2-##3\@nil{% #1{##1}{##2}{##3}% }% \expandafter\thu@@process@date\thu@@date\@nil } \newcommand\thu@date@zh@digit[3]{#1 å¹´ \number#2 月 \number#3 æ—¥} \newcommand\thu@date@zh@digit@short[3]{#1 å¹´ \number#2 月} \newcommand\thu@date@zh@short[3]{\zhdigits{#1}å¹´\zhnumber{#2}月} \newcommand\thu@date@month[1]{% \ifcase\number#1\or January\or February\or March\or April\or May\or June\or July\or August\or September\or October\or November\or December% \fi } \newcommand\thu@date@en@short[3]{\thu@date@month{#2}, #1} % \end{macrocode} % % 下划线命令。 % \pkg{ulem} 的下划线 \cs{uline} å¯ä»¥æŽ§åˆ¶ç²—细和深度。 % \begin{macrocode} \newcommand\thu@underline[2][6em]{\hskip1pt\underline{\hb@xt@ #1{\hss#2\hss}}\hskip3pt} \newcommand\thu@uline[2][6em]{\uline{\hb@xt@ #1{\hss#2\hss}}} % \end{macrocode} % % 将内容拉伸或压缩到固定宽度。 % \begin{macrocode} \newcommand\thu@fixed@box[2]{% \begingroup \ifLuaTeX \ltjsetparameter{kanjiskip = {0pt plus 2filll minus 1filll}}% \else \renewcommand\CJKglue{\hspace{0pt plus 2filll minus 1filll}}% \fi \makebox[#1][l]{#2}% \endgroup } % \end{macrocode} % % 如果内容å°äºŽç»™å®šå®½åº¦ï¼Œåˆ™æ‹‰ä¼¸è‡³è¯¥å®½åº¦ï¼Œå¦åˆ™å–自然宽度。 % \begin{macrocode} \newbox\thu@stretch@box \newcommand\thu@stretch[2]{% \sbox\thu@stretch@box{#2}% \ifdim \wd\thu@stretch@box < #1\relax \begingroup \ifLuaTeX \ltjsetparameter{kanjiskip = {0pt plus 2filll}}% \else \renewcommand\CJKglue{\hspace{0pt plus 2filll}}% \fi \makebox[#1][l]{#2}% \endgroup \else \box\thu@stretch@box \fi } % \end{macrocode} % % 如果内容å°äºŽç»™å®šå®½åº¦ï¼Œåˆ™åœ¨å³ä¾§å¡«å……空白至该宽度,å¦åˆ™å–自然宽度。 % \begin{macrocode} \newbox\thu@pad@box \newcommand\thu@pad[2]{% \sbox\thu@pad@box{#2}% \ifdim \wd\thu@pad@box < #1\relax \makebox[#1][l]{\box\thu@pad@box}% \else \box\thu@pad@box \fi } % \end{macrocode} % % 导师的姓åå’ŒèŒç§°ä½¿ç”¨â€œ,â€åˆ†å¼€ï¼Œæ‰€ä»¥è¿™é‡Œç”¨ \pkg{kvsetkeys} çš„ \cs{comma@parse} æ¥å¤„ç†ã€‚ % \begin{macrocode} \newcounter{thu@csl@count} \newcommand\thu@name@title@process[1]{% \ifcase\c@thu@csl@count % == 0 \gdef\thu@@name{#1}% \or % == 1 \gdef\thu@@title{#1}% \fi \stepcounter{thu@csl@count}% } \newcommand\thu@name@title@format[2]{% \thu@pad{3cm}{\thu@stretch{4em}{#1}}% \thu@stretch{3em}{#2}% } \newcommand\thu@name@title[1]{% \setcounter{thu@csl@count}{0}% \gdef\thu@@name{}% \gdef\thu@@title{}% \expandafter\comma@parse\expandafter{#1}{\thu@name@title@process}% \thu@name@title@format{\thu@@name}{\thu@@title}% } % \end{macrocode} % % \myentry{å°é¢} % \begin{macro}{\maketitle} % 生æˆå°é¢ï¼ˆé¢˜å页)总命令。 % \begin{macrocode} \renewcommand\maketitle{% \cleardoublepage \pagenumbering{Alph}% \thu@pdfbookmark{-1}{\thu@title}% \thu@titlepage \ifthu@include@spine@true \spine \fi \ifthu@degree@graduate \ifthu@thesis@type@thesis \cleardoublepage \thu@titlepage@en \fi \fi \clearpage } % \end{macrocode} % \end{macro} % % \begin{macro}{\thu@titlepage} % 䏿–‡å°é¢ï¼ˆé¢˜å页) % % \begin{macrocode} \newcommand\thu@titlepage{% \thusetup{language = chinese}% \ifthu@degree@graduate % ç ”ç©¶ç”Ÿ \thu@titlepage@thesis \else \ifthu@degree@bachelor % 本科生 \thu@titlepage@bachelor \else \ifthu@degree@postdoc % åšåŽ \thu@cover@postdoc \cleardoublepage \thu@titlepage@postdoc \fi \fi \fi \thu@reset@main@language } % \end{macrocode} % \end{macro} % % \myentry{ç ”ç©¶ç”Ÿä¸æ–‡å°é¢} % 《写作指å—ã€‹è§„å®šä¸æ–‡å°é¢é¡µè¾¹è·ï¼š % 上—6. 0 厘米,下—5.5 厘米,左—4.0 厘米,å³â€”4.0 厘米,装订线 0 厘米。 % ç„¶è€Œä½œä¸ºäº‹å®žæ ‡å‡†çš„ Word 模æ¿çš„é¡µè¾¹è·æ˜¯ä¸Šä¸‹ 6.0 åŽ˜ç±³ï¼Œå·¦å³ 4.0 厘米。 % 这里缩å°ä¸Šè¾¹è·ä»¥æ–¹ä¾¿æŽ’版ä¿å¯†ä¿¡æ¯ã€‚ % \begin{macrocode} \newcommand\thu@titlepage@thesis{% \newgeometry{ top = 2cm, bottom = 6cm, hmargin = 3.5cm, }% \thispagestyle{empty}% \null\vskip 8.1pt% \begingroup \centering \parbox[t][2cm][t]{\textwidth}{% \hskip -21.5pt% \thu@titlepage@secret }\par \vskip 40.5pt% \begingroup \sffamily\fontsize{26bp}{46.8bp}\selectfont \thu@title\par \endgroup \ifthu@main@language@english \vskip 5.4pt% \begingroup \sffamily\bfseries\fontsize{20bp}{31.2bp}\selectfont \thu@title@en\par \endgroup \vskip -9.2pt% \fi \vskip 24.1pt% \thu@title@page@degree@category\par \vfill \ifthu@degree@type@academic \parbox[t][7.25cm][t]{\textwidth}{% \fangsong\fontsize{16bp}{31.2bp}\selectfont \thu@titlepage@info }\par \else \parbox[t][5.25cm][b]{\textwidth}{% \fangsong\fontsize{16bp}{31.2bp}\selectfont \thu@titlepage@info }\par \vskip 62pt% \fi \parbox[t][1.03cm][t]{\textwidth}{\centering\thu@titlepage@date}\par \endgroup \clearpage \restoregeometry } % \end{macrocode} % % 选题报告å°é¢éœ€è¦æä¾›å¦å· % \begin{macrocode} \newcommand\thu@set@student@id{% \ifthu@thesis@type@proposal\else \ifx\thu@student@id\@empty\else \thu@warning{`student-id' in "\protect\thusetup" would be ignored when `thesis-type' is not proposal.}% \fi \fi } \thu@set@student@id \thu@option@hook{thesis-type}{\thu@set@student@id} \thu@option@hook{student-id}{\thu@set@student@id} % \end{macrocode} % % æ¶‰å¯†ä¿¡æ¯ % \begin{macrocode} \newcommand\thu@titlepage@secret{% \sffamily\sanhao \ifx\thu@secret@level\@empty \phantom{秘密}% \else \thu@secret@level\symbol{"2605}\makebox[3em][c]{\thu@secret@year}å¹´% \fi\par } % \end{macrocode} % % 申请å¦ä½çš„å¦ç§‘门类或专业å¦ä½ç±»åˆ«: 三å·ï¼ˆ16bp)宋体å—,å—è·å»¶ä¼¸ 0.5bp, % 所以 \cs{CJKglue} 应该设为 1 bp。 % \begin{macrocode} \newcommand\thu@title@page@degree@category{% \begingroup \fontsize{16bp}{22bp}\selectfont \ifLuaTeX \fontspec{\CJK@family}% \ltjsetparameter{kanjiskip = {1bp}}% \else \CJKfamily+{}% \renewcommand\CJKglue{\hspace{1bp}}% \fi \ifthu@thesis@type@thesis (申请清åŽå¤§å¦\thu@degree@category \ifthu@degree@type@professional 专业% \fi å¦ä½è®ºæ–‡)% \else \ifthu@thesis@type@proposal (清åŽå¤§å¦% \ifthu@degree@doctor åšå£«% \else \ifthu@degree@master 硕士% \fi \fi å¦ä½è®ºæ–‡é€‰é¢˜æŠ¥å‘Š)% \fi \fi \par \endgroup } % \end{macrocode} % % ä½œè€…åŠæŒ‡å¯¼æ•™å¸ˆä¿¡æ¯ % \begin{macrocode} \newcommand\thu@titlepage@info{% \thu@titlepage@info@tabular{2.3cm}{2.85cm}{2.75cm}{0.77cm}{% \thu@info@item{培养å•ä½}{}{\thu@department}% \ifthu@degree@type@academic \thu@info@item{å¦ç§‘}{}{\thu@discipline}% \thu@info@item{ç ”ç©¶ç”Ÿ}{\thu@name@title}{\thu@author}% \else \thu@info@item{专业领域}{}{\thu@professional@field}% \thu@info@item{工程领域}{}{\thu@engineering@field}% \thu@info@item{申请人}{\thu@name@title}{\thu@author}% \fi \ifthu@thesis@type@proposal \ifx\thu@student@id\@empty \thu@warning{Missing option `student-id' in "\protect\thusetup", ID will not appear on cover.}% \else \thu@info@item{å¦å·}{}{\thu@student@id}% \fi \fi \thu@info@item{指导教师}{\thu@name@title}{\thu@supervisor}% \thu@info@item{副指导教师}{\thu@name@title}{\thu@associate@supervisor}% \thu@info@item{è”åˆæŒ‡å¯¼æ•™å¸ˆ}{\thu@name@title}{\thu@co@supervisor}% }\par } % \end{macrocode} % % æ ‡é¢˜é¡µä½œè€…ä¿¡æ¯è¡¨ % \texttt{\#1}: è¡¨æ ¼å·¦ä¾§è‡³ç‰ˆå¿ƒçš„è·ç¦»ï¼›\\ % \texttt{\#2}: “培养å•ä½â€çš„边框宽度;\\ % \texttt{\#3}: “培养å•ä½â€çš„æ–‡å—宽度;\\ % \texttt{\#4}: 冒å·çš„边框;\\ % \texttt{\#5}: è¡¨æ ¼å†…å®¹ã€‚ % \begin{macrocode} \newcommand\thu@titlepage@info@tabular[5]{% \def\thu@info@item##1##2##3{% \ifx##3\@empty\else \thu@pad{#2}{\thu@fixed@box{#3}{##1}}% \thu@pad{#4}{:}% ##2{##3}\\ \fi }% \hspace{#1}% \begin{tabular}{l}% \renewcommand\arraystretch{1}% #5% \end{tabular}% } % \end{macrocode} % % è®ºæ–‡æˆæ–‡æ‰“å°çš„æ—¥æœŸï¼Œç”¨ä¸‰å·å®‹ä½“汉å—,å—è·å»¶ä¼¸ 0.5bp, % 所以 \cs{CJKglue} 应该设为 1 bp。 % \begin{macrocode} \newcommand\thu@titlepage@date{% \begingroup \sanhao \ifLuaTeX \ltjsetparameter{kanjiskip = {1bp}}% \else \renewcommand\CJKglue{\hspace{1bp}}% \fi \thu@format@date{\thu@date@zh@short}{\thu@date}\par \endgroup } % \end{macrocode} % % \myentry{ç ”ç©¶ç”Ÿè‹±æ–‡å°é¢} % \begin{macro}{\thu@titlepage@en} % \begin{macrocode} \newcommand{\thu@titlepage@en}{% \newgeometry{ top = 5.5cm, bottom = 5cm, hmargin = 3.4cm, }% \thispagestyle{empty}% \thusetup{language = english}% \ifthu@degree@type@academic \thu@titlepage@en@graduate@academic \else \thu@titlepage@en@graduate@professional \fi \thu@reset@main@language \clearpage \restoregeometry } \newcommand\thu@titlepage@en@graduate@academic{% \begingroup \centering \null\vskip -0.31cm% \parbox[t][143bp][t]{\textwidth}{% \centering\thu@titlepage@en@title }\par \sanhao[1.725]% \thu@titlepage@en@degree \vskip 3bp% in\par \vskip 3.5bp% {\bfseries\sffamily\thu@discipline@en\par} \vfill {\sffamily by\par} \vskip 0.24cm% {\sffamily\bfseries\thu@author@en\par}% \vskip 0.18cm% \parbox[t][3.0cm][t]{\textwidth}{% \centering \xiaosan[2.1]% \thu@titlepage@en@supervisor }\par \thu@titlepage@en@date \vskip 0.7cm% \endgroup } \newcommand\thu@titlepage@en@graduate@professional{% \begingroup \centering \null\vskip -0.31cm% \parbox[t][143bp][t]{\textwidth}{% \centering\thu@titlepage@en@title }\par \sanhao[1.725]% \thu@titlepage@en@degree \vfill {\sffamily by\par} \vskip 0.24cm% {\sffamily\bfseries\thu@author@en\par}% \ifx\thu@professional@field@en\empty \vskip 1.95cm% \else \vskip -0.1cm% {\sffamily\bfseries(\thu@professional@field@en)\par}% \vskip 1.1cm% \fi \parbox[t][3.37cm][t]{\textwidth}{% \centering \xiaosan[1.82]% \thu@titlepage@en@supervisor }\par \thu@titlepage@en@date \vskip 0.3cm% \endgroup } \newcommand\thu@titlepage@en@title{% \begingroup % 对é½åˆ°ç½‘æ ¼ï¼Œæ¯è¡Œ 15.6bp \sffamily\bfseries\fontsize{20bp}{31.2bp}\selectfont \thu@title@en\par \endgroup } \newcommand\thu@thesis@name@en{% \ifthu@degree@master Thesis% \else Dissertation% \fi } \newcommand\thu@titlepage@en@degree{% \thu@thesis@name@en{} submitted to\par {\bfseries Tsinghua University\par}% in partial fulfillment of the requirement\par for the \ifthu@degree@type@professional professional \fi degree of\par {\sffamily\bfseries\thu@degree@category@en\par}% } \newcommand\thu@titlepage@en@supervisor{% \begin{tabular}{r@{\makebox[20.5bp][l]{\hspace{2bp}:}}l}% \renewcommand\arraystretch{1}% \thu@thesis@name@en{} Supervisor & \thu@supervisor@en \\ \ifx\thu@associate@supervisor@en\@empty\else Associate Supervisor & \thu@associate@supervisor@en \\ \fi \ifx\thu@co@supervisor@en\@empty\else Co-supervisor & \thu@co@supervisor@en \\ \fi \end{tabular}% } \newcommand\thu@titlepage@en@date{% \begingroup \sffamily\bfseries\sanhao \thu@format@date{\thu@date@en@short}{\thu@date}\par \endgroup } % \end{macrocode} % \end{macro} % % \myentry{本科生å°é¢} % 本科生å°é¢è¦æ±‚: % \begin{itemize} % \item 题目:1 å·é»‘体å—,1.2 å€è¡Œè·ã€‚ % \item 系别ã€ä¸“业ã€å§“ååŠæŒ‡å¯¼æ•™å¸ˆä¿¡æ¯éƒ¨åˆ†ä½¿ç”¨ä¸‰å·ä»¿å®‹\_GB2312 å—。 % \item è®ºæ–‡æˆæ–‡æ‰“å°çš„æ—¥æœŸç”¨é˜¿æ‹‰ä¼¯æ•°å—,采用å°å››å·å®‹ä½“。 % \item 涉密的论文在å°é¢å³ä¸Šè§’处注明论文密级,采用å°å››å·å®‹ä½“。 % \end{itemize} % % 外文系英è¯ä¸“ä¸šè¦æ±‚é¢˜ç›®å…ˆå†™ä¸æ–‡æ ‡é¢˜ï¼Œå†å†™è‹±æ–‡æ ‡é¢˜ï¼Œå—å· 26pt,32 磅行è·ã€‚ % \begin{macrocode} \newcommand\thu@titlepage@bachelor{% \newgeometry{ top = 3.8cm, bottom = 3.2cm, left = 3.2cm, % 装订线é å·¦ 0.2 cm right = 3cm, }% \thispagestyle{empty}% \begingroup \centering \parbox[t][0cm][t]{\textwidth}{% \hfill \xiaosi \ifx\thu@secret@level\@empty\else \thu@secret@level\space\thu@secret@year å¹´\par \fi }\par \endgroup \vspace{19bp}% \begingroup \centering \hspace*{-5bp}% \includegraphics[width=50.4bp]{thu-fig-logo.pdf}% \hspace{10bp}% \raisebox{7bp}{\includegraphics[width=117bp]{thu-text-logo.pdf}}% \par \vspace{17bp}% \begingroup \sffamily\bfseries\xiaochu\ziju{0.3}% 综åˆè®ºæ–‡è®ç»ƒ% \ifthu@thesis@type@proposal \\开题报告 \fi \par \endgroup \vspace{48bp}% \parbox[t][136bp]{\linewidth}{% \centering \heiti\fontsize{26bp}{32.5bp}\selectfont \thu@title\par \ifthu@main@language@english \thusetup{language=english}% \thu@title@en\par \thusetup{language=chinese}% \fi }\par \endgroup \begingroup \fangsong \fontsize{16bp}{30.96bp}\selectfont \noindent \def\thu@name@title@format##1##2{% \thu@stretch{4em}{##1}% \hspace{1.5em}% \thu@stretch{2.5em}{##2}% }% \thu@titlepage@info@tabular{81bp}{2.5cm}{4em}{0.82cm}{% \thu@info@item{系别}{}{\thu@department}% \thu@info@item{专业}{}{\thu@discipline}% \thu@info@item{å§“å}{\thu@name@title}{\thu@author}% \thu@info@item{指导教师}{\thu@name@title}{\thu@supervisor}% \thu@info@item{副指导教师}{\thu@name@title}{\thu@associate@supervisor}% \thu@info@item{è”åˆæŒ‡å¯¼æ•™å¸ˆ}{\thu@name@title}{\thu@co@supervisor}% }\par \endgroup \vfill \begingroup \centering \fontsize{16bp}{24bp}\selectfont \ziju{0.03}% \thu@format@date{\thu@date@zh@short}{\thu@date}\par \endgroup \vspace*{60bp}% \clearpage \restoregeometry } % \end{macrocode} % % \myentry{åšå£«åŽå°é¢} % \begin{macrocode} \newcommand\thu@cover@postdoc{% \thispagestyle{empty}% \begin{center}% \renewcommand\ULthickness{0.7pt}% \vspace*{0.35cm}% {\sihao[2.6]% \thu@stretch{3.1em}{分类å·}\thu@underline[3.7cm]{\thu@clc}\hfill 密级\thu@underline[3.7cm]{\thu@secret@level}\par \thu@stretch{3.1em}{U D C}\thu@underline[3.7cm]{\thu@udc}\hfill ç¼–å·\thu@underline[3.7cm]{\thu@id}\par }% \vskip 3.15cm% {\sffamily\bfseries\xiaoer[2.6]% {\ziju{1.5}清åŽå¤§å¦\par}% {\ziju{0.5}åšå£«åŽç ”究工作报告\par}% }% \vskip 0.2cm% \parbox[t][4.0cm][c]{\textwidth}{% \centering\sihao[3.46]% \renewcommand\ULdepth{1em}% \expandafter\uline\expandafter{\thu@title}\par }\par \vskip 0.4cm% {\xiaosi\thu@author\par}% \vskip 1.4cm% {\xiaosi[1.58]% \renewcommand\ULdepth{0.9em}% å·¥ä½œå®Œæˆæ—¥æœŸ\quad \thu@uline[5.9cm]{% \thu@format@date{\thu@date@zh@digit@short}{\thu@start@date}—% \thu@format@date{\thu@date@zh@digit@short}{\thu@end@date} }\par \vskip 0.55cm% 报告æäº¤æ—¥æœŸ\quad \thu@uline[5.9cm]{\thu@format@date{\thu@date@zh@digit@short}{\thu@date}}\par }% \vskip 0.45cm% {\xiaosi[2]{\ziju{1}清åŽå¤§å¦}\quad (北京)\par}% \vskip 0.25cm% {\xiaosi[2]\thu@format@date{\thu@date@zh@digit@short}{\thu@date}\par}% \end{center}% } % \end{macrocode} % % \myentry{åšå£«åŽé¢˜å页} % \begin{macrocode} \newcommand\thu@titlepage@postdoc{% \thispagestyle{empty}% \begin{center}% \vspace*{1.5cm}% \parbox[t][3cm][c]{\textwidth}{% \centering\sanhao[1.95]\thu@title\par }\par \vskip 0.15cm% \parbox[t][3cm][c]{\textwidth}{% \centering\sihao[1.36]\thu@title@en\par }\par \vskip 0.4cm% {\xiaosi[2.6]% \begin{tabular}{l@{\quad}l}% \renewcommand\arraystretch{1}% \thu@stretch{11em}{åšå£«åŽå§“å} & \thu@author \\ \thu@stretch{11em}{æµåŠ¨ç«™ï¼ˆä¸€çº§å¦ç§‘)åç§°} & \thu@discipline@level@i \\ \thu@stretch{11em}{专\quad{}业(二级å¦ç§‘)åç§°} & \thu@discipline@level@ii \\ \end{tabular}\par }% \vskip 2.7cm% {\xiaosi[2.6]% ç ”ç©¶å·¥ä½œèµ·å§‹æ—¶é—´\quad\thu@format@date{\thu@date@zh@digit}{\thu@start@date}\par \vskip 0.1cm% ç ”ç©¶å·¥ä½œæœŸæ»¡æ—¶é—´\quad\thu@format@date{\thu@date@zh@digit}{\thu@end@date}\par }% \vskip 2.1cm% {\xiaosi[2.6]清åŽå¤§å¦äººäº‹å¤„(北京)\par}% \vskip 0.6cm% {\wuhao\thu@format@date{\thu@date@zh@digit@short}{\thu@date}\par}% \end{center}% } % \end{macrocode} % % \subsubsection{ç”辩委员会åå•} % \begin{environment}{committee} % å¦ä½è®ºæ–‡æŒ‡å¯¼å°ç»„ã€å…¬å¼€è¯„阅人和ç”辩委员会åå•。 % \begin{macrocode} \def\thu@committee@name{å¦ä½è®ºæ–‡æŒ‡å¯¼å°ç»„ã€å…¬å¼€è¯„阅人和ç”辩委员会åå•} \NewEnviron{committee}[1][]{% \ifthu@degree@graduate \cleardoublepage \let\thu@committee@file\@empty \kv@define@key{thu@committee}{name}{\let\thu@committee@name\kv@value}% \kv@define@key{thu@committee}{file}{\let\thu@committee@file\kv@value}% \kv@set@family@handler{thu@committee}{% \ifx\kv@value\relax \let\thu@committee@file\kv@key \else \kv@handled@false \fi }% \kvsetkeys{thu@committee}{#1}% \ifx\thu@committee@file\@empty \begingroup \ctexset{ chapter = { format = \centering\sffamily\fontsize{16bp}{20bp}\selectfont, afterskip = 49bp, }, section = { beforeskip = 26bp, afterskip = 9.5bp, format += \centering, numbering = false, afterindent = false, }, }% \thu@chapter*[]{\thu@committee@name}% \thispagestyle{empty}% \thusetup{language=chinese}% \BODY\clearpage \thu@reset@main@language \endgroup \else \thu@pdfbookmark{0}{\thu@committee@name}% \includepdf{\thu@committee@file}% \fi \fi } % \end{macrocode} % \end{environment} % % \subsubsection{授æƒè¯´æ˜Ž} % \begin{macro}{\copyrightpage} % 授æƒè¯´æ˜Ž % \begin{macrocode} \newcommand\copyrightpage[1][]{% \ifthu@degree@postdoc\relax\else \cleardoublepage \def\thu@@tmp{#1} \ifx\thu@@tmp\@empty \thusetup{language=chinese}% \ifthu@degree@bachelor \thu@copyright@page@bachelor \else \thu@copyright@page@graduate \fi \clearpage \thu@reset@main@language \else \thispagestyle{empty}% \thu@pdfbookmark{0}{关于å¦ä½è®ºæ–‡ä½¿ç”¨æŽˆæƒçš„说明}% \thu@phantomsection \kv@define@key{thu@copyright}{file}{\includepdf{\kv@value}}% \kv@set@family@handler{thu@copyright}{% \ifx\kv@value\relax \includepdf{\kv@key}% \else \kv@handled@false \fi }% \kvsetkeys{thu@copyright}{#1}% \fi \fi } % \end{macrocode} % % æ”¯æŒæ‰«ææ–‡ä»¶æ›¿æ¢ã€‚ % \begin{macrocode} \newcommand{\thu@authorization@frontdate}{% æ—¥\ifthu@degree@bachelor\hspace{1em}\else\hspace{2em}\fi 期:} \newcommand\thu@copyright@page@graduate{% \begingroup \ctexset{ chapter = { format = {\centering\sffamily\erhao}, beforeskip = 40bp, afterskip = 36bp, }, }% \thu@chapter*[]{关于å¦ä½è®ºæ–‡ä½¿ç”¨æŽˆæƒçš„说明}% \endgroup \thispagestyle{empty}% \vskip 13bp% \begingroup \fontsize{14bp}{26bp}\selectfont 本人完全了解清åŽå¤§å¦æœ‰å…³ä¿ç•™ã€ä½¿ç”¨å¦ä½è®ºæ–‡çš„规定,å³ï¼š\par 清åŽå¤§å¦æ‹¥æœ‰åœ¨è‘—ä½œæƒæ³•规定范围内å¦ä½è®ºæ–‡çš„使用æƒï¼Œå…¶ä¸åŒ…括:% (1)\nobreak 已获å¦ä½çš„ç ”ç©¶ç”Ÿå¿…é¡»æŒ‰å¦æ ¡è§„定æäº¤å¦ä½è®ºæ–‡ï¼Œ% 妿 ¡å¯ä»¥é‡‡ç”¨å½±å°ã€ç¼©å°æˆ–å…¶ä»–å¤åˆ¶æ‰‹æ®µä¿å˜ç ”究生上交的å¦ä½è®ºæ–‡ï¼›\allowbreak (2)\nobreak 为教å¦å’Œç§‘ç ”ç›®çš„ï¼Œå¦æ ¡å¯ä»¥å°†å…¬å¼€çš„å¦ä½è®ºæ–‡ä½œä¸ºèµ„料在图书馆ã€èµ„料室ç‰åœºæ‰€ä¾›æ ¡å†…师生阅读,% æˆ–åœ¨æ ¡å›ç½‘ä¸Šä¾›æ ¡å†…å¸ˆç”Ÿæµè§ˆéƒ¨åˆ†å†…容;\allowbreak \ifthu@degree@doctor (3)\nobreak æ ¹æ®ã€Šä¸åŽäººæ°‘共和国å¦ä½æ³•》åŠä¸Šçº§æ•™è‚²ä¸»ç®¡éƒ¨é—¨å…·ä½“è¦æ±‚,å‘国家图书馆报é€ç›¸åº”çš„å¦ä½è®ºæ–‡ã€‚% \else (3)\nobreak 按照上级教育主管部门ç£å¯¼ã€æŠ½æŸ¥ç‰è¦æ±‚,报é€ç›¸åº”çš„å¦ä½è®ºæ–‡ã€‚% \fi \par 本人ä¿è¯éµå®ˆä¸Šè¿°è§„定。\par \endgroup \vskip 33bp% \begingroup \fontsize{12bp}{23.4bp}\selectfont \parindent\z@ \leftskip 43bp% 作者ç¾å:\hspace{4bp}\thu@underline[7em]{}\hspace{47bp}% 导师ç¾å:\hspace{4bp}\thu@underline[7em]{}\par \vskip 6bp% æ—¥\hspace{2em}期:\hspace{4bp}\thu@underline[7em]{}\hspace{47bp}% æ—¥\hspace{2em}期:\hspace{4bp}\thu@underline[7em]{}\par \endgroup } \newcommand\thu@copyright@page@bachelor{% \begingroup \ctexset{ chapter = { format = {\centering\sffamily\erhao}, beforeskip = 40bp, afterskip = 37bp, }, }% \thu@chapter*[]{关于论文使用授æƒçš„说明}% \endgroup \thispagestyle{empty}% \vspace*{13bp}% \begingroup \fontsize{14bp}{26bp}\selectfont 本人完全了解清åŽå¤§å¦æœ‰å…³ä¿ç•™ã€ä½¿ç”¨ç»¼åˆè®ºæ–‡è®ç»ƒè®ºæ–‡çš„规定,å³ï¼š% 妿 ¡æœ‰æƒä¿ç•™è®ºæ–‡çš„å¤å°ä»¶ï¼Œå…许论文被查阅和借阅;% 妿 ¡å¯ä»¥å…¬å¸ƒè®ºæ–‡çš„全部或部分内容,å¯ä»¥é‡‡ç”¨å½±å°ã€ç¼©å°æˆ–å…¶ä»–å¤åˆ¶æ‰‹æ®µä¿å˜è®ºæ–‡ã€‚\par \endgroup \vspace{71bp}% \begingroup \setlength{\parindent}{0pt}% \fontsize{12bp}{18bp}\selectfont \hspace*{42bp}作者ç¾å:\hspace{118bp}导师ç¾å:\par \vspace{11bp}% \hspace*{42bp}æ—¥\hspace{2em}期:\hspace{118bp}æ—¥\hspace{2em}期:\par \endgroup } % \end{macrocode} % \end{macro} % % \subsubsection{摘è¦} % \label{sec:abstractformat} % % \begin{macro}{\thu@clist@use} % ä¸åŒè®ºæ–‡æ ¼å¼å…³é”®è¯ä¹‹é—´çš„分割ä¸å¤ªç›¸åŒï¼Œæˆ‘们用 \option{keywords} å’Œ % \option{keywords*} æ¥æ”¶é›†å…³é”®è¯åˆ—表,然åŽç”¨æœ¬å‘½ä»¤æ¥ç”Ÿæˆç¬¦åˆè¦æ±‚çš„æ ¼å¼ï¼Œ % 类似于 \LaTeX3 çš„ \cs{clist\_use:Nn}。 % \begin{macrocode} \thu@define@key{ keywords, keywords* = { name = keywords@en, }, } \newcommand\thu@clist@use[2]{% \def\thu@@tmp{}% \def\thu@clist@processor##1{% \ifx\thu@@tmp\@empty \def\thu@@tmp{#2}% \else #2% \fi ##1% }% \expandafter\comma@parse\expandafter{#1}{\thu@clist@processor}% } % \end{macrocode} % \end{macro} % % \begin{environment}{abstract} % 䏿–‡æ‘˜è¦éƒ¨åˆ†çš„æ ‡é¢˜ä¸ºâ€œ\textbf{摘è¦}â€ï¼Œç”¨é»‘体三å·å—。 % 摘è¦å†…容用å°å››å·å—书写,两端对é½ï¼Œæ±‰å—用宋体,外文å—用 Times New Roman 体, % æ ‡ç‚¹ç¬¦å·ä¸€å¾‹ç”¨ä¸æ–‡è¾“入状æ€ä¸‹çš„æ ‡ç‚¹ç¬¦å·ã€‚ % \begin{macrocode} \newenvironment{abstract}{% \thusetup{language = chinese}% \ifthu@degree@graduate \begingroup \ifthu@main@language@english \ctexset{% chapter/format = \centering\sffamily\fontsize{16bp}{20bp}\selectfont, }% \fi \thu@chapter*{\thu@abstract@name}% \endgroup \else \thu@chapter*[]{\thu@abstract@name}% \fi }{% \par \null\par \ifthu@degree@postdoc \textbf{关键è¯ï¼š}% \else \noindent \textsf{关键è¯ï¼š}% \fi \thu@clist@use{\thu@keywords}{ï¼›}\par \gdef\thu@keywords{}% \thu@reset@main@language % switch back to main language } % \end{macrocode} % \end{environment} % % \begin{environment}{abstract*} % 英文摘è¦éƒ¨åˆ†çš„æ ‡é¢˜ä¸º \textbf{Abstract},用 Arial 体三å·å—。 % 摘è¦å†…容用å°å››å· Times New Roman。 % \begin{macrocode} \newenvironment{abstract*}{% \thusetup{language = english}% \ifthu@degree@bachelor \begingroup \ctexset{chapter/afterskip = 30bp}% \thu@chapter*[]{\thu@abstract@name@en}% \endgroup \else \ifthu@degree@graduate \thu@chapter*{\thu@abstract@name@en}% \else \thu@chapter*[]{\thu@abstract@name@en}% \fi \fi }{% \par \null\par \ifthu@degree@postdoc\else \noindent \fi \textbf{Keywords:} \thu@clist@use{\thu@keywords@en}{; }\par \thu@reset@main@language % switch back to main language } % \end{macrocode} % \end{environment} % % \subsubsection{符å·å’Œç¼©ç•¥è¯è¯´æ˜Ž} % \label{sec:denotationfmt} % \begin{environment}{denotation} % 符å·å’Œç¼©ç•¥è¯è¯´æ˜Žã€‚ % \begin{macrocode} \newenvironment{denotation}[1][2.5cm]{% \ifthu@degree@bachelor \ifthu@main@language@chinese \thu@chapter*[]{\thu@denotation@name}% \else \thu@chapter*{\thu@denotation@name}% \fi \else \ifthu@degree@graduate \thu@chapter*{\thu@denotation@name}% \else \thu@chapter*[]{\thu@denotation@name}% \fi \fi \begin{thu@denotation}[labelwidth=#1]% }{% \end{thu@denotation}% } \newlist{thu@denotation}{description}{1} \setlist[thu@denotation]{% nosep, font=\normalfont, align=left, leftmargin=!, % sum of the following 3 lengths labelindent=0pt, labelwidth=2.5cm, labelsep*=0.5cm, itemindent=0pt, } % \end{macrocode} % \end{environment} % % % \subsubsection{致谢以åŠå£°æ˜Ž} % \label{sec:ackanddeclare} % % \begin{environment}{acknowledgements} % 定义致谢环境 % \begin{macrocode} \newcommand{\thu@statement@text@bachelor}{% 本人郑é‡å£°æ˜Žï¼šæ‰€å‘ˆäº¤çš„综åˆè®ºæ–‡è®ç»ƒè®ºæ–‡ï¼Œæ˜¯æœ¬äººåœ¨å¯¼å¸ˆæŒ‡å¯¼ä¸‹ï¼Œç‹¬ç«‹è¿›è¡Œç ”究工作所å–å¾—çš„æˆæžœã€‚% 尽我所知,除文ä¸å·²ç»æ³¨æ˜Žå¼•ç”¨çš„å†…å®¹å¤–ï¼Œæœ¬è®ºæ–‡çš„ç ”ç©¶æˆæžœä¸åŒ…å«ä»»ä½•他人享有著作æƒçš„内容。% 对本论文所涉åŠçš„ç ”ç©¶å·¥ä½œåšå‡ºè´¡çŒ®çš„其他个人和集体,å‡å·²åœ¨æ–‡ä¸ä»¥æ˜Žç¡®æ–¹å¼æ ‡æ˜Žã€‚% } \newcommand{\thu@statement@text@graduate}{% 本人郑é‡å£°æ˜Žï¼šæ‰€å‘ˆäº¤çš„å¦ä½è®ºæ–‡ï¼Œæ˜¯æœ¬äººåœ¨å¯¼å¸ˆæŒ‡å¯¼ä¸‹ï¼Œç‹¬ç«‹è¿›è¡Œç ”究工作所å–å¾—çš„æˆæžœ% \ifx\thu@secret@level\@empty ,ä¸åŒ…嫿¶‰åŠå›½å®¶ç§˜å¯†çš„内容% \fi% 。尽我所知,除文ä¸å·²ç»æ³¨æ˜Žå¼•用的内容外,本å¦ä½è®ºæ–‡çš„ç ”ç©¶æˆæžœä¸åŒ…å«ä»»ä½•他人享有著作æƒçš„内容。% 对本论文所涉åŠçš„ç ”ç©¶å·¥ä½œåšå‡ºè´¡çŒ®çš„其他个人和集体,å‡å·²åœ¨æ–‡ä¸ä»¥æ˜Žç¡®æ–¹å¼æ ‡æ˜Žã€‚% } \newcommand{\thu@signature}{ç¾\hspace{1em}å:} \newcommand{\thu@backdate}{æ—¥\hspace{1em}期:} % \end{macrocode} % % 定义致谢与声明环境。 % \begin{macrocode} \newenvironment{acknowledgements}{% \@mainmatterfalse \thu@end@appendix@ref@section \thu@chapter*{\thu@acknowledgements@name}% }{% } % \end{macrocode} % \end{environment} % % \begin{macro}{statement} % å£°æ˜Žé¡µé¢æ ·å¼å’Œæ’å…¥å£°æ˜Žé¡µï¼ˆæ”¯æŒæ‰«ææ–‡ä»¶æ›¿æ¢ï¼‰ã€‚ % \begin{macrocode} \thu@define@key{ statement-page-style = { name = statement@page@style, choices = { auto, empty, plain, }, default = auto, } } \newcommand\statement[1][]{% \@mainmatterfalse \thu@end@appendix@ref@section \let\thu@statement@file\@empty \kv@define@key{thu@statement}{page-style}{\thusetup{statement-page-style=##1}}% \kv@define@key{thu@statement}{file}{\let\thu@statement@file\kv@value}% \kv@set@family@handler{thu@statement}{% \ifx\kv@value\relax \let\thu@statement@file\kv@key \else \kv@handled@false \fi }% \kvsetkeys{thu@statement}{#1}% \ifthu@statement@page@style@auto \ifx\thu@statement@file\@empty \thusetup{statement-page-style = empty}% \else \thusetup{statement-page-style = plain}% \fi \fi \ifx\thu@statement@file\@empty \thusetup{language=chinese}% \begingroup \ifthu@degree@graduate \ifthu@main@language@english \ctexset{% chapter/format = \centering\sffamily\fontsize{16bp}{20bp}\selectfont, }% \fi \fi \thu@chapter*{\thu@statement@name}% \endgroup \thispagestyle{\thu@statement@page@style}% \ifthu@degree@graduate \vspace{12bp}% \fontsize{12bp}{21bp}\selectfont \thu@statement@text@graduate\par \vspace{79bp}% \begingroup \noindent\hspace{5.4cm}\fontsize{13bp}{18bp}\selectfont \thu@signature\thu@underline[2.8cm]{}\hspace{-6bp}% \thu@backdate\thu@underline[2.3cm]{}\par \endgroup \else \ifthu@degree@bachelor \begingroup \renewcommand\CJKglue{\hspace{.1bp}}% \thu@statement@text@bachelor\par \endgroup \vspace{40bp}% \hfill ç¾\hspace{.5em}å:\thu@underline[2.75cm]{}\hspace{.5em}% æ—¥\hspace{.5em}期:\thu@underline[2.75cm]{}\par \fi \fi \thu@reset@main@language \else \includepdf[pagecommand={% \markboth{\thu@statement@name}{}% \thu@phantomsection \addcontentsline{toc}{chapter}{\thu@statement@name}% \thispagestyle{\thu@statement@page@style}% }]{\thu@statement@file}% \fi } % \end{macrocode} % \end{macro} % % 兼容旧版本ä¿ç•™ \env{acknowledgement}。 % \begin{macrocode} \let\acknowledgement\acknowledgements \let\endacknowledgement\endacknowledgements % \end{macrocode} % % \subsubsection{æ’图和附表清å•} % \label{sec:threelists} % 定义图表以åŠå…¬å¼ç›®å½•æ ·å¼ã€‚ % \begin{macrocode} \def\thu@listof#1{% #1: float type \setcounter{tocdepth}{2}% restore tocdepth in case being modified \@ifstar{\thu@deprecate{starred form of \protect\listof... command}{}}{}% \ifthu@degree@bachelor \ifthu@main@language@chinese \thu@chapter*[]{\csname list#1name\endcsname}% \else \thu@chapter*{\csname list#1name\endcsname}% \fi \else \ifthu@degree@graduate \thu@chapter*{\csname list#1name\endcsname}% \else \thu@chapter*[]{\csname list#1name\endcsname}% \fi \fi \@starttoc{\csname ext@#1\endcsname}% } % \end{macrocode} % % \begin{macro}{\listoffigures} % æ’图清å•。 % \begin{macrocode} \renewcommand\listoffigures{% \thu@listof{figure}% } \titlecontents{figure} [\z@]{} {\contentspush{\figurename~\thecontentslabel\thu@contents@label@delimiter}}{} {\thu@leaders\thecontentspage} % \end{macrocode} % \end{macro} % % \begin{macro}{\listoftables} % 附表清å•。 % \begin{macrocode} \renewcommand\listoftables{% \thu@listof{table}% } \titlecontents{table} [\z@]{} {\contentspush{\tablename~\thecontentslabel\thu@contents@label@delimiter}}{} {\thu@leaders\thecontentspage} % \end{macrocode} % \end{macro} % % \begin{macro}{\listoffiguresandtables} % å°†æ’图和附表åˆåœ¨ä¸€èµ·åˆ—出“æ’图和附表清å•â€ã€‚ % \begin{macrocode} \newcommand\listoffiguresandtables{% \ifthu@degree@bachelor \ifthu@main@language@chinese \thu@chapter*[]{\thu@list@figure@table@name}% \else \thu@chapter*{\thu@list@figure@table@name}% \fi \else \ifthu@degree@graduate \thu@chapter*{\thu@list@figure@table@name}% \else \thu@chapter*[]{\thu@list@figure@table@name}% \fi \fi \@starttoc{lof}% \par \null\par \@starttoc{lot}% } % \end{macrocode} % \end{macro} % % å…¬å¼çš„ caption 已过时。 % \begin{macrocode} \def\ext@equation{loe} \def\equcaption#1{% \thu@deprecate{"\protect\equcaption" command}{}% \addcontentsline{\ext@equation}{equation}% {\protect\numberline{#1}}} % \end{macrocode} % % å…¬å¼ç´¢å¼• \cs{listofequations} 已过时。 % \begin{macrocode} \newcommand\listofequations{% \thu@deprecate{"\protect\listofequations" command}{}% \thu@listof{equation}% } \titlecontents{equation} [0pt]{\addvspace{6bp}} {\contentspush{\thu@equation@name~\thecontentslabel\thu@contents@label@delimiter}}{} {\thu@leaders\thecontentspage} \contentsuse{equation}{loe} % \end{macrocode} % % % \subsection{å‚考文献} % \label{sec:ref} % % å‚è€ƒæ–‡çŒ®çš„æ ¼å¼æ ¹æ®ç”¨æˆ·é€‰æ‹©çš„ \BibTeX{}/BibLaTeX 分别进行é…置, % 所以使用 \pkg{filehook} 的方å¼ã€‚ % % 设置 \option{cite-style} 的接å£ï¼Œåªå¯¹ \BibTeX{} çš„ç¼–è¯‘æ–¹å¼æœ‰æ•ˆã€‚ % \begin{macrocode} \thu@define@key{ cite-style = { name = cite@style, choices = { super, inline, author-year, } } } % \end{macrocode} % % \subsubsection{BibTeX + \pkg{natbib} å®åŒ…} % % \begin{macrocode} \def\bibliographystyle#1{% \gdef\bu@bibstyle{#1}% \ifx\@begindocumenthook\@undefined\else \expandafter\AtBeginDocument \fi {\if@filesw \immediate\write\@auxout{\string\bibstyle{#1}}% \immediate\write\@auxout{\string\gdef\string\bu@bibstyle{#1}}% \fi}% } \def\bibliography#1{% \if@filesw \immediate\write\@auxout{\string\bibdata{\zap@space#1 \@empty}}% \immediate\write\@auxout{\string\gdef\string\bu@bibdata{#1}}% \fi \gdef\bu@bibdata{#1}% \@input@{\jobname.bbl}} % \end{macrocode} % % \BibTeX{} å’Œ \pkg{natbib} å®åŒ…çš„é…置。 % \begin{macrocode} \PassOptionsToPackage{compress}{natbib} \AtEndOfPackageFile*{natbib}{ % \end{macrocode} % \begin{macro}{\inlinecite} % ä¾èµ–于 \pkg{natbib} å®åŒ…,修改其ä¸çš„命令。 旧命令 \cs{onlinecite} ä¾ç„¶å¯ç”¨ã€‚ % \begin{macrocode} \DeclareRobustCommand\inlinecite{\@inlinecite} \def\@inlinecite#1{\begingroup\let\@cite\NAT@citenum\citep{#1}\endgroup} \let\onlinecite\inlinecite % \end{macrocode} % \end{macro} % % å‡ ç§ç§å¼•ç”¨æ ·å¼ï¼Œä¸Ž \file{bst} 文件åä¿æŒä¸€è‡´ï¼Œ % è¿™æ ·åœ¨ä½¿ç”¨ \cs{bibliographystyle} 选择å‚è€ƒæ–‡çŒ®è¡¨çš„æ ·å¼æ—¶ä¹Ÿä¼šè®¾ç½®å¯¹åº”çš„å¼•ç”¨æ ·å¼ã€‚ % \begin{macrocode} \newcommand\bibstyle@super{% \bibpunct{[}{]}{,}{s}{,}{\textsuperscript{,}}} \newcommand\bibstyle@inline{% \bibpunct{[}{]}{,}{n}{,}{,}} \@namedef{bibstyle@author-year}{% \bibpunct{(}{)}{;}{a}{,}{,}} % \end{macrocode} % % \begin{macrocode} \thu@option@hook{cite-style}{\@nameuse{bibstyle@\thu@cite@style}} % \end{macrocode} % % å‡ ç§ç§å¼•ç”¨æ ·å¼ï¼Œä¸Ž \file{bst} 文件åä¿æŒä¸€è‡´ï¼Œ % è¿™æ ·åœ¨ä½¿ç”¨ \cs{bibliographystyle} 选择å‚è€ƒæ–‡çŒ®è¡¨çš„æ ·å¼æ—¶ä¹Ÿä¼šè®¾ç½®å¯¹åº”çš„å¼•ç”¨æ ·å¼ã€‚ % \begin{macrocode} \@namedef{bibstyle@thuthesis-numeric}{\citestyle{super}} \@namedef{bibstyle@thuthesis-author-year}{\citestyle{author-year}} \@namedef{bibstyle@cell}{\citestyle{author-year}} \@namedef{bibstyle@thuthesis-bachelor}{\citestyle{super}} % \end{macrocode} % % ä¿®æ”¹å¼•ç”¨çš„æ ·å¼ã€‚ % 这里在 filehook 䏿— 法使用 \cs{patchcmd},所以åªèƒ½æ‰‹åЍé‡å®šä¹‰ã€‚ % % å°† \cs{citep} super å¼å¼•ç”¨çš„é¡µç æ”¹ä¸ºä¸Šæ ‡ã€‚ % \begin{macrocode} \renewcommand\NAT@citesuper[3]{% \ifNAT@swa \if*#2*\else #2\NAT@spacechar \fi % \unskip\kern\p@\textsuperscript{\NAT@@open#1\NAT@@close}% % \if*#3*\else\NAT@spacechar#3\fi\else #1\fi\endgroup} \unskip\kern\p@ \textsuperscript{% \NAT@@open#1\NAT@@close \if*#3*\else#3\fi }% \kern\p@ \else #1% \fi \endgroup } % \end{macrocode} % % å°† \cs{citep} numbers å¼å¼•ç”¨çš„é¡µç æ”¹ä¸ºä¸Šæ ‡å¹¶ç½®äºŽæ‹¬å·å¤–。 % \begin{macrocode} \renewcommand\NAT@citenum[3]{% \ifNAT@swa \NAT@@open \if*#2*\else #2\NAT@spacechar \fi % #1\if*#3*\else\NAT@cmt#3\fi\NAT@@close #1\NAT@@close \if*#3*\else \textsuperscript{#3}% \fi \else #1% \fi \endgroup } % \end{macrocode} % % 修改 \cs{citet} å¼•ç”¨çš„æ ·å¼ã€‚ % \begin{macrocode} \def\NAT@citexnum[#1][#2]#3{% \NAT@reset@parser \NAT@sort@cites{#3}% \NAT@reset@citea \@cite{\def\NAT@num{-1}\let\NAT@last@yr\relax\let\NAT@nm\@empty \@for\@citeb:=\NAT@cite@list\do {\@safe@activestrue \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}% \@safe@activesfalse \@ifundefined{b@\@citeb\@extra@b@citeb}{% {\reset@font\bfseries?} \NAT@citeundefined\PackageWarning{natbib}% {Citation `\@citeb' on page \thepage \space undefined}}% {\let\NAT@last@num\NAT@num\let\NAT@last@nm\NAT@nm \NAT@parse{\@citeb}% \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{% \let\NAT@name=\NAT@all@names \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}% \fi \ifNAT@full\let\NAT@nm\NAT@all@names\else \let\NAT@nm\NAT@name\fi \ifNAT@swa \@ifnum{\NAT@ctype>\@ne}{% \@citea \NAT@hyper@{\@ifnum{\NAT@ctype=\tw@}{\NAT@test{\NAT@ctype}}{\NAT@alias}}% }{% \@ifnum{\NAT@cmprs>\z@}{% \NAT@ifcat@num\NAT@num {\let\NAT@nm=\NAT@num}% {\def\NAT@nm{-2}}% \NAT@ifcat@num\NAT@last@num {\@tempcnta=\NAT@last@num\relax}% {\@tempcnta\m@ne}% \@ifnum{\NAT@nm=\@tempcnta}{% \@ifnum{\NAT@merge>\@ne}{}{\NAT@last@yr@mbox}% }{% \advance\@tempcnta by\@ne \@ifnum{\NAT@nm=\@tempcnta}{% % \end{macrocode} % % 在顺åºç¼–ç 制下,\pkg{natbib} åªæœ‰åœ¨ä¸‰ä¸ªä»¥ä¸Šè¿žç»æ–‡çŒ®å¼•用æ‰ä¼šä½¿ç”¨è¿žæŽ¥å·ï¼Œ % 这里修改为å…许两个引用使用连接å·ã€‚ % \begin{macrocode} % \ifx\NAT@last@yr\relax % \def@NAT@last@yr{\@citea}% % \else % \def@NAT@last@yr{--\NAT@penalty}% % \fi \def@NAT@last@yr{-\NAT@penalty}% }{% \NAT@last@yr@mbox }% }% }{% \@tempswatrue \@ifnum{\NAT@merge>\@ne}{\@ifnum{\NAT@last@num=\NAT@num\relax}{\@tempswafalse}{}}{}% \if@tempswa\NAT@citea@mbox\fi }% }% \NAT@def@citea \else \ifcase\NAT@ctype \ifx\NAT@last@nm\NAT@nm \NAT@yrsep\NAT@penalty\NAT@space\else \@citea \NAT@test{\@ne}\NAT@spacechar\NAT@mbox{\NAT@super@kern\NAT@@open}% \fi \if*#1*\else#1\NAT@spacechar\fi \NAT@mbox{\NAT@hyper@{{\citenumfont{\NAT@num}}}}% \NAT@def@citea@box \or \NAT@hyper@citea@space{\NAT@test{\NAT@ctype}}% \or \NAT@hyper@citea@space{\NAT@test{\NAT@ctype}}% \or \NAT@hyper@citea@space\NAT@alias \fi \fi }% }% \@ifnum{\NAT@cmprs>\z@}{\NAT@last@yr}{}% \ifNAT@swa\else % \end{macrocode} % % å°†é¡µç æ”¾åœ¨æ‹¬å·å¤–è¾¹ï¼Œå¹¶ä¸”ç½®äºŽä¸Šæ ‡ã€‚ % \begin{macrocode} % \@ifnum{\NAT@ctype=\z@}{% % \if*#2*\else\NAT@cmt#2\fi % }{}% \NAT@mbox{\NAT@@close}% \@ifnum{\NAT@ctype=\z@}{% \if*#2*\else \textsuperscript{#2}% \fi }{}% \NAT@super@kern \fi }{#1}{#2}% }% % \end{macrocode} % % 修改 \cs{citep} author-year å¼çš„页ç : % \begin{macrocode} \renewcommand\NAT@cite% [3]{\ifNAT@swa\NAT@@open\if*#2*\else#2\NAT@spacechar\fi % #1\if*#3*\else\NAT@cmt#3\fi\NAT@@close\else#1\fi\endgroup} #1\NAT@@close\if*#3*\else\textsuperscript{#3}\fi\else#1\fi\endgroup} % \end{macrocode} % % 修改 \cs{citet} author-year å¼çš„页ç : % \begin{macrocode} \def\NAT@citex% [#1][#2]#3{% \NAT@reset@parser \NAT@sort@cites{#3}% \NAT@reset@citea \@cite{\let\NAT@nm\@empty\let\NAT@year\@empty \@for\@citeb:=\NAT@cite@list\do {\@safe@activestrue \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}% \@safe@activesfalse \@ifundefined{b@\@citeb\@extra@b@citeb}{\@citea% {\reset@font\bfseries ?}\NAT@citeundefined \PackageWarning{natbib}% {Citation `\@citeb' on page \thepage \space undefined}\def\NAT@date{}}% {\let\NAT@last@nm=\NAT@nm\let\NAT@last@yr=\NAT@year \NAT@parse{\@citeb}% \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{% \let\NAT@name=\NAT@all@names \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}% \fi \ifNAT@full\let\NAT@nm\NAT@all@names\else \let\NAT@nm\NAT@name\fi \ifNAT@swa\ifcase\NAT@ctype \if\relax\NAT@date\relax \@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}\NAT@date}% \else \ifx\NAT@last@nm\NAT@nm\NAT@yrsep \ifx\NAT@last@yr\NAT@year \def\NAT@temp{{?}}% \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}% {Multiple citation on page \thepage: same authors and year\MessageBreak without distinguishing extra letter,\MessageBreak appears as question mark}\fi \NAT@hyper@{\NAT@exlab}% \else\unskip\NAT@spacechar \NAT@hyper@{\NAT@date}% \fi \else \@citea\NAT@hyper@{% \NAT@nmfmt{\NAT@nm}% \hyper@natlinkbreak{% \NAT@aysep\NAT@spacechar}{\@citeb\@extra@b@citeb }% \NAT@date }% \fi \fi \or\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}% \or\@citea\NAT@hyper@{\NAT@date}% \or\@citea\NAT@hyper@{\NAT@alias}% \fi \NAT@def@citea \else \ifcase\NAT@ctype \if\relax\NAT@date\relax \@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}% \else \ifx\NAT@last@nm\NAT@nm\NAT@yrsep \ifx\NAT@last@yr\NAT@year \def\NAT@temp{{?}}% \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}% {Multiple citation on page \thepage: same authors and year\MessageBreak without distinguishing extra letter,\MessageBreak appears as question mark}\fi \NAT@hyper@{\NAT@exlab}% \else \unskip\NAT@spacechar \NAT@hyper@{\NAT@date}% \fi \else \@citea\NAT@hyper@{% \NAT@nmfmt{\NAT@nm}% \hyper@natlinkbreak{\NAT@spacechar\NAT@@open\if*#1*\else#1\NAT@spacechar\fi}% {\@citeb\@extra@b@citeb}% \NAT@date }% \fi \fi \or\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}% \or\@citea\NAT@hyper@{\NAT@date}% \or\@citea\NAT@hyper@{\NAT@alias}% \fi \if\relax\NAT@date\relax \NAT@def@citea \else \NAT@def@citea@close \fi \fi }}\ifNAT@swa\else % \end{macrocode} % % å°†é¡µç æ”¾åœ¨æ‹¬å·å¤–è¾¹ï¼Œå¹¶ä¸”ç½®äºŽä¸Šæ ‡ã€‚ % \begin{macrocode} % \if*#2*\else\NAT@cmt#2\fi \if\relax\NAT@date\relax\else\NAT@@close\fi \if*#2*\else\textsuperscript{#2}\fi \fi}{#1}{#2}} % \end{macrocode} % % å‚è€ƒæ–‡çŒ®è¡¨çš„æ£æ–‡éƒ¨åˆ†ç”¨äº”å·å—。 % 行è·é‡‡ç”¨å›ºå®šå€¼ 16 磅,段å‰ç©º 3 磅,段åŽç©º 0 磅。 % % æœ¬ç§‘ç”Ÿè¦æ±‚用五å·å—,行è·é‡‡ç”¨å›ºå®šå€¼ 16 磅,段å‰ç©º 3 磅,段åŽç©º 0 磅。 % é‡‡ç”¨æ‚¬æŒ‚æ ¼å¼ï¼Œæ‚¬æŒ‚缩进 2 个汉å—符或 1 厘米。 % % è‹±æ–‡ä¸“ä¸šè¦æ±‚å—å· 10.5pt,行è·ç”¨å›ºå®šå€¼ 17pt,段å‰åŽ 3pt,悬挂缩进 0.5inch(1.27 厘米)。 % % å¤ç”¨ \pkg{natbib} çš„ \texttt{thebibliography} 环境,调整è·ç¦»ã€‚ % \begin{macrocode} \renewcommand\bibsection{\thu@chapter*{\bibname}} \newcommand\thu@set@bibliography@format{% \renewcommand\bibfont{\fontsize{10.5bp}{16bp}\selectfont}% \setlength{\bibsep}{3bp \@plus 3bp \@minus 3bp}% \ifthu@degree@bachelor \ifthu@main@language@chinese \setlength{\bibhang}{1cm}% \else \renewcommand\bibfont{\fontsize{10.5bp}{17bp}\selectfont}% \setlength{\bibsep}{6bp \@plus 3bp \@minus 3bp}% \setlength{\bibhang}{0.5in}% \fi \else \setlength{\bibhang}{1cm}% \fi } \thu@set@bibliography@format \thu@option@hook{degree}{\thu@set@bibliography@format} \thu@option@hook{main-language}{\thu@set@bibliography@format} % \end{macrocode} % % ç ”ç©¶ç”Ÿè¦æ±‚æ¯ä¸€æ¡æ–‡çŒ®çš„内容è¦å°½é‡å†™åœ¨åŒä¸€é¡µå†…。 % 釿œ‰è¢«è¿«åˆ†é¡µçš„æƒ…况,å¯é€šè¿‡â€œç•™ç™½â€æˆ–微调本页行è·çš„æ–¹å¼å°½é‡å°†åŒä¸€æ¡æ–‡çŒ®å†…容放在一页。 % 所以上述 \cs{bibsep} 的设置å…许 3pt 的伸缩, % åŒæ—¶å¢žåŠ åŒä¸€æ¡æ–‡çŒ®å†…分页的惩罚, % 这里å‚考 \href{https://github.com/plk/biblatex/blob/e5d6e69e61613cc33ab1fcc2083a8277eb9cfce5/tex/latex/biblatex/biblatex.def}{BibLaTeX 的设置}。 % \begin{macrocode} \patchcmd\thebibliography{% \clubpenalty4000% }{% \interlinepenalty=5000\relax \clubpenalty=10000\relax }{}{\thu@patch@error{\thebibliography}} \patchcmd\thebibliography{% \widowpenalty4000% }{% \widowpenalty=10000\relax }{}{\thu@patch@error{\thebibliography}} % \end{macrocode} % % å‚考文献表的编å·å±…左,宽度 1 cm。 % \begin{macrocode} \def\@biblabel#1{[#1]\hfill} \renewcommand\NAT@bibsetnum[1]{% % \settowidth\labelwidth{\@biblabel{#1}}% % \setlength{\leftmargin}{\labelwidth}% % \addtolength{\leftmargin}{\labelsep}% \setlength{\leftmargin}{1cm}% \setlength{\itemindent}{\z@}% \setlength{\labelsep}{0.1cm}% \setlength{\labelwidth}{0.9cm}% \setlength{\itemsep}{\bibsep} \setlength{\parsep}{\z@}% \ifNAT@openbib \addtolength{\leftmargin}{\bibindent}% \setlength{\itemindent}{-\bibindent}% \setlength{\listparindent}{\itemindent}% \setlength{\parsep}{0pt}% \fi } } % \end{macrocode} % % \subsubsection{\pkg{biblatex} å®åŒ…} % % \begin{macrocode} \AtEndOfPackageFile*{biblatex}{ \AtBeginDocument{ \ifthenelse{\equal{\blx@bbxfile}{apa}}{\def\bibname{REFERENCES}}{} \ifthenelse{\equal{\blx@bbxfile}{apa6}}{\def\bibname{REFERENCES}}{} \ifthenelse{\equal{\blx@bbxfile}{mla}}{\def\bibname{WORKS CITED}}{} \ifthenelse{\equal{\blx@bbxfile}{mla-new}}{\def\bibname{WORKS CITED}}{} } \DeclareRobustCommand\inlinecite{\parencite} \defbibheading{bibliography}[\bibname]{\thu@chapter*{\bibname}} \newcommand\thu@set@bibliography@format{% \renewcommand\bibfont{\fontsize{10.5bp}{16bp}\selectfont}% \setlength{\bibitemsep}{3bp \@plus 3bp \@minus 3bp}% \ifthu@degree@bachelor \ifthu@main@language@chinese \setlength{\bibhang}{1cm}% \else \renewcommand\bibfont{\fontsize{10.5bp}{17bp}\selectfont}% \setlength{\bibitemsep}{6bp \@plus 3bp \@minus 3bp}% \setlength{\bibhang}{0.5in}% \fi \else \setlength{\biblabelsep}{0.1cm}% \setlength{\bibhang}{1cm}% \fi } \thu@set@bibliography@format \thu@option@hook{degree}{\thu@set@bibliography@format} \thu@option@hook{main-language}{\thu@set@bibliography@format} } % \end{macrocode} % % \subsubsection{\pkg{apacite} å®åŒ…} % % \pkg{apacite} 在 \cs{begindocument} 处载入的 \file{english.apc} % 会覆盖掉 \cs{bibname} 的定义,所以需è¦é‡æ–° \cs{thu@set@chapter@names}。 % \begin{macrocode} \AtEndOfPackageFile*{apacite}{ \AtBeginDocument{ \thu@set@chapter@names } \renewcommand\bibliographytypesize{\fontsize{10.5bp}{16bp}\selectfont} \setlength{\bibitemsep}{3bp \@plus 3bp \@minus 3bp}% \ifthu@degree@bachelor \ifthu@main@language@english \renewcommand\bibliographytypesize{\fontsize{10.5bp}{17bp}\selectfont}% \setlength{\bibitemsep}{6bp \@plus 3bp \@minus 3bp}% \fi \fi \ifthu@main@language@chinese \setlength{\bibleftmargin}{1cm} \setlength{\bibindent}{-\bibleftmargin} \else \setlength{\bibleftmargin}{0.5in} \setlength{\bibindent}{-\bibleftmargin} \fi \def\st@rtbibchapter{% \if@numberedbib% \chapter{\bibname}% e.g., 6. References \else% \thu@chapter*{\bibname}% e.g., References \fi% }% } % \end{macrocode} % % \subsection{附录} % \label{sec:appendix} % % \begin{macrocode} \g@addto@macro\appendix{% \@mainmattertrue } % \end{macrocode} % % ç ”ç©¶ç”Ÿå’Œæœ¬ç§‘ç”Ÿçš„å†™ä½œæŒ‡å—凿œªè§„å®šé™„å½•çš„èŠ‚æ ‡é¢˜æ˜¯å¦åŠ å…¥ç›®å½•ï¼Œ % 但是从示例æ¥çœ‹ï¼Œç›®å½•ä¸åªå‡ºçŽ°é™„å½•çš„ chapter æ ‡é¢˜ï¼Œ % ä¸å‡ºçް附录ä¸çš„ section åŠ subsection çš„æ ‡é¢˜ã€‚ % éƒ¨åˆ†é™¢ç³»ï¼ˆä¾‹å¦‚è‡ªåŠ¨åŒ–ç³»ï¼‰çš„æ ¼å¼å®¡æŸ¥çš„è€å¸ˆç”šè‡³ä¸€è‡´å£å¤´å¦‚æ¤è¦æ±‚。 % (\href{https://github.com/tuna/thuthesis/pull/425}{\#425}) % \begin{macrocode} \thu@define@key{ toc-depth = { name = toc@depth, }, } % \end{macrocode} % % 这里ä¸è¦ä½¿ç”¨ \cs{addcontentsline}, % é¿å…写入 \pkg{titletoc} çš„ \file{.ptc} 文件ä¸ï¼Œ % é€ æˆ \env{survey} çš„åç›®å½•ä¸ |tocdepth| 为 0。 % \begin{macrocode} \thu@option@hook{toc-depth}{% \ifx\@begindocumenthook\@undefined \protected@write\@auxout{}{% \string\ttl@writefile{toc}{% \protect\setcounter{tocdepth}{\thu@toc@depth}% }% }% \else \setcounter{tocdepth}{\thu@toc@depth}% \fi } \g@addto@macro\appendix{% \thusetup{ toc-depth = 0, }% } % \end{macrocode} % % 附录ä¸çš„图ã€è¡¨ä¸åˆ—å…¥æ’图清å•/附表清å•。 % \begin{macrocode} \thu@define@key{ appendix-figure-in-lof = { name = appendix@figure@in@lof, choices = { true, false, }, default = false, }, } \thu@option@hook{appendix-figure-in-lof}{% \ifthu@appendix@figure@in@lof@true \addtocontents{lof}{\string\let\string\contentsline\string\ttl@contentsline}% \addtocontents{lot}{\string\let\string\contentsline\string\ttl@contentsline}% \addtocontents{loe}{\string\let\string\contentsline\string\ttl@contentsline}% \else \addtocontents{lof}{\string\let\string\contentsline\string\ttl@gobblecontents}% \addtocontents{lot}{\string\let\string\contentsline\string\ttl@gobblecontents}% \addtocontents{loe}{\string\let\string\contentsline\string\ttl@gobblecontents}% \fi } \g@addto@macro\appendix{% \thusetup{ appendix-figure-in-lof = false, }% } % \end{macrocode} % % 附录ä¸çš„å‚考文献ç‰å¦è¡Œç¼–åºå·ã€‚ % \begin{macrocode} \newcommand\thu@end@appendix@ref@section{} % \end{macrocode} % % \begin{macrocode} % \end{macrocode} % % \pkg{bibunits} 在载入时会ä¿å˜ \cs{bibliography} å’Œ \cs{bibliographystyle}, % 所以在载入å®åŒ…å‰ä¿®æ”¹å®šä¹‰ã€‚ % \begin{macrocode} \AtBeginOfPackageFile*{bibunits}{ \def\bibliography#1{% \if@filesw \immediate\write\@auxout{\string\bibdata{\zap@space#1 \@empty}}% % \end{macrocode} % % æ£æ–‡çš„ \cs{bibliography} åŒæ—¶è®¾ç½®é™„录å‚考文献的默认 \file{.bib} æ•°æ®åº“。 % \begin{macrocode} \immediate\write\@auxout{\string\gdef\string\bu@bibdata{#1}}% \fi \@input@{\jobname.bbl}% \gdef\bu@bibdata{#1}% } \def\bibliographystyle#1{% \ifx\@begindocumenthook\@undefined\else \expandafter\AtBeginDocument \fi {\if@filesw \immediate\write\@auxout{\string\bibstyle{#1}}% % \end{macrocode} % % æ£æ–‡çš„ \cs{bibliographystyle} åŒæ—¶è®¾ç½®é™„录å‚考文献的默认 \file{.bst} æ ·å¼ã€‚ % \begin{macrocode} \immediate\write\@auxout{\string\gdef\string\bu@bibstyle{#1}}% \fi}% \gdef\bu@bibstyle{#1}% } } \AtEndOfPackageFile*{bibunits}{ \def\@startbibunit{% \global\let\@startbibunitorrelax\relax \global\let\@finishbibunit\@finishstartedbibunit \global\advance\@bibunitauxcnt 1 \if@filesw {\endlinechar-1 % \end{macrocode} % % 使附录 aux 文件的 \cs{gdef}\cs{@localbibstyle} 能够生效。 % \begin{macrocode} \makeatletter \@input{\@bibunitname.aux}}% \immediate\openout\@bibunitaux\@bibunitname.aux \immediate\write\@bibunitaux{\string\bibstyle{\@localbibstyle}}% \fi } \def\bu@bibliography#1{% \putbib[#1]% } \def\bu@bibliographystyle#1{% \if@filesw \immediate\write\@bibunitaux{\string\gdef\string\@localbibstyle{#1}}% \fi \gdef\@localbibstyle{#1}% } \providecommand\printbibliography{\putbib\relax}% \g@addto@macro\appendix{% \renewcommand\@bibunitname{\jobname-appendix-\@alph\c@chapter}% \bibliographyunit[\chapter]% \renewcommand\bibsection{% \ctexset{section/numbering = false}% \section{\bibname}% \ctexset{section/numbering = true}% }% % \end{macrocode} % % ç ”ç©¶ç”Ÿé™„å½•çš„å¼•ç”¨ç¼–å·åŠ å‰ç¼€ï¼Œå¦‚附录 A 的引用 [1] 为 [A.1]。 % \begin{macrocode} \ifthu@degree@graduate \renewcommand\citenumfont{\@Alph\c@chapter.}% \renewcommand\@extra@binfo{@-\@alph\c@chapter}% \renewcommand\@extra@b@citeb{@-\@alph\c@chapter}% \renewcommand\bibnumfmt[1]{[\@Alph\c@chapter.#1]\hfill}% \fi } \renewcommand\thu@end@appendix@ref@section{% \bibliographyunit\relax } \AtEndDocument{\thu@end@appendix@ref@section} \renewcommand\thu@set@survey@bibheading{% \renewcommand\bibsection{% \begingroup \ctexset{ section = { numbering = false, format = \centering\normalsize, beforeskip = 20pt, afterskip = 4pt, }, }% \section{\bibname}% \endgroup } }% % \end{macrocode} % % å¦‚æžœæ£æ–‡å’Œé™„录引用了åŒä¸€æ–‡çŒ®ï¼Œ\pkg{bibunits} ä¼šç»™å‡ºæ— æ„义的è¦å‘Šï¼Œè¿™é‡Œæ¶ˆé™¤è¦å‘Šã€‚ % \begin{macrocode} % \let\@xtestdef\@gobbletwo % This doesn't work \def\bibunits@rerun@warning{\relax} } \PassOptionsToPackage{defernumbers = true}{biblatex} \AtEndOfPackageFile*{biblatex}{ \DeclareRefcontext{appendix}{} \g@addto@macro\appendix{% \pretocmd\chapter{% \newrefsection \ifthu@degree@bachelor\else \@tempcnta=\c@chapter \advance\@tempcnta\@ne \newrefcontext[labelprefix = {\@Alph\@tempcnta.}]{appendix}% \fi }{}{\thu@patch@error{\chapter}}% \defbibheading{bibliography}[\bibname]{% \ctexset{section/numbering = false}% \section{#1}% \ctexset{section/numbering = true}% }% } \renewcommand\thu@set@survey@bibheading{% \defbibheading{bibliography}[\bibname]{% \vspace{20bp}% \begingroup \ctexset{ section = { numbering = false, format = \centering\normalsize, beforeskip = 0pt, afterskip = 0pt, }, }% \section{\bibname}% \endgroup }% }% \def\bibliographystyle#1{% \thu@warning{'bibliographystyle' invalid for 'biblatex'.}% } } % \end{macrocode} % % æœ¬ç§‘ç”Ÿã€Šå†™ä½œè§„èŒƒã€‹æœ‰ç‹¬ç‰¹çš„è¦æ±‚:附录 A ä¸ºå¤–æ–‡èµ„æ–™çš„è°ƒç ”é˜…è¯»æŠ¥å‘Šæˆ–ä¹¦é¢ç¿»è¯‘, % 并且è¦åˆ†åˆ«é™„上独立的å‚考文献和外文资料的原文索引。 % 所以这里定义 \env{survey} å’Œ \env{translation} 专门处ç†è¿™ä¸¤ç§æƒ…况, % å…¶ä¸å‚考文献使用了 \pkg{bibunits} å®åŒ…的功能。 % % æ³¨æ„ \pkg{titletoc} 在 2019/07/14 v2.11.1702 修改了 \cs{printcontents} 接å£ï¼Œ % 而且 \cs{@ifpackagelater} åªèƒ½ç”¨åœ¨å¯¼è¨€åŒºä¸ï¼Œæ‰€ä»¥éœ€è¦å®šä¹‰è¾…助å®ã€‚ % \begin{macrocode} \@ifpackagelater{titletoc}{2019/07/14}{ \newcommand\thu@print@contents[5]{% \printcontents[#1]{#2}{#3}[#4]{}% } }{ \newcommand\thu@print@contents[5]{% \printcontents[#1]{#2}{#3}{\setcounter{tocdepth}{#4}#5}% } } % \end{macrocode} % % \begin{environment}{survey} % å¤–æ–‡èµ„æ–™çš„è°ƒç ”é˜…è¯»æŠ¥å‘Šã€‚ % \begin{macrocode} \newenvironment{survey}{% \chapter{å¤–æ–‡èµ„æ–™çš„è°ƒç ”é˜…è¯»æŠ¥å‘Š}% \thusetup{language = english}% \let\title\thu@appendix@title \let\maketitle\thu@appendix@maketitle \thu@set@partial@toc@format \renewcommand\tableofcontents{% \section*{Contents}% \thu@pdfbookmark{1}{Contents}% \thu@print@contents{survey}{l}{1}{2}{}% \vskip 20bp% }% \let\appendix\thu@appendix@appendix \thu@set@survey@bibheading \renewcommand\bibname{å‚考文献}% \startcontents[survey]% }{% \stopcontents[survey]% \thu@reset@main@language % restore language } \newcommand\thu@set@appendix@bib@heading{} % \end{macrocode} % \end{environment} % % \begin{environment}{translation} % 外文资料的书é¢ç¿»è¯‘。 % \begin{macrocode} \newenvironment{translation}{% \chapter{外文资料的书é¢ç¿»è¯‘}% \thusetup{language = chinese}% \let\title\thu@appendix@title \let\maketitle\thu@appendix@maketitle \renewenvironment{abstract}{% \ctexset{ section = { format += \centering, numbering = false, }, }% \section{摘è¦}% }{% \par \ifx\thu@keywords\@empty\else \textbf{关键è¯ï¼š}\thu@clist@use{\thu@keywords}{ï¼›}\par \fi }% \thu@set@partial@toc@format \renewcommand\tableofcontents{% \section*{目录}% \thu@pdfbookmark{1}{目录}% \thu@print@contents{translation}{l}{1}{2}{}% \vskip 20bp% }% \let\appendix\thu@appendix@appendix \thu@set@survey@bibheading \startcontents[translation]% }{% \stopcontents[translation]% \thu@reset@main@language % restore language } % \end{macrocode} % \end{environment} % % \begin{environment}{translation-index} % 书é¢ç¿»è¯‘对应的原文索引,区别于译文的å‚考文献。 % \begin{macrocode} \newenvironment{translation-index}{}{} \AtEndOfPackageFile*{bibunits}{ \newcounter{thu@translation@index}% \renewenvironment{translation-index}{% \global\advance\c@thu@translation@index\@ne \begin{bibunit}% \renewcommand\@bibunitname{\jobname-index-\arabic{thu@translation@index}}% \renewcommand\bibname{书é¢ç¿»è¯‘对应的原文索引}% \thu@set@survey@bibheading }{% \end{bibunit}% } } \AtEndOfPackageFile*{biblatex}{ \renewenvironment{translation-index}{% \endrefsection \begin{refsection}% \renewcommand\bibname{书é¢ç¿»è¯‘对应的原文索引}% \thu@set@survey@bibheading }{% \end{refsection}% } } % \end{macrocode} % \end{environment} % % è°ƒç ”é˜…è¯»æŠ¥å‘Šéœ€è¦ç‹¬ç«‹çš„æ ‡é¢˜ï¼Œè¿™é‡Œä»¿ç…§äº†æ ‡å‡†æ–‡æ¡£ç±»çš„用法 \cs{title}, \cs{maketitle}。 % \begin{macrocode} \DeclareRobustCommand\thu@appendix@title[1]{\gdef\thu@appendix@@title{#1}} \newcommand\thu@appendix@maketitle{% \par \begin{center}% \xiaosi[1.667]\thu@appendix@@title \end{center}% \par } % \end{macrocode} % % \begin{macrocode} \newcommand\thu@set@partial@toc@format{% \titlecontents{section} [\z@]{} {\contentspush{\thecontentslabel\quad}}{} {\thu@leaders\thecontentspage}% \titlecontents{subsection} [1em]{} {\contentspush{\thecontentslabel\quad}}{} {\thu@leaders\thecontentspage}% \titlecontents{subsubsection} [2em]{} {\contentspush{\thecontentslabel\quad}}{} {\thu@leaders\thecontentspage}% } % \end{macrocode} % % 书é¢ç¿»è¯‘的附录。 % \begin{macrocode} \newcommand\thu@appendix@appendix{% \def\theHsection{\Hy@AlphNoErr{section}}% \setcounter{section}{0}% \setcounter{subsection}{0}% \renewcommand\thesection{\thechapter.\@Alph\c@section}% }% % \end{macrocode} % % è°ƒç ”é˜…è¯»æŠ¥å‘Šçš„å‚考文献(或书é¢ç¿»è¯‘å¯¹åº”çš„å¤–æ–‡èµ„æ–™çš„åŽŸæ–‡ç´¢å¼•ï¼‰æ ‡é¢˜ç”¨å®‹ä½“å°å››å·å—ï¼Œæ®µå‰ 20ptï¼Œæ®µåŽ 6ptï¼Œè¡Œè· 20pt。 % \begin{macrocode} \newcommand\thu@set@survey@bibheading{} % \end{macrocode} % % % \subsection{个人简历} % % \begin{environment}{resume} % 个人简历å‘è¡¨æ–‡ç« ç‰ã€‚ % \begin{macrocode} \newenvironment{resume}{% \@mainmatterfalse \thu@end@appendix@ref@section \thu@chapter*{\thu@resume@name}% \ctexset{section/numbering = false}% \ifthu@degree@bachelor \ctexset{section/aftertitle = {:\@@par}}% \else \ctexset{section/format += \centering}% \fi \ifthu@language@chinese \ctexset{ subsection = { format = \sffamily\fontsize{14bp}{20bp}\selectfont, numbering = false, aftertitle = {:\@@par}, }, }% \setlist[achievements]{ topsep = 6bp, itemsep = 6bp, leftmargin = 1cm, labelwidth = 1cm, labelsep = 0pt, first = { \ifthu@degree@graduate \fontsize{12bp}{16bp}\selectfont \fi }, align = left, label = [\arabic*], resume = achievements, }% \else \ctexset{ subsection = { beforeskip = 0pt, afterskip = 0pt, format = \bfseries\normalsize, indent = \parindent, numbering = false, }, }% \ifthu@degree@bachelor % 内容部分用Arialå—体,å—å·15pt,行è·é‡‡ç”¨å›ºå®šå€¼20pt, 段å‰åŽ 0pt。 \sffamily\fontsize{15bp}{20bp}\selectfont \fi \setlist[achievements]{ topsep = 0bp, itemsep = 0bp, leftmargin = 1.75cm, labelsep = 0.5cm, align = right, label = [\arabic*], resume = achievements, }% \fi }{} % \end{macrocode} % \end{environment} % % æ—§çš„ \cs{resumeitem} å’Œ \cs{researchitem} å·²ç»è¿‡æ—¶ã€‚ % \begin{macrocode} \newcommand\resumeitem[1]{% \thu@error{The "\protect\resumeitem" is obsolete. Please update to the new format}% } \newcommand\researchitem[1]{% \thu@error{The "\protect\researchitem" is obsolete. Please update to the new format}% } % \end{macrocode} % % \begin{environment}{achievements} % 妿œ¯æˆæžœç”± \env{achievements} 环境罗列。 % \begin{macrocode} \newlist{achievements}{enumerate}{1} \setlist[achievements]{ topsep = 6bp, partopsep = 0bp, itemsep = 6bp, parsep = 0bp, leftmargin = 10mm, itemindent = 0pt, align = left, label = [\arabic*], resume = achievements, } % \end{macrocode} % \end{environment} % % \begin{macrocode} \newenvironment{publications}{% \thu@deprecate{"publications" environment}{"achievements"}% \begin{achievements}% }{% \end{achievements}% } \newcommand\publicationskip{% \thu@error{The "\protect\publicationskip" is obsolete. Do not use it}% } % \end{macrocode} % % \subsection{指导教师/å°ç»„妿œ¯è¯„è¯} % \begin{environment}{comments} % \begin{macrocode} \NewEnviron{comments}[1][]{% \thu@end@appendix@ref@section \ifthu@degree@graduate \@mainmatterfalse \kv@define@key{thu@comments}{name}{\let\thu@comments@name\kv@value}% \kv@set@family@handler{thu@comments}{% \ifx\kv@value\relax \let\thu@comments@name\kv@key \else \kv@handled@false \fi }% \kvsetkeys{thu@comments}{#1}% \chapter{\thu@comments@name}% \BODY\clearpage \fi } % \end{macrocode} % \end{environment} % % \subsection{ç”辩委员会决议书} % \begin{environment}{resolution} % \begin{macrocode} \NewEnviron{resolution}{% \thu@end@appendix@ref@section \ifthu@degree@graduate \@mainmatterfalse \chapter{\thu@resolution@name}% \BODY\clearpage \fi } % \end{macrocode} % \end{environment} % % \subsection{综åˆè®ºæ–‡è®ç»ƒè®°å½•表} % % \begin{macro}{\record} % (本科生专用)æ’入综åˆè®ºæ–‡è®ç»ƒè®°å½•表的 PDF ç‰ˆæœ¬ï¼Œå¹¶åŠ å…¥ä¹¦ç¾ã€‚ % % \begin{macrocode} \newcommand{\record}[1]{% \ifthu@degree@bachelor \let\thu@record@file\@empty \kv@define@key{thu@record}{file}{\let\thu@record@file\kv@value}% \kv@set@family@handler{thu@record}{% \ifx\kv@value\relax \let\thu@record@file\kv@key \else \kv@handled@false \fi }% \kvsetkeys{thu@record}{#1}% \ifx\thu@record@file\@empty \thu@error{File path of \protect\record\space is required} \fi \clearpage \thu@pdfbookmark{0}{综åˆè®ºæ–‡è®ç»ƒè®°å½•表}% \includepdf[pages=-]{\thu@record@file}% \fi } % \end{macrocode} % % \end{macro} % % \subsection{å…¶ä»–å®åŒ…的设置} % % 这些å®åŒ…å¹¶éžæ ¼å¼è¦æ±‚,但是为了方便åŒå¦ä»¬ä½¿ç”¨ï¼Œåœ¨è¿™é‡Œè¿›è¡Œç®€å•设置。 % % \subsubsection{\pkg{hyperref} å®åŒ…} % % 使用 \cs{PassOptionsToPackage} 的方å¼è¿›è¡Œé…置,å…许用户在 \cs{usepackage} % 覆盖é…置(\href{https://github.com/tuna/thuthesis/issues/863}{tuna/thuthesis\#863})。 % % \begin{macrocode} \PassOptionsToPackage{ linktoc = all, bookmarksdepth = 2, bookmarksnumbered = true, bookmarksopen = true, bookmarksopenlevel = 1, bookmarksdepth = 3, unicode = true, psdextra = true, breaklinks = true, plainpages = false, pdfdisplaydoctitle = true, hidelinks, }{hyperref} \AtEndOfPackageFile*{hyperref}{ \newcounter{thu@bookmark} \renewcommand\thu@pdfbookmark[2]{% \phantomsection \stepcounter{thu@bookmark}% \pdfbookmark[#1]{#2}{thuchapter.\thethu@bookmark}% } \renewcommand\thu@phantomsection{% \phantomsection } \pdfstringdefDisableCommands{% \let\\\relax \let\quad\relax \let\qquad\relax \let\hspace\@gobble }% % \end{macrocode} % % \pkg{hyperref} 与 \pkg{unicode-math} å˜åœ¨ä¸€äº›å…¼å®¹æ€§é—®é¢˜ï¼Œè§ % \href{https://github.com/ustctug/ustcthesis/issues/223}{% % ustctug/ustcthesis\#223}, % \href{https://github.com/ho-tex/hyperref/pull/90}{ho-tex/hyperref\#90} å’Œ % \href{https://github.com/ustctug/ustcthesis/issues/235}{% % ustctug/ustcthesis/\#235}。 % \begin{macrocode} \@ifpackagelater{hyperref}{2019/04/27}{}{% \g@addto@macro\psdmapshortnames{\let\mu\textmu} }% \ifthu@main@language@chinese \hypersetup{ pdflang = zh-CN, }% \else \hypersetup{ pdflang = en-US, }% \fi \AtBeginDocument{% \ifthu@main@language@chinese \hypersetup{ pdftitle = \thu@title, pdfauthor = \thu@author, pdfsubject = \thu@degree@category, pdfkeywords = \thu@keywords, }% \else \hypersetup{ pdftitle = \thu@title@en, pdfauthor = \thu@author@en, pdfsubject = \thu@degree@category@en, pdfkeywords = \thu@keywords@en, }% \fi \hypersetup{ pdfcreator={\thuthesis-v\version}} }% } % \end{macrocode} % % \subsubsection{\pkg{mathtools} å®åŒ…} % % \pkg{mathtools} 会修改 \pkg{unicode-math} çš„ \cs{underbrace} å’Œ \cs{overbrace}, % 需è¦è¿˜åŽŸä¸º \cs{LaTeXunderbrace} å’Œ \cs{LaTeXoverbrace}, % å‚考 \url{https://tex.stackexchange.com/q/521394/82731}。 % \begin{macrocode} \AtEndOfPackageFile*{mathtools}{ \@ifpackageloaded{unicode-math}{ \let\underbrace\LaTeXunderbrace \let\overbrace\LaTeXoverbrace }{} } % \end{macrocode} % % \subsubsection{\pkg{nomencl} å®åŒ…} % % \begin{macrocode} \AtEndOfPackageFile*{nomencl}{ \let\nomname\thu@denotation@name \def\thenomenclature{\begin{denotation}[\nom@tempdim]} \def\endthenomenclature{\end{denotation}} } % \end{macrocode} % % \subsubsection{\pkg{siunitx} å®åŒ…} % % \begin{macrocode} \AtEndOfPackageFile*{siunitx}{% \newcommand\thu@set@siunitx@language{% \ifthu@language@chinese \sisetup{ list-final-separator = {\TextOrMath{\space}{\ }\text{å’Œ}\TextOrMath{\space}{\ }}, list-pair-separator = {\TextOrMath{\space}{\ }\text{å’Œ}\TextOrMath{\space}{\ }}, range-phrase = {\text{~}}, }% \else \ifthu@language@english \sisetup{ list-final-separator = {\TextOrMath{\space}{\ }\text{and}\TextOrMath{\space}{\ }}, list-pair-separator = {\TextOrMath{\space}{\ }\text{and}\TextOrMath{\space}{\ }}, range-phrase = {\TextOrMath{\space}{\ }\text{to}\TextOrMath{\space}{\ }}, }% \fi \fi } \thu@set@siunitx@language \thu@option@hook{language}{\thu@set@siunitx@language} } % \end{macrocode} % % \subsubsection{\pkg{amsthm} å®åŒ…} % % å®šç†æ ‡é¢˜ä½¿ç”¨é»‘ä½“ï¼Œæ£æ–‡ä½¿ç”¨å®‹ä½“,冒å·éš”开。 % \begin{macrocode} \AtEndOfPackageFile*{amsthm}{% \newtheoremstyle{thu} {\z@}{\z@} {\normalfont}{\z@} {\normalfont\sffamily}{\thu@theorem@separator} {0.5em}{} \theoremstyle{thu} \newtheorem{assumption}{\thu@assumption@name}[chapter]% \newtheorem{definition}{\thu@definition@name}[chapter]% \newtheorem{proposition}{\thu@proposition@name}[chapter]% \newtheorem{lemma}{\thu@lemma@name}[chapter]% \newtheorem{theorem}{\thu@theorem@name}[chapter]% \newtheorem{axiom}{\thu@axiom@name}[chapter]% \newtheorem{corollary}{\thu@corollary@name}[chapter]% \newtheorem{exercise}{\thu@exercise@name}[chapter]% \newtheorem{example}{\thu@example@name}[chapter]% \newtheorem{remark}{\thu@remark@name}[chapter]% \newtheorem{problem}{\thu@problem@name}[chapter]% \newtheorem{conjecture}{\thu@conjecture@name}[chapter]% \renewenvironment{proof}[1][\thu@proof@name]{\par \pushQED{\qed}% % \normalfont \topsep6\p@\@plus6\p@\relax \normalfont \topsep\z@\relax \trivlist \item[\hskip\labelsep % \itshape % #1\@addpunct{.}]\ignorespaces \sffamily #1]\ignorespaces }{% \popQED\endtrivlist\@endpefalse } \renewcommand\qedsymbol{\thu@qed} } % \end{macrocode} % % \subsubsection{\pkg{ntheorem} å®åŒ…} % % å®šç†æ ‡é¢˜ä½¿ç”¨é»‘ä½“ï¼Œæ£æ–‡ä½¿ç”¨å®‹ä½“,冒å·éš”开。 % \begin{macrocode} \AtEndOfPackageFile*{ntheorem}{% \theorembodyfont{\normalfont}% \theoremheaderfont{\normalfont\sffamily}% \theoremsymbol{\thu@qed}% \newtheorem*{proof}{\thu@proof@name}% \theoremstyle{plain}% \theoremsymbol{}% \theoremseparator{\thu@theorem@separator}% \newtheorem{assumption}{\thu@assumption@name}[chapter]% \newtheorem{definition}{\thu@definition@name}[chapter]% \newtheorem{proposition}{\thu@proposition@name}[chapter]% \newtheorem{lemma}{\thu@lemma@name}[chapter]% \newtheorem{theorem}{\thu@theorem@name}[chapter]% \newtheorem{axiom}{\thu@axiom@name}[chapter]% \newtheorem{corollary}{\thu@corollary@name}[chapter]% \newtheorem{exercise}{\thu@exercise@name}[chapter]% \newtheorem{example}{\thu@example@name}[chapter]% \newtheorem{remark}{\thu@remark@name}[chapter]% \newtheorem{problem}{\thu@problem@name}[chapter]% \newtheorem{conjecture}{\thu@conjecture@name}[chapter]% } % \end{macrocode} % % \subsubsection{\pkg{algorithm} å®åŒ…} % % 使 \env{algorithm} å’Œ \env{listing} 环境的åç§°éšè¯è¨€è®¾ç½®è€Œæ”¹å˜ï¼Œ % 并使其在附录ä¸çš„ç¼–å·è§„则与图ã€è¡¨ç‰ä¸€è‡´ã€‚ % % \begin{macro}{\listofalgorithm} % \begin{macro}{\listofalgorithm*} % \begin{macrocode} \PassOptionsToPackage{chapter}{algorithm} \AtEndOfPackageFile*{algorithm}{ \floatname{algorithm}{\thu@algorithm@name} \renewcommand\listofalgorithms{% \thu@listof{algorithm}% } \renewcommand\listalgorithmname{\thu@list@algorithm@name} \def\ext@algorithm{loa} \contentsuse{algorithm}{loa} \titlecontents{algorithm} [\z@]{} {\contentspush{\fname@algorithm~\thecontentslabel\thu@contents@label@delimiter}}{} {\thu@leaders\thecontentspage} } % \end{macrocode} % \end{macro} % \end{macro} % % \subsubsection{\pkg{algorithm2e} å®åŒ…} % % \begin{macrocode} \PassOptionsToPackage{algochapter}{algorithm2e} \AtEndOfPackageFile*{algorithm2e}{ \renewcommand\algorithmcfname{\thu@algorithm@name} \SetAlgoCaptionLayout{thu@caption@font} \SetAlCapSty{relax} \SetAlgoCaptionSeparator{\hspace*{1em}} \SetAlFnt{\fontsize{11bp}{14.3bp}\selectfont} \renewcommand\listofalgorithms{% \thu@listof{algorithmcf}% } \renewcommand\listalgorithmcfname{\thu@list@algorithm@name} \def\ext@algorithmcf{loa} \contentsuse{algocf}{loa} \titlecontents{algocf} [\z@]{} {\contentspush{\algorithmcfname~\thecontentslabel\thu@contents@label@delimiter}}{} {\thu@leaders\thecontentspage} } % \end{macrocode} % % \subsubsection{\pkg{minted} å®åŒ…} % % \begin{macrocode} \AtEndOfPackageFile*{minted}{ \newcommand\thu@set@listing@language{% \ifthu@language@chinese \floatname{listing}{代ç }% \else \floatname{listing}{Listing}% \fi } \thu@set@listing@language \thu@option@hook{language}{\thu@set@listing@language} } % \end{macrocode} % % \subsection{书脊} % \label{sec:spine} % \begin{macro}{\spine} % å•独使用书脊命令会在新的一页产生竖排书脊, % å‚考 \url{https://tex.stackexchange.com/a/38585}。 % % 本科生: % ä¹¦è„Šçš„ä¹¦å†™è¦æ±‚:用仿宋\_GB2312 å—书写,å—体大尿 ¹æ®è®ºæ–‡çš„薄厚而定。 % 书脊上方写论文题目,下方写本科生姓å,è·ä¸Šä¸‹é¡µè¾¹å‡ä¸º 3cm。 % % ç ”ç©¶ç”Ÿï¼š % åšå£«è®ºæ–‡çš„书脊使用三å·å—,硕士的为å°ä¸‰å·ã€‚ % 示例ä¸ä¸Šä¸‹é¡µè¾¹è·ä¸º 5.5 cm,左å³è¾¹è·ä¸º 1 cm。 % \begin{macrocode} \thu@define@key{ spine-font = { name = spine@font, }, spine-title = { name = spine@title, }, spine-author = { name = spine@author, }, } \renewcommand\thu@spine@font{% \ifthu@degree@doctor \fontsize{16bp}{20.8bp}\selectfont \else \fontsize{15bp}{19.5bp}\selectfont \fi } \newcommand*\CJKmovesymbol[1]{\raise.3em\hbox{#1}} \newcommand*\CJKmove{% \punctstyle{plain}% \let\CJKsymbol\CJKmovesymbol \let\CJKpunctsymbol\CJKsymbol } \NewDocumentCommand{\spine}{ O{ \ifx\thu@spine@title\@empty \thu@title \else \thu@spine@title \fi } O{ \ifx\thu@spine@author\@empty \thu@author \else \thu@spine@author \fi }}{% \clearpage \ifthu@degree@bachelor \newgeometry{ vmargin = 3cm, hmargin = 1cm, }% \else \newgeometry{ vmargin = 5.5cm, hmargin = 1cm, }% \fi \thispagestyle{empty}% \ifthu@main@language@chinese \thu@pdfbookmark{0}{书脊}% \else \thu@pdfbookmark{0}{Spine}% \fi \begingroup \noindent\hfill \rotatebox[origin=lt]{-90}{% \makebox[\textheight]{% \fangsong \addCJKfontfeatures*{RawFeature={vertical}}% \thu@spine@font \CJKmove #1\hfill \thu@stretch{4.5em}{#2}% }% }% \endgroup \clearpage \restoregeometry } % \end{macrocode} % \end{macro} % % % \subsection{其它} % \label{sec:other} % % 借用 \cls{ltxdoc} å’Œ \cls{l3doc} 里é¢çš„å‡ ä¸ªå‘½ä»¤æ–¹ä¾¿å†™æ–‡æ¡£ã€‚ % \begin{macrocode} \DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} \DeclareRobustCommand\file{\nolinkurl} \DeclareRobustCommand\env{\textsf} \DeclareRobustCommand\pkg{\textsf} \DeclareRobustCommand\cls{\textsf} % \end{macrocode} % % \begin{macrocode} \sloppy %</cls> % \end{macrocode} % % % \iffalse % \begin{macrocode} %<*dtx-style> \ProvidesPackage{dtx-style} \RequirePackage{hypdoc} \RequirePackage{ifthen} \RequirePackage{fontspec}[2017/01/20] \RequirePackage{amsmath} \RequirePackage{unicode-math} \RequirePackage{siunitx} \RequirePackage[UTF8,scheme=chinese]{ctex} \RequirePackage[ top=2.5cm, bottom=2.5cm, left=4cm, right=2cm, headsep=3mm]{geometry} \RequirePackage{hologo} \RequirePackage{array,longtable,booktabs} \RequirePackage{listings} \RequirePackage{fancyhdr} \RequirePackage{xcolor} \RequirePackage{enumitem} \RequirePackage{etoolbox} \RequirePackage{metalogo} \RequirePackage[tightLists=false]{markdown} \markdownSetup{ renderers = { link = {\href{#2}{#1}}, } } \hypersetup{ pdflang = zh-CN, pdftitle = {ThuThesis:清åŽå¤§å¦å¦ä½è®ºæ–‡æ¨¡æ¿}, pdfauthor = {清åŽå¤§å¦ TUNA å会}, pdfsubject = {清åŽå¤§å¦å¦ä½è®ºæ–‡æ¨¡æ¿ä½¿ç”¨è¯´æ˜Ž}, pdfkeywords = {论文模æ¿; 清åŽå¤§å¦; 使用说明}, pdfdisplaydoctitle = true }% \setmainfont[ Extension = .otf, UprightFont = *-regular, BoldFont = *-bold, ItalicFont = *-italic, BoldItalicFont = *-bolditalic, ]{texgyrepagella} \setsansfont[ Extension = .otf, UprightFont = *-regular, BoldFont = *-bold, ItalicFont = *-italic, BoldItalicFont = *-bolditalic, ]{texgyreheros} \setmonofont[ Extension = .otf, UprightFont = *-regular, BoldFont = *-bold, ItalicFont = *-italic, BoldItalicFont = *-bolditalic, Scale = MatchLowercase, Ligatures = CommonOff, ]{texgyrecursor} \unimathsetup{ math-style=ISO, bold-style=ISO, } \DeclareRobustCommand\mathellipsis{\mathinner{\unicodecdots}} \IfFontExistsTF{XITSMath-Regular.otf}{ \setmathfont[ Extension = .otf, BoldFont = XITSMath-Bold, StylisticSet = 8, ]{XITSMath-Regular} \setmathfont[range={cal,bfcal},StylisticSet=1]{XITSMath-Regular.otf} }{ \setmathfont[ Extension = .otf, BoldFont = *bold, StylisticSet = 8, ]{xits-math} \setmathfont[range={cal,bfcal},StylisticSet=1]{xits-math.otf} } \colorlet{thu@macro}{blue!60!black} \colorlet{thu@env}{blue!70!black} \colorlet{thu@option}{purple} \patchcmd{\PrintMacroName}{\MacroFont}{\MacroFont\bfseries\color{thu@macro}}{}{} \patchcmd{\PrintDescribeMacro}{\MacroFont}{\MacroFont\bfseries\color{thu@macro}}{}{} \patchcmd{\PrintDescribeEnv}{\MacroFont}{\MacroFont\bfseries\color{thu@env}}{}{} \patchcmd{\PrintEnvName}{\MacroFont}{\MacroFont\bfseries\color{thu@env}}{}{} \def\DescribeOption{% \leavevmode\@bsphack\begingroup\MakePrivateLetters% \Describe@Option} \def\Describe@Option#1{\endgroup \marginpar{\raggedleft\PrintDescribeOption{#1}}% \thu@special@index{option}{#1}\@esphack\ignorespaces} \def\PrintDescribeOption#1{\strut \MacroFont\bfseries\sffamily\color{thu@option} #1\ } \def\thu@special@index#1#2{\@bsphack \begingroup \HD@target \let\HDorg@encapchar\encapchar \edef\encapchar usage{% \HDorg@encapchar hdclindex{\the\c@HD@hypercount}{usage}% }% \index{#2\actualchar{\string\ttfamily\space#2} (#1)\encapchar usage}% \index{#1:\levelchar#2\actualchar {\string\ttfamily\space#2}\encapchar usage}% \endgroup \@esphack} \lstdefinestyle{lstStyleBase}{% basicstyle=\small\ttfamily, aboveskip=\medskipamount, belowskip=\medskipamount, lineskip=0pt, boxpos=c, showlines=false, extendedchars=true, upquote=true, tabsize=2, showtabs=false, showspaces=false, showstringspaces=false, numbers=none, linewidth=\linewidth, xleftmargin=4pt, xrightmargin=0pt, resetmargins=false, breaklines=true, breakatwhitespace=false, breakindent=0pt, breakautoindent=true, columns=flexible, keepspaces=true, gobble=4, framesep=3pt, rulesep=1pt, framerule=1pt, backgroundcolor=\color{gray!5}, stringstyle=\color{green!40!black!100}, keywordstyle=\bfseries\color{blue!50!black}, commentstyle=\slshape\color{black!60}} \lstdefinestyle{lstStyleShell}{% style=lstStyleBase, frame=l, rulecolor=\color{purple}, language=bash} \lstdefinestyle{lstStyleLaTeX}{% style=lstStyleBase, frame=l, rulecolor=\color{violet}, language=[LaTeX]TeX} \lstnewenvironment{latex}{\lstset{style=lstStyleLaTeX}}{} \lstnewenvironment{shell}{\lstset{style=lstStyleShell}}{} \setlist{nosep} \DeclareDocumentCommand{\option}{m}{\textsf{#1}} \DeclareDocumentCommand{\env}{m}{\texttt{#1}} \DeclareDocumentCommand{\pkg}{s m}{% \textsf{#2}\IfBooleanF#1{\thu@special@index{package}{#2}}} \DeclareDocumentCommand{\cls}{s m}{% \textsf{#2}\IfBooleanF#1{\thu@special@index{package}{#2}}} \DeclareDocumentCommand{\file}{s m}{% \nolinkurl{#2}\IfBooleanF#1{\thu@special@index{file}{#2}}} \newcommand{\myentry}[1]{% \marginpar{\raggedleft\color{purple}\bfseries\strut #1}} \newcommand{\note}[2][Note]{{% \color{magenta}{\bfseries #1}\emph{#2}}} \g@addto@macro\UrlBreaks{% \do0\do1\do2\do3\do4\do5\do6\do7\do8\do9% \do\A\do\B\do\C\do\D\do\E\do\F\do\G\do\H\do\I\do\J\do\K\do\L\do\M \do\N\do\O\do\P\do\Q\do\R\do\S\do\T\do\U\do\V\do\W\do\X\do\Y\do\Z \do\a\do\b\do\c\do\d\do\e\do\f\do\g\do\h\do\i\do\j\do\k\do\l\do\m \do\n\do\o\do\p\do\q\do\r\do\s\do\t\do\u\do\v\do\w\do\x\do\y\do\z } \Urlmuskip=0mu plus 0.1mu \DeclareDocumentCommand{\githubuser}{m}{\href{https://github.com/#1}{@#1}} \def\thuthesis{\textsc{Thu}\-\textsc{Thesis}} %</dtx-style> % \end{macrocode} % \fi % % \Finale % \endinput % \iffalse % Local Variables: % mode: doctex % TeX-master: t % End: % \fi