R
Here I replicated the code from the official Shiny example linked above. The magic code is inserted into ui.R, just below withMathJax().
## ui.R
library(shiny) shinyUI(fluidPage( title = 'MathJax Examples with in-line equations', withMathJax(), # section below allows in-line LaTeX via $ in mathjax. Replace less-than-sign with < # and grater-than-sign with > tags$div(HTML("less-than-sign script type='text/x-mathjax-config' greater-than-sign MathJax.Hub.Config({ tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]} }); less-than-sign /script greater-than-sign ")), helpText('An irrational number $\\sqrt{2}$ and a fraction $1-\\frac{1}{2}$'), helpText('and a fact about $\\pi$:$\\frac2\\pi = \\frac{\\sqrt2}2 \\cdot \\frac{\\sqrt{2+\\sqrt2}}2 \\cdot \\frac{\\sqrt{2+\\sqrt{2+\\sqrt2}}}2 \\cdots$'), uiOutput('ex1'), uiOutput('ex2'), uiOutput('ex3'), uiOutput('ex4'), checkboxInput('ex5_visible', 'Show Example 5', FALSE), uiOutput('ex5') )) ## server.R library(shiny) shinyServer(function(input, output, session) { output$ex1 <- renderUI({ withMathJax(helpText('Dynamic output 1: $\\alpha^2$')) }) output$ex2 <- renderUI({ withMathJax( helpText('and output 2 $3^2+4^2=5^2$'), helpText('and output 3 $\\sin^2(\\theta)+\\cos^2(\\theta)=1$') ) }) output$ex3 <- renderUI({ withMathJax( helpText('The busy Cauchy distribution $\\frac{1}{\\pi\\gamma\\,\\left[1 + \\left(\\frac{x-x_0}{\\gamma}\\right)^2\\right]}\\!$')) }) output$ex4 <- renderUI({ invalidateLater(5000, session) x <- round(rcauchy(1), 3) withMathJax(sprintf("If $X$ is a Cauchy random variable, then $P(X \\leq %.03f ) = %.03f$", x, pcauchy(x))) }) output$ex5 <- renderUI({ if (!input$ex5_visible) return() withMathJax( helpText('You do not see me initially: $e^{i \\pi} + 1 = 0$') ) }) })Give it a try (or check out the Shiny app at https://r.amherst.edu/apps/nhorton/mathjax/)! One caveat is that the other means of in-line display, as shown in the official example, doesn't work when the MathJax HTML is inserted as above.
An unrelated note about aggregators: We love aggregators! Aggregators collect blogs that have similar coverage for the convenience of readers, and for blog authors they offer a way to reach new audiences. SAS and R is aggregated by R-bloggers, PROC-X, and statsblogs with our permission, and by at least 2 other aggregating services which have never contacted us. If you read this on an aggregator that does not credit the blogs it incorporates, please come visit us at SAS and R. We answer comments there and offer direct subscriptions if you like our content. In addition, no one is allowed to profit by this work under our license; if you see advertisements on this page, the aggregator is violating the terms by which we publish our work.
The text above didn't work for me. It looks like there is something missing in the
ReplyDeletetags$div(HTML("
"))
I was successful configuring MathJax correctly using
tags$script("
MathJax.Hub.Config({
tex2jax: {
inlineMath: [['$','$'], ['\\(','\\)']],
processEscapes: true
}
});"
)
Yes, that's not displaying correctly any longer! Thanks for bringing it to my attention!
ReplyDeleteIs there an easy way to switch between inline and displayed mathematics?
ReplyDelete