Contents

Best writing software (for academics)

Danger
This post is long. Skip to the end if you only care about the recommendations.

This is the first article, in a series of articles, on software with application to academic research. These pieces should also be relevant to students and even those outside of academia. This is not meant as a definitive guide (I will probably keep updating this as my preferences change). I know there is still much to learn, but I am sure that not everything in this post is common knowledge.

The inspiration for writing this came from my continual search for new software that will make my life marginally easier. The problem is that I have spent so much time trying to look for the perfect combination of software that it has become almost detrimental to the original goal of efficiency. It seems I am not an optimising agent. In order to make life a bit easier for people who are just starting out and haven’t decided on their combination of software to use, I will provide a discussion on the different programs that I use and motivate the reason for their usage. This is obviously my unsubstantiated / unsolicited / subjective view on the software that is “best”.

Note
I mostly use the wonderful Manjaro version of Linux (and Windows when desperate), so there might be some MacOS applications / software that is infinitely better than what I am suggesting. If you have suggestions for Mac oriented software, please feel free to comment.

1. Writing software

This category explores the basic elements that a researcher would need to get started. These programs are applicable to most research fields. My general philosophy is to keep things free and open source, so I will try and suggest software that is widely accessible.

1.1 Writing your documents with LaTeX and/or Markdown

I believe that the first piece of ‘software’ that an academic / researcher should acquire is something that will help them to write a report or article. Most PhD students (especially in technical fields) are told to adopt LaTeX as this is the industry standard. For most people this is daunting, but the investment is ultimately worthwhile. I will be writing a quick guide for the perplexed in the future (with many links to external resources), so keep an eye out for that. There is a direct alternative in LyX, but I don’t like using this since (in my limited experience) it doesn’t provide you with the same level of customisation and you are not fully engaging with the LaTeX syntax. I know you can manipulate syntax directly, but it just isn’t the same.

Another popular route that you could follow is to use Markdown, or perhaps RMarkdown. I prefer RMarkdown since you can execute R code inside the markup language. I have also started using Weave.jl for Julia Markdown documents. Ultimately, the basic Markdown syntax will be the same, so the skills transfer. Many comment sections on blogs and wesbites like Reddit use Markdown so it is worthwhile learning. The learning curve for this is not steep at all and most people should feel comfortable using the language within a few hours.

In my experience working with Markdown is one of the most versatile solutions and works exceptionally well for shorter reports, lecture notes, reproducible research documents, homework assignments and so forth. One could also write an entire thesis and/or article in Markdown since this allows the implementation of LaTeX. I have not attempted to write longer pieces in Markdown, but I know of several people that have successfully used it.

Another solution for those that are looking to write interactive notebooks that incorporate coding elements, is Jupyter Notebooks. I won’t say too much about it here, because it will be the topic of another post.

Conclusion
Learn to use LaTeX and Markdown, even if superficially. You can focus on Markdown if you want, since it is possible to insert LaTeX syntax into a Markdown document. This avoids the overhead associated with setting up a LaTeX document, which is sometimes tricky for beginners.
Resources
The best resource that I know of to get started with on RMarkdown is the following free guide by Yihui Xie, J.J. Allaire and Garrett Grolemund, which can be found here.

1.2 Editors and integrated writing environments

Most people are used to writing in a “what you see is what you get” (WYSIWYG) environment such us Microsoft Word. There are also free alternatives such as LibreOffice Writer and one could potentially put Google Docs into this category. These word processing programs are fine to use for mostly text based documents, but they are often terrible for any type of mathematical typesetting. I only use these programs when I am forced. In my opinion, if you want to write pure text documents then it is still better to use Markdown, since you can easily generate Word documents from this format.

Let us accept that we want to use Markdown and LaTeX as our markup language / typesetting system. The question becomes, which interface is going to be used? We refer to the class of software for the implementation of these languages / systems as integrated writing environments. There are a few alternatives here and it is worthwhile trying different options before settling on the one you want to incorporate into your daily workflow. I will give an account of what I have used, so that you can decide for yourself what might work best.

1.2.1 Lightweight editors

Lightweight editors refer to those that use very little resources (in terms of RAM and CPU usage). These can be easily used on older systems. One of the best tools in this regard is to use Vim. However, I would not recommend it for beginners (see section 1.2.3).

For editing basic text files, there are several excellent options. In the case of Windows I would recommend using Notepad++. For Linux, if you are using a KDE environment, I think that Kate is great. There are countless other options, but these are the ones that I use for quick document editing. If you are comfortable with a command line and want something even more lightweight then nano is passable.

1.2.2 Integrated writing environments

In terms of LaTeX, I am currently using Texstudio as my integrated writing environment. I have recently switched from Kile and before that I mostly used Winedt. All of these environments will perform the task efficiently and the choice can only made by trying the software out. The reason I stopped using Winedt is simply that it isn’t available on Linux (and partly because it isn’t free an open source). I used Kile for a while, but it is not being updated as frequently as Texstudio. There is also more customisation with Texstudio. I found the interface of Texstudio quite ugly at first, but they have started to bring in better integration for the dark mode and I have also tweaked things so that it actually looks reasonably good (see the picture below).

/2020-09-07-writing-software/texstudio.png

It is actually also possible to use Visual Studio Code (VSCode) as a mock integrated writing environment. I use this platform for coding, but it is entirely possible to set it up for usage with both LaTeX and Markdown since there are extensions that allow support for features such as syntax highlighting and spellchecking (among others).

If you decide to go with Markdown, then using RStudio is also a good option. This software is traditionally used for coding in the programming language R, but there is also a great emphasis on packages that integrate well with RStudio to allow one to work with RMarkdown files.

1.2.3 Vim and/or Emacs

I am putting Vimand Emacs into their own special category, since the learning curve associated with the usage of these systems is quite steep. I have the most experience with Vim, so I will refer to that in this discussion.

My advice for using Vim in the beginning is, learn to touch type and stick to basic movement.

Vim is exceptionally powerful and could be the best piece of software that you ever use. However, it comes at a great cost. You must be willing to spend a significant amount of time trying to understand and tweak the system. If you want something that will make you the most efficient that you can be in terms of editing, then there is nothing that beats Vim. However, you will spend a tremendous amount of time playing around with the software to get to a level where you are comfortable in editing documents.

If you are one of those people who likes to play around with software to get the best out it, try Vim. I don’t really think anybody can call themselves an expert in using Vim, since you are really only limited by your own imagination when it comes to customization. I will talk about this topic again in more detail in another post.

Resources
Here is a link to some videos by the Primeagan on the basics of Vim. If you want to learn Vim in the context of VSCode then here is an easy to follow free guide by Jaime Gonzalez Garcia.

1.3 Free PDF editor / readers

When I switched over to Manjaro (Linux) about a year ago there was only a few pieces of software that I really wanted to bring with me from the Windows environment. One of them was the extraordinary PDF XChange Editor, another being Sumatra. In general, if you are doing research, Linux has some amazing free open source software that parallels anything that Windows can offer. However, finding a good PDF viewer / editor that does everything you want in one package is difficult to find.

I leave tried most of the popular editors and viewers that exist in the Linux landscape. The ones that are particularly good include Okular, mupdf, qpdfview, Foxit and for reading academic articles I sometimes like to use Mendeley. The most feature rich option for Linux is Master PDF Editor, but is a resource hog. This is paid software, but does offer a free version. One of my many frustrations with PDF viewers and editors in Linux is that if you want to open multiple tabs the resource usage is extremely high. It became a glaring issue on my system with 16GB of RAM, which crashed multiple times because I simply ran out of memory. The solution was to play around with some swap values in the config files, but this was never an issue when I used Windows. Perhaps Windows has better memory management and allocates it to swap partitions in a more efficient manner, I am not sure. I am but a lowly economist and am not privy to such information.

1.4 Note taking software

It might be strange to have this as a seperate category, since one could take notes with any of the editors that I have already mentioned. However, there is one thing that I like from note taking software and that is the ability to store the notes on an online platform (i.e. the proverbial cloud). Evernote is among the most popular, but I don’t have need for all of its features. For those that need a basic user friendly setup that focuses on taking of text based notes I recommend either Joplin or Boostnote. Both of these programs sync effortlessly with your phone and allows you to jot down notes and save important links when needed. Another option is to simply use Google Keep, if you want to remain in the Google software space. The only reason that I don’t use Keep anymore is that it does not have a desktop version, everything is done in the browser. If you don’t mind this, then Keep is a reliable option.

1.5 Software for collaboration

Everyone needs good version control. This is especially true for collaboration. Invest some time in learning the fundamentals of git. You can save your writing on Github (or similar sites such as Bitbucket) in repositories for multiple people to work with at the same time. Since you will be mostly writing text documents, git is optimal to use in the case of both Markdown and LaTeX centered projects. For those seeking a graphical interface to git I often recommend Github Desktop or GitKraken for those that are not comfortable with the command line. If you are using VSCode or RStudio then you have git integration with the installation of a few simple extensions.

For those that are interested in using Word or similar word processing software, I would recommend Teams by Microsoft, or Slack. I have the most experience with Teams and it is perhaps the most user friendly. It has also recently been announced that their is Github integration for Teams, so this makes it even more attractive.

Another option if you are going to use LaTeX for a project is to use Overleaf. I don’t use it that often, since I am not a fan of working in browsers, but it is quite a powerful tool and (as a note to myself) one could probably invest time in exploring its capabilities.

1.6 Reference managers

One of the most important things that a good researcher can acquire is a good research assistant. If those aren’t around then it might be time to do your own reference list, 😱. In order to make this arduous task a bit easier I recommend either Mendeley or Zotero. These managers are magic. You drag your articles into the program, drop the files and the manager extracts the relevant information from the documents using OCR technology. It then finds the matching articles online and fills in the details automatically. The matching is quite accurate and I would say that I only have to manually fill in the details of the documents in about 10-20% of the cases.

If you are living the open source life, then Zotero might be a better fit. I think that Mendeley is a bit more polished, but the difference is marginal. Lastly, if you still don’t know which PDF reader to use, it is worth noting that you can also read your PDFs in these managers and make annotations which are then synced to your account.

2. Recommendations

If you don’t want to read this entire wall of text, I have summarised my recommendations below.

tldr
  1. Write using $\LaTeX$ and/or Markdown.
  2. Try Texstudio for $\LaTeX$ and RStudio for Markdown.
  3. Vim is the best, use at your own peril.
  4. Okular is solid for viewing PDFs in Linux. If you are using Windows, ditch Adobe Acrobat DC and migrate to PDF XChange Editor - I miss this piece of software 😭.
  5. Boostnote or Joplin will make taking notes easy and syncs to your phone.
  6. Use version control with git. A good GUI is Github Desktop.
  7. For those pesky references, go with Mendeley or Zotero.