diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/fduthesis/fduthesis-en.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/fduthesis/fduthesis-en.tex | 1084 |
1 files changed, 1084 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/fduthesis/fduthesis-en.tex b/Master/texmf-dist/doc/latex/fduthesis/fduthesis-en.tex new file mode 100644 index 00000000000..b14855d01cb --- /dev/null +++ b/Master/texmf-dist/doc/latex/fduthesis/fduthesis-en.tex @@ -0,0 +1,1084 @@ +%% +%% This is file `fduthesis-en.tex', +%% generated with Lua script `get-doc-en.lua'. +%% +%% The original source files were: +%% +%% fduthesis.dtx +%% +%% Copyright (C) 2017, 2018 by Xiangdong Zeng <xdzeng96@gmail.com> +%% +%% 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: +%% +%% http://www.latex-project.org/lppl.txt +%% +%% and version 1.3 or later is part of all distributions of +%% LaTeX version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is Xiangdong Zeng. +%% +%% This work consists of the files fduthesis.dtx, +%% fduthesis-doc.dtx, +%% fduthesis-logo.dtx, +%% fduthesis-template.tex, +%% and the derived files fduthesis.ins, +%% fduthesis.cls, +%% fduthesis-en.cls, +%% fduthesis.def, +%% fdudoc.cls, +%% fdulogo.sty, +%% fdulogo-example.tex, +%% fduthesis-cover.tex, +%% fduthesis-en.tex, +%% fduthesis.pdf, +%% fduthesis-en.pdf, +%% fduthesis-code.pdf, +%% latexmkrc, +%% latexmkrc-en, +%% and README.md. +%% +\PassOptionsToPackage{scheme=plain, linespread=1.1}{ctex} +\documentclass{fdudoc} +\hypersetup + { + pdftitle = {fduthesis: LaTeX Thesis Template for Fudan University}, + pdfauthor = {Xiangdong Zeng} + } +\ctexset + { + section = {name = {}, format+ = \raggedright}, + subsubsection/tocline = {\CTEXnumberline{#1}#2} + } +\pagestyle{headings} +\renewcommand*\expstar{\hyperlink{expstar}{$\mfrake$}} +\renewcommand*\rexpstar{\hyperlink{rexpstar}{$\mfrakc$}} +\newcommand\FSID{{\xeCJKsetup{PunctStyle=banjiao}。}} +\newcommand\FSFW{{\xeCJKsetup{PunctStyle=banjiao}.}} +\IndexPrologue{\section{Index}} +\def\IndexLayout{% + \setlength\IndexMin{0.5\textheight}% + \ctexset{section/numbering=false}% + \StopSpecialIndexModule} +\def\indexname{Index} +\let\usage\relax + +\title{\textcolor{MaterialIndigo800}{% + \textbf{The \textsf{fduthesis} Class \\ + \LaTeX{} Thesis Template for Fudan University}}} +\author{Xiangdong Zeng} +\date{\today \quad v0.7a% + \thanks{\url{https://github.com/Stone-Zeng/fduthesis}.}} + +\begin{document} + +\DeleteShortVerb\" + +\newgeometry{ + left = 1.25 in, + right = 1.25 in, + top = 1.25 in, + bottom = 1.00 in +} + +\maketitle +\vfill +\begin{center} + \includegraphics[width=8cm]{../logo/fduthesis-cover.pdf} +\end{center} +\vfill +\thispagestyle{plain} +\clearpage + +\tableofcontents + +\newgeometry{ + left = 1.75 in, + right = 1.00 in, + top = 1.25 in, + bottom = 1.00 in +} + +\section{Introduction} + +\cls{fduthesis} is a thesis template for Fudan University. +This template is mostly written in \LaTeX3 syntax, and +provides a simple interface for users. + +\subsection*{Getting started with \LaTeX{}} + +This documentation is \emph{not} a \LaTeX{} tutorial at +starter's level. If you are totally a newbie, please read some +introductions like the famous \pkg{lshort}. Of course, there +are countless \LaTeX{} tutorials on the Internet. You can +choose whatever you like. + +\subsection*{About this documentation} + +In this documentation, different typefaces are used to +represent different contents. Packages and classes are shown +in sans-serif font, e.g.\ \pkg{xeCJK} package and +\cls{fduthesis} class. Commands and file names are shown in +monospaced font, e.g.\ command \cs{fdusetup}, environment +\env{abstract} and \TeX{} document \file{thesis.tex}. +Italic-shaped font with angle brackets outside means arguments, +e.g.\ \meta{English title}. However, you do not need to type +the brackets when using these commands. The example code has +proper syntax highlighting so it will be much easier to read. + +\LaTeX{} code lines will have a blue line on their left, while +for command lines there will be a pink line. The options, +commands and environments in \cls{fduthesis} will be surrounded +by two horizontal lines. Their usages and descriptions are +provided at the same time. + +The options, commands and environments in \cls{fduthesis} can be +divided into the following three types: +\begin{itemize} + \item Those can be only used in \emph{Chinese templates} are + indicated by \rexptarget\rexpstar{}. + \item Those can be only used in \emph{English templates} are + indicated by \rexptarget\expstar{}. + \item If they do not have special characters afterwards, then + you can use them in both Chinese and English templates. +\end{itemize} + +If you want to read the implementation part, please turn to the +Chinese version. Any issues or feature requests can be submitted +in the \href{https://github.com/Stone-Zeng/fduthesis/issues}% +{GitHub repository}. + +\section{Installation} + +\subsection{Obtaining \cls{fduthesis}} + +\subsubsection{Standard installation} + +If there are no special reasons, it is always recommended to +install \cls{fduthesis} with a package manager. For example, +the following command will install the package in \TeXLive{} +(administrator permission may be required): +\begin{shellexample}[gobble=1,morekeywords={tlmgr,install}] + tlmgr install fduthesis +\end{shellexample} + +In \TeXLive{} and \MiKTeX{}, you can also install \cls{fduthesis} +through a graphical interface. It's rather simple and will not be +described here. + +\subsubsection{Install manually} + +If you want to download the template from GitHub and install it +manually, the recommended way is to use the TDS ZIP file: +\begin{itemize} + \item Download the \href{https://github.com/Stone-Zeng/fduthesis/releases/download/v0.7a/fduthesis.tds.zip}% + {TDS ZIP file} for \cls{fduthesis}; + \item Copy all the files in \file{fduthesis.tds.zip} into the + local TDS directory of \TeX{} distribution. + \item Run \bashcmd{mktexlsr} to update the ls-R database. +\end{itemize} +Although not recommended, you may generate the whole template +from source code as well: +\begin{itemize} + \item Open the project's \href{https://github.com/Stone-Zeng/fduthesis}% + {homepage}, click ``Clone or download'' and choose + ``Download ZIP'' to download \file{fduthesis-master.zip}. + If you have git program on your computer, you can also + clone the repository directly: + \begin{shellexample}[gobble=5,alsoletter={.},% + morekeywords={git,clone}] + git clone https://github.com/Stone-Zeng/fduthesis.git + \end{shellexample} + \item Extract files, and get into the \file{source} directory. + Run the following command to generate all the components: + \begin{shellexample}[gobble=5,morekeywords={xetex}] + xetex fduthesis.dtx + \end{shellexample} + \item Copy the generated document classes (\file{.cls}), + packages (\file{.sty}) and configuration files (\file{.def}) + into \path{texmf-local/tex/latex/fduthesis/} under the local + TDS tree of \TeX{} distribution. Then run \bashcmd{mktexlsr} + to update the ls-R database. +\end{itemize} + +\subsubsection{\cls{fduthesis} on the fly} + +If you don't want to install \cls{fduthesis} but need to use it +at once, you can try the installation scripts. Download the +repository from GitHub, run \file{install-win.bat} (on Windows) +or \file{install-linux.sh} (on Linux), then all the necessary +files will be found in the \file{thesis} folder. + +\subsection{Composition of the template} + +There are several parts in \cls{fduthesis}, including kernel +template classes, configuration files, affiliated packages and +user's guides. More details are listed in table~% +\ref{tab:fduthesis-components}. + +\begin{table}[ht] + \caption{The main components of \cls{fduthesis}} + \label{tab:fduthesis-components} + \centering + \begin{tabular}{lp{24em}} + \toprule + \textbf{Files} & \textbf{Descriptions} \\ + \midrule + \file{fduthesis.cls} & Document class for Chinese thesis. \\ + \file{fduthesis-en.cls} & Document class for English thesis.\\ + \file{fduthesis.def} & Configuration parameters file + for \cls{fduthesis}. Please do \emph{not} modify it. \\ + \file{fdudoc.cls} & Document class for user guides. \\ + \file{fdulogo.sty} & Fudan University's visual identity. \\ + \file{README.md} & The brief introduction. \\ + \file{fduthesis.pdf} & User's guide in Chinese. \\ + \file{fduthesis-en.pdf} & User's guide in English (this + document). \\ + \file{fduthesis-code.pdf} & Code implementation. \\ + \file{fduthesis-template.tex} & An empty thesis template, and you can + write your thesis based on it. \\ + \bottomrule + \end{tabular} +\end{table} + +\section{User's guide} + +\subsection{Getting started} + +Here is a minimal \TeX{} file for \cls{fduthesis}: +\begin{latexexample}[gobble=1,deletetexcs={\documentclass},% + moretexcs={\chapter},morekeywords={\documentclass},% + emph={[2]document}] + % thesis.tex + \documentclass{fduthesis} + \begin{document} + \chapter{欢迎} + \section{Welcome to fduthesis!} + 你好,\LaTeX{}! + \end{document} +\end{latexexample} + +Compile this file under the instructions in subsection~% +\ref{subsec:compilation}, you will get a 5-page article. +Of course, most of it will be blank, as you may predicate. + +The English version can be used in the same way: +\begin{latexexample}[gobble=1,deletetexcs={\documentclass},% + moretexcs={\chapter},morekeywords={\documentclass},% + emph={[2]document}] + % thesis-en.tex + \documentclass{fduthesis-en} + \begin{document} + \chapter{Welcome} + \section{Welcome to fduthesis!} + Hello, \LaTeX{}! + \end{document} +\end{latexexample} +The differences between English and Chinese version only +live in the main body. Thesis cover, instructors list and +declaration page are still printed in Chinese. + +\subsection{Compilation} \label{subsec:compilation} + +\cls{fduthesis} does NOT support \pdfTeX{}. Please use +\XeLaTeX{} or \LuaLaTeX{} to compile, and \XeLaTeX{} is +recommended. To get the correct table of contents, footnotes +and cross-references, you need to compile the source file at +least twice. + +In the following example, suppose your \TeX{} source file is +\file{thesis.tex}. Please execute the following commands if +you want to use \XeLaTeX{}: +\begin{shellexample}[gobble=1,morekeywords={xelatex}] + xelatex thesis + xelatex thesis +\end{shellexample} +You can use \pkg{latexmk} as well: +\begin{shellexample}[gobble=1,morekeywords={latexmk},emph={-xelatex}] + latexmk -xelatex thesis +\end{shellexample} + +\LuaLaTeX{} can be used in a similar way: +\begin{shellexample}[gobble=1,morekeywords={lualatex}] + lualatex thesis + lualatex thesis +\end{shellexample} +or +\begin{shellexample}[gobble=1,morekeywords={latexmk},emph={-lualatex}] + latexmk -lualatex thesis +\end{shellexample} + +Note that you should not put the profile \file{latexmkrc} in +your working directory. This file is meant to generate the +user's guide. + +\subsection{Options of the template} + +You can specify some \emph{template options} when loading +\cls{fduthesis}: +\begin{latexexample}[gobble=1,deletetexcs={\documentclass},% + morekeywords={\documentclass}] + \documentclass(*\oarg{options}*){fduthesis} + \documentclass(*\oarg{options}*){fduthesis-en} +\end{latexexample} + +Some options are \emph{boolean} --- they only take the value +\opt{true} or \opt{false}. For these options, you can +abbreviate ``\kvopt{\meta{option}}{true}'' simply to +``\opt{\meta{option}}''. + +\begin{function}[added=2018-02-01]{type} + \begin{fdusyntax}[gobble=4,emph={[1]type}] + type = (*<doctor|master|(bachelor)>*) + \end{fdusyntax} + Choose the type of your thesis. The three options represent + doctoral dissertation, master degree thesis and undergraduate + thesis, respectively. +\end{function} + +\begin{function}{oneside,twoside} + Specify whether single or double sided output should be + generated. \opt{twoside} will be chosen by default. These + option will determine where the new chapters begin and how + the headers display. The option \opt{twoside} does + \emph{not} tell the printer to actually make a two-sided + printout. +\end{function} + +If choosing \opt{twoside}, chapters will begin at the odd pages +(right hand). However, they will begin at arbitrary pages +available when choosing \opt{oneside}. Table of contents, +abstract and the list of symbols are considered as chapters and +processed in the same way. + +At two-sided mode, left headers on the even pages (left hand) +in \emph{main body} will show the title of chapters, while the +right headers on the odd pages (right hand) will show the +title of sections. Headers in \emph{front matter} have the +same style, but they will only show the title as +``\textit{Contents}'', ``\textit{Abstract}'', etc. + +At one-sided mode, both left and right headers on \emph{all} +pages in main body will be shown. The text is the title of +chapters and sections, respectively. In front matter, there +are only middle headers, which show the corresponding titles. + +\begin{function}{draft} + \begin{fdusyntax}[gobble=4,emph={[1]draft}] + draft = (*<\TFF>*) + \end{fdusyntax} + Enable draft mode. Default off. +\end{function} + +\opt{draft} is a global option and will affect many packages. +You may notice the following changes when using \opt{draft}: +\begin{itemize} + \item Lines with overfull \tn{hbox}'s will be marked with + a thick black square on the right margin. + \item Will not include graphics files actually, but instead + print a box of the size the graphic would take up, as well + as the file name. + \item Will not make hyperlinks and PDF bookmarks. + \item Show the page frames. +\end{itemize} + +\begin{function}[added=2018-01-31]{config} + \begin{fdusyntax}[gobble=4,emph={[1]config}] + config = (*\marg{file}*) + \end{fdusyntax} + File name of user profile. Default value is empty, so no + profile is loaded automatically. +\end{function} + +\subsection{More options} + +\begin{function}{\fdusetup} + \begin{fdusyntax}[gobble=4,morekeywords={\fdusetup}] + \fdusetup(*\marg{key-value list}*) + \end{fdusyntax} + \cls{fduthesis} has provided a number of options, which + can be given via the general command \cs{fdusetup}. +\end{function} + +The argument of \cs{fdusetup} is a set of comma-separated option +list. The options usually have the form of \kvopt{\meta{key}}% +{\meta{value}} and in some cases \meta{value} can be omitted. +For the same option, the values given later will override the +the previous ones. Default values are indicated in +\textbf{boldface} in the following descriptions. + +\cs{fdusetup} follows \LaTeX3 key-value style, and different +types as well as various levels options are supported. In the +key-value list, spaces around ``|=|'' will be trimmed; however, +blank lines should never appear in the argument. + +Similar with template options, ``\kvopt{\meta{option}}{true}'' +can be abbreviated to \opt{\meta{option}} for boolean type. + +Some options, such as \opt{style} and \opt{info}, may have +sub-options. They can be set by the following two equivalent +methods: +\begin{latexexample}[gobble=1,morekeywords={\fdusetup},% + emph={[1]style,cjk-font,font-size,info,title,title*,author,author*,department}] + \fdusetup{ + style = {cjk-font = adobe, font-size = -4}, + info = { + title = {关于光产生和转变的一个启发性观点}, + title* = {On a Heuristic Viewpoint Concerning the Production + and Transformation of Light}, + author = {阿尔伯特·爱因斯坦}, + author* = {Albert Einstein}, + department = {物理学系} + } + } +\end{latexexample} +or +\begin{latexexample}[gobble=1,morekeywords={\fdusetup},% + emph={[1]style,cjk-font,font-size,info,title,title*,author,author*,department}] + \fdusetup{ + style/cjk-font = adobe, + style/font-size = -4, + info/title = {关于光产生和转变的一个启发性观点}, + info/title* = {On a Heuristic Viewpoint Concerning the Production + and Transformation of Light}, + info/author = {阿尔伯特·爱因斯坦}, + info/author* = {Albert Einstein}, + info/department = {物理学系} + } +\end{latexexample} + +Note that you may \emph{not} put spaces around ``|/|''. + +\subsubsection{Style and format} \label{subsubsec:style-and-format} + +\begin{function}{style} + \begin{fdusyntax}[gobble=4,emph={[1]style}] + style = (*\marg{key-value list}*) + style/(*\meta{key}*) = (*\meta{value}*) + \end{fdusyntax} + This general option is for setting the thesis style and format. + See the following details. +\end{function} + +\begin{function}[updated=2017-09-23]{style/font} + \begin{fdusyntax}[gobble=4,emph={[1]font}] + font = (*<libertinus|lm|palatino|(times)|none>*) + \end{fdusyntax} + Set the western fonts (including math fonts). +\end{function} + +\begin{function}[rEXP,updated=2017-09-23]{style/cjk-font} + \begin{fdusyntax}[gobble=4,emph={[1]cjk-font}] + cjk-font = (*<adobe|(fandol)|founder|mac|windows|none>*) + \end{fdusyntax} + Set CJK (Chinese, Japanese and Korean) fonts. +\end{function} + +When you choose \kvopt{font}{none} or \kvopt{cjk-font}{none}, +\cls{fduthesis} will disable the default western/CJK font +settings. You may use \cs{setmainfont}, \cs{setCJKmainfont} +and \cs{set\-math\-font}, etc.\ to configure the fonts manually. + +\begin{function}{style/font-size} + \begin{fdusyntax}[gobble=4,emph={[1]font-size}] + font-size = (*<(-4)|5>*) + \end{fdusyntax} + Specify the basic font size in your thesis. +\end{function} + +\begin{function}[rEXP,updated=2017-10-14]{style/fullwidth-stop} + \begin{fdusyntax}[gobble=4,emph={[1]fullwidth-stop}] + fullwidth-stop = (*<catcode|mapping|(false)>*) + \end{fdusyntax} + Let full-width full stop ``\FSFW'' as the default full stop. + Generally, this punctuation is used for scientific articles, + where ``\FSID'' is easily to be confused with subscript + ``$_o$'' or ``$_0$''. +\end{function} + +If you choose \kvopt{fullwidth-stop}{catcode}, only +\emph{explicit} ``\FSID'' will be replaced by ``\FSFW''; when +choosing \kvopt{fullwidth-stop}{mapping}, however, \emph{all} +the ``\FSID'' will be replaced. + +\opt{mapping} is valid only under \XeTeX{}. When compiling +with \LuaTeX{}, it is equivalent to \opt{catcode}. + +If you want to display ``\FSID'' temporarily after setting +\kvopt{fullwidth-stop}{mapping}, the following code snippet +will be helpful: +\begin{latexexample}[gobble=1,moretexcs={\CJKfontspec},emph={[1]Mapping}] + % Compiled with XeTeX + % The outside braces is used for group + 这是一个句号{\CJKfontspec{(*\meta{font name}*)}[Mapping=full-stop]。} +\end{latexexample} + +\begin{function}{style/footnote-style} + \begin{fdusyntax}[gobble=4,emph={[1]footnote-style}] + footnote-style = (*<plain|\\ + XXXX\mbox{}~~~~~~~~~~~~~~~~~libertinus|libertinus*|libertinus-sans|\\ + XXXX\mbox{}~~~~~~~~~~~~~~~~~pifont|pifont*|pifont-sans|pifont-sans*|\\ + XXXX\mbox{}~~~~~~~~~~~~~~~~~xits|xits-sans|xits-sans*>*) + \end{fdusyntax} + Set the style of footnote numbers. Note that western fonts + will affect its default value (see table~\ref{tab:footnote-font}), + so you may put it after |font| option. The one with |sans| + is for the corresponding sans-serif version, while |*| + for white on black version. +\end{function} + +\begin{table}[ht] + \caption{Relationship between option \opt{font} and the + default value of \opt{footnote-style}} + \label{tab:footnote-font} + \centering + \begin{tabular}{ccccc} + \toprule + \textbf{Western fonts settings} & + |libertinus| & |lm| & |palatino| & |times| \\ + \midrule + \textbf{Default value of footnote number style} & + |libertinus| & |pifont| & |pifont| & |xits| \\ + \bottomrule + \end{tabular} +\end{table} + +\begin{function}[added=2017-08-13]{style/hyperlink} + \begin{fdusyntax}[gobble=4,emph={[1]hyperlink}] + hyperlink = (*<border|(color)|none>*) + \end{fdusyntax} + Set the style of hyperlinks. \opt{border} draws borders around + hyperlinks; \opt{color} displays hyperlinks in colorful text; + \opt{none} leads to plain text, which is useful when printing + the final document. +\end{function} + +\begin{function}[added=2017-08-13,updated=2017-12-08]{style/hyperlink-color} + \begin{fdusyntax}[gobble=4,emph={[1]hyperlink-color}] + hyperlink-color = (*<(default)|classic|elegant|fantasy|material|\\ + XXXX\mbox{}~~~~~~~~~~~~~~~~~~business|science|summer|autumn|graylevel|prl>*) + \end{fdusyntax} + Set the color of hyperlinks. It is invalid if + \kvopt{hyperlink}{none}. The related colors can be found + in table~\ref{tab:hyperlink-color}. +\end{function} + +\begin{table}[ht] +\centering +\newcommand\linkcolorexam[3]{% + {\small Fig.~\textcolor[HTML]{#1}{1-2}, + Eq.~(\textcolor[HTML]{#1}{3.4})} & + {\small \textcolor[HTML]{#2}{\texttt{http://g.cn}}} & + {\small Ref.~[\textcolor[HTML]{#3}{1}], + (\textcolor[HTML]{#3}{Knuth~1986})}} +\begin{threeparttable} +\caption{Pre-defined hyperlink color schemes} +\label{tab:hyperlink-color} +\begin{tabular}{c*{3}{>{\hspace{0.2cm}}c<{\hspace{0.2cm}}}} + \toprule + \textsf{Options} & \textsf{Cross references} & \textsf{URL} & \textsf{Citation} \\ + \midrule + \opt{default} & \linkcolorexam{990000}{0000B2}{007F00} \\ + \opt{classic} & \linkcolorexam{FF0000}{0000FF}{00FF00} \\ + \opt{elegant}\tnote{a} & \linkcolorexam{961212}{C31818}{9B764F} \\ + \opt{fantasy}\tnote{b} & \linkcolorexam{FF4A19}{FF3F94}{934BA1} \\ + \opt{material}\tnote{c} & \linkcolorexam{E91E63}{009688}{4CAF50} \\ + \opt{business}\tnote{d} & \linkcolorexam{D14542}{295497}{1F6E43} \\ + \opt{science}\tnote{e} & \linkcolorexam{CA0619}{389F9D}{FF8920} \\ + \opt{summer}\tnote{f} & \linkcolorexam{00AFAF}{5F5FAF}{5F8700} \\ + \opt{autumn}\tnote{f} & \linkcolorexam{D70000}{D75F00}{AF8700} \\ + \opt{graylevel}\tnote{c} & \linkcolorexam{616161}{616161}{616161} \\ + \opt{prl}\tnote{g} & \linkcolorexam{2D3092}{2D3092}{2D3092} \\ + \bottomrule +\end{tabular} +\begin{tablenotes} + \item[a] From \href{https://tex.stackexchange.com/}% + {\TeX{} - \LaTeX{} Stack Exchange}. + \item[b] Adobe CC. + \item[c] Material Design color palette + (See \url{https://material.io/guidelines/style/color.html}). + \item[d] Microsoft Office 2016. + \item[e] From \href{https://www.wolfram.com/}{Wolfram Research website}. + \item[f] Solarized color palette + (See \url{http://ethanschoonover.com/solarized}). + \item[g] \textit{Physical Review Letter} magazine. +\end{tablenotes} +\end{threeparttable} +\end{table} + +\begin{function}[added=2018-01-25]{style/bib-backend} + \begin{fdusyntax}[gobble=4,emph={[1]bib-backend}] + bib-backend = (*<bibtex|biblatex>*) + \end{fdusyntax} + Specify the backend or driver of bibliography processing. + \BibTeX{} and \pkg{natbib} package will be used if you choose + \opt{bibtex}, while \biber{} and \pkg{biblatex} will be used + if you choose \opt{biblatex}. +\end{function} + +\begin{function}[added=2017-10-28,updated=2018-01-25]% + {style/bib-style} + \begin{fdusyntax}[gobble=4,emph={[1]bib-style}] + bib-style = (*<author-year|(numerical)|\meta{other style}>*) + \end{fdusyntax} + Set the style of bibliography. \opt{author-year} and + \opt{numerical} will follow the standard GB/T 7714--2015. + By setting \kvopt{bib-style}{\meta{other style}}, you can use + other bibliography style (\file{.bst} file for + \kvopt{bib-backend}{bibtex} and \file{.bbx} file for + \kvopt{bib-backend}{biblatex}). Suffix is not needed. +\end{function} + +\begin{function}[added=2018-01-25]{style/cite-style} + \begin{fdusyntax}[gobble=4,emph={[1]cite-style}] + cite-style = (*\marg{style}*) + \end{fdusyntax} + Select citation style. Default value is empty, which means + the citation style will follow your bibliography style + (author-year or numeric). If you want change the citation + style, the corresponding \file{.cbx} file must be available. + This option is invalid when \kvopt{bib-backend}{bibtex}. +\end{function} + +\begin{function}[added=2018-01-25]{style/bib-resource} + \begin{fdusyntax}[gobble=4,emph={[1]bib-resource}] + bib-resource = (*\marg{bib file(s)}*) + \end{fdusyntax} + Specify the bibliography database (usually in \file{.bib} + format). If using more than one files, the file names should + be separated with comma. When \kvopt{bib-backend}{biblatex}, + you must type in the ``\file{.bib}'' suffix. +\end{function} + +\begin{function}[added=2017-08-10]{style/logo} + \begin{fdusyntax}[gobble=4,emph={[1]logo}] + logo = (*\marg{file}*) + \end{fdusyntax} + File name of the logo in thesis cover. Default value is + \file{fudan-name.pdf}. +\end{function} + +\begin{function}[added=2017-08-10]{style/logo-size} + \begin{fdusyntax}[gobble=4,emph={[1]logo-size}] + logo-size = (*\marg{width}*) + logo-size = {(*\meta{width}*), (*\meta{height}*)} + \end{fdusyntax} + Size of the logo. By default, only width is set to + |0.5\textwidth|. To set height only, you can put an + empty group ``|{}|'' at \meta{width}. +\end{function} + +\begin{function}[added=2017-07-06]{style/auto-make-cover} + \begin{fdusyntax}[gobble=4,emph={[1]auto-make-cover}] + auto-make-cover = (*<\TTF>*) + \end{fdusyntax} + Whether generate thesis cover, list of instructors (inside + front cover) and declaration page (inside back cover) + automatically. Entries in the cover can be specified also + via \cs{fdusetup}, and you can find more details in + subsubsection~\ref{subsubsec:information}. +\end{function} + +\begin{function}{\makecoveri,\makecoverii,\makecoveriii} + For generating thesis cover, list of instructors and + declaration page manually. These commands cannot ensure + the correct page numbers, hence you should always use the + auto-generated thesis cover unless necessary. +\end{function} + +\subsubsection{Personal information} \label{subsubsec:information} + +\begin{function}{info} + \begin{fdusyntax}[gobble=4,emph={[1]info}] + info = (*\marg{key-value list}*) + info/(*\meta{key}*) = (*\meta{value}*) + \end{fdusyntax} + This general option is for entering your personal information. + See the following details. Note that options with ``|*|'' are + the corresponding English items. +\end{function} + +\begin{function}[added=2018-02-01]{info/degree} + \begin{fdusyntax}[gobble=4,emph={[1]degree}] + degree = (*<(academic)|professional>*) + \end{fdusyntax} + Degree type. This option can only be used in master degree + thesis. +\end{function} + +\begin{function}{info/title,info/title*} + \begin{fdusyntax}[gobble=4,emph={[1]title,title*}] + title = (*\marg{title in Chinese}*) + title* = (*\marg{title in English}*) + \end{fdusyntax} + Title of your thesis. The line width is about \SI{30}{em} by + default, but you may break it with |\\| manually. +\end{function} + +\begin{function}{info/author,info/author*} + \begin{fdusyntax}[gobble=4,emph={[1]author,author*}] + author = (*\marg{name in Chinese}*) + author* = (*\marg{name in English \lparen or Pinyin\rparen}*) + \end{fdusyntax} + Author's name. +\end{function} + +\begin{function}{info/supervisor} + \begin{fdusyntax}[gobble=4,emph={[1]supervisor}] + supervisor = (*\marg{name}*) + \end{fdusyntax} + Supervisor's name. +\end{function} + +\begin{function}{info/department} + \begin{fdusyntax}[gobble=4,emph={[1]department}] + department = (*\marg{name}*) + \end{fdusyntax} + Name of the department. +\end{function} + +\begin{function}{info/major} + \begin{fdusyntax}[gobble=4,emph={[1]major}] + major = (*\marg{name}*) + \end{fdusyntax} + Name of the major. +\end{function} + +\begin{function}{info/student-id} + \begin{fdusyntax}[gobble=4,emph={[1]student-id}] + student-id = (*\marg{number}*) + \end{fdusyntax} + Author's student ID. +\end{function} + +In Fudan University, student ID has 11 digits. The first two +are the year of attendance; next one represents the student's +type (1 for doctor, 2 for master and 3 for bachelor); the +following five digits are major ID while the last three are +serial number. + +\begin{function}{info/school-id} + \begin{fdusyntax}[gobble=4,emph={[1]school-id}] + school-id = (*\marg{number}*) + \end{fdusyntax} + School ID. Default value is 10246 (school ID of Fudan University). +\end{function} + +\begin{function}{info/date} + \begin{fdusyntax}[gobble=4,emph={[1]date}] + date = (*\marg{date}*) + \end{fdusyntax} + Finish date of your thesis. Default value is the compilation + date (\tn{today}). +\end{function} + +\begin{function}[added=2017-07-04]{info/secret-level} + \begin{fdusyntax}[gobble=4,emph={[1]secret-level}] + secret-level = (*<(none)|i|ii|iii>*) + \end{fdusyntax} + Secret level. \opt{i}, \opt{ii} and \opt{iii} means + ``秘密'' (secret), ``机密'' (confidential) and ``绝密'' + (top secret) respectively. \opt{none} means your thesis is + not secret-related and secret level and year will not be + shown. +\end{function} + +\begin{function}[added=2017-07-04]{info/secret-year} + \begin{fdusyntax}[gobble=4,emph={[1]secret-year}] + secret-year = (*\marg{year}*) + \end{fdusyntax} + Secret year. It's recommended to use Chinese word as ``五年'' + (5 years) here. This option is invalid if you have set + \kvopt{secret-level}{none}. +\end{function} + +\begin{function}{info/instructors} + \begin{fdusyntax}[gobble=4,emph={[1]instructors}] + instructors = (*\marg{member 1, member 2, ...}*) + \end{fdusyntax} + Instructors' name. Each name should be separated with + comma. To disambiguate, you may put text containing comma + into a group ``|{...}|''. +\end{function} + +\begin{function}{info/keywords,info/keywords*} + \begin{fdusyntax}[gobble=4,emph={[1]keywords,keywords*}] + keywords = (*\marg{keywords in Chinese}*) + keywords* = (*\marg{keywords in English}*) + \end{fdusyntax} + Keywords list. Each keyword should be separated with comma. + To disambiguate, you may put text containing comma into a + group ``|{...}|''. +\end{function} + +\begin{function}{info/clc} + \begin{fdusyntax}[gobble=4,emph={[1]clc}] + clc = (*\marg{classification codes}*) + \end{fdusyntax} + Chinese Library Classification (CLC). +\end{function} + +\subsection{Writing your thesis} + +\subsubsection{Front matter} + +\begin{function}{\frontmatter} + Declare the beginning of front matter. +\end{function} + +Front matter contains table of contents, abstracts and notation +list. The page numbers in front matter will be shown in +lowercase Roman numerals, and will be counted separately with +main matter. + +\begin{function}{\tableofcontents} + Generate the table of contents (TOC). You need to compile + the source file at least \emph{twice} to get the correct TOC. +\end{function} + +\begin{function}{abstract} + \begin{fdusyntax}[gobble=4,emph={[2]abstract}] + % fduthesis (Chinese thesis) % fduthesis-en (English thesis) + \begin{abstract} \begin{abstract} + (*\meta{Chinese abstract} \hspace{3cm} \meta{English abstract}*) + \end{abstract} \end{abstract} + \end{fdusyntax} +\end{function} +\begin{function}[rEXP]{abstract*} + \begin{fdusyntax}[gobble=4,emph={[2]abstract*}] + % Only for fduthesis + \begin{abstract*} + (*\meta{English abstract}*) + \end{abstract*} + \end{fdusyntax} + Abstract environment. In \cls{fduthesis}, \env{abstract} and + \env{abstract*} are used for Chinese and English abstract, + respectively; while in \cls{fduthesis-en}, there is no + \env{abstract*} environment and you need to write the English + abstract merely. +\end{function} + +At the end of abstract (both Chinese and English, if available), +keywords list and CLC number will be shown. They can be +specified via command \cs{fdusetup} and you may refer to +subsubsection~\ref{subsubsec:information} for more details. + +\begin{function}{notation} + \begin{fdusyntax}[gobble=4,emph={[2]notation}] + \begin{notation}(*\oarg{column format}*) + (*\meta{symbol 1}*) & (*\meta{description}*) \\ + (*\meta{symbol 2}*) & (*\meta{description}*) \\ + (*\phantom{\meta{symbol $n$}}*) (*$\vdots$*) + (*\meta{symbol \kern-0.1em$n$}*) & (*\meta{description}*) + \end{notation} + \end{fdusyntax} + Notation list (or symbol list, nomenclature) environment. + The optional argument \meta{column format} is the same as + in a standard \LaTeX{} table. The default value is + ``|lp{7.5cm}|'', which means auto-width for the first column + and fix-width (\SI{7.5}{cm}) for the second; both columns will + be left-aligned. +\end{function} + +\subsubsection{Main matter} + +\begin{function}{\mainmatter} + Declare the beginning of main matter. +\end{function} + +As the name suggests, ``main matter'' is the main body of your +thesis. When working on a big projects, it's usually a good +idea to split the source file into several parts. The page +numbers in main matter are shown in arabic numerals. + +\begin{function}[updated=2018-01-15]{\footnote} + \begin{fdusyntax}[gobble=4,deletetexcs={\footnote},% + morekeywords={\footnote}] + \footnote(*\marg{text}*) + \end{fdusyntax} + Insert a footnote. The style of footnote numbers can be set + with option \opt{style/foot\-note\-style}. See subsubsection~% + \ref{subsubsec:style-and-format} for more details. +\end{function} + +\begin{function}{axiom,corollary,definition,example,lemma, + proof,theorem} + \begin{fdusyntax}[gobble=4,emph={[2]proof}] + \begin{proof}(*\oarg{subheading}*) + (*\meta{procedure of proof}*) + \end{proof} + \end{fdusyntax} + A series of pre-defined math environments. +\end{function} + +A QED\footnote{Abbreviation of Latin phrase \emph{quod erat + demonstrandum}, means ``what was to be demonstrated''.} +symbol ``$\QED$'' will be added at the end of \env{proof} +environment. You need to compile the source file \emph{twice} +as in subsection~\ref{subsec:compilation} in order to make +the position of QED symbol correct. + +\begin{function}[updated=2017-12-12]{\newtheorem} + \begin{fdusyntax}[gobble=4,deletetexcs={\newtheorem}, + morekeywords={\newtheorem,\newtheorem*}] + \newtheorem(*\oarg{options}\marg{environment}\marg{title}*) + \newtheorem*(*\oarg{options}\marg{environment}\marg{title}*) + \begin(*\marg{environment}\oarg{subheading}*) + (*\meta{contents}*) + \end(*\marg{environment}*) + \end{fdusyntax} + Declare new math environments (theorems). If you use + \cs{newtheorem*}, then the theorem will not be numbered, and + a QED symbol ``$\QED$'' will be added at the end of the + environment. All the theorem environments defined by yourself + can be used as the pre-defined ones. +\end{function} + +Actually, the pre-defined math environments are just defined +with \cs{newtheorem} and \cs{newtheorem*}: +\begin{latexexample}[gobble=1,deletetexcs={\newtheorem}, + morekeywords={\newtheorem,\newtheorem*}] + \newtheorem*{proof}{proof} + \newtheorem{axiom}{axiom} + \newtheorem{corollary}{corollary} + ... +\end{latexexample} + +Similar with \cs{fdusetup}, the optional argument \meta{options} +of \cs{newtheorem} is a key-value list as well. The available +are described below. Note that you don't need to type in the +``|theorem/|'' prefix. + +\begin{function}{theorem/style} + \begin{fdusyntax}[gobble=4,emph={[1]style}] + style = (*<(plain)|margin|change|\\ + XXXX\mbox{}~~~~~~~~break|marginbreak|changebreak>*) + \end{fdusyntax} + The overall style of the theorem environment. +\end{function} + +\begin{function}{theorem/header-font} + \begin{fdusyntax}[gobble=4,emph={[1]header-font}] + header-font = (*\marg{font}*) + \end{fdusyntax} + Font of the theorem header. Default value is \tn{sffamily} + and |\bfseries\upshape| for Chinese and English template, + respectively. +\end{function} + +\begin{function}{theorem/body-font} + \begin{fdusyntax}[gobble=4,emph={[1]body-font}] + body-font = (*\marg{font}*) + \end{fdusyntax} + Font of the theorem body. Default value is \tn{fdu@kai} + (\textit{楷体}) and \tn{itshape} for Chinese and English + template, respectively. +\end{function} + +\begin{function}{theorem/qed} + \begin{fdusyntax}[gobble=4,emph={[1]qed}] + qed = (*\marg{symbol}*) + \end{fdusyntax} + Theorem end mark. For \cs{newtheorem}, default value is + empty; for \cs{newtheorem*}, default value is + |\ensuremath{\QED}| (i.e.\ ``$\QED$''). +\end{function} + +\begin{function}{theorem/counter} + \begin{fdusyntax}[gobble=4,emph={[1]counter}] + counter = (*\marg{counter}*) + \end{fdusyntax} + The theorem will be enumerated within \meta{counter}. For + example, the default value is |chapter|, which means with + each new \tn{chapter}, the enumeration begins again with 1. + This option is invalid for \cs{newtheorem*}. +\end{function} + +\begin{function}{\caption} + \begin{fdusyntax}[gobble=4,deletetexcs={\caption},morekeywords={\caption}] + \caption(*\marg{caption}*) + \caption(*\oarg{short caption}\marg{long caption}*) + \end{fdusyntax} + Insert the caption of figure or table. The optional argument + \meta{short caption} will be shown in the list of figures/tables. + In \meta{long caption}, you can write descriptions for several + paragraphs, but \meta{short caption} and the single + \meta{caption} will not allow multi-paragraph text (i.e.\ + text containing \tn{par}) inside. +\end{function} + +By convention, caption of a table is usually put \emph{before} +the table itself, while for figure it's the opposite. +In addition, command \tn{caption} must be put inside float +environments (e.g.\ \env{table} and \env{figure}). + +\subsubsection{Back matter} + +\begin{function}{\backmatter} + Declare the beginning of back matter. +\end{function} + +Back matter contains bibliography, declaration page, etc. + +\begin{function}[updated=2018-01-25]{\printbibliography} + \begin{fdusyntax}[gobble=4,morekeywords={\printbibliography}] + \printbibliography(*\oarg{options}*) + \end{fdusyntax} + Print the bibliography. When \kvopt{bib-backend}{bibtex}, then + \meta{options} is invalid and this command is equivalent to + \tn{bibliography} \texttt{\marg{bib files}}, where + \meta{bib files} should be specified with option + \opt{style/bib-resource} (see subsubsection~% + \ref{subsubsec:style-and-format}). When \kvopt{bib-backend}% + {bibtex}, then \tn{printbibliography} is provided by + \pkg{biblatex} and the available options can be found in its + documentation. +\end{function} + +\section{Packages dependencies} + +Different compilation methods and options will result in a +different packages dependency. Details are as follows: +\begin{itemize} + \item In any case, \cls{fduthesis} will load the following + packages \emph{explicitly}: + \begin{itemize} + \item \pkg{expl3}, \pkg{xparse}, \pkg{xtemplate} and + \pkg{l3keys2e}, belong to \pkg{l3kernel} and + \pkg{l3packages} bundles + \item \cls{ctexbook}, belongs to \CTeX{} bundle + \item \pkg{amsmath}, belongs to \AmSLaTeX{} bundle + \item \pkg{unicode-math} + \item \pkg{geometry} + \item \pkg{fancyhdr} + \item \pkg{footmisc} + \item \pkg{ntheorem} + \item \pkg{graphicx} + \item \pkg{longtable} + \item \pkg{caption} + \item \pkg{natbib} + \item \pkg{xcolor} + \item \pkg{hyperref} + \end{itemize} + \item When chosen \kvopt{style/footnote-style}{pifont}, + package \pkg{pifont} will be loaded. It belongs to + \pkg{psnfss} bundle. + \item When chosen \kvopt{style/bib-backend}{bibtex}, + package \pkg{natbib} will be loaded. Meanwhile, program + \BibTeX{} will be required for compilation. The + bibliography style is provided by \pkg{gbt7714}. + \item When chosen \kvopt{style/bib-backend}{biblatex}, + package \pkg{biblatex} will be loaded. Program \biber{} + will be required then. The bibliography style is provided + by \pkg{biblatex-gb7714-2015}. +\end{itemize} + +Only the packages loaded directly by \cls{fduthesis} are listed +here. If you need to know the dependencies of the packages +themselves, please refer to the corresponding manuals. + +\end{document} |