在 Windows 上使用 Notepad++ 和 MiKTeX

在 Windows 上使用 Notepad++ 和 MiKTeX

我在 Windows 上使用 MiKTeX 2.9。到目前为止,我一直在使用 LeD 来编译我的 PDF(使用pdflatex)。我想开始使用 Notepad++ 来编译我的 LaTeX PDF,因为我最近非常喜欢这个编辑器。

有人能告诉我一种使用快捷方式配置 Notepad++ 来进行编译的方法bibtexpdflatex

答案1

我终于找到了完美的解决方案!出于某种原因,这个解决方案没有出现在我之前的 Google 搜索中。我根据自己的情况定制了这个解决方案:http://nimal.info/blog/2010/latex-on-windows-with-miktex-and-notepad/

我的版本(在64位Windows 7机器上)如下:

  1. 下载并安装 Basic MiKTeX 2.9(32 位)
  2. 下载并安装 SumatraPDF
  3. 创建批处理文件miktex_to_latex.bat并将其放在任何位置
    • 为了方便定位,将批处理文件放在 [Notepad++ 安装路径]
  4. 将以下内容复制粘贴到批处理文件中并保存

    :: 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 -> bibtex -> pdflatex -> 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. 请注意以下事项:

    • 所有以双冒号开头的行::都是注释
    • START命令应该有 SumatraPDF 的安装路径
    • 确保路径中没有空格(使用Progra~2,而不是Program Files (X86)
    • -reuse-instance允许我们编辑和重新编译而无需退出 PDF
  6. 下载(如果尚不存在)执行插件并将.dll文件放置在[Notepad++安装路径]\plugins下

  7. 在Notepad++中打开一个.tex文件,点击F6执行

  8. 在弹出的窗口中输入以下几行:

    NPP_SAVE
    "<Path_to_bat_file>" "$(CURRENT_DIRECTORY)" "$(NAME_PART)" "$(NAME_PART).pdf"
    

    就我而言,情况如下:

    NPP_SAVE
    "C:\Progra~2\Notepad++\miktex_to_latex.bat" "$(CURRENT_DIRECTORY)" "$(NAME_PART)" "$(NAME_PART).pdf"
    

    上面几行基本上告诉 NppExec“保存当前.tex文件,运行批处理文件,将结果存储在当前目录中并将其命名为与.tex文件相同的名称”

  9. 单击“保存”并输入可识别的名称,例如“PDFLaTex”

  10. 转到菜单栏,插件 -> NppExec -> 高级选项。在“菜单项”下,选择我们刚刚创建的脚本,然后使用合适的名称将其“添加/修改”到菜单项。这允许我们通过设置 -> 快捷键映射器 -> 插件命令分配快捷键

  11. 导航到脚本名称并选择任何快捷键,例如Shift+F7

  12. 按快捷键Shift+F7保存并编译.tex文件。SumatraPDF 窗口应弹出并显示编译后的 PDF。可以进行更改并重新编译文件无需关闭 PDF

此方法的最好部分是:

  • 无需一直按Ctrl+S保存然后编译为 PDF。一切只需按一下键即可完成!
  • 无需不断关闭已打开的 PDF 并在重新编译时重新打开它(就像使用 Adob​​e Reader 的情况一样)
  • 清理所有生成的垃圾文件非常容易
  • 这是完全开源并且可以轻松与现有的 Notepad++ 安装集成

感谢 Nimal、Jonas、Bert 以及其他为这个出色的解决方案做出贡献的人!

答案2

我尝试过很多不同的 IDE,说实话我认为 notepad++ 是从事 TeX 工作的人最被低估的选项之一。

arara沿着这个思路,我认为当我们有和这样的工具时,我开始使用的大多数其他选项都过于复杂latexmk。它们都运行得非常好,我非常感谢它们给我的帮助,但我认为我们应该使用所有可用的工具。我个人很喜欢,而且我有自己的方式,我现在每天都在使用,这比 notepad++ 更arara依赖它。arara

这是我在 NppExec 中设置的 notepad++

NPP_SAVEALL
cd $(CURRENT_DIRECTORY)
arara $(NAME_PART)

无需批处理文件。在我的文档中,我通常使用这组规则的变体。

% arara: pdflatex: { synctex: on, shell: off }
% arara: biber
% arara: pdflatex: { synctex: on, shell: off }
% arara: pdflatex: { synctex: on, shell: off }
% arara: clean: { files: [ foo.log, foo.aux, foo.bbl, foo.blg, foo.log, foo.run.xml,  foo-blx.bib, foo.bcf, foo.out ] }
% arara: sumatrapdf

pdflatexbiberclean包含在内ararasumatrapdf是我的,但非常简单。 arara还提供了一个bibtex同样简单的规则,但我更喜欢 biber。

sumatrapdf.yaml

!config
# SumatraPDF rule for arara
# Author: Mr Komandez
identifier: sumatrapdf
name: SumatraPDF
commands: 
- <arara> DIRECTORY/sumatra.bat "@{getBasename(file)}.pdf" "@{options}"
arguments:
- identifier: options
flag: <arara> @{parameters.options}

sumatra.bat

START /b "C:\Progra~2\SumatraPDF\SumatraPDF.exe" %1 -reuse-instance  %2
EXIT

这边走,从源代码您可以随时更改编译选项,但实际编译可以保持相同的键绑定。

答案3

如果不是篇幅太长的话,这将是一条评论。我对上面的批处理文件做出了贡献,但这是我的最新版本:


:: 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 -> bibtex -> pdflatex -> 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


:: Open PDF (Script updated based on comments by 'menfeser'
:: START "" "C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe" %2.pdf
if (%3)==() goto cleanup
::START "" %2.pdf
set str=%date%_%time%
set str=%str:/=-%
set str=%str::=-%
set str=%str: =_%
ren %2.pdf %2_%str%.pdf
"C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe" %2_%str%.pdf

:: Cleanup Function
if %3==noclean goto eof
:cleanup
del *.log
del *.dvi
del *.aux
del *.bbl
del *.blg
del *.brf
del *.out
:eof

它使用 3 个参数调用 - 目录、文件名和第三个参数,可以是“noclean”以保留临时文件,空白以清理但不查看 pdf,以及任何其他内容以显示 pdf。我将 [shift]+F5 映射到查看和清理,将 [ctrl]+F5 映射到查看但不清理。

由于目前没有 Windows PDF 查看器不会在打开时锁定文件(我最初喜欢 Foxit 的原因),批处理文件会重命名输出 PDF 以在文件中放置日期/时间戳姓名在打开之前,允许下一个构建无错误地打开。

另一个调用 ASpell 的宏也很方便。

答案4

这是我使用@Mark Mendoza 的一部分为使用 NPP EXEC(v.7.9.2 -32bit)配置 Notepad++ 的贡献:

如果你已经安装arara并且正在使用

在 NPP EXEC (F6) 中添加以下内容:

NPP_SAVE
cd $(CURRENT_DIRECTORY)
arara -v $(NAME_PART)
npp_run  "$(CURRENT_DIRECTORY)\$(NAME_PART).pdf"

编译后会弹出.pdf。我使用的是带有高级选项的 Sumatra PDF:ReuseInstance = true

相关内容