% --------------- identification ----------------\NeedsTeXFormat{LaTeX2e}\ProvidesPackage{PNS}[2003/02/14]% --------------- initial code ---------------\RequirePackage{ifthen,calc,xspace,verbatim,array}\newboolean{PNSMath}\setboolean{PNSMath}{false}\newboolean{PNSStyle}\setboolean{PNSStyle}{true}\newboolean{PNSApple}\setboolean{PNSApple}{true}\newboolean{PNSGraphics}\setboolean{PNSGraphics}{true}\newcommand{\theTitle}{set theTitle}\newcommand{\theDate}{\@date}% --------------- declaration of options ---------------\DeclareOption{math}{\setboolean{PNSMath}{true}}\DeclareOption{nostyle}{\setboolean{PNSStyle}{false}}\DeclareOption{noapple}{\setboolean{PNSApple}{false}}\DeclareOption{headers}{%	\AtEndOfPackage{\RequirePackage{fancyhdr}		\renewcommand{\footrulewidth}{0.4pt}		\fancyfoot[LE,RO]{\theTitle}		\fancyfoot[RE,LO]{\theDate}%		\pagestyle{fancy} if this is in, then you can't fix the 		% header width; you have to set fancy within the document		\thispagestyle{plain}		\newcommand{\theCourse}{}		\newcommand{\theTerm}{}		\newcommand{\theNumber}{1}		\newcommand{\SetHeaders}{%			\fancyhead{} % clear all fields			\fancyhead[LO,RE]{\textit{\theTitle}}%			\fancyhead[RO,LE]{\textit{\theDate}}%			\fancyfoot[LO,RE]{\textit{\theCourse}}%			\fancyfoot[RO,LE]{\textit{\theTerm}}%			}	}}\DeclareOption{problems}{\AtEndOfPackage{\RequirePackage{PNSProblem}}}\DeclareOption{nographics}{\setboolean{PNSGraphics}{false}}\DeclareOption{code}{%	\AtEndOfPackage{\RequirePackage{moreverb}}}% --------------- execution of options ---------------\ProcessOptions% --------------- package loading ---------------\ifthenelse{\boolean{PNSMath}}{\RequirePackage{amsmath,amssymb,array}}{}\ifthenelse{\boolean{PNSGraphics}}{%	\RequirePackage{epsfig}% was epsfig	\DeclareGraphicsExtensions{.epsf,.eps,.ps}%	}{}\ifthenelse{\boolean{PNSApple}}{\RequirePackage[applemac]{inputenc}}{}% --------------- main code ---------------%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                   %%   Redefine basic formatting commands to use sans-serif titles     %%   in section headings, description list labels, and provide the   %%   \umph{} command for emphasis.                                   %%                                                                   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\ifthenelse{\boolean{PNSStyle}}{	\RequirePackage{indentfirst}	\makeatletter	\renewcommand{\section}{\@startsection		{section}%						% the name		{1}%							% the level		{0mm}%							% the indent		{-\baselineskip}%				% the beforeskip		{0.5\baselineskip}%				% the afterskip		{\sffamily\bfseries\large}}%	% the style	\renewcommand{\subsection}{\@startsection		{subsection}%					% the name		{2}%							% the level		{0mm}%							% the indent		{-\baselineskip}%				% the beforeskip		{0.5\baselineskip}%				% the afterskip		{\sffamily\bfseries}}%			% the style	\renewcommand{\subsubsection}{\@startsection		{subsubsection}%				% the name		{3}%							% the level		{0mm}%							% the indent		{-\baselineskip}%				% the beforeskip		{0.5\baselineskip}%				% the afterskip		{\small\slshape\sffamily}}%		% the style	\makeatother	\renewcommand{\thesection}{\arabic{section}.}	\renewcommand{\thesubsection}{\thesection\arabic{subsection}}	\renewcommand{\descriptionlabel}[1]%		{\hspace{\labelsep}\umph{#1}}	}{}\providecommand{\umph}[1]{\textbf{\textsf{#1}}}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                            %%   Page layout support. I often want to specify the width   %%   and height of the text area. This macro automatically    %%   recalculates the appropriate margins.                    %%                                                            %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\newcommand{\SetPrintArea}[2]{% width, height	\setlength{\textwidth}{#1} %	\setlength{\textheight}{#2} %	\setlength{\oddsidemargin}{(\paperwidth-#1-2in)/2} %	\setlength{\evensidemargin}{\oddsidemargin}	\setlength{\topmargin}{(\paperheight-2in-#2-\footskip-%		\headheight-\headsep)/2}%	\setlength{\headwidth}{\textwidth}}\SetPrintArea{6in}{8.5in}	% the default page size I use\newcommand{\spacing}[1]{%		macro to set the line spacing%								to double space, for example	\renewcommand{\baselinestretch}{#1}\small\normalsize}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                              %%   Following are some shortcuts to save typing. I prefer      %%   to use the \np macro instead of \newpage, so that I can    %%   redefine to a newline when I want to save paper.           %%   \ig saves typing when including an Encapsulated            %%   PostScript graphic file:                                   %%   \ig[.67]{blah} would include the file `blah.epsf' scaled   %%   to 67%                                                     %%                                                              %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\newcommand{\bc}{\begin{center}}\newcommand{\ec}{\end{center}}\newcommand{\np}{\newpage}\newcommand{\noi}{\noindent}\newcommand{\ds}{\displaystyle}\newcommand{\ig}[2][1]{\includegraphics[scale=#1]{#2}}%%%%%%%%%%%%%%%%%%%%                 %%   Mathematics   %%                 %%%%%%%%%%%%%%%%%%%%\newcommand{\PNSSymbol}[1]{\ensuremath{#1}\xspace}	% generic symbol\ifthenelse{\boolean{PNSMath}}{\DeclareMathOperator{\sech}{sech}\DeclareMathOperator{\csch}{csch}\DeclareMathOperator{\erf}{erf}\DeclareMathOperator{\erfc}{erfc}}{}\newcommand{\ii}{\ensuremath{i}}		% imaginary unit\newcommand{\DD}{\ensuremath{d}}		% differential d without leading space\newcommand{\dd}{\ensuremath{\,\DD}}	% differential d\newcommand{\ddd}{\PNSSymbol{\delta}} 	% inexact differential%\newcommand{\deriv}[2]{\ensuremath{\frac{\DD #1}{\DD #2}}}\newcommand{\deriv}[3][]{\ensuremath{%	\ifthenelse{\equal{#1}{}}{\frac{\DD #2}{\DD #3}}	{\frac{\DD^{#1} #2}{\DD #3^{#1}}}}}\newcommand{\pd}[3][]{\ensuremath{%	\ifthenelse{\equal{#1}{}}{\frac{\partial #2}{\partial #3}}	{\partial #2 / \partial #3}}}\newcommand{\pdc}[3]{\ensuremath{\left(\frac{\partial #1}{\partial #2}}\right)_{#3}}\newcommand{\pdn}[3][2]{\ensuremath{%	\frac{\partial^{#1} #2}{\partial #3^{#1}}}}\newcommand{\gives}{\ensuremath{\quad\text{\ding{223}}\quad}}\newcommand{\half}{\mbox{\ensuremath{\scriptstyle{\frac{1}{2}}}}\xspace}\newcommand{\RHS}{\PNSSymbol{\text{RHS}}}\newcommand{\LHS}{\PNSSymbol{\text{LHS}}}\newcommand{\Order}[1]{\ensuremath{\mathcal{O}(#1)}}	% big O notation\newcommand{\infint}{\ensuremath{\int_{-\infty}^{\infty}}}\newcommand{\sinfint}{\ensuremath{\int_{0}^{\infty}}}\newcommand{\REAL}{\Re}\newcommand{\IMAG}{\Im}\newcommand{\tensorprod}{\otimes}%%%%%%%%%%%%%%%%             %%   Physics   %%             %%%%%%%%%%%%%%%%\newcommand{\val}[2]{\ensuremath{#1~\mathrm{#2}}\xspace}	% number plus unit\newcommand{\dg}[1]{\ensuremath{#1^{\circ}}}\newcommand{\degC}[1]{\ensuremath{#1^{\circ}\mathrm{C}}}\newcommand{\degF}[1]{\ensuremath{#1^{\circ}\mathrm{F}}}\renewcommand{\vector}[1]{\ensuremath{\vec{\mathbf{#1}}}}\newcommand{\gvector}[1]{\ensuremath{\vec{\boldsymbol{#1}}}}\newcommand{\mper}{}	% a period in an equation\newcommand{\mcom}{}	% a comma in an equation% Quantum mechanics\newcommand{\ket}[1]{\PNSSymbol{|#1\rangle}}\newcommand{\bra}[1]{\PNSSymbol{\langle#1|}}% Statistical mechanics\newcommand{\NA}{\PNSSymbol{N_{\rm A}}}			% Avogadro's number\newcommand{\nos}{\PNSSymbol{\Omega}}			% number of states\newcommand{\kb}{\PNSSymbol{k_{\rm B}}} 		% Boltzmann's constant\newcommand{\kT}{\PNSSymbol{\kb T}}				% kT\newcommand{\hw}{\PNSSymbol{\hbar\omega}}		% hbar omega\newcommand{\msolar}{\PNSSymbol{M_{\odot}}}		% solar mass\newcommand{\rsolar}{\PNSSymbol{R_{\odot}}}		% solar radius% Mechanics\newcommand{\ux}{\PNSSymbol{\mathbf{\hat{x}}}}	% unit vectors\newcommand{\uy}{\PNSSymbol{\mathbf{\hat{y}}}}\newcommand{\uz}{\PNSSymbol{\mathbf{\hat{z}}}}\newcommand{\ut}{\PNSSymbol{\boldsymbol{\hat{\theta}}}}\newcommand{\ur}{\PNSSymbol{\mathbf{\hat{r}}}}\newcommand{\tdd}{\PNSSymbol{\ddot{\theta}}}\newcommand{\qd}{\PNSSymbol{\dot{\theta}}}\newcommand{\qdd}{\PNSSymbol{\ddot{\theta}}}\newcommand{\rd}{\PNSSymbol{\dot{r}}}\newcommand{\rdd}{\PNSSymbol{\ddot{r}}}\newcommand{\xd}{\PNSSymbol{\dot{x}}}\newcommand{\xdd}{\PNSSymbol{\ddot{x}}}\newcommand{\yd}{\PNSSymbol{\dot{y}}}\newcommand{\ydd}{\PNSSymbol{\ddot{y}}}\newcommand{\zd}{\PNSSymbol{\dot{z}}}\newcommand{\zdd}{\PNSSymbol{\ddot{z}}}\newcommand{\into}{\ensuremath{\hat{\otimes}}}	% direction symbols\newcommand{\outof}{\ensuremath{\hat{\odot}}}\newcommand{\so}{\ensuremath{\qquad\longrightarrow\qquad}}%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                            %%   Typography definitions   %%                            %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\newcommand{\eref}[2][]{%	\ifthenelse{\equal{#1}{}}%	{Eq.~(\ref{eq:#2})}%	{Equation~(\ref{eq:#2})}\xspace}\newcommand{\fref}[2][]{%  \ifthenelse{\equal{#1}{}}%    {Fig.~\ref{fig:#2}}%	{Figure~\ref{fig:#2}}}%   \ensuremath{\mathrm{Fig.}~(\ref{#1})}}\newcommand{\pgref}[1]{p.~\pageref{#1}\xspace}\newcommand{\sref}[1]{Sec.~\ref{sec:#1}\xspace}\newcommand{\tref}[1]{Table~\ref{tbl:#1}\xspace}\newcommand{\cref}[1]{Chapter~\ref{chap:#1}\xspace}\newcommand{\aref}[1]{Appendix~\ref{ap:#1}\xspace}\newcommand{\prref}[1]{Problem~\ref{prob:#1}\xspace}\newcommand{\fnref}[1]{footnote~\ref{fn:#1}}	\newcommand{\eg}{\textit{e.g.}\xspace}\newcommand{\ie}{\textit{i.e.}\xspace}\newenvironment{Quotation}[1][xx]{%	\sbox{\tempbox}{#1}\begin{quotation}\slshape}%	{\ifthenelse{\lengthtest{\wd\tempbox < 0.2in}}{}{%	\par\medskip\raggedleft{\upshape\usebox{\tempbox}}}\end{quotation}}\newcommand{\logosize}{.33}\newcommand{\logo}{\ig[\logosize]{logo}}\newcommand{\masttitle}[2]{%\parbox{1.5in}{\bc\logo \\ \small\textsl{\theCourse}\ec}%\parbox{4in}{%\begin{center}{\Large\textbf{\textsf{#1}} \\[.1in]\normalsize #2}%\end{center}}\\[.15in]}\makeatletter\newcommand{\mymaketitle}[1][]{{\Large\sffamily\bfseries	\ifthenelse{\equal{#1}{}}{\bc \@title \par \normalsize\normalfont \@date \ec}	{	\begin{flushleft}		\@title\par\normalsize\normalfont\@date\par	\end{flushleft}	}}}\makeatother\newcommand{\mytitle}[1]{\begin{center}{\LARGE \textbf{\textsf{#1}}}\end{center}}%%%%%%%%%%%%%%%%%              %%   Graphics   %%              %%%%%%%%%%%%%%%%%\newlength{\rptmplen}\newcommand{\rightpic}[3][2in]{\medskip\noi%	\setlength{\rptmplen}{\linewidth-#1}%	\parbox{\rptmplen}{#2}%	\parbox{#1}	{\hspace{.2in} #3 }	\medskip}