From a14ee60edb06595a42e871ee789ad25bbc096fc1 Mon Sep 17 00:00:00 2001 From: Sam Perry Date: Wed, 8 May 2019 09:44:19 +0100 Subject: [PATCH] Added initial files --- Definitions.tex | 147 ++++++ Preamble.tex | 157 ++++++ Report.tex | 87 +++ build.sh | 3 + ecs.bst | 1345 +++++++++++++++++++++++++++++++++++++++++++++++ ecsarticle.cls | 428 +++++++++++++++ ecsreport.cls | 342 ++++++++++++ ecsthesis.cls | 350 ++++++++++++ 8 files changed, 2859 insertions(+) create mode 100755 Definitions.tex create mode 100644 Preamble.tex create mode 100755 Report.tex create mode 100755 build.sh create mode 100755 ecs.bst create mode 100755 ecsarticle.cls create mode 100755 ecsreport.cls create mode 100755 ecsthesis.cls 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'.