diff options
Diffstat (limited to 'macros/latex/contrib/spbmark/spbmark.sty')
-rw-r--r-- | macros/latex/contrib/spbmark/spbmark.sty | 82 |
1 files changed, 48 insertions, 34 deletions
diff --git a/macros/latex/contrib/spbmark/spbmark.sty b/macros/latex/contrib/spbmark/spbmark.sty index 9d8c24a018..b6af3d93c2 100644 --- a/macros/latex/contrib/spbmark/spbmark.sty +++ b/macros/latex/contrib/spbmark/spbmark.sty @@ -9,7 +9,7 @@ % https://creativecommons.org/licenses/by/4.0/legalcode \NeedsTeXFormat{LaTeX2e}[2018/12/31] \RequirePackage{xparse,l3keys2e} -\ProvidesExplPackage{spbmark}{2024/01/08}{1.43} +\ProvidesExplPackage{spbmark}{2024/02/04}{1.45} {Customize superscripts and subscripts} \cs_generate_variant:Nn \box_set_ht:Nn { cv } @@ -23,31 +23,60 @@ \cs_generate_variant:Nn \tl_if_novalue:nF { V } \cs_generate_variant:Nn \tl_if_blank:nF { v } +\cs_set_eq:NN \spb@textsuperscript@save \textsuperscript +\cs_set_eq:NN \spb@textsubscript@save \textsubscript +\cs_set_eq:NN \spb@math@super@save \sp +\cs_set_eq:NN \spb@math@sub@save \sb +\cs_set_eq:NN \spb@@makefnmark@save \@makefnmark \cs_new_protected:Npn \spb_define:n { \keys_define:nn { ctex/style } } \cs_new_protected:Npn \spb_set:n { \keys_set:nn { ctex/style } } \cs_set_eq:NN \spbset \spb_set:n \keys_define:nn { spbmark/option } { - text .bool_set:N = \l_spb_newsupb_text_bool, + text .choice:, + text/true .code:n = + { + \cs_set:Npn \textsuperscript { \super } + \cs_set:Npn \textsubscript { \sub } + }, + text/false .code:n = + { + \cs_set:Npn \textsuperscript { \spb@textsuperscript@save } + \cs_set:Npn \textsubscript { \spb@textsubscript@save } + }, text .default:n = true, - math .bool_set:N = \l_spb_newsupb_math_bool, + math .choice:, + math/true .code:n = + { + \cs_set:Npn \sp { \super } + \cs_set:Npn \sb { \sub } + }, + math/false .code:n = + { + \cs_set:Npn \sp { \spb@math@super@save } + \cs_set:Npn \sb { \spb@math@sub@save } + }, math .default:n = true, - foot .bool_set:N = \l_spb_newsupb_foot_bool, + foot .choice:, + foot/true .code:n = + { + \cs_set:Npn \@makefnmark + { \hbox:n { \fnmarkfont{\super{\@thefnmark}} } } + }, + foot/false .code:n = + { \cs_set:Npn \@makefnmark { \spb@@makefnmark@save } }, foot .default:n = true, - both .meta:n = { text,math }, - both .value_forbidden:n = true, - all .meta:n = { text,math,foot }, - all .value_forbidden:n = true, - ctex .code:n = { }, - newsupb .code:n = { } + both .meta:n = { text = #1,math = #1 }, + both .default:n = true, + all .meta:n = { text = #1,math = #1,foot = #1 }, + all .default:n = true } +\tl_if_exist:NTF \ftntm@font + { \tl_set_eq:NN \fnmarkfont \ftntm@font } + { \tl_set_eq:NN \fnmarkfont \normalfont } \ProcessKeysOptions{spbmark/option} -\cs_set_eq:NN \spb@textsuperscript@save \textsuperscript -\cs_set_eq:NN \spb@textsubscript@save \textsubscript -\cs_set_eq:NN \spb@math@super@save \sp -\cs_set_eq:NN \spb@math@sub@save \sb \tl_new:N \g__spb_mark_case_init_tl \cs_new_protected:Npn \spb_local_case_init:nnn #1#2#3 { @@ -120,6 +149,7 @@ nohmove .meta:n = { sphmove = 0pt,sbhmove = 0pt }, novmove .meta:n = { spvmove = 0pt,sbvmove = 0pt } } + \cs_new:Npn \spb_box_super_move_up_i:n #1 { \box_move_up:nn {#1} { \box_use:N \l__super_i_inner_box } } \cs_new:Npn \spb_box_sub_move_down_i:n #1 @@ -313,7 +343,6 @@ \group_begin: \mode_leave_vertical: \tl_gset:Nn \g__spb_mark_case_init_tl {#1} - \spb_define:n { unknown .undefine: } \spb_set:n { ##2,##4 } \spb_mode_switch:nnn {#1} {##3} { i } \spb_content_hbox_set:nn {#1} {##1} @@ -445,26 +474,11 @@ Alignment~only~supports~l,~c,~and~r. \\ The~l~parameter~will~be~used~by~default. } - -\bool_if:NT \l_spb_newsupb_text_bool - { - \cs_set_eq:NN \textsuperscript \super - \cs_set_eq:NN \textsubscript \sub - } -\bool_if:NT \l_spb_newsupb_math_bool - { - \cs_set_eq:NN \sp \super - \cs_set_eq:NN \sb \sub - } -\bool_if:NT \l_spb_newsupb_foot_bool - { - \cs_set:Npn \@makefnmark - { \hbox:n { \fnmarkfont{\super{\@thefnmark}} } } - } +\@ifpackageloaded{easybase} + {\ctex_gadd_package_hook:nnn { after } { easybase }} + {\use:n} + { \keys_define:nn { } { ctex/style .inherit:n = spbmark/option } } \cs_set_eq:NN \spb \supersub -\tl_if_exist:NTF \ftntm@font - { \tl_set_eq:NN \fnmarkfont \ftntm@font } - { \tl_set_eq:NN \fnmarkfont \normalfont } \endinput % % End of file `spbmark.sty'.
\ No newline at end of file |