R markdown,在kable_styling()中使用\ rowcolor造成麻烦

问题描述 投票:1回答:2

R降价中的kable_styling()遇到麻烦。 https://haozhu233.github.io/kableExtra/awesome_table_in_pdf.pdf在将Rmd文件转换为pdf的样式表中具有很好的装饰图案,但kable_styling(latex_options = "striped")仍然存在问题,因为它会出现错误!undefined control sequence. \rowcolor

R块中的代码为

kableExtra::kable(results,caption = "Results", "latex", booktabs = TRUE) %>% 
kable_styling(latex_options = "striped")

我已经尝试过\usepackage[table]{xcolor}和其他一些“磨牙”技术,但仍然出错。我将通过附加的“ in_header”文件向您展示我正在使用的YAML。任何帮助将不胜感激。

--- title: "Water Yield" author: "Josh Erickson" date: "January 28, 2020" output: pdf_document: fig_caption: yes includes: in_header: my_header.tex bibliography: WaterYield.bib tables: true ---

“ my_header.tex”在下面

\usepackage{float}
\let\origfigure\figure
\let\endorigfigure\endfigure
\renewenvironment{figure}[1][2] {
    \expandafter\origfigure\expandafter[H]
} {
    \endorigfigure
}

- \usepackage{booktabs}
- \usepackage{longtable}
- \usepackage{array}
- \usepackage{multirow}
- \usepackage{wrapfig}
- \usepackage{float}
- \usepackage{colortbl}
- \usepackage{pdflscape}
- \usepackage{tabu}
- \usepackage{threeparttable}
- \usepackage{threeparttablex}
- \usepackage[normalem]{ulem}
- \usepackage{makecell}
- \usepackage{xcolor}
r r-markdown pdflatex kable kableextra
2个回答
0
投票

在没有MWE的情况下,很难保证此修复程序将起作用。也就是说,kableExtra会根据您提供的参考的P.4中的文档自动加载乳胶包xtable。一种选择是遵循他们的建议:

您可以通过将全局选项kableExtra.latex.load_packages设置为FALSE来抑制这种自动加载行为在加载kableExtra之前。

或者,我建议您执行以下操作:

  1. 从.tex文件中删除\ usepackage {xcolor}。您已经有\ usepackage {colortbl},它定义了所需的命令\ rowcolor(请参见colortbl.pdf)。它与kableExtra不冲突。
  2. [可能是由于我对YAML / R Markdown中的某些功能一无所知,所以我更喜欢将.t​​ex文件转换为.txt文件,并删除\ usepackage命令之前的所有“-”。

这是一个适合您的MWE示例:

---
title: "Water Yield"
author: "Josh Erickson"
date: "2/2/2020"
output: 
  pdf_document:
    includes:
      in_header: my_header.txt
tables: true  
---
knitr::opts_chunk$set(echo = TRUE)
if(!require(pacman)) install.packages("pacman")
pacman::p_load(tidyverse, kableExtra)

#using the cars dataset from base R
results = summary(cars)

kableExtra::kable(results,caption = "Results", "latex", booktabs = TRUE) %>% 
kable_styling(latex_options = "striped")

请注意,我只对in_header文件进行了三处修改:

  • 将其更改为.txt [这可能是不必要的步骤];
  • 在\ usepackage命令之前删除所有“-”;和
  • 删除\ usepackage {xcolor}

因此,我的my_header.txt文件如下所示:

\usepackage{float}
\let\origfigure\figure
\let\endorigfigure\endfigure
\renewenvironment{figure}[1][2] {
  \expandafter\origfigure\expandafter[H]
} {
  \endorigfigure
}

\usepackage{booktabs}
\usepackage{longtable}
\usepackage{array}
\usepackage{multirow}
\usepackage{wrapfig}
\usepackage{float}
\usepackage{colortbl}
\usepackage{pdflscape}
\usepackage{tabu}
\usepackage{threeparttable}
\usepackage{threeparttablex}
\usepackage[normalem]{ulem}
\usepackage{makecell}

相应的pdf如下:

enter image description here


0
投票

请参见tinytex:“导致LaTeX失败的常见原因是缺少LaTeX软件包。”

我在tinytex中编译时遇到了同样的问题,但之后一切正常

LaTeX
© www.soinside.com 2019 - 2024. All rights reserved.