我正在運行一個奇怪的結果。我在Rmarkdown的檔案中插入了一些表格。這就是YAML:
------
輸出。
pdf_document:
toc: true
toc_depth: 2
number_sections: true
header-includes:
usepackage{float}。
floatplacement{figure}{H}。
floatplacement{table}{H}。
---
而第一塊:
{r setup, include=FALSE}。
knitr::opts_chunk$set(echo = TRUE,
fig.pos="H",
fig.width=8,
fig.height=7,
tab.pos = "H",
collapse = TRUE,
message = FALSE,
warning = FALSE。
comment = "#>"
)
knitr::opts_knit$set(root. dir = rprojroot::find_rstudio_root_file()
options(knitr.kable.NA = "-")
這些表格是以這種方式插入的:
kable(tableX, caption = "Caption", booktabs = TRUE) %>%
row_spec(0, bold=TRUE) %>%
kable_styling(bootstrap_options = " condensed") %>%
column_spec(1, italic = TRUE)
現在,大多數表格都能正確插入,但只有一個表格是用latex代碼列印的,先是egin{table},然后是caption{},然后是表格,最后是end{table}。在代碼相同的情況下,怎么可能以這種方式列印一個表格呢?
謝謝你
uj5u.com熱心網友回復:
正如rmarkdown的作者Yihui Xie所指出的這里,你可以禁用kable()中的字符轉義引數,以便在表格標題,或列/行名稱,或兩者中包括LaTeX的空間字符。然后你需要通過在每個特殊字符前添加來手動轉義這些字符。
```{r tab1, echo=F}。
tableX=data.frame(col1 = "Empty data frame")
kable(
tableX,
caption = "Caption 20%",
booktabs = TRUE,
escape = FALSE
) |>
行_spec(0, bold=TRUE) |>
kable_styling(bootstrap_options = " condensed") %>%
column_spec(1, italic = TRUE)
```
uj5u.com熱心網友回復:
當輸出選項被設定為pdf_document時,R markdown將產生latex代碼(latex代碼可以通過選擇選項keep_tex并檢查產生的.tex檔案來查看),或者當輸出被設定為latex_fragment時。
knitr::kable為一個表格輸出完整的latex輸出(當處于tex模式時),但會消耗任何提供的字面上的字幕。然后knitr解釋器會消耗產生的latex塊。當在egin和end環境陳述句之間產生了一些非法的東西(比如一個標題中含有未轉義的%),解釋器會產生轉義的latex代碼。
有效的代碼
``{r tab1, echo=F}。
tableX=data.frame(col1 = "Empty data frame")
kable(tableX, caption = "Caption 20pct", booktabs = TRUE) |>
行_spec(0, bold=TRUE) |>
kable_styling(bootstrap_options = " condensed") %>%
column_spec(1, italic = TRUE)
```
按預期產生latex代碼:
egin{table}。
caption{label{tab:tab1}Caption 20pct}。
centering
egin{tabular}[t]{>{}l}。
oprule
extbf{col1}
midrule
em{Empty data frame}
ottomrule
end{tabular}。
end{table}。
但是當在標題中加入%時,latex代碼生成就會中斷。該代碼塊
``{r tab1, echo=F}。
tableX=data.frame(col1 = "Empty data frame")
kable(tableX, caption = "Caption 20%", booktabs = TRUE) |> _/span>
row_spec(0, bold=TRUE) |>
kable_styling(bootstrap_options = " condensed") %>%
column_spec(1, italic = TRUE)
```
產生了
extbackslash begin{table}
extbackslash caption{label{tab: tab1}Caption 20%} centering
egin{tabular}[t]{>{}l}。
oprule
extbf{col1}
midrule
em{Empty data frame}
ottomrule
end{tabular}。
extbackslash end{table}
這只是在pdf中顯示為字面的latex代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/333005.html
標籤:
上一篇:如何在ListViewflutter內搜索JSON專案?
下一篇:如何正確設定垂直滾動的css
