The main URL of this web site is http://projects.cs.dal.ca/dalthesis ]

dalthesis.cls
LaTeX Template for Theses at the Dalhousie University

Version 1.4, 15-Aug-2017 (Documentation Version 1.4.7, 5-Mar-2023)

Download Files

All files are included in the following zip file: dalthesis.zip (contents)
The thesis class file is: dalthesis.cls
For a quick look or a quick start, you can use the following files:

For more information about the template, please read further.

Table of Contents

Download Files
Table of Contents
1. Introduction
    1.1 FGS Regulations
    1.2 PDF/A Format
    1.3 Overview of Main Commands
    1.4 Caveats
    1.5 Current Issues
    1.6 Other Similar Templates
2. Package dalthesis
3. Examples of Parts to a Thesis
    3.1 Front Pages
    3.2 Figures
    3.3 Tables
    3.4 Algorithms
    3.5 Theorems
    3.6 Glossary (List of Abbreviations and Symbols Used)
4. Administrative Notes
    4.1 About
    4.2 Acknowledgements
    4.3 Update History (ChangeLog)
    4.4 Previous Saved Versions of dalthesis (and dalcsthesis)
Last Update Information and the End

^ 1. Introduction

Note: ^ is a "Back to Table of Contents" link.

^ 1.1 FGS Regulations

The final thesis format is approved by the Faculty of Graduate Studies office. Although this format is regularly maintained in an effort to keep it up to date with the prescribed FGS guidelines, it is possible that some additional corrections will be required. The students are responsible for ensuring that their final thesis conforms to the FGS regulations, especially since LaTeX allows authors to override many aspects of the template within their own text. Hence, make sure that you have your thesis format checked by FGS before trying to submit the final copy of your thesis. This evaluation takes two business days (last time we checked).

The FGS thesis regulations can be found at:
https://dalu.sharepoint.com/sites/graduate-studies/SitePages/forms.aspx?_ga=2.91981274.132963336.1665572441-196558592.1661273966
This page contains format guidelines document as well a sample thesis template in PDF form, among other information.

With this template, we try to provide an example of something that FGS should accept. Students are welcome to make their thesis look as they want, whether by using their own template or by modifying this one, but always have your thesis format checked by FGS before trying to submit the final copy of your thesis.
If you notice that this template does not follow one of the latest FGS rules, please let us know by sending email to: vlado@cs.dal.ca

^ 1.2 PDF/A Format

Ever since the required electronic submission of theses was introduced, the FGS regulations require that the PDF file is in the PDF/A format. This format is not produced by default by pdflatex, or other most common ways of producing PDF from a LaTeX file.

Detailed instructions about how to properly convert your LaTeX document into a PDF/A format are given by Peter Selinger at: http://www.mathstat.dal.ca/~selinger/pdfa/

Additionally, some conversion suggestions are offered by FGS at: http://www.dal.ca/faculty/gradstudies/currentstudents/thesesanddefences/submission.html

^ 1.3 Overview of Main Commands

The LaTeX template for theses at the Dalhousie University is based on version 2.9 of the CS template, which was based on version 2.2 of the template for theses in Mathematics. The math template was developed by Clyde Clements and Steven Matheson. The basic usage of this template is similar to the Math one. Some features may not be documented here, so you can also see instructions of the Math template at www.mscs.dal.ca/~clyde/dalthesis or the basic simple.tex starter file to get started and for the regular bells and whistles.

Declare your supervisor with a \supervisor{} statement and each reader with a \reader{} statement. If you have co-supervisors, declare each of them with a separate \supervisor{} statement and the template will designate them as co-supervisors.

The basic template allows you to not print out the front pages if you include a \nofront command in your file. You can omit specific parts with the following commands: \notitlepage, \nosignaturepage, \nopermissionpage \nodedicationpage, \notableofcontents, \nolistoftables, \nolistoffigures, or \nobib. You can also declare a "draft" version of the thesis with the \draft command.

You can browse the file dalthesis.cls to find all degree tags. For example, the following ones are relevant to the Faculty of Computer Science:

Use one of these designations before your \frontmatter call and it will define the appropriate abbreviations for your thesis.

A thesis file may rely on some additional style files. All of them are typically available on a system with installed LaTeX, but if a required style file is not available, you can place their copies in the directory with your thesis.

The basic files needed are:

Simple.tex (pdf, ps) is a sample basic thesis, which may be a good start file to write a thesis. To process it, you also need its bibliography file simple.bib. All these files are available in the directory example-simple.

The rest of this page provides information on including different features in your thesis like a glossary, tables, or figures. They are presented as changes to simple.tex. Taking a UNIX "diff" between simple.tex and the example will show you the items that change to use the given feature.

^ 1.4 Caveats

Page Margins

FGS guidelines specify that the left-side margin should be around 1.5 inches and other three margins approximately 1 inch. The thesis style file is designed to satisfy this requirement but, as Clyde Clements mentions in the math version of the thesis template, you may print the thesis generated by this template and get incorrect margins. Known reasons are

Once the DVI file is generated, this template is no longer in control. The version that was approved by graduate studies was generated to a postscript file and then printed directly to a printer with the lpr command.

The easiest way to tell if your margins are correct after printing is to measure where the page number appears at the bottom of a page. The template is designed to print it between 0.5 inches and 0.75 inches from the bottom of the page. If the margin is bigger than that then your method of printing the dvi file has shrunk the margins.

^ 1.5 Current Issues

Although an effort is made to keep the template in accordance with the latest FGS regulations, it happens that a thesis using the template does not conform to some requirements. We greatly appreciate any reports about the corrections, and our first step is to list such issues in this subsection. Additionally, we report here any other reported problems.

^ 1.6 Other Similar Templates

At an ad-hoc committee meeting on Jun 14, 2012, it was decided that a common Dalhousie LaTeX thesis template to be created, and this site is the result of such effort. A number of other LaTeX templates at the Dalhousie University exist, and here is a list of them (if you know of any other, please email Vlado Keselj at vlado@dnlp.ca):

^ 2. Package dalthesis

The main file offered by this site is the LaTeX class file dalthesis.cls but this package comes with some documentation and examples. All files are included in the following zip file: dalthesis.zip
The content of this zip file are the following files:
dalthesis.cls, MANIFEST, thesis.tex, thesis.bib, thesis.pdf, index.html, styles.css, afterpage.sty, glossary.sty, example-simple/thesis.tex, example-simple/thesis.bib, example-simple/thesis.pdf, example-simple/Makefile, example-simple/dalthesis.cls, example-glossary/glossary.sty, example-glossary/glossary.tex, example-glossary/glossary.pdf, example-glossary/Makefile, example-glossary/simple.bib,

^ 3. Examples of Parts to a Thesis

[ Front Pages | Figures | Tables | Algorithms | Theorems | Glossary (List of Abbreviations and Symbols Used) ]

^ 3.1 Front Pages

According to current regulations, an abstract should occupy a single page. It may be typeset in the single space mode, if necessary. To obtain the single-space mode you need to specify the beginning tag as:

\begin{abstract}[s]
instead of the usual
\begin{abstract}
The abstract should have no illustrations or footnotes, and it should be no longer than 150 words for a Master's thesis, and not longer than 350 words for a PhD thesis. This is not a strict requirement, but it is required by the catalogues: the AMICUS Web on-line catalogue and Dissertations Abstracts International database.

^ 3.2 Figures

The example included here uses two LaTeX subpackages: graphicx and subfigure. The graphicx package is quite common and useful to include external images. The current FGS requirements (2011-04) require that a thesis is submitted in the PDF format, for the electronic submission, and it should be PDF/A compliant. This requires that all fonts are embedded, among other requirements. To obtain such format, it is recommended that you use pdflatex, instead of producing a DVI file and then a PS file. All EPS figures need to be converted to PDF as well. You can use epstopdf command (in Linux environment) to convert an EPS figure to PDF. For example, to convert a f.eps file to pdf, type "epstopdf f.eps", and it will produce "f.pdf" file, usable as a figure by pdflatex.

This example uses two sub-packages: graphicx and subfigure. graphicx is a standard package that gives you everything you need for figures. The subfigure package is used here to place more than one picture (each with their own caption) within one figure.

Diff with "simple.tex" (< means a line was removed, > means that a line was added):

% diff simple.tex figures.tex
1,4c1,7
< % simple.tex - simple Master's thesis sample
< \documentclass[12pt]{dalthesis}
< % to prepare draft version use option draft:
< %\documentclass[12pt,draft]{dalthesis}
---
> % dalcsthesis examples/figures.tex
> % $Id: figures.tex 307 2011-01-21 14:00:38Z vlado $
> \documentclass[12pt]{dalcsthesis}
> 
> %Figures -- these packages let you do some extra things with figures.
> \usepackage[dvips]{graphicx}
> \usepackage{subfigure}
6a10
> 
12,13c16,17
< \defenceyear{2010}
< \convocation{May}{2011}
---
> \defenceyear{2006}
> \convocation{May}{2007}
59a64,90
> 
> Every dissertation should consider having nice figures like Figure~\ref{fig-steiner_growth}.
> 
> \begin{figure}
>   \centering
>      {\includegraphics[height = 3.0 in]{samplefig}}
>   \caption{\label{fig-steiner_growth} Growth patterns for Steiner
>     graph versus original lattice. Note the logarithmic scale.}
> \end{figure}
> 
> Sometimes it is useful to group figures together. 
> Figure~\ref{fig-partial_compare} is an example of using the subfigure style.
> 
> \begin{figure}
>   \centering
>   \subfigure[Caption A]{\includegraphics[width = 2.75 in]{samplefig}}\qquad
>   \subfigure[Caption B]{\includegraphics[width = 2.75 in]{samplefig}}\qquad
>   \subfigure[Caption C]{\includegraphics[width = 2.75 in]{samplefig}}\qquad
>   \subfigure[Caption D]{\includegraphics[width = 2.75 in]{samplefig}}
>   \caption{\label{fig-partial_compare}Relative weight reduction for the
>   schedule trees produced on subsets of size (a) 10\% (b) 25\% (c)
>   50\% (d) 75\%. The baseline in this case is chosen as the
>   smaller of (i) a sort of the raw data set for each view or (ii)
>   computation of the full cube.}
> \end{figure}
> 
> Thanks to Todd Eavis for providing the figures and usage method for the package.

^ 3.3 Tables

Tables have native support in LaTeX. This one uses a tabular inner environment to give a pretty layout to the data.

Diff with "simple.tex" (< means a line was removed, > means that a line was added):

% diff simple.tex tables.tex
1,4c1,2
< % simple.tex - simple Master's thesis sample
< \documentclass[12pt]{dalthesis}
< % to prepare draft version use option draft:
< %\documentclass[12pt,draft]{dalthesis}
---
> % Version 2006-12-05
> \documentclass[12pt]{dalcsthesis}
6a5
> 
12,13c11,12
< \defenceyear{2010}
< \convocation{May}{2011}
---
> \defenceyear{2006}
> \convocation{May}{2007}
22c21
< \nolistoftables
---
> 
59a59,77
> 
> Tables are native to LaTeX.  Table~\ref{tab-steiner_growth} shows a
> tabular environment within a table.
> 
> \begin{table}[tbh]
> \centering
> \begin{tabular}{|r|r|r|r|r|}
>     \hline
>     Dimensions & Lattice Nodes & Lattice Edges & Steiner Nodes & Steiner Edges \\
>     \hline \hline
>     3 & 8 & 12 & 16 & 117 \\
>     \hline
>     4 & 16 & 32 & 65 & 1948 \\
>     \hline
> \end{tabular}
>  \caption{\label{tab-steiner_growth}Growth patterns for Steiner
>     graph versus original lattice in tabular form}
> \end{table}
> 

^ 3.4 Algorithms

This example uses two sub-packages: algorithm and algorithmic. There are other algorithm packages that exist that you might consider too. The algorithms don't appear in any table of contents unless you enclose them in a figure environment.

Diff with "simple.tex" (< means a line was removed, > means that a line was added):

% diff simple.tex tables.tex
1,4c1,6
< % simple.tex - simple Master's thesis sample
< \documentclass[12pt]{dalthesis}
< % to prepare draft version use option draft:
< %\documentclass[12pt,draft]{dalthesis}
---
> % Version 2006-12-05
> \documentclass[12pt]{dalcsthesis}
> 
> % Algorithms
> \usepackage{algorithmic}
> \usepackage{algorithm}
6a9
> 
12,13c15,16
< \defenceyear{2010}
< \convocation{May}{2011}
---
> \defenceyear{2006}
> \convocation{May}{2007}
59a63,103
> 
> \begin{algorithm}
> 
>  \caption{Add Non Essential Views}
>  \label{alg-add_non_essential_views}
> 
>  \begin{algorithmic}[1]
> 
>     \INPUT A tree $E$ consisting of the selected group-bys, and a
>     guiding graph $G$. Also used are auxiliary variables $BP$
>     (best plan) and $CP$ (current plan).
> 
>     \OUTPUT Reduced tree $R$.
> 
>     \COMMENT{Add nodes from $G - R$ to $E$ as long as the total
>     cost improves}
> 
>     \REPEAT
>         \STATE clear $BP$
> 
>         \FOR{every $v \: in \: G - R$}
>             \STATE clear $CP$
>             \STATE $CP.node = v$
>             \STATE {\sf FindBestParent(R, CP)}
>             \STATE {\sf FindBestChildren(R, CP)}
> 
>             \IF{ {\em CP.benefit\/} $>$ {\em BP.benefit\/} }
>                 \STATE $BP = CP$
>             \ENDIF
>         \ENDFOR
> 
>         \IF{ {\em BP.benefit\/} $> 0$}
>             \STATE add $BP.node$ to $R$ and update $R$ accordingly
>         \ENDIF
> 
>     \UNTIL{ {\em BP.benefit\/} $<= 0$}
> 
>  \end{algorithmic}
> \end{algorithm}
> 
> Thanks to Todd Eavis for providing the sample algorithm.

^ 3.5 Theorems

The example theorems.tex (pdf) illustrates how we can write definitions, theorems, proofs, and other similar parts in LaTeX.

Diff with "simple.tex" (< means a line was removed, > means that a line was added):

% diff simple.tex theorems.tex
1,4c1,11
< % simple.tex - simple Master's thesis sample
< \documentclass[12pt]{dalthesis}
< % to prepare draft version use option draft:
< %\documentclass[12pt,draft]{dalthesis}
---
> % Version 2006-12-05
> \documentclass[12pt]{dalcsthesis}
> 
> % Definitions, Theorems, Lemmas, etc.
> \newtheorem{definition}{Definition}
> \newtheorem{theorem}{Theorem}
> \newtheorem{lemma}{Lemma}
> 
> % A simple proof environment
> \newenvironment{proof}{\paragraph{Proof.}}
> {\nopagebreak\hfill\nopagebreak\rule{2mm}{2mm}\par\bigskip}
6a14
> 
12,13c20,21
< \defenceyear{2010}
< \convocation{May}{2011}
---
> \defenceyear{2006}
> \convocation{May}{2007}
56a65,76
> 
> Theorem~\ref{theorem-sample} is a sample theorem.
> 
> \begin{theorem}[Optional title] \label{theorem-sample}
>     This is a theorem!
> \end{theorem}
> 
> \begin{proof}
>     This is the proof.
> 
>     Here comes the Q.E.D. (quod erat demonstrandum) box.
> \end{proof}

For proofs and proof sketches you can also use the style package written by Norbert Zeh, nzproof.sty. The package requires the following other style files: amsmath.sty, amssymb.sty, amsfonts.sty, and ifthen.sty, which are likely already installed on the system. This example shows how nzproof style file can be used. Thanks to Norbert Zeh for providing the style file and the sample LaTeX source.

Diff with "simple.tex" (< means a line was removed, > means that a line was added):

% diff simple.tex nzproof.tex
1,4c1,12
< % simple.tex - simple Master's thesis sample
< \documentclass[12pt]{dalthesis}
< % to prepare draft version use option draft:
< %\documentclass[12pt,draft]{dalthesis}
---
> % Version 2006-12-05
> \documentclass[12pt]{dalcsthesis}
> 
> %Theorem
> \usepackage{nzproof,theorem}
> \newtheorem{theorem}{Theorem}
> \newtheorem{proposition}{Proposition}
> \newtheorem{lemma}{Lemma}
> \newtheorem{definition}{Definition}
> \newtheorem{observation}{Observation}
> \newtheorem{corollary}{Corollary}
> \newtheorem{problem}{Problem}
6a15
> 
12,13c21,22
< \defenceyear{2010}
< \convocation{May}{2011}
---
> \defenceyear{2006}
> \convocation{May}{2007}
59a69,104
> 
> Theorem~\ref{theorem-greatest} is a sample theorem.  You could equally well
> make it a lemma, definition, proposition, observation, corollary, or problem.
> 
> \begin{theorem}
> 
>     \label{theorem-greatest}
> 
>     This is the greatest theorem!
> 
> \end{theorem}
> 
> \begin{pf}
>     Trivial. Just admire it obvious correctness!  Sometimes you just have to 
>     make things short enough that people believe the result right away.
> 
>     Then there are other times like this one where you're waiving your hands 
>     wildly and hoping that nobody notices...but they always do.
> 
>     Ending here, if I leave a blank line before the endproof line then the 
>     box appears on a separate line.  If I leave no line, like now, the box 
>     comes at the end of this line.
> \end{pf}
> 
> Or, you can do a proof sketch:
> 
> \begin{ps}
>     Just waive your hands around and make it look convincing.
> \end{ps}
> 
> Another alternative is to give a label to your proof, which can also be
> done to proof sketches:
> 
> \begin{pf}[Theorem~\ref{theorem-greatest}]
> This is a delated proof to a result stated earlier in the text.
> \end{pf}

^ 3.6 Glossary (List of Abbreviations and Symbols Used)

According to the FGS guidelines, two optional lists named:
List of Abbreviations and Symbols Used
and
Glossary
can be added after the abstract and before acknowledgements.

For generating glossaries it is recommended that you use the package glossaries as described in the following Overleaf page: https://www.overleaf.com/learn/latex/Glossaries

First, you need to include the package glossaries. It is also recommended to have the hyperref package, and in that case it should be included first. This is an example of including both packages with setting some defaults:

\usepackage[hidelinks]{hyperref}
% Example of some parameter modifications:
\hypersetup{
    colorlinks=true,
    linkcolor=blue,
    citecolor=black,
    filecolor=magenta,      
    urlcolor=black,
    }
% Now, we include glossaries:
\usepackage[acronym,toc]{glossaries}
% and we also include this command to prepare glossaries,
% before the first glossary entry:
\makeglossaries
The packages should be included in the preamble of the document; i.e., before the \begin{document} command, and the command \makeglossaries can be included in the preamble as well.

Immediately after the abstract and before acknowledgements you need to insert the commands for generating the List of Abbreviations and Symbols Used, and Glossary:

% The list of abbreviations and symbols:
\printglossary[type=acronym,
  title=List of Abbreviations and Symbols Used,
  toctitle=List of Abbreviations and Symbols Used,
  style=long3col
  ]

% The Glossary list:
\printglossary
The first command will generate the list of abbreviations and symbols, and the second will produce a glossary. The commands will not produce these lists if any of the abbreviations or glossary entries are not defined, so these commands can always be used whether we have these lists or not, or whether we have only one of them.

Defining new abbreviations or symbol explanations can be done anywhere in text using commands like these:

\newacronym{gcd}{GCD}{Greatest Common Divisor}
\newacronym{intersection}{$\cap$}{Set Intersection}

Defining terms for the glossary is done using a command like this:

\newglossaryentry{formula}
{ name=formula, description={A mathematical expression} }
The above definition can be divided across multiple lines.

The abbreviations and glossary entries can be mentioned in text using the following commands (they keys `formula' and `gcd' are used as examples):

All these commands will also record the abbreviation or the glossary term for the appropriate list of abbreviations or glossary, with the page number, and it will also generate a link from the term to the list.

The command \glsadd is particularly useful for math notation, because using a command like \acrshort would break an equation where we typically use a math symbol. We can use it for example like this:

\begin{equation}
A = B \cap C
\glsadd{intersection}
\end{equation}

Please consult further other information such as the page: https://www.overleaf.com/learn/latex/Glossaries

The record below shows the previously recommended and older way of creating glossaries in LaTeX. It does not seem to work in Overleaf if you are using that platform, and it is considered an older and less preferred way of generating glossaries. This part is planned to be eventually removed.

Previous Glossary Usage

This is the previous glossary usage and it will be kept here temporarily.

This example creates a List of Abbreviations and Symbols Used, which we will also call simply a glossary. The example uses the file glossary.sty, which may be installed on your system, or you can download it from here.

To create a glossary, you should first make the following modifications to your LaTeX source of the thesis. First, make the following line replacement: line:

< \documentclass[12pt]{dalthesis}
---
> \documentclass[12pt,glossary]{dalthesis}
or similar. In a thesis, as well as in this example, the location of the glossary is dictated by the Faculty of Graduate Studies: it must be between the abstract and the acknowledgements. We need to insert the following line at the appropriate position (between the abstract and the acknowledgements):
\printglossary
We should go now through the thesis and at any place where an abbreviation, symbol, or term appears, such as:
A Context-Free Grammar (CFG) is a four-tuple ...
we should add a command like this:
\glossary{name={CFG},description={Context-Free Grammar}}

Now, after running LaTeX on our source file, which may be named thesis.tex for exampl, we issue the command:

makeindex -s thesis.ist -o thesis.gls thesis.glo
and finally LaTeX the file once more. In the example distributed here, the file is called glossary.tex, so the command to be run is:
makeindex -s glossary.ist -o glossary.gls glossary.glo

The files provided in the glossary example are:

The following is the diff output between "simple.tex" and "glossary.tex", showing all changes (< means a line was removed, > means that a line was added):

% diff simple.tex glossary.tex
1,2c1,2
< % simple.tex - simple Master's thesis sample
< \documentclass[12pt]{dalthesis}
---
> % glossary.tex - thesis example with glossary
> \documentclass[12pt,glossary]{dalthesis}
6a7
> 
30a32,33
> \printglossary
> 
47,49c50,52
< preparation,
< methodology,
< forethought,
---
> preparation\glossary{name={Preparation},description={Getting ready to do something}},
> methodology\glossary{name={Methodology},description={The way to do something methodically}},
> forethought\glossary{name={Forethought},description={Thinking ahead}},
51c54
< analysis
---
> analysis\glossary{name={Analysis},description={Looking back at what you did to see what did or didn't work}}

^ 4. Administrative Notes

^ 4.1 About

The dalthesis LaTeX template is currently maintained by Vlado Keselj, and you can send him comments or questions at vlado+dalthesis@dnlp.ca.

Join the email list dalthesis.tex to discuss the format and receive update announcements by sending an email to vlado+dalthesis@dnlp.ca.

The dalthesis template has been created through a collective effort and we you can find the names of the contributors in the sections below.

^ 4.2 Acknowledgements

The dalthesis template arose out of the efforts of many people. Particular thanks go to the following contributors:

^ 4.3 Update History (ChangeLog)

The following template history notes are given in reversed chronological order:

^ 4.4 Previous Saved Versions of dalthesis (and dalcsthesis)

^ Last Update Information and the End

Last update: 05-Mar-2023

The end.