A Browser-based Fast LaTeX Visual Editor.
- WYSIWYG
- Fast compilation thanks to LaTeX checkpointing
- Cloud file storage
Try it here: https://www.swiftlatex.com/oauth/login_oauth?type=sandbox
SwiftLaTeX is a Web-browser based editor to create PDF documents such as reports, term projects, slide decks, in the typesetting system LaTeX. In contrast to other web-based editors SwiftLaTeX is true WYSIWYG, What-you-see-is-what-you-get: You edit directly in a representation of the print output. You can import a LaTeX document at any stage of completeness into SwiftLaTeX. You can start a new document with SwiftLaTeX, or you can use SwiftLaTeX for final copy-editing. For advanced operation you can edit the so-called LaTeX source code, which gives you more fine-grained control. SwiftLaTeX is collaborative; you can share your project with others and work on it at the same time. SwiftLaTeX stores your data in the cloud under your account; currently it supports Google Drive and DropBox.
You are welcome to host SwiftLaTeX by yourself according to AGPL licence. And you can also use our web https://www.swiftlatex.com.
- Install Docker
- Run "docker build . -t swiftlatex/swiftlatex"
- Run "docker-compose up"
- Install Python3 && Pip3
- Run "pip3 install -r requirements.txt"
- Run "python3 wsgi.py"
Open url "https://localhost:3000", and enjoy writing.
- You first need to be a Google API Developer to retrieve a Google API Client ID and Secret. See here (https://developers.google.com/identity/protocols/OAuth2)
- Edit config.py and put your Client ID and Secret Inside. (You can use environment variables instead.)
All packages are dynamically loaded from our file server and cached locally. Our file server has almost all the packages. If you want to host the file server by yourself, you can checkout another repo: https://github.com/elliott-wen/texlive-server
Currently, this engine is built atop pdftex. So no unicode supported. We are working to port xetex in future release. The engine source code is hosted in https://github.com/SwiftLaTeX/PdfTeXLite. It is unusable so far as we need more time to upload and tidy up the source codes. Stay tuned.
- WYSIWYG Formulas are absolute positioned, therefore, the correct display only comes after a compilation. Reductant spaces occurs between words.
- Slow Upload to Google Our system abstracts your cloud storage as a POSIX-like file system to simplify user interface implementation at the cost of a little bit performance. We are working hard to improve our implementation to reduce the network turn around time.
- Sharing Files only works on Google
- Checkpointing breaks certain projects.
- Vertical Spilt View
- Adding XeTeX support. Clean up and Release Engine Source Codes.
- Tidy-up all the JS files.
- Add Github and S3 storage support.
As an open source project SwiftLaTeX strongly benefits from an active community. It is a good idea to announce your plans on the issue list. So everybody knows what's going on and there is no duplicate work.
The easiest way to help on the development with SwiftLaTeX is to use it! Furthermore, if you like SwiftLaTeX, tell all your friends and colleagues about it.
User feedback is highly welcome. If you wanna report bugs regarding some TeX documentations not compiling. Please attach the snippets so that we can look into it.
If you are sending PR requests, you own the copyright of your contribution, and that you must agree to give us a license to use it in both the open source version, and the version of SwiftLaTeX running at www.swiftlatex.com, which may include additional changes. For more details, you can see https://www.swiftlatex.com/contribute.html.
Thank you very much for your interest and support:) We are very happy to receive such a warm response. We are currently overwhelmed by our full-time jobs at uni. But we will try our best to monitor this repo and keep improving the code daily. Really appreciate your patience and wish you all a wonderful holiday season:)
If you are interested in reading tech jargons, you could have a look at https://dl.acm.org/citation.cfm?id=3209522&dl=ACM&coll=DL (Though some stuff in the paper is outdated.)