
現在、複数の用語集を作成するための Perl のオプションがないため (したがって makeglossaries はありません)、独自のビルド スクリプトを作成しようとしています。すべてを 1 つのバッチ ファイルにまとめようとすると、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 呼び出しを複数のバッチ ファイルにまとめると、動作します。しかし、これでは、すでに醜い状態よりもさらに醜い状態になります。
動作する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
それはなぜですか? また、単一のビルドスクリプトをどのように記述すればよいですか?
もう 1 つ: /など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
)