Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check support of new tab.cap chunk option in knitr #7555

Closed
cderv opened this issue Nov 13, 2023 · 4 comments
Closed

Check support of new tab.cap chunk option in knitr #7555

cderv opened this issue Nov 13, 2023 · 4 comments
Assignees
Labels
enhancement New feature or request knitr
Milestone

Comments

@cderv
Copy link
Collaborator

cderv commented Nov 13, 2023

Next release of knitr will have a tbl.cap chunk options handling

As quarto does use tbl-cap also, the support should be checked for correct behavior. Especially because tbl-cap is supposed to be today a forwarded attributes in Quarto to the cell

@cderv cderv added enhancement New feature or request knitr labels Nov 13, 2023
@cderv cderv added this to the v1.4 milestone Nov 13, 2023
@cderv cderv self-assigned this Nov 13, 2023
@cderv cderv changed the title Check support of new tbl.cap chunk option in knitr Check support of new tab.cap chunk option in knitr Nov 13, 2023
@cderv
Copy link
Collaborator Author

cderv commented Nov 13, 2023

So in fact, knitr introduced tab.cap and not tbl.cap...

@yihui just so you know in Quarto this is tbl-cap that complements fig-cap.

I wonder if

  • both should stay separate options, as Quarto has already its own handling,
  • we should make tab-cap option map to tbl-cap when inside Quarto (this would one in Quarto R code)
  • Add to knitr::convert_chunk_header() to transform ```{r, tab.cap="content"} to its ``#| tbl-cap: content` counterpart with Quarto

Probably the second is the best choice

@yihui
Copy link
Contributor

yihui commented Nov 13, 2023

Oh I didn't know tbl.cap has existed in Quarto. Name-wise, I prefer tab.cap over tbl.cap since the naming is more consistent (first three letters of a word: figure -> fig, caption -> cap, so table -> tab). Anyway, I have added support for tbl.cap in knitr: yihui/knitr@c9473ad

@cscheid
Copy link
Collaborator

cscheid commented Nov 13, 2023

"tab" clashes with "tabsets" for us, which is why I think we went with "tbl". Sorry for the confusion, and thanks for adding that as well!

@cderv
Copy link
Collaborator Author

cderv commented Dec 15, 2023

All seems to work as expected because we handle caption set in Markdown, LaTeX and HTML and that what knitr is producing.
So even with tbl-cap not set but tab-cap we do get a caption.

---
title: Hello
format: pdf
keep-md: true
---

```{r}
#| tab-cap: test
knitr::kable(head(cars), format = 'latex')
```
\begin{table}

\caption{\label{tab:unnamed-chunk-1}test}
---
title: Hello
format: html
keep-md: true
---

```{r}
#| tab-cap: test
knitr::kable(head(cars), format = 'html')
```
`````{=html}
<table>
<caption>test</caption>
---
title: Hello
format: html
keep-md: true
---

```{r}
#| tab-cap: test
knitr::kable(head(cars), format = 'pipe')
```
::: {.cell-output-display}


Table: test

| speed| dist|
|-----:|----:|
|     4|    2|
|     4|   10|
|     7|    4|
|     7|   22|
|     8|   16|
|     9|   10|

So it won't break anything, but still tbl-cap should be used with Quarto.

@cderv cderv closed this as completed Dec 15, 2023
@github-project-automation github-project-automation bot moved this from To discuss / To plan to Done in R Markdown Team Projects Dec 15, 2023
clrpackages pushed a commit to clearlinux-pkgs/R-knitr that referenced this issue Apr 9, 2024
Kyle F Butts (2):
      Add support for `# %%` for chunk demarcation in `knitr::spin` (#2307)
      make spin() recognize `#|` comments as code chunks (#2320)

Lee Mendelowitz (1):
      Fix the error when kable()'s caption value is of length > 1 (#2312)

Max Schmit (1):
      add ALTER as sql statment, that is not returning anything (#2330)

Yihui Xie (53):
      start the next version
      fix #2304: shouldn't have used `return(meta)` since `meta` is not the `citation()` but `packageDescription()`
      fix rstudio/rmarkdown#2526 by reverting bebf117 since the `cairo_pdf` device has been explicitly supported in chunk_device(); now all possible `pdf()` arguments are supported, including `family`
      Disallow unbalanced chunk delimiters (#2306)
      close #1679: obtain the caption from the chunk option `tab.cap` for `kable()`
      also try the chunk option tbl.cap when tab.cap is NULL (quarto-dev/quarto-cli#7555)
      tweak R Markdown v1 vignettes
      move mailing list link and use https in ref card
      move css and js to jsdelivr for html_vignette
      use jsdelivr for the Rhtml template
      rewrite the docco classic style using JS instead of R
      standardize the docco linear format
      new version of funmediation is on CRAN now
      support the ... argument in chunk hooks
      optimize PNG images in package vignettes via optipng and pngquant if they are installed
      use R Markdown v1 for the knitr-intro vignette, too
      delete some files that are no longer needed in inst/examples and also ignore some files
      fix #2308: don't trim trailing spaces escaped by `\`
      support in-body chunk options for ojs and mermaid (quarto-dev/quarto-cli#7799)
      amend 3dcfac4780accc3791855b298a556297f62dc73d to fix quarto-dev/quarto-cli#5994: add YAML options to code for dot/mermaid/ojs chunks so that the full chunk content can be returned to Quarto
      add trailing slashes to URLs
      use the `assert(fact, {})` syntax for all tests
      revert c9473ad: map the chunk option `tbl-cap` to `tab.cap`
      leave tbl.cap alone; don't convert it to tab.cap, since Quarto has its own special handling of `tbl-cap`
      Create FUNDING.yml
      use xfun::decimal_dot() to ensure dot as the decimal separator
      fix rstudio/rmarkdown#2525: ensure the dot is used as the decimal separator even when options(OutDec) is not `.` or `LC_NUMERIC` is inappropriate
      factor out code to xfun::csv_options() and xfun::divide_chunk()
      get_option_comment() has been moved to xfun
      roxygenize
      bump xfun version
      xfun 0.42 is on CRAN now
      revert 87d094a6c593c31a3667821865e91b4a530018ec per request from CRAN maintainers, since _R_CHECK_VIGNETTES_SKIP_RUN_MAYBE_=true has been made the default
      fix rstudio/tinytex#435: adjust PATH temporarily for pdf_crop() to be able to find the command `pdfcrop` from TinyTeX
      RStudio IDE still calls parse_params(): https://github.com/rstudio/rstudio/blob/9a6196233d8eae5aa365b73eaafba04f7714190c/src/cpp/session/modules/SessionRmdNotebook.R#L666
      a follow-up on #2331: use xfun::fenced_block() from yihui/xfun@22a97ce
      xfun 0.43 is on CRAN now
      not sure what's wrong with pak
      `knitr::imgur_upload()` is now simply a wrapper function of `xfun::upload_imgur()` (#2325)
      too many ways to do the same thing... drop support for `#-` in spin()
      make spin() work again with input that can't be parsed as R code
      use xfun::check_old_package()
      markdown no longer sets this option internally, so no need to empty it now
      better detection of Rmd v2 input in knit2html(), so it no longer warns against documents that use markdown:: or litedown:: output formats
      make regex a little stricter so it won't match rmarkdown::
      the loo issue has been fixed (#2306)
      roxygen2 requires _PACKAGE now
      rename class names 'block' to 'knitr_block', and 'inline' to 'knitr_inline' since I need to export the print() methods and the names 'block' and 'inline' are too general
      preserve trailing \n in source code by doubling it, because later we will remove trailing \n in fenced_block()
      a temporary workaround for davidgohel/flextable#621
      StructFDR has been updated on CRAN but unfortunately the maintainer didn't seem to have seen my email about #2306
      I can't use knitr_block/knitr_inline as class names since it would break the lightparser package; let me just get rid of these S3 methods, which are unnecessarily advanced---just use normal functions instead (i.e., use inherits() to do the dispatch by myself)
      CRAN release v1.46

knokknok (1):
      fix #2318: faster processing of dependencies in dep_auto() (#2321)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request knitr
Projects
None yet
Development

No branches or pull requests

3 participants