diff options
author | Karl Berry <karl@freefriends.org> | 2024-06-23 20:27:28 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2024-06-23 20:27:28 +0000 |
commit | 7bea8dfd6a579ecfb67fedf818df52e9e6b742c8 (patch) | |
tree | 1283a536077a82b84858aa233c65e9dca695cd07 /Master/texmf-dist/tex/latex | |
parent | bed9260423ec6b66d13da158775005b2822dfadc (diff) |
tiet-question-paper (23jun24)
git-svn-id: svn://tug.org/texlive/trunk@71601 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex')
-rw-r--r-- | Master/texmf-dist/tex/latex/tiet-question-paper/tiet-question-paper.cls | 337 |
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 +%% ----------------------------------- + |