LaTeX (/ˈlɑːtɛks/LAH-tex or/ˈleɪtɛks/LAY-tex,[2] often stylized asLaTeX) is asoftware system fortypesetting documents,[3] based onTeX. LaTeX provides a high-level, descriptive markup language to utilize TeX more easily: TeX handles the document layout, while LaTeX handles the content side for document processing. Because the plain TeX formatting commands are elementary, it provides authors with ready-made commands for formatting and layout requirements such as chapter headings, footnotes, cross-references and bibliographies.
LaTeX was originally written in the early 1980s byLeslie Lamport atSRI International.[4] The current version is LaTeX2e, first released in 1994 but incrementally updated starting in 2015. This update policy replaced earlier plans for a separate release of LaTeX3, which had been in development since 1989.[5] LaTeX isfree software and is distributed under theLaTeX Project Public License (LPPL).[6]
Like TeX, LaTeX started as a writing tool for mathematicians and computer scientists, but even from early in its development, it has also been taken up by scholars who needed to write documents that include complex math expressions or non-Latin scripts,[7][8] such asArabic,Devanagari, and Chinese.[9]
LaTeX was created in the early 1980s byLeslie Lamport when he was working atStanford Research Institute (SRI). He needed to write TeX macros for his own use and thought that with a little extra effort, he could make a general package usable by others. Peter Gordon, an editor atAddison-Wesley, convinced him to write a LaTeX user's manual for publication (Lamport was initially skeptical that anyone would pay money for it);[10] it came out in 1986[3] and sold hundreds of thousands of copies.[10] Meanwhile, Lamport released versions of his LaTeX macros in 1984 and 1985. On 21 August 1989, at a TeX Users Group (TUG) meeting at Stanford, Lamport agreed to turn over maintenance and development of LaTeX toFrank Mittelbach. Mittelbach, along with Chris Rowley and Rainer Schöpf, formed the LaTeX3 team; in 1994, they released LaTeX2e, the current standard version. LaTeX3 has since been discontinued as a separate format and has become a programming layer within LaTeX2e since 2018.[5]
LaTeX attempts to follow the design philosophy ofseparating presentation from content, so that authors can focus on the content of what they are writing without attending simultaneously to its visual appearance. In preparing a LaTeX document, the author specifies the logical structure using simple, familiar concepts such aschapter,section,table,figure, etc., and lets the LaTeX system handle the formatting and layout of these structures. As a result, it encourages the separation of the layout from the content – while still allowing manual typesetting adjustments whenever needed. This concept is similar to the mechanism by which manyword processors allow styles to be defined globally for an entire document, or the use ofCascading Style Sheets in styling HyperText Markup Language (HTML) documents.
The LaTeX system is amarkup language that handles typesetting and rendering,[11] and can be arbitrarily extended by using the underlyingmacro language to develop custom macros such as new environments and commands. Such macros are often collected intopackages, which could then be made available to address some specific typesetting needs such as the formatting of complex mathematical expressions or graphics (e.g., the use of thealign environment provided by theamsmath package to produce aligned equations).
To create a document in LaTeX, a user first creates a file, such asdocument.tex, typically using atext editor.[12] The user then gives theirdocument.tex file as input to the TeX program (with the LaTeX macros loaded), which prompts TeX to write out a file suitable for onscreen viewing or printing.[13] This write-format-preview cycle is one of the chief ways in which working with LaTeX differs from theWhat-You-See-Is-What-You-Get (WYSIWYG) style of document editing. It is similar to the code-compile-execute cycle known to computer programmers. Today, many LaTeX-aware editing programs make this cycle a simple matter through the pressing of a single key while showing the output preview on the screen beside the input window. Some online LaTeX editors even automatically refresh the preview,[14][15][16] while other online tools provide incremental editing in-place, mixed in with the preview in a single window.[17]
The characters 'T', 'E', and 'X' in the name come from theGreekcapital letterstau,epsilon, andchi, as the name ofTeX derives from theAncient Greek:τέχνη ('skill', 'art', 'technique'); for this reason, TeX's creatorDonald Knuth promotes its pronunciation as/tɛx/ (tekh)[18] (that is, with avoiceless velar fricative as in Modern Greek, or the ch inloch). Lamport remarks that "TeX is usually pronouncedtech, makinglah-tech, lah-tech, andlay-tech the logical choices; but language is not always logical, solay-tecks is also possible."[19]
The name is printed in running text with a typographicallogo:LaTeX. In media where the logo cannot be precisely reproduced in running text, the word is typically given the unique capitalization LaTeX. Alternatively, the TeX, LaTeX,[20] andXeTeX[21] logos can also be rendered via pureCSS andXHTML for use in graphicalweb browsers – by following the specifications of the internal\LaTeX macro.[22]
The example below shows the input to LaTeX and the corresponding output from the system:
Input
Output
\documentclass{article}% Starts an article\usepackage{amsmath}% Imports amsmath\title{\LaTeX}% Title\begin{document}% Begins a document\maketitle\LaTeX{} is a document preparation system for the\TeX{} typesetting program. It offers programmable desktop publishing features and extensive facilities for automating most aspects of typesetting and desktop publishing, including numbering and cross-referencing, tables and figures, page layout, bibliographies, and much more.\LaTeX{} was originally written in 1984 by Leslie Lamport and has become the dominant method for using\TeX; few people write in plain\TeX{} anymore. The current version is\LaTeXe.% This is a comment, not shown in final output.% The following shows typesetting power of LaTeX:\begin{align} E_0&= mc^2\\ E&=\frac{mc^2}{\sqrt{1-\frac{v^2}{c^2}}}\end{align}\end{document}
As a macro package, LaTeX provides a set of macros for TeX to interpret. There are many other macro packages for TeX, including Plain TeX,GNU Texinfo,AMSTeX,Chemfig, chemmacros,[23]PSTricks,PSfrag, andConTeXt.
When TeX "compiles" a document, it follows (from the user's point of view) the following processing sequence: Macros → TeX → Driver → Output. Different implementations of each of these steps are typically available in TeX distributions. Traditional TeX will output aDVI file, which is usually converted to aPostScript file. In 2000, Hàn Thế Thành and others wrote an implementation of TeX calledpdfTeX, which also outputs toPDF and takes advantage of features available in that format.[24] TheXeTeX engine developed by Jonathan Kew, on the other hand, merges modern font technologies and Unicode with TeX.[25]LuaTeX is an extended version of pdfTeX using Lua as an embedded scripting language.[26]
LaTeX documents (*.tex) can be opened with any text editor. They consist of plain text and contain no hidden formatting codes orbinary information. TeX documents can also be shared by rendering the LaTeX file to other formats such asOpenDocument,XML, or class (*.cls) files. LaTeX can also (and commonly is) rendered to PDF files using the LaTeX extension pdfLaTeX. LaTeX files containingUnicode text can be processed into PDFs with theinputenc package, or by the TeX extensions XeLaTeX and LuaLaTeX.
TeX4ht is a converter that can translate TeX and LaTeX documents to HTML and certain XML formats. It is now included preconfigured with all TeX distributions.
HeVeA is a converter written inOCaml that converts LaTeX documents toHTML5. This way, documents such as scientific papers, primarily typeset for printing, can be placed on theWorld Wide Web for online viewing. It is licensed under theQ Public License.[27]
LaTeX2HTML is a converter written inPerl that converts LaTeX documents to HTML. It is licensed underGPL v2.[28] The latest updates are available from Comprehensive TeX Archive Network (CTAN).[29]
LaTeX2RTF is a converter written inC that converts LaTeX documents toRTF. It is licensed under GPL v2 or later.[30]
Pandoc is a "universal document converter" able to transform LaTeX (as well as other formats) into many different file formats, including HTML5, ePub, OpenDocument (*.odt), MicrosoftOffice Open XML (*.docx), and even text withMediaWiki markup as used inWikipedia. It is licensed under GPL v2.[32]
LaTeX has become thede facto standard to typeset mathematical expression in scientific documents.[33][34] Hence, there are several conversion tools focusing on mathematical LaTeX expressions, such as converters to MathML orComputer Algebra System.
MathJax is aJavaScript library for converting LaTeX to MathML, picture formats includingSVG andPNG, or HTML for embedding within a webpage.
KaTeX is a JavaScript library for converting LaTeX to HTML and MathML. It is developed byKhan Academy, and is among the fastest LaTeX to HTML converters.[36]
LaTeX2e is the current version of LaTeX, since it replaced LaTeX 2.09 in 1994.[38] As of 2020[update], LaTeX3, which started in the early 1990s, is under a long-term development project.[5] Planned features include improved syntax (separation of content from styling),hyperlink support, a new user interface, access to arbitrary fonts and a new documentation.[39] Some LaTeX3 features are available in LaTeX2e using packages,[40] and by 2020 many features have been enabled in LaTeX2e by default for a gradual transition.[5]
There are many commercial implementations of the entire TeX system. System vendors may add extra features like addedtypefaces andtelephone support.LyX is afree software,WYSIWYM visual document processor that uses LaTeX for a back-end.[41]TeXmacs is a free,WYSIWYG editor with similar functionalities as LaTeX, but with a different typesetting engine.[42] Other WYSIWYG editors that produce LaTeX includeScientific Word on Windows andmacOS.
Many community-supported TeX distributions are available.
LaTeX is widely used inacademia for the communication and publication of scientific documents and technical note-taking in many fields, owing partially to its support for complex mathematical notation.[43][33] It also has a prominent role in the preparation and publication of books and articles that contain complexmultilingual materials, such as Arabic and Greek.[44] LaTeX uses the TeX typesetting program for formatting its output, and is itself written in the TeXmacro language.
LaTeX can be used as a standalone document preparation system or as an intermediate format. In the latter role, for example, it is sometimes used as part of a pipeline for translatingDocBook and otherXML-based formats for PDF. The typesetting system offers programmabledesktop publishing features and extensive facilities for automating most aspects of typesetting and desktop publishing, including numbering and cross-referencing of tables and figures, chapter and section headings, graphics, page layout, indexing andbibliographies.
^Schubotz, Moritz; Wicke, Gabriel (2014). "Mathoid: Robust, Scalable, Fast and Accessible Math Rendering for Wikipedia".Intelligent Computer Mathematics – International Conference. CICM. Lecture Notes in Computer Science. Vol. 8543. Springer. pp. 224–235.arXiv:1404.6179.doi:10.1007/978-3-319-08434-3_17.ISBN978-3-319-08433-6.