// ==UserScript== // @name OpenAI-ChatGPT LaTeX Auto Render (with MathJax V2) // @namespace http://tampermonkey.net/ // @version 0.2.1 // @description Add auto LaTeX math render on OpenAI ChatGPT page. // @author Scruel // @match https://chat.openai.com/chat // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; var renderDelay = 1000; function addScript(url) { const scriptElement = document.createElement('script'); scriptElement.src = url; scriptElement.type = 'text/javascript'; scriptElement.async = true; const headElement = document.getElementsByTagName('head')[0] || document.documentElement; headElement.insertBefore(scriptElement , headElement.firstChild); waitLoaded(); } function waitLoaded() { if (!MathJax.hasOwnProperty('Hub')) { // console.log("Loading...") window.setTimeout(waitLoaded, 200); } else { renderLatex(); } } function renderTrigger() { setTimeout(renderLatex, renderDelay); } function renderLatex() { const submitButton = document.querySelector('main form textarea+button'); // console.log(submitButton) if (submitButton && !submitButton.disabled) { // console.log("Rendering...") MathJax.Hub.Queue(["Typeset", MathJax.Hub]); } renderTrigger(); } window.MathJax = { tex2jax: { inlineMath: [['$', '$']], displayMath : [['$$', '$$']] }, CommonHTML: { linebreaks: { automatic: true } }, "HTML-CSS": { linebreaks: { automatic: true } }, SVG: { linebreaks: { automatic: true } } }; addScript('https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS_CHTML') })();