summaryrefslogtreecommitdiff
path: root/macros/latex/contrib
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-10-04 03:02:56 +0000
committerNorbert Preining <norbert@preining.info>2024-10-04 03:02:56 +0000
commit17be8cfd7dbee2aa0d2ddaf1eec6f1b25e92cd59 (patch)
treea0644a78c8ed1cdec34248cf09b54759605e66e9 /macros/latex/contrib
parent8ec0e25e41ec034923a1f7053775b937b830413f (diff)
CTAN sync 202410040302HEADmaster
Diffstat (limited to 'macros/latex/contrib')
-rw-r--r--macros/latex/contrib/easybook/README.md2
-rw-r--r--macros/latex/contrib/easybook/easybook.dtx8
-rw-r--r--macros/latex/contrib/easybook/easybook.pdfbin646633 -> 646658 bytes
-rw-r--r--macros/latex/contrib/easybook/easybook.tex8
-rw-r--r--macros/latex/contrib/hvfloat/Changes3
-rw-r--r--macros/latex/contrib/hvfloat/doc/hvfloat.pdfbin11613770 -> 11614944 bytes
-rw-r--r--macros/latex/contrib/hvfloat/doc/hvfloat.tex3
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat-0.inc26
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat-1.inc3
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat-2.inc23
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat-3.inc20
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat-4.inc211
-rw-r--r--macros/latex/contrib/hvfloat/latex/hvfloat.sty51
-rw-r--r--macros/latex/contrib/jsonparse/README.md2
-rw-r--r--macros/latex/contrib/jsonparse/jsonparse-doc.pdfbin434185 -> 434099 bytes
-rw-r--r--macros/latex/contrib/jsonparse/jsonparse-doc.tex4
-rw-r--r--macros/latex/contrib/jsonparse/jsonparse.sty120
-rw-r--r--macros/latex/contrib/nfssext-cfr/README.md4
-rw-r--r--macros/latex/contrib/nfssext-cfr/nfssext-cfr.dtx247
-rw-r--r--macros/latex/contrib/nfssext-cfr/nfssext-cfr.pdfbin919965 -> 920135 bytes
-rw-r--r--macros/latex/contrib/useclass/README.md5
-rw-r--r--macros/latex/contrib/useclass/useclass.dtx16
-rw-r--r--macros/latex/contrib/useclass/useclass.pdfbin539822 -> 541385 bytes
23 files changed, 455 insertions, 301 deletions
diff --git a/macros/latex/contrib/easybook/README.md b/macros/latex/contrib/easybook/README.md
index b87e8cafbc..2d2798797e 100644
--- a/macros/latex/contrib/easybook/README.md
+++ b/macros/latex/contrib/easybook/README.md
@@ -1,5 +1,5 @@
# The `easybook` document class
-Easily typesetting Chinese theses or books (v2024ed)
+Easily typesetting Chinese theses or books (v2024ee)
## Abstract
`easybook` is a pure academic template created based on the `ctexbook` book document class. It also has the functions of `book` and `article` document class. Combined with the general framework design of the theses of many universities in China, providing multiple commands and interfaces allows users to easily customize the theses templates. Its basic macro package `easybase` can also be used with `ctex` and standard document classes.
diff --git a/macros/latex/contrib/easybook/easybook.dtx b/macros/latex/contrib/easybook/easybook.dtx
index 87629837bb..bdfebd96d0 100644
--- a/macros/latex/contrib/easybook/easybook.dtx
+++ b/macros/latex/contrib/easybook/easybook.dtx
@@ -14,7 +14,7 @@
% This work has the LPPL maintenance status `maintained'.
%<class|package>\NeedsTeXFormat{LaTeX2e}[2021/11/15]
%<*class>
-\ProvidesExplClass{easybook}{2024/10/02}{2024ed}
+\ProvidesExplClass{easybook}{2024/10/03}{2024ee}
{Easily typesetting Chinese theses or books}
\bool_new:N \l__eb_compile_draft_bool
@@ -301,7 +301,7 @@
%</class>
%<*package>
\RequirePackage{etoolbox}
-\ProvidesExplPackage{easybase}{2024/10/02}{2024ed}
+\ProvidesExplPackage{easybase}{2024/10/03}{2024ee}
{Easily typesetting Chinese theses or books}
\cs_generate_variant:Nn \dim_set:Nn { NV }
@@ -2348,8 +2348,10 @@
{
\cs_undefine:c { c@#1 }
\cs_undefine:c { the#1 }
+ \group_begin:
\exp_args:Nc \providecommand { c@@ckpt }{}
\@removefromreset{#1}{@ckpt}
+ \group_end:
}
\ProvideDocumentCommand{\declarecounter}{mo}
{
@@ -2871,7 +2873,7 @@
}
%</package>
%<*tcolorbox>
-\ProvidesExplFile{eb-tcolorbox.cfg}{2024/10/02}{2024ed}
+\ProvidesExplFile{eb-tcolorbox.cfg}{2024/10/03}{2024ee}
{Customization of tcolorbox for easybook}
\cs_set_protected:Npn \addtotcbstyle #1#2
diff --git a/macros/latex/contrib/easybook/easybook.pdf b/macros/latex/contrib/easybook/easybook.pdf
index 8884707b5f..b89d5741e4 100644
--- a/macros/latex/contrib/easybook/easybook.pdf
+++ b/macros/latex/contrib/easybook/easybook.pdf
Binary files differ
diff --git a/macros/latex/contrib/easybook/easybook.tex b/macros/latex/contrib/easybook/easybook.tex
index ab3b72d1f9..dfd80ec600 100644
--- a/macros/latex/contrib/easybook/easybook.tex
+++ b/macros/latex/contrib/easybook/easybook.tex
@@ -23,8 +23,8 @@
name = easybook,
color-scheme = blue,
title = EASYBOOK使用手册,
- version = v2024ed,
- date = 2024/10/02,
+ version = v2024ee,
+ date = 2024/10/03,
authors = 瞿毅,
info = 简便地排版中文学位论文或书籍,
email = toquyi@163.com,
@@ -659,6 +659,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\end{ctexexam}
\pkg*{geometry} 宏包支持在文档中部改变页面尺寸,提供了新建和保存页面布局的命令。需要注意的是,\pkg*{fancyhdr} 宏包配置页面标记是以文档开始的页面尺寸为参考,若中途更改页面布局后需用标记偏移命令 \cs{fancyhfoffset} 重置参考的尺寸,以确保标记位置正确。
+ \begin{cnltxlist}
\command{newgeometry}[\marg{键值列表}]
在正文中更改页面布局,\meta{键值列表} 为 \pkg*{geometry} 宏包通用接口的各种页面尺寸选项。
\command{restoregeometry}
@@ -680,6 +681,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\fancyhfoffset{0pt}
L2 (loaded)
\end{ctexexam}
+ \end{cnltxlist}
\end{cnltxlist}
\subsection[图表题注]{图表题注\smodule{cap}}
@@ -741,7 +743,6 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
页眉横线默认的粗细,使用 \option{headrule} 选项绘制横线后失效。
\keyval{footnoterulewd}{刚性长度}\Default{0.5pt}
脚注横线默认的粗细,使用 \option{footnoterule} 选项绘制横线后失效。
- \begin{cnltxlist}[itemsep = 0ex]
\command{fancypagestyle}[\marg{风格名}\oarg{基础风格}\marg{风格定义}]
定义名为 \meta{风格名} 的页面风格。\meta{风格定义} 中可包含设置页眉页脚不同位置格式的命令,如果为空则等于 \code{fancy} 风格。如果存在 \meta{基础风格},则在它的基础上进行定义。
\begin{ctexexam}
@@ -754,6 +755,7 @@ $\blacktriangleright$需要注意正确\textbf{编译索引}要增加 \code{-she
\end{ctexexam}
\command{pagestyle}[\marg{风格名}]\Default{fancy}
设置 \meta{风格名} 为当前及之后页的页面风格。
+ \begin{cnltxlist}[itemsep = 0ex]
\command{fancyhead}[\oarg{位置}\marg{内容}]\default{}
\command{fancyfoot}[\oarg{位置}\marg{内容}]
为了确保页面显示正确,使用 \cs{fancyhead} 和 \cs{fancyfoot} 等命令设置页眉页脚时需要在页边距的命令之后。默认设置的是一个名为 \code{fancy} 的页面风格。\pkg*{fancyhdr} 将页眉页脚分成了左中右和奇数页(odd)、偶数页(even)共12个部分,可选参数中 \code{E} 和 \code{O} 代表偶数和奇数,\code{L}、\code{C} 和 \code{R} 代表左、中和右部分。单面打印时,含有偶数位置的命令无效。
diff --git a/macros/latex/contrib/hvfloat/Changes b/macros/latex/contrib/hvfloat/Changes
index ac9450c444..a44bbdc787 100644
--- a/macros/latex/contrib/hvfloat/Changes
+++ b/macros/latex/contrib/hvfloat/Changes
@@ -1,4 +1,7 @@
hvfloat.sty:
+2.51 2024-10-02 - added option nonFloatTopSkip, preset to 2pt like \interlineskip
+ only valid for nonFloats and caption not on top
+2.50 2024-04-06 - first try for a check on page beginning
2.49 2024-03-17 - bugfix for checkoddpage and FULLPAGE option
2.48 2024-03-03 - added option fboxLines to get patial lines of \fbox
(package fbox)
diff --git a/macros/latex/contrib/hvfloat/doc/hvfloat.pdf b/macros/latex/contrib/hvfloat/doc/hvfloat.pdf
index eb14a418f5..df6892daae 100644
--- a/macros/latex/contrib/hvfloat/doc/hvfloat.pdf
+++ b/macros/latex/contrib/hvfloat/doc/hvfloat.pdf
Binary files differ
diff --git a/macros/latex/contrib/hvfloat/doc/hvfloat.tex b/macros/latex/contrib/hvfloat/doc/hvfloat.tex
index 169270c2d4..846f363bc1 100644
--- a/macros/latex/contrib/hvfloat/doc/hvfloat.tex
+++ b/macros/latex/contrib/hvfloat/doc/hvfloat.tex
@@ -1,4 +1,4 @@
-%% $Id: hvfloat.tex 878 2024-03-16 20:49:50Z herbert $
+%% $Id: hvfloat.tex 1014 2024-10-03 08:22:14Z herbert $
%\listfiles
\errorcontextlines=100
\documentclass[twoside,paper=a4,usegeometry,index=totoc]{scrartcl}
@@ -401,6 +401,7 @@ There are the following keywords:
\Lkeyword{nonFloat} & false & \rowvsp The object isn't put in a floating
environment, but printed as standard text with an additional caption.
\rownl The float counter is increased as usual and can be referenced.\\
+\Lkeyword{nonFloatTopSkip} & 2pt & Skip between text and object with caption below for nonFloat objects.\\
\Lkeyword{wide} & false & \rowvsp The float can use
\Ldim{textwidth}$\,+\,$\Ldim{marginparwidth} as horizontal width.\\
\Lkeyword{inMargin} & false & \rowvsp Put object and frame into the margin.\\
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat-0.inc b/macros/latex/contrib/hvfloat/latex/hvfloat-0.inc
index e4d8b07cf0..74bddea179 100644
--- a/macros/latex/contrib/hvfloat/latex/hvfloat-0.inc
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat-0.inc
@@ -1,10 +1,11 @@
%% Herbert Voss <hvoss@tug.org>
-%% Copyright (C) 2023
+%% Copyright (C) 2024
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
%% in directory macros/latex/base/lppl.txt.
%%
+%% width=2\paperwidth, height=variable
%%
%% ||1in+evenside --- |1in+oddside ---|| Image is 2\paperwidth wide, height is variable or user set
%
@@ -26,6 +27,7 @@
\let\c@hv@tempCNTtabA\c@table
\checkoddpage
\ifoddpage
+ \test@typeout{>>>>Befehl auf ungerader Seite, kein Test auf Anfang für Doppelseite!}%
\if@twocolumn
\if@firstcolumn
\afterpage{afterpage{\do@hvFloat@doubleFullPage@ObjectAndCaption}}% 2nd Col and newpage
@@ -37,21 +39,27 @@
\fi % end \if@twocolumn
\else% evenpage
%---------
+ \global\savebox{\hvObjectBox}{\ifhv@useOBox\usebox{\hvOBox}\else\hv@floatObject\fi}%
+ %\typeout{Boxmaße: \the\wd\hvObjectBox;\the\ht\hvObjectBox}%
%\typeout{>>>>Setze hv@atPageBeginfalse}%
\global\hv@atPageBeginfalse
+ \hv@float@head=\the\dimexpr+1in+\topmargin+\headheight+\headsep
+ \hv@float@foot=\the\dimexpr\paperheight-\hv@float@head-\textheight
+ %\typeout{Kopf: \the\hv@float@head}%
+ %\typeout{Fuß: \the\hv@float@foot}%
\stepcounter{hvfloat@ref}%
\zsavepos{\thehvfloat@ref}%
- \@tempy=\dimexpr-\zposy{\thehvfloat@ref} sp+\paperheight-1in-\topmargin-\headheight-\headsep\relax
+ \@tempy=\dimexpr\paperheight-\zposy{\thehvfloat@ref} sp-1in-\topmargin-\headheight-\headsep\relax
\@tempx=\dimexpr-\zposx{\thehvfloat@ref} sp+\evensidemargin+1in\relax
- %\typeout{>>>>\the\@tempx >>>>>\the\@tempy >>>>\f@size}%
- \ifdim\@tempy > \dimexpr\f@size pt + 2pt
- %\typeout{>>>>Case 0, Leere Box oder Text auf der Seite \thehvfloat@ref}%
+ \ifdim\@tempy > \dimexpr\f@size pt + 2pt % Test, ob Abbildung oben
+ \expandafter\ifdefined\csname HV@float@ref@\thehvfloat@ref\endcsname % already on top from last run?
+ \global\hv@atPageBegintrue
+ \immediate\write\@auxout{\expandafter\gdef\csname HV@float@ref@\thehvfloat@ref\endcsname{1}}%
+ \fi
\else
- \ifdim\@tempx = \z@
- %\typeout{>>>>Case 2, Absolut oben links auf der Seite \thehvfloat@ref }%
+ \ifdim\@tempx = \z@%
\global\hv@atPageBegintrue
- \else
- %\typeout{>>>>Case 1, Oben auf der Seite \thehvfloat@ref, aber nicht am Anfang der Zeile}%
+ \immediate\write\@auxout{\expandafter\gdef\csname HV@float@ref@\thehvfloat@ref\endcsname{1}}%
\fi
\fi
%---------
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat-1.inc b/macros/latex/contrib/hvfloat/latex/hvfloat-1.inc
index effd6aec61..3eda3db0f1 100644
--- a/macros/latex/contrib/hvfloat/latex/hvfloat-1.inc
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat-1.inc
@@ -1,10 +1,11 @@
%% Herbert Voss <hvoss@tug.org>
-%% Copyright (C) 2023
+%% Copyright (C) 2024
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
%% in directory macros/latex/base/lppl.txt.
%%
+%% width=2\paperwidth, height=\paperheight
%%
%% ||1in+evenside --- |1in+oddside ---||
%
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat-2.inc b/macros/latex/contrib/hvfloat/latex/hvfloat-2.inc
index a6c498e2b3..dc4879f4e1 100644
--- a/macros/latex/contrib/hvfloat/latex/hvfloat-2.inc
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat-2.inc
@@ -1,11 +1,14 @@
%%
%% Herbert Voss <hvoss@tug.org>
-%% Copyright (C) 2023
+%% Copyright (C) 2024
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
%% in directory macros/latex/base/lppl.txt.
%%
+%% width=2\textwidth+\leftmargin+\rightmargin height=variable
+%% _Without_ additional text on the doublepage
+%%
%% ||1in+evenside --- |1in+oddside ---||
%
@@ -34,24 +37,28 @@
\hvfloat@typeout{do@hvFloat@doublePAGE: evenpage}%
%---------
\hv@atPageBeginfalse
- \stepcounter{hvfloat@ref}%
+% \stepcounter{hvfloat@ref}%
\zsavepos{\thehvfloat@ref}%
\@tempy=\dimexpr-\zposy{\thehvfloat@ref} sp+\paperheight-1in-\topmargin-\headheight-\headsep\relax
\@tempx=\dimexpr-\zposx{\thehvfloat@ref} sp+\evensidemargin+1in\relax
- %\typeout{>>>>\the\@tempx >>>>>\the\@tempy >>>>\f@size}%
+ \ifhv@test\marginnote{>>\the\@tempx >>\the\@tempy >>\f@size}\fi
\ifdim\@tempy > \z@
- %\typeout{>>>>Case 0, Leere Box oder Text auf der Seite \thehvfloat@ref}%
+ \test@typeout{>>>>Case 0, Leere Box oder Text auf der Seite \thehvfloat@ref}%
\ifdim\@tempx < \z@
- %\typeout{>>>>Case 0-1, Text oben auf der Seite \thehvfloat@ref}%
+ \test@typeout{>>>>Case 0-1, Text oben auf der Seite \thehvfloat@ref}%
+ \typeout{>>>>>-2.inc NEUER TEST: \the\@tempy; \the\ht\hvObjectBox}%
+ \ifdim\@tempy=\ht\hvObjectBox % Annnahme, dass nur die Abbildung oben ist
+ \hv@atPageBegintrue
+ \fi
\else
- %\typeout{>>>>Case 0-2, Absolut oben links auf der Seite \thehvfloat@ref}%
+ \test@typeout{>>>>Case 0-2, Absolut oben links auf der Seite \thehvfloat@ref}%
\hv@atPageBegintrue
\fi
\else
\ifdim\@tempx > \z@
- %\typeout{>>>>Case 1, Oben auf der Seite \thehvfloat@ref, aber nicht am Anfang der Zeile}%
+ \test@typeout{>>>>Case 1, Oben auf der Seite \thehvfloat@ref, aber nicht am Anfang der Zeile}%
\else
- %\typeout{>>>>Case 2, Absolut oben links auf der Seite \thehvfloat@ref }%
+ \test@typeout{>>>>Case 2, Absolut oben links auf der Seite \thehvfloat@ref }%
\hv@atPageBegintrue
\fi
\fi
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat-3.inc b/macros/latex/contrib/hvfloat/latex/hvfloat-3.inc
index d3544cbe3e..f48ecab1ec 100644
--- a/macros/latex/contrib/hvfloat/latex/hvfloat-3.inc
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat-3.inc
@@ -1,10 +1,12 @@
%% Herbert Voss <hvoss@tug.org>
-%% Copyright (C) 2023
+%% Copyright (C) 2024
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
%% in directory macros/latex/base/lppl.txt.
%%
+%% width=2\textwidth+\leftmargin+\rightmargin height=variable
+%% _With_ additional text on the doublepage
%%
%% ------------------------------------- the doublepage obejcts ---------------------------
%% ||1in+evenside --- |1in+oddside ---||
@@ -96,21 +98,23 @@
\fi
\else% we have an even page
\hvfloat@typeout{do@hvFloat@doublePage:evenpage -> (\thepage)}%
- %\typeout{>>>>Setze hv@atPageBeginfalse}%
+ \test@typeout{>>>>Setze hv@atPageBeginfalse}%
\global\hv@atPageBeginfalse
- \stepcounter{hvfloat@ref}%
+% \stepcounter{hvfloat@ref}%
\zsavepos{\thehvfloat@ref}%
\@tempy=\dimexpr-\zposy{\thehvfloat@ref} sp+\paperheight-1in-\topmargin-\headheight-\headsep\relax
\@tempx=\dimexpr-\zposx{\thehvfloat@ref} sp+\evensidemargin+1in\relax
- %\typeout{>>>>\the\@tempx >>>>>\the\@tempy >>>>\f@size}%
+ \ifhv@test\marginnote{>>\the\@tempx >>\the\@tempy >>\f@size}\fi
\ifdim\@tempy > \dimexpr\f@size pt + 2pt % Interlinespace
- %\typeout{>>>>Case 0, Leere Box oder Text auf der Seite \thehvfloat@ref}%
+ \test@typeout{>>>>Case 0, Leere Box oder Text auf der Seite \thehvfloat@ref}%
+ \typeout{>>>>>-3.inc NEUER TEST Y:\the\@tempy; BOX:\the\ht\hvObjectBox}%
+ \ifdim\dimexpr\ht\hvObjectBox-\@tempy < \f@size pt % Annnahme, dass nur die Abbildung oben ist
+ \hv@atPageBegintrue
+ \fi
\else
\ifdim\@tempx = \z@
- %\typeout{>>>>Case 2, Absolut oben links auf der Seite \thehvfloat@ref }%
+ \test@typeout{>>>>Case 2, Absolut oben links auf der Seite \thehvfloat@ref }%
\global\hv@atPageBegintrue
- \else
- %\typeout{>>>>Case 1, Oben auf der Seite \thehvfloat@ref, aber nicht am Anfang der Zeile}%
\fi
\fi
%---------
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat-4.inc b/macros/latex/contrib/hvfloat/latex/hvfloat-4.inc
new file mode 100644
index 0000000000..fe1aa2f20e
--- /dev/null
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat-4.inc
@@ -0,0 +1,211 @@
+%% Herbert Voss <hvoss@tug.org>
+%% Copyright (C) 2024
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+%%
+%% Option FULLPAGE, complete paperarea on _one_ page even/odd
+%%
+%% width=\textwidth+\leftmargin+\rightmargin height=variable --> FULLPAGE
+%% _With_ no additional text on the doublepage
+%%
+%% ------------------------------------- the fullpage obejcts ---------------------------
+%% ||1in+evenside --- |1in+oddside ---||
+%
+%\def\do@@@@hvFloat{% special float page: caption <-> FULLPAGE images
+ \hvfloat@typeout{>>>do@@@@hvFloat: special float page}%
+ \ifx\hvSet@capPos\hv@After \global\hv@@capPos=1
+ \else
+ \ifx\hvSet@capPos\hv@Even \global\hv@@capPos=2
+ \else
+ \ifx\hvSet@capPos\hv@Odd \global\hv@@capPos=3
+ \else
+ \ifx\hvSet@capPos\hv@Inner \global\hv@@capPos=4
+ \else
+ \ifx\hvSet@capPos\hv@Outer \global\hv@@capPos=5
+ \else
+ \ifx\hvSet@capPos\hv@Right \global\hv@@capPos=6% only for twocolumn mode
+ \else
+ \ifx\hvSet@capPos\hv@Left \global\hv@@capPos=7% only for twocolumn mode
+ \else
+ \global\hv@@capPos=0
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \hvfloat@typeout{>>>do@@@@hvFloat: hv@capPos is \the\hv@@capPos}%
+% \checkoddpage
+ \hvfloat@typeout{>>>do@@@@hvFloat: set floattype}%
+ \set@caption@object{\hv@floatType}% set caption and object into a box
+%
+ \ifcase\hv@@capPos% caption before object 0-> _always_ left
+ \hvfloat@typeout{>>>do@@@@hvFloat: setBottomCaption and setPageObject (0)}%
+ \setBottomCaption\setPageObject
+ \or% caption after object 1-> _always_ right
+ \hvfloat@typeout{>>>do@@@@hvFloat: setPageObject and setBottomCaption (1)}%
+ \setPageObject\setBottomCaption
+ \or% caption on even page 2-> left page
+ \ifoddpage
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage-> oddpage/setBottomCaption and setPageObject (2)}%
+ \afterpage{\setBottomCaption\setPageObject}%
+ \else% we are on an even page
+ \hvfloat@typeout{>>>do@@@@hvFloat: evenpage/setBottomCaption and setPageObject (2)}%
+ \setBottomCaption\setPageObject
+ \fi
+ \or% caption on odd page 3->right page
+ \if@twoside
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside and caption on oddpage (3)}%
+ \if@twocolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/twocolumn and caption on oddpage (3)}%
+ \ifoddpage
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/twocolumn/oddpage and caption on oddpage (3)}%
+ \if@firstcolumn% on right side
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/twocolumn/oddpage/firstcolumn and caption on oddpage (3)}%
+ \setBottomCaption\setPageObject
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage->twoside/twocolumn/oddpage/secondcolumn and caption on oddpage (3)}%
+ \afterpage{\setPageObject\setBottomCaption}% start next column
+ \fi
+ \else% left (even) page
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/twocolumn/oddpage and caption on evenpage (3)}%
+ \if@firstcolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage->twoside/twocolumn/evenpage/firstcolumn and caption on oddpage (3)}%
+ \afterpage{\setPageObject\setBottomCaption}% start next column
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/twocolumn/evenage/secondcolumn and caption on oddpage (3)}%
+ \setPageObject\setBottomCaption
+ \fi
+ \fi
+ \else% onecolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/onecolumn and caption on oddpage (3)}%
+ \ifoddpage
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/onecolumn/oddpage and caption on oddpage (3)}%
+ \setPageObject\setBottomCaption
+ \else% even page
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage->twoside/onecolumn/evenpage and caption on oddpage (3)}%
+ \afterpage{\setPageObject\setBottomCaption}%
+ \fi
+ \fi
+ \else% oneside
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside and caption on oddpage (3)}%
+ \if@twocolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside/twocolumn and caption on oddpage (3)}%
+ \ifoddpage
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside/twocolumn/oddpage and caption on oddpage (3)}%
+ \if@firstcolumn% on right side
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside/twocolumn/oddpage/firstcolumn and caption on oddpage (3)}%
+ \setBottomCaption\setPageObject
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside/twocolumn/oddpage/secondcolumn and caption on oddpage (3)}%
+ \setPageObject\setBottomCaption
+ \fi
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside/twocolumn/evenpage and caption on oddpage (3)}%
+ \if@firstcolumn% on left side
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage->oneside/twocolumn/evenpage/firstcolumn and caption on oddpage (3)}%
+ \afterpage{\setPageObject\setBottomCaption}%
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside/twocolumn/evenpage/secondcolumn and caption on oddpage (3)}%
+ \setPageObject\setBottomCaption
+ \fi
+ \fi
+ \else % onecolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside/onecolumn and caption on oddpage (3)}%
+ \ifoddpage
+ \hvfloat@typeout{>>>do@@@@hvFloat: oneside/onecolumn/oddpage and caption on oddpage (3)}%
+ \setBottomCaption\setPageObject%
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage->oneside/onecolumn/evenpage and caption on oddpage (3)}%
+ \afterpage{\setBottomCaption\setPageObject}%
+ \fi
+ \fi
+ \fi
+ \or% caption on the inner column 4->inner
+% \set@caption@object
+ \if@twocolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn and caption on inner column (4)}%
+ \ifoddpage
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/oddpage and caption on inner column (4)}%
+ \if@firstcolumn% on right side
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/oddpage/firstcolumn and caption on inner column (4)}%
+ \setBottomCaption\setPageObject
+ \else % right column on right side
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/oddpage/secondcolumn and caption on inner column (4)}%
+ \setPageObject\setBottomCaption% start next firstcolumn next page
+ \fi
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/evenpage and caption on inner column (4)}%
+ \if@firstcolumn% on left side
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage^2 -> twoside/evenpage/firstcolumn and caption on inner column (4)}%
+ \afterpage{\afterpage{\setBottomCaption\setPageObject}}% start next page/first column
+ \else% left page/column
+ \hvfloat@typeout{>>>do@@@@hvFloat: twoside/evenpage/secondcolumn and caption on inner column (4)}%
+ \setBottomCaption\setPageObject% start on same page/column
+ \fi
+ \fi
+ \else% onecolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: onecolumn and caption on inner column (4)}%
+ \setBottomCaption\setPageObject
+ \fi
+ \or% caption on the outer column 5->outer
+% \set@caption@object
+ \if@twocolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn and caption on outer column (5)}%
+ \ifoddpage
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn/oddpage and caption on outer column (5)}%
+ \if@firstcolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage^2 -> firstcolumn/oddpage/twocolumn and caption on outer column (5)}%
+ \afterpage{\afterpage{\setBottomCaption\setPageObject}}%
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage -> twocolumn/oddpage/secondcolumn and caption on outer column (5)}%
+ \afterpage{\setBottomCaption\setPageObject}%
+ \fi
+ \else% even page (left)
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn/evenpage and caption on outer column (5)}%
+ \if@firstcolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn/evenpage/firstcolumn and caption on outer column (5)}%
+ \setBottomCaption\setPageObject
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn/evenpage/secondolumn and caption on outer column (5)}%
+%%% !!!! to-do: !!!!
+ \fi
+ \fi
+ \else% onecolumn
+ \setBottomCaption\setPageObject
+ \fi
+ \or% caption after object on same page 6->right for twocolumn
+ \if@twocolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn and caption after object (6)}%
+ \if@firstcolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage -> twocolumn/firstcolumn and caption after object (6)}%
+ \afterpage{\setPageObject\setBottomCaption}%
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn/secondcolumn and caption after object (6)}%
+ \setPageObject\setBottomCaption
+ \fi
+ \else% always caption _after_ object for onecolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: onecolumn and caption after object (6)}%
+ \setPageObject\setBottomCaption
+ \fi
+ \or% caption before object on same page 7->left for twocolumn
+ \if@twocolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn and caption before object (7)}%
+ \if@firstcolumn
+ \hvfloat@typeout{>>>do@@@@hvFloat: twocolumn/firstcolumn and caption before object (7)}%
+ \setBottomCaption\setPageObject
+ \else
+ \hvfloat@typeout{>>>do@@@@hvFloat: afterpage -> twocolumn/secondcolumn and caption before object (7)}%
+ \afterpage{\setBottomCaption\setPageObject}%
+ \fi
+ \else% onecolumn -> same as before
+ \hvfloat@typeout{>>>do@@@@hvFloat: onecolumn and caption before object (7)}%
+ \setBottomCaption\setPageObject
+ \fi
+ \fi
+ \endgroup% startet at main \hvFloat
+%}
+%
diff --git a/macros/latex/contrib/hvfloat/latex/hvfloat.sty b/macros/latex/contrib/hvfloat/latex/hvfloat.sty
index 5c4539a9b2..e7cf47c483 100644
--- a/macros/latex/contrib/hvfloat/latex/hvfloat.sty
+++ b/macros/latex/contrib/hvfloat/latex/hvfloat.sty
@@ -1,4 +1,4 @@
-%% $Id: hvfloat.sty 879 2024-03-17 10:44:09Z herbert $
+%% $Id: hvfloat.sty 1014 2024-10-03 08:22:14Z herbert $
%%
%%
%% IMPORTANT NOTICE:
@@ -16,8 +16,8 @@
%% `hvfloat' offers rotating of captions and objects for floats
%%
\NeedsTeXFormat{LaTeX2e}
-\def\fileversion{2.49}
-\def\filedate{2024/03/17}
+\def\fileversion{2.51}
+\def\filedate{2024/10/02}
\ProvidesPackage{hvfloat}[\filedate\space v\fileversion\space special floating objects (hv)]
\let\hvFloatFileVersion\fileversion
%
@@ -60,6 +60,8 @@
\newdimen\@tempy
\newcounter{hvfloat@testCtr}
\newcounter{hvfloat@ref}
+\newdimen\hv@float@head
+\newdimen\hv@float@foot
\renewcommand\thehvfloat@ref{tmp@\arabic{hvfloat@ref}}
\setcounter{hvfloat@ref}{0}
\newif\ifhv@atPageBegin
@@ -86,6 +88,7 @@
\newlength\hvCapWidth
\newlength\hvWideWidth
\newlength\hvMultiFloatSkip
+\newlength\hvNonFloatTopSkip
\newlength\hvMaxCapWidth
\newlength\hvFloatFullWidth % only for user purpose
\AtBeginDocument{\hvFloatFullWidth=\the\dimexpr\textwidth+\marginparwidth+\marginparsep\relax}
@@ -188,10 +191,14 @@
\define@key{hvSet}{multiFloatSkip}[\normalbaselineskip]{% a width with the unit pt
\setlength\hvMultiFloatSkip{#1}%
}
+\define@key{hvSet}{nonFloatTopSkip}[\medskipamount]{% a topskip for nonfloats with the unit pt
+ \setlength\hvNonFloatTopSkip{#1}%
+}
\define@boolkey{hvSet}[hv@]{useOBox}[true]{}% use of the hvOBox contents
\define@boolkey{hvSet}[hv@]{nonFloat}[true]{}% Do not use float environment
\define@boolkey{hvSet}[hv@]{inMargin}[true]{}% use of the hvOBox contents
\define@boolkey{hvSet}[hv@]{onlyText}[true]{}% Write the caption only as text
+\define@boolkey{hvSet}[hv@]{onlyTextInTOC}[true]{}% caption without number into TOC
\define@boolkey{hvSet}[hv@]{wide}[true]{}% Write the caption only as text
\define@boolkey{hvSet}[hv@]{forceLeft}[true]{}% use only one \afterpage instead of \afterpage{\afterpage{..
\define@boolkey{hvSet}[hv@]{twoColumnCaption}[true]\global\@nameuse{hv@twoColumnCaption#1}{}% Write the caption only as text
@@ -304,7 +311,7 @@
floatPos=, rotAngle=0, capWidth=n, capAngle=0, objectAngle=0,
capPos=bottom, capVPos=center, objectPos=center, capHPos=center,
floatCapSep=5pt, useOBox=false, forceLeft=false,
- onlyText=false, wide=false, fullpage=false, FULLPAGE=false,
+ onlyText=false, onlyTextInTOC=false, wide=false, fullpage=false, FULLPAGE=false,
doubleFULLPAGE=false, doublePage=false, doublePAGE=false,
multiFloat=false,subFloat=false,inMargin=false,
separatorLine,objectFrame=false, fboxLines={ltrb}, fboxSep=0pt,
@@ -312,6 +319,7 @@
capFormat={}, subcapFormat={}, twoColumnCaption=false,
sameHeight=false,
bindCorr=\z@,sepLineskip=0pt,
+ nonFloatTopSkip=\medskipamount,
vFill=false, minTextlines=2,
forceOutput=false, nonFloat=false,
}%
@@ -541,7 +549,6 @@
\def\hvFloat@i*{\@ifnextchar[{\do@hvFloat}{\do@hvFloat[]}}
\def\do@hvFloat[#1]{%
- \ifhv@Debug\marginnote{\textbf{hvFloat}}\fi%
%\marginnote{\textbf{hvFloat}}%
\savebox\hvObjectBox{}%
\begingroup
@@ -568,6 +575,7 @@
{\hv@subcaption@format}%
\fi
\gdef\hv@floatType{figure}% presetting
+ \ifhv@Debug\marginnote{\textbf{hvFloat}}\fi%
\@ifnextchar+{\do@multiFloat}{\hvFloat@ii[#1]}%
}
@@ -642,7 +650,7 @@
\ifhv@capbeside\def\@@temp{1}\else\def\@@temp{0}\fi
\ifhv@sameHeight\global\hv@global@sameHeighttrue\else\global\hv@global@sameHeightfalse\fi
\global\hvSet@bindCorrection=\hvSet@bindCorr% for doublepage objects
- \global\hv@floatCapSep=\hvSet@floatCapSep%
+ \global\hv@floatCapSep=\hvSet@floatCapSep
%
\ifhv@fullpage
\hvfloat@typeout{>>>> do@@hvFloat: fullpage true}%
@@ -662,11 +670,11 @@
\ifhv@doubleFullPage
\hvfloat@typeout{>>>> do@@hvFloat: doubleFullPage true}%
\setlength\hvCapWidth{\textwidth}%
- \expandafter\do@hvFloat@doubleFullPage\@@temp% fullpage with caption under an odd page
+ \expandafter\do@hvFloat@doubleFullPage\@@temp % fullpage with caption under an odd page
\else
\ifhv@doublePAGE
\hvfloat@typeout{>>>> do@@hvFloat: doublePAGE true}%
- \expandafter\do@hvFloat@doublePAGE\@@temp% fullpage with caption rotated or under on an odd page
+ \expandafter\do@hvFloat@doublePAGE\@@temp % fullpage with caption rotated or under on an odd page
\else
\ifhv@doublePage
\hvfloat@typeout{>>>> do@@hvFloat: doublePage true}%
@@ -689,11 +697,15 @@
%
\def\do@@@hvFloat{% no special float page, caption and image on top of each other or side by side
\def\@tempa{90}%
+ \setlength\hvWideWidth{\dimexpr\textwidth+\marginparsep+\marginparwidth-10pt}% Mehr Platz rechts
\ifx\hvSet@rotAngle\@tempa
\setlength\hvMaxCapWidth{\textheight}%
\else
\setlength\hvMaxCapWidth{\hvWideWidth}%
\fi
+ \ifhv@nonFloat
+ \ifx\hvSet@capPos\hv@Top\else\vspace{\hvNonFloatTopSkip}\fi
+ \fi
%
% First we save the object in \hvObjectBox
%
@@ -742,14 +754,12 @@
\ifhv@capbeside
\ifhv@wide
\setlength\hvCapWidth{\hvSet@capWidth\hvWideWidth}%
- \@tempdima=\the\dimexpr\hvWideWidth-\hvObjectWidth-\hv@floatCapSep\relax
+ \@tempdima=\the\dimexpr\hvWideWidth-\hvObjectWidth-\hv@floatCapSep\relax % 2, damit nicht zu dicht am Rand
\else
\setlength\hvCapWidth{\hvSet@capWidth\columnwidth}%
\@tempdima=\the\dimexpr\columnwidth-\hvObjectWidth-\hv@floatCapSep\relax
\fi
- \ifdim\hvCapWidth>\@tempdima
- \hvCapWidth=\@tempdima
- \fi
+ \ifdim\hvCapWidth>\@tempdima \hvCapWidth=\@tempdima\fi
\else
\ifhv@wide
\setlength\hvCapWidth{\hvSet@capWidth\hvWideWidth}%
@@ -768,7 +778,8 @@
% \ifx\relax\hv@caption@format\relax\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi
\ifhv@nonFloat
\ifhv@onlyText
- \hv@longCap
+ \hv@longCap
+ \ifhv@onlyTextInTOC\captionlistentry{\hv@longCap}\fi
\else
\ifx\hv@floatType\hv@figure
\ifx\relax\hv@shortCap\relax
@@ -786,9 +797,10 @@
\fi
\else
\ifhv@onlyText
- \hv@longCap
+ \hv@longCap
+ \ifhv@onlyTextInTOC\captionlistentry{\hv@longCap}\fi
\else
- \expandafter\ifx\hv@longCap\@empty \else
+ \expandafter\ifx\hv@longCap\@empty \else
\let\@captype\hv@floatType
\ifx\hv@shortCap\@empty\caption{\hv@longCap}\else\caption[\hv@shortCap]{\hv@longCap}\fi
\ifx\hv@label\@empty\else\label{\hv@label}\fi
@@ -804,7 +816,8 @@
% \ifx\relax\hv@caption@format\relax\else\expandafter\captionsetup\expandafter{\hv@caption@format}\fi
\ifhv@nonFloat
\ifhv@onlyText
- \hv@longCap
+ \hv@longCap
+ \ifhv@onlyTextInTOC\captionlistentry{\hv@longCap}\fi
\else
\ifx\hv@floatType\hv@figure
\ifx\hv@shortCap\@empty \figcaption{\hv@longCap}\else\figcaption[\hv@shortCap]{\hv@longCap}\fi
@@ -815,7 +828,8 @@
\else
\expandafter\ifx\hv@longCap\@empty \else
\ifhv@onlyText
- \hv@longCap
+ \hv@longCap
+ \ifhv@onlyTextInTOC\captionlistentry{\hv@longCap}\fi
\else
\let\@captype\hv@floatType
\ifx\hv@shortCap\@empty \caption{\hv@longCap}\else\caption[\hv@shortCap]{\hv@longCap}%
@@ -1647,7 +1661,8 @@
\setlength\belowcaptionskip{5pt}%
\setlength\abovecaptionskip{0pt}%
\ifhv@onlyText
- \hv@longCap
+ \hv@longCap
+ \ifhv@onlyTextInTOC\captionlistentry{\hv@longCap}\fi
\else
\edef\@captype{\hv@floatType}%
\expandafter\ifx\expandafter\relax\hv@shortCap\relax
diff --git a/macros/latex/contrib/jsonparse/README.md b/macros/latex/contrib/jsonparse/README.md
index 38d102d4b9..fe146d1b99 100644
--- a/macros/latex/contrib/jsonparse/README.md
+++ b/macros/latex/contrib/jsonparse/README.md
@@ -1,4 +1,4 @@
-![Version 0.9.1](https://img.shields.io/badge/version-0.9.1-blue)
+![Version 0.9.2](https://img.shields.io/badge/version-0.9.2-blue)
![Jason, the JSON parsing horse](https://github.com/jasperhabicht/jsonparse/assets/6378801/ddfddc70-bf5f-4121-ba45-4b9128875d85)
diff --git a/macros/latex/contrib/jsonparse/jsonparse-doc.pdf b/macros/latex/contrib/jsonparse/jsonparse-doc.pdf
index f80b04d0cc..91059d1911 100644
--- a/macros/latex/contrib/jsonparse/jsonparse-doc.pdf
+++ b/macros/latex/contrib/jsonparse/jsonparse-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/jsonparse/jsonparse-doc.tex b/macros/latex/contrib/jsonparse/jsonparse-doc.tex
index 5b643a7af4..1f2259eae0 100644
--- a/macros/latex/contrib/jsonparse/jsonparse-doc.tex
+++ b/macros/latex/contrib/jsonparse/jsonparse-doc.tex
@@ -11,8 +11,8 @@
% This work has the LPPL maintenance status `maintained'.
%
\documentclass[a4paper]{article}
-\def\jsonparsefileversion{0.9.1}
-\def\jsonparsefiledate{21 September 2024}
+\def\jsonparsefileversion{0.9.2}
+\def\jsonparsefiledate{2 October 2024}
\usepackage[T1]{fontenc}
\usepackage{Alegreya}
diff --git a/macros/latex/contrib/jsonparse/jsonparse.sty b/macros/latex/contrib/jsonparse/jsonparse.sty
index 2dd3696e88..916d33d793 100644
--- a/macros/latex/contrib/jsonparse/jsonparse.sty
+++ b/macros/latex/contrib/jsonparse/jsonparse.sty
@@ -10,7 +10,7 @@
%
% This work has the LPPL maintenance status `maintained'.
%
-\ProvidesExplPackage {jsonparse} {2024-09-21} {0.9.1}
+\ProvidesExplPackage {jsonparse} {2024-10-02} {0.9.2}
{JSON Parse}
\bool_new:N \l__jsonparse_debug_mode_bool
@@ -303,17 +303,8 @@
\bool_new:N \l__jsonparse_num_plus_minus_seen_bool
\bool_new:N \l__jsonparse_num_fraction_seen_bool
\bool_new:N \l__jsonparse_num_exponent_seen_bool
-\tl_new:N \l__jsonparse_num_input_tl
-\tl_new:N \l__jsonparse_num_remainder_tl
-\tl_new:N \l__jsonparse_num_input_last_tl
-\bool_new:N \l__jsonparse_num_bool
-\bool_new:N \l__jsonparse_num_zero_seen_bool
-\bool_new:N \l__jsonparse_num_plus_minus_seen_bool
-\bool_new:N \l__jsonparse_num_fraction_seen_bool
-\bool_new:N \l__jsonparse_num_exponent_seen_bool
\clist_const:Nn \c__jsonparse_num_digits_clist {
-\clist_const:Nn \c__jsonparse_num_digits_clist {
0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9
}
@@ -326,18 +317,8 @@
\tl_set:Nn \l__jsonparse_num_remainder_tl { #1 }
\tl_if_empty:NTF \l__jsonparse_num_remainder_tl {
\bool_set_false:N \l__jsonparse_num_bool
-\prg_new_conditional:Npnn \jsonparse_if_num:n #1 { p , T , F , TF } {
- \bool_set_true:N \l__jsonparse_num_bool
- \bool_set_false:N \l__jsonparse_num_zero_seen_bool
- \bool_set_false:N \l__jsonparse_num_plus_minus_seen_bool
- \bool_set_false:N \l__jsonparse_num_fraction_seen_bool
- \bool_set_false:N \l__jsonparse_num_exponent_seen_bool
- \tl_set:Nn \l__jsonparse_num_remainder_tl { #1 }
- \tl_if_empty:NTF \l__jsonparse_num_remainder_tl {
- \bool_set_false:N \l__jsonparse_num_bool
} {
\__jsonparse_parse_num:n {#1}
- \__jsonparse_parse_num:n {#1}
}
\bool_lazy_any:nT {
{ \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { + } }
@@ -345,17 +326,10 @@
{ \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { . } }
{ \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { e } }
{ \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { E } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { + } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { . } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { e } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { E } }
} {
\bool_set_false:N \l__jsonparse_num_bool
- \bool_set_false:N \l__jsonparse_num_bool
}
\bool_if:NTF \l__jsonparse_num_bool {
- \bool_if:NTF \l__jsonparse_num_bool {
\prg_return_true:
} {
\prg_return_false:
@@ -367,61 +341,42 @@
\tl_if_empty:NF \l__jsonparse_num_input_tl {
\cs_if_exist_use:cTF { __jsonparse_parse_num_ \str_head_ignore_spaces:o { \l__jsonparse_num_input_tl } :w } {
\l__jsonparse_num_input_tl \q_stop
-\cs_new:Npn \__jsonparse_parse_num:n #1 {
- \tl_set:Ne \l__jsonparse_num_input_tl { \tl_trim_spaces:e {#1} }
- \tl_if_empty:NF \l__jsonparse_num_input_tl {
- \cs_if_exist_use:cTF { __jsonparse_parse_num_ \str_head_ignore_spaces:o { \l__jsonparse_num_input_tl } :w } {
- \l__jsonparse_num_input_tl \q_stop
} {
\exp_last_unbraced:No
\__jsonparse_parse_num_other:w \l__jsonparse_num_input_tl \q_stop
- \__jsonparse_parse_num_other:w \l__jsonparse_num_input_tl \q_stop
}
}
}
\cs_new:cpn { __jsonparse_parse_num_ + :w } #1 \q_stop {
-\cs_new:cpn { __jsonparse_parse_num_ + :w } #1 \q_stop {
\exp_last_unbraced:No
\__jsonparse_parse_num_plus_minus:w #1 \q_stop
- \__jsonparse_parse_num_plus_minus:w #1 \q_stop
}
\cs_new:cpn { __jsonparse_parse_num_ - :w } #1 \q_stop {
-\cs_new:cpn { __jsonparse_parse_num_ - :w } #1 \q_stop {
\exp_last_unbraced:No
\__jsonparse_parse_num_plus_minus:w #1 \q_stop
- \__jsonparse_parse_num_plus_minus:w #1 \q_stop
}
\cs_new:cpn { __jsonparse_parse_num_ . :w } #1 \q_stop {
-\cs_new:cpn { __jsonparse_parse_num_ . :w } #1 \q_stop {
\exp_last_unbraced:No
\__jsonparse_parse_num_fraction:w #1 \q_stop
- \__jsonparse_parse_num_fraction:w #1 \q_stop
}
\cs_new:cpn { __jsonparse_parse_num_ e :w } #1 \q_stop {
-\cs_new:cpn { __jsonparse_parse_num_ e :w } #1 \q_stop {
\exp_last_unbraced:No
\__jsonparse_parse_num_exponent:w #1 \q_stop
- \__jsonparse_parse_num_exponent:w #1 \q_stop
}
\cs_new:cpn { __jsonparse_parse_num_ E :w } #1 \q_stop {
-\cs_new:cpn { __jsonparse_parse_num_ E :w } #1 \q_stop {
\exp_last_unbraced:No
\__jsonparse_parse_num_exponent:w #1 \q_stop
- \__jsonparse_parse_num_exponent:w #1 \q_stop
}
\clist_map_inline:Nn \c__jsonparse_num_digits_clist {
\cs_new:cpn { __jsonparse_parse_num_ #1 :w } ##1 \q_stop {
-\clist_map_inline:Nn \c__jsonparse_num_digits_clist {
- \cs_new:cpn { __jsonparse_parse_num_ #1 :w } ##1 \q_stop {
\exp_last_unbraced:No
\__jsonparse_parse_num_digit:w ##1 \q_stop
- \__jsonparse_parse_num_digit:w ##1 \q_stop
}
}
@@ -429,18 +384,11 @@
\bool_if:NTF \l__jsonparse_num_plus_minus_seen_bool {
\tl_set:Nn \l__jsonparse_num_remainder_tl { }
\bool_set_false:N \l__jsonparse_num_bool
-\cs_new:Npn \__jsonparse_parse_num_plus_minus:w #1 \q_stop {
- \bool_if:NTF \l__jsonparse_num_plus_minus_seen_bool {
- \tl_set:Nn \l__jsonparse_num_remainder_tl { }
- \bool_set_false:N \l__jsonparse_num_bool
} {
\tl_if_empty:NTF \l__jsonparse_num_input_last_tl {
- \tl_if_empty:NTF \l__jsonparse_num_input_last_tl {
\str_if_eq:enT { \tl_head:n {#1} } { + } {
\tl_set:Nn \l__jsonparse_num_remainder_tl { }
\bool_set_false:N \l__jsonparse_num_bool
- \tl_set:Nn \l__jsonparse_num_remainder_tl { }
- \bool_set_false:N \l__jsonparse_num_bool
}
} {
\bool_lazy_any:nT {
@@ -449,16 +397,9 @@
{ \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { . } }
{ \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { e } }
{ \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { E } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { + } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { . } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { e } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { E } }
} {
\tl_set:Nn \l__jsonparse_num_remainder_tl { }
\bool_set_false:N \l__jsonparse_num_bool
- \tl_set:Nn \l__jsonparse_num_remainder_tl { }
- \bool_set_false:N \l__jsonparse_num_bool
}
}
}
@@ -466,27 +407,16 @@
\tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
\tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
\__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
- \bool_set_true:N \l__jsonparse_num_plus_minus_seen_bool
- \tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
- \tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
- \__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
}
\cs_new:Npn \__jsonparse_parse_num_fraction:w #1 \q_stop {
\bool_if:NTF \l__jsonparse_num_fraction_seen_bool {
\tl_set:Nn \l__jsonparse_num_remainder_tl { }
\bool_set_false:N \l__jsonparse_num_bool
-\cs_new:Npn \__jsonparse_parse_num_fraction:w #1 \q_stop {
- \bool_if:NTF \l__jsonparse_num_fraction_seen_bool {
- \tl_set:Nn \l__jsonparse_num_remainder_tl { }
- \bool_set_false:N \l__jsonparse_num_bool
} {
\tl_if_empty:NTF \l__jsonparse_num_input_last_tl {
\tl_set:Nn \l__jsonparse_num_remainder_tl { }
\bool_set_false:N \l__jsonparse_num_bool
- \tl_if_empty:NTF \l__jsonparse_num_input_last_tl {
- \tl_set:Nn \l__jsonparse_num_remainder_tl { }
- \bool_set_false:N \l__jsonparse_num_bool
} {
\bool_lazy_any:nT {
{ \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { + } }
@@ -494,16 +424,9 @@
{ \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { . } }
{ \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { e } }
{ \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { E } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { + } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { . } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { e } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { E } }
} {
\tl_set:Nn \l__jsonparse_num_remainder_tl { }
\bool_set_false:N \l__jsonparse_num_bool
- \tl_set:Nn \l__jsonparse_num_remainder_tl { }
- \bool_set_false:N \l__jsonparse_num_bool
}
}
}
@@ -513,29 +436,16 @@
\tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
\tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
\__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
- \bool_set_false:N \l__jsonparse_num_zero_seen_bool
- \bool_set_true:N \l__jsonparse_num_plus_minus_seen_bool
- \bool_set_true:N \l__jsonparse_num_fraction_seen_bool
- \tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
- \tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
- \__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
}
\cs_new:Npn \__jsonparse_parse_num_exponent:w #1 \q_stop {
\bool_if:NTF \l__jsonparse_num_exponent_seen_bool {
\tl_set:Nn \l__jsonparse_num_remainder_tl { }
\bool_set_false:N \l__jsonparse_num_bool
-\cs_new:Npn \__jsonparse_parse_num_exponent:w #1 \q_stop {
- \bool_if:NTF \l__jsonparse_num_exponent_seen_bool {
- \tl_set:Nn \l__jsonparse_num_remainder_tl { }
- \bool_set_false:N \l__jsonparse_num_bool
} {
\tl_if_empty:NTF \l__jsonparse_num_input_last_tl {
\tl_set:Nn \l__jsonparse_num_remainder_tl { }
\bool_set_false:N \l__jsonparse_num_bool
- \tl_if_empty:NTF \l__jsonparse_num_input_last_tl {
- \tl_set:Nn \l__jsonparse_num_remainder_tl { }
- \bool_set_false:N \l__jsonparse_num_bool
} {
\bool_lazy_any:nT {
{ \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { + } }
@@ -543,16 +453,9 @@
{ \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { . } }
{ \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { e } }
{ \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { E } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { + } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { . } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { e } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { E } }
} {
\tl_set:Nn \l__jsonparse_num_remainder_tl { }
\bool_set_false:N \l__jsonparse_num_bool
- \tl_set:Nn \l__jsonparse_num_remainder_tl { }
- \bool_set_false:N \l__jsonparse_num_bool
}
}
}
@@ -563,54 +466,33 @@
\tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
\tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
\__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
- \bool_set_false:N \l__jsonparse_num_zero_seen_bool
- \bool_set_false:N \l__jsonparse_num_plus_minus_seen_bool
- \bool_set_true:N \l__jsonparse_num_fraction_seen_bool
- \bool_set_true:N \l__jsonparse_num_exponent_seen_bool
- \tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
- \tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
- \__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
}
\cs_new:Npn \__jsonparse_parse_num_digit:w #1 \q_stop {
-\cs_new:Npn \__jsonparse_parse_num_digit:w #1 \q_stop {
\bool_lazy_any:nTF {
{ \tl_if_empty_p:N \l__jsonparse_num_input_last_tl }
- { \tl_if_empty_p:N \l__jsonparse_num_input_last_tl }
{ \bool_lazy_and_p:nn
{ \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
{ \bool_not_p:n { \l__jsonparse_num_exponent_seen_bool } }
- { \str_if_eq_p:Vn \l__jsonparse_num_input_last_tl { - } }
- { \bool_not_p:n { \l__jsonparse_num_exponent_seen_bool } }
}
} {
\str_if_eq:enT { \tl_head:n {#1} } { 0 } {
\bool_set_true:N \l__jsonparse_num_zero_seen_bool
- \bool_set_true:N \l__jsonparse_num_zero_seen_bool
}
} {
\bool_if:NT \l__jsonparse_num_zero_seen_bool {
\tl_set:Nn \l__jsonparse_num_remainder_tl { }
\bool_set_false:N \l__jsonparse_num_bool
- \bool_if:NT \l__jsonparse_num_zero_seen_bool {
- \tl_set:Nn \l__jsonparse_num_remainder_tl { }
- \bool_set_false:N \l__jsonparse_num_bool
}
}
\tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
\tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
\__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
- \tl_set:Ne \l__jsonparse_num_input_last_tl { \tl_head:n {#1} }
- \tl_set:Ne \l__jsonparse_num_remainder_tl { \tl_tail:n {#1} }
- \__jsonparse_parse_num:n { \l__jsonparse_num_remainder_tl }
}
\cs_new:Npn \__jsonparse_parse_num_other:w #1 \q_stop {
\tl_set:Nn \l__jsonparse_num_remainder_tl { }
\bool_set_false:N \l__jsonparse_num_bool
-\cs_new:Npn \__jsonparse_parse_num_other:w #1 \q_stop {
- \tl_set:Nn \l__jsonparse_num_remainder_tl { }
- \bool_set_false:N \l__jsonparse_num_bool
}
% ===
diff --git a/macros/latex/contrib/nfssext-cfr/README.md b/macros/latex/contrib/nfssext-cfr/README.md
index 66c1c18770..cc73c40237 100644
--- a/macros/latex/contrib/nfssext-cfr/README.md
+++ b/macros/latex/contrib/nfssext-cfr/README.md
@@ -107,8 +107,8 @@ should be filed at
Clea F. Rees
-Version 1.0
-2024-09-18
+Version 1.1
+2024-10-03
=================================================
vim: et:tw=80:sw=2:
diff --git a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.dtx b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.dtx
index 723f108284..919fb67b5f 100644
--- a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.dtx
+++ b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.dtx
@@ -41,7 +41,7 @@
\char_set_catcode_letter:N \:
}
\ExplSyntaxOff
-\ProvidesFileSVN{$Id: nfssext-cfr.dtx 10366 2024-09-18 14:25:21Z cfrees $}[v1.0 \revinfo][\filebase DTX: Extended font selection for NFSS and NNFSS]
+\ProvidesFileSVN{$Id: nfssext-cfr.dtx 10456 2024-10-03 01:19:12Z cfrees $}[v1.1 \revinfo][\filebase DTX: Extended font selection for NFSS and NNFSS]
\DefineFileInfoSVN[nfssext-cfr]
\documentclass[10pt,british]{ltxdoc}
% l3doc loads fancyvrb
@@ -795,7 +795,7 @@
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{svn-prov}
-\ProvidesPackageSVN[\filebase.sty]{$Id: nfssext-cfr.dtx 10366 2024-09-18 14:25:21Z cfrees $}[v1.0 \revinfo{} extensions for NFSS and NNFSS; based on 2003/03/14 v1.2 Experimental NFSS Extensions]
+\ProvidesPackageSVN[\filebase.sty]{$Id: nfssext-cfr.dtx 10456 2024-10-03 01:19:12Z cfrees $}[v1.1 \revinfo{} extensions for NFSS and NNFSS; based on 2003/03/14 v1.2 Experimental NFSS Extensions]
\DefineFileInfoSVN
% \end{macrocode}
% ^^A Paid â defnyddio \GetFileInfoSVN*/\GetFileInfoSVN{} yn y fan hon!!
@@ -851,11 +851,11 @@
% \end{macrocode}
% BEGIN expl pkg option setup
% \begin{macrocode}
-\newif\ifexfs@debug
-\ExplSyntaxOn
-\prop_gput:Nnn \g_msg_module_name_prop { nfssext-cfr } { exfs }
-\keys_define:nn { exfs }
-{
+ \newif\ifexfs@debug
+ \ExplSyntaxOn
+ \prop_gput:Nnn \g_msg_module_name_prop { nfssext-cfr } { exfs }
+ \keys_define:nn { exfs }
+ {
% \end{macrocode}
% \begin{option}{compat}
% \changes{v1.0}{2024-09-16}{%
@@ -864,10 +864,10 @@
% \begin{macro}{\g__exfs_compat_bool}
% Compatibility option.
% \begin{macrocode}
- compat .bool_gset:N = \g__exfs_compat_bool,
- compat .default:n = true,
- compat .initial:n = false,
- compat .usage:n = preamble,
+ compat .bool_gset:N = \g__exfs_compat_bool,
+ compat .default:n = true,
+ compat .initial:n = false,
+ compat .usage:n = preamble,
% \end{macrocode}
% \end{macro}
% \end{option}
@@ -876,9 +876,9 @@
% \changes{v1.0}{2024-09-16}{%
% Add option \texttt{debug}.}
% \begin{macrocode}
- debug .legacy_if_gset:n = exfs@debug,
- debug .initial:n = false,
- debug .default:n = true,
+ debug .legacy_if_gset:n = exfs@debug,
+ debug .initial:n = false,
+ debug .default:n = true,
% \end{macrocode}
% \end{option}
% \begin{option}{force}
@@ -888,63 +888,63 @@
% \begin{macro}{\g__exfs_force_bool}
% Force loading of code for \nfss{} even on newer kernels.
% \begin{macrocode}
- force .bool_gset:N = \g__exfs_force_bool,
- force .default:n = true,
- force .initial:n = false,
- force .usage:n = preamble,
+ force .bool_gset:N = \g__exfs_force_bool,
+ force .default:n = true,
+ force .initial:n = false,
+ force .usage:n = preamble,
% \end{macrocode}
% \end{macro}
% \end{option}
% \begin{macrocode}
-}
+ }
% \end{macrocode}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Joseph Wright: from \file{siunitx.sty} ; \url{https://chat.stackexchange.com/transcript/message/64327823#64327823}
% \begin{macrocode}
-\providecommand \IfFormatAtLeastTF { \@ifl@t@r \fmtversion }
-\IfFormatAtLeastTF { 2022-06-01 }
-{
- \ProcessKeyOptions [ exfs ]
-}{
- \RequirePackage { l3keys2e }
- \ProcessKeysOptions { exfs }
+ \providecommand \IfFormatAtLeastTF { \@ifl@t@r \fmtversion }
+ \IfFormatAtLeastTF { 2022-06-01 }
+ {
+ \ProcessKeyOptions [ exfs ]
+ }{
+ \RequirePackage { l3keys2e }
+ \ProcessKeysOptions { exfs }
% \end{macrocode}
% \begin{macro}{\ProcessKeyOptions}
% \mbox{ }
% \begin{macrocode}
- \NewDocumentCommand \ProcessKeyOptions { o }
- {
- \IfValueTF { #1 } { \ProcessKeysOptions { #1 } }
- { \PackageError{nfssext-cfr}{
- Optional~argument~mandatory~on~kernels~this~old.\MessageBreak
- Please~specify~the~module~whose~keys~should~be~processed
- }{
- \protect\ProcessKeyOptions~only~passes~keys~to~
- \protect\ProcessKeyOptions\MessageBreak
- on~older~kernels~for~the~convenience~of~package~authors.~
- Since~\protect\ProcessKeysOptions\MessageBreak
- takes~an~argument,~the~optional~argument~to~
- \protect\ProcessKeyOptions~is~required
- }
+ \NewDocumentCommand \ProcessKeyOptions { o }
+ {
+ \IfValueTF { #1 } { \ProcessKeysOptions { #1 } }
+ { \PackageError{nfssext-cfr}{
+ Optional~argument~mandatory~on~kernels~this~old.\MessageBreak
+ Please~specify~the~module~whose~keys~should~be~processed
+ }{
+ \protect\ProcessKeyOptions~only~passes~keys~to~
+ \protect\ProcessKeyOptions\MessageBreak
+ on~older~kernels~for~the~convenience~of~package~authors.~
+ Since~\protect\ProcessKeysOptions\MessageBreak
+ takes~an~argument,~the~optional~argument~to~
+ \protect\ProcessKeyOptions~is~required
+ }
+ }
}
- }
% \end{macrocode}
% \end{macro}
% \begin{macrocode}
-}
-\IfFormatAtLeastTF { 2020-10-01 }{
-}{
- \RequirePackage { xparse }
+ }
+ \IfFormatAtLeastTF { 2020-10-01 }{
+ }{
+ \RequirePackage { xparse }
% \end{macrocode}
% \begin{macro}{\ExpandArgs}
% \mbox{ }
% \begin{macrocode}
- \providecommand \ExpandArgs [1]
- { \cs_if_exist_use:c { exp_args:N #1 } }
+ \providecommand \ExpandArgs [1]
+ { \cs_if_exist_use:c { exp_args:N #1 } }
% \end{macrocode}
% \end{macro}
% \begin{macrocode}
-}
+ }
% \end{macrocode}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% END expl pkg option setup
@@ -954,88 +954,88 @@
% We test for the presence of \cs{init@series@setup} in order to determine whether to load code for \nnfss{} or \nfss.
% If \texttt{force} is set, we load for \nfss{} regardless.
% \begin{macrocode}
-\RequirePackage{etoolbox}
-\msg_new:nnn { nfssext-cfr } { compat }
-{
- You ~ or ~ a ~ font-support ~ package ~ have ~ loaded ~ me ~ ( line ~ \msg_line_number: ) ~ with ~ the ~ compat ~ option. ~
- This ~ means ~ the ~ package ~ may ~ require ~ updating. ~
- Update ~ the ~ package ~ if ~ necessary ~ and ~ use ~ compat=false ~ when ~ loading ~ me.
-}
-\msg_new:nnn { nfssext-cfr } { force }
-{
- You ~ or ~ a ~ font-support ~ package ~ have ~ loaded ~ me ~ ( line ~ \msg_line_number: ) ~ with ~ the ~ force ~ option. ~
- This ~ is ~ a ~ desperate ~ measure ~ of ~ last ~ resort. ~
- **Breakage ~ is ~ expected.**
-}
-\hook_gput_code:nnn { begindocument/before } { . }
-{
- \cs_if_exist:NTF \init@series@setup
+ \RequirePackage{etoolbox}
+ \msg_new:nnn { nfssext-cfr } { compat }
+ {
+ You ~ or ~ a ~ font-support ~ package ~ have ~ loaded ~ me ~ ( line ~ \msg_line_number: ) ~ with ~ the ~ compat ~ option. ~
+ This ~ means ~ the ~ package ~ may ~ require ~ updating. ~
+ Update ~ the ~ package ~ if ~ necessary ~ and ~ use ~ compat=false ~ when ~ loading ~ me.
+ }
+ \msg_new:nnn { nfssext-cfr } { force }
+ {
+ You ~ or ~ a ~ font-support ~ package ~ have ~ loaded ~ me ~ ( line ~ \msg_line_number: ) ~ with ~ the ~ force ~ option. ~
+ This ~ is ~ a ~ desperate ~ measure ~ of ~ last ~ resort. ~
+ **Breakage ~ is ~ expected.**
+ }
+ \hook_gput_code:nnn { begindocument/before } { . }
{
- \bool_if:NTF \g__exfs_force_bool
+ \cs_if_exist:NTF \init@series@setup
{
- \msg_warning:nn { nfssext-cfr } { force }
- \RequirePackage {nfssext-cfr-nfss}
- }{
- \bool_if:NT \g__exfs_compat_bool
+ \bool_if:NTF \g__exfs_force_bool
{
- \msg_warning:nn { nfssext-cfr } { compat }
+ \msg_warning:nn { nfssext-cfr } { force }
+ \RequirePackage {nfssext-cfr-nfss}
+ }{
+ \bool_if:NT \g__exfs_compat_bool
+ {
+ \msg_warning:nn { nfssext-cfr } { compat }
+ }
+ \RequirePackage {nfssext-cfr-nnfss}
}
- \RequirePackage {nfssext-cfr-nnfss}
+ }{% achosiad heb broblemau - diolch byth!
+ \RequirePackage {nfssext-cfr-nfss}
}
- }{% achosiad heb broblemau - diolch byth!
- \RequirePackage {nfssext-cfr-nfss}
}
-}
% \end{macrocode}
% \begin{macro}{\__exfs_set:n}
% \begin{macrocode}
-\cs_new_protected_nopar:Nn \__exfs_set:n
-{
- \keys_set:nn { exfs } { #1 }
-}
+ \cs_new_protected_nopar:Nn \__exfs_set:n
+ {
+ \keys_set:nn { exfs } { #1 }
+ }
% \end{macrocode}
% \end{macro}
% \begin{macro}{\nfssextset}
% Allow setting of options later in preamble or in document.
% This is intended to enable debugging to be toggled locally.
% \begin{macrocode}
-\cs_set_eq:NN \nfssextset \__exfs_set:n
+ \cs_set_eq:NN \nfssextset \__exfs_set:n
% \end{macrocode}
% \end{macro}
% \begin{macrocode}
-\ExplSyntaxOff
+ \ExplSyntaxOff
% \end{macrocode}
% END added
% \begin{macro}{\DeclareTextOrnament,\ornament}
% These are unmodified from \lpack{nfssext}.
% I'm not aware of any \ctan{} packages using these and they have not been tested for compatibility with \nnfss{}, though I can't see any patently obvious problems.
% \begin{macrocode}
-\newcommand*{\DeclareTextOrnament}[7]{%
- \expandafter\def\csname#1@orn\@roman#2\endcsname{#3/#4/#5/#6/#7}}
-\begingroup
- \catcode`\/=12
- \gdef\exfs@split@orndef#1/#2/#3/#4/#5\@nil{%
- \def\f@encoding{#1}%
- \def\f@family{#2}%
- \def\f@series{#3}%
- \def\f@shape{#4}%
- \def\exfs@tempa{#5}}
-\endgroup
-\def\exfs@base@family{\expandafter\exfs@get@base\f@family\@nil}
-\DeclareRobustCommand{\ornament}[1]{%
- \expandafter\ifx\csname\exfs@base@family @orn\@roman#1\endcsname\relax
- \PackageWarning{nfssext}{%
- Ornament #1 undefined for font family '\exfs@base@family'\MessageBreak
- Setting debug mark}%
- \rule{1ex}{1ex}%
- \else
- \begingroup
- \edef\exfs@tempb{\csname\exfs@base@family @orn\@roman#1\endcsname}%
- \expandafter\expandafter\expandafter\exfs@split@orndef
- \expandafter\string\exfs@tempb\@nil
- \selectfont\char\exfs@tempa
- \endgroup
- \fi}
+ \newcommand*{\DeclareTextOrnament}[7]{%
+ \expandafter\def\csname#1@orn\@roman#2\endcsname{#3/#4/#5/#6/#7}}
+ \begingroup
+ \catcode`\/=12
+ \gdef\exfs@split@orndef#1/#2/#3/#4/#5\@nil{%
+ \def\f@encoding{#1}%
+ \def\f@family{#2}%
+ \def\f@series{#3}%
+ \def\f@shape{#4}%
+ \def\exfs@tempa{#5}}
+ \endgroup
+ \def\exfs@base@family{\expandafter\exfs@get@base\f@family\@nil}
+ \DeclareRobustCommand{\ornament}[1]{%
+ \expandafter\ifx\csname\exfs@base@family @orn\@roman#1\endcsname\relax
+ \PackageWarning{nfssext}{%
+ Ornament #1 undefined for font family '\exfs@base@family'\MessageBreak
+ Setting debug mark}%
+ \rule{1ex}{1ex}%
+ \else
+ \begingroup
+ \edef\exfs@tempb{\csname\exfs@base@family @orn\@roman#1\endcsname}%
+ \expandafter\expandafter\expandafter\exfs@split@orndef
+ \expandafter\string\exfs@tempb\@nil
+ \selectfont\char\exfs@tempa
+ \endgroup
+ \fi}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\nfssextcfr@MT@Hook,\Microtype@Hook}
@@ -1049,21 +1049,28 @@
%^^A \DeclareMicrotypeVariants{x,j,w,a,d,0,1}% this is the default declaration according to the docs
%^^A \DeclareMicrotypeVariants*{2,e,h,l}% this should *append* the variants (what do I use 'f' for? better take it out...)
% \begin{macrocode}
- \DeclareMicrotypeVariants*{2,2d,2dj,2j,dj,e,h,l}% is this necessary or would the previous line be enough?
-}
-\@ifpackageloaded{microtype}{%
- \PackageWarning{nfssext-cfr}{%
- You have loaded me (or a font support package which loads me)\MessageBreak
- after loading microtype, but microtype should be loaded after\MessageBreak
- all font defaults have been setup}%
- \nfssextcfr@MT@Hook
-}{%
- \@ifundefined{Microtype@Hook}{%
- \let\Microtype@Hook\nfssextcfr@MT@Hook}{% MinionPro has \global before this
- \g@addto@macro\Microtype@Hook{\nfssextcfr@MT@Hook}}}
+ \DeclareMicrotypeVariants*{2,2d,2dj,2j,dj,e,h,l}% is this necessary or would the previous line be enough?
+ }
+ \@ifpackageloaded{microtype}{%
+ \PackageWarning{nfssext-cfr}{%
+ You have loaded me (or a font support package which loads me)\MessageBreak
+ after loading microtype, but microtype should be loaded after\MessageBreak
+ all font defaults have been setup}%
+ \nfssextcfr@MT@Hook
+ }{%
+ \@ifundefined{Microtype@Hook}{%
+ \let\Microtype@Hook\nfssextcfr@MT@Hook
+ }{% MinionPro has \global before this
+ \g@addto@macro\Microtype@Hook{\nfssextcfr@MT@Hook}%
+ }%
+ }
% \end{macrocode}
% \end{macro}
+% \changes{v1.1}{2024-10-03}{Fix grouping cock up.}
+% \begin{macrocode}
+\fi
% END
+% \end{macrocode}
% \end{package}
% \iffalse
%</sty>
@@ -1083,7 +1090,7 @@
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{svn-prov}
-\ProvidesPackageSVN[\filebase-nnfss.sty]{$Id: nfssext-cfr.dtx 10366 2024-09-18 14:25:21Z cfrees $}[v1.0 \revinfo{} extended New New Font Selection Scheme (NNFSS) based on 2003/03/14 v1.2 Experimental NFSS Extensions]
+\ProvidesPackageSVN[\filebase-nnfss.sty]{$Id: nfssext-cfr.dtx 10456 2024-10-03 01:19:12Z cfrees $}[v1.1 \revinfo{} extended New New Font Selection Scheme (NNFSS) based on 2003/03/14 v1.2 Experimental NFSS Extensions]
\DefineFileInfoSVN
% \end{macrocode}
% ^^A Paid â defnyddio \GetFileInfoSVN*/\GetFileInfoSVN{} yn y fan hon!!
@@ -2523,7 +2530,7 @@
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{svn-prov}
-\ProvidesPackageSVN[\filebase-nfss.sty]{$Id: nfssext-cfr.dtx 10366 2024-09-18 14:25:21Z cfrees $}[v1.0 \revinfo{} specially mangled by cfr; based on 2003/03/14 v1.2 Experimental NFSS Extensions; for old NFSS]
+\ProvidesPackageSVN[\filebase-nfss.sty]{$Id: nfssext-cfr.dtx 10456 2024-10-03 01:19:12Z cfrees $}[v1.1 \revinfo{} specially mangled by cfr; based on 2003/03/14 v1.2 Experimental NFSS Extensions; for old NFSS]
\DefineFileInfoSVN
% \end{macrocode}
% ^^A Paid â defnyddio \GetFileInfoSVN*/\GetFileInfoSVN{} yn y fan hon!!
diff --git a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.pdf b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.pdf
index 5088961446..a6020b4a66 100644
--- a/macros/latex/contrib/nfssext-cfr/nfssext-cfr.pdf
+++ b/macros/latex/contrib/nfssext-cfr/nfssext-cfr.pdf
Binary files differ
diff --git a/macros/latex/contrib/useclass/README.md b/macros/latex/contrib/useclass/README.md
index d3bd24274d..58dbbd6554 100644
--- a/macros/latex/contrib/useclass/README.md
+++ b/macros/latex/contrib/useclass/README.md
@@ -1,3 +1,8 @@
+[![Latest Document](https://img.shields.io/github/v/release/huangyxi/useclass?label=Docs)](https://github.com/huangyxi/useclass/releases/latest/download/useclass.pdf)
+[![GitHub Release](https://img.shields.io/github/v/release/huangyxi/useclass?label=Release)](https://github.com/huangyxi/useclass/releases/latest)
+[![CTAN](https://img.shields.io/ctan/v/useclass?label=CTAN)](https://www.ctan.org/pkg/useclass)
+
+
# The `useclass.sty` Package: Load Classes as Packages
## Introduction
diff --git a/macros/latex/contrib/useclass/useclass.dtx b/macros/latex/contrib/useclass/useclass.dtx
index 37016e738b..d4eb1744d1 100644
--- a/macros/latex/contrib/useclass/useclass.dtx
+++ b/macros/latex/contrib/useclass/useclass.dtx
@@ -62,17 +62,19 @@
%<package>\NeedsTeXFormat{LaTeX2e}
%<package>\ProvidesExplPackage{useclass}
-%<package> {2024-03-06}{1.0}{Use Classes as Packages} %
+%<package> {2024-10-03}{1.1}{Use Classes as Packages} %
%<*driver>
\documentclass{article}
\usepackage{useclass}
\useclass*[full]{l3doc}
+\RecordChanges
\usepackage{mdframed}
\providecommand{\name}{\jobname}
\providecommand{\pkgname}{\pkg{\name}}
\begin{document}
\DocInput{\jobname.dtx}
+ \PrintChanges
\PrintIndex
\end{document}
%</driver>
@@ -81,7 +83,7 @@
% \title{The \pkgname.sty Package: Load Classes as Packages}
% \author
% {
-% Huang Yuxi
+% Huang Yuxi^^A
% \thanks{
% \textit{Huang} is his surname.
% }
@@ -91,7 +93,7 @@
% {useclass@hyxi.dev}^^A
% >
% }
-% \date{2024-03-06 \quad Version 1.0}
+% \date{2024-10-03 \quad Version 1.1}
%
%
% \maketitle
@@ -106,6 +108,8 @@
%
% \tableofcontents
%
+% \changes{v1.0}{2024-03-05}{Initial release.}
+%
% \begin{documentation}
%
% \section{Introduction}
@@ -159,7 +163,8 @@
% \begin{verbatim}
% % \iffalse
% \documentclass{article}
-% \usepackage{l3doc}
+% \usepackage{useclass}
+% \useclass*[full]{l3doc}
% \begin{document}
% \DocInput{\jobname.dtx}
% \end{document}
@@ -438,6 +443,7 @@
%
% \subsection{Classes Configuration}
% \begin{variable}{\c_@@_classes_prop}
+% \changes{v1.1}{2024-10-03}{Support \cls{ctex} classes.}
% Configuration for classes to restore after loading.
% The defined property is NOT nested, where values in the prop are token lists but not properties or sequences.
% \begin{macrocode}
@@ -459,6 +465,7 @@
list,
l@section,
l@subsection,
+ @maketitle,
},
},
}
@@ -470,4 +477,3 @@
% \end{macrocode}
%
% \end{implementation}
-% \PrintIndex
diff --git a/macros/latex/contrib/useclass/useclass.pdf b/macros/latex/contrib/useclass/useclass.pdf
index 2623e72d2b..e373f709ea 100644
--- a/macros/latex/contrib/useclass/useclass.pdf
+++ b/macros/latex/contrib/useclass/useclass.pdf
Binary files differ