% \iffalse meta-comment
%
%% apuntsgenerics.dtx
%% Copyright 2019 ApuntsFME
%% Copyright 2021 avm99963
%
% 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 avm99963.
%
% This work consists of the files apuntsgenerics.dtx and
% apuntsgenerics.ins and the derived file apuntsgenerics.sty.
%
% \fi
%
% \iffalse
%<*driver>
\ProvidesFile{apuntsgenerics.dtx}
%</driver>
%
%<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
%<package>\ProvidesPackage{apuntsgenerics}[2019/07/08 v1.o .dtx apuntsgenerics file]
%
%<class>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
%<class>\ProvidesClass{notes}[2019/10/12 v1.0 class for taking notes in class]
%
%<*driver>
\documentclass{ltxdoc}
\usepackage{apuntsgenerics}
\usepackage{hyperref}
\usepackage{csquotes}
\usepackage{booktabs}
\usepackage{longtable}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\begin{document}
    \DocInput{apuntsgenerics.dtx}
\end{document}
%</driver>
% \fi
%
% \CheckSum{0}
%
% \CharacterTable
%   {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% \changes{v1.0}{2019/07/14}{Initial version}
%
% \GetFileInfo{apuntsgenerics.sty}
%
%
% \title{The \textsf{ApuntsGenerics} package\thanks{This document
%   corresponds to \textsf{apuntsgenerics}~\fileversion,
%   dated~\filedate.}}
% \author{Ernesto Lanchares\\ \href{mailto:e.lancha98@gmail.com}{e.lancha98@gmail.com} \and Oscar Benedito \\ \href{mailto:oscar@oscarbenedito.com}{oscar@oscarbenedito.com} \and Adrià Vilanova\\ \href{mailto:me@avm99963.com}{me@avm99963.com}}
%
% \maketitle
%
% \begin{abstract}
%   A package that aims to make taking notes in math class in \LaTeX\ easy.
% \end{abstract}
%
% This is a modification of the original ApuntsFME package which makes it brand-neutral, and can be used
% by any organization to take notes.
%
% The reasoning is that the original ApuntsFME package references the ApuntsFME logo and includes the
% string ``ApuntsFME'' in various parts of the compiled documents.
%
% \textbf{Original description:}
%
% The goal of this package is make taking notes on class easy. It includes a lot of packages and shortcuts
% that aim to make it easy to remember and easy to type. Note that this package is not meant to set a
% reference in how \LaTeX\ should be writter nor it's meant to be a guideline of any kind.
%
% \section{The ApuntsGenerics package}
% The ApuntsGenerics package has the purpose of providing the shortcuts and
% environments used for short typing.
%
% \subsection{Packages imported}
% As mentioned, this package collects a lot of other packages all very common to math typing. Here's a
% table with all of them and the use that they provide.
%
% \begin{longtable}{p{.2\textwidth}p{.6\textwidth}}
%     Package & Usage \\ \toprule \toprule
%     \endhead
%     \bottomrule \multicolumn{2}{c}{{Continued on next page}} \\
%     \endfoot
%     \bottomrule
%     \endlastfoot
%     inputenc & loaded with the \texttt{utf-8} option, used so the characters
%     are interpreted as unicode text \\ \midrule
%     fontenc & loaded with the \texttt{T1} option. It's used so, in the output
%     PDF, you can search for accented words \\ \midrule
%     lmodern & To have the fonts have high quality \\ \midrule
%     hyperref & To have clickable links and urls \\ \midrule
%     enumitem & loaded with \texttt{shortlabels}. Used to control enumerates \\
%     \midrule
%     amsmath & The American Mathematical Society \LaTeX\ package. Loads common
%     math utilities \\ \midrule
%     amsthm & The American Mathematical Society package used to typeset
%     theorems, propositions, \dots \\ \midrule
%     amssymb & The American Mathematical Society pacakgae that defines a lot of
%     ``common'' symbols \\ \midrule
%     graphicx & A lot of support for graphics inside the document \\ \midrule
%     mathtools & A set of mathematical tools. \\ \midrule
%     tikz & A package to create graphics inside \LaTeX. \\ \midrule
%     makeidx & This is what creates the glossary with the definitions. \\
%     \midrule
%     cancel & This package allows to cancel things in equations by marking them
%     with a line (just as you would do in a paper) \\ \midrule
%     pgf & Is the backend of \texttt{pgfplots} \\ \midrule
%     pgfplots & This is used with \texttt{tikz} to make axis plots \\ \midrule
%     mathrsfs & Support for using RSFS fonts in maths \\ \midrule
%     thmtools & This is used to furder customize the \texttt{amsthm}
%     environments \\ \midrule
%     tikz-cd & An extension of \texttt{tikz} to create commutative diagrams \\
%     \midrule
%     faktor & Used to typeset quotient structures \\ \midrule
%     physics & More macros for maths \\ \midrule
%     float & Let's you controll the figures position \\ \midrule
% \end{longtable}
%
% It's interesting to note that we load TiKz and PGF because we bet for making
% the figures inside \LaTeX\ and not with another external tool. However, this
% has a drawback and is that it increases compilation times by quite a lot. To
% mitigate this effect we also use \texttt{external} with TiKz. This library,
% makes the first computation very very slow and creates a directory with all
% the figures generated from the code. Then, the rest of the compilations just
% need to import that precomputed figure so they are a lot faster. This
% behaviour can be turned off by the \texttt{noexternal} option.
%
% You can also control the output folder of these figures with the option
% \texttt{externalfolder}. Here's an example of how to put the figures in the
% folder myfigures. But remember that this option will be ignored if you use 
% \texttt{noexternal}.
%
% \begin{verbatim}
% \usepackage[externalfolder=myfigures]{apuntsgenerics}
% \end{verbatim}
%
% \StopEventually{}
%
% \section{Package implementation}
% \iffalse
%<*package>
% \fi
% \subsection{Includes}
%
% In the first place, we need to import some other packages (in fact, a lot of them). We
% considered that there's no need in reinventing the wheel so our work is based on this packages
% 
%    \begin{macrocode}
\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\RequirePackage{lmodern}
\RequirePackage[shortlabels]{enumitem}
\RequirePackage{amsmath,amsthm,amssymb,graphicx,mathtools,tikz,makeidx}
\RequirePackage{cancel,pgf,pgfplots,mathrsfs,thmtools,tikz-cd,faktor}
\RequirePackage{physics,float}
%    \end{macrocode}
%
% Then we have lots of packages that we want to remove but have some documents that use them
% so we don't remove them because laziness.
%    \begin{macrocode}
\RequirePackage{xfrac} % Fa els sfrac, per cert un a multi esta malamanet??
\RequirePackage{siunitx} %Crec que cal canviar codi
\RequirePackage{centernot} % Aixo es exclusiu d'estructures per fer un \not concret als mid?
\RequirePackage{multicol} % Exclusiu dels formularis?
\RequirePackage{xcolor} % Aixo potser es d'un document concret
\RequirePackage{needspace} %No se si es gaire util, compila sense incloure'l
\RequirePackage{commath} % Aquest implement els \dif, cal canviar tot el codi per ferho amb physics
\RequirePackage{dsfont} % No se que fa, compila si el trec
\RequirePackage{mdframed,stackengine,stmaryrd,multirow}
\PassOptionsToPackage{unicode}{hyperref}
\RequirePackage{hyperref, cleveref}
%    \end{macrocode}
%
%
% And some style definitions, just because we can.
%    \begin{macrocode}
\let\emptyset\varnothing
\setcounter{secnumdepth}{4}
\def\mydate{\today}
\hypersetup{
    colorlinks,
    linkcolor=blue
}
%    \end{macrocode} 
%
% \subsection{Conflict fixes}
% In this section we fix conflicts between loaded packages. As of now, we only
% fix a spurious warning when using boldsymbol and stmaryrd. See
% \url{https://tex.stackexchange.com/questions/106714/stmaryrd-and-boldsymbol-avoid-warnings}
%    \begin{macrocode}
\SetSymbolFont{stmry}{bold}{U}{stmry}{m}{n}
%    \end{macrocode}
%
% \subsection{Useful commands}
% In this section we provide some useful commands.
%
% We start with some commands that need to be removed but again, laziness
%    \begin{macrocode}
%\newcommand{\ap}[1]{\ensuremath\overline{#1}}
%\newcommand{\Sup}[1]{\ensuremath\underset{#1}{\sup}}
%\newcommand{\Max}[1]{\ensuremath\underset{#1}{\max}}
%\newcommand{\Min}[1]{\ensuremath\underset{#1}{\min}}
%\newcommand{\scin}[1]{\ensuremath\SI{#1}{}}
\newcommand\comp[1]{\overline{#1}} % Treure? #SouUnsVagos
\newcommand\inv[1]{#1^{-1}} % Habra que sacarlo de algun documento?
\newcommand{\ita}[1]{\textit{#1}}   % Habra que sacarlo de algun documento?
\newmdenv[leftline=false,topline=false]{topright}
%    \end{macrocode}
%
% Now we can proceed into the part that we are proud of. First some commands
%    \begin{macrocode}
%\newcommand\mapsfrom{\mathrel{\reflectbox{\ensuremath{\mapsto}}}} %Already defined?
\newcommand*{\bimplies}{\boxed{\implies}}
\newcommand*{\bimpliedby}{\boxed{\impliedby}}
%    \end{macrocode}
%
% \subsubsection{Mathbb commands}
% Again, with some parts that needs removing/refactoring
%    \begin{macrocode}
\newcommand{\n}{\mathbb{N}}
\newcommand{\z}{\mathbb{Z}}
\newcommand{\q}{\mathbb{Q}}
\newcommand{\cx}{\mathbb{C}}
\renewcommand{\real}{\mathbb{R}}
\newcommand{\E}{\mathbb{E}}
\newcommand{\F}{\mathbb{F}}
\newcommand{\A}{\mathbb{A}}
\newcommand{\bb}[1]{\mathbb{#1}}
\newcommand{\Po}{\mathbb{P}}
\newcommand{\esp}{\mathbb{E}}
\DeclareMathOperator{\cov}{\mathbb{C}ov} % TODO esto que?
\let\var\relax
\DeclareMathOperator{\var}{\mathbb{V}ar} % TODO esto que?
%    \end{macrocode}
%
% \subsubsection{Mathcal commands}
%
%    \begin{macrocode}
\newcommand{\R}{\mathcal{R}}
\newcommand{\Pa}{\mathcal{P}}
\newcommand{\Es}{\mathcal{E}}
\newcommand{\V}{\mathcal{V}}
\newcommand{\T}{\mathcal{T}}
\newcommand{\B}{\mathcal{B}}
\let\O\relax
\newcommand{\O}{\mathcal{O}}
\newcommand{\Sim}{\mathcal{S}}
\newcommand{\Asim}{\mathcal{A}} % TODO aquest i el dabaix son el mateix
\newcommand{\Asuc}{\mathcal{A}} % Conjunt de successos
\newcommand{\matspace}{\mathcal{M}} %Espai de matrius
%    \end{macrocode}
%
% \subsubsection{Mathscr and others}
%  Hyperref unicode uses \C, therefore we renew \C for backwards compatibility.
%    \begin{macrocode}
\renewcommand{\C}{\mathscr{C}}
\let\k\relax
\newcommand{\k}{\Bbbk}
%    \end{macrocode}
%
% \subsubsection{Math utilities}
%    \begin{macrocode}
\newcommand{\trir}{\triangleright}
\newcommand{\tril}{\triangleleft}
\newcommand{\limvar}[2]{\lim\limits_{#1 \rightarrow #2}} % Para escribir limites más rapido
\newcommand{\notimplies}{\mathrel{{\ooalign{\hidewidth$\not\phantom{=}$%
        \hidewidth\cr$\implies$}}}}
\newcommand{\defeq}{\stackrel{\text{\tiny def}}{=}} % Símbol 'definit com'
\def\upint{\mathchoice%
    {\mkern13mu\overline{\vphantom{\intop}\mkern7mu}\mkern-20mu}%
    {\mkern7mu\overline{\vphantom{\intop}\mkern7mu}\mkern-14mu}%
    {\mkern7mu\overline{\vphantom{\intop}\mkern7mu}\mkern-14mu}%
    {\mkern7mu\overline{\vphantom{\intop}\mkern7mu}\mkern-14mu}%
  \int}
\def\lowint{\mkern3mu\underline{\vphantom{\intop}\mkern7mu}\mkern-10mu\int}
%    \end{macrocode}
%
% \subsubsection{Left-right thing}
% For good practice this ones should be removed but hey using an IDE with macro insertion
% is aparently very difficult...
%    \begin{macrocode}
\newcommand\setb[1]{\left\{#1\right\}}  % Deberia irse?
\newcommand{\vbrack}[1]{\langle #1\rangle}
\newcommand{\spr}[1]{\langle #1 \rangle} % TODO aquest i lanterior son el mateix
\newcommand{\lp}{\left(}
\newcommand{\rp}{\right)}
\newcommand{\lc}{\left\{}
\newcommand{\rc}{\right\}}
\newcommand{\lb}{\left[}
\newcommand{\rb}{\right]}
%    \end{macrocode}
%
% \subsubsection{Math operators}
%    \begin{macrocode}
\DeclareMathOperator{\Ec}{Ec}
\DeclareMathOperator{\Ep}{Ep}
\DeclareMathOperator{\orden}{o}
\DeclareMathOperator{\ord}{ord}
\DeclareMathOperator{\card}{card}
\DeclareMathOperator{\mcm}{mcm}
\DeclareMathOperator{\mcd}{mcd}
\DeclareMathOperator{\lcm}{lcm}
\DeclareMathOperator{\Em}{Em}
\DeclareMathOperator*{\argmax}{arg\,max}
\DeclareMathOperator*{\argmin}{arg\,min}
\DeclareMathOperator{\fr}{Fr}
\DeclareMathOperator{\Id}{Id}
\DeclareMathOperator{\ext}{Ext}
\DeclareMathOperator{\inte}{Int}
\DeclareMathOperator{\rie}{Rie}
\DeclareMathOperator{\rg}{rg}
\DeclareMathOperator{\gr}{gr}
\DeclareMathOperator{\nuc}{Nuc}
\DeclareMathOperator{\car}{car}
\DeclareMathOperator{\im}{Im}
\DeclareMathOperator{\re}{Re}
\DeclareMathOperator{\spec}{Spec}
\DeclareMathOperator{\Log}{Log}
\DeclareMathOperator{\Arg}{Arg}
%\DeclareMathOperator{\tr}{tr} % Already in physics
\DeclareMathOperator{\vol}{vol}
%\DeclareMathOperator{\grad}{grad} % Already in physics
\DeclareMathOperator{\rot}{rot}
\DeclareMathOperator{\diver}{div}
\DeclareMathOperator{\sinc}{sinc}
\DeclareMathOperator{\graf}{graf}
\DeclareMathOperator{\TQ}{\text{ tal que }}
\DeclareMathOperator{\tq}{\;t.q.\;}
\DeclareMathOperator{\disc}{disc}
\DeclareMathOperator{\fl}{fl} % Representación en coma flotante
\DeclareMathOperator{\sgn}{sgn} % Función signo (sgn) de una permutación
\DeclareMathOperator{\diag}{diag} % Notación corta para matriz diagonal: diag(d_1,...,d_n)
\DeclareMathOperator{\vspan}{span}
%    \end{macrocode}
%
% \subsubsection{Index}
%    \begin{macrocode}
\newcounter{apuntsgenerics@index}
\setcounter{apuntsgenerics@index}{1}
\def\consume#1{}%
\def\printcmd{\expandafter\consume\string}
\def\idx#1{%
        \edef\apuntsgenerics@tmp{apuntsgenerics@index:\Roman{apuntsgenerics@index}}%
	\expandafter\label\expandafter{\apuntsgenerics@tmp}%
	\expandafter\xdef\csname indice\Roman{apuntsgenerics@index}\endcsname%
        ##1{\noexpand\hyperref[apuntsgenerics@index:\Roman{apuntsgenerics@index}]{##1}}%
	\index{#1|\expandafter\printcmd\csname indice\Roman{apuntsgenerics@index}\endcsname}%
	\stepcounter{apuntsgenerics@index}%
}

\makeindex
\RequirePackage[totoc]{idxlayout} % Glossari a l'índex
%    \end{macrocode}
%
% \subsection{Environments}
% Here we define the environments in which the notes we take are based on.
%
% TODO add an option to the package to select the position of the number (before/after)
%    \begin{macrocode}
\newtheoremstyle{break}% name
{}%         Space above, empty = `usual value'
{}%         Space below
{}% Body font
{}%         Indent amount (empty = no indent, \parindent = para indent)
{\bfseries}% Thm head font
{}%        Punctuation after thm head
{5pt plus 1pt minus 1pt}% Space after thm head: \newline = linebreak
{\thmname{#1}\thmnumber{ #2}.\thmnote{ {\it #3.}\newline}}%         Thm head spec

\newtheoremstyle{demo}% name
{}%         Space above, empty = `usual value'
{}%         Space below
{}% Body font
{}%         Indent amount (empty = no indent, \parindent = para indent)
{\it}% Thm head font
{}%        Punctuation after thm head
{5pt plus 1pt minus 1pt}% Space after thm head: \newline = linebreak
{#1\thmnote{ #3}.}%         Thm head spec

\newtheoremstyle{breakthm}% name
{}%         Space above, empty = `usual value'
{}%         Space below
{}% Body font
{}%         Indent amount (empty = no indent, \parindent = para indent)
{\bfseries}% Thm head font
{}%        Punctuation after thm head
{\newline}% Space after thm head: \newline = linebreak
{\thmname{#1}\thmnumber{ #2}.\thmnote{ {\it #3.}}\addcontentsline{toc}{subsection}{#3}}%         Thm head spec

\newtheoremstyle{normal}% name
{}%         Space above, empty = `usual value'
{}%         Space below
{}% Body font
{}%         Indent amount (empty = no indent, \parindent = para indent)
{\bfseries}% Thm head font
{}%        Punctuation after thm head
{5pt plus 1pt minus 1pt}% Space after thm head: \newline = linebreak
{\thmname{#1}\thmnumber{ #2}.\thmnote{ {\it #3.}}}%         Thm head spec

\newtheoremstyle{autodefi}% name
{}%         Space above, empty = `usual value'
{}%         Space below
{}% Body font
{}%         Indent amount (empty = no indent, \parindent = para indent)
{\bfseries}% Thm head font
{}%        Punctuation after thm head
{5pt plus 1pt minus 1pt}% Space after thm head: \newline = linebreak
{\idx{#3}\thmname{#1}\thmnumber{ #2}.}% Thm head specko
%    \end{macrocode}
%
% \subsection{Options}
% Here we have some options for the package
%
% \subsubsection{Babel}
% TODO make english language the default
%    \begin{macrocode}
\DeclareOption{numbersbefore}{
    \newtheoremstyle{break}% name
    {}%         Space above, empty = `usual value'
    {}%         Space below
    {}% Body font
    {}%         Indent amount (empty = no indent, \parindent = para indent)
    {\bfseries}% Thm head font
    {}%        Punctuation after thm head
    {5pt plus 1pt minus 1pt}% Space after thm head: \newline = linebreak
    {\thmnumber{#2}. \thmname{#1.}\thmnote{ {\it #3.}\newline}}%         Thm head spec

    \newtheoremstyle{demo}% name
    {}%         Space above, empty = `usual value'
    {}%         Space below
    {}% Body font
    {}%         Indent amount (empty = no indent, \parindent = para indent)
    {\it}% Thm head font
    {}%        Punctuation after thm head
    {5pt plus 1pt minus 1pt}% Space after thm head: \newline = linebreak
    {#1\thmnote{ #3}.}%         Thm head spec

    \newtheoremstyle{breakthm}% name
    {}%         Space above, empty = `usual value'
    {}%         Space below
    {}% Body font
    {}%         Indent amount (empty = no indent, \parindent = para indent)
    {\bfseries}% Thm head font
    {}%        Punctuation after thm head
    {\newline}% Space after thm head: \newline = linebreak
    {\thmnumber{#2}. \thmname{#1.}\thmnote{ {\it #3.}}\addcontentsline{toc}{subsection}{#3}}%         Thm head spec

    \newtheoremstyle{normal}% name
    {}%         Space above, empty = `usual value'
    {}%         Space below
    {}% Body font
    {}%         Indent amount (empty = no indent, \parindent = para indent)
    {\bfseries}% Thm head font
    {}%        Punctuation after thm head
    {5pt plus 1pt minus 1pt}% Space after thm head: \newline = linebreak
    {\thmnumber{#2}. \thmname{#1.}\thmnote{ {\it #3.}}}%         Thm head spec

    \newtheoremstyle{autodefi}% name
    {}%         Space above, empty = `usual value'
    {}%         Space below
    {}% Body font
    {}%         Indent amount (empty = no indent, \parindent = para indent)
    {\bfseries}% Thm head font
    {}%        Punctuation after thm head
    {5pt plus 1pt minus 1pt}% Space after thm head: \newline = linebreak
    {\idx{#3}\label{defi:#2}\thmnumber{#2}. \thmname{#1.}}% Thm head specko
}
\newif\if@babel\@babeltrue
\newcount\@babellang
\@babellang=0
\def\@babelopt{english}
\DeclareOption{nobabel}{
  \@babelfalse
}
\DeclareOption{catalan}{
    \gdef\@babelopt{catalan}
    \@babellang=1
}
\DeclareOption{spanish}{
    \gdef\@babelopt{spanish,es-lcroman,es-nolists}
    \@babellang=2
}
\DeclareOption{english}{
    \gdef\@babelopt{english}
    \@babellang=3
}
%    \end{macrocode}
%
% Then, we need to configure TiKz and PGF
%    \begin{macrocode}
\usetikzlibrary{positioning,arrows, calc, babel}

\newif\if@external\@externaltrue
\DeclareOption{noexternal}{
    \@externalfalse
}
\def\apunts@folder{figures/}

\pgfplotsset{compat=1.11}
%    \end{macrocode}
%
% Lastly, we procces the options.
%    \begin{macrocode}
\ProcessOptions\relax

\if@external
    \usetikzlibrary{external}
    \tikzexternalize[prefix=\apunts@folder]
\fi

\if@babel
    \PassOptionsToPackage{\@babelopt}{babel}
    \RequirePackage{babel}
\fi
\ifnum\@babellang=1
    % Normal
    \declaretheorem[style=normal,name=Lema,numberwithin=section]{lema}
    \declaretheorem[style=normal,name=Lema,numbered=no]{lema*}
    \declaretheorem[style=normal,name=Observació,sibling=lema]{obs}
    \declaretheorem[style=normal,name=Observació,numbered=no]{obs*}
    \declaretheorem[style=normal,name=Proposició,sibling=lema]{prop}
    \declaretheorem[style=normal,name=Proposició,numbered=no]{prop*}
    \declaretheorem[style=normal,name=Definició,sibling=lema]{defi*}
    \declaretheorem[style=normal,name=Coro{\lgem}ari,sibling=lema]{col}
    \declaretheorem[style=normal,name=Coro{\lgem}ari,numbered=no]{col*}
    \declaretheorem[style=normal,name=Exercici,sibling=lema]{ej}
    \declaretheorem[style=normal,name=Exercici,numbered=no]{ej*}
    \declaretheorem[style=normal,name=Exemple,sibling=lema]{example}
    \declaretheorem[style=normal,name=Exemple,numbered=no]{example*}
    \declaretheorem[style=normal,name=Problema,sibling=lema]{problema}
    \declaretheorem[style=normal,name=Problema,numbered=no]{problema*}

    % Autodefi
    \declaretheorem[style=autodefi,name=Definició,sibling=lema]{defi}

    % Demo
    \let\proof\relax
    \declaretheorem[style=demo,name=Demostració,qed=$\square$,numbered=no]{proof}
    \declaretheorem[style=demo,name=Solució,numbered=no]{sol}

    % Break
    \declaretheorem[style=break,name=Teorema,sibling=lema]{teo*}

    % Breakthm
    \declaretheorem[style=breakthm,name=Teorema,sibling=lema]{teo}

    \@ifclassloaded{book}{%
        \AtBeginDocument{\renewcommand{\chaptername}{Tema}}
    }{}
\fi
\ifnum\@babellang=2
    % Normal
    \declaretheorem[style=normal,name=Lema,numberwithin=section]{lema}
    \declaretheorem[style=normal,name=Lema,numbered=no]{lema*}
    \declaretheorem[style=normal,name=Observación,sibling=lema]{obs}
    \declaretheorem[style=normal,name=Observación,numbered=no]{obs*}
    \declaretheorem[style=normal,name=Proposición,sibling=lema]{prop}
    \declaretheorem[style=normal,name=Proposición,numbered=no]{prop*}
    \declaretheorem[style=normal,name=Definición,sibling=lema]{defi*}
    \declaretheorem[style=normal,name=Corolario,sibling=lema]{col}
    \declaretheorem[style=normal,name=Corolario,numbered=no]{col*}
    \declaretheorem[style=normal,name=Ejercicio,sibling=lema]{ej}
    \declaretheorem[style=normal,name=Ejercicio,numbered=no]{ej*}
    \declaretheorem[style=normal,name=Ejemplo,sibling=lema]{example}
    \declaretheorem[style=normal,name=Ejemplo,numbered=no]{example*}
    \declaretheorem[style=normal,name=Problema,sibling=lema]{problema}
    \declaretheorem[style=normal,name=Problema,numbered=no]{problema*}

    % Autodefi
    \declaretheorem[style=autodefi,name=Definición,sibling=lema]{defi}

    % Demo
    \let\proof\relax
    \declaretheorem[style=demo,name=Demostración,qed=$\square$,numbered=no]{proof}
    \declaretheorem[style=demo,name=Solución,numbered=no]{sol}

    % Break
    \declaretheorem[style=break,name=Teorema,sibling=lema]{teo*}

    % Breakthm
    \declaretheorem[style=breakthm,name=Teorema,sibling=lema]{teo}

    \@ifclassloaded{book}{%
        \AtBeginDocument{\renewcommand{\contentsname}{Contenidos}}
        \AtBeginDocument{\renewcommand{\chaptername}{Tema}}
    }{}
\fi
\ifnum\@babellang=3
    % Normal
    \declaretheorem[style=normal,name=Lemma,numberwithin=section]{lema}
    \declaretheorem[style=normal,name=Lemma,numbered=no]{lema*}
    \declaretheorem[style=normal,name=Observation,sibling=lema]{obs}
    \declaretheorem[style=normal,name=Observation,numbered=no]{obs*}
    \declaretheorem[style=normal,name=Proposition,sibling=lema]{prop}
    \declaretheorem[style=normal,name=Proposition,numbered=no]{prop*}
    \declaretheorem[style=normal,name=Definition,sibling=lema]{defi*}
    \declaretheorem[style=normal,name=Corollary,sibling=lema]{col}
    \declaretheorem[style=normal,name=Corollary,numbered=no]{col*}
    \declaretheorem[style=normal,name=Exercice,sibling=lema]{ej}
    \declaretheorem[style=normal,name=Exercice,numbered=no]{ej*}
    \declaretheorem[style=normal,name=Example,sibling=lema]{example}
    \declaretheorem[style=normal,name=Example,numbered=no]{example*}
    \declaretheorem[style=normal,name=Problem,sibling=lema]{problema}
    \declaretheorem[style=normal,name=Problem,numbered=no]{problema*}

    % Autodefi
    \declaretheorem[style=autodefi,name=Definition,sibling=lema]{defi}

    % Demo
    \let\proof\relax
    \declaretheorem[style=demo,name=Proof,qed=$\square$,numbered=no]{proof}
    \declaretheorem[style=demo,name=Solution,numbered=no]{sol}

    % Break
    \declaretheorem[style=break,name=Theorem,sibling=lema]{teo*}

    % Breakthm
    \declaretheorem[style=breakthm,name=Theorem,sibling=lema]{teo}

    \@ifclassloaded{book}{%
        \AtBeginDocument{\renewcommand{\contentsname}{Contents}}
        \AtBeginDocument{\renewcommand{\chaptername}{Topic}}
    }{}
\fi
%    \end{macrocode}
%
% \iffalse
%</package>
% \fi
% \section{Class implementation}
% \iffalse
%<*class>
% \fi
% \subsection{Imports}
%    \begin{macrocode}
\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\RequirePackage{lmodern}
\RequirePackage{graphicx}
%    \end{macrocode}
%
% \subsection{Language}
% The default language is english
%    \begin{macrocode}
\newcommand*{\@authortext}{Author}
\newcommand*{\@authorstext}{Authors}
\newcommand*{\@prauthortext}{Principal author}
\newcommand*{\@prauthorstext}{Principal authors}
\newcommand*{\@otherauthortext}{Other authors}
\newcommand*{\@reviewertext}{Reviewers}
\newcommand*{\@lastupdatetext}{Last update}
\newcommand*{\@titlemonth}{\ifcase \the\month \or January \or February \or March \or April \or May  \or June \or July \or August \or September \or October \or November \or December \fi \number \year}
\newcommand*{\titlemonth}[1]{\gdef\@titlemonth{#1}}

\DeclareOption{spanish}{
    \renewcommand*{\languagename}{spanish}
    \renewcommand*{\@authortext}{Autor}
    \renewcommand*{\@authorstext}{Autores}
    \renewcommand*{\@prauthortext}{Autor principal}
    \renewcommand*{\@prauthorstext}{Autores principales}
    \renewcommand*{\@otherauthortext}{Otros autores}
    \renewcommand*{\@reviewertext}{Revisores}
    \renewcommand*{\@lastupdatetext}{\'Ultima modificaci\'on}
    \renewcommand*{\@titlemonth}{\ifcase \the\month \or Enero \or Febrero \or Marzo \or Abril \or Mayo  \or Junio \or Julio \or Agosto \or Septiembre \or Octubre \or Noviembre \or Diciembre \fi \number \year}
}

\newif\if@puntvolat\@puntvolatfalse
\DeclareOption{catalan}{
    \renewcommand*{\languagename}{catalan}
    \renewcommand*{\@authortext}{Autor}
    \renewcommand*{\@authorstext}{Autors}
    \renewcommand*{\@prauthortext}{Autor principal}
    \renewcommand*{\@prauthorstext}{Autors principals}
    \renewcommand*{\@otherauthortext}{Altres autors}
    \renewcommand*{\@reviewertext}{Revisors}
    \renewcommand*{\@lastupdatetext}{\'Ultima modificaci\'o}
    \renewcommand*{\@titlemonth}{\ifcase \the\month \or Gener \or Febrer \or Mar\c{c} \or Abril \or Maig  \or Juny \or Juliol \or Agost \or Setembre \or Octubre \or Novembre \or Desembre \fi \number \year}
    \@puntvolattrue
}

\DeclareOption{english}{
    \renewcommand*{\languagename}{english}
    \renewcommand*{\@authortext}{Author}
    \renewcommand*{\@authorstext}{Authors}
    \renewcommand*{\@prauthortext}{Main author}
    \renewcommand*{\@prauthorstext}{Main authors}
    \renewcommand*{\@otherauthortext}{Other authors}
    \renewcommand*{\@reviewertext}{Reviewers}
    \renewcommand*{\@lastupdatetext}{Last modified}
    \renewcommand*{\@titlemonth}{\ifcase \the\month \or January \or February \or March \or April \or May  \or June \or July \or August \or September \or October \or November \or December \fi \number \year}
}
%    \end{macrocode}
%
% \subsection{Metatadata}
% TODO creo que no funciona o algo así...
%    \begin{macrocode}
\newcommand*{\generatemetadata}{%
    \renewcommand*{\and}{ and }
    \hypersetup{
        pdfauthor={\@author}
    }
    \renewcommand*{\and}{ }
    \hypersetup{
        pdftitle={{\@title} -- Apunts},
        pdfsubject={\@title},
        pdfkeywords={Apunts},
    }
}
%    \end{macrocode}
%
% \subsection{Process options}
%    \begin{macrocode}
\ProcessOptions\relax
%    \end{macrocode}
%
% \subsection{Import class}
% Again we don't think making the whole thing from scratch was viable.
%    \begin{macrocode}
\LoadClass[12pt]{book}
%    \end{macrocode}
%
% \subsection{Title page}
% Here we create the title page, one of the strengths of this class
%
% \subsubsection{Last update}
%    \begin{macrocode}
\newif\if@lastupdate\@lastupdatetrue
\newcommand*{\nolastupdate}{\@lastupdatefalse}
%    \end{macrocode}
%
% \subsubsection{Authors}
%    \begin{macrocode}
\newcommand*{\@metaauthor}{}

\newcount\apuntsgenerics@numberauthor
\apuntsgenerics@numberauthor=0

\def\@author{}
\renewcommand*{\author}[1]{%
    \expandafter\gdef\csname apuntsgenerics@author\the\apuntsgenerics@numberauthor\endcsname{#1}%
    \advance\apuntsgenerics@numberauthor by1 %
}
%    \end{macrocode}
%
% \subsubsection{Other Authors}
%    \begin{macrocode}
\def\@otherauthor{}
\newcommand*{\otherauthor}[1]{%
    \ifx\@otherauthor\empty %
        \gdef\@otherauthor{#1}%
    \else%
        \expandafter\gdef\expandafter\@otherauthor\expandafter{\@otherauthor, #1}%
    \fi%
}
%    \end{macrocode}
%
% \subsubsection{Reviewers}
%    \begin{macrocode}
\def\@reviewer{}
\newcommand*{\reviewer}[1]{%
    \ifx\@reviewer\empty %
        \gdef\@reviewer{#1}%
    \else%
        \expandafter\gdef\expandafter\@reviewer\expandafter{\@reviewer, #1}%
    \fi%
}
%    \end{macrocode}
%
% \subsubsection{Subtitle}
%    \begin{macrocode}
\newcommand*{\subtitle}[1]{\gdef\@subtitle{#1}}
\newcommand*{\@subtitle}{}
%    \end{macrocode}
%
% \subsubsection{Thanks comment}
%    \begin{macrocode}
\newcommand*{\thankscomment}[1]{\gdef\@thankscomment{#1}}
\newcommand*{\@thankscomment}{}
%    \end{macrocode}
%
% \subsubsection{Title page}
% All of the previous sections are combined here were we actually make the title page.
% TODO remove doclicense
%    \begin{macrocode}
\renewcommand*{\maketitle}{%
\generatemetadata
\begin{titlepage}
    \centering\scshape%
    \vspace*{\fill}%
    \rule{\textwidth}{1.6pt}\vspace*{-\baselineskip}\vspace*{2pt} %
    \rule{\textwidth}{0.4pt} %

    \vspace{0.75\baselineskip}

    \renewcommand*{\and}{\protect\\}%
    {\LARGE \expandafter\MakeUppercase\expandafter{\@title}\\}

    \vspace{0.75\baselineskip}

    \rule{\textwidth}{0.4pt}\vspace*{-\baselineskip}\vspace{3.2pt} %
    \rule{\textwidth}{1.6pt} %

    \vspace{1.5\baselineskip}
    
    \@subtitle
    
    \vspace*{\fill}
    \vspace*{\fill}
    \vspace*{\fill}
    \vspace*{\fill}
    \vspace*{\fill}
    \vspace*{\fill}
    
    \vspace{0.3\baselineskip}
    
    Barcelona, \@titlemonth
\end{titlepage}

\vspace*{\fill}

\ifnum\apuntsgenerics@numberauthor=0%
\else%
    \ifx\@otherauthor\empty %
        \ifnum\apuntsgenerics@numberauthor=1%
            \noindent \@authortext: %
        \else%
            \noindent \@authorstext: %
        \fi%
    \else%
        \ifnum\apuntsgenerics@numberauthor=1%
            \noindent \@prauthortext: %
        \else%
            \noindent \@prauthorstext: %
        \fi%
    \fi
    \newcount\apuntsgenerics@tempauthor%
    \loop%
        \ifnum\apuntsgenerics@tempauthor=0 %
        \else%
            , %
        \fi%
        \csname apuntsgenerics@author\the\apuntsgenerics@tempauthor\endcsname%
    \advance\apuntsgenerics@tempauthor by 1 %
    \ifnum\apuntsgenerics@tempauthor < \apuntsgenerics@numberauthor%
    \repeat%
    .%
\fi
\ifx\@otherauthor\empty
\else

    \quad
    
    \noindent \@otherauthortext: \@otherauthor.
\fi
\ifx\@reviewer\empty
\else

    \quad
    
    \noindent \@reviewertext: \@reviewer.
\fi
\ifx\@thankscomment\empty
\else

    \quad
    
    \noindent \@thankscomment
\fi
\if@lastupdate

    \quad

    \noindent \@lastupdatetext: \@date.
\fi

\doclicenseThis
}
%    \end{macrocode}
%
% \subsection{Other commands}
%
% \begin{macro}{\makecover}
%    \begin{macrocode}
\newcommand*{\makecover}{
    \frontmatter
    \maketitle
    \tableofcontents
    \mainmatter
}
%    \end{macrocode}
% \end{macro}
%
% \subsection{Other includes}
% These packages need to be included last, so we place them here. The hyperref
% package is included as late as possible. TODO remove doclicense
%    \begin{macrocode}
\RequirePackage[a4paper,margin=1in]{geometry}
\AtBeginDocument{\RequirePackage{hyperref}}
\RequirePackage[
    type={CC},
    modifier={by-nc-sa},
    version={4.0},
]{doclicense}
%    \end{macrocode}
%
% \subsection{Parche punt volat}

%Definició de la ela geminada per tal que accepti el punt volat del teclat
%    \begin{macrocode}
\if@puntvolat
    \def·#1{%
        \ifmmode
            \cdot #1
    %\csname normal@char\string"\endcsname l%
        \else%
            \def\argument{#1}%
            \if\argument l%
                \leftllkern=0pt\rightllkern=0pt\raiselldim=0pt%
                \setbox0\hbox{l}\setbox1\hbox{l\/}\setbox2\hbox{.}%
                \advance\raiselldim by \the\fontdimen5\the\font
                \advance\raiselldim by -\ht2%
                \leftllkern=-.5\wd0%
                \advance\leftllkern by \wd1%
                \advance\leftllkern by -\wd0%
                \rightllkern=-.5\wd0%
                \advance\rightllkern by -\wd1%
                \advance\rightllkern by \wd0%
                \allowhyphens\discretionary{-}{l}%
                {\hbox{}\kern\leftllkern\raise\raiselldim\hbox{.}%
                \kern\rightllkern\hbox{l}}\allowhyphens%
            \else
                \if\argument L%
                    \leftllkern=0pt\rightllkern=0pt\raiselldim=0pt%
                    \setbox0\hbox{L}\setbox1\hbox{L\/}\setbox2\hbox{.}%
                    \advance\raiselldim by .5\ht0%
                    \advance\raiselldim by -.5\ht2%
                    \leftllkern=-.5\wd0%
                    \advance\leftllkern by \wd1%
                    \advance\leftllkern by -\wd0%
                    \rightllkern=.375\wd0%
                    \divide\rightllkern by 6%
                    \advance\rightllkern by -\wd1%
                    \advance\rightllkern by \wd0%
                    \allowhyphens\discretionary{-}{L}%
                    {\hbox{}\kern\leftllkern\raise\raiselldim\hbox{.}%
                    \kern\rightllkern\hbox{L}}\allowhyphens%
                \else
                    #1
                \fi
            \fi
        \fi
    } 
\fi
%    \end{macrocode}

% \iffalse
%</class>
% \fi
