summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-11-09 22:22:30 +0000
committerKarl Berry <karl@freefriends.org>2023-11-09 22:22:30 +0000
commit505a56e1165bf155cf9e8ffc75f82f44c02b962e (patch)
tree29b5543e925fdeec050b56aa0db4ab2bdb08a89e /Master/texmf-dist/tex/latex
parent949858f107b700e471d3d975439c0f8e9052aaaa (diff)
derivative (4nov23)
git-svn-id: svn://tug.org/texlive/trunk@68787 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r--Master/texmf-dist/tex/latex/derivative/derivative.sty135
1 files changed, 65 insertions, 70 deletions
diff --git a/Master/texmf-dist/tex/latex/derivative/derivative.sty b/Master/texmf-dist/tex/latex/derivative/derivative.sty
index 1b475c8eb35..6948795968b 100644
--- a/Master/texmf-dist/tex/latex/derivative/derivative.sty
+++ b/Master/texmf-dist/tex/latex/derivative/derivative.sty
@@ -1,6 +1,6 @@
% derivative.sty
% Copyright 2019-2023 Simon Jensen
-%
+%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
@@ -8,9 +8,9 @@
% http://www.latex-project.org/lppl.txt
% and version 1.3 or later is part of all distributions of LaTeX
% version 2005/12/01 or later.
-%
+%
% This work has the LPPL maintenance status `maintained'.
-%
+%
% The Current Maintainer of this work is Simon Jensen.
% Contributors: Romain Noel
@@ -19,7 +19,7 @@
\RequirePackage{expl3}[2021/11/07]
\RequirePackage{xparse}[2021/11/07]
\RequirePackage{l3keys2e}
-\ProvidesExplPackage{derivative}{2023/07/26}{1.3}{Nice and easy derivatives and differentials for LaTeX}
+\ProvidesExplPackage{derivative}{2023/11/04}{1.31}{Nice and easy derivatives and differentials for LaTeX}
\bool_new:N \l__deriv_pkg_italic_bool
\bool_new:N \l__deriv_pkg_upright_bool
@@ -29,7 +29,7 @@
italic .choice:,
italic .usage:n = { load },
italic .default:n = { true },
- italic / true .code:n =
+ italic / true .code:n =
{
\bool_set_true:N \l__deriv_pkg_italic_bool
\bool_set_false:N \l__deriv_pkg_upright_bool
@@ -40,11 +40,11 @@
\bool_set_true:N \l__deriv_pkg_upright_bool
},
italic / unknown .code:n = { \msg_error:nnx { deriv } { boolean-values-only } \l_keys_key_str },
-
+
upright .choice:,
upright .usage:n = { load },
upright .default:n = { true },
- upright / true .code:n =
+ upright / true .code:n =
{
\bool_set_true:N \l__deriv_pkg_upright_bool
\bool_set_false:N \l__deriv_pkg_italic_bool
@@ -280,7 +280,7 @@
style-var-/! .choices:nn = { single, multiple, mixed } { \__deriv_i_set_style_var:nnn {dv_#1} {##1} { _slash_compact } },
style-frac .cs_set:cp = { __deriv_dv_#1_style_frac:nn } {##1},
style-frac-/ .cs_set:cp = { __deriv_dv_#1_style_frac_slash:nn } {##1},
-
+
scale-eval .choices:nn = { auto, none, big, Big, bigg, Bigg } { \__deriv_set_scale:nnn {dv_#1} {##1} { eval } },
scale-eval-/ .choices:nn = { auto, none, big, Big, bigg, Bigg } { \__deriv_set_scale:nnn {dv_#1} {##1} { eval_slash } },
scale-eval-! .choices:nn = { auto, none, big, Big, bigg, Bigg } { \__deriv_set_scale:nnn {dv_#1} {##1} { eval_compact } },
@@ -289,7 +289,7 @@
scale-var-! .choices:nn = { auto, none, big, Big, bigg, Bigg } { \__deriv_set_scale:nnn {dv_#1} {##1} { var_compact } },
scale-frac .choices:nn = { auto, none, big, Big, bigg, Bigg } { \__deriv_set_scale:nnn {dv_#1} {##1} { frac } },
scale-frac-/ .choices:nn = { auto, none, big, Big, bigg, Bigg } { \__deriv_set_scale:nnn {dv_#1} {##1} { frac_slash } },
-
+
delims-eval .tl_set:c = { l__deriv_dv_#1_delims_eval_tl },
delims-eval-/ .tl_set:c = { l__deriv_dv_#1_delims_eval_slash_tl },
delims-eval-! .tl_set:c = { l__deriv_dv_#1_delims_eval_compact_tl },
@@ -298,7 +298,7 @@
delims-var-! .tl_set:c = { l__deriv_dv_#1_delims_var_compact_tl },
delims-frac .tl_set:c = { l__deriv_dv_#1_delims_frac_tl },
delims-frac-/ .tl_set:c = { l__deriv_dv_#1_delims_frac_slash_tl },
-
+
sep-inf-ord .code:n = { \__deriv_set_rubber_length:cn { l__deriv_dv_#1_sep_inf_ord_tl } {##1} },
sep-inf-fun .code:n = { \__deriv_set_rubber_length:cn { l__deriv_dv_#1_sep_inf_fun_tl } {##1} },
sep-ord-fun .code:n = { \__deriv_set_rubber_length:cn { l__deriv_dv_#1_sep_ord_fun_tl } {##1} },
@@ -312,12 +312,12 @@
sep-var-var .code:n = { \__deriv_set_rubber_length:cn { l__deriv_dv_#1_sep_var_var_tl } {##1} },
sep-eval-sb .code:n = { \__deriv_set_rubber_length:cn { l__deriv_dv_#1_sep_eval_sb_tl } {##1} },
sep-eval-sp .code:n = { \__deriv_set_rubber_length:cn { l__deriv_dv_#1_sep_eval_sp_tl } {##1} },
-
+
switch-* .bool_set:c = { l__deriv_dv_#1_switch_star_bool },
switch-/ .bool_set:c = { l__deriv_dv_#1_switch_slash_bool },
switch-! .bool_set:c = { l__deriv_dv_#1_switch_compact_bool },
switch-sort .bool_set:c = { l__deriv_dv_#1_switch_sort_bool },
-
+
sort-method .code:n = { \__deriv_set_sort_method:nn {#1} {##1} },
sort-numerical .choices:nn = { auto, first, last, symbolic } { \tl_set:cn { l__deriv_dv_#1_sort_numerical_tl } {##1} },
sort-abs-reverse .bool_set:c = { l__deriv_dv_#1_sort_abs_reverse_bool },
@@ -325,12 +325,12 @@
sort-number-reverse .bool_set:c = { l__deriv_dv_#1_sort_number_reverse_bool },
sort-sign-reverse .bool_set:c = { l__deriv_dv_#1_sort_sign_reverse_bool },
sort-symbol-reverse .bool_set:c = { l__deriv_dv_#1_sort_symbol_reverse_bool },
-
+
fun .bool_set:c = { l__deriv_dv_#1_misc_fun_bool },
frac .bool_set:c = { l__deriv_dv_#1_misc_frac_bool },
var .clist_set:c = { l__deriv_dv_#1_misc_var_clist },
var .default:n = {all},
-
+
order .clist_set:c = { l__deriv_dv_#1_misc_order_clist },
ord .meta:n = { order={##1} },
mixed-order .tl_set:c = { l__deriv_dv_#1_misc_mixed_order_tl },
@@ -348,13 +348,13 @@
style-inf .tl_set:c = { l__deriv_i_#1_style_inf_tl },
style-var .choices:nn = { single, multiple, mixed } { \__deriv_i_set_style_var:nnn {i_#1} {##1} { } },
style-var-* .choices:nn = { single, multiple, mixed } { \__deriv_i_set_style_var:nnn {i_#1} {##1} { _star } },
-
+
scale-var .choices:nn = { auto, none, big, Big, bigg, Bigg } { \__deriv_set_scale:nnn {i_#1} {##1} { var } },
scale-var-* .choices:nn = { auto, none, big, Big, bigg, Bigg } { \__deriv_set_scale:nnn {i_#1} {##1} { var_star } },
-
+
delims-var .tl_set:c = { l__deriv_i_#1_delims_var_tl },
delims-var-* .tl_set:c = { l__deriv_i_#1_delims_var_star_tl },
-
+
sep-begin .code:n = { \__deriv_set_rubber_length:cn { l__deriv_i_#1_sep_begin_tl } {##1} },
sep-inf-ord .code:n = { \__deriv_set_rubber_length:cn { l__deriv_i_#1_sep_inf_ord_tl } {##1} },
sep-inf-var .code:n = { \__deriv_set_rubber_length:cn { l__deriv_i_#1_sep_inf_var_tl } {##1} },
@@ -363,12 +363,12 @@
sep-var-var .code:n = { \__deriv_set_rubber_length:cn { l__deriv_i_#1_sep_var_var_tl } {##1} },
sep-ord-ord .code:n = { \__deriv_set_rubber_length:cn { l__deriv_i_#1_sep_ord_ord_tl } {##1} },
sep-end .code:n = { \__deriv_set_rubber_length:cn { l__deriv_i_#1_sep_end_tl } {##1} },
-
+
switch-* .bool_set:c = { l__deriv_i_#1_switch_star_bool },
-
+
var .clist_set:c = { l__deriv_i_#1_misc_var_clist },
var .default:n = {all},
-
+
order .clist_set:c = { l__deriv_i_#1_misc_order_clist },
ord .clist_set:c = { l__deriv_i_#1_misc_order_clist },
}
@@ -379,7 +379,7 @@
{
\seq_clear:c { l__deriv_dv_#1_sort_method_seq }
\seq_set_from_clist:Nn \l__deriv_tmpa_seq {#2}
-
+
\seq_map_indexed_inline:Nn \l__deriv_tmpa_seq
{
\str_case:nn {##2}
@@ -483,7 +483,7 @@
\cs_new_protected:Npn \deriv_preamble:NNnnn #1 #2 #3 #4 #5
{
\tl_set:Nx #1 { \cs_to_str:N #2 }
-
+
\tl_if_novalue:nTF {#4}
{ \__deriv_preamble_aux:Vnn #1 { style-inf={#3} } {#5} }
{ \__deriv_preamble_aux:Vnn #1 { style-inf={#3}, #4} {#5} }
@@ -544,7 +544,7 @@
\tl_if_novalue:nTF {#2}
{ \prop_set_eq:cc { l__deriv_#3_#1_user_keys_prop } { c__deriv_#3_pkg_keys_prop } }
{ \prop_put_from_keyval:cn { l__deriv_#3_#1_user_keys_prop } {#2} }
-
+
\__deriv_set_default_auxi:cnn { l__deriv_#3_#1_user_keys_prop } {#1} {#3}
\keys_set:nn { deriv/#3/#1 } { default }
}
@@ -561,7 +561,7 @@
{
\group_begin:
\deriv_local_keys:nnn {##2} { dv } {#2}
-
+
\exp_args:Nnc \bool_xor:nnTF {##5} { l__deriv_dv_#2_switch_compact_bool }
{
\exp_args:Nnc \bool_xor:nnTF {##4} { l__deriv_dv_#2_switch_slash_bool }
@@ -591,7 +591,7 @@
{
\group_begin:
\deriv_local_keys:nnn {##2} { i } {#2}
-
+
\exp_args:Nnc \bool_xor:nnTF {##1} { l__deriv_i_#2_switch_star_bool }
{ \__deriv_inf_star:nn {i_#2} {##3} }
{ \__deriv_inf_none:nn {i_#2} {##3} }
@@ -707,9 +707,9 @@
\tl_clear:N #1
\seq_set_from_clist:Nn \l__deriv_dv_var_seq {#3}
\seq_set_from_clist:Nc \l__deriv_dv_order_seq { l__deriv_#2_misc_order_clist }
-
+
\tl_use:c { l__deriv_#2_style_var#4_tl } \l__deriv_dv_var_seq \l__deriv_dv_order_seq #1 {#2} {#4}
-
+
% Legacy development code from when `style-var-/` was not available
%\tl_if_eq:nnTF {#4} { _slash } %TODO: Find a better solution
%{ \tl_use:c { l__deriv_#2_style_var_tl } \l__deriv_dv_var_seq \l__deriv_dv_order_seq #1 {#2} {#4} }
@@ -720,12 +720,12 @@
{
\int_set:Nn \l__deriv_var_count_int { \seq_count:N #1 }
\__deriv_adjust_ord_seq:NN \l__deriv_var_count_int #2
-
- \str_if_eq:cNT { l__deriv_#4_misc_mixed_order_tl } 1
+
+ \str_if_eq:cNT { l__deriv_#4_misc_mixed_order_tl } 1
{ \__deriv_mixed_order:cNn { l__deriv_#4_misc_mixed_order_tl } #2 {#4} }
-
+
\__deriv_var_bool_seq:cNN { l__deriv_#4_misc_var_clist } \l__deriv_tmpa_seq \l__deriv_var_count_int
-
+
\seq_map_indexed_inline:Nn #1
{
\seq_pop_left:NN #2 \l__deriv_tmpa_tl
@@ -753,19 +753,13 @@
{
\int_set:Nn \l__deriv_var_count_int { \seq_count:N #1 }
\tl_set:Nf \l__deriv_tmpa_tl { \seq_use:Nn #1 { \__deriv_insert_mskip:nn {#4} { var_var } } }
-
+
\__deriv_var_bool_seq:cNN { l__deriv_#4_misc_var_clist } \l__deriv_tmpa_seq \l__deriv_var_count_int
\int_set:Nn \l__deriv_tmpa_int { \seq_count:N #2 }
+
+ % Temporary store the order argument
+ \tl_set:Nf \l__deriv_tmpb_tl { \seq_use:Nn #2 { \__deriv_insert_mskip:nn {#4} { ord_ord } } }
- \seq_map_indexed_inline:Nn #2
- {
- \tl_put_right:Nx \l__deriv_tmpb_tl
- {
- \exp_not:n {##2}
- \int_compare:nNnF {##1} = { \l__deriv_tmpa_int }
- { \__deriv_insert_mskip:nn {#4} { ord_ord } }
- }
- }
\seq_pop_left:NN \l__deriv_tmpa_seq \l__deriv_tmpc_tl
\tl_put_right:Nx #3
{
@@ -775,6 +769,7 @@
\__deriv_show_order:NT \l__deriv_tmpb_tl
{ \__deriv_insert_ord:Nnn \l__deriv_tmpb_tl {#4} { var_ord } }
}
+
\str_if_eq:cNT { l__deriv_#4_misc_mixed_order_tl } 1
{ \tl_set_eq:cN { l__deriv_#4_misc_mixed_order_tl } \l__deriv_tmpb_tl }
}
@@ -812,13 +807,13 @@
\cs_new_protected:Npn \__deriv_adjust_trailing_ord:NN #1 #2
{
\int_set:Nn \l__deriv_vmo_int { \seq_count:N #2 - \seq_count:N #1 }
-
+
\int_compare:nNnT { \l__deriv_vmo_int } < { 0 }
{
\int_step_inline:nn { -1*\l__deriv_vmo_int }
{ \seq_pop_right:NN #1 \l__deriv_tmpa_tl }
}
-
+
\int_step_inline:nn { \seq_count:N #1 }
{
\seq_pop_right:NN #1 \l__deriv_tmpa_tl
@@ -857,7 +852,7 @@
\tl_clear:N #1
\seq_set_from_clist:Nn \l__deriv_i_var_seq {#3}
\seq_set_from_clist:Nc \l__deriv_i_order_seq { l__deriv_#2_misc_order_clist }
-
+
\tl_if_eq:nnTF {#4} { _slash_compact } %TODO: Find a better solution
{ \tl_use:c { l__deriv_#2_style_var#4_tl } \l__deriv_i_var_seq \l__deriv_i_order_seq #1 {#2} { _compact } {#5} }
{ \tl_use:c { l__deriv_#2_style_var#4_tl } \l__deriv_i_var_seq \l__deriv_i_order_seq #1 {#2} {#4} {#5} }
@@ -869,9 +864,9 @@
\int_set:Nn \l__deriv_var_count_int { \seq_count:N #1 }
\__deriv_var_bool_seq:cNN { l__deriv_#4_misc_var_clist } \l__deriv_add_var_bool_seq \l__deriv_var_count_int
\__deriv_adjust_trailing_ord:NN #2 #1
-
+
\int_set:Nn \l__deriv_tmpa_int { \seq_count:N #2 }
-
+
\seq_map_indexed_inline:Nn #1
{
\seq_pop_left:NN \l__deriv_add_var_bool_seq \l__deriv_tmpa_tl
@@ -915,7 +910,7 @@
\int_set:Nn \l__deriv_var_count_int { \seq_count:N #1 }
\__deriv_var_bool_seq:cNN { l__deriv_#4_misc_var_clist } \l__deriv_add_var_bool_seq \l__deriv_var_count_int
\__deriv_adjust_ord_seq:NN \l__deriv_var_count_int #2
-
+
\seq_map_indexed_inline:Nn #1
{
\seq_pop_left:NN #2 \l__deriv_tmpa_tl
@@ -929,7 +924,7 @@
\__deriv_insert_mskip:nn {#4} { ord_var }
}
{ \__deriv_insert_mskip:nn {#4} { inf_var } }
-
+
\__deriv_insert_var:Nnnn \l__deriv_tmpb_tl {##2} {#4} {#5}
\int_compare:nNnF {##1} = { \l__deriv_var_count_int }
{ \__deriv_insert_mskip:nn {#4} { var_inf } }
@@ -942,7 +937,7 @@
\int_set:Nn \l__deriv_var_count_int { \seq_count:N #1 }
\__deriv_var_bool_seq:cNN { l__deriv_#4_misc_var_clist } \l__deriv_add_var_bool_seq \l__deriv_var_count_int
\__deriv_adjust_ord_seq:NN \l__deriv_var_count_int #2
-
+
\seq_map_indexed_inline:Nn #1
{
\seq_pop_left:NN #2 \l__deriv_tmpa_tl
@@ -1115,7 +1110,7 @@
% dv, name, code
\cs_new:Npn \__deriv_scale_big:nnnn #1 #2 #3 #4
{ \__deriv_scale_big_auxi:ncn {#1} { l__deriv_#2_delims_#3_tl } {#4} }
-% scaling, delims, code
+% scaling, delims, code
\cs_new:Npn \__deriv_scale_big_auxi:nNn #1 #2 #3
{
\tl_use:c { #1 l } { \tl_item:Nn #2 { 1 } }
@@ -1140,7 +1135,7 @@
\tl_replace_all:Nnn \l__deriv_input_tl { -- } { , }
\tl_replace_all:Nnn \l__deriv_input_tl { - } { ,- }
\tl_replace_all:Nnn \l__deriv_input_tl { + } { , }
-
+
\seq_set_split:NnV #1 { , } \l__deriv_input_tl
\seq_remove_all:Nn #1 {}
}
@@ -1158,7 +1153,7 @@
\seq_clear:N #6
\seq_clear:N #7
\tl_clear:N \l__deriv_numerical_tl
-
+
\seq_map_inline:Nn #3
{
\str_if_in:nnTF {##1} /
@@ -1168,7 +1163,7 @@
\tl_clear:N \l__deriv_sym_tmpb_tl
\tl_set:Nn \l__deriv_num_tmpb_tl { 1 }
}
-
+
\__deriv_if_in_two_seq:NNNNTF #4 #5 \l__deriv_sym_tmpa_tl \l__deriv_sym_tmpb_tl
{ \__deriv_update_seq:NNNNV #6 #7 \l__deriv_num_tmpa_tl \l__deriv_num_tmpb_tl \l__deriv_seq_pos_int }
{
@@ -1188,11 +1183,11 @@
{ \int_incr:N \l__deriv_tmpa_int }
{ \tl_map_break: }
}
-
+
\tl_set:Nx #2 { \tl_range:nnn {#3} { 1 } \l__deriv_tmpa_int }
\int_incr:N \l__deriv_tmpa_int
\tl_set:Nx #1 { \tl_range:nnn {#3} \l__deriv_tmpa_int { -1 } }
-
+
\exp_args:NV \str_case:nn #2
{
{ } { \tl_set:Nn #2 { 1 } }
@@ -1207,7 +1202,7 @@
% Currently '1/2m' is being interpreted as '1/(2m)' but technically 'm/2' is the correct way. And should ideally be changed - but not a must right now.
%TODO: Make code to handle the case '(m+n)/xxx' as input correctly with a loop i.e. as 'm/xxx + m/xxx'. Likely has to be done in \deriv_input:nn
\__deriv_extract:NNn #1 #3 {#5}
-
+
%TODO: Temporary solution to: Strip pearentheses from denominator
\str_if_in:nnTF {#6} (
{
@@ -1216,7 +1211,7 @@
{ \__deriv_extract:NNn #2 #4 {#6} }
}
{ \__deriv_extract:NNn #2 #4 {#6} }
-
+
\tl_if_eq:NNT #1 #2
{
\tl_clear:N #1
@@ -1235,11 +1230,11 @@
\tl_set:Nx \l__deriv_tmpb_tl { \seq_item:Nn #4 {##1} }
\int_set:Nn \l__deriv_tmpa_int { \seq_item:Nn #5 {##1} }
\int_set:Nn \l__deriv_tmpb_int { \seq_item:Nn #6 {##1} }
-
+
\int_compare:nNnF \l__deriv_tmpa_int = 0
{
\__deriv_adjust_frac_integers:NN \l__deriv_tmpa_int \l__deriv_tmpb_int
-
+
\__deriv_add_frac_to_seq:NNVVVVn #1 #2 \l__deriv_tmpa_tl \l__deriv_tmpb_tl \l__deriv_tmpa_int \l__deriv_tmpb_int {#7}
}
}
@@ -1379,7 +1374,7 @@
\seq_clear:N #1
\int_step_inline:nn { \seq_count:N #2 }
{ \seq_put_right:Nn #1 {##1} }
-
+
\bool_if:cT { l__deriv_#4_switch_sort_bool }
{
\int_set:Nn \l__deriv_sort_max_int { \seq_count:c { l__deriv_#4_sort_method_seq } }
@@ -1389,7 +1384,7 @@
\tl_set:Nx \l__deriv_sym_tmpb_tl { \seq_item:Nn #2 {##2} }
\tl_set:Nx \l__deriv_num_tmpa_tl { \seq_item:Nn #3 {##1} }
\tl_set:Nx \l__deriv_num_tmpb_tl { \seq_item:Nn #3 {##2} }
-
+
\__deriv_sort_method:cn { l__deriv_#4_sort_method_seq } {#4}
}
}
@@ -1422,7 +1417,7 @@
{
\int_set:Nn \l__deriv_tmpa_int { \tl_count:N \l__deriv_sym_tmpa_tl }
\int_set:Nn \l__deriv_tmpb_int { \tl_count:N \l__deriv_sym_tmpb_tl }
-
+
\int_compare:nNnTF \l__deriv_tmpa_int > \l__deriv_tmpb_int
{ \__deriv_sort_reverse:Nnn \c_false_bool {#1} { symbol } }
{
@@ -1448,7 +1443,7 @@
{
\int_set:Nn \l__deriv_tmpa_int { \int_abs:n \l__deriv_num_tmpa_tl }
\int_set:Nn \l__deriv_tmpb_int { \int_abs:n \l__deriv_num_tmpb_tl }
-
+
\int_compare:nNnTF \l__deriv_tmpa_int > \l__deriv_tmpb_int
{ \__deriv_sort_reverse:Nnn \c_false_bool {#1} { abs } }
{
@@ -1478,7 +1473,7 @@
\cs_new_protected:Npn \__deriv_output:NNNn #1 #2 #3 #4
{
\tl_set:Nf #1 { \seq_use:Nn #2 { + } }
-
+
\tl_if_empty:NF #3
{
\tl_if_empty:NTF #1
@@ -1531,9 +1526,9 @@
{
\tl_set:Nx \l__deriv_gcd_result_tl { \int_to_bin:n { \int_abs:n #1 } }
\tl_set:Nx \l__deriv_gcd_remain_tl { \int_to_bin:n { \int_abs:n #2 } }
-
+
\__deriv_gcd:NN \l__deriv_gcd_result_tl \l__deriv_gcd_remain_tl
-
+
\int_set:Nn #1 { #1 / \l__deriv_gcd_result_tl }
\int_set:Nn #2 { #2 / \l__deriv_gcd_result_tl }
}
@@ -1549,15 +1544,15 @@
\deriv_binary_shift_right:N #2
\int_incr:N \l__deriv_gcd_counter_int
}
-
+
\bool_while_do:nn { \deriv_binary_if_even_p:N #1 }
{ \deriv_binary_shift_right:N #1 }
-
+
\bool_until_do:nn { \int_compare_p:nNn #2 = 0 }
{
\bool_while_do:nn { \deriv_binary_if_even_p:N #2 }
{ \deriv_binary_shift_right:N #2 }
-
+
\__deriv_gcd_swap_helper:NNff #1 #2 { \int_from_bin:V #1 } { \int_from_bin:V #2 }
}
\deriv_binary_shift_left:NV #1 \l__deriv_gcd_counter_int
@@ -1691,7 +1686,7 @@
\cs_new_protected:Npn \__deriv_slashfrac_scale:nnn #1 #2 #3
{
\use:c { #1 l } .
- {#2}
+ {#2}
\use:c {#1} /
{#3}
\use:c { #1 r } .