我在 Windows 上使用 MiKTeX 2.9。到目前为止,我一直在使用 LeD 来编译我的 PDF(使用pdflatex
)。我想开始使用 Notepad++ 来编译我的 LaTeX PDF,因为我最近非常喜欢这个编辑器。
有人能告诉我一种使用快捷方式配置 Notepad++ 来进行编译的方法bibtex
吗pdflatex
?
答案1
我终于找到了完美的解决方案!出于某种原因,这个解决方案没有出现在我之前的 Google 搜索中。我根据自己的情况定制了这个解决方案:http://nimal.info/blog/2010/latex-on-windows-with-miktex-and-notepad/
我的版本(在64位Windows 7机器上)如下:
- 下载并安装 Basic MiKTeX 2.9(32 位)
- 下载并安装 SumatraPDF
- 创建批处理文件
miktex_to_latex.bat
并将其放在任何位置- 为了方便定位,将批处理文件放在 [Notepad++ 安装路径]
将以下内容复制粘贴到批处理文件中并保存
:: 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
请注意以下事项:
- 所有以双冒号开头的行
::
都是注释 - 该
START
命令应该有 SumatraPDF 的安装路径 - 确保路径中没有空格(使用
Progra~2
,而不是Program Files (X86)
) - 这
-reuse-instance
允许我们编辑和重新编译而无需退出 PDF
- 所有以双冒号开头的行
下载(如果尚不存在)执行插件并将
.dll
文件放置在[Notepad++安装路径]\plugins下在Notepad++中打开一个
.tex
文件,点击F6执行在弹出的窗口中输入以下几行:
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
文件相同的名称”单击“保存”并输入可识别的名称,例如“PDFLaTex”
转到菜单栏,插件 -> NppExec -> 高级选项。在“菜单项”下,选择我们刚刚创建的脚本,然后使用合适的名称将其“添加/修改”到菜单项。这允许我们通过设置 -> 快捷键映射器 -> 插件命令分配快捷键
导航到脚本名称并选择任何快捷键,例如Shift+F7
按快捷键Shift+F7保存并编译
.tex
文件。SumatraPDF 窗口应弹出并显示编译后的 PDF。可以进行更改并重新编译文件无需关闭 PDF。
此方法的最好部分是:
- 无需一直按Ctrl+S保存然后编译为 PDF。一切只需按一下键即可完成!
- 无需不断关闭已打开的 PDF 并在重新编译时重新打开它(就像使用 Adobe 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
、pdflatex
和biber
都clean
包含在内arara
。sumatrapdf
是我的,但非常简单。 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