Learning “Advanced LaTeX” – The LaTeX Ninja Project

I had been using LaTeX for 5+ years and had always wanted to “do more”. But somehow I never did. The LaTeX Ninja was not a label I put on myself – it was a goal. I wanted to become a LaTeX Ninja and I wrote it down in my notebook.

The plan

Just before Christmas this year, I rediscovered that old piece of paper.
I had been working in Paris at the time and I had already typeset one book with LaTeX but was no further along the path of the LaTeX adept than I had been when the idea of “wanting to become a LaTeX Ninja” had first crossed my mind. Then, that summer when I was working in Paris, I decided: if I ever wanted things to happen, I had to put my plans into action.

So during my last week in Paris, I started diving into what I want to call “Advanced LaTeX” (see [THIS POST] for reviews of learning materials for “Advanced LaTeX” and the discussion of what that might even mean).
The problem with this term, as you will learn, is that it is not at all being used in a uniform way. There are quite some tutorials claiming to “teach Advanced LaTeX”. But none of them really do in my opinion. I wanted to become a LaTeX superuser, but – as I was about to learn – there aren’t exactly many resources there to help.

The journey begins

So I had to learn the hard way with hours wasted on Stackoverflow, debugging my own shitty code. (Which is probably what you deserve for writing shitty code anyways, but that’s another subject). Then again, there weren’t any resources out there that systematically taught how to become an advanced LaTeX user. Often you would come across tips which were incorrect (only to find out about it after 5 hours of debugging).
Or there happened to be some useful advice but written along the lines of “LaTeX gurus know that XY is bad, that’s why they do MN instead”. But somehow, one could never find out why exactly that was. But that was exactly the kind of stuff I needed to learn if I wanted to become a LaTeX ninja. Some useful info was indeed scatterd along the pages of StackOverflow but for most learners, learning it “the messy way” will result in “FATAL ERROR: journey aborted.” Faster than you can say “LaTeX”. If you are lucky enough to have decided already (after due consideration) how the fuck you want to pronounce it. See this post where I elaborate on the difficult topic of the pronounciation – it’s not as simple and clear as people want to make you believe it is.

So, when I had realized there weren’t any resources, I decided to start a tutorial blog to document my own way to becoming a LaTeX Ninja. And this is why you are here now, reading this. People seem to think that if you are interested in LaTeX, you either don’t want to use it in an advanced way or, if you do, you are a programmer and very well able to teach yourself. Well, yeah. Right. (Also, I don’t really agree that learning only from practise and StackOverflow is the most wholesome way to learn, but for now be on lookout for another ramblings post on that).  This is probably why such a lot of LaTeX code one can find online is super ugly, in no way understandable code. It sometimes “sounds” like it’s written in Java, C or whatever the person’s “native” programming language is.


The roots: A CV template

But back to the story. Back then, that summer in Paris, I thought there was such a beauty to LaTeX. Not in the “simple” maths-freak/technician-kind-of-way but in a way more universal one. You could really do some serious typesetting and even, to some degree graphic design with LaTeX, I began to realize. So it happened, that I decided to create my own CV template just because there was creativity involved. The nice CV templates out there proved that LaTeX didn’t need to be beautiful in this “technician kind of way”, it could just be up-to-date cool modern style. That’s what I wanted to be able to create.

The obstacle: Scarce resources and ugly code

Before I was ready, however, I had to work thorugh tons of not-very-readable code. Back then I just thought I was too incompetent to grasp what these alleged LaTeX gurus had written, but then I realized that a lot of it was just not written in a good readable way. At some point “variables” were initialized like in other programming languages. One particular bit of code took me hours to understand until I plucked up the courage to say “Well, I think this probably is just badly written. It works, but it’s not good LaTeX”. That’s when I finally knew I was on the right path to becoming a LaTeX superuser. Yep, being confident enough to admit that – all while completely understanding somebody else’s code – I dare to judge it “bad code” was quite an achievement, coming from a non-programming background.

The goal: Good readable code

But it was also the moment I realized one thing: if I wanted to help others, I would have to write good readable code, in good LaTeX coding style. So I try my best to do that. If you are, in fact, a LaTeX Guru and have some style suggestions, corrections and so on, I would be very happy about your feedback so we can help aspiring LaTeX Ninjas in the best possible way!

What is required to become “Advanced”?

I now know one thing for sure: Some of the intricacies of Advanced LaTeX are just difficult to learn as, mostly – in my now present but certainly limited experience – you have to wade your way through lots of documentation to find the bits of gold. And you need to have in-depth working knowledge of the most important, most frequent packages if you want to walk the path of the LaTeX Ninja. Fear not, I will be here for you. That’s a subject for another post (to come). Enough for today with this somewhat personal addendum.

Seeing as I originally come from literary studies and really can’t hold it in: Please admire the wonderful circularity in the story I just wrote down. As I am writing this, I look out the seaside on some yachts in the south of France. It started in Paris, I am back to France now, but about to leave yet again. Looking forward to an exciting 2019!

So if you’re in for new years resolutions and good intentions and now want to become a LaTeX Ninja too, I would be happy if you joined me in the quest 😉

the LaTeX Ninja


Buy me coffee!

If my content has helped you, donate 3€ to buy me coffee. Thanks a lot, I appreciate it!


I like LaTeX, the Humanities and the Digital Humanities. Here I post tutorials and other adventures.

3 thoughts on “Learning “Advanced LaTeX” – The LaTeX Ninja Project

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.