Your support for our advertisers helps cover the cost of hosting, research, and maintenance of this document

Formatting Information — An introduction to typesetting with LATEX

Chapter 1: Writing documents

Section 1.3: Picking an Editor

One of the best features of TEX-based systems like LATEX is that they don’t force you to use any particular editor or viewer: you can pick one that you’re comfortable with.

One of the worst features (for a beginner) is not understanding this: many new users have never come across this kind of flexibility in software before, and may be unfamiliar with the idea that you don’t have to do what a vendor says: you can pick and choose.

Nevertheless, I’m solving this by edict for beginners here: unless you already have a favourite editor or viewer suitable for LATEX, just use one of those shown below. If you’re an experienced computer user, see the comments at the end of this section.

So for beginners, in the case of ProTEXt (Windows) and MacTEX (Macs) ‘the editor’ is the one that comes with the distribution (TEXStudio and TEXshop respectively, see Table 1.1 below). Unix and GNU/Linux users need to choose and install an editor separately.

Table 1.1: Default editors with different distributions of TEX

SystemPackageEngineEditorViewer
Microsoft WindowsProTEXtMiKTEXTEXStudioAdobe Acrobat Reader
Apple Mac OS XMacTEXTEX LiveTEXshopPreview
Unix and GNU/LinuxTEX LiveTEX LiveKile, TEXStudio, or EmacsOkular, Evince, qpdfview, etc

However, there are many other editors, if you want to try them out and pick one you are comfortable with. Below are a few that I have either tried or had good reports of. There is an excellent page all about LATEX editors maintained by Fabrizio Musacchio at https://www.fabriziomusacchio.com/blog/2021-08-19-LaTeX_editors/.

EditorMac OS XLinuxWindows
Emacs
TEXMaker
LYX
texifier
Kile

Have a look also at Barbara Beeton’s slide on Features of a good editor, slide 4 from her presentation at TUG 2017 (Beeton, 2017).

Choose your editor carefully

Experienced computer users should also read these very sensible and relevant comments from Michael Sperberg-McQueen:

Twenty years ago, when my computer center required us all to start moving our data from VM/CMS to Unix, and we were all trying to decide which of the available text editors to invest time in learning, I formulated one of the few general principles of computer usage that has ever been revealed to me:

  1. If you are a serious computer user, you will spend more time in your text editor than in any other single application. Choosing well is a good idea.

  2. It takes a long time to learn an editor well. You will not learn 2000 editing programs between now and the day you stop using computers at all — you may only learn two or three. Choosing wisely is important to avoid wasting time.

  3. The first question to ask, when considering any candidate editor, is ‘when I write a macro for this editor, what is the name of the language I’m writing in?’

    There are three classes of answer:

    1. Answers of the form ‘you don’t, there are no macros in —’. These won’t normally occur, since such editors won’t ever actually be candidates for serious day-in day-out use.

    2. Answers of the form ‘It’s a specialized macro lang-[…]’. You needn’t listen to the end of these; the editor is not worth investing your time to learn.

    3. Answers of the form ‘X’, where ‘X’ is the name of a ‘real’ programming language, with variables and functions and flow control and all of those things.

It was on this basis that I chose Emacs over vi. (A decision, I may say, that I have never regretted.)

The importance of macros was pretty clear to me because over my years of using VM, I had written dozens of macros for XEdit, the system editor, and the fact that I could write them in a well designed programming language (Rexx) was really important.

The funny thing is that having chosen Emacs over vi because it has a real programming language for macros, I then used Emacs for ten years or more before I ever actually used Lisp to write any macros. I decided that this was because all the macros I needed seemed to have been written by someone else already.

(Sperberg-McQueen, 2016)