diff --git a/.github/workflows/test_compilation.yml b/.github/workflows/test_compilation.yml new file mode 100644 index 0000000..da76ebc --- /dev/null +++ b/.github/workflows/test_compilation.yml @@ -0,0 +1,46 @@ +name: Test LaTeX Compilation + +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + test: + runs-on: ubuntu-latest + + strategy: + matrix: + texlive_image: + [ + "TL2020-historic", + "TL2021-historic", + "TL2022-historic", + "TL2023-historic", + "latest-full", + ] + + container: + image: texlive/texlive:${{ matrix.texlive_image }} + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Compile LaTeX + run: | + cd src + cd figures + make + cd .. + make all + + - name: Upload PDF artifact + if: success() + uses: actions/upload-artifact@v4 + with: + name: pdf-${{ matrix.texlive_image }} + path: src/thesis.pdf diff --git a/README.md b/README.md index ae40893..c83415a 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,23 @@ # MIT PhD thesis template -by Max Opgenoord -This template is used to make [this thesis](http://web.mit.edu/mopg/www/papers/Opgenoord-PhD-2018.pdf). +This template is used to make [this thesis](https://dspace.mit.edu/handle/1721.1/120380). ## Usage -Use the provided `Makefile` to compile the text and the separate `Makefile` in the `src/figures` folder to compile the figures. -In case it does not compile, you are likely missing the Minion Pro and Myriad Pro fonts. -You can compile those on your machine using [FontPro](https://github.com/sebschub/FontPro). -It is quite a hassle though, so you can also comment out the Myriad Pro and Minion Pro fonts in `mitthesis.cls` and instead use the Palatino fonts (these are currently commented in `mitthesis.cls`). -Make sure you update the preamble for the figures as well, and update the text in the colophon (if you choose to use it). + +Use the provided [`Makefile`](src/Makefile) to compile the text and the separate figures [`Makefile`](src/figures/Makefile) to compile the figures. + +## Fonts + +If you want to use Minion Pro and Myriad Pro fonts in your thesis (which is what I used), +you'll need to compile those on your machine using [FontPro](https://github.com/sebschub/FontPro) +and then uncomment lines 186-187 in [`mitthesis.cls`](src/mitthesis) +and lines 11-12 in [`preamble_figures.tex`](src/figures/preamble_figures.tex). +Lastly, you should also update the text in the colophon (if you choose to use it). ## Customization + To customize it for your case, make sure to update your name and title in the following places: -- PDF metadata in `thesis.tex` -- Title page, abstract in `mitthesis.cls` (as well as adding your committee's info, bio info, etc.) -- Title and name on last page of doc in `thesis.tex` + +- PDF metadata in [`thesis.tex`](src/thesis.tex) +- Title page, abstract in [`mitthesis.cls`](src/mitthesis.cls) (as well as adding your committee's info, bio info, etc.) +- Title and name on last page of doc in [`thesis.tex`](src/thesis.tex) diff --git a/src/acknowledgements.tex b/src/acknowledgements.tex index cc7e0bf..014c5ad 100644 --- a/src/acknowledgements.tex +++ b/src/acknowledgements.tex @@ -9,4 +9,4 @@ \chapter*{Acknowledgements} \vspace{1em} \mbox{} \hfill \textit{Author}\\ \mbox{} \hfill Cambridge, Massachusetts\\ -\mbox{} \hfill August 2018 +\mbox{} \hfill August 2025 diff --git a/src/colophon.tex b/src/colophon.tex index 0c9c9eb..d81d1bc 100644 --- a/src/colophon.tex +++ b/src/colophon.tex @@ -6,8 +6,9 @@ \section*{Colophon} % \noindent This thesis has been typeset using \LaTeX{} in the Palatino font. \noindent This thesis has been typeset using \LaTeX{}, and compiled using \texttt{pdflatex}. -Minion Pro is used as both the text and display typeface. -The sans-serif text uses the \textsf{Myriad Pro} typeface, whereas monospaced text is typeset in \texttt{Bitstream Vera Mono}. +% Minion Pro is used as both the text and display typeface. The sans-serif text uses the \textsf{Myriad Pro} typeface, +Palatino is used as the text typeface, % comment this line if you end up using Minion Pro +whereas monospaced text is typeset in \texttt{Bitstream Vera Mono}. Line figures and illustrations were predominantly generated using the \href{https://ctan.org/pkg/pgf?lang=en}{Tikz} \LaTeX{} package, \acrshort{fem} data plots using \href{https://www.tecplot.com/}{Tecplot}, and renders using \href{https://www.blender.org/}{Blender}. \mbox{}\vspace{0.5pc}\\ \noindent Several books have influenced the style, typography, and graphic design of this thesis, in particular: @@ -20,6 +21,6 @@ \section*{Colophon} \noindent\textit{Very Long }\\ \textit{thesis title}\vspace{0.25pc}\\ -Author, September 2018 \vspace{1.25pc}\\ -\noindent \textcopyright\ Massachusetts Institute of Technology 2018. All rights reserved.\vspace{1pc} \\ +Author, September 2025 \vspace{1.25pc}\\ +\noindent \textcopyright\ Massachusetts Institute of Technology 2025. All rights reserved.\vspace{1pc} \\ } diff --git a/src/figures/example/powder_based.pdf b/src/figures/example/powder_based.pdf index 20a8ed3..06b9084 100644 Binary files a/src/figures/example/powder_based.pdf and b/src/figures/example/powder_based.pdf differ diff --git a/src/figures/preamble_figures.tex b/src/figures/preamble_figures.tex index 8c5af5f..d7d836f 100644 --- a/src/figures/preamble_figures.tex +++ b/src/figures/preamble_figures.tex @@ -8,8 +8,8 @@ \usepackage[gen]{eurosym} \usepackage{ar} -\usepackage[scale=1.09,textlf,mathlf,swash]{MinionPro} -\usepackage[scale=1.09]{MyriadPro} +% \usepackage[scale=1.09,textlf,mathlf,swash]{MinionPro} +% \usepackage[scale=1.09]{MyriadPro} \usepackage{tikz,pgfplots} \usetikzlibrary{arrows,shapes,positioning,shadows,trees,patterns,intersections,matrix,fit,backgrounds} @@ -19,7 +19,6 @@ \newlength\figurewidth \usepackage{tikz-3dplot} \usepackage{tkz-euclide} -\usetkzobj{all} \tikzset{ basic box/.style={ shape=rectangle, rounded corners, align=center, diff --git a/src/mitthesis.cls b/src/mitthesis.cls index aacb141..9f7e5be 100755 --- a/src/mitthesis.cls +++ b/src/mitthesis.cls @@ -159,7 +159,6 @@ \newlength\figurewidth \RequirePackage{tikz-3dplot} \RequirePackage{tkz-euclide} -\usetkzobj{all} \tikzset{ basic box/.style={ shape=rectangle, rounded corners, align=center, @@ -184,8 +183,8 @@ %% %% Fonts (2) %% -\RequirePackage[scale=1.09,textosf,mathlf,swash,roundv]{MinionPro} % COMMENT THIS FOR PALATINO -\RequirePackage[scale=1.00]{MyriadPro} % COMMENT THIS FOR PALATINO +% \RequirePackage[scale=1.09,textosf,mathlf,swash,roundv]{MinionPro} % COMMENT THIS FOR PALATINO +% \RequirePackage[scale=1.00]{MyriadPro} % COMMENT THIS FOR PALATINO \linespread{1.11} \DeclareMathAlphabet{\mathfrak}{OMS}{cmsy}{m}{n} \SetMathAlphabet\mathfrak{bold}{OMS}{cmsy}{b}{n} @@ -436,6 +435,8 @@ }[#1\onelineskip]% }% +\RequirePackage{marginfix} % for citations, needs to be loaded before footmisc + \RequirePackage[symbol]{footmisc} \newcounter{mparcnt} \renewcommand\themparcnt{\fnsymbol{mparcnt}} @@ -539,7 +540,6 @@ %% Citations %% -\RequirePackage{marginfix} \RequirePackage[hyperref=true,style=aiaa,giveninits=true,doi=true,isbn=true, url=true,backref,backrefstyle=none,maxcitenames=1, dateabbrev=false,urldate=long,labeldateparts]{biblatex} @@ -596,16 +596,6 @@ \setunit{}} \makeatletter -%%%% hack to move punctuation like autocite -\long\def\blx@defcitecmd@iii#1[#2]{% - \protected\long\csedef{blx@cite@#1}##1##2##3##4{% - \begingroup - \blx@citeinit - \ifstrequal{#1}{superpluscite}{\noexpand\unspace##4}{}% - \unexpanded{#2}{\blxciteicmd{#1}{##1}{##2}{##3}{}}% - \ifstrequal{#1}{superpluscite}{}{##4}\endgroup}% - \blx@defcitecmd@iv{#1}} -%%%% hack end \DeclareCiteCommand{\cbx@mcite}[\mkbibsuperscript] {\usebibmacro{cite:init}% @@ -636,6 +626,8 @@ \newrobustcmd{\cbx@mcite@init}[2]{% \def\cbx@savedcites{#1}#2\cbx@savedcites\empty} + +\DeclareCitePunctuationPosition{\mcite}{f} % cite like autocite \makeatother %% @@ -701,7 +693,8 @@ %%% %% Index (2) %%% -\RequirePackage[toc,nomain,acronym,smallcaps]{glossaries} % List of acronyms and glossary +\RequirePackage[toc,nomain,acronym]{glossaries} % List of acronyms and glossary +\setacronymstyle{long-sc-short} \renewcommand*{\glsnamefont}[1]{\textup{#1}} \RequirePackage{makeidx} @@ -749,8 +742,8 @@ {\large Doctor of Philosophy} \vspace{0.75pc} \\ at the \vspace{0.75pc} \\ {\large Massachusetts Institute of Technology} \vspace{0.75pc} \\ - {\large September 2018} \vspace{0.75pc}\\ - {\textcopyright\ Massachusetts Institute of Technology 2018. All rights reserved.} + {\large September 2025} \vspace{0.75pc}\\ + {\textcopyright\ Massachusetts Institute of Technology 2025. All rights reserved.} \end{minipage} }; @@ -760,7 +753,7 @@ \textsl{Author} \\ John Doe \hfill \rule{0.3\textwidth}{.2pt} \\ Department of Aeronautics and Astronautics \\ - August 23, 2018 \vspace{0.6pc}\\ + August 23, 2025 \vspace{0.6pc}\\ \textsl{Certified by} \\ Professor 1 \hfill \rule{0.3\textwidth}{.2pt}\\ Professor of Aeronautics and Astronautics \\ @@ -811,7 +804,7 @@ {\large John Doe}\vspace{1pc} \\ Submitted to the Department of \\ - Aeronautics and Astronautics on \mbox{August 23, 2018,} \\ + Aeronautics and Astronautics on \mbox{August 23, 2025,} \\ in Partial Fulfillment of the Requirements for the Degree of \\ Doctor of Philosophy in Aerospace Computational Engineering\\ }% diff --git a/src/thesis.pdf b/src/thesis.pdf index 6429aad..d47ba46 100644 Binary files a/src/thesis.pdf and b/src/thesis.pdf differ