Skip to main content

How I Write and Learn

Tools I Used Writing My Honors Thesis: My TikZ-induced Procrastination and How I Overcame It

By a Math Undergrad

When I decided to write an honors thesis, the advice I received from everyone was to write things up as you go. The common wisdom was to write things up as soon as you have a result, rather than waiting five months and writing everything up at the last minute. I wanted to do an honors thesis to explore more math, but unfortunately for me, the thesis also required a lot of writing. Having heard the thesis writing horror stories and knowing the extent to which I hate writing (ironic that I’m writing this post, I know), I was determined to follow their advice to try and minimize the pain of the writing experience.

Despite my best intentions, I kept pushing writing further and further down the road. Figuring out how to type up diagrams was my main stumbling block in the writing process, but this discomfort gave me an excuse to procrastinate on writing entirely. However, despite initially succumbing to procrastination, with trial, error, and the discovery of some new writing tools, I was eventually able to overcome procrastination.

The first several weeks of working on my thesis was absolute information overload; I was reading a different paper every week and never felt like I understood anything enough to do research, let alone write something up. About two months in, I switched from solely reading to trying to extend some techniques further. Writing-wise, this meant I could no longer reference existing diagrams, so I truly needed to draw my own. My thesis topic resulted in pages of notes with diagrams and equations made out of these diagrams, but even with the simplified notation I eventually used, I couldn’t easily type up any of my notes.

In part, I struggled to write because math papers are written up using a typesetting system called LaTeX, and in order to draw diagrams in LaTeX, I needed to learn how to use a particular package called TikZ. Below is an image of what needs to be typed in order to draw a simple trefoil knot and an image of the compiled document with the trefoil diagram. Writing in TikZ was an intimidating and onerous process, to say the least.

The code written in LaTeX to to generate a trefoil knot, which is over 10 lines long.
TikZ code for a trefoil knot sans appropriate preamble.
Trefoil knot generated via TikZ.
Compiled document from the code in the previous image.

With fall finals quickly approaching, I once again put off writing and decided to learn TikZ over winter break.

Learning TikZ is in fact not what I did over winter break, so at the start of the spring semester, I knew I needed to make some changes or else I would be the person writing my entire thesis the last possible week before the deadline. As a procrastination hedge, I decided that every morning from 8 a.m. to 9 a.m. I would work on writing my thesis. I didn’t put any requirements on productivity, but at least I started writing every day. I figured writing 30+ pages was a big enough hurdle without trying to make everything perfect, so I decided to just get started and make edits later.

The real turning point was my discovery of the LaTeX package todonotes, which lets me add notes to my LaTeX file, and a web app called Mathcha, which generates TikZ code for me. The todonotes package was actually one I had been introduced to by a grad student I had worked with in the past that I fortunately rediscovered after looking through some old documents. Mathcha was a highly fortunate find via math Twitter. Using Mathcha, I am confident that I am at least capable of drawing the diagrams even if it is a grind. This was a massive relief since I was feeling very hopeless that there were enough hours in a year to properly learn TikZ.

Bright orange todo notes generated in LaTeX.
Section of code and matching compiled document from my thesis with many todo notes in place of diagrams.

Now, every time that I need to draw a new diagram, I just add a todo and then proceed as if I already made the diagram in Mathcha. When I add a todo in the code, I can either make it inline, which creates an entire blocked off bit of the paragraph, or just add a note in the margin that draws a line to the relevant part of the paragraph. Some of my pages end up being mostly ugly orange todo notes (I am generally too lazy to change the color), but that’s fine. At least I have an idea of what still needs to be done! Because of the sheer number of diagrams I need to construct, the todo notes allow me to actually write a full sentence without having to stop to make a diagram or five. I also know in the back of my mind that in the absolute worst case scenario I can hand draw the diagrams and insert them as images. After all, at the end of the day, a complete thesis is a complete thesis.

Theoretically, all that’s left to deal with now is drawing diagrams. Properly learning TikZ is still a bit of a lost cause, but fortunately using Mathcha I can construct my diagrams through the drag-and-drop-style editor. Mathcha generates the TikZ code I need, which I can then just paste into my thesis file.

The Mathcha website, where a trefoil knot is drawn on a grid, and "Export Selection to LaTeX" is selected in the menu bar.
Trefoil knot drawn on Mathcha and menu for exporting to LaTeX code.

My thesis is still far from complete, but now that I’m consistently writing, not pausing every other sentence to make diagrams or spending hours mastering TikZ, I’m at least more confident that I will actually have a thesis to defend.


This blog showcases the perspectives of UNC Chapel Hill community members learning and writing online. If you want to talk to a Writing and Learning Center coach about implementing strategies described in the blog, make an appointment with a writing coach, a peer tutor, or an academic coach today. Have an idea for a blog post about how you are learning and writing remotely? Contact us here.

Comments are closed.