LaTeX packages for the working mathematician
I’ve written small LaTeX packages to help me write down solutions
to Algebra and Cathegory Theory exercises. Most of the commands provided
by the package are simply short-hands for symbols in
amssymb
. Here are the first two files:
xalgebra.sty
\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesPackage{xalgebra}[2020/09/10 1.0.0 Usefull definitions for Algebra]
\RequirePackage{amssymb} % For the standard sets
\RequirePackage{amsmath} % For the \DeclareMathOperator
% Standard sets
\newcommand{\NN}{\mathbb{N}}
\newcommand{\ZZ}{\mathbb{Z}}
\newcommand{\QQ}{\mathbb{Q}}
\newcommand{\RR}{\mathbb{R}}
\newcommand{\CC}{\mathbb{C}}
% Linear Algebra stuff
\DeclareMathOperator{\vspan}{span} % Set span
\DeclareMathOperator{\Tr}{Tr} % Operator trace
\DeclareMathOperator{\Id}{Id} % Identity operator
\DeclareMathOperator{\Bil}{Bil} % The space of bilinear maps
\DeclareMathOperator{\Mat}{Mat} % Matrix algebra
\newcommand{\norm}[1]{\left\lVert\nobreak#1\nobreak\right\rVert} % Vector norm
% Group Theory stuff
\newcommand{\gord}[1]{\left|\nobreak#1\nobreak\right|} % Group order
\newcommand{\perm}{\mathfrak{S}} % Permutation group
\DeclareMathOperator{\Inn}{Inn} % Inner automorphism group
\DeclareMathOperator{\Out}{Out} % Outer automorphism group
\DeclareMathOperator{\sgn}{sgn} % Permutation sign (parity)
\DeclareMathOperator{\GL}{GL} % General linear group
% Ring Theory stuff
\DeclareMathOperator{\Frac}{Frac} % Field of fractions
\DeclareMathOperator{\fchar}{char} % Field characteristic
% Representation Theory stuff
\DeclareMathOperator{\Rad}{Rad} % Jacobson radical
\endinput
functional.sty
\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesPackage{functional}
[2020/09/10 1.0.0 Usefull definitions for Category Theory]
\RequirePackage{amsmath}
\DeclareMathOperator{\Obj}{Obj} % The class of objects of a category
\DeclareMathOperator{\Hom}{Hom} % The class of morphisms of a category
\DeclareMathOperator{\End}{End} % Endomorphisms
\DeclareMathOperator{\Aut}{Aut} % Automorphisms
% Function stuff
\DeclareMathOperator{\dom}{dom} % The domain of a morphism
\DeclareMathOperator{\codom}{codom} % The codomain of a morphism
\DeclareMathOperator{\im}{im} % The image of morphism
\DeclareMathOperator{\id}{id} % Identity function
\newcommand{\To}{\Rightarrow} % Natural transformation
\endinput
I think both this packges are pretty self-explanatory. To use any of the
macros declared in this packages simply require the package and call
\<macro name>
. There’s another
package which isn’t as simple as this two though:
xexercise.sty
\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesPackage{xexercise}[2020/09/10 1.0.0 Usefull definitions for exercise solutions]
\RequirePackage{enumitem}
\RequirePackage{kvoptions}
\SetupKeyvalOptions{
family=xexercise,
prefix=xexercise@
}
\DeclareStringOption[Exercise]{exerciselabel}
\ProcessKeyvalOptions*
\newcounter{exercise}
% Option to reset the exercise label
\newcommand{\setexerciselabel}[1]
{\renewcommand{\xexercise@exerciselabel}{#1}}
% Exercise
\newenvironment{exercise}[1][\theexercise]
{\stepcounter{exercise}\noindent {\bfseries \xexercise@exerciselabel\, #1. }}
{}
% Exercise items ((a), (b), (c), ...)
\newenvironment{exerciseitems}
{\begin{enumerate}[label={\bfseries(\alph*)}]}
{\end{enumerate}}
\endinput
The xerxercise
package is an alternative to
the
exercises
package. It’s mostly meant for writing down exercise solutions.
The exercise
environment is similar to an
amsmthm’s theorem environments:
\begin{exercise}
Write down your solution in here.
\end{exercise}
If you want to customize the number in the heading of the environment, you can do the following:
\begin{exercise}[2.3.4]
Write down your solution in here.
\end{exercise}
If you want to customize the label in the heading of the environment you
can set the exerciselabel
parameter when
requirering the package:
\usepackage[exerciselabel=Foo]{xerxercise}
\begin{exercise}
Write down your solution in here.
\end{exercise}
You can also call the
\setexerciselabel
command:
\usepackage{xerxercise}
\setexerciselabel{Foo}
\begin{exercise}
Write down your solution in here.
\end{exercise}
Furthermore, there’s the
exerciseitems
environment, which is meant
for writting down solutions to specific items of an exercise:
\begin{exercise}
\begin{exerciseitems}
\item Item a.
\item Item b.
\item Item c.
\end{exerciseitems}
\end{exercise}
If you’re using
Overleaf you can install the
packages by simply placing them in the root folder of your project. If
you’re using TeXLive you
can install the packages by placing the
.sty
files in
$TEXMFHOME/tex/latex/
. The packages are
still in active development, I encorage anyone to send me
suggestions — just send me an email at
pablo-escobar@riseup.net!