diff options
author | Karl Berry <karl@freefriends.org> | 2024-01-18 21:18:29 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-01-18 21:18:29 +0000 |
commit | fb7c3311375ccba0a40d88dc375d18e28006a50d (patch) | |
tree | 28c8d9db2d2a53e80eae54fa0ee3f7c92fd58745 /Master/texmf-dist/tex/latex/odesandpdes | |
parent | 42769ef6c2a8765188db5ac2d2dd05d532267bde (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.sty | 240 |
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'. |