
我目前嘗試編寫自己的建置腳本,因為目前 perl 還不是建立多個術語表的選項(因此沒有 makeglossaries)。當我嘗試將所有內容打包到一個批次檔中時,似乎沒有呼叫 makeindex (沒有建立 gls 檔案)。
不工作 tex.bat:
@echo off
set document=%~n1
set miktexpath=C:/bin/programme/miktex/miktex/bin
start /wait %miktexpath%/pdflatex %document%.tex ^
&& ^
%miktexpath%/makeindex -s %document%.ist -t %document%.glg -o %document%.gls %document%.glo ^
&& ^
%miktexpath%/makeindex -s %document%.ist -t %document%.idx.glg -o %document%.idx.gls %document%.idx.glo ^
&& ^
%miktexpath%/pdflatex %document%.tex ^
&& ^
%miktexpath%/pdflatex %document%.tex ^
&& ^
%miktexpath%/SumatraPDF -reuse-instance %document%.pdf
如果我將每個 makeindex-call 放入多個批次檔中,它就可以工作。但這比現在更醜。
工作 tex.bat:
@echo off
set document=%~n1
set miktexpath=C:/bin/programme/miktex/miktex/bin
start /wait %miktexpath%/pdflatex %document%.tex ^
&& ^
call ./gls.bat %document% ^
&& ^
call ./gls_idx.bat %document% ^
&& ^
%miktexpath%/pdflatex %document%.tex ^
&& ^
%miktexpath%/pdflatex %document%.tex ^
&& ^
%miktexpath%/SumatraPDF -reuse-instance %document%.pdf
GLS.bat:
@echo off
set document=%~n1
set miktexpath=C:/bin/programme/miktex/miktex/bin
%miktexpath%/makeindex -s %document%.ist -t %document%.glg -o %document%.gls %document%.glo
gls_idx.bat:
@echo off
set document=%~n1
set miktexpath=C:/bin/programme/miktex/miktex/bin
%miktexpath%/makeindex -s %document%.ist -t %document%.idx.glg -o %document%.idx.gls %document%.idx.glo
為什麼會這樣以及如何編寫單一建置腳本?
另一件事:當我使用/等makeindex
以外的檔案副檔名時,也拒絕建置檔案。.gls
.glo
答案1
約瑟夫·賴特向我展示了這是他的方法,它應該正常工作:
@echo off
set document=%~n1
set miktexpath=C:/bin/programme/miktex/miktex/bin
%miktexpath%/pdflatex -draftmode -interaction=batchmode %document%.tex
if errorlevel 1 (
echo ! Compilation failed
) else (
%miktexpath%/makeindex -s %document%.ist -t %document%.glg -o %document%.gls %document%.glo
%miktexpath%/makeindex -s %document%.ist -t %document%.idx.glg -o %document%.idx.gls %document%.idx.glo
%miktexpath%/pdflatex -draftmode -interaction=batchmode %document%.tex
%miktexpath%/pdflatex -draftmode -interaction=batchmode %document%.tex
%miktexpath%/SumatraPDF -reuse-instance %document%.pdf
)