summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-12-28 22:49:47 +0000
committerKarl Berry <karl@freefriends.org>2021-12-28 22:49:47 +0000
commita76a5a98b10442234e0a271beedc8e4d87b8fa2c (patch)
tree2366adbe7ad509d91c27d68fb2f179f5819a7b6a /Master/texmf-dist/tex
parent56ac1365c7005140628d290b0e96841fa38f6730 (diff)
diffcoeff (28dec21)
git-svn-id: svn://tug.org/texlive/trunk@61432 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex')
-rw-r--r--Master/texmf-dist/tex/latex/diffcoeff/diffcoeff-doc.def7
-rw-r--r--Master/texmf-dist/tex/latex/diffcoeff/diffcoeff.sty186
2 files changed, 122 insertions, 71 deletions
diff --git a/Master/texmf-dist/tex/latex/diffcoeff/diffcoeff-doc.def b/Master/texmf-dist/tex/latex/diffcoeff/diffcoeff-doc.def
index 8b6b415acfa..884d41760bf 100644
--- a/Master/texmf-dist/tex/latex/diffcoeff/diffcoeff-doc.def
+++ b/Master/texmf-dist/tex/latex/diffcoeff/diffcoeff-doc.def
@@ -18,15 +18,13 @@
\diffdef { up }
{
op-symbol = \mathrm{d},
- op-order-sep = 0 mu ,
- /-op-order-sep = 0 mu
+ op-order-sep = 0 mu
}
\diffdef { Up }
{
op-symbol = \mathrm{D},
- op-order-sep = 0 mu ,
- /-op-order-sep = 0 mu
+ op-order-sep = 0 mu
}
% wrap long vars: (d longvar)
@@ -80,7 +78,6 @@
{
op-symbol = \Delta ,
op-order-sep = 0 mu ,
- /-op-order-sep = 0 mu ,
left-delim = \left ( ,
right-delim = \right ),
subscr-nudge = -6 mu
diff --git a/Master/texmf-dist/tex/latex/diffcoeff/diffcoeff.sty b/Master/texmf-dist/tex/latex/diffcoeff/diffcoeff.sty
index 3d952355faf..8ecaf599508 100644
--- a/Master/texmf-dist/tex/latex/diffcoeff/diffcoeff.sty
+++ b/Master/texmf-dist/tex/latex/diffcoeff/diffcoeff.sty
@@ -9,22 +9,26 @@
%
\RequirePackage{expl3}
\RequirePackage{xparse,l3keys2e,xtemplate}
-\ProvidesExplPackage {diffcoeff} {2019/12/28} {3.2}
+\ProvidesExplPackage {diffcoeff} {2021/12/24} {4.0}
{Write differential coefficients consistently and easily.}
-%
+%
\keys_define:nn { diffcoeff }
{
- ISO .bool_gset:N = \g__diffcoeff_ISO_bool,
- def-file .tl_gset:N = \g__diffcoeff_def_tl ,
- def-file .initial:n = diffcoeff ,
+ ISO .bool_set:N = \l__diffcoeff_ISO_bool,
+ spaced .int_set:N = \l__diffcoeff_spaced_int,
+ spaced .default:n = 1,
+ spaced .initial:n = 0,
+ def-file .tl_gset:N = \g__diffcoeff_def_tl,
+ def-file .initial:n = diffcoeff,
def-file .default:n = diffcoeff
}
\ProcessKeysPackageOptions { diffcoeff }
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\cs_generate_variant:Nn \tl_if_eq:nnTF { nV }
\tl_new:N \l__diffcoeff_oporder_tl
-\tl_new:N \l__diffcoeff_differentiand_tl
+\tl_new:N \l__diffcoeff_derivand_tl
\tl_new:N \l__diffcoeff_type_tl
\tl_new:N \l__diffcoeff_tot_order_tl
\tl_new:N \l__diffcoeff_curr_num_tl
@@ -45,6 +49,8 @@
\bool_new:N \l__diffcoeff_single_var_bool
\bool_new:N \l__diffcoeff_opwrap_bool
\bool_new:N \l__diffcoeff_integ_bool
+\bool_new:N \l__diffcoeff_spaced_bool
+\bool_new:N \l__diffcoeff_altsep_bool
\int_new:N \l__diffcoeff_vars_int
\int_new:N \l__diffcoeff_format_int
@@ -62,36 +68,36 @@
op-symbol : tokenlist = d ,
op-symbol-alt : tokenlist = \KeyValue { op-symbol },
op-order-sep : muskip = 1 mu ,
- /-op-order-sep : muskip = 1 mu ,
- *-op-left : boolean = false ,
- *-italic-nudge : muskip = 3 mu ,
- */-op-wrap : boolean = true ,
+ derivand-sep : muskip = 3 mu plus 1 mu minus 2 mu,
long-var-wrap : choice { dv, d(v), (dv) }
= d(v) ,
denom-term-sep : muskip = 2 mu ,
- /-denom-term-sep : muskip = 1 mu ,
term-sep-adjust : muskip = -1 mu ,
left-delim : tokenlist = \left . ,
right-delim : tokenlist = \right |,
elbowroom : muskip = 0 mu ,
subscr-nudge : muskip = 0 mu ,
+ *-derivand-sep : muskip = \KeyValue { derivand-sep },
+ *-op-left : boolean = false ,
+ *-italic-nudge : muskip = 3 mu ,
+ /-derivand-sep : muskip = \KeyValue { derivand-sep },
+ /-denom-term-sep : muskip = 1 mu ,
/-left-delim : tokenlist = ( ,
/-right-delim : tokenlist = ) ,
/-elbowroom : muskip = 0 mu ,
- /-subscr-nudge : muskip = 0 mu
+ /-subscr-nudge : muskip = 0 mu ,
+ */-derivand-sep : muskip = \KeyValue { /-derivand-sep },
+ */-op-wrap : boolean = true
}
% #1 order spec(seqvar); #2 order override(tlvar)
-% #3 differentiand(tlvar); #4 denominator(seqvar)
+% #3 derivand(tlvar); #4 denominator(seqvar)
% #5 subscript(tlvar)
\DeclareTemplateCode { derivative } { DERIV } { 5 }
{
- op-symbol = \l__diffcoeff_op_tl ,
- op-symbol-alt = \l__diffcoeff_op_alt_tl ,
- op-order-sep = \l__diffcoeff_oporder_muskip ,
- /-op-order-sep = \l_tmpa_muskip ,
- *-op-left = \l__diffcoeff_op_left_bool ,
- *-italic-nudge = \l__diffcoeff_opnudge_muskip ,
- */-op-wrap = \l__diffcoeff_opwrap_bool ,
+ op-symbol = \l__diffcoeff_op_tl,
+ op-symbol-alt = \l__diffcoeff_op_alt_tl,
+ op-order-sep = \l__diffcoeff_oporder_muskip,
+ derivand-sep = \l__diffcoeff_derivsep_muskip,
long-var-wrap = {
dv = \cs_set:Npn \__diffcoeff_wrap_longvars:nn #1#2
{ \l__diffcoeff_op_alt_tl {#2}^{#1} },
@@ -101,18 +107,24 @@
{ (\l__diffcoeff_op_alt_tl {#2)}^{#1} },
unknown = \cs_set:Npn \__diffcoeff_wrap_longvars:nn #1#2
{ \l__diffcoeff_op_alt_tl {(#2)}^{#1} }
- } ,
- denom-term-sep = \l__diffcoeff_varsep_muskip ,
- /-denom-term-sep = \l_tmpb_muskip ,
- term-sep-adjust = \l__diffcoeff_sep_adj_muskip ,
- left-delim = \l__diffcoeff_ldelim_tl ,
- right-delim = \l__diffcoeff_rdelim_tl ,
+ },
+ denom-term-sep = \l__diffcoeff_varsep_muskip,
+ term-sep-adjust = \l__diffcoeff_sep_adj_muskip,
+ left-delim = \l__diffcoeff_ldelim_tl,
+ right-delim = \l__diffcoeff_rdelim_tl,
elbowroom = \l__diffcoeff_elbowrm_muskip ,
subscr-nudge = \l__diffcoeff_subnudge_muskip,
- /-left-delim = \l_tmpa_tl ,
- /-right-delim = \l_tmpb_tl ,
- /-elbowroom = \l_tmpc_muskip ,
- /-subscr-nudge = \l_tmpd_muskip
+ *-derivand-sep = \l__diffcoeff_derivsepi_muskip,
+ *-op-left = \l__diffcoeff_op_left_bool,
+ *-italic-nudge = \l__diffcoeff_opnudge_muskip,
+ /-derivand-sep = \l__diffcoeff_derivsepii_muskip,
+ /-denom-term-sep = \l_tmpb_muskip,
+ /-left-delim = \l__diffcoeff_ldelimi_tl,
+ /-right-delim = \l__diffcoeff_rdelimi_tl,
+ /-elbowroom = \l_tmpc_muskip,
+ /-subscr-nudge = \l_tmpd_muskip,
+ */-derivand-sep = \l__diffcoeff_derivsepiii_muskip,
+ */-op-wrap = \l__diffcoeff_opwrap_bool
}
{
\AssignTemplateKeys
@@ -127,32 +139,43 @@
%%%%%%%%%%
\cs_new:Npn \__diffcoeff_slash_vals:
{
- \muskip_set:Nn \l__diffcoeff_oporder_muskip \l_tmpa_muskip
- \muskip_set:Nn \l__diffcoeff_varsep_muskip \l_tmpb_muskip
- \muskip_set:Nn \l__diffcoeff_elbowrm_muskip \l_tmpc_muskip
+ \muskip_set:Nn \l__diffcoeff_varsep_muskip \l_tmpb_muskip
+ \muskip_set:Nn \l__diffcoeff_elbowrm_muskip \l_tmpc_muskip
\muskip_set:Nn \l__diffcoeff_subnudge_muskip \l_tmpd_muskip
- \tl_set:NV \l__diffcoeff_ldelim_tl \l_tmpa_tl
- \tl_set:NV \l__diffcoeff_rdelim_tl \l_tmpb_tl
+ \tl_set:NV \l__diffcoeff_ldelim_tl \l__diffcoeff_ldelimi_tl
+ \tl_set:NV \l__diffcoeff_rdelim_tl \l__diffcoeff_rdelimi_tl
}
\cs_new:Npn \__diffcoeff_build:NNNNN #1#2#3#4#5
{
- \bool_if:NF \l__diffcoeff_opwrap_bool
+ \bool_if:nT
+ {
+ !\l__diffcoeff_opwrap_bool &&
+ \int_compare_p:nNn { \l__diffcoeff_format_int } > { 1 }
+ }
{ \int_set:Nn \l__diffcoeff_format_int { 4 } }
+ \__diffcoeff_spaced:n { \l__diffcoeff_spaced_int }
+ \bool_if:nTF
+ {
+ ( \l__diffcoeff_altsep_bool && !\l__diffcoeff_spaced_bool )
+ || ( !\l__diffcoeff_altsep_bool && \l__diffcoeff_spaced_bool )
+ }
+ { \__diffcoeff_derivsep: }
+ { \tl_put_left:Nn \l__diffcoeff_derivand_tl { \mskip 0 mu } }
\exp_args:NV\tl_if_novalue:nF #5
- { \l__diffcoeff_ldelim_tl \mkern \l__diffcoeff_elbowrm_muskip }
+ { \l__diffcoeff_ldelim_tl \mskip \l__diffcoeff_elbowrm_muskip }
\bool_if:NTF \l__diffcoeff_single_var_bool
{
\tl_set:Nx \l_tmpa_tl { \seq_use:Nn #4 { , } }
\__diffcoeff_single:NNN #2 #3 \l_tmpa_tl
}
- {
+ {
\int_zero:N \l_tmpa_int
\seq_mapthread_function:NNN #1 #4 \__diffcoeff_map_orders:nn
\__diffcoeff_mixed:NNN #2 #3 \l__diffcoeff_denom_seq
}
\exp_args:NV\tl_if_novalue:nF #5
{
- \mkern \l__diffcoeff_elbowrm_muskip \l__diffcoeff_rdelim_tl
+ \mskip \l__diffcoeff_elbowrm_muskip \l__diffcoeff_rdelim_tl
\exp_args:NV\tl_if_empty:nF #5
{
\c_math_subscript_token
@@ -161,6 +184,35 @@
}
}
%%%%%%%%%%%%%%%%%%%%
+\cs_new_protected:Npn \__diffcoeff_spaced:n #1
+ {
+ \int_case:nn { \int_sign:n { #1 } }
+ {
+ { 1 } { \bool_set_true:N \l__diffcoeff_spaced_bool }
+ { 0 } { \bool_set_false:N \l__diffcoeff_spaced_bool }
+ { -1 }
+ {
+ \int_compare:nNnTF { 1 } <
+ { \tl_count:N \l__diffcoeff_derivand_tl }
+ { \bool_set_true:N \l__diffcoeff_spaced_bool }
+ { \bool_set_false:N \l__diffcoeff_spaced_bool }
+ }
+ }
+ }
+\cs_new_protected:Npn \__diffcoeff_derivsep:
+ {
+ \tl_put_left:Nx \l__diffcoeff_derivand_tl
+ {
+ \int_case:nn { \l__diffcoeff_format_int }
+ {
+ { 0 } { \mskip \l__diffcoeff_derivsep_muskip }
+ { 1 } { \mskip \l__diffcoeff_derivsepi_muskip }
+ { 2 } { \mskip \l__diffcoeff_derivsepii_muskip }
+ { 3 } { \mskip \l__diffcoeff_derivsepiii_muskip }
+ { 4 } { \mskip \l__diffcoeff_derivsepiii_muskip }
+ }
+ }
+ }
% (ptl) form denom from #1 orders seq & #2 vars seq
\cs_new_protected:Npn \__diffcoeff_map_orders:nn #1#2
{
@@ -184,16 +236,16 @@
\__diffcoeff_numer:N { #1 }
\__diffcoeff_form_deriv:NNn
\l__diffcoeff_oporder_tl
- \l__diffcoeff_differentiand_tl
+ \l__diffcoeff_derivand_tl
{ \__diffcoeff_denom_single:NN #1 #3 }
}
-% #1 total order; #2 differentiand; #3 denom seq
+% #1 total order; #2 derivand; #3 denom seq
\cs_new_protected:Npn \__diffcoeff_mixed:NNN #1#2#3
{
\__diffcoeff_numer:N #1
\__diffcoeff_form_deriv:NNn
\l__diffcoeff_oporder_tl
- \l__diffcoeff_differentiand_tl
+ \l__diffcoeff_derivand_tl
{ \__diffcoeff_denom_sep:N #3 }
}
\cs_new:Npn \__diffcoeff_denom_sep:N #1
@@ -206,9 +258,9 @@
{
\seq_pop:NN \l__diffcoeff_orders_seq \l_tmpa_tl
\str_if_eq:VnTF \l_tmpa_tl { 1 }
- { \mkern \l__diffcoeff_varsep_muskip }
+ { \mskip \l__diffcoeff_varsep_muskip }
{
- \mkern \muskip_eval:n { \l__diffcoeff_varsep_muskip +
+ \mskip \muskip_eval:n { \l__diffcoeff_varsep_muskip +
\l__diffcoeff_sep_adj_muskip }
}
}
@@ -244,16 +296,16 @@
}
}
% #1 op+order; #2 diff'iand; #3 denom
-% 0 frac; 1 frac append; 2 slash ; 3 slash append
+% 0 frac; 1 frac append; 2 slash ; 3 ( slash ) append; 4 slash append
\cs_new:Npn \__diffcoeff_form_deriv:NNn #1#2#3
{
\int_case:nn { \l__diffcoeff_format_int }
{
{ 0 } { \frac { #1 #2 } { #3 } }
- { 1 } { \frac { #1 } { #3 } { #2 } }
+ { 1 } { \frac { #1 } { #3 } #2 }
{ 2 } { #1 #2 / #3 }
- { 3 } { ( #1 / #3 ) { #2 } }
- { 4 } { #1 / #3 { #2 } }
+ { 3 } { ( #1 / #3 ) #2 }
+ { 4 } { #1 / #3 #2 }
}
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -274,25 +326,27 @@
\l__diffcoeff_orders_seq \l__diffcoeff_tot_order_tl
\c_empty_tl \c_empty_seq \c_empty_tl
\tl_if_in:NnTF \c__diffcoeff_digits_tl { #3 }
- { \mkern \IfBooleanT #2 { - }#3 mu \l__diffcoeff_op_tl \group_end: }
+ { \mskip \IfBooleanT #2 { - }#3 mu \l__diffcoeff_op_tl \group_end: }
{ \l__diffcoeff_op_tl \group_end: {} #3 }
}
-\NewDocumentCommand \negmu {} { \mkern -1 mu }
-\NewDocumentCommand \nilmu {} { \mkern 0 mu }
-\NewDocumentCommand \onemu {} { \mkern 1 mu }
-\NewDocumentCommand \twomu {} { \mkern 2 mu }
+\NewDocumentCommand \negmu {} { \mskip -1 mu }
+\NewDocumentCommand \nilmu {} { \mskip 0 mu }
+\NewDocumentCommand \onemu {} { \mskip 1 mu }
+\NewDocumentCommand \twomu {} { \mskip 2 mu }
% derivative
% #1(tl) = name of variant; #2(*)= append diff'iand boolean
% #3(clist) = orders of diff. in each var.; #4(tl) = order override
-% #5(tl) = diff'iand; #6( / ) = slash boolean
-% #7(clist) = vars of diff.; #8(tl) = pt of eval./vars held const
-% #9(tl) = as #8 (for backwards compat)
-\NewDocumentCommand \diff { d.. s O{1} o m t/ m !O{#9} g }
+% #5(bool) spacing switch; #6(tl) = diff'iand; #7( / ) = slash boolean
+% #8(clist) = vars of diff.; #9(tl) = pt of eval./vars held const
+\NewDocumentCommand \diff { d.. s O{1} o t! >{\TrimSpaces} m t/ m !o }
{
\group_begin:
- \tl_set:Nn \l__diffcoeff_differentiand_tl { #5 }
- \tl_set:Nn \l__diffcoeff_trailing_tl { #8 }
- \seq_set_from_clist:Nn \l__diffcoeff_vars_seq { #7 }
+ \IfBooleanTF #5
+ { \bool_set_true:N \l__diffcoeff_altsep_bool }
+ { \bool_set_false:N \l__diffcoeff_altsep_bool }
+ \tl_set:Nn \l__diffcoeff_derivand_tl { #6 }
+ \tl_set:Nn \l__diffcoeff_trailing_tl { #9 }
+ \seq_set_from_clist:Nn \l__diffcoeff_vars_seq { #8 }
\seq_set_from_clist:Nn \l__diffcoeff_orders_seq { #3 }
\int_set:Nn \l__diffcoeff_vars_int
{ \seq_count:N \l__diffcoeff_vars_seq }
@@ -330,12 +384,11 @@
% append? slash?
\int_zero:N \l__diffcoeff_format_int
\IfBooleanT #2 { \int_incr:N \l__diffcoeff_format_int }
- \IfBooleanT #6 { \int_add:Nn \l__diffcoeff_format_int { 2 } }
-
+ \IfBooleanT #7 { \int_add:Nn \l__diffcoeff_format_int { 2 } }
\UseInstance { derivative } { ord\l__diffcoeff_type_tl }
\l__diffcoeff_orders_seq
\l__diffcoeff_tot_order_tl
- \l__diffcoeff_differentiand_tl
+ \l__diffcoeff_derivand_tl
\l__diffcoeff_vars_seq
\l__diffcoeff_trailing_tl
\group_end:
@@ -616,7 +669,7 @@
% ordinary & D
\DeclareInstance { derivative } { ord } { DERIV } { }
-\bool_if:NTF \g__diffcoeff_ISO_bool
+\bool_if:NTF \l__diffcoeff_ISO_bool
{
\diffdef { }
{
@@ -638,7 +691,8 @@
right-delim = \right ) ,
subscr-nudge = -6 mu
}
-\NewDocumentCommand \diffp { } { \diff.p. }
+\NewDocumentCommand \diffp {} { \diff.p. }
+\NewDocumentCommand \dlp {} { \dl.p. }
% delta
\diffdef { delta }