Уценка R, проблема с \ rowcolor в kable_styling () - PullRequest
1 голос
/ 31 января 2020

Возникли проблемы с kable_styling() в уценке R. 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} и несколько других техник удара, и все еще ошибка. Я покажу вам YAML, который я использую, с дополнительным файлом in_header. Любая помощь будет высоко ценится.

--- 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}

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

См. tinytex: «Распространенной причиной сбоя LaTeX является отсутствие пакетов LaTeX.»

У меня была такая же проблема при компиляции в LaTeX, но все работало нормально после

install.packages('tinytex')
0 голосов
/ 02 февраля 2020

При отсутствии MWE трудно гарантировать, что это исправление будет работать. При этом kableExtra автоматически загружает xtable пакета латекса в соответствии с документацией на стр. 4 предоставленной вами ссылки. Один из вариантов - следовать их рекомендациям:

Вы можете подавить это поведение автоматической загрузки, установив глобальный параметр kableExtra.latex.load_packages в значение FALSE перед загрузкой kableExtra.

В качестве альтернативы я бы предложил вам сделать следующее:

  1. удалить \ usepackage {xcolor} из вашего .tex файла. У вас уже есть \ usepackage {colortbl}, который определяет нужную вам команду \ rowcolor (см. colortbl.pdf ). Это не относится к sh с kableExtra.
  2. Возможно, из-за моего незнания некоторых функций в Markdown YAML / R, я предпочитаю конвертировать файл .tex в файл .txt и удалять все "- msgstr "перед командами \ 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

...