% Turabian Formatting for LaTeX % % Based on the Chicago Manual of Style (16th edition) and Kate Turabian's A % Manual for Writers of Research Papers, Theses, and Dissertations (8th edition) % % ============================== % Copyright 2013-2016 Omar Abdool % % This work may be distributed and/or modified under the conditions of the LaTeX % Project Public License (LPPL), 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. % % LPPL Maintenance Status: maintained (by Omar Abdool) % % This work consists of the files: turabian-formatting.sty, % turabian-researchpaper.cls, turabian-thesis.cls, turabian-formatting-doc.tex, % and turabian-formatting-doc.pdf (in addition to the README file). % % ============================== % % \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{turabian-formatting}[2016/07/12 Turabian Formatting] % Flags adjusted with package options \newif\if@optraggedright\@optraggedrightfalse \newif\if@authordateformat\@authordateformatfalse \newif\if@appendbibformat\@appendbibformattrue \newif\if@endnotesformat\@endnotesformatfalse % Declare package options \DeclareOption{raggedright}{\@optraggedrighttrue} \DeclareOption{authordate}{\@authordateformattrue} \DeclareOption{noadjustbib}{\@appendbibformatfalse} \DeclareOption{endnotes}{\@endnotesformattrue} \ProcessOptions\relax \RequirePackage{etoolbox} % Default margin size of 1 inch on all sides \setlength\textwidth{\paperwidth} \addtolength\textwidth{-2in} \setlength\hoffset{\z@} \setlength\textheight{\paperheight} \addtolength\textheight{-2in} \setlength\voffset{\z@} \setlength\oddsidemargin{\z@} \setlength\evensidemargin{\z@} % Default header height set to height of 1 line of text \ifcase \@ptsize \setlength\headheight{10pt} \or \setlength\headheight{11pt} \or \setlength\headheight{12pt} \fi % Set header top and footer baseline to 0.5in from page edges \setlength\topmargin{-0.5in} \setlength\headsep{0.5in} \addtolength\headsep{-\headheight} \setlength\footskip{0.5in} % Set default text spacing as double spaced \RequirePackage{setspace} \setstretch{2} % Preserve length of one line of text for subsequent use \newlength\tf@singlelineskip \setlength\tf@singlelineskip{0.5\baselineskip} % Set default paragraph indent \setlength\parindent{0.5in} % Renew \raggedright to preserve paragraph indent and set \@optraggedright to true \def\raggedright{% \let\\\@centercr\@rightskip\@flushglue \rightskip\@rightskip \leftskip\z@skip \@optraggedrighttrue} % Set \raggedright if raggedright option true \if@optraggedright \raggedright \fi % Prevent widowed text with 2 line default \PassOptionsToPackage{defaultlines=2, all}{nowidow} \AtEndPreamble{% \@ifpackageloaded{nowidow}% {}% {\RequirePackage{nowidow}}} % Footnote layout and formatting \PassOptionsToPackage{bottom, marginal}{footmisc} \if@endnotesformat \PassOptionsToPackage{perpage}{footmisc} \fi \RequirePackage{footmisc} \setlength\footnotemargin{\parindent} % Chicago symbols used when needed \setfnsymbol{chicago} % Separation between footnotes based on text size \ifcase \@ptsize \setlength\footnotesep{16.65pt} \or \setlength\footnotesep{18.7pt} \or \setlength\footnotesep{20.4pt} \fi \setlength{\skip\footins}{\footnotesep} % Readjust default footnote rule size and placement \renewcommand{\footnoterule}{% \vspace*{-3pt} \hrule width 2in height 0.4pt \vspace*{-4pt}} % Command to set footnote punctuation \newcommand{\tf@setfnpunct}[1]{\def\tf@thefnpunct{#1\,\,}} \tf@setfnpunct{.} % Renew command for typesetting footnotes \renewcommand{\@makefntext}[1]{% \if@optraggedright \raggedright% \fi \setlength\parindent{\footnotemargin}% \@thefnmark\tf@thefnpunct#1} % Redefine headings page style (places page number in header) \def\ps@headings{% \let\@oddfoot\@empty \let\@evenfoot\@empty \def\@evenhead{\thepage\hfil\slshape\leftmark} \def\@oddhead{{\slshape\rightmark}\hfil\thepage} \let\@mkboth\@gobbletwo \let\markboth\@mkboth \let\chaptermark\@gobble \let\sectionmark\@gobble} % Set myheadings page style to be the same as the headings page style \let\ps@myheadings\ps@headings % Set default page style and page numbering \pagestyle{headings} \pagenumbering{arabic} % Adjust empty page style if twoside option used \if@twoside \def\cleardoublepage{% \clearpage \ifodd\c@page \else \hbox{} \thispagestyle{empty} \newpage \fi} \fi % Thesis-related document structure formatting \ifcsdef{chapter}% {% \providebool{@mainmatter} \@mainmattertrue \def\frontmatter{% \cleardoublepage \@mainmatterfalse \pagenumbering{roman} \pagestyle{empty}} \def\mainmatter{% \cleardoublepage \@mainmattertrue \pagenumbering{arabic} \pagestyle{headings} \addtocontents{toc}{\protect\addvspace{1\baselineskip}}} \def\backmatter{% \if@openright \cleardoublepage \else \clearpage \fi \@mainmatterfalse \setcounter{chapter}{0}% \setcounter{figure}{0}% \setcounter{table}{0}% \addtocontents{toc}{\protect\addvspace{1\baselineskip}}} }% {} % Headings formatting of \chapter, \section, \subsection, and \subsubsection % Top section command name (chapter or section?) \ifcsdef{chapter}% {\def\tf@topsecname{chapter}}% {\def\tf@topsecname{section}} \setcounter{secnumdepth}{0} % \section and \chapter formatting \ifcsdef{chapter}% {% If \chapter defined... % \chapter formatting \def\tf@chapformat{\normalfont\bfseries\normalsize\singlespacing\centering} \def\tf@chapcounter{\refstepcounter{chapter}} \def\@chapter[#1]#2{% \ifnum \c@secnumdepth >\m@ne \if@mainmatter \tf@chapcounter \typeout{\@chapapp\space\thechapter.}% \addcontentsline{toc}{chapter}% {\protect\numberline{\@chapapp\space\thechapter.}#1}% \else \addcontentsline{toc}{chapter}{#1}% \fi \else \addcontentsline{toc}{chapter}{#1}% \fi \chaptermark{#1}% \@makechapterhead{#2}% \@afterheading} \def\@makechapterhead#1{% { \tf@chapformat \ifnum \c@secnumdepth >\m@ne \if@mainmatter \@chapapp\space \thechapter \par\nobreak \vspace*{1\baselineskip}% \fi \fi \interlinepenalty\@M \ifstrempty{#1}% {}% {% #1\par\nobreak \vspace{1\baselineskip}% }}} % \chapter* formatting \def\@makeschapterhead#1{% { \tf@chapformat \interlinepenalty\@M #1\par\nobreak \vspace{1\baselineskip}}} }% {% If \chapter not defined, differentiate and reformat \section* % \section* adjustment to space after heading \newif\if@adjustssection\@adjustssectiontrue \newlength\tf@ssectafterskip \setlength\tf@ssectafterskip{1\p@} % Command to disable differentiate and reformat \section* \gdef\noadjustssect{\@adjustssectionfalse} % \section adjustment to space after heading \newif\if@tf@adjustsection\@tf@adjustsectionfalse \newlength\tf@sectafterskip \setlength\tf@sectafterskip{1\p@} % Redefine \@startsection to differentiate starred version \def\@startsection#1#2#3#4#5#6{% \if@noskipsec \leavevmode \fi \par \@tempskipa #4\relax \@afterindenttrue \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse \fi \if@nobreak \everypar{}% \else \addpenalty\@secpenalty\addvspace\@tempskipa \fi \setlength\tf@ssectafterskip{#5} \if@adjustssection \ifstrequal{#1}{section}% {\setlength\tf@ssectafterskip{\tf@singlelineskip}}% {}% \fi \setlength\tf@sectafterskip{#5} \if@tf@adjustsection \ifstrequal{#1}{section}% {\setlength\tf@sectafterskip{\tf@singlelineskip}}% {}% \fi \@ifstar {\@ssect{#3}{#4}{\tf@ssectafterskip}{#6}}% {\@dblarg{\@sect{#1}{#2}{#3}{#4}{\tf@sectafterskip}{#6}}}} % Default formatting between \@svsec and heading \protected@edef\tf@secsep#1#2{\@empty} % Default formatting of TOC \addcontentsline \def\tf@tocline#1{% \protect\numberline{\csname the#1\endcsname\quad}} % Redefine \@sect to support variable formatting (i.e. appendixes) \def\@sect#1#2#3#4#5#6[#7]#8{% \ifnum #2>\c@secnumdepth \let\@svsec\@empty \else \refstepcounter{#1}% \protected@edef\@svsec{\@seccntformat{#1}\relax}% \fi \@tempskipa #5\relax \ifdim \@tempskipa>\z@ \begingroup #6{% \@hangfrom{\hskip #3\relax\@svsec}% \interlinepenalty \@M \tf@secsep{#1}{#8}#8\@@par}% \endgroup \csname #1mark\endcsname{#7}% \addcontentsline{toc}{#1}{% \ifnum #2>\c@secnumdepth \else \tf@tocline{#1}% \fi #7}% \else \def\@svsechd{% #6{\hskip #3\relax\@svsec #8}% \csname #1mark\endcsname{#7}% \addcontentsline{toc}{#1}{% \ifnum #2>\c@secnumdepth \else \protect\numberline{\csname the#1\endcsname\quad}% \fi #7}}% \fi \@xsect{#5}} } % \subsection and \subsubsection formatting \renewcommand{\section}{% \@startsection{section}{1}% {\z@}% {-\tf@singlelineskip}% {1\p@}% {\normalfont\bfseries\normalsize\singlespacing\centering}} \renewcommand{\subsection}{% \@startsection{subsection}{2}% {\z@}% {-\tf@singlelineskip}% {1\p@}% {\normalfont\mdseries\normalsize\singlespacing\centering}} \renewcommand{\subsubsection}{% \@startsection{subsubsection}{3}% {\z@}% {-\tf@singlelineskip}% {1\p@}% {\normalfont\bfseries\normalsize\singlespacing\raggedright}} % Title page commands for use with \maketitle \newcommand{\subtitle}[1]{\gdef\tf@subtitle{#1}} \subtitle{\@empty} \newcommand{\submissioninfo}[1]{\gdef\tf@submissioninfo{#1}} \submissioninfo{\@empty} \newcommand{\course}[1]{\gdef\tf@course{#1}} \course{\@empty} \newcommand{\institution}[1]{\gdef\tf@institution{#1}} \institution{\@empty} \newcommand{\department}[1]{\gdef\tf@department{#1}} \department{\@empty} \newcommand{\location}[1]{\gdef\tf@location{#1}} \location{\@empty} % Renew \maketitle (for research papers default) \if@titlepage % Formatting for titlepage option \renewcommand{\maketitle}{% \begin{titlepage}% \tf@setfnpunct{} \renewcommand*{\thefootnote}{\fnsymbol{footnote}} \let\footnoterule\relax \normalfont\normalsize\centering\singlespacing \parskip=1\baselineskip \vspace*{-2\baselineskip} \vspace*{0.333\paperheight} \vspace*{-1in} { \bfseries\@title\par% \tf@subtitle\par}% \vspace*{2.35in} \@author\@thanks\par \tf@course\par \tf@submissioninfo\par \@date\par \parskip=\z@ \end{titlepage}% \tf@emptymaketitle \cleardoublepage} \else % Formatting for notitlepage option \renewcommand{\maketitle}{% \thispagestyle{plain} { \renewcommand*{\thefootnote}{\fnsymbol{footnote}} \normalfont\normalsize\centering\singlespacing \parskip=1\baselineskip \vspace*{0.5in} \vspace*{-1.5\baselineskip} { \bfseries\@title\par% \tf@subtitle\par}% \vspace*{1\baselineskip} \@author\@thanks\par \tf@course\par \tf@submissioninfo\par \@date\par \vspace*{0.5in} \vspace*{-1\baselineskip}} \tf@emptymaketitle} \fi % Command for emptying/completing \maketitle \newcommand{\tf@emptymaketitle}{% % if not endnotes, reset footnote counter \if@endnotesformat \else \setcounter{footnote}{0} \fi % Clear command content at end of \maketitle \global\let\thanks\relax \global\let\maketitle\relax \global\let\@thanks\@empty \global\let\@author\@empty \global\let\@date\@empty \global\let\@title\@empty \global\let\tf@subtitle\@empty \global\let\tf@course\@empty \global\let\tf@institution\@empty \global\let\tf@department\@empty \global\let\tf@location\@empty \global\let\tf@submissioninfo\@empty \global\let\title\relax \global\let\author\relax \global\let\date\relax \global\let\subtitle\relax \global\let\course\relax \global\let\institution\relax \global\let\department\relax \global\let\location\relax \global\let\submissioninfo\relax} % Table of Contents formatting % Renew \tableofcontents with single spacing support \renewcommand{\tableofcontents}{% \ifstrequal{\tf@topsecname}{chapter}% {\pagestyle{plain}}% {\thispagestyle{plain}}% \expandafter\csname \tf@topsecname\endcsname*{\contentsname}% \@mkboth{\MakeUppercase\contentsname}{\MakeUppercase\contentsname}% \if@optraggedright \let\tf@tocrmarg\@tocrmarg \def\@tocrmarg{\tf@tocrmarg plus1fil} \fi \singlespacing% \vspace{-1\baselineskip} \@starttoc{toc}% \setstretch{2}}% % Right margin and number width formatting \def\@tocrmarg{0.5in} \def\@pnumwidth{0.2in} \ifcsdef{chapter}% {% If \chapter defined... \setcounter{tocdepth}{0} \renewcommand*{\l@chapter}[2]{% \ifnum \c@tocdepth >\m@ne \addpenalty{-\@highpenalty}% \setlength\@tempdima{7.5em}% \vskip 1\baselineskip { \parindent \z@ \rightskip \@tocrmarg \parfillskip -\rightskip \leavevmode \ifnum \c@tocdepth >\z@ \bfseries \fi \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par \penalty\@highpenalty} \fi} \renewcommand*{\l@section}{% \ifnum \c@tocdepth >\z@ \vskip 1\baselineskip \fi \@dottedtocline{1}{1.5in}{\z@}} \renewcommand*{\l@subsection}{% \ifnum \c@tocdepth >1 \vskip 1\baselineskip \fi \@dottedtocline{2}{2.0in}{\z@}} \renewcommand*{\l@subsubsection}{% \ifnum \c@tocdepth >2 \vskip 1\baselineskip \fi \@dottedtocline{3}{2.5in}{\z@}} }% {% If \chapter not defined, \section used instead \setcounter{tocdepth}{1} \renewcommand*{\l@section}[2]{% \ifnum \c@tocdepth >\z@ \addpenalty\@secpenalty \addvspace{1\baselineskip}% \setlength\@tempdima{\z@}% { \parindent \z@ \rightskip \@tocrmarg \parfillskip -\rightskip \leavevmode \ifnum \c@tocdepth >\@ne \bfseries \fi \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par} \fi} \renewcommand*{\l@subsection}{% \ifnum \c@tocdepth >1 \vskip 1\baselineskip \fi \@dottedtocline{2}{0.5in}{\z@}} \renewcommand*{\l@subsubsection}{% \ifnum \c@tocdepth >2 \vskip 1\baselineskip \fi \@dottedtocline{3}{1.0in}{\z@}} } % Figures, Tables, and Illustrations formatting % List label names of Figures and Tables \renewcommand{\listfigurename}{Figures} \renewcommand{\listtablename}{Tables} \AtEndPreamble{ \@ifpackageloaded{polyglosia}% {% \addto\captionsenglish{% \renewcommand{\listfigurename}{Figures} \renewcommand{\listtablename}{Tables}}% }{} \@ifpackageloaded{babel}% {% \addto\captionsenglish{% \renewcommand{\listfigurename}{Figures} \renewcommand{\listtablename}{Tables}}% }{}} % List of Figures \renewcommand{\listoffigures}{% \expandafter\csname \tf@topsecname\endcsname*{\listfigurename}% \@mkboth{\MakeUppercase\listfigurename}{\MakeUppercase\listfigurename}% \singlespacing% \vspace{-1\baselineskip} \@starttoc{lof} \setstretch{2}} \renewcommand*{\l@figure}[2]{% \addpenalty{-\@highpenalty}% \setlength\@tempdima{0.5in}% \vskip 1\baselineskip { \parindent \z@ \rightskip \@tocrmarg \parfillskip -\rightskip \leavevmode \advance\leftskip\@tempdima \hskip -\leftskip #1\nobreak\hfil \nobreak\hb@xt@\@pnumwidth{\hss #2}\par \penalty\@highpenalty}} % List of Tables \renewcommand{\listoftables}{% \expandafter\csname \tf@topsecname\endcsname*{\listtablename}% \@mkboth{\MakeUppercase\listtablename}{\MakeUppercase\listtablename}% \singlespacing% \vspace{-1\baselineskip} \@starttoc{lot} \setstretch{2}} \def\l@table{\l@figure} % List of Illustrations \newcommand{\listillustrationname}{Illustrations} \def\tf@illustrsection{\normalfont\bfseries\normalsize\singlespacing\noindent} \newcommand{\listofillustrations}{% \expandafter\csname \tf@topsecname\endcsname*{\listillustrationname}% \@mkboth{\MakeUppercase\listillustrationname}{\MakeUppercase\listillustrationname}% \singlespacing% \vspace{-1\baselineskip} {\tf@illustrsection Figures}\par\nopagebreak \@starttoc{lof} \vspace{1\baselineskip} {\tf@illustrsection Tables}\par\nopagebreak \@starttoc{lot} \setstretch{2}} % Figures and Tables: float positioning \setlength\textfloatsep{2\tf@singlelineskip} \setlength\floatsep{2\tf@singlelineskip minus 0.5\tf@singlelineskip} \setlength\intextsep{2\tf@singlelineskip minus 0.25\tf@singlelineskip} \def\fps@table{!htb} \def\fps@figure{!htb} % Figures and Tables: caption formatting \setlength\abovecaptionskip{\z@} \setlength\belowcaptionskip{\z@} \long\def\@makecaption#1#2{% \vskip\abovecaptionskip \if@optraggedright \raggedright% \fi \small#1. #2\par \vskip\belowcaptionskip} % Lists: enumerate and itemize \setlength\leftmargini{1.5\parindent} \setlength\leftmargin{\leftmargini} \setlength\leftmarginii{\parindent} \setlength\leftmarginiii{\parindent} \setlength\leftmarginiv{\parindent} \setlength\labelsep{.65em} \setlength\labelwidth{\parindent} \addtolength\labelwidth{-\labelsep} % Formatting command for both enumerate and itemize \def\tf@listformat{% \setlength\topsep{\z@} \setlength\itemsep{\z@} \setlength\parsep{\z@} \setlength\listparindent{\parindent}} % Format of enumerate list labels \renewcommand{\labelenumi}{\arabic{enumi}.} \renewcommand{\labelenumii}{\alph{enumii})} \renewcommand{\labelenumiii}{(\arabic{enumiii})} \renewcommand{\labelenumiv}{(\alph{enumiv})} % Redefine enumerate to include formatting command hook \def\tf@enumerateformat{\tf@listformat} \def\enumerate{% \ifnum \@enumdepth >\thr@@\@toodeep \else \advance\@enumdepth\@ne \edef\@enumctr{enum\romannumeral\the\@enumdepth}% \expandafter \list \csname label\@enumctr\endcsname {\usecounter\@enumctr% \def\makelabel##1{\hss\llap{##1}}% \tf@enumerateformat}% \fi} % Redefine itemize to include formatting command hook \def\tf@itemizeformat{\tf@listformat} \def\itemize{% \ifnum \@itemdepth >\thr@@\@toodeep \else \advance\@itemdepth\@ne \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% \expandafter \list \csname\@itemitem\endcsname {\def\makelabel##1{\hss\llap{##1}}% \tf@itemizeformat}% \fi} % Block quotation formatting \renewenvironment{quotation} { \list{}{% \setlength\listparindent{\parindent} \setlength\itemindent{\listparindent} \setlength\leftmargin{\parindent} % Adjust right margin based on raggedright option \if@optraggedright \setlength\rightmargin{\z@} \else \setlength\rightmargin{\leftmargin} \fi \setlength\parsep{\z@} % Place line spacing between text and quotation \ifnumequal{\baselinestretch}{1}% {\setlength\topsep{\baselineskip}}% {\setlength\topsep{\z@}}}% \singlespacing% \item\relax} {\endlist} % Set quote environment to be the same as the quotation environment \def\quote{\quotation} % Appendixes formatting \AtEndPreamble{% \let\tf@appendix\appendix \def\appendix{\@empty}} \newif\if@appendixes\@appendixesfalse % New appendixes environment \ifcsdef{chapter}% {% If \chapter defined... \newcounter{appendix} % appendixes environment resets figure and tables counts with "A." prefix \newenvironment{appendixes}% {% \@appendixestrue \@mainmattertrue \tf@appendix \def\tf@chapcounter{% \refstepcounter{appendix} \gdef\thechapter{\@Alph\c@appendix}} \setcounter{figure}{0} \setcounter{table}{0} \renewcommand{\thefigure}{A.\@arabic\c@figure} \renewcommand{\thetable}{A.\@arabic\c@table} }% {}% }% {% If \chapter not defined, using \section... % Adjust formatting of section headings for appendixes environment \def\tf@appendixsecfrmt{% \DeclareRobustCommand{\@seccntformat}[1]{% \ifstrequal{##1}{section}% {\appendixname\space \csname the##1\endcsname}% {\csname the##1\endcsname\quad}} \DeclareRobustCommand{\tf@secsep}[2]{% \ifstrequal{##1}{section}% {% \ifstrempty{##2}% {}% {% \par\nobreak \vspace{1\baselineskip}% }% }% {\@empty}} \def\tf@tocline##1{\appendixname\space \csname the##1\endcsname.\quad} \@tf@adjustsectiontrue} % Make appendixes environment \newenvironment{appendixes}% {% \@appendixestrue \setcounter{secnumdepth}{1} \tf@appendixsecfrmt \tf@appendix }% {% \setcounter{secnumdepth}{0}% \setcounter{section}{0}% \gdef\thesection{\@arabic\c@section}% }% } % thebibliography environment formatting (adjust \@openbib@code hook default) \setlength\bibindent{\parindent} \renewcommand\@openbib@code{% \singlespacing \setlength\leftmargin{\bibindent} \setlength\itemindent{-\bibindent} \addtolength\itemindent{\labelsep} \addtolength\itemindent{\labelwidth} \setlength\itemsep{\tf@singlelineskip} \setlength\parsep{\z@}} % biblatex-chicago: set formatting defaults % Provide warning if biblatex-chicago loaded before turabian-formatting \@ifpackageloaded{biblatex-chicago}% {% \PackageWarningNoLine{turabian-formatting}{Loading the 'biblatex-chicago' package after the 'turabian-formatting' package is recommended. See documentation for more information}% }% {} \PassOptionsToPackage% {isbn=false, autolang=other, footmarkoff, backend=biber}% {biblatex-chicago} \if@authordateformat \PassOptionsToPackage{authordate}{biblatex-chicago} \fi % Adjustments to \printbibliography formatting \if@appendbibformat \AtEndPreamble{% \@ifpackageloaded{biblatex}% {% \if@authordateformat \DefineBibliographyStrings{english}{% bibliography = {References}} \else \DefineBibliographyStrings{english}{% references = {Bibliography}} \fi \renewcommand{\bibsetup}{\singlespacing} \renewcommand{\bibitemsep}{1\baselineskip} \renewcommand{\bibhang}{0.5in} }% {}} \fi % endnotes package support: formatting \if@endnotesformat \RequirePackage{endnotes, xparse} % Changes footnote marker type and formatting \tf@setfnpunct{} \renewcommand*{\thefootnote}{\fnsymbol{footnote}} \PassOptionsToPackage{notetype=endonly}{biblatex-chicago} % Endnotes layout and formatting (based on if chapter is defined) \ifcsdef{chapter}% {% If \chapter defined... \let\tf@chapter\chapter \@addtoreset{endnote}{chapter} % Renew Notes heading formatted as \chapter* (also added to Table of Content) \renewcommand{\enoteheading}{% \tf@chapter*{\notesname}% \@mkboth{\MakeUppercase\notesname}{\MakeUppercase\notesname}% \addcontentsline{toc}{chapter}{\notesname}% \mbox{}\par% \vspace{-1.5\baselineskip}% \let\@afterindentfalse\@afterindenttrue \singlespacing}% % Renew \chapter command to: (1) reset endnotes counter at each chapter, and (2) add subheadings for each chapter in \endnotes formatting. \RenewDocumentCommand{\chapter}{som}{% \IfBooleanTF{#1}% {% if \chapter* \tf@chapter*{#3}% \setcounter{endnote}{0}% \addtoendnotes{% \noexpand\tf@enotedivider% {\noexpand\section*}{\unexpanded{#3}}}% }% {% if \chapter \IfNoValueTF{#2}% {\tf@chapter{#3}}% {\tf@chapter[#2]{#3}}% \if@mainmatter \addtoendnotes{% \noexpand\tf@enotedivider% {\noexpand\section*}{\@chapapp\space \thechapter}}% \else \addtoendnotes{% \noexpand\tf@enotedivider% {\noexpand\section*}{\unexpanded{#3}}}% \fi }} % Empty subheading divider before \theendnotes for use with \tf@enotedivider \preto{\theendnotes}{% \addtoendnotes{\noexpand\tf@enotedivider{}{}}} % Make endnote divider if not followed by another endnote divider \def\tf@enotedivider#1#2{\@ifnextchar\tf@enotedivider{}{#1{#2}}}% }% {% If \chapter not defined, Notes heading formatted as \section* \renewcommand{\enoteheading}{% \section*{\notesname}% \markboth{\notesname}{\notesname}% \addcontentsline{toc}{section}{\notesname}% \mbox{}\par% \vspace{-1.5\baselineskip}% \let\@afterindentfalse\@afterindenttrue \singlespacing}% }% % Make endnotes use of "_" not a special character when in text mode \appto{\enoteheading}{% \catcode`_=12 \begingroup\lccode`~=`_ \lowercase{\endgroup\let~}\sb \mathcode`_="8000} % Create \jobname.ent if not already defined to avoid missing file error \preto{\theendnotes}{% \IfFileExists{./\jobname.ent}% {}% {% \immediate\openout\@enotes=\jobname.ent\relax \immediate\write\@enotes{}% }} % Set default endnotes formatting \renewcommand{\enotesize}{\normalsize} \renewcommand{\enoteformat}{% \if@optraggedright \raggedright% \fi \setlength\parindent{\footnotemargin} \vspace{1\baselineskip} \theenmark.\,\,} \else % Define \theendnotes if endnotes package not loaded \@ifpackageloaded{endnotes}% {}% {\def\theendnotes{\@empty}} \fi