\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{tex/docstyle}[2021/02/26 v0.1 Styling for a Sans-Serif report]

%% Margins
\RequirePackage{geometry}
\newgeometry{margin=2.5cm, top=3cm, bottom=3cm}

%% Set math font to sans-serif
%% Note: must be set before text font
\RequirePackage{cmbright}
\RequirePackage{sfmath}

%% Set font to sans-serif
\RequirePackage{fontspec}
\PassOptionsToPackage{
  usefilenames,
  DefaultFeatures = {
    Ligatures = Common
  }
}{plex-otf}
\RequirePackage{plex-otf}
\renewcommand*{\familydefault}{\sfdefault}

%% Paragraph Style
\PassOptionsToPackage{indent}{parskip}
\RequirePackage{parskip}

%% Headers and footers
\RequirePackage{fancyhdr}
\fancypagestyle{docstyle}{
  \fancyhf{} % clear currrent values
  \fancyhead[L]{\itshape\leftmark}
  \fancyhead[R]{}
  \fancyfoot[C]{\thepage}
  \renewcommand{\headrulewidth}{0pt}
  \setlength{\headheight}{13pt}
}
\pagestyle{docstyle} % apply style

%% Title style
\RequirePackage{titling}
\setlength{\droptitle}{-1cm}
\pretitle{
  \begin{flushleft}
  \bfseries\Huge
}
\posttitle{
  \end{flushleft}\vspace{1em}
}
\preauthor{
  \begin{flushleft}
  \large
}
\postauthor{
  \end{flushleft}\vspace{1em}
}
\predate{
  \begin{flushleft}
}
\postdate{
  \par\end{flushleft}\vspace{1cm}
}

%% Link colors
\PassOptionsToPackage{table}{xcolor}
\RequirePackage{xcolor}
\PassOptionsToPackage{
  plainpages=false,
  pdfpagelabels,
  pdfusetitle,
  colorlinks = true,
  linkcolor = darkgray!50!black,
  urlcolor = blue!60!black,
  citecolor = black,
  anchorcolor = black
}{hyperref}
\RequirePackage{hyperref}

%% Source code listings
\RequirePackage{listings}
\lstset{
  belowcaptionskip=\baselineskip,
  breaklines=true,
  frame=none,
  inputencoding=utf8,
  % margin
  xleftmargin=\parindent,
  % numbers
  numbers=left,
  numbersep=5pt,
  numberstyle=\ttfamily\footnotesize\color{gray},
  % background
  backgroundcolor=\color{white},
  showstringspaces=false,
  % default language
  language=[LaTeX]TeX,
  % break long lines, and show an arrow where the line was broken
  breaklines=true,
  % postbreak=\mbox{\textcolor{blue!60!black}{$\hookrightarrow$}\space},
  % font
  basicstyle=\ttfamily\small,
  identifierstyle=\color{black},
  keywordstyle=\color{blue!60!black},
  commentstyle=\color{red!60!black},
  stringstyle=\color{orange!60!black},
}
