1

いくつかのデータをロードし、いくつかのシンボルとカスタムの色と線を含む kableExtra テーブルを生成し、pdf に出力する Rmarkdown ファイルを作成しました。

Rmarkdown ファイルを開いてニットすると機能し、必要な正確な出力が生成されます。さまざまな理由から、この Rmarkdown ファイルを別の .R ファイルから呼び出す必要があります。

ただし、これを (rmarkdown::render 関数を使用して) 行うと、.Rmd ファイル内から直接編成した場合には発生しないエラーが発生します。具体的には、エラーは関数background内の設定によって引き起こされます。cell_specこの呼び出しを削除して背景色を設定すると、.Rmd ファイルを別のファイルから正常にレンダリングできます。エラーは次のとおりです。

! Illegal parameter number in definition of \reserved@a.
<to be read again> 
                   f
l.111 ...; background-color: #ffe6e6;" >1</span>}}
                                                  \\ 

アドバイスをありがとうございました。問題を再現する完全な Rmd ファイルを次に示します。Rmd から直接編成した場合の出力は次のようになります。

ここに画像の説明を入力

これがコードです。

---
title: ""
always_allow_html: yes
output:
  pdf_document:
    latex_engine: xelatex
geometry: margin=0.3in
header-includes:
- \usepackage[T1]{fontenc}
- \usepackage{array}
- \usepackage{booktabs}
- \usepackage{xcolor}
- \usepackage{makecell}
- \usepackage{longtable}
- \usepackage{multirow}
- \usepackage{wrapfig}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage{pdflscape}
- \usepackage{tabu}
- \usepackage{threeparttable}
- \usepackage{threeparttablex}
- \usepackage[normalem]{ulem}
- \usepackage{hyperref}
- \setmainfont{Helvetica}
- \pagenumbering{gobble}
- \DeclareTextCommand{\nobreakspace}{TU}{\leavevmode\nobreak\ }
documentclass: article
classoption: a4paper
---

```{r, echo=FALSE, message = FALSE, warning = FALSE}

# Packages
suppressMessages(library(ggplot2))
suppressMessages(library(extrafont))
suppressMessages(library(dplyr))
suppressMessages(library(pander))
suppressMessages(library(kableExtra))

# Data
table_dat <- data.frame(latex_symbol = c("", "$\\blacktriangle$",
                                     "$\\blacklozenge$", "$\\blacklozenge$",
                                     "$\\bullet$", "+"),
                    color = c("#0c0000", "#ffde71", "#cb6f86",
                              "#0c0000", "#0c0000", "#0c0000"),
                    name = c("Thing 1", "Thing 2", "Thing 3",
                             "Thing 4", "Thing 5", "Thing 6"),
                    latex_font_size = c(14, 11, 8, 11, 16, 8),
                    value = c(1,"<0",3,4,5,6),
                    stringsAsFactors = FALSE)

fsize <- 12

bgcolor <- c(rep("#ffe6e6",2), rep("#ffffff", 4))
table_dat$value <- cell_spec(table_dat$value, background = bgcolor)

  ktable <- table_dat %>%
    rename(color_ = color) %>%
    mutate(latex_symbol = cell_spec(latex_symbol, color = color_,
                                font_size = latex_font_size,
                                escape = FALSE,
                              format = "latex")) %>%
    select(latex_symbol, name, value) %>%
    kable(escape = FALSE, align = rep("l", 3),
      booktabs = TRUE, format = "latex",
      col.names = c("Symbol", "Name", "Value"),
      linesep = "") %>%
    row_spec(1:6, color = "darkgray") %>%
    row_spec(0, bold = TRUE) %>%
    column_spec(1, "5em") %>%
    column_spec(2, "11em") %>%
    column_spec(3, "4em") %>%
    kable_styling(font_size = fsize) %>% 
    row_spec(1, bold = TRUE) %>%
    row_spec(1:4, hline_after = TRUE)

    ```

 ```{r, echo=FALSE}
 ktable
 ```

kable注: 非常に多くのパッケージがヘッダーで明示的に引用されている理由は、レンダリング前にヘッダーに関連付けられているすべてのパッケージを引用することで解決された、これと同様の問題が過去にあったためです。しかし、今回はそれで問題が解決したようには見えませんでした。

4

0 に答える 0