# What is LaTeX? A software or a markup language?

According to Wikipedia:

LaTeX is a document preparation system and document markup language. LaTeX is not the name of a particular editing program, but refers to the encoding or tagging conventions that are used in LaTeX documents.

I would like to question this statement claiming that LaTeX is not a software but a markup language.

I am not sure LaTeX is a language but if it is, it is also a software in my opinion. You can call LaTeX in a terminal (so LaTeX is also a command, therefore a software or a part of a software). And LaTeX has (friendly) competitors in the person of XeLaTeX, LuaLaTeX or TeX. There are also executable files (i.e. softwares) which provide similar functionalities. Having competitors could be saw as a criteria to be a software.

The purpose of LaTeX language is (only) to be understood by LaTeX command which aims is to produces good quality printable documents. Could we call a language a syntax which only wants to be understood by one software? (shouldn't a language be more universal?)

As counterexample, Markdown is only a markup language. There is no process or executable binaries behind the language. Markdown is designed for writing in markdown (and not to be converted in something else). It is very different from LaTeX.

So, what do you think? Should I correct Wikipedia?

• There is no essential difference between markdown and latex at this level, markdown like latex is interpreted by software to produce formatted text. there are differences in implementation of course but I think your statement that there is no executable code behind markdown can't really be justified Dec 30, 2013 at 0:03
• Latex (as a language) is understood by several programs (tex/xetex/luatex that you mention but also several non-tex systems understand at least parts of the language: tex4ht, latexml, mathjax etc Dec 30, 2013 at 0:06
• @DavidCarlisle So perhaps Markdown is not a good counterexample. However Markdown was created as a language and after implementations have been written. LaTeX was not created as a language but to produce directly converted to dvi/pdf; for this purpose, there was a need for a language...
– ppr
Dec 30, 2013 at 0:08
• I would say TeX is a program written in Pascal/Web converted to C, which also defines and implements the TeX language. LaTeX is a macro package written in the TeX language so it can also be considered a piece of software. Dec 30, 2013 at 0:09
• Read it again. It does not say anything about LaTeX /not being software/. It says that LaTeX is not /a particular editing program/. Dec 30, 2013 at 0:10

## Format vs. Software

You are (somewhat) correct: what we call LaTeX can either be a format or a program depending on the context. I find it is helpful to distinguish the two using 'LaTeX' for the format and 'latex' for the piece of software.

You must remember though: latex simply loads a file that defines the LaTeX format in TeX (to then be processed by tex). (This same relationship exists, AFAIK, with ConTeXt.) Thus, in practice, the only(?) pieces of software that actually exist as far as I'm concerned are the TeX engines tex, pdftex, xetex, and luatex. (Others likely exist, but these are the top four.) The other executables (latex, pdflatex, …) exist only as pre-loaders of the LaTeX format.

In short, LaTeX provides a language which which to mark-up a document to be processed by latex, which in turn only provides an engine (tex, pdftex, …) with the LaTeX format written in TeX.

## Editors

This answer is plain and simple: LaTeX is entirely editor independent. Saying that you need an editor that can write LaTeX is like saying you need a particular pencil to write on copy paper. (This is a great virtue of TeX systems; the competition keeps editors on their game.)

• I would say the TeX format definition named "LaTeX" is still part of the software that interprets the LaTeX language. Jul 27, 2017 at 12:44
• @Paulo That's a fair assessment. I would also explicitly note that in this context, LaTeX is a program written in TeX that defines the markup language of the same name. Jul 27, 2017 at 12:49

Here is a very minimalistic answer, which is only build on my own non-expert believes.

• LaTeX is a language used to make markup.

AND

• LaTeX is a software used to create formatted output.

LaTeX is not the editor, within you write your code. Wikipedias description is accurate.

• then what is TeX? Jun 24, 2019 at 3:57
• @chharvey TeX is the more primitive language on which LaTeX is build. You can use TeX for the same things as LaTeX, but it is just extra work to do so. One of the huge advantages of LaTeX( and ConTeXt, LuaTeX, ...) over TeX is the many packages already written to help with topics as drawing, graphing, math, chemistry, ... Jun 24, 2019 at 20:49