%%
%% This file is part of KorigamiK class.
%%
%% KorigamiK class is free software: you can redistribute it and/or modify
%% it under the terms of the GNU General Public License as published by
%% the Free Software Foundation, either version 3 of the License, or
%% (at your option) any later version.
%%
%% KorigamiK class is distributed in the hope that it will be useful,
%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
%% GNU General Public License for more details.
%%
%% You should have received a copy of the GNU General Public License
%% along with KorigamiK class. If not, see .
%%
\ProvidesClass{korigamik}[2023/02/23 v1.0 Korigamik class]
\NeedsTeXFormat{LaTeX2e}
\LoadClass[12pt]{article}
\RequirePackage[a4paper,margin=1in,tmargin=1.5in]{geometry}
% Packages
\usepackage{tikz}
\usetikzlibrary{positioning,calc}
\RequirePackage{color,hyperref,graphicx}
\definecolor{linkcolour}{rgb}{0.286,0.286,0.286}
% Page layout
\RequirePackage{fancyhdr}
\fancypagestyle{firstpage}{%
\fancyhf{} % clear all six fields
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
}
\fancypagestyle{followingpage}{%
\fancyhf{} % clear all six fields
\fancyhead[LO, L]{\@header}
\fancyhead[RO]{\nouppercase\leftmark}
\fancyhead[R]{\nouppercase\leftmark}
\setlength{\headheight}{15pt}
\fancyfoot{}
\fancyfoot[L,LO]{\hfill\thepage\hfill}
}
\pagestyle{followingpage}
\AtBeginDocument{\thispagestyle{firstpage}}
\linespread{1.069}
% Font settings
\RequirePackage[T1]{fontenc}
\RequirePackage{lmodern} % modernized version of the Computer Modern font family
\RequirePackage[sc]{mathpazo} % small caps option (sc)
\RequirePackage{textcomp} % provides additional symbols and text companion fonts.
\RequirePackage[protrusion=true,expansion=false]{microtype} % enabling character protrusion) (disabling font expansion)
% Configurations
\newcommand*{\@rollno}{}
\newcommand*{\rollno}[1]{
\renewcommand*{\@rollno}{#1}
}
\newcommand*{\@subject}{}
\newcommand*{\subject}[1]{
\renewcommand*{\@subject}{#1}
}
\newcommand*{\@keywords}{}
\newcommand*{\keywords}[1]{
\renewcommand*{\@keywords}{#1}
}
\newcommand*{\@logoimagepath}{}
\newcommand*{\@logoimagescale}{0.5}
\newcommand*{\@logolabel}{}
\newcommand*{\logoimage}[3]{
\renewcommand*{\@logoimagepath}{#1}
\renewcommand*{\@logoimagescale}{#2}
\renewcommand*{\@logolabel}{#3}
}
\newcommand*{\@titlelabel}{}
\newcommand*{\titlelabel}[1]{
\renewcommand*{\@titlelabel}{#1}
}
\newcommand*{\@semester}{}
\newcommand*{\semester}[1]{
\renewcommand*{\@semester}{#1}
}
\newcommand*{\@header}{}
\newcommand*{\header}[1]{
\renewcommand*{\@header}{#1}
}
\newcommand*{\@bottomnote}{}
\newcommand*{\bottomnote}[1]{
\renewcommand*{\@bottomnote}{#1}
}
\newcommand*{\@course}{}
\newcommand*{\course}[1]{
\renewcommand*{\@course}{#1}
}
\newcommand{\square}{
\begin{tikzpicture}
\draw (0,0) -- (1,0) -- (1,1) -- (0,1) -- (0,0);
\end{tikzpicture}
}
\hypersetup{colorlinks,breaklinks,
linkcolor=linkcolour,citecolor=linkcolour,
filecolor=linkcolour, urlcolor=linkcolour,
pdftitle={\@title}, pdfauthor={\@author}
pdfsubject={\@subject}, pdfkeywords={\@keywords},
}
% Title page
\renewcommand{\maketitle}{%
\newgeometry{tmargin=1in,bmargin=.5in}
\makeatletter
\begin{titlepage}
\begin{center}
\begin{flushright}
\ifx\@logoimagepath\empty
\square
\\
\else
\includegraphics[scale=\@logoimagescale]{\@logoimagepath}
\Large {\\ \textbf{\@logolabel}}
\fi
\end{flushright}
\end{center}
\vfill
\noindent\begin{tikzpicture}
\node[
text width=\textwidth-2cm,
align=left,
font=\fontsize{30}{30}\selectfont\scshape,
inner xsep=.5cm
] (x) {\@title};
\draw (x.north west) node[
draw,
above right=1cm and 0pt,
font=\LARGE,
inner sep=.2cm
] (y) {\textsc{\@titlelabel}};
\draw (y.south west)--($(x.south west)+(0,-1)$);
\end{tikzpicture}
\vspace*{2cm}
\begin{center}
\begin{minipage}{\textwidth}
\begin{tabular}[h]{l l}
Name & \textbf{\@author} \\
\ifx\@rollno\empty
\else
Roll No. & \textbf{\textit{\@rollno}} \\
\fi
\ifx\@semester\empty
\else
Semester & \textbf{\@semester} \\
\fi
\ifx\@course\empty
\else
Course & \textbf{\textit{\@course}} \\
\fi
\end{tabular}
\end{minipage}
\end{center}
\vfill
\begin{center}
\textsc{\large \@bottomnote}\\[0.4cm]
{\large \today}
\end{center}
\end{titlepage}
\makeatother
\restoregeometry
}
\renewcommand\section{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\Large\raggedright}}
\renewcommand\subsection{\@startsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\normalfont\large\raggedright}}
\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\normalfont\normalsize\raggedright}}
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
{3.25ex \@plus1ex \@minus.2ex}%
{-1em}%
{\normalfont\normalsize\itshape}}
\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\parindent}%
{3.25ex \@plus1ex \@minus .2ex}%
{-1em}%
{\normalfont\normalsize\itshape}}
\newcommand\tpj@deflogo{\@dblarg\tpj@@deflogo}
\newcommand\tpj@@deflogo[3][\@nil]{%
\expandafter\DeclareRobustCommand\csname#2\endcsname{#3}%
\pdfstringdefDisableCommands{%
\expandafter\def\csname#2\endcsname{#1}}}
% Define the logos
\makeatletter
\tpj@deflogo{TeX}{T\kern-.15em\lower.5ex\hbox{E}\kern-.07em X\spacefactor1000\relax}
\tpj@deflogo{LaTeX}{L\kern-.32em\raise.37ex\hbox{\scalebox{0.76}{A}}\kern-.15em\TeX}
\tpj@deflogo{LaTeXe}{\LaTeX2$_{\textstyle\varepsilon}$}
\tpj@deflogo{BibTeX}{B{\textsc i\kern-.025em\textsc b}\kern-.08em\TeX}
\DeclareRobustCommand\logofamily{%
\not@math@alphabet\logofamily\relax
\fontencoding{U}\fontfamily{logo}\selectfont}
\DeclareTextFontCommand{\textlogo}{\logofamily}
\tpj@deflogo[MetaFont]{MF}{\textlogo{META}\@dischyph\textlogo{FONT}\@}
\tpj@deflogo[MetaPost]{MP}{\textlogo{META}\@dischyph\textlogo{POST}\@}
\tpj@deflogo{ConTeXt}{C\kern-.03em on\-\kern-.10em\TeX\kern-0.04em t}%
\tpj@deflogo{pdfTeX}{pdf\/\TeX}
\tpj@deflogo{pdfLaTeX}{pdf\/\LaTeX}
\makeatother
% Lists
% Save the original itemize, enumerate, and description environments
\let\originalItemize\itemize
\let\originalEndItemize\enditemize
\let\originalEnumerate\enumerate
\let\originalEndEnumerate\endenumerate
\let\originalDescription\description
\let\originalEndDescription\enddescription
% Redefine the itemize environment
\renewenvironment{itemize}
{\originalItemize\parskip=0pt}
{\originalEndItemize}
% Redefine the enumerate environment
\renewenvironment{enumerate}
{\originalEnumerate\parskip=0pt}
{\originalEndEnumerate}
% Redefine the description environment
\renewenvironment{description}
{\originalDescription\parskip=0pt\parindent=1.8em}
{\originalEndDescription}
% Define aliases for itemize and enditemize
\let\itemise\itemize
\let\enditemise\enditemize
% Redefine the label for the first level of itemize
\renewcommand\labelitemi{\normalfont\bfseries\textendash}
% Redefine the label for the second level of itemize
\renewcommand\labelitemii{\normalfont\bfseries\textperiodcentered}
% Redefine the label for the description environment
\renewcommand*\descriptionlabel[1]{\hspace\labelsep
\normalfont\itshape #1}
% Table of Contents
\renewcommand*\contentsname{\centering \Huge Index \vskip 1cm}
\setcounter{tocdepth}{3} % Set the depth of the table of contents