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

R Markdown附录仅显示标题留白 横向表格与标题同页展示问题求解

问题原因

LaTeX的landscape环境默认会强制开启新页面,你之前的代码将附录标题放在了landscape环境外,所以标题独占一页纵向页面,landscape环境内的表格又自动新开了一页横向页面,才会出现标题页留白、表格单独分页的情况。


解决方案1(整附录页横向,适配长表格)

调整代码将附录标题和表格都放入landscape环境内,同时给表格添加固定位置参数即可,修改后的完整代码如下:

\newpage
# References {-}

<div id="refs"></div>

\newpage
\begin{landscape}
# Appendix {-}

\setcounter{table}{0}
\renewcommand{\thetable}{A\arabic{table}}

```{r pre_table_appendix, message=FALSE, warning=FALSE, echo=FALSE, include=FALSE}
library(kableExtra)
tab <- matrix(c("text1", "text2", "text3", "text4",
                "text1", "text2", "text3", "text4",
                "text1", "text2", "text3", "text4",
                "text1", "text2", "text3", "text4"), ncol=4, byrow=TRUE)
colnames(tab) <- c('Variable','Variable','Variable','Variable')
rownames(tab) <- NULL
tab <- as.table(tab)

table_appendix <- kbl(tab, longtable = T, booktabs = T, row.names = 0, caption = "Title.") %>%
kable_styling(latex_options = c("repeat_header", "hold_position"))
table_appendix

\end{landscape}

#### 调整细节
- 将`\begin{landscape}`移动到附录标题之前,`\end{landscape}`放在表格输出之后,让所有附录首屏内容都处在同一个横向页面内,避免环境触发的自动分页
- 在`kable_styling`的`latex_options`中新增`hold_position`参数,强制表格固定在代码对应的位置,不会触发LaTeX的自动浮动排版
- 移除了原代码中对表格无效的`fig.pos="H"`参数(该参数仅用于控制图片位置)

---

### 解决方案2(保留纵向标题,仅旋转表格)
如果需要保持附录标题为纵向排版,不切换整页方向,可直接对表格内容做旋转处理,代码调整如下:
```latex
\newpage
# References {-}

<div id="refs"></div>

\newpage
# Appendix {-}

\setcounter{table}{0}
\renewcommand{\thetable}{A\arabic{table}}

```{r pre_table_appendix, message=FALSE, warning=FALSE, echo=FALSE, include=FALSE}
library(kableExtra)
tab <- matrix(c("text1", "text2", "text3", "text4",
                "text1", "text2", "text3", "text4",
                "text1", "text2", "text3", "text4",
                "text1", "text2", "text3", "text4"), ncol=4, byrow=TRUE)
colnames(tab) <- c('Variable','Variable','Variable','Variable')
rownames(tab) <- NULL
tab <- as.table(tab)

table_appendix <- kbl(tab, booktabs = T, row.names = 0, caption = "Title.") %>%
kable_styling(latex_options = c("hold_position", "scale_down")) %>%
column_spec(1:4, angle = 90) # 旋转表格所有列内容
table_appendix
注意该方案需要移除`longtable = T`配置,longtable环境不支持内容旋转和位置固定参数,适合行数较少不需要跨页的表格。

---

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

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

最近更新时间:2026.09.26 10:24:02