6

我想在我闪亮的仪表板应用程序中显示一个带有 LaTeX 方程的 Rmd 文件。我在使用includeMarkdown()and时遇到了问题includeHTML()。这是我想要实现的简化应用程序。这是我的app.R:

library(shinydashboard)
ui <- dashboardPage(
    dashboardHeader(title='My test application'),
    dashboardSidebar(
        sidebarMenu(
            menuItem("Theory", tabName = "theory", icon = icon("book"))
        )
    ),
    dashboardBody(

        tabItems(

            tabItem(tabName="theory",
                    includeMarkdown("Theory.Rmd")
                    #includeMarkdown("Theory.md")
                    #includeHTML("Theory.html")
            )
        )    
    )
)

server <- function(input, output){

}

shinyApp(ui = ui, server = server)

我的 Theory.Rmd 文件:

---
title: "Theory"
output: 
  html_document:
    mathjax: "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"
---
Here is an equation:

$$Q = a(h − c)^b$$ 

请注意,为了运行应用程序,Theory.Rmd 和 app.R 必须保存在同一目录(例如工作目录)中,并且必须具有这些确切的名称。要获取 Rmd 文件的 markdown Theory.md 文件,只需执行以下操作:

library(knitr)
knit("Theory.Rmd","Theory.md")

要获取Theory.html文件,只需按 Theory.Rmd 文件中的 Knit to HTML 按钮

在我的浏览器或 RStudio 窗口中运行我的应用程序时,includeMarkdown("Theory.Rmd")或者includeMarkdown("Theory.md"),不渲染方程式,但它默认在理论菜单项中启动,如下所示: 在此处输入图像描述 但是使用includeHTML("Theory.html")方程式渲染正确,但屏幕显示缩短,默认情况下它会不在任何菜单项中开始,如下所示:在此处输入图像描述

但是当点击理论时,我得到正确渲染的方程: 在此处输入图像描述

有没有办法来解决这个问题?非常感谢!

4

2 回答 2

7

也可以 wrap includeMarkdown()in withMathJax(),因此您无需更改.md-file:

withMathJax(includeMarkdown("Theory.md"))
于 2017-01-03T11:00:27.363 回答
0

对于感兴趣的人,这已经解决了。从 Rmd 文件编织的 Markdown 文件中的标头阻止它在 Shiny 应用程序中呈现。之前,从问题中显示的 Theory.Rmd 编​​织的 Theory.md 文件如下所示:

knit("Theory.Rmd","Theory.md")

Theory.md 之前

---
output: 
 html_document:
 mathjax: "//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"
---
Here is an equation:

$$Q = a(h − c)^b$$ 

我手动更改了markdown文件,删除了标题并将引用添加到mathjax:

Theory.md 后

<script type="text/javascript"
  src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
Here is an equation:

$$Q = a(h − c)^b$$ 

当像这样在服务器中包含 Markdown 时,这会在 Shiny 中呈现:

includeMarkdown("Theory.md")
于 2015-08-27T15:45:01.103 回答