使用 MathJax 的语音规则引擎对 LaTeX 中的多字母标识符进行编码,以便正确输出语音

使用 MathJax 的语音规则引擎对 LaTeX 中的多字母标识符进行编码,以便正确输出语音

我需要对数学表达式中的多字母标识符(单词或单位)进行编码。我还需要对表达式进行编码,以便 MathJax 的语音规则引擎 (SRE) 为公式生成正确的语音文本,这样屏幕阅读软件就可以正确地朗读表达式(内容位于高等教育课程的 Canvas LMS 页面中,需要可访问)。

众所周知,在 LaTeX 中,用美元符号 $...$ 或 [...] 括起来的文本会被解释为数学符号,默认情况下,它会以斜体排版,遵循数学公式中变量的通用样式。LaTeX 将单个字符视为单独的数学实体(或变量)。例如,$abc$ 将被解释为变量 a、b 和 c 相乘。

有人告诉我,当您想要在数学公式中使用多字母标识符、单词或单位时,应使用直立字体排版以避免混淆,并使用 \mathrm{...} 命令来执行此操作。例如,\mathrm{abc} 将“abc”视为单个实体并以直立字体呈现。

所以,如果我想要速度等于距离除以时间,我会写:

\[\mathrm{velocity} = \frac{\mathrm{distance}}{\mathrm{time}}\]

但是,MathJax 3.2.2 使用其默认的 MathSpeak Verbose 设置生成的语音文本如下:

v e l o c i t y equals StartFraction d i s t a n c e Over t i m e EndFraction

请注意“标识符”一词仍然以单个字母分隔。MathJax 的语音规则引擎不会将 \mathrm 内容解释为单个标识符。

预期输出为:

velocity equals StartFraction distance Over time EndFraction

有没有更正确的方法将单词编码为单个标识符?或者,MathJax 无法正确解释它,这是 MathJax SRE 中的一个错误?

相关内容