问题描述
我使用 Mathjax 在 HTML 中显示方程。这是我的代码:
<!DOCTYPE html>
<html>
<head>
<title>Math in HTML</title>
<Meta charset="utf-8">
<script>
MathJax = {
tex: {
inlineMath: [['$','$'],['\\(','\\)']]
},svg: {
fontCache: 'global'
}
};
</script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</head>
<body>
<h1>Mathematic equations</h1>
<p>I cannot select this equation:
$$\intop_0^1f(x)dx=\pi$$
nor this one $x^2 + 3x - 2 = \zeta$.
</p>
</body>
</html>
问题是我无法选择方程。以前我在标题中使用它:
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [ ['$',["\\(","\\)"] ],processEscapes: true
}
});
</script>
产生“可选方程”但会引发弃用警告。 (我试图在这个工作示例中插入另一个片段,但 StackOverflow 抱怨代码太多。)
我不知道如何将方程转换为“可选择的”。
解决方法
MathJax 输出无法直接从版本 3 中的页面复制是正确的。版本 3 使用带有 content
属性的 CSS 以将字符插入页面,以及 content
文本无法在页面中选择。
一般来说,复制 MathJax 输出只在最简单的表达式中是可靠的(不涉及上标或下标、分数、根、数组、多字符弹性分隔符、重音符号等),所以这从来没有被支持MathJax 的功能。
另一方面,MathJax 可以直接插入字符而不是使用 content
CSS,并且可以通过扩展来实现。 Example code for doing that 可在 MathJax 用户论坛中找到。