我想在应用启动时加载一次Mathjax,之后它应该表现得像网站上的脚本标签,并将任何MathML,TeX或ASCIImath“文本”“翻译”成人类可读的内容
我尝试了mathjax-electron和mathjax-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提供的示例,但是我根本无法使它正常工作。
答案 0 :(得分:1)
我尝试了mathjax-electron和mathjax-node,但是我根本无法使用。有人可以举例说明如何实现它吗?
好的。使用mathjax-electron:
mkdir mathjax-test
cd mathjax-test
npm init -y
npm i -s electron mathjax-electron
然后创建两个文件:index.js
和index.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 .
结果:
HTH。