texlive[47991] Master: xbmks (11jun18)

commits+karl at tug.org commits+karl at tug.org
Tue Jun 12 00:22:37 CEST 2018


Revision: 47991
          http://tug.org/svn/texlive?view=revision&revision=47991
Author:   karl
Date:     2018-06-12 00:22:36 +0200 (Tue, 12 Jun 2018)
Log Message:
-----------
xbmks (11jun18)

Modified Paths:
--------------
    trunk/Master/tlpkg/bin/tlpkg-ctan-check
    trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/xbmks/
    trunk/Master/texmf-dist/doc/latex/xbmks/README.md
    trunk/Master/texmf-dist/doc/latex/xbmks/docs/
    trunk/Master/texmf-dist/doc/latex/xbmks/docs/xbmksman.pdf
    trunk/Master/texmf-dist/doc/latex/xbmks/docs/xbmksman.tex
    trunk/Master/texmf-dist/doc/latex/xbmks/examples/
    trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc1.pdf
    trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc1.tex
    trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc2.pdf
    trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc2.tex
    trunk/Master/texmf-dist/doc/latex/xbmks/examples/master.pdf
    trunk/Master/texmf-dist/doc/latex/xbmks/examples/master.tex
    trunk/Master/texmf-dist/source/latex/xbmks/
    trunk/Master/texmf-dist/source/latex/xbmks/xbmks.dtx
    trunk/Master/texmf-dist/source/latex/xbmks/xbmks.ins
    trunk/Master/texmf-dist/tex/latex/xbmks/
    trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-luatex.def
    trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-pdfmark.def
    trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-pdftex.def
    trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-xetex.def
    trunk/Master/texmf-dist/tex/latex/xbmks/xbmks.sty
    trunk/Master/tlpkg/tlpsrc/xbmks.tlpsrc

Added: trunk/Master/texmf-dist/doc/latex/xbmks/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/xbmks/README.md	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/xbmks/README.md	2018-06-11 22:22:36 UTC (rev 47991)
@@ -0,0 +1,25 @@
+The xbmks Package
+Author: D. P. Story 
+Dated: 2018/06/11
+
+Short description: Create a cross-document bookmark tree. 
+
+The package defines the concept of a document bundle, which is a collection 
+of documents that are to be build separately, but have a common bookmark 
+tree. 
+
+This package takes the bookmarks of each file in doc bundle and merges them. 
+The merged bookmarks are listed in all the documents of the document bundle. 
+In this way, a sort of 'table of contents' is available to all documents in 
+the bundle.
+
+PDF Creator: no restrictions, use dvips->distiller|ps2pdf, pdflatex, 
+lualatex, or xelatex.
+ 
+
+Now, I simply must get back to my retirement.
+
+D. P. Story
+www.acrotex.net
+dpstory at uakron.edu
+dpstory at acrotex.net


Property changes on: trunk/Master/texmf-dist/doc/latex/xbmks/README.md
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/xbmks/docs/xbmksman.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/xbmks/docs/xbmksman.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/xbmks/docs/xbmksman.pdf	2018-06-11 22:21:12 UTC (rev 47990)
+++ trunk/Master/texmf-dist/doc/latex/xbmks/docs/xbmksman.pdf	2018-06-11 22:22:36 UTC (rev 47991)

Property changes on: trunk/Master/texmf-dist/doc/latex/xbmks/docs/xbmksman.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/xbmks/docs/xbmksman.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/xbmks/docs/xbmksman.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/xbmks/docs/xbmksman.tex	2018-06-11 22:22:36 UTC (rev 47991)
@@ -0,0 +1,337 @@
+%
+% Need some discussion on workflow
+%
+% makeindex < aebpro_man.idx > aebpro_man.ind
+\documentclass[10pt]{article}
+\usepackage[fleqn]{amsmath}
+\usepackage[
+    web={centertitlepage,designv,forcolorpaper,latextoc,pro,addtoHyOpts={pagebackref=false}},
+    eforms,
+%    linktoattachments,
+    aebxmp
+]{aeb_pro}
+\usepackage{aeb_mlink}
+\usepackage{graphicx,array}
+%\usepackage{myriadpro}
+%\usepackage{calibri}
+\usepackage[altbullet]{lucidbry}
+
+%\previewtrue
+%\usepackage{makeidx}
+%\makeindex
+\usepackage{acroman}
+\usepackage[active]{srcltx}
+
+\setcounter{secnumdepth}{4}
+\setcounter{tocdepth}{5}
+\makeatletter
+\renewcommand*{\theparagraph}{\texorpdfstring{\protect\P\protect\ }{\textparagraph}}
+\renewcommand{\paragraph}
+    {\renewcommand{\@seccntformat}[1]{\theparagraph}%
+    \@startsection{paragraph}{4}{0pt}{6pt}{-3pt}{\color{\aeb at subsubsectioncolor}\bfseries}}
+\renewcommand*\l at paragraph{\@dottedtocline{4}{5.0em}{1em}} %{7.0em}{4.1em}}
+\def\chgCurrLblName#1{\def\@currentlabelname{#1}}
+\def\echgCurrLblName#1{\edef\@currentlabelname{#1}}
+\makeatother
+
+\getDimsFromGraphic{graphics/dpsweb}{\dpswebW}{\dpswebH}
+
+
+%\urlstyle{rm}
+\urlstyle{sf}
+\let\uif\textsf
+\let\app\textsf
+\def\psf#1{\textbf{\textsf{#1}}}
+\let\amtIndent\leftmargini
+
+\renewcommand*\descriptionlabel[1]{\hspace\labelsep
+    \normalfont #1}
+
+
+\DeclareDocInfo
+{
+    university={Acro\negthinspace\TeX.Net},
+    title={The \textsf{xbmks} package\texorpdfstring{\\}{:}Cross-document bookmarks},
+    author={D. P. Story},
+    email={dpstory at acrotex.net},
+    subject={Documentation for the richtext package from AcroTeX},
+    talksite={\url{www.acrotex.net}},
+    version={1.0, 2018/06/11},
+    keywords={AcroTeX, rich text strings},
+    copyrightStatus=True,
+    copyrightNotice={Copyright (C) \the\year, D. P. Story},
+    copyrightInfoURL={http://www.acrotex.net}
+}
+
+\def\dps{$\hbox{$\mathfrak D$\kern-.3em\hbox{$\mathfrak P$}%
+   \kern-.6em \hbox{$\mathcal S$}}$}
+
+\universityLayout{fontsize=Large}
+\titleLayout{fontsize=LARGE}
+\authorLayout{fontsize=Large}
+\tocLayout{fontsize=Large,color=aeb}
+\sectionLayout{indent=-62.5pt,fontsize=large,color=aeb}
+\subsectionLayout{indent=-31.25pt,color=aeb}
+\subsubsectionLayout{indent=0pt,color=aeb}
+\subsubDefaultDing{\texorpdfstring{$\bullet$}{\textrm\textbullet}}
+
+\widestNumber{0.00.}
+%\pagestyle{empty}
+%\parindent0pt\parskip\medskipamount
+
+\def\dps{$\mbox{$\mathfrak D$\kern-.3em\mbox{$\mathfrak P$}%
+   \kern-.6em \hbox{$\mathcal S$}}$}
+
+\newcount\fldCnt \fldCnt=0
+\def\incFldCnt{\global\advance\fldCnt1\relax}
+
+\frenchspacing
+
+\chngDocObjectTo{\newDO}{doc}
+\begin{docassembly}
+var titleOfManual="The xbmks package MANUAL";
+var manualfilename="Manual_BG_Print_xbmks.pdf";
+var manualtemplate="Manual_BG_Brown.pdf"; // Blue, Green, Brown
+var _pathToBlank="C:/Users/Public/Documents/ManualBGs/"+manualtemplate;
+var doc;
+var buildIt=false;
+if ( buildIt ) {
+    console.println("Creating new " + manualfilename + " file.");
+    doc = \appopenDoc({cPath: _pathToBlank, bHidden: true});
+    var _path=this.path;
+    var pos=_path.lastIndexOf("/");
+    _path=_path.substring(0,pos)+"/"+manualfilename;
+    \docSaveAs\newDO ({ cPath: _path });
+    doc.closeDoc();
+    doc = \appopenDoc({cPath: manualfilename, oDoc:this, bHidden: true});
+    f=doc.getField("ManualTitle");
+    f.value=titleOfManual;
+    doc.flattenPages();
+    \docSaveAs\newDO({ cPath: manualfilename });
+    doc.closeDoc();
+} else {
+    console.println("Using the current "+manualfilename+" file.");
+}
+var _path=this.path;
+var pos=_path.lastIndexOf("/");
+_path=_path.substring(0,pos)+"/"+manualfilename;
+\addWatermarkFromFile({
+    bOnTop:false,
+    bOnPrint:false,
+    cDIPath:_path
+});
+\executeSave();
+\end{docassembly}
+
+\begin{document}
+
+\maketitle
+
+\selectColors{linkColor=black}
+\tableofcontents
+\selectColors{linkColor=webgreen}
+
+\def\AcroT{Acro\!\TeX}\def\cAcroT{\textcolor{blue}{\AcroT}}
+\def\AcroEB{\AcroT{} eDucation Bundle}\def\cAcroEB{\textcolor{blue}{\AcroEB}}
+\def\AcroB{\AcroT{} Bundle}\def\cAcroB{\textcolor{blue}{\AcroB}}
+\def\bUrl{http://www.math.uakron.edu/~dpstory}
+
+\hypersetup{linktocpage}
+
+
+\section{Introduction}
+
+It has been more than a couple decades ago (counting back from 2018), I wrote
+two mathematics tutorials:
+\textsl{\href{http://www.math.uakron.edu/~dpstory/e-calculus.html}{eCalculus}}
+and
+\textsl{\mlhref{http://www.math.uakron.edu/~dpstory/mpt_home.html}{Algebra
+Review in Ten Lessons}}. The tutorials consisted of a number of lessons, each
+lesson was in a separate PDF. The bookmarks of each lesson contained the
+table of contents \emph{for the whole tutorial}. A student, in theory, could
+then jump from one lesson to another by selecting a topic of interest from
+the bookmarks. In the intervening years I have not seen a {\LaTeX} package
+for merging the table of contents of a set of PDFs and merge them in this
+each member of the set. The \pkg{xbmks} package attempts to reproduce this
+feature.
+
+\section{Required packages and options}
+
+The only requirement is the \pkg{hyperref} package; there is a negative
+requirement, the \pkg{bookmark} package is not supported. If it is detected
+within a \pkg{xbmks} document, normal non-cross-document bookmarks are
+produced.
+
+The only options are driver options, these are \opt{dvips} (\app{Acrobat
+Distiller} or \app{ps2pdf} can be used as the PDF creator), \opt{pdftex} (and
+\opt{luatex}, which is treated the same as \opt{pdftex}), and \opt{xetex}. Of
+course, this is a {\LaTeX} package, so the `la' versions of these applications
+need to be used. The package auto-detects \app{pdftex} and \app{xetex}, and
+\opt{dvips} is the default, so there is actually  no need to pass the driver
+option.
+
+\section{The preamble command \texorpdfstring{\protect\cs{xbmksetup}}{\textbackslash{xbmksetup}}}
+
+The only user command is \cs{xbmksetup}:
+\bVerb\def\1{\qquad}\takeMeasure{\1colors=\darg{intdoc=\ameta{color},extdoc=\ameta{color}},}%
+\begin{dCmd}[commandchars=!()]{\bxSize}
+\xbmksetup{%
+!1docbundle={!ameta(doc!SUB1),!ameta(doc!SUB2),...,!ameta(doc!SUB(n))},
+!1colors={intdoc=!ameta(color),extdoc=!ameta(color)},
+!1style={intbf,extbf,intit,extit}
+}
+\end{dCmd}
+\eVerb You have a collection of files (as specified by the \texttt{docbundle}
+key) that you want to merge the bookmarks together so they appear in all the
+files. However, the \cs{xbmksetup} only appears \textbf{in one and only one
+of the documents}, perhaps the one that you think of as the main file.\footnote{The main file is the first one
+listed in the value of the \texttt{docbundle} key.} The
+argument of \cs{xbmksetup} are written to the file \texttt{xbmks.cfg} and
+input back into each of the files as they are compiled. This is needed so
+that across all files in the document bundle, they all obey the very same
+options.
+
+\paragraph*{Description of the key-values}
+\begin{description}
+  \item[\texttt{docbundle}] (Required) The value of this key, \emph{which
+      is required to be nonempty}, is a comma-delimited list of base names
+      that are a part of this document collection, or bundle. For example,
+\begin{Verbatim}[xleftmargin=\amtIndent]
+docbundle={lesson1,lesson2,lesson3,lesson4}
+\end{Verbatim}
+The order the bookmarks are listed in each file of the document bundle is the same order
+the files are listed in \texttt{docbundle}; in this above example, the bookmarks for
+\texttt{lesson1} are listed first, than those of \texttt{lesson2}, and so on.
+
+The first document listed (\texttt{lesson1}) is where the \cs{xbmksetup}
+commend is placed. This file might be thought of as the `main' file.
+
+\textbf{\textcolor{red}{Important:}} It is extremely important to list the
+base names the using the same spelling and case as the \cs{jobname} command
+returns in each of the bundle collection. When each file is compiled,
+\pkg{xbmks} tries to determine which in the list of \texttt{docbundle}
+files is the one currently being compiled; it is necessary in order to
+create a internal jump or an external jump. If anything goes wrong, be sure
+to check the spelling of each file listed.
+
+  \item[\texttt{colors}] (Optional) For any given document in the bundle,
+      there are two types of links in the bookmarks, a link to an item in
+      the current (or internal) document, or a link to an external document
+      (within the bundle of documents).
+  \begin{itemize}
+      \item \texttt{intdoc=\ameta{color}}, where \ameta{color} is an rgb
+          color. This specifies the color of the link for an internal
+          jump within the current document. Specify the color
+          using the syntax \texttt{\darg{[rgb]{\ameta{r},\ameta{g},\ameta{b}}}};
+          for example,
+\begin{Verbatim}[xleftmargin=\amtIndent]
+colors={intdoc={[rgb]{0,.6,0}}
+\end{Verbatim}
+or, if the \pkg{xcolor} package is loaded, \emph{named colors} may be used.
+    \item\texttt{extdoc=\ameta{color}}, where \ameta{color} is an rgb
+        color. This specifies the color of the link for an external jump
+          to another member of the document bundle. Color specification is the
+          same as for \texttt{intdoc}:
+\begin{Verbatim}[xleftmargin=\amtIndent]
+colors={intdoc=red,extdoc=blue}
+\end{Verbatim}
+In the above example, we assume \pkg{xcolor} is loaded and specify the
+colors accordingly.
+
+\textbf{The default color.} If you declare \texttt{intdoc} (or
+\texttt{extdoc}) without a value, you get the default, which is the color
+key is not specified within the PDF document. The \texttt{color} key is
+optional, in which case, you get the default color. What is the default
+color? Well, its either white or black, depending on the \textsf{Display
+Theme}. The PDF viewer (\app{Acrobat} and \app{Acrobat Reader DC}
+automatically switch colors when the theme is changed).
+
+When you specify a color, be aware that what looks good in the \emph{light
+theme} may not be so visible in a \emph{dark theme}.
+  \end{itemize}
+  \item[\texttt{style}] (Optional) The Adobe PDF viewer applications also
+      support a bold and italics style. These can be specified for the
+      internal and external documents.
+  \begin{itemize}
+    \item Internal style (valueless) keys are \texttt{intbf} and \texttt{intit}; zero, one, or
+    two of these may be specified,
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
+style={intbf}         % !normalfont(bold font)
+style={intit}         % !normalfont(italics font)
+style={intbf,intit}   % !normalfont(bold and italics font)
+\end{Verbatim}
+  \item External style (valueless) keys are \texttt{extbf} and \texttt{extit}; zero, one, or
+    two of these may be specified,
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
+style={extbf}         % !normalfont(bold font)
+style={extit}         % !normalfont(italics font)
+style={extbf,extit}   % !normalfont(bold and italics font)
+\end{Verbatim}
+  \end{itemize}
+Of course, all these keys are specified or not, in the \texttt{style} key:
+\begin{Verbatim}[xleftmargin=\amtIndent]
+style={intbf,extit}
+\end{Verbatim}
+Here, we specify bold font for the current document and an italics for an
+internal document.
+\end{description}
+
+
+\newtopic\noindent\textbf{Point of personal preference.} After experimenting with
+various combinations of colors and styles with combinations of themes
+(light and dark) I prefer no color specified with bold font for the current
+document and plain font for any external document. I think it's important to
+make it clear in the bookmark panel which are internal and which are
+external. The bold font tells the same story independent of theme. Thus,\def\1{\qquad}%
+\begin{Verbatim}[xleftmargin=\amtIndent,commandchars=!()]
+\xbmksetup{%
+!1docbundle={!ameta(doc!SUB1),!ameta(doc!SUB2),...,!ameta(doc!SUB(n))},
+!1style={intbf}
+}
+\end{Verbatim}
+seems to be a reasonable choice of key-values.
+
+\section{Workflow}
+
+Given that you have a collection of files that are to contain a common set of
+bookmarks, how exactly do you do this? Basically, you treat them the same way
+as you would when you use the \pkg{xy-hyper} package, used for creating cross
+document links.
+
+\paragraph*{Steps to build the document bundle}\leavevmode
+
+\begin{enumerate}
+    \item Compile each document at least twice without deleting any
+        auxiliary files, more if you are using \pkg{xr-hyper}; in
+        particular, without deleting any \textsf{OUT} outline files created
+        by \pkg{hyperref}.
+
+        In terms of order of compilation, compile the main file first (the
+        one that contains the \cs{xbmksetup} command); this will write the
+        \texttt{xbmks.cfg} file and it will be available to the other files
+        in the bundle as you compile them.
+
+    \item All files have been compiled twice, now compile them one more
+        time so they can input the updated \textsf{OUT} files of the
+        collection and the \texttt{xbmks.cfg} configuration file that
+        contains your setup options for the whole collection.
+    \item If you are using \app{pdflatex}, \app{lualatex}, or
+        \app{xelatex}, you are done; otherwise, covert each DVI file to PS
+        using \app{dvips}. Finally, convert each PS file in the collection
+        to PDF using \app{Acrobat Distiller} or \app{ps2pdf}.
+    \item Delete all auxiliary file, including \texttt{xbmks.cfg} if you wish.
+\end{enumerate}
+If you are on \app{Windows OS}, you can use the
+\app{\href{http://www.acrotex.net/builders/}{AeB Builder}}
+utility.\footnote{\url{http://www.acrotex.net/builders/}} In that utility, you would select the
+\app{External cross-references} option, found on the user-interface.
+
+\paragraph*{Sample files.} The demonstration files are found in the \texttt{examples} folder. The
+\pkg{xcolor} package is used, otherwise, the packages used are minimal.
+
+
+\newtopic\noindent Now, back to my retirement. \dps
+
+
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/xbmks/docs/xbmksman.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc1.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc1.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc1.pdf	2018-06-11 22:21:12 UTC (rev 47990)
+++ trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc1.pdf	2018-06-11 22:22:36 UTC (rev 47991)

Property changes on: trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc1.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc1.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc1.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc1.tex	2018-06-11 22:22:36 UTC (rev 47991)
@@ -0,0 +1,43 @@
+\documentclass{article}
+\usepackage{xcolor}
+\usepackage[bookmarksopen]{hyperref}
+\usepackage{xbmks}
+
+% the xr-hyper package may also be used if you have
+% cross document links within the body of the doc
+%\usepackage{xr-hyper}
+%\externaldocument[m-]{master}
+%\externaldocument[d2-]{doc2}
+
+
+
+\begin{document}
+
+\section{Doc 1: Sec 1}\label{sec1}
+
+Some content goes here.
+
+\newpage
+
+\subsection{Doc 1: subSec 1}
+
+Some content goes here.
+
+\newpage
+
+\subsection{Doc 1: subSec 2}
+
+Some content goes here.
+
+\newpage
+
+\section{Doc 1: Sec 2}
+
+Some content goes here.: go to Section~\ref{sec1}
+
+\newpage
+
+\subsection{Doc 1: subSec 1}
+
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc1.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc2.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc2.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc2.pdf	2018-06-11 22:21:12 UTC (rev 47990)
+++ trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc2.pdf	2018-06-11 22:22:36 UTC (rev 47991)

Property changes on: trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc2.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc2.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc2.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc2.tex	2018-06-11 22:22:36 UTC (rev 47991)
@@ -0,0 +1,41 @@
+\documentclass{article}
+\usepackage{xcolor}
+\usepackage[bookmarksopen]{hyperref}
+\usepackage{xbmks}
+
+% the xr-hyper package may also be used if you have
+% cross document links within the body of the doc
+%\usepackage{xr-hyper}
+%\externaldocument[m-]{master}
+%\externaldocument[d1-]{doc1}
+
+\begin{document}
+
+\section{Doc 2: Sec 1}
+
+Some content goes here.
+
+\newpage
+
+\subsection{Doc 2: subSec 1}
+
+Some content goes here.
+
+\section{Doc 2: Sec 2}
+
+\subsection{Doc 2: subSec 1}
+
+Some content goes here.
+
+\newpage
+
+\subsection{Doc 2: subSec 2}
+
+Some content goes here.
+
+\subsection{Doc 2: subSec 3}
+
+Some content goes here.
+
+
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/xbmks/examples/doc2.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/xbmks/examples/master.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/xbmks/examples/master.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/xbmks/examples/master.pdf	2018-06-11 22:21:12 UTC (rev 47990)
+++ trunk/Master/texmf-dist/doc/latex/xbmks/examples/master.pdf	2018-06-11 22:22:36 UTC (rev 47991)

Property changes on: trunk/Master/texmf-dist/doc/latex/xbmks/examples/master.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/xbmks/examples/master.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/xbmks/examples/master.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/xbmks/examples/master.tex	2018-06-11 22:22:36 UTC (rev 47991)
@@ -0,0 +1,57 @@
+\documentclass{article}
+\usepackage{xcolor}
+\usepackage[bookmarksopen]{hyperref}
+\usepackage{xbmks}
+
+% the xr-hyper package may also be used if you have
+% cross document links within the body of the doc
+%\usepackage{xr-hyper}
+%\externaldocument[d1-]{doc1}
+%\externaldocument[d2-]{doc2}
+
+\title{On merging bookmarks for several documents}
+\author{D. P. Story}
+
+% The \xbmksetup command is placed in only 
+% one of the collection. It is written to xbmks.cfg
+% in input by the other files to obtain uniformity
+% of option choices.
+\xbmksetup{%
+  docbundle={master,doc1,doc2},
+%  colors={intdoc=red,extdoc},
+  style={intbf}
+}
+
+\begin{document}
+
+\maketitle
+
+\section{Master One}
+
+Some content goes here.
+
+\subsection{Master One: subSec 1}
+
+Some content goes here.
+
+\newpage
+
+
+\section{Master Two}
+
+Some content goes here.
+
+
+\subsection{Master Two: subSec 1}
+
+Some content goes here.
+
+\newpage
+
+\subsection{Master Two: subSec 2}
+
+Some content goes here.
+
+
+\end{document}
+


Property changes on: trunk/Master/texmf-dist/doc/latex/xbmks/examples/master.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/xbmks/xbmks.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/xbmks/xbmks.dtx	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/xbmks/xbmks.dtx	2018-06-11 22:22:36 UTC (rev 47991)
@@ -0,0 +1,524 @@
+%\iffalse
+% makeindex -s gglo.ist -o xbmks.gls xbmks.glo
+% makeindex -s gind.ist -o xbmks.ind xbmks.idx
+%<*copyright>
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% xbmks.sty package,                              %%
+%% Copyright (C) 2016--2018                              %%
+%%   dpstory at uakron.edu                                  %%
+%%                                                       %%
+%% This program can redistributed and/or modified under  %%
+%% the terms of the LaTeX Project Public License         %%
+%% Distributed from CTAN archives in directory           %%
+%% macros/latex/base/lppl.txt; either version 1.2 of the %%
+%% License, or (at your option) any later version.       %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%</copyright>
+%<package>\NeedsTeXFormat{LaTeX2e}[1997/12/01]
+%<package>\ProvidesPackage{xbmks}
+%<package> [2018/06/11 v1.0 xbmks: Cross-document bookmarks (dps)]
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage[colorlinks,hyperindex=false]{hyperref}
+\usepackage{fancyvrb,array,calc}
+%\pdfstringdefDisableCommands{\let\\\textbackslash}
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\bgroup\ttfamily
+\gdef\brpr#1{\char123\relax#1\char125\relax}\egroup
+\let\darg\brpr
+\let\env\texttt
+\let\opt\texttt
+\let\pkg\textsf
+\let\app\textsf
+\def\visispace{\symbol{32}}
+%\def\hardspace{{\fontfamily{cmtt}\selectfont\symbol{32}}}
+\def\ameta#1{\ensuremath{\langle\textit{\texttt{#1}}\rangle}}
+\def\meta#1{\textsl{\texttt{#1}}}
+\def\SUB#1{\ensuremath{{}_{\mbox{\scriptsize\ttfamily#1}}}}
+\def\cs#1{\texttt{\bslash#1}}
+\DeclareRobustCommand{\tmspace}[3]{%
+  \ifmmode\mskip#1#2\else\kern#1#3\fi\relax}
+\renewcommand{\,}{\tmspace+\thinmuskip{.1667em}}
+\let\thinspace\,
+\renewcommand{\!}{\tmspace-\thinmuskip{.1667em}}
+\let\negthinspace\!
+\renewcommand{\:}{\tmspace+\medmuskip{.2222em}}
+\let\medspace\:
+\newcommand{\negmedspace}{\tmspace-\medmuskip{.2222em}}
+\renewcommand{\;}{\tmspace+\thickmuskip{.2777em}}
+\let\thickspace\;
+\newcommand{\negthickspace}{\tmspace-\thickmuskip{.2777em}}
+\makeatletter
+\renewcommand{\paragraph}
+    {\@startsection{paragraph}{4}{0pt}{6pt}{-3pt}
+    {\normalfont\normalsize\bfseries}}
+\renewenvironment{quote}[1][]
+   {\def\@rgi{#1}\ifx\@rgi\@empty
+    \let\rghtm\@empty\else\def\rghtm{\rightmargin\leftmargin}\fi
+    \list{}{\rghtm} %{\rightmargin\leftmargin}%
+    \item\relax}
+   {\endlist}
+\makeatother
+\InputIfFileExists{aebdocfmt.def}{\PackageInfo{xbmks}{Inputting aebdocfmt.def}}
+    {\def\IndexOpt{\DescribeMacro}\def\IndexKey{\DescribeMacro}\let\setupFullwidth\relax
+     \PackageInfo{xbmks}{aebdocfmt.def cannot be found}}
+\begin{document}
+\def\CMD#1{\textbackslash#1}
+  \GetFileInfo{xbmks.sty}
+  \title{\textsf{xbmks}: Cross-document bookmarks}
+  \author{D. P. Story\\
+    Email: \texttt{dpstory at acrotex.net}}
+  \date{processed \today}
+  \maketitle
+  \tableofcontents
+  \let\Email\texttt
+  \DocInput{xbmks.dtx}
+\IfFileExists{\jobname.ind}{\newpage\setupFullwidth\par\PrintIndex}{\paragraph*{Index} The index goes here.\\Execute
+    \texttt{makeindex -s gind.ist -o xbmks.ind xbmks.idx}\\on the command line and recompile
+    \texttt{xbmks.dtx}.}
+\IfFileExists{\jobname.gls}{\PrintChanges}{\paragraph*{Change History} The list of changes goes here.\\Execute
+    \texttt{makeindex -s gglo.ist -o xbmks.gls xbmks.glo}\\on the command line and recompile
+    \texttt{xbmks.dtx}.}
+\end{document}
+%</driver>
+% \fi
+% \MakeShortVerb{|}
+%
+% \InputIfFileExists{aebdonotindex.def}{\PackageInfo{web}{Inputting aebdonotindex.def}}
+%    {\PackageInfo{web}{cannot find aebdonotindex.def}}
+%
+%    \begin{macrocode}
+% Begin package
+%<*package>
+\RequirePackage{xkeyval}
+\RequirePackage{ifpdf}[2006/02/20]
+\RequirePackage{ifxetex}[2006/08/21]
+%    \end{macrocode}
+%
+%\section{Description}
+% More than a couple decades ago (counting back from 2018), I wrote two mathematics tutorials: \textsl{\href{http://www.math.uakron.edu/~dpstory/e-calculus.html}{eCalculus}} and
+% \textsl{\href{http://www.math.uakron.edu/~dpstory/mpt_home.html}{Algebra Review in Ten Lessons}}. The tutorials consisted of a number of lessons, each in a separate PDF.
+% The bookmarks of each lessons contained the table of contents for the whole tutorial. A student, in theory, could then
+% jump from one lesson to another by selecting an entry of interest from the bookmarks. In the intervening years I have not seen
+% a {\LaTeX} package for merging the table of contents of a set of PDFs and merge them in this each member of the
+% set. This package attempts to do just that.
+%
+% \section{Drivers and options}
+% We support the drivers \app{dvips} (and \app{dvipsone}), \app{pdflatex}, \app{lualatex}, and \app{xelatex}; these
+% options are then named \opt{dvipsone}, \opt{dvips}, \opt{pdftex}, \opt{luatex}, and \opt{xetex}.
+%    \begin{macrocode}
+\def\xbmk at driver{bmks-pdfmark.def}
+\DeclareOptionX{dvipsone}{\def\xbmk at driver{bmks-pdfmark.def}}
+\DeclareOptionX{dvips}{\def\xbmk at driver{xbmks-pdfmark.def}}
+\DeclareOptionX{pdftex}{\def\xbmk at driver{xbmks-pdftex.def}}
+\DeclareOptionX{luatex}{\def\xbmk at driver{xbmks-pdftex.def}}
+\DeclareOptionX{xetex}{\def\xbmk at driver{xbmks-xetex.def}}
+%\AtEndOfPackage{\InputIfFileExists{\xbmk at driver}{}{}}
+%    \end{macrocode}
+%    \section{Process the options}
+%    \begin{macrocode}
+\ifpdf\ExecuteOptionsX{pdftex}\else
+    \ifxetex\ExecuteOptionsX{xetex}\else
+        \let\ExecuteOptions at SAVE\ExecuteOptions
+        \let\ExecuteOptions\ExecuteOptionsX
+        \InputIfFileExists{web.cfg}{}
+        {\@ifundefined{l at tex@@@@driver}{\ExecuteOptionsX{dvips}}
+            {\ExecuteOptionsX{dvipsone}}}%
+        \let\ExecuteOptions\ExecuteOptions at SAVE
+    \fi\fi
+\ProcessOptionsX
+%    \end{macrocode}
+% \section{Requirements}
+% The minimal requirement is \pkg{hyperref} and its built-in bookmark system. It is important to note that
+% the \pkg{bookmark} package is not supported.
+%    \begin{macrocode}
+\RequirePackage{hyperref}
+%    \end{macrocode}
+%    \begin{macro}{\xbmksetup}
+%    Set the cross-document options:
+%\begin{quote}\ttfamily\obeylines
+%\string\xbmksetup\darg{%
+%\qquad docbundle=\darg{\ameta{doc\SUB1},\ameta{doc\SUB2},...,\ameta{doc\SUB{n}}},
+%\qquad colors=\darg{intdoc=\ameta{color},extdoc=\ameta{color}},
+%\qquad style=\darg{intbf,extbf,intit,extit}
+%}
+%\end{quote}
+%This command must appear in one and only one of the document bundle, perhaps one
+%of the documents you are calling the `main file'. It writes
+%the key-values to the file \texttt{xbmks.cfg} which is then read back in by the other
+%members of the document bundle, as specified by the \texttt{dobundle} key. The base names
+%of the document bundle must match the name given to it by \cs{jobname}, exact spelling, case
+%sensitive.
+%    \begin{macrocode}
+\define at key{xbmksetup}{docbundle}[]{\def\x at bmks@docs{#1}}
+\let\x at bmks@docs\@empty
+\define at key{xbmksetup}{colors}[]{\def\x at bmks@colors{#1}}
+\let\x at bmks@colors\@empty
+\define at key{xbmksetup}{style}[]{\def\x at bmks@style{#1}}
+\let\x at bmks@style\@empty
+\define at key{xbmk at colors}{intdoc}[]{%
+  \HyColor at BookmarkColor{#1}{\xbmks at intdoc}{xbmks}{intdoc}%
+  \ifx\xbmks at intdoc\@empty\else
+  \edef\xbmks at intdoc{/C [\xbmks at intdoc]}\fi
+}
+\let\xbmks at intdoc\@empty
+\define at key{xbmk at colors}{extdoc}[]{%
+  \HyColor at BookmarkColor{#1}{\xbmks at extdoc}{xbmks}{extdoc}%
+  \ifx\xbmks at extdoc\@empty\else
+  \edef\xbmks at extdoc{/C [\xbmks at extdoc]}\fi
+}
+\let\xbmks at extdoc\@empty
+\let\xbmks at Yes=y
+\let\xbmks at No=n
+\define at boolkey{xbmk at style}{intbf}[true]{} %\ifKV at xbmk@style at intbf
+\define at boolkey{xbmk at style}{extbf}[true]{}
+\define at boolkey{xbmk at style}{intit}[true]{}
+\define at boolkey{xbmk at style}{extit}[true]{}
+\newcommand{\xbmksetup}[1]{\write at xbmks@cfg{#1}}
+\def\write at xbmks@cfg#1{%
+  \newwrite\xbmks at setup \immediate\openout \xbmks at setup xbmks.cfg
+  \set at display@protect
+  \immediate\write\xbmks at setup{\protect\xbmksetupi{#1}}
+  \set at typeset@protect
+  \immediate\closeout\xbmks at setup
+}
+\newcommand{\xbmksetupi}[1]{%
+  \setkeys{xbmksetup}{#1}%
+  \ifx\x at bmks@docs\@empty
+    \PackageWarning{xbmks}{The docbundle key is empty,\MessageBreak
+    this key must have a value for cross-document bookmarks\MessageBreak
+    to be generated}\else
+    \edef\@exp at for{\noexpand\docbundle{\x at bmks@docs}}\expandafter
+    \@exp at for\fi
+    \edef\@exp at keys{\noexpand
+      \setkeys{xbmk at colors}{\x at bmks@colors}}\@exp at keys
+    \edef\@exp at keys{\noexpand
+      \setkeys{xbmk at style}{\x at bmks@style}}\@exp at keys
+      \def\xbmk at intF{}%
+      \ifKV at xbmk@style at intit
+        \ifKV at xbmk@style at intbf
+          \def\xbmk at intF{/F 3}%
+        \else
+          \def\xbmk at intF{/F 1}%
+        \fi
+      \else
+        \ifKV at xbmk@style at intbf
+          \def\xbmk at intF{/F 2}%
+        \fi
+      \fi
+      \def\xbmk at extF{}%
+      \ifKV at xbmk@style at extit
+        \ifKV at xbmk@style at extbf
+          \def\xbmk at extF{/F 3}%
+        \else
+          \def\xbmk at extF{/F 1}%
+        \fi
+      \else
+        \ifKV at xbmk@style at extbf
+          \def\xbmk at extF{/F 2}%
+        \fi
+      \fi
+}
+%    \end{macrocode}
+%    \end{macro}
+%    \begin{macro}{\docbundle}
+%    is a comma-delimited list of document base names:
+%\begin{quote}\ttfamily\obeylines
+%\string\docbundle\darg{\ameta{doc\SUB1},\ameta{doc\SUB2},...,\ameta{doc\SUB{n}}}
+%\end{quote}
+%This command is called internally by \cs{xbmksetup}.
+%    \begin{macrocode}
+\def\xbmk at csarg#1#2{\expandafter#1\csname#2\endcsname}
+\xdef\xbmk at cnt{0}
+\newcommand{\docbundle}[1]{\bgroup
+  \def\thisDoc{\jobname}\count\z@=0 %
+  \edef\@tmpexp{\noexpand\@for\noexpand\@arg:=#1}%
+  \@tmpexp\do{%
+    \advance\count\z@ by 1\relax
+    \edef\@tmpexp{\noexpand\xbmk at recordDoc{\@arg}}\@tmpexp
+  }%
+  \xdef\xbmk at cnt{\the\count\z@}\egroup
+}
+\newcommand{\xbmk at recordDoc}[1]{%
+  \xbmk at csarg\xdef{xbmk at doc\the\count\z@}{#1}}
+%    \end{macrocode}
+%    \end{macro}
+%    \begin{macrocode}
+% End package
+%</package>
+%<*pdfmark>
+%    \end{macrocode}
+%    \section{Driver dependent code}
+%    \subsection{The pdfmark driver}
+%    We redefine/modify the \cs{ReadBookmarks} command of \pkg{hyperref},
+%    this definition is driver dependent.
+%    \begin{macrocode}
+\def\ReadBookmarks{%
+  \pdf at ifdraftmode{}{%
+    \begingroup
+      \def\calc at bm@number##1{%
+      \@tempcnta=\check at bm@number{##1}\relax
+      \advance\@tempcnta by 1 %
+      \expandafter\edef\csname B_##1\endcsname{\the\@tempcnta}%
+      }%
+      \def\do##1{%
+        \ifnum\catcode`##1=\active
+          \@makeother##1%
+        \else
+          \ifnum\catcode`##1=6 %
+            \@makeother##1%
+          \fi
+        \fi
+      }%
+      \dospecials
+      \Hy at safe@activestrue
+      \escapechar=`\\%
+      \ifx\WriteBookmarks\relax
+        \global\let\WriteBookmarks\relax
+      \fi
+      \begingroup
+        \def\WriteBookmarks{0}%
+        \count\z@=0\relax
+        \edef\xbmk at J{\jobname}%
+        \@whilenum \count\z@<\xbmk at cnt\relax\do{%
+          \advance\count\z@ by 1 %
+          \edef\xbmk at thisdoc{xbmk at doc\the\count\z@}%
+          \edef\xbmk at filename{\@nameuse{\xbmk at thisdoc}}%
+          \@onelevel at sanitize\xbmk at filename
+          \bgroup
+          \def\@@BOOKMARK[##1][##2]##3##4##5{%
+            \calc at bm@number{##5}%
+          }%
+          \InputIfFileExists{\xbmk at filename.out}{}{}%
+          \def\@@BOOKMARK[##1][##2]##3##4##5{%
+            \def\Hy at temp{##4}%
+            \ifx\xbmk at J\xbmk at filename
+              \pdfmark{%
+                pdfmark=/OUT,%
+                Count={##2\check at bm@number{##3}},%
+                Raw={\xbmks at intdoc\xbmk at intF},%
+                Dest={##3},%
+                Title=\expandafter\strip at prefix\meaning\Hy at temp
+              }%
+            \else
+              \pdfmark{%
+                pdfmark=/OUT,%
+                Count={##2\check at bm@number{##3}},%
+                Raw={\xbmks at extdoc\xbmk at extF},%
+                Action=/GoToR,%
+                File={\xbmk at filename.pdf},%
+                Dest={##3},%
+                Title=\expandafter\strip at prefix\meaning\Hy at temp
+              }%
+            \fi
+          }%
+          \InputIfFileExists{\xbmk at filename.out}{}{}%
+          \egroup
+        }% \@whilenum
+      \endgroup
+    \endgroup
+  }%
+  \ifx\WriteBookmarks\relax\else
+    \if at filesw
+      \newwrite\@outlinefile
+      \Hy at OutlineRerunCheck
+     \immediate\openout\@outlinefile=\jobname.out\relax
+      \ifHy at typexml
+        \immediate\write\@outlinefile{<relaxxml>\relax}%
+      \fi
+    \fi
+  \fi
+}
+%</pdfmark>
+%    \end{macrocode}
+%    \subsection{Code for pdftex/luatex driver}
+%    We redefine/modify the \cs{ReadBookmarks} command of \pkg{hyperref},
+%    this definition is driver dependent.
+%    \begin{macrocode}
+%<*pdftex>
+\def\ReadBookmarks{%
+  \pdf at ifdraftmode{}{%
+    \begingroup
+    \def\calc at bm@number##1{%
+      \@tempcnta=\check at bm@number{##1}\relax
+      \advance\@tempcnta by 1 %
+      \expandafter\edef\csname B_##1\endcsname{\the\@tempcnta}%
+    }%
+    \def\Hy at OutlineName##1##2##3##4{\def\@rgi{##1}%
+      \expandafter\pdfoutline\ifx\@rgi\@empty\else
+      attr {##1} \fi
+      user {##2} count##3{##4}%
+    %  goto name{#2} count#3{#4}%
+    }%
+    \def\do##1{%
+      \ifnum\catcode`##1=\active
+        \@makeother##1%
+      \else
+        \ifnum\catcode`##1=6 %
+          \@makeother##1%
+        \fi
+      \fi
+    }%
+    \dospecials
+    \Hy at safe@activestrue
+    \escapechar=`\\%
+    \ifx\WriteBookmarks\relax
+      \global\let\WriteBookmarks\relax
+    \fi
+    \begingroup
+    \def\WriteBookmarks{0}%
+    \count\z@=0\relax
+%    \toks0=\expandafter{\jobname}%
+%    \edef\xbmk at J{\the\toks0}%
+    \edef\xbmk at J{\jobname}%
+    \@whilenum \count\z@<\xbmk at cnt\relax\do{%
+      \advance\count\z@ by 1 %
+      \edef\xbmk at thisdoc{xbmk at doc\the\count\z@}%
+      \edef\xbmk at filename{\@nameuse{\xbmk at thisdoc}}%
+      \@onelevel at sanitize\xbmk at filename
+      \bgroup
+      \gdef\@@BOOKMARK[##1][##2]##3##4##5{%
+        \calc at bm@number{##5}%
+      }%
+      \InputIfFileExists{\xbmk at filename.out}{}{}%
+      \gdef\@@BOOKMARK[##1][##2]##3##4##5{%
+        \def\Hy at temp{##4}%
+        \Hy at pstringdef\Hy at pstringName{\HyperDestNameFilter{##3}}%
+        \ifx\xbmk at J\xbmk at filename
+          \Hy at OutlineName{\xbmks at intdoc\xbmk at intF}{<</S/GoTo%
+            /D(\Hy at pstringName)>>}{%
+            ##2\check at bm@number{\Hy at pstringName}%
+          }{%
+            \expandafter\strip at prefix\meaning\Hy at temp
+          }%
+        \else
+          \Hy at OutlineName{\xbmks at extdoc\xbmk at extF}{<</S/GoToR%
+            /F(\xbmk at filename.pdf)/D(\Hy at pstringName)>>}{%
+            ##2\check at bm@number{##3}%
+          }{%
+            \expandafter\strip at prefix\meaning\Hy at temp
+          }%
+        \fi
+      }% bookmark
+      \InputIfFileExists{\xbmk at filename.out}{}{}%
+      \egroup
+    } % \@whilenum
+    \endgroup
+  }%
+  \ifx\WriteBookmarks\relax
+  \else
+    \if at filesw
+      \newwrite\@outlinefile
+      \Hy at OutlineRerunCheck
+      \immediate\openout\@outlinefile=\jobname.out\relax
+      \ifHy at typexml
+        \immediate\write\@outlinefile{<relaxxml>\relax}%
+      \fi
+    \fi
+  \fi
+}
+%</pdftex>
+%<*xetex>
+%    \end{macrocode}
+%    \subsection{Code for xetex driver}
+%    We redefine/modify the \cs{ReadBookmarks} command of \pkg{hyperref},
+%    this definition is driver dependent.
+%    \begin{macrocode}
+\def\ReadBookmarks{%
+  \pdf at ifdraftmode{}{%
+    \begingroup
+      \def\calc at bm@number##1{%
+        \@tempcnta=\check at bm@number{##1}\relax
+        \advance\@tempcnta by 1 %
+        \expandafter\edef\csname B_##1\endcsname{\the\@tempcnta}%
+      }%
+      \def\do##1{%
+        \ifnum\catcode`##1=\active
+          \@makeother##1%
+        \else
+          \ifnum\catcode`##1=6 %
+            \@makeother##1%
+          \fi
+        \fi
+      }%
+      \dospecials
+      \Hy at safe@activestrue
+      \escapechar=`\\%
+      \ifx\WriteBookmarks\relax
+        \global\let\WriteBookmarks\relax
+      \fi
+      \begingroup
+        \def\WriteBookmarks{0}%
+        \count\z@=0\relax
+        \edef\xbmk at J{\jobname}%
+        \@whilenum \count\z@<\xbmk at cnt\relax\do{%
+          \advance\count\z@ by 1 %
+          \edef\xbmk at thisdoc{xbmk at doc\the\count\z@}%
+          \edef\xbmk at filename{\@nameuse{\xbmk at thisdoc}}%
+          \@onelevel at sanitize\xbmk at filename
+          \bgroup
+          \def\@@BOOKMARK[##1][##2]##3##4##5{%
+            \calc at bm@number{##5}%
+          }%
+          \InputIfFileExists{\xbmk at filename.out}{}{}%
+          \def\@@BOOKMARK[##1][##2]##3##4##5{%
+            \def\Hy at temp{##4}%
+            \Hy at pstringdef\Hy at pstringName{\HyperDestNameFilter{##3}}%
+            \@pdfm at mark{%
+              outline \ifHy at DvipdfmxOutlineOpen
+                      [%
+                      \ifnum##21>\z@
+                      \else
+                        -%
+                      \fi
+                      ] %
+                    \fi
+              ##1<<%
+                /Title(\expandafter\strip at prefix\meaning\Hy at temp)%
+                \ifx\xbmk at J\xbmk at filename
+                  /A<<%
+                    /S/GoTo%
+                    /D(\Hy at pstringName)%
+                  >>%
+                  \xbmks at intdoc\xbmk at intF
+                \else
+                  /A<<%
+                    /S/GoToR/F(\xbmk at filename.pdf)%
+                    /D(\Hy at pstringName)%
+                  >>%
+                  \xbmks at extdoc\xbmk at extF
+                \fi
+              >>%
+            }% \@pdfm at mark
+          }% bookmark
+          \InputIfFileExists{\xbmk at filename.out}{}{}%
+          \egroup
+        }% \@whilenum
+      \endgroup
+    \endgroup
+  }%
+  \ifx\WriteBookmarks\relax
+  \else
+    \if at filesw
+      \newwrite\@outlinefile
+      \Hy at OutlineRerunCheck
+     \immediate\openout\@outlinefile=\jobname.out\relax
+      \ifHy at typexml
+        \immediate\write\@outlinefile{<relaxxml>\relax}%
+      \fi
+    \fi
+  \fi
+}
+%</xetex>
+%<*package>
+\InputIfFileExists{xbmks.cfg}{}{}
+\@ifpackageloaded{bookmark}{\PackageWarningNoLine{xbmks}{The
+  bookmark package is not supported;\MessageBreak
+  this package does nothing, as a result}}
+{\InputIfFileExists{\xbmk at driver}{}{}}
+
+%</package>
+%    \end{macrocode}
+%    \Finale


Property changes on: trunk/Master/texmf-dist/source/latex/xbmks/xbmks.dtx
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/source/latex/xbmks/xbmks.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/xbmks/xbmks.ins	                        (rev 0)
+++ trunk/Master/texmf-dist/source/latex/xbmks/xbmks.ins	2018-06-11 22:22:36 UTC (rev 47991)
@@ -0,0 +1,62 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+%% Copyright 2018 D. P. Story
+%% -------------------------------------------
+%%
+%% It may be distributed under the conditions of the LaTeX Project Public
+%% License, either version 1.2 of this license or (at your option) any
+%% later version.  The latest version of this license is in
+%%    http://www.latex-project.org/lppl.txt
+%% and version 1.2 or later is part of all distributions of LaTeX
+%% version 1999/12/01 or later.
+%%
+%% --------------- start of docstrip commands ------------------
+%%
+\def\filedate{2018/06/08}
+\def\batchfile{xbmks.ins}
+
+\input docstrip
+\ifx\generate\undefined
+  \Msg{**********************************************}
+  \Msg{*}
+  \Msg{* This installation requires docstrip}
+  \Msg{* version 2.4 or later.}
+  \Msg{*}
+  \Msg{* An older version of docstrip has been input}
+  \Msg{*}
+  \Msg{**********************************************}
+  \errhelp{Move or rename old docstrip.tex and get a newer one.}
+  \errmessage{Old docstrip in input path}
+  \batchmode
+  \csname @@end\endcsname\end
+\fi
+
+\keepsilent
+\askforoverwritefalse
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\preamble
+\endpreamble
+
+\generate
+{%
+    \file{xbmks.sty}{\from{xbmks.dtx}{copyright,package}}
+    \file{xbmks-pdfmark.def}{\from{xbmks.dtx}{copyright,pdfmark}}
+    \file{xbmks-pdftex.def}{\from{xbmks.dtx}{copyright,pdftex}}
+    \file{xbmks-luatex.def}{\from{xbmks.dtx}{copyright,luatex}}
+    \file{xbmks-xetex.def}{\from{xbmks.dtx}{copyright,xetex}}
+}
+
+\Msg{***************************************************************}
+\Msg{*}
+\Msg{* \space To finish the installation you have to copy the files }
+\Msg{*}
+\Msg{* \space *.sty, *.cfg and *.def into a directory searched by TeX}
+\Msg{*}
+\Msg{***************************************************************}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput

Added: trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-luatex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-luatex.def	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-luatex.def	2018-06-11 22:22:36 UTC (rev 47991)
@@ -0,0 +1,22 @@
+%%
+%% This is file `xbmks-luatex.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xbmks.dtx  (with options: `copyright,luatex')
+%% 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% xbmks.sty package,                              %%
+%% Copyright (C) 2016--2018                              %%
+%%   dpstory at uakron.edu                                  %%
+%%                                                       %%
+%% This program can redistributed and/or modified under  %%
+%% the terms of the LaTeX Project Public License         %%
+%% Distributed from CTAN archives in directory           %%
+%% macros/latex/base/lppl.txt; either version 1.2 of the %%
+%% License, or (at your option) any later version.       %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%
+%% End of file `xbmks-luatex.def'.


Property changes on: trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-luatex.def
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-pdfmark.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-pdfmark.def	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-pdfmark.def	2018-06-11 22:22:36 UTC (rev 47991)
@@ -0,0 +1,98 @@
+%%
+%% This is file `xbmks-pdfmark.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xbmks.dtx  (with options: `copyright,pdfmark')
+%% 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% xbmks.sty package,                              %%
+%% Copyright (C) 2016--2018                              %%
+%%   dpstory at uakron.edu                                  %%
+%%                                                       %%
+%% This program can redistributed and/or modified under  %%
+%% the terms of the LaTeX Project Public License         %%
+%% Distributed from CTAN archives in directory           %%
+%% macros/latex/base/lppl.txt; either version 1.2 of the %%
+%% License, or (at your option) any later version.       %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\ReadBookmarks{%
+  \pdf at ifdraftmode{}{%
+    \begingroup
+      \def\calc at bm@number##1{%
+      \@tempcnta=\check at bm@number{##1}\relax
+      \advance\@tempcnta by 1 %
+      \expandafter\edef\csname B_##1\endcsname{\the\@tempcnta}%
+      }%
+      \def\do##1{%
+        \ifnum\catcode`##1=\active
+          \@makeother##1%
+        \else
+          \ifnum\catcode`##1=6 %
+            \@makeother##1%
+          \fi
+        \fi
+      }%
+      \dospecials
+      \Hy at safe@activestrue
+      \escapechar=`\\%
+      \ifx\WriteBookmarks\relax
+        \global\let\WriteBookmarks\relax
+      \fi
+      \begingroup
+        \def\WriteBookmarks{0}%
+        \count\z@=0\relax
+        \edef\xbmk at J{\jobname}%
+        \@whilenum \count\z@<\xbmk at cnt\relax\do{%
+          \advance\count\z@ by 1 %
+          \edef\xbmk at thisdoc{xbmk at doc\the\count\z@}%
+          \edef\xbmk at filename{\@nameuse{\xbmk at thisdoc}}%
+          \@onelevel at sanitize\xbmk at filename
+          \bgroup
+          \def\@@BOOKMARK[##1][##2]##3##4##5{%
+            \calc at bm@number{##5}%
+          }%
+          \InputIfFileExists{\xbmk at filename.out}{}{}%
+          \def\@@BOOKMARK[##1][##2]##3##4##5{%
+            \def\Hy at temp{##4}%
+            \ifx\xbmk at J\xbmk at filename
+              \pdfmark{%
+                pdfmark=/OUT,%
+                Count={##2\check at bm@number{##3}},%
+                Raw={\xbmks at intdoc\xbmk at intF},%
+                Dest={##3},%
+                Title=\expandafter\strip at prefix\meaning\Hy at temp
+              }%
+            \else
+              \pdfmark{%
+                pdfmark=/OUT,%
+                Count={##2\check at bm@number{##3}},%
+                Raw={\xbmks at extdoc\xbmk at extF},%
+                Action=/GoToR,%
+                File={\xbmk at filename.pdf},%
+                Dest={##3},%
+                Title=\expandafter\strip at prefix\meaning\Hy at temp
+              }%
+            \fi
+          }%
+          \InputIfFileExists{\xbmk at filename.out}{}{}%
+          \egroup
+        }% \@whilenum
+      \endgroup
+    \endgroup
+  }%
+  \ifx\WriteBookmarks\relax\else
+    \if at filesw
+      \newwrite\@outlinefile
+      \Hy at OutlineRerunCheck
+     \immediate\openout\@outlinefile=\jobname.out\relax
+      \ifHy at typexml
+        \immediate\write\@outlinefile{<relaxxml>\relax}%
+      \fi
+    \fi
+  \fi
+}
+\endinput
+%%
+%% End of file `xbmks-pdfmark.def'.


Property changes on: trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-pdfmark.def
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-pdftex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-pdftex.def	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-pdftex.def	2018-06-11 22:22:36 UTC (rev 47991)
@@ -0,0 +1,101 @@
+%%
+%% This is file `xbmks-pdftex.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xbmks.dtx  (with options: `copyright,pdftex')
+%% 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% xbmks.sty package,                              %%
+%% Copyright (C) 2016--2018                              %%
+%%   dpstory at uakron.edu                                  %%
+%%                                                       %%
+%% This program can redistributed and/or modified under  %%
+%% the terms of the LaTeX Project Public License         %%
+%% Distributed from CTAN archives in directory           %%
+%% macros/latex/base/lppl.txt; either version 1.2 of the %%
+%% License, or (at your option) any later version.       %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\ReadBookmarks{%
+  \pdf at ifdraftmode{}{%
+    \begingroup
+    \def\calc at bm@number##1{%
+      \@tempcnta=\check at bm@number{##1}\relax
+      \advance\@tempcnta by 1 %
+      \expandafter\edef\csname B_##1\endcsname{\the\@tempcnta}%
+    }%
+    \def\Hy at OutlineName##1##2##3##4{\def\@rgi{##1}%
+      \expandafter\pdfoutline\ifx\@rgi\@empty\else
+      attr {##1} \fi
+      user {##2} count##3{##4}%
+    %  goto name{#2} count#3{#4}%
+    }%
+    \def\do##1{%
+      \ifnum\catcode`##1=\active
+        \@makeother##1%
+      \else
+        \ifnum\catcode`##1=6 %
+          \@makeother##1%
+        \fi
+      \fi
+    }%
+    \dospecials
+    \Hy at safe@activestrue
+    \escapechar=`\\%
+    \ifx\WriteBookmarks\relax
+      \global\let\WriteBookmarks\relax
+    \fi
+    \begingroup
+    \def\WriteBookmarks{0}%
+    \count\z@=0\relax
+    \edef\xbmk at J{\jobname}%
+    \@whilenum \count\z@<\xbmk at cnt\relax\do{%
+      \advance\count\z@ by 1 %
+      \edef\xbmk at thisdoc{xbmk at doc\the\count\z@}%
+      \edef\xbmk at filename{\@nameuse{\xbmk at thisdoc}}%
+      \@onelevel at sanitize\xbmk at filename
+      \bgroup
+      \gdef\@@BOOKMARK[##1][##2]##3##4##5{%
+        \calc at bm@number{##5}%
+      }%
+      \InputIfFileExists{\xbmk at filename.out}{}{}%
+      \gdef\@@BOOKMARK[##1][##2]##3##4##5{%
+        \def\Hy at temp{##4}%
+        \Hy at pstringdef\Hy at pstringName{\HyperDestNameFilter{##3}}%
+        \ifx\xbmk at J\xbmk at filename
+          \Hy at OutlineName{\xbmks at intdoc\xbmk at intF}{<</S/GoTo%
+            /D(\Hy at pstringName)>>}{%
+            ##2\check at bm@number{\Hy at pstringName}%
+          }{%
+            \expandafter\strip at prefix\meaning\Hy at temp
+          }%
+        \else
+          \Hy at OutlineName{\xbmks at extdoc\xbmk at extF}{<</S/GoToR%
+            /F(\xbmk at filename.pdf)/D(\Hy at pstringName)>>}{%
+            ##2\check at bm@number{##3}%
+          }{%
+            \expandafter\strip at prefix\meaning\Hy at temp
+          }%
+        \fi
+      }% bookmark
+      \InputIfFileExists{\xbmk at filename.out}{}{}%
+      \egroup
+    } % \@whilenum
+    \endgroup
+  }%
+  \ifx\WriteBookmarks\relax
+  \else
+    \if at filesw
+      \newwrite\@outlinefile
+      \Hy at OutlineRerunCheck
+      \immediate\openout\@outlinefile=\jobname.out\relax
+      \ifHy at typexml
+        \immediate\write\@outlinefile{<relaxxml>\relax}%
+      \fi
+    \fi
+  \fi
+}
+\endinput
+%%
+%% End of file `xbmks-pdftex.def'.


Property changes on: trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-pdftex.def
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-xetex.def
===================================================================
--- trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-xetex.def	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-xetex.def	2018-06-11 22:22:36 UTC (rev 47991)
@@ -0,0 +1,107 @@
+%%
+%% This is file `xbmks-xetex.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xbmks.dtx  (with options: `copyright,xetex')
+%% 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% xbmks.sty package,                              %%
+%% Copyright (C) 2016--2018                              %%
+%%   dpstory at uakron.edu                                  %%
+%%                                                       %%
+%% This program can redistributed and/or modified under  %%
+%% the terms of the LaTeX Project Public License         %%
+%% Distributed from CTAN archives in directory           %%
+%% macros/latex/base/lppl.txt; either version 1.2 of the %%
+%% License, or (at your option) any later version.       %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\def\ReadBookmarks{%
+  \pdf at ifdraftmode{}{%
+    \begingroup
+      \def\calc at bm@number##1{%
+        \@tempcnta=\check at bm@number{##1}\relax
+        \advance\@tempcnta by 1 %
+        \expandafter\edef\csname B_##1\endcsname{\the\@tempcnta}%
+      }%
+      \def\do##1{%
+        \ifnum\catcode`##1=\active
+          \@makeother##1%
+        \else
+          \ifnum\catcode`##1=6 %
+            \@makeother##1%
+          \fi
+        \fi
+      }%
+      \dospecials
+      \Hy at safe@activestrue
+      \escapechar=`\\%
+      \ifx\WriteBookmarks\relax
+        \global\let\WriteBookmarks\relax
+      \fi
+      \begingroup
+        \def\WriteBookmarks{0}%
+        \count\z@=0\relax
+        \edef\xbmk at J{\jobname}%
+        \@whilenum \count\z@<\xbmk at cnt\relax\do{%
+          \advance\count\z@ by 1 %
+          \edef\xbmk at thisdoc{xbmk at doc\the\count\z@}%
+          \edef\xbmk at filename{\@nameuse{\xbmk at thisdoc}}%
+          \@onelevel at sanitize\xbmk at filename
+          \bgroup
+          \def\@@BOOKMARK[##1][##2]##3##4##5{%
+            \calc at bm@number{##5}%
+          }%
+          \InputIfFileExists{\xbmk at filename.out}{}{}%
+          \def\@@BOOKMARK[##1][##2]##3##4##5{%
+            \def\Hy at temp{##4}%
+            \Hy at pstringdef\Hy at pstringName{\HyperDestNameFilter{##3}}%
+            \@pdfm at mark{%
+              outline \ifHy at DvipdfmxOutlineOpen
+                      [%
+                      \ifnum##21>\z@
+                      \else
+                        -%
+                      \fi
+                      ] %
+                    \fi
+              ##1<<%
+                /Title(\expandafter\strip at prefix\meaning\Hy at temp)%
+                \ifx\xbmk at J\xbmk at filename
+                  /A<<%
+                    /S/GoTo%
+                    /D(\Hy at pstringName)%
+                  >>%
+                  \xbmks at intdoc\xbmk at intF
+                \else
+                  /A<<%
+                    /S/GoToR/F(\xbmk at filename.pdf)%
+                    /D(\Hy at pstringName)%
+                  >>%
+                  \xbmks at extdoc\xbmk at extF
+                \fi
+              >>%
+            }% \@pdfm at mark
+          }% bookmark
+          \InputIfFileExists{\xbmk at filename.out}{}{}%
+          \egroup
+        }% \@whilenum
+      \endgroup
+    \endgroup
+  }%
+  \ifx\WriteBookmarks\relax
+  \else
+    \if at filesw
+      \newwrite\@outlinefile
+      \Hy at OutlineRerunCheck
+     \immediate\openout\@outlinefile=\jobname.out\relax
+      \ifHy at typexml
+        \immediate\write\@outlinefile{<relaxxml>\relax}%
+      \fi
+    \fi
+  \fi
+}
+\endinput
+%%
+%% End of file `xbmks-xetex.def'.


Property changes on: trunk/Master/texmf-dist/tex/latex/xbmks/xbmks-xetex.def
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/tex/latex/xbmks/xbmks.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/xbmks/xbmks.sty	                        (rev 0)
+++ trunk/Master/texmf-dist/tex/latex/xbmks/xbmks.sty	2018-06-11 22:22:36 UTC (rev 47991)
@@ -0,0 +1,133 @@
+%%
+%% This is file `xbmks.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xbmks.dtx  (with options: `copyright,package')
+%% 
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% xbmks.sty package,                              %%
+%% Copyright (C) 2016--2018                              %%
+%%   dpstory at uakron.edu                                  %%
+%%                                                       %%
+%% This program can redistributed and/or modified under  %%
+%% the terms of the LaTeX Project Public License         %%
+%% Distributed from CTAN archives in directory           %%
+%% macros/latex/base/lppl.txt; either version 1.2 of the %%
+%% License, or (at your option) any later version.       %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\NeedsTeXFormat{LaTeX2e}[1997/12/01]
+\ProvidesPackage{xbmks}
+ [2018/06/11 v1.0 xbmks: Cross-document bookmarks (dps)]
+\RequirePackage{xkeyval}
+\RequirePackage{ifpdf}[2006/02/20]
+\RequirePackage{ifxetex}[2006/08/21]
+\def\xbmk at driver{bmks-pdfmark.def}
+\DeclareOptionX{dvipsone}{\def\xbmk at driver{bmks-pdfmark.def}}
+\DeclareOptionX{dvips}{\def\xbmk at driver{xbmks-pdfmark.def}}
+\DeclareOptionX{pdftex}{\def\xbmk at driver{xbmks-pdftex.def}}
+\DeclareOptionX{luatex}{\def\xbmk at driver{xbmks-pdftex.def}}
+\DeclareOptionX{xetex}{\def\xbmk at driver{xbmks-xetex.def}}
+\ifpdf\ExecuteOptionsX{pdftex}\else
+    \ifxetex\ExecuteOptionsX{xetex}\else
+        \let\ExecuteOptions at SAVE\ExecuteOptions
+        \let\ExecuteOptions\ExecuteOptionsX
+        \InputIfFileExists{web.cfg}{}
+        {\@ifundefined{l at tex@@@@driver}{\ExecuteOptionsX{dvips}}
+            {\ExecuteOptionsX{dvipsone}}}%
+        \let\ExecuteOptions\ExecuteOptions at SAVE
+    \fi\fi
+\ProcessOptionsX
+\RequirePackage{hyperref}
+\define at key{xbmksetup}{docbundle}[]{\def\x at bmks@docs{#1}}
+\let\x at bmks@docs\@empty
+\define at key{xbmksetup}{colors}[]{\def\x at bmks@colors{#1}}
+\let\x at bmks@colors\@empty
+\define at key{xbmksetup}{style}[]{\def\x at bmks@style{#1}}
+\let\x at bmks@style\@empty
+\define at key{xbmk at colors}{intdoc}[]{%
+  \HyColor at BookmarkColor{#1}{\xbmks at intdoc}{xbmks}{intdoc}%
+  \ifx\xbmks at intdoc\@empty\else
+  \edef\xbmks at intdoc{/C [\xbmks at intdoc]}\fi
+}
+\let\xbmks at intdoc\@empty
+\define at key{xbmk at colors}{extdoc}[]{%
+  \HyColor at BookmarkColor{#1}{\xbmks at extdoc}{xbmks}{extdoc}%
+  \ifx\xbmks at extdoc\@empty\else
+  \edef\xbmks at extdoc{/C [\xbmks at extdoc]}\fi
+}
+\let\xbmks at extdoc\@empty
+\let\xbmks at Yes=y
+\let\xbmks at No=n
+\define at boolkey{xbmk at style}{intbf}[true]{} %\ifKV at xbmk@style at intbf
+\define at boolkey{xbmk at style}{extbf}[true]{}
+\define at boolkey{xbmk at style}{intit}[true]{}
+\define at boolkey{xbmk at style}{extit}[true]{}
+\newcommand{\xbmksetup}[1]{\write at xbmks@cfg{#1}}
+\def\write at xbmks@cfg#1{%
+  \newwrite\xbmks at setup \immediate\openout \xbmks at setup xbmks.cfg
+  \set at display@protect
+  \immediate\write\xbmks at setup{\protect\xbmksetupi{#1}}
+  \set at typeset@protect
+  \immediate\closeout\xbmks at setup
+}
+\newcommand{\xbmksetupi}[1]{%
+  \setkeys{xbmksetup}{#1}%
+  \ifx\x at bmks@docs\@empty
+    \PackageWarning{xbmks}{The docbundle key is empty,\MessageBreak
+    this key must have a value for cross-document bookmarks\MessageBreak
+    to be generated}\else
+    \edef\@exp at for{\noexpand\docbundle{\x at bmks@docs}}\expandafter
+    \@exp at for\fi
+    \edef\@exp at keys{\noexpand
+      \setkeys{xbmk at colors}{\x at bmks@colors}}\@exp at keys
+    \edef\@exp at keys{\noexpand
+      \setkeys{xbmk at style}{\x at bmks@style}}\@exp at keys
+      \def\xbmk at intF{}%
+      \ifKV at xbmk@style at intit
+        \ifKV at xbmk@style at intbf
+          \def\xbmk at intF{/F 3}%
+        \else
+          \def\xbmk at intF{/F 1}%
+        \fi
+      \else
+        \ifKV at xbmk@style at intbf
+          \def\xbmk at intF{/F 2}%
+        \fi
+      \fi
+      \def\xbmk at extF{}%
+      \ifKV at xbmk@style at extit
+        \ifKV at xbmk@style at extbf
+          \def\xbmk at extF{/F 3}%
+        \else
+          \def\xbmk at extF{/F 1}%
+        \fi
+      \else
+        \ifKV at xbmk@style at extbf
+          \def\xbmk at extF{/F 2}%
+        \fi
+      \fi
+}
+\def\xbmk at csarg#1#2{\expandafter#1\csname#2\endcsname}
+\xdef\xbmk at cnt{0}
+\newcommand{\docbundle}[1]{\bgroup
+  \def\thisDoc{\jobname}\count\z@=0 %
+  \edef\@tmpexp{\noexpand\@for\noexpand\@arg:=#1}%
+  \@tmpexp\do{%
+    \advance\count\z@ by 1\relax
+    \edef\@tmpexp{\noexpand\xbmk at recordDoc{\@arg}}\@tmpexp
+  }%
+  \xdef\xbmk at cnt{\the\count\z@}\egroup
+}
+\newcommand{\xbmk at recordDoc}[1]{%
+  \xbmk at csarg\xdef{xbmk at doc\the\count\z@}{#1}}
+\InputIfFileExists{xbmks.cfg}{}{}
+\@ifpackageloaded{bookmark}{\PackageWarningNoLine{xbmks}{The
+  bookmark package is not supported;\MessageBreak
+  this package does nothing, as a result}}
+{\InputIfFileExists{\xbmk at driver}{}{}}
+
+\endinput
+%%
+%% End of file `xbmks.sty'.


Property changes on: trunk/Master/texmf-dist/tex/latex/xbmks/xbmks.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/tlpkg/bin/tlpkg-ctan-check
===================================================================
--- trunk/Master/tlpkg/bin/tlpkg-ctan-check	2018-06-11 22:21:12 UTC (rev 47990)
+++ trunk/Master/tlpkg/bin/tlpkg-ctan-check	2018-06-11 22:22:36 UTC (rev 47991)
@@ -693,7 +693,7 @@
     widetable williams withargs witharrows
     wnri wnri-latex wordcount wordlike
     wrapfig wsemclassic wsuipa wtref
-  xargs xassoccnt xcharter xcite xcjk2uni xcntperchap
+  xargs xassoccnt xbmks xcharter xcite xcjk2uni xcntperchap
     xcolor xcolor-material xcolor-solarized
     xcomment xcookybooky xdoc xduthesis
     xebaposter xechangebar xecjk xecolor xecyr xeindex xellipsis

Modified: trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
===================================================================
--- trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2018-06-11 22:21:12 UTC (rev 47990)
+++ trunk/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc	2018-06-11 22:22:36 UTC (rev 47991)
@@ -1165,6 +1165,7 @@
 depend wtref
 depend xargs
 depend xassoccnt
+depend xbmks
 depend xcntperchap
 depend xcolor-material
 depend xcolor-solarized

Added: trunk/Master/tlpkg/tlpsrc/xbmks.tlpsrc
===================================================================


More information about the tex-live-commits mailing list