cooltooltips.sty
我最近了解到, 可以使用 将悬停文本(我相信技术术语是工具提示)添加到任何 LaTeX 文档的任何部分。
我想做一些更大规模的事情。我想编译我的文档,以便数学模式或数学显示模式的每个实例都自动将定义的 LaTeX 代码作为工具提示(悬停在其上的文本)。例如,我的 nicely 排版$\frac{a}{b}$
也可以向用户显示相同的代码:“ \frac{a}{b}
”。
理想情况下,我还希望它能够应用于数学模式环境,比如align
。
我之所以想这么做有两个原因:
- 让视障人士能够无障碍地学习数学正成为一个大问题。过去几年,一些大学因不遵守《美国残疾人法案》而被起诉,因为视障学生几乎没有或根本没有办法阅读数学——无论是 LaTeX、MathML、MS 公式编辑器还是其他什么。我不想等待 20 年才能等到可以准确将 pdf 上的数学内容口头表达出来的屏幕阅读器,而是想让屏幕阅读器将 LaTeX 代码口头表达出来,让视障学生解释该代码。只要我们不讨论嵌套分数之类的复杂内容,这是一种向视力受损的学生传达数学知识的有效方法。
- 对于教导其他人使用什么代码来排版某些内容而言,这将是一个很好的工具。
在 CTAN 上搜索后,似乎没有可以执行此操作的软件包。有人有什么想法吗?
答案1
这fancytooltip
包裹提供了比cooltooltips
包裹。例如,包装文档显示常规(固定)工具提示文本以及鼠标悬停时的动画工具提示文本。
文档指出它仅限于(免费)Adobe Reader 或 Adobe Acrobat 套件。这个限制可能令人望而却步,但 Adobe 与 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
分解,因此可以使用一些&
\pdfcomment
mathtools
重叠魔法(通过\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 版本的链接。