You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RMarkdown输出PDF文档时如何实现两个gt()表格同页并排展示

两个gt表格同页左右并排的实现方法

你的PDF输出基于LaTeX渲染引擎,原有代码下表格上下排布的核心原因是,未被包裹在水平排列容器内的LaTeX内容会自动换行断行。借助LaTeX的minipage小页面盒子结构,即可实现同页并排效果,具体调整如下:

核心调整要点

  • 无需改动已配置好的横向页面参数,原有YAML块里的classoption: landscape设置完全保留
  • 替换原输出两个表格的代码块,需要做两个关键设置:
    • 给代码块添加results='asis'参数,保证原生LaTeX代码可以被正确渲染,不会被当成普通文本输出
    • 将两个表格分别包裹在独立的定宽minipage盒子中,盒子之间用\hfill自动填充间隙,实现水平排布

完整可运行的修改后代码

---
title: "R Notebook"
output: pdf_document
classoption: landscape
---

Blablabla

```{r include=FALSE}
library(tidyverse)
library(knitr)
library(gt)

\newpage

# 生成两个gt表格对象
table_1 <- filter(cars,speed<10) %>% gt()
table_2 <- filter(cars,speed<10) %>% gt()

# 提取两个表格对应的原生LaTeX代码
tab1_latex <- as.character(as_latex(table_1))
tab2_latex <- as.character(as_latex(table_2))

# 拼接并排排版的LaTeX结构
cat(paste0(
  "\\begin{minipage}{0.48\\textwidth}\n",
  tab1_latex, "\n",
  "\\end{minipage}\n",
  "\\hfill\n",
  "\\begin{minipage}{0.48\\textwidth}\n",
  tab2_latex, "\n",
  "\\end{minipage}"
))
### 排版适配细节
- 当前设置每个minipage占页面文本宽度的48%,预留了足够余量避免内容溢出。如果两个表格的内容宽度需求不对称,可以灵活调整两个盒子的宽度比例,只要两个宽度相加不超过`1.0\textwidth`就不会出现排版溢出
- 代码块默认会展示R代码,如果不需要展示代码,可以添加`echo=FALSE`参数,不影响最终表格的排版效果
- 如果导出时出现表格溢出的情况,可以通过`gt()`中的`tab_options()`参数调整表格内边距、字号,适配并排后的宽度限制
- 若需要给两个表格添加独立标题,直接在对应minipage内部、表格代码的前后添加对应caption代码即可,不会破坏并排布局

---
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.29 09:45:06