\documentclass[full]{l3doc}

\title{The \pkg{mkessler-mathop} package}
\author{Maximilian Keßler}

\usepackage{mkessler-mathop}

\begin{document}

\maketitle

\begin{abstract}
  This package provides common math operators.

  It is certainly based on the authors opinion and use cases and might not
  fulfill your personal needs.
  It is, however, still aimed to be reasonably general to a broader userbase.
\end{abstract}

\begin{documentation}

\section{General macros}

\begin{function}{\DeclareSimpleMathOperator}
  \begin{syntax}
    \cs{DeclareSimpleMathOperator}\marg{operator}
  \end{syntax}
  This is similar to the \cs{DeclareMathOperator} macro of \pkg{mathtools},
  but only accepts one argument.
  The operator expansion is the operator name itself.
\end{function}

\begin{function}{\DeclareDistribution}
  Currently same as \cs{DeclareSimpleMathOperator},
  existent for semantical reasons and possible future change of
  layouting of stochastical distributions.
\end{function}

\section{Special symbols}

In this section we describe all math operators that are not of textual nature.

\begin{function}{\tensor}
  Alias for \cs{otimes}.
\end{function}

\begin{function}{\twedge, \tsmash}
  The \enquote{t} stands for \enquote{topological}.
  These are to avoid confusion between the standard latex \cs{wedge},
  which gives $\wedge$,
  although in topology,
  the symbol  $\twedge$ is called a \enquote{wedge}
  and  $\tsmash$ denotes the \enquote{smash product}.
\end{function}


\begin{function}{\cfun, \One}
  Characteristic function symbol.
  Comes from \pkg{bbm} and denotes \enquote{\cs{mathbbm}\{1\}}.
\end{function}

\begin{function}{\suchthat}
  gives a scaling \enquote{$\left.\suchthat\right.$} symbol used in set-definitions.
  Has to be in a \enquote{\cs{left} \ldots\cs{right}} block to
  scale properly.
\end{function}

\begin{function}{\ceil, \floor}
  \begin{syntax}
    \cs{ceil}\marg{args}
  \end{syntax}
  Denotes the standard mathematical ceil and floor functions.
\end{function}


\begin{function}{\abs, \abs*}
  \begin{syntax}
    \cs{abs}*\marg{args}
  \end{syntax}
  Denotes the absolute value of an expression.
  The bars scale by default, the starred variant does not scale.
\end{function}

\begin{function}{\norm}
  \begin{syntax}
    \cs{norm}*\marg{args}
  \end{syntax}
  Norm of an expression. The starred variant does not scale.
\end{function}
  

\begin{function}{\amalgprod}
  Denotes an amalgamatic product.
\end{function}

\begin{function}{\ab, \op}
  Give a textual representation of themselves.
\end{function}

\begin{function}{\opposite}
  \begin{syntax}
    \meta{structure}\cs{opposite}
  \end{syntax}
  Denotes the opposite of some mathematical object.
\end{function}

\begin{function}{\abelianization}
  Denotes the abelianization of a group object.
\end{function}

\begin{function}{\directlimit, \inverselimit}
  Semantical synonyms for \cs{varinjlim} and \cs{varprojlim}.
\end{function}


\begin{function}{\frestriction}
  \begin{syntax}
    \cs{frestriction}\marg{function}\marg{domain}
  \end{syntax}
  Properly denotes function restriction with adequate spacing.
\end{function}



\section{Simple operators}

The vast majority of this package is simple operators such as \cs{id},
which expands to $\id$.
These are for now not documented, search the source code for
\cs{DeclareSimpleMath\allowbreak Operator} if you need to know.


\section{TODO}
proper language support with \pkg{translator}


\end{documentation}
\PrintIndex
  
\end{document}
