summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/tiet-question-paper/tiet-question-paper.cls
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/tiet-question-paper/tiet-question-paper.cls')
-rw-r--r--Master/texmf-dist/tex/latex/tiet-question-paper/tiet-question-paper.cls337
1 files changed, 337 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/tiet-question-paper/tiet-question-paper.cls b/Master/texmf-dist/tex/latex/tiet-question-paper/tiet-question-paper.cls
new file mode 100644
index 00000000000..6bc28c5792e
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/tiet-question-paper/tiet-question-paper.cls
@@ -0,0 +1,337 @@
+%% ----------------------------------------------------
+%% Latex class ‘tiet-question-paper’
+%%
+%% Author: Raghav B. Venkataramaiyer
+%% Email: bv.raghav -at- thapar -dot- edu
+%% Email: bvraghav -at- gmail -dot- com
+%% License: [MIT License](./LICENSE)
+%% Version: 2024-06-22
+%% ----------------------------------------------------
+
+\NeedsTeXFormat{LaTeX2e}
+
+\ProvidesClass%
+{tiet-question-paper}%
+[2024-06-22 TIET Question Paper class]
+
+%% -----------------------------------
+%% Parent Class
+%% -----------------------------------
+\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
+\ProcessOptions\relax
+\LoadClass[11pt,a4paper,onecolumn]{article}
+%% -----------------------------------
+
+%% -----------------------------------
+%% Page Margins
+%% -----------------------------------
+\RequirePackage[%
+ a4paper,%
+ left=1in,%
+ top=0.5in,%
+ right=0.75in,%
+ bottom=0.75in%
+]{geometry}
+%% -----------------------------------
+
+%% -----------------------------------
+%% Math package(s)
+%% -----------------------------------
+\RequirePackage{amsmath}
+%% -----------------------------------
+
+%% -----------------------------------
+%% Lipsum for debugging
+%% -----------------------------------
+\RequirePackage{blindtext}
+%% -----------------------------------
+
+%% -----------------------------------
+%% Check for empty argument
+%% -----------------------------------
+\RequirePackage{ifmtarg}
+%% -----------------------------------
+
+%% -----------------------------------
+%% No paragraph indents
+%% -----------------------------------
+\RequirePackage{parskip}
+%% -----------------------------------
+
+%% -----------------------------------
+%% Line spacing
+%% -----------------------------------
+% \RequirePackage{setspace}
+% \doublespacing
+%% -----------------------------------
+
+%% -----------------------------------
+%% Graphics
+%% -----------------------------------
+\RequirePackage{graphicx}
+% \graphicspath{ {./images/} }
+%% -----------------------------------
+
+%% -----------------------------------
+%% Compact Enumeration
+%% -----------------------------------
+\RequirePackage[inline,sizes]{enumitem}
+% \setlist[enumerate]{itemsep=0in}
+\setlist{nosep,leftmargin=*}
+\setlist[enumerate,2]{label=\alph*)}
+%% -----------------------------------
+
+%% -----------------------------------
+%% Extra font sizes
+%% -----------------------------------
+\RequirePackage{anyfontsize}
+%% -----------------------------------
+
+%% -----------------------------------
+%% Automatic width computation
+%% -----------------------------------
+\RequirePackage{linegoal}
+%% -----------------------------------
+
+%% -----------------------------------
+%% Tabularx
+%% -----------------------------------
+\RequirePackage{tabularx}
+%% -----------------------------------
+
+%% -----------------------------------
+%% Box alignment within tables.
+%%
+%% valign keyword in includegraphics
+%% -----------------------------------
+\RequirePackage[export]{adjustbox}
+%% -----------------------------------
+
+%% -----------------------------------
+%% {align} like columnar env.
+%%
+%% Remembers end of paragraph and starts there.
+%% -----------------------------------
+% \RequirePackage{paracol}
+%% -----------------------------------
+
+%% -----------------------------------
+%% Customizing section font
+%% -----------------------------------
+\RequirePackage{sectsty}
+\allsectionsfont{\sffamily}
+\paragraphfont{\sffamily}
+%% -----------------------------------
+
+%% -----------------------------------
+%% Class variable definitions
+%% -----------------------------------
+
+% Variable: institute
+\def\tiet@institute{Thapar Institute of Engineering \&
+ Technology}
+\def\institute#1{\gdef\tiet@institute{#1}}
+
+% Variable: abbrevinst
+\def\tiet@abbrevinst{\textsc{tiet}}
+\def\abbrevinst#1{\gdef\tiet@abbrevinst{#1}}
+
+% Variable: instaddress
+\def\tiet@instaddress{Patiala 147004}
+\def\instaddress#1{\gdef\tiet@instaddress{#1}}
+
+% Variable: instlogo
+\let\tiet@instlogo\relax
+\def\instlogo#1{\gdef\tiet@instlogo{#1}}
+
+% Variable: schoolordepartment
+\let\tiet@schoolordepartment\relax
+\def\schoolordepartment#1{\def\tiet@schoolordepartment{#1}}
+
+% Variable: examname
+\let\tiet@examname\relax
+\def\examname#1{\def\tiet@examname{#1}}
+
+% Variable: cohort
+\let\tiet@cohort\relax
+\def\cohort#1{\def\tiet@cohort{#1}}
+
+% Variable: coursecode
+\let\tiet@coursecode\relax
+\def\coursecode#1{\def\tiet@coursecode{#1}}
+
+% Variable: coursename
+\let\tiet@coursename\relax
+\def\coursename#1{\def\tiet@coursename{#1}}
+
+% Variable: timeduration
+\let\tiet@timeduration\relax
+\def\timeduration#1{\def\tiet@timeduration{#1}}
+
+% Variable: maxmarks
+\let\tiet@maxmarks\relax
+\def\maxmarks#1{\def\tiet@maxmarks{#1}}
+
+% Variable: faculty
+\let\tiet@faculty\relax
+\def\faculty#1{\gdef\tiet@faculty{#1}}
+
+%% -----------------------------------
+
+%% -----------------------------------
+%% Questions Enum
+%%
+%% Ref: https://tex.stackexchange.com/a/164623
+%% Update: Doesn’t help enough.
+%% [TODO]
+%% -----------------------------------
+\DeclareRobustCommand%
+% Horizontal rule after each question
+\bvrhrule[1][0.4pt]{\rule{\linewidth}{#1}}
+
+\DeclareRobustCommand%
+% Skip line
+\bvrskipline[1][]{\vspace{#1\baselineskip}}
+
+% \newlist{qenum}{enumerate}{3}
+% \setlist[qenum]{nosep,label=\arabic*.}
+% % -----------------------------------------------------
+% % We need a toggle to track whether the item is first
+% % in the list or not
+% \newif\ifbvrfirstq\bvrfirstqfalse
+% \setlist*[qenum,1]{%
+% label=\arabic*.,%
+% % ---------------------------------------------------
+% % This saves the standard definition of \item and
+% % then redefines it to add the fill if the item is
+% % not first on the list; if it is the first item, it
+% % omits the fill but toggles the bvrfirstq switch so
+% % the next item will trigger it
+% first={%
+% % -------------------------------------------------
+% % Save the standard definition of \item in a macro,
+% % \olditem
+% \let\olditem\item%
+% % -------------------------------------------------
+% % Set the toggle for first item in the list to true
+% \bvrfirstqtrue%
+% % -------------------------------------------------
+% % New, temporary defition of \item
+% \def\item{\ifbvrfirstq\olditem\bvrfirstqfalse\else
+% \bvrhrule\bvrskipline\olditem\fi}%
+% },%
+% % ---------------------------------------------------
+% % This takes care of adding the fill for the final
+% % item on the list and just makes sure that \item is
+% % reset to its standard definition
+% after={
+% % -------------------------------------------------
+% % Fill for final item in list
+% \bvrhrule%
+% % -------------------------------------------------
+% % Restore standard definition of \item
+% \let\item\olditem%
+% }%
+% }
+% \setlist[qenum,2]{label=\alph*),before={},after={},first={}}
+% %% -----------------------------------
+
+
+%% -----------------------------------
+%% Write Examination Details and Draw Logo
+%% -----------------------------------
+
+\DeclareRobustCommand%
+% Write Examination Details
+\writeexamdetails{
+ \parbox[t][][t]{\linewidth}{\centering\large%
+ {\bfseries \tiet@institute\par}
+
+ \vspace*{0.2\baselineskip}
+ {\tiet@schoolordepartment}
+
+ \vspace*{0.2\baselineskip}
+ {\MakeUppercase\tiet@examname}}
+}
+\DeclareRobustCommand%
+% Draw Logo
+\drawinstlogo{
+ \parbox[t][][t]{\linewidth}{\raggedright%
+ \includegraphics[width=11.5mm,valign=t]
+ {\tiet@instlogo}\par}
+}
+
+
+
+%% -----------------------------------
+%% Title Page
+%% -----------------------------------
+
+% Make title
+\renewcommand\maketitle{
+ {\noindent Roll No. \rule{5cm}{0.4pt} \hfill
+ \bfseries\@date\par}
+
+ % \vspace*{0.5\baselineskip}
+ {\noindent\large \textbf{\tiet@coursecode :
+ \tiet@coursename} \hfill Time:
+ \textbf{\tiet@timeduration} \hspace{0.3em}
+ MM:\textbf{\tiet@maxmarks}}\\
+ {\noindent Faculty: \tiet@faculty}
+
+
+ \vspace*{\baselineskip}
+ \ifx\tiet@instlogo\@empty
+ \writeexamdetails
+ \else
+ \begin{tabularx}{\textwidth}{Xp{18mm}}
+ \writeexamdetails & \drawinstlogo
+ \end{tabularx}
+ \fi
+
+ \par\rule{\textwidth}{0.4pt}
+ \par\vspace*{0.5\baselineskip}
+}
+%% -----------------------------------
+
+%% -----------------------------------
+%% Counterlessfootnote
+%% -----------------------------------
+\newcommand{\footnotenoless}[1]{%
+ \let\svthefootnote\thefootnote
+ \let\thefootnote\relax\footnote{#1}
+ \addtocounter{footnote}{-1}\let\thefootnote\svthefootnote
+}
+%% -----------------------------------
+
+%% -----------------------------------
+%% Abbreviations
+%% -----------------------------------
+\RequirePackage{xspace}
+
+% Add a period to the end of an abbreviation unless
+% there's one already, then \xspace.
+\makeatletter
+\DeclareRobustCommand\onedot{\futurelet\@let@token\@onedot}
+\def\@onedot{\ifx\@let@token.\else.\null\fi\xspace}
+
+\def\eg{\emph{e.g}\onedot}
+\def\Eg{\emph{E.g}\onedot}
+
+\def\ie{\emph{i.e}\onedot}
+\def\Ie{\emph{I.e}\onedot}
+
+\def\cf{\emph{c.f}\onedot}
+\def\Cf{\emph{C.f}\onedot}
+
+\def\etc{\emph{etc}\onedot}
+
+\def\vs{\emph{vs}\onedot}
+
+\def\wrt{w.r.t\onedot}
+\def\dof{d.o.f\onedot}
+
+\def\etal{\emph{et al}\onedot}
+\makeatother
+%% -----------------------------------
+