\documentclass[full]{l3doc}

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

\usepackage{mkessler-mathalias}

\begin{document}

\maketitle

\begin{abstract}
  Lazy people prefer to write stuff like \cs{Z}, \cs{Q} to get the integers
  $\mathbb{Z}$ and rationals $\mathbb{Q}$.
  They also often use shortcuts like \cs{bA} for \cs{mathbb}\{A\} to get  $\mathbb{A}$.

  While the author does not encourage such usage,
  this package provide a general syntax to generate such aliases.
\end{abstract}

\begin{documentation}

\section{(Don't) be lazy}

You actually should \emph{not} use this package.
This is poor \LaTeX style.
In case you don't care, or you must, because your co-workers do so,
this package is for you.

The author personally uses
\href{https://www.vim.org/}{Vim}
and the
\href{https://github.com/sirver/UltiSnips}{UltiSnips}
plugin to facilitate \LaTeX writing whilst producing a clean document
without those poor shortcut styles.
So in fact, \emph{be} lazy, but do it the proper way.

If you are, however, lazy, then put

\begin{verbatim}
  \usepackage[extended]{mkessler-mathalias}
\end{verbatim}
in your preamble.

\section{Aliases}

\begin{function}{\MakeAliasesForWith}
  \begin{syntax}
    \cs{MakeAliasesForwith}\marg{macro}\marg{shortcut}\marg{token list}
  \end{syntax}

  For each \meta{token} in the \meta{token list},
  this declares
  \enquote{\cs{shortcut\meta{token}}}
  as an abbreviation for
  \enquote{\meta{macro}\marg{token}}.

  \begin{texnote}
    In \LaTeX3 syntax, this function would have signature \texttt{Nnn},
    so give the \meta{macro} as a single token directly.
  \end{texnote}

  \begin{texnote}
    Technically, the \meta{token list} can contain any tokens that
    are fully expandable and thus accepted by \cs{csname} \ldots \cs{endcsname}.
    However, as you want \emph{shortcuts}, you would typically invoke this
    with tokens of category code 12.
  \end{texnote}
\end{function}

As an example,
\begin{verbatim}
  \MakeAliasesForWith\mathcal{c}{ABC}
\end{verbatim}
would define the three macros \cs{cA}, \cs{cB} and \cs{cC} to expand to
\cs{mathcal}\{A\},
\cs{mathcal}\{B\}
and
\cs{mathcal}\{c\},
respectively.

\section{Options for default aliases}
  
There are two options:

\begin{description}
  \item[basic]
    This declares \cs{C}, \cs{F}, \cs{K}, \cs{N}, \cs{Q}, \cs{R} and \cs{Z}
    to expand to the \cs{mathbb} variants of these letters.
  \item[extended]
    Implies option \textbf{basic}.
    Also defines shortcuts for \cs{mathbb}, \cs{mathfrak} and \cs{mathcal}
    for each capital arabic letter with the prefixes \enquote{b},
    \enquote{f} and \enquote{c}, respectively.
\end{description}


\end{documentation}

\PrintIndex
  
\end{document}
