Can I run plain TeX on Overleaf?
Yes—you can configure your project to be compiled using plain TeX by following the setup procedure described below.
- In the Overleaf editor, click on the Menu button and set the Compiler option to
LaTeX
—selectLaTeX
from the dropdown list as shown in the following video clip: - Add a blank file to your project, and save it as
latexmkrc
—it should not have any file extension (you may not need to add this if your project already has alatexmkrc
file). - Add the following line to your
latexmkrc
file:
$latex = 'tex %O %S';
What does this file latexmkrc
actually do?
Without going into detail, Overleaf's servers use a program called latexmk
to run and control TeX/LaTeX-based typesetting. The latexmk
program allows Overleaf users to influence typesetting of their projects by adding a configuration file called latexmkrc
. Readers wishing to further explore this can read about the latexmkrc
configuration file on the latexmk
web site.
Examples
The latexmk
program is written in the Perl programming language which uses the hash character (#) as the comment character (much like TeX/LaTeX typically use the % character). If you wish to experiment with plain TeX using different TeX engines you can create a latexmkrc
file and copy/paste the following text into it:
# $latex = 'tex %O %S'; # to use Knuth's original TeX engine # $latex = 'pdftex %O %S'; # to use the pdfTeX engine # $latex = 'luatex %O %S'; # to use the LuaTeX engine # $latex = 'xetex %O %S'; # to use the XeTeX engine
To use a particular TeX engine, uncomment the line (delete the initial '#' character) for the TeX engine you want to use. For example, to run XeTeX you uncomment the last line so that your latexmkrc
file looks like the following—note that the last line does not start with a '#' character, thus it gets executed/run to typeset your plain TeX document using XeTeX:
# $latex = 'tex %O %S'; # to use Knuth's original TeX engine # $latex = 'pdftex %O %S'; # to use the pdfTeX engine # $latex = 'luatex %O %S'; # to use the LuaTeX engine $latex = 'xetex %O %S'; # to use the XeTeX engine
The following short video shows the above latexmkrc
file being selectively edited to run each TeX engine in turn—starting with XeTeX. The plain TeX source code used in this example was borrowed from an article by D. R. Wilkins.
Further reading
We have two related help items which may be of interest to any reader wishing to better understand Overleaf's use of latexmk
and latexmkrc
:
Overleaf guides
- Creating a document in Overleaf
- Uploading a project
- Copying a project
- Creating a project from a template
- Including images in Overleaf
- Exporting your work from Overleaf
- Working offline in Overleaf
- Using Track Changes in Overleaf
- Using bibliographies in Overleaf
- Sharing your work with others
- Debugging Compilation timeout errors
- How-to guides
LaTeX Basics
- Creating your first LaTeX document
- Choosing a LaTeX Compiler
- Paragraphs and new lines
- Bold, italics and underlining
- Lists
- Errors
Mathematics
- Mathematical expressions
- Subscripts and superscripts
- Brackets and Parentheses
- Fractions and Binomials
- Aligning Equations
- Operators
- Spacing in math mode
- Integrals, sums and limits
- Display style in math mode
- List of Greek letters and math symbols
- Mathematical fonts
Figures and tables
- Inserting Images
- Tables
- Positioning Images and Tables
- Lists of Tables and Figures
- Drawing Diagrams Directly in LaTeX
- TikZ package
References and Citations
- Bibliography management in LaTeX
- Bibliography management with biblatex
- Biblatex bibliography styles
- Biblatex citation styles
- Bibliography management with natbib
- Natbib bibliography styles
- Natbib citation styles
- Bibliography management with bibtex
- Bibtex bibliography styles
Languages
- Multilingual typesetting on Overleaf using polyglossia and fontspec
- International language support
- Quotations and quotation marks
- Arabic
- Chinese
- French
- German
- Greek
- Italian
- Japanese
- Korean
- Portuguese
- Russian
- Spanish
Document structure
- Sections and chapters
- Table of contents
- Cross referencing sections and equations
- Indices
- Glossaries
- Nomenclatures
- Management in a large project
- Multi-file LaTeX projects
- Hyperlinks
Formatting
- Lengths in LaTeX
- Headers and footers
- Page numbering
- Paragraph formatting
- Line breaks and blank spaces
- Text alignment
- Page size and margins
- Single sided and double sided documents
- Multiple columns
- Counters
- Code listing
- Code Highlighting with minted
- Using colours in LaTeX
- Footnotes
- Margin notes
Fonts
Presentations
Commands
Field specific
- Theorems and proofs
- Chemistry formulae
- Feynman diagrams
- Molecular orbital diagrams
- Chess notation
- Knitting patterns
- CircuiTikz package
- Pgfplots package
- Typing exams in LaTeX
- Knitr
- Attribute Value Matrices
Class files
- Understanding packages and class files
- List of packages and class files
- Writing your own package
- Writing your own class
- Tips