While you are using Overleaf your own computer never typesets anything. Overleaf is a browser-side window onto a TeX Live installation running on Overleaf's servers, and almost every difference from a desktop LaTeX setup follows from that single fact: instead of upgrading TeX Live you pick a year per project, you cannot install a missing package with tlmgr, you never type a compiler flag yourself, and getting a manuscript in and out means uploading, downloading or git. In exchange you get the one thing a local install cannot do — two people typing in the same line at once. This page follows those constraints and that payoff in the order you meet them.
What it changes to have no TeX on your machine
To begin with, you cannot add packages yourself. Overleaf's servers carry a full TeX Live — each release contains over five thousand packages — but nothing lets a user run tlmgr install for something that is not there. The alternative is to put the .sty or .cls into the project, and here placement is governed by a rule: the compile process cannot locate those files unless they sit at the top level of the project. If you want them tidied into a folder, you have to create a latexmkrc at the top level and point TEXINPUTS at it.
# latexmkrc at the top level of the project
# look in tex/ and bst/ before the system tree
$ENV{'TEXINPUTS'} = './tex//:' . $ENV{'TEXINPUTS'};
$ENV{'BSTINPUTS'} = './bst//:' . $ENV{'BSTINPUTS'};That a latexmkrc works at all tells you how Overleaf is built: the build is driven by latexmk. So that file is also your only lever when you want to add a compiler flag. In practice the urge arises less often than you might think — minted, which normally demands -shell-escape, works “out of the box” on Overleaf in their own words, because the server side has already been arranged for it. The self-hosted Community Edition, by contrast, disables \write18 by default, on the grounds that every compile there runs inside the same container. Two products under one name, with opposite defaults for calling out to external programs.
“It compiles on Overleaf but not on my machine”: the TeX Live year
The usual cause of that mismatch is not the editor but the year of the distribution. On Overleaf the TeX Live version is a per-project setting: open the gear icon, go to Compiler, and pick from the TeX Live version dropdown beneath it. The year you choose in one project never affects another. Older releases are grouped as Legacy; Overleaf itself says they are “not recommended for new projects,” yet keeps them so that older templates still compile. Switching is not a permanent change — you can go back whenever you like.
The design is worth remembering if only so you blame the right thing. A figure that breaks on a co-author's screen, a submission template that compiled last year and does not now — the first thing to compare is neither the editor nor a package version, but the TeX Live year on each side. Conversely, once you and your co-authors and your target journal are all on the same year, that variable leaves the conversation. Note also that Overleaf adopts a new TeX Live after testing it, so for a while after an upstream release the default may still be the previous year.
Creating a project: the order of the first hour
Everything happens inside a project. New Project at the top left of the dashboard offers a bare Blank Project, From Template to start from the gallery, Upload Project to bring in a local .zip, and Import from GitHub. Whichever you pick you land in the editor, split three ways: the file list on the left, the source in the middle, the PDF on the right. Because it starts in a browser, it is tempting to touch templates, collaboration, Git and figures all at once — but the order that avoids accidents is fixed: alone first, and only as far as a minimal body that reliably becomes a PDF.
- Choose a blank project or the target journal's template, and identify which file is the entry point — typically
main.tex. - Before rewriting a word of the body, press Recompile once and confirm that the starting state produces a PDF.
- Set the Compiler and the TeX Live version in the Menu, and make the Main document explicit if there is any doubt.
- If you are writing Japanese, decide early between LuaLaTeX and a pLaTeX/upLaTeX route driven through
latexmkrc. - Invite collaborators only once the root file, the compiler and the bibliography policy are settled.
- Before submission, download a ZIP so that you hold a copy you can reproduce locally.
Which Compiler to pick, and what “LaTeX” means here
The dropdown holds only four entries: pdfLaTeX by default, plus LaTeX, XeLaTeX and LuaLaTeX. The choice applies to that project alone. Two axes decide it: how you want fonts handled and what format your figures are in. pdfLaTeX takes .png, .jpg and .pdf, and converts .eps on the fly; XeLaTeX and LuaLaTeX handle Unicode and system fonts (OpenType/TrueType) directly and are not fussy about image formats.
| Compiler | What it is / images | Reach for it when |
|---|---|---|
pdfLaTeX | default; .png, .jpg, .pdf, and .eps converted on the fly | standard, mostly-Western documents |
LaTeX | goes via DVI to PDF (dvipdfmx inside); only .eps / .ps images | pLaTeX workflows; figures that are all EPS |
XeLaTeX | Unicode and system fonts (OpenType/TrueType) | quick OpenType use; multilingual text |
LuaLaTeX | Unicode, system fonts, and Lua scripting | modern setups; a good fit for Japanese |
One name here invites a misunderstanding. The LaTeX entry in the dropdown does not mean the bare latex command; it means the route that goes through DVI to PDF, calling dvipdfmx internally. That is why its figures are limited to .eps and .ps and you cannot simply drop in a .png. Conversely, the Japanese pLaTeX workflow described below begins by selecting this “LaTeX.” Choose LaTeX or XeLaTeX if you need pstricks, too — LuaLaTeX does not support it. Which file is the entry point to the body is the Main document setting, changed from the three-dot icon in the file list.
Typesetting Japanese: LuaLaTeX, or pLaTeX through latexmkrc
The default pdfLaTeX cannot set Japanese. Type Japanese with no preparation and you get either an error or vanished characters. There are two routes: (1) switch the Compiler to LuaLaTeX, or (2) drive pLaTeX/upLaTeX through a latexmkrc. For a fresh start (1) is the gentler one, and the setup is essentially a single line. Set Compiler to LuaLaTeX in the Menu and name a luatexja class in \documentclass — ltjsarticle or ltjarticle for horizontal setting — and Japanese typesetting is up. Without an explicit font you get a sensible embedded default; luatexja-preset lets you embed the IPAex fonts.
% Menu -> Compiler -> LuaLaTeX before compiling this file
\documentclass{ltjsarticle}
\usepackage[ipaex]{luatexja-preset}
\begin{document}
\section{はじめに}
こんにちは、\LaTeX! 数式も書けます: $e^{i\pi}+1=0$
\end{document}To write in the pLaTeX workflow still prevalent in Japanese journals, set the Compiler to “LaTeX” and add a file named latexmkrc at the top level of the project. Because Overleaf builds with latexmk, that file is where you say “process this with platex, then make the PDF with dvipdfmx.” For upLaTeX, replace platex with uplatex and pbibtex with upbibtex. A comparatively recent option is the jlreq class, usable with LuaLaTeX, pLaTeX or upLaTeX alike.
# latexmkrc for the pLaTeX route; set Compiler to LaTeX in the Menu
$latex = 'platex';
$bibtex = 'pbibtex';
$dvipdf = 'dvipdfmx %O -o %D %S';
$makeindex = 'mendex %O -o %D %S';If you would rather skip this configuration entirely, the Japan-made Cloud LaTeX typesets Japanese with no setup at all, and is worth considering for a manuscript that is mostly Japanese. One more note: the click that moves you between the editor and the PDF on Overleaf is SyncTeX too, and every compile writes an output.synctex.gz on the server — the outputs are named output.* rather than after your main file because that is how Overleaf's build is arranged. Those jumps do not work, however, if the PDF viewer setting is “Browser.”
Getting a manuscript in and out: ZIP, GitHub and the Git bridge
If your draft is already on disk, Upload Project is the shortest path: drop in a .zip and Overleaf unpacks it, recreating your folder structure as a project. The limits are specific, though. The archive may contain only files a LaTeX compiler can process — plain text plus images in .eps, .pdf, .svg and .png; editable material is capped at 7 MB; no single file may exceed 50 MB; and one upload carries at most 180 files. A Word .docx or a huge dataset simply will not go in. The surprising trap: it will not work if your main document sits inside a folder. If everything in the zip is wrapped in one directory, lift the contents out a level and zip it again.
If the manuscript lives in Git, there are two roads. Import from GitHub — after you link a GitHub account in Account Settings — turns a visible repository into a project, after which you can push and pull between Overleaf and the repository. The other is the Git bridge, which cuts out the hosting service and lets you git clone straight from git.overleaf.com: the clone URL is your project URL with www replaced by git, and you authenticate with a token. Both are paid-plan features, and Overleaf supports neither Git submodules nor Git LFS. A repository that is too large will hit the size limit and fail to import.
Collaborating: Editors count against your plan, Viewers do not
Overleaf's biggest draw is genuine simultaneous editing. Invite people from Share at the top right and you can open the same manuscript together, each other's cursors and edits appearing live. There are two ways to invite: by email address, choosing Editor or Viewer, or by handing out a link through Link Sharing. Link Sharing issues two kinds of URL: anyone with the View link can read, and anyone with the Edit link can edit — editing requires creating an account.
This is where the head count bites. Viewers never count against the limit, but Editors consume the project owner's plan allowance. Past the limit, anyone joining through the edit link drops to view-only automatically. On the free plan you get one collaborator — you and one other person can co-write for nothing. Paid plans raise it: Overleaf's plan-limits page (checked August 2026) gives 10 on Student and Standard, and unlimited on Pro.
The tools of review and revision split cleanly between free and paid. In-document comments work on the free plan, but track changes — accepting or rejecting each edit individually — and the full version history that rewinds the project to an earlier state are paid features. Needing those two in a heavily co-authored revision is the usual thing that tips people into a subscription. Overleaf itself, incidentally, began around 2012 as WriteLaTeX, founded by the mathematicians John Hammersley and John Lees-Miller, and in July 2017 it merged with its rival ShareLaTeX, gathering both user bases into one environment. The arrangement of features you see on screen is a product of that confluence.
When the compile times out
Because the build runs on someone else's server, there is a ceiling on time. Overleaf's plan-limits page (checked August 2026) gives the free plan 10 seconds of compile time and paid plans 240 seconds. A long thesis, or a heavy TikZ or pgfplots figure, can exceed that and be cut off. It is an unavoidable consequence of writing in a browser, so as the manuscript grows it pays to start treating the project less as a convenient scratchpad and more as a reproducible typesetting environment.
- Confirm the Compiler, the TeX Live version and the Main document in the Menu, and have your co-authors check the same settings.
- If heavy TikZ/pgfplots figures or high-resolution images cause timeouts, precompile the figures to PDF, or temporarily remove a heavy chapter to isolate the cause.
- When errors multiply, turn off Auto compile, switch to Stop on first error, and fix only the first error before reading on.
- Stale intermediate files can misbehave, so when something looks wrong, clear the project cache and recompile.
- Right before submission, use Download as ZIP and confirm that the bundle reproduces the same PDF locally or in a separate project.
What starting from a template saves you
What it saves is the work of satisfying the submission rules after the fact. Overleaf's gallery holds a vast set of starting points — journals, conference proceedings, CVs, theses, slides — and you either choose a type from New Project → Templates or open overleaf.com/gallery directly and press Open as Template on one you like, and a project springs up in that style. “Official” templates from publishers and learned societies are the ones that really earn their keep: they carry that journal's class file and layout rules from the start, and some let you submit straight from Overleaf once the manuscript is ready.
One practical piece of advice for choosing. A template brings with it not only a look but assumptions about the Compiler and the TeX Live year. Press Recompile once immediately after opening, before you have changed a word, and confirm the PDF appears under those assumptions; do that and you will never later have to disentangle “is it my writing or is the template out of date?” You can also submit a template of your own to the gallery.