Prettifies latex code using latexindent.pl
This package offers a pre-save hook, i.e., your latex files will be reformatted automatically before saving. To activate this feature, set:
"run_on_save": true,
The sublime command "beautify_latex" performs a save after formatting. You can disable this default by setting:
"save_on_beautify": false
You can change the file patterns handled by this plugin in the settings:
"file_patterns": [ "\\.tex"],
By default, Sublime does not translate tabs to spaces. If you wish to use tabs you will not need to change your settings. If you wish to use spaces, add the following setting.
"translate_tabs_to_spaces": true
ctrl + cmd + k on OS X, or ctrl + alt + k on Windows
This package is a fork of ketan/BeautifyLatex, and the Sublime Text package has not been updated (as of Sep 6 2017). So you have to install the package manually.
1. Navigate to the Sublime Text package directory
cd "~/Library/Application Support/Sublime Text 2/Packages/" # OS X (I think)
cd "C:\Users\<username>\AppData\Roaming\Sublime Text 3\Packages" # (using Windows 10)
2. Clone this repository
git clone https://github.com/flipphillips/BeautifyLatex.git
### Or ###
git clone git@github.com:flipphillips/BeautifyLatex.git
3. Restart Sublime Text
If you are using OS X El Capitan and get the following error
Error: can't specify None for path argument
while saving tex
files, you may want to check the following things.
-
Do you have
latexindent
? This can be checked by typingwhich latexindent
in the terminal. If you havelatexindent
installed, you shall get the following message telling you the directory, in which yourlatexindent
resides.$ which latexindent /Library/TeX/texbin/latexindent
If you do not have latexindent
at all, you may consider upgrading your MacTeX
or install latexindent
manually. See CTAN page of latexindent
here.
-
Is your
latexindent
functional? To check this, go to the terminal,cd
to the directory containing yourlatexindent
, and typeperl latexindent
. If yourlatexindent
is functional, you shall see its version information (see below).$ cd /Library/TeX/texbin/ $ perl latexindent latexindent.pl version 2.1R usage: latexindent.pl [options] [file][.tex] -h help (see the documentation for detailed instructions and examples) -o output to another file; sample usage latexindent.pl -o myfile.tex outputfile.tex -w overwrite the current file- a backup will be made, but still be careful -s silent mode- no output will be given to the terminal -t tracing mode- verbose information given to the log file -l use localSettings.yaml (assuming it exists in the directory of your file) -d ONLY use defaultSettings.yaml, ignore ALL user files -c=cruft directory used to specify the location of backup files and indent.log
Otherwise, you will see certain error message saying that YAML::Tiny
(or some other components) was missing. To install these components, type the following lines in terminal (you may need to input your admin password).
$ sudo cpan App::cpanminus
$ sudo cpan YAML::Tiny
$ sudo perl -MCPAN -e 'install "File::HomeDir"'
After executing the above lines, check the availability of latexindent
by typing perl latexindent
again in the terminal.
-
Install
Fix Mac Path
package and add the following line{ "additional_path_items": ["/Library/TeX/texbin"] }
in the user
settings of BeautifyLatex
. The string "/Library/TeX/texbin"
is the directory containing your latexindent
. Change it accordingly if you have a different directory.
-
If the problem has been solved, great! Otherwise (I mean you still saw
Error: can't specify None for path argument
), type the following line in terminal,$ sudo ln -s /Library/TeX/texbin/latexindent /Library/TeX/texbin/latexindent.pl
which links latexindent.pl
to latexindent
. (It seems that by default MacTeX
does not ship with latexindent.pl
.) After linking, BeautifyLatex
should run beautifully now.
As a reference, you may want to read this thread on tex.stackexchange.com.