CLI 経由の makeindex の問題

CLI 経由の makeindex の問題

現在、複数の用語集を作成するための 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
)

関連情報