% \iffalse meta-comment
%
%% apuntsfme.dtx
%% Copyright 2019 ApuntsFME
%
% 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 the ApuntsFME organization.
%
% This work consists of the files apuntsfme.dtx and apuntsfme.ins
% and the derived file apuntsfme.sty.
%
% \fi
%
% \iffalse
%<*driver>
\ProvidesFile{apuntsfme.dtx}
%</driver>
%
%<package>\NeedsTeXFormat{LaTeX2e}[2005/12/01]
%<package>\ProvidesPackage{apuntsfme}[2019/07/08 v1.o .dtx apuntsfme 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{apuntsfme}
\usepackage{hyperref}
\usepackage{csquotes}
\usepackage{booktabs}
\usepackage{longtable}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\begin{document}
    \DocInput{apuntsfme.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{apuntsfme.sty}
%
%
% \title{The \textsf{ApuntsFME} package\thanks{This document
%   corresponds to \textsf{apuntsfme}~\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}}
%
% \maketitle
%
% \begin{abstract}
%   A package that aims to make taking notes in math class in \LaTeX\ easy.
% \end{abstract}
%
% 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 ApuntsFME package}
% The ApuntsFME 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]{apuntsfme}
% \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}
\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}
%    \begin{macrocode}
\newcommand{\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{apuntsfme@index}
\setcounter{apuntsfme@index}{1}
\def\consume#1{}%
\def\printcmd{\expandafter\consume\string}
\def\idx#1{%
        \edef\apuntsfme@tmp{apuntsfme@index:\Roman{apuntsfme@index}}%
	\expandafter\label\expandafter{\apuntsfme@tmp}%
	\expandafter\xdef\csname indice\Roman{apuntsfme@index}\endcsname%
        ##1{\noexpand\hyperref[apuntsfme@index:\Roman{apuntsfme@index}]{##1}}%
	\index{#1|\expandafter\printcmd\csname indice\Roman{apuntsfme@index}\endcsname}%
	\stepcounter{apuntsfme@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 add english support and make it 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
}
%    \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
%    \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
}
%    \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} -- ApuntsFME},
        pdfsubject={\@title},
        pdfkeywords={ApuntsFME},
    }
}
%    \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\apuntsfme@numberauthor
\apuntsfme@numberauthor=0

\def\@author{}
\renewcommand*{\author}[1]{%
    \expandafter\gdef\csname apuntsfme@author\the\apuntsfme@numberauthor\endcsname{#1}%
    \advance\apuntsfme@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}
    
    \includegraphics[width=5cm]{../logo.pdf}
    
    \vspace{0.3\baselineskip}
    
    Barcelona, \@titlemonth
\end{titlepage}

\vspace*{\fill}

\ifnum\apuntsfme@numberauthor=0%
\else%
    \ifx\@otherauthor\empty %
        \ifnum\apuntsfme@numberauthor=1%
            \noindent \@authortext: %
        \else%
            \noindent \@authorstext: %
        \fi%
    \else%
        \ifnum\apuntsfme@numberauthor=1%
            \noindent \@prauthortext: %
        \else%
            \noindent \@prauthorstext: %
        \fi%
    \fi
    \newcount\apuntsfme@tempauthor%
    \loop%
        \ifnum\apuntsfme@tempauthor=0 %
        \else%
            , %
        \fi%
        \csname apuntsfme@author\the\apuntsfme@tempauthor\endcsname%
    \advance\apuntsfme@tempauthor by 1 %
    \ifnum\apuntsfme@tempauthor < \apuntsfme@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
