Skip to content

Instantly share code, notes, and snippets.

@dpkoch
Last active January 1, 2019 20:47
Show Gist options
  • Save dpkoch/04dcd2addfd1899d18cc to your computer and use it in GitHub Desktop.
Save dpkoch/04dcd2addfd1899d18cc to your computer and use it in GitHub Desktop.
A simple LaTeX document class for a prospectus
\documentclass{prospectus}
\usepackage[T1]{fontenc} % looks better than default font encoding
\usepackage{lmodern} % need a newer font to work with T1 font encoding
\usepackage{graphicx} % for including images
% standard document info
\title{My Prospectus Title}
\author{My Name}
\date{\today}
% school info
\department{Department of Awesome}
\institution{Prestigious University}
% add your school or department logo here
% \logo{\includegraphics[width=2.5in]{logo.pdf}}
% accepts an arbitrary number of committee members; just add a new entry for each
\committeemember{Professor Name, Chair}
\committeemember{Professor Name}
\committeemember{Professor Name}
\begin{document}
\maketitle % create the title page
\approvalpage % create the approvals page
% use standard LaTeX typesetting for the remainder of the document
\section{Introduction}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce a condimentum nisl. Donec pulvinar nisl libero, eget feugiat ante blandit ac. Donec volutpat vitae elit in suscipit. Integer ac ullamcorper libero. Sed imperdiet ante eget felis feugiat, ut feugiat diam hendrerit. Fusce dapibus justo ut metus facilisis tristique. Donec varius congue tortor. Mauris a sapien fermentum, tincidunt velit in, blandit lorem. Ut molestie dolor et ante pellentesque dignissim. Ut et neque quis urna maximus egestas. Donec auctor sem a magna facilisis hendrerit. Morbi placerat erat ut felis dictum, sit amet suscipit tellus ultrices.
\section{Another Section}
Aenean vel mi sed lacus sollicitudin maximus. Donec id lacus nibh. Sed vel leo egestas, mollis nisl sit amet, lacinia diam. Nulla facilisi. Phasellus eget ligula vulputate, bibendum dolor non, sodales erat. Mauris id purus nisl. Vivamus gravida augue id mollis gravida.
Nam vel sem mauris. Praesent sodales iaculis libero in rhoncus. Sed quis dignissim risus. Praesent eu nulla cursus, lacinia erat nec, vestibulum ex. Etiam rutrum justo ultrices pharetra malesuada. Aenean urna augue, egestas eget lorem id, vehicula pharetra elit. Ut auctor convallis justo vitae euismod. In a tincidunt metus. Donec tincidunt lacus et nisl sodales, vel aliquam felis vulputate. Ut est nulla, elementum a condimentum id, auctor eu leo.
\end{document}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{prospectus}[2015/03/20 v0.1 Simple prospectus class]
\LoadClass[12pt,letterpaper]{article}
\RequirePackage[margin=1in]{geometry}
\RequirePackage[T1]{fontenc}
\RequirePackage{lmodern}
\RequirePackage[hang,small,bf]{caption}
\RequirePackage{etoolbox}
\def\@department{\relax}
\newcommand{\department}[1]{\gdef\@department{#1}}
\def\@institution{\relax}
\newcommand{\institution}[1]{\gdef\@institution{#1}}
\newcommand*{\@committeelist}{}
\newcommand*{\committeemember}[1]{\listadd{\@committeelist}{#1}}
\def\@logo{}
\newcommand{\logo}[1]{\gdef\@logo{#1}}
\renewcommand{\@maketitle}{%
\begin{titlepage}
\begin{center}
\vspace*{\fill}
{\Large \textbf{\@title}}\\[0.25in]
\vspace{0.5in}
\large
by\\[0.25in]\@author\\[1.0in]
A prospectus submitted to the faculty of\\
\@department \\
\@institution \\
\vspace{1.0in}
\@date
\vspace*{\fill}
\end{center}
\end{titlepage}
\normalsize
}
\newcommand*{\@signatureline}[1]{%
\parbox[b][0.8in]{2in}{\makebox[2in]{\hrulefill} \\ \hspace*{2pt}#1}
\hspace{1in}
\parbox[b][0.8in]{2in}{\makebox[2in]{\hrulefill} \\ \hspace*{2pt}Date}\par
}
\newcommand{\@approvalpage}[1][]{%
\thispagestyle{empty}
\vspace*{\fill}
\ifdefempty{\@logo}{}{%
\begin{center}
\@logo
\end{center}
\vspace{0.5in}
}
\begin{center}
{\Large Prospectus Approval}\\[0.5in]
\end{center}
\hspace*{0.47in}
\begin{minipage}[c]{5.25in}
Prospectus submitted by:\\
\@signatureline{\@author}
\vspace{0.4in}
This prospectus has been approved by each member of the Graduate Committee:\par
\forlistloop{\@signatureline}{\@committeelist}
\end{minipage}
\vspace*{\fill}
}
\renewcommand{\maketitle}{\@maketitle}
\newcommand{\approvalpage}{%
\@approvalpage[\@logo]
\newpage
\addtocounter{page}{-1}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment