126 lines
3.5 KiB
TeX
126 lines
3.5 KiB
TeX
\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
|
|
\pagestyle{fancy}
|
|
\fancyhf{}
|
|
\fancyhead[R]{\nouppercase{\rightmark}}
|
|
\fancyhead[L]{\nouppercase{\leftmark}}
|
|
\fancyfoot[C]{\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]{%
|
|
\begin{titlepage}
|
|
\centering
|
|
\ifstrequal{#1}{toc}{\addcontentsline{toc}{chapter}{#2}}{\chapter*{#2}}%
|
|
\input{frontmatter/#3}
|
|
\end{titlepage}
|
|
\clearpage
|
|
}
|
|
|
|
% Wrapper Command for Each Page
|
|
\newcommand{\theendorsementpage}[1]{\frontmattersection{#1}{Pengesahan}{endorsement}}
|
|
\newcommand{\originalitystatement}[1]{\frontmattersection{#1}{Pernyataan Keaslian}{originality}}
|
|
|
|
|
|
\endinput |