diff --git a/Definitions.tex b/Definitions.tex new file mode 100755 index 0000000..f4ef9f3 --- /dev/null +++ b/Definitions.tex @@ -0,0 +1,147 @@ + +%% ---------------------------------------------------------------- +%% Definitions.tex +%% ---------------------------------------------------------------- +\newcommand{\BibTeX}{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}} +%% People +\newcounter{address} +\setcounter{address}{1} +\renewcommand{\theaddress}{\textsuperscript{\fnsymbol{address}}} +\newcommand{\address}[1]{\refstepcounter{address}\theaddress#1\\} +\newcommand{\Name}[3]{\texorpdfstring{\href{mailto:#3}{#2}#1}{#2}\xspace} + +\newcommand{\SamPerry}[1]{\Name{#1}{Samuel Perry }{ s.w.perry@soton.ac.uk }} + + +%% Dingbats +\newcommand{\tick}{\ding{51}} +\newcommand{\cross}{\ding{55}} + +%% Calculus +\newcommand{\pd}[2]{\ensuremath{\frac{\partial #1}{\partial #2}}\xspace} +\newcommand{\fd}[2]{\ensuremath{\frac{d #1}{d #2}}\xspace} +\newcommand{\dint}{\ensuremath{\int\!\!\!\int}\xspace} +\newcommand{\tint}{\ensuremath{\int\!\!\!\int\!\!\!\int}\xspace} + +%% Math Sets +\newcommand{\Q}[1]{\ensuremath{\mathbb{#1}}\xspace} +\newcommand{\R}{\Q{R}} + +%% Matrix, Vector +\newcommand{\V}[1]{\ensuremath{\boldsymbol{#1}}\xspace} +\newcommand{\M}[1]{\ensuremath{\boldsymbol{#1}}\xspace} +\newcommand{\0}{\V{0}} +\newcommand{\1}{\V{1}} +\newcommand{\I}{\M{I}} + +%% Math Functions +\newcommand{\F}[1]{\ensuremath{\mathrm{#1}}\xspace} +\newcommand{\sgn}{\F{sgn}} +\newcommand{\tr}{\F{trace}} +\newcommand{\diag}{\F{diag}} + +%% Math Names +\newcommand{\N}[1]{\ensuremath{\mathit{#1}}\xspace} + +%% Data +\newcommand{\mc}[1]{\ensuremath{\mathcal{#1}}\xspace} +\newcommand{\Hyp}{\mc{H}} +\newcommand{\D}{\mc{D}} + +%% Kernel +\newcommand{\K}{\M{K}} +\newcommand{\eins}{\texorpdfstring{\ensuremath{\epsilon}}{\textepsilon}-insensitive\xspace} +\newcommand{\e}{\ensuremath{\epsilon}\xspace} +\newcommand{\Bxi}{\ensuremath{\boldsymbol{\xi}}\xspace} +\newcommand{\Kanova}{\ensuremath{\mathit{K_{ANOVA}}}\xspace} +\newcommand{\Kspline}{\ensuremath{\mathit{K_{spline}}}\xspace} + +%% Bayesian +\newcommand{\MP}{\ensuremath{\mathit{{\scriptscriptstyle \hspace{-1.5pt}M\hspace{-1.5pt}P}}}\xspace} +\newcommand{\ML}{\ensuremath{\mathit{{\scriptscriptstyle \hspace{-1.5pt}M\hspace{-1.5pt}L}}}\xspace} +\newcommand{\Qw}{\ensuremath{Q_{\w}(\w)}\xspace} +\newcommand{\Qa}{\ensuremath{Q_{\Ba}(\Ba)}\xspace} +\newcommand{\Qb}{\ensuremath{Q_{\beta}(\beta)}\xspace} +\newcommand{\wMPab}{\ensuremath{\w_{\MP|\bar {\Ba},\bar \beta}}\xspace} +\newcommand{\wMP}{\ensuremath{\w_{\MP}}\xspace} +\newcommand{\yMP}{\ensuremath{y_{\MP}}\xspace} +\newcommand{\BaMP}{\ensuremath{\Ba_{\hspace{1pt}\MP}}\xspace} +\newcommand{\aMP}{\ensuremath{\alpha_{\hspace{1pt}\MP}}\xspace} +\newcommand{\bMP}{\ensuremath{\beta_{\hspace{1pt}\MP}}\xspace} +\newcommand{\Sab}{\ensuremath{\M{\Sigma}_{\bar \Ba,\bar \beta}}\xspace} +\newcommand{\Ba}{\ensuremath{\boldsymbol{\alpha}}\xspace} +\newcommand{\Bb}{\ensuremath{\boldsymbol{\beta}}\xspace} +\newcommand{\Bm}{\ensuremath{\boldsymbol{\mu}}\xspace} +\newcommand{\BL}{\ensuremath{\boldsymbol{\Lambda}}\xspace} +\newcommand{\BPhi}{\ensuremath{\boldsymbol{\Phi}}\xspace} +\newcommand{\SMP}{\ensuremath{\M{\Sigma}_{\MP}}\xspace} + +\newcommand{\Pa}{\ensuremath{P(\alpha|\mathcal{H})}\xspace} +\newcommand{\Pb}{\ensuremath{P(\beta|\mathcal{H})}\xspace} +\newcommand{\Pab}{\ensuremath{P(\alpha,\beta|\mathcal{H})}\xspace} +\newcommand{\Pw}{\ensuremath{P(\w|\mathcal{H})}\xspace} +\newcommand{\PD}{\ensuremath{P(\D|\mathcal{H})}\xspace} +\newcommand{\PwIa}{\ensuremath{P(\w|\alpha,\mathcal{H})}\xspace} +\newcommand{\PDIwb}{\ensuremath{P(\D|\w,\beta,\mathcal{H})}\xspace} +\newcommand{\PDwab}{\ensuremath{P(\D,\w,\alpha,\beta|\mathcal{H})}\xspace} +\newcommand{\PDIw}{\ensuremath{P(\D|\w,\mathcal{H})}\xspace} +\newcommand{\PwID}{\ensuremath{P(\w|\D,\mathcal{H})}\xspace} +\newcommand{\PwabID}{\ensuremath{P(\w,\alpha,\beta|\D,\mathcal{H})}\xspace} + +\newcommand{\PanH}{\ensuremath{P(\alpha)}\xspace} +\newcommand{\PbnH}{\ensuremath{P(\beta)}\xspace} +\newcommand{\PabnH}{\ensuremath{P(\alpha,\beta)}\xspace} +\newcommand{\PwnH}{\ensuremath{P(\w)}\xspace} +\newcommand{\PDnH}{\ensuremath{P(\D)}\xspace} +\newcommand{\PwIanH}{\ensuremath{P(\w|\alpha)}\xspace} +\newcommand{\PDIwbnH}{\ensuremath{P(\D|\w,\beta)}\xspace} +\newcommand{\PDwabnH}{\ensuremath{P(\D,\w,\Ba,\beta)}\xspace} +\newcommand{\PDIwnH}{\ensuremath{P(\D|\w)}\xspace} +\newcommand{\PwIDnH}{\ensuremath{P(\w|\D)}\xspace} +\newcommand{\PwabIDnH}{\ensuremath{P(\w,\alpha,\beta|\D)}\xspace} + +\newcommand{\PDwBab}{\ensuremath{P(\D,\w,\Ba,\beta|\mathcal{H})}\xspace} +\newcommand{\PwIBa}{\ensuremath{P(\w|\Ba,\mathcal{H})}\xspace} +\newcommand{\PBab}{\ensuremath{P(\Ba,\beta|\mathcal{H})}\xspace} +\newcommand{\PwBabID}{\ensuremath{P(\w,\Ba,\beta|\D,\mathcal{H})}\xspace} + +\newcommand{\PBanH}{\ensuremath{P(\Ba)}\xspace} +\newcommand{\PwIBanH}{\ensuremath{P(\w|\Ba)}\xspace} + +%% Snakes +\newcommand{\Esnake}{\ensuremath{\mathit{E_{snake}}}\xspace} +\newcommand{\Eimage}{\ensuremath{\mathit{E_{image}}}\xspace} +\newcommand{\Econt}{\ensuremath{\mathit{E_{cont}}}\xspace} +\newcommand{\Ecurv}{\ensuremath{\mathit{E_{curv}}}\xspace} +\newcommand{\Eint}{\ensuremath{\mathit{E_{int}}}\xspace} +\newcommand{\Eext}{\ensuremath{\mathit{E_{ext}}}\xspace} +\newcommand{\Eterm}{\ensuremath{\mathit{E_{term}}}\xspace} +\newcommand{\Eline}{\ensuremath{\mathit{E_{line}}}\xspace} +\newcommand{\Eedge}{\ensuremath{\mathit{E_{edge}}}\xspace} +\newcommand{\Econ}{\ensuremath{\mathit{E_{con}}}\xspace} +\newcommand{\Eangle}{\ensuremath{\mathit{E_{angle}}}\xspace} +\newcommand{\Elshape}{\ensuremath{\mathit{E_{lshape}}}\xspace} +\newcommand{\Eedgedir}{\ensuremath{\mathit{E_{edgedir}}}\xspace} +\newcommand{\Emodel}{\ensuremath{\mathit{E_{model}}}\xspace} +\newcommand{\wte}{\ensuremath{\mathit{w_{term}}}\xspace} +\newcommand{\wli}{\ensuremath{\mathit{w_{line}}}\xspace} +\newcommand{\wed}{\ensuremath{\mathit{w_{edge}}}\xspace} +\newcommand{\wco}{\ensuremath{\mathit{w_{con}}}\xspace} + +%% Environments +\newcounter{alg} +\newenvironment{algorithm}[1] +{ + \stepcounter{alg} + \begin{table}[htb] + \centering + \begin{tabular}[t]{ll} + \hline&\\ + \multicolumn{2}{l}{\bf Algorithm \arabic{alg}: #1}\\&\\ +} { + &\\ + \hline + \end{tabular} + \end{table} +} + diff --git a/Preamble.tex b/Preamble.tex new file mode 100644 index 0000000..25df1f8 --- /dev/null +++ b/Preamble.tex @@ -0,0 +1,157 @@ +% Koma-script replacement article document class +\documentclass{ecsreport} + +% List customisation package +\usepackage{enumitem} +\usepackage[refpage]{nomencl} + +% Format hyphenations with britain specific formatting +\usepackage[british]{babel} +% Bibliographic citation engine +\usepackage{natbib} % Use Natbib style for the refs. +% Package for correct handeling of urls, email addresses etc... +\usepackage{url} +% Allows for manual handeling of object and figure placement +\usepackage{float} +% Handles captioning of objects and figures +\usepackage{caption} +% Place captions on top of table +\restylefloat{table} + +\usepackage[table]{xcolor} +\usepackage{booktabs} +\usepackage{tabulary} +\usepackage[pass]{geometry} +\usepackage{pdflscape} +\usepackage{graphicx} + +% Gantt chart +\usepackage{pgfgantt} +\usepackage{tikz} +\usepackage{varwidth} +\usepackage{ragged2e} +\newganttlinktype{rdldr*}{% + \draw [/pgfgantt/link] + (\xLeft, \yUpper) -- + (\xLeft + \ganttvalueof{link bulge 1} * \ganttvalueof{x unit}, + \yUpper) -- + ($(\xLeft + \ganttvalueof{link bulge 1} * \ganttvalueof{x unit}, + \yUpper)!% + \ganttvalueof{link mid}!% + (\xLeft + \ganttvalueof{link bulge 1} * \ganttvalueof{x unit}, + \yLower)$) -- + ($(\xRight - \ganttvalueof{link bulge 2} * \ganttvalueof{x unit}, + \yUpper)!% + \ganttvalueof{link mid}!% + (\xRight - \ganttvalueof{link bulge 2} * \ganttvalueof{x unit}, + \yLower)$) -- + (\xRight - \ganttvalueof{link bulge 2} * \ganttvalueof{x unit}, + \yLower) -- + (\xRight, \yLower);% +} +\ganttset{ + link bulge 1/.link=/pgfgantt/link bulge, + link bulge 2/.link=/pgfgantt/link bulge} + +\usetikzlibrary{arrows,positioning,shapes.geometric} + +\newcommand{\dtoprule}{\specialrule{1pt}{0pt}{1.4pt}% + \specialrule{1pt}{0pt}{0pt}% + } +\newcommand{\dbottomrule}{\specialrule{1pt}{0pt}{1.4pt}% + \specialrule{1pt}{0pt}{\belowrulesep}% + } +\newcommand{\emidrule}{\specialrule{0.5pt}{0pt}{1.4pt}% + } +% Allow counters for footers to be reset per page +\usepackage{perpage} +\MakePerPage{footnote} +% Allows for manual control of abstract environment +\usepackage{abstract} +% Allow for inserting of images +\usepackage{graphicx} +% Create hyperlinks in bibliography +\usepackage{hyperref} +% Enhanced mathemeatical formating +\usepackage{amsmath} +% Included for issues to do with fonts and accents. Nothing worth worrying +% about... +\usepackage[T1]{fontenc} +% Write in utf-8. Just leave it and don't worry about it... +\usepackage[utf8]{inputenc} +% Used for adding lorum ipsum filler text +\usepackage{blindtext} +% Set path to included figures and graphics +\graphicspath{./resources/} + +\usepackage{tipa} +% Set path to bibliography location +% +% Post-process bibliography for special characters - a workaround for a +% problem with Mendley's handling of certain characters in hyperlinks +% \DeclareSourcemap{ +% \maps{ +% \map{ % Replaces '{\_}', '{_}' or '\_' with just '_' +% \step[fieldsource=url, +% match=\regexp{\{\\\_\}|\{\_\}|\\\_}, +% replace=\regexp{\_}] +% } +% \map{ % Replaces '{'$\sim$'}', '$\sim$' or '{~}' with just '~' +% \step[fieldsource=url, +% match=\regexp{\{\$\\sim\$\}|\{\~\}|\$\\sim\$}, +% replace=\regexp{\~}] +% } +% } +% } +% +% % Place abstract on title page rather than on it's own separate page +% \newsavebox{\abstractbox} +% \renewenvironment{abstract} +% {\begin{lrbox}{0}\begin{minipage}{\textwidth} +% \begin{center}\normalfont\sectfont\abstractname\end{center}\quotation} +% {\endquotation\end{minipage}\end{lrbox}% +% \global\setbox\abstractbox=\box0 } +% +% % No idea what this does... +% \usepackage{etoolbox} +% \makeatletter +% \expandafter\patchcmd\csname\string\maketitle\endcsname +% {\vskip\z@\@plus3fill} +% {\vskip\z@\@plus2fill\box\abstractbox\vskip\z@\@plus1fill} +% {}{} +% \makeatother +% +% % Declare \citeyearpar command for adding year (with paraentheses) without +% % author's name as reference +% \DeclareCiteCommand{\citeyearpar} +% {} +% {\mkbibparens{\bibhyperref{\printdate}}} +% {\multicitedelim} +% {} +% +% MATLAB Code block stuff... +\usepackage{color} +\usepackage{listings} + +\definecolor{dkgreen}{rgb}{0,0.6,0} +\definecolor{gray}{rgb}{0.5,0.5,0.5} +\definecolor{codegreen}{rgb}{0,0.6,0} +\definecolor{codegray}{rgb}{0.5,0.5,0.5} +\definecolor{codepurple}{rgb}{0.58,0,0.82} +\definecolor{backcolour}{rgb}{0.95,0.95,0.92} + +\lstset{language=Matlab, + keywords={break,case,catch,continue,else,elseif,end,for,function, + global,if,otherwise,persistent,return,switch,try,while}, + basicstyle=\ttfamily, + keywordstyle=\color{blue}, + commentstyle=\color{gray}, + stringstyle=\color{dkgreen}, + numbers=left, + numberstyle=\tiny\color{gray}, + stepnumber=1, + numbersep=10pt, + backgroundcolor=\color{white}, + tabsize=4, + showspaces=false, + showstringspaces=false} diff --git a/Report.tex b/Report.tex new file mode 100755 index 0000000..dee4dbf --- /dev/null +++ b/Report.tex @@ -0,0 +1,87 @@ + +%% ---------------------------------------------------------------- +%% Article.tex +%% ---------------------------------------------------------------- +\input{Preamble} % Include your abbreviations +\graphicspath{{./resources/}} +\hypersetup{colorlinks=true} % Set to false for black/white printing +\input{Definitions} % Include your abbreviations +%% ---------------------------------------------------------------- +\begin{document} + +\frontmatter +\title {Speech in noise test battery development plan} +\authors {\texorpdfstring + {\href{mailto:s.w.perry@soton.ac.uk}{Samuel W. Perry}} + {Samuel W. Perry} + } +\addresses {\groupname\\\deptname\\\univname} +\date {\today} +\subject {} +\keywords {} +\maketitle +\mainmatter +%% ---------------------------------------------------------------- +\section*{Outline}\label{Section:Introduction} +\begin{itemize} + \item Initial task is to develop a speech in noise test such as BKB in a + portable format that could be deployed on a standard Windows (or Mac) + based system easily, thus improving on the original Matlab implementation. + \item Results of test presented on screen to clinician in initial + implementation, no further management of data. + \item Further development then focused on management of patient data using + Southampton's database. This is currently the most significant unknown + in the project due to lack of details on database format and lack of + prior experience with databases, relative to other skills. + \item Other data export options may or may not be possible (such as + exporting to an excel file). This will be determined through parallel + work on the EHS project. + \item Subsequent tests will then be implemented based on priority, liasing + with clinicians to determine the details of any other features that may + be of use. + \item An estimated final delivery of early 2020 is proposed, however this + is highly dependent on unknown factors such as the database and the + number of speech in noise tests to be developed. Additionally, as this + project is running in parallel with both the developer's PhD work and + the EHS project, other projects may need to be prioritised at times + based on their progress. +\end{itemize} + +\begin{landscape} +\section*{Project timeline 1--10 months}\label{Section:Gantt} +\begin{figure}[H] +\begin{tikzpicture} +\begin{ganttchart}[ +hgrid, +vgrid, +time slot format=isodate-yearmonth, +%progress label text= {\quad\pgfmathprintnumber[precision=0,verbatim]{#1}\%}, +milestone label font=\tiny, +%group label font=\tiny, +%title label font=\tiny, +bar label node/.style={text width=5cm,align=right,font=\scriptsize\RaggedLeft,anchor=east}, +milestone label node/.style={text width=5cm,align=right,font=\scriptsize\RaggedLeft,anchor=east}, +%group label node/.style={text width=3cm,align=right,font=\scriptsize\RaggedLeft,anchor=east} +time slot unit=month, +x unit=1.5cm, +milestone/.append style={xscale=0.4} % 0.6/1.4 ≈ 0.42857 +]{2019-05}{2020-02} +\gantttitlecalendar{year, month} \\ +% \ganttbar[bar/.append style={dashed}]{}{2019-02}{2019-09} +\ganttbar{Verify plans for implementation}{2019-05}{2019-05}\\ +\ganttbar{Develop overarching framework}{2019-06}{2019-07}\\ +\ganttbar{Port first test from existing implementation}{2019-08}{2019-09}\\ +\ganttmilestone{Useable test ready for testing in CI center}{2019-09}\\ +\ganttbar[bar/.append style={dashed}]{Integrate database}{2019-10}{2019-11}\\ +\ganttmilestone{Database integrated test ready for testing in CI center}{2019-11}\\ +\ganttbar{Port other tests from existing implementation}{2019-12}{2020-01} +\ganttbar[bar/.append style={dashed}]{}{2020-02}{2020-02}\\ +\ganttbar{Finalisation and further testing}{2020-02}{2020-02}\\ +\end{ganttchart} +\end{tikzpicture} +\caption*{Block tasks are unlikely to change in terms of timescales; dashed tasks may change due to technical challenges that are currently unknown; diamonds represent milestones} +\label{gantt} +\end{figure} +\end{landscape} +\end{document} +% ---------------------------------------------------------------- diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..00928c9 --- /dev/null +++ b/build.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +latexmk ./Report.tex -pvc -xelatex -halt-on-error diff --git a/ecs.bst b/ecs.bst new file mode 100755 index 0000000..0ee1af5 --- /dev/null +++ b/ecs.bst @@ -0,0 +1,1345 @@ + +%% ---------------------------------------------------------------- +%% ecs.bst +%% ---------------------------------------------------------------- +%% File: `ecs.bst' +%% A modification of `plainnat.bst' for use with natbib package +%% +%% Copyright 1993-1999 Patrick W Daly +%% Max-Planck-Institut f\"ur Aeronomie +%% Max-Planck-Str. 2 +%% D-37191 Katlenburg-Lindau +%% Germany +%% E-mail: daly@linmpi.mpg.de +%% +%% This program can be redistributed and/or modified under the terms +%% of the LaTeX Project Public License Distributed from CTAN +%% archives in directory macros/latex/base/lppl.txt; either +%% version 1 of the License, or any later version. +%% +%% Includes field URL for Internet addresses +%% +ENTRY + { address + author + booktitle + chapter + edition + editor + howpublished + institution + isbn + issn + journal + key + month + note + number + organization + pages + publisher + school + series + title + type + url + volume + year + } + {} + { label extra.label sort.label short.list } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { add.period$ " " * write$ } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "{\em " swap$ * "}" * } + if$ +} + +INTEGERS { nameptr namesleft numnames } + +FUNCTION {format.names} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't := + nameptr #1 > + { namesleft #1 > + { ", " * t * } + { numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.key} +{ empty$ + { key field.or.null } + { "" } + if$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names } + if$ +} + +FUNCTION {format.editors} +{ editor empty$ + { "" } + { editor format.names + editor num.names$ #1 > + { ", editors" * } + { ", editor" * } + if$ + } + if$ +} + +FUNCTION {format.isbn} +{ isbn empty$ + { "" } + { new.block "ISBN " isbn * } + if$ +} + +FUNCTION {format.issn} +{ issn empty$ + { "" } + { new.block "ISSN " issn * } + if$ +} + +FUNCTION {format.url} +{ "" +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { url empty$ + { title "t" change.case$ } + { "\href{" url * "}{" * title "t" change.case$ * "}" * } + if$ + } + if$ +} + +FUNCTION {format.full.names} +{'s := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{vv~}{ll}" format.name$ 't := + nameptr #1 > + { + namesleft #1 > + { ", " * t * } + { + numnames #2 > + { "," * } + 'skip$ + if$ + t "others" = + { " et~al." * } + { " and " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {author.editor.full} +{ author empty$ + { editor empty$ + { "" } + { editor format.full.names } + if$ + } + { author format.full.names } + if$ +} + +FUNCTION {author.full} +{ author empty$ + { "" } + { author format.full.names } + if$ +} + +FUNCTION {editor.full} +{ editor empty$ + { "" } + { editor format.full.names } + if$ +} + +FUNCTION {make.full.names} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.full + { type$ "proceedings" = + 'editor.full + 'author.full + if$ + } + if$ +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem[" write$ + label write$ + ")" make.full.names duplicate$ short.list = + { pop$ } + { * } + if$ + "]{" * write$ + cite$ write$ + "}" write$ + newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {format.date} +{ year duplicate$ empty$ + { "empty year in " cite$ * warning$ + pop$ "" } + 'skip$ + if$ + month empty$ + 'skip$ + { month + " " * swap$ * + } + if$ + extra.label * +} + +FUNCTION {format.btitle} +{ title emphasize +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { "volume" volume tie.or.space.connect + series empty$ + 'skip$ + { " of " * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { output.state mid.sentence = + { "number" } + { "Number" } + if$ + number tie.or.space.connect + series empty$ + { "there's a number but no series in " cite$ * warning$ } + { " in " * series * } + if$ + } + if$ + } + { "" } + if$ +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { edition "l" change.case$ " edition" * } + { edition "t" change.case$ " edition" * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { "pages" pages n.dashify tie.or.space.connect } + { "page" pages tie.or.space.connect } + if$ + } + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { "\penalty0 (" number * ")" * * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ":\penalty0 " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.chapter.pages} +{ chapter empty$ + 'format.pages + { type empty$ + { "chapter" } + { type "l" change.case$ } + if$ + chapter tie.or.space.connect + pages empty$ + 'skip$ + { ", " * format.pages * } + if$ + } + if$ +} + +FUNCTION {format.in.ed.booktitle} +{ booktitle empty$ + { "" } + { editor empty$ + { "In " booktitle emphasize * } + { "In " format.editors * ", " * booktitle emphasize * } + if$ + } + if$ +} + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { "Technical Report" } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {format.article.crossref} +{ key empty$ + { journal empty$ + { "need key or journal for " cite$ * " to crossref " * crossref * + warning$ + "" + } + { "In {\em " journal * "\/}" * } + if$ + } + { "In " key * } + if$ + " \citep{" * crossref * "}" * +} + +FUNCTION {format.book.crossref} +{ volume empty$ + { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ + "In " + } + { "Volume" volume tie.or.space.connect + " of " * + } + if$ + editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { series empty$ + { "need editor, key, or series for " cite$ * " to crossref " * + crossref * warning$ + "" * + } + { "{\em " * series * "\/}" * } + if$ + } + { key * } + if$ + } + 'skip$ + if$ + ", \citet{" * crossref * "}" * +} + +FUNCTION {format.incoll.inproc.crossref} +{ editor empty$ + editor field.or.null author field.or.null = + or + { key empty$ + { booktitle empty$ + { "need editor, key, or booktitle for " cite$ * " to crossref " * + crossref * warning$ + "" + } + { "In {\em " booktitle * "\/}" * } + if$ + } + { "In " key * } + if$ + } + { "In " } + if$ + " \citet{" * crossref * "}" * +} + +FUNCTION {article} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { journal emphasize "journal" output.check + format.vol.num.pages output + format.date "year" output.check + } + { format.article.crossref output.nonnull + format.pages output + } + if$ + format.issn output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {book} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {booklet} +{ output.bibitem + format.authors output + author format.key output + new.block + format.title "title" output.check + howpublished address new.block.checkb + howpublished output + address output + format.date output + format.isbn output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {inbook} +{ output.bibitem + author empty$ + { format.editors "author and editor" output.check + editor format.key output + } + { format.authors output.nonnull + crossref missing$ + { "author and editor" editor either.or.check } + 'skip$ + if$ + } + if$ + new.block + format.btitle "title" output.check + crossref missing$ + { format.bvolume output + format.chapter.pages "chapter and pages" output.check + new.block + format.number.series output + new.sentence + publisher "publisher" output.check + address output + } + { format.chapter.pages "chapter and pages" output.check + new.block + format.book.crossref output.nonnull + } + if$ + format.edition output + format.date "year" output.check + format.isbn output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {incollection} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.chapter.pages output + new.sentence + publisher "publisher" output.check + address output + format.edition output + format.date "year" output.check + } + { format.incoll.inproc.crossref output.nonnull + format.chapter.pages output + } + if$ + format.isbn output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {inproceedings} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + crossref missing$ + { format.in.ed.booktitle "booktitle" output.check + format.bvolume output + format.number.series output + format.pages output + address empty$ + { organization publisher new.sentence.checkb + organization output + publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + organization output + publisher output + } + if$ + } + { format.incoll.inproc.crossref output.nonnull + format.pages output + } + if$ + format.isbn output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + format.authors output + author format.key output + new.block + format.btitle "title" output.check + organization address new.block.checkb + organization output + address output + format.edition output + format.date output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + "Master's thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + author format.key output + title howpublished new.block.checkb + format.title output + howpublished new.block.checka + howpublished output + format.date output + format.issn output + format.url output + new.block + note output + fin.entry + empty.misc.check +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.btitle "title" output.check + new.block + "PhD thesis" format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {proceedings} +{ output.bibitem + format.editors output + editor format.key output + new.block + format.btitle "title" output.check + format.bvolume output + format.number.series output + address output + format.date "year" output.check + new.sentence + organization output + publisher output + format.isbn output + format.url output + new.block + note output + fin.entry +} + +FUNCTION {techreport} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + new.block + format.tr.number output.nonnull + institution "institution" output.check + address output + format.date "year" output.check + format.url output + new.block + note output + fin.entry +} + +FUNCTION {unpublished} +{ output.bibitem + format.authors "author" output.check + author format.key output + new.block + format.title "title" output.check + format.url output + new.block + note "note" output.check + format.date output + fin.entry +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"January"} + +MACRO {feb} {"February"} + +MACRO {mar} {"March"} + +MACRO {apr} {"April"} + +MACRO {may} {"May"} + +MACRO {jun} {"June"} + +MACRO {jul} {"July"} + +MACRO {aug} {"August"} + +MACRO {sep} {"September"} + +MACRO {oct} {"October"} + +MACRO {nov} {"November"} + +MACRO {dec} {"December"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + +FUNCTION {sortify} +{ purify$ + "l" change.case$ +} + +INTEGERS { len } + +FUNCTION {chop.word} +{ 's := + 'len := + s #1 len substring$ = + { s len #1 + global.max$ substring$ } + 's + if$ +} + +FUNCTION {format.lab.names} +{ 's := + s #1 "{vv~}{ll}" format.name$ + s num.names$ duplicate$ + #2 > + { pop$ " et~al." * } + { #2 < + 'skip$ + { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = + { " et~al." * } + { " and " * s #2 "{vv~}{ll}" format.name$ * } + if$ + } + if$ + } + if$ +} + +FUNCTION {author.key.label} +{ author empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.editor.key.label} +{ author empty$ + { editor empty$ + { key empty$ + { cite$ #1 #3 substring$ } + 'key + if$ + } + { editor format.lab.names } + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {author.key.organization.label} +{ author empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { author format.lab.names } + if$ +} + +FUNCTION {editor.key.organization.label} +{ editor empty$ + { key empty$ + { organization empty$ + { cite$ #1 #3 substring$ } + { "The " #4 organization chop.word #3 text.prefix$ } + if$ + } + 'key + if$ + } + { editor format.lab.names } + if$ +} + +FUNCTION {calc.short.authors} +{ type$ "book" = + type$ "inbook" = + or + 'author.editor.key.label + { type$ "proceedings" = + 'editor.key.organization.label + { type$ "manual" = + 'author.key.organization.label + 'author.key.label + if$ + } + if$ + } + if$ + 'short.list := +} + +FUNCTION {calc.label} +{ calc.short.authors + short.list + "(" + * + year duplicate$ empty$ + short.list key field.or.null = or + { pop$ "" } + 'skip$ + if$ + * + 'label := +} + +FUNCTION {sort.format.names} +{ 's := + #1 'nameptr := + "" + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { nameptr #1 > + { " " * } + 'skip$ + if$ + s nameptr "{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}" format.name$ 't := + nameptr numnames = t "others" = and + { "et al" * } + { t sortify * } + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {sort.format.title} +{ 't := + "A " #2 + "An " #3 + "The " #4 t chop.word + chop.word + chop.word + sortify + #1 global.max$ substring$ +} + +FUNCTION {author.sort} +{ author empty$ + { key empty$ + { "to sort, need author or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.editor.sort} +{ author empty$ + { editor empty$ + { key empty$ + { "to sort, need author, editor, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { editor sort.format.names } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {author.organization.sort} +{ author empty$ + { organization empty$ + { key empty$ + { "to sort, need author, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { author sort.format.names } + if$ +} + +FUNCTION {editor.organization.sort} +{ editor empty$ + { organization empty$ + { key empty$ + { "to sort, need editor, organization, or key in " cite$ * warning$ + "" + } + { key sortify } + if$ + } + { "The " #4 organization chop.word sortify } + if$ + } + { editor sort.format.names } + if$ +} + +FUNCTION {presort} +{ calc.label + label sortify + " " + * + type$ "book" = + type$ "inbook" = + or + 'author.editor.sort + { type$ "proceedings" = + 'editor.organization.sort + { type$ "manual" = + 'author.organization.sort + 'author.sort + if$ + } + if$ + } + if$ + " " + * + year field.or.null sortify + * + " " + * + title field.or.null + sort.format.title + * + #1 entry.max$ substring$ + 'sort.label := + sort.label * + #1 entry.max$ substring$ + 'sort.key$ := +} + +ITERATE {presort} + +SORT + +STRINGS { longest.label last.label next.extra } + +INTEGERS { longest.label.width last.extra.num number.label } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #0 int.to.chr$ 'last.label := + "" 'next.extra := + #0 'longest.label.width := + #0 'last.extra.num := + #0 'number.label := +} + +FUNCTION {forward.pass} +{ last.label label = + { last.extra.num #1 + 'last.extra.num := + last.extra.num int.to.chr$ 'extra.label := + } + { "a" chr.to.int$ 'last.extra.num := + "" 'extra.label := + label 'last.label := + } + if$ + number.label #1 + 'number.label := +} + +FUNCTION {reverse.pass} +{ next.extra "b" = + { "a" 'extra.label := } + 'skip$ + if$ + extra.label 'next.extra := + extra.label + duplicate$ empty$ + 'skip$ + { "{\natexlab{" swap$ * "}}" * } + if$ + 'extra.label := + label extra.label * 'label := +} + +EXECUTE {initialize.longest.label} + +ITERATE {forward.pass} + +REVERSE {reverse.pass} + +FUNCTION {bib.sort.order} +{ sort.label 'sort.key$ := +} + +ITERATE {bib.sort.order} + +SORT + +FUNCTION {begin.bib} +{ preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ + "\begin{thebibliography}{" number.label int.to.str$ * "}" * + write$ newline$ + "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" + write$ newline$ + "\expandafter\ifx\csname url\endcsname\relax" write$ newline$ + " \def\url#1{{\tt #1}}\fi" write$ newline$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + diff --git a/ecsarticle.cls b/ecsarticle.cls new file mode 100755 index 0000000..49bb060 --- /dev/null +++ b/ecsarticle.cls @@ -0,0 +1,428 @@ + +%% +%% This is file `ecsarticle.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ecsdocs.dtx (with options: `article') +%% +%% Copyright (C) 2001 by Steve R. Gunn +%% +%% This file is part of the ECSDocs class distribution +%% +\NeedsTeXFormat{LaTeX2e}[1996/12/01] +\ProvidesClass{ecsarticle} + [2003/25/04 v1.6 + LaTeX document class] +\def\baseclass{article} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\baseclass}} +\def\@checkoptions#1#2{ + \edef\@curroptions{\@ptionlist{\@currname.\@currext}} + \@tempswafalse + \@tfor\@this:=#2\do{ + \@expandtwoargs\in@{,\@this,}{,\@curroptions,} + \ifin@ \@tempswatrue \@break@tfor \fi} + \let\@this\@empty + \if@tempswa \else \PassOptionsToClass{#1}{\baseclass}\fi +} +\@checkoptions{11pt}{{10pt}{11pt}{12pt}} +\PassOptionsToClass{a4paper}{\baseclass} +\ProcessOptions\relax +\LoadClass{\baseclass} +\newcommand\bhrule{\typeout{------------------------------------------------------------------------------}} +\newcommand\btypeout[1]{\bhrule\typeout{\space #1}\bhrule} +\usepackage{setspace} +\singlespacing +\setlength{\parindent}{0pt} +\setlength{\parskip}{2.0ex plus0.5ex minus0.2ex} +\usepackage{vmargin} +\setmarginsrb { 0.8in} % left margin + { 0.6in} % top margin + { 0.8in} % right margin + { 0.8in} % bottom margin + { 20pt} % head height + {0.25in} % head sep + { 9pt} % foot height + { 0.3in} % foot sep +\raggedbottom +\setlength{\topskip}{1\topskip \@plus 5\p@} +\doublehyphendemerits=10000 % No consecutive line hyphens. +\brokenpenalty=10000 % No broken words across columns/pages. +\widowpenalty=9999 % Almost no widows at bottom of page. +\clubpenalty=9999 % Almost no orphans at top of page. +\interfootnotelinepenalty=9999 % Almost never break footnotes. +\usepackage{fancyhdr} +\lhead[\rm\thepage]{\fancyplain{}{\sl{\rightmark}}} +\rhead[\fancyplain{}{\sl{\leftmark}}]{\rm\thepage} +\chead{}\lfoot{}\rfoot{}\cfoot{} +\pagestyle{fancy} +\renewcommand{\sectionmark}[1]{\btypeout{\thesection\space #1}} +\renewcommand{\subsectionmark}[1]{} +\renewcommand{\subsubsectionmark}[1]{} +\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else +\hbox{} +\thispagestyle{empty} +\newpage +\if@twocolumn\hbox{}\newpage\fi\fi\fi} +\usepackage{amsmath,amsfonts,amssymb,amscd,amsthm,xspace} +\theoremstyle{plain} +\newtheorem{example}{Example}[section] +\newtheorem{theorem}{Theorem}[section] +\newtheorem{corollary}[theorem]{Corollary} +\newtheorem{lemma}[theorem]{Lemma} +\newtheorem{proposition}[theorem]{Proposition} +\newtheorem{axiom}[theorem]{Axiom} +\theoremstyle{definition} +\newtheorem{definition}[theorem]{Definition} +\theoremstyle{remark} +\newtheorem{remark}[theorem]{Remark} +\usepackage[centerlast,small,sc]{caption} +\setlength{\captionmargin}{20pt} +\newcommand{\fref}[1]{Figure~\ref{#1}} +\newcommand{\tref}[1]{Table~\ref{#1}} +\newcommand{\eref}[1]{Equation~\ref{#1}} +\newcommand{\cref}[1]{Chapter~\ref{#1}} +\newcommand{\sref}[1]{Section~\ref{#1}} +\newcommand{\aref}[1]{Appendix~\ref{#1}} +\renewcommand{\topfraction}{0.85} +\renewcommand{\bottomfraction}{.85} +\renewcommand{\textfraction}{0.1} +\renewcommand{\dbltopfraction}{.85} +\renewcommand{\floatpagefraction}{0.75} +\renewcommand{\dblfloatpagefraction}{.75} +\setcounter{topnumber}{9} +\setcounter{bottomnumber}{9} +\setcounter{totalnumber}{20} +\setcounter{dbltopnumber}{9} +\usepackage{graphicx} +\usepackage{epstopdf} +\usepackage[scriptsize]{subfigure} +\usepackage{booktabs} +\usepackage{rotating} +\usepackage{listings} +\lstset{captionpos=b, + frame=tb, + basicstyle=\scriptsize\ttfamily, + showstringspaces=false, + keepspaces=true} +\lstdefinestyle{matlab} { + language=Matlab, + keywordstyle=\color{blue}, + commentstyle=\color[rgb]{0.13,0.55,0.13}\em, + stringstyle=\color[rgb]{0.7,0,0} } +\usepackage[pdfpagemode={UseOutlines},bookmarks=true,bookmarksopen=true, + bookmarksopenlevel=0,bookmarksnumbered=true,hypertexnames=false, + colorlinks,linkcolor={blue},citecolor={blue},urlcolor={red}, + pdfstartview={FitV},unicode,breaklinks=true]{hyperref} +\pdfstringdefDisableCommands{ + \let\\\space +} +\newcommand*{\supervisor}[1]{\def\supname{#1}} +\newcommand*{\examiner}[1]{\def\examname{#1}} +\newcommand*{\degree}[1]{\def\degreename{#1}} +\newcommand*{\authors}[1]{\def\authornames{#1}} +\newcommand*{\addresses}[1]{\def\addressnames{#1}} +\newcommand*{\university}[1]{\def\univname{#1}} +\newcommand*{\UNIVERSITY}[1]{\def\UNIVNAME{#1}} +\newcommand*{\department}[1]{\def\deptname{#1}} +\newcommand*{\DEPARTMENT}[1]{\def\DEPTNAME{#1}} +\newcommand*{\group}[1]{\def\groupname{#1}} +\newcommand*{\GROUP}[1]{\def\GROUPNAME{#1}} +\newcommand*{\faculty}[1]{\def\facname{#1}} +\newcommand*{\FACULTY}[1]{\def\FACNAME{#1}} +\newcommand*{\subject}[1]{\def\subjectname{#1}} +\newcommand*{\keywords}[1]{\def\keywordnames{#1}} + +\supervisor { Dr Steven Bell and Dr David Simpson } +\examiner { NA } +\degree {} +\authors {} + +\university {\texorpdfstring{\href{http://www.soton.ac.uk} + {University of Southampton}} + {University of Southampton}} +\UNIVERSITY {\texorpdfstring{\href{http://www.soton.ac.uk} + {UNIVERSITY OF SOUTHAMPTON}} + {UNIVERSITY OF SOUTHAMPTON}} +\department {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/research/centres/isvr.page} + {Institute of Sound and Vibration Research}} + {Institute of Sound and Vibration Research}} +\DEPARTMENT {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/research/centres/isvr.page} + {INSTITUTE OF SOUND AND VIBRATION RESEARCH}} + {INSTITUTE OF SOUND AND VIBRATION RESEARCH}} +\group {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/research/groups/human_sciences_group.page} + {Human Sciences Group}} + {Human Sciences Group}} +\GROUP {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/research/groups/human_sciences_group.page} + {BIOENGINEERING AND HUMAN FACTORS RESEARCH GROUP}} + {BIOENGINEERING AND HUMAN FACTORS RESEARCH GROUP}} +\faculty {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/} + {Faculty of Engineering and the Environment}} + {Faculty of Engineering and the Environment}} +\FACULTY {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/} + {FACULTY OF ENGINEERING AND THE ENVIRONMENT}} + {FACULTY OF ENGINEERING AND THE ENVIRONMENT}} +\addresses {} +\subject {} +\keywords {} +\if@titlepage + \renewcommand\maketitle{ + \btypeout{Title Page} + \hypersetup{pdftitle={\@title}} + \hypersetup{pdfsubject={\subjectname}} + \hypersetup{pdfauthor={\authornames}} + \hypersetup{pdfkeywords={\keywordnames}} + \markboth{\authornames}{\@title} + \begin{titlepage} + \thispagestyle{empty} + \let\footnotesize\small + \let\footnoterule\relax + \let \footnote \thanks + \null\vfil + \vskip 60\p@ + \begin{center} + {\LARGE \@title \par} + \vskip 3em + {\large \lineskip .75em + \begin{tabular}[t]{c} \authornames \end{tabular} + \par} + \vskip 1em + {\large \lineskip .5em + \begin{tabular}[t]{c} \addressnames \end{tabular} + \par} + \vskip 1.5em + {\large \@date \par} + \if\keywordnames + \else + \quotation + \vskip 1.5em + {\noindent \normalsize + \textbf{Keywords:} + \textit{\keywordnames} + \par} + \endquotation + \fi + \end{center} + \par + \@thanks + \vfil\null + \end{titlepage} + \setcounter{footnote}{0} + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + } +\else + \renewcommand\maketitle{ + \btypeout{Title Page} + \hypersetup{pdftitle={\@title}} + \hypersetup{pdfsubject=\subjectname} + \hypersetup{pdfauthor=\authornames} + \hypersetup{pdfkeywords=\keywordnames} + \markboth{\authornames}{\@title} + \thispagestyle{empty} + \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 + } + \if@twocolumn + \ifnum \col@number=\@ne + \@maketitle + \else + \twocolumn[\@maketitle]% + \fi + \else + \newpage + % Prevent figures from going at top of page. + \global\@topnum\z@ + \@maketitle + \fi + \thispagestyle{plain}\@thanks + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + } + \def\@maketitle{ + \newpage + \null + \vskip 2em + \begin{center} + \let \footnote \thanks + {\LARGE \@title \par} + \vskip 1.5em + {\large \lineskip .5em + \begin{tabular}[t]{c} \authornames \end{tabular} + \par} + \vskip 0.7em + {\large \lineskip .5em + \begin{tabular}[t]{c} \addressnames \end{tabular} + \par} + \vskip 1em + {\large \@date} + \end{center} + \par + \vskip 1.5em + } +\fi +\if@titlepage + \renewenvironment{abstract}{ + \titlepage + \null\vfil + \@beginparpenalty\@lowpenalty + \begin{center} + \bfseries \abstractname + \@endparpenalty\@M + \end{center} + \begin{itshape} + \noindent + } + { + \par + \end{itshape} + \if\keywordnames + \else + \quote + \vskip 1.5em + {\noindent \normalsize + \textbf{Keywords:} + \textit{\keywordnames} + \par} + \endquote + \fi + \vfil\null\endtitlepage + } +\else + \renewenvironment{abstract}{ + \if@twocolumn + \section*{\abstractname} + \else + \small + \begin{center} + {\bfseries \abstractname\vspace{-.5em}\vspace{\z@}} + \end{center} + \quote + \fi + \begin{itshape} + } + { + \end{itshape} + \if\keywordnames + \else + \vskip 1.5em + {\noindent \normalsize + \textbf{Keywords:} + \textit{\keywordnames} + \par} + \fi + \if@twocolumn\else\endquote\fi + } +\fi +\addtocounter{secnumdepth}{1} +\setcounter{tocdepth}{6} +\newcounter{dummy} +\newcommand\addtotoc[1]{ +\refstepcounter{dummy} +\addcontentsline{toc}{section}{#1}} +\renewcommand\tableofcontents{ +\btypeout{Table of Contents} +\begin{spacing}{1}{ + \setlength{\parskip}{1pt} + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \section*{\contentsname + \@mkboth{ + \MakeUppercase\contentsname}{\MakeUppercase\contentsname}} + \@starttoc{toc} + \if@restonecol\twocolumn\fi +}\end{spacing} +} +\renewcommand\listoffigures{ +\btypeout{List of Figures} +\begin{spacing}{1}{ + \setlength{\parskip}{1pt} + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \section*{\listfigurename + \@mkboth{\MakeUppercase\listfigurename} + {\MakeUppercase\listfigurename}} + \@starttoc{lof} + \if@restonecol\twocolumn\fi +}\end{spacing} +} +\renewcommand\listoftables{ +\btypeout{List of Tables} +\begin{spacing}{1}{ + \setlength{\parskip}{1pt} + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \section*{\listtablename + \@mkboth{ + \MakeUppercase\listtablename}{\MakeUppercase\listtablename}} + \@starttoc{lot} + \if@restonecol\twocolumn\fi +}\end{spacing} +} +\newcommand\listsymbolname{Nomenclature} +\usepackage{longtable} +\newcommand\listofsymbols[2]{ +\btypeout{\listsymbolname} +\addtotoc{\listsymbolname} + \section*{\listsymbolname + \@mkboth{ + \MakeUppercase\listsymbolname}{\MakeUppercase\listsymbolname}} +\begin{longtable}[c]{#1}#2\end{longtable}\par +} +\newcommand\acknowledgements[1]{ +\btypeout{Acknowledgements} +\addtotoc{Acknowledgements} +\section*{Acknowledgements} +{\normalsize #1} +} +\newcommand\dedicatory[1]{ +\btypeout{Dedicatory} +} +\newcommand\frontmatter{ } +\newcommand\mainmatter{ } +\newcommand\bibname{References} +\newcommand\backmatter{ + \addtotoc{\bibname} + \btypeout{\bibname} +} +\endinput +%% +%% End of file `ecsarticle.cls'. + diff --git a/ecsreport.cls b/ecsreport.cls new file mode 100755 index 0000000..c8c792b --- /dev/null +++ b/ecsreport.cls @@ -0,0 +1,342 @@ +%% +%% This is file `ecsreport.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ecsdocs.dtx (with options: `report') +%% +%% Copyright (C) 2001 by Steve R. Gunn +%% +%% This file is part of the ECSDocs class distribution +%% +\NeedsTeXFormat{LaTeX2e}[1996/12/01] +\ProvidesClass{ecsreport} + [2003/25/04 v1.6 + LaTeX document class] +\def\baseclass{book} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\baseclass}} +\def\@checkoptions#1#2{ + \edef\@curroptions{\@ptionlist{\@currname.\@currext}} + \@tempswafalse + \@tfor\@this:=#2\do{ + \@expandtwoargs\in@{,\@this,}{,\@curroptions,} + \ifin@ \@tempswatrue \@break@tfor \fi} + \let\@this\@empty + \if@tempswa \else \PassOptionsToClass{#1}{\baseclass}\fi +} +\@checkoptions{11pt}{{10pt}{11pt}{12pt}} +\PassOptionsToClass{a4paper}{\baseclass} +\ProcessOptions\relax +\LoadClass{\baseclass} +\newcommand\bhrule{\typeout{------------------------------------------------------------------------------}} +\newcommand\btypeout[1]{\bhrule\typeout{\space #1}\bhrule} +\usepackage{setspace} +\onehalfspacing +\setlength{\parindent}{0pt} +\setlength{\parskip}{2.0ex plus0.5ex minus0.2ex} +\usepackage{vmargin} +\setmarginsrb { 1.5in} % left margin + { 0.6in} % top margin + { 1.0in} % right margin + { 0.8in} % bottom margin + { 20pt} % head height + {0.25in} % head sep + { 9pt} % foot height + { 0.3in} % foot sep +\raggedbottom +\setlength{\topskip}{1\topskip \@plus 5\p@} +\doublehyphendemerits=10000 % No consecutive line hyphens. +\brokenpenalty=10000 % No broken words across columns/pages. +\widowpenalty=9999 % Almost no widows at bottom of page. +\clubpenalty=9999 % Almost no orphans at top of page. +\interfootnotelinepenalty=9999 % Almost never break footnotes. +\usepackage{fancyhdr} +\lhead[\rm\thepage]{\fancyplain{}{\sl{\rightmark}}} +\rhead[\fancyplain{}{\sl{\leftmark}}]{\rm\thepage} +\chead{}\lfoot{}\rfoot{}\cfoot{} +\pagestyle{fancy} +\renewcommand{\chaptermark}[1]{\btypeout{\thechapter\space #1}\markboth{\@chapapp\ \thechapter\ #1}{\@chapapp\ \thechapter\ #1}} +\renewcommand{\sectionmark}[1]{} +\renewcommand{\subsectionmark}[1]{} +\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else +\hbox{} +\thispagestyle{empty} +\newpage +\if@twocolumn\hbox{}\newpage\fi\fi\fi} +\usepackage{amsmath,amsfonts,amssymb,amscd,amsthm,xspace} +\theoremstyle{plain} +\newtheorem{example}{Example}[chapter] +\newtheorem{theorem}{Theorem}[chapter] +\newtheorem{corollary}[theorem]{Corollary} +\newtheorem{lemma}[theorem]{Lemma} +\newtheorem{proposition}[theorem]{Proposition} +\newtheorem{axiom}[theorem]{Axiom} +\theoremstyle{definition} +\newtheorem{definition}[theorem]{Definition} +\theoremstyle{remark} +\newtheorem{remark}[theorem]{Remark} +\usepackage[centerlast,small,sc]{caption} +\setlength{\captionmargin}{20pt} +\newcommand{\fref}[1]{Figure~\ref{#1}} +\newcommand{\tref}[1]{Table~\ref{#1}} +\newcommand{\eref}[1]{Equation~\ref{#1}} +\newcommand{\cref}[1]{Chapter~\ref{#1}} +\newcommand{\sref}[1]{Section~\ref{#1}} +\newcommand{\aref}[1]{Appendix~\ref{#1}} +\renewcommand{\topfraction}{0.85} +\renewcommand{\bottomfraction}{.85} +\renewcommand{\textfraction}{0.1} +\renewcommand{\dbltopfraction}{.85} +\renewcommand{\floatpagefraction}{0.75} +\renewcommand{\dblfloatpagefraction}{.75} +\setcounter{topnumber}{9} +\setcounter{bottomnumber}{9} +\setcounter{totalnumber}{20} +\setcounter{dbltopnumber}{9} +\usepackage{graphicx} +\usepackage{epstopdf} +\usepackage[scriptsize]{subfigure} +\usepackage{booktabs} +\usepackage{rotating} +\usepackage{listings} +\lstset{captionpos=b, + frame=tb, + basicstyle=\scriptsize\ttfamily, + showstringspaces=false, + keepspaces=true} +\lstdefinestyle{matlab} { + language=Matlab, + keywordstyle=\color{blue}, + commentstyle=\color[rgb]{0.13,0.55,0.13}\em, + stringstyle=\color[rgb]{0.7,0,0} } +\usepackage[pdfpagemode={UseOutlines},bookmarks=true,bookmarksopen=true, + bookmarksopenlevel=0,bookmarksnumbered=true,hypertexnames=false, + colorlinks,linkcolor={blue},citecolor={blue},urlcolor={red}, + pdfstartview={FitV},unicode,breaklinks=true]{hyperref} +\pdfstringdefDisableCommands{ + \let\\\space +} +\newcommand*{\supervisor}[1]{\def\supname{#1}} +\newcommand*{\examiner}[1]{\def\examname{#1}} +\newcommand*{\degree}[1]{\def\degreename{#1}} +\newcommand*{\authors}[1]{\def\authornames{#1}} +\newcommand*{\addresses}[1]{\def\addressnames{#1}} +\newcommand*{\university}[1]{\def\univname{#1}} +\newcommand*{\UNIVERSITY}[1]{\def\UNIVNAME{#1}} +\newcommand*{\department}[1]{\def\deptname{#1}} +\newcommand*{\DEPARTMENT}[1]{\def\DEPTNAME{#1}} +\newcommand*{\group}[1]{\def\groupname{#1}} +\newcommand*{\GROUP}[1]{\def\GROUPNAME{#1}} +\newcommand*{\faculty}[1]{\def\facname{#1}} +\newcommand*{\FACULTY}[1]{\def\FACNAME{#1}} +\newcommand*{\subject}[1]{\def\subjectname{#1}} +\newcommand*{\keywords}[1]{\def\keywordnames{#1}} +\supervisor {} +\examiner {} +\degree {} +\authors {} +\university {\texorpdfstring{\href{http://www.soton.ac.uk} + {University of Southampton}} + {University of Southampton}} +\UNIVERSITY {\texorpdfstring{\href{http://www.soton.ac.uk} + {UNIVERSITY OF SOUTHAMPTON}} + {UNIVERSITY OF SOUTHAMPTON}} +\department {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/research/centres/isvr.page} + {Institute of Sound and Vibration Research}} + {Institute of Sound and Vibration Research}} +\DEPARTMENT {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/research/centres/isvr.page} + {INSTITUTE OF SOUND AND VIBRATION RESEARCH}} + {INSTITUTE OF SOUND AND VIBRATION RESEARCH}} +\group {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/research/groups/human_sciences_group.page} + {Human Sciences Group}} + {Human Sciences Group}} +\GROUP {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/research/groups/human_sciences_group.page} + {BIOENGINEERING AND HUMAN FACTORS RESEARCH GROUP}} + {BIOENGINEERING AND HUMAN FACTORS RESEARCH GROUP}} +\faculty {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/} + {Faculty of Engineering and the Environment}} + {Faculty of Engineering and the Environment}} +\FACULTY {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/} + {FACULTY OF ENGINEERING AND THE ENVIRONMENT}} + {FACULTY OF ENGINEERING AND THE ENVIRONMENT}} +\addresses {} +\subject {} +\keywords {} +\renewcommand\maketitle{ + \btypeout{Title Page} + \hypersetup{pdftitle={\@title}} + \hypersetup{pdfsubject=\subjectname} + \hypersetup{pdfauthor=\authornames} + \hypersetup{pdfkeywords=\keywordnames} + \thispagestyle{empty} + \begin{titlepage} + \let\footnotesize\small + \let\footnoterule\relax + \let \footnote \thanks + \setcounter{footnote}{0} + \null\vfil + \vskip 60\p@ + \begin{center} + \setlength{\parskip}{0pt} + {\large\textbf{\UNIVNAME}\par} + \vfill + {\huge \bf \@title \par} + \vfill + {\LARGE by \par} + \smallskip + {\LARGE \authornames \par} + \vfill + {\large Project proposal \par} + \bigskip + \bigskip + {\large \facname \par} + {\large \deptname \par} + \bigskip + \bigskip + \bigskip + {\Large \@date \par} + \bigskip + \end{center} + \par + \@thanks + \vfil\null + \end{titlepage} + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + \cleardoublepage +} +\newenvironment{abstract} +{ + \btypeout{Abstract Page} + \thispagestyle{empty} + \null\vfil + \begin{center} + \setlength{\parskip}{0pt} + {\normalsize \UNIVNAME \par} + \bigskip + {\underline{ABSTRACT} \par} + \bigskip + {\normalsize \FACNAME \par} + {\normalsize \DEPTNAME \par} + \bigskip + \bigskip + {\normalsize\bf \@title \par} + \medskip + {\normalsize by \authornames \par} + \bigskip + \end{center} +} +{ + \vfil\vfil\vfil\null + \cleardoublepage +} +\addtocounter{secnumdepth}{1} +\setcounter{tocdepth}{6} +\newcounter{dummy} +\newcommand\addtotoc[1]{ +\refstepcounter{dummy} +\addcontentsline{toc}{chapter}{#1}} +\renewcommand\tableofcontents{ +\btypeout{Table of Contents} +\begin{spacing}{1}{ + \setlength{\parskip}{1pt} + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\contentsname + \@mkboth{ + \MakeUppercase\contentsname}{\MakeUppercase\contentsname}} + \@starttoc{toc} + \if@restonecol\twocolumn\fi + \cleardoublepage +}\end{spacing} +} +\renewcommand\listoffigures{ +\btypeout{List of Figures} +\begin{spacing}{1}{ + \setlength{\parskip}{1pt} + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\listfigurename + \@mkboth{\MakeUppercase\listfigurename} + {\MakeUppercase\listfigurename}} + \@starttoc{lof} + \if@restonecol\twocolumn\fi + \cleardoublepage +}\end{spacing} +} +\renewcommand\listoftables{ +\btypeout{List of Tables} +\begin{spacing}{1}{ + \setlength{\parskip}{1pt} + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\listtablename + \@mkboth{ + \MakeUppercase\listtablename}{\MakeUppercase\listtablename}} + \@starttoc{lot} + \if@restonecol\twocolumn\fi + \cleardoublepage +}\end{spacing} +} +\newcommand\listsymbolname{Nomenclature} +\usepackage{longtable} +\newcommand\listofsymbols[2]{ +\btypeout{\listsymbolname} +\addtotoc{\listsymbolname} + \chapter*{\listsymbolname + \@mkboth{ + \MakeUppercase\listsymbolname}{\MakeUppercase\listsymbolname}} +\begin{longtable}[c]{#1}#2\end{longtable}\par + \cleardoublepage +} +\newcommand\acknowledgements[1]{ +\btypeout{Acknowledgements} +\addtotoc{Acknowledgements} +\thispagestyle{plain} +\null\vfil +\vskip 60\p@ +\begin{center}{\Large\bf Acknowledgements \par}\end{center} +{\normalsize #1} +\vfil\vfil\null +\cleardoublepage +} +\newcommand\dedicatory[1]{ +\btypeout{Dedicatory} +\thispagestyle{plain} +\null\vfil +\vskip 60\p@ +\begin{center}{\Large \sl #1}\end{center} +\vfil\null +\cleardoublepage +} +\renewcommand\backmatter{ + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \addtotoc{\bibname} + \btypeout{\bibname} + \@mainmatterfalse} +\endinput +%% +%% End of file `ecsreport.cls'. diff --git a/ecsthesis.cls b/ecsthesis.cls new file mode 100755 index 0000000..f83b632 --- /dev/null +++ b/ecsthesis.cls @@ -0,0 +1,350 @@ +%% +%% This is file `ecsthesis.cls', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ecsdocs.dtx (with options: `thesis') +%% +%% Copyright (C) 2001 by Steve R. Gunn +%% +%% This file is part of the ECSDocs class distribution +%% +\NeedsTeXFormat{LaTeX2e}[1996/12/01] +\ProvidesClass{ecsthesis} + [2003/25/04 v1.6 + LaTeX document class] +\def\baseclass{book} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\baseclass}} +\def\@checkoptions#1#2{ + \edef\@curroptions{\@ptionlist{\@currname.\@currext}} + \@tempswafalse + \@tfor\@this:=#2\do{ + \@expandtwoargs\in@{,\@this,}{,\@curroptions,} + \ifin@ \@tempswatrue \@break@tfor \fi} + \let\@this\@empty + \if@tempswa \else \PassOptionsToClass{#1}{\baseclass}\fi +} +\@checkoptions{11pt}{{10pt}{11pt}{12pt}} +\PassOptionsToClass{a4paper}{\baseclass} +\ProcessOptions\relax +\LoadClass{\baseclass} +\newcommand\bhrule{\typeout{------------------------------------------------------------------------------}} +\newcommand\btypeout[1]{\bhrule\typeout{\space #1}\bhrule} +\def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space \number\year} +\usepackage{setspace} +\onehalfspacing +\setlength{\parindent}{0pt} +\setlength{\parskip}{2.0ex plus0.5ex minus0.2ex} +\usepackage{vmargin} +\setmarginsrb { 1.5in} % left margin + { 0.6in} % top margin + { 1.0in} % right margin + { 0.8in} % bottom margin + { 20pt} % head height + {0.25in} % head sep + { 9pt} % foot height + { 0.3in} % foot sep +\raggedbottom +\setlength{\topskip}{1\topskip \@plus 5\p@} +\doublehyphendemerits=10000 % No consecutive line hyphens. +\brokenpenalty=10000 % No broken words across columns/pages. +\widowpenalty=9999 % Almost no widows at bottom of page. +\clubpenalty=9999 % Almost no orphans at top of page. +\interfootnotelinepenalty=9999 % Almost never break footnotes. +\usepackage{fancyhdr} +\lhead[\rm\thepage]{\fancyplain{}{\sl{\rightmark}}} +\rhead[\fancyplain{}{\sl{\leftmark}}]{\rm\thepage} +\chead{}\lfoot{}\rfoot{}\cfoot{} +\pagestyle{fancy} +\renewcommand{\chaptermark}[1]{\btypeout{\thechapter\space #1}\markboth{\@chapapp\ \thechapter\ #1}{\@chapapp\ \thechapter\ #1}} +\renewcommand{\sectionmark}[1]{} +\renewcommand{\subsectionmark}[1]{} +\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else +\hbox{} +\thispagestyle{empty} +\newpage +\if@twocolumn\hbox{}\newpage\fi\fi\fi} +\usepackage{amsmath,amsfonts,amssymb,amscd,amsthm,xspace} +\theoremstyle{plain} +\newtheorem{example}{Example}[chapter] +\newtheorem{theorem}{Theorem}[chapter] +\newtheorem{corollary}[theorem]{Corollary} +\newtheorem{lemma}[theorem]{Lemma} +\newtheorem{proposition}[theorem]{Proposition} +\newtheorem{axiom}[theorem]{Axiom} +\theoremstyle{definition} +\newtheorem{definition}[theorem]{Definition} +\theoremstyle{remark} +\newtheorem{remark}[theorem]{Remark} +\usepackage[centerlast,small,sc]{caption} +\setlength{\captionmargin}{20pt} +\newcommand{\fref}[1]{Figure~\ref{#1}} +\newcommand{\tref}[1]{Table~\ref{#1}} +\newcommand{\eref}[1]{Equation~\ref{#1}} +\newcommand{\cref}[1]{Chapter~\ref{#1}} +\newcommand{\sref}[1]{Section~\ref{#1}} +\newcommand{\aref}[1]{Appendix~\ref{#1}} +\renewcommand{\topfraction}{0.85} +\renewcommand{\bottomfraction}{.85} +\renewcommand{\textfraction}{0.1} +\renewcommand{\dbltopfraction}{.85} +\renewcommand{\floatpagefraction}{0.75} +\renewcommand{\dblfloatpagefraction}{.75} +\setcounter{topnumber}{9} +\setcounter{bottomnumber}{9} +\setcounter{totalnumber}{20} +\setcounter{dbltopnumber}{9} +\usepackage{graphicx} +\usepackage{epstopdf} +\usepackage[scriptsize]{subfigure} +\usepackage{booktabs} +\usepackage{rotating} +\usepackage{listings} +%\usepackage{lstpatch} +\lstset{captionpos=b, + frame=tb, + basicstyle=\scriptsize\ttfamily, + showstringspaces=false, + keepspaces=true} +\lstdefinestyle{matlab} { + language=Matlab, + keywordstyle=\color{blue}, + commentstyle=\color[rgb]{0.13,0.55,0.13}\em, + stringstyle=\color[rgb]{0.7,0,0} } +\usepackage[pdfpagemode={UseOutlines},bookmarks=true,bookmarksopen=true, + bookmarksopenlevel=0,bookmarksnumbered=true,hypertexnames=false, + colorlinks,linkcolor={blue},citecolor={blue},urlcolor={red}, + pdfstartview={FitV},unicode,breaklinks=true]{hyperref} +\pdfstringdefDisableCommands{ + \let\\\space +} +\newcommand*{\supervisor}[1]{\def\supname{#1}} +\newcommand*{\examiner}[1]{\def\examname{#1}} +\newcommand*{\degree}[1]{\def\degreename{#1}} +\newcommand*{\authors}[1]{\def\authornames{#1}} +\newcommand*{\addresses}[1]{\def\addressnames{#1}} +\newcommand*{\university}[1]{\def\univname{#1}} +\newcommand*{\UNIVERSITY}[1]{\def\UNIVNAME{#1}} +\newcommand*{\department}[1]{\def\deptname{#1}} +\newcommand*{\DEPARTMENT}[1]{\def\DEPTNAME{#1}} +\newcommand*{\group}[1]{\def\groupname{#1}} +\newcommand*{\GROUP}[1]{\def\GROUPNAME{#1}} +\newcommand*{\faculty}[1]{\def\facname{#1}} +\newcommand*{\FACULTY}[1]{\def\FACNAME{#1}} +\newcommand*{\subject}[1]{\def\subjectname{#1}} +\newcommand*{\keywords}[1]{\def\keywordnames{#1}} +\supervisor {} +\examiner {} +\degree {} +\authors {} +\university {\texorpdfstring{\href{http://www.soton.ac.uk} + {University of Southampton}} + {University of Southampton}} +\UNIVERSITY {\texorpdfstring{\href{http://www.soton.ac.uk} + {UNIVERSITY OF SOUTHAMPTON}} + {UNIVERSITY OF SOUTHAMPTON}} +\department {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/research/centres/isvr.page} + {Institute of Sound and Vibration Research}} + {Institute of Sound and Vibration Research}} +\DEPARTMENT {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/research/centres/isvr.page} + {INSTITUTE OF SOUND AND VIBRATION RESEARCH}} + {INSTITUTE OF SOUND AND VIBRATION RESEARCH}} +\group {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/research/groups/human_sciences_group.page} + {Human Sciences Group}} + {Human Sciences Group}} +\GROUP {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/research/groups/human_sciences_group.page} + {BIOENGINEERING AND HUMAN FACTORS RESEARCH GROUP}} + {BIOENGINEERING AND HUMAN FACTORS RESEARCH GROUP}} +\faculty {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/} + {Faculty of Engineering and the Environment}} + {Faculty of Engineering and the Environment}} +\FACULTY {\texorpdfstring{\href{https://www.southampton.ac.uk/engineering/} + {FACULTY OF ENGINEERING AND THE ENVIRONMENT}} + {FACULTY OF ENGINEERING AND THE ENVIRONMENT}} +\addresses {} +\subject {} +\keywords {} +\renewcommand\maketitle{ + \btypeout{Title Page} + \hypersetup{pdftitle={\@title}} + \hypersetup{pdfsubject=\subjectname} + \hypersetup{pdfauthor=\authornames} + \hypersetup{pdfkeywords=\keywordnames} + \thispagestyle{empty} + \begin{titlepage} + \let\footnotesize\small + \let\footnoterule\relax + \let \footnote \thanks + \setcounter{footnote}{0} + \null\vfil + \vskip 60\p@ + \begin{center} + \setlength{\parskip}{0pt} + {\large\textbf{\UNIVNAME}\par} + \vfill + {\huge \bf \@title \par} + \vfill + {\LARGE by \par} + \smallskip + {\LARGE \authornames \par} + \vfill + {\large A thesis submitted in partial fulfillment for the \par} + {\large degree of Doctor of Philosophy \par} + \bigskip + \bigskip + {\large in the \par} + {\large \facname \par} + {\large \deptname \par} + \bigskip + \bigskip + \bigskip + {\Large \@date \par} + \bigskip + \end{center} + \par + \@thanks + \vfil\null + \end{titlepage} + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + \cleardoublepage +} +\newenvironment{abstract} +{ + \btypeout{Abstract Page} + \thispagestyle{empty} + \null\vfil + \begin{center} + \setlength{\parskip}{0pt} + {\normalsize \UNIVNAME \par} + \bigskip + {\underline{ABSTRACT} \par} + \bigskip + {\normalsize \FACNAME \par} + {\normalsize \DEPTNAME \par} + \bigskip + {\normalsize \underline{Doctor of Philosophy}\par} + \bigskip + {\normalsize\bf \@title \par} + \medskip + {\normalsize by \authornames \par} + \bigskip + \end{center} +} +{ + \vfil\vfil\vfil\null + \cleardoublepage +} +\addtocounter{secnumdepth}{1} +\setcounter{tocdepth}{6} +\newcounter{dummy} +\newcommand\addtotoc[1]{ +\refstepcounter{dummy} +\addcontentsline{toc}{chapter}{#1}} +\renewcommand\tableofcontents{ +\btypeout{Table of Contents} +\begin{spacing}{1}{ + \setlength{\parskip}{1pt} + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\contentsname + \@mkboth{ + \MakeUppercase\contentsname}{\MakeUppercase\contentsname}} + \@starttoc{toc} + \if@restonecol\twocolumn\fi + \cleardoublepage +}\end{spacing} +} +\renewcommand\listoffigures{ +\btypeout{List of Figures} +\begin{spacing}{1}{ + \setlength{\parskip}{1pt} + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\listfigurename + \@mkboth{\MakeUppercase\listfigurename} + {\MakeUppercase\listfigurename}} + \@starttoc{lof} + \if@restonecol\twocolumn\fi + \cleardoublepage +}\end{spacing} +} +\renewcommand\listoftables{ +\btypeout{List of Tables} +\begin{spacing}{1}{ + \setlength{\parskip}{1pt} + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\listtablename + \@mkboth{ + \MakeUppercase\listtablename}{\MakeUppercase\listtablename}} + \@starttoc{lot} + \if@restonecol\twocolumn\fi + \cleardoublepage +}\end{spacing} +} +\newcommand\listsymbolname{Nomenclature} +\usepackage{longtable} +\newcommand\listofsymbols[2]{ +\btypeout{\listsymbolname} +\addtotoc{\listsymbolname} + \chapter*{\listsymbolname + \@mkboth{ + \MakeUppercase\listsymbolname}{\MakeUppercase\listsymbolname}} +\begin{longtable}[c]{#1}#2\end{longtable}\par + \cleardoublepage +} +\newcommand\acknowledgements[1]{ +\btypeout{Acknowledgements} +\addtotoc{Acknowledgements} +\thispagestyle{plain} +\null\vfil +\vskip 60\p@ +\begin{center}{\Large\bf Acknowledgements \par}\end{center} +{\normalsize #1} +\vfil\vfil\null +\cleardoublepage +} +\newcommand\dedicatory[1]{ +\btypeout{Dedicatory} +\thispagestyle{plain} +\null\vfil +\vskip 60\p@ +\begin{center}{\Large \sl #1}\end{center} +\vfil\null +\cleardoublepage +} +\renewcommand\backmatter{ + \if@openright + \cleardoublepage + \else + \clearpage + \fi + \addtotoc{\bibname} + \btypeout{\bibname} + \@mainmatterfalse} +\endinput +%% +%% End of file `ecsthesis.cls'.