【问题标题】:Display LaTeX equations in a shiny dashboard app in R在 R 中闪亮的仪表板应用程序中显示 LaTeX 方程
【发布时间】:2015-11-13 02:03:11
【问题描述】:

我想在我闪亮的仪表板应用程序中显示一个带有 LaTeX 方程的 Rmd 文件。我在使用includeMarkdown()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"),方程会正确渲染,但屏幕显示会缩短,默认情况下它不会在任何菜单项中启动,如下所示:

但是当点击理论时,我得到正确渲染的方程:

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

【问题讨论】:

  • 你的应用程序没有运行给我,你确定这个例子是可重现的吗?或者也许我错过了什么。
  • Theory.Rmd 和 app.R 必须保存在同一目录中(例如工作目录),并且必须具有这些确切的名称才能运行应用程序。我很确定这是可重现的。感谢您的宝贵时间。
  • 此外,要运行应用程序,如问题中所述,您需要将 Rmd 文件编织为 html 一次以获取 Theory.html。原因是 includeHTML('Theory.html') 是没有被注释掉的那个。我将编辑我的问题并评论 includeHTML('Theory.html') 并包含 includeMarkdown('Theory.Rmd'),因此只能通过添加 app.R 和 Theory.Rmd 文件来运行。
  • 未来注意事项:cdn.mathjax.org 即将结束生命周期,请查看mathjax.org/cdn-shutting-down 了解迁移提示。

标签: r shiny r-markdown shinydashboard


【解决方案1】:

也可以将includeMarkdown() 包裹在withMathJax() 中,因此您无需更改您的.md 文件:

withMathJax(includeMarkdown("Theory.md"))

【讨论】:

    【解决方案2】:

    对于感兴趣的人,这个问题已经解决了。从 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")
    

    【讨论】:

    猜你喜欢
    • 2020-08-29
    • 2018-08-31
    • 2019-07-19
    • 1970-01-01
    • 2016-03-14
    • 2018-07-07
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多