makeindex via problema cli

makeindex via problema cli

Atualmente tento escrever meu próprio buildscript, pois perl no momento não é uma opção (portanto, não há makeglossários) para construir vários glossários. Quando tento empacotar tudo em um único arquivo em lote, parece que makeindex não é chamado (nenhum arquivo gls é criado).

não funciona 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

Se eu colocar cada chamada makeindex em vários arquivos em lote, isso funcionará. Mas isso é mais feio do que já é.

trabalhando 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

Por que isso acontece e como escrevo um único buildscript?

Outra coisa: makeindextambém se recusa a construir arquivos quando uso extensões de arquivo diferentes de .gls/ .gloetc.

Responder1

Joseph Wright me mostrouaqui o método dele, isso funciona como deveria:

@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
)

informação relacionada