quarto-dev / quarto-dev/quarto-cli

Setting knitr::opts_knit$set(global.device = TRUE) duplicates plots when rendering

Open
#10,302 2 comments 0 reactions 1 assignee View on GitHub

@cderv is already working on this.

Since May 6, 2025.

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

Description

Bug description

Setting the knitr option for global device to true results in an unexpected behavior where the initial plot is displayed after each code chunk.

image

Steps to reproduce
---
title: "test"
format: html
embed-resources: true
---

```{r}
knitr::opts_knit$set(global.device = TRUE)
```

First a plot with default parameters:

```{r}
plot(1:10)
```

Now let's change the color:

```{r}
par(col="red")
```

And we plot again:

```{r}
plot(1:10)
```

or

---
title: "test"
format: html
knitr:
  opts_knit:
    global.device: true
embed-resources: true
---

First a plot with default parameters:

```{r}
plot(1:10)
```

Now let's change the color:

```{r}
par(col="red")
```

And we plot again:

```{r}
plot(1:10)
```
Expected behavior

Resulting plots from code chunk render once after their respective chunk.

Actual behavior

Initial plot gets rendered after each code chunk.

Your environment
  • IDE: RStudio 2024.04.2
  • OS: Linux Ubuntu 22.04.4 LTS
Quarto check output
Quarto 1.4.555
[✓] Checking versions of quarto binary dependencies...
      Pandoc version 3.1.11: OK
      Dart Sass version 1.69.5: OK
      Deno version 1.37.2: OK
[✓] Checking versions of quarto dependencies......OK
[✓] Checking Quarto installation......OK
      Version: 1.4.555
      Path: /usr/lib/rstudio-server/bin/quarto/bin

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

[✓] Checking LaTeX....................OK
      Using: Installation From Path
      Path: /usr/local/texlive/bin/linux
      Version: 2024

[✓] Checking basic markdown render....OK

[✓] Checking Python 3 installation....OK
      Version: 3.10.12
      Path: /usr/bin/python3
      Jupyter: (None)

      Jupyter is not available in this Python installation.
      Install with python3 -m pip install jupyter

[✓] Checking R installation...........OK
      Version: 4.4.1
      Path: /usr/local/lib/R
      LibPaths:
        - /usr/local/lib/R/site-library
        - /usr/local/lib/R/library
      knitr: 1.48
      rmarkdown: 2.27

[✓] 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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.