\NeedsTeXFormat{LaTeX2e} \ProvidesClass{thesis}[2025/05/10 Bachelor Thesis Class] \newif\if@draftmark \@draftmarkfalse \DeclareOption{draftmark}{\@draftmarktrue} \ProcessOptions \relax \LoadClass[a4paper,12pt,oneside]{book} % Load common packages \RequirePackage{fontspec} \RequirePackage{titlesec} \RequirePackage{fancyhdr} \RequirePackage{geometry} \RequirePackage{setspace} \RequirePackage{graphicx} \RequirePackage{hyperref} \RequirePackage{etoolbox} \RequirePackage{tocloft} \RequirePackage{tocbibind} % Conditionally load the watermark package and settings \if@draftmark \RequirePackage{draftwatermark} \SetWatermarkText{Draft: \today [wip]} \SetWatermarkColor[gray]{0.7} \SetWatermarkFontSize{2cm} \SetWatermarkAngle{90} \SetWatermarkHorCenter{1.5cm} \fi % Page layout \geometry{left=3cm, top=3cm, right=3cm, bottom=3cm} \setlength{\parskip}{0.5em} \setlength{\parindent}{0pt} \onehalfspacing % Fonts \defaultfontfeatures{Ligatures=TeX} \setmainfont{Times New Roman} \setsansfont{Arial} \setmonofont{Courier New} % Metadata commands \input{metadata} % Load metadata from external file \newcommand{\setthesisinfo}[7]{% \renewcommand{\thesistitle}{#1}% \renewcommand{\studentname}{#2}% \renewcommand{\studentid}{#3}% \renewcommand{\program}{#4}% \renewcommand{\faculty}{#5}% \renewcommand{\university}{#6}% \renewcommand{\yearofsubmission}{#7}% } % Header and footer \fancypagestyle{fancy}{% \fancyhf{} \fancyhead[R]{\nouppercase{\rightmark}} \fancyhead[L]{\nouppercase{\leftmark}} \fancyfoot[C]{\thepage} } \fancypagestyle{fancyplainfrontmatter}{% \renewcommand{\headrulewidth}{0pt} \fancyfoot[C]{\thepage} } \fancypagestyle{fancyplain}{% \fancyhf{} \renewcommand{\headrulewidth}{0pt} \fancyhead[R]{\thepage} } % Chapter formatting \titleformat{\chapter}[display] {\bfseries\Large\centering} {BAB~\Roman{chapter}} % << display format {1ex} {\MakeUppercase} % Ensure chapter reference in TOC matches \renewcommand{\cftchappresnum}{BAB~} \renewcommand{\cftchapaftersnum}{\quad} % \titlespacing*{\chapter}{0pt}{-10pt}{20pt} % Redefine \maketitle \renewcommand{\maketitle}{\input{frontmatter/maketitle}} % Chapter & Section format \renewcommand{\cftchapfont}{\bfseries\MakeUppercase} % \renewcommand{\cftsecfont}{} % \renewcommand{\cftsubsecfont}{\itshape} % \renewcommand{\thesection}{\textup{\Roman{chapter}}.\arabic{section}} % Dot leaders, spacing, indentation \setlength{\cftbeforechapskip}{0em} \setlength{\cftchapindent}{0pt} \setlength{\cftsecindent}{0em} \setlength{\cftsubsecindent}{3em} \setlength{\cftchapnumwidth}{4em} \setlength{\cftsecnumwidth}{2.5em} \setlength{\cftsubsecnumwidth}{2.5em} \renewcommand \cftchapdotsep{4.5} % https://tex.stackexchange.com/a/273764 \renewcommand{\cftchapleader}{\normalfont\cftdotfill{\cftsecdotsep}} \renewcommand{\cftchappagefont}{\normalfont} % Ensure TOC and References Respect Custom Numbering \renewcommand{\thechapter}{\Roman{chapter}} \renewcommand\thesection{\arabic{chapter}.\arabic{section}} % Table of Contents (TOC) Title styling \renewcommand{\contentsname}{DAFTAR ISI} \renewcommand{\cfttoctitlefont}{\bfseries\MakeUppercase} \renewcommand{\cftaftertoctitle}{\hfill} % https://tex.stackexchange.com/a/255699/394075 % \renewcommand{\cftaftertoctitle}{\vskip 2em} % Frontmatter Macro (Toggle TOC Inclusion) \newcommand{\frontmattersection}[3]{% \centering \ifstrequal{#1}{toc}{\thispagestyle{fancyplainfrontmatter}\addcontentsline{toc}{chapter}{#2}}{\chapter*{#2}}% \input{frontmatter/#3} \clearpage } % Wrapper Command for Each Page \newcommand{\theendorsementpage}[1]{\frontmattersection{#1}{Pengesahan}{endorsement}} \newcommand{\originalitystatement}[1]{\frontmattersection{#1}{Pernyataan Keaslian}{originality}} \endinput