电子应用中的Mathjax

时间:2018-10-06 23:44:32

标签: npm electron mathjax tex

我想在应用启动时加载一次Mathjax,之后它应该表现得像网站上的脚本标签,并将任何MathML,TeX或ASCIImath“文本”“翻译”成人类可读的内容

我尝试了mathjax-electronmathjax-node,但根本无法正常工作。有人可以举例说明如何实现它吗?

我将readme.md示例用于mathjax-electron:

var mathjaxHelper = require('mathjax-electron')

var container = document.createElement('div')
container.innerHTML = '$$\\sum\\limits_{i=0}^{\\infty} \\frac{1}{n^2}$$'

mathjaxHelper.loadAndTypeset(document, container)

,但导致抛出undefined个错误。我也尝试实现mathjax-node提供的示例,但是我根本无法使它正常工作。

1 个答案:

答案 0 :(得分:1)

  

我尝试了mathjax-electron和mathjax-node,但是我根本无法使用。有人可以举例说明如何实现它吗?

好的。使用mathjax-electron:

mkdir mathjax-test
cd mathjax-test
npm init -y
npm i -s electron mathjax-electron

然后创建两个文件:index.jsindex.html

index.js (从此处借用-Electron hello world

const electron = require('electron')
const app = electron.app
const BrowserWindow = electron.BrowserWindow

let mainWindow

function createWindow () {
  mainWindow = new BrowserWindow({width: 800, height: 600})
  mainWindow.loadURL(`file://${__dirname}/index.html`)
  mainWindow.webContents.openDevTools()

  mainWindow.on('closed', function () {
    mainWindow = null
  })
}

app.on('ready', createWindow)

app.on('window-all-closed', function () {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('activate', function () {
  if (mainWindow === null) {
    createWindow()
  }
})

index.html (使用the first example from their homepage

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Mathjax</title>
    <script src="./node_modules/mathjax-electron/resources/MathJax/MathJax.js?config=electron"></script>
  </head>
  <body>
    <h1>MathJax</h1>

    <script>
      var mathjaxHelper = require('mathjax-electron')
      var container = document.createElement('div')
      container.innerHTML = '$$\\sum\\limits_{i=0}^{\\infty} \\frac{1}{n^2}$$'
      mathjaxHelper.typesetMath(container)
      document.querySelector('body').append(container)
    </script>
  </body>
</html>

然后从项目的根目录开始:

./node_modules/electron/dist/electron .

结果:

MathJax Electron showing an equation

HTH。