LaTeX is a typesetting method used to create professional documents and is preferred by scientists and researchers for documentation. This guide will explore editing the LaTeX documents in the Vim editor.
- Prerequisites
- Installing Vim Plugin Manager
- Installing Vim LaTeX Plugin
- Installing LaTeX Compilation Program
- Verifying the Vim for LaTeX Setup
- Creating a LaTeX Document in Vim
- Editing the LaTeX Document in Vim
- Compiling and Exporting the LaTeX Document File
- Other Helpful Plugins to Edit the LaTeX in Vim
- Conclusion
Before creating or editing the LaTeX, the Vim editor needs to be prepared for LaTeX editing because Vanilla Vim is not good at it. Though basic LaTeX editing can be done because TeX highlighting comes by default with Vim, it is recommended to have desired plugins installed to edit the LaTeX in Vim properly.
Prerequisites
To prepare Vim for LaTeX editing, we need to install the LaTeX editing plugin. There are two widely used LaTeX plugins for Vim:
Any LaTeX plugin can be used but it entirely depends upon personal preference. For this tutorial, I will be installing and setting up the Vimtex plugin for Vim.
The key feature of Vimtex is that it is stable, supports auto-completion, and provides many quick key mappings to create and edit LaTeX documents.
In Vim, there are multiple methods to install the plugins. However, having a plugin manager solves many complexities, so let’s install a plugin manager first for Vim.
1. Installing Vim Plugin Manager
There are multiple plugin managers for Vim editors; some of the best plugin managers are listed below:
I am going to install the vim-plug plugin manager for Vim as it is quick to set up and lightweight.
To install the vim-plug plugin manager, execute the command mentioned below:
The plugin manager has been downloaded and set up; it’s time to install the plugin for LaTeX editing.
2. Installing Vim LaTeX Plugin
To enhance the LaTeX editing functionality on Vim, let’s install the Vimtex plugin.
To install the Vimtex plugin on Linux, see the instructions given below:
1. Open the VimAwesome webpage from here.
VimAwesome is an archive of Vim plugins; if you need any Vim plugins search here.
2. Search for Vimtex plugin and click on it to open its page:
3. Here you can see instructions for various plugin managers. As we have installed VimPlug, we will click on it.
Copy the plugin code mentioned as shown in the image below:
This code will be used to paste in the vimrc file. See the next step:
4. Open the vimrc file:
It is recommended to create a user-specific vimrc file instead of modifying the system files. To create a user-specific vimrc file, use the following command:
5. Insert the below-given lines at the end of the file:
<..List of Plugins..>
call plug#end()
The call plug#begin() and call plug#end() are the container tags that contain the list of plugins that you can install.
Paste the plugin code in between the container tags:
Plug 'lervag/vimtex'
call plug#end()
After inserting the plugin code, save and quit the file using SHIFT+zz or type :wq in the NORMAL mode. The setup for the plugin is complete and it is now ready for installation.
6. Open the Vim editor and type :PlugInstall command in the NORMAL mode:
The above command will install the plugins, as you can see in the following image:
7. Now, quit the Vim editor by typing :quit command and relaunch it.
3. Installing LaTeX Compilation Program
After installing the Vimtex and vim-plug plugin manager you need another key program to compile the LaTeX documents into PDF. There are two main compilation utilities for Linux:
- latexmk
- pdflatex
I am installing latexmk utility in the Linux system using the command given below:
4. Verifying the Vim for LaTeX Setup
To verify that Vimtex is ready for LaTeX document editing, open any LaTeX file.
Get into the NORMAL mode and type :VimtexInfo command.
The VimtexInfo command gives information about, the system, Vimtex project, compiler, file path, and other related info.
If the command gives an output then the Vimtex is properly installed and functions. However, if you get a Not an editor command error, then you will need to recheck all the prerequisites.
Creating a LaTeX Document in Vim
To create a LaTeX document just use the vim command with the file name and keep the extension .tex.
For example, I am creating a .tex file and naming it main.
Type the content of the LaTeX file.
\documentclass: There are a variety of document classes such as CV/resume, book, and report.
\begin{document} & \end{document}: Tags to include the content of the document.
This LaTeX will only display the text. Let’s add some more environments:
\title{My LaTeX Document}
\author{Sam}
% Inserting today’s date
\date{\today}
% Starting document
\begin{document}
This is my sample LaTeX document.
% Creating a list
\begin{itemize}
\item Sample Item 1
\item Sample Item 2
\item Sample Item 3
\end{itemize}
$ E=mc^2 $
% Creating a mathematical equation
\begin{math}
F =\frac {mv^2}{r}
\end{math}
\end{document}
In the above LaTeX document, I have added, the title, author name, and date. In the main document, I have created a list of three items and an equation. In LaTeX, comments can be added using the percentage sign % followed by a comment.
Editing the LaTeX Document in Vim
This is where Vimtex is going to help; Vimtex provides various commands to quickly edit the LaTeX file. Let’s explore Vimtex commands to edit the LaTeX document in the Vim editor:
Deleting Surrounding Environments
Use the dse command in the NORMAL mode:
Bring the cursor over the surrounding environments that you want to delete and type the command:
Changing Surrounding Environments
Use the cse command in the NORMAL mode:
Bring the cursor over the surrounding environments and type the command, you will be prompted to type the new surrounding:
Deleting Surrounding Command
Use dsc command in NORMAL mode:
Put the cursor over the surrounding environments and type the command, the LaTeX command will be deleted and only arguments will be left.
Deleting Surrounding Delimiter
Use dsd command in NORMAL mode:
Put the cursor over delimiter such as round brackets (), square brackets [], \left \right or \big \big and type the command:
Changing the Surrounding Delimiter
Use csd command in NORMAL mode:
Bring the cursor over the delimiter and type the csd command, then write the new delimiter and hit return.
Deleting Math Surrounding
Use ds$ command in NORMAL mode:
Put the cursor over math’s surroundings, type the command; surroundings will be deleted:
And:
Changing Math Surrounding
Use cs$ command in NORMAL mode:
Put the cursor over the surroundings and execute the command, write the new surroundings, and hit Enter.
Toggling Starred Command
Use the tse and tsc command to toggle the starred commands:
This command will insert the asterisk to the LaTeX command.
Next, for tsc:
This command will insert an asterisk to the arguments of the surroundings.
Toggling Math Between Inline and Display
Use ts$ in the NORMAL mode:
Toggling Delimiter
Use the tsd command in the NORMAL mode for toggling the delimiter:
Toggling Fraction
Use the tsf command to toggle the fraction:
Navigational Commands
Vimtex offers various navigation keymaps as well:
% | To navigate between delimiters. |
]] and [[ | To navigate between sections and subsections. |
]m and [m | To navigated between environments. |
]n and [n | To navigate between math zones. |
To learn about all the Vimtex key-mapping execute the :h vimtex-default-keymaps command in the Vim editor.
Compiling and Exporting the LaTeX Document File
The last step is compiling the LaTeX document in PDF format. In Linux LaTeX documents can be compiled using several methods. In the prerequisites section, we have installed the latexmk utility which is used by Vimtex to compile the document.
To compile and live view the document, use the VimtexCompile command in the NORMAL mode:
A window will open showing the live compilation of the document. To stop the live preview of the document, execute the same command.
There is a key-binding as well to quickly compile and live-preview the LaTeX document that is \ll: it will start and stop the compilation.
To view the PDF file use:
The LaTeX file can also be compiled separately using the latexmk utility.
The -pvc flag is for live view the -pdf indicates the export file format.
Other Helpful Plugins to Edit the LaTeX in Vim
Various Vim plugins can be incorporated with the Vimtex to enhance productivity. A list of helpful plugins is:
These plugins are handy for autocompletion in the Vim editor and can be installed by following the method in the above sections of the guide.
Conclusion
LaTex is a typesetting system widely used by scientists and researchers for documentation making. It is a bit complex but it is better for large projects such as books. Moreover, it is free to use, you don’t need to pay for a word processor like MS Word.
LaTeX and Vim combination is a handy way to create, edit, and compile LaTeX documents quickly. Although Vim provides basic functionality to edit the LaTeX document; it is not as good as other GUI-based editors. LaTeX documents can be edited using the Vimtex plugin which provides a wide range of tools that can be used to quickly create, edit, and compile the LaTeX documents.