Skip to content

Commit 3940dc0

Browse files
committed
Align latex commands
In #9003 the MKIDX_CMD setting was introduced to align the approach with LATEX_CMD and also to give on *nix the possibility to define these commands outside the Makefile. In this patch: - add the missing setting for bibtex - add the missing setting for the number of reruns (giving more flexibility) overules #250 - add setting for the name of the manual - make the overrule possibility also available under Windows - add rerun test on bibliographical references
1 parent c9dc066 commit 3940dc0

File tree

1 file changed

+104
-75
lines changed

1 file changed

+104
-75
lines changed

src/latexgen.cpp

Lines changed: 104 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -295,87 +295,90 @@ static void writeLatexMakefile()
295295
// inserted by KONNO Akihisa <konno@researchers.jp> 2002-03-05
296296
QCString latex_command = theTranslator->latexCommandName().quoted();
297297
QCString mkidx_command = Config_getString(MAKEINDEX_CMD_NAME).quoted();
298+
QCString bibtex_command = "bibtex";
299+
QCString manual_file = "refman";
300+
const int latex_count = 8;
298301
// end insertion by KONNO Akihisa <konno@researchers.jp> 2002-03-05
299-
if (!Config_getBool(USE_PDFLATEX)) // use plain old latex
300-
{
301302
t << "LATEX_CMD?=" << latex_command << "\n"
302303
<< "MKIDX_CMD?=" << mkidx_command << "\n"
304+
<< "BIBTEX_CMD?=" << bibtex_command << "\n"
305+
<< "LATEX_COUNT?=" << latex_count << "\n"
306+
<< "MANUAL_FILE?=" << manual_file << "\n"
307+
<< "\n";
308+
if (!Config_getBool(USE_PDFLATEX)) // use plain old latex
309+
{
310+
t << "all: $(MANUAL_FILE).dvi\n"
303311
<< "\n"
304-
<< "all: refman.dvi\n"
305-
<< "\n"
306-
<< "ps: refman.ps\n"
312+
<< "ps: $(MANUAL_FILE).ps\n"
307313
<< "\n"
308-
<< "pdf: refman.pdf\n"
314+
<< "pdf: $(MANUAL_FILE).pdf\n"
309315
<< "\n"
310-
<< "ps_2on1: refman_2on1.ps\n"
316+
<< "ps_2on1: $(MANUAL_FILE).ps\n"
311317
<< "\n"
312-
<< "pdf_2on1: refman_2on1.pdf\n"
318+
<< "pdf_2on1: $(MANUAL_FILE).pdf\n"
313319
<< "\n"
314-
<< "refman.ps: refman.dvi\n"
315-
<< "\tdvips -o refman.ps refman.dvi\n"
320+
<< "$(MANUAL_FILE).ps: $(MANUAL_FILE).dvi\n"
321+
<< "\tdvips -o $(MANUAL_FILE).ps $(MANUAL_FILE).dvi\n"
316322
<< "\n";
317-
t << "refman.pdf: refman.ps\n";
318-
t << "\tps2pdf refman.ps refman.pdf\n\n";
319-
t << "refman.dvi: clean refman.tex doxygen.sty\n"
323+
t << "$(MANUAL_FILE).pdf: $(MANUAL_FILE).ps\n";
324+
t << "\tps2pdf $(MANUAL_FILE).ps $(MANUAL_FILE).pdf\n\n";
325+
t << "$(MANUAL_FILE).dvi: clean $(MANUAL_FILE).tex doxygen.sty\n"
320326
<< "\techo \"Running latex...\"\n"
321-
<< "\t$(LATEX_CMD) refman.tex\n"
327+
<< "\t$(LATEX_CMD) $(MANUAL_FILE).tex\n"
322328
<< "\techo \"Running makeindex...\"\n"
323-
<< "\t$(MKIDX_CMD) refman.idx\n";
329+
<< "\t$(MKIDX_CMD) $(MANUAL_FILE).idx\n";
324330
if (generateBib)
325331
{
326332
t << "\techo \"Running bibtex...\"\n";
327-
t << "\tbibtex refman\n";
333+
t << "\t$(BIBTEX_CMD) $(MANUAL_FILE)\n";
328334
t << "\techo \"Rerunning latex....\"\n";
329-
t << "\t$(LATEX_CMD) refman.tex\n";
335+
t << "\t$(LATEX_CMD) $(MANUAL_FILE).tex\n";
330336
}
331337
t << "\techo \"Rerunning latex....\"\n"
332-
<< "\t$(LATEX_CMD) refman.tex\n"
333-
<< "\tlatex_count=8 ; \\\n"
334-
<< "\twhile egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\\\n"
338+
<< "\t$(LATEX_CMD) $(MANUAL_FILE).tex\n"
339+
<< "\tlatex_count=%(LATEX_COUNT) ; \\\n"
340+
<< "\twhile egrep -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\\\n"
335341
<< "\t do \\\n"
336342
<< "\t echo \"Rerunning latex....\" ;\\\n"
337-
<< "\t $(LATEX_CMD) refman.tex ; \\\n"
343+
<< "\t $(LATEX_CMD) $(MANUAL_FILE).tex ; \\\n"
338344
<< "\t latex_count=`expr $$latex_count - 1` ;\\\n"
339345
<< "\t done\n"
340-
<< "\t$(MKIDX_CMD) refman.idx\n"
341-
<< "\t$(LATEX_CMD) refman.tex\n\n"
342-
<< "refman_2on1.ps: refman.ps\n"
343-
<< "\tpsnup -2 refman.ps >refman_2on1.ps\n"
346+
<< "\t$(MKIDX_CMD) $(MANUAL_FILE).idx\n"
347+
<< "\t$(LATEX_CMD) $(MANUAL_FILE).tex\n\n"
348+
<< "$(MANUAL_FILE).ps: $(MANUAL_FILE).ps\n"
349+
<< "\tpsnup -2 $(MANUAL_FILE).ps >$(MANUAL_FILE).ps\n"
344350
<< "\n"
345-
<< "refman_2on1.pdf: refman_2on1.ps\n"
346-
<< "\tps2pdf refman_2on1.ps refman_2on1.pdf\n";
351+
<< "$(MANUAL_FILE).pdf: $(MANUAL_FILE).ps\n"
352+
<< "\tps2pdf $(MANUAL_FILE).ps $(MANUAL_FILE).pdf\n";
347353
}
348354
else // use pdflatex for higher quality output
349355
{
350-
t << "LATEX_CMD?=" << latex_command << "\n"
351-
<< "MKIDX_CMD?=" << mkidx_command << "\n"
352-
<< "\n";
353-
t << "all: refman.pdf\n\n"
354-
<< "pdf: refman.pdf\n\n";
355-
t << "refman.pdf: clean refman.tex\n";
356-
t << "\t$(LATEX_CMD) refman\n";
357-
t << "\t$(MKIDX_CMD) refman.idx\n";
356+
t << "all: $(MANUAL_FILE).pdf\n\n"
357+
<< "pdf: $(MANUAL_FILE).pdf\n\n";
358+
t << "$(MANUAL_FILE).pdf: clean $(MANUAL_FILE).tex\n";
359+
t << "\t$(LATEX_CMD) $(MANUAL_FILE)\n";
360+
t << "\t$(MKIDX_CMD) $(MANUAL_FILE).idx\n";
358361
if (generateBib)
359362
{
360-
t << "\tbibtex refman\n";
361-
t << "\t$(LATEX_CMD) refman\n";
363+
t << "\t$(BIBTEX_CMD) $(MANUAL_FILE)\n";
364+
t << "\t$(LATEX_CMD) $(MANUAL_FILE)\n";
362365
}
363-
t << "\t$(LATEX_CMD) refman\n"
364-
<< "\tlatex_count=8 ; \\\n"
365-
<< "\twhile egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\\\n"
366+
t << "\t$(LATEX_CMD) $(MANUAL_FILE)\n"
367+
<< "\tlatex_count=$(LATEX_COUNT) ; \\\n"
368+
<< "\twhile egrep -s 'Rerun (LaTeX|to get cross-references right|to get bibliographical references right)' $(MANUAL_FILE).log && [ $$latex_count -gt 0 ] ;\\\n"
366369
<< "\t do \\\n"
367370
<< "\t echo \"Rerunning latex....\" ;\\\n"
368-
<< "\t $(LATEX_CMD) refman ;\\\n"
371+
<< "\t $(LATEX_CMD) $(MANUAL_FILE) ;\\\n"
369372
<< "\t latex_count=`expr $$latex_count - 1` ;\\\n"
370373
<< "\t done\n"
371-
<< "\t$(MKIDX_CMD) refman.idx\n"
372-
<< "\t$(LATEX_CMD) refman\n\n";
374+
<< "\t$(MKIDX_CMD) $(MANUAL_FILE).idx\n"
375+
<< "\t$(LATEX_CMD) $(MANUAL_FILE)\n\n";
373376
}
374377

375378
t << "\n"
376379
<< "clean:\n"
377380
<< "\trm -f "
378-
<< "*.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf\n";
381+
<< "*.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl $(MANUAL_FILE).pdf\n";
379382
}
380383

381384
static void writeMakeBat()
@@ -385,6 +388,9 @@ static void writeMakeBat()
385388
QCString fileName=dir+"/make.bat";
386389
QCString latex_command = theTranslator->latexCommandName().quoted();
387390
QCString mkidx_command = Config_getString(MAKEINDEX_CMD_NAME).quoted();
391+
QCString bibtex_command = "bibtex";
392+
QCString manual_file = "refman";
393+
const int latex_count = 8;
388394
bool generateBib = !CitationManager::instance().isEmpty();
389395
std::ofstream t(fileName.str(),std::ofstream::out | std::ofstream::binary);
390396
if (!t.is_open())
@@ -393,74 +399,97 @@ static void writeMakeBat()
393399
}
394400
t << "set Dir_Old=%cd%\r\n";
395401
t << "cd /D %~dp0\r\n\r\n";
396-
t << "del /s /f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf\r\n\r\n";
402+
t << "\r\n";
403+
t << "set ORG_LATEX_CMD=%LATEX_CMD%\r\n";
404+
t << "set ORG_MKIDX_CMD=%MKIDX_CMD%\r\n";
405+
t << "set ORG_BIBTEX_CMD=%BIBTEX_CMD%\r\n";
406+
t << "set ORG_LATEX_COUNT=%LATEX_COUNT%\r\n";
407+
t << "set ORG_MANUAL_FILE=%MANUAL_FILE%\r\n";
408+
t << "if \"X\"%LATEX_CMD% == \"X\" set LATEX_CMD=" << latex_command << "\r\n";
409+
t << "if \"X\"%MKIDX_CMD% == \"X\" set MKIDX_CMD=" << mkidx_command << "\r\n";
410+
t << "if \"X\"%BIBTEX_CMD% == \"X\" set BIBTEX_CMD=" << bibtex_command << "\r\n";
411+
t << "if \"X\"%LATEX_COUNT% == \"X\" set LATEX_COUNT=" << latex_count << "\r\n";
412+
t << "if \"X\"%MANUAL_FILE% == \"X\" set MANUAL_FILE=" << manual_file << "\r\n";
413+
t << "\r\n";
414+
t << "del /s /f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl %MANUAL_FILE%.pdf\r\n\r\n";
415+
t << "\r\n";
397416
if (!Config_getBool(USE_PDFLATEX)) // use plain old latex
398417
{
399-
t << "set LATEX_CMD=" << latex_command << "\r\n";
400-
t << "set MKIDX_CMD=" << mkidx_command << "\r\n";
401-
t << "%LATEX_CMD% refman.tex\r\n";
418+
t << "%LATEX_CMD% %MANUAL_FILE%.tex\r\n";
402419
t << "echo ----\r\n";
403-
t << "%MKIDX_CMD% refman.idx\r\n";
420+
t << "%MKIDX_CMD% %MANUAL_FILE%.idx\r\n";
404421
if (generateBib)
405422
{
406-
t << "bibtex refman\r\n";
423+
t << "%BIBTEX_CMD% %MANUAL_FILE%\r\n";
407424
t << "echo ----\r\n";
408-
t << "\t%LATEX_CMD% refman.tex\r\n";
425+
t << "\t%LATEX_CMD% %MANUAL_FILE%.tex\r\n";
409426
}
410427
t << "setlocal enabledelayedexpansion\r\n";
411-
t << "set count=8\r\n";
428+
t << "set count=%LAT#EX_COUNT%\r\n";
412429
t << ":repeat\r\n";
413430
t << "set content=X\r\n";
414-
t << "for /F \"tokens=*\" %%T in ( 'findstr /C:\"Rerun LaTeX\" refman.log' ) do set content=\"%%~T\"\r\n";
415-
t << "if !content! == X for /F \"tokens=*\" %%T in ( 'findstr /C:\"Rerun to get cross-references right\" refman.log' ) do set content=\"%%~T\"\r\n";
431+
t << "for /F \"tokens=*\" %%T in ( 'findstr /C:\"Rerun LaTeX\" %MANUAL_FILE%.log' ) do set content=\"%%~T\"\r\n";
432+
t << "if !content! == X for /F \"tokens=*\" %%T in ( 'findstr /C:\"Rerun to get cross-references right\" %MANUAL_FILE%.log' ) do set content=\"%%~T\"\r\n";
433+
t << "if !content! == X for /F \"tokens=*\" %%T in ( 'findstr /C:\"Rerun to get bibliographical references right\" %MANUAL_FILE%.log' ) do set content=\"%%~T\"\r\n";
416434
t << "if !content! == X goto :skip\r\n";
417435
t << "set /a count-=1\r\n";
418436
t << "if !count! EQU 0 goto :skip\r\n\r\n";
419437
t << "echo ----\r\n";
420-
t << "%LATEX_CMD% refman.tex\r\n";
438+
t << "%LATEX_CMD% %MANUAL_FILE%.tex\r\n";
421439
t << "goto :repeat\r\n";
422440
t << ":skip\r\n";
423441
t << "endlocal\r\n";
424-
t << "%MKIDX_CMD% refman.idx\r\n";
425-
t << "%LATEX_CMD% refman.tex\r\n";
426-
t << "dvips -o refman.ps refman.dvi\r\n";
442+
t << "%MKIDX_CMD% %MANUAL_FILE%.idx\r\n";
443+
t << "%LATEX_CMD% %MANUAL_FILE%.tex\r\n";
444+
t << "dvips -o %MANUAL_FILE%.ps %MANUAL_FILE%.dvi\r\n";
427445
t << Portable::ghostScriptCommand();
428446
t << " -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite "
429-
"-sOutputFile=refman.pdf -c save pop -f refman.ps\r\n";
447+
"-sOutputFile=%MANUAL_FILE%.pdf -c save pop -f %MANUAL_FILE%.ps\r\n";
430448
}
431449
else // use pdflatex
432450
{
433-
t << "set LATEX_CMD=" << latex_command << "\r\n";
434-
t << "set MKIDX_CMD=" << mkidx_command << "\r\n";
435-
t << "%LATEX_CMD% refman\r\n";
451+
t << "%LATEX_CMD% %MANUAL_FILE%\r\n";
436452
t << "echo ----\r\n";
437-
t << "%MKIDX_CMD% refman.idx\r\n";
453+
t << "%MKIDX_CMD% %MANUAL_FILE%.idx\r\n";
438454
if (generateBib)
439455
{
440-
t << "bibtex refman\r\n";
441-
t << "%LATEX_CMD% refman\r\n";
456+
t << "%BIBTEX_CMD% %MANUAL_FILE%\r\n";
457+
t << "%LATEX_CMD% %MANUAL_FILE%\r\n";
442458
}
443459
t << "echo ----\r\n";
444-
t << "%LATEX_CMD% refman\r\n\r\n";
460+
t << "%LATEX_CMD% %MANUAL_FILE%\r\n\r\n";
445461
t << "setlocal enabledelayedexpansion\r\n";
446-
t << "set count=8\r\n";
462+
t << "set count=%LATEX_COUNT%\r\n";
447463
t << ":repeat\r\n";
448464
t << "set content=X\r\n";
449-
t << "for /F \"tokens=*\" %%T in ( 'findstr /C:\"Rerun LaTeX\" refman.log' ) do set content=\"%%~T\"\r\n";
450-
t << "if !content! == X for /F \"tokens=*\" %%T in ( 'findstr /C:\"Rerun to get cross-references right\" refman.log' ) do set content=\"%%~T\"\r\n";
465+
t << "for /F \"tokens=*\" %%T in ( 'findstr /C:\"Rerun LaTeX\" %MANUAL_FILE%.log' ) do set content=\"%%~T\"\r\n";
466+
t << "if !content! == X for /F \"tokens=*\" %%T in ( 'findstr /C:\"Rerun to get cross-references right\" %MANUAL_FILE%.log' ) do set content=\"%%~T\"\r\n";
467+
t << "if !content! == X for /F \"tokens=*\" %%T in ( 'findstr /C:\"Rerun to get bibliographical references right\" %MANUAL_FILE%.log' ) do set content=\"%%~T\"\r\n";
451468
t << "if !content! == X goto :skip\r\n";
452469
t << "set /a count-=1\r\n";
453470
t << "if !count! EQU 0 goto :skip\r\n\r\n";
454471
t << "echo ----\r\n";
455-
t << "%LATEX_CMD% refman\r\n";
472+
t << "%LATEX_CMD% %MANUAL_FILE%\r\n";
456473
t << "goto :repeat\r\n";
457474
t << ":skip\r\n";
458475
t << "endlocal\r\n";
459-
t << "%MKIDX_CMD% refman.idx\r\n";
460-
t << "%LATEX_CMD% refman\r\n";
461-
t << "cd /D %Dir_Old%\r\n";
462-
t << "set Dir_Old=\r\n";
463-
}
476+
t << "%MKIDX_CMD% %MANUAL_FILE%.idx\r\n";
477+
t << "%LATEX_CMD% %MANUAL_FILE%\r\n";
478+
}
479+
t<< "\r\n";
480+
t<< "@REM reset environment\r\n";
481+
t<< "cd /D %Dir_Old%\r\n";
482+
t<< "set Dir_Old=\r\n";
483+
t<< "set LATEX_CMD=%ORG_LATEX_CMD%\r\n";
484+
t<< "set ORG_LATEX_CMD=\r\n";
485+
t<< "set MKIDX_CMD=%ORG_MKIDX_CMD%\r\n";
486+
t<< "set ORG_MKIDX_CMD=\r\n";
487+
t<< "set BIBTEX_CMD=%ORG_BIBTEX_CMD%\r\n";
488+
t<< "set ORG_BIBTEX_CMD=\r\n";
489+
t<< "set MANUAL_FILE=%ORG_MANUAL_FILE%\r\n";
490+
t<< "set ORG_MANUAL_FILE=\r\n";
491+
t<< "set LATEX_COUNT=%ORG_LATEX_COUNT%\r\n";
492+
t<< "set ORG_LATEX_COUNT=\r\n";
464493
#endif
465494
}
466495

0 commit comments

Comments
 (0)