summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf-dist/doc/latex/skmath/skmath.pdfbin0 -> 219146 bytes
-rw-r--r--Master/texmf-dist/doc/latex/skmath/skmath.tex485
-rw-r--r--Master/texmf-dist/tex/latex/skmath/skmath.sty123
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds4
-rw-r--r--Master/tlpkg/tlpsrc/collection-mathextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/skmath.tlpsrc0
7 files changed, 614 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/skmath/skmath.pdf b/Master/texmf-dist/doc/latex/skmath/skmath.pdf
new file mode 100644
index 00000000000..1ff3ab254b7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/skmath/skmath.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/skmath/skmath.tex b/Master/texmf-dist/doc/latex/skmath/skmath.tex
new file mode 100644
index 00000000000..46cc2d20d81
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/skmath/skmath.tex
@@ -0,0 +1,485 @@
+%% skmath improved math commands
+%%
+%% Copyright (C) 2012 by Simon Sigurdhsson <sigurdhsson@gmail.com>
+%%
+%% 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.
+%% The latest version of this license is in
+%% 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 Sigurdhsson.
+%%
+%% This work consists of the file skmath.tex
+%% and the derived file skmath.sty.
+\PassOptionsToPackage{intlimits}{amsmath}
+\documentclass[commonsets,load]{skdoc}
+\usepackage[intlimits]{amsmath}
+\usepackage{csquotes}
+\ProvideDocumentCommand\d{m}{#1}
+\ProvideDocumentCommand\abs{m}{#1}
+\ProvideDocumentCommand\norm{m}{#1}
+\ProvideDocumentCommand\abs{m}{#1}
+\ProvideDocumentCommand\P{m}{#1}
+\ProvideDocumentCommand\given{}{}
+\ProvideDocumentCommand\E{m}{#1}
+\ProvideDocumentCommand\var{m}{#1}
+\ProvideDocumentCommand\cov{mm}{#1#2}
+\ProvideDocumentCommand\N{}{}
+\ProvideDocumentCommand\Z{}{}
+\ProvideDocumentCommand\Q{}{}
+\ProvideDocumentCommand\R{}{}
+\ProvideDocumentCommand\C{}{}
+\ProvideDocumentCommand\sfrac{mm}{#1#2}
+
+% Declare the target files
+\SelfPreambleTo{\mypreamble}
+\DeclareFile[key=package,preamble=\mypreamble]{skmath.sty}
+
+% This is where the documentation begins
+\begin{document}
+ % Change & version info
+ \version{0.1g}
+ \changes{0.1}{Initial version}
+ \changes{0.1c}{Moved package from \pkg{docstrip} to \pkg{skdoc}}
+ \changes{0.1d}{Fixed fatal documentation and package errors}
+ \changes{0.1e}{Added statistics commands}
+ \changes{0.1g}{Documentation fixes}
+
+ % Metadata
+ \package[ctan=skbundle,vcs=https://github.com/urdh/skmath]{skmath}
+ \author{Simon Sigurdhsson}
+ \email{sigurdhsson@gmail.com}
+
+ % First page
+ \maketitle
+ \begin{abstract}
+ The \thepackage\ package provides improved and new math commands
+ for superior typesetting with less effort.
+ \end{abstract}
+
+ \section{Introduction}
+ This package intends to provide helpful (re-)definitions of commands
+ related to typesetting mathematics, and specifically typesetting
+ them in a more intuitive, less verbose and more beautiful way.
+ It was originally not intended for use by the public, and as such
+ there may be incompatibilities with other packages of which I am
+ not aware, but I figured it could be useful to other people as well.
+
+ \section{Usage}
+ \subsection{Options}
+ As of version \theversion, there is only one option: \opt{commonsets}.
+ By default, it is disabled but if the option is given the package will
+ define \cs{N}, \cs{Z}, \cs{Q}, \cs{R} and \cs{C} as blackboard
+ variants of the respective letters, to represent the common sets
+ of numbers.
+
+ \subsection{New commands}
+ The package defines a number of new commands that aid in typesetting
+ certain mathematical formulae.
+
+ \DescribeMacro\N
+ \DescribeMacro\Z
+ \DescribeMacro\Q
+ \DescribeMacro\R
+ \DescribeMacro\C
+ These commands are only available if the \opt{commonsets}
+ option is given. They typeset the set of natural, integer, rational,
+ real and complex numbers respectively.
+ \begin{example}
+ \begin{equation*}
+ \N, \Z, \Q, \R, \C.
+ \end{equation*}
+ \end{example}
+
+ \DescribeMacro\norm{<expression>}
+ \DescribeMacro\abs{<expression>}
+ The commands \Macro\norm and \Macro\abs, quite expectedly, typeset
+ the norm ans absolute value of an expression, respectively. They
+ have one mandatory argument (the expression), and different norms
+ can be achieved by appending a subscript after the argument of
+ \Macro\norm.
+ \begin{example}
+ \begin{equation*}
+ \norm{\vec{x}}_p = \left(\sum_{i=1}^n \abs{x_i}^p\right)^{\sfrac{1}{p}}
+ \end{equation*}
+ \end{example}
+
+ \DescribeMacro\d{<variable>}
+ There is also a command \Macro\d, with one mandatory argument, that
+ typesets the differential part of an integral.
+ \begin{example}
+ \begin{equation*}
+ \int_{\R}\! \frac{\sin{x}}{x} \d{x}
+ \end{equation*}
+ \end{example}
+
+ \DescribeMacro\E{<expression>}
+ The command \Macro\E typesets the expectation of a random variable.
+ \begin{example}
+ \begin{equation*}
+ \E{\hat{\mu}} = \mu
+ \end{equation*}
+ \end{example}
+
+ \DescribeMacro\P{<expression>\AlsoMacro\given <expression>}
+ The \Macro\P command typesets a probability. The \Macro\given command
+ can be used to typeset conditional probabilities, within \Macro\P.
+ \begin{example}
+ \begin{equation*}
+ \P{A\given B} = \frac{\P{B\given A}\P{A}}{\P{B}}
+ \end{equation*}
+ \end{example}
+
+ \DescribeMacro\var{<expression>}
+ \DescribeMacro\cov{<expression>}{<expression>}
+ The commands \Macro\var and \Macro\cov typeset the variance and
+ covariance of an expression.
+ \begin{example}
+ \begin{gather*}
+ \var{X} = \E{(X-\mu)^2}\\
+ \cov{X}{Y} = \E{XY}-\E{X}\E{Y}
+ \end{gather*}
+ \end{example}
+
+ \subsection{Improved commands}
+ In addition to adding new commands, this package also redefines
+ already existing commands in a mostly backwards-compatible way
+ to improve their usefulness.
+
+ \DescribeMacro\sin[<power>]{<expression>}
+ \DescribeMacro\arcsin{<expression>}
+ \DescribeMacro\cos[<power>]{<expression>}
+ \DescribeMacro\arccos{<expression>}
+ \DescribeMacro\tan[<power>]{<expression>}
+ \DescribeMacro\arctan{<expression>}
+ \DescribeMacro\cot[<power>]{<expression>}
+ The trigonometric functions have been redefined
+ to typeset more easily. They typeset \meta{expression} as an
+ argument of the expression, and (if applicable) \meta{power} as
+ a superscript between the function and its argument,
+ \emph{e.g.} \(\sin[2]{\phi}\).
+
+ \DescribeMacro\ln{<expression>}
+ The natural logarithm macro \Macro\ln has also been redefined to
+ require an argument which is typeset as the argument of the logarithm.
+ \DescribeMacro\log[<base>]{<expression>}
+ The related macro \Macro\log is redefined in a similar way, but also
+ accepts an optional argument denoting the base of the logarithm:
+ \(\log[2]{x}\).
+
+ \DescribeMacro\exp{<expression>}
+ The exponential, \Macro\exp, is redefined to typeset its argument as a
+ superscript of \(e\) in some display styles, and as an argument of
+ \(\mathrm{exp}\) otherwise:
+ \begin{equation*}
+ \exp{\sqrt{2}\exp{x}}
+ \end{equation*}
+
+ \subsection{Stylistic changes}
+ Some commands have been redefined in a completely backwards-compatible
+ way to improve the end result of their typesetting.
+
+ \DescribeMacro\frac{<numerator>}{<denominator>}
+ The \Macro\frac command has been changed to improve typesetting,
+ allowing displaystyle math in some settings.
+
+ \DescribeMacro\bar{<expression>}
+ \DescribeMacro\vec{<expression>}
+ The \Macro\bar command has been changed to cover the entire
+ \meta{expression} (\emph{i.e.} \(\bar{uv}\)), and \Macro\vec has
+ been changed to match the \cs{vectorsym} command provided by
+ \pkg{isomath}.
+
+ \section{Known issues}
+ A list of current issues is available in the Github repository of this
+ package\footnote{\url{https://github.com/urdh/skmath/issues}}, but as
+ of the release of \theversion, there is only one known issue:
+ \begin{description}
+ \item[\#4] When using both \pkg{fontspec} and \thepackage, sometimes
+ \LaTeX\ bails out saying that \enquote{\cs{bar} is already
+ defined}. This is probably due to fonts defining their own
+ \cs{bar}, and will happen with other font packages as well,
+ but I haven't figured out a suitable solution yet.
+ \end{description}
+ If you discover any bugs in this package, please report them to the issue
+ tracker in the \thepackage\ Github repository.
+
+ \section{Implementation}
+ The package implementation is very simple. First, we do the standard
+ \LaTeXe\ preamble thing, then we require some dependencies.
+ \changes{0.1b}{Load \textsf{amsmath} with \texttt{intlimits} option}
+\begin{MacroCode}{package}
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{skmath}%
+ [2013/02/18 v0.1e skmath improved math commands]
+\RequirePackage{xparse}
+\PassOptionsToPackage{intlimits}{amsmath}
+\RequirePackage{kvoptions,amssymb,mathtools,xfrac,isomath}
+\end{MacroCode}
+
+ We begin by declaring an option.
+\begin{MacroCode}{package}
+\SetupKeyvalOptions{family=skmath,prefix=skmath@}
+\DeclareBoolOption[false]{commonsets}
+\ProcessKeyvalOptions*
+\end{MacroCode}
+
+ We optionally provide commands to typeset common sets.
+\begin{MacroCode}{package}
+\ifskmath@commonsets
+\end{MacroCode}
+ \begin{macro}{\N}
+ \changes{0.1b}{Moved to \textsf{xparse} command definition}
+\begin{MacroCode}{package}
+ \NewDocumentCommand\N{}{\ensuremath{\mathbb{N}}}
+\end{MacroCode}
+ \end{macro}
+ \begin{macro}{\Z}
+ \changes{0.1b}{Moved to \textsf{xparse} command definition}
+\begin{MacroCode}{package}
+ \NewDocumentCommand\Z{}{\ensuremath{\mathbb{Z}}}
+\end{MacroCode}
+ \end{macro}
+ \begin{macro}{\Q}
+ \changes{0.1b}{Moved to \textsf{xparse} command definition}
+\begin{MacroCode}{package}
+ \NewDocumentCommand\Q{}{\ensuremath{\mathbb{Q}}}
+\end{MacroCode}
+ \end{macro}
+ \begin{macro}{\R}
+ \changes{0.1b}{Moved to \textsf{xparse} command definition}
+\begin{MacroCode}{package}
+ \NewDocumentCommand\R{}{\ensuremath{\mathbb{R}}}
+\end{MacroCode}
+ \end{macro}
+ \begin{macro}{\C}
+ \changes{0.1b}{Moved to \textsf{xparse} command definition}
+\begin{MacroCode}{package}
+ \NewDocumentCommand\C{}{\ensuremath{\mathbb{C}}}
+\end{MacroCode}
+ \end{macro}
+\begin{MacroCode}{package}
+\fi
+\end{MacroCode}
+
+ This is followed by commands to typeset the norm and absolute value.
+ \begin{macro}{\abs}
+\begin{MacroCode}{package}
+\DeclarePairedDelimiter\abs{\lvert}{\rvert}
+\end{MacroCode}
+ \end{macro}
+ \begin{macro}{\norm}
+\begin{MacroCode}{package}
+\DeclarePairedDelimiter\norm{\lVert}{\rVert}
+\end{MacroCode}
+ \end{macro}
+
+ Next come the statistical commands.
+ \begin{macro}{\E}
+ \changes{0.1e}{Added \cs{E} command}
+ \changes{0.1f}{Fixed \enquote{Command \cs{E} already defined!} error}
+ Here, we define \cs{E} after the preamble since it may break otherwise.
+\begin{MacroCode}{package}
+\AtBeginDocument{
+ \DeclareDocumentCommand\E{m}{%
+ \ensuremath{\mathop{\mathrm{E}}\left[#1\right]}%
+ }
+}
+\end{MacroCode}
+ \end{macro}
+ The \Macro\P command saves any old \Macro\given command, replacing
+ it locally with the new \Macro\given command provided by the package.
+ \begin{macro}{\P}
+ \changes{0.1e}{Added \cs{P} command}
+\begin{MacroCode}{package}
+\DeclareDocumentCommand\P{m}{%
+ \ensuremath{\mathop{\mathrm{P}}%
+ \left(%
+ \let\skmath@given\given%
+\end{MacroCode}
+ \begin{macro}{\given}
+ \changes{0.1e}{Added \cs{given} command}
+\begin{MacroCode}{package}
+ \DeclareDocumentCommand\given{}{\mid}%
+\end{MacroCode}
+ \end{macro}
+\begin{MacroCode}{package}
+ #1%
+ \let\given\skmath@given%
+ \right)%
+ }%
+}
+\end{MacroCode}
+ \end{macro}
+ \begin{macro}{\var}
+ \changes{0.1e}{Added \cs{var} command}
+\begin{MacroCode}{package}
+ \DeclareDocumentCommand\var{m}{%
+ \ensuremath{\mathop{\mathrm{Var}}\left(#1\right)}%
+ }
+\end{MacroCode}
+ \end{macro}
+ \begin{macro}{\cov}
+ \changes{0.1e}{Added \cs{cov} command}
+\begin{MacroCode}{package}
+ \DeclareDocumentCommand\cov{mm}{%
+ \ensuremath{\mathop{\mathrm{Cov}}\left(#1,#2\right)}%
+ }
+\end{MacroCode}
+ \end{macro}
+
+ We replace all trigonometric functions and some other
+ common functions with alternatives that take an argument
+ (or optionally, several arguments).
+\begin{MacroCode}{package}
+\let\skmath@sin\sin
+\let\skmath@cos\cos
+\let\skmath@tan\tan
+\let\skmath@cot\cot
+\let\skmath@arcsin\arcsin
+\let\skmath@arccos\arccos
+\let\skmath@arccos\arctan
+\let\skmath@ln\log
+\let\skmath@log\log
+\let\skmath@exp\exp
+\end{MacroCode}
+ \begin{macro}{\sin}
+\begin{MacroCode}{package}
+\RenewDocumentCommand\sin{om}{%
+ \IfNoValueTF{#1}
+ {\ensuremath{\skmath@sin\left(#2\right)}}
+ {\ensuremath{\skmath@sin^{#1}\left(#2\right)}}%
+}
+\end{MacroCode}
+ \end{macro}
+ \begin{macro}{\cos}
+\begin{MacroCode}{package}
+\RenewDocumentCommand\cos{om}{%
+ \IfNoValueTF{#1}
+ {\ensuremath{\skmath@cos\left(#2\right)}}
+ {\ensuremath{\skmath@cos^{#1}\left(#2\right)}}%
+}
+\end{MacroCode}
+ \end{macro}
+ \begin{macro}{\tan}
+\begin{MacroCode}{package}
+\RenewDocumentCommand\tan{om}{%
+ \IfNoValueTF{#1}
+ {\ensuremath{\skmath@tan\left(#2\right)}}
+ {\ensuremath{\skmath@tan^{#1}\left(#2\right)}}%
+}
+\end{MacroCode}
+ \end{macro}
+ \begin{macro}{\cot}
+\begin{MacroCode}{package}
+\RenewDocumentCommand\cot{om}{%
+ \IfNoValueTF{#1}
+ {\ensuremath{\skmath@cot\left(#2\right)}}
+ {\ensuremath{\skmath@cot^{#1}\left(#2\right)}}%
+}
+\end{MacroCode}
+ \end{macro}
+ \begin{macro}{\arcsin}
+\begin{MacroCode}{package}
+\RenewDocumentCommand\arcsin{m}{%
+ \ensuremath{\skmath@arcsin\left(#1\right)}%
+}
+\end{MacroCode}
+ \end{macro}
+ \begin{macro}{\arccos}
+\begin{MacroCode}{package}
+\RenewDocumentCommand\arccos{m}{%
+ \ensuremath{\skmath@arccos\left(#1\right)}%
+}
+\end{MacroCode}
+ \end{macro}
+ \begin{macro}{\arctan}
+\begin{MacroCode}{package}
+\RenewDocumentCommand\arctan{m}{%
+ \ensuremath{\skmath@arctan\left(#1\right)}%
+}
+\end{MacroCode}
+ \end{macro}
+ \begin{macro}{\ln}
+\begin{MacroCode}{package}
+\RenewDocumentCommand\ln{m}{%
+ \ensuremath{\skmath@ln\left(#1\right)}%
+}
+\end{MacroCode}
+ \end{macro}
+ \begin{macro}{\log}
+\begin{MacroCode}{package}
+\RenewDocumentCommand\log{om}{%
+ \IfNoValueTF{#1}
+ {\ensuremath{\skmath@log\left(#2\right)}}
+ {\ensuremath{\skmath@log_{#1}\left(#2\right)}}%
+}
+\end{MacroCode}
+ \end{macro}
+ \begin{macro}{\exp}
+ \changes{0.1b}{Moved to \textsf{xparse} command definition}
+\begin{MacroCode}{package}
+\RenewDocumentCommand\exp{m}{\ensuremath{\mathchoice%
+ {e^{#1}}%
+ {\skmath@exp\left(#1\right)}%
+ {\skmath@exp\left(#1\right)}%
+ {\skmath@exp\left(#1\right)}%
+}}
+\end{MacroCode}
+ \end{macro}
+
+ The fraction command is modified to improve typesetting.
+ \begin{macro}{\frac}
+ \changes{0.1b}{Moved to \textsf{xparse} command definition}
+\begin{MacroCode}{package}
+\RenewDocumentCommand\frac{mm}{\genfrac{}{}{}{}%
+ {\displaystyle #1}{\displaystyle #2}}
+\end{MacroCode}
+ \end{macro}
+
+ The \cs{bar} command is also modified to impove typesetting.
+ \begin{macro}{\bar}
+ \changes{0.1b}{Added \cs{bar} replacement}
+\begin{MacroCode}{package}
+\RenewDocumentCommand\bar{m}{%
+ \ensuremath{\mkern 1.5mu\overline{\mkern-1.5mu{#1}\mkern-1.5mu}\mkern 1.5mu}}
+\end{MacroCode}
+ \end{macro}
+
+ We introduce a command to typeset the differential part
+ of integrals, shamefully stolen from an answer on \TeX.SE.
+ Definition is deferred until after all packages are loaded
+ to avoid collisions with other \cs{d} commands.
+\begin{MacroCode}{package}
+\AtBeginDocument{%
+\end{MacroCode}
+ \begin{macro}{\d}
+ \changes{0.1a}{Fixed obtuse errors}
+ \changes{0.1b}{Moved to \textsf{xparse} command definition}
+\begin{MacroCode}{package}
+\DeclareDocumentCommand\d{m}{\ensuremath{\,\mathrm{d}#1%
+ \@ifnextchar\d{\!}{}}}
+\end{MacroCode}
+ \end{macro}
+\begin{MacroCode}{package}
+}
+\end{MacroCode}
+
+ Finally, we define a nicer way to denote vectors.
+ \begin{macro}{\vec}
+\begin{MacroCode}{package}
+\let\vec\vectorsym
+\end{MacroCode}
+ \end{macro}
+\begin{MacroCode}{package}
+\endinput
+\end{MacroCode}
+
+ \PrintChanges
+ \PrintIndex
+\end{document}
diff --git a/Master/texmf-dist/tex/latex/skmath/skmath.sty b/Master/texmf-dist/tex/latex/skmath/skmath.sty
new file mode 100644
index 00000000000..c378474654a
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/skmath/skmath.sty
@@ -0,0 +1,123 @@
+%% This is file `skmath.sty', generated from `skmath.tex' (key `package').
+%% skmath improved math commands
+%%
+%% Copyright (C) 2012 by Simon Sigurdhsson <sigurdhsson@gmail.com>
+%%
+%% 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.
+%% The latest version of this license is in
+%% 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 Sigurdhsson.
+%%
+%% This work consists of the file skmath.tex
+%% and the derived file skmath.sty.
+
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{skmath}%
+ [2013/02/18 v0.1e skmath improved math commands]
+\RequirePackage{xparse}
+\PassOptionsToPackage{intlimits}{amsmath}
+\RequirePackage{kvoptions,amssymb,mathtools,xfrac,isomath}
+\SetupKeyvalOptions{family=skmath,prefix=skmath@}
+\DeclareBoolOption[false]{commonsets}
+\ProcessKeyvalOptions*
+\ifskmath@commonsets
+ \NewDocumentCommand\N{}{\ensuremath{\mathbb{N}}}
+ \NewDocumentCommand\Z{}{\ensuremath{\mathbb{Z}}}
+ \NewDocumentCommand\Q{}{\ensuremath{\mathbb{Q}}}
+ \NewDocumentCommand\R{}{\ensuremath{\mathbb{R}}}
+ \NewDocumentCommand\C{}{\ensuremath{\mathbb{C}}}
+\fi
+\DeclarePairedDelimiter\abs{\lvert}{\rvert}
+\DeclarePairedDelimiter\norm{\lVert}{\rVert}
+\AtBeginDocument{
+ \DeclareDocumentCommand\E{m}{%
+ \ensuremath{\mathop{\mathrm{E}}\left[#1\right]}%
+ }
+}
+\DeclareDocumentCommand\P{m}{%
+ \ensuremath{\mathop{\mathrm{P}}%
+ \left(%
+ \let\skmath@given\given%
+ \DeclareDocumentCommand\given{}{\mid}%
+ #1%
+ \let\given\skmath@given%
+ \right)%
+ }%
+}
+ \DeclareDocumentCommand\var{m}{%
+ \ensuremath{\mathop{\mathrm{Var}}\left(#1\right)}%
+ }
+ \DeclareDocumentCommand\cov{mm}{%
+ \ensuremath{\mathop{\mathrm{Cov}}\left(#1,#2\right)}%
+ }
+\let\skmath@sin\sin
+\let\skmath@cos\cos
+\let\skmath@tan\tan
+\let\skmath@cot\cot
+\let\skmath@arcsin\arcsin
+\let\skmath@arccos\arccos
+\let\skmath@arccos\arctan
+\let\skmath@ln\log
+\let\skmath@log\log
+\let\skmath@exp\exp
+\RenewDocumentCommand\sin{om}{%
+ \IfNoValueTF{#1}
+ {\ensuremath{\skmath@sin\left(#2\right)}}
+ {\ensuremath{\skmath@sin^{#1}\left(#2\right)}}%
+}
+\RenewDocumentCommand\cos{om}{%
+ \IfNoValueTF{#1}
+ {\ensuremath{\skmath@cos\left(#2\right)}}
+ {\ensuremath{\skmath@cos^{#1}\left(#2\right)}}%
+}
+\RenewDocumentCommand\tan{om}{%
+ \IfNoValueTF{#1}
+ {\ensuremath{\skmath@tan\left(#2\right)}}
+ {\ensuremath{\skmath@tan^{#1}\left(#2\right)}}%
+}
+\RenewDocumentCommand\cot{om}{%
+ \IfNoValueTF{#1}
+ {\ensuremath{\skmath@cot\left(#2\right)}}
+ {\ensuremath{\skmath@cot^{#1}\left(#2\right)}}%
+}
+\RenewDocumentCommand\arcsin{m}{%
+ \ensuremath{\skmath@arcsin\left(#1\right)}%
+}
+\RenewDocumentCommand\arccos{m}{%
+ \ensuremath{\skmath@arccos\left(#1\right)}%
+}
+\RenewDocumentCommand\arctan{m}{%
+ \ensuremath{\skmath@arctan\left(#1\right)}%
+}
+\RenewDocumentCommand\ln{m}{%
+ \ensuremath{\skmath@ln\left(#1\right)}%
+}
+\RenewDocumentCommand\log{om}{%
+ \IfNoValueTF{#1}
+ {\ensuremath{\skmath@log\left(#2\right)}}
+ {\ensuremath{\skmath@log_{#1}\left(#2\right)}}%
+}
+\RenewDocumentCommand\exp{m}{\ensuremath{\mathchoice%
+ {e^{#1}}%
+ {\skmath@exp\left(#1\right)}%
+ {\skmath@exp\left(#1\right)}%
+ {\skmath@exp\left(#1\right)}%
+}}
+\RenewDocumentCommand\frac{mm}{\genfrac{}{}{}{}%
+ {\displaystyle #1}{\displaystyle #2}}
+\RenewDocumentCommand\bar{m}{%
+ \ensuremath{\mkern 1.5mu\overline{\mkern-1.5mu{#1}\mkern-1.5mu}\mkern 1.5mu}}
+\AtBeginDocument{%
+\DeclareDocumentCommand\d{m}{\ensuremath{\,\mathrm{d}#1%
+ \@ifnextchar\d{\!}{}}}
+}
+\let\vec\vectorsym
+\endinput
+
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 6db5e1c1f4f..f06b9e3e3b9 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -389,7 +389,7 @@ my @TLP_working = qw(
sidecap sidenotes sides silence
simplecd simplecv simplewick simplified-latex
sitem siunitx
- skak skaknew skb skdoc skeycommand skeyval skull
+ skak skaknew skb skdoc skeycommand skeyval skmath skull
slantsc slideshow smalltableof smartdiagram smartref
snapshot songbook sort-by-letters soton soul sourcecodepro sourcesanspro
spanglish spanish spanish-mx sparklines spelling spie
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index e8dd3186337..5342ca25589 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -1082,6 +1082,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'pictex' => '&PREHOOK_pictex',
'pmx' => '&PREHOOK_pmx',
'skb' => '&PREHOOK_flatten1',
+ 'skmath' => '&PREHOOK_savepdf',
'suftesi' => '&PREHOOK_suftesi',
'tui' => '&PREHOOK_tui',
'vhistory' => '&PREHOOK_vhistory',
@@ -1138,6 +1139,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'pst-geo' => '&POSTpstgeo',
'pxbase' => '&POSTpxbase',
'pxchfon' => '&POSTpxchfon',
+ 'skmath' => '&POST_savepdf',
'splitindex' => '&POST_do_man',
'tipa-de' => '&POST_rmsymlink',
'xecyr' => '&POSTxecyr',
@@ -1987,6 +1989,7 @@ $standardsource='\.(bat|c|drv|dtx|fea|fdd|ins|sfd)$|configure.*|install-sh';
'ran_toks', "$package.dtx",
'seuthesis', 'NULL', # don't want to run iconv, etc.
'skdoc', "$package.dtx",
+ 'skmath', "$package.tex",
'statrep', "$package.dtx",
'stmaryrd', 'stmaryrd.dtx',
'tablists', 'tablists.dtx',
@@ -2071,6 +2074,7 @@ my $core_latex = "$Master/texmf-dist/tex/latex";
'schedule' => 'latex', # requires interaction
'silence' => 'latex -translate-file=empty.tcx', # no 8-bit
'skdoc' => 'tex',
+ 'skmath' => 'pdflatex', # fancy fonts, doc and subfiles combined
'svn-multi' => 'latex', # interaction for .pl
'teubner' => 'latex', # interaction
'termlist' => 'tex', # interaction for .pl
diff --git a/Master/tlpkg/tlpsrc/collection-mathextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-mathextra.tlpsrc
index 3a6ce52f8ac..d73d00ee38e 100644
--- a/Master/tlpkg/tlpsrc/collection-mathextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-mathextra.tlpsrc
@@ -28,6 +28,7 @@ depend oubraces
depend proba
depend rec-thy
depend shuffle
+depend skmath
depend statex
depend statex2
depend stmaryrd
diff --git a/Master/tlpkg/tlpsrc/skmath.tlpsrc b/Master/tlpkg/tlpsrc/skmath.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/skmath.tlpsrc