LaTeX support for the IntelliJ Platform by JetBrains.
No idea where to start? Have a look at the installation instructions. Otherwise, take a look at the tips instead.
Create the most beautiful LaTeX documents with the user friendliness of the IntelliJ platform. This plugin adds the tools to make creating LaTeX documents a breeze. We are currently doing our best to develop the plugin.
You can share new ideas/feature requests/bugs/calls for help in multiple ways:
- Live chat via gitter (you can login with your GitHub account). Gitter also has a nice app, we use it to get notified of new activity.
- Issues. These may be bug reports, feature requests, user support, etc. Just generally anything you have a problem with/suggestion for. For general feedback we advice using the gitter.
Please bear in mind that this is just a side project for us. It might take a while to fully process your feedback. We try our best :3
We would love it if you want to contribute to this project! Please have a look at the contributing guidelines to get started.
- Syntax highlighting
- Autocomplete of labels, (custom defined) commands and environments
- Writer ergonomics - writing LaTeX made less cumbersome
- Compiler support for pdfLaTeX, LuaTeX, Latexmk, texliveonfly, XeLaTeX, bibtex, and biber
- Inspections. Intentions. And heaps more inspections
- Full BibTeX support
- Formatter for LaTeX and BibTeX
- Structure view for LaTeX and BibTeX with filters
- Code folding for imports, sections, and environments
- SumatraPDF (Windows), Evince (Linux), Okular (Linux) and Skim (MacOS) support with forward and backward search
- Smart Quotes
- Unicode math preview
- Equation preview
- Gutter icons for quick compilation and file includes
- Fancy icons that fit in with the IntelliJ style
- Brace matching
- Word counting tool
- File templates for .tex, .sty, .cls and .bib files
- Automagically import packages of common commands
- Go to declaration and find usages for labels, citations, and custom commands
- Renaming of labels, citations, environments and files
- Shortcuts for styling text
- Line commenter
- Support for user-created document classes and packages
- Toggle star action
- Words of encouragement
A more extensive (but not complete) list can be found in the Wiki.
These instructions were tested on Windows 7, 8.1 and 10.
- If you don't have the latest version yet, download and install IntelliJ IDEA, the Community edition is free. You may want to install the Jetbrains toolbox instead, so you can manage projects and editors easily (Jetbrains has editors for more programming languages as well).
- Download and install LaTeX for Windows. During installation, choose the option
Install missing packages on the fly: yes
. - Download and install SumatraPDF, you will use it to view your compiled pdf files. If you know you are on a 64-bit system you can download the 64-bit build. If you have no idea, download the normal installer which is the top-most link.
- Open IntelliJ, in the welcome menu choose Configure - Plugins (or when you already have a project open, use File - Settings - Plugins).
- Search for
texify
, clicksearch in repositories
and clickinstall
. - Restart your pc to finish the LaTeX and the plugin installations.
- Click on Create New Project (in welcome menu) or File - New - Project, select LaTeX in the left column and click next. Specify a name for your project, and a location. A project can contain multiple LaTeX files, so for example if you make a new document for each new homework you get, place them all in the same project.
- Double-click or click on the arrow next to your project name on the left to open the directory.
- A standard document is already made for you, you can find it in the
src
folder. This folder will contain all your LaTeX. Double-click on the.tex
file to open it. If you cannot see any directory structure (the folders on the left side), hit Project (it's written on its side) on the left of your screen. - Type some text between the
\begin{document}
and\end{document}
lines, hit the compile icon next to the\begin{document}
line and click Run, or use Ctrl+Shift+F10. If you see a pdf appearing, congratulations! - If you see
LaTeX error: file a4.sty not found
then you did not restart your pc. Do it now. - The next time you can also compile using the Run button (looks like a Play button) in the top-right menu, or using Shift+F10 on Windows.
- When your cursor is in IntelliJ and you have just compiled a document, you can look up which line in the pdf corresponds to the line your cursor is at by going in IntelliJ to the Tools - LaTeX menu in the top menu bar and clicking SumatraPDF - Go to line in PDF, or using the shortcut which is listed there. This shortcut can also be used to bring the SumatraPDF window in view when you do not see it.
- If you don't see a SumatraPDF option, reboot your computer.
- You can also do the reverse: you have to configure it once by clicking Tools - LaTeX - SumatraPDF - Configure inverse search. Then double-click in SumatraPDF in a pdf you just compiled, and it should make your cursor go to the correct location in IntelliJ.
- Have a look at the tips.
These instructions were tested on at least Ubuntu 16.04, 18.04, Fedora and Arch Linux.
- If you don't have the latest version yet, download and install IntelliJ IDEA, the Community edition is free. You may want to use the Jetbrains toolbox instead, so you can manage projects and editors easily (Jetbrains has editors for more programming languages as well). Download and save the
.tar.gz
file to your Downloads folder. - You can extract in your Downloads folder with, in case you downloaded IntelliJ, (change the exactly version number to the correct one, you can use tab for autocompletion)
sudo tar xf ideaIU-2018.1.5.tar.gz -C /opt/
, then run/opt/idea-IU-181.5281.24/bin/idea.sh
, or in case you downloaded the toolbox,sudo tar xf jetbrains-toolbox-1.11.4269.tar.gz -C /opt/
and run/opt/jetbrains-toolbox-1.11.4269/jetbrains-toolbox
, then install IntelliJ. - To install LaTeX, you can use the TeX Live distribution. If something is already installed, check that the version is at least 2017 with
latex --version
. If not, for example if you are on Ubuntu 16.04, you have to first remove the old TeX Live (see for example these steps) and then install a newer TeX Live (based on the LaTeX3 setup):- Run in your Downloads directory
sudo wget http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
sudo tar -xzf install-tl-unx.tar.gz
sudo install-tl-20*/install-tl -scheme scheme-basic
- Then use
nano ~/.profile
to add texlive to your path, so at the end of the file writeexport PATH="/usr/local/texlive/2018/bin/x86_64-linux:$PATH"
. - Log out and log back in for this to take effect. Check again with
latex --version
andpdflatex --version
andtlmgr --version
that everything went right. - Now you probably need to
sudo visudo
to modifyDefaults secure_path="/usr/..."
to make it look likeDefaults secure_path="/usr/local/texlive/2018/bin/x86_64-linux:/usr/..."
.
- Run in your Downloads directory
- Now you can install packages, so
sudo tlmgr install xkeyval collection-latex collection-langeuropean
and all the other packages you want. - Open IntelliJ, in the welcome menu choose Configure - Plugins (or when you already have a project open, use File - Settings - Plugins).
- Search for
texify
, clicksearch in repositories
and clickinstall
. - Restart IntelliJ to finish the the plugin installation.
- Click on Create New Project (in welcome menu) or File - New - Project, select LaTeX in the left column and click next. Specify a name for your project, and a location. A project can contain multiple LaTeX files, so for example if you make a new document for each new homework you get, place them all in the same project.
- Double-click or click on the arrow next to your project name on the left to open the directory.
- A standard document is already made for you, you can find it in the
src/
folder. This folder will contain all your LaTeX. Double-click on the.tex
file to open it. If you cannot see any directory structure (the folders on the left side), hit Project (it's written on its side) on the left of your screen. - Type some text between the
\begin{document}
and\end{document}
lines, hit the compile icon next to the\begin{document}
line and click Run. The resulting pdf file is hiding in theout/
folder. - The next time you can also compile using the Run button (looks like a Play button) in the top-right menu, or using Shift+F10.
- When your cursor is in IntelliJ and you have just compiled a document, you can look up which line in the pdf corresponds to the line your cursor is at by going in IntelliJ to the Tools - LaTeX menu in the top menu bar and clicking Evince - Forward Search, or using the shortcut which is listed there. This shortcut can also be used to bring the Evince window in view when you do not see it.
- You can also do the reverse: press Ctrl and click in Evince in a pdf you just compiled, and it should make your cursor go to the correct location in IntelliJ.
- Also have a look at the tips.
Note that we didn't have the opportunity yet to test these instructions, so please let us know if you did.
- If you don't have the latest version yet, download and install IntelliJ IDEA, the Community edition is free. You may want to install the Jetbrains toolbox instead, so you can manage projects and editors easily (Jetbrains has editors for more programming languages as well).
- Download and install LaTeX for Mac. During installation, choose the option
Install missing packages on the fly: yes
. - Open IntelliJ, in the welcome menu choose Configure - Plugins (or when you already have a project open, use File - Settings - Plugins).
- Search for
texify
, clicksearch in repositories
and clickinstall
. - Restart your pc to finish the LaTeX and the plugin installations.
- Click on Create New Project (in welcome menu) or File - New - Project, select LaTeX in the left column and click next. Specify a name for your project, and a location. A project can contain multiple LaTeX files, so for example if you make a new document for each new homework you get, place them all in the same project.
- Double-click or click on the arrow next to your project name on the left to open the directory.
- A standard document is already made for you, you can find it in the
src
folder. This folder will contain all your LaTeX. Double-click on the.tex
file to open it. If you cannot see any directory structure (the folders on the left side), hit Project (it's written on its side) on the left of your screen. - Type some text between the
\begin{document}
and\end{document}
lines, hit the compile icon next to the\begin{document}
line and click Run. If you see a pdf appearing, congratulations! - The next time you can also compile using the Run button (looks like a Play button) in the top-right menu.
- Have a look at the tips.
- You never have to remember to save your work, IntelliJ will automatically save every letter you type.
- You can personalise the template that is used when you create a new LaTeX file in settings - editor - file and code templates - LaTeX source.
- You don't need to close the pdf to recompile, it will automatically refresh.
- A good way to start learning LaTeX is by asking someone how to do what you want to do or by Googling "what-I-want-to-do latex".
- But some standard LaTeX commands are available in the LaTeX menu.
- Pay attention to squiggles (wavey lines) under text you typed, they indicate that something is wrong. Hovering over it gives extra information. In some cases, a ready-made fix is waiting to be applied: hit the lightbulb that appears on the left, or hit Alt+Enter to view and apply it. A quick overview of useful shortcuts is below.
- If your LaTeX indentation (the number of spaces that is in front of each line) looks messy, try to reformat with Ctrl+Alt+L.
- This plugin contains an Equation Preview, which lets you preview equations without having to compile the entire document. It does however require other software, for which you can find installation instructions below. The same software requirements hold for the TikZ Preview, with which you can preview TikZ pictures.
- If you are searching how a particular symbol has to be written in LaTeX, the Detexify tool can probably help you. Just draw your symbol in the
draw here
box and the command will be listed on the right. - If you want a proper explanation of what LaTeX and its philosophy is about, read the Not So Short Introduction To LaTeX2e.
- Often you will be working together on one document. In that case, use git to make this go smoothly. We use git because git is awesome, but there exist other tools as well.
- But sometimes you cannot use IntelliJ, for example because you are at school. For that, we use Overleaf.
- Note that this Overleaf feature will become paid in Overleaf v2, and direct git access will stop end of 2018. If you find an other service that can do this for free, please let us know. As an alternative you can use a git hosting service without LaTeX editing, like GitHub (see below).
- Install git, during installation just click
next
everywhere. - Restart your computer.
- Go to Overleaf and sign up.
- Create a new project, choose a blank template. Possibly give it a useful name.
- Click
Share
and copy the link underclone with git
. - Go to IntelliJ and click File - New - Project from VCS - git
- Paste the url here, and choose the parent directory you want.
- If you are asked by IntelliJ
Do you want to add this file to git?
, just clickno
when you do not recognize the file. - You can share the Overleaf link under
Read & Edit Link
with your co-authors.
- Hit Ctrl+K to commit changes to git.
- Specify a commit message.
- Click
commit and push
by hovering over thecommit
button. - If your git username is asked, specify it.
- Click
push
.
- Hit Ctrl+T.
- That's great! Because git and similar tools are used everywhere by programmers to collaborate, it's not just for LaTeX and doesn't work just with Overleaf.
- GitHub, the site you are now looking at, is used a lot to store code online and collaborate using the same push and pull mechanism as you used all the time, but now to GitHub instead of Overleaf. After you made a new repository, click
Clone or download
to get a git link, and then do the same steps as you did with the Overleaf link. - If you want to know more, a great git tutorial is at learngitbranching.js.org.
- Want to know even more of advanced use of git? Read the excellent Pro Git book for free.
- Double Shift Search for any IntelliJ command, like Reformat.
- Alt+Enter View the quick fix, if there is one. Apply the fix with Enter.
- Ctrl+Alt+L Reformat your LaTeX.
- Ctrl+K Commit and push changes.
- Ctrl+T Pull changes.
Any suggestions for improvements of the installation instructions, however small? Please let us know at gitter!
You can use the Equation Preview by making sure your cursor is in a math environment and clicking the Tools | LaTeX | Preview Equation menu, or using Ctrl+Shift+X.
You can use the TikZ Preview by placing your cursor in a tikzpicture
environment and click the Tools | LaTeX | Preview TikZ Picture, or using Ctrl+Shift+Y.
It works by putting your equation or TikZ picture in a new temporary (fairly minimal) document and compiling that, so custom commands and packages from your document will not be taken into account, but it ensures the preview is really fast.
The TikZ Preview will take TikZ and pgf libraries into account.
The current implementation of the Equation Preview was contributed by Sergei Izmailov and requires external dependencies, for which installation instructions follow.
- Install Inkscape from inkscape.org/release.
- Install the
pdf2svg
package for your distro, for example on Ubuntu withsudo apt-get install pdf2svg
or on Arch Linux withsudo pacman -S pdf2svg
.
- Install Inkscape from inkscape.org/release, suppose you install it in
C:\Program Files\Inkscape
. - Install pdf2svg from github.com/textext/pdf2svg/releases, suppose you install it in
C:\Program Files\pdf2svg
. - Add both
C:\Program Files\Inkscape
andC:\Program Files\pdf2svg
to your PATH environment variable, for example by searching for Environment Variables on your computer, clicking 'Edit the system environment variables', clicking 'Environment Variables', and under System variables find the one named Path, edit it and insert the paths here. Make sure the paths are separated by a;
. - Reboot your system.
This plugin also has an alpha channel besides the default stable channel. The alpha channel contains the latest build with the latest features available, and is updated much more frequently than the stable channel. It is used for testing features before they are released in the stable channel, so alpha versions of the plugin may be more unstable.
More detailed information is at https://www.jetbrains.com/help/idea/managing-plugins.html#repos but we will quickly summarize the steps.
- Uninstall the plugin
- Subscribe to the alpha channel by going to Settings | Plugins | gear icon | Manage Plugin Repositories | plus icon, then use the url https://plugins.jetbrains.com/plugins/alpha/list
- Install the plugin by going to Marketplace and searching for
TeXiFy-IDEA
, you should see the version next to the name is the alpha version.
- This project uses gradle. Make a new project from existing sources and import the project. Done.
It is assumed that git, IntelliJ, java and LaTeX are installed. If not, try the normal installation instructions first.
- Make a new project from version control if you don't have it yet downloaded, or from existing sources if you have.
- On the GitHub home page of TeXiFy click 'clone or download' and copy the url to Git Repository Url.
- If the project opens and you get a popup 'Import Gradle project', click that.
- If you are prompted to open the
build.gradle
file, do so. - Select 'Use auto-import'.
- Thank Gradle that you're done now!
- Check that in Settings - Build, Execution, Deployment - Compiler - Kotlin Compiler the Target JVM version is set correctly, currently it should be 1.8. If you encounter an error like
Kotlin: Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6.
when building, you need to look here. - Test it worked by executing the 'build' task in Tasks - build - build.
- You can ignore deprecation warnings in the build output.
- If something doesn't work, try looking at the FAQ first.
- Click the Gradle button on the right, the gradle task is located in Tasks - intellj - runIde. Right-click and run.
- If at some time you cannot use this and you need to run from command line, use
gradlew runIde
. - Note how IntelliJ adds this task as a run configuration in the normal location if you have run it once, so you can use that one the next time.
- The first time it will look like you are installing a new IntelliJ - don't worry, just click through it.
- You can also debug against other IDEs. At the moment only PyCharm is set up, but it is easy to add others. You can use it by specifying the argument
-PusePycharm=true
in your runIde run configuration. - Use the option Tools - LaTeX - SumatraPDF - Configure Inverse Search to enable the option to go directly to the right line in your source file when you double-click in the pdf.
- To make a new project but also to open existing
.tex
files, use New Project - LaTeX. - Compile a
.tex
file by clicking on the gutter icon next to\begin{document}
or create a custom run configuration using the drop-down menu.
- Click the Gradle button on the right, the gradle task is located in Tasks - intellij - buildPlugin. Right-click and run. The zip will be in build/distributions.
- Add the plugin to IntelliJ using Settings - Plugins - Install plugin from disk.
- Use the option LaTeX - SumatraPDF - Configure Inverse Search to enable the option to go directly to the right line in your source file when you double-click in the pdf.
- Click the Gradle button on the right, the gradle task is located in Tasks - verification - check. Right-click and run. Note that check includes test so it will run the tests.
In general you have a main file which contains the documentclass and the document environment (the \begin{document}
and \end{document}
).
From here you can include other files which can then include even more files and so on.
An example is:
\documentclass{exam}
% Packages
\usepackage{amsthm}
\author{L.A.\ TeX}
\title{Example document setup}
% Possible other definitions, configurations etc. that you need
\theoremstyle{definition}
\newtheorem{theorem}{Theorem}
% Document
\begin{document}
\maketitle
\section{Introduction}\label{sec:introduction}
\input{introduction}
\section{Example theorems} \label{sec:exampleTheorem}
\input{example-theorems}
\end{document}
where the files introduction.tex
and example-theorems.tex
contain just the content, for example these could be the complete file contents of introduction.tex
:
\begin{theorem}
If the meanings of 'true' and 'false' were switched, then this sentence wouldn't be false.
\end{theorem}
You can define a live template via File -> Settings... -> Editor -> Live Templates. For example, for the itemize
environment, you could use the following template:
\begin{itemize}
\item $PARM1$
\end{itemize}
Set the template to be applicable in LaTeX files.
Once the live template is created, close the Settings dialog. Use Edit -> Macros -> Start Macro Recording and enter the live template abbreviation. Finish recording the macro, and name it. Via Settings -> Keymap, assign the macro a key binding such as Ctrl+Alt+Shift+I.
Now, you can use the macro key binding and hit Enter to insert a new itemize
environment with an item. The cursor will automatically move to the first \item
.
For commands, you can define templates for e.g. \emph{$PARM1$}
.
Make sure you have installed the dependencies, instructions are in the Equation Preview section.
When you get during compilation the error
makeindex: Not writing to /path/to/project/latexfile.ind (openout_any = p).
Can't create output index file /path/to/project/latexfile.ind.
or
bibtex: Not writing to ../out/latexfile.blg (openout_any = p).
this probably happens because you are trying to use makeindex or bibtex with a separate output directory. You should either disable the out directory in the run config or change the security setting in texmf.cnf
, see this tex.stackexchange.com answer.
Most tex distributions contain a commandline tool called arara. Arara uses a small configuration in your main *.tex file
For example:
% arara: lualatex: {shell: yes, action: nonstopmode}
% arara: biber
% arara: lualatex: {shell: yes, action: nonstopmode}
when you add these small code snippets and call
arara -v yourFavoritTexFileHere.tex
Arara calls lualatex biber and lualatex again. Any Jetbrains IDE allows you to add something they call "tools". There you can add the arara call and add a shortcut. Arara pipes the full output from all subsequent commands, which is not all the time usefull to find errors. So I put the arara call into a small bash script and add a grep filter.
#!/usr/bin/env bash
arara thesis.tex -v | grep -C 1 -E "((E|e)rror|ERROR|SUCCESS|FAILURE|Undefined control sequence)"
In your run configuration, tick the box select custom compiler executable path (required on Mac OS X)
.
You can now provide the path to any latex compiler.
When using Windows and MiKTeX, these executables are located in
C:\Program Files\MiKTeX 2.9\miktex\bin\x64
or (in some cases)
C:\Users\user\AppData\Local\Programs\MiKTeX 2.9\miktex\bin\x64
For example, to use lualatex:
C:\Program Files\MiKTeX 2.9\miktex\bin\x64\lualatex.exe
You can run this run configuration by pressing Shift+F10 (on Windows), by clicking the play button, or by clicking the gutter icon.
If you get this warning, it is not critical so you could ignore it but to solve it you can install the mentioned gtk engine, in this case Murrine.
For example on Arch Linux, install the gtk-engine-murrine
package. Arch Linux sets the default theme to Adwaita, so install that with the gnome-themes-extra
package.
For more information see wiki.archlinux.org.
Unable to find method 'sun.misc.Unsafe.defineClass'
or Please provide the path to the Android SDK
when syncing Gradle
This probably means your Gradle cache is corrupt, delete (on Windows) C:\Users\username\.gradle\caches
and C:\Users\username\.gradle\wrapper\dists
or (on Linux) ~/.gradle/caches
and ~/.gradle/wrapper/dists
, then reboot your system.
- Update IntelliJ (help - check for updates).
- Update your IntelliJ SDK: go to Project Structure - SDKs.
- Hit the plus in the middle column and select IntelliJ Platform Plugin SDK.
- Select your IntelliJ installation directory (e.g.
C:\Program Files (x86)\JetBrains\IntelliJ IDEA xxxx.x
). - Remove your old SDK. It is called 'IntelliJ IDEA IU-xxx' where
xxx
is anything but the highest number. - Go to Project Structure - Project and select the new SDK.