R/knitr-utils.R

Defines functions create_label kable_caption

#------------------------------------------------------------------------------#
#
#                /$$
#               | $$
#     /$$$$$$  /$$$$$$
#    /$$__  $$|_  $$_/
#   | $$  \ $$  | $$
#   | $$  | $$  | $$ /$$
#   |  $$$$$$$  |  $$$$/
#    \____  $$   \___/
#    /$$  \ $$
#   |  $$$$$$/
#    \______/
#
#  This file is part of the 'rstudio/gt' project.
#
#  Copyright (c) 2018-2024 gt authors
#
#  For full copyright and license information, please look at
#  https://gt.rstudio.com/LICENSE.html
#
#------------------------------------------------------------------------------#


kable_caption <- function(label, caption, format) {
  # create a label for bookdown if applicable
  if (is.null(label)) label <- knitr::opts_current$get("label")
  if (is.null(label)) label <- NA
  if (!is.null(caption) && !anyNA(caption) && !anyNA(label)) {
    caption <- paste0(
      create_label(
        knitr::opts_knit$get("label.prefix")[["table"]],
        label,
        latex = (format == "latex")
      ), caption
    )
  }
  caption
}

create_label <- function(..., latex = FALSE) {
  if (isTRUE(knitr::opts_knit$get("bookdown.internal.label"))) {
    lab1 <- "(\\#"
    lab2 <- ")"
  } else if (latex) {
    lab1 <- "\\label{"
    lab2 <- "}"
  } else {
    return("") # we don't want the label at all
  }
  paste(c(lab1, ..., lab2), collapse = "")
}
rstudio/gt documentation built on Nov. 2, 2024, 5:53 p.m.