From 46088a3268571a362dd9a36835c27eb3c4cfe42a Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Mon, 9 Oct 2017 22:06:08 +0000
Subject: crossreftools (9oct17)

git-svn-id: svn://tug.org/texlive/trunk@45508 c570f23f-e606-0410-a88d-b1316a301751
---
 .../doc/latex/crossreftools/crossreftools_doc.tex  | 564 +++++++++++++++++++++
 1 file changed, 564 insertions(+)
 create mode 100644 Master/texmf-dist/doc/latex/crossreftools/crossreftools_doc.tex

(limited to 'Master/texmf-dist/doc/latex/crossreftools/crossreftools_doc.tex')

diff --git a/Master/texmf-dist/doc/latex/crossreftools/crossreftools_doc.tex b/Master/texmf-dist/doc/latex/crossreftools/crossreftools_doc.tex
new file mode 100644
index 00000000000..b54f184ff26
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/crossreftools/crossreftools_doc.tex
@@ -0,0 +1,564 @@
+%% LaTeX package crossreftools - version 0.1 (2017/10/08 -- 22:58:50)
+%% Documentation file for crossreftools.sty
+%%
+%%
+%% -------------------------------------------------------------------------------------------
+%% Copyright (c) 2017 by Dr. Christian Hupfer <typography dot with dot latex at gmail dot com>
+%% -------------------------------------------------------------------------------------------
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3
+%% 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.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%%
+%% This work has the LPPL maintenance status `author-maintained`
+%%
+%%
+
+\documentclass[12pt,a4paper,oneside]{article}
+
+
+
+
+\usepackage[lmargin=2cm,rmargin=2cm,headheight=15pt]{geometry}
+\usepackage{savesym}
+\usepackage{bbding}
+\savesymbol{Cross}
+
+\usepackage{graphicx}
+\usepackage{blindtext}
+\usepackage[x11names]{xcolor}
+\usepackage{imakeidx}
+\usepackage{fontawesome}
+\usepackage[most,documentation]{tcolorbox}
+\usepackage[tikz]{bclogo}
+\usepackage{marginnote}
+\usepackage{fancyhdr}
+\usepackage{datetime}
+\usepackage{array}
+\usepackage{xkeyval}
+\usepackage{xparse}
+\usepackage{totcount}
+\usepackage{enumitem}
+\usepackage{microtype}
+\usepackage{caption}
+\usepackage[T1]{fontenc}
+\usepackage[scaled=0.92]{helvet}
+
+\newlist{codeoptionsenum}{enumerate}{1}
+\setlist[codeoptionsenum,1]{label={\textcolor{blue}{\#\arabic*}}}
+
+\renewcommand{\rmdefault}{\sfdefault}
+
+\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
+
+\makeatletter
+\define@key{chdoc}{packageauthor}{%
+  \def\KVchdocpackageauthor{#1}%
+}
+
+\define@key{chdoc}{packageauthormail}{%
+  \def\KVchdocpackageauthormail{#1}%
+}
+
+\define@key{chdoc}{filepurpose}{%
+  \def\KVchdocfilepurpose{#1}%
+}
+
+
+\newcommand{\chdocextractversion}[1]{%
+  \@nameuse{#1}%
+}
+
+
+\@namedef{crossreftoolsversion0.1}{v0.1 2017-10-08}
+
+\newcommand{\authorname}{Autor}
+
+
+\makeatother
+
+
+
+
+
+
+\fancypagestyle{plain}{%
+\fancyfoot[L]{\begin{tabular}[t]{l}\PackageDocName\ \packageversion \tabularnewline \textcopyright\ Dr. Christian Hupfer\end{tabular}}%
+\fancyfoot[C]{\thepage}%
+\fancyfoot[R]{\today}%
+\renewcommand{\headrule}{{\color{blue}%
+\hrule width\headwidth height\headrulewidth \vskip-\headrulewidth}}
+\renewcommand{\footrule}{{\color{blue}\vskip-\footruleskip\vskip-\footrulewidth
+\hrule width\headwidth height\footrulewidth\vskip\footruleskip}}
+\renewcommand{\footrulewidth}{2pt}
+\renewcommand{\headrulewidth}{2pt}
+}
+
+
+
+\newtcolorbox{CHPackageTitleBox}[1][]{%
+  enhanced jigsaw,
+  drop lifted shadow,
+  colback=yellow!30!white,
+  width=0.8\textwidth,
+  #1
+}
+
+
+\presetkeys{chdoc}{packageauthor={Christian Hupfer}}{}%
+\NewDocumentCommand{\CHPackageTitlePage}{O{}mO{}}{%
+  \setkeys{chdoc}{packageauthor={Christian Hupfer},filepurpose={Documentation},#1}%
+  \typeout{Package version: \packageversion}
+  \begin{center}
+    \begin{CHPackageTitleBox}[#3]
+      \large \bfseries%
+      \begin{center}%
+        \begin{tabular}{C{0.9\textwidth}}%
+          \scshape \PackageDocName \tabularnewline
+          \tabularnewline
+          #2 \tabularnewline
+          \tabularnewline
+          \KVchdocfilepurpose \tabularnewline
+          \tabularnewline
+          Version \packageversion \tabularnewline
+          \tabularnewline
+          \today \tabularnewline
+          \tabularnewline
+          \addtocounter{footnote}{2}
+          \authorname: \KVchdocpackageauthor\(^\mathrm{\fnsymbol{footnote}}\)
+          \tabularnewline
+        \end{tabular}
+      \end{center}
+    \end{CHPackageTitleBox}
+    \renewcommand{\thefootnote}{\fnsymbol{footnote}}%
+    \footnotetext{\mymailtoaddress}%
+  \end{center}
+}
+
+\newtcolorbox{docCommandArgs}[1]{colbacktitle={blue},coltitle={white},title={Description of arguments of command \cs{#1}}}
+
+
+\newcommand{\tcolorboxdoclink}{http://mirrors.ctan.org/macros/latex/contrib/tcolorbox/tcolorbox.pdf}
+
+% 'Stolen' from tcolorbox documentation ;-)
+
+\newtcolorbox{marker}[1][]{enhanced,
+  before skip=2mm,after skip=3mm,
+  boxrule=0.4pt,left=5mm,right=2mm,top=1mm,bottom=1mm,
+  colback=yellow!50,
+  colframe=yellow!20!black,
+  sharp corners,rounded corners=southeast,arc is angular,arc=3mm,
+  underlay={%
+    \path[fill=tcbcol@back!80!black] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
+    \path[draw=tcbcol@frame,shorten <=-0.05mm,shorten >=-0.05mm] ([yshift=3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
+    \path[fill=yellow!50!black,draw=none] (interior.south west) rectangle node[white]{\Huge\bfseries !} ([xshift=4mm]interior.north west);
+    },
+    drop fuzzy shadow,#1}
+
+
+%%%% Documentation macros
+
+
+\NewDocumentCommand{\packagename}{sm}{%
+  \textcolor{blue}{\textbf{\faEnvelopeO~#2}}%
+  \IfBooleanF{#1}{%
+    \index{Package!#2}
+  }%
+}
+
+\NewDocumentCommand{\classname}{sm}{%
+  \textcolor{brown}{\textbf{\faBriefcase~#2}}%
+  \IfBooleanF{#1}{%
+    \index{Package!#2}%
+  }%
+}
+
+
+\NewDocumentCommand{\CHDocPackage}{sm}{%
+  \textcolor{blue}{\textbf{\faEnvelopeO~#2}}%
+  \IfBooleanF{#1}{%
+    \index{Package!#2}
+  }%
+}
+
+
+
+
+\NewDocumentCommand{\CHDocClass}{sm}{%
+  \textcolor{brown}{\textbf{\faBriefcase~#2}}%
+  \IfBooleanF{#1}{%
+    \index{Package!#2}%
+  }%
+}
+
+\NewDocumentCommand{\CHDocKey}{sm}{%
+  \textcolor{red}{\textbf{\faKey~#2}}%
+  \IfBooleanF{#1}{%
+      \index{Option!#2}%
+  }%
+}
+
+\newcommand{\handrightnote}{\tcbdocmarginnote{\ding{43}}}
+
+
+\NewDocumentCommand{\CHDocCounter}{sm}{%
+  \textcolor{Green4}{\textbf{\faCalculator~#2}}%
+  \IfBooleanF{#1}{%
+    \index{Counter!#2}%
+  }%	
+}
+
+
+\NewDocumentCommand{\CHDocTag}{sm}{%
+  \textcolor{violet}{\faTag~#2}%
+  \IfBooleanF{#1}{%
+    \index{Feature!#2}%
+  }%	
+}
+
+
+\NewDocumentCommand{\CHDocFileExt}{sm}{%
+    \faFile~#2%
+}
+
+\NewDocumentCommand{\CHDocFiles}{sm}{%
+    \faFilesO~#2%
+}
+
+
+\NewDocumentCommand{\CHDocConventions}{}{%
+  \section*{\centering Typographical conventions}
+  Throughout this documentation following symbols and conventions are used:
+  \begin{itemize}
+  \item \CHDocClass*{foo} means a the class \texttt{foo}
+  \item \CHDocPackage*{foo} names a package \texttt{foo}
+  \item \CHDocCounter*{foo} indicates a counter named \texttt{foo}
+  \item \CHDocFileExt*{foo} will indicate either a file named \texttt{foo} or a file extension \texttt{foo}
+  \item \CHDocFiles*{foo} will indicate some files 
+  \item \CHDocTag*{foo} names a special feature or tag \texttt{foo}
+  \item \CHDocKey*{foo} deals with a command or package option named \texttt{foo}
+  \end{itemize}
+}
+
+
+
+\renewcommand{\tcbdocnew}[1]{#1}%
+\renewcommand{\tcbdocupdated}[1]{#1}%
+
+\newcommand{\CHDocNew}[1]{%
+  \tcbdocmarginnote[doclang/new={N},
+  colframe=blue,
+  halign=left,
+  colback={blue!20!white},
+  fontupper={\tiny}
+  ]{%
+    \chdocextractversion{crossreftoolsversion#1}%
+  }%
+}
+
+
+
+\newcommand{\CHDocUpdate}[1]{\tcbdocmarginnote[doclang/updated={},colback={yellow},colframe={yellow!50!red},  fontupper={\tiny}
+]{%
+  \tcbdocupdated{\chdocextractversion{crossreftoolsversion#1}}%
+}%
+}
+
+
+
+\newcommand{\CHDocFullVersion}[1]{Version \chdocextractversion{crossreftoolsversion#1}}
+
+
+\newcommand{\CHDocExpCommand}[1][Expandable]{%
+  \tcbdocmarginnote[doclang/new={N},
+  colframe=green!50!blue,
+  halign=left,
+  colback={green!90!blue},
+  fontupper={\tiny}
+  ]{%
+    #1%
+  }%
+}
+
+
+\newcommand{\CHDocExperimentalFeature}[1][Experimental]{%
+  \tcbdocmarginnote[doclang/new={N},
+  colframe=yellow!50!blue,
+  halign=left,
+  colback={blue!10!yellow},
+  fontupper={\tiny}
+  ]{%
+    #1%
+  }%
+}
+
+
+\usepackage[T1]{fontenc}
+\usepackage{graphicx}%
+\usepackage{crossreftools}
+
+
+\usepackage{amsmath}
+\usepackage{amssymb}
+\usepackage{minitoc}
+\usepackage{tocbibind}
+
+
+\usepackage{bookmark}
+
+\usepackage{cleveref}
+
+
+\def\packageversion{0.1}
+
+
+\usepackage{url}
+
+\setcounter{tocdepth}{3}
+\newcommand{\PackageDocName}{crossreftools}%
+
+
+\newcommand{\mymailtoaddress}{%
+  typography.with.latex@gmail.com%
+}
+
+\doparttoc
+
+\makeindex[intoc]
+
+
+\renewcommand{\rmdefault}{\sfdefault}
+
+
+
+\hypersetup{breaklinks=true,
+  pdftitle={\jobname.pdf -- version \packageversion},
+  pdfauthor={Dr. Christian Hupfer},
+  pdfsubject={Documentation of \PackageDocName\ package},
+  pdfkeywords={LaTeX, cross-referencing},
+  bookmarksopen=true,
+  bookmarksopenlevel=2,
+  bookmarksnumbered=true,
+  pdfcreator={LaTeX}
+}
+
+
+
+\begin{document}
+\yyyymmdddate
+
+
+\setlength{\parindent}{0em}
+
+\pagestyle{empty}%
+
+
+
+\CHPackageTitlePage[packageauthor={Christian Hupfer}]{Expandable extraction of cleveref data}
+
+
+\clearpage
+\tableofcontents
+\clearpage
+
+\CHDocConventions
+\clearpage
+
+
+\pagestyle{plain}
+
+
+\setcounter{footnote}{0}
+
+\part{Introduction}
+
+\parttoc
+
+\section*{Preface}
+
+This package provides expandable extraction of information stored in labels generated with \CHDocPackage{cleveref}. 
+
+Whereas \CHDocPackage{cleveref} provides \cs{labelcref} and other commands, none of those are expandable and can not be used in an \cs{edef} - approach. 
+
+\begin{marker}
+Most times class and package authors will benefit of this package, but there might be usual documents that need the features of |\PackageDocName|
+\end{marker}
+
+
+\section{Requirements, loading and incompatibilities}%
+
+
+
+\subsection{Required packages and \TeX\ engine}
+
+The package does not require features from Xe\LaTeX\ or Lua\LaTeX\ but can be run with those features as well as with \LaTeX\ or pdf\LaTeX. The compilation documentation requires however pdf\LaTeX\ as of version \packageversion. 
+
+No packages are loaded by \CHDocPackage{crossreftools}, this package does not load \CHDocPackage{cleveref} itself. 
+
+
+\subsection{Loading of the package}
+
+Loading is done with
+
+\begin{tcblisting}{listing only}
+\usepackage[options]{crossreftools}
+\end{tcblisting}
+
+As of version \packageversion\ \CHDocPackage{\PackageDocName} does not have options.
+
+There is no loading order required. The macros expand to \makeatletter\fbox{\crt@refundefined}\makeatother\ if \CHDocPackage{cleveref} is not loaded. 
+
+\subsection{Incompatibilities}\label{subsection:incompatibilities}
+
+As of \packageversion\ this package cannot be used with plain \TeX\ 
+
+\clearpage
+
+\part{Macro descriptions}
+
+\parttoc
+
+\section{Extracting information from cleveref}
+
+The \CHDocPackage{cleveref} package redefines the \cs{label} macro and stores another label with the same basic name and a suffix \string @cref, so 
+
+\begin{tcblisting}{listing only}
+\label{foo}
+\end{tcblisting}
+
+would generate both the labels \verb!foo! and \verb!foo@cref!. The \CHDocPackage{cleveref} - version of a label saves basically five properties to the \CHDocFileExt{.aux} - file. 
+
+
+\begin{itemize}
+  \item \texttt{counter}
+
+    This property holds the name of the counter that was used in \cs{refstepcounter}.
+
+
+  \item \texttt{number}
+
+    This property holds the value of label, this is usually the value of a counter
+    \begin{marker}
+      Please note that this property does not mean the reference value that is displayed with \cs{cref} or \cs{Cref}. 
+    \end{marker}
+  \item \texttt{result}
+    
+  \item \texttt{reference}
+    This property holds the reference that is to be typeset, i.e. the content displayed with \cs{cref} or \cs{Cref}, however, without hyperlinks. 
+
+  \item \texttt{page}
+    This property stores the page number of the \cs{label} usage.
+    
+\end{itemize}
+
+\clearpage
+\CHDocPackage{\PackageDocName} extracts those properties with \refCom{crtextractcref}. 
+
+\begin{docCommand}[code={\CHDocExpCommand{}},
+doc new={\chdocextractversion{crossreftoolsversion0.1}}]{crtextractcref}{\marg{property}\marg{labelname}}
+
+This command will extract one of the properties \texttt{counter}, \texttt{number}, \texttt{result}, \texttt{reference} and \texttt{page} from the label given as the 2nd mandatory argument. 
+\end{docCommand}
+
+For convenience, there are shortcuts to extract a specific property:
+
+\begin{docCommand}[code={\CHDocExpCommand{}},
+doc new={\chdocextractversion{crossreftoolsversion0.1}}]{crtcrefcounter}{\marg{labelname}}
+
+This extracts the counter belonging to a certain labelname.
+\end{docCommand}
+
+
+\begin{docCommand}[code={\CHDocExpCommand{}},
+doc new={\chdocextractversion{crossreftoolsversion0.1}}]{crtcrefnumber}{\marg{labelname}}
+
+This extracts the counter value (or something that is stored by \cs{cref@currentlabel} belonging to a certain labelname.
+\end{docCommand}
+
+\begin{docCommand}[code={\CHDocExpCommand{}},
+doc new={\chdocextractversion{crossreftoolsversion0.1}}]{crtcrefresult}{\marg{labelname}}
+
+This extracts the result of the splitting of a counter belonging to a certain labelname.
+\end{docCommand}
+
+\begin{docCommand}[code={\CHDocExpCommand{}},
+doc new={\chdocextractversion{crossreftoolsversion0.1}}]{crtcrefreference}{\marg{labelname}}
+
+This extracts the reference that would be printed by \cs{cref} or \cs{Cref}, without hyperlinks.
+\end{docCommand}
+
+\begin{docCommand}[code={\CHDocExpCommand{}},
+doc new={\chdocextractversion{crossreftoolsversion0.1}}]{crtcrefpage}{\marg{labelname}}
+
+This extracts the page number that would be printed by \cs{pageref}. 
+\end{docCommand}
+
+
+\section{Additional macros and utilities}
+
+\CHDocPackage{\PackageDocName} provides some expandable helper macros in order to query the cross reference names that are stored with \cs{crefname} and \cs{Crefname} from \CHDocPackage{cleveref}.
+
+\begin{docCommand}[code={\CHDocExpCommand{}},
+doc new={\chdocextractversion{crossreftoolsversion0.1}}]{crtcrefname}{\marg{counter name}}
+
+This extracts the lower case cross reference name of a given counter. 
+\end{docCommand}
+
+\begin{docCommand}[code={\CHDocExpCommand{}},
+doc new={\chdocextractversion{crossreftoolsversion0.1}}]{crtCrefname}{\marg{counter name}}
+
+This extracts the upper case cross reference name of a given counter. 
+\end{docCommand}
+
+\begin{docCommand}[code={\CHDocExpCommand{}},
+doc new={\chdocextractversion{crossreftoolsversion0.1}}]{crtcrefpluralname}{\marg{counter name}}
+
+This extracts the lower case cross reference plural name of a given counter. 
+\end{docCommand}
+
+
+\begin{docCommand}[code={\CHDocExpCommand{}},
+doc new={\chdocextractversion{crossreftoolsversion0.1}}]{crtCrefpluralname}{\marg{counter name}}
+
+This extracts the upper case cross reference plural name of a given counter. 
+\end{docCommand}
+
+\begin{docCommand}[code={\CHDocExpCommand{}},
+doc new={\chdocextractversion{crossreftoolsversion0.1}}]{crtcrefnamebylabel}{\marg{labelname}}
+
+This extracts the lower case cross reference name of a given label. 
+\end{docCommand}
+
+\begin{docCommand}[code={\CHDocExpCommand{}},
+doc new={\chdocextractversion{crossreftoolsversion0.1}}]{crtCrefnamebylabel}{\marg{labelname}}
+
+This extracts the upper case cross reference name of a given label. 
+\end{docCommand}
+
+\clearpage
+\part{Examples}
+
+\parttoc
+
+\section{Driver example}
+
+\tcbinputlisting{breakable,listing only,listing file=crossreftools_driver.tex}
+
+\clearpage
+\section{Version history}
+
+
+\begin{itemize}[itemsep=15pt]
+\item   \CHDocFullVersion{0.1} First version
+\end{itemize}
+
+
+\printindex
+
+\end{document}
+
-- 
cgit v1.2.3

