summaryrefslogtreecommitdiff
path: root/macros/latex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex')
-rw-r--r--macros/latex/contrib/easybook/doc/chapter1.tex13
-rw-r--r--macros/latex/contrib/easybook/doc/easybook-demo.pdfbin262480 -> 262451 bytes
-rw-r--r--macros/latex/contrib/easybook/doc/easybook-demo.tex3
-rw-r--r--macros/latex/contrib/easybook/doc/easybook.pdfbin424141 -> 425118 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx850
-rw-r--r--macros/latex/required/babel/base/README.md26
-rw-r--r--macros/latex/required/babel/base/babel.dtx139
-rw-r--r--macros/latex/required/babel/base/babel.ins2
-rw-r--r--macros/latex/required/babel/base/babel.pdfbin824234 -> 826256 bytes
-rw-r--r--macros/latex/required/babel/base/bbcompat.dtx2
10 files changed, 563 insertions, 472 deletions
diff --git a/macros/latex/contrib/easybook/doc/chapter1.tex b/macros/latex/contrib/easybook/doc/chapter1.tex
index 4b0a5c2475..15d8cbc899 100644
--- a/macros/latex/contrib/easybook/doc/chapter1.tex
+++ b/macros/latex/contrib/easybook/doc/chapter1.tex
@@ -83,9 +83,10 @@
\item \zhlipsum[41-42][name = aspirin]
\begin{enumerate}
\item \zhlipsum*[42][name = aspirin]
- \item \zhlipsum*[42][name = aspirin]
+ \begin{enumerate}
+ \item \zhlipsum*[42][name = aspirin]
+ \end{enumerate}
\end{enumerate}
- \item \zhlipsum*[42][name = aspirin]
\end{enumerate}
\subsection{常规列表}
@@ -94,13 +95,17 @@
\item \zhlipsum[41-42][name = aspirin]
\begin{itemize}
\item \zhlipsum*[42][name = aspirin]
+ \begin{itemize}
+ \item \zhlipsum*[42][name = aspirin]
+ \end{itemize}
\end{itemize}
- \item \zhlipsum*[42][name = aspirin]
\end{itemize}
\subsection{主题列表}
\index{l@列表!z@主题列表}
\begin{description}
\item[主题一] \zhlipsum*[42][name = aspirin]
- \item[主题二] \zhlipsum*[42][name = aspirin]
+ \begin{description}
+ \item[主题二] \zhlipsum*[42][name = aspirin]
+ \end{description}
\end{description} \ No newline at end of file
diff --git a/macros/latex/contrib/easybook/doc/easybook-demo.pdf b/macros/latex/contrib/easybook/doc/easybook-demo.pdf
index f98213bf6b..16ed695502 100644
--- a/macros/latex/contrib/easybook/doc/easybook-demo.pdf
+++ b/macros/latex/contrib/easybook/doc/easybook-demo.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/doc/easybook-demo.tex b/macros/latex/contrib/easybook/doc/easybook-demo.tex
index af86342bfa..e23317741f 100644
--- a/macros/latex/contrib/easybook/doc/easybook-demo.tex
+++ b/macros/latex/contrib/easybook/doc/easybook-demo.tex
@@ -1,5 +1,6 @@
\documentclass[
class = book,
+ scheme = chinese,
zihao = -4,
font = noto,
paper = a4paper,
@@ -100,7 +101,7 @@
\url{https://latexstudio.net} \\
\url{https://gitee.com/texl3/easybook}\thanks{Gitee为项目的主要发布地址。}
}
-\date{2021/04/06\hskip\ccwd\relax v1.24f}
+\date{2021/04/07\hskip\ccwd\relax v1.24g}
\frontmatter[roman]
\maketitle
diff --git a/macros/latex/contrib/easybook/doc/easybook.pdf b/macros/latex/contrib/easybook/doc/easybook.pdf
index 3fd17d4eb6..ab902542d5 100644
--- a/macros/latex/contrib/easybook/doc/easybook.pdf
+++ b/macros/latex/contrib/easybook/doc/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index caa02d9289..9fba915442 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -55,7 +55,7 @@ The latest version of this license is in
%
% \title{\sffamily easybook书籍文档类}
% \author{瞿毅}
-% \date{2021/04/06\hskip\ccwd\relax v1.24f\thanks{\url{https://gitee.com/texl3/easybook}}}
+% \date{2021/04/07\hskip\ccwd\relax v1.24g\thanks{\url{https://gitee.com/texl3/easybook}}}
% \maketitle
% \begin{abstract}
% \cls{easybook} 是基于 \cls{ctexbook} 书籍文档类创建以极简为风格的模板,可以看作对 \cls{ctexbook} 的进一步包装。虽然\CTeX 文档类提供了较好的中文支持,但想实现个性化功能一般需要在其基础上载入更多宏包来定制。\cls{easybook} 考虑了一些细节并载入一些常用宏包实现一般的排版需求,它适用于排版中英文书籍或笔记,甚至可稍加调整成为学位论文模板。
@@ -114,8 +114,11 @@ The latest version of this license is in
% \begin{function}[rEXP,added = 2021-01-05]{entitle}
% 部分标题编号由中文数字变为大写罗马数字,章标题编号由中文数字变为阿拉伯数字。比如\textbf{第一部分}变为\textbf{第I部分},\textbf{第一章}变为\textbf{第1章}。
% \end{function}
-% \begin{function}[rEXP,added = 2021-01-05]{english}
-% 使各类标题变为英文形式。包括章节标题、图表标题和定理标题等。如\textbf{第一章}变为\textbf{Chapter 1},\textbf{图1.1} 变为 \textbf{Table 1.1}。
+% \begin{function}[rEXP,added = 2021-01-05,updated = 2021-04-07]{scheme}
+% \begin{syntax}
+% scheme = <(chinese)|plain>
+% \end{syntax}
+% \opt{scheme} 代表文档的主题,扩展了此选项在\CTeX 文档类中原有的作用范围,\opt{plain} 选项可使各类标题变为英文形式。包括章节标题、图表标题和定理标题等。如\textbf{第一章}变为\textbf{Chapter 1},\textbf{图1.1} 变为 \textbf{Table 1.1}。
% \end{function}
% \begin{function}[rEXP,added = 2021-01-05]{enstyle}
% 同时开启 \opt{newline}、\opt{entitle} 和 \opt{english} 三个选项以符合英文原生风格。
@@ -168,7 +171,7 @@ The latest version of this license is in
% \end{syntax}
% \opt{multoc} 与 \opt{style/multoc} 选项具有相同的效果,但是具有优先性且可单独设置不同目录是否双栏排版。已经预置了中英文的目录标题,可以使用 \opt{title} 选项更改目录标题的名称。\opt{book} 选项使目录标题按照 \opt{chapter} 级别输出,\opt{article} 选项使目录标题按照 \opt{article} 级别输出,默认为 \opt{chapter} 级别。
% \changes{v1.23}{2021/03/15}{为几个目录增加键值列表的选项,可设置标题输出级别以及是否加入主目录。}
-% \changes{v1.24f}{2021/04/04}{目录命令的可选参数增加标题键值。}
+% \changes{v1.24g}{2021/04/04}{目录命令的可选参数增加标题键值。}
% \end{function}
%
% \section{接口选项}
@@ -256,7 +259,7 @@ The latest version of this license is in
% \ding{229} 以上选项路径为 \opt{link/...} \\
% \opt{link} 将超链接选项(包括以上选项)交给 \pkg{hyperref} 处理,除了一些关于 pdf 书签的选项可能会失效,其它由键值选项命令 \tn{hypersetup} 支持的多数选项可用。
% \changes{v1.10}{2021/01/08}{修复了 \opt{linktopage} 选项关闭时目录中标题编号无超链接的问题。}
-% \changes{v1.24f}{2021/04/05}{增加 \pkg{hyperref} 超链接选项完整的支持。}
+% \changes{v1.24g}{2021/04/05}{增加 \pkg{hyperref} 超链接选项完整的支持。}
% \end{function}
%
% \begin{optdesc}
@@ -455,8 +458,8 @@ The latest version of this license is in
% \begin{function}[EXP,added = 2021-01-13,updated = 2021-04-06]{head-foot,chap-mark,sec-mark,headrule,footrule,footnoterule}
% \begin{syntax}
% head-foot = <页眉页脚中的内容>
-% chap-mark = <\tn{chaptermark} 标志命令 \tn{markboth} 中的内容>
-% sec-mark = <\tn{sectionmark} 标志命令 \tn{markright} 中的内容>
+% chap-mark = <\tn{chaptermark} 标志命令的定义>
+% sec-mark = <\tn{sectionmark} 标志命令的定义>
% headrule = <页眉横线格式>
% footrule = <页脚横线格式>
% footnoterule = <脚注横线格式>
@@ -474,7 +477,9 @@ The latest version of this license is in
% \tn{easyhead}\oarg{位置}\marg{内容}
% \tn{easyfoot}\oarg{位置}\marg{内容}
% \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个部分,可选参数中E、O代表偶数、奇数,L、C、R代表左、中、右部分。单面打印时,含有偶数的选项无效。下面举一个设置页眉的例子
+% \end{function}
+%
% \begin{ctexexam}
% \hdrset
% {
@@ -488,7 +493,6 @@ The latest version of this license is in
% headrule = \hrule width \textwidth height 1pt
% }
% \end{ctexexam}
-% \end{function}
%
% \subsection{目录样式}
% \label{subsec:catalog style}
@@ -515,7 +519,7 @@ The latest version of this license is in
% belowoffset = <(-1pc)>
% line-align = <(true)|false>
% \end{syntax}
-% \opt{lolskip} 是代码目录中章之间的代码标题的距离,与\CTeX 的表格目录和图片目录中章之间的标题距离选项 \opt{lotskip} 和 \opt{lofskip} 类似,它们的值均默认0.8 pc,在 \opt{article} 模式中此选项失效。目录标签整体使用 \opt{tocline} 设置,也可使用小节 \ref{subsec:page margins} 的 \opt{list-labelsep} 选项只设置编号与标题的间距。在图表标签的参数中,\#1与\#2分别代表编号和标题,代码标签的编号和标题则是 \tn{thelstlisting} 和 \tn{lstcaption},标签中还可包含标签名称,默认标签名称与图、表和代码环境的标题名称一致。\opt{line-align} 选项可以使目录引导线右边对齐并与页码保持一定间隙,否则会与页码连接。下面举个设置标签的例子
+% \opt{lolskip} 是代码目录中章之间的代码标题的距离,与\CTeX 的表格目录和图片目录中章之间的标题距离选项 \opt{lotskip} 和 \opt{lofskip} 类似,它们的值均默认0.8 pc,在 \opt{article} 模式中此选项失效。目录标签整体使用 \opt{tocline} 设置,也可使用小节 \ref{subsec:page margins} 的 \opt{list-labelsep} 选项只设置编号与标题的间距。在图表标签的参数中,\#1与\#2分别代表编号和标题,代码标签的编号和标题则是 \tn{thelstlisting} 和 \tn{lstcaption},标签中还可包含标签名称,默认标签名称与图、表和代码环境的标题名称一致。下面举个设置标签的例子
% \begin{ctexexam}
% \tocset
% {
@@ -524,9 +528,9 @@ The latest version of this license is in
% }
% \end{ctexexam}
%
-% \opt{belowoffset} 选项为主目录标题 \tn{contentsname} 后的间距补偿,一般为负值,用于抵消 \opt{format} 中设置的垂直间距。\opt{lists} 中的 \opt{belowoffset} 与之意义类似,但是一般为正值,可以在 \opt{article} 模式中使用。建议 \opt{lists/lolskip(0.8pc) + lists/format/addvspace(0.2pc) + lists/belowoffset(0pc) = belowoffset(-1pc)}。
-% \changes{v1.24f}{2021/04/05}{可以设置图、表和代码目录的标签。}
-% \changes{v1.24f}{2021/04/06}{增加目录引导线右边对齐方式。}
+% \opt{belowoffset} 选项为主目录标题 \tn{contentsname} 后的间距补偿,一般为负值,用于抵消 \opt{format} 中设置的垂直间距。\opt{lists} 中的 \opt{belowoffset} 与之意义类似,但是一般为正值,可以在 \opt{article} 模式中使用。建议 \opt{lists/lolskip(0.8pc) + lists/format/addvspace(0.2pc) + lists/belowoffset(0pc) = belowoffset(-1pc)}。\opt{line-align} 选项可以使目录引导线右边对齐并与页码保持一定间隙,否则会与页码连接。
+% \changes{v1.24g}{2021/04/05}{可以设置图、表和代码目录的标签。}
+% \changes{v1.24g}{2021/04/06}{增加目录引导线右边对齐方式。}
% \end{function}
%
% \begin{function}[added = 2021-01-13,updated = 2021-04-06]{\tocrule}
@@ -560,18 +564,19 @@ The latest version of this license is in
% \end{function}
%
% \subsection{列表}
-% \begin{function}[added = 2021-01-05]{enumerate,itemize,description}
+% \begin{function}[added = 2021-01-05,updated = 2021-04-07]{enumerate,itemize,description}
% \begin{syntax}
% \tn{begin}\marg{环境名}\oarg{键值列表}
% \ \tn{item} <列表内容>
% \tn{end}\marg{环境名}
% \end{syntax}
-% \pkg{enumitem} 宏包为系统预置的列表环境 \env{enumerate}、\env{itemize}和 \env{description} 提供了更灵活的标签以及间距的控制,可使用 \tn{setlist} 命令设置原有的三种列表格式。已设置默认格式,若自定义标签可例如
+% \pkg{enumitem} 宏包为系统预置的列表环境 \env{enumerate}、\env{itemize}和 \env{description} 提供了更灵活的标签以及间距的控制,可使用 \tn{setlist} 命令设置原有的三种列表格式。已为三种列表预置了三个级别的格式,可相互嵌套,若自定义标签可例如
% \begin{ctexexam}
% \begin{enumerate}[label = \arabic*(a),leftmargin = 1cm,resume]
% \begin{itemize}[label = \textbullet]
% \begin{description}[font = \sffamily\bfseries,style = nextline]
% \end{ctexexam}
+% \changes{v1.24g}{2021/04/07}{重新优化列表环境的配置。}
% \end{function}
%
% \subsubsection{排序列表}
@@ -583,9 +588,7 @@ The latest version of this license is in
% \end{ctexexam}
%
% \subsubsection{常规列表}
-% 使用 \env{itemize} 环境可创建不计数列表,列表环境中若换行不缩进,若在列表中分段后则缩进两字符。 \opt{itemize*} 为行内常规列表,也提供一个可选参数。
-%
-% 用$\star$取代默认的符号
+% 使用 \env{itemize} 环境可创建不计数列表,列表环境中若换行不缩进,若在列表中分段后则缩进两字符。 \opt{itemize*} 为行内常规列表,举一个用$\star$取代默认的符号的例子
% \begin{ctexexam}
% \begin{itemize*}[$\star$]
% \begin{itemize}[$\star$]
@@ -608,7 +611,7 @@ The latest version of this license is in
% \ <定理内容>
% \tn{end}\marg{环境名}
% \end{syntax}
-% 这些是已预置的定理环境,定理环境除了注和证明跟随章编号并可带有边框,边框和习题标题盒子可使用 \opt{thmbox = false} 开启,证明末尾会自动添加证明结束符。环境名对应的定理标题名如下
+% 这些是已预置的定理环境,定理环境除了注和证明跟随章编号并可带有边框,边框和习题标题盒子可使用 \opt{thmbox = false} 关闭,证明末尾会自动添加证明结束符。环境名对应的定理标题名如下
% \begin{center}
% \begin{tabular}{*{8}{c}}
% \toprule
@@ -803,48 +806,47 @@ The latest version of this license is in
%<*class>
\NeedsTeXFormat{LaTeX2e}[2020/10/01]
\RequirePackage{l3keys2e}
-\ProvidesExplClass{easybook}{2021/04/06}{1.24f}{beta}
+\ProvidesExplClass{easybook}{2021/04/07}{1.24g}{beta}
\cs_generate_variant:Nn \keys_define:nn {nx}
\cs_generate_variant:Nn \int_to_arabic:n {v}
\cs_generate_variant:Nn \dim_add:Nn {NV}
-\cs_generate_variant:Nn \__put_hyperref:n {x}
+\cs_generate_variant:Nn \__eb_put_hyperref:n {x}
\cs_new_protected:Npn \__ctex_define:nn #1
{\keys_define:nn {ctex/#1}}
-\cs_new_protected:Npn \__put_ctexbook:n #1
+\cs_new_protected:Npn \__eb_put_ctexbook:n #1
{\PassOptionsToClass{#1}{ctexbook}}
-\cs_new_protected:Npn \__patch_cmd:Nnn #1#2#3
+\cs_new_protected:Npn \__eb_patch_cmd:Nnn #1#2#3
{\ctex_patch_cmd_once:NnnnTF #1{}{#2}{#3}{}{\ctex_patch_failure:N #1}}
-\cs_new_protected:Npn \__appto_cmd:Nn #1#2
+\cs_new_protected:Npn \__eb_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__font_noto_bool
-\bool_set_true:N \l__zhtitle_bool
-\bool_set_true:N \l__lang_chinese_bool
-\bool_set_true:N \l__page_twoside_bool
-\bool_set_true:N \l__class_book_bool
-\clist_new:N \g__options_clist
+\bool_set_false:N \l__eb_draft_bool
+\bool_set_false:N \l__eb_newline_bool
+\bool_set_false:N \l__eb_font_noto_bool
+\bool_set_true:N \l__eb_zhtitle_bool
+\bool_set_true:N \l__eb_page_twoside_bool
+\bool_set_true:N \l__eb_class_book_bool
+\clist_new:N \g__eb_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,
- entitle .code:n = \bool_set_false:N \l__zhtitle_bool,
- english .code:n = \bool_set_false:N \l__lang_chinese_bool,
- enstyle .meta:n = {newline,entitle,english},
+ draft .code:n = \bool_set_true:N \l__eb_draft_bool,
+ newline .code:n = \bool_set_true:N \l__eb_newline_bool,
+ entitle .code:n = \bool_set_false:N \l__eb_zhtitle_bool,
+ scheme .code:n = \__eb_put_ctexbook:n {scheme = #1},
+ enstyle .meta:n = {newline,entitle,scheme = plain},
font .choices:nn =
{adobe,founder,mac,windows,none}
- {\__put_ctexbook:n {fontset = \l_keys_choice_tl}},
+ {\__eb_put_ctexbook:n {fontset = \l_keys_choice_tl}},
font/noto .code:n =
{
- \bool_set_true:N \l__font_noto_bool
- \__put_ctexbook:n {fontset = none}
+ \bool_set_true:N \l__eb_font_noto_bool
+ \__eb_put_ctexbook:n {fontset = none}
},
font/overleaf .code:n = {},
- font/linux .code:n = \__put_ctexbook:n {fontset = ubuntu},
+ font/linux .code:n = \__eb_put_ctexbook:n {fontset = ubuntu},
font .value_required:n = true,
font .initial:n = overleaf,
@@ -857,26 +859,22 @@ The latest version of this license is in
twoside .value_forbidden:n = true,
oneside .code:n =
{
- \bool_set_false:N \l__page_twoside_bool
- \__put_ctexbook:n {oneside}
+ \bool_set_false:N \l__eb_page_twoside_bool
+ \__eb_put_ctexbook:n {oneside}
},
class .choice:,
class .value_required:n = true,
class/book .code:n = {},
- class/article .code:n = \bool_set_false:N \l__class_book_bool,
+ class/article .code:n = \bool_set_false:N \l__eb_class_book_bool,
class .initial:n = book,
unknown .code:n =
- {\clist_gput_right:No \g__options_clist{\CurrentOption}}
+ {\clist_gput_right:No \g__eb_options_clist{\CurrentOption}}
}
\ProcessKeysOptions{easybook}
-\bool_if:NTF \l__lang_chinese_bool
- {\__put_ctexbook:n {scheme = chinese}}
- {\__put_ctexbook:n {scheme = plain}}
-
\clist_map_inline:nn
{
{svgnames}{xcolor},
@@ -891,59 +889,59 @@ The latest version of this license is in
{no-math}{fontspec},
{noto,upint}{newtxmath}
}{\PassOptionsToPackage#1}
-\__put_ctexbook:n {\g__options_clist}
+\__eb_put_ctexbook:n {\g__eb_options_clist}
\LoadClass[UTF8]{ctexbook}
-\bool_new:N \l__multoc_bool
-\bool_new:N \l__notomath_bool
-\bool_new:N \l__uppercase_bool
-\bool_new:N \l__chap_withpart_bool
-\tl_new:N \l__foot_numberwith_tl
-\tl_new:N \g__config_tl
+\bool_new:N \l__eb_multoc_bool
+\bool_new:N \l__eb_notomath_bool
+\bool_new:N \l__eb_uppercase_bool
+\bool_new:N \l__eb_chap_withpart_bool
+\tl_new:N \l__eb_foot_numberwith_tl
+\tl_new:N \g__eb_config_tl
-\seq_const_from_clist:Nn \c__options_path_seq
+\seq_const_from_clist:Nn \c__eb_options_path_seq
{
style,link,elsefont,
spread,bibset,thmset,
geoset,hdrset,tocset
}
-\seq_map_inline:Nn \c__options_path_seq
+\seq_map_inline:Nn \c__eb_options_path_seq
{
\ctex_define:n {#1 .meta:nn = {ctex/#1}{##1}}
\cs_new:cpn {#1}##1{\keys_set:nn {ctex/#1}{##1}}
}
\ctex_define:n
{
- config .tl_set:N = \g__config_tl,
+ config .tl_set:N = \g__eb_config_tl,
lstlistlistingname .tl_set:N = \lstlistlistingname,
lstlistingname .tl_set:N = \lstlistingname
}
\__ctex_define:nn {style}
{
- multoc .bool_set:N = \l__multoc_bool,
+ multoc .bool_set:N = \l__eb_multoc_bool,
multoc .default:n = true,
- withpart .bool_set:N = \l__chap_withpart_bool,
+ withpart .bool_set:N = \l__eb_chap_withpart_bool,
withpart .default:n = true,
withpart .initial:n = false,
- notomath .bool_set:N = \l__notomath_bool,
+ notomath .bool_set:N = \l__eb_notomath_bool,
notomath .default:n = true,
notomath .initial:n = false,
- rulewidth .dim_set:N = \l__rule_width_dim,
+ rulewidth .dim_set:N = \l__eb_rule_width_dim,
rulewidth .initial:n = 0.75pt,
- uppercase .bool_set:N = \l__uppercase_bool,
+ uppercase .bool_set:N = \l__eb_uppercase_bool,
uppercase .default:n = true,
uppercase .initial:n = true,
footwith .choices:nn =
{part,page,chapter}
- {\tl_set_eq:NN \l__foot_numberwith_tl\l_keys_choice_tl},
+ {\tl_set_eq:NN \l__eb_foot_numberwith_tl\l_keys_choice_tl},
footwith .value_required:n = true,
footwith .initial:n = chapter,
- figure-sep .tl_set:N = \l__figure_separator_tl,
- table-sep .tl_set:N = \l__table_separator_tl,
- listing-sep .tl_set:N = \l__lstlisting_separator_tl,
- equation-sep .tl_set:N = \l__equation_separator_tl,
+ figure-sep .tl_set:N = \l__eb_figure_separator_tl,
+ table-sep .tl_set:N = \l__eb_table_separator_tl,
+ listing-sep .tl_set:N = \l__eb_lstlisting_separator_tl,
+ equation-sep .tl_set:N = \l__eb_equation_separator_tl,
number-sep .meta:n =
{
figure-sep = {#1},table-sep = {#1},
@@ -968,11 +966,11 @@ The latest version of this license is in
}
\ctex_at_end_preamble:n
{
- \bool_if:NT \l__notomath_bool{\RequirePackage{newtxmath,bm}}
- \tl_if_empty:NF \g__config_tl{\file_input:n {\g__config_tl}}
+ \bool_if:NT \l__eb_notomath_bool{\RequirePackage{newtxmath,bm}}
+ \tl_if_empty:NF \g__eb_config_tl{\file_input:n {\g__eb_config_tl}}
}
-\cs_new_protected:Npn \__ifpackage_later:nn #1#2
+\cs_new_protected:Npn \__eb_ifpackage_later:nn #1#2
{
\@ifpackagelater{#1}{#2}
{}{\msg_warning:nnn {easybook}{package-old}{#1}}
@@ -992,93 +990,93 @@ The latest version of this license is in
{ctex}{2020/10/19},
{thmtools}{2020/08/01},
{caption-light}{2020/08/24}
- }{\__ifpackage_later:nn #1}
+ }{\__eb_ifpackage_later:nn #1}
\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 \__eb_set_family:nnn \xeCJK_set_family:nnn
+ \cs_new_eq:NN \__eb_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_eq:NN \__eb_set_family:nnn \ctex_ltj_set_family:nnn
+ \cs_new_eq:NN \__eb_switch_family:n \ctex_ltj_switch_family:n
}
-\cs_new_protected:Npn \__setmainfont:nn #1#2
+\cs_new_protected:Npn \__eb_setmainfont:nn #1#2
{\__fontspec_main_setmainfont:nn {#2}{#1}}
-\cs_new_protected:Npn \__setsansfont:nn #1#2
+\cs_new_protected:Npn \__eb_setsansfont:nn #1#2
{\__fontspec_main_setsansfont:nn {#2}{#1}}
-\cs_new_protected:Npn \__setmonofont:nn #1#2
+\cs_new_protected:Npn \__eb_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}}
+\cs_new_protected:Npn \__eb_setCJKmainfont:nn #1#2
+ {\__eb_set_family:nnn {\CJKrmdefault}{#2}{#1}}
+\cs_new_protected:Npn \__eb_setCJKsansfont:nn #1#2
+ {\__eb_set_family:nnn {\CJKsfdefault}{#2}{#1}}
+\cs_new_protected:Npn \__eb_setCJKmonofont:nn #1#2
+ {\__eb_set_family:nnn {\CJKttdefault}{#2}{#1}}
+\cs_new_protected:Npn \__eb_set_zhfont_songti:nn #1#2
+ {\__eb_set_family:nnn {songti}{#2}{#1}}
+\cs_new_protected:Npn \__eb_set_zhfont_heiti:nn #1#2
+ {\__eb_set_family:nnn {heiti}{#2}{#1}}
+\cs_new_protected:Npn \__eb_set_zhfont_kaishu:nn #1#2
+ {\__eb_set_family:nnn {kaishu}{#2}{#1}}
+\cs_new_protected:Npn \__eb_set_zhfont_fangsong:nn #1#2
+ {\__eb_set_family:nnn {fangsong}{#2}{#1}}
-\tl_const:Nn \__option_zhfont_tl
+\tl_const:Nn \__eb_option_zhfont_tl
{UprightFont = *,AutoFakeBold = 1.5,ItalicFont = *}
-\cs_new_protected:Npx \__setCJKmainfont:n #1
- {\__setCJKmainfont:nn {#1}{\__option_zhfont_tl}}
-\cs_new_protected:Npx \__setCJKsansfont:n #1
- {\__setCJKsansfont:nn {#1}{\__option_zhfont_tl}}
-\cs_new_protected:Npx \__setCJKmonofont:n #1
- {\__setCJKmonofont:nn {#1}{\__option_zhfont_tl}}
-\cs_new_protected:Npx \__set_zhfont_songti:n #1
- {\__set_zhfont_songti:nn {#1}{\__option_zhfont_tl}}
-\cs_new_protected:Npx \__set_zhfont_heiti:n #1
- {\__set_zhfont_heiti:nn {#1}{\__option_zhfont_tl}}
-\cs_new_protected:Npx \__set_zhfont_kaishu:n #1
- {\__set_zhfont_kaishu:nn {#1}{\__option_zhfont_tl}}
-\cs_new_protected:Npx \__set_zhfont_fangsong:n #1
- {\__set_zhfont_fangsong:nn {#1}{\__option_zhfont_tl}}
+\cs_new_protected:Npx \__eb_setCJKmainfont:n #1
+ {\__eb_setCJKmainfont:nn {#1}{\__eb_option_zhfont_tl}}
+\cs_new_protected:Npx \__eb_setCJKsansfont:n #1
+ {\__eb_setCJKsansfont:nn {#1}{\__eb_option_zhfont_tl}}
+\cs_new_protected:Npx \__eb_setCJKmonofont:n #1
+ {\__eb_setCJKmonofont:nn {#1}{\__eb_option_zhfont_tl}}
+\cs_new_protected:Npx \__eb_set_zhfont_songti:n #1
+ {\__eb_set_zhfont_songti:nn {#1}{\__eb_option_zhfont_tl}}
+\cs_new_protected:Npx \__eb_set_zhfont_heiti:n #1
+ {\__eb_set_zhfont_heiti:nn {#1}{\__eb_option_zhfont_tl}}
+\cs_new_protected:Npx \__eb_set_zhfont_kaishu:n #1
+ {\__eb_set_zhfont_kaishu:nn {#1}{\__eb_option_zhfont_tl}}
+\cs_new_protected:Npx \__eb_set_zhfont_fangsong:n #1
+ {\__eb_set_zhfont_fangsong:nn {#1}{\__eb_option_zhfont_tl}}
-\bool_if:NT \l__font_noto_bool
+\bool_if:NT \l__eb_font_noto_bool
{
- \__setmainfont:nn {NotoSerif}
+ \__eb_setmainfont:nn {NotoSerif}
{
Extension = .ttf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic
}
- \__setsansfont:nn {NotoSans}
+ \__eb_setsansfont:nn {NotoSans}
{
Extension = .ttf,
UprightFont = *-Regular,
BoldFont = *-Bold,
ItalicFont = *-Italic
}
- \__setmonofont:nn {NotoSansMono}
+ \__eb_setmonofont:nn {NotoSansMono}
{
Extension = .ttf,
UprightFont = *-Regular,
BoldFont = *-Bold
}
- \__setCJKmainfont:nn {FZShuSong-Z01S}
+ \__eb_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}}
+ \__eb_setCJKsansfont:n {FZHei-B01S}
+ \__eb_setCJKmonofont:n {FZFangSong-Z02S}
+ \__eb_set_zhfont_songti:n {FZShuSong-Z01S}
+ \__eb_set_zhfont_heiti:n {FZHei-B01S}
+ \__eb_set_zhfont_kaishu:n {FZKai-Z03S}
+ \__eb_set_zhfont_fangsong:n {FZFangSong-Z02S}
+ \cs_new_protected:Npn \songti{\__eb_switch_family:n {songti}}
+ \cs_new_protected:Npn \heiti{\__eb_switch_family:n {heiti}}
+ \cs_new_protected:Npn \kaishu{\__eb_switch_family:n {kaishu}}
+ \cs_new_protected:Npn \fangsong{\__eb_switch_family:n {fangsong}}
}
\cs_if_exist:NF \kaishu{\cs_gset_eq:NN \kaishu\normalfont}
@@ -1095,7 +1093,7 @@ The latest version of this license is in
marginparsep = 8pt,
marginparwidth = 2.54cm
}
-\clist_new:N \g__geometry_clist
+\clist_new:N \g__eb_geometry_clist
\__ctex_define:nn {geoset}
{
footnotemargin .dim_set:N = \footnotemargin,
@@ -1104,11 +1102,11 @@ The latest version of this license is in
footparskip .initial:n = 0ex,
footparindent .tl_set:N = \hangfootparindent,
footparindent .initial:n = 2\ccwd,
- list-labelsep .dim_set:N = \list@labelsep,
+ list-labelsep .dim_set:N = \eb@list@labelsep,
list-labelsep .initial:n = \ccwd,
unknown .code:n =
{
- \clist_gput_right:Nx \g__geometry_clist
+ \clist_gput_right:Nx \g__eb_geometry_clist
{
\l_keys_key_str
\tl_if_empty:NF \l_keys_value_tl{ = {#1}}
@@ -1119,7 +1117,7 @@ The latest version of this license is in
\cs_gset:Npn \cleardoublepage
{
\clearpage
- \bool_if:NT \l__page_twoside_bool
+ \bool_if:NT \l__eb_page_twoside_bool
{
\int_if_odd:nF \c@page
{\hbox:n {}\thispagestyle{empty}\clearpage}
@@ -1141,14 +1139,14 @@ The latest version of this license is in
\cs_gset_eq:NN \easyfoot\fancyfoot
\__ctex_define:nn {hdrset}
{
- head-foot .tl_set:N = \l__fancyhf_content_tl,
+ head-foot .tl_set:N = \l__eb_fancyhf_content_tl,
head-foot .initial:n =
{
\easyhead[EC]{\color{ctex@frame}\kaishu\leftmark}
\easyhead[OC]{\color{ctex@frame}\kaishu\rightmark}
\easyhead[EL,OR]{\color{ctex@frame}\thepage}
},
- chap-mark .cs_set:Np = \__fancyhf_chap_mark:n #1,
+ chap-mark .cs_set:Np = \__eb_fancyhf_chap_mark:n #1,
chap-mark .initial:n =
{
\int_compare:nT {\c@secnumdepth > -1}
@@ -1160,7 +1158,7 @@ The latest version of this license is in
\fi
}#1
},
- sec-mark .cs_set:Np = \__fancyhf_sec_mark:n #1,
+ sec-mark .cs_set:Np = \__eb_fancyhf_sec_mark:n #1,
sec-mark .initial:n =
{
\int_compare:nT {\c@secnumdepth > 0}
@@ -1175,7 +1173,7 @@ The latest version of this license is in
{
\group_begin:
\color{ctex@frame}\vspace*{1.5pt}
- \hrule width \textwidth height \l__rule_width_dim
+ \hrule width \textwidth height \l__eb_rule_width_dim
\group_end:
},
footrule .tl_gset:N = \footrule,
@@ -1185,59 +1183,59 @@ The latest version of this license is in
{
\group_begin:
\color{ctex@frame}
- \hrule width 0.35\columnwidth height \l__rule_width_dim
+ \hrule width 0.35\columnwidth height \l__eb_rule_width_dim
\vspace*{2.6pt}
\group_end:
}
}
-\cs_new_protected:Npn \__ifuppercase_chapmark_set:n #1
+\cs_new_protected:Npn \__eb_ifupper_chaptermark_set:n #1
{
- \bool_if:NTF \l__uppercase_bool
- {\text_uppercase:n {\__fancyhf_chap_mark:n {#1}}}
- {\text_titlecase_first:n {\__fancyhf_chap_mark:n {#1}}}
+ \bool_if:NTF \l__eb_uppercase_bool
+ {\text_uppercase:n {\__eb_fancyhf_chap_mark:n {#1}}}
+ {\text_titlecase_first:n {\__eb_fancyhf_chap_mark:n {#1}}}
}
\ctex_at_end_preamble:n
{
- \exp_args:NV \geometry\g__geometry_clist
+ \exp_args:NV \geometry\g__eb_geometry_clist
\pagestyle{fancy}
\fancyhf{}
- \bool_if:NTF \l__page_twoside_bool
+ \bool_if:NTF \l__eb_page_twoside_bool
{
\cs_gset:Npn \chaptermark#1
{
\markboth
- {\__ifuppercase_chapmark_set:n {#1}}
- {\__ifuppercase_chapmark_set:n {#1}}
+ {\__eb_ifupper_chaptermark_set:n {#1}}
+ {\__eb_ifupper_chaptermark_set:n {#1}}
}
- \l__fancyhf_content_tl
+ \l__eb_fancyhf_content_tl
\cs_gset_eq:NN \ps@plain\ps@empty
}{
\cs_gset:Npn \chaptermark#1
- {\markboth{\__ifuppercase_chapmark_set:n {#1}}{}}
- \l__fancyhf_content_tl
+ {\markboth{\__eb_ifupper_chaptermark_set:n {#1}}{}}
+ \l__eb_fancyhf_content_tl
\cs_gset_eq:NN \ps@plain\ps@empty
}
\cs_gset:Npn \sectionmark#1
{
\markright
{
- \bool_if:NTF \l__uppercase_bool
- {\text_uppercase:n {\__fancyhf_sec_mark:n {#1}}}
- {\text_titlecase_first:n {\__fancyhf_sec_mark:n {#1}}}
+ \bool_if:NTF \l__eb_uppercase_bool
+ {\text_uppercase:n {\__eb_fancyhf_sec_mark:n {#1}}}
+ {\text_titlecase_first:n {\__eb_fancyhf_sec_mark:n {#1}}}
}
}
- \bool_if:NT \l__draft_bool
+ \bool_if:NT \l__eb_draft_bool
{
- \bool_if:NTF \l__page_twoside_bool
+ \bool_if:NTF \l__eb_page_twoside_bool
{\easyfoot[C]{\color{gray!60}\sffamily\today}}
{\easyhead[L]{\color{gray!60}\sffamily\today}}
\geometry{showframe}
}
}
-\seq_const_from_clist:Nn \c__toc_headings_level_seq
+\seq_const_from_clist:Nn \c__eb_toc_headings_level_seq
{part,chapter,section,subsection,lists}
-\seq_map_inline:Nn \c__toc_headings_level_seq
+\seq_map_inline:Nn \c__eb_toc_headings_level_seq
{
\ctex_define:n {tocset/#1 .meta:nn = {ctex/tocset/#1}{##1}}
\__ctex_define:nn {tocset}
@@ -1249,26 +1247,26 @@ The latest version of this license is in
}
\__ctex_define:nn {tocset}
{
- lists/lolskip .skip_set:N = \l__toc_lolskip_skip,
+ lists/lolskip .skip_set:N = \l__eb_toc_lolskip_skip,
lists/lolskip .initial:n = 0.8pc,
- lists/belowoffset .dim_set:N = \l__toc_listsoffset_dim,
+ lists/belowoffset .dim_set:N = \l__eb_toc_listsoffset_dim,
lists/belowoffset .initial:n = 0pc,
- tocline-fig .cs_set:Np = \labelname@lof#1#2,
+ tocline-fig .cs_set:Np = \eb@labelname@lof#1#2,
tocline-fig .initial:n =
- {\figurename\space#1\hspace{\list@labelsep}#2},
- tocline-tab .cs_set:Np = \labelname@lot#1#2,
+ {\figurename\space#1\hspace{\eb@list@labelsep}#2},
+ tocline-tab .cs_set:Np = \eb@labelname@lot#1#2,
tocline-tab .initial:n =
- {\tablename\space#1\hspace{\list@labelsep}#2},
- tocline-lst .tl_set:N = \labelname@lol,
+ {\tablename\space#1\hspace{\eb@list@labelsep}#2},
+ tocline-lst .tl_set:N = \eb@labelname@lol,
tocline-lst .initial:n =
{
\lstlistingname\space
- \thelstlisting\hspace{\list@labelsep}
+ \thelstlisting\hspace{\eb@list@labelsep}
\lstcaption
},
- belowoffset .dim_set:N = \l__toc_offset_dim,
+ belowoffset .dim_set:N = \l__eb_toc_offset_dim,
belowoffset .initial:n = -1pc,
- line-align .bool_set:N = \l__toc_line_align_bool,
+ line-align .bool_set:N = \l__eb_toc_line_align_bool,
line-align .default:n = true,
line-align .initial:n = true
}
@@ -1302,11 +1300,11 @@ The latest version of this license is in
\IfBooleanTF{#1}
{\thecontentspage}
{
- \bool_if:NTF \l__toc_line_align_bool
+ \bool_if:NTF \l__eb_toc_line_align_bool
{\contentspage}{\thecontentspage}
}
}
-\cs_new_protected:Npn \__titlecontents_set:nn #1#2
+\cs_new_protected:Npn \__eb_titlecontents_set:nn #1#2
{
\titlecontents{#1}
[\use:c {l__toc_#2_indent_tl}]
@@ -1323,13 +1321,13 @@ The latest version of this license is in
{figure}{lists},
{table}{lists},
{lstlisting}{lists}
- }{\__titlecontents_set:nn #1}
+ }{\__eb_titlecontents_set:nn #1}
\prop_new:N \l_label_name_prop
\prop_set_from_keyval:Nn \l_label_name_prop
{
- figure = \labelname@lof,
- table = \labelname@lot
+ figure = \eb@labelname@lof,
+ table = \eb@labelname@lot
}
\cs_gset:Npn \caption@@@addcontentsline#1#2#3#4
{
@@ -1342,21 +1340,21 @@ The latest version of this license is in
{\protect\numberline{\thelstlisting}\lst@@caption}
}{
\let\lstcaption\lst@@caption
- \addcontentsline{lol}{lstlisting}{\labelname@lol}
+ \addcontentsline{lol}{lstlisting}{\eb@labelname@lol}
}
-\__appto_cmd:Nn \@chapter
+\__eb_appto_cmd:Nn \@chapter
{
- \skip_if_eq:nnF {\l__toc_lolskip_skip}{\c_zero_skip}
+ \skip_if_eq:nnF {\l__eb_toc_lolskip_skip}{\c_zero_skip}
{
\addtocontents{lol}
- {\protect\addvspace{\skip_use:N \l__toc_lolskip_skip}}
+ {\protect\addvspace{\skip_use:N \l__eb_toc_lolskip_skip}}
}
- \bool_if:NF \l__class_book_bool
+ \bool_if:NF \l__eb_class_book_bool
{\msg_error:nn {easybook}{no-chapter}}
}
-\__appto_cmd:Nn \@schapter
+\__eb_appto_cmd:Nn \@schapter
{
- \bool_if:NF \l__class_book_bool
+ \bool_if:NF \l__eb_class_book_bool
{\msg_error:nn {easybook}{no-chapter}}
}
\msg_new:nnn {easybook}{no-chapter}
@@ -1365,36 +1363,36 @@ The latest version of this license is in
The~\string\chapter\space~command~will~not~be~used.
}
-\cs_new_protected:Npn \__ifuppercase_set:n #1
+\cs_new_protected:Npn \__eb_ifuppercase_set:n #1
{
- \bool_if:NTF \l__uppercase_bool
+ \bool_if:NTF \l__eb_uppercase_bool
{\text_uppercase:n {#1}}
{\text_titlecase_first:n {#1}}
}
-\cs_new_protected:Npn \__markboth:n #1
+\cs_new_protected:Npn \__eb_markboth:n #1
{
- \bool_if:NTF \l__page_twoside_bool
+ \bool_if:NTF \l__eb_page_twoside_bool
{
\markboth
- {\__ifuppercase_set:n {#1}}
- {\__ifuppercase_set:n {#1}}
- }{\markboth{\__ifuppercase_set:n {#1}}{}}
+ {\__eb_ifuppercase_set:n {#1}}
+ {\__eb_ifuppercase_set:n {#1}}
+ }{\markboth{\__eb_ifuppercase_set:n {#1}}{}}
}
-\tl_set:Nn \l__toc_type_tl{book}
+\tl_set:Nn \l__eb_toc_type_tl{book}
\keys_define:nn {listoc}
{
- article .code:n = \tl_set:Nn \l__toc_type_tl{article},
+ article .code:n = \tl_set:Nn \l__eb_toc_type_tl{article},
book .code:n = {},
- multoc .bool_set:N = \l__multoc_bool,
+ multoc .bool_set:N = \l__eb_multoc_bool,
multoc .default:n = true,
multoc .initial:n = false,
- title .tl_set:N = \toc@title
+ title .tl_set:N = \eb@toc@title
}
-\cs_new_protected:Npn \__title_mark_intoc:n #1
+\cs_new_protected:Npn \__eb_title_mark_intoc:n #1
{
- \tl_if_eq:NnTF \l__toc_type_tl{book}
+ \tl_if_eq:NnTF \l__eb_toc_type_tl{book}
{
\chapter*{\phantomsection#1}
\CTEX@addtocline{chapter}{#1}
@@ -1402,94 +1400,94 @@ The latest version of this license is in
\section*{\phantomsection#1}
\CTEX@addtocline{section}{#1}
}
- \__markboth:n {#1}
+ \__eb_markboth:n {#1}
}
-\cs_new_protected:Npn \__title_mark:n #1
+\cs_new_protected:Npn \__eb_title_mark:n #1
{
- \tl_if_eq:NnTF \l__toc_type_tl{book}
+ \tl_if_eq:NnTF \l__eb_toc_type_tl{book}
{\chapter*{\phantomsection#1}}
{\section*{\phantomsection#1}}
- \__markboth:n {#1}
+ \__eb_markboth:n {#1}
}
-\cs_new_protected:Npn \__ifmultoc_pre_set:
+\cs_new_protected:Npn \__eb_ifmultoc_pre_set:
{
- \bool_if:NTF \l__class_book_bool
+ \bool_if:NTF \l__eb_class_book_bool
{
\if@twocolumn
\@restonecoltrue
- \bool_if:NTF \l__multoc_bool{\twocolumn}{\onecolumn}
+ \bool_if:NTF \l__eb_multoc_bool{\twocolumn}{\onecolumn}
\else
\@restonecolfalse
- \bool_if:NT \l__multoc_bool{\twocolumn}
+ \bool_if:NT \l__eb_multoc_bool{\twocolumn}
\fi
- }{\tl_set:Nn \l__toc_type_tl{article}}
+ }{\tl_set:Nn \l__eb_toc_type_tl{article}}
}
-\cs_new_protected:Npn \__ifmultoc_post_set:
+\cs_new_protected:Npn \__eb_ifmultoc_post_set:
{
- \bool_if:NTF \l__class_book_bool
+ \bool_if:NTF \l__eb_class_book_bool
{
\if@restonecol
\twocolumn
\else
\onecolumn
\fi
- }{\tl_set:Nn \l__toc_type_tl{article}}
+ }{\tl_set:Nn \l__eb_toc_type_tl{article}}
}
-\cs_new_protected:Npn \__title_ifintoc_set:n #1
+\cs_new_protected:Npn \__eb_title_ifintoc_set:n #1
{
\IfBooleanTF{#1}
- {\__title_mark:n {\toc@title}}
- {\__title_mark_intoc:n {\toc@title}}
+ {\__eb_title_mark:n {\eb@toc@title}}
+ {\__eb_title_mark_intoc:n {\eb@toc@title}}
}
\RenewDocumentCommand{\tableofcontents}{o}
{
\group_begin:
- \tl_set_eq:NN \toc@title\contentsname
+ \tl_set_eq:NN \eb@toc@title\contentsname
\IfValueT{#1}{\keys_set:nn {listoc}{#1}}
- \__ifmultoc_pre_set:
- \__title_mark:n {\toc@title}
- \vspace*{\dim_use:N \l__toc_offset_dim}
+ \__eb_ifmultoc_pre_set:
+ \__eb_title_mark:n {\eb@toc@title}
+ \vspace*{\dim_use:N \l__eb_toc_offset_dim}
\@starttoc{toc}
- \__ifmultoc_post_set:
+ \__eb_ifmultoc_post_set:
\group_end:
}
\RenewDocumentCommand{\listoffigures}{so}
{
\group_begin:
- \tl_set_eq:NN \toc@title\listfigurename
+ \tl_set_eq:NN \eb@toc@title\listfigurename
\IfValueT{#2}{\keys_set:nn {listoc}{#2}}
- \__ifmultoc_pre_set:
- \__title_ifintoc_set:n {#1}
- \dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
- \vspace*{\dim_use:N \l__toc_offset_dim}
+ \__eb_ifmultoc_pre_set:
+ \__eb_title_ifintoc_set:n {#1}
+ \dim_add:NV \l__eb_toc_offset_dim\l__eb_toc_listsoffset_dim
+ \vspace*{\dim_use:N \l__eb_toc_offset_dim}
\@starttoc{lof}
- \__ifmultoc_post_set:
+ \__eb_ifmultoc_post_set:
\group_end:
}
\RenewDocumentCommand{\listoftables}{so}
{
\group_begin:
- \tl_set_eq:NN \toc@title\listtablename
+ \tl_set_eq:NN \eb@toc@title\listtablename
\IfValueT{#2}{\keys_set:nn {listoc}{#2}}
- \__ifmultoc_pre_set:
- \__title_ifintoc_set:n {#1}
- \dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
- \vspace*{\dim_use:N \l__toc_offset_dim}
+ \__eb_ifmultoc_pre_set:
+ \__eb_title_ifintoc_set:n {#1}
+ \dim_add:NV \l__eb_toc_offset_dim\l__eb_toc_listsoffset_dim
+ \vspace*{\dim_use:N \l__eb_toc_offset_dim}
\@starttoc{lot}
- \__ifmultoc_post_set:
+ \__eb_ifmultoc_post_set:
\group_end:
}
\NewDocumentCommand{\listoflistings}{so}
{
\group_begin:
- \tl_set_eq:NN \toc@title\lstlistlistingname
+ \tl_set_eq:NN \eb@toc@title\lstlistlistingname
\IfValueT{#2}{\keys_set:nn {listoc}{#2}}
- \__ifmultoc_pre_set:
- \__title_ifintoc_set:n {#1}
- \dim_add:NV \l__toc_offset_dim\l__toc_listsoffset_dim
- \vspace*{\dim_use:N \l__toc_offset_dim}
+ \__eb_ifmultoc_pre_set:
+ \__eb_title_ifintoc_set:n {#1}
+ \dim_add:NV \l__eb_toc_offset_dim\l__eb_toc_listsoffset_dim
+ \vspace*{\dim_use:N \l__eb_toc_offset_dim}
\@starttoc{lol}
- \__ifmultoc_post_set:
+ \__eb_ifmultoc_post_set:
\group_end:
}
@@ -1502,28 +1500,28 @@ The latest version of this license is in
]
\indexsetup
{
- level = \bool_if:NTF \l__class_book_bool{\chapter*}{\section*},
- toclevel = \bool_if:NTF \l__class_book_bool{chapter}{section},
- firstpagestyle = \bool_if:NTF \l__class_book_bool{plain}{fancy}
+ level = \bool_if:NTF \l__eb_class_book_bool{\chapter*}{\section*},
+ toclevel = \bool_if:NTF \l__eb_class_book_bool{chapter}{section},
+ firstpagestyle = \bool_if:NTF \l__eb_class_book_bool{plain}{fancy}
}
-\__patch_cmd:Nnn \imki@indexheaders
+\__eb_patch_cmd:Nnn \imki@indexheaders
{\@mkboth{\MakeUppercase\indexname}{\MakeUppercase\indexname}}
- {\__markboth:n {\indexname}}
+ {\__eb_markboth:n {\indexname}}
-\tl_new:N \l__font_table_tl
-\tl_new:N \l__font_figure_tl
-\tl_new:N \l__font_listing_tl
-\tl_new:N \l__font_footnote_tl
+\tl_new:N \l__eb_font_table_tl
+\tl_new:N \l__eb_font_figure_tl
+\tl_new:N \l__eb_font_listing_tl
+\tl_new:N \l__eb_font_footnote_tl
\__ctex_define:nn {elsefont}
{
- table-cap .tl_set:N = \l__font_table_tl,
+ table-cap .tl_set:N = \l__eb_font_table_tl,
table-cap .initial:n = \sffamily\small,
- figure-cap .tl_set:N = \l__font_figure_tl,
+ figure-cap .tl_set:N = \l__eb_font_figure_tl,
figure-cap .initial:n = \sffamily\small,
- listing-cap .tl_set:N = \l__font_listing_tl,
+ listing-cap .tl_set:N = \l__eb_font_listing_tl,
listing-cap .initial:n = \sffamily\small,
- footnote .tl_set:N = \l__font_footnote_tl,
+ footnote .tl_set:N = \l__eb_font_footnote_tl,
footnote .initial:n = \rmfamily,
marginpar .tl_set:N = \marginfont,
marginpar .initial:n = \rmfamily\footnotesize
@@ -1531,27 +1529,27 @@ The latest version of this license is in
\DeclareCaptionLabelSeparator{ccwd}{\hspace{\ccwd}}
\DeclareCaptionLabelFormat{parens}{\bothIfFirst{#1}{~}(#2)}
-\DeclareCaptionFont{table@font}{\l__font_table_tl}
-\DeclareCaptionFont{figure@font}{\l__font_figure_tl}
-\DeclareCaptionFont{listing@font}{\l__font_listing_tl}
+\DeclareCaptionFont{eb@table@font}{\l__eb_font_table_tl}
+\DeclareCaptionFont{eb@figure@font}{\l__eb_font_figure_tl}
+\DeclareCaptionFont{eb@listing@font}{\l__eb_font_listing_tl}
\captionsetup
{
format = hang,
% figurewithin = section,
% tablewithin = section,
- font = {stretch = {\fp_use:N \l__spread_caption_fp}},
+ font = {stretch = {\fp_use:N \l__eb_spread_caption_fp}},
labelfont = {color = ctex@frame},
labelsep = ccwd,
singlelinecheck = true,
belowskip = 0pt,aboveskip = 10pt
}
-\captionsetup[table]{font += table@font}
-\captionsetup[figure]{font += figure@font}
-\captionsetup[lstlisting]{font += listing@font}
+\captionsetup[table]{font += eb@table@font}
+\captionsetup[figure]{font += eb@figure@font}
+\captionsetup[lstlisting]{font += eb@listing@font}
\captionsetup[subfigure]
{
labelformat = parens,
- font += figure@font,
+ font += eb@figure@font,
belowskip = 2pt,aboveskip = 6pt
}
\ctex_at_end_package:nn {bicaption}
@@ -1559,27 +1557,27 @@ The latest version of this license is in
\captionsetup[figure][bi-second]{name = Figure}
\captionsetup[table][bi-second]{name = Table}
}
-\cs_new:Npn \__arabic:n #1{\int_to_arabic:v {c@#1}}
-\cs_new_protected:Npn \__separator_set:n #1
+\cs_new:Npn \__eb_arabic:n #1{\int_to_arabic:v {c@#1}}
+\cs_new_protected:Npn \__eb_separator_set:n #1
{
\cs_set:cpn {the#1}
{
\int_compare:nT {\c@chapter > 0}
{
\thechapter
- \use:c {l__#1_separator_tl}
+ \use:c {l__eb_#1_separator_tl}
}
- \__arabic:n {#1}
+ \__eb_arabic:n {#1}
}
}
\cs_gset:cpn {thesection}
{
\int_compare:nT {\c@chapter > 0}{\thechapter.}
- \__arabic:n {section}
+ \__eb_arabic:n {section}
}
\clist_map_inline:nn
{figure,table,lstlisting,equation}
- {\__separator_set:n {#1}}
+ {\__eb_separator_set:n {#1}}
\cs_gset_protected:Npn \appendix
{
\int_compare:nNnTF {\c@chapter} > {0}
@@ -1604,37 +1602,37 @@ The latest version of this license is in
}
\AtBeginEnvironment{tabularx}
{
- \exp_args:Nx \linespread{\fp_use:N \l__spread_table_fp}
+ \exp_args:Nx \linespread{\fp_use:N \l__eb_spread_table_fp}
\selectfont\ignorespaces
}
\AtBeginEnvironment{tabular}
{
- \exp_args:Nx \linespread{\fp_use:N \l__spread_table_fp}
+ \exp_args:Nx \linespread{\fp_use:N \l__eb_spread_table_fp}
\selectfont\ignorespaces
}
\ctex_after_end_preamble:n
{
- \exp_args:Nx \linespread{\fp_use:N \l__spread_line_fp}
+ \exp_args:Nx \linespread{\fp_use:N \l__eb_spread_line_fp}
\selectfont\ignorespaces
}
-\fp_new:N \l__spread_line_fp
-\fp_new:N \l__spread_table_fp
-\fp_new:N \l__spread_math_fp
-\fp_new:N \l__spread_caption_fp
-\fp_new:N \l__spread_footnote_fp
+\fp_new:N \l__eb_spread_line_fp
+\fp_new:N \l__eb_spread_table_fp
+\fp_new:N \l__eb_spread_math_fp
+\fp_new:N \l__eb_spread_caption_fp
+\fp_new:N \l__eb_spread_footnote_fp
\__ctex_define:nn {spread}
{
- line .fp_set:N = \l__spread_line_fp,
+ line .fp_set:N = \l__eb_spread_line_fp,
line .initial:n = 1.3,
- table .fp_set:N = \l__spread_table_fp,
+ table .fp_set:N = \l__eb_spread_table_fp,
table .initial:n = 1.05,
- math .fp_set:N = \l__spread_math_fp,
+ math .fp_set:N = \l__eb_spread_math_fp,
math .initial:n = 1.05,
- caption .fp_set:N = \l__spread_caption_fp,
+ caption .fp_set:N = \l__eb_spread_caption_fp,
caption .initial:n = 1,
- footnote .fp_set:N = \l__spread_footnote_fp,
+ footnote .fp_set:N = \l__eb_spread_footnote_fp,
footnote .initial:n = 1
}
@@ -1658,32 +1656,39 @@ The latest version of this license is in
\graphicspath{{figures/}}
\DeclareGraphicsExtensions{.pdf,.png,.jpg,.eps,.tif}
+\cs_new_protected:Npn \__eb_enumitem_labelval_set:nn #1#2
+ {\SetEnumitemValue{label}{#1}{\color{ctex@emph}#2}}
+\clist_map_inline:nn
+ {
+ {bullet}{\textbullet},
+ {endash}{\normalfont\bfseries\textendash},
+ {asterisk}{\textasteriskcentered},
+ {arabic}{\arabic*.},
+ {alph}{(\alph*)},
+ {roman}{\roman*.},
+ {outline}{\upshape\ding{111}}
+ }{\__eb_enumitem_labelval_set:nn #1}
+\SetEnumitemValue{font}{sf}{\color{ctex@emph}\normalfont\sffamily}
\setlist
{
- labelsep = .75\ccwd,listparindent = 2\ccwd,
+ labelsep = .75\ccwd,listparindent = 2\ccwd,leftmargin = *,
itemsep = .75ex plus .1ex,topsep = .75ex plus .1ex,
partopsep = 0ex,parsep = 0ex
}
\newlist{outlinelist}{itemize}{1}
-\setlist[outlinelist]
- {
- label = \color{ctex@emph}\upshape\ding{111},
- itemsep = .5ex plus .1ex,leftmargin = *
- }
-\setlist[itemize,1]
- {label = \color{ctex@emph}\ensuremath{\bullet},leftmargin = *}
-\setlist[itemize,2]
- {label = \color{ctex@emph}\ensuremath{\circ},leftmargin = *}
-\setlist[enumerate,1]
- {label = \color{ctex@emph}\arabic*.,ref = \arabic*,leftmargin = *}
-\setlist[enumerate,2]
- {label = \color{ctex@emph}(\alph*),ref = \theenumi(\alph*),leftmargin = *}
-\setlist[description]
- {font = \color{ctex@emph}\sf,labelwidth = *,leftmargin = 2\ccwd}
+\setlist[outlinelist]{label = outline,itemsep = .5ex plus .1ex}
+\setlist[itemize,1]{label = bullet}
+\setlist[itemize,2]{label = endash}
+\setlist[itemize,3]{label = asterisk}
+\setlist[enumerate,1]{label = arabic,ref = \arabic*}
+\setlist[enumerate,2]{label = alph,ref = \arabic{enumi}.\alph*}
+\setlist[enumerate,3]{label = roman,ref = \arabic{enumi}.\alph{enumii}.\roman*}
+\setlist*[enumerate,3]{labelwidth = *}
+\setlist[description]{font = sf,labelwidth = *,leftmargin = 2\ccwd}
-\cs_new_protected:Npn \__thmname_set:nn #1#2
- {\tl_const:cn {c__name_#1_tl}{#2}}
-\bool_if:NTF \l__lang_chinese_bool
+\cs_new_protected:Npn \__eb_thmname_set:nn #1#2
+ {\tl_const:cn {c__eb_name_#1_tl}{#2}}
+\tl_if_eq:VnTF \l__ctex_scheme_tl{chinese}
{
\clist_map_inline:nn
{
@@ -1695,7 +1700,7 @@ The latest version of this license is in
{corollary}{推论},
{remark}{注},
{exercise}{练习}
- }{\__thmname_set:nn #1}
+ }{\__eb_thmname_set:nn #1}
}{
\clist_map_inline:nn
{
@@ -1707,59 +1712,64 @@ The latest version of this license is in
{corollary}{Corollary},
{remark}{Remark},
{exercise}{Exercise}
- }{\__thmname_set:nn #1}
+ }{\__eb_thmname_set:nn #1}
}
-\bool_new:N \l__thmbox_bool
-\tl_new:N \l__thm_numberwith_tl
-\tl_new:N \l__thm_headpunct_tl
-\tl_new:N \l__thm_bodyfont_tl
-\tl_new:N \l__thm_notefont_tl
-\tl_new:N \l__thm_headindent_tl
-\tl_new:N \l__thm_spaceabove_tl
-\tl_new:N \l__thm_spacebelow_tl
+\bool_new:N \l__eb_thmbox_bool
+\tl_new:N \l__eb_thm_numberwith_tl
+\tl_new:N \l__eb_thm_headpunct_tl
+\tl_new:N \l__eb_thm_bodyfont_tl
+\tl_new:N \l__eb_thm_notefont_tl
+\tl_new:N \l__eb_thm_headindent_tl
+\tl_new:N \l__eb_thm_spaceabove_tl
+\tl_new:N \l__eb_thm_spacebelow_tl
\RenewDocumentCommand{\newtheorem}{O{}m}
{\AfterPreamble{\declaretheorem[#1]{#2}}}
\__ctex_define:nn {thmset}
{
- thmbox .bool_set:N = \l__thmbox_bool,
+ thmbox .bool_set:N = \l__eb_thmbox_bool,
thmbox .default:n = true,
thmbox .initial:n = false,
- within .tl_set:N = \l__thm_numberwith_tl,
+ within .tl_set:N = \l__eb_thm_numberwith_tl,
within .initial:n = chapter,
- bodyfont .tl_set:N = \l__thm_bodyfont_tl,
+ bodyfont .tl_set:N = \l__eb_thm_bodyfont_tl,
bodyfont .initial:n = {},
- notefont .tl_set:N = \l__thm_notefont_tl,
+ notefont .tl_set:N = \l__eb_thm_notefont_tl,
notefont .initial:n = {},
- headfont .tl_set:N = \l__thm_headfont_tl,
+ headfont .tl_set:N = \l__eb_thm_headfont_tl,
headfont .initial:n = \color{ctex@emph}\sffamily,
- headpunct .tl_set:N = \l__thm_headpunct_tl,
+ headpunct .tl_set:N = \l__eb_thm_headpunct_tl,
headpunct .initial:n = {},
- spacepost .tl_set:N = \l__thm_spacepost_tl,
+ spacepost .tl_set:N = \l__eb_thm_spacepost_tl,
spacepost .initial:n = \ccwd,
- headindent .tl_set:N = \l__thm_headindent_tl,
+ headindent .tl_set:N = \l__eb_thm_headindent_tl,
headindent .initial:n = 0\ccwd,
- spaceabove .tl_set:N = \l__thm_spaceabove_tl,
+ spaceabove .tl_set:N = \l__eb_thm_spaceabove_tl,
spaceabove .initial:n = .75ex plus .1ex,
- spacebelow .tl_set:N = \l__thm_spacebelow_tl,
+ spacebelow .tl_set:N = \l__eb_thm_spacebelow_tl,
spacebelow .initial:n = .75ex plus .1ex
}
-\ctex_at_end_preamble:n
+\tl_const:Nn \c__eb_thmtools_keyval_tl
{
- \declaretheoremstyle[
- spaceabove = \l__thm_spaceabove_tl,
- spacebelow = \l__thm_spacebelow_tl,
- headindent = \l__thm_headindent_tl,
- headfont = \l__thm_headfont_tl,
- notefont = \l__thm_notefont_tl,
+ [
+ spaceabove = \l__eb_thm_spaceabove_tl,
+ spacebelow = \l__eb_thm_spacebelow_tl,
+ headindent = \l__eb_thm_headindent_tl,
+ headfont = \l__eb_thm_headfont_tl,
+ notefont = \l__eb_thm_notefont_tl,
notebraces = {}{},
- bodyfont = \l__thm_bodyfont_tl,
- headpunct = \l__thm_headpunct_tl,
- postheadspace = \l__thm_spacepost_tl,
- within = \l__thm_numberwith_tl,
+ bodyfont = \l__eb_thm_bodyfont_tl,
+ headpunct = \l__eb_thm_headpunct_tl,
+ postheadspace = \l__eb_thm_spacepost_tl,
+ within = \l__eb_thm_numberwith_tl,
headformat = \NAME\space\NUMBER\NOTE
- ]{easy-thm-sty}
+ ]
+ }
+\ctex_at_end_preamble:n
+ {
+ \exp_args:NNc \exp_after:wN
+ \declaretheoremstyle{c__eb_thmtools_keyval_tl}{easy-thm-sty}
\clist_map_inline:nn
{
example,definition,theorem,
@@ -1767,13 +1777,13 @@ The latest version of this license is in
}{
\declaretheorem[
style = easy-thm-sty,
- name = \use:c {c__name_#1_tl}
+ name = \use:c {c__eb_name_#1_tl}
]{#1}
}
\cs_gset_eq:NN \proof\relax
\declaretheorem[
style = easy-thm-sty,
- name = \c__name_remark_tl,
+ name = \c__eb_name_remark_tl,
numbered = no
]{remark}
\declaretheorem[
@@ -1814,10 +1824,10 @@ The latest version of this license is in
\allowdisplaybreaks[4]
\cs_gset:Npn \ULthickness{.75pt}
\skip_set:Nn \jot{4pt plus 1pt minus 1pt}
-\cs_new_protected:Npn \l__math_restore:n #1
+\cs_new_protected:Npn \l__eb_math_restore:n #1
{
\AtBeginEnvironment{#1}
- {\linespread{\fp_use:N \l__spread_math_fp}\selectfont\ignorespaces}
+ {\linespread{\fp_use:N \l__eb_spread_math_fp}\selectfont\ignorespaces}
}
\clist_map_inline:nn
{
@@ -1825,19 +1835,19 @@ The latest version of this license is in
matrix*,pmatrix*,bmatrix*,Bmatrix*,vmatrix*,Vmatrix*,
cases,cases*,dcases,dcases*,rcases,rcases*,drcases,drcases*,
aligned,alignedat,gathered,multlined,lgathered,rgathered
- }{\l__math_restore:n {#1}}
-\__patch_cmd:Nnn \start@gather
+ }{\l__eb_math_restore:n {#1}}
+\__eb_patch_cmd:Nnn \start@gather
{\collect@body}
- {\linespread{\fp_use:N \l__spread_math_fp}\selectfont\collect@body}
-\__patch_cmd:Nnn \start@align
+ {\linespread{\fp_use:N \l__eb_spread_math_fp}\selectfont\collect@body}
+\__eb_patch_cmd:Nnn \start@align
{\collect@body}
- {\linespread{\fp_use:N \l__spread_math_fp}\selectfont\collect@body}
-\__patch_cmd:Nnn \start@multline
+ {\linespread{\fp_use:N \l__eb_spread_math_fp}\selectfont\collect@body}
+\__eb_patch_cmd:Nnn \start@multline
{\collect@body}
- {\linespread{\fp_use:N \l__spread_math_fp}\selectfont\collect@body}
-\__patch_cmd:Nnn \gather@split
+ {\linespread{\fp_use:N \l__eb_spread_math_fp}\selectfont\collect@body}
+\__eb_patch_cmd:Nnn \gather@split
{\spread@equation}
- {\linespread{\fp_use:N \l__spread_math_fp}\selectfont\spread@equation}
+ {\linespread{\fp_use:N \l__eb_spread_math_fp}\selectfont\spread@equation}
\ctex_after_end_preamble:n
{
\skip_set:Nn \abovedisplayskip{5pt plus 1pt minus 1pt}
@@ -1852,7 +1862,7 @@ The latest version of this license is in
\ctex_at_end_package:nn {tcolorbox}
{
- \__ifpackage_later:nn {tcolorbox}{2020/10/09}
+ \__eb_ifpackage_later:nn {tcolorbox}{2020/10/09}
\tcbset
{
thmsty/.style =
@@ -1887,7 +1897,7 @@ The latest version of this license is in
before~skip = 4ex,after~skip = 2.25ex
},
breakable,
- boxrule = \l__rule_width_dim
+ boxrule = \l__eb_rule_width_dim
}
\NewDocumentEnvironment{outline}{D(){\abstractname}o+b}
{
@@ -1898,10 +1908,10 @@ The latest version of this license is in
\end{tcolorbox}
}{}
\NewDocumentEnvironment{exercise}
- {sO{LightYellow}O{1.}D(){\c__name_exercise_tl}o+b}
+ {sO{LightYellow}O{1.}D(){\c__eb_name_exercise_tl}o+b}
{
\begin{center}
- \bool_if:NTF \l__thmbox_bool
+ \bool_if:NTF \l__eb_thmbox_bool
{
\tcbox[
exersty,
@@ -1962,7 +1972,7 @@ The latest version of this license is in
}
\ctex_at_end_preamble:n
{
- \bool_if:NT \l__thmbox_bool
+ \bool_if:NT \l__eb_thmbox_bool
{
\@ifpackageloaded{tcolorbox}
{
@@ -1976,101 +1986,101 @@ The latest version of this license is in
}
}
-\bool_set_true:N \l__backend_bibtex_bool
-\tl_new:N \l__bib_style_tl
-\tl_new:N \l__bib_otherstyle_tl
-\tl_new:N \l__bib_citestyle_tl
-\tl_new:N \l__bib_file_tl
+\bool_set_true:N \l__eb_backend_bibtex_bool
+\tl_new:N \l__eb_bib_style_tl
+\tl_new:N \l__eb_bib_otherstyle_tl
+\tl_new:N \l__eb_bib_citestyle_tl
+\tl_new:N \l__eb_bib_file_tl
\__ctex_define:nn {bibset}
{
backend .choice:,
backend/bibtex .code:n = {},
backend/biblatex .code:n =
- {\bool_set_false:N \l__backend_bibtex_bool},
+ {\bool_set_false:N \l__eb_backend_bibtex_bool},
bib-style .choice:,
bib-style .value_required:n = true,
bib-style/numerical .code:n =
{
- \tl_set:Nn \l__bib_style_tl{#1}
- \tl_clear:N \l__bib_otherstyle_tl
+ \tl_set:Nn \l__eb_bib_style_tl{#1}
+ \tl_clear:N \l__eb_bib_otherstyle_tl
},
bib-style/authoryear .code:n =
{
- \tl_set:Nn \l__bib_style_tl{#1}
- \tl_clear:N \l__bib_otherstyle_tl
+ \tl_set:Nn \l__eb_bib_style_tl{#1}
+ \tl_clear:N \l__eb_bib_otherstyle_tl
},
bib-style/unknown .code:n =
- {\tl_set_eq:NN \l__bib_otherstyle_tl\l_keys_value_tl},
+ {\tl_set_eq:NN \l__eb_bib_otherstyle_tl\l_keys_value_tl},
bib-style .initial:n = numerical,
cite-style .code:n =
- {\tl_set:Nn \l__bib_citestyle_tl{#1}},
- bibfile .tl_set:N = \l__bib_file_tl,
+ {\tl_set:Nn \l__eb_bib_citestyle_tl{#1}},
+ bibfile .tl_set:N = \l__eb_bib_file_tl,
bibfile .initial:n = refs.bib
}
-\cs_new_protected:Npn \__bibtex_set:
+\cs_new_protected:Npn \__eb_bibtex_set:
{
- \tl_if_empty:NTF \l__bib_otherstyle_tl
+ \tl_if_empty:NTF \l__eb_bib_otherstyle_tl
{
- \tl_if_eq:VnT \l__bib_style_tl{numerical}
+ \tl_if_eq:VnT \l__eb_bib_style_tl{numerical}
{
\bibliographystyle{gbt7714-numerical}
\setcitestyle{comma,square,super}
}
- \tl_if_eq:VnT \l__bib_style_tl{authoryear}
+ \tl_if_eq:VnT \l__eb_bib_style_tl{authoryear}
{\bibliographystyle{gbt7714-author-year}}
\cs_set_eq:NN \cite\citep
- }{\exp_args:NV \bibliographystyle\l__bib_otherstyle_tl}
- \tl_if_empty:NF \l__bib_citestyle_tl
- {\exp_args:NV \setcitestyle\l__bib_citestyle_tl}
+ }{\exp_args:NV \bibliographystyle\l__eb_bib_otherstyle_tl}
+ \tl_if_empty:NF \l__eb_bib_citestyle_tl
+ {\exp_args:NV \setcitestyle\l__eb_bib_citestyle_tl}
\skip_set:Nn \bibsep{0ex}
\NewDocumentCommand{\printbibliography}{so}
{
\group_begin:
- \tl_set_eq:NN \toc@title\bibname
+ \tl_set_eq:NN \eb@toc@title\bibname
\IfValueT{##2}{\keys_set:nn {listoc}{##2}}
- \__ifmultoc_pre_set:
- \cs_set:Npn \bibsection{\__title_ifintoc_set:n {##1}}
- \exp_args:NV \bibliography\l__bib_file_tl
- \__ifmultoc_post_set:
+ \__eb_ifmultoc_pre_set:
+ \cs_set:Npn \bibsection{\__eb_title_ifintoc_set:n {##1}}
+ \exp_args:NV \bibliography\l__eb_bib_file_tl
+ \__eb_ifmultoc_post_set:
\group_end:
}
}
-\cs_new_protected:Npn \__put_biblatex:n #1
+\cs_new_protected:Npn \__eb_put_biblatex:n #1
{\PassOptionsToPackage{#1}{biblatex}}
-\cs_new_protected:Npn \__biblatex_pre_set:
+\cs_new_protected:Npn \__eb_biblatex_pre_set:
{
- \tl_if_empty:NTF \l__bib_otherstyle_tl
+ \tl_if_empty:NTF \l__eb_bib_otherstyle_tl
{
- \tl_if_eq:VnT \l__bib_style_tl{numerical}
- {\__put_biblatex:n {style = gb7714-2015}}
- \tl_if_eq:VnT \l__bib_style_tl{authoryear}
- {\__put_biblatex:n {style = gb7714-2015ay}}
- }{\__put_biblatex:n {style = \l__bib_otherstyle_tl}}
- \tl_if_empty:NF \l__bib_citestyle_tl
- {\__put_biblatex:n {citestyle = \l__bib_citestyle_tl}}
- \__put_biblatex:n {backend = biber}
- }
-\cs_new_protected:Npn \__biblatex_post_set:
- {
- \exp_args:NV \addbibresource\l__bib_file_tl
+ \tl_if_eq:VnT \l__eb_bib_style_tl{numerical}
+ {\__eb_put_biblatex:n {style = gb7714-2015}}
+ \tl_if_eq:VnT \l__eb_bib_style_tl{authoryear}
+ {\__eb_put_biblatex:n {style = gb7714-2015ay}}
+ }{\__eb_put_biblatex:n {style = \l__eb_bib_otherstyle_tl}}
+ \tl_if_empty:NF \l__eb_bib_citestyle_tl
+ {\__eb_put_biblatex:n {citestyle = \l__eb_bib_citestyle_tl}}
+ \__eb_put_biblatex:n {backend = biber}
+ }
+\cs_new_protected:Npn \__eb_biblatex_post_set:
+ {
+ \exp_args:NV \addbibresource\l__eb_bib_file_tl
\cs_gset:Npn \blx@default@theheading{bibintoc}
- \defbibheading{bibintoc}[\bibname]{\__title_mark_intoc:n {##1}}
+ \defbibheading{bibintoc}[\bibname]{\__eb_title_mark_intoc:n {##1}}
\skip_set:Nn \bibitemsep{0ex}
}
\ctex_at_end_preamble:n
{
- \bool_if:NTF \l__backend_bibtex_bool
+ \bool_if:NTF \l__eb_backend_bibtex_bool
{
\RequirePackage[sort&compress]{natbib}
- \__bibtex_set:
+ \__eb_bibtex_set:
}{
- \__biblatex_pre_set:
+ \__eb_biblatex_pre_set:
\RequirePackage{biblatex}
- \__biblatex_post_set:
+ \__eb_biblatex_post_set:
}
}
@@ -2078,30 +2088,30 @@ The latest version of this license is in
{
\group_begin:
\footnotesize
- \exp_args:Nx \linespread{\fp_use:N \l__spread_footnote_fp}\selectfont
+ \exp_args:Nx \linespread{\fp_use:N \l__eb_spread_footnote_fp}\selectfont
\skip_gset:Nn \footnotesep{\ht\strutbox}
\group_end:
- \bool_if:NT \l__chap_withpart_bool
+ \bool_if:NT \l__eb_chap_withpart_bool
{\counterwithin*{chapter}{part}}
- \tl_if_eq:NnT \l__foot_numberwith_tl{part}
+ \tl_if_eq:NnT \l__eb_foot_numberwith_tl{part}
{
\counterwithout*{footnote}{chapter}
\counterwithin*{footnote}{part}
}
- \tl_if_eq:NnT \l__foot_numberwith_tl{page}
+ \tl_if_eq:NnT \l__eb_foot_numberwith_tl{page}
{
\counterwithout*{footnote}{chapter}
\counterwithin*{footnote}{page}
}
}
-\__patch_cmd:Nnn \@footnotetext
+\__eb_patch_cmd:Nnn \@footnotetext
{\reset@font}
- {\def\baselinestretch{\fp_use:N \l__spread_footnote_fp}\l__font_footnote_tl}
-\__patch_cmd:Nnn \@mpfootnotetext
+ {\def\baselinestretch{\fp_use:N \l__eb_spread_footnote_fp}\l__eb_font_footnote_tl}
+\__eb_patch_cmd:Nnn \@mpfootnotetext
{\reset@font}
- {\def\baselinestretch{\fp_use:N \l__spread_footnote_fp}\l__font_footnote_tl}
-\__patch_cmd:Nnn \@makefnmark
- {\normalfont}{\l__font_footnote_tl}
+ {\def\baselinestretch{\fp_use:N \l__eb_spread_footnote_fp}\l__eb_font_footnote_tl}
+\__eb_patch_cmd:Nnn \@makefnmark
+ {\normalfont}{\l__eb_font_footnote_tl}
\lstdefinestyle{mystyle}
{
@@ -2158,27 +2168,27 @@ The latest version of this license is in
aboveskip = 1.5ex plus .2ex minus .1ex,
belowskip = 0.55ex plus .2ex minus .1ex,
keepspaces = true,
- framerule = \l__rule_width_dim,
+ framerule = \l__eb_rule_width_dim,
columns = flexible
}
\lstloadlanguages{C,C++,Java,Python,Matlab}
-\clist_new:N \l__hyperref_clist
-\cs_new_protected:Npn \__put_hyperref:n #1
- {\clist_put_right:Nn \l__hyperref_clist{#1}}
-\cs_new_protected:Npn \__define_linkcolor:nnn #1#2#3
+\clist_new:N \l__eb_hyperref_clist
+\cs_new_protected:Npn \__eb_put_hyperref:n #1
+ {\clist_put_right:Nn \l__eb_hyperref_clist{#1}}
+\cs_new_protected:Npn \__eb_define_linkcolor:nnn #1#2#3
{\definecolorset{HTML}{ctex@}{}{link,#1;url,#2;cite,#3}}
-\cs_new_protected:Npn \__define_themecolor:nnn #1#2#3
+\cs_new_protected:Npn \__eb_define_themecolor:nnn #1#2#3
{\definecolorset{HTML}{ctex@}{}{frame,#1;emph,#2;verb,#3}}
-\cs_new:Npn \__linkcolor_set:n #1
+\cs_new:Npn \__eb_linkcolor_set:n #1
{
linkcolor/\clist_item:nn {#1}{1} .code:n =
{
- \__define_linkcolor:nnn
+ \__eb_define_linkcolor:nnn
{\clist_item:nn {#1}{2}}
{\clist_item:nn {#1}{3}}
{\clist_item:nn {#1}{4}}
- \__put_hyperref:n
+ \__eb_put_hyperref:n
{
linkcolor = ctex@link,linkbordercolor = ctex@link,
urlcolor = ctex@url,urlbordercolor = ctex@url,
@@ -2186,33 +2196,33 @@ The latest version of this license is in
}
},
}
-\cs_new:Npn \__themecolor_set:n #1
+\cs_new:Npn \__eb_themecolor_set:n #1
{
color/\clist_item:nn {#1}{1} .code:n =
{
- \__define_themecolor:nnn
+ \__eb_define_themecolor:nnn
{\clist_item:nn {#1}{2}}
{\clist_item:nn {#1}{3}}
{\clist_item:nn {#1}{4}}
},
}
-\cs_new:Npn \__allow_urlbreak:
+\cs_new:Npn \__eb_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:}
+ \cs_new:Npn \__eb_add_urlbreak_points:
+ {\tl_map_function:NN \c__eb_urlbreak_points_tl\do}
+ \__eb_appto_cmd:Nn
+ \UrlBreaks{\UrlOrds\__eb_add_urlbreak_points:}
}
-\tl_const:Nn \c__urlbreak_points_tl
+\tl_const:Nn \c__eb_urlbreak_points_tl
{ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789}
\keys_define:nx {ctex/link}
{
hyperlink .choice:,
hyperlink/edge .code:n = {},
- hyperlink/various .code:n = \__put_hyperref:n {colorlinks},
- hyperlink/none .code:n = \__put_hyperref:n {hidelinks},
+ hyperlink/various .code:n = \__eb_put_hyperref:n {colorlinks},
+ hyperlink/none .code:n = \__eb_put_hyperref:n {hidelinks},
hyperlink .default:n = edge,
hyperlink .initial:n = edge,
@@ -2224,17 +2234,17 @@ The latest version of this license is in
{skyblue, 0000ff,004986,eb6877},
{crimson, dc143c,00c1c9,afcd20}
}
- \__linkcolor_set:n
+ \__eb_linkcolor_set:n
linkcolor .default:n = fresh,
linkcolor .initial:n = fresh,
linktoc .choice:,
- linktoc/unknown .code:n = \__put_hyperref:n {linktoc = \exp_not:n {#1}},
+ linktoc/unknown .code:n = \__eb_put_hyperref:n {linktoc = \exp_not:n {#1}},
linktoc .default:n = all,
linktoc .initial:n = all,
unknown .code:n =
{
- \__put_hyperref:x
+ \__eb_put_hyperref:x
{
\exp_not:N \l_keys_key_str
\exp_not:N \tl_if_empty:NF
@@ -2253,7 +2263,7 @@ The latest version of this license is in
{energy, f39800,00a0e9,893895},
{cyberpunk, 601986,eb6877,a4005b}
}
- \__themecolor_set:n
+ \__eb_themecolor_set:n
color .initial:n = none
}
@@ -2261,10 +2271,10 @@ The latest version of this license is in
{
\RequirePackage{hyperref,cleveref}
\urlstyle{same}
- \__allow_urlbreak:
+ \__eb_allow_urlbreak:
\ctex_hypersetup:n {pdfstartview = FitH}
- \exp_args:NV \hypersetup\l__hyperref_clist
- \bool_if:NTF \l__lang_chinese_bool
+ \exp_args:NV \hypersetup\l__eb_hyperref_clist
+ \tl_if_eq:VnTF \l__ctex_scheme_tl{chinese}
{
\keys_set_known:nn {ctex}
{
@@ -2324,25 +2334,25 @@ The latest version of this license is in
{
pagestyle = empty,
number =
- {\bool_if:NTF \l__zhtitle_bool{\chinese{part}}{\thepart}},
+ {\bool_if:NTF \l__eb_zhtitle_bool{\chinese{part}}{\thepart}},
format = \color{ctex@frame}\sffamily\Huge,
aftername =
- {\bool_if:NTF \l__newline_bool{\par\nobreak}{\hspace{\ccwd}}},
+ {\bool_if:NTF \l__eb_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}},
+ {\bool_if:NTF \l__eb_zhtitle_bool{\chinese{chapter}}{\thechapter}},
format =
{
\color{ctex@frame}\sffamily\LARGE
- \bool_if:NF \l__newline_bool{\centering}
+ \bool_if:NF \l__eb_newline_bool{\centering}
},
aftername =
{
- \bool_if:NTF \l__newline_bool
+ \bool_if:NTF \l__eb_newline_bool
{\par\nobreak\vskip 1.5pc}{\hspace{\ccwd}}
},
beforeskip = -1.5ex,
@@ -2379,7 +2389,7 @@ The latest version of this license is in
}
}
-\bool_if:NF \l__newline_bool
+\bool_if:NF \l__eb_newline_bool
{
\ctex_set:n
{
diff --git a/macros/latex/required/babel/base/README.md b/macros/latex/required/babel/base/README.md
index 723cf41d82..6d8f47c18c 100644
--- a/macros/latex/required/babel/base/README.md
+++ b/macros/latex/required/babel/base/README.md
@@ -1,4 +1,4 @@
-## Babel 3.56
+## Babel 3.57
This package manages culturally-determined typographical (and other)
rules, and hyphenation patterns for a wide range of languages. Many
@@ -8,9 +8,9 @@ is a set of ini files for about 250 languages.
The latest stable version is available on <https://ctan.org/pkg/babel>.
-Changes in version 3.56 are described in:
+Changes in version 3.57 are described in:
-https://github.com/latex3/babel/blob/master/news-guides/news/whats-new-in-babel-3.56.md
+https://github.com/latex3/babel/blob/master/news-guides/news/whats-new-in-babel-3.57.md
Apart from the manual, you can find information on some aspects of babel at:
@@ -46,16 +46,16 @@ respective authors.
### Summary of Latest changes
```
-3.56 2021-03-24
- * Transforms (\babelprehyphenation, \babelposthyphenation)
- - Key 'space', in em units.
- - Key 'spacefactor', based on the current word separation.
- - Multiple 'insert's allowed.
- - Definable in 'ini' files.
- - Arbitrary characters in pattern.
- * Fixes:
- - 'insert' and 'data' didn't always set/get the expected node.
- - Hyphen was not shown in Marathi (#123)
+3.57 2021-04-07
+ * Predefined transforms (lua):
+ - Arabic: transliteration.dad
+ - Croatian: digraphs.ligatures
+ - Greek: diaeresis.hyphen
+ - Hindi: transliteration.hk
+ - Hungarian: digraphs.hyphen
+ * Transforms: {xxxx} syntax also in string=.
+ * Preliminary code for Uyghur hyphenation (lua).
+ * magyar as alternative to hungarian in \babelprovide.
```
### Previous changes
diff --git a/macros/latex/required/babel/base/babel.dtx b/macros/latex/required/babel/base/babel.dtx
index 9c8ff775c0..b21384f6a0 100644
--- a/macros/latex/required/babel/base/babel.dtx
+++ b/macros/latex/required/babel/base/babel.dtx
@@ -31,7 +31,7 @@
%
% \iffalse
%<*filedriver>
-\ProvidesFile{babel.dtx}[2021/03/24 v3.56 The Babel package]
+\ProvidesFile{babel.dtx}[2021/04/07 v3.57 The Babel package]
\documentclass{ltxdoc}
\GetFileInfo{babel.dtx}
\usepackage{fontspec}
@@ -3017,8 +3017,55 @@ spacing conventions and so on.\footnote{They are similar in concept,
but not the same, as those in Unicode.}
It currently embraces |\babelprehyphenation| and
-|\babelposthyphenation|, which have been available for several months.
-\New{3.56} In this version they can be defined in |ini| files, too.
+|\babelposthyphenation|.
+
+\New{3.57} Several \textsf{ini} files predefine some transforms. They
+are activated with the key |transforms| in |\babelprovide|, either if
+the locale is being defined with this macro or the languages has been
+previouly loaded as a class or package option, as the following example
+illustrates:
+\begin{verbatim}
+ \usepackage[magyar]{babel}
+ \babelprovide[_transforms = digraphs.hyphen_]{magyar}
+\end{verbatim}
+
+Here are the transforms currently predefined. (More to follow
+in future releases.)
+
+\begingroup
+\def\trans#1#2#3{%
+ \vspace{1mm}%
+ \parbox[t]{2.4cm}{\strut#1}%
+ \parbox[t]{4.2cm}{\strut\ttfamily#2}%
+ \parbox[t]{6.6cm}{\strut#3}\par}
+\bigskip\hrule\nobreak\vspace{1mm}
+% \strut\hfil Transforms
+% \medskip\hrule\nobreak
+
+\trans{Arabic}{transliteration.dad}{Applies the transliteration system
+devised by Yannis Haralambous for \textsf{dad} (simple and
+\TeX-friendly). Not yet complete, but sufficient for most texts.}
+
+\trans{Croatian}{digraphs.ligatures}{Ligatures \textit{DŽ}, \textit{Dž},
+\textit{dž}, \textit{LJ}, \textit{Lj}, \textit{lj}, \textit{NJ},
+\textit{Nj}, \textit{nj}. It assumes they exist. This is not the
+recommended way to make these transformations (the best way is with
+OTF features), but it can get you out of a hurry.}
+
+\trans{Greek}{diaeresis.hyphen}{Removes the diaeresis above iota and
+upsilon if hyphenated just before. It works with the
+three variants.}
+
+\trans{Hindi}{transliteration.hk}{The Harvard-Kyoto system to romanize
+Devanagari.}
+
+\trans{Hungarian}{digraphs.hyphen}{Hyphenates the long digraphs
+\textit{ccs}, \textit{ddz}, \textit{ggy}, \textit{lly}, \textit{nny},
+\textit{ssz}, \textit{tty} and \textit{zzs} as \textit{cs-cs},
+\textit{dz-dz}, etc.}
+
+\vspace{2mm}\hrule\nobreak
+\endgroup
\Describe{\babelposthyphenation}{\marg{hyphenrules-name}%
\marg{lua-pattern}\marg{replacement}}
@@ -3062,10 +3109,11 @@ future implementation may alternatively accept \textsf{lpeg}.
\marg{lua-pattern}\marg{replacement}}
\New{3.44-3-52} It is similar to the latter, but (as its name implies)
-applied before hyphenation. There are other differences: (1) the first
-argument is the locale instead the name of hyphenation patterns; (2) in
-the search patterns |=| has no special meaning, while \verb+|+ stands
-for an ordinary space; (3) in the replacement, discretionaries are not
+applied before hyphenation, which is particularly useful in
+transliterations. There are other differences: (1) the first argument
+is the locale instead of the name of the hyphenation patterns; (2) in the
+search patterns |=| has no special meaning, while \verb+|+ stands for
+an ordinary space; (3) in the replacement, discretionaries are not
accepted.
It handles glyphs and spaces.
@@ -3092,9 +3140,9 @@ This feature is activated with the first |\babelposthyphenation| or
end of a line:
\begin{verbatim}
\babelprehyphenation{english}{|a|}
- {}, {}, % Keep first space and a
- {insert, penalty = 10000}, % Insert penalty
- {} % Keep last space
+ {}, {}, % Keep first space and a
+ { insert, penalty = 10000 }, % Insert penalty
+ {} % Keep last space
}
\end{verbatim}
\end{example}
@@ -4862,8 +4910,8 @@ help from Bernd Raichle, for which I am grateful.
% \section{Tools}
%
% \begin{macrocode}
-%<<version=3.56>>
-%<<date=2021/03/24>>
+%<<version=3.57>>
+%<<date=2021/04/07>>
% \end{macrocode}
%
% \textbf{Do not use the following macros in \texttt{ldf} files. They
@@ -10671,6 +10719,7 @@ help from Bernd Raichle, for which I am grateful.
\let\bbl@KVP@intrapenalty\@nil
\let\bbl@KVP@onchar\@nil
\let\bbl@KVP@transforms\@nil
+ \global\let\bbl@release@transforms\@empty
\let\bbl@KVP@alph\@nil
\let\bbl@KVP@Alph\@nil
\let\bbl@KVP@labels\@nil
@@ -10792,7 +10841,7 @@ help from Bernd Raichle, for which I am grateful.
Babel.loc_to_scr[\the\localeid] =
Babel.script_blocks['\bbl@cl{sbcp}']
end}%
- \ifx\bbl@mapselect\@undefined
+ \ifx\bbl@mapselect\@undefined % TODO. almost the same as mapfont
\AtBeginDocument{%
\expandafter\bbl@add\csname selectfont \endcsname{{\bbl@mapselect}}%
{\selectfont}}%
@@ -10820,7 +10869,7 @@ help from Bernd Raichle, for which I am grateful.
{See the manual for details.}}}%
\bbl@ifunset{bbl@lsys@\languagename}{\bbl@provide@lsys{\languagename}}{}%
\bbl@ifunset{bbl@wdir@\languagename}{\bbl@provide@dirs{\languagename}}{}%
- \ifx\bbl@mapselect\@undefined
+ \ifx\bbl@mapselect\@undefined % TODO. See onchar
\AtBeginDocument{%
\expandafter\bbl@add\csname selectfont \endcsname{{\bbl@mapselect}}%
{\selectfont}}%
@@ -10962,6 +11011,8 @@ help from Bernd Raichle, for which I am grateful.
\let\atcatcode\relax
\fi}%
\fi
+ % == Release saved transforms ==
+ \bbl@release@transforms\relax % \relax closes the last item.
% == main ==
\ifx\bbl@KVP@main\@nil % Restore only if not 'main'
\let\languagename\bbl@savelangname
@@ -11339,8 +11390,6 @@ help from Bernd Raichle, for which I am grateful.
\ifbbl@bcptoname
\bbl@csarg\xdef{bcp@map@\bbl@cl{tbcp}}{\languagename}%
\fi
- % Finish here transforms, too
- \bbl@release@transforms\relax % \relax closes the last item.
% Conditional
\ifnum#1>\z@ % 0 = only info, 1, 2 = basic, (re)new
\bbl@exportkey{lnbrk}{typography.linebreaking}{h}%
@@ -11721,10 +11770,10 @@ help from Bernd Raichle, for which I am grateful.
\ifin@
\in@{.0$}{#2$}&%
\ifin@
- \bbl@add\bbl@release@transforms{&%
+ \g@addto@macro\bbl@release@transforms{&%
\relax\bbl@transforms@aux#1{\languagename}{#3}}&%
- \else
- \bbl@add\bbl@release@transforms{, {#3}}&%
+ \else
+ \g@addto@macro\bbl@release@transforms{, {#3}}&%
\fi
\fi
\fi}
@@ -13360,10 +13409,10 @@ help from Bernd Raichle, for which I am grateful.
Babel.linebreaking = Babel.linebreaking or {}
Babel.linebreaking.before = {}
Babel.linebreaking.after = {}
- Babel.locale = {} % Free to use, indexed with \localeid
+ Babel.locale = {} % Free to use, indexed by \localeid
function Babel.linebreaking.add_before(func)
tex.print([[\noexpand\csname bbl@luahyphenate\endcsname]])
- table.insert(Babel.linebreaking.before , func)
+ table.insert(Babel.linebreaking.before, func)
end
function Babel.linebreaking.add_after(func)
tex.print([[\noexpand\csname bbl@luahyphenate\endcsname]])
@@ -13841,17 +13890,15 @@ end
local locale = node.get_attribute(item, Babel.attr_locale)
if lang == locale or lang == nil then
- if (item.char ~= 124) then &% ie, not | = space
- lang = lang or locale
- word_string = word_string .. unicode.utf8.char(item.char)
- word_nodes[#word_nodes+1] = item
- end
+ lang = lang or locale
+ word_string = word_string .. unicode.utf8.char(item.char)
+ word_nodes[#word_nodes+1] = item
else
break
end
elseif item.id == 12 and item.subtype == 13 then
- word_string = word_string .. '|'
+ word_string = word_string .. ' '
word_nodes[#word_nodes+1] = item
&% Ignore leading unrecognized nodes, too.
@@ -13865,7 +13912,7 @@ end
&% Here and above we remove some trailing chars but not the
&% corresponding nodes. But they aren't accessed.
- if word_string:sub(-1) == '|' then
+ if word_string:sub(-1) == ' ' then
word_string = word_string:sub(1,-2)
end
word_string = unicode.utf8.gsub(word_string, Babel.us_char .. '+$', '')
@@ -14050,6 +14097,16 @@ end
if Babel.debug then
Babel.debug_hyph(w, w_nodes, sc, first, last, last_match)
+ local ss = ''
+ for itt in node.traverse(head) do
+ if itt.id == 29 then
+ ss = ss .. unicode.utf8.char(itt.char)
+ else
+ ss = ss .. '{' .. itt.id .. '}'
+ end
+ end
+ print('*****************', ss)
+
end
local crep = r[rc]
@@ -14141,7 +14198,7 @@ end
crep.space[2] * quad,
crep.space[3] * quad)
if mode == 0 then
- placeholder = '|'
+ placeholder = ' '
end
head, new = node.insert_before(head, item, d)
@@ -14153,7 +14210,7 @@ end
crep.spacefactor[2] * base_font.parameters['space_stretch'],
crep.spacefactor[3] * base_font.parameters['space_shrink'])
if mode == 0 then
- placeholder = '|'
+ placeholder = ' '
end
head, new = node.insert_before(head, item, d)
@@ -14203,7 +14260,15 @@ end
&% The following functions belong to the next macro
function Babel.capture_func(key, cap)
local ret = "[[" .. cap:gsub('{([0-9])}', "]]..m[%1]..[[") .. "]]"
- ret = ret:gsub('{([0-9])|([^|]+)|(.-)}', Babel.capture_func_map)
+ local cnt
+ local u = unicode.utf8
+ ret, cnt = ret:gsub('{([0-9])|([^|]+)|(.-)}', Babel.capture_func_map)
+ if cnt == 0 then
+ ret = u.gsub(ret, '{(%x%x%x%x+)}',
+ function (n)
+ return u.char(tonumber(n, 16))
+ end)
+ end
ret = ret:gsub("%[%[%]%]%.%.", '')
ret = ret:gsub("%.%.%[%[%]%]", '')
return key .. [[=function(m) return ]] .. ret .. [[ end]]
@@ -14215,6 +14280,15 @@ end
&% Handle the {n|abc|ABC} syntax in captures
function Babel.capture_func_map(capno, from, to)
+ local u = unicode.utf8
+ from = u.gsub(from, '{(%x%x%x%x+)}',
+ function (n)
+ return u.char(tonumber(n, 16))
+ end)
+ to = u.gsub(to, '{(%x%x%x%x+)}',
+ function (n)
+ return u.char(tonumber(n, 16))
+ end)
local froms = {}
for s in string.utfcharacters(from) do
table.insert(froms, s)
@@ -14319,6 +14393,7 @@ end
local id = \the\csname bbl@id@@#1\endcsname
&% Convert pattern:
local patt = string.gsub([==[#2]==], '%s', '')
+ local patt = string.gsub(patt, '|', ' ')
if not u.find(patt, '()', nil, true) then
patt = '()' .. patt .. '()'
end
@@ -14334,7 +14409,7 @@ end
end)
lbkr[id] = lbkr[id] or {}
table.insert(lbkr[id], { pattern = patt, replace = { \babeltempb } })
- }&%
+ }&%
\endgroup}
\endgroup
\def\bbl@activateposthyphen{%
diff --git a/macros/latex/required/babel/base/babel.ins b/macros/latex/required/babel/base/babel.ins
index bb675249c6..ddedf2c667 100644
--- a/macros/latex/required/babel/base/babel.ins
+++ b/macros/latex/required/babel/base/babel.ins
@@ -26,7 +26,7 @@
%% and covered by LPPL is defined by the unpacking scripts (with
%% extension .ins) which are part of the distribution.
%%
-\def\filedate{2021/03/24}
+\def\filedate{2021/04/07}
\def\batchfile{babel.ins}
\input docstrip.tex
diff --git a/macros/latex/required/babel/base/babel.pdf b/macros/latex/required/babel/base/babel.pdf
index 588c656f93..540babb7bb 100644
--- a/macros/latex/required/babel/base/babel.pdf
+++ b/macros/latex/required/babel/base/babel.pdf
Binary files differ
diff --git a/macros/latex/required/babel/base/bbcompat.dtx b/macros/latex/required/babel/base/bbcompat.dtx
index efd3eb77db..ea7e8ecc5a 100644
--- a/macros/latex/required/babel/base/bbcompat.dtx
+++ b/macros/latex/required/babel/base/bbcompat.dtx
@@ -30,7 +30,7 @@
%
% \iffalse
%<*dtx>
-\ProvidesFile{bbcompat.dtx}[2021/03/24 v3.56]
+\ProvidesFile{bbcompat.dtx}[2021/04/07 v3.57]
%</dtx>
%
%% File 'bbcompat.dtx'