% courseoutline.cls %------------------------------------------------------------------------% %% This is a class (.cls) file for LaTeX2e. %% %% Author: Norman R. Gall %% Department of Philosophy %% The University of Calgary %% Calgary, Alberta %% %% ngall@ucalgary.ca %% %% Feel free to copy, modify, and distribute. %% I am interested in all changes you make. %% Please send changes to ngall@ucalgary.ca %% %% This file is based on the default article.cls file %% %% General Notes: %% %% %% My purpose in writing this .cls is to automate what I do all too often: %% write new course outlines. It is sometimes tedious but the main problem %% is that the information is obscured by the LaTeX codes. I want to be %% able to just see the information when reading the source and when %% writing simply drop into the macros what I want. %% %% I think that I have chosen the macro names intelligently, but if anyone %% has suggestions for more intuitive names, I'd like to hear from you. %% %% % % Version History % --------------- % v0.1 2002-02-16 Test of Class file % v0.9 2003-12-14 Added the rest of the macros and added the % environments % v1.0 2003-09-20 If there's no TA defined, no TA section will appear % First Release % % - Command Notes ------------------------------ % % % New commands (I hope these are self-explanatory}: % % \university{} % \department{} % % \coursename{} % \coursenumber{} % \coursesection{} % \coursesession{} % \coursetime{} % \courselocation{} % \coursewebpage{} % % \instructor{} % \instructoroffice{} % \instructorofficehours{} % \instructorphone{} % \instructoremail{} % % \ta{} % \taoffice{} % \taofficehours{} % \taphone{} % \taemail{} % \tutorialtime{} % \tutoriallocation{} % % New Environments % % % Each new environment has the syntax % % \begin{environment_name}[optional section name] % % ...Important things for students to know... % % \end{environment_name} % % % I have included the optional name for customisation convenience. I understand % that my tastes in choice of name are idiosyncratic. % % The environments do nothing more than set the name of the section. You can % call each section whatever you like and do whatever you would otherwise be % able to do inside any of these environments. % % \begin{introduction} ... \end{introduction} % % Provides a section entitled `Course Description' % % \begin{evaluation} ... \end{evaluation} % % Provides a section entitled `Evaluation' % % \begin{schedule} ... \end{schedule} % % Provides a section entitled `Lecture Schedule' % % \begin{assignments} ... \end{assignments} % % Provides a section entitled `Assignments' % % \begin{tutorials} ... \end{tutorials} % % Provides a section entitled `Tutorials' % % \begin{administrivia} ... \end{administrivia} % % Provides a section entitled `Miscellaneous' % % - Identification ------------------------------------- \NeedsTeXFormat{LaTeX2e} \ProvidesClass{courseoutline}[2003/09/14 v0.9] % Initial Code --------------------------------------- % \RequirePackage{ifthen} % % - Declaration of Options ----------------------------- % % saving taken from dissertation.sty with modification % \PassOptionsToClass{letterpaper,oneside,onecolumn}{article} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}} \ExecuteOptions{draft} % % - Execution of Options ------------------------------- % \ProcessOptions % % - Package Loading ------------------------------------ % \LoadClass{article} % % - Main Code ------------------------------------------ % % some definitions % \def\university#1{\gdef\@university{#1}} \def\department#1{\gdef\@department{#1}} \def\coursename#1{\gdef\@coursename{#1}} \def\coursenumber#1{\gdef\@coursenumber{#1}} \def\coursesection#1{\gdef\@coursesection{#1}} \def\coursesession#1{\gdef\@coursesession{Session: #1}} \def\coursetime#1{\gdef\@coursetime{Lecture Times: #1}} \def\courselocation#1{\gdef\@courselocation{Room: #1}} \def\coursewebpage#1{\gdef\@coursewebpage{WWW: #1}} \def\texts#1{\gdef\@texts{#1}} \def\instructor#1{\gdef\@instructor{Instructor: #1}} \def\instructoroffice#1{\gdef\@instructoroffice{Office: #1}} \def\instructorofficehours#1{\gdef\@instructorofficehours{#1}} \def\instructorphone#1{\gdef\@instructorphone{Office Phone: #1}} \def\instructoremail#1{\gdef\@instructoremail{E-mail: #1}} \def\ta#1{\gdef\@ta{Teaching Assistant: #1}} \def\taoffice#1{\gdef\@taoffice{Office: #1}} \def\taofficehours#1{\gdef\@taofficehours{Office Hours: #1}} \def\taphone#1{\gdef\@taphone{Office Phone: #1}} \def\taemail#1{\gdef\@taemail{E-mail: #1}} \def\tutorialtime#1{\gdef\@tutorialtime{#1}} \def\tutoriallocation#1{\gdef\@tutoriallocation{#1}} % \def\@ifdefined#1#2{\@ifundefined{#1}{}{#2}} % % Spacing and margins % % These margins are set for letter size paper for North American tastes. % Other users will have to make the relevant adjustments here or in their % LaTeX source file % \setlength {\topmargin}{0.0in} % top margin 1.0 inch \setlength {\textheight}{8.5in} % bottom margin 1.0 inch \setlength {\oddsidemargin}{0.0in} % left margin 1.0 inch \setlength {\evensidemargin}{0.0in} % right margin 1.0 inch \setlength {\textwidth}{6.5in} % right margin 1.0 inch \setlength {\footnotesep}{14pt} % baseline skip for fn's 1st line \setlength {\headheight}{0.2in} % make room for header \setlength {\headsep}{0.2in} % modest header separation \setlength {\parskip}{0.2in} % set a paragraph skip \setlength {\parindent}{0.0in} % no para indents % % redefine the titlematter % \renewcommand\maketitle{\par \begingroup \renewcommand\thefootnote{\@fnsymbol\c@footnote}% \def\@makefnmark{\rlap{\@textsuperscript{\normalfont\@thefnmark}}}% \long\def\@makefntext##1{\parindent 1em\noindent \hb@xt@1.8em{% \hss\@textsuperscript{\normalfont\@thefnmark}}##1}% \newpage \global\@topnum\z@ % Prevents figures from going at top of page. \@maketitle \thispagestyle{empty}\@thanks \endgroup \setcounter{footnote}{0}% \global\let\thanks\relax \global\let\maketitle\relax \global\let\@maketitle\relax \global\let\@thanks\@empty % \global\let\university\@empty \global\let\department\@empty \global\let\coursename\@empty \global\let\coursenumber\@empty \global\let\coursesection\@empty \global\let\coursesession\@empty \global\let\coursetime\@empty \global\let\courselocation\@empty \global\let\coursewebpage\@empty \global\let\texts\@empty \global\let\instructor\@empty \global\let\instructoroffice\@empty \global\let\instructorofficehours\@empty \global\let\instructorphone\@empty \global\let\instructoremail\@empty \global\let\ta\@empty \global\let\taoffice\@empty \global\let\taofficehours\@empty \global\let\taphone\@empty \global\let\taemail\@empty \global\let\tutorialtime\@empty \global\let\tutoriallocation\@empty % \global\let\university\relax \global\let\department\relax \global\let\coursename\relax \global\let\coursenumber\relax \global\let\coursesection\relax \global\let\coursesession\relax \global\let\coursetime\relax \global\let\courselocation\relax \global\let\coursewebpage\relax \global\let\texts\relax \global\let\instructor\relax \global\let\instructoroffice\relax \global\let\instructorofficehours\relax \global\let\instructorphone\relax \global\let\instructoremail\relax \global\let\ta\relax \global\let\taoffice\relax \global\let\taofficehours\relax \global\let\taphone\relax \global\let\taemail\relax \global\let\tutorialtime\relax \global\let\tutoriallocation\relax } \def\@maketitle{% \newpage \null \vskip 2em% \sffamily \begin{center}% {\Large \@university \@department} \vspace{.1in} \begin{Large} \textbf{\@coursenumber\space\@coursesection\space\@coursename} \end{Large} \vspace{.1in} \begin{tabular}[t]{l r} \@instructor & \@coursesession\\ \@instructoremail & \@coursewebpage\\ Office: \@instructoroffice & \@instructorphone \\ Office Hours: & \@instructorofficehours\\ & \\ \@coursetime & \@courselocation\\ \end{tabular} \vspace{.1in} \@ifdefined {@ta}{ \begin{tabular}[t]{l r} \@ta & \@taemail \\ \@taoffice & \@taphone \\ \@taofficehours & \\ & \\ Tutorial Times: & Room\\ \@tutorialtime & \@tutoriallocation\\ \end{tabular} } \end{center} \rmfamily\hrule\vskip 1em\par \par \vskip 1.5em} % % Set up headers % \def\ps@myheadings{% \let\@oddfoot\@empty\let\@evenfoot\@empty \def\@evenhead{\thepage -- \slshape\leftmark\hfil}% \def\@oddhead{\hfil{\slshape\rightmark} -- \thepage}% \let\@mkboth\@gobbletwo } % % Create environments % \newenvironment{textbooks}[1][Textbooks]{ \@startsection{#1}{1}{\z@}% {-3.5ex plus -1ex minus -.2ex}% {1.5ex plus .2ex}% {\sffamily\Large}*% {#1}} {\rmfamily\normalsize} % \newenvironment{introduction}[1][Course Description]{ \@startsection{#1}{1}{\z@}% {-3.5ex plus -1ex minus -.2ex}% {1.5ex plus .2ex}% {\sffamily\Large}*% {#1}} {\rmfamily\normalsize} % \newenvironment{evaluation}[1][Evaluation]{ \@startsection{#1}{1}{\z@}% {-3.5ex plus -1ex minus -.2ex}% {1.5ex plus .2ex}% {\sffamily\Large}*% {#1}} {\rmfamily\normalsize} % \newenvironment{schedule}[1][Lecture Schedule]{ \@startsection{#1}{1}{\z@}% {-3.5ex plus -1ex minus -.2ex}% {1.5ex plus .2ex}% {\sffamily\Large}*% {#1}} {\rmfamily\normalsize} % \newenvironment{assignments}[1][Assignment Details]{ \@startsection{#1}{1}{\z@}% {-3.5ex plus -1ex minus -.2ex}% {1.5ex plus .2ex}% {\sffamily\Large}*% {#1}} {\rmfamily\normalsize} % \newenvironment{tutorials}[1][Tutorials]{ \@startsection{#1}{1}{\z@}% {-3.5ex plus -1ex minus -.2ex}% {1.5ex plus .2ex}% {\sffamily\Large}*% {#1}} {\rmfamily\normalsize} % \newenvironment{administrivia}[1][Miscellaneous]{ \@startsection{#1}{1}{\z@}% {-3.5ex plus -1ex minus -.2ex}% {1.5ex plus .2ex}% {\sffamily\Large}*% {#1}} {\rmfamily\normalsize} %% End of file `courseoutline.cls'.