LaTeX engines & packages
Choose Tectonic or a latexmk compiler, use an existing TeX distribution, or install Oleafly's managed TinyTeX.
이 콘텐츠는 아직 번역되지 않았습니다.
Oleafly ships Tectonic and can also compile through latexmk. The project compiler menu controls day-to-day builds. Settings → Engines shows the TeX distributions and packages available on your machine.
Tectonic: the everyday engine
Section titled “Tectonic: the everyday engine”Tectonic is the default compile engine until you pick another under Default compile engine in Settings → Engines → LaTeX. It needs no separate installation, fetches packages as needed, and caches them for offline use. It is a good fit for most projects and remains available even when no system TeX distribution is installed. See Set a default for new projects.
For tagged PDFs, use the LuaLaTeX workflow. Tags describe document structure for assistive technology. Inspect the result with Preflight after compiling.
latexmk and system TeX
Section titled “latexmk and system TeX”Choose pdfLaTeX, XeLaTeX, or LuaLaTeX from a project’s compiler menu when the project depends on a traditional TeX Live or MiKTeX workflow. Oleafly runs those compilers through latexmk.
There are two ways to provide that toolchain:
- Use an existing installation. Oleafly detects MacTeX, TeX Live, MiKTeX, and TinyTeX on your system. A system installation takes priority over Oleafly’s managed copy only when its binary directory contains
latexmk, pdfLaTeX, XeLaTeX, LuaLaTeX,kpsewhich, and Biber. A partial installation cannot silently outrank a working managed TinyTeX. - Install managed TinyTeX. The download is about 250 MB and installs under
~/.oleafly/tinytexwith no administrator access. You can remove it from Settings later.
latexmk is not a filesystem sandbox. Even with shell commands blocked, TeX can read files available to your account. Oleafly also disables project, user, and system .latexmkrc files because they are executable Perl. Use system TeX only for projects you trust. An imported project uses system TeX only when you choose it, either as the default compile engine or from the project’s compiler menu. A folder you open in place stays on Tectonic until you trust it.
When Tectonic isn’t enough
Section titled “When Tectonic isn’t enough”Some documents need things the built-in Tectonic engine doesn’t do, such as EPS figures or a forced pdftex driver. When the first compile after you open a project runs into one of these, the engine dialog opens on its own. An import that finds such features opens it too, and Choose engine to the left of Compile reopens it later. The dialog has three choices:
- Keep using Tectonic, with a note on which features will keep failing.
- Use system LaTeX, which switches the project to
latexmkon the TeX distribution Oleafly found. When a document needs pdfLaTeX, the button reads Switch to pdfLaTeX and recompile and shows the result in the preview. - Download and use TinyTeX, when no TeX distribution is installed.
If the project also needs to run external commands, picking system LaTeX allows them too, and the dialog says so before you click. When the project already uses system LaTeX, the dialog offers Recompile. The choice is saved in the project, so collaborators get the same setup.
Allow external commands
Section titled “Allow external commands”Packages such as minted and PythonTeX, and documents that use \write18, run other programs while they compile. Oleafly blocks that by default. When a compile is blocked, or the log shows that the project needs those commands, a banner above the editor offers Allow external commands.
Allow them only for a project whose files you trust, because LaTeX can then run any program with your permissions. The permission works only with system LaTeX, and it stays on this computer. It is never stored in project.json or committed to Git, so a coauthor has to allow it on their own computer. In a shared project, Oleafly warns you before turning it on, because anyone who can edit the project could then run programs on your computer when you compile. Switching the project back to Tectonic or deleting it removes the permission. In a folder you opened in place, trust the folder first. Trusting a folder does not allow external commands by itself.
With an engine present, the Preflight panel’s Compile tagged and verify button can produce a tagged PDF with LuaLaTeX and immediately audit it, in one step. Prefer your own toolchain? Preflight’s Prepare for accessible export rewrites your source for tagging and you compile it with any LuaLaTeX (TeX Live 2025 or newer) outside the app.
The package manager
Section titled “The package manager”Below the engine status sits a filterable Packages list for the LuaLaTeX side, powered by tlmgr:
- Start with the suggested package list, or enter at least two characters and choose Search TeX Live to query the full catalog.
- Search by a package name or a file it contains. Oleafly shows the owning TeX Live package when those names differ.
- Add or Remove a package with one click. Installed rows show whether the package is in the system tree, your personal tree, or both.
- Check the tagging badge before an accessible export: tagging: caution marks packages that can reduce tag quality, while breaks tagging marks known conflicts.
This package manager applies to TeX Live and TinyTeX distributions used by latexmk. Tectonic manages its own package cache. For MiKTeX, use MiKTeX Console.
Recover from a missing file
Section titled “Recover from a missing file”A package is not always named after the file mentioned in a compile log. For example, tikz.sty is installed by the pgf package. Installing a guessed package called tikz would fail.
When a latexmk compile reports a missing file, use Find and install in the message. Oleafly asks TeX Live which package owns the file, installs that package, and recompiles. You see the original error if the catalog is unavailable, the package belongs to a different TeX Live release, or the installation still fails.
If you try to change a system installation without permission, Oleafly can install into your personal TeX tree instead. The package row identifies where it ended up. Removing an owner package also removes the other files it provides, so read the Included in note before removing it.
Add a package from the editor
Section titled “Add a package from the editor”Choose LaTeX packages, the package icon on the LaTeX editor toolbar, to search CTAN without leaving the document. Each result shows whether the document already loads it (In document). In a latexmk project it also shows whether your TeX distribution has it (Installed), and Install adds a missing one with tlmgr.
Add to preamble writes the \usepackage line into the preamble. Options lets you add package options first, and Copy line copies the line instead. A Tectonic project has nothing to install: Tectonic downloads a package the first time the document uses it.
Which engine compiled my PDF?
Section titled “Which engine compiled my PDF?”- Compiler (this project) in the compile menu, the arrow beside Recompile, shows the compiler saved for the current project.
- Tectonic builds use the bundled engine.
- pdfLaTeX, XeLaTeX, and LuaLaTeX builds use
latexmkand the selected TeX distribution. - Preflight’s tagged export uses LuaLaTeX and writes to the normal build location.
Templates and packages
Section titled “Templates and packages”Templates declare the packages they need, and Tectonic fetches them on first compile. Templates with on-demand fonts handle those separately. See Templates.