Hipster CV – A Template

Dear all,

sorry you haven’t been hearing from me so much lately. It’s been quite busy. To make it up to you, I wanted to share my hipster CV template on this occasion 😉 I will probably explain it later and also probably modify it in a way that it’s easiert to use for a beginner. If you want to use it and but don’t feel comfortable with how the template works, just check where the text you are looking to replace is in the main.tex and replace it with your content. That way, you should get away with fairly limited LaTeX skills and still be able to use the template if you want it.

hipster-cv

 

It is available on the newly created LaTeX Ninja Github! The template is not exactly the same as shown in the Teaser: LaTeX Resumé Template Preview.

hipster-cv-github

 

So you can look forward to more versions which will be kind of the same style. But I now have so many different elements that I could fill at least 10 different CV templates. Since I didn’t want to fall victim to my own perfectionism, I dedided to share the template now even though it could probably be better. It also doesn’t really comply with my own standards regarding good code, etc. 😉 Well, you can’t always have it all.

It is, however, more of a Saturday afternoon fun thing I did. I won’t give any recommendations as to whether it will be considered as appropriate in your field of work to actually use this CV 😉

Also, I hope I am allowed to have the Jack Sparrow images in the example. I am not so sure about it however. Come visit me in prison if this should go wrong 😉

Buy me coffee!

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

€3.00

Advertisements

XML to LaTeX (simple)

Today, I wanted to share this super simple XML to LaTeX tutorial. Using XSLT, you are going to transform XML data to LaTeX output which you can then go on to compile into your desired output PDF. There will be no fancy stuff whatsoever in this post, just the basics and what to keep in mind with these transformations. It is the quick intro to XML to LaTeX I did with my students a while ago which was done one day after they had their first contact with XSLT, so it should really be beginner-friendly. I labeled it “Advanced LaTeX” anyway because I think starting to automate things is always a step in the right direction 😉

Configuring the transformation scenario in Oxygen

I am going to assume you use Oxygen now because that’s what a lot of people in the DH do and this post is directed towards my friends in the DH. Especially those who think print editions are an obsolete concept in times of the Digital Edition. Maybe having a nice little intro to XML to LaTeX transformations available will change their minds 😉

To set up the transformation scenario, choose XML transformation using XSLT, then choose your XML document and your XSL stylesheet (set up and open those document in the editor before you configure the scenario). Then choose a Saxon 9 version (whichever you like). Then ignore the FO tab and get right to the output tab.

Here you configure how to name your output. Best click the green arrow and choose cfn, then append -latex.tex. So the result the current filename with -latex.tex appended to it. This is an important step so you don’t accidentally overwrite the original. Which in this case is not so dramatic since it has a different ending anyway but if you do XML to XML transformations, this is even more crucial. Then tell Oxygen to show it in the editor as XML (even though you know it isn’t). The editor will then, of course, complain about the non-valid XML but don’t worry. Just copy all (CTRL+ACTRL+C) and paste it (CTRL+V) into a completely empty (!) project in Overleaf  or just compile the LaTeX directly if you have it installed on your machine.

There it is, you’re set. Now let’s get to the stylesheet.

The stylesheet

So, this is the whole thing. You can just grab it and go if you don’t care for the explanation or read on to find out why things were done the way they were done. This tutorial assumes you’re already familiar with how XSLT works, just haven’t done transformations to LaTeX yet, by the way. I am also assuming, your base XML is in the TEI standard.

 

 

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"     xmlns:xs="http://www.w3.org/2001/XMLSchema"     xmlns:t="http://www.tei-c.org/ns/1.0"     exclude-result-prefixes="xs"     version="2.0">
    <xsl:strip-space elements="*"/>
    <xsl:output method="text" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>

    <xsl:template match="/">
        <xsl:text>\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\DeclareUnicodeCharacter{2060}{\nolinebreak} % might not be necessary for you

\title{</xsl:text><xsl:apply-templates select="//t:title"/>
        <xsl:text>}
\author{</xsl:text><xsl:apply-templates select="//t:author"/>
        <xsl:text>}\date{\today}
\begin{document}
\maketitle
\tableofcontents\newpage</xsl:text>
        <!-- get some metadata from the TEI header using the push paradigm -->
<xsl:text>\begin{itemize}</xsl:text>
<xsl:for-each select="//t:persName[ancestor::t:teiHeader]">
    <xsl:text>\item </xsl:text>
    <xsl:value-of select="." />
    <xsl:text>

    </xsl:text>
</xsl:for-each>
<xsl:text>\end{itemize}
\newpage</xsl:text>

        <!--  <xsl:apply-templates/> OR -->
        <xsl:apply-templates select="//t:text"/>
        <!-- just use the pull paradigm on the TEI body so you don't get a meaningless TEI header dump in your document -->

        <xsl:text>\end{document}</xsl:text>
    </xsl:template>

    <xsl:template match="t:head">
        <xsl:text>\section{</xsl:text><xsl:apply-templates/><xsl:text>} </xsl:text>
    </xsl:template>

    <xsl:template match="t:p">
        <xsl:apply-templates/>
        <xsl:text>

        </xsl:text>
    </xsl:template>

    <xsl:template match="t:hi">
        <xsl:text>\emph{</xsl:text><xsl:apply-templates/><xsl:text>} </xsl:text>
    </xsl:template>

    <xsl:template match="text()">
        <xsl:analyze-string select="." regex="([&amp;])|([_])|([$])">
            <xsl:matching-substring>
                <xsl:choose>
                    <xsl:when test="regex-group(1)">
                        <xsl:text>\&amp;</xsl:text>
                    </xsl:when>
                    <xsl:when test="regex-group(2)">
                        <xsl:text>\_</xsl:text>
                    </xsl:when>
                    <xsl:when test="regex-group(3)">
                        <xsl:text>\$</xsl:text>
                    </xsl:when>
                    <xsl:otherwise/>
                </xsl:choose>
            </xsl:matching-substring>
            <xsl:non-matching-substring>
                <xsl:value-of select="." />
            </xsl:non-matching-substring>
        </xsl:analyze-string>
    </xsl:template>

</xsl:stylesheet>

 

The XSLT declaration and the LaTeX preamble

Put the following after your XML declaration. This will ensure output is LaTeX-friendly.

 

<xsl:strip-space elements="*"/> <!-- for LaTeX -->
<xsl:output method="text" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>

 

\DeclareUnicodeCharacter{2060}{\nolinebreak} was added because LaTeX complained about an undefined character in some of my students XML data. Personally, I had never gotten this error before, so you might as well leave it out.

Creating environments

As we had just learnt some XSLT basics, I wanted the students to use at least one push and one pull paradigm type template. So the task was to process any element from the TEI header using the push paradigm and then a pull paradigm template for the body. To make this little template more efficient teaching-wise, I decided to introduce how to create a LaTeX environment using XSLT for the TEI Header / push paradigm and do at least one other command using the pull paradigm on the TEI body. Also this demonstrates as opposed to for the body.

So this next piece of code sets up an itemize environment for persons present in the header. In a “real” stylesheet, it would probably be more wise to check, using whether there is one potential element like that present and only paste the \begin and \end on that condition.

Also, as you might have noticed, all the LaTeX commands are inside . This looks a bit confusing at first but really isn’t. Just make sure you don’t create invalid XSLT by shuffling them around.

 

<xsl:text>\begin{itemize}</xsl:text>
<xsl:for-each select="//persName[ancestor::t:teiHeader]">
    <xsl:text>\item </xsl:text>
    <xsl:value-of select="." />
    <xsl:text>

    </xsl:text>
</xsl:for-each>
<xsl:text>\end{itemize}</xsl:text>

 

Pull paradigming emphasis

When creating simple commands using the pull paradigm, be sure that you don’t end up with too many “overlaps” since “simple” commands in LaTeX don’t take multiple paragraphs as arguments. If in doubt, always use environment and the global switches (like \bfseries). Since you are automating things, you always have to take into account that data might not always be marked-up in a way which makes sense to you. There can easily be linebreaks inside a single italic highlight. If this is the case in you data, better create an environment. For simple purposes, however, this is good enough:

 


<xsl:template match="t:hi"><xsl:text>
\emph{</xsl:text><xsl:apply-templates/><xsl:text>} <xsl:text></xsl:template>

 

With these commands (and genereally when transforming to LaTeX), you sometimes need to make sure you don’t involuntarily add spaces or lack space which will make the output hard to read and debug.

In this example, I made sure not to add any whitespace inside the template rule and also did not have Oxygen format or indent the XML to avoid these unwanted spaces.

And finally: Escaping entities

As you might remember, markup languages tend to use entities to escape certain characters. Bad thing is, LaTeX and XML use different entities. So we need to escape them. I know that the OxGarage standard stylesheet does this using the translate() function but I prefer to use since it’s less “messy” than a nested translate() construct.

Ah, and side info by the way: There is this standard stylesheet from the TEI consortium which might be of help if you are looking for inspiration. Since it is very generic, however, it might not be helpful if you are a newbie at both XSLT and LaTeX. The XSLT is pretty advanced and also the LaTeX probably uses some commands you might not be aware of.

 

    <xsl:template match="text()">
        <xsl:analyze-string select="." regex="([&amp;])|([_])|([$])">
            <xsl:matching-substring>
                <xsl:choose>
                    <xsl:when test="regex-group(1)">
                        <xsl:text>\&amp;</xsl:text>
                    </xsl:when>
                    <xsl:when test="regex-group(2)">
                        <xsl:text>\_</xsl:text>
                    </xsl:when>
                    <xsl:when test="regex-group(3)">
                        <xsl:text>\$</xsl:text>
                    </xsl:when>
                    <xsl:otherwise/>
                </xsl:choose>
            </xsl:matching-substring>
            <xsl:non-matching-substring>
                <xsl:value-of select="." />
            </xsl:non-matching-substring>
        </xsl:analyze-string>
    </xsl:template>

 

And that’s it. I hope this was useful to you.

Cheers,

the Ninja

Buy me coffee!

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

€3.00

Planning your project for “service providers”

When writing my last post on how to earn money with LaTeX I realized I actually had a lot of advice on planning and scheduling your project as well. So I will sum up my experiences with all sorts of “customers” (be it project partners or whatever you have).

Motivation

This is not to complain how horrible things are but just to sum up a few things you should take into account that an unexperienced person might not find self-evident. Seeing as my days of being unexperienced myself are not very far away, the learning process is still pretty fresh and I still remember the problems a beginner can face, so I hope to be able to provide valuable advice.

Some of the advice is copied out of the earning money post, so don’t be confused if you feel like you might have already read some of this. Initially I had wanted to extend the old article but since it already was so over-long, I decided to take this out into its own post. This is also why I will start with producing print-ready PDFs for a publishing house, since this is where I had started my ramblings in the last post.

Communication between two worlds

Your job is to communicate the technical stuff in a way which makes sense to the (probably non-technical) customer. So you need to understand their language to deduce from it what it is they want. Then, you should reformulate it in a way which is a bit more technical and “re-translate” it to them to check if you got it right. This is a necessary part because mostly, the requirements you get are not specific enough and there are a lot of decisions to be made in the process of planning implementation and acutally implementing these requirements.

Production paradigms and methodologies

In the past, people used the so-called “waterfall model” which means that they would get the requirements once from the customer and then implement them like this, working around any lack of information they might encounter. Modern methodologies lean towards shorter producation cycles where you produce a “minimal working example” fast so you can check whether this is actually what the customers want. If there are any additional decisions to be made or information missing, you re-check with the customers straightaway. You try to avoid implementing unnecessary features you think are cool but the customer didn’t ask for. For now, I will leave it with this super short info on methodologies. Maybe I will follow up here with a post of its own at some point in the future.

Pitfalls in organizing your work. On the example of producing print-ready output

Only because you know some LaTeX doesn’t necessarily mean you will know how to cater to the needs of a publishing house. Try to get the opportunity of working with them for free. Again, small publishing houses or university publishers often offer the option that you hand in the final PDF which comes a lot cheaper than having them typeset it for you. This will save the scientist in question a lot of money (500-2000€ depending on the amount of work). Offer to some university professor that you will typeset their book for free, so you will have done the interaction with the publisher at least once, have a credential to show and know what publishers want. Also, don’t underestimate how long it might take. There is a reason a job like this can pay up to 2000€. Especially scientific publications often have a million changes and corrections before they are finally ready for print.

During the process, you might realize that producing a PDF which corresponds exactly to the publisher’s criteria is more difficult than you would think. At least, that was what it was for me. I had used LaTeX and knew how to do the customizing needed to make my thesis advisors happy, but the publisher ended up wanting a million things changed I had never even dreamt of doing in LaTeX. Advisors will quickly be happy with nicely typeset output and correct citations. Publishers, however, want a very specific look. For example, the first thing I had to change is the typesetting of the footnotes which no advisor of mine had ever cared about. I had never customized footnotes before and wasn’t even aware that could be an issue. So if you haven’t done any of those things, I suggest you start reading up on them now. (An upcoming post on LaTeX for the Accidental Editor will explain all those things).

It will probably be a lot more work than you might have expected and the work might also be pretty different than what you are used to doing with LaTeX. Anticipate this (!). Publishing houses also tend to find typographical problems you hadn’t even dreamt about beforehand.

Scheduling the work

Apart from traditional publishers, I have found any customer really is like this. The version of text etc. you are handed is never the final one. You typeset it and think you’re done and only then they notice the millions of typos and so on. The first “final version” together with the preparatory and consultation meetings is half of the work / hours you need to plan for (believe me!). If have found that usually, the corrections are at least as much work as creating this “first final version” even when I had to create the whole layout and some TikZ for that first version”. Correction work after this is done will seem to expand exponentially! This is not necessarily a horrible thing if you know about it an plan accordingly. If you think like a beginner often does, however,  and don’t feel confident enough dictating your terms and communicating your needs, they won’t be met. You are likely to find yourself in a hot mess. This is great relationship advice too, by the way 😉

The first “final document” they hand you is actually the first draft

This is super annoying and I’m still thinking about how I can prevent this from happening (again) because often, it’s just due to a lack of diligence on their part. But of course, once their document is typeset in LaTeX, you are the only one who still knows how to make changes. Anticipate this and also, probably (secretly) include at least 10 hours more than you need in the fee / estimate of hours needed for corrections (even for teensy mini-projects and probably especially those as people tend to be even more careless with them). There will be many corrections to make. Should you find a way of preventing this from happening, please inform me 😉  So far I have not been very successful. People only see the typos or visual problems in the final fully typeset version. But these extra corrections you are not getting paid extra for are often what turns a profitable side job into one that’s not profitable anymore. Also, these corrections mostly need to be made instantly or last minute. So inquire about when the deadline is and make sure you are available at that time. Probably best plan to be with them at that time (the last hours before submission) and charge them for it preventively. Because you will end up having to do it anyway. Also, the more scientific the content, the more stressful it’s probably going to be.

Creating a ‘safe space’ for your work by saying “No” – Learn to be strict with your customer

Never forget that you are the last part in the food chain. Your customers will hand in the data late, like 2 hours before the deadline and you will be the one whose head is on the line, unless you set up your conditions very clearly before. If you don’t want this side job to become stressful, you need to make the schedule for them. They have no clue how long their own corrections and “completely unforeseeable” addtions will take.

Give them a deadline long before your head is on the line. Imagine you get a LaTeX error in the last minute and don’t know how to solve it. Also, to prevent this, create a minimal working example before you receive the final data (this will be in the last minute and way too late to start). Ask for a mandatory “minimal working example” and implement this right after the first meeting, so they can give feedback. They will probably want  litterally everything changed. Or, even worse, they say it’s perfect and thanks a lot. The most important thing to know is: They will akways have a millon corrections and the correction process will take at least as long as creating the “first final version”. Even if they tell you “it’s perfect, thanks so much” rightaway. Corrections will come. I have not had a single project where this was not the case. If you have other experiences, please let me know. But also from my colleagues I hear nothing else.

You need to know this and never let anything cheat you into believing otherwise. The less corrections or feedback you get after the first draft, exponentially more will come the closer you reach the “real” deadline of the project (by this I mean closing in to the actual end, after the “first final version”).

Helping the customer find out what they really want

Often customers will end up realizing that they don’t like their own idea anymore once it’s implemented. Or they might not have an idea of their own and you need to make multiple mockups until they’re happy. But the customer not having an idea of their own should never be mistaken for them happily accepting whatever result you produce. Once you have come up with an idea, they will probably tear it apart. This is not meant in an unfriendly way, but it’s just a fact that after you serve them a concrete implementation they will suddenly realize exactly what they would have wanted. Hint: It’s probably the exact opposite of what you just laboriously produced.

Protect yourself by insisting that extra features are all super difficult to implement (charge extra)

I don’t say this to discourage you but just to give a realistic idea of how it’s going to go. This is the same for any kind of work where you produce a technical implementation for a “customer” who will hand you the data to be represented. This can be an XML-based project in the Digital Humanities or a LaTeX-based poster printable. Also, another tip from the DH world: Always say everything is incredibly hard and takes super long and you are not sure if it can be done at all if people ask for extra stuff which wasn’t part of the contract before. I used to hate this and think it was a sign of  “bad service” or laziness but it’s really just a necessary precaution. You need to protect your own time or else you will end up working for free. If necessary, charge extra. This also means that you need to write down a very clear “contract” of what you agreed to do for which money. Don’t add extra goodies for no extra pay. Once you ask additional money, the feature probably isn’t all that important anymore.

Always make a first draft with (at least snippets of) real data straightaway

Be sure to make the “mockup” using their “real data”, not lorem ipsum only, if possible. Their data might not look anything like lorem ipsum. Do it right after the first meeting, so you did your part. If they fuck it up and don’t hand you any data before the deadline, this proves that you did your work and they will not be able to back out of paying you.

Some security is never a bad idea. Also, this makes sure that you get “most” of the work (maybe the first third) done early. Remember, if you are somebody who is always Mr. Last Minute, this job probably isn’t for you. The customers will likely hand you the data way too late. If you wait with the first mockup until after they give you the final data, you are never going to make it since they will want to give feedback and have changes made as well.

Specificities of the Humanities

In the Humanities, it is most imporant that you learn all the features MS Word offers and how to reproduce a Word-like-but-better look. If they are to let you use LaTeX, you first have to prove it has all the features they are used to from MS Word.

Like I complain about in my quitting word post, everything revolves around MS Word in the Humanities. This means that even if you choose not to use Word in your own private life, you will have to know how to work with it. Most importantly, how to make the best of it by extracting the data to further process it using a different data format.

Closing thoughts

So, these are some general thoughts on working as a “service provider”. The experiences are both from some contract or freelance work with LaTeX and project work in the DH. At some point, I will probably write a post specifically on DH project management as well. But for now, I just want to stress again that this post is not to bitch about anybody or to scare anybody away. I just wanted to share some of my experiences which could be useful for someone looking to get started, so they might have an idea of a few things to take into account.

So long and thanks for the fish!

The Ninja

 

Buy me coffee!

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

€3.00

Fast typing LaTeX

I recently became aware of this post where somebody asked how you can become faster at typing LaTeX. Just a little post with a few recommendations.

Experience from constantly using LaTeX for everything

I have to say, I think it really gets better with experience. And experience from doing your everyday stuff in LaTeX (like to do lists, taking notes, etc.). Else you probably just won’t get enough experience to become really fast.

Raise awareness

But then again, slowing down might not be a bad thing if you’re supposed to produce high quality work. Using LaTeX, then, will force you to take the subconscious back into your conscious mind. Maybe not what you want when just quickly taking notes, but maybe something to reflect upon in the long term.

I also found that, since I don’t constantly use MS Word’s auto-correct anymore, I’m actually better at spelling and grammar (even though, as someone holding a degree in Latin, I probably never was bad in the first place).

However, I find it useful that LaTeX forces you to be more conscious on some stuff (like typing correctly instead of bad touch typing and relying on auto-correct to clean up your mess).

10 finger system touch typing

Quick typing generally comes down to correct 10 finger system touch typing (Zehnfingersystem being the German name, focusing on the fact that  you use all your ten fingers, whereas the English name touch typing focuses on the fact that you type by muscle memory and don’t look at the keyboard). So if you don’t know that already, please stop complaining about LaTeX. You’re probably super slow and make tons of mistakes, so don’t pretend LaTeX plays a big part in slowing you down.

The free open-source Tipp10 app is a great resource for learning touch typing (available for all distributions, your Linux package mangager will probably have it) . Especially as you can use it to target LaTeX-specific typing effectively since the program allows you to use your own texts for typing practice. This means, if you want to get better at typing LaTeX, you should create a “fake” document which contains tons of the commands you use most often, then add it to the app as a custom practice text and practice for 5 minutes daily (ideally before starting work as a “warm-up“). You will get better very quickly. Here is an example text I created for this purpose. Feel free to add what you need or remove what you don’t need.

This is what I would recommend for now,

Cheers,

the LaTeX Ninja

 

Buy me coffee!

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

€3.00

How to quit MS Word for good

This post I want to dedicate to the pressing question of how to live without Word in the Word-filled environment of Academia where Word lurks behind every tree and jumps at you when you’re not paying attention.

Do you actually enjoy this eternal distraction of a non-working text editor? Well, I don’t. And even though it’s not actually a good tool (if you’re being honest with yourself, deep down in your heart, you know I’m right), it has infested the world (not only of Academia).

 

How the story begins…

At some point, now over a year ago, I decided that I wanted to quit MS Word once and for all. I had hoped to do that before but every single time, I had came up with about a million excuses why I just couldn’t. Probably kind of like you are now already preparing your counter arguments as to why that might work for me but it sure as hell is completely impossible for you. You can’t survive in your workplace without Word because everyone’s using it.

Like Tim Ferriss, I want to invite you reflect on this Mark Twain quote now and better yourself:

“Whenever you find yourself on the side of the majority, it is time to pause and reflect.” – Mark Twain

The impossibility of quitting Word? Rehab.

Think of this post as your rehab where you can get sober once and for all. And I’ll provide you with answers to a few key problems which you might encounter during the process to make sure you stay sane.

I got fed up with Word so much that at some point, I wanted to quit but wasn’t sure it would actually be possible to get rid of it for good. Everybody was using it. How was I going to communicate or collaborate with my Word-loving colleagues? But I had really had it with Word and it needed to go. Because, you know, Word really is like drugs – it’s not good for you but you keep using it. I needed to break the habit. And, believe it or not, I have lived a happy, Word-free life for over a year now.

Transitioning to full-time LaTeX

So as this blog is called “The LaTeX Ninja”, of course, I urge you to quit Word in favour of LaTeX. “But that will everything take forever”, you say. What if I need to take a quick note? Well, as you might remember from somewhere way back in the past you most certainly have some basic text editor or notepad tools already installed on your system. It’s just that you never use it. But isn’t that exactly for that purpose of taking quick notes? You can still use that. Or just make it a habit to always use LaTeX. I also started that habit a while ago (for documents where I want some visual structure, highlight something, make lists, etc.) and really, you learn those few commands by heart so fast. Just make a mini project to commit to taking all your notes with LaTeX for two days (where you preferably don’t have important meetings where it’s vital you can keep up with your note-taking).

So if you say this will slow you down, that’s a blatant lie. Taking your hands off the keyboard to take the mouse, select and click to make something bold definitely takes longer than just writing it. If you’re using keyboard shortcuts, congrats you’re an advanced user. So you don’t have an excuse why you can’t learn a text editor like VIM which provides some auto-completion for LaTeX. No more excuses.

A side-effect of transitioning to LaTeX completely will be accelerated learning of LaTeX, since you will be forced to look things up and learn new concepts regularly. So if your goal is to become an advanced LaTeX user, I can tell you one thing – your progress will be exceptionally slow if you never expose yourself to having to rely on LaTeX. If you always use Word, your LaTeX skills won’t get better at a steady pace.

Problem 1: I sometimes work on computers without LaTeX installed and no rights to install anything

Working on a computer that doesn’t have LaTeX? It’s horrifying, I know. Yes, it’s a disaster. I tend to get panic attacks and so on, but hey – thank God there’s Overleaf, the tool that allows you to compile LaTeX even from weird, Word-infested computers, if they only have internet.

Problem 2: But I need to see what my text will look like while writing.

No, actually you don’t. You’re just so used to Word or Word-style WYSIWYG editors that you don’t remember anything else. The tools we use shape how we think and work. With Word being a tool which suggests to its users that they are so apt at typesetting that they should do it. Info: No, you shouldn’t, unless you’re a qualified professional. So, if typesetting really isn’t your job, you totally don’t need to see what the typeset final output will look like. Just focus on the fucking content. That’s your job.

Like typewriters, or an actual notebook and a pen, LaTeX is just a different medium. You were ok using a pen, weren’t you? That’s a different medium too. When you transitioned from analogue notebook to MS Word, that was a transition, too. And you mastered it. If you’re old enough, you might remember typewriters. There you didn’t have much control over how your output looked like either. Other than instant-typesetting Word, typewriters required you to write out the manuscript by hand, on paper, so you wouldn’t screw up too many times when actually typing it out. That was a completely different style of working. It took more time and precision. You had to pause and reflect before acting. So maybe transitioning to a new way of doing things will make you more aware than just typing away in Word where you write on auto-pilot. If you’re someone who needs nice looking output: transition to LaTeX. If you’re a knowledge worker: Congratulations, your professional worth is not determined by how fast you create content but by how good it is. Using a tool that takes a little longer to type it out forces you to reflect more and will up your awareness. Win-win! Transition to LaTeX.

You don’t need Word. You’re just addicted to the Word way of life and I want you to quit and live a happier life in the long run – you’ll thank me later. Especially should you ever come to have some advanced typesetting needs. Like a 500 page PhD thesis in Archaeology with 2000 images. Or the honour of editing conference proceedings is bestowed upon you. Start learning the skills now, save time and tears in the future. Thank me later.

Problem 3: Everybody else uses Word – how will I be able to communicate?

The conversion routine, part 1: Pandoc

Just use a PanDoc conversion whenever you feel like sharing. It works as follows (and more info can be found in the PanDoc demos):

pandoc main.tex --smart --bibliography=literature.bib -S -o output.docx

This means that Pandoc will use your main .tex document as a source and pandoc-citeproc (the citation plugin) will use literature.bib as the bibliography file. -o means that output.docx will be the name of the output. However, please note that a) you have to install both pandoc and pandoc-citeproc for this to work and b) this is a very generic transformation. If you have custom commands or citation styles in your document, these elements will not be correct in the output. So if you already know you’ll have to hand in a document as .docx, just don’t do anything complicated. The citation might not come out the way you’ll need it but for a normal length paper, this doesn’t take more than 10 minutes to correct (and you’d have to check your citations before handing it in anyway – at least I assume you, as a good scientist, hopefully, always do that…). Use search and replace wisely. If you need to hand in author-year style, the big changes to be made are going to be only in the bibliography anyway.

Part 2: Manipulating and sharing documents with GoogleDocs (version control included)

Then, once this is done, you are just one more final step away from the bliss of Word-free life: Sell your soul to Google, so you can use Google Docs. Now, open a new document and import output.docx. Now you can do all your editing (without Libre Office messing everything with their .odts) and download in the requested file format (probably .docx). Also, in case you didn’t know, GoogleDocs has a footnote plugin you have to add manually (Add-ons > Get Add-ons > Footnote Style). Once this is done, you can mark any footnote and say something like “apply this style to all footnotes”. This will come in very useful because GoogleDocs don’t automatically support batch editing multiple footnotes at once.

Plus, the benefit of the “comment”, “share” and “track changes” (version control) features GoogleDocs provides. This even allows you to collaborate with version control while multiple contributors work on the same document simultaneously. No more “Document-1”, “Document-1-1”, “Document-1-correction”, “Document-1-final”, “Document-1-final-revision”. Who the hell is supposed to remeber which one is the current version? Get version control. Overleaf also has version control by the way. You can use any version control tool you want when working with LaTeX. Version control might still be a strange and scary topic if you’re a non-technical person. But it’s really no big deal and I’ll explain it in some other post. Also, for tools I suggested, like GoogleDoc or Overleaf, you don’t need to know shit. Thank God!

You still think you can’t live without Word in your life? If I managed to quit Word for good, so can you. And just so you know: I never regretted it for a second. Now I can’t imagine how people even live with Word in their lives.

Best,

your LaTeX Ninja

 

PS: If you think using LaTeX would slow you down, see this post on Typing fast in LaTeX.

 

Buy me coffee!

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

€3.00

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 on 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 tought here 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 😉

Cheers,
the LaTeX Ninja

Buy me coffee!

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

€3.00