Skip to content

Instantly share code, notes, and snippets.

@Niccori250k
Last active December 12, 2022 07:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Niccori250k/a0708155d8e4e26dc9a58e5fe36e307c to your computer and use it in GitHub Desktop.
Save Niccori250k/a0708155d8e4e26dc9a58e5fe36e307c to your computer and use it in GitHub Desktop.
An extension specialized to write multiple infinitesimal coefficients for the "diffcoeff" package
\RequirePackage{diffcoeff}
\ProvidesExplPackage {diffcoeff-multidl} {2022/12/11} {1.0}
{An extension specialized to write multiple infinitesimal coefficients for the "diffcoeff" package}
\bool_new:N \l__multidl_isfirstdl_bool
\int_new:N \l__multidl_sep_primary_int
\int_new:N \l__multidl_sep_primary_default_int
\int_new:N \l__multidl_sep_secondary_int
\int_new:N \l__multidl_sep_secondary_default_int
\tl_new:N \l__multidl_diff_type_tl
\NewDocumentCommand {\mdlaux} {m} {
\bool_if:nTF \l__multidl_isfirstdl_bool {
\exp_last_unbraced:Nx \dl {\tl_use:N\l__multidl_diff_type_tl\int_use:N\l__multidl_sep_primary_int} {#1}
\bool_set_false:N \l__multidl_isfirstdl_bool
} {
\exp_last_unbraced:Nx \dl {\tl_use:N\l__multidl_diff_type_tl\int_use:N\l__multidl_sep_secondary_int} {#1}
}
}
\NewDocumentCommand {\mdl} {o >{\SplitList{,}}m o o} {
\bool_set_true:N \l__multidl_isfirstdl_bool
\IfValueTF{#1} {
\tl_set:Nn \l__multidl_diff_type_tl {.#1.}
} {
\tl_clear:N \l__multidl_diff_type_tl
}
\IfValueTF{#3} {
\int_set:Nn \l__multidl_sep_primary_int{#3}
\IfValueTF{#4}{
\int_set:Nn \l__multidl_sep_secondary_int{#4}
} {
\int_set:Nn \l__multidl_sep_secondary_int{#3}
}
} {
\int_set:Nn \l__multidl_sep_primary_int \l__multidl_sep_primary_default_int
\int_set:Nn \l__multidl_sep_secondary_int \l__multidl_sep_secondary_default_int
}
\ProcessList{#2}{\mdlaux}
}
\NewDocumentCommand {\setmdlspacing} {m m} {
\int_set:Nn \l__multidl_sep_primary_default_int {#1}
\int_set:Nn \l__multidl_sep_secondary_default_int {#2}
}
\setmdlspacing{3}{2}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment