Заставить MathJax завернуться в Shiny div - PullRequest
0 голосов
/ 28 мая 2019

У меня длинное выражение MathJax, которое мне нужно распечатать в приложении Shiny.Поскольку выражение очень длинное, оно должно переноситься через строки.Однако в настоящее время он отказывается это сделать.

Я сильно подозреваю, что это связано с тем, что уравнение отображается не в виде обычного текста (т. Е. Не в виде строки, а в виде последовательности интервалов), что исключает обычные способысделать перенос содержимого div.

Я знаю, что MathJax поддерживает перенос строк (здесь) .Я также могу получить уравнения пользовательского интерфейса для переноса с помощью KaTeX (см. Второй блок кода ниже), но предпочел бы сохранить все в MathJax, с учетом сложности всего приложения.

Что я пробовал:

  • Через CSS, варианты следующего для класса "MathJax" (.MathJax)

    • word-break: break-all;
    • перенос слов: разрывное слово;
    • дисплей: гибкий;
    • flex-wrap: wrap;
  • Установка white-space: nowrap; в white-space: normal; для .MathJax (что не должно иметь никакого значения, я понимаю,)

  • Помещение уравнения в div-обертку, а затем попытка установить свойства CSS этого div-обертки, как в двух пулях выше (плюс вариант, в котором я также жестко закодировал ширину div)
  • Объявление следующей строки в качестве функции пользовательского интерфейса:
tags$script(type="text/x-mathjax-config", "
    MathJax.Hub.Config({
        \"HTML-CSS\": { linebreaks: { automatic: true;} },
    });
"),
  • Другой вариант выше:
tags$script(type="text/x-mathjax-config", "
    MathJax.Hub.Config({
        \"HTML-CSS\": { linebreaks: { automatic: true;} },
        tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}
    });
"),
  • Вышеупомянутый блок <script>, плюс смещение выражения MathJax в пользовательском интерфейсе в строку путем замены (\\ и )// на $$ s.

Возможно, есть несколько различныхпроблемы все сталкиваются друг с другом одновременно.Мысли о том, что это могут быть за проблемы?


A MWE (без вывода выходных данных MathJax)не напечатанный на сервере уравнение. Также предпочел бы делать все с MathJax.)

# Define the UI
ui <- bootstrapPage(

    tags$head(
    tags$link(rel="stylesheet", 
              href="https://cdn.jsdelivr.net/npm/katex@0.10.1/dist/katex.min.css", 
              integrity="sha384-dbVIfZGuN1Yq7/1Ocstc1lUEm+AT+/rCkibIcC/OmWo5f0EA48Vf8CytHzGrSwbQ",
              crossorigin="anonymous"),
    HTML('<script defer src="https://cdn.jsdelivr.net/npm/katex@0.10.1/dist/katex.min.js" integrity="sha384-2BKqo+exmr9su6dir+qCw08N2ZKRucY4PrGQPPWU1A7FtlCGjmEGFqXCv5nyM5Ij" crossorigin="anonymous"></script>'),
    HTML('<script defer src="https://cdn.jsdelivr.net/npm/katex@0.10.1/dist/contrib/auto-render.min.js" integrity="sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI" crossorigin="anonymous"></script>'),
    HTML('
    <script>
      document.addEventListener("DOMContentLoaded", function(){
        renderMathInElement(document.body, {
          delimiters: [{left: "$", right: "$", display: false}]
        });
      })
    </script>')
    ), 
    h2("UI"),
    withMathJax(),  

    # something arbitrary and long
    p(" $ f\\left( \\alpha, \\beta_1 | x_i\\right) =  \\left(3.5-0.75*-1.414\\right)+ \\left(3.5-0.75*0.189\\right)+ \\left(3.5-0.75*0.026\\right)+ \\left(3.5-0.75*-0.779\\right)+ \\left(3.5-0.75*0.683\\right)+ \\left(3.5-0.75*-0.503\\right)+ \\left(3.5-0.75*-1.18\\right)+ \\left(3.5-0.75*-1.736\\right)+ \\left(3.5-0.75*-1.497\\right)+ \\left(3.5-0.75*-1.12\\right)+ \\left(3.5-0.75*1.263\\right)+ \\left(3.5-0.75*0.512\\right)+ \\left(3.5-0.75*-0.143\\right)+ \\left(3.5-0.75*-0.464\\right)+ \\left(3.5-0.75*-0.016\\right)+ \\left(3.5-0.75*-0.835\\right)+ \\left(3.5-0.75*0.611\\right)+ \\left(3.5-0.75*0\\right)+ \\left(3.5-0.75*-0.117\\right)+ \\left(3.5-0.75*-1.645\\right)+ \\left(3.5-0.75*-1.929\\right)+ \\left(3.5-0.75*-0.026\\right)+ \\left(3.5-0.75*-1.121\\right)+ \\left(3.5-0.75*0.61\\right)+ \\left(3.5-0.75*-0.619\\right)+ \\left(3.5-0.75*0.806\\right)+ \\left(3.5-0.75*-0.123\\right)+ \\left(3.5-0.75*-1.617\\right)+ \\left(3.5-0.75*-0.683\\right)+ \\left(3.5-0.75*0.431\\right)+ \\left(3.5-0.75*2.705\\right)+ \\left(3.5-0.75*0.726\\right)+ \\left(3.5-0.75*-0.483\\right)+ \\left(3.5-0.75*2.135\\right)+ \\left(3.5-0.75*-0.399\\right)+ \\left(3.5-0.75*-0.087\\right)+ \\left(3.5-0.75*-1.004\\right)+ \\left(3.5-0.75*0.18\\right)+ \\left(3.5-0.75*0.229\\right)+ \\left(3.5-0.75*0.671\\right)+ \\left(3.5-0.75*0.234\\right)+ \\left(3.5-0.75*0.874\\right)+ \\left(3.5-0.75*-0.275\\right)+ \\left(3.5-0.75*-0.812\\right)+ \\left(3.5-0.75*0.363\\right)+ \\left(3.5-0.75*-0.549\\right)+ \\left(3.5-0.75*0.32\\right)+ \\left(3.5-0.75*0.667\\right)+ \\left(3.5-0.75*0.44\\right)+ \\left(3.5-0.75*-0.492\\right)+ \\left(3.5-0.75*0.879\\right)+ \\left(3.5-0.75*3.122\\right)+ \\left(3.5-0.75*-0.82\\right)+ \\left(3.5-0.75*-0.65\\right)+ \\left(3.5-0.75*-0.4\\right)+ \\left(3.5-0.75*-0.144\\right)+ \\left(3.5-0.75*1.132\\right)+ \\left(3.5-0.75*0.505\\right)+ \\left(3.5-0.75*0.452\\right)+ \\left(3.5-0.75*0.615\\right)+ \\left(3.5-0.75*-0.94\\right)+ \\left(3.5-0.75*-2.144\\right)+ \\left(3.5-0.75*-1.2\\right)+ \\left(3.5-0.75*-2.893\\right)+ \\left(3.5-0.75*-0.19\\right)+ \\left(3.5-0.75*0.433\\right)+ \\left(3.5-0.75*2.023\\right)+ \\left(3.5-0.75*0.046\\right)+ \\left(3.5-0.75*0.602\\right)+ \\left(3.5-0.75*-0.862\\right)+ \\left(3.5-0.75*-0.687\\right)+ \\left(3.5-0.75*0.907\\right)+ \\left(3.5-0.75*-0.966\\right)+ \\left(3.5-0.75*-1.694\\right)+ \\left(3.5-0.75*1.28\\right)+ \\left(3.5-0.75*1.178\\right)+ \\left(3.5-0.75*-1.077\\right)+ \\left(3.5-0.75*-0.433\\right)+ \\left(3.5-0.75*-0.274\\right)+ \\left(3.5-0.75*-0.725\\right)+ \\left(3.5-0.75*0.735\\right)+ \\left(3.5-0.75*-0.067\\right)+ \\left(3.5-0.75*0.176\\right)+ \\left(3.5-0.75*1.653\\right)+ \\left(3.5-0.75*0.212\\right)+ \\left(3.5-0.75*2.976\\right)+ \\left(3.5-0.75*-0.523\\right)+ \\left(3.5-0.75*-1.426\\right)+ \\left(3.5-0.75*0.673\\right)+ \\left(3.5-0.75*-1.079\\right)+ \\left(3.5-0.75*0.99\\right)+ \\left(3.5-0.75*0.628\\right)+ \\left(3.5-0.75*0.188\\right)+ \\left(3.5-0.75*0.992\\right)+ \\left(3.5-0.75*0.467\\right)+ \\left(3.5-0.75*-0.251\\right)+ \\left(3.5-0.75*1.403\\right)+ \\left(3.5-0.75*0.667\\right)+ \\left(3.5-0.75*1.23\\right)+ \\left(3.5-0.75*1.342\\right)+ \\left(3.5-0.75*1.713\\right)+ \\left(3.5-0.75*0.182\\right)+ \\left(3.5-0.75*0.758\\right)+ \\left(3.5-0.75*0.035\\right)+ \\left(3.5-0.75*0.932\\right)+ \\left(3.5-0.75*0.702\\right)+ \\left(3.5-0.75*0.436\\right)+ \\left(3.5-0.75*-1.355\\right)+ \\left(3.5-0.75*-1.318\\right)+ \\left(3.5-0.75*-0.109\\right)+ \\left(3.5-0.75*0.437\\right)+ \\left(3.5-0.75*-0.842\\right)+ \\left(3.5-0.75*0.977\\right)+ \\left(3.5-0.75*-1.503\\right)+ \\left(3.5-0.75*-0.253\\right)+ \\left(3.5-0.75*-1.166\\right)+ \\left(3.5-0.75*-0.274\\right)+ \\left(3.5-0.75*-1.083\\right)+ \\left(3.5-0.75*0.086\\right)+ \\left(3.5-0.75*0.807\\right)+ \\left(3.5-0.75*-0.068\\right)+ \\left(3.5-0.75*0.682\\right)+ \\left(3.5-0.75*0.26\\right)+ \\left(3.5-0.75*1.225\\right)+ \\left(3.5-0.75*1.82\\right)+ \\left(3.5-0.75*-1.444\\right)+ \\left(3.5-0.75*-0.579\\right)+ \\left(3.5-0.75*-0.945\\right)+ \\left(3.5-0.75*-0.743\\right)+ \\left(3.5-0.75*-0.423\\right)+ \\left(3.5-0.75*-0.086\\right)+ \\left(3.5-0.75*-0.105\\right)+ \\left(3.5-0.75*0.385\\right)+ \\left(3.5-0.75*0.733\\right)+ \\left(3.5-0.75*-1.131\\right)+ \\left(3.5-0.75*3.334\\right)+ \\left(3.5-0.75*-0.254\\right)+ \\left(3.5-0.75*0.304\\right)+ \\left(3.5-0.75*1.234\\right)+ \\left(3.5-0.75*1.144\\right)+ \\left(3.5-0.75*0.558\\right)+ \\left(3.5-0.75*-0.675\\right)+ \\left(3.5-0.75*-1.729\\right)+ \\left(3.5-0.75*-1.504\\right)+ \\left(3.5-0.75*-1.951\\right)+ \\left(3.5-0.75*0.203\\right)+ \\left(3.5-0.75*-0.154\\right)+ \\left(3.5-0.75*-0.545\\right)+ \\left(3.5-0.75*-0.913\\right)+ \\left(3.5-0.75*-1.11\\right)$  "
    ),

    h2("Server"),
    uiOutput("eqSrv")
)


# Define the server code
server <- function(input, output) {
    output$eqSrv<- renderUI({
        # something arbitrary and long
        withMathJax(
            "$$ f\\left( \\alpha, \\beta_1 | x_i\\right) =  \\left(3.5-0.75*-1.414\\right)+ \\left(3.5-0.75*0.189\\right)+ \\left(3.5-0.75*0.026\\right)+ \\left(3.5-0.75*-0.779\\right)+ \\left(3.5-0.75*0.683\\right)+ \\left(3.5-0.75*-0.503\\right)+ \\left(3.5-0.75*-1.18\\right)+ \\left(3.5-0.75*-1.736\\right)+ \\left(3.5-0.75*-1.497\\right)+ \\left(3.5-0.75*-1.12\\right)+ \\left(3.5-0.75*1.263\\right)+ \\left(3.5-0.75*0.512\\right)+ \\left(3.5-0.75*-0.143\\right)+ \\left(3.5-0.75*-0.464\\right)+ \\left(3.5-0.75*-0.016\\right)+ \\left(3.5-0.75*-0.835\\right)+ \\left(3.5-0.75*0.611\\right)+ \\left(3.5-0.75*0\\right)+ \\left(3.5-0.75*-0.117\\right)+ \\left(3.5-0.75*-1.645\\right)+ \\left(3.5-0.75*-1.929\\right)+ \\left(3.5-0.75*-0.026\\right)+ \\left(3.5-0.75*-1.121\\right)+ \\left(3.5-0.75*0.61\\right)+ \\left(3.5-0.75*-0.619\\right)+ \\left(3.5-0.75*0.806\\right)+ \\left(3.5-0.75*-0.123\\right)+ \\left(3.5-0.75*-1.617\\right)+ \\left(3.5-0.75*-0.683\\right)+ \\left(3.5-0.75*0.431\\right)+ \\left(3.5-0.75*2.705\\right)+ \\left(3.5-0.75*0.726\\right)+ \\left(3.5-0.75*-0.483\\right)+ \\left(3.5-0.75*2.135\\right)+ \\left(3.5-0.75*-0.399\\right)+ \\left(3.5-0.75*-0.087\\right)+ \\left(3.5-0.75*-1.004\\right)+ \\left(3.5-0.75*0.18\\right)+ \\left(3.5-0.75*0.229\\right)+ \\left(3.5-0.75*0.671\\right)+ \\left(3.5-0.75*0.234\\right)+ \\left(3.5-0.75*0.874\\right)+ \\left(3.5-0.75*-0.275\\right)+ \\left(3.5-0.75*-0.812\\right)+ \\left(3.5-0.75*0.363\\right)+ \\left(3.5-0.75*-0.549\\right)+ \\left(3.5-0.75*0.32\\right)+ \\left(3.5-0.75*0.667\\right)+ \\left(3.5-0.75*0.44\\right)+ \\left(3.5-0.75*-0.492\\right)+ \\left(3.5-0.75*0.879\\right)+ \\left(3.5-0.75*3.122\\right)+ \\left(3.5-0.75*-0.82\\right)+ \\left(3.5-0.75*-0.65\\right)+ \\left(3.5-0.75*-0.4\\right)+ \\left(3.5-0.75*-0.144\\right)+ \\left(3.5-0.75*1.132\\right)+ \\left(3.5-0.75*0.505\\right)+ \\left(3.5-0.75*0.452\\right)+ \\left(3.5-0.75*0.615\\right)+ \\left(3.5-0.75*-0.94\\right)+ \\left(3.5-0.75*-2.144\\right)+ \\left(3.5-0.75*-1.2\\right)+ \\left(3.5-0.75*-2.893\\right)+ \\left(3.5-0.75*-0.19\\right)+ \\left(3.5-0.75*0.433\\right)+ \\left(3.5-0.75*2.023\\right)+ \\left(3.5-0.75*0.046\\right)+ \\left(3.5-0.75*0.602\\right)+ \\left(3.5-0.75*-0.862\\right)+ \\left(3.5-0.75*-0.687\\right)+ \\left(3.5-0.75*0.907\\right)+ \\left(3.5-0.75*-0.966\\right)+ \\left(3.5-0.75*-1.694\\right)+ \\left(3.5-0.75*1.28\\right)+ \\left(3.5-0.75*1.178\\right)+ \\left(3.5-0.75*-1.077\\right)+ \\left(3.5-0.75*-0.433\\right)+ \\left(3.5-0.75*-0.274\\right)+ \\left(3.5-0.75*-0.725\\right)+ \\left(3.5-0.75*0.735\\right)+ \\left(3.5-0.75*-0.067\\right)+ \\left(3.5-0.75*0.176\\right)+ \\left(3.5-0.75*1.653\\right)+ \\left(3.5-0.75*0.212\\right)+ \\left(3.5-0.75*2.976\\right)+ \\left(3.5-0.75*-0.523\\right)+ \\left(3.5-0.75*-1.426\\right)+ \\left(3.5-0.75*0.673\\right)+ \\left(3.5-0.75*-1.079\\right)+ \\left(3.5-0.75*0.99\\right)+ \\left(3.5-0.75*0.628\\right)+ \\left(3.5-0.75*0.188\\right)+ \\left(3.5-0.75*0.992\\right)+ \\left(3.5-0.75*0.467\\right)+ \\left(3.5-0.75*-0.251\\right)+ \\left(3.5-0.75*1.403\\right)+ \\left(3.5-0.75*0.667\\right)+ \\left(3.5-0.75*1.23\\right)+ \\left(3.5-0.75*1.342\\right)+ \\left(3.5-0.75*1.713\\right)+ \\left(3.5-0.75*0.182\\right)+ \\left(3.5-0.75*0.758\\right)+ \\left(3.5-0.75*0.035\\right)+ \\left(3.5-0.75*0.932\\right)+ \\left(3.5-0.75*0.702\\right)+ \\left(3.5-0.75*0.436\\right)+ \\left(3.5-0.75*-1.355\\right)+ \\left(3.5-0.75*-1.318\\right)+ \\left(3.5-0.75*-0.109\\right)+ \\left(3.5-0.75*0.437\\right)+ \\left(3.5-0.75*-0.842\\right)+ \\left(3.5-0.75*0.977\\right)+ \\left(3.5-0.75*-1.503\\right)+ \\left(3.5-0.75*-0.253\\right)+ \\left(3.5-0.75*-1.166\\right)+ \\left(3.5-0.75*-0.274\\right)+ \\left(3.5-0.75*-1.083\\right)+ \\left(3.5-0.75*0.086\\right)+ \\left(3.5-0.75*0.807\\right)+ \\left(3.5-0.75*-0.068\\right)+ \\left(3.5-0.75*0.682\\right)+ \\left(3.5-0.75*0.26\\right)+ \\left(3.5-0.75*1.225\\right)+ \\left(3.5-0.75*1.82\\right)+ \\left(3.5-0.75*-1.444\\right)+ \\left(3.5-0.75*-0.579\\right)+ \\left(3.5-0.75*-0.945\\right)+ \\left(3.5-0.75*-0.743\\right)+ \\left(3.5-0.75*-0.423\\right)+ \\left(3.5-0.75*-0.086\\right)+ \\left(3.5-0.75*-0.105\\right)+ \\left(3.5-0.75*0.385\\right)+ \\left(3.5-0.75*0.733\\right)+ \\left(3.5-0.75*-1.131\\right)+ \\left(3.5-0.75*3.334\\right)+ \\left(3.5-0.75*-0.254\\right)+ \\left(3.5-0.75*0.304\\right)+ \\left(3.5-0.75*1.234\\right)+ \\left(3.5-0.75*1.144\\right)+ \\left(3.5-0.75*0.558\\right)+ \\left(3.5-0.75*-0.675\\right)+ \\left(3.5-0.75*-1.729\\right)+ \\left(3.5-0.75*-1.504\\right)+ \\left(3.5-0.75*-1.951\\right)+ \\left(3.5-0.75*0.203\\right)+ \\left(3.5-0.75*-0.154\\right)+ \\left(3.5-0.75*-0.545\\right)+ \\left(3.5-0.75*-0.913\\right)+ \\left(3.5-0.75*-1.11\\right) $$"
        )

    })
}

# Return a Shiny app object
shinyApp(ui = ui, server = server)

1 Ответ

1 голос
/ 29 мая 2019

Конфигурация MathJax работает, если вы введете ее в tags$head:

  tags$head(tags$script(type = "text/x-mathjax-config", 
                        'MathJax.Hub.Config({
  "HTML-CSS": { linebreaks: { automatic: true } },
         SVG: { linebreaks: { automatic: true } }
});')),
...