summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/easybook/doc/easybook.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/easybook/doc/easybook.tex')
-rw-r--r--macros/latex/contrib/easybook/doc/easybook.tex407
1 files changed, 407 insertions, 0 deletions
diff --git a/macros/latex/contrib/easybook/doc/easybook.tex b/macros/latex/contrib/easybook/doc/easybook.tex
new file mode 100644
index 0000000000..ab65b0c7c8
--- /dev/null
+++ b/macros/latex/contrib/easybook/doc/easybook.tex
@@ -0,0 +1,407 @@
+\documentclass{ctxdoc}
+\hypersetup
+ {
+ colorlinks,
+ linkcolor=blue,
+ urlcolor=blue
+ }
+
+\title{\sffamily easybook书籍文档类}
+\author{瞿毅}
+\date{2021/01/09\hskip\ccwd\relax v1.2\thanks{\url{https://gitee.com/TeX-doc/easybook}}}
+
+\begin{document}
+\maketitle
+\changes{v1.2}{2021/01/09}{修改和完善用户文档。}
+\changes{v1.2}{2021/01/09}{模板更改为使用CC-BY许可协议。}
+\begin{abstract}
+ \cls{easybook} 是基于 \cls{ctexbook} 书籍文档类创建以极简为风格的模板,可以看作对 \cls{ctexbook} 的进一步包装。虽然\CTeX 文档类提供了较好的中文支持,但想实现个性化功能一般需要在其基础上载入更多宏包来定制。\cls{easybook} 考虑了一些细节并载入一些常用宏包实现一般的排版需求,它适用于排版中英文书籍或笔记,甚至可稍加修改成为学位论文模板。
+\end{abstract}
+\tableofcontents
+
+\section{编译文档}
+成功地编译演示文档,可能需要满足以下的条件
+\begin{itemize}
+ \item 使用 \hologo{XeLaTeX}(推荐)或 \hologo{LuaLaTeX} 两种编译方式,参考文献使用 \hologo{BibTeX} 编译。
+ \item 默认情况下安装方正与思源字体。
+ \item 安装最新的\TeX 发行版并将宏包升级为最新。
+\end{itemize}
+
+\subsection{编译步骤}
+\begin{frameverb}
+ xelatex -shell-escape easybook-demo
+ bibtex easybook-demo
+ makeindex easybook-demo
+ xelatex -shell-escape easybook-demo
+ xelatex -shell-escape easybook-demo
+\end{frameverb}
+
+需注意,正确\textbf{编译索引}需要增加 \opt{-shell-escape} 命令行选项。若不需要索引和参考文献,可以在正文中注释掉命令。若出现以下警告,再编译一次即可。
+\begin{frameverb}
+ LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right.
+\end{frameverb}
+
+\subsection{字体设置}
+默认中文使用方正系列的{\songti 方正书宋}、{\heiti 方正黑体}、{\kaishu 方正楷体}和{\fangsong 方正仿宋},英文使用思源系列的{\rmfamily Noto Serif}、{\sffamily Noto Sans}和{\ttfamily Noto Sans Mono},数学字体使用 \pkg{notomath}。字体点击此处下载\href{https://wws.lanzous.com/b01ns361i}{下载地址}。
+
+如果您\textbf{懒于安装字体},可以见小节 \ref{subsec1} 使用\CTeX 预置中文字库。如果您不喜欢方正、思源字体,\textbf{自定义字体}需启用选项 \opt{font = none},并可在导言区设置中文字体,粗体与斜体不设置会产生警告。
+\begin{ctexexam}
+ \setCJKmainfont{SimSun}[BoldFont = SimHei,ItalicFont = KaiTi]
+ \setCJKsansfont{SimHei}
+ \setCJKmonofont{FangSong}
+\end{ctexexam}
+
+\section{模板选项}
+标准 \cls{book} 文类与 \cls{ctexbook} 文类的选项同样适用于本文档。除此之外选项分为两类
+\begin{itemize}
+ \item 带有 \rexptarget\rexpstar{} 号的选项,需要在引入文档类的时候设定。
+ \item 带有 \exptarget\expstar{} 号的选项,需要通过\CTeX 宏集提供的用户接口命令 \tn{ctexset} 设定。
+\end{itemize}
+\subsection{文档类选项}\label{subsec1}
+
+\begin{function}[rEXP,added = 2021-01-05]{draft}
+开启草稿模式会加快编译速度,表现有显示页面边框、行溢出的地方显示黑色方块、图片变成占位方框、显示当前日期和关闭超链接渲染。
+\end{function}
+
+\begin{function}[rEXP,added = 2021-01-05]{newline}
+章标题风格为另起一行,英文模式使用较为常见。类似下面的效果
+\begin{flushleft}\sffamily\LARGE
+ Chapter 1\vskip 1.3pc
+ This is a title
+\end{flushleft}
+\end{function}
+
+\begin{function}[rEXP,added = 2021-01-05]{entitle}
+部分标题编号由中文数字变为大写罗马数字,章标题编号由中文数字变为阿拉伯数字。比如\textsf{第一部分}变为\textsf{第I部分},\textsf{第一章}变为\textsf{第1章}。
+\end{function}
+\begin{function}[rEXP,added = 2021-01-05]{english}
+使各类标题变为英文形式。包括章节标题、图表标题和定理标题等。如\textsf{第一章}变为\textsf{Chapter 1},\textsf{图1.1} 变为 \textsf{Table 1.1}。
+\end{function}
+\begin{function}[rEXP,added = 2021-01-05]{enstyle}
+同时开启 \opt{newline}、\opt{entitle} 和 \opt{english} 三个选项以符合英文原生风格。
+\end{function}
+
+\begin{function}[rEXP,added = 2021-01-05]{font}
+\begin{syntax}
+ font = <adobe|founder|mac|windows|linux|overleaf|none>
+\end{syntax}
+传递给 \cls{ctexbook} 设置字体,最好不要使用原有的 \opt{fontset} 选项,默认情况下使用自定义字体而不开启这个选项,可根据安装的字体及电脑系统选取。\opt{overleaf} 是一个各系统通用选项,会检测系统环境选取对应字体。
+\end{function}
+
+\begin{function}[rEXP,added = 2021-01-05]{paper}
+\begin{syntax}
+ paper = <(a4)|b5>
+\end{syntax}
+设置版面规格,有A4和B5两种纸张大小,建议 选项 \opt{a4} 和 \opt{zihao = 5},选项 \opt{b5} 和 \opt{zihao = -4} 配合。
+\end{function}
+
+\subsection{接口选项}
+\begin{function}[added = 2021-01-05]{\ctexset}
+\begin{syntax}
+ \tn{ctexset}\marg{键值列表}
+\end{syntax}
+\cls{easybook} 扩展了\CTeX 宏集\LaTeX 3风格键值的通用控制命令 \tn{ctexset},接口选项同样用它设置, 原有的键值列表仍然可用。
+\end{function}
+
+\begin{function}[added = 2021-01-08]{config}
+\begin{syntax}
+ config = <配置文件名>
+\end{syntax}
+\changes{v1.1}{2021/01/08}{加入载入用户配置选项。}
+\opt{config}为载入用户配置选项,配置文件名不需加括号但需带有后缀名如 \opt{tex}、\opt{def} 和 \opt{cfg}。
+\end{function}
+
+\subsubsection{风格}
+\begin{function}[EXP,updated = 2021-01-08]{style/color,style/cite,style/thmbox,style/capdash,style/multoc,style/withpart,style/perchap,style/perpage}
+\begin{syntax}
+ color = <(none)|forest|energy|cyberpunk>
+ cite = <(number)|authoryear>
+ thmbox = <true|(false)>
+ capdash = <true|(false)>
+ multoc = <true|(false)>
+ withpart = <true|(false)>
+ perchap = <true|(false)>
+ perpage = <true|(false)>
+\end{syntax}
+\changes{v1.1}{2021/01/08}{更改颜色实现方式与选项名。}
+\opt{style} 选项控制文章的风格。
+\end{function}
+
+\begin{optdesc}
+ \item[color]主题颜色,包括标题、页眉颜色等,选项 \opt{none} 为黑白页面,但不包括超链接。
+ \begin{function}{ctex@frame,ctex@emph,ctex@verb}
+ \begin{syntax}
+ \tn{definecolor}\oarg{类型}\marg{名称}\marg{模式列表}\marg{参数列表}
+ \end{syntax}
+ \changes{v1.1}{2021/01/08}{可以自定义主题颜色。}
+ 主题颜色用到这三个颜色,可以使用 \tn{definecolor} 命令进行更改,类似地更改超链接颜色见小节 \ref{ssubsec1}。
+ \end{function}
+ \item[cite]参考文献格式为中国的参考文献推荐标准GB/T 7714-2015,有顺序编码制和著者-出版年制两种风格,理工科类一般使用顺序编码制,文科类一般使用著者-出版年制。
+ \item[thmbox]开启定理及习题环境的盒子边框。
+ \item[capdash]将图表代码标题风格由例如\textsf{图1.1}变为\textsf{图1--1}的形式。
+ \item[multoc]开启双栏目录,可与 \opt{onecolumn} 和 \opt{twocolumn} 选项配合出单栏正文、单栏目录,双栏正文、单栏目录,单栏正文、双栏目录和双栏正文、双栏目录四种方式 。
+ \item[withpart]使章跟随每一部分编号,默认不跟随。
+ \item[perchap]使脚注跟随每一章编号,默认不跟随。
+ \item[perpage]使脚注跟随每一页编号,默认不跟随。
+\end{optdesc}
+
+\subsubsection{超链接}\label{ssubsec1}
+\begin{function}[EXP,updated = 2021-01-08]{link/hyperlink,link/linkcolor,link/linktopage}
+\begin{syntax}
+ hyperlink = <(edge)|various|none>
+ linkcolor = <(graphite)|cutepink|skyblue|crimson>
+ linktopage = <true|(false)>
+\end{syntax}
+\changes{v1.1}{2021/01/08}{修复了 \opt{linktopage} 选项关闭时目录中标题编号无超链接的问题。}
+\end{function}
+
+\begin{optdesc}
+ \item[hyperlink]\opt{edge} 使超链接为边框形式,\opt{various} 使超链接为彩色字体,有四种颜色风格。\opt{none} 关闭超链接边框与颜色,此时 \opt{linkcolor} 选项无效。
+ \item[linkcolor]超链接颜色样式。
+ \begin{function}{ctex@link,ctex@url,ctex@cite}
+ \begin{syntax}
+ \tn{definecolor}\oarg{类型}\marg{名称}\marg{模式列表}\marg{参数列表}
+ \end{syntax}超链接颜色用到这三个颜色,可以使用 \tn{definecolor} 命令进行更改。
+ \changes{v1.1}{2021/01/08}{可以自定义超链接颜色。}
+ \end{function}
+ \item[linktopage]将目录中的超链接置于页码上,默认是置于标题上。
+\end{optdesc}
+
+\subsubsection{行距}
+\begin{function}[EXP,added = 2021-01-05]{spread/linespread,spread/tabspread,spread/mathspread,spread/capspread,spread/fnspread}
+\begin{syntax}
+ linespread = <(1.3)>
+ tabspread = <(1)>
+ mathspread = <(1)>
+ capspread = <(1)>
+ fnspread = <(1)>
+\end{syntax}
+行距因子用于设置各种行距倍数,只能是浮点数,不能带有长度单位。\tn{ctexset} 原有的行距选项\opt{linespread}失效。各行距既可在导言区全局设置也可正文中设置对后面生效,行距的意义为
+\end{function}
+
+\begin{optdesc}
+ \item[linespread]正文行距。
+ \item[tabspread]表格行距。
+ \item[mathspread]数学环境行距。
+ \item[capspread]图表代码标题行距。
+ \item[fnspread]脚注行距。
+\end{optdesc}
+
+\subsubsection{其它字体}
+\begin{function}[EXP,added = 2021-01-08]{elfont/tabfont,elfont/figfont,elfont/lstfont,elfont/fnfont,elfont/marfont}
+\begin{syntax}
+ tabfont = <\tn{sffamily}\tn{small}>
+ figfont = <\tn{sffamily}\tn{small}>
+ lstfont = <\tn{sffamily}\tn{small}>
+ fnfont = <\tn{rmfamily}>
+ marfont = <\tn{rmfamily}\tn{footnotesize}>
+\end{syntax}
+\changes{v1.1}{2021/01/08}{加入自定义非正文字体选项。}
+\end{function}
+
+\begin{optdesc}
+ \item[tabfont]表格标题的字体设置。
+ \item[figfont]图片标题的字体设置。
+ \item[lstfont]代码标题的字体设置。
+ \item[fnfont]脚注的字体设置,请不要使用字号命令。
+ \item[marfont]边注的字体设置。
+\end{optdesc}
+
+\section{常用环境}
+\subsection{公式}
+\begin{function}[added = 2021-01-05]{equation,multline,gather,align}
+\begin{syntax}
+ \tn{begin}\marg{环境名}
+ \tn{item} <行间公式>
+ \tn{end}\marg{环境名}
+\end{syntax}
+\opt{amsmath} 宏包提供了一系列数学环境,它们可以排布各种对齐或不对齐的公式组。\opt{multline} 环境用于一行无法放下的长公式,\opt{gather} 环境用于每行居中的公式组,\opt{align} 环境用于多列对齐的公式组。
+\end{function}
+
+\subsection{列表}
+\begin{function}[added = 2021-01-05]{enumerate,itemize,description}
+\begin{syntax}
+ \tn{begin}\marg{环境名}\oarg{键值列表}
+ \tn{item} <列表内容>
+ \tn{end}\marg{环境名}
+\end{syntax}
+\pkg{enumitem} 宏包为系统自带的列表环境提供了更灵活的标签以及间距的控制。已设置默认格式,若自定义标签可例如
+\begin{ctexexam}
+ \begin{enumerate}[label = \arabic*(a),leftmargin = 1cm,resume]
+ \begin{itemize}[label = \textbullet]
+ \begin{description}[font = \sffamily\bfseries,style = nextline]
+\end{ctexexam}
+\end{function}
+
+\subsubsection{排序列表}\label{ssubsec2}
+使用 \opt{enumerate} 环境可创建排序列表,使用 \opt{enumerate*} 环境产生行内部列表,可以使用\textsf{A、a、I、i和1}作为可选项为 \opt{enumerate} 与 \opt{enumerate*} 格式化标签。若生成\textbf{Item I、Item II、Item III}格式可以这样
+\begin{ctexexam}
+ \begin{enumerate*}[(a)]
+ \begin{enumerate}[\bfseries{Item} I]
+\end{ctexexam}
+
+\subsubsection{常规列表}
+使用 \opt{itemize} 环境可创建不计数列表,列表环境中若换行不缩进,若在列表中分段后则缩进两字符。 \opt{itemize*} 为行内常规列表,也提供一个可选参数。
+
+用$\star$取代默认的符号
+\begin{ctexexam}
+ \begin{itemize*}[$\star$]
+ \begin{itemize}[$\star$]
+\end{ctexexam}
+
+\subsubsection{主题列表}使用 \opt{description} 环境可创建带有主题词的列表。
+\begin{ctexexam}
+\begin{description}
+ \item[主题一] 内容一
+ \item[主题二] 内容二
+\end{description}
+\end{ctexexam}
+
+\subsection{定理}
+\begin{function}[updated = 2021-01-08]{theorem,definition,lemma,corollary,proposition,example,remark,proof}
+\begin{syntax}
+ \tn{begin}\marg{环境名}
+ <定理内容>
+ \tn{end}\marg{环境名}
+\end{syntax}
+定理环境除了注和证明跟随章编号并可带有边框,边框和习题标题盒子可使用 \opt{thmbox = false} 开启,证明末尾会自动添加证明结束符。
+\end{function}
+
+\subsection{习题}
+\begin{function}[added = 2021-01-05]{exercise}
+ \begin{syntax}
+ \tn{begin}\marg{exercise}\oarg{颜色名}\oarg{编号}\oarg{标题}
+ \tn{item} <习题内容>
+ \tn{end}\marg{exercise}
+\end{syntax}
+习题环境 \opt{exercise} 的标题紧接上一节编号并加入目录与页眉,当使用星号环境时不进行编号。三个可选参数中颜色为自定义或 \pkg{xcolor} 包含的颜色名称(深色),正文编号格式与小节 \ref{ssubsec2} 排序列表相同,标题名默认为摘要,参数只能\textsf{从右往左}省略。
+\begin{ctexexam}
+ \begin{exercise}[black][1.][习题]
+ \item 习题内容
+ \item 习题内容
+ \end{exercise}
+\end{ctexexam}
+\end{function}
+
+\subsection{盒子}
+
+\subsubsection{摘要盒子}
+\begin{function}[added = 2021-01-05]{outline}
+\begin{syntax}
+ \tn{begin}\marg{outline}\oarg{标题名称}
+ \tn{item} <摘要内容>
+ \tn{end}\marg{outline}
+\end{syntax}
+摘要盒子可用于章前摘要,它的标题是可选参数,默认标题是摘要。
+\begin{ctexexam}
+ \begin{outline}[标题名称]
+ \item 摘要内容
+ \item 摘要内容
+ \end{outline}
+\end{ctexexam}
+\end{function}
+
+\subsubsection{段落盒子}
+\begin{function}[added = 2021-01-05]{mybox}
+\begin{syntax}
+ \tn{begin}\marg{mybox}\oarg{段落标题}
+ <盒子内容>
+ \tn{end}\marg{mybox}
+\end{syntax}
+环境 \opt{mybox} 创建一个段落盒子,可以添加可选参数的标题,否则无标题框。带有星号的环境会生成浅灰背景,否则是纯白背景。
+\begin{ctexexam}
+ \begin{mybox}*[段落标题]
+ 盒子内容
+ \tcblower % 盒子上下部分分界线
+ 盒子内容
+ \end{mybox}
+\end{ctexexam}
+\end{function}
+
+\subsubsection{行内盒子}
+\begin{function}[added = 2021-01-05]{\concise,\fuzzy}
+\begin{syntax}
+ \tn{concise}\oarg{颜色名}\oarg{配置}\marg{内容}
+ \tn{fuzzy}\oarg{颜色名}\oarg{配置}\marg{内容}
+\end{syntax}
+设置了两个参数选项相同的行内盒子,盒子 \opt{concise} 可以为抄录盒子有三个参数,行内盒子内容是必选参数其他可选。盒子 \opt{fuzzy} 不是抄录盒子,具有模糊边缘类似高亮的效果。
+\end{function}
+
+\section{其它格式}
+
+\subsection{代码}
+\begin{function}[added = 2021-01-05]{\lstinline,lstlisting}
+\begin{syntax}
+ \tn{lstinline}\oarg{键值列表}\marg{行内代码}
+ \tn{begin}\marg{lstlisting}\oarg{键值列表}
+ <行间代码>
+ \tn{end}\marg{lstlisting}
+\end{syntax}
+使用 \pkg{listings} 宏包可以对代码格式进行高度定制。
+\end{function}
+
+\subsection{物理量}
+\begin{function}[added = 2021-01-05]{\num,\si,\SI}
+\begin{syntax}
+ \tn{num}\oarg{选项}\marg{数字}
+ \tn{si}\oarg{选项}\marg{单位}
+ \tn{SI}\oarg{选项}\marg{数字}\oarg{前缀}\marg{单位}
+\end{syntax}
+\pkg{siunitx} 宏包的 \tn{num} 命令可以输出科学计数法,而 \tn{SI} 命令可用来输出带有单位的量,\tn{si} 命令支持数学模式,可以代替数学行内公式输入。
+\begin{ctexexam}
+ \num{-21x.3e5}
+ \si{mL.min^{-1}}
+ \SI{5}{\mole}
+\end{ctexexam}
+\end{function}
+
+\subsection{化学式}
+\begin{function}[added = 2021-01-05]{\ch,\chemfig}
+\begin{syntax}
+ \tn{ch}\oarg{选项}\marg{输入}
+ \tn{chemfig}\oarg{键值列表}\marg{分子代码}
+\end{syntax}
+除了以普通公式的方式,化学式还可用 \pkg{chemformula} 实现,无机化学式使用 \tn{ch} 命令书写。有机化学式推荐使用 \pkg{chemfig} 的 \tn{chemfig} 命令完成。
+\end{function}
+
+\subsection{引用}
+\begin{function}[added = 2021-01-05]{\cref}
+ \begin{syntax}
+ \tn{cref}\marg{标签}
+ \end{syntax}
+使用 \pkg{cleveref} 宏包的 \tn{cref} 命令进行引用,将会自动检测环境并添加相应的前缀。
+\end{function}
+
+\subsubsection{索引}
+\begin{function}[added = 2021-01-05]{\index}
+\begin{syntax}
+ \tn{index}\marg{标签}
+\end{syntax}
+使用 \pkg{imakeidx} 生成索引,仅做了简单的设置如将索引设为双栏并加入目录,其他选项可另外配置。
+\end{function}
+
+\subsubsection{脚注}
+\begin{function}[added = 2021-01-05]{\Footnote,\Footnotetext,\Footnotemark}
+\begin{syntax}
+ \tn{Footnote}\marg{标记}\marg{插入文本}
+ \tn{Footnotetext}\marg{标记}\marg{插入文本}
+ \tn{Footnotemark}\marg{标记}
+\end{syntax}
+自定义标记且不影响正常编号的脚注命令。
+\begin{ctexexam}
+ \Footnote{*}{这是可以自定义标记的脚注。}
+\end{ctexexam}
+\end{function}
+
+\subsubsection{边注}
+\begin{function}[added = 2021-01-05]{\marginnote}
+\begin{syntax}
+ \tn{marginnote}\oarg{左文本}\marg{右文本}\oarg{垂直偏移}
+\end{syntax}
+命令 \tn{marginnote} 可以生成简单的边注,如果只给定了\meta{右文本},那么边注在奇偶数页文字相同。如果同时给定了\meta{左文本},则偶数页使用\meta{左文本}的文字。
+\end{function}
+
+\IndexLayout
+\PrintChanges
+\PrintIndex
+\end{document} \ No newline at end of file