% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This LaTeX class is an extension to the slides class which % allows much nicer headers and footers which are customized % to the University of Rhode Island. % % All options from the class slides are allowed as well as: % bw: make the header bar, footer bar, and logo black and % white, instead of blue and gold. % % portrait: landscape is the default orientation, this chooses % specifies portrait. % % nofoot: no footer will be at the bottom, and the default % text of the slide will be one inch longer. The page % numbers will be in the upper right. % % The additional functions available in this class are: % \slidetitle{title}: this sets the title of the current slide, % and must occur somewhere before the \end{slide}. % % \tinycaption{caption}: this prints the caption in the lower % lefthand side of the slide. It will affect all following % slides. % % Functions to change the header and footer (these all must % appear before the \begin{document}): % \sitename{Site Name}: this sets the text in the lowerbar. % To have no name use \sitename{}. % % \sitenamecolor{color}: this specifies the color to use for % the site name in the lower bar. % % \barcolor{color}: this is the bar color. % % \newlogo{logo}[width]: this specifies the logo to use in % the upper lefthand corner of the slide. If the optional % width is not specified, it will default to 0.75in. To have % no logo, use \newlogo{}. % % % Author: Tim Toolan, Department of Electrical and Computer Engineering, % University of Rhode Island. % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % basic class header stuff \NeedsTeXFormat{LaTeX2e} \ProvidesClass{urislides}[2002/05/01 v1.0 Extension of slides class] % black and white headers and footers \DeclareOption{bw}{\def\@wantbwslides{true}} % don't want a footer to get more space \DeclareOption{nofoot}{\def\@wantnofoot{true}} % landscape is default, need to specify portrait \DeclareOption{portrait}{\def\@wantportrait{true}} % pass all the rest of the options to the real slides class \DeclareOption*{\PassOptionsToClass{\CurrentOption}{slides}} \ProcessOptions \@ifundefined{@wantportrait}{ \LoadClass[landscape]{slides} }{ \LoadClass{slides} } % need graphics for the logo and color for the two bars \RequirePackage{graphics} \RequirePackage{color} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % default values for University of Rhode Island headers and footers \def\@bwlogo{urilogo.eps} % black and white logo file \def\@colorlogo{urilogoblue.eps} % color logo file \def\@sitename{University of Rhode Island} % site name for lower bar \definecolor{@barcolor}{rgb}{0.0,0.0,0.4} % top and bottom bar color \definecolor{@sitenamecolor}{rgb}{1.0,0.6,0.2} % lower bar text color %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % setup our default margin, header and footer dimensions \setlength{\topmargin}{-0.6in} \setlength{\headheight}{1.0in} \setlength{\headsep}{0.25in} \@ifundefined{@wantnofoot}{ \setlength{\footskip}{0.75in} }{ \setlength{\footskip}{0.0in} } \setlength{\textheight}{\paperheight} \@ifundefined{@wantnofoot}{ \addtolength{\textheight}{-2.9in} }{ \addtolength{\textheight}{-1.9in} } \setlength{\oddsidemargin}{0.25in} \setlength{\evensidemargin}{0.25in} \setlength{\textwidth}{\paperwidth} \addtolength{\textwidth}{-2.5in} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % new command definitions %%%%%%%%%%%%%%%% % lengths we need \newlength{\@topbarlen} \newlength{\@baroffset} \newlength{\@logooffset} \newlength{\@shortbarlen} \newlength{\@tmplen} \newlength{\@logowidth} \newlength{\@caplen} %%%%%%%%%%%%%%%% % bar color functions \@ifundefined{@wantbwslides}{ \def\@barcolor{@barcolor} \def\@sitenamecolor{@sitenamecolor} }{ \def\@barcolor{black} \def\@sitenamecolor{black} } \def\barcolor#1{\global\def\@barcolor{#1}} \def\sitenamecolor#1{\global\def\@sitenamecolor{#1}} \def\@initbarcolors{ \xdef\@exbarcolor{\@barcolor} \def\@usebarcolor{\color{\@exbarcolor}} \xdef\@exsitenamecolor{\@sitenamecolor} \def\@usesitenamecolor{\color{\@exsitenamecolor}} } %%%%%%%%%%%%%%%% % functions to set site name which will appear on the bottom bar, % and determines segement lengths of bottom bar \def\sitename#1{\def\@realsitename{#1}} \sitename{\@sitename} \def\@initsitename{ \xdef\@exrealsitename{\@realsitename} \def\@sizedsitename{\tiny \@exrealsitename} \setlength{\@baroffset}{1in} \addtolength{\@baroffset}{\oddsidemargin} \addtolength{\@baroffset}{-0.5in} \setlength{\@topbarlen}{\paperwidth} \addtolength{\@topbarlen}{-1in} \def\@drawtopbar{{\@usebarcolor\hspace{-\@baroffset}% \rule{\@topbarlen}{0.04in}}% \hspace{-\@topbarlen}\hspace{\@baroffset}} \settowidth{\@tmplen}{\@exrealsitename} \ifnum\@tmplen=0 % want no site name on bottom bar \def\@bottomline{\rule[0.25ex]{\@topbarlen}{0.04in}} \else % site name specified \def\@bottomline{\rule[0.25ex]{\@shortbarlen}{0.04in} % {\@usesitenamecolor \@sizedsitename} % {\@usebarcolor\rule[0.25ex]{1.0in}{0.04in}}} \fi \settowidth{\@tmplen}{\rule[0.25ex]{1.0in}{0.04in} % {\@usesitenamecolor \@sizedsitename} % {\@usebarcolor\rule[0.25ex]{1.0in}{0.04in}}} \setlength{\@shortbarlen}{\@topbarlen} \addtolength{\@shortbarlen}{-\@tmplen} \addtolength{\@shortbarlen}{1.0in} \def\@drawbottombar{\raisebox{0.4in} {{\@usebarcolor\hspace{-\@baroffset}\@bottomline}\hspace{-\@topbarlen}}% \hspace{\@baroffset}} } %%%%%%%%%%%%%%%% % functions to deal with logo in header % newlogo function which takes a filename and an optional width % if filename is blank no logo is printed \def\newlogo#1{% \@ifnextchar[{\@inewlogo{#1}}{\@iinewlogo{#1}}} \def\@iinewlogo#1{\def\@newsitelogo{#1}} \def\@inewlogo#1[#2]{\def\@newsitelogo{#1}% \def\@newlogowidth{#2}} \def\@initnewlogo{ \setlength{\@logooffset}{1in} \addtolength{\@logooffset}{\oddsidemargin} \addtolength{\@logooffset}{-1.0in} \@ifundefined{@newsitelogo}{ % using a builtin logo \@ifundefined{@wantbwslides}{ \xdef\@sitelogo{\@colorlogo} }{ \xdef\@sitelogo{\@bwlogo} } \def\@drawlogox{\resizebox{!}{0.674in}{\includegraphics{\@sitelogo}}} }{ \xdef\@sitelogo{\@newsitelogo} \setlength{\@logowidth}{\@newlogowidth} \settowidth{\@tmplen}{\@sitelogo} \ifnum\@tmplen=0 \def\@drawlogox{\resizebox{\@logowidth}{!}{\hspace{0.75in}}} \else \def\@drawlogox{\resizebox{\@logowidth}{!} {\includegraphics{\@sitelogo}}} \fi } \def\@drawlogo{\hspace{-\@logooffset}% \raisebox{0.2in}{\@drawlogox}% \hspace{-\@logowidth}\hspace{\@logooffset}} } \setlength{\@logowidth}{0.75in} \def\@newlogowidth{0.75in} %%%%%%%%%%%%%%%% % functions to implement small caption in footer \newcommand\@puny{\@setfontsize\@puny{8}{10}} \def\@drawtinycap{} \def\tinycaption#1{\@settinycaption{#1}} \def\@settinycaption#1{ \global\def\@tinycaption{\@puny #1} \settowidth{\@caplen}{\@tinycaption} \ifnum\@caplen=0 \def\@drawtinycap{} \else \def\@drawtinycap{\raisebox{0.3in}{\@tinycaption\hspace{-\@caplen}}} \fi } %%%%%%%%%%%%%%%% % text for notes slides \def\@drawnotescap{\makebox[\textwidth]{\small Notes}\hspace{-\textwidth}} \if@clock \def\@drawclock{% \settowidth{\@tmplen}{\fbox{\large \@arabic\c@minutes\space min}}% \@drawnotescap\fbox% {\large \@arabic\c@minutes\space min}\hspace{-\@tmplen}} \def\@drawclockplain{\@drawclock} \def\@drawtopclock{% \settowidth{\@tmplen}{\fbox{\large \@arabic\c@minutes\space min}}% \raisebox{0.3in}{\fbox% {\large \@arabic\c@minutes\space min}}\hspace{-\@tmplen}} \else \def\@drawclock{\@drawnotescap\@drawtinycap} \def\@drawclockplain{\@drawnotescap} \def\@drawtopclock{} \fi %%%%%%%%%%%%%%%% % sets the title of the slide \def\@slidetitle{} \def\slidetitle#1{\global\def\@slidetitle{#1}} \def\@drawtitle{\raisebox{0.3in}{\makebox[\textwidth]{\large \@slidetitle}}} %%%%%%%%%%%%%%%% % draws the page number \def\@drawpagenum{\makebox[\textwidth][r]% {\@mainsize {\hfil\hb@xt@3em{\hspace{0.8in}\@thepagenum\hss}}}}% \def\@drawtoppagenum{\raisebox{0.3in}{\@drawpagenum}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % things that are determined at the begining of document and % shouldn't be changed later \AtBeginDocument{ \@initbarcolors \@initsitename \@initnewlogo % for dvips when landscape letter paper \ifdim\paperheight=8.5in \ifdim\paperwidth=11in \special{papersize=11in,8.5in} \special{! TeXDict begin /landplus90{true}store end } \fi \fi } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % things redefined from slides.cls \@ifundefined{@wantnofoot}{ \def\@commonhead{\@dodrawtopbar\@dodrawlogo\@drawtitle} \def\@commonfoot{\@dodrawbottombar\@dodrawtinycap\@drawpagenum} }{ \def\@commonhead{\@dodrawtopbar\@dodrawlogo\@drawtitle% \hspace{-\textwidth}\@drawtoppagenum} \def\@commonfoot{} } \def\ps@headings{% \def\ps@slide{% \def\@oddfoot{% \def\@dodrawbottombar{\@drawbottombar}% \def\@dodrawtinycap{\@drawtinycap}% \def\@thepagenum{\theslide}% \@commonfoot}% \def\@oddhead{% \def\@dodrawtopbar{\@drawtopbar}% \def\@dodrawlogo{\@drawlogo}% \def\@thepagenum{\theslide}% \@commonhead}% \def\@evenfoot{\@oddfoot}% \def\@evenhead{\@oddhead}} \def\ps@overlay{% \def\@oddfoot{% \def\@dodrawbottombar{\@drawbottombar}% \def\@dodrawtinycap{\@drawtinycap}% \def\@thepagenum{\theoverlay}% \@commonfoot}% \def\@oddhead{% \def\@dodrawtopbar{\@drawtopbar}% \def\@dodrawlogo{\@drawlogo}% \def\@thepagenum{\theoverlay}% \@commonhead}% \def\@evenfoot{\@oddfoot}% \def\@evenhead{\@oddhead}} \def\ps@note{% \def\@oddfoot{% \def\@dodrawbottombar{\@drawbottombar}% \def\@dodrawtinycap{\@drawclock}% \def\@thepagenum{\thenote}% \@commonfoot}% \def\@oddhead{% \def\@dodrawtopbar{\@drawtopbar}% \def\@dodrawlogo{\@ifundefined{@wantnofoot}{\@drawlogo}{\@drawtopclock}}% \def\@thepagenum{\thenote}% \@commonhead}% \def\@evenfoot{\@oddfoot}% \def\@evenhead{\@oddhead}}% } \def\ps@plain{% \def\ps@slide{% \def\@oddfoot{% \def\@dodrawbottombar{}% \def\@dodrawtinycap{}% \def\@thepagenum{\theslide}% \@commonfoot}% \def\@oddhead{% \def\@dodrawtopbar{}% \def\@dodrawlogo{}% \def\@thepagenum{\theslide}% \@commonhead}% \def\@evenfoot{\@oddfoot}% \def\@evenhead{\@oddhead}} \def\ps@overlay{% \def\@oddfoot{% \def\@dodrawbottombar{}% \def\@dodrawtinycap{}% \def\@thepagenum{\theoverlay}% \@commonfoot}% \def\@oddhead{% \def\@dodrawtopbar{}% \def\@dodrawlogo{}% \def\@thepagenum{\theoverlay}% \@commonhead}% \def\@evenfoot{\@oddfoot}% \def\@evenhead{\@oddhead}} \def\ps@note{% \def\@oddfoot{% \def\@dodrawbottombar{}% \def\@dodrawtinycap{}% \def\@thepagenum{\thenote}% \@commonfoot}% \def\@oddhead{% \def\@dodrawtopbar{}% \def\@dodrawlogo{\@drawtopclock}% \def\@thepagenum{\thenote}% \@commonhead}% \def\@evenfoot{\@oddfoot}% \def\@evenhead{\@oddhead}}% } \ps@headings