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

RMarkdown Beamer中先绘图后用etable+adjustbox表格不显示求助

问题

用fixest的feols()做回归分析,etable()生成表格嵌入Beamer演示文稿,依赖LaTeX的adjustbox包让宽表格适配页面宽度。但幻灯片中先插入ggplot图表后,带adjustbox的表格无法显示;移除前置图表后,表格又能正常渲染。

可复现代码如下:

YAML头部

---
title: "Teste"
output: beamer_presentation
date: "2024-11-14"
header-includes:
  - \usepackage{booktabs}
  - \usepackage{longtable}
  - \usepackage{array}
  - \usepackage{multirow}
  - \usepackage{wrapfig}
  - \usepackage{float}
  - \usepackage{colortbl}
  - \usepackage{pdflscape}
  - \usepackage{tabu}
  - \usepackage[normalem]{ulem}
  - \usepackage{makecell}
  - \usepackage{xcolor}
  - \usepackage{adjustbox}
---

R代码块

{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
library(fixest)
library(tidyverse)
library(tinytex)
{r pressure}
pressure%>%
  ggplot(aes(x=temperature,y=pressure))+
  geom_point()
{r cars, results = 'asis'}
ols=feols(speed~dist,data=cars)

etable(ols,ols,ols,ols,ols,ols,style.tex = style.tex(adjustbox = T),postprocess.df = pandoc.table.return,tex=T)
解决方案

方案1:给图表添加固定位置参数

图表默认的浮动环境会干扰后续LaTeX代码渲染,给ggplot代码块加fig.pos='h'强制图表固定在当前位置:

{r pressure, fig.pos='h'}
pressure%>%
  ggplot(aes(x=temperature,y=pressure))+
  geom_point()

方案2:移除postprocess.df参数

postprocess.df = pandoc.table.return会让etable先转成pandoc格式再转LaTeX,和adjustbox的原生LaTeX输出冲突,直接删除该参数即可:

{r cars, results = 'asis'}
ols=feols(speed~dist,data=cars)

etable(ols,ols,ols,ols,ols,ols,style.tex = style.tex(adjustbox = TRUE), tex = TRUE)

方案3:手动包裹adjustbox环境

如果前两种方法无效,直接手动用adjustbox包裹etable生成的表格,绕开自动生成的格式冲突:

{r cars, results = 'asis'}
ols=feols(speed~dist,data=cars)
# 生成表格内容但不直接打印
tab_content <- etable(ols,ols,ols,ols,ols,ols, tex = TRUE, print = FALSE)
# 手动添加adjustbox包裹代码
cat("\\begin{adjustbox}{width=\\textwidth}\n", tab_content, "\n\\end{adjustbox}", sep = "")

内容的提问来源于stack exchange,提问作者jorgep

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 05:58:10