\newcommand{\importchapter}[2]{% Load a chapter (#2) in a path (#1)
    \cleardoublepage% after a clear double page
    \graphicspath{{#1/figures/}}% with figures
    \glsresetall% reset the acronyms
    \includefrom{#1}{#2}% and relative paths \input in the chapter
}

\newcommand{\chaptertoc}{% Print the table of contents for the chapter
    \vspace*{-1cm}%
    \horizontalrule%
    \vspace*{-0.5cm}%
    \localtableofcontents%
    \horizontalrule%
}

% Add chapter label as prefix to all other sub-labels
\NewCommandCopy{\oldlabel}{\label}
\newcommand{\labelprefix}{main}
\newcommand{\mainlabel}[1]{%
    \renewcommand{\labelprefix}{#1}%
    \oldlabel{\labelprefix}%
}
\renewcommand{\label}[1]{\oldlabel{\labelprefix:#1}}

% References
\newcommand{\chapref}[1]{Chapter~\ref{#1}}
\renewcommand{\eqref}[2][\labelprefix]{Equation~\ref{#1:eq:#2}}
\renewcommand{\figref}[2][\labelprefix]{Figure~\ref{#1:fig:#2}}
\newcommand{\partref}[1]{Part~\ref{#1}}
\renewcommand{\secref}[2][\labelprefix]{Section~\ref{#1:#2}}
\renewcommand{\tabref}[2][\labelprefix]{Table~\ref{#1:tab:#2}}

% Images
% example: \fig[1]{universe}{The Universe}[Additional caption text, not shown in the list of figures]
% reference later with: \figref{universe}
\RenewDocumentCommand{\fig}{O{1} O{htbp} m m O{}}{% #1 = width, #2 = position, #3 = label, #4 = caption, #5 = additional caption
    \begin{figure}[#2]
        \centering%
        \includegraphics[width=#1\linewidth]{#3}%
        \caption[#4]{#4#5}
        \label{fig:#3}%
    \end{figure}%
}

% example:
% \begin{subfigs}{label}{Fig title}[Subfig titles]
%   \subfig{subfig1}%
%   \subfig[1][htbp]{subfig2}[caption]%
% \end{subfigs}
% reference later with: \figref{label}
\RenewDocumentEnvironment{subfigs}{O{htbp} m m o}{% #1 = position, #2 = label, #3 = title, #4 = subfig titles
    \begin{figure}[#1]%
        \centering%
        }{%
        \caption[#3]{%
            #3%
            \IfValueTF{#4}{%
                \begin{enumerate*}[label=\textbf{(\alph*)}]%
                    #4%
                \end{enumerate*}%
            }%
        }%
        \label{fig:#2}%
    \end{figure}%
}

\NewDocumentCommand{\subfigsheight}{m}{% Set the height of the subfigures
    \setkeys{Gin}{height=#1}%
}

\RenewDocumentCommand{\subfig}{o O{b} m}{% #1 = width, #2 = valign, #3 = filename
    \hfill%
    \subfloat[\label{fig:#3}]{%
        \IfValueTF{#1}{%
            \includegraphics[width=#1\linewidth, valign=#2, keepaspectratio]{#3}%
        }{%
            \includegraphics[valign=#2, keepaspectratio]{#3}%
        }%
    }%
    \hfill%
}

\captionsetup{%
    labelfont={sf,bf,up}, % sans-serif, bold, upright
}

\RenewDocumentEnvironment{tab}{O{htbp} m m o}{% #1 = position, #2 = label, #3 = title, #4 = additional caption
    \begin{table}[#1]%
        \centering%
        \caption[#3]{#3#4}%
        \label{tab:#2}%
        }{%
    \end{table}%
}
