Files
latex-templates/Rapport/packages/sleek.sty
2026-02-10 16:54:57 +01:00

281 lines
6.4 KiB
TeX

\ProvidesPackage{packages/sleek}[2023/09/18 v1.2.3 Sleek]
%%%%%%%%%%%%
% Settings %
%%%%%%%%%%%%
% Font
% \RequirePackage{lmodern}
\RequirePackage{mlmodern}
% \RequirePackage{libertinus}
\RequirePackage[T1]{fontenc}
\RequirePackage{microtype}
% Layout
\RequirePackage{geometry}
\RequirePackage{fancyhdr}
\RequirePackage[bottom]{footmisc}
\geometry{margin=2.5cm}
\pagestyle{fancy}
\fancyhead[L]{}
\fancyhead[R]{}
\fancyfoot[C]{\thepage}
\renewcommand*{\headrulewidth}{0pt}
\RequirePackage{pdflscape}
% Code blocks
\RequirePackage[newfloat]{minted}
% https://tex.stackexchange.com/a/254177
% Non-floating listing environment (w/ page breaks)
\newenvironment{longlisting}{\captionsetup{type=listing}}{}
% Floating listing environment (w/o page breaks)
\SetupFloatingEnvironment{listing}{}
% Text
\RequirePackage{csquotes}
\RequirePackage[inline]{enumitem}
\RequirePackage{eurosym}
\RequirePackage[parfill]{parskip}
\RequirePackage[dvipsnames]{xcolor}
\RequirePackage{soul}
% Links
\RequirePackage[
pdfusetitle,
colorlinks=true,
citecolor=purple,
filecolor=black,
linkcolor=blue,
urlcolor=blue,
linktoc=page,
]{hyperref}
\RequirePackage{bookmark}
\RequirePackage{qrcode}
% Mathematics
\RequirePackage{amsmath}
\RequirePackage{amssymb}
\RequirePackage{bm}
\RequirePackage{esint}
\RequirePackage{mathtools}
% Units
\RequirePackage{siunitx}
\sisetup{separate-uncertainty}
\sisetup{separate-uncertainty-units=single}
% Markers
\RequirePackage{circledsteps}
\pgfkeys{/csteps/inner color=white}
\pgfkeys{/csteps/fill color=black}
\RequirePackage{pifont}
\newcommand{\cmark}{{\color{YellowGreen}\ding{51}}}
\newcommand{\xmark}{{\color{BrickRed}\ding{55}}}
\newcommand{\imark}{{\color{Orange}\ding{109}}}
% Figures
\RequirePackage{float}
\RequirePackage[skip=1.5ex]{caption}
\RequirePackage{subcaption}
\captionsetup{labelsep=period} % 'Figure 1.2.' instead of 'Figure 1.2:'
% Tables
\RequirePackage{array}
\RequirePackage{booktabs}
\RequirePackage{tabularx}
\RequirePackage{multirow}
\RequirePackage{longtable}
\RequirePackage{geometry}
\RequirePackage{array}
\setlength{\extrarowheight}{1pt}
\renewcommand{\arraystretch}{1.1}
% dynamic columns
\newcolumntype{B}{>{\hsize=1.3\hsize}X}
\newcolumntype{C}{>{\hsize=.2\hsize}X}
\newcolumntype{s}{>{\hsize=.5\hsize}X}
% various tabular columns with text wrapping
\newcolumntype{L}{>{\arraybackslash}m{\linewidth}}
\newcolumntype{M}{>{\centering\arraybackslash}m{0.33\linewidth}}
\newcolumntype{V}{>{\centering\arraybackslash}m{0.10\linewidth}}
\newcolumntype{Y}{>{\centering\arraybackslash}m{0.15\linewidth}}
\newcolumntype{z}{>{\centering\arraybackslash}m{0.20\linewidth}}
\newcolumntype{y}{>{\arraybackslash}m{0.15\linewidth}}
% generic horizontally centered column with line breaks
\newcolumntype{Z}{>{\centering\arraybackslash}X}
% vertical centering of text in all tabularx columns
\renewcommand\tabularxcolumn[1]{m{#1}}
% Algorithms
\RequirePackage[ruled]{algorithm}
\RequirePackage[noend]{algpseudocode}
\makeatletter
\renewcommand\fs@ruled{% https://ctan.org/pkg/float
\def\@fs@cfont{\bfseries}\let\@fs@capt\floatc@ruled%
\def\@fs@pre{\hrule height \heavyrulewidth depth 0pt \kern 4pt}%
\def\@fs@mid{\kern 4pt \hrule height \heavyrulewidth depth 0pt \kern 4pt}%
\def\@fs@post{\kern 4pt \hrule height \heavyrulewidth depth 0pt \relax}%
\let\@fs@iftopcapt\iftrue%
}
\makeatother
\algrenewcommand{\algorithmiccomment}[1]{\hfill #1}
\algrenewcommand{\alglinenumber}[1]{\footnotesize{#1}}
\algnewcommand\Input{\item[\textbf{Input:}]}
\algnewcommand\Output{\item[\textbf{Output:}]}
\algnewcommand\Break{\textbf{break}}
\algnewcommand\Continue{\textbf{continue}}
% Glossaries
\RequirePackage[
automake,
nonumberlist,
toc=false
]{glossaries-extra}
\setglossarysection{section}
% Bibliography
\RequirePackage[
hyperref,
backend=biber,
style=numeric,
% sorting=none,
% maxcitenames=1,
% maxbibnames=3,
% backref=true
]{biblatex}
\setlength\bibitemsep{1ex}
\DeclareFieldFormat*{title}{\enquote{#1}}
\DeclareFieldFormat*{citetitle}{\enquote{#1}}
\DefineBibliographyStrings{english}{
backrefpage = {page},
backrefpages = {pages}
}
\DefineBibliographyStrings{french}{
backrefpage = {page},
backrefpages = {pages}
}
\DefineBibliographyStrings{german}{
backrefpage = {Seite},
backrefpages = {Seiten}
}
% Others
\RequirePackage{comment}
%%%%%%%%%%%
% Options %
%%%%%%%%%%%
\DeclareOption{header}{
\geometry{top=3.5cm, bottom=2.5cm, right=2.5cm, left=2.5cm}
\fancyhead[R]{\leftmark}
}
\DeclareOption{french}{
%% Babel
\frenchbsetup{StandardLists=true}
\frenchbsetup{SmallCapsFigTabCaptions=false}
%% Macros
\def\cad{c.-à-d.\@}
\def\Cad{C.-à-d.\@}
}
\ProcessOptions\relax
%%%%%%%%%%%%
% Commands %
%%%%%%%%%%%%
% Abbreviations
\def\cf{\emph{cf.}\@} % confer
\def\eg{\emph{e.g.}\@} % exempli gratia
\def\ie{\emph{i.e.}\@} % id est
% Table of contents
\newcommand*{\romantableofcontents}{ % table of contents with roman (i, ii, ...) numbering of the pages
\newpage
\pagenumbering{roman}
\tableofcontents
\newpage
\pagenumbering{arabic}
}
% Mathematics
\DeclarePairedDelimiter\rbk{(}{)} % round brackets (parentheses)
\DeclarePairedDelimiter\cbk{\{}{\}} % curly brackets {braces}
\DeclarePairedDelimiter\sbk{[}{]} % square brackets [brackets]
\DeclarePairedDelimiter\abs{\lvert}{\rvert} % absolute value |x|
\DeclarePairedDelimiter\norm{\lVert}{\rVert} % norm ||x||
\DeclarePairedDelimiter\ceil{\lceil}{\rceil} % ceil ⌈x⌉
\DeclarePairedDelimiter\floor{\lfloor}{\rfloor} % floor ⌊x⌋
\newcommand*{\fact}[1]{#1!} % factorial x!
\renewcommand*{\d}[1]{\operatorname{d}\!{#1}} % upright 'd' for differential
\DeclareMathOperator{\tr}{tr} % trace
\DeclareMathOperator{\diag}{diag} % diagonal
% Figures
\newcommand*{\noskipcaption}[1]{\caption{#1}\vspace{-\intextsep}} % caption without additional vertical space
% Footnotes
\makeatletter
\def\blindfootnote{\gdef\@thefnmark{}\@footnotetext} % footnote without number
\makeatother
\endinput
% In-PDF comments
% \newboolean{showcomments}
% \setboolean{showcomments}{true}
% \ifthenelse{\boolean{showcomments}}
% { \newcommand{\mynote}[3]{
% \fbox{\bfseries\sffamily\scriptsize#1}
% {\small$\blacktriangleright$\textsf{\emph{\color{#3}{#2}}}$\blacktriangleleft$}}}
% { \newcommand{\mynote}[3]{}}
% \newcommand{\shrink}[1]{}
% \newcommand{\jb}[1]{\mynote{Jalil}{#1}{red}}
% \newcommand{\vl}[1]{\mynote{Vincent}{#1}{blue}}