summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-03-10 21:03:17 +0000
committerKarl Berry <karl@freefriends.org>2019-03-10 21:03:17 +0000
commitb206fdc77d81ed1600949062f08de5690a4bf66f (patch)
treeb5908c8c077a6508ac7287df05efb60eeaaf9330
parent914590824a5ba513f71e0468980616e98e50dcf9 (diff)
xcpdftips (10mar19)
git-svn-id: svn://tug.org/texlive/trunk@50321 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/xcpdftips/README.md61
-rw-r--r--Master/texmf-dist/doc/latex/xcpdftips/xcpdftips.pdfbin0 -> 156979 bytes
-rw-r--r--Master/texmf-dist/source/latex/xcpdftips/xcpdftips.drv45
-rw-r--r--Master/texmf-dist/source/latex/xcpdftips/xcpdftips.dtx434
-rw-r--r--Master/texmf-dist/source/latex/xcpdftips/xcpdftips.ins100
-rw-r--r--Master/texmf-dist/tex/latex/xcpdftips/xcpdftips.sty90
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rw-r--r--Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/xcpdftips.tlpsrc0
9 files changed, 732 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/xcpdftips/README.md b/Master/texmf-dist/doc/latex/xcpdftips/README.md
new file mode 100644
index 00000000000..19104c2661c
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/xcpdftips/README.md
@@ -0,0 +1,61 @@
+# xcpdftips
+
+This is a LaTeX package for natbib citations with PDF tooltips.
+
+## Manifest
+
+The xcpdftips package contains the following files:
+
+### `xcpdftips.dtx`
+
+Documented source file that may be LaTeXed to get the
+detailed description and/or coding documentation.
+
+May be docstripped with option "package,all" to get the
+`xcpdftips.sty` package file, or processed with `xcpdftips.ins`.
+
+### `xcpdftips.ins`
+
+A docstrip batch job to extract `xcpdftips.sty` from the source file
+`xcpdftips.dtx`. Simply TeX or LaTeX this file.
+
+This file is embedded in `xcpdftips.dtx`. If it is missing, then
+LaTeXing `xcpdftips.dtx` will extract it.
+
+## Generation
+
+Simply run TeX or LaTeX on `xcpdftips.ins`, which extracts
+`xcpdftips.sty` from the documented source `xcpdftips.dtx`. If
+`xcpdftips.ins` has been lost, it may be regenerated by
+running LaTeX on `xcpdftips.dtx`.
+
+## Documentation
+
+Run LaTeX on `xcpdftips.dtx` or `xcpdftips.ltx`. The latter may be edited
+as needed to conform to local requirements (paper size, duplex or not,
+with or without entire coding). Alternatively, a `ltxdoc.cfg` file can
+contain local configurations.
+
+For full details, print out the documentation in `xcpdftips.dtx`
+by LaTeXing it.
+
+## List of changes
+
+v1.0 Initial release 2019/03/10
+
+## License
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+
diff --git a/Master/texmf-dist/doc/latex/xcpdftips/xcpdftips.pdf b/Master/texmf-dist/doc/latex/xcpdftips/xcpdftips.pdf
new file mode 100644
index 00000000000..22c22259bf5
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/xcpdftips/xcpdftips.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/xcpdftips/xcpdftips.drv b/Master/texmf-dist/source/latex/xcpdftips/xcpdftips.drv
new file mode 100644
index 00000000000..f8fb591b4d4
--- /dev/null
+++ b/Master/texmf-dist/source/latex/xcpdftips/xcpdftips.drv
@@ -0,0 +1,45 @@
+%%
+%% This is file `xcpdftips.drv',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xcpdftips.dtx (with options: `driver')
+%% ============================================
+%% This is the driver file to produce the LaTeX documentation
+%% from the original source file xcpdftips.dtx.
+%%
+%% Make changes to it as needed. (Never change the file xcpdftips.dtx!)
+%% ============================================
+%% Copyright (c) 2019 Mikica Kocic
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesFile{xcpdftips.drv}
+\documentclass[a4paper]{ltxdoc}
+%\documentclass[twoside]{ltxdoc}
+%\documentclass[a4paper]{ltxdoc}
+%\documentclass[twoside,a4paper]{ltxdoc}
+\raggedbottom
+
+ %** To include the detailed explanation of the coding, comment out
+ %** the next line
+
+ %** To produce a command index: add the following line for one run,
+ %** then run makeindex -s gind.ist xcpdftips
+ %** and reprocess, with or without this line (much faster without)
+% \EnableCrossrefs\CodelineIndex
+
+ %** To produce a change history: add the following line for one run,
+ %** then run makeindex -s gglo.ist -o xcpdftips.gls xcpdftips.glo
+ %** and reprocess, with or without this line (faster without)
+% \RecordChanges
+
+\DisableCrossrefs %May stay; zapped by \EnableCrossrefs
+\CodelineNumbered %May stay
+
+\begin{document}
+ \DocInput{xcpdftips.dtx}
+\end{document}
+%%
+%% End of documentation driver file.
+%%
+%% End of file `xcpdftips.drv'.
diff --git a/Master/texmf-dist/source/latex/xcpdftips/xcpdftips.dtx b/Master/texmf-dist/source/latex/xcpdftips/xcpdftips.dtx
new file mode 100644
index 00000000000..71a8f56f6b3
--- /dev/null
+++ b/Master/texmf-dist/source/latex/xcpdftips/xcpdftips.dtx
@@ -0,0 +1,434 @@
+% \iffalse THIS IS A META-COMMENT
+%<*dtx>
+\ProvidesFile
+%========================================================================
+ {XCPDFTIPS.DTX}
+%========================================================================
+%</dtx>
+%% Copyright (c) 2019 Mikica Kocic
+%
+% This program is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program. If not, see <https://www.gnu.org/licenses/>.
+%
+% This is a contributed file to the LaTeX2e system.
+% -------------------------------------------------
+% This is a LaTeX package to do citations with PDF tooltips.
+% Installation:
+% LaTeX this file: creates docstrip installation file xcpdftips.ins
+% AND the LaTeX documentation
+% (La)TeX xcpdftips.ins: creates package file xcpdftips.sty, and optionally
+% the documentation driver xcpdftips.drv
+% (xcpdftips.ins and xcpdftips.drv may be edited as needed)
+% Docstrip options available:
+% package - to produce a (LaTeX2e) package .sty file
+% driver - to produce a driver file to print the documentation
+%--------------------------------------------------------------------------
+%
+% *** Identify the package file:-
+%<package>
+%<package>\NeedsTeXFormat{LaTeX2e}
+%<package>
+%<package>\ProvidesPackage{xcpdftips}
+%<package>[2019/03/10 xcpdftips.sty v1.0 - Copyright 2019 by Mikica Kocic]
+%<package>
+%<package>\RequirePackage{bibentry}
+%<package>\RequirePackage{pdfcomment}
+%<package>\RequirePackage{xparse}
+%<package>\RequirePackage{etoolbox}
+%
+% *** Identify the driver file:-
+%
+%<driver>\NeedsTeXFormat{LaTeX2e}
+%<driver>\ProvidesFile{xcpdftips.drv}
+%
+% *** The DATE, VERSION, and other INFO
+%
+%\fi
+%\ProvidesFile{xcpdftips}[2019/03/10 1.0 (PWD)]
+% \changes{1.0}{2019 Mar 10}{Initial version}
+%
+% \CheckSum{55}
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \iffalse
+%<*install>
+%
+%^^A =============================================
+%^^A Here is the docstrip installation file
+%^^A It is written on first LaTeX run if it
+%^^A does not already exist
+%^^A =============================================
+%
+\begin{filecontents*}{xcpdftips.ins}
+%
+% File: xcpdftips.ins
+%
+% Copyright (c) 2019 Mikica Kocic
+%
+% This program is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program. If not, see <https://www.gnu.org/licenses/>.
+%
+% It is an installation file for extracting package and driver
+% files from the original source file. Simply process it under
+% TeX or LaTeX. It works with Docstrip versions before and after
+% December 1995.
+
+\def\batchfile{xcpdftips.ins}
+\input docstrip
+
+\preamble
+
+=============================================
+IMPORTANT NOTICE:
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+This is a generated file.
+It may not be distributed without the original source file \inFileName.
+
+Full documentation can be obtained by LaTeXing that original file.
+Only a few abbreviated comments remain here to describe the usage.
+=============================================
+
+\endpreamble
+\postamble
+
+<<<<< End of generated file <<<<<<
+
+\endpostamble
+\keepsilent
+
+% Docstrip before Dec 95 does not have \generate syntax, nor
+% \declarepreamble. Must redefine them. The \generateFile called
+% for each output file individually.
+% Docstrip before Dec 96 cannot interprete multiline \if..\fi
+% Thus for maximum compatibility, have only one-line conditionals
+
+\let\oldDS F\relax
+\expandafter\ifx\csname generate\endcsname\relax \let\oldDS T\relax\fi
+\if\oldDS T \def\declarepreamble#1{\preamble}\fi
+\if\oldDS T \def\declarepostamble#1{\postamble}\fi
+\if\oldDS T \generateFile{xcpdftips.sty}{f}{\from{xcpdftips.dtx}{package}} \fi
+
+\declarepreamble\driver
+============================================
+This is the driver file to produce the LaTeX documentation
+from the original source file \inFileName.
+
+Make changes to it as needed. (Never change the file \inFileName!)
+============================================
+\endpreamble
+
+\declarepostamble\driverq
+
+End of documentation driver file.
+\endpostamble
+
+\ifx\oldDS T \generateFile{xcpdftips.drv}{f}{\from{xcpdftips.dtx}{driver}}\fi
+
+\ifx\oldDS T \let\askforoverwritefalse\relax\def\generate#1{}\fi
+
+\askforoverwritefalse
+\generate{\file{xcpdftips.sty}{\from{xcpdftips.dtx}{package}}
+ \file{xcpdftips.drv}{\usepreamble\driver\usepostamble\driverq
+ \from{xcpdftips.dtx}{driver}}
+ }
+
+\obeyspaces
+\Msg{********************************************}%
+\Msg{* For documentation, process xcpdftips.dtx *}%
+\Msg{* or the driver file xcpdftips.drv *}%
+\Msg{********************************************}
+\end{filecontents*}
+%</install>
+%<*driver>
+\documentclass[a4paper]{ltxdoc}
+%<driver>%\documentclass[twoside]{ltxdoc}
+%<driver>%\documentclass[a4paper]{ltxdoc}
+%<driver>%\documentclass[twoside,a4paper]{ltxdoc}
+\raggedbottom
+
+ %** To include the detailed explanation of the coding, comment out
+ %** the next line
+% \OnlyDescription
+
+ %** To produce a command index: add the following line for one run,
+ %** then run makeindex -s gind.ist xcpdftips
+ %** and reprocess, with or without this line (much faster without)
+%<driver>% \EnableCrossrefs\CodelineIndex
+
+ %** To produce a change history: add the following line for one run,
+ %** then run makeindex -s gglo.ist -o xcpdftips.gls xcpdftips.glo
+ %** and reprocess, with or without this line (faster without)
+%<driver>% \RecordChanges
+
+\DisableCrossrefs %May stay; zapped by \EnableCrossrefs
+\CodelineNumbered %May stay
+
+\begin{document}
+ \DocInput{xcpdftips.dtx}
+\end{document}
+%</driver>
+%\fi
+%
+% \DoNotIndex{\begin,\CodelineIndex,\CodelineNumbered,\def,\DisableCrossrefs}
+% \DoNotIndex{\DocInput,\documentclass,\EnableCrossrefs,\end,\GetFileInfo}
+% \DoNotIndex{\NeedsTeXFormat,\OnlyDescription,\RecordChanges,\usepackage}
+% \DoNotIndex{\ProvidesClass,\ProvidesPackage,\ProvidesFile,\RequirePackage}
+% \DoNotIndex{\filename,\fileversion,\filedate,\let}
+% \DoNotIndex{\@listctr,\@nameuse,\csname,\else,\endcsname,\expandafter}
+% \DoNotIndex{\gdef,\global,\if,\item,\newcommand,\nobibliography}
+% \DoNotIndex{\par,\providecommand,\relax,\renewcommand,\renewenvironment}
+% \DoNotIndex{\stepcounter,\usecounter,\nocite,\fi}
+% \DoNotIndex{\@fileswfalse,\@gobble,\@ifstar,\@unexpandable@protect}
+% \DoNotIndex{\AtBeginDocument,\AtEndDocument,\begingroup,\endgroup}
+% \DoNotIndex{\frenchspacing,\MessageBreak,\newif,\PackageWarningNoLine}
+% \DoNotIndex{\protect,\string,\xdef,\ifx,\texttt,\@biblabel,\bibitem}
+%
+% \setcounter{IndexColumns}{2}
+% \setlength{\IndexMin}{10cm}
+% \setcounter{StandardModuleDepth}{1}
+%
+% \GetFileInfo{xcpdftips}
+%
+% \title{\bfseries Citations with PDF tooltips}
+%
+% \author{Mikica Kocic}
+%
+% \date{This paper describes package \texttt{\filename}\\
+% version \fileversion{} from \filedate
+% }
+%
+% \maketitle
+%
+% \pagestyle{myheadings}
+% \markboth{M. Kocic}{PDF tooltips from natbib citations}
+%
+%^^A In order to keep all marginal notes on the one (left) side:
+%^^A (otherwise they switch sides disasterously with twoside option)
+% \makeatletter \@mparswitchfalse \makeatother
+%
+%\iffalse
+%<*package>
+%
+% PDF tooltips from natbib citations
+%
+%-----------------------------------------------------------
+% See documentation in the source .dtx file for more details.
+%</package>
+%\fi
+%
+% \section{Introduction}
+%
+% This package allows one to be able to do \texttt{natbib} citations
+% with PDF tooltips.
+%
+% \section{Invoking the Package}
+%
+% The macros in this package are included in the main document
+% with the |\usepackage| command of \LaTeXe,
+% \begin{quote}
+% |\documentclass[..]{...}|\\
+% |\usepackage{|\texttt{\filename}|}|
+% \end{quote}
+%
+% \section{Usage}
+%
+% \newcommand\btx{\textsc{Bib}\TeX}
+%
+% This package must be used with \btx{} and \texttt{natbib}, not with a
+% hand-written \texttt{thebibliography} environment.
+% More precisely, there must be a \texttt{.bbl} file external to the \LaTeX\
+% file; whether this is written by hand or by \btx\ is unimportant.
+% \vspace{2ex}
+%
+% \DescribeMacro{\xpdfcite}
+% This is a replacement for \texttt{natbib}'s |\cite| macro.
+% Usage is the same:
+%
+% \begin{quote}
+% |\xpdfcite|\marg{key(s)}
+% \end{quote}
+%
+% \noindent Similarly to |\cite|, the command |\xpdfcite| may take one or two
+% optional arguments to add some text before and after the citation.
+% \vspace{2ex}
+%
+% \noindent It is also possible to replace |\cite|:
+%
+% \begin{quote}
+% |\usepackage{xcpdftips}| \\
+% |\let\cite\xpdfcite|
+% \end{quote}
+%
+% \section{Caveats}
+%
+% The \texttt{\filename} package will work with \texttt{natbib} with its
+% native |\bibitem| format, and with standard \LaTeX. Nothing else can be
+% guaranteed.
+% It will also work with \texttt{url} package.
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \section{Options with \texttt{docstrip}}
+%
+% The source \texttt{.dtx} file is meant to be processed with
+% \texttt{docstrip}, for which a number of options are available:
+%
+% \begin{description}
+%
+% \item[\ttfamily package] to produce a \texttt{.sty} package file with most
+% comments removed;
+%
+% \item[\ttfamily driver] to produce a driver \texttt{.drv} file that will
+% print out the documentation under \LaTeXe. The documentation cannot
+% be printed under \LaTeX~2.09.
+%
+% \end{description}
+%
+% The source file \texttt{\filename.dtx} is itself a driver file and can
+% be processed directly by \LaTeXe.
+%
+% \section{The Coding}
+%
+% This section presents and explains the actual coding of the macros.
+% It is nested between |%<*package>| and |%</package>|, which
+% are indicators to \texttt{docstrip} that this coding belongs to the package
+% file.
+%
+% \begin{macro}{\XC@enumeratetips}
+%
+% The macro |\XC@enumeratetips| gets \texttt{bibentry} for each key from
+% the list of citations. The output is stored into |\XC@tips|, which can
+% be directly used as a tooltip text in |\pdftooltip|.
+%
+% \begin{macrocode}
+%<*package>
+
+\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%
+ }%
+}
+
+\ExplSyntaxOff
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC@citetp}
+%
+% This macro is in fact |\xpdfcite|. \\
+% It is a wrapper for |\XC@@citetp| to handle variable number of arguments.
+%
+% \begin{macrocode}
+
+\newcommand\XC@citetp{\@ifnextchar[{\XC@@citetp}{\XC@@citetp[]}}
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC@@citetp}
+%
+% This macro is called from |\xpdfcite|. \\
+% It is a wrapper for |\XC@citex| to handle variable number of arguments.
+%
+% \begin{macrocode}
+
+\newcommand\XC@@citetp{}
+
+\def\XC@@citetp[#1]{\@ifnextchar[{\XC@citex[#1]}{\XC@citex[][#1]}}
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC@citex}
+%
+% This macro does the actual job.
+% It is an internal wrapper for the combined |\pdftooltip| and |\citep|.
+%
+% \begin{macrocode}
+
+\newcommand\XC@citex{}
+
+\def\XC@citex[#1][#2]#3{%
+ \XC@enumeratetips{#3}%
+ \pdftooltip{\XC@oldcite[#1][#2]{#3}}{\XC@tips}%
+}
+
+\let\XC@oldcite\citep % Save \citep (in the case if it becomes redefined)
+
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\xpdfcite}
+%
+% A wrapper for the combined |\pdftooltip| and |\citep|.\\
+% It has the same syntax as |\citep|.
+%
+% \begin{macrocode}
+
+\let\xpdfcite\XC@citetp
+
+\AtBeginDocument{\nobibliography*} % Necessary to get bibentries.
+
+% \end{macrocode}
+% \end{macro}
+%
+% \Finale
diff --git a/Master/texmf-dist/source/latex/xcpdftips/xcpdftips.ins b/Master/texmf-dist/source/latex/xcpdftips/xcpdftips.ins
new file mode 100644
index 00000000000..80982ee81c0
--- /dev/null
+++ b/Master/texmf-dist/source/latex/xcpdftips/xcpdftips.ins
@@ -0,0 +1,100 @@
+%
+% File: xcpdftips.ins
+%
+% Copyright (c) 2019 Mikica Kocic
+%
+% This program is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program. If not, see <https://www.gnu.org/licenses/>.
+%
+% It is an installation file for extracting package and driver
+% files from the original source file. Simply process it under
+% TeX or LaTeX. It works with Docstrip versions before and after
+% December 1995.
+
+\def\batchfile{xcpdftips.ins}
+\input docstrip
+
+\preamble
+
+=============================================
+IMPORTANT NOTICE:
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+This is a generated file.
+It may not be distributed without the original source file \inFileName.
+
+Full documentation can be obtained by LaTeXing that original file.
+Only a few abbreviated comments remain here to describe the usage.
+=============================================
+
+\endpreamble
+\postamble
+
+<<<<< End of generated file <<<<<<
+
+\endpostamble
+\keepsilent
+
+% Docstrip before Dec 95 does not have \generate syntax, nor
+% \declarepreamble. Must redefine them. The \generateFile called
+% for each output file individually.
+% Docstrip before Dec 96 cannot interprete multiline \if..\fi
+% Thus for maximum compatibility, have only one-line conditionals
+
+\let\oldDS F\relax
+\expandafter\ifx\csname generate\endcsname\relax \let\oldDS T\relax\fi
+\if\oldDS T \def\declarepreamble#1{\preamble}\fi
+\if\oldDS T \def\declarepostamble#1{\postamble}\fi
+\if\oldDS T \generateFile{xcpdftips.sty}{f}{\from{xcpdftips.dtx}{package}} \fi
+
+\declarepreamble\driver
+============================================
+This is the driver file to produce the LaTeX documentation
+from the original source file \inFileName.
+
+Make changes to it as needed. (Never change the file \inFileName!)
+============================================
+\endpreamble
+
+\declarepostamble\driverq
+
+End of documentation driver file.
+\endpostamble
+
+\ifx\oldDS T \generateFile{xcpdftips.drv}{f}{\from{xcpdftips.dtx}{driver}}\fi
+
+\ifx\oldDS T \let\askforoverwritefalse\relax\def\generate#1{}\fi
+
+\askforoverwritefalse
+\generate{\file{xcpdftips.sty}{\from{xcpdftips.dtx}{package}}
+ \file{xcpdftips.drv}{\usepreamble\driver\usepostamble\driverq
+ \from{xcpdftips.dtx}{driver}}
+ }
+
+\obeyspaces
+\Msg{********************************************}%
+\Msg{* For documentation, process xcpdftips.dtx *}%
+\Msg{* or the driver file xcpdftips.drv *}%
+\Msg{********************************************}
diff --git a/Master/texmf-dist/tex/latex/xcpdftips/xcpdftips.sty b/Master/texmf-dist/tex/latex/xcpdftips/xcpdftips.sty
new file mode 100644
index 00000000000..cbc2bf54847
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/xcpdftips/xcpdftips.sty
@@ -0,0 +1,90 @@
+%%
+%% This is file `xcpdftips.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xcpdftips.dtx (with options: `package')
+%%
+%% =============================================
+%% IMPORTANT NOTICE:
+%%
+%% This program is free software: you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation, either version 3 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program. If not, see <https://www.gnu.org/licenses/>.
+%%
+%% This is a generated file.
+%% It may not be distributed without the original source file xcpdftips.dtx.
+%%
+%% Full documentation can be obtained by LaTeXing that original file.
+%% Only a few abbreviated comments remain here to describe the usage.
+%% =============================================
+%%
+%% Copyright (c) 2019 Mikica Kocic
+
+\NeedsTeXFormat{LaTeX2e}
+
+\ProvidesPackage{xcpdftips}
+[2019/03/10 xcpdftips.sty v1.0 - Copyright 2019 by Mikica Kocic]
+
+\RequirePackage{bibentry}
+\RequirePackage{pdfcomment}
+\RequirePackage{xparse}
+\RequirePackage{etoolbox}
+
+\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%
+ }%
+}
+
+\ExplSyntaxOff
+
+
+\newcommand\XC@citetp{\@ifnextchar[{\XC@@citetp}{\XC@@citetp[]}}
+
+
+\newcommand\XC@@citetp{}
+
+\def\XC@@citetp[#1]{\@ifnextchar[{\XC@citex[#1]}{\XC@citex[][#1]}}
+
+
+\newcommand\XC@citex{}
+
+\def\XC@citex[#1][#2]#3{%
+ \XC@enumeratetips{#3}%
+ \pdftooltip{\XC@oldcite[#1][#2]{#3}}{\XC@tips}%
+}
+
+\let\XC@oldcite\citep % Save \citep (in the case if it becomes redefined)
+
+
+\let\xpdfcite\XC@citetp
+
+\AtBeginDocument{\nobibliography*} % Necessary to get bibentries.
+
+%%
+%% <<<<< End of generated file <<<<<<
+%%
+%%
+%% End of file `xcpdftips.sty'.
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index efe38f709aa..64947fb5768 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -727,7 +727,7 @@ my @TLP_working = qw(
wrapfig wsemclassic wsuipa wtref
xargs xassoccnt xbmks xcharter xcite xcjk2uni xcntperchap
xcolor xcolor-material xcolor-solarized
- xcomment xcookybooky xdoc xduthesis
+ xcomment xcookybooky xcpdftips xdoc xduthesis
xebaposter xechangebar xecjk xecolor xecyr xeindex xellipsis
xepersian xesearch xespotcolor
xetex-devanagari xetex-itrans xetex-pstricks xetex-tibetan
diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
index 4c8e0d7f02c..d4c443c3990 100644
--- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
@@ -1213,6 +1213,7 @@ depend xcolor-material
depend xcolor-solarized
depend xcomment
depend xcookybooky
+depend xcpdftips
depend xdoc
depend xellipsis
depend xfakebold
diff --git a/Master/tlpkg/tlpsrc/xcpdftips.tlpsrc b/Master/tlpkg/tlpsrc/xcpdftips.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/xcpdftips.tlpsrc