0

I am modified the tooltip package based on Tooltip that works with all pdf readers and also i asked one question How to make always visible the tooltip content on SumatraPDF? Since JavaScript was supported in SumatraPDF I try to create the frame around tooltip content using \framebox. So the Frame will visible in SumatraPDF. No need to open Adobe Reader each time.

My Problem was if varying the space in \tooltip command i.e. \tooltip{\includegraphics{sample.eps}}{Sample content}[-190,3pt] The frame box was not parallel to my tip content.

My custom-tooptip.sty was written

\NeedsTeXFormat{LaTeX2e}[2020/02/20]
\ProvidesPackage{custom-tooltip}[2020/11/30 custom-tooltip Package]

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % tooltips with LaTeX v. 2019/09/26 % % \tooltip[[[[]]]] % [<link colour>]{<link text>} % [<tip box colour>]{<tip text>} % [<x-offset>,<y-offset>] % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % \tooltip --> draggable tip, visible on mouse-over, hidden on mouse-out % % \tooltip* --> draggable tip, toggle visiblity on mouse-over % % \tooltip** --> NON-draggable tip, visible on mouse-over, hidden on mouse-out % % \tooltip*** --> NON-draggable tip, toggle visiblity on mouse-over % % \tooltip**** --> NON-draggable tip, toggle visiblity on mouse-click (Evince!) % % Default link colour can be set with % % \usepackage[linkcolor=<colour>]{hyperref} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{pdfbase}[2017/03/16] \usepackage{xparse,ocgbase} \usepackage{tikzpagenodes,linegoal} \usetikzlibrary{calc}

\ExplSyntaxOn \let\tpPdfLink\pbs_pdflink:nn \let\tpPdfAnnot\pbs_pdfannot:nnnn\let\tpPdfLastAnn\pbs_pdflastann: \let\tpAppendToFields\pbs_appendtofields:n \def\tpPdfXform{\pbs_pdfxform:nnnnn{1}{1}{}{}} \let\tpPdfLastXform\pbs_pdflastxform: \let\cListSet\clist_set:Nn\let\cListItem\clist_item:Nn \ExplSyntaxOff

%\makeatletter \NewDocumentCommand{\tooltip}{% ssssO{\ifdefined@linkcolor@linkcolor\else blue\fi}mO{yellow!20}mO{0pt,0pt}% }{{% \leavevmode% \IfBooleanT{#2}{% %for variants with two and more stars, put tip box on a PDF Layer (OCG) \ocgbase@new@ocg{tipOCG.\thetcnt}{% /Print<</PrintState/OFF>>/Export<</ExportState/OFF>>% }{false}% \xdef\tpTipOcg{\ocgbase@last@ocg}% %prevent simultaneous visibility of multiple non-draggable tooltips \ocgbase@add@ocg@to@radiobtn@grp{tool@tips}{\ocgbase@last@ocg}% }% \tpPdfLink{% \IfBooleanTF{#4}{% /Subtype/Link/Border[0 0 0]/A <</S/SetOCGState/State [/Toggle \tpTipOcg]>> }{% /Subtype/Screen% /AA<<% \IfBooleanTF{#3}{% /E<</S/SetOCGState/State [/Toggle \tpTipOcg]>>% }{% \IfBooleanTF{#2}{% /E<</S/SetOCGState/State [/ON \tpTipOcg]>>% /X<</S/SetOCGState/State [/OFF \tpTipOcg]>>% }{ \IfBooleanTF{#1}{% /E<</S/JavaScript/JS(% var fd=this.getField('tip.\thetcnt');% if(typeof(click\thetcnt)=='undefined'){% var click\thetcnt=false;% var fdor\thetcnt=fd.rect;var dragging\thetcnt=false;% }% if(fd.display==display.hidden){% fd.delay=true;fd.display=display.visible;fd.delay=false;% }else{% if(!click\thetcnt&&!dragging\thetcnt){fd.display=display.hidden;}% if(!dragging\thetcnt){click\thetcnt=false;}% }% this.dirty=false;% )>>% }{% /E<</S/JavaScript/JS(% var fd=this.getField('tip.\thetcnt');% if(typeof(click\thetcnt)=='undefined'){% var click\thetcnt=false;% var fdor\thetcnt=fd.rect;var dragging\thetcnt=false;% }% if(fd.display==display.hidden){% fd.delay=true;fd.display=display.visible;fd.delay=false;% }% this.dirty=false;% )>>% /X<</S/JavaScript/JS(% if(!click\thetcnt&&!dragging\thetcnt){fd.display=display.hidden;}% if(!dragging\thetcnt){click\thetcnt=false;}% this.dirty=false;% )>>% }% /U<</S/JavaScript/JS(click\thetcnt=true;this.dirty=false;)>>% /PC<</S/JavaScript/JS (% var fd=this.getField('tip.\thetcnt');% try{fd.rect=fdor\thetcnt;}catch(e){}% fd.display=display.hidden;this.dirty=false;% )>>% /PO<</S/JavaScript/JS(this.dirty=false;)>>% }% }% >>% }% }{{\color{#5}#6}}% \sbox\tiptext{% \IfBooleanT{#2}{% \ocgbase@oc@bdc{\tpTipOcg}\ocgbase@open@stack@push{\tpTipOcg}}% %\fcolorbox{black}{#7}{#8}% \tcbox[colframe=black,colback=#7,size=fbox,arc=0ex, sharp corners=southwest]{\parbox{0.70\textwidth}{\raggedright #8}}% \IfBooleanT{#2}{\ocgbase@oc@emc\ocgbase@open@stack@pop\tpNull}% }% \cListSet\tpOffsets{#9}% \edef\twd{\the\wd\tiptext}% \edef\tht{\the\ht\tiptext}% \edef\tdp{\the\dp\tiptext}% \tipshift=12pt% \IfBooleanTF{#2}{% %OCG-based (that is, all non-draggable) boxes should not extend beyond the %current column as they may get overlaid by text in the neighbouring column \setlength\whatsleft{\linegoal}% }{% \measureremainder{\whatsleft}% }% \ifdim\whatsleft<\dimexpr\twd+\cListItem\tpOffsets{1}\relax% \setlength\tipshift{\whatsleft-\twd-\cListItem\tpOffsets{1}}\fi% \IfBooleanF{#2}{\tpPdfXform{\tiptext}}% \raisebox{\heightof{#6}+\tdp+\cListItem\tpOffsets{2}}[0pt][0pt]{% \hspace{\dimexpr\tipshift+\cListItem\tpOffsets{2}\relax}\framebox[\twd][c]{\makebox[0pt][c]{\hspace{\dimexpr\tipshift+\cListItem\tpOffsets{1}\relax}% \IfBooleanTF{#2}{\usebox{\tiptext}}{% \tpPdfAnnot{\twd}{\tht}{\tdp}{% /Subtype/Widget/FT/Btn/T (tip.\thetcnt)% /AP<</N \tpPdfLastXform>>% /MK<</TP 1/I \tpPdfLastXform/IF<</S/A/FB true/A [0.0 0.0]>>>>% /Ff 65536/F 3% /AA <<% /U <<% /S/JavaScript/JS(% var fd=event.target;% var mX=this.mouseX;var mY=this.mouseY;% var drag=function(){% var nX=this.mouseX;var nY=this.mouseY;% var dX=nX-mX;var dY=nY-mY;% var fdr=fd.rect;% fdr[0]+=dX;fdr[1]+=dY;fdr[2]+=dX;fdr[3]+=dY;% fd.rect=fdr;mX=nX;mY=nY;% };% % if(!dragging\thetcnt){% % dragging\thetcnt=true;Int=app.setInterval("drag()",1);% % }% % else{app.clearInterval(Int);dragging\thetcnt=false;}% this.dirty=false;% )% >>% >>% }% \tpAppendToFields{\tpPdfLastAnn}% }% }}}% \stepcounter{tcnt}% }} %\makeatother

\newsavebox\tiptext\newcounter{tcnt} \newlength{\whatsleft}\newlength{\tipshift} \newcommand{\measureremainder}[1]{% \begin{tikzpicture}[overlay,remember picture] \path let \p0 = (0,0), \p1 = (current page.east) in [/utils/exec={\pgfmathsetlength#1{\x1-\x0}\global#1=#1}]; \end{tikzpicture}% } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

My TeX was

\documentclass{book}
\usepackage[intlimits,tbtags]{amsmath}
\usepackage[utf8]{inputenc}
\usepackage{amssymb}
\usepackage{calc}
\usepackage{tcolorbox}

\usepackage{custom-tooltip}

\begin{document}

\setcounter{chapter}{0}

\chapter{This is sample title}\label{chap:1} This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text.This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text.This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text.This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text.This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text.This is sample text. This is sample text.

\begin{figure}[!t] \tooltip{\includegraphics{download.png}}{This is LaTeX log.}[-150pt,-74pt] \caption{This is LaTeX logo.} \end{figure}

This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text.This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text.This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text.This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text.This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text. This is sample text.This is sample text. This is sample text.

\end{document}

Please find the two screen shot

1 . \begin{figure}[!t] \tooltip{\includegraphics{download.png}}{This is LaTeX log.}[-150pt,-74pt] \caption{This is LaTeX logo.} \end{figure}

enter image description here

  1. \begin{figure}[!t] \tooltip{\includegraphics{download.png}}{This is LaTeX log.}[-280pt,-74pt] \caption{This is LaTeX logo.} \end{figure}

enter image description here

Please help me regarding this issue...

1 Answers1

0

Now we can able to view the tooltip in SumatraPDF also. After the long struggle, i found this solution. By change the Boolean value from false to true for tooltip for PDF Layer OCG for #2. Please see below screen shot image yellow highlighted for your reference.

Existing macro

false

Modified macro

true

For viewing the tooltip in SumatraPDF we should need to change from \tooltip to \tooltip**. Please see below image tooltip was on PDF Layer.

enter image description here