我想创建一个带有图标而不是文本的按钮。如下例中的文本一样,图标应该随着鼠标选项而变化。
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}