summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-06-27 21:01:56 +0000
committerKarl Berry <karl@freefriends.org>2021-06-27 21:01:56 +0000
commit16d43984665bb8add0aac0a3812c4d3f5834029a (patch)
treebf4b44cce6438c06e7af1c6da9fe1c7afee172bf /Master
parente038ef8a58d015e7f9b3011950c7cd36cf1727be (diff)
spbmark (27jun21)
git-svn-id: svn://tug.org/texlive/trunk@59731 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/spbmark/README.md11
-rw-r--r--Master/texmf-dist/doc/latex/spbmark/spbmark.pdfbin0 -> 66589 bytes
-rw-r--r--Master/texmf-dist/source/latex/spbmark/spbmark.dtx257
-rw-r--r--Master/texmf-dist/source/latex/spbmark/spbmark.ins37
-rw-r--r--Master/texmf-dist/tex/latex/spbmark/spbmark.sty158
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rw-r--r--Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/spbmark.tlpsrc0
8 files changed, 465 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/spbmark/README.md b/Master/texmf-dist/doc/latex/spbmark/README.md
new file mode 100644
index 00000000000..ed915ca1cab
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/spbmark/README.md
@@ -0,0 +1,11 @@
+# The spbmark package
+
+Spbmark provides three commands \super, \sub and \supersub to improve the layout of superscripts and subscripts which can be adjusted the relative position and format, and can be used in text and math mode.
+
+## License
+
+This work may be distributed and/or modified under the conditions of the CC-BY 4.0 License. The latest version of this license is in https://creativecommons.org/licenses/by/4.0/legalcode
+
+## Website
+
+| [Gitee](https://gitee.com/texl3/spbmark) | [Github](https://github.com/texl3/spbmark) | [CTAN](https://ctan.org/pkg/spbmark) | \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/spbmark/spbmark.pdf b/Master/texmf-dist/doc/latex/spbmark/spbmark.pdf
new file mode 100644
index 00000000000..fa2f4d19098
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/spbmark/spbmark.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/spbmark/spbmark.dtx b/Master/texmf-dist/source/latex/spbmark/spbmark.dtx
new file mode 100644
index 00000000000..23e13e57b48
--- /dev/null
+++ b/Master/texmf-dist/source/latex/spbmark/spbmark.dtx
@@ -0,0 +1,257 @@
+% \iffalse meta-comment
+%
+% Copyright (C) 2021 by Qu Yi <quee123@foxmail.com>
+%
+% This work may be distributed and/or modified under the
+% conditions of the CC-BY 4.0 License.
+% The latest version of this license is in
+% https://creativecommons.org/licenses/by/4.0/legalcode
+% \fi
+%
+% \iffalse
+%<*driver>
+\documentclass{l3doc}
+\usepackage{spbmark}
+\OnlyDescription
+\begin{document}
+ \DocInput{\jobname.dtx}
+ \PrintIndex
+\end{document}
+%</driver>
+% \fi
+%
+% \title{\pkg{spbmark} -- Superscript and subscript of text}
+% \author{Qu Yi}
+% \date{2021/06/26\hskip 1em\relax v1.00\thanks{\url{https://github.com/texl3/spbmark}}}
+%
+% \maketitle
+% \begin{abstract}
+% \pkg{spbmark} provides three commands \tn{super}, \tn{sub} and \tn{supersub} to improve the layout of superscripts and subscripts which can be adjusted the relative position and format, and can be used in text and math mode.
+% \end{abstract}
+% \tableofcontents
+%
+% \section{Macro package options}
+% \begin{function}[added = 2021-06-26]{ctex}
+% This option works with the C\TeX{} document class used by simplified Chinese users, there's actually no functional change. Adding path \texttt{style} to \tn{ctexset} command, which is equivalent to using \tn{spbset}.
+% \end{function}
+%
+% \section{User commands}
+% \begin{function}[added = 2021-06-26]{\super,\sub,\supersub,\textsuperscript,\textsubscript}
+% \begin{syntax}
+% \tn{super*}\oarg{vertical shift}\parg{format code}\marg{content}\oarg{horizontal shift}
+% \tn{sub*}\oarg{vertical shift}\parg{format code}\marg{content}\oarg{horizontal shift}
+% \tn{supersub*}\oarg{script sep}\oarg{script align}\parg{super format code}
+% \ \marg{super content}\marg{sub content}
+% \ \oarg{horizontal shift}\parg{sub format code}
+% \end{syntax}
+% \tn{super} command is used to output superscripts, \tn{sub} command is used to output subscripts, \tn{supersub} command is used to output both superscripts and subscripts.
+% \end{function}
+%
+% They match the corresponding pattern depending on whether they are currently in text mode or mathematical mode, or they can use an asterisk variant to force the mathematical pattern. The vertical shift and horizontal shift are both 0pt, and the parameters of \meta{script align} are the same as the \texttt{supersubalign}.
+%
+% The \meta{format code} is used to format superscripts and subscripts, and can insert commands such as fonts or colors. The last command in the code can take an argument, which is either a superscript or a subscript.
+%
+% The \tn{textsuperscript} and \tn{textsubscript} commands have been redefined to be equivalent to \tn{super} and \tn{sub} respectively, if you need to use their original definitions, then \tn{spb@textsuperscript@save} and \tn{spb@textsubscript@save} will be available.
+%
+% \section{Global control interface}
+% \begin{function}[added = 2021-06-26]{\spbset}
+% \begin{syntax}
+% \tn{spbset}\marg{key-value list}
+% \end{syntax}
+% \pkg{spbmark} uses the \tn{spbset} command to control the global default format of superscripts and subscripts. The values ​​set by it will be overwritten by the optional parameters of the superscript and other commands. The list of key values it has is as follows:
+% \end{function}
+%
+% \begin{function}{super-vshift,super-hshift,sub-vshift,sub-hshift,supersubsep,supersubalign}
+% \begin{syntax}
+% super-vshift = <fixed length>
+% super-hshift = <fixed length>
+% sub-vshift = <fixed length>
+% sub-hshift = <fixed length>
+% supersubsep = <fixed length>
+% supersubalign = <horizontal alignment>
+% \end{syntax}
+% \end{function}
+%
+% \noindent
+% \DescribeOption{super-vshift} Extra vertical shift of the superscripts. \\
+% \DescribeOption{super-hshift} Extra horizontal shift of the superscripts. \\
+% \DescribeOption{sub-vshift} Extra vertical shift of the subscripts. \\
+% \DescribeOption{sub-hshift} Extra horizontal shift of the subscripts. \\
+% \DescribeOption{supersubsep} The distance between superscript and subscript when using \tn{supersub}, its default value is 0.3ex. \\
+% \DescribeOption{supersubalign} The alignment of superscript and subscript when using \tn{supersub}, which contains l, c, and r parameters respectively for left, center, and right alignment. \\
+%
+% \section{Examples of use}
+% Here is a list of the three commands, please pay attention to the delimiter and usage of optional parameters:
+% \begin{quotation}
+% \noindent
+% |A\super[0.2ex](\color{red}){exam}[0.2em]B| \\
+% |$A\sub(\mathsf){exam}B$| \\
+% |A\supersub[0.3ex][c]{examsuper}{examsub}B| \\
+% A\super[0.2ex](\color{red}){exam}[0.2em]B \\
+% $A\sub(\mathsf){exam}B$ \\
+% A\supersub[0.3ex][c]{examsuper}{examsub}B
+% \end{quotation}
+%
+% \pkg{spbmark} also patches the standard document class and the footer markers for \cls{KOMA-Script}. You can format the footer markers by redefining the \tn{fnmarkfont} command. Note that extra horizontal shift does not work with footnote markers.
+%
+% \section{Known issues}
+% At present, the vertical and horizontal offsets are effective for the unit commands in the text mode of the \pkg{siunitx} macro package. \tn{super} and \tn{sub} can also be used normally in its unit commands, but when the unit is output in the math mode, \tn{supersub} command cannot be used.
+%
+% \newcommand\urlprefix{\newline\hspace*{\fill}}
+% \let\OldUrl\url
+% \renewcommand\url[2][]{{\small\textit{#1}~\OldUrl{#2}}}
+% \begin{thebibliography}{99}
+% \bibitem{realscripts}
+% \textsc{Will Robertson}.
+% \newblock \textit{The realscripts package} [CP/OL].
+% \newblock version 0.3d,
+% \newblock (2016-02-13)
+% \urlprefix\url{https://ctan.org/pkg/realscripts}
+% \end{thebibliography}
+%
+% \StopEventually{}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage{spbmark}{2021/06/26}{1.00}{beta}
+
+\cs_new_protected:Npn \spb_define:n { \keys_define:nn { spbmark } }
+\cs_new_protected:Npn \spbset { \keys_set:nn { spbmark } }
+\keys_define:nn { spbmark/option }
+ {
+ ctex .code:n =
+ {
+ \cs_set:Npn \spb_define:n { \keys_define:nn { ctex/style } }
+ \cs_set:Npn \spbset { \keys_set:nn { ctex/style } }
+ }
+ }
+
+\ProcessKeysOptions{spbmark/option}
+
+\spb_define:n
+ {
+ super-vshift .dim_set:N = \l__spb_super_script_vshift_dim,
+ super-vshift .initial:n = 0pt,
+ super-hshift .dim_set:N = \l__spb_super_script_hshift_dim,
+ super-hshift .initial:n = 0pt,
+ sub-vshift .dim_set:N = \l__spb_sub_script_vshift_dim,
+ sub-vshift .initial:n = 0pt,
+ sub-hshift .dim_set:N = \l__spb_sub_script_hshift_dim,
+ sub-hshift .initial:n = 0pt,
+ supersubsep .dim_set:N = \l__spb_supersub_script_sep_dim,
+ supersubsep .initial:n = 0.3ex,
+ supersubalign .tl_set:N = \l__spb_supersub_script_align_tl,
+ supersubalign .initial:n = l
+ }
+\tl_set:Nn \l__spb_boxa_wd_tl { \box_wd:N \l_tmpa_box }
+\tl_set:Nn \l__spb_boxb_wd_tl { \box_wd:N \l_tmpb_box }
+\cs_new:Npn \spb_tmp_boxa_use: { \box_use:N \l_tmpa_box }
+\cs_new:Npn \spb_tmp_boxb_use: { \box_use:N \l_tmpb_box }
+\cs_new:Npn \spb_box_max_dim_horizontal:
+ {
+ \skip_horizontal:n
+ { \dim_max:nn { \l__spb_boxa_wd_tl } { \l__spb_boxb_wd_tl } }
+ }
+\cs_new:Npn \spb_boxwd_subtract:nnnn #1#2#3#4
+ {
+ \skip_horizontal:n
+ { #1\tl_use:c { l__spb_#3_wd_tl } - #2\tl_use:c { l__spb_#4_wd_tl } }
+ }
+\cs_new:Npn \spb_boxwd_script_align:nn #1#2
+ {
+ \spb_boxwd_subtract:nnnn { 0.5 } { 0.5 } {#1} {#2}
+ \use:c { spb_tmp_#2_use: }
+ \spb_boxwd_subtract:nnnn { -0.5 } { 0.5 } {#1} {#2}
+ \use:c { spb_tmp_#1_use: }
+ }
+\cs_set_eq:NN \spb@textsuperscript@save \textsuperscript
+\cs_set_eq:NN \spb@textsubscript@save \textsubscript
+\cs_new:Npn \spb_math:nn #1
+ {
+ \str_case:nn {#1}
+ {
+ { super } { \sp }
+ { sub } { \sb }
+ }
+ }
+\clist_map_inline:nn
+ { super,sub }
+ {
+ \exp_args:Nc \NewDocumentCommand {#1}
+ {
+ sO{\dim_use:c { l__spb_#1_script_vshift_dim }}D(){}m
+ O{\dim_use:c { l__spb_#1_script_hshift_dim }}
+ }
+ {
+ \IfBooleanTF{##1}
+ {\hbox_set:Nn \l_tmpa_box { $##3{\spb_math:nn {#1} {##4}}$ }}
+ {
+ \mode_if_math:TF
+ { \hbox_set:Nn \l_tmpa_box { $##3{\spb_math:nn {#1} {##4}}$ } }
+ {
+ \hbox_set:Nn \l_tmpa_box
+ { ##3{\use:c { spb@text#1script@save }{##4}} }
+ }
+ }
+ \hbox_set_to_wd:Nnn \l_tmpb_box { \l__spb_boxa_wd_tl + ##5 }
+ { \hss\box_move_up:nn {##2} { \spb_tmp_boxa_use: } }
+ \spb_tmp_boxb_use:
+ }
+ }
+\NewDocumentCommand{\supersub}
+ {
+ sO{\l__spb_supersub_script_sep_dim}
+ O{\l__spb_supersub_script_align_tl}D(){}mmO{0pt}D(){}
+ }
+ {
+ \IfBooleanTF{#1}
+ {
+ \hbox_set:Nn \l_tmpa_box { $#4{\sp{#5}}$ }
+ \hbox_set:Nn \l_tmpb_box { $#8{\sb{#6}}$ }
+ }{
+ \mode_if_math:TF
+ {
+ \hbox_set:Nn \l_tmpa_box { $#4{\sp{#5}}$ }
+ \hbox_set:Nn \l_tmpb_box { $#8{\sb{#6}}$ }
+ }
+ {
+ \hbox_set:Nn \l_tmpa_box { #4{\spb@textsuperscript@save{#5}} }
+ \hbox_set:Nn \l_tmpb_box { #8{\spb@textsubscript@save{#6}} }
+ }
+ }
+ \hbox_set_to_wd:Nnn \l_tmpa_box { \l__spb_boxa_wd_tl + #7 }
+ { \hss\box_move_up:nn {#2} { \spb_tmp_boxa_use: } }
+ \hbox_set_to_wd:Nnn \l_tmpb_box { \l__spb_boxb_wd_tl + #7 }
+ { \hss\box_move_down:nn {#2} { \spb_tmp_boxb_use: } }
+ \str_case:nnF {#3}
+ {
+ { l } { \use_i:nnn }
+ { c } { \use_ii:nnn }
+ { r } { \use_iii:nnn }
+ }
+ { \use_i:nnn }
+ {
+ \hbox_overlap_right:n { \spb_tmp_boxa_use: }
+ \hbox_overlap_right:n { \spb_tmp_boxb_use: }
+ \spb_box_max_dim_horizontal:
+ }
+ {
+ \dim_compare:nTF { \l__spb_boxa_wd_tl > \l__spb_boxb_wd_tl }
+ { \spb_boxwd_script_align:nn { boxa } { boxb } }
+ { \spb_boxwd_script_align:nn { boxb } { boxa } }
+ }
+ {
+ \spb_box_max_dim_horizontal:
+ \hbox_overlap_left:n { \spb_tmp_boxa_use: }
+ \hbox_overlap_left:n { \spb_tmp_boxb_use: }
+ }
+ }
+\cs_set_eq:NN \textsuperscript \super
+\cs_set_eq:NN \textsubscript \sub
+\cs_set:Npn \@makefnmark
+ { \hbox:n { \fnmarkfont\super{\@thefnmark}[0pt] } }
+\cs_if_exist:NTF \ftntm@font
+ { \cs_new:Npn \fnmarkfont { \ftntm@font } }
+ { \cs_new:Npn \fnmarkfont { \normalfont } }
+%</package>
+\endinput \ No newline at end of file
diff --git a/Master/texmf-dist/source/latex/spbmark/spbmark.ins b/Master/texmf-dist/source/latex/spbmark/spbmark.ins
new file mode 100644
index 00000000000..43d605dab29
--- /dev/null
+++ b/Master/texmf-dist/source/latex/spbmark/spbmark.ins
@@ -0,0 +1,37 @@
+%
+% Copyright (C) 2021 by Qu Yi <quee123@foxmail.com>
+%
+% This work may be distributed and/or modified under the
+% conditions of the CC-BY 4.0 License.
+% The latest version of this license is in
+% https://creativecommons.org/licenses/by/4.0/legalcode
+\input l3docstrip
+\keepsilent
+\askforoverwritefalse
+
+\usedir{tex/latex/spbmark}
+
+\preamble
+Copyright (C) 2021 by Qu Yi <quee123@foxmail.com>
+
+This work may be distributed and/or modified under the
+conditions of the CC-BY 4.0 License.
+The latest version of this license is in
+ https://creativecommons.org/licenses/by/4.0/legalcode
+\endpreamble
+
+\generate{\file{spbmark.sty}{\from{\jobname.dtx}{package}}}
+
+\obeyspaces
+\Msg{*************************************************************}
+\Msg{* *}
+\Msg{* To finish the installation you have to move the following *}
+\Msg{* files into a directory searched by TeX: *}
+\Msg{* *}
+\Msg{* spbmark.sty *}
+\Msg{* *}
+\Msg{* Happy TeXing! *}
+\Msg{* *}
+\Msg{*************************************************************}
+
+\endbatchfile \ No newline at end of file
diff --git a/Master/texmf-dist/tex/latex/spbmark/spbmark.sty b/Master/texmf-dist/tex/latex/spbmark/spbmark.sty
new file mode 100644
index 00000000000..addec2be2ef
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/spbmark/spbmark.sty
@@ -0,0 +1,158 @@
+%%
+%% This is file `spbmark.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% spbmark.dtx (with options: `package')
+%% Copyright (C) 2021 by Qu Yi <quee123@foxmail.com>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the CC-BY 4.0 License.
+%% The latest version of this license is in
+%% https://creativecommons.org/licenses/by/4.0/legalcode
+\NeedsTeXFormat{LaTeX2e}[2020/10/01]
+\RequirePackage{l3keys2e}
+\ProvidesExplPackage{spbmark}{2021/06/26}{1.00}{beta}
+
+\cs_new_protected:Npn \spb_define:n { \keys_define:nn { spbmark } }
+\cs_new_protected:Npn \spbset { \keys_set:nn { spbmark } }
+\keys_define:nn { spbmark/option }
+ {
+ ctex .code:n =
+ {
+ \cs_set:Npn \spb_define:n { \keys_define:nn { ctex/style } }
+ \cs_set:Npn \spbset { \keys_set:nn { ctex/style } }
+ }
+ }
+
+\ProcessKeysOptions{spbmark/option}
+
+\spb_define:n
+ {
+ super-vshift .dim_set:N = \l__spb_super_script_vshift_dim,
+ super-vshift .initial:n = 0pt,
+ super-hshift .dim_set:N = \l__spb_super_script_hshift_dim,
+ super-hshift .initial:n = 0pt,
+ sub-vshift .dim_set:N = \l__spb_sub_script_vshift_dim,
+ sub-vshift .initial:n = 0pt,
+ sub-hshift .dim_set:N = \l__spb_sub_script_hshift_dim,
+ sub-hshift .initial:n = 0pt,
+ supersubsep .dim_set:N = \l__spb_supersub_script_sep_dim,
+ supersubsep .initial:n = 0.3ex,
+ supersubalign .tl_set:N = \l__spb_supersub_script_align_tl,
+ supersubalign .initial:n = l
+ }
+\tl_set:Nn \l__spb_boxa_wd_tl { \box_wd:N \l_tmpa_box }
+\tl_set:Nn \l__spb_boxb_wd_tl { \box_wd:N \l_tmpb_box }
+\cs_new:Npn \spb_tmp_boxa_use: { \box_use:N \l_tmpa_box }
+\cs_new:Npn \spb_tmp_boxb_use: { \box_use:N \l_tmpb_box }
+\cs_new:Npn \spb_box_max_dim_horizontal:
+ {
+ \skip_horizontal:n
+ { \dim_max:nn { \l__spb_boxa_wd_tl } { \l__spb_boxb_wd_tl } }
+ }
+\cs_new:Npn \spb_boxwd_subtract:nnnn #1#2#3#4
+ {
+ \skip_horizontal:n
+ { #1\tl_use:c { l__spb_#3_wd_tl } - #2\tl_use:c { l__spb_#4_wd_tl } }
+ }
+\cs_new:Npn \spb_boxwd_script_align:nn #1#2
+ {
+ \spb_boxwd_subtract:nnnn { 0.5 } { 0.5 } {#1} {#2}
+ \use:c { spb_tmp_#2_use: }
+ \spb_boxwd_subtract:nnnn { -0.5 } { 0.5 } {#1} {#2}
+ \use:c { spb_tmp_#1_use: }
+ }
+\cs_set_eq:NN \spb@textsuperscript@save \textsuperscript
+\cs_set_eq:NN \spb@textsubscript@save \textsubscript
+\cs_new:Npn \spb_math:nn #1
+ {
+ \str_case:nn {#1}
+ {
+ { super } { \sp }
+ { sub } { \sb }
+ }
+ }
+\clist_map_inline:nn
+ { super,sub }
+ {
+ \exp_args:Nc \NewDocumentCommand {#1}
+ {
+ sO{\dim_use:c { l__spb_#1_script_vshift_dim }}D(){}m
+ O{\dim_use:c { l__spb_#1_script_hshift_dim }}
+ }
+ {
+ \IfBooleanTF{##1}
+ {\hbox_set:Nn \l_tmpa_box { $##3{\spb_math:nn {#1} {##4}}$ }}
+ {
+ \mode_if_math:TF
+ { \hbox_set:Nn \l_tmpa_box { $##3{\spb_math:nn {#1} {##4}}$ } }
+ {
+ \hbox_set:Nn \l_tmpa_box
+ { ##3{\use:c { spb@text#1script@save }{##4}} }
+ }
+ }
+ \hbox_set_to_wd:Nnn \l_tmpb_box { \l__spb_boxa_wd_tl + ##5 }
+ { \hss\box_move_up:nn {##2} { \spb_tmp_boxa_use: } }
+ \spb_tmp_boxb_use:
+ }
+ }
+\NewDocumentCommand{\supersub}
+ {
+ sO{\l__spb_supersub_script_sep_dim}
+ O{\l__spb_supersub_script_align_tl}D(){}mmO{0pt}D(){}
+ }
+ {
+ \IfBooleanTF{#1}
+ {
+ \hbox_set:Nn \l_tmpa_box { $#4{\sp{#5}}$ }
+ \hbox_set:Nn \l_tmpb_box { $#8{\sb{#6}}$ }
+ }{
+ \mode_if_math:TF
+ {
+ \hbox_set:Nn \l_tmpa_box { $#4{\sp{#5}}$ }
+ \hbox_set:Nn \l_tmpb_box { $#8{\sb{#6}}$ }
+ }
+ {
+ \hbox_set:Nn \l_tmpa_box { #4{\spb@textsuperscript@save{#5}} }
+ \hbox_set:Nn \l_tmpb_box { #8{\spb@textsubscript@save{#6}} }
+ }
+ }
+ \hbox_set_to_wd:Nnn \l_tmpa_box { \l__spb_boxa_wd_tl + #7 }
+ { \hss\box_move_up:nn {#2} { \spb_tmp_boxa_use: } }
+ \hbox_set_to_wd:Nnn \l_tmpb_box { \l__spb_boxb_wd_tl + #7 }
+ { \hss\box_move_down:nn {#2} { \spb_tmp_boxb_use: } }
+ \str_case:nnF {#3}
+ {
+ { l } { \use_i:nnn }
+ { c } { \use_ii:nnn }
+ { r } { \use_iii:nnn }
+ }
+ { \use_i:nnn }
+ {
+ \hbox_overlap_right:n { \spb_tmp_boxa_use: }
+ \hbox_overlap_right:n { \spb_tmp_boxb_use: }
+ \spb_box_max_dim_horizontal:
+ }
+ {
+ \dim_compare:nTF { \l__spb_boxa_wd_tl > \l__spb_boxb_wd_tl }
+ { \spb_boxwd_script_align:nn { boxa } { boxb } }
+ { \spb_boxwd_script_align:nn { boxb } { boxa } }
+ }
+ {
+ \spb_box_max_dim_horizontal:
+ \hbox_overlap_left:n { \spb_tmp_boxa_use: }
+ \hbox_overlap_left:n { \spb_tmp_boxb_use: }
+ }
+ }
+\cs_set_eq:NN \textsuperscript \super
+\cs_set_eq:NN \textsubscript \sub
+\cs_set:Npn \@makefnmark
+ { \hbox:n { \fnmarkfont\super{\@thefnmark}[0pt] } }
+\cs_if_exist:NTF \ftntm@font
+ { \cs_new:Npn \fnmarkfont { \ftntm@font } }
+ { \cs_new:Npn \fnmarkfont { \normalfont } }
+\endinput
+%%
+%% End of file `spbmark.sty'.
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 90a387bb899..ba201125d95 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -709,7 +709,7 @@ my @TLP_working = qw(
songbook songs sort-by-letters soton soul soulutf8 soulpos
soup sourcecodepro sourcesanspro
sourceserifpro
- spacingtricks spalign spark-otf sparklines spath3
+ spacingtricks spalign spark-otf sparklines spath3 spbmark
spectral spectralsequences spelling spie spix
sphack sphdthesis splines splitbib splitindex
spot spotcolor spreadtab spverbatim
diff --git a/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc b/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc
index 61345422a6c..6a69de7dfa4 100644
--- a/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-mathscience.tlpsrc
@@ -185,6 +185,7 @@ depend siunits
depend siunitx
depend skmath
depend spalign
+depend spbmark
depend stanli
depend statex
depend statex2
diff --git a/Master/tlpkg/tlpsrc/spbmark.tlpsrc b/Master/tlpkg/tlpsrc/spbmark.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/spbmark.tlpsrc