我想在我闪亮的仪表板应用程序中显示带有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)
我的理论.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")
方程式可以正确渲染,但屏幕显示会缩短,默认情况下它不会在任何菜单项中启动,如下所示:
有没有办法解决这个问题?非常感谢!
答案 0 :(得分:5)
也可以includeMarkdown()
包裹withMathJax()
,因此您无需更改.md
- 文件:
withMathJax(includeMarkdown("Theory.md"))
答案 1 :(得分: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")