\ProvidesPackage{komageneral} % Base packages \usepackage{fontspec} \usepackage{geometry} \usepackage[autooneside=false]{scrlayer-scrpage} % Part of KOMA-Script bundle \usepackage{enumitem} \usepackage{caption} \usepackage[protrusion=true,expansion=true,final,tracking=true,kerning=true]{microtype} \usepackage{biblatex} \usepackage{float} \usepackage[table]{xcolor} \usepackage{longtable} \usepackage{xltabular} \usepackage{booktabs} \usepackage{grffile} \usepackage{unicode-math} \usepackage[Export]{adjustbox} \usepackage{graphicx} % Needed for title page \usepackage{etoolbox} % For custom quote environment \usepackage{wrapfig} \usepackage{rotating} \usepackage[normalem]{ulem} \usepackage{amsmath} \usepackage{amssymb} \usepackage{capt-of} \usepackage{hyperref} \usepackage{array} \usepackage[a-1a]{pdfx} \usepackage{listings} \usepackage{csvsimple} \KOMAoptions{ DIV=12, BCOR=10mm, twoside=true, toc=listof, titlepage=false, headings=normal, headsepline=true, footsepline=false, headinclude=false, footinclude=false, mpinclude=false, titlepage=true } \definecolor{darkgray}{RGB}{64,64,64} \definecolor{lightgray}{RGB}{200,200,200} % necessary to set max height and width for images \adjustboxset{max size={\textwidth}{0.6\textheight}} % Font settings \defaultfontfeatures{RawFeature={+zero, +liga}} \setmainfont{Noto Serif}[ UprightFont = Noto Serif Regular, BoldFont = Noto Serif Bold, ItalicFont = Noto Serif Italic, BoldItalicFont = Noto Serif Bold Italic, Scale = 1.0, Ligatures = {Common, TeX}, Numbers = {Lowercase, Proportional}, SmallCapsFeatures = {Letters = SmallCaps}, WordSpace = 1.1, PunctuationSpace = 2 ] \setsansfont{Noto Sans}[ UprightFont = Noto Sans Regular, BoldFont = Noto Sans Bold, ItalicFont = Noto Sans Italic, BoldItalicFont = Noto Sans Bold Italic, Scale = 1.0, Ligatures = {Common, TeX}, Numbers = {Lowercase, Proportional}, SmallCapsFeatures = {Letters = SmallCaps}, WordSpace = 1.1, PunctuationSpace = 2 ] \setmonofont{Noto Sans Mono Condensed}[ Scale = 1.0 ] % better readability on screen \linespread{1.15} % Geometry settings % \geometry{ % a4paper, % left=2.5cm, % right=2.5cm, % top=2.5cm, % bottom=2.5cm, % marginparwidth=1.5cm % } % % Header and footer settings with scrlayer-scrpage \pagestyle{scrheadings} \clearpairofpagestyles \automark[subsection]{section} % \automark[]{} \ohead{\pagemark} \ihead{\leftmark} % \ihead{\pagemark} % \chead{\Ifthispageodd{}{\@author}} % \ohead{\Ifthispageodd{\leftmark}{\@title}} \setkomafont{pageheadfoot}{\normalfont} \setkomafont{pagehead}{\normalfont} % Add lines under the header and above the footer % \setheadsepline{0.2pt} % Thickness of the header line % Section formatting with KOMA-Script features \setkomafont{section}{\LARGE\bfseries\sffamily\color{darkgray}} \setkomafont{subsection}{\Large\bfseries\sffamily\color{darkgray}} \setkomafont{subsubsection}{\large\bfseries\sffamily\color{darkgray}} % Define the spacing between title and content % \RedeclareSectionCommand[beforeskip=-1sp,afterskip=0.2\baselineskip]{section} % \RedeclareSectionCommand[beforeskip=-1sp,afterskip=0.3\baselineskip]{subsection} % \RedeclareSectionCommand[beforeskip=-1sp,afterskip=0.4\baselineskip]{subsubsection} \RedeclareSectionCommand[beforeskip=\baselineskip, afterskip=0.2\baselineskip, afterindent=false]{section} \RedeclareSectionCommand[beforeskip=\baselineskip, afterskip=0.3\baselineskip, afterindent=false]{subsection} \RedeclareSectionCommand[beforeskip=\baselineskip, afterskip=0.4\baselineskip, afterindent=false]{subsubsection} % Define the spacing between section number and title \renewcommand{\sectionformat}{\thesection\hspace{0.5em}} \renewcommand{\subsectionformat}{\thesubsection\hspace{0.5em}} \renewcommand{\subsubsectionformat}{\thesubsubsection\hspace{0.5em}} % Set global table font to Noto Sans Condensed Light \AtBeginEnvironment{tabular}{\fontspec{Noto Sans Condensed}} \AtBeginEnvironment{longtable}{\fontspec{Noto Sans Condensed}} \newcolumntype{P}[1]{>{\centering\arraybackslash}p{#1}} % Caption settings \captionsetup{font=small, labelfont=bf} % Custom quote environment \AtBeginEnvironment{quote}{\itshape} % Custom formatting commands \newcommand{\important}[1]{\textbf{#1}} \newcommand{\code}[1]{\texttt{#1}} % Title page settings \newcommand{\TitlePage}[1]{ \begin{titlepage} \centering \vspace*{1cm} \includegraphics[width=0.3\textwidth]{#1}\par \vspace{2cm} {\huge\bfseries \@title\par} {\Large \@subtitle\par} \vspace{2cm} {\large \@author\par} \vspace{0.5cm} {\normalsize \@date\par} \end{titlepage} } % Global listing settings \lstset{ basicstyle=\small\ttfamily, breaklines=true, backgroundcolor=\color{lightgray!10}, frame=single, rulecolor=\color{lightgray}, showstringspaces=false, keepspaces=true, showspaces=false, showtabs=false, breakatwhitespace=false, tabsize=2, columns=fullflexible, aboveskip=1em, belowskip=1em, morecomment=[l]{;}, morestring=[b]", literate={-}{{-}}1 {'}{{'}}{1}, keywordstyle=\color{blue}\bfseries, commentstyle=\color{green!60!black}\itshape, stringstyle=\color{red!80!black}, emphstyle=\color{purple}\bfseries, emph={defun, setq, let, if, cond, loop, car, cdr, cons} } \lstdefinestyle{numbers}{ numbers=left, stepnumber=1, numberstyle=\tiny, numbersep=3pt } \let\oldtabular\tabular \let\endoldtabular\endtabular \renewenvironment{tabular}{\rowcolors{2}{white}{lightgray}\oldtabular}{\endoldtabular} % Set consistent spacing for all list types % \setlist{nosep} % Removes vertical spacing \setlist[description]{topsep=3pt, partopsep=0pt, parsep=0pt, itemsep=2pt, font=\normalfont\itshape} \setlist[itemize]{topsep=3pt, partopsep=0pt, parsep=0pt, itemsep=2pt} \setlist[enumerate]{topsep=3pt, partopsep=0pt, parsep=0pt, itemsep=2pt} \renewcommand{\lstlistlistingname}{List of Code Snippets}