aboutsummaryrefslogtreecommitdiff
path: root/projdoc.cls
blob: c1865ec4ca26d1e792bc912748b63a7f08ca3081 (plain)
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
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{school-assignment}[2024-01-20 class school-assignment]

% based on article
\LoadClass{article}

% default word page setup
\PassOptionsToPackage{margin=1in}{geometry}
\PassOptionsToPackage{a4paper}{geometry}
% confusing to acrobat/firefox users
\PassOptionsToPackage{hidelinks}{hyperref}
\PassOptionsToPackage{english}{babel}

% frequently used packages
\RequirePackage{geometry}
\RequirePackage{float}
\RequirePackage{babel}
\RequirePackage{siunitx}
\RequirePackage{csquotes}
\RequirePackage{parskip}
\RequirePackage{fontspec}
\RequirePackage{tabularx}
\RequirePackage{booktabs}
\RequirePackage{needspace}
\RequirePackage{hyperref}
\RequirePackage{microtype}
\RequirePackage{smartref}

% font style
\setmainfont{TeX Gyre Schola}
\setmonofont[Scale=0.85]{JetBrainsMono Nerd Font}

% fix fonts w/ siunitx
\sisetup{detect-all = true}

% no indented paragraphs, just skip
\parindent=0mm
\bigskipamount=7mm
\medskipamount=4mm

% \maketitle format
\makeatletter
\let\@project\relax
\def\project#1{\def\@project{#1}}
\let\@organization\relax
\def\organization#1{\def\@organization{#1}}
\let\@version\relax
\def\version#1{\def\@version{#1}}
\def\@maketitle{
	\centering
	\vspace*{2in}
	{
		{
			\bfseries\Huge
			\strut\@title\strut
		}\\% no parskip
		{
			\Large
			\strut\@project\strut
		}
	}

	\vspace{1in}

	{
		{
			\def\and{\par}
			\parskip=0.5ex
			\strut\@author\strut
		}

		\vspace{2em}

		{\strut\@organization\strut}
	}

	\vfill
	\flushright

	{
		{
			\strut{}Version \@version\strut
		}

		{
			\strut\@date\strut
		}
	}

	\vspace*{2in}
}
\makeatother

% always start with title page
\AtBeginDocument{
	\clearpage
	\begin{titlepage}
	\maketitle
	\thispagestyle{empty}
	\end{titlepage}
}