Booktabs 表未显示在 pdf 或 doc 中

问题描述

我在尝试创建包含 booktabs 表的 pdf 时出错。如果我删除表格代码,则创建 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 标头错误。应该是:

---
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: 下)以仔细检查正在生成的内容。