Overleaf: An open-source online real-time collaborative LaTeX editor
github.com
github.com
It wasn't until I started doing my PhD work where I realized the Overleaf is useful, because the collaborative tools are extremely handy. LaTeX is very popular in the academic world, and Overleaf allows me to easily work on papers with my advisors (who live in a different continent). It's been great.
I do wish they'd add Pandoc support; LaTeX is cool but I find Markdown considerably more pleasant about 95% of the time, so it'd be great if they could let us use that, though I realize this is probably easier said than done.
that's debatable
> I find Markdown considerably more pleasant
You could try https://typst.app/
* https://keenwrite.com/screenshots.html
* https://www.youtube.com/watch?v=vgyYXwwF_lc&list=PLB-WIt1cZY... (TeX + Markdown)
* https://youtu.be/XSbTF3E5p7Q?list=PLB-WIt1cZYLm1MMx2FBG9KWzP... (TeX + R + Markdown)
KeenWrite doesn't have a LaTeX integration. Instead, KeenWrite integrates KeenType[1], which is a plain TeX implementation based on NTS[2]. By offering only plain TeX, KeenWrite is technically compatible with either ConTeXt or LaTeX. At time of writing, KeenWrite interoperates with ConTeXt because ConTeXt makes a far superior split between presentation logic and content. KeenWrite can perform the following document conversions:
(R) Markdown (+ TeX) -> Text (+ TeX)
(R) Markdown (+ TeX) -> XHTML (+ TeX)
(R) Markdown (+ TeX) -> XHTML (+ SVG renders of TeX)
(R) Markdown (+ TeX) -> XHTML -> ConTeXt -> PDF
ConTeXt is able to directly transform XML documents into TeX instructions that are then used to typeset a PDF using a theme[3].[1]: https://gitlab.com/DaveJarvis/KeenType
While that requires a certain level of geekiness, I am pretty sure I could still walk my parents through installing it on Windows and get them using TeXStudio or something, so it's not insurmountable. LaTeX itself sort of inherently requires a willingness to do thing in the initially-less-easy way.
That said, yeah a web service is of course much more approachable. If my parents wanted to use LaTeX I would probably just point them to Overleaf.
Overleaf new ShareLatex is a godsend when collabing.
Example: I might commit a change that compiles perfectly fine with my version of asmath, but it conflicts with the version of asmath in the style guide of some UC Berkeley department/lab.
Been using texlive for years (also use it on Windows)
As far as I'm concerned, the outputs are pretty good but until somehow really makes no-nonsense software that can do that in an efficient manner, it might as well not exist at all.
I tried to install `texlive` (at your recommendation) also through brew, and got the error `Could not symlink bin/afm2tfm.Target /usr/local/bin/afm2tfm already exists.`
Overleaf just works.
That being said, I think the package you want is macTex, installable via `brew install --cask mactex`. As stated in the previous post, it's also pretty easy to get it working with Nix, even on macOS (which is my primary OS until T2 Linux becomes actually usable).
Download MacTex: https://tug.org/mactex/mactex-download.html
and double-click the .pkg file and follow the installer steps.
LaTeX is _definitely_ more flexible than Quarto or... really anything else. Tools like Quarto will get you most of the way without such a steep learning curve.
It's not strictly necessary (a shared Dropbox folder works for collaboration too), but it's a nice quality of life improvement.
Analogous to Dropbox vs Rsync. Sure you can use rsync, but Dropbox is just much easier.
Google Docs lacks some bibliographic management to be a complete solution, an area where Word 365 is also a mess.
It's surprisingly hard to find a complete collaboration setup that also works for non-technical users.
When working on my own, AUCTeX + git are great.
If you have all the files you can recreate the documents with a local latex installation. Overleaf makes this easy, since you can sync it with github repos.
Good luck accessing/recreating a google docs document if google has an unexpected downtime or gets shut down eventually.
One group with a paid, group subscription asked support about the instability, and was simply told their use case was unusual (writing conference papers with some git and some web editors?). They are now planning on moving away from using it.
That said, I actually don't think the integrated Overleaf editor is bad. They have Vim keystroke support, so I can fairly easily use it without much trouble on my end.
I’m not comfortable using it for extended work though. I miss things like surround text objects for TeX environments and macros (provided by evil-tex or vimtex), ergonomic entry of equations (provided by CDLaTeX or by the vimtex insert-mode bindings), autoformatting (provided by latexindent), and some navigational abilities (e.g. being able to jump to the documentation of TeX packages with a single keybinding). On top of that, there’s the missing general editor plugins… And at least on MacOS, their PDF viewer is quite blurry compared to the native viewers :)
With that said, I think Overleaf is great, and it’s made LaTeX itself much more accessible for a wider audience. But for me, it pales in comparison to a local Emacs or Vim configuration…
It took me the better part of a day to set up all the dependencies to properly compile the thesis template my uni provides. Just the core and basic extensions are over a gigabyte to download, then I had to manually copy something from one folder to another, then run some obscure command to rebuild...something, then the version of biber didn't match the version of something else, but if I installer biber directly then it didn't match some other perl library, but I couldn't uninstall and replace that because it was required by some other perl program I have installed...
Hardly anyone outside tech knows how to write using Markdown, and a rich text editor with good shortcuts will cater to both non-tech and tech audience.
All in all, I agree that writing in LaTex can be painful. I've wasted too many hours after having fallen into LaTex rabbit holes trying to fix obscure errors and weird rendering.
1) Markdown is considerably less verbose than LaTeX.
2) Not a fan of rich text. MS Word has kind of ruined it for me, every time I write something in MS Word there it feels like some funky invisible formatting ends up messing up my document. Markdown is still all plain text so weird formatting bugs won't sneak in and I can version control it trivially with Git.
3) LaTeX has some bullshit that consistently screws me up, like having to differentiate between forward quotes and backward quotes using backticks.
4) With the Pandoc flavor of Markdown it is easy to drop into LaTeX for equations, and I can also directly use BibTeX citations.
5) If I use Markdown, I can very easily get Pandoc to directly convert it to nearly any document format I want, and it does a very good job doing so, this includes LaTeX or XeLaTeX or ConTeXt if I want to render a PDF.
I don't hate LaTeX or anything, I just find Markdown more pleasant, and with Pandoc I can easily convert it to LaTeX later to render.
You might be working on a machine where you can not install software conveniently. For example:
- Provided by your employer or school
- Public library computer
- Tablet (iOS / Android) device (maybe connected to a screen and keyboard)
However, I feel it comes short is when there are several people working on a paper; at least I haven’t found a way to easily see my co-authors changes/diff. Hence, when I write papers with my students I prefer that we use GitHub directly. This makes it easy to split specific changes into commits and even use pull requests for larger edits. Of course, it requires some knowledge of git, but my students (should) have this knowledge being CS students :-)
I’m also not a fan of browser-based editors, but Overleaf’s editor has gotten a bit better since I first used it.
I randomly logged in to Overleaf the other day to make something quick in latex, and discovered that my dissertation would no longer compile. Since I'd graduated, I no longer had access to my school's account, and dissertations are so long they time out the build on the free plan.
That it's open source makes me feel better about ever being able to reproduce a build someday if I needed to. (As I write this, I realize I never will. But the it's the feeling that counts!)
Source: I used sharelatex before and all my stuff from 10 years ago is now on overleaf, even though I don't even use it!
[1] https://github.com/overleaf/overleaf/blob/main/docker-compos...
It especially shines when you have to collaborate. The convenience of small features also add up, such as being able to leave comments for your collaborators, clicking on the LaTeX document to have the PDF viewer scroll to the corresponding location, and vice-versa (doesn't work exactly the same way, but close), having a fast compile mode that keeps recompiling as you make changes (good for editing, distracting for writing, but ymmv), being able to click on the toc that is generated by overleaf in a side panel.
Maybe other tools do some of these things, but having all of them in place is nice.
Emacs. I have almost everything you mentioned out of the box with doom Emacs, and the other stuff should be trivial if it doesn't already exist.
But good to know! Although I am curious as to how clicking on TeX leading to scrolling the PDF to the corresponding location in the PDF would work (and vice-versa). Also for collaboration (some of my collaborators are not in the same continent) I'm assuming you need to host an emacs server; where might one typically do this? Any cloud compute provider, e.g., Linode?
As God intended. ;) They actually don't though, if they prefer to remain heathens see bottom of this reply.
> Although I am curious as to how clicking on TeX leading to scrolling the PDF to the corresponding location in the PDF would work (and vice-versa).
Could be wrong, but I think the synchtex files produced by builds are for that. I usually have the PDF open in one Emacs buffer (you can view pdfs in Emacs), and the TeX file open in another. Ctrl-left click in the PDF jumps to the spot in the text buffer for that spot in the PDF, and in the TeX buffer there is a keybinding to do the reverse. Probably a way to click and get there too, but I use the keybinding.
> I'm assuming you need to host an emacs server
No, Emacs runs locally and interfaces with the cloned git repo on your machine. Your collaborators could use Notepad for all Emacs cares, as long as they work in the same repo and push to the shared remote.
For collaboration, I meant real-time collaboration, where you see your collaborator's cursor or changes while you are on the document yourself. Git push/pull probably won't suffice for that, but yes, while convenient, the larger question is if all projects even need that kind of collaboration.
I suggested one my students simply install LaTeX and he went down some Docker rabbit hole a fellow class mate sent him. Students do love to over complicate things.
The macOS installer is very easy to use and you can even install a basic version that installs the main latex packages you need (91MB). If you need to install more than the basic ones there is a package manager UI for that (TeX Live utility). Of course I just install the full version and I have everything. It is 5.7GB download.
If there's any interest I would like to share it, if only for the "import all files in folder" thing. But how should I go about sharing it? A Github repo? Or somewhere inside Overleaf?
Of the ones that are they are very short, and typically buxfixes or changes to infrastructure rather than any new features.
I think I count 4 prs merged, with less than 20 lines of code altered, since 2022, and even going back until the beginning of the 2014 commit history, it's hard to find a PR that's altering core functionality.
https://github.com/overleaf/overleaf/pulls?q=is%3Apr+is%3Ame...
2024
+1 -1 A user should be created and a mail with an activation URL should be sent. #1208
+6 -6 Fix 502 errors due to IPv6 #1175
+1 -1 Make the number of max entities per project configurable #1108
2023
+6 -0 added SIGKILL timeouts for docker and phusion_image #1090
I made https://resumai.co/convert to allow others to use the template. It works fairly well with most inputs. It's a free tool!
I never know they have open source though. I seriously did a google search "overleaf alternative self host" last month and didn't realize this.
It’s interesting to see that they are still around. I remember in one of my tickets, one of the front desk ticket personnel had a PhD herself and was very quick to narrow down the code within SVG file causing rendering issues!
I've used Overleaf before the ShareLaTex merge strictly for the collaboration feature - setting up and using LaTeX on Ubuntu was easy enough, especially since pdflatex (just tex -> PDF, no more tex -> DVI -> PostScript -> PDF nonsense!) and me or a collaborator usually compiled the final PDF locally IIRC.
(Tangential to your specific point but relevant to many comments here: if your collaborators are not from CS or are not s/w savvy, using git directly is not an option for them. For people who want to just use LaTeX, Overleaf lowers the minimum skill requirement to just knowing LaTeX. This is a big benefit it brings to the table.)
Unfortunately, it seems that most collaborative editing tools are web or work on a client-server model where only the "server" has the actual files and can compile them to pdf. (The client can collaboratively edit raw latex but can't see the resulting pdf)
Unfortunately, in my experience it does not work as well with Git as they advertise.
> It also includes more features for security (SSO with LDAP or SAML), administration and collaboration (e.g. tracked changes).
It may have been a “workstation” (i.e. Sun or similar) product vs a Mac/PC product.
Took us about three months to pick Overleaf, we went for it largely because it was a single word, hard to confuse/mispell when said aloud (unlike writeLaTeX), had a connection with writing "over the page", and probably must importantly, we could get the .com domain.
Can you explain this part? The sound of "Leaf" could be represented by any number of possible spellings, eg "leave", "lief", "leeve"... - not all are standard English words, but neither is "Overleaf", and exotic/made-up spelling would be just par for the course for a tech product with an exotic/made-up name.
I actually really liked the domain name writelatex.com, because it pretty much tells you what you can do and it's easy to remember, even if you haven't used it in a long time (which could easily happen for a product that gets used a lot in academia and much less outside, eg someone returning to school after a few years of work).
That's an interesting point about the pronunciation - overleaf is a standard English word, and certainly seemed less confusing than writeLaTeX when said aloud, but I agree it's not perfect! Was the best we could find at the time (especially given the other needs mentioned above).
How difficult is it to self host and maintain overleaf docker containers with docker compose? Less than 10 users.
I wouldn't recommend LaTeX to a casual user writing the occasional letter or memo, but if you're writing an academic paper with equations, figures, references, etc., then Word is a massive pain. Markup languages like LaTeX take some initial investment to learn, but at a certain level of complexity, they become less of a pain than a WYSIWYG editor like Word.
As for your comparison to Notepad, I wasn't aware that Notepad allowed simultaneous, collaborative editing by multiple online users, revision tracking, continuous compilation of markup to PDF, and jumping between the same location in the markup and compiled PDF. Notepad must have come a long way since the last time I used it.
There is some exaggeration in my "Notepad", but the fact is, Overleaf lacks many features of a decent modern text editor, starting with a decent menu bar, all wrapped in the awkwardness of using a web browser as the main window, plus having to upload all files to a shared web space where your tools aren't available. (Forget dynamic documents which mix code and text.)
title: Title of article
author: Author Name
not 300 lines of backslashes. When there's an image in the text, I want to see ``, not some huge paragraph starting with `\float`.At some point, someone has to convert your Markdown to LaTeX and properly typeset it.
Beyond that, how do you handle equations? I assume you embed LaTeX in your Markdown for that. How do you handle references? Do you use a BibTeX extension for Markdown?
In the end, I doubt that your setup is much simpler than just loading the LaTeX template for whatever journal you're submitting to, and adding your content.
> with none of the basic features you'd expect from your text editor
it has a vim mode, so I'm happy.