Notepad++ 和 MiKTeX – CMD 无法识别命令/exe

Notepad++ 和 MiKTeX – CMD 无法识别命令/exe

目前,我无法使用批处理文件/运行命令组合将我的 .tex 文件编译为 PDF——它会在多行中抛出错误,我会在代码中用“*”标记这些错误。我找到的唯一解决方案是更改路径文件以添加 MiKTeX 目录——我已经这样做了,但问题仍然存在。我找不到任何其他修复方法。

首先,运行命令:

"C:\Users\Matthew\Desktop\latex.bat" "$(CURRENT_DIRECTORY)" "$(NAME_PART)"

然后,.bat 本身

%~d1
cd %1

*call:cleanup

*pdflatex %2
*bibtex  %2
*pdflatex %2
*pdflatex %2

*call:cleanup

START "" "C:\Program Files\SumatraPDF\SumatraPDF.exe" %2 -reuse-instance

del *.dvi
del *.aux
del *.bbl
del *.blg
del *.brf
del *.out
goto:eof

所有代码均来自此网页

据我所知,唯一能正常工作的部分是运行命令本身、启动 PDF 程序(由于 MiKTeX 无法运行,它试图打开一个不存在的文件)以及最后删除日志文件。PDFLatex 本身可以通过命令提示符调用,但出于某种原因,尝试将其放入批处理文件中不起作用。

答案1

问题是链接源文件的精简版本它无法正常工作由于没有 :cleanup 行,因此 call:cleanup 将失败,直到最后的默认 del(s)。

“系统找不到指定的批次标签 - 清理”

虽然批处理文件确实按照描述运行,但 SumatraPDF 也会失败,这是可以理解的,因为如果没有 .pdf,命令再次出错

奇怪的是,从描述来看,即使进行了这些更正,也应该运行 PDFLATEX 等,但如果不了解输出错误,就没人能说出为什么不行。

为了捕获错误,请在启动 SumatraPDF 之后的单独一行上暂停。

如果链接源被删除,这里是根据我上面的评论提供的更正版本。注意作者的先决条件 tex bin(MiKTeX 或 TeX Live 必须位于路径上)
此批处理文件使用两个单独的引用参数调用
A)引用的 tex 文件的完整路径,例如“d:\my docs”
B)引用的文件名(不带扩展名),例如“my tex file”
它可以从命令提示符或编辑器运行

它甚至可以被修改为从 SumatraPDF 中的 PDF 中调用,以便从 PDF 查看器运行,它可以重新编译在标准 MSnotePad 或 Wordpad/write 中所做的任何简单更改(谁需要 IDE 编辑器 :-)

%~d1
cd %1
:: the following line will delete all files listed below prior to a new run and again as it opens the pdf so do NOT list the synctex files
call:cleanup
:: the following calls do not include common requirements such as -synctex=1 etc. (compare with your normal workflow)
pdflatex %2
bibtex  %2
pdflatex %2
pdflatex %2

"C:\Program Files\SumatraPDF\SumatraPDF.exe" %2.pdf  

:cleanup
del *.dvi
del *.aux
del *.bbl
del *.blg
del *.brf
del *.out
:: the following eof is needed once to return to the initial call above then will be ignored on final run
goto:eof

相关内容