From aeaf3bd7780e114704f375ef8de21387c96fcc60 Mon Sep 17 00:00:00 2001 From: Yong Hoon Lee Date: Fri, 8 Dec 2023 22:25:08 -0600 Subject: [PATCH] Thesis/Dissertation Proposal Templetes are implemented with [proposal] document option --- main.tex | 21 ++++- uofm.cls | 254 ++++++++++++++++++++++++++++++++++++------------------- 2 files changed, 188 insertions(+), 87 deletions(-) diff --git a/main.tex b/main.tex index 313f1e3..2a1f2c9 100644 --- a/main.tex +++ b/main.tex @@ -72,6 +72,23 @@ % % % Title page options: [master], doctoral. % % % +% Document options: proposal, [fulldocument]. % +% Proposal option will change title page and hide various % +% elements of the document, including copyright notice, % +% dedication, acknowledgments, prepace, table of contents, % +% list of tables, list of figures, list of abbreviations, % +% list of glossaries, etc. % +% Proposal option works differently on the title page along % +% with master/doctoral options, showing either % +% "A Thesis Proposal" or "A Dissertation Proposal." % +% % +% Abstract page options: showabstract, [hideabstract]. % +% This options works only along with proposal option. % +% If you want to show abstract page on your proposal document % +% you can utilize this optional feature. % +% Full thesis/dissertation document with fulldocument option % +% always shows abstract page. % +% % % Font size: 10pt, 11pt, [12pt]. % % Smaller than 12pt is not recommended. % % % @@ -107,7 +124,8 @@ % submissions to the UofM thesis and dissertation deposit. % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\documentclass[master,nosecnum,nohyphenation,pdfonly,boundcover]{uofm} +\documentclass[master,fulldocument,hideabstract,nosecnum,nohyphenation,pdfonly,boundcover]{uofm} +% Please note that showabstract/hideabstract options will only work along with proposal option. fulldocument option will always show abstract. \usepackage{notoccite} % Correct order of cites used in titles or figure captions with the number they should have in the main text. \usepackage{cite} % Make multiple cites short: in the form of [1--3] instead of [1, 2, 3]. @@ -120,6 +138,7 @@ \author{Student Full Name} \degree{Master of Science} % or Doctor of Philosophy -- In this case you need to use the doctoral option in the documentclass. \major{Mechanical Engineering} +\advisor{Dr. Name Of Your Advisor} \date{May 2024} \begin{document} diff --git a/uofm.cls b/uofm.cls index d7c8192..07c765f 100644 --- a/uofm.cls +++ b/uofm.cls @@ -66,10 +66,12 @@ % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \NeedsTeXFormat{LaTeX2e}[1995/12/01] -\ProvidesClass{uofm}[2023/02/17 v0.1 Customized LaTeX document class] +\ProvidesClass{uofm}[2023/12/08 v1.1 Customized LaTeX document class] \newcommand\@ptsize{} \newif\if@restonecol \newif\if@master +\newif\if@proposal +\newif\if@showabstract \newif\if@secnum \newif\if@nohyphen \newif\if@boundcopy @@ -87,6 +89,10 @@ \DeclareOption{fleqn}{\input{fleqn.clo}} \DeclareOption{master}{\@mastertrue} \DeclareOption{doctoral}{\@masterfalse} +\DeclareOption{proposal}{\@proposaltrue} +\DeclareOption{showabstract}{\@showabstracttrue} +\DeclareOption{hideabstract}{\@showabstractfalse} +\DeclareOption{fulldocument}{\@proposalfalse} \DeclareOption{boundcopy}{\@boundcopytrue} \DeclareOption{pdfonly}{\@boundcopyfalse} \DeclareOption{boundcover}{\@boundcovertrue} @@ -97,7 +103,7 @@ \setlength{\paperwidth}{8.5in}% % default options -\ExecuteOptions{12pt,final,master,nosecnum,nohyphenation,pdfonly,boundcover} +\ExecuteOptions{12pt,final,master,fulldocument,hideabstract,nosecnum,nohyphenation,pdfonly,boundcover} \ProcessOptions % packages and defs @@ -108,8 +114,10 @@ \setlength\parindent{0.5in} \RequirePackage{ragged2e} \setlength{\RaggedRightParindent}{\parindent} +\RequirePackage{ifthen} \def\degree#1{\def\@degree{#1}} \def\major#1{\def\@major{#1}} +\def\advisor#1{\def\@advisor{#1}} % page layout \if@boundcopy % Left margin 1.5 inch @@ -223,19 +231,37 @@ }% \begin{center}% \if@master% - {\normalsize A Thesis \par}% + \if@proposal% + {\normalsize A Thesis Proposal \par}% + \else% + {\normalsize A Thesis \par}% + \fi \vspace*{13.2pt}% \else% - {\normalsize A Dissertation \par}% + \if@proposal% + {\normalsize A Dissertation Proposal \par}% + \else% + {\normalsize A Dissertation \par}% + \fi \vspace*{13.2pt}% \fi% - {\normalsize Submitted in Partial Fulfillment of the \par}% - \vspace*{13.2pt}% - {\normalsize Requirements for the Degree of \par}% - \vspace*{13.2pt}% - {\normalsize \@degree \par}% - \vspace*{0.5in}% - {\normalsize Major: \@major \par}% + \if@proposal% + {\normalsize Submitted for the Committee's Review \par}% + \vspace*{0.5in}% + {\normalsize Academic Advisor: \par}% + \vspace*{13.2pt}% + {\normalsize \@advisor \par}% + \vspace*{0.5in}% + {\normalsize Major: \@major \par}% + \else% + {\normalsize Submitted in Partial Fulfillment of the \par}% + \vspace*{13.2pt}% + {\normalsize Requirements for the Degree of \par}% + \vspace*{13.2pt}% + {\normalsize \@degree \par}% + \vspace*{0.5in}% + {\normalsize Major: \@major \par}% + \fi \end{center}% \end{minipage}\par% \end{minipage}\par @@ -436,46 +462,90 @@ \normalfont\bfseries #1} \newcommand\copyrightpage{% - \prelimpage - \singlespacing - \topskip0pt - \vspace*{\fill} - \begin{center}{\normalsize% - Copyright\copyright~\@author \par - All rights reserved} - \end{center} - \vspace*{\fill} - \doublespacing - \endprelimpage + \if@proposal\else% + \prelimpage + \singlespacing + \topskip0pt + \vspace*{\fill} + \begin{center}{\normalsize% + Copyright\copyright~\@author \par + All rights reserved} + \end{center} + \vspace*{\fill} + \doublespacing + \endprelimpage + \fi } \newenvironment{dedication}{% - \prelimpage - \@makeschapterhead{\dedicationname}\par - \doublespacing% + \if@proposal% + \setbox\z@\vbox\bgroup + \else + \prelimpage + \@makeschapterhead{\dedicationname}\par + \doublespacing% + \fi% }{% - \endprelimpage} + \if@proposal% + \egroup + \else% + \endprelimpage + \fi} \newenvironment{acknowledgments}{% - \prelimpage - \@makeschapterhead{\acknowledgmentsname}\par - \doublespacing% + \if@proposal% + \setbox\z@\vbox\bgroup + \else + \prelimpage + \@makeschapterhead{\acknowledgmentsname}\par + \doublespacing% + \fi% }{% - \endprelimpage} + \if@proposal% + \egroup + \else + \endprelimpage + \fi} \newenvironment{preface}{% - \prelimpage - \@makeschapterhead{\prefacename}\par - \doublespacing% + \if@proposal% + \setbox\z@\vbox\bgroup + \else + \prelimpage + \@makeschapterhead{\prefacename}\par + \doublespacing% + \fi }{% - \endprelimpage} + \if@proposal% + \egroup + \else + \endprelimpage + \fi} \newenvironment{abstract}{% - \prelimpage - \@makeschapterhead{\abstractname}\par - \doublespacing% + \if@proposal% + \if@showabstract% + \prelimpage + \@makeschapterhead{\abstractname}\par + \doublespacing% + \else + \setbox\z@\vbox\bgroup + \fi% + \else + \prelimpage + \@makeschapterhead{\abstractname}\par + \doublespacing% + \fi }{% - \endprelimpage} + \if@proposal% + \if@showabstract% + \endprelimpage + \else + \egroup + \fi% + \else + \endprelimpage + \fi} \newenvironment{keywords}{% \par @@ -483,12 +553,14 @@ {\bfseries\normalsize\noindent Keywords:~}}{}% \newcommand\listsymbols[1]{% - \prelimpage% - \singlespacing% \input{#1}% - \renewcommand*{\glossarypreamble}{\vspace{0.3\baselineskip}}% - \printglossary[type=symbols,title={\symbolname},style=index2,nogroupskip=true] - \endprelimpage% + \if@proposal\else% + \prelimpage% + \singlespacing% + \renewcommand*{\glossarypreamble}{\vspace{0.3\baselineskip}}% + \printglossary[type=symbols,title={\symbolname},style=index2,nogroupskip=true] + \endprelimpage% + \fi } \newcommand\newsymb[3]{% @@ -496,13 +568,15 @@ } \newcommand\listabbreviations[1]{% - \prelimpage - \singlespacing% \input{#1}% - \renewcommand*{\glossarypreamble}{\vspace{0.3\baselineskip}}% - \printglossary[type=\acronymtype,title={\acronymname},style=index2,nogroupskip=true]% - \doublespacing% - \endprelimpage% + \if@proposal\else% + \prelimpage + \singlespacing% + \renewcommand*{\glossarypreamble}{\vspace{0.3\baselineskip}}% + \printglossary[type=\acronymtype,title={\acronymname},style=index2,nogroupskip=true]% + \doublespacing% + \endprelimpage% + \fi } \newcommand\useglossaries[1]{\input{#1}} @@ -511,9 +585,11 @@ \newglossaryentry{#1}{name=#2,description={#3}}} \newcommand\listglossaries{% - \singlespacing% - \printglossary[title=\glossaryname,style=index2,nogroupskip=true]% - \doublespacing% + \if@proposal\else% + \singlespacing% + \printglossary[title=\glossaryname,style=index2,nogroupskip=true]% + \doublespacing% + \fi } \newenvironment{verse} @@ -641,16 +717,18 @@ \newcommand\@dotsep{3} \setcounter{tocdepth}{2} \newcommand\tableofcontents{% - \prelimpage% - \begin{center}% - \bfseries \contentsname - \end{center}% - \singlespacing - \vspace*{-0.06in}% - Chapter \hfill Page \par% - \@starttoc{toc}% - \doublespacing - \endprelimpage + \if@proposal\else% + \prelimpage% + \begin{center}% + \bfseries \contentsname + \end{center}% + \singlespacing + \vspace*{-0.06in}% + Chapter \hfill Page \par% + \@starttoc{toc}% + \doublespacing + \endprelimpage + \fi } \newcommand*\l@part[2]{% \ifnum \c@tocdepth >-2\relax @@ -692,33 +770,37 @@ \newcommand*\l@paragraph{\@dottedtocline{4}{9.4em}{5em}} \newcommand*\l@subparagraph{\@dottedtocline{5}{11.7em}{6em}} \newcommand\listoffigures{% - \prelimpage% - \addcontentsline{toc}{chapter}{\listfigurename} - \begin{center}% - \bfseries \listfigurename - \end{center}% - \figurename \hfill Page \par - \singlespacing - \@mkboth{\MakeUppercase\listfigurename}% - {\MakeUppercase\listfigurename}% - \@starttoc{lof}% - \doublespacing - \endprelimpage + \if@proposal\else% + \prelimpage% + \addcontentsline{toc}{chapter}{\listfigurename} + \begin{center}% + \bfseries \listfigurename + \end{center}% + \figurename \hfill Page \par + \singlespacing + \@mkboth{\MakeUppercase\listfigurename}% + {\MakeUppercase\listfigurename}% + \@starttoc{lof}% + \doublespacing + \endprelimpage + \fi } \newcommand*\l@figure{\@dottedtocline{1}{0em}{2.3em}} \newcommand\listoftables{% - \prelimpage% - \addcontentsline{toc}{chapter}{\listtablename} - \begin{center}% - \bfseries \listtablename - \end{center}% - \tablename \hfill Page \par - \singlespacing - \@mkboth{\MakeUppercase\listtablename}% - {\MakeUppercase\listtablename}% - \@starttoc{lot}% - \doublespacing - \endprelimpage + \if@proposal\else% + \prelimpage% + \addcontentsline{toc}{chapter}{\listtablename} + \begin{center}% + \bfseries \listtablename + \end{center}% + \tablename \hfill Page \par + \singlespacing + \@mkboth{\MakeUppercase\listtablename}% + {\MakeUppercase\listtablename}% + \@starttoc{lot}% + \doublespacing + \endprelimpage + \fi } \let\l@table\l@figure \newdimen\bibindent