您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Click on any equation in ar5iv to copy the tex code to clipboard
// ==UserScript== // @name ar5iv tex copy // @namespace http://tampermonkey.net/ // @version 2023-12-25 // @description Click on any equation in ar5iv to copy the tex code to clipboard // @author joelsleeba // @match https://ar5iv.labs.arxiv.org/* // @icon https://www.google.com/s2/favicons?sz=64&domain=arxiv.org // @license GNU AGPLv3 // ==/UserScript== (function() { 'use strict'; function handleBlockEquationClick(event) { event.stopPropagation(); const equation = event.target.closest(".ltx_equation") if (equation) { const mathElements = equation.querySelectorAll("math"); const altTexts = Array.from(mathElements).map(element => { const altText = element.getAttribute("alttext"); return altText.replace(/\\displaystyle/g, ""); // Remove '\displaystyle' }); const joinedAltText = altTexts.join(" "); console.log(joinedAltText); // Do something with the joined alt text here, e.g., display it in an alert: navigator.clipboard.writeText(joinedAltText) .then(() => { // Copying succeeded console.log("Alt text copied to clipboard"); }) .catch(err => { // Copying failed, handle the error console.error("Failed to copy alt text:", err); }); } else { console.log("Clicked element is not within an .ltx_equation"); } } function handleInlineEquationClick(event) { event.stopPropagation(); const equation = event.target.closest("math") if (equation) { const altText = equation.getAttribute("alttext"); console.log(altText); // Do something with the joined alt text here, e.g., display it in an alert: navigator.clipboard.writeText(altText) .then(() => { // Copying succeeded console.log("Alt text copied to clipboard"); }) .catch(err => { // Copying failed, handle the error console.error("Failed to copy alt text:", err); }); } else { console.log("Clicked element is not within an .ltx_equation"); } } // Attach the event listener to all descendants of .ltx_equationgroup document.querySelectorAll(".ltx_equation *").forEach(element => { element.addEventListener("click", handleBlockEquationClick); }); // // Attach the event listener to all descendants of .ltx_Math which are not themselves descendants of .ltx_equation document.querySelectorAll(".ltx_Math[display='inline']:not(.ltx_equationgroup *) *").forEach(element => { element.addEventListener("click", handleInlineEquationClick); }); })();