summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-06-17 03:01:24 +0000
committerNorbert Preining <norbert@preining.info>2022-06-17 03:01:24 +0000
commitf9418ac1e9385653cfa09da311bb2d405a936334 (patch)
tree764fc072c0bea51901ba3ef3a6dd915400df47c5 /macros/latex/contrib
parentb83d15e1ff2e551eb7391d45becd87dce59d39b8 (diff)
CTAN sync 202206170301
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/colorist/colorart.cls22
-rw-r--r--macros/latex/contrib/colorist/colorbook.cls22
-rw-r--r--macros/latex/contrib/colorist/colorist-doc.pdfbin102695 -> 102866 bytes
-rw-r--r--macros/latex/contrib/colorist/colorist-doc.tex6
-rw-r--r--macros/latex/contrib/colorist/colorist-fancy.sty58
-rw-r--r--macros/latex/contrib/colorist/colorist.sty27
-rw-r--r--macros/latex/contrib/kvoptions/README.md4
-rw-r--r--macros/latex/contrib/kvoptions/kvoptions.dtx42
-rw-r--r--macros/latex/contrib/kvoptions/kvoptions.pdfbin480927 -> 502152 bytes
-rw-r--r--macros/latex/contrib/l3kernel/CHANGELOG.md9
-rw-r--r--macros/latex/contrib/l3kernel/README.md2
-rw-r--r--macros/latex/contrib/l3kernel/expl3.dtx4
-rw-r--r--macros/latex/contrib/l3kernel/expl3.pdfbin622528 -> 622685 bytes
-rw-r--r--macros/latex/contrib/l3kernel/interface3.pdfbin1765952 -> 1766489 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.dtx2
-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.pdfbin554483 -> 554611 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3docstrip.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3docstrip.pdfbin151593 -> 151736 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3expan.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3file.dtx2
-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.pdfbin81486 -> 81486 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3prg.dtx11
-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.dtx8
-rw-r--r--macros/latex/contrib/l3kernel/l3styleguide.pdfbin296003 -> 296165 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3styleguide.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3syntax-changes.pdfbin242672 -> 242838 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3syntax-changes.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3sys.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3term-glossary.pdfbin231062 -> 231225 bytes
-rw-r--r--macros/latex/contrib/l3kernel/l3term-glossary.tex2
-rw-r--r--macros/latex/contrib/l3kernel/l3text-case.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3text-purify.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3text.dtx2
-rw-r--r--macros/latex/contrib/l3kernel/l3tl-analysis.dtx6
-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.pdfbin6970768 -> 6972719 bytes
-rw-r--r--macros/latex/contrib/l3kernel/source3.tex2
-rw-r--r--macros/latex/contrib/l3packages/CHANGELOG.md8
-rw-r--r--macros/latex/contrib/l3packages/README.md2
-rw-r--r--macros/latex/contrib/l3packages/l3keys2e.dtx27
-rw-r--r--macros/latex/contrib/l3packages/l3keys2e.pdfbin369332 -> 369309 bytes
-rw-r--r--macros/latex/contrib/l3packages/xfp.dtx4
-rw-r--r--macros/latex/contrib/l3packages/xfp.pdfbin332067 -> 332062 bytes
-rw-r--r--macros/latex/contrib/l3packages/xfrac.dtx4
-rw-r--r--macros/latex/contrib/l3packages/xfrac.pdfbin484863 -> 484867 bytes
-rw-r--r--macros/latex/contrib/l3packages/xparse.dtx4
-rw-r--r--macros/latex/contrib/l3packages/xparse.pdfbin534282 -> 534285 bytes
-rw-r--r--macros/latex/contrib/l3packages/xtemplate.dtx4
-rw-r--r--macros/latex/contrib/l3packages/xtemplate.pdfbin450127 -> 450124 bytes
-rw-r--r--macros/latex/contrib/magicwatermark/README.md8
-rw-r--r--macros/latex/contrib/magicwatermark/magicwatermark-en.pdfbin0 -> 83023 bytes
-rw-r--r--macros/latex/contrib/magicwatermark/magicwatermark-en.tex212
-rw-r--r--macros/latex/contrib/magicwatermark/magicwatermark.dtx598
-rw-r--r--macros/latex/contrib/magicwatermark/magicwatermark.pdfbin0 -> 137623 bytes
-rw-r--r--macros/latex/contrib/minimalist/minimalist-classical.sty138
-rw-r--r--macros/latex/contrib/minimalist/minimalist-doc.pdfbin104110 -> 104902 bytes
-rw-r--r--macros/latex/contrib/minimalist/minimalist-doc.tex2
-rw-r--r--macros/latex/contrib/minimalist/minimalist-plain.sty158
-rw-r--r--macros/latex/contrib/minimalist/minimalist.sty27
-rw-r--r--macros/latex/contrib/minimalist/minimart.cls22
-rw-r--r--macros/latex/contrib/minimalist/minimbook.cls22
-rw-r--r--macros/latex/contrib/verifiche/verifiche-example.pdfbin191888 -> 192001 bytes
-rw-r--r--macros/latex/contrib/verifiche/verifiche-example.tex2
-rw-r--r--macros/latex/contrib/verifiche/verifiche.dtx92
-rw-r--r--macros/latex/contrib/verifiche/verifiche.pdfbin555223 -> 585018 bytes
-rw-r--r--macros/latex/contrib/xkeyval/README174
-rw-r--r--macros/latex/contrib/xkeyval/xkeyval.dtx10
-rw-r--r--macros/latex/contrib/xkeyval/xkeyval.pdfbin492216 -> 810100 bytes
125 files changed, 1398 insertions, 455 deletions
diff --git a/macros/latex/contrib/colorist/colorart.cls b/macros/latex/contrib/colorist/colorart.cls
index b347658bbb..9c838e534d 100644
--- a/macros/latex/contrib/colorist/colorart.cls
+++ b/macros/latex/contrib/colorist/colorart.cls
@@ -1,7 +1,7 @@
%%
%% This is file `colorist/colorart.cls',
%% generated with the docstrip utility.
-
+%%
%% Copyright (C) 2021-2022 by Jinwen XU
%%
%% This is part of the colorist class series.
@@ -19,7 +19,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplClass
{colorart}
- {2022/04/24} {}
+ {2022/06/16} {}
{A colorful article style}
\tl_const:Nn \l__colorclass_base_class_tl { article }
@@ -169,21 +169,25 @@
}
}
+
\PassOptionsToPackage { all } { nowidow }
\RequirePackage { nowidow }
-\RequirePackage { regexpatch }
-\skip_new:N \g_colorclass_parfillskip_skip
-\xpatchcmd{\@trivlist}{\@flushglue}{\g_colorclass_parfillskip_skip}{}{}
-\hook_gput_code:nnn { begindocument } { colorclass }
+\sys_if_engine_xetex:T
{
- \skip_gset:Nn \g_colorclass_parfillskip_skip { 0pt plus \dim_eval:n { \linewidth - 2\parindent } }
- \skip_gset_eq:NN \parfillskip \g_colorclass_parfillskip_skip
+ \RequirePackage { regexpatch }
+ \skip_new:N \g_colorclass_parfillskip_skip
+ \xpatchcmd{\@trivlist}{\@flushglue}{\g_colorclass_parfillskip_skip}{}{}
+ \hook_gput_code:nnn { begindocument } { colorclass }
+ {
+ \skip_gset:Nn \g_colorclass_parfillskip_skip { 0pt plus \dim_eval:n { \linewidth - 3em } }
+ \skip_gset_eq:NN \parfillskip \g_colorclass_parfillskip_skip
+ }
}
\hook_gput_code:nnn { begindocument/before } { colorclass }
{
- \@ifpackageloaded { biblatex }
+ \IfPackageLoadedTF { biblatex }
{
\PassOptionsToPackage { biblatex } { embrac }
} {}
diff --git a/macros/latex/contrib/colorist/colorbook.cls b/macros/latex/contrib/colorist/colorbook.cls
index 2fe78fc5f3..877f6d9cf0 100644
--- a/macros/latex/contrib/colorist/colorbook.cls
+++ b/macros/latex/contrib/colorist/colorbook.cls
@@ -1,7 +1,7 @@
%%
%% This is file `colorist/colorbook.cls',
%% generated with the docstrip utility.
-
+%%
%% Copyright (C) 2021-2022 by Jinwen XU
%%
%% This is part of the colorist class series.
@@ -19,7 +19,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplClass
{colorbook}
- {2022/04/24} {}
+ {2022/06/16} {}
{A colorful book style}
\tl_const:Nn \l__colorclass_base_class_tl { book }
@@ -169,21 +169,25 @@
}
}
+
\PassOptionsToPackage { all } { nowidow }
\RequirePackage { nowidow }
-\RequirePackage { regexpatch }
-\skip_new:N \g_colorclass_parfillskip_skip
-\xpatchcmd{\@trivlist}{\@flushglue}{\g_colorclass_parfillskip_skip}{}{}
-\hook_gput_code:nnn { begindocument } { colorclass }
+\sys_if_engine_xetex:T
{
- \skip_gset:Nn \g_colorclass_parfillskip_skip { 0pt plus \dim_eval:n { \linewidth - 2\parindent } }
- \skip_gset_eq:NN \parfillskip \g_colorclass_parfillskip_skip
+ \RequirePackage { regexpatch }
+ \skip_new:N \g_colorclass_parfillskip_skip
+ \xpatchcmd{\@trivlist}{\@flushglue}{\g_colorclass_parfillskip_skip}{}{}
+ \hook_gput_code:nnn { begindocument } { colorclass }
+ {
+ \skip_gset:Nn \g_colorclass_parfillskip_skip { 0pt plus \dim_eval:n { \linewidth - 3em } }
+ \skip_gset_eq:NN \parfillskip \g_colorclass_parfillskip_skip
+ }
}
\hook_gput_code:nnn { begindocument/before } { colorclass }
{
- \@ifpackageloaded { biblatex }
+ \IfPackageLoadedTF { biblatex }
{
\PassOptionsToPackage { biblatex } { embrac }
} {}
diff --git a/macros/latex/contrib/colorist/colorist-doc.pdf b/macros/latex/contrib/colorist/colorist-doc.pdf
index 017bc0e7d3..0a4331190f 100644
--- a/macros/latex/contrib/colorist/colorist-doc.pdf
+++ b/macros/latex/contrib/colorist/colorist-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/colorist/colorist-doc.tex b/macros/latex/contrib/colorist/colorist-doc.tex
index d52ff27fdc..4f6c342273 100644
--- a/macros/latex/contrib/colorist/colorist-doc.tex
+++ b/macros/latex/contrib/colorist/colorist-doc.tex
@@ -1,4 +1,4 @@
-\documentclass[English,Chinese,French,use boldface,simple name]{colorart}
+\documentclass[title in boldface, title in scshape, simple name]{colorart}
%%================================
%% Import toolkit
@@ -8,8 +8,6 @@
\usepackage{hologo} % more TeX logo
\usetikzlibrary{calc}
-\usepackage{relsize}
-
\usepackage{blindtext}
\UseLanguage{English}
@@ -93,7 +91,7 @@
%%================================
\begin{document}
-\def\PackageVersion{2022/04/24}
+\def\PackageVersion{2022/06/16}
\title{{\normalfont\bfseries\color{main-text}\colorist{}}\\write your articles or books in a colorful way}
\author{Jinwen XU}
diff --git a/macros/latex/contrib/colorist/colorist-fancy.sty b/macros/latex/contrib/colorist/colorist-fancy.sty
index 8f0d97307a..cc3db07f88 100644
--- a/macros/latex/contrib/colorist/colorist-fancy.sty
+++ b/macros/latex/contrib/colorist/colorist-fancy.sty
@@ -1,7 +1,7 @@
%%
%% This is file `colorist/colorist-fancy.sty',
%% generated with the docstrip utility.
-
+%%
%% Copyright (C) 2021-2022 by Jinwen XU
%%
%% This is part of the colorist class series.
@@ -19,10 +19,10 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{colorist-fancy}
- {2022/04/24} {}
+ {2022/06/16} {}
{The fancy style of colorist}
-\@ifpackageloaded { colorist } {}
+\IfPackageLoadedTF { colorist } {}
{
\msg_new:nnn { \@currname }
{ colorist-not-loaded }
@@ -34,6 +34,7 @@
%%================================
%% Title fonts
%%================================
+\RequirePackage { relsize }
\RequirePackage { anyfontsize }
\NewCommandCopy \colorist_original_bfseries: \bfseries
@@ -57,6 +58,14 @@
\cs_new:Nn \colorist_bfseries: {}
}
+\bool_if:NTF \l__colorist_use_scshape_bool
+ {
+ \cs_new:Nn \colorist_scshape: { \scshape }
+ }
+ {
+ \cs_new:Nn \colorist_scshape: {}
+ }
+
\tl_new:N \g_colorist_title_font_common_tl
\tl_new:N \g_colorist_title_font_part_tl
@@ -211,7 +220,7 @@
%%================================
%% Title format
%%================================
-\RequirePackage [ explicit, newparttoc, nobottomtitles* ] { titlesec }
+\RequirePackage [ explicit, newparttoc ] { titlesec }
\PassOptionsToPackage { normalem } { ulem }
\RequirePackage { ulem }
@@ -254,7 +263,7 @@
\end{tikzpicture}
}
{1em}
- {\fontsize{20}{0}\selectfont\MakeUppercase{#1}}
+ {\fontsize{20}{24}\selectfont\MakeUppercase{#1}}
\titleformat{name=\part,numberless}[display]
{% \phantomsection\addcontentsline{toc}{part}{#1}%
\g_colorist_title_font_part_tl \filleft}
@@ -266,7 +275,7 @@
\end{tikzpicture}
}
{1em}
- {\fontsize{20}{0}\selectfont\MakeUppercase{#1}}
+ {\fontsize{20}{24}\selectfont\MakeUppercase{#1}}
\titlespacing*{\part}{0pt}{5em}{6em}
%% Text after part
\newcommand{\parttext}[1]{
@@ -315,7 +324,7 @@
}
\titleformat{name=\chapter}
- { \g_colorist_title_font_chapter_tl \scshape\huge} % Format
+ { \g_colorist_title_font_chapter_tl \colorist_scshape:\huge} % Format
{} % Label
{0mm} % Sep
{ \colorist_chapter_inner:nn { \thechapter } { #1 } } % Before-code
@@ -323,7 +332,7 @@
{0em}{*2}{0em} % {left}{before-sep}{after-sep}
\titleformat{name=\chapter, numberless}
- {\filcenter \g_colorist_title_font_chapter_tl \scshape\huge}
+ {\filcenter \g_colorist_title_font_chapter_tl \colorist_scshape:\huge}
{}
{0mm}
{ \colorist_chapter_inner:n { #1 } }
@@ -366,7 +375,7 @@
%% Section
\titleformat{\section}
{\color{maintheme} \g_colorist_title_font_section_tl \large}
- {\thesection}{.75em}{\scshape #1}
+ {\thesection}{.75em}{\colorist_scshape: #1}
%% Subsection
\titleformat{\subsection}
@@ -416,7 +425,7 @@
{
\titlecontents{chapter}
[2em] % i.e., 0em (part) + 2em
- {\addvspace{1pc} \color{maintheme} \normalfont \sffamily \colorist_bfseries: \scshape }
+ {\addvspace{1pc} \color{maintheme} \normalfont \sffamily \colorist_bfseries: \colorist_scshape: }
{\contentslabel[ \raisebox{-.03\baselineskip}{ \large \normalfont \sffamily \colorist_bfseries: \thecontentslabel } ]{2em}}
{\hspace*{-2em}}
{\titlerule*[10pt]{\parbox{3pt}{\hspace*{-.25pt}\textcolor{main-text!15!paper}{.}}}\color{maintheme}\normalfont\sffamily\contentspage}
@@ -442,7 +451,7 @@
{
\titlecontents{section}
[2em] % i.e., 0em (part) + 2em
- {\addvspace{.3pc} \color{maintheme} \normalfont \sffamily \scshape }
+ {\addvspace{.3pc} \color{maintheme} \normalfont \sffamily \colorist_scshape: }
{\contentslabel[ { \normalfont \sffamily \thecontentslabel } ]{1.75em}}
{\hspace*{-1.75em}}
{\titlerule*[10pt]{\parbox{3pt}{\textcolor{main-text!15!paper}{.}}}\color{maintheme}\normalfont\sffamily\contentspage}
@@ -465,7 +474,7 @@
%%================================
\RequirePackage { enumitem }
\setlistdepth{10}
-\setlist{noitemsep, topsep=.33\topsep}
+\setlist{noitemsep, topsep=.33\topsep-.5\parskip}
\setlist[enumerate]{labelsep=*, leftmargin=*}
\setlist[enumerate,1]{label=\arabic*$)$,
ref = \arabic*$)$}
@@ -478,8 +487,8 @@
\renewlist{itemize}{itemize}{10}
\setlist[itemize]{leftmargin=*,label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{$\cdot$}}
\AddLanguageSetting { \setlist[itemize,1]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{$\bullet$}} }
-\AddLanguageSetting [french] { \setlist[itemize,1]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{---}} }
-\setlist[itemize,2]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{--}}
+\AddLanguageSetting [french] { \setlist[itemize,1]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{\rule[.2\baselineskip]{.8em}{.75pt}}} }
+\setlist[itemize,2]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{\rule[.2\baselineskip]{.5em}{.75pt}}}
\setlist[itemize,3]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{$\circ$}}
\setlist[itemize,4]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{$\ast$}}
@@ -548,9 +557,7 @@ heading_suffix "}\n"
\newcommand*{\IndexDotfill}
{
- \nobreakspace\nobreakspace
- \titlerule*[.67em]{\textcolor{main-text!15!paper}{.}}
- \nobreakspace\nobreakspace
+ \leaders \hbox to .67em {\hss \textcolor{main-text!15!paper}{.} \hss} \hfill
}
\newcommand*{\IndexHeading}[1]
{
@@ -658,7 +665,7 @@ heading_suffix "}\n"
\rlap{\vbox{\hbox{\parbox{\linewidth}{
{\thmname{#1}\thmnumber{\nobreakspace #2}}
{\color{main-text!50!paper}\thmnote{\hspace{.4em}$($#3$)$}}
- }}\hbox{\strut}\vspace{-2\parskip}}}
+ }}\hbox{\strut}\vspace{0pt}}}
}
}
{
@@ -686,7 +693,7 @@ heading_suffix "}\n"
\rlap{\vbox{\hbox{\parbox{\linewidth}{
{\thmname{#1}\nobreakspace\thmnumber{\textup{#2}}}
\thmnote{\normalfont\sffamily\color{main-text}\nobreakspace(#3)}
- }}\hbox{\strut}\vspace{-2\parskip}}}
+ }}\hbox{\strut}\vspace{0pt}}}
}
}
{
@@ -744,7 +751,7 @@ heading_suffix "}\n"
\tl_gset:Nn \g_crthm_combined_name_sep_tl { \textcolor{main-text}{-} }
-\SetTheorem { theorem, lemma, proposition, corollary, property, axiom, construction, definition-theorem, definition-proposition }
+\SetTheorem { theorem, lemma, proposition, corollary, property, axiom, construction, definition-theorem, definition-proposition, theorem-with-name }
{
name style = {
heading style = { \color{orange}\colorist_bfseries:\g_colorist_title_font_common_tl\textsc }
@@ -774,7 +781,7 @@ heading_suffix "}\n"
\bool_if:NF \l__projlib_theorem_complexname_bool
{
- \SetTheorem { theorem, lemma, proposition, corollary, property, axiom, construction, definition-theorem, definition-proposition }
+ \SetTheorem { theorem, lemma, proposition, corollary, property, axiom, construction, definition-theorem, definition-proposition, theorem-with-name }
{
name style = {
, crefname style = { \color{orange}\colorist_bfseries:\g_colorist_title_font_common_tl\textsc }
@@ -916,7 +923,7 @@ heading_suffix "}\n"
\tcolorboxenvironment { #1 } { #2 }
}
-\colorist_add_colorbox:nn { theorem, lemma, proposition, corollary, property, axiom, construction, definition-proposition, definition-theorem }
+\colorist_add_colorbox:nn { theorem, lemma, proposition, corollary, property, axiom, construction, definition-proposition, definition-theorem, theorem-with-name }
{
enhanced~jigsaw, breakable, lines~before~break=3,
left=3.5mm, right=3.5mm,
@@ -1070,7 +1077,7 @@ heading_suffix "}\n"
{
\hook_gput_code:nnn { package/projlib-author/after } { colorist }
{
- \tl_gset:Nn \g__projlib_author_font_author_tl { \normalfont \scshape }
+ \tl_gset:Nn \g__projlib_author_font_author_tl { \normalfont \colorist_scshape: }
\tl_gset:Nn \g__projlib_author_font_institute_tl { \large \normalfont }
\tl_gset:Nn \g__projlib_author_font_address_tl { \large \normalfont \itshape }
\tl_gset:Nn \g__projlib_author_font_curraddr_tl { \large \normalfont \itshape }
@@ -1094,12 +1101,11 @@ heading_suffix "}\n"
{
\begin{center}
\color{maintheme}
- {\Large\sffamily\scshape \colorist_bfseries: \@title}\\\bigskip
+ {\Large\sffamily\colorist_scshape: \colorist_bfseries: \@title}\\\bigskip
\color{main-text!80!paper}
- {\scshape\@author}\par\smallskip
+ {\colorist_scshape:\@author}\par\smallskip
{\@date}
\end{center}
- \ifx\@date\@empty\bigskip\fi
\medskip
}
diff --git a/macros/latex/contrib/colorist/colorist.sty b/macros/latex/contrib/colorist/colorist.sty
index 24f6910e3f..9e7c85109c 100644
--- a/macros/latex/contrib/colorist/colorist.sty
+++ b/macros/latex/contrib/colorist/colorist.sty
@@ -1,7 +1,7 @@
%%
%% This is file `colorist/colorist.sty',
%% generated with the docstrip utility.
-
+%%
%% Copyright (C) 2021-2022 by Jinwen XU
%%
%% This is part of the colorist class series.
@@ -19,7 +19,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{colorist}
- {2022/04/24} {}
+ {2022/06/16} {}
{A colorful style for articles and books}
\keys_define:nn { colorist }
@@ -30,17 +30,30 @@
, style .str_set:N = \l__colorist_style_str
, style .initial:n = { fancy }
+ , use-style .str_set:N = \l__colorist_style_str
+ , use~style .str_set:N = \l__colorist_style_str
+ , use style .str_set:N = \l__colorist_style_str
, fancy .meta:n = { style = fancy }
, use-boldface .bool_set:N = \l__colorist_use_boldface_bool
, use-boldface .initial:n = { false }
, use~boldface .bool_set:N = \l__colorist_use_boldface_bool
, use boldface .bool_set:N = \l__colorist_use_boldface_bool
- , usebf .bool_set:N = \l__colorist_use_boldface_bool
- , allow-boldface .bool_set:N = \l__colorist_use_boldface_bool
- , allow~boldface .bool_set:N = \l__colorist_use_boldface_bool
- , allow boldface .bool_set:N = \l__colorist_use_boldface_bool
- , allowbf .bool_set:N = \l__colorist_use_boldface_bool
+ , title-in-boldface .bool_set:N = \l__colorist_use_boldface_bool
+ , title~in~boldface .bool_set:N = \l__colorist_use_boldface_bool
+ , title in boldface .bool_set:N = \l__colorist_use_boldface_bool
+ , title-in-bold .bool_set:N = \l__colorist_use_boldface_bool
+ , title~in~bold .bool_set:N = \l__colorist_use_boldface_bool
+ , title in bold .bool_set:N = \l__colorist_use_boldface_bool
+
+ , use-scshape .bool_set:N = \l__colorist_use_scshape_bool
+ , use-scshape .initial:n = { false }
+ , use~scshape .bool_set:N = \l__colorist_use_scshape_bool
+ , use scshape .bool_set:N = \l__colorist_use_scshape_bool
+ , title-in-scshape .bool_set:N = \l__colorist_use_scshape_bool
+ , title~in~scshape .bool_set:N = \l__colorist_use_scshape_bool
+ , title in scshape .bool_set:N = \l__colorist_use_scshape_bool
+
, runin .bool_set:N = \l__colorist_runin_bool
, runin .initial:n = { false }
diff --git a/macros/latex/contrib/kvoptions/README.md b/macros/latex/contrib/kvoptions/README.md
index ecaccfa494..04a4ca227e 100644
--- a/macros/latex/contrib/kvoptions/README.md
+++ b/macros/latex/contrib/kvoptions/README.md
@@ -1,13 +1,13 @@
# kvoptions package for LaTeX
-Version: 2020-10-07 v3.14
+Version: 2022-06-15 v3.15
This package is intended for package authors who want to
use options in key value format for their package options.
## Copyright (C)
* 2007, 2009-2011 Heiko Oberdiek
-* 2016-2020 Oberdiek Package Support Group
+* 2016-2022 Oberdiek Package Support Group
## License
LATEX Project Public License, version 1.3c or later.
diff --git a/macros/latex/contrib/kvoptions/kvoptions.dtx b/macros/latex/contrib/kvoptions/kvoptions.dtx
index 38dfa18586..2dc5905405 100644
--- a/macros/latex/contrib/kvoptions/kvoptions.dtx
+++ b/macros/latex/contrib/kvoptions/kvoptions.dtx
@@ -1,12 +1,12 @@
% \iffalse meta-comment
%
% File: kvoptions.dtx
-% Version: 2020-10-07 v3.14
+% Version: 2022-06-15 v3.15
% Info: Key value format for package options
%
% Copyright (C)
% 2004, 2006, 2007, 2009-2011 Heiko Oberdiek
-% 2016-2020 Oberdiek Package Support Group
+% 2016-2022 Oberdiek Package Support Group
% https://github.com/ho-tex/kvoptions/issues
%
% This work may be distributed and/or modified under the
@@ -85,7 +85,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: kvoptions 2020-10-07 v3.14 Key value format for package options (HO)}
+\Msg{* Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO)}
\Msg{************************************************************************}
\keepsilent
@@ -97,11 +97,11 @@
This is a generated file.
Project: kvoptions
-Version: 2020-10-07 v3.14
+Version: 2022-06-15 v3.15
Copyright (C)
2004, 2006, 2007, 2009-2011 Heiko Oberdiek
- 2016-2020 Oberdiek Package Support Group
+ 2016-2022 Oberdiek Package Support Group
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
@@ -171,7 +171,7 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{kvoptions.drv}%
- [2020-10-07 v3.14 Key value format for package options (HO)]%
+ [2022-06-15 v3.15 Key value format for package options (HO)]%
\documentclass{ltxdoc}
\usepackage{holtxdoc}[2011/11/22]
\begin{document}
@@ -185,7 +185,7 @@ and the derived files
% \GetFileInfo{kvoptions.drv}
%
% \title{The \xpackage{kvoptions} package}
-% \date{2020-10-07 v3.14}
+% \date{2022-06-15 v3.15}
% \author{Heiko Oberdiek\thanks
% {Please report any issues at \url{https://github.com/ho-tex/kvoptions/issues}}}
%
@@ -1152,7 +1152,7 @@ and the derived files
\fi
\expandafter\x\csname ver@kvoptions.sty\endcsname
\ProvidesPackage{kvoptions}%
- [2020-10-07 v3.14 Key value format for package options (HO)]%
+ [2022-06-15 v3.15 Key value format for package options (HO)]%
% \end{macrocode}
%
% \paragraph{Catcodes}
@@ -1976,7 +1976,7 @@ and the derived files
,%
}%
\fi
- \@expandtwoargs\@removeelement\KVO@CurrentOption
+ \@expandtwoargs\@removeelement{\expandafter\@remove@eq@value\KVO@CurrentOption=\@nil}%
\@unusedoptionlist\@unusedoptionlist
}{}%
}%
@@ -2286,7 +2286,7 @@ and the derived files
\TMP@EnsureCode{124}{12}% |
\edef\KVO@AtEnd{\KVO@AtEnd\noexpand\endinput}
\ProvidesPackage{kvoptions-patch}%
- [2020-10-07 v3.14 LaTeX patch for keyval options (HO)]%
+ [2022-06-15 v3.15 LaTeX patch for keyval options (HO)]%
% \end{macrocode}
%
% Check for \eTeX.
@@ -2799,25 +2799,6 @@ and the derived files
% \end{description}
%
%
-% \paragraph{Bundle.} All the packages of the bundle `kvoptions'
-% are also available in a TDS compliant ZIP archive. There
-% the packages are already unpacked and the documentation files
-% are generated. The files and directories obey the TDS standard.
-% \begin{description}
-% \item[\CTANinstall{install/macros/latex/contrib/kvoptions.tds.zip}]
-% \end{description}
-% \emph{TDS} refers to the standard ``A Directory Structure
-% for \TeX\ Files'' (\CTANpkg{tds}). Directories
-% with \xfile{texmf} in their name are usually organized this way.
-%
-% \subsection{Bundle installation}
-%
-% \paragraph{Unpacking.} Unpack the \xfile{kvoptions.tds.zip} in the
-% TDS tree (also known as \xfile{texmf} tree) of your choice.
-% Example (linux):
-% \begin{quote}
-% |unzip kvoptions.tds.zip -d ~/texmf|
-% \end{quote}
%
% \subsection{Package installation}
%
@@ -3124,6 +3105,9 @@ and the derived files
% \LaTeX\ 2020-10-01 or newer and so it will abort loading if it detects it.
% This fixes github issue \#5.
% \end{Version}
+% \begin{Version}{2022-06-15 v3.15}
+% \item Remove only the key from the \cs{@unusedoptionlist}
+% \end{Version}
% \end{History}
%
% \PrintIndex
diff --git a/macros/latex/contrib/kvoptions/kvoptions.pdf b/macros/latex/contrib/kvoptions/kvoptions.pdf
index fd9e72e93a..509dbdab99 100644
--- a/macros/latex/contrib/kvoptions/kvoptions.pdf
+++ b/macros/latex/contrib/kvoptions/kvoptions.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3kernel/CHANGELOG.md b/macros/latex/contrib/l3kernel/CHANGELOG.md
index af84da5d95..9595ed47f4 100644
--- a/macros/latex/contrib/l3kernel/CHANGELOG.md
+++ b/macros/latex/contrib/l3kernel/CHANGELOG.md
@@ -7,6 +7,12 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2022-06-16]
+
+### Fixed
+- Made `\peek_analysis_map_inline:n` alignment-safe (gh/1090)
+- Setting a boolean to itself no longer errors (gh/1055)
+
## [2022-06-02]
### Changed
@@ -1119,7 +1125,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-06-02...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2022-06-16...HEAD
+[2022-06-16]: https://github.com/latex3/latex3/compare/2022-06-02...2022-06-16
[2022-06-02]: https://github.com/latex3/latex3/compare/2022-05-30...2022-06-02
[2022-05-30]: https://github.com/latex3/latex3/compare/2022-05-04...2022-05-30
[2022-05-04]: https://github.com/latex3/latex3/compare/2022-04-29...2022-05-04
diff --git a/macros/latex/contrib/l3kernel/README.md b/macros/latex/contrib/l3kernel/README.md
index ea20ff4540..921b5aa4a5 100644
--- a/macros/latex/contrib/l3kernel/README.md
+++ b/macros/latex/contrib/l3kernel/README.md
@@ -1,7 +1,7 @@
LaTeX3 Programming Conventions
==============================
-Release 2022-06-02
+Release 2022-06-16
Overview
--------
diff --git a/macros/latex/contrib/l3kernel/expl3.dtx b/macros/latex/contrib/l3kernel/expl3.dtx
index 8b08e5e3f3..161a3c327b 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-06-02}%
+\def\ExplFileDate{2022-06-16}%
%<*driver>
\documentclass[full]{l3doc}
\usepackage{graphicx}
@@ -51,7 +51,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/expl3.pdf b/macros/latex/contrib/l3kernel/expl3.pdf
index 76b1d6478f..e8a3f56b32 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 6eaf5be760..d1b053c26e 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 a61eed0ba4..9a4831311a 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-06-02}
+\date{Released 2022-06-16}
\pagenumbering{roman}
\maketitle
diff --git a/macros/latex/contrib/l3kernel/l3basics.dtx b/macros/latex/contrib/l3kernel/l3basics.dtx
index a78927374d..7f103c2e48 100644
--- a/macros/latex/contrib/l3kernel/l3basics.dtx
+++ b/macros/latex/contrib/l3kernel/l3basics.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3bootstrap.dtx b/macros/latex/contrib/l3kernel/l3bootstrap.dtx
index 34513f39b3..a46e4d16b7 100644
--- a/macros/latex/contrib/l3kernel/l3bootstrap.dtx
+++ b/macros/latex/contrib/l3kernel/l3bootstrap.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3box.dtx b/macros/latex/contrib/l3kernel/l3box.dtx
index 0d44bbcdb0..952d9bdac8 100644
--- a/macros/latex/contrib/l3kernel/l3box.dtx
+++ b/macros/latex/contrib/l3kernel/l3box.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3candidates.dtx b/macros/latex/contrib/l3kernel/l3candidates.dtx
index 4f4d63264c..da62bf2c53 100644
--- a/macros/latex/contrib/l3kernel/l3candidates.dtx
+++ b/macros/latex/contrib/l3kernel/l3candidates.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3cctab.dtx b/macros/latex/contrib/l3kernel/l3cctab.dtx
index 090e558e18..2c592bf817 100644
--- a/macros/latex/contrib/l3kernel/l3cctab.dtx
+++ b/macros/latex/contrib/l3kernel/l3cctab.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3clist.dtx b/macros/latex/contrib/l3kernel/l3clist.dtx
index dd61794a22..852e06284d 100644
--- a/macros/latex/contrib/l3kernel/l3clist.dtx
+++ b/macros/latex/contrib/l3kernel/l3clist.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3coffins.dtx b/macros/latex/contrib/l3kernel/l3coffins.dtx
index 85c804bb1e..065221bbbd 100644
--- a/macros/latex/contrib/l3kernel/l3coffins.dtx
+++ b/macros/latex/contrib/l3kernel/l3coffins.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3color.dtx b/macros/latex/contrib/l3kernel/l3color.dtx
index dffad75c26..baa029f4e8 100644
--- a/macros/latex/contrib/l3kernel/l3color.dtx
+++ b/macros/latex/contrib/l3kernel/l3color.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3debug.dtx b/macros/latex/contrib/l3kernel/l3debug.dtx
index 13c7636eb6..e890919a56 100644
--- a/macros/latex/contrib/l3kernel/l3debug.dtx
+++ b/macros/latex/contrib/l3kernel/l3debug.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3deprecation.dtx b/macros/latex/contrib/l3kernel/l3deprecation.dtx
index 37be30b725..ae32854e8b 100644
--- a/macros/latex/contrib/l3kernel/l3deprecation.dtx
+++ b/macros/latex/contrib/l3kernel/l3deprecation.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3doc.dtx b/macros/latex/contrib/l3kernel/l3doc.dtx
index 783e3c64e8..29e1bb3cfc 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-06-02}
+% \date{Released 2022-06-16}
% \maketitle
% \tableofcontents
%
diff --git a/macros/latex/contrib/l3kernel/l3doc.pdf b/macros/latex/contrib/l3kernel/l3doc.pdf
index 38f7c77012..3885fa6264 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 b7e0c8800e..d16400a242 100644
--- a/macros/latex/contrib/l3kernel/l3docstrip.dtx
+++ b/macros/latex/contrib/l3kernel/l3docstrip.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3docstrip.pdf b/macros/latex/contrib/l3kernel/l3docstrip.pdf
index 182ba9d4de..c00dbbf573 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 001df5f59d..d4b3bc08d3 100644
--- a/macros/latex/contrib/l3kernel/l3expan.dtx
+++ b/macros/latex/contrib/l3kernel/l3expan.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3file.dtx b/macros/latex/contrib/l3kernel/l3file.dtx
index 663de48ed8..a0bb1b2149 100644
--- a/macros/latex/contrib/l3kernel/l3file.dtx
+++ b/macros/latex/contrib/l3kernel/l3file.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3flag.dtx b/macros/latex/contrib/l3kernel/l3flag.dtx
index b5d8341dd9..4fe6dbc934 100644
--- a/macros/latex/contrib/l3kernel/l3flag.dtx
+++ b/macros/latex/contrib/l3kernel/l3flag.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-assign.dtx b/macros/latex/contrib/l3kernel/l3fp-assign.dtx
index 59579a930c..a4332d05ef 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-06-02}
+% \date{Released 2022-06-16}
% \maketitle
%
% \begin{documentation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-aux.dtx b/macros/latex/contrib/l3kernel/l3fp-aux.dtx
index a488bf7781..62829fd43b 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-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-basics.dtx b/macros/latex/contrib/l3kernel/l3fp-basics.dtx
index e85beb60da..34a40a40a6 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-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-convert.dtx b/macros/latex/contrib/l3kernel/l3fp-convert.dtx
index 5c5ab60921..f191c3dd21 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-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-expo.dtx b/macros/latex/contrib/l3kernel/l3fp-expo.dtx
index dff52960aa..278ae622df 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-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-extended.dtx b/macros/latex/contrib/l3kernel/l3fp-extended.dtx
index f3b8b1db6c..c4ce115779 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-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-logic.dtx b/macros/latex/contrib/l3kernel/l3fp-logic.dtx
index 91ff81376f..5fc41f847a 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-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-parse.dtx b/macros/latex/contrib/l3kernel/l3fp-parse.dtx
index bee97b4a21..fcf236a526 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-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-random.dtx b/macros/latex/contrib/l3kernel/l3fp-random.dtx
index 853e95d5fe..85fdad6b0c 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-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-round.dtx b/macros/latex/contrib/l3kernel/l3fp-round.dtx
index 6ee29232c0..676c213636 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-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp-traps.dtx b/macros/latex/contrib/l3kernel/l3fp-traps.dtx
index dc92cdd7c7..e373e728c8 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-06-02}
+% \date{Released 2022-06-16}
% \maketitle
%
% \begin{documentation}
diff --git a/macros/latex/contrib/l3kernel/l3fp-trig.dtx b/macros/latex/contrib/l3kernel/l3fp-trig.dtx
index 871b2cb2d2..e004265005 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-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fp.dtx b/macros/latex/contrib/l3kernel/l3fp.dtx
index 8b3695a40a..60028bf7be 100644
--- a/macros/latex/contrib/l3kernel/l3fp.dtx
+++ b/macros/latex/contrib/l3kernel/l3fp.dtx
@@ -49,7 +49,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3fparray.dtx b/macros/latex/contrib/l3kernel/l3fparray.dtx
index da5a801ee2..b41ea51a3d 100644
--- a/macros/latex/contrib/l3kernel/l3fparray.dtx
+++ b/macros/latex/contrib/l3kernel/l3fparray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3int.dtx b/macros/latex/contrib/l3kernel/l3int.dtx
index 202c7686fb..877f66c617 100644
--- a/macros/latex/contrib/l3kernel/l3int.dtx
+++ b/macros/latex/contrib/l3kernel/l3int.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3intarray.dtx b/macros/latex/contrib/l3kernel/l3intarray.dtx
index a71ed79cc6..95a83da8d1 100644
--- a/macros/latex/contrib/l3kernel/l3intarray.dtx
+++ b/macros/latex/contrib/l3kernel/l3intarray.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3kernel-functions.dtx b/macros/latex/contrib/l3kernel/l3kernel-functions.dtx
index a5221fb549..8e15ebbac9 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-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3keys.dtx b/macros/latex/contrib/l3kernel/l3keys.dtx
index a8e3fb53cd..32219d3abf 100644
--- a/macros/latex/contrib/l3kernel/l3keys.dtx
+++ b/macros/latex/contrib/l3kernel/l3keys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3legacy.dtx b/macros/latex/contrib/l3kernel/l3legacy.dtx
index 3d965011f5..ee47523050 100644
--- a/macros/latex/contrib/l3kernel/l3legacy.dtx
+++ b/macros/latex/contrib/l3kernel/l3legacy.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3luatex.dtx b/macros/latex/contrib/l3kernel/l3luatex.dtx
index d32298a983..cfbbdb9a53 100644
--- a/macros/latex/contrib/l3kernel/l3luatex.dtx
+++ b/macros/latex/contrib/l3kernel/l3luatex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3msg.dtx b/macros/latex/contrib/l3kernel/l3msg.dtx
index a736382357..c193ee2684 100644
--- a/macros/latex/contrib/l3kernel/l3msg.dtx
+++ b/macros/latex/contrib/l3kernel/l3msg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3names.dtx b/macros/latex/contrib/l3kernel/l3names.dtx
index 9d995bde03..5e364b0818 100644
--- a/macros/latex/contrib/l3kernel/l3names.dtx
+++ b/macros/latex/contrib/l3kernel/l3names.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3news.pdf b/macros/latex/contrib/l3kernel/l3news.pdf
index eef5d75839..1f4c0b954c 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 f02d8d55d6..2ff80dfd83 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 17f133eb05..6a8f26037c 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 554aae30ac..e2cd18e036 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 8917fcf9c0..4c1737a816 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 c6e82073ed..7b8f0008e7 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 ef3f16326a..8de6db7321 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 da81b1ce46..1c69dafec4 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 438e4e9397..b22ab6cc4e 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 3d6a041aef..7125087050 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 525e64ddde..a8badfe1aa 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 fb2ba1c0c2..e5f6c8910f 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 cc84a44ef9..62ca7ca1ef 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 19e67162c7..b168ef8e22 100644
--- a/macros/latex/contrib/l3kernel/l3pdf.dtx
+++ b/macros/latex/contrib/l3kernel/l3pdf.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3prefixes.pdf b/macros/latex/contrib/l3kernel/l3prefixes.pdf
index e4681e2bb1..1d9edd5ca9 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 fee482bd62..0fdc4d334e 100644
--- a/macros/latex/contrib/l3kernel/l3prg.dtx
+++ b/macros/latex/contrib/l3kernel/l3prg.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
@@ -1102,7 +1102,11 @@
% use a version of \cs{tl_if_single:nTF} optimized for speed since we
% know that an empty~|#1| is an error. The auxiliary
% \cs{@@_if_p_aux:w} removes the trailing parenthesis and gets rid of
-% any space. For the general case, first issue a
+% any space, then returns \cs{c_true_bool} or \cs{c_false_bool} as
+% appropriate. This extra work around is because in a
+% \cs{bool_set:Nn}, the underlying \tn{chardef} turns the bool being
+% set temporarily equal to \tn{relax}, thus assigning a boolean to
+% itself would fail (gh/1055). For the general case, first issue a
% \cs{group_align_safe_begin:} as we are using |&&| as
% syntax shorthand for the And operation and we need to hide it for
% \TeX{}. This group is closed after \cs{@@_get_next:NN} returns
@@ -1119,7 +1123,8 @@
\exp:w \exp_end_continue_f:w % (
\@@_get_next:NN \use_i:nnnn #1 )
}
-\cs_new:Npn \@@_if_p_aux:w #1 \use_i:nnnn #2#3 {#2}
+\cs_new:Npn \@@_if_p_aux:w #1 \use_i:nnnn #2#3
+ { \bool_if:NTF #2 \c_true_bool \c_false_bool }
% \end{macrocode}
% \end{macro}
%
diff --git a/macros/latex/contrib/l3kernel/l3prop.dtx b/macros/latex/contrib/l3kernel/l3prop.dtx
index e756a6a642..3165d969ba 100644
--- a/macros/latex/contrib/l3kernel/l3prop.dtx
+++ b/macros/latex/contrib/l3kernel/l3prop.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3quark.dtx b/macros/latex/contrib/l3kernel/l3quark.dtx
index 5a8913c39d..f814750247 100644
--- a/macros/latex/contrib/l3kernel/l3quark.dtx
+++ b/macros/latex/contrib/l3kernel/l3quark.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3regex.dtx b/macros/latex/contrib/l3kernel/l3regex.dtx
index f6b894c076..7429b63ccf 100644
--- a/macros/latex/contrib/l3kernel/l3regex.dtx
+++ b/macros/latex/contrib/l3kernel/l3regex.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3seq.dtx b/macros/latex/contrib/l3kernel/l3seq.dtx
index ae93f5ee1d..893ad81248 100644
--- a/macros/latex/contrib/l3kernel/l3seq.dtx
+++ b/macros/latex/contrib/l3kernel/l3seq.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3skip.dtx b/macros/latex/contrib/l3kernel/l3skip.dtx
index 0e33bc6b86..1a7ce1fc89 100644
--- a/macros/latex/contrib/l3kernel/l3skip.dtx
+++ b/macros/latex/contrib/l3kernel/l3skip.dtx
@@ -44,7 +44,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3sort.dtx b/macros/latex/contrib/l3kernel/l3sort.dtx
index 1ecfe315df..08fdbf1249 100644
--- a/macros/latex/contrib/l3kernel/l3sort.dtx
+++ b/macros/latex/contrib/l3kernel/l3sort.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3str-convert.dtx b/macros/latex/contrib/l3kernel/l3str-convert.dtx
index 55b3d28ea2..191b68f4f3 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-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3str.dtx b/macros/latex/contrib/l3kernel/l3str.dtx
index f2c8fd1d3a..bd62089fe5 100644
--- a/macros/latex/contrib/l3kernel/l3str.dtx
+++ b/macros/latex/contrib/l3kernel/l3str.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
@@ -305,6 +305,12 @@
% match then the \meta{false code} is inserted. The function
% \cs{str_case:nn}, which does nothing if there is no match, is also
% available.
+%
+% This set of functions performs no expansion on each
+% \meta{string~case} argument, so any variable in there will be
+% compared as a string. If expansion is needed in the
+% \meta{string~cases}, then \cs[no-index]{str_case_e:nn(TF)} should
+% be used instead.
% \end{function}
%
% \begin{function}[added = 2018-06-19, EXP, noTF]{\str_case_e:nn}
diff --git a/macros/latex/contrib/l3kernel/l3styleguide.pdf b/macros/latex/contrib/l3kernel/l3styleguide.pdf
index 4aa17a1d3f..4cb6ec6363 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 0255526bf7..77c6cf5aaa 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-06-02}
+\date{Released 2022-06-16}
\begin{document}
diff --git a/macros/latex/contrib/l3kernel/l3syntax-changes.pdf b/macros/latex/contrib/l3kernel/l3syntax-changes.pdf
index d790e8c9c6..0167d8e99e 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 163c3affb7..42e40d7c21 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-06-02}
+\date{Released 2022-06-16}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/macros/latex/contrib/l3kernel/l3sys.dtx b/macros/latex/contrib/l3kernel/l3sys.dtx
index 9966dac5e3..ff4de0a046 100644
--- a/macros/latex/contrib/l3kernel/l3sys.dtx
+++ b/macros/latex/contrib/l3kernel/l3sys.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3term-glossary.pdf b/macros/latex/contrib/l3kernel/l3term-glossary.pdf
index 7337ec6e52..b7c19560e9 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 c82e8aaa7e..f678691b6e 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-06-02}
+\date{Released 2022-06-16}
\newcommand{\TF}{\textit{(TF)}}
diff --git a/macros/latex/contrib/l3kernel/l3text-case.dtx b/macros/latex/contrib/l3kernel/l3text-case.dtx
index 48b1ad923a..3bd02e6c2a 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-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3text-purify.dtx b/macros/latex/contrib/l3kernel/l3text-purify.dtx
index 68add6e340..db4def98e4 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-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3text.dtx b/macros/latex/contrib/l3kernel/l3text.dtx
index 228a20bfcb..529020ebb9 100644
--- a/macros/latex/contrib/l3kernel/l3text.dtx
+++ b/macros/latex/contrib/l3kernel/l3text.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3tl-analysis.dtx b/macros/latex/contrib/l3kernel/l3tl-analysis.dtx
index d1e5813526..a30300b122 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-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
@@ -1192,6 +1192,7 @@
% \begin{macrocode}
\cs_new_protected:Npn \peek_analysis_map_inline:n #1
{
+ \group_align_safe_begin:
\int_gincr:N \g__kernel_prg_map_int
\cs_set_protected:cpn
{ @@_analysis_map_ \int_use:N \g__kernel_prg_map_int :nnN }
@@ -1200,7 +1201,8 @@
\group_end:
#1
\@@_peek_analysis_loop:NNn
- \prg_break_point:Nn \peek_analysis_map_break: { }
+ \prg_break_point:Nn \peek_analysis_map_break:
+ { \group_align_safe_end: }
}
\@@_peek_analysis_loop:NNn ? ? ?
}
diff --git a/macros/latex/contrib/l3kernel/l3tl.dtx b/macros/latex/contrib/l3kernel/l3tl.dtx
index 52ccc25ed5..d85b6b2a46 100644
--- a/macros/latex/contrib/l3kernel/l3tl.dtx
+++ b/macros/latex/contrib/l3kernel/l3tl.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3token.dtx b/macros/latex/contrib/l3kernel/l3token.dtx
index 2a72aefca9..3fb9b32647 100644
--- a/macros/latex/contrib/l3kernel/l3token.dtx
+++ b/macros/latex/contrib/l3kernel/l3token.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/l3unicode.dtx b/macros/latex/contrib/l3kernel/l3unicode.dtx
index 7802dd1365..1d2291877d 100644
--- a/macros/latex/contrib/l3kernel/l3unicode.dtx
+++ b/macros/latex/contrib/l3kernel/l3unicode.dtx
@@ -43,7 +43,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-02}
+% \date{Released 2022-06-16}
%
% \maketitle
%
diff --git a/macros/latex/contrib/l3kernel/source3.pdf b/macros/latex/contrib/l3kernel/source3.pdf
index 271c4766b6..c83369e020 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 9d6420594b..4065b377af 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-06-02}
+\date{Released 2022-06-16}
\pagenumbering{roman}
\maketitle
diff --git a/macros/latex/contrib/l3packages/CHANGELOG.md b/macros/latex/contrib/l3packages/CHANGELOG.md
index 60b6838010..add1cb9010 100644
--- a/macros/latex/contrib/l3packages/CHANGELOG.md
+++ b/macros/latex/contrib/l3packages/CHANGELOG.md
@@ -7,6 +7,11 @@ this project uses date-based 'snapshot' version identifiers.
## [Unreleased]
+## [2022-06-16]
+
+### Changed
+- Only remove key name part from `\@unusedoptionlist`
+
## [2022-06-07]
### Fixed
@@ -187,7 +192,8 @@ this project uses date-based 'snapshot' version identifiers.
- Switch to ISO date format
- Improve cross-module use of internal functions
-[Unreleased]: https://github.com/latex3/latex3/compare/2022-06-07...HEAD
+[Unreleased]: https://github.com/latex3/latex3/compare/2022-06-16...HEAD
+[2022-06-16]: https://github.com/latex3/latex3/compare/2022-06-07...2022-06-16
[2022-06-07]: https://github.com/latex3/latex3/compare/2022-05-30...2022-06-07
[2022-05-30]: https://github.com/latex3/latex3/compare/2022-01-12...2022-05-30
[2022-01-12]: https://github.com/latex3/latex3/compare/2021-11-12...2022-01-12
diff --git a/macros/latex/contrib/l3packages/README.md b/macros/latex/contrib/l3packages/README.md
index 1d9dd586cc..a6598c36e2 100644
--- a/macros/latex/contrib/l3packages/README.md
+++ b/macros/latex/contrib/l3packages/README.md
@@ -1,7 +1,7 @@
LaTeX3 High-Level Concepts
==========================
-Release 2022-06-07
+Release 2022-06-16
Overview
--------
diff --git a/macros/latex/contrib/l3packages/l3keys2e.dtx b/macros/latex/contrib/l3packages/l3keys2e.dtx
index c1c56bb803..052c071751 100644
--- a/macros/latex/contrib/l3packages/l3keys2e.dtx
+++ b/macros/latex/contrib/l3packages/l3keys2e.dtx
@@ -62,7 +62,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-07}
+% \date{Released 2022-06-16}
%
% \maketitle
%
@@ -139,7 +139,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{l3keys2e}{2022-06-07}{}
+\ProvidesExplPackage{l3keys2e}{2022-06-16}{}
{LaTeX2e option processing using LaTeX3 keys}
% \end{macrocode}
%
@@ -230,6 +230,7 @@
% \end{macro}
%
% \begin{macro}{\@@_latexe_options_class:n}
+% \begin{macro}{\@@_latexe_options_remove:nnn, \@@_latexe_options_remove:enn}
% For classes, each option (stripped of any content after |=|)
% is checked for existence as a key. If found, the option is added to
% the combined list for processing. On the other hand, unused options
@@ -249,15 +250,23 @@
{
\clist_map_inline:cn { opt@ \@currname . \@currext }
{
- \keys_if_exist:nxTF {#1} { \@@_latexe_remove_equals:n {##1} }
- { \clist_put_right:Nn \l_@@_latexe_options_clist {##1} }
- { \clist_put_right:Nn \@unusedoptionlist {##1} }
+ \@@_latexe_options_remove:enn
+ { \@@_latexe_remove_equals:n {##1} }
+ {##1} {#1}
}
}
}
}
+\cs_new_protected:Npn \@@_latexe_options_remove:nnn #1#2#3
+ {
+ \keys_if_exist:nnTF {#3} {#1}
+ { \clist_put_right:Nn \l_@@_latexe_options_clist {#2} }
+ { \clist_put_right:Nn \@unusedoptionlist {#1} }
+ }
+\cs_generate_variant:Nn \@@_latexe_options_remove:nnn { e }
% \end{macrocode}
% \end{macro}
+% \end{macro}
%
% \begin{macro}{\@@_latexe_options_package:n}
% For global options when processing a package, the tasks are slightly
@@ -269,11 +278,9 @@
{
\clist_map_inline:Nn \@classoptionslist
{
- \keys_if_exist:nxT {#1} { \@@_latexe_remove_equals:n {##1} }
- {
- \clist_put_right:Nn \l_@@_latexe_options_clist {##1}
- \clist_remove_all:Nn \@unusedoptionlist {##1}
- }
+ \@@_latexe_options_remove:enn
+ { \@@_latexe_remove_equals:n {##1} }
+ {##1} {#1}
}
}
% \end{macrocode}
diff --git a/macros/latex/contrib/l3packages/l3keys2e.pdf b/macros/latex/contrib/l3packages/l3keys2e.pdf
index 9645d3d9ad..f52ddea71a 100644
--- a/macros/latex/contrib/l3packages/l3keys2e.pdf
+++ b/macros/latex/contrib/l3packages/l3keys2e.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xfp.dtx b/macros/latex/contrib/l3packages/xfp.dtx
index fb1de34039..eff39501de 100644
--- a/macros/latex/contrib/l3packages/xfp.dtx
+++ b/macros/latex/contrib/l3packages/xfp.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-07}
+% \date{Released 2022-06-16}
%
% \maketitle
%
@@ -171,7 +171,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xfp}{2022-06-07}{}
+\ProvidesExplPackage{xfp}{2022-06-16}{}
{L3 Floating point unit}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/xfp.pdf b/macros/latex/contrib/l3packages/xfp.pdf
index b0cc8eef6f..db779fc990 100644
--- a/macros/latex/contrib/l3packages/xfp.pdf
+++ b/macros/latex/contrib/l3packages/xfp.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xfrac.dtx b/macros/latex/contrib/l3packages/xfrac.dtx
index 6646a0718c..67cc2e0e59 100644
--- a/macros/latex/contrib/l3packages/xfrac.dtx
+++ b/macros/latex/contrib/l3packages/xfrac.dtx
@@ -65,7 +65,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-07}
+% \date{Released 2022-06-16}
%
% \maketitle
%
@@ -535,7 +535,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xfrac}{2022-06-07}{}
+\ProvidesExplPackage{xfrac}{2022-06-16}{}
{L3 Experimental split-level fractions}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/xfrac.pdf b/macros/latex/contrib/l3packages/xfrac.pdf
index e4434eea51..a2e401c94c 100644
--- a/macros/latex/contrib/l3packages/xfrac.pdf
+++ b/macros/latex/contrib/l3packages/xfrac.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xparse.dtx b/macros/latex/contrib/l3packages/xparse.dtx
index ee75f37f4d..8c4146c110 100644
--- a/macros/latex/contrib/l3packages/xparse.dtx
+++ b/macros/latex/contrib/l3packages/xparse.dtx
@@ -67,7 +67,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-07}
+% \date{Released 2022-06-16}
%
% \maketitle
%
@@ -1064,7 +1064,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xparse}{2022-06-07}{}
+\ProvidesExplPackage{xparse}{2022-06-16}{}
{L3 Experimental document command parser}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/xparse.pdf b/macros/latex/contrib/l3packages/xparse.pdf
index bac6d5b747..404cd0a5fc 100644
--- a/macros/latex/contrib/l3packages/xparse.pdf
+++ b/macros/latex/contrib/l3packages/xparse.pdf
Binary files differ
diff --git a/macros/latex/contrib/l3packages/xtemplate.dtx b/macros/latex/contrib/l3packages/xtemplate.dtx
index e329169bb3..7f215e8c81 100644
--- a/macros/latex/contrib/l3packages/xtemplate.dtx
+++ b/macros/latex/contrib/l3packages/xtemplate.dtx
@@ -63,7 +63,7 @@
% }^^A
% }
%
-% \date{Released 2022-06-07}
+% \date{Released 2022-06-16}
%
% \maketitle
%
@@ -706,7 +706,7 @@
% \end{macrocode}
%
% \begin{macrocode}
-\ProvidesExplPackage{xtemplate}{2022-06-07}{}
+\ProvidesExplPackage{xtemplate}{2022-06-16}{}
{L3 Experimental prototype document functions}
% \end{macrocode}
%
diff --git a/macros/latex/contrib/l3packages/xtemplate.pdf b/macros/latex/contrib/l3packages/xtemplate.pdf
index a00ca496f9..738e80d25b 100644
--- a/macros/latex/contrib/l3packages/xtemplate.pdf
+++ b/macros/latex/contrib/l3packages/xtemplate.pdf
Binary files differ
diff --git a/macros/latex/contrib/magicwatermark/README.md b/macros/latex/contrib/magicwatermark/README.md
new file mode 100644
index 0000000000..db59f622e8
--- /dev/null
+++ b/macros/latex/contrib/magicwatermark/README.md
@@ -0,0 +1,8 @@
+- Package: magicwatermark
+- Author: lijun guo <ljguo1020@gmail.com>
+- Repository: https://github.com/ljguo1020/magicwatermark
+- License: The LaTeX Project Public License 1.3c
+
+> magicwatermark is a package based on everypage and tikz and encapsulated by LATEX3 İt can
+> flexibly set and clear watermarks. All watermark content is placed in inside a node of verbtikz and
+> in the center of the page.
diff --git a/macros/latex/contrib/magicwatermark/magicwatermark-en.pdf b/macros/latex/contrib/magicwatermark/magicwatermark-en.pdf
new file mode 100644
index 0000000000..5ee2d2d9f5
--- /dev/null
+++ b/macros/latex/contrib/magicwatermark/magicwatermark-en.pdf
Binary files differ
diff --git a/macros/latex/contrib/magicwatermark/magicwatermark-en.tex b/macros/latex/contrib/magicwatermark/magicwatermark-en.tex
new file mode 100644
index 0000000000..03a3e6db11
--- /dev/null
+++ b/macros/latex/contrib/magicwatermark/magicwatermark-en.tex
@@ -0,0 +1,212 @@
+\documentclass{l3doc}
+\usepackage{graphicx}
+\usepackage{enumitem}
+\usepackage{listings}
+\lstset{
+frame=tb,framerule=2pt,language={[LaTeX]TeX},basicstyle={\ttfamily},
+language={[LaTeX]TeX},
+keywordstyle=\color{red!70!black}\bfseries,
+keywordstyle={[2]\color{blue!70!black}\bfseries},
+morekeywords={PageSetup,Watermark,NewWatermark,MyPageSetup,MyWatermark,EvenPageSetup,OddPageSetup,EvenWatermark,OddWatermark,ClearWatermark}}
+\usepackage{fontspec}
+\IfFontExistsTF{calibri.ttf}
+{
+ \setmainfont{calibri.ttf}[
+ BoldFont = calibrib.ttf,
+ ItalicFont = calibrii.ttf,
+ BoldItalicFont = calibriz.ttf
+ ]
+}
+{}
+\usepackage{magicwatermark}
+\renewcommand*\marg[1]{\{\meta{#1}\}}
+\renewcommand*\oarg[1]{[\meta{#1}]}
+\renewcommand*\parg[1]{(\meta{#1})}
+\title{\pkg{magicwatermark}}
+\author{lijun guo \\ liguo1020@gmail.com}
+\def\version{v1.0.1}
+\date{\today\quad\version}
+\pagestyle{empty}
+\PageSetup*
+{
+ \begin{tikzpicture}[remember picture,overlay]
+ \node[cyan,scale = 2,shift={(-1,-1)}] at (current page.north east){--~\thepage~--};
+ \end{tikzpicture}
+}
+\Watermark
+\begin{document}
+\maketitle
+\tableofcontents
+\begin{abstract}
+\pkg{magicwatermark} is a package based on \pkg{everypage} and \pkg{tikz} and encapsulated by \LaTeX3 \. It can flexibly set and clear watermarks. All watermark content is placed in \ inside a \verb|node| of \verb|tikz| and in the center of the page.
+\end{abstract}
+\section{Introduction}
+Currently the \pkg{magicwatermark} package can only implement the following functions
+\begin{itemize}
+ \item Set watermark for all pages
+ \item Set watermark for odd pages
+ \item Set the watermark for even pages
+ \item Create a new watermark and set multiple watermarks on the same page
+ \item Clear watermark
+\end{itemize}
+\section{Interface}
+\subsection{Some command}
+\begin{function}[added=2021-12-21,updated=2021-12-21]{\PageSetup}
+ \begin{syntax}
+ \tn{PageSetup} \oarg{option} \marg{content for watermark}
+ \end{syntax}
+ This command is used to set the watermark content of all pages. It accepts two parameters. The first parameter is used to set some properties and is given in the form of \verb|key=value|. The second parameter is used to set the watermark content. It is text, pictures, etc.
+\end{function}
+\begin{function}[added=2021-12-21,updated=2021-12-21]{\Watermark}
+\begin{syntax}
+ \tn{Watermark}
+\end{syntax}
+This command is used to display the watermark set above
+\end{function}
+\begin{function}[added=2021-12-21,updated=2021-12-21]{\EvenPageSetup}
+\begin{syntax}
+\tn{EvenPageSetup}\oarg{option}\marg{content for watermark}
+\end{syntax}
+This command is used to set the watermark content of even pages
+\end{function}
+\begin{function}[added=2021-12-21,updated=2021-12-21]{\EvenWatermark}
+\begin{syntax}
+ \tn{EvenWatermark}
+\end{syntax}
+This command is used to display the even page watermark set above
+\end{function}
+\begin{function}[added=2021-12-21,updated=2021-12-21]{\OddPageSetup}
+\begin{syntax}
+\tn{OddPageSetup}\oarg{option}\marg{content for watermark}
+\end{syntax}
+This command is used to set the watermark content of odd pages
+\end{function}
+\begin{function}[added=2021-12-21,updated=2021-12-21]{\OddWatermark}
+\begin{syntax}
+ \tn{OddWatermark}
+\end{syntax}
+This command is used to display the odd page watermark set above
+\end{function}
+\subsection{Add command}
+The usage of the following commands with asterisks is similar to the above. It is not so much an extension as it is a cancellation of restrictions. The above commands all write the watermark content in a \verb|node|, for users who are not familiar with TikZ , the former is more square is convenient and fast, while the latter is more flexible
+\begin{function}[added=2022-01-07,updated=2022-01-07]{\PageSetup*}
+\begin{syntax}
+\tn{PageSetup*}\marg{content for watermark}
+\end{syntax}
+\end{function}
+\begin{function}[added=2022-01-07,updated=2022-01-07]{\EvenPageSetup*}
+\begin{syntax}
+\tn{EvenPageSetup*}\marg{content for watermark}
+\end{syntax}
+\end{function}
+\begin{function}[added=2022-01-07,updated=2022-01-07]{\OddPageSetup*}
+\begin{syntax}
+\tn{OddPageSetup*}\marg{content for watermark}
+\end{syntax}
+\end{function}
+\begin{function}[added=2021-12-21,updated=2021-12-21]{\NewWatermark}
+\begin{syntax}
+\tn{NewWatermark}\marg{watermark name}
+\end{syntax}
+This command is used to create a new watermark. Note that the watermark name cannot be \verb|main|, \verb|even|, \verb|odd|.
+\end{function}
+\begin{function}[added=2021-12-21,updated=2021-12-21]{\MyPageSetup}
+\begin{syntax}
+\tn{MyPageSetup}\oarg{option}\marg{watermark name}\marg{content for watermark}
+\end{syntax}
+Used to set the new watermark content
+\end{function}
+\begin{function}[added=2021-12-21,updated=2021-12-21]{\MyWatermark}
+\begin{syntax}
+ \tn{MyWatermark}\marg{watermark name}
+\end{syntax}
+This command is used to display the watermark set above
+\end{function}
+\begin{function}[added=2021-12-21,updated=2021-12-21]{\ClearWatermark}
+\begin{syntax}
+ \tn{ClearWatermark}\marg{watermark list}
+This command is used to clear the set watermark, accepts a comma list as parameter, for example:
+\begin{itemize}
+ \item \verb|\ClearWatermark{main}| clears the watermark set by \verb|\Watermark|
+ \item \verb|\ClearWatermark{even,odd}| clears the watermark on odd and even pages
+ \item \verb|\ClearWatermark{all}| Clear all watermarks
+ \item \verb|\ClearWatermark{name1,name2,name3,...}|
+\end{itemize}
+\end{syntax}
+\end{function}
+\subsection{option list}
+The \textbf{option} in the above setting command is as follows
+\begin{itemize}
+ \item \verb|scale = <number>| set the scale
+ \item \verb|opacity = <number>| set the opacity
+ \item \verb|shift = {(x,y)}| for translation by vector (x,y)
+ \item \verb|color = <color expression>| set the color
+ \item \verb|rotate = <angle>| Set the rotation angle
+ \item \verb+align = <center|left|right>+ Set the alignment of multi-line text, the default is center
+ \item \verb+showframe = <true|false>+ Set whether to display the frame, the default is false
+\end{itemize}
+\subsection{notes}
+All show and clear commands take effect only on the text following the command.
+
+\section{Examples}
+\subsection{basic}
+\begin{lstlisting}
+\documentclass{ctexart}
+\usepackage{magicwatermark}
+\PageSetup[
+ rotate = 30, % set the rotation angle
+ color = red!80, % set color for watermark content
+ scale = 6 % set the scale
+]{
+ watermark content
+}
+\Watermark
+\begin{document}
+...
+\end{document}
+\end{lstlisting}
+\subsection{Odd and Even Pages}
+\begin{lstlisting}
+\documentclass{ctexart}
+\usepackage{magicwatermark}
+\EvenPageSetup[color=cyan,showframe,scale=4]{Even page} % Even page
+\OddPageSetup[color=purple,showframe,scale=4]{Odd page} % Odd page
+\EvenWatermark % show watermark
+\OddWatermark
+\begin{document}
+...
+\end{document}
+\end{lstlisting}
+\subsection{star}
+\begin{lstlisting}
+\documentclass{ctexart}
+\usepackage{magicwatermark}
+\PageSetup*{
+ \begin{tikzpicture}[remember picture,overlay]
+ \node[cyan,scale = 2,shift={(-1,-1)}] at
+ (current page.north east){--~\thepage~--};
+ \end{tikzpicture}
+}
+\begin{document}
+...
+\Watermark % This order did not take effect before
+\end{document}
+\end{lstlisting}
+\subsection{New watermark}
+\begin{lstlisting}
+\documentclass{ctexart}
+\usepackage{magicwatermark}
+\NewWatermark{one} % new
+\NewWatermark{two}
+\MyPageSetup[scale=5,color=blue]{one}{content one} % setting
+\MyPageSetup[scale=5,color=red]{two}{content two}
+\begin{document}
+\MyWatermark{one} % use watermark one
+...
+\newpage
+\ClearWatermark{one} % clear watermark one
+\MyWatermark{two} % use watermark two
+...
+\end{document}
+\end{lstlisting}
+\end{document} \ No newline at end of file
diff --git a/macros/latex/contrib/magicwatermark/magicwatermark.dtx b/macros/latex/contrib/magicwatermark/magicwatermark.dtx
new file mode 100644
index 0000000000..35115c1cca
--- /dev/null
+++ b/macros/latex/contrib/magicwatermark/magicwatermark.dtx
@@ -0,0 +1,598 @@
+% \iffalse meta-comment
+% !TEX program = XeLaTeX
+%<*internal>
+\iffalse
+%</internal>
+%<*internal>
+\fi
+\begingroup
+ \def\temp{LaTeX2e}
+\expandafter\endgroup\ifx\temp\fmtname\else
+\csname fi\endcsname
+%</internal>
+%<*install>
+
+\input ctxdocstrip %
+
+\let\MetaPrefix\relax
+
+\declarepostamble\emptypostamble
+\endpostamble
+
+\def\MetaPrefix{-- }
+
+
+\let\MetaPrefix\DoubleperCent
+
+\generate
+ {
+%</install>
+%<*internal>
+ \usedir{source/xelatex/magicwatermark}
+ \file{magicwatermark.ins} {\from{\jobname.dtx}{install}}
+%</internal>
+%<*install>
+ \usedir{xetex/xelatex/magicwatermark}
+ \file{magicwatermark.sty} {\from{\jobname.dtx}{package}}
+ \nopreamble\nopostamble
+ \usedir{doc/xelatex/magicwatermark}
+ \file{README.md} {\from{\jobname.dtx}{readme}}
+ }
+
+\endbatchfile
+%</install>
+%<*internal>
+\fi
+%</internal>
+%<package>\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+%<package>\ProvidesPackage{magicwatermark}[2021/12/22 v1.0.1 watermark for ljguo ]
+%<*driver>
+\documentclass{ctxdoc}
+\usepackage{graphicx}
+\usepackage{enumitem}
+\usepackage{listings}
+\lstset{
+frame=tb,framerule=2pt,language={[LaTeX]TeX},basicstyle={\ttfamily},
+language={[LaTeX]TeX},
+keywordstyle=\color{red!70!black}\bfseries,
+keywordstyle={[2]\color{blue!70!black}\bfseries},
+morekeywords={PageSetup,Watermark,NewWatermark,MyPageSetup,MyWatermark,EvenPageSetup,OddPageSetup,EvenWatermark,OddWatermark,ClearWatermark}}
+\usepackage{fontspec}
+\IfFontExistsTF{calibri.ttf}
+{
+ \setmainfont{calibri.ttf}[
+ BoldFont = calibrib.ttf,
+ ItalicFont = calibrii.ttf,
+ BoldItalicFont = calibriz.ttf
+ ]
+}
+{}
+\setCJKmainfont[AutoFakeBold,AutoFakeSlant]{simfang.ttf}
+\usepackage{magicwatermark}
+\renewcommand*\marg[1]{\{\meta{#1}\}}
+\renewcommand*\oarg[1]{[\meta{#1}]}
+\renewcommand*\parg[1]{(\meta{#1})}
+\begin{document}
+%<!--CODEDOC--> \DisableImplementation
+ \EnableImplementation
+ \DocInput{\jobname.dtx}
+ \IndexLayout
+ \PrintChanges
+ \PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+
+% \GetFileId{magicwatermark.sty}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+%\title{\pkg{magicwatermark}: 魔法水印宏包}
+%\author{郭李军 \\ liguo1020@gmail.com}
+%\def\version{v1.0.1}
+%\date{\today\quad\version}
+%\pagestyle{empty}
+%\PageSetup*
+%{
+% \begin{tikzpicture}[remember picture,overlay]
+% \node[cyan,scale = 2,shift={(-1,-1)}] at (current page.north east){--~\thepage~--};
+% \end{tikzpicture}
+%}
+%\Watermark
+%\maketitle
+%\thispagestyle{empty}
+%\tableofcontents
+%\begin{documentation}
+%\changes{v1.0.1}{2021/12/21}{实现了一些基本功能}
+%\begin{abstract}
+%\pkg{magicwatermark} 是一个基于 \pkg{everypage} 和 \pkg{tikz} 宏包,并经过 \LaTeX3 \ 进行封装的宏包,它可以很灵活的设置和清除水印,所有水印内容都放在 \verb|tikz| 的一个 \verb|node| 里面,并处于页面中心。
+%\end{abstract}
+%\section{介绍}
+%目前 \pkg{magicwatermark} 宏包只能实现如下功能
+%\begin{itemize}
+% \item 设置所有页面的水印
+% \item 设置奇数页的水印
+% \item 设置偶数页的水印
+% \item 新建水印,同页面设置多个水印
+% \item 清除水印
+%\end{itemize}
+%\section{用户接口}
+%\subsection{提供命令}
+% \begin{function}[added=2021-12-21,updated=2021-12-21]{\PageSetup}
+% \begin{syntax}
+% \tn{PageSetup} \oarg{水印参数} \marg{水印内容}
+% \end{syntax}
+% 此命令用于设置所有页面的水印内容,接受两个参数,第一个参数用于设置一些属性,以 \verb|key=value| 的形式给出, 第二个参数用于设置水印内容,可以是文字、图片、等.
+% \end{function}
+%\begin{function}[added=2021-12-21,updated=2021-12-21]{\Watermark}
+%\begin{syntax}
+% \tn{Watermark}
+%\end{syntax}
+% 该命令用于显示上面设置的水印
+%\end{function}
+%\begin{function}[added=2021-12-21,updated=2021-12-21]{\EvenPageSetup}
+%\begin{syntax}
+% \tn{EvenPageSetup}\oarg{水印参数}\marg{水印内容}
+%\end{syntax}
+% 该命令用于设置偶数页的水印内容
+%\end{function}
+%\begin{function}[added=2021-12-21,updated=2021-12-21]{\EvenWatermark}
+%\begin{syntax}
+% \tn{EvenWatermark}
+%\end{syntax}
+% 该命令用于显示上面设置的偶数页水印
+%\end{function}
+%\begin{function}[added=2021-12-21,updated=2021-12-21]{\OddPageSetup}
+%\begin{syntax}
+% \tn{OddPageSetup}\oarg{水印参数}\marg{水印内容}
+%\end{syntax}
+% 该命令用于设置奇数页的水印内容
+%\end{function}
+%\begin{function}[added=2021-12-21,updated=2021-12-21]{\OddWatermark}
+%\begin{syntax}
+% \tn{OddWatermark}
+%\end{syntax}
+% 该命令用于显示上面设置的奇数页水印
+%\end{function}
+%\subsection{扩展命令}
+%以下带星号命令用法和上面的类似,与其说是扩展,不如说是取消了限制,以上的命令都将水印内容写在一个\verb|node|中,对于对 TikZ 不太熟练的用户来说,前者更加方
+%便快捷,而后者则更加灵活
+%\begin{function}[added=2022-01-07,updated=2022-01-07]{\PageSetup*}
+%\begin{syntax}
+% \tn{PageSetup*}\marg{水印内容}
+%\end{syntax}
+%\end{function}
+%\begin{function}[added=2022-01-07,updated=2022-01-07]{\EvenPageSetup*}
+%\begin{syntax}
+% \tn{EvenPageSetup*}\marg{水印内容}
+%\end{syntax}
+%\end{function}
+%\begin{function}[added=2022-01-07,updated=2022-01-07]{\OddPageSetup*}
+%\begin{syntax}
+% \tn{OddPageSetup*}\marg{水印内容}
+%\end{syntax}
+%\end{function}
+%\begin{function}[added=2021-12-21,updated=2021-12-21]{\NewWatermark}
+%\begin{syntax}
+% \tn{NewWatermark}\marg{水印名称}
+%\end{syntax}
+%该命令用于新建一个水印,注意水印名称不能是 \verb|main|, \verb|even|, \verb|odd|.
+%\end{function}
+%\begin{function}[added=2021-12-21,updated=2021-12-21]{\MyPageSetup}
+%\begin{syntax}
+% \tn{MyPageSetup}\oarg{水印参数}\marg{水印名称}\marg{水印内容}
+%\end{syntax}
+%用于设置新建的水印内容
+%\end{function}
+%\begin{function}[added=2021-12-21,updated=2021-12-21]{\MyWatermark}
+%\begin{syntax}
+% \tn{MyWatermark}\marg{水印名称}
+%\end{syntax}
+% 该命令用于显示上面设置的水印
+%\end{function}
+%\begin{function}[added=2021-12-21,updated=2021-12-21]{\ClearWatermark}
+%\begin{syntax}
+% \tn{ClearWatermark}\marg{水印列表}
+%该命令用于清除设置的水印,接受一个逗号列表作为参数,例如:
+%\begin{itemize}
+% \item \verb|\ClearWatermark{main}| 清除由 \verb|\Watermark| 设置的水印
+% \item \verb|\ClearWatermark{even,odd}| 清除奇数和偶数页的水印
+% \item \verb|\ClearWatermark{all}| 清除所有的水印
+% \item \verb|\ClearWatermark{name1,name2,name3,...}|
+%\end{itemize}
+%\end{syntax}
+%\end{function}
+%\subsection{参数列表}
+%以上设置命令中的\textbf{水印参数}如下
+%\begin{itemize}
+% \item \verb|scale = <number>| 用于设置缩放比例
+% \item \verb|opacity = <number>| 用于设置不透明度
+% \item \verb|shift = {(x,y)}| 用于按向量 (x,y) 平移
+% \item \verb|color = <color expression>| 用于设置文本颜色
+% \item \verb|rotate = <angle>| 用于设置旋转角度
+% \item \verb+align = <center|left|right>+ 用于设置多行文本对齐方式,默认为 center
+% \item \verb+showframe = <true|false>+ 用于设置是否显示文本框,默认为 false
+%\end{itemize}
+%\subsection{一些说明}
+%所有的显示命令和清除命令都仅对该命令后面的文本生效。
+
+%\section{Examples}
+%\subsection{不带星号}
+%\begin{lstlisting}
+\documentclass{ctexart}
+\usepackage{magicwatermark}
+\PageSetup[
+ rotate = 30, % 设置旋转角度
+ color = red!80, % 设置水印内容颜色
+ scale = 6 % 设置比例
+]{
+ 水印内容
+}
+\Watermark % 全文生效
+\begin{document}
+...
+\end{document}
+\end{lstlisting}
+%\subsection{奇偶页}
+%\begin{lstlisting}
+\documentclass{ctexart}
+\usepackage{magicwatermark}
+\EvenPageSetup[color=cyan,showframe,scale=4]{偶数页} % 设置奇数页
+\OddPageSetup[color=purple,showframe,scale=4]{奇数页} % 设置偶数页
+\EvenWatermark % 显示水印
+\OddWatermark
+\begin{document}
+...
+\end{document}
+\end{lstlisting}
+%\subsection{带星号}
+%\begin{lstlisting}
+\documentclass{ctexart}
+\usepackage{magicwatermark}
+\PageSetup*{
+ \begin{tikzpicture}[remember picture,overlay]
+ \node[cyan,scale = 2,shift={(-1,-1)}] at
+ (current page.north east){--~\thepage~--};
+ \end{tikzpicture}
+}
+\begin{document}
+...
+\Watermark % 该命令之前不生效
+\end{document}
+\end{lstlisting}
+%\subsection{新建水印}
+%\begin{lstlisting}
+\documentclass{ctexart}
+\usepackage{magicwatermark}
+\NewWatermark{one} % 新建两个水印
+\NewWatermark{two}
+\MyPageSetup[scale=5,color=blue]{one}{水印内容一} % 设置水印
+\MyPageSetup[scale=5,color=red]{two}{水印内容二}
+\begin{document}
+\MyWatermark{one} % 使用第一个水印
+...
+\newpage
+\ClearWatermark{one} % 清除第一个水印
+\MyWatermark{two} % 使用第二个水印
+...
+\end{document}
+\end{lstlisting}
+%\end{documentation}
+%
+% \StopEventually{}
+% \section{代码实现}
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+% 加载必要的宏包
+% \begin{macrocode}
+\RequirePackage{everypage-1x,tikz,xparse,expl3}
+% \end{macrocode}
+% 打开\LaTeX3 编程环境
+% \begin{macrocode}
+\ExplSyntaxOn
+% \end{macrocode}
+% 声明一些变量
+% \begin{macrocode}
+\tl_new:N \l_mainpage_tl
+\tl_new:N \l_evenpage_tl
+\tl_new:N \l_oddpage_tl
+\tl_new:N \g_case_tl
+\tl_new:N \g_clear_all_tl
+% \end{macrocode}
+% 定义警告
+% \begin{macrocode}
+\msg_new:nnn{clear}{not~have}{I~can~not~find~the~"\clear"~watermark~!}
+% \end{macrocode}
+% \begin{macro}{\PageSetup}
+% 对所有页面设置水印
+% \begin{macrocode}
+\NewDocumentCommand{\PageSetup}{sO{}+m}
+{
+ \IfBooleanTF{#1}
+ {
+ \tl_set:Nn \l_mainpage_tl{#3}
+ }
+ {
+ \tl_set:Nn \l_mainpage_tl
+ {
+ \group_begin:
+ \keys_set:nn{watermark}{#2}
+ \begin{tikzpicture}[remember~picture,overlay]
+ \node
+ [
+ scale = \fp_use:N\l_scale_fp,
+ opacity = \fp_use:N\l_opacity_fp,
+ shift = \tl_use:N\l_shift_tl,
+ color = \tl_use:N \l_color_tl,
+ rotate = \fp_use:N \l_rotate_fp,
+ align = \tl_use:N \l_align_tl,
+ \bool_if:NTF \l_showframe_bool{draw}{},
+ ]
+ at(current~page.center){#3};
+ \end{tikzpicture}
+ \group_end:
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\Watermark}
+% 用于显示由 \verb|\PageSetup| 命令设置的水印
+% \begin{macrocode}
+\NewDocumentCommand{\Watermark}{}
+{
+ \AddEverypageHook{\tl_use:N \l_mainpage_tl}
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\EvenPageSetup}
+% 对偶数页设置水印
+% \begin{macrocode}
+\NewDocumentCommand{\EvenPageSetup}{sO{}+m}
+{
+ \IfBooleanTF{#1}
+ {
+ \tl_set:Nn \l_evenpage_tl{#3}
+ }
+ {
+ \tl_set:Nn \l_evenpage_tl
+ {
+ \group_begin:
+ \keys_set:nn{watermark}{#2}
+ \begin{tikzpicture}[remember~picture,overlay]
+ \node
+ [
+ scale = \fp_use:N\l_scale_fp,
+ opacity = \fp_use:N\l_opacity_fp,
+ shift = \tl_use:N\l_shift_tl,
+ color = \tl_use:N \l_color_tl,
+ rotate = \fp_use:N \l_rotate_fp,
+ align = \tl_use:N \l_align_tl,
+ \bool_if:NTF \l_showframe_bool{draw}{},
+ ]
+ at(current~page.center){#3};
+ \end{tikzpicture}
+ \group_end:
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\EvenWatermark}
+% 用于显示由 \verb|\EvenPageSetup| 命令设置的水印
+% \begin{macrocode}
+\NewDocumentCommand{\EvenWatermark}{}
+{
+ \AddEverypageHook
+ {
+ \int_if_even:nT{\int_use:N \value{page}}
+ {
+ \tl_use:N \l_evenpage_tl
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\OddPageSetup}
+% 对奇数页设置水印
+% \begin{macrocode}
+\NewDocumentCommand{\OddPageSetup}{sO{}+m}
+{
+ \IfBooleanTF{#1}
+ {
+ \tl_set:Nn \l_oddpage_tl{#3}
+ }
+ {
+ \tl_set:Nn \l_oddpage_tl
+ {
+ \group_begin:
+ \keys_set:nn{watermark}{#2}
+ \begin{tikzpicture}[remember~picture,overlay]
+ \node
+ [
+ scale = \fp_use:N\l_scale_fp,
+ opacity = \fp_use:N\l_opacity_fp,
+ shift = \tl_use:N\l_shift_tl,
+ color = \tl_use:N \l_color_tl,
+ rotate = \fp_use:N \l_rotate_fp,
+ align = \tl_use:N \l_align_tl,
+ \bool_if:NTF \l_showframe_bool{draw}{},
+ ]
+ at(current~page.center){#3};
+ \end{tikzpicture}
+ \group_end:
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\OddWatermark}
+% 用于显示由 \verb|\OddPageSetup| 命令设置的水印
+% \begin{macrocode}
+\NewDocumentCommand{\OddWatermark}{}
+{
+ \AddEverypageHook
+ {
+ \int_if_odd:nT{\int_use:N \value{page}}
+ {
+ \tl_use:N \l_oddpage_tl
+ }
+ }
+}
+% \end{macrocode}
+% \end{macro}
+
+% \begin{macro}{\NewWatermark}
+% 用于新建一个水印
+% \begin{macrocode}
+\NewDocumentCommand{\NewWatermark}{m}
+{
+ \tl_new:c {l_#1_tl}
+ \tl_put_right:Nn \g_case_tl {{#1}{\tl_clear:c {l_#1_tl}}}
+ \tl_put_right:Nn \g_clear_all_tl {\tl_clear:c {l_#1_tl}}
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\MyPageSetup}
+% 用于设置新建的水印
+% \begin{macrocode}
+\NewDocumentCommand{\MyPageSetup}{O{} m +m}
+{
+ \tl_set:cn {l_#2_tl}
+ {
+ \group_begin:
+ \keys_set:nn{watermark}{#1}
+ \begin{tikzpicture}[remember~picture,overlay]
+ \node
+ [
+ scale = \fp_use:N\l_scale_fp,
+ opacity = \fp_use:N\l_opacity_fp,
+ shift = \tl_use:N\l_shift_tl,
+ color = \tl_use:N \l_color_tl,
+ rotate = \fp_use:N \l_rotate_fp,
+ align = \tl_use:N \l_align_tl,
+ \bool_if:NTF \l_showframe_bool{draw}{},
+ ]
+ at(current~page.center){#3};
+ \end{tikzpicture}
+ \group_end:
+ }
+}
+% \end{macrocode}
+% \end{macro}
+
+
+
+% \begin{macro}{\MyWatermark}
+% 用于显示由 \verb|\MyPageSetup| 命令设置的水印
+% \begin{macrocode}
+\NewDocumentCommand{\MyWatermark}{m}
+{
+ \AddEverypageHook{\tl_use:c {l_#1_tl}}
+}
+% \end{macrocode}
+% \end{macro}
+% 定义一些可选参数, 用于对水印进行设置
+% \begin{macrocode}
+\keys_define:nn{watermark}
+{
+ scale.fp_set:N = \l_scale_fp,
+ scale.initial:n = 1.0,
+ scale.default:n = 1.0,
+ opacity.fp_set:N = \l_opacity_fp,
+ opacity.initial:n = 0.8,
+ opacity.default:n = 0.8,
+ shift.tl_set:N = \l_shift_tl,
+ shift.initial:n = {(0,0)},
+ shift.default:n = {(0,0)},
+ color.tl_set:N = \l_color_tl,
+ color.initial:n = black,
+ color.default:n =black,
+ rotate.fp_set:N =\l_rotate_fp,
+ rotate.initial:n = 0.0,
+ rotate.default:n = 0.0,
+ align.tl_set:N = \l_align_tl,
+ align.initial:n = center,
+ align.default:n = center,
+ showframe.bool_set:N = \l_showframe_bool,
+ showframe.initial:n = false,
+ showframe.default:n = true,
+}
+% \end{macrocode}
+% \begin{macro}{\g_clear_all_tl}
+% 用于保存待清空的所有水印
+% \begin{macrocode}
+\tl_gset:Nn \g_clear_all_tl
+{
+ \tl_clear:N \l_mainpage_tl
+ \tl_clear:N \l_evenpage_tl
+ \tl_clear:N \l_oddpage_tl
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\g_case_tl}
+% 用于保存一些开关
+% \begin{macrocode}
+\tl_gset:Nn \g_case_tl{
+ {all}
+ {
+ \tl_use:N\g_clear_all_tl
+ }
+ {even}
+ {
+ \tl_clear:N \l_evenpage_tl
+ }
+ {odd}
+ {
+ \tl_clear:N \l_oddpage_tl
+ }
+ {main}
+ {
+ \tl_clear:N \l_mainpage_tl
+ }
+}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\ClearWatermark}
+% 用于清除设置的水印
+% \begin{macrocode}
+\NewDocumentCommand{\ClearWatermark}{m}
+{
+\clist_gset:Nn \g_clear_clist{#1}
+\clist_map_variable:NNn \g_clear_clist \clear
+{
+ \exp_args:NV \str_case:nVF \clear
+ \g_case_tl
+ {\msg_warning:nn{clear}{not~have}}
+}
+}
+% \end{macrocode}
+% \end{macro}
+% 关闭\LaTeX3 编程环境
+% \begin{macrocode}
+\ExplSyntaxOff
+% \end{macrocode}
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+% \Finale
+%
+\endinput
+\endlinechar \ No newline at end of file
diff --git a/macros/latex/contrib/magicwatermark/magicwatermark.pdf b/macros/latex/contrib/magicwatermark/magicwatermark.pdf
new file mode 100644
index 0000000000..396233aba2
--- /dev/null
+++ b/macros/latex/contrib/magicwatermark/magicwatermark.pdf
Binary files differ
diff --git a/macros/latex/contrib/minimalist/minimalist-classical.sty b/macros/latex/contrib/minimalist/minimalist-classical.sty
index 5fd710c03e..cb0e3df249 100644
--- a/macros/latex/contrib/minimalist/minimalist-classical.sty
+++ b/macros/latex/contrib/minimalist/minimalist-classical.sty
@@ -1,7 +1,7 @@
%%
%% This is file `minimalist/minimalist-classical.sty',
%% generated with the docstrip utility.
-
+%%
%% Copyright (C) 2021-2022 by Jinwen XU
%%
%% This is part of the minimalist class series.
@@ -19,10 +19,10 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{minimalist-classical}
- {2022/04/24} {}
+ {2022/06/16} {}
{The classical style of minimalist}
-\@ifpackageloaded { minimalist } {}
+\IfPackageLoadedTF { minimalist } {}
{
\msg_new:nnn { \@currname }
{ minimalist-not-loaded }
@@ -34,6 +34,7 @@
%%================================
%% Title fonts
%%================================
+\RequirePackage { relsize }
\RequirePackage { anyfontsize }
\NewCommandCopy \minimalist_original_bfseries: \bfseries
@@ -57,6 +58,14 @@
\cs_new:Nn \minimalist_bfseries: {}
}
+\bool_if:NTF \l__minimalist_use_scshape_bool
+ {
+ \cs_new:Nn \minimalist_scshape: { \scshape }
+ }
+ {
+ \cs_new:Nn \minimalist_scshape: {}
+ }
+
\tl_new:N \g_minimalist_title_font_common_tl
\tl_new:N \g_minimalist_title_font_part_tl
@@ -67,11 +76,11 @@
\tl_new:N \g_minimalist_title_font_paragraph_tl
\tl_gset:Nn \g_minimalist_title_font_part_tl { \minimalist_bfseries: \g_minimalist_title_font_common_tl }
-\tl_gset:Nn \g_minimalist_title_font_chapter_tl { \minimalist_bfseries: \g_minimalist_title_font_common_tl \scshape }
+\tl_gset:Nn \g_minimalist_title_font_chapter_tl { \minimalist_bfseries: \g_minimalist_title_font_common_tl \minimalist_scshape: }
\tl_gset:Nn \g_minimalist_title_font_section_tl { \minimalist_bfseries: }
\tl_gset:Nn \g_minimalist_title_font_subsection_tl { \minimalist_bfseries: }
\tl_gset:Nn \g_minimalist_title_font_subsubsection_tl { \minimalist_bfseries: \itshape }
-\tl_gset:Nn \g_minimalist_title_font_paragraph_tl { \minimalist_bfseries: \scshape }
+\tl_gset:Nn \g_minimalist_title_font_paragraph_tl { \minimalist_bfseries: \minimalist_scshape: }
\bool_if:NF \l__minimalist_fast_bool
{
@@ -251,7 +260,7 @@
\renewcommand{\chaptermark}[1]{\markboth{\textsc{#1}}{\textsc{#1}}}
\fi
\renewcommand*{\sectionmark}[1]{
- \markright{\protect\g_minimalist_section_decoration_char_tl\nobreakspace\arabic{section}\nobreakspace\protect\g_minimalist_section_decoration_char_tl\nobreakspace\nobreakspace\nobreakspace#1}}
+ \markright{\protect\g_minimalist_section_decoration_char_tl\nobreakspace\thesection\nobreakspace\protect\g_minimalist_section_decoration_char_tl\nobreakspace\nobreakspace\nobreakspace#1}}
}
{
\if@twoside
@@ -264,16 +273,33 @@
%%================================
%% Title format
%%================================
-\RequirePackage [ explicit, newparttoc, nobottomtitles* ] { titlesec }
+\RequirePackage [ explicit, newparttoc ] { titlesec }
\PassOptionsToPackage { normalem } { ulem }
\RequirePackage { ulem }
-\cs_generate_variant:Nn \seq_set_split:Nnn { Nnx }
-\cs_new:Nn \minimalist_apply_title_numbering_style:n
+\cs_new_protected:Nn \minimalist_apply_title_numbering_style_static:n
{
#1
}
+\cs_new_protected:Nn \minimalist_apply_title_numbering_style:n
+ {
+ \group_begin:
+ \tl_set:Nx \l_tmpa_tl { #1 }
+ \regex_replace_all:nnN { (\w) } { \c{minimalist_original_bfseries:}{\1} } \l_tmpa_tl
+ \regex_replace_all:nnN { (\d) } { {\c{usefont}{U}{zeur}{b}{n}\1} } \l_tmpa_tl
+ \exp_args:Nnx \regex_count:nnN { \. } {#1} \l_tmpa_int
+ \int_case:nn { \l_tmpa_int }
+ {
+ { 0 } { \textcolor { main-text!24!paper } }
+ { 1 } { \textcolor { main-text!39!paper } }
+ { 2 } { \textcolor { main-text!39!paper } }
+ { 3 } { \smaller[2] \textcolor { main-text!24!paper } }
+ }
+ \l_tmpa_tl
+ \group_end:
+ }
+
\newcommand{\partstring}{\MakeUppercase{{\partname\nobreakspace\protect\thepart}}}
\AddLanguageSetting
@@ -305,7 +331,7 @@
\g_minimalist_title_font_part_tl\filleft}
{\partstring}
{1em}
- {\fontsize{20}{0}\selectfont\MakeUppercase{#1}}
+ {\fontsize{20}{24}\selectfont\MakeUppercase{#1}}
[\ResumeLineNumbers]
\titleformat{name=\part,numberless}[display]
{\thispagestyle{part}
@@ -314,7 +340,7 @@
\g_minimalist_title_font_part_tl\filleft}
{\phantom{\MakeUppercase{\partname}}}
{1em}
- {\fontsize{20}{0}\selectfont\MakeUppercase{#1}}
+ {\fontsize{20}{24}\selectfont\MakeUppercase{#1}}
[\ResumeLineNumbers]
\titlespacing*{\part}{0pt}{5em}{6em}
%% Text after part
@@ -454,7 +480,7 @@
\titlecontents{part}
[0em]
{\addvspace{1.5pc}\filcenter\normalfont}
- { \minimalist_apply_title_numbering_style:n { \thecontentslabel } \nopagebreak\\\nopagebreak\uppercase}
+ { \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } \nopagebreak\\\nopagebreak\uppercase}
{}
{} % without page number
[\addvspace{.5pc}]
@@ -464,25 +490,25 @@
\titlecontents{chapter}
[2em] % i.e., 0em (part) + 2em
{\addvspace{.5pc}\normalfont}
- {\contentslabel[ \minimalist_apply_title_numbering_style:n { \thecontentslabel } ]{2em}}
+ {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{2em}}
{\hspace*{-2em}}
{\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage}
\titlecontents{section}
[5em] % i.e., 2em (chapter) + 3em
{\normalfont}
- {\contentslabel[\textcolor{main-text!27!paper}{\small\g_minimalist_section_decoration_char_tl}\,\textcolor{main-text!90!paper}{ \minimalist_apply_title_numbering_style:n { \thecontentslabel } }\,\textcolor{main-text!27!paper}{\small\g_minimalist_section_decoration_char_tl}]{2.75em}}
+ {\contentslabel[\textcolor{main-text!27!paper}{\small\g_minimalist_section_decoration_char_tl}\,\textcolor{main-text!90!paper}{ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } }\,\textcolor{main-text!27!paper}{\small\g_minimalist_section_decoration_char_tl}]{2.75em}}
{\hspace*{-2.75em}}
{\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage}
\titlecontents{subsection}
[8em] % i.e., 5em (section) + 3em
{\normalfont}
- {\contentslabel[ \minimalist_apply_title_numbering_style:n { \thecontentslabel } ]{2.75em}}
+ {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{2.75em}}
{\hspace*{-2.75em}}
{\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage}
\titlecontents{subsubsection}
[12em] % i.e., 8em (subsection) + 4em
{\normalfont}
- {\contentslabel[ \minimalist_apply_title_numbering_style:n { \thecontentslabel } ]{3.75em}}
+ {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{3.75em}}
{\hspace*{-3.75em}}
{\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage}
}
@@ -490,19 +516,19 @@
\titlecontents{section}
[2em] % i.e., 0em (part) + 2em
{\normalfont}
- {\contentslabel[ \minimalist_apply_title_numbering_style:n { \thecontentslabel } ]{1.75em}}
+ {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{1.75em}}
{\hspace*{-1.75em}}
{\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage}
\titlecontents{subsection}
[4.75em] % i.e., 2em (section) + 2.75em
{\normalfont}
- {\contentslabel[ \minimalist_apply_title_numbering_style:n { \thecontentslabel } ]{2.50em}}
+ {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{2.50em}}
{\hspace*{-2.50em}}
{\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage}
\titlecontents{subsubsection}
[8.25em] % i.e., 4.75em (subsection) + 3.5em
{\normalfont}
- {\contentslabel[ \minimalist_apply_title_numbering_style:n { \thecontentslabel } ]{3.25em}}
+ {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{3.25em}}
{\hspace*{-3.25em}}
{\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage}
}
@@ -512,7 +538,7 @@
%%================================
\RequirePackage { enumitem }
\setlistdepth{10}
-\setlist{noitemsep, topsep=.33\topsep}
+\setlist{noitemsep, topsep=.33\topsep-.5\parskip}
\setlist[enumerate]{labelsep=*, leftmargin=*}
\setlist[enumerate,1]{label=\arabic*$)$,
ref = \arabic*$)$}
@@ -530,8 +556,8 @@
\renewlist{itemize}{itemize}{10}
\setlist[itemize]{leftmargin=*,label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{$\cdot$}}
\AddLanguageSetting { \setlist[itemize,1]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{$\bullet$}} }
-\AddLanguageSetting [french] { \setlist[itemize,1]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{---}} }
-\setlist[itemize,2]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{--}}
+\AddLanguageSetting [french] { \setlist[itemize,1]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{\rule[.2\baselineskip]{.8em}{.75pt}}} }
+\setlist[itemize,2]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{\rule[.2\baselineskip]{.5em}{.75pt}}}
\setlist[itemize,3]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{$\circ$}}
\setlist[itemize,4]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{$\ast$}}
@@ -600,16 +626,14 @@ heading_suffix "}\n"
\newcommand*{\IndexDotfill}
{
- \nobreakspace\nobreakspace
- \titlerule*[.67em]{\textcolor{main-text!15!paper}{.}}
- \nobreakspace\nobreakspace
+ \leaders \hbox to .67em {\hss \textcolor{main-text!15!paper}{.} \hss} \hfill
}
\newcommand*{\IndexHeading}[1]
{
\str_if_eq:nnTF { #1 } { Symbols }
{ \tl_set:Nn \l_tmpa_tl { \index_symbols_name } }
{ \tl_set:Nn \l_tmpa_tl { #1 } }
- \centerline{ \g_minimalist_title_font_common_tl \minimalist_apply_title_numbering_style:n { \l_tmpa_tl } }
+ \centerline{ \g_minimalist_title_font_common_tl \minimalist_apply_title_numbering_style_static:n { \l_tmpa_tl } }
\nopagebreak
\par
\vspace{.3\baselineskip}
@@ -668,7 +692,7 @@ heading_suffix "}\n"
\rlap{\vbox{\hbox{\parbox{\linewidth}{
{\thmname{#1}\thmnumber{\nobreakspace #2}}
\thmnote{\hspace{.4em}\textcolor{main-text!27!paper}{ \l_minimalist_sep_bar }\hspace{.4em}\color{main-text!50!paper}$($#3$)$}
- }}\hbox{\strut}\vspace{-2\parskip}}}
+ }}\hbox{\strut}\vspace{0pt}}}\vspace{-2\parskip}
\pushQED{\qed}
}
}
@@ -712,7 +736,7 @@ heading_suffix "}\n"
\RequirePackage { projlib-theorem }
-\exp_args:No \SetTheorem { \c_projlib_theorem_supported_clist }
+\exp_args:No \SetTheorem { \c_projlib_theorem_supported_clist, theorem-with-name }
{
name style = {
, heading style = {
@@ -753,7 +777,7 @@ heading_suffix "}\n"
\bool_if:NF \l__projlib_theorem_complexname_bool
{
- \exp_args:No \SetTheorem { \c_projlib_theorem_supported_clist }
+ \exp_args:No \SetTheorem { \c_projlib_theorem_supported_clist, theorem-with-name }
{
name style = {
, crefname style = {
@@ -783,17 +807,7 @@ heading_suffix "}\n"
, russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
}
, numbering style = {
- , english = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , french = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , ngerman = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , italian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , portuguese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , brazilian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , spanish = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , schinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , tchinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , japanese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ \minimalist_bfseries:\g_minimalist_title_font_common_tl
}
}
}
@@ -830,17 +844,7 @@ heading_suffix "}\n"
, russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
}
, numbering style = {
- , english = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , french = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , ngerman = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , italian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , portuguese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , brazilian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , spanish = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , schinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , tchinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , japanese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ \minimalist_bfseries:\g_minimalist_title_font_common_tl
}
}
}
@@ -878,7 +882,7 @@ heading_suffix "}\n"
{
\hook_gput_code:nnn { package/projlib-author/after } { minimalist }
{
- \tl_gset:Nn \g__projlib_author_font_author_tl { \normalfont \scshape }
+ \tl_gset:Nn \g__projlib_author_font_author_tl { \normalfont \minimalist_scshape: }
\tl_gset:Nn \g__projlib_author_font_institute_tl { \large \normalfont }
\tl_gset:Nn \g__projlib_author_font_address_tl { \large \normalfont \itshape }
\tl_gset:Nn \g__projlib_author_font_curraddr_tl { \large \normalfont \itshape }
@@ -909,18 +913,18 @@ heading_suffix "}\n"
\let\footnote\thanks
{\minimalist_bfseries:\@title}\\\medskip
\color{main-text!80!paper}
- {\small\scshape\@author}
+ {\small\minimalist_scshape:\@author}
\par\vspace{-\parskip}\vspace{2pt}
{\small\@date}
\end{flushright}
- % \vspace{-\parskip}
\vspace{-.5\baselineskip}
- \ifx\@date\@empty
- \vspace{\baselineskip}
- \vspace{1.2\parskip}
- \else
+ \projlib_author_if_content_empty:nTF { \@date }
+ {
+ \vspace{-.2\baselineskip}
+ }
+ {
\vspace{-.5\baselineskip}
- \fi
+ }
{\textcolor{main-text!27!paper}{\rule{\textwidth}{0.75pt}}\par}
\ResumeLineNumbers
}
@@ -934,7 +938,7 @@ heading_suffix "}\n"
{
\LocallyStopLineNumbers
\begin{flushright}
- { \g_minimalist_title_font_section_tl \scshape \small\abstractname}\par
+ { \g_minimalist_title_font_section_tl \minimalist_scshape: \small\abstractname}\par
\vspace{-\parskip}
\vspace{-.25\baselineskip}
\begin{minipage}[t]{.833\textwidth}
@@ -972,7 +976,7 @@ heading_suffix "}\n"
\LocallyStopLineNumbers
\vspace{-.5\baselineskip}
\begin{flushright}
- {\minimalist_bfseries:\scshape\small\keywordname}\par
+ {\minimalist_bfseries:\minimalist_scshape:\small\keywordname}\par
\vspace{-\parskip}
\vspace{-.30\baselineskip}
\begin{minipage}[t]{.833\textwidth}
@@ -995,6 +999,18 @@ heading_suffix "}\n"
\PassOptionsToPackage { amsfashion } { projlib-author }
\RequirePackage { projlib-author }
+%%================================
+%% Special adjustment
+%%================================
+\crefformat { chapter } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 }
+\labelcrefformat { chapter } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 }
+\crefformat { section } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 }
+\labelcrefformat { section } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 }
+\crefformat { subsection } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 }
+\labelcrefformat { subsection } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 }
+\crefformat { subsubsection } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 }
+\labelcrefformat { subsubsection } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 }
+
\endinput
%%
%% End of file `minimalist/minimalist-classical.sty'.
diff --git a/macros/latex/contrib/minimalist/minimalist-doc.pdf b/macros/latex/contrib/minimalist/minimalist-doc.pdf
index f890924979..03d2289372 100644
--- a/macros/latex/contrib/minimalist/minimalist-doc.pdf
+++ b/macros/latex/contrib/minimalist/minimalist-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/minimalist/minimalist-doc.tex b/macros/latex/contrib/minimalist/minimalist-doc.tex
index 199f6ca675..a59d90ca4d 100644
--- a/macros/latex/contrib/minimalist/minimalist-doc.tex
+++ b/macros/latex/contrib/minimalist/minimalist-doc.tex
@@ -97,7 +97,7 @@
%%================================
\begin{document}
-\def\PackageVersion{2022/04/24}
+\def\PackageVersion{2022/06/16}
\title{\minimalist{}, write your articles or books in a simple and clear way}
\author{Jinwen XU}
diff --git a/macros/latex/contrib/minimalist/minimalist-plain.sty b/macros/latex/contrib/minimalist/minimalist-plain.sty
index 28dbd470e8..6afa15b14e 100644
--- a/macros/latex/contrib/minimalist/minimalist-plain.sty
+++ b/macros/latex/contrib/minimalist/minimalist-plain.sty
@@ -1,7 +1,7 @@
%%
%% This is file `minimalist/minimalist-plain.sty',
%% generated with the docstrip utility.
-
+%%
%% Copyright (C) 2021-2022 by Jinwen XU
%%
%% This is part of the minimalist class series.
@@ -19,10 +19,10 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{minimalist-plain}
- {2022/04/24} {}
+ {2022/06/16} {}
{The plain style of minimalist}
-\@ifpackageloaded { minimalist } {}
+\IfPackageLoadedTF { minimalist } {}
{
\msg_new:nnn { \@currname }
{ minimalist-not-loaded }
@@ -34,6 +34,7 @@
%%================================
%% Title fonts
%%================================
+\RequirePackage { relsize }
\RequirePackage { anyfontsize }
\NewCommandCopy \minimalist_original_bfseries: \bfseries
@@ -57,6 +58,14 @@
\cs_new:Nn \minimalist_bfseries: {}
}
+\bool_if:NTF \l__minimalist_use_scshape_bool
+ {
+ \cs_new:Nn \minimalist_scshape: { \scshape }
+ }
+ {
+ \cs_new:Nn \minimalist_scshape: {}
+ }
+
\tl_new:N \g_minimalist_title_font_common_tl
\tl_new:N \g_minimalist_title_font_part_tl
@@ -67,11 +76,11 @@
\tl_new:N \g_minimalist_title_font_paragraph_tl
\tl_gset:Nn \g_minimalist_title_font_part_tl { \minimalist_bfseries: \g_minimalist_title_font_common_tl }
-\tl_gset:Nn \g_minimalist_title_font_chapter_tl { \minimalist_bfseries: \g_minimalist_title_font_common_tl \scshape }
-\tl_gset:Nn \g_minimalist_title_font_section_tl { \minimalist_bfseries: \g_minimalist_title_font_common_tl \scshape }
-\tl_gset:Nn \g_minimalist_title_font_subsection_tl { \minimalist_bfseries: \g_minimalist_title_font_common_tl \scshape }
+\tl_gset:Nn \g_minimalist_title_font_chapter_tl { \minimalist_bfseries: \g_minimalist_title_font_common_tl \minimalist_scshape: }
+\tl_gset:Nn \g_minimalist_title_font_section_tl { \minimalist_bfseries: \g_minimalist_title_font_common_tl \minimalist_scshape: }
+\tl_gset:Nn \g_minimalist_title_font_subsection_tl { \minimalist_bfseries: \g_minimalist_title_font_common_tl \minimalist_scshape: }
\tl_gset:Nn \g_minimalist_title_font_subsubsection_tl { \minimalist_bfseries: \g_minimalist_title_font_common_tl }
-\tl_gset:Nn \g_minimalist_title_font_paragraph_tl { \minimalist_bfseries: \g_minimalist_title_font_common_tl \scshape }
+\tl_gset:Nn \g_minimalist_title_font_paragraph_tl { \minimalist_bfseries: \g_minimalist_title_font_common_tl \minimalist_scshape: }
\bool_if:NF \l__minimalist_fast_bool
{
@@ -134,7 +143,7 @@
\rlap
{
\nobreakspace \nobreakspace \nobreakspace \nobreakspace
- \textcolor { main-text!75!paper } { \minimalist_bfseries: \thepage }
+ \textcolor { main-text!75!paper } { \thepage }
}
}
\fancyfoot[LE]
@@ -142,7 +151,7 @@
\leavevmode
\llap
{
- \textcolor { main-text!75!paper } { \minimalist_bfseries: \thepage }
+ \textcolor { main-text!75!paper } { \thepage }
\nobreakspace \nobreakspace \nobreakspace \nobreakspace
}
\textcolor { main-text!30!paper } { \small \l_minimalist_leftmark_tl }
@@ -154,7 +163,7 @@
\rlap
{
\nobreakspace \nobreakspace \nobreakspace \nobreakspace
- \textcolor { main-text!75!paper } { \minimalist_bfseries: \thepage }
+ \textcolor { main-text!75!paper } { \thepage }
}
}
\fi
@@ -172,7 +181,7 @@
\rlap
{
\nobreakspace \nobreakspace \nobreakspace \nobreakspace
- \textcolor { main-text!75!paper } { \minimalist_bfseries: \thepage }
+ \textcolor { main-text!75!paper } { \thepage }
}
}
\fancyfoot[LE]
@@ -180,7 +189,7 @@
\leavevmode
\llap
{
- \textcolor { main-text!75!paper } { \minimalist_bfseries: \thepage }
+ \textcolor { main-text!75!paper } { \thepage }
\nobreakspace \nobreakspace \nobreakspace \nobreakspace
}
\nobreakspace
@@ -192,7 +201,7 @@
\rlap
{
\nobreakspace \nobreakspace \nobreakspace \nobreakspace
- \textcolor { main-text!75!paper } { \minimalist_bfseries: \thepage }
+ \textcolor { main-text!75!paper } { \thepage }
}
}
\fi
@@ -237,7 +246,7 @@
\renewcommand{\chaptermark}[1]{\markboth{\textsc{#1}}{\textsc{#1}}}
\fi
\renewcommand*{\sectionmark}[1]{
- \markright{\protect\g_minimalist_section_decoration_char_tl\nobreakspace\arabic{section}\nobreakspace\protect\g_minimalist_section_decoration_char_tl\nobreakspace\nobreakspace\nobreakspace#1}}
+ \markright{\protect\g_minimalist_section_decoration_char_tl\nobreakspace\thesection\nobreakspace\protect\g_minimalist_section_decoration_char_tl\nobreakspace\nobreakspace\nobreakspace#1}}
}
{
\if@twoside
@@ -250,17 +259,34 @@
%%================================
%% Title format
%%================================
-\RequirePackage [ explicit, newparttoc, nobottomtitles* ] { titlesec }
+\RequirePackage [ explicit, newparttoc ] { titlesec }
\PassOptionsToPackage { normalem } { ulem }
\RequirePackage { ulem }
-\cs_generate_variant:Nn \seq_set_split:Nnn { Nnx }
-\cs_new:Nn \minimalist_apply_title_numbering_style:n
+\cs_new_protected:Nn \minimalist_apply_title_numbering_style_static:n
{
\tl_set:Nx \l_tmpa_tl { #1 }
- \regex_replace_all:nnN { (\w) } { \c{textbf}{\1} } \l_tmpa_tl
+ \regex_replace_all:nnN { (\w) } { \c{minimalist_original_bfseries:}{\1} } \l_tmpa_tl
\regex_replace_all:nnN { (\d) } { {\c{usefont}{U}{zeur}{b}{n}\1} } \l_tmpa_tl
- \textcolor { main-text!39!paper } { \l_tmpa_tl }
+ \textcolor { main-text!39!paper } { \normalfont \l_tmpa_tl }
+ }
+
+\cs_new_protected:Nn \minimalist_apply_title_numbering_style:n
+ {
+ \group_begin:
+ \tl_set:Nx \l_tmpa_tl { #1 }
+ \regex_replace_all:nnN { (\w) } { \c{minimalist_original_bfseries:}{\1} } \l_tmpa_tl
+ \regex_replace_all:nnN { (\d) } { {\c{usefont}{U}{zeur}{b}{n}\1} } \l_tmpa_tl
+ \exp_args:Nnx \regex_count:nnN { \. } {#1} \l_tmpa_int
+ \int_case:nn { \l_tmpa_int }
+ {
+ { 0 } { \textcolor { main-text!24!paper } }
+ { 1 } { \textcolor { main-text!39!paper } }
+ { 2 } { \textcolor { main-text!39!paper } }
+ { 3 } { \smaller[2] \textcolor { main-text!24!paper } }
+ }
+ \l_tmpa_tl
+ \group_end:
}
\newcommand{\partstring}{\MakeUppercase{{\partname\nobreakspace\protect\thepart}}}
@@ -294,7 +320,7 @@
\g_minimalist_title_font_part_tl\filleft}
{\partstring}
{1em}
- {\fontsize{20}{0}\selectfont\MakeUppercase{#1}}
+ {\fontsize{20}{24}\selectfont\MakeUppercase{#1}}
[\ResumeLineNumbers]
\titleformat{name=\part,numberless}[display]
{\thispagestyle{part}
@@ -303,7 +329,7 @@
\g_minimalist_title_font_part_tl\filleft}
{\phantom{\MakeUppercase{\partname}}}
{1em}
- {\fontsize{20}{0}\selectfont\MakeUppercase{#1}}
+ {\fontsize{20}{24}\selectfont\MakeUppercase{#1}}
[\ResumeLineNumbers]
\titlespacing*{\part}{0pt}{5em}{6em}
%% Text after part
@@ -384,7 +410,7 @@
\titleformat{\section}
{\LocallyStopLineNumbers
\g_minimalist_title_font_section_tl\centering}
- {\raisebox{-.02\baselineskip}{\large \minimalist_apply_title_numbering_style:n { \thesection } }}{1em}
+ {\raisebox{-.02\baselineskip}{\large \minimalist_apply_title_numbering_style_static:n { \thesection } }}{1em}
{#1}
[\ResumeLineNumbers]
@@ -392,7 +418,7 @@
\titleformat{\subsection}
{\LocallyStopLineNumbers
\g_minimalist_title_font_subsection_tl}
- { \minimalist_apply_title_numbering_style:n { \thesubsection } }{.75em}
+ { \minimalist_apply_title_numbering_style_static:n { \thesubsection } }{.75em}
{#1}
[\ResumeLineNumbers]
@@ -401,14 +427,14 @@
{
\titleformat{\subsubsection}[runin]
{\g_minimalist_title_font_subsubsection_tl}
- { \minimalist_apply_title_numbering_style:n { \thesection } }{.5em}
+ { \minimalist_apply_title_numbering_style_static:n { \thesection } }{.5em}
{#1.}[\hspace*{.3em}]
}
{
\titleformat{\subsubsection}
{\LocallyStopLineNumbers
\g_minimalist_title_font_subsubsection_tl}
- { \minimalist_apply_title_numbering_style:n { \thesubsubsection } }{.5em}
+ { \minimalist_apply_title_numbering_style_static:n { \thesubsubsection } }{.5em}
{#1}
[\ResumeLineNumbers]
}
@@ -428,7 +454,7 @@
\titlecontents{part}
[0em]
{\addvspace{1.5pc}\filcenter\normalfont}
- { \minimalist_apply_title_numbering_style:n { \thecontentslabel } \nopagebreak\\\nopagebreak\uppercase}
+ { \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } \nopagebreak\\\nopagebreak\uppercase}
{}
{} % without page number
[\addvspace{.5pc}]
@@ -438,25 +464,25 @@
\titlecontents{chapter}
[2em] % i.e., 0em (part) + 2em
{\addvspace{.5pc}\normalfont}
- {\contentslabel[ \minimalist_apply_title_numbering_style:n { \thecontentslabel } ]{2em}}
+ {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{2em}}
{\hspace*{-2em}}
{\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage}
\titlecontents{section}
[5em] % i.e., 2em (chapter) + 3em
{\normalfont}
- {\contentslabel[ \minimalist_apply_title_numbering_style:n { \thecontentslabel } ]{2.75em}}
+ {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{2.75em}}
{\hspace*{-2.75em}}
{\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage}
\titlecontents{subsection}
[9em] % i.e., 5em (section) + 4em
{\normalfont}
- {\contentslabel[ \minimalist_apply_title_numbering_style:n { \thecontentslabel } ]{3.75em}}
+ {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{3.75em}}
{\hspace*{-3.75em}}
{\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage}
\titlecontents{subsubsection}
[13.5em] % i.e., 9em (subsection) + 4.5em
{\normalfont}
- {\contentslabel[ \minimalist_apply_title_numbering_style:n { \thecontentslabel } ]{4.25em}}
+ {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{4.25em}}
{\hspace*{-4.25em}}
{\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage}
}
@@ -464,19 +490,19 @@
\titlecontents{section}
[2em] % i.e., 0em (part) + 2em
{\normalfont}
- {\contentslabel[ \minimalist_apply_title_numbering_style:n { \thecontentslabel } ]{1.75em}}
+ {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{1.75em}}
{\hspace*{-1.75em}}
{\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage}
\titlecontents{subsection}
[5em] % i.e., 2em (section) + 3em
{\normalfont}
- {\contentslabel[ \minimalist_apply_title_numbering_style:n { \thecontentslabel } ]{2.75em}}
+ {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{2.75em}}
{\hspace*{-2.75em}}
{\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage}
\titlecontents{subsubsection}
[9em] % i.e., 5em (subsection) + 4em
{\normalfont}
- {\contentslabel[ \minimalist_apply_title_numbering_style:n { \thecontentslabel } ]{3.75em}}
+ {\contentslabel[ \minimalist_apply_title_numbering_style_static:n { \thecontentslabel } ]{3.75em}}
{\hspace*{-3.75em}}
{\titlerule*[1em]{\textcolor{main-text!15!paper}{.}}\contentspage}
}
@@ -486,7 +512,7 @@
%%================================
\RequirePackage { enumitem }
\setlistdepth{10}
-\setlist{noitemsep, topsep=.33\topsep}
+\setlist{noitemsep, topsep=.33\topsep-.5\parskip}
\setlist[enumerate]{labelsep=*, leftmargin=*}
\setlist[enumerate,1]{label=\arabic*$)$,
ref = \arabic*$)$}
@@ -499,8 +525,8 @@
\renewlist{itemize}{itemize}{10}
\setlist[itemize]{leftmargin=*,label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{$\cdot$}}
\AddLanguageSetting { \setlist[itemize,1]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{$\bullet$}} }
-\AddLanguageSetting [french] { \setlist[itemize,1]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{---}} }
-\setlist[itemize,2]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{--}}
+\AddLanguageSetting [french] { \setlist[itemize,1]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{\rule[.2\baselineskip]{.8em}{.75pt}}} }
+\setlist[itemize,2]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{\rule[.2\baselineskip]{.5em}{.75pt}}}
\setlist[itemize,3]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{$\circ$}}
\setlist[itemize,4]{label=\colorlet{currentcolor}{.}\textcolor{currentcolor!27!paper}{$\ast$}}
@@ -569,16 +595,14 @@ heading_suffix "}\n"
\newcommand*{\IndexDotfill}
{
- \nobreakspace\nobreakspace
- \titlerule*[.67em]{\textcolor{main-text!15!paper}{.}}
- \nobreakspace\nobreakspace
+ \leaders \hbox to .67em {\hss \textcolor{main-text!15!paper}{.} \hss} \hfill
}
\newcommand*{\IndexHeading}[1]
{
\str_if_eq:nnTF { #1 } { Symbols }
{ \tl_set:Nn \l_tmpa_tl { \index_symbols_name } }
{ \tl_set:Nn \l_tmpa_tl { #1 } }
- \centerline{ \g_minimalist_title_font_common_tl \minimalist_apply_title_numbering_style:n { \l_tmpa_tl } }
+ \centerline{ \g_minimalist_title_font_common_tl \minimalist_apply_title_numbering_style_static:n { \l_tmpa_tl } }
\nopagebreak
\par
\vspace{.3\baselineskip}
@@ -635,7 +659,7 @@ heading_suffix "}\n"
\rlap{\vbox{\hbox{\parbox{\linewidth}{
{\thmname{#1}\thmnumber{\nobreakspace #2}}
{\color{main-text!50!paper}\thmnote{\hspace{.4em}$($#3$)$}}
- }}\hbox{\strut}\vspace{-2\parskip}}}
+ }}\hbox{\strut}\vspace{0pt}}}
}
}
{
@@ -671,7 +695,7 @@ heading_suffix "}\n"
\RequirePackage { projlib-theorem }
-\exp_args:No \SetTheorem { \c_projlib_theorem_supported_clist }
+\exp_args:No \SetTheorem { \c_projlib_theorem_supported_clist, theorem-with-name }
{
name style = {
, heading style = {
@@ -712,7 +736,7 @@ heading_suffix "}\n"
\bool_if:NF \l__projlib_theorem_complexname_bool
{
- \exp_args:No \SetTheorem { \c_projlib_theorem_supported_clist }
+ \exp_args:No \SetTheorem { \c_projlib_theorem_supported_clist, theorem-with-name }
{
name style = {
, crefname style = {
@@ -742,17 +766,7 @@ heading_suffix "}\n"
, russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
}
, numbering style = {
- , english = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , french = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , ngerman = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , italian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , portuguese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , brazilian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , spanish = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , schinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , tchinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , japanese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ \minimalist_bfseries:\g_minimalist_title_font_common_tl
}
}
}
@@ -789,17 +803,7 @@ heading_suffix "}\n"
, russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
}
, numbering style = {
- , english = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , french = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , ngerman = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , italian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , portuguese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , brazilian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , spanish = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , schinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , tchinese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , japanese = \minimalist_bfseries:\g_minimalist_title_font_common_tl
- , russian = \minimalist_bfseries:\g_minimalist_title_font_common_tl
+ \minimalist_bfseries:\g_minimalist_title_font_common_tl
}
}
}
@@ -838,7 +842,7 @@ heading_suffix "}\n"
{
\hook_gput_code:nnn { package/projlib-author/after } { minimalist }
{
- \tl_gset:Nn \g__projlib_author_font_author_tl { \normalfont \scshape }
+ \tl_gset:Nn \g__projlib_author_font_author_tl { \normalfont \minimalist_scshape: }
\tl_gset:Nn \g__projlib_author_font_institute_tl { \large \normalfont }
\tl_gset:Nn \g__projlib_author_font_address_tl { \large \normalfont \itshape }
\tl_gset:Nn \g__projlib_author_font_curraddr_tl { \large \normalfont \itshape }
@@ -863,13 +867,13 @@ heading_suffix "}\n"
\LocallyStopLineNumbers
\begin{center}
\let\footnote\thanks
- {\minimalist_bfseries:\sffamily\scshape\Large\@title}\\\bigskip
+ {\minimalist_bfseries:\sffamily\minimalist_scshape:\Large\@title}\\\bigskip
\color{main-text!80!paper}
- {\small\scshape\@author}
+ {\small\minimalist_scshape:\@author}
\par\smallskip\vspace{-\parskip}
{\small\@date}
\end{center}
- \ifx\@date\@empty\medskip\fi
+ \projlib_author_if_content_empty:nT { \@date } { \medskip }
\medskip\par
\ResumeLineNumbers
}
@@ -884,7 +888,7 @@ heading_suffix "}\n"
\LocallyStopLineNumbers
\vspace{-.5\baselineskip}
\begin{center}
- { \g_minimalist_title_font_section_tl \scshape \small\abstractname}\\
+ { \g_minimalist_title_font_section_tl \minimalist_scshape: \small\abstractname}\\
\vspace{-.3\baselineskip}
\begin{minipage}[t]{.833\textwidth}
\vspace{0pt}
@@ -921,7 +925,7 @@ heading_suffix "}\n"
\LocallyStopLineNumbers
\vspace{-.75\baselineskip}
\begin{center}
- {\minimalist_bfseries:\scshape\small\keywordname}\\
+ {\minimalist_bfseries:\minimalist_scshape:\small\keywordname}\\
\vspace{-.3\baselineskip}
\begin{minipage}[t]{.833\textwidth}
\vspace{0pt}
@@ -944,6 +948,18 @@ heading_suffix "}\n"
\PassOptionsToPackage { amsfashion } { projlib-author }
\RequirePackage { projlib-author }
+%%================================
+%% Special adjustment
+%%================================
+\crefformat { chapter } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 }
+\labelcrefformat { chapter } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 }
+\crefformat { section } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 }
+\labelcrefformat { section } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 }
+\crefformat { subsection } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 }
+\labelcrefformat { subsection } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 }
+\crefformat { subsubsection } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 }
+\labelcrefformat { subsubsection } { #2 \minimalist_apply_title_numbering_style_static:n {#1} #3 }
+
\endinput
%%
%% End of file `minimalist/minimalist-plain.sty'.
diff --git a/macros/latex/contrib/minimalist/minimalist.sty b/macros/latex/contrib/minimalist/minimalist.sty
index 7dde7289fe..910f1e7960 100644
--- a/macros/latex/contrib/minimalist/minimalist.sty
+++ b/macros/latex/contrib/minimalist/minimalist.sty
@@ -1,7 +1,7 @@
%%
%% This is file `minimalist/minimalist.sty',
%% generated with the docstrip utility.
-
+%%
%% Copyright (C) 2021-2022 by Jinwen XU
%%
%% This is part of the minimalist class series.
@@ -19,7 +19,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplPackage
{minimalist}
- {2022/04/24} {}
+ {2022/06/16} {}
{A simple and clear style for articles and books}
\keys_define:nn { minimalist }
@@ -30,17 +30,30 @@
, style .str_set:N = \l__minimalist_style_str
, style .initial:n = { plain }
+ , use-style .str_set:N = \l__minimalist_style_str
+ , use~style .str_set:N = \l__minimalist_style_str
+ , use style .str_set:N = \l__minimalist_style_str
, classical .meta:n = { style = classical }
, use-boldface .bool_set:N = \l__minimalist_use_boldface_bool
, use-boldface .initial:n = { false }
, use~boldface .bool_set:N = \l__minimalist_use_boldface_bool
, use boldface .bool_set:N = \l__minimalist_use_boldface_bool
- , usebf .bool_set:N = \l__minimalist_use_boldface_bool
- , allow-boldface .bool_set:N = \l__minimalist_use_boldface_bool
- , allow~boldface .bool_set:N = \l__minimalist_use_boldface_bool
- , allow boldface .bool_set:N = \l__minimalist_use_boldface_bool
- , allowbf .bool_set:N = \l__minimalist_use_boldface_bool
+ , title-in-boldface .bool_set:N = \l__minimalist_use_boldface_bool
+ , title~in~boldface .bool_set:N = \l__minimalist_use_boldface_bool
+ , title in boldface .bool_set:N = \l__minimalist_use_boldface_bool
+ , title-in-bold .bool_set:N = \l__minimalist_use_boldface_bool
+ , title~in~bold .bool_set:N = \l__minimalist_use_boldface_bool
+ , title in bold .bool_set:N = \l__minimalist_use_boldface_bool
+
+ , use-scshape .bool_set:N = \l__minimalist_use_scshape_bool
+ , use-scshape .initial:n = { false }
+ , use~scshape .bool_set:N = \l__minimalist_use_scshape_bool
+ , use scshape .bool_set:N = \l__minimalist_use_scshape_bool
+ , title-in-scshape .bool_set:N = \l__minimalist_use_scshape_bool
+ , title~in~scshape .bool_set:N = \l__minimalist_use_scshape_bool
+ , title in scshape .bool_set:N = \l__minimalist_use_scshape_bool
+
, runin .bool_set:N = \l__minimalist_runin_bool
, runin .initial:n = { false }
diff --git a/macros/latex/contrib/minimalist/minimart.cls b/macros/latex/contrib/minimalist/minimart.cls
index aaa62d7852..5ad7607932 100644
--- a/macros/latex/contrib/minimalist/minimart.cls
+++ b/macros/latex/contrib/minimalist/minimart.cls
@@ -1,7 +1,7 @@
%%
%% This is file `minimalist/minimart.cls',
%% generated with the docstrip utility.
-
+%%
%% Copyright (C) 2021-2022 by Jinwen XU
%%
%% This is part of the minimalist class series.
@@ -19,7 +19,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplClass
{minimart}
- {2022/04/24} {}
+ {2022/06/16} {}
{A simple and clear article style}
\tl_const:Nn \l__minimclass_base_class_tl { article }
@@ -190,21 +190,25 @@
}
}
+
\PassOptionsToPackage { all } { nowidow }
\RequirePackage { nowidow }
-\RequirePackage { regexpatch }
-\skip_new:N \g_minimclass_parfillskip_skip
-\xpatchcmd{\@trivlist}{\@flushglue}{\g_minimclass_parfillskip_skip}{}{}
-\hook_gput_code:nnn { begindocument } { minimclass }
+\sys_if_engine_xetex:T
{
- \skip_gset:Nn \g_minimclass_parfillskip_skip { 0pt plus \dim_eval:n { \linewidth - 2\parindent } }
- \skip_gset_eq:NN \parfillskip \g_minimclass_parfillskip_skip
+ \RequirePackage { regexpatch }
+ \skip_new:N \g_minimclass_parfillskip_skip
+ \xpatchcmd{\@trivlist}{\@flushglue}{\g_minimclass_parfillskip_skip}{}{}
+ \hook_gput_code:nnn { begindocument } { minimclass }
+ {
+ \skip_gset:Nn \g_minimclass_parfillskip_skip { 0pt plus \dim_eval:n { \linewidth - 3em } }
+ \skip_gset_eq:NN \parfillskip \g_minimclass_parfillskip_skip
+ }
}
\hook_gput_code:nnn { begindocument/before } { minimclass }
{
- \@ifpackageloaded { biblatex }
+ \IfPackageLoadedTF { biblatex }
{
\PassOptionsToPackage { biblatex } { embrac }
} {}
diff --git a/macros/latex/contrib/minimalist/minimbook.cls b/macros/latex/contrib/minimalist/minimbook.cls
index 61a27b439c..f844f26ffb 100644
--- a/macros/latex/contrib/minimalist/minimbook.cls
+++ b/macros/latex/contrib/minimalist/minimbook.cls
@@ -1,7 +1,7 @@
%%
%% This is file `minimalist/minimbook.cls',
%% generated with the docstrip utility.
-
+%%
%% Copyright (C) 2021-2022 by Jinwen XU
%%
%% This is part of the minimalist class series.
@@ -19,7 +19,7 @@
\RequirePackage{l3keys2e}
\ProvidesExplClass
{minimbook}
- {2022/04/24} {}
+ {2022/06/16} {}
{A simple and clear book style}
\tl_const:Nn \l__minimclass_base_class_tl { book }
@@ -190,21 +190,25 @@
}
}
+
\PassOptionsToPackage { all } { nowidow }
\RequirePackage { nowidow }
-\RequirePackage { regexpatch }
-\skip_new:N \g_minimclass_parfillskip_skip
-\xpatchcmd{\@trivlist}{\@flushglue}{\g_minimclass_parfillskip_skip}{}{}
-\hook_gput_code:nnn { begindocument } { minimclass }
+\sys_if_engine_xetex:T
{
- \skip_gset:Nn \g_minimclass_parfillskip_skip { 0pt plus \dim_eval:n { \linewidth - 2\parindent } }
- \skip_gset_eq:NN \parfillskip \g_minimclass_parfillskip_skip
+ \RequirePackage { regexpatch }
+ \skip_new:N \g_minimclass_parfillskip_skip
+ \xpatchcmd{\@trivlist}{\@flushglue}{\g_minimclass_parfillskip_skip}{}{}
+ \hook_gput_code:nnn { begindocument } { minimclass }
+ {
+ \skip_gset:Nn \g_minimclass_parfillskip_skip { 0pt plus \dim_eval:n { \linewidth - 3em } }
+ \skip_gset_eq:NN \parfillskip \g_minimclass_parfillskip_skip
+ }
}
\hook_gput_code:nnn { begindocument/before } { minimclass }
{
- \@ifpackageloaded { biblatex }
+ \IfPackageLoadedTF { biblatex }
{
\PassOptionsToPackage { biblatex } { embrac }
} {}
diff --git a/macros/latex/contrib/verifiche/verifiche-example.pdf b/macros/latex/contrib/verifiche/verifiche-example.pdf
index 191c055935..b6ae252e2e 100644
--- a/macros/latex/contrib/verifiche/verifiche-example.pdf
+++ b/macros/latex/contrib/verifiche/verifiche-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/verifiche/verifiche-example.tex b/macros/latex/contrib/verifiche/verifiche-example.tex
index ec32c5f405..b399be3644 100644
--- a/macros/latex/contrib/verifiche/verifiche-example.tex
+++ b/macros/latex/contrib/verifiche/verifiche-example.tex
@@ -167,7 +167,7 @@ Quali delle seguenti equazioni descrive il moto rettilineo uniforme?\par
\begin{esercizio}
\lipsum[2]\\[1em]
-\openquestion[type=squares, width=8cm, height=6cm, linecolor=orange]{\lipsum[2]}
+\openquestion[type=lines, width=8cm, height=6cm, linecolor=orange]{\lipsum[2]}
\end{esercizio}
diff --git a/macros/latex/contrib/verifiche/verifiche.dtx b/macros/latex/contrib/verifiche/verifiche.dtx
index 90f9978a64..de03d7052a 100644
--- a/macros/latex/contrib/verifiche/verifiche.dtx
+++ b/macros/latex/contrib/verifiche/verifiche.dtx
@@ -16,7 +16,7 @@
%
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}
-%<package>\ProvidesPackage{verifiche} [2022/03/10 v5.0 .dtx verifiche file]
+%<package>\ProvidesPackage{verifiche} [2022/06/16 v5.1 .dtx verifiche file]
%<*driver>
\documentclass{ltxdoc}
\usepackage[utf8]{inputenc}
@@ -70,7 +70,7 @@
%</driver>
% \fi
%
-% \CheckSum{863}
+% \CheckSum{914}
% \changes{v1.0}{2020/06/14}{Initial version.}
% \changes{v2.0}{2020/06/26}{Better performance in exercise environment.}
% \changes{v2.1}{2020/06/30}{Introduced closedquestionitem to control |item| symbol.}
@@ -82,6 +82,7 @@
% \changes{v4.3}{2022/02/10}{Move |parindent{0pt}| inside the environment.}
% \changes{v4.4}{2022/03/10}{Minor update. Fixed labels issues.}
% \changes{v5.0}{2022/05/18}{Major update. Remove some unnecessary packages. Remove spurious space in closedquestion environment. Add a starred version of closedquestion environment. Add the possibility to add local label to soluzione environment. Add a new command: makecolumn.}
+% \changes{v5.1}{2022/06/16}{Minor update. Clean the code for printheading command; better appearance for openquestion command.}
% \GetFileInfo{verifiche.sty}
% \DoNotIndex{\newcommand,\newenvironment,\def,\begin,\end,\par}
% \DoNotIndex{\DeclareOption,\ExecuteOptions,\ProcessOptions,\RequirePackage}
@@ -120,7 +121,8 @@
%
% \title{Il pacchetto \textsf{verifiche}
% \thanks{Questo documento corrisponde al pacchetto \textsf{verifiche}~\fileversion,
-% in data~\filedate.}}
+% in data~\filedate.}
+%\\ {\normalsize Version: \fileversion}}
% \author{Francesco Raccanello\\ \texttt{raccanello.francesco@gmail.com}}
%
% \maketitle
@@ -732,7 +734,7 @@ dell'esercizio somministrato
%Il comando gestisce alcune opzioni:\\
%
%\begin{tabular}{ll}
-%|type|  & accetta due valori: \texttt{lines} e \texttt{squares} (default: |lines|)\\
+%|type|  & accetta due valori: \texttt{lines} e \texttt{squares} (default: |squares|)\\
%|width| & gestisce la dimensione orizzontale del campo di testo (default: 12 cm)\\
%|height| & gestisce la dimensione verticale del campo di testo (default: 20 cm)\\
%|spacedim|& gestisce la dimensione dei quadretti o delle linee (default: 0.5 cm)\\
@@ -749,7 +751,7 @@ dell'esercizio somministrato
Prova del testo della soluzione
della domanda aperta
}}
-{\openquestion[width=4cm, height=2cm]{Prova del testo della soluzione della domanda aperta}}
+{\vspace*{1em}\openquestion[width=4cm, height=2cm]{Prova del testo della soluzione della domanda aperta}}
% \iffalse
%</example>
% \fi
@@ -758,11 +760,11 @@ dell'esercizio somministrato
%<*example>
% \fi
\example
-{\openquestion[type=squares]{
+{\openquestion[type=lines]{
Prova del testo della soluzione
della domanda aperta
}}
-{\openquestion[type=squares, width=4cm, height=2cm]{Prova del testo della soluzione della domanda aperta}}
+{\vspace*{1em}\openquestion[type=lines, width=4cm, height=2cm]{Prova del testo della soluzione della domanda aperta}}
% \iffalse
%</example>
% \fi
@@ -1094,6 +1096,7 @@ dell'esercizio somministrato
\newif\ifsolutionscolor\solutionscolorfalse
\newif\ifcandidatename\candidatenametrue
\newif\iftesttype\testtypetrue
+\newif\ifshowinstructiondelimiter\showinstructiondelimiterfalse
\newif\ifprintedheading\printedheadingfalse
\newif\ifexercisesnumbered\exercisesnumberedtrue
\newif\ifshowmarginexercise\showmarginexercisefalse
@@ -1147,6 +1150,9 @@ dell'esercizio somministrato
\setlength{\classrulerlength}{.1\textwidth}
\setlength{\daterulerlength}{.15\textwidth}
\setlength{\ptrulerlength}{1cm}
+\newlength{\verifiche@remainingvspace}
+\newlength{\verifiche@remaininghspace}
+\newlength{\spacedim}
\setlength{\columnseparation}{\fill}
% \end{macrocode}
%
@@ -1207,11 +1213,13 @@ dell'esercizio somministrato
\newcommand{\institute}[1]{%
\gdef\@institute{#1}}
\newcommand{\duration}[2][\@durationlabeldefault]{%
- \gdef\@durationpreamble{#1}\gdef\@duration{#2}}
+ \gdef\@durationpreamble{#1}\gdef\@duration{#2}%
+ \showinstructiondelimitertrue}%
\newcommand{\testtype}[1]{%
\gdef\@testtype{#1}}
\newcommand{\instruction}[1]{%
- \gdef\@instruction{#1}}
+ \gdef\@instruction{#1}%
+ \showinstructiondelimitertrue}
\newcommand{\asyear}[2][\@asyearlabeldefault]{%
\gdef\@asyearpreamble{#1}\gdef\@asyear{#2}}
% \end{macrocode}
@@ -1231,15 +1239,15 @@ dell'esercizio somministrato
% \end{macrocode}
% \begin{macrocode}
\newcommand{\asyearfont}[1]{%
- \hspace*{\fill} #1\hspace*{\fill}\\[.5em]}
+ \hspace*{\fill} #1\hspace*{\fill}}
% \end{macrocode}
% \begin{macrocode}
\newcommand{\testtypefont}[1]{%
- \hspace*{\fill}\scshape\huge#1\hspace*{\fill}}
+ \bgroup\hspace*{\fill}\scshape\huge#1\hspace*{\fill}\egroup}
% \end{macrocode}
% \begin{macrocode}
\newcommand{\instructiondelimiter}{%
- \rule{\textwidth}{.5pt}}
+ \hrulefill}
% \end{macrocode}
% \begin{macrocode}
\newcommand{\instrunctionfont}[1]{%
@@ -1247,7 +1255,7 @@ dell'esercizio somministrato
% \end{macrocode}
% \begin{macrocode}
\newcommand{\durationfont}[1]{%
- \hspace*{\fill}\@durationpreamble\space\bfseries #1\hspace*{\fill}}
+ \bgroup\hspace*{\fill}\@durationpreamble\space\bfseries #1\hspace*{\fill}\egroup}
% \end{macrocode}
% \begin{macrocode}
\newcommand{\@header@candidatename}{%
@@ -1368,6 +1376,21 @@ dell'esercizio somministrato
#2}
\chardef\ltx@zero=0%
% \end{macrocode}
+%\iffalse
+%% init vertical/horizontal remaining space
+%\fi
+% \begin{macrocode}
+\newcommand{\verifiche@initremainingvspace}{%
+ \pgfmathsetlength{\verifiche@remainingvspace}{%
+ floor((\dimexpr\pagegoal-\pagetotal-.5\baselineskip\relax)/\spacedim)*\spacedim%
+ }%
+}%
+\newcommand{\verifiche@initremaininghspace}{%
+ \pgfmathsetlength{\verifiche@remaininghspace}{%
+ floor(\linewidth/\spacedim)*\spacedim%
+ }%
+}%
+% \end{macrocode}
%\paragraph{Page styles}
%The package define two new pagestyle: \texttt{mainverifiche} and \texttt{verifiche}. The former is used if \verb|\@institute| is defined (or if \verb|noinstitute| is not declared) as \verb|\thispagestyle| mode. The latter can be used by the user and print, on the odd pages, the name, date and class of the candidate.
@@ -1392,11 +1415,13 @@ dell'esercizio somministrato
% \begin{macrocode}
\newcommand{\printheading}{%
{\ifdefined\@institute\ifinstitute\thispagestyle{mainverifiche}\fi\else\thispagestyle{plain}\fi}%
- {\ifcandidatename\@header\\[1em]\fi}%
- {\ifdefined\@asyear\ifasyear \asyearfont{\@asyearpreamble\space\@asyear}\fi\fi}%
- {\ifdefined\@testtype\iftesttype\testtypefont{\@testtype}\fi\fi}\\%
- {\ifdefined\@instruction\ifinstruction\instructiondelimiter\\{\instrunctionfont{\@instruction}}\\%
- \ifdefined\@duration\ifduration{\durationfont\@duration\\}\fi\fi\instructiondelimiter\fi\fi}%
+ {\ifcandidatename\@header\par\vspace{\baselineskip}\fi}%
+ {\ifdefined\@asyear\ifasyear\asyearfont{\@asyearpreamble\space\@asyear}\par\vspace{\baselineskip}\fi\fi}%
+ {\ifdefined\@testtype\iftesttype\testtypefont{\@testtype}\par\fi\fi}%
+ {\ifshowinstructiondelimiter\instructiondelimiter\par\fi}%
+ {\ifdefined\@instruction\ifinstruction\instrunctionfont{\@instruction}}\par\fi\fi%
+ {\ifdefined\@duration\ifduration\durationfont\@duration\par\fi\fi}%
+ {\ifshowinstructiondelimiter\instructiondelimiter\par\fi}%
}
% \end{macrocode}
@@ -1648,11 +1673,11 @@ dell'esercizio somministrato
%\begin{macro}{\openquestion}
%The |\openquestion| use key-value options defined as following presented.
% \begin{macrocode}
-\define@key{openquestion}{width}[\linewidth]{\def\openquestionwidth{#1}}
-\define@key{openquestion}{height}[19cm]{\def\openquestionheight{#1}}
-\define@key{openquestion}{spacedim}[0.5cm]{\def\spacedim{#1}}
-\define@key{openquestion}{linecolor}[gray]{\def\openquestionlinecolor{#1}}
-\define@choicekey*+{openquestion}{type}[\val\nr]{lines, squares}[lines]{%
+\define@key{openquestion}{spacedim}[0.5cm]{\setlength{\spacedim}{#1}\verifiche@initremainingvspace\verifiche@initremaininghspace}%
+\define@key{openquestion}{height}[\the\verifiche@remainingvspace]{\def\openquestionheight{#1}}%
+\define@key{openquestion}{width}[\the\verifiche@remaininghspace]{\def\openquestionwidth{#1}}%
+\define@key{openquestion}{linecolor}[gray]{\def\openquestionlinecolor{#1}}%
+\define@choicekey*+{openquestion}{type}[\val\nr]{lines, squares}[squares]{%
\ifcase\nr\relax%
% lines
\openquestionsquaredfalse\openquestionlinestrue%
@@ -1667,33 +1692,36 @@ dell'esercizio somministrato
%Depending on the |type| of the |\openquestion|, squared or ruled background is composed and in the foreground is reproduce the text of the argument of the command (in the "solutions mode").
% \begin{macrocode}
\NewDocumentCommand{\openquestion}{o m}{%
- \setkeys{openquestion}{type, width, height, linecolor, spacedim} %init
+ \setkeys{openquestion}{type, spacedim, width, height, linecolor} %init
\IfValueT{#1}{\setkeys{openquestion}{#1}}%
- \ifopenquestionsquared% if squared open question
+ \vspace{-\baselineskip}%
+ \begin{center}
+ \ifopenquestionsquared% if squared open question
\begin{tikzpicture}%
- \draw[step=\spacedim, \openquestionlinecolor]%
+ \draw[step=\the\spacedim, \openquestionlinecolor]%
(0,0) grid (\openquestionwidth,-\openquestionheight);%
\node[%
anchor=base west,%
align=left, text width=\openquestionwidth,%
inner sep=0cm,%
font=\solutionfont,%
- execute at begin node=\setlength{\baselineskip}{\spacedim}]%
- at (0, -\spacedim){\ifsol#2\fi};
+ execute at begin node=\setlength{\baselineskip}{\the\spacedim}]%
+ at (0, -\the\spacedim){\ifsol#2\fi};
\end{tikzpicture}%
\else% if lined open question
\begin{tikzpicture}%
- \pgfmathparse{int(\openquestionheight/\spacedim)}%
+ \pgfmathparse{int(\openquestionheight/\the\spacedim)}%
\foreach \y in {1, ..., \pgfmathresult}%
- \draw[\openquestionlinecolor] (0, -\y*\spacedim) -- +(\openquestionwidth,0);%
+ \draw[\openquestionlinecolor] (0, -\y*\the\spacedim) -- +(\openquestionwidth,0);%
\node[%
anchor=base west,align=left,%
text width=\openquestionwidth,%
inner sep=0cm, font=\solutionfont,%
- execute at begin node=\setlength{\baselineskip}{\spacedim}]%
- at (0, -\spacedim){\ifsol#2\fi};%
+ execute at begin node=\setlength{\baselineskip}{\the\spacedim}]%
+ at (0, -\the\spacedim){\ifsol#2\fi};%
\end{tikzpicture}%
\fi%
+ \end{center}%
}
% \end{macrocode}
%\end{macro}
diff --git a/macros/latex/contrib/verifiche/verifiche.pdf b/macros/latex/contrib/verifiche/verifiche.pdf
index 63cb42a4d1..47ae4949a2 100644
--- a/macros/latex/contrib/verifiche/verifiche.pdf
+++ b/macros/latex/contrib/verifiche/verifiche.pdf
Binary files differ
diff --git a/macros/latex/contrib/xkeyval/README b/macros/latex/contrib/xkeyval/README
index bfae33636a..52c508ae06 100644
--- a/macros/latex/contrib/xkeyval/README
+++ b/macros/latex/contrib/xkeyval/README
@@ -1,87 +1,87 @@
-xkeyval v2.8
-------------
-
-This package is an extension of the keyval package by David Carlisle
-and offers additional macros for setting keys and declaring and
-setting class or package options. This distribution also includes
-the following additional packages:
-
-xkvview v1.4a : viewer utility for package programmers
-xkvltxp v1.3 : LaTeX kernel patch to allow expandable macros in
- package options
-pst-xkey v1.6 : specialization of the xkeyval package for PSTricks
- packages
-
-See for more information the pdf documentation of this package.
-
-
-Installation
-------------
-
-First check whether this package can be installed by the
-distribution that you use, since that will simplify installation.
-For manual installations, the structure and supposed location in a
-TDS compliant TeX-tree is shown in the overview below. In words,
-keyval.tex, pst-xkey.tex, xkvutils.tex, xkvtxhdr.tex and xkeyval.tex
-should be available to TeX and LaTeX; pst-xkey.sty, xkeyval.sty,
-xkvview.sty and xkvltxp.sty should be available to LaTeX. The package
-to which a specific run file belongs, is denoted in between square
-brackets. Don't forget to update your filename database after installing
-the files.
-
-CTAN:/macros/latex/contrib/xkeyval: official location
- |
- |- readme : should not be installed
- |- doc
- | `- xkeyval.pdf : /doc/latex/xkeyval
- |- run
- | |- keyval.tex : /tex/generic/xkeyval [xkeyval]
- | |- xkvutils.tex : /tex/generic/xkeyval [xkeyval]
- | |- pst-xkey.sty : /tex/latex/xkeyval [pst-xkey]
- | |- pst-xkey.tex : /tex/generic/xkeyval [pst-xkey]
- | |- xkeyval.sty : /tex/latex/xkeyval [xkeyval]
- | |- xkeyval.tex : /tex/generic/xkeyval [xkeyval]
- | |- xkvview.sty : /tex/latex/xkeyval [xkvview]
- | |- xkvltxp.sty : /tex/latex/xkeyval [xkvltxp]
- | `- xkvtxhdr.tex : /tex/generic/xkeyval [xkeyval]
- `- source
- `- xkeyval.dtx : /source/latex/xkeyval
-
-The package includes pregenerated run and doc files, but you can
-reproduce them from the source if necessary. See the first lines
-of xkeyval.dtx for information how to do this. Example files can
-be produced by running the file xkeyval.dtx with LaTeX once.
-
-See the documentation of your LaTeX distribution or the TeX
-Frequently Asked Questions for more information on installing
-xkeyval into your LaTeX distribution
-(http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages).
-
-
-License
--------
-
-Copyright (C) 2004-2020 Hendri Adriaens
-
-This work may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3
-of this license or (at your option) any later version.
-The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2003/12/01 or later.
-
-This work has the LPPL maintenance status "maintained".
-
-This Current Maintainer of this work is Hendri Adriaens.
-
-This work consists of the file xkeyval.dtx and derived files
-keyval.tex, xkvtxhdr.tex, xkeyval.sty, xkeyval.tex, xkvview.sty,
-xkvltxp.sty, xkvutils.tex, pst-xkey.tex, pst-xkey.sty, xkveca.cls,
-xkvecb.cls, xkvesa.sty, xkvesb.sty, xkvesc.sty, xkvex1.tex,
-xkvex2.tex, xkvex3.tex and xkvex4.tex.
-
-The following files constitute the xkeyval bundle and must be
-distributed as a whole: readme, xkeyval.pdf, keyval.tex,
-pst-xkey.sty, pst-xkey.tex, xkeyval.sty, xkeyval.tex, xkvview.sty,
-xkvltxp.sty, xkvtxhdr.tex, xkvutils.tex, pst-xkey.dtx and xkeyval.dtx.
+xkeyval v2.9
+------------
+
+This package is an extension of the keyval package by David Carlisle
+and offers additional macros for setting keys and declaring and
+setting class or package options. This distribution also includes
+the following additional packages:
+
+xkvview v1.4a : viewer utility for package programmers
+xkvltxp v1.3 : LaTeX kernel patch to allow expandable macros in
+ package options
+pst-xkey v1.6 : specialization of the xkeyval package for PSTricks
+ packages
+
+See for more information the pdf documentation of this package.
+
+
+Installation
+------------
+
+First check whether this package can be installed by the
+distribution that you use, since that will simplify installation.
+For manual installations, the structure and supposed location in a
+TDS compliant TeX-tree is shown in the overview below. In words,
+keyval.tex, pst-xkey.tex, xkvutils.tex, xkvtxhdr.tex and xkeyval.tex
+should be available to TeX and LaTeX; pst-xkey.sty, xkeyval.sty,
+xkvview.sty and xkvltxp.sty should be available to LaTeX. The package
+to which a specific run file belongs, is denoted in between square
+brackets. Don't forget to update your filename database after installing
+the files.
+
+CTAN:/macros/latex/contrib/xkeyval: official location
+ |
+ |- readme : should not be installed
+ |- doc
+ | `- xkeyval.pdf : /doc/latex/xkeyval
+ |- run
+ | |- keyval.tex : /tex/generic/xkeyval [xkeyval]
+ | |- xkvutils.tex : /tex/generic/xkeyval [xkeyval]
+ | |- pst-xkey.sty : /tex/latex/xkeyval [pst-xkey]
+ | |- pst-xkey.tex : /tex/generic/xkeyval [pst-xkey]
+ | |- xkeyval.sty : /tex/latex/xkeyval [xkeyval]
+ | |- xkeyval.tex : /tex/generic/xkeyval [xkeyval]
+ | |- xkvview.sty : /tex/latex/xkeyval [xkvview]
+ | |- xkvltxp.sty : /tex/latex/xkeyval [xkvltxp]
+ | `- xkvtxhdr.tex : /tex/generic/xkeyval [xkeyval]
+ `- source
+ `- xkeyval.dtx : /source/latex/xkeyval
+
+The package includes pregenerated run and doc files, but you can
+reproduce them from the source if necessary. See the first lines
+of xkeyval.dtx for information how to do this. Example files can
+be produced by running the file xkeyval.dtx with LaTeX once.
+
+See the documentation of your LaTeX distribution or the TeX
+Frequently Asked Questions for more information on installing
+xkeyval into your LaTeX distribution
+(http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages).
+
+
+License
+-------
+
+Copyright (C) 2004-2022 Hendri Adriaens
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2003/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+This Current Maintainer of this work is Hendri Adriaens.
+
+This work consists of the file xkeyval.dtx and derived files
+keyval.tex, xkvtxhdr.tex, xkeyval.sty, xkeyval.tex, xkvview.sty,
+xkvltxp.sty, xkvutils.tex, pst-xkey.tex, pst-xkey.sty, xkveca.cls,
+xkvecb.cls, xkvesa.sty, xkvesb.sty, xkvesc.sty, xkvex1.tex,
+xkvex2.tex, xkvex3.tex and xkvex4.tex.
+
+The following files constitute the xkeyval bundle and must be
+distributed as a whole: readme, xkeyval.pdf, keyval.tex,
+pst-xkey.sty, pst-xkey.tex, xkeyval.sty, xkeyval.tex, xkvview.sty,
+xkvltxp.sty, xkvtxhdr.tex, xkvutils.tex, pst-xkey.dtx and xkeyval.dtx.
diff --git a/macros/latex/contrib/xkeyval/xkeyval.dtx b/macros/latex/contrib/xkeyval/xkeyval.dtx
index 34a01d898b..6690fbcac6 100644
--- a/macros/latex/contrib/xkeyval/xkeyval.dtx
+++ b/macros/latex/contrib/xkeyval/xkeyval.dtx
@@ -26,7 +26,7 @@
% pst-xkey.sty
%
%% ---------------------------------------
-%% Copyright (C) 2004-2020 Hendri Adriaens
+%% Copyright (C) 2004-2022 Hendri Adriaens
%% ---------------------------------------
%%
%% This work may be distributed and/or modified under the
@@ -188,7 +188,7 @@ macro. \PrintChangesX\PrintIndexX
%
% \GetFileInfo{xkeyval.sty}
%
-% \CheckSum{3040}
+% \CheckSum{3043}
%
%\DoNotIndex{\:,\@,\@@,\@backslashchar,\@ehc,\@empty,\@expandtwoargs,
%\@for,\@forloop,\@fornoop,\@fortmp,\@gobble,\@gobbletwo,\@if,\@ifnch,
@@ -3440,7 +3440,7 @@ macro. \PrintChangesX\PrintIndexX
%<*xkvlatex>
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesPackage{xkeyval}
- [2020/11/20 v2.8 package option processing (HA)]
+ [2022/06/16 v2.9 package option processing (HA)]
% \end{macrocode}
% Initializations. Load |xkeyval.tex|, adjust some catcodes to define
% internal macros and initialize the |\DeclareOptionX*| working macro.
@@ -3682,13 +3682,14 @@ macro. \PrintChangesX\PrintIndexX
% \begin{macro}{\XKV@useoption}
% \marg{option}\\
% Removes an option from |\@unusedoptionlist|.
+% \changes{v2.9}{2022/06/16}{Fix for package options with braces}
% \begin{macrocode}
\def\XKV@useoption#1{%
\def\XKV@resa{#1}%
\XKV@ifundefined{ver@xkvltxp.sty}{}{%
\@onelevel@sanitize\XKV@resa
}%
- \@expandtwoargs\@removeelement{\XKV@resa}%
+ \@expandtwoargs\@removeelement{\expandafter\@remove@eq@value\XKV@resa=\@nil}%
{\@unusedoptionlist}\@unusedoptionlist
}
% \end{macrocode}
@@ -5641,6 +5642,7 @@ actually used. They are not expanded during option processing.\\
\EnableCrossrefs
\RecordChanges
\CodelineIndex
+\AtBeginDocument{\hypersetup{linkcolor=black, citecolor=black, urlcolor=black}}
%</preamble>
%
%<*bib>
diff --git a/macros/latex/contrib/xkeyval/xkeyval.pdf b/macros/latex/contrib/xkeyval/xkeyval.pdf
index 4b1f569696..66ebf16812 100644
--- a/macros/latex/contrib/xkeyval/xkeyval.pdf
+++ b/macros/latex/contrib/xkeyval/xkeyval.pdf
Binary files differ