diff --git a/.fleet/run.json b/.fleet/run.json new file mode 100644 index 0000000..830e0d6 --- /dev/null +++ b/.fleet/run.json @@ -0,0 +1,96 @@ +{ + "configurations": [ + { + "type": "command", + "name": "make", + "program": "make", + "args": [ + "all" + ], + "dependsOn": [ + "clean" + ], + }, + { + "type": "command", + "name": "clean", + "program": "make", + "args": [ + "clean" + ], + }, + { + "type": "command", + "name": "unpack", + "program": "make", + "args": [ + "unpack" + ], + "dependsOn": [ + "clean" + ], + }, + { + "type": "command", + "name": "doc", + "program": "make", + "args": [ + "doc" + ], + "dependsOn": [ + "clean", + "unpack" + ], + }, + { + "type": "command", + "name": "template", + "program": "make", + "args": [ + "template" + ], + "dependsOn": [ + "clean", + "unpack" + ], + }, + { + "type": "command", + "name": "guide", + "program": "make", + "args": [ + "longtemplate" + ], + "dependsOn": [ + "clean", + "unpack" + ], + }, + { + "name": "tag", + "type": "command", + "program": "make", + "args": [ + "tag" + ], + "dependsOn": [ + "doc", + "unpack" + ], + }, + { + "name": "ctan", + "type": "command", + "program": "make", + "args": [ + "ctan" + ], + "dependsOn": [ + "clean", + "unpack", + "doc", + "tag" + ], + } + ] +} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 5f4f242..ae86bae 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,355 @@ *.out *.blg .DS_Store + +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +*.bbl +*.bbl* +*.fls +*.fdb* + *.lof + *.log + *.out + *.lot + *.run.xml + *.toc + +*/_build* +*/build* +build/* +_template/* +_build/* +*.tmp.dtx +mwe/maine-thesis.cls +template/maine-thesis.cls +mypersonaldata.lua +/maine-thesis.pdf +/maine-thesis-example.pdf +/*.zip +*.curlopt + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bbl-SAVE-ERROR +*.bcf +*.bcf-SAVE-ERROR +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync +*.rubbercache +rubber.cache + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# attachfile2 +*.atfi + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc +*.loc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glg-abr +*.glo +*.glo-abr +*.gls +*.gls-abr +*.glsdefs +*.lzo +*.lzs +*.slg +*.slo +*.sls + +# uncomment this for glossaries-extra (will ignore makeindex's style files!) +# *.ist + +# gnuplot +*.gnuplot +*.table + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.glog +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hypdoc +*.hd + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files +# *.tikz +*-tikzDictionary + +# latexindent will create succesive backup files by default +#*.bak* + +# listings +*.lol + +# luatexja-ruby +*.ltjruby + +# makeidx +*.idx +*.ilg +*.ind + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.data.minted +*.pyg + +# morewrites +*.mw + +# newpax +*.newpax + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# spelling +*.spell.bad +*.spell.txt + +# svg +svg-inkscape/ + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# titletoc +*.ptc + +# todonotes +*.tdo + +# vhistory +*.hst +*.ver + +# easy-todo +*.lod + +# xcolor +*.xcp + +# xmpincl +*.xmpi + +# xindy +*.xdy + +# xypic precompiled matrices and outlines +*.xyc +*.xyd + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# latexindent.pl +*.bak[0-9]* + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# gummi +.*.swp + +# KBibTeX +*~[0-9]* + +# TeXnicCenter +*.tps + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta + +# Makeindex log files +*.lpz + +# xwatermark package +*.xwm + +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. +#*Notes.bib diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..ec34e33 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,92 @@ +variables: + # The name for your generic package + PACKAGE_NAME: maine-thesis + # Use a minimal image with curl for the publish job + CURL_IMAGE: curlimages/curl:latest + +stages: + - build + - publish + - release + +build_assets: + stage: build + image: texlive/texlive:latest + script: + - make gitlab + artifacts: + # Save the entire output directory as an artifact + paths: + - build/distrib/gl/ + expire_in: 1 week + rules: + - if: $CI_COMMIT_TAG + +publish: + stage: publish + image: $CURL_IMAGE + needs: + # This job needs the artifacts from the build job + - job: build_assets + artifacts: true + script: + - echo "Uploading all files from build/distrib/gl/ to the package registry..." + # Use 'find' to locate all files in the artifact directory and its subdirectories + - | + find build/distrib/gl -type f | while read -r file; do + filename=$(basename "$file") + + # 1. Upload to the numbered version (e.g., v1.2.3) + echo "-> Uploading ${filename} to version ${CI_COMMIT_TAG}" + curl --fail --show-error --location --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \ + --upload-file "${file}" \ + "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${PACKAGE_NAME}/${CI_COMMIT_TAG}/${filename}" + + # 2. Upload the same file to the 'latest' version, overwriting any previous 'latest' file + echo "-> Uploading ${filename} to version 'latest'" + curl --fail --show-error --location --header "JOB-TOKEN: ${CI_JOB_TOKEN}" \ + --upload-file "${file}" \ + "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${PACKAGE_NAME}/latest/${filename}" + done + rules: + - if: $CI_COMMIT_TAG + +create_release: + stage: release + image: registry.gitlab.com/gitlab-org/release-cli:latest + needs: + - publish + variables: + # The base URL is still correct + PACKAGE_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/${PACKAGE_NAME}/${CI_COMMIT_TAG}" + script: + - | + # Use a more robust `sed` command to strip the leading 'v' + RELEASE_VERSION=$(echo "$CI_COMMIT_TAG" | sed 's/^v//') + echo "Original tag: $CI_COMMIT_TAG, Cleaned version: $RELEASE_VERSION" + artifacts: + reports: + # 2. Expose the .env file as a dotenv report. + # This makes RELEASE_VERSION available to the 'release' keyword below. + dotenv: release.env + release: + name: 'Release $CI_COMMIT_TAG' + tag_name: '$CI_COMMIT_TAG' + description: "Assets for this release are available in the package registry." + assets: + links: + - name: 'maine-thesis.cls' + url: '${PACKAGE_URL}/maine-thesis.cls' + - name: 'maine-thesis.tds.zip' + url: '${PACKAGE_URL}/maine-thesis.tds.zip' + - name: 'maine-thesis-template.zip' + url: '${PACKAGE_URL}/maine-thesis-template.zip' + # 3. Use the new, sanitized $RELEASE_VERSION variable here. + - name: 'maine-thesis-${RELEASE_VERSION}.zip' + url: '${PACKAGE_URL}/maine-thesis-${RELEASE_VERSION}.zip' + - name: 'maine-thesis.dtx' + url: '${PACKAGE_URL}/maine-thesis.dtx' + - name: 'maine-thesis.pdf' + url: '${PACKAGE_URL}/maine-thesis.pdf' + rules: + - if: $CI_COMMIT_TAG \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..00e1637 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,175 @@ +# Changelog + +## v2.0 +### File Structure and Maintenance +* The v1 class was a single, manually maintained `.cls` file. +* In v2, `maine-thesis.dtx` is a single source file that generates both the class file (`maine-thesis.cls`) and its documentation. This allows for a more streamlined and automated maintenance process. +* The `dtx` file format is part of a larger build system that uses `l3build` for unpacking and generating a CTAN-ready package. + +### Package and Dependency Updates +* The v1 class file used older packages for a variety of tasks. +* The v2 class has been refactored to use modern packages. For example, it now uses `biblatex` with the `biber` backend for citation management. The previous version did not specify the use of these packages and appears to have a simpler citation approach. +* New dependencies were added, including `fontspec`, `microtype`, `hyperref`, `csquotes`, `titlesec`, and `etoolbox`, which provide more robust font, typography, hyperlinking, and title formatting capabilities. + +### Formatting and User Interface +* The v1 class managed heading styles using a numerical counter (`\setcounter{head}`) with `\ifcase` logic. +* The v2 `maine-thesis.cls` uses named macros like `\apaheadings`, `\chicagoheadings`, and `\idecimalheadings` for a clearer and more direct way to set heading formats. +* The v2 provides a unified command for caption formatting with `\DeclareCaptionFormat{thesis}`. The original class handled captions through a redefinition of `\@makecaption` and other low-level commands. +* The title page and abstract environments were completely redesigned with the `\maketitlehooka` and `\maketitlehookd` commands, allowing for more precise control over the layout. + +### Code and Variable Changes +* The v1 class contained deprecated commands like `\libraryrights` and `\dissacceptance`. +* The v2 class removes these deprecated commands and replaces them with a `\ClassError` message, informing the user that the Graduate School no longer requires them. +* The `\preliminary` command in the v2 version now sets the `tocdepth` and `secnumdepth` to 1, while the v1 version used a different command for this purpose (`\settocdepth{chapter}`). +* The `\appendix` command in the v2 class now uses `\gdef` to globally change `\chaptername` to "Appendix" and the chapter counter to use alphabetical characters (`\thechapter{\@Alph\c@chapter}`). + +`\comment` +The comment command is now pulled from the `changes` packages with more extensive functionality. In v1.14 this command uses the `todonotes` package to create margin notes but also checks a conditional (`ifdraft`) to ensure the notes only appear in draft mode. + +`\highlight` +The highlight command is now pulled from the `changes` packages with more extensive functionality. In v1.14 this command uses the `soul` package to create margin notes but also checks a conditional (`ifdraft`) to ensure the notes only appear in draft mode. + +`\appendix` +The appendix command should no longer be used to define appendices; however, it is still supported in the appendix package (replacing custom appendix and heading table of contents functionality). + +`\multipleappendicestrue` +This command, located in `main.tex`, is a conditional that tells the template to use multiple appendices. If you only have one appendix, you should comment this line out. This has been replaced with the `multiappendices` option for the class. + +--- + +## Changes in v1.16 +* **Added University of Maine Graduate School Land Acknowledgment** + +--- + +## Changes in v1.15 +* **Add “APPENDICES” to title of first Appendix and TOC when multiple appendices are present.** + +--- + +## Changes in v1.14 +* **Ensured double spacing in chapter titles.** +* **Removed extra space above chapter titles.** +* **Removed extra space between chapters in list of figures and list of tables.** This is implemented as an option; you can add the space back (for unofficial copies) with the `loftspacing` option. +* **Changed "The University of Maine" to "the University of Maine" in the auto-sentence of the author biography.** +* **Reduced space between title and author name on abstract pages.** +* **Removed “Chapter” heading from TOC.** +* Fixed problem with link target (when using `hyperref`) and page number in TOC for the reference section. +* **Changed "The University of Maine" to "the University of Maine" in the auto-sentence of the author biography.** +* Improved capitalization enforcement for chapter headings and TOC entries. This should make redefining section names (as when using `babel`) much easier. +* Dropped 2-volume support. (Graduate School no longer needs a printed copy of the thesis.) +* Page number placement is now controlled by a class option. It's also more consistent in its application as a result. +* **Extra space before “Chapter” label in TOC has been removed.** +* “Chapter” and “Appendix” in chapter headings is now printed in all uppercase. +* **Tweaks to make 5-dot minimum in TOC leaders better respected.** Thanks to pmbean6 for this fix. +* **Use a pronoun instead of author name for the last sentence of author biography.** Users now need to define their preferred pronoun with the `\authorpronoun` command. Do not forget to capitalize the first letter of the pronoun. If no pronoun is provided, then the full author name will appear in the last sentence of the biography. +* **When figure/table captions are too long to go into the table of contents, the graduate school wants the entry in the table of contents to match the first sentence of caption exactly.** To facilitate this, the `\caption` command has been redefined so that the optional argument, if given, is automatically prepended to the caption text. Older theses, for which this new behavior would be undesirable, can turn it off with the `legacycaptions` option. +* **On title page, when the name and title of an advisor or committee member is long enough to wrap to a second line, that second line will be indented 1.5em** (the same as the indentation of a paragraph in the body of the thesis). + +--- + +## Changes in v1.13 +* The short form of the advisor's name can now be entered as an optional argument of `\principaladvisor`. +* Bugfix: `idecimal` and `jdecimal` heading styles were suppressing the section numbers. Thanks to pmbean6 for this fix. +* Margin widths have been tweaked a little so that they more closely conform to the guidelines. Thanks to pmbean6 for this fix. +* If you edited the class file to get justified text back, then subsection headings were being indented in `jdecimal` style. This has been fixed in preparation for later changes. Thanks to pmbean6 for this fix. +* Package conflict with `float` package has been resolved. Thanks to pmbean6 for this fix. Those updating a thesis should change listof environments to `thesislist`. +* Bugfix: The default setting of `\parindent` was being forced to 0, which was not as intended. +* Indentation for the headings has been decoupled from `\parindent` and is now tied to `\headindent`. +* Added some basic metadata (title and author) handling when `hyperref` is loaded. Thanks to pmbean6 for this enhancement. +* **Adjusted page numbering to account for the removal of the Dissertation Acceptance page.** + +--- + +## Changes in v1.12 +* **Eliminated Dissertation Acceptance and Library Rights Statement pages.** + +--- + +## Changes in v1.11 +* **Replaced “thesis” with `\@type` on the Library Rights page.** +* **Labels for signature lines now use the same size font as the rest of the thesis (they were formerly reduced).** +* **The gap between the title and the text on the Dissertation Acceptance and Library Rights page has been reduced.** +* **The mandatory sentence at the end of the Author Biography (and which the class file produces automatically) is no longer its own paragraph.** +* **The default headings system has been modified to make it match more closely with the justified decimal example in the Guidelines.** +* Two additional headings systems (`headings` and `idecimal`) have been added. These are based on the headings and indented decimal examples in the Guidelines. +* **Improved Widow/Orphan protection in the TOC.** +* **Improved Widow/Orphan protection in the bibliography.** + +--- + +## Changes in v1.10 +* **Alignment of multi-line table of contents entries for Appendices altered.** +* 5-dot leader minimum code reworked to be more robust. + +--- + +## Changes in v1.9 +* **Acceptance Page title consolidated to a single line.** +* **Removed “Submitted for graduation...” from the Acceptance Page.** + +--- + +## Changes in v1.8 +* **Hyphenation disabled.** +* **Full justification disabled.** + +--- + +## Changes in v1.7 +* Added `\highlight` command. +* Modifications to `\pocket` to make its ToC entries match other chapter-level entries. +* Added two-volume support. +* Made some modifications to help with widow/orphan control in the ToC. + +--- + +## Changes in v1.6 +* **Changed line length for multiple line entries in the ToC.** +* **Removed the multiple appendices “Appendices” header from the ToC.** +* Added `twoside` option. +* Added `unbound` option. +* Added hooks to alter heading styles. +* Added `chicago` and `apa` options to switch headings automatically to the appropriate style. + +--- + +## Changes in v1.5 +* License Changed to LPPL v1.3c. +* Generalized Dissertation Acceptance Page. +* Changed to the signature line on the Library Rights Page. +* Fixed delimiter in figure and table captions. +* Unified `\copyrightyear{...}` and `\copyrightpage` into a single command. +* Refined support for two advisors and the number of committee members. +* Removed support for External Reader on the title page. +* Created patch code to fix list of tables and list of figures when `hyperref` is used. +* Added `layabstract` environment. +* Added `listof` environment. +* Changed font for `verbatim` environment and `\verb` command. +* Fixed typesetting of dedication. +* General file maintenance. +* Added insertion of “Appendices” to ToC when there are multiple appendices. +* Modified `biography` environment to auto-generate the last sentence. +* Made identification of the number of advisors and committee members automatic. +* Removed `\appsection{...}` as it is redundant with `\section*{...}`. +* Changed the way “Chapters” and “Appendices” are added to the TOC. +* Added `tocvsec2` dependence to make the change in TOC depth for the front matter and appendices automatic. +* Modified `preface` environment to make the non-numbering of its sections, subsections, etc. automatic. +* Reserved `\part` for multiple volume support. +* Added `\pocket`. +* Defined a pseudo `\texorpdfstring` command for use in chapter titles. When `hyperref` is loaded (and defines the command properly) this has the effect of hiding `\MakeUppercase` commands from `hyperref`. +* Made Preface, Dedication, and Acknowledgements double spaced. +* Created type variables and commands that allow switching to “thesis” or “project” instead of “dissertation.” +* Removed footnote rule. +* Renamed `\labelchaptersintoc` to `\toclabel`, generalized its function, and made it compatible with `hyperref`. +* Added commands to compress the title page when needed. + +--- + +## Changes prior to v1.5 +This list is not entirely complete but is a best reconstruction as I can manage. Changes were not logged prior to v1.5. +* Added Dissertation Acceptance Page. +* Added support for 6-member committees. +* Removed Boldface from TOC entries. +* Reduced size of chapter and section headers to match text font, both in place and TOC entries. +* Added support for two advisors. \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..0693072 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,69 @@ +# Code of Conduct - maine-thesis + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to make participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behaviour that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologising to those affected by our mistakes, +and learning from the experience +* Focusing on what is best not just for us as individuals, but for the +overall community + +Examples of unacceptable behaviour include: + +* The use of sexualised language or imagery, and sexual attention or advances +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email +address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a +professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying and enforcing our standards of +acceptable behaviour and will take appropriate and fair corrective action in +response to any instances of unacceptable behaviour. + +Project maintainers have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, or to ban +temporarily or permanently any contributor for other behaviours that they deem +inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behaviour may be +reported to the community leaders responsible for enforcement at . +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant](https://contributor-covenant.org/), version +[1.4](https://www.contributor-covenant.org/version/1/4/code-of-conduct/code_of_conduct.md) and +[2.0](https://www.contributor-covenant.org/version/2/0/code_of_conduct/code_of_conduct.md), +and was generated by [contributing.md](https://contributing.md/generator). \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..45b29e6 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,132 @@ + +# Contributing to maine-thesis + +First off, thanks for taking the time to contribute! ❤️ + +All types of contributions are encouraged and valued. See the [Table of Contents](#table-of-contents) for different ways to help and details about how this project handles them. Please make sure to read the relevant section before making your contribution. It will make it a lot easier for us maintainers and smooth out the experience for all involved. The community looks forward to your contributions. 🎉 + +> And if you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation, which we would also be very happy about: +> - Star the project +> - Tweet about it +> - Refer this project in your project's readme +> - Mention the project at local meetups and tell your friends/colleagues + + +## Table of Contents + +- [Code of Conduct](#code-of-conduct) +- [I Have a Question](#i-have-a-question) +- [I Want To Contribute](#i-want-to-contribute) +- [Reporting Bugs](#reporting-bugs) +- [Suggesting Enhancements](#suggesting-enhancements) +- [Your First Code Contribution](#your-first-code-contribution) +- [Improving The Documentation](#improving-the-documentation) +- [Styleguides](#styleguides) +- [Commit Messages](#commit-messages) +- [Join The Project Team](#join-the-project-team) + + +## Code of Conduct + +This project and everyone participating in it is governed by the +[maine-thesis Code of Conduct](https://gitlab.com/maine-thesis/maine-thesis/blob/main/CODE_OF_CONDUCT.md). +By participating, you are expected to uphold this code. Please report unacceptable behavior +to . + + +## I Have a Question + +> If you want to ask a question, we assume that you have read the available [Documentation](). + +Before you ask a question, it is best to search for existing [Issues](https://gitlab.com/maine-thesis/maine-thesis/issues) that might help you. In case you have found a suitable issue and still need clarification, you can write your question in this issue. It is also advisable to search the internet for answers first. + +If you then still feel the need to ask a question and need clarification, we recommend the following: + +- Open an [Issue](https://gitlab.com/maine-thesis/maine-thesis/issues/new). +- Provide as much context as you can about what you're running into. +- Provide project and platform versions (nodejs, npm, etc), depending on what seems relevant. + +We will then take care of the issue as soon as possible. + + + +## I Want To Contribute + +> ### Legal Notice +> When contributing to this project, you must agree that you have authored 100% of the content, that you have the necessary rights to the content and that the content you contribute may be provided under the project licence. + +### Reporting Bugs + + +#### Before Submitting a Bug Report + +A good bug report shouldn't leave others needing to chase you up for more information. Therefore, we ask you to investigate carefully, collect information and describe the issue in detail in your report. Please complete the following steps in advance to help us fix any potential bug as fast as possible. + +- Make sure that you are using the latest version. +- Determine if your bug is really a bug and not an error on your side e.g. using incompatible environment components/versions (Make sure that you have read the [documentation](). If you are looking for support, you might want to check [this section](#i-have-a-question)). +- To see if other users have experienced (and potentially already solved) the same issue you are having, check if there is not already a bug report existing for your bug or error in the [bug tracker](https://gitlab.com/maine-thesis/maine-thesis/issues?q=label%3Abug). +- Also make sure to search the internet (including Stack Overflow) to see if users outside of the GitHub community have discussed the issue. +- Collect information about the bug: +- Stack trace (Traceback) +- OS, Platform and Version (Windows, Linux, macOS, x86, ARM) +- Version of the interpreter, compiler, SDK, runtime environment, package manager, depending on what seems relevant. +- Possibly your input and the output +- Can you reliably reproduce the issue? And can you also reproduce it with older versions? + + +#### How Do I Submit a Good Bug Report? + +> You must never report security related issues, vulnerabilities or bugs including sensitive information to the issue tracker, or elsewhere in public. Instead sensitive bugs must be sent by email to . + + +We use GitHub issues to track bugs and errors. If you run into an issue with the project: + +- Open an [Issue](https://gitlab.com/maine-thesis/maine-thesis/issues/new). (Since we can't be sure at this point whether it is a bug or not, we ask you not to talk about a bug yet and not to label the issue.) +- Explain the behavior you would expect and the actual behavior. +- Please provide as much context as possible and describe the *reproduction steps* that someone else can follow to recreate the issue on their own. This usually includes your code. For good bug reports you should isolate the problem and create a reduced test case. +- Provide the information you collected in the previous section. + +Once it's filed: + +- The project team will label the issue accordingly. +- A team member will try to reproduce the issue with your provided steps. If there are no reproduction steps or no obvious way to reproduce the issue, the team will ask you for those steps and mark the issue as `needs-repro`. Bugs with the `needs-repro` tag will not be addressed until they are reproduced. +- If the team is able to reproduce the issue, it will be marked `needs-fix`, as well as possibly other tags (such as `critical`), and the issue will be left to be [implemented by someone](#your-first-code-contribution). + + + + +### Suggesting Enhancements + +This section guides you through submitting an enhancement suggestion for maine-thesis, **including completely new features and minor improvements to existing functionality**. Following these guidelines will help maintainers and the community to understand your suggestion and find related suggestions. + + +#### Before Submitting an Enhancement + +- Make sure that you are using the latest version. +- Read the [documentation]() carefully and find out if the functionality is already covered, maybe by an individual configuration. +- Perform a [search](https://gitlab.com/maine-thesis/maine-thesis/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one. +- Find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. Keep in mind that we want features that will be useful to the majority of our users and not just a small subset. If you're just targeting a minority of users, consider writing an add-on/plugin library. + + +#### How Do I Submit a Good Enhancement Suggestion? + +Enhancement suggestions are tracked as [GitHub issues](https://gitlab.com/maine-thesis/maine-thesis/issues). + +- Use a **clear and descriptive title** for the issue to identify the suggestion. +- Provide a **step-by-step description of the suggested enhancement** in as many details as possible. +- **Describe the current behavior** and **explain which behavior you expected to see instead** and why. At this point you can also tell which alternatives do not work for you. +- You may want to **include screenshots or screen recordings** which help you demonstrate the steps or point out the part which the suggestion is related to. You can use [LICEcap](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and the built-in [screen recorder in GNOME](https://help.gnome.org/users/gnome-help/stable/screen-shot-record.html.en) or [SimpleScreenRecorder](https://github.com/MaartenBaert/ssr) on Linux. +- **Explain why this enhancement would be useful** to most maine-thesis users. You may also want to point out the other projects that solved it better and which could serve as inspiration. \ No newline at end of file diff --git a/Documentation/Main.bbl b/Documentation/Main.bbl deleted file mode 100644 index 3c51c29..0000000 --- a/Documentation/Main.bbl +++ /dev/null @@ -1,55 +0,0 @@ -\begin{thebibliography}{7} -\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi -\expandafter\ifx\csname bibnamefont\endcsname\relax - \def\bibnamefont#1{#1}\fi -\expandafter\ifx\csname bibfnamefont\endcsname\relax - \def\bibfnamefont#1{#1}\fi -\expandafter\ifx\csname citenamefont\endcsname\relax - \def\citenamefont#1{#1}\fi -\expandafter\ifx\csname url\endcsname\relax - \def\url#1{\texttt{#1}}\fi -\expandafter\ifx\csname urlprefix\endcsname\relax\def\urlprefix{URL }\fi -\providecommand{\bibinfo}[2]{#2} -\providecommand{\eprint}[2][]{\url{#2}} - -\bibitem[{\citenamefont{Kopka and Daly}(2004)}]{Kopka:2004} -\bibinfo{author}{\bibfnamefont{H.}~\bibnamefont{Kopka}} \bibnamefont{and} - \bibinfo{author}{\bibfnamefont{P.~W.} \bibnamefont{Daly}}, - \emph{\bibinfo{title}{Guide to {\LaTeX}}} - (\bibinfo{publisher}{Addison-Wesley}, \bibinfo{year}{2004}), - \bibinfo{edition}{4th} ed. - -\bibitem[{\citenamefont{Mittelbach and Goossens}(2004)}]{Mittelbach:2004} -\bibinfo{author}{\bibfnamefont{F.}~\bibnamefont{Mittelbach}} \bibnamefont{and} - \bibinfo{author}{\bibfnamefont{M.}~\bibnamefont{Goossens}} - (\bibinfo{collaboration}{Braams, Johannes and Carlisle, David and Rowley, - Chris}), \emph{\bibinfo{title}{The {\LaTeX} Companion}} - (\bibinfo{publisher}{Addison-Wesley}, \bibinfo{year}{2004}), - \bibinfo{edition}{2nd} ed. - -\bibitem[{\citenamefont{Flynn}(2005)}]{Flynn:2005} -\bibinfo{author}{\bibfnamefont{P.}~\bibnamefont{Flynn}}, - \emph{\bibinfo{title}{Formatting Information: A beginner's guide to - typesetting with \LaTeX}} (\bibinfo{year}{2005}), - \urlprefix\url{http://www.sciweavers.org/books/beginners-introduction-typesetting-latex}. - -\bibitem[{\citenamefont{Feder}(2006)}]{Feder:2006} -\bibinfo{author}{\bibfnamefont{A.}~\bibnamefont{Feder}}, - \emph{\bibinfo{title}{{\textsc{Bib}\TeX}}} (\bibinfo{year}{2006}), - \urlprefix\url{http://www.bibtex.org}. - -\bibitem[{Bib()}]{BibDesk} -\emph{\bibinfo{title}{{BibDesk}}}, - \urlprefix\url{https://bibdesk.sourceforge.io}. - -\bibitem[{\citenamefont{Spray}(2007)}]{Spray:2007} -\bibinfo{author}{\bibfnamefont{J.}~\bibnamefont{Spray}}, - \emph{\bibinfo{title}{Referencer}} (\bibinfo{year}{2007}), - \urlprefix\url{http://icculus.org/referencer/}. - -\bibitem[{\citenamefont{Doron}(1999)}]{Doron:1999} -\bibinfo{author}{\bibfnamefont{E.}~\bibnamefont{Doron}}, - \emph{\bibinfo{title}{{BibDB}}} (\bibinfo{year}{1999}), - \urlprefix\url{https://www.mackichan.com/index.html?bibdb/default.htm}. - -\end{thebibliography} diff --git a/Documentation/Main.pdf b/Documentation/Main.pdf deleted file mode 100644 index 665bda4..0000000 Binary files a/Documentation/Main.pdf and /dev/null differ diff --git a/Documentation/maine-thesis.cls b/Documentation/maine-thesis.cls deleted file mode 100644 index 6066d65..0000000 --- a/Documentation/maine-thesis.cls +++ /dev/null @@ -1,1061 +0,0 @@ -%% Copyright (C) 2003 by Jim Kenneally -%% -%% This file may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license or (at your option) any later version. -%% -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainer of this work is R. Padraic Springuel. -%% Please report all bugs and problems (particularly formatting that -%% the UMaine Graduate School wants changed) to: -%% rpspringuel@gmail.com -%% - -%%%%%%%%%%%%%%%%%%%%% -% ------IDENTIFICATION------ -%%%%%%%%%%%%%%%%%%%%% -\ProvidesClass{maine-thesis}[2019/07/01 v1.14 Maine thesis class] - -\NeedsTeXFormat{LaTeX2e}[1999/12/01] - -%%%%%%%%%%%%%%%%%%%%% -% ------INITIAL CODE------ -%%%%%%%%%%%%%%%%%%%%% -\newif\ifdraft\draftfalse -\newif\iftwoside\twosidefalse -\newif\ifmt@official\mt@officialtrue -\newif\ifunbound\unboundfalse -\newif\ifmt@legacycaptions\mt@legacycaptionsfalse -\newif\ifmt@loftspace\mt@loftspacefalse -\newcommand\docsize{} -\newcommand\side{oneside} -\newcounter{secnumdefault} -\setcounter{secnumdefault}{3} -\newcounter{head} %Heading styles get numbered so that \ifcase can be used when determining which heading style is currently set instead of a nested set of \if and \else. -\setcounter{head}{1000} %The default value is set very large so that adding new styles shouldn't necessitate changing it. -\def\@margg{1.5in} -\def\mt@pagestyle{bottom} - -%%%%%%%%%%%%%%%%%%%%% -% ------DECLARATION OF OPTIONS------ -%%%%%%%%%%%%%%%%%%%%% -\DeclareOption{10pt}{\renewcommand\docsize{10pt}} -\DeclareOption{11pt}{\renewcommand\docsize{11pt}} -\DeclareOption{12pt}{\renewcommand\docsize{12pt}} -\DeclareOption{draft}{\drafttrue - \ExecuteOptions{10pt} - \PassOptionsToClass{draft}{report} - \newcommand{\drafttext}{\sffamily\small{DRAFT} - \mt@officialfalse} -} -\DeclareOption{twoside}{\mt@officialfalse\unboundfalse\twosidetrue\renewcommand\side{twoside}\def\@margg{1.5in}} -\DeclareOption{oneside}{\mt@officialfalse\unboundfalse\renewcommand\side{oneside}\def\@margg{1.5in}} -\DeclareOption{unbound}{\mt@officialtrue\unboundtrue\def\@margg{1in}} -\DeclareOption{apa}{\setcounter{secnumdefault}{0}\setcounter{head}{0}} -\DeclareOption{chicago}{\setcounter{secnumdefault}{0}\setcounter{head}{1}} -\DeclareOption{headings}{\setcounter{secnumdefault}{0}\setcounter{head}{2}} -\DeclareOption{idecimal}{\setcounter{secnumdefault}{3}\setcounter{head}{3}} -\DeclareOption{jdecimal}{\setcounter{secnumdefault}{3}\setcounter{head}{1000}} -\DeclareOption{legacycaptions}{\mt@legacycaptionstrue} -\DeclareOption{pagenumberbottom}{\def\mt@pagestyle{bottom}} -\DeclareOption{pagenumbertop}{\def\mt@pagestyle{top}} -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} -\DeclareOption{loftspacing}{\mt@loftspacetrue\mt@officialfalse} - -%%%%%%%%%%%%%%%%%%%%% -% ------EXECUTION OF OPTIONS------ -%%%%%%%%%%%%%%%%%%%%% -\ExecuteOptions{12pt,unbound} -\ProcessOptions - -%%%%%%%%%%%%%%%%%%%%% -% ------PACKAGE LOADING------ -%%%%%%%%%%%%%%%%%%%%% -\LoadClass[\docsize,\side]{report}[2007/10/19 v1.4h Standard LaTeX document class] -\RequirePackage[T1]{fontenc}[2005/09/27 v1.99g Standard LaTeX package] -\RequirePackage{color}[2005/11/14 v1.0j Standard LaTeX Color (DPC)] -\RequirePackage{tocvsec2}[2010/02/27 v1.2b variable ToC section entries] -\RequirePackage[norule]{footmisc}[2009/09/15 v5.5a a miscellany of footnote facilities] -\RequirePackage{soul}[2003/11/17 v2.4 letterspacing/underlining (mf)] -\RequirePackage{afterpackage}[2006/01/17 v1.1 Apply Commands After Package (NCC)] -\RequirePackage{etoolbox}[2015/08/02 v2.2a e-TeX tools for LaTeX (JAW)] -\RequirePackage[none]{hyphenat}[2009/09/02 v2.3c hyphenation utilities] -\RequirePackage{iftex}[2013/04/04 v0.2 Provides if(tex) conditional for PDFTeX, XeTeX, and LuaTeX] -\RequirePackage{geometry}[2010/09/12 v5.6 Page Geometry] -\RequirePackage{xstring}[2013/10/13 v1.7c String manipulations (C Tellechea)] -\AfterPackage{hyperref}{% There are a few changes that are required for the hyperref package, so we make those changes if it is loaded. - \hypersetup{ pdfdisplaydoctitle=true} - \AtBeginDocument{ - \hypersetup{ - pdftitle=\@title, - pdfauthor=\@author, - pdfcreator=\relax, - pdfproducer=\relax % These could be changed, but for the thesis, I left them blank. - } - } - % Graduate School requirements mandate a slight modification to hyperref's - % redefinition of the caption command. - \long\def\@caption#1[#2]#3{% - \ifmt@legacycaptions% - \def\mt@captiontext{#3}% - \else% - \IfStrEq{#2}{#3}{\def\mt@captiontext{#3}}{\def\mt@captiontext{#2\ \ignorespaces#3}}% - \fi% - \expandafter\ifx\csname if@capstart\expandafter\endcsname - \csname iftrue\endcsname - \global\let\@currentHref\hc@currentHref - \else - \hyper@makecurrent{\@captype}% - \fi - \@ifundefined{NR@gettitle}{% - \def\@currentlabelname{#2}% - }{% - \NR@gettitle{#2}% - }% - \par\addcontentsline{\csname ext@#1\endcsname}{#1}{% - \protect\numberline{\csname fnum@#1\endcsname}{\ignorespaces #2}% - }% - \begingroup - \@parboxrestore - \if@minipage - \@setminipage - \fi - \normalsize - \expandafter\ifx\csname if@capstart\expandafter\endcsname - \csname iftrue\endcsname - \global\@capstartfalse - \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces\mt@captiontext}% - \else - \@makecaption{\csname fnum@#1\endcsname}{% - \ignorespaces - \ifHy@nesting - \expandafter\hyper@@anchor\expandafter{\@currentHref}{\mt@captiontext}% - \else - \Hy@raisedlink{% - \expandafter\hyper@@anchor\expandafter{% - \@currentHref - }{\relax}% - }% - \mt@captiontext% - \fi - }% - \fi - \par - \endgroup - } -} -\PassOptionsToPackage{caption=false}{subfig} - -\ifPDFTeX - \pdfsuppressptexinfo=-1 %to remove some useless tags generated by pdftex -\fi - -%%%%%%%%%%%%%%%%%%%%% -% ------MAIN CODE------ -%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%% -% Variable Declarations -%%%%%%%%%%%%%%%%%%%%% - -\def\@title{} -\def\@author{} -\def\@authorpronoun{} -\def\@degreesheld{} -\def\@degree{} -\def\@program{} -\def\@submitdate{} -\def\@principaladvisor{} -\def\@secondadvisor{} -\def\@principalshort{} -\def\@firstreader{} -\def\@secondreader{} -\def\@thirdreader{} -\def\@fourthreader{} -\def\@fifthreader{} -\def\@bibfiles{} -\def\@type{Dissertation} -\def\@LastLevel{0} - -\newif\ifmultipleappendices\multipleappendicesfalse -\newif\ifcopyrightpage\copyrightpagefalse -\newif\ifbigtitlepage\bigtitlepagefalse -\newif\ifverybigtitlepage\verybigtitlepagefalse -\newif\ifapp\appfalse - -\newcount\numcomm \numcomm=4 -\newcount\numadv \numadv=1 - -\renewcommand*\contentsname{Table of Contents} -\renewcommand*\bibname{References} -\renewcommand*\indexname{INDEX} -\renewcommand*\chaptername{Chapter} -\renewcommand*\appendixname{Appendix} -\newcommand*\listname{List of} -\newcommand*\chapternamep{\chaptername s} -\newcommand*\prefacename{Preface} -\newcommand*\acknowledgename{Acknowledgements} -\newcommand*\dedicationname{Dedication} -\newcommand*\bioname{Biography of the Author} - -%%%%%%%%%%%%%%%%%%%%% -% Variable Modification Commands -%%%%%%%%%%%%%%%%%%%%% -\renewcommand{\author}[1]{% - \ifx\empty#1\empty\else\gdef\@author{#1}\fi} -\newcommand{\authorpronoun}[1]{% - \ifx\empty#1\empty\else\gdef\@authorpronoun{#1}\fi} -\renewcommand{\title}[1]{% - \ifx\empty#1\empty\else\gdef\@title{#1}\fi} -\newcommand{\degreesheld}[1]{% - \ifx\empty#1\empty\else\gdef\@degreesheld{#1}\fi} -\newcommand{\degree}[1]{% - \ifx\empty#1\empty\else\gdef\@degree{#1}\fi} -\newcommand{\program}[1]{% - \ifx\empty#1\empty\else\gdef\@program{#1}\fi} -\newcommand{\submitdate}[1]{% - \ifx\empty#1\empty\else\gdef\@submitdate{#1}\fi} -\newcommand{\principaladvisor}[2][\empty]{% - \ifx\empty#1\empty\else\gdef\@principalshort{\sloppy#1}\fi% - \ifx\empty#2\empty\else\gdef\@principaladvisor{\sloppy#2}\fi% - } -\newcommand{\secondadvisor}[1]{% - \ifx\empty#1\empty\else\gdef\@secondadvisor{\sloppy#1}\fi - \twoadvisors} -\newcommand{\principalshort}[1]{% - \ifx\empty#1\empty\else\gdef\@principalshort{#1}\fi} -\newcommand{\firstreader}[1]{% - \ifx\empty#1\empty\else\gdef\@firstreader{\sloppy#1}\fi - \members{1}} -\newcommand{\secondreader}[1]{% - \ifx\empty#1\empty\else\gdef\@secondreader{\sloppy#1}\fi - \members{2}} -\newcommand{\thirdreader}[1]{% - \ifx\empty#1\empty\else\gdef\@thirdreader{\sloppy#1}\fi - \members{3}} -\newcommand{\fourthreader}[1]{% - \ifx\empty#1\empty\else\gdef\@fourthreader{\sloppy#1}\fi - \members{4}} -\newcommand{\fifthreader}[1]{% - \ifx\empty#1\empty\else\gdef\@fifthreader{\sloppy#1}\fi - \members{5}} -\newcommand{\bibfiles}[1]{% - \ifx\empty#1\empty\else\gdef\@bibfiles{#1}\fi} -\newcommand{\members}[1]{\numcomm=#1} -\newcommand{\twoadvisors}{\numadv=2} -\newcommand{\oneadvisor}{\numadv=1} -\newcommand{\thesis}{ - \gdef\@type{Thesis}} -\newcommand{\project}{ - \gdef\@type{Project}} -\newcommand{\compresstitlepage}[1][1]{ - \ifcase#1 - \relax - \or - \bigtitlepagetrue - \or - \bigtitlepagetrue - \verybigtitlepagetrue - \fi -} - -%%%%%%%%%%%%%%%%%%%%% -% Special Commands -%%%%%%%%%%%%%%%%%%%%% -\newcommand{\comment}[1]{ - \ifdraft - \marginpar{ - \color{red}\flushleft\scriptsize\setlength{\baselineskip}{7pt} - {\MakeUppercase{Note}: #1}} - \fi -} - -\newcommand{\ignore}[1]{} - -\newcommand{\toclabel}[1]{% - \addtocontents{toc}{\protect\pagebreak[3]} - \addtocontents{toc}{\addvspace{1em \@plus\p@} - \parindent \z@ \rightskip \@pnumwidth - #1}% -} - -\newcommand{\pocket}[1]{ - \refstepcounter{chapter} - \addtocontents{toc}{\protect\pagebreak[2]\vskip 10pt plus 1pt minus 1pt} - \ifapp - \ifmultipleappendices - \typeout{<---- Appendix \thechapter ---->} - \addtocontents{toc}{\protect\@dottedtocline{0}{0em}{1.4em}{\MakeUppercase{\appendixname}\space\thechapter\space -- \texorpdfstring{\MakeUppercase{#1}}{#1}}{Pocket}} - \else - \typeout{<---- APPENDIX ---->}% - \addtocontents{toc}{\protect\@dottedtocline{0}{0em}{1.4em}{\MakeUppercase{\appendixname}\space -- \texorpdfstring{\MakeUppercase{#1}}{#1}}{Pocket}} - \fi - \else - \typeout{*** \@chapapp\space\thechapter\space ****} - \addtocontents{toc}{\protect\@dottedtocline{0}{0em}{1.4em}{\protect\numberline{\thechapter.}\space\texorpdfstring{\MakeUppercase{#1}}{#1}}{Pocket}} - \fi - \ifmt@loftspace - \addtocontents{lof}{\protect\addvspace{\loftspacing\p@}} - \addtocontents{lot}{\protect\addvspace{\loftspacing\p@}} - \fi -} - -\newcommand{\highlight}[1]{% - \ifdraft% - \hl{#1}% - \else% - #1% - \fi% -} - -%This is a dummy command defined to improve hyperref compatibility. -\newcommand{\texorpdfstring}[2]{% - #1 -} - -%%%%%%%%%%%%%%%%%%%%% -% General Formating Declarations -%%%%%%%%%%%%%%%%%%%%% -\geometry{ - letterpaper, - margin=1in, - left=\@margg, - headsep=0.4in, - headheight=14pt, - footskip=30pt, - marginparwidth=40pt, - marginparsep=10pt} - -\setcounter{secnumdepth}{\value{secnumdefault}} -\setcounter{tocdepth}{\value{secnumdepth}} -\raggedbottom -\raggedright -\parindent=1.5em\relax -\markboth{}{} -\clubpenalty=10000 -\widowpenalty=10000 - -\def\verbatim@font{\rmfamily} - -\def\setspace@size{% - \ifx \@currsize \normalsize - \@normalsize - \else - \@currsize - \fi -} - -\def\doublespacing{% - \ifcase \@ptsize \relax - \def\baselinestretch{1.667} - \or - \def\baselinestretch{1.618} - \or - \def\baselinestretch{1.655} - \fi - \setspace@size -} - -\def\onehalfspacing{% - \ifcase \@ptsize \relax - \def\baselinestretch{1.25} - \or - \def\baselinestretch{1.213} - \or - \def\baselinestretch{1.241} - \fi - \setspace@size -} - -\def\singlespacing{% - \def\baselinestretch{1} - \setspace@size - \vskip \baselineskip -} - -\newcommand*\loftspacing{10} - -%%%%%%%%%%%%%%%%%%%%% -% Header Formatting Declarations -%%%%%%%%%%%%%%%%%%%%% - -\newcommand*\chaptersize{\normalsize} - -\newlength{\sectionpost} -\newlength{\subsectionpost} -\newlength{\subsubsectionpost} -\newlength{\paragraphpost} -\newlength{\subparagraphpost} -\newdimen\headindent -\headindent=1.5em -\ifcase\value{head} - %---APA Style Headings--- - \newcommand*{\sectionstyle}{\bfseries\centering} - \setlength{\sectionpost}{1.5ex \@plus .2ex} - \newcommand*{\subsectionstyle}{\bfseries} - \setlength{\subsectionpost}{.3ex \@plus .2ex} - \newcommand*{\subsubsectionstyle}{\bfseries} - \setlength{\subsubsectionpost}{-1em} - \newcommand*{\paragraphstyle}{\hspace{2\headindent}\bfseries\underline} - \setlength{\paragraphpost}{-1em} - \newcommand*{\subparagraphstyle}{\hspace{3\headindent}\underline} - \setlength{\subparagraphpost}{-1em} -\or - %---Chicago Style Headings--- - \newcommand*{\sectionstyle}{\bfseries\centering} - \setlength{\sectionpost}{1.5ex \@plus .2ex} - \newcommand*{\subsectionstyle}{\centering} - \setlength{\subsectionpost}{.3ex \@plus .2ex} - \newcommand*{\subsubsectionstyle}{\bfseries} - \setlength{\subsubsectionpost}{.2ex \@plus .1ex} - \newcommand*{\paragraphstyle}{} - \setlength{\paragraphpost}{.2ex \@plus .1ex} - \newcommand*{\subparagraphstyle}{\hspace{\headindent}\bfseries} - \setlength{\subparagraphpost}{-1em} -\or - %---Sample Headings from Guidelines - \newcommand*{\sectionstyle}{\bfseries\underline\centering} - \setlength{\sectionpost}{1.5ex \@plus .2ex} - \newcommand*{\subsectionstyle}{\bfseries} - \setlength{\subsectionpost}{.3ex \@plus .2ex} - \newcommand*{\subsubsectionstyle}{\bfseries\underline} - \setlength{\subsubsectionpost}{-1em} - \newcommand*{\paragraphstyle}{\hspace{\headindent}\underline} - \setlength{\paragraphpost}{-1em} - \newcommand*{\subparagraphstyle}{\hspace{\headindent}\bfseries} - \setlength{\subparagraphpost}{-1em} -\or - %---Indented Decimal System - \newcommand*{\sectionstyle}{\bfseries} - \setlength{\sectionpost}{1.5ex \@plus .2ex} - \newcommand*{\subsectionstyle}{\hspace{\headindent}\bfseries} - \setlength{\subsectionpost}{.3ex \@plus .2ex} - \newcommand*{\subsubsectionstyle}{\hspace{2\headindent}\bfseries} - \setlength{\subsubsectionpost}{.2ex \@plus .1ex} - \newcommand*{\paragraphstyle}{\hspace{3\headindent}\bfseries} - \setlength{\paragraphpost}{-1em} - \newcommand*{\subparagraphstyle}{\hspace{4\headindent}\underline} - \setlength{\subparagraphpost}{-1em} -\else - %---Justified Decimal--- - \newcommand*{\sectionstyle}{\bfseries} - \setlength{\sectionpost}{1.5ex \@plus .2ex} - \newcommand*{\subsectionstyle}{\bfseries} - \setlength{\subsectionpost}{.3ex \@plus .2ex} - \newcommand*{\subsubsectionstyle}{\bfseries} - \setlength{\subsubsectionpost}{.2ex \@plus .1ex} - \newcommand*{\paragraphstyle}{\bfseries} - \setlength{\paragraphpost}{-1em} - \newcommand*{\subparagraphstyle}{\hspace{\parindent}\underline} - \setlength{\subparagraphpost}{-1em} -\fi - -\def\@chapter[#1]#2{% - \ifnum \c@secnumdepth >\m@ne - \refstepcounter{chapter} - \typeout{*** \@chapapp\space\thechapter\space ****} - \addtocontents{toc}{\protect\pagebreak[3]} - \def\@LastLevel{0} - \addcontentsline{toc}{chapter}{\protect\numberline{\thechapter.}\space\texorpdfstring{\MakeUppercase{#1}}{#1}} - \else - \addtocontents{toc}{\protect\pagebreak[3]} - \def\@LastLevel{0} - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{#1}}{#1}} - \fi - \chaptermark{#1} - \ifmt@loftspace - \addtocontents{lof}{\protect\addvspace{\loftspacing\p@}} - \addtocontents{lot}{\protect\addvspace{\loftspacing\p@}} - \fi - \@makechapterhead{#2} -} - -\def\@makechapterhead#1{% - \cleardoublepage - {\parindent \z@ \raggedright \centering\normalfont\chaptersize - \ifnum \c@secnumdepth >\m@ne - \bfseries \MakeUppercase{\chaptername}\ \thechapter - \par\nobreak - \fi - \interlinepenalty\@M - \bfseries\texorpdfstring{\MakeUppercase{#1}}{#1}\par\nobreak - \vskip 15\p@ - } -} - -\def\@makeschapterhead#1{% - \cleardoublepage - {\parindent \z@ \raggedright \centering\normalfont\chaptersize - \interlinepenalty\@M - \bfseries \texorpdfstring{\MakeUppercase{#1}}{#1}\par\nobreak - \vskip 15\p@ - } -} - -\renewcommand\part{ - \ClassError{maine-thesis}{2-Volume Thesis is no longer supported}{The Graduate School now accepts all theses electronically.\MessageBreak As a result, it no longer has any guidelines for a multi-volume print theses.\MessageBreak If you're preparing a printed thesis, try using of the twoside option to reduce\MessageBreak the page count to something which can be bound in a single volume.} -} - - -\renewcommand\section{ - \@startsection{section}{1}{\z@}% - {3.5ex \@plus 1ex \@minus .2ex}% - {\sectionpost}% - {\sectionstyle}} - -\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% - {3.25ex \@plus 1ex \@minus .2ex}% - {\subsectionpost}% - {\subsectionstyle}} - -\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% - {3.25ex \@plus 1ex \@minus .2ex}% - {\subsubsectionpost}% - {\subsubsectionstyle}} - -\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% - {3.25ex \@plus1ex \@minus.2ex}% - {\paragraphpost}% - {\paragraphstyle}} - -\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}% - {3.25ex \@plus1ex \@minus .2ex}% - {\subparagraphpost}% - {\subparagraphstyle}} - -\def\app@chapter[#1]#2{% - \ifmultipleappendices - \ifnum \c@secnumdepth >\m@ne - \refstepcounter{chapter} - \typeout{<---- Appendix \thechapter ---->} - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\appendixname}\space\thechapter\space -- \MakeUppercase{#1}}{#1}} - \else - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{#1}}{#1}} - \fi - \else - \ifnum \c@secnumdepth >\m@ne - \refstepcounter{chapter} - \typeout{<---- APPENDIX ---->}% - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\appendixname}\space -- \MakeUppercase{#1}}{#1}} - \else - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{#1}}{#1}} - \fi - \fi - \ifmt@loftspace - \addtocontents{lof}{\protect\addvspace{\loftspacing\p@}} - \addtocontents{lot}{\protect\addvspace{\loftspacing\p@}} - \fi - \chaptermark{#1} - \@makeapphead{#2} - \@afterheading -} - -\def\@makeapphead#1{% - \cleardoublepage - { - \parindent \z@ \raggedright \normalfont - \ifmultipleappendices - \ifnum\value{chapter}=1 - \centering\chaptersize\bfseries \MakeUppercase{APPENDICES}\par\nobreak - \fi - \centering\chaptersize\bfseries \MakeUppercase{\appendixname}\space\thechapter - \else - \centering\chaptersize\bfseries \MakeUppercase{\appendixname} - \fi - \par\nobreak - \interlinepenalty\@M - \centering\chaptersize\bfseries\texorpdfstring{\MakeUppercase{#1}}{#1}\par\nobreak - \vskip 15\p@ - } -} - -\setcounter{topnumber}{2} -\renewcommand\topfraction{0.8} -\setcounter{bottomnumber}{2} -\renewcommand\bottomfraction{0.8} -\setcounter{totalnumber}{4} -\renewcommand\textfraction{0.2} -\renewcommand\floatpagefraction{0.8} -\setcounter{dbltopnumber}{2} -\renewcommand\dbltopfraction{0.8} -\renewcommand\dblfloatpagefraction{0.8} - -%%%%%%%%%%%%%%%%%%%%% -% Float Formatting Declarations -%%%%%%%%%%%%%%%%%%%%% -\let\latex@xfloat=\@xfloat -\def\@xfloat#1[#2]{% - \latex@xfloat#1[#2] - \centering - \def\baselinestretch{1}\@normalsize - \normalsize -} - -\long\def\@makecaption#1#2{% - \vskip\abovecaptionskip - \sbox\@tempboxa{#1.~~#2}% - \ifdim \wd\@tempboxa >\hsize - {#1.~~#2}\par% - \else - \global \@minipagefalse - \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% - \fi - \vskip\belowcaptionskip -} - -\long\def\@caption#1[#2]#3{% - \ifmt@legacycaptions% - \def\mt@captiontext{#3}%. - \else% - \IfStrEq{#2}{#3}{\def\mt@captiontext{#3}}{\def\mt@captiontext{#2\ \ignorespaces#3}}% - \fi% - \addcontentsline{\csname ext@#1\endcsname}{#1} {\protect\numberline{\csname fnum@#1\endcsname}{\ignorespaces #2}}% - \begingroup - \@parboxrestore - \normalsize - \centering - \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces\mt@captiontext}\par - \endgroup -} - -\long\def\@footnotetext#1{% - \insert\footins{% - \def\baselinestretch {1} - \reset@font\footnotesize - \interlinepenalty\interfootnotelinepenalty - \splittopskip\footnotesep - \splitmaxdepth \dp\strutbox \floatingpenalty \@MM - \hsize\columnwidth - \@parboxrestore - \protected@edef\@currentlabel{% - \csname p@footnote\endcsname\@thefnmark}% - \color@begingroup - \@makefntext{\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% - \color@endgroup} -} - -\long\def\@mpfootnotetext#1{% - \global\setbox\@mpfootins\vbox{% - \unvbox \@mpfootins - \def\baselinestretch {1} - \reset@font\footnotesize - \hsize\columnwidth - \@parboxrestore - \protected@edef\@currentlabel{% - \csname p@mpfootnote\endcsname\@thefnmark}% - \color@begingroup - \@makefntext{\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% - \color@endgroup} -} - -%%%%%%%%%%%%%%%%%%%%% -% Table of Contents Formatting -%%%%%%%%%%%%%%%%%%%%% -\renewcommand\tableofcontents{% - \chapter*{\contentsname}% - \doublespacing - \@starttoc{toc} -} - -\renewcommand\listoftables{% - \chapter*{\listtablename} - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\listtablename}}{\listtablename}} - \doublespacing - \setcounter{tocdepth}{\value{secnumdepth}} - \@starttoc{lot} -} - -\renewcommand\listoffigures{% - \chapter*{\listfigurename} - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\listfigurename}}{\listfigurename}} - \doublespacing - \setcounter{tocdepth}{\value{secnumdepth}} - \@starttoc{lof} -} - -\newenvironment{thesislist}[1]{% - \chapter*{\listname\ #1} - \addcontentsline{toc}{chapter}{{\texorpdfstring{\MakeUppercase{\listname\ #1}}{\listname\ #1}}} - \begingroup -}{\par\endgroup} - -\renewcommand\@dotsep{1} -\renewcommand\@tocrmarg{4em} -\renewcommand\@pnumwidth{1.4em} -\patchcmd{\@dottedtocline}% - {\rightskip\@tocrmarg}% - {\rightskip\@tocrmarg plus 4em \hyphenpenalty\@M}% - {% - \patchcmd{\@dottedtocline}{\hfill}{\hskip 9.4mm plus1fill}{\typeout{5-dot minimum leader patched}}{}% - }% - {\ClassErrorNoLine{maine-thesis}{Unable to patch \protect\@dottedtocline\MessageBreak 5-dot leader minimum will not be respected}{Please report this error with a MWE.}} - -%We use this count to prevent a page break between two toc entries when the second is one level lower than the first. -\newcount\mt@lasttocentry -\mt@lasttocentry=0 -%This if is supposed to keep the first two entries at a level together. -\newif\ifmt@isfirst -\mt@isfirsttrue - -\renewcommand*\l@chapter{% - \ifnum\mt@lasttocentry=0\relax% - \nopagebreak% - \mt@isfirsttrue% - \else% - \ifmt@isfirst\nopagebreak\fi% - \mt@isfirstfalse% - \fi% - \mt@lasttocentry=1% - \vskip 12pt plus 1pt minus 1pt% - \@dottedtocline{0}{0em}{1.4em}} -\renewcommand*\l@section{% - \ifnum\mt@lasttocentry=1\relax% - \nopagebreak% - \mt@isfirsttrue% - \else% - \ifmt@isfirst\nopagebreak\fi% - \mt@isfirstfalse% - \fi% - \mt@lasttocentry=2% - \ifnum\c@tocdepth>0 \vskip 5pt plus 1pt minus 1pt \fi% - \@dottedtocline{1}{1.5em}{2.3em}} -\renewcommand*\l@subsection{% - \ifnum\mt@lasttocentry=2\relax% - \nopagebreak% - \mt@isfirsttrue% - \else% - \ifmt@isfirst\nopagebreak\fi% - \mt@isfirstfalse% - \fi% - \mt@lasttocentry=3% - \ifnum\c@tocdepth>1 \vskip 4pt minus 1pt \fi% - \@dottedtocline{2}{3.8em}{3.2em}} -\renewcommand*\l@subsubsection{% - \ifnum\mt@lasttocentry=3\relax% - \nopagebreak% - \mt@isfirsttrue% - \else% - \ifmt@isfirst\nopagebreak\fi% - \mt@isfirstfalse% - \fi% - \mt@lasttocentry=4% - \ifnum\c@tocdepth>2 \vskip 3pt minus 1pt \fi% - \@dottedtocline{3}{7.0em}{4.1em}} -\renewcommand*\l@figure{% - \vskip 8pt plus 1pt minus 1pt% - \@dottedtocline{1}{0em}{5.8em}} -\let\l@table\l@figure -\newcommand{\bibalign}{} - -%%%%%%%%%%%%%%%%%%%%% -% Special Pages/Environments -%%%%%%%%%%%%%%%%%%%%% -\newcommand{\references}{% - \cleardoublepage - \singlespacing - \phantomsection - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\bibname}}{\bibname}} - \bibliography{\@bibfiles} -} - -\renewenvironment{thebibliography}[1] - {%begin - \chapter*{\bibname} - \bibalign\frenchspacing - \list{\@biblabel{\@arabic\c@enumiv}}% - {\settowidth\labelwidth{\@biblabel{#1}}% - \leftmargin\labelwidth - \advance\leftmargin\labelsep - \@openbib@code - \usecounter{enumiv} - \let\p@enumiv\@empty - \renewcommand\theenumiv{\@arabic\c@enumiv}}% - \sloppy - \sfcode`\.=\@m - } - {%end - \def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}% - \endlist% - } - -\renewcommand\titlepage{% - \thispagestyle{empty} - \ifverybigtitlepage - \onehalfspacing - \else - \doublespacing - \fi - \begin{center} - {\bfseries\MakeUppercase{\@title}}\\ - By \\ - \@author \\ - \@degreesheld - \vfill - A \MakeUppercase{\@type}\\[4pt] - Submitted in Partial Fulfillment of the\\ - Requirements for the Degree of\\ - \expandafter{\@degree}\\ - (in \expandafter{\@program})\\ - \vskip 0.5in - The Graduate School\\ - The University of Maine\\ - \expandafter{\@submitdate} - \vfill - \end{center} - \ifbigtitlepage - \singlespacing - \fi - Advisory Committee: - \begin{list}{}{% - \setlength{\itemsep}{0pt}% - \setlength{\topsep}{0in}% - \setlength{\partopsep}{0pt}% - \setlength{\itemindent}{-\parindent}% - \setlength{\leftmargin}{1cm}% - } - \item{\@principaladvisor, % - \ifnum\numadv=2% - Co-% - \fi% - Advisor} - \ifnum\numadv=2 - \item{\@secondadvisor, Co-Advisor} - \fi - \ifnum\numcomm>0 - \item{\@firstreader} - \fi - \ifnum\numcomm>1 - \item{\@secondreader} - \fi - \ifnum\numcomm>2 - \item{\@thirdreader} - \fi - \ifnum\numcomm>3 - \item{\@fourthreader} - \fi - \ifnum\numcomm>4 - \item{\@fifthreader} - \fi - \end{list} - \clearpage -} - -\newcommand{\copyrightpage}[2][\@author]{% - \copyrightpagetrue - \onehalfspacing - \thispagestyle{plain} - \hbox{ } - \vfill - \begin{center} - \copyright\space#2\space#1\\ - All Rights Reserved - \end{center} - \vfill - \clearpage -} -\newcommand{\glsa}{% - \chapter*{UNIVERSITY OF MAINE GRADUATE SCHOOL LAND ACKNOWLEDGMENT} - The University of Maine recognizes that it is located on Marsh Island in the homeland of Penobscot people, where issues of water and territorial rights, and encroachment upon sacred sites, are ongoing. Penobscot homeland is connected to the other Wabanaki Tribal Nations— the Passamaquoddy, Maliseet, and Micmac—through kinship, alliances, and diplomacy. The University also recognizes that the Penobscot Nation and the other Wabanaki Tribal Nations are distinct, sovereign, legal and political entities with their own powers of self-governance and self-determination. - \vfill - \clearpage -} -\newcommand{\libraryrights}{% - \ClassError{maine-thesis}{The Graduate School no longer requires\MessageBreak a Library Rights Statement page}{Please remove \protect\libraryrights\space from your thesis.}% -} - -\newcommand{\dissacceptance}{% - \ClassError{maine-thesis}{The Graduate School no longer requires\MessageBreak a Dissertation Acceptance page}{Please remove \protect\dissacceptance\space from your thesis.}% -} - -\newcounter{mt@page} -\renewenvironment{abstract}{% - \setcounter{mt@page}{\value{page}} - \doublespacing - \begin{center} - {\bfseries\MakeUppercase{\@title}}\\ - By\space\@author\\[4pt] - \@type\ % - \ifnum\numadv=2% - Co-% - \fi% - Advisor% - \ifnum\numadv=2% - s% - \fi% - : \@principalshort - \vskip 0.33in - \singlespacing - An Abstract of the \@type\ Presented\\ - in Partial Fulfillment of the Requirements for the\\ - Degree of \@degree\\ - (in \@program)\\ - \@submitdate - \vskip 36pt plus 2pt minus 12pt - \end{center} - \doublespacing - \begingroup\par - \pagestyle{empty} -} -{\cleardoublepage - \par\endgroup - \setcounter{page}{\value{mt@page}} -} - -\newenvironment{layabstract}[1]{% - \setcounter{mt@page}{\value{page}} - \doublespacing - \begin{center} - {\bfseries\MakeUppercase{\@title}}\\ - By\space\@author\\[4pt] - \@type\ % - \ifnum\numadv=2% - Co-% - \fi% - Advisor% - \ifnum\numadv=2% - s% - \fi% - : \@principalshort - \vskip 0.33in - \singlespacing - A Lay Abstract of the \@type\ Presented\\ - in Partial Fulfillment of the Requirements for the\\ - Degree of \@degree\\ - (in \@program)\\ - \@submitdate - \vskip 26pt plus 2pt minus 12pt - \end{center} - Keywords: \MakeLowercase{#1} - \vskip 26pt plus 2pt minus 12pt - \doublespacing - \begingroup\par - \pagestyle{empty} -} -{\cleardoublepage - \par\endgroup - \setcounter{page}{\value{mt@page}} -} - -\newenvironment{dedication}{% - \chapter*{\dedicationname} - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\dedicationname}}{\dedicationname}} - \vskip 0.5in - \doublespacing - \begingroup - \begin{center} -}{\end{center}\par\endgroup} - -\newenvironment{acknowledgements}{% - \chapter*{\acknowledgename} - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\acknowledgename}}{\acknowledgename}} - \doublespacing - \begingroup -}{\par\endgroup} - -\newenvironment{preface}{% - \chapter*{\prefacename} - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\prefacename}}{\prefacename}} - \doublespacing - \begingroup\setcounter{secnumdepth}{0} -}{\setcounter{secnumdepth}{\value{secnumdefault}}\par\endgroup} - -\newenvironment{biography}{% - \chapter*{\bioname} - \addtocontents{toc}{\protect\nopagebreak} - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\bioname}}{\bioname}} - \begingroup - \doublespacing - \thispagestyle{plain} -}{\ifx\@authorpronoun\empty\@author\else\@authorpronoun\fi\ is a candidate for the \@degree\ degree in \@program\ from the University of Maine in \@submitdate.\par\endgroup} - -%%%%%%%%%%%%%%%%%%%%% -% Front/Main/Back Separators -%%%%%%%%%%%%%%%%%%%%% -\newcommand{\preliminary}{% - \pagenumbering{roman} - \settocdepth{chapter} -} - -\newcommand{\mainmatter}{% - \cleardoublepage - \doublespacing - \pagenumbering{arabic} - \ifcase\value{secnumdepth} - \or - \settocdepth{section} - \or - \settocdepth{subsection} - \or - \settocdepth{subsubsection} - \or - \settocdepth{paragraph} - \or - \settocdepth{subparagraph} - \fi -} - -\renewcommand{\appendix}{% - \setcounter{chapter}{0} - \setcounter{section}{0} - \renewcommand*\@chapter{\app@chapter} - \renewcommand*\thechapter{\@Alph\c@chapter} - \addtocontents{toc}{\protect\renewcommand*\protect\l@chapter{\protect\@dottedtocline{0}{0pt}{7.5em}}} - \ifmultipleappendices% - \toclabel{Appendices} - \fi% - \settocdepth{chapter} - \doublespacing - \apptrue -} - -%%%%%%%%%%%%%%%%%%%%% -% Page Style Definitions -%%%%%%%%%%%%%%%%%%%%% - -\newcommand{\ps@bottom}{% - \renewcommand{\@oddhead}{% - \ifdraft\drafttext\hfil\today\hfil\drafttext\else\fi}% - \renewcommand{\@evenhead}{\@oddhead} - \renewcommand{\@oddfoot}{% - \ifdraft\drafttext\hfil\thepage - \hfil\drafttext\else\hfil\thepage\hfil\fi} - \renewcommand{\@evenfoot}{\@oddfoot} -} - -\renewcommand{\ps@empty}{% - \renewcommand{\@oddhead}{% - \ifdraft\drafttext\hfil\today\hfil\drafttext\else\fi}% - \renewcommand{\@evenhead}{\@oddhead} - \renewcommand{\@oddfoot}{% - \ifdraft\drafttext\hfil\drafttext\else\fi} - \renewcommand{\@evenfoot}{\@oddfoot} -} - -\newcommand{\ps@top}{% - \renewcommand{\@oddhead}{% - \ifdraft\drafttext\fi\hfil - \ifdraft\today\else\thepage\fi - \ifdraft\hfil\drafttext\fi} - \renewcommand{\@evenhead}{% - \ifdraft\drafttext\hfil\fi - \ifdraft\today\else\thepage\fi - \hfil\ifdraft\drafttext\fi} - \renewcommand{\@oddfoot}{% - \ifdraft\drafttext\hfil\thepage\hfil\drafttext\fi} - \renewcommand{\@evenfoot}{\@oddfoot} -} - - -\pagestyle{\mt@pagestyle} -\renewcommand{\ps@plain}{\csname ps@\mt@pagestyle\endcsname} - - -\endinput -%% -%% End of file `maine-thesis.cls'. diff --git a/MANIFEST.md b/MANIFEST.md new file mode 100644 index 0000000..31e25af --- /dev/null +++ b/MANIFEST.md @@ -0,0 +1,72 @@ +# Manifest for maine-thesis + +This file is a listing of all files considered to be part of this package. +It is automatically generated with `l3build manifest`. + + +## Repository manifest + +The following groups list the files included in the development repository of the package. +Files listed with a ‘†’ marker are included in the TDS but not CTAN files, and files listed +with ‘‡’ are included in both. + +### Source files + +These are source files for a number of purposes, including the `unpack` process which +generates the installation files of the package. Additional files included here will also +be installed for processing such as testing. + +* maine-thesis.dtx ‡ + +### Text files + +Plain text files included as documentation or metadata. + +* MANIFEST.md ‡ + +### Derived files + +The files created by ‘unpacking’ the package sources. This typically includes +`.sty` and `.cls` files created from DocStrip `.dtx` files. + +* maine-thesis.cls † + + +## TDS manifest + +The following groups list the files included in the TeX Directory Structure used to install +the package into a TeX distribution. + +### Source files (TDS) + +All files included in the `maine-thesis/source` directory. + +* maine-thesis.dtx + +### TeX files (TDS) + +All files included in the `maine-thesis/tex` directory. + +* maine-thesis.cls + +### Doc files (TDS) + +All files included in the `maine-thesis/doc` directory. + +* MANIFEST.md +* README.md +* maine-thesis-example.pdf +* maine-thesis.pdf + + +## CTAN manifest + +The following group lists the files included in the CTAN package. + +### CTAN files + +* MANIFEST.md +* README.md +* maine-thesis-example.pdf +* maine-thesis.dtx +* maine-thesis.pdf diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bf3f5b8 --- /dev/null +++ b/Makefile @@ -0,0 +1,68 @@ +.PHONY: all doc clean unpack template ctan + +# Main target: Unpack sources, build documentation, and prepare for release. +all: unpack doc template longtemplate tag ctan + +#Target for CI/CD +gitlab: unpack doc ctan packtemplate +ctanupload: unpack doc ctan upload + +# Unpacks the DTX files into the working directory. +unpack: + @echo "--- Unpacking sources ---" + @l3build unpack + +# Builds the main documentation PDF. +doc: + @echo "--- Building documentation ---" + @l3build doc + @cp build/doc/maine-thesis.pdf doc/maine-thesis.pdf + @cp build/unpacked/example.pdf doc/maine-thesis-example.pdf + +template: + @echo "--- Building template ---" + @cp build/unpacked/maine-thesis.cls template/maine-thesis.cls + @cd template && latexmk -c main.tex && latexmk main.tex + @cp template/_build/main.pdf doc/maine-thesis-template.pdf + @rm template/maine-thesis.cls + +longtemplate: + @echo "--- Building guide ---" + @cp build/unpacked/maine-thesis.cls guide/maine-thesis.cls + @cd guide && latexmk -c main.tex && latexmk main.tex + @cp guide/_build/main.pdf doc/maine-thesis-guide.pdf + @rm guide/maine-thesis.cls + +tag: + @echo "--- Checking Tags ---" + @l3build tag + +# Cleans up temporary and generated files. +clean: + @echo "--- Cleaning up files ---" + @l3build clean + @cd template && latexmk -c main.tex + +# Prepares a CTAN-ready TDS archive. +ctan: + @echo "--- Preparing CTAN package ---" + @l3build ctan manifest ctan + +# Prepares a CTAN-ready TDS archive. +upload: + @echo "--- Uploading CTAN Package ---" + @l3build upload + +#packs the template for overleaf +packtemplate: + @echo "--- Packing Template for Overleaf ---" + @mkdir build/distrib/gl + @cp -r build/distrib/ctan/* build/distrib/gl + @cp build/unpacked/maine-thesis.cls build/distrib/gl/maine-thesis.cls + @mkdir -p _template + @cp -r template/* _template + @cp build/unpacked/maine-thesis.cls _template/maine-thesis.cls + @cp build/doc/maine-thesis.pdf _template/documentation.pdf + @echo "--- Zipping template files ---" + @(cd _template && zip -r ../build/distrib/gl/maine-thesis-template.zip .) + @rm -r _template \ No newline at end of file diff --git a/README.md b/README.md index 1689bc6..acbf362 100644 --- a/README.md +++ b/README.md @@ -1,40 +1,158 @@ +[![link to most recent release](https://gitlab.com/maine-thesis/maine-thesis/-/badges/release.svg)](https://gitlab.com/maine-thesis/maine-thesis/-/releases) + +![pipeline status](https://gitlab.com/maine-thesis/maine-thesis/badges/master/pipeline.svg?ignore_skipped=true) + # maine-thesis -A LaTeX class file for the typesetting of a Masters or Doctorate Thesis at the University of Maine (Orono, ME). -## Installation +A LaTeX class file for typesetting Master's and Doctorate theses at the University of Maine (Orono, ME). + +This project aims to update the class file to the current graduate school specifications and make it available on CTAN +for wider use. + +## Quick Start: Overleaf Template + +Click the link below to create a new template in Overleaf from the template. + +[Open Template in Overleaf](https://www.overleaf.com/docs?snip_uri=https%3A%2F%2Fgitlab.com%2Fapi%2Fv4%2Fprojects%2F72873936%2Fpackages%2Fgeneric%2Fmaine-thesis%2Flatest%2Fmaine-thesis-template.zip&engine=lualatex) + +[Read Maine-Thesis Documentation](https://gitlab.com/api/v4/projects/72873936/packages/generic/maine-thesis/latest/maine-thesis.pdf) + +## Other Installation Methods + +### CTAN Installation (Future Support) + +When the package is on CTAN, you'll be able to install it using your TeX distribution's package manager. + + TeX Live: tlmgr install maine-thesis + + MiKTeX: Use the MiKTeX Console or mpm utility. + +### Manual Installation from GitLab Release + +Include the class file at the root directory of your project. + +- [Class File](https://gitlab.com/api/v4/projects/72873936/packages/generic/maine-thesis/latest/maine-thesis.cls) +- [Template (includes class file)](https://gitlab.com/api/v4/projects/72873936/packages/generic/maine-thesis/latest/maine-thesis-template.zip) + +### Command Line Installation (Linux / macOS) + +Follow these steps to download and install the package into your personal texmf directory. + +#### Step 1: Find your local texmf directory + +First, determine the location of your user-specific TeX directory by running the following command. The output should be +a path like ~/texmf. + +```bash +TEXMFHOME=$(kpsewhich --var-value=TEXMFHOME) +echo "Your local texmf directory is: $TEXMFHOME" +``` + +If the command doesn't return a path, you may need to create the directory yourself. It is typically located at ~/texmf. + +#### Step 2: Download and Unzip the Package + +Use wget to download the TDS .zip file directly from the provided URL, and then unzip it into your texmf directory. + +Define the URL for clarity + +```bash +PACKAGE_URL="[https://gitlab.com/maine-thesis/maine-thesis/-/package_files/226178653/download](https://gitlab.com/maine-thesis/maine-thesis/-/package_files/226178653/download)" +``` + +Download the file to a temporary location + +```bash +wget --output-document maine-thesis.zip "$PACKAGE_URL" +``` + +Unzip the contents directly into your texmf directory + +```bash +unzip maine-thesis.zip -d "$TEXMFHOME" +``` + +Clean up the downloaded zip file + +```bash +rm maine-thesis.zip +``` + +#### Step 3: Update the TeX Filename Database + +Finally, you must update TeX's filename database so that it can find the new package files. + +``` +# Update the filename database for your personal texmf tree +texhash "$TEXMFHOME" + +# Alternatively, you can use mktexlsr (it's the same command) +# mktexlsr "$TEXMFHOME" +``` + +The package is now installed and ready to be used in your LaTeX documents. + +## Development with l3build + +This project uses l3build to automate common tasks. To get started, you can use the following commands: + + l3build unpack: Extracts the .cls and .pdf files from the source. + + l3build doc: Compiles the main documentation PDF. + + l3build template: Compiles the template PDF. + + l3build tag: updates version tags. + + l3build clean: Removes all temporary and generated files. + + l3build ctan: Prepares a CTAN-ready TDS (TeX Directory Structure) archive. + +For a manual installation, see the instructions below. -To install this class file simply copy or link `maine-thesis.cls` to your texmf tree. On Unix based systems one of the following commands should work: +### Manual Installation (Current Method) -`cp maine-thesis.cls $(kpsewhich --var-value TEXMFHOME)` +To install the class file, copy or link maine-thesis.cls to your local texmf tree. On Unix-based systems, you can use +one of these commands: +Copy: -`ln maine-thesis.cls $(kpsewhich --var-value TEXMFHOME)` +```bash +cp maine-thesis.cls $(kpsewhich --var-value TEXMFHOME) +``` -On Windows machines the equivalent commands are: +Link: -``for /f "usebackq tokens=*" %a in (`kpsewhich --var-value TEXMFHOME`) do copy maine-thesis.cls %a`` +```bash +ln maine-thesis.cls $(kpsewhich --var-value TEXMFHOME) +``` -``for /f "usebackq tokens=*" %a in (`kpsewhich --var-value TEXMFHOME`) do mklink %a maine-thesis.cls`` +On Windows, the equivalent commands are: -The advantage to linking over copying is that once you've set this up, you need only use `git fetch` to make updates, but you do have to keep your copy of the repository. +Copy: -## Thesis Guidelines +```cmd +for /f "usebackq tokens=*" %a in (\kpsewhich --var-value TEXMFHOME`) do copy maine-thesis.cls %a` +``` -The latest version of the [official thesis guidelines](https://umaine.edu/graduate/students/progress/thesis/) is now available online. If you find a deviation between the guidelines and this class file, please contact me either by posting an issue here on [GitHub](https://github.com/rpspringuel/maine-thesis/issues) or by [emailing me](mailto:rpspringuel@gmail.com). If emailing me please include `maine-thesis` in your subject line in order to avoid spam filters. +Link: -## Repository inventory: +```cmd +for /f "usebackq tokens=*" %a in (\kpsewhich --var-value TEXMFHOME`) do mklink %a maine-thesis.cls` +``` -Besides the class file itself, this repository contains the following additional resources: +Linking is recommended because it allows you to update the class by simply using git pull from the repository. -### Documentation +# Repository Contents -The files in the Documentation folder serve both as the documentation for this class file and as an example of its use. + sources/: The main source files, including maine-thesis.dtx (the documented source) and CTANREADME.md. -### skeleton + doc/: Documentation for the class file, which also serves as an example of its use. -The skeleton folder contains a basic document structure which you can use as a template for your own thesis. + template/: A basic document structure you can use as a starting point for your thesis. -## Contributing +# Contributing -If you find a bug in the class file or something that it doesn't format correctly, please contact me either by posting an issue here on [GitHub](https://github.com/rpspringuel/maine-thesis/issues) or by [emailing me](mailto:rpspringuel@gmail.com). If emailing me please include `maine-thesis` in your subject line in order to avoid spam filters. +If you find a bug or a formatting issue, please file an issue on GitHub. -Also, when reporting a bug or something that needs to be changed a MWE that demonstrates the current unacceptable behavior and a picture or complete description of the desired result is really useful. +When reporting a bug, it's very helpful to include a Minimal Working Example (MWE) that demonstrates the problem and a +description of the desired result. \ No newline at end of file diff --git a/build.lua b/build.lua new file mode 100644 index 0000000..e11f582 --- /dev/null +++ b/build.lua @@ -0,0 +1,215 @@ +--[[ + ** Build config for maine-thesis using l3build ** +--]] + +module = "maine-thesis" +pkgversion = "2.0.0" +pkgdate = "2025-09-05" + +-- 1. DEFINE FILES BY THEIR PURPOSE +-- l3build will use these lists to build the package, documentation, and final .zip +maindir = "." +sourcefiledir = "./sources" +-- Source files for unpacking +sourcefiles = {"maine-thesis.dtx", "maine-thesis"} + +-- The final file(s) for a user's TeX installation +installfiles = {"maine-thesis.cls"} + +-- Source files to be typeset into PDFs for documentation +typesetfiles = {"maine-thesis.dtx", "maine-thesis-example.tex"} +binaryfiles = {"*.pdf"} + +-- Plain text files for the CTAN zip +textfiles = {"./sources/CTANREADME.md", "MANIFEST.md"} + + + +-- 2. CONFIGURE THE BUILD PROCESS + +-- Unpacking configuration (using the .ins file is standard) +unpackfiles = {"maine-thesis.dtx"} +unpackopts = "--interaction=batchmode" +unpackexe = "luatex" + +-- Documentation typesetting configuration +typesetexe = "lualatex" +typesetopts = "--interaction=batchmode" +typesetruns = 3 -- Use 3 runs for stability with references/TOCs + +-- 3. CONFIGURE CTAN PACKAGE CREATION + +-- These settings will create a flat zip named "maine-thesis-2.0.0.zip" +ctanpkg = "maine-thesis" +ctanzip = ctanpkg.."-"..pkgversion +packtdszip = false -- Key setting for a flat package +ctanreadme = "CTANREADME.md" + + +-- 4. UPLOAD & TAGGING CONFIGURATION (Your settings are good here) + +-- Load personal data for ctan upload +local ctan_uploader = os.getenv("CTAN_UPLOADER") +local ctan_email = os.getenv("CTAN_EMAIL") + +uploadconfig = { + author = "R. Padraic Springuel; Camden Bock; Hanna Brooks", + uploader = ctan_uploader, + email = ctan_email, + pkg = ctanpkg, + version = pkgversion, + license = "lppl1.3c", + summary = "Document Class for University of Maine Graduate Thesis", + description = [[The 'maine-thesis' class provides support for the formating requirements for graduate theses of the Graduate School at The university of Maine. It sets default parameters for the report class, modifies captions, referneces, and the table of contents, and makes specific environments available. The maine-thesis class reflects the guidelines published by the Graduate School at The University of Maine (https://umaine.edu/graduate/students/progress/thesis-resources/). The Graduate School at the University of Maine does not provide official support for any thesis style class or template.]], + topic = {"dissertation", "class"}, + ctanPath = "/macros/latex/contrib/" .. ctanpkg, + repository = "https://gitlab.com/maine-thesis/maine-thesis", + bugtracker = "https://gitlab.com/maine-thesis/maine-thesis/issues", + support = "https://gitlab.com/maine-thesis/maine-thesis/issues", + announcement_file="ctan.ann", + note_file = "ctan.note", + update = false, +} + +-- Update package date and version +tagfiles = {"maine-thesis.dtx", "README.md"} +local mydate = os.date("!%Y-%m-%d") + +function update_tag(file, content, tagname, tagdate) + if not tagname and tagdate == mydate then + tagname = pkgversion + tagdate = pkgdate + print("** "..file.." have been tagged with the version and date of build.lua") + else + local v_maj, v_min = string.match(tagname, "^v?(%d+)(%S*)$") + if v_maj == "" or not v_min then + print("Error!!: Invalid tag '"..tagname.."', none of the files have been tagged") + os.exit(0) + else + tagname = string.format("%i%s", v_maj, v_min) + tagdate = mydate + end + print("** "..file.." have been tagged with the version "..tagname.." and date "..mydate) + end + + if string.match(file, "maine-thesis.dtx") then + local tagdate = string.gsub(tagdate, "-", "/") + content = string.gsub(content, + "%[%d%d%d%d%/%d%d%/%d%d%s+v%S+", + "["..tagdate.." v"..tagname) + end + + if string.match(file, "CTANREADME.md") then + local tagdate = string.gsub(tagdate, "/", "-") + content = string.gsub(content, + "Version: (%d+)(%S+)", + "Version: "..tagname) + content = string.gsub(content, + "Date: %d%d%d%d%-%d%d%-%d%d", + "Date: "..tagdate) + end + return content +end + +-- Clean files +cleanfiles = { + ctanzip..".curlopt", + ctanzip..".zip", + "example.log", + "example.pdf", + "maine-thesis.pdf", + "maine-thesis-example.pdf", + "maine-thesis-doc.pdf", +} + + +-- Line length in 80 characters +local function os_message(text) + local mymax = 77 - string.len(text) - string.len("done") + local msg = text.." "..string.rep(".", mymax).." done" + return print(msg) +end + +-- Create check_marked_tags() function +local function check_marked_tags() + local f = assert(io.open("sources/maine-thesis.dtx", "r")) + marked_tags = f:read("*all") + f:close() + + local m_pkgd, m_pkgv = string.match(marked_tags, "%[(%d%d%d%d%/%d%d%/%d%d)%s+v(%S+)") + local pkgdate = string.gsub(pkgdate, "-", "/") + if pkgversion == m_pkgv and pkgdate == m_pkgd then + os_message("** Checking version and date in maine-thesis.dtx: OK") + else + print("** Warning: maine-thesis.dtx is marked with version "..m_pkgv.." and date "..m_pkgd) + print("** Warning: build.lua is marked with version "..pkgversion.." and date "..pkgdate) + print("** Check version and date in build.lua then run l3build tag") + end +end + +-- Config tag_hook +function tag_hook(tagname) + check_marked_tags() +end + +-- Add "tagged" target to l3build CLI +if options["target"] == "tagged" then + check_marked_tags() + os.exit() +end + +-- Create make_temp_dir() function +local function make_temp_dir() + -- Fix basename(path) in windows (https://chat.stackexchange.com/transcript/message/55064157#55064157) + local function basename(path) + return path:match("^.*[\\/]([^/\\]*)$") + end + local tmpname = os.tmpname() + tempdir = basename(tmpname) + errorlevel = mkdir(tempdir) + if errorlevel ~= 0 then + error("** Error!!: The ./"..tempdir.." directory could not be created") + return errorlevel + else + os_message("** Creating the temporary directory ./"..tempdir..": OK") + end +end + +-- Add "testpkg" target to l3build CLI +if options["target"] == "testpkg" then + make_temp_dir() + errorlevel = cp("*.*", sourcefiledir, tempdir) + if errorlevel ~= 0 then + error("** Error!!: Can't copy files from "..sourcefiledir.." to /"..tempdir) + return errorlevel + else + os_message("** Copying files from "..sourcefiledir.." to ./"..tempdir..": OK") + end + -- Unpack files + local file = jobname(tempdir.."/maine-thesis.dtx") + errorlevel = run(tempdir, "luatex -interaction=batchmode "..file..".dtx > "..os_null) + if errorlevel ~= 0 then + error("** Error!!: luatex -interaction=batchmode "..file..".dtx") + return errorlevel + else + os_message("** Running: luatex -interaction=batchmode "..file..".dtx") + end + -- lualatex + local file = jobname(tempdir.."/maine-thesis-example.tex") + errorlevel = run(tempdir, "lualatex -interaction=nonstopmode "..file.." > "..os_null) + if errorlevel ~= 0 then + error("** Error!!: lualatex -interaction=nonstopmode "..file..".tex") + return errorlevel + else + os_message("** Running: lualatex -interaction=nonstopmode "..file..".tex") + end + -- Copying + os_message("** Copying "..file..".log and "..file..".pdf files to main dir: OK") + cp("example.log", tempdir, maindir) + cp("example.pdf", tempdir, maindir) + -- Clean + os_message("** Remove temporary directory ./"..tempdir..": OK") + cleandir(tempdir) + lfs.rmdir(tempdir) + os.exit() +end \ No newline at end of file diff --git a/ctan.ann b/ctan.ann new file mode 100644 index 0000000..71c5106 --- /dev/null +++ b/ctan.ann @@ -0,0 +1,29 @@ +Package 'maine-thesis' provides support for the formating requirements for graduate theses of the Graduate School at The university of Maine. +It sets default parameters for the report class, modifies captions, referneces, and the table of contents, and makes specific environments available. + +Key Features + + Modernized Codebase: + - Version 2.0.0 is a complete refactor of the previous version. It uses a .dtx file format to generate both the class file (maine-thesis.cls) and its documentation from a single source, which streamlines maintenance. + - The class now uses modern packages like biblatex with the Biber backend for citation management, replacing a simpler, older approach. + - New dependencies like fontspec, microtype, and hyperref have been added for more robust font, typography, and hyperlinking capabilities. + + Improved User Interface: + - The new version introduces clearer, named macros for setting heading styles, such as \apaheadings, \chicagoheadings, and \idecimalheadings, replacing the old numerical counter system. Caption formatting has also been unified with + \DeclareCaptionFormat{thesis}, providing a single command for customization. + + Updated Formatting and Requirements: + - The class file has been updated to align with the latest Graduate School requirements. + - It removes deprecated commands like \libraryrights and \dissacceptance because the Graduate School no longer requires these pages for electronic submission. The biography environment now automatically inserts the final required sentence, which can use a pronoun specified by the \authorpronoun command. + - It also includes an optional command, \glsa, to generate the official University of Maine Graduate School Land Acknowledgment. + + Streamlined Environments: + - The \appendix command has been updated and now works within the appendices environment. + - The multiappendices option replaces the old \multipleappendicestrue command for managing multiple appendices. + - The \preliminary and \mainmatter commands now handle page numbering and document structure more reliably. + - The main.tex file now coordinates other files using \include{...} statements for better organization and easier drafting. + + Enhanced Functionality: + - The class file supports the draft option, which adds a "DRAFT" watermark, line numbers, and marks overfull lines, making it useful for sharing review copies. + - You can use \compresstitlepage to adjust line spacing on the title page to prevent it from spilling onto a second page. + - The \ignore and \comment commands, sourced from the changes package, provide useful tools for managing content during the drafting process. \ No newline at end of file diff --git a/ctan.note b/ctan.note new file mode 100644 index 0000000..0813353 --- /dev/null +++ b/ctan.note @@ -0,0 +1,23 @@ +Hello CTAN Team, + +Thank you for your feedback on our new package, "maine-thesis". We have made the requested revisions and are re-uploading the package. Here is a summary of the changes made in response to your comments: + + (1) Packaging: We have repackaged the files into a standard .zip archive instead of including a .tds.zip file, as requested. The new archive contains the files in a flat directory structure. + + (2) Example File: The example PDF has been included as maine-thesis-example.pdf. + + (3) README.md: The README.md file has been updated to include the license information (LPPL v1.3c or later). + + (4) .dtx File Correction: We have corrected the references in maine-thesis.dtx from .sty to .cls. + + (5) .ins File: The maine-thesis.ins file is now included in the package. It is also embedded in the .dtx file. + + (6) PDF Documentation: The version information is now correctly displayed in the maine-thesis.pdf documentation. + +We have also taken your suggestion to use the "Note" text for the package description and announcement. We believe the package now meets the CTAN requirements and look forward to your review. + +Thank you for your time and assistance. + +Sincerely, + +Camden Bock \ No newline at end of file diff --git a/doc/maine-thesis-example.pdf b/doc/maine-thesis-example.pdf new file mode 100644 index 0000000..4f3c86d Binary files /dev/null and b/doc/maine-thesis-example.pdf differ diff --git a/doc/maine-thesis-guide.pdf b/doc/maine-thesis-guide.pdf new file mode 100644 index 0000000..6182c35 Binary files /dev/null and b/doc/maine-thesis-guide.pdf differ diff --git a/doc/maine-thesis-template.pdf b/doc/maine-thesis-template.pdf new file mode 100644 index 0000000..fa6494b Binary files /dev/null and b/doc/maine-thesis-template.pdf differ diff --git a/doc/maine-thesis.pdf b/doc/maine-thesis.pdf new file mode 100644 index 0000000..7d1e5d6 Binary files /dev/null and b/doc/maine-thesis.pdf differ diff --git a/guide/.latexmkrc b/guide/.latexmkrc new file mode 100644 index 0000000..a0d331d --- /dev/null +++ b/guide/.latexmkrc @@ -0,0 +1,8 @@ +# Use pdflatex +$pdflatex = 'lualatex -file-line-error %O %S'; +$pdf_mode = 1; + +## +## Build directory +## +$out_dir = '_build'; diff --git a/Documentation/AppA.tex b/guide/AppA.tex similarity index 100% rename from Documentation/AppA.tex rename to guide/AppA.tex diff --git a/Documentation/AppB.tex b/guide/AppB.tex similarity index 100% rename from Documentation/AppB.tex rename to guide/AppB.tex diff --git a/Documentation/Biography.tex b/guide/Biography.tex similarity index 100% rename from Documentation/Biography.tex rename to guide/Biography.tex diff --git a/Documentation/Ch1.tex b/guide/Ch1.tex similarity index 100% rename from Documentation/Ch1.tex rename to guide/Ch1.tex diff --git a/Documentation/Ch2.tex b/guide/Ch2.tex similarity index 98% rename from Documentation/Ch2.tex rename to guide/Ch2.tex index 88489b9..43f26dc 100644 --- a/Documentation/Ch2.tex +++ b/guide/Ch2.tex @@ -164,7 +164,7 @@ \subsection{\textsc{Bib}\TeX} \references \end{verbatim} -The first command tells the class file where the bibliography entries are located. This should be a \textsc{Bib}\TeX\ file (i.e. one with a ``.bib'' extension). If you're unfamiliar with \textsc{Bib}\TeX\ then you'll need to familiarize your self with it \citep{Feder:2006}, or one of the various programs designed to help you manage a \textsc{Bib}\TeX\ file (e.g. Bibdesk \citep{BibDesk} for Mac OS X, Referencer \citep{Spray:2007} for Linux, and BibDB \citep{Doron:1999} for Windows). +The first command tells the class file where the bibliography entries are located. This should be a \textsc{Bib}\TeX\ file (i.e. one with a ``.bib'' extension). If you're unfamiliar with \textsc{Bib}\TeX\ then you'll need to familiarize your self with it \parencite{Feder:2006}, or one of the various programs designed to help you manage a \textsc{Bib}\TeX\ file (e.g. Bibdesk \parencite{BibDesk} for Mac OS X, Referencer \parencite{Spray:2007} for Linux, and BibDB \parencite{Doron:1999} for Windows). The second command indicates the style the list should follow. There are a few styles built into \textsc{Bib}\TeX\ by default (plain, unsrt, alpha, abbrv) but there are also countless bibliography style files (``.bst'') out there that can achieve alternate formats. Consult with your advisor and committee about which bibliography style you should be using. diff --git a/Documentation/Ch3.tex b/guide/Ch3.tex similarity index 100% rename from Documentation/Ch3.tex rename to guide/Ch3.tex diff --git a/Documentation/Ch4.tex b/guide/Ch4.tex similarity index 100% rename from Documentation/Ch4.tex rename to guide/Ch4.tex diff --git a/Documentation/Ch5.tex b/guide/Ch5.tex similarity index 81% rename from Documentation/Ch5.tex rename to guide/Ch5.tex index 32cc7a8..a3a4b81 100644 --- a/Documentation/Ch5.tex +++ b/guide/Ch5.tex @@ -1,40 +1,40 @@ % !TEX root = Main.tex -\chapter{Other Stuff} -\section{\textbackslash ignore} +\section{Other Stuff} +\subsection{\textbackslash ignore} The class file defines the command \verb=\ignore{...}= which is very useful for removing large blocks of text from the thesis without deleting them. Anything within the argument is treated as if it was commented out and will not appear in the typeset document. -\section{\textbackslash comment} +\subsection{\textbackslash comment} There is also a \verb=\comment{...}= command. If the draft option was issued to the class file, the argument of this command will appear in the right hand margin in red with ``NOTE:'' preceding it in a smaller font (as can be seen in this file if you typeset it in draft mode). This makes it useful for adding reminders to yourself about things you still need to do, or questions for your advisor when you're asking him to review a draft version of something. Without the draft option this command functions identically to \verb=\ignore=.\comment{There is a comment here.} -\section{\textbackslash highlight} +\subsection{\textbackslash highlight} The \verb=\highlight= command is a useful companion to \verb=\comment=. In draft mode it will highlight its argument (i.e., give it a yellow background). In final mode, the text appears normally. -\section{\textbackslash pocket} -If you have supplementary materials such as a DVD or CD which will be stored in a pocket inside the cover of your thesis the Graduate school requires you to list these in the table of contents. This can be done with the \verb=\pocket{...}= command. However, like the \verb=\references= command, the entry in the table of the contents that this produces may be out of place if it is put in Main.tex. See Section \ref{bib} for more details. +\subsection{\textbackslash pocket} +If you have supplementary materials such as a DVD or CD which will be stored in a pocket inside the cover of your thesis the Graduate school requires you to list these in the table of contents. This can be done with the \verb=\pocket{...}= command. However, like the \verb=\references= command, the entry in the table of the contents that this produces may be out of place if it is put in Main.tex. See subsection \ref{bib} for more details. Table of contents entries created by this command have the status of chapters (or appendicies, if you've already issued the \verb=\appendix= command) and will increment the appropriate counter. -\section{\textbackslash toclabel} +\subsection{\textbackslash toclabel} If you need to add a label into your table of contents then you can use the command \verb=\toclabel{...}= to do so. Due to a bug in the \LaTeX\ kernel that effects this command you may need to put the command inside a chapter file rather than in Main.tex. Otherwise the label may not end up in the correct place in the TOC. -\section{\textbackslash compresstitlepage} +\subsection{\textbackslash compresstitlepage} In rare cases your title page may spill over onto a second page when typeset with double line spacing (generally due to a long title, many previous degrees, or committee members with long/multiple titles). When this happens, issue the command \verb=\compresstitlepage= in your preamble. This will change the line spacing for the committee members to single line spacing. If that isn't enough to get your title page onto one page, add the optional argument (``[2]'') to change the spacing for the rest of the title page to one-and-a-half spacing.\comment{There is another comment here.} -\section{verbatim and \textbackslash verb} +\subsection{verbatim and \textbackslash verb} Since the Graduate School doesn't want the font to change during the course of the document, the verbatim environment and the \verb=\verb= command have had their font changed from the standard typewriter font of \LaTeX\ to the normal roman font. This required a change to the font encoding to get what you type in the verbatim environment to be the same characters that appear on the page. As a result, the mapping of quotation marks, ", to close double quotes, '', doesn't work. To get '' you will need to type two close quotation marks, '\,', just like you have to type two two open quotation marks, `\,`, to get the double open quotes, ``. -\section{Widows and Clubs} +\subsection{Widows and Clubs} The graduate school requires that page breaks occur so that at least 3 lines of any paragraph are on a page. Thus, if a paragraph starts on a certain page at least the first three lines of that paragraph should be on that page. Likewise, if a paragraph ends on a page at least the last three lines of that paragraph should be on that page. This is an unusually stringent requirement for clubs (paragraph starts at the end of a page) and widows (paragraph ends at the beginning of a page) and one which is impossible to force \LaTeX\ to respect. The club penalty and widow penalty have been set high to large values so that at least two lines of each paragraph should appear on each page, but if the graduate school starts bugging you about this, you are going to have to play with this manually using \verb=\pagebreak= and \verb=\nopagebreak=. Do this only when preparing the \textit{absolutely final copy} of the thesis as said manual breaks will stick around despite any subsequent edits to the document. -Likewise, the Graduate School has similar standards for the table of contents: at least 3 entries from any given chapter must be on the page (unless the chapter has fewer than 3 entries, in which case all entries should appear on the same page). I've done my best to make sure this happens, but I can't possibly test every possible pattern of chapters, sections, and subsections that you might have. If the graduate school is bugging you about this, then place \verb=\addtocontents{toc}{\protect\pagebreak}= just before a chapter, section, or subsection to manually insert a page break into that position in your table of contents. This command can likewise be used to manually insert page breaks into the list of figures (lof) or the list of tables (lot) by changing the first argument. It also will run into the same bug that effects \verb=\references=. See Section \ref{bib} for more details. If you do have to do this, I'd also appreciate a minimal working example so that I can try to further fine tune the class file's ability to do this automatically. +Likewise, the Graduate School has similar standards for the table of contents: at least 3 entries from any given chapter must be on the page (unless the chapter has fewer than 3 entries, in which case all entries should appear on the same page). I've done my best to make sure this happens, but I can't possibly test every possible pattern of chapters, subsections, and subsubsections that you might have. If the graduate school is bugging you about this, then place \verb=\addtocontents{toc}{\protect\pagebreak}= just before a chapter, subsection, or subsubsection to manually insert a page break into that position in your table of contents. This command can likewise be used to manually insert page breaks into the list of figures (lof) or the list of tables (lot) by changing the first argument. It also will run into the same bug that effects \verb=\references=. See subsection \ref{bib} for more details. If you do have to do this, I'd also appreciate a minimal working example so that I can try to further fine tune the class file's ability to do this automatically. -\section{Thesis in a Foreign Language} +\subsection{Thesis in a Foreign Language} The class file has not been tested on a thesis written in a foreign language and thus its behavior on such documents is not guaranteed. Support for these kinds of documents is planned for a future version, but probably won't come until 2019 at the earliest. Contributions designed to make the class file work with foreign language theses are appreciated: \verb=R.Springuel@umit.maine.edu=. -\section{Hyphenation \& Justification} +\subsection{Hyphenation \& Justification} At the graduate school request, automatic hyphenation is turned off and the document should be set left justified (\verb=\raggedright= in LaTeX parlance). If this creates strange behavior for you, please let me know so that any possible bugs can be resolved. -\section{5-dot Leader Minimum in TOC} +\subsection{5-dot Leader Minimum in TOC} As of v1.10 the this requirement should be obeyed automatically. If you run into problems here please report it to me (\email). As a work around, you can fix this manually by either changing the appropriate title/caption, or by making use of the optional short title/caption built into the appropriate command. \endinput diff --git a/Documentation/Figures/Dialog.png b/guide/Figures/Dialog.png similarity index 100% rename from Documentation/Figures/Dialog.png rename to guide/Figures/Dialog.png diff --git a/Documentation/Figures/ProjectRoot.png b/guide/Figures/ProjectRoot.png similarity index 100% rename from Documentation/Figures/ProjectRoot.png rename to guide/Figures/ProjectRoot.png diff --git a/Documentation/Front.tex b/guide/Front.tex similarity index 95% rename from Documentation/Front.tex rename to guide/Front.tex index 54d3cb9..00ec3bb 100644 --- a/Documentation/Front.tex +++ b/guide/Front.tex @@ -16,19 +16,19 @@ \section{Preface from the 2003 version} This class file is written for use with the \LaTeXe\ document preparation system for theses - conforming to the guidelines of the Graduate School at the University of Maine. - Ideas for this class were found in + conforming to the guidelines of the Graduate School at the University of Maine. + Ideas for this class were found in the class files \verb=gt-thesis.cls=\footnote{available at http://www.ctan.org} and \verb=rpithesis.cls=.\footnote{can be currently found at http://www.rpi.edu/computing/software/latex/thesis-info.html} This class file is relatively compact, without too many options for the user. A majority of the - credit for this class should go to the original writers of those two classes. + credit for this class should go to the original writers of those two classes. \paragraph{What This Class File Can Do---} \verb=maine-thesis.cls= can format a masters or doctoral thesis according to the guidelines set forth by the Graduate School of the University of Maine. It produces a double spaced, one sided - document with the correct margins for final publication. - It will properly format a titlepage, + document with the correct margins for final publication. + It will properly format a titlepage, optional copyright page, abstract, optional dedication, acknowledgements and preface sections, a table of contents, lists of tables and figures, main matter, and end matter. The Graduate School is relatively lenient in some formatting issues and strict in others. Where there is @@ -36,16 +36,16 @@ \section{Preface from the 2003 version} to make it look more to your liking, but in its current version, this class file will produce a thesis that is acceptable to the Graduate School. \paragraph{A Final Note---} - A word of warning: {\bfseries THE GUIDELINES OF THE GRADUATE SCHOOL CAN AND DO CHANGE.} - This class was written using the most recent set of guidelines [...]\footnote{Date of the guidelines used by the original package author has been removed to avoid confusion.}. + A word of warning: {\bfseries THE GUIDELINES OF THE GRADUATE SCHOOL CAN AND DO CHANGE.} + This class was written using the most recent set of guidelines [...]\footnote{Date of the guidelines used by the original package author has been removed to avoid confusion.}. They do change every so often so be sure that you have a copy of the most recent set of guidelines. Most changes that are made will probably be small and cosmetic but there is no guarantee that - something major will not arise. - + something major will not arise. + \begin{flushright} Jim Kenneally \end{flushright} - + \section{Preface to version 1.5} As Jim predicted, the guidelines of the graduate school have changed a bit over the years since he originally designed this class file. Over those intervening years every successive person who has used the class file has been required by the Graduate School to make some changes: some in response to things which Jim didn't get quite right, most to things which they had changed or become stricter on. In most cases those changes accumulated in various versions of the file and were handed on to the next person interested in using the class file. In some cases, however, a student would leave before they handed the class file on to anyone and as a result any changes they made would be lost and have to be reproduced. diff --git a/guide/README.md b/guide/README.md new file mode 100644 index 0000000..acb0096 --- /dev/null +++ b/guide/README.md @@ -0,0 +1,4 @@ +# rpspringuel's Guide + +This guide was prepared by rpspringuel, and is included \href{https://github.com/rpspringuel/maine-thesis}{v1.14} of the +maine-thesis class. \ No newline at end of file diff --git a/Documentation/Main.tex b/guide/main.tex similarity index 86% rename from Documentation/Main.tex rename to guide/main.tex index 56c498a..e690de3 100644 --- a/Documentation/Main.tex +++ b/guide/main.tex @@ -1,8 +1,6 @@ -\documentclass{maine-thesis} +\documentclass[headings, multiappendices]{maine-thesis} \listfiles -\usepackage{graphicx} -\usepackage{natbib} \usepackage{hyperref} \usepackage{blindtext} @@ -23,23 +21,23 @@ \fourthreader{} \fifthreader{} -\multipleappendicestrue - \makeatletter \newcommand{\email}{rpspringuel@gmail.com} \makeatother +\addbibresource{references.bib} + \begin{document} \preliminary -\titlepage +\maketitle -\include{Front} -\include{Ch1} +\input{Front} +\input{Ch1} \chapter{Dummy to force widow/orphan protection in TOC to show} -\include{Ch2} -\include{Ch3} -\include{Ch4} -\include{Ch5} +\input{Ch2} +\input{Ch3} +\input{Ch4} +\input{Ch5} \chapter{Really long chapter title in order to show how wrapping is handled in the table of contents testt} \chapter{Really long chapter title in order to show how wrapping is handled in the table of contents testtt} \blindtext @@ -54,18 +52,14 @@ \subsubsection{Sample subsubsection title} \subparagraph{Sample subparagraph title} \blindtext -\bibfiles{Padraic} -\bibliographystyle{apsper} \references -%\begin{thebibliography}{} -%\end{thebibliography} - -\appendix +\begin{appendices} \include{AppA} \include{AppB} \chapter{Really long appendix title in order to show how wrapping is handled in the TOC} \chapter{Really long appendix title in order to show how wrapping is handled in the TOCC} +\end{appendices} \include{Biography} diff --git a/guide/references.bib b/guide/references.bib new file mode 100644 index 0000000..498f1da --- /dev/null +++ b/guide/references.bib @@ -0,0 +1,49 @@ +@book{Kopka:2004, + author = {Kopka, Helmut and Daly, Patrick W.}, + title = {Guide to \LaTeX}, + publisher = {Addison-Wesley}, + year = {2004}, + edition = {4} +} + +@book{Mittelbach:2004, + author = {Mittelbach, Frank and Goossens, Michel}, + collaborator = {Braams, Johannes and Carlisle, David and Rowley, Chris}, + title = {The \LaTeX Companion}, + publisher = {Addison-Wesley}, + year = {2004}, + edition = {2} +} + +@online{Flynn:2005, + author = {Flynn, Peter}, + title = {Formatting Information: A beginner's guide to typesetting with \LaTeX}, + year = {2005}, + url = {http://www.sciweavers.org/books/beginners-introduction-typesetting-latex} +} + +@online{Feder:2006, + author = {Feder, Arnold}, + title = {Bib\TeX}, + year = {2006}, + url = {http://www.bibtex.org} +} + +@online{BibDesk, + title = {BibDesk}, + url = {https://bibdesk.sourceforge.io} +} + +@online{Spray:2007, + author = {Spray, Jeremy}, + title = {Referencer}, + year = {2007}, + url = {http://icculus.org/referencer/} +} + +@online{Doron:1999, + author = {Doron, Eli}, + title = {BibDB}, + year = {1999}, + url = {https://www.mackichan.com/index.html?bibdb/default.htm} +} \ No newline at end of file diff --git a/maine-thesis.cls b/maine-thesis.cls deleted file mode 100644 index 6066d65..0000000 --- a/maine-thesis.cls +++ /dev/null @@ -1,1061 +0,0 @@ -%% Copyright (C) 2003 by Jim Kenneally -%% -%% This file may be distributed and/or modified under the -%% conditions of the LaTeX Project Public License, either version 1.3 -%% of this license or (at your option) any later version. -%% -%% The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.3 or later is part of all distributions of LaTeX -%% version 2005/12/01 or later. -%% -%% This work has the LPPL maintenance status `maintained'. -%% -%% The Current Maintainer of this work is R. Padraic Springuel. -%% Please report all bugs and problems (particularly formatting that -%% the UMaine Graduate School wants changed) to: -%% rpspringuel@gmail.com -%% - -%%%%%%%%%%%%%%%%%%%%% -% ------IDENTIFICATION------ -%%%%%%%%%%%%%%%%%%%%% -\ProvidesClass{maine-thesis}[2019/07/01 v1.14 Maine thesis class] - -\NeedsTeXFormat{LaTeX2e}[1999/12/01] - -%%%%%%%%%%%%%%%%%%%%% -% ------INITIAL CODE------ -%%%%%%%%%%%%%%%%%%%%% -\newif\ifdraft\draftfalse -\newif\iftwoside\twosidefalse -\newif\ifmt@official\mt@officialtrue -\newif\ifunbound\unboundfalse -\newif\ifmt@legacycaptions\mt@legacycaptionsfalse -\newif\ifmt@loftspace\mt@loftspacefalse -\newcommand\docsize{} -\newcommand\side{oneside} -\newcounter{secnumdefault} -\setcounter{secnumdefault}{3} -\newcounter{head} %Heading styles get numbered so that \ifcase can be used when determining which heading style is currently set instead of a nested set of \if and \else. -\setcounter{head}{1000} %The default value is set very large so that adding new styles shouldn't necessitate changing it. -\def\@margg{1.5in} -\def\mt@pagestyle{bottom} - -%%%%%%%%%%%%%%%%%%%%% -% ------DECLARATION OF OPTIONS------ -%%%%%%%%%%%%%%%%%%%%% -\DeclareOption{10pt}{\renewcommand\docsize{10pt}} -\DeclareOption{11pt}{\renewcommand\docsize{11pt}} -\DeclareOption{12pt}{\renewcommand\docsize{12pt}} -\DeclareOption{draft}{\drafttrue - \ExecuteOptions{10pt} - \PassOptionsToClass{draft}{report} - \newcommand{\drafttext}{\sffamily\small{DRAFT} - \mt@officialfalse} -} -\DeclareOption{twoside}{\mt@officialfalse\unboundfalse\twosidetrue\renewcommand\side{twoside}\def\@margg{1.5in}} -\DeclareOption{oneside}{\mt@officialfalse\unboundfalse\renewcommand\side{oneside}\def\@margg{1.5in}} -\DeclareOption{unbound}{\mt@officialtrue\unboundtrue\def\@margg{1in}} -\DeclareOption{apa}{\setcounter{secnumdefault}{0}\setcounter{head}{0}} -\DeclareOption{chicago}{\setcounter{secnumdefault}{0}\setcounter{head}{1}} -\DeclareOption{headings}{\setcounter{secnumdefault}{0}\setcounter{head}{2}} -\DeclareOption{idecimal}{\setcounter{secnumdefault}{3}\setcounter{head}{3}} -\DeclareOption{jdecimal}{\setcounter{secnumdefault}{3}\setcounter{head}{1000}} -\DeclareOption{legacycaptions}{\mt@legacycaptionstrue} -\DeclareOption{pagenumberbottom}{\def\mt@pagestyle{bottom}} -\DeclareOption{pagenumbertop}{\def\mt@pagestyle{top}} -\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} -\DeclareOption{loftspacing}{\mt@loftspacetrue\mt@officialfalse} - -%%%%%%%%%%%%%%%%%%%%% -% ------EXECUTION OF OPTIONS------ -%%%%%%%%%%%%%%%%%%%%% -\ExecuteOptions{12pt,unbound} -\ProcessOptions - -%%%%%%%%%%%%%%%%%%%%% -% ------PACKAGE LOADING------ -%%%%%%%%%%%%%%%%%%%%% -\LoadClass[\docsize,\side]{report}[2007/10/19 v1.4h Standard LaTeX document class] -\RequirePackage[T1]{fontenc}[2005/09/27 v1.99g Standard LaTeX package] -\RequirePackage{color}[2005/11/14 v1.0j Standard LaTeX Color (DPC)] -\RequirePackage{tocvsec2}[2010/02/27 v1.2b variable ToC section entries] -\RequirePackage[norule]{footmisc}[2009/09/15 v5.5a a miscellany of footnote facilities] -\RequirePackage{soul}[2003/11/17 v2.4 letterspacing/underlining (mf)] -\RequirePackage{afterpackage}[2006/01/17 v1.1 Apply Commands After Package (NCC)] -\RequirePackage{etoolbox}[2015/08/02 v2.2a e-TeX tools for LaTeX (JAW)] -\RequirePackage[none]{hyphenat}[2009/09/02 v2.3c hyphenation utilities] -\RequirePackage{iftex}[2013/04/04 v0.2 Provides if(tex) conditional for PDFTeX, XeTeX, and LuaTeX] -\RequirePackage{geometry}[2010/09/12 v5.6 Page Geometry] -\RequirePackage{xstring}[2013/10/13 v1.7c String manipulations (C Tellechea)] -\AfterPackage{hyperref}{% There are a few changes that are required for the hyperref package, so we make those changes if it is loaded. - \hypersetup{ pdfdisplaydoctitle=true} - \AtBeginDocument{ - \hypersetup{ - pdftitle=\@title, - pdfauthor=\@author, - pdfcreator=\relax, - pdfproducer=\relax % These could be changed, but for the thesis, I left them blank. - } - } - % Graduate School requirements mandate a slight modification to hyperref's - % redefinition of the caption command. - \long\def\@caption#1[#2]#3{% - \ifmt@legacycaptions% - \def\mt@captiontext{#3}% - \else% - \IfStrEq{#2}{#3}{\def\mt@captiontext{#3}}{\def\mt@captiontext{#2\ \ignorespaces#3}}% - \fi% - \expandafter\ifx\csname if@capstart\expandafter\endcsname - \csname iftrue\endcsname - \global\let\@currentHref\hc@currentHref - \else - \hyper@makecurrent{\@captype}% - \fi - \@ifundefined{NR@gettitle}{% - \def\@currentlabelname{#2}% - }{% - \NR@gettitle{#2}% - }% - \par\addcontentsline{\csname ext@#1\endcsname}{#1}{% - \protect\numberline{\csname fnum@#1\endcsname}{\ignorespaces #2}% - }% - \begingroup - \@parboxrestore - \if@minipage - \@setminipage - \fi - \normalsize - \expandafter\ifx\csname if@capstart\expandafter\endcsname - \csname iftrue\endcsname - \global\@capstartfalse - \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces\mt@captiontext}% - \else - \@makecaption{\csname fnum@#1\endcsname}{% - \ignorespaces - \ifHy@nesting - \expandafter\hyper@@anchor\expandafter{\@currentHref}{\mt@captiontext}% - \else - \Hy@raisedlink{% - \expandafter\hyper@@anchor\expandafter{% - \@currentHref - }{\relax}% - }% - \mt@captiontext% - \fi - }% - \fi - \par - \endgroup - } -} -\PassOptionsToPackage{caption=false}{subfig} - -\ifPDFTeX - \pdfsuppressptexinfo=-1 %to remove some useless tags generated by pdftex -\fi - -%%%%%%%%%%%%%%%%%%%%% -% ------MAIN CODE------ -%%%%%%%%%%%%%%%%%%%%% - -%%%%%%%%%%%%%%%%%%%%% -% Variable Declarations -%%%%%%%%%%%%%%%%%%%%% - -\def\@title{} -\def\@author{} -\def\@authorpronoun{} -\def\@degreesheld{} -\def\@degree{} -\def\@program{} -\def\@submitdate{} -\def\@principaladvisor{} -\def\@secondadvisor{} -\def\@principalshort{} -\def\@firstreader{} -\def\@secondreader{} -\def\@thirdreader{} -\def\@fourthreader{} -\def\@fifthreader{} -\def\@bibfiles{} -\def\@type{Dissertation} -\def\@LastLevel{0} - -\newif\ifmultipleappendices\multipleappendicesfalse -\newif\ifcopyrightpage\copyrightpagefalse -\newif\ifbigtitlepage\bigtitlepagefalse -\newif\ifverybigtitlepage\verybigtitlepagefalse -\newif\ifapp\appfalse - -\newcount\numcomm \numcomm=4 -\newcount\numadv \numadv=1 - -\renewcommand*\contentsname{Table of Contents} -\renewcommand*\bibname{References} -\renewcommand*\indexname{INDEX} -\renewcommand*\chaptername{Chapter} -\renewcommand*\appendixname{Appendix} -\newcommand*\listname{List of} -\newcommand*\chapternamep{\chaptername s} -\newcommand*\prefacename{Preface} -\newcommand*\acknowledgename{Acknowledgements} -\newcommand*\dedicationname{Dedication} -\newcommand*\bioname{Biography of the Author} - -%%%%%%%%%%%%%%%%%%%%% -% Variable Modification Commands -%%%%%%%%%%%%%%%%%%%%% -\renewcommand{\author}[1]{% - \ifx\empty#1\empty\else\gdef\@author{#1}\fi} -\newcommand{\authorpronoun}[1]{% - \ifx\empty#1\empty\else\gdef\@authorpronoun{#1}\fi} -\renewcommand{\title}[1]{% - \ifx\empty#1\empty\else\gdef\@title{#1}\fi} -\newcommand{\degreesheld}[1]{% - \ifx\empty#1\empty\else\gdef\@degreesheld{#1}\fi} -\newcommand{\degree}[1]{% - \ifx\empty#1\empty\else\gdef\@degree{#1}\fi} -\newcommand{\program}[1]{% - \ifx\empty#1\empty\else\gdef\@program{#1}\fi} -\newcommand{\submitdate}[1]{% - \ifx\empty#1\empty\else\gdef\@submitdate{#1}\fi} -\newcommand{\principaladvisor}[2][\empty]{% - \ifx\empty#1\empty\else\gdef\@principalshort{\sloppy#1}\fi% - \ifx\empty#2\empty\else\gdef\@principaladvisor{\sloppy#2}\fi% - } -\newcommand{\secondadvisor}[1]{% - \ifx\empty#1\empty\else\gdef\@secondadvisor{\sloppy#1}\fi - \twoadvisors} -\newcommand{\principalshort}[1]{% - \ifx\empty#1\empty\else\gdef\@principalshort{#1}\fi} -\newcommand{\firstreader}[1]{% - \ifx\empty#1\empty\else\gdef\@firstreader{\sloppy#1}\fi - \members{1}} -\newcommand{\secondreader}[1]{% - \ifx\empty#1\empty\else\gdef\@secondreader{\sloppy#1}\fi - \members{2}} -\newcommand{\thirdreader}[1]{% - \ifx\empty#1\empty\else\gdef\@thirdreader{\sloppy#1}\fi - \members{3}} -\newcommand{\fourthreader}[1]{% - \ifx\empty#1\empty\else\gdef\@fourthreader{\sloppy#1}\fi - \members{4}} -\newcommand{\fifthreader}[1]{% - \ifx\empty#1\empty\else\gdef\@fifthreader{\sloppy#1}\fi - \members{5}} -\newcommand{\bibfiles}[1]{% - \ifx\empty#1\empty\else\gdef\@bibfiles{#1}\fi} -\newcommand{\members}[1]{\numcomm=#1} -\newcommand{\twoadvisors}{\numadv=2} -\newcommand{\oneadvisor}{\numadv=1} -\newcommand{\thesis}{ - \gdef\@type{Thesis}} -\newcommand{\project}{ - \gdef\@type{Project}} -\newcommand{\compresstitlepage}[1][1]{ - \ifcase#1 - \relax - \or - \bigtitlepagetrue - \or - \bigtitlepagetrue - \verybigtitlepagetrue - \fi -} - -%%%%%%%%%%%%%%%%%%%%% -% Special Commands -%%%%%%%%%%%%%%%%%%%%% -\newcommand{\comment}[1]{ - \ifdraft - \marginpar{ - \color{red}\flushleft\scriptsize\setlength{\baselineskip}{7pt} - {\MakeUppercase{Note}: #1}} - \fi -} - -\newcommand{\ignore}[1]{} - -\newcommand{\toclabel}[1]{% - \addtocontents{toc}{\protect\pagebreak[3]} - \addtocontents{toc}{\addvspace{1em \@plus\p@} - \parindent \z@ \rightskip \@pnumwidth - #1}% -} - -\newcommand{\pocket}[1]{ - \refstepcounter{chapter} - \addtocontents{toc}{\protect\pagebreak[2]\vskip 10pt plus 1pt minus 1pt} - \ifapp - \ifmultipleappendices - \typeout{<---- Appendix \thechapter ---->} - \addtocontents{toc}{\protect\@dottedtocline{0}{0em}{1.4em}{\MakeUppercase{\appendixname}\space\thechapter\space -- \texorpdfstring{\MakeUppercase{#1}}{#1}}{Pocket}} - \else - \typeout{<---- APPENDIX ---->}% - \addtocontents{toc}{\protect\@dottedtocline{0}{0em}{1.4em}{\MakeUppercase{\appendixname}\space -- \texorpdfstring{\MakeUppercase{#1}}{#1}}{Pocket}} - \fi - \else - \typeout{*** \@chapapp\space\thechapter\space ****} - \addtocontents{toc}{\protect\@dottedtocline{0}{0em}{1.4em}{\protect\numberline{\thechapter.}\space\texorpdfstring{\MakeUppercase{#1}}{#1}}{Pocket}} - \fi - \ifmt@loftspace - \addtocontents{lof}{\protect\addvspace{\loftspacing\p@}} - \addtocontents{lot}{\protect\addvspace{\loftspacing\p@}} - \fi -} - -\newcommand{\highlight}[1]{% - \ifdraft% - \hl{#1}% - \else% - #1% - \fi% -} - -%This is a dummy command defined to improve hyperref compatibility. -\newcommand{\texorpdfstring}[2]{% - #1 -} - -%%%%%%%%%%%%%%%%%%%%% -% General Formating Declarations -%%%%%%%%%%%%%%%%%%%%% -\geometry{ - letterpaper, - margin=1in, - left=\@margg, - headsep=0.4in, - headheight=14pt, - footskip=30pt, - marginparwidth=40pt, - marginparsep=10pt} - -\setcounter{secnumdepth}{\value{secnumdefault}} -\setcounter{tocdepth}{\value{secnumdepth}} -\raggedbottom -\raggedright -\parindent=1.5em\relax -\markboth{}{} -\clubpenalty=10000 -\widowpenalty=10000 - -\def\verbatim@font{\rmfamily} - -\def\setspace@size{% - \ifx \@currsize \normalsize - \@normalsize - \else - \@currsize - \fi -} - -\def\doublespacing{% - \ifcase \@ptsize \relax - \def\baselinestretch{1.667} - \or - \def\baselinestretch{1.618} - \or - \def\baselinestretch{1.655} - \fi - \setspace@size -} - -\def\onehalfspacing{% - \ifcase \@ptsize \relax - \def\baselinestretch{1.25} - \or - \def\baselinestretch{1.213} - \or - \def\baselinestretch{1.241} - \fi - \setspace@size -} - -\def\singlespacing{% - \def\baselinestretch{1} - \setspace@size - \vskip \baselineskip -} - -\newcommand*\loftspacing{10} - -%%%%%%%%%%%%%%%%%%%%% -% Header Formatting Declarations -%%%%%%%%%%%%%%%%%%%%% - -\newcommand*\chaptersize{\normalsize} - -\newlength{\sectionpost} -\newlength{\subsectionpost} -\newlength{\subsubsectionpost} -\newlength{\paragraphpost} -\newlength{\subparagraphpost} -\newdimen\headindent -\headindent=1.5em -\ifcase\value{head} - %---APA Style Headings--- - \newcommand*{\sectionstyle}{\bfseries\centering} - \setlength{\sectionpost}{1.5ex \@plus .2ex} - \newcommand*{\subsectionstyle}{\bfseries} - \setlength{\subsectionpost}{.3ex \@plus .2ex} - \newcommand*{\subsubsectionstyle}{\bfseries} - \setlength{\subsubsectionpost}{-1em} - \newcommand*{\paragraphstyle}{\hspace{2\headindent}\bfseries\underline} - \setlength{\paragraphpost}{-1em} - \newcommand*{\subparagraphstyle}{\hspace{3\headindent}\underline} - \setlength{\subparagraphpost}{-1em} -\or - %---Chicago Style Headings--- - \newcommand*{\sectionstyle}{\bfseries\centering} - \setlength{\sectionpost}{1.5ex \@plus .2ex} - \newcommand*{\subsectionstyle}{\centering} - \setlength{\subsectionpost}{.3ex \@plus .2ex} - \newcommand*{\subsubsectionstyle}{\bfseries} - \setlength{\subsubsectionpost}{.2ex \@plus .1ex} - \newcommand*{\paragraphstyle}{} - \setlength{\paragraphpost}{.2ex \@plus .1ex} - \newcommand*{\subparagraphstyle}{\hspace{\headindent}\bfseries} - \setlength{\subparagraphpost}{-1em} -\or - %---Sample Headings from Guidelines - \newcommand*{\sectionstyle}{\bfseries\underline\centering} - \setlength{\sectionpost}{1.5ex \@plus .2ex} - \newcommand*{\subsectionstyle}{\bfseries} - \setlength{\subsectionpost}{.3ex \@plus .2ex} - \newcommand*{\subsubsectionstyle}{\bfseries\underline} - \setlength{\subsubsectionpost}{-1em} - \newcommand*{\paragraphstyle}{\hspace{\headindent}\underline} - \setlength{\paragraphpost}{-1em} - \newcommand*{\subparagraphstyle}{\hspace{\headindent}\bfseries} - \setlength{\subparagraphpost}{-1em} -\or - %---Indented Decimal System - \newcommand*{\sectionstyle}{\bfseries} - \setlength{\sectionpost}{1.5ex \@plus .2ex} - \newcommand*{\subsectionstyle}{\hspace{\headindent}\bfseries} - \setlength{\subsectionpost}{.3ex \@plus .2ex} - \newcommand*{\subsubsectionstyle}{\hspace{2\headindent}\bfseries} - \setlength{\subsubsectionpost}{.2ex \@plus .1ex} - \newcommand*{\paragraphstyle}{\hspace{3\headindent}\bfseries} - \setlength{\paragraphpost}{-1em} - \newcommand*{\subparagraphstyle}{\hspace{4\headindent}\underline} - \setlength{\subparagraphpost}{-1em} -\else - %---Justified Decimal--- - \newcommand*{\sectionstyle}{\bfseries} - \setlength{\sectionpost}{1.5ex \@plus .2ex} - \newcommand*{\subsectionstyle}{\bfseries} - \setlength{\subsectionpost}{.3ex \@plus .2ex} - \newcommand*{\subsubsectionstyle}{\bfseries} - \setlength{\subsubsectionpost}{.2ex \@plus .1ex} - \newcommand*{\paragraphstyle}{\bfseries} - \setlength{\paragraphpost}{-1em} - \newcommand*{\subparagraphstyle}{\hspace{\parindent}\underline} - \setlength{\subparagraphpost}{-1em} -\fi - -\def\@chapter[#1]#2{% - \ifnum \c@secnumdepth >\m@ne - \refstepcounter{chapter} - \typeout{*** \@chapapp\space\thechapter\space ****} - \addtocontents{toc}{\protect\pagebreak[3]} - \def\@LastLevel{0} - \addcontentsline{toc}{chapter}{\protect\numberline{\thechapter.}\space\texorpdfstring{\MakeUppercase{#1}}{#1}} - \else - \addtocontents{toc}{\protect\pagebreak[3]} - \def\@LastLevel{0} - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{#1}}{#1}} - \fi - \chaptermark{#1} - \ifmt@loftspace - \addtocontents{lof}{\protect\addvspace{\loftspacing\p@}} - \addtocontents{lot}{\protect\addvspace{\loftspacing\p@}} - \fi - \@makechapterhead{#2} -} - -\def\@makechapterhead#1{% - \cleardoublepage - {\parindent \z@ \raggedright \centering\normalfont\chaptersize - \ifnum \c@secnumdepth >\m@ne - \bfseries \MakeUppercase{\chaptername}\ \thechapter - \par\nobreak - \fi - \interlinepenalty\@M - \bfseries\texorpdfstring{\MakeUppercase{#1}}{#1}\par\nobreak - \vskip 15\p@ - } -} - -\def\@makeschapterhead#1{% - \cleardoublepage - {\parindent \z@ \raggedright \centering\normalfont\chaptersize - \interlinepenalty\@M - \bfseries \texorpdfstring{\MakeUppercase{#1}}{#1}\par\nobreak - \vskip 15\p@ - } -} - -\renewcommand\part{ - \ClassError{maine-thesis}{2-Volume Thesis is no longer supported}{The Graduate School now accepts all theses electronically.\MessageBreak As a result, it no longer has any guidelines for a multi-volume print theses.\MessageBreak If you're preparing a printed thesis, try using of the twoside option to reduce\MessageBreak the page count to something which can be bound in a single volume.} -} - - -\renewcommand\section{ - \@startsection{section}{1}{\z@}% - {3.5ex \@plus 1ex \@minus .2ex}% - {\sectionpost}% - {\sectionstyle}} - -\renewcommand\subsection{\@startsection{subsection}{2}{\z@}% - {3.25ex \@plus 1ex \@minus .2ex}% - {\subsectionpost}% - {\subsectionstyle}} - -\renewcommand\subsubsection{\@startsection{subsubsection}{3}{\z@}% - {3.25ex \@plus 1ex \@minus .2ex}% - {\subsubsectionpost}% - {\subsubsectionstyle}} - -\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}% - {3.25ex \@plus1ex \@minus.2ex}% - {\paragraphpost}% - {\paragraphstyle}} - -\renewcommand\subparagraph{\@startsection{subparagraph}{5}{\z@}% - {3.25ex \@plus1ex \@minus .2ex}% - {\subparagraphpost}% - {\subparagraphstyle}} - -\def\app@chapter[#1]#2{% - \ifmultipleappendices - \ifnum \c@secnumdepth >\m@ne - \refstepcounter{chapter} - \typeout{<---- Appendix \thechapter ---->} - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\appendixname}\space\thechapter\space -- \MakeUppercase{#1}}{#1}} - \else - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{#1}}{#1}} - \fi - \else - \ifnum \c@secnumdepth >\m@ne - \refstepcounter{chapter} - \typeout{<---- APPENDIX ---->}% - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\appendixname}\space -- \MakeUppercase{#1}}{#1}} - \else - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{#1}}{#1}} - \fi - \fi - \ifmt@loftspace - \addtocontents{lof}{\protect\addvspace{\loftspacing\p@}} - \addtocontents{lot}{\protect\addvspace{\loftspacing\p@}} - \fi - \chaptermark{#1} - \@makeapphead{#2} - \@afterheading -} - -\def\@makeapphead#1{% - \cleardoublepage - { - \parindent \z@ \raggedright \normalfont - \ifmultipleappendices - \ifnum\value{chapter}=1 - \centering\chaptersize\bfseries \MakeUppercase{APPENDICES}\par\nobreak - \fi - \centering\chaptersize\bfseries \MakeUppercase{\appendixname}\space\thechapter - \else - \centering\chaptersize\bfseries \MakeUppercase{\appendixname} - \fi - \par\nobreak - \interlinepenalty\@M - \centering\chaptersize\bfseries\texorpdfstring{\MakeUppercase{#1}}{#1}\par\nobreak - \vskip 15\p@ - } -} - -\setcounter{topnumber}{2} -\renewcommand\topfraction{0.8} -\setcounter{bottomnumber}{2} -\renewcommand\bottomfraction{0.8} -\setcounter{totalnumber}{4} -\renewcommand\textfraction{0.2} -\renewcommand\floatpagefraction{0.8} -\setcounter{dbltopnumber}{2} -\renewcommand\dbltopfraction{0.8} -\renewcommand\dblfloatpagefraction{0.8} - -%%%%%%%%%%%%%%%%%%%%% -% Float Formatting Declarations -%%%%%%%%%%%%%%%%%%%%% -\let\latex@xfloat=\@xfloat -\def\@xfloat#1[#2]{% - \latex@xfloat#1[#2] - \centering - \def\baselinestretch{1}\@normalsize - \normalsize -} - -\long\def\@makecaption#1#2{% - \vskip\abovecaptionskip - \sbox\@tempboxa{#1.~~#2}% - \ifdim \wd\@tempboxa >\hsize - {#1.~~#2}\par% - \else - \global \@minipagefalse - \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% - \fi - \vskip\belowcaptionskip -} - -\long\def\@caption#1[#2]#3{% - \ifmt@legacycaptions% - \def\mt@captiontext{#3}%. - \else% - \IfStrEq{#2}{#3}{\def\mt@captiontext{#3}}{\def\mt@captiontext{#2\ \ignorespaces#3}}% - \fi% - \addcontentsline{\csname ext@#1\endcsname}{#1} {\protect\numberline{\csname fnum@#1\endcsname}{\ignorespaces #2}}% - \begingroup - \@parboxrestore - \normalsize - \centering - \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces\mt@captiontext}\par - \endgroup -} - -\long\def\@footnotetext#1{% - \insert\footins{% - \def\baselinestretch {1} - \reset@font\footnotesize - \interlinepenalty\interfootnotelinepenalty - \splittopskip\footnotesep - \splitmaxdepth \dp\strutbox \floatingpenalty \@MM - \hsize\columnwidth - \@parboxrestore - \protected@edef\@currentlabel{% - \csname p@footnote\endcsname\@thefnmark}% - \color@begingroup - \@makefntext{\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% - \color@endgroup} -} - -\long\def\@mpfootnotetext#1{% - \global\setbox\@mpfootins\vbox{% - \unvbox \@mpfootins - \def\baselinestretch {1} - \reset@font\footnotesize - \hsize\columnwidth - \@parboxrestore - \protected@edef\@currentlabel{% - \csname p@mpfootnote\endcsname\@thefnmark}% - \color@begingroup - \@makefntext{\rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% - \color@endgroup} -} - -%%%%%%%%%%%%%%%%%%%%% -% Table of Contents Formatting -%%%%%%%%%%%%%%%%%%%%% -\renewcommand\tableofcontents{% - \chapter*{\contentsname}% - \doublespacing - \@starttoc{toc} -} - -\renewcommand\listoftables{% - \chapter*{\listtablename} - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\listtablename}}{\listtablename}} - \doublespacing - \setcounter{tocdepth}{\value{secnumdepth}} - \@starttoc{lot} -} - -\renewcommand\listoffigures{% - \chapter*{\listfigurename} - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\listfigurename}}{\listfigurename}} - \doublespacing - \setcounter{tocdepth}{\value{secnumdepth}} - \@starttoc{lof} -} - -\newenvironment{thesislist}[1]{% - \chapter*{\listname\ #1} - \addcontentsline{toc}{chapter}{{\texorpdfstring{\MakeUppercase{\listname\ #1}}{\listname\ #1}}} - \begingroup -}{\par\endgroup} - -\renewcommand\@dotsep{1} -\renewcommand\@tocrmarg{4em} -\renewcommand\@pnumwidth{1.4em} -\patchcmd{\@dottedtocline}% - {\rightskip\@tocrmarg}% - {\rightskip\@tocrmarg plus 4em \hyphenpenalty\@M}% - {% - \patchcmd{\@dottedtocline}{\hfill}{\hskip 9.4mm plus1fill}{\typeout{5-dot minimum leader patched}}{}% - }% - {\ClassErrorNoLine{maine-thesis}{Unable to patch \protect\@dottedtocline\MessageBreak 5-dot leader minimum will not be respected}{Please report this error with a MWE.}} - -%We use this count to prevent a page break between two toc entries when the second is one level lower than the first. -\newcount\mt@lasttocentry -\mt@lasttocentry=0 -%This if is supposed to keep the first two entries at a level together. -\newif\ifmt@isfirst -\mt@isfirsttrue - -\renewcommand*\l@chapter{% - \ifnum\mt@lasttocentry=0\relax% - \nopagebreak% - \mt@isfirsttrue% - \else% - \ifmt@isfirst\nopagebreak\fi% - \mt@isfirstfalse% - \fi% - \mt@lasttocentry=1% - \vskip 12pt plus 1pt minus 1pt% - \@dottedtocline{0}{0em}{1.4em}} -\renewcommand*\l@section{% - \ifnum\mt@lasttocentry=1\relax% - \nopagebreak% - \mt@isfirsttrue% - \else% - \ifmt@isfirst\nopagebreak\fi% - \mt@isfirstfalse% - \fi% - \mt@lasttocentry=2% - \ifnum\c@tocdepth>0 \vskip 5pt plus 1pt minus 1pt \fi% - \@dottedtocline{1}{1.5em}{2.3em}} -\renewcommand*\l@subsection{% - \ifnum\mt@lasttocentry=2\relax% - \nopagebreak% - \mt@isfirsttrue% - \else% - \ifmt@isfirst\nopagebreak\fi% - \mt@isfirstfalse% - \fi% - \mt@lasttocentry=3% - \ifnum\c@tocdepth>1 \vskip 4pt minus 1pt \fi% - \@dottedtocline{2}{3.8em}{3.2em}} -\renewcommand*\l@subsubsection{% - \ifnum\mt@lasttocentry=3\relax% - \nopagebreak% - \mt@isfirsttrue% - \else% - \ifmt@isfirst\nopagebreak\fi% - \mt@isfirstfalse% - \fi% - \mt@lasttocentry=4% - \ifnum\c@tocdepth>2 \vskip 3pt minus 1pt \fi% - \@dottedtocline{3}{7.0em}{4.1em}} -\renewcommand*\l@figure{% - \vskip 8pt plus 1pt minus 1pt% - \@dottedtocline{1}{0em}{5.8em}} -\let\l@table\l@figure -\newcommand{\bibalign}{} - -%%%%%%%%%%%%%%%%%%%%% -% Special Pages/Environments -%%%%%%%%%%%%%%%%%%%%% -\newcommand{\references}{% - \cleardoublepage - \singlespacing - \phantomsection - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\bibname}}{\bibname}} - \bibliography{\@bibfiles} -} - -\renewenvironment{thebibliography}[1] - {%begin - \chapter*{\bibname} - \bibalign\frenchspacing - \list{\@biblabel{\@arabic\c@enumiv}}% - {\settowidth\labelwidth{\@biblabel{#1}}% - \leftmargin\labelwidth - \advance\leftmargin\labelsep - \@openbib@code - \usecounter{enumiv} - \let\p@enumiv\@empty - \renewcommand\theenumiv{\@arabic\c@enumiv}}% - \sloppy - \sfcode`\.=\@m - } - {%end - \def\@noitemerr{\@latex@warning{Empty `thebibliography' environment}}% - \endlist% - } - -\renewcommand\titlepage{% - \thispagestyle{empty} - \ifverybigtitlepage - \onehalfspacing - \else - \doublespacing - \fi - \begin{center} - {\bfseries\MakeUppercase{\@title}}\\ - By \\ - \@author \\ - \@degreesheld - \vfill - A \MakeUppercase{\@type}\\[4pt] - Submitted in Partial Fulfillment of the\\ - Requirements for the Degree of\\ - \expandafter{\@degree}\\ - (in \expandafter{\@program})\\ - \vskip 0.5in - The Graduate School\\ - The University of Maine\\ - \expandafter{\@submitdate} - \vfill - \end{center} - \ifbigtitlepage - \singlespacing - \fi - Advisory Committee: - \begin{list}{}{% - \setlength{\itemsep}{0pt}% - \setlength{\topsep}{0in}% - \setlength{\partopsep}{0pt}% - \setlength{\itemindent}{-\parindent}% - \setlength{\leftmargin}{1cm}% - } - \item{\@principaladvisor, % - \ifnum\numadv=2% - Co-% - \fi% - Advisor} - \ifnum\numadv=2 - \item{\@secondadvisor, Co-Advisor} - \fi - \ifnum\numcomm>0 - \item{\@firstreader} - \fi - \ifnum\numcomm>1 - \item{\@secondreader} - \fi - \ifnum\numcomm>2 - \item{\@thirdreader} - \fi - \ifnum\numcomm>3 - \item{\@fourthreader} - \fi - \ifnum\numcomm>4 - \item{\@fifthreader} - \fi - \end{list} - \clearpage -} - -\newcommand{\copyrightpage}[2][\@author]{% - \copyrightpagetrue - \onehalfspacing - \thispagestyle{plain} - \hbox{ } - \vfill - \begin{center} - \copyright\space#2\space#1\\ - All Rights Reserved - \end{center} - \vfill - \clearpage -} -\newcommand{\glsa}{% - \chapter*{UNIVERSITY OF MAINE GRADUATE SCHOOL LAND ACKNOWLEDGMENT} - The University of Maine recognizes that it is located on Marsh Island in the homeland of Penobscot people, where issues of water and territorial rights, and encroachment upon sacred sites, are ongoing. Penobscot homeland is connected to the other Wabanaki Tribal Nations— the Passamaquoddy, Maliseet, and Micmac—through kinship, alliances, and diplomacy. The University also recognizes that the Penobscot Nation and the other Wabanaki Tribal Nations are distinct, sovereign, legal and political entities with their own powers of self-governance and self-determination. - \vfill - \clearpage -} -\newcommand{\libraryrights}{% - \ClassError{maine-thesis}{The Graduate School no longer requires\MessageBreak a Library Rights Statement page}{Please remove \protect\libraryrights\space from your thesis.}% -} - -\newcommand{\dissacceptance}{% - \ClassError{maine-thesis}{The Graduate School no longer requires\MessageBreak a Dissertation Acceptance page}{Please remove \protect\dissacceptance\space from your thesis.}% -} - -\newcounter{mt@page} -\renewenvironment{abstract}{% - \setcounter{mt@page}{\value{page}} - \doublespacing - \begin{center} - {\bfseries\MakeUppercase{\@title}}\\ - By\space\@author\\[4pt] - \@type\ % - \ifnum\numadv=2% - Co-% - \fi% - Advisor% - \ifnum\numadv=2% - s% - \fi% - : \@principalshort - \vskip 0.33in - \singlespacing - An Abstract of the \@type\ Presented\\ - in Partial Fulfillment of the Requirements for the\\ - Degree of \@degree\\ - (in \@program)\\ - \@submitdate - \vskip 36pt plus 2pt minus 12pt - \end{center} - \doublespacing - \begingroup\par - \pagestyle{empty} -} -{\cleardoublepage - \par\endgroup - \setcounter{page}{\value{mt@page}} -} - -\newenvironment{layabstract}[1]{% - \setcounter{mt@page}{\value{page}} - \doublespacing - \begin{center} - {\bfseries\MakeUppercase{\@title}}\\ - By\space\@author\\[4pt] - \@type\ % - \ifnum\numadv=2% - Co-% - \fi% - Advisor% - \ifnum\numadv=2% - s% - \fi% - : \@principalshort - \vskip 0.33in - \singlespacing - A Lay Abstract of the \@type\ Presented\\ - in Partial Fulfillment of the Requirements for the\\ - Degree of \@degree\\ - (in \@program)\\ - \@submitdate - \vskip 26pt plus 2pt minus 12pt - \end{center} - Keywords: \MakeLowercase{#1} - \vskip 26pt plus 2pt minus 12pt - \doublespacing - \begingroup\par - \pagestyle{empty} -} -{\cleardoublepage - \par\endgroup - \setcounter{page}{\value{mt@page}} -} - -\newenvironment{dedication}{% - \chapter*{\dedicationname} - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\dedicationname}}{\dedicationname}} - \vskip 0.5in - \doublespacing - \begingroup - \begin{center} -}{\end{center}\par\endgroup} - -\newenvironment{acknowledgements}{% - \chapter*{\acknowledgename} - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\acknowledgename}}{\acknowledgename}} - \doublespacing - \begingroup -}{\par\endgroup} - -\newenvironment{preface}{% - \chapter*{\prefacename} - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\prefacename}}{\prefacename}} - \doublespacing - \begingroup\setcounter{secnumdepth}{0} -}{\setcounter{secnumdepth}{\value{secnumdefault}}\par\endgroup} - -\newenvironment{biography}{% - \chapter*{\bioname} - \addtocontents{toc}{\protect\nopagebreak} - \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeUppercase{\bioname}}{\bioname}} - \begingroup - \doublespacing - \thispagestyle{plain} -}{\ifx\@authorpronoun\empty\@author\else\@authorpronoun\fi\ is a candidate for the \@degree\ degree in \@program\ from the University of Maine in \@submitdate.\par\endgroup} - -%%%%%%%%%%%%%%%%%%%%% -% Front/Main/Back Separators -%%%%%%%%%%%%%%%%%%%%% -\newcommand{\preliminary}{% - \pagenumbering{roman} - \settocdepth{chapter} -} - -\newcommand{\mainmatter}{% - \cleardoublepage - \doublespacing - \pagenumbering{arabic} - \ifcase\value{secnumdepth} - \or - \settocdepth{section} - \or - \settocdepth{subsection} - \or - \settocdepth{subsubsection} - \or - \settocdepth{paragraph} - \or - \settocdepth{subparagraph} - \fi -} - -\renewcommand{\appendix}{% - \setcounter{chapter}{0} - \setcounter{section}{0} - \renewcommand*\@chapter{\app@chapter} - \renewcommand*\thechapter{\@Alph\c@chapter} - \addtocontents{toc}{\protect\renewcommand*\protect\l@chapter{\protect\@dottedtocline{0}{0pt}{7.5em}}} - \ifmultipleappendices% - \toclabel{Appendices} - \fi% - \settocdepth{chapter} - \doublespacing - \apptrue -} - -%%%%%%%%%%%%%%%%%%%%% -% Page Style Definitions -%%%%%%%%%%%%%%%%%%%%% - -\newcommand{\ps@bottom}{% - \renewcommand{\@oddhead}{% - \ifdraft\drafttext\hfil\today\hfil\drafttext\else\fi}% - \renewcommand{\@evenhead}{\@oddhead} - \renewcommand{\@oddfoot}{% - \ifdraft\drafttext\hfil\thepage - \hfil\drafttext\else\hfil\thepage\hfil\fi} - \renewcommand{\@evenfoot}{\@oddfoot} -} - -\renewcommand{\ps@empty}{% - \renewcommand{\@oddhead}{% - \ifdraft\drafttext\hfil\today\hfil\drafttext\else\fi}% - \renewcommand{\@evenhead}{\@oddhead} - \renewcommand{\@oddfoot}{% - \ifdraft\drafttext\hfil\drafttext\else\fi} - \renewcommand{\@evenfoot}{\@oddfoot} -} - -\newcommand{\ps@top}{% - \renewcommand{\@oddhead}{% - \ifdraft\drafttext\fi\hfil - \ifdraft\today\else\thepage\fi - \ifdraft\hfil\drafttext\fi} - \renewcommand{\@evenhead}{% - \ifdraft\drafttext\hfil\fi - \ifdraft\today\else\thepage\fi - \hfil\ifdraft\drafttext\fi} - \renewcommand{\@oddfoot}{% - \ifdraft\drafttext\hfil\thepage\hfil\drafttext\fi} - \renewcommand{\@evenfoot}{\@oddfoot} -} - - -\pagestyle{\mt@pagestyle} -\renewcommand{\ps@plain}{\csname ps@\mt@pagestyle\endcsname} - - -\endinput -%% -%% End of file `maine-thesis.cls'. diff --git a/skeleton/AppA.tex b/skeleton/AppA.tex deleted file mode 100755 index 4e6a14a..0000000 --- a/skeleton/AppA.tex +++ /dev/null @@ -1,3 +0,0 @@ -\chapter{...} %Appendix title - -\endinput \ No newline at end of file diff --git a/skeleton/AppB.tex b/skeleton/AppB.tex deleted file mode 100755 index 4e6a14a..0000000 --- a/skeleton/AppB.tex +++ /dev/null @@ -1,3 +0,0 @@ -\chapter{...} %Appendix title - -\endinput \ No newline at end of file diff --git a/skeleton/Ch1.tex b/skeleton/Ch1.tex deleted file mode 100755 index 21f4d7b..0000000 --- a/skeleton/Ch1.tex +++ /dev/null @@ -1,3 +0,0 @@ -\chapter{...} %Chapter title - -\endinput \ No newline at end of file diff --git a/skeleton/Ch2.tex b/skeleton/Ch2.tex deleted file mode 100755 index 21f4d7b..0000000 --- a/skeleton/Ch2.tex +++ /dev/null @@ -1,3 +0,0 @@ -\chapter{...} %Chapter title - -\endinput \ No newline at end of file diff --git a/skeleton/Ch3.tex b/skeleton/Ch3.tex deleted file mode 100755 index 21f4d7b..0000000 --- a/skeleton/Ch3.tex +++ /dev/null @@ -1,3 +0,0 @@ -\chapter{...} %Chapter title - -\endinput \ No newline at end of file diff --git a/skeleton/Front.tex b/skeleton/Front.tex deleted file mode 100755 index 195e0ef..0000000 --- a/skeleton/Front.tex +++ /dev/null @@ -1,38 +0,0 @@ -\copyrightpage[...]{...} % Optional, comment out or delete if undesired -\glsa{} -\begin{abstract} -% Abstract text here, either typed in directly or included using an `\input{}' command -\end{abstract} - -\begin{layabstract}{...} % Replace the ... with the list of keywords -% Lay abstract text here, either typed in directly or included using an `\input{}' command -\end{layabstract} - -% The optional preface, dedication, and acknowledgements environments are included similar to the abstract environment - -\begin{preface} -% Preface text here -\end{preface} - -\begin{dedication} -% Dedication text here -\end{dedication} - -\begin{acknowledgements} -% Acknowledgments text here -\end{acknowledgements} - -% Commands for the required lists -\tableofcontents -\listoftables % Include only if there are tables in the thesis -\listoffigures % Include only if there are figures in the thesis - -% If you have other lists which need to be included they go here, possibly using the listof environment -\begin{thesislist}{...} % Replace the ... with name of the things being listed here -% Contents of list -\end{thesislist} - -% Sets the document spacing and pagestyle. -\mainmatter - -\endinput diff --git a/skeleton/Main.tex b/skeleton/Main.tex deleted file mode 100755 index a0a2b21..0000000 --- a/skeleton/Main.tex +++ /dev/null @@ -1,55 +0,0 @@ -\documentclass{maine-thesis} % Default options 12pt and final copy - -% Include necessary packages here -% \usepackage{...} - -% Replace contents of {...} with your own information. -\title{...} % Title of thesis -\author{...} % Author's name: First Middle Last -\degreesheld{...} % Previously earned degree(s), institution(s) and year(s). -\degree{...} % Degree to be granted -\program{...} % Degree granting department or program -\submitdate{...} % Month and year of graduation (do not separate with a comma) - -\principaladvisor[...]{...} % Advisor's [short title and name]{name, long title} -% If you have more than one advisor then you'll should delete the first argument ("[...]") above and uncomment the following commands -%\secondadvisor{...} -%\principalshort{...} % Shortened advisor name for abstract. See guidelines for example. - -% Include all committee members names and titles -\firstreader{...} -\secondreader{...} -% If necessary (i.e. for a doctorate), include extra committee members. Else, comment out or delete any that are unnecessary -\thirdreader{...} -\fourthreader{...} -\fifthreader{...} - -% If the thesis has MORE than one appendix, leave the following command in. Else, comment it out. -\multipleappendicestrue - -% Begin the document. -\begin{document} -\preliminary -\titlepage - -\include{Front} - -% Main text of the thesis. Use of the `\input' command will make later editing much easier. -\include{Ch1} % Chapter 1 -\include{Ch2} % Chapter 2 -\include{Ch3} % Chapter 3, etc. - -% Bibliography files are included here. Separate with a comma if more than one -\bibfiles{..., ...} -\bibliographystyle{...} % Appropriate bibliography style -% Appropriate bibliography title, default is REFERENCES, Uncomment to change it. -%\renewcommand{\bibname}{...} -\references % Inserts and formats the reference section. - -\appendix % Include this before any appendices. -\include{AppA} % First appendix. -\include{AppB} % Second appendix, etc. - -\include{Biography} - -\end{document} \ No newline at end of file diff --git a/sources/CTANREADME.md b/sources/CTANREADME.md new file mode 100644 index 0000000..adc0018 --- /dev/null +++ b/sources/CTANREADME.md @@ -0,0 +1,72 @@ +# maine-thesis -- A Class for the Graduate School of the University of Maine's Thesis Format + +Authors: R. Padraic Springuel, Camden Bock, Hanna Brooks + +- Date: 2025-09-05 +- Version: 2.0.0 + +# Abstract + +This document class provides assistance for implementing the thesis formatting requirements of the Graduate School at +the University of Maine. The class handles the complex formatting rules for pagination, spacing, and headings, allowing +students to focus on the content of their research. + +## Key features include: + +- Support for both single- and multiple-appendix formats. +- A variety of heading styles, including APA, Chicago, and decimal numbering. +- Automatic generation of the title page and biography with user-defined variables. +- Integration with modern TeX packages like biblatex for citation management and hyperref for document navigation. +- A draft mode with watermarks and line numbers for easier collaborative review. + +The document also provides comprehensive guidance on organizing thesis files, handling common formatting errors, and +working with other LaTeX packages. + +## Description + +The maine-thesis document class is a comprehensive solution for students at the University of Maine who need to format +their Masters or Doctorate thesis according to the specific guidelines of the Graduate School. It extends the standard +report class, providing a robust framework that automates many of the required formatting tasks, such as margin +settings, line spacing, and the layout of preliminary pages. +Installation + +To install this class file, you need to place it in the texmf/tex/latex/ directory of your local TeX installation. Since +this location can vary by system, please consult your system's documentation for the specific path. + +If you are using an online editor like Overleaf, all the necessary packages are pre-installed, and you can simply upload +your project files to begin. +Usage + +To use the class, your main document file (main.tex) should begin with the document class declaration: + +```LaTeX +\documentclass[options]{maine-thesis} +``` + +Replace options with your desired settings, such as draft, multiappendices, or a specific heading style like apa or +jdecimal. + +The class requires a build tool like l3build or latexmk to properly compile the document and handle the bibliography +with biblatex. +Change Log + +The maine-thesis class has undergone significant updates from version 1.16 to 2.0.0. Key changes include: + +- A new file structure based on l3build for streamlined maintenance. +- Refactored code to use modern TeX packages (biblatex, titlesec, hyperref, etc.). +- New options for heading styles and improved typography. +- Removal of deprecated commands and features no longer required by the Graduate School. + +## Bugs and Suggestions + +Please report any bugs or formatting problems to the GitLab +repository: https://www.google.com/search?q=https://gitlab.com/maine-thesis/maine-thesis. When submitting an issue, +please include a minimal working example that reproduces the problem. + +## Licence + +This work may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version +1.3c of this license or (at your option) any later version. + +The latest version of this license is in http://www.latex-project.org/lppl.txt and version 1.3c or later is part of +all distributions of LaTeX version 2005/12/01 or later. \ No newline at end of file diff --git a/sources/maine-thesis.dtx b/sources/maine-thesis.dtx new file mode 100644 index 0000000..8352766 --- /dev/null +++ b/sources/maine-thesis.dtx @@ -0,0 +1,2833 @@ +% \iffalse meta-comment +% +% This work may be distributed and/or modified under the conditions of the +% LaTeX Project Public License, either version 1.3c of this license or (at +% your option) any later version. The latest version of this license is in +% +% http://www.latex-project.org/lppl.txt +% +% and version 1.3c or later is part of all distributions of LaTeX version +% 2005/12/01 or later. +% +% This work is "maintained" (as per LPPL maintenance status) by +% Fr. Samuel Springuel and Camden Bock. +% +% This work consists of the files maine-thesis.dtx and +% and the derived files maine-thesis-example.pdf, +% maine-thesis.dtx, +% maine-thesis.pdf, +% maine-thesis.cls +% +% The ins files is embedded in the maine-thesis.dtx. +% +% +%<*ignore> +\begingroup + \def\x{LaTeX2e} +\expandafter\endgroup +\ifcase 0\ifx\install y1\fi\expandafter + \ifx\csname processbatchFile\endcsname\relax\else1\fi + \ifx\fmtname\x\else 1\fi\relax +\else\csname fi\endcsname +% +%<*install> +\input l3docstrip.tex +\keepsilent +\askforoverwritefalse +\preamble + +This work may be distributed and/or modified under the conditions of the +LaTeX Project Public License, either version 1.3c of this license or (at +your option) any later version. The latest version of this license is in + + http://www.latex-project.org/lppl.txt + +and version 1.3c or later is part of all distributions of LaTeX version +2005/12/01 or later. + +This work was originally developed by +rpspringuel (R. Padraic Springuel) maintained v1 on github. +maine-thesis and hanna.brooks updated a variety of package references for consistency with 2025 style requirements and modern citation management with biber. + +This work is "maintained" (as per LPPL maintenance status) by +Fr. Samuel Springuel, Camden Bock, and Hanna Brooks. + +This work consists of the files maine-thesis.dtx and +and the derived files maine-thesis-example.pdf, + maine-thesis.dtx, + maine-thesis.pdf, + maine-thesis.cls + + +\endpreamble +\postamble +Adapted from classic "A model .dtx file" by Joseph Wright +https://www.texdev.net/2009/10/06/a-model-dtx-file/ +\endpostamble + +\usedir{tex/latex/maine-thesis} +\generate{ + \file{maine-thesis.cls}{\from{maine-thesis.dtx}{package}} + \nopreamble\nopostamble + \file{maine-thesis-example.tex}{\from{maine-thesis.dtx}{example}} +} + +\Msg{*****************************************************************}% +\Msg{*} +\Msg{* To finish the installation you have to move the files into a } +\Msg{* TDS directory searched by TeX.} +\Msg{*} +\Msg{* To produce the documentation with source code run lualatex }% +\Msg{* thrice on file maine-thesis.dtx } +\Msg{*} +\Msg{* Happy TeXing!} +\Msg{*} +\Msg{*****************************************************************}% + +\endbatchfile +% +%<*ignore> +\fi +% +%<*driver> +\documentclass{ltxdoc} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage[numbered]{hypdoc} +\usepackage{bookmark} +\usepackage{biblatex} +\usepackage[draft]{changes} + +\usepackage{readprov} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\begin{document} + \DocInput{maine-thesis.dtx} +\end{document} +% +% \fi +% \renewcommand{\fileversion}{2.0.0} +% \renewcommand{\filedate}{2025/09/05} +% \makeatletter +% \def\@xobeysp{\leavevmode\penalty100\ } +% \makeatother +% \makeatletter +% \newcommand{\email}{camden.bock@maine.edu} +% \makeatother +% \title{^^A +% \textsf{maine-thesis} --- A LaTeX class file for the typesetting of a Masters or Doctorate Thesis at the University of Maine.\thanks{^^A +% This file describes version \fileversion, last revised \filedate.^^A +% }^^A +% } +% \author{ +% Fr. Springuel, Samuel +% \thanks{E-mail: \href{mailto:rspringuel@gmail.com}{rspringuel@gmail.com}} +% \and +% Bock, Camden +% \thanks{The University of Maine; \href{mailto:camden.bock@maine.edu}{camden.bock@maine.edu}} +% \and +% Brooks, Hanna +% \thanks{Amherst College \& Climate Change Institute; \href{mailto:hbrooks@amherst.edu}{hbrooks@amherst.edu}} +% } +% \date{Released \filedate} +% +% \maketitle +% +% \begin{abstract} +% This class provides assistance for implementing the thesis formatting requirement of the Graduate School at the University of Maine. +% Upon the recommendation of their committee, students may follow the style manual of a leading journal or of a professional association for the use of field-specific terminology, formulas, signs, and other features of the text, as well as formats for documenting sources. +% The format requirements of the graduate school must be satisfied first, even if they depart from the style manual that has been adopted. Papers that have been published in a journal or other publication and are included in the thesis must be re-formatted to adhere to these guidelines. +% \end{abstract} +% +% \tableofcontents +% +% \section{Introduction} +% This document is not intended to be an introduction on how to use \LaTeX. In fact, I will assume that you are familiar with basic \LaTeX\ commands and have typeset documents in \LaTeX\ before throughout this document. If you haven't, then I highly suggest finding a reference book or tutorial that will teach you the basics of \LaTeX\ and read through that first. There are several options available both in print and online (e.g. \cite{Kopka:2004,Mittelbach:2004,Flynn:2005}). Which one you use is largely a matter of preference. +% +% \subsection{Installation} +% To install this class file you need to place it in \verb=~=/texmf/tex/latex/ where the ``\verb=~='' represents the location of your local texmf directory.\footnote{The final path should not have .../texmf/texmf/... in it, just .../texmf/...} Since this changes from system to system, I can't be more specific than that, so check the documentation for your system. +% +% \subsection{Organizing your Thesis} +% While not required by the class file, I have some specific recommendations as to how you should organize the tex files that make up your thesis. These recommendations are designed to make editing and distribution of drafts easier and were followed in assembling this document. While I will go into more detail about this structure as I go over the various elements of the maine-thesis.cls file and how to use them, the basic message is to break the thesis up into multiple files. In particular, the break down that I use is: +% \begin{description} +% \item[main.tex] This file has the responsibility for coordinating all the other files, but contains very little of the actual body of the thesis. +% \item[front.tex] This file contains all the material which appears up to and including the Table of Contents. +% \item[ch\#.tex] The individual chapters of your thesis. By splitting out each thesis chapter into its own file, it will be easier to find where you want to work in any particular session as well as make generating draft copies of just part of the thesis easier. +% \item[app\#.tex] Like the chapter files, each appendix gets its own file. +% \item[biography.tex] The last element of the thesis, the biography of the author also gets its own file to avoid adding clutter to Main.tex. +% \item[figures] Since most of the figures you use in your thesis are likely to be separate image files which \LaTeX\ will need access to when it typesets your thesis, I advise making a subfolder for your project where you can place these images. It'll make them easier to find later when you need to change them and keep the project root folder from getting too cluttered. +% \end{description} +% +% All of these files should be located in a single folder specifically created for this purpose. Since \LaTeX\ creates several files when typesetting documents, this will keep all those files in one place and keep them from crowding up your usual documents folders. +% +% In this documentation, I will be assuming that the above organization structure is in use. If you're using something else, you'll have to modify the instructions provided here accordingly. +% +% If you are using these guidelines, however, it is highly useful if you set main.tex as the root project file for all other files in your \LaTeX\ editor. You'll get fewer errors this way as you'll be able to order your editor to typeset the project without switching to Main.tex first, regardless of which file you're currently working on. +% +% \subsection{Organization of this document} +% If you've read the Table of Contents, you've no doubt noticed that each of the chapters in this document deals with one of the files listed above. In that chapter you'll find instructions for what has to be in that file. For the most part these are requirements of either the Graduate School or the maine-thesis.cls itself. Deviation from them may result in your document not typesetting correctly or in it not conforming to the Graduate School guidelines. If you follow all these instructions perfectly and the Graduate School still rejects your thesis on the basis of some formatting error, please contact me (\email) with a full description of the problem that the Graduate School had with your thesis and I will make every effort to update the class file as quickly as possible. +% +% \subsection{Reporting a Bug or Formatting Problem} +% If you find a bug with this class file, please create a minimal working example which reproduces the bug and email it to \email\ along with a description of the bug and any possible fixes you have tried (and whether they worked or not). For those not familiar with it, there are a couple of good descriptions on the web: +% \begin{itemize} +% \item{\url{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=minxampl}} +% \item{\url{http://www.minimalbeispiel.de/mini-en.html}} +% \end{itemize} +% +% If you find a formatting problem with this class file, please create a minimal working example which reproduces the problem and email it to \email\ along with a description of the formatting problem. If the problem was pointed out to you by the Graduate School, please indicate who in the Graduate School pointed the problem so that I can consult with them directly if needed. If available, a document which demonstrates what the desired formatting looks like should also be included. +% +% For those with GitLab accounts (they are free), you can also submit formatting problems and bug reports via the GitHub repository: \url{https://gitlab.com/maine-thesis/maine-thesis}. Please open a separate issue for each problem so that they can be tracked independently and make sure to upload a minimal working example. If you have some experience with programming, you may also submit Pull Requests with suggested changes. +% +% I cannot guarantee any timeline on how quickly bugs or formatting problems will be dealt with, but I will make every effort to correct them as quickly as possible. +% +% \section{main.tex} +% main.tex is responsible for 5 things: +% \begin{enumerate} +% \item{the loading of the class file and any packages you need to properly typeset your thesis,} +% \item{the declaration of the principal variables in the thesis (author, title, advisor, etc.),} +% \item{coordinating which files should be typeset at this particular time,} +% \item{typesetting the title page of the thesis, and} +% \item{placing and typesetting the references according to the style file you select.} +% \end{enumerate} +% We shall deal with each of these, though not necessarily in the order listed above. +% +% \subsection{Class and Package Loading}\label{class} +% Like any other \LaTeX\ project, a thesis set using maine-thesis.cls must start with a declaration of the document class: +% +% \begin{verbatim} +% \documentclass[options]{maine-thesis} +% \end{verbatim} +% +% \pagebreak[3]The options are as follows: +% This document outlines the various options available when using the \texttt{maine-thesis.cls} document class. These options are grouped by function to help you easily configure your thesis or dissertation. +% +% \begin{macro}{10pt} +% This option sets the font size to 10pt. This option is allowed by the graduate school for an official copy, but is not recommended (the smaller font size doesn't convert to microfilm as well as the default). +% \end{macro} +% +% \begin{macro}{11pt} +% This option sets the font size to 11pt. This option is allowed by the graduate school for an official copy, but is not recommended (the smaller font size doesn't convert to microfilm as well as the default). +% \end{macro} +% +% \begin{macro}{12pt} +% This option sets the font size to 12pt. This is the default option, and doesn't normally need to be issued. +% \end{macro} +% +% \subsubsection{Number of Appendices} +% \begin{macro}{multiappendices} +% If you have more than one appendix, then you have to tell the class file this with the option \texttt{multiappendices} +% This is because the Graduate School requires different formatting for a document with a single appendix as opposed to one with multiple appendices (in particular as relating to lettering them and how they appear in the table of contents). By default, the class file assumes one appendix and will format it accordingly. If you have more than one, then this command will tell the class file to change to the multiple appendices format. If you don't have any appendices, then it shouldn't matter if you issue this command or not. +% \end{macro} +% +% \subsubsection{Document Mode} +% These options define the general style and layout of the document. +% \begin{macro}{draft} +% This option does a few things: +% \begin{itemize} +% \item{it marks the copy of the file as a draft by placing DRAFT in all four corners of each page (moving the page number to the bottom center if the top page style was selected),} +% \item{it marks any over full line with a black rectangle at the end,} +% \item{it allows \verb=\comment{...}= commands to show in the outside margin (right-hand normally, but if twoside is also given, then it's the left-hand margin on even pages),} +% \item{it places the current date in the top center of each page, and} +% \item{it sets the font size to 10pt to reduce the document page count and save paper.} +% \end{itemize} +% Taken together, these changes make this option useful when you want to distribute copies of your thesis (or parts thereof) to someone for feedback prior to completing it. +% \end{macro} +% +% \begin{macro}{oneside} +% This option sets the margins to allow for binding. +% This means the left-hand margin is enlarged to 1.5in. +% No other changes are made, but the larger margin leads to a reduced line length and thus different line breaking, page breaking, etc. +% When using this option you should review all manual page breaking decisions. Since the Graduate School no longer requires a printed copy of the thesis, this option is mostly intended for when you department requires a bound copy for themselves using the old one-sided printing rules. +% You might want to consult with them about the possibility of using the twoside option below in order to save paper. +% \end{macro} +% +% \begin{macro}{twosided} +% This option sets the margins to allow for binding of a two sided printing. Thus odd number pages have a larger left-hand margin while even number pages have a larger right-hand margin. Chapters (or chapter equivalent elements) will always begin on an odd page. Finally, when page numbers are at the top (pagenumbertop option), they are shifted to always be on the outside edge of the page. As with the oneside option, the change in margins will affect line breaking and therefore page breaking as compared to the official copy of the thesis. Double check any manual page breaks to make sure they are still where you want them. +% This option is useful for producing extra copies of your thesis that you want bound for your advisor, your committee members, yourself, or other people. When combined with the 10pt option, it will result in the most economical printing (fewest number of pages). +% \end{macro} +% +% \begin{macro}{unbound} +% This option sets the margins to equal width. This is the default option, and doesn't normally need to be issued. +% \end{macro} +% +% \subsection{Heading Styles} +% These options control the formatting and numbering of section headings. +% \begin{macro}{apa} +% This option changes the headings to follow the American Psychology Association style with one exception: italics are replaced by underlines (since italics in the headings is prohibited by the Graduate School). These heading styles are unnumbered and thus cross references using \verb=\ref= will point to just the chapter. +% \end{macro} +% +% \begin{macro}{chicago} +% This option changes the headings to follow the Chicago style guidelines. These heading styles are unnumbered and thus cross references using \verb=\ref= will point to just the chapter. +% \end{macro} +% +% \begin{macro}{headings} +% This option changes the headings to follow the example given in the Guidelines for unnumbered headings. As they are unnumbered, cross references using \verb=\ref= will point to just the chapter. +% \end{macro} +% +% \begin{macro}{idecimal} +% This option changes the headings to follow the indented decimal example given in the Guidelines. +% \end{macro} +% +% \begin{macro}{jdecimal} +% This option is the default headings system (so you don't need to give it explicitly) and matches the left-justified decimal example given in the Guidelines. +% \end{macro} +% +% \subsection{Caption and Spacing} +% These options modify the appearance of captions and line spacing. +% \begin{macro}{legacycaptions} +% Uses the previous version of caption formatting.\footnote{This may be depricated in the future.} +% \end{macro} +% +% \begin{macro}{loftspacing} +% This option introduces extra spacing between the chapters in your list of figures, and list of tables. This makes it easier to see the change between chapters at a glance in those lists, but breaks the Graduate School’s strict double-spacing requirements. +% \end{macro} +% +% \subsection{Page Numbering Style} +% These options dictate where the page numbers appear on the page. +% \begin{macro}{pagenumberbottom} +% This is the default option for the position of the page numbers. It places them in the middle of the bottom of the page. +% \end{macro} +% +% \begin{macro}{pagenumbertop} +% This option puts the page numbers in the upper right-hand corner of the page for body pages. +% \end{macro} +% +% \subsection{Other Options} +% \begin{macro}{citestyle={style}} +% Sets the citation style to the specified style. The default is \texttt{authoryear}, but you can pass any option to biblatex or biber. See biblatex and biber documentaiton for more information about citation style. +% \end{macro} +% +% \begin{macro}{table} +% Provides additional options for styling tables. +% \end{macro} +% +% \begin{macro}{xcdraw} +% Used for chemical drawing with the \texttt{xcolor} package. +% \end{macro} +% \subsection{Variable Declarations} +% +% Once you've initialized all the stuff you need to typeset your document, it's time to start adding content. Since many elements of this content get used over and over again, the class file allows for you to declare them once and then places them in all the appropriate places. +% +% \subsubsection{Describe Yourself}\label{self} +% The first batch of these variables that you'll declare are the title of your thesis, your name, the degrees you already hold, the degree you're going for, the specialty in which this degree is, and when you are graduating. These are declared with some fairly self explanatory commands: +% +% \begin{verbatim} +% \title{...} +% \author{...} +% \degreesheld{...} +% \degree{...} +% \program{...} +% \submitdate{...} +% \end{verbatim} +% +% Note that you should use \verb=\\= to separate multiple degrees if you have more than one. This will place them on separate lines (a Graduate School requirement). Also, your submit date should be ``May,'' ``August,'' or ``December'' and the appropriate year with no additional text. +% +% \subsubsection{Describe Your Committee}\label{comm} +% Next, you'll want to tell the class file about your committee. To do this, you'll need each committee member's full name and title (i.e. Ph.D., faculty position, etc., as in ``John Smith, Ph.D., Associate Professor of Interesting Stuff''). Each member is declared with a separate command (use only the ones you need): +% +% \begin{verbatim} +% \principaladvisor[...]{...} +% \secondadvisor{...} +% +% \firstreader{...} +% \secondreader{...} +% \thirdreader{...} +% \fourthreader{...} +% \fifthreader{...} +% \end{verbatim} +% +% \begin{macro}{\title\{...\}} +% The title of your dissertation in inverted pyramid format. Use line breaks to ensure that your title is shaped as an inverted pyrmid if multiple lines. +% \end{macro} +% +% \begin{macro}{\author\{...\}} +% Your name +% \end{macro} +% +% \begin{macro}{\degreesheld\{...\}} +% Degrees that you currently hold, with institutions listed. +% Use line breaks as needed +% \end{macro} +% +% \begin{macro}{\degree\{...\}} +% The name of your degree (e.g., Masters of Science) +% \end{macro} +% +% \begin{macro}{\program\{...\}} +% The name of your degree program +% \end{macro} +% +% \begin{macro}{\submitdate\{...\}} +% The date of submission (May, Dec or Aug) and the Year +% \end{macro} +% +% \begin{macro}{\principaladvisor[...]\{...\}} +% The name of your principal advisor. Short title in square brackets, full title in braces. +% \end{macro} +% +% \begin{macro}{\firstreader\{...\}} +% The name of your first committee member, who is not an advisor. +% \end{macro} +% Note that these commands are order sensitive as the class file uses the last one called to determine the number of committee members. I.e. if you call \verb=\thirdreader{...}= after \verb=\fifthreader{...}= then the class file will think that you have 3 committee members beyond your advisor(s) rather than 5. +% +% If this automatic numbering of your committee isn't working for some reason, then there are two commands which you can issue after the members list to override the behavior: \verb=\twoadvisors=, \verb=\oneadvisor= and \verb=\members{#}=. The first is used to change the number of advisors to two, the second sets it to one (one advisor is the default for the class file). The last tells the class file how many members your committee has (not including your advisor(s)). If you find that you have to issue these commands, please send me a minimal working example that duplicates the problem you experienced so that I can fix it. +% +% In a couple of locations, the thesis requires the ``short'' name for your advisor. In this case, the advisor's title should simply be ``Dr.'' (or whatever is appropriate) and should precede their name (as in ``Dr.~John Smith''). This short name can be defined in two ways. If you have just one advisor, then you can make use of the first (optional) argument of \verb=\prinicpaladvisor= (the one appearing between the square brackets): +% +% \begin{verbatim} +% \principaladvisor[Dr.~John Smith]{John Smith, Ph.D., Associate Professor of Interesting Stuff} +% \end{verbatim} +% +% If you have two advisors, then you should leave out the first argument for \verb=\prinicpaladvisor= and use the command \verb=\prinicpalshort= instead. For this command both names should appear as the argument to the command with their short titles separate: +% +% \begin{verbatim} +% \principaladvisor{John Smith, Ph.D., Associate Professor of Interesting Stuff} +% \secondadvisor{Jane Doe, Ph.D., Professor of More Interesting Stuff} +% \principalshort{Dr.~John Smith and Dr.~Jane Doe} +% \end{verbatim} +% +% +% \subsubsection{Document Type} +% By default, the class file will refer to your document as a dissertation. If your degree program refers to it as a thesis or project, then you'll want to tell the class file that. The command \verb=\thesis= will change all occurrences of ``dissertation'' to ``thesis'' and \verb=\project= will change them to ``project.'' +% +% \subsection{Title page} +% +% Now that all the variables are declared, it's time to start the document itself. This consists of three commands: +% +% \begin{verbatim} +% \begin{document} +% \preliminary +% \maketitle +% \end{verbatim} +% +% \begin{macro}{\preliminary} +% This command in \texttt{main.tex} prepares the document for the preliminary pages, such as the abstract and table of contents, which are typically numbered with Roman numerals. +% \end{macro} +% +% \begin{macro}{\mainmatter} +% This command is used in \texttt{main.tex} to signal the start of the main content of your thesis. It resets page numbering and changes the numbering style from Roman to Arabic. +% \end{macro} +% \begin{macro}{\references} +% This command automatically generates and formats your bibliography section using the entries in \texttt{references.bib} that have been cited in the document. +% \end{macro} +% +% The first is the usual command that tells \LaTeX\ where the document starts. The second tells the class file that what comes next is the front matter of the thesis. This means that pages should be numbered with lowercase roman numerals. The last command creates the title page. Putting it here ensures that every copy of your thesis that you create will include a copy of the title page, making it easier to identify the document (especially important when you're handing out bits and pieces). +% +% After the title page, it's time to include the rest of the preliminary material, but I don't suggest putting all of that in Main.tex. Instead, all of that should be put in Front.tex, a process which gets us to our next job for Main.tex: coordinating which files are to be processed at this time. +% +% \subsection{File Coordination} +% Chances are pretty good that your final thesis will be close to, if not well over, 100 pages. If all of that material were in a single file, finding where it is you want to edit something can be difficult. To make this easier, \LaTeX\ allows you to split the document up into multiple files and then use the \verb=\include{...}= statement to tell the main file to add the contents of another file at this point. We're going to make use of that here. First off, we'll place all the front matter (copyright page, dissertation acceptance statement, library rights statement, abstract(s), preface, dedication, acknowledgements, and table of contents): +% +% \begin{verbatim} +% \include{Front} +% \end{verbatim} +% +% Next comes the main body of the thesis, which is just a bunch of \verb=\include{...}= statements: one for each chapter: +% +% \begin{verbatim} +% \include{Ch1} +% \include{Ch2} +% \include{Ch3} +% ... +% ... +% ... +% \end{verbatim} +% +% \subsection{Bibliography}\label{bib} +% After the main body of the thesis, it's time to set the bibliography. It should be noted that the Graduate School requires a single, all inclusive bibliography for your thesis, even if each chapter has its own bibliography. +% +% Since citation styles and the required contents of the bibliography can vary dramatically from discipline to discipline, the Graduate School has no specific requirements for the this subsection. As a result, this class file contains no formatting specifications for the subsection beyond the margins and line spacing. +% +% By default the name of this subsection is ``REFERENCES'' but you can change it to ``WORKS CITED,'' ``BIBLIOGRAPHY,'' or whatever is customary for your discipline. To do so you'll need to redefine the command \verb=\bibname=. For example \verb=\renewcommand{\bibname}{Works Cited}= will change the name to ``WORKS CITED'' (capitalization is enforced by the class file, so you don't need to worry about it when redefining \verb=\bibname=). \textbf{This is a change from how the class file used to work.} This change serves to bring the class file more in line with usual \LaTeX\ expectations so that packages like babel will work more smoothly with the class file. +% +% There are two ways of handling your bibliography: with \textsc{BibLaTeX} and by hand. +% +% \subsubsection{\textsc{BibLaTeX}} +% If you're using \textsc{BibLaTeX} then you'll need to set several external parameters which tell the class file how to find and format the references. Do do this use the following series of commands: +% +% \begin{verbatim} +% \addbibresource{references.bib} +% \end{verbatim} +% +% The \texttt{addbibresource} command tells the class file where the bibliography entries are located. This should be a \textsc{Bib}\TeX\ file (i.e. one with a ``.bib'' extension). +% Many popular editors (like Overleaf) can integrate with popular reference management tools (Zotero) and sync with your collection. \href{https://www.overleaf.com/learn/latex/Bibliography_management_with_biblatex}{Some initial guidance from Overelaf.} +% +% Use the citestyle option for the class to indicate the style the list should follow. There are a few styles built into \textsc{Biblatex} by default (apa, authoryear, alphabetic, numeric) but there are also countless bibliography styles out there that can achieve alternate formats. Consult with your advisor and committee about which bibliography style you should be using. +% +% Don't forget that if you're using \textsc{Bib}\TeX\ you'll need to process your document at least 4 times for it to come out right: once with \LaTeX, once with \textsc{Bib}\TeX, and twice more with \LaTeX. +% Processing with latexmk can automate this. +% +% \subsubsection{Bibliographies by hand} +% If you've elected to create your bibliography by hand then you simply need to use: +% \begin{verbatim} +% \begin{thebibliography}{...} +% ... +% ... +% ... +% \end{thebibliography} +% \end{verbatim} +% Since the contents and format of this environment is covered in most \LaTeX\ manuals (e.g. subsection 11.3.1 in \cite{Kopka:2004}), I'm not going to go over it here. Note that the same issue that effects \verb=\references= applies to this environment. +% +% \subsection{More File Coordination} +% +% Having taken care of the bibliography, it's time to work on the appendices: +% +% \begin{macro}{appendices} +% The appendicies environment should wrap all of the chapters included in the appendix. The legacy \texttt{\textbackslash appendix} command still functions properly with limited support. +% \end{macro} +% \begin{verbatim} +% \begin{appendices} +% \include{AppA} +% \include{AppB} +% ... +% ... +% ... +% \end{appendices} +% \end{verbatim} +% +% The first command resets the chapter counter and changes it from numbers to letters. This means that from now on the \verb=\chapter{...}= command will create ``Appendix *'' (where ``*'' is A, B, C, etc.) rather than ``Chapter \#'' (where ``\#'' is 1, 2, 3, etc.). It is necessary even if you have only one appendix (and thus don't want it lettered).\footnote{If your document has only one appendix, then the letter is left off completely and it is simply designated ``Appendix''.} The subsequent commands point to and allow the inclusion of the various appendix files. +% +% \subsection{Biography}\label{bio} +% After the list of appendix inclusions you'll need to write your biography. According to the graduate school the requirements for the biography are as follows: +% \begin{quote} +% A biography of the candidate must be included in the thesis. It must be written in the +% third person and include the following information: place of birth, place of high school gradua- +% tion, place and date of college graduation with degree(s) and major(s), professional or +% employment experience, scholarly publications, and memberships in professional or honorary +% societies. The last sentence must state, "S/He is a candidate for the---------degree in ------- from +% The University of Maine in Month, Year." +% \end{quote} +% \begin{macro}{biography} +% This environment is for the author's biography. The content for this section is located in \texttt{front/biography.tex}. +% \end{macro} +% Obviously these are some very stringent requirements, but even so there is still a substantial amount of variation that might be introduced into any given biography so it's left up to you to write all but the last sentence of the biography (which has such specific required wording that the class file can do it for you). To format your biography correctly, it should be placed between \verb=\begin{biography}= and \verb=\end{biography}=. You might also consider placing it in a separate file which you then include (as I've done in this document) so that you can exclude it from draft copies of the thesis. +% +% By default, the class file will use your full name (as defined by the \verb=\author= command in the last sentence. This is allowed by the graduate school, but if you prefer to use a pronoun (as is suggested in the above requirements) then you should make use of the \verb=\authorpronoun= command to indicate what your preferred pronoun is. It is recommended that you place this command in the preamble of the document along side the \verb=\author= command, but technically it can appear anywhere before the biography environment. +% +% Since the biography is required to be the last page of your thesis, the only command that should appear after it in your document is \verb=\end{document}=, which will tell \LaTeX\ that the document is finished. +% +% +% \subsection{Using the File Coordination}\label{coord} +% +% In addition to breaking your thesis up into multiple smaller files, the \verb=\include{...}= statements enable another feature of \LaTeX\ that should make your life much easier. +% +% Let's say during the editing process your committee requires you to make changes to chapter 3 but not any of the rest of the document. Once you've made those changes, do you have to retypeset the whole document and give it all to your committee just so they can approve those changes? Thanks to the \verb=\include{...}= statements, the answer is no. Simply introduce the command \verb=\includeonly{Ch3}= into the preamble of your document (somewhere before \verb=\begin{document}=, I suggest just after the packages are loaded) and \LaTeX\ will only process chapter 3, but will look at the aux files for the other chapters so that any reference commands point to the right place. This will create a document which consists of the title page, chapter 3, and the reference list: a much smaller and easier file to be handing out to your committee. By changing the argument of this command you can control which chapter (or appendix) is typeset and can even typeset more than one (simply separate each file name by a comma as in ``Ch2,Ch3,AppA'' which will typeset chapters 2 and 3 and appendix A). Once you're ready to typeset the whole document again, simply delete the \verb=\includeonly{...}= command. +% +% It should be noted that \verb=\include{...}= not only adds the contents of the specified file to this one, it also starts a new page both before and after the file is read in (the equivalent of issuing \verb=\clearpage=). As a result, you should only use it on files that should start and end on their own pages (like chapters) and not with those that can share their page space with something else (like a subsection in a chapter). As with spaces and carriage returns, \LaTeX\ always ignores multiple commands to start a new page in a row so two \verb=\include{...}= statements in a row won't create a blank page in between. If you have to place in a separate file some material which shouldn't automatically start and end its own page, you'll need to use \verb=\input{...}= instead and there is no equivalent to \verb=\includeonly{...}= for \verb=\input{...}=. +% \section{Front.tex} +% +% The front matter of your thesis is primarily made up of special things that are required by the Graduate School, but also contains some optional elements. Table \ref{front} provides a summary of these elements. +% +% \begin{table} +% \begin{minipage}{\textwidth} +% \centering +% \begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r} +% \hline\hline +% Thesis Element & Required or Optional\\ +% \hline +% Copyright Page & Optional\\ +% Abstract & Required\\ +% Lay Abstract & Special\footnote{See subsection \ref{abstracts}}\\ +% Preface & Optional\\ +% Dedication & Optional\\ +% Acknowledgements & Optional\\ +% Table of Contents & Required\\ +% \hline\hline +% \end{tabular*}\\ +% \end{minipage} +% \caption{The elements of the front matter for your thesis.} +% \label{front} +% \end{table} +% +% \subsection{Copyright}\label{copy} +% +% \begin{verbatim} +% \copyrightpage[copyright holder]{year} +% \end{verbatim} +% +% This command creates a copyright page. This page is optional (unless you've taken the time to register the copyright, in which case it's required by law, not the Graduate School), so you can neglect this page if you want to. If you do issue it, there are a pair of arguments that it takes. The first (between ``['' and ``]'') specifies the copyright holder. This argument can be left off completely (in which case the ``['' and ``]'' are also not necessary) and will default to you, the author. The second argument is required and declares the year of the copyright. If parts of your thesis were supported by grants or were previously published, you should consult with your advisor and the prior publishers to make sure that you specify these arguments correctly before including this page. +% +% \textbf{Note:} In 2016 (v1.12 of this class file) the Graduate School switched to an electronic thesis submission process and eliminated the Dissertation Acceptance and Library Rights Statement pages which had previously surrounded the Copyright page. If you are recompiling an older thesis which contains these pages, then you will need to use earlier version of the class file. +% +% \subsection{University of Maine Graduate School Land Acknowledgment}\label{glsa} +% \begin{macro}{\glsa} +% This command creates the University of Maine Graduate School Land Acknowledgment. This page is optional and takes no parameters. The land acknowledgment should be after the copyright page, as shown by the thesis template made by the Graduate School. +% \end{macro} +% +% \subsection{Abstracts}\label{abstracts} +% \begin{macro}{abstract} +% This environment defines the abstract section. The \texttt{\textbackslash input} command is used to pull the content of your abstract from the \texttt{front/abstract.tex} file. +% \end{macro} +% The graduate requires two abstracts, but only one has to appear in the bound dissertation. +% +% This first abstract is the usual abstract you would write for a scholarly journal in your field. This is the abstract that must be in the bound thesis. It should be limited to 500 words for a Master's Thesis and 350 words for a Doctoral Thesis. It cannot contain formulas, tables, diagrams, or other illustrations. Typesetting your abstract is accomplished with the ``abstract'' environment: + +% \begin{verbatim} +% \begin{abstract} +% ... +% ... +% ... +% \end{abstract} +% \end{verbatim} +% +% \begin{macro}{layabstract} +% The second abstract is one suitable for a lay audience. This abstract is limited to 350 words regardless of the kind of degree you're getting and should not contain highly technical language. It should be written with the expectation that the reader will have only minimal knowledge of your field as it may be ``submitted [...] for publication in newspapers, magazines, and other media of +% interest to the general public, and it may be used in selecting nominees for regional and +% national competitions.'' It must be accompanied by at least 5 keywords (for search engines to pick up on, presumably) and it may contain 1 (and only 1) image. If you didn't create said image, then you need permission of the copyright holder to use it. +% +% This abstract doesn't have to be bound with your thesis, but must be submitted electronically to crystal.burgess@maine.edu. When submitting this abstract, a Word document that is formated correctly is preferred due to some copy/paste peculiarities between Adobe Reader and the form the grad school uses to upload the file to the web. If you don't have access to Word, however, you can get away with a pdf version. This pdf version can be generated by this class file with the ``layabstract'' environment; the same environment you'd use to generate the lay abstract for inclusion in the bound copy: +% \end{macro} +% +% \begin{verbatim} +% \begin{layabstract}{...} +% ... +% ... +% ... +% \end{layabstract} +% \end{verbatim} +% +% In this case, the environment argument is the list of keywords, while the body of the abstract should be within between the environment commands. If you do include an image, do not enclose it within a figure environment as it should not appear in the List of Figures. +% +% \section{Dedication} +% \begin{macro}{\dedication} +% This optional environment is for your thesis dedication. The dedication text is written in \texttt{front/dedication.tex}. +% \end{macro} + +% If there is some person (or group of persons) to whom you want to dedicate your thesis, then you'll need to use the dedication environment. This should be short, and is optional: +% \begin{verbatim} +% \begin{dedication} +% ... +% \end{dedication} +% \end{verbatim} +% +% \subsection{Preface} +% \begin{macro}{preface} +% If you want to include a preface to your thesis then you typeset it with the preface environment. This can be long or short and is optional. +% +% \begin{verbatim} +% \begin{preface} +% ... +% ... +% ... +% \end{preface} +% \end{verbatim} +% \end{macro} +% +% \paragraph{Note:}The document structure within the Preface is unnumbered (a Graduate School requirement). +% +% \subsection{Acknowledgements} +% While considered optional by the Graduate School, the acknowledgments are the appropriate place to mention funding sources, collaborators, and anyone who helped with the writing or revision of your thesis. They are typeset with the acknowledgements environment: +% +% \begin{macro}{acknowledgements} +% This optional environment is for your acknowledgements. The acknowledgements text is written in \texttt{front/acknowledgements.tex}. +% \end{macro} +% +% \begin{verbatim} +% \begin{acknowledgements} +% ... +% ... +% ... +% \end{acknowledgements} +% \end{verbatim} +% +% \subsection{Table of Contents} +% The last element of the front matter is the table of contents. This actually consists of several lists, the first of which is actually called ``Table of Contents'' and contains the name and page numbers of chapters, subsections, subsubsections, and chapter-like elements. The other lists are all pseudo-optional. If they would be populated (i.e. if you have tables or figures), then they need to be there. If they are empty, then you can leave the empty list off. Typesetting these lists is handled with a series of commands: +% +% \begin{verbatim} +% \tableofcontents +% \listoftables +% \listoffigures +% \end{verbatim} +% +% In addition, the Graduate School requires you to have other lists for ``a consistent set of theorems, symbols, abbreviations or definitions'' should such a set appear in your thesis. Some packages add \verb=\listof*= commands to create and auto-populate the list for the element that they are support just like \verb=\listoftables= and \verb=\listoffigures= do for tables and figures. If so, you should probably use said command as it will make your life much easier (though pay attention to the formatting that the command creates, you may need to modify it manually). However, for those instances where the package doesn't do so, there is a ``listof'' environment which you can use to manually create such a page: +% +% \begin{verbatim} +% \begin{listof}{...} +% ... +% ... +% ... +% \end{listof} +% \end{verbatim} +% +% \subsection{File Close} +% The second to last line that should be in your Front file signals the start of the main body of the thesis with the command \verb=\mainmatter=. This resets the page numbering, changes it to arabic numerals, switches to double spacing, and adds the word ``Chapter'' to your table of contents before your first chapter. +% +% Since this isn't strictly creating a piece of the front matter of your thesis it might seem more logical to put this command in Main.tex after \verb=\include{Front}=, however, this command suffers from the same bug that effects \verb=\references=. However, since this command comes first in the document, it appears to be subject to it more reliably. Putting the command at the end of Front.tex dodges that bug (as would placing it at the beginning of Ch1.tex). It's not elegant, but it works. +% +% The last line of Front.tex is \verb=\endinput=. This command isn't technically necessary (i.e. your document will typeset just fine without it), but it is good programming practice to include it. If it is used, then anything that appears after it will be ignored by \LaTeX, making it a great way to create a scratch space at the end of each file where you can write notes to yourself. You don't even have to comment them out! +% \section{Chapters and Appendices} +% +% \subsection{Chapters} +% While the chapters are probably the hardest part of the thesis for you to actually write, the class file requires very little in each chapter. Each chapter file should open with \verb=\chapter{...}= and close with \verb=\endinput=. In between is largely up to you, but there are a few things to keep in mind. +% +% You cannot use \verb=\include{...}= inside chapters because they are already included files. If you want to breakup a long chapter into multiple files, use \verb=\input{...}= instead. Note that there is no \verb=\input{...}= equivalent to \verb=\includeonly{...}=. Every file inside an \verb=\input{...}= command will be processed every time. +% +% Figures and tables should be inside the figure and table environments, respectively, so that they are automatically inserted into the list of figures or tables. If the caption for a figure or table is particularly long, I also recommend using the optional argument in the \verb=\caption[...]{...}= command to create a short version of the caption that will appear in the table of contents. +% +% Footnotes inside figures or tables will be captured by the figure or table environment and thus won't appear anywhere in the document. There are several possible solutions for this problem, none of which are implemented by this class file, so if you want to put footnotes in your table, look into it. +% +% \subsection{Appendices} +% The file that contains an appendix looks just like a file that contains a chapter. It starts with \verb=\chapter{...}= and ends with \verb=\endinput=. +% +% \subsection{Headings} +% There are 5 levels of headings within a chapter or appendix: subsection, subsubsection, subsubsubsection, paragraph, and subparagraph. To create a heading (and start a new element at the appropriate level) simply issue the appropriate command (\verb=\subsection=, \verb=\subsubsection=, etc.). By default headings are numbered down to the subsubsubsection level using a decimal system (...). You can change the depth to which headings are numbered with the command \verb=\setcounter{secnumdepth}{#}=. The argument should be a number between 0 (no headings are numbered) and 5 (all headings down to the subparagraph level are numbered). This command can be issued at anytime in your document and will affect the numbering from that point forward. +% +% In addition to the options described in subsection \ref{class} which automatically change the format of the headings to match a specific style, it is possible to manually change the formats by redefining the following commands: +% \begin{verbatim} +% \subsectionstyle +% \subsubsectionstyle +% \subsubsubsectionstyle +% \paragraphstyle +% \subparagraphstyle +% \end{verbatim} +% These commands should take no arguments and consist purely of formating commands (it is up to you to provide any punctuation a style might demand in the heading name itself). As an example, if you wanted to make subsection headings be underlined and boldfaced, you would need to issue the following command in your preamble: +% \begin{verbatim} +% \renewcommand*{\subsectionstyle}{\bfseries\underline} +% \end{verbatim} +% If manually redefining the heading styles, remember that the Graduate School prohibits italics in headings. +% +% Similarly there exist the following lengths which can be used to redefine where the text starts after a heading: +% \begin{verbatim} +% \subsectionpost +% \subsubsectionpost +% \subsubsubsectionpost +% \paragraphpost +% \subparagraphpost +% \end{verbatim} +% These lengths should be altered in the preamble with a \verb=\setlength= command. If the value the lengths are set to is positive, then they represent the vertical distance between the header and the first paragraph which follows (and should probably be a rubber length to give \LaTeX\ some wiggle room in making things fit on a page). If they are negative then the absolute value represents the horizontal distance between the header and the first word of the paragraph which follows (and should probably be a fixed length). For example, the lengths for APA style headings are positive (and rubber) for \verb=\subsectionpost= and \verb=\subsubsectionpost=, but negative (and fixed) for the other three. This places subsection and subsubsection headers on their own line, but subsubsubsection, paragraph, and subparagraph headers are on the same line as the text which follows them. On the other hand, the default style uses positive (and rubber) lengths for \verb=\subsectionpost=, \verb=\subsubsectionpost=, and \verb=\subsubsubsectionpost=, but negative (and fixed) lengths for \verb=\paragraphpost= and \verb=\subparagraphpost=. +% +% For more on the difference between rubber and fixed lengths, consult your \LaTeX\ reference book of choice. +% \section{Other Stuff} +% \subsection{\textbackslash ignore} +% The command \verb=\ignore{...}= which is very useful for removing large blocks of text from the thesis without deleting them. Anything within the argument is treated as if it was commented out and will not appear in the typeset document. +% +% \subsection{\textbackslash toclabel} +% If you need to add a label into your table of contents then you can use the command \verb=\toclabel{...}= to do so. Due to a bug in the \LaTeX\ kernel that effects this command you may need to put the command inside a chapter file rather than in Main.tex. Otherwise the label may not end up in the correct place in the TOC. +% +% \subsection{\textbackslash compresstitlepage} +% In rare cases your title page may spill over onto a second page when typeset with double line spacing (generally due to a long title, many previous degrees, or committee members with long/multiple titles). When this happens, issue the command \verb=\compresstitlepage= in your preamble. This will change the line spacing for the committee members to single line spacing. If that isn't enough to get your title page onto one page, add the optional argument (``[2]'') to change the spacing for the rest of the title page to one-and-a-half spacing.\comment{There is another comment here.} +% +% \subsection{verbatim and \textbackslash verb} +% Since the Graduate School doesn't want the font to change during the course of the document, the verbatim environment and the \verb=\verb= command have had their font changed from the standard typewriter font of \LaTeX\ to the normal roman font. This required a change to the font encoding to get what you type in the verbatim environment to be the same characters that appear on the page. As a result, the mapping of quotation marks, ", to close double quotes, '', doesn't work. To get '' you will need to type two close quotation marks, '\,', just like you have to type two two open quotation marks, `\,`, to get the double open quotes, ``. +% +% \begin{macro}{\input} +% This is a fundamental command used throughout the template to import the content of another \texttt{.tex} file into the current document. +% \end{macro} +% +% \begin{macro}{blindtext} +% Commands from the \texttt{blindtext} package are used for generating placeholder text, lists, and mathematical formulas. They are a helpful way to visualize the final layout of the document before adding your own content. +% \end{macro} +% +% \begin{macro}{changes} +% These commands from the \texttt{changes} package are very helpful for communicating and reviewing changes between versions in draft mode. See the \texttt{changes} package documentation for more information. +% \begin{itemize} +% \item comment +% \item highlight +% \item added +% \item deleted +% \item replaced +% \end{itemize} +% \end{macro} +% +% \subsubsection{\textbackslash comment} +% There is also a \verb=\comment{...}= command. If the draft option was issued to the class file, the argument of this command will appear in the right hand margin in red with ``NOTE:'' preceding it in a smaller font (as can be seen in this file if you typeset it in draft mode). This makes it useful for adding reminders to yourself about things you still need to do, or questions for your advisor when you're asking him to review a draft version of something. Without the draft option this command functions identically to \verb=\ignore=.\comment{There is a comment here.} +% +% \subsubsection{\textbackslash highlight} +% The \verb=\highlight= command is a useful companion to \verb=\comment=. In draft mode it will highlight its argument (i.e., give it a yellow background). In final mode, the text appears normally. +% +% \begin{macro}{\caption[...]\{...\}} +% This command adds a caption to a figure or table. The optional argument in square brackets provides a short title for the List of Figures/Tables, and the mandatory \texttt{...} provides the full caption text. +% \end{macro} +% +% \begin{macro}{\citep} +% This command from biblatex is used for in-text citations. The argument is the citation key from your \texttt{references.bib} file. See biblatex and biber for more information about citation styles. +% Biblatex generally intergrates well with reference managers for consistent citations. Other commands are available for providing author or year seperately in text, or for numeric and other citation styles. +% \end{macro} +% +% \subsection{Widows and Clubs} +% The graduate school requires that page breaks occur so that at least 3 lines of any paragraph are on a page. Thus, if a paragraph starts on a certain page at least the first three lines of that paragraph should be on that page. Likewise, if a paragraph ends on a page at least the last three lines of that paragraph should be on that page. This is an unusually stringent requirement for clubs (paragraph starts at the end of a page) and widows (paragraph ends at the beginning of a page) and one which is impossible to force \LaTeX\ to respect. The club penalty and widow penalty have been set high to large values so that at least two lines of each paragraph should appear on each page, but if the graduate school starts bugging you about this, you are going to have to play with this manually using \verb=\pagebreak= and \verb=\nopagebreak=. Do this only when preparing the \textit{absolutely final copy} of the thesis as said manual breaks will stick around despite any subsequent edits to the document. +% +% Likewise, the Graduate School has similar standards for the table of contents: at least 3 entries from any given chapter must be on the page (unless the chapter has fewer than 3 entries, in which case all entries should appear on the same page). I've done my best to make sure this happens, but I can't possibly test every possible pattern of chapters, subsections, and subsubsections that you might have. If the graduate school is bugging you about this, then place \verb=\addtocontents{toc}{\protect\pagebreak}= just before a chapter, subsection, or subsubsection to manually insert a page break into that position in your table of contents. This command can likewise be used to manually insert page breaks into the list of figures (lof) or the list of tables (lot) by changing the first argument. It also will run into the same bug that effects \verb=\references=. See subsection \ref{bib} for more details. If you do have to do this, I'd also appreciate a minimal working example so that I can try to further fine tune the class file's ability to do this automatically. +% +% \subsection{Thesis in a Foreign Language} +% The class file has not been tested on a thesis written in a foreign language and thus its behavior on such documents is not guaranteed. Support for these kinds of documents is planned for a future version, but probably won't come until 2019 at the earliest. Contributions designed to make the class file work with foreign language theses are appreciated: \verb=R.Springuel@umit.maine.edu=. +% +% \subsection{Hyphenation \& Justification} +% At the graduate school request, automatic hyphenation is turned off and the document should be set left justified (\verb=\raggedright= in LaTeX parlance). If this creates strange behavior for you, please let me know so that any possible bugs can be resolved. +% +% \subsection{5-dot Leader Minimum in TOC} +% As of v1.10 the this requirement should be obeyed automatically. If you run into problems here please report it to me (\email). As a work around, you can fix this manually by either changing the appropriate title/caption, or by making use of the optional short title/caption built into the appropriate command. +% +% \section{Other Packages} +% \label{package} +% This appendix lists the packages which have interesting behavior when used along side maine-thesis.cls. If you find a package that creates difficulties which isn't listed here, please email me the name of the package, the version you have, and the particular difficulty that you encountered. +% +% \subsection{Working Packages} +% While not thoroughly tested, the following packages have been used with this class file without incident: +% \begin{itemize} +% \item{acronym (v1.35, last revised 2009/10/20)} +% \item{epic (v1.2, last revised 1986/06/01)} +% \item{epstopdf (v2.5, last revised 2010/02/09)} +% \item{excludeonly (v1.0, last revised 2003/03/14)} +% \item{graphics (v1.0o, last revised 2009/02/05)} +% \item{graphicx (v1.0f, last revised 1999/02/16)} +% \item{hhline (v2.03, last revised 1994/05/23)} +% \item{natbib (v8.31a, last revised 2009/11/07)} +% \item{pdfpages (v0.4j, last revised 2010/01/12)} +% \item{tabularx (v2.07, last revised 1999/01/07)} +% \item{tabulary (v0.9, last revised 2008/12/01)} +% \item{float (v1.3d, last revised 2001/11/08)} +% \item{subfig.sty (1.3, last revised 2005/06/28)\footnote{\emph{Note:} If you use the subfig package, the following warning will be raised: ``Package caption Warning: Unsupported document class (or package) detected, usage of the caption package is not recommended.'' It should be safe to ignore this warning, if you don't use any other packages which manipulate the caption command. For anything beyond that, I can't make any guarantees on what will work and what won’t.}} +% \end{itemize} +% If you experience a problem with any of these packages please make sure you have the version listed above or a more recent one before submitting a bug report. +% +% If you use a package other than one of the ones listed above without incident, please email me (\email) the package name and version so that I can add it to the above list. +% +% \subsection{caption} +% This class file already formats captions for figures and tables according the requirements of the Graduate School. As a result, the caption package, which allows you to manipulate how these elements appear, should not be used. +% +% \subsection{color} +% The class file uses this package to color the \verb=\comment= command in draft mode. As a result, any attempt to load this package with options by using \verb=\usepackage= will result in an option clash error. Instead, pass whatever options for color you want to the class file and they will automatically be passed along to color when it is loaded. +% +% The class file was tested with v1.0j, last revised 2005/11/14. If you're having problems with color, make sure you have this version or a more recent one before submitting a bug report. +% +% \subsection{footmisc} +% The class file uses this package to eliminate the usual rule that occurs between the body of the text and the footnotes at the bottom of the page. As a result, any attempt to load this package with options by using \verb=\usepackage= will result in an option clash error. Instead, pass whatever options for footmisc you want to the class file and they will automatically be passed along to footmisc when it is loaded. +% +% The class file was tested with v5.5a, last revised 2009/09/15. If you're having problems with footmisc, make sure you have this version or a more recent one before submitting a bug report. +% +% \subsection{hyperref} +% The hyperref package can be used to create many links within your document, making the digital copy easier to navigate. When links are created in the document, they can be highlighted in a variety of ways: colored boxes around the text, colored text, and small capitals. While these are necessary indicators of the presence of the link in an electronic document, they should not appear in the printed copy. As a result, you are advised to turn hyperref (comment out the load command) when typesetting the file for printing purposes. When you go back to typesetting with hyperlinks, you are likely going to need to trash the auxilarly (aux, toc, lof, lot, etc.) files to get the document to typeset correctly. +% +% The class file was tested with v6.80n, last revised 2010/03/11. If you're having problems with hyperref, make sure you have this version or a more recent one before submitting a bug report. +% +% \subsection{hyperref and ifthen} +% If a user defined command that calls the commands from the ifthen package (like \verb=\equal=) is placed inside a subsectioning command, this is likely to raise a problem if hyperref is also being used, even if the user defined command is robust or protected. I have been unable to identify exactly what causes this error and can provide no fix. My only suggestion is to redefine your command so that it uses the \TeX\ primitive if statements instead of the ifthen package. +% +% This bug was observed with v6.80n, last revised 2010/03/11, of hyperref and v1.1c, last revised 2001/05/26, of ifthen. +% +% \subsection{soul} +% The class file uses this package for the \verb=\highlight= command. As a result, any attempt to load this package with options by using \verb=\usepackage= will result in an option clash error. Instead, pass whatever options for soul you want to the class file and they will automatically be passed along to soul when it is loaded. +% +% The class file was tested with v2.4, last revised 2003/11/17. If you're having problems with soul, make sure you have this version or a more recent one before submitting a bug report. +% +% \subsection{tocvsec2} +% The class file uses this package to control the table of contents depth. In particular, it is used to prevent preface subsections from being numbered and appearing in the table of contents and to prevent appendix subsections from appearing in the table of contents while still being numbered. If you need to use this package for some other purpose, you don't need to reload it. +% +% The class file was tested with v1.2b, last revised 2010/02/27. If you're having problems with tocvsec2, make sure you have this version or a more recent one before submitting a bug report. +% +% \subsection{hyphenat} +% The class file uses this package to turn off hyphenation for the entire document. As a result, any attempt to load this package with options by using \verb=\usepackage= will result in an option clash error. Since the only options for this package either disable all hyphenation (the option being used by the class file) or enable it for monospaced (typewriter-style) fonts which aren't allowed in a thesis (the graduate school wants a single font used throughout the document), you shouldn't have to load this package anyway. +% +% The class file was tested with 2009/09/02 v2.3c. If you're having problems with hyphenat, make sure you have this version or a more recent one before submitting a bug report. +% +% \subsection{geometry} +% The class file uses this package to set the margins and paper size. As a result, any attempt to load this package with options by using \verb=\usepackage= will result in an option clash error. Since the graduate school has very specific requirements for the margins and paper size, both of which are set by the class file, you shouldn't need to load this package anyway. +% +% The class file was tested with v5.6, last revised 2010/09/12. If you're having problems with geometry, make sure you have this version or a more recent one before submitting a bug report. +% +% \subsection{iftex} +% The class file uses this package to test for the use of the PDF\TeX engine. This engine adds some spurious tags to the pdf, but also provides a command, \verb=\pdfsuppresstexinfo= to get rid of them. If we see this engine, we use the command to remove those tags. If you need this package, then simply make use of it. There is no need to load it (especially as it has no options). +% +% The class file was tested with v0.2, last revised 2013/04/04. If you're having problems with iftex, make sure you have this version or a more recent one before submitting a bug report. +% +% +% \section{Common Formatting Errors} +% This section is continued from the formatting requirements page at the University of Maine's Graduate School Thesis Guide. +% \subsection{Abstract Formatting Errors} +% All abstracts must have the below information on the same page as the abstract. This information must match the title page. The only difference between the title page and the abstract is the spacing: the abstract should have single spacing for the degree information. +% \subsection{Pagination Errors} +% The Title Page through Chapter 1 should be numbered using Roman numerals (iii, iv, v, …). The title page should be counted but not numbered. The Abstract will not have page numbers nor be counted. +% The body of the dissertation should be numbered using Arabic numbers (1, 2, 3, …). The first page of the body of the text should begin with page 1. +% All page numbers should be either top right or bottom center. +% +% \subsection{Figure and Table Errors} +% Figures and tables must be placed within the text, as close to their first mention as possible.\footnote{figure placement is handled automatically by \LaTeX} +% Figures and tables that span more than one page must be labeled on each page. +% Any second and subsequent page of the figure/table must include the “(Continued)” notation.\footnote{this currently requires manually creating two figures to add continued to the short title} +% This applies to figure captions as well as images. +% Each page of a figure/table must be accounted for and appropriately labeled.\footnote{please use the `ref` and `label` system in latex} +% All figures/tables must have a unique number. +% They may not repeat within the dissertation. +% +% \subsection{Window and Orphan Errors} +% A single line cannot appear alone at the top or bottom of a page. +% Widow/orphan Control is an option in Word to prevent this. +% W/O also applies in the reference section. +% While a lone heading or subheading at the bottom of the page is not technically a widow/orphan, this must be moved to the next page to accompany its text. +% +% \subsection{Horizontal Figures \& Tables Errors} +%Any figures/tables placed in a horizontal orientation must be rotated for readability. +% Insert a section break to rotate the page.\footnote{in \LaTeX we do not use section breaks for this, but we have landscape package to support} +% +% Page numbers must be placed in the same location on all pages of the dissertation, centered, at the bottom or top of the page.\footnote{This needs clarification from the graduate school, whether the bottom is in print or digital form} +% Page numbers may not appear under the table/figure. +% +% \subsection{Supplemental Figures \& Tables Errors} +% Supplemental figures and tables must be placed in an appendix at the back of the dissertation.\footnote{this requires clarification, can one appendix contain multiple figures and tables without additional prose?} +% They should not be placed at the back of the chapter. +% +% \subsection{Appendices Errors} +% Appendices should be able to stand alone. Formatting applies to figures, tables, etc. +% There should be no Appendix A if there is no Appendix B. It can be labeled Appendix in this case.\footnote{Appendix labeling is handled by the maine-thesis class.} +% +% \subsection{Biography Errors} +% The biography is required and will be on the last page of the document. This must be listed in the Table of Contents. The last OR only sentence must read “S/He/They is/are a candidate for the degree in from the University of Maine in .” +% \footnote{This is automatically inserted by the maine-thesis class.} +% +% \subsection{Post PDF Conversion Formatting Errors} +% The entire document should be checked after all revisions, and before submitting to the Graduate School, to spot any inconsistencies or PDF conversion glitches. +% +% \subsection{Leader Dots Errors} +% Leader dots must be present in the Table of Contents, List of Figures, and List of Tables. +% The “5 Dot leader rule” is the most common mistake. +% There can be no text within 5 dots of the listed page number. \footnote{While this is not handled precisely by the maine-thesis class, we have attempted to set the parameters for this to automatically occur whenever possible. Please review manually. Insert a line break when needed to correct. In a future version, the parameters for tuning for different fonts will be exposed} +% For example, if a title is longer than one line, it must be broken into two lines. +% The top and bottom lines cannot extend any closer than the 5 spaces. +% +% \section{Example} +% +% Here is a straightforward example to illustrate how these macros, if you are building the document from scratch. +% We reccomend that you use the provided full template from GitLab in Overleaf. +% +% \begin{macrocode} +%<*example> +\documentclass[jdecimal, citestyle=apa, 11pt]{maine-thesis} +% \end{macrocode} +% Default options 12pt and final copy +% Add draft for a faster compiling option with watermarks. + +% Include necessary packages here +% \begin{macrocode} +\usepackage{mwe} +\usepackage{blindtext} +% \end{macrocode} + +% Replace contents of {...} with your own information. +% \begin{macrocode} +\title{An essay upon the vasomotor changes in tabes dorsalis} +% \end{macrocode} + +% Title of thesis +% \begin{macrocode} +\author{Mary Morstan} +% \end{macrocode} + +% Author's name: First Middle Last +% \begin{macrocode} +\degreesheld{Bachelor of Medicine, University of Edinburg \\ +Master of Surgery, University of Edinburg} +% \end{macrocode} + +% Previously earned degree(s), institution(s) and year(s). +% \begin{macrocode} +\degree{Doctor of Medicine} +% \end{macrocode} + +% Degree to be granted +% \begin{macrocode} +\program{School of Medicine} +% \end{macrocode} + +% Degree granting department or program +% \begin{macrocode} +\submitdate{May 1885} +% \end{macrocode} + +% Month and year of graduation (do not separate with a comma) + +% Advisor's [short title and name]{name, long title} +% \begin{macrocode} +\principaladvisor[Dr. Seuss]{Dr. Seuss, Professor of Literature} +% \end{macrocode} + +% \begin{macrocode} +% %\principalshort{...} +% \end{macrocode} +% Shortened advisor name for abstract. See guidelines for example. Should include Dr. as title. + +% If you have more than one advisor then you'll should delete the first argument ("[...]") above and uncomment the following commands +% \begin{macrocode} +% %\secondadvisor{...} +% \end{macrocode} + +% Include all committee members names and titles +% \begin{macrocode} +\firstreader{Dr. Dolittle, Vetinary School} +\secondreader{Dr Watson, Medical School} +% \end{macrocode} + +% If necessary (i.e. for a doctorate), include extra committee members. Else, comment out or delete any that are unnecessary +% \begin{macrocode} +\thirdreader{Dr. Digory Kirke, Professor of Geography of Magical Lands} +% \end{macrocode} + +% Begin the document. +% \begin{macrocode} +\begin{document} +% \end{macrocode} + +% Tag prelimianry material and produce front matter +% \begin{macrocode} +\preliminary +\maketitle +% \end{macrocode} + +% \begin{macrocode} +\begin{abstract} +\Blindtext +\end{abstract} +% \end{macrocode} + +% \begin{macrocode} +% Replace the ... with the list of keywords +\begin{layabstract}{...} +% \end{macrocode} + +% blindtext is used to generate random text for the example. +% \begin{macrocode} +\blindtext +\end{layabstract} +% \end{macrocode} + +% Commands for the required lists +% \begin{macrocode} +\tableofcontents +% \end{macrocode} + +% Sets the document spacing and pagestyle. +% \begin{macrocode} +\mainmatter +% \end{macrocode} + +% Main text of the thesis. Use of the `input' command will make later editing much easier. +% \begin{macrocode} +\chapter{Observations of Medicine} +\blindtext + +\chapter{Deducatinos about Disease} +\blindtext +% \end{macrocode} + +% Include this before any appendices. +% \begin{macrocode} +\begin{appendices} +\chapter{Some extras} +\blindtext +\end{appendices} +% \end{macrocode} + +% end the document +% \begin{macrocode} +\end{document} +% \end{macrocode} + +% \begin{macrocode} +% +% \end{macrocode} +% +% \StopEventually{^^A +% \PrintChanges +% \PrintIndex +% } +% \section{Change Log} +% \subsection{v2.0.0} +% \subsubsection{File Structure and Maintenance} +% \begin{itemize} +% \item The v1 class was a single, manually maintained \texttt{.cls} file. +% \item In v2, \texttt{maine-thesis.dtx}, is a single source file that generates both the class file (\texttt{maine-thesis.cls}) and its documentation. This allows for a more streamlined and automated maintenance process. +% \item The \texttt{dtx} file format is part of a larger build system that uses \texttt{l3build} for unpacking and generating a CTAN-ready package. +% \end{itemize} +% +% \subsubsection{Package and Dependency Updates} +% \begin{itemize} +% \item The v1 class file used older packages for a variety of tasks. +% \item The v2 class has been refactored to use modern packages. For example, it now uses \texttt{biblatex} with the \texttt{biber} backend for citation management[cite: 1, 3, 5]. The previous version did not specify the use of these packages and appears to have a simpler citation approach. +% \item New dependencies were added, including \texttt{fontspec}, \texttt{microtype}, \texttt{hyperref}, \texttt{csquotes}, \texttt{titlesec}, and \texttt{etoolbox}, which provide more robust font, typography, hyperlinking, and title formatting capabilities. +% \end{itemize} +% \subsubsection{Formatting and User Interface} +% \begin{itemize} +% \item The v1 class managed heading styles using a numerical counter (\texttt{\textbackslash setcounter\{head\}}) with \texttt{\textbackslash ifcase} logic. +% \item The v2 \texttt{maine-thesis.cls} uses named macros like \texttt{\textbackslash apaheadings}, \texttt{\textbackslash chicagoheadings}, and \texttt{\textbackslash idecimalheadings} for a clearer and more direct way to set heading formats. +% \item The v2 provides a unified command for caption formatting with \texttt{\textbackslash DeclareCaptionFormat\{thesis\}}. The original class handled captions through a redefinition of \texttt{\textbackslash \@ makecaption} and other low-level commands. +% \item The title page and abstract environments were completely redesigned with the \texttt{\textbackslash maketitlehooka} and \texttt{\textbackslash maketitlehookd} commands, allowing for more precise control over the layout. +% \end{itemize} +% +% \subsubsection{Code and Variable Changes} +% \begin{itemize} +% \item The v1 class contained deprecated commands like \texttt{\textbackslash libraryrights} and \texttt{\textbackslash dissacceptance}. +% \item The v2 class removes these deprecated commands and replaces them with a \texttt{\textbackslash ClassError} message, informing the user that the Graduate School no longer requires them. +% \item The \texttt{\textbackslash preliminary} command in the v2 version now sets the \texttt{tocdepth} and \texttt{secnumdepth} to 1, while the v1 version used a different command for this purpose (\texttt{\textbackslash settocdepth\{chapter\}}). +% \item The \texttt{\textbackslash appendix} command in the v2 class now uses \texttt{\textbackslash gdef} to globally change \texttt{\textbackslash chaptername} to ``Appendix'' and the chapter counter to use alphabetical characters (\texttt{\textbackslash thechapter\{\textbackslash @Alph\textbackslash c@chapter\}}). +% \end{itemize} +% +% \begin{macro}{\comment} +% The comment command is now pulled from the `changes` packages with more extensive functionality. +% In v1.14 this command uses the todonotes package to create margin notes but also checks a conditional (ifdraft) to ensure the notes only appear in draft mode. +% \end{macro} +% +% \begin{macro}{\highlight} +% The highlight command is now pulled from the `changes` packages with more extensive functionality. +% In v1.14 this command uses the soul package to create margin notes but also checks a conditional (ifdraft) to ensure the notes only appear in draft mode. +% \end{macro} +% +% \begin{macro}{\appendix} +% The appendix command should no longer be used to define appendicies; however it is still supported in the appendix pacakge. (replacing custom appendix and heading table of contents functionality. +% \end{macro} +% +% \begin{macro}{\multipleappendicestrue} +% This command, located in \texttt{main.tex}, is a conditional that tells the template to use multiple appendices. If you only have one appendix, you should comment this line out. +% This has been replaced with the multiappendices option for the class. +% \end{macro} +% +% \subsection{Changes in v1.16} +% \begin{itemize} +% \item{\bfseries Added University of Maine Graduate School Land Acknowledgment} +% \end{itemize} +% +% \subsection{Changes in v1.15} +% \begin{itemize} +% \item{\bfseries Add “APPENDICES” to title of first Appendix and TOC when multiple appendices are present.} +% \end{itemize} +% +% \subsection{Changes in v1.14} +% \begin{itemize} +% \item{\bfseries Ensured double spacing in chapter titles.} +% \item{\bfseries Removed extra space above chapter titles.} +% \item{{\bfseries Removed extra space between chapters in list of figures and list of tables.} This is implemented as an option, you can add the space back (for unofficial copies) with the loftspacing option.} +% \item{\bfseries Changed ``The University of Maine'' to ``the University of Maine'' in the auto-sentence of the author biography.} +% \item{\bfseries Reduce space between title and author name on abstract pages.} +% \item{\bfseries Remove “Chapter” heading from TOC.} +% \item{Fixed problem with link target (when using hyperref) and page number in TOC for reference section.} +% \item{\bfseries changed ``The University of Maine'' to ``the University of Maine'' in the auto-sentence of the author biography.} +% \item{Improved capitalization enforcement for chapter headings and TOC entries. This should make redefining section names (as when using babel) much easier.} +% \item{Dropped 2-volume support. (Graduate School no longer needs a printed copy of the thesis.)} +% \item{Page number placement now controlled by a class option. It's also more consistent in its application as a result.} +% \item{\bfseries Extra space before ``Chapter'' label in TOC has been removed.} +% \item{``Chapter'' and ``Appendix'' in chapter headings is now printed in all uppercase.} +% \item{\bfseries Tweaks to make 5-dot minimum in TOC leaders better respected. Thanks to pmbean6 for this fix.} +% \item{\bfseries Use a pronoun instead of author name for the last sentence of author biography. Users now need to define their preferred pronoun with the \verb=\authorpronoun= command. Do not forget to capitalize the first letter of the pronoun. If no pronoun is provided, then the full author name will appear in the last sentence of the biography.} +% \item{\bfseries When figure/table captions are too long to go into the table of contents, the graduate school wants the entry in the table of contents to match the first sentence of caption exactly. To facilitate this the \verb=\caption= command has been redefined so that the optional argument, if given, is automatically prepended to the caption text. Older theses, for which this new behavior would be undesirable, can turn it off with the legacycaptions option.} +% \item{\bfseries On title page, when the name and title of an advisor or committee member is long enough to wrap to a second line, that second line will be indented 1.5em (the same as the indentation of a paragraph in the body of the thesis).} +% \end{itemize} +% +% \subsection{Changes in v1.13} +% \begin{itemize} +% \item{Short form of advisor's name can now be entered as an optional argument of \verb=\principaladvisor=.} +% \item{Bugfix: idecimal and jdecimal heading styles were suppressing the section numbers. Thanks to pmbean6 for this fix.} +% \item{Margin widths have been tweaked a little so that they more closely conform to the guidelines. Thanks to pmbean6 for this fix.} +% \item{If you edited the class file to get justified text back, then subsection headings were being indented in jdecimal style. This has been fixed in preparation for later changes. Thanks to pmbean6 for this fix.} +% \item{Package conflict with float package has been resolved. Thanks to pmbean6 for this fix. Those updating thesis should change listof environments to thesislist.} +% \item{Bugfix: The default setting of \verb=\parindent= was being forced to 0, which was not as intended.} +% \item{Indentation for the headings has been decoupled from \verb=\parindent= and is now tied to \verb=\headindent=.} +% \item{Added some basic metadata (title and author) handling when hyperref is loaded. Thanks to pmbean6 for this enhancement} +% \item{\bfseries Adjusted page numbering to account for removal of Dissertation Acceptance page.} +% \end{itemize} +% +% \subsection{Changes in v1.12} +% \begin{itemize} +% \item{\bfseries Eliminated Dissertation Acceptance and Library Rights Statement pages.} +% \end{itemize} +% +% \subsection{Changes in v1.11} +% \begin{itemize} +% \item{\bfseries Replaced ``thesis'' with \verb=\@type= on Library Rights page.} +% \item{\textbf{Labels for signature lines now use the same size font as the rest of the thesis (they were formerly reduced).}} +% \item{\textbf{Gap between the title and the text on Dissertation Acceptance and Library Rights page has been reduced.}} +% \item{\textbf{Mandatory sentence at the end of the Author Biography (and which the class file produces automatically) is no longer its own paragraph.}} +% \item{\textbf{The default headings system has been modified to make it match more closely with the justified decimal example in the Guidelines.}} +% \item{Two additional headings systems (headings and idecimal) have been added. These are based on the headings and indented decimal examples in the Guidelines.} +% \item{\bfseries Improved Widow/Orphan protection in the TOC.} +% \item{\bfseries Improved Widow/Orphan protection in bibliography.} +% \end{itemize} +% +% \subsection{Changes in v1.10} +% \begin{itemize} +% \item{\textbf{Alignment of multi-line table of contents entries for Appendices altered}} +% \item{5-dot leader minimum code reworked to be more robust} +% \end{itemize} +% +% \subsection{Changes in v1.9} +% \begin{itemize} +% \item{\textbf{Acceptance Page title consolidated to a single line.}} +% \item{\textbf{Removed ``Submitted for graduation\ldots'' from Acceptance Page.}} +% \end{itemize} +% +% \subsection{Changes in v1.8} +% \begin{itemize} +% \item{\textbf{Hyphenation disabled.}} +% \item{\textbf{Full justification disabled.}} +% \end{itemize} +% +% \subsection{Changes in v1.7} +% \begin{itemize} +% \item{Added \verb=\highlight= command.} +% \item{Modifications to \verb=\pocket= to make its ToC entries match other chapter-level entries.} +% \item{Added two-volume support.} +% \item{Made some modifications to help with widow/orphan control in the ToC.} +% \end{itemize} +% +% \subsection{Changes in v1.6} +% \begin{itemize} +% \item{\textbf{Changed line length for multiple line entires in the ToC.}} +% \item{\textbf{Removed the multiple appendices ``Appendices'' header from the ToC.}} +% \item{Added twoside option.} +% \item{Added unbound option.} +% \item{Added hooks to alter heading styles.} +% \item{Added chicago and apa option to switch headings automatically to the appropriate style.} +% \end{itemize} +% +% \subsection{Changes in v1.5} +% \begin{itemize} +% \item{License Changed to LPPL v1.3c.} +% \item{Generalized Dissertation Acceptance Page.} +% \item{Changed to signature line on Library Rights Page.} +% \item{Fixed delimiter in figure and table captions.} +% \item{Unified \verb=\copyrightyear{...}= and \verb=\copyrightpage= into single command.} +% \item{Refined support for two advisors and number of committee members.} +% \item{Removed support for External Reader on title page.} +% \item{Created patch code to fix list of tables and list of figures when hyperref is used.} +% \item{Added layabstract environment.} +% \item{Added listof environment.} +% \item{Changed font for verbatim environment and \verb=\verb= command.} +% \item{Fixed typesetting of dedication.} +% \item{General file maintenance.} +% \item{Added insertion of ``Appendices'' to ToC when there are multiple appendices.} +% \item{Modified biography environment to auto-generate the last sentence.} +% \item{Made identification of number of advisors and committee members automatic.} +% \item{Removed \verb=\appsection{...}= as it is redundant with \verb=\section*{...}=.} +% \item{Changed way ``Chapters'' and ``Appendices'' are added to the TOC.} +% \item{Added tocvsec2 dependance to make the change in TOC depth for the front matter and appendices automatic.} +% \item{Modified preface environment to make the non-numbering of its sections, subsections, etc automatic.} +% \item{Reserved \verb=\part= for multiple volume support.} +% \item{Added \verb=\pocket=.} +% \item{Defined a pseudo \verb=\texorpdfstring= command for use in chapter titles. When hyperref is loaded (and defines the command properly) this has the effect of hiding \verb=\MakeUppercase= commands from hyperref.} +% \item{Made Preface, Dedication, and Acknowledgements double spaced.} +% \item{Created type variables and commands that allows switching to ``thesis'' or ``project'' instead of ``dissertation.''} +% \item{Removed footnote rule.} +% \item{Renamed \verb=\labelchaptersintoc= to \verb=\toclabel=, generalized its function, and made it compatible with hyperref.} +% \item{Added commands to compress title page when needed.} +% \end{itemize} +% +% \subsection{Changes prior to v1.5} +% This list is not entirely complete but is a best reconstruction as I can manage. Changes were not logged prior to v1.5. +% \begin{itemize} +% \item{Added Dissertation Acceptance Page} +% \item{Added support for 6 member committees} +% \item{Removed Boldface from TOC entries} +% \item{Reduced size of chapter and section headers to match text font, both in place and TOC entries} +% \item{Added support for two advisors} +% +% \end{itemize} + +% \section{Implementation of Class. Package Definition} +% \begin{macrocode} +%<*package> +%<@@=maine-thesis> +% \end{macrocode} +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{maine-thesis}[2025/09/05 v2.0.0 University of Maine Thesis] +% \end{macrocode} +% \subsection{Initial Variables} +% \begin{macrocode} +\newif\ifdraft\draftfalse +\newif\iftwoside\twosidefalse +\newif\ifmt@official\mt@officialtrue +\newif\ifunbound\unboundfalse +\newif\ifmt@legacycaptions\mt@legacycaptionsfalse +\newif\ifmt@loftspace\mt@loftspacefalse +\newcommand\docsize{} +\newcommand\side{oneside} +\newcounter{secnumdefault} +\setcounter{secnumdefault}{3} +\newcounter{head} +\setcounter{head}{1000} +\def\@margg{1.5in} +\def\mt@pagestyle{bottom} +% \end{macrocode} + +% \section{Declare Options} +% +% \begin{macro}{10pt} +% \begin{macrocode} +\DeclareOption{10pt}{\renewcommand\docsize{10pt}\PassOptionsToClass{10pt}{report}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{11pt} +% \begin{macrocode} +\DeclareOption{11pt}{\renewcommand\docsize{11pt}\PassOptionsToClass{11pt}{report}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{12pt} +% \begin{macrocode} +\DeclareOption{12pt}{\renewcommand\docsize{12pt}\PassOptionsToClass{12pt}{report}} +% \end{macrocode} +% \end{macro} +% +% \subsection{Draft Mode} +% The `draft` option enables a "draft mode" for the document. +% It sets the `ifdraft` conditional to true, which can be used by other +% parts of the class to show or hide draft-specific content. +% \begin{macro}{draft} +% \begin{macrocode} +\DeclareOption{draft}{\drafttrue +% \end{macrocode} +% \end{macro} +% When in draft mode, it defaults to a 10pt font size for faster compilation. +% \begin{macrocode} + \ExecuteOptions{10pt} +% \end{macrocode} +% The `draft` option is passed to the underlying `report` class to +% show draft annotations (like black squares for overfull hboxes). +% \begin{macrocode} + \PassOptionsToClass{draft}{report} + \PassOptionsToPackage{draft}{changes} +% \end{macrocode} +% Defines a command to display a "DRAFT" watermark or text. +% \begin{macrocode} + \newcommand{\drafttext}{\sffamily\small{DRAFT}} +% \end{macrocode} +% Sets a conditional to false, which might hide official marks. +% \begin{macrocode} + \mt@officialfalse +} +% \end{macrocode} +% \subsection{Page Layout} +% These options control the page layout, specifically whether the document is +% for a one-sided or two-sided print. +% These options are standard and should be passed to the report class. +% +% \begin{macro}{twoside} +% \begin{macrocode} +\DeclareOption{twoside}{\mt@officialfalse\unboundfalse\twosidetrue\renewcommand\side{twoside}\def\@margg{1.5in}\PassOptionsToClass{twoside}{report}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{oneside} +% \begin{macrocode} +\DeclareOption{oneside}{\mt@officialfalse\unboundfalse\renewcommand\side{oneside}\def\@margg{1.5in}\PassOptionsToClass{oneside}{report}} +% \end{macrocode} +% \end{macro} +% +% The `unbound` option sets the class for single-sided printing with a smaller +% left margin, which is suitable for documents that will not be bound. +% +% \begin{macro}{unbound} +% \begin{macrocode} +\DeclareOption{unbound}{\mt@officialtrue\unboundtrue\def\@margg{1in}} +% \end{macrocode} +% \end{macro} +% +% \subsection{Multiple Appendices} +%\subsection{Pass options to appendix package} +% This replaces the multipleappendicestrue commands +% \begin{macro}{multiappendices} +% \begin{macrocode} +\DeclareOption{multiappendices}{\PassOptionsToPackage{toc,titletoc, title}{appendix}} +% \end{macrocode} +% \end{macro} +% \subsection{Heading Style Options} +% The following options allow the user to choose from different heading styles. +% +% \begin{macro}{\HeadingStyle} +% \begin{macrocode} +\def\HeadingStyle{} +% \end{macrocode} +% Define an empty macro as a placeholder +% \end{macro} +% +% \begin{macro}{apa} +% \begin{macrocode} +\DeclareOption{apa}{ + \setcounter{secnumdefault}{3} + \setcounter{head}{0} + \def\HeadingStyle{apa}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{chicago} +% \begin{macrocode} +\DeclareOption{chicago}{ + \setcounter{secnumdefault}{3} + \setcounter{head}{1} + \def\HeadingStyle{chicago}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{headings} +% \begin{macrocode} +\DeclareOption{headings}{ + \setcounter{secnumdefault}{3} + \setcounter{head}{2} + \def\HeadingStyle{mainethesis}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{idecimal} +% \begin{macrocode} +\DeclareOption{idecimal}{ + \setcounter{secnumdefault}{3} + \setcounter{head}{3} + \def\HeadingStyle{idecimal}} +% \end{macrocode} +% \end{macro} +% \begin{macro}{jdecimal} +% \begin{macrocode} +\DeclareOption{jdecimal}{ + \setcounter{secnumdefault}{3} + \setcounter{head}{1000} + \def\HeadingStyle{jdecimal}} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Captions} +% The `legacycaptions` option changes the caption formatting. +% +% \begin{macrocode} +\DeclareOption{legacycaptions}{\mt@legacycaptionstrue} +% \end{macrocode} +% +% \subsection{Pagination} +% These options control the placement of page numbers. +% +% \begin{macrocode} +\DeclareOption{pagenumberbottom}{\def\mt@pagestyle{bottom}} +\DeclareOption{pagenumbertop}{\def\mt@pagestyle{top}} +% \end{macrocode} +% +% /subsection{Pass options to report class} +% This passes any unknown option directly to the underlying `report` class. +% This is a catch-all to make the class compatible with standard report options. +% +% \begin{macrocode} +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}} +% \end{macrocode} +% +% \subsection{Spacing Modifiers} +% The `loftspacing` option enables a specific spacing setting. +% +% \begin{macrocode} +\DeclareOption{loftspacing}{\mt@loftspacetrue\mt@officialfalse} +% \end{macrocode} +% +% \subsection{Options to pass to xcolor package} +% These options are specifically for the `xcolor` package. +% They intercept the options from `documentclass` and pass them to `xcolor` +% before it's loaded, preventing an option clash. +% +% \begin{macrocode} +\DeclareOption{table}{\PassOptionsToPackage{table}{xcolor}} +\DeclareOption{xcdraw}{\PassOptionsToPackage{xcdraw}{xcolor}} +% \end{macrocode} +% +% \subsection{Citation style} +% This defines a macro to store the citation style provided by the user. +% +% \begin{macrocode} +\newcommand*{\@citestyle}{authoryear} +% \end{macrocode} +% +% This option takes the value passed to `citestyle` (e.g., `apa`) and +% redefines the `@citestyle` macro with that value. +% +% \begin{macrocode} +\DeclareOption{citestyle}{% + \renewcommand*{\@citestyle}{#1}% +} +% \end{macrocode} +% +% +% This command sets the default citation style if none is specified. +% +% \begin{macrocode} +\ExecuteOptions{citestyle=authoryear} +% \end{macrocode} +% +% \subsection{Execution of Options} +% This is the final execution block. It's crucial for processing all +% the options that have been declared and passed. +% +% sets the default font +% \begin{macrocode} +\ExecuteOptions{12pt,unbound} +% \end{macrocode} + +% \begin{macrocode} +\ProcessOptions +% \end{macrocode} + +% \subsection{Changes Package} +% Pass final to changes if draft is not provided as an option. This will disable related document markup. +% \begin{macrocode} + \ifdraft{}\else{\PassOptionsToPackage{final}{changes}}\fi +% \end{macrocode} +% +% \section{Import Required Packages} +% Depending on your system, there are diffent methods for installing pacakges, but generally they are sourced from CTAN. If you are using Overleaf, all of these pacakges are installed for you by default. +% On fedora, they are all included within texlive-scheme-full, which can be installed with dnf. +% +% \begin{macro}{report} +% \subsection{Report Class} +% \begin{macrocode} +\LoadClass[\docsize,\side]{report}[2022/07/02 v1.4n Standard LaTeX document class] +% \end{macrocode} +% \end{macro} +% +% \subsection{Fonts} +% \begin{macro}{fontenc} +% \begin{macrocode} +\RequirePackage[T1]{fontenc}[2024/06/01 v2.0h Standard LaTeX package] +% \end{macrocode} +% Provides the T1 font encoding, which allows for correct hyphenation of +% accented characters and improves overall text rendering. +% \end{macro} +% \begin{macro}{fontspec} +% \begin{macrocode} +\RequirePackage{fontspec}[2022/01/15 v2.8a Font selection for XeLaTeX and LuaLaTeX] +% \end{macrocode} +% +% Provides advanced font selection with LuaLaTeX and XeLaTeX, allowing for +% the use of system fonts and OpenType/TrueType font features. +% \end{macro} +% \begin{macro}{microtype} +% \begin{macrocode} +\RequirePackage{microtype}[2023/03/13 v3.1a Micro-typographical refinements (RS)] +% \end{macrocode} +% \end{macro} +% + +% Enhances the appearance of justified text through micro-typographical +% adjustments like character protrusion and font expansion. + +% \subsection{Table of Contents, List of Tables and List of Figures} +%The List of Tables and the List of Figures (if any) appear as individual pages. +% +%A List of Tables/Figures is necessary even if there is only one table or figure. +% +%If the text of the manuscript contains a consistent set of theorems, symbols, abbreviations, or definitions, those should be listed in a List of Theorems, Symbols, Abbreviations, or Definitions respectively. These lists are included in the Table of Contents. +% \begin{itemize} +% \item Tables/figures must be numbered and titled. Further explanatory information provided in a caption that is not part of the title should not appear on the List of Tables/Figures. +% \item The tables/figures are numbered separately from each other. Each group is numbered consecutively throughout the entire manuscript or by chapter using a decimal numbering system (e.g., the third table in chapter two will be Table 2.3., and the third figure in chapter two will be Figure 2.3.). The same system should be used for numbering figures AND tables. +% \item All tables/figures must fit into the required page margins. +% \item The title and caption of the table/figure are part of the text and must be the same font size and style of the body of the manuscript. It is acceptable for the font within the table/figure to be as small as 9-point font. +% \item Tables/figures must be placed in the text as they are mentioned. If the Table/Figure is larger than one-half of the page it must be placed on a page of its own. +% \item Tables/figures that extend onto a second page must be labeled “Table/Figure \# Continued” +% \item Appendix tables/figures must be numbered separately (e.g., the third table in Appendix A would be numbered Table A.3.) and must be included in the List of Tables. +% \item Photographs must be originals or high-quality reproductions. All photographs must have captions. +% \end{itemize} +% \begin{macro}{tocloft} +% \begin{macrocode} +\RequirePackage[titles]{tocloft}[2017/08/31 v2.3i parameterised ToC, etc., typesetting] +% \end{macrocode} +% Offers extensive customization of the table of contents, list of figures, +% and list of tables. +% \end{macro} + +% \subsection{Formatting} +% \begin{macro}{newunicodechar} +% \begin{macrocode} +\RequirePackage{newunicodechar}[2018/04/08 v1.2 Defining Unicode characters] +% \end{macrocode} +% Provides a command to define new Unicode characters, which is essential +% for modern typesetting. +% \end{macro} + +% \begin{macro}{textcomp} +% \begin{macrocode} +\RequirePackage{textcomp}[2020/02/02 v2.0n Standard LaTeX package] +% \end{macrocode} +% Provides a wide range of symbols and characters not available in default +% LaTeX fonts, such as the trademark symbol. +% \end{macro}{textcomp} +% \begin{macro}{nth} +% \begin{macrocode} +\RequirePackage[super]{nth}[2002/02/27] +% \end{macrocode} +% Adds commands for typesetting ordinal numbers (e.g., 1st, 2nd, 3rd) +% with correct superscripting. +% \end{macro}{nth} + +% \subsection{ Numbers, Special Characters, and Chemical Formulas} +% \begin{macro}{mhchem} +% \begin{macrocode} +\RequirePackage[version=4]{mhchem}[2021/12/31 v4.09 for typesetting chemical formulae] +% \end{macrocode} +% Provides an easy way to write chemical formulas and equations. +% \end{macro} +% \begin{macro}{textgreek} +% \begin{macrocode} +\RequirePackage{textgreek}[2011/10/09 v0.7 Greek symbols in text] +% \end{macrocode} +% Provides commands for typesetting Greek letters in text mode. +% \end{macro} +% \begin{macro}{siunitx} +% \begin{macrocode} +\RequirePackage{siunitx}[2023-03-14 v3.2.3 A comprehensive (SI) units package] +% \end{macrocode} +% Provides a powerful command for typesetting SI units and numbers with +% proper spacing and formatting. +% \end{macro} +% \begin{macro}{geometry} +% \begin{macrocode} +\RequirePackage{geometry}[2020/01/02 v5.9 Page Geometry] +% \end{macrocode} +% This package provides a flexible interface to control the document's page layout. +% Within this class, it's used to set the document margins, including the left margin +% based on the `unbound` option. +% \end{macro} + +% \subsection{References and Citations} +% \begin{macro}{biblatex} +% \begin{macrocode} +\RequirePackage[backend=biber, style=\@citestyle, doi = true, autopunct = true, date=year]{biblatex}[2024/03/05 v3.19] +% \end{macrocode} +% A powerful package for managing bibliographies and citations. +% \end{macro} +% +% \subsection{Appendices} +% Each Appendix must be listed by its title and page number. If there is only one Appendix, it is listed by the name “Appendix” and its title. Therefore, an Appendix “A” should not be listed unless there is an Appendix “B”. +% \begin{macro}{appendix} +% The appendix package provides the `appendix` command for legacy support as well as the `appendicies` enviornment. +% \begin{macrocode} +\RequirePackage[titletoc, title]{appendix} +% \end{macrocode} +% \end{macro} +% +% \subsection{Figures and Tables} +% Figures: A FIGURE is a graphic illustration (chart, graph, diagram, photo, map, or plate). +% Figures may be professionally prepared or drawn by the author. +% In either case, they must be of letter-quality print. +% +% Figures \& Tables must be placed as close as possible to their first mention in the text.\footnote{\LaTeX handles this with the figure environment} +% If a table or figure with the caption is larger than 2/3 of a page, it must be moved to a separate page. +% Tables and figures referred to in the text may not be placed at the end of the chapter or the end of the dissertation. +% +% \begin{macro}{tabularx} +% \begin{macrocode} +\RequirePackage{tabularx}[2023/12/11 v2.12a] +% \end{macrocode} +% This package provides the `tabularx` environment, which is an extension of the +% standard `tabular` environment. It includes a new column type, `X`, that +% automatically adjusts its width to fill the specified table width. This is +% essential for creating tables that span the full text width of your document. +% \end{macro} +% \begin{macro}{hyperref} +% \begin{macrocode} +\RequirePackage{hyperref}[2023-02-07 v7.00v Hypertext links for LaTeX] +% \end{macrocode} +% Creates hyperlinks within the document, making the table of contents, +% citations, and external links clickable. +% \end{macro} +% \begin{macro}{csquots} +% \begin{macrocode} +\RequirePackage{csquotes}[2022-09-14 v5.2n context-sensitive quotations (JAW)] +% \end{macrocode} +% Provides context-sensitive quotation facilities, automatically handling +% nesting and language-specific rules. +% \end{macro} +% \begin{macro}{graphicx} +% \begin{macrocode} +\RequirePackage{graphicx}[2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR)] +% \end{macrocode} +% A fundamental package for including graphics files in a document. +% \end{macro} + +% \subsubsection{Landscape Figures and Tables} +% Landscape orientation figures and tables must be oriented as such by inserting a section break and rotating the page. +% This makes the figure/table readable in digital format. +% +% \begin{macro}{rotating} +% \begin{macrocode} +\RequirePackage{rotating}[2016/08/11 v2.16d rotated objects in LaTeX] +% \end{macrocode} +% Provides environments for rotating objects such as figures and tables. +% \end{macro} +% \begin{macro}{lscape} +% \begin{macrocode} +\RequirePackage{lscape}[2020/05/28 v3.02] +% \end{macrocode} +% Provides a landscape environment to rotate pages. For PDF output, the +% `pdflscape` package is required to correctly set the page orientation. +% \end{macro} +% \begin{macro}{pdflscape} +% \begin{macrocode} +\RequirePackage{pdflscape}[2022-10-27 v0.13 Display of landscape pages in PDF] +% \end{macrocode} +% Adds PDF support to the `lscape` environment, ensuring landscape pages +% are displayed correctly in PDF viewers. +% \end{macro} +% \subsubsection{Caption} +% Captions must be on the same page as the figure on the table.\footnote{currenlty,we use a short title and a caption description} +% If the table exceeds one page, the caption should go on the first page and the second page will be labeled as table/figure continued.\footnote{currenlty, this must be handled manually, where the description is null for the second page.} +% \begin{macro}{caption} +% \begin{macrocode} +\RequirePackage[margin=10pt,font=small,labelfont=bf,labelsep=quad]{caption}[2023/03/12 v3.6j Customizing captions (AR)] +% \end{macrocode} +% Provides an interface to customize the captions of figures and tables. +% \end{macro} +% \begin{macro}{float} +% \begin{macrocode} +\RequirePackage{float}[2001/11/08 v1.3d Float enhancements (AL)] +% \end{macrocode} +% Provides the H placement specifier for floats, giving more precise control. +% \end{macro} +% \begin{macro}{booktabs} +% \begin{macrocode} +\RequirePackage{booktabs}[2020/01/12 v1.61803398 Publication quality tables] +% \end{macrocode} +% Provides commands for drawing professional-looking horizontal rules in tables. +% \end{macro} +% \begin{macro}{xcolor} +% \begin{macrocode} +\RequirePackage{xcolor}[2022/06/12 v2.14 LaTeX color extensions (UK)] +% \end{macrocode} +% An extended version of the `color` package, providing more color models +% and table coloring features. +% \end{macro} +% +% \begin{macro}{multirow} +% \begin{macrocode} +\RequirePackage{multirow}[2021/03/15 v2.8 Span multiple rows of a table] +% \end{macrocode} +% Provides a command to create cells that span multiple rows in a table. +% \end{macro} +% \begin{macro}{longtable} +% \begin{macrocode} +\RequirePackage{longtable}[2021-09-01 v4.17 Multi-page Table package (DPC)] +% \end{macrocode} +% Provides an environment for creating tables that can span multiple pages. +% \end{macro} + +% \subsection{Document Markup} +% \begin{macro}{todonotes} +% \begin{macrocode} +\RequirePackage[colorinlistoftodos]{todonotes}[2023/01/31] +% \end{macrocode} +% Provides commands for adding margin notes and todo lists during drafting. +% \end{macro} +% \begin{macro}{soul} +% \begin{macrocode} +\RequirePackage{soul}[2003/11/17 v2.4] +% \end{macrocode} +% Provides commands for letter-spacing, underlining, and highlighting text. +% \end{macro} +% \begin{macro}{lineno} +% \begin{macrocode} +\RequirePackage{lineno}[2023/01/19 line numbers on paragraphs v5.1] +% \end{macrocode} +% 'lineno' is enabled when in draft mode for easier review +% Adds line numbers to a document, useful during the drafting process. +% \end{macro} +% \begin{macro}{changes} +% \begin{macrocode} +\RequirePackage[]{changes} +% \end{macrocode} +% +% The main advantage of the changes package is its flexibility. You can define different authors with their own colors, which is great for showing who made which edits in a collaborative document. +% When you're ready to submit the final version of your manuscript, you don't need to manually remove all the change markup. You can simply add the final option to the package in your preamble. +% +% The changes package provides commands to mark up text as additions, deletions, or replacements. +%\end{macro} +% \subsection{Table of Contents, Titles and Headings} +% +% \begin{macro}{tocbibind} +% \begin{macrocode} +\RequirePackage{tocbibind}[2010/10/13 v1.5k extra ToC listings] +% \end{macrocode} +% Adds the bibliography, index, and lists of figures/tables to the table of contents. +% \end{macro} +% \begin{macro}{titlesec} +% \begin{macrocode} +\RequirePackage{titlesec}[2021/07/05 v2.14 Sectioning titles] +% \end{macrocode} +% Offers a powerful interface to sectioning commands, allowing for custom headings. +% +% \end{macro} +% \begin{macro}{textcase} +% \begin{macrocode} +\RequirePackage{textcase}[2022/07/10 v1.03 Text only upper/lower case changing (DPC)] +% \end{macrocode} +% Provides robust commands for changing the case of text. +% \end{macro} +% \begin{macro}{titling} +% \begin{macrocode} +\RequirePackage{titling}[2004/08/17 v2.1d] +% \end{macrocode} +% \end{macro} +% Provides greater control over the typesetting of the title page. +% \begin{macro}{setspace} +% \begin{macrocode} +\RequirePackage{setspace}[2022/12/04 v6.7b set line spacing] +% \end{macrocode} +% Provides support for setting line spacing, such as single, one-and-a-half, and double spacing. +% \end{macro} +% \subsection{Other Packages} +% \begin{macro}{hypenat} +% \begin{macrocode} +\RequirePackage[none]{hyphenat}[2009/09/02 v2.3c] +% \end{macrocode} +% +% Provides fine control over hyphenation. +% \end{macro} +% \begin{macro}{iftex} +% \begin{macrocode} +\RequirePackage{iftex}[2022/02/03 v1.0f TeX engine tests] +% \end{macrocode} +% Provides a conditional command to check which TeX engine is being used. +% \end{macro} +% \begin{macro}{etoolbox} +% \begin{macrocode} +\RequirePackage{etoolbox}[2020/10/05 v2.5k e-TeX tools for LaTeX (JAW)] +% \end{macrocode} +% A set of tools for programming in LaTeX, providing macros for conditionals. +% \end{macro} + +% \begin{macro}{xstring} +% \begin{macrocode} +\RequirePackage{xstring}[2013/10/13 v1.7c] +% \end{macrocode} +% Provides commands for advanced string manipulation. +% \end{macro} +% \begin{macro}{afterpackage} +% \begin{macrocode} +\RequirePackage{afterpackage}[2006/01/17 v1.1] +% \end{macrocode} +% Provides a command to execute code after a specific package has been loaded. +% \end{macro} + +% \subsection{Endnotes \& Footnotes} +% Footnotes appear at the bottom of the page or at the end of a chapter; +% endnotes appear on a separate page at the end of the text before the Bibliography. +% The notes are numbered consecutively throughout the text by a raised Arabic numeral (e.g. 12) +% which corresponds to the number of the note at the bottom of the page or at the end of the text. +% +% This is handled by the \LaTeX base report class, and no additional packages are needed +% Do not use the `footnote` package, as it breaks compatibility with other packages. Consider `footnotehyper` if more advanced controls are needed. + +% \section{Additional Variables} +% \subsection{Title} +% This should be defined in an inverted pyramid format, but must be manually constructed by the user. +% \begin{macrocode} +\def\@title{} +% \end{macrocode} +% \subsection{Author Name} +% \begin{macrocode} +\def\@author{} +% \end{macrocode} +% \subsection{Author's Pronouns} +% \begin{macrocode} +\def\@authorpronoun{} +% \end{macrocode} +% \subsection{Author's Previous Degrees} +% \begin{macrocode} +\def\@degreesheld{} +% \end{macrocode} +% \subsection{Author's Current Degree} +% For example, Doctor of Philosphy, Master of Science +% \begin{macrocode} +\def\@degree{} +% \end{macrocode} +% \subsection{Author's Current Program} +% \begin{macrocode} +\def\@program{} +% \end{macrocode} +% \subsection{Author's Submission Date} +% May, December or August and Year +% \begin{macrocode} +\def\@submitdate{} +% \end{macrocode} +% \subsection{Advisors} +% \begin{macrocode} +\def\@principaladvisor{} +\def\@secondadvisor{} +\def\@principalshort{} +% \end{macrocode} +% \subsection{Committee Members} +% \begin{macrocode} +\def\@firstreader{} +\def\@secondreader{} +\def\@thirdreader{} +\def\@fourthreader{} +\def\@fifthreader{} +% \end{macrocode} + +% \subsection{Dissertation Tag} +% \begin{macrocode} +\def\@type{Dissertation} +\def\@LastLevel{0} +% \end{macrocode} + +% \subsection{Initialize Conditionals} +% \begin{macrocode} +\newif\ifcopyrightpage\copyrightpagefalse +\newif\ifbigtitlepage\bigtitlepagefalse +\newif\ifverybigtitlepage\verybigtitlepagefalse +\newif\ifapp\appfalse +% \end{macrocode} + +% \subsection{Initialize Counts} +% \begin{macrocode} +\newcount\numcomm \numcomm=4 +\newcount\numadv \numadv=1 +% \end{macrocode} + +% \subsection{Define Section Names} +% \begin{macrocode} +\renewcommand*\contentsname{Table of Contents} +\renewcommand*\bibname{References} +\renewcommand*\indexname{INDEX} +\renewcommand*\chaptername{Chapter} +\newcommand*\listname{List of} +\newcommand*\chapternamep{\chaptername s} +\newcommand*\prefacename{Preface} +\newcommand*\acknowledgename{Acknowledgments} +\newcommand*\landacknowledgename{Land Acknowledgments} +\newcommand*\dedicationname{Dedication} +\newcommand*\bioname{Biography of the Author} +% \end{macrocode} + +% \section{Internal Mapping and Logic} +% \begin{macrocode} +\renewcommand{\author}[1]{% + \ifx\empty#1\empty\else\gdef\@author{#1}\fi} +\newcommand{\authorpronoun}[1]{% + \ifx\empty#1\empty\else\gdef\@authorpronoun{#1}\fi} +\renewcommand{\title}[1]{% + \ifx\empty#1\empty\else\gdef\@title{#1}\fi} +\newcommand{\degreesheld}[1]{% + \ifx\empty#1\empty\else\gdef\@degreesheld{#1}\fi} +\newcommand{\degree}[1]{% + \ifx\empty#1\empty\else\gdef\@degree{#1}\fi} +\newcommand{\program}[1]{% + \ifx\empty#1\empty\else\gdef\@program{#1}\fi} +\newcommand{\submitdate}[1]{% + \ifx\empty#1\empty\else\gdef\@submitdate{#1}\fi} +\newcommand{\principaladvisor}[2][\empty]{% + \ifx\empty#1\empty\else\gdef\@principalshort{\sloppy#1}\fi% + \ifx\empty#2\empty\else\gdef\@principaladvisor{\sloppy#2}\fi% + } +\newcommand{\secondadvisor}[1]{% + \ifx\empty#1\empty\else\gdef\@secondadvisor{\sloppy#1}\fi + \twoadvisors} +\newcommand{\principalshort}[1]{% + \ifx\empty#1\empty\else\gdef\@principalshort{#1}\fi} +\newcommand{\firstreader}[1]{% + \ifx\empty#1\empty\else\gdef\@firstreader{\sloppy#1}\fi + \members{1}} +\newcommand{\secondreader}[1]{% + \ifx\empty#1\empty\else\gdef\@secondreader{\sloppy#1}\fi + \members{2}} +\newcommand{\thirdreader}[1]{% + \ifx\empty#1\empty\else\gdef\@thirdreader{\sloppy#1}\fi + \members{3}} +\newcommand{\fourthreader}[1]{% + \ifx\empty#1\empty\else\gdef\@fourthreader{\sloppy#1}\fi + \members{4}} +\newcommand{\fifthreader}[1]{% + \ifx\empty#1\empty\else\gdef\@fifthreader{\sloppy#1}\fi + \members{5}} +\newcommand{\bibfiles}[1]{% + \ifx\empty#1\empty\else\gdef\@bibfiles{#1}\fi} +\newcommand{\members}[1]{\numcomm=#1} +\newcommand{\twoadvisors}{\numadv=2} +\newcommand{\oneadvisor}{\numadv=1} +\newcommand{\thesis}{ + \gdef\@type{Thesis}} +\newcommand{\project}{ + \gdef\@type{Project}} +\newcommand{\compresstitlepage}[1][1]{ + \ifcase#1 + \relax + \or + \bigtitlepagetrue + \or + \bigtitlepagetrue + \verybigtitlepagetrue + \fi +} +\renewcommand{\bibname}{References} +% \end{macrocode} +% +% \section{General Formatting} + +% \subsection{Line Numbering on Draft Mode} +% \begin{macrocode} +\ifdraft{\linenumbers}\fi +% \end{macrocode} +% +% \section{Style and Format} +% \subsection{Recommended Fonts \& Point Size} +% The text’s body font must also be used in headers, page numbers, and footnotes.\footnote{we use fontspec to load system fonts with XeLaTeX or LuaLaTeX}. +% Exceptions are made only for tables and figures created with different software and inserted into the document. +% \begin{itemize} +% \item Arial – 10 pt +% \item Century – 11 pt +% \item Courier New – 10 pt +% \item Garamond – 12 pt\footnote{In the maine-thesis class, we set EBGaramond as default since it is widely available.} +% \item Georgia – 11 pt +% \item Lucida Bright – 10 pt +% \item Microsoft Sans Serif – 10 pt +% \item Tahoma – 10 pt +% \item Times New Roman – 12 pt +% \item Trebuchet MS – 10 pt +% \item Verdana – 10 pt +% \end{itemize} +% \begin{macrocode} + \setmainfont{EB Garamond} +% \end{macrocode} +% +% \subsection{Geometry} +% \begin{itemize} +% \item Page Size: Standard Letter 8.5 by 11 inches +% \item Margins: 1 inch for all margins +% \item Spacing: Double spacing except for degree information on the Abstract \& Block quotations, footnotes, and bibliographies: single spacing within each entry but double-spacing between each entry +% \end{itemize} +% +% \begin{macrocode} +\geometry{ + letterpaper, + margin=1in, + left=\@margg, + headsep=0.4in, + headheight=14pt, + footskip=30pt, + marginparwidth=40pt, + marginparsep=10pt} +% \end{macrocode} +% \subsection{Additional Page Format} +% \begin{macrocode} +\setlength{\droptitle}{-60pt} %% adjust headspace of title page and chapter headings as needed. +\setcounter{secnumdepth}{\value{secnumdefault}} +\setcounter{tocdepth}{\value{secnumdefault}} +\raggedbottom +\raggedright +\parindent=1.5em\relax +\markboth{}{} +% \subsection{Prepvent Widows and Orphans} +\clubpenalty=10000 +\widowpenalty=10000 +% \end{macrocode} +% \subsection{Font Parameter} +% \begin{macrocode} +\def\verbatim@font{\rmfamily} +% \end{macrocode} +% \subsection{Spacing for Title Page and Headings} +% \begin{macro}{\loftspacing} +% \begin{macrocode} +\newcommand*\loftspacing{10} +% \end{macrocode} +% \end{macro} + +% \section{Caption Format} +% This customized the output from the captions package +% \begin{itemize} +% \item Tables/figures must be numbered and titled. Further explanatory information provided in a caption that is not part of the title should not appear on the List of Tables/Figures. +% \item The tables/figures are numbered separately from each other. Each group is numbered consecutively throughout the entire manuscript or by chapter using a decimal numbering system (e.g., the third table in chapter two will be Table 2.3., and the third figure in chapter two will be Figure 2.3.). The same system should be used for numbering figures AND tables. +% \item All tables/figures must fit into the required page margins. +% \item The title and caption of the table/figure are part of the text and must be the same font size and style of the body of the manuscript. It is acceptable for the font within the table/figure to be as small as 9-point font. +% \item Tables/figures must be placed in the text as they are mentioned. If the Table/Figure is larger than one-half of the page it must be placed on a page of its own. +% \item Tables/figures that extend onto a second page must be labeled “Table/Figure \# Continued” +% \item Appendix tables/figures must be numbered separately (e.g., the third table in Appendix A would be numbered Table A.3.) and must be included in the List of Tables. +% \item Photographs must be originals or high-quality reproductions. All photographs must have captions. +%\end{itemize} + +% \begin{macrocode} +\DeclareCaptionFormat{thesis} +{ + \textbf{#1#2}\textit{\small #3} +} +\captionsetup{format=thesis} +% \end{macrocode} +% +% Position Float Figures at the top of the page (per graduate school requirement) +% \begin{macrocode} +\setlength{\headsep}{0em} +\setlength{\@fptop}{0pt} +% \end{macrocode} +% \section{Heading Format Definitions} +% \begin{macro}{addot} +% \begin{macrocode} +\def\adddot#1{#1.\thinspace} +% \end{macro} +% \begin{macro}{addul} +\def\addul#1{\underline{#1}} +% \end{macro} +% \begin{macro}{adddotul} +\def\adddotul#1{\underline{#1}.\thinspace} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\apaheadings} +% +% The APA 7 format uses a five-level heading system. The critical features are: +% \begin{itemize} +% \item Level 1 (Chapter): Centered and bold, with uppercase text. +% \item Levels 2 \& 3 (Section \& Subsection): Flush left, with level 2 bold and level 3 bold and italic. +% \item Levels 4 \& 5 (Subsubsection \& Paragraph): Run-in headings, meaning the text follows on the same line. Level 4 is bold, and level 5 is bold and italic. Both are followed by a period. +% \end{itemize} +% +% \begin{macrocode} +\newcommand{\apaheadings}{% +% \end{macrocode} +% Chapter Titles +% \begin{macrocode} + \titleformat{\chapter}[display]{\normalfont\centering\bfseries}{\@chapapp\thinspace \thechapter}{-3pt}{\MakeTextUppercase} + \titlespacing{\chapter}{0pt}{50pt}{15pt} +% \end{macrocode} + % First Level Headings +% \begin{macrocode} + \titleformat{\section}{\normalfont\bfseries}{\thesection}{0em}{} + \titlespacing{\section}{0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex} +% \end{macrocode} + % Second Level Headings +% \begin{macrocode} + \titleformat{\subsection}{\normalfont\bfseries\itshape}{\thesubsection}{0em}{} + \titlespacing{\subsection}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .1ex} +% \end{macrocode} + % Third Level Headings +% \begin{macrocode} + \titleformat{\subsubsection}[runin]{\normalfont\bfseries}{\thesubsubsection}{1em}{\adddot} + \titlespacing{\subsubsection}{\parindent}{3.25ex plus 1ex minus .2ex}{0pt}[1em] +% \end{macrocode} + % Fourth Level Headings +% \begin{macrocode} + \titleformat{\paragraph}[runin]{\normalfont\bfseries\itshape}{\theparagraph}{1em}{\adddot} + \titlespacing{\paragraph}{\parindent}{3.25ex plus 1ex minus .2ex}{0pt}[1em] +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\chicagoheadings} +%The Chicago format, as defined here, has a clear hierarchy with varying alignment and capitalization. Its critical features are: +% \begin{itemize} +% \item Levels 1 \& 2 (Chapter \& Section): Centered. Level 1 is bold and uppercase, while level 2 is regular and uppercase. +% \item Level 3 (Subsection): Flush left, bold, and italic. The text is also in uppercase. +% \item Level 4 (Subsubsection): Flush left with normal roman font. The text is in sentence case. +% \item Level 5 (Paragraph): A run-in heading that is bold and italic, followed by a period. +% \end{itemize} +% +% \begin{macrocode} +\newcommand{\chicagoheadings}{% +% \end{macrocode} + % Level 1: Centered, Boldface, Headline-style +% \begin{macrocode} + \titleformat{\chapter}[display]{\normalfont\centering\bfseries}{\@chapapp\thinspace \thechapter}{-3pt}{\MakeTextUppercase} + \titlespacing{\chapter}{0pt}{50pt}{15pt} +% \end{macrocode} + % Level 2: Centered, Regular, Headline-style +% \begin{macrocode} + \titleformat{\section}{\normalfont\centering\normalsize}{\thesection}{1.5ex}{\MakeTextUppercase} + \titlespacing{\section}{0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex} +% \end{macrocode} + % Level 3: Flush Left, Bold Italic, Headline-style +% \begin{macrocode} + \titleformat{\subsection}{\normalfont\bfseries\itshape\normalsize}{\thesubsection}{0em}{\MakeTextUppercase} + \titlespacing{\subsection}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .1ex} +% \end{macrocode} + % Level 4: Flush left, Roman type, Sentence-style +% \begin{macrocode} + \titleformat{\subsubsection}{\normalfont\normalsize}{\thesubsubsection}{0em}{} + \titlespacing{\subsubsection}{0pt}{3.25ex plus 1ex minus .2ex}{0pt plus .1ex} +% \end{macrocode} + % Level 5: Run in, Bold Italic, Sentence-style, with period +% \begin{macrocode} + \titleformat{\paragraph}[runin]{\normalfont\bfseries\itshape}{\theparagraph}{1em}{\adddot} + \titlespacing{\paragraph}{\parindent}{3.25ex plus 1ex minus .2ex}{0pt}[1em] +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\mainethesisheadings} +% The format that was provided in the old DOCX template from the Graduate School +%\begin{itemize} +% \item Underlining: It uses underlining for several heading levels. +% \item Levels 1-3: Level 1 (Chapter) is centered and bold. Level 2 and 3 (Section and Subsection) are flush left and bold. Level 2 is followed by an underline, and level 3 is a run-in heading that is bold, followed by a period and underline. +% \item Levels 4-5: The fourth- and fifth-level headings are also run-in, with the fourth being bold and underlined, and the fifth (paragraph) being regular text with a period and underline. +% \end{itemize} +% +% \begin{macrocode} +\newcommand{\mainethesisheadings}{% +% \end{macrocode} + % Chapter Titles +% \begin{macrocode} + \titleformat{\chapter}[display]{\normalfont\centering\bfseries}{\@chapapp\thinspace \thechapter}{-3pt}{\MakeTextUppercase} + \titlespacing{\chapter}{0pt}{50pt}{15pt} +% \end{macrocode} + % First Level Headings +% \begin{macrocode} + \titleformat{\section}{\normalfont\bfseries}{}{0pt}{\addul} + \titlespacing{\section}{0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex} +% \end{macrocode} + % Second Level Headings +% \begin{macrocode} + \titleformat{\subsection}{\normalfont\bfseries}{}{0pt}{} + \titlespacing{\subsection}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .1ex} +% \end{macrocode} + % Third Level Headings +% \begin{macrocode} + \titleformat{\subsubsection}[runin]{\normalfont\bfseries}{}{0pt}{\adddotul} + \titlespacing{\subsubsection}{0pt}{3.25ex plus 1ex minus .2ex}{0pt} +% \end{macrocode} + % Fourth Level Headings +% \begin{macrocode} + \titleformat{\paragraph}[runin]{\normalfont}{}{0pt}{\adddotul} + \titlespacing{\paragraph}{0pt}{3.25ex plus 1ex minus .2ex}{0pt} +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\idecimalheadings} +% The iDecimal format emphasizes a clear decimal numbering system. Its critical features are: +%\begin{itemize} +% \item Numbering: All heading levels are numbered, which is more explicit than some other styles. +% \item Consistency: The style maintains a consistent use of bold for all heading levels. +% \item Alignment: Headings are flush left, except for the chapter title, which is centered. +% \item Run-in Headings: The last two levels are run-in, with a period at the end. +% \end{itemize} +% +% \begin{macrocode} +\newcommand{\idecimalheadings}{% + \setcounter{tocdepth}{4} +% \end{macrocode} + % Chapter Titles: Centered and bold +% \begin{macrocode} + \titleformat{\chapter}[display]{\normalfont\centering\bfseries}{\@chapapp\thinspace \thechapter}{1em}{} + \titlespacing{\chapter}{0pt}{50pt}{15pt} +% \end{macrocode} + % Level 1 Headings: Bold, followed by a line break +% \begin{macrocode} + \titleformat{\section}{\normalfont\bfseries}{\thesection}{1em}{} + \titlespacing{\section}{0pt}{3.5ex plus 1ex minus .2ex}{2.3ex plus .2ex} +% \end{macrocode} + % Level 2 Headings: Bold, followed by a line break +% \begin{macrocode} + \titleformat{\subsection}{\normalfont\bfseries}{\thesubsection}{1em}{} + \titlespacing{\subsection}{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .1ex} +% \end{macrocode} + % Level 3 Headings: Bold, run-in with a period, with 1em spacing between number and title +% \begin{macrocode} + \titleformat{\subsubsection}[runin]{\normalfont\bfseries}{\thesubsubsection}{1em}{\adddot} + \titlespacing{\subsubsection}{\parindent}{3.25ex plus 1ex minus .2ex}{0pt}[1em] +% \end{macrocode} + % Level 4 Headings: Bold, run-in with a period, with 1em spacing +% \begin{macrocode} + \titleformat{\paragraph}[runin]{\normalfont\bfseries}{\theparagraph}{1em}{\adddot} + \titlespacing{\paragraph}{\parindent}{3.25ex plus 1ex minus .2ex}{0pt}[1em] +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\jdecimalheadings} +% The jDecimal format, or Justified Decimal System, is characterized by its use of indentation in a justified, decimal format. +%\begin{itemize} +% \item Indentation: It uses increasing indentation for lower-level headings. For example, subsection has 1.5em indentation, and subsubsection has 3.8em. +% \item Uppercase: It uses uppercase for both chapters and sections. +% \item Consistency: Like the iDecimal format, it uses bolding for most levels to provide emphasis. +% \end{itemize} +% +% \begin{macrocode} +\newcommand{\jdecimalheadings}{% +% \begin{macrocode} + % Chapter Titles + \titleformat{\chapter}[display]{\normalfont\centering\bfseries\normalsize}{\@chapapp \thinspace \thechapter}{-3pt}{\MakeUppercase} + \titlespacing{\chapter}{0pt}{0pt}{15pt} +% \end{macrocode} +% First Level Headings +% \begin{macrocode} + \titleformat{\section}{\normalfont\bfseries}{\thesection}{1.5ex}{\MakeTextUppercase} + \titlespacing{\section}{0pt}{1.5ex plus .2ex minus 0pt}{.3ex plus .2ex} +% \end{macrocode} +% Second Level Headings +% \begin{macrocode} + \titleformat{\subsection}{\normalfont\bfseries}{\thesubsection}{1.5ex}{} + \titlespacing{\subsection}{1.5em}{0.3ex plus .2ex minus 0pt}{.2ex plus .1ex} +% \end{macrocode} +% Third Level Headings +% \begin{macrocode} + \titleformat{\subsubsection}{\normalfont\bfseries}{\thesubsubsection}{1.5ex}{} + \titlespacing{\subsubsection}{3.8em}{0.2ex plus .1ex minus 0pt}{0.2ex plus .1ex} +% \end{macrocode} +% Fourth Level Headings +% \begin{macrocode} + \titleformat{\paragraph}{\normalfont\bfseries}{\theparagraph}{1.5ex}{} + \titlespacing{\paragraph}{7.0em}{3.25ex plus 1ex minus .2ex}{3.25ex plus 1ex minus .2ex} +% \end{macrocode} +% Fifth Level Headings +% \begin{macrocode} + \titleformat{\subparagraph}{\normalfont\hspace{1.5em}}{\thesubparagraph}{1.5ex}{\addul} + \titlespacing{\subparagraph}{7.0em}{3.25ex plus 1ex minus .2ex}{3.25ex plus 1ex minus .2ex} +} +% \end{macrocode} +%\end{macro} +% +%\subsection{Implement Heading from Options Flag} +% Use Justified Decimal System style as default +% +% \begin{macrocode} +\ifdefined\HeadingStyle + \csname\HeadingStyle headings\endcsname +\else + \jdecimalheadings +\fi +% \end{macrocode} +% +% \section{Page Style} +% \subsection{Bottom of Page} +% \begin{macrocode} +\newcommand{\ps@bottom}{% + \renewcommand{\@oddhead}{% + \ifdraft\drafttext\hfil\today\hfil\drafttext\else\fi}% + \renewcommand{\@evenhead}{\@oddhead} + \renewcommand{\@oddfoot}{% + \ifdraft\drafttext\hfil\thepage + \hfil\drafttext\else\hfil\thepage\hfil\fi} + \renewcommand{\@evenfoot}{\@oddfoot} +} +% \end{macrocode} +% +% \subsection{Empty Page} +% \begin{macrocode} +\renewcommand{\ps@empty}{% + \renewcommand{\@oddhead}{% + \ifdraft\drafttext\hfil\today\hfil\drafttext\else\fi}% + \renewcommand{\@evenhead}{\@oddhead} + \renewcommand{\@oddfoot}{% + \ifdraft\drafttext\hfil\drafttext\else\fi} + \renewcommand{\@evenfoot}{\@oddfoot} +} +% \end{macrocode} +% + +% \subsection{Top of Page} +% \begin{macrocode} +\newcommand{\ps@top}{% + \renewcommand{\@oddhead}{% + \ifdraft\drafttext\hfil\today\hfil\drafttext\else\thepage\fi}% + \renewcommand{\@evenhead}{% + \ifdraft\drafttext\hfil\today\hfil\drafttext\else\thepage\fi}% + \renewcommand{\@oddfoot}{% + \ifdraft\drafttext\hfil\thepage\hfil\drafttext\else\fi}% + \renewcommand{\@evenfoot}{\@oddfoot}% +} +% \end{macrocode} +% + +% \subsection{Plain Page} +% \begin{macrocode} +\pagestyle{\mt@pagestyle} +\renewcommand{\ps@plain}{\csname ps@\mt@pagestyle\endcsname} +% \end{macrocode} +% + +% \section{Title Page Format} +% The Title Page is the first page of the manuscript. It is considered page “i”, but the number does not appear on the page. +% The following should be CENTERED included on the title page: +% \begin{itemize} +% \item Title of thesis in ALL CAPS, bold, and inverted pyramid format +% \item The student’s full name as it appears in University records +% \item Previous degree(s) earned +% \item A statement of fulfilling requirements for the degree sought +% \item Institution name\: The Graduate School +% \item Institution name\: The University of Maine +% \item The month and year of the student’s graduation date +% \item The advisory committee members (single space \& left justify if necessary to keep on one page) +% \end{itemize} +% +% Note: The first name(s) listed is the Advisor’s (or Co-Advisors’) and their title(s) followed by the names and titles of the remaining committee members. +% Do not include degrees such as “Dr.” on the title page. \footnote{this requires review of the package specifications, and additional documentation for its use} +% This page is to acknowledge committee members exclusively, +% “Readers” are recognized in the Acknowledgements. +% \subsection{Parameters for Make Title} +% The maine-thesis class now uses \texttt{maketitle} instead of \texttt{titlepage}. +% +% \begin{macrocode} +\date{} +% \end{macrocode} +%% an empty date prevents the date from displaying on the title page + +% \subsubsection{Pre Title Formatting} +% \begin{macrocode} +\pretitle{ + \begin{center} + + \bfseries\MakeTextUppercase +} +% \end{macrocode} +% + +% \subsubsection{Post Title Formatting} +% \begin{macrocode} +\posttitle{ + \end{center} +} +% \end{macrocode} +% + +% \subsubsection{Pre Author Formatting} +% \begin{macrocode} +\preauthor{ + \begin{center} + By \\ +} +% \end{macrocode} +% + +% \subsubsection{Post Author Formatting} +% \begin{macrocode} +\postauthor{ + \\ + \@degreesheld + \end{center} +} +% \end{macrocode} +% + +% \subsubsection{Title Page Hook Formatting} +% \begin{macrocode} +\renewcommand{\maketitlehooka}{ + \thispagestyle{empty} + \ifverybigtitlepage + \onehalfspacing + \else + \doublespacing + \fi +} +% \end{macrocode} + +% \begin{macrocode} +\renewcommand{\maketitlehookd}{ + \begin{center} + A \MakeTextUppercase{\@type}\\[4pt] + Submitted in Partial Fulfillment of the\\ + Requirements for the Degree of\\ + \expandafter{\@degree}\\ + (in \expandafter{\@program})\\ + \vskip 0.5in + The Graduate School\\ + The University of Maine\\ + \expandafter{\@submitdate} + \vfill + \end{center} + \ifbigtitlepage + \singlespacing + \fi + \begin{flushleft} + Advisory Committee: + \begin{list}{}{% + \setlength{\itemsep}{0pt}% + \setlength{\topsep}{0in}% + \setlength{\partopsep}{0pt}% + \setlength{\itemindent}{-\parindent}% + \setlength{\leftmargin}{1cm}% + } +% \end{macrocode} + % Check if the principal advisor is defined before printing +% \begin{macrocode} + \ifx\@principaladvisor\empty\else + \item{\@principaladvisor, % + \ifnum\numadv=2% + Co-% + \fi% + Advisor} + \fi +% \end{macrocode} + % Check for second advisor before printing +% \begin{macrocode} + \ifx\@secondadvisor\empty\else + \item{\@secondadvisor, Co-Advisor} + \fi +% \end{macrocode} + % Check for each reader before printing +% \begin{macrocode} + \ifx\@firstreader\empty\else + \item{\@firstreader} + \fi + \ifx\@secondreader\empty\else + \item{\@secondreader} + \fi + \ifx\@thirdreader\empty\else + \item{\@thirdreader} + \fi + \ifx\@fourthreader\empty\else + \item{\@fourthreader} + \fi + \ifx\@fifthreader\empty\else + \item{\@fifthreader} + \fi + \end{list} + \end{flushleft} + \clearpage +} +% \end{macrocode} + + +% \section{Table of Contents Formatting} +% All chapter divisions and subsections must be included in the Table of Contents and labeled exactly as they appear in the text. +% \subsection{Unlisted Sections} +% The Copyright page, Abstract, and Table of Contents are NOT listed in the Table of Contents. \footnote{this is handled within each of the enviornment definitions} +% \subsection{Chapter Divisions and Subsections} +% All chapter divisions and subsections must be listed in the Table of Contents. Regardless of the system of headings being used for organizing the text of the manuscript (headings system or decimal system), all sub-divisions should be indented appropriately in the Table of Contents. +% One system should be used consistently throughout the entire manuscript to define the chapter divisions and subsections.\footnote{five styles are provided here} + + +% \subsection{Table of Contents Font Specs} +% \begin{macrocode} +\renewcommand{\cftchapfont}{\normalfont\bfseries} +\renewcommand{\cftchappagefont}{\normalfont} +\renewcommand{\cftloftitlefont}{\normalfont\bfseries} +% \end{macrocode} + +% \subsection{Define Enviornment for Custom Thesis List} +% \begin{macrocode} +\newenvironment{thesislist}[1]{% + \chapter*{\listname\ #1} + \addcontentsline{toc}{chapter}{{\texorpdfstring{\MakeTextUppercase{\listname\ #1}}{\listname\ #1}}} + \begingroup + \parindent=0pt + \leftskip=0pt +}{\par\endgroup} +% \end{macrocode} + +%% Define Leader Dots +% \subsection{Leader Dots in the Table of Cotents} +% Leader dots must be used to connect the chapter divisions/subsection headings to their respective page numbers. +% A minimum of 5 leader dots between the chapter divisions/subsections and the page numbers is required (i.e. the text of the headings should not extend into the area where the page numbers are placed). +% \begin{macrocode} +\renewcommand{\cftdotsep}{2} +\renewcommand{\cftchapleader}{\cftdotfill{\cftdotsep}} +\renewcommand{\cftsecleader}{\cftdotfill{\cftdotsep}} +\renewcommand{\cftsubsecleader}{\cftdotfill{\cftdotsep}} +\renewcommand{\cftfigleader}{\cftdotfill{\cftdotsep}} +\renewcommand{\cfttableader}{\cftdotfill{\cftdotsep}} +\renewcommand{\contentsname}{Table of Contents} +% \end{macrocode} + +% \subsubsection{Ensuring that Leaders Dots meet 5-dot-rule} +% These should eventually be exposed as options with default values. +% cftsecindent and cftsecnumwidth define where the title starts. + +% \begin{macrocode} +\setlength{\cftsecindent}{1em} +\setlength{\cftsecnumwidth}{3em} +% \end{macrocode} + +% cftsetrmarg and cftsetpnumwidth define where the dotted leader ends and where the page number starts. +% \begin{macrocode} +\cftsetrmarg{3cm} +% \end{macrocode} +% Sets the right margin for the TOC entry +% \begin{macrocode} +\cftsetpnumwidth{0.5cm} +% \end{macrocode} +% Sets the width for the page number box + +% \section{Abstract Environment} +% An abstract (not paginated), which is a clearly written, concise summary of the thesis, must be included in the manuscript. It describes the problem, the procedures or methods used, and the results and conclusions of the research. Since doctoral abstracts are included in Dissertation Abstracts International, it is extremely important to write accurately. Formulas, diagrams, or other illustrations are not included in the abstract. +% +% The heading of the abstract should be centered and include: +% \begin{itemize} +% \item Title of the thesis in ALL CAPS, bold, and inverted pyramid format +% \item The author’s full name +% \item The name of the thesis advisor (including degree “Dr.”) +% \item A statement that the thesis is fulfilling requirements for a degree sought in a particular department +% \item The month and year of the student’s graduation date +% \end{itemize} +% \begin{macrocode} +\newcounter{mt@page} +% \end{macrocode} +% \begin{macro}{abstract} +% \begin{macrocode} +\renewenvironment{abstract}{% + \doublespacing + \begin{center} + {\bfseries\MakeTextUppercase{\@title}}\\ + By\space\@author\\[4pt] + \@type\ % + \ifnum\numadv=2% + Co-Advisors: \@principalshort and \@secondadvisor + \else + Advisor: \@principalshort + \fi + \vskip 0.33in + \singlespacing + An Abstract of the \@type\ Presented\\ + in Partial Fulfillment of the Requirements for the\\ + Degree of \@degree\\ + (in \@program)\\ + \@submitdate + \vskip 36pt plus 2pt minus 12pt + \end{center} + \doublespacing + \begingroup\par + \pagestyle{empty} +} +{\cleardoublepage + \par\endgroup +} +% \end{macrocode} +% \end{macro} + +% \subsection{Lay Abstract Environment} +% \begin{macro}{layabstract} +% This parallels the lay abstract, as an abreviated version with slight changes to the title text. +% \begin{macrocode} +\newenvironment{layabstract}[1]{% + \doublespacing + \begin{center} + {\bfseries\MakeTextUppercase{\@title}}\\ + By\space\@author\\[4pt] + \@type\ % + \ifnum\numadv=2% + Co-% + \fi% + Advisor% + \ifnum\numadv=2% + s% + \fi% + : \@principalshort + \vskip 0.33in + \singlespacing + A Lay Abstract of the \@type\ Presented\\ + in Partial Fulfillment of the Requirements for the\\ + Degree of \@degree\\ + (in \@program)\\ + \@submitdate + \vskip 26pt plus 2pt minus 12pt + \end{center} + Keywords: \MakeLowercase{#1} + \vskip 26pt plus 2pt minus 12pt + \doublespacing + \begingroup\par + \pagestyle{empty} +} +{\cleardoublepage + \par\endgroup +} +% \end{macrocode} +% \end{macro} + +% \section{Acknowledgements Environment} + +% \begin{macro}{acknowledgements} +% \begin{macrocode} +\newenvironment{acknowledgements}{% + \chapter*{\acknowledgename} + \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeTextUppercase{\acknowledgename}}{\acknowledgename}} + \doublespacing + \begingroup +}{\par\endgroup} +% \end{macrocode} +% \end{macro} + +% \section{Land Acknowledgements Environment} +%University of Maine graduate students are expected to include a statement in their final thesis or dissertation that acknowledges that their graduate study has taken place on the ancestral lands of the Wabanaki Tribal Nations. The Graduate School acting through the Graduate Board recommends two nonexclusive options for a tribal land acknowledgement. The first option is to include the statement that was developed by the President’s Council on Diversity, Equity, and Inclusion and adopted by the University of Maine in the acknowledgments section of the thesis/dissertation. +%\footnote{The `glsa` command supports this default option.} +%The second option, which may be especially relevant to graduate students undertaking qualitative research studies is to include a researcher positionality statement in the thesis/dissertation. +%\footnote{The LandAcknowledgements Enviornment supports this option.} +% +%Graduate programs supporting option two should provide resources to graduate students electing this option. The development of a researcher positionality statement that acknowledges the land may be used to complement the formal University land acknowledgment statement or may be used as an alternative to this statement. +% +%\subsection{Custom Land Acknowledgements} +% \begin{macro}{landacknowledgements} +% \begin{macrocode} +\newenvironment{landacknowledgements}{% + \chapter*{\landacknowledgename} + \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeTextUppercase{\landacknowledgename}}{\landacknowledgename}} + \doublespacing + \begingroup +}{ + \cleardoublepage + \par\endgroup +} +% \end{macrocode} +% \end{macro} + +% \subsection{Graduate School Land Acknowledgement} +% Default GLSA Land Acknowledgement. Please check to see if this has been updated and file an issue as necessary to patch. +% \begin{macro}{glsa} +% \begin{macrocode} +\newcommand{\glsa}{% + \chapter*{UNIVERSITY OF MAINE GRADUATE SCHOOL LAND ACKNOWLEDGMENT} + The University of Maine recognizes that it is located on Marsh Island in the homeland of Penobscot people, where issues of water and territorial rights, and encroachment upon sacred sites, are ongoing. Penobscot homeland is connected to the other Wabanaki Tribal Nations— the Passamaquoddy, Maliseet, and Micmac—through kinship, alliances, and diplomacy. The University also recognizes that the Penobscot Nation and the other Wabanaki Tribal Nations are distinct, sovereign, legal and political entities with their own powers of self-governance and self-determination. + \vfill + \clearpage +} +% \end{macrocode} +% \end{macro} + +% \section{Pagination} +% \begin{itemize} +% \item Pagination: Check pagination carefully. Account for all pages. +% \item The Title Page is counted as page “i” but the number does not appear on the page. +% \item Excluding the Abstract, all other pages of the thesis are numbered including display (optional) pages. +% \item The preliminary pages, starting with the Copyright Notice (if included), are marked by lowercase Roman numerals (ii, iii, iv, v, vi, etc.). +% \item Beginning with the first page of the text, all pages including the appendices, are numbered consecutively with Arabic numerals (1, 2, 3, 4, etc.). The following table displays the proper pagination of all parts of the thesis and which pages should be listed on the Table of Contents. +% \item Page numbers appear either on the top right or bottom center of the page. Page numbers need not fall within the required margins of the text, yet they must not appear closer than half an inch from the top, one inch from the right, or half an inch from the bottom edge of the page. The page numbers’ location and font style must be consistent throughout the manuscript. +% \end{itemize} +% \begin{macro}{\preliminary} +% Contents following this tag are front matter with roman numeral page numbering +% \begin{macrocode} +\newcommand{\preliminary}{% + \pagenumbering{roman} + \setcounter{tocdepth}{1} +% \end{macrocode} +% Sets the ToC depth to chapters and above +% \begin{macrocode} + \setcounter{secnumdepth}{1} +} +% \end{macrocode} +% Sets the section numbering depth to chapters and above +% \end{macro} +% \begin{macro}{\mainmatter} +% Contents following this tag are considered chapters +% \begin{macrocode} +\newcommand{\mainmatter}{% + \cleardoublepage + \doublespacing + \pagenumbering{arabic} + \setcounter{tocdepth}{\value{secnumdefault}} + \setcounter{secnumdepth}{\value{secnumdefault}} +} +% \end{macrocode} +% \end{macro} + +% \section{Biography Environment} +% The Biography of the Author page is the LAST page of the thesis. +% A biography of the candidate must be included in the thesis. +% +% For privacy reasons, students may exclude personal information. In such a case, the only line on the biography will read: +% “`Name/Pronoun` is/are a candidate for the `DEGREE TYPE` degree in `FIELD OF STUDY` from The University of Maine in `Month` `Year`.” +% If a student chooses to include a biography, it must be written in the third person. The absolute last line MUST read: +% “`Name/Pronoun` is/are a candidate for the `DEGREE TYPE` degree in `FIELD OF STUDY` from The University of Maine in `Month` `Year`.” +% \begin{macro}{biography} +% \begin{macrocode} +\newenvironment{biography}{% + \chapter*{\bioname} + \addtocontents{toc}{\protect\nopagebreak} + \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeTextUppercase{\bioname}}{\bioname}} + \begingroup + \doublespacing + \thispagestyle{plain} +}{% +% \end{macrocode} +% This section adds the required text as the last sentance of the biography. +% \begin{macrocode} + \par + \ifx\@authorpronoun\empty + \@author + \else + \@authorpronoun + \fi% + \ is a candidate for the \@degree\ degree in \@program\ from The University of Maine in \@submitdate.\par\endgroup +} +% \end{macrocode} +% \end{macro} + +% \section{Copyright Page} +% Unless the manuscript has been formally registered (copyrighted), this page is optional. +% If the student chooses to acknowledge his or her rights as an author, a copyright notice should be placed as the sole text on a page immediately following the title page. +% The page is numbered but a listing does not appear on the Table of Contents. +% The copyright notice is centered vertically and horizontally within the margins. +% Unless there are special terms under which the work has been copyrighted the text of the notice may take either of the two forms below. +% Consider Creative Commons as an option for obtaining copyright. +% +% Use of Third-Party Content: For additional information regarding the use of copyrighted materials, please visit the U.S. Copyright Office website at http://www.copyright.gov +% \begin{macro}{\copyrightpage} +% \begin{macrocode} +\newcommand{\copyrightpage}{% + \setcounter{page}{3} +% \end{macrocode} +% we must manually set the copyright page because of the runtime call of preliminary. +% \begin{macrocode} + \copyrightpagetrue + \onehalfspacing + \thispagestyle{plain} + \hbox{ } + \vfill + \begin{center} + \copyright \the\year{} \space \@author\\ + All Rights Reserved + \end{center} + \vfill + \clearpage +} +% \end{macrocode} +% \end{macro} +% \section{Dedication Environment} +% This page is for the author to express professional and/or personal indebtedness. +% Permission(s) to use previously copyrighted materials, receipt of grant funds, recognition of “readers”, etc. are acknowledged on this page. +% Students must be consistent with the use of the third (“the author”) or first person throughout. +% This page is optional, but if included, it is paginated (lowercase Roman numerals) and listed in the Table of Contents. +% +% The use of copyrighted materials can be mentioned on the Acknowledgments page. Any copyright permission letters related to the manuscript should be included in an appendix. +% \begin{macro}{dedication} +% \begin{macrocode} +\newenvironment{dedication}{% + \chapter*{\dedicationname} + \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeTextUppercase{\dedicationname}}{\dedicationname}} + \vskip 0.5in + \doublespacing + \begingroup + \begin{center} +}{\end{center}\par\endgroup} +% \end{macrocode} +% \end{macro} + +% \section{Preface Environment} +% This is an optional section in the front matter. +% \begin{macro}{preface} +% \begin{macrocode} +\newenvironment{preface}{% + \chapter*{\prefacename} + \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeTextUppercase{\prefacename}}{\prefacename}} + \doublespacing + \begingroup\setcounter{secnumdepth}{0} +}{\setcounter{secnumdepth}{\value{secnumdefault}}\par\endgroup} +% \end{macrocode} +% \end{macro} + +% \section{Custom Formatting for References} +% The graduate school allows for field-specific citation styles, but requires. +% Note that the citation style is specified in the class options above and implemented with Biblatex and Biber. +% +% The references command will render the references on a new page. +% \begin{macrocode} +\newcommand{\references}{% + \cleardoublepage + \singlespacing +% \end{macrocode} +% The references are added to the table of contents as a chapter. +% \begin{macrocode} + \phantomsection + \addcontentsline{toc}{chapter}{\texorpdfstring{\MakeTextUppercase{\bibname}}{\bibname}} +% \end{macrocode} +% The bibliography is printed from Biblatex and Biber. +% \begin{macrocode} + \printbibliography[title=\bibname] +} +% \end{macrocode} +% Double space between entries in the bibliography, per graduate school requirements. +% \begin{macrocode} +\setlength\bibitemsep{\baselineskip} +% \end{macrocode} + +% \section{Leagacy Document Markup} +% +% This command is a custom macro that discards its argument, effectively making the text disappear. It doesn't rely on any external package for this functionality. +% \begin{macro}{ignore} +% \begin{macrocode} +\newcommand{\ignore}[1]{} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \section{Future Work: Class Development Needs} +% \subsection{Local Names and Functions} +% This package has a number of local functions and names that should not be called outside of the class. These should be refactored appropriately. +% \subsection{Exposing Options} +% There are a few parameters that would be useful to expose to the user to help them fine tune their document if there are small differences in font, spacing, etc. +% +% \Finale + +\endinput diff --git a/template/.latexmkrc b/template/.latexmkrc new file mode 100644 index 0000000..a0d331d --- /dev/null +++ b/template/.latexmkrc @@ -0,0 +1,8 @@ +# Use pdflatex +$pdflatex = 'lualatex -file-line-error %O %S'; +$pdf_mode = 1; + +## +## Build directory +## +$out_dir = '_build'; diff --git a/template/README.md b/template/README.md new file mode 100644 index 0000000..3bdfa3f --- /dev/null +++ b/template/README.md @@ -0,0 +1,7 @@ +# Run Latexmk to compile the thesis. + +```bash +latexmk main.tex +``` + +See maine-thesis documentation for more information \ No newline at end of file diff --git a/template/appendix/AppA.tex b/template/appendix/AppA.tex new file mode 100644 index 0000000..2df95a0 --- /dev/null +++ b/template/appendix/AppA.tex @@ -0,0 +1,5 @@ +\chapter{My First Appendix} %Appendix title + +\blindenumerate[10] + +\endinput \ No newline at end of file diff --git a/template/appendix/AppB.tex b/template/appendix/AppB.tex new file mode 100644 index 0000000..af85d75 --- /dev/null +++ b/template/appendix/AppB.tex @@ -0,0 +1,8 @@ +\chapter{My Second Appendix} %Appendix title +Appendix B text goes here. + +\blinditemize + +\blinddescription + +\endinput \ No newline at end of file diff --git a/template/front/abstract.tex b/template/front/abstract.tex new file mode 100644 index 0000000..d2a8294 --- /dev/null +++ b/template/front/abstract.tex @@ -0,0 +1,5 @@ +% Abstract text here, either typed in directly or included using an `\input{}' command + +\blindtext % this generates blind text + +\endinput \ No newline at end of file diff --git a/template/front/acknowledgements.tex b/template/front/acknowledgements.tex new file mode 100644 index 0000000..6f01360 --- /dev/null +++ b/template/front/acknowledgements.tex @@ -0,0 +1,4 @@ +% Acknowledgments text here +\Blindtext + +\endinput \ No newline at end of file diff --git a/skeleton/Biography.tex b/template/front/biography.tex old mode 100755 new mode 100644 similarity index 75% rename from skeleton/Biography.tex rename to template/front/biography.tex index d9287b7..cce2ee3 --- a/skeleton/Biography.tex +++ b/template/front/biography.tex @@ -1,5 +1,7 @@ \begin{biography} % Biography of the author -% Biography text here. + +\blindtext + \end{biography} \endinput \ No newline at end of file diff --git a/template/front/customlist.tex b/template/front/customlist.tex new file mode 100644 index 0000000..b7113c1 --- /dev/null +++ b/template/front/customlist.tex @@ -0,0 +1,5 @@ +%\begin{thesislist}{...} % Replace the ... with name of the things being listed here + % Contents of list + %\end{thesislist} + +\endinput \ No newline at end of file diff --git a/template/front/dedication.tex b/template/front/dedication.tex new file mode 100644 index 0000000..f369663 --- /dev/null +++ b/template/front/dedication.tex @@ -0,0 +1,9 @@ +% Dedication text here + +\begin{center} + +\vspace*{3cm} +\blindtext +... +\end{center} +\endinput \ No newline at end of file diff --git a/template/front/landacknowledgement.tex b/template/front/landacknowledgement.tex new file mode 100644 index 0000000..d329887 --- /dev/null +++ b/template/front/landacknowledgement.tex @@ -0,0 +1,4 @@ +%% additional land acknowledgements here +%% UMaine Land acknwoledgement included in the template + +\endinput \ No newline at end of file diff --git a/template/front/layabstract.tex b/template/front/layabstract.tex new file mode 100644 index 0000000..5673d9b --- /dev/null +++ b/template/front/layabstract.tex @@ -0,0 +1,5 @@ +% Lay abstract text here, either typed in directly or included using an `\input{}' command + +\blindtext % this generates blind text + +\endinput \ No newline at end of file diff --git a/template/front/preface.tex b/template/front/preface.tex new file mode 100644 index 0000000..a5eaf53 --- /dev/null +++ b/template/front/preface.tex @@ -0,0 +1,3 @@ +% Preface text here +\Blindtext +\endinput \ No newline at end of file diff --git a/template/main.tex b/template/main.tex new file mode 100644 index 0000000..48cc8b3 --- /dev/null +++ b/template/main.tex @@ -0,0 +1,31 @@ +\documentclass[apa, multiappendices, citestyle=apa, 12pt]{maine-thesis} % Default options 12pt and final copy +% Use the draft option for faster compiling. +%% Default font is Garamond 12 pt (using EB Garamond). Approved list + +%% ADD PACKAGES HERE AS NEEDED +\usepackage[english]{babel} %for dummy text generation +\usepackage{blindtext} %for dummy text generation + +\addbibresource{references.bib} + +\input{skeleton/metadata} + +% Begin the document. +\begin{document} + +\preliminary +% Note that the title page does not display in draft mode. The document will start at copyright. +\maketitle + +\input{skeleton/front} + +\mainmatter +\input{skeleton/chapters} + +\references % Inserts and formats the reference section. + +\input{skeleton/appendicies} + +\input{front/biography} + +\end{document} \ No newline at end of file diff --git a/template/references.bib b/template/references.bib new file mode 100644 index 0000000..7499352 --- /dev/null +++ b/template/references.bib @@ -0,0 +1,28 @@ +@string{ anch-ie = {Angew.~Chem. Int.~Ed.} } +@string{ cup = {Cambridge University Press} } +@string{ dtv = {Deutscher Taschenbuch-Verlag} } +@string{ hup = {Harvard University Press} } +@string{ jams = {J.~Amer. Math. Soc.} } +@string{ jchph = {J.~Chem. Phys.} } +@string{ jomch = {J.~Organomet. Chem.} } +@string{ pup = {Princeton University Press} } + +@BOOK{Silberschatz2005, + AUTHOR = {Silberschatz, Abraham AND Galvin, Peter Baer AND Gagne, Greg}, + YEAR = {2005}, + TITLE = {Operating System Concepts}, + EDITION = {7. Auflage}, + ISBN = {978-0-471-69466-3}, + PUBLISHER = {John Wiley \& Sons}, + ADDRESS = {New York}, +} + +@BOOK{Silberschatz2007, + AUTHOR = {Silberschatz, Abraham AND Gagne, Greg}, + YEAR = {2007}, + TITLE = {Operating System Concepts}, + EDITION = {8. Auflage}, + ISBN = {978-0-471-69496-7}, + PUBLISHER = {John Wiley \& Sons}, + ADDRESS = {New York}, +} \ No newline at end of file diff --git a/template/skeleton/appendicies.tex b/template/skeleton/appendicies.tex new file mode 100644 index 0000000..8f38418 --- /dev/null +++ b/template/skeleton/appendicies.tex @@ -0,0 +1,6 @@ +\begin{appendices} + + \input{appendix/AppA} + \input{appendix/AppB} +\end{appendices} +\endinput \ No newline at end of file diff --git a/template/skeleton/chapters.tex b/template/skeleton/chapters.tex new file mode 100644 index 0000000..88f7d35 --- /dev/null +++ b/template/skeleton/chapters.tex @@ -0,0 +1,7 @@ +% Main text of the thesis. Use of the `\input' command will make later editing much easier. + +\input{thesis/Ch1} +\input{thesis/Ch2} +\input{thesis/Ch3} + +\endinput \ No newline at end of file diff --git a/template/skeleton/front.tex b/template/skeleton/front.tex new file mode 100644 index 0000000..02ae0b7 --- /dev/null +++ b/template/skeleton/front.tex @@ -0,0 +1,35 @@ +\copyrightpage{} + +\glsa + +%\begin{landacknowledgements} +%\input{front/landacknowledgement} +%\end{landacknowledgements} + +\begin{abstract} + \input{front/abstract} +\end{abstract} + +\begin{layabstract}{...}% Replace the ... with the list of keywords + \input{front/layabstract} +\end{layabstract} + +% The optional preface, dedication, and acknowledgements environments are included similar to the abstract environment + +\begin{dedication} +\input{front/dedication} +\end{dedication} + +\begin{acknowledgements} +\input{front/acknowledgements} +\end{acknowledgements} + +% Commands for the required lists +\tableofcontents +\ifdraft{\listofchanges}\fi +\listoftables % Include only if there are tables in the thesis +\listoffigures % Include only if there are figures in the thesis + +%\input{front/CustomList} %% example of a custom list format for the TOC + +\endinput diff --git a/template/skeleton/metadata.tex b/template/skeleton/metadata.tex new file mode 100644 index 0000000..23ac190 --- /dev/null +++ b/template/skeleton/metadata.tex @@ -0,0 +1,20 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Replace contents of {...} with your own information. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\title{The Thesis Requirements of The Graduate School\\ at The University of Maine} % Title of thesis + +\author{Mary Morstan} % Author's name: First Middle Last +\degreesheld{Bachelor of Medicine, University of Edinburg \\ +Master of Surgery, University of Edinburg} % Previously earned degree(s), institution(s) and year(s). +\degree{Doctor of Medicine} % Degree to be granted +\program{School of Medicine} % Degree granting department or program +\submitdate{May 1885} % Month and year of graduation (do not separate with a comma) + +\principaladvisor[Dr. Seuss]{Dr. Seuss, Professor of Literature} % Advisor's [short title and name]{name, long title} + +\firstreader{Dr. Dolittle, Vetinary School} +\secondreader{Dr Watson, Medical School} +\thirdreader{Dr. Digory Kirke, Professor of Geography of Magical Lands} + +\endinput \ No newline at end of file diff --git a/template/thesis/Ch1.tex b/template/thesis/Ch1.tex new file mode 100644 index 0000000..b260037 --- /dev/null +++ b/template/thesis/Ch1.tex @@ -0,0 +1,5 @@ +\chapter{My First Chapter} %Chapter title + +\blindmathpaper + +\endinput \ No newline at end of file diff --git a/template/thesis/Ch2.tex b/template/thesis/Ch2.tex new file mode 100644 index 0000000..f787e02 --- /dev/null +++ b/template/thesis/Ch2.tex @@ -0,0 +1,28 @@ +\chapter{My Second Chapter} %Chapter title + +\blindtext +\input{thesis/figures/fig1.tex} + +\section{Level 1 Section} +\blindtext +\parencite{Silberschatz2005} +\blindtext + +%\input{thesis/figures/fig1.tex} + +\subsection{Level 2 Section} +\blindtext + +\subsubsection{Level 3 Section} +\blindtext[3] + +\paragraph{Level 4 Section} +\blindtext[2] + +\section{Second Level 1 Section} +\blindtext + +\subsection{Second Level 2 Section in Second Level 1 Section} +\blindtext + +\endinput \ No newline at end of file diff --git a/template/thesis/Ch3.tex b/template/thesis/Ch3.tex new file mode 100644 index 0000000..161917e --- /dev/null +++ b/template/thesis/Ch3.tex @@ -0,0 +1,26 @@ +\chapter{My Third Chapter} %Chapter title + +\blindtext + +\section{Level 1 Section} +\blindtext +\parencite{Silberschatz2007} + +\subsection{Level 2 Section} +\blindtext +\input{thesis/tables/table1.tex} + +\subsubsection{Level 3 Section} +\blindtext[3] +\input{thesis/tables/table2.tex} + +\section{Second level 1 Section} +\blindtext +\begin{quote} + The idea that disease was caused by entry into the body of imperceptible particles is of ancient date. It was expressed by Roman encyclopaedist Marcus Terentius Varro as early as 100 BCE, by Girolamo Fracastoro in 1546, by Athanasius Kircher and Pierre Borel about a century later, and by Francesco Redi, who in 1684 wrote his \textit{Osservazioni intorno agli animali viventi che si trovano negli animali viventi} (Observations on Everything must have a parent, he wrote; only life produces life.) The germ theory of disease would not be accepted widely for another 1,900 years. +\end{quote} + +\subsection{Second Level 2 Section in Second Level 1 Section} +\blindtext + +\endinput \ No newline at end of file diff --git a/template/thesis/figures/fig1.tex b/template/thesis/figures/fig1.tex new file mode 100644 index 0000000..d6f8c76 --- /dev/null +++ b/template/thesis/figures/fig1.tex @@ -0,0 +1,9 @@ +\begin{figure}[] + \centering + \includegraphics[width=5cm]{example-image-a} + \caption[Short Title for My Example Figure]{This is an example image from the Latex for testing mwe. \blindtext} + %check caption package for correct usage. currently the caption isn't displayed + \label{fig:example-a} +\end{figure} + +\endinput \ No newline at end of file diff --git a/template/thesis/tables/table1.tex b/template/thesis/tables/table1.tex new file mode 100644 index 0000000..3d57b85 --- /dev/null +++ b/template/thesis/tables/table1.tex @@ -0,0 +1,15 @@ +\begin{table}[h!] + \centering + \begin{tabularx}{\linewidth}{p{0.25\linewidth}p{0.25\linewidth}p{0.15\linewidth}X} + \toprule + \textbf{Vasomotor Change} & \textbf{Affected Region} & \textbf{Frequency} & \textbf{Clinical Observation} \\ + \midrule + Peripheral Vasodilation & Lower Limbs & Common & Skin appears flushed and warm; patient reports a burning sensation. \\ + Localized Hyperhidrosis & Hands and Feet & Occasional & Excessively sweaty palms and soles, often without physical exertion. \\ + Acrocyanosis & Distal Extremities & Rare & Bluish discoloration of the skin, particularly fingers and toes, due to poor circulation. \\ + Facial Flushing & Face and Neck & Rare & Sudden onset of redness and warmth in the face, sometimes triggered by stress. \\ + \bottomrule + \end{tabularx} + \caption[Synthetic Data]{A synthetic table generated by gemini to test the mwe. \blindtext} + \label{tab:vasomotor_changes1} +\end{table} \ No newline at end of file diff --git a/template/thesis/tables/table2.tex b/template/thesis/tables/table2.tex new file mode 100644 index 0000000..3a0b503 --- /dev/null +++ b/template/thesis/tables/table2.tex @@ -0,0 +1,15 @@ +\begin{table}[h!] + \centering + \begin{tabularx}{\linewidth}{p{0.25\linewidth}p{0.25\linewidth}p{0.15\linewidth}X} + \toprule + \textbf{Vasomotor Change} & \textbf{Affected Region} & \textbf{Frequency} & \textbf{Clinical Observation} \\ + \midrule + Peripheral Vasodilation & Lower Limbs & Common & Skin appears flushed and warm; patient reports a burning sensation. \\ + Localized Hyperhidrosis & Hands and Feet & Occasional & Excessively sweaty palms and soles, often without physical exertion. \\ + Acrocyanosis & Distal Extremities & Rare & Bluish discoloration of the skin, particularly fingers and toes, due to poor circulation. \\ + Facial Flushing & Face and Neck & Rare & Sudden onset of redness and warmth in the face, sometimes triggered by stress. \\ + \bottomrule + \end{tabularx} + \caption[Vasomotor Changes in Tabes Dorsalis]{A synthetic table generated by gemini to test the mwe. \blindtext} + \label{tab:vasomotor_changes2} +\end{table} \ No newline at end of file