Thesis Writing and More LaTeX Fun!

The time has finally come: After almost three years of (almost 😉 ) groundbreaking research, in between learning Python (works a charm for data analysis!) and writing a workshop paper (off to Rome in June, yay!) I have finally started writing up my thesis. And it’s not even as scary or bad as I imagined when I first started; in fact, I really enjoy being able to just write as much as I want to on a topic, without tight conference or workshop paper page limits. Now, that’s just the first stage, or as Joan Bolker says in “Writing your Dissertation in 15 Minutes a Day”, the Zero Draft. Once I start trying to make sense of my scribblings and bring some order into this mess, it will probably become a lot less fun. I shall report back!

Meanwhile, I want to share another very nice LaTeX trick I found today. I tend to add a lot of TODOs to my text when I write, e.g. “write a proof here”, “add a reference”, that kind of stuff. Not having to move away from the LaTeX file to pull up some other “to do list” tool helps me focus on the writing. The only problem is that adding a TODO as a comment (i.e. %TODO) in LaTeX means that you can’t actually see it in the compiled PDF. On the other hand, if I just add it to the text, I will have to find a way to make the TODO stand out from the surrounding text, while also ensuring that I don’t forget to remove the TODO in the final version!

Enter: The todonotes package. This little LaTeX package adds a simple

todo{my note here}

command, which allows me to add a to do note while I’m writing, which is then printed on the margin of the page in the right position. And not just that, adding

listoftodos

to the file prints a list of all the TODO items in your document, similar to a list of tables. In order to make room in the margin for larger notes, I increased the margin size using the following statements in the preamble of my document:

addtolength{oddsidemargin}{-1in}
addtolength{evensidemargin}{-1in}

And if you don’t want the TODO items to show up anymore, simple disable them by using the “disable” property in the usepackage command. Easy! A big thumbs up to Henrik Midtiby who wrote this great package a few years ago.