当前位置: 首页 > 知识库问答 >
问题:

定义新宏以添加“title”属性

於意蕴
2023-03-14

我在我的网站上使用MathJax,我想添加一些语义支持。

目前,我的MathJax配置是接收TeX输入并输出HTML-CSS输出(不幸的是,MathML在Chrome中工作不太好)。我还有一个jQuery函数,它接受任何的html。latex类并将其转储到title属性中。

下面的HTML。。。

<div class="latex">\[ a^2 + b^2 = c^2 \]</div>

用下面的脚本。。。

/* jQuery */
$('.latex').attr('title', function() {
    return $(this).html();
})

将输出。。。

<div class="latex" title="\[ a^2 + b^2 = c^2 \]">
    <div class="MathJax_Display">a2+b2=c2</div> <!-- becomes prettyprint in browser -->
</div>

显然,div.MathJax_Display的内容将使用一系列跨度、类和样式进行样式化。我只是不打算在这里打这些。无论如何,在呈现数学之后,用户可以将鼠标悬停在div.latex上,在工具提示中查看TeX命令。

现在,我想做的是在我的MJ配置中定义一个新的宏,它将在新创建的HTML-CSS输出范围中添加一个title属性,给定一点TeX输入。让我们称之为宏\title[2]。以下是我希望能够输入的内容:

<div class="latex">\[ a^2 + b^2 = \title{c}{'hypotenuse'}^2 \]</div>

以下是我希望它输出的内容:

<div class="latex" title="\[ a^2 + b^2 = \title{c}{'hypotenuse'}^2 \]">
    <div class="MathJax_Display">a2+b2=<span title="hypotenuse">c</span>2</div> <!-- prettyprint -->
</div>

如果发生这种情况,将鼠标悬停在数学中的c上的用户将获得一个写着"斜边"的工具提示,但将鼠标悬停在数学的任何其他区域上并获得原始输入。

以下是我对算法的想法:

//pseudo-code: 
given the TeX input '\title{mathstr}{titlestr}':
  var thespan = document.createElement('span');
  $(thespan).attr('title', titlestr).html(mathstr);
  somehow put this into the MJ output at the right place

共有1个答案

拓拔俊德
2023-03-14

为什么不直接使用定义\texttip\mathtip操作扩展来将工具提示附加到子表达式?有关详细信息,请参阅MathJax文档。

 类似资料:
  • 在宏定义中如何添加__FUNCTION__? 代码如下: 尝试将__FUNCTION__改为字符串就不会报错。

  • 我需要添加自定义数据属性来选择选项。我需要它,因为在更改时,我希望基于选定的属性(而不是值)触发操作 这是我正在使用的代码 例如,当我为数据属性提供静态值时,它可以工作,以下工作没有问题(请注意,data-isocode具有静态值) 然而,当我尝试在数据等码中使用变量时 它向我抛出以下错误 如何使用Angular传递数据属性(如jQuery),并使用FormBuilder获取值?

  • 问题内容: 是否可以向HTML标记添加自定义属性,如下所示? 问题答案: 您可以修改!DOCTYPE声明(即DTD)以允许它,以便[XML]文档仍然有效: 表示它是可选属性,或者您可以使用,等等。

  • 1. 预置事件 预置事件是百度统计的基础代码能够获取到的基础事件,如页面浏览、元素点击等。系统为预置事件页面浏览、元素点击、session默认关联了预置属性。 这个功能支持您给页面浏览、元素点击、session添加自定义属性。 适用场景: 标识访问状态:是否为登录用户、是否为试用用户 标识访问来源:查看不同来源媒体的用户行为 标识页面分组:按网页作者分组、按页面标题分组、按网页内容分组 该功能替换

  • 2. 宏定义 较大的项目都会用大量的宏定义来组织代码,你可以看看/usr/include下面的头文件中用了多少个宏定义。看起来宏展开就是做个替换而已,其实里面有比较复杂的规则,C语言有很多复杂但不常用的语法规则本书并不涉及,但有关宏展开的语法规则本节却力图做全面讲解,因为它很重要也很常用。 2.1. 函数式宏定义 以前我们用过的#define N 20或#define STR "hello, wo

  • 设置或返回使用 FileDialog 对象显示的文件对话框的标题。String 类型,可读写。 expression.Title expression 必需。该表达式返回“应用于”列表中的对象之一。 示例 本示例使用 FileDialog 对象显示“文件选取器”对话框,并在消息框中显示每个选定的文件。 Sub main() 'Declare a variable as a FileDia