texlive[57313] Master: easybook (3jan21)

commits+karl at tug.org commits+karl at tug.org
Sun Jan 3 23:31:14 CET 2021


Revision: 57313
          http://tug.org/svn/texlive?view=revision&revision=57313
Author:   karl
Date:     2021-01-03 23:31:14 +0100 (Sun, 03 Jan 2021)
Log Message:
-----------
easybook (3jan21)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/easybook/
    trunk/Master/texmf-dist/doc/latex/easybook/README.md
    trunk/Master/texmf-dist/doc/latex/easybook/doc/
    trunk/Master/texmf-dist/doc/latex/easybook/doc/easybook.pdf
    trunk/Master/texmf-dist/doc/latex/easybook/easybook-demo.pdf
    trunk/Master/texmf-dist/doc/latex/easybook/easybook-demo.tex
    trunk/Master/texmf-dist/doc/latex/easybook/pages/
    trunk/Master/texmf-dist/doc/latex/easybook/pages/appendix.tex
    trunk/Master/texmf-dist/doc/latex/easybook/pages/chapter1.tex
    trunk/Master/texmf-dist/doc/latex/easybook/pages/chapter2.tex
    trunk/Master/texmf-dist/doc/latex/easybook/pages/chapter3.tex
    trunk/Master/texmf-dist/doc/latex/easybook/pages/preface.tex
    trunk/Master/texmf-dist/doc/latex/easybook/ref/
    trunk/Master/texmf-dist/doc/latex/easybook/ref/refs.bib
    trunk/Master/texmf-dist/tex/latex/easybook/
    trunk/Master/texmf-dist/tex/latex/easybook/easybook.cls
    trunk/Master/tlpkg/tlpsrc/easybook.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/easybook/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/easybook/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/easybook/README.md	2021-01-03 22:31:14 UTC (rev 57313)
@@ -0,0 +1,42 @@
+# Easybook book document class
+Easybook is a minimalist style template based on the ctexbook book document class.  It is mainly suitable for typesetting Chinese books or notes, and can even be slightly modified to become a dissertation template.  Some commonly used macro packages have been loaded to achieve general typesetting requirements. Although some details have been considered as much as possible, there are still deficiencies.
+## Compilation method
+Please use the UTF8 encoding and enter the following command on the command line
+```
+xelatex -shell-escape easybook-demo
+bibtex easybook-demo
+makeindex easybook-demo
+xelatex -shell-escape easybook-demo
+xelatex -shell-escape easybook-demo
+```
+## Reference documents
+- [CTeX macro collection manual](https://ctan.org/pkg/ctex)
+- [Xiamen University graduation thesis template](https://github.com/CamuseCao/XMU-thesis)
+- [Fudan University graduation thesis template](https://github.com/stone-zeng/fduthesis)
+- [Wuhan University graduation thesis template](https://github.com/mtobeiyf/whu-thesis)
+- [ElegantBook book template](https://ctan.org/pkg/elegantbook)
+##  Website
+| [Gitee](https://gitee.com/TeX-doc/easybook) | [Github](https://github.com/TeX-doc/easybook) | [CTAN]() | [Font](https://wws.lanzous.com/b01ns361i) |
+
+
+
+# easybook 书籍文档类
+
+easybook 是基于 ctexbook 书籍文档类的极简风格模板。它主要适用于中文书籍或笔记的排版,甚至可以稍作修改成为论文模板。已加载一些常用的宏程序包以实现一般的排版要求。尽管已尽可能多地考虑了一些细节,但仍然存在不足。
+## 编制方法
+请使用 UTF8 编码,并在命令行上输入以下命令
+```
+xelatex -shell-escape easybook-demo
+bibtex easybook-demo
+makeindex easybook-demo
+xelatex -shell-escape easybook-demo
+xelatex -shell-escape easybook-demo
+```
+## 参考文档
+- [CTeX 宏集手册](https://ctan.org/pkg/ctex)
+- [厦门大学毕业论文模板](https://github.com/CamuseCao/XMU-thesis)
+- [复旦大学毕业论文模板](https://github.com/stone-zeng/fduthesis)
+- [武汉大学毕业论文模板](https://github.com/mtobeiyf/whu-thesis)
+- [ElegantBook 书籍模板](https://ctan.org/pkg/elegantbook)
+##  网址
+| [Gitee](https://gitee.com/TeX-doc/easybook) | [Github](https://github.com/TeX-doc/easybook) | [CTAN]() | [字体](https://wws.lanzous.com/b01ns361i) |
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/easybook/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/easybook/doc/easybook.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/easybook/doc/easybook.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/easybook/doc/easybook.pdf	2021-01-03 22:30:19 UTC (rev 57312)
+++ trunk/Master/texmf-dist/doc/latex/easybook/doc/easybook.pdf	2021-01-03 22:31:14 UTC (rev 57313)

Property changes on: trunk/Master/texmf-dist/doc/latex/easybook/doc/easybook.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/easybook/easybook-demo.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/easybook/easybook-demo.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/easybook/easybook-demo.pdf	2021-01-03 22:30:19 UTC (rev 57312)
+++ trunk/Master/texmf-dist/doc/latex/easybook/easybook-demo.pdf	2021-01-03 22:31:14 UTC (rev 57313)

Property changes on: trunk/Master/texmf-dist/doc/latex/easybook/easybook-demo.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/easybook/easybook-demo.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/easybook/easybook-demo.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/easybook/easybook-demo.tex	2021-01-03 22:31:14 UTC (rev 57313)
@@ -0,0 +1,65 @@
+\documentclass[zihao = -4,openany]{easybook}
+\ctexset
+  {
+    style =
+      {
+        color = navygreen,
+        % cite = authoryear,
+        thmbox = true,
+        % capdash = true,
+        % multoc = true,
+        % withpart = true,
+        % perpart = true,
+        perpage = true
+      },
+    link =
+      {
+        hyperlink = various,
+        linkcolor = lightblue,
+        linktopage = false
+      },
+    spread =
+      {
+        linespread = 1.355,
+        tabspread = 1.05,
+        mathspread = 1,
+        capspread = 1,
+        fnspread = 1
+      },
+    % secnumdepth = 2,
+    % tocdepth = 2
+  }
+
+\AfterPreamble
+  {
+    \title{\sffamily easybook书籍文档类}
+    \author
+      {
+        Qu Yi\thanks{texeasybook at foxmail.com.} \\
+        \textcolor[HTML]{c71d23}{\faGit}~\url{https://gitee.com/TeX-doc/easybook}\thanks{Gitee为项目的主要发布地址。} \\
+        \faGithub~\url{https://github.com/TeX-doc/easybook} \\
+        \textcolor[HTML]{00c2ff}{\faEdge}~\url{https://latexstudio.net}
+      }
+    \date{2021/01/03\hskip\ccwd\relax v1.0}
+  }
+
+\begin{document}
+\frontmatter
+\maketitle
+\subfile{pages/preface}
+\tableofcontents
+
+\mainmatter
+\part{使用示例}
+\subfile{pages/chapter1}
+\subfile{pages/chapter2}
+\subfile{pages/chapter3}
+\subfile{pages/appendix}
+
+\backmatter
+\bibliography{ref/refs}
+\listoffigures
+\listoftables
+\listoflistings
+\printindex
+\end{document}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/easybook/easybook-demo.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/easybook/pages/appendix.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/easybook/pages/appendix.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/easybook/pages/appendix.tex	2021-01-03 22:31:14 UTC (rev 57313)
@@ -0,0 +1,11 @@
+% 附录
+\documentclass[../easybook-demo]{subfiles}
+\begin{document}
+
+\appendix
+\chapter{维基百科}
+
+\section{阿司匹林}
+\zhlipsum[50-52][name = aspirin]
+
+\end{document}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/easybook/pages/appendix.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/easybook/pages/chapter1.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/easybook/pages/chapter1.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/easybook/pages/chapter1.tex	2021-01-03 22:31:14 UTC (rev 57313)
@@ -0,0 +1,125 @@
+% Chapter 1
+\documentclass[../easybook-demo]{subfiles}
+\begin{document}
+
+\chapter{常用环境}
+
+\section{公式}\index{g@公式}
+\lstinline{amsmath} 宏包提供多种公式环境以及许多相关的排版命令,可用以改进和提高数学结构的排版效果。\textsf{注意,公式前不要空行。}
+\begin{equation}\label{eq1}
+  \bm{A} = \left[
+  \begin{matrix}
+    a_{11} & a_{12} & \cdots & a_{1n} \\
+    a_{21} & a_{22} & \cdots & a_{2n} \\
+    \vdots & \vdots & \ddots & \vdots \\
+    a_{m1} & a_{m2} & \cdots & a_{mn} \\
+  \end{matrix}
+  \right] = \left[
+    \begin{matrix}
+      \bm{a}_1 & \bm{a}_2 & \cdots & \bm{a}_n
+    \end{matrix}
+  \right]
+\end{equation}
+可以通过添加标签在正文中引用公式,如带有中文括号的引用\cref{eq1}。
+
+\lstinline{align} 环境用于\textsf{两个及以上}需要垂直对齐的公式,一般的像等于号之类的二元算符是被对齐的。变体的块环境 \lstinline{aligned} 使得内容的长度就是它的\textsf{实际长度},可以用作包含表达式的组件。\lstinline{split} 环境是针对\textsf{单个长公式},使用\& 标记对齐点。\lstinline{split} 环境不提供编号,只能在其他行间公式结构中使用。
+\begin{equation}
+  \begin{split}
+    \iint_{A}E\rho(\bm{v}\cdot\bm{n})\mathrm{d}A+\frac{\partial}{\partial t}\iiint_{V}E\rho \mathrm{d}V & = \frac{\delta Q}{\mathrm{d}t}-\frac{\delta W}{\mathrm{d}t}
+    \\
+    \iint_{A}\left(U+\frac{v^{2}}{2}+gz+\frac{P}{\rho}\right)\rho(\bm{v}\cdot\bm{n})\mathrm{d}A+\frac{\partial}{\partial t}\iiint_{V}E\rho\mathrm{d}V & = \frac{\delta Q}{\mathrm{d}t}-\frac{\delta W_{s}}{\mathrm{d}t}
+  \end{split}
+\end{equation}
+
+调用 \lstinline{cases} 括号宏包提供的左花括号 \lstinline{subnumcases} 环境,可将花括号右侧的每行公式都给出一个子序号。
+\begin{subnumcases}{y =}
+  C_1e^{r_1x}+C_2e^{r_2x} & \quad $p^2-4q > 0$
+  \\
+  \left(C_1+C_2\right)e^{r_1x} & \quad $p^2-4q=0$
+  \\
+  e^{\alpha x}\left(C_1\cos\beta x+C_2\sin\beta x\right) & \quad $p^2-4q<0$
+\end{subnumcases}
+
+\lstinline{multline} 环境适用于一行无法放下的公式。\lstinline{multline} 的第一行在最左边,最后一行在最右边,除了在两边有缩进量,中间的任何其他行都会在行间公式宽度内独立居中,例子见\cref{defi1}。
+
+\clearpage
+\section{插图}\index{c@插图}
+当我们需要排列一组子图共享标题的图片时,可以使用依赖于 \lstinline{caption} 宏包的 \lstinline{subcaption} 宏包的功能,效果见\cref{fig1}。
+\begin{figure}[htbp]
+  \centering
+  \subcaptionbox{并排子图1}
+    {\includegraphics[width=0.4\textwidth]{example-image-4x3}}
+  \hspace{1.2em}
+  \subcaptionbox{并排子图2}
+    {\includegraphics[width=0.4\textwidth]{example-image-4x3}}
+  \bicaption[使用subcaption排版子图]{使用subcaption宏包的subcaptionbox命令排版子图}[Use subcaption to typeset subgraphs]{Use the subcaptionbox command of the subcaption package to typeset sub-pictures}\label{fig1}
+\end{figure} 
+
+\section{表格}\index{b@表格}
+合并表格列使用 \lstinline{\multicolumn} 命令,合并行使用 \lstinline{\multirowcell} 命令。当插入的表格内容过长以至于一行放不下的情况可以使用 \lstinline{tabularx} 环境,设置了\textsf{L、C和R}三个列对齐选项,一个例子如\cref{tab1} 所示。
+\begin{table}[htbp]
+  \centering
+  \bicaption{使用tabularx创建内容过长表格}{Use tabularx to create a table with too long content}\label{tab1}\small
+  \begin{tabularx}{0.87\textwidth}{@{}llL@{}}
+    \toprule
+    Aliquam & Integer & Pellentesque tincidunt purus
+    vel magna. \\
+    \midrule
+    viverra & \multirowcell{3}[0ex][l]{metus} & Nulla malesuada porttitor diam. Vestibulum lectus. Proin mauris. Proin eu nunc eu urna hendrerit faucibus. \\
+    semper & & Nullam elementum, urna vel imperdiet sodales, elit ipsum pharetra ligula, ac pretium ante justo a nulla. Curabitur tristique arcu eu metus. \\
+    \multicolumn{2}{c}{\multirowcell{3}{convallis}} & Nunc elementum fermentum wisi. Aenean placerat. Ut imperdiet, enim sed gravida sollicitudin, felis odio placerat quam, ac pulvinar elit purus eget enim. \\
+    \bottomrule
+  \end{tabularx}
+\end{table}
+
+\clearpage
+\section{列表}\index{l@列表}
+\lstinline{enumitem} 宏包为系统自带的列表环境提供了更灵活的标签以及间距的控制。已设置默认格式,若自定义标签可例如
+\begin{lstlisting}[numbers = none]
+\begin{enumerate}[label = \arabic*(a),leftmargin = 1cm,resume]
+\begin{itemize}[label = \textbullet]
+\begin{description}[font = \sffamily\bfseries,style = nextline]
+\end{lstlisting}
+
+\subsection{排序列表}\label{subsec1}\index{l@列表!p@排序列表}
+\begin{enumerate}
+  \item 使用 \lstinline{enumerate} 环境可创建有序列表。
+  \item 第二项
+  \begin{enumerate}
+    \item 第二项中的第一项
+  \end{enumerate}
+\end{enumerate}
+使用 \lstinline{enumerate*} 环境产生行内部列表。可以使用\textsf{A、a、I、i和1}作为可选项为 \lstinline{enumerate*} 与 \lstinline{enumerate} 格式化标签,
+\begin{enumerate*}[(a)]
+  \item 行内第一项
+  \item 行内第二项
+\end{enumerate*}。
+若生成\textbf{Item I、Item II、Item III}格式可以这样
+\begin{lstlisting}[numbers = none]
+\begin{enumerate*}[(a)]
+\begin{enumerate}[\bfseries{Item}I]
+\end{lstlisting}
+
+\subsection{常规列表}\index{l@列表!c@常规列表}
+\begin{itemize}
+  \item 第一项 \\
+  使用 \lstinline{itemize} 环境可创建不计数列表,若换行不缩进。 \par
+  若在列表中分段后则缩进两字符。
+  \item 第二项
+  \begin{itemize}
+    \item \lstinline{itemize*} 为行内常规列表,也提供一个可选参数。
+  \end{itemize}
+\end{itemize}
+用$\star$取代默认的符号
+\begin{lstlisting}[numbers = none]
+\begin{itemize*}[$\star$]
+\begin{itemize}[$\star$]
+\end{lstlisting}
+
+\subsection{主题列表}\index{l@列表!z@主题列表}
+\begin{description}
+  \item[主题一] 使用 \lstinline{description} 环境可创建带有主题词的列表。
+  \item[主题二] 详细内容
+\end{description}
+
+\end{document}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/easybook/pages/chapter1.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/easybook/pages/chapter2.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/easybook/pages/chapter2.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/easybook/pages/chapter2.tex	2021-01-03 22:31:14 UTC (rev 57313)
@@ -0,0 +1,77 @@
+% Chapter 2
+\documentclass[../easybook-demo]{subfiles}
+\begin{document}
+
+\chapter{定理盒子}
+
+\begin{outline}\index{zhaiyao@摘要盒子}
+  \item 这是一个摘要盒子。
+  \item 它的标题是可选参数,默认标题是摘要。
+\end{outline}
+
+\section{定理}\index{d@定理}
+\begin{theorem}[(高斯公式\footnote{选自高等数学公式。})]\label{theo1}\index{d@定理!g@高斯公式}
+设空间闭区域$\Omega$是由分片光滑的闭曲面$\Sigma$围成,若函数$P(x,y,z)$,$Q(x,y,z)$,$R(x,y,z)$在$\Omega$上具有一节连续偏导数,则有
+\begin{align}
+  \iiint_\Omega\left(\frac{\partial P}{\partial x}+\frac{\partial Q}{\partial y}+\frac{\partial R}{\partial x}\right)\mathrm{d}V & =\oiint_\Sigma P\mathrm{d}y\mathrm{d}z+Q\mathrm{d}z\mathrm{d}x+R\mathrm{d}x\mathrm{d}y
+  \\
+  & =\oiint_\Sigma \left(P\cos\alpha+Q\cos\beta+R\cos\gamma\right)\mathrm{d}S
+\end{align}
+这里$\Sigma$是整个边界曲面$\Omega$的外侧,$\cos\alpha,\cos\beta,\cos\gamma$是$\Sigma$在点$(x,y,z)$处的法向量的方向余弦。引用这个公式如\cref{theo1}。
+\end{theorem}
+
+\begin{definition}[(Stokes formula)]\label{defi1}\index{d@定理!s at Stokes formula}
+Let $\Gamma$ be a piecewise smooth directed closed curve, $\Sigma$ is a piecewise smooth directed surface bounded by $\Gamma$, the side of $\Gamma$ and the positive direction of $\Sigma$ According to the right-hand rule, if the function $P(x,y,z)$, $Q(x,y,z)$, $R(x,y,z)$ has a first-order continuous deviation on the curve $\Sigma$ Derivative, then
+\begin{multline}
+  \iint_\Sigma\left(\frac{\partial R}{\partial y}-\frac{\partial Q}{\partial z}\right)\mathrm{d}y\mathrm{d}z+\left(\frac{\partial P}{\partial z}-\frac{\partial R}{\partial x}\right)\mathrm{d}z\mathrm{d}x+\left(\frac{\partial Q}{\partial x}-\frac{\partial P}{\partial y}\right)\mathrm{d}x\mathrm{d}y
+  \\
+  = \oint_\Gamma P\mathrm{d}x+Q\mathrm{d}y+R\mathrm{d}z
+\end{multline}
+The Stokes formula is an extension of the basic calculus formula in the case of surface integration. It is also an extension of the Green formula. This formula gives the second type of surface integral on the surface block and the second type of curve on the boundary curve  Link between points.
+\end{definition}
+
+\clearpage
+\begin{lemma}
+定理环境的边框和习题标题盒子可使用 \lstinline{thmbox = false} 关闭。
+\end{lemma}
+
+\begin{corollary}
+这是一个推论。
+\end{corollary}
+
+\begin{proposition}
+这是一个性质。
+\end{proposition}
+
+\begin{example}
+这是一个例。
+\end{example}
+
+\begin{remark}
+这是一个注。
+\end{remark}
+
+\begin{proof}
+这是一个证明,末尾自动添加证明结束符。
+\end{proof}
+
+\begin{mybox}*[My title]\index{z@自定义盒子}
+环境 \lstinline{mybox} 创建一个段落盒子,可以添加可选参数的标题,否则无标题框。
+\tcblower
+带有星号的环境会生成浅灰背景,否则是纯白背景。
+\end{mybox}
+
+习题环境 \lstinline{exercise} 的标题紧接上一节编号并加入目录与页眉,当使用星号环境时不进行编号。它含有三个可选参数 \lstinline{[<颜色>][<编号>][<标题>]},其中颜色为自定义或 \lstinline{xcolor} 包含的颜色名称(深色),正文编号格式与\cref{subsec1} 相同,标题名默认为摘要,参数只能\textsf{从右往左}省略。
+\begin{exercise}[black][1.][习题]\index{x@习题环境}
+  \item 设$w = f(x+y+z,xyz)$,$f$具有二阶连续偏导数,求$\dfrac{{\partial w}}{{\partial x}}$和$\dfrac{{{\partial ^2}w}}{{\partial x\partial z}}$。
+  \item 已知$y = y(x)$在任意点$x$处的增量$\Delta y = \dfrac{y\Delta x}{1+x^2}+\alpha$,其中$\alpha$是$\Delta x$的高阶无穷小($\Delta x\to 0$时),$y(0) = \pi$,则$y(1) = \uline{\mbox{\hspace{2em}}}$。
+  \item 设函数$f(x)$在$(-\infty,+\infty)$上有定义,则下述命题中正确的是 \mbox{(\hspace{1.5em})}
+    \begin{tasks}
+      \task 若$f(x)$在$(-\infty,+\infty)$上可导且单调增加,则对一切$x\in (-\infty,+\infty)$,都有$f'(x) > 0$。
+      \task 若$f(x)$在点$x_0$处取得极值,则$f'(x_0) = 0$。
+      \task 若$f''(x_0) = 0$,则$(x_0,f(x_0))$是曲线$y = f(x)$的拐点坐标。
+      \task 若$f'(x_0) = 0$, $f''(x_0) = 0$,$f'''(x_0)\ne 0$,则$x_0$一定不是$f(x)$的极值点。
+    \end{tasks}
+\end{exercise}
+
+\end{document}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/easybook/pages/chapter2.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/easybook/pages/chapter3.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/easybook/pages/chapter3.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/easybook/pages/chapter3.tex	2021-01-03 22:31:14 UTC (rev 57313)
@@ -0,0 +1,52 @@
+% Chapter 3
+\documentclass[../easybook-demo]{subfiles}
+\begin{document}
+
+\chapter{其它格式}\label{chap1}
+
+\section{代码}\index{d@代码}
+使用 \lstinline{listings} 宏包可以对代码格式进行高度定制,默认语言为 \lstinline{LaTeX},这里以 \lstinline{Python} 为例
+\begin{lstlisting}[language = Python,caption = {python程序练习题}]
+#!/usr/bin/python
+# -*- coding: UTF-8 -*-
+    
+if __name__ == '__main__':
+    ptr = []
+    for i in range(5):
+        num = int(raw_input('please input a number:\n'))
+        ptr.append(num)
+    print ptr    
+\end{lstlisting}
+
+\section{物理量}\index{w@物理量}
+\lstinline{siunitx} 宏包的 \lstinline{\num} 命令可以输出科学计数法 \num{-21x.3e5},而 \lstinline{\SI} 命令可用来输出带有单位的量,比如 \SI{.5}{mol}。
+
+\section{化学式}\index{h@化学式}
+除了以普通公式的方式,化学式还可用 \lstinline{chemformula} 实现,无机化学式例如\ch{(NH4)2S}、\ch{[Cu(NH3)4]^2+}。
+\[\ch{$x$ Na(NH4)HPO4 ->[$\Delta$] (NaPO3)_{$x$} + $x$ NH3 ^ + $x$ H2O}\]
+有机化学式推荐使用 \lstinline{chemfig} 完成。
+\[\zihao{-5}\chemfig[cram width=5pt]{*6((-HO)-=-(-(<[::60]OH)-[::-60]-[::-60,,,2]
+HN-[::+60]CH_3)=-(-HO)=)}\]
+
+\clearpage
+\section{引用}\index{y@引用}
+使用 \lstinline{cleveref} 宏包的 \lstinline{\cref} 命令进行引用,将会自动检测环境并添加相应的前缀。
+\subsection{索引}\index{y@引用!s@索引}
+使用 \lstinline{imakeidx} 生成索引,仅做了简单的设置如将索引设为双栏并加入目录,其他选项可另外配置。
+
+\subsection{脚注}\index{y@引用!j@脚注}
+脚注应在注释与正文之间加细线分隔,使用 \lstinline{footmisc} 宏包设置,选项为悬挂缩进(\lstinline{hang})形式\footnote{这是一个悬挂缩进的脚注。\par 这是分段将会缩进两字符。}。这是自定义标记的脚注且不影响正常编号\Footnote{*}{这是可以自定义标记的脚注。}。
+
+\subsection{边注}\index{y@引用!b@边注}
+命令 \lstinline{\marginnote} 可以生成简单的边注\marginnote{这是一个边注。}。
+
+\subsection{引用章节}\label{sec1}\index{y@引用!s@索引}
+如引用\cref{chap1}、\cref{sec1}。
+
+\subsection{参考文献}\index{y@引用!c@参考文献}
+这是一个参考文献引用的范例\cite{1979Prospect}。引用多个文献,将引用标号中的多个文献序号按升序排列,若其中有2个以上的连续序号,则改用范围序号,例如\cite{1979Prospect,1989The,2010An}。
+
+\section{行内盒子}\index{h@行内盒子}
+设置了两个行内盒子,这个盒子 \concise[Aqua][fontupper = \rmfamily]{concise} 可以为抄录盒子有三个参数 \lstinline{[<颜色>][<配置>][<内容>]},行内盒子内容是必选参数其他可选。设置等宽字体可在配置参数中 \lstinline{fontupper = \ttfamily}。这个盒子 \fuzzy[yellow][fontupper = \ttfamily,colupper = black]{fuzzy} 的参数选项与上个盒子相同,具有模糊边缘类似高亮的效果。
+
+\end{document}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/easybook/pages/chapter3.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/easybook/pages/preface.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/easybook/pages/preface.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/easybook/pages/preface.tex	2021-01-03 22:31:14 UTC (rev 57313)
@@ -0,0 +1,21 @@
+% Preface
+\documentclass[../easybook-demo]{subfiles}
+\begin{document}
+
+\chapter*{前言}
+
+\lstinline{easybook} 使用\LaTeX 3语法将选项扩展入\CTeX 宏集接口命令 \lstinline{\ctexset} 的列表。如果无法编译以及选项说明细节参见~\href{./doc/easybook.pdf}{easybook使用帮助}。
+
+\begin{enumerate}[label=\color{DarkBlue}\protect\circled{\arabic*}]
+\item 优化页眉页脚,单面或双面排版适配了不同风格。
+\item 增加章前摘要、定理和段落、行内盒子,增加习题环境。
+\item 更改草稿选项,与标准文类行为一致并显示页面边框。
+\item 增加超链接颜色风格及目录链接格式,调整配色,删除文章模式。
+\item 使用功能更丰富的 \lstinline{thmtools} 设置定理环境。
+\item 可自定义正文、表格、公式环境、图表标题以及脚注的行距。
+\item 图表可以使用双语标题,增加代码索引和索引目录,脚注标记可以设置为自定义的符号。
+\end{enumerate}
+
+\vfill{\small\doclicenseThis}
+
+\end{document}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/easybook/pages/preface.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/easybook/ref/refs.bib
===================================================================
--- trunk/Master/texmf-dist/doc/latex/easybook/ref/refs.bib	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/easybook/ref/refs.bib	2021-01-03 22:31:14 UTC (rev 57313)
@@ -0,0 +1,31 @@
+% Encoding: UTF-8
+
+ at article{1979Prospect,
+  title={Prospect Theory: An Analysis of Decision under Risk},
+  author={ Tversky, Kahneman Amos },
+  journal={Econometrica},
+  volume={47},
+  number={2},
+  pages={263-291},
+  year={1979},
+}
+
+ at article{2010An,
+  title={An Introduction to Sociolinguistics},
+  author={ Grabe, William  and  Wardhaugh, Ronald },
+  journal={Language in Society},
+  volume={36},
+  number={2},
+  pages={605-605},
+  year={2010},
+}
+
+ at article{1989The,
+  title={The structural transformation of the public sphere: an inquiry into a cstergory of burgeois society},
+  author={ Scaff, Lawrence A.  and  Habermas, Jurgen  and  Burger, Thomas  and  Nicholson, Shierry Weber },
+  journal={American Political Science Review},
+  volume={84},
+  number={3},
+  pages={967},
+  year={1989},
+}
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/doc/latex/easybook/ref/refs.bib
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/easybook/easybook.cls
===================================================================
--- trunk/Master/texmf-dist/tex/latex/easybook/easybook.cls	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/easybook/easybook.cls	2021-01-03 22:31:14 UTC (rev 57313)
@@ -0,0 +1,1176 @@
+%%
+%% This is file `easybook.cls',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% easybook.dtx  (with options: `class')
+%% Copyright (C) 2021 by Qu Yi <texeasybook at foxmail.com>
+%% This work may be distributed and/or modified under the
+%% conditions of the CC-BY-NC 4.0 License.
+%% Gitee: https://gitee.com/TeX-doc/easybook
+%% Github: https://github.com/TeX-doc/easybook
+\NeedsTeXFormat{LaTeX2e}
+\RequirePackage{l3keys2e}
+\ProvidesExplClass{easybook}{2021/01/03}{v1.0}{}
+
+\cs_generate_variant:Nn \keys_define:nn {nx}
+\cs_generate_variant:Nn \int_to_arabic:n {v}
+\cs_new_protected:Npn \__appto_cmd:Nn #1#2
+  {\ctex_appto_cmd:NnnTF #1{}{#2}{}{\ctex_patch_failure:N #1}}
+
+\bool_set_false:N \l__draft_bool
+\bool_set_false:N \l__newline_bool
+\bool_set_false:N \l__enstyle_bool
+\bool_set_true:N  \l__zhtitle_bool
+\bool_set_true:N  \l__myfont_bool
+\bool_set_true:N  \l__lang_chinese_bool
+\bool_set_false:N \l__paper_bfive_bool
+\bool_set_true:N  \l__paper_afour_bool
+\bool_set_true:N  \l__page_twoside_bool
+\bool_new:N       \l__thmbox_bool
+\bool_new:N       \l__capdash_bool
+\bool_new:N       \l__multoc_bool
+\bool_new:N       \l__chap_withpart_bool
+\bool_new:N       \l__foot_perpart_bool
+\clist_new:N      \g__hyperref_clist
+\clist_new:N      \g__options_clist
+
+\keys_define:nn {easybook}
+  {
+    draft         .code:n = {\bool_set_true:N  \l__draft_bool},
+    newline       .code:n = {\bool_set_true:N  \l__newline_bool},
+    enstyle       .code:n = {\bool_set_true:N  \l__enstyle_bool},
+    entitle       .code:n = {\bool_set_false:N \l__zhtitle_bool},
+    english       .code:n = {\bool_set_false:N \l__lang_chinese_bool},
+
+    font          .choice:,
+    font/adobe    .code:n =
+      {
+        \PassOptionsToClass{fontset = #1}{ctexbook}
+        \bool_set_false:N \l__myfont_bool
+      },
+    font/founder  .code:n =
+      {
+        \PassOptionsToClass{fontset = #1}{ctexbook}
+        \bool_set_false:N \l__myfont_bool
+      },
+    font/mac      .code:n =
+      {
+        \PassOptionsToClass{fontset = #1}{ctexbook}
+        \bool_set_false:N \l__myfont_bool
+      },
+    font/windows  .code:n =
+      {
+        \PassOptionsToClass{fontset = #1}{ctexbook}
+        \bool_set_false:N \l__myfont_bool
+      },
+    font/linux    .code:n =
+      {
+        \PassOptionsToClass{fontset = ubuntu}{ctexbook}
+        \bool_set_false:N \l__myfont_bool
+      },
+    font/overleaf .code:n =
+      {\bool_set_false:N \l__myfont_bool},
+    font/none     .code:n =
+      {
+        \PassOptionsToClass{fontset = #1}{ctexbook}
+        \bool_set_false:N \l__myfont_bool
+      }, 
+    font          .default:n = windows,
+
+    paper         .choice:,
+    paper/a4      .code:n = {},
+    paper/b5      .code:n = {\bool_set_true:N \l__paper_bfive_bool},
+    paper         .initial:n = a4,
+
+    oneside       .value_forbidden:n = true,
+    twoside       .value_forbidden:n = true,
+    oneside       .code:n =
+      {\bool_set_false:N \l__page_twoside_bool},
+
+    unknown       .code:n =
+      {\clist_gput_right:No \g__options_clist{\CurrentOption}}
+  }
+
+\ProcessKeysOptions{easybook}
+
+\bool_if:NT \l__myfont_bool{\PassOptionsToClass{fontset = none}{ctexbook}}
+\bool_if:NT \l__enstyle_bool
+  {
+    \bool_set_false:N \l__lang_chinese_bool
+    \bool_set_false:N \l__zhtitle_bool
+    \bool_set_true:N  \l__newline_bool
+  }
+\bool_if:NTF \l__lang_chinese_bool
+  {\PassOptionsToClass{scheme = chinese}{ctexbook}}
+  {\PassOptionsToClass{scheme = plain}{ctexbook}}
+
+\PassOptionsToClass{\g__options_clist}{ctexbook}
+\PassOptionsToPackage{CJKmath = true}{xeCJK}
+\LoadClass[UTF8]{ctexbook}
+
+\tl_new:N \g__keys_color_tl
+\tl_new:N \g__keys_cite_tl
+\fp_new:N \g__line_spread_fp
+\fp_new:N \g__tab_spread_fp
+\tl_new:N \g__math_spread_tl
+\tl_new:N \g__cap_spread_tl
+\tl_new:N \g__foot_spread_tl
+
+\ctex_define:n
+  {
+    style               .meta:nn = {ctex/style}{#1},
+    link                .meta:nn = {ctex/link}{#1},
+    spread              .meta:nn = {ctex/spread}{#1},
+    style/color         .choices:nn =
+      {black,navygreen,navyblue}
+      {\tl_set_eq:NN \g__keys_color_tl\l_keys_choice_tl},
+    style/color         .initial:n = black,
+    style/cite          .choices:nn =
+      {number,authoryear}
+      {\tl_set_eq:NN \g__keys_cite_tl\l_keys_choice_tl},
+    style/cite          .initial:n = number,
+
+    style/thmbox        .bool_set:N = \l__thmbox_bool,
+    style/thmbox        .default:n = true,
+    style/thmbox        .initial:n = false,
+    style/capdash       .bool_set:N = \l__capdash_bool,
+    style/capdash       .default:n = true,
+    style/capdash       .initial:n = false,
+    style/multoc        .bool_set:N = \l__multoc_bool,
+    style/multoc        .default:n = true,
+    style/multoc        .initial:n = false,
+    style/withpart      .bool_set:N = \l__chap_withpart_bool,
+    style/withpart      .default:n = true,
+    style/withpart      .initial:n = false,
+    style/perpart       .bool_set:N = \l__foot_perpart_bool,
+    style/perpart       .default:n = true,
+    style/perpart       .initial:n = false,
+    style/perpage       .bool_set:N = \l__foot_perpage_bool,
+    style/perpage       .default:n = true,
+    style/perpage       .initial:n = false,
+
+    spread/linespread   .fp_set:N = \g__line_spread_fp,
+    spread/linespread   .initial:n = 1.3,
+    spread/tabspread    .fp_set:N = \g__tab_spread_fp,
+    spread/tabspread    .initial:n = 1,
+    spread/mathspread   .tl_set:N = \g__math_spread_tl,
+    spread/mathspread   .initial:n = 1,
+    spread/capspread    .tl_set:N = \g__cap_spread_tl,
+    spread/capspread    .initial:n = 1,
+    spread/fnspread     .tl_set:N = \g__foot_spread_tl,
+    spread/fnspread     .initial:n = 1,
+
+    lstlistlistingname  .tl_set:N = \lstlistlistingname,
+    lstlistingname      .tl_set:N = \lstlistingname
+  }
+
+\RequirePackage[svgnames]{xcolor}
+\cs_new_protected:Nn \__load_color_black:
+  {\definecolorset{HTML}{ctex@}{}{frame,000000;emph,000000;verb,000000}}
+\cs_new_protected:Nn \__load_color_navygreen:
+  {\definecolorset{HTML}{ctex@}{}{frame,005752;emph,004986;verb,a40000}}
+\cs_new_protected:Nn \__load_color_navyblue:
+  {\definecolorset{HTML}{ctex@}{}{frame,005982;emph,eb6877;verb,a4005b}}
+\cs_new_protected:Nn \__load_color:
+  {\use:c {__load_color_ \g__keys_color_tl :}}
+\ctex_at_end_preamble:n {\__load_color:}
+
+\RequirePackage{pdfpages,subfiles}
+\includepdfset{fitpaper = true}
+\RequirePackage[hang,stable]{footmisc}
+\RequirePackage{setspace,zhlineskip}
+\RequirePackage{amsthm,thmtools,cases}
+\RequirePackage[noto,upint]{newtxmath}
+\RequirePackage{chemformula}
+\RequirePackage{chemfig}
+\RequirePackage{siunitx,physics,bm}
+\RequirePackage[normalem]{ulem}
+\RequirePackage[protrusion = false]{microtype}
+\RequirePackage{hologo}
+\hologoSetup{discretionarybreak = true}
+\RequirePackage{rotfloat}
+\RequirePackage{geometry,marginnote,nccfoots,tablefootnote}
+\RequirePackage{fancyhdr,titletoc}
+\RequirePackage{caption,bicaption,subcaption}
+\RequirePackage{graphicx,wrapfig}
+\RequirePackage{zhlipsum,fontawesome,pifont}
+\RequirePackage{tabularx,multirow,makecell,tabu,booktabs}
+\RequirePackage{paralist,tasks}
+\RequirePackage[shortlabels,inline]{enumitem}
+\RequirePackage[most]{tcolorbox}
+\RequirePackage[sort&compress]{gbt7714}
+\RequirePackage[xindy]{imakeidx}
+
+\sys_if_engine_xetex:TF
+  {
+    \cs_new_eq:NN \__set_family:nnn  \xeCJK_set_family:nnn
+    \cs_new_eq:NN \__switch_family:n \xeCJK_switch_family:n
+  }{
+    \cs_new_eq:NN \__set_family:nnn  \ctex_ltj_set_family:nnn
+    \cs_new_eq:NN \__switch_family:n \ctex_ltj_switch_family:n
+  }
+
+\cs_new_protected:Npn \__setmainfont:nn #1#2
+  {\__fontspec_main_setmainfont:nn {#2}{#1}}
+\cs_new_protected:Npn \__setsansfont:nn #1#2
+  {\__fontspec_main_setsansfont:nn {#2}{#1}}
+\cs_new_protected:Npn \__setmonofont:nn #1#2
+  {\__fontspec_main_setmonofont:nn {#2}{#1}}
+\cs_new_protected:Npn \__setCJKmainfont:nn #1#2
+  {\__set_family:nnn {\CJKrmdefault}{#2}{#1}}
+\cs_new_protected:Npn \__setCJKsansfont:nn #1#2
+  {\__set_family:nnn {\CJKsfdefault}{#2}{#1}}
+\cs_new_protected:Npn \__setCJKmonofont:nn #1#2
+  {\__set_family:nnn {\CJKttdefault}{#2}{#1}}
+\cs_new_protected:Npn \__set_zhfont_songti:nn #1#2
+  {\__set_family:nnn {songti}{#2}{#1}}
+\cs_new_protected:Npn \__set_zhfont_heiti:nn #1#2
+  {\__set_family:nnn {heiti}{#2}{#1}}
+\cs_new_protected:Npn \__set_zhfont_kaishu:nn #1#2
+  {\__set_family:nnn {kaishu}{#2}{#1}}
+\cs_new_protected:Npn \__set_zhfont_fangsong:nn #1#2
+  {\__set_family:nnn {fangsong}{#2}{#1}}
+
+\tl_const:Nn \__option_zhfont:
+  {UprightFont = *,AutoFakeBold = 1.5,ItalicFont = *}
+\cs_new_protected:Npx \__setCJKmainfont:n #1
+  {\__setCJKmainfont:nn {#1}{\__option_zhfont:}}
+\cs_new_protected:Npx \__setCJKsansfont:n #1
+  {\__setCJKsansfont:nn {#1}{\__option_zhfont:}}
+\cs_new_protected:Npx \__setCJKmonofont:n #1
+  {\__setCJKmonofont:nn {#1}{\__option_zhfont:}}
+\cs_new_protected:Npx \__set_zhfont_songti:n #1
+  {\__set_zhfont_songti:nn {#1}{\__option_zhfont:}}
+\cs_new_protected:Npx \__set_zhfont_heiti:n #1
+  {\__set_zhfont_heiti:nn {#1}{\__option_zhfont:}}
+\cs_new_protected:Npx \__set_zhfont_kaishu:n #1
+  {\__set_zhfont_kaishu:nn {#1}{\__option_zhfont:}}
+\cs_new_protected:Npx \__set_zhfont_fangsong:n #1
+  {\__set_zhfont_fangsong:nn {#1}{\__option_zhfont:}}
+  
+\bool_if:NT \l__myfont_bool
+  {
+    \__setmainfont:nn {NotoSerif}
+      {
+        Extension = .ttf,
+        UprightFont = *-Regular,
+        BoldFont = *-Bold,
+        ItalicFont = *-Italic
+      }
+    \__setsansfont:nn {NotoSans}
+      {
+        Extension = .ttf,
+        UprightFont = *-Regular,
+        BoldFont = *-Bold,
+        ItalicFont = *-Italic
+      }
+    \__setmonofont:nn {NotoSansMono}
+      {
+        Extension = .ttf,
+        UprightFont = *-Regular,
+        BoldFont = *-Bold
+      }
+    \__setCJKmainfont:nn {FZShuSong-Z01S}
+      {
+        UprightFont = *,
+        BoldFont = FZHei-B01S,
+        ItalicFont = FZKai-Z03S
+      }
+    \__setCJKsansfont:n {FZHei-B01S}
+    \__setCJKmonofont:n {FZFangSong-Z02S}
+    \__set_zhfont_songti:n {FZShuSong-Z01S}
+    \__set_zhfont_heiti:n {FZHei-B01S}
+    \__set_zhfont_kaishu:n {FZKai-Z03S}
+    \__set_zhfont_fangsong:n {FZFangSong-Z02S}
+    \cs_new_protected:Npn \songti{\__switch_family:n {songti}}
+    \cs_new_protected:Npn \heiti{\__switch_family:n {heiti}}
+    \cs_new_protected:Npn \kaishu{\__switch_family:n {kaishu}}
+    \cs_new_protected:Npn \fangsong{\__switch_family:n {fangsong}}
+  }
+\cs_if_exist:NF \kaishu{\cs_gset_eq:NN \kaishu\normalfont}
+
+\bool_if:NT \l__paper_afour_bool
+  {
+    \geometry
+      {
+        a4paper,
+        columnsep = 2\ccwd,
+        vmargin = 2.54cm,
+        hmargin = 3.17cm,
+        headheight = 2.04cm,
+        headsep = 0.5cm,
+        footskip = 0.79cm,
+        footnotesep = 0.5cm,
+        marginparsep = 8pt,
+        marginparwidth = 2.54cm
+      }
+  }
+\bool_if:NT \l__paper_bfive_bool
+  {
+    \geometry
+      {
+        b5paper,
+        columnsep = 2\ccwd,
+        margin = 2.54cm,
+        headheight = 2.09cm,
+        headsep = 0.45cm,
+        footskip = 0.7cm,
+        footnotesep = 0.45cm,
+        marginparsep = 0.25cm,
+        marginparwidth = 2.25cm
+      }
+  }
+
+\cs_gset:Npn \cleardoublepage
+  {
+    \clearpage
+    \bool_if:NT \l__page_twoside_bool
+      {
+        \int_if_odd:nF \c at page
+          {\hbox:n {}\thispagestyle{empty}\clearpage}
+      }
+  }
+\cs_gset:Npn \frontmatter
+  {
+    \cleardoublepage
+    \@mainmatterfalse
+    \pagenumbering{Roman}
+  }
+\pagestyle{fancy}
+\fancyhf{}
+\bool_if:NTF \l__page_twoside_bool
+  {
+    \cs_gset:Npn \chaptermark#1
+      {
+        \markboth
+          {
+            \MakeUppercase
+              {
+                \ifnum\c at secnumdepth>\m at ne
+                  \if at mainmatter
+                    \ifodd\CTEX at chapter@numbering
+                      \CTEXthechapter\hspace{\ccwd}
+                    \fi
+                  \fi
+                \fi#1
+              }
+          }{
+            \MakeUppercase
+              {
+                \ifnum\c at secnumdepth>\m at ne
+                  \if at mainmatter
+                    \ifodd\CTEX at chapter@numbering
+                      \CTEXthechapter\hspace{\ccwd}
+                    \fi
+                  \fi
+                \fi#1
+              }
+          }
+      }
+    \fancyhead[EC]{\color{ctex at frame}\kaishu\leftmark}
+    \fancyhead[OC]{\color{ctex at frame}\kaishu\rightmark}
+    \fancyhead[EL,OR]{\color{ctex at frame}\thepage}
+    \cs_gset_eq:NN \ps at plain\ps at empty
+  }{
+    \cs_gset:Npn \chaptermark#1
+      {
+        \markboth
+          {
+            \MakeUppercase
+              {
+                \ifnum\c at secnumdepth>\m at ne
+                  \if at mainmatter
+                    \ifodd\CTEX at chapter@numbering
+                      \CTEXthechapter\hspace{\ccwd}
+                    \fi
+                  \fi
+                \fi#1
+              }
+          }{}
+      }
+    \fancyhead[L]{\color{ctex at frame}\kaishu\leftmark}
+    \fancyhead[R]{\color{ctex at frame}\kaishu\rightmark}
+    \fancyfoot[C]{\color{ctex at frame}\thepage}
+    \fancypagestyle{plain}
+      {
+        \fancyhf{}\cs_gset:Npn\headrule{}
+        \fancyfoot[C]{\color{ctex at frame}\thepage}
+      }
+  }
+\cs_gset:Npn \sectionmark#1
+  {
+    \markright
+      {
+        \ifnum\c at secnumdepth>\z@
+          \ifodd\CTEX at section@numbering
+            \CTEXthesection\hspace{0.5\ccwd}
+          \fi
+        \fi#1
+      }
+  }
+\cs_gset:Npn \headrule
+  {
+    \color{ctex at frame}\vspace{2.5pt}
+    \hrule width\textwidth height 0.75pt
+  }
+\bool_if:NT \l__draft_bool
+  {
+    \bool_if:NTF \l__page_twoside_bool
+      {\fancyfoot[C]{\color{gray!60}\sffamily\today}}
+      {\fancyhead[C]{\color{gray!60}\sffamily\today}}
+    \geometry{showframe}
+  }
+
+\titlecontents{part}
+  [0\ccwd]
+  {\addvspace{1pc}\sffamily\large}
+  {}
+  {}
+  {\normalsize\titlerule*{}\bf\contentspage}
+\titlecontents{chapter}
+  [0\ccwd]
+  {\addvspace{1pc}\sffamily\large}
+  {\thecontentslabel\hspace{\ccwd}}
+  {}
+  {\normalsize\titlerule*[0.55pc]{\scalebox{1.2}{$\cdot$}}\bf\contentspage}
+\titlecontents{section}
+  [1.5\ccwd]
+  {\addvspace{0.35pc}}
+  {\thecontentslabel\hspace{\ccwd}}
+  {}
+  {\titlerule*[0.55pc]{\scalebox{1.2}{$\cdot$}}\contentspage}
+\titlecontents{subsection}
+  [3.8\ccwd]
+  {\addvspace{0.35pc}}
+  {\thecontentslabel\hspace{\ccwd}}
+  {}
+  {\titlerule*[0.55pc]{\scalebox{1.2}{$\cdot$}}\contentspage}
+\titlecontents{figure}
+  [0\ccwd]
+  {\addvspace{0.2pc}}
+  {\thecontentslabel\hspace{\ccwd}}
+  {}
+  {\titlerule*[0.55pc]{\scalebox{1.2}{$\cdot$}}\contentspage}
+\titlecontents{table}
+  [0\ccwd]
+  {\addvspace{0.2pc}}
+  {\thecontentslabel\hspace{\ccwd}}
+  {}
+  {\titlerule*[0.55pc]{\scalebox{1.2}{$\cdot$}}\contentspage}
+\contentsuse{lstlisting}{lol}
+\titlecontents{lstlisting}
+  [0\ccwd]
+  {\addvspace{0.2pc}}
+  {\thecontentslabel\hspace{\ccwd}}
+  {}
+  {\titlerule*[0.55pc]{\scalebox{1.2}{$\cdot$}}\contentspage}
+
+\cs_gset:Npn \tableofcontents
+  {
+    \if at twocolumn
+      \@restonecoltrue\onecolumn
+      \bool_if:NT \l__multoc_bool{\twocolumn}
+    \else
+      \@restonecolfalse
+      \bool_if:NT \l__multoc_bool{\twocolumn}
+    \fi
+    \chapter*{\contentsname}
+    \bool_if:NTF \l__page_twoside_bool
+      {\markboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}
+      {\markboth{\MakeUppercase\contentsname}{}}
+    \vspace*{-1pc}
+    \@starttoc{toc}
+    \if at restonecol
+      \twocolumn
+    \else
+      \onecolumn
+    \fi
+  }
+\cs_gset:Npn \listoffigures
+  {
+    \if at twocolumn
+      \@restonecoltrue\onecolumn
+      \bool_if:NT \l__multoc_bool{\twocolumn}
+    \else
+      \@restonecolfalse
+      \bool_if:NT \l__multoc_bool{\twocolumn}
+    \fi
+    \chapter*{\phantomsection\listfigurename}
+    \addcontentsline{toc}{chapter}{\listfigurename}
+    \bool_if:NTF \l__page_twoside_bool
+      {\markboth{\MakeUppercase\listfigurename}{\MakeUppercase\listfigurename}}
+      {\markboth{\MakeUppercase\listfigurename}{}}
+    \vspace*{-1pc}
+    \@starttoc{lof}
+    \if at restonecol
+      \twocolumn
+    \else
+      \onecolumn
+    \fi
+  }
+\cs_gset:Npn \listoftables
+  {
+    \if at twocolumn
+      \@restonecoltrue\onecolumn
+      \bool_if:NT \l__multoc_bool{\twocolumn}
+    \else
+      \@restonecolfalse
+      \bool_if:NT \l__multoc_bool{\twocolumn}
+    \fi
+    \chapter*{\phantomsection\listtablename}
+    \addcontentsline{toc}{chapter}{\listtablename}
+    \bool_if:NTF \l__page_twoside_bool
+      {\markboth{\MakeUppercase\listtablename}{\MakeUppercase\listtablename}}
+      {\markboth{\MakeUppercase\listtablename}{}}
+    \vspace*{-1pc}
+    \@starttoc{lot}
+    \if at restonecol
+      \twocolumn
+    \else
+      \onecolumn
+    \fi
+  }
+\cs_new:Npn \listoflistings
+  {
+    \begingroup
+    \@ifundefined{@restonecoltrue}{}
+      {
+        \if at twocolumn
+          \@restonecoltrue\onecolumn
+          \bool_if:NT \l__multoc_bool{\twocolumn}
+        \else
+          \@restonecolfalse
+          \bool_if:NT \l__multoc_bool{\twocolumn}
+        \fi
+      }
+    \chapter*{\phantomsection\lstlistlistingname}
+    \addcontentsline{toc}{chapter}{\lstlistlistingname}
+    \bool_if:NTF \l__page_twoside_bool
+      {\markboth{\MakeUppercase\lstlistlistingname}{\MakeUppercase\lstlistlistingname}}
+      {\markboth{\MakeUppercase\lstlistlistingname}{}}
+    \vspace*{-0.2pc}
+    \@starttoc{lol}
+    \@ifundefined{@restonecoltrue}{}
+      {
+        \if at restonecol
+          \twocolumn
+        \else
+          \onecolumn
+        \fi
+      }
+    \endgroup
+  }
+
+\cs_gset:Npn \bibsection{\chapter{\bibname}}
+\skip_set:Nn \bibsep{0ex}
+\cs_new_protected:Npn \__load_cite_number:
+  {
+    \setcitestyle{square,comma,super}
+    \bibliographystyle{gbt7714-numerical}
+  }
+\cs_new_protected:Nn \__load_cite_authoryear:
+  {\bibliographystyle{gbt7714-author-year}}
+\cs_new_protected:Nn \__load_cite:
+  {\use:c {__load_cite_ \g__keys_cite_tl :}}
+\ctex_at_end_preamble:n {\__load_cite:}
+\makeindex[
+  intoc,
+  options = -M~texindy~-C~utf8,
+  program = truexindy,
+  columns = 2,
+  columnsep = 2\ccwd
+  ]
+\indexsetup
+  {
+    level = \chapter*,
+    toclevel = chapter,
+    firstpagestyle = plain
+  }
+\patchcmd\imki at indexheaders
+  {\@mkboth{\MakeUppercase\indexname}{\MakeUppercase\indexname}}
+  {
+    \bool_if:NTF \l__page_twoside_bool
+      {\markboth{\MakeUppercase\indexname}{\MakeUppercase\indexname}}
+      {\markboth{\MakeUppercase\indexname}{}}
+  }
+  {}{}
+
+\DeclareCaptionLabelSeparator{ccwd}{\hspace{\ccwd}}
+\DeclareCaptionLabelFormat{parens}{\bothIfFirst{#1}{~}(#2)}
+\captionsetup
+  {
+    format = hang,
+    % figurewithin = section,
+    % tablewithin = section,
+    labelfont = {sf,small,color = ctex at frame},
+    labelsep = ccwd,
+    textfont = {sf,small,stretch = \g__cap_spread_tl},
+    belowskip = 0pt,aboveskip = 10pt
+  }
+\captionsetup[subfigure]
+  {
+    labelfont = {sf,small,color = ctex at frame},
+    labelformat = parens,
+    belowskip = 2pt,aboveskip = 6pt
+  }
+\captionsetup[lstlisting]{singlelinecheck = false}
+\captionsetup[figure][bi-second]{name = Figure}
+\captionsetup[table][bi-second]{name = Table}
+\cs_new:Npn \__arabic:n #1{\int_to_arabic:v {c@#1}}
+\AtBeginDocument
+  {
+    \bool_if:NT \l__capdash_bool
+      {
+        \cs_gset:Npn \thefigure{\thechapter\textendash\__arabic:n {figure}}
+        \cs_gset:Npn \thetable{\thechapter\textendash\__arabic:n {table}}
+        \cs_gset:Npn \thelstlisting{\thechapter\textendash\__arabic:n {lstlisting}}
+      }
+  }
+\AtBeginEnvironment{tabularx}
+  {\exp_args:Nx \linespread{\fp_use:N \g__tab_spread_fp}\selectfont\ignorespaces}
+\AtBeginEnvironment{tabular}
+  {\exp_args:Nx \linespread{\fp_use:N \g__tab_spread_fp}\selectfont\ignorespaces}
+
+\skip_set:Nn \parskip{0pt plus 2pt minus 1pt}
+\skip_set:Nn \floatsep{12pt plus 2pt minus 2pt}
+\skip_set:Nn \intextsep{14pt plus 2pt minus 2pt}
+\skip_set:Nn \textfloatsep{16pt plus 2pt minus 4pt}
+\skip_set:Nn \dbltextfloatsep{16pt plus 2pt minus 4pt}
+\skip_set:Nn \@fpsep{8pt plus 2.0fil}
+\setcounter{topnumber}{4}
+\setcounter{bottomnumber}{4}
+\setcounter{totalnumber}{8}
+\cs_gset:Npn \textfraction{0.18}
+\cs_gset:Npn \topfraction{0.85}
+\cs_gset:Npn \bottomfraction{0.65}
+\cs_gset:Npn \floatpagefraction{0.60}
+\ctex_after_end_preamble:n
+  {\exp_args:Nx \linespread{\fp_use:N \g__line_spread_fp}\selectfont}
+
+\newcolumntype{L}{X}
+\newcolumntype{C}{>{\centering\arraybackslash}X}
+\newcolumntype{R}{>{\raggedleft\arraybackslash}X}
+\graphicspath{{figures/}}
+\DeclareGraphicsExtensions{.pdf,.png,.jpg,.eps,.tif}
+
+\setlist
+  {
+    labelsep = .75\ccwd,listparindent = 2\ccwd,
+    itemsep = .75ex plus .1ex,parsep = 0ex,topsep = .75ex plus .1ex,partopsep = 0ex
+  }
+\setlist[itemize,1]
+  {label = \color{ctex at emph}\ensuremath{\bullet},leftmargin = *}
+\setlist[itemize,2]
+  {label = \color{ctex at emph}\ensuremath{\circ},leftmargin = *}
+\setlist[enumerate,1]
+  {label = \color{ctex at emph}\arabic*.,ref = \arabic*,leftmargin = *}
+\setlist[enumerate,2]
+  {label = \color{ctex at emph}(\alph*),ref = \theenumi(\alph*),leftmargin = *}
+\setlist[description]
+  {font = \color{ctex at emph}\sf,labelwidth = *,leftmargin = 2\ccwd}
+\newlist{outlinelist}{itemize}{1}
+\setlist[outlinelist]
+  {label = \color{ctex at emph}\upshape\ding{112},itemsep = .5ex plus .1ex,leftmargin = *}
+\skip_set:Nn \pltopsep{.75ex plus .1ex}
+\skip_set:Nn \plpartopsep{0ex}
+\skip_set:Nn \plitemsep{.75ex plus .1ex}
+\skip_set:Nn \plparsep{0ex}
+\cs_new:Npn \circled#1
+  {
+    \lower .7ex
+    \hbox{\tikz\draw(0pt,0pt)circle(.5\ccwd)node{\makebox[\ccwd][c]{\small#1}};}
+  }
+
+\tl_new:N \theoremname
+\tl_new:N \definitioname
+\tl_new:N \lemmaname
+\tl_new:N \corollaryname
+\tl_new:N \propositioname
+\tl_new:N \examplename
+\tl_new:N \remarkname
+\tl_new:N \exercisename
+
+\bool_if:NTF \l__lang_chinese_bool
+  {
+    \tl_set:Nn \theoremname{定理}
+    \tl_set:Nn \definitioname{定义}
+    \tl_set:Nn \lemmaname{引理}
+    \tl_set:Nn \corollaryname{推论}
+    \tl_set:Nn \propositioname{性质}
+    \tl_set:Nn \examplename{例}
+    \tl_set:Nn \remarkname{注}
+    \tl_set:Nn \exercisename{练习}
+  }{        
+    \tl_set:Nn \theoremname{Theorem}
+    \tl_set:Nn \definitioname{Definition}
+    \tl_set:Nn \lemmaname{Lemma}
+    \tl_set:Nn \corollaryname{Corollary}
+    \tl_set:Nn \propositioname{Proposition}
+    \tl_set:Nn \examplename{Example}
+    \tl_set:Nn \remarkname{Remark}
+    \tl_set:Nn \exercisename{Exercise}
+  }
+
+\declaretheoremstyle[
+  spaceabove = .75ex plus .1ex,
+  spacebelow = .75ex plus .1ex,
+  headindent = 0\ccwd,
+  headfont = \color{ctex at emph}\sffamily,
+  notefont = {},
+  notebraces = {}{},
+  bodyfont = \normalfont,
+  headpunct = {.},
+  postheadspace = \ccwd,
+  numberwithin = chapter,
+  headformat = \NAME\space\NUMBER\NOTE
+  ]{mythm}
+\declaretheorem[style = mythm,name = \theoremname]{theorem}
+\declaretheorem[style = mythm,name = \definitioname]{definition}
+\declaretheorem[style = mythm,name = \lemmaname]{lemma}
+\declaretheorem[style = mythm,name = \corollaryname]{corollary}
+\declaretheorem[style = mythm,name = \propositioname]{proposition}
+\declaretheorem[style = mythm,name = \examplename]{example}
+\cs_gset_eq:NN \proof\relax
+\declaretheorem{remark}[
+  style = mythm,
+  name = \faCommentingO\space\remarkname,
+  numbered = no
+  ]
+\declaretheorem{proof}[
+  style = mythm,
+  name = \faPencilSquareO\space\proofname,
+  numbered = no,
+  qed = \qedsymbol
+  ]
+
+\settasks
+  {
+    label = (\Alph*),
+    after-item-skip = 0ex plus .1ex,
+    column-sep = .5\ccwd,
+    item-indent = 2\ccwd,
+    label-width = 1.5\ccwd
+  }
+\setchemformula
+  {
+    math-scripts = false,
+    charge-hshift = 0.25\ccwd,
+    subscript-vshift = -0.2ex
+  }
+\sisetup
+  {
+    detect-family,
+    detect-weight,
+    detect-shape,
+    detect-inline-family = math,
+    detect-inline-weight = math,
+    detect-display-math,
+    unit-math-rm = \mathrm,
+    number-math-rm = \mathrm,
+    table-parse-only,
+    group-digits = false
+  }
+\allowdisplaybreaks[4]
+\cs_gset:Npn \ULthickness{.75pt}
+\SetMathEnvironmentSinglespace{\g__math_spread_tl}
+\skip_set:Nn \jot{4pt plus 1pt minus 1pt}
+\ctex_after_end_preamble:n
+  {
+    \skip_set:Nn \abovedisplayskip{5pt plus 1pt minus 1pt}
+    \skip_set:Nn \belowdisplayskip{5pt plus 1pt minus 1pt}
+    \skip_set:Nn \abovedisplayshortskip{0pt}
+    \skip_set:Nn \belowdisplayshortskip{5pt plus 1pt minus 1pt}
+  }
+\cs_gset:Npn \tagform@#1
+  {\maketag@@@{\color{ctex at emph}(\ignorespaces#1\unskip\@@italiccorr)}}
+
+\tcbset
+  {
+    thmsty/.style =
+      {
+        enhanced~jigsaw,pad~at~break* = 3pt,
+        opacityback = 0,
+        colframe = ctex at emph,
+        left = .2pc,right = .2pc,top = .5pc,bottom = .5pc,middle= .5pc,
+        arc = 0pt
+      },
+    outlinesty/.style =
+      {
+        enhanced,nofloat,
+        tikznode~boxed~title,
+        interior~style = white,colframe = ctex at emph,
+        colbacktitle = white,coltitle = ctex at emph,
+        fonttitle = \large\sffamily,fontupper = \itshape,
+        boxed~title~style = {size = normal,opacityframe = 0,boxrule = 0pt},
+        attach~boxed~title~to~top~center = {yshift = -\tcboxedtitleheight/2},
+        arc = 3pt,
+        after~skip = 3ex,
+        left = 1.5pc,right = 1.5pc,top = 1pc,bottom = 0.5pc,
+        boxsep = 5pt
+      },
+    exsty/.style =
+      {
+        enhanced,on~line,
+        arc = 5pt,
+        fontupper = \sffamily\Large,
+        boxrule = 1pt,boxsep = 0pt,
+        left = 6pt,right = 6pt,top = 3.5pt,bottom = 3.5pt,
+        before~skip = 4ex,after~skip = 2.25ex
+      },
+    breakable,
+    boxrule = .75pt
+  }
+\ctex_at_end_preamble:n
+  {
+    \bool_if:NT \l__thmbox_bool
+      {
+        \tcolorboxenvironment{theorem}{thmsty}
+        \tcolorboxenvironment{definition}{thmsty}
+        \tcolorboxenvironment{lemma}{thmsty}
+        \tcolorboxenvironment{corollary}{thmsty}
+        \tcolorboxenvironment{proposition}{thmsty}
+        \tcolorboxenvironment{example}{thmsty}
+      }
+  }
+\NewDocumentEnvironment{outline}{O{\abstractname}}
+  {
+    \begin{tcolorbox}[outlinesty,title = #1]
+      \begin{outlinelist}
+  }{
+      \end{outlinelist}
+    \end{tcolorbox}
+  }
+\NewDocumentEnvironment{exercise}{sO{black}O{1.}O{\exercisename}}
+  {
+    \IfBooleanF{#1}
+      {
+        \refstepcounter{section}
+        \addcontentsline{toc}{section}{\CTEXthesection\hspace{\ccwd}#4}
+        \markright
+          {
+            \ifnum\c at secnumdepth>\z@
+              \CTEXthesection\hspace{0.5\ccwd}
+            \fi#4
+          }
+      }
+    \begin{center}
+      \bool_if:NTF \l__thmbox_bool
+        {
+          \tcbox[
+            exsty,
+            colback = #2!8!white,colframe = #2!50!black,
+            drop~fuzzy~shadow = #2!50!white,
+            ]{\IfBooleanF{#1}{\CTEXthesection\hspace{0.5\ccwd}}#4}
+        }{
+          \sffamily\Large\IfBooleanF{#1}{\CTEXthesection\hspace{0.5\ccwd}}#4
+        }
+    \end{center}
+    \begin{compactenum}[#3]
+  }{
+    \end{compactenum}
+  }
+\DeclareTColorBox{mybox}{so}
+  {
+    enhanced~jigsaw,pad~at~break* = 3pt,
+    IfBooleanF = {#1}{opacityback = 0,colframe = ctex at emph},
+    coltitle = black,opacitybacktitle = 0,
+    fonttitle = \sffamily,
+    left = .2pc,right = .2pc,top = .5pc,bottom = .5pc,middle= .5pc,
+    arc = 0pt,
+    toptitle = 2pt,bottomtitle = 2pt,
+    beforeafter~skip=2ex,
+    halign~upper = left,halign~lower = left,
+    center~title,
+    IfValueT = {#2}{title = #2}
+  }
+\NewTCBox{\fuzzy}{O{yellow}O{}}
+  {nobeforeafter,tcbox~raise~base,blank,fuzzy~halo = 2pt~with~#1,#2}
+\DeclareTotalTCBox{\concise}{O{Aqua}O{}v}
+  {
+    nobeforeafter,tcbox~raise~base,
+    top = 2pt,bottom = 2.5pt,left = 2pt,right = 2pt,
+    boxsep = 0pt,arc = 1pt,
+    colback = #1!15!white,#2
+  }{#3}
+
+\skip_set:Nn \footnotemargin{0.5\ccwd}
+\skip_set:Nn \footnotesep{0ex}
+\cs_gset:Npn \hangfootparskip{0ex}
+\cs_gset:Npn \footnoterule
+  {
+    \color{ctex at frame}\hrule width 0.35\columnwidth height 0.75pt
+    \vspace*{2.6pt}\color{black}
+  }
+\bool_if:NT \l__lang_chinese_bool
+  {\cs_gset:Npn \hangfootparindent{2\ccwd}}
+\ctex_at_end_preamble:n
+  {
+    \bool_if:NT \l__chap_withpart_bool
+      {\counterwithin*{chapter}{part}}
+    \bool_if:NT \l__foot_perpart_bool
+      {
+        \counterwithout*{footnote}{chapter}
+        \counterwithin*{footnote}{part}
+      }
+    \bool_if:NT \l__foot_perpage_bool
+      {
+        \counterwithout*{footnote}{chapter}
+        \counterwithin*{footnote}{page}
+      }
+  }
+\patchcmd\@footnotetext
+  {\def\baselinestretch{\ZhLS at footlinespread}}
+  {\def\baselinestretch{\g__foot_spread_tl}}
+  {}{}
+\patchcmd\@mpfootnotetext
+  {\def\baselinestretch{\ZhLS at footlinespread}}
+  {\def\baselinestretch{\g__foot_spread_tl}}
+  {}{}
+\patchcmd\@makefnmark
+  {\normalfont}
+  {\normalfont\rmfamily}
+  {}{}
+\cs_gset:Npn \marginfont{\sffamily\footnotesize}
+
+\lstdefinestyle{mystyle}
+  {
+    language = [LaTeX]TeX,
+    texcsstyle = *\lst at ifdisplaystyle\bfseries\color{ctex at emph}\else\color{ctex at verb}\fi,
+    basicstyle = \ttfamily\lst at ifdisplaystyle\small\else\color{ctex at verb}\fi,
+    framexleftmargin = 0pt,
+    framexrightmargin = 0pt,
+    xleftmargin = 0pt,
+    xrightmargin = 0pt,
+    framesep = 3pt,
+    frame = lines,
+    rulecolor = \color{ctex at frame},
+    commentstyle = \color{gray},
+    emphstyle = \color{ctex at emph},
+    emph =
+      {
+        amsmath,align,aligned,chemfig,cleveref,cases,caption,chemformula,compactenum,description,enumitem,enumerate,exercise,easybook,footmisc,hang,itemize,imakeidx,listings,LaTeX,multline,mybox,paralist,Python,siunitx,split,subnumcases,subcaption,tabularx,thmtools,xcolor
+      },
+    keywordstyle = \lst at ifdisplaystyle\bfseries\color{ctex at emph}\else\color{ctex at verb}\fi,
+    morekeywords =
+      {
+        includegraphics,setmainfont,setsansfont,setmonofont,setCJKmainfont,setCJKsansfont,setCJKmonofont,setCJKfamilyfont,RequirePackage
+      }
+  }
+\lstset
+  {
+    style = mystyle,
+    breaklines = true,
+    resetmargins = true,
+    numbers = left,
+    numberstyle = \small,
+    abovecaptionskip = -1ex,
+    belowcaptionskip = 1ex,
+    aboveskip = 1.5ex plus .2ex minus .1ex,
+    belowskip = 0.55ex plus .2ex minus .1ex,
+    keepspaces = true,
+    framerule = 0.75pt,
+    columns = flexible
+  }
+\lstloadlanguages{C,C++,Java,Python,Matlab}
+\AtBeginEnvironment{verbatim}{\microtypesetup{activate=false}}
+
+\cs_new_protected:Npn \__clist_put_hyperref:n #1
+  {\clist_gput_right:Nn \g__hyperref_clist{#1}}
+\cs_new_protected:Npn \__define_linkcolor:nnn #1#2#3
+  {\definecolorset{HTML}{ctex@}{}{link,#1;url,#2;cite,#3}}
+\cs_new:Npn \__set_linkcolor:n #1
+  {
+    linkcolor/\clist_item:nn {#1}{1} .code:n =
+      {
+        \__define_linkcolor:nnn
+          {\clist_item:nn {#1}{2}}
+          {\clist_item:nn {#1}{3}}
+          {\clist_item:nn {#1}{4}}
+        \__clist_put_hyperref:n
+          {
+            linkcolor = ctex at link,linkbordercolor = ctex at link,
+            urlcolor = ctex at url,urlbordercolor = ctex at url,
+            citecolor = ctex at cite,citebordercolor = ctex at cite
+          }
+      },
+  }
+\cs_new:Npn \__allow_urlbreak:
+  {
+    \cs_new:Npn \__add_urlbreak_points:
+      {\tl_map_function:NN \c__urlbreak_points_tl\do}
+    \__appto_cmd:Nn
+      \UrlBreaks{\UrlOrds\__add_urlbreak_points:}
+  }
+\tl_const:Nn \c__urlbreak_points_tl
+  {ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789}
+
+\keys_define:nx {ctex/link}
+  {
+    hyperlink         .choice:,
+    hyperlink         .value_required:n = true,
+    hyperlink/edge    .code:n = {},
+    hyperlink/various .code:n = {\__clist_put_hyperref:n {colorlinks}},
+    hyperlink/none    .code:n = {\__clist_put_hyperref:n {hidelinks}},
+    hyperlink         .default:n = edge,
+    hyperlink         .initial:n = edge,
+
+    linkcolor         .choice:,
+    linkcolor         .value_required:n = true,
+    \clist_map_function:nN
+      {
+        {darkgray,  626262,0000B2,005752},
+        {lightblue, 0000ff,004986,eb6877},
+        {crimson,   dc143c,00c1c9,afcd20},
+        {hotpink,   ff69b4,9d5196,57b5e5}
+      }
+      \__set_linkcolor:n,
+    linkcolor         .default:n = darkgray,
+    linkcolor         .initial:n = darkgray,
+
+    linktopage        .choice:,
+    linktopage        .value_required:n = true,
+    linktopage/true   .code:n = {\__clist_put_hyperref:n {linktocpage}},
+    linktopage/false  .code:n = {\__clist_put_hyperref:n {linktocpage = false}},
+    linktopage        .default:n = true,
+    linktopage        .initial:n = false
+  }
+
+\RequirePackage[
+  lang = {chinese-utf8},
+  type = {CC},
+  modifier = {by-nc},
+  version = {4.0}
+  ]{doclicense}
+
+\ctex_at_end_preamble:n
+  {
+    \RequirePackage[pdfstartview = FitH,bookmarksnumbered]{hyperref}
+    \RequirePackage{cleveref}
+    \urlstyle{same}
+    \exp_args:NV \hypersetup\g__hyperref_clist
+    \__allow_urlbreak:
+
+    \bool_if:NTF \l__lang_chinese_bool
+      {
+        \keys_set_known:nn {ctex}
+          {
+            contentsname = {目\hspace{\ccwd}录},
+            indexname = {索\hspace{\ccwd}引},
+            listfigurename = {图片索引},
+            listtablename = {表格索引},
+            abstractname = {摘\hspace{\ccwd}要},
+            lstlistlistingname = {代码索引},
+            lstlistingname = {\faCode 代码}
+          }
+        \crefformat{equation}{#2式(#1)#3}
+        \crefformat{align}{#2式(#1)#3}
+        \crefformat{multline}{#2式(#1)#3}
+        \crefformat{gather}{#2式(#1)#3}
+        \crefformat{figure}{#2图#1#3}
+        \crefformat{table}{#2表#1#3}
+        \crefformat{chapter}{#2第#1章#3}
+        \crefformat{section}{#2节#1#3}
+        \crefformat{subsection}{#2小节#1#3}
+        \crefformat{theorem}{#2定理#1#3}
+        \crefformat{definition}{#2定义#1#3}
+        \crefformat{lemma}{#2引理#1#3}
+        \crefformat{corollary}{#2推论#1#3}
+        \crefformat{proposition}{#2性质#1#3}
+        \crefformat{example}{#2例#1#3}
+      }{
+        \keys_set_known:nn {ctex}
+          {
+            abstractname = {Abstract},
+            lstlistlistingname = {List~of~Listings},
+            lstlistingname = {\faCode\space Code}
+          }
+        \crefformat{equation}{#2Equation~(#1)#3}
+        \crefformat{align}{#2Equation~(#1)#3}
+        \crefformat{multline}{#2Equation~(#1)#3}
+        \crefformat{gather}{#2Equation~(#1)#3}
+        \crefformat{figure}{#2Figure~#1#3}
+        \crefformat{table}{#2Table~#1#3}
+        \crefformat{chapter}{#2Chapter~#1#3}
+        \crefformat{section}{#2Section~#1#3}
+        \crefformat{subsection}{#2Subsection~#1#3}
+        \crefformat{theorem}{#2Theorem~#1#3}
+        \crefformat{definition}{#2Definition~#1#3}
+        \crefformat{lemma}{#2Lemma~#1#3}
+        \crefformat{corollary}{#2Corollary~#1#3}
+        \crefformat{proposition}{#2Proposition~#1#3}
+        \crefformat{example}{#2Example~#1#3}
+      }
+  }
+
+\ctex_set:n
+  {
+    secnumdepth = 3,
+    tocdepth = 1,
+    part =
+      {
+        pagestyle = empty,
+        number =
+          {\bool_if:NTF \l__zhtitle_bool{\chinese{part}}{\thepart}},
+        format = {\color{ctex at frame}\sffamily\Huge},
+        aftername =
+          {\bool_if:NTF \l__newline_bool{\par\nobreak}{\hspace{\ccwd}}},
+        tocline = {\CTEXifname{\CTEXthepart\hspace{\ccwd}}{}#2}
+      },
+    chapter =
+      {
+        % pagestyle = fancy,
+        number =
+          {\bool_if:NTF \l__zhtitle_bool{\chinese{chapter}}{\thechapter}},
+        format =
+          {
+            \color{ctex at frame}\sffamily\LARGE
+            \bool_if:NF \l__newline_bool{\centering}
+          },
+        aftername =
+          {\bool_if:NTF \l__newline_bool{\par\nobreak\vskip 1.5pc}{\hspace{\ccwd}}},
+        beforeskip = -1.5ex,
+        afterskip = 3ex,
+        lotskip = 0.8pc,
+        lofskip = 0.8pc,
+        tocline = {\CTEXifname{\protect\numberline{\CTEXthechapter}}{}#2}
+      },
+    section =
+      {
+        hang = true,
+        format = {\color{ctex at frame}\sffamily\Large},
+        aftername = {\hspace{0.5\ccwd}},
+        beforeskip = 1.5ex plus .2ex minus .1ex,
+        afterskip = 1.5ex plus .2ex minus .1ex,
+        tocline = {\CTEXifname{\protect\numberline{\CTEXthesection}}{}#2}
+      },
+    subsection =
+      {
+        hang = true,
+        format = {\color{ctex at frame}\sffamily\large},
+        aftername = {\hspace{0.5\ccwd}},
+        beforeskip = 1.3ex plus .2ex minus .1ex,
+        afterskip = 1.3ex plus .2ex minus .1ex,
+        tocline = {\CTEXifname{\protect\numberline{\CTEXthesubsection}}{}#2}
+      },
+    subsubsection =
+      {
+        hang = true,
+        format = {\color{ctex at frame}\sffamily},
+        aftername = {\hspace{0.5\ccwd}},
+        beforeskip = \parskip,
+        afterskip = \parskip
+      }
+  }
+
+\bool_if:NF \l__newline_bool
+  {
+    \ctex_set:n
+      {
+        part/hang = true,
+        chapter/hang = true
+      }
+  }
+%%
+%% End of file `easybook.cls'.
\ No newline at end of file


Property changes on: trunk/Master/texmf-dist/tex/latex/easybook/easybook.cls
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2021-01-03 22:30:19 UTC (rev 57312)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2021-01-03 22:31:14 UTC (rev 57313)
@@ -261,7 +261,7 @@
     dvdcoll dvgloss dviasm dviincl dviinfox
     dvipsconfig dynamicnumber dynblocks dynkin-diagrams dyntree
   e-french ean ean13isbn easy easy-todo
-    easyfig easyfloats easyformat easylist easyreview
+    easybook easyfig easyfloats easyformat easylist easyreview
     ebezier ebgaramond ebgaramond-maths ebong ebook ebproof ebsthesis
     ec ecc ecclesiastic ecltree eco ecobiblatex
     econ-bst econometrics economic ecothesis

Modified: trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2021-01-03 22:30:19 UTC (rev 57312)
+++ trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2021-01-03 22:31:14 UTC (rev 57313)
@@ -352,6 +352,7 @@
 depend ean13isbn
 depend easy
 depend easy-todo
+depend easybook
 depend easyfig
 depend easyfloats
 depend easyformat

Added: trunk/Master/tlpkg/tlpsrc/easybook.tlpsrc
===================================================================


More information about the tex-live-commits mailing list.