problema de makeindex a través de cli

problema de makeindex a través de cli

Actualmente intento escribir mi propio script de compilación ya que Perl no es por el momento una opción (por lo que no hay glosarios) para crear múltiples glosarios. Cuando intento empaquetar todo en un solo archivo por lotes, parece que no se llama a makeindex (no se crean archivos gls).

no 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

Si pongo cada llamada makeindex en un archivo por lotes, funciona. Pero esto es más feo de lo que ya es.

trabajando 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 qué es así y cómo escribo un único script de compilación?

Otra cosa: makeindextambién se niega a crear archivos cuando uso extensiones de archivo distintas a .gls/ .gloetc.

Respuesta1

Joseph Wright me mostróaquí su método, que funciona como debería:

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

información relacionada