summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/xcpdftips
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-03-18 21:16:35 +0000
committerKarl Berry <karl@freefriends.org>2019-03-18 21:16:35 +0000
commitcf96b24100f71b4e296c5242df34ef29dba70266 (patch)
tree9c2e9e09fb51780ac951417116a0d883495f9f9c /Master/texmf-dist/tex/latex/xcpdftips
parent8c69df7f8b72005b3d333b30388fb69d20ebb22a (diff)
xcpdftips (18mar19)
git-svn-id: svn://tug.org/texlive/trunk@50449 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/xcpdftips')
-rw-r--r--Master/texmf-dist/tex/latex/xcpdftips/xcpdftips.sty209
1 files changed, 182 insertions, 27 deletions
diff --git a/Master/texmf-dist/tex/latex/xcpdftips/xcpdftips.sty b/Master/texmf-dist/tex/latex/xcpdftips/xcpdftips.sty
index cbc2bf54847..bbbe40639e4 100644
--- a/Master/texmf-dist/tex/latex/xcpdftips/xcpdftips.sty
+++ b/Master/texmf-dist/tex/latex/xcpdftips/xcpdftips.sty
@@ -34,55 +34,210 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xcpdftips}
-[2019/03/10 xcpdftips.sty v1.0 - Copyright 2019 by Mikica Kocic]
+[2019/03/18 xcpdftips.sty v1.1 - (c) 2019 Mikica Kocic]
\RequirePackage{bibentry}
\RequirePackage{pdfcomment}
\RequirePackage{xparse}
\RequirePackage{etoolbox}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newif\ifXCP@redefcite\XCP@redefcitefalse
+\newif\ifXCP@useocg\XCP@useocgfalse
+\newif\ifXCP@usetcolorbox\XCP@usetcolorboxfalse
+
+\DeclareOption{redefcite}{\XCP@redefcitetrue}
+\DeclareOption{ocg}{\XCP@useocgtrue}
+\DeclareOption{tcolorbox}{\XCP@usetcolorboxtrue}
+
+\ProcessOptions\relax
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifXCP@useocg
+ \ifXCP@usetcolorbox
+ \ifx\tcolorbox\undefined
+ \RequirePackage{tcolorbox}
+ \fi
+ \newcommand{\XCP@tooltipbox}[3]{%
+ \begin{tcolorbox}[colframe=#1, colback=#2,%
+ width=1.02\columnwidth, arc=2pt,%
+ boxsep=2pt, top=0ex, bottom=0ex, left=0.1em, right=0.1em%
+ ]\normalfont\small #3\end{tcolorbox}%
+ }
+ \else
+ \newcommand{\XCP@tooltipbox}[3]{%
+ \fcolorbox{#1}{#2}%
+ {\parbox[t]{\columnwidth}{\normalfont\small #3}}%
+ }
+ \fi
+\fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifXCP@useocg
+
+\RequirePackage{pdfbase,ocgbase}
+
+\RequirePackage{expl3}
+\RequirePackage{calc,linegoal}
+\RequirePackage{xcolor}
+
\ExplSyntaxOn
-\NewDocumentCommand{ \XC@enumeratetips }%
-{ > { \SplitList , } m }%
-{%
- \global\undef\XC@tips%
- \tl_map_inline:nn {#1}%
- {%
- \ifx\XC@tips\undefined%
- \global\def\XC@tips{}%
- \gappto{\XC@tips}{--~~\@nameuse{BR@r@##1\@extra@b@citeb}}%
- \else%
- \gappto{\XC@tips}{,\textCR--~~\@nameuse{BR@r@##1\@extra@b@citeb}}%
- \fi%
- }%
+\msg_set:nnnn{xcpdftips}{support~outdated}{
+ Support~package~`#1'~too~old.
+}{
+ Get~an~up~to~date~version~of~`#1'.\\Aborting.
+}
+\@ifpackagelater{pdfbase}{2018/04/06}{}{
+ \msg_error:nnn{xcpdftips}{support~outdated}{pdfbase.sty}
+ \tex_endinput:D
+}
+\@ifpackagelater{ocgbase}{2018/04/06}{}{
+ \msg_error:nnn{xcpdftips}{support~outdated}{ocgbase.sty}
+ \tex_endinput:D
}
-\ExplSyntaxOff
-
-
-\newcommand\XC@citetp{\@ifnextchar[{\XC@@citetp}{\XC@@citetp[]}}
+\let\XCP@pdfLink\pbs_pdflink:nn % Alias for the pdflink from pdfbase
+\ExplSyntaxOff
-\newcommand\XC@@citetp{}
-\def\XC@@citetp[#1]{\@ifnextchar[{\XC@citex[#1]}{\XC@citex[][#1]}}
+\ifx\Hy@setpdfborder\undefined\else
+ \let\Hy@setpdfborderOrig\Hy@setpdfborder
+ \def\Hy@setpdfborder{\ocgbase@insert@oc\Hy@setpdfborderOrig}%
+\fi
+
+\newsavebox{\XCP@tipText} % Temporary savebox
+\newlength{\XCP@hOffset} \setlength\XCP@hOffset{-0.1em}
+\newlength{\XCP@vOffset} \setlength\XCP@vOffset{0.2ex}
+\newlength{\XCP@lineGoal}
+
+\NewDocumentCommand{\XCP@ocgtooltip}{%
+ m % link text
+ O{yellow!5} % tooltip box color
+ m % tooltip text
+}{{%
+ \leavevmode%
+ % Create a new PDF layer
+ \ocgbase@new@ocg{ref [\XCP@keys]}{%
+ /Print<</PrintState/OFF>> %
+ /Export<</ExportState/OFF>> %
+ /View<</ViewState/OFF>> %
+ }{invisible}%
+ \edef\XCP@currentOcg{\ocgbase@last@ocg}%
+ % Insert the PDF layer into the order hierarchy (shown in the 'Layers' tab)
+ \ocgbase@tree@node@begin%
+ \XCP@currentOcg%
+ \ocgbase@tree@node@end%
+ % Disable the simultaneous visibility of multiple tooltips
+ \ocgbase@add@ocg@to@radiobtn@grp{tool@tips}{\ocgbase@last@ocg}%
+ % Emit the <link text> using \pbs_pdflink:nn
+ \XCP@pdfLink{%
+ /Subtype/Link/Border[0 0 0]/A %
+ <</S/SetOCGState/State [/Toggle \XCP@currentOcg]>> %
+ }{#1}%
+ % Create a savebox for the <tooltip text> on the PDF layer
+ \sbox\XCP@tipText{%
+ \ocgbase@oc@bdc{\XCP@currentOcg}%
+ \ocgbase@open@stack@push{\XCP@currentOcg}%
+ \XCP@tooltipbox{black!50}{#2}{#3}%
+ \ocgbase@oc@emc%
+ \ocgbase@open@stack@pop%
+ \null%
+ }%
+ % Emit the savebox (at this point we have dimensions to calc the offset)
+ \raisebox{%
+ \heightof{#1} + \the\dp\XCP@tipText + \XCP@vOffset%
+ }[0pt][0pt]{%
+ \makebox[0pt][l]{\relax%
+ \setlength\XCP@lineGoal{\linegoal}%
+ \hspace{\dimexpr\XCP@lineGoal - \linewidth + \XCP@hOffset \relax}%
+ \usebox{\XCP@tipText}%
+ }%
+ }%
+}}
+\fi%XCP@useocg
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newsavebox{\XCP@keynum} % Temp box for getting citation numbers using \citenum
-\newcommand\XC@citex{}
+\ExplSyntaxOn
-\def\XC@citex[#1][#2]#3{%
- \XC@enumeratetips{#3}%
- \pdftooltip{\XC@oldcite[#1][#2]{#3}}{\XC@tips}%
+\NewDocumentCommand{ \XCP@enumeratetips }%
+{ > { \SplitList , } m }%
+{%
+ \global\undef\XCP@tips%
+ \global\undef\XCP@keys%
+ \tl_map_inline:nn {#1}%
+ {%
+ \ifx\XCP@tips\undefined%
+ \global\def\XCP@keys{}%
+ \sbox\XCP@keynum{\citenum{##1}}%
+ \expandafter\xdef\csname XCP@k@##1\endcsname{\NAT@num}%
+ \xappto{\XCP@keys}{\NAT@num}%
+ \global\def\XCP@tips{}%
+ \gappto{\XCP@tips}{[\textbf{\@nameuse{XCP@k@##1}}]\ %
+ {\@nameuse{BR@r@##1\@extra@b@citeb}}}%
+ \else%
+ \sbox\XCP@keynum{\citenum{##1}}%
+ \expandafter\xdef\csname XCP@k@##1\@extra@b@citeb\endcsname{\NAT@num}%
+ \xappto{\XCP@keys}{,\NAT@num}%
+ \gappto{\XCP@tips}{,\textCR[\textbf{\@nameuse{XCP@k@##1}}]\ %
+ {\@nameuse{BR@r@##1\@extra@b@citeb}}}%
+ \fi%
+ }%
}
-\let\XC@oldcite\citep % Save \citep (in the case if it becomes redefined)
-
+\ExplSyntaxOff
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef\XCP@opt@author{{}}
+\newcommand{\xcsetauthor}[1]{\gdef\XCP@opt@author{#1}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef\XCP@opt@markup{Underline}
+\newcommand{\xcsetmarkup}[1]{\gdef\XCP@opt@markup{#1}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef\XCP@opt@color{1 1 0}
+\newcommand{\xcsetcolor}[1]{\gdef\XCP@opt@color{#1}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\gdef\XCP@opt@opacity{0}
+\newcommand{\xcsetopacity}[1]{\gdef\XCP@opt@opacity{#1}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand\XCP@citetp{\@ifnextchar[{\XCP@@citetp}{\XCP@@citetp[]}}
+
+\newcommand\XCP@@citetp{}
+\def\XCP@@citetp[#1]{\@ifnextchar[{\XCP@citex[#1]}{\XCP@citex[][#1]}}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\newcommand\XCP@citex{}
+\gdef\XCP@citex[#1][#2]#3%
+ {%{\protect\NoHyper%
+ \ifXCP@useocg%
+ \let\textCR\par%
+ \XCP@enumeratetips{#3}%
+ \XCP@ocgtooltip%
+ {{{\protect\NoHyper\XCP@oldcite[#1][#2]{#3}\protect\endNoHyper}}}%
+ {\XCP@tips}%
+ \else%
+ \XCP@enumeratetips{#3}%
+ \pdftooltip{\XCP@oldcite[#1][#2]{#3}}{\XCP@tips}%
+ \pdfmarkupcomment[%
+ author=\XCP@opt@author,%
+ markup=\XCP@opt@markup,%
+ color=\XCP@opt@color,%
+ opacity=\XCP@opt@opacity,%
+ ]{\vphantom{.}}{\XCP@tips}%
+ \fi%
+ }%\protect\endNoHyper}}
-\let\xpdfcite\XC@citetp
+\let\XCP@oldcite\citep % Save \citep (in the case if it becomes redefined)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\let\xpdfcite\XCP@citetp
+\robustify{\xpdfcite}
\AtBeginDocument{\nobibliography*} % Necessary to get bibentries.
+\ifXCP@redefcite % Override \cite
+ \let\cite\xpdfcite
+ \robustify{\cite} % Required for, e.g., captions
+\fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%% <<<<< End of generated file <<<<<<
%%