TikZ:添加“alt 标签/标题/隐形文本”以提高可访问性

TikZ:添加“alt 标签/标题/隐形文本”以提高可访问性

我正在用这个令人惊叹的 tex.sx 答案tikz 星形宏用于渲染 x-out-of-y 星形图形,以在我的简历中展示我的技能。

简历是用 xelatex 做的,然后导出为 pdf。因为这是一份简历,所以我担心它是否可被机器读取。

有什么方法可以向 tikz 的输出添加一些 alt 标签/标题/标签/不可见文本,以便在复制粘贴 pdf 时可以获得它?

另外,相关问题:有没有像盲人友好型乳胶这样的东西?

我尝试了 \pdfcomment 包中的 \pdftooltip,但没有成功。

答案1

您可以简单地在包含分数的星星顶部添加一个不可见的节点。这样,文本将不可见,但可以复制/粘贴:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}

\newcommand\score[2]{
\pgfmathsetmacro\pgfxa{#1+1}
\tikzset{
    scorestars/.style={
        star,
        star points=5,
        star point ratio=2.25,
        draw,
        inner sep=1.3pt,
        anchor=outer point 3
    }
}
\begin{tikzpicture}[baseline]
  \foreach \i in {1,...,#2} {
    \pgfmathparse{(\i<=#1?"yellow":"gray")}
    \edef\starcolor{\pgfmathresult}
    \draw (\i*1.75ex,0) node[name=star\i,scorestars,fill=\starcolor]  {};
  }
  \node [font=\tiny, opacity=0] at (current bounding box.mid) {#1/#2};
  \end{tikzpicture}
}

\begin{document}
\score{0}{5} A meagre result.

\score{4}{5} Much better

\score{5}{5} Perfect score!

\end{document}

答案2

您可以使用补充包裹。

\documentclass{minimal}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\usepackage{accsupp}

\newcommand\score[2]{%
\BeginAccSupp{method=escape,ActualText={#1 of #2}}%
\pgfmathsetmacro\pgfxa{#1+1}%
\tikzstyle{scorestars}=[star, star points=5, star point ratio=2.25, draw,inner sep=1.3pt,anchor=outer point 3]%
  \begin{tikzpicture}[baseline]
    \foreach \i in {1,...,#2} {
    \pgfmathparse{(\i<=#1?"yellow":"gray")}
    \edef\starcolor{\pgfmathresult}
    \draw (\i*1.75ex,0) node[name=star\i,scorestars,fill=\starcolor]  {};
   }
  \end{tikzpicture}%
\EndAccSupp{}%
}

\begin{document}
\score{0}{5} A meagre result.

\score{4}{5} Much better

\score{5}{5} Perfect score!

\end{document}

选择输出:

0 of 5 A meagre result.
4 of 5 Much better
5 of 5 Perfect score!

注意:我必须转义\score宏中的行尾以避免出现意外的空格。

相关内容