quarto-dev / quarto-dev/quarto-cli

Infinite compilation loop for PDF format and YAML references support

Open
#7,353 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug latex third-party
Dominant language
JavaScript
Stars
6k
Forks
458
Avg merge
1d 9h
Merged PRs (30d)
41

Description

Bug description

I try to render a PDF using

cite-method: biblatex
biblatexoptions: [backend=bibtex]

and the compilation end with WARNING: maximum number of runs (9) reached.
Increasing latex-max-runs:99, does not solve the issue.

As there are no latex-max-runs in pandoc, I think this may be related to Quarto.

Similar behavior occurs when using YAML-encoded references (instead of an external bibliography) with either backend=bibtex or backend=biber. With cite-method: natbib only 3 runs are made, but still without bibliography in the pdf output.
I assume that YAML-encoded references are, up to now, only supported for the cite-method: citeproc in Quarto. Perhaps a notice on the references page should point this out. Especially, biblatex and natbib are intended for use in producing a LaTeX file that can be processed with bibtex or biber, as mentioned in Pandoc documentation.

Steps to reproduce

Here a basic Quarto document (named example-bibtex.qmd):

---
title: "example backend=bibtex"
author: "D. Folio"
format: 
  pdf:
    cite-method: biblatex
    biblatexoptions: [backend=bibtex]
    latex-max-runs: 22

nocite: "[@*]"
bibliography: bibtex.bib # you may use any 
---

## Quarto

Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see <https://quarto.org>.

example of bibtex.bib

@software{Allaire_Quarto_2022,
  author = {Allaire, J.J. and Teague, Charles and Scheidegger, Carlos and Xie, Yihui and Dervieux, Christophe},
  doi = {10.5281/zenodo.5960048},
  month = jan,
  title = {{Quarto}},
  url = {https://github.com/quarto-dev/quarto-cli},
  version = {1.2},
  year = {2022}
}

or with YAML-encoded references

format: 
  pdf:
    cite-method: biblatex
    biblatexoptions: [backend=biber]   #<---------------- same behavior with either bibtex or biber
references:
- type: article-journal
  id: WatsonCrick1953
  author:
  - family: Watson
    given: J. D.
  - family: Crick
    given: F. H. C.
  issued:
    date-parts:
    - - 1953
      - 4
      - 25
  title: 'Molecular structure of nucleic acids: a structure for deoxyribose nucleic acid'
  title-short: Molecular structure of nucleic acids
  container-title: Nature
  volume: 171
  issue: 4356
  page: 737-738
  DOI: 10.1038/171737a0
  URL: https://www.nature.com/articles/171737a0

and run quarto render example-bibtex.qmd

Expected behavior

A similar behavior as with biblatexoptions: [backend=biber]

Rendering PDF
running xelatex - 1
[...]

generating bibliography
[...]

running xelatex - 2
[...]

running xelatex - 3
[...]

Output created: example-bibtex.pdf
Actual behavior
Rendering PDF
running xelatex - 1
[...]

running xelatex - 2
[...]

running xelatex - 3
[...]
running pdflatex - 10

WARNING: maximum number of runs (9) reached

Output created: example-bibtex.pdf

With YAML-encoded references , empty bibliography file are generated.

The references are not rendered in the example-bibtex.pdf.

Your environment
  • IDE RStudio 2023.09.0 Build 463
  • Linux (Gentoo)
Quarto check output
quarto 1.4.429
[✓] Checking versions of quarto binary dependencies...
      Pandoc version 3.1.8: OK
      Dart Sass version 1.55.0: OK
      Deno version 1.33.4: OK
[✓] Checking versions of quarto dependencies......OK
[✓] Checking Quarto installation......OK
      Version: 1.4.429
      Path: /opt/quarto-1.4.429/bin

[✓] Checking tools....................OK
      TinyTeX: v2023.10
      Chromium: (not installed)

[✓] Checking LaTeX....................OK
      Using: TinyTex
      Path: /home/dfolio/.TinyTeX/bin/x86_64-linux
      Version: 2023

[✓] Checking basic markdown render....OK
[✓] Checking Python 3 installation....OK
      Version: 3.10.13
      Path: /usr/lib/python-exec/python3.10/python3
      Jupyter: 5.4.0
      Kernels: python3

[✓] Checking Jupyter engine render....OK

[✓] Checking R installation...........OK
      Version: 4.3.1
      Path: /usr/lib64/R
      LibPaths:
        - /home/dfolio/R/x86_64-pc-linux-gnu-library/4.3
        - /usr/lib64/R/library
      knitr: 1.44
      rmarkdown: 2.25

[✓] Checking Knitr engine render......OK

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running quarto render example-bibtex.qmd with the shown biblatex and YAML-reference cases, then trace how PDF citation settings and bibliography generation are handled. Done means the references appear in the PDF and compilation completes without repeatedly reaching the maximum run count.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, latex, yaml
Domain
build-system, documentation
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.