我正在用这个令人惊叹的 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
宏中的行尾以避免出现意外的空格。