summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/odesandpdes
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2024-01-18 21:18:29 +0000
committerKarl Berry <karl@freefriends.org>2024-01-18 21:18:29 +0000
commitfb7c3311375ccba0a40d88dc375d18e28006a50d (patch)
tree28c8d9db2d2a53e80eae54fa0ee3f7c92fd58745 /Master/texmf-dist/tex/latex/odesandpdes
parent42769ef6c2a8765188db5ac2d2dd05d532267bde (diff)
odesandpdes (18jan24)
git-svn-id: svn://tug.org/texlive/trunk@69485 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/odesandpdes')
-rw-r--r--Master/texmf-dist/tex/latex/odesandpdes/odesandpdes.sty240
1 files changed, 240 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/odesandpdes/odesandpdes.sty b/Master/texmf-dist/tex/latex/odesandpdes/odesandpdes.sty
new file mode 100644
index 00000000000..143c9d9468f
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/odesandpdes/odesandpdes.sty
@@ -0,0 +1,240 @@
+%%
+%% This is file `odesandpdes.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% odesandpdes.dtx (with options: `package')
+%% ----------------------------------------------------------------
+%% odesandpdes --- A package for the streamlining of the use of
+%% odes and pdes in mathematical texts typset by LaTeX
+%%
+%% E-mail: anakin@ruc.dk
+%% Released under the LaTeX Project Public License v1.3c or later
+%% See http://www.latex-project.org/lppl.txt
+%% ----------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{odesandpdes}[2024/01/17 v1.0.0 For streamlining ODE and PDE usage]
+%% ----------------------------------------------------------------
+%% Package initialize
+%% ----------------------------------------------------------------
+\RequirePackage{xkeyval}
+\newcount\m@xm@rk%
+\newcount\exp@c@unt%
+\countdef\@detempv@l=255%
+\newtoks\v@rr@t@ks%
+\newtoks\func@t@ks%
+\newtoks\@tpost@ks%
+\newbox\@dev@rb@x%
+\newbox\@defunb@x%
+\newbox\@deresb@x%
+%% ----------------------------------------------------------------
+%% Package Options
+%% ----------------------------------------------------------------
+\providecommand\@de@option{Leib}
+\DeclareOptionX{notation}[default]%
+ {\def\@de@option{\csname @de@not@#1\endcsname}}
+\def\@de@not@Lagrange{Lagr}
+\def\@de@not@Leibniz{Leib}
+\def\@de@not@Newton{Newt}
+\let\@de@not@default\@de@not@Leibniz
+\DeclareOptionX{maxprimes}[3]{\m@xm@rk=#1\advance\m@xm@rk\@ne}
+\DeclareOptionX*{\PackageWarning{odesandpdes}{`\CurrentOption' ignored}}
+\ExecuteOptionsX{notation,maxprimes}
+\ProcessOptionsX\relax
+\define@key[package]{@de}{notation}
+ {\def\@de@option{\csname @de@not@#1\endcsname}}
+\define@key[package]{@de}{maxprimes}
+ {\m@xm@rk=#1\advance\m@xm@rk\@ne}
+\newcommand\setDE[1]{\setkeys[package]{@de}{#1}}
+\@ifpackageloaded{amsmath}{
+ \let\@de@ver=\@@over%
+ \let\@de@top=\@@atop%
+ \let\@de@bove=\@@above}%
+ {\let\@de@ver=\over%
+ \let\@de@top=\atop%
+ \let\@de@bove=\above}
+%% ----------------------------------------------------------------
+%% Package Macros
+%% ----------------------------------------------------------------
+\def\d@@{\mathrm d}
+\let\d@l=\partial
+\def\@dest@red{st@r@d}
+\def\@den@st@r{n@st@r}
+\def\ode{\csname \@de@option ODE\endcsname}
+\def\pde{\csname \@de@option PDE\endcsname}
+\def\LagrODE{\let\@de@perat@r\d@@% sets the d
+ \let\@dec@mm@nd\@de@not@Lagrange
+ \@de@ifst@r}
+\def\LeibODE{\let\@de@perat@r\d@@%
+ \let\@dec@mm@nd\@de@not@Leibniz
+ \@de@ifst@r}
+\def\NewtODE{\let\@de@perat@r\d@@%
+ \let\@dec@mm@nd\@de@not@Newton
+ \@de@ifst@r}
+\def\LagrPDE{\let\@de@perat@r\d@l% sets the del
+ \let\@dec@mm@nd\@de@not@Lagrange
+ \@de@ifst@r}
+\def\LeibPDE{\let\@de@perat@r\d@l%
+ \let\@dec@mm@nd\@de@not@Leibniz
+ \@de@ifst@r}
+\def\NewtPDE{\let\@de@perat@r\d@l%
+ \let\@dec@mm@nd\@de@not@Newton
+ \@de@ifst@r}
+\def\@dest@r@rg*{\expandafter\@de@ifbr@ck}
+\def\@de@ption@l@rg[#1]{\expandafter\v@rr@t@ks{#1}\relax \@de@ifexp@n}%
+\def\@de@exponent@rg^#1{\exp@c@unt#1\relax \@deifst@rred}
+\def\@dest@r@dy@ink{\expandafter\@dec@mpf@rm}
+\def\@den@st@ry@ink{\expandafter\@dey@inkf@rm}
+\def\@de@func@ther#1{\expandafter\func@t@ks{#1}\relax
+ \expandafter\@de@if@tpos}
+\def\@de@func@Leib{\expandafter\func@t@ks{}\relax
+ \expandafter\@de@ifbrace}
+\let\@de@func@Lagr\@de@func@ther
+\let\@de@func@Newt\@de@func@ther
+\def\@de@tpos@rg#1;{\expandafter\@tpost@ks{#1}\relax \@de@tf@rm}
+\def\@de@ifst@r{\@deifch@r *
+ {\@dest@rgument\@dest@red\@dest@r@rg}
+ {\@dest@rgument\@den@st@r\@dest@r@rg*}}
+\def\@de@ifbr@ck{\@deifch@r [
+ \@de@ption@l@rg
+ {\@de@ption@l@rg[t]}}
+\def\@de@ifexp@n{\@deifch@r ^
+ \@de@exponent@rg
+ {\@de@exponent@rg^\@ne}}
+\def\@de@ifbrace{\@deifch@r \bgroup
+ \@de@func@ther
+ \@de@tilsp@ce}
+\def\@de@if@tpos{\@deifch@r a \@de@tDoubleCheck \@dec@mpf@rm}
+\def\@de@tDoubleCheck a#1 {\ifx t#1\expandafter\@de@tpos@rg\else
+ \@dec@mpf@rm a#1\fi}%
+%% ----------------------------------------------------------------
+%% Ancilliary Package Functions
+%% ----------------------------------------------------------------
+\def\@dest@rgument#1{%
+ \def\@deifst@rred{\csname @de#1y@ink\endcsname}%
+ \def\@dec@mpf@rm{\csname#1@\@dec@mm@nd\endcsname}}
+\def\@de@tf@rm{\csname @de@t@\@dec@mm@nd\endcsname}%
+\def\@dey@inkf@rm{\csname @de@func@\@dec@mm@nd\endcsname}%
+\def\@deifch@r#1#2#3{%
+ \let\@dew@tcht@k=#1\relax
+ \def\@de@tmpA{#2} \def\@de@tmpB{#3}
+ \futurelet\@detesttoken\@denext@rg}
+\def\@denext@rg{%
+ \ifx\@detesttoken\@sptoken\relax
+ \let\@de@nextact\@desp@cegobbler\else
+ \ifx\@detesttoken\@dew@tcht@k\relax % if
+ \let\@de@nextact\@de@tmpA\else % ifn't
+ \let\@de@nextact\@de@tmpB\fi\fi
+ \@de@nextact}
+\let\@desavedef\<
+\def\<{\@desp@cegobbler}
+\expandafter\def\< {\futurelet\@detesttoken\@denext@rg}
+\def\@de@tilsp@ce#1 {%
+ \beginnext%
+ \toks0={#1}
+ \edef\next{\func@t@ks=\expandafter{\the\toks0}}
+ \endnext \@de@if@tpos}
+\def\beginnext{\begingroup
+ \let\next\undefined}
+\def\endnext{\expandafter\endgroup\next}
+%% ----------------------------------------------------------------
+%% Package Notations
+%% ----------------------------------------------------------------
+\def\st@r@d@Lagr{%
+ \setbox\@deresb@x\hbox{$
+ {f^{\mkern1mu\@dedr@wm@rk\lagr@prime\lagr@prime\br@ced@xpon}
+ _{\m@kep@rtLagr}}\mkern-\tw@ mu\left(\the\v@rr@t@ks\right)
+ $}%
+ \@derele@se}%
+\def\st@r@d@Leib{%
+ \setbox\@defunb@x\hbox{$\@de@perat@r^{\@deem@rex}$}%
+ \b@se@Leib}%
+\def\st@r@d@Newt{%
+ \setbox\@dev@rb@x\hbox{$\the\v@rr@t@ks$} \b@se@Newt}%
+\def\n@st@r@Lagr{%
+ \setbox\@deresb@x\hbox{$
+ {\the\func@t@ks
+ ^{\mkern\@ne mu\@dedr@wm@rk\lagr@prime\lagr@prime\br@ced@xpon}
+ _{\m@kep@rtLagr}}\mkern\m@ne mu$}%
+ \@derele@se}%
+\def\n@st@r@Leib{%
+ \setbox\@defunb@x\hbox{$
+ \@de@perat@r^{\@deem@rex}\mkern0.40mu\the\func@t@ks$}
+ \b@se@Leib}
+\def\n@st@r@Newt{%
+ \setbox\@dev@rb@x\hbox{$\the\func@t@ks$} \b@se@Newt}%
+\def\@de@t@Lagr{%
+ \noexpand\hbox{$
+ \n@st@r@Lagr\mkern-\thr@@ mu\left(\the\@tpost@ks\right)
+ $}}%
+\def\@de@t@Leib{%
+ \noexpand\hbox{$
+ \left.\n@st@r@Leib\mkern\@ne mu\right|
+ _{\mkern1mu\displaystyle\the\v@rr@t@ks\mkern2mu
+ \rlap{$\scriptstyle=\mkern\thinmuskip\the\@tpost@ks$}}
+ $}%
+ }%
+\def\@de@t@Newt{%
+ \noexpand\hbox{$
+ \n@st@r@Newt\mkern-\tw@ mu\left(\the\@tpost@ks\right)
+ $}}%
+\def\m@kep@rtLagr{\ifx\@de@perat@r\d@l\the\v@rr@t@ks\else\empty\fi}
+\def\b@se@Leib{%
+ \setbox\@dev@rb@x\hbox{$
+ \@de@perat@r\mkern0.40mu\the\v@rr@t@ks^{\@deem@rex}$}%
+ \setbox\@deresb@x\hbox{\kern0.5\p@%
+ $\raise2\p@\box\@defunb@x\@de@ver\lower5\p@\box\@dev@rb@x$%
+ \kern0.5\p@}%
+ \@derele@se}%
+\def\b@se@Newt{%
+ \setbox\@defunb@x\hbox{\vbox{\baselineskip=\z@\lineskip=\m@ne\p@%
+ \@dedr@wm@rk\@de@ned@ts\@detw@d@ts\@denewt@nd@t}}%
+ \setbox\@deresb@x\hbox{\vbox{\baselineskip=\z@\lineskip=-0.5\p@%
+ \hbox to\wd\@dev@rb@x{\hss\raise\z@\box\@defunb@x\hss}%
+ \hbox{\raise\z@\box\@dev@rb@x}}}%
+ \@derele@se}
+\def\m@kep@rtNewt{\ifx\@de@perat@r\d@l\empty\fi}
+\def\lagr@prime{\mkern0.35mu\prime\global\advance\exp@c@unt\m@ne}
+\def\br@ced@xpon{\left(\the\exp@c@unt\right)}
+\def\@detw@d@ts{\ifnum\exp@c@unt>\@ne%
+ \advance\exp@c@unt-\tw@\hbox to 5\p@{\hss$\cdot\cdot$\hss}\fi}%
+\def\@de@ned@ts{\@detempv@l=\the\exp@c@unt%
+ \loop\ifnum\@detempv@l>\tw@%
+ \advance\@detempv@l-\tw@\repeat%
+ \ifnum\@detempv@l<\tw@%
+ \advance\exp@c@unt\m@ne\hbox to 5\p@{\hss$\cdot$\hss}\fi}%
+\def\@denewt@nd@t{\hbox{\vbox{%
+ \hbox to 5\p@{\hss\raise\thr@@\p@\hbox{$\scriptstyle\@deem@rex$}\hss}%
+ \hbox to 5\p@{\hss\hbox{$\displaystyle\cdot$}\hss}}}}%
+\def\@deem@rex{\ifnum\tw@>\exp@c@unt\empty\else\the\exp@c@unt\fi}
+\def\@dedr@wm@rk#1#2#3{
+ \ifnum\exp@c@unt<\m@xm@rk
+ #1\@derepe@tdr@w#2\else
+ #3\fi}
+\def\@derepe@tdr@w#1{\loop\ifnum\exp@c@unt>\z@#1\repeat}
+\def\@derele@se{\noexpand{\box\@deresb@x}}
+\let\<\@desavedef
+\endinput
+%% File: odesandpdes.dtx
+%%
+%% Copyright (C) 2024 by Anakin anakin@ruc.dk
+%% -----------------------------------------------------------
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License (LPPL), either
+%% version 1.3c of this license or (at your option) any later
+%% version. The latest version of this license is in the file:
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% This work is "maintained" (as per LPPL maintenance status) by
+%% Anakin.
+%%
+%% This work consists of the file odesandpdes.dtx
+%% and the derived files odesandpdes.ins,
+%% odesandpdes.pdf and
+%% odesandpdes.sty.
+%%
+%%
+%% End of file `odesandpdes.sty'.