@@ -1,7 +1,7 @@
\ N e e d s T e X F o r m a t { L a T e X 2 e }
\ N e e d s T e X F o r m a t { L a T e X 2 e }
\ P r o v i d e s C l a s s { t h e s i s } [ 2025 / 05 / 10 B a c h e l o r T h e s i s Class ]
\ P r o v i d e s C l a s s { t h e s i s } [ 2025 / 05 / 10 B a c h e l o r T h e s i s Class ]
\ n e w i f \ if @ d r a f t m a r k
\ n e w i f \ if @ d r a f t m a r k \ @ d r a f t m a r k f a l s e
\ @ d r a f t m a r k f a l s e
\ @ d r a f t m a r k f a l s e
\ D e c l a r e O p t i o n { d r a f t m a r k } { \ @ d r a f t m a r k t r u e }
\ D e c l a r e O p t i o n { d r a f t m a r k } { \ @ d r a f t m a r k t r u e }
@@ -12,6 +12,7 @@
\ R e q u i r e P a c k a g e { p o l y g l o s s i a }
\ R e q u i r e P a c k a g e { p o l y g l o s s i a }
\ R e q u i r e P a c k a g e { f o n t s p e c }
\ R e q u i r e P a c k a g e { f o n t s p e c }
\ R e q u i r e P a c k a g e { t i t l e s e c }
\ R e q u i r e P a c k a g e { t i t l e s e c }
\ R e q u i r e P a c k a g e { t i t l i n g }
\ R e q u i r e P a c k a g e { f a n c y h d r }
\ R e q u i r e P a c k a g e { f a n c y h d r }
\ R e q u i r e P a c k a g e { g e o m e t r y }
\ R e q u i r e P a c k a g e { g e o m e t r y }
\ R e q u i r e P a c k a g e { s e t s p a c e }
\ R e q u i r e P a c k a g e { s e t s p a c e }
@@ -24,7 +25,8 @@
\ R e q u i r e P a c k a g e { s v g } % A l l o w s i n c l u d i n g S V G i m a g e s d i r e c t l y
\ R e q u i r e P a c k a g e { s v g } % A l l o w s i n c l u d i n g S V G i m a g e s d i r e c t l y
\ R e q u i r e P a c k a g e { i n d e n t f i r s t } % M a k e s first p a r a g r a p h a f t e r h e a d i n g s i n d e n t e d
\ R e q u i r e P a c k a g e { i n d e n t f i r s t } % M a k e s first p a r a g r a p h a f t e r h e a d i n g s i n d e n t e d
\ R e q u i r e P a c k a g e { f l o a t } % P r o v i d e s [ H ] option to f o r c e f i g u r e / table p l a c e m e n t
\ R e q u i r e P a c k a g e { f l o a t } % P r o v i d e s [ H ] option to f o r c e f i g u r e / table p l a c e m e n t
\ R e q u i r e P a c k a g e [ s t y l e = a p a , b a c k e n d = b i b e r , language = i n d o n e s i a n ]{ b i b l a t e x }
\ R e q u i r e P a c k a g e [ s t y l e = a p a , b a c k e n d = b i b e r ] { b i b l a t e x }
\ R e q u i r e P a c k a g e [ a c r o n y m , n o g r o u p s k i p , t o c ] { g l o s s a r i e s }
% P o l y g l o s s i a set language
% P o l y g l o s s i a set language
\ s e t d e f a u l t l a n g u a g e [ v a r i a n t = i n d o n e s i a n ] { m a l a y } % P r o p e r I n d o n e s i a n language s e t u p
\ s e t d e f a u l t l a n g u a g e [ v a r i a n t = i n d o n e s i a n ] { m a l a y } % P r o p e r I n d o n e s i a n language s e t u p
\ s e t o t h e r l a n g u a g e { e n g l i s h } % E n a b l e s E n g l i s h as s e c o n d a r y language
\ s e t o t h e r l a n g u a g e { e n g l i s h } % E n a b l e s E n g l i s h as s e c o n d a r y language
@@ -36,17 +38,18 @@
% C o n d i t i o n a l l y load t h e w a t e r m a r k p a c k a g e and s e t t i n g s
% C o n d i t i o n a l l y load t h e w a t e r m a r k p a c k a g e and s e t t i n g s
\ if @ d r a f t m a r k
\ if @ d r a f t m a r k
\ R e q u i r e P a c k a g e { d r a f t w a t e r m a r k }
\ R e q u i r e P a c k a g e { d r a f t w a t e r m a r k }
\ S e t W a t e r m a r k T e x t { n u l u h / t h e s i s ( w i p ) d r a f t : \ t o d a y }
\ S e t W a t e r m a r k T e x t { n u l u h / t h e s i s ( w i p ) [ dr a f t : \ t o d a y ] }
\ S e t W a t e r m a r k C o l o r [ g r a y ] { 0 . 8 } % O p a c i t y : 0.8 = 20 % transparent
\ S e t W a t e r m a r k C o l o r [ g r a y ] { 0 . 8 } % O p a c i t y : 0.8 = 20 % transparent
\ S e t W a t e r m a r k F o n t S i z e { 1 . 5 c m }
\ S e t W a t e r m a r k F o n t S i z e { 1 . 5 c m }
\ S e t W a t e r m a r k A n g l e { 9 0 }
\ S e t W a t e r m a r k A n g l e { 9 0 }
\ S e t W a t e r m a r k H o r C e n t e r { 1 . 5 c m }
\ S e t W a t e r m a r k H o r C e n t e r { 1 . 5 c m }
\ R e q u i r e P a c k a g e [ l e f t ] { l i n e n o }
\ l i n e n u m b e r s
\ f i
\ f i
% Page l a y o u t
% Page l a y o u t
\ g e o m e t r y { l e f t = 3 c m , t o p = 3 c m , r i g h t = 3 c m , b o t t o m = 3 c m }
\ g e o m e t r y { l e f t = 4 c m , t o p = 3 c m , r i g h t = 3 c m , b o t t o m = 3 c m }
\ s e t l e n g t h { \ p a r s k i p } { 0 . 5 e m }
\ s e t l e n g t h { \ p a r s k i p } { 0 . 5 e m }
\ s e t l e n g t h { \ p a r i n d e n t } { 0 p t }
\ o n e h a l f s p a c i n g
\ o n e h a l f s p a c i n g
% F o n t s
% F o n t s
@@ -55,17 +58,45 @@
\ s e t s a n s f o n t { A r i a l }
\ s e t s a n s f o n t { A r i a l }
\ s e t m o n o f o n t { C o u r i e r N e w }
\ s e t m o n o f o n t { C o u r i e r N e w }
\ m a k e a t l e t t e r
\ n e w c o m m a n d { \ s e t t h es i s i n f o } [ 7 ] { %
% E x t r a c t i n g t h e Year from \ today
\ r e n e w c o m m a n d{ \ t h e s i s t i t l e } { # 1 } %
\ n e w c o m m a n d{ \ t h e y e a r } { %
\ r e n e w c o m m a n d { \ s t u d e n t n a m e } { # 2 } %
\ e x p a n d a f t e r \ @ c a r \ e x p a n d a f t e r \ @ g o b b l e \ t h e \ y e a r \ @ n i l
\ r e n e w c o m m a n d { \ s t u d e n t i d } { # 3 } %
\ r e n e w c o m m a n d { \ p r o g r a m } { # 4 } %
\ r e n e w c o m m a n d { \ f a c u l t y } { # 5 } %
\ r e n e w c o m m a n d { \ u n i v e r s i t y } { # 6 } %
\ r e n e w c o m m a n d { \ y e a r o f s u b m i s s i o n } { # 7 } %
}
}
% Declare i n t e r n a l m a c r o s as i n i t i a l l y empty
\ n e w c o m m a n d { \ @ a u t h o r i d } { }
\ n e w c o m m a n d { \ @ f i r s t a d v i s o r } { }
\ n e w c o m m a n d { \ @ s e c o n d a d v i s o r } { }
\ n e w c o m m a n d { \ @ h e a d d e p a r t e m e n t } { }
\ n e w c o m m a n d { \ @ h e a d d e p a r t e m e n t i d } { }
\ n e w c o m m a n d { \ @ f a c u l t y } { }
\ n e w c o m m a n d { \ @ p r o g r a m } { }
\ n e w c o m m a n d { \ @ u n i v e r s i t y } { }
\ n e w c o m m a n d { \ @ y e a r o f s u b m i s s i o n } { }
% Define user c o m m a n d s to set t h e s e values .
\ n e w c o m m a n d { \ a u t h o r i d } [ 1 ] { \ g d e f \ @ a u t h o r i d { # 1 } }
\ n e w c o m m a n d { \ f i r s t a d v i s o r } [ 1 ] { \ g d e f \ @ f i r s t a d v i s o r { # 1 } }
\ n e w c o m m a n d { \ s e c o n d a d v i s o r } [ 1 ] { \ g d e f \ @ s e c o n d a d v i s o r { # 1 } }
\ n e w c o m m a n d { \ h e a d d e p a r t e m e n t } [ 1 ] { \ g d e f \ @ h e a d d e p a r t e m e n t { # 1 } }
\ n e w c o m m a n d { \ h e a d d e p a r t e m e n t i d } [ 1 ] { \ g d e f \ @ h e a d d e p a r t e m e n t i d { # 1 } }
\ n e w c o m m a n d { \ f a c u l t y } [ 1 ] { \ g d e f \ @ f a c u l t y { # 1 } }
\ n e w c o m m a n d { \ p r o g r a m } [ 1 ] { \ g d e f \ @ p r o g r a m { # 1 } }
\ n e w c o m m a n d { \ u n i v e r s i t y } [ 1 ] { \ g d e f \ @ u n i v e r s i t y { # 1 } }
\ n e w c o m m a n d { \ y e a r o f s u b m i s s i o n } [ 1 ] { \ g d e f \ @ y e a r o f s u b m i s s i o n { # 1 } }
% Now e x p o s e r o b u s t “ t h e ‑ ” g e t t e r s to a c c e s s t h e values
\ n e w c o m m a n d { \ t h e a u t h o r i d } { \ @ a u t h o r i d }
\ n e w c o m m a n d { \ t h e f i r s t a d v i s o r } { \ @ f i r s t a d v i s o r }
\ n e w c o m m a n d { \ t h e s e c o n d a d v i s o r } { \ @ s e c o n d a d v i s o r }
\ n e w c o m m a n d { \ t h e h e a d d e p a r t e m e n t } { \ @ h e a d d e p a r t e m e n t }
\ n e w c o m m a n d { \ t h e h e a d d e p a r t e m e n t i d } { \ @ h e a d d e p a r t e m e n t i d }
\ n e w c o m m a n d { \ t h e f a c u l t y } { \ @ f a c u l t y }
\ n e w c o m m a n d { \ t h e p r o g r a m } { \ @ p r o g r a m }
\ n e w c o m m a n d { \ t h e u n i v e r s i t y } { \ @ u n i v e r s i t y }
\ n e w c o m m a n d { \ t h e y e a r o f s u b m i s s i o n } { \ @ y e a r o f s u b m i s s i o n }
\ m a k e a t o t h e r
% % Header and f o o t e r
% % Header and f o o t e r
\ f a n c y p a g e s t y l e { f a n c y } { %
\ f a n c y p a g e s t y l e { f a n c y } { %
\ f a n c y h f { }
\ f a n c y h f { }
@@ -107,8 +138,6 @@
\ r e n e w c o m m a n d { \ c f t c h a p p r e s n u m } { B A B ~ }
\ r e n e w c o m m a n d { \ c f t c h a p p r e s n u m } { B A B ~ }
\ r e n e w c o m m a n d { \ c f t c h a p a f t e r s n u m } { \ q u a d }
\ r e n e w c o m m a n d { \ c f t c h a p a f t e r s n u m } { \ q u a d }
% \ t i t l e s p a c i n g * { \ c h a p t e r } { 0 p t } { - 1 0 p t } { 2 0 p t }
% C h a p t e r & Section format
% C h a p t e r & Section format
\ r e n e w c o m m a n d { \ c f t c h a p f o n t } { \ n o r m a l s i z e \ M a k e U p p e r c a s e }
\ r e n e w c o m m a n d { \ c f t c h a p f o n t } { \ n o r m a l s i z e \ M a k e U p p e r c a s e }
% \ r e n e w c o m m a n d { \ c f t s e c f o n t } { }
% \ r e n e w c o m m a n d { \ c f t s e c f o n t } { }
@@ -130,11 +159,15 @@
\ s e t l e n g t h { \ c f t s u b s e c n u m w i d t h } { 2 . 5 e m }
\ s e t l e n g t h { \ c f t s u b s e c n u m w i d t h } { 2 . 5 e m }
\ s e t l e n g t h { \ c f t f i g n u m w i d t h } { 5 e m }
\ s e t l e n g t h { \ c f t f i g n u m w i d t h } { 5 e m }
\ s e t l e n g t h { \ c f t t a b n u m w i d t h } { 4 e m }
\ s e t l e n g t h { \ c f t t a b n u m w i d t h } { 4 e m }
\ r e n e w c o m m a n d \ c f t c h a p d o t s e p { 1 } % D e n s e r d o t s ( c l o s e r t o g e t h e r ) h t t p s : //tex.stackexchange.com/a/273764
\ r e n e w c o m m a n d \ c f t c h a p d o t s e p { 1 } % h t t p s : //tex.stackexchange.com/a/273764
\ r e n e w c o m m a n d \ c f t s e c d o t s e p { 1 } % Apply to s e c t i o n s t o o
\ r e n e w c o m m a n d \ c f t s e c d o t s e p { 1 } % h t t p s : //tex.stackexchange.com/a/273764
\ r e n e w c o m m a n d \ c f t s u b s e c d o t s e p { 1 } % Apply to s u b s e c t i o n s t o o
\ r e n e w c o m m a n d \ c f t s u b s e c d o t s e p { 1 } % h t t p s : //tex.stackexchange.com/a/273764
\ r e n e w c o m m a n d \ c f t f i g d o t s e p { 1 . 5 } % h t t p s : //tex.stackexchange.com/a/273764
\ r e n e w c o m m a n d \ c f t t a b d o t s e p { 1 . 5 } % h t t p s : //tex.stackexchange.com/a/273764
\ r e n e w c o m m a n d { \ c f t c h a p l e a d e r } { \ n o r m a l f o n t \ c f t d o t f i l l { \ c f t s e c d o t s e p } }
\ r e n e w c o m m a n d { \ c f t c h a p l e a d e r } { \ n o r m a l f o n t \ c f t d o t f i l l { \ c f t s e c d o t s e p } }
\ r e n e w c o m m a n d { \ c f t c h a p p a g e f o n t } { \ n o r m a l f o n t }
\ r e n e w c o m m a n d { \ c f t c h a p p a g e f o n t } { \ n o r m a l f o n t }
% Add P r e f i x in t h e L o f and L o T e n t r i e s
\ r e n e w c o m m a n d { \ c f t f i g p r e s n u m } { \ f i g u r e n a m e ~ }
\ r e n e w c o m m a n d { \ c f t f i g p r e s n u m } { \ f i g u r e n a m e ~ }
\ r e n e w c o m m a n d { \ c f t t a b p r e s n u m } { \ t a b l e n a m e ~ }
\ r e n e w c o m m a n d { \ c f t t a b p r e s n u m } { \ t a b l e n a m e ~ }
@@ -159,6 +192,147 @@
% \ r e n e w c o m m a n d { \ c f t t o c t i t l e f o n t } { \ b f s e r i e s \ M a k e U p p e r c a s e }
% \ r e n e w c o m m a n d { \ c f t t o c t i t l e f o n t } { \ b f s e r i e s \ M a k e U p p e r c a s e }
% \ r e n e w c o m m a n d { \ c f t a f t e r t o c t i t l e } { \ v s k i p 2 e m }
% \ r e n e w c o m m a n d { \ c f t a f t e r t o c t i t l e } { \ v s k i p 2 e m }
% D e f i n e s a new g l o s s a r y c a l l e d “ n o t a t i o n ”
\ n e w g l o s s a r y [ n l g ] { n o t a t i o n } { n o t } { n t n } { N o t a t i o n }
% Define t h e header for t h e l o c a t i o n column
\ p r o v i d e c o m m a n d * { \ l o c a t i o n n a m e } { L o c a t i o n }
% Define t h e new g l o s s a r y s t y l e c a l l e d 'mylistalt' for m a i n g l o s s a r i e s
\ m a k e a t l e t t e r
\ n e w g l o s s a r y s t y l e { m y l i s t a l t } { %
% s t a r t t h e l i s t , i n i t i a l i z i n g g l o s s a r i e s i n t e r n a l s
\ r e n e w e n v i r o n m e n t { t h e g l o s s a r y } %
{ \ g l s l i s t i n i t \ b e g i n { e n u m e r a t e } } %
{ \ e n d { e n u m e r a t e } } %
% s u p p r e s s a l l h e a d e r s / g r o u p s k i p s
\ r e n e w c o m m a n d * { \ g l o s s a r y h e a d e r } { } %
\ r e n e w c o m m a n d * { \ g l s g r o u p h e a d i n g } [ 1 ] { } %
\ r e n e w c o m m a n d * { \ g l s g r o u p s k i p } { } %
% m a i n e n t r i e s : l e t \ i t e m p r o d u c e " 1 . " e t c . , t h e n b r e a k
\ r e n e w c o m m a n d * { \ g l o s s e n t r y } [ 2 ] { %
\ i t e m \ g l s t a r g e t { # # 1 } { \ g l o s s e n t r y n a m e { # # 1 } } %
\ m b o x { } \ \
\ g l o s s e n t r y d e s c { # # 1 } \ s p a c e
[ # # 2 ] % a p p e a r s o n p a g e x
} %
% s u b - e n t r i e s a s s e p a r a t e p a r a g r a p h s , s t i l l a l i g n e d
\ r e n e w c o m m a n d * { \ s u b g l o s s e n t r y } [ 3 ] { %
\ p a r
\ g l s s u b e n t r y i t e m { # # 2 } %
\ g l s t a r g e t { # # 2 } { \ s t r u t } \ s p a c e
\ g l o s s e n t r y d e s c { # # 2 } \ s p a c e # # 3 %
} %
}
% Define t h e new g l o s s a r y s t y l e 'altlong3customheader' for notation
\newglossarystyle{altlong3customheader}{%
% The glossary will be a longtable environment with three columns:
% 1. Symbol (left-aligned)
% 2. Description (paragraph, width \glsdescwidth)
% 3. Location (paragraph, width \glspagelistwidth)
\renewenvironment{theglossary}%
{\begin{longtable}{lp{\glsdescwidth}p{\glspagelistwidth}}}%
{\end{longtable}}%
% Define the table header row
\renewcommand*{\symbolname}{Simbol}
\renewcommand*{\descriptionname}{Keterangan}
\renewcommand*{\locationname}{Halaman}
\renewcommand*{\glossaryheader}{%
\bfseries\symbolname & \bfseries\descriptionname & \bfseries\locationname \tabularnewline\endhead}%
% Suppress group headings (e.g., A, B, C...)
\renewcommand*{\glsgroupheading}[1]{}%
% Define how a main glossary entry is displayed
% ##1 is the entry label
% ##2 is the location list (page numbers)
\renewcommand{\glossentry}[2]{%
\glsentryitem{##1}% Inserts entry number if entrycounter option is used
\glstarget{##1}{\glossentryname{##1}} & % Column 1: Symbol (with hyperlink target)
\glossentrydesc{##1}\glspostdescription & % Column 2: Description (with post-description punctuation)
##2\tabularnewline % Column 3: Location list
}%
% Define how a sub-entry is displayed
% ##1 is the sub-entry level (e.g., 1 for first sub-level)
% ##2 is the entry label
% ##3 is the location list
\renewcommand{\subglossentry}[3]{%
& % Column 1 (Symbol) is left blank for sub-entries to create an indented look
\glssubentryitem{##2}% Inserts sub-entry number if subentrycounter is used
\glstarget{##2}{\strut}\glossentrydesc{##2}\glspostdescription & % Column 2: Description (target on strut for hyperlink)
##3\tabularnewline % Column 3: Location list
}%
% Define the skip between letter groups (if group headings were enabled)
% For 3 columns, we need 2 ampersands for a full blank row if not using \multicolumn
\ifglsnogroupskip
\renewcommand*{\glsgroupskip}{}%
\else
\renewcommand*{\glsgroupskip}{& & \tabularnewline}%
\fi
}
% Define a new style 'supercol' based on 'super' for acronyms glossaries
\newglossarystyle{supercol}{%
\setglossarystyle{super}% inherit everything from the original
% override just the main-entry format:
\renewcommand*{\glossentry}[2]{%
\glsentryitem{##1}%
\glstarget{##1}{\glossentryname{##1}}\space % <-- added colon here
&: \glossentrydesc{##1}\glspostdescription\space ##2\tabularnewline
}%
% likewise for sub‐ entries, if you want a colon there too:
\renewcommand*{\subglossentry}[3]{%
&:
\glssubentryitem{##2}%
\glstarget{##2}{\strut}\glossentryname{##2}\space % <-- and here
\glossentrydesc{##2}\glspostdescription\space ##3\tabularnewline
}%
}
\makeatother
% A new command that enables us to enter bi-lingual (Bahasa Indonesia and English) terms
% syntax: \addterm[options]{label}{Bahasa Indonesia}{Bahasa Indonesia first use}{English}{Bahasa Indonesia
% description}
\newcommand{\addterm}[6][]{
\newglossaryentry{#2}{
name={#3 (angl.\ #5)},
first={#4 (\emph{#5})},
text={#3},
sort={#3},
description={#6},
#1 % pass additional options to \newglossaryentry
}
}
% A new command that enables us to enter (English) acronyms with bi-lingual
% (Bahasa Indonesia and English) long versions
% syntax: \addacronym[options]{label}{abbreviation}{Bahasa Indonesia long}{Bahasa Indonesia first
% use long}{English long}{Bahasa Indonesia description}
\newcommand{\addacronym}[7][]{
% Create the main glossary entry with \newacronym
% \newacronym[key-val list]{label}{abbrv}{long}
\newacronym[
name={#4 (angl.\ #6,\ #3)},
first={\emph{#5} (angl.\ \emph{#6},\ \emph{#3})},
sort={#4},
description={#7},
#1 % pass additional options to \newglossaryentry
]
{#2}{#3}{#4}
% Create a cross-reference from the abbreviation to the main glossary entry by
% creating an auxiliary glossary entry (note: we set the label of this entry
% to '<original label>_auxiliary' to a v o i d c l a s h e s )
\ n e w g l o s s a r y e n t r y { # 2 _ a u x i l i a r y } {
n a m e = { # 3 } ,
s o r t = { # 3 } ,
d e s c r i p t i o n = { \ m a k e f i r s t u c { # 6 } } ,
s e e = [ S e e : ] { # 2 }
}
}
% C h a n g e t h e text of t h e c r o s s - r e f e r e n c e l i n k s to t h e B a h a s a I n d o n e s i a l o n g version .
\ r e n e w c o m m a n d * { \ g l s s e e i t e m f o r m a t } [ 1 ] { \ e m p h { \ a c r l o n g { # 1 } } . }
% % Apply a c u s t o m f a n c y h d r l a y o u t o n l y on t h e first page of each \ c h a p t e r , and use no header / f o o t e r e l s e w h e r e
% % Apply a c u s t o m f a n c y h d r l a y o u t o n l y on t h e first page of each \ c h a p t e r , and use no header / f o o t e r e l s e w h e r e
% % \ l e t \ o l d c h a p t e r \ c h a p t e r
% % \ l e t \ o l d c h a p t e r \ c h a p t e r
% % \ r e n e w c o m m a n d { \ c h a p t e r } { %
% % \ r e n e w c o m m a n d { \ c h a p t e r } { %