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를 시작한 줄 뒤의 별도 줄에 일시 중지를 두십시오.

링크된 소스가 제거된 경우 위의 의견에 따라 수정된 버전이 있습니다.작성자의 사전 조건에 유의하십시오. A tex bin(MiKTeX 또는 TeX Live가 경로에 있어야 합니다.
이 배치 파일은 두 개의 별도 인용 인수로 호출됩니다.
A) 인용된 tex 파일의 전체 경로(예: "d:\my docs")
B) 인용된 확장자가 없는 파일 이름(예: "my tex file")
명령 프롬프트나 편집기에서 실행할 수 있습니다.

PDF 뷰어에서 실행하면 bog 표준 MSnotePad 또는 Wordpad/write에서 변경된 간단한 변경 사항을 다시 컴파일할 수 있도록 SumatraPDF 내의 PDF에서 호출되도록 수정할 수도 있습니다(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

관련 정보