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

如何在Shiny App中嵌入含Tabset和公式的Rmarkdown(无需转HTML)

在Shiny应用中嵌入含Tabset和数学公式的Rmarkdown(不转HTML)

要实现同时在Shiny中展示Rmarkdown的标签集(Tabset)和数学公式,且不通过渲染为HTML的方式破坏原有Shiny UI,可以按照以下方式操作:

核心思路

先用knitr::knit()把Rmarkdown文件转换为Markdown格式,再在Shiny中通过includeMarkdown()加载该md文件,配合withMathJax()渲染数学公式,同时保留Tabset的交互效果。

完整代码示例

app.R

library(shiny)
library(knitr)

# 预先将Rmd转换为md文件
knit("example.Rmd")

ui <- fluidPage(
  # 预留渲染Rmarkdown内容的位置
  uiOutput("rmarkdown")
)

server <- function(input, output) {
  output$rmarkdown <- renderUI({
    # 加载md文件并渲染数学公式
    withMathJax(includeMarkdown("example.md"))
  })
}

shinyApp(ui = ui, server = server)

example.Rmd

---
title: "example"
output: html_document
date: '2022-08-05'
---

## Test 1 {.tabset}

A B C D

### TAB 1

$$
E(X)
$$
### TAB 2

$$
E(Y)
$$

补充说明

如果直接将Rmarkdown渲染为HTML并通过includeHTML()嵌入Shiny,虽然能正常显示公式和Tabset,但会干扰Shiny原生的tabsetPanel组件,导致UI布局混乱。而本方法通过先转md再渲染的方式,既保留了Tabset和数学公式的展示效果,又不会破坏原有Shiny应用的UI结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 10:06:47