您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Ctrl-m compiles LaTeX code with inline math delimiters $ ... $ and [; ... ;], and display math delimiters $$ ... $$ and [(; ... ;)]. Ctrl-, decompiles.
// ==UserScript== // @name MathJax compiler and decompiler // @namespace // @author Marcelo Silvarolla // @version 0.2 // @description Ctrl-m compiles LaTeX code with inline math delimiters $ ... $ and [; ... ;], and display math delimiters $$ ... $$ and [(; ... ;)]. Ctrl-, decompiles. // @match *://*/* // @copyright // @namespace https://greasyfork.org/users/196485 // ==/UserScript== function removeTypeset() { var HTML = MathJax.HTML, jax = MathJax.Hub.getAllJax(); for (var i = 0, m = jax.length; i < m; i++) { var script = jax[i].SourceElement(), tex = jax[i].originalText; if (script.type.match(/display/)) { tex = "$$" + tex + "$$"; } else { tex = "$" + tex + "$"; } jax[i].Remove(); var preview = script.previousSibling; if (preview && preview.className === "MathJax_Preview") { preview.parentNode.removeChild(preview); } preview = HTML.Element("span", { className: "MathJax_Preview" }, [tex]); script.parentNode.insertBefore(preview, script); } } function showTypeset(e) { // ctrl-m if (e.ctrlKey && e.keyCode == 77) { var script = document.createElement("script"); script.type = "text/javascript"; script.src = "//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"; var config = "MathJax.Hub.Config({ " + 'extensions: ["tex2jax.js"], ' + 'tex2jax: { skipTags: ["script","noscript","style","textarea"],inlineMath: [ ["$", "$"], ["[;", ";]"] ], displayMath: [ ["$$", "$$"], ["[(;",";)]"]], processEscapes: true }, ' + 'jax: ["input/TeX", "output/HTML-CSS"] ' + " }); " + "MathJax.Hub.Startup.onload(); "; if (window.opera) { script.innerHTML = config; } else { script.text = config; } document.getElementsByTagName("head")[0].appendChild(script); MathJax.Hub.Queue(["Typeset", MathJax.Hub]); $(".MathJax") .parent() .css("border", "none") .css("background", "none"); } // ctrl-, if (e.ctrlKey && e.keyCode == 188) { removeTypeset(); } } window.addEventListener("keyup", showTypeset);