summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-08-06 03:01:14 +0000
committerNorbert Preining <norbert@preining.info>2022-08-06 03:01:14 +0000
commitb3969456a6bca6912da7f406ee065c65c704f6e1 (patch)
tree5019f8a4835e16ce012e9de5bda3ff391bff207e /macros
parent572dc806dd00d29ab418ec6deaa36762d1d59ae6 (diff)
CTAN sync 202208060301
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/create-theorem/create-theorem-doc.pdfbin71867 -> 72947 bytes
-rw-r--r--macros/latex/contrib/create-theorem/create-theorem-doc.tex7
-rw-r--r--macros/latex/contrib/create-theorem/create-theorem.sty68
-rw-r--r--macros/latex/contrib/l3backend/CHANGELOG.md8
-rw-r--r--macros/latex/contrib/l3backend/README.md2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-basics.dtx14
-rw-r--r--macros/latex/contrib/l3backend/l3backend-box.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-code.pdfbin931293 -> 933558 bytes
-rw-r--r--macros/latex/contrib/l3backend/l3backend-color.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-draw.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-graphics.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-header.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-opacity.dtx2
-rw-r--r--macros/latex/contrib/l3backend/l3backend-pdf.dtx52
-rw-r--r--macros/latex/contrib/l3kernel/CHANGELOG.md19
-rw-r--r--macros/latex/contrib/l3kernel/README.md2
-rw-r--r--macros/latex/contrib/l3kernel/expl3.dtx8
-rw-r--r--macros/latex/contrib/l3kernel/expl3.pdfbin626191 -> 626225 bytes
-rw-r--r--macros/latex/contrib/l3kernel/interface3.pdfbin1768619 -> 1769273 bytes
-rw-r--r--macros/latex/contrib/l3kernel/interface3.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3basics.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3bootstrap.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3box.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3candidates.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3cctab.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3clist.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3coffins.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3color.dtx21
-rw-r--r--macros/latex/contrib/l3kernel/l3debug.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3deprecation.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3doc.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3doc.pdfbin558089 -> 558105 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3docstrip.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3docstrip.pdfbin151855 -> 151843 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3expan.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3file.dtx23
-rw-r--r--macros/latex/contrib/l3kernel/l3flag.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-assign.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-aux.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-basics.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-convert.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-expo.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-extended.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-logic.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-parse.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-random.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-round.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-traps.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp-trig.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fp.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3fparray.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3int.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3intarray.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3kernel-functions.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3keys.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3legacy.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3luatex.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3msg.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3names.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3news.pdfbin395879 -> 395879 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news01.pdfbin122710 -> 122710 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news02.pdfbin150676 -> 150676 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news03.pdfbin148702 -> 148702 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news04.pdfbin114588 -> 114588 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news05.pdfbin112487 -> 112487 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news06.pdfbin151573 -> 151573 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news07.pdfbin128309 -> 128309 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news08.pdfbin163454 -> 163454 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news09.pdfbin250139 -> 250139 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news10.pdfbin150279 -> 150279 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news11.pdfbin170063 -> 170063 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3news12.pdfbin204990 -> 204990 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3pdf.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3prefixes.csv3
-rw-r--r--macros/latex/contrib/l3kernel/l3prefixes.pdfbin81493 -> 81567 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3prg.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3prop.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3quark.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3regex.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3seq.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3skip.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3sort.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3str-convert.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3str.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3styleguide.pdfbin296253 -> 296294 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3styleguide.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3syntax-changes.pdfbin242927 -> 242959 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3syntax-changes.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3sys.dtx31
-rw-r--r--macros/latex/contrib/l3kernel/l3term-glossary.pdfbin231332 -> 231369 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3term-glossary.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3text-case.dtx441
-rw-r--r--macros/latex/contrib/l3kernel/l3text-purify.dtx12
-rw-r--r--macros/latex/contrib/l3kernel/l3text.dtx81
-rw-r--r--macros/latex/contrib/l3kernel/l3tl-analysis.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3tl.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3token.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3unicode.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/source3.pdfbin7228051 -> 7251031 bytes
-rw-r--r--macros/latex/contrib/l3kernel/source3.tex2
-rw-r--r--macros/latex/contrib/projlib/ProjLib.dtx141
-rw-r--r--macros/latex/contrib/projlib/README.md2
-rw-r--r--macros/latex/contrib/uni-titlepage/README.md2
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-DHBW.pdfbin43998 -> 43998 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-JT-Aufsaetze.pdfbin41265 -> 41265 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-JT-Geschichte.pdfbin38250 -> 38250 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-JT-Typography.pdfbin26902 -> 26902 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-KIT.pdfbin42151 -> 42151 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-KOMAScript.pdfbin166503 -> 166503 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-Markus-1.pdfbin119783 -> 119783 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-Markus-2.pdfbin128796 -> 128796 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-Spacer.pdfbin127997 -> 127997 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-TU-DD.pdfbin40396 -> 40396 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-TU-HH.pdfbin54041 -> 54041 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-UKoLa.pdfbin103389 -> 103389 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/titlepage-WWUM.pdfbin58802 -> 58802 bytes
-rw-r--r--macros/latex/contrib/uni-titlepage/uni-titlepage.dtx64
-rw-r--r--macros/latex/contrib/uni-titlepage/uni-titlepage.pdfbin1148736 -> 1159848 bytes
-rw-r--r--macros/latex/contrib/wrapstuff/wrapstuff.dtx17
-rw-r--r--macros/latex/contrib/wrapstuff/wrapstuff.pdfbin449185 -> 451989 bytes
-rw-r--r--macros/xetex/latex/xecjk/xeCJK.dtx621
-rw-r--r--macros/xetex/latex/xecjk/xeCJK.pdfbin1337274 -> 1340920 bytes
-rw-r--r--macros/xetex/latex/xecjk/xunicode-symbols.pdfbin344031 -> 344025 bytes
123 files changed, 1246 insertions, 513 deletions
diff --git a/macros/latex/contrib/create-theorem/create-theorem-doc.pdf b/macros/latex/contrib/create-theorem/create-theorem-doc.pdf
index 540dc7052e..a7d8146917 100644
--- a/macros/latex/contrib/create-theorem/create-theorem-doc.pdf
+++ b/macros/latex/contrib/create-theorem/create-theorem-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/create-theorem/create-theorem-doc.tex b/macros/latex/contrib/create-theorem/create-theorem-doc.tex
index 6ac3cb8604..7c53f133ff 100644
--- a/macros/latex/contrib/create-theorem/create-theorem-doc.tex
+++ b/macros/latex/contrib/create-theorem/create-theorem-doc.tex
@@ -104,7 +104,7 @@
\begin{document}
-\def\PackageVersion{2022/08/04}
+\def\PackageVersion{2022/08/05}
\title{\createtheorempackage{}\\\smallskip\itshape Initializing theorem-like environments with multilingual support}
\author{Jinwen XU}
@@ -278,6 +278,7 @@ Supported keys are:
\begin{itemize}
\item Specifying the Q.E.D. symbol for the current environment.
\item Note that the Q.E.D. symbol has already been put in math mode. If you want regular text such as \textquote{Q.E.D.}, you need to write \commandoption{qed}\lstinline| = \mathrm{Q.E.D.}|.
+ \item If you are using \textsf{ntheorem} as the backend, then you need to load it with option \packageoption{thmmarks}.
\item Synonymous names: \commandoption{qed symbol} \,$|$\, \commandoption{qed-symbol} \,$|$\, \commandoption{qedsymbol}
\end{itemize}
\item \commandoption{parent counter}\lstinline| = |\meta{parent counter}
@@ -533,6 +534,10 @@ If you wish to have a {\normalfont\texttt{proof}} environment with a custom theo
It defines an environment \lstinline|proof_inner| (with its starred variant) with theorem style \lstinline|remark| to mimic the default style (you are welcome to use your own style here), and with the name to be a variable which is latter used to define the actual environments \lstinline|proof| and \lstinline|proof*|. These two environments are defined in such a way that \lstinline|proof| is the usual unnumbered version and \lstinline|proof*| is the numbered version. The \lstinline|\SetTheoremBinding| lines are to ensure that user can directly write \lstinline|\SetTheorem{proof}| rather than \lstinline|\SetTheorem{proof_inner}|.
+\begin{tip}
+ The code above requires \textsf{amsthm}. If you are using \textsf{ntheorem} as the backend, then you need to load it with option \packageoption{amsthm}, and remove the \lstinline|\newcounter| line.
+\end{tip}
+
\bigskip
\section{Known issues}
diff --git a/macros/latex/contrib/create-theorem/create-theorem.sty b/macros/latex/contrib/create-theorem/create-theorem.sty
index 411d7f6873..e8c16703ae 100644
--- a/macros/latex/contrib/create-theorem/create-theorem.sty
+++ b/macros/latex/contrib/create-theorem/create-theorem.sty
@@ -12,7 +12,7 @@
\NeedsTeXFormat{LaTeX2e}[2022-06-01]
\ProvidesExplPackage
{create-theorem}
- {2022/08/04} {}
+ {2022/08/05} {}
{Initializing theorem-like environments with multilingual support}
\keys_define:nn { create-theorem }
@@ -38,13 +38,20 @@
}
\ProcessKeyOptions [ create-theorem ]
+\msg_new:nnn { create-theorem }
+ { no-backend }
+ { A~backend~(such~as~"amsthm")~~is~needed~to~provide~the~commands~"\iow_char:N \\newtheorem(*)"~and~"\iow_char:N \\theoremstyle"~with~the~usual~behaviour. }
+\cs_if_exist:cF { theoremstyle }
+ {
+ \msg_error:nn { create-theorem } { no-backend }
+ }
+
\bool_if:NT \l__crthm_nameinlink_bool
{
\PassOptionsToPackage { nameinlink } { cleveref }
}
-
\RequirePackage { crefthe }
-
+\RequirePackage { amsfonts }
\IfPackageLoadedTF { thmtools }
{
@@ -698,12 +705,11 @@
\keys_set:nn { create-theorem-naming } { #2 }
}
-\cs_set_eq:NN \c__crthm_original_qedsymbol_tl \qedsymbol
-
-\bool_new:N \l__crthm_creating_apply_style_bool
-\tl_new:N \l__crthm_creating_apply_style_tl
+\tl_const:Nn \c__crthm_qedsymbol_tl { \Box }
\bool_new:N \l__crthm_creating_qed_bool
\tl_new:N \l__crthm_creating_qed_tl
+\bool_new:N \l__crthm_creating_apply_style_bool
+\tl_new:N \l__crthm_creating_apply_style_tl
\bool_new:N \l__crthm_creating_numberless_bool
\bool_new:N \l__crthm_creating_create_starred_bool
\bool_new:N \l__crthm_creating_copy_existed_bool
@@ -737,13 +743,13 @@
, apply style .value_required:n = true
, qed .code:n = { \bool_set_true:N \l__crthm_creating_qed_bool
\tl_set:Nn \l__crthm_creating_qed_tl { #1 } }
- , qed .default:n = \c__crthm_original_qedsymbol_tl
+ , qed .default:n = \c__crthm_qedsymbol_tl
, qed~symbol .meta:n = { qed = #1 }
- , qed~symbol .default:n = \c__crthm_original_qedsymbol_tl
+ , qed~symbol .default:n = \c__crthm_qedsymbol_tl
, qed-symbol .meta:n = { qed = #1 }
- , qed-symbol .default:n = \c__crthm_original_qedsymbol_tl
+ , qed-symbol .default:n = \c__crthm_qedsymbol_tl
, qed symbol .meta:n = { qed = #1 }
- , qed symbol .default:n = \c__crthm_original_qedsymbol_tl
+ , qed symbol .default:n = \c__crthm_qedsymbol_tl
, numberless .bool_set:N = \l__crthm_creating_numberless_bool
, create~starred~version .bool_set:N = \l__crthm_creating_create_starred_bool
, create-starred-version .meta:n = { create~starred~version }
@@ -814,6 +820,7 @@
\tl_set:Nn \l__crthm_current_env_tl { #1 }
\bool_set_false:N \l__crthm_creating_apply_style_bool
\bool_set_false:N \l__crthm_creating_numberless_bool
+ \bool_set_false:N \l__crthm_creating_qed_bool
\bool_set_false:N \l__crthm_creating_create_starred_bool
\bool_set_false:N \l__crthm_creating_copy_existed_bool
\keys_set:nn { create-theorem-creating } { #2 }
@@ -836,6 +843,13 @@
{
\cs_if_exist:cTF { c@ #1 }
{
+ \IfPackageLoadedTF { ntheorem }
+ {
+ \bool_if:NT \l__crthm_creating_qed_bool
+ {
+ \theoremsymbol { \ensuremath { \l__crthm_creating_qed_tl } }
+ }
+ } {}
\group_begin:
\bool_if:NTF \l__crthm_creating_apply_style_bool
{
@@ -859,6 +873,13 @@
\crthm_newtheorem:w*{ #1 * } { \tl_use:c { g_crthm_name_heading_ #1 _ \languagename _tl } }
}
\group_end:
+ \IfPackageLoadedTF { ntheorem }
+ {
+ \bool_if:NT \l__crthm_creating_qed_bool
+ {
+ \theoremsymbol { }
+ }
+ } {}
\NewDocumentEnvironment { #1 } { O{} }
% In "regionalref" mode, the counter received by the referencing system is "#1 _crthm_regional"
% while in "originalref" mode, the counter received is "#1 _crthm_original_\languagename"
@@ -881,16 +902,19 @@
}
\keys_set:nn { create-theorem-creating / counter-management } { #2 }
- \bool_if:NT \l__crthm_creating_qed_bool
+ \IfPackageLoadedTF { amsthm }
{
- \exp_args:Nx \hook_gput_code:nnn { env/ \l__crthm_current_env_tl /begin } { crthm } { \cs_set:Npn \qedsymbol { \ensuremath { \l__crthm_creating_qed_tl } } \pushQED{\qed} }
- \exp_args:Nx \hook_gput_code:nnn { env/ \l__crthm_current_env_tl /end } { crthm } { \popQED }
- \bool_if:NT \l__crthm_creating_create_starred_bool
+ \bool_if:NT \l__crthm_creating_qed_bool
{
- \exp_args:Nx \hook_gput_code:nnn { env/ \l__crthm_current_env_tl * /begin } { crthm } { \cs_set:Npn \qedsymbol { \ensuremath { \l__crthm_creating_qed_tl } } \pushQED{\qed} }
- \exp_args:Nx \hook_gput_code:nnn { env/ \l__crthm_current_env_tl * /end } { crthm } { \popQED }
+ \exp_args:Nx \hook_gput_code:nnn { env/ \l__crthm_current_env_tl /begin } { crthm } { \cs_set:Npn \qedsymbol { \ensuremath { \l__crthm_creating_qed_tl } } \pushQED{\qed} }
+ \exp_args:Nx \hook_gput_code:nnn { env/ \l__crthm_current_env_tl /end } { crthm } { \popQED }
+ \bool_if:NT \l__crthm_creating_create_starred_bool
+ {
+ \exp_args:Nx \hook_gput_code:nnn { env/ \l__crthm_current_env_tl * /begin } { crthm } { \cs_set:Npn \qedsymbol { \ensuremath { \l__crthm_creating_qed_tl } } \pushQED{\qed} }
+ \exp_args:Nx \hook_gput_code:nnn { env/ \l__crthm_current_env_tl * /end } { crthm } { \popQED }
+ }
}
- }
+ } {}
}
{
\msg_error:nnn { create-theorem } { env-not-named } { #1 }
@@ -942,13 +966,13 @@
, qed .code:n = {
\exp_args:Nx \hook_gput_code:nnn { env/ \l__crthm_current_env_tl /begin } { crthm } { \cs_set:Npn \qedsymbol { \ensuremath { #1 } } }
}
- , qed .default:n = \c__crthm_original_qedsymbol_tl
+ , qed .default:n = \c__crthm_qedsymbol_tl
, qed~symbol .meta:n = { qed = #1 }
- , qed~symbol .default:n = \c__crthm_original_qedsymbol_tl
+ , qed~symbol .default:n = \c__crthm_qedsymbol_tl
, qed-symbol .meta:n = { qed = #1 }
- , qed-symbol .default:n = \c__crthm_original_qedsymbol_tl
+ , qed-symbol .default:n = \c__crthm_qedsymbol_tl
, qed symbol .meta:n = { qed = #1 }
- , qed symbol .default:n = \c__crthm_original_qedsymbol_tl
+ , qed symbol .default:n = \c__crthm_qedsymbol_tl
, parent~counter .code:n = { \crthm_counter_within:en { \l__crthm_current_env_tl } { #1 } }
, parent~counter .value_required:n = true
, parent-counter .meta:n = { parent~counter = { #1 } }
diff --git a/macros/latex/contrib/l3backend/CHANGELOG.md b/macros/latex/contrib/l3backend/CHANGELOG.md
index 22b29d28e1..3c8cb7d6d2 100644
--- a/macros/latex/contrib/l3backend/CHANGELOG.md
+++ b/macros/latex/contrib/l3backend/CHANGELOG.md
@@ -6,6 +6,11 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2022-08-05]
+
+### Changed
+- Add no-op backend functions for annotations with `dvisvgm`
+
## [2022-07-01]
#### Fixed
@@ -252,7 +257,8 @@ this project uses date-based 'snapshot' version identifiers.
- Include `l3backend` in file names
- Moved backend code to internal for each 'parent' module
-[Unreleased]: https://github.com/latex3/latex3/compare/2022-07-01...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2022-08-05...HEAD
+[2022-08-05]: https://github.com/latex3/latex3/compare/2022-07-01...2022-08-05
[2022-07-01]: https://github.com/latex3/latex3/compare/2022-04-20...2022-07-01
[2022-04-20]: https://github.com/latex3/latex3/compare/2022-04-14...2022-04-20
[2022-04-14]: https://github.com/latex3/latex3/compare/2022-04-10...2022-04-14
diff --git a/macros/latex/contrib/l3backend/README.md b/macros/latex/contrib/l3backend/README.md
index 83d907f5a0..fe959f8ca7 100644
--- a/macros/latex/contrib/l3backend/README.md
+++ b/macros/latex/contrib/l3backend/README.md
@@ -1,7 +1,7 @@
LaTeX3 Backend Drivers
======================
-Release 2022-07-01
+Release 2022-08-05
This package forms parts of `expl3`, and contains the code used to interface
with backends (drivers) across the `expl3` codebase. The functions here are
diff --git a/macros/latex/contrib/l3backend/l3backend-basics.dtx b/macros/latex/contrib/l3backend/l3backend-basics.dtx
index 8945ed6f47..768bd20d50 100644
--- a/macros/latex/contrib/l3backend/l3backend-basics.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-01}
+% \date{Released 2022-08-05}
%
% \maketitle
%
@@ -70,27 +70,27 @@
% \begin{macrocode}
\ProvidesExplFile
%<*dvipdfmx>
- {l3backend-dvipdfmx.def}{2022-07-01}{}
+ {l3backend-dvipdfmx.def}{2022-08-05}{}
{L3 backend support: dvipdfmx}
%</dvipdfmx>
%<*dvips>
- {l3backend-dvips.def}{2022-07-01}{}
+ {l3backend-dvips.def}{2022-08-05}{}
{L3 backend support: dvips}
%</dvips>
%<*dvisvgm>
- {l3backend-dvisvgm.def}{2022-07-01}{}
+ {l3backend-dvisvgm.def}{2022-08-05}{}
{L3 backend support: dvisvgm}
%</dvisvgm>
%<*luatex>
- {l3backend-luatex.def}{2022-07-01}{}
+ {l3backend-luatex.def}{2022-08-05}{}
{L3 backend support: PDF output (LuaTeX)}
%</luatex>
%<*pdftex>
- {l3backend-pdftex.def}{2022-07-01}{}
+ {l3backend-pdftex.def}{2022-08-05}{}
{L3 backend support: PDF output (pdfTeX)}
%</pdftex>
%<*xetex>
- {l3backend-xetex.def}{2022-07-01}{}
+ {l3backend-xetex.def}{2022-08-05}{}
{L3 backend support: XeTeX}
%</xetex>
% \end{macrocode}
diff --git a/macros/latex/contrib/l3backend/l3backend-box.dtx b/macros/latex/contrib/l3backend/l3backend-box.dtx
index 844b23d67c..628176536a 100644
--- a/macros/latex/contrib/l3backend/l3backend-box.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-01}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-code.pdf b/macros/latex/contrib/l3backend/l3backend-code.pdf
index 1bd1fbaba0..1d3030cbd3 100644
--- a/macros/latex/contrib/l3backend/l3backend-code.pdf
+++ b/macros/latex/contrib/l3backend/l3backend-code.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3backend/l3backend-color.dtx b/macros/latex/contrib/l3backend/l3backend-color.dtx
index 666075840a..336ff45135 100644
--- a/macros/latex/contrib/l3backend/l3backend-color.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-color.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-01}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-draw.dtx b/macros/latex/contrib/l3backend/l3backend-draw.dtx
index d2174dc7a3..f23e3ec115 100644
--- a/macros/latex/contrib/l3backend/l3backend-draw.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-draw.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-01}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-graphics.dtx b/macros/latex/contrib/l3backend/l3backend-graphics.dtx
index 8691349cf5..e1c2af95fa 100644
--- a/macros/latex/contrib/l3backend/l3backend-graphics.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-graphics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-01}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-header.dtx b/macros/latex/contrib/l3backend/l3backend-header.dtx
index 401f4287af..abc2f4a778 100644
--- a/macros/latex/contrib/l3backend/l3backend-header.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-header.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-01}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-opacity.dtx b/macros/latex/contrib/l3backend/l3backend-opacity.dtx
index ae4e93ea3c..e3132f6955 100644
--- a/macros/latex/contrib/l3backend/l3backend-opacity.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-opacity.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-01}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3backend/l3backend-pdf.dtx b/macros/latex/contrib/l3backend/l3backend-pdf.dtx
index df145f3781..052a3ba73d 100644
--- a/macros/latex/contrib/l3backend/l3backend-pdf.dtx
+++ b/macros/latex/contrib/l3backend/l3backend-pdf.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-01}
+% \date{Released 2022-08-05}
%
% \maketitle
%
@@ -1597,6 +1597,56 @@
%<*dvisvgm>
% \end{macrocode}
%
+% \subsubsection{Annotations}
+%
+% \begin{macro}{\@@_backend_annotation:nnnn}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_annotation:nnnn #1#2#3#4 { }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_backend_annotation_last:}
+% \begin{macrocode}
+\cs_new:Npn \@@_backend_annotation_last: { }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}
+% {\@@_backend_link_begin_goto:nnw, \@@_backend_link_begin_user:nnw}
+% \begin{macro}{\@@_backend_link_begin:nnnw}
+% \begin{macro}{\@@_backend_link_end:}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_link_begin_goto:nnw #1#2 { }
+\cs_new_protected:Npn \@@_backend_link_begin_user:nnw #1#2 { }
+\cs_new_protected:Npn \@@_backend_link_begin:nnnw #1#2#3 { }
+\cs_new_protected:Npn \@@_backend_link_end: { }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@@_backend_link_last:}
+% \begin{macrocode}
+\cs_new:Npx \@@_backend_link_last: { }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_backend_link_margin:n}
+% A simple task: pass the data to the primitive.
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_link_margin:n #1 { }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_backend_destination:nn}
+% \begin{macro}{\@@_backend_destination:nnnn}
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_backend_destination:nn #1#2 { }
+\cs_new_protected:Npn \@@_backend_destination:nnnn #1#2#3#4 { }
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \subsubsection{Catalogue entries}
%
% \begin{macro}{\@@_backend_catalog_gput:nn, \@@_backend_info_gput:nn}
diff --git a/macros/latex/contrib/l3kernel/CHANGELOG.md b/macros/latex/contrib/l3kernel/CHANGELOG.md
index 2f7e67ff9e..abd4e5fe87 100644
--- a/macros/latex/contrib/l3kernel/CHANGELOG.md
+++ b/macros/latex/contrib/l3kernel/CHANGELOG.md
@@ -7,6 +7,22 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2022-08-05]
+
+### Added
+- Support for case changing Croatian diagraph with 8-bit engines
+- Support accent removal when uppercasing Greek with 8-bit engines
+- Function `\sys_ensure_backend:`
+
+### Fixed
+- Behavior of `\color_math:nn` in alignments
+- Expansion of text containing unterminated `\romannumeral` primitives
+
+## [2022-07-21]
+
+### Fixed
+- `\iow_open:N` in ConTeXt MkII
+
## [2022-07-15]
### Fixed
@@ -1157,7 +1173,8 @@ this project uses date-based 'snapshot' version identifiers.
- Step functions have been added for dim variables,
e.g. `\dim_step_inline:nnnn`
-[Unreleased]: https://github.com/latex3/latex3/compare/2022-07-15...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2022-08-05...HEAD
+[2022-08-05]: https://github.com/latex3/latex3/compare/2022-07-15...2022-08-05
[2022-07-15]: https://github.com/latex3/latex3/compare/2022-07-14...2022-07-15
[2022-07-14]: https://github.com/latex3/latex3/compare/2022-07-04...2022-07-14
[2022-07-04]: https://github.com/latex3/latex3/compare/2022-07-01...2022-07-04
diff --git a/macros/latex/contrib/l3kernel/README.md b/macros/latex/contrib/l3kernel/README.md
index 8845a6445d..0c5c550f2a 100644
--- a/macros/latex/contrib/l3kernel/README.md
+++ b/macros/latex/contrib/l3kernel/README.md
@@ -1,7 +1,7 @@
LaTeX3 Programming Conventions
==============================
-Release 2022-07-15
+Release 2022-08-05
Overview
--------
diff --git a/macros/latex/contrib/l3kernel/expl3.dtx b/macros/latex/contrib/l3kernel/expl3.dtx
index a5a6a995f0..48808d9f49 100644
--- a/macros/latex/contrib/l3kernel/expl3.dtx
+++ b/macros/latex/contrib/l3kernel/expl3.dtx
@@ -24,7 +24,7 @@
%
%<*driver|generic|package|2ekernel>
%</driver|generic|package|2ekernel>
-\def\ExplFileDate{2022-07-15}%
+\def\ExplFileDate{2022-08-05}%
%<*driver>
\documentclass[full]{l3doc}
\usepackage{graphicx}
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
@@ -952,8 +952,8 @@
% \section{Using \pkg{expl3} with formats other than \LaTeXe{}}
%
% As well as the \LaTeXe{} package \pkg{expl3}, there is also a
-% \enquote{generic} loader for the code, \texttt{expl3.tex}. This may be
-% loaded using the plain \TeX{} syntax
+% \enquote{generic} loader for the code, \texttt{expl3-generic.tex}.
+% This may be loaded using the plain \TeX{} syntax
% \begin{verbatim}
% \input expl3-generic %
% \end{verbatim}
diff --git a/macros/latex/contrib/l3kernel/expl3.pdf b/macros/latex/contrib/l3kernel/expl3.pdf
index 002b4ec4a7..55b417e1d4 100644
--- a/macros/latex/contrib/l3kernel/expl3.pdf
+++ b/macros/latex/contrib/l3kernel/expl3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/interface3.pdf b/macros/latex/contrib/l3kernel/interface3.pdf
index 3ff39c23b3..5a960b9964 100644
--- a/macros/latex/contrib/l3kernel/interface3.pdf
+++ b/macros/latex/contrib/l3kernel/interface3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/interface3.tex b/macros/latex/contrib/l3kernel/interface3.tex
index b4ee98b0f1..00c15208e1 100644
--- a/macros/latex/contrib/l3kernel/interface3.tex
+++ b/macros/latex/contrib/l3kernel/interface3.tex
@@ -54,7 +54,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2022-07-15}
+\date{Released 2022-08-05}
\pagenumbering{roman}
\maketitle
diff --git a/macros/latex/contrib/l3kernel/l3basics.dtx b/macros/latex/contrib/l3kernel/l3basics.dtx
index 4409b374c3..3eb9a3f43b 100644
--- a/macros/latex/contrib/l3kernel/l3basics.dtx
+++ b/macros/latex/contrib/l3kernel/l3basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3bootstrap.dtx b/macros/latex/contrib/l3kernel/l3bootstrap.dtx
index ff37603897..852f654cef 100644
--- a/macros/latex/contrib/l3kernel/l3bootstrap.dtx
+++ b/macros/latex/contrib/l3kernel/l3bootstrap.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3box.dtx b/macros/latex/contrib/l3kernel/l3box.dtx
index 8a3c88779b..502185ed65 100644
--- a/macros/latex/contrib/l3kernel/l3box.dtx
+++ b/macros/latex/contrib/l3kernel/l3box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3candidates.dtx b/macros/latex/contrib/l3kernel/l3candidates.dtx
index 45032fc498..b01f9169cd 100644
--- a/macros/latex/contrib/l3kernel/l3candidates.dtx
+++ b/macros/latex/contrib/l3kernel/l3candidates.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3cctab.dtx b/macros/latex/contrib/l3kernel/l3cctab.dtx
index 41191483d6..f108418c02 100644
--- a/macros/latex/contrib/l3kernel/l3cctab.dtx
+++ b/macros/latex/contrib/l3kernel/l3cctab.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3clist.dtx b/macros/latex/contrib/l3kernel/l3clist.dtx
index 72b1510fba..2d880e5722 100644
--- a/macros/latex/contrib/l3kernel/l3clist.dtx
+++ b/macros/latex/contrib/l3kernel/l3clist.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3coffins.dtx b/macros/latex/contrib/l3kernel/l3coffins.dtx
index 1097fc3880..fe2ce11f3e 100644
--- a/macros/latex/contrib/l3kernel/l3coffins.dtx
+++ b/macros/latex/contrib/l3kernel/l3coffins.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3color.dtx b/macros/latex/contrib/l3kernel/l3color.dtx
index 4b94bf8059..8fc7268cdb 100644
--- a/macros/latex/contrib/l3kernel/l3color.dtx
+++ b/macros/latex/contrib/l3kernel/l3color.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
@@ -1456,25 +1456,34 @@
% need separate treatment. To avoid repeatedly collecting the same
% token, we first check for an alignment tab: assuming we don't have
% one of those, we can \enquote{recycle} \cs{l_peek_token} safely.
+% As we have an explicit \cs{c_alignment_token}, there needs to be
+% an align-safe group present.
% \begin{macrocode}
\cs_new_protected:Npn \@@_math_scan:w
{
\peek_remove_filler:n
{
+ \group_align_safe_begin:
\peek_catcode:NTF \c_alignment_token
- { \@@_math_scan_end: }
- { \@@_math_scan_auxi: }
+ {
+ \group_align_safe_end:
+ \@@_math_scan_end:
+ }
+ {
+ \group_align_safe_end:
+ \@@_math_scan_auxi:
+ }
}
}
% \end{macrocode}
% Dealing with literal |_| and |^| is easy, and as we have exactly two cases,
% we can hard-code this. We use a hard-coded list for limits: these are all
-% primitives. The \cs{use_none:n} herealso removes the test token so it is
+% primitives. The \cs{use_none:n} here also removes the test token so it is
% left just in the right place.
% \begin{macrocode}
\cs_new_protected:Npn \@@_math_scan_auxi:
{
- \token_case_meaning:NnTF \l_peek_token
+ \token_case_catcode:NnTF \l_peek_token
{
\c_math_subscript_token { }
\c_math_superscript_token { }
@@ -1549,7 +1558,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \@@_math_scripts:Nw #1
{
- #1
+ #1
\c_group_begin_token
\c_group_begin_token
\seq_get:NN \g_@@_math_seq \l_@@_current_tl
diff --git a/macros/latex/contrib/l3kernel/l3debug.dtx b/macros/latex/contrib/l3kernel/l3debug.dtx
index e2dacbb72f..cb12c2bbcc 100644
--- a/macros/latex/contrib/l3kernel/l3debug.dtx
+++ b/macros/latex/contrib/l3kernel/l3debug.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3deprecation.dtx b/macros/latex/contrib/l3kernel/l3deprecation.dtx
index d0547dcdf9..2dc1200e44 100644
--- a/macros/latex/contrib/l3kernel/l3deprecation.dtx
+++ b/macros/latex/contrib/l3kernel/l3deprecation.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3doc.dtx b/macros/latex/contrib/l3kernel/l3doc.dtx
index a1b4c72121..4a4ef017e1 100644
--- a/macros/latex/contrib/l3kernel/l3doc.dtx
+++ b/macros/latex/contrib/l3kernel/l3doc.dtx
@@ -85,7 +85,7 @@ and all files in that bundle must be distributed together.
% require you to do updates, if the class changes.}}
%
% \author{\Team}
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
% \maketitle
% \tableofcontents
%
diff --git a/macros/latex/contrib/l3kernel/l3doc.pdf b/macros/latex/contrib/l3kernel/l3doc.pdf
index 8da932454c..7a13aed860 100644
--- a/macros/latex/contrib/l3kernel/l3doc.pdf
+++ b/macros/latex/contrib/l3kernel/l3doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3docstrip.dtx b/macros/latex/contrib/l3kernel/l3docstrip.dtx
index 8ffaa7385f..19b2a72458 100644
--- a/macros/latex/contrib/l3kernel/l3docstrip.dtx
+++ b/macros/latex/contrib/l3kernel/l3docstrip.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3docstrip.pdf b/macros/latex/contrib/l3kernel/l3docstrip.pdf
index 7bf177f6f6..e0d451932e 100644
--- a/macros/latex/contrib/l3kernel/l3docstrip.pdf
+++ b/macros/latex/contrib/l3kernel/l3docstrip.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3expan.dtx b/macros/latex/contrib/l3kernel/l3expan.dtx
index 46c9f30fbc..b0ab3c1fae 100644
--- a/macros/latex/contrib/l3kernel/l3expan.dtx
+++ b/macros/latex/contrib/l3kernel/l3expan.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3file.dtx b/macros/latex/contrib/l3kernel/l3file.dtx
index 523fa4c6c1..7cb1ff9824 100644
--- a/macros/latex/contrib/l3kernel/l3file.dtx
+++ b/macros/latex/contrib/l3kernel/l3file.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
@@ -981,7 +981,7 @@
\int_step_inline:nnn
{ 0 }
{
- \cs_if_exist:NTF \normalend
+ \cs_if_exist:NTF \contextversion
{ \tex_count:D 38 ~ }
{
\tex_count:D 16 ~ %
@@ -1061,10 +1061,10 @@
% \begin{macrocode}
\exp_args:NNf \cs_new_protected:Npn \@@_new:N
{ \exp_args:NNc \exp_after:wN \exp_stop_f: { newread } }
-\cs_if_exist:NT \normalend
+\cs_if_exist:NT \contextversion
{
\cs_new_eq:NN \@@_new_aux:N \@@_new:N
- \cs_set_protected:Npn \@@_new:N #1
+ \cs_gset_protected:Npn \@@_new:N #1
{
\cs_undefine:N #1
\@@_new_aux:N #1
@@ -1441,7 +1441,7 @@
\int_step_inline:nnn
{ 0 }
{
- \cs_if_exist:NTF \normalend
+ \cs_if_exist:NTF \contextversion
{ \tex_count:D 39 ~ }
{
\tex_count:D 17 ~
@@ -1499,10 +1499,21 @@
%
% \begin{macro}{\@@_new:N}
% As for read streams, copy \tn{newwrite}, making sure
-% that it is not \tn{outer}.
+% that it is not \tn{outer}. For \ConTeXt{}, we have to
+% deal with the fact that \tn{newwrite} works like our
+% own: it actually checks before altering definition.
% \begin{macrocode}
\exp_args:NNf \cs_new_protected:Npn \@@_new:N
{ \exp_args:NNc \exp_after:wN \exp_stop_f: { newwrite } }
+\cs_if_exist:NT \contextversion
+ {
+ \cs_new_eq:NN \@@_new_aux:N \@@_new:N
+ \cs_gset_protected:Npn \@@_new:N #1
+ {
+ \cs_undefine:N #1
+ \@@_new_aux:N #1
+ }
+ }
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex/contrib/l3kernel/l3flag.dtx b/macros/latex/contrib/l3kernel/l3flag.dtx
index 8af39ddb03..fd9a9aa611 100644
--- a/macros/latex/contrib/l3kernel/l3flag.dtx
+++ b/macros/latex/contrib/l3kernel/l3flag.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-assign.dtx b/macros/latex/contrib/l3kernel/l3fp-assign.dtx
index a1f665de47..5b311af4d0 100644
--- a/macros/latex/contrib/l3kernel/l3fp-assign.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-assign.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
% \maketitle
%
% \begin{documentation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-aux.dtx b/macros/latex/contrib/l3kernel/l3fp-aux.dtx
index 72c921ff69..cbde31ce23 100644
--- a/macros/latex/contrib/l3kernel/l3fp-aux.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-aux.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-basics.dtx b/macros/latex/contrib/l3kernel/l3fp-basics.dtx
index 5a39eb6588..d787d6ee22 100644
--- a/macros/latex/contrib/l3kernel/l3fp-basics.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-basics.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-convert.dtx b/macros/latex/contrib/l3kernel/l3fp-convert.dtx
index 590ab826d9..c132f4590d 100644
--- a/macros/latex/contrib/l3kernel/l3fp-convert.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-convert.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-expo.dtx b/macros/latex/contrib/l3kernel/l3fp-expo.dtx
index c6f2b9acb7..1c3279091d 100644
--- a/macros/latex/contrib/l3kernel/l3fp-expo.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-expo.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-extended.dtx b/macros/latex/contrib/l3kernel/l3fp-extended.dtx
index f5aff758dc..0350ded913 100644
--- a/macros/latex/contrib/l3kernel/l3fp-extended.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-extended.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-logic.dtx b/macros/latex/contrib/l3kernel/l3fp-logic.dtx
index 2b0f6f7aa9..46964ea3a1 100644
--- a/macros/latex/contrib/l3kernel/l3fp-logic.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-logic.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-parse.dtx b/macros/latex/contrib/l3kernel/l3fp-parse.dtx
index 52a0dbe996..b0797bb794 100644
--- a/macros/latex/contrib/l3kernel/l3fp-parse.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-parse.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-random.dtx b/macros/latex/contrib/l3kernel/l3fp-random.dtx
index cf9facf605..54da2f3027 100644
--- a/macros/latex/contrib/l3kernel/l3fp-random.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-random.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-round.dtx b/macros/latex/contrib/l3kernel/l3fp-round.dtx
index bf898ae0d6..3c13cb4c7f 100644
--- a/macros/latex/contrib/l3kernel/l3fp-round.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-round.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-traps.dtx b/macros/latex/contrib/l3kernel/l3fp-traps.dtx
index 8e24739440..d613c08e5c 100644
--- a/macros/latex/contrib/l3kernel/l3fp-traps.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-traps.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
% \maketitle
%
% \begin{documentation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-trig.dtx b/macros/latex/contrib/l3kernel/l3fp-trig.dtx
index 2f9b1141ee..f47ae0281b 100644
--- a/macros/latex/contrib/l3kernel/l3fp-trig.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp-trig.dtx
@@ -40,7 +40,7 @@
% {latex-team@latex-project.org}^^A
% }^^A
% }
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp.dtx b/macros/latex/contrib/l3kernel/l3fp.dtx
index be0444ec72..f69fcd6cc9 100644
--- a/macros/latex/contrib/l3kernel/l3fp.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fparray.dtx b/macros/latex/contrib/l3kernel/l3fparray.dtx
index 74cda9c649..a1a071839e 100644
--- a/macros/latex/contrib/l3kernel/l3fparray.dtx
+++ b/macros/latex/contrib/l3kernel/l3fparray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3int.dtx b/macros/latex/contrib/l3kernel/l3int.dtx
index 334695520d..3a7f061d2d 100644
--- a/macros/latex/contrib/l3kernel/l3int.dtx
+++ b/macros/latex/contrib/l3kernel/l3int.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3intarray.dtx b/macros/latex/contrib/l3kernel/l3intarray.dtx
index 244e61bc32..41a14d591c 100644
--- a/macros/latex/contrib/l3kernel/l3intarray.dtx
+++ b/macros/latex/contrib/l3kernel/l3intarray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
index f2da709109..ac0b7abb13 100644
--- a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
+++ b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3keys.dtx b/macros/latex/contrib/l3kernel/l3keys.dtx
index 521e01b835..b8f407f3f5 100644
--- a/macros/latex/contrib/l3kernel/l3keys.dtx
+++ b/macros/latex/contrib/l3kernel/l3keys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3legacy.dtx b/macros/latex/contrib/l3kernel/l3legacy.dtx
index 13c6a3c7f8..36303fc377 100644
--- a/macros/latex/contrib/l3kernel/l3legacy.dtx
+++ b/macros/latex/contrib/l3kernel/l3legacy.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3luatex.dtx b/macros/latex/contrib/l3kernel/l3luatex.dtx
index b19190d305..40d1fd0009 100644
--- a/macros/latex/contrib/l3kernel/l3luatex.dtx
+++ b/macros/latex/contrib/l3kernel/l3luatex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3msg.dtx b/macros/latex/contrib/l3kernel/l3msg.dtx
index ff928d5f6a..db98ebf8c4 100644
--- a/macros/latex/contrib/l3kernel/l3msg.dtx
+++ b/macros/latex/contrib/l3kernel/l3msg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3names.dtx b/macros/latex/contrib/l3kernel/l3names.dtx
index d6ab88596a..485e5fefde 100644
--- a/macros/latex/contrib/l3kernel/l3names.dtx
+++ b/macros/latex/contrib/l3kernel/l3names.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3news.pdf b/macros/latex/contrib/l3kernel/l3news.pdf
index 570f2badbd..632f821154 100644
--- a/macros/latex/contrib/l3kernel/l3news.pdf
+++ b/macros/latex/contrib/l3kernel/l3news.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news01.pdf b/macros/latex/contrib/l3kernel/l3news01.pdf
index 32d6e8fc19..118f018c57 100644
--- a/macros/latex/contrib/l3kernel/l3news01.pdf
+++ b/macros/latex/contrib/l3kernel/l3news01.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news02.pdf b/macros/latex/contrib/l3kernel/l3news02.pdf
index bb81ade8c2..565b3058c5 100644
--- a/macros/latex/contrib/l3kernel/l3news02.pdf
+++ b/macros/latex/contrib/l3kernel/l3news02.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news03.pdf b/macros/latex/contrib/l3kernel/l3news03.pdf
index 0280afe432..eefd55ce6b 100644
--- a/macros/latex/contrib/l3kernel/l3news03.pdf
+++ b/macros/latex/contrib/l3kernel/l3news03.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news04.pdf b/macros/latex/contrib/l3kernel/l3news04.pdf
index e33c234826..f1b4fdd163 100644
--- a/macros/latex/contrib/l3kernel/l3news04.pdf
+++ b/macros/latex/contrib/l3kernel/l3news04.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news05.pdf b/macros/latex/contrib/l3kernel/l3news05.pdf
index 87c0ad1823..30f9918fbc 100644
--- a/macros/latex/contrib/l3kernel/l3news05.pdf
+++ b/macros/latex/contrib/l3kernel/l3news05.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news06.pdf b/macros/latex/contrib/l3kernel/l3news06.pdf
index 6766590ca8..228a4c4346 100644
--- a/macros/latex/contrib/l3kernel/l3news06.pdf
+++ b/macros/latex/contrib/l3kernel/l3news06.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news07.pdf b/macros/latex/contrib/l3kernel/l3news07.pdf
index 7ee4f92fb7..0c036bb49d 100644
--- a/macros/latex/contrib/l3kernel/l3news07.pdf
+++ b/macros/latex/contrib/l3kernel/l3news07.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news08.pdf b/macros/latex/contrib/l3kernel/l3news08.pdf
index 13c91c9ff4..c293ea58a3 100644
--- a/macros/latex/contrib/l3kernel/l3news08.pdf
+++ b/macros/latex/contrib/l3kernel/l3news08.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news09.pdf b/macros/latex/contrib/l3kernel/l3news09.pdf
index 92e85460ab..6ebf4d90a5 100644
--- a/macros/latex/contrib/l3kernel/l3news09.pdf
+++ b/macros/latex/contrib/l3kernel/l3news09.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news10.pdf b/macros/latex/contrib/l3kernel/l3news10.pdf
index e284774c20..c4e1042f41 100644
--- a/macros/latex/contrib/l3kernel/l3news10.pdf
+++ b/macros/latex/contrib/l3kernel/l3news10.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news11.pdf b/macros/latex/contrib/l3kernel/l3news11.pdf
index 942c2b05d8..146820f529 100644
--- a/macros/latex/contrib/l3kernel/l3news11.pdf
+++ b/macros/latex/contrib/l3kernel/l3news11.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3news12.pdf b/macros/latex/contrib/l3kernel/l3news12.pdf
index 274eb490ce..9d4811c54d 100644
--- a/macros/latex/contrib/l3kernel/l3news12.pdf
+++ b/macros/latex/contrib/l3kernel/l3news12.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3pdf.dtx b/macros/latex/contrib/l3kernel/l3pdf.dtx
index a2b39ce081..b929276503 100644
--- a/macros/latex/contrib/l3kernel/l3pdf.dtx
+++ b/macros/latex/contrib/l3kernel/l3pdf.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3prefixes.csv b/macros/latex/contrib/l3kernel/l3prefixes.csv
index d6d5b19083..9b4a1d638e 100644
--- a/macros/latex/contrib/l3kernel/l3prefixes.csv
+++ b/macros/latex/contrib/l3kernel/l3prefixes.csv
@@ -197,6 +197,7 @@ ptxcd,ptxcd, Marei Peischl,,,,2020-07-27,2020-07-27,Used for specific corporate
qrbill,qrbill,Marei Peischl,https://github.com/peiTeX/qrbill,https://github.com/peiTeX/qrbill.git,https://github.com/peiTeX/qrbill/issues,2020-06-27,2020-06-27,
quark,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
randomwalk,randomwalk,Bruno Le Floch,https://github.com/blefloch/latex-randomwalk,https://github.com/blefloch/latex-randomwalk.git,https://github.com/blefloch/latex-randomwalk/issues,2013-03-16,2015-09-22,
+rawobjects,rawobjects,Paolo De Donato,https://github.com/Loara/lt3rawobjects,https://github.com/Loara/lt3rawobjects/lt3rawobjects.git,https://github.com/Loara/lt3rawobjects/issues,2022-07-19,2022-07-19,
recursion,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
ref,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2020-12-24,2020-12-24,
regex,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2018-04-06,
@@ -207,6 +208,7 @@ rivmath,rivmath,Julien Rivaud,,,,2018-06-13,2018-06-13,
scan,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
schulma,schulmathematik,Keno Wehr,https://ctan.org/pkg/schulmathematik,,,2021-08-23,2021-08-23,
scontents,scontents,Pablo González,https://github.com/pablgonz/scontents,git@github.com:pablgonz/scontents.git,https://github.com/pablgonz/scontents/issues,2019-12-05,2019-12-05,
+scripture,scripture,David Purton,https://github.com/dcpurton/scripture,https://github.com/dcpurton/scripture.git,https://github.com/dcpurton/scripture/issues,2022-07-27,2022-07-27,
sdaps,sdaps,Benjamin Berg,https://sdaps.org,https://github.com/sdaps/sdaps-class.git,https://github.com/sdaps/sdaps-class/issues,2020-02-17,2020-02-17,
seq,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
shipout,latex2e,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex2e.git,https://github.com/latex3/latex2e/issues,2020-10-01,2021-03-03,
@@ -230,6 +232,7 @@ tcobox,tcolorbox,Thomas F. Sturm,https://github.com/T-F-S/tcolorbox,https://gith
term,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
tex,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
text,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2020-01-15,2020-01-15,
+tikzfill,tikzfill,Thomas F. Sturm,https://github.com/T-F-S/tikzfill,https://github.com/T-F-S/tikzfill.git,https://github.com/T-F-S/tikzfill/issues,2022-07-19,2022-07-19,
tikzsymbols,tikzsymbols,Ben Vitecek,https://github.com/Vidabe/tikzsymbols,https://github.com/Vidabe/tikzsymbols.git,https://github.com/Vidabe/tikzsymbols/issues,2018-09-26,2018-09-26,
tilde,l3kernel,The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2018-05-12,2018-05-12,
tl,"l3kernel,l3tl-build",The LaTeX Project,https://www.latex-project.org/latex3.html,https://github.com/latex3/latex3.git,https://github.com/latex3/latex3/issues,2012-09-27,2012-09-27,
diff --git a/macros/latex/contrib/l3kernel/l3prefixes.pdf b/macros/latex/contrib/l3kernel/l3prefixes.pdf
index 8f93ae173e..8bd5db2c04 100644
--- a/macros/latex/contrib/l3kernel/l3prefixes.pdf
+++ b/macros/latex/contrib/l3kernel/l3prefixes.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3prg.dtx b/macros/latex/contrib/l3kernel/l3prg.dtx
index 7152285606..2ed4632e64 100644
--- a/macros/latex/contrib/l3kernel/l3prg.dtx
+++ b/macros/latex/contrib/l3kernel/l3prg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3prop.dtx b/macros/latex/contrib/l3kernel/l3prop.dtx
index a5a13f073f..a5726a0e7b 100644
--- a/macros/latex/contrib/l3kernel/l3prop.dtx
+++ b/macros/latex/contrib/l3kernel/l3prop.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3quark.dtx b/macros/latex/contrib/l3kernel/l3quark.dtx
index d708f237cd..452a2cb7d5 100644
--- a/macros/latex/contrib/l3kernel/l3quark.dtx
+++ b/macros/latex/contrib/l3kernel/l3quark.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3regex.dtx b/macros/latex/contrib/l3kernel/l3regex.dtx
index 508dca74cc..32e7267129 100644
--- a/macros/latex/contrib/l3kernel/l3regex.dtx
+++ b/macros/latex/contrib/l3kernel/l3regex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3seq.dtx b/macros/latex/contrib/l3kernel/l3seq.dtx
index 5ae4b3344e..fd9a8b3a02 100644
--- a/macros/latex/contrib/l3kernel/l3seq.dtx
+++ b/macros/latex/contrib/l3kernel/l3seq.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3skip.dtx b/macros/latex/contrib/l3kernel/l3skip.dtx
index d6800205e2..590b6bdf9f 100644
--- a/macros/latex/contrib/l3kernel/l3skip.dtx
+++ b/macros/latex/contrib/l3kernel/l3skip.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3sort.dtx b/macros/latex/contrib/l3kernel/l3sort.dtx
index c764895fc3..75ced1644a 100644
--- a/macros/latex/contrib/l3kernel/l3sort.dtx
+++ b/macros/latex/contrib/l3kernel/l3sort.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3str-convert.dtx b/macros/latex/contrib/l3kernel/l3str-convert.dtx
index ba9432c5a0..7e9cf89a7a 100644
--- a/macros/latex/contrib/l3kernel/l3str-convert.dtx
+++ b/macros/latex/contrib/l3kernel/l3str-convert.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3str.dtx b/macros/latex/contrib/l3kernel/l3str.dtx
index 5097d28354..5ad97df2f9 100644
--- a/macros/latex/contrib/l3kernel/l3str.dtx
+++ b/macros/latex/contrib/l3kernel/l3str.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3styleguide.pdf b/macros/latex/contrib/l3kernel/l3styleguide.pdf
index 9fe67a1e30..ad6b0b5143 100644
--- a/macros/latex/contrib/l3kernel/l3styleguide.pdf
+++ b/macros/latex/contrib/l3kernel/l3styleguide.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3styleguide.tex b/macros/latex/contrib/l3kernel/l3styleguide.tex
index cc884a2dd2..fdce272778 100644
--- a/macros/latex/contrib/l3kernel/l3styleguide.tex
+++ b/macros/latex/contrib/l3kernel/l3styleguide.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2022-07-15}
+\date{Released 2022-08-05}
\begin{document}
diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
index 9c2738c576..2bab90a411 100644
--- a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
+++ b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.tex b/macros/latex/contrib/l3kernel/l3syntax-changes.tex
index bb5936632a..24770ec0a2 100644
--- a/macros/latex/contrib/l3kernel/l3syntax-changes.tex
+++ b/macros/latex/contrib/l3kernel/l3syntax-changes.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2022-07-15}
+\date{Released 2022-08-05}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/macros/latex/contrib/l3kernel/l3sys.dtx b/macros/latex/contrib/l3kernel/l3sys.dtx
index a25c0867af..46263e0b2c 100644
--- a/macros/latex/contrib/l3kernel/l3sys.dtx
+++ b/macros/latex/contrib/l3kernel/l3sys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
@@ -290,9 +290,25 @@
% use will be loaded. This command may only be used once.
% \end{function}
%
+% \begin{function}[added = 2022-07-29]{\sys_ensure_backend:}
+% \begin{syntax}
+% \cs{sys_ensure_backend:}
+% \end{syntax}
+% Ensures that a backend has been loaded by calling \cs{sys_load_backend:n}
+% if required.
+% \end{function}
+%
% \begin{variable}{\c_sys_backend_str}
% Set to the name of the backend in use by \cs{sys_load_backend:n} when
-% issued.
+% issued. Possible values are
+% \begin{itemize}
+% \item \texttt{pdftex}
+% \item \texttt{luatex}
+% \item \texttt{xetex}
+% \item \texttt{dvips}
+% \item \texttt{dvipdfmx}
+% \item \texttt{dvisvgm}
+% \end{itemize}
% \end{variable}
%
% \begin{function}[added = 2019-09-12]{\sys_load_debug:}
@@ -561,6 +577,17 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\sys_ensure_backend:}
+% A simple wrapper.
+% \begin{macrocode}
+\cs_new_protected:Npn \sys_ensure_backend:
+ {
+ \str_if_exist:NF \c_sys_backend_str
+ { \sys_load_backend:n { } }
+ }
+% \end{macrocode}
+% \end{macro}
+%
% \begin{variable}{\g_@@_debug_bool}
% \begin{macrocode}
\bool_new:N \g_@@_debug_bool
diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.pdf b/macros/latex/contrib/l3kernel/l3term-glossary.pdf
index 57630a1251..b7ebcec6f2 100644
--- a/macros/latex/contrib/l3kernel/l3term-glossary.pdf
+++ b/macros/latex/contrib/l3kernel/l3term-glossary.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.tex b/macros/latex/contrib/l3kernel/l3term-glossary.tex
index d3dbb4442f..9a875c04ae 100644
--- a/macros/latex/contrib/l3kernel/l3term-glossary.tex
+++ b/macros/latex/contrib/l3kernel/l3term-glossary.tex
@@ -32,7 +32,7 @@ The released version of this bundle is available from CTAN.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2022-07-15}
+\date{Released 2022-08-05}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/macros/latex/contrib/l3kernel/l3text-case.dtx b/macros/latex/contrib/l3kernel/l3text-case.dtx
index a2ed47843b..ef6751ac93 100644
--- a/macros/latex/contrib/l3kernel/l3text-case.dtx
+++ b/macros/latex/contrib/l3kernel/l3text-case.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
@@ -357,7 +357,7 @@
% \begin{macrocode}
\cs_new:Npn \@@_change_case_N_type:nnN #1#2#3
{
- \@@_if_recursion_tail_stop_do:Nn #3
+ \@@_if_q_recursion_tail_stop_do:Nn #3
{ \@@_change_case_end:w }
\@@_change_case_N_type_aux:nnN {#1} {#2} #3
}
@@ -374,7 +374,7 @@
}
\cs_new:Npn \@@_change_case_math_search:nnNNN #1#2#3#4#5
{
- \@@_if_recursion_tail_stop_do:Nn #4
+ \@@_if_q_recursion_tail_stop_do:Nn #4
{ \@@_change_case_cs_check:nnN {#1} {#2} #3 }
\token_if_eq_meaning:NNTF #3 #4
{
@@ -399,7 +399,7 @@
}
\cs_new:Npn \@@_change_case_math_N_type:nnNN #1#2#3#4
{
- \@@_if_recursion_tail_stop_do:Nn #4
+ \@@_if_q_recursion_tail_stop_do:Nn #4
{ \@@_change_case_end:w }
\@@_change_case_store:n {#4}
\token_if_eq_meaning:NNTF #4 #3
@@ -454,7 +454,7 @@
}
\cs_new:Npn \@@_change_case_exclude:nnNN #1#2#3#4
{
- \@@_if_recursion_tail_stop_do:Nn #4
+ \@@_if_q_recursion_tail_stop_do:Nn #4
{ \@@_change_case_replace:nnN {#1} {#2} #3 }
\str_if_eq:nnTF {#3} {#4}
{
@@ -910,6 +910,9 @@
% \begin{macro}[EXP]{\@@_change_case_upper_el_hiatus:nnN}
% \begin{macro}[EXP]{\@@_change_case_upper_el_gobble:nnw}
% \begin{macro}[EXP]{\@@_change_case_upper_el_gobble:nnN}
+% \begin{macro}[EXP]{\@@_change_case_upper_el:nnnNN}
+% \begin{macro}[EXP]{\@@_change_case_upper_el:nnnNNN}
+% \begin{macro}[EXP]{\@@_change_case_upper_el:nnnn}
% \begin{macro}[EXP,TF]{\@@_change_case_if_greek:n}
% \begin{macro}[EXP,pTF]{\@@_change_case_if_greek:n}
% \begin{macro}[EXP,pTF]{\@@_change_case_if_greek_accent:n}
@@ -927,7 +930,7 @@
% \emph{ypogegrammeni} is filtered out here as it is not actually in the
% Greek range, so gets lost if we leave until later.
% \begin{macrocode}
-\bool_lazy_or:nnT
+\bool_lazy_or:nnTF
{ \sys_if_engine_luatex_p: }
{ \sys_if_engine_xetex_p: }
{
@@ -1130,6 +1133,43 @@
}
}
% \end{macrocode}
+% For $8$-bit engines we use a simplified approach: covers the common
+% requirements. This is basically how \pkg{xgreek} works but done by
+% expansion: use fixed mappings from accented to accent-free letters.
+% Only the two- and three-byte ranges can be involved.
+% \begin{macrocode}
+ {
+ \cs_new:Npn \@@_change_case_upper_el:nnnN #1#2#3#4
+ {
+ \int_compare:nNnTF { `#4 } > { "80 }
+ {
+ \int_compare:nNnTF { `#4 } < { "E0 }
+ { \@@_change_case_upper_el:nnnNN }
+ {
+ \int_compare:nNnTF { `#4 } < { "F0 }
+ { \@@_change_case_upper_el:nnnNNN }
+ { \@@_change_case_char:nnnN }
+ }
+ }
+ { \@@_change_case_char:nnnN }
+ {#1} {#2} {#3} #4
+ }
+ \cs_new:Npn \@@_change_case_upper_el:nnnNN #1#2#3#4#5
+ { \@@_change_case_upper_el:nnnn {#1} {#2} {#3} {#4#5} }
+ \cs_new:Npn \@@_change_case_upper_el:nnnNNN #1#2#3#4#5#6
+ { \@@_change_case_upper_el:nnnn {#1} {#2} {#3} {#4#5#6} }
+ \cs_new:Npn \@@_change_case_upper_el:nnnn #1#2#3#4
+ {
+ \cs_if_exist:cTF { c_@@_uppercase_el_ \tl_to_str:n {#4} _tl }
+ {
+ \@@_change_case_store:v
+ { c_@@_uppercase_el_ \tl_to_str:n {#4} _tl }
+ \@@_change_case_loop:nnw {#1} {#3}
+ }
+ { \@@_change_case_char:nnnN {#1} {#2} {#3} #4 }
+ }
+ }
+% \end{macrocode}
% Luckily the Greek range is limited and clear.
% \begin{macrocode}
\prg_new_conditional:Npnn \@@_change_case_if_greek:n #1 { TF }
@@ -1268,6 +1308,9 @@
% \end{macro}
% \end{macro}
% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
% \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:Nnnw}
% \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnN}
% \begin{macro}[EXP]{\@@_change_case_boundary_upper_el:nnNw}
@@ -2114,6 +2157,27 @@
\@@_tmp:w { 03F4 } { 03B8 } { lower }
\@@_tmp:w { 03F5 } { 0395 } { upper }
% \end{macrocode}
+% Croatian digraph letters: these have a titlecase variant.
+% \begin{macrocode}
+ \@@_tmp:w { 01C4 } { 01C5 } { title }
+ \@@_tmp:w { 01C4 } { 01C6 } { lower }
+ \@@_tmp:w { 01C5 } { 01C4 } { upper }
+ \@@_tmp:w { 01C5 } { 01C6 } { lower }
+ \@@_tmp:w { 01C6 } { 01C4 } { upper }
+ \@@_tmp:w { 01C6 } { 01C5 } { title }
+ \@@_tmp:w { 01C7 } { 01C8 } { title }
+ \@@_tmp:w { 01C7 } { 01C9 } { lower }
+ \@@_tmp:w { 01C8 } { 01C7 } { upper }
+ \@@_tmp:w { 01C8 } { 01C9 } { lower }
+ \@@_tmp:w { 01C9 } { 01C7 } { upper }
+ \@@_tmp:w { 01C9 } { 01C8 } { title }
+ \@@_tmp:w { 01CA } { 01CB } { title }
+ \@@_tmp:w { 01CA } { 01CC } { lower }
+ \@@_tmp:w { 01CB } { 01CA } { upper }
+ \@@_tmp:w { 01CB } { 01CC } { lower }
+ \@@_tmp:w { 01CC } { 01CA } { upper }
+ \@@_tmp:w { 01CC } { 01CB } { title }
+% \end{macrocode}
% Odds and ends that are not simple one-to-one mappings. These
% are still two-octet code points.
% \begin{macrocode}
@@ -2312,6 +2376,371 @@
\group_end:
}
\@@_tmp:w { 1FBE } { 0399 } { upper }
+% \end{macrocode}
+% Greek accent suppression for uppercasing.
+% \begin{macrocode}
+ \cs_set_protected:Npn \@@_tmp:w #1#2#3#4#5#6#7#8
+ {
+ \tl_const:cx
+ {
+ c_@@_uppercase_el_
+ \char_generate:nn {#1} { 12 }
+ \char_generate:nn {#2} { 12 }
+ _tl
+ }
+ {
+ \exp_after:wN \exp_after:wN \exp_after:wN
+ \exp_not:N \char_generate:nn {#5} { 13 }
+ \exp_after:wN \exp_after:wN \exp_after:wN
+ \exp_not:N \char_generate:nn {#6} { 13 }
+ }
+ }
+ \@@_loop:nn
+ { 0370 } { 0370 }
+ { 0371 } { 0370 }
+ { 0372 } { 0372 }
+ { 0373 } { 0372 }
+ { 0376 } { 0376 }
+ { 0377 } { 0376 }
+ { 03FD } { 03FD }
+ { 037B } { 03FD }
+ { 03FE } { 03FE }
+ { 037C } { 03FE }
+ { 03FF } { 03FF }
+ { 037D } { 03FF }
+ { 0386 } { 0391 }
+ { 0388 } { 0395 }
+ { 0389 } { 0397 }
+ { 038A } { 0399 }
+ { 038C } { 039F }
+ { 038E } { 03A5 }
+ { 038F } { 03A9 }
+ { 0390 } { 03AA }
+ { 0391 } { 0391 }
+ { 0392 } { 0392 }
+ { 0393 } { 0393 }
+ { 0394 } { 0394 }
+ { 0395 } { 0395 }
+ { 0396 } { 0396 }
+ { 0397 } { 0397 }
+ { 0398 } { 0398 }
+ { 0399 } { 0399 }
+ { 039A } { 039A }
+ { 039B } { 039B }
+ { 039C } { 039C }
+ { 039D } { 039D }
+ { 039E } { 039E }
+ { 039F } { 039F }
+ { 03A0 } { 03A0 }
+ { 03A1 } { 03A1 }
+ { 03A3 } { 03A3 }
+ { 03A4 } { 03A4 }
+ { 03A5 } { 03A5 }
+ { 03A6 } { 03A6 }
+ { 03A7 } { 03A7 }
+ { 03A8 } { 03A8 }
+ { 03A9 } { 03A9 }
+ { 03AA } { 03AA }
+ { 03AB } { 03AB }
+ { 03AC } { 0391 }
+ { 03AD } { 0395 }
+ { 03AE } { 0397 }
+ { 03AF } { 0399 }
+ { 03B0 } { 03AB }
+ { 03B1 } { 0391 }
+ { 03B2 } { 0392 }
+ { 03B3 } { 0393 }
+ { 03B4 } { 0394 }
+ { 03B5 } { 0395 }
+ { 03B6 } { 0396 }
+ { 03B7 } { 0397 }
+ { 03B8 } { 0398 }
+ { 03B9 } { 0399 }
+ { 03BA } { 039A }
+ { 03BB } { 039B }
+ { 03BC } { 039C }
+ { 03BD } { 039D }
+ { 03BE } { 039E }
+ { 03BF } { 039F }
+ { 03C0 } { 03A0 }
+ { 03C1 } { 03A1 }
+ { 03C2 } { 03A3 }
+ { 03C3 } { 03A3 }
+ { 03C4 } { 03A4 }
+ { 03C5 } { 03A5 }
+ { 03C6 } { 03A6 }
+ { 03C7 } { 03A7 }
+ { 03C8 } { 03A8 }
+ { 03C9 } { 03A9 }
+ { 03CA } { 03AA }
+ { 03CB } { 03AB }
+ { 03CC } { 039F }
+ { 03CD } { 03A5 }
+ { 03CE } { 03A9 }
+ { 03D0 } { 0392 }
+ { 03D1 } { 0398 }
+ { 03D2 } { 03A5 }
+ { 03D3 } { 03A5 }
+ { 03D4 } { 03AB }
+ { 03D5 } { 03A6 }
+ { 03D6 } { 03A0 }
+ { 03DA } { 03DA }
+ { 03DB } { 03DA }
+ { 03DC } { 03DC }
+ { 03DD } { 03DC }
+ { 03DE } { 03DE }
+ { 03DF } { 03DE }
+ { 03E0 } { 03E0 }
+ { 03E1 } { 03E0 }
+ { 03F0 } { 039A }
+ { 03F1 } { 03A1 }
+ { 03F2 } { 03F9 }
+ { 03F9 } { 03F9 }
+ \q_recursion_tail ?
+ \q_recursion_stop
+ \cs_set_protected:Npn \@@_tmp:w #1#2#3#4#5#6#7#8
+ {
+ \tl_const:cx
+ {
+ c_@@_uppercase_el_
+ \char_generate:nn {#1} { 12 }
+ \char_generate:nn {#2} { 12 }
+ \char_generate:nn {#3} { 12 }
+ _tl
+ }
+ {
+ \exp_after:wN \exp_after:wN \exp_after:wN
+ \exp_not:N \char_generate:nn {#5} { 13 }
+ \exp_after:wN \exp_after:wN \exp_after:wN
+ \exp_not:N \char_generate:nn {#6} { 13 }
+ \tl_if_blank:nF {#7}
+ {
+ \exp_after:wN \exp_after:wN \exp_after:wN
+ \exp_not:N \char_generate:nn {#7} { 13 }
+ }
+ }
+ }
+ \@@_loop:nn
+ { 1F00 } { 0391 }
+ { 1F01 } { 0391 }
+ { 1F02 } { 0391 }
+ { 1F03 } { 0391 }
+ { 1F04 } { 0391 }
+ { 1F05 } { 0391 }
+ { 1F06 } { 0391 }
+ { 1F07 } { 0391 }
+ { 1F08 } { 0391 }
+ { 1F09 } { 0391 }
+ { 1F0A } { 0391 }
+ { 1F0B } { 0391 }
+ { 1F0C } { 0391 }
+ { 1F0D } { 0391 }
+ { 1F0E } { 0391 }
+ { 1F0F } { 0391 }
+ { 1F10 } { 0395 }
+ { 1F11 } { 0395 }
+ { 1F12 } { 0395 }
+ { 1F13 } { 0395 }
+ { 1F14 } { 0395 }
+ { 1F15 } { 0395 }
+ { 1F18 } { 0395 }
+ { 1F19 } { 0395 }
+ { 1F1A } { 0395 }
+ { 1F1B } { 0395 }
+ { 1F1C } { 0395 }
+ { 1F1D } { 0395 }
+ { 1F20 } { 0397 }
+ { 1F21 } { 0397 }
+ { 1F22 } { 0397 }
+ { 1F23 } { 0397 }
+ { 1F24 } { 0397 }
+ { 1F25 } { 0397 }
+ { 1F26 } { 0397 }
+ { 1F27 } { 0397 }
+ { 1F28 } { 0397 }
+ { 1F29 } { 0397 }
+ { 1F2A } { 0397 }
+ { 1F2B } { 0397 }
+ { 1F2C } { 0397 }
+ { 1F2D } { 0397 }
+ { 1F2E } { 0397 }
+ { 1F2F } { 0397 }
+ { 1F30 } { 0399 }
+ { 1F31 } { 0399 }
+ { 1F32 } { 0399 }
+ { 1F33 } { 0399 }
+ { 1F34 } { 0399 }
+ { 1F35 } { 0399 }
+ { 1F36 } { 0399 }
+ { 1F37 } { 0399 }
+ { 1F38 } { 0399 }
+ { 1F39 } { 0399 }
+ { 1F3A } { 0399 }
+ { 1F3B } { 0399 }
+ { 1F3C } { 0399 }
+ { 1F3D } { 0399 }
+ { 1F3E } { 0399 }
+ { 1F3F } { 0399 }
+ { 1F40 } { 039F }
+ { 1F41 } { 039F }
+ { 1F42 } { 039F }
+ { 1F43 } { 039F }
+ { 1F44 } { 039F }
+ { 1F45 } { 039F }
+ { 1F48 } { 039F }
+ { 1F49 } { 039F }
+ { 1F4A } { 039F }
+ { 1F4B } { 039F }
+ { 1F4C } { 039F }
+ { 1F4D } { 039F }
+ { 1F50 } { 03A5 }
+ { 1F51 } { 03A5 }
+ { 1F52 } { 03A5 }
+ { 1F53 } { 03A5 }
+ { 1F54 } { 03A5 }
+ { 1F55 } { 03A5 }
+ { 1F56 } { 03A5 }
+ { 1F57 } { 03A5 }
+ { 1F59 } { 03A5 }
+ { 1F5B } { 03A5 }
+ { 1F5D } { 03A5 }
+ { 1F5F } { 03A5 }
+ { 1F60 } { 03A9 }
+ { 1F61 } { 03A9 }
+ { 1F62 } { 03A9 }
+ { 1F63 } { 03A9 }
+ { 1F64 } { 03A9 }
+ { 1F65 } { 03A9 }
+ { 1F66 } { 03A9 }
+ { 1F67 } { 03A9 }
+ { 1F68 } { 03A9 }
+ { 1F69 } { 03A9 }
+ { 1F6A } { 03A9 }
+ { 1F6B } { 03A9 }
+ { 1F6C } { 03A9 }
+ { 1F6D } { 03A9 }
+ { 1F6E } { 03A9 }
+ { 1F6F } { 03A9 }
+ { 1F70 } { 0391 }
+ { 1F71 } { 0391 }
+ { 1F72 } { 0395 }
+ { 1F73 } { 0395 }
+ { 1F74 } { 0397 }
+ { 1F75 } { 0397 }
+ { 1F76 } { 0399 }
+ { 1F77 } { 0399 }
+ { 1F78 } { 039F }
+ { 1F79 } { 039F }
+ { 1F7A } { 03A5 }
+ { 1F7B } { 03A5 }
+ { 1F7C } { 03A9 }
+ { 1F7D } { 03A9 }
+ { 1F80 } { 1FBC }
+ { 1F81 } { 1FBC }
+ { 1F82 } { 1FBC }
+ { 1F83 } { 1FBC }
+ { 1F84 } { 1FBC }
+ { 1F85 } { 1FBC }
+ { 1F86 } { 1FBC }
+ { 1F87 } { 1FBC }
+ { 1F88 } { 1FBC }
+ { 1F89 } { 1FBC }
+ { 1F8A } { 1FBC }
+ { 1F8B } { 1FBC }
+ { 1F8C } { 1FBC }
+ { 1F8D } { 1FBC }
+ { 1F8E } { 1FBC }
+ { 1F8F } { 1FBC }
+ { 1F90 } { 1FCC }
+ { 1F91 } { 1FCC }
+ { 1F92 } { 1FCC }
+ { 1F93 } { 1FCC }
+ { 1F94 } { 1FCC }
+ { 1F95 } { 1FCC }
+ { 1F96 } { 1FCC }
+ { 1F97 } { 1FCC }
+ { 1F98 } { 1FCC }
+ { 1F99 } { 1FCC }
+ { 1F9A } { 1FCC }
+ { 1F9B } { 1FCC }
+ { 1F9C } { 1FCC }
+ { 1F9D } { 1FCC }
+ { 1F9E } { 1FCC }
+ { 1F9F } { 1FCC }
+ { 1FA0 } { 1FFC }
+ { 1FA1 } { 1FFC }
+ { 1FA2 } { 1FFC }
+ { 1FA3 } { 1FFC }
+ { 1FA4 } { 1FFC }
+ { 1FA5 } { 1FFC }
+ { 1FA6 } { 1FFC }
+ { 1FA7 } { 1FFC }
+ { 1FA8 } { 1FFC }
+ { 1FA9 } { 1FFC }
+ { 1FAA } { 1FFC }
+ { 1FAB } { 1FFC }
+ { 1FAC } { 1FFC }
+ { 1FAD } { 1FFC }
+ { 1FAE } { 1FFC }
+ { 1FAF } { 1FFC }
+ { 1FB0 } { 1FB8 }
+ { 1FB1 } { 1FB9 }
+ { 1FB2 } { 1FBC }
+ { 1FB3 } { 1FBC }
+ { 1FB4 } { 1FBC }
+ { 1FB6 } { 0391 }
+ { 1FB7 } { 1FBC }
+ { 1FB8 } { 1FB8 }
+ { 1FB9 } { 1FB9 }
+ { 1FBA } { 0391 }
+ { 1FBB } { 0391 }
+ { 1FBC } { 1FBC }
+ { 1FBD } { 1FBD }
+ { 1FC2 } { 1FCC }
+ { 1FC3 } { 1FCC }
+ { 1FC4 } { 1FCC }
+ { 1FC6 } { 0397 }
+ { 1FC7 } { 1FCC }
+ { 1FC8 } { 0395 }
+ { 1FC9 } { 0395 }
+ { 1FCA } { 0397 }
+ { 1FCB } { 0397 }
+ { 1FCC } { 1FCC }
+ { 1FD0 } { 1FD8 }
+ { 1FD1 } { 1FD9 }
+ { 1FD2 } { 03AA }
+ { 1FD3 } { 03AA }
+ { 1FD6 } { 0399 }
+ { 1FD7 } { 03AA }
+ { 1FD8 } { 1FD8 }
+ { 1FD9 } { 1FD9 }
+ { 1FDA } { 0399 }
+ { 1FDB } { 0399 }
+ { 1FE0 } { 1FE8 }
+ { 1FE1 } { 1FE9 }
+ { 1FE2 } { 03AB }
+ { 1FE3 } { 03AB }
+ { 1FE4 } { 03A1 }
+ { 1FE5 } { 03A1 }
+ { 1FE6 } { 03A5 }
+ { 1FE7 } { 03AB }
+ { 1FE8 } { 1FE8 }
+ { 1FE9 } { 1FE9 }
+ { 1FEA } { 03A5 }
+ { 1FEB } { 03A5 }
+ { 1FEC } { 1FEC }
+ { 1FF2 } { 1FFC }
+ { 1FF3 } { 1FFC }
+ { 1FF4 } { 1FFC }
+ { 1FF6 } { 03A9 }
+ { 1FF7 } { 1FFC }
+ { 1FF8 } { 039F }
+ { 1FF9 } { 039F }
+ { 1FFA } { 03A9 }
+ { 1FFB } { 03A9 }
+ { 1FFC } { 1FFC }
+ \q_recursion_tail ?
+ \q_recursion_stop
}
\group_end:
% \end{macrocode}
diff --git a/macros/latex/contrib/l3kernel/l3text-purify.dtx b/macros/latex/contrib/l3kernel/l3text-purify.dtx
index 605a30a5a6..6006409985 100644
--- a/macros/latex/contrib/l3kernel/l3text-purify.dtx
+++ b/macros/latex/contrib/l3kernel/l3text-purify.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
@@ -157,7 +157,7 @@
% \begin{macrocode}
\cs_new:Npn \@@_purify_N_type:N #1
{
- \@@_if_recursion_tail_stop_do:Nn #1 { \@@_purify_end:w }
+ \@@_if_q_recursion_tail_stop_do:Nn #1 { \@@_purify_end:w }
\@@_purify_N_type_aux:N #1
}
\cs_new:Npn \@@_purify_N_type_aux:N #1
@@ -169,7 +169,7 @@
}
\cs_new:Npn \@@_purify_math_search:NNN #1#2#3
{
- \@@_if_recursion_tail_stop_do:Nn #2
+ \@@_if_q_recursion_tail_stop_do:Nn #2
{ \@@_purify_math_cmd:N #1 }
\token_if_eq_meaning:NNTF #1 #2
{
@@ -210,7 +210,7 @@
}
\cs_new:Npn \@@_purify_math_N_type:NNN #1#2#3
{
- \@@_if_recursion_tail_stop_do:Nn #3
+ \@@_if_q_recursion_tail_stop_do:Nn #3
{ \@@_purify_math_stop:Nw #1 }
\token_if_eq_meaning:NNTF #3 #2
{ \@@_purify_math_end:w }
@@ -242,7 +242,7 @@
}
\cs_new:Npn \@@_purify_math_cmd:NN #1#2
{
- \@@_if_recursion_tail_stop_do:Nn #2
+ \@@_if_q_recursion_tail_stop_do:Nn #2
{ \@@_purify_replace:N #1 }
\cs_if_eq:NNTF #2 #1
{
@@ -293,7 +293,7 @@
}
\cs_new:Npn \@@_purify_protect:N #1
{
- \@@_if_recursion_tail_stop_do:Nn #1 { \@@_purify_end:w }
+ \@@_if_q_recursion_tail_stop_do:Nn #1 { \@@_purify_end:w }
\@@_purify_loop:w
}
% \end{macrocode}
diff --git a/macros/latex/contrib/l3kernel/l3text.dtx b/macros/latex/contrib/l3kernel/l3text.dtx
index 7615cf3969..67218edf30 100644
--- a/macros/latex/contrib/l3kernel/l3text.dtx
+++ b/macros/latex/contrib/l3kernel/l3text.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
@@ -170,11 +170,12 @@
% Unicode \TeX{} engines.
% \item Greek (\texttt{el}).
% Removes accents from Greek letters when uppercasing; titlecasing
-% leaves accents in place. (At present this is implemented only
-% for Unicode engines.) A variant \texttt{el-x-iota} is available
+% leaves accents in place. A variant \texttt{el-x-iota} is available
% which retains the \textit{ypogegrammeni} (subscript muted iota)
% when uppercasing: the standard version converts these to a following
-% capital iota.
+% capital iota. For $8$-bit engines a simplified approach is taken
+% which will remove accents when uppercasing but without full
+% context analysis.
% \item Lithuanian (\texttt{lt}).
% The lowercase letters i and j should retain a dot above when the
% accents grave, acute or tilde are present. This is implemented for
@@ -355,10 +356,42 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[EXP]{\@@_if_recursion_tail_stop_do:Nn}
+% \begin{macro}[EXP]{\@@_if_q_recursion_tail_stop_do:Nn}
% Functions to query recursion quarks.
% \begin{macrocode}
-\__kernel_quark_new_test:N \@@_if_recursion_tail_stop_do:Nn
+\__kernel_quark_new_test:N \@@_if_q_recursion_tail_stop_do:Nn
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{variable}{\s_@@_recursion_tail,\s_@@_recursion_stop}
+% Internal scan marks quarks.
+% \begin{macrocode}
+\scan_new:N \s_@@_recursion_tail
+\scan_new:N \s_@@_recursion_stop
+% \end{macrocode}
+% \end{variable}
+%
+% \begin{macro}[EXP]{\@@_use_i_delimit_by_s_recursion_stop:nw}
+% Functions to gobble up to a scan mark.
+% \begin{macrocode}
+\cs_new:Npn \@@_use_i_delimit_by_s_recursion_stop:nw
+ #1 #2 \s_@@_recursion_stop {#1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[EXP]{\@@_if_s_recursion_tail_stop_do:Nn}
+% Functions to query recursion scan marks. Slower than a quark
+% test but needed to avoid issues in the outer expansion loop
+% with unterminated \tn{romannumeral} primitives.
+% \begin{macrocode}
+\cs_new:Npn \@@_if_s_recursion_tail_stop_do:Nn #1
+ {
+ \bool_lazy_and:nnTF
+ { \cs_if_eq_p:NN \s_@@_recursion_tail #1 }
+ { \str_if_eq_p:nn { \s_@@_recursion_tail } {#1} }
+ { \@@_use_i_delimit_by_s_recursion_stop:nw }
+ { \use_none:n }
+ }
% \end{macrocode}
% \end{macro}
%
@@ -731,7 +764,9 @@
% arbitrary user commands which might be protected \emph{and} take
% arguments, and if the expansion code is used in a typesetting
% context, that will otherwise explode. (The same issue applies more
-% clearly to case changing: see the example there.)
+% clearly to case changing: see the example there.) The outer
+% loop has to use scan marks as delimiters to protect against
+% unterminated \tn{romannumeral} usage in the input.
% \begin{macrocode}
\cs_new:Npn \text_expand:n #1
{
@@ -745,7 +780,7 @@
{
\group_align_safe_begin:
\@@_expand_loop:w #1
- \q_@@_recursion_tail \q_@@_recursion_stop
+ \s_@@_recursion_tail \s_@@_recursion_stop
\@@_expand_result:n { }
}
% \end{macrocode}
@@ -768,7 +803,7 @@
% recursively, while spaces are just passed through. Thus all of the
% action is in handling \texttt{N}-type tokens.
% \begin{macrocode}
-\cs_new:Npn \@@_expand_loop:w #1 \q_@@_recursion_stop
+\cs_new:Npn \@@_expand_loop:w #1 \s_@@_recursion_stop
{
\tl_if_head_is_N_type:nTF {#1}
{ \@@_expand_N_type:N }
@@ -777,7 +812,7 @@
{ \@@_expand_group:n }
{ \@@_expand_space:w }
}
- #1 \q_@@_recursion_stop
+ #1 \s_@@_recursion_stop
}
\cs_new:Npn \@@_expand_group:n #1
{
@@ -805,7 +840,7 @@
% \begin{macrocode}
\cs_new:Npx \@@_expand_N_type:N #1
{
- \exp_not:N \@@_if_recursion_tail_stop_do:Nn #1
+ \exp_not:N \@@_if_s_recursion_tail_stop_do:Nn #1
{ \exp_not:N \@@_expand_end:w }
\exp_not:N \bool_lazy_any:nTF
{
@@ -884,7 +919,7 @@
}
\cs_new:Npn \@@_expand_math_search:NNN #1#2#3
{
- \@@_if_recursion_tail_stop_do:Nn #2
+ \@@_if_q_recursion_tail_stop_do:Nn #2
{ \@@_expand_explicit:N #1 }
\token_if_eq_meaning:NNTF #1 #2
{
@@ -896,7 +931,7 @@
}
{ \@@_expand_math_search:NNN #1 }
}
-\cs_new:Npn \@@_expand_math_loop:Nw #1#2 \q_@@_recursion_stop
+\cs_new:Npn \@@_expand_math_loop:Nw #1#2 \s_@@_recursion_stop
{
\tl_if_head_is_N_type:nTF {#2}
{ \@@_expand_math_N_type:NN }
@@ -905,11 +940,11 @@
{ \@@_expand_math_group:Nn }
{ \@@_expand_math_space:Nw }
}
- #1#2 \q_@@_recursion_stop
+ #1#2 \s_@@_recursion_stop
}
\cs_new:Npn \@@_expand_math_N_type:NN #1#2
{
- \@@_if_recursion_tail_stop_do:Nn #2
+ \@@_if_s_recursion_tail_stop_do:Nn #2
{ \@@_expand_end:w }
\@@_expand_store:n {#2}
\token_if_eq_meaning:NNTF #2 #1
@@ -989,7 +1024,7 @@
}
\cs_new:Npn \@@_expand_exclude:NN #1#2
{
- \@@_if_recursion_tail_stop_do:Nn #2
+ \@@_if_q_recursion_tail_stop_do:Nn #2
{ \@@_expand_accent:N #1 }
\str_if_eq:nnTF {#1} {#2}
{
@@ -1016,7 +1051,7 @@
}
\cs_new:Npn \@@_expand_accent:NN #1#2
{
- \@@_if_recursion_tail_stop_do:Nn #2
+ \@@_if_q_recursion_tail_stop_do:Nn #2
{ \@@_expand_letterlike:N #1 }
\cs_if_eq:NNTF #2 #1
{
@@ -1040,7 +1075,7 @@
}
\cs_new:Npn \@@_expand_letterlike:NN #1#2
{
- \@@_if_recursion_tail_stop_do:Nn #2
+ \@@_if_q_recursion_tail_stop_do:Nn #2
{ \@@_expand_cs:N #1 }
\cs_if_eq:NNTF #2 #1
{
@@ -1072,7 +1107,7 @@
{ \exp_not:N \@@_expand_replace:N #1 }
}
}
-\cs_new:Npn \@@_expand_protect:w #1 \q_@@_recursion_stop
+\cs_new:Npn \@@_expand_protect:w #1 \s_@@_recursion_stop
{
\tl_if_head_is_N_type:nTF {#1}
{ \@@_expand_protect:N }
@@ -1080,11 +1115,11 @@
\@@_expand_store:n { \protect }
\@@_expand_loop:w
}
- #1 \q_@@_recursion_stop
+ #1 \s_@@_recursion_stop
}
\cs_new:Npn \@@_expand_protect:N #1
{
- \@@_if_recursion_tail_stop_do:Nn #1
+ \@@_if_s_recursion_tail_stop_do:Nn #1
{
\@@_expand_store:n { \protect }
\@@_expand_end:w
@@ -1186,7 +1221,7 @@
\exp_after:wN \@@_expand_unexpanded_test:w
\exp:w \exp_end_continue_f:w
}
-\cs_new:Npn \@@_expand_unexpanded_test:w #1 \q_@@_recursion_stop
+\cs_new:Npn \@@_expand_unexpanded_test:w #1 \s_@@_recursion_stop
{
\tl_if_head_is_group:nTF {#1}
{ \@@_expand_unexpanded:n }
@@ -1194,7 +1229,7 @@
\@@_expand_unexpanded:w
\tl_if_head_is_N_type:nT {#1} { \@@_expand_unexpanded:N }
}
- #1 \q_@@_recursion_stop
+ #1 \s_@@_recursion_stop
}
\cs_new:Npn \@@_expand_unexpanded:N #1
{
diff --git a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
index c9cffed954..8d9106b617 100644
--- a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
+++ b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3tl.dtx b/macros/latex/contrib/l3kernel/l3tl.dtx
index 65178fa7b2..e4a04070ba 100644
--- a/macros/latex/contrib/l3kernel/l3tl.dtx
+++ b/macros/latex/contrib/l3kernel/l3tl.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3token.dtx b/macros/latex/contrib/l3kernel/l3token.dtx
index 0994d2de2d..728a54a47a 100644
--- a/macros/latex/contrib/l3kernel/l3token.dtx
+++ b/macros/latex/contrib/l3kernel/l3token.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3unicode.dtx b/macros/latex/contrib/l3kernel/l3unicode.dtx
index fbf1d0bd6c..b2df6d94dd 100644
--- a/macros/latex/contrib/l3kernel/l3unicode.dtx
+++ b/macros/latex/contrib/l3kernel/l3unicode.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-07-15}
+% \date{Released 2022-08-05}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/source3.pdf b/macros/latex/contrib/l3kernel/source3.pdf
index dfe83f03c4..1e8781ca75 100644
--- a/macros/latex/contrib/l3kernel/source3.pdf
+++ b/macros/latex/contrib/l3kernel/source3.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/source3.tex b/macros/latex/contrib/l3kernel/source3.tex
index 8a751726ac..8340ef3659 100644
--- a/macros/latex/contrib/l3kernel/source3.tex
+++ b/macros/latex/contrib/l3kernel/source3.tex
@@ -53,7 +53,7 @@ for those people who are interested.
{latex-team@latex-project.org}%
}%
}
-\date{Released 2022-07-15}
+\date{Released 2022-08-05}
\pagenumbering{roman}
\maketitle
diff --git a/macros/latex/contrib/projlib/ProjLib.dtx b/macros/latex/contrib/projlib/ProjLib.dtx
index 788cf84699..3ab56e9868 100644
--- a/macros/latex/contrib/projlib/ProjLib.dtx
+++ b/macros/latex/contrib/projlib/ProjLib.dtx
@@ -19,84 +19,84 @@
%<*ProjLib>
\ProvidesExplPackage
{ProjLib}
- {2022/08/01} {}
+ {2022/08/05} {}
{Collective interface of the ProjLib toolkit}
%</ProjLib>
%
%<*projlib-author>
\ProvidesExplPackage
{projlib-author}
- {2022/08/01} {}
+ {2022/08/05} {}
{Enhanced author information block}
%</projlib-author>
%
%<*projlib-datetime>
\ProvidesExplPackage
{projlib-datetime}
- {2022/08/01} {}
+ {2022/08/05} {}
{Convert numeric date-time string to natural language}
%</projlib-datetime>
%
%<*projlib-draft>
\ProvidesExplPackage
{projlib-draft}
- {2022/08/01} {}
+ {2022/08/05} {}
{Useful commands during draft stage}
%</projlib-draft>
%
%<*projlib-font>
\ProvidesExplPackage
{projlib-font}
- {2022/08/01} {}
+ {2022/08/05} {}
{Font selection and configuration}
%</projlib-font>
%
%<*projlib-language>
\ProvidesExplPackage
{projlib-language}
- {2022/08/01} {}
+ {2022/08/05} {}
{Multi-language configuration}
%</projlib-language>
%
%<*projlib-logo>
\ProvidesExplPackage
{projlib-logo}
- {2022/08/01} {}
+ {2022/08/05} {}
{The ProjLib logo}
%</projlib-logo>
%
%<*projlib-math>
\ProvidesExplPackage
{projlib-math}
- {2022/08/01} {}
+ {2022/08/05} {}
{Efficient math setup}
%</projlib-math>
%
%<*projlib-paper>
\ProvidesExplPackage
{projlib-paper}
- {2022/08/01} {}
+ {2022/08/05} {}
{Configuration of the paper style}
%</projlib-paper>
%
%<*projlib-text>
\ProvidesExplPackage
{projlib-text}
- {2022/08/01} {}
+ {2022/08/05} {}
{Text-related commands}
%</projlib-text>
%
%<*projlib-theorem>
\ProvidesExplPackage
{projlib-theorem}
- {2022/08/01} {}
+ {2022/08/05} {}
{Configuration of theorem-like environments}
%</projlib-theorem>
%
%<*projlib-titlepage>
\ProvidesExplPackage
{projlib-titlepage}
- {2022/08/01} {}
+ {2022/08/05} {}
{Commands for rendering the title page}
%</projlib-titlepage>
@@ -3291,6 +3291,14 @@
}
\ProcessKeyOptions [ projlib-math ]
+
+% https://tex.stackexchange.com/a/643233
+\providecommand* \ProvideCommandCopy
+ {
+ \declare@commandcopy{\@firstofone}{\@firstoftwo{}}
+ }
+
+
\RequirePackage { mathtools }
\RequirePackage { mathrsfs }
\PassOptionsToPackage { warnings-off = { mathtools-colon, mathtools-overbracket } } { unicode-math }
@@ -3356,7 +3364,7 @@
}
\cs_generate_variant:Nn \__projlib_math_define_operator:nnn { nee }
-\NewDocumentCommand \DefineMathOperator { s O{} m O{} }
+\NewDocumentCommand \ProjLibDefineMathOperator { s O{} m O{} }
{
\tl_if_blank:nTF { #2 }
{
@@ -3366,50 +3374,52 @@
\projlib_math_define_operator:nnn { #1 } { #3 } { #2 }
}
}
-\NewCommandCopy \DefineOperator \DefineMathOperator
+
+\ProvideCommandCopy \DefineMathOperator \ProjLibDefineMathOperator
+\ProvideCommandCopy \DefineOperator \ProjLibDefineMathOperator
\msg_new:nnn { projlib-math }
- { shortcut-not-define }
+ { symbol-not-define }
{ The~symbol~/~shortcut~"\iow_char:N \\#1"~cannot~be~defined,~a~command~with~the~same~name~has~already~existed. }
\msg_new:nnn { projlib-math }
- { shortcut-type-not-define }
+ { symbol-type-not-define }
{ The~symbol~/~shortcut~type~"#1"~is~not~available,~a~command~with~the~same~name~has~already~existed. }
-\keys_define:nn { projlib-math-shortcut }
+\keys_define:nn { projlib-math-symbol }
{
- , prefix .clist_set:N = \l__projlib_math_shortcut_prefix_clist
- , type .tl_set:N = \l__projlib_math_shortcut_type_tl
- , style .tl_set:N = \l__projlib_math_shortcut_style_tl
+ , prefix .clist_set:N = \l__projlib_math_symbol_prefix_clist
+ , type .tl_set:N = \l__projlib_math_symbol_type_tl
+ , style .tl_set:N = \l__projlib_math_symbol_style_tl
, unknown .code:n = {}
}
-\cs_new_protected:Nn \projlib_math_define_shortcut:nnn
+\cs_new_protected:Nn \projlib_math_define_symbol:nnn
% #1 = bool for star or empty
% (currently the starred version is the same as normal version)
- % #2 = list of shortcuts
+ % #2 = list of symbols
% #3 = the option
{
- \clist_clear:N \l__projlib_math_shortcut_prefix_clist
- \tl_clear:N \l__projlib_math_shortcut_type_tl
- \tl_set:Nn \l__projlib_math_shortcut_style_tl { \mathrm }
- \keys_set:nn { projlib-math-shortcut } { #3 }
- \tl_if_empty:NF \l__projlib_math_shortcut_type_tl
+ \clist_clear:N \l__projlib_math_symbol_prefix_clist
+ \tl_clear:N \l__projlib_math_symbol_type_tl
+ \tl_set:Nn \l__projlib_math_symbol_style_tl { \mathrm }
+ \keys_set:nn { projlib-math-symbol } { #3 }
+ \tl_if_empty:NF \l__projlib_math_symbol_type_tl
{
- \cs_if_exist:cTF { \l__projlib_math_shortcut_type_tl }
+ \cs_if_exist:cTF { \l__projlib_math_symbol_type_tl }
{
\exp_args:Nne \use:n
- { \msg_warning:nnn { projlib-math } { shortcut-type-not-define } }
- { \l__projlib_math_shortcut_type_tl }
+ { \msg_warning:nnn { projlib-math } { symbol-type-not-define } }
+ { \l__projlib_math_symbol_type_tl }
}
{
\exp_args:Nno \use:n
{
- \exp_args:Nc \NewDocumentCommand { \l__projlib_math_shortcut_type_tl } { m }
+ \exp_args:Nc \NewDocumentCommand { \l__projlib_math_symbol_type_tl } { m }
}
{
- \l__projlib_math_shortcut_style_tl { ##1 }
+ \l__projlib_math_symbol_style_tl { ##1 }
}
}
}
@@ -3418,59 +3428,79 @@
\str_if_in:nnTF { ##1 } { = }
{
\seq_set_split:Nnn \l_tmpa_seq { = } { ##1 }
- \clist_if_empty:NTF \l__projlib_math_shortcut_prefix_clist
+ \clist_if_empty:NTF \l__projlib_math_symbol_prefix_clist
{
- \__projlib_math_define_shortcut:ee { \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
+ \__projlib_math_define_symbol:ee { \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
}
{
- \clist_map_inline:Nn \l__projlib_math_shortcut_prefix_clist
+ \clist_map_inline:Nn \l__projlib_math_symbol_prefix_clist
{
- \__projlib_math_define_shortcut:ee { ####1 \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
+ \__projlib_math_define_symbol:ee { ####1 \seq_item:Nn \l_tmpa_seq { 1 } } { \seq_item:Nn \l_tmpa_seq { 2 } }
}
}
}
{
- \clist_if_empty:NTF \l__projlib_math_shortcut_prefix_clist
+ \clist_if_empty:NTF \l__projlib_math_symbol_prefix_clist
{
- \__projlib_math_define_shortcut:ee { ##1 } { ##1 }
+ \__projlib_math_define_symbol:ee { ##1 } { ##1 }
}
{
- \clist_map_inline:Nn \l__projlib_math_shortcut_prefix_clist
+ \clist_map_inline:Nn \l__projlib_math_symbol_prefix_clist
{
- \__projlib_math_define_shortcut:ee { ####1 ##1 } { ##1 }
+ \__projlib_math_define_symbol:ee { ####1 ##1 } { ##1 }
}
}
}
}
}
-\cs_new_protected:Nn \__projlib_math_define_shortcut:nn
+\cs_new_protected:Nn \__projlib_math_define_symbol:nn
% #1 = command name
% #2 = the content
{
\cs_if_exist:cTF { #1 }
{
- \msg_warning:nnn { projlib-math } { shortcut-not-define } { #1 }
+ \msg_warning:nnn { projlib-math } { symbol-not-define } { #1 }
}
{
\exp_args:Nno \use:n
{ \exp_args:Nc \NewDocumentCommand { #1 } {} }
- { \l__projlib_math_shortcut_style_tl { #2 } }
+ { \l__projlib_math_symbol_style_tl { #2 } }
}
}
-\cs_generate_variant:Nn \__projlib_math_define_shortcut:nn { ee }
+\cs_generate_variant:Nn \__projlib_math_define_symbol:nn { ee }
-\NewDocumentCommand \DefineMathSymbol { s O{} m O{} }
+\NewDocumentCommand \ProjLibDefineMathSymbol { s O{} m O{} }
{
\tl_if_blank:nTF { #2 }
{
- \projlib_math_define_shortcut:nnn { #1 } { #3 } { #4 }
+ \projlib_math_define_symbol:nnn { #1 } { #3 } { #4 }
+ }
+ {
+ \projlib_math_define_symbol:nnn { #1 } { #3 } { #2 }
}
+ }
+\ProvideCommandCopy \DefineMathSymbol \ProjLibDefineMathSymbol
+\ProvideCommandCopy \DefineShortcut \ProjLibDefineMathSymbol
+
+
+\cs_new:Nn \projlib_math_redefine_in_math_mode:Nn
+ {
+ \exp_args:Nc \NewCommandCopy { projlib_math_original_ \cs_to_str:N #1 : } #1
+ \RenewDocumentCommand #1 { }
{
- \projlib_math_define_shortcut:nnn { #1 } { #3 } { #2 }
+ \mode_if_math:TF
+ { #2 }
+ { \use:c { projlib_math_original_ \cs_to_str:N #1 : } }
}
}
-\NewCommandCopy \DefineShortcut \DefineMathSymbol
+
+\NewDocumentCommand \ProjLibRedefineInMathMode { m m }
+ {
+ \projlib_math_redefine_in_math_mode:Nn #1 { #2 }
+ }
+
+\ProvideCommandCopy \RedefineInMathMode \ProjLibRedefineInMathMode
\cs_new:Nn \__projlib_math_list_of_symbols_entry:nnnn
@@ -3503,10 +3533,7 @@
\projlib_math_list_of_symbols:nnn { #1 } { #2 } { #3 }
}
-\ProvideDocumentCommand \ListOfSymbols { O{0.17\textwidth} O{0.75\textwidth} m }
- {
- \projlib_math_list_of_symbols:nnn { #1 } { #2 } { #3 }
- }
+\ProvideCommandCopy \ListOfSymbols \ProjLibListOfSymbols
%</projlib-math>
%
%<*projlib-paper>
@@ -5251,7 +5278,7 @@
}
\colorlet { titlepage-main } { blue!50!cyan!50!black }
-\colorlet { titlepage-back } { blue!50!cyan!10!yellow!30 }
+\colorlet { titlepage-back } { blue!50!cyan!15!yellow!25 }
\cs_new_protected:Nn \projlib_titlepage_render:n
{
@@ -5284,8 +5311,8 @@
\fontsize{18pt}{27pt}\selectfont
\l_projlib_titlepage_subtitle_tl
};
- \node[text~width=.3\paperwidth, text~height=.3\paperheight, align=flush~left]
- at ($(current~page.south)+(.2\paperwidth,.3\paperheight)$)
+ \node[text~width=.5\paperwidth, text~height=.4\paperheight, align=flush~left]
+ at ($(current~page.south)+(.135\paperwidth,.35\paperheight)$)
{
\color{titlepage-back}
\begin{flushright}
@@ -5318,8 +5345,8 @@
\fontsize{18pt}{27pt}\selectfont
\l_projlib_titlepage_subtitle_tl
};
- \node[text~width=.3\paperwidth, text~height=.3\paperheight, align=flush~left]
- at ($(current~page.south)+(.2\paperwidth,.3\paperheight)$)
+ \node[text~width=.5\paperwidth, text~height=.4\paperheight, align=flush~left]
+ at ($(current~page.south)+(.135\paperwidth,.35\paperheight)$)
{
\color{white}
\begin{flushright}
diff --git a/macros/latex/contrib/projlib/README.md b/macros/latex/contrib/projlib/README.md
index 6961880f61..e7e0ac1346 100644
--- a/macros/latex/contrib/projlib/README.md
+++ b/macros/latex/contrib/projlib/README.md
@@ -6,7 +6,7 @@
> **ProjLib** can be interpreted as "***Proj**ect **Lib**rary*" (in English), or as "***Proj**et **Lib**re*" (in French, meaning "*Free Project*").
-> **This bundle is dated 2022/08/01. Please note that the documentations are not yet up-to-date.**
+> **This bundle is dated 2022/08/05. Please note that the documentations are not yet up-to-date.**
## Introduction
diff --git a/macros/latex/contrib/uni-titlepage/README.md b/macros/latex/contrib/uni-titlepage/README.md
index b7305e2fc1..7fb92edc82 100644
--- a/macros/latex/contrib/uni-titlepage/README.md
+++ b/macros/latex/contrib/uni-titlepage/README.md
@@ -2,7 +2,7 @@
Copyright (c) Markus Kohm <komascript at gmx.info>
-Release: 2022/03/22 v1.0
+Release: 2022/08/05 v1.1
License: LPPL 1.3c
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-DHBW.pdf b/macros/latex/contrib/uni-titlepage/titlepage-DHBW.pdf
index 8e74c0e66d..f7a8976391 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-DHBW.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-DHBW.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-JT-Aufsaetze.pdf b/macros/latex/contrib/uni-titlepage/titlepage-JT-Aufsaetze.pdf
index d71006437f..f9c892874c 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-JT-Aufsaetze.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-JT-Aufsaetze.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-JT-Geschichte.pdf b/macros/latex/contrib/uni-titlepage/titlepage-JT-Geschichte.pdf
index b26f3ef14d..2cbca1bd89 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-JT-Geschichte.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-JT-Geschichte.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-JT-Typography.pdf b/macros/latex/contrib/uni-titlepage/titlepage-JT-Typography.pdf
index af1fdea335..2b6c2d7830 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-JT-Typography.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-JT-Typography.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-KIT.pdf b/macros/latex/contrib/uni-titlepage/titlepage-KIT.pdf
index 9f1527a8a8..a8c696fc62 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-KIT.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-KIT.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-KOMAScript.pdf b/macros/latex/contrib/uni-titlepage/titlepage-KOMAScript.pdf
index ebfbb6ed81..544977b3d5 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-KOMAScript.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-KOMAScript.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-Markus-1.pdf b/macros/latex/contrib/uni-titlepage/titlepage-Markus-1.pdf
index 7942a5cb70..81f3d5e464 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-Markus-1.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-Markus-1.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-Markus-2.pdf b/macros/latex/contrib/uni-titlepage/titlepage-Markus-2.pdf
index 5d2090588a..88bf3f1ae4 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-Markus-2.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-Markus-2.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-Spacer.pdf b/macros/latex/contrib/uni-titlepage/titlepage-Spacer.pdf
index 308aa0d6ff..8d0fefa3fe 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-Spacer.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-Spacer.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-TU-DD.pdf b/macros/latex/contrib/uni-titlepage/titlepage-TU-DD.pdf
index 1157fdd76d..33a1ee9661 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-TU-DD.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-TU-DD.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-TU-HH.pdf b/macros/latex/contrib/uni-titlepage/titlepage-TU-HH.pdf
index 95cf4df9a8..a78bbe75a0 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-TU-HH.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-TU-HH.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-UKoLa.pdf b/macros/latex/contrib/uni-titlepage/titlepage-UKoLa.pdf
index 1ee571f006..3abe94fd7b 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-UKoLa.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-UKoLa.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/titlepage-WWUM.pdf b/macros/latex/contrib/uni-titlepage/titlepage-WWUM.pdf
index 9d497d28e1..2aa25ed24e 100644
--- a/macros/latex/contrib/uni-titlepage/titlepage-WWUM.pdf
+++ b/macros/latex/contrib/uni-titlepage/titlepage-WWUM.pdf
Binary files differ
diff --git a/macros/latex/contrib/uni-titlepage/uni-titlepage.dtx b/macros/latex/contrib/uni-titlepage/uni-titlepage.dtx
index 20ebed49f9..810f8aee40 100644
--- a/macros/latex/contrib/uni-titlepage/uni-titlepage.dtx
+++ b/macros/latex/contrib/uni-titlepage/uni-titlepage.dtx
@@ -60,10 +60,10 @@
}[%
%</!README>
%<README>
-%<README>Release: 2022/03/22 v1.0
+%<README>Release: 2022/08/05 v1.1
%<README>
%<README>License: LPPL 1.3c
-%<!README>2022/03/22 v1.0
+%<!README>2022/08/05 v1.1
%<README>
KOMA presents the title page project
%<*!README>
@@ -423,10 +423,13 @@ KOMA presents the title page project
% \item empty and only in twoside mode with \texttt{extratitle} used.
% \item main title page with \texttt{titlehead} placed at the page head (if
% this is to high, it might be put outside the page; if it is to deep, it
-% might overwrite parte of the title), \texttt{rulewidth} and
-% \texttt{rulesep} for the vertical rule (these aren't package options but
-% style options), \texttt{subject}, \texttt{title}, \texttt{subtitle},
-% \texttt{author}, \texttt{date}, and \texttt{plublisher}.
+% might overwrite parte of the title), \texttt{rulewidth},
+% \texttt{rulesep} and \texttt{rulecolor} for the vertical rule (these
+% aren't package options but style options), \texttt{subject},
+% \texttt{title}, \texttt{subtitle}, \texttt{author}, \texttt{date}, and
+% \texttt{plublisher}. Note: If you want to use option \texttt{rulecolor}
+% you have to load a package, that defines \cs{color}, e.g., \pkg{color}
+% or \pkg{xcolor}. Otherwise the color will be ignored.
% \end{enumerate}
% }\hspace{.025\textwidth}\nobreak
% \frame{\includegraphics[page=1,width=.5\textwidth]{titlepage-Markus-2}}
@@ -468,10 +471,12 @@ KOMA presents the title page project
% \item defined by \texttt{extratitle}.
% \item empty and only in twoside mode with \texttt{extratitle} used.
% \item main title page with \texttt{titlehead} placed at the page head,
-% \texttt{rulewidth} and \texttt{rulesep} for the vertical rule (these
-% aren't package options but style options), \texttt{subject},
-% \texttt{title}, \texttt{subtitle}, \texttt{author}, \texttt{date}, and
-% \texttt{plublisher}.
+% \texttt{rulewidth}, \texttt{rulesep} and \texttt{rulecolor} for the
+% vertical rule (these aren't package options but style options),
+% \texttt{subject}, \texttt{title}, \texttt{subtitle}, \texttt{author},
+% \texttt{date}, and \texttt{plublisher}. Note: If you want to use option
+% \texttt{rulecolor} you have to load a package, that defines \cs{color},
+% e.g., \pkg{color} or \pkg{xcolor}. Otherwise the color will be ignored.
% \end{enumerate}
% }\hspace{.025\textwidth}\nobreak
% \frame{\includegraphics[page=1,width=.5\textwidth]{titlepage-Spacer}}
@@ -614,9 +619,12 @@ KOMA presents the title page project
% page (in example \File{titlepage-JT-Aufsaetze.tex}) is:
% \begin{enumerate}
% \item main title page with \texttt{author}, \texttt{title},
-% \texttt{publisher}, \texttt{rulewidth} and \texttt{rulesep} for width
-% of the horizontal rules and the distance between them (these aren't
-% package options but style options).
+% \texttt{publisher}, \texttt{rulewidth}, \texttt{rulesep} for width of
+% the horizontal rules and the distance between them and
+% \texttt{rulecolor} for the color of the rules (these aren't package
+% options but style options). Note: If you want to use option
+% \texttt{rulecolor} you have to load a package, that defines \cs{color},
+% e.g., \pkg{color} or \pkg{xcolor}. Otherwise the color will be ignored.
% \end{enumerate}
% }\hspace{.025\textwidth}\nobreak
% \frame{\includegraphics[page=1,width=.5\textwidth]{titlepage-JT-Aufsaetze}}
@@ -638,7 +646,10 @@ KOMA presents the title page project
% \item main title page with \texttt{author}, \texttt{title},
% \texttt{publisher}, \texttt{place}, \texttt{rulewidth} and
% \texttt{rulesep} for width of the horizontal rules and the distance
-% between them (these aren't package options but style options).
+% between them and \texttt{rulecolor} for the color of them (these aren't
+% package options but style options). Note: If you want to use option
+% \texttt{rulecolor} you have to load a package, that defines \cs{color},
+% e.g., \pkg{color} or \pkg{xcolor}. Otherwise the color will be ignored.
% \end{enumerate}
% Note, that the default for \texttt{titlepagefont} prints everything but the
% \texttt{title} with ad-hoc letterspacing in upper-case letters if
@@ -2081,6 +2092,10 @@ You may however distribute the file `uni-titlepage.dtx' without this file.
% \begin{macro}{\title@rulewidth}
% \begin{option}{rulesep}
% \begin{macro}{\title@rulesep}
+% \begin{option}{rulecolor}
+% \changes{v1.1}{2022/08/05}{new}
+% \begin{macro}{\title@rulecolor}
+% \changes{v1.1}{2022/08/05}{new}
% Some styles have some variable rules at the title:
% \begin{macrocode}
%<*Spacer|JT-Aufsaetze|JT-Geschichte|Markus&2>
@@ -2092,6 +2107,7 @@ You may however distribute the file `uni-titlepage.dtx' without this file.
%<Spacer|Markus&2> \ifdim \title@rulewidth>\z@ 10pt\else \z@\fi
%<JT-Aufsaetze|JT-Geschichte> 1.5pt%
}
+\providecommand*{\title@rulecolor}{}
\DefineFamilyKey[%
%<Markus&2> Markus-2%
%<JT-Aufsaetze> JT-Aufsaetze%
@@ -2110,12 +2126,20 @@ You may however distribute the file `uni-titlepage.dtx' without this file.
\gdef\title@rulesep{\dimexpr #1\relax}%
\FamilyKeyStateProcessed
}
+\FamilyStringKey[%
+%<Markus&2> Markus-2%
+%<JT-Aufsaetze> JT-Aufsaetze%
+%<JT-Geschichte> JT-Geschichte%
+%<Spacer> Spacer%
+]{title}{rulecolor}{\title@rulecolor}
%</Spacer|JT-Aufsaetze|JT-Geschichte|Markus&2>
% \end{macrocode}
% \end{macro}
% \end{option}
% \end{macro}
% \end{option}
+% \end{macro}
+% \end{option}
%
% An some has their own terms:
% \begin{imacro}{\presentationinformationUKoLA}
@@ -2729,9 +2753,13 @@ You may however distribute the file `uni-titlepage.dtx' without this file.
\raggedright
%<Markus&2> \thispagestyle{maintitle}%
\raisebox{0pt}[\ht\strutbox][\dimexpr\textheight-\ht\strutbox\relax]{%
+ \ifx\title@rulecolor\@empty\else
+ \@ifundefined{color}{}{\color{\title@rulecolor}}%
+ \fi
\rule[\dimexpr-.667\headsep-\textheight\relax]
{\title@rulewidth}
- {\dimexpr\textheight+2\headsep\relax}\kern\title@rulesep}%
+ {\dimexpr\textheight+2\headsep\relax}\kern\title@rulesep
+ }%
\parbox[t][\textheight][t]
{\dimexpr \textwidth-\title@rulewidth-\title@rulesep\relax}{%
\raggedright
@@ -2819,6 +2847,9 @@ You may however distribute the file `uni-titlepage.dtx' without this file.
\ifx\@author\@empty\else\@author\\
\begin{picture}(\title@rulewidth\@gobble,
\dimexpr .3ex+1pt+\title@rulesep\relax\@gobble)
+ \ifx\title@rulecolor\@empty\else
+ \@ifundefined{color}{}{\color{\title@rulecolor}}%
+ \fi
\put(0,\dimexpr .15ex+.5pt+\title@rulesep\relax\@gobble){%
\linethickness{.3ex}\line(1,0){\title@rulewidth\@gobble}%
}%
@@ -2838,6 +2869,9 @@ You may however distribute the file `uni-titlepage.dtx' without this file.
\vfill
\begin{picture}(\title@rulewidth\@gobble,
\dimexpr 4pt+1pt+\title@rulesep\relax\@gobble)
+ \ifx\title@rulecolor\@empty\else
+ \@ifundefined{color}{}{\color{\title@rulecolor}}%
+ \fi
\put(0,\dimexpr 2pt+.5pt+\title@rulesep\relax\@gobble){%
\linethickness{1pt}\line(1,0){\title@rulewidth\@gobble}%
}%
diff --git a/macros/latex/contrib/uni-titlepage/uni-titlepage.pdf b/macros/latex/contrib/uni-titlepage/uni-titlepage.pdf
index 26afae0d0e..aad73b5251 100644
--- a/macros/latex/contrib/uni-titlepage/uni-titlepage.pdf
+++ b/macros/latex/contrib/uni-titlepage/uni-titlepage.pdf
Binary files differ
diff --git a/macros/latex/contrib/wrapstuff/wrapstuff.dtx b/macros/latex/contrib/wrapstuff/wrapstuff.dtx
index 7fef0c9542..3cf86723c1 100644
--- a/macros/latex/contrib/wrapstuff/wrapstuff.dtx
+++ b/macros/latex/contrib/wrapstuff/wrapstuff.dtx
@@ -121,10 +121,10 @@ Copyright and Licence
%</internal>
%<package>\NeedsTeXFormat{LaTeX2e}[2021-06-01]
%<package>\@ifundefined{ExplLoaderFileDate}{\RequirePackage{expl3}}{}
-%<+package>\GetIdInfo$Id: wrapstuff.dtx e891159 2022-07-26 19:00:31 +0800 Qing Lee <sobenlee@gmail.com> $
+%<+package>\GetIdInfo$Id: wrapstuff.dtx 3be38c0 2022-08-05 21:01:02 +0800 Qing Lee <sobenlee@gmail.com> $
%<package> {Wrapping text around stuff}
%<package>\ProvidesExplPackage{\ExplFileName}
-%<package> {\ExplFileDate}{0.2}{\ExplFileDescription}
+%<package> {\ExplFileDate}{0.3}{\ExplFileDescription}
%<*driver>
\documentclass{ctxdoc}
\usepackage{wrapstuff}
@@ -239,6 +239,8 @@ Copyright and Licence
% width = <宽度>
% \end{syntax}
% 设置绕排内容的宽度,初始值为 \qty{0}{pt},代表自然宽度。
+% 此时,\env{wrapstuff} 环境内的内容只能有一行,不能使用 |\\| 换行或者 \tn{par} 分段。
+% 如果需要在环境内换行或者分段,就需要将 \opt{width} 设置成合适的宽度。
% \end{function}
%
% \begin{function}{height}
@@ -687,14 +689,12 @@ Copyright and Licence
\group_begin:
\cs_set:Npn \@@_tmp:nn #1
{
- \group_begin:
- \exp_args:Ncc \@@_tmp_aux:NNn
- { @@_if_last_ #1 : }
- { c_@@_ #1 _node }
+ \exp_args:Ncc \@@_tmp_aux:NNn
+ { @@_if_last_ #1 : }
+ { c_@@_ #1 _node }
}
\cs_set:Npn \@@_tmp_aux:NNn #1#2#3
{
- \group_end:
\int_const:Nn #2 {#3}
\prg_new_conditional:Npnn #1 { T , F , TF }
{
@@ -2422,6 +2422,8 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
+% \changes{v0.3}{2022/07/31}{修复 stuff 深度不为零时的垂直对齐问题。}
+%
% \begin{macro}{\@@_put_box:}
% \begin{macrocode}
\cs_new_protected_nopar:Npn \@@_put_box:
@@ -2537,6 +2539,7 @@ Copyright and Licence
\@@_parshape_kern:
\box_move_up:nn
{
+ \box_dp:N \g_@@_stuff_box
+ \box_ht:N \l_@@_window_box
- ( \l_@@_window_ht_dim
+ \box_ht_plus_dp:N \g_@@_stuff_box ) / 2
diff --git a/macros/latex/contrib/wrapstuff/wrapstuff.pdf b/macros/latex/contrib/wrapstuff/wrapstuff.pdf
index d190fafbd8..b35cfb87d8 100644
--- a/macros/latex/contrib/wrapstuff/wrapstuff.pdf
+++ b/macros/latex/contrib/wrapstuff/wrapstuff.pdf
Binary files differ
diff --git a/macros/xetex/latex/xecjk/xeCJK.dtx b/macros/xetex/latex/xecjk/xeCJK.dtx
index d96a8eca04..ba706d3d13 100644
--- a/macros/xetex/latex/xecjk/xeCJK.dtx
+++ b/macros/xetex/latex/xecjk/xeCJK.dtx
@@ -194,7 +194,7 @@ Copyright and Licence
%<*package|config|fntef|listings|xunicode|xunextra>
%<!(config|xunextra)>\NeedsTeXFormat{LaTeX2e}
%<!(config|xunextra)>\RequirePackage{expl3}
-%<+!driver>\GetIdInfo$Id: xeCJK.dtx 49800bb 2022-07-14 18:54:00 +0800 Qing Lee <sobenlee@gmail.com> $
+%<+!driver>\GetIdInfo$Id: xeCJK.dtx c4ccfae 2022-08-05 21:02:32 +0800 Qing Lee <sobenlee@gmail.com> $
%<package> {Typesetting CJK scripts with XeLaTeX}
%<config> {Configuration file for xeCJK package}
%<fntef> {xeCJK font effect}
@@ -207,7 +207,7 @@ Copyright and Licence
%<listings>\ProvidesExplPackage{xeCJK-listings}
%<xunicode>\ProvidesExplPackage{xunicode-addon}
%<xunextra>\ProvidesExplFile{xunicode-extra.def}
-%<!driver> {\ExplFileDate}{3.9.0}{\ExplFileDescription}
+%<!driver> {\ExplFileDate}{3.9.1}{\ExplFileDescription}
%</package|config|fntef|listings|xunicode|xunextra>
%<*driver>
\documentclass{ctxdoc}
@@ -287,7 +287,7 @@ Copyright and Licence
% \changes{v3.8.0}{2020/02/09}{清理过时的兼容性补丁代码。}
% \changes{v3.8.3}{2020/04/07}{删除 \texttt{\_nopar}。}
%
-% \CheckSum{11005}
+% \CheckSum{11032}
% \GetFileId{xeCJK.sty}
%
% \title{\bfseries\pkg{xeCJK} 宏包}
@@ -1783,19 +1783,16 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[int]
-% {\xeCJK_tl_remove_outer_braces:N,\xeCJK_tl_remove_outer_braces:n}
+% \begin{macro}[int]{\xeCJK_tl_remove_outer_braces:n}
% \changes{v3.2.4}{2013/07/02}{去掉外层分组括号时,移除空格,避免死循环。}
% 去掉 |#1| 外层的分组括号。
% \begin{macrocode}
-\cs_new_protected:Npn \xeCJK_tl_remove_outer_braces:N #1
- { \tl_set:Nx #1 { \exp_args:No \xeCJK_tl_remove_outer_braces:n {#1} } }
\cs_new:Npn \xeCJK_tl_remove_outer_braces:n #1
{
- \exp_last_unbraced:Nf
- \@@_tl_remove_outer_braces:w { \tl_trim_spaces:n {#1} } \s__stop
+ \exp_last_unbraced:Ne
+ \@@_tl_remove_outer_braces:w { \tl_trim_spaces:n {#1} } \s_stop
}
-\cs_new:Npn \@@_tl_remove_outer_braces:w #1 \s__stop
+\cs_new:Npn \@@_tl_remove_outer_braces:w #1 \s_stop
{
\tl_if_single:nTF {#1}
{
@@ -1947,7 +1944,7 @@ Copyright and Licence
{
\group_begin:
\hbox_set:Nw \l_@@_tmp_box #1 \scan_stop:
- \int_compare:nNnTF \tex_lastnodetype:D = { 11 }
+ \@@_if_last_glue:TF
{
\exp_args:NNNo \hbox_set_end:
\skip_set:Nn #2 { \skip_use:N \tex_lastskip:D }
@@ -1962,21 +1959,6 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}[pTF,int]{\xeCJK_if_blank_x:n}
-% 判断是否为空或者仅含一个空格。
-% \begin{macrocode}
-\prg_new_conditional:Npnn \xeCJK_if_blank_x:n #1 { p , T , F , TF }
- {
- \if_case:w \tex_strcmp:D { } {#1} \exp_stop_f:
- \prg_return_true:
- \else:
- \if_case:w \tex_strcmp:D { ~ } {#1} \exp_stop_f:
- \prg_return_true: \else: \prg_return_false: \fi:
- \fi:
- }
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macro}[int]{\xeCJK_int_until_do:nn}
% \begin{macro}{\@@_int_until_do:wn}
% 由于定义较为简单,可以比 \cs{int_until_do:nNnn} 稍微快一点点。
@@ -2787,10 +2769,10 @@ Copyright and Licence
\cs_new_protected:Npn \@@_check_num_range:nnNN #1#2#3#4
{
\bool_lazy_or:nnTF
- { \xeCJK_if_blank_x_p:n {#1} }
- { \xeCJK_if_blank_x_p:n {#2} }
+ { \tl_if_blank_p:n {#1} }
+ { \tl_if_blank_p:n {#2} }
{
- \int_set:Nn #3 { \xeCJK_if_blank_x:nTF {#1} {#2} {#1} }
+ \int_set:Nn #3 { \tl_if_blank:nTF {#1} {#2} {#1} }
\int_set_eq:NN #3 #4
}
{
@@ -2908,7 +2890,7 @@ Copyright and Licence
\tex_XeTeXinterchartoks:D \xeCJK_class_num:n {#1} ~
\xeCJK_class_num:n {#2} = {#3}
}
-\cs_generate_variant:Nn \xeCJK_inter_class_toks:nnn { nnx }
+\cs_generate_variant:Nn \xeCJK_inter_class_toks:nnn { nne }
% \end{macrocode}
% \end{macro}
%
@@ -2948,10 +2930,10 @@ Copyright and Licence
% \begin{macrocode}
\cs_new_protected:Npn \xeCJK_pre_inter_class_toks:nnn #1#2#3
{
- \xeCJK_inter_class_toks:nnx {#1} {#2}
+ \xeCJK_inter_class_toks:nne {#1} {#2}
{ \exp_not:n {#3} \xeCJK_get_inter_class_toks:nn {#1} {#2} }
}
-\cs_generate_variant:Nn \xeCJK_pre_inter_class_toks:nnn { nnx }
+\cs_generate_variant:Nn \xeCJK_pre_inter_class_toks:nnn { nne }
% \end{macrocode}
% \end{macro}
%
@@ -2960,10 +2942,10 @@ Copyright and Licence
% \begin{macrocode}
\cs_new_protected:Npn \xeCJK_app_inter_class_toks:nnn #1#2#3
{
- \xeCJK_inter_class_toks:nnx {#1} {#2}
+ \xeCJK_inter_class_toks:nne {#1} {#2}
{ \xeCJK_get_inter_class_toks:nn {#1} {#2} \exp_not:n {#3} }
}
-\cs_generate_variant:Nn \xeCJK_app_inter_class_toks:nnn { nnx }
+\cs_generate_variant:Nn \xeCJK_app_inter_class_toks:nnn { nne }
% \end{macrocode}
% \end{macro}
%
@@ -2981,7 +2963,7 @@ Copyright and Licence
\tl_if_empty:NF \l_@@_tmp_tl
{ \xeCJK_clear_inter_class_toks:nn {#1} {#2} }
}
- { \xeCJK_inter_class_toks:nnx {#1} {#2} { \exp_not:o \l_@@_tmp_tl } }
+ { \xeCJK_inter_class_toks:nne {#1} {#2} { \exp_not:o \l_@@_tmp_tl } }
}
% \end{macrocode}
% \end{macro}
@@ -2996,7 +2978,7 @@ Copyright and Licence
\tl_if_empty:NF \l_@@_tmp_tl
{
\tl_replace_all:Nnn \l_@@_tmp_tl {#3} {#4}
- \xeCJK_inter_class_toks:nnx {#1} {#2}
+ \xeCJK_inter_class_toks:nne {#1} {#2}
{ \exp_not:o \l_@@_tmp_tl }
}
}
@@ -3231,7 +3213,7 @@ Copyright and Licence
{ \xeCJK_check_for_ecglue: }
\cs_new_protected:Npn \@@_check_for_xecglue:
{
- \int_compare:nNnTF \tex_lastnodetype:D = { 11 }
+ \@@_if_last_glue:TF
{ \@@_replace_space: }
{ \@@_check_for_ecglue: }
}
@@ -3315,7 +3297,7 @@ Copyright and Licence
{ \xeCJK_check_for_ecglue_normalsp: }
\cs_new_protected:Npn \@@_check_for_xecglue_normalsp:
{
- \int_compare:nNnTF \tex_lastnodetype:D = { 11 }
+ \@@_if_last_glue:TF
{ \@@_replace_space: }
{ \@@_check_for_ecglue_normalsp: }
}
@@ -3364,10 +3346,10 @@ Copyright and Licence
% \begin{macrocode}
\cs_new_protected:Npn \xeCJK_check_for_glue:
{
- \int_compare:nNnTF \tex_lastnodetype:D = { 12 }
+ \@@_if_last_kern:TF
{ \@@_check_for_glue_auxi: }
{
- \int_compare:nNnTF \tex_lastnodetype:D = { 10 }
+ \@@_if_last_math:TF
{ \xeCJK_remove_node: \CJKecglue }
{ \@@_check_for_glue_auxii: }
}
@@ -3402,7 +3384,7 @@ Copyright and Licence
\cs_new_eq:NN \xeCJK_check_for_xglue: \prg_do_nothing:
\cs_new_protected:Npn \@@_check_for_xglue:
{
- \int_compare:nNnT \tex_lastnodetype:D = { 11 }
+ \@@_if_last_glue:TF
{
\skip_set_eq:NN \l_@@_last_skip \tex_lastskip:D
\tex_unskip:D
@@ -3427,7 +3409,7 @@ Copyright and Licence
\xeCJK_if_last_node:nTF { default }
{ \xeCJK_remove_node: \CJKecglue }
{
- \int_compare:nNnTF \tex_lastnodetype:D = { 10 }
+ \@@_if_last_math:TF
{ \CJKecglue }
{ \skip_horizontal:N \l_@@_last_skip }
}
@@ -3440,6 +3422,43 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
+% \changes{v3.9.1}{2022/08/02}{简化部分内部实现。}
+%
+% \begin{macro}[TF]{
+% \@@_if_last_none:,
+% \@@_if_last_hlist:,
+% \@@_if_last_math:,
+% \@@_if_last_glue:,
+% \@@_if_last_kern:,
+% \@@_if_last_penalty:}
+% 一些 \hologo{eTeX} 结点判定函数。
+% \begin{macrocode}
+\group_begin:
+\cs_set:Npn \@@_tmp:nn #1
+ {
+ \exp_args:Ncc \@@_tmp_aux:NNn
+ { @@_if_last_ #1 : }
+ { c_@@_ #1 _node }
+ }
+\cs_set:Npn \@@_tmp_aux:NNn #1#2#3
+ {
+ \int_const:Nn #2 {#3}
+ \prg_new_conditional:Npnn #1 { T , F , TF }
+ {
+ \if_int_compare:w \tex_lastnodetype:D = #2
+ \prg_return_true: \else: \prg_return_false: \fi:
+ }
+ }
+\@@_tmp:nn { none } { -1 }
+\@@_tmp:nn { hlist } { 1 }
+\@@_tmp:nn { math } { 10 }
+\@@_tmp:nn { glue } { 11 }
+\@@_tmp:nn { kern } { 12 }
+\@@_tmp:nn { penalty } { 13 }
+\group_end:
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}[pTF,int]{\xeCJK_if_last_node:n}
% \begin{macrocode}
\prg_new_conditional:Npnn \xeCJK_if_last_node:n #1 { p , T , F , TF }
@@ -3488,10 +3507,10 @@ Copyright and Licence
}
\cs_new_protected:Npn \xeCJK_remove_node:
{
- \int_compare:nNnTF \tex_lastnodetype:D = { 12 }
+ \@@_if_last_kern:TF
{ \tex_unkern:D \tex_unkern:D }
{
- \int_compare:nNnT \tex_lastnodetype:D = { 11 }
+ \@@_if_last_glue:T
{ \tex_unskip:D \tex_unskip:D }
}
}
@@ -3742,9 +3761,9 @@ Copyright and Licence
{
\clist_map_inline:nn { FullLeft , FullRight }
{
- \xeCJK_inter_class_toks:nnx {#1} {##1}
+ \xeCJK_inter_class_toks:nne {#1} {##1}
{ \exp_not:c { xeCJK_Default_and_##1:nN } {#1} }
- \xeCJK_inter_class_toks:nnx {##1} {#1}
+ \xeCJK_inter_class_toks:nne {##1} {#1}
{ \exp_not:c { xeCJK_##1_and_Default: } }
}
}
@@ -3941,7 +3960,7 @@ Copyright and Licence
{
\clist_map_inline:nn { FullLeft , FullRight }
{
- \xeCJK_inter_class_toks:nnx {#1} {##1}
+ \xeCJK_inter_class_toks:nne {#1} {##1}
{ \exp_not:c { xeCJK_#1_and_##1:N } }
}
}
@@ -4203,9 +4222,9 @@ Copyright and Licence
% \begin{macrocode}
\cs_new_protected:cpn { @@_bound_type_ 1 _glue:Nn } #1
{
- \int_do_while:nNnn \tex_lastnodetype:D = \c_one_int
+ \int_do_while:nNnn \tex_lastnodetype:D = \c_@@_hlist_node
{ \@@_bound_hbox_auxi: }
- \int_compare:nNnTF \tex_lastnodetype:D = { -1 }
+ \@@_if_last_none:TF
{
\dim_case:nnF { \box_wd:N \l_@@_indent_box }
{
@@ -4266,7 +4285,7 @@ Copyright and Licence
\skip_if_eq:nnTF { \l_@@_last_skip } { \labelsep }
{
\tex_unskip:D
- \int_compare:nNnTF \tex_lastnodetype:D = { 13 }
+ \@@_if_last_penalty:TF
{
\int_compare:nNnTF \tex_lastpenalty:D = \c_zero_int
{ \skip_horizontal:N \l_@@_last_skip }
@@ -4306,7 +4325,7 @@ Copyright and Licence
\int_compare:nNnTF \tex_lastpenalty:D = \c_zero_int
{
\tex_unpenalty:D
- \int_compare:nNnTF \tex_lastnodetype:D = \c_one_int
+ \@@_if_last_hlist:TF
{ \tex_penalty:D \c_zero_int }
{ \tex_penalty:D \c_zero_int #2 }
}
@@ -4378,10 +4397,10 @@ Copyright and Licence
\cs_new_protected:Npn \xeCJK_if_last_punct:TF
{
\bool_set_false:N \l_@@_last_penalty_bool
- \int_compare:nNnTF \tex_lastnodetype:D = { 11 }
+ \@@_if_last_glue:TF
{ \@@_if_last_punct_glue:TF }
{
- \int_compare:nNnTF \tex_lastnodetype:D = { 13 }
+ \@@_if_last_penalty:TF
{ \@@_if_last_punct_penalty:TF }
{ \use_ii:nn }
}
@@ -4418,7 +4437,7 @@ Copyright and Licence
{
\skip_set_eq:NN \l_@@_tmp_skip \tex_lastskip:D
\tex_unskip:D
- \int_compare:nNnTF \tex_lastnodetype:D = { 11 }
+ \@@_if_last_glue:TF
{
\prop_get:NoNTF \g_@@_punct_skip_prop
{ \skip_use:N \tex_lastskip:D } \l_@@_tmp_tl
@@ -4433,7 +4452,7 @@ Copyright and Licence
\int_set_eq:NN \l_@@_last_penalty_int \tex_lastpenalty:D
\tex_unpenalty:D
\bool_set_true:N \l_@@_last_penalty_bool
- \int_compare:nNnTF \tex_lastnodetype:D = { 11 }
+ \@@_if_last_glue:TF
{ \@@_if_last_punct_glue:TF { \use_i:nn } }
{ \use:n }
{ \@@_last_punct_penalty_false:nn }
@@ -4499,11 +4518,11 @@ Copyright and Licence
% \begin{macrocode}
\cs_new_protected:Npn \xeCJK_if_last_node:TF #1#2
{
- \int_compare:nNnTF \tex_lastnodetype:D = { 12 }
+ \@@_if_last_kern:TF
{
\dim_set_eq:NN \l_@@_last_kern_dim \tex_lastkern:D
\tex_unkern:D
- \int_compare:nNnTF \tex_lastnodetype:D = { 12 }
+ \@@_if_last_kern:TF
{
\dim_compare:nNnTF \tex_lastkern:D = { - \l_@@_last_kern_dim }
{ \tex_unkern:D #1 }
@@ -4733,7 +4752,7 @@ Copyright and Licence
\NewDocumentCommand \xeCJKnobreak { }
{
\bool_set_true:N \l_@@_tmp_bool
- \int_while_do:nNnn \tex_lastnodetype:D = { 11 }
+ \int_while_do:nNnn \tex_lastnodetype:D = \c_@@_glue_node
{
\bool_if:NTF \l_@@_tmp_bool
{
@@ -4748,7 +4767,7 @@ Copyright and Licence
\dim_set_eq:NN \l_@@_tmp_dim \l_@@_last_kern_dim
\xeCJK_if_last_node:TF
{
- \int_compare:nNnT \tex_lastnodetype:D = { 11 }
+ \@@_if_last_glue:TF
{
\exp_args:NNNo \tex_unskip:D \xeCJK_no_break:
\skip_horizontal:n { \skip_use:N \tex_lastskip:D }
@@ -5089,7 +5108,7 @@ Copyright and Licence
\NewDocumentCommand \xeCJKDeclareSubCJKBlock
{ s > { \TrimSpaces } m m }
{
- \xeCJK_declare_sub_char_class:nxn { CJK } {#2} {#3}
+ \xeCJK_declare_sub_char_class:nen { CJK } {#2} {#3}
\IfBooleanT {#1} { \xeCJKResetPunctClass }
}
\@onlypreamble \xeCJKDeclareSubCJKBlock
@@ -5105,7 +5124,7 @@ Copyright and Licence
\bool_if:NF \l_@@_sub_cancel_bool
{
\bool_set_true:N \l_@@_sub_cancel_bool
- \@@_sub_restore_or_cancel:x {#2}
+ \@@_sub_restore_or_cancel:e {#2}
\IfBooleanT {#1} { \xeCJKResetPunctClass }
}
}
@@ -5114,7 +5133,7 @@ Copyright and Licence
\bool_if:NT \l_@@_sub_cancel_bool
{
\bool_set_false:N \l_@@_sub_cancel_bool
- \@@_sub_restore_or_cancel:x {#2}
+ \@@_sub_restore_or_cancel:e {#2}
\IfBooleanT {#1} { \xeCJKResetPunctClass }
}
}
@@ -5136,7 +5155,7 @@ Copyright and Licence
{ \@@_error:nx { SubBlock-undefined } {##1} }
}
}
-\cs_generate_variant:Nn \@@_sub_restore_or_cancel:n { x }
+\cs_generate_variant:Nn \@@_sub_restore_or_cancel:n { e }
\@@_msg_new:nn { SubBlock-undefined }
{
The~CJK~sub~block~`#1'~is~undefined.\\\\
@@ -5158,7 +5177,7 @@ Copyright and Licence
}
\xeCJK_declare_char_class:nn { #1/#2 } {#3}
}
-\cs_generate_variant:Nn \xeCJK_declare_sub_char_class:nnn { nx }
+\cs_generate_variant:Nn \xeCJK_declare_sub_char_class:nnn { ne }
% \end{macrocode}
% \end{macro}
%
@@ -5242,16 +5261,16 @@ Copyright and Licence
{
\IfBooleanTF {#1}
{
- \tl_map_inline:xn {#2}
+ \tl_map_inline:en {#2}
{ \tl_gset:cn { g_@@_punct_bound_width/##1/tl } {#3} }
}
{
- \tl_map_inline:xn {#2}
+ \tl_map_inline:en {#2}
{ \tl_gset:cn { g_@@_punct_width/##1/tl } {#3} }
}
}
\@onlypreamble \xeCJKsetwidth
-\cs_generate_variant:Nn \tl_map_inline:nn { x }
+\cs_generate_variant:Nn \tl_map_inline:nn { e }
% \end{macrocode}
% \end{macro}
%
@@ -5338,7 +5357,7 @@ Copyright and Licence
\seq_map_inline:cn { \@@_special_punct_seq:n {#1} }
{ \cs_undefine:c { \@@_special_punct_tl:nN {#1} {##1} } }
\seq_gclear:c { \@@_special_punct_seq:n {#1} }
- \tl_map_inline:xn {#2}
+ \tl_map_inline:en {#2}
{
\tl_new:c { \@@_special_punct_tl:nN {#1} {##1} }
\seq_gput_right:cn { \@@_special_punct_seq:n {#1} } {##1}
@@ -5346,7 +5365,7 @@ Copyright and Licence
}
\cs_new_protected:Npn \@@_add_special_punct:nn #1#2
{
- \tl_map_inline:xn {#2}
+ \tl_map_inline:en {#2}
{
\seq_if_in:cnF { \@@_special_punct_seq:n {#1} } {##1}
{
@@ -5357,7 +5376,7 @@ Copyright and Licence
}
\cs_new_protected:Npn \@@_sub_special_punct:nn #1#2
{
- \tl_map_inline:xn {#2}
+ \tl_map_inline:en {#2}
{
\cs_undefine:c { \@@_special_punct_tl:nN {#1} {##1} }
\seq_gremove_all:cn { \@@_special_punct_seq:n {#1} } {##1}
@@ -5410,12 +5429,14 @@ Copyright and Licence
}
\cs_new_protected:Npn \@@_save_punct_skip:nNNnnn #1#2#3#4#5#6
{
- \use:x
+ \exp_last_unbraced:Ne
+ \@@_save_punct_skip_aux:nnnnn
{
- \@@_save_punct_skip_aux:nnnnn {#1} { #1/#2/#3 }
- { \dim_eval:n {#4} }
- { \dim_max:nn { \c_zero_dim } {#5} }
- { \dim_max:nn { \c_zero_dim } {#6} }
+ {#1}
+ { #1/#2/#3 }
+ { \dim_eval:n {#4} }
+ { \dim_max:nn { \c_zero_dim } {#5} }
+ { \dim_max:nn { \c_zero_dim } {#6} }
}
}
\cs_new_protected:Npn \@@_save_punct_skip_aux:nnnnn #1#2#3#4#5
@@ -5429,7 +5450,7 @@ Copyright and Licence
}
\cs_new_protected:Npn \@@_save_punct_width_aux:nnnn #1#2#3#4
{
- \@@_save_punct_width_aux:cxn
+ \@@_save_punct_width_aux:cen
{ \@@_punct_csname:n { #1/#3 } }
{ \use:c { #1_eval:n } {#4} }
{#2}
@@ -5442,7 +5463,7 @@ Copyright and Licence
}
\prop_new:N \g_@@_punct_skip_prop
\prop_gput:Non \g_@@_punct_skip_prop { \skip_use:N \c_zero_skip } { }
-\cs_generate_variant:Nn \@@_save_punct_width_aux:Nnn { cx }
+\cs_generate_variant:Nn \@@_save_punct_width_aux:Nnn { ce }
\cs_new_eq:NN \@@_use_dim_or_skip:nNN \@@_use_punct_skip:nNN
% \end{macrocode}
%
@@ -6289,7 +6310,7 @@ Copyright and Licence
\tex_the:D \tex_font:D
\xeCJK_clear_fallback_font:
}
- \exp_args:Nxx \@@_fallback_loop:nnNN
+ \exp_args:Nee \@@_fallback_loop:nnNN
}
\cs_new_protected:Npn \@@_clear_fallback_font:
{ \cs_set_eq:NN \xeCJK_reset_fallback_font: \prg_do_nothing: }
@@ -6313,7 +6334,6 @@ Copyright and Licence
\cs_set_eq:NN \@@_fallback_loop:TF \use_i:nn
\@@_fallback_loop:nnnNN { FallBack }
}
-\cs_generate_variant:Nn \@@_fallback_loop:Nn { Nx }
\cs_new_protected:Npn \@@_fallback_loop:nnnNN #1#2#3
{
\xeCJK_select_fallback_font:nnn {#1} {#2} {#3}
@@ -6354,7 +6374,7 @@ Copyright and Licence
}
\cs_new_protected:Npn \@@_fallback_font_initial_auxi:Nnnn #1
{
- \exp_args:NNx \@@_fallback_font_initial_auxii:Nnnnn
+ \exp_args:NNe \@@_fallback_font_initial_auxii:Nnnnn
#1 { \CJKfamilydefault }
}
\cs_new_protected:Npn \@@_fallback_font_initial_auxii:Nnnnn #1#2#3
@@ -6413,17 +6433,24 @@ Copyright and Licence
\prop_get:NoNF \g_@@_family_font_name_prop
\l_@@_fallback_family_tl \l_@@_font_name_tl
{ \tl_clear:N \l_@@_font_name_tl }
- \clist_map_inline:nn {#3}
- {
- \tl_put_right:Nn \l_@@_fallback_family_tl { /FallBack }
- \@@_get_sub_features:Vn \l_@@_fallback_family_tl {##1}
- \clist_put_left:Nn \l_@@_sub_font_options_clist {#2}
- \xeCJK_set_family:VVV \l_@@_fallback_family_tl
- \l_@@_sub_font_options_clist \l_@@_sub_font_name_tl
- }
+ \clist_set:Nn \l_@@_public_options_clist {#2}
+ \clist_map_function:nN {#3} \@@_set_family_fallback:n
\group_end:
}
+\cs_new_protected:Npn \@@_set_family_fallback:n #1
+ {
+ \tl_put_right:Nn \l_@@_fallback_family_tl { /FallBack }
+ \@@_get_sub_features:on \l_@@_fallback_family_tl {#1}
+ \clist_concat:NNN \l_@@_sub_font_options_clist
+ \l_@@_public_options_clist
+ \l_@@_sub_font_options_clist
+ \exp_args:Nooo \xeCJK_set_family:nnn
+ \l_@@_fallback_family_tl
+ \l_@@_sub_font_options_clist
+ \l_@@_sub_font_name_tl
+ }
\tl_new:N \l_@@_fallback_family_tl
+\clist_new:N \l_@@_public_options_clist
% \end{macrocode}
% \end{macro}
%
@@ -6515,11 +6542,11 @@ Copyright and Licence
\q_mark [ \q_nil ] \q_mark \q_stop
\tl_if_empty:NTF \l_@@_sub_font_name_tl
{ \tl_set_eq:NN \l_@@_sub_font_name_tl \l_@@_font_name_tl }
- { \tl_replace_all:NnV \l_@@_sub_font_name_tl { * } \l_@@_font_name_tl }
- \prop_put:Nnx \l_@@_sub_key_prop {#1}
+ { \tl_replace_all:Nno \l_@@_sub_font_name_tl { * } \l_@@_font_name_tl }
+ \prop_put:Nne \l_@@_sub_key_prop {#1}
{
- { \exp_not:V \l_@@_sub_font_options_clist }
- { \exp_not:V \l_@@_sub_font_name_tl }
+ { \exp_not:o \l_@@_sub_font_options_clist }
+ { \exp_not:o \l_@@_sub_font_name_tl }
}
}
\cs_new_protected:Npn \@@_get_sub_features:w #1 [#2] #3 \q_mark #4 \q_stop
@@ -6537,8 +6564,8 @@ Copyright and Licence
\tl_new:N \l_@@_sub_family_name_tl
\tl_new:N \l_@@_sub_font_name_tl
\clist_new:N \l_@@_sub_font_options_clist
-\cs_generate_variant:Nn \@@_get_sub_features:nn { V }
-\cs_generate_variant:Nn \tl_replace_all:Nnn { NnV }
+\cs_generate_variant:Nn \@@_get_sub_features:nn { o }
+\cs_generate_variant:Nn \tl_replace_all:Nnn { Nno }
% \end{macrocode}
% \end{macro}
%
@@ -6635,12 +6662,12 @@ Copyright and Licence
\tl_set:Nn \l_@@_font_name_tl {#3}
\clist_concat:NNN \l_@@_font_options_clist
\g_@@_default_features_clist \l_@@_font_options_clist
- \keys_set_known:nVN { xeCJK / features }
+ \keys_set_known:noN { xeCJK / features }
\l_@@_font_options_clist \l_@@_fontspec_options_clist
\@@_binding_sub_family:
\@@_parse_font_shape:
- \@@_check_family:V \l_@@_family_name_tl
- \@@_gset_family_cs:x { \l_@@_family_name_tl }
+ \@@_check_family:o \l_@@_family_name_tl
+ \@@_gset_family_cs:n { \l_@@_family_name_tl }
\@@_save_family_info:
\@@_set_sub_block_family:
\group_end:
@@ -6648,7 +6675,7 @@ Copyright and Licence
\tl_new:N \l_@@_family_name_tl
\tl_new:N \l_@@_font_name_tl
\clist_new:N \l_@@_font_options_clist
-\cs_generate_variant:Nn \xeCJK_set_family:nnn { x , VVV , Voo }
+\cs_generate_variant:Nn \xeCJK_set_family:nnn { e , o }
% \end{macrocode}
% \end{macro}
%
@@ -6664,18 +6691,18 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_gset_family_cs:x}
+% \begin{macro}{\@@_gset_family_cs:n}
% \begin{macrocode}
-\cs_new_protected:Npn \@@_gset_family_cs:x #1
+\cs_new_protected:Npn \@@_gset_family_cs:n #1
{
\cs_gset_protected:cpx { \@@_family_csname:n {#1} }
{
\group_begin:
\exp_not:n { \cs_set_eq:NN \xeCJK@fontfamily \use_none:n }
\exp_not:n { \fontspec_gset_family:Nnn \g_@@_fontspec_family_tl }
- { \exp_not:V \l_@@_fontspec_options_clist }
- { \exp_not:V \l_@@_font_name_tl }
- \@@_gset_family_nfss_cs:xx
+ { \exp_not:o \l_@@_fontspec_options_clist }
+ { \exp_not:o \l_@@_font_name_tl }
+ \@@_gset_family_nfss_cs:no
{#1} { \exp_not:N \g_@@_fontspec_family_tl }
\group_end:
\tl_set_eq:NN \exp_not:N \l_@@_fontspec_family_tl
@@ -6701,7 +6728,7 @@ Copyright and Licence
\@@_warning:nxx { CJKfamily-redef } {#1} { \l_@@_tmp_tl }
}
}
-\cs_generate_variant:Nn \@@_check_family:n { V }
+\cs_generate_variant:Nn \@@_check_family:n { o }
\@@_msg_new:nn { CJKfamily-redef }
{ Redefining~CJKfamily~`\@@_msg_family_map:n {#1}'~(#2). }
% \end{macrocode}
@@ -6711,7 +6738,7 @@ Copyright and Licence
% \begin{macrocode}
\cs_new_protected:Npn \@@_parse_font_shape:
{
- \tl_if_blank:VTF \l_@@_font_name_bf_tl
+ \tl_if_blank:oTF \l_@@_font_name_bf_tl
{
\bool_if:NT \l_@@_auto_fake_bold_bool
{
@@ -6721,9 +6748,9 @@ Copyright and Licence
}
{
\clist_put_right:Nx \l_@@_fontspec_options_clist
- { BoldFont = { \exp_not:V \l_@@_font_name_bf_tl } }
+ { BoldFont = { \exp_not:o \l_@@_font_name_bf_tl } }
}
- \tl_if_blank:VTF \l_@@_font_name_it_tl
+ \tl_if_blank:oTF \l_@@_font_name_it_tl
{
\bool_if:NT \l_@@_auto_fake_slant_bool
{
@@ -6733,7 +6760,7 @@ Copyright and Licence
}
{
\clist_put_right:Nx \l_@@_fontspec_options_clist
- { ItalicFont = { \exp_not:V \l_@@_font_name_it_tl } }
+ { ItalicFont = { \exp_not:o \l_@@_font_name_it_tl } }
}
}
% \end{macrocode}
@@ -6752,10 +6779,15 @@ Copyright and Licence
% \begin{macrocode}
\cs_new_protected:Npn \@@_save_family_info:
{
- \prop_gput:NVV \g_@@_family_font_name_prop
- \l_@@_family_name_tl \l_@@_font_name_tl
- \prop_gput:NVV \g_@@_family_font_options_prop
- \l_@@_family_name_tl \l_@@_font_options_clist
+ \exp_args:Nooo \@@_save_family_info:nnn
+ \l_@@_family_name_tl
+ \l_@@_font_name_tl
+ \l_@@_font_options_clist
+ }
+\cs_new_protected:Npn \@@_save_family_info:nnn #1#2#3
+ {
+ \prop_gput:Nnn \g_@@_family_font_name_prop {#1} {#2}
+ \prop_gput:Nnn \g_@@_family_font_options_prop {#1} {#3}
}
% \end{macrocode}
% \end{macro}
@@ -6764,39 +6796,42 @@ Copyright and Licence
% \begin{macrocode}
\cs_new_protected:Npn \@@_set_sub_block_family:
{
- \prop_map_inline:Nn \l_@@_sub_key_prop
+ \prop_if_empty:NF \l_@@_sub_key_prop
{
- \tl_set:Nx \l_@@_sub_family_name_tl { \l_@@_family_name_tl/##1 }
- \quark_if_no_value:nTF {##2}
- { \@@_copy_sub_family:n {##1} }
- {
- \xeCJK_set_family:Voo \l_@@_sub_family_name_tl
- { \use_i:nn ##2 } { \use_ii:nn ##2 }
- }
+ \prop_map_function:NN
+ \l_@@_sub_key_prop
+ \@@_set_sub_block_family:nn
}
}
+\cs_new_protected:Npn \@@_set_sub_block_family:nn #1#2
+ {
+ \tl_set:Nx \l_@@_sub_family_name_tl { \l_@@_family_name_tl/#1 }
+ \quark_if_no_value:nTF {#2}
+ { \@@_copy_sub_family:n {#1} }
+ { \xeCJK_set_family:onn \l_@@_sub_family_name_tl #2 }
+ }
\cs_new_protected:Npn \@@_copy_sub_family:n #1
{
- \@@_check_family:V \l_@@_sub_family_name_tl
+ \@@_check_family:o \l_@@_sub_family_name_tl
\prop_get:NoNT \g_@@_family_font_name_prop
\l_@@_family_name_tl \l_@@_sub_font_name_tl
{
- \prop_gput:NVV \g_@@_family_font_name_prop
+ \prop_gput:Noo \g_@@_family_font_name_prop
\l_@@_sub_family_name_tl \l_@@_sub_font_name_tl
}
\prop_get:NoNT \g_@@_family_font_options_prop
\l_@@_family_name_tl \l_@@_sub_font_options_clist
{
\clist_remove_all:Nn \l_@@_sub_font_options_clist { #1 = * }
- \prop_gput:NVV \g_@@_family_font_options_prop
+ \prop_gput:Noo \g_@@_family_font_options_prop
\l_@@_sub_family_name_tl \l_@@_sub_font_options_clist
}
\cs_gset_protected:cpx
{ \@@_family_csname:n { \l_@@_sub_family_name_tl } }
{
- \xeCJK_family_if_exist:xT { \l_@@_family_name_tl }
+ \xeCJK_family_if_exist:eT { \l_@@_family_name_tl }
{
- \@@_gset_family_nfss_cs:xx
+ \@@_gset_family_nfss_cs:no
{ \l_@@_sub_family_name_tl }
{ \exp_not:N \l_@@_fontspec_family_tl }
}
@@ -6805,13 +6840,13 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\@@_copy_family:nn,\@@_copy_family:xx}
+% \begin{macro}{\@@_copy_family:nn,\@@_copy_family:ee}
% \begin{macrocode}
\cs_new_protected:Npn \@@_copy_family:nn #1#2
{
\xeCJK_family_if_exist:nT {#2}
{
- \prop_gput:NnV \g_@@_family_name_prop
+ \prop_gput:Nno \g_@@_family_name_prop
{#1} \l_@@_fontspec_family_tl
\tl_map_inline:nn
{
@@ -6820,15 +6855,14 @@ Copyright and Licence
}
{
\prop_get:NnNT ##1 {#2} \l_@@_tmp_tl
- { \prop_gput:NnV ##1 {#1} \l_@@_tmp_tl }
+ { \prop_gput:Nno ##1 {#1} \l_@@_tmp_tl }
}
\cs_gset_eq:cc
{ \@@_family_nfss_csname:n {#1} }
{ \@@_family_nfss_csname:n {#2} }
}
}
-\cs_new_protected:Npn \@@_copy_family:xx #1#2
- { \use:x { \@@_copy_family:nn {#1} {#2} } }
+\cs_generate_variant:Nn \@@_copy_family:nn { ee }
% \end{macrocode}
% \end{macro}
%
@@ -6955,9 +6989,9 @@ Copyright and Licence
}
\cs_new_protected:Npn \xeCJK_block_family:nn #1#2
{
- \xeCJK_family_if_exist:xF { #1/#2 }
+ \xeCJK_family_if_exist:eF { #1/#2 }
{
- \@@_copy_family:xx { #1/#2 }
+ \@@_copy_family:ee { #1/#2 }
{
\cs_if_exist:cTF
{ \@@_family_csname:n { \CJKfamilydefault/#2 } }
@@ -6985,7 +7019,7 @@ Copyright and Licence
{ \@@_family_nfss_csname:n {#1} }
{ \@@_nfss_family:nn { \c_@@_encoding_tl } {#2} }
}
-\cs_generate_variant:Nn \@@_gset_family_nfss_cs:nn { xx }
+\cs_generate_variant:Nn \@@_gset_family_nfss_cs:nn { no }
% \end{macrocode}
% \end{macro}
%
@@ -7034,12 +7068,13 @@ Copyright and Licence
{#1} \l_@@_fontspec_family_tl
{ \prg_return_true: }
{
- \cs_if_exist_use:cTF { \@@_family_csname:n {#1} }
+ \exp_args:Ne \cs_if_exist_use:cTF
+ { \@@_family_csname:n {#1} }
{ \prg_return_true: }
{ \prg_return_false: }
}
}
-\prg_generate_conditional_variant:Nnn \xeCJK_family_if_exist:n { x } { T , F , TF }
+\prg_generate_conditional_variant:Nnn \xeCJK_family_if_exist:n { e } { T , F , TF }
% \end{macrocode}
% \end{macro}
%
@@ -7048,7 +7083,7 @@ Copyright and Licence
% \begin{macrocode}
\NewDocumentCommand \CJKfamily { t+ t- m }
{
- \xeCJK_family:NNx #1 #2 {#3}
+ \xeCJK_family:NNe #1 #2 {#3}
\tex_ignorespaces:D
}
\cs_new_protected:Npn \xeCJK_family:NNn #1#2#3
@@ -7056,7 +7091,7 @@ Copyright and Licence
\tl_if_blank:nTF {#3}
{
\bool_if:NF #1 { \bool_if:NF #2 { \use_none:nn } }
- \xeCJK_family_if_exist_use:x { \l_xeCJK_family_tl }
+ \xeCJK_family_if_exist_use:e { \l_xeCJK_family_tl }
}
{
\bool_if:NTF #2
@@ -7072,7 +7107,7 @@ Copyright and Licence
}
}
}
-\cs_generate_variant:Nn \xeCJK_family:NNn { NNx }
+\cs_generate_variant:Nn \xeCJK_family:NNn { NNe }
\cs_new_protected:Npn \xeCJK_switch_family:n #1
{
\xeCJK_family_if_exist:nTF {#1}
@@ -7082,7 +7117,7 @@ Copyright and Licence
}
{ \@@_family_unknown_warning:n {#1} }
}
-\cs_generate_variant:Nn \xeCJK_switch_family:n { x , o }
+\cs_generate_variant:Nn \xeCJK_switch_family:n { e , o }
% \end{macrocode}
% \end{macro}
%
@@ -7104,7 +7139,7 @@ Copyright and Licence
\cs_set_eq:NN \xeCJK_select_punct_font: \xeCJK_select_font:
} ,
PunctFamily / unknown .code:n =
- { \xeCJK_punct_family:x {#1} } ,
+ { \xeCJK_punct_family:e {#1} } ,
}
\cs_new_protected:Npn \xeCJK_punct_family:n #1
{
@@ -7118,7 +7153,7 @@ Copyright and Licence
}
{ \@@_family_unknown_warning:n {#1} }
}
-\cs_generate_variant:Nn \xeCJK_punct_family:n { x }
+\cs_generate_variant:Nn \xeCJK_punct_family:n { e }
% \end{macrocode}
% \end{macro}
%
@@ -7154,7 +7189,7 @@ Copyright and Licence
{ \@@_family_use:n {#1} }
{ \@@_family_unknown_warning:n {#1} }
}
-\cs_generate_variant:Nn \xeCJK_family_if_exist_use:n { x }
+\cs_generate_variant:Nn \xeCJK_family_if_exist_use:n { e }
% \end{macrocode}
% \end{macro}
%
@@ -7173,7 +7208,6 @@ Copyright and Licence
}
}
}
-\cs_generate_variant:Nn \@@_family_unknown_warning:n { x }
\seq_new:N \g_@@_unknown_family_seq
\@@_msg_new:nn { CJKfamily-Unknown }
{
@@ -7189,7 +7223,7 @@ Copyright and Licence
\CJKttdefault { \token_to_str:N \setCJKmonofont }
}
{ \token_to_str:N \setCJKfamilyfont \{ #1 \} }
- [...]\{...\}
+ [<...>]\{<...>\}
}
\cs_new:Npn \@@_msg_family_map:n #1
{
@@ -7213,13 +7247,13 @@ Copyright and Licence
\tl_if_novalue:nTF {#2}
{ \@@_post_arg:w {#1} {#3} {#4} }
{
- \use:x { #1 {#2} {#3} }
+ \use:e { #1 {#2} {#3} }
#4
}
}
\NewDocumentCommand \@@_post_arg:w { m m m O { } }
{
- \use:x { #1 {#4} {#2} }
+ \use:e { #1 {#4} {#2} }
#3
}
% \end{macrocode}
@@ -7307,7 +7341,7 @@ Copyright and Licence
{ CJKfontspec/#1/#2/id } \l_xeCJK_family_tl
{ \xeCJK_switch_family:o { \l_xeCJK_family_tl } }
{
- \@@_fontspec:xnn
+ \@@_fontspec:enn
{ CJKfontspec ( \int_eval:n { \g_@@_family_int + 1 } ) }
{#1} {#2}
}
@@ -7318,8 +7352,8 @@ Copyright and Licence
\xeCJK_set_family:nnn {#1} {#2} {#3}
\xeCJK_switch_family:n {#1}
}
-\cs_generate_variant:Nn \xeCJK_fontspec:nn { VV }
-\cs_generate_variant:Nn \@@_fontspec:nnn { x }
+\cs_generate_variant:Nn \xeCJK_fontspec:nn { oo }
+\cs_generate_variant:Nn \@@_fontspec:nnn { e }
\prop_new:N \g_@@_fontspec_prop
% \end{macrocode}
% \end{macro}
@@ -7334,7 +7368,7 @@ Copyright and Licence
\@onlypreamble \defaultCJKfontfeatures
\NewDocumentCommand \addCJKfontfeatures { s O { } m }
{
- \xeCJK_add_font_features:Nxx #1 {#2} {#3}
+ \xeCJK_add_font_features:Nee #1 {#2} {#3}
\tex_ignorespaces:D
}
\cs_new_eq:NN \addCJKfontfeature \addCJKfontfeatures
@@ -7353,15 +7387,7 @@ Copyright and Licence
{ \clist_remove_all:Nn \l_@@_add_font_features_clist {##1} }
\seq_clear:N \l_@@_sub_key_seq
\clist_clear:N \l_@@_add_block_features_clist
- \clist_map_inline:nn {#2}
- {
- \seq_if_in:NnTF \g_@@_sub_key_seq {##1}
- {
- \seq_put_right:Nn \l_@@_sub_key_seq {##1}
- \@@_add_sub_class_features:n {##1}
- }
- { \@@_warning:nx { SubBlock-undefined } {##1} }
- }
+ \clist_map_function:nN {#2} \@@_add_sub_features:n
\bool_lazy_and:nnT
{#1}
{ \seq_if_empty_p:N \l_@@_sub_key_seq }
@@ -7382,13 +7408,22 @@ Copyright and Licence
\clist_concat:NNN \l_@@_font_options_clist
\l_@@_font_options_clist \l_@@_add_block_features_clist
}
- \xeCJK_fontspec:VV \l_@@_font_options_clist \l_@@_font_name_tl
+ \xeCJK_fontspec:oo \l_@@_font_options_clist \l_@@_font_name_tl
}
{ \@@_warning:n { addCJKfontfeature-ignored } }
}
+\cs_new_protected:Npn \@@_add_sub_features:n #1
+ {
+ \seq_if_in:NnTF \g_@@_sub_key_seq {#1}
+ {
+ \seq_put_right:Nn \l_@@_sub_key_seq {#1}
+ \@@_add_sub_class_features:n {#1}
+ }
+ { \@@_warning:nx { SubBlock-undefined } {#1} }
+ }
\clist_new:N \l_@@_add_font_features_clist
\clist_new:N \l_@@_add_block_features_clist
-\cs_generate_variant:Nn \xeCJK_add_font_features:Nnn { Nxx , Nnx }
+\cs_generate_variant:Nn \xeCJK_add_font_features:Nnn { Nee , Nne }
\@@_msg_new:nn { addCJKfontfeature-ignored }
{
\token_to_str:N \addCJKfontfeature (s)~ignored.\\\\
@@ -7408,10 +7443,10 @@ Copyright and Licence
{ \l_xeCJK_family_tl/#1 } \l_@@_sub_font_options_clist
}
{
- \prop_get:NxNTF \g_@@_family_font_name_prop
+ \prop_get:NeNTF \g_@@_family_font_name_prop
{ \CJKfamilydefault/#1 } \l_@@_sub_font_name_tl
{
- \prop_get:NxN \g_@@_family_font_options_prop
+ \prop_get:NeN \g_@@_family_font_options_prop
{ \CJKfamilydefault/#1 } \l_@@_sub_font_options_clist
}
{
@@ -7426,13 +7461,13 @@ Copyright and Licence
{
#1 =
{
- [ \exp_not:V \l_@@_sub_font_options_clist ]
- { \exp_not:V \l_@@_sub_font_name_tl }
+ [ \exp_not:o \l_@@_sub_font_options_clist ]
+ { \exp_not:o \l_@@_sub_font_name_tl }
}
}
}
-\cs_generate_variant:Nn \prop_get:NnN { Nx }
-\prg_generate_conditional_variant:Nnn \prop_get:NnN { Nx } { TF }
+\cs_generate_variant:Nn \prop_get:NnN { Ne }
+\prg_generate_conditional_variant:Nnn \prop_get:NnN { Ne } { T , TF }
% \end{macrocode}
% \end{macro}
%
@@ -7444,12 +7479,12 @@ Copyright and Licence
{ LoadFandol .bool_gset:N = \g_@@_fandol_bool }
\cs_new_protected:Npn \@@_load_fandol:
{
- \xeCJK_set_family:xnn { \CJKrmdefault }
+ \xeCJK_set_family:enn { \CJKrmdefault }
{ Extension = .otf , BoldFont = FandolSong-Bold , ItalicFont = FandolKai-Regular }
{ FandolSong-Regular }
- \xeCJK_set_family:xnn { \CJKsfdefault }
+ \xeCJK_set_family:enn { \CJKsfdefault }
{ Extension = .otf , BoldFont = FandolHei-Bold } { FandolHei-Regular }
- \xeCJK_set_family:xnn { \CJKttdefault }
+ \xeCJK_set_family:enn { \CJKttdefault }
{ Extension = .otf } { FandolFang-Regular }
}
% \end{macrocode}
@@ -7496,13 +7531,13 @@ Copyright and Licence
}
\cs_new_protected:Npn \xeCJK_ensure_default_family:
{
- \xeCJK_family_if_exist:xF { \CJKfamilydefault }
+ \xeCJK_family_if_exist:eF { \CJKfamilydefault }
{
\tl_set_eq:NN \l_@@_tmp_tl \CJKfamilydefault
\str_if_eq:eeTF { \CJKfamilydefault } { \CJKrmdefault }
{ \use:n }
{
- \xeCJK_family_if_exist:xTF { \CJKrmdefault }
+ \xeCJK_family_if_exist:eTF { \CJKrmdefault }
{ \tl_gset:Nn \CJKfamilydefault { \CJKrmdefault } }
}
{
@@ -7515,7 +7550,7 @@ Copyright and Licence
\@@_warning:nxx { CJKfamilydefault-undefined }
{ \l_@@_tmp_tl } { \CJKfamilydefault }
}
- \xeCJK_switch_family:x { \CJKfamilydefault }
+ \xeCJK_switch_family:e { \CJKfamilydefault }
\bool_if:NT \g_@@_math_bool { \xeCJK_set_mathfont: }
}
\@@_msg_new:nn { no-CJKfamily }
@@ -7571,12 +7606,12 @@ Copyright and Licence
\cs_new_protected:Npn \xeCJK_set_mathfont:
{
\cs_if_exist_use:N \@@_save_um_char:
- \xeCJK_family_if_exist:xTF { \c_@@_math_tl }
+ \xeCJK_family_if_exist:eTF { \c_@@_math_tl }
{ \@@_set_mathfont_aux: }
{
- \xeCJK_family_if_exist:xT { \CJKfamilydefault }
+ \xeCJK_family_if_exist:eT { \CJKfamilydefault }
{
- \@@_copy_family:xx { \c_@@_math_tl } { \CJKfamilydefault }
+ \@@_copy_family:ee { \c_@@_math_tl } { \CJKfamilydefault }
\@@_set_mathfont_aux:
}
}
@@ -7586,7 +7621,7 @@ Copyright and Licence
{
\tl_const:Nx \c_@@_math_family_tl
{ \l_@@_fontspec_family_tl }
- \xeCJK_declare_mathfont:xx
+ \xeCJK_declare_mathfont:ee
{ \c_@@_math_tl }
{ \c_@@_math_family_tl }
\int_const:Nn \c_xeCJK_math_fam_int
@@ -7625,7 +7660,7 @@ Copyright and Licence
\l_@@_fontspec_family_tl \l_@@_tmp_tl
{ \int_set:Nn \l_@@_fam_int { \l_@@_tmp_tl } }
{
- \xeCJK_declare_mathfont:xx
+ \xeCJK_declare_mathfont:ee
{ \c_@@_math_tl / #1 }
{ \l_@@_fontspec_family_tl }
\@@_set_mathfont_block_aux:cn
@@ -7661,10 +7696,11 @@ Copyright and Licence
\SetSymbolFont {#1} { bold } { \c_@@_encoding_tl }
{#2} { \bfdefault } { \shapedefault }
}
- \prop_gput:Nnx \g_@@_fam_prop {#2} { \exp_not:c { sym #1 } }
+ \prop_gput:Nne \g_@@_fam_prop {#2} { \exp_not:c { sym #1 } }
}
-\cs_generate_variant:Nn \prop_gput:Nnn { Nnx }
-\cs_generate_variant:Nn \xeCJK_declare_mathfont:nn { xx }
+\cs_generate_variant:Nn \prop_put:Nnn { Nne }
+\cs_generate_variant:Nn \prop_gput:Nnn { Nne }
+\cs_generate_variant:Nn \xeCJK_declare_mathfont:nn { ee }
% \end{macrocode}
% \end{macro}
%
@@ -7915,38 +7951,7 @@ Copyright and Licence
\cs_new_protected:Npn \@@_verb_addon:
{
\bool_if:NF \l_@@_verb_addon_bool
- {
- \bool_set_true:N \l_@@_verb_addon_bool
- \@@_set_char_class_eq:nn { FullLeft } { CJK }
- \@@_set_char_class_eq:nn { FullRight } { CJK }
- \@@_set_char_class_eq:nn { HalfLeft } { Default }
- \@@_set_char_class_eq:nn { HalfRight } { Default }
- \@@_set_char_class_eq:nn { NormalSpace } { Default }
- \cs_set_eq:NN \@@_shipout_CJKglue: \CJKglue
- \cs_set_eq:NN \@@_shipout_CJKecglue: \CJKecglue
- \cs_set_eq:NN \@@_shipout_check_for_glue: \xeCJK_check_for_glue:
- \cs_set_eq:NN \@@_shipout_boundary:w \xeCJK_CJK_and_Boundary:w
- \cs_set_protected:Npx \xeCJKOffVerbAddon
- {
- \@@_reset_char_class:n { FullLeft }
- \@@_reset_char_class:n { FullRight }
- \@@_reset_char_class:n { HalfLeft }
- \@@_reset_char_class:n { HalfLeft }
- \@@_reset_char_class:n { NormalSpace }
- \bool_if:NTF \l_@@_xecglue_bool
- { \keys_set:nn { xeCJK / options } { xCJKecglue = true } }
- { \keys_set:nn { xeCJK / options } { xCJKecglue = false } }
- \exp_not:n
- {
- \cs_set_eq:NN \CJKglue \@@_shipout_CJKglue:
- \cs_set_eq:NN \CJKecglue \@@_shipout_CJKecglue:
- \cs_set_eq:NN \xeCJK_check_for_glue: \@@_shipout_check_for_glue:
- \cs_set_eq:NN \xeCJK_CJK_and_Boundary:w \@@_shipout_boundary:w
- }
- }
- \xeCJK_add_to_shipout:n { \xeCJKOffVerbAddon }
- \keys_set:nn { xeCJK / options } { xCJKecglue = false }
- }
+ { \@@_verb_addon_action: }
\skip_if_eq:nnTF { \l_@@_verb_exspace_skip } { \c_zero_skip }
{
\xeCJK_cs_clear:N \CJKglue
@@ -7961,6 +7966,39 @@ Copyright and Licence
\cs_set_eq:NN \xeCJK_check_for_glue: \CJKecglue
\cs_set_eq:NN \xeCJK_CJK_and_Boundary:w \@@_verb_CJK_and_Boundary:w
}
+\cs_new_protected:Npn \@@_verb_addon_action:
+ {
+ \bool_set_true:N \l_@@_verb_addon_bool
+ \@@_set_char_class_eq:nn { FullLeft } { CJK }
+ \@@_set_char_class_eq:nn { FullRight } { CJK }
+ \@@_set_char_class_eq:nn { HalfLeft } { Default }
+ \@@_set_char_class_eq:nn { HalfRight } { Default }
+ \@@_set_char_class_eq:nn { NormalSpace } { Default }
+ \cs_set_eq:NN \@@_shipout_CJKglue: \CJKglue
+ \cs_set_eq:NN \@@_shipout_CJKecglue: \CJKecglue
+ \cs_set_eq:NN \@@_shipout_check_for_glue: \xeCJK_check_for_glue:
+ \cs_set_eq:NN \@@_shipout_boundary:w \xeCJK_CJK_and_Boundary:w
+ \cs_set_protected:Npx \xeCJKOffVerbAddon
+ {
+ \@@_reset_char_class:n { FullLeft }
+ \@@_reset_char_class:n { FullRight }
+ \@@_reset_char_class:n { HalfLeft }
+ \@@_reset_char_class:n { HalfLeft }
+ \@@_reset_char_class:n { NormalSpace }
+ \bool_if:NTF \l_@@_xecglue_bool
+ { \keys_set:nn { xeCJK / options } { xCJKecglue = true } }
+ { \keys_set:nn { xeCJK / options } { xCJKecglue = false } }
+ \exp_not:n
+ {
+ \cs_set_eq:NN \CJKglue \@@_shipout_CJKglue:
+ \cs_set_eq:NN \CJKecglue \@@_shipout_CJKecglue:
+ \cs_set_eq:NN \xeCJK_check_for_glue: \@@_shipout_check_for_glue:
+ \cs_set_eq:NN \xeCJK_CJK_and_Boundary:w \@@_shipout_boundary:w
+ }
+ }
+ \xeCJK_add_to_shipout:n { \xeCJKOffVerbAddon }
+ \keys_set:nn { xeCJK / options } { xCJKecglue = false }
+ }
\cs_new_protected:Npn \@@_verb_CJK_and_Boundary:w
{ \xeCJK_class_group_end: \CJKecglue }
\cs_new_protected:Npn \@@_reset_char_class:n #1
@@ -8016,12 +8054,9 @@ Copyright and Licence
\dim_compare:nNnTF \l_@@_verb_exspace_skip < \c_zero_dim
{
\skip_zero:N \l_@@_verb_exspace_skip
- \use:x
- {
- \@@_set_verb_scale:nn
- { \dim_to_fp:n { 2 \tex_fontdimen:D 2 ~ \tex_font:D } }
- { \dim_to_fp:n {#1} }
- }
+ \exp_args:Nee \@@_set_verb_scale:nn
+ { \dim_to_fp:n { 2 \tex_fontdimen:D 2 ~ \tex_font:D } }
+ { \dim_to_fp:n {#1} }
}
{
\tl_const:cx { xeCJK/verb/\CJK@family/\curr@fontshape/\f@size }
@@ -8040,9 +8075,9 @@ Copyright and Licence
\@@_warning:nxx { scale-factor }
{ \fp_eval:n { trunc ( \l_@@_scale_factor_fp , 4 ) } }
{ \fp_eval:n { ceil ( #2 / #1 , 4 ) } }
- \xeCJK_add_font_features:Nnx \c_true_bool
+ \xeCJK_add_font_features:Nne \c_true_bool
{ } { Scale = { \fp_use:N \l_@@_scale_factor_fp } }
- \prop_gput:NVV \g_@@_scale_family_prop
+ \prop_gput:Noo \g_@@_scale_family_prop
\l_@@_current_coor_tl \l_xeCJK_family_tl
}
\@@_msg_new:nn { scale-factor }
@@ -8327,7 +8362,7 @@ Copyright and Licence
\exp_not:N \@@_family_default_wrap:n
{
\tl_if_exist:NTF \CJKfamilydefault
- { \exp_not:V \CJKfamilydefault }
+ { \exp_not:o \CJKfamilydefault }
{ \exp_not:N \CJKrmdefault }
}
}
@@ -8492,7 +8527,7 @@ Copyright and Licence
}
\cs_new_protected:Npn \@@_math_robust_aux:NN #1#2
{
- \exp_args:Nx \str_case:nnTF { \cs_replacement_spec:N #1 }
+ \exp_args:Ne \str_case:nnTF { \cs_replacement_spec:N #1 }
{
{ \x@protect #1 \protect #2 } { }
{ \protect #2 } { }
@@ -8580,7 +8615,7 @@ Copyright and Licence
% \begin{macrocode}
\ctex_if_format_at_least:nTF { 2020/10/01 }
{
- \cs_set_eq:NN \xeCJK@family \xeCJK_switch_family:x
+ \cs_set_eq:NN \xeCJK@family \xeCJK_switch_family:e
\ctex_gadd_ltxhook:nn { rmfamily } { \xeCJK@family { \CJKrmdefault } }
\ctex_gadd_ltxhook:nn { sffamily } { \xeCJK@family { \CJKsfdefault } }
\ctex_gadd_ltxhook:nn { ttfamily } { \xeCJK@family { \CJKttdefault } }
@@ -8589,7 +8624,7 @@ Copyright and Licence
{
\cs_if_exist:NTF \@rmfamilyhook
{
- \cs_set_eq:NN \xeCJK@family \xeCJK_switch_family:x
+ \cs_set_eq:NN \xeCJK@family \xeCJK_switch_family:e
\g@addto@macro \@rmfamilyhook { \xeCJK@family { \CJKrmdefault } }
\g@addto@macro \@sffamilyhook { \xeCJK@family { \CJKsfdefault } }
\g@addto@macro \@ttfamilyhook { \xeCJK@family { \CJKttdefault } }
@@ -8609,17 +8644,17 @@ Copyright and Licence
\cs_new_protected:Npn \xeCJK@fontfamily #1
{
\str_if_eq:nnTF {#1} { \familydefault }
- { \xeCJK_switch_family:x { \CJKfamilydefault } }
+ { \xeCJK_switch_family:e { \CJKfamilydefault } }
{ \@@_update_family_aux: }
}
\cs_new_protected:Npn \@@_update_family_aux:
{
\str_case_e:nn { \f@family }
{
- { \rmdefault } { \xeCJK_switch_family:x { \CJKrmdefault } }
- { \sfdefault } { \xeCJK_switch_family:x { \CJKsfdefault } }
- { \ttdefault } { \xeCJK_switch_family:x { \CJKttdefault } }
- { \familydefault } { \xeCJK_switch_family:x { \CJKfamilydefault } }
+ { \rmdefault } { \xeCJK_switch_family:e { \CJKrmdefault } }
+ { \sfdefault } { \xeCJK_switch_family:e { \CJKsfdefault } }
+ { \ttdefault } { \xeCJK_switch_family:e { \CJKttdefault } }
+ { \familydefault } { \xeCJK_switch_family:e { \CJKfamilydefault } }
}
}
}
@@ -8668,10 +8703,7 @@ Copyright and Licence
% 修复倾斜校正,并处理汉字后面的空格。
% \begin{macrocode}
\cs_new_protected:Npn \xeCJK_italic_correction:
- {
- \int_compare:nNnT \tex_lastnodetype:D = { 12 }
- { \@@_italic_correction: }
- }
+ { \@@_if_last_kern:T { \@@_italic_correction: } }
\cs_new_protected:Npn \@@_italic_correction:
{
\dim_case:nnF { \tex_lastkern:D }
@@ -8749,17 +8781,17 @@ Copyright and Licence
{
\xeCJK_copy_inter_class_toks:nnnn {##1} { Others } {##1} { NormalSpace }
\xeCJK_copy_inter_class_toks:nnnn { Others } {##1} { NormalSpace } {##1}
- \xeCJK_app_inter_class_toks:nnx {##1} { Others }
+ \xeCJK_app_inter_class_toks:nne {##1} { Others }
{ \xeCJK_get_inter_class_toks:nn { Default } { Others } }
- \xeCJK_pre_inter_class_toks:nnx { Others } {##1}
+ \xeCJK_pre_inter_class_toks:nne { Others } {##1}
{ \xeCJK_get_inter_class_toks:nn { Others } { Default } }
- \xeCJK_if_blank_x:nT
+ \tl_if_blank:eT
{ \xeCJK_get_inter_class_toks:nn { Others } { Boundary } }
{
\xeCJK_copy_inter_class_toks:nnnn
{ Others } { Boundary } { Default } { Boundary }
}
- \xeCJK_if_blank_x:nT
+ \tl_if_blank:eT
{ \xeCJK_get_inter_class_toks:nn { Boundary } { Others } }
{
\xeCJK_copy_inter_class_toks:nnnn
@@ -8805,7 +8837,7 @@ Copyright and Licence
\xeCJK_if_package_loaded:nTF { xunicode }
{ \@@_patch_xunicode_ambiguous_char: }
{
- \exp_args:Nx \@@_patch_tuenc_ambiguous_char:n
+ \exp_args:Ne \@@_patch_tuenc_ambiguous_char:n
{ \UnicodeEncodingName }
\@@_patch_tuenc_accent:
\@@_patch_tuenc_composite:
@@ -8840,13 +8872,14 @@ Copyright and Licence
}
\cs_new_protected:Npn \@@_patch_ambiguous_char:nN #1#2
{
- \exp_args:Nx \@@_patch_ambiguous_char:nn
+ \exp_args:Ne \@@_patch_ambiguous_char:nn
{ #1 \token_to_str:N #2 }
{ #1 - #2 }
}
\cs_new_protected:Npx \@@_patch_ambiguous_char:nNn #1#2#3
{
- \exp_args:Nx \exp_not:N \@@_patch_ambiguous_char:nn
+ \exp_not:N \exp_args:Ne
+ \exp_not:N \@@_patch_ambiguous_char:nn
{
\c_backslash_str #1
\exp_not:N \token_to_str:N #2 -
@@ -8863,13 +8896,13 @@ Copyright and Licence
{
\token_if_chardef:NTF #1
{
- \prop_gput:Nnx \c_@@_ambiguous_slot_prop {#2}
+ \prop_gput:Nne \c_@@_ambiguous_slot_prop {#2}
{ \int_eval:n {#1} }
\cs_set_protected:Npx #1
{ \@@_ambiguous_char:n { \tex_Uchar:D #1 } }
}
{
- \prop_gput:Nnx \c_@@_ambiguous_slot_prop {#2}
+ \prop_gput:Nne \c_@@_ambiguous_slot_prop {#2}
{ \int_eval:n { \exp_after:wN ` #1 } }
\cs_set_protected:Npx #1
{ \@@_ambiguous_char:n { \exp_not:o {#1} } }
@@ -9045,7 +9078,7 @@ Copyright and Licence
}
\cs_new_protected:Npn \@@_get_ambiguous_slot:
{
- \exp_args:NNx \prop_get:NnNT \c_@@_ambiguous_slot_prop
+ \prop_get:NeNT \c_@@_ambiguous_slot_prop
{ \MT@encoding - \tex_the:D \MT@toks } \l_@@_tmp_tl
{ \cs_set_eq:NN \MT@char \l_@@_tmp_tl }
}
@@ -9262,7 +9295,7 @@ Copyright and Licence
% \begin{macrocode}
\cs_new_protected:Npn \xeCJK_ulem_word:nw #1 ~
{
- \exp_after:wN \UL@start #1 ~
+ \@@_ulem_start:w #1 ~
\exp_after:wN \if_meaning:w \exp_after:wN \UL@end #1
\exp_after:wN \@@_ulem_end:
\else:
@@ -9290,6 +9323,8 @@ Copyright and Licence
\fi:
\xeCJK_ulem_word:nw \prg_do_nothing:
}
+\cs_new_protected:Npn \@@_ulem_start:w
+ { \exp_after:wN \UL@start }
\cs_set_eq:NN \UL@word \xeCJK_ulem_word:nw
% \end{macrocode}
% \end{macro}
@@ -9426,15 +9461,15 @@ Copyright and Licence
{
\int_case:nn { \tex_lastnodetype:D }
{
- { 1 } { \@@_ulem_right_skip_hbox: }
- { 11 } { \@@_ulem_right_skip_glue: }
- { 13 } { \@@_ulem_right_skip_penalty: }
+ { \c_@@_hlist_node } { \@@_ulem_right_skip_hbox: }
+ { \c_@@_glue_node } { \@@_ulem_right_skip_glue: }
+ { \c_@@_penalty_node } { \@@_ulem_right_skip_penalty: }
}
}
\cs_new_protected:Npn \@@_ulem_right_skip_hbox:
{
\box_set_to_last:N \l_@@_tmp_box
- \int_compare:nNnTF \tex_lastnodetype:D = { 12 }
+ \@@_if_last_kern:TF
{ \@@_ulem_right_skip_kern: }
{ \@@_ulem_right_skip_glue: }
\box_use_drop:N \l_@@_tmp_box
@@ -9463,7 +9498,7 @@ Copyright and Licence
{
\int_set_eq:NN \l_@@_tmp_int \tex_lastpenalty:D
\tex_unpenalty:D
- \int_compare:nNnT \tex_lastnodetype:D = \c_one_int
+ \@@_if_last_hlist:T
{ \@@_ulem_right_skip_hbox: }
\tex_penalty:D \l_@@_tmp_int
}
@@ -9582,6 +9617,8 @@ Copyright and Licence
% \end{macrocode}
% \end{macro}
%
+% \changes{v3.9.1}{2022/07/28}{修复下划线中数学公式的错误处理。}
+%
% \begin{macro}{\@@_ulem_CJK_and_Boundary:w}
% \begin{macrocode}
\cs_new_protected:Npn \@@_ulem_CJK_and_Boundary:w
@@ -9589,26 +9626,47 @@ Copyright and Licence
\xeCJK_if_ulem_patch:TF
{
\xeCJK_peek_catcode_ignore_spaces:NTF \c_math_toggle_token
- {
- \xeCJK_class_group_end: \UL@stop
- \CJKecglue
- \UL@start
- }
+ { \xeCJK_class_group_end: \CJKecglue }
{
\bool_if:NTF \l_@@_peek_ignore_spaces_bool
- {
- \xeCJK_class_group_end: \UL@stop
- \UL@start { \xeCJK_make_node:n { CJK-space } }
- }
- {
- \xeCJK_class_group_end: \UL@stop
- \UL@start { \xeCJK_make_node:n { CJK } }
- }
- \xeCJK_make_group_tag:
+ { \@@_ulem_peek_math:w }
+ { \@@_ulem_group_end:n { CJK } }
}
}
{ \@@_ulem_CJK_and_Boundary:w }
}
+\cs_new_protected:Npn \@@_ulem_group_end:n #1
+ {
+ \xeCJK_class_group_end: \UL@stop
+ \UL@start { \xeCJK_make_node:n {#1} }
+ \xeCJK_make_group_tag:
+ }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@@_ulem_peek_math:w}
+% 用于处理下划线中,汉字与 |$| 之间有空格的情况^^A
+% \footnote{\url{https://github.com/CTeX-org/ctex-kit/issues/614}}。
+% \begin{macrocode}
+\cs_new_protected:Npn \@@_ulem_peek_math:w
+ {
+ \cs_set_eq:NN \@@_ulem_start:w \@@_ulem_exp_stop:w
+ \exp_after:wN \peek_after:Nw
+ \exp_after:wN \@@_ulem_peek_math_branches:w
+ \exp:w \exp_end_continue_f:w
+ }
+\cs_new_protected:Npn \@@_ulem_peek_math_branches:w
+ {
+ \token_if_math_toggle:NTF \l_peek_token
+ { \xeCJK_class_group_end: \CJKecglue }
+ { \@@_ulem_group_end:n { CJK-space } }
+ }
+\cs_new_protected:Npn \@@_ulem_exp_stop:w
+ {
+ \cs_if_eq:NNTF \UL@start \@empty
+ { \exp_after:wN \exp_stop_f: }
+ { \exp_after:wN \UL@start }
+ }
% \end{macrocode}
% \end{macro}
%
@@ -10220,12 +10278,7 @@ Copyright and Licence
\cs_new_protected:Npn \xeCJK_fntef_sbox:n #1
{
\hbox_set:Nn \l_@@_fntef_box
- {
- \color_group_begin:
- \color_ensure_current:
- #1
- \color_group_end:
- }
+ { \color_ensure_current: #1 }
}
% \end{macrocode}
% \end{macro}
@@ -10480,7 +10533,7 @@ Copyright and Licence
% \begin{macrocode}
\NewDocumentEnvironment { CJKfilltwosides } { O { c } m }
{
- \use:x { \exp_not:N \minipage [#1] { \dim_eval:n {#2} } }
+ \use:e { \exp_not:N \minipage [#1] { \dim_eval:n {#2} } }
\cs_set_eq:NN \CJKglue \xeCJK_fntef_hfilll:
}
{
@@ -10494,7 +10547,7 @@ Copyright and Licence
\tl_set:Nn \arraystretch { 1 }
\cs_if_free:NF \extrarowheight
{ \cs_set_eq:NN \extrarowheight \c_zero_dim }
- \use:x { \@@_fill_two_sides:nnn {#1} { \dim_eval:n {#2} } } {#3}
+ \use:e { \@@_fill_two_sides:nnn {#1} { \dim_eval:n {#2} } } {#3}
}
{ \ignorespacesafterend }
\cs_new_protected:Npn \@@_fill_two_sides:nnn #1#2#3
@@ -11032,7 +11085,7 @@ Copyright and Licence
\tl_if_exist:NT \UTFencname
{ \clist_gput_right:Nx \g_@@_encname_clist { \UTFencname } }
\DeclareOption*
- { \clist_gput_right:NV \g_@@_encname_clist \CurrentOption }
+ { \clist_gput_right:No \g_@@_encname_clist \CurrentOption }
\ProcessOptions \scan_stop:
% \end{macrocode}
%
@@ -11081,7 +11134,7 @@ Copyright and Licence
{
\cs_set_eq:NN \@@_tmp:w \iftipaonetoken
\cs_set_eq:NN \iftipaonetoken \scan_stop:
- \use:x
+ \use:e
{
\ExplSyntaxOff
\char_set_catcode_letter:n { 64 }
@@ -11264,7 +11317,7 @@ Copyright and Licence
{ @@_restore_ \tl_to_str:n { \nobreakspace } : }
{ \@@_restore_cmd:N \nobreakspace }
\cs_new_protected:Npn \@@_restore_cmd:N #1
- { \@@_restore_cmd:Nx #1 { ? - \token_to_str:N #1 } }
+ { \@@_restore_cmd:Ne #1 { ? - \token_to_str:N #1 } }
\cs_new_protected:Npn \@@_restore_cmd:Nn #1#2
{
\cs_if_free:cF {#2}
@@ -11275,7 +11328,7 @@ Copyright and Licence
\cs_gset_eq:NN #1 #2
\cs_undefine:N #2
}
-\cs_generate_variant:Nn \@@_restore_cmd:Nn { Nx }
+\cs_generate_variant:Nn \@@_restore_cmd:Nn { Ne }
\cs_generate_variant:Nn \@@_restore_cmd:NN { Nc }
% \end{macrocode}
% \end{macro}
@@ -11288,7 +11341,7 @@ Copyright and Licence
\cs_new_protected:Npn \@@_declare_character:Nnn #1#2#3
{
\@@_provide_text_command_default:N #1
- \exp_after:wN \@@_declare_character:NNxn
+ \exp_after:wN \@@_declare_character:NNen
\tex_Uchar:D \@@_check_slot:n {#3} \exp_stop_f:
#1 { \token_to_str:N #1 } {#2}
}
@@ -11359,7 +11412,7 @@ Copyright and Licence
{#2} { \cs_if_exist_use:cF { ? #1 } {#2} }
\@@_end_hook:nn {#1} {#2}
}
-\cs_generate_variant:Nn \@@_declare_character:NNnn { NNx }
+\cs_generate_variant:Nn \@@_declare_character:NNnn { NNe }
% \end{macrocode}
% \end{macro}
%
@@ -11437,7 +11490,7 @@ Copyright and Licence
% 将 |#1| 设置为编码 |#2| 下的带一个参数的复合符号命令。
% \begin{macrocode}
\NewDocumentCommand \DeclareUTFComposite { m O { \UTFencname } }
- { \use:x { \@@_declare_composite:Nnn \exp_not:N #1 { \token_to_str:N #1 } {#2} } }
+ { \use:e { \@@_declare_composite:Nnn \exp_not:N #1 { \token_to_str:N #1 } {#2} } }
% \end{macrocode}
% \end{macro}
%
@@ -11547,7 +11600,7 @@ Copyright and Licence
% \begin{macrocode}
\cs_new_protected:Npn \@@_declare_encoded:NNnnn #1#2#3#4#5
{
- \exp_after:wN \@@_declare_encoded:NNNNxx
+ \exp_after:wN \@@_declare_encoded:NNNNee
\tex_Uchar:D \@@_check_slot:n {#4} \exp_after:wN \exp_stop_f:
\tex_Uchar:D \@@_check_slot:n {#5} \exp_stop_f:
#1 #2 { \token_to_str:N #2 } {#3}
@@ -11555,7 +11608,7 @@ Copyright and Licence
\cs_new_protected:Npn \@@_declare_encoded:NNNNnn #1#2#3#4#5#6
{ \DeclareTextCommand #4 {#6} { #3 {#5} {#6} {#1} {#2} } }
\cs_generate_variant:Nn \@@_declare_encoded:NNnnn { c }
-\cs_generate_variant:Nn \@@_declare_encoded:NNNNnn { NNNNxx }
+\cs_generate_variant:Nn \@@_declare_encoded:NNNNnn { NNNNee }
% \end{macrocode}
% \end{macro}
%
@@ -11876,7 +11929,7 @@ Copyright and Licence
% \changes{v3.2.10}{2014/02/20}{检查 \tn{t} 和 \tn{sliding} 的参数是否以 \tn{textipa} 开头。}
% \begin{macrocode}
\NewDocumentCommand \DeclareUTFTIPACommand { O { \UTFencname } m }
- { \use:x { \@@_text_tipa_command:Nnn \exp_not:N #2 { \token_to_str:N #2 } {#1} } }
+ { \use:e { \@@_text_tipa_command:Nnn \exp_not:N #2 { \token_to_str:N #2 } {#1} } }
\cs_new_protected:Npn \@@_text_tipa_command:Nnn #1#2#3
{
\cs_set_eq:cc { UTF/#3#2 } { #3#2 }
@@ -11960,7 +12013,7 @@ Copyright and Licence
% \begin{macrocode}
\cs_new_protected_nopar:Npn \xunadd@microtype@is@charx #1 \relax
{
- \use:x
+ \use:e
{ \xunadd_get_slot:nn { \MT@encoding } { \tex_the:D \MT@toks } }
\int_compare:nNnTF \l_xunadd_slot_int < \c_zero_int
{ \xunadd@original@is@charx #1 \relax }
@@ -14229,7 +14282,7 @@ int main()
^^@ \cs_new_protected:Npn \@@_save_combine_marks:nnnn #1#2#3#4
^^@ { \@@_save_UTF_text_command:Nxx \l_@@_combine_marks_prop { { "#4 } { "#3 } } { \token_to_str:N #2 } }
^^@ \cs_new_protected:Npn \@@_save_UTF_text_command:Nxx #1#2#3
-^^@ { \use:x { \@@_save_UTF_text_command:Nnn \exp_not:N #1 {#2} {#3} } }
+^^@ { \use:e { \@@_save_UTF_text_command:Nnn \exp_not:N #1 {#2} {#3} } }
^^@ \cs_new_protected:Npn \@@_save_UTF_text_command:Nnn #1#2#3
^^@ {
^^@ \prop_get:NnNTF #1 {#2} \l_@@_command_tl
diff --git a/macros/xetex/latex/xecjk/xeCJK.pdf b/macros/xetex/latex/xecjk/xeCJK.pdf
index 705a426c3a..36c8e9b21f 100644
--- a/macros/xetex/latex/xecjk/xeCJK.pdf
+++ b/macros/xetex/latex/xecjk/xeCJK.pdf
Binary files differ
diff --git a/macros/xetex/latex/xecjk/xunicode-symbols.pdf b/macros/xetex/latex/xecjk/xunicode-symbols.pdf
index 62280cd5bc..c7d9e7e8e6 100644
--- a/macros/xetex/latex/xecjk/xunicode-symbols.pdf
+++ b/macros/xetex/latex/xecjk/xunicode-symbols.pdf
Binary files differ