【问题标题】:Resizing .tex Table in Rmarkdown Beamer Slides在 Rmarkdown Beamer 幻灯片中调整 .tex 表的大小
【发布时间】:2017-10-24 19:09:31
【问题描述】:

问题:

需要缩小回归表以包含在 Beamer 幻灯片中,但如果不复制和粘贴原始 TeX,则无法在 RMarkdown 中缩小它们。有没有更简单的方法可以让我自动化这部分工作流程?

背景

我的回归会自动为回归表生成 .tex 文件。但是,当我尝试将文件输入到我的 Beamer 幻灯片(在 Rmarkdown 中创建)时,它们太大了,我必须手动复制、粘贴和调整它们以使其适合。下面是一个MWE

table.tex

\begin{table}[!htbp] \centering
  \caption{Title}
\begin{tabular}{lcccccc}
\\[-1.8ex]\hline
\hline \\[-1.8ex]
 & \multicolumn{6}{c}{Dependent Var} \\
\hline \\[-1.8ex]
 Independent Var & $-$0.031 & 0.012 & $-$0.264 & $-$0.267 & $-$0.107 & $-$1.980 \\
\hline
\hline \\[-1.8ex]
\textit{Note:}  & \multicolumn{6}{l}{$^{*}$p$<$0.1; $^{**}$p$<$0.05; $^{***}$p$<$0.01} \\
\end{tabular}
\end{table}

RMarkdown.Rmd

---
title: "Title"
output:
  beamer_presentation:
    slide_level: 3
    keep_tex: false
---

### Test Results
\input{table.tex}

解决方法

复制/粘贴 .tex 表格并在 \begin{tabular}...\end{tabular} 周围添加 \resizebox{}{}

Workaround.Rmd

---
title: "Title"
output:
  beamer_presentation:
    slide_level: 3
    keep_tex: false
---

### Test Results
\begin{table}[!htbp] \centering
  \caption{Title}

\resizebox{0.98\textwidth}{!}{

\begin{tabular}{lcccccc}
\\[-1.8ex]\hline
\hline \\[-1.8ex]
 & \multicolumn{6}{c}{Dependent Var} \\
\hline \\[-1.8ex]
 Independent Var & $-$0.031 & 0.012 & $-$0.264 & $-$0.267 & $-$0.107 & $-$1.980 \\
\hline
\hline \\[-1.8ex]
\textit{Note:}  & \multicolumn{6}{l}{$^{*}$p$<$0.1; $^{**}$p$<$0.05; $^{***}$p$<$0.01} \\
\end{tabular}

}

\end{table}

【问题讨论】:

  • \input{table.tex} 之前添加\small 和在之后添加\normalsize 怎么样?
  • 这有帮助,但我希望能够控制尺寸,而不是希望它适当地缩小它。
  • 当你运行回归时,你能否在生成乳胶标记之前缓存(或以其他方式保存为 R 可读格式)输出对象。然后将此对象加载到您的 rmarkdown-beamer 文档中,并在 beamer 文档中生成乳胶。这样,您可以在 rmarkdown 工作流程中自定义表格。例如,假设您保存了一个回归模型对象。将其加载到 rmarkdown-beamer 文档中,然后运行 ​​kablextablestargazer 或其他任何内容以生成适合投影仪幻灯片大小的乳胶表。
  • 我希望避免这种情况,因为我在相对较大的数据集上运行回归。对于我的一张表,回归对象是 1.1Gb,所以我宁愿只保留 .tex 输出 (1.6kb)。
  • 我不确定您是如何创建回归表的,但您可能只需要缓存摘要输出。例如,如果您创建一个lm 模型(我们将模型对象称为m1)然后summary(m1) 会生成一个包含系数、p 值、标准误差、R 平方等的对象。基本上,只需缓存什么您需要生成回归表。您不需要完整的模型对象。

标签: r latex r-markdown pandoc beamer


【解决方案1】:

缩放包含文本的元素可能会导致文本的可读性欠佳。相反,您可以使用 tcolorbox 包中的 fitting 库来自动选择合适的字体大小:

---
title: "Title"
output:
  beamer_presentation:
    slide_level: 3
    keep_tex: false
header-includes:
 - \usepackage{tcolorbox}
 - \tcbuselibrary{fitting}
---

### Test Results 
\begin{tcolorbox}[fit,width=\textwidth,height=.9\textheight,size=minimal,colback=white,fit algorithm=fontsize,colframe=white]
  \input{table.tex}
\end{tcolorbox}

【讨论】:

    猜你喜欢
    • 2017-12-26
    • 1970-01-01
    • 2020-01-08
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 2023-02-23
    相关资源
    最近更新 更多