-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconstitution.cls
121 lines (100 loc) · 3.23 KB
/
constitution.cls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
% (c) 2024 Youwen Wu <[email protected]> https://youwen.dev
%This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit https://creativecommons.org/licenses/by/4.0/
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{constitution}[2024-4-26-Constitution]
% Base Class
\LoadClass[12pt, onecolumn]{article}
\DeclareOption{twocolumn}{\OptionNotUsed}
\ProcessOptions\relax
%Required Packages
\RequirePackage[letterpaper,
top=1in,
left=1in,
right= 1in,
bottom=1in]{geometry}
\RequirePackage{mathptmx}
\RequirePackage{setspace}
\onehalfspacing
\RequirePackage{enumitem}
\RequirePackage[utf8]{inputenc}
\RequirePackage[normalem]{ulem}
\RequirePackage{xcolor}
\RequirePackage{changepage}
\RequirePackage{hyperref}
\hypersetup{
colorlinks=true, % false: boxed links; true: colored links
linkcolor=blue, % color of internal links
citecolor=blue, % color of links to bibliography
filecolor=magenta, % color of file links
urlcolor=blue
}
%Variable Initialization
\def\sponsor#1{\def\@sponsor{#1}}
\def\captain#1{\def\@captain{#1}}
\def\status#1{\def\@status{#1}}
\def\first#1{\def\@first{#1}}
\def\second#1{\def\@second{#1}}
\def\third#1{\def\@third{#1}}
\def\aye#1{\def\@aye{#1}}
\def\nay#1{\def\@nay{#1}}
\def\abstain#1{\def\@abstain{#1}}
\def\billtitle#1{
\def\@billtitle{
\textbf{%
\MakeUppercase{#1}
}
}
}
\def\billcode#1{\def\@billcode{#1}}
%Support for editing while voting
%\out marks text in red and strikes out text wrapped
%\add marks text in blue and denotes text wrapped added as an amendment
\newcommand{\out}[1]{\textcolor{red}{\sout{#1}}}
\newcommand{\add}[1]{\textcolor{blue}{#1}}
%defines WHEREAS
\newcommand{\whereas}[1]{\noindent\textbf{WHEREAS:} #1;\vspace{12pt}}
%Defines ARTICLE [Numeral]
%TODO: put into enum environment to automatically generate the numeral instead of leaving it to human error
\newcommand{\article}[2]{\raggedright\noindent\textbf{ARTICLE \expandafter\@slowromancap\romannumeral #1@:} #2\vspace{12pt}}
%Defines Therefore
\newcommand{\therefore}{
\noindent
\textbf{%
\MakeUppercase{Therefore, be it resolved that:}
}
\vspace{12pt}
}
%Creates the correct heading for all bills and title
\renewcommand{\maketitle}{
\begin{center}
Team 1280
v\@billcode
\@date
\vspace{12pt}
\@billtitle
\end{center}
}
%Defines sub lists, as A. B. etc.
\newenvironment{sub}
{\begin{enumerate}[label=\Alph*.]
}
{%
\end{enumerate}
}
%Defines the signatures package at the end of every bill.
%Utilizes the variable defined in the preamble.
\newcommand{\signatures}{
\renewcommand{\arraystretch}{1}
\noindent\begin{tabular}{p{3in}p{3in}}
\hrulefill & \hrulefill \\
Author: \@author & First Attending: \@first \\
\hrulefill & \hrulefill \\
Sponsor: \@sponsor & Second Attending: \@second \\
\hrulefill & \hrulefill \\
Third Attending: \@third & Vote: Aye Nay Abstain\\
\hrulefill & \hrulefill \\
STATUS: \@status & Captain: \@captain \\
\end{tabular}
}
% Gobble Page Number
\pagenumbering{gobble}