Currently, the extension supports pdflatex, xelatex and similar options that has the same command structure, so that one can easily swap between them. I would like to create an out of the box support for more LaTeX rendering engines and document the usage.
This is a meta-issue that will track the development of such implementation
Proposed Solution
Update LatexBuildHandler class to have less rigid full_latex_sequence
Possibly create more child classes or configurations to handle popular engines. Group them by the command sequence. I.e. to have PdflatexBuildHandler and other sibling classes
Make bibtex optional
Document the usage of most of the popular engines, so users can start out the box. Possibly add multiple Binder links with different engines.
Additional context
Related issues that should be fixed by this:
70
113
155
212
Existing engines
Summary Table: Comparison of LaTeX Build Compilers Across Operating Systems
Compiler
Type
OS Support
Key Feature
Performance
Package Management
Works with current ext version
pdfTeX
LaTeX engine (requires a LaTeX distribution like TeXLive or MiKTeX to function.)
Windows, macOS, Linux
- Outputs high-quality PDFs - Also integrated into TeX Live - Less flexible for complex typographical tasks. - Compatible with various LaTeX editors
Efficient for standard LaTeX documents
Tlmgr (TeXLive Manager), MiKTeX
Yes (c.LatexConfig.latex_command = 'pdflatex') Engine is installed within TeX Live.
TeXLive
Full LaTeX distribution (includes engine, package manager)
Windows, macOS, Linux
- Comprehensive – includes all popular LaTeX packages - Ongoing and regular support from LaTeX community - Compatible with various LaTeX editors
Moderate
Tlmgr
N/A
XeTeX
LaTeX engine (requires a LaTeX distribution like TeXLive or MiKTeX to function.)
Windows, macOS, Linux
- Unicode and OpenType font support - Advanced typography support – Helps with complex math documents - Compatible with various LaTeX editors
Moderate
Tlmgr, MiKTeX
Yes (c.LatexConfig.latex_command = 'xelatex') Using Xelatex within TeXLive
Tectonic
Complete, self-contained LaTeX engine (does not require an additional LaTeX distribution)
Windows, macOS, Linux
- Cloud-based - handles the downloading and managing of LaTeX packages. - Recompiles only parts of documents that have changed. - CLI interface – best for CI/CD.
Fast
Personal Repo
No (c.LatexConfig.latex_command = 'tectonic')
MiKTeX
Full LaTeX distribution (like TeXLive)
Windows, macOS, Linux
- Windows OS focused - GUI support - Compatible with various LaTeX editors
Efficient
Built-in manager
N/A
LuaTeX
LaTeX engine (requires a LaTeX distribution like TeXLive or MiKTeX to function.)
Windows, macOS, Linux
- Lua scripting - Advanced typesetting - Compatible with various LaTeX editors
Slower – Due to Lua integration
Tlmgr
Yes (c.LatexConfig.latex_command = 'lualatex') Using lualatex within TeXLive
PythonTeX
Added Package (works within a LaTeX distribution)
Windows, macOS, Linux
- Integrates Python code with LaTeX – allows running python code within doc and insert results directly. - Ideal for scientific computations and generating dynamic plots.
Efficient, depends on Python code
Python package management
Yes Install package inside TeXLive using tlmgr install pythontex Use package in the document with \usepackage{pythontex}
REVTeX 4.2
Document Class (works with all standard LaTeX engines)
Windows, macOS, Linux
- Perfect for submissions to physics, mathematics, and engineering journals. - Contains pre-built formatting - Predefined templates for different types of papers.
Does not impact compilation
N/A
Yes Install package inside TeXLive using tlmgr install revtex Use package with \documentclass[aps,prl,reprint]{revtex4-2}
Problem
Currently, the extension supports
pdflatex
,xelatex
and similar options that has the same command structure, so that one can easily swap between them. I would like to create an out of the box support for more LaTeX rendering engines and document the usage.This is a meta-issue that will track the development of such implementation
Proposed Solution
LatexBuildHandler
class to have less rigidfull_latex_sequence
PdflatexBuildHandler
and other sibling classesAdditional context
Related issues that should be fixed by this:
70
113
155
212
Existing engines
Summary Table: Comparison of LaTeX Build Compilers Across Operating Systems
- Also integrated into TeX Live
- Less flexible for complex typographical tasks.
- Compatible with various LaTeX editors
(
c.LatexConfig.latex_command = 'pdflatex'
)Engine is installed within TeX Live.
(includes engine, package manager)
- Ongoing and regular support from LaTeX community
- Compatible with various LaTeX editors
- Advanced typography support – Helps with complex math documents
- Compatible with various LaTeX editors
(
c.LatexConfig.latex_command = 'xelatex'
)Using Xelatex within TeXLive
- Recompiles only parts of documents that have changed.
- CLI interface – best for CI/CD.
(
c.LatexConfig.latex_command = 'tectonic'
)(like TeXLive)
- GUI support
- Compatible with various LaTeX editors
- Advanced typesetting
- Compatible with various LaTeX editors
(
c.LatexConfig.latex_command = 'lualatex'
)Using lualatex within TeXLive
- Ideal for scientific computations and generating dynamic plots.
Install package inside TeXLive using
tlmgr install pythontex
Use package in the document with
\usepackage{pythontex}
(works with all standard LaTeX engines)
- Contains pre-built formatting
- Predefined templates for different types of papers.
Install package inside TeXLive using
tlmgr install revtex
Use package with
\documentclass[aps,prl,reprint]{revtex4-2}