QuickBuild does not rerun LaTex enough times

kile
Thijs Heus
2004-10-20
2012-07-03
  • Thijs Heus

    Thijs Heus - 2004-10-20

    First I have to say: Great release, this 1.7! I have one problem however with the quickbuild: Although kile detects the undefined citations, it only reruns Bibtex/Latex once, which I think is not enough; Latex should be done twice I think. At least that's the way it works for me.

    Cheers,

    Thijs

     
    • Jeroen Wijnhout

      Jeroen Wijnhout - 2004-10-20

      You don't need to run LaTeX twice, in general. LaTeX checks for "Rerun LaTeX" warnings in the log. Only if such a warning is present, Kile reruns LaTeX.

      If you can find cases where Kile does not run LaTeX often enough (i.e. the produced .dvi is not correct/up to date), I would like to know that.

      best,
      Jeroen

       
      • Thijs Heus

        Thijs Heus - 2004-10-20

        Ok, may be I am just plain stupid
        I always thought it needed one rerun extra. And just when you add a cite to your text. Latex once to let bibtex know it's changed, and what the changes are, bibtex to make the citation list, latex to create the source list, and a final time to set the cite's correctly.
        So, after 1 Quickbuild, these are the latex file, bibtex and the log:
        \documentclass[a4paper,10pt]{article}

        \begin{document}
        \cite{brown2002}

        \bibliography{Articles/Bibliography}
        \bibliographystyle{plain}
        \end{document}

        @ARTICLE{brown2002,
        author = {Brown, A.R.},
        title = {Large-eddy simulation of the diurnal cycle of shallow cumulus convection overland},
        journal = {Quart. J. Roy Meteor. Soc.},
        year = {2002},
        }

        [LaTeX] test.tex => test.dvi (latex)
        ./test.tex:0:No file test.aux.
        ./test.tex:9: Citation `brown2002' on page 1 undefined on input line 9.
        ./test.bbl:4:Underfull \hbox (badness 1565) in paragraph
        ./test.tex:0: There were undefined references.
        ./test.tex:0: Label(s) may have changed. Rerun to get cross-references right.
        [LaTeX] 0 errors, 4 warnings, 1 badbox
        [LaTeX] Done!

        [BibTeX] test.aux => test.bbl (bibtex)
        [BibTeX] Done!

         
        • Jeroen Wijnhout

          Jeroen Wijnhout - 2004-10-20

          Ok, if I do this I get the following output (slightly different test files, but you get the idea):
          [LaTeX] test.tex => test.dvi (latex)
          ./test.tex:0:No file test.aux.
          ./test.tex:12: Citation `book' on page 1 undefined on input line 12.
          ./test.tex:0:No file test.bbl.
          ./test.tex:0: There were undefined references.
          [LaTeX] 0 errors, 4 warnings, 0 badboxes
          [LaTeX] Done!

          [BibTeX] test.aux => test.bbl (bibtex)
          [BibTeX] Done!

          [LaTeX] test.tex => test.dvi (latex)
          ./test.tex:12: Citation `book' on page 1 undefined on input line 12.
          ./test.tex:0: There were undefined references.
          ./test.tex:0: Label(s) may have changed. Rerun to get cross-references right.
          [LaTeX] 0 errors, 3 warnings, 0 badboxes
          [LaTeX] Done!

          [LaTeX] test.tex => test.dvi (latex)
          [LaTeX] 0 errors, 0 warnings, 0 badboxes
          [LaTeX] Done!

          So LaTeX is run twice here, as it should in this case. If you see different behavior, then we have bug.

          best,
          Jeroen

           
    • Thijs Heus

      Thijs Heus - 2004-10-20

      Whoops, I should insert the output correctly....
      But anyway, I count 3 Latex runs in your case, and 2 in mine. I think it goes wrong when the citation is not in the bbl file yet; this is of course the moment latex should run three times instead of two.

      [LaTeX] test.tex => test.dvi (latex)
      ./test.tex:0:No file test.aux.
      ./test.tex:0: Citation `brown2002' on page 1 undefined on input line6.
      ./test.tex:0:No file test.bbl.
      ./test.tex:0: There were undefined citations.
      [LaTeX] 0 errors, 4 warnings, 0 badboxes
      [LaTeX] Done!

      [BibTeX] test.aux => test.bbl (bibtex)
      [BibTeX] Done!

      [LaTeX] test.tex => test.dvi (latex)
      ./test.tex:0: Citation `brown2002' on page 1 undefined on input line6.
      ./test.tex:0: There were undefined citations.
      ./test.aux:0: Citation(s) may have changed.
      [LaTeX] 0 errors, 3 warnings, 0 badboxes
      [LaTeX] Done!

       
    • Thijs Heus

      Thijs Heus - 2004-10-20

      OK, great. I think I am going to do my first open source contribution ever. Here we go: In kilestdtools.cpp, line 150 (the check for Latex Warnings called "rerun" if statement) i changed "rerun" with "may have changed". This seems to make me happy. I'm not sure whether or not there are other possibilities where this is causing bugs, but for now, it works. I'll post here if it doesn't

       
    • Diego Andres Alvarez

      This is not a KILE problem...
      you have to set up Kile in the following way:

      Latex:
      texi2dvi --batch '%S.tex'

      Pdflatex:
      texi2dvi --batch --pdf '%S.tex'

      DVI to PS:
      dvips -Ppdf -G0 '%S.dvi' -o '%S.ps'

      PS to PDF:
      ps2pdf -sPAPERSIZE=a4 -dMaxSubsetPct=100 -dCampatibilityLevel=1.2 -dSubsetFonts=true -dEmbedAllFonts=true '%S.ps' '%S.pdf'

      Basically, texi2dvi reruns Latex enough times until making all references...

       

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks