Booktabs table 未显示在 pdf 或 doc 中

Booktabs table does not show in pdf or doc

我在尝试创建其中包含 booktabs table 的 pdf 时遇到错误。如果我删除 table 代码,则可以毫无问题地创建 pdf。

RStudio: 最新版本

R: 最新版本

tinytex: 最新版本

下面是我的 Rmd 文件:

---
title: "table"
author: "Author"
date: "2/13/2021"
output:
  pdf_document:
    latex_engine: xelatex
  html_document:
    df_print: paged
includes:
  in_header: preamble.tex
---

Something here

\begin{table}[h]
    \centering
    \caption{Descriptive Statistics}
    \label{tab:descriptiveStatistics}
    {
        \begin{tabular}{lr}
            \toprule
             & Weight  \
            \cmidrule[0.4pt]{1-2}
            Valid & 13  \
            Missing & 0  \
            Mean & 170.769  \
            Std. Deviation & 29.255  \
            Minimum & 140.000  \
            Maximum & 235.000  \
            \bottomrule
        \end{tabular}
    }
\end{table}

下面是我的 preamble.tex 文件:

\usepackage{booktabs}
\usepackage{makecell}

我得到的错误如下:

output file: test.knit.md

! Undefined control sequence.
l.81             \toprule

Error: LaTeX failed to compile test.tex. See https://yihui.org/tinytex/r/#debugging for debugging tips. See test.log for more info.
In addition: Warning message:
In has_crop_tools() : 
Tool(s) not installed or not in PATH: pdfcrop, ghostcript
-> As a result, figure cropping will be disabled.
Execution halted

您的 preamble.tex 未包含在内,因为您的 yaml header 有误。应该是:

---
title: "table"
author: "Author"
date: "2/13/2021"
output:
  pdf_document:
    latex_engine: xelatex
    includes:
      in_header: preamble.tex
  html_document:
    df_print: paged
---

然后就可以了。

我还建议使用 kableExtra。根据我的经验,它基本上生成 LaTeX 代码并为您节省大量制作表格的时间。您可以将 keep_tex: yes(也在 pdf_document: 下)设置为 double-check 正在生成的内容。