Как настроить упаковку математических формул с помощью KaTex? - PullRequest
0 голосов
/ 06 января 2019

Я создаю виджет, который показывает математическую формулу с использованием WebView и библиотеки KaTeX. Невозможно автоматически перенести формулы, размер которых больше ширины экрана.

Мой код Java в Android Studio:

WebView webView = new WebView(SpaceActivity.this);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
webView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
webView.setPadding(2, valueViewer.getTextPadding(), 2, valueViewer.getTextPadding());
String html = "<!DOCTYPE html>\n" +
        "<html>\n" +
        "    <head>\n" +
        "        <meta charset=\"UTF-8\">\n" +
        "        <title>Auto-render test</title>\n" +
        "        <link rel=\"stylesheet\" type=\"text/css\" href=\"file:///android_asset/katex/katex.min.css\">\n" +
        "        <link rel=\"stylesheet\" type=\"text/css\" href=\"file:///android_asset/themes/style.css\">\n" +
        "        <script type=\"text/javascript\" src=\"file:///android_asset/katex/katex.min.js\"></script>\n" +
        "        <script type=\"text/javascript\" src=\"file:///android_asset/katex/contrib/auto-render.min.js\"></script>\n" +
        "    </head>\n" +
        "    <body>\n" +
        "        " + expression + //variable, containing formula in TeX format
        "        <script>\n" +
        "          renderMathInElement(\n" +
        "              document.body\n" +
        "          );\n" +
        "        </script>\n" +
        "    </body>\n" +
        "</html>";
webView.getSettings().setSupportZoom(true);
webView.loadDataWithBaseURL("file:///android_asset/", html, "text/html", "utf-8", null);

В папке активов находится библиотека KaTeX v0.10.0.

Ранее использовался MathJax, но он медленнее, более того, при добавлении формулы в виджет он мигает и портится, что ухудшает производительность.

Здесь Я нашел JavaScript-решение, но не понимаю, где использовать в коде:

Как настроить автоматическое перенос формул?

...