57 lines
1.6 KiB
Batchfile
57 lines
1.6 KiB
Batchfile
pushd %~dp0
|
|
if not %errorlevel% == 0 goto :end
|
|
|
|
set ORG_LATEX_CMD=%LATEX_CMD%
|
|
set ORG_MKIDX_CMD=%MKIDX_CMD%
|
|
set ORG_BIBTEX_CMD=%BIBTEX_CMD%
|
|
set ORG_LATEX_COUNT=%LATEX_COUNT%
|
|
set ORG_MANUAL_FILE=%MANUAL_FILE%
|
|
if "X"%LATEX_CMD% == "X" set LATEX_CMD=pdflatex
|
|
if "X"%MKIDX_CMD% == "X" set MKIDX_CMD=makeindex
|
|
if "X"%BIBTEX_CMD% == "X" set BIBTEX_CMD=bibtex
|
|
if "X"%LATEX_COUNT% == "X" set LATEX_COUNT=8
|
|
if "X"%MANUAL_FILE% == "X" set MANUAL_FILE=refman
|
|
|
|
del /s /f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl %MANUAL_FILE%.pdf
|
|
|
|
|
|
%LATEX_CMD% %MANUAL_FILE%
|
|
echo ----
|
|
%MKIDX_CMD% %MANUAL_FILE%.idx
|
|
echo ----
|
|
%LATEX_CMD% %MANUAL_FILE%
|
|
|
|
setlocal enabledelayedexpansion
|
|
set count=%LATEX_COUNT%
|
|
:repeat
|
|
set content=X
|
|
for /F "tokens=*" %%T in ( 'findstr /C:"Rerun LaTeX" %MANUAL_FILE%.log' ) do set content="%%~T"
|
|
if !content! == X for /F "tokens=*" %%T in ( 'findstr /C:"Rerun to get cross-references right" %MANUAL_FILE%.log' ) do set content="%%~T"
|
|
if !content! == X for /F "tokens=*" %%T in ( 'findstr /C:"Rerun to get bibliographical references right" %MANUAL_FILE%.log' ) do set content="%%~T"
|
|
if !content! == X goto :skip
|
|
set /a count-=1
|
|
if !count! EQU 0 goto :skip
|
|
|
|
echo ----
|
|
%LATEX_CMD% %MANUAL_FILE%
|
|
goto :repeat
|
|
:skip
|
|
endlocal
|
|
%MKIDX_CMD% %MANUAL_FILE%.idx
|
|
%LATEX_CMD% %MANUAL_FILE%
|
|
|
|
@REM reset environment
|
|
popd
|
|
set LATEX_CMD=%ORG_LATEX_CMD%
|
|
set ORG_LATEX_CMD=
|
|
set MKIDX_CMD=%ORG_MKIDX_CMD%
|
|
set ORG_MKIDX_CMD=
|
|
set BIBTEX_CMD=%ORG_BIBTEX_CMD%
|
|
set ORG_BIBTEX_CMD=
|
|
set MANUAL_FILE=%ORG_MANUAL_FILE%
|
|
set ORG_MANUAL_FILE=
|
|
set LATEX_COUNT=%ORG_LATEX_COUNT%
|
|
set ORG_LATEX_COUNT=
|
|
|
|
:end
|