有没有一种简单的方法可以将悬停文本添加到数学模式的所有事件中,其中悬停文本包含 LaTeX 代码?

有没有一种简单的方法可以将悬停文本添加到数学模式的所有事件中,其中悬停文本包含 LaTeX 代码?

cooltooltips.sty我最近了解到, 可以使用 将悬停文本(我相信技术术语是工具提示)添加到任何 LaTeX 文档的任何部分。

我想做一些更大规模的事情。我想编译我的文档,以便数学模式或数学显示模式的每个实例都自动将定义的 LaTeX 代码作为工具提示(悬停在其上的文本)。例如,我的 nicely 排版$\frac{a}{b}$也可以向用户显示相同的代码:“ \frac{a}{b}”。

理想情况下,我还希望它能够应用于数学模式环境,比如align

我之所以想这么做有两个原因:

  1. 让视障人士能够无障碍地学习数学正成为一个大问题。过去几年,一些大学因不遵守《美国残疾人法案》而被起诉,因为视障学生几乎没有或根本没有办法阅读数学——无论是 LaTeX、MathML、MS 公式编辑器还是其他什么。我不想等待 20 年才能等到可以准确将 pdf 上的数学内容口头表达出来的屏幕阅读器,而是想让屏幕阅读器将 LaTeX 代码口头表达出来,让视障学生解释该代码。只要我们不讨论嵌套分数之类的复杂内容,这是一种向视力受损的学生传达数学知识的有效方法。
  2. 对于教导其他人使用什么代码来排版某些内容而言,这将是一个很好的工具。

在 CTAN 上搜索后,似乎没有可以执行此操作的软件包。有人有什么想法吗?

答案1

fancytooltip包裹提供了比cooltooltips包裹。例如,包装文档显示常规(固定)工具提示文本以及鼠标悬停时的动画工具提示文本。

文档指出它仅限于(免费)Adobe Reader 或 Adob​​e Acrobat 套件。这个限制可能令人望而却步,但 Adob​​e 与 Web 浏览器的集成有助于其广泛使用。此外,由于工具提示可能很“花哨”,因此它们通常在与来源不同的文档中创建。

另一种方法是使用pdfcomment包裹提供类似功能之内align源文档。下面是一个简单的示例,说明如何在amsmath

在此处输入图片描述

\documentclass{article}
\usepackage{pdfcomment}% http://ctan.org/pkg/pdfcomment
\usepackage{amsmath}% http://ctan.org/pkg/amsmath
\usepackage{mathtools}% http://ctan.org/pkg/mathtools
\begin{document}
% \pdftooltip{<text>}{<tooltip>}
\begin{align*}
  \mathrlap{\pdftooltip[mathstyle=\displaystyle]{\phantom{\sum_{i=1}^n i=\frac{n}{2}(n+1)}}{sum\string_\{i=1\}\string^n i=tfrac\{n\}\{2\}(n+1)}}%
  \sum_{i=1}^n i &= \tfrac{n}{2}(n+1) \\
  \mathrlap{\pdftooltip[mathstyle=\displaystyle]{\phantom{E=mc^2}}{E=mc\textasciicircum 2}}%
  E &= mc^2
\end{align*}
\end{document}

由于内部结构不能在内部align分解,因此可以使用一些&\pdfcommentmathtools重叠魔法(通过\mathrlap)。


为了完整起见,这里详细说明了cooltooltips包裹,因为它可能对其他人有用。它提供了

\cooltooltip[<popup color>][<link color>]{<subject>}{<message>}{<url>}{<tooltip>}{<text>}

<link color>在 周围打印一个颜色框。此外,还会显示一个带有标题和文本的<text>颜色弹出窗口。将鼠标悬停在上面还会弹出工具提示,单击链接会将您带到。下面是一个非常简单的示例来说明这一点:<popup color><subject><message><text><tooltip><url>

在此处输入图片描述

\documentclass{article}
\usepackage{cooltooltips}% http://ctan.org/pkg/cooltooltips
\begin{document}
\section{Introduction}
Have you ever wondered what is \cooltooltip[0 0 1]{Einstein}{E=mc^2}%
{http://en.wikipedia.org/wiki/Albert_Einstein}{Einstein on the web}{$E=mc^2$}?
\end{document}

的实现cooltooltips相当有限且脆弱。例如,由于弹出窗口是通过悬停来激活/停用的,因此无法移动弹出窗口。此外,根据视图的分辨率,它实际上可能会妨碍查看。查看器可以通过<text>在文档中加入“切换按钮”(例如)来禁用弹出窗口,方法是使用

\cooltooltiptoggle{<text>}

按下可抑制文档中的所有弹出窗口。再次按下可重新启用弹出窗口。通过设置长度和使用命令,<text>可以控制实际文本中边框的显示。\fboxrule\fboxsep\setlength

答案2

这并不能直接回答您的问题,但它是您所列出的需要工具提示的原因之一的可访问性问题的可能(部分)解决方案。

我只是为每个文档提供了两个版本:我在文档上运行 pdflatex 以生成 pdf 版本,并使用 htlatex 生成带有 mathml 数学的 xhtml 版本。据我所知,屏幕阅读器应该能够处理 xhtml+mathml 版本。对于浏览器不支持 mathml 或系统上未安装适当数学字体的学生,我使用以下宏提供 pdf 文件的链接:

\newcommand{\pdflink}[1][Printable version of this document]{%
\ifpdf\relax\else\HCode{<a href="\jobname.pdf">#1</a>}\fi}

然后在文档顶部我放了\pdflink。当用 pdflatex 处理时,这将被忽略,但当用 htlatex 处理时,它将包含指向 pdf 版本的链接。

相关内容