\pushbuttons 带有图标和 pdflatex (xobject 参考)

\pushbuttons 带有图标和 pdflatex (xobject 参考)

我想创建一个带有图标而不是文本的按钮。如下例中的文本一样,图标应该随着鼠标选项而变化。

eforms 包的手册(eformman.pdf)提到了选项\I\RI并且\IX

  \I: (push buttons only) an indirect reference to a form XObject 
      defining the buttons’s normal icon

有一个例子http://www.math.uakron.edu/~dpstory/webeq_ex.html(eqforms.tex)但仅适用于 dvips 路由。是否也可以使用带有 pdflatex 的图标?我该如何创建和引用 xobject?(我尝试了各种变体,\pdfxform但无济于事)。

(使用 javascript 代码的解决方案也可以)

\documentclass{article}
\usepackage[pdftex]{eforms}
\usepackage{graphicx}
\begin{document}
\pushButton[\CA{Push}\AC{Me}\RC{Reset}\A{/S/ResetForm}]
    {myButton}{30bp}{15bp}
\end{document}

编辑

在 @AlexG 的帮助下,我发现了为什么“自然”命令 \I、\XI 和 \RI 不起作用: 中的相关代码eforms.sty在条目中使用了括号/I,在我看来,这不适用于pdftex。 如果我更改代码,一切都会正常工作(我将 移至0 R内部代码):

\documentclass{article}
\usepackage[pdftex]{eforms}
\usepackage{graphics}
\usepackage{mwe}

\newsavebox\imga
\newsavebox\imgb
\newsavebox\imgc
\sbox\imga{\includegraphics{example-image-a}}
\sbox\imgb{\includegraphics{example-image-b}}
\sbox\imgc{\includegraphics{example-image-c}}
\immediate\pdfxform\imga
\edef\normalappearance{\the\pdflastxform}
\immediate\pdfxform\imgb
\edef\overappearance{\the\pdflastxform}
\immediate\pdfxform\imgc
\edef\downappearance{\the\pdflastxform}

\pdfcompresslevel0
\pdfobjcompresslevel0
\begin{document}
\makeatletter
\def\@eqI#1{\ifx\annot@type\annot@type@button
    \def\eq@arg{#1}\ifx\eq@arg\@empty
    \let\eq@I\@empty\else\def\eq@I{/I #1\space 0 R}% removed brace around #1, 
                                                   % added \space 0 R 
    \eq@define@IconMK\fi\fi}

\def\@eqRI#1{\ifx\annot@type\annot@type@button
    \def\eq@arg{#1}\ifx\eq@arg\@empty
    \let\eq@RI\@empty\else\def\eq@RI{/RI #1\space 0 R}% removed brace around #1 ..
    \eq@define@IconMK\fi\fi}    

\def\@eqIX#1{\ifx\annot@type\annot@type@button
    \def\eq@arg{#1}\ifx\eq@arg\@empty
    \let\eq@IX\@empty\else\def\eq@IX{/IX #1\space 0 R}% removed brace around #1 ..
    \eq@define@IconMK\fi\fi}    
\makeatother

\pushButton[
  \TP{1}
  \I{\normalappearance}
  \RI{\overappearance}
  \IX{\downappearance}
]{myButton2}{100bp}{100bp}
\end{document}

编辑2

我已经通知作者,他将修改代码以便eforms.sty\I也能与 pdflatex 一起使用。

答案1

\documentclass{article}
\usepackage[pdftex]{eforms}
\usepackage{graphicx}
\usepackage{mwe}

\newsavebox\img

\sbox\img{\includegraphics{example-image-a}}
\immediate\pdfxform\img
\edef\normalappearance{\the\pdflastxform\space 0 R}

\sbox\img{\includegraphics{example-image-b}}
\immediate\pdfxform\img
\edef\overappearance{\the\pdflastxform\space 0 R}

\sbox\img{\includegraphics{example-image-c}}
\immediate\pdfxform\img
\edef\downappearance{\the\pdflastxform\space 0 R}

\begin{document}

\pushButton[
  \mkIns{
      /TP 1 /IF<</S/A/FB true/A [0.0 0.0]>>
      /I \normalappearance
      /RI \overappearance
      /IX \downappearance%
  }
  \A{/S/ResetForm}
]{myButton}{30bp}{22.5bp}

\end{document}

相关内容