It slices, it dices, it automagically formats itself to fulfill the requirements of your degree! A template for proposals, master’s theses, and doctoral dissertations! The rest of this is me rambling about LaTeX and writing about writing the template so if you want the a copy, just go to my GitHub. It’s here:

This is, thus far, my most ambitious project in LaTeX. Now, I’m no stranger to .sty’s. I’ve used them before for custom title pages and some handy-dandy formatting of computer code listings in my undergrad.

I will not use a monotype font for listings and I will fight you about this.

But all of those were just throwing my boilerplate into a file to make my main.tex smaller. Instead of 40 lines of \usepackage{} and \newcommand{}{}, just one \usepackage{mystyle} and I’m set for this homework assignment. But these are static. These aren’t interactive, they don’t consider the changes in the document. It’s purely to save time scrolling.

I am currently working on my thesis proposal. It’s big. There’s a lot to take care of, and I hate prefer to not use Word. It’s just a fact at this point. I almost gave up on working on a paper because every time I would type another letter, Word would just collapse all the images over each other and another half hour of my life is lost handling positioning. Is this a skill issue? Probably, I must have missed learning where in the toolbar menus the “Don’t collapse all images into a black hole” setting is hidden.

But there’s an element where this proposal is the perfect example where you have the confluence of a large project with references, citations, changing numbers of pictures, tables, schemes, and kinda arbitrary formatting that doesn’t seem like it should matter all that much but you know you’ve gotta do it.

So I set out to make a template. Not just a general template, but a reactive one. I wanted an (engineering) graduate student to be able to just modify a single command and have the document change. I understand the proposal is supposed to be the start of your dissertation, so why restart from scratch? Have your previous document change the formatting so you can focus on the content.

This, of course, meant I had to handle variables. Boolean states. Change words based on user input. Easy enough in Python, shoot I’d probably be back on track with C++ if you gave me an hour. But LaTeX? I swear, sometimes I see the things people share on StackExchange and believe it’s closer to a button mash than an intentional programming effort.

Why is \unskip\strut\par everywhere? Does it need to be there? I don’t know. Will I risk taking it out? Absolutely not, there must have been a reason wikibooks had it there.

But it was really cool to interface with LaTeX beyond the packages others have provided. I did start trying to make a comprehensive class but that quickly worked out to be futile endeavor. Instead, I made a bunch of .sty’s that together make the template. One aspect that I particularly like is the abstract. Rutgers requires a dissertation abstract to use a very specific set of terminology, formatting requirements, and of course a dissertation must say “dissertation” while a thesis must say “thesis.” The examples of proposals I have seen simply treat the abstract as another chapter. To make this work, I defined a new environment where, if it’s for a dissertation, generated the formatting of the abstract page, or otherwise just started a new chapter. Another small detail is the number of signature lines — a thesis has 3 while a dissertation requires 4 signatures. Fortunately, I found a StackExchange post that I was able to repurpose. I renew a command to be 3 for Masters, 4 for PhD, and then have the loop output the lines that number of times. Page numbering was a pain, since the Book class has a first page style for each chapter which is not compliant to the requirements. But again, applying what other’s have done helped me here.

There’s certainly a lot of other minor details that I’ve learned, and the best practices that avoid the quibbles of the compiler. But as of now, this should be ready for use. With any luck, I’ll find any other major flaw and fix them as I see them. Now that there is no other option and my productive procrastination is at an end, I have a proposal to finish writing.

As a final note: the text width is roughly 6 inches. So if you’re exporting a graph, and you have the option for the size and DPI, make a full width image 6 in across and 600 DPI. Two images side-by-side should be 3 in and so on and so forth. It’ll save you the trouble of dealing with image scale. Also, if you’re using a newer version of OriginPro like 2022b, they hid the Encapsulated PostScript (.eps) export so now you have to press CTRL+G after you select the plot window.