summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/crossreftools
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-10-31 21:23:41 +0000
committerKarl Berry <karl@freefriends.org>2017-10-31 21:23:41 +0000
commit8dc98ca4418ae3272e7b4e290443b6b424cb1eb5 (patch)
treefda6987b6b9b30b3d9860c90e8a460faa0b6e1cf /Master/texmf-dist/tex/latex/crossreftools
parentb71dc5300da871cbc8529c8f06fbe3445dfc4d0f (diff)
crossreftools (31oct17)
git-svn-id: svn://tug.org/texlive/trunk@45657 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/crossreftools')
-rw-r--r--Master/texmf-dist/tex/latex/crossreftools/crossreftools.sty167
1 files changed, 158 insertions, 9 deletions
diff --git a/Master/texmf-dist/tex/latex/crossreftools/crossreftools.sty b/Master/texmf-dist/tex/latex/crossreftools/crossreftools.sty
index 93bee4fbf2c..10ec71fb078 100644
--- a/Master/texmf-dist/tex/latex/crossreftools/crossreftools.sty
+++ b/Master/texmf-dist/tex/latex/crossreftools/crossreftools.sty
@@ -1,4 +1,4 @@
-%% LaTeX package crossreftools - version 0.2 (2017/10/25 -- 23:08:36)
+%% LaTeX package crossreftools - version 0.3 (2017/10/31 -- 08:23:52)
%% Source file for crossreftools.sty
%%
%%
@@ -19,21 +19,17 @@
%%
%%
-\def\crossreftoolspackageversion{0.2}
+\def\crossreftoolspackageversion{0.3}
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
-\ProvidesPackage{crossreftools}[2017/10/25 - v\crossreftoolspackageversion]
+\ProvidesPackage{crossreftools}[2017/10/31 - v\crossreftoolspackageversion]
% Some helper macros
-\newcommand{\crt@firstoffive}[5]{#1}
\newcommand{\crt@refundefined}{[UNDEFINED]}
-\long\def\crt@gobblethree#1#2#3{}
-\long\def\crt@gobbletwo#1#2{}
-\long\def\crt@gobbleone#1{}
-% Splitters
+% Splitters for cleveref
\def\crt@@cref@@splitter@@first[#1][#2][#3]#4\@nil{%
#1%
@@ -121,7 +117,7 @@
\expandafter\ifx\csname r@#2@\@@crt@@cref@@suffix\endcsname\relax
\crt@refundefined%
\else
- \expandafter\expandafter\expandafter\expandafter\expandafter\csname crt@cref@splitter@#1\expandafter\endcsname\csname r@#2@cref\endcsname%
+ \expandafter\expandafter\expandafter\expandafter\expandafter\csname crt@cref@splitter@#1\expandafter\endcsname\csname r@#2@\@@crt@@cref@@suffix\endcsname%
\fi
}
@@ -151,5 +147,158 @@
}
+%%%%%
+
+% Default cref format
+
+\newcommand{\crtcref}[1]{%
+ \expandafter\ifx\csname r@#1\endcsname\relax
+ \crt@refundefined%
+ \else
+ \crtcrefnamebylabel{#1} \crtcrefnumber{#1}%
+ \fi
+}
+
+\newcommand{\crtCref}[1]{%
+ \expandafter\ifx\csname r@#1\endcsname\relax
+ \crt@refundefined%
+ \else
+ \crtCrefnamebylabel{#1} \crtcrefnumber{#1}%
+ \fi
+}
+
+
+% refcount - like support
+
+
+\newif\if@crt@hyperrefloaded
+
+
+\@ifpackageloaded{hyperref}{\global\@crt@hyperrefloadedtrue}{}
+
+
+\AtBeginDocument{%
+ \if@crt@hyperrefloaded
+ \def\crt@@ref@@splitter@@first#1#2#3#4#5\@nil{%
+ #1%
+ }
+
+ \def\crt@@ref@@splitter@@second#1#2#3#4#5\@nil{%
+ #2%
+ }
+
+ \def\crt@@ref@@splitter@@third#1#2#3#4#5\@nil{%
+ #3%
+ }
+
+ \def\crt@@ref@@splitter@@fourth#1#2#3#4#5\@nil{%
+ #4%
+ }
+
+ \def\crt@@ref@@splitter@@fifth#1#2#3#4#5\@nil{%
+ #5%
+ }
+ \else
+ % No hyperref
+ \def\crt@@ref@@splitter@@first#1#2\@nil{%
+ #1%
+ }
+
+ \def\crt@@ref@@splitter@@second#1#2\@nil{%
+ #2%
+ }
+
+ \def\crt@@ref@@splitter@@third#1#2\@nil{%
+ % Nothing for convenience
+ }
+
+ \def\crt@@ref@@splitter@@fourth#1#2\@nil{%
+ % Nothing for convenience
+ }
+
+ \def\crt@@ref@@splitter@@fifth#1#2\@nil{%
+ % Nothing for convenience
+ }
+ \fi
+}
+
+ \def\crt@ref@splitter@firstarg#1{%
+ \expandafter\crt@@ref@@splitter@@first#1\@nil%
+ }
+
+ \def\crt@ref@splitter@secondarg#1{%
+ \expandafter\crt@@ref@@splitter@@second#1\@nil%
+ }
+
+ \def\crt@ref@splitter@thirdarg#1{%
+ \expandafter\crt@@ref@@splitter@@third#1\@nil%
+ }
+
+ \def\crt@ref@splitter@fourtharg#1{%
+ \expandafter\crt@@ref@@splitter@@fourth#1\@nil%
+ }
+
+ \def\crt@ref@splitter@fiftharg#1{%
+ \expandafter\crt@@ref@@splitter@@fifth#1\@nil%
+ }
+
+
+\newcommand{\@@crtextr@ct@ref}[2]{%
+ \expandafter\ifx\csname r@#2\endcsname\relax
+ \crt@refundefined%
+ \else
+ \expandafter\expandafter\csname crt@ref@splitter@#1\endcsname\csname r@#2\endcsname%
+ \fi
+}
+
+\let\crt@ref@splitter@reference\crt@ref@splitter@firstarg
+\let\crt@ref@splitter@page\crt@ref@splitter@secondarg
+\let\crt@ref@splitter@name\crt@ref@splitter@thirdarg
+\let\crt@ref@splitter@anchor\crt@ref@splitter@fourtharg
+\let\crt@ref@splitter@unused\crt@ref@splitter@fiftharg
+
+
+\newcommand{\crtextractref}[2]{%
+ \@@crtextr@ct@ref{#1}{#2}%
+}
+
+
+\newcommand{\crtrefnumber}[1]{%
+ \@@crtextr@ct@ref{reference}{#1}%
+}
+
+
+\newcommand{\crtrefpage}[1]{%
+ \@@crtextr@ct@ref{page}{#1}%
+}
+
+\newcommand{\crtrefanchor}[1]{%
+ \@@crtextr@ct@ref{anchor}{#1}%
+}
+
+\newcommand{\crtrefname}[1]{%
+ \@@crtextr@ct@ref{name}{#1}%
+}
+
+%%% Hyperref wrappers, not expandable.
+
+
+\newcommand{\crthyperlink}[2]{%
+ \if@crt@hyperrefloaded
+ \hyperlink{#1}{#2}%
+ \else
+ #2%
+ \fi
+}
+
+\newcommand{\crthypercref}[1]{%
+ \crthyperlink{\crtrefanchor{#1}}{\crtcref{#1}}%
+}
+
+\newcommand{\crthyperCref}[1]{%
+ \crthyperlink{\crtrefanchor{#1}}{\crtCref{#1}}%
+}
+
+
\endinput