# Using Notepad++ with MiKTeX on Windows

I'm using MiKTeX 2.9 on Windows. So far I've been using LeD to compile my PDFs (using pdflatex). I want to start using Notepad++ to compile my LaTeX PDFs as I've lately become very fond of this editor.

Would anyone be able to point me to a way to configure Notepad++ with shortcuts to compile bibtex and pdflatex?

-
 see the manual of notepad: Doc on command and shortcuts – zeroth Feb 9 '12 at 18:42

## 1 Answer

I managed to find the perfect solution! For some reason, this didn't show up on my previous Google searches. I tailored my version of this solution: http://nimal.info/blog/2010/latex-on-windows-with-miktex-and-notepad/

My version (on a 64-bit Windows 7 machine) is as follows:

1. Download and install Basic MiKTeX 2.9 (32-bit)
2. Download and install SumatraPDF
3. Create a batch file miktex_to_latex.bat and place it anywhere
• For easy location, place the batch file in the [Notepad++ installation Path]
4. Copy-paste the following into the batch file and save it

:: Called from Notepad++ Run
:: [path_to_bat_file] "$(CURRENT_DIRECTORY)" "$(NAME_PART)"

:: Change Drive and  to File Directory
%~d1
cd %1

:: Run Cleanup
call:cleanup

:: Run pdflatex -&gt; bibtex -&gt; pdflatex -&gt; pdflatex
pdflatex %2
bibtex  %2
:: If you are using multibib the following will run bibtex on all aux files
:: FOR /R . %%G IN (*.aux) DO bibtex %%G
pdflatex %2
pdflatex %2

:: Run Cleanup
call:cleanup

:: Open PDF
START "" "C:\Progra~2\SumatraPDF\SumatraPDF.exe" %3 -reuse-instance

:: Cleanup Function
:cleanup
del *.dvi
del *.out
:: del *.log
:: del *.aux
:: del *.bbl
:: del *.blg
:: del *.brf

goto:eof

5. Take care of the following:

• All lines beginning with double colon :: are comments
• the START command should have the installation path of SumatraPDF
• Make sure there are NO spaces in the path (Use Progra~2, not Program Files (X86))
• The -reuse-instance allows us to edit and recompile without quitting the PDF
6. Download (if it does not already exist) the NppExec plugin and place the .dll file in [Notepad++ installation path]\plugins

7. Open a .tex file in Notepad++, click on F6 to execute

8. Type the following lines in the window that pops up:

NPP_SAVE
"<Path_to_bat_file>" "$(CURRENT_DIRECTORY)" "$(NAME_PART)" "$(NAME_PART).pdf"  In my case, this is: NPP_SAVE "C:\Progra~2\Notepad++\miktex_to_latex.bat" "$(CURRENT_DIRECTORY)" "$(NAME_PART)" "$(NAME_PART).pdf"


The above lines basically tell NppExec to "save the current .tex file, run the batch file, store results in current directory and name it the same as the .tex file"

9. Click on "Save" and type in a recognizable name such as 'PDFLaTex'

10. Go to the menubar, Plugins -> NppExec -> Advanced Options.. Under 'Menu item', choose the script we just created above, and 'Add/Modify' it to the Menu items with a suitable name. This allows us to assign shortcut keys through Settings -> Shortcut Mapper -> Plugin commands

11. Navigate to the script name and choose any shortcut key like Shift+F7

12. Press the shortcut key Shift+F7 to save and compile the .tex file. The SumatraPDF window should pop up and show the compiled PDF. Changes can be made and the file recompiled without having to close the PDF.

The BEST parts about this method are:

• There is no need to keep pressing Ctrl+S to save and then compile to PDF. Everything is done in one key press!
• There is no need to keep closing the opened PDF and reopening it on recompiling (as in the case with Adobe Reader)
• It is very easy to cleanup all the junk files generated
• It is completely open-source and can be easily integrated with an existing Notepad++ installation

Thanks Nimal, Jonas, Bert and the others who contributed to this awesome solution!

-
be careful using the cleanup! any document that uses the information in the .aux will struggle if it is deleted every time. just try putting in one \ref to a \label and you'll see what i mean. Personally, I would recommend creating the cleanup file as a separate batch file, and calling it separately – cmhughes Feb 10 '12 at 0:57
@cmhughes Thanks a lot, I'll keep that in mind. Is it only the .aux that I should be worried about? I'm pretty sure that PDFLaTex doesn't use the dvi file as that is an intermediate file. I'm guessing the .out file and the likes are also not that useful. Would it make sense to keep the .aux and delete the rest instead of calling the cleanup batch file separately? – prrao Feb 10 '12 at 2:32
The .bbl files and friends are used by biblatex; you are correct about the .dvi files. I would seriously consider not deleting any of them until the document is finished, and just run your cleanup file at the end. The del command can be made to work recursively through your home directory, so you only need to run it once – cmhughes Feb 10 '12 at 3:23
Sure, that sounds fine. Thanks for the tip. – prrao Feb 10 '12 at 13:06
I updated the steps to include an autosave option. Much more convenient! – prrao Feb 14 '12 at 15:14