make.bat 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. pushd %~dp0
  2. if not %errorlevel% == 0 goto :end1
  3. set ORG_LATEX_CMD=%LATEX_CMD%
  4. set ORG_MKIDX_CMD=%MKIDX_CMD%
  5. set ORG_BIBTEX_CMD=%BIBTEX_CMD%
  6. set ORG_LATEX_COUNT=%LATEX_COUNT%
  7. set ORG_MANUAL_FILE=%MANUAL_FILE%
  8. if "X"%LATEX_CMD% == "X" set LATEX_CMD=pdflatex
  9. if "X"%MKIDX_CMD% == "X" set MKIDX_CMD=makeindex
  10. if "X"%BIBTEX_CMD% == "X" set BIBTEX_CMD=bibtex
  11. if "X"%LATEX_COUNT% == "X" set LATEX_COUNT=8
  12. if "X"%MANUAL_FILE% == "X" set MANUAL_FILE=refman
  13. del /s /f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl %MANUAL_FILE%.pdf
  14. %LATEX_CMD% %MANUAL_FILE%
  15. @if ERRORLEVEL 1 goto :error
  16. echo ----
  17. %MKIDX_CMD% %MANUAL_FILE%.idx
  18. echo ----
  19. %LATEX_CMD% %MANUAL_FILE%
  20. @if ERRORLEVEL 1 goto :error
  21. setlocal enabledelayedexpansion
  22. set count=%LATEX_COUNT%
  23. :repeat
  24. set content=X
  25. for /F "tokens=*" %%T in ( 'findstr /C:"Rerun LaTeX" %MANUAL_FILE%.log' ) do set content="%%~T"
  26. if !content! == X for /F "tokens=*" %%T in ( 'findstr /C:"Rerun to get cross-references right" %MANUAL_FILE%.log' ) do set content="%%~T"
  27. if !content! == X for /F "tokens=*" %%T in ( 'findstr /C:"Rerun to get bibliographical references right" %MANUAL_FILE%.log' ) do set content="%%~T"
  28. if !content! == X goto :skip
  29. set /a count-=1
  30. if !count! EQU 0 goto :skip
  31. echo ----
  32. %LATEX_CMD% %MANUAL_FILE%
  33. @if ERRORLEVEL 1 goto :error
  34. goto :repeat
  35. :skip
  36. endlocal
  37. %MKIDX_CMD% %MANUAL_FILE%.idx
  38. %LATEX_CMD% %MANUAL_FILE%
  39. @if ERRORLEVEL 1 goto :error
  40. goto :end
  41. :error
  42. @echo ===============
  43. @echo Please consult %MANUAL_FILE%.log to see the error messages
  44. @echo ===============
  45. :end
  46. @REM reset environment
  47. popd
  48. set LATEX_CMD=%ORG_LATEX_CMD%
  49. set ORG_LATEX_CMD=
  50. set MKIDX_CMD=%ORG_MKIDX_CMD%
  51. set ORG_MKIDX_CMD=
  52. set BIBTEX_CMD=%ORG_BIBTEX_CMD%
  53. set ORG_BIBTEX_CMD=
  54. set MANUAL_FILE=%ORG_MANUAL_FILE%
  55. set ORG_MANUAL_FILE=
  56. set LATEX_COUNT=%ORG_LATEX_COUNT%
  57. set ORG_LATEX_COUNT=
  58. :end1