diff options
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r-- | Master/texmf-dist/source/latex/easybook/easybook.dtx | 99 |
1 files changed, 69 insertions, 30 deletions
diff --git a/Master/texmf-dist/source/latex/easybook/easybook.dtx b/Master/texmf-dist/source/latex/easybook/easybook.dtx index 6f1bd7bf07c..d018076e500 100644 --- a/Master/texmf-dist/source/latex/easybook/easybook.dtx +++ b/Master/texmf-dist/source/latex/easybook/easybook.dtx @@ -28,7 +28,7 @@ % % \title{\sffamily easybook 文档类手册} % \author{瞿毅} -% \date{2021/07/22\hskip 1em\relax v1.27L\thanks{\url{https://gitee.com/texl3/easybook}}} +% \date{2021/07/24\hskip 1em\relax v1.27o\thanks{\url{https://gitee.com/texl3/easybook}}} % % \maketitle % \begin{abstract} @@ -148,7 +148,7 @@ % cjkfont = <adobe|fandol|founder|mac|macnew|macold|ubuntu|windows|none> % \end{syntax} % 中文字体采用 \CTeX 宏集包含的字库并与其一致,具体配置方案可以查看 \CTeX 使用手册。它与 \opt{fontset} 选项是等效的,如果没有指定 \opt{cjkfont} 的值,将会自动检测用户的操作系统并选择相应的字体。 -% \changes{v1.27L}{2021/07/12}{新增 \opt{cjkfont} 选项设置中文字体,原 \opt{font} 选项设置英文字体,中文字体使用 \CTeX 的字库。} +% \changes{v1.27o}{2021/07/12}{新增 \opt{cjkfont} 选项设置中文字体,原 \opt{font} 选项设置英文字体,中文字体使用 \CTeX 的字库。} % \end{function} % % 如果需要使用其它中文字体,可以在启用选项 \opt{cjkfont = none} 后,再使用 \pkg{xeCJK} 宏包的相关命令设置字体以及声明字体族: @@ -352,19 +352,30 @@ % \changes{v1.23}{2021/03/15}{增加控制编号连接符的选项。} % \end{function} % -% \subsubsection{上标和下标} +% \subsubsection{上下标全局设置} % \label{subsubsec:super-sub-script} -% \begin{function}[EXP,added = 2021-06-26]{super-vshift,super-hshift,sub-vshift,sub-hshift,supersubsep,supersubalign} +% \begin{function}[EXP,added = 2021-06-26,updated = 2021-07-24]{super-vshift,super-hshift,sub-vshift,sub-hshift,super-format,sub-format} % \begin{syntax} % super-vshift = <刚性长度|(0pt)> % super-hshift = <刚性长度|(0pt)> % sub-vshift = <刚性长度|(0pt)> % sub-hshift = <刚性长度|(0pt)> +% super-format = <上标格式> +% sub-format = <下标格式> +% \end{syntax} +% \ding{229} 以上选项路径为 \opt{style/...} \\ +% 可以使用 \tn{spbset} 命令设置上述选项,以上各个选项的参数对应 \tn{super} 或 \tn{sub} 上标下标命令的参数。其中 \meta{刚性长度} 为上标或下标的垂直和水平偏移量,\meta{上标格式} 和 \meta{下标格式} 为上标和下标的格式代码。 +% \end{function} +% +% \begin{function}[EXP,added = 2021-06-26,updated = 2021-07-24]{supersub-hshift,supersub-format,supersubsep,supersubalign} +% \begin{syntax} +% supersub-hshift = <刚性长度|(0pt)> +% supersub-format = \{<上标格式>,<下标格式>\} % supersubsep = <刚性长度|(0.3ex)> % supersubalign = <(l)|c|r> % \end{syntax} % \ding{229} 以上选项路径为 \opt{style/...} \\ -% 可以使用 \tn{spbset} 命令设置上述选项。各垂直和水平偏移的参数对应 \tn{super} 等上标下标命令的参数,并且具有优先性。\opt{supersubsep} 选项是 \tn{supersub} 命令中上标和下标的间距,\opt{supersubalign} 选项则是上标与下标的水平对齐方式,有左对齐、居中对齐和右对齐。 +% 可以使用 \tn{spbset} 命令设置上述选项,以上各个选项的参数对应 \tn{supersub} 上下标命令的参数。\opt{supersubsep} 选项是上下标的垂直间距,\opt{supersubalign} 选项则是上下标的水平对齐方式,有左对齐、居中对齐和右对齐三种。\opt{supersub-format} 选项分别设置上下标的格式,以英文逗号分隔为前后部分,也可以只有前部分,表示上标的格式。 % \end{function} % % \subsection{超链接} @@ -548,7 +559,7 @@ % \end{function} % % \begin{optdesc} -% \item[thmbox] 开启定理环境盒子的边框,需载入 \pkg{tcolorbox} 宏包才生效。这个选项与 \pkg{thmtools} 中并不一致,\pkg{thmtools} 的同名选项包括 L、M 和 S 三个参数。 +% \item[thmbox] 开启定理环境盒子的边框,需载入 \pkg{tcolorbox} 宏包才生效。这个选项与 \pkg{thmtools} 中并不一致,\pkg{thmtools} 的同名选项包括 \opt{L}、\opt{M} 和 \opt{S} 三个参数。 % \item[within] 定理编号跟随的计数器,默认跟随章的编号,也可以跟随其它定理环境的编号,当计数器增加时定理编号会从零开始,空置时不跟随其它计数器。 % \item[headpunct] 定理标题末尾后的标记,在换行符或第一段内容的间隔之前。 % \item[bodyfont] 定理内容部分的字体,包括字体族、字体系列、字体尺寸和字体形状命令。 @@ -606,7 +617,7 @@ % \DeclareTheorem{定理环境名}{中文标题}[style = easy-theorem] % \declaretheorem[style = easy-theorem,name = 定理名]{定理环境名} % \end{ctexexam} -% \tn{declaretheorem} 定义的定理环境需要手动增加盒子边框,可以如下进行设置: +% \tn{declaretheorem} 定义的定理环境需要手动增加盒子边框: % \begin{ctexexam} % \tcolorboxenvironment{定理环境名}{tc-theorem} % \end{ctexexam} @@ -676,7 +687,7 @@ % sec-mark = \CTEXifname{\CTEXthesection——}{}#1 % } % \end{ctexexam} -% \opt{headrule}、\opt{footrule} 和 \opt{footnoterule} 三个选项可以使用 \tn{hrule} \texttt{width} \meta{长度} \texttt{height} \meta{高度} 或下述 \tn{markrule} 命令来绘制横线,脚注线默认为空。当然,手动绘制横线时线条粗细选项 \opt{style/rulewidth} 会失效。 +% \opt{headrule}、\opt{footrule} 和 \opt{footnoterule} 三个选项可以使用 \tn{hrule} \opt{width} \meta{长度} \opt{height} \meta{高度} 或下述 \tn{markrule} 命令来绘制横线,脚注线默认为空。当然,手动绘制横线时线条粗细选项 \opt{style/rulewidth} 会失效。 % % \begin{function}[added = 2021-01-13,updated = 2021-06-14]{\easyhead,\easyfoot,\markrule} % \begin{syntax} @@ -684,7 +695,7 @@ % \tn{easyfoot}\oarg{位置}\marg{内容} % \tn{markrule}\oarg{长度|(\tn{textwidth})}\parg{颜色名}\marg{线宽|(0.75pt)}[<上间距>+<下间距>] % \end{syntax} -% 命令 \tn{easyhead} 和 \tn{easyfoot} 的使用方法与 \tn{fancyhead} 和 \tn{fancyfoot} 完全相同,它们需要在 \opt{head-foot} 选项中使用,设置的是一个名为 \opt{fancy} 的页面风格。\pkg{fancyhdr} 将页眉页脚分成了左中右和奇数页(odd)、偶数页(even)共12个部分,可选参数中E、O代表偶数、奇数,L、C 和 R 代表左、中和右部分。单面打印时,含有偶数的选项无效。 +% 命令 \tn{easyhead} 和 \tn{easyfoot} 的使用方法与 \tn{fancyhead} 和 \tn{fancyfoot} 完全相同,它们需要在 \opt{head-foot} 选项中使用,设置的是一个名为 \opt{fancy} 的页面风格。\pkg{fancyhdr} 将页眉页脚分成了左中右和奇数页(odd)、偶数页(even)共 12 个部分,可选参数中 \opt{E} 和 \opt{O} 代表偶数和奇数,\opt{L}、\opt{C} 和 \opt{R} 代表左、中和右部分。单面打印时,含有偶数的选项无效。 % \changes{v1.26}{2021/06/14}{增加页眉页脚的横线绘制命令 \tn{markrule}。} % \end{function} % @@ -717,7 +728,7 @@ % \end{syntax} % \ding{229} 以上选项路径为 \opt{hdrset/...} \\ % \changes{v1.25}{2021/05/12}{增加脚注样式设置选项。} -% \changes{v1.27L}{2021/07/14}{增加脚注内容格式选项 \opt{fntext-form} 和脚注类型选项 \opt{footnotetype}。} +% \changes{v1.27o}{2021/07/14}{增加脚注内容格式选项 \opt{fntext-form} 和脚注类型选项 \opt{footnotetype}。} % \end{function} % % \begin{optdesc} @@ -747,7 +758,7 @@ % numsep = <编号后间距|(1em)> % \end{syntax} % \ding{229} 以上选项路径为 \opt{tocset/(level)/...} \\ -% \opt{tocset} 将目录样式交给 \pkg{titletoc} 处理,\opt{(level)} 代表 part、chapter、section、subsection、figure、table 和 lstlisting 级别的目录,而使用 list 级别可以统一设置图片、表格和代码目录的样式。 +% \opt{tocset} 将目录样式交给 \pkg{titletoc} 处理,\opt{(level)} 代表 \opt{part}、\opt{chapter}、\opt{section}、\opt{subsection}、\opt{figure}、\opt{table} 和 \opt{lstlisting} 级别的目录,而使用 \opt{list} 级别可以统一设置图片、表格和代码目录的样式。 % \changes{v1.21}{2021/01/13}{增加配置目录样式的选项。} % \changes{v1.24}{2021/04/20}{增加目录中编号与标题的间距选项 \opt{numsep}。} % \changes{v1.25}{2021/05/14}{可以分别设置图片、表格和代码目录的格式。} @@ -798,8 +809,8 @@ % \end{function} % % \begin{optdesc} -% \item[lolskip] \opt{lolskip} 是代码目录中章之间的代码标题的距离,与 \CTeX 的表格目录和图片目录中章之间的标题距离选项 \opt{lotskip} 和 \opt{lofskip} 类似,它们的值均默认 0.8 pc,在 article 模式中此选项失效。 -% \item[belowoffset] \opt{belowoffset} 选项为主文档目录标题下方的间距补偿,一般为负值,用于抵消 \opt{format} 中额外的垂直间距。\opt{(level)} 中的 \opt{belowoffset} 与之意义类似,代表 figure、table 和 lstlisting 三个级别,也可以使用 \opt{list} 统一设置,一般为正值。 +% \item[lolskip] \opt{lolskip} 是代码目录中章之间的代码标题的距离,与 \CTeX 的表格目录和图片目录中章之间的标题距离选项 \opt{lotskip} 和 \opt{lofskip} 类似,它们的值均默认为 \opt{0.8pc},在 article 模式中此选项失效。 +% \item[belowoffset] \opt{belowoffset} 选项为主文档目录标题下方的间距补偿,一般为负值,用于抵消 \opt{format} 中额外的垂直间距。\opt{(level)} 中的 \opt{belowoffset} 与之意义类似,代表 \opt{figure}、\opt{table} 和 \opt{lstlisting} 三个级别,也可以使用 \opt{list} 统一设置,一般为正值。 % \item[tocline] 目录标签整体使用 \opt{tocline} 设置,在图表标签的参数中 \#1 代表编号,代码标签中则是 \tn{thelstlisting} 代表编号,标签中还可包含标签名称,默认标签名称与图、表和代码环境的标题名称一致。下面举个设置标签的例子: % \begin{ctexexam} % \tocset @@ -905,7 +916,7 @@ % \tn{end}\{hangparas\} % \end{syntax} % \tn{hangpara} 命令使其后的一个段落保持悬挂缩进,\env{hangparas} 环境使其中的段落均保持悬挂缩进。缩进将以 \meta{缩进长度} 从每个段落的 \meta{缩进开始行数} 开始。 -% \changes{v1.27L}{2021/07/11}{增加悬挂缩进段落命令 \tn{hangpara} 和环境 \env{hangparas}。} +% \changes{v1.27o}{2021/07/11}{增加悬挂缩进段落命令 \tn{hangpara} 和环境 \env{hangparas}。} % \end{function} % % \subsection{代码} @@ -1079,7 +1090,7 @@ % \tn{end}\{eqcomp\} % \end{syntax} % 一些公式之后可以使用基于列表环境的 \env{eqcomp} 进行符号对照。\tn{symb} 需要在环境内使用,带有星号的命令可单独在文本段落使用。对照列表第二个 \meta{键值列表} 与 \pkg{enumitem} 的选项相同,一般较少用到,可以用于设置垂直间距等。第一个 \meta{键值列表} 也可以使用 \tn{seteqcomp} 全局设置,选项如下: -% \changes{v1.27L}{2021/07/22}{增加公式符号对照环境 \env{eqcomp} 和命令 \tn{symb}。} +% \changes{v1.27o}{2021/07/22}{增加公式符号对照环境 \env{eqcomp} 和命令 \tn{symb}。} % \end{function} % % \begin{function}{width,delim,space,item-align,delim-align,intro,font,mode} @@ -1099,8 +1110,8 @@ % \item[width] 设置适当的符号宽度可以防止文字重叠和边界溢出等问题。 % \item[delim] 符号对照的引导符,\tn{symb} 的 \meta{引导符} 和对齐方式是基于这个符号的宽度。 % \item[space] 符号间隙为引导符两侧与符号和说明文字间的距离。 -% \item[item-align] 符号的对齐方式,分为左(l)、中(c)和右(r)三种对齐方式。 -% \item[delim-align] 引导符的对齐方式,分为左(l)、中(c)和右(r)三种对齐方式。 +% \item[item-align] 符号的对齐方式,分为左(\opt{l})、中(\opt{c})和右(\opt{r})三种对齐方式。 +% \item[delim-align] 引导符的对齐方式,分为左(\opt{l})、中(\opt{c})和右(\opt{r})三种对齐方式。 % \item[intro] 符号对照的说明文字,应当为简短的几个字,只显示在第一行,其后为悬挂缩进的对照列表。 % \item[font] 符号的字体,数学和文本符号模式应采用不同的字体命令,最后一个命令可以接受一个参数,这个参数为符号。 % \item[mode] 符号字体模式,可以为数学字体或者文本字体。 @@ -1308,6 +1319,13 @@ % \newblock (2020-12-31) % \urlprefix\url{https://www.ctan.org/pkg/biblatex} % +% \bibitem{eqexpl} +% Konstantin Morenko. +% \newblock \textit{The \pkg{eqexpl} package} [EB/OL]. +% \newblock version 1.1, +% \newblock (2019-07-01) +% \urlprefix\url{https://www.ctan.org/pkg/eqexpl} +% % \bibitem{xmuthesis} % Camuse Cao. % \newblock \textit{\pkg{xmuthesis}: 厦门大学论文模板} [EB/OL]. @@ -1327,7 +1345,7 @@ %<*class> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e} -\ProvidesExplClass{easybook}{2021/07/22}{1.27L} +\ProvidesExplClass{easybook}{2021/07/24}{1.27o} {Typeset Chinese theses or books} \bool_set_false:N \l__eb_compile_draft_bool @@ -1558,6 +1576,8 @@ { pagestyle = empty, format = \color{ctex@frame}\sffamily\Huge, + nameformat = { }, + titleformat = { }, aftername = { \bool_if:NTF \l__eb_title_newline_bool @@ -1573,6 +1593,8 @@ \color{ctex@frame}\sffamily\LARGE \bool_if:NF \l__eb_title_newline_bool { \centering } }, + nameformat = { }, + titleformat = { }, aftername = { \bool_if:NTF \l__eb_title_newline_bool @@ -1621,7 +1643,7 @@ %<*package> \NeedsTeXFormat{LaTeX2e}[2020/10/01] \RequirePackage{l3keys2e,etoolbox} -\ProvidesExplPackage{easybase}{2021/07/22}{1.27L} +\ProvidesExplPackage{easybase}{2021/07/24}{1.27o} {Typeset Chinese theses or books} \cs_generate_variant:Nn \int_to_arabic:n { v } @@ -1683,13 +1705,30 @@ { \seq_set_split:Nnn \l_tmpa_seq { [ } {#1} \seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl - \IfFileExists{\l_tmpa_tl.sty} + \seq_pop_right:NN \l_tmpa_seq \l_tmpb_tl + \eb_package_reload_check:nn { \l_tmpa_tl } { - \exp_last_unbraced:Nx \RequirePackage - { [\seq_use:Nn \l_tmpa_seq { , } }{\l_tmpa_tl} - }{} + \IfFileExists{\l_tmpa_tl.sty} + { + \exp_last_unbraced:Nx \RequirePackage + { [\l_tmpb_tl }{\l_tmpa_tl} + }{} + } + } + { + \eb_package_reload_check:nn {#1} + { \IfFileExists{#1.sty}{\RequirePackage{#1}}{} } } - { \IfFileExists{#1.sty}{\RequirePackage{#1}}{} } + } +\cs_new_protected:Npn \eb_package_reload_check:nn #1#2 + { + \@ifpackageloaded{#1} + {\msg_warning:nnn { easybase } { package-reload } {#1}}{#2} + } +\msg_new:nnn { easybase } { package-reload } + { + There~is~no~need~to~reload~the~#1~macro~package. \\ + Please~review~your~code. } \NewDocumentCommand{\LoadPackage}{O{}m} { @@ -3001,7 +3040,7 @@ item-align .initial:n = r, delim-align .tl_set:N = \l__eb_eqsymb_delim_align_tl, delim-align .initial:n = c, - intro .tl_set: = \l__eb_eqsymb_intro_tl, + intro .tl_set:N = \l__eb_eqsymb_intro_tl, font .tl_set:N = \l__eb_eqsymb_font_tl, mode .tl_set:N = \l__eb_eqsymb_mode_tl, mode .initial:n = math @@ -3501,15 +3540,15 @@ { \eb_define_theme_color:n { \exp_not:n {#1} } } } -\cs_new:Npn \eb_allow_urlbreak: +\cs_new:Npn \eb_allow_url_break: { \eb_appto_cmd:Nn \UrlBreaks { \UrlOrds - \tl_map_function:NN \c__eb_urlbreak_points_tl \do + \tl_map_function:NN \c__eb_url_break_points_tl \do } } -\tl_const:Nn \c__eb_urlbreak_points_tl +\tl_const:Nn \c__eb_url_break_points_tl { ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz @@ -3519,7 +3558,7 @@ { \LoadPackage{hyperref} \urlstyle{same} - \eb_allow_urlbreak: + \eb_allow_url_break: \exp_args:NV \hypersetup \l__eb_hyperref_clist } @@ -3562,7 +3601,7 @@ } %</package> %<*tcolorbox> -\ProvidesExplFile{eb-tcolorbox.cfg}{2021/07/22}{1.27L} +\ProvidesExplFile{eb-tcolorbox.cfg}{2021/07/24}{1.27o} {Customization of tcolorbox for easybook} \cs_new_protected:Npn \eb_tcb_theorem_set:n #1 |