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.
Table 1.1: Default editors with different distributions of TEX
System | Package | Engine | Editor | Viewer |
Microsoft
Windows | ProTEXt | MiKTEX | TEXStudio | Adobe Acrobat
Reader |
Apple Mac OS X | MacTEX | TEX Live | TEXshop | Preview |
Unix and GNU/Linux | TEX
Live | TEX
Live | Kile, TEXStudio, or
Emacs | Okular,
Evince,
qpdfview, etc |
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 above). Unix and
GNU/Linux users need to choose and install
an editor separately.
If you prefer not to install TEX on your own computer
(or if you are prohibited from installing software, eg a
company laptop), you can use an online service like Overleaf, which
provides a browser-based editor and online processing of your
documents. It also has excellent collaborative features which
are useful in some fields where multiple people work on the
same document simultaneously. The downside is that you have to
upload any extras (fonts, images, datasets, etc) because you
are processing on their server, not your own computer.
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/.
Editor | Mac OS X | Linux | Windows |
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:
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.
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.
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:
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.
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.
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)