Files
bachelor_thesis/BYUPhys.cls

658 lines
21 KiB
OpenEdge ABL
Raw Permalink Normal View History

2024-05-06 19:59:07 +03:00
% Revision: 07-25-2007
% Revision History
% 07-10-2008 : Corrected Alignment of signature boxes on Masters/PhD Approval page
% 07-25-2007 : Corrected some spelling errors
% 05-16-2006 : Added etd option and moved most packages from class file to template
% 05-15-2006 : Initial version.
%
% Known bugs
% Having a tiny bit of the abstract spill to second page defeats page number removal.
% Workaround: make the abstract a little longer or a little shorter.
%
% The BYUPhys class is for producing theses and dissertations
% in the BYU department of physics and astronomy. You can supply
% the following optional arguments in the square brackets to
% specify the thesis type:
%
% senior : Produces the senior thesis preliminary pages (default)
% honors : Produces the honors thesis preliminary pages
% masters : Produces the masters thesis preliminary pages
% phd : Produces the PhD dissertation preliminary pages
%
% The default format is appropriate for printing, with blank pages
% inserted after the preliminary pages in twoside mode so you can
% send it directly to a two-sided printer. However, for ETD
% submission the blank pages need to be removed from the final output.
% The following option does this:
%
% etd : Produces an electronic copy with no blank pages in the preliminary section
%
% The rest of the class options are the same as the regular book class.
% A few to remember:
%
% oneside : Produces single sided print layout (recommended for theses less than 50 pages)
% twoside : Produces single sided print layout (the default if you remove oneside)
%
% The BYUPhys class provides the following macros:
%
% \makepreliminarypages : Makes the preliminary pages
% \clearemptydoublepage : same as \cleardoublepage but doesn't put page numbers
% on blank intervening pages
% \singlespace : switch to single spaced lines
% \doublespace : switch to double spaced lines
%
% ------------------------------------------------------------------------------------------------------
%
\NeedsTeXFormat{LaTeX2e} \ProvidesClass{BYUPhys}
% ---------------------------- declarations -------------------------
%
% These macros are used to declare arguments needed for the
% construction of the preliminary pages
% The year and month the degree is awarded
\newcommand{\University}[1]{\gdef\@University{#1}}
\newcommand{\Faculty}[1]{\gdef\@Faculty{#1}}
\newcommand{\Chair}[1]{\gdef\@Chair{#1}}
\newcommand{\Lab}[1]{\gdef\@Lab{#1}}
\newcommand{\GrText}[1]{\gdef\@GrText{#1}}
\newcommand{\AcadGroup}[1]{\gdef\@AcadGroup{#1}}
\newcommand{\AdvisorText}[1]{\gdef\@AdvisorText{#1}}
\newcommand{\ConsultantText}[1]{\gdef\@ConsultantText{#1}}
\newcommand{\ApprovalText}[1]{\gdef\@ApprovalText{#1}}
\newcommand{\ApprovalAText}[1]{\gdef\@ApprovalAText{#1}}
\newcommand{\ApprovalBText}[1]{\gdef\@ApprovalBText{#1}}
\newcommand{\DateText}[1]{\gdef\@DateText{#1}}
\newcommand{\Year}[1]{\gdef\@Year{#1}}
\newcommand{\Month}[1]{\gdef\@Month{#1}}
\newcommand{\City}[1]{\gdef\@City{#1}}
% The full name of the degree
\newcommand{\degree}[1]{\gdef\@degree{#1}}
% The name of this document (thesis/dissertation)
\newcommand{\docname}[1]{\gdef\@docname{#1}}
% First line of title
%\newcommand{\TitleTop}[1]{\gdef\@TitleTop{\mbox{\uppercase{#1}}}}
\newcommand{\TitleTop}[1]{\gdef\@TitleTop{\mbox{#1}}}
\newcommand{\TitleTopEng}[1]{\gdef\@TitleTopEng{\mbox{#1}}}
% Second line of title
\newcommand{\TitleMiddle}[1]{\gdef\@TitleMiddle{\mbox{#1}}}
\newcommand{\TitleMiddleEng}[1]{\gdef\@TitleMiddleEng{\mbox{#1}}}
% Third line of title
\newcommand{\TitleBottom}[1]{\gdef\@TitleBottom{\mbox{#1}}}
\newcommand{\TitleBottomEng}[1]{\gdef\@TitleBottomEng{\mbox{#1}}}
% Title page text
\newcommand{\TitlePageText}[1]{\gdef\@TitlePageText{#1}}
% Abstract text
\newcommand{\Abstract}[1]{\gdef\@Abstract{#1}}
\newcommand{\AbstractEng}[1]{\gdef\@AbstractEng{#1}}
\newcommand{\AbstractText}[1]{\gdef\@AbstractText{#1}}
% Acknowledgments text
\newcommand{\Acknowledgments}[1]{\gdef\@Acknowledgments{#1}}
\newcommand{\AcknowledgmentsText}[1]{\gdef\@AcknowledgmentsText{#1}}
% The author's name
\newcommand{\AuthorText}[1]{\gdef\@AuthorText{#1}}
\newcommand{\Author}[1]{\gdef\@Author{#1}}
\newcommand{\AuthorEng}[1]{\gdef\@AuthorEng{#1}}
\newcommand{\AuthorGenitiveCase}[1]{\gdef\@AuthorGenitiveCase{#1}}
% The name of the advisor
\newcommand{\Advisor}[1]{\gdef\@Advisor{#1}}
\newcommand{\AdvisorDegree}[1]{\gdef\@AdvisorDegree{#1}}
% The name of the consultant
\newcommand{\Consultant}[1]{\gdef\@Consultant{#1}}
\newcommand{\ConsultantDegree}[1]{\gdef\@ConsultantDegree{#1}}
% The name of the committee member 2
\newcommand{\MemberA}[1]{\gdef\@MemberA{#1}}
% The name of the committee member 3
\newcommand{\MemberB}[1]{\gdef\@MemberB{#1}}
% The name of the committee member 4
\newcommand{\MemberC}[1]{\gdef\@MemberC{#1}}
% The name of the committee member 5
\newcommand{\MemberD}[1]{\gdef\@MemberD{#1}}
% The name of the department chair
\newcommand{\DepRep}[1]{\gdef\@DepRep{#1}}
% The title of the department chair (allow for associate chair, etc.)
\newcommand{\DepRepTitle}[1]{\gdef\@DepRepTitle{#1}}
% The name of the department undergraduate coordinator
\newcommand{\UgradCoord}[1]{\gdef\@UgradCoord{#1}}
% The name of the dean
\newcommand{\Dean}[1]{\gdef\@Dean{#1}}
% The title of the dean
\newcommand{\DeanTitle}[1]{\gdef\@DeanTitle{#1}}
% The name of the honors dean
\newcommand{\HonorsDean}[1]{\gdef\@HonorsDean{#1}}
% Set default values for fields
\University{2010}
\Year{2010}
\Month{Month}
\Author{Author}
\TitleTop{Title}
% \Abstract{Abstract text goes here.}
% \Acknowledgments{Acknowledgment text goes here.}
% \degree{Bachelor of Science}
\docname{Master Thesis}
\Advisor{Advisor}
\MemberA{Committee Member A}
\MemberB{Committee Member B}
\MemberC{Committee Member C}
\MemberD{Committee Member D}
\DepRep{Department Chair Name}
\DepRepTitle{Chair}
\Dean{Dean Name}
\DeanTitle{Associate Dean}
\HonorsDean{Honors Dean Name}
\UgradCoord{Department Ugrad Coordinator }
% ---------------------------- options ------------------------------
% A command to switch to single spaced lines
\newcommand{\singlespace}{\renewcommand{\baselinestretch}{1}\small\normalsize}
\newcommand{\oneandhalfspace}{\renewcommand{\baselinestretch}{1.33}\small\normalsize}
% A command to switch to double spaced lines
\newcommand{\doublespace}{\renewcommand{\baselinestretch}{1.66}\small\normalsize}
% A command pirated from chngpage.sty
\DeclareRobustCommand{\ch@ngetext}{%
\setlength{\@colht}{\textheight}\setlength{\@colroom}{\textheight}%
\setlength{\vsize}{\textheight}\setlength{\columnwidth}{\textwidth}%
\if@twocolumn%
\advance\columnwidth-\columnsep \divide\columnwidth\tw@%
\@firstcolumntrue%
\fi%
\setlength{\hsize}{\columnwidth}%
\setlength{\linewidth}{\hsize}%
}
% A command to make margins right for the initial single sided business.
\newcommand{\preliminarymargins}{%
\addtolength{\textwidth}{-0.5in}%
\addtolength{\evensidemargin}{0.5in}%
\ch@ngetext%
}
% A command to fix the margins after the initial single sided business.
\newcommand{\fixmargins}{%
\addtolength{\textwidth}{0.5in}
\addtolength{\evensidemargin}{-0.5in}
\ch@ngetext%
}
% Define the preliminary section for a senior thesis.
% The senior option is essentially ignored since it is the default
\newcommand{\makepreliminarypages}{
\preliminarymargins
\titlepage
%\copyrightpage
%\seniorapprovalpage
\abstractpage
\fixmargins
\renewcommand{\clearemptydoublepage}{\cle@remptydoublep@ge}
}
% Define the honors thesis preliminary section if the 'honors' option is specified
\DeclareOption{honors}{
\renewcommand{\makepreliminarypages}{
\preliminarymargins
\honorstitlepage
\copyrightpage
\seniorapprovalpage
\abstractpage
% \acknowledgmentspage
\fixmargins
\renewcommand{\clearemptydoublepage}{\cle@remptydoublep@ge}
}
}
% Changes to masters thesis preliminary section if the 'masters' option is specified
\DeclareOption{masters}{
\degree{Master of Science}
\docname{thesis}
\renewcommand{\makepreliminarypages}{
\preliminarymargins
\titlepage
\copyrightpage
\masterapprovalpage
\acceptancepage
\abstractpage
% \acknowledgmentspage
\fixmargins
\renewcommand{\clearemptydoublepage}{\cle@remptydoublep@ge}
}
}
% Changes to PhD preliminary section if the 'phd' option is specified
\DeclareOption{phd}{
\degree{Doctor of Philosophy}
\docname{dissertation}
\renewcommand{\makepreliminarypages}{
\preliminarymargins
\titlepage
\copyrightpage
\phdapprovalpage
\acceptancepage
\abstractpage
% \acknowledgmentspage
\fixmargins
\renewcommand{\clearemptydoublepage}{\cle@remptydoublep@ge}
}
}
% --------------------- Some commands to handle the single sided preliminary pages ------------------
% Define the '\clearemptydoublepage' command to clear pages but not number any blank pages inserted.
% This is taken from the BYUThesis.cls file
\let\cle@rdoublep@ge\cleardoublepage
\newcommand{\cle@remptydoublep@ge}{
\clearpage
\if@twoside
\ifodd\c@page\else
\fi\fi
{\pagestyle{empty}\cle@rdoublep@ge}}
\newcommand{\clearemptydoublepage}{\cle@remptydoublep@ge}
% Create an abstract environment which is single sided, even in a double sided book.
% again, this was taken from BYUThesis.cls
\def\skip@bstr@ctp@ges{\relax}
\def\@@skip@bstr@ctp@ges{%
\if@twoside
\ifodd\c@page\else
\vbox{\vbox to \vsize{}}
\clearpage\fi
\else
\fi
\afterpage{\skip@bstr@ctp@ges}
}
\newenvironment{abstractenv}{
\def\skip@bstr@ctp@ges{\@@skip@bstr@ctp@ges}
\afterpage{\skip@bstr@ctp@ges}
\pagestyle{empty}
}
% Redefine above commands if etd option is specified. The blank pages make printing nice,
% but they don't want them in the submitted PDF
%\DeclareOption{etd}{
% \renewcommand{\clearemptydoublepage}{ \clearpage }
% \renewenvironment{abstractenv}{\afterpage{\thispagestyle{empty}}\pagestyle{empty}}{}
% }
% ------------------------ Load the class and needed packages ---------------------------------
% Load the book class
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{article}}
\ProcessOptions\relax
\LoadClass[a4,12pt]{article}
% The afterpage package is required to make single sided formal pages
% in a double sided environment
\RequirePackage{afterpage}
% Note: the hyperref package is required to make an appropriate ETD.
% However, we don't require it here since it is supposed to be the last
% package loaded and students may want to load other packages in the
% main tex file. So that this class file doesn't crash if the student
% forgets to load hyperref, we have used the following commands below:
%
% \providecommand\phantomsection{}
% \providecommand\pdfbookmark[3][]{}
%
% These commands provide dummy versions of the macros, but won't
% bother the real versions if the hyperref package is loaded in the
% tex file.
% ---------------------------- main code ----------------------------
% Set the margins to BYU specifications for the single sided preliminary
% pages. At the end of the \makepreliminarypages command we fix the margins
% to be appropriate alternating values for double sided printing (if selected).
% If the \makepreliminarypages macro is not run, this never gets fixed.
\setlength{\marginparwidth}{0pt}
\setlength{\marginparsep}{0pt}
\setlength{\oddsidemargin}{0.3in}
\setlength{\evensidemargin}{0in}
\setlength{\textwidth}{6in}
\setlength{\topmargin}{0in}
\setlength{\headheight}{0.125in}
\setlength{\headsep}{0.25in}
\setlength{\textheight}{8.625in}
\setlength{\footskip}{0.25in}
\raggedbottom
% Redefine the Table of Contents to deal with some blank page
% and bookmarking issues relating to ETD submission
%\let\TEMPtableofcontents\tableofcontents
%\renewcommand{\tableofcontents}{
% \clearemptydoublepage
%\providecommand\phantomsection{} \phantomsection
%\addcontentsline{toc}{chapter}{Оглавление}
%\TEMPtableofcontents
%}
% Redefine the List of Figures to deal with some blank page
% and bookmarking issues
%\let\TEMPlistoffigures\listoffigures
%\renewcommand{\listoffigures}{
% \providecommand\phantomsection{} \phantomsection
%\addcontentsline{toc}{chapter}{List of Figures}
%\TEMPlistoffigures
%}
% Redefine the Bibliography to deal with a bookmarking issues
\let\TEMPbibliography\bibliography
\renewcommand{\bibliography}{
\cleardoublepage \phantomsection
\TEMPbibliography
}
%---------------------------- The Preliminary Page Definitions --------------------------
% ============================== Title Page ===============================
\renewcommand{\titlepage}{
\begin{center}
\thispagestyle{empty}
\providecommand\pdfbookmark[3][]{} \pdfbookmark[1]{\@TitlePageText}{bm:Title}
\includegraphics[height=4cm,keepaspectratio]{src/assets/msu_title.png}\\[0.1cm]
%\vspace*{0.375in}
\@University\\
\@Faculty\\
\@Chair\\
\ifdefined\@Lab{\scriptsize \@Lab\\[\baselineskip]}\fi
\vspace{2.5cm}
{\large \@Author \\[\baselineskip]
%\HRule \\[0.4cm]
\textbf{\@TitleTop}\\
\ifdefined\@TitleMiddle\textbf{\@TitleMiddle}\\\fi
\ifdefined\@TitleBottom\textbf{\@TitleBottom}\\\fi
\ifdefined\@TitleTopEng\textbf{\\\@TitleTopEng}\\\fi
\ifdefined\@TitleMiddleEng\textbf{\@TitleMiddleEng}\\\fi
\ifdefined\@TitleBottomEng\textbf{\@TitleBottomEng}\\\fi}
\vspace{1.5cm}
\@docname\\
%\HRule \\[1.5cm]
\normalsize
\vfill
\begin{flushright}
%\emph{\@AuthorText:\\}
%{\small \@GrText~\@AcadGroup\\}
%{\large \@Author \\[\baselineskip]}
\textbf{\@AdvisorText:\\}
{\large ~ \@AdvisorDegree~ \@Advisor\\}
\ifdefined\@Consultant
\textbf{\\\@ConsultantText:\\}
{\large ~ \ifdefined\@ConsultantDegree\@ConsultantDegree\fi~ \@Consultant\\}
\fi
\end{flushright}
\vfill
%\vskip0.667in
%\@degree \\
\vfill
\@City, \@Year \\[\baselineskip]
\end{center}
\cleardoublepage
}
% ============================== Honors Title Page ========================
\newcommand{\honorstitlepage}{
\thispagestyle{empty}
\begin{center}
%\providecommand\pdfbookmark[3][]{} \pdfbookmark[0]{Title Page}{bm:Title}
\vspace*{0.375in}
\@TitleTop\\[\baselineskip]
\@TitleBottom\\
\vfill
\@Author,
\vfill
%Submitted to Brigham Young University in partial fulfillment\\[\baselineskip]
%of graduation requirements for University Honors\\[2\baselineskip]
%Department of Physics and Astronomy\\[\baselineskip]
%\@Month~\@Year
\@City,~\@Year
\vfill
\end{center}
\parbox[t]{2.75in}{
Advisor: \@Advisor \\[.5\baselineskip]
Signature: \hrulefill}
\hfill
\parbox[t]{2.75in}{
Honors Dean: \@HonorsDean \\[.5\baselineskip]
Signature: \hrulefill}
\clearemptydoublepage
}
% ======================== Copyright page ===============================
\newcommand{\copyrightpage}{
\thispagestyle{empty}
\providecommand\pdfbookmark[3][]{} \pdfbookmark[0]{Copyright}{bm:Copyright}
\vspace*{\fill}
\begin{center}
Copyright \copyright\ \@Year~\@Author\\[\baselineskip]
All Rights Reserved\\[5\baselineskip]
\end{center}
\vspace{1in}
\vfill
\clearemptydoublepage
}
% =============================== Approval page =======================
\newcommand{\datebox}{
\parbox[t]{1.5in}{
\ \\[2\baselineskip]
\rule{1.5in}{0.4pt}\\
\@DateText
}
}
\newcommand{\signaturebox}[1]{
\parbox[t]{3.6in}{
\ \\[2\baselineskip]
\rule{3.6in}{0.4pt}\\
#1
}
}
\newcommand{\phdapprovalpage}{
\thispagestyle{empty}
\begin{center}
\providecommand\pdfbookmark[3][]{} \pdfbookmark[0]{Graduate Committee Approval}{bm:ComAp}
\vspace*{0.375in}
BRIGHAM YOUNG UNIVERSITY\\[3\baselineskip]
GRADUATE COMMITTEE APPROVAL\\[5\baselineskip]
of a \@docname~submitted by\\[\baselineskip]
\@Author\\[2\baselineskip]
\end{center}
\noindent
This dissertation has been read by each member of the following graduate committee
and by majority vote has been found to be satisfactory.\\[\baselineskip]
\datebox\hfill\signaturebox{\@Advisor, Chair}\\
\datebox\hfill\signaturebox{\@MemberA}\\
\datebox\hfill\signaturebox{\@MemberB}\\
\datebox\hfill\signaturebox{\@MemberC}\\
\datebox\hfill\signaturebox{\@MemberD}
\vfill
\clearemptydoublepage
}
\newcommand{\masterapprovalpage}{
\thispagestyle{empty}
\begin{center}
\providecommand\pdfbookmark[3][]{} \pdfbookmark[0]{Graduate Committee Approval}{bm:ComAp}
\vspace*{0.375in}
BRIGHAM YOUNG UNIVERSITY\\[3\baselineskip]
GRADUATE COMMITTEE APPROVAL\\[5\baselineskip]
of a \@docname~submitted by\\[\baselineskip]
\@Author\\[2\baselineskip]
\end{center}
\noindent
This thesis has been read by each member of the following graduate committee
and by majority vote has been found to be satisfactory.\\[\baselineskip]
\datebox\hfill\signaturebox{\@Advisor, Chair}\\
\datebox\hfill\signaturebox{\@MemberA}\\
\datebox\hfill\signaturebox{\@MemberB}\\
\vfill
\clearemptydoublepage
}
\newcommand{\seniorapprovalpage}{
\thispagestyle{empty}
\begin{center}
\providecommand\pdfbookmark[3][]{} \pdfbookmark[0]{Department Approval}{bm:DepAp}
\vspace*{0.375in}
\@University\\[3\baselineskip]
{\bf \@ApprovalText}\\[5\baselineskip]
\@docname~\@ApprovalAText\\[\baselineskip]
{\em \@AuthorGenitiveCase}\\[2\baselineskip]
\@ApprovalBText
\\[\baselineskip]
\end{center}
\datebox\hfill\signaturebox{\@Advisor, \@AdvisorText}\\
%\datebox\hfill\signaturebox{\@UgradCoord, Research Coordinator}\\
%\datebox\hfill\signaturebox{\@DepRep, \@DepRepTitle}\\
\vfill
\clearemptydoublepage
}
% ======================= Acceptance Page ============================
\newcommand{\acceptancepage}{
\thispagestyle{empty}%
\begin{center}
\providecommand\pdfbookmark[3][]{} \pdfbookmark[0]{Acceptance Page}{bm:Accept}
\vspace*{0.375in}
BRIGHAM YOUNG UNIVERSITY\\[3\baselineskip]
\end{center}%
\noindent%
As chair of the candidate's graduate committee, I have read the
\@docname\ of \@Author \ in its final form and have found
that (1) its format, citations, and bibliographical style are
consistent and acceptable and fulfill university and department
style requirements; (2) its illustrative materials including
figures, tables, and charts are in place; and (3) the final
manuscript is satisfactory to the graduate committee
and is ready for submission to the university library.\\[2\baselineskip]
\datebox\hfill\signaturebox{\@Advisor\\Chair, Graduate Committee}
\vskip 0pt plus 2fill
\noindent Accepted for the Department\par\hfill%
\signaturebox{\@DepRep, \@DepRepTitle\\Department of Physics and
Astronomy }{} \vfill \noindent Accepted for the College\par\hfill
\signaturebox{\@Dean, \@DeanTitle \\
College of Physical and Mathematical Sciences}
\clearemptydoublepage
}
% ========================= Abstract ===================================
\newcommand{\abstractpage}{
\begin{abstractenv}
\ifdefined\@Abstract
\begin{center}
\providecommand\pdfbookmark[3][]{} \pdfbookmark[1]{\@AbstractText}{bm:Abstract}
\vspace*{0.375in}
{\bf \@AbstractText}\\[1\baselineskip]
\@TitleTop
\ifdefined\@TitleMiddle\\\@TitleMiddle\fi
\ifdefined\@TitleBottom\\\@TitleBottom\fi\\[1\baselineskip]
{\em \@Author}\\[\baselineskip]
\end{center}
\renewcommand{\baselinestretch}{1.33}\small\normalsize
\@Abstract
\cleardoublepage
\fi
\ifdefined\@AbstractEng
\begin{center}
\providecommand\pdfbookmark[3][]{} \pdfbookmark[1]{Abstract}{bm:AbstractEng}
\vspace*{0.375in}
{\bf Abstract}\\[1\baselineskip]
\@TitleTopEng
\ifdefined\@TitleMiddleEng\\\@TitleMiddleEng\fi
\ifdefined\@TitleBottomEng\\\@TitleBottomEng\fi\\[1\baselineskip]
{\em \@AuthorEng}\\[\baselineskip]
\end{center}
\renewcommand{\baselinestretch}{1.33}\small\normalsize
\@AbstractEng
\cleardoublepage
\fi
\ifdefined\@Acknowledgments\acknowledgmentspage\fi
\end{abstractenv}
}
% ========================= Acknowledgments ==============================
\newcommand{\acknowledgmentspage}{
\begin{center}
\providecommand\pdfbookmark[3][]{} \pdfbookmark[1]{\@AcknowledgmentsText}{bm:Acknowledgments}
\vspace*{0.375in}
{\bf \@AcknowledgmentsText}\\[1\baselineskip]
\end{center}
\renewcommand{\baselinestretch}{1.33}\small\normalsize
\@Acknowledgments
\cleardoublepage
}
\RequirePackage{float}
\newfloat{listing}{thp}{lol}
\floatname{listing}{\@ListingText}
\newcommand{\ListingText}[1]{\gdef\@ListingText{#1}}
\RequirePackage{algorithm}
\newcommand{\AlgorithmText}[1]{\gdef\@AlgorithmText{#1}}
\renewcommand{\ALG@name}{\@AlgorithmText}
\RequirePackage{algorithmicx} % Для записи алгоритмов в псевдокоде
\RequirePackage[noend]{algpseudocode}
\algnewcommand{\IfThenElse}[3]{% \IfThenElse{<if>}{<then>}{<else>}
\State \algorithmicif\ #1\ \algorithmicthen\ #2\ \algorithmicelse\ #3}
\RequirePackage{titlesec}
\RequirePackage[unicode, hidelinks]{hyperref}
\hypersetup{colorlinks=false}
\RequirePackage{cite}
\RequirePackage{bookmark}
\newcommand{\PDFTitle}{\@Author~-~\@TitleTop\ifdefined\@TitleMiddle~\@TitleMiddle\fi\ifdefined\@TitleBottom~\@TitleBottom\fi}
\newcommand{\PDFAuthor}{\@Author}
\emergencystretch 3em